:root{
  --navy:#1B2A8C; --deep-navy:#141F63; --footer-navy:#0E1547;
  --red:#E01F2D; --red-dark:#C4121F; --green:#1B8A4E;
  --ink:#171A26; --muted:#5B6273; --muted-2:#666C80; --soft-bg:#F4F6FB; --border:#E5E7F0;
  --pink:#FF8A93; --gold:#F5A623;
  --shadow-card:0 12px 30px rgba(20,31,99,.16);
  --shadow-pop:0 18px 44px rgba(20,31,99,.18);
  --maxw:1240px; --r-sm:10px; --r-md:12px; --r-lg:16px; --r-xl:18px; --r-pill:999px;
  --font-display:'Archivo',sans-serif; --font-body:'Public Sans',sans-serif;
}
*{box-sizing:border-box;}
html,body{margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{font-family:var(--font-body); color:var(--ink); background:#fff; -webkit-font-smoothing:antialiased;}
a{text-decoration:none; color:inherit;}
img{max-width:100%; display:block;}
.skip-link{position:absolute; left:8px; top:-48px; z-index:300; background:var(--navy); color:#fff; font-family:var(--font-display); font-weight:700; font-size:14px; padding:10px 16px; border-radius:var(--r-sm); transition:top .15s;}
.skip-link:focus{top:8px; outline:2px solid #fff; outline-offset:2px;}
h1,h2,h3,h4{font-family:var(--font-display); margin:0;}
.container{max-width:var(--maxw); margin:0 auto; padding-left:28px; padding-right:28px;}
.section{padding:92px 0;}
.section--soft{background:var(--soft-bg);}
.section--white{background:#fff;}
.h2--sm{font-size:34px;}
@media (max-width:640px){.h2--sm{font-size:26px;}}
.list-reset{list-style:none; margin:0; padding:0;}
.eyebrow{font-family:var(--font-display); font-weight:700; font-size:13px; letter-spacing:.16em; color:var(--red);}
.h2{font-family:var(--font-display); font-weight:800; font-size:42px; line-height:1.08; letter-spacing:-.01em; color:var(--deep-navy); margin:14px 0 0;}
.lead{font-size:18px; line-height:1.6; color:var(--muted); margin:18px 0 0;}
@media (prefers-reduced-motion:reduce){*{animation:none!important; scroll-behavior:auto!important;}}
@keyframes gmaDrop{from{opacity:0; transform:translateY(6px);} to{opacity:1; transform:translateY(0);}}

/* Buttons */
.btn{display:inline-flex; align-items:center; justify-content:center; gap:8px; font-family:var(--font-display); font-weight:800; font-size:16px; padding:16px 26px; border-radius:var(--r-md); border:1.5px solid transparent; cursor:pointer; transition:background .15s,border-color .15s,color .15s;}
.btn--primary{background:var(--red); color:#fff; box-shadow:0 10px 24px rgba(224,31,45,.3);}
.btn--primary:hover{background:var(--red-dark);}
.btn--secondary{background:var(--navy); color:#fff;}
.btn--secondary:hover{background:var(--deep-navy);}
.btn--outline{background:#fff; color:var(--navy); border-color:#D5D9E8;}
.btn--outline:hover{border-color:var(--navy);}
.btn--soft{background:#EEF1FB; color:var(--navy);}
.btn--soft:hover{background:var(--navy); color:#fff;}
.btn--pill{border-radius:var(--r-pill); padding:12px 20px; font-size:14px; font-weight:700; background:var(--red); color:#fff; box-shadow:0 6px 16px rgba(224,31,45,.28); white-space:nowrap;}
.btn--pill:hover{background:var(--red-dark);}
.btn--ghost{background:rgba(255,255,255,.12); color:#fff; border-color:rgba(255,255,255,.3);}
.btn--ghost:hover{background:rgba(255,255,255,.2);}
/* Stars */
.stars{display:flex; gap:2px;}
.stars svg{width:16px; height:16px;}
/* Badge / tag */
.tag{display:inline-block; background:var(--red); color:#fff; font-family:var(--font-display); font-weight:800; font-size:11px; letter-spacing:.06em; padding:5px 11px; border-radius:var(--r-pill);}
/* Placeholder image block */
.ph{background:repeating-linear-gradient(45deg,#e7eaf5,#e7eaf5 14px,#dde1f0 14px,#dde1f0 28px); display:flex; align-items:center; justify-content:center; position:relative;}
.ph__label{font-family:var(--font-body); font-size:12px; color:#8A90A6; background:#fff; padding:6px 12px; border-radius:7px; border:1px solid var(--border);}
/* Generic card */
.card{background:#fff; border:1px solid var(--border); border-radius:var(--r-lg); }

/* Announcement */
.announce{background:var(--deep-navy); color:#EAECF7; font-size:13.5px; display:flex; align-items:center; justify-content:center; gap:10px; padding:9px 16px; text-align:center;}
.announce__dot{width:7px; height:7px; border-radius:50%; background:var(--red); flex-shrink:0;}
.announce strong{color:#fff;}
.announce a{color:#fff; font-weight:700; text-decoration:underline; text-underline-offset:2px;}
/* Nav */
.nav{position:sticky; top:0; z-index:150; background:rgba(255,255,255,.92); backdrop-filter:blur(10px); border-bottom:1px solid var(--border);}
.nav__inner{max-width:var(--maxw); margin:0 auto; padding:0 24px; height:76px; display:flex; align-items:center; gap:14px;}
.nav__brand{display:flex; align-items:center; gap:12px; flex-shrink:0;}
.nav__brand img{border-radius:50%;}
.nav__brand-text{display:flex; flex-direction:column; line-height:1.02;}
.nav__brand-name{font-family:var(--font-display); font-weight:800; font-size:16px; letter-spacing:.02em; color:var(--navy);}
.nav__brand-sub{font-family:var(--font-display); font-weight:600; font-size:10px; letter-spacing:.22em; color:var(--red);}
.nav__links{display:flex; align-items:center; gap:2px; margin-left:auto;}
.nav__links > a, .nav__toggle{display:inline-flex; align-items:center; gap:5px; height:76px; padding:0 11px; font-family:var(--font-display); font-weight:600; font-size:14.5px; color:var(--ink); background:none; border:none; cursor:pointer;}
.nav__links a[aria-current=page]{color:var(--navy);}
.nav__item{position:relative;}
.nav__menu{position:absolute; top:70px; right:0; min-width:250px; background:#fff; border:1px solid var(--border); border-radius:14px; box-shadow:var(--shadow-pop); padding:8px; display:none; animation:gmaDrop .14s ease-out;}
.nav__item--menu.open .nav__menu{display:block;}
.nav__menu a{display:flex; flex-direction:column; gap:2px; padding:10px 12px; border-radius:9px;}
.nav__menu a:hover{background:var(--soft-bg);}
.nav__menu span{font-family:var(--font-display); font-weight:700; font-size:14px; color:var(--navy);}
.nav__menu small{font-size:12.5px; color:var(--muted);}
.nav__cta{display:flex; align-items:center; gap:10px; margin-left:14px; flex-shrink:0;}
.nav__phone{width:42px; height:42px; border-radius:50%; background:var(--navy); display:flex; align-items:center; justify-content:center;}
.nav__phone:hover{background:var(--deep-navy);}
.nav__burger{display:none; width:42px; height:42px; border-radius:11px; border:1px solid var(--border); background:#fff; cursor:pointer; align-items:center; justify-content:center;}
/* Mobile panel */
.nav__mobile{position:absolute; top:100%; left:0; right:0; background:#fff; border-top:1px solid var(--border); border-bottom:1px solid var(--border); box-shadow:0 20px 40px rgba(20,31,99,.14); padding:10px 20px 22px; max-height:74vh; overflow:auto; animation:gmaDrop .16s ease-out;}
.nav__mobile > a{display:block; padding:14px 6px; font-family:var(--font-display); font-weight:700; font-size:16px; color:var(--deep-navy); border-bottom:1px solid #F0F2F8;}
.nav__mobile-group{border-bottom:1px solid #F0F2F8; padding:8px 0;}
.nav__mobile-group > span{display:block; padding:6px; font-family:var(--font-display); font-weight:800; font-size:12px; letter-spacing:.1em; color:#8A90A6;}
.nav__mobile-group a{display:block; padding:8px 6px 8px 16px; font-family:var(--font-display); font-weight:600; font-size:15px; color:var(--navy);}
.nav__mobile-call{margin-top:16px; width:100%;}
/* Footer */
.footer{background:var(--footer-navy); color:#C7CBE4;}
.footer__cols{max-width:var(--maxw); margin:0 auto; padding:64px 28px 30px; display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px;}
.footer__brand-row{display:flex; align-items:center; gap:12px;}
.footer__brand-row img{border-radius:50%;}
.footer__brand-name{display:block; font-family:var(--font-display); font-weight:800; font-size:16px; color:#fff;}
.footer__brand-sub{display:block; font-family:var(--font-display); font-weight:600; font-size:10px; letter-spacing:.2em; color:var(--pink);}
.footer__brand p{font-size:14.5px; line-height:1.6; color:#9AA0C8; margin:18px 0 0; max-width:300px;}
.footer address{font-style:normal; margin-top:18px; font-size:14.5px; line-height:1.7;}
.footer__strong{color:#fff; font-weight:600;}
.footer__col h4{font-family:var(--font-display); font-weight:800; font-size:13px; letter-spacing:.06em; color:#fff; margin-bottom:16px;}
.footer__col a{display:block; font-size:14.5px; color:#9AA0C8; margin-bottom:11px;}
.footer__col a:hover{color:#fff;}
.footer__bar{border-top:1px solid rgba(255,255,255,.08);}
.footer__bar > span, .footer__legal{font-size:13px; color:#7B82AE;}
.footer__bar{display:block;}
.footer__bar-inner, .footer__bar{max-width:var(--maxw);}
.footer__bar{margin:0 auto; padding:22px 28px; display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap;}
.footer__legal{display:flex; gap:20px;}
.footer__legal a{color:#7B82AE;}
.footer__legal a:hover{color:#fff;}

@media (max-width:1260px){
  .nav__links{display:none;}
  .nav__burger{display:flex;}
  .footer__cols{grid-template-columns:1fr 1fr;}
}
@media (max-width:900px){
  .section{padding:64px 0;}
  .h2{font-size:34px;}
}
@media (max-width:640px){
  .container{padding-left:20px; padding-right:20px;}
  .h2{font-size:28px;}
  .footer__cols{grid-template-columns:1fr;}
}

/* ============ HOME PAGE ============ */
/* Hero A */
.hero{position:relative; background:var(--soft-bg); overflow:hidden;}
.hero__blob{position:absolute; top:-120px; right:-120px; width:520px; height:520px; border-radius:50%; background:radial-gradient(circle at center, rgba(27,42,140,.07), transparent 70%); pointer-events:none;}
.hero__inner{max-width:var(--maxw); margin:0 auto; padding:78px 28px 84px; display:grid; grid-template-columns:1.05fr .95fr; gap:56px; align-items:center; position:relative;}
.hero__badge{display:inline-flex; align-items:center; gap:8px; padding:7px 14px; background:#fff; border:1px solid var(--border); border-radius:var(--r-pill); font-family:var(--font-display); font-weight:700; font-size:12px; letter-spacing:.06em; color:var(--navy);}
.hero__badge .dot{width:7px; height:7px; border-radius:50%; background:var(--red);}
.hero h1{font-family:var(--font-display); font-weight:900; font-size:66px; line-height:1.02; letter-spacing:-.02em; color:var(--deep-navy); margin:22px 0 0;}
.hero h1 .accent{color:var(--red);}
.hero__lead{font-size:19px; line-height:1.6; color:#3D4256; max-width:490px; margin:22px 0 0;}
.hero__actions{display:flex; gap:14px; margin-top:32px; flex-wrap:wrap;}
.hero__checks{display:flex; align-items:center; gap:18px; margin-top:28px; flex-wrap:wrap; color:var(--muted); font-size:14px;}
.hero__checks span{display:inline-flex; align-items:center; gap:7px;}
.hero__media{position:relative;}
.hero__photo{aspect-ratio:4/5; border-radius:20px; overflow:hidden; border:1px solid var(--border); box-shadow:0 24px 60px rgba(20,31,99,.16);}
.hero__reviews{position:absolute; left:-22px; bottom:34px; background:#fff; border:1px solid var(--border); border-radius:14px; box-shadow:0 16px 36px rgba(20,31,99,.16); padding:14px 18px; display:flex; align-items:center; gap:12px;}
.hero__reviews strong{font-family:var(--font-display); font-weight:800; font-size:14px; color:var(--deep-navy);}
/* Trust strip */
.trust{background:linear-gradient(180deg,#141F63 0%,#111A55 100%); padding:48px 0;}
.trust__card{display:grid; grid-template-columns:repeat(4,1fr); background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.13); border-radius:20px; box-shadow:0 22px 50px rgba(0,0,0,.38); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); overflow:hidden;}
.trust__stat{display:flex; flex-direction:column; align-items:center; gap:6px; text-align:center; padding:26px 18px; border-left:1px solid rgba(255,255,255,.10);}
.trust__stat:first-child{border-left:none;}
.trust__num{font-family:var(--font-display); font-weight:900; font-size:34px; line-height:1; color:#7FB2F0;}
.trust__label{font-family:var(--font-display); font-weight:700; font-size:12px; letter-spacing:.1em; text-transform:uppercase; color:rgba(255,255,255,.66);}
@media (max-width:640px){ .trust__card{grid-template-columns:1fr 1fr;} .trust__stat:nth-child(odd){border-left:none;} .trust__stat:nth-child(even){border-left:1px solid rgba(255,255,255,.10);} .trust__stat:nth-child(n+3){border-top:1px solid rgba(255,255,255,.10);} }
/* Grid helpers */
.grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.grid-4{display:grid; grid-template-columns:repeat(4,1fr); gap:20px;}
/* Pain cards */
.pain{background:var(--soft-bg); border:1px solid var(--border); border-radius:var(--r-lg); padding:28px;}
.pain__n{width:44px; height:44px; border-radius:11px; background:#fff; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; margin-bottom:18px; font-family:var(--font-display); font-weight:900; font-size:18px; color:var(--red);}
.pain h3{font-weight:800; font-size:18px; color:var(--deep-navy); margin:0 0 8px;}
.pain p{font-size:15px; line-height:1.55; color:var(--muted); margin:0;}
/* Why-us */
.why{background:#fff; border:1px solid var(--border); border-radius:var(--r-lg); padding:26px;}
.why__ic{width:46px; height:46px; border-radius:12px; background:#EEF1FB; display:flex; align-items:center; justify-content:center; margin-bottom:16px;}
.why h3{font-weight:800; font-size:17px; color:var(--deep-navy); margin:0 0 7px;}
.why p{font-size:14.5px; line-height:1.55; color:var(--muted); margin:0;}
/* Program card */
.pcard{background:#fff; border:1px solid var(--border); border-radius:var(--r-xl); overflow:hidden; display:flex; flex-direction:column;}
.pcard__media{aspect-ratio:16/10;}
.pcard__media .tag{position:absolute; top:14px; left:14px;}
.pcard__body{padding:24px; display:flex; flex-direction:column; flex:1;}
.pcard__body h3{font-weight:800; font-size:21px; color:var(--deep-navy); margin:0 0 8px;}
.pcard__body p{font-size:15px; line-height:1.55; color:var(--muted); margin:0 0 16px;}
.pcard__points{display:flex; flex-direction:column; gap:8px; margin-top:auto;}
.pcard__points span{display:flex; align-items:center; gap:9px; font-size:14px; color:#3D4256;}
.pcard .btn--soft{margin-top:20px; width:100%; padding:12px; font-size:14px;}
/* Schedule grid */
.sched{display:grid; grid-template-columns:repeat(6,1fr); gap:12px; margin-top:32px; border:1px solid var(--border); border-radius:var(--r-xl); padding:16px; background:var(--soft-bg);}
.sched__day{display:flex; flex-direction:column; gap:10px;}
.sched__dayhead{text-align:center; font-family:var(--font-display); font-weight:800; font-size:14px; letter-spacing:.06em; color:var(--deep-navy); padding-bottom:10px; border-bottom:2px solid var(--border);}
.sched__class{background:#fff; border:1px solid var(--border); border-left:4px solid var(--navy); border-radius:10px; padding:11px 12px;}
.sched__class.kids{border-left-color:var(--red);} .sched__class.womens{border-left-color:var(--green);}
.sched__time{font-family:var(--font-display); font-weight:700; font-size:12px; color:var(--muted-2);}
.sched__name{font-family:var(--font-display); font-weight:700; font-size:13.5px; color:var(--deep-navy); margin-top:2px; line-height:1.2;}
.legend{display:flex; gap:16px; align-items:center; flex-wrap:wrap;}
.legend span{display:inline-flex; align-items:center; gap:7px; font-size:13px; color:var(--muted); font-weight:600;}
.legend i{width:11px; height:11px; border-radius:3px; display:inline-block;}
/* Instructor card */
.icard{background:#fff; border:1px solid var(--border); border-radius:var(--r-xl); overflow:hidden;}
.icard__media{aspect-ratio:1/1;}
.icard__body{padding:20px;}
.icard__body h3{font-weight:800; font-size:19px; color:var(--deep-navy); margin:0;}
.icard__role{font-family:var(--font-display); font-weight:700; font-size:12px; letter-spacing:.04em; color:var(--red); margin-top:4px;}
.icard__body p{font-size:14px; line-height:1.55; color:var(--muted); margin:12px 0 0;}
/* Testimonials */
.tcard{background:var(--soft-bg); border:1px solid var(--border); border-radius:var(--r-xl); padding:30px; display:flex; flex-direction:column;}
.tcard p{font-size:16px; line-height:1.6; color:#2B2F3E; margin:16px 0 20px; flex:1;}
.tcard__who{display:flex; align-items:center; gap:12px;}
.avatar{width:42px; height:42px; border-radius:50%; background:var(--navy); color:#fff; display:flex; align-items:center; justify-content:center; font-family:var(--font-display); font-weight:800; font-size:15px;}
.tcard__name{font-family:var(--font-display); font-weight:800; font-size:14px; color:var(--deep-navy);}
.tcard__role{font-size:12.5px; color:var(--muted-2);}
/* Closing CTA */
.cta{background:var(--deep-navy); position:relative; overflow:hidden;}
.cta__inner{max-width:900px; margin:0 auto; padding:96px 28px; text-align:center; position:relative;}
.cta .eyebrow{color:var(--pink);}
.cta h2{font-family:var(--font-display); font-weight:900; font-size:52px; line-height:1.05; letter-spacing:-.02em; color:#fff; margin:16px 0 0;}
.cta p{font-size:19px; line-height:1.6; color:rgba(255,255,255,.8); max-width:560px; margin:20px auto 0;}
.cta__actions{display:flex; gap:14px; justify-content:center; margin-top:34px; flex-wrap:wrap;}
.blob{position:absolute; border-radius:50%; pointer-events:none;}
/* Section head row */
.sec-head{text-align:center; max-width:680px; margin:0 auto;}
.sec-head--left{text-align:left; margin:0;}
.row-between{display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap;}
/* Home responsive */
@media (max-width:1000px){ .hero__inner{grid-template-columns:1fr; gap:36px;} .hero h1{font-size:50px;} .grid-4{grid-template-columns:repeat(2,1fr);} .sched{grid-template-columns:repeat(3,1fr);} }
@media (max-width:760px){ .grid-3{grid-template-columns:1fr;} .grid-4{grid-template-columns:1fr;} .sched{grid-template-columns:1fr 1fr;} .cta h2{font-size:36px;} }
@media (max-width:480px){ .sched{grid-template-columns:1fr;} }
/* Contact / form (Task 8) */
.contact__grid{display:grid; grid-template-columns:1fr 1fr; gap:40px; align-items:start;}
.contact__info h3{font-weight:800; font-size:20px; color:var(--deep-navy); margin:0 0 6px;}
.contact__info p, .contact__info address{font-size:15px; line-height:1.7; color:var(--muted); font-style:normal;}
.contact__info + .contact__info{margin-top:26px;}
.contact__map{aspect-ratio:16/10; border-radius:var(--r-lg); overflow:hidden; margin-top:20px; border:1px solid var(--border);}
.form{background:#fff; border:1px solid var(--border); border-radius:var(--r-xl); padding:30px; box-shadow:var(--shadow-card);}
.form h3{font-weight:800; font-size:22px; color:var(--deep-navy); margin:0 0 4px;}
.form__sub{font-size:14.5px; color:var(--muted); margin:0 0 20px;}
.form__field{margin-bottom:16px;}
.form__field label{display:block; font-family:var(--font-display); font-weight:700; font-size:13px; color:var(--deep-navy); margin-bottom:6px;}
.form__field .req{color:var(--red);}
.form__field input, .form__field select, .form__field textarea{width:100%; padding:12px 14px; border:1.5px solid var(--border); border-radius:var(--r-sm); font-family:var(--font-body); font-size:15px; color:var(--ink); background:#fff;}
.form__field textarea{resize:vertical; min-height:110px;}
.form__field input:focus, .form__field select:focus, .form__field textarea:focus{outline:none; border-color:var(--navy);}
.form__field input.invalid, .form__field select.invalid, .form__field textarea.invalid{border-color:var(--red);}
.form .btn{width:100%; margin-top:6px;}
.form__note{margin-top:14px; font-size:14px;}
.form__note--ok{color:var(--green); font-weight:600;}
.form__note--err{color:var(--red); font-weight:600;}
@media (max-width:820px){ .contact__grid{grid-template-columns:1fr;} }
/* Program hero + program page */
.phero{position:relative; overflow:hidden; color:#fff;}
.phero--adult{background:var(--navy);} .phero--kids{background:#B3151F;} .phero--womens{background:#15703F;}
.phero__inner{max-width:var(--maxw); margin:0 auto; padding:72px 28px; position:relative;}
.phero h1{font-family:var(--font-display); font-weight:900; font-size:52px; line-height:1.03; letter-spacing:-.02em; margin:12px 0 0;}
.phero p{font-size:19px; line-height:1.6; color:rgba(255,255,255,.9); max-width:560px; margin:18px 0 0;}
.phero .tag{background:rgba(0,0,0,.24); color:#fff;}
.prog__grid{display:grid; grid-template-columns:1.1fr .9fr; gap:44px; align-items:start;}
.prog__list{display:flex; flex-direction:column; gap:12px; margin-top:16px;}
.prog__list li, .prog__list span{display:flex; gap:10px; align-items:flex-start; font-size:15.5px; color:#3D4256; line-height:1.5;}
.prog__media{aspect-ratio:4/5; border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--border);}
.prog__times{background:var(--soft-bg); border:1px solid var(--border); border-radius:var(--r-lg); padding:22px; margin-top:20px;}
.prog__times h4{font-weight:800; font-size:16px; color:var(--deep-navy); margin:0 0 12px;}
.prog__time-row{display:flex; justify-content:space-between; padding:9px 0; border-top:1px solid var(--border); font-size:14.5px; color:#3D4256;}
@media (max-width:820px){ .prog__grid{grid-template-columns:1fr;} .phero h1{font-size:38px;} }
/* About: values + gallery */
.values{display:grid; grid-template-columns:repeat(3,1fr); gap:22px;}
.value{background:var(--deep-navy); border-radius:var(--r-lg); padding:28px;}
.value h3{font-weight:800; font-size:18px; color:#fff; margin:0 0 6px;}
.value p{font-size:14.5px; line-height:1.55; color:rgba(255,255,255,.72); margin:0;}
.gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:16px;}
.gallery .ph{aspect-ratio:4/3; border-radius:var(--r-lg);}
.about__lead-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:44px; align-items:center;}
.about__media{aspect-ratio:4/5; border-radius:var(--r-lg); overflow:hidden; border:1px solid var(--border);}
@media (max-width:820px){ .values{grid-template-columns:1fr;} .gallery{grid-template-columns:1fr 1fr;} .about__lead-grid{grid-template-columns:1fr;} }
/* FAQ accordion */
.faq{max-width:820px; margin:32px auto 0; display:flex; flex-direction:column; gap:12px;}
.faq__item{background:#fff; border:1px solid var(--border); border-radius:var(--r-md); overflow:hidden;}
.faq__q{width:100%; text-align:left; background:none; border:none; cursor:pointer; padding:20px 22px; font-family:var(--font-display); font-weight:800; font-size:16.5px; color:var(--deep-navy); display:flex; justify-content:space-between; align-items:center; gap:16px;}
.faq__q::after{content:'+'; font-size:22px; color:var(--red); flex-shrink:0;}
.faq__item.open .faq__q::after{content:'–';}
.faq__a{padding:0 22px; max-height:0; overflow:hidden; transition:max-height .2s ease, padding .2s ease; font-size:15.5px; line-height:1.6; color:var(--muted);}
.faq__item.open .faq__a{max-height:600px; padding:0 22px 20px;}
/* Blog cards + article */
.bgrid{display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:40px;}
.bcard{background:#fff; border:1px solid var(--border); border-radius:var(--r-xl); overflow:hidden; display:flex; flex-direction:column;}
.bcard__media{aspect-ratio:16/9;}
.bcard__body{padding:22px; display:flex; flex-direction:column; flex:1;}
.bcard__cat{font-family:var(--font-display); font-weight:700; font-size:12px; letter-spacing:.06em; color:var(--red);}
.bcard h3{font-weight:800; font-size:19px; color:var(--deep-navy); margin:8px 0;}
.bcard p{font-size:14.5px; line-height:1.55; color:var(--muted); margin:0 0 14px;}
.bcard__meta{font-size:13px; color:var(--muted-2); margin-top:auto;}
/* Article */
.article{max-width:760px; margin:0 auto;}
.article__hero{aspect-ratio:16/9; border-radius:var(--r-lg); overflow:hidden; margin:24px 0 32px; border:1px solid var(--border);}
.article h1{font-family:var(--font-display); font-weight:900; font-size:44px; line-height:1.08; color:var(--deep-navy);}
.article__meta{font-size:14px; color:var(--muted-2); margin-top:12px;}
.article__body{font-size:17px; line-height:1.7; color:#2B2F3E;}
.article__body h2{font-size:26px; color:var(--deep-navy); margin:32px 0 12px;}
.article__body p{margin:0 0 18px;}
.article__back{display:inline-block; margin-top:32px; font-family:var(--font-display); font-weight:700; color:var(--navy);}
@media (max-width:820px){ .bgrid{grid-template-columns:1fr;} .article h1{font-size:32px;} }
/* Events */
.events{max-width:900px; margin:40px auto 0; display:flex; flex-direction:column; gap:16px;}
.event{display:flex; gap:22px; align-items:center; background:#fff; border:1px solid var(--border); border-radius:var(--r-lg); padding:22px 24px;}
.event__date{flex-shrink:0; width:78px; text-align:center; background:var(--soft-bg); border:1px solid var(--border); border-radius:var(--r-md); padding:10px 0;}
.event__mon{font-family:var(--font-display); font-weight:700; font-size:12px; letter-spacing:.08em; color:var(--red-dark);}
.event__day{font-family:var(--font-display); font-weight:900; font-size:26px; color:var(--deep-navy); line-height:1;}
.event__body h3{font-weight:800; font-size:18px; color:var(--deep-navy); margin:0 0 4px;}
.event__body p{font-size:14.5px; line-height:1.5; color:var(--muted); margin:0;}
.event__loc{font-size:13px; color:var(--muted-2); margin-top:6px;}
@media (max-width:560px){ .event{flex-direction:column; align-items:flex-start; gap:14px;} }

/* ===== Soft-UI (neumorphic) cards — WE GET IT / WHY GRACIE / OUR PROGRAMS / MEET THE TEAM ===== */
:root{ --neu-bg:#E7EAF3; --neu-dark:#C4C9DA; --neu-light:#FFFFFF; --r-neu:28px; }
.pain, .why, .pcard, .icard{
  background:var(--neu-bg);
  border:none;
  border-radius:var(--r-neu);
  box-shadow:10px 10px 22px var(--neu-dark), -10px -10px 22px var(--neu-light);
  transition:transform .22s cubic-bezier(.22,1,.36,1), box-shadow .22s cubic-bezier(.22,1,.36,1);
}
.pain:hover, .why:hover, .pcard:hover, .icard:hover{
  transform:translateY(-3px);
  box-shadow:13px 13px 26px var(--neu-dark), -13px -13px 26px var(--neu-light);
}
/* inset accent tiles for authentic soft-UI depth */
.pain__n{
  background:var(--neu-bg); border:none; color:var(--red-dark);
  box-shadow:inset 3px 3px 6px var(--neu-dark), inset -3px -3px 6px var(--neu-light);
}
.why__ic{
  background:var(--neu-bg);
  box-shadow:inset 3px 3px 6px var(--neu-dark), inset -3px -3px 6px var(--neu-light);
}
/* keep red accent text AA-safe on the lighter neumorphic surface */
.icard__role{ color:var(--red-dark); }
@media (prefers-reduced-motion:reduce){
  .pain, .why, .pcard, .icard{ transition:none; }
  .pain:hover, .why:hover, .pcard:hover, .icard:hover{ transform:none; }
}
/* raised soft-UI treatment for the program-card action so it reads as a control on the neu surface */
.pcard .btn--soft{
  background:var(--neu-bg);
  box-shadow:5px 5px 12px var(--neu-dark), -5px -5px 12px var(--neu-light);
}
.pcard .btn--soft:hover{
  background:var(--navy); color:#fff;
  box-shadow:inset 2px 2px 6px rgba(10,15,40,.45), inset -2px -2px 6px rgba(255,255,255,.06);
}
/* narrow phones: drop the wordmark so the logo + Free Trial + menu fit without horizontal scroll */
@media (max-width:520px){
  .nav__brand-text{ display:none; }
}
/* real photos filling the fixed-aspect media placeholders */
.media-img{ display:block; width:100%; height:100%; object-fit:cover; }
/* embedded Google Calendar (homepage schedule) */
.calendar{ margin-top:32px; border:1px solid var(--border); border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--shadow-card); background:#fff; }
.calendar iframe{ display:block; width:100%; height:600px; border:0; }
@media (max-width:640px){ .calendar iframe{ height:520px; } }

/* ===== Hero — bold navy treatment ===== */
.hero{ background:linear-gradient(118deg, #1E2E96 0%, #182377 46%, #121C5C 100%); }
.hero__blob{ top:-150px; right:-140px; width:580px; height:580px; background:radial-gradient(circle at center, rgba(224,31,45,.36), transparent 66%); }
.hero__inner{ padding-top:72px; padding-bottom:80px; }
.hero__badge{ background:rgba(255,255,255,.10); border-color:rgba(255,255,255,.24); color:#fff; }
.hero h1{ color:#fff; }
.hero h1 .accent{ color:#FF5A66; }
.hero__lead{ color:rgba(255,255,255,.85); }
.hero__checks{ color:rgba(255,255,255,.82); }
.hero__checks svg{ stroke:#37C871; }
.hero__photo{ border-color:rgba(255,255,255,.16); box-shadow:0 34px 74px rgba(0,0,0,.48); }

/* ===== Inner-page navy hero band ===== */
.page-hero{ position:relative; overflow:hidden; background:linear-gradient(118deg,#1E2E96 0%,#182377 46%,#121C5C 100%); color:#fff; }
.page-hero__blob{ position:absolute; top:-150px; right:-130px; width:540px; height:540px; border-radius:50%; background:radial-gradient(circle at center, rgba(224,31,45,.32), transparent 66%); pointer-events:none; }
.page-hero__inner{ max-width:var(--maxw); margin:0 auto; padding:64px 28px 68px; position:relative; }
.page-hero .eyebrow{ color:var(--pink); }
.page-hero h1{ font-family:var(--font-display); font-weight:900; font-size:46px; line-height:1.05; letter-spacing:-.02em; color:#fff; margin:12px 0 0; }
.page-hero p{ font-size:18px; line-height:1.6; color:rgba(255,255,255,.85); max-width:620px; margin:16px 0 0; }
.page-hero--center{ text-align:center; }
.page-hero--center .page-hero__inner{ max-width:820px; margin-left:auto; margin-right:auto; }
@media (max-width:640px){ .page-hero h1{ font-size:34px; } .page-hero__inner{ padding:48px 20px 52px; } }

/* nav: more breathing room between phone icon and CTA */
.nav__phone{ margin-right:6px; }
/* OUR PROGRAMS: darker (navy) Learn more buttons */
.pcard .btn--soft{ background:var(--navy); color:#fff; box-shadow:0 8px 18px rgba(20,31,99,.24); }
.pcard .btn--soft:hover{ background:var(--deep-navy); color:#fff; box-shadow:0 10px 22px rgba(20,31,99,.30); }
/* MEET THE TEAM: keep heads in frame + per-card Learn more */
.icard__media .media-img{ object-position:center top; }
.icard__more{ width:100%; margin-top:16px; padding:11px; font-size:14px; }
/* Schedule — date-based list with per-class booking */
.sched2{ display:flex; flex-direction:column; gap:20px; margin-top:8px; }
.sched2__day{ background:#fff; border:1px solid var(--border); border-radius:var(--r-xl); overflow:hidden; box-shadow:var(--shadow-card); }
.sched2__dayhead{ display:flex; align-items:baseline; gap:10px; margin:0; padding:16px 24px; background:var(--soft-bg); border-bottom:1px solid var(--border); font-family:var(--font-display); font-weight:800; font-size:16px; letter-spacing:.06em; text-transform:uppercase; color:var(--deep-navy); }
.sched2__dayhead span{ font-weight:700; font-size:13px; letter-spacing:.02em; text-transform:none; color:var(--muted-2); }
.sched2__row{ display:grid; grid-template-columns:190px 1fr auto; align-items:center; gap:18px; padding:14px 24px; border-top:1px solid #EEF0F7; }
.sched2__row:first-child{ border-top:none; }
.sched2__time{ font-family:var(--font-display); font-weight:700; font-size:14px; color:var(--muted-2); white-space:nowrap; }
.sched2__name{ font-family:var(--font-display); font-weight:700; font-size:16px; color:var(--deep-navy); }
.sched2__book{ padding:9px 20px; font-size:13px; border-radius:var(--r-pill); box-shadow:0 6px 14px rgba(224,31,45,.26); white-space:nowrap; }
@media (max-width:640px){
  .sched2__row{ grid-template-columns:1fr; gap:4px; }
  .sched2__book{ justify-self:start; margin-top:8px; }
}

/* hero trust items as small glass tiles */
.hero__checks{ gap:12px; }
.hero__checks span{ padding:9px 14px; background:rgba(255,255,255,.08); border:1px solid rgba(255,255,255,.16); border-radius:12px; font-family:var(--font-display); font-weight:700; font-size:13px; color:#fff; -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); }

/* ===== Hero — full-bleed brand banner background ===== */
.hero{ background:linear-gradient(105deg, rgba(9,13,42,.90) 0%, rgba(12,18,58,.72) 46%, rgba(14,20,64,.42) 100%), url("/assets/hero-bg.webp") center/cover no-repeat; }
.hero__inner{ grid-template-columns:1.05fr .95fr; align-items:center; min-height:520px; }
.hero__content{ max-width:none; }
.hero__photo{ border:2px solid rgba(255,255,255,.6); box-shadow:0 30px 70px rgba(0,0,0,.55); }
.hero__media{ transform:translateX(24px); }
@media (max-width:1000px){ .hero__inner{ grid-template-columns:1fr; } .hero__media{ transform:none; } }
.hero__rating{ display:inline-flex; align-items:center; gap:10px; margin-top:24px; }
.hero__rating .stars svg{ width:17px; height:17px; }
.hero__rating span{ font-family:var(--font-display); font-weight:800; font-size:14px; color:#fff; }
@media (max-width:640px){ .hero{ background:linear-gradient(160deg, rgba(9,13,42,.90), rgba(12,18,58,.72)), url("/assets/hero-bg.webp") center/cover no-repeat; } .hero__inner{ min-height:auto; } }

/* about gallery: clip photos to the rounded tiles */
.gallery .ph{ overflow:hidden; }
/* instructors: background-check trust note */
.trust-note{ display:flex; align-items:center; justify-content:center; gap:9px; margin:36px 0 0; font-family:var(--font-display); font-weight:700; font-size:15px; color:var(--deep-navy); }

/* ===== Lead-capture modal ===== */
.modal{ position:fixed; inset:0; z-index:400; display:flex; align-items:flex-start; justify-content:center; padding:5vh 16px; overflow-y:auto; }
.modal[hidden]{ display:none; }
.modal__overlay{ position:fixed; inset:0; background:rgba(9,13,42,.72); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); }
.modal__dialog{ position:relative; z-index:1; width:100%; max-width:480px; background:#fff; border-radius:var(--r-xl); box-shadow:0 30px 80px rgba(0,0,0,.42); padding:34px 32px; animation:modalIn .18s cubic-bezier(.22,1,.36,1); }
.modal__close{ position:absolute; top:12px; right:14px; width:38px; height:38px; border:none; background:none; font-size:26px; line-height:1; color:var(--muted); cursor:pointer; border-radius:8px; }
.modal__close:hover{ background:var(--soft-bg); color:var(--deep-navy); }
.modal__title{ font-family:var(--font-display); font-weight:800; font-size:24px; color:var(--deep-navy); margin:0; padding-right:30px; }
.modal__sub{ font-size:14.5px; line-height:1.5; color:var(--muted); margin:6px 0 20px; }
body.modal-open{ overflow:hidden; }
@keyframes modalIn{ from{ opacity:0; transform:translateY(12px) scale(.98); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion:reduce){ .modal__dialog{ animation:none; } }
/* lead form: two-up name row + SMS/email consent */
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form__consent{ display:flex; align-items:flex-start; gap:10px; margin:6px 0 16px; font-size:12.5px; line-height:1.45; color:var(--muted); cursor:pointer; }
.form__consent input{ margin-top:2px; width:17px; height:17px; flex-shrink:0; accent-color:var(--red); }
.form__consent.invalid span{ color:var(--red); }
@media (max-width:480px){ .form__row{ grid-template-columns:1fr; } }

/* contact map embed fills its frame */
.contact__map iframe{ width:100%; height:100%; border:0; display:block; }
