:root {
  --ink: #050b16;
  --navy: #0c1930;
  --navy-2: #101f3b;
  --navy-3: #132746;
  --gold: #ddb862;
  --gold-deep: #b9913d;
  --white: #f6f7fa;
  --muted: #aab3c3;
  --line: rgba(255,255,255,.12);
  --radius: 5px;
  --max: 1280px;
  --header: 74px;
}

* { box-sizing: border-box; }
html { overflow-x: clip; scroll-behavior: smooth; background: var(--ink); }
body { margin: 0; background: var(--ink); color: var(--white); font: 16px/1.62 "Inter", Arial, sans-serif; }
body.menu-open { overflow: hidden; }
img { display: block; width: 100%; }
a { color: inherit; text-decoration: none; }
button, input, textarea, select { font: inherit; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 1000; background: var(--gold); color: #111; padding: .75rem 1rem; }
.skip-link:focus { top: 1rem; }
.container { width: min(calc(100% - 44px), var(--max)); margin-inline: auto; }

.site-header { position: sticky; top: 0; z-index: 100; height: var(--header); background: rgba(5,11,22,.96); border-bottom: 1px solid var(--line); backdrop-filter: blur(12px); }
.nav-wrap { position: relative; height: 100%; display: flex; align-items: center; gap: 38px; }
.brand { font: 700 1.35rem/1 "Oswald", sans-serif; letter-spacing: .03em; white-space: nowrap; }
.nav-links { position: absolute; left: 50%; display: flex; align-items: center; gap: clamp(16px,1.65vw,28px); margin: 0; transform: translateX(-50%); }
.nav-links a { color: #dce1e9; font-size: .82rem; transition: color .2s; }
.nav-links a:hover, .nav-links a[aria-current="page"] { color: var(--gold); }
.nav-dropdown { position: relative; color: #dce1e9; font-size: .82rem; }
.nav-dropdown summary { display: flex; align-items: center; gap: 7px; list-style: none; cursor: pointer; transition: color .2s; }
.nav-dropdown summary::-webkit-details-marker { display: none; }
.nav-dropdown summary:hover,.nav-dropdown summary:focus-visible,.nav-dropdown:has(a[aria-current="page"]) > summary { color: var(--gold); outline: none; }
.dropdown-chevron { width: 7px; height: 7px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); transition: transform .2s; }
.nav-dropdown[open] .dropdown-chevron { transform: translateY(2px) rotate(225deg); }
.dropdown-menu { position: absolute; top: calc(100% + 20px); left: 50%; min-width: 220px; padding: 10px; background: rgba(5,11,22,.98); border: 1px solid var(--line); box-shadow: 0 22px 50px rgba(0,0,0,.38); transform: translateX(-50%); }
.dropdown-menu::before { content: ""; position: absolute; left: 0; right: 0; bottom: 100%; height: 21px; }
.dropdown-menu a { display: block; padding: 10px 12px; white-space: nowrap; }
.dropdown-menu a:hover,.dropdown-menu a:focus-visible { background: rgba(221,184,98,.09); outline: none; }
.nav-actions { display: flex; align-items: center; gap: 22px; margin-left: auto; }
.login { font-size: .82rem; color: #dce1e9; }
.menu-toggle { display: none; margin-left: auto; padding: 8px; border: 0; color: white; background: transparent; cursor: pointer; }
.menu-toggle span { display: block; width: 25px; height: 2px; margin: 5px 0; background: currentColor; }

.btn { display: inline-flex; min-height: 45px; align-items: center; justify-content: center; padding: 0 23px; border: 1px solid var(--gold); border-radius: 2px; background: var(--gold); color: #10131a; font-size: .78rem; font-weight: 800; letter-spacing: .035em; text-transform: uppercase; cursor: pointer; transition: transform .2s, background .2s, color .2s; }
.btn:hover { transform: translateY(-2px); background: #edca78; }
.btn-outline { background: transparent; color: var(--white); border-color: rgba(255,255,255,.55); }
.btn-outline:hover { background: white; color: var(--ink); }
.btn-small { min-height: 38px; padding-inline: 18px; font-size: .72rem; }
.text-link { color: var(--gold); font-size: .72rem; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }

.hero { position: relative; min-height: 650px; display: grid; align-items: center; overflow: hidden; background: var(--ink); }
.hero::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(3,8,17,.95) 0%, rgba(3,8,17,.6) 45%, rgba(3,8,17,.12) 80%), linear-gradient(0deg, rgba(5,11,22,.78), transparent 45%); z-index: 1; }
.hero-media { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; }
.hero-content { position: relative; z-index: 2; max-width: none; padding-block: 90px; }
.eyebrow { display: flex; align-items: center; gap: 10px; margin: 0 0 18px; color: var(--gold); font-size: .72rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
.eyebrow::before { content: ""; width: 22px; height: 1px; background: var(--gold); }
h1,h2,h3 { margin: 0; font-family: "Oswald", Impact, sans-serif; line-height: 1.02; letter-spacing: -.02em; text-transform: uppercase; }
h1 { max-width: 900px; font-size: clamp(3.6rem,7vw,7.2rem); }
h2 { font-size: clamp(2.35rem,4.4vw,4.55rem); }
h3 { font-size: clamp(1.35rem,2.2vw,2.1rem); }
.home-hero h1 { max-width: 980px; font-size: clamp(2.15rem,7vw,7.2rem); }
.home-hero h1 span { display: block; white-space: nowrap; }
.hero-copy { max-width: 680px; margin: 22px 0 28px; color: #e4e8ef; font-size: clamp(1rem,1.4vw,1.22rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero-facts { display: flex; gap: 28px; margin-top: 30px; color: #d6dbe3; font-size: .78rem; }
.hero-facts span::before { content: "✓"; color: var(--gold); margin-right: 8px; }

.section { padding: clamp(78px,9vw,132px) 0; }
.section-navy { background: var(--navy); }
.section-mid { background: #091326; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 28px; margin-bottom: 42px; }
.section-heading p:not(.eyebrow) { max-width: 590px; margin: 16px 0 0; color: var(--muted); }
.section-heading .eyebrow { margin-bottom: 26px; }
.section-heading.center { display: block; max-width: 760px; margin: 0 auto 50px; text-align: center; }
.section-heading.center .eyebrow { justify-content: center; }
.offerings { padding-block: clamp(54px,6vw,82px); }
.offerings .section-heading { margin-bottom: 34px; }
.lead { color: #d4dae4; font-size: 1.05rem; }
.lead p { margin: 0 0 1.25em; }

.offer-viewport { overflow: hidden; outline: none; touch-action: pan-y; }
.offer-viewport:focus-visible { box-shadow: 0 0 0 2px var(--gold); }
.offer-grid { display: flex; gap: 18px; transform: translateX(0); will-change: transform; }
.offer-grid.is-animating { transition: transform .46s cubic-bezier(.22,.61,.36,1); }
.offer-card { position: relative; flex: 0 0 calc((100% - 36px)/3); min-height: 510px; overflow: hidden; border: 1px solid rgba(255,255,255,.12); border-radius: var(--radius); }
.offer-card img { height: 100%; object-fit: cover; filter: saturate(.75) brightness(.62); transition: transform .55s, filter .35s; }
.offer-card::after { content: ""; position: absolute; inset: 35% 0 0; background: linear-gradient(transparent, rgba(3,8,17,.98)); }
.offer-card .card-content { position: absolute; inset: auto 20px 24px; z-index: 2; }
.offer-card h3 { font-size: 1.35rem; }
.offer-card .text-link { display: inline-block; margin-top: 14px; color: #fff; }
.offer-card:hover img { transform: scale(1.045); filter: saturate(1) brightness(.78); }
.carousel-controls { display: flex; flex: 0 0 auto; gap: 10px; padding-bottom: 4px; }
.carousel-btn { display: grid; width: 48px; height: 48px; place-items: center; border: 1px solid rgba(255,255,255,.3); border-radius: 50%; background: transparent; color: var(--white); cursor: pointer; transition: border-color .2s, background .2s, color .2s; }
.carousel-btn:hover,.carousel-btn:focus-visible { border-color: var(--gold); outline: none; background: var(--gold); color: var(--ink); }
.carousel-btn svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

.cards-3 { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
.class-heading-actions { display: grid; justify-items: end; gap: 20px; }
.class-viewport { overflow: hidden; outline: none; touch-action: pan-y; }
.class-viewport:focus-visible { box-shadow: 0 0 0 2px var(--gold); }
.class-track { display: flex; grid-template-columns: none; gap: 28px; transform: translateX(0); will-change: transform; }
.class-track.is-animating { transition: transform .46s cubic-bezier(.22,.61,.36,1); }
.class-track .class-card { flex: 0 0 calc((100% - 56px)/3); }
.class-card { background: var(--navy); border: 1px solid var(--line); border-radius: var(--radius); overflow: hidden; }
.class-card img { height: 260px; object-fit: cover; filter: saturate(.75); }
.class-card-body { padding: 24px; }
.class-card h3 { font-size: 1.55rem; }
.meta { margin: 10px 0 14px; color: var(--gold); font-size: .74rem; font-weight: 700; }
.class-card p { margin: 0; color: var(--muted); font-size: .9rem; }

.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(45px,7vw,110px); align-items: center; }
.split.reverse .split-media { order: 2; }
.split-media { min-height: 480px; overflow: hidden; border-radius: var(--radius); }
.split-media img { height: 100%; min-height: 480px; object-fit: cover; }
.split-copy h2, .split-copy h3 { margin-bottom: 24px; }
.split-copy p { margin: 0 0 1.2em; color: #c5cdd9; }
.feature-list { display: flex; flex-wrap: wrap; gap: 32px; margin-top: 38px; }
.feature-list strong { display: block; color: var(--gold); font-family: "Oswald"; font-size: 1.15rem; text-transform: uppercase; }
.feature-list span { color: var(--muted); font-size: .82rem; }

.trainers { display: grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
.trainer-card img { height: 420px; object-fit: cover; object-position: top; background: white; border-radius: var(--radius); }
.trainer-card h3 { margin-top: 18px; font-size: 1.55rem; }
.trainer-role { color: var(--gold); font-size: .76rem; font-weight: 700; }
.trainer-card p { color: var(--muted); font-size: .88rem; }

.plans { display: grid; grid-template-columns: repeat(3,1fr); gap: 22px; align-items: stretch; }
.plan { position: relative; padding: 38px 34px; border: 1px solid var(--line); border-radius: var(--radius); background: rgba(5,11,22,.45); }
.plans > .plan { height: 100%; margin-top: 0 !important; margin-bottom: 0 !important; align-self: stretch; }
.plan.featured { border-color: var(--gold); box-shadow: 0 0 0 1px rgba(221,184,98,.25), 0 20px 70px rgba(0,0,0,.26); }
.plan-badge { position: absolute; top: -12px; left: 50%; transform: translateX(-50%); padding: 5px 12px; border-radius: 99px; background: var(--gold); color: #111; font-size: .66rem; font-weight: 800; text-transform: uppercase; }
.plan h3 { text-align: center; }
.price { margin: 14px 0 28px; color: var(--white); font: 700 2.35rem/1 "Oswald"; text-align: center; }
.featured .price { color: var(--gold); }
.plan ul { margin: 0; padding: 22px 0 0; border-top: 1px solid var(--line); list-style: none; }
.plan li { position: relative; padding: 8px 0 8px 24px; color: #c5cdd9; font-size: .86rem; }
.plan li::before { content: "✓"; position: absolute; left: 0; color: var(--gold); }
.wide-cta { width: 100%; margin-top: 24px; }

.app-band { background: var(--navy); overflow: hidden; }
.app-layout { display: grid; grid-template-columns: 1.1fr .9fr; align-items: end; min-height: 720px; perspective: 1500px; perspective-origin: 78% 48%; }
.app-copy { padding-block: 92px; }
.check-list { padding: 0; list-style: none; }
.check-list li { margin: 10px 0; color: #c5cdd9; }
.check-list li::before { content: "✓"; color: var(--gold); margin-right: 10px; }
.store-row { display: flex; gap: 10px; margin-top: 30px; }
.store-row a { display: inline-flex; border-radius: 6px; transition: transform .3s ease,filter .3s ease,box-shadow .3s ease; }
.store-row a:hover { transform: translateY(-3px); filter: brightness(1.08); box-shadow: 0 10px 26px rgba(0,0,0,.28); }
.store-row a:focus-visible { outline: 2px solid #daf1ff; outline-offset: 4px; }
.store-row img { width: auto; height: 42px; object-fit: contain; }
.phone-stage { position: relative; width: 390px; height: 690px; display: grid; place-items: center; margin: 20px auto 0; perspective: 1080px; perspective-origin: 46% 40%; transform-style: preserve-3d; }
.phone-stage::after { content: ""; position: absolute; left: 50%; bottom: 3px; z-index: -1; width: 245px; height: 48px; border-radius: 50%; background: rgba(0,0,0,.58); filter: blur(18px); transform: translateX(-50%) rotateX(72deg); animation: phone-floor-shadow 9s ease-in-out infinite alternate; }
.phone { position: relative; width: 286px; padding: 9px; border: 8px solid #121a2a; border-radius: 48px; background: linear-gradient(135deg,#53647c 0%,#253650 16%,#0e1728 52%,#25354c 100%); box-shadow: 0 30px 44px rgba(0,0,0,.34),inset 1px 1px 0 rgba(255,255,255,.32),inset -2px -1px 0 rgba(0,0,0,.88); transform-style: preserve-3d; transform-origin: 50% 76%; will-change: transform; animation: phone-3d-turn 8s cubic-bezier(.45,.05,.55,.95) infinite alternate; }
.phone::before { display: none; }
.phone-side { position: absolute; top: 24px; right: -18px; bottom: 24px; width: 18px; border-radius: 0 9px 9px 0; background: linear-gradient(90deg,#6d7e95 0%,#354761 22%,#101a2a 68%,#445873 100%); box-shadow: inset -2px 0 3px rgba(255,255,255,.1),inset 2px 0 2px rgba(0,0,0,.48); transform: rotateY(90deg); transform-origin: left center; }
.phone-side::before { content: ""; position: absolute; right: 5px; top: 100px; width: 5px; height: 78px; border-radius: 4px; background: linear-gradient(90deg,#101a2a,#71829a); box-shadow: 0 1px 0 rgba(255,255,255,.18); }
.phone-side::after { content: ""; position: absolute; right: 4px; bottom: 112px; width: 7px; height: 58px; border-radius: 6px; background: linear-gradient(90deg,#0d1727,#687b94); box-shadow: 0 1px 0 rgba(255,255,255,.16); }
.phone-bottom { position: absolute; left: 26px; right: 26px; bottom: -18px; height: 18px; border-radius: 0 0 9px 9px; background: linear-gradient(#586b84,#1d2c41 42%,#0a101a 84%); box-shadow: inset 0 -2px 2px rgba(0,0,0,.55); transform: rotateX(-90deg); transform-origin: center top; }
.phone-hardware { position: absolute; left: 50%; top: 17px; z-index: 7; width: 92px; height: 27px; display: flex; align-items: center; justify-content: center; gap: 9px; border-radius: 18px; background: #010206; box-shadow: inset 0 1px 2px rgba(255,255,255,.08),0 1px 2px rgba(0,0,0,.75); transform: translateX(-50%) translateZ(19px); }
.phone-hardware i { display: block; width: 38px; height: 4px; border-radius: 10px; background: #111722; box-shadow: inset 0 1px 1px rgba(255,255,255,.11); }
.phone-hardware b { display: block; width: 8px; height: 8px; border-radius: 50%; background: radial-gradient(circle at 35% 35%,#3c6c9e,#07101e 46%,#010206 68%); box-shadow: 0 0 0 2px #05070b; }
.phone-glass { position: absolute; inset: 10px; z-index: 6; border-radius: 38px; background: linear-gradient(112deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.035) 22%,transparent 43%); pointer-events: none; transform: translateZ(17px); }
.phone-screen { position: relative; min-height: 570px; padding: 54px 17px 28px; border: 1px solid rgba(221,184,98,.32); border-radius: 38px; background: linear-gradient(155deg,#142847,#0f1c34 62%,#091326); box-shadow: inset 0 0 42px rgba(0,0,0,.24),0 0 0 2px rgba(0,0,0,.92); transform: translateZ(15px); }
.phone-day { padding-bottom: 16px; color: var(--gold); font: 600 1.2rem "Oswald"; text-align: center; text-transform: uppercase; }
.phone-class { padding: 16px 0; border-top: 1px solid var(--line); }
.phone-class time { color: var(--gold); font-size: .7rem; }
.phone-class strong { display: block; margin-top: 4px; font-family: "Oswald"; text-transform: uppercase; }
@keyframes phone-3d-turn {
  0% { transform: rotateX(3deg) rotateY(-29deg) rotateZ(-.8deg) translate3d(-4px,4px,0); }
  100% { transform: rotateX(-1deg) rotateY(-9deg) rotateZ(.4deg) translate3d(10px,-6px,5px); }
}
@keyframes phone-floor-shadow { from { width: 205px; opacity: .55; transform: translateX(-56%) rotateX(72deg); } to { width: 258px; opacity: .82; transform: translateX(-44%) rotateX(72deg); } }

.service-hero { min-height: 570px; }
.service-hero h1 { font-size: clamp(3.4rem,6vw,6.2rem); }
.content-stack .section:nth-child(even) { background: var(--navy); }
.content-stack .section:nth-child(odd) { background: var(--ink); }
.content-stack .split-copy h2 { font-size: clamp(2rem,3.5vw,3.5rem); }
.mini-benefits { display: grid; grid-template-columns: repeat(3,1fr); gap: 18px; margin-top: 34px; }
.mini-benefit { padding: 25px; border: 1px solid var(--line); background: rgba(5,11,22,.35); }
.mini-benefit strong { color: var(--gold); font-family: "Oswald"; font-size: 1.2rem; text-transform: uppercase; }
.mini-benefit p { margin: 8px 0 0; font-size: .86rem; }
.business-benefits .mini-benefit { min-height: 245px; display: flex; flex-direction: column; justify-content: end; padding: 32px; background: linear-gradient(145deg,#091326,#050b16); }
.business-benefits .mini-benefit h3 { margin-top: 16px; font-size: 1.35rem; }
.business-benefits .mini-benefit p { color: var(--muted); }

.schedule { padding: clamp(70px,8vw,110px) 0; background: var(--navy); }
.schedule-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); gap: 12px; }
.day-card { border: 1px solid var(--line); background: var(--ink); }
.day-title { padding: 10px 16px; background: #18356f; color: var(--gold); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.event { min-height: 116px; padding: 17px 16px; border-top: 1px solid var(--line); }
.event-meta { display: flex; justify-content: space-between; color: var(--gold); font-size: .7rem; }
.event strong { display: block; margin: 9px 0 4px; font: 600 1rem "Oswald"; text-transform: uppercase; }
.event span { color: var(--muted); font-size: .75rem; }

.group-catalogue { background: var(--ink); }
.group-class-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; }
.group-class-card { position: relative; min-height: 158px; display: flex; flex-direction: column; justify-content: end; padding: 26px 24px 22px; overflow: hidden; border: 1px solid var(--line); background: linear-gradient(145deg,#10203d,#0b172d 68%); }
.group-class-card::after { content: ""; position: absolute; inset: auto 0 0; height: 2px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .35s; }
.group-class-card:hover::after,.group-class-card:focus-visible::after { transform: scaleX(1); }
.group-class-card:focus-visible { outline: 2px solid var(--gold); outline-offset: 3px; }
.group-class-card h3 { max-width: 82%; font-size: 1.25rem; }
.group-class-card p { margin: 8px 0 0; color: var(--muted); font-size: .875rem; }
.group-card-number { position: absolute; top: 15px; right: 17px; color: rgba(255,255,255,.26); font: 700 .75rem/1 "Oswald",sans-serif; letter-spacing: .09em; }
.group-card-link { max-height: 0; overflow: hidden; color: var(--gold); font-size: .75rem; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; opacity: 0; transform: translateY(8px); transition: max-height .3s,opacity .3s,transform .3s,margin .3s; }
.group-class-card:hover .group-card-link,.group-class-card:focus-visible .group-card-link { max-height: 30px; margin-top: 14px; opacity: 1; transform: translateY(0); }
.group-schedule .schedule-scroll { overflow-x: auto; padding: 3px 2px 18px; scrollbar-color: var(--gold) rgba(255,255,255,.08); }
.group-schedule .schedule-grid { min-width: 1190px; grid-template-columns: repeat(7,minmax(0,1fr)); }
.group-schedule .event { height: 156px; min-height: 156px; }
.group-app-cta { position: relative; min-height: 500px; display: grid; place-items: center; overflow: hidden; text-align: center; }
.group-app-shade { position: absolute; inset: 0; z-index: 1; background: rgba(7,12,23,.6); pointer-events: none; }
.group-app-cta > img { position: absolute; inset: 0; height: 100%; object-fit: cover; filter: saturate(.7); transition: transform 1s cubic-bezier(.2,.7,.2,1); }
.group-app-cta.is-visible > img { transform: scale(1.045); }
.group-app-overlay { position: relative; z-index: 2; max-width: 680px; padding: 80px 22px; }
.group-app-overlay .eyebrow { justify-content: center; }
.group-app-overlay p:not(.eyebrow) { margin: 20px auto 28px; color: #d7dde7; font-size: 1.05rem; }

.faq-list { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.faq-item { border: 1px solid var(--line); background: var(--navy); }
.faq-question { width: 100%; display: flex; justify-content: space-between; gap: 20px; padding: 20px; border: 0; color: white; background: transparent; text-align: left; font-weight: 700; cursor: pointer; }
.faq-question::after { content: "+"; color: var(--gold); font-size: 1.25rem; }
.faq-item.open .faq-question::after { content: "−"; }
.faq-answer { display: none; padding: 0 20px 20px; color: var(--muted); font-size: .9rem; }
.faq-item.open .faq-answer { display: block; }
.business-faq .faq-item:last-child { grid-column: 1/-1; }

.contact-grid { display: grid; grid-template-columns: .85fr 1.15fr; gap: 70px; }
.contact-grid > div > h2 { margin-bottom: 48px; }
.contact-details { display: grid; gap: 30px; }
.contact-block small { display: block; color: var(--gold); font-weight: 800; text-transform: uppercase; }
.contact-block p { margin: 7px 0; color: #cbd2dd; }
.contact-form { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; padding: 32px; background: var(--navy); border: 1px solid var(--line); }
.contact-map { position: relative; min-height: 460px; margin-top: 64px; overflow: hidden; border: 1px solid var(--line); background: var(--navy); }
.contact-map iframe { display: block; width: 100%; height: 460px; border: 0; filter: saturate(.72) contrast(1.08); }
.map-card { position: absolute; left: 24px; bottom: 24px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; width: calc(100% - 48px); padding: 18px 20px; background: rgba(4,12,25,.94); border: 1px solid rgba(229,188,91,.55); box-shadow: 0 18px 50px rgba(0,0,0,.35); backdrop-filter: blur(12px); }
.map-pin { display: grid; width: 44px; height: 44px; place-items: center; color: var(--gold); border: 1px solid rgba(229,188,91,.55); border-radius: 50%; }
.map-pin svg { width: 23px; height: 23px; fill: none; stroke: currentColor; stroke-width: 1.7; }
.map-card small { display: block; margin-bottom: 3px; color: var(--gold); font-size: .75rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.map-card strong { display: block; color: #fff; }
.map-card a { color: #fff; font-size: .875rem; font-weight: 800; text-transform: uppercase; text-decoration: underline; text-decoration-color: var(--gold); text-underline-offset: 5px; }
.field { display: grid; gap: 7px; }
.field.full { grid-column: 1/-1; }
.field label { color: #dce1e9; font-size: .78rem; font-weight: 700; }
.field input,.field textarea,.field select { width: 100%; min-height: 48px; padding: 12px 14px; border: 1px solid var(--line); border-radius: 2px; outline: none; background: #071122; color: white; }
.field textarea { min-height: 125px; resize: vertical; }
.field input:focus,.field textarea:focus,.field select:focus { border-color: var(--gold); }
.form-status { grid-column: 1/-1; min-height: 22px; color: var(--gold); font-size: .8rem; }
.business-contact-grid { display: grid; grid-template-columns: 1.05fr .95fr; gap: clamp(38px,6vw,82px); align-items: start; }
.business-contact-form { padding: clamp(26px,4vw,48px); }
.business-contact-form h2 { margin-bottom: 18px; }
.business-contact-form .eyebrow { margin-bottom: 0; }
.business-contact-form select {
  appearance: none;
  padding-right: 42px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  background-size: 12px 8px;
}
.business-contact-info h2 { margin-bottom: 38px; }
.business-map { height: 270px; margin: 34px 0 18px; overflow: hidden; border: 1px solid var(--line); background: var(--navy); }
.business-map iframe { width: 100%; height: 100%; border: 0; filter: saturate(.72) contrast(1.08); }

.pt-team-heading { padding-bottom: clamp(28px,4vw,52px); }
.pt-team-heading .section-heading { margin-bottom: 0; }
.pt-trainer-section { padding-top: clamp(56px,7vw,96px); }
.pt-trainer-section .pt-portrait { min-height: 520px; background: #0b1830; }
.pt-trainer-section .pt-portrait img { min-height: 520px; object-position: top center; }
.pt-competence { padding-top: 18px; border-top: 1px solid var(--line); }
.pt-competence strong { color: var(--gold); }
.site-footer { padding: 70px 0 26px; border-top: 1px solid var(--line); background: #040914; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 45px; }
.footer-title { margin-bottom: 16px; color: var(--gold); font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.footer-grid p,.footer-grid a { color: #aeb7c6; font-size: .84rem; }
.footer-links { display: grid; gap: 8px; }
.footer-bottom { display: flex; justify-content: space-between; margin-top: 50px; padding-top: 22px; border-top: 1px solid var(--line); color: #7f8999; font-size: .73rem; }

@media (min-width: 1051px) {
  .footer-grid { grid-template-columns: minmax(0,1fr) repeat(3,max-content); column-gap: clamp(56px,6vw,96px); }
  .footer-grid > :nth-child(n+2) { width: max-content; justify-self: start; }
}

.not-found { min-height: 70vh; display: grid; place-items: center; text-align: center; }
.not-found h1 { font-size: 7rem; color: var(--gold); }

@media (max-width: 1050px) {
  .site-header.open { backdrop-filter: none; }
  .nav-links,.nav-actions { display: none; }
  .menu-toggle { display: block; }
  .site-header.open .nav-links { position: fixed; inset: var(--header) 0 auto; display: grid; gap: 0; padding: 14px 22px 98px; background: var(--ink); border-bottom: 1px solid var(--line); box-shadow: 0 24px 50px rgba(0,0,0,.38); transform: none; }
  .site-header.open .nav-links a { padding: 15px 0; border-bottom: 1px solid var(--line); font-size: 1rem; }
  .site-header.open .nav-dropdown { border-bottom: 1px solid var(--line); font-size: 1rem; }
  .site-header.open .nav-dropdown summary { justify-content: space-between; padding: 15px 0; }
  .site-header.open .dropdown-menu { position: static; min-width: 0; padding: 0 0 8px 16px; border: 0; border-left: 1px solid rgba(221,184,98,.35); background: transparent; box-shadow: none; transform: none; }
  .site-header.open .dropdown-menu::before { display: none; }
  .site-header.open .dropdown-menu a { padding: 11px 14px; border-bottom: 0; color: #b9c1ce; font-size: .92rem; }
  .site-header.open .nav-actions { position: fixed; top: auto; bottom: 0; left: 0; right: 0; display: flex; gap: 12px; margin: 0; padding: 16px 22px; border-top: 1px solid var(--line); background: var(--ink); }
  .site-header.open .nav-actions .login { min-height: 45px; display: inline-flex; flex: 1; align-items: center; justify-content: center; border: 1px solid rgba(255,255,255,.35); }
  .site-header.open .nav-actions .btn { flex: 1; }
  .offer-card { flex-basis: calc((100% - 18px)/2); min-height: 440px; }
  .footer-grid { grid-template-columns: 2fr 1fr 1fr; }
  .footer-grid > :last-child { grid-column: 2; }
}

@media (max-width: 780px) {
  :root { --header: 64px; }
  .container { width: min(calc(100% - 30px), var(--max)); }
  .hero,.service-hero { min-height: 630px; }
  .hero::before { background: linear-gradient(90deg,rgba(3,8,17,.92),rgba(3,8,17,.33)),linear-gradient(0deg,rgba(5,11,22,.8),transparent); }
  .hero-content { padding-block: 70px; }
  h1 { font-size: clamp(3rem,15vw,4.5rem); }
  .hero-facts { display: grid; gap: 8px; }
  .section { padding: 74px 0; }
  .section-heading { display: block; }
  .section-heading .text-link { display: inline-block; margin-top: 16px; }
  .offerings .section-heading { display: flex; align-items: end; }
  .offer-card { flex-basis: 86%; min-height: 400px; }
  .cards-3,.trainers,.plans { grid-template-columns: 1fr; }
  .class-track { gap: 18px; }
  .class-track .class-card { flex-basis: calc((100% - 18px)/2); }
  .class-card img { height: 235px; }
  .split,.split.reverse { grid-template-columns: 1fr; gap: 36px; }
  .split.reverse .split-media { order: 0; }
  .split-media,.split-media img { min-height: 330px; }
  .mini-benefits { grid-template-columns: 1fr; }
  .app-layout { grid-template-columns: 1fr; }
  .app-copy { padding-bottom: 20px; }
  .store-row img { height: 38px; }
  .phone-stage { width: 100%; margin-top: 20px; }
  .faq-list { grid-template-columns: 1fr; }
  .contact-grid { grid-template-columns: 1fr; gap: 40px; }
  .business-contact-grid { grid-template-columns: 1fr; }
  .business-faq .faq-item:last-child { grid-column: auto; }
  .group-class-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .contact-grid > div > h2 { margin-bottom: 34px; }
  .contact-form { padding: 22px; grid-template-columns: 1fr; }
  .contact-map { min-height: 420px; margin-top: 42px; }
  .contact-map iframe { height: 420px; }
  .map-card { left: 14px; bottom: 14px; grid-template-columns: auto 1fr; width: calc(100% - 28px); padding: 15px; }
  .map-card a { grid-column: 2; }
  .field.full { grid-column: auto; }
  .pt-trainer-section .pt-portrait,
  .pt-trainer-section .pt-portrait img { min-height: 390px; }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .footer-grid > :last-child { grid-column: auto; }
}

@media (max-width: 520px) {
  .group-class-grid { grid-template-columns: 1fr; }
  .group-class-card { min-height: 138px; }
  .offerings .section-heading { display: block; }
  .carousel-controls { margin-top: 24px; }
  .offer-grid { gap: 14px; }
  .offer-card { flex-basis: 88%; min-height: 360px; }
  .class-heading-actions { justify-items: start; margin-top: 22px; }
  .class-heading-actions .text-link { margin-top: 0; }
  .class-track { gap: 14px; }
  .class-track .class-card { flex-basis: 88%; }
  .hero-actions .btn { width: 100%; }
  .feature-list { display: grid; gap: 18px; }
  .plans { gap: 16px; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-bottom { display: grid; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}

/* Motion edition: lightweight spatial depth without changing the Trinity layout. */
html { --scroll-progress: 0%; --hero-scroll: 0px; }
body { overflow-x: hidden; }
.site-header::after { content: ""; position: absolute; left: 0; bottom: -1px; width: var(--scroll-progress); height: 2px; background: linear-gradient(90deg,var(--gold-deep),#f4d98e); box-shadow: 0 0 18px rgba(221,184,98,.65); }

.hero { --hero-x: 0px; --hero-y: 0px; --depth-x: 0deg; --depth-y: 0deg; perspective: 1300px; isolation: isolate; }
.hero::after { display: none; }
.motion-ready .hero-media { transform: translate3d(var(--hero-x),calc(var(--hero-y) + var(--hero-scroll)),0) scale(1.085); transition: transform .2s ease-out; }
.motion-ready .hero-content { z-index: 4; transform: none; text-shadow: 0 14px 42px rgba(0,0,0,.35); }
.hero-depth-mark { position: absolute; right: clamp(3%,8vw,11%); top: 50%; z-index: 2; width: clamp(170px,23vw,340px); aspect-ratio: 1; pointer-events: none; transform-style: preserve-3d; transform: translateY(-48%) rotateX(var(--depth-x)) rotateY(var(--depth-y)) rotateZ(-8deg); transition: transform .35s ease-out; opacity: .64; }
.hero-depth-mark span { position: absolute; inset: 0; border: 1px solid rgba(221,184,98,.46); clip-path: polygon(15% 0,100% 0,85% 100%,0 100%); animation: depth-drift 8s ease-in-out infinite alternate; }
.hero-depth-mark span:nth-child(2) { inset: 13%; border-color: rgba(246,247,250,.26); transform: translateZ(45px) rotate(14deg); animation-delay: -2.5s; }
.hero-depth-mark span:nth-child(3) { inset: 27%; border-color: rgba(221,184,98,.68); transform: translateZ(90px) rotate(-11deg); animation-delay: -5s; }
@keyframes depth-drift { from { translate: 0 -5px; } to { translate: 0 7px; } }

.reveal-item { opacity: 0; transform: translateY(34px) rotateX(3deg); transform-origin: center top; transition: opacity .75s ease var(--reveal-delay,0ms),transform .85s cubic-bezier(.2,.7,.2,1) var(--reveal-delay,0ms); }
.reveal-item.is-visible { opacity: 1; transform: translateY(0) rotateX(0); }
.motion-card { --tilt-x: 0deg; --tilt-y: 0deg; --lift: 0px; --glow-x: 50%; --glow-y: 50%; transform: perspective(900px) rotateX(var(--tilt-x)) rotateY(var(--tilt-y)) translateY(var(--lift)); transform-style: preserve-3d; transition: transform .2s ease-out,border-color .25s,box-shadow .3s; isolation: isolate; }
.motion-card:hover { --lift: -7px; border-color: rgba(218,241,255,.58); box-shadow: 0 28px 70px rgba(0,0,0,.28),0 0 0 1px rgba(218,241,255,.12); }
.motion-card::before { content: ""; position: absolute; inset: 0; z-index: 3; pointer-events: none; background: radial-gradient(circle at var(--glow-x) var(--glow-y),rgba(218,241,255,.2),transparent 32%); opacity: 0; transition: opacity .25s; }
.motion-card:hover::before { opacity: 1; }
.motion-card > * { transform: translateZ(1px); }
.trainer-card.motion-card,.mini-benefit.motion-card { padding-bottom: 1px; }
.trainers { align-items: stretch; }
.trainers > .trainer-card { height: 100%; margin-top: 0 !important; margin-bottom: 0 !important; align-self: stretch; }

.btn { position: relative; overflow: hidden; }
.btn::after { content: ""; position: absolute; inset: -70% -30%; background: linear-gradient(110deg,transparent 40%,rgba(255,255,255,.34) 50%,transparent 60%); transform: translateX(-75%) rotate(8deg); transition: transform .65s ease; pointer-events: none; }
.btn:hover::after { transform: translateX(75%) rotate(8deg); }
.section-heading h2,.split-copy h2 { text-shadow: 0 16px 38px rgba(0,0,0,.18); }
.split-media { position: relative; box-shadow: 0 35px 90px rgba(0,0,0,.28); }
.split-media::after { content: ""; position: absolute; inset: 0; pointer-events: none; border: 1px solid rgba(221,184,98,.16); box-shadow: inset 0 0 55px rgba(5,11,22,.22); }
.offer-viewport { perspective: 1200px; }

/* Comfortable small-text baseline for the motion edition. */
.nav-links a,.login,.feature-list span,.footer-grid p,.footer-grid a,.footer-bottom { font-size: .875rem; }
.btn,.btn-small,.field label { font-size: .875rem; }
.eyebrow,.text-link,.meta,.trainer-role,.phone-class time,.day-title,.event-meta,.event span,.footer-title { font-size: .8125rem; }
.plan-badge { font-size: .75rem; }
.class-card p,.trainer-card p,.mini-benefit p,.faq-answer { font-size: 1rem; }
.plan li { font-size: .9375rem; }

@media (max-width: 1050px) {
  .hero-depth-mark { right: -7%; opacity: .42; }
}
@media (max-width: 780px) {
  .hero-depth-mark { width: 220px; right: -25%; top: 55%; opacity: .28; }
  .motion-ready .hero-content { transform: none; }
  .motion-ready .hero-media { transform: translate3d(0,var(--hero-scroll),0) scale(1.07); }
}
@media (prefers-reduced-motion: reduce) {
  .motion-ready .hero-media,.motion-ready .hero-content,.hero-depth-mark,.reveal-item,.motion-card { transform: none !important; }
  .reveal-item { opacity: 1; }
  .hero-depth-mark span { animation: none; }
  .btn::after { display: none; }
}

/* Agency edition: editorial rhythm, kinetic type and structured motion. */
body { background-image: linear-gradient(90deg,transparent calc(50% - .5px),rgba(255,255,255,.018) 50%,transparent calc(50% + .5px)); }
.hero-wordmark { position: absolute; left: 49%; bottom: -2.5vw; z-index: 2; color: transparent; font: 700 clamp(9rem,20vw,21rem)/.75 "Oswald",sans-serif; letter-spacing: -.055em; -webkit-text-stroke: 1px rgba(255,255,255,.095); white-space: nowrap; pointer-events: none; transform: translateX(-18%) rotate(-4deg); animation: wordmark-drift 12s ease-in-out infinite alternate; }
.hero-corner-meta { position: absolute; right: 32px; bottom: 30px; z-index: 4; display: grid; justify-items: end; gap: 2px; color: rgba(255,255,255,.72); font-size: .75rem; font-weight: 800; letter-spacing: .18em; writing-mode: vertical-rl; transform: rotate(180deg); }
.hero-corner-meta span:nth-child(2) { color: var(--gold); }
@keyframes wordmark-drift { from { transform: translateX(-20%) rotate(-4deg); } to { transform: translateX(-14%) rotate(-2deg); } }

.motion-ready .hero-content > * { opacity: 0; animation: agency-rise .82s cubic-bezier(.16,.8,.25,1) forwards; }
.motion-ready .hero-content > :nth-child(1) { animation-delay: .08s; }
.motion-ready .hero-content > :nth-child(2) { animation-delay: .16s; }
.motion-ready .hero-content > :nth-child(3) { animation-delay: .25s; }
.motion-ready .hero-content > :nth-child(4) { animation-delay: .34s; }
.motion-ready .hero-content > :nth-child(5) { animation-delay: .43s; }
@keyframes agency-rise { from { opacity: 0; clip-path: inset(0 0 100%); transform: translateY(42px); } to { opacity: 1; clip-path: inset(-10%); transform: translateY(0); } }

.motion-ribbon { position: relative; z-index: 5; overflow: hidden; height: 58px; border-block: 1px solid #e7c66f; background: var(--gold); color: #07101f; }
.motion-ribbon-track { display: flex; width: max-content; height: 100%; align-items: center; gap: 26px; padding-inline: 26px; animation: ribbon-run 26s linear infinite; }
.motion-ribbon span { font: 700 1rem/1 "Oswald",sans-serif; letter-spacing: .075em; white-space: nowrap; }
.motion-ribbon i { width: 7px; height: 7px; border: 1px solid currentColor; transform: rotate(45deg); }
@keyframes ribbon-run { to { transform: translateX(-50%); } }

section[data-section-number] { position: relative; isolation: isolate; }
section[data-section-number]::after { content: attr(data-section-number); position: absolute; right: max(22px,calc((100vw - var(--max))/2)); top: clamp(34px,5vw,70px); z-index: 0; color: transparent; font: 700 clamp(6rem,13vw,12rem)/.8 "Oswald",sans-serif; letter-spacing: -.06em; -webkit-text-stroke: 1px rgba(221,184,98,.12); pointer-events: none; }
section[data-section-number] > .container { position: relative; z-index: 1; }
.section-heading { position: relative; }
.section-heading::after { content: ""; position: absolute; left: 0; right: 0; bottom: -20px; height: 1px; background: linear-gradient(90deg,var(--gold) 0 9%,rgba(255,255,255,.12) 9% 100%); transform: scaleX(0); transform-origin: left; transition: transform 1s cubic-bezier(.16,.8,.25,1) .2s; }
.is-visible .section-heading::after,.offerings .section-heading::after { transform: scaleX(1); }
.section-heading h2 { position: relative; z-index: 1; }

.card-index { position: absolute; top: 18px; right: 18px; z-index: 5; display: grid; min-width: 40px; height: 40px; place-items: center; border: 1px solid rgba(255,255,255,.4); border-radius: 50%; color: white; background: rgba(5,11,22,.34); backdrop-filter: blur(8px); font-size: .75rem; font-weight: 800; letter-spacing: .08em; }
.split-media::before { content: ""; position: absolute; inset: 0; z-index: 3; background: var(--gold); transform: scaleX(1); transform-origin: right; transition: transform 1s cubic-bezier(.7,0,.2,1) .18s; pointer-events: none; }
.section.is-visible .split-media::before { transform: scaleX(0); }
.content-stack .section:nth-child(even) .split-media::before { transform-origin: left; }

@media (min-width: 1060px) {
  .nav-wrap { gap: 24px; }
  .nav-links { gap: clamp(14px,1.35vw,24px); }
  .nav-actions { gap: 14px; margin-left: auto; }
  .cards-3,.trainers,.plans { align-items: stretch; }
  .cards-3 > *, .trainers > *, .plans > .featured { margin-top: 0; margin-bottom: 0; }
  .section-heading > div { max-width: 72%; }
}
@media (max-width: 780px) {
  .hero-wordmark { left: 20%; bottom: 6%; font-size: 9rem; opacity: .52; }
  .hero-corner-meta { right: 12px; bottom: 18px; font-size: .65rem; }
  .motion-ribbon { height: 48px; }
  .motion-ribbon-track { gap: 20px; padding-inline: 20px; }
  .motion-ribbon span { font-size: .875rem; }
  section[data-section-number]::after { right: 14px; top: 32px; font-size: 6rem; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-wordmark,.motion-ribbon-track,.motion-ready .hero-content > * { animation: none; }
  .motion-ready .hero-content > * { opacity: 1; clip-path: none; transform: none; }
  .split-media::before { display: none; }
}

/* Studio edition: a stronger editorial-athletic identity. */
main > section:not(.hero) {
  background-image:
    radial-gradient(ellipse 58% 42% at 8% 12%,rgba(31,67,121,.18),transparent 72%),
    radial-gradient(ellipse 42% 34% at 92% 88%,rgba(221,184,98,.055),transparent 74%),
    repeating-radial-gradient(circle at 8% 18%,transparent 0 74px,rgba(255,255,255,.024) 75px 76px,transparent 77px 128px),
    linear-gradient(rgba(255,255,255,.017) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.017) 1px,transparent 1px);
  background-size: auto,auto,auto,68px 68px,68px 68px;
  box-shadow: inset 0 1px rgba(255,255,255,.018),inset 0 -1px rgba(0,0,0,.2);
}
main > section:not(.hero):nth-of-type(even) {
  background-image:
    radial-gradient(ellipse 54% 42% at 92% 14%,rgba(37,78,138,.165),transparent 72%),
    radial-gradient(ellipse 38% 30% at 12% 86%,rgba(221,184,98,.05),transparent 74%),
    repeating-radial-gradient(circle at 92% 16%,transparent 0 74px,rgba(255,255,255,.023) 75px 76px,transparent 77px 128px),
    linear-gradient(rgba(255,255,255,.016) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.016) 1px,transparent 1px);
  background-size: auto,auto,auto,68px 68px,68px 68px;
}
.class-card { background-image: linear-gradient(145deg,rgba(21,42,78,.42),rgba(5,11,22,.18)); box-shadow: 0 18px 55px rgba(0,0,0,.14); }

.hero-round { position: absolute; right: clamp(8%,15vw,18%); top: 24%; z-index: 4; width: 118px; aspect-ratio: 1; display: grid; place-content: center; justify-items: center; border: 1px solid rgba(255,255,255,.24); border-radius: 50%; color: #fff; background: rgba(4,9,20,.18); backdrop-filter: blur(8px); pointer-events: none; animation: round-float 5s ease-in-out infinite alternate; }
.hero-round::before,.hero-round::after { content: ""; position: absolute; inset: -9px; border: 1px solid rgba(221,184,98,.45); border-radius: inherit; border-right-color: transparent; animation: round-spin 9s linear infinite; }
.hero-round::after { inset: 9px; border-color: transparent transparent rgba(255,255,255,.2) rgba(255,255,255,.2); animation-direction: reverse; animation-duration: 6s; }
.hero-round span { color: var(--gold); font-size: .7rem; font-weight: 800; letter-spacing: .2em; }
.hero-round strong { font: 700 2.8rem/.95 "Oswald",sans-serif; }
.hero-round i { margin-top: 7px; color: rgba(255,255,255,.68); font-size: .7rem; font-style: normal; letter-spacing: .12em; }
.hero-side-panel { position: absolute; right: clamp(42px,6vw,100px); top: 49%; z-index: 4; width: 220px; display: grid; grid-template-columns: 1fr 1fr; gap: 22px; padding-top: 22px; border-top: 1px solid rgba(221,184,98,.5); pointer-events: none; }
.hero-side-panel::before { content: ""; position: absolute; right: 0; top: -1px; width: 42px; height: 1px; background: #f1d183; box-shadow: 0 0 18px rgba(221,184,98,.35); }
.hero-side-panel .side-kicker { grid-column: 1/-1; color: rgba(255,255,255,.58); font-size: .65rem; font-weight: 800; letter-spacing: .18em; }
.hero-side-panel small { display: block; margin-bottom: 4px; color: var(--gold); font-size: .65rem; font-weight: 800; letter-spacing: .08em; }
.hero-side-panel strong { color: rgba(255,255,255,.9); font: 600 1rem/1.2 "Oswald",sans-serif; letter-spacing: .04em; }
@keyframes round-float { to { transform: translateY(12px) rotate(3deg); } }
@keyframes round-spin { to { transform: rotate(360deg); } }

section[data-editorial-word]::before { content: attr(data-editorial-word); position: absolute; left: max(-18px,calc((100vw - var(--max))/2 - 90px)); top: 52%; z-index: -1; color: transparent; font: 700 clamp(8rem,21vw,20rem)/.72 "Oswald",sans-serif; letter-spacing: -.07em; -webkit-text-stroke: 1px rgba(255,255,255,.035); white-space: nowrap; pointer-events: none; transform: translateY(-50%) rotate(-90deg) translateX(-10%); transform-origin: left center; }
section[data-editorial-word]:nth-of-type(even)::before { left: auto; right: max(-18px,calc((100vw - var(--max))/2 - 70px)); transform: translateY(-50%) rotate(90deg) translateX(10%); transform-origin: right center; -webkit-text-stroke-color: rgba(221,184,98,.05); }

.kinetic-heading { overflow: visible; }
.kinetic-line { display: block; }
.kinetic-word { display: inline-block; overflow: clip; overflow-clip-margin: .24em; vertical-align: bottom; }
.kinetic-word > span { display: inline-block; transform: translateY(112%) rotate(3deg); opacity: .15; transition: transform .78s cubic-bezier(.16,.8,.25,1) var(--word-delay),opacity .6s ease var(--word-delay); }
.is-visible .kinetic-word > span,.offerings .kinetic-word > span { transform: translateY(0) rotate(0); opacity: 1; }

.creative-rail { position: fixed; right: 17px; top: 50%; z-index: 20; display: grid; gap: 7px; transform: translateY(-50%); }
.creative-rail::before { content: ""; position: absolute; left: 50%; top: 8px; bottom: 8px; width: 1px; background: rgba(255,255,255,.13); transform: translateX(-50%); }
.creative-rail button { position: relative; width: 34px; height: 34px; display: grid; place-items: center; padding: 0; border: 0; color: transparent; background: transparent; cursor: pointer; }
.creative-rail button::before { content: ""; width: 6px; height: 6px; border: 1px solid rgba(255,255,255,.48); border-radius: 50%; background: var(--ink); transition: width .25s,height .25s,background .25s,border-color .25s; }
.creative-rail button span { position: absolute; right: 30px; color: rgba(255,255,255,.62); font-size: .65rem; font-weight: 800; letter-spacing: .1em; opacity: 0; transform: translateX(6px); transition: opacity .2s,transform .2s; }
.creative-rail button:hover span,.creative-rail button:focus-visible span,.creative-rail button.is-active span { opacity: 1; transform: translateX(0); }
.creative-rail button.is-active::before { width: 11px; height: 11px; border-color: var(--gold); background: var(--gold); box-shadow: 0 0 0 4px rgba(221,184,98,.12); }

.split-media { overflow: hidden; }
.motion-ready .split-media img { transform: scale(1.085) translateY(var(--media-shift,0)); transition: transform .18s linear; }
.split-media::after { background: linear-gradient(135deg,transparent 58%,rgba(221,184,98,.08)); }
.class-card img { transition: transform .65s cubic-bezier(.16,.8,.25,1),filter .4s; }
.class-card:hover img { transform: scale(1.065); filter: saturate(1) contrast(1.05); }
.class-card-body { position: relative; }
.class-card-body::before { content: ""; position: absolute; left: 24px; right: 24px; top: 0; height: 2px; background: var(--gold); transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.16,.8,.25,1); }
.class-card:hover .class-card-body::before { transform: scaleX(1); }

.offer-card .card-content { transition: transform .5s cubic-bezier(.16,.8,.25,1); }
.offer-card:hover .card-content { transform: translateY(-12px); }
.offer-card .text-link { opacity: .7; transform: translateX(0); transition: opacity .35s; }
.offer-card:hover .text-link { opacity: 1; transform: translateX(0); }

.plans { perspective: 1200px; }
.plan { overflow: hidden; transition: opacity .35s,border-color .35s,box-shadow .35s,background .35s; }
.plan::after { content: attr(data-plan-index); position: absolute; right: 18px; bottom: -20px; color: transparent; font: 700 7rem/.8 "Oswald",sans-serif; -webkit-text-stroke: 1px rgba(255,255,255,.06); pointer-events: none; }
.plans.has-active .plan:not(.is-selected) { opacity: .58; }
.plans .plan.is-selected { opacity: 1; border-color: var(--gold); background: linear-gradient(145deg,rgba(20,38,72,.88),rgba(5,11,22,.7)); box-shadow: 0 28px 80px rgba(0,0,0,.32),inset 0 1px 0 rgba(255,255,255,.04); }
.plan.is-selected li { color: #eef1f6; }

.magnetic-btn { transform: translate(var(--magnet-x,0),var(--magnet-y,0)); transition: transform .18s ease-out,background .2s,color .2s,border-color .2s; }

@media (max-width: 1180px) {
  .creative-rail { display: none; }
  section[data-editorial-word]::before { opacity: .65; }
  .hero-side-panel { display: none; }
  .hero-round { right: 7%; }
}
@media (max-width: 780px) {
  .hero-round { right: 26px; top: 20%; width: 88px; opacity: .72; }
  .hero-round strong { font-size: 2rem; }
  section[data-editorial-word]::before { display: none; }
  .kinetic-word > span { transform: none; opacity: 1; }
  .plans.has-active .plan:not(.is-selected) { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) {
  .hero-round,.hero-round::before,.hero-round::after { animation: none; }
  .phone-stage::after { animation: none; }
  .phone { animation: none; transform: rotateX(2deg) rotateY(-20deg); }
  .kinetic-word > span,.motion-ready .split-media img,.magnetic-btn { transform: none !important; transition: none !important; }
  .kinetic-word > span { opacity: 1; }
}

/* Keep the Bedriftstrening benefit copy vertically centered in every card. */
.business-benefits .mini-benefit,
.business-benefits .mini-benefit.motion-card {
  justify-content: center;
  padding: 32px;
}

/* Medlemskap: full reference page with the same studio motion language. */
.membership-hero { min-height: 610px; }
.membership-hero .hero-media { object-position: center 58%; filter: grayscale(1) contrast(1.08) brightness(.72); }
.membership-hero::before { background: linear-gradient(90deg,rgba(3,8,17,.96) 0%,rgba(3,8,17,.68) 48%,rgba(3,8,17,.2) 82%),linear-gradient(0deg,rgba(5,11,22,.72),transparent 52%); }
.membership-hero .hero-content { max-width: none; }
.membership-hero h1 { max-width: 760px; }
.membership-options { background: linear-gradient(180deg,#050b16 0%,#071021 100%); }
.membership-heading { justify-content: flex-start; }
.membership-heading > div { width: 100%; }
.membership-heading h2 { max-width: 980px; }
.membership-heading p:not(.eyebrow) { max-width: 680px; }
.membership-plan-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
.plan-shell,
.membership-plan-shell { position: relative; display: flex; min-width: 0; height: 100%; }
.plan-shell > .plan,
.membership-plan-shell > .plan { width: 100%; height: 100%; }
.plan-shell > .plan-badge,
.membership-plan-shell > .plan-badge { z-index: 5; }
.membership-plan { display: flex; min-height: 490px; flex-direction: column; padding: 42px 34px 34px; background: linear-gradient(145deg,rgba(14,28,53,.72),rgba(4,9,19,.78)); outline: none; }
.membership-plan:focus-visible { border-color: #daf1ff; box-shadow: 0 0 0 3px rgba(218,241,255,.16); }
.membership-plan h3 { min-height: 2.1em; display: grid; place-items: end center; }
.membership-plan .price { margin-bottom: 14px; font-size: clamp(2.35rem,3.2vw,3.2rem); }
.membership-plan .price small { color: var(--muted); font: 600 .7rem/1.2 "Inter",sans-serif; }
.membership-plan .plan-intro { min-height: 3.25em; margin: 0 0 18px; color: var(--muted); font-size: .82rem; text-align: center; }
.membership-plan ul { flex: 1; }
.membership-plan-grid .featured { background: linear-gradient(150deg,rgba(24,47,86,.9),rgba(6,13,27,.86)); }
.membership-plan-grid + .wide-cta { margin-top: 32px; }
.comparison-section { overflow: hidden; }
.membership-compare-heading { align-items: end; }
.membership-compare-heading > p { max-width: 420px; }
.comparison-scroll { overflow-x: auto; border: 1px solid var(--line); border-radius: var(--radius); outline: none; background: rgba(4,9,19,.6); box-shadow: 0 24px 70px rgba(0,0,0,.18); }
.comparison-scroll:focus-visible { box-shadow: 0 0 0 2px #daf1ff,0 24px 70px rgba(0,0,0,.18); }
.comparison-table { width: 100%; min-width: 820px; border-collapse: collapse; }
.comparison-table th,.comparison-table td { padding: 18px 22px; border-right: 1px solid rgba(255,255,255,.06); border-bottom: 1px solid var(--line); }
.comparison-table thead th { color: var(--white); font: 700 1.05rem/1.15 "Oswald",sans-serif; text-align: center; text-transform: uppercase; }
.comparison-table thead th:first-child { color: var(--muted); font: 700 .7rem/1.2 "Inter",sans-serif; text-align: left; letter-spacing: .06em; }
.comparison-table thead small { display: block; margin-top: 7px; color: var(--muted); font: 500 .66rem/1.2 "Inter",sans-serif; text-transform: none; }
.comparison-table tbody th { width: 44%; text-align: left; }
.comparison-table tbody th strong { display: block; font-size: .78rem; text-transform: uppercase; }
.comparison-table tbody th small { display: block; margin-top: 2px; color: var(--muted); font-size: .68rem; font-weight: 400; }
.comparison-table td { width: 18.66%; color: var(--muted); text-align: center; }
.comparison-table .is-highlighted { background: rgba(218,241,255,.035); }
.comparison-table thead .is-highlighted { color: var(--gold); }
.compare-check { display: inline-grid; width: 25px; height: 25px; place-items: center; border-radius: 50%; color: var(--gold); background: rgba(221,184,98,.11); font-weight: 800; }
.compare-dash { color: #697487; }
.membership-help { display: inline-flex; align-items: center; gap: 12px; margin-top: 30px; }
.membership-help::after { content: "→"; font-size: 1.1rem; transition: transform .2s; }
.membership-help:hover::after { transform: translateX(5px); }

@media (max-width: 920px) {
  .membership-plan-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .membership-compare-heading { align-items: start; flex-direction: column; }
}

@media (max-width: 620px) {
  .membership-hero { min-height: 600px; }
  .membership-hero .hero-media { object-position: 58% center; }
  .membership-plan-grid { grid-template-columns: 1fr; }
  .membership-plan { min-height: 0; padding: 36px 26px 30px; }
  .membership-plan h3,.membership-plan .plan-intro { min-height: 0; }
  .comparison-table th,.comparison-table td { padding: 16px; }
}

/* Om oss: editorial storytelling with subtle spatial interaction. */
.about-hero { min-height: 680px; }
.about-hero .hero-media { object-position: center 56%; filter: grayscale(.25) saturate(.8) contrast(1.08); }
.about-hero::before { background: linear-gradient(90deg,rgba(3,8,17,.96) 0%,rgba(3,8,17,.74) 48%,rgba(3,8,17,.2) 88%),linear-gradient(0deg,rgba(5,11,22,.78),transparent 54%); }
.about-hero h1 { max-width: 920px; }
.about-hero .hero-copy { max-width: 860px; }
.about-story { background: linear-gradient(160deg,#050b16 0%,#070f1e 100%); }
.about-story-media { min-height: 610px; position: relative; }
.about-story-media::before { content: "TRINITY / 01"; position: absolute; left: 20px; top: 20px; z-index: 2; padding: 8px 11px; color: #e7edf6; border: 1px solid rgba(255,255,255,.2); background: rgba(4,9,19,.55); font-size: .62rem; font-weight: 800; letter-spacing: .14em; backdrop-filter: blur(10px); }
.about-story-media::after { z-index: 1; background: rgba(7,12,23,.6); }
.about-story-media img { object-position: center; }
.about-story .split-copy { max-width: 610px; }
.about-story .hero-actions { margin-top: 30px; }

.about-paths { overflow: hidden; }
.about-paths .section-heading { position: relative; z-index: 2; }
.about-path-grid { display: flex; min-height: 560px; gap: 14px; }
.about-path-card { position: relative; flex: 1 1 50%; min-width: 0; overflow: hidden; border: 1px solid var(--line); background: #07101f; isolation: isolate; transition: flex-basis .65s cubic-bezier(.16,.8,.25,1),border-color .3s; }
.about-path-card::after { content: ""; position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg,rgba(3,8,17,.08) 10%,rgba(3,8,17,.35) 48%,rgba(3,8,17,.96) 100%); }
.about-path-card img { height: 100%; object-fit: cover; filter: grayscale(.35) saturate(.72) brightness(.7); transition: transform .8s cubic-bezier(.16,.8,.25,1),filter .55s; }
.about-path-card:hover { flex-basis: 57%; border-color: rgba(218,241,255,.5); }
.about-path-card:hover img { transform: scale(1.055); filter: grayscale(0) saturate(.95) brightness(.85); }
.about-path-number { position: absolute; right: 24px; top: 12px; z-index: 2; color: transparent; font: 700 clamp(5rem,10vw,9rem)/1 "Oswald",sans-serif; -webkit-text-stroke: 1px rgba(255,255,255,.22); }
.about-path-copy { position: absolute; left: clamp(24px,4vw,52px); right: clamp(24px,4vw,52px); bottom: clamp(26px,4vw,46px); z-index: 2; }
.about-path-copy small { color: var(--gold); font-size: .68rem; font-weight: 800; letter-spacing: .11em; text-transform: uppercase; }
.about-path-copy h3 { margin: 8px 0 20px; font-size: clamp(2.5rem,4.6vw,5rem); }
.about-path-link { display: inline-flex; align-items: center; gap: 12px; color: #e9eef6; font-size: .75rem; font-weight: 800; letter-spacing: .08em; text-transform: uppercase; }
.about-path-link b { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid rgba(255,255,255,.32); border-radius: 50%; font-size: 1rem; transition: color .25s,background .25s,transform .25s; }
.about-path-card:hover .about-path-link b { color: var(--ink); background: #daf1ff; transform: rotate(45deg); }

.about-value-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; counter-reset: value; }
.about-value-card { position: relative; min-height: 330px; overflow: hidden; padding: 42px 34px; border: 1px solid var(--line); background: linear-gradient(145deg,rgba(5,11,22,.92),rgba(10,22,42,.82)); }
.about-value-card > span { position: absolute; right: 14px; bottom: -24px; color: transparent; font: 700 8rem/.8 "Oswald",sans-serif; -webkit-text-stroke: 1px rgba(255,255,255,.075); }
.about-value-card small { color: var(--gold); font-size: .72rem; font-weight: 800; letter-spacing: .12em; text-transform: uppercase; }
.about-value-card h3 { margin: 24px 0 16px; font-size: 1.55rem; }
.about-value-card p { position: relative; z-index: 1; margin: 0; color: var(--muted); font-size: .9rem; }
.about-team { background: #050b16; }

.about-center { overflow: hidden; }
.about-gallery { display: grid; grid-template-columns: 1.25fr 1fr 1fr; gap: 18px; }
.about-gallery-card { position: relative; min-height: 470px; margin: 0; overflow: hidden; border: 1px solid var(--line); background: #050b16; }
.about-gallery-card::after { content: ""; position: absolute; inset: 42% 0 0; background: linear-gradient(transparent,rgba(3,8,17,.9)); }
.about-gallery-card img { height: 100%; object-fit: cover; filter: saturate(.72) brightness(.82); transition: transform .7s cubic-bezier(.16,.8,.25,1),filter .4s; }
.about-gallery-card:hover img { transform: scale(1.05); filter: saturate(.95) brightness(.94); }
.about-gallery-card figcaption { position: absolute; left: 22px; right: 22px; bottom: 20px; z-index: 2; display: flex; align-items: center; gap: 10px; font: 600 1.05rem/1 "Oswald",sans-serif; text-transform: uppercase; }
.about-gallery-card figcaption span { color: var(--gold); font: 800 .68rem/1 "Inter",sans-serif; }
.about-center-note { margin: 24px 0 0; color: var(--gold); font-size: .72rem; font-weight: 800; letter-spacing: .1em; text-align: right; text-transform: uppercase; }

.about-join { position: relative; min-height: 570px; display: grid; place-items: center; overflow: hidden; text-align: center; isolation: isolate; }
.about-join > img,.about-join-overlay { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.about-join > img { z-index: -2; object-position: center 54%; filter: saturate(.72); }
.about-join-overlay { z-index: -1; background: linear-gradient(90deg,rgba(5,11,22,.86),rgba(5,11,22,.58),rgba(5,11,22,.86)),linear-gradient(0deg,rgba(5,11,22,.76),transparent 60%); }
.about-join-content { max-width: 840px; }
.about-join-content .eyebrow { justify-content: center; }
.about-join-content p:not(.eyebrow) { max-width: 720px; margin: 20px auto 28px; color: #d7dee8; }
.about-join-content .hero-actions { justify-content: center; }

@media (max-width: 920px) {
  .about-path-grid { min-height: 500px; }
  .about-value-grid { grid-template-columns: 1fr; }
  .about-value-card { min-height: 240px; }
  .about-gallery { grid-template-columns: 1fr 1fr; }
  .about-gallery-wide { grid-column: 1/-1; }
}

@media (max-width: 620px) {
  .about-hero { min-height: 650px; }
  .about-hero .hero-media { object-position: 60% center; }
  .about-hero h1 { max-width: 100%; font-size: 2.5rem; letter-spacing: -.03em; }
  .about-hero .hero-copy { font-size: .94rem; line-height: 1.55; }
  .about-hero .hero-round { top: 12%; right: 18px; width: 76px; opacity: .58; }
  .about-hero .hero-round strong { font-size: 1.7rem; }
  .about-story-media { min-height: 430px; }
  .about-path-grid { display: grid; min-height: 0; }
  .about-path-card { min-height: 390px; }
  .about-path-card:hover { flex-basis: auto; }
  .about-path-copy h3 { font-size: 2.8rem; }
  .about-gallery { grid-template-columns: 1fr; }
  .about-gallery-wide { grid-column: auto; }
  .about-gallery-card { min-height: 360px; }
  .about-center-note { text-align: left; }
  .about-join { min-height: 600px; padding-block: 80px; }
}

/* Kampsport: reference-led editorial sequence with the shared motion system. */
.combat-hero { min-height: 680px; }
.combat-hero .hero-media { object-position: center 43%; filter: saturate(.78) contrast(1.06); }
.combat-hero::before { background: linear-gradient(90deg,rgba(7,12,23,.94) 0%,rgba(7,12,23,.7) 48%,rgba(7,12,23,.42) 100%),linear-gradient(0deg,rgba(7,12,23,.72),transparent 48%); }
.combat-hero .hero-copy { max-width: 720px; }
.combat-section { overflow: hidden; }
.combat-section:nth-of-type(even) { background: var(--navy); }
.combat-section:nth-of-type(odd) { background: var(--ink); }
.combat-section .split { min-height: 500px; }
.combat-copy { max-width: 610px; }
.combat-copy h2 { margin-bottom: 28px; font-size: clamp(2.7rem,4.4vw,4.8rem); }
.combat-copy .lead { color: #bec7d5; font-size: 1rem; }
.combat-copy .lead p { margin-bottom: 1.4em; }
.combat-media { min-height: 500px; }
.combat-media img { min-height: 500px; object-position: center; filter: saturate(.78) contrast(1.03); }
.combat-media::after { z-index: 2; background: rgba(7,12,23,.24); }
.combat-section:nth-of-type(3) .combat-media img { object-position: center 42%; }
.combat-section:nth-of-type(4) .combat-media img { object-position: center 46%; }
.combat-section:nth-of-type(5) .combat-media img { object-position: center; }
.combat-schedule { overflow: hidden; }
.combat-schedule-scroll { overflow-x: auto; padding: 3px 2px 18px; outline: none; scrollbar-color: var(--gold) rgba(255,255,255,.08); }
.combat-schedule-scroll:focus-visible { box-shadow: 0 0 0 2px #daf1ff; }
.combat-schedule .schedule-grid { min-width: 1120px; grid-template-columns: repeat(6,minmax(0,1fr)); gap: 12px; }
.combat-schedule .day-card { height: 100%; }
.combat-schedule .event { height: 154px; min-height: 154px; }
.combat-schedule .event strong { font-size: .96rem; }

.strength-hero .hero-media { object-position: center 56%; }
.strength-hero h1 span { display: block; }
.strength-page .strength-section:nth-of-type(2) .combat-media img { object-position: center 72%; }
.strength-page .strength-section:nth-of-type(3) .combat-media img { object-position: center; }
.strength-page .strength-section:nth-of-type(4) .combat-media img { object-position: center 55%; }
.strength-page .strength-section:nth-of-type(5) .combat-media img { object-position: center; }
.strength-schedule .schedule-grid { min-width: 0; grid-template-columns: repeat(2,minmax(0,1fr)); }
.strength-schedule .event { height: 130px; min-height: 130px; }
.yoga-hero .hero-media { object-position: center 58%; }
.yoga-hero h1 span { display: block; }
.yoga-page .yoga-section:nth-of-type(2) .combat-media img { object-position: center; }
.yoga-page .yoga-section:nth-of-type(3) .combat-media img { object-position: center 48%; }
.yoga-page .yoga-section:nth-of-type(4) .combat-media img { object-position: center 42%; }
.yoga-page .yoga-section:nth-of-type(5) .combat-media img { object-position: center 36%; }
.yoga-schedule .schedule-grid { min-width: 0; grid-template-columns: repeat(3,minmax(0,1fr)); }
.yoga-schedule .event { height: 140px; min-height: 140px; }

/* Trening for barn: reference structure with warmer, playful editorial details. */
.children-hero .hero-media { object-position: center 54%; filter: saturate(.72) contrast(1.08); }
.children-hero::before { background: linear-gradient(90deg,rgba(7,12,23,.95) 0%,rgba(7,12,23,.76) 46%,rgba(7,12,23,.38) 100%),linear-gradient(0deg,rgba(7,12,23,.78),transparent 52%); }
.children-hero h1 span { display: block; }
.children-page .children-section:nth-of-type(2) .combat-media img { object-position: center 34%; }
.children-page .children-section:nth-of-type(3) .combat-media img { object-position: center 43%; }
.children-page .children-benefits .combat-media img { object-position: center; }
.children-feature-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; margin-top: 34px; padding-top: 28px; border-top: 1px solid rgba(225,185,87,.34); }
.children-feature-list div { position: relative; min-height: 96px; padding: 17px 14px 14px; border: 1px solid rgba(218,241,255,.13); background: linear-gradient(145deg,rgba(218,241,255,.065),rgba(218,241,255,.015)); overflow: hidden; }
.children-feature-list div::before { content: ""; position: absolute; left: 0; top: 0; width: 38px; height: 2px; background: var(--gold); transition: width .5s var(--ease); }
.children-feature-list div:hover::before { width: 100%; }
.children-feature-list strong,.children-feature-list span { display: block; }
.children-feature-list strong { margin-bottom: 9px; color: var(--gold); font-family: var(--display); font-size: 1.12rem; text-transform: uppercase; letter-spacing: .025em; }
.children-feature-list span { color: #b8c3d2; font-size: .78rem; line-height: 1.45; }
.children-schedule .schedule-grid { min-width: 0; grid-template-columns: repeat(2,minmax(0,1fr)); }
.children-schedule .event { height: 138px; min-height: 138px; }
.children-schedule .day-title { background: linear-gradient(90deg,#1c3c7f,#244da2); }

/* Egentrening: spacious gym-floor storytelling, matched to the supplied reference. */
.self-training-hero .hero-media { object-position: center 56%; filter: saturate(.72) contrast(1.06); }
.self-training-hero::before { background: linear-gradient(90deg,rgba(7,12,23,.94) 0%,rgba(7,12,23,.73) 44%,rgba(7,12,23,.34) 100%),linear-gradient(0deg,rgba(7,12,23,.7),transparent 56%); }
.self-training-hero .hero-copy { max-width: 680px; }
.self-training-page .self-training-section:nth-of-type(2) .combat-media img { object-position: center 50%; }
.self-training-page .self-training-section:nth-of-type(3) .combat-media img { object-position: center 48%; }
.self-training-page .self-training-section:nth-of-type(4) .combat-media img { object-position: center 52%; }
.self-training-page .self-training-section:nth-of-type(5) .combat-media img { object-position: center 42%; }
.self-training-actions { margin-top: 30px; }
.self-training-actions .btn { min-width: 174px; }

/* Contact page completion: FAQ and final membership invitation from the reference. */
.contact-faq-section { position: relative; overflow: hidden; background: var(--ink); }
.contact-faq-section::before { content: "FAQ"; position: absolute; right: -1vw; top: 4%; color: transparent; -webkit-text-stroke: 1px rgba(225,185,87,.09); font-family: var(--display); font-size: clamp(9rem,22vw,24rem); line-height: .75; pointer-events: none; }
.contact-faq-section .container { position: relative; z-index: 1; }
.contact-faq { gap: 14px; }
.contact-faq .faq-item { position: relative; overflow: hidden; background: linear-gradient(145deg,rgba(18,37,70,.94),rgba(9,20,39,.96)); transition: border-color .35s ease,transform .35s ease,box-shadow .35s ease; }
.contact-faq .faq-item:hover,.contact-faq .faq-item.open { border-color: rgba(218,241,255,.32); transform: translateY(-2px); box-shadow: 0 18px 42px rgba(0,0,0,.2); }
.contact-faq .faq-item::before { content: ""; position: absolute; left: 0; top: 0; width: 3px; height: 100%; background: linear-gradient(var(--gold),#daf1ff); transform: scaleY(0); transform-origin: top; transition: transform .4s ease; }
.contact-faq .faq-item.open::before { transform: scaleY(1); }
.contact-faq .faq-item:last-child { grid-column: 1/-1; }
.contact-faq .faq-question { min-height: 72px; align-items: center; font-size: 1rem; }
.contact-faq .faq-answer { line-height: 1.7; }
.contact-start { position: relative; display: grid; place-items: center; min-height: 570px; overflow: hidden; text-align: center; isolation: isolate; }
.contact-start > img,.contact-start-overlay { position: absolute; inset: 0; width: 100%; height: 100%; }
.contact-start > img { z-index: -2; object-fit: cover; object-position: center 48%; filter: saturate(.7) contrast(1.05); transform: scale(1.035); transition: transform 6s cubic-bezier(.2,.75,.2,1),filter 1s ease; }
.contact-start:hover > img { transform: scale(1.09); filter: saturate(.84) contrast(1.08); }
.contact-start-overlay { z-index: -1; background: linear-gradient(90deg,rgba(7,12,23,.82),rgba(7,12,23,.48),rgba(7,12,23,.82)),linear-gradient(0deg,rgba(7,12,23,.8),transparent 58%); }
.contact-start-content { max-width: 850px; }
.contact-start-content .eyebrow { justify-content: center; }
.contact-start-content h2 { margin-bottom: 18px; font-size: clamp(3.2rem,7vw,6.6rem); }
.contact-start-content p:not(.eyebrow) { margin: 0 auto 30px; color: #d3dbe6; font-size: 1.05rem; }

@media (max-width: 780px) {
  .combat-hero { min-height: 650px; }
  .combat-hero .hero-media { object-position: 56% center; }
  .combat-hero h1 { font-size: clamp(3.4rem,17vw,4.8rem); }
  .combat-hero .hero-round { top: 7%; right: 18px; width: 76px; opacity: .56; }
  .combat-hero .hero-round strong { font-size: 1.7rem; }
  .combat-section .split { min-height: 0; }
  .combat-section .split-copy { order: 0; }
  .combat-section .combat-media { order: 1; min-height: 380px; }
  .combat-section .combat-media img { min-height: 380px; }
  .combat-copy h2 { font-size: 2.8rem; }
  .strength-hero .hero-media { object-position: 58% center; }
  .strength-hero h1 { font-size: clamp(3.1rem,16vw,4.5rem); }
  .yoga-hero .hero-media { object-position: 54% center; }
  .yoga-hero h1 { font-size: clamp(2.85rem,14.5vw,4.2rem); }
  .children-hero .hero-media { object-position: 60% center; }
  .children-hero h1 { font-size: clamp(3rem,15.5vw,4.3rem); }
  .children-feature-list { grid-template-columns: 1fr; }
  .self-training-hero .hero-media { object-position: 64% center; }
  .self-training-hero h1 { font-size: clamp(3rem,15.5vw,4.4rem); }
  .self-training-actions { display: grid; }
  .self-training-actions .btn { width: 100%; }
  .contact-faq .faq-item:last-child { grid-column: auto; }
  .contact-start { min-height: 500px; padding: 86px 0; text-align: left; }
  .contact-start > img { object-position: 58% center; }
  .contact-start-content .eyebrow { justify-content: flex-start; }
  .contact-start-content h2 { font-size: clamp(3.1rem,15vw,4.3rem); }
  .contact-start-content p:not(.eyebrow) { margin-left: 0; }
}

@media (max-width: 620px) {
  .strength-schedule .schedule-grid { grid-template-columns: 1fr; }
  .yoga-schedule .schedule-grid { grid-template-columns: 1fr; }
  .children-schedule .schedule-grid { grid-template-columns: 1fr; }
}
