/* ===========================================================
   TOKENS
   =========================================================== */
:root{
  --maroon:#064B5A; --dark-red:#087E8B; --red:#C1121F; --bright-red:#E63946; --white:#FFFFFF;
  --sand:#EAFBFC; --sand-deep:#CDEFF2; --ink:#8F1020; --ink-soft:#A83A48;
  --line:rgba(6,75,90,0.16);
  --font-display:'Big Shoulders Display',sans-serif; --font-body:'Work Sans',sans-serif;
  --container:1240px; --gutter:clamp(20px,5vw,64px); --section-pad:clamp(50px,6.5vw,100px);
  --ease:cubic-bezier(.22,.68,.36,1);
}
*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;}
html,body{overflow-x:hidden;}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important;}
}
.lightbox[hidden] {
  display: none;
}
body{margin:0;font-family:var(--font-body);color:var(--ink);background:var(--white);line-height:1.6;-webkit-font-smoothing:antialiased;overflow-x:hidden;}
img{max-width:100%;display:block;}
a{color:inherit;text-decoration:none;}
ul{list-style:none;margin:0;padding:0;}
button{font:inherit;background:none;border:none;cursor:pointer;color:inherit;}
h1,h2,h3{font-family:var(--font-display);font-weight:700;letter-spacing:.01em;line-height:1.05;margin:0;}
p{margin:0;}
.skip-link{position:absolute;left:-999px;top:0;background:var(--maroon);color:var(--white);padding:12px 20px;z-index:999;}
.skip-link:focus{left:12px;top:12px;}
:focus-visible{outline:3px solid var(--red);outline-offset:3px;}
.eyebrow{font-weight:600;font-size:.85rem;color:var(--red);margin:0 0 10px;letter-spacing:.02em;}
.eyebrow--light{color:#F0B9BE;}
.eyebrow--center{text-align:center;}
.section-title{font-size:clamp(2rem,3.4vw,3.2rem);text-align:center;max-width:760px;margin:0 auto clamp(32px,5vw,58px);}
.btn{display:inline-flex;align-items:center;justify-content:center;padding:15px 30px;font-weight:600;font-size:.98rem;border:1.5px solid transparent;transition:transform .24s var(--ease),background .24s var(--ease),color .24s var(--ease),border-color .24s var(--ease);white-space:nowrap;}
.btn--primary{background:var(--red);color:var(--white);}
.btn--primary:hover{background:var(--bright-red);transform:translateY(-2px);}
.btn--ghost{border-color:rgba(255,255,255,.75);color:var(--white);}
.btn--ghost:hover{background:rgba(255,255,255,.12);transform:translateY(-2px);}
.btn--outline{border-color:var(--red);color:var(--red);}
.btn--outline:hover{background:var(--maroon);color:var(--white);}

/* ===========================================================
   HEADER / NAV
   =========================================================== */
.site-header{position:fixed;inset:0 0 auto 0;z-index:500;background:transparent;transition:background .3s var(--ease),box-shadow .3s var(--ease);}
.site-header.is-scrolled{background:var(--white);box-shadow:0 2px 24px rgba(6,75,90,.10);}
.nav-inner{max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:auto 1fr auto auto auto;align-items:center;padding:16px var(--gutter);gap:12px;}
.logo{display:flex;align-items:center;gap:10px;color:var(--white);transition:color .3s var(--ease);min-width:0;}
.site-header.is-scrolled .logo{color:var(--maroon);}
.logo__mark{width:38px;height:38px;flex:none;}
.logo__mark img{width:100%;height:100%;object-fit:contain;}
.logo__text{display:flex;flex-direction:column;line-height:1.05;white-space:nowrap;}
.logo__big{font-family:var(--font-display);font-weight:800;font-size:1.4rem;letter-spacing:.02em;}
.logo__small{font-size:.56rem;font-weight:600;letter-spacing:.14em;}
.main-nav{display:flex;align-items:center;justify-content:center;min-width:0;}
.main-nav ul{display:flex;align-items:center;justify-content:center;gap:clamp(10px,1.2vw,20px);flex-wrap:nowrap;white-space:nowrap;}
.main-nav a{color:var(--white);font-weight:500;font-size:.88rem;position:relative;padding:4px 0;transition:color .3s var(--ease);white-space:nowrap;}
.site-header.is-scrolled .main-nav a{color:var(--ink);}
.main-nav a::after{content:"";position:absolute;left:0;right:100%;bottom:-2px;height:2px;background:var(--red);transition:right .26s var(--ease);}
.main-nav a:hover::after,.main-nav a[aria-current="page"]::after{right:0;}
.mobile-nav a[aria-current="page"]{color:var(--red);}
.nav-cta{padding:11px 22px;font-size:.88rem;}
.nav-crm-link{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:50%;border:1.5px solid rgba(255,255,255,.55);color:var(--white);flex-shrink:0;transition:background .25s var(--ease),border-color .25s var(--ease),color .25s var(--ease);}
.nav-crm-link svg{width:18px;height:18px;}
.nav-crm-link:hover{background:var(--red);border-color:var(--red);color:var(--white);}
.site-header.is-scrolled .nav-crm-link{color:var(--ink);border-color:var(--line);}
.site-header.is-scrolled .nav-crm-link:hover{background:var(--red);border-color:var(--red);color:var(--white);}
.menu-toggle{display:none;flex-direction:column;gap:4px;width:44px;padding:10px;margin:-10px -10px -10px 6px;}
.menu-toggle span{display:block;height:3px;background:var(--white);transition:all .25s var(--ease);}
.site-header.is-scrolled .menu-toggle span{background:var(--maroon);}
.menu-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.menu-toggle[aria-expanded="true"] span:nth-child(2){opacity:0;}
.menu-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
.mobile-nav{max-height:0;overflow:hidden;background:var(--white);transition:max-height .32s var(--ease);}
.mobile-nav ul{padding:8px var(--gutter) 20px;display:flex;flex-direction:column;gap:2px;}
.mobile-nav a{display:block;padding:12px 0;color:var(--ink);font-weight:500;border-bottom:1px solid var(--line);}
.mobile-nav .btn{margin-top:10px;width:100%;}
.mobile-nav a.btn--primary{color:var(--white);}
.mobile-nav.is-open{max-height:560px;}

/* ===========================================================
   HERO — image carousel
   =========================================================== */
.hero{position:relative;min-height:100svh;display:flex;align-items:flex-start;overflow:hidden;color:var(--white);}
.hero__slides{position:absolute;inset:0;}
.hero__slide{position:absolute;inset:0;opacity:0;}
.hero__slide.is-active{opacity:1;z-index:1;}
.hero__slide img{width:100%;height:100%;object-fit:cover;}
.hero__overlay{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(6,75,90,.5) 0%,rgba(8,126,139,.5) 40%,rgba(6,75,90,.94) 100%);}
.hero__water{position:absolute;left:0;right:0;bottom:-2px;width:100%;height:110px;z-index:3;}
.hero__water path{fill:var(--white);}

/* ---- Bubble effect (reusable decorative layer) ---- */
.bubbles{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:1;}
.bubbles span{position:absolute;bottom:-10%;display:block;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(255,255,255,.85),rgba(255,255,255,.12) 70%);opacity:0;animation:bubbleRise linear infinite;}
.bubbles span:nth-child(1){left:4%;width:10px;height:10px;animation-duration:9s;animation-delay:.2s;}
.bubbles span:nth-child(2){left:14%;width:18px;height:18px;animation-duration:12s;animation-delay:2.4s;}
.bubbles span:nth-child(3){left:24%;width:7px;height:7px;animation-duration:7.5s;animation-delay:1s;}
.bubbles span:nth-child(4){left:36%;width:14px;height:14px;animation-duration:11s;animation-delay:3.6s;}
.bubbles span:nth-child(5){left:47%;width:9px;height:9px;animation-duration:8.5s;animation-delay:.8s;}
.bubbles span:nth-child(6){left:58%;width:20px;height:20px;animation-duration:13s;animation-delay:2s;}
.bubbles span:nth-child(7){left:68%;width:8px;height:8px;animation-duration:9.5s;animation-delay:4.2s;}
.bubbles span:nth-child(8){left:77%;width:15px;height:15px;animation-duration:10.5s;animation-delay:1.6s;}
.bubbles span:nth-child(9){left:87%;width:11px;height:11px;animation-duration:8s;animation-delay:3s;}
.bubbles span:nth-child(10){left:94%;width:6px;height:6px;animation-duration:7s;animation-delay:.5s;}
@keyframes bubbleRise{
  0%{transform:translateY(0) translateX(0);opacity:0;}
  8%{opacity:.7;}
  50%{transform:translateY(-55vh) translateX(14px);}
  92%{opacity:.35;}
  100%{transform:translateY(-115vh) translateX(-10px);opacity:0;}
}
@media (prefers-reduced-motion:reduce){
  .bubbles span{animation:none;display:none;}
}

/* ---- Waves & bubbles: smaller on phones so they don't dominate short sections ---- */
@media (max-width:640px){
  .hero__water{height:70px;}
  .shine__wave{height:64px;}
  .site-footer__wave{height:40px;}
}
.hero__content{position:relative;z-index:4;max-width:var(--container);width:100%;margin:0 auto;padding:78px var(--gutter) 50px;animation:heroRise .9s var(--ease) both;animation-delay:.15s;}
@keyframes heroRise{from{opacity:0;transform:translateY(26px);}to{opacity:1;transform:none;}}
.hero__trust{font-weight:600;font-size:.85rem;letter-spacing:.03em;margin-bottom:16px;color:#F3D9DB;}
.hero__title{font-size:clamp(2.4rem,6vw,5.2rem);white-space:nowrap;}
.hero__title span{color:#F5C9CD;}
.hero__sub{max-width:46ch;margin-top:20px;font-size:1.04rem;color:rgba(255,255,255,.88);}
.hero__actions{display:flex;gap:16px;flex-wrap:wrap;margin-top:30px;}
.hero__dots{position:absolute;z-index:4;left:50%;bottom:clamp(46px,7vw,66px);transform:translateX(-50%);display:flex;gap:10px;}
.hero__dots button{width:26px;height:4px;background:rgba(255,255,255,.35);transition:background .3s var(--ease),width .3s var(--ease);}
.hero__dots button.is-active{background:var(--white);width:38px;}

/* ===========================================================
   REVEAL — one consistent pattern, staggered children
   =========================================================== */
[data-reveal]{opacity:0;transform:translateY(22px);transition:opacity .7s var(--ease),transform .7s var(--ease);}
[data-reveal].is-visible{opacity:1;transform:none;}
[data-reveal-group] > *{transition-delay:calc(var(--i,0) * 90ms);}

/* ===========================================================
   INTRO / SPLIT
   =========================================================== */
.intro{display:grid;grid-template-columns:1fr 1fr;align-items:center;max-width:var(--container);margin:0 auto;padding:var(--section-pad) var(--gutter);gap:clamp(32px,6vw,88px);}
.apply-section{background:linear-gradient(180deg,var(--sand),var(--white));border-radius:24px;position:relative;overflow:hidden;}
.apply-section::before{content:"";position:absolute;inset:0;background:url('../images/swimmgpool.jpg') center/cover no-repeat;z-index:0;}
.apply-section > *{position:relative;z-index:1;}
.apply-section .intro__content{background:rgba(255,255,255,.92);border-radius:18px;padding:28px;}
.intro__media{overflow:hidden;order:2;}
.intro__media img{width:100%;height:clamp(320px,40vw,520px);object-fit:cover;transition:transform 900ms var(--ease);}
.intro__media:hover img{transform:scale(1.04);}
.intro__content{order:1;}
.intro__content h2{font-size:clamp(2rem,3.6vw,3rem);margin-bottom:18px;}
.intro__content p{color:var(--ink-soft);max-width:52ch;}
.stat-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:34px 0 0;padding:22px 6px;background:var(--sand);border:1px solid var(--line);border-radius:16px;text-align:center;}
.stat{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;padding:0 6px;}
.stat + .stat{border-left:1px solid var(--line);}
.stat dt,.stat dd{margin:0;}
.stat__num{display:flex;align-items:center;justify-content:center;width:100%;min-height:2.8rem;font-family:var(--font-display);font-size:clamp(2rem,3.2vw,2.8rem);font-weight:700;line-height:1;color:var(--maroon);}
.stat__num--text{font-size:clamp(1.25rem,2vw,1.6rem);}
.stat__label{margin-top:8px;font-size:.8rem;line-height:1.35;color:var(--ink-soft);text-align:center;}

/* ===========================================================
   VISION / MISSION
   =========================================================== */
.vision-mission{max-width:var(--container);margin:0 auto;padding:clamp(56px,8vw,96px) var(--gutter);}
.vision-mission__layout{display:grid;grid-template-columns:minmax(290px,1.02fr) minmax(360px,1.18fr);align-items:center;gap:clamp(24px,4vw,60px);}
.vision-mission__media-wrap{position:relative;border-radius:32px;overflow:hidden;background:var(--maroon);box-shadow:0 26px 48px rgba(6,75,90,.14);min-height:420px;}
.vision-mission__media-wrap img{width:100%;height:100%;min-height:420px;object-fit:cover;display:block;filter:saturate(.8) contrast(1.05);}
.vision-mission__intro{display:flex;flex-direction:column;justify-content:center;}
.vision-mission__title{font-family:var(--font-display);font-size:clamp(3rem,4.8vw,6rem);line-height:.9;color:var(--maroon);letter-spacing:-.04em;}
.vision-mission__intro p{margin-top:24px;max-width:42ch;color:var(--ink-soft);font-size:clamp(1rem,1.2vw,1.08rem);line-height:1.7;}
.vision-mission__cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(18px,2.8vw,32px);margin-top:clamp(28px,4vw,54px);}
.vision-mission__card{background:linear-gradient(180deg,var(--sand-deep) 0%,var(--sand) 100%);color:var(--ink);border-radius:28px;padding:clamp(24px,3vw,38px) clamp(22px,2.7vw,34px);box-shadow:0 24px 38px rgba(6,75,90,.14);}
.vision-mission__card h3{font-family:var(--font-display);font-size:clamp(2rem,2.8vw,3rem);line-height:1;color:var(--red);margin:0 0 18px;letter-spacing:-.03em;}
.vision-mission__card p{font-size:clamp(.95rem,1.1vw,1.04rem);line-height:1.7;color:var(--ink-soft);}
.vision-mission__dots{display:flex;gap:12px;align-items:center;margin-top:28px;}
.vision-mission__dot{width:12px;height:12px;border-radius:50%;background:rgba(6,75,90,.18);display:block;}
.vision-mission__dot.is-active{width:16px;height:16px;background:var(--red);}

@media (max-width:860px){
  .vision-mission__layout{grid-template-columns:1fr;}
  .vision-mission__title{font-size:clamp(2.7rem,11vw,4.8rem);}
  .vision-mission__cards{grid-template-columns:1fr;}
  .vision-mission__media-wrap,.vision-mission__media-wrap img{min-height:300px;}
}

@media (max-width:640px){
  .vision-mission{padding-top:48px;padding-bottom:48px;}
  .vision-mission__card{border-radius:22px;}
  .vision-mission__dots{justify-content:flex-start;}
}

/* ===========================================================
   SPECIAL NEEDS
   =========================================================== */
.special{background:var(--sand);padding:var(--section-pad) var(--gutter);}
.special__head{max-width:780px;margin:0 auto;text-align:center;}
.special__intro{color:var(--ink-soft);margin-top:14px;}
.special__carousel{position:relative;max-width:var(--container);margin:clamp(36px,5vw,60px) auto 0;}
.special__viewport{position:relative;overflow:hidden;padding:12px 0 18px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);mask-image:linear-gradient(90deg,transparent,#000 14%,#000 86%,transparent);}
.special__track{display:flex;gap:24px;width:max-content;animation:specialScroll 28s linear infinite;}
.special__carousel:hover .special__track{animation-play-state:paused;}
.special-card{flex:0 0 auto;width:300px;background:var(--white);border-left:4px solid var(--red);box-shadow:0 18px 34px rgba(6,75,90,.10);transition:box-shadow .45s var(--ease);cursor:pointer;}
.special-card:hover{box-shadow:0 22px 40px rgba(6,75,90,.12);}
.special-card__img{overflow:hidden;height:190px;}
.special-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.special-card__img video{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.special-card:hover .special-card__img img{transform:scale(1.07);}
.special-card:hover .special-card__img video{transform:scale(1.07);}
.special-card h3{font-size:1.2rem;padding:18px 20px 6px;}
.special-card p{padding:0 20px 22px;color:var(--ink-soft);font-size:.94rem;}
.special__nav{display:none;}
@keyframes specialScroll{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@media (max-width:640px){
  .special-card{width:250px;}
}

/* ===========================================================
   SHINE — parallax
   =========================================================== */
.shine{position:relative;height:76vh;min-height:440px;overflow:hidden;display:flex;align-items:center;justify-content:center;}
.shine__media{position:absolute;inset:-10% 0;will-change:transform;}
.shine__media img{width:100%;height:100%;object-fit:cover;}
.shine__overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(6,75,90,.78),rgba(8,126,139,.22));}
.shine__content{position:relative;z-index:2;text-align:center;color:var(--white);padding:0 24px;}
.shine__content h2{font-size:clamp(2.2rem,5vw,4rem);}
.shine__content p{margin-top:16px;font-size:1.04rem;max-width:46ch;margin:16px auto 0;color:rgba(255,255,255,.9);}
.shine__wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:100px;z-index:2;}
.shine__wave path{fill:var(--white);}

/* ===========================================================
   PROGRAMS
   =========================================================== */
.programs{padding:var(--section-pad) var(--gutter);max-width:var(--container);margin:0 auto;}
.vacancy-section{background:linear-gradient(180deg,var(--sand),var(--white));border-radius:24px;position:relative;overflow:hidden;}
.vacancy-section > *{position:relative;z-index:1;}
.programs__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.program-card{display:flex;flex-direction:column;position:relative;background:var(--white);border-radius:16px;overflow:hidden;box-shadow:0 14px 28px rgba(6,75,90,.10);transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
.program-card:hover{transform:translateY(-8px);box-shadow:0 22px 40px rgba(6,75,90,.16);}
.program-card__img{overflow:hidden;height:220px;}
.program-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.program-card:hover .program-card__img img{transform:scale(1.06);}
.program-card__label{font-size:.78rem;color:var(--red);font-weight:600;margin-top:16px;}
.program-card h3{font-size:1.34rem;margin:14px 20px 0;}
.program-card p{color:var(--ink-soft);margin:8px 20px 22px;font-size:.95rem;}
.program-card__arrow{display:none;}
.program-card:hover .program-card__arrow{transform:translateX(6px);}

/* ===========================================================
   LOCATIONS
   =========================================================== */
.locations{background:var(--sand);padding:var(--section-pad) var(--gutter);}
.locations__grid{max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.location-card{background:var(--white);display:flex;flex-direction:column;transition:transform .4s var(--ease);}
.location-card:hover{transform:translateY(-6px);}
.location-card__img{height:168px;overflow:hidden;}
.location-card__map{height:100%;width:100%;display:block;border:0;}
.location-card h3{font-size:1.18rem;padding:16px 18px 0;}
.location-card__addr{padding:6px 18px 0;color:var(--ink-soft);font-size:.9rem;}
.location-card__batches{padding:8px 18px 0;font-size:.85rem;color:var(--maroon);font-weight:600;}
.location-card__actions{display:flex;gap:14px;padding:16px 18px 20px;margin-top:auto;}
.link-btn{font-size:.85rem;font-weight:600;color:var(--red);border-bottom:1.5px solid var(--red);padding-bottom:2px;}
.link-btn--muted{color:var(--ink-soft);border-color:var(--ink-soft);}
.locations__map{max-width:var(--container);margin:34px auto 0;aspect-ratio:4/3;min-height:320px;overflow:hidden;background:var(--white);box-shadow:0 18px 34px rgba(6,75,90,.10);}
.locations__map iframe{width:100%;height:100%;display:block;border:0;}

/* ===========================================================
   BATCHES
   =========================================================== */
.batches{padding:var(--section-pad) var(--gutter);}
.batches__grid{max-width:960px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:26px;}
.batch-card{background:var(--sand);padding:42px 32px;text-align:center;transition:transform .4s var(--ease);}
.batch-card:hover{transform:translateY(-6px);}
.batch-card--dark{background:var(--maroon);color:var(--white);}
.batch-card__icon svg{width:50px;height:50px;margin:0 auto 16px;fill:none;stroke:var(--maroon);stroke-width:2;}
.batch-card--dark .batch-card__icon svg{stroke:var(--white);}
.batch-card h3{font-size:1.55rem;}
.batch-card p{margin-top:10px;color:var(--ink-soft);}
.batch-card--dark p{color:rgba(255,255,255,.85);}
.batch-card__time{display:inline-block;margin-top:18px;font-weight:600;padding:8px 18px;border:1.5px solid currentColor;}

/* ===========================================================
   TRAINERS
   =========================================================== */
.trainers{background:var(--sand);padding:var(--section-pad) var(--gutter);}
.trainers__note{text-align:center;max-width:600px;margin:-28px auto 40px;color:var(--ink-soft);}
.trainers__grid{max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.trainer-card{text-align:center;}
.trainer-card__img{width:100%;aspect-ratio:4/5;overflow:hidden;}
.trainer-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.trainer-card:hover .trainer-card__img img{transform:scale(1.05);}
.trainer-card h3{margin-top:16px;font-size:1.18rem;}
.trainer-card__meta{color:var(--ink-soft);font-size:.9rem;margin-top:4px;}

/* ===========================================================
   WHY US
   =========================================================== */
.why{padding:var(--section-pad) 0;overflow:hidden;}
.why .section-title{margin-bottom:12px;}
.why__carousel{position:relative;max-width:var(--container);margin:0 auto;padding:0;}
.why__deck{position:relative;max-width:1280px;height:390px;margin:0 auto;perspective:2200px;perspective-origin:50% 45%;}
.why__item{position:absolute;left:50%;top:24px;transform-style:preserve-3d;transform-origin:center center;overflow:hidden;border-radius:18px;background:#063B4C;box-shadow:0 22px 52px rgba(6,75,90,.2);transition:transform 1.15s cubic-bezier(.22,.72,.2,1),opacity 1.15s ease,filter 1.15s ease,box-shadow 1.15s ease;will-change:transform,opacity,filter;width:min(78vw,440px);height:320px;}
.why__item img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(.95) contrast(1.06);}
.why__item__caption{position:absolute;left:0;right:0;bottom:0;display:flex;align-items:flex-end;justify-content:center;padding:18px 16px 16px;background:linear-gradient(180deg,rgba(10,13,15,0) 0%,rgba(10,13,15,.72) 55%,rgba(10,13,15,.88) 100%);}
.why__item h3{font-size:clamp(1.15rem,1.8vw,1.7rem);text-align:center;line-height:1.2;font-weight:700;letter-spacing:.02em;color:var(--white);}

@media (max-width:860px){
  .why__deck{height:340px;}
  .why__item{width:min(76vw,360px);height:260px;}
}

@media (max-width:640px){
  .why .section-title{margin-bottom:8px;}
  .why__deck{height:285px;}
  .why__item{width:min(78vw,320px);height:225px;}
}

/* ===========================================================
   VALUES
   =========================================================== */
.values{padding:var(--section-pad) var(--gutter);max-width:var(--container);margin:0 auto;}
.values__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px 26px;}
.values__grid li:last-child:nth-child(4){grid-column:2/3;}
.values__grid li{position:relative;isolation:isolate;text-align:center;padding:36px 24px;border-radius:16px;overflow:hidden;box-shadow:0 14px 28px rgba(6,75,90,.08);border-top:4px solid var(--red);transition:transform .35s var(--ease),box-shadow .35s var(--ease);color:var(--white);background-size:cover;background-position:center;}
.values__grid li:nth-child(1){background:linear-gradient(135deg,var(--red),var(--maroon));}
.values__grid li:nth-child(2){background:linear-gradient(135deg,var(--maroon),var(--red));}
.values__grid li:nth-child(3){background:linear-gradient(135deg,var(--red),var(--maroon));}
.values__grid li:nth-child(4){background:linear-gradient(135deg,var(--maroon),var(--red));}
.values__grid li:hover{transform:translateY(-8px);box-shadow:0 22px 40px rgba(6,75,90,.14);}
.values__grid svg{width:34px;height:34px;margin:0 auto 18px;padding:16px;box-sizing:content-box;fill:var(--white);background:rgba(255,255,255,.15);border-radius:50%;display:block;transition:transform .4s var(--ease),background .35s var(--ease);}
.values__grid li:hover svg{transform:scale(1.12) rotate(-6deg);background:var(--red);fill:var(--white);}
.values__grid h3{font-size:1.08rem;font-family:var(--font-body);font-weight:600;color:var(--white);text-shadow:0 1px 6px rgba(0,0,0,.6);}
.values__grid li p{color:var(--white);text-shadow:0 1px 6px rgba(0,0,0,.65);}

.why-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.why-grid li{position:relative;overflow:hidden;text-align:center;padding:36px 24px;background:linear-gradient(160deg,var(--maroon),#043440);border-radius:16px;box-shadow:0 14px 28px rgba(6,75,90,.24);border-top:4px solid var(--red);transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
.why-grid li:hover{transform:translateY(-8px);box-shadow:0 22px 40px rgba(6,75,90,.36);}
.why-grid svg{width:34px;height:34px;margin:0 auto 18px;padding:16px;box-sizing:content-box;fill:var(--bright-red);background:rgba(255,255,255,.1);border-radius:50%;display:block;position:relative;z-index:2;transition:transform .4s var(--ease),background .35s var(--ease);}
.why-grid li:hover svg{transform:scale(1.12) rotate(-6deg);background:var(--red);fill:var(--white);}
.why-grid h3{position:relative;z-index:2;font-size:1.08rem;font-family:var(--font-body);font-weight:600;color:var(--white);}
.why-grid li p{position:relative;z-index:2;color:rgba(255,255,255,.72);margin-top:8px;font-size:.92rem;}
.why-grid li .bubble{position:absolute;bottom:-24px;left:0;border-radius:50%;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.25);pointer-events:none;z-index:1;animation-name:bubbleRise;animation-timing-function:ease-in;animation-iteration-count:infinite;}
@keyframes bubbleRise{0%{transform:translateY(0) scale(1);opacity:0;}12%{opacity:.7;}88%{opacity:.35;}100%{transform:translateY(-320px) scale(1.4);opacity:0;}}
@media (max-width:860px){.why-grid{grid-template-columns:1fr 1fr;}}
@media (max-width:640px){.why-grid{grid-template-columns:1fr;}}
.story-block{padding:calc(var(--section-pad)/2) var(--gutter);max-width:var(--container);margin:0 auto;text-align:center;}
.story-block--tint{background:var(--sand);}
.story-block__text{max-width:760px;margin:18px auto 0;color:var(--ink-soft);}

/* ===========================================================
   REVIEWS
   =========================================================== */
.reviews{background:var(--maroon);color:var(--white);padding:var(--section-pad) var(--gutter);}
.reviews .eyebrow{color:#F5C9CD;}
.reviews .section-title{color:var(--white);}
.reviews__disclaimer{text-align:center;color:rgba(255,255,255,.6);font-size:.8rem;margin-top:-38px;margin-bottom:40px;}
.reviews__slider{max-width:780px;margin:0 auto;position:relative;overflow:hidden;border-radius:8px;}
.reviews__track{display:flex;transition:transform .5s var(--ease);}
.review-card{flex:0 0 100%;width:100%;box-sizing:border-box;background:rgba(255,255,255,.06);padding:38px;text-align:center;border:1px solid rgba(255,255,255,.15);}
.review-card__tag{font-size:.72rem;letter-spacing:.08em;color:#F5C9CD;font-weight:600;}
.review-card__stars{position:relative;display:inline-block;color:#F5C9CD;margin:14px 0;letter-spacing:3px;line-height:1;}
.review-card__stars-track{color:rgba(255,255,255,.28);}
.review-card__stars-fill{position:absolute;top:0;left:0;overflow:hidden;white-space:nowrap;width:calc(var(--rating)/5*100%);color:#F5C9CD;}
.review-card p{font-size:1.08rem;max-width:44ch;margin:0 auto;}
.review-card__meta{margin-top:18px;font-size:.85rem;color:rgba(255,255,255,.65)!important;}
.reviews__nav{display:flex;justify-content:center;gap:16px;margin-top:26px;}
.reviews__nav button{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border:1.5px solid rgba(255,255,255,.4);border-radius:50%;color:var(--white);transition:background .25s var(--ease);}
.reviews__nav button svg{display:block;}
.reviews__nav button:hover{background:rgba(255,255,255,.12);}

/* ===========================================================
   VIDEO — sequential playlist
   =========================================================== */
.video{position:relative;overflow:hidden;background:#063B4C;padding:var(--section-pad) var(--gutter);}
.video__head{position:relative;z-index:2;max-width:var(--container);margin:0 auto 34px;text-align:center;color:var(--white);}
.video__note{margin-top:14px;font-size:.82rem;color:rgba(255,255,255,.55);}
.video__wrap{position:relative;z-index:2;max-width:920px;margin:0 auto;background:#000;aspect-ratio:16/9;overflow:hidden;border-radius:6px;box-shadow:0 30px 60px rgba(0,0,0,.4);touch-action:pan-y;}
.video__wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0;}
.video__slides{display:flex;width:100%;height:100%;transition:transform .5s var(--ease);}
.video__slide{flex:0 0 100%;width:100%;height:100%;position:relative;overflow:hidden;visibility:hidden;transition:visibility 0s linear .5s;}
.video__slide.is-active{visibility:visible;transition-delay:0s;}
.video__poster{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.video__poster:fullscreen{width:100vw;height:100vh;object-fit:cover;}
.video__poster:-webkit-full-screen{width:100vw;height:100vh;object-fit:cover;}
.video__poster:-moz-full-screen{width:100vw;height:100vh;object-fit:cover;}
.video__wrap:hover .video__poster{transform:scale(1.03);}
.video__wrap.is-playing .video__play{display:none;}
.video__play{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:82px;height:82px;border-radius:50%;background:rgba(193,18,31,.92);display:flex;align-items:center;justify-content:center;transition:transform .26s var(--ease);z-index:2;}
.video__play svg{width:28px;height:28px;fill:var(--white);margin-left:4px;}
.video__play:hover{transform:translate(-50%,-50%) scale(1.08);background:var(--bright-red);}
.video__dots{position:relative;z-index:2;display:flex;justify-content:center;gap:10px;margin-top:22px;}
.video__dots button{width:26px;height:4px;background:rgba(255,255,255,.35);transition:background .3s var(--ease),width .3s var(--ease);}
.video__dots button.is-active{background:var(--white);width:38px;}

/* ===========================================================
   GALLERY
   =========================================================== */
.gallery{padding:var(--section-pad) var(--gutter);max-width:var(--container);margin:0 auto;}
.gallery__grid{columns:3 240px;column-gap:16px;}
.gallery__item{display:block;width:100%;margin:0 0 16px;break-inside:avoid;padding:0;border-radius:16px;overflow:hidden;position:relative;box-shadow:0 10px 24px rgba(6,75,90,.10);transition:transform .4s var(--ease),box-shadow .4s var(--ease);}
.gallery__item:hover{transform:translateY(-6px) rotate(-0.4deg);box-shadow:0 20px 36px rgba(6,75,90,.18);}
.gallery__item img{width:100%;height:auto;display:block;object-fit:contain;transition:transform .6s var(--ease);}
.gallery__item:hover img{transform:scale(1.06);}
.gallery__item::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 60%,rgba(5,46,59,.55));opacity:0;transition:opacity .35s var(--ease);pointer-events:none;}
.gallery__item:hover::after{opacity:1;}
.gallery__item--tall,.gallery__item--wide{grid-row:unset;grid-column:unset;}
.gallery__item--video{background:#000;}
.gallery__item--video video{width:100%;height:auto;display:block;object-fit:cover;pointer-events:none;opacity:.85;}
.gallery__play-icon{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:2rem;color:#fff;background:rgba(0,0,0,.3);transition:background .3s var(--ease);}
.gallery__item--video:hover .gallery__play-icon{background:rgba(0,0,0,.15);}
.lightbox #lightboxVideo{max-width:90vw;max-height:85vh;}

/* FAQ accordion */
.faq{padding:var(--section-pad) var(--gutter);max-width:820px;margin:0 auto;}
.faq__list{display:flex;flex-direction:column;gap:14px;margin-top:30px;}
.faq__item{border:1px solid var(--line);border-radius:8px;overflow:hidden;background:var(--white);transition:border-color .3s var(--ease);}
.faq__item.is-open{border-color:var(--dark-red);}
.faq__question{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;text-align:left;font-weight:600;font-size:1rem;color:var(--ink);}
.faq__icon{flex:0 0 auto;width:22px;height:22px;display:flex;align-items:center;justify-content:center;font-size:1.3rem;line-height:1;color:var(--dark-red);transition:transform .3s var(--ease);}
.faq__item.is-open .faq__icon{transform:rotate(45deg);}
.faq__answer{max-height:0;overflow:hidden;transition:max-height .35s var(--ease);}
.faq__answer p{padding:0 22px 18px;color:rgba(0,0,0,.6);line-height:1.6;font-size:.95rem;}
.lightbox{position:fixed;inset:0;background:rgba(20,8,9,.94);z-index:900;display:flex;align-items:center;justify-content:center;padding:40px;}
.lightbox img{max-width:90vw;max-height:86vh;object-fit:contain;}
.lightbox__close{position:absolute;top:22px;right:28px;color:var(--white);font-size:2.2rem;line-height:1;}

/* ===========================================================
   MOTTO
   =========================================================== */
.motto{position:relative;background:var(--maroon);color:var(--white);padding:clamp(60px,9vw,110px) var(--gutter);text-align:center;overflow:hidden;}
.motto__ripple{position:absolute;left:0;right:0;bottom:0;width:100%;height:110px;}
.motto__ripple path{fill:rgba(255,255,255,.07);}
.motto__ripple path:nth-child(2){fill:rgba(255,255,255,.05);}
.motto__ripple path:nth-child(3){fill:rgba(255,255,255,.09);}
.motto__text{position:relative;z-index:2;font-size:clamp(2.2rem,6vw,4.6rem);font-weight:800;line-height:1.15;white-space:nowrap;}
.motto__text span{color:var(--red);}

/* ===========================================================
   FINAL CTA
   =========================================================== */
.final-cta{text-align:center;padding:var(--section-pad) var(--gutter);max-width:820px;margin:0 auto;}
.final-cta h2{font-size:clamp(2rem,3.6vw,3rem);}
.final-cta p{margin-top:18px;color:var(--ink-soft);font-size:1.04rem;}
.final-cta__actions{display:flex;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:32px;}

/* ===========================================================
   FOOTER
   =========================================================== */
.site-footer{position:relative;overflow:hidden;background:linear-gradient(180deg,#063B4C 0%,#052E3B 100%);color:rgba(255,255,255,.85);padding-top:56px;}
.site-footer__wave{position:absolute;top:0;left:0;right:0;width:100%;height:60px;z-index:1;}
.site-footer__wave path{fill:var(--white);}
.site-footer__top{position:relative;z-index:2;max-width:var(--container);margin:0 auto;padding:clamp(28px,4vw,48px) var(--gutter) 40px;display:grid;grid-template-columns:1.4fr .9fr 1fr;gap:40px;}
.site-footer__logo-row{display:flex;align-items:center;gap:14px;}
.site-footer__logo-img{width:52px;height:52px;object-fit:contain;flex:0 0 auto;}
.site-footer__logo{font-family:var(--font-display);font-weight:700;font-size:1.08rem;color:var(--white);letter-spacing:.03em;}
.site-footer__tag{margin-top:14px;color:rgba(255,255,255,.55);font-size:.88rem;white-space:nowrap;}
.site-footer h3{font-size:.78rem;font-weight:700;color:#F5C9CD;margin-bottom:18px;letter-spacing:.1em;text-transform:uppercase;}
.site-footer__links ul{display:flex;flex-direction:column;gap:12px;}
.site-footer__links a{position:relative;font-size:.92rem;color:rgba(255,255,255,.7);transition:color .22s,padding-left .22s;}
.site-footer__links a:hover{color:var(--white);padding-left:6px;}
.site-footer__brand-info{margin-top:18px;display:flex;flex-direction:column;gap:12px;}
.site-footer__brand-info li{display:flex;align-items:flex-start;gap:10px;font-size:.88rem;color:rgba(255,255,255,.75);}
.site-footer__brand-info li svg{flex:0 0 auto;width:17px;height:17px;margin-top:2px;stroke:#F5C9CD;fill:none;stroke-width:2;}
.site-footer__brand-info li a{color:rgba(255,255,255,.85);transition:color .22s;}
.site-footer__brand-info li a:hover{color:var(--white);}
.site-footer__brand .social-icons{margin-top:20px;}
.social-icons{display:flex;gap:12px;position:relative;z-index:2;}
.social-icons a{width:38px;height:38px;border:1px solid rgba(255,255,255,.25);border-radius:50%;display:flex;align-items:center;justify-content:center;transition:background .22s,transform .22s,border-color .22s;}
.social-icons a:hover{background:var(--red);border-color:var(--red);transform:translateY(-3px);}
.social-icons svg{width:18px;height:18px;fill:var(--white);}
.site-footer__bottom{position:relative;z-index:2;border-top:1px solid rgba(255,255,255,.1);text-align:left;padding:20px var(--gutter);font-size:.8rem;color:rgba(255,255,255,.5);}
.site-footer__bottom span.credit{display:block;margin-top:4px;font-size:.78rem;}
.site-footer__bottom span.credit a{color:rgba(255,255,255,.65);text-decoration:underline;}
.site-footer__bottom span.credit a:hover{color:var(--white);}

.site-footer__legal .footer-divider{border:none;border-top:1px solid rgba(255,255,255,.15);margin:20px 0;}
.tnc-link{font:inherit;font-size:.92rem;font-weight:600;color:rgba(255,255,255,.85);background:none;border:none;border-bottom:1.5px solid rgba(255,255,255,.4);padding:0 0 2px;cursor:pointer;transition:color .22s,border-color .22s;}
.tnc-link:hover{color:var(--white);border-color:var(--white);}
.payment-badges{display:flex;flex-wrap:wrap;gap:10px;list-style:none;padding:0;margin:0;}
.pay-badge{display:inline-flex;align-items:center;justify-content:center;width:46px;height:30px;border-radius:5px;background:var(--white);position:relative;overflow:hidden;box-shadow:0 2px 6px rgba(0,0,0,.2);}
.pay-badge--visa{color:#1A1F71;font-style:italic;font-weight:800;font-size:.72rem;letter-spacing:-.02em;}
.pay-badge--paypal{background:#003087;color:#fff;font-weight:700;font-size:.5rem;letter-spacing:0;}
.pay-badge__circle{position:absolute;width:17px;height:17px;border-radius:50%;top:50%;transform:translateY(-50%);}
.pay-badge--mc .pay-badge__circle:nth-child(1){left:8px;background:#EB001B;}
.pay-badge--mc .pay-badge__circle:nth-child(2){left:18px;background:#F79E1B;mix-blend-mode:multiply;}
.pay-badge--maestro .pay-badge__circle:nth-child(1){left:8px;background:#0099DF;}
.pay-badge--maestro .pay-badge__circle:nth-child(2){left:18px;background:#ED0006;mix-blend-mode:multiply;}

/* ---- Terms & Conditions modal (reuses .app-modal shell) ---- */
.app-modal__box--tnc{max-width:560px;max-height:82vh;overflow-y:auto;text-align:left;}
.app-modal__box--tnc h3{text-align:center;margin-bottom:18px;}
.app-modal__list{list-style:disc;padding-left:20px;display:flex;flex-direction:column;gap:10px;color:var(--ink-soft);font-size:.94rem;line-height:1.5;}

/* ===========================================================
   FLOATING WHATSAPP BUTTON
   =========================================================== */
.whatsapp-float{position:fixed;right:22px;bottom:22px;z-index:600;width:56px;height:56px;border-radius:50%;background:#25D366;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(0,0,0,.28);transition:transform .25s var(--ease);}
.whatsapp-float:hover{transform:scale(1.08);}
.whatsapp-float svg{width:28px;height:28px;fill:var(--white);}

.floating-actions{position:fixed;right:22px;bottom:22px;z-index:600;display:flex;flex-direction:column;gap:12px;align-items:center;}
.floating-actions__btn{width:52px;height:52px;border-radius:50%;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 26px rgba(0,0,0,.28);transition:transform .25s var(--ease),opacity .25s var(--ease);}
.floating-actions__btn:hover{transform:scale(1.08);}
.floating-actions__btn svg{width:23px;height:23px;fill:var(--white);}
.floating-actions__btn--call{background:var(--maroon);}
.floating-actions__btn--whatsapp{background:#25D366;}
.floating-actions__btn--top{background:transparent;box-shadow:none;width:52px;height:52px;}
.floating-actions__btn--top svg{width:26px;height:26px;fill:none;stroke:var(--maroon);}
.floating-actions__btn--top:hover{transform:translateY(-3px);}
.floating-actions__btn--top[hidden]{display:none;}

/* ---- Cookie consent banner ---- */
.cookie-banner{position:fixed;left:0;right:0;bottom:0;z-index:900;background:var(--maroon);color:rgba(255,255,255,.92);padding:16px 20px;display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:center;box-shadow:0 -10px 30px rgba(0,0,0,.25);}
.cookie-banner[hidden]{display:none;}
.cookie-banner p{font-size:.85rem;max-width:640px;margin:0;line-height:1.5;}
.cookie-banner .tnc-link{color:#F5C9CD;border-color:rgba(245,201,205,.5);}
.cookie-banner__actions{display:flex;gap:10px;flex-shrink:0;}
.btn--sm{padding:10px 22px;font-size:.85rem;}

/* ===========================================================
   MOBILE BOTTOM NAV
   =========================================================== */
.bottom-nav{display:none;}
@media (max-width:860px){
  .bottom-nav{
    display:flex; position:fixed; left:0; right:0; bottom:0; z-index:550;
    background:var(--white); box-shadow:0 -4px 20px rgba(6,75,90,.12);
    padding: 6px 4px calc(6px + env(safe-area-inset-bottom));
  }
  .bottom-nav a{
    flex:1; display:flex; flex-direction:column; align-items:center; gap:4px;
    padding:6px 2px; font-size:.66rem; font-weight:600; color:var(--ink-soft);
    transition: color .2s var(--ease);
  }
  .bottom-nav a svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2;}
  .bottom-nav a.is-active{ color:var(--red); }
  .whatsapp-float{ bottom:74px; }
  .floating-actions{ bottom:76px; }
  body{ padding-bottom: 64px; }
}

/* ===========================================================
   RESPONSIVE
   =========================================================== */
@media (max-width:1080px){
  .special__grid,.locations__grid{grid-template-columns:repeat(2,1fr);}
  .programs__grid{grid-template-columns:repeat(2,1fr);}
  .trainers__grid{grid-template-columns:repeat(3,1fr);}
  .values__grid{grid-template-columns:repeat(2,1fr);}
  .values__grid li:last-child:nth-child(4){grid-column:auto;}
  .site-footer__top{grid-template-columns:1fr 1fr;}
}
@media (max-width:860px){
  .main-nav,.nav-cta{display:none;}
  .menu-toggle{display:flex;}
  .nav-inner{grid-template-columns:minmax(0,1fr) auto auto;justify-content:space-between;}
    .logo{min-width:0;}
  .logo__text{white-space:normal;overflow:hidden;}
  .video{padding-left:0;padding-right:0;}
  .video__head{padding:0 var(--gutter);}
  .video__wrap{max-width:100%;border-radius:0;}
  .intro,.statement{grid-template-columns:1fr;}
  .intro__media,.intro__content{order:initial;}
  .intro__content{text-align:center;}
  .intro__content p{margin-left:auto;margin-right:auto;}
  .stat-row{text-align:center;}
  .stat{display:flex;flex-direction:column;align-items:center;}
  .statement--reverse .statement__media{order:0;}
  .statement--reverse .statement__content{order:1;}
  .statement__media img{min-height:260px;}
  .stat-row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px;}
  .stat + .stat{border-left:0;}
  .stat:nth-child(even){border-left:1px solid var(--line);}
  .trainers__grid{grid-template-columns:repeat(2,1fr);}
  .gallery__grid{columns:2 180px;column-gap:12px;}
  .gallery__item{margin-bottom:12px;border-radius:12px;}
  /* Hero: keep clear of the fixed header/logo on short mobile screens */
  .hero__content{padding-top:74px;padding-bottom:clamp(40px,8vw,64px);}
  .hero__trust{margin-bottom:10px;font-size:.8rem;}
  .hero__title{font-size:clamp(2rem,7.6vw,3rem);}
  .motto__text{font-size:clamp(2rem,6vw,3rem);}
  .hero__sub{margin-top:14px;font-size:.98rem;}
  .hero__actions{margin-top:18px;gap:12px;}
  .why .section-title{padding:0 var(--gutter);}
  .page-banner{padding:74px var(--gutter) clamp(32px,6vw,48px);}
}
@media (max-width:640px){
  .special__grid,.locations__grid,.programs__grid,.trainers__grid,.values__grid{grid-template-columns:1fr;}
  .batches__grid{grid-template-columns:1fr;}
  .site-footer__top{grid-template-columns:1fr;text-align:left;}
  .site-footer__logo-row{justify-content:flex-start;}
  .site-footer__links ul{align-items:flex-start;}
  .site-footer__brand-info{align-items:flex-start;}
  .site-footer__brand-info li{align-items:flex-start;}
  .payment-badges{justify-content:flex-start;}
  .site-footer .social-icons{justify-content:flex-start;}
  .hero__actions{flex-direction:column;align-items:stretch;}
  .hero__actions .btn{width:100%;}
  .final-cta__actions{flex-direction:column;}
  .final-cta__actions .btn{width:100%;}
  .hero__content{padding-top:70px;padding-bottom:36px;}
  .hero__title{font-size:clamp(1.42rem,7.6vw,2.4rem);}
  .motto__text{font-size:clamp(1.4rem,7vw,2.2rem);}
  .hero__trust{margin-bottom:8px;}
  .hero__sub{margin-top:12px;}
  .hero__actions{margin-top:14px;}
  .page-banner{padding:70px var(--gutter) 32px;}
  .page-banner h1{font-size:clamp(1.9rem,9vw,2.6rem);}
}
/* Hero: on ANY short-height viewport — a short phone screen, or a wide
   desktop/laptop window that just isn't very tall — anchor content to the
   TOP of the hero (instead of the bottom) with a fixed offset below the
   fixed header, so the title/subtitle can never crowd or sit under the
   logo/nav. Also cap the title size against viewport height so it can't
   grow oversized in a wide-but-short window. Intentionally NOT scoped to
   max-width, since the overlap happens at any width once height is short. */
@media (max-height:700px){
  .hero{align-items:flex-start;}
  .hero__content{padding-top:150px;padding-bottom:120px;}
  .hero__trust{margin-bottom:6px;}
  .hero__title{font-size:clamp(1.8rem,7vh,3.4rem);}
  .hero__sub{margin-top:8px;font-size:.98rem;}
  .hero__actions{margin-top:12px;}
}
@media (max-height:600px){
  .hero__content{padding-top:130px;}
  .hero__title{font-size:clamp(1.5rem,6vh,2.4rem);}
  .hero__sub{font-size:.92rem;}
}
@media (max-height:460px){
  .hero__content{padding-top:110px;padding-bottom:12px;}
  .hero__title{font-size:clamp(1.3rem,5.5vh,1.9rem);}
}
@media (min-width:861px) and (max-height:700px){
  .hero__content{padding-top:210px;padding-bottom:10px;}
}

/* ---- Page loader ---- */
.page-loader{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:linear-gradient(180deg,#063B4C 0%,#087E8B 100%);transition:opacity .6s var(--ease),visibility .6s var(--ease);}
.page-loader.is-hidden{opacity:0;visibility:hidden;pointer-events:none;}
.page-loader__inner{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;}
.page-loader__logo{display:block;width:64px;height:64px;object-fit:contain;border-radius:50%;background:var(--white);padding:10px;animation:loaderFloat 1.8s ease-in-out infinite;}
.page-loader__waterline{order:3;display:flex;gap:6px;justify-content:center;align-items:center;margin:18px 0 0;}
.page-loader__waterline span{width:8px;height:8px;border-radius:50%;background:var(--white);opacity:.4;animation:loaderDot 1.1s ease-in-out infinite;}
.page-loader__waterline span:nth-child(1){animation-delay:0s;}
.page-loader__waterline span:nth-child(2){animation-delay:.12s;}
.page-loader__waterline span:nth-child(3){animation-delay:.24s;}
.page-loader__waterline span:nth-child(4){animation-delay:.36s;}
.page-loader__waterline span:nth-child(5){animation-delay:.48s;}
.page-loader__text{order:2;margin:20px 0 0;padding-left:.04em;color:rgba(255,255,255,.85);font-size:.85rem;letter-spacing:.04em;text-align:center;}
@keyframes loaderFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-10px);}}
@keyframes loaderDot{0%,100%{opacity:.35;transform:translateY(0);}50%{opacity:1;transform:translateY(-8px);}}
@media (prefers-reduced-motion:reduce){
  .page-loader__logo,.page-loader__waterline span{animation:none;}
}

/* ===========================================================
   PAGE BANNER (interior pages)
   =========================================================== */
.page-banner{position:relative;background:linear-gradient(160deg,#063B4C 0%,#087E8B 100%);color:var(--white);padding:80px var(--gutter) 56px;overflow:hidden;text-align:center;}
.page-banner__inner{position:relative;z-index:2;max-width:var(--container);margin:0 auto;}
.page-banner h1{font-size:clamp(2.2rem,5vw,3.6rem);color:var(--white);margin-top:6px;}
.page-banner__crumbs{margin-top:18px;display:flex;gap:8px;justify-content:center;font-size:.85rem;color:rgba(255,255,255,.75);}
.page-banner__crumbs a{color:rgba(255,255,255,.9);}
.page-banner__crumbs a:hover{text-decoration:underline;}
.page-banner__crumbs span[aria-current]{color:var(--white);font-weight:600;}
.page-banner__wave{position:absolute;left:0;right:0;bottom:-1px;width:100%;height:70px;z-index:1;}

/* ===========================================================
   PRODUCT GRID
   =========================================================== */
.product-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;margin-top:10px;}
.product-card{background:var(--white);box-shadow:0 18px 34px rgba(6,75,90,.10);display:flex;flex-direction:column;}
.product-card__img{overflow:hidden;height:220px;background:#f4f6f5;display:flex;align-items:center;justify-content:center;}
.product-card__img img{width:100%;height:100%;object-fit:contain;transition:transform .5s var(--ease);}
.product-card:hover .product-card__img img{transform:scale(1.06);}
.product-card h3{font-size:1.15rem;padding:18px 20px 6px;}
.product-card p{padding:0 20px;color:var(--ink-soft);font-size:.92rem;flex:1;}
.product-card .link-btn{margin:16px 20px 20px;}
.product-card h3 a{transition:color .2s var(--ease);}
.product-card h3 a:hover{color:var(--red);}
.link-btn{display:inline-block;font-weight:600;font-size:.88rem;color:var(--red);position:relative;}
.link-btn--muted{color:var(--maroon);}

/* ===========================================================
   JOB GRID (careers)
   =========================================================== */
.job-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:10px;}
.job-card{background:var(--sand);border-left:4px solid var(--red);padding:28px 26px;box-shadow:0 14px 28px rgba(6,75,90,.08);}
.job-card__tag{font-size:.72rem;letter-spacing:.06em;font-weight:600;color:var(--red);text-transform:uppercase;}
.job-card h3{font-size:1.3rem;margin-top:8px;}
.job-card p{color:var(--ink-soft);margin-top:8px;font-size:.94rem;}
.job-card .link-btn{margin-top:16px;}

/* ===========================================================
   CONTACT PAGE
   =========================================================== */
.contact-info{margin-top:30px;display:flex;flex-direction:column;gap:22px;}
.contact-info li{display:flex;gap:14px;align-items:flex-start;}
.contact-info svg{flex:0 0 auto;width:24px;height:24px;color:var(--red);margin-top:2px;}
.contact-info h3{font-size:.95rem;margin-bottom:4px;}
.contact-info p{color:var(--ink-soft);font-size:.92rem;}
.contact-info a{color:var(--maroon);font-weight:600;}
.contact-form{background:var(--sand);padding:clamp(24px,3vw,38px);border-radius:8px;box-shadow:0 24px 44px rgba(6,75,90,.12);}
.contact-form h3{font-size:1.3rem;margin-bottom:18px;}
.contact-form__row{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
.contact-form input,.contact-form textarea,.contact-form select{width:100%;padding:13px 14px;border:1.5px solid var(--line);background:var(--white);font-family:var(--font-body);font-size:.94rem;margin-bottom:14px;color:var(--ink);}
.contact-form textarea{resize:vertical;}
.contact-form select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23064B5A' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");background-repeat:no-repeat;background-position:right 14px center;background-size:16px;padding-right:38px;}
.contact-form__note{margin-top:12px;font-size:.78rem;color:var(--ink-soft);text-align:center;}
.contact-form__status { margin-top: 10px; font-size: 14px; }
.contact-form__status--success { color: #00170c; }
.contact-form__status--error { color: #c62828; }

/* ===========================================================
   BOOK YOUR TRAINER (home page)
   =========================================================== */
.booking{background:var(--sand);padding:var(--section-pad) var(--gutter);}
.booking__inner{max-width:var(--container);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px);align-items:center;}
.booking__text h2{font-size:clamp(2rem,3.4vw,2.8rem);margin:10px 0 16px;color:var(--maroon);}
.booking__text p{color:var(--ink-soft);max-width:42ch;}
.booking .contact-form{margin:0;}
@media (max-width:860px){
  .booking__inner{grid-template-columns:1fr;}
}

@media (max-width:860px){
  .product-grid{grid-template-columns:repeat(2,1fr);}
  .job-grid{grid-template-columns:1fr;}
}
@media (max-width:640px){
  .product-grid{grid-template-columns:1fr;}
  .contact-form__row{grid-template-columns:1fr;}
}

/* ===========================================================
   VISION / MISSION / CORE VALUES (About page)
   =========================================================== */
.pillars{padding:var(--section-pad) var(--gutter);max-width:var(--container);margin:0 auto;}
.pillars__grid{display:grid;grid-template-columns:1fr 1fr;gap:30px;}
.pillar-card{background:var(--sand);border-top:4px solid var(--red);padding:34px 30px;}
.pillar-card h3{font-size:1.5rem;margin-bottom:14px;color:var(--maroon);}
.pillar-card p{color:var(--ink-soft);}
@media (max-width:820px){.pillars__grid{grid-template-columns:1fr;}}

.core-values{position:relative;overflow:hidden;padding:56px var(--gutter) var(--section-pad);max-width:var(--container);margin:0 auto;}
.core-values > *{position:relative;z-index:1;}
.core-values__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;}
.core-value{display:flex;align-items:center;gap:16px;background:var(--white);box-shadow:0 12px 28px rgba(6,75,90,.08);padding:26px 24px;border-radius:16px;border-left:4px solid var(--red);transition:transform .35s var(--ease),box-shadow .35s var(--ease);}
.core-value:hover{transform:translateY(-6px);box-shadow:0 20px 38px rgba(6,75,90,.16);}
.core-value__icon{font-size:1.6rem;flex:none;width:52px;height:52px;display:flex;align-items:center;justify-content:center;background:var(--sand);border-radius:50%;transition:transform .4s var(--ease),background .35s var(--ease);}
.core-value:hover .core-value__icon{transform:scale(1.15) rotate(-6deg);background:var(--red);}
.core-value h4{font-family:var(--font-body);font-weight:600;font-size:1rem;margin:0;}
@media (max-width:820px){.core-values__grid{grid-template-columns:1fr 1fr;}}
@media (max-width:520px){.core-values__grid{grid-template-columns:1fr;}}

/* ===========================================================
   PATHWAY / PROGRESSION
   =========================================================== */
.pathway{padding:var(--section-pad) var(--gutter);background:var(--sand);}

/* ===========================================================
   TEAM
   =========================================================== */
.team{padding:var(--section-pad) var(--gutter);max-width:var(--container);margin:0 auto;}
.team__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.team-card{background:var(--white);box-shadow:0 16px 32px rgba(6,75,90,.10);padding:28px 24px;border-bottom:4px solid var(--red);}
.team-card h3{font-size:1.3rem;color:var(--maroon);margin-bottom:2px;}
.team-card__role{color:var(--red);font-weight:600;font-size:.88rem;margin-bottom:12px;display:block;}
.team-card p{color:var(--ink-soft);font-size:.94rem;}
@media (max-width:900px){.team__grid{grid-template-columns:1fr 1fr;}}
@media (max-width:560px){.team__grid{grid-template-columns:1fr;}}

/* ===========================================================
   FEE TABLE
   =========================================================== */
.fees{padding:var(--section-pad) var(--gutter);max-width:var(--container);margin:0 auto;}
.fees__intro{max-width:760px;margin:0 auto 40px;text-align:center;color:var(--ink-soft);}
.fee-table-wrap{overflow-x:auto;margin-bottom:56px;box-shadow:0 16px 32px rgba(6,75,90,.08);}
table.fee-table{width:100%;border-collapse:collapse;min-width:640px;background:var(--white);}
table.fee-table caption{text-align:left;font-family:var(--font-display);font-size:1.3rem;color:var(--maroon);padding:16px 20px;background:var(--sand);}
table.fee-table th,table.fee-table td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--line);font-size:.92rem;}
table.fee-table thead th{background:var(--maroon);color:var(--white);font-weight:600;}
table.fee-table tbody tr:nth-child(even){background:var(--sand);}
table.fee-table td.fee-amount{color:var(--red);font-weight:700;}
.fees__note{text-align:center;color:var(--ink-soft);font-size:.9rem;margin-top:14px;padding:0 20px;}
.fees__note--top{margin:0;padding:16px 20px 4px;background:var(--sand);}
.fee-table-wrap.fee-table-wrap--tight{margin-bottom:24px;}
.fee-table-wrap{margin-bottom:64px;}

.packages-gate{max-width:520px;margin:0 auto 20px;text-align:center;background:var(--sand);border:1px dashed rgba(6,75,90,.25);border-radius:12px;padding:clamp(28px,4vw,40px) clamp(20px,4vw,32px);}
.packages-gate__text{color:var(--ink-soft);margin-bottom:20px;font-size:.98rem;}

.app-modal__box--form{max-width:440px;text-align:left;}
.app-modal__box--form h3{text-align:center;margin-bottom:6px;}
.app-modal__box--form-note{text-align:center;color:var(--ink-soft);font-size:.9rem;margin-bottom:22px;}
.packages-lead-form{display:flex;flex-direction:column;gap:14px;}
.packages-lead-form input{width:100%;padding:13px 16px;border:1.5px solid rgba(6,75,90,.18);border-radius:8px;font:inherit;font-size:.94rem;color:var(--ink);background:var(--white);}
.packages-lead-form input:focus{outline:none;border-color:var(--red);}

/* ===========================================================
   ADVENTURE PROGRAM
   =========================================================== */
.adventure{padding:var(--section-pad) var(--gutter);background:var(--maroon);color:var(--white);}
.adventure__inner{max-width:var(--container);margin:0 auto;}
.adventure__grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:36px;}
.adventure-card{background:rgba(255,255,255,.08);padding:26px 28px;border-left:4px solid var(--bright-red);}
.adventure-card h3{font-size:1.3rem;margin-bottom:14px;}
.adventure-card ul{list-style:disc;padding-left:20px;}
.adventure-card li{margin-bottom:6px;font-size:.95rem;color:#F0DCDF;}
@media (max-width:700px){.adventure__grid{grid-template-columns:1fr;}}
.adventure__videos{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:36px;}
.adventure-video{background:rgba(255,255,255,.08);border-left:4px solid var(--bright-red);overflow:hidden;}
.adventure-video video{width:100%;height:220px;object-fit:cover;display:block;}
.adventure-video p{padding:12px 16px;font-weight:600;font-size:.95rem;}
@media (max-width:900px){.adventure__videos{grid-template-columns:1fr;}}

/* ===========================================================
   BENEFITS CHECKLIST
   =========================================================== */
.benefits{padding:var(--section-pad) var(--gutter);max-width:var(--container);margin:0 auto;}
.benefits__grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 34px;max-width:920px;margin:0 auto;}
.benefits__grid li{display:flex;gap:10px;align-items:flex-start;color:var(--ink-soft);font-size:.96rem;}
.benefits__grid li::before{content:"✔";color:var(--red);font-weight:700;flex:none;}
@media (max-width:640px){.benefits__grid{grid-template-columns:1fr;}}

/* ===========================================================
   JOB APPLICATION FORM — FILE FIELDS
   =========================================================== */
.file-field{display:block;margin-bottom:14px;}
.file-field__label{display:block;font-size:.85rem;font-weight:600;color:var(--maroon);margin-bottom:6px;}
.file-field__label em{font-weight:400;font-style:normal;color:var(--ink-soft);font-size:.8rem;}
.file-field input[type="file"]{width:100%;padding:11px 12px;border:1.5px dashed var(--line);background:var(--white);font-family:var(--font-body);font-size:.88rem;color:var(--ink);cursor:pointer;}
.file-field input[type="file"]::file-selector-button{padding:8px 16px;margin-right:12px;border:none;background:var(--red);color:var(--white);font-weight:600;font-size:.82rem;cursor:pointer;}
.file-field.has-error input[type="file"]{border-color:var(--bright-red);}
.file-field__error{color:var(--bright-red);font-size:.8rem;margin:-8px 0 14px;font-weight:600;}

/* ===========================================================
   SUCCESS MODAL POPUP
   =========================================================== */
.app-modal[hidden]{display:none;}
.app-modal{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px;}
.app-modal__backdrop{position:absolute;inset:0;background:rgba(6,20,25,.6);backdrop-filter:blur(2px);}
.app-modal__box{position:relative;background:var(--white);max-width:420px;width:100%;padding:clamp(30px,5vw,44px) clamp(24px,4vw,36px);text-align:center;border-radius:10px;box-shadow:0 30px 70px rgba(0,0,0,.3);animation:appModalIn .28s var(--ease);}
@keyframes appModalIn{from{opacity:0;transform:translateY(16px) scale(.97);}to{opacity:1;transform:none;}}
.app-modal__close{position:absolute;top:10px;right:14px;font-size:1.6rem;line-height:1;color:var(--ink-soft);background:none;border:none;cursor:pointer;}
.app-modal__icon{width:64px;height:64px;margin:0 auto 18px;border-radius:50%;background:#E8F8EE;color:#1E9E5A;display:flex;align-items:center;justify-content:center;}
.app-modal__icon svg{width:34px;height:34px;}
.app-modal__box h3{font-size:1.5rem;margin-bottom:10px;color:var(--maroon);}
.app-modal__box p{color:var(--ink-soft);font-size:.94rem;margin-bottom:24px;}

/* ---- Stats: 2x2 grid on narrower screens so labels never collide ---- */
@media (max-width:1100px){
  .stat-row{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px;}
  .stat + .stat{border-left:0;}
  .stat:nth-child(even){border-left:1px solid var(--line);}
  .stat:nth-child(n+3){border-top:1px solid var(--line);padding-top:18px;}
}

/* ===========================================================
   HERO + BOOKING FORM (form sits on the right of the hero)
   =========================================================== */
.hero__content{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);align-items:center;gap:clamp(28px,4vw,64px);}
.hero__form{scroll-margin-top:110px;background:var(--sand);color:var(--ink);padding:clamp(20px,2.4vw,30px);border-radius:10px;box-shadow:0 24px 50px rgba(0,0,0,.28);width:100%;max-width:520px;justify-self:end;}
.hero__form h3{font-size:1.35rem;margin-bottom:16px;color:var(--maroon);}
.hero__form .contact-form__row{margin-bottom:0;}
.hero__form input,.hero__form select{margin-bottom:12px;}
.hero__form .contact-form__note{margin-top:10px;}
.hero__title{white-space:normal;}

@media (min-width:861px){
  .hero__content{padding-top:120px;padding-bottom:130px;}
  .hero__title{font-size:clamp(2.2rem,4.4vw,4.2rem);}
  .hero__dots{left:max(var(--gutter),calc((100% - var(--container))/2 + var(--gutter)));transform:none;}
}
@media (max-width:860px){
  .hero__content{grid-template-columns:1fr;gap:28px;padding-bottom:110px;}
  .hero__form{justify-self:stretch;max-width:none;}
  .hero__title{white-space:normal;}
}
.hero__form .contact-form__row{gap:0 12px;}

/* Hero booking form — transparent / glass look */
.hero__form{background:rgba(255,255,255,.10);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);border:1px solid rgba(255,255,255,.35);box-shadow:0 20px 44px rgba(0,0,0,.18);color:var(--white);}
.hero__form h3{color:var(--white);}
.hero__form input,.hero__form select{background-color:rgba(255,255,255,.14);border:1.5px solid rgba(255,255,255,.45);color:var(--white);color-scheme:dark;}
.hero__form input::placeholder{color:rgba(255,255,255,.85);}
.hero__form input:focus,.hero__form select:focus{outline:none;border-color:var(--white);background-color:rgba(255,255,255,.22);}
.hero__form select{background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23FFFFFF' stroke-width='2'><path d='M6 9l6 6 6-6'/></svg>");}
.hero__form select option{color:#222;background:#fff;}
.hero__form .contact-form__note{color:rgba(255,255,255,.9);}

/* Hero slider dots hidden (slides still auto-advance) */
.hero__dots{display:none !important;}

/* Default profile photos — testimonials & team */
.review-card__avatar{display:block;width:68px;height:68px;margin:0 auto 6px;border-radius:50%;object-fit:cover;border:3px solid rgba(255,255,255,.85);background:var(--sand-deep);}
.team-card__photo{display:block;width:calc(100% + 48px);max-width:none;aspect-ratio:4/3;object-fit:cover;margin:-28px -24px 20px;background:var(--sand-deep);}

/* ===========================================================
   MOBILE: all text left-aligned, all buttons centered
   =========================================================== */
@media (max-width:860px){
  /* ---- text: left ---- */
  .eyebrow--center,.section-title,.special__head,.shine__content,.batch-card,
  .trainers__note,.trainer-card,.why__item h3,.values__grid li,.why-grid li,
  .story-block,.reviews__disclaimer,.video__head,.motto,.final-cta,
  .page-banner,.fees__intro,.fees__note,.packages-gate,.intro__content,
  .stat-row,.stat,.stat__label,.site-footer__top,.site-footer__bottom,
  .contact-form__note,.core-value,.pillars__grid > *,.team-card,.program-card{text-align:left;}

  .section-title,.special__head,.trainers__note,.fees__intro,.packages-gate,.final-cta,
  .story-block{margin-left:0;margin-right:0;}
  .reviews__disclaimer{margin-top:12px;}
  .stat{align-items:flex-start;}
  .site-footer__logo-row,.payment-badges,.site-footer .social-icons{justify-content:flex-start;}
  .site-footer__links ul,.site-footer__brand-info,.site-footer__brand-info li{align-items:flex-start;}
  .final-cta__actions{align-items:stretch;}

  /* ---- buttons: centered ---- */
  main .btn,.page-banner .btn,.final-cta .btn{display:flex;width:fit-content;max-width:100%;margin-left:auto;margin-right:auto;}
  .hero__actions,.final-cta__actions{justify-content:center;}
  .hero__actions .btn,.final-cta__actions .btn{width:100%;}
  .reviews__nav{justify-content:center;}
}
@media (max-width:860px){
  .why-grid svg,.values__grid svg{margin-left:0;margin-right:0;}
  .why .eyebrow{padding:0 var(--gutter);}
}
@media (max-width:860px){
  /* paragraphs that were centered with inline styles */
  p[style*="text-align:center"]{text-align:left !important;margin-left:0 !important;margin-right:0 !important;}
}

/* ===========================================================
   FOOTER — balanced columns, Quick Links in 2 columns, no empty gaps
   =========================================================== */
.site-footer__top{grid-template-columns:minmax(0,1.4fr) minmax(0,1.1fr) minmax(0,.9fr);gap:36px clamp(28px,4vw,56px);align-items:start;}
.site-footer__links ul{display:grid;grid-auto-flow:column;grid-template-rows:repeat(4,auto);grid-template-columns:repeat(2,minmax(0,1fr));gap:12px clamp(20px,3vw,40px);justify-items:start;}
.site-footer__tag{color:rgba(255,255,255,.72);line-height:1.6;}
.site-footer__brand-info li{line-height:1.55;}
.site-footer__brand-info li a,.site-footer__brand-info li span{overflow-wrap:anywhere;}
.site-footer h3{margin-bottom:16px;line-height:1.2;}

/* tablet: brand on its own row, then Quick Links | Terms & Payment side by side */
@media (max-width:1080px){
  .site-footer__top{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
  .site-footer__brand{grid-column:1 / -1;}
}
/* phone: everything stacked, Quick Links stays 2 columns */
@media (max-width:640px){
  .site-footer__top{grid-template-columns:minmax(0,1fr);gap:30px;}
  .site-footer__links,.site-footer__legal{grid-column:auto;}
  .site-footer__links ul{justify-items:start;}
}
@media (min-width:1081px){
  .site-footer__top{grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) minmax(0,.85fr);}
}

/* Quick Links: 2 columns ONLY on phones; single column on tablet/desktop */
@media (min-width:641px){
  .site-footer__links ul{display:flex;flex-direction:column;gap:12px;}
}
@media (min-width:1081px){
  .site-footer__top{grid-template-columns:minmax(0,1.3fr) minmax(0,.8fr) minmax(0,.9fr);}
}


/* Back-to-top arrow: visible on any background */
.floating-actions__btn--top{background:var(--white);box-shadow:0 8px 20px rgba(0,0,0,.25);width:46px;height:46px;}
.floating-actions__btn--top svg{width:22px;height:22px;}

/* Responsive footer: everything left-aligned; contact icons in their own column so all text starts at the same x */
@media (max-width:860px){
  .site-footer__top,.site-footer__brand,.site-footer__links,.site-footer__legal,.site-footer__bottom{text-align:left;}
  .site-footer__logo-row{justify-content:flex-start;}
  .site-footer__brand-info{align-items:stretch;}
  .site-footer__brand-info li{display:grid;grid-template-columns:20px minmax(0,1fr);column-gap:12px;align-items:start;text-align:left;}
  .site-footer__brand-info li svg{margin-top:2px;}
  .site-footer__brand-info li span,.site-footer__brand-info li a{text-align:left;}
  .site-footer__links ul{justify-items:start;align-items:flex-start;}
  .site-footer .social-icons,.site-footer__legal .payment-badges{justify-content:flex-start;}
  .site-footer__legal .tnc-link{margin-left:0;margin-right:0;}
}

/* Responsive: tagline starts at the same x as the contact text (icon column 20px + 12px gap) */
@media (max-width:860px){
  .site-footer__tag{padding-left:32px;}
}

/* Responsive footer: Quick Links, Terms, Payment & copyright left-aligned (brand block stays left) */
@media (max-width:860px){
  .site-footer__links,.site-footer__legal,.site-footer__bottom{text-align:left;}
  .site-footer__links ul{align-items:flex-start;justify-items:start;}
  .site-footer__legal .payment-badges{justify-content:flex-start;}
  .site-footer__legal .tnc-link{display:inline-block;margin-left:0;margin-right:auto;}
  .site-footer__links a:hover{padding-left:0;}
}

/* Copyright + credit: always left-aligned on every screen size */
.site-footer__bottom,.site-footer__bottom p,.site-footer__bottom .credit{text-align:left !important;}

/* Eyebrow labels now use the same size as section headings (h2) */
.eyebrow{font-family:var(--font-display);font-weight:700;font-size:clamp(2rem,3.4vw,3.2rem);line-height:1.05;letter-spacing:.01em;margin:0 0 8px;}

/* Desktop: tagline starts at the same x as the contact text (icon 17px + gap 10px) */
@media (min-width:861px){
  .site-footer__tag{padding-left:27px;}
}

/* Testimonials: light section background, card keeps its original dark-teal color */
.reviews{background:var(--sand);color:var(--ink);}
.reviews .eyebrow{color:var(--red);}
.reviews .section-title{color:var(--maroon);}
.reviews__disclaimer{color:var(--ink-soft);}
.review-card{background:#155664;border:1px solid #386F7B;color:var(--white);}
.reviews__nav button{border-color:rgba(6,75,90,.45);color:var(--maroon);}
.reviews__nav button:hover{background:rgba(6,75,90,.1);}

/* ===========================================================
   PATHWAY — ascending staircase (replaces the wrapping arrow row)
   =========================================================== */
.stairs{list-style:none;margin:0 auto;padding:0;max-width:var(--container);display:grid;grid-template-columns:repeat(7,minmax(0,1fr));align-items:end;gap:8px;}
.stairs__step{display:flex;flex-direction:column;justify-content:space-between;gap:14px;padding:18px 14px 20px;min-height:calc(120px + var(--i) * 36px);border-radius:12px 12px 0 0;color:var(--white);box-shadow:0 14px 26px rgba(6,75,90,.12);}
.stairs__num{font-family:var(--font-display);font-weight:800;font-size:clamp(1.8rem,2.6vw,2.6rem);line-height:1;opacity:.9;}
.stairs__title{font-weight:600;font-size:.92rem;line-height:1.35;}
.stairs__step:nth-child(1){background:#CDEFF2;color:var(--maroon);}
.stairs__step:nth-child(2){background:#A8E0E6;color:var(--maroon);}
.stairs__step:nth-child(3){background:#7CCCD5;color:var(--maroon);}
.stairs__step:nth-child(4){background:#3FA5B3;}
.stairs__step:nth-child(5){background:#087E8B;}
.stairs__step:nth-child(6){background:#064B5A;}
.stairs__step:nth-child(7){background:var(--red);}
@media (max-width:900px){
  .stairs{grid-template-columns:1fr;gap:10px;align-items:stretch;}
  .stairs__step{flex-direction:row;align-items:center;justify-content:flex-start;gap:16px;min-height:0;padding:16px 18px;border-radius:12px;margin-left:calc(var(--i) * 12px);}
  .stairs__num{min-width:2.2ch;font-size:1.7rem;}
}

/* Autism & ADHD benefits: points now sit inside the tinted section, right under the paragraph */
.story-block .benefits__grid{margin-top:clamp(28px,4vw,44px);text-align:left;}

/* Products: image fills the whole card top (no side gaps), light crop only */
.product-card__img{height:auto;aspect-ratio:5/6;display:block;background:#f4f6f5;}
.product-card__img img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;}
.product-card:hover .product-card__img img{transform:scale(1.04);}

/* "Shop Now" / "Apply Now" links -> real centered buttons (no underline) */
.link-btn,.link-btn.link-btn--muted{display:flex;align-items:center;justify-content:center;width:fit-content;max-width:100%;margin:18px auto 22px;padding:12px 30px;background:var(--red);color:var(--white);border:1.5px solid var(--red);font-weight:600;font-size:.92rem;line-height:1.2;transition:transform .24s var(--ease),background .24s var(--ease),border-color .24s var(--ease);}
.link-btn:hover,.link-btn.link-btn--muted:hover{background:var(--bright-red);border-color:var(--bright-red);transform:translateY(-2px);}
.product-card .link-btn{margin:18px auto 22px;}
.job-card .link-btn{margin:18px auto 0;}

/* ===========================================================
   STANDALONE / LEGAL PAGES (Privacy Policy, Terms & Conditions, Cookie Policy, 404, 403)
   These pages reuse .intro__content, but the site's global reset removes list bullets and all
   paragraph/heading margins, so multi-paragraph legal copy ran together like plain text.
   Everything below is scoped to the .static-content class, used only on those pages, so no other
   page (Home / About / Career / Contact) is affected.
   =========================================================== */
.static-content--legal{text-align:left;max-width:900px;margin:0 auto;}
.static-content--legal p{max-width:none;margin-left:0;margin-right:0;}
.static-content h3{font-size:clamp(1.25rem,2vw,1.5rem);color:var(--maroon);margin:34px 0 12px;}
.static-content p{margin-bottom:16px;}
.static-content p:last-child{margin-bottom:0;}
.static-content ul{margin:0 0 20px;padding:0;text-align:left;}
.static-content li{position:relative;padding-left:26px;margin-bottom:10px;color:var(--ink-soft);line-height:1.65;}
.static-content li:last-child{margin-bottom:0;}
.static-content li::before{content:"";position:absolute;left:2px;top:.62em;width:8px;height:8px;border-radius:50%;background:var(--red);}
.static-content p a,.static-content li a{color:var(--maroon);font-weight:600;text-decoration:underline;text-underline-offset:3px;}
.static-content p a:hover,.static-content li a:hover{color:var(--red);}
.static-content .btn{margin-bottom:0;}

/* ===========================================================
   CUSTOM SELECT (replaces the native popup)
   =========================================================== */
.cselect{position:relative;margin-bottom:14px;min-width:0;}
.hero__form .cselect{margin-bottom:12px;}

/* real select stays in the DOM for validation + form data, but is invisible */
.cselect select.cselect__native{
  position:absolute;left:0;bottom:0;width:100%;height:1px;margin:0;padding:0;border:0;
  opacity:0;pointer-events:none;
}

.cselect__btn{
  width:100%;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:10px;
  padding:12px 14px;border:1.5px solid var(--line);background:var(--white);
  font:inherit;font-size:.94rem;color:var(--ink);text-align:left;cursor:pointer;
  transition:border-color .2s var(--ease),background-color .2s var(--ease);
}
.cselect__label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.cselect:not(.has-value) .cselect__label{opacity:.75;}
.cselect__btn::after{
  content:"";flex:none;width:8px;height:8px;margin-top:-4px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg);transition:transform .25s var(--ease),margin .25s var(--ease);
}
.cselect.is-open .cselect__btn::after{transform:rotate(225deg);margin-top:4px;}
.cselect.is-open .cselect__btn,.cselect__btn:hover{border-color:var(--dark-red);}
.cselect.is-invalid .cselect__btn{border-color:var(--bright-red);}

/* Glass look inside the hero form */
.hero__form .cselect__btn{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.45);color:var(--white);}
.hero__form .cselect__btn:hover,.hero__form .cselect.is-open .cselect__btn{background:rgba(255,255,255,.22);border-color:var(--white);}
.hero__form .cselect.is-invalid .cselect__btn{border-color:#FFB3B8;}

/* Dropdown panel: always exactly as wide as the field, never overflows */
.cselect__list{
  position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:60;
  max-height:min(280px,50vh);overflow-y:auto;overscroll-behavior:contain;
  padding:6px;background:var(--white);color:var(--maroon);
  border:1px solid var(--line);border-radius:12px;
  box-shadow:0 18px 40px rgba(6,75,90,.22);
  animation:cselectIn .18s var(--ease);
  text-align:left;
}
.cselect__list[hidden]{display:none;}
.cselect.is-up .cselect__list{top:auto;bottom:calc(100% + 6px);}
@keyframes cselectIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:none;}}

.cselect__group{
  padding:8px 12px 4px;font-size:.7rem;font-weight:700;letter-spacing:.09em;
  text-transform:uppercase;color:var(--dark-red);
}
.cselect__group:not(:first-child){margin-top:6px;padding-top:12px;border-top:1px solid var(--line);}

.cselect__opt{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:44px;padding:10px 12px;border-radius:8px;
  font-size:.94rem;line-height:1.35;color:var(--maroon);cursor:pointer;white-space:normal;
}
.cselect__opt.is-active{background:var(--sand);}
.cselect__opt[aria-selected="true"]{background:var(--sand-deep);font-weight:600;}
.cselect__opt[aria-selected="true"]::after{
  content:"";flex:none;width:6px;height:11px;margin-right:2px;
  border-right:2px solid var(--red);border-bottom:2px solid var(--red);transform:rotate(45deg);
}

/* thin scrollbar */
.cselect__list{scrollbar-width:thin;scrollbar-color:rgba(6,75,90,.35) transparent;}
.cselect__list::-webkit-scrollbar{width:6px;}
.cselect__list::-webkit-scrollbar-thumb{background:rgba(6,75,90,.3);border-radius:3px;}

@media (max-width:640px){
  .cselect__list{max-height:min(300px,45vh);}
}