/* Everest Tutoring - GATE Mock Exam Workshop landing pages
   Tokens verbatim from the Everest design system (Claude Design 7cf1e3c8). */
:root{
  --brand-50:#EAF6FF;--brand-100:#D3ECFF;--brand-500:#009DFF;--brand-600:#0071B8;--brand-700:#0067A8;
  --navy:#00203F;
  --fg1:#182030;--fg2:#4A5563;--fg3:#66707F;--fg4:#5C6673;--fg5:#C7CDD6;
  --border-subtle:rgba(0,32,63,.08);--border-default:rgba(0,32,63,.12);--hairline:rgba(0,32,63,.06);
  --bg-page:#FFF8F2;--bg-surface:#FFFFFF;
  --glass:rgba(255,255,255,.6);--glass-strong:rgba(255,255,255,.74);--glass-border:rgba(255,255,255,.78);
  --success:#22A05B;--warn:#F5A623;--warn-700:#B27908;--danger:#E04141;
  --violet:#7A5AF8;--teal:#0E9C8E;--amber:#D68910;
  --font-display:"Montserrat",system-ui,sans-serif;
  --font-body:"Inter",system-ui,sans-serif;
  --ease-out:cubic-bezier(.16,1,.3,1);
  --shadow-card:inset 0 1px 0 rgba(255,255,255,.7),0 14px 32px -16px rgba(0,32,63,.24);
  --wash-blue:linear-gradient(165deg,rgba(0,157,255,.4) 0%,rgba(0,85,140,.62) 45%,rgba(0,32,63,.94) 100%);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg-page);color:var(--fg1);font-family:var(--font-body);font-size:16px;line-height:1.55;-webkit-font-smoothing:antialiased;overflow-x:hidden}
img,video{max-width:100%;display:block}
a{color:var(--brand-600);text-decoration:none}
button{font:inherit}
:focus-visible{outline:2px solid var(--brand-500);outline-offset:2px;border-radius:6px}
h1,h2,h3{font-family:var(--font-display);font-weight:800;margin:0;letter-spacing:-.5px;line-height:1.1;text-wrap:balance;color:var(--fg1)}
h1{font-size:clamp(30px,7.6vw,52px);letter-spacing:-1.2px}
h2{font-size:clamp(22px,4.6vw,30px)}
h3{font-size:17px;letter-spacing:-.2px}
p{margin:0}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.hidden{display:none!important}

/* ambient colour pools (the design system's Background) */
.pools{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}
.pools i{position:absolute;border-radius:50%;display:block}
.pools .p1{left:-120px;top:-80px;width:520px;height:520px;background:radial-gradient(circle,rgba(0,157,255,.15) 0%,rgba(0,157,255,.05) 45%,transparent 72%)}
.pools .p2{right:-160px;top:36%;width:520px;height:520px;background:radial-gradient(circle,rgba(122,90,248,.11) 0%,rgba(122,90,248,.04) 45%,transparent 72%)}
.pools .p3{left:-120px;bottom:-140px;width:500px;height:500px;background:radial-gradient(circle,rgba(255,144,87,.11) 0%,rgba(255,144,87,.04) 45%,transparent 72%)}
main{position:relative;z-index:1}

/* layout */
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.cols{display:grid;grid-template-columns:1fr;gap:22px}
@media(min-width:1024px){
  .cols{grid-template-columns:minmax(0,1fr) 400px;gap:40px;align-items:start}
  .cols .main{grid-column:1;grid-row:1}
  .cols .rail{grid-column:2;grid-row:1;position:sticky;top:76px}
}
.main,.rail{display:flex;flex-direction:column;gap:22px;min-width:0}
.main h2{margin-top:6px}
section{padding:28px 0}
.eyebrow{font-size:11px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--brand-600)}
.lede{font-size:17px;color:var(--fg2);max-width:34em}

/* top bar */
.top{position:sticky;top:0;z-index:40;background:rgba(255,248,242,.86);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--hairline)}
.top .wrap{display:flex;align-items:center;justify-content:space-between;height:60px}
.top img{height:34px;width:auto}
.top .tel{display:inline-flex;align-items:center;gap:7px;font-weight:600;font-size:14px;color:var(--brand-600);min-height:44px;padding:0 4px}
.top .tel svg{width:16px;height:16px}
.top.dark{background:rgba(0,32,63,.72);border-bottom-color:rgba(255,255,255,.1)}
.top.dark .tel{color:#A5D8FF}
.top.dark img{filter:brightness(0) invert(1)}

/* glass card */
.card{background:var(--glass-strong);backdrop-filter:blur(12px) saturate(1.15);-webkit-backdrop-filter:blur(12px) saturate(1.15);border:1px solid var(--glass-border);border-radius:20px;box-shadow:var(--shadow-card);padding:20px}
@media(min-width:640px){.card{padding:24px}}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 22px;border:0;border-radius:12px;background:var(--brand-500);color:#fff;font-weight:600;font-size:16px;cursor:pointer;width:100%;transition:transform .25s var(--ease-out),box-shadow .25s var(--ease-out),filter .25s}
.btn:hover{box-shadow:0 16px 32px -10px rgba(0,157,255,.72);filter:brightness(1.05);transform:translateY(-1px)}
.btn:active{transform:scale(.97)}
.btn[disabled]{opacity:.5;pointer-events:none}
.btn.ghost{background:rgba(255,255,255,.7);color:var(--brand-600);border:1px solid var(--border-default)}
.btn.soft{background:rgba(0,157,255,.12);color:var(--brand-600)}
.btn.auto{width:auto}
.btn .spin{width:16px;height:16px;border:2px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* pills */
.pill{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:.2px;padding:5px 11px;border-radius:980px;color:var(--brand-600);background:rgba(0,157,255,.12);white-space:nowrap}
.pill.amber{color:var(--warn-700);background:rgba(245,166,35,.18)}
.pill.green{color:var(--success);background:rgba(34,160,91,.12)}
.pill.teal{color:var(--teal);background:rgba(18,181,165,.14)}
.pill.violet{color:var(--violet);background:rgba(122,90,248,.13)}
.pill.light{color:#fff;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.28)}

/* hero: video */
.hero-video{position:relative;color:#fff;min-height:82svh;display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.hero-video video,.hero-video .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-video .wash{position:absolute;inset:0;background:var(--wash-blue);z-index:-1}
.hero-video .wrap{padding-top:96px;padding-bottom:30px;display:flex;flex-direction:column;gap:14px;width:100%}
.hero-video h1{color:#fff}
.hero-video .lede{color:rgba(255,255,255,.86)}
.hero-video .eyebrow{color:#A5D8FF}
@media(min-width:1024px){.hero-video{min-height:78vh}.hero-video .wrap{padding-bottom:48px;max-width:1120px}.hero-video h1{max-width:12em}}
.hero-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.hero-actions .btn{width:auto;min-width:220px}
.hero-actions .note{font-size:13px;color:rgba(255,255,255,.75)}
.mute{position:absolute;right:16px;bottom:16px;width:40px;height:40px;border-radius:50%;border:1px solid rgba(255,255,255,.3);background:rgba(0,32,63,.5);color:#fff;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}
.mute svg{width:18px;height:18px}

/* hero: photo split */
.hero-split{display:grid;grid-template-columns:1fr;gap:0}
.hero-split .photo{position:relative;min-height:52svh;overflow:hidden}
.hero-split .photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-split .photo .wash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,32,63,0) 30%,rgba(0,32,63,.85) 100%)}
.hero-split .photo .cap{position:absolute;left:20px;right:20px;bottom:18px;color:#fff;display:flex;flex-direction:column;gap:8px}
.hero-split .photo h1{color:#fff}
.hero-split .side{padding:18px 20px 8px}
@media(min-width:1024px){
  .hero-split{grid-template-columns:1.15fr .85fr;min-height:640px}
  .hero-split .photo{min-height:640px}
  .hero-split .photo .cap{left:48px;bottom:48px;right:48px}
  .hero-split .side{display:flex;align-items:center;padding:40px}
  .hero-split .side .card{width:100%}
}

/* hero: collage */
.hero-collage{position:relative;padding:18px 0 0}
.collage{display:grid;grid-template-columns:1.4fr 1fr;grid-template-rows:200px 160px;gap:8px}
.collage figure{margin:0;border-radius:16px;overflow:hidden;position:relative;background:var(--fg5)}
.collage img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0}
.collage figure:first-child{grid-row:1 / span 2}
.collage .tag{position:absolute;left:10px;bottom:10px}
@media(min-width:700px){.collage{grid-template-columns:1.5fr 1fr 1fr;grid-template-rows:240px 200px}.collage figure:first-child{grid-row:1 / span 2}.collage figure:nth-child(2){grid-column:2 / span 2}}
@media(min-width:1024px){.collage{grid-template-rows:280px 220px}}
.hero-collage .head{display:flex;flex-direction:column;gap:12px;padding:22px 0 6px}

/* hero: report */
.hero-report{padding:24px 0 8px}
.hero-report .wrap{display:grid;gap:22px}
@media(min-width:1024px){.hero-report .wrap{grid-template-columns:1fr 1fr;align-items:center;padding-top:20px}}
.hero-report .head{display:flex;flex-direction:column;gap:14px}
.report-stack{position:relative}
.report-stack .photo{border-radius:20px;overflow:hidden;aspect-ratio:4/5;max-height:440px}
.report-stack .photo img{width:100%;height:100%;object-fit:cover}
.report-stack .card{position:absolute;left:12px;right:12px;bottom:-26px;padding:16px}
@media(min-width:640px){.report-stack .card{left:auto;right:-8px;bottom:22px;width:320px}}

/* form */
.form h3{margin-bottom:2px}
.form .lbl{display:block;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--fg3);margin:12px 0 7px}
.seg{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.seg label{position:relative}
.seg input{position:absolute;opacity:0;inset:0;pointer-events:none}
.seg span{display:flex;align-items:center;justify-content:center;min-height:44px;border:1px solid var(--border-default);background:rgba(255,255,255,.85);border-radius:11px;font-size:14px;font-weight:600;color:var(--fg2);cursor:pointer;transition:all .18s}
.seg input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.seg input:focus-visible+span{outline:2px solid var(--brand-500);outline-offset:2px}
.sess{display:flex;flex-direction:column;gap:7px}
.sess label{position:relative;display:block}
.sess input{position:absolute;opacity:0;inset:0;pointer-events:none}
.sess .row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;min-height:50px;padding:9px 13px;border:1px solid var(--border-default);background:rgba(255,255,255,.85);border-radius:12px;cursor:pointer;transition:all .18s}
.sess input:checked+.row{border-color:var(--brand-500);box-shadow:0 0 0 2px rgba(0,157,255,.2)}
.sess input:focus-visible+.row{outline:2px solid var(--brand-500);outline-offset:2px}
.sess input:disabled+.row{opacity:.5;cursor:not-allowed}
.sess .d{font-weight:600;font-size:14.5px;line-height:1.25}
.sess .d small{display:block;font-weight:400;font-size:12.5px;color:var(--fg3)}
.field{width:100%;min-height:48px;padding:0 14px;border:1px solid var(--border-default);border-radius:11px;background:rgba(255,255,255,.9);font-size:16px;color:var(--fg1)}
.field:focus{border-color:var(--brand-500);outline:none;box-shadow:0 0 0 3px rgba(0,157,255,.18)}
.field[aria-invalid="true"]{border-color:var(--danger)}
.form .fine{font-size:12px;color:var(--fg4);text-align:center;margin-top:10px;line-height:1.45}
.form .err{display:none;margin-top:10px;padding:10px 12px;border-radius:10px;background:rgba(224,65,65,.1);color:var(--danger);font-size:13.5px;font-weight:500}
.form .err.on{display:block}
.form .step{display:none}
.form .step.on{display:block}
.form .stepper{display:flex;gap:6px;margin-bottom:6px}
.form .stepper i{height:4px;flex:1;border-radius:2px;background:var(--border-default);display:block}
.form .stepper i.on{background:var(--brand-500)}
.form .back{background:none;border:0;color:var(--brand-600);font-weight:600;font-size:13.5px;padding:8px 0;cursor:pointer;min-height:44px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hp{position:absolute;left:-9999px;top:-9999px}

/* proof strip */
.proof{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.proof div{background:var(--glass-strong);border:1px solid var(--glass-border);border-radius:18px;box-shadow:0 12px 28px -16px rgba(0,32,63,.24);padding:14px 8px;text-align:center}
.proof b{display:block;font-family:var(--font-display);font-weight:800;font-size:clamp(22px,5vw,30px);letter-spacing:-.8px;color:var(--brand-600);line-height:1}
.proof span{display:block;font-size:12px;color:var(--fg3);margin-top:5px;line-height:1.25}
.proof.onphoto div{background:rgba(255,255,255,.14);border-color:rgba(255,255,255,.26);box-shadow:none}
.proof.onphoto b{color:#fff}.proof.onphoto span{color:rgba(255,255,255,.78)}

/* what you get */
.tiles{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:640px){.tiles{grid-template-columns:repeat(3,1fr)}}
.tile{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3;background:var(--navy);color:#fff}
.tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 6s var(--ease-out)}
.tile:hover img{transform:scale(1.04)}
.tile .wash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,32,63,0) 35%,rgba(0,32,63,.9) 100%)}
.tile .t{position:absolute;left:14px;right:14px;bottom:13px;display:flex;flex-direction:column;gap:3px}
.tile .t b{font-family:var(--font-display);font-weight:800;font-size:17px;letter-spacing:-.3px}
.tile .t span{font-size:13px;color:rgba(255,255,255,.8)}
.tile .n{position:absolute;left:12px;top:12px;width:28px;height:28px;border-radius:50%;background:var(--brand-500);color:#fff;font-family:var(--font-display);font-weight:800;font-size:13px;display:flex;align-items:center;justify-content:center}
.tile.score{background:#fff;color:var(--fg1)}
.tile.score img{object-fit:contain;padding:10px 10px 56px;background:#fff}
.tile.score .wash{background:linear-gradient(180deg,rgba(255,255,255,0) 55%,rgba(255,255,255,.96) 78%)}
.tile.score .t b{color:var(--fg1)}.tile.score .t span{color:var(--fg3)}

/* report preview */
.report{display:flex;flex-direction:column;gap:10px}
.report .tot{display:flex;justify-content:space-between;align-items:baseline}
.report .tot b{font-family:var(--font-display);font-weight:800;font-size:28px;letter-spacing:-1px;background:linear-gradient(105deg,#1E88E5,#7A6BE0 45%,#E85FA8 75%,#FF9057);-webkit-background-clip:text;background-clip:text;color:transparent}
.report .tot b small{font-family:var(--font-body);font-size:12px;font-weight:600;color:var(--fg3);-webkit-text-fill-color:var(--fg3);letter-spacing:0}
.meter{position:relative;height:12px;border-radius:999px;background:rgba(0,32,63,.08)}
.meter i{position:absolute;left:0;top:0;bottom:0;border-radius:999px;background:linear-gradient(90deg,#1E88E5,#7A6BE0,#E85FA8,#FF9057)}
.meter em{position:absolute;top:-4px;width:2px;height:20px;background:var(--navy);opacity:.5;border-radius:2px}
.marks{position:relative;height:28px;font-size:10.5px;color:var(--fg4)}
.marks span{position:absolute;transform:translateX(-50%);white-space:nowrap;text-align:center;line-height:1.2}
.bar .h{display:flex;justify-content:space-between;font-size:13px;color:var(--fg2)}
.bar .h b{font-family:var(--font-display);font-weight:800;color:var(--fg1)}
.bar .tr{height:6px;border-radius:3px;background:rgba(0,32,63,.08);overflow:hidden;margin-top:4px}
.bar .tr i{display:block;height:100%;border-radius:3px;background:var(--brand-500)}
.bar .tr i.focus{background:var(--warn)}
.cap{font-size:12px;color:var(--fg4)}

/* sittings table */
table.sit{width:100%;border-collapse:collapse;font-size:14px}
table.sit th{font-size:10.5px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:var(--fg4);text-align:left;padding:8px 6px;border-bottom:1px solid var(--border-default)}
table.sit td{padding:11px 6px;border-bottom:1px solid var(--border-subtle);font-weight:500}
table.sit td:last-child{text-align:right}
table.sit .seats{font-weight:700;color:var(--success);white-space:nowrap}
table.sit .seats.low{color:var(--warn-700)}
table.sit .seats.full{color:var(--fg4)}
table.sit .book{color:var(--brand-600);font-weight:700;font-size:13px;margin-left:10px;cursor:pointer;background:none;border:0;padding:6px 0;min-height:36px}

/* steps / agenda */
.agenda{display:grid;gap:0}
.agenda .r{display:grid;grid-template-columns:56px 1fr;gap:12px;padding:10px 0;border-top:1px solid var(--border-subtle)}
.agenda .r:first-child{border-top:0}
.agenda .t{font-family:var(--font-display);font-weight:800;font-size:13px;color:var(--brand-600);padding-top:2px}
.agenda .w b{display:block;font-weight:600}
.agenda .w span{font-size:14px;color:var(--fg2)}

/* faq */
.faq details{border-top:1px solid var(--border-subtle);padding:4px 0}
.faq details:first-child{border-top:0}
.faq summary{list-style:none;display:flex;justify-content:space-between;gap:12px;align-items:center;font-weight:600;font-size:15px;padding:10px 0;cursor:pointer;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--fg4);font-weight:400;font-size:20px;line-height:1}
.faq details[open] summary::after{content:"\2013"}
.faq p{font-size:14.5px;color:var(--fg2);padding:0 0 12px;max-width:44em}

/* reviews */
.reviews{gap:14px}
.gbadge{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.gbadge .stars{color:#F5A623;letter-spacing:1px;font-size:15px}
.gbadge b{font-weight:700;font-size:14px}
.reviews blockquote{margin:0;border-left:3px solid var(--brand-500);padding:2px 0 2px 12px}
.reviews blockquote p{font-size:14.5px;color:var(--fg2);line-height:1.5}
.reviews cite{display:block;font-style:normal;font-size:12px;color:var(--fg4);margin-top:5px}
/* webinar */
.webinar{border-color:rgba(14,156,142,.35);gap:8px}
.webinar .inc{display:flex;flex-direction:column;gap:12px;margin-top:4px}
.webinar .inc > div{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start}
.webinar .inc .pill{margin-top:2px}
.webinar .inc b{display:block;font-weight:600;font-size:15px}
.webinar .inc span:not(.pill){font-size:14px;color:var(--fg2)}

/* contact */
.contact{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.contact a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:64px;background:rgba(255,255,255,.75);border:1px solid var(--border-default);border-radius:12px;font-weight:600;font-size:13px;color:var(--brand-600)}
.contact svg{width:18px;height:18px}

footer{padding:26px 0 120px;font-size:12.5px;color:var(--fg4);text-align:center;line-height:1.6}
footer a{color:var(--fg4)}

/* sticky cta */
.sticky{position:fixed;left:0;right:0;bottom:0;z-index:30;background:rgba(255,248,242,.94);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid var(--hairline);padding:10px 14px calc(10px + env(safe-area-inset-bottom));display:grid;grid-template-columns:1fr 48px;gap:8px;transform:translateY(110%);transition:transform .35s var(--ease-out)}
.sticky.on{transform:none}
.sticky .btn{min-height:46px}
.sticky .call{display:flex;align-items:center;justify-content:center;border:1px solid var(--border-default);background:rgba(255,255,255,.85);border-radius:12px;color:var(--brand-600)}
.sticky .call svg{width:20px;height:20px}
@media(min-width:1024px){.sticky{display:none}}

/* success flow */
.done{display:none;flex-direction:column;gap:12px}
.done.on{display:flex}
.done .tick{width:56px;height:56px;border-radius:50%;background:rgba(34,160,91,.14);display:flex;align-items:center;justify-content:center;margin:0 auto}
.done .tick svg{width:28px;height:28px}
.done h3{text-align:center;font-size:22px}
.done .sub{text-align:center;color:var(--fg2);font-size:15px}
.done .facts{display:flex;flex-direction:column;gap:7px;font-size:14px;color:var(--fg2)}
.done .facts div{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start}
.done .facts svg{width:16px;height:16px;margin-top:2px}
.done .price{font-family:var(--font-display);font-weight:800;font-size:30px;letter-spacing:-1px}
.done .price small{font-family:var(--font-body);font-weight:500;font-size:12px;color:var(--fg3);letter-spacing:0}
.done .eyebrow{text-align:center}

/* Reduce Motion: the design system slows loops rather than cutting them, so no blanket
   animation kill here - each loop sets its own slower duration. */
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* ================= Claude Design body blocks (ebefc5a9) ================= */
.ev-label{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--fg4)}
.lblrow{display:flex;align-items:center;justify-content:space-between;gap:10px}
.live{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:700;color:var(--fg3)}
.live i{width:7px;height:7px;border-radius:50%;background:var(--success);animation:evpulse 1.8s ease-in-out infinite}
@keyframes evpulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.8)}}

/* proof: three glass stats + real report card */
.proofblk{display:flex;flex-direction:column;gap:10px}
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.stats > div{background:var(--glass-strong);border:1px solid var(--glass-border);border-radius:18px;box-shadow:0 12px 28px -16px rgba(0,32,63,.24);padding:12px 12px 10px;display:flex;flex-direction:column;justify-content:flex-end;gap:4px;min-height:74px}
.stats .k{font-size:9.5px;font-weight:700;letter-spacing:.3px;text-transform:uppercase;color:var(--fg4);white-space:nowrap}
.stats b{font-family:var(--font-display);font-weight:800;font-size:clamp(22px,5.5vw,26px);letter-spacing:-.8px;line-height:1;color:var(--navy);font-variant-numeric:tabular-nums}
.stats b.hi{color:var(--brand-600)}
.reportcard{display:flex;gap:14px;align-items:center;padding:12px 14px}
.reportcard img{width:72px;height:90px;object-fit:cover;object-position:top;border-radius:10px;border:1px solid var(--border-subtle);background:#fff;flex:none}
.reportcard b{display:block;font-size:14px;font-weight:600;line-height:1.3}
.reportcard span{display:block;font-size:12.5px;color:var(--fg3);line-height:1.5;margin-top:3px}

/* reviews */
.reviewsblk{display:flex;flex-direction:column;gap:10px}
.gpill{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border-radius:980px;background:rgba(255,255,255,.8);border:1px solid var(--border-default);font-size:12px;font-weight:700}
.gpill .stars{color:var(--warn);font-size:11px;letter-spacing:0}
.gpill span:last-child{color:var(--fg4);font-weight:600}
.rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:10px}
.rv{padding:16px 18px;gap:10px;display:flex;flex-direction:column}
.rv p{font-size:14.5px;line-height:1.55;font-weight:500;color:var(--fg1)}
.rv cite{font-style:normal;font-size:12px;color:var(--fg4)}
.rv cite b{color:var(--fg2);font-weight:600}

/* timeline with photos */
.timeline{display:flex;flex-direction:column;gap:10px}
.tl{display:flex;flex-direction:column}
.tl .tr{display:grid;grid-template-columns:52px 1fr 92px;gap:12px;align-items:center;padding:10px 0;border-bottom:1px solid var(--hairline)}
.tl .t{font-family:var(--font-display);font-weight:800;font-size:13px;color:var(--brand-600);font-variant-numeric:tabular-nums}
.tl .w b{display:block;font-size:14px;font-weight:600;line-height:1.3}
.tl .w span{display:block;font-size:12px;color:var(--fg4);margin-top:2px;line-height:1.4}
.tl img{width:92px;height:70px;object-fit:cover;border-radius:12px;background:#fff}
.tl img.doc{object-fit:cover;object-position:top;border:1px solid var(--border-subtle)}
@media(min-width:1024px){
  .tl{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px}
  .tl .tr{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:10px;border:1px solid var(--glass-border);background:var(--glass-strong);border-radius:20px;box-shadow:var(--shadow-card)}
  .tl img{width:100%;height:auto;aspect-ratio:4/3;order:-1}
  .tl .w{padding:0 4px 4px}
}

/* sittings */
.sittings{padding:14px 16px 6px;gap:6px;display:flex;flex-direction:column}
table.sit td{padding:10px 4px}
table.sit .book{background:rgba(0,157,255,.12);color:var(--brand-600);border-radius:9px;padding:6px 12px;font-size:12.5px;min-height:32px}

/* faq grid */
.faqblk{display:flex;flex-direction:column;gap:10px}
.faqblk .faq{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:8px;align-items:start}
.faqblk .faq details{background:var(--glass-strong);border:1px solid var(--glass-border);border-radius:20px;box-shadow:var(--shadow-card);padding:0 16px;border-top:1px solid var(--glass-border)}
.faqblk .faq summary{font-size:14px;padding:13px 0}
.faqblk .faq p{font-size:13.5px}

/* contact */
.contactblk{display:flex;flex-direction:column;gap:10px}
.contactblk .contact a{flex-direction:row;min-height:40px;font-size:13.5px;background:rgba(255,255,255,.7)}
.contactblk .contact svg{width:15px;height:15px}

/* sticky with label */
.sticky{grid-template-columns:minmax(0,1fr) auto;align-items:center}
.sticky .sl{min-width:0;display:flex;flex-direction:column}
.sticky .sl b{font-size:12.5px;font-weight:700}
.sticky .sl span{font-size:11px;color:var(--fg4)}
.sticky .btn{width:auto;padding:0 18px}

/* form: design-system version */
.form .fhead{display:flex;align-items:center;gap:8px;margin-bottom:12px}
.form .fhead h3{flex:1;font-size:17px}
.form .dots{display:inline-flex;gap:4px}
.form .dots i{width:7px;height:7px;border-radius:4px;background:rgba(0,32,63,.18);display:block}
.form .dots i.on{background:var(--brand-500)}
.form .lbl{margin:0 0 8px}
.form .seg{margin-bottom:14px}
.form .seg span{background:rgba(255,255,255,.78);border-radius:11px}
.form .seg input:checked+span{background:rgba(0,157,255,.12);border-color:var(--brand-500);color:var(--brand-600)}
.form .lblrow{margin-bottom:8px}
.sess .row{background:rgba(255,255,255,.78);border-radius:11px;min-height:52px;padding:8px 14px}
.sess input:checked+.row{background:rgba(0,157,255,.12);border-color:var(--brand-500);box-shadow:none}
.sess input:checked+.row .d{color:var(--brand-600)}
.form .summary{font-size:13px;color:var(--fg2);margin-bottom:12px;padding:10px 12px;border-radius:11px;background:rgba(0,157,255,.08)}
.form .step[data-step="2"] .field{margin-bottom:10px}
.form .frow{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:6px}
.form .frow .fine{text-align:right;font-size:11.5px}
.form .back{font-size:12.5px;color:var(--fg3)}
.done .tick{width:38px;height:38px;border-radius:12px;margin:0}
.done .tick svg{width:20px;height:20px}
.done .dh{display:flex;gap:12px;align-items:flex-start}
.done .dh h3{text-align:left;font-size:17px}
.done .dh p{font-size:13.5px;line-height:1.55;color:var(--fg2);margin-top:4px}
.done .dh small{display:block;font-size:12px;color:var(--fg4);margin-top:6px;line-height:1.45}
.done .div{border-top:1px solid var(--hairline);padding-top:14px;display:flex;flex-direction:column;gap:6px}
.done .div b{font-size:14px;font-weight:600}
.done .div .cap{font-size:12.5px;line-height:1.5}
.pills{display:flex;flex-wrap:wrap;gap:8px}
.pills label{position:relative}
.pills input{position:absolute;opacity:0;inset:0;pointer-events:none}
.pills span{display:inline-flex;align-items:center;min-height:40px;padding:0 14px;border-radius:11px;border:1px solid var(--border-default);background:rgba(255,255,255,.78);font-size:13px;font-weight:600;color:var(--fg1);cursor:pointer}
.pills input:checked+span{border-color:var(--brand-500);background:rgba(0,157,255,.12);color:var(--brand-600)}
.pills input:focus-visible+span{outline:2px solid var(--brand-500);outline-offset:2px}

/* flat layout: body blocks in column 1, the form spans column 2 on desktop */
.flat{display:flex;flex-direction:column;gap:28px}
@media(min-width:1024px){
  .flat{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:32px;align-items:start}
  .flat > *{grid-column:1}
  .flat > .form{grid-column:2;grid-row:1 / span 12;position:sticky;top:16px;align-self:start}
  .flat.pull > .form{margin-top:-190px}
}

/* hero chrome shared by the design heroes */
.hchrome{position:absolute;top:14px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;z-index:2}
.hchrome .lp{height:36px;padding:0 12px;border-radius:980px;background:var(--glass);backdrop-filter:blur(12px) saturate(1.15);-webkit-backdrop-filter:blur(12px) saturate(1.15);border:1px solid var(--glass-border);display:flex;align-items:center}
.hchrome .lp img{height:20px;width:auto}
.hchrome .chip{font-size:10.5px;font-weight:700;letter-spacing:1px;padding:6px 10px;border-radius:980px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);color:#fff;text-transform:uppercase}
.hchrome .chip.ink{background:rgba(0,157,255,.1);border-color:transparent;color:var(--brand-600)}
.hchrome .dk{display:none;align-items:center;gap:14px;font-size:13px;color:rgba(255,255,255,.8)}
.hchrome .dk .btn{width:auto;min-height:40px;font-size:14px;padding:0 18px}
@media(min-width:1024px){.hchrome{top:18px;left:48px;right:48px}.hchrome .lp{height:40px;padding:0 14px}.hchrome .lp img{height:22px}.hchrome .dk{display:flex}.hchrome .chip{display:none}}

/* E: video-led (1a) */
.hero-e{position:relative;height:600px;overflow:hidden;color:#fff;isolation:isolate}
.hero-e video,.hero-e .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-e .wash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,32,63,.38) 0%,rgba(0,32,63,.6) 45%,rgba(0,32,63,.95) 100%);z-index:-1}
.hero-e .copy{position:absolute;left:0;right:0;bottom:0;padding:0 20px 24px;display:flex;flex-direction:column;gap:12px}
.hero-e .eb{font-size:11px;font-weight:700;letter-spacing:1px;color:rgba(255,255,255,.82);text-transform:uppercase}
.hero-e h1{color:#fff;font-size:36px;line-height:1.04;letter-spacing:-1px}
.hero-e p{font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.88)}
.hero-e .dates{font-size:12px;color:rgba(255,255,255,.72);text-align:center}
@media(min-width:1024px){
  .hero-e{height:620px}
  .hero-e .wash{background:linear-gradient(100deg,rgba(0,32,63,.95) 0%,rgba(0,32,63,.72) 48%,rgba(0,32,63,.35) 100%)}
  .hero-e .copy{left:48px;right:auto;bottom:64px;max-width:640px;padding:0;gap:16px}
  .hero-e h1{font-size:60px;line-height:1.02;letter-spacing:-2px}
  .hero-e p{font-size:17px;max-width:520px}
  .hero-e .dates{text-align:left;font-size:13px}
  .hero-e .btn{display:none}
}

/* F: report-led (1b) */
.hero-f{position:relative;height:520px;overflow:hidden;color:#fff;isolation:isolate}
.hero-f video,.hero-f .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.hero-f .wash{position:absolute;inset:0;background:linear-gradient(165deg,rgba(0,157,255,.4) 0%,rgba(0,85,140,.66) 45%,rgba(0,32,63,.94) 100%);z-index:-1}
.hero-f .copy{position:absolute;top:76px;left:20px;right:20px;display:flex;flex-direction:column;gap:10px}
.hero-f .eb{font-size:11px;font-weight:700;letter-spacing:1px;color:rgba(255,255,255,.85);text-transform:uppercase}
.hero-f h1{color:#fff;font-size:34px;line-height:1.05;letter-spacing:-1px}
.hero-f p{font-size:14px;line-height:1.5;color:rgba(255,255,255,.88)}
.hero-f .hact{display:none}
.floatrep{position:relative;z-index:2;margin:-210px 16px 0}
.floatrep .card{background:rgba(255,255,255,.9);padding:16px 18px 14px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 28px 48px -20px rgba(0,32,63,.5);gap:0}
.floatrep .rh{display:flex;justify-content:space-between;align-items:center}
.floatrep .big{display:flex;align-items:baseline;gap:10px;margin-top:6px}
.floatrep .big b{font-family:var(--font-display);font-weight:800;font-size:42px;letter-spacing:-1.5px;color:var(--navy);font-variant-numeric:tabular-nums;line-height:1}
.floatrep .big span{font-size:12px;color:var(--fg4)}
.floatrep .bars{display:flex;flex-direction:column;gap:8px;margin-top:10px}
.floatrep .bars > div{display:grid;grid-template-columns:96px 1fr 44px;gap:10px;align-items:center;font-size:12.5px}
.floatrep .bars > div > span:first-child{color:var(--fg2)}
.floatrep .bars .trk{height:6px;border-radius:3px;background:rgba(0,32,63,.08);overflow:hidden}
.floatrep .bars .trk i{display:block;height:100%;border-radius:3px;background:var(--brand-500)}
.floatrep .bars .trk i.focus{background:var(--warn)}
.floatrep .bars > div > b{text-align:right;font-variant-numeric:tabular-nums}
.floatrep .ft{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:14px;padding-top:12px;border-top:1px solid var(--hairline);font-size:12px;color:var(--fg3);line-height:1.4}
.floatrep .ft .btn{width:auto;min-height:40px;font-size:14px;padding:0 16px;flex:none}
@media(min-width:1024px){
  .hero-f{height:640px}
  .hero-f .wash{background:linear-gradient(120deg,rgba(0,32,63,.92) 0%,rgba(0,85,140,.66) 50%,rgba(0,157,255,.38) 100%)}
  .hero-f .copy{left:48px;right:auto;top:50%;transform:translateY(-50%);max-width:560px;gap:16px}
  .hero-f h1{font-size:56px;line-height:1.02;letter-spacing:-2px}
  .hero-f p{font-size:17px;max-width:480px}
  .hero-f .hact{display:flex;align-items:center;gap:14px;font-size:13px;color:rgba(255,255,255,.72)}
  .hero-f .hact .btn{width:auto}
  .floatrep{position:absolute;right:88px;top:50%;transform:translateY(-50%) rotate(-2deg);width:420px;margin:0;z-index:3}
  .floatrep .card{padding:20px 22px 18px;box-shadow:inset 0 1px 0 rgba(255,255,255,.8),0 40px 60px -24px rgba(0,32,63,.6)}
  .floatrep .big b{font-size:48px;letter-spacing:-2px}
  .floatrep .ft .btn{display:none}
  .hero-f-wrap{position:relative}
}

/* G: editorial (1c) */
.hero-g{position:relative;padding:14px 0 0}
.hero-g .gchrome{display:flex;justify-content:space-between;align-items:center;padding:0 16px}
.hero-g .gchrome img{height:22px;width:auto}
.hero-g .gchrome .chip{font-size:10.5px;font-weight:700;letter-spacing:1px;padding:6px 10px;border-radius:980px;background:rgba(0,157,255,.1);color:var(--brand-600);text-transform:uppercase}
.hero-g .gchrome .dk{display:none;align-items:center;gap:14px;font-size:13px;color:var(--fg3)}
.hero-g .gchrome .dk .btn{width:auto;min-height:40px;font-size:14px;padding:0 18px}
.hero-g .copy{padding:30px 18px 18px;display:flex;flex-direction:column;gap:12px}
.hero-g h1{font-size:42px;line-height:1;letter-spacing:-1.6px}
.hero-g h1 em{font-style:normal;color:var(--brand-500)}
.hero-g p{font-size:15px;line-height:1.55;color:var(--fg2)}
.hero-g .dates{font-size:12px;color:var(--fg4);text-align:center}
.vframe{margin:6px 16px 0;position:relative;z-index:1}
.vframe .card{padding:8px;border-radius:26px}
.vframe .vin{position:relative;aspect-ratio:4/5;border-radius:19px;overflow:hidden;background:var(--navy);color:#fff}
.vframe video,.vframe .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.vframe .wash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,32,63,0) 40%,rgba(0,32,63,.75) 100%)}
.vframe .chips{position:absolute;left:16px;right:16px;bottom:16px;display:flex;gap:6px;flex-wrap:wrap}
.vframe .chips span{font-size:10.5px;font-weight:700;letter-spacing:.6px;padding:5px 9px;border-radius:980px;background:rgba(10,16,26,.62);border:1px solid rgba(255,255,255,.35);color:#fff;white-space:nowrap;text-transform:uppercase}
.vframe .chips span.on{background:rgba(0,157,255,.85);border-color:transparent}
.hero-g + .wrap .flat{margin-top:-44px;position:relative;z-index:2}
@media(min-width:1024px){
  .hero-g .gchrome{padding:4px 48px 0}
  .hero-g .gchrome img{height:24px}
  .hero-g .gchrome .chip{display:none}
  .hero-g .gchrome .dk{display:flex}
  .hero-g .copy{padding:44px 48px 36px;gap:18px;max-width:1120px;margin:0 auto}
  .hero-g h1{font-size:76px;line-height:.98;letter-spacing:-3.2px;max-width:820px}
  .hero-g .row2{display:flex;gap:28px;align-items:flex-end;justify-content:space-between}
  .hero-g p{font-size:17px;max-width:520px}
  .hero-g .dates{text-align:right;font-size:13px}
  .hero-g .copy .btn{display:none}
  .vframe{margin:0 48px;max-width:1024px}
  .vframe .card{padding:10px;border-radius:28px}
  .vframe .vin{aspect-ratio:16/9;border-radius:20px}
  .vframe .chips{left:22px;bottom:22px}
  .vframe .chips span{font-size:11px;padding:6px 10px}
  .hero-g + .wrap .flat{margin-top:-56px}
}

/* ================= G v2: video hero (bg on mobile, side-by-side on desktop) ================= */
.hero-g2{position:relative;color:#fff;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;isolation:isolate}
.hero-g2 .media{position:absolute;inset:0;z-index:-2}
.hero-g2 .media video,.hero-g2 .media .poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-g2 .media .chips{display:none}
.hero-g2 .wash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,32,63,.32) 0%,rgba(0,32,63,.62) 45%,rgba(0,32,63,.95) 100%);z-index:-1}
.hero-g2 .copy{padding:0 20px 24px;display:flex;flex-direction:column;gap:12px}
.hero-g2 .eb{font-size:11px;font-weight:700;letter-spacing:1px;color:#A5D8FF;text-transform:uppercase;line-height:1.4}
.hero-g2 h1{color:#fff;font-size:38px;line-height:1.02;letter-spacing:-1.2px}
.hero-g2 h1 em{font-style:normal;color:#A5D8FF}
.hero-g2 .sub{font-size:15px;line-height:1.5;color:rgba(255,255,255,.88)}
.hero-g2 .sub b{color:#fff;font-weight:600}
.hero-g2 .dates{font-size:12px;color:rgba(255,255,255,.72)}
.trust{display:flex;align-items:center;gap:12px}
.trust .avs{display:flex}
.trust .avs span{width:40px;height:40px;border-radius:50%;border:2px solid #fff;margin-left:-10px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:13px;color:#fff;background:var(--navy);overflow:hidden}
.trust .avs span:first-child{margin-left:0}
.trust .avs img{width:100%;height:100%;object-fit:cover}
.trust .avs .a1{background:#0E9C8E}.trust .avs .a2{background:#7A5AF8}.trust .avs .a3{background:#D68910}.trust .avs .a4{background:#007ECC}
.trust .tx{display:flex;flex-direction:column;gap:2px;border-left:1px solid rgba(255,255,255,.28);padding-left:12px}
.trust .st{display:flex;align-items:center;gap:6px;font-weight:700;font-size:14px}
.trust .st i{color:#FACC15;font-style:normal;letter-spacing:1px;font-size:14px}
.trust .tline{font-size:12.5px;color:rgba(255,255,255,.8)}
.trust .tline b{color:#fff;font-weight:600}
.trust.ink .avs span{border-color:var(--bg-page)}
.trust.ink .tx{border-left-color:var(--border-default)}
.trust.ink .st{color:var(--fg1)}
.trust.ink .tline{color:var(--fg3)}.trust.ink .tline b{color:var(--fg1)}
@media(min-width:1024px){
  .hero-g2{min-height:0;color:var(--fg1);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center;padding:56px 48px 44px;max-width:1120px;margin:0 auto;overflow:visible}
  .hero-g2 .wash{display:none}
  .hero-g2 .media{position:relative;inset:auto;z-index:0;order:2;padding:10px;border-radius:28px;background:var(--glass);backdrop-filter:blur(12px) saturate(1.15);border:1px solid var(--glass-border);box-shadow:var(--shadow-card)}
  .hero-g2 .media .vin{position:relative;aspect-ratio:4/5;max-height:560px;border-radius:20px;overflow:hidden;background:var(--navy)}
  .hero-g2 .media .vwash{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,32,63,0) 45%,rgba(0,32,63,.72) 100%)}
  .hero-g2 .media .chips{display:flex;position:absolute;left:18px;right:18px;bottom:18px;gap:6px;flex-wrap:wrap}
  .hero-g2 .media .chips span{font-size:10.5px;font-weight:700;letter-spacing:.6px;padding:6px 10px;border-radius:980px;background:rgba(10,16,26,.62);border:1px solid rgba(255,255,255,.35);color:#fff;text-transform:uppercase}
  .hero-g2 .media .chips span.on{background:rgba(0,157,255,.85);border-color:transparent}
  .hero-g2 .copy{padding:0;gap:18px}
  .hero-g2 .eb{color:var(--brand-600)}
  .hero-g2 h1{color:var(--fg1);font-size:64px;letter-spacing:-2.6px;line-height:.98}
  .hero-g2 h1 em{color:var(--brand-500)}
  .hero-g2 .sub{color:var(--fg2);font-size:17px;max-width:32em}
  .hero-g2 .sub b{color:var(--fg1)}
  .hero-g2 .dates{color:var(--fg4);font-size:13px}
  .hero-g2 .btn{width:auto;align-self:flex-start;min-width:240px}
  .hero-g2 .trust .avs span{border-color:var(--bg-page)}
  .hero-g2 .trust .tx{border-left-color:var(--border-default)}
  .hero-g2 .trust .st{color:var(--fg1)}
  .hero-g2 .trust .tline{color:var(--fg3)}.hero-g2 .trust .tline b{color:var(--fg1)}
}
.hero-g2 .gchrome{position:absolute;top:14px;left:16px;right:16px;display:flex;justify-content:space-between;align-items:center;z-index:2}
.hero-g2 .gchrome .lp{height:36px;padding:0 12px;border-radius:980px;background:var(--glass);backdrop-filter:blur(12px) saturate(1.15);border:1px solid var(--glass-border);display:flex;align-items:center}
.hero-g2 .gchrome .lp img{height:20px;width:auto}
.hero-g2 .gchrome .chip{font-size:10.5px;font-weight:700;letter-spacing:1px;padding:6px 10px;border-radius:980px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);color:#fff;text-transform:uppercase}
@media(min-width:1024px){.hero-g2 .gchrome{display:none}}
.topbar-desk{display:none}
@media(min-width:1024px){.topbar-desk{display:block}}

/* proof gallery after the FAQ */
.gallery{display:flex;flex-direction:column;gap:14px}
.gallery .gh{display:flex;flex-direction:column;gap:6px}
.gallery h2{font-size:clamp(24px,4.6vw,32px)}
.gallery .gh p{font-size:15px;color:var(--fg2);max-width:38em}
.gbig{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gbig > div{background:var(--glass-strong);border:1px solid var(--glass-border);border-radius:18px;box-shadow:0 12px 28px -16px rgba(0,32,63,.24);padding:14px 14px 12px;display:flex;flex-direction:column;gap:4px}
.gbig b{font-family:var(--font-display);font-weight:800;font-size:clamp(28px,7vw,40px);letter-spacing:-1.4px;line-height:1;color:var(--brand-600)}
.gbig span{font-size:12.5px;color:var(--fg2);line-height:1.4}
.shots{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:700px){.shots{grid-template-columns:repeat(4,1fr)}}
.shots figure{margin:0;background:#fff;border:1px solid var(--border-subtle);border-radius:14px;overflow:hidden;box-shadow:0 12px 28px -16px rgba(0,32,63,.24)}
.shots img{width:100%;height:auto;display:block}
.shots figcaption{padding:8px 10px;font-size:11.5px;color:var(--fg3);line-height:1.35;border-top:1px solid var(--border-subtle)}
.shots figcaption b{display:block;color:var(--fg1);font-weight:600;font-size:12.5px}
.repgrid{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:700px){.repgrid{grid-template-columns:1.6fr 1fr}}
.repgrid figure{margin:0;background:#fff;border:1px solid var(--border-subtle);border-radius:14px;overflow:hidden;box-shadow:0 12px 28px -16px rgba(0,32,63,.24)}
.repgrid img{width:100%;height:auto;display:block}
.repgrid figcaption{padding:8px 10px;font-size:11.5px;color:var(--fg3);border-top:1px solid var(--border-subtle)}

/* ================= G v3: colour, the day as glass photo cards, collage ================= */
/* proof stats with identity colour */
.stats > div{position:relative;overflow:hidden}
.stats > div::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;border-radius:4px 4px 0 0}
.stats > div:nth-child(1){background:linear-gradient(180deg,rgba(0,157,255,.14),rgba(255,255,255,.78))}
.stats > div:nth-child(1)::before{background:var(--brand-500)}
.stats > div:nth-child(1) b{color:var(--brand-600)}
.stats > div:nth-child(2){background:linear-gradient(180deg,rgba(122,90,248,.14),rgba(255,255,255,.78))}
.stats > div:nth-child(2)::before{background:var(--violet)}
.stats > div:nth-child(2) b{color:var(--violet)}
.stats > div:nth-child(3){background:linear-gradient(180deg,rgba(14,156,142,.14),rgba(255,255,255,.78))}
.stats > div:nth-child(3)::before{background:var(--teal)}
.stats > div:nth-child(3) b.hi{color:var(--teal)}
.reportcard{border-left:0;background:linear-gradient(90deg,rgba(0,157,255,.10),rgba(255,255,255,.78) 60%)}
.gbig > div:nth-child(1){background:linear-gradient(180deg,rgba(0,157,255,.16),rgba(255,255,255,.8))}
.gbig > div:nth-child(2){background:linear-gradient(180deg,rgba(122,90,248,.16),rgba(255,255,255,.8))}
.gbig > div:nth-child(2) b{color:var(--violet)}
.report .tot b{background-image:linear-gradient(105deg,#1E88E5,#7A6BE0 45%,#E85FA8 75%,#FF9057);-webkit-background-clip:text;background-clip:text;color:transparent}

/* the day: photo cards with a colour wash, text on top, revealed on scroll */
.day{display:flex;flex-direction:column;gap:10px}
.day .dh{display:flex;flex-direction:column;gap:4px}
.day .dh p{font-size:14.5px;color:var(--fg2)}
.dcards{display:grid;grid-template-columns:1fr;gap:12px}
.dcard{position:relative;border-radius:22px;overflow:hidden;min-height:250px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;padding:18px 18px 18px;isolation:isolate;box-shadow:0 14px 32px -16px rgba(0,32,63,.4)}
.dcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;transition:transform 8s var(--ease-out)}
.dcard:hover img{transform:scale(1.05)}
.dcard .wash{position:absolute;inset:0;z-index:-1}
.dcard.blue .wash{background:linear-gradient(165deg,rgba(0,157,255,.4) 0%,rgba(0,85,140,.62) 45%,rgba(0,32,63,.94) 100%)}
.dcard.violet .wash{background:linear-gradient(165deg,rgba(122,90,248,.45) 0%,rgba(64,44,158,.62) 45%,rgba(0,32,63,.94) 100%)}
.dcard.teal .wash{background:linear-gradient(165deg,rgba(18,181,165,.42) 0%,rgba(11,110,99,.6) 45%,rgba(4,54,48,.94) 100%)}
.dcard.amber .wash{background:linear-gradient(165deg,rgba(245,166,35,.45) 0%,rgba(178,108,14,.6) 45%,rgba(58,38,3,.94) 100%)}
.dcard.indigo .wash{background:linear-gradient(165deg,rgba(94,102,224,.42) 0%,rgba(48,52,140,.6) 45%,rgba(14,16,50,.94) 100%)}
.dcard .tpill{position:absolute;top:14px;left:14px;font-family:var(--font-display);font-weight:800;font-size:12px;letter-spacing:.4px;padding:6px 10px;border-radius:980px;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-variant-numeric:tabular-nums}
.dcard .n{position:absolute;top:14px;right:14px;width:28px;height:28px;border-radius:50%;background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.3);display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:12px}
.dcard b{font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:-.5px;line-height:1.1}
.dcard span{font-size:14px;line-height:1.45;color:rgba(255,255,255,.86);margin-top:6px;max-width:30em}
.dcard.doc img{object-fit:cover;object-position:top}
[data-rise]{opacity:0;transform:translateY(26px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
[data-rise].in{opacity:1;transform:none}
.no-motion [data-rise]{opacity:1;transform:none;transition:none}
@media(min-width:720px){
  .dcards{grid-template-columns:repeat(6,1fr)}
  .dcard{min-height:280px}
  .dcard:nth-child(1),.dcard:nth-child(2),.dcard:nth-child(3){grid-column:span 2}
  .dcard:nth-child(4),.dcard:nth-child(5){grid-column:span 3}
}

/* collage: inside Everest */
.collageblk{display:flex;flex-direction:column;gap:10px}
.mosaic{display:grid;grid-template-columns:repeat(2,1fr);grid-auto-rows:150px;gap:8px}
.mosaic figure{margin:0;position:relative;border-radius:16px;overflow:hidden;background:var(--fg5)}
.mosaic img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mosaic figure:nth-child(1){grid-row:span 2}
.mosaic figure:nth-child(4){grid-row:span 2}
.mosaic figcaption{position:absolute;left:10px;bottom:10px;font-size:10.5px;font-weight:700;padding:5px 9px;border-radius:980px;background:rgba(0,32,63,.55);color:#fff;letter-spacing:.3px}
@media(min-width:720px){.mosaic{grid-template-columns:repeat(4,1fr);grid-auto-rows:170px}.mosaic figure:nth-child(1){grid-row:span 2}.mosaic figure:nth-child(4){grid-row:span 2}}

/* ================= G v4: glass cards (fade-to-top wash), animated outlines, real avatars ================= */
.dcard{padding:16px;min-height:300px;justify-content:flex-end}
.dcard .wash{background:none}
.dcard.blue .wash{background:linear-gradient(180deg,rgba(0,157,255,.10) 0%,rgba(0,110,190,.45) 50%,rgba(0,32,63,.92) 100%)}
.dcard.violet .wash{background:linear-gradient(180deg,rgba(122,90,248,.10) 0%,rgba(90,60,200,.48) 50%,rgba(30,20,90,.93) 100%)}
.dcard.teal .wash{background:linear-gradient(180deg,rgba(18,181,165,.10) 0%,rgba(11,120,108,.48) 50%,rgba(4,54,48,.93) 100%)}
.dcard.amber .wash{background:linear-gradient(180deg,rgba(245,166,35,.10) 0%,rgba(190,115,15,.48) 50%,rgba(58,38,3,.93) 100%)}
.dcard.indigo .wash{background:linear-gradient(180deg,rgba(94,102,224,.10) 0%,rgba(60,66,170,.5) 50%,rgba(14,16,50,.93) 100%)}
.dcard.rose .wash{background:linear-gradient(180deg,rgba(236,72,153,.10) 0%,rgba(170,40,110,.48) 50%,rgba(46,7,32,.93) 100%)}
.dcard.cyan .wash{background:linear-gradient(180deg,rgba(56,189,248,.10) 0%,rgba(14,116,144,.5) 50%,rgba(3,38,48,.93) 100%)}
.dcard .ico{position:absolute;top:auto;left:16px;bottom:118px;width:38px;height:38px;border-radius:11px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;color:#fff}
.dcard .ico svg{width:18px;height:18px}
.dcard .dt{display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.dcard .dt b{font-size:24px;letter-spacing:-.6px;line-height:1.08}
.dcard .dt > span:not(.tpill){font-size:14px;color:rgba(255,255,255,.86);margin:0;line-height:1.4}
.dcard .tpill{position:static;margin-top:6px;font-family:var(--font-display);font-weight:700;font-size:12px;letter-spacing:.2px;padding:6px 11px;border-radius:980px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.dcard .n{top:14px;right:14px}
@media(min-width:720px){
  .dcards{grid-template-columns:repeat(12,1fr)}
  .dcard{min-height:320px}
  .dcard:nth-child(1),.dcard:nth-child(2),.dcard:nth-child(3){grid-column:span 4}
  .dcard:nth-child(4),.dcard:nth-child(5),.dcard:nth-child(6),.dcard:nth-child(7){grid-column:span 6}
  .dcard .ico{bottom:126px}
}
@media(min-width:1024px){.dcard:nth-child(4),.dcard:nth-child(5){grid-column:span 6}.dcard:nth-child(6),.dcard:nth-child(7){grid-column:span 6}}

/* animated gradient outline on the proof cards */
@property --ang{syntax:'<angle>';initial-value:0deg;inherits:false}
.ring{position:relative;background:var(--glass);backdrop-filter:blur(12px) saturate(1.15);-webkit-backdrop-filter:blur(12px) saturate(1.15)}
.ring::after{content:"";position:absolute;inset:0;border-radius:inherit;padding:1.5px;pointer-events:none;
  background:conic-gradient(from var(--ang),#1E88E5,#7A6BE0,#E85FA8,#FF9057,#0E9C8E,#1E88E5);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;
  animation:spinring 6s linear infinite;opacity:.9}
@keyframes spinring{to{--ang:360deg}}
.stats > div::before{display:none}
.stats > div{background:var(--glass)}
.stats > div:nth-child(1),.stats > div:nth-child(2),.stats > div:nth-child(3){background:var(--glass)}
.stats > div b{background-image:linear-gradient(105deg,#1E88E5,#7A6BE0 60%,#E85FA8);-webkit-background-clip:text;background-clip:text;color:transparent!important}
.stats > div:nth-child(3) b{background-image:linear-gradient(105deg,#0E9C8E,#1E88E5 60%,#7A6BE0);-webkit-background-clip:text;background-clip:text}
.reportcard{background:var(--glass)}
.gbig > div{background:var(--glass)}
@media(prefers-reduced-motion:reduce){.ring::after{animation:none}}

/* trust strip: real avatars, text on one line */
.trust .avs span{width:42px;height:42px;background:#fff;border-width:2px}
.trust .tx{gap:3px}
.trust .tline{white-space:nowrap;font-size:12.5px}
@media(max-width:400px){.trust .tline{font-size:11.5px}.trust .avs span{width:36px;height:36px;margin-left:-9px}}

/* trust strip v2: avatars + rating on line one, the sentence on line two, never wrapped */
.trust{display:grid;grid-template-columns:auto auto;justify-content:start;align-items:center;column-gap:12px;row-gap:5px}
.trust .avs{grid-row:1;grid-column:1}
.trust .tx{display:contents}
.trust .st{grid-row:1;grid-column:2;font-size:15px}
.trust .tline{grid-row:2;grid-column:1 / span 2;white-space:nowrap;font-size:13px}
@media(max-width:400px){.trust .tline{font-size:12px}}
@media(min-width:1024px){.trust{grid-template-columns:auto auto auto;row-gap:0}.trust .tline{grid-row:1;grid-column:3;border-left:1px solid var(--border-default);padding-left:12px}}

/* report card: cut-off ladder */
.marks{display:none}
.cutoffs{display:flex;flex-direction:column;gap:6px;margin-top:10px}
.cutoffs ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:2px}
.cutoffs li{display:flex;justify-content:space-between;gap:8px;font-size:12.5px;color:var(--fg2);padding:5px 0;border-bottom:1px solid var(--hairline)}
.cutoffs li b{font-family:var(--font-display);font-weight:800;color:var(--fg1);font-variant-numeric:tabular-nums}
.cutoffs li.ok b{color:var(--success)}
.cutoffs li.ok span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--success);margin-right:6px;vertical-align:middle}
.cutoffs li:not(.ok) span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--warn);margin-right:6px;vertical-align:middle}


/* ================= G v5: trust layout, day + centre picker, wash to halfway, CTA pair ================= */
.trust{grid-template-columns:auto auto auto;column-gap:12px;row-gap:0}
.trust .avs{grid-row:1 / span 2}
.trust .st{grid-row:1;grid-column:2;font-size:15px;align-self:end}
.trust .ong{grid-row:2;grid-column:2;font-size:12px;color:rgba(255,255,255,.75);align-self:start}
.trust .tline{grid-row:1 / span 2;grid-column:3;border-left:1px solid rgba(255,255,255,.28);padding-left:12px;align-self:center;font-size:13px}
.hero-g2 .trust .ong{color:rgba(255,255,255,.75)}
@media(min-width:1024px){.trust{grid-template-columns:auto auto auto;row-gap:0}.trust .tline{grid-row:1 / span 2;grid-column:3;border-left-color:var(--border-default)}.hero-g2 .trust .ong{color:var(--fg4)}}
@media(max-width:400px){.trust{column-gap:9px}.trust .tline{font-size:12px;padding-left:9px}}
.ctas{display:flex;gap:10px;flex-wrap:wrap}
.ctas .btn{width:auto;flex:1 1 150px}
.hero-g2 .ctas .btn.ghost{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.35);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
@media(min-width:1024px){.hero-g2 .ctas{align-self:flex-start}.hero-g2 .ctas .btn{flex:none;min-width:200px}.hero-g2 .ctas .btn.ghost{background:rgba(255,255,255,.7);color:var(--brand-600);border-color:var(--border-default)}}

/* wash: photo clear for the top half, colour builds from the middle */
.dcard.blue .wash{background:linear-gradient(180deg,rgba(0,32,63,0) 0%,rgba(0,32,63,0) 42%,rgba(0,110,190,.55) 68%,rgba(0,32,63,.94) 100%)}
.dcard.violet .wash{background:linear-gradient(180deg,rgba(30,20,90,0) 0%,rgba(30,20,90,0) 42%,rgba(90,60,200,.58) 68%,rgba(30,20,90,.94) 100%)}
.dcard.teal .wash{background:linear-gradient(180deg,rgba(4,54,48,0) 0%,rgba(4,54,48,0) 42%,rgba(11,120,108,.58) 68%,rgba(4,54,48,.94) 100%)}
.dcard.amber .wash{background:linear-gradient(180deg,rgba(58,38,3,0) 0%,rgba(58,38,3,0) 42%,rgba(190,115,15,.58) 68%,rgba(58,38,3,.94) 100%)}
.dcard.indigo .wash{background:linear-gradient(180deg,rgba(14,16,50,0) 0%,rgba(14,16,50,0) 42%,rgba(60,66,170,.6) 68%,rgba(14,16,50,.94) 100%)}
.dcard.rose .wash{background:linear-gradient(180deg,rgba(46,7,32,0) 0%,rgba(46,7,32,0) 42%,rgba(170,40,110,.58) 68%,rgba(46,7,32,.94) 100%)}
.dcard.cyan .wash{background:linear-gradient(180deg,rgba(3,38,48,0) 0%,rgba(3,38,48,0) 42%,rgba(14,116,144,.6) 68%,rgba(3,38,48,.94) 100%)}
.dcard .n{background:rgba(0,32,63,.45)}

/* form: day chips + centre rows */
.days{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:14px}
.days label{position:relative}
.days input{position:absolute;opacity:0;inset:0;pointer-events:none}
.days span{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:52px;border:1px solid var(--border-default);background:rgba(255,255,255,.78);border-radius:11px;font-size:12px;color:var(--fg2);cursor:pointer;line-height:1.2;padding:6px 2px}
.days span b{font-family:var(--font-display);font-weight:800;font-size:13px;color:var(--fg1)}
.days input:checked+span{background:rgba(0,157,255,.12);border-color:var(--brand-500);color:var(--brand-600)}
.days input:checked+span b{color:var(--brand-600)}
.days input:disabled+span{opacity:.45;cursor:not-allowed}
.days input:focus-visible+span{outline:2px solid var(--brand-500);outline-offset:2px}
.centres{display:flex;flex-direction:column;gap:7px;margin-bottom:4px}
.centres label{position:relative;display:block}
.centres input{position:absolute;opacity:0;inset:0;pointer-events:none}
.centres .row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;min-height:50px;padding:8px 14px;border:1px solid var(--border-default);background:rgba(255,255,255,.78);border-radius:11px;cursor:pointer}
.centres .d{font-weight:600;font-size:14.5px;line-height:1.25}
.centres .d small{display:block;font-weight:400;font-size:12px;color:var(--fg3)}
.centres input:checked+.row{background:rgba(0,157,255,.12);border-color:var(--brand-500)}
.centres input:checked+.row .d{color:var(--brand-600)}
.centres input:disabled+.row{opacity:.5;cursor:not-allowed}
.centres input:focus-visible+.row{outline:2px solid var(--brand-500);outline-offset:2px}

/* sittings matrix */
table.sit.matrix th{text-align:center;font-size:10px}
table.sit.matrix th:first-child{text-align:left}
table.sit.matrix tbody th{text-align:left;font-weight:600;font-size:13px;color:var(--fg1);padding:10px 4px;border-bottom:1px solid var(--border-subtle);white-space:nowrap}
table.sit.matrix td{text-align:center;padding:8px 2px}
table.sit.matrix td:last-child{text-align:center}
table.sit.matrix .seats{display:block;font-size:14px}
table.sit.matrix .book{display:block;margin:4px auto 0;padding:4px 10px;font-size:11.5px;min-height:28px}

/* mobile: trust line on its own row, CTAs stacked full width */
@media(max-width:1023px){
  .trust{grid-template-columns:auto auto;row-gap:6px}
  .trust .avs{grid-row:1 / span 2;grid-column:1}
  .trust .st{grid-row:1;grid-column:2}
  .trust .ong{grid-row:2;grid-column:2}
  .trust .tline{grid-row:3;grid-column:1 / span 2;border-left:0;padding-left:0;font-size:13px}
  .ctas{flex-direction:column}
  .ctas .btn{width:100%;flex:none}
}

/* icons in flow above the title (never over text); tighter video frame */
.dcard .ico.inflow{position:static;width:32px;height:32px;border-radius:9px;margin-bottom:8px}
.dcard .ico.inflow svg{width:16px;height:16px}
@media(min-width:720px){.dcard .ico.inflow{bottom:auto}}
@media(min-width:1024px){
  .hero-g2 .media{justify-self:center;width:min(100%,460px)}
  .hero-g2 .media .vin{max-height:none;aspect-ratio:4/5}
}

/* ================= G v6: WordPress-style header (HSHS treatment), booking bar, modal ================= */
.nav{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(255,248,242,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--hairline);transition:background .25s,border-color .25s}
.nav-inner{max-width:1180px;margin:0 auto;padding:0 20px;height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.nlogo img{height:34px;width:auto;display:block;transition:filter .25s}
.nav-links{display:none;gap:2px;flex:1;justify-content:center;min-width:0}
.nav-links a{font-size:13.5px;font-weight:500;color:var(--fg2);padding:8px 11px;border-radius:980px;white-space:nowrap;transition:color .15s,background .15s}
.nav-links a:hover{color:var(--navy);background:rgba(0,32,63,.06)}
.nav-right{display:flex;align-items:center;gap:10px}
.ntel{display:none;font-size:14px;font-weight:600;color:var(--brand-600);white-space:nowrap}
.nav .nbtn{display:none;width:auto;min-height:40px;font-size:14px;padding:0 18px}
.burger{display:flex;width:44px;height:44px;flex-direction:column;align-items:center;justify-content:center;gap:5px;border:0;background:none;border-radius:12px;cursor:pointer}
.burger span{width:21px;height:2px;background:var(--navy);border-radius:2px;transition:transform .25s,opacity .2s,background .25s}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.drawer{display:none;position:fixed;top:64px;left:0;right:0;z-index:59;background:var(--bg-page);border-bottom:1px solid var(--border-subtle);box-shadow:0 24px 40px -24px rgba(0,32,63,.3);padding:8px 20px 20px;flex-direction:column;max-height:calc(100vh - 64px);overflow:auto}
.drawer.open{display:flex}
.drawer > a{font-size:16px;font-weight:600;color:var(--fg1);padding:12px 4px;border-bottom:1px solid var(--hairline)}
.drawer-foot{display:flex;flex-direction:column;gap:10px;padding-top:14px}
.drawer-foot > a{font-weight:600;color:var(--brand-600);text-align:center;padding:8px}
/* over a dark video hero on phones the bar starts transparent with white chrome */
body.hero-dark .nav:not(.scrolled):not(.menu-open){background:transparent;border-bottom-color:transparent}
body.hero-dark .nav:not(.scrolled):not(.menu-open) .nlogo img{filter:brightness(0) invert(1)}
body.hero-dark .nav:not(.scrolled):not(.menu-open) .burger span{background:#fff}
@media(min-width:1140px){
  .nav-inner{height:74px;padding:0 28px}
  .nlogo img{height:38px}
  .nav-links{display:flex}
  .ntel{display:inline}
  .nav .nbtn{display:inline-flex}
  .burger{display:none}
  body.hero-dark .nav:not(.scrolled):not(.menu-open){background:rgba(255,248,242,.92);border-bottom-color:var(--hairline)}
  body.hero-dark .nav:not(.scrolled):not(.menu-open) .nlogo img{filter:none}
}
@media(min-width:1024px) and (max-width:1139px){.nav .nbtn{display:inline-flex}.ntel{display:inline}}
/* from 1024px the G hero is ivory, so the bar is always light */
@media(min-width:1024px){
  body.hero-dark .nav:not(.scrolled):not(.menu-open){background:rgba(255,248,242,.92);border-bottom-color:var(--hairline)}
  body.hero-dark .nav:not(.scrolled):not(.menu-open) .nlogo img{filter:none}
  body.hero-dark .nav:not(.scrolled):not(.menu-open) .burger span{background:var(--navy)}
}
/* space under the fixed bar */
.hero-g2{padding-top:0}
@media(min-width:1024px){.hero-g2{padding-top:110px}}
.hero-g2 .gchrome{display:none}
.topbar-desk{display:none}

/* booking bar */
.sticky{display:none}
.bookbar{position:fixed;left:0;right:0;bottom:0;z-index:50;background:rgba(255,248,242,.94);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--hairline);padding:8px 10px calc(8px + env(safe-area-inset-bottom));display:grid;grid-template-columns:minmax(0,1.6fr) repeat(3,minmax(0,1fr));gap:6px;transform:translateY(110%);transition:transform .35s var(--ease-out)}
.bookbar.on{transform:none}
.bookbar .btn{min-height:50px;font-size:14px;padding:0 10px}
.bookbar .bi{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:50px;border:1px solid var(--border-default);background:rgba(255,255,255,.8);border-radius:12px;color:var(--brand-600);font:inherit;font-size:10.5px;font-weight:600;cursor:pointer;padding:4px 2px;line-height:1.1;text-align:center}
.bookbar .bi svg{width:17px;height:17px}
@media(min-width:720px){
  .bookbar{left:50%;right:auto;bottom:16px;transform:translate(-50%,140%);width:min(720px,calc(100% - 32px));border:1px solid var(--glass-border);border-radius:20px;box-shadow:0 24px 48px -20px rgba(0,32,63,.4);padding:10px;grid-template-columns:minmax(0,1.5fr) repeat(3,minmax(0,1fr))}
  .bookbar.on{transform:translate(-50%,0)}
  .bookbar .bi{flex-direction:row;gap:8px;font-size:13px;min-height:46px}
}
body.bar-on footer{padding-bottom:140px}

/* modal */
.modal{position:fixed;inset:0;z-index:80;display:flex;align-items:flex-end;justify-content:center}
.modal[hidden]{display:none}
.modal-bg{position:absolute;inset:0;background:rgba(0,32,63,.55);backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.modal-card{position:relative;width:100%;max-height:92vh;overflow:auto;background:var(--bg-page);border-radius:24px 24px 0 0;padding:14px 16px 24px;box-shadow:0 -20px 60px -20px rgba(0,32,63,.5);animation:mup .35s var(--ease-out)}
@keyframes mup{from{transform:translateY(30px);opacity:0}to{transform:none;opacity:1}}
@media(min-width:640px){.modal{align-items:center;padding:20px}.modal-card{width:min(520px,100%);max-height:90vh;border-radius:24px;padding:18px 20px 24px}}
.mclose{position:absolute;top:12px;right:12px;width:36px;height:36px;border-radius:50%;border:1px solid var(--border-default);background:rgba(255,255,255,.85);color:var(--fg2);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}
.mclose svg{width:16px;height:16px}
.tabs{display:flex;gap:6px;padding:4px;background:rgba(0,32,63,.06);border-radius:12px;margin:2px 44px 14px 0}
.tabs button{flex:1;min-height:36px;border:0;border-radius:9px;background:none;font:inherit;font-size:12.5px;font-weight:600;color:var(--fg3);cursor:pointer;padding:0 4px}
.tabs button.on{background:#fff;color:var(--brand-600);box-shadow:0 1px 3px rgba(0,32,63,.12)}
.modal .card.form{box-shadow:none;border:0;background:transparent;padding:0;backdrop-filter:none}
.enq{display:flex;flex-direction:column;gap:10px}
.enq h3{font-size:17px}
.enq .field.ta{min-height:100px;padding:12px 14px;resize:vertical;font-family:inherit}
.enq .fine{font-size:12px;color:var(--fg4);text-align:center;margin-top:8px}
.enq .err{display:none;padding:10px 12px;border-radius:10px;background:rgba(224,65,65,.1);color:var(--danger);font-size:13.5px;font-weight:500}
.enq .err.on{display:block}
.enq .thanks{display:flex;gap:12px;align-items:flex-start}
body.modal-open{overflow:hidden}

/* rail on desktop: book card + sittings */
.rail2{display:flex;flex-direction:column;gap:16px}
.bookcard{gap:8px}
.bookcard h3{font-size:19px}
.bookcard .btn.ghost{margin-top:2px}
@media(min-width:1024px){
  .flat > .form{position:static;grid-column:1;margin-top:0}
  .flat > .rail2{grid-column:2;grid-row:1 / span 12;position:sticky;top:96px;align-self:start}
}

/* ================= G v7: HSHS-style hero chrome ================= */
/* no colour wash on the video: a neutral legibility fade from the middle down, like HSHS */
.hero-g2 .wash{background:linear-gradient(180deg,rgba(8,12,20,0) 0%,rgba(8,12,20,0) 38%,rgba(8,12,20,.55) 62%,rgba(8,12,20,.92) 100%)}
@media(min-width:1024px){.hero-g2 .media .vwash{background:linear-gradient(180deg,rgba(8,12,20,0) 55%,rgba(8,12,20,.6) 100%)}}
/* frosted eyebrow pill above the H1 */
.ebpill{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:7px 12px 7px 10px;border-radius:980px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);font-size:11.5px;font-weight:700;letter-spacing:.3px;color:#fff;line-height:1.3}
.ebpill .dot{width:7px;height:7px;border-radius:50%;background:#4ADE80;flex:none;box-shadow:0 0 0 3px rgba(74,222,128,.25)}
@media(min-width:1024px){.ebpill{background:rgba(0,157,255,.10);border-color:rgba(0,157,255,.25);color:var(--brand-600)}}
/* "Explore the day" = the white button */
.hero-g2 .ctas .btn.ghost{background:#fff;color:var(--navy);border:1px solid rgba(255,255,255,.9);backdrop-filter:none;-webkit-backdrop-filter:none}
.hero-g2 .ctas .btn.ghost:hover{box-shadow:0 12px 28px -12px rgba(0,32,63,.4);filter:none}
@media(min-width:1024px){.hero-g2 .ctas .btn.ghost{background:#fff;color:var(--navy);border-color:var(--border-default)}}
/* top strip above the nav */
.topstrip{height:28px;display:flex;align-items:center;justify-content:center;gap:10px;font-size:11.5px;font-weight:600;color:#fff;background:var(--navy);letter-spacing:.2px;white-space:nowrap;overflow:hidden;padding:0 12px}
.topstrip a{color:#fff}
.topstrip .sep{opacity:.5}
.nav-inner{height:60px}
.drawer{top:88px;max-height:calc(100vh - 88px)}
@media(min-width:1140px){.nav-inner{height:72px}}
@media(min-width:1024px){.hero-g2{padding-top:120px}}
/* marquee strip under the hero */
.marquee{position:relative;z-index:2;background:var(--brand-500);color:#fff;overflow:hidden;height:40px;display:flex;align-items:center}
.marquee .track{display:flex;align-items:center;gap:0;white-space:nowrap;animation:marq 38s linear infinite;will-change:transform}
.marquee span{font-size:12.5px;font-weight:700;letter-spacing:.4px;padding:0 18px;text-transform:uppercase}
.marquee i{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.7);flex:none}
@keyframes marq{to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.marquee .track{animation-duration:110s}}
.marquee:hover .track{animation-play-state:paused}

/* ================= portal "next class" card treatment for the proof cards ================= */
/* From the student-portal Dashboard hero: 2px translucent white edge, ivory ground with the
   brand diagonal gradient, and two colour pools that drift slowly inside the card. */
@keyframes evdrift2 { 0%, 100% { transform: translate(0, 0) scale(1); } 22% { transform: translate(-120px, 60px) scale(1.2); } 48% { transform: translate(-70px, -90px) scale(0.86); } 74% { transform: translate(100px, -50px) scale(1.18); } 90% { transform: translate(50px, 40px) scale(0.95); } }
@keyframes evdrift3 { 0%, 100% { transform: translate(0, 0) scale(1); } 30% { transform: translate(90px, -100px) scale(1.28); } 55% { transform: translate(-100px, -40px) scale(0.85); } 80% { transform: translate(-30px, 90px) scale(1.1); } }
.ring{position:relative;overflow:hidden;isolation:isolate;backdrop-filter:none;-webkit-backdrop-filter:none;
  background:linear-gradient(115deg,var(--brand-50) 0%,var(--bg-page) 46%,rgba(122,90,248,.10) 76%,rgba(0,157,255,.16) 100%);
  border:2px solid rgba(255,255,255,.75);box-shadow:0 18px 40px -20px rgba(0,32,63,.35)}
.ring::before,.ring::after{content:"";position:absolute;border-radius:50%;pointer-events:none;z-index:0;padding:0;
  -webkit-mask:none;mask:none;inset:auto;opacity:1}
.ring::before{right:-70px;top:-80px;width:280px;height:280px;background:radial-gradient(circle,rgba(0,157,255,.22),transparent 70%);animation:evdrift3 13s ease-in-out infinite}
.ring::after{right:180px;bottom:-110px;width:220px;height:220px;background:radial-gradient(circle,rgba(122,90,248,.16),transparent 70%);animation:evdrift2 17s ease-in-out -6s infinite}
.ring > *{position:relative;z-index:1}
.stats .ring::before{width:170px;height:170px;right:-60px;top:-70px}
.stats .ring::after{width:140px;height:140px;right:60px;bottom:-80px}
.stats > div.ring,.stats > div:nth-child(1).ring,.stats > div:nth-child(2).ring,.stats > div:nth-child(3).ring{background:linear-gradient(115deg,var(--brand-50) 0%,var(--bg-page) 46%,rgba(122,90,248,.10) 76%,rgba(0,157,255,.16) 100%)}
.reportcard.ring,.gbig > div.ring,.report.ring{background:linear-gradient(115deg,var(--brand-50) 0%,var(--bg-page) 46%,rgba(122,90,248,.10) 76%,rgba(0,157,255,.16) 100%)}
@media(prefers-reduced-motion:reduce){.ring::before{animation-duration:40s}.ring::after{animation-duration:50s}}

/* marquee: slower, sentence case */
.marquee .track{animation-duration:48s}
.marquee span{text-transform:none;letter-spacing:.1px;font-size:13px;font-weight:600}
@media(prefers-reduced-motion:reduce){.marquee .track{animation-duration:80s}}

/* ================= proof cards: glass background back, animated gradient outline from the results page ================= */
@keyframes evhue{from{filter:hue-rotate(0deg)}to{filter:hue-rotate(360deg)}}
.ring{background:var(--glass-strong);backdrop-filter:blur(12px) saturate(1.15);-webkit-backdrop-filter:blur(12px) saturate(1.15);border:1px solid var(--glass-border);box-shadow:var(--shadow-card);overflow:visible;isolation:auto}
.stats > div.ring,.stats > div:nth-child(1).ring,.stats > div:nth-child(2).ring,.stats > div:nth-child(3).ring,.reportcard.ring,.gbig > div.ring,.report.ring{background:var(--glass-strong)}
.ring::before{content:"";position:absolute;inset:-1.5px;border-radius:inherit;background:linear-gradient(120deg,#1E88E5,#7A6BE0,#E85FA8,#FF9057);z-index:-1;animation:evhue 6s linear infinite;width:auto;height:auto;right:auto;top:auto;bottom:auto;left:auto;padding:0}
.ring::after{display:none}
.ring > *{position:relative;z-index:1}
.stats .ring::before{width:auto;height:auto;right:-1.5px;top:-1.5px}
@media(prefers-reduced-motion:reduce){.ring::before{animation-duration:24s}}

/* ================= the portal's own outline sweep (app/(student)/page.tsx next-class card) ================= */
/* A 2px translucent rim; a large conic gradient rotates behind the content and shows only in the rim. */
@keyframes evspin{from{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}
.ring{position:relative;overflow:hidden;isolation:isolate;border:0;background:rgba(255,255,255,.75);backdrop-filter:none;-webkit-backdrop-filter:none;box-shadow:0 18px 40px -20px rgba(0,32,63,.35)}
.stats > div.ring,.stats > div:nth-child(1).ring,.stats > div:nth-child(2).ring,.stats > div:nth-child(3).ring,.reportcard.ring,.gbig > div.ring,.report.ring{background:rgba(255,255,255,.75)}
.ring::before{content:"";display:block;position:absolute;inset:auto;top:50%;left:50%;right:auto;bottom:auto;width:230%;height:auto;aspect-ratio:1;border-radius:0;padding:0;
  transform:translate(-50%,-50%);z-index:0;filter:none;
  background:conic-gradient(from 0deg,rgba(0,157,255,0) 0deg,rgba(0,157,255,.55) 90deg,rgba(122,90,248,.5) 160deg,rgba(122,90,248,0) 250deg,rgba(0,157,255,0) 360deg);
  animation:evspin 8s linear infinite}
.ring::after{content:"";display:block;position:absolute;inset:2px;top:2px;left:2px;right:2px;bottom:2px;width:auto;height:auto;border-radius:inherit;z-index:0;padding:0;
  background:var(--glass-strong);backdrop-filter:blur(12px) saturate(1.15);-webkit-backdrop-filter:blur(12px) saturate(1.15);animation:none;-webkit-mask:none;mask:none;transform:none}
.stats .ring::before{width:230%;height:auto;right:auto;top:50%}
.stats .ring::after{width:auto;height:auto;right:2px;bottom:2px}
.ring > *{position:relative;z-index:1}
@media(prefers-reduced-motion:reduce){.ring::before{animation-duration:24s}}

/* day cards: keep faces in frame; question bank artwork */
.dcard img.face{object-position:center 12%}
.dcard img.qb{object-position:center center}
/* the tutor's face sits ~28% down hero-4: frame it above the text band on every card width */
.dcard img.face{object-position:center 50%}
@media(min-width:720px){.dcard img.face{object-position:center 22%}}

/* ring cards: opaque ivory inside the rim, so the sweep shows only in the outline and never tints the content */
.ring::after{background:var(--bg-page);backdrop-filter:none;-webkit-backdrop-filter:none}

/* outline: thicker rim, stronger sweep, quicker turn */
.ring{background:rgba(0,157,255,.10)}
.stats > div.ring,.stats > div:nth-child(1).ring,.stats > div:nth-child(2).ring,.stats > div:nth-child(3).ring,.reportcard.ring,.gbig > div.ring,.report.ring{background:rgba(0,157,255,.10)}
.ring::before{background:conic-gradient(from 0deg,rgba(0,157,255,0) 0deg,rgba(0,157,255,.95) 70deg,rgba(122,90,248,.9) 150deg,rgba(232,95,168,.75) 210deg,rgba(122,90,248,0) 280deg,rgba(0,157,255,0) 360deg);animation-duration:5s}
.ring::after{inset:2.5px;top:2.5px;left:2.5px;right:2.5px;bottom:2.5px}
.stats .ring::after{right:2.5px;bottom:2.5px}
@media(prefers-reduced-motion:reduce){.ring::before{animation-duration:14s}}

/* outline: back to the 2px rim, keep the higher saturation and the 5s turn */
.ring{background:rgba(255,255,255,.75)}
.stats > div.ring,.stats > div:nth-child(1).ring,.stats > div:nth-child(2).ring,.stats > div:nth-child(3).ring,.reportcard.ring,.gbig > div.ring,.report.ring{background:rgba(255,255,255,.75)}
.ring::after{inset:2px;top:2px;left:2px;right:2px;bottom:2px}
.stats .ring::after{right:2px;bottom:2px}

/* five-stat strip + make sure every tile carries the outline sweep */
.stats.five{grid-template-columns:repeat(6,minmax(0,1fr))}
.stats.five > div:nth-child(1),.stats.five > div:nth-child(2),.stats.five > div:nth-child(3){grid-column:span 2}
.stats.five > div:nth-child(4),.stats.five > div:nth-child(5){grid-column:span 3}
@media(min-width:720px){.stats.five{grid-template-columns:repeat(5,minmax(0,1fr))}.stats.five > div{grid-column:span 1!important}}
.stats > div.ring{border:0;overflow:hidden;isolation:isolate;box-shadow:0 18px 40px -20px rgba(0,32,63,.35)}
.stats > div.ring::before{display:block;content:"";position:absolute;inset:auto;left:50%;top:50%;right:auto;bottom:auto;width:230%;height:auto;aspect-ratio:1;border-radius:0;transform:translate(-50%,-50%);z-index:0;
  background:conic-gradient(from 0deg,rgba(0,157,255,0) 0deg,rgba(0,157,255,.95) 70deg,rgba(122,90,248,.9) 150deg,rgba(232,95,168,.75) 210deg,rgba(122,90,248,0) 280deg,rgba(0,157,255,0) 360deg);animation:evspin 5s linear infinite}
.stats > div.ring::after{display:block;content:"";position:absolute;inset:2px;border-radius:inherit;background:var(--bg-page);z-index:0}
.stats > div.ring > *{position:relative;z-index:1}
.stats > div.ring b{color:var(--brand-600)}
.stats > div.ring:nth-child(2) b{color:var(--violet)}
.stats > div.ring:nth-child(3) b{color:var(--teal)}
.stats > div.ring:nth-child(4) b{color:var(--brand-600)}
.stats > div.ring:nth-child(5) b{color:var(--violet)}
.stats > div.ring b{background:none;-webkit-background-clip:border-box;background-clip:border-box;-webkit-text-fill-color:currentColor}
.stats > div.ring:nth-child(1) b{background:linear-gradient(105deg,#1E88E5,#7A6BE0 60%,#E85FA8);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.stats > div.ring:nth-child(3) b{background:linear-gradient(105deg,#0E9C8E,#1E88E5 60%,#7A6BE0);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
@media(prefers-reduced-motion:reduce){.stats > div.ring::before{animation-duration:14s}}

/* rail book card: real spacing between the copy and the buttons */
.bookcard{display:flex;flex-direction:column;gap:6px}
.bookcard h3{margin-top:2px}
.bookcard > .btn:first-of-type{margin-top:14px}
.bookcard .btn + .btn{margin-top:4px}

/* concentric corners on the outlined cards: inner panel radius = outer radius - rim */
.card{--rr:20px}
.stats > div{--rr:18px}
.gbig > div{--rr:18px}
.ring::after,.stats > div.ring::after{border-radius:calc(var(--rr,20px) - 2px)}
.gbig > div.ring{border-radius:18px}
/* four verbatim reviews */
.rgrid.four{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}

/* two-action booking bar; webinar crop */
.bookbar.two{grid-template-columns:1.4fr 1fr}
.bookbar.two .btn.ghost{background:rgba(255,255,255,.85);color:var(--brand-600);border:1px solid var(--border-default);gap:7px;font-size:14px}
@media(min-width:720px){.bookbar.two{width:min(560px,calc(100% - 32px));grid-template-columns:1.3fr 1fr}}
.dcard img.face{object-position:center 15%}
@media(min-width:720px){.dcard img.face{object-position:center 10%}}

/* stat numbers: solid colours that beat the old transparent-text rule */
.stats > div.ring b{background:none!important;-webkit-background-clip:border-box!important;background-clip:border-box!important;-webkit-text-fill-color:currentColor!important;color:var(--brand-600)!important}
.stats > div.ring:nth-child(2) b{color:var(--violet)!important}
.stats > div.ring:nth-child(3) b{color:var(--teal)!important}
.stats > div.ring:nth-child(4) b{color:var(--brand-600)!important}
.stats > div.ring:nth-child(5) b{color:var(--violet)!important}

/* the day: cards flip up into place as they scroll in, one after another */
.dcards{perspective:1400px}
.dcard[data-rise]{opacity:0;transform:rotateX(-62deg) translateY(44px);transform-origin:50% 100%;transition:opacity .75s var(--ease-out),transform .85s var(--ease-out);backface-visibility:hidden;will-change:transform,opacity}
.dcard[data-rise].in{opacity:1;transform:none}
.dcard[data-rise]:nth-child(3n+2){transition-delay:.12s}
.dcard[data-rise]:nth-child(3n+3){transition-delay:.24s}
/* Reduce Motion: a gentler lift, never skipped */
.no-motion .dcard[data-rise]{transform:translateY(18px);transition-duration:1s}
.no-motion [data-rise]{opacity:0}
.no-motion [data-rise].in{opacity:1;transform:none}

/* Navy footer with big logo. Bottom padding clears the sticky booking bar. */
footer.foot{background:var(--navy,#00203F);color:rgba(255,255,255,.72);padding:56px 0 132px;font-size:14px;text-align:left;line-height:1.6;margin-top:24px}
footer.foot a{color:rgba(255,255,255,.82);text-decoration:none}
footer.foot a:hover{color:#fff;text-decoration:underline}
.ftop{display:grid;grid-template-columns:1fr;gap:34px 28px}
.fbrand img{width:min(300px,78vw);height:auto;display:block;margin:0 0 16px -6px}
.fbrand p{margin:0 0 18px;max-width:34ch;color:rgba(255,255,255,.72)}
.fsocial{display:flex;gap:10px}
.fsocial a{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);transition:background .2s,transform .2s}
.fsocial a:hover{background:var(--brand,#009DFF);border-color:var(--brand,#009DFF);transform:translateY(-2px)}
.fsocial svg{width:18px;height:18px;fill:#fff}
.fcol h3{margin:0 0 12px;font:800 13px/1.2 Montserrat,Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#fff}
.fcol ul{list-style:none;margin:0;padding:0;display:grid;gap:9px}
.fcol li b{color:#fff;font-weight:600}
.flink{background:none;border:0;padding:0;font:inherit;color:var(--brand,#009DFF);font-weight:700;cursor:pointer}
.flink:hover{text-decoration:underline}
.fbot{margin-top:40px;padding-top:20px;border-top:1px solid rgba(255,255,255,.14);display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:space-between;font-size:12.5px;color:rgba(255,255,255,.55)}
.fbot a{color:rgba(255,255,255,.62)}
@media(min-width:640px){.ftop{grid-template-columns:1fr 1fr}.fbrand{grid-column:1/-1}}
@media(min-width:1024px){.ftop{grid-template-columns:1.6fr 1fr 1.15fr 1fr .8fr}.fbrand{grid-column:auto}.fbrand img{width:340px;margin-left:-8px}footer.foot{padding-top:72px}}
.fbrand img{width:min(330px,82vw)}
@media(min-width:1024px){.fbrand img{width:400px}.ftop{grid-template-columns:1.8fr 1fr 1.15fr 1fr .8fr}}

/* Booking pop-up: centred card covering most of the screen (was a bottom sheet). */
.modal{align-items:center;padding:10px}
.modal-card{width:min(600px,100%);max-height:min(92vh,100%);border-radius:22px;padding:16px 16px 22px;box-shadow:0 30px 80px -20px rgba(0,32,63,.55);animation:mpop .32s var(--ease-out)}
@keyframes mpop{from{transform:scale(.95) translateY(14px);opacity:0}to{transform:none;opacity:1}}
@media(min-width:640px){.modal{padding:24px}.modal-card{padding:22px 24px 26px}}
.modal[data-mode="book"] .tabs{display:none}
.modal[data-mode="book"] .modal-card{padding-top:20px}
.modal[data-mode="book"] .card.form > h2, .modal[data-mode="book"] .card.form > .fhead{padding-right:40px}
.no-motion .modal-card{animation-duration:.6s}
/* demand badges replace seat counts */
.pill.hot{color:var(--warn-700);background:rgba(245,166,35,.18)}
.pill.full{color:var(--fg4);background:rgba(0,32,63,.08)}
.seats.hot{color:var(--warn-700);font-weight:700}
/* Cal.com inline embed inside the booking pop-up */
.calwrap{margin-top:10px;min-height:420px;border-radius:14px;overflow:hidden;background:#fff;border:1px solid var(--border-default)}
/* manage-a-booking mode */
.linkbtn{background:none;border:0;padding:0;font:inherit;color:var(--brand-600);font-weight:600;text-decoration:underline;cursor:pointer}
form.managing .seg{display:none}
form.managing .stepper,form.managing .dots,form.managing [data-steplabel]{display:none}
/* success flow v2: round ticks, simple header, image-led offers */
.done .tick{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#22A05B,#0E9C8E);box-shadow:0 6px 16px -6px rgba(34,160,91,.6);margin:0;flex:0 0 auto}
.done .tick svg{width:20px;height:20px}
.done .tick.big{width:60px;height:60px;margin:0 auto 4px}
.done .tick.big svg{width:30px;height:30px}
.okhead{text-align:center;display:flex;flex-direction:column;gap:4px;padding:4px 0 6px}
.okhead h3{font-size:20px;margin:0}
.okhead p{margin:0;font-size:14px;font-weight:600;color:var(--fg)}
.okhead small{font-size:12.5px;color:var(--fg3)}
.offer{border-radius:18px;overflow:hidden;background:#fff;border:1px solid var(--border-default);box-shadow:0 18px 40px -22px rgba(0,32,63,.35)}
.offer img{display:block;width:100%;height:170px;object-fit:cover;object-position:center 30%}
.offer.qb img{height:190px;object-position:center}
.offer .ov{padding:14px 16px 16px;display:flex;flex-direction:column;gap:8px}
.offer .ov b{font-family:var(--font-display);font-weight:800;font-size:19px;line-height:1.2;letter-spacing:-.3px}
.offer ul{margin:0;padding-left:18px;font-size:13.5px;color:var(--fg2);line-height:1.5}
.offer ul li{margin:0 0 3px}
.offer .btn{margin-top:4px}
.offer .back{text-align:center;width:100%}
.ctabs{display:flex;gap:6px;margin:0 0 10px}
.ctabs button{flex:1;min-height:36px;border:1px solid var(--border-default);border-radius:10px;background:#fff;font:inherit;font-size:13px;font-weight:600;color:var(--fg3);cursor:pointer}
.ctabs button.on{background:#009DFF;border-color:#009DFF;color:#fff}
.classes{display:grid;grid-template-columns:1fr 1fr;gap:7px;max-height:300px;overflow:auto;padding:2px}
.classes label{position:relative;display:block}
.classes input{position:absolute;opacity:0;inset:0;pointer-events:none}
.classes .row{display:flex;justify-content:space-between;align-items:center;gap:6px;min-height:48px;padding:8px 11px;border:1px solid var(--border-default);background:#fff;border-radius:11px;cursor:pointer}
.classes .row b{display:block;font-size:13.5px}.classes .row small{font-size:12px;color:var(--fg3)}
.classes input:checked + .row{border-color:#009DFF;background:rgba(0,157,255,.08);box-shadow:0 0 0 2px rgba(0,157,255,.25)}
.classes .pill{font-size:10px;padding:2px 6px}

/* demand badges: violet, not amber (Hari: yellow reads as anxiety) */
.pill.hot{color:#5B3FD6;background:rgba(122,90,248,.14)}
.seats.hot{color:#5B3FD6}

/* hero eyebrow: navy on white on desktop (blue-on-blue read badly), plus a year-level chip */
.ebrow{display:flex;flex-wrap:wrap;gap:8px;align-self:flex-start}
.ebpill.years{padding-left:12px}
@media(min-width:1024px){
  .ebpill{background:#fff;border-color:rgba(0,32,63,.12);color:var(--navy,#00203F);box-shadow:0 4px 14px -8px rgba(0,32,63,.25)}
  .ebpill.years{background:var(--navy,#00203F);border-color:var(--navy,#00203F);color:#fff}
}
/* trust strip v3: "4.9 on Google" on one line, "Trusted by" under it on phones; one row on desktop */
.trust{display:grid;grid-template-columns:auto auto;align-items:center;column-gap:12px;row-gap:4px;justify-content:start}
.trust .tx{display:contents}
.trust .avs{grid-row:1 / span 2;grid-column:1}
.trust .st{grid-row:1;grid-column:2;display:flex;align-items:center;gap:6px;font-size:15px;align-self:end}
.trust .st .ong{display:inline;font-size:12.5px;font-weight:500;color:rgba(255,255,255,.75);margin-left:2px;grid-row:auto;grid-column:auto}
.trust .tline{grid-row:2;grid-column:2;border-left:0;padding-left:0;align-self:start;font-size:13px;white-space:nowrap}
.hero-g2 .trust .ong{color:rgba(255,255,255,.75)}
.sub br.mob{display:inline}
@media(min-width:1024px){
  .trust{grid-template-columns:auto auto auto;row-gap:0}
  .trust .avs{grid-row:1}
  .trust .st{grid-row:1;grid-column:2;align-self:center}
  .trust .tline{grid-row:1;grid-column:3;border-left:1px solid var(--border-default);padding-left:12px;align-self:center}
  .hero-g2 .trust .ong{color:var(--fg4)}
  .sub br.mob{display:none}
}
@media(min-width:1024px){
  .hero-g2 .trust{column-gap:10px}
  .hero-g2 .trust .avs span{width:36px;height:36px;margin-left:-9px}
  .hero-g2 .trust .st{font-size:14px;gap:5px}
  .hero-g2 .trust .st i{font-size:13px;letter-spacing:.5px}
  .hero-g2 .trust .st .ong{white-space:nowrap;font-size:12px}
  .hero-g2 .trust .tline{font-size:12.5px;padding-left:10px}
}
/* past sitting days */
.days label.past span{opacity:.45}
.days label.past small{display:block;font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg4);margin-top:2px}
/* request-a-call: call-now button under the submit */
.enq .callnow{margin-top:8px;text-align:center}
.enq .offer{margin-top:14px}
/* round ticks anywhere in the pop-up, not only inside the booking panel */
.modal .tick{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#22A05B,#0E9C8E);box-shadow:0 6px 16px -6px rgba(34,160,91,.6);display:flex;align-items:center;justify-content:center;margin:0;flex:0 0 auto}
.modal .tick svg{width:20px;height:20px}
.modal .tick.big{width:60px;height:60px;margin:0 auto 4px}
.modal .tick.big svg{width:30px;height:30px}
.enq .okhead{text-align:center;display:flex;flex-direction:column;gap:4px;padding:4px 0 6px}
.enq .okhead h3{font-size:20px;margin:0}.enq .okhead p{margin:0;font-size:14px;color:var(--fg2)}
/* "on Google" sits on the same centre line as the 4.9 */
.trust .st{align-items:center}
.trust .st .ong{align-self:center;line-height:1;position:relative;top:1px}
/* text links inside the pop-up (Not now / Maybe later) look the same everywhere */
.modal .back{background:none;border:0;color:var(--fg3);font-weight:600;font-size:12.5px;padding:8px 0;cursor:pointer;min-height:44px;text-align:center;width:100%;font-family:inherit}
/* section headers: big Montserrat instead of small grey eyebrows */
.sh{display:flex;flex-direction:column;gap:4px;margin:8px 0 2px}
.sh h2,h2.sh2{font-family:var(--font-display);font-weight:800;font-size:clamp(22px,4.6vw,28px);line-height:1.15;letter-spacing:-.4px;margin:0;color:var(--fg1)}
.sh p{margin:0;font-size:15px;line-height:1.5;color:var(--fg2);max-width:42em}
h2.sh2{margin:6px 0 10px}
.lblrow h2.sh2{margin:0}
.webinar h2.sh2{margin:0 0 12px}
.faqblk h2.sh2,.collageblk h2.sh2{margin:6px 0 12px}
.contactblk .sh{margin:8px 0 12px}
/* "Also included" rows: fixed pill column so the three titles line up */
.webinar .inc > div{grid-template-columns:84px 1fr;align-items:start}
.webinar .inc .pill{justify-self:start;white-space:nowrap}
.sh.small h2{font-size:20px}
.sh.small p{font-size:14px}
.repwrap .sh{margin:0 0 12px}
/* results-call offer card */
.offer.call img{height:180px;object-position:center 40%}
.offer .pricerow{display:flex;justify-content:space-between;align-items:baseline;margin:2px 0 4px}
.offer .price{font-family:var(--font-display);font-weight:800;font-size:28px;letter-spacing:-1px}
.offer .price small{font-family:var(--font-body);font-weight:500;font-size:12px;color:var(--fg3);letter-spacing:0}
.offer .calwrap{margin-top:4px}
.ebpill br.mob{display:inline}
@media(min-width:1024px){.ebpill br.mob{display:none}}
/* glass offer: photo fills the card, copy sits on a frosted panel */
.offer.glass{position:relative;min-height:430px;background:#00203F;display:flex;flex-direction:column;justify-content:flex-end}
.offer.glass img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 12%}
.offer.glass::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,32,63,0) 35%,rgba(0,32,63,.45) 100%)}
.offer.glass .ov{position:relative;margin:170px 10px 10px;background:rgba(255,255,255,.88);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border:1px solid rgba(255,255,255,.75);border-radius:16px;padding:14px 14px 12px;box-shadow:0 12px 30px -14px rgba(0,32,63,.45)}
.offer.glass .calwrap{background:#fff}
.offer.glass{min-height:470px}
.offer.glass img{object-position:center 35%}
.offer.glass .ov{margin-top:200px}
/* stat tiles: tighter top */
.stats > div{padding:9px 12px 10px;gap:3px}
/* dark offer: the day-card treatment. Photo full-bleed, colour wash, white copy */
.offer.dark{position:relative;min-height:440px;color:#fff;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate;border:0;background:#00203F}
.offer.dark img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;z-index:-2}
.offer.dark::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(165deg,rgba(0,157,255,.32) 0%,rgba(0,85,140,.55) 40%,rgba(0,32,63,.95) 100%)}
.offer.dark .ov{position:relative;margin:0;padding:150px 18px 16px;background:none;border:0;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none;gap:8px}
.offer.dark .ev-label{color:rgba(255,255,255,.85)}
.offer.dark .ov b{color:#fff;font-size:22px}
.offer.dark ul{color:rgba(255,255,255,.86)}
.offer.dark .price{color:#fff}.offer.dark .price small{color:rgba(255,255,255,.75)}
.offer.dark .pill.teal{background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);color:#fff}
.offer.dark .back{color:rgba(255,255,255,.8)}
.offer.dark .calwrap{background:#fff}
.offer.call img{height:180px;object-position:center 28%}
.offer.call img{height:190px;object-position:center 45%}

/* day cards reveal: fade and a short rise, no flip (Hari, 12 Sep) */
.dcards{perspective:none}
.dcard[data-rise]{transform:translateY(18px);transition:opacity .7s var(--ease-out),transform .7s var(--ease-out)}
.dcard[data-rise].in{transform:none}
/* hero: never taller than a phone screen, so the copy is on the first screen even inside an embedded/in-app view where 100svh over-reports */
.hero-g2{min-height:clamp(560px,100svh,760px)}
@media(min-width:1024px){.hero-g2{min-height:0}}

/* Byline, sources and the "updated" stamp: visible provenance for readers and
   for answer engines, which look for a date, a named person and a source. */
.upd{margin:10px 0 0;font-size:12px;font-weight:600;color:rgba(255,255,255,.78);letter-spacing:.01em}
.byline{margin:10px 0 0;font-size:12.5px;line-height:1.5;color:var(--fg3)}
.byline b{color:var(--fg2);font-weight:700}
.srcs{margin:6px 0 0;font-size:12px;line-height:1.5;color:var(--fg4)}
.srcs a{color:var(--fg3);text-decoration:underline}
.vh{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sit .s.ok{font-weight:700;color:var(--fg3)}

/* Dates matrix: centres down the side, the four October dates across, a tick
   where a sitting runs. A real <table> (crawlers read it) that looks like a
   calendar, not a spreadsheet. Fits a 360px phone without scrolling. */
.datewrap{margin:4px 0 2px}
.dmx{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden;table-layout:fixed}
.dmx caption{caption-side:top;text-align:left;padding:8px 2px 10px;font:800 11.5px/1.3 Montserrat,Inter,system-ui,sans-serif;letter-spacing:.07em;text-transform:uppercase;color:var(--fg3)}
.dmx thead th{padding:12px 2px 10px;text-align:center;background:#F6F8FB;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg3)}
.dmx thead th:first-child{width:42%}
.dmx thead th b{display:block;margin-top:1px;font:800 21px/1.05 Montserrat,Inter,system-ui,sans-serif;letter-spacing:0;color:var(--fg1)}
.dmx tbody th{text-align:left;padding:12px 10px 12px 14px;font-weight:400;border-top:1px solid var(--line);vertical-align:middle}
.dmx tbody th b{display:block;font-size:14.5px;font-weight:700;color:var(--fg1);line-height:1.25}
.dmx tbody th a{display:inline-block;margin-top:2px;font-size:11.5px;line-height:1.35;color:var(--fg3);text-decoration:none;border-bottom:1px dotted currentColor}
.dmx td{text-align:center;vertical-align:middle;border-top:1px solid var(--line);padding:0 2px}
.dmx .tick{display:inline-grid;place-items:center;width:28px;height:28px;border-radius:50%;background:rgba(34,160,91,.13)}
.dmx .tick::before{content:"";width:11px;height:6px;margin-top:-3px;border-left:2.5px solid #1B8A4C;border-bottom:2.5px solid #1B8A4C;transform:rotate(-45deg)}
.dfacts{list-style:none;margin:12px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.dfacts li{font-size:12.5px;font-weight:600;color:var(--fg2);background:#fff;border:1px solid var(--line);border-radius:980px;padding:6px 12px}
@media(min-width:760px){.dmx thead th:first-child{width:36%}.dmx thead th b{font-size:24px}.dmx tbody th{padding:14px 18px}.dmx .tick{width:32px;height:32px}}

/* Google rating pill next to a section heading: never wrap "on Google", and
   drop under the heading when the row is too narrow. */
.lblrow{flex-wrap:wrap;row-gap:10px}
.gpill{white-space:nowrap;flex:none}

/* Pill text darkened for contrast on their own tints (WCAG AA at 12px bold). */
.pill{color:var(--brand-700)}
.pill.teal{color:#0B7A6F}
.pill.violet{color:#5B3BD6}

/* Trial offer photo: a little taller on desktop, where the modal is wide. */
@media(min-width:700px){.offer:not(.call) img{height:200px}}

/* ATAR masterclass pages: additions on top of assets/site.css. Australian English, no em dashes. */

/* hero photo instead of video: keep the poster rules, warm the wash a touch for the theatre shots */
.hero-g2 .media .poster{object-position:center 40%}
.hero-g2.y10 .media .poster{object-position:center 30%}
.hero-g2 h1 em{font-style:normal}
.hero-g2 .sub{max-width:34em}
/* fact pills under the buttons */
.facts{display:flex;flex-wrap:wrap;gap:6px}
.facts span{font-size:11.5px;font-weight:700;letter-spacing:.2px;padding:6px 10px;border-radius:980px;background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
@media(min-width:1024px){.facts span{background:#fff;border-color:var(--border-default);color:var(--fg2)}}

/* venue strip replaces the marquee content (same component) */

/* what you take home: a photo-led card plus a list */
.take{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:720px){.take{grid-template-columns:1.1fr 1fr;align-items:stretch}}
.take .tphoto{position:relative;border-radius:22px;overflow:hidden;min-height:260px;background:var(--navy);box-shadow:0 14px 32px -16px rgba(0,32,63,.4)}
.take .tphoto img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%}
.take .tphoto .cap{position:absolute;left:14px;bottom:14px;right:14px;color:#fff;font-size:13px;line-height:1.4;text-shadow:0 1px 8px rgba(0,0,0,.5)}
.take .tphoto .cap b{display:block;font-family:var(--font-display);font-weight:800;font-size:18px;letter-spacing:-.3px}
.take .tphoto::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,32,63,0) 45%,rgba(0,32,63,.85) 100%)}
.take .tphoto .cap{z-index:1}
.take ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.take li{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:start;padding:12px 14px;border-radius:16px;background:rgba(255,255,255,.78);border:1px solid var(--border-subtle)}
.take li .ic{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--brand-500),var(--violet))}
.take li .ic svg{width:18px;height:18px}
.take li b{display:block;font-size:14.5px;font-weight:700;color:var(--fg1)}
.take li span{display:block;font-size:13px;color:var(--fg2);line-height:1.45;margin-top:2px}
.take li.hi{background:linear-gradient(120deg,rgba(0,157,255,.12),rgba(122,90,248,.12));border-color:rgba(0,157,255,.3)}

/* subject grid (Year 11) */
.subjects{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}
@media(min-width:720px){.subjects{grid-template-columns:repeat(4,1fr)}}
.subjects button{display:flex;flex-direction:column;align-items:flex-start;gap:4px;min-height:74px;padding:12px 14px;border-radius:16px;border:1px solid var(--border-default);background:rgba(255,255,255,.8);font:inherit;text-align:left;cursor:pointer;transition:transform .2s var(--ease-out),box-shadow .2s}
.subjects button:hover{transform:translateY(-2px);box-shadow:0 14px 28px -18px rgba(0,32,63,.4)}
.subjects button b{font-family:var(--font-display);font-weight:800;font-size:15px;letter-spacing:-.2px;color:var(--fg1)}
.subjects button small{font-size:12px;color:var(--fg3)}
.subjects button .pill{margin-top:2px}
.subjects button.notes{border-color:rgba(122,90,248,.45);background:linear-gradient(135deg,rgba(122,90,248,.12),rgba(255,255,255,.9))}

/* session picker in the pop-up */
.vtabs{display:flex;gap:6px;margin:0 0 10px}
.vtabs button{flex:1;min-height:38px;border:1px solid var(--border-default);border-radius:10px;background:#fff;font:inherit;font-size:13px;font-weight:600;color:var(--fg3);cursor:pointer}
.vtabs button.on{background:var(--brand-500);border-color:var(--brand-500);color:#fff}
.sessions{display:grid;grid-template-columns:1fr;gap:7px;max-height:320px;overflow:auto;padding:2px;margin-bottom:6px}
.sessions .dayh{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--fg4);padding:6px 2px 0}
.sessions label{position:relative;display:block}
.sessions input{position:absolute;opacity:0;inset:0;pointer-events:none}
.sessions .row{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;min-height:50px;padding:8px 12px;border:1px solid var(--border-default);background:#fff;border-radius:11px;cursor:pointer}
.sessions .row b{display:block;font-size:14px}
.sessions .row small{display:block;font-size:12px;color:var(--fg3)}
.sessions input:checked+.row{border-color:var(--brand-500);background:rgba(0,157,255,.08);box-shadow:0 0 0 2px rgba(0,157,255,.25)}
.sessions input:disabled+.row{opacity:.45;cursor:not-allowed}
.sessions .pill{font-size:10px;padding:2px 7px}
.mode{display:flex;gap:6px;margin:4px 0 10px}
.mode label{flex:1;position:relative}
.mode input{position:absolute;opacity:0;inset:0;pointer-events:none}
.mode span{display:flex;align-items:center;justify-content:center;gap:6px;min-height:40px;border:1px solid var(--border-default);border-radius:10px;background:#fff;font-size:13px;font-weight:600;color:var(--fg2);cursor:pointer}
.mode input:checked+span{border-color:var(--brand-500);background:rgba(0,157,255,.1);color:var(--brand-600)}
.form .summary{font-size:13.5px;color:var(--fg2);padding:10px 12px;border-radius:10px;background:rgba(0,157,255,.08);margin-bottom:10px;line-height:1.4}
.form .summary b{color:var(--fg1)}

/* success state */
.done{display:none;flex-direction:column;gap:12px}
.done.on{display:flex}
.done .facts{justify-content:center}
.done .facts span{background:rgba(0,32,63,.06);border-color:transparent;color:var(--fg2);backdrop-filter:none}
.done .btn{margin-top:4px}

/* year 10: ATAR decoded panel */
.decode{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:720px){.decode{grid-template-columns:repeat(3,1fr)}}
.decode > div{padding:16px 16px 14px;border-radius:18px;background:rgba(255,255,255,.8);border:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:6px}
.decode b{font-family:var(--font-display);font-weight:800;font-size:17px;letter-spacing:-.3px;line-height:1.2}
.decode span{font-size:13.5px;color:var(--fg2);line-height:1.45}
.decode .q{font-family:var(--font-display);font-weight:800;font-size:30px;line-height:1;color:var(--brand-500);letter-spacing:-1px}
.decode > div:nth-child(2) .q{color:var(--violet)}
.decode > div:nth-child(3) .q{color:var(--teal)}

/* pitfalls teaser (Year 11) */
.pitfalls{position:relative;border-radius:22px;overflow:hidden;background:var(--navy);color:#fff;padding:22px 20px 20px;isolation:isolate}
.pitfalls img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%;z-index:-2;opacity:.55}
.pitfalls::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,32,63,.55),rgba(0,32,63,.96))}
.pitfalls h3{font-family:var(--font-display);font-weight:800;font-size:22px;letter-spacing:-.4px;margin:0 0 6px;color:#fff}
.pitfalls p{font-size:14px;color:rgba(255,255,255,.85);margin:0 0 12px;max-width:36em}
.pitfalls ol{margin:0;padding:0;list-style:none;display:grid;gap:6px;counter-reset:pf}
.pitfalls li{display:grid;grid-template-columns:28px 1fr;gap:10px;align-items:center;font-size:14px;padding:9px 12px;border-radius:12px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.16)}
.pitfalls li::before{counter-increment:pf;content:counter(pf);font-family:var(--font-display);font-weight:800;font-size:13px;width:28px;height:28px;border-radius:50%;background:var(--brand-500);display:flex;align-items:center;justify-content:center}
.pitfalls li.blur{filter:blur(4px);user-select:none}
.pitfalls .more{margin-top:10px;font-size:13px;color:rgba(255,255,255,.75)}
@media(min-width:720px){.pitfalls ol{grid-template-columns:1fr 1fr}}

/* timetable overview table on the page */
.tt{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:720px){.tt{grid-template-columns:1fr 1fr}}
.tt .venue{border-radius:18px;background:rgba(255,255,255,.8);border:1px solid var(--border-subtle);overflow:hidden}
.tt .venue h3{margin:0;padding:12px 14px;font-family:var(--font-display);font-weight:800;font-size:15px;background:var(--navy);color:#fff;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.tt .venue h3 small{font-family:var(--font-body);font-weight:500;font-size:12px;color:rgba(255,255,255,.75);text-align:right}
.tt table{width:100%;border-collapse:collapse;font-size:13px}
.tt th{text-align:left;font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg4);padding:8px 12px 4px}
.tt td{padding:8px 12px;border-top:1px solid var(--hairline);vertical-align:top}
.tt td:first-child{font-weight:700;color:var(--fg1);white-space:nowrap}
.tt td span{display:block;color:var(--fg2)}
.tt td span small{color:var(--fg4);font-size:11.5px}
.tt td.tbc span{color:var(--warn-700)}
.tt .online{padding:10px 14px;font-size:13px;color:var(--fg2);border-top:1px solid var(--hairline);display:flex;gap:8px;align-items:center}
.tt .online .pill{flex:none}

/* dcard bigger photo band for the run sheet */
.dcard.tall{min-height:320px}

/* nav CTA copy */
.bookbar.two .btn.ghost{font-size:13.5px}

/* phones: the headline sits over the photo, so the wash starts higher and the subject sits higher in frame */
@media(max-width:1023px){
  .hero-g2.y11 .wash{background:linear-gradient(180deg,rgba(8,12,20,.30) 0%,rgba(8,12,20,.62) 34%,rgba(8,12,20,.94) 100%)}
  .hero-g2.y10 .wash{background:linear-gradient(180deg,rgba(8,12,20,.18) 0%,rgba(8,12,20,.58) 36%,rgba(8,12,20,.94) 100%)}
  .hero-g2.y10 .media .poster{object-position:center 8%}
}

/* Lean variants: additions on top of site.css + mc.css */

/* tighter section rhythm */
.flat.lean{gap:34px}
.flat.lean > .sh{margin-bottom:-22px}

/* hero: countdown line, subject chips, three questions */
.hero-g2 .count{font-size:14px;color:rgba(255,255,255,.85);margin:-4px 0 0}
.hero-g2 .count b{color:#fff;font-family:var(--font-display);font-weight:800;font-size:16px}
@media(min-width:1024px){.hero-g2 .count{color:var(--fg2)}.hero-g2 .count b{color:var(--brand-600)}}
.hchips{display:flex;flex-direction:column;gap:8px}
.hchips .lbl{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.hchips > div{display:grid;grid-template-columns:repeat(4,1fr);gap:6px}
.hchips button{position:relative;min-height:44px;border-radius:12px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.14);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);color:#fff;font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;padding:6px 4px;line-height:1.15}
.hchips button i{position:absolute;top:-6px;right:-4px;font-style:normal;font-size:9px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;border-radius:980px;background:var(--violet);color:#fff}
.hchips button:hover{background:rgba(255,255,255,.26)}
@media(min-width:1024px){.hchips .lbl{color:var(--fg3)}.hchips > div{grid-template-columns:repeat(4,minmax(0,1fr));max-width:560px}.hchips button{background:#fff;border-color:var(--border-default);color:var(--fg1);backdrop-filter:none}.hchips button:hover{background:var(--brand-50);border-color:var(--brand-500);color:var(--brand-600)}}
.threeq{display:flex;flex-direction:column;gap:6px}
.threeq .lbl{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:rgba(255,255,255,.75)}
.threeq > div{display:flex;flex-direction:column;gap:2px;padding:9px 12px;border-radius:12px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.25);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.threeq b{font-size:14px;color:#fff}
.threeq .blur{font-size:12.5px;color:rgba(255,255,255,.8);filter:blur(3.5px);user-select:none}
@media(min-width:1024px){.threeq .lbl{color:var(--fg3)}.threeq > div{background:#fff;border-color:var(--border-default);backdrop-filter:none;max-width:520px}.threeq b{color:var(--fg1)}.threeq .blur{color:var(--fg2)}}

/* report card in the hero (Y11 A) and on the page */
.report.rep{gap:6px}
.report.rep .tot b{font-size:38px}
.report.rep .cap b{color:var(--fg1)}
.report.rep.mini{position:absolute;left:12px;right:12px;bottom:12px;padding:12px 14px;margin:0;background:rgba(255,248,242,.96);border-radius:16px;box-shadow:0 20px 50px -20px rgba(0,32,63,.6)}
.report.rep.mini .tot b{font-size:30px}
.report.rep.mini .bar{margin-top:4px}
.report.rep.mini .cap{display:none}
.hero-rep .media .vin{background:var(--navy)}
@media(max-width:1023px){.hero-rep .media .poster{object-position:center 20%}.report.rep.mini{display:none}}
@media(min-width:1024px){.hero-rep .media .vin{aspect-ratio:4/5}.hero-rep .media .poster{object-position:center 25%}.hero-rep .media .vwash{background:linear-gradient(180deg,rgba(8,12,20,0) 30%,rgba(8,12,20,.7) 100%)}}
.report.rep .ring::after{display:none}

/* sit it, see it, fix it */
.ssf{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:700px){.ssf{grid-template-columns:repeat(3,1fr)}}
.ssf > div{display:flex;flex-direction:column;gap:6px;padding:16px;border-radius:18px;background:rgba(255,255,255,.8);border:1px solid var(--border-subtle)}
.ssf .ic{width:38px;height:38px;border-radius:11px;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(135deg,var(--brand-500),var(--violet))}
.ssf .ic svg{width:18px;height:18px}
.ssf b{font-family:var(--font-display);font-weight:800;font-size:18px;letter-spacing:-.3px}
.ssf span:not(.ic){font-size:14px;color:var(--fg2);line-height:1.45}
.ssf > div:nth-child(2) .ic{background:linear-gradient(135deg,var(--violet),#E85FA8)}
.ssf > div:nth-child(3) .ic{background:linear-gradient(135deg,var(--teal),var(--brand-500))}

/* tutor cards */
.tutors{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:700px){.tutors{grid-template-columns:repeat(4,1fr)}}
.tutor{position:relative;display:flex;flex-direction:column;border:0;padding:0;border-radius:18px;overflow:hidden;background:#fff;box-shadow:0 14px 32px -18px rgba(0,32,63,.35);font:inherit;text-align:left;cursor:default;transition:transform .2s var(--ease-out),box-shadow .2s}
.tutor[data-open-book]{cursor:pointer}
.tutor[data-open-book]:hover{transform:translateY(-3px);box-shadow:0 22px 40px -18px rgba(0,32,63,.45)}
.tutor img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center 18%;display:block}
.tutor .tw{display:flex;flex-direction:column;gap:4px;padding:10px 12px 12px}
.tutor .tw .pill{align-self:flex-start;font-size:10px;padding:2px 7px;background:rgba(0,157,255,.12);color:var(--brand-600)}
.tutor .tw b{font-family:var(--font-display);font-weight:800;font-size:16px;letter-spacing:-.3px;color:var(--fg1)}
.tutor .tw span:not(.pill){font-size:12.5px;color:var(--fg2);line-height:1.4}
.tutor .tw em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--brand-600);margin-top:4px}

/* lean timeline */
.timeline.lean{display:flex;flex-direction:column;gap:12px}
.timeline.lean .tl{display:flex;flex-direction:column;gap:8px}
.timeline.lean .tr{display:grid;grid-template-columns:52px 1fr 76px;gap:10px;align-items:center;padding:10px 10px 10px 12px;border-radius:16px;background:rgba(255,255,255,.8);border:1px solid var(--border-subtle)}
.timeline.lean .t{font-family:var(--font-display);font-weight:800;font-size:14px;color:var(--brand-600);font-variant-numeric:tabular-nums}
.timeline.lean .w b{display:block;font-size:15px;font-weight:700;color:var(--fg1)}
.timeline.lean .w span{display:block;font-size:13px;color:var(--fg2);line-height:1.4;margin-top:2px}
.timeline.lean img{width:76px;height:76px;object-fit:cover;object-position:center 20%;border-radius:12px}
@media(min-width:700px){.timeline.lean .tr{grid-template-columns:64px 1fr 96px}.timeline.lean img{width:96px;height:72px}}

/* take home, lean, with the PDF card */
.take.lean{grid-template-columns:1fr}
@media(min-width:700px){.take.lean{grid-template-columns:1.2fr 1fr;align-items:start}}
.pdfcard{display:flex;flex-direction:column;gap:6px;padding:18px;border-radius:18px;background:linear-gradient(135deg,rgba(0,157,255,.12),rgba(122,90,248,.14));border:1px solid rgba(0,157,255,.3)}
.pdfcard b{font-family:var(--font-display);font-weight:800;font-size:18px;letter-spacing:-.3px;line-height:1.2}
.pdfcard p{margin:0;font-size:13.5px;color:var(--fg2)}
.pdfcard .btn{margin-top:8px;background:#fff;color:var(--brand-600);border:1px solid var(--border-default)}

/* two-year timeline */
.tl2y{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr;gap:8px;counter-reset:ty}
.tl2y li{position:relative;display:grid;grid-template-columns:78px 1fr;gap:10px;align-items:start;padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.8);border:1px solid var(--border-subtle)}
.tl2y .when{font-family:var(--font-display);font-weight:800;font-size:12px;color:var(--brand-600);letter-spacing:.02em;padding-top:2px}
.tl2y b{display:block;font-size:14.5px;color:var(--fg1)}
.tl2y li > span:last-child{display:block;font-size:12.5px;color:var(--fg2);line-height:1.4;grid-column:2}
.tl2y li:first-child{background:linear-gradient(135deg,rgba(0,157,255,.14),rgba(255,255,255,.9));border-color:rgba(0,157,255,.35)}
.tl2y li:first-child .when{color:var(--violet)}
@media(min-width:700px){
  .tl2y{grid-template-columns:repeat(6,1fr);gap:6px}
  .tl2y li{grid-template-columns:1fr;gap:4px;padding:14px 12px;min-height:130px}
  .tl2y li > span:last-child{grid-column:1}
  .tl2y li::after{content:"";position:absolute;right:-6px;top:22px;width:6px;height:2px;background:var(--border-default)}
  .tl2y li:last-child::after{display:none}
  .tl2y.compact li{min-height:0;padding:10px 12px}
  .tl2y.compact li > span:last-child{display:none}
}

/* quiz */
.quiz{display:flex;flex-direction:column;gap:12px;padding:18px 16px;border-radius:22px;background:var(--navy);color:#fff}
.quiz .sh h2{color:#fff}.quiz .sh p{color:rgba(255,255,255,.8)}
.qform{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:700px){.qform{grid-template-columns:1fr 1fr}.qform .btn{grid-column:1 / -1;justify-self:start;min-width:240px}}
.qq{display:flex;flex-direction:column;gap:8px;padding:12px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14)}
.qq b{font-size:14px}
.qq .opts{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.qq label{position:relative}
.qq input{position:absolute;opacity:0;inset:0;pointer-events:none}
.qq span{display:flex;align-items:center;justify-content:center;min-height:38px;padding:6px 8px;border-radius:10px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);font-size:13px;cursor:pointer;text-align:center}
.qq input:checked+span{background:var(--brand-500);border-color:var(--brand-500)}
.qq.right span.pick{background:#22A05B;border-color:#22A05B}
.qq.wrong span.pick{background:#E04141;border-color:#E04141}
.qq.wrong span.key{outline:2px solid #22A05B}
.qresult{display:flex;flex-direction:column;gap:8px;padding:16px;border-radius:16px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2)}
.qresult b{font-family:var(--font-display);font-weight:800;font-size:28px;letter-spacing:-.6px}
.qresult p{margin:0;font-size:14px;color:rgba(255,255,255,.85)}
.qresult .btn{margin-top:6px;align-self:flex-start;min-width:220px}

/* student quotes */
.quotes{display:grid;grid-template-columns:1fr;gap:8px}
@media(min-width:700px){.quotes{grid-template-columns:repeat(3,1fr)}}
.quotes blockquote{margin:0;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.8);border:1px solid var(--border-subtle);border-left:3px solid var(--brand-500)}
.quotes p{margin:0 0 6px;font-size:14.5px;color:var(--fg1);line-height:1.45}
.quotes cite{font-style:normal;font-size:12px;color:var(--fg3)}

/* dates, lean */
.dates{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:700px){.dates{grid-template-columns:1fr 1fr}}
.dv{border-radius:18px;background:rgba(255,255,255,.8);border:1px solid var(--border-subtle);overflow:hidden}
.dv h3{margin:0;padding:12px 14px;background:var(--navy);color:#fff;font-family:var(--font-display);font-weight:800;font-size:15px;display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;align-items:center}
.dv h3 small{font-family:var(--font-body);font-weight:500;font-size:12px;color:rgba(255,255,255,.75)}
.dv ul{list-style:none;margin:0;padding:6px 14px 10px}
.dv li{display:grid;grid-template-columns:96px 1fr;gap:8px;padding:8px 0;border-bottom:1px solid var(--hairline);font-size:13.5px}
.dv li:last-child{border-bottom:0}
.dv li b{color:var(--fg1)}
.dv li span{color:var(--fg2)}
.dv li small{color:var(--fg4);font-size:11.5px}
.dv li.tbc span{color:var(--warn-700)}
.bookcard.lean{margin-top:2px}

/* Y11 B report block, not in hero */
.v-b .repwrap .report.rep{max-width:560px}

/* fixes after first screenshots */
/* 1. phones: hero copy never sits under the fixed nav, and the hero can grow */
@media(max-width:1023px){.hero-g2 .copy{padding-top:104px}.hero-g2{min-height:clamp(560px,100svh,860px)}}
/* 2. tutor photos: aspect ratio, not the attribute height */
.tutor img{height:auto;aspect-ratio:4/5}
/* 3. desktop run sheet: keep the lean row layout, beat the five-column GATE timeline */
@media(min-width:1024px){
  .timeline.lean .tl{display:flex;flex-direction:column;gap:8px}
  .timeline.lean .tl .tr{display:grid;grid-template-columns:64px 1fr 96px;flex-direction:row;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--border-subtle);background:rgba(255,255,255,.8);border-radius:16px;box-shadow:none}
  .timeline.lean .tl img{width:96px;height:72px;aspect-ratio:auto;order:0}
  .timeline.lean .tl .w{padding:0}
}
/* 4. quiz result stays hidden until scored */
.qresult[hidden]{display:none}

/* Final pages: answer-first hero, breadcrumbs, table, who-runs-it, sources */
.hero-g2 h1{font-size:30px;letter-spacing:-.9px}
.hero-g2 .hook{font-family:var(--font-display);font-weight:800;font-size:26px;line-height:1.08;letter-spacing:-.8px;color:#fff;margin:-2px 0 0}
.hero-g2 .hook em{font-style:normal;color:#A5D8FF}
.hero-g2 .answer{font-size:14.5px;line-height:1.5;color:rgba(255,255,255,.88);max-width:36em}
.hero-g2 .updated{font-size:12px;color:rgba(255,255,255,.7);margin:-4px 0 0}
.hero-g2 .orcall{font-size:13px;color:rgba(255,255,255,.8);margin:-2px 0 0}
.hero-g2 .orcall a{color:#fff;text-decoration:underline;font-weight:600}
@media(min-width:1024px){
  .hero-g2 h1{font-size:40px;letter-spacing:-1.6px;color:var(--fg1)}
  .hero-g2 .hook{font-size:34px;color:var(--fg1)}.hero-g2 .hook em{color:var(--brand-500)}
  .hero-g2 .answer{color:var(--fg2);font-size:15.5px}
  .hero-g2 .updated{color:var(--fg4)}
  .hero-g2 .orcall{color:var(--fg3)}.hero-g2 .orcall a{color:var(--brand-600)}
  .hero-g2 .media .vin{aspect-ratio:9/16;max-height:none}
  .hero-g2 .media{width:min(100%,360px);justify-self:center}
}
@media(max-width:1023px){
  .hero-g2 .copy{padding-top:96px;gap:10px}
  .hero-g2 .answer{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
  .hero-g2 .hchips > div{grid-template-columns:repeat(4,1fr)}
}
.crumbs{font-size:12.5px;color:var(--fg3);margin:-8px 0 -18px}
.crumbs a{color:var(--fg2);text-decoration:underline}
.tablewrap{overflow-x:auto;border-radius:18px;border:1px solid var(--border-subtle);background:rgba(255,255,255,.85)}
table.tt2{width:100%;border-collapse:collapse;font-size:14px;min-width:520px}
table.tt2 caption{text-align:left;padding:12px 14px 6px;font-size:12.5px;color:var(--fg3)}
table.tt2 th{text-align:left;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--fg4);padding:8px 14px;border-bottom:1px solid var(--border-subtle)}
table.tt2 tbody th{font-family:var(--font-body);font-size:14px;letter-spacing:0;text-transform:none;color:var(--fg1);font-weight:700;border-bottom:1px solid var(--hairline)}
table.tt2 td{padding:9px 14px;border-bottom:1px solid var(--hairline);color:var(--fg2);vertical-align:top}
table.tt2 td small{color:var(--fg4);font-size:12px}
table.tt2 tr.tbc td{color:var(--warn-700)}
.sources,.links{font-size:12.5px;color:var(--fg3);line-height:1.6;margin:0}
.sources a,.links a{color:var(--fg2);text-decoration:underline}
.links{margin-top:-24px}
.bookcard.lean .btn.ghost{text-align:center}

.fcol h3.fh{margin:0 0 12px;font:800 13px/1.2 Montserrat,Inter,system-ui,sans-serif;letter-spacing:.06em;text-transform:uppercase;color:#fff}
.hero-g2 .answer{order:0}
@media(max-width:699px){.tutor img{aspect-ratio:1/1;object-position:center 12%}}

/* glass cards: photo fills the card, copy on a frosted panel (same treatment as the GATE offer cards) */
.gcard{position:relative;display:flex;flex-direction:column;justify-content:flex-end;min-height:300px;border:0;padding:0;border-radius:20px;overflow:hidden;background:var(--navy);box-shadow:0 18px 40px -22px rgba(0,32,63,.45);font:inherit;text-align:left;isolation:isolate}
.gcard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 15%;z-index:-1;transition:transform 6s var(--ease-out)}
.gcard:hover img{transform:scale(1.04)}
.gcard::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,32,63,0) 45%,rgba(0,32,63,.4) 100%);z-index:0}
.gcard .gp{position:relative;z-index:1;margin:10px;padding:12px 14px 13px;border-radius:14px;background:rgba(255,255,255,.86);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border:1px solid rgba(255,255,255,.75);box-shadow:0 12px 30px -14px rgba(0,32,63,.45);display:flex;flex-direction:column;gap:4px}
.gcard .gp .pill{align-self:flex-start;font-size:10px;padding:2px 7px;background:rgba(0,157,255,.14);color:var(--brand-600)}
.gcard .gp .tpill{align-self:flex-start;font-family:var(--font-display);font-weight:800;font-size:11.5px;letter-spacing:.2px;padding:3px 9px;border-radius:980px;background:var(--brand-500);color:#fff}
.gcard .gp b{font-family:var(--font-display);font-weight:800;font-size:17px;letter-spacing:-.3px;line-height:1.15;color:var(--fg1)}
.gcard .gp span:not(.pill):not(.tpill){font-size:12.5px;color:var(--fg2);line-height:1.4}
.gcard .gp em{font-style:normal;font-size:12.5px;font-weight:700;color:var(--brand-600);margin-top:2px}
.gcard.tutor-g{cursor:pointer;min-height:340px}
.gcard.tutor-g:hover{box-shadow:0 26px 48px -22px rgba(0,32,63,.55)}
.gtutors{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:700px){.gtutors{grid-template-columns:repeat(4,1fr)}}
@media(max-width:699px){.gcard.tutor-g{min-height:300px}}
.gsess{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:700px){.gsess{grid-template-columns:repeat(3,1fr)}}
.gcard.sess-g{min-height:270px}
.gcard.sess-g img{object-position:center 25%}
/* hero without the hook: the H1 carries the headline, the answer sits under it */
.hero-g2 h1{font-size:34px;letter-spacing:-1.1px}
@media(min-width:1024px){.hero-g2 h1{font-size:46px;letter-spacing:-1.9px}}
@media(max-width:1023px){.hero-g2 .answer{-webkit-line-clamp:5}}
.take.lean ul.two{grid-template-columns:1fr}
@media(min-width:700px){.take.lean{grid-template-columns:1fr}.take.lean ul.two{grid-template-columns:1fr 1fr}}
.timeline.lean,.tablewrap{scroll-margin-top:96px}
.bookbar.two .btn.ghost{text-align:center;display:flex;align-items:center;justify-content:center}
/* phones: the whole timetable fits without sideways scrolling */
@media(max-width:699px){table.tt2{min-width:0;font-size:12.5px}table.tt2 th,table.tt2 td{padding:8px 7px}table.tt2 tbody th{font-size:12.5px;white-space:nowrap}table.tt2 caption{padding:10px 10px 4px;font-size:11.5px}table.tt2 td small{font-size:11px}}

/* subject cards: the WACE masterclass treatment (photo, colour wash from the middle, frosted tag, copy on the photo) */
.subjects.sgrid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}
@media(min-width:720px){.subjects.sgrid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}}
.scard{position:relative;isolation:isolate;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;min-height:236px;border-radius:20px;border:1px solid rgba(255,255,255,.7);background:var(--navy);color:#fff;text-align:left;padding:0;cursor:pointer;font:inherit;box-shadow:0 16px 34px -18px rgba(0,32,63,.5);transition:transform .35s var(--ease-out),box-shadow .35s var(--ease-out)}
.scard:hover{transform:translateY(-3px);box-shadow:0 22px 40px -18px rgba(0,32,63,.55)}
.scard img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 15%;z-index:-2;transition:transform 6s var(--ease-out)}
.scard:hover img{transform:scale(1.06)}
.swash{position:absolute;inset:0;z-index:-1}
.blue .swash{background:linear-gradient(180deg,rgba(0,32,63,0) 0%,rgba(0,32,63,0) 36%,rgba(0,110,190,.55) 64%,rgba(0,32,63,.94) 100%)}
.violet .swash{background:linear-gradient(180deg,rgba(30,20,90,0) 0%,rgba(30,20,90,0) 36%,rgba(90,60,200,.58) 64%,rgba(30,20,90,.94) 100%)}
.teal .swash{background:linear-gradient(180deg,rgba(4,54,48,0) 0%,rgba(4,54,48,0) 36%,rgba(11,120,108,.58) 64%,rgba(4,54,48,.94) 100%)}
.amber .swash{background:linear-gradient(180deg,rgba(58,38,3,0) 0%,rgba(58,38,3,0) 36%,rgba(190,115,15,.58) 64%,rgba(58,38,3,.94) 100%)}
.indigo .swash{background:linear-gradient(180deg,rgba(14,16,50,0) 0%,rgba(14,16,50,0) 36%,rgba(60,66,170,.6) 64%,rgba(14,16,50,.94) 100%)}
.rose .swash{background:linear-gradient(180deg,rgba(46,7,32,0) 0%,rgba(46,7,32,0) 36%,rgba(170,40,110,.58) 64%,rgba(46,7,32,.94) 100%)}
.cyan .swash{background:linear-gradient(180deg,rgba(3,38,48,0) 0%,rgba(3,38,48,0) 36%,rgba(14,116,144,.6) 64%,rgba(3,38,48,.94) 100%)}
.scard .ex{position:absolute;top:10px;left:10px;font-size:11px;font-weight:700;color:#fff;padding:5px 10px;border-radius:980px;background:rgba(0,32,63,.38);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.scard .sb{display:flex;flex-direction:column;gap:6px;padding:12px 12px 13px}
.scard .sn{font-family:var(--font-display);font-weight:800;font-size:16.5px;line-height:1.15;letter-spacing:-.02em}
.scard .sl{font-size:12.5px;line-height:1.4;color:rgba(255,255,255,.88)}
.scard .go{margin-top:2px;display:flex;align-items:center;justify-content:space-between;gap:6px;font-size:12px;font-weight:700;color:#fff;white-space:nowrap}
.scard .go svg{width:16px;height:16px;flex:0 0 auto}
@media(min-width:720px){.scard{min-height:300px}.scard .sb{padding:14px 14px 15px}.scard .sn{font-size:18px}}
/* run sheet: the GATE day cards, three per row */
@media(min-width:720px){.dcards.six{grid-template-columns:repeat(3,minmax(0,1fr))}.dcards.six .dcard{grid-column:auto!important;min-height:320px}}
.dcards.six .dcard img{object-position:center 22%}
.updated-foot{font-size:12px;color:var(--fg4);margin:-24px 0 0}
.hero-g2 .answer{font-size:15px}
.sh .count{margin-top:6px;font-size:14px;color:var(--fg2)}
.sh .count b{font-family:var(--font-display);font-weight:800;color:var(--brand-600)}
.scard .sb{margin-top:auto}
.scard:focus-visible{outline:3px solid var(--brand-500);outline-offset:2px}
@media(max-width:699px){.scard img{object-position:center 4%}}
.hero-g2 .answer b{color:#fff;font-weight:700}
.hero-g2 .answer br.mob{display:inline}
@media(min-width:1024px){.hero-g2 .answer b{color:var(--fg1)}.hero-g2 .answer br.mob{display:none}}
@media(max-width:1023px){.hero-g2 .answer{-webkit-line-clamp:6}}
/* full-width content on desktop: no booking rail on these pages, so the grid collapses to one column (same width as the WACE page) */
@media(min-width:1024px){
  .flat.lean{display:flex;flex-direction:column;gap:40px}
  .flat.lean > *{grid-column:auto}
  .subjects.sgrid{gap:16px}
  .dcards.six{gap:16px}
  .ssf{gap:14px}
  .take.lean ul.two{grid-template-columns:repeat(3,1fr)}
  .quotes{grid-template-columns:repeat(3,1fr)}
  .rgrid.four{grid-template-columns:repeat(3,1fr)}
  .faqblk .faq{columns:2;column-gap:18px}
  .faqblk .faq details{break-inside:avoid;margin-bottom:10px}
  .dates{grid-template-columns:1fr}
  .report.rep{max-width:none}
  .v-final .repwrap{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:center}
  .v-final .repwrap .sh{margin:0}
  .tl2y li{min-height:150px}
  .quiz .qform{grid-template-columns:repeat(4,1fr)}
  .quiz .qform .btn{grid-column:1 / -1}
}
@media(min-width:1024px){
  .v-final .tablewrap,.v-final .bookcard.lean,.v-final .timeline.lean,.v-final .tl2y{width:100%;max-width:none}
  .v-final .bookcard.lean{display:grid;grid-template-columns:1fr auto auto;gap:10px 16px;align-items:center}
  .v-final .bookcard.lean h3{grid-column:1;margin:0}
  .v-final .bookcard.lean .cap{grid-column:1;grid-row:2;margin:0}
  .v-final .bookcard.lean .btn{grid-row:1 / span 2;width:auto;min-width:220px;margin:0}
  .v-final .bookcard.lean .btn.ghost{grid-column:3}
  .faqblk .faq{columns:auto;display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}
  .faqblk .faq details{margin-bottom:0}
  table.tt2{min-width:0}
}
/* rainbow word in the H1, same as the WACE page: gradient text on desktop, gradient underline band on phones */
.hero-g2 h1 em{font-style:normal;background:linear-gradient(115deg,#1E88E5 0%,#7A6BE0 34%,#E85FA8 68%,#FF9057 100%);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
@media(max-width:1023px){.hero-g2 h1 em{color:#fff;-webkit-text-fill-color:#fff;background:linear-gradient(115deg,rgba(30,136,229,.95) 0%,rgba(122,107,224,.95) 55%,rgba(232,95,168,.95) 100%) 0 100%/100% 44% no-repeat;-webkit-background-clip:border-box;background-clip:border-box;padding:0 .06em;-webkit-box-decoration-break:clone;box-decoration-break:clone}}

/* review cards */
.rgrid2{display:grid;grid-template-columns:1fr;gap:12px}
@media(min-width:700px){.rgrid2{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.rgrid2{grid-template-columns:repeat(3,1fr);gap:14px}}
.rv2{margin:0;display:flex;flex-direction:column;gap:10px;padding:18px 18px 16px;border-radius:20px;background:rgba(255,255,255,.86);border:1px solid rgba(255,255,255,.8);box-shadow:0 16px 34px -20px rgba(0,32,63,.28);position:relative}
.rv2::before{content:"“";position:absolute;top:6px;right:16px;font-family:var(--font-display);font-weight:800;font-size:64px;line-height:1;color:rgba(0,157,255,.12)}
.rv2 .stars{color:#FACC15;font-size:14px;letter-spacing:2px}
.rv2 blockquote{margin:0;font-size:15px;line-height:1.5;color:var(--fg1)}
.rv2 figcaption{display:grid;grid-template-columns:36px 1fr 20px;gap:10px;align-items:center;margin-top:auto;padding-top:10px;border-top:1px solid var(--hairline)}
.rv2 .av{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;font-family:var(--font-display);font-weight:800;font-size:12px}
.rv2 figcaption b{display:block;font-size:13.5px;color:var(--fg1)}
.rv2 figcaption small{display:block;font-size:11.5px;color:var(--fg3)}
.rv2 .g{width:20px;height:20px}

/* six things (Year 10), first section under the marquee */
.sixq{display:grid;grid-template-columns:1fr;gap:10px}
@media(min-width:700px){.sixq{grid-template-columns:repeat(2,1fr)}}
@media(min-width:1024px){.sixq{grid-template-columns:repeat(3,1fr);gap:14px}}
.sixq > div{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:16px;background:rgba(255,255,255,.86);border:1px solid var(--border-subtle);box-shadow:0 12px 28px -20px rgba(0,32,63,.25)}
.sixq b{font-family:var(--font-display);font-weight:800;font-size:15.5px;letter-spacing:-.2px;line-height:1.25;color:var(--fg1)}
.sixq .blur{font-size:13px;color:var(--fg2);filter:blur(3.5px);user-select:none}

/* multi-session picker */
.sessions.multi{max-height:min(46vh,420px)}
.srow{display:flex;flex-direction:column;gap:6px;padding:0 0 4px}
.srow .pick{position:relative;display:block}
.srow .pick input{position:absolute;opacity:0;inset:0;pointer-events:none}
.srow .pick .row{display:grid;grid-template-columns:22px 1fr auto;gap:10px;align-items:center;min-height:50px;padding:8px 12px;border:1px solid var(--border-default);background:#fff;border-radius:11px;cursor:pointer}
.srow .pick .row::before{content:"";width:20px;height:20px;border-radius:6px;border:2px solid var(--border-default);background:#fff;grid-row:1;grid-column:1}
.srow .pick input:checked+.row{border-color:var(--brand-500);background:rgba(0,157,255,.08);box-shadow:0 0 0 2px rgba(0,157,255,.25)}
.srow .pick input:checked+.row::before{border-color:var(--brand-500);background:var(--brand-500) url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>") center/14px no-repeat}
.srow .pick input:focus-visible+.row{outline:2px solid var(--brand-500);outline-offset:2px}
.srow.past .pick .row{opacity:.45;cursor:not-allowed}
.srow .pick .row b{display:block;font-size:14px}
.srow .pick .row small{display:block;font-size:12px;color:var(--fg3)}
.srow .pick .pill{font-size:10px;padding:2px 7px}
.joinrow{display:flex;gap:6px;padding:0 0 4px 32px}
.jbtn{flex:1;min-height:34px;border:1px solid var(--border-default);border-radius:9px;background:#fff;font:inherit;font-size:12px;font-weight:600;color:var(--fg3);cursor:pointer;padding:0 8px}
.jbtn.on{background:rgba(0,157,255,.12);border-color:var(--brand-500);color:var(--brand-600)}
.sumrow{display:flex;flex-direction:column;gap:1px;padding:6px 0;border-bottom:1px solid var(--hairline)}
.sumrow:last-child{border-bottom:0}
.sumrow b{font-size:13.5px;color:var(--fg1)}
.sumrow span{font-size:12.5px;color:var(--fg2)}
.sumlist{padding:8px 12px;border-radius:12px;background:rgba(0,157,255,.08)}
.joinrow[hidden]{display:none}
/* six things: questions in the body face with a number badge, so they read apart from the section header */
.sixq{counter-reset:sq}
.sixq > div{position:relative;padding-left:52px}
.sixq > div::before{counter-increment:sq;content:counter(sq);position:absolute;left:14px;top:14px;width:26px;height:26px;border-radius:50%;background:var(--brand-500);color:#fff;font-family:var(--font-display);font-weight:800;font-size:12.5px;display:flex;align-items:center;justify-content:center}
.sixq b{font-family:var(--font-body);font-weight:600;font-size:15px;letter-spacing:0;line-height:1.35;color:var(--fg1)}
/* Year 10: Term 4 trial offer inside the pop-up (GATE page offer card) */
.done .offer.trial{margin-top:4px}
.offer.trial img{height:150px;object-position:center 30%}
.offer.trial .ov .ev-label{color:var(--brand-600)}
.offer.trial .classes{grid-template-columns:1fr;max-height:260px}
@media(min-width:640px){.offer.trial .classes{grid-template-columns:1fr 1fr}}
.offer.trial .classes .row{min-height:44px}
.offer.trial .classes .row b{font-size:13.5px}
.offer.trial .classes input:checked + .row{border-color:#009DFF;background:rgba(0,157,255,.08);box-shadow:0 0 0 2px rgba(0,157,255,.25)}
.scard.quiet{cursor:default}.scard.quiet:hover{transform:none}
/* desktop hero: bigger type and buttons, copy column gets more room */
@media(min-width:1024px){
  .hero-g2{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:48px;padding-top:120px;padding-bottom:56px}
  .hero-g2 .copy{gap:20px}
  .hero-g2 .ebpill{font-size:12.5px;padding:8px 14px 8px 12px}
  .hero-g2 h1{font-size:58px;letter-spacing:-2.4px;line-height:.98}
  .hero-g2 .answer{font-size:17.5px;max-width:36em;line-height:1.5}
  .hero-g2 .trust .avs span{width:42px;height:42px}
  .hero-g2 .trust .st{font-size:16px}
  .hero-g2 .trust .st .ong{font-size:13px}
  .hero-g2 .trust .tline{font-size:14px}
  .hero-g2 .ctas .btn{min-height:54px;font-size:16.5px;min-width:230px;padding:0 26px}
  .hero-g2 .media{width:min(100%,400px)}
}
@media(min-width:1280px){.hero-g2 h1{font-size:64px;letter-spacing:-2.7px}}
/* desktop hero: wider copy column so the headline sits on three lines */
@media(min-width:1024px){
  .hero-g2{max-width:1240px;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:56px}
  .hero-g2 h1{font-size:54px;letter-spacing:-2.2px}
  .hero-g2 .answer{max-width:40em}
  .hero-g2 .media{width:min(100%,360px)}
}
@media(min-width:1280px){.hero-g2 h1{font-size:60px;letter-spacing:-2.5px}}
/* Year 10: why families come, photo bento */
.whygrid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(min-width:900px){.whygrid{grid-template-columns:1.4fr 1fr 1fr;grid-template-rows:230px 230px;gap:14px}.wy.big{grid-row:1 / span 2}}
.wy{position:relative;margin:0;min-height:200px;border-radius:20px;overflow:hidden;background:var(--navy);isolation:isolate;box-shadow:0 16px 34px -18px rgba(0,32,63,.45)}
.wy.big{grid-column:1 / -1;min-height:300px}
@media(min-width:900px){.wy.big{grid-column:auto;min-height:0}}
.wy img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;z-index:-2;transition:transform 6s var(--ease-out)}
.wy:hover img{transform:scale(1.05)}
.wy::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,32,63,0) 35%,rgba(0,32,63,.9) 100%)}
.wy figcaption{position:absolute;left:0;right:0;bottom:0;padding:14px 14px 15px;color:#fff;display:flex;flex-direction:column;gap:4px}
.wy figcaption b{font-family:var(--font-display);font-weight:800;font-size:17px;letter-spacing:-.3px;line-height:1.15}
.wy figcaption span{font-size:12.5px;line-height:1.4;color:rgba(255,255,255,.88)}
.wy.big figcaption{padding:20px 20px 22px}
.wy.big figcaption b{font-size:24px}
.wy.big figcaption span{font-size:14.5px;max-width:34em}
@media(max-width:560px){.wy figcaption span{display:none}.wy.big figcaption span{display:block}}
/* bento: take the full width inside the desktop column */
.whygrid{width:100%}
/* venue photo on each session row */
.srow .pick .row{grid-template-columns:22px 48px 1fr auto}
.srow .pick .vthumb{width:48px;height:48px;border-radius:10px;object-fit:cover;object-position:center 35%;grid-column:2;grid-row:1}
.srow .pick .row::before{grid-column:1}
.offer.trial .classes{max-height:320px}
/* trial offer v2: perks, price, day chips, subjects, picked list */
.offer.trial img{height:170px;object-position:center 30%}
.perks{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:2px 0}
.perks > div{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:12px;background:rgba(0,157,255,.06);border:1px solid rgba(0,157,255,.18)}
.perks > div:nth-child(2){background:rgba(122,90,248,.07);border-color:rgba(122,90,248,.22)}
.perks .pill{align-self:flex-start;font-size:10px;padding:2px 7px}
.perks b{font-family:var(--font-display);font-weight:800;font-size:15px;color:var(--fg1)}
.perks span:not(.pill){font-size:12px;line-height:1.4;color:var(--fg2)}
@media(max-width:480px){.perks{grid-template-columns:1fr}}
.pricepill{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:8px 12px;border-radius:12px;background:linear-gradient(115deg,rgba(30,136,229,.12),rgba(232,95,168,.12))}
.pricepill b{font-family:var(--font-display);font-weight:800;font-size:17px;background:linear-gradient(115deg,#1E88E5,#7A6BE0 50%,#E85FA8);-webkit-background-clip:text;background-clip:text;color:transparent}
.pricepill span{font-size:12px;color:var(--fg2)}
.offer.trial .lbl{display:block;margin:6px 0 0;font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--fg3)}
.daychips{display:flex;gap:6px;flex-wrap:wrap}
.daychips button{display:flex;flex-direction:column;align-items:flex-start;gap:1px;min-height:48px;padding:6px 12px;border:1px solid var(--border-default);border-radius:11px;background:#fff;font:inherit;cursor:pointer;text-align:left}
.daychips button b{font-size:13.5px;color:var(--fg1)}
.daychips button small{font-size:11.5px;color:var(--fg3);line-height:1.3}
.daychips button.on{border-color:#009DFF;background:rgba(0,157,255,.1);box-shadow:0 0 0 2px rgba(0,157,255,.22)}
.offer.trial .subjs{grid-template-columns:repeat(3,1fr);max-height:none}
@media(max-width:480px){.offer.trial .subjs{grid-template-columns:1fr 1fr}}
.edge{display:flex;gap:10px;align-items:flex-start;padding:10px 12px;border-radius:12px;border:1px solid rgba(122,90,248,.25);background:rgba(122,90,248,.06);cursor:pointer}
.edge input{margin-top:3px;width:18px;height:18px;accent-color:#7A5AF8}
.edge b{display:block;font-size:13.5px;color:var(--fg1)}
.edge small{display:block;font-size:12px;color:var(--fg2)}
.picked{display:flex;flex-direction:column;gap:5px;padding:10px 12px;border-radius:12px;background:rgba(0,157,255,.06)}
.pk{display:flex;justify-content:space-between;align-items:center;gap:8px;font-size:12.5px;color:var(--fg2)}
.pk b{color:var(--fg1)}
.pk button{width:26px;height:26px;border-radius:50%;border:1px solid var(--border-default);background:#fff;cursor:pointer;font-size:15px;line-height:1;color:var(--fg3);flex:none}
/* trial offer v2: keep inner labels in the body face (the card title rule was bleeding in) */
.offer.trial .ov .daychips b,.offer.trial .ov .edge b,.offer.trial .ov .pk b,.offer.trial .ov .subjs b{font-family:var(--font-body);font-weight:700;letter-spacing:0;line-height:1.3}
.offer.trial .ov .daychips b{font-size:13.5px}
.offer.trial .ov .edge b{font-size:13.5px}
.offer.trial .ov .pk b{font-size:13px}
.offer.trial .ov .perks b{font-size:15px;line-height:1.2}
.offer.trial .ov .pricepill b{font-size:17px}
/* trial offer v3: landscape photo, week line, day grid that fills the row, Exam Edge always included */
.offer.trial img{height:auto;aspect-ratio:16/9;object-fit:cover;object-position:center 45%}
.offer.trial .cap.wk{margin:-2px 0 2px;font-size:12.5px;color:var(--fg2)}
.offer.trial .ctabs{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr))}
.offer.trial .ctabs button{padding:0 8px;white-space:nowrap}
.daychips{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.daychips button{width:100%;min-width:0}
.offer.trial .ov .daychips b em{font-style:normal;font-weight:600;color:var(--fg3)}
.daychips button.on b em{color:#0077CC}
@media(max-width:420px){.daychips button{padding:6px 9px}.offer.trial .ov .daychips b{font-size:12.5px}.daychips button small{font-size:11px}}
.edge{cursor:default;align-items:center}
.etick{flex:none;display:grid;place-items:center;width:20px;height:20px;border-radius:6px;background:#7A5AF8}
.etick svg{width:13px;height:13px}
@media(max-width:480px){.offer.trial .subjs{grid-template-columns:repeat(auto-fit,minmax(92px,1fr))}}
/* trial offer v4: price line no longer clipped, centre tabs fill each row */
.offer.trial .ov .pricepill b{display:inline-block;font-size:17px;line-height:1.45;padding:0 2px 1px 0}
.pricepill{align-items:center;row-gap:2px}
.pricepill span{line-height:1.45}
.offer.trial .ctabs{display:flex;flex-wrap:wrap}
.offer.trial .ctabs button{flex:1 1 auto;padding:0 14px}
/* booking v3: day, venue photo cards, subjects, short picked list */
.bk .lbl{display:block;margin:10px 0 6px}
.bk .lbl:first-child{margin-top:2px}
.bdays{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:6px}
.bdays button{position:relative;display:flex;flex-direction:column;align-items:center;gap:1px;min-height:58px;padding:7px 4px;border:1px solid var(--border-default);border-radius:12px;background:#fff;font:inherit;cursor:pointer}
.bdays button b{font-size:13.5px;color:var(--fg1)}
.bdays button small{font-size:12px;color:var(--fg3)}
.bdays button em{font-style:normal;font-size:10px;font-weight:700;color:var(--fg3)}
.bdays button em.hot{color:#7A5AF8}
.bdays button.on{border-color:#009DFF;background:rgba(0,157,255,.1);box-shadow:0 0 0 2px rgba(0,157,255,.22)}
.bdays button:disabled{opacity:.45;cursor:not-allowed}
.bk .cnt{position:absolute;top:-6px;right:-6px;display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#009DFF;color:#fff;font-style:normal;font-size:11px;font-weight:700;box-shadow:0 0 0 2px #fff}
.bvenues{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bvenues.one{grid-template-columns:1fr}
.bvenues button{position:relative;display:flex;flex-direction:column;padding:0;border:1px solid var(--border-default);border-radius:14px;background:#fff;font:inherit;text-align:left;cursor:pointer;overflow:visible}
.bvenues button img{width:100%;height:92px;object-fit:cover;object-position:center 40%;border-radius:13px 13px 0 0;display:block}
.bvenues.one button{flex-direction:row;align-items:center}
.bvenues.one button img{width:96px;height:64px;border-radius:13px 0 0 13px}
.bvenues button > span{display:flex;flex-direction:column;gap:1px;padding:8px 10px 9px}
.bvenues button b{font-size:14px;color:var(--fg1)}
.bvenues button small{font-size:11.5px;color:var(--fg3);line-height:1.3}
.bvenues button.on{border-color:#009DFF;box-shadow:0 0 0 2px rgba(0,157,255,.35)}
.bvenues button.on > span{background:rgba(0,157,255,.08);border-radius:0 0 13px 13px}
.bvenues.one button.on > span{border-radius:0 13px 13px 0;flex:1}
.bnote{grid-column:1 / -1;margin:0;font-size:12px;color:var(--fg3)}
.bsubs{display:grid;gap:6px}
.bsub label{position:relative;display:block;cursor:pointer}
.bsub input{position:absolute;opacity:0;inset:0}
.bsub .row{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:center;min-height:52px;padding:8px 12px;border:1px solid var(--border-default);border-radius:12px;background:#fff}
.bsub .row::before{content:"";width:20px;height:20px;border-radius:6px;border:2px solid var(--border-default);background:#fff}
.bsub .row b{display:block;font-size:14.5px;color:var(--fg1)}
.bsub .row small{display:block;font-size:12px;color:var(--fg3)}
.bsub input:checked + .row{border-color:#009DFF;background:rgba(0,157,255,.08);box-shadow:0 0 0 2px rgba(0,157,255,.25)}
.bsub input:checked + .row::before{border-color:#009DFF;background:#009DFF url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>") center/14px no-repeat}
.bsub input:focus-visible + .row{outline:2px solid #009DFF;outline-offset:2px}
.bsub .joinrow{padding:6px 0 2px 32px}
.bbasket{display:grid;gap:6px;margin-top:10px;padding:10px 12px;border-radius:12px;background:rgba(0,157,255,.06);border:1px solid rgba(0,157,255,.16)}
.bbasket .pk{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:13px;color:var(--fg2)}
.bbasket .pk b{color:var(--fg1)}
.bbasket .pk button{flex:none;width:26px;height:26px;border-radius:50%;border:1px solid var(--border-default);background:#fff;cursor:pointer;font-size:15px;line-height:1;color:var(--fg3)}
@media(max-width:420px){.bdays button b{font-size:12.5px}.bdays button small{font-size:11px}.bvenues button img{height:78px}}
.bbasket[hidden]{display:none}
/* thank-you: links to the family's other programs */
.xsell{display:grid;gap:6px;margin-top:4px;text-align:left}
.xsell a{display:grid;grid-template-columns:52px 1fr auto;gap:10px;align-items:center;padding:7px 12px 7px 7px;border:1px solid var(--border-default);border-radius:12px;background:#fff;text-decoration:none;color:inherit}
.xsell a:hover{border-color:#009DFF}
.xsell img{width:52px;height:52px;border-radius:9px;object-fit:cover}
.offer.trial .ov .xsell b{display:block;font-family:var(--font-body);font-weight:700;font-size:13.5px;line-height:1.3;letter-spacing:0;color:var(--fg1)}
.xsell small{display:block;font-size:12px;color:var(--fg3)}
.xsell i{font-style:normal;color:#009DFF;font-weight:700}
.offer.trial .okhead p{margin:2px 0 0;font-size:14px;color:var(--fg2)}
.done .facts[hidden]{display:none}
.offer.trial .xsell img{width:52px;height:52px;aspect-ratio:1;object-fit:cover;object-position:center;border-radius:9px}
/* hero video: no overlay on any screen and no text shadows (Hari, 16 Sep) */
.hero-g2 .wash,.hero-g2.y10 .wash,.hero-g2.y11 .wash,.hero-g2 .media .vwash{display:none!important;background:none!important}
.hero-g2 .copy,.hero-g2 .copy *{text-shadow:none!important}
/* trial subjects: 2 columns on phones, 3 on wider screens when a day has many subjects; times stay on one line */
.offer.trial .subjs.many{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(min-width:560px){.offer.trial .subjs.many{grid-template-columns:repeat(3,minmax(0,1fr))}}
.offer.trial .subjs .row small{white-space:nowrap}
.offer.trial .subjs .row{min-height:52px}
/* booking v4: subjects first, then a session dropdown and a join choice per subject */
.bsubjects{display:flex;flex-wrap:wrap;gap:6px}
.bsubjects button{flex:1 1 auto;min-height:42px;padding:0 14px;border:1px solid var(--border-default);border-radius:980px;background:#fff;font:inherit;font-size:14px;font-weight:600;color:var(--fg1);cursor:pointer}
.bsubjects button.on{background:#009DFF;border-color:#009DFF;color:#fff}
.bsubjects button.on::before{content:"✓ "}
.bchosen{display:grid;gap:8px}
.bsc{display:grid;gap:8px;padding:10px 12px 12px;border:1px solid var(--border-default);border-radius:14px;background:#fff}
.bsc.done{border-color:rgba(0,157,255,.45);box-shadow:0 0 0 2px rgba(0,157,255,.12)}
.bsc-h{display:flex;align-items:center;justify-content:space-between;gap:8px}
.bsc-h b{font-size:15px;color:var(--fg1)}
.bsc-h button{width:26px;height:26px;border-radius:50%;border:1px solid var(--border-default);background:#fff;cursor:pointer;font-size:15px;line-height:1;color:var(--fg3)}
.bsel{display:flex;align-items:center;gap:8px}
.bsel img{flex:none;width:44px;height:44px;border-radius:10px;object-fit:cover}
.bsel select{flex:1;min-width:0;min-height:44px;padding:0 34px 0 12px;border:1px solid var(--border-default);border-radius:10px;background:#fff url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'><path d='m6 9 6 6 6-6'/></svg>") right 10px center/16px no-repeat;-webkit-appearance:none;appearance:none;font:inherit;font-size:14px;color:var(--fg1);text-overflow:ellipsis}
.bsel select:focus-visible{outline:2px solid #009DFF;outline-offset:1px}
.bjoin{display:grid;gap:6px}
.bjoin > span{font-size:12.5px;font-weight:600;color:var(--fg2)}
.bjoin > div{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.bjoin button{display:flex;flex-direction:column;align-items:center;gap:1px;min-height:48px;padding:6px 8px;border:1px solid var(--border-default);border-radius:10px;background:#fff;font:inherit;font-size:14px;font-weight:700;color:var(--fg1);cursor:pointer}
.bjoin button small{font-size:11.5px;font-weight:500;color:var(--fg3)}
.bjoin button.on{border-color:#009DFF;background:rgba(0,157,255,.1);box-shadow:0 0 0 2px rgba(0,157,255,.22)}
.bk [hidden]{display:none!important}
#book .btn.dim{opacity:.6}
.bchosen{grid-template-columns:minmax(0,1fr)}
.bsc,.bsel{min-width:0}
.bsel select{width:100%;white-space:nowrap;overflow:hidden}
/* hero: a very soft dark glow sits behind the copy on phones only, so white text reads over bright clips; the video itself stays clean */
@media(max-width:1023px){
  .hero-g2 .copy{position:relative;isolation:isolate}
  .hero-g2 .copy::before{content:"";position:absolute;z-index:-1;left:-24px;right:-24px;top:70px;bottom:-10px;pointer-events:none;
    background:radial-gradient(ellipse 80% 62% at 42% 45%,rgba(8,12,20,.55) 0%,rgba(8,12,20,.34) 48%,rgba(8,12,20,0) 80%);filter:blur(18px)}
}
/* booking v5: venue tiles instead of a dropdown, and a visual first screen */
.bopts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.bopts.one{grid-template-columns:1fr}
.bopts button{position:relative;display:flex;flex-direction:column;padding:0;border:1px solid var(--border-default);border-radius:12px;background:#fff;font:inherit;text-align:left;cursor:pointer;overflow:hidden;transition:box-shadow .15s,border-color .15s}
.bopts button img{width:100%;height:84px;object-fit:cover;object-position:center 40%;display:block}
.bopts .bo-t{display:flex;flex-direction:column;gap:1px;padding:8px 10px 10px}
.bopts .bo-t b{font-size:13.5px;color:var(--fg1)}
.bopts .bo-t small{font-size:12px;color:var(--fg2);line-height:1.35}
.bopts .bo-t em{font-style:normal;font-size:11px;font-weight:700;color:#B45309;margin-top:2px}
.bopts .bo-tick{position:absolute;top:8px;right:8px;width:24px;height:24px;border-radius:50%;background:rgba(255,255,255,.92);border:2px solid rgba(255,255,255,.95);box-shadow:0 1px 4px rgba(0,0,0,.25)}
.bopts button.on{border-color:#009DFF;box-shadow:0 0 0 2px rgba(0,157,255,.35)}
.bopts button.on .bo-t{background:rgba(0,157,255,.08)}
.bopts button.on .bo-tick{background:#009DFF url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'><path d='M20 6 9 17l-5-5'/></svg>") center/14px no-repeat;border-color:#fff}
.bopts button:disabled{cursor:not-allowed}
.bopts button:disabled img{filter:grayscale(1);opacity:.5}
.bopts button:focus-visible{outline:2px solid #009DFF;outline-offset:2px}
.bintro{display:grid;gap:10px;margin-top:12px}
.bvn{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin:0}
.bvn figure{margin:0;border-radius:12px;overflow:hidden;background:#fff;border:1px solid var(--border-default)}
.bvn img{width:100%;height:96px;object-fit:cover;object-position:center 40%;display:block}
.bvn figcaption{display:flex;flex-direction:column;gap:1px;padding:8px 10px 10px}
.bvn figcaption b{font-size:13.5px;color:var(--fg1)}
.bvn figcaption small{font-size:12px;color:var(--fg2)}
.bonline{margin:0;font-size:13px;color:var(--fg2)}
.bonline b{color:var(--fg1)}
.bhow{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:0;padding:0;list-style:none;counter-reset:bh}
.bhow li{counter-increment:bh;display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:9px 10px;border-radius:12px;background:rgba(0,157,255,.06);font-size:12px;line-height:1.3}
.bhow li::before{content:counter(bh);display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:#009DFF;color:#fff;font-size:11px;font-weight:700}
.bhow b{font-weight:600;color:var(--fg1)}
.bjoin{animation:bjin .2s ease-out}
@keyframes bjin{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.bjoin{animation:none}}
.bhow li{background:rgba(0,157,255,.1);border:1px solid rgba(0,157,255,.18)}
/* bento: short sub-lines show on phones too */
@media(max-width:560px){.wy figcaption span{display:block;font-size:12px}.wy figcaption{padding:12px 12px 13px;gap:2px}.wy figcaption b{font-size:16px}}
/* trial centre tabs: one tidy row when they fit, otherwise rows that fill evenly (5 tabs = 3 + 2), never one stretched tab */
.offer.trial .ctabs{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:6px}
.offer.trial .ctabs button{grid-column:span 3;padding:0 6px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-height:38px}
.offer.trial .ctabs.n3 button,.offer.trial .ctabs.n5 button:nth-child(n+3){grid-column:span 2}
.offer.trial .ctabs.n1 button{grid-column:1 / -1}
@media(min-width:640px){.offer.trial .ctabs{display:flex;flex-wrap:nowrap}.offer.trial .ctabs button{flex:1 1 auto;padding:0 10px}}
@media(max-width:639px){.offer.trial .ctabs button{padding:0 3px;font-size:12.5px;text-overflow:clip}}
/* manage link */
.manage .mtoast{padding:10px 12px;border-radius:12px;background:rgba(18,183,106,.1);border:1px solid rgba(18,183,106,.3);color:#067647;font-size:13.5px;font-weight:600}
.manage .mrm{border:0;background:none;color:var(--fg3);font:inherit;font-size:12.5px;font-weight:600;text-decoration:underline;cursor:pointer;padding:4px}
.manage .mdanger{color:#B42318}
.manage .btn.ghost{margin-top:10px}
.manage h3{margin:0}
.modal .tabs[hidden]{display:none!important}
.manage .bsc-h{align-items:center}
.manage .mrm{white-space:nowrap;flex:none}
