/* ==================================================================
   SIGNIFICANT EDUCATORS — BRAND COLOURS ONLY
     Blue    #344DA8
     Yellow  #FFD700
     White   #FFFFFF
   No other hue is used anywhere on this page. Every lighter or
   darker tone below is one of those three at reduced opacity —
   not a new colour. Body text is near-black, which is the default
   text colour, not a brand colour.
   ACCESSIBILITY NOTE: #FFD700 on white measures 1.40:1 and is
   effectively invisible. Yellow is therefore only ever used as a
   FILL behind dark text, or as text on blue (5.40:1, passes).
   ================================================================== */
:root{
  --blue:#344DA8;
  --yellow:#FFD700;
  --white:#FFFFFF;
  /* Warm off-white, client-selected. Two values control every
     beige surface on the site — change these to reskin. */
  --beige:#FAF7F0;
  --beige-deep:#F2EDE1;
  --ink:#1B2333;
  --muted:rgba(27,35,51,.75);
  --tint:rgba(52,77,168,.06);
  --line:rgba(52,77,168,.18);
  --wrap:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--beige);color:var(--ink);overflow-wrap:break-word;font-family:"Manrope",system-ui,sans-serif;font-size:17px;line-height:1.66;-webkit-font-smoothing:antialiased}
h1,h2,h3{font-family:"DM Serif Display",Georgia,serif;font-weight:400;line-height:1.1;margin:0}
p{margin:0 0 1.1em}
a{color:inherit}
img{max-width:100%;height:auto;display:block}
.wrap{max-width:var(--wrap);margin:0 auto;padding:0 24px}
.eyebrow{font-size:12px;letter-spacing:.2em;text-transform:uppercase;font-weight:800;color:var(--blue);margin:0 0 18px}
.on-blue .eyebrow{color:var(--yellow)}

/* --- header --- */
header{position:sticky;top:0;z-index:60;background:var(--blue);border-bottom:4px solid var(--yellow)}
.bar{display:flex;align-items:center;gap:24px;padding:14px 0}
.logo img{height:48px;width:auto}
nav.main{display:flex;gap:22px;margin-left:auto;font-size:15px;font-weight:600}
nav.main a{text-decoration:none;color:rgba(255,255,255,.9);padding-bottom:3px;border-bottom:2px solid transparent;white-space:nowrap}
nav.main a:hover,nav.main a:focus-visible{color:var(--yellow);border-bottom-color:var(--yellow)}
nav.main a[aria-current="page"]{color:var(--yellow);border-bottom-color:var(--yellow)}
.btn{display:inline-block;font-weight:700;font-size:15px;padding:14px 26px;border-radius:4px;text-decoration:none;background:var(--yellow);color:var(--blue);border:2px solid var(--yellow);transition:.16s}
.btn:hover{background:var(--white);border-color:var(--white)}
.btn.solid-blue{background:var(--blue);border-color:var(--blue);color:var(--white)}
.btn.solid-blue:hover{background:var(--yellow);border-color:var(--yellow);color:var(--blue)}
.btn.outline{background:transparent;color:var(--blue);border-color:var(--blue)}
.btn.outline:hover{background:var(--blue);color:var(--white)}
.btn.sm{padding:10px 18px;font-size:14px}
.menu-toggle{display:none;margin-left:auto;background:transparent;border:2px solid rgba(255,255,255,.5);
  color:var(--white);border-radius:4px;padding:11px 17px;font-weight:700;font-size:14px;cursor:pointer;
  text-decoration:none;-webkit-tap-highlight-color:transparent}
.menu-close{display:none}
@media(max-width:1080px){
  /* full-screen overlay driven by :target — the Menu link targets #menu,
     the close link clears the hash, and any nav link loads a new page.
     No JavaScript required. */
  nav.main{display:none;position:fixed;inset:0;z-index:90;background:var(--blue);
    flex-direction:column;justify-content:center;align-items:stretch;
    gap:2px;padding:80px 28px 40px;overflow-y:auto}
  nav.main:target{display:flex}
  nav.main a{padding:16px 4px;font-size:19px;border-bottom:1px solid rgba(255,255,255,.2)}
  .menu-toggle{display:block}
  .menu-close{display:block;position:absolute;top:18px;right:22px;width:44px;height:44px;
    line-height:40px;text-align:center;font-size:26px;color:var(--white);text-decoration:none;
    border:2px solid rgba(255,255,255,.45);border-radius:6px;-webkit-tap-highlight-color:transparent}
  .menu-close:hover{border-color:var(--yellow);color:var(--yellow)}
  .bar{flex-wrap:wrap}
}

/* --- page banner --- */
.pagehead{background:var(--blue);color:var(--white);padding:74px 0 66px}
.pagehead h1{font-size:clamp(2.1rem,4.8vw,3.4rem);max-width:20ch;color:var(--white)}
.pagehead p{color:rgba(255,255,255,.9);max-width:58ch;margin-top:20px;font-size:1.08rem}
.crumb{font-size:13px;letter-spacing:.14em;text-transform:uppercase;font-weight:800;color:var(--yellow);margin-bottom:16px}
.crumb a{text-decoration:none}
.crumb a:hover{text-decoration:underline}

/* --- hero --- */
.hero{background:var(--beige);padding:80px 0 0}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:60px;align-items:center}
.hero h1{font-size:clamp(2.4rem,5.4vw,4.1rem);max-width:16ch;color:var(--blue)}
.hero h1 .mark{background:linear-gradient(transparent 62%,var(--yellow) 62%);padding:0 .06em}
.hero p.lede{color:var(--muted);max-width:52ch;font-size:1.1rem;margin-top:26px}
.hero .shot{position:relative;isolation:isolate}
.hero .shot img{position:relative;z-index:1;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:var(--pos,50% 50%);border-radius:8px}
.hero .shot::after{content:"";position:absolute;left:-16px;bottom:-16px;width:120px;height:120px;background:var(--yellow);border-radius:8px;z-index:0}
@media(max-width:940px){.hero-grid{grid-template-columns:1fr;gap:36px}.hero .shot{max-width:400px}}

/* --- trust bar --- */
.trustbar{background:var(--yellow);margin-top:64px}
.trustbar .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:14px 26px;padding-top:20px;padding-bottom:20px}
.stars{font-size:20px;letter-spacing:2px;color:var(--blue)}
.trustbar strong{font-size:1.05rem;color:var(--blue);font-weight:800}
.trustbar a{margin-left:auto;font-weight:700;color:var(--blue);font-size:15px;text-decoration:none;border-bottom:2px solid var(--blue)}
.trustbar a:hover{opacity:.7}

/* --- credentials --- */
.creds{background:var(--blue);color:var(--white)}
.creds .row{display:flex;flex-wrap:wrap;max-width:var(--wrap);margin:0 auto;padding:0 24px}
.cred{flex:1 1 240px;padding:30px 32px;border-right:1px solid rgba(255,255,255,.22)}
.cred:last-child{border-right:0}
.cred strong{display:block;font-family:"DM Serif Display",serif;font-size:1.35rem;color:var(--yellow);line-height:1.2;margin-bottom:4px}
.cred span{display:block;font-size:14px;color:rgba(255,255,255,.88);line-height:1.5}
.cred a{color:var(--white);text-decoration:underline;text-underline-offset:3px}
@media(max-width:860px){.cred{flex:1 1 50%;border-bottom:1px solid rgba(255,255,255,.22)}.cred:nth-child(2n){border-right:0}.cred:nth-last-child(-n+2){border-bottom:0}}
@media(max-width:520px){.cred{flex:1 1 100%;border-right:0}.cred:last-child{border-bottom:0}}

/* --- founder --- */
.founder{padding:92px 0;background:var(--beige)}
.founder-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:68px;align-items:start}
.founder h2{font-size:clamp(1.9rem,3.8vw,3rem);max-width:18ch;margin-bottom:28px;color:var(--blue)}
.founder p{color:var(--muted);max-width:62ch}
.portrait img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:var(--pos,50% 50%);border-radius:8px}
.portrait figcaption{margin-top:14px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--blue)}
@media(max-width:960px){.founder-grid{grid-template-columns:1fr;gap:36px}.portrait{max-width:320px}}

/* --- value cards --- */
.values{background:var(--beige-deep);padding:88px 0}
.values h2{font-size:clamp(1.9rem,3.6vw,2.7rem);color:var(--blue);margin-bottom:46px;max-width:22ch}
.vgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:26px}
.vcard{background:var(--white);border-radius:10px;padding:34px 30px;border-top:5px solid var(--yellow)}
.vcard .ico{width:46px;height:46px;margin-bottom:18px;color:var(--blue)}
.vcard h3{font-size:1.28rem;color:var(--blue);margin-bottom:12px}
.vcard p{color:var(--muted);font-size:15.5px;margin:0}

/* --- hub cards --- */
.hub{padding:82px 0}
.hub-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:22px;align-items:start}
.hubcard{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--line);border-radius:10px;padding:30px 28px 26px;text-decoration:none;transition:.18s}
.hubcard:hover{border-color:var(--blue);transform:translateY(-3px);box-shadow:0 22px 44px -32px rgba(52,77,168,.75)}
.hubcard h3{font-size:1.26rem;color:var(--blue);margin-bottom:10px}
.hubcard p{color:var(--muted);font-size:15px;margin-bottom:14px}
.hubcard ul{list-style:none;margin:0 0 16px;padding:0;border-top:1px solid var(--line);padding-top:14px}
.hubcard li{color:var(--muted);font-size:14.5px;padding-left:20px;position:relative;margin-bottom:5px}
.hubcard li::before{content:"";position:absolute;left:0;top:.55em;width:10px;height:10px;background:var(--yellow);border-radius:2px}
.hubcard .go{font-weight:700;color:var(--blue);border-bottom:3px solid var(--yellow);align-self:flex-start;padding-bottom:2px;font-size:14.5px}

/* --- service entries --- */
.programs{padding:88px 0}
.section-head{max-width:60ch;margin-bottom:52px}
.section-head h2{font-size:clamp(1.9rem,3.8vw,2.9rem);margin-bottom:20px;color:var(--blue)}
.section-head p{color:var(--muted);font-size:1.07rem}
.row-item{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch;margin-bottom:26px;background:var(--white);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.row-item .media{min-height:340px}
.row-item .media img{width:100%;height:100%;object-fit:cover;object-position:var(--pos,50% 50%)}
.row-item .body{padding:44px}
.row-item.flip .media{order:2}
@media(max-width:900px){.row-item,.row-item.flip{grid-template-columns:1fr}.row-item .media,.row-item.flip .media{order:0;min-height:0;aspect-ratio:16/10}.row-item .body{padding:34px 26px}}
.card{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:40px 38px;margin-bottom:26px}
.pair{display:grid;grid-template-columns:1fr 1fr;gap:26px}
@media(max-width:900px){.pair{grid-template-columns:1fr}}
.tag{display:inline-block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--blue);background:var(--yellow);padding:6px 13px;border-radius:3px;margin-bottom:18px}
.tag.seasonal{background:var(--blue);color:var(--white)}
h3.svc{font-size:clamp(1.5rem,2.5vw,2rem);margin-bottom:20px;color:var(--blue)}
.said{font-family:"DM Serif Display",serif;font-style:italic;font-size:clamp(1.1rem,1.9vw,1.4rem);line-height:1.34;color:var(--blue);margin:0 0 22px;padding-left:20px;border-left:4px solid var(--yellow);max-width:34ch}
.row-item p,.card p{color:var(--muted)}
ul.ticks{margin:0 0 22px;padding-left:0;list-style:none}
ul.ticks li{position:relative;padding-left:28px;margin-bottom:10px;color:var(--muted)}
ul.ticks li::before{content:"";position:absolute;left:0;top:.5em;width:13px;height:13px;background:var(--yellow);border-radius:3px}
.sub{font-weight:700;color:var(--ink);margin-bottom:6px}
a.more{display:inline-block;font-weight:700;font-size:15px;text-decoration:none;color:var(--blue);border-bottom:3px solid var(--yellow);padding-bottom:2px}
a.more:hover{opacity:.75}

/* --- testimonial banner --- */
.banner{background:var(--blue);color:var(--white);padding:88px 0;text-align:center;border-top:4px solid var(--yellow)}
.banner .result{font-family:"DM Serif Display",serif;font-size:clamp(1.8rem,4.4vw,3rem);color:var(--yellow);margin-bottom:22px;text-transform:uppercase}
.banner blockquote{margin:0 auto;max-width:62ch;font-size:clamp(1.05rem,1.8vw,1.3rem);font-style:italic;color:rgba(255,255,255,.95);line-height:1.55}
.banner cite{display:block;font-style:normal;font-weight:700;font-size:14px;letter-spacing:.12em;text-transform:uppercase;color:var(--yellow);margin-top:22px}

/* --- reviews --- */
.reviews{background:var(--beige-deep);padding:88px 0}
.reviews h2{font-size:clamp(1.9rem,3.6vw,2.7rem);color:var(--blue);margin-bottom:14px;max-width:20ch}
.reviews p.sub-copy{color:var(--muted);margin-bottom:38px;max-width:56ch}

/* --- contact --- */
.contact-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:64px;align-items:start;padding:92px 0}
.contact-grid h2{font-size:clamp(1.8rem,3.4vw,2.5rem);color:var(--blue);margin-bottom:20px}
.contact-grid p{color:var(--muted)}
.infobox{background:var(--white);border:1px solid var(--line);border-top:5px solid var(--yellow);border-radius:10px;padding:32px}
.infobox h4{font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--blue);margin:0 0 14px;font-weight:800;font-family:"Manrope",sans-serif}
.infobox ul{list-style:none;margin:0 0 24px;padding:0}
.infobox li{margin-bottom:10px}
.infobox a{color:var(--ink);text-decoration:none;font-weight:600}
.infobox a:hover{color:var(--blue)}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr;gap:36px}}

/* --- final --- */
.final{padding:96px 0;text-align:center;background:var(--yellow)}
.final h2{font-size:clamp(1.9rem,4.2vw,3.1rem);max-width:22ch;margin:0 auto 22px;color:var(--blue)}
.final p{color:var(--blue);max-width:50ch;margin:0 auto 34px;font-size:1.08rem;opacity:.85}

/* --- footer --- */
footer{background:var(--blue);color:rgba(255,255,255,.85);padding:58px 0 30px;font-size:15px;border-top:4px solid var(--yellow)}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:38px;margin-bottom:38px}
footer img{height:46px;width:auto;margin-bottom:14px}
footer h5{font-size:12px;letter-spacing:.18em;text-transform:uppercase;margin:0 0 14px;color:var(--yellow);font-weight:800}
footer ul{list-style:none;margin:0;padding:0}
footer li{margin-bottom:9px}
footer a{color:rgba(255,255,255,.82);text-decoration:none}
footer a:hover{color:var(--yellow)}
.legal{border-top:1px solid rgba(255,255,255,.22);padding-top:22px;font-size:13px;color:rgba(255,255,255,.7);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between}
@media(max-width:980px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.foot-grid{grid-template-columns:1fr;gap:26px}}

/* ---- BEIGE SURFACES -------------------------------------------
   Applied site-wide. Page SURFACES are beige; cards, boxes and
   photos stay pure white so they still lift off the background.
   To revert, set --beige and --beige-deep to #FFFFFF.            */

/* --- review wall --- */
.rev-head{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;margin-bottom:14px}
.rev-head .big{font-family:"DM Serif Display",serif;font-size:3rem;color:var(--blue);line-height:1}
.rev-head .st{color:var(--blue);font-size:20px;letter-spacing:2px}
.rev-head .lbl{color:var(--muted);font-size:15.5px}
.rev-head .lbl strong{color:var(--ink)}
.rev-src{display:inline-flex;align-items:center;gap:8px;font-size:13.5px;font-weight:700;color:var(--blue);
  text-decoration:none;border-bottom:2px solid var(--yellow);padding-bottom:2px;margin-bottom:36px}
.rev-src:hover{opacity:.75}

.rev-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px;align-items:stretch}
.rev{background:var(--white);border:1px solid var(--line);border-left:5px solid var(--yellow);
  border-radius:10px;padding:24px 22px;display:flex;flex-direction:column;
  height:340px;overflow:hidden;transition:height .18s ease}

.rev .top{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:8px}
.rev .who{font-weight:800;color:var(--blue);font-size:15px;line-height:1.3}
.rev .when{color:var(--muted);font-size:12px;white-space:nowrap;flex:0 0 auto}
.rev .st{color:var(--blue);font-size:13px;letter-spacing:1.5px;margin-bottom:11px}
.rev p{color:var(--ink);font-size:14.8px;line-height:1.6;margin:0;white-space:pre-line}
.rev p{overflow:hidden}
.rev p.clamp{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical}

.rev-chk{position:absolute;width:1px;height:1px;opacity:0;margin:0}
.rev .toggle[hidden]{display:none}
.rev .toggle{align-self:flex-start;flex:0 0 auto;margin-top:auto;padding-top:12px;background:none;border:0;cursor:pointer;
  font-family:"Manrope",sans-serif;font-weight:700;font-size:13.5px;color:var(--blue);
  border-bottom:2px solid var(--yellow);user-select:none;-webkit-tap-highlight-color:transparent}
.rev .toggle::after{content:"More"}
.rev-chk:checked ~ .toggle::after{content:"Less"}
.rev-chk:checked ~ p{-webkit-line-clamp:unset;display:block}
.rev-chk:checked ~ p,.rev:has(.rev-chk:checked) p{overflow:visible}
.rev:has(.rev-chk:checked){height:auto}
.rev-chk:focus-visible ~ .toggle{outline:3px solid var(--yellow);outline-offset:3px}
.rev .toggle:hover{opacity:.72}
/* rating-only: no comment was left, so the card stays compact and says so */
.rev.norating{border-left-color:var(--blue);justify-content:flex-start}
.rev.norating .note{color:var(--muted);font-size:13.5px;font-style:italic;margin:0}


/* ---- mobile ---- */
@media(max-width:640px){
  .wrap{padding:0 18px}
  .hero{padding:52px 0 0}
  .hero .shot{max-width:100%;margin-left:16px}      /* keeps the yellow square on-screen */
  .hero .shot::after{width:84px;height:84px}
  .founder,.values,.hub,.programs,.reviews{padding:56px 0}
  .pagehead{padding:48px 0 44px}
  .final{padding:64px 0}
  .banner{padding:56px 0}
  /* fixed-height cards leave dead space in a single column — let them size */
  .rev{height:auto;min-height:0}
  .rev p.clamp{-webkit-line-clamp:8}
  .rev-grid{grid-template-columns:1fr;gap:14px}
  .rev-head{gap:8px 16px;margin-bottom:10px}
  .rev-head .big{font-size:2.4rem}
  .trustbar .wrap{gap:8px 16px}
  .trustbar a{margin-left:0}
  .row-item .body{padding:28px 20px}
  .card{padding:28px 22px}
  .vcard,.hubcard{padding:26px 22px}
  .cred{padding:22px 20px}
}
/* comfortable tap targets on touch devices */
@media(hover:none){
  .rev .toggle{padding-top:14px;padding-bottom:6px}
  nav.main a{padding:13px 0}
  a.more,.rev-src{padding-bottom:6px}
}


/* ---- rewrite additions ---- */
.hero h1 .promise{display:block;color:var(--blue)}
.hero h1 .sub{display:block;font-size:.52em;color:var(--ink);margin-top:.25em}
.hero .microcopy{font-size:14.5px;color:var(--muted);margin-top:14px;max-width:44ch}

.ribbon{background:var(--blue);color:#FFFFFF;font-weight:700;font-size:15px}
.ribbon .wrap{padding:14px 24px;display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;justify-content:center;text-align:center}
.ribbon span.sep{color:var(--yellow)}

.recognition{padding:88px 0;background:var(--beige-deep)}
.recognition-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:64px;align-items:center}
.recognition h2{font-size:clamp(1.9rem,3.8vw,2.8rem);color:var(--blue);margin-bottom:26px;max-width:20ch}
.recognition ul{list-style:none;margin:0 0 22px;padding:0}
.recognition li{position:relative;padding-left:28px;margin-bottom:12px;color:var(--ink);font-size:1.02rem}
.recognition li::before{content:"";position:absolute;left:0;top:.55em;width:12px;height:12px;background:var(--yellow);border-radius:3px}
.recognition .close{font-weight:700;color:var(--blue);font-size:1.08rem;margin-top:18px}
.recognition img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:var(--pos,50% 50%);border-radius:8px}
@media(max-width:940px){.recognition-grid{grid-template-columns:1fr;gap:34px}.recognition figure{max-width:360px}}

.paths{padding:88px 0}
.paths h2{font-size:clamp(1.9rem,3.6vw,2.7rem);color:var(--blue);margin-bottom:18px;max-width:24ch}
.paths .intro{color:var(--muted);max-width:62ch;margin-bottom:44px}
.pathcard .exams{font-size:13.5px;color:var(--blue);font-weight:700;margin:0 0 16px;line-height:1.8}
.paths .kicker{text-align:center;font-family:"DM Serif Display",Georgia,serif;font-size:clamp(1.3rem,2.6vw,1.9rem);color:var(--blue);margin-top:48px}

.matching{background:var(--blue);color:#FFFFFF;padding:92px 0}
.matching h2{color:#FFFFFF;font-size:clamp(1.9rem,3.8vw,2.9rem);max-width:18ch;margin-bottom:28px}
.matching p{color:rgba(255,255,255,.88);max-width:60ch}
.matching .lead{font-size:1.12rem}
.match-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start;margin-top:12px}
@media(max-width:900px){.match-grid{grid-template-columns:1fr;gap:32px}}
.chips{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 26px;padding:0;list-style:none}
.chips li{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.28);border-radius:999px;padding:8px 16px;font-size:14.5px;font-weight:600}
.nots{list-style:none;margin:0 0 24px;padding:0}
.nots li{position:relative;padding-left:26px;margin-bottom:9px;color:rgba(255,255,255,.9)}
.nots li::before{content:"\00d7";position:absolute;left:0;color:var(--yellow);font-weight:800;font-size:18px;line-height:1.2}
.matching .stamp{display:inline-block;background:var(--yellow);color:var(--blue);font-weight:800;padding:12px 22px;border-radius:6px;margin-top:22px;font-size:1.02rem}

.fit{padding:88px 0;background:var(--beige-deep)}
.fit h2{font-size:clamp(1.9rem,3.6vw,2.7rem);color:var(--blue);margin-bottom:16px}
.fit .intro{color:var(--muted);max-width:60ch;margin-bottom:42px}
.fit-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;gap:22px;align-items:stretch}
@media(max-width:900px){.fit-grid{grid-template-columns:1fr}}
.fitcard{background:var(--white);border:1px solid var(--line);border-top:5px solid var(--yellow);border-radius:10px;padding:32px 28px}
.fitcard .mins{font-family:"DM Serif Display",Georgia,serif;font-size:2.1rem;color:var(--blue);line-height:1;margin-bottom:6px}
.fitcard h3{font-size:1.24rem;color:var(--blue);margin-bottom:12px}
.fitcard p{color:var(--muted);font-size:15.5px;margin:0}
.fitcard.flag{background:var(--blue);border-color:var(--blue);border-top-color:var(--yellow);position:relative}
.fitcard.flag .mins{color:var(--yellow);font-size:3rem}
.fitcard.flag h3{color:#FFFFFF;font-size:1.5rem}
.fitcard.flag p{color:rgba(255,255,255,.9);font-size:1.02rem}
.fitcard.flag .badge{display:inline-block;background:var(--yellow);color:var(--blue);font-size:11px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;padding:5px 12px;border-radius:3px;margin-bottom:16px}
.fit .after{margin-top:38px;max-width:64ch;color:var(--muted)}
.fit .after strong{color:var(--blue)}

.proof{padding:88px 0}
.proof h2{font-size:clamp(1.9rem,3.6vw,2.7rem);color:var(--blue);margin-bottom:40px;max-width:22ch}
.proof-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin-bottom:34px}
.pquote{background:var(--white);border:1px solid var(--line);border-left:5px solid var(--yellow);border-radius:10px;padding:30px 26px}
.pquote .s{color:var(--blue);font-size:15px;letter-spacing:2px;margin-bottom:12px}
.pquote p{color:var(--ink);font-size:15.5px;font-style:italic}
.pquote cite{display:block;font-style:normal;font-weight:800;font-size:13px;letter-spacing:.1em;text-transform:uppercase;color:var(--blue);margin-top:14px}
.proof .tally{display:flex;flex-wrap:wrap;align-items:center;gap:12px 22px;background:var(--yellow);border-radius:8px;padding:18px 24px}
.proof .tally strong{color:var(--blue);font-size:1.06rem;font-weight:800}
.proof .tally a{margin-left:auto;font-weight:700;color:var(--blue);text-decoration:none;border-bottom:2px solid var(--blue)}

.steps{list-style:none;counter-reset:st;margin:0;padding:0;max-width:64ch}
.steps li{counter-increment:st;position:relative;padding-left:56px;margin-bottom:26px}
.steps li::before{content:counter(st);position:absolute;left:0;top:-2px;width:38px;height:38px;border-radius:50%;background:var(--yellow);color:var(--blue);font-weight:800;display:flex;align-items:center;justify-content:center;font-size:17px}
.steps h3{font-size:1.14rem;color:var(--blue);margin-bottom:6px}
.steps p{color:var(--muted);margin:0;font-size:15.5px}

.faq-list{max-width:70ch}
.faq-item{border-bottom:1px solid var(--line);padding:22px 0}
.faq-item h3{font-size:1.14rem;color:var(--blue);margin-bottom:10px}
.faq-item p{color:var(--muted);margin:0}

.micro{font-size:14px;color:var(--muted);margin-top:14px}
.final .micro{color:var(--blue);opacity:.8}
.pill-row{display:flex;flex-wrap:wrap;gap:10px;margin:0;padding:0;list-style:none}
.pill-row li{background:var(--white);border:1px solid var(--line);border-radius:999px;padding:9px 18px;font-size:14.5px;font-weight:600;color:var(--blue)}
.foot-tagline{border-top:1px solid rgba(255,255,255,.18);margin-top:8px;padding-top:20px;text-align:center;font-size:14px;color:rgba(255,255,255,.75);font-weight:600}

:focus-visible{outline:3px solid var(--yellow);outline-offset:3px;border-radius:3px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto}}

/* --- review filters: progressive enhancement, hidden without JS --- */
.no-js .rev-filters{display:none}
.rev-filters{background:var(--white);border:1px solid var(--line);border-radius:10px;padding:22px 22px 18px;margin-bottom:22px}
.rf-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px}
.rf-label{flex:0 0 78px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-weight:800;color:var(--blue)}
.rf-btn{font-family:inherit;font-size:14px;font-weight:600;line-height:1.2;color:var(--blue);background:var(--white);border:1px solid var(--line);border-radius:999px;padding:8px 14px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.rf-btn:hover{border-color:var(--blue)}
.rf-btn .rf-n{font-weight:500;color:var(--muted);margin-left:2px}
.rf-btn[aria-pressed="true"]{background:var(--blue);border-color:var(--blue);color:var(--white)}
.rf-btn[aria-pressed="true"] .rf-n{color:rgba(255,255,255,.85)}
.rf-search{flex:1 1 220px;max-width:360px;font-family:inherit;font-size:15px;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:6px;padding:10px 14px}
.rf-search:focus{border-color:var(--blue)}
.rf-foot{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;border-top:1px solid var(--line);padding-top:14px;margin-top:4px}
.rf-count{font-size:14.5px;font-weight:700;color:var(--ink)}
.rf-clear{font-family:inherit;font-size:13.5px;font-weight:700;color:var(--blue);background:none;border:0;border-bottom:2px solid var(--yellow);padding:0 0 2px;cursor:pointer}
.rf-clear[hidden],.rf-empty[hidden],.rev[hidden]{display:none}
.rf-empty{color:var(--muted);margin:22px 0 0}
@media(max-width:640px){.rev-filters{padding:18px 16px 14px}.rf-label{flex-basis:100%}.rf-search{max-width:none}}
