/* ── 00-base.css ── */
/* ───────────────────────── School of Artificial Intelligence ─────────────────────────
   Design system. Built by build.py: every file in src/css/ is concatenated in
   filename order into public/assets/css/style.css. Do not edit style.css directly.
   ──────────────────────────────────────────────────────────────────────────────────── */
:root{
  color-scheme:light dark;
  /* Light (default): OpenAI Ads manner. White page, near-black ink, grey support text, no bright accent. */
  --ink:#141413; --ink-2:#30302e; --muted:#5e5d59; --faint:#8d8b84;
  --line:#e7e7e3; --line-soft:#f0f0ed;
  --bg:#ffffff; --panel:#f6f6f4; --panel-2:#efefec; --panel-3:#e7e7e3;
  --grey:#f6f6f4; --grey-2:#efefec; --dark:#efefec; --dark-2:#f6f6f4;
  /* the only colour: teal, used for small highlights and the gradient "scenes" behind product cards */
  --primary:#c28b00; --primary-hover:#a37400; --primary-tint:#fff4cc; --lav:#f9f9f9; --lav-2:#f3f3f3;
  --scene:linear-gradient(135deg,#f7cf3e 0%,#f9dc72 35%,#fbe9a6 65%,#fdf5dc 100%);
  --bar:#f5b700;
  --scene-card:#ffffff;
  /* legacy tile colours collapse to quiet panels */
  --peri:var(--panel);   --peri-tint:var(--panel-2);   --peri-ink:var(--ink);
  --yellow:var(--panel); --yellow-tint:var(--panel-2); --yellow-ink:var(--ink);
  --green:var(--panel);  --green-tint:var(--panel-2);  --green-ink:var(--ink); --green-deep:#c28b00;
  --coral:var(--panel);  --coral-tint:var(--panel-2);  --coral-ink:var(--ink);
  --sky:var(--panel);    --sky-tint:var(--panel-2);    --sky-ink:var(--ink);
  --ok:#a37400; --red:#c8372b;
  /* shape */
  --r-xs:6px; --r-sm:8px; --r:12px; --r-lg:16px; --r-xl:20px;
  --shadow-1:0 0 0 1px var(--line);
  --shadow-2:0 0 0 1px #d9d9d9;
  --shadow-3:0 12px 32px rgba(13,13,13,.12);
  /* layout */
  --max:1000px; --narrow:680px; --gutter:clamp(16px,4vw,32px);
  /* small helpers so components never hard-code a theme */
  --header-bg:rgba(255,255,255,.92); --hover-2:#dededa; --line-strong:#dededa; --line-hover:#d0d0cb;
  --focus:#8f8f8f; --focus-ring:rgba(13,13,13,.06); --accent-text:#8a6200; --strong:#000;
  --tint:rgba(13,13,13,.05); --shadow-window:0 20px 50px rgba(13,40,34,.18);
  --error-bg:#fdecea; --error-line:#f3c6c0; --map-filter:none;
  --map-water:#dde8ef; --map-park:#dcebd6; --map-road:#fff; --map-main:#f6e3a3;
  --font:"Geist",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"Geist Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
}

/* Dark theme, used when the visitor's device is set to dark (Cursor's dark palette, deep teal scenes) */
@media (prefers-color-scheme:dark){
  :root{
    --ink:#edecec; --ink-2:#cfcdc8; --muted:#8f8c84; --faint:#6b6860;
    --line:#2c2a23; --line-soft:#23211b;
    --bg:#14120b; --panel:#1b1913; --panel-2:#211f18; --panel-3:#2a2820;
    --grey:#1b1913; --grey-2:#23211a; --dark:#211f18; --dark-2:#1b1913;
    --primary:#f5c542; --primary-hover:#f8d470; --primary-tint:#2e260c; --lav:#1b1913; --lav-2:#23211a;
    --scene:linear-gradient(135deg,#3a2e08 0%,#2f270c 45%,#262214 70%,#211f18 100%);
    --scene-card:#1b1913;
    --green-deep:#d4a72c; --ok:#f5c542; --red:#ef6b5b;
    --shadow-2:0 0 0 1px #3a382f; --shadow-3:0 12px 40px rgba(0,0,0,.45);
    --header-bg:rgba(20,18,11,.85); --hover-2:#34322a; --line-strong:#3e3b32; --line-hover:#423f35;
    --focus:#6b6860; --focus-ring:rgba(237,236,236,.06); --accent-text:#f5c542; --strong:#fff;
    --tint:rgba(237,236,236,.12); --shadow-window:0 30px 80px rgba(0,0,0,.4);
    --error-bg:#2a1512; --error-line:#4a2420; --map-filter:invert(.9) hue-rotate(180deg) saturate(.6);
    --map-water:#1f2a33; --map-park:#1e271f; --map-road:#2e2c24; --map-main:#4a3c14;
  }
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:88px}
body{margin:0;background:var(--bg);color:var(--ink-2);font:400 16px/1.6 var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg,video{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
p{margin:0 0 1em}
ul,ol{margin:0;padding:0}
h1,h2,h3,h4,h5{margin:0;color:var(--ink);font-weight:500;letter-spacing:-.01em;text-wrap:balance}
h1,.h1{font-size:clamp(2rem,4.2vw,3rem);line-height:1.08;letter-spacing:-.025em}
h2,.h2{font-size:clamp(1.5rem,2.8vw,2.125rem);line-height:1.15;letter-spacing:-.02em}
h3,.h3{font-size:1.0625rem;line-height:1.35}
h4,.h4{font-size:1rem;line-height:1.35}
.lede{font-size:1rem;line-height:1.6;color:var(--muted);text-wrap:pretty}
.muted{color:var(--muted)}
.small{font-size:.875rem}
.tiny{font-size:.75rem}
.center{text-align:center}
.center .lede,.center p{margin-left:auto;margin-right:auto}
.text-link{color:var(--primary);font-weight:500;display:inline-flex;align-items:center;gap:4px}
.text-link:hover{text-decoration:underline;text-underline-offset:3px}
p a:not(.btn),li a:not(.btn),td a:not(.btn),.prose a:not(.btn){color:var(--primary);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.kicker{display:inline-block;color:var(--muted);font-weight:400;font-size:.95rem;margin-bottom:12px}
.skip{position:absolute;left:-9999px;top:8px;z-index:200;background:var(--ink);color:var(--bg);padding:10px 14px;border-radius:var(--r-xs)}
.skip:focus{left:8px}
:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Material Symbols (font URL generated by build.py from icons actually used) */
.ms{font-family:"Material Symbols Rounded";font-weight:400;font-style:normal;font-size:24px;line-height:1;letter-spacing:normal;text-transform:none;display:inline-block;white-space:nowrap;direction:ltr;-webkit-font-feature-settings:"liga";font-feature-settings:"liga";-webkit-font-smoothing:antialiased;width:1em;height:1em;overflow:hidden;flex:none;font-variation-settings:"FILL" 0,"wght" 400,"GRAD" 0,"opsz" 24;user-select:none}
.ms.fill{font-variation-settings:"FILL" 1,"wght" 400,"GRAD" 0,"opsz" 24}
.ms.sm{font-size:18px}.ms.lg{font-size:32px}

/* layout */
.container{width:100%;max-width:calc(var(--max) + var(--gutter)*2);margin:0 auto;padding:0 var(--gutter)}
.narrow{max-width:calc(var(--narrow) + var(--gutter)*2)}
.section{padding:clamp(56px,8vw,104px) 0}
.section--tight{padding:clamp(40px,6vw,72px) 0}
.section--flush-top{padding-top:0}
.section--grey{background:var(--grey)}
.section--lav{background:var(--lav)}
.section--dark{background:var(--dark);color:var(--ink-2)}
.section--dark h1,.section--dark h2,.section--dark h3,.section--dark h4{color:var(--ink)}
.section--dark .muted,.section--dark .lede{color:var(--muted)}
.section-head{max-width:620px;margin:0 auto clamp(32px,5vw,56px);text-align:center}
.section-head p{margin:16px auto 0;max-width:620px}
.section-head .btn,.section-head .actions{margin-top:24px}
.section-head--left{text-align:left;margin-left:0}
.section-head--left p{margin-left:0}
.actions{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.center .actions,.section-head .actions{justify-content:center}
.stack>*+*{margin-top:var(--stack,16px)}
.grid{display:grid;gap:var(--gap,24px)}
.grid-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.grid-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1024px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:680px){.grid-2,.grid-3,.grid-4{grid-template-columns:minmax(0,1fr)}}

/* phones: smaller, calmer type and tighter spacing (Anthropic manner) */
@media (max-width:640px){
  body{font-size:15px;line-height:1.55}
  h1,.h1{font-size:2rem}
  h2,.h2{font-size:1.5rem}
  h3,.h3{font-size:1rem}
  .lede{font-size:.9375rem}
  .section{padding:48px 0}
  .section-head{margin-bottom:28px}
  .page-hero{padding:40px 0 24px}
}

/* ── 10-components.css ── */
/* ───────── buttons ─────────
   Cursor manner: one light pill for the main action, quiet outline for the rest. */
.btn{--h:40px;display:inline-flex;align-items:center;justify-content:center;gap:8px;height:var(--h);padding:0 20px;border-radius:999px;border:1px solid transparent;font-weight:500;font-size:.875rem;line-height:1;cursor:pointer;white-space:nowrap;transition:background-color .15s,border-color .15s,color .15s;text-decoration:none}
.btn .ms{font-size:18px;margin:0 -4px}
.btn--primary{background:var(--ink);color:var(--bg)}
.btn--primary:hover{background:var(--strong)}
.btn--outline{background:var(--bg);color:var(--ink);border-color:var(--line-strong)}
.btn--outline:hover{background:var(--panel-2)}
/* soft grey pill (OpenAI "Get started" style) */
.btn--soft{background:var(--panel-3);color:var(--ink)}
.btn--soft:hover{background:var(--hover-2)}
/* text-only button */
.btn--text{background:transparent;color:var(--muted);padding:0 8px}
.btn--text:hover{color:var(--ink)}
.btn--ghost{background:transparent;color:var(--ink)}
.btn--ghost:hover{background:var(--panel-2)}
.btn--dark{background:var(--panel-3);color:var(--ink)}
.btn--dark:hover{background:var(--hover-2)}
.btn--white{background:var(--ink);color:var(--bg)}
.btn--white:hover{background:var(--strong)}
.btn--whatsapp{background:#25d366;color:#05371c}
.btn--whatsapp:hover{background:#1fbd5a}
.btn--lg{--h:44px;padding:0 22px;font-size:.9375rem}
.btn--sm{--h:34px;padding:0 16px;font-size:.875rem}
.btn--block{display:flex;width:100%}

/* ───────── header ───────── */
.site-header{position:sticky;top:0;z-index:60;background:var(--header-bg);backdrop-filter:blur(12px);border-bottom:1px solid transparent;transition:border-color .2s}
.site-header .container{display:flex;align-items:center;height:64px;gap:28px}
.brand{display:inline-flex;align-items:center;gap:10px;color:var(--ink);font-weight:500;font-size:1rem;letter-spacing:-.01em;flex:none}
.brand-mark{display:block;height:34px;aspect-ratio:238/240;flex:none;background:currentColor;-webkit-mask:url(/assets/img/logo-mark.png) center/contain no-repeat;mask:url(/assets/img/logo-mark.png) center/contain no-repeat}
.site-footer .brand-mark{height:40px}
.ui-av--logo{background:var(--bg);color:var(--ink)}.ui-av--logo .brand-mark{height:18px}
.thanks-contact__av .brand-mark,.wa-card__av .brand-mark{height:60%;margin:auto;color:var(--ink)}
.brand small{display:block;font-size:.66rem;color:var(--muted);font-weight:400;letter-spacing:0;margin-top:-1px}
.brand-name{line-height:1.15}
.nav{display:flex;align-items:center;gap:2px;flex:1;justify-content:center}
.nav a{white-space:nowrap;padding:8px 12px;border-radius:999px;font-size:.9rem;color:var(--muted);transition:color .15s}
.nav a:hover{color:var(--ink)}
.nav a[aria-current]{color:var(--ink)}
.header-actions{display:flex;gap:6px;align-items:center;margin-left:auto}
.menu-btn{display:none;width:44px;height:44px;border-radius:50%;border:0;background:transparent;cursor:pointer;align-items:center;justify-content:center;margin-right:-10px;color:var(--ink)}
.menu-btn:hover{background:var(--panel-2)}
.mobile-only{display:none}
@media (max-width:960px){
  .nav,.header-link{display:none}
  .menu-btn{display:inline-flex}
  .site-header .container{gap:12px}
  /* header uses backdrop-filter, which makes it the containing block, so anchor the sheet to it */
  .nav.open{display:flex;position:absolute;top:100%;left:0;right:0;height:calc(100vh - 60px);height:calc(100dvh - 60px);border-top:1px solid var(--line);background:var(--bg);flex-direction:column;align-items:stretch;justify-content:flex-start;padding:16px var(--gutter) 32px;gap:2px;overflow-y:auto}
  .nav.open a{padding:14px 4px;font-size:1.25rem;color:var(--ink);border-radius:0;border-bottom:1px solid var(--line-soft)}
  .nav.open .mobile-only{display:block}
}
@media (max-width:420px){.header-actions .btn--primary{padding:0 14px}}

/* ───────── page hero (inner pages) ───────── */
.page-hero{padding:clamp(56px,8vw,104px) 0 clamp(32px,5vw,56px);text-align:center}
.page-hero h1{max-width:20ch;margin:0 auto}
.page-hero .lede{max-width:600px;margin:18px auto 0}
.page-hero .actions{justify-content:center;margin-top:28px}
.page-hero--left{text-align:left}
.page-hero--left h1,.page-hero--left .lede{margin-left:0}
.page-hero--left .actions{justify-content:flex-start}
.crumbs{display:flex;gap:6px;justify-content:center;flex-wrap:wrap;font-size:.85rem;color:var(--faint);margin-bottom:20px}
.crumbs a{color:var(--muted)}
.crumbs a:hover{color:var(--ink)}
.crumbs .ms{font-size:16px;color:var(--faint)}
.page-hero--left .crumbs{justify-content:flex-start}

/* ───────── stage: framed panel that holds mockups ───────── */
.stage{position:relative;border-radius:var(--r-lg);background:var(--scene);overflow:hidden;min-height:420px;display:flex;align-items:center;justify-content:center;padding:48px 24px}
.stage--yellow,.stage--green,.stage--peri,.stage--grey{background:var(--scene)}

/* ───────── tiles: flat panels ───────── */
.tile{--tile-bg:var(--panel);--tile-ink:var(--ink);position:relative;border-radius:var(--r-lg);background:var(--tile-bg);color:var(--tile-ink);overflow:hidden;display:flex;flex-direction:column;min-height:100%;isolation:isolate}
.tile h3,.tile h2,.tile h4{color:var(--tile-ink)}
.tile p{color:var(--muted)}
.tile--yellow,.tile--green,.tile--peri,.tile--coral,.tile--sky,.tile--lav{--tile-bg:var(--panel)}
.tile--white{--tile-bg:var(--panel);border:1px solid var(--line)}
.tile__body{padding:clamp(20px,2.4vw,28px);position:relative;z-index:1}
.tile__body h3{margin-bottom:4px}
.tile__body p{margin:0;font-size:.95rem}
.tile__body .actions{margin-top:18px}
.tile__media{position:relative;flex:1;min-height:200px;display:flex;align-items:flex-end;justify-content:center;padding:0 clamp(16px,2.4vw,28px)}
.tile__media>.ui{margin-bottom:-24px}
.tile--wide{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);min-height:400px;align-items:center}
.tile--wide .tile__body{padding:clamp(24px,3.4vw,44px)}
.tile--wide .tile__media{height:100%;align-items:center;justify-content:flex-start;padding:32px 0}
@media (max-width:860px){
  .tile--wide{grid-template-columns:1fr;min-height:0}
  .tile--wide .tile__media{padding:0 20px 28px;justify-content:center;min-height:240px}
}

/* ───────── feature row ───────── */
.feature{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(32px,6vw,88px);align-items:center}
.feature--reverse>:first-child{order:2}
.feature__text h2{margin-bottom:14px}
.feature__text .actions{margin-top:24px}
@media (max-width:860px){.feature{grid-template-columns:minmax(0,1fr)}.feature--reverse>:first-child{order:0}}

/* ───────── cards ───────── */
.card{position:relative;background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:24px;display:flex;flex-direction:column;gap:10px;transition:background-color .15s,border-color .15s}
.card--link:hover{background:var(--panel-2);border-color:var(--line-strong)}
.card h3{font-size:1.125rem}
.card p{margin:0;color:var(--muted);font-size:.925rem}
.card__cover::after{content:"";position:absolute;inset:0;border-radius:inherit}
.card--flat{border:0;background:var(--panel)}
.icon-tile{width:36px;height:36px;border-radius:var(--r-sm);display:grid;place-items:center;background:var(--panel-3);color:var(--ink);flex:none}
.icon-tile .ms{font-size:20px}
[class*="icon-tile--"]{background:var(--panel-3);color:var(--ink)}

/* course card */
.course-card{gap:10px}
.course-card__top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.course-card h3{font-size:1.125rem;line-height:1.35}
.course-card__meta{margin-top:auto;padding-top:14px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:.85rem;color:var(--muted)}
.course-card__meta strong{color:var(--ink);font-weight:400;font-size:.9rem}
.course-card__meta span{display:inline-flex;align-items:center;gap:6px}
.course-card__meta .ms{font-size:16px}

/* pills / chips */
.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:999px;background:var(--panel-3);color:var(--ink-2);font-size:.75rem;font-weight:400;white-space:nowrap}
.pill .ms{font-size:14px}
.pill--primary{background:var(--primary-tint);color:var(--accent-text)}
.pill--green,.pill--yellow,.pill--peri,.pill--coral,.pill--sky{background:var(--panel-3);color:var(--ink-2)}
.pill--outline{background:transparent;border:1px solid var(--line)}
.pills{display:flex;flex-wrap:wrap;gap:6px}

/* segmented control / tabs */
.segmented{display:inline-flex;gap:2px;padding:3px;border-radius:999px;background:var(--panel);border:1px solid var(--line-soft);max-width:100%;overflow-x:auto;scrollbar-width:none}
.segmented::-webkit-scrollbar{display:none}
.segmented button,.segmented a{display:inline-flex;align-items:center;gap:8px;height:34px;padding:0 16px;border-radius:999px;border:0;background:transparent;color:var(--muted);font-weight:400;font-size:.875rem;cursor:pointer;white-space:nowrap;transition:.15s}
.segmented button:hover,.segmented a:hover{color:var(--ink)}
.segmented button .ms{font-size:18px}
.segmented [aria-selected="true"],.segmented [aria-pressed="true"],.segmented [aria-current]{background:var(--panel-3);color:var(--ink)}

/* steps */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;max-width:none;margin:0 auto}
.step{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:24px;text-align:left}
.step h3{font-size:1.05rem;margin:18px 0 4px}
.step p{margin:0;color:var(--muted);font-size:.925rem}
.badge{width:28px;height:28px;display:grid;place-items:center;background:var(--panel-3);color:var(--ink);font-size:.85rem;font-weight:400;border-radius:var(--r-sm);font-family:var(--mono)}
.badge--scallop,.badge--circle,.badge--squircle{clip-path:none;border-radius:var(--r-sm)}
.badge--peri{background:var(--primary);color:#fff}
@media (max-width:760px){.steps{grid-template-columns:minmax(0,1fr)}}

/* FAQ: hairline list */
.faq{display:grid;gap:0;max-width:760px;margin:0 auto;border-top:1px solid var(--line)}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;color:var(--ink);font-size:1.0625rem;font-weight:500}
.faq summary:hover{color:var(--strong)}
.faq summary::-webkit-details-marker{display:none}
.faq summary .ms{color:var(--muted);transition:transform .2s;font-size:20px}
.faq details[open] summary .ms{transform:rotate(45deg)}
.faq details>div{padding:0 0 20px;color:var(--muted);max-width:64ch}
.faq details>div p:last-child{margin:0}
.faq-group{max-width:760px;margin:0 auto 8px;padding-top:40px;font-size:1.05rem;color:var(--muted)}
.faq-group:first-child{padding-top:0}

/* stat strip */
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.stat{border-radius:var(--r);background:var(--panel);border:1px solid var(--line);padding:22px}
.stat b{display:block;font-size:2rem;font-weight:400;color:var(--ink);letter-spacing:-.02em;line-height:1.1}
.stat span{color:var(--muted);font-size:.875rem}
@media (max-width:860px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* check list */
.checks{list-style:none;padding:0;display:grid;gap:10px}
.checks li{display:flex;gap:12px;align-items:flex-start}
.checks li::before{content:"check";font-family:"Material Symbols Rounded";font-size:18px;line-height:1;width:20px;height:20px;flex:none;display:grid;place-items:center;color:var(--muted);margin-top:2px;font-feature-settings:"liga";overflow:hidden}

/* CTA band */
.cta-band{border-radius:var(--r-lg);background:var(--scene);color:var(--ink-2);padding:clamp(40px,6vw,72px) clamp(24px,5vw,64px);display:grid;grid-template-columns:minmax(0,1.2fr) auto;gap:32px;align-items:center;position:relative;overflow:hidden}
.cta-band h2{color:var(--ink)}
.cta-band p{color:var(--muted);margin:10px 0 0;max-width:52ch}
.cta-band__shapes{display:none}
@media (max-width:760px){.cta-band{grid-template-columns:1fr}}

/* tables */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--panel)}
.table{width:100%;border-collapse:collapse;font-size:.925rem;min-width:560px}
.table th,.table td{padding:14px 18px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.table tr:last-child td{border-bottom:0}
.table th{background:transparent;color:var(--muted);font-weight:400;font-size:.825rem}
.table td strong{color:var(--ink);font-weight:400}

/* fact / summary card (course & programme sidebars) */
.facts{background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:24px;display:grid;gap:14px}
.facts__price{font-size:2rem;font-weight:400;color:var(--ink);letter-spacing:-.02em;line-height:1.1}
.facts dl{margin:0;display:grid;gap:0}
.facts dl>div{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-top:1px solid var(--line);font-size:.9rem}
.facts dt{color:var(--muted);display:flex;align-items:center;gap:8px}
.facts dt .ms{font-size:18px}
.facts dd{margin:0;color:var(--ink);text-align:right}
.sticky{position:sticky;top:84px}

/* notices */
.notice{display:flex;gap:12px;align-items:flex-start;padding:14px 18px;border-radius:var(--r);background:var(--panel);border:1px solid var(--line-soft);color:var(--ink-2);font-size:.925rem}
.notice .ms{color:var(--muted)}
.notice--yellow,.notice--green{background:var(--panel)}
.notice--green .ms{color:var(--ok)}
.notice--error{background:var(--error-bg);border-color:var(--error-line)}.notice--error .ms{color:var(--red)}

/* forms */
.form{display:grid;gap:20px}
.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
@media (max-width:640px){.form-row{grid-template-columns:minmax(0,1fr)}}
.field{display:grid;gap:8px;font-size:.9rem;color:var(--ink)}
.field .hint{color:var(--muted);font-size:.825rem}
.input,.field input:not([type=radio]):not([type=checkbox]),.field select,.field textarea{width:100%;height:46px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);color:var(--ink);font:400 .975rem var(--font);transition:border-color .15s,box-shadow .15s;appearance:none}
.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%238f8c84' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center;padding-right:40px}
.field select option{background:var(--panel);color:var(--ink)}
.field textarea{height:auto;min-height:120px;padding:12px 14px;resize:vertical;line-height:1.5}
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--line-hover)}
.field input:focus,.field select:focus,.field textarea:focus{outline:0;border-color:var(--focus);box-shadow:0 0 0 3px var(--focus-ring)}
::placeholder{color:var(--faint)}
fieldset{border:0;margin:0;padding:0;min-width:0}
legend{color:var(--ink);margin-bottom:12px;padding:0;font-size:.9rem}
.choices{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:640px){.choices{grid-template-columns:minmax(0,1fr)}}
.choice{position:relative;display:block;cursor:pointer}
.choice input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.choice__box{display:flex;gap:12px;align-items:flex-start;padding:14px;border:1px solid var(--line);border-radius:var(--r);background:var(--bg);transition:.15s;height:100%}
.choice__box .ms{color:var(--muted)}
.choice__box b{display:block;color:var(--ink);font-weight:400}
.choice__box small{display:block;color:var(--muted);font-size:.825rem;line-height:1.4;margin-top:2px}
.choice:hover .choice__box{border-color:var(--line-hover)}
.choice input:checked+.choice__box{border-color:var(--ink);background:var(--panel-2)}
.choice input:checked+.choice__box .ms{color:var(--ink)}
.choice input:focus-visible+.choice__box{outline:2px solid var(--primary);outline-offset:2px}
.check-field{display:flex;gap:12px;align-items:flex-start;font-size:.875rem;color:var(--muted);cursor:pointer}
.check-field input{width:18px;height:18px;margin:2px 0 0;accent-color:var(--primary);flex:none}
.form-card{background:var(--panel);border:1px solid var(--line-soft);border-radius:var(--r-lg);padding:clamp(22px,4vw,36px)}
.form-step{display:flex;align-items:center;gap:12px;font-size:1.05rem;color:var(--ink);margin:8px 0 -4px}
.form-step i{font-style:normal;width:24px;height:24px;border-radius:var(--r-sm);background:var(--panel-3);color:var(--ink);display:grid;place-items:center;font-size:.8rem;font-family:var(--mono)}

/* contact list */
.contact-list{list-style:none;display:grid;gap:2px}
.contact-list li{display:flex;gap:16px;align-items:flex-start;padding:14px;border-radius:var(--r)}
.contact-list li:hover{background:var(--panel)}
.contact-list b{display:block;color:var(--ink);font-weight:400}
.contact-list span{color:var(--muted);font-size:.925rem}

/* map embed */
.map-embed{border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);background:var(--panel);aspect-ratio:4/3}
.map-embed iframe{width:100%;height:100%;border:0;display:block;filter:var(--map-filter)}

/* footer */
.site-footer{background:var(--bg);border-top:1px solid var(--line-soft);padding:48px 0 32px;color:var(--muted);font-size:.875rem}
.footer-follow{display:flex;align-items:center;gap:4px}
.footer-follow span{display:none}
.footer-follow a{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;color:var(--muted);transition:.15s}
.footer-follow a:hover{color:var(--ink)}
.footer-follow svg{width:18px;height:18px;fill:currentColor}

.footer-cols{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:32px;padding:0 0 40px}
.footer-cols h4{font-size:.875rem;font-weight:400;color:var(--ink);margin-bottom:12px}
.footer-cols a{display:block;padding:4px 0;color:var(--muted)}
.footer-cols a:hover{color:var(--ink)}
.footer-cols address{font-style:normal;line-height:1.6;color:var(--muted)}
.footer-cols a.brand{display:inline-flex;padding:0;color:var(--ink)}
.footer-brand p{max-width:30ch;color:var(--muted);margin:14px 0 0}
.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding-top:20px;border-top:1px solid var(--line-soft);color:var(--faint)}
.footer-bottom nav{display:flex;gap:20px;flex-wrap:wrap}
.footer-bottom a:hover{color:var(--ink)}
@media (max-width:860px){.footer-cols{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-brand{grid-column:1/-1}}

/* WhatsApp float: small and quiet */
.wa-float{position:fixed;right:16px;bottom:16px;z-index:50;display:flex;align-items:center;gap:8px;height:42px;padding:0 16px 0 12px;border-radius:999px;background:var(--panel-3);border:1px solid var(--line);color:var(--ink);font-size:.875rem;box-shadow:var(--shadow-3);transition:background-color .15s}
.wa-float svg{width:20px;height:20px;fill:#25d366}
.wa-float:hover{background:var(--hover-2)}
@media (max-width:640px){.wa-float{width:42px;padding:0;justify-content:center}.wa-float span{display:none}}

/* filters bar (courses page) */
.filter-bar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:28px}
.search{position:relative;flex:0 1 320px}
.search .ms{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--muted);font-size:20px}
.search input{width:100%;height:40px;padding:0 14px 0 40px;border-radius:999px;border:1px solid var(--line);font:inherit;background:var(--panel);color:var(--ink)}
.search input:focus{outline:0;border-color:var(--focus)}
.select-pill{height:40px;padding:0 36px 0 16px;border-radius:999px;border:1px solid var(--line);font:400 .9rem var(--font);color:var(--ink-2);background:var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath fill='%238f8c84' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E") no-repeat right 8px center;appearance:none;cursor:pointer}
.empty-state{text-align:center;padding:56px 24px;border:1px dashed var(--line);border-radius:var(--r-lg);color:var(--muted)}

/* prose (course detail body) */
.prose h2{font-size:1.5rem;margin:52px 0 18px}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--ink-2)}
.modules{list-style:none;display:grid;gap:0;counter-reset:mod;border-top:1px solid var(--line)}
.modules li{counter-increment:mod;display:flex;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);color:var(--ink)}
.modules li::before{content:counter(mod,decimal-leading-zero);color:var(--faint);font-family:var(--mono);font-size:.8rem;flex:none;width:24px}
.layout-aside{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:clamp(32px,5vw,64px);align-items:start}
@media (max-width:1000px){.layout-aside{grid-template-columns:minmax(0,1fr)}.layout-aside .sticky{position:static}}

/* reveal on scroll */
.reveal{opacity:0;transform:translateY(12px);transition:opacity .6s cubic-bezier(.2,.7,.2,1),transform .6s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}

/* announcement bar */
.announce{background:var(--bg);color:var(--muted);font-size:.825rem;text-align:center;padding:9px var(--gutter);border-bottom:1px solid var(--line-soft)}
.announce a{color:var(--ink);font-weight:500;white-space:nowrap}
.announce a:hover{text-decoration:underline;text-underline-offset:3px}

.checks li.more::before{content:"";background:none;width:20px}
.checks li.more{color:var(--ink-2)}

/* links in running text */
.text-link{color:var(--ink);font-weight:500;font-size:.9375rem}
.text-link:hover{text-decoration:underline;text-underline-offset:4px}
p a:not(.btn),li a:not(.btn),td a:not(.btn),.prose a:not(.btn){color:var(--ink);text-decoration-color:var(--faint)}
p a:not(.btn):hover,li a:not(.btn):hover,.prose a:not(.btn):hover{text-decoration-color:var(--ink)}

/* guard against brief overflow while web fonts load (fallback fonts are wider) */
body{overflow-x:clip}
.site-header .brand{min-width:0;flex-shrink:1}
.brand-name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}

/* Cursor-style flat tiles site-wide: the decorative mockups are gone, so tiles become plain text blocks
   with a hairline on top instead of tall grey boxes. */
.tile,[class*="tile--"]{background:none!important;border:0!important;border-top:1px solid var(--line-strong)!important;border-radius:0!important;min-height:0!important;color:var(--ink)}
.tile .tile__body{padding:22px 0 0!important}
.tile p{color:var(--muted)}
.tile--wide,.tile--flip{display:block!important}
.tile__body[style*="margin-top:auto"]{margin-top:16px!important}
/* two-column rows that lost their picture become one readable column */
.feature:not(:has(>:nth-child(2))){grid-template-columns:minmax(0,1fr);max-width:760px}
.layout-aside:not(:has(>:nth-child(2))){grid-template-columns:minmax(0,1fr)}
.page-faq .ask-tile{display:block!important}
.page-schedule .slot-grid .slot-tile .tile__body{padding-bottom:72px!important}.page-schedule .slot-apply{margin:0 0 20px 0!important}
.footer-si{margin-top:6px!important;color:var(--ink)!important;font-weight:500}

/* ── 20-mockups.css ── */
/* ───────── UI mockup kit ─────────
   Small illustrated "product UI" cards used instead of stock photos, in the style of
   Google's marketing pages. Purely decorative: wrap groups in aria-hidden="true". */
.ui{--w:340px;width:var(--w);max-width:100%;background:var(--scene-card);border-radius:var(--r);box-shadow:var(--shadow-window);padding:18px;font-size:13px;line-height:1.45;color:var(--ink-2);text-align:left;position:relative;flex:none}
.ui--flat{box-shadow:var(--shadow-1)}
.ui--sm{--w:240px;padding:14px;border-radius:16px}
.ui--lg{--w:420px}
.ui--xl{--w:520px}
.ui--tall{padding-bottom:40px}
.ui-title{font-size:15px;font-weight:500;color:var(--ink);line-height:1.3}
.ui-sub{font-size:12px;color:var(--muted)}
.ui-label{font-size:11px;font-weight:500;color:var(--muted);margin:14px 0 8px;text-transform:none}
.ui-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.ui-head .ms{font-size:20px;color:var(--muted)}
.ui-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-top:1px solid var(--line-soft)}
.ui-row:first-child{border-top:0}
.ui-row>div{min-width:0;flex:1}
.ui-row .ui-title{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ui-tabs{display:flex;gap:20px;border-bottom:1px solid var(--line-soft);margin:-4px -18px 14px;padding:0 18px}
.ui-tabs span{padding:10px 0;font-size:12.5px;font-weight:500;color:var(--muted);border-bottom:2px solid transparent;margin-bottom:-1px}
.ui-tabs span.on{color:var(--primary);border-color:var(--primary)}
.ui-skel{display:block;height:8px;border-radius:4px;background:var(--grey-2);width:var(--sw,70%)}
.ui-skel+.ui-skel{margin-top:6px}
.ui-skel--dark{background:var(--panel-2)}
.ui-av{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:500;color:#fff;background:var(--primary);flex:none}
.ui-av--y{background:var(--panel-3)}.ui-av--g{background:var(--panel-3)}.ui-av--c{background:var(--panel-3)}.ui-av--p{background:var(--panel-3)}.ui-av--s{background:var(--panel-3)}.ui-av--r{background:var(--panel-3)}
.ui-av--sm{width:24px;height:24px;font-size:10px}
.ui-icon{width:36px;height:36px;border-radius:10px;display:grid;place-items:center;flex:none;background:var(--primary-tint);color:var(--primary)}
.ui-icon .ms{font-size:20px}
.ui-icon--y{background:var(--yellow-tint);color:var(--ink-2)}.ui-icon--g{background:var(--green-tint);color:var(--ink-2)}.ui-icon--p{background:var(--peri-tint);color:var(--ink-2)}.ui-icon--c{background:var(--coral-tint);color:var(--ink-2)}.ui-icon--s{background:var(--sky-tint);color:var(--ink-2)}
.ui-chips{display:flex;flex-wrap:wrap;gap:6px}
.ui-chip{display:inline-flex;align-items:center;gap:4px;height:28px;padding:0 10px;border:1px solid var(--line);border-radius:8px;font-size:12px;font-weight:500;color:var(--ink-2);background:var(--panel-2);white-space:nowrap}
.ui-chip .ms{font-size:16px}
.ui-chip.on{background:var(--primary-tint);border-color:transparent;color:var(--primary)}
.ui-chip.ok .ms{color:var(--ink-2)}
.ui-chip.no .ms{color:var(--ink-2)}
.ui-seg{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.ui-seg>div{border:1px solid var(--line);border-radius:10px;padding:8px 10px;font-size:11.5px;line-height:1.3}
.ui-seg b{display:block;font-weight:500;color:var(--ink);font-size:12.5px}
.ui-seg .on{border-color:var(--primary);background:var(--primary-tint);box-shadow:inset 0 0 0 1px var(--primary)}
.ui-seg .on b{color:var(--primary)}
.ui-btn{display:flex;align-items:center;justify-content:center;gap:6px;height:36px;border-radius:999px;background:var(--primary);color:#fff;font-weight:500;font-size:13px;margin-top:14px}
.ui-btn--outline{background:var(--panel-2);color:var(--primary);border:1px solid var(--line)}
.ui-btn--inline{display:inline-flex;padding:0 14px;height:30px;font-size:12px;margin:0}
.ui-stars{display:inline-flex;gap:1px;color:var(--muted)}
.ui-stars .ms{font-size:14px;font-variation-settings:"FILL" 1}
.ui-badge{display:inline-flex;align-items:center;gap:4px;height:22px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:500;background:var(--green-tint);color:var(--ink-2)}
.ui-badge--live{background:var(--panel-2);color:var(--ink-2)}
.ui-badge--live::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--panel-3);animation:pulse 1.6s infinite}
.ui-badge--blue{background:var(--primary-tint);color:var(--primary)}
.ui-badge--y{background:var(--yellow-tint);color:var(--ink-2)}
@keyframes pulse{50%{opacity:.3}}
.ui-progress{height:6px;border-radius:3px;background:var(--grey-2);overflow:hidden}
.ui-progress i{display:block;height:100%;width:var(--p,60%);background:var(--primary);border-radius:3px}
.ui-progress--g i{background:var(--panel-3)}
.ui-check{width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--panel-3);color:var(--ink);flex:none}
.ui-check .ms{font-size:14px}
.ui-check--todo{background:var(--panel-2);border:1.5px solid var(--line)}
.ui-check--now{background:var(--primary)}
.ui-toast{display:inline-flex;align-items:center;gap:10px;background:var(--panel-3);color:var(--ink);border-radius:12px;padding:10px 14px;font-size:12.5px;box-shadow:var(--shadow-3);white-space:nowrap}
.ui-toast .ms{font-size:18px;color:var(--muted)}

/* map */
.ui-map{position:relative;border-radius:14px;overflow:hidden;background:var(--panel-2);height:var(--mh,150px)}
.ui-map svg{position:absolute;inset:0;width:100%;height:100%}
.ui-pin{position:absolute;left:var(--px,55%);top:var(--py,42%);transform:translate(-50%,-100%);color:var(--ink-2);filter:drop-shadow(0 2px 2px rgba(0,0,0,.25))}
.ui-pin .ms{font-size:36px;font-variation-settings:"FILL" 1}

/* video call */
.ui-video{--w:380px;background:var(--dark);color:var(--ink);padding:10px;border-radius:20px}
.ui-video__grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}
.ui-video__tile{aspect-ratio:16/10;border-radius:10px;background:var(--panel-3);display:grid;place-items:center;position:relative}
.ui-video__tile .ui-av{width:44px;height:44px;font-size:16px}
.ui-video__tile small{position:absolute;left:8px;bottom:6px;font-size:10.5px;color:var(--ink)}
.ui-video__tile--speaking{box-shadow:inset 0 0 0 2px var(--line)}
.ui-video__tile--screen{grid-column:1/-1;aspect-ratio:auto;height:110px;background:var(--panel-2);display:block;padding:12px}
.ui-video__bar{display:flex;justify-content:center;gap:8px;padding:10px 0 2px}
.ui-video__bar span{width:34px;height:34px;border-radius:50%;background:var(--panel-3);display:grid;place-items:center}
.ui-video__bar span .ms{font-size:18px}
.ui-video__bar span.end{background:var(--panel-3);width:46px;border-radius:999px}

/* code editor */
.ui-code{--w:380px;background:var(--dark);color:var(--ink);padding:0;overflow:hidden;font:12.5px/1.7 "Google Sans Code","SFMono-Regular",Menlo,Consolas,monospace}
.ui-code__bar{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--dark);font-family:var(--font);font-size:12px;color:var(--muted)}
.ui-code__bar i{width:10px;height:10px;border-radius:50%;background:var(--panel-3);display:block}
.ui-code__bar i:nth-child(1){background:#ff5f57}.ui-code__bar i:nth-child(2){background:#febc2e}.ui-code__bar i:nth-child(3){background:#28c840}
.ui-code__bar b{font-weight:500;margin-left:8px}
.ui-code pre{margin:0;padding:14px 16px;white-space:pre;overflow:hidden}
.ui-code .k{color:var(--muted)}.ui-code .s{color:var(--muted)}.ui-code .f{color:var(--muted)}.ui-code .c{color:var(--muted)}.ui-code .n{color:var(--muted)}
.ui-code__out{border-top:1px solid var(--line);padding:10px 16px 14px;color:var(--muted);font-size:12px}

/* charts */
.ui-chart{display:block;width:100%;height:auto}
.ui-bars{display:flex;align-items:flex-end;gap:8px;height:110px;padding-top:8px}
.ui-bars i{flex:1;border-radius:6px 6px 2px 2px;background:var(--peri);height:var(--h,50%)}
.ui-bars i.hi{background:var(--primary)}
.ui-bars--y i{background:var(--panel-3)}.ui-bars--y i.hi{background:var(--panel-3)}
.ui-donut{width:84px;height:84px;border-radius:50%;background:conic-gradient(var(--primary) 0 var(--d1,40%),var(--panel-3) 0 var(--d2,70%),var(--panel-3) 0 var(--d3,88%),var(--panel-3) 0 100%);position:relative;flex:none}
.ui-donut::after{content:"";position:absolute;inset:14px;border-radius:50%;background:var(--panel-2)}
.ui-legend{display:grid;gap:6px;font-size:11.5px}
.ui-legend span{display:flex;align-items:center;gap:6px}
.ui-legend i{width:8px;height:8px;border-radius:50%;background:var(--c,var(--primary))}
.ui-kpi{font-size:24px;font-weight:500;color:var(--ink);line-height:1.1;letter-spacing:-.01em}

/* chat */
.ui-chat{display:grid;gap:8px}
.ui-bubble{max-width:85%;padding:9px 12px;border-radius:16px;font-size:12.5px;line-height:1.45;background:var(--grey-2);color:var(--ink);justify-self:start;border-bottom-left-radius:4px}
.ui-bubble--me{justify-self:end;background:var(--primary);color:#fff;border-radius:16px;border-bottom-right-radius:4px}
.ui-bubble--wa{background:var(--panel-2);color:var(--ink-2);justify-self:end;border-radius:12px;border-top-right-radius:4px}
.ui-bubble--tool{justify-self:start;background:var(--panel-2);border:1px dashed var(--line);color:var(--muted);font-size:11.5px;display:flex;gap:6px;align-items:center}
.ui-bubble--tool .ms{font-size:16px;color:var(--primary)}
.ui-input{display:flex;align-items:center;gap:8px;margin-top:12px;height:40px;border-radius:999px;border:1px solid var(--line);padding:0 6px 0 14px;color:var(--faint);font-size:12.5px}
.ui-input span:first-child{flex:1}
.ui-input .send{width:30px;height:30px;border-radius:50%;background:var(--primary);color:#fff;display:grid;place-items:center}
.ui-input .send .ms{font-size:16px}

/* scratch-like code blocks (kids) */
.ui-blocks{display:grid;gap:3px;justify-items:start}
.ui-blocks span{display:inline-flex;align-items:center;gap:6px;padding:8px 12px;border-radius:6px 6px 6px 2px;font-size:12px;font-weight:500;color:#fff;background:var(--panel-3)}
.ui-blocks .ev{background:var(--panel-3);color:var(--ink-2);border-radius:16px 16px 6px 6px}
.ui-blocks .ctl{background:var(--panel-3);color:var(--ink-2);margin-left:0}
.ui-blocks .ml{background:var(--panel-3);margin-left:16px}
.ui-blocks .lk{background:var(--panel-3);margin-left:16px}
.ui-blocks .in{margin-left:16px}

/* certificate */
.ui-cert{--w:360px;padding:22px;border:1px solid var(--line);background:var(--panel-2);text-align:center;background-image:radial-gradient(circle at 0 0,var(--yellow-tint) 0 60px,transparent 61px),radial-gradient(circle at 100% 100%,var(--peri-tint) 0 70px,transparent 71px)}
.ui-cert .seal{width:44px;height:44px;margin:0 auto 10px;border-radius:50%;background:var(--yellow);display:grid;place-items:center;color:var(--ink-2)}
.ui-cert .who{font-size:20px;font-weight:500;color:var(--ink);margin:6px 0 2px}
.ui-cert .line{height:1px;background:var(--line);margin:14px 30px}

/* pipeline / status list */
.ui-steps{display:grid;gap:0}
.ui-steps>div{display:flex;align-items:center;gap:10px;padding:8px 0;position:relative}
.ui-steps>div:not(:last-child)::after{content:"";position:absolute;left:9.5px;top:30px;bottom:-6px;width:1px;background:var(--line)}
.ui-steps small{margin-left:auto;color:var(--muted);font-size:11px}

/* timetable */
.ui-tt{display:grid;grid-template-columns:44px repeat(4,1fr);gap:4px;font-size:10.5px}
.ui-tt>span{color:var(--muted);text-align:center;padding:2px 0}
.ui-tt>i{font-style:normal;border-radius:6px;padding:6px 4px;text-align:center;font-weight:500;color:var(--ink)}
.ui-tt .m{background:var(--yellow-tint)}.ui-tt .e{background:var(--peri-tint)}.ui-tt .w{background:var(--green-tint)}.ui-tt .x{background:var(--grey)}

/* positioning helpers inside .stage */
.float{position:absolute;z-index:2}
.tilt-l{transform:rotate(-3deg)}.tilt-r{transform:rotate(3deg)}
.persp{transform:perspective(1400px) rotateX(8deg) rotateY(-10deg) rotateZ(1deg)}
.bleed-r{margin-right:-80px}
.bleed-b{margin-bottom:-40px}
@media (max-width:860px){.float--hide-sm{display:none}}

/* ── 30-home.css ── */
/* ───────── home page ───────── */
.home-hero{padding:clamp(64px,10vw,128px) 0 0}
.home-hero h1{max-width:14ch;margin:0 auto}
.home-hero .lede{max-width:560px;margin:22px auto 0}
.home-hero .actions{justify-content:center;margin:32px 0 clamp(48px,6vw,72px)}

/* scene: the soft teal gradient that holds a product card (OpenAI Ads manner) */
.scene{position:relative;border-radius:var(--r-lg);background:var(--scene);overflow:hidden;display:grid;place-items:center}
.scene--hero{padding:clamp(24px,6vw,72px) clamp(16px,6vw,72px)}
.scene--sm{aspect-ratio:4/3;padding:20px;margin-bottom:22px}
.eyebrow{font-size:.875rem;font-weight:500;color:var(--muted);margin:0 0 14px}

/* product window on the scene */
.window{width:100%;border-radius:var(--r);background:var(--scene-card);overflow:hidden;box-shadow:var(--shadow-window)}
.window__bar{display:flex;align-items:center;gap:6px;height:38px;padding:0 14px;border-bottom:1px solid var(--line-soft);font-size:.75rem;color:var(--faint)}
.window__bar i{width:10px;height:10px;border-radius:50%;background:var(--panel-3)}
.window__bar span{margin-left:10px}
.window__body{display:grid;grid-template-columns:200px minmax(0,1.15fr) minmax(0,1fr);min-height:380px;font-size:.875rem;text-align:left}
.win-side{border-right:1px solid var(--line-soft);padding:16px 10px}
.win-item{padding:7px 10px;border-radius:var(--r-xs);color:var(--muted)}
.win-item.on{background:var(--panel-3);color:var(--ink)}
.win-main{padding:24px}
.win-title{color:var(--ink);font-size:1.1rem;font-weight:500}
.win-sub{color:var(--muted);margin-top:2px}
.win-label{color:var(--faint);font-size:.75rem;margin:20px 0 8px;padding:0 10px}
.win-main .win-label{padding:0}
.win-side .win-label{margin-top:0}
.win-chips{display:flex;gap:6px;flex-wrap:wrap}
.win-chips span{padding:5px 12px;border-radius:999px;border:1px solid var(--line);color:var(--muted)}
.win-chips .on{border-color:var(--ink);color:var(--ink)}
.win-slots{display:grid;gap:6px}
.win-slots div{display:flex;justify-content:space-between;padding:10px 12px;border-radius:var(--r-xs);border:1px solid var(--line);color:var(--muted)}
.win-slots b{font-weight:500;color:var(--ink-2)}
.win-slots .on{border-color:var(--ink);background:var(--panel)}
.win-btn{margin-top:20px;display:inline-flex;height:34px;align-items:center;padding:0 16px;border-radius:999px;background:var(--ink);color:var(--bg);font-weight:500}
.win-code{padding:24px 20px;background:var(--panel);border-right:1px solid var(--line-soft)}
.win-code .win-label{margin-top:0;padding:0}
.win-code pre{margin:0;font:400 .8rem/1.75 var(--mono);color:var(--ink-2);white-space:pre-wrap}
.win-code .k{color:var(--primary)}.win-code .c{color:var(--faint)}.win-code .o{color:var(--primary)}
@media (max-width:980px){.window__body{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.win-side{display:none}}
@media (max-width:640px){.window__body{grid-template-columns:minmax(0,1fr)}.win-code{border-right:0;border-bottom:1px solid var(--line-soft)}}

/* benefits and trust: bordered light cards, text at the bottom */
.benefit,.trust{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:28px;display:flex;flex-direction:column}
.benefit{min-height:260px}
.benefit .ms{font-size:26px;color:var(--ink);margin-bottom:auto}
.benefit h3,.trust h3{margin:32px 0 8px}
.trust h3{margin-top:0}
.section-head .eyebrow{margin-bottom:14px}
.benefit p,.trust p{color:var(--muted);margin:0;font-size:1rem}

.scene-card{width:min(100%,280px);background:var(--scene-card);border-radius:var(--r);box-shadow:var(--shadow-window);padding:16px;font-size:.8125rem;text-align:left}
.sc-label{color:var(--faint);font-size:.75rem;margin-bottom:10px}
.sc-row{display:flex;justify-content:space-between;gap:10px;padding:8px 10px;border-radius:var(--r-xs);color:var(--ink-2)}
.sc-row.on{background:var(--panel-3);color:var(--ink)}
.sc-row em{font-style:normal;color:var(--faint)}
.sc-row .ms{color:var(--primary);vertical-align:-3px}
.sc-field{border:1px solid var(--line);border-radius:var(--r-xs);padding:8px 10px;margin-bottom:6px;color:var(--ink-2)}
.sc-send{display:inline-flex;margin-top:6px;padding:6px 12px;border-radius:999px;background:var(--ink);color:var(--bg);font-weight:500}
.sc-big{font-size:1.15rem;font-weight:500;color:var(--ink);margin:-2px 0 8px}

.win-item{display:flex;align-items:center;gap:6px}
.win-item.done{color:var(--faint)}
.win-item .ms{color:var(--primary)}
.win-checks{display:grid;gap:8px;margin-top:18px}
.win-checks div{display:flex;align-items:center;gap:8px;color:var(--muted)}
.win-checks .done{color:var(--ink-2)}
.win-checks .done .ms{color:var(--primary)}
.win-note{display:flex;gap:8px;margin-top:20px;padding:12px;border-radius:var(--r-xs);background:var(--panel);color:var(--ink-2);font-size:.8125rem;line-height:1.5}
.win-note .ms{color:var(--muted);flex:none}

/* who we are + projects: text beside a list or scene */
.intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:center}
.intro__text .lede{margin-top:16px}
.intro__text .text-link{display:inline-block;margin-top:12px}
.ideas{list-style:none;display:grid;border-top:1px solid var(--line)}
.ideas li{padding:20px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:150px minmax(0,1fr);gap:16px}
.ideas b{font-weight:500;color:var(--ink)}
.ideas span{color:var(--muted);font-size:1rem}
.scene--md{aspect-ratio:5/4;padding:24px}
.scene-card--wide{width:min(100%,420px)}
@media (max-width:860px){.intro{grid-template-columns:minmax(0,1fr)}.intro--flip .scene{order:2}}
@media (max-width:520px){.ideas li{grid-template-columns:minmax(0,1fr);gap:4px}}

/* what makes us different */
.diff-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.trust .ms{font-size:24px;color:var(--ink);margin-bottom:28px}
.trust p a{color:var(--ink)}
@media (max-width:960px){.diff-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.diff-grid{grid-template-columns:minmax(0,1fr)}}

/* who it is for */
.paths{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.path{display:flex;flex-direction:column;color:inherit}
.path h3{margin-bottom:6px}
.path p{color:var(--muted);font-size:1rem;margin:0 0 14px}
.path .text-link{margin-top:auto}
.path:hover h3{text-decoration:underline;text-underline-offset:4px}
.path .scene{transition:transform .2s}
.path:hover .scene{transform:translateY(-2px)}
@media (max-width:1000px){.paths{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.paths{grid-template-columns:minmax(0,1fr)}}

/* how to join */
.join{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;counter-reset:none}
.join li{background:var(--panel);border:1px solid var(--line);border-radius:var(--r);padding:24px}
.join b{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--bg);font-weight:500;font-size:.875rem;margin-bottom:24px}
.join h3{margin-bottom:6px}
.join p{color:var(--muted);margin:0;font-size:1rem}
.join__cta{justify-content:center;margin-top:32px}
@media (max-width:760px){.join{grid-template-columns:minmax(0,1fr)}}

/* section heading with a link on the right */
.row-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:28px}
.row-head h2{font-size:clamp(1.375rem,2.4vw,1.75rem)}

/* talk to admissions */
.home-talk{border-top:1px solid var(--line-soft)}
.talk{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,6vw,96px);align-items:start}
.talk__text .lede{margin-top:16px}
.talk__text .actions{margin-top:24px}
.talk__contact{list-style:none;margin-top:28px;display:grid;gap:6px;color:var(--muted);font-size:.9375rem}
.talk__contact a{color:var(--ink);text-decoration:none}
.talk__contact a:hover{text-decoration:underline}
@media (max-width:860px){.talk{grid-template-columns:minmax(0,1fr)}}

/* used by other pages that borrow home patterns */
.tile__body .slot-time{font-size:1.35rem;letter-spacing:-.01em;color:var(--ink)!important;margin:4px 0 2px}
.slot-tile .tile__body{padding:28px}
.programme-tile .checks li{font-size:.9rem}
.programme-tile .tile__body p{font-size:.95rem}

/* hero badge and campus classroom */
.hero-badge{display:inline-flex;align-items:center;gap:6px;margin:0 0 22px;padding:6px 14px 6px 10px;border-radius:999px;border:1px solid var(--line-strong);font-size:.875rem;font-weight:500;color:var(--ink)}
.hero-badge .ms{color:var(--primary)}
.classroom{width:min(100%,440px);display:grid;gap:18px}
.classroom__screen{background:var(--scene-card);border-radius:var(--r);box-shadow:var(--shadow-window);overflow:hidden}
.cs-bar{display:flex;align-items:center;gap:5px;height:30px;padding:0 12px;border-bottom:1px solid var(--line-soft);font-size:.7rem;color:var(--faint)}
.cs-bar i{width:8px;height:8px;border-radius:50%;background:var(--panel-3)}
.cs-bar span{margin-left:8px}
.classroom__screen pre{margin:0;padding:16px 16px 20px;font:400 .78rem/1.8 var(--mono);color:var(--ink-2);white-space:pre-wrap}
.classroom__screen .k{color:var(--primary)}.classroom__screen .c{color:var(--faint)}
.classroom__desks{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}
.classroom__desks>span{display:grid;place-items:center;aspect-ratio:4/3;border-radius:var(--r-xs);background:var(--scene-card);box-shadow:var(--shadow-window)}
.classroom__desks .ms{font-size:22px;color:var(--ink-2)}
.page-home .facilities{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 20px;margin:24px 0 28px}
.page-home .facilities li{display:flex;gap:10px;align-items:flex-start;font-size:.9375rem;color:var(--ink-2)}
.page-home .facilities .ms{font-size:20px;color:var(--primary);flex:none}
@media (max-width:520px){.page-home .facilities{grid-template-columns:minmax(0,1fr)}}

/* ───────── photo hero (full-bleed photo, dark overlay, teal bar behind the first words) ───────── */
.slide--photo{isolation:isolate;overflow:hidden;display:flex;align-items:center;color:#fff;background:#0b1f1c}
.photo-hero__bg{position:absolute;inset:0;z-index:-2;background:url(/assets/img/hero-sm.jpg) 72% center/cover no-repeat}
@media (min-width:900px){.photo-hero__bg{background-image:url(/assets/img/hero.jpg);background-position:center top}}
.slide--photo::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,26,44,.82) 0%,rgba(8,26,44,.6) 40%,rgba(8,26,44,.28) 72%,rgba(8,26,44,.12) 100%)}
@media (max-width:899px){.slide--photo::before{background:linear-gradient(180deg,rgba(8,26,44,.35) 0%,rgba(8,26,44,.72) 55%,rgba(8,26,44,.85) 100%)}}
.photo-hero__inner{padding-top:clamp(72px,10vw,120px);padding-bottom:clamp(72px,10vw,120px)}
.photo-hero__eyebrow{margin:0 0 28px;font-size:.9375rem;color:rgba(255,255,255,.85)}
.slide--photo h1{color:#fff;font-weight:700;font-size:clamp(2.25rem,5vw,3.75rem);line-height:1;letter-spacing:-.035em;max-width:11ch}
.slide--photo .hl{position:relative;z-index:0;white-space:nowrap}
/* the teal block starts at the page edge and sits behind the lower half of the first words */
.slide--photo .hl::before{content:"";position:absolute;z-index:-1;right:28%;left:-100vw;top:40%;bottom:12%;background:var(--bar)}
.photo-hero__lede{max-width:480px;margin:22px 0 0;font-size:1rem;line-height:1.6;color:rgba(255,255,255,.88)}
.slide--photo .actions{margin-top:32px}
.slide--photo .btn--white{background:#fff;color:#0d0d0d}
.slide--photo .btn--white:hover{background:#e9e9e9}
.btn--ghost-light{background:transparent;color:#fff;border-color:rgba(255,255,255,.55)}
.btn--ghost-light:hover{background:rgba(255,255,255,.1);border-color:#fff}
.photo-hero__credit{position:absolute;left:16px;bottom:10px;margin:0;font-size:.6875rem;color:rgba(255,255,255,.55)}
@media (max-width:640px){.photo-hero__credit{right:auto;left:16px}}

/* ───────── hero slider ───────── */
.hero-slider{position:relative;padding-bottom:8px}
.slides{display:grid}
.slide{grid-area:1/1;position:relative;min-height:min(72vh,560px);opacity:0;visibility:hidden;transition:opacity .6s ease,visibility 0s linear .6s}
.slide.is-active{opacity:1;visibility:visible;transition:opacity .6s ease}
@media (prefers-reduced-motion:reduce){.slide,.slide.is-active{transition:none}}
/* the second words of each title carry the teal bar too */
.slide .hl{position:relative;z-index:0;white-space:nowrap}
.slide .hl::before{content:"";position:absolute;z-index:-1;right:28%;left:-100vw;top:40%;bottom:12%;background:var(--bar)}

/* welcome + profile slides: white, text beside a photo */
.slide--welcome,.slide--profile{display:flex;align-items:center;background:var(--bg);overflow:hidden}
.slide__grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:clamp(32px,6vw,96px);align-items:center;padding-top:clamp(48px,7vw,88px);padding-bottom:clamp(48px,7vw,88px)}
.slide__grid--flip{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr)}
.slide__title{font-weight:700;font-size:clamp(2rem,4.2vw,3.25rem);line-height:1.02;letter-spacing:-.03em;max-width:12ch}
.slide__text .lede{margin-top:18px;max-width:440px}
.slide__text .actions{margin-top:28px}
.slide__points{list-style:none;display:grid;gap:10px;margin-top:22px}
.slide__points li{display:flex;gap:10px;align-items:center;color:var(--ink-2)}
.slide__points .ms{color:var(--primary);font-size:20px}
.slide__media{position:relative;isolation:isolate}
.slide__media img{display:block;width:100%;height:auto}
/* circle photo with a teal bar running out to the right edge (as in the reference) */
.slide__media--circle{justify-self:center;width:min(100%,340px)}
.slide__media--circle img{aspect-ratio:1;object-fit:cover;border-radius:50%}
.slide__media--circle::before{content:"";position:absolute;z-index:-1;left:60%;right:-100vw;top:38%;height:22%;background:var(--bar)}
/* rectangular photo with a teal bar coming in from the left edge */
.slide__media--rect img{border-radius:var(--r);aspect-ratio:4/3;object-fit:cover}
.slide__media--rect::before{content:"";position:absolute;z-index:1;left:-100vw;right:92%;top:30%;height:24%;background:var(--bar)}
.slide__credit{position:absolute;left:0;bottom:-26px;margin:0;font-size:.6875rem;color:var(--faint)}
@media (max-width:860px){
  .slide__grid,.slide__grid--flip{grid-template-columns:minmax(0,1fr)}
  .slide__grid--flip .slide__media{order:2}
  .slide__media--circle{width:min(70%,300px)}
  .slide__media--rect{max-width:480px}
}

/* preview cards below the slides */
.slide-nav{position:relative;display:flex;align-items:center;margin-top:28px;z-index:2}
.slide-thumbs{display:grid;grid-template-columns:repeat(3,240px);gap:20px;overflow-x:auto;scrollbar-width:none;padding:6px}
.slide-thumbs::-webkit-scrollbar{display:none}
.thumb{position:relative;height:132px;border-radius:14px;border:1px solid var(--line);background:var(--bg);padding:14px;display:flex;gap:10px;align-items:center;text-align:left;cursor:pointer;overflow:hidden;box-shadow:0 8px 24px rgba(13,13,13,.08);outline-offset:3px;transition:box-shadow .2s,transform .2s}
.thumb:hover{transform:translateY(-2px)}
.thumb[aria-current="true"]{box-shadow:0 0 0 3px var(--bar),0 8px 24px rgba(13,13,13,.12)}
.thumb__eyebrow{display:block;font-size:.55rem;color:var(--muted);margin-bottom:6px}
.thumb__title{display:block;font-weight:700;font-size:.95rem;line-height:1.1;color:var(--ink)}
.thumb__btn{display:block;width:38px;height:9px;border-radius:99px;background:var(--ink);margin-top:10px}
.thumb__text{flex:1;min-width:0}
.thumb--photo{background:#0b1f1c url(/assets/img/hero-sm.jpg) center/cover;align-items:flex-end;flex-direction:column;justify-content:center;align-items:flex-start}
.thumb--photo::before{content:"";position:absolute;inset:0;background:rgba(8,26,44,.6)}
.thumb--photo>*{position:relative}
.thumb--photo .thumb__eyebrow{color:rgba(255,255,255,.8)}
.thumb--photo .thumb__title{color:#fff;font-size:1.5rem;position:relative;z-index:0}
.thumb--photo .thumb__title i{position:absolute;z-index:-1;left:-30px;width:70px;top:45%;height:45%;background:var(--bar)}
.thumb__circle{width:64px;height:64px;border-radius:50%;flex:none;background:url(/assets/img/slide-welcome.jpg) center/cover}
.thumb__img{width:84px;align-self:stretch;border-radius:8px;flex:none;background:url(/assets/img/slide-profile.jpg) center/cover}
.slide-next{position:relative;margin-left:-26px;width:56px;height:56px;border-radius:50%;border:1px solid var(--line);background:var(--bg);color:var(--ink);display:grid;place-items:center;cursor:pointer;box-shadow:0 8px 24px rgba(13,13,13,.14);flex:none}
.slide-next:hover{background:var(--panel-2)}
.slide-next .ms{font-size:28px}
@media (max-width:860px){.slide-nav{margin-top:20px}.slide-thumbs{grid-template-columns:repeat(3,200px)}.thumb{height:112px}}
@media (max-width:520px){.slide-next{display:none}}
.slide--profile .slide__title .hl::before{display:none}

/* Cursor-style flat items: no boxes, a hairline on top, plain text (replaces the boxed cards) */
.page-home .benefit,.page-home .trust,.page-home .join li,.page-home .path{background:none;border:0;border-top:1px solid var(--line-strong);border-radius:0;padding:22px 0 0;min-height:0}
.page-home .benefit .ms,.page-home .trust .ms{font-size:22px;color:var(--muted);margin:0 0 18px}
.page-home .benefit h3,.page-home .trust h3{margin:0 0 6px}
.page-home .grid-3,.page-home .diff-grid,.page-home .join{gap:40px 32px}
.page-home .diff-grid{row-gap:48px;grid-template-columns:repeat(2,minmax(0,1fr))}
.page-home .join b{background:none;color:var(--muted);width:auto;height:auto;display:block;font:400 .875rem var(--mono);margin-bottom:14px}
.page-home .join b::before{content:"0"}
.page-home .path{gap:0}
.page-home .path h3{margin-bottom:8px}
.page-home .paths{gap:40px 32px}

/* campus: real classroom video beside the text */
.campus{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(32px,6vw,88px);align-items:center}
.campus__video{margin:0}
.campus__video video{display:block;width:100%;aspect-ratio:9/16;max-height:640px;object-fit:cover;border-radius:var(--r-lg);background:var(--panel)}
.campus__video figcaption{margin-top:10px;font-size:.8125rem;color:var(--muted)}
.campus__text .lede{margin:16px 0 24px}
.campus__text .actions{margin-top:28px}
@media (max-width:860px){.campus{grid-template-columns:minmax(0,1fr)}.campus__video{max-width:360px}}

/* who it is for: a photo on top of each column */
.page-home .path{border-top:0;padding-top:0}
.path__img{display:block;width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;border-radius:var(--r);margin-bottom:18px}

/* the slider sits inside the page width with rounded corners (OpenAI manner), not edge to edge */
.hero-slider{max-width:calc(var(--max) + var(--gutter)*2);margin:0 auto;padding:16px var(--gutter) 8px}
.hero-slider .slides{border-radius:var(--r-lg);overflow:hidden}
.hero-slider .slide .container,.hero-slider .slide-nav{padding-left:clamp(20px,4vw,48px);padding-right:clamp(20px,4vw,48px)}
.hero-slider .slide-nav{padding-left:0;padding-right:0}
.slide--welcome,.slide--profile{background:var(--panel)}
.campus__video video{max-height:520px}

/* ───────── phones: compact, centred blocks (Anthropic manner) ───────── */
@media (max-width:640px){
  /* slider: shorter slides, smaller titles */
  .hero-slider{padding:10px 16px 4px}
  .slide{min-height:0}
  .slide--photo{min-height:470px}
  .photo-hero__inner{padding-top:40px;padding-bottom:40px}
  .photo-hero__eyebrow{font-size:.8125rem;margin-bottom:16px}
  .slide--photo h1{font-size:2.125rem}
  .photo-hero__lede{font-size:.9375rem;margin-top:14px}
  .slide--photo .actions{margin-top:22px;gap:8px}
  .slide--photo .btn--lg,.slide__text .btn--lg{--h:40px;padding:0 18px;font-size:.875rem}
  .slide__grid{padding-top:32px;padding-bottom:32px;gap:24px;text-align:center}
  .slide__grid--flip .slide__media{order:0}
  .slide__title{font-size:1.875rem;margin:0 auto}
  .slide__text .lede{margin:12px auto 0}
  .slide__text .actions{justify-content:center;margin-top:18px}
  .slide__points{justify-items:center;margin-top:14px}
  .slide__points li{font-size:.875rem}
  .slide__media--circle{width:180px}
  .slide__media--rect{max-width:260px;margin:0 auto}
  .slide .hl::before{display:none}
  .slide--photo .hl::before{display:block}
  .photo-hero__credit{font-size:.625rem}
  /* preview cards: three small equal cards, centred, no sideways scrolling */
  .slide-nav{justify-content:center;margin-top:14px}
  .slide-thumbs{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;overflow:visible;padding:3px}
  .thumb{height:56px;padding:8px;border-radius:10px;gap:6px;justify-content:center;box-shadow:none}
  .thumb__eyebrow,.thumb__btn,.thumb__circle,.thumb__img{display:none}
  .thumb__title{font-size:.75rem;text-align:center}
  .thumb--photo .thumb__title{font-size:.8125rem}
  .thumb--photo .thumb__title i{display:none}
  .thumb--photo{align-items:center}
  .thumb[aria-current="true"]{box-shadow:0 0 0 2px var(--bar)}
  .slide-next{display:none}

  /* flat item lists: centred, narrower */
  .page-home .grid-3,.page-home .diff-grid,.page-home .join{grid-template-columns:minmax(0,1fr);gap:28px;max-width:340px;margin-left:auto;margin-right:auto}
  .page-home .benefit,.page-home .trust,.page-home .join li{text-align:center;padding-top:18px}
  .page-home .benefit .ms,.page-home .trust .ms{margin:0 auto 10px;display:block}
  .page-home .benefit p,.page-home .trust p,.page-home .join p{font-size:.875rem}
  .page-home .join b{margin-bottom:6px}

  /* who it is for: two small cards per row with compact square art */
  .page-home .paths{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}
  .path{text-align:center}
  .path__img{aspect-ratio:1;object-fit:cover;object-position:50% 40%;margin-bottom:10px;border-radius:10px}
  .path h3{font-size:.9375rem;margin-bottom:4px}
  .path p{font-size:.8125rem;margin-bottom:8px}
  .path .text-link{font-size:.8125rem}

  /* campus: smaller video, centred */
  .campus{gap:24px}
  .campus__video{max-width:220px;margin:0 auto;text-align:center}
  .campus__video video{max-height:390px}
  .campus__text{text-align:center}
  .campus__text .ideas li{grid-template-columns:minmax(0,1fr);gap:2px;text-align:center;padding:12px 0}
  .campus__text .ideas span{font-size:.875rem}
  .campus__text .actions{justify-content:center}

  /* courses, FAQ, contact */
  .row-head{justify-content:center;text-align:center;flex-direction:column;align-items:center;gap:6px}
  .page-home .course-card{padding:18px;max-width:340px;margin:0 auto;width:100%}
  .page-home .faq summary{font-size:.9375rem;padding:16px 0}
  .talk{text-align:center;gap:28px}
  .talk__text .actions{justify-content:center}
  .talk__form{text-align:left}
}
@media (max-width:640px){
  .slide--welcome .slide__media{order:-1}
  .slide__media--circle::before,.slide__media--rect::before{display:none}
  .slide__points{display:grid;justify-content:center;text-align:left}
}
@media (max-width:640px){.slide__points{justify-items:start;max-width:290px;margin-left:auto;margin-right:auto}.slide__points li{text-align:left}}

/* no announcement bar on the home page (the slider already says it) */
.page-home .announce{display:none}

/* phones: all three preview cards show their photo, like the first */
@media (max-width:640px){
  .thumb--welcome,.thumb--profile{position:relative;border:0;align-items:center;justify-content:center}
  .thumb--welcome{background:#0b1f1c url(/assets/img/slide-welcome.jpg) center 30%/cover}
  .thumb--profile{background:#0b1f1c url(/assets/img/slide-profile.jpg) center 30%/cover}
  .thumb--welcome::before,.thumb--profile::before{content:"";position:absolute;inset:0;background:rgba(8,26,44,.6);border-radius:inherit}
  .thumb--welcome .thumb__text,.thumb--profile .thumb__text{position:relative;flex:none}
  .thumb--welcome .thumb__title,.thumb--profile .thumb__title{color:#fff}
}
@media (max-width:640px){.thumb__text{flex:1!important;min-width:0}.thumb__title{white-space:normal;overflow-wrap:anywhere}}
@media (max-width:640px){.thumb__more{display:none}}

/* preview cards, all sizes: small, flat, photo + title only (no shadows) */
.slide-nav{margin-top:14px;gap:10px}
.slide-thumbs{grid-template-columns:repeat(3,180px);gap:10px;padding:0;overflow:visible;background:none}
.thumb{height:64px;padding:8px 12px;border:0;border-radius:10px;box-shadow:none!important;justify-content:center;align-items:center;transform:none!important}
.thumb__eyebrow,.thumb__btn,.thumb__circle,.thumb__img,.thumb--photo .thumb__title i{display:none}
.thumb__text{flex:none;position:relative}
.thumb__title,.thumb--photo .thumb__title{color:#fff;font-size:.8125rem;font-weight:600;text-align:center}
.thumb--welcome{background:#0b1f1c url(/assets/img/slide-welcome.jpg) center 30%/cover}
.thumb--profile{background:#0b1f1c url(/assets/img/slide-profile.jpg) center 30%/cover}
.thumb::before{content:"";position:absolute;inset:0;background:rgba(8,26,44,.55);border-radius:inherit;transition:background .2s}
.thumb:hover::before{background:rgba(8,26,44,.4)}
.thumb[aria-current="true"]{box-shadow:none!important;outline:2px solid var(--bar);outline-offset:2px}
.thumb__more{display:none}
.slide-next{width:40px;height:40px;margin-left:0;box-shadow:none;border:1px solid var(--line-strong);background:transparent}
.slide-next .ms{font-size:22px}
@media (max-width:640px){.slide-thumbs{grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:8px}.thumb{height:52px}.slide-next{display:none}}

/* admissions strip: the flyer's yellow panel, as a live section */
.admit-wrap{padding:28px 0 0}
.admit{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:clamp(24px,4vw,48px);align-items:center;background:var(--bar);color:#141414;border-radius:var(--r-lg);padding:clamp(24px,3.5vw,36px) clamp(24px,4vw,44px)}
.admit__label{margin:0;font-size:.75rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase}
.admit__fee{margin:2px 0 0;font-size:clamp(2rem,4vw,2.75rem);font-weight:700;letter-spacing:-.04em;line-height:1}
.admit__note{margin:4px 0 0;font-size:.8125rem}
.admit__facts{list-style:none;display:grid;gap:10px;padding-left:clamp(24px,4vw,48px);border-left:1.5px solid rgba(20,20,20,.25)}
.admit__facts li{display:flex;gap:10px;align-items:flex-start;font-size:.875rem;line-height:1.4}
.admit__facts .ms{font-size:20px;flex:none}
.admit__facts b{display:block;font-weight:600}
.admit__cta{display:grid;gap:8px}
.admit .btn--primary{background:#141414;color:#fff}
.admit .btn--primary:hover{background:#000}
.btn--outline-dark{background:transparent;color:#141414;border-color:rgba(20,20,20,.45)}
.btn--outline-dark:hover{background:rgba(20,20,20,.08)}
@media (max-width:860px){
  .admit{grid-template-columns:minmax(0,1fr);text-align:center;gap:20px}
  .admit__facts{border-left:0;padding-left:0;border-top:1.5px solid rgba(20,20,20,.25);padding-top:18px;justify-items:center}
  .admit__facts li{text-align:left;width:100%;max-width:300px}
  .admit__cta{grid-template-columns:1fr 1fr}
}
@media (max-width:640px){.admit-wrap{padding:20px 0 0}.admit .btn--lg{--h:42px;padding:0 12px;font-size:.875rem}}

/* apply page: share the flyer */
.flyer-box{display:grid;grid-template-columns:240px minmax(0,1fr);gap:clamp(20px,4vw,40px);align-items:center;background:var(--panel);border-radius:var(--r-lg);padding:clamp(18px,3vw,28px);max-width:760px;margin:0 auto}
.flyer-box__img img{display:block;width:100%;height:auto;border-radius:var(--r)}
.flyer-box .muted{margin:6px 0 16px}
.flyer-box .btn .ms{font-size:18px}
@media (max-width:560px){.flyer-box{grid-template-columns:minmax(0,1fr);text-align:center}.flyer-box__img{max-width:260px;margin:0 auto}.flyer-box .actions{justify-content:center}}
.admit__was{display:block;font-size:.45em;font-weight:600;letter-spacing:-.01em;opacity:.6;text-decoration-thickness:2px;margin-bottom:2px}
.admit__deal{display:inline-block;margin-left:6px;padding:2px 8px;border-radius:99px;background:#141414;color:var(--bar);font-size:.6875rem;letter-spacing:.06em;vertical-align:1px}

/* From AI to SI */
.si-tag{display:inline-block;margin-left:8px;padding:2px 10px;border-radius:99px;background:var(--bar);color:#141414;font-size:.75rem;font-weight:600;vertical-align:1px}
.ai-si{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(28px,5vw,72px);align-items:center;background:var(--panel);border-radius:var(--r-lg);padding:clamp(24px,4vw,48px)}
.ai-si__head .lede{margin-top:14px}
.ai-si__steps{list-style:none;display:grid;border-top:1px solid var(--line-strong)}
.ai-si__steps li{display:grid;grid-template-columns:80px 110px minmax(0,1fr);gap:12px;align-items:baseline;padding:16px 0;border-bottom:1px solid var(--line-strong)}
.ai-si__tag{font:400 .75rem var(--mono);color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.ai-si__steps b{font-size:1.125rem;font-weight:600;color:var(--ink)}
.ai-si__steps li:last-child b{background:linear-gradient(transparent 55%,var(--bar) 55%,var(--bar) 90%,transparent 90%);justify-self:start}
.ai-si__steps span:last-child{color:var(--muted);font-size:.9375rem}
@media (max-width:860px){.ai-si{grid-template-columns:minmax(0,1fr)}}
@media (max-width:640px){
  .ai-si{text-align:center}
  .ai-si__steps li{grid-template-columns:minmax(0,1fr);gap:2px;justify-items:center;text-align:center}
  .ai-si__steps li:last-child b{justify-self:center}
  .si-tag{display:table;margin:8px 0 0}
}

/* admissions strip: calm beige panel, black text, yellow only on the price highlight */
.admit{background:var(--panel);color:var(--ink);border:1px solid var(--line)}
.admit__label,.admit__note,.admit__facts li{color:var(--muted)}
.admit__was{color:var(--muted);opacity:.8}
.admit__fee{color:var(--ink)}
.admit__fee{background:linear-gradient(transparent 62%,var(--bar) 62%,var(--bar) 92%,transparent 92%);display:inline-block}
.admit__facts{border-color:var(--line-strong)!important}
.admit__facts b{color:var(--ink)}
.admit__facts .ms{color:var(--ink)}
.admit__deal{background:var(--bar);color:#141414}
.admit .btn--primary{background:var(--ink);color:var(--bg)}
.admit .btn--primary:hover{background:#000}
.admit .btn--outline-dark{color:var(--ink);border-color:var(--line-strong)}
.admit .btn--outline-dark:hover{background:var(--panel-2)}

/* phones: tidier preview cards (one-line labels, readable overlay, tight outline) */
@media (max-width:640px){
  .slide-thumbs{gap:8px}
  .thumb{height:48px;padding:0 6px;border-radius:10px}
  .thumb::before{background:linear-gradient(180deg,rgba(8,26,44,.45),rgba(8,26,44,.78))!important}
  .thumb__title,.thumb--photo .thumb__title{font-size:.75rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;letter-spacing:0}
  .thumb[aria-current="true"]{outline:2px solid var(--bar);outline-offset:0}
}

/* ───────── animated artwork (hero + From AI to SI) ───────── */
.slide--photo{background:#0e1d33}
.slide--photo::before{display:none}
.hero-art{position:absolute;z-index:-1;top:0;right:0;width:58%;height:100%;display:block}
.slide--photo .photo-hero__inner{position:relative}
@media (max-width:899px){
  .hero-art{width:100%;opacity:.32}
}
.thumb--photo{background:#0e1d33 radial-gradient(circle at 72% 60%,#f5b700 0 9px,transparent 10px)!important}
.si-art{display:block;width:100%;height:220px;margin-top:24px}
@media (max-width:640px){.si-art{height:180px}}
.thumb--photo{background:#0e1d33 radial-gradient(circle at 90% 70%,#f5b700 0 7px,transparent 8px)!important}

/* gentle fade-ins: children of grids arrive one after another */
.reveal>*{transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal:not(.in)>*{opacity:0;transform:translateY(14px)}
.reveal.in>*:nth-child(2){transition-delay:.08s}.reveal.in>*:nth-child(3){transition-delay:.16s}.reveal.in>*:nth-child(4){transition-delay:.24s}.reveal.in>*:nth-child(5){transition-delay:.32s}
@media (prefers-reduced-motion:reduce){.reveal>*,.reveal:not(.in)>*{opacity:1;transform:none;transition:none}}

/* hover effects */
.path__img{transition:transform .35s cubic-bezier(.2,.7,.2,1)}
.path:hover .path__img{transform:translateY(-4px)}
.page-home .course-card{transition:transform .25s ease,background-color .2s,border-color .2s}
.page-home .course-card:hover{transform:translateY(-3px)}
.page-home .benefit .ms,.page-home .trust .ms{transition:color .25s,transform .25s}
.page-home .benefit:hover .ms,.page-home .trust:hover .ms{color:var(--primary);transform:translateY(-2px)}
.ai-si__steps li{transition:padding-left .25s}
.ai-si__steps li:hover{padding-left:6px}
.btn{transition:background-color .15s,border-color .15s,color .15s,transform .15s}
.btn:active{transform:scale(.98)}
.text-link{transition:gap .2s}

/* ───────── live 3D hero stage ───────── */
.hero-slider .slides{position:relative;background:#0e1d33 radial-gradient(ellipse 60% 70% at 72% 50%,#16294a 0,#0e1d33 70%)}
.hero-slider .slide{z-index:2;background:transparent}
.scene3d{position:absolute;inset:0;width:100%;height:100%;z-index:1;display:block;pointer-events:none}
.scene-labels{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.scene-label{position:absolute;left:0;top:0;opacity:0;white-space:nowrap;font:500 .75rem var(--font);letter-spacing:.04em;color:#dfe6f1;padding:4px 10px 4px 20px;border:1px solid rgba(223,230,241,.22);border-radius:99px;background:rgba(14,29,51,.55);will-change:transform,opacity}
.scene-label::before{content:"";position:absolute;left:8px;top:50%;width:6px;height:6px;margin-top:-3px;border-radius:50%;background:var(--bar)}
.has-3d .hero-art{display:none}
.slide--photo h1,.slide--photo .slide-h{color:#fff;font-weight:700;font-size:clamp(2.25rem,5vw,3.75rem);line-height:1;letter-spacing:-.035em;max-width:11ch}
@media (max-width:640px){.slide--photo .slide-h{font-size:2.125rem}}
/* preview cards: plain dark tabs with a small yellow dot */
.slide-thumbs .thumb{background:#0e1d33!important}
.slide-thumbs .thumb::before{display:none}
.slide-thumbs .thumb__title{display:flex;align-items:center;gap:8px}
.slide-thumbs .thumb__title::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--bar);flex:none}
/* slide change: old text fades out first, then the new text fades in (no overlapping headlines) */
.slide{transition:opacity .3s ease,visibility 0s linear .3s}
.slide.is-active{transition:opacity .5s ease .3s,visibility 0s}

/* ───────── advert-style hero motion ───────── */
.ad-title .w{display:inline-block;opacity:0;transform:translateY(.45em);filter:blur(6px);transition:opacity .55s cubic-bezier(.2,.7,.2,1),transform .55s cubic-bezier(.2,.7,.2,1),filter .55s}
.slide.play .ad-title .w{opacity:1;transform:none;filter:none}
.ad-rot{display:inline}
.ad-rot.out .w{opacity:0!important;transform:translateY(-.4em)!important;filter:blur(6px)!important;transition-duration:.35s!important;transition-delay:0s!important}
.ad-rot.in .w{animation:adIn .55s cubic-bezier(.2,.7,.2,1) both}
.ad-rot.in .w:nth-child(2){animation-delay:.06s}.ad-rot.in .w:nth-child(3){animation-delay:.12s}.ad-rot.in .w:nth-child(4){animation-delay:.18s}.ad-rot.in .w:nth-child(5){animation-delay:.24s}.ad-rot.in .w:nth-child(6){animation-delay:.3s}
@keyframes adIn{from{opacity:0;transform:translateY(.45em);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
/* the rest of the slide rises in after the headline */
.slide--photo .photo-hero__eyebrow,.slide--photo .photo-hero__lede,.slide--photo .actions{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s cubic-bezier(.2,.7,.2,1)}
.slide.play .photo-hero__eyebrow{opacity:1;transform:none;transition-delay:.1s}
.slide.play .photo-hero__lede{opacity:1;transform:none;transition-delay:.9s}
.slide.play .actions{opacity:1;transform:none;transition-delay:1.15s}
/* the yellow bar sweeps in from the left */
.slide--photo .hl::before{transform-origin:left;transform:scaleX(0);transition:transform .7s cubic-bezier(.2,.7,.2,1) .25s}
.slide.play .hl::before{transform:scaleX(1)}
/* keep the headline from jumping as lines change length */
.slide--photo .ad-title{min-height:2.05em}
/* story-style progress bars on the cards */
.thumb{position:relative;overflow:hidden}
.thumb__bar{position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--bar);transform-origin:left;transform:scaleX(0);pointer-events:none}
@media (prefers-reduced-motion:reduce){
  .ad-title .w,.slide--photo .photo-hero__eyebrow,.slide--photo .photo-hero__lede,.slide--photo .actions{opacity:1;transform:none;filter:none;transition:none}
  .slide--photo .hl::before{transform:none}
  .thumb__bar{display:none}
}

/* ───────── Stories carousel ───────── */
.stories-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;margin-bottom:24px}
.stories-head .eyebrow{margin-bottom:8px}
.stories-head h2{font-size:clamp(1.5rem,2.6vw,2rem)}
.stories-ctrl{display:flex;gap:8px}
.stories-btn{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);background:var(--bg);color:var(--ink);display:grid;place-items:center;cursor:pointer;transition:background-color .15s}
.stories-btn:hover{background:var(--panel-2)}
.stories-btn .ms{font-size:20px}
.stories{list-style:none;display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 40px)/3);gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;padding:2px 2px 6px;margin:0 -2px}
.stories::-webkit-scrollbar{display:none}
.stories:focus-visible{outline:2px solid var(--primary);outline-offset:4px;border-radius:var(--r)}
.story{scroll-snap-align:start}
.story__link{display:flex;flex-direction:column;height:100%;color:inherit;text-decoration:none}
.story__tag{display:inline-flex;align-items:center;gap:8px;font-size:.8125rem;color:var(--muted);margin-bottom:12px}
.story__tag i{font-style:normal;font-size:.625rem;letter-spacing:1px;padding:2px 8px;border-radius:99px;background:var(--panel-2);color:var(--ink-2)}
.story__art{display:block;border-radius:var(--r);overflow:hidden;background:#efebe0;aspect-ratio:4/3;margin-bottom:16px}
.story__art img{display:block;width:100%;height:100%;object-fit:cover;object-position:50% 40%;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.story__link:hover .story__art img{transform:scale(1.04)}
.story__title{font-size:1.1875rem;font-weight:600;color:var(--ink);line-height:1.25;letter-spacing:-.01em}
.story__link:hover .story__title{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:1px}
.story__text{margin-top:8px;color:var(--muted);font-size:.9375rem;line-height:1.5}
.story__cta{margin-top:auto;padding-top:14px;font-size:.875rem;font-weight:500;color:var(--ink)}
@media (max-width:960px){.stories{grid-auto-columns:calc((100% - 20px)/2)}}
@media (max-width:640px){
  .stories-head{align-items:center}
  .stories-ctrl [data-stories-prev],.stories-ctrl [data-stories-next]{display:none}
  .stories{grid-auto-columns:78%;gap:14px;margin-right:-16px;padding-right:16px}
  .story__title{font-size:1.0625rem}
  .story__text{font-size:.875rem}
}

/* hero pause button */
.hero-pause{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);background:transparent;color:var(--ink);display:grid;place-items:center;cursor:pointer;flex:none}
.hero-pause .ms{font-size:20px}
@media (max-width:640px){.hero-pause{width:34px;height:34px}.slide-nav{gap:8px}}
.stories .story__link,.stories .story__link *{text-decoration:none!important;color:inherit}.stories .story__title{color:var(--ink)}.stories .story__text,.stories .story__tag{color:var(--muted)}.stories .story__link:hover .story__title{text-decoration:underline!important;text-underline-offset:4px}

/* ───────── Hero stage (centred cards over a live 3D halo, light background) ───────── */
.hstage{position:relative;isolation:isolate;overflow:hidden;max-width:calc(var(--max) + var(--gutter)*2);margin:16px auto 0;border-radius:var(--r-lg);background:#f6f6f4}
@media (min-width:1040px){.hstage{margin-left:auto;margin-right:auto;width:calc(100% - var(--gutter)*2);max-width:var(--max)}}
.hstage .scene3d{position:absolute;inset:0;width:100%;height:100%;z-index:-1;display:block;pointer-events:none}
.hstage__inner{display:flex;flex-direction:column;align-items:center;text-align:center;padding:clamp(40px,6vw,64px) 20px 22px}
.hstage__eyebrow{margin:0 0 18px;font-size:.875rem;color:var(--muted)}
.hstage__title{font-weight:700;font-size:clamp(2.1rem,5vw,3.6rem);line-height:1.04;letter-spacing:-.035em;color:var(--ink);max-width:16ch;min-height:2.1em}
.hstage__lead{background:linear-gradient(transparent 58%,var(--bar) 58%,var(--bar) 92%,transparent 92%);padding:0 .06em}
.hstage__title .w{display:inline-block;animation:adIn .55s cubic-bezier(.2,.7,.2,1) both}
.hstage__cards{position:relative;width:100%;height:clamp(300px,34vw,360px);margin:26px 0 24px}
.hcard{position:absolute;left:50%;top:50%;width:min(300px,72vw);margin:0;padding:10px 10px 12px;background:#fff;border-radius:16px;box-shadow:0 18px 40px rgba(20,20,20,.10),0 2px 6px rgba(20,20,20,.06);
  opacity:0;transform:translate(-50%,-42%) rotate(-5deg) scale(.92);transition:opacity .6s ease,transform .8s cubic-bezier(.2,.7,.2,1);pointer-events:none}
.hcard.is-in{opacity:1;transform:translate(-50%,-50%) rotate(-1.5deg) scale(1)}
.hcard.is-out{opacity:0;transform:translate(-95%,-60%) rotate(4deg) scale(.9);transition-duration:.55s,.7s}
.hcard img{display:block;width:100%;aspect-ratio:5/4;object-fit:cover;object-position:50% 45%;border-radius:10px;background:#efebe0}
.hcard figcaption{display:flex;flex-direction:column;align-items:flex-start;gap:4px;padding:10px 4px 0;text-align:left}
.hcard__tag{font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);background:#f6f6f4;border-radius:99px;padding:3px 9px}
.hcard__cap{font-size:.9375rem;color:var(--ink);line-height:1.35}
/* the reset: every card gathers into one grid */
.hgrid{list-style:none;position:absolute;inset:0;margin:0 auto;padding:0;max-width:820px;display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:1fr;gap:12px;align-content:center;pointer-events:none}
.htile{opacity:0;transform:scale(.6) translateY(20px);transition:opacity .45s ease,transform .6s cubic-bezier(.2,.7,.2,1);background:#fff;border-radius:12px;padding:6px 6px 8px;box-shadow:0 8px 20px rgba(20,20,20,.08)}
.htile img{display:block;width:100%;aspect-ratio:1;object-fit:cover;object-position:50% 45%;border-radius:8px;background:#efebe0}
.htile span{display:block;margin-top:6px;font-size:.6875rem;font-weight:600;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.is-grid .htile{opacity:1;transform:none}
.is-grid .htile:nth-child(1){transition-delay:.02s}.is-grid .htile:nth-child(2){transition-delay:.06s}.is-grid .htile:nth-child(3){transition-delay:.1s}.is-grid .htile:nth-child(4){transition-delay:.14s}.is-grid .htile:nth-child(5){transition-delay:.18s}.is-grid .htile:nth-child(6){transition-delay:.22s}.is-grid .htile:nth-child(7){transition-delay:.26s}.is-grid .htile:nth-child(8){transition-delay:.3s}.is-grid .htile:nth-child(9){transition-delay:.34s}.is-grid .htile:nth-child(10){transition-delay:.38s}.is-grid .htile:nth-child(11){transition-delay:.42s}
.hgrid .htile:nth-child(11){grid-column:3 / span 2;aspect-ratio:auto}
.hgrid .htile:nth-child(11) img{aspect-ratio:2/1}
.hstage__lede{max-width:520px;margin:0;color:var(--muted)}
.hstage__actions{justify-content:center;margin-top:20px}
.hstage__ctrl{display:flex;align-items:center;gap:14px;margin-top:22px}
.hstage__dots{list-style:none;display:flex;gap:6px;margin:0;padding:0}
.hstage__dots li{width:6px;height:6px;border-radius:99px;background:rgba(20,20,20,.18);transition:width .3s,background-color .3s}
.hstage__dots li.on{width:20px;background:var(--ink)}
.hstage__dots li.is-grid.on{background:var(--bar)}
.hstage .hero-pause{width:34px;height:34px}
@media (max-width:640px){
  .hstage{margin:10px 16px 0;width:auto}
  .hstage__inner{padding:32px 16px 18px}
  .hstage__eyebrow{font-size:.75rem;margin-bottom:12px}
  .hstage__eyebrow .si-tag{display:table;margin:6px auto 0}
  .hstage__title{font-size:2rem}
  .hstage__cards{height:290px;margin:18px 0}
  .hcard{width:220px}
  .hcard__cap{font-size:.8125rem}
  .hgrid{grid-template-columns:repeat(4,1fr);gap:8px;padding:0 4px}
  .htile{padding:4px;border-radius:9px}
  .htile span{display:none}
  .hgrid .htile:nth-child(11){grid-column:auto}
  .hgrid .htile:nth-child(11) img{aspect-ratio:1}
  .hstage__lede{font-size:.9375rem}
}
@media (prefers-reduced-motion:reduce){.hcard,.htile,.hstage__title .w{transition:none;animation:none}}
.hcard img,.htile img{height:auto!important}

/* ───────── artwork as the hero background (no card frames) ───────── */
.hstage{background:#efebe0}
.hstage__inner{position:relative;min-height:clamp(560px,72vh,680px);justify-content:center;padding-top:48px;padding-bottom:22px}
.hstage__cards{position:absolute;inset:0;width:auto;height:auto;margin:0;z-index:-2;pointer-events:none}
.hstage__cards::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 46% 42% at 50% 44%,rgba(239,235,224,.92) 0,rgba(239,235,224,.7) 45%,rgba(239,235,224,0) 100%)}
.hcard{inset:0;left:0;top:0;width:100%;height:100%;padding:0;background:none;border-radius:0;box-shadow:none;transform:scale(1.08);opacity:0;transition:opacity 1.1s ease,transform 3.6s ease-out}
.hcard.is-in{opacity:1;transform:scale(1)}
.hcard.is-out{opacity:0;transform:scale(.97);transition-duration:.9s,1.2s}
.hcard img{width:100%;height:100%!important;aspect-ratio:auto;object-fit:contain;object-position:50% 50%;border-radius:0;background:none}
.hcard figcaption{display:none}
/* the reset: every artwork tiles the whole background at once */
.hgrid{inset:0;max-width:none;margin:0;padding:0;gap:0;grid-template-columns:repeat(6,1fr);grid-auto-rows:auto;align-content:stretch;grid-template-rows:repeat(2,1fr)}
.htile{background:none;border-radius:0;padding:0;box-shadow:none;overflow:hidden}
.htile img{height:100%!important;aspect-ratio:auto;object-fit:cover;border-radius:0;background:none}
.htile span{display:none}
.hgrid .htile:nth-child(11){grid-column:auto}
.hgrid .htile:nth-child(11) img{aspect-ratio:auto}
.hgrid .htile:nth-child(12){display:none}
/* caption line under the headline */
.hstage__cap{margin:16px 0 22px;display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:8px;color:var(--ink-2);font-size:1rem;opacity:0}
.hstage__cap.in{animation:adIn .6s cubic-bezier(.2,.7,.2,1) .25s both}
.hstage__tag{font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:#141414;color:var(--bar);border-radius:99px;padding:3px 10px}
.hstage__lede{color:var(--ink-2)}
@media (max-width:640px){
  .hstage__inner{min-height:540px;padding-top:36px}
  .hstage__cards::after{background:radial-gradient(ellipse 80% 40% at 50% 46%,rgba(239,235,224,.94) 0,rgba(239,235,224,.75) 55%,rgba(239,235,224,0) 100%)}
  .hgrid{grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(4,1fr)}
  .hgrid .htile:nth-child(11){grid-column:2}
  .hstage__cap{font-size:.875rem;margin:12px 0 16px}
}
@media (prefers-reduced-motion:reduce){.hstage__cap{opacity:1}}
.hcard img{object-fit:cover!important;object-position:50% 52%!important}
.hstage__cards::after{background:radial-gradient(ellipse 40% 34% at 50% 42%,rgba(239,235,224,.88) 0,rgba(239,235,224,.55) 55%,rgba(239,235,224,0) 100%)}
@media (max-width:640px){.hcard img{object-position:50% 50%!important}.hstage__cards::after{background:radial-gradient(ellipse 85% 38% at 50% 44%,rgba(239,235,224,.9) 0,rgba(239,235,224,.6) 60%,rgba(239,235,224,0) 100%)}}
.hcard.is-in{opacity:.8}

/* ───────── readable hero: smaller, quieter artwork; colour follows each artwork ───────── */
.hstage{--accent:#f5b700;background:#f3f1ea}
.hcard{inset:auto 0 0 0;top:auto;height:62%;transform:translateY(24px) scale(.96)}
.hcard.is-in{opacity:.42;transform:none}
.hcard.is-out{transform:translateY(-10px) scale(.98)}
.hcard img{object-fit:contain!important;object-position:50% 100%!important;mix-blend-mode:multiply}
.hstage__cards::after{background:radial-gradient(ellipse 52% 46% at 50% 34%,rgba(243,241,234,.97) 0,rgba(243,241,234,.88) 55%,rgba(243,241,234,0) 100%)}
.hstage__lead{background:linear-gradient(transparent 60%,var(--accent) 60%,var(--accent) 92%,transparent 92%);transition:background .6s}
.hstage__tag{background:var(--ink);color:#fff;box-shadow:inset 3px 0 0 var(--accent);padding-left:12px}
.hstage__dots li.on{background:var(--accent)}
.hstage__eyebrow,.hstage__cap,.hstage__lede{color:var(--ink-2)}
.hstage__title{color:#141414}
/* the grid moment stays full and bright, then text sits on a soft plate */
.is-grid .hgrid{opacity:.5}
@media (max-width:640px){
  .hcard{height:46%}
  .hcard.is-in{opacity:.38}
  .hstage__cards::after{background:radial-gradient(ellipse 95% 52% at 50% 38%,rgba(243,241,234,.97) 0,rgba(243,241,234,.88) 60%,rgba(243,241,234,0) 100%)}
}
/* artwork gets its own band below the text, so it never sits under words */
.hstage{background:#efebe0}
.hstage__inner{justify-content:flex-start;min-height:clamp(620px,80vh,720px);padding-top:44px;padding-bottom:0}
.hcard{height:40%;bottom:0}
.hcard.is-in{opacity:1}
.hcard img{mix-blend-mode:normal}
.hstage__cards::after{background:linear-gradient(180deg,rgba(239,235,224,.0) 0,rgba(239,235,224,0) 100%)}
.hstage__ctrl{margin-top:18px}
.is-grid .hgrid{opacity:.35}
.is-grid .hstage__cards::after{background:radial-gradient(ellipse 52% 46% at 50% 40%,rgba(239,235,224,.96) 0,rgba(239,235,224,.85) 55%,rgba(239,235,224,0) 100%)}
@media (max-width:640px){
  .hstage__inner{min-height:640px;padding-top:30px}
  .hcard{height:30%}
  .hcard.is-in{opacity:1}
  .is-grid .hstage__cards::after{background:radial-gradient(ellipse 95% 55% at 50% 42%,rgba(239,235,224,.97) 0,rgba(239,235,224,.88) 60%,rgba(239,235,224,0) 100%)}
}
/* artwork pops out of the collapsed 3D particles, then fades away before the next 3D shape */
.hcard{transform:scale(.45);transform-origin:50% 55%;transition:opacity .45s ease,transform .7s cubic-bezier(.2,1.35,.35,1)}
.hcard.is-in{opacity:1;transform:scale(1)}
.hcard.is-out{opacity:0;transform:scale(.85);transition:opacity .4s ease,transform .5s ease}
/* hide button on the admissions strip */
.admit{position:relative}
.admit__close{position:absolute;top:10px;right:10px;width:30px;height:30px;border-radius:50%;border:0;background:transparent;color:var(--muted);display:grid;place-items:center;cursor:pointer;transition:background-color .15s,color .15s}
.admit__close:hover{background:var(--panel-3);color:var(--ink)}
.admit__close .ms{font-size:18px}
.admit-wrap{transition:opacity .3s ease,transform .3s ease}
.admit-wrap.is-closing{opacity:0;transform:translateY(-6px)}
@media (max-width:640px){.admit__close{top:8px;right:8px}}
/* intro line, description and buttons only on the first artwork and the grid finale */
.hstage__eyebrow,.hstage__lede,.hstage__actions{transition:opacity .5s ease,visibility 0s linear .5s;opacity:0;visibility:hidden}
.hstage.is-full .hstage__eyebrow,.hstage.is-full .hstage__lede,.hstage.is-full .hstage__actions{opacity:1;visibility:visible;transition:opacity .5s ease .15s,visibility 0s}
@media (prefers-reduced-motion:reduce){.hstage__eyebrow,.hstage__lede,.hstage__actions{opacity:1;visibility:visible}}

/* ───────── Start where you are: art floats, description opens on hover / tap, slider on phones ───────── */
.path__img{animation:pathFloat 6s ease-in-out infinite;transform-origin:50% 60%}
.path:nth-child(2) .path__img{animation-delay:-1.5s}.path:nth-child(3) .path__img{animation-delay:-3s}.path:nth-child(4) .path__img{animation-delay:-4.5s}
@keyframes pathFloat{0%,100%{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(-.6deg)}}
.path:hover .path__img,.path.open .path__img{animation-play-state:paused;transform:scale(1.03)}
.path h3{text-decoration:none!important}
.path__more{display:grid;grid-template-rows:0fr;transition:grid-template-rows .4s cubic-bezier(.2,.7,.2,1),opacity .3s;opacity:0}
.path__more>div{overflow:hidden}
.path:hover .path__more,.path:focus-visible .path__more,.path.open .path__more{grid-template-rows:1fr;opacity:1}
.path__more p{margin-top:6px}
.path__more .text-link{display:inline-block;margin-top:4px}
.path h3::after{content:" +";color:var(--muted);font-weight:400;transition:opacity .2s}
.path:hover h3::after,.path.open h3::after{opacity:0}
@media (max-width:760px){
  .page-home .paths{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:72%;gap:14px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;margin-right:-16px;padding-right:16px}
  .page-home .paths::-webkit-scrollbar{display:none}
  .path{scroll-snap-align:start;text-align:left}
  .path__img{aspect-ratio:4/3}
  .path h3{font-size:1rem}
  .path p{font-size:.875rem}
}
@media (prefers-reduced-motion:reduce){.path__img{animation:none}}

/* ───────── cleaner first frame: one headline colour, coloured phrase, quiet caption ───────── */
.hstage__eyebrow{font-size:.875rem;color:var(--muted);letter-spacing:.01em;margin-bottom:22px}
.hstage__title{font-weight:600;font-size:clamp(2rem,4.4vw,3.25rem);line-height:1.08;letter-spacing:-.03em;max-width:18ch}
.hstage__lead{background:none!important;padding:0}
.hstage__line{color:var(--ink);color:color-mix(in srgb,var(--accent) 72%,#141414);transition:color .6s}
.hstage__cap{margin:18px 0 26px;gap:8px;font-size:.9375rem;color:var(--muted)}
.hstage__tag{background:none!important;box-shadow:none!important;padding:0 0 0 14px!important;position:relative;color:var(--ink)!important;font-size:.9375rem!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important}
.hstage__tag::before{content:"";position:absolute;left:0;top:50%;width:7px;height:7px;margin-top:-3.5px;border-radius:50%;background:var(--accent)}
.hstage__sep{color:var(--faint)}
.hstage__lede{font-size:1rem;color:var(--muted)}
.hstage__actions{margin-top:22px}
@media (max-width:640px){.hstage__title{font-size:1.9rem}.hstage__cap{font-size:.875rem;margin:14px 0 18px}.hstage__tag{font-size:.875rem!important}}
.hstage__title{max-width:13.5ch;text-wrap:balance}
/* artwork moves up into the space the hidden buttons leave on the in-between frames */
.hstage__inner{min-height:clamp(580px,74vh,660px)}
.hcard{height:42%;bottom:18px;transition:opacity .45s ease,transform .7s cubic-bezier(.2,1.35,.35,1)}
.hstage:not(.is-full) .hcard{bottom:120px}
@media (max-width:640px){.hstage__inner{min-height:600px}.hcard{height:32%;bottom:14px}.hstage:not(.is-full) .hcard{bottom:110px}}
.hstage:not(.is-full) .hcard{height:56%;bottom:40px}@media (max-width:640px){.hstage:not(.is-full) .hcard{height:44%;bottom:40px}}
/* founder note under "Who we are" */
.founder-note{display:inline-flex;align-items:center;gap:14px;margin-top:26px;padding:10px 18px 10px 10px;border:1px solid var(--line);border-radius:999px;background:var(--bg);text-align:left;text-decoration:none!important;color:inherit;max-width:560px;transition:border-color .2s}
.founder-note:hover{border-color:var(--line-strong)}
.founder-note img{width:52px;height:52px;border-radius:50%;object-fit:cover;flex:none}
.founder-note b{display:block;color:var(--ink);font-weight:600;font-size:.9375rem}
.founder-note span{font-size:.8125rem;color:var(--muted);line-height:1.4}
@media (max-width:640px){.founder-note{border-radius:18px;align-items:flex-start}}

/* ── 40-courses.css ── */
/* ───────── courses listing (/courses/, body.page-courses) ───────── */
.page-courses .courses-hero{padding-bottom:clamp(36px,5vw,56px)}
.page-courses .courses-hero h1{max-width:16ch}
.page-courses .courses-hero__facts{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 28px;margin:28px auto 0;padding:0;color:var(--ink-2);font-size:.975rem}
.page-courses .courses-hero__facts li{display:inline-flex;align-items:center;gap:8px}
.page-courses .courses-hero__facts .ms{font-size:20px;color:var(--primary)}

/* filter bar: centred track tabs, then count + level + search */
.page-courses .course-filters{display:grid;gap:20px;margin-bottom:clamp(28px,4vw,40px)}
.page-courses .course-filters__tracks{display:flex;justify-content:center;min-width:0}
.page-courses .course-filters__tracks .segmented{min-width:0}
.page-courses .course-filters .segmented button[data-value]:not([data-value="all"])::before{content:"";width:10px;height:10px;border-radius:50%;background:var(--dot,var(--peri));flex:none}
.page-courses .course-filters [data-value="foundations"]{--dot:var(--yellow)}
.page-courses .course-filters [data-value="core"]{--dot:var(--peri)}
.page-courses .course-filters [data-value="engineering"]{--dot:var(--green)}
.page-courses .course-filters [data-value="applied"]{--dot:var(--coral)}
.page-courses .course-filters [data-value="young"]{--dot:var(--sky)}
.page-courses .course-filters .segmented button:hover:not([aria-pressed="true"]){background:var(--tint)}
.page-courses .course-filters__row{display:flex;align-items:center;justify-content:space-between;gap:12px 16px;flex-wrap:wrap}
.page-courses .course-filters__count{margin:0;color:var(--muted);font-size:.95rem}
.page-courses .course-filters__count span{color:var(--ink);font-weight:500}
.page-courses .course-filters__tools{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.page-courses .course-filters .search{flex:none;width:300px}
.page-courses .course-filters .search input::-webkit-search-cancel-button{cursor:pointer}
.page-courses .select-pill:focus{outline:0;border-color:var(--primary);box-shadow:0 0 0 1px var(--primary)}

/* track sections: one soft colour panel per track, white cards inside */
.page-courses .tracks{display:grid;gap:24px}
.page-courses .track-section{--tint:var(--grey);--accent:var(--peri);position:relative;isolation:isolate;overflow:hidden;border-radius:var(--r-xl);background:var(--tint);padding:clamp(24px,4vw,48px)}
.page-courses [data-track-section="foundations"]{--tint:var(--yellow-tint);--accent:var(--yellow)}
.page-courses [data-track-section="core"]{--tint:var(--peri-tint);--accent:var(--peri)}
.page-courses [data-track-section="engineering"]{--tint:var(--green-tint);--accent:var(--green)}
.page-courses [data-track-section="applied"]{--tint:var(--coral-tint);--accent:var(--coral)}
.page-courses [data-track-section="young"]{--tint:var(--sky-tint);--accent:var(--sky)}
/* the logo's square-and-circle motif, peeking from the top right corner */
.page-courses .track-section::before,.page-courses .track-section::after{content:"";position:absolute;z-index:-1;background:var(--accent);pointer-events:none}
.page-courses .track-section::before{right:-44px;top:-44px;width:150px;height:150px;border-radius:40px;transform:rotate(14deg);opacity:.7}
.page-courses .track-section::after{right:120px;top:-58px;width:104px;height:104px;border-radius:50%;opacity:.45}
.page-courses .track-head{display:flex;align-items:center;gap:20px;margin-bottom:clamp(24px,3vw,32px);max-width:620px;padding-right:72px}
.page-courses .track-head .icon-tile{width:60px;height:60px;border-radius:18px;color:var(--ink)}
.page-courses .track-head .icon-tile .ms{font-size:30px}
.page-courses .track-head h2{margin:0}
.page-courses .track-head p{margin:6px 0 0;font-size:1rem;color:var(--ink-2)}
.page-courses .track-section .course-card{border-color:transparent;box-shadow:var(--shadow-1)}
.page-courses .track-section .course-card:hover{box-shadow:var(--shadow-3);border-color:transparent}
.page-courses .track-section .course-card .pill{background:var(--tint)}

.page-courses .courses-empty{display:grid;justify-items:center;gap:12px;border-radius:var(--r-xl);padding:56px 24px}
.page-courses .courses-empty h2{margin:4px 0 0}
.page-courses .courses-empty p{margin:0 0 8px}
.page-courses .courses-fees{margin-top:32px;align-items:flex-start;border-radius:var(--r)}
.page-courses .courses-fees p{margin:0}
.page-courses .courses-fees .ms{margin-top:1px}

/* "not sure where to start?" tile */
.page-courses .start-tile{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);min-height:560px;border-radius:var(--r-xl);background:var(--yellow);overflow:hidden;isolation:isolate}
.page-courses .start-tile__body{padding:clamp(28px,5vw,64px);align-self:center}
.page-courses .start-tile__body .lede{margin:14px 0 0;color:var(--ink)}
.page-courses .start-picks{list-style:none;display:grid;gap:10px;margin:28px 0 0;padding:0}
.page-courses .start-picks li{position:relative;display:flex;align-items:center;gap:16px;padding:16px 18px;border-radius:var(--r);background:var(--panel-2);box-shadow:var(--shadow-1);transition:box-shadow .2s,transform .2s}
.page-courses .start-picks li:hover{box-shadow:var(--shadow-2);transform:translateY(-1px)}
.page-courses .start-picks li>div{flex:1;min-width:0}
.page-courses .start-picks a{display:block;color:var(--ink);font-weight:500;font-size:1.075rem;line-height:1.3;text-decoration:none}
.page-courses .start-picks li>div>span{display:block;color:var(--muted);font-size:.9rem;line-height:1.45;margin-top:3px}
.page-courses .start-picks__go{color:var(--primary)}
.page-courses .start-tile__more{margin:24px 0 0;color:var(--ink)}
.page-courses .start-tile .actions{margin-top:16px}
.page-courses .start-tile__media{position:relative;display:flex;align-items:flex-end;justify-content:flex-start;padding:72px 32px 0 24px}
.page-courses .start-chat{--w:380px;padding:0;overflow:hidden;margin-bottom:-28px;border-radius:24px}
.page-courses .start-chat__head{display:flex;align-items:center;gap:10px;padding:14px 16px;background:var(--panel-3);color:var(--ink)}
.page-courses .start-chat__head b{display:block;font-weight:500;font-size:13.5px;line-height:1.3}
.page-courses .start-chat__head small{display:block;font-size:11.5px;opacity:.85}
.page-courses .start-chat__body{padding:16px 14px 52px;background:var(--panel-2)}
.page-courses .start-chat__body .ui-bubble{background:var(--panel-2);max-width:88%;box-shadow:0 1px .5px rgba(11,20,26,.13)}
.page-courses .start-chat__body .ui-bubble--wa{background:var(--panel-2)}
.page-courses .start-path{position:absolute;right:40px;top:104px;--w:240px;transform:rotate(3deg);z-index:2}
.page-courses .start-path .ui-head .ms{color:var(--primary)}
.page-courses .start-path b{font-weight:500;color:var(--ink)}

@media (max-width:1100px){
  .page-courses .start-path{right:12px;top:32px;--w:220px}
}
@media (max-width:900px){
  .page-courses .start-tile{grid-template-columns:minmax(0,1fr);min-height:0}
  .page-courses .start-tile__media{justify-content:center;padding:8px 20px 0}
  .page-courses .start-path{display:none}
}
@media (max-width:680px){
  .page-courses .courses-hero__facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;max-width:400px;text-align:left;font-size:.9rem}
  .page-courses .courses-hero__facts li{align-items:flex-start;line-height:1.35}
  .page-courses .courses-hero__facts .ms{font-size:18px;margin-top:1px}
  /* show every track at once instead of a sideways scroller */
  .page-courses .course-filters__tracks .segmented{flex-wrap:wrap;justify-content:center;border-radius:24px;overflow:visible;gap:4px}
  .page-courses .course-filters__tracks .segmented button{height:36px;padding:0 14px;font-size:.875rem;gap:6px}
  .page-courses .course-filters__row{flex-direction:column;align-items:stretch}
  .page-courses .course-filters__count{order:2;text-align:center}
  .page-courses .course-filters__tools{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px}
  .page-courses .course-filters .search{width:auto;min-width:0;grid-column:1;grid-row:1}
  .page-courses .course-filters .select-pill{grid-column:2;grid-row:1;padding-left:14px;padding-right:34px;background-position:right 6px center}
  .page-courses .track-section{border-radius:var(--r-lg);padding:24px 16px 16px}
  .page-courses .track-section::before{width:96px;height:96px;right:-36px;top:-36px;border-radius:28px}
  .page-courses .track-section::after{display:none}
  .page-courses .track-head{flex-direction:column;align-items:flex-start;gap:14px;padding:0 8px;margin-bottom:20px}
  .page-courses .track-head .icon-tile{width:52px;height:52px;border-radius:16px}
  .page-courses .track-section .grid{--gap:12px}
  /* tighter cards so 21 courses stay easy to scan on a phone */
  .page-courses .track-section .course-card{padding:18px;gap:8px;border-radius:18px}
  .page-courses .track-section .course-card .icon-tile{width:40px;height:40px;border-radius:12px}
  .page-courses .track-section .course-card .icon-tile .ms{font-size:22px}
  .page-courses .track-section .course-card h3{font-size:1.1rem;margin-top:4px}
  .page-courses .track-section .course-card p{font-size:.9rem;line-height:1.45}
  .page-courses .track-section .course-card__meta{padding-top:12px;margin-top:6px}
  .page-courses .start-tile{border-radius:var(--r-lg)}
  .page-courses .start-picks li{padding:14px;gap:12px}
  .page-courses .start-picks .icon-tile{width:40px;height:40px;border-radius:12px}
  .page-courses .start-picks .icon-tile .ms{font-size:22px}
  .page-courses .start-chat{--w:100%}
}


/* ───────── course detail (/courses/<slug>/, body.page-course) ───────── */
.page-course .course{--accent:var(--peri);--tint:var(--peri-tint);--deep:#3247b8}
.page-course .course[data-track="foundations"]{--accent:var(--yellow);--tint:var(--yellow-tint);--deep:#8a6d00}
.page-course .course[data-track="core"]{--accent:var(--peri);--tint:var(--peri-tint);--deep:#3247b8}
.page-course .course[data-track="engineering"]{--accent:var(--green);--tint:var(--green-tint);--deep:#137a3f}
.page-course .course[data-track="applied"]{--accent:var(--coral);--tint:var(--coral-tint);--deep:#b23c17}
.page-course .course[data-track="young"]{--accent:var(--sky);--tint:var(--sky-tint);--deep:#0b6aa8}

/* hero */
.page-course .course-hero{padding:clamp(20px,3vw,32px) 0 0}
.page-course .course-crumbs{justify-content:flex-start;margin-bottom:16px}
.page-course .course-crumbs a:hover{text-decoration:underline}
.page-course .course-hero__tile{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:540px;border-radius:var(--r-xl)}
.page-course .course-hero__body{padding:clamp(28px,5vw,64px);align-self:center;position:relative;z-index:2}
.page-course .course-hero__pills{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:22px}
.page-course .course-hero__pills .pill{background:var(--tint);color:var(--ink)}
.page-course .course-hero h1{font-size:clamp(2.1rem,4vw,3.25rem);max-width:18ch;overflow-wrap:break-word}
.page-course .course-hero .lede{margin:16px 0 0;color:var(--ink);max-width:40ch}
.page-course .course-hero .actions{margin-top:30px}
.page-course .course-hero__intake{display:flex;align-items:center;gap:8px;margin:22px 0 0;font-size:.925rem;color:var(--ink)}
.page-course .course-hero__intake .ms{font-size:20px}
.page-course .course-wa svg{width:20px;height:20px;fill:currentColor;flex:none;margin-left:-4px}
.page-course .course-hero__media{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:96px 32px 72px 24px}
.page-course .course-pick{--w:370px;z-index:1;box-shadow:0 2px 6px rgba(60,64,67,.12),0 24px 60px 8px rgba(32,33,36,.16)}
.page-course .course-pick .ui-seg>div{transition:none}
.page-course .course-pick .s-evening,
.page-course .course[data-track="young"] .course-pick .s-weekend{border-color:var(--primary);background:var(--primary-tint);box-shadow:inset 0 0 0 1px var(--primary);color:var(--primary)}
.page-course .course-pick .s-evening b,
.page-course .course[data-track="young"] .course-pick .s-weekend b{color:var(--primary)}
.page-course .course[data-track="young"] .course-pick .s-evening{border-color:var(--line);background:var(--panel-2);box-shadow:none;color:var(--ink-2)}
.page-course .course[data-track="young"] .course-pick .s-evening b{color:var(--ink)}
.page-course .ui-icon--yellow{background:var(--yellow-tint);color:var(--ink-2)}
.page-course .ui-icon--peri{background:var(--peri-tint);color:var(--ink-2)}
.page-course .ui-icon--green{background:var(--green-tint);color:var(--ink-2)}
.page-course .ui-icon--coral{background:var(--coral-tint);color:var(--ink-2)}
.page-course .ui-icon--sky{background:var(--sky-tint);color:var(--ink-2)}
.page-course .course-plan{--w:240px;right:-28px;top:40px;transform:rotate(3deg);z-index:2}
.page-course .course-plan__list{list-style:none;margin:0;padding:0}
.page-course .course-plan__list li{position:relative;padding:7px 0 7px 30px;font-size:12.5px;line-height:20px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.page-course .course-plan__list li::before{content:"check";position:absolute;left:0;top:7px;width:20px;height:20px;border-radius:50%;display:grid;place-items:center;background:var(--panel-3);color:var(--ink);font:400 14px/1 "Material Symbols Rounded";font-feature-settings:"liga";overflow:hidden;box-sizing:border-box}
.page-course .course-plan__list li:nth-child(3){color:var(--ink);font-weight:500}
.page-course .course-plan__list li:nth-child(3)::before{content:"play_arrow";background:var(--primary)}
.page-course .course-plan__list li:nth-child(4)::before{content:"";background:var(--panel-2);border:1.5px solid var(--line)}
.page-course .course-plan__list li:nth-child(n+5){display:none}
.page-course .course-toast{right:40px;bottom:36px;z-index:3}

/* body + aside */
.page-course .course-main{padding-top:clamp(48px,6vw,80px)}
.page-course .layout-aside{gap:clamp(32px,5vw,64px)}
@media (min-width:1001px){.page-course .layout-aside{grid-template-columns:minmax(0,1fr) 360px}}
.page-course .course-aside{order:2;align-self:stretch}
.page-course .facts{gap:20px}
.page-course .facts__label{color:var(--muted);font-size:.9rem;margin-bottom:2px}
.page-course .facts__sub{color:var(--ink-2);font-size:.925rem;margin-top:6px}
.page-course .facts dd small{display:block;font-weight:400;color:var(--muted);font-size:.8rem;margin-top:2px}
.page-course .facts__actions{display:grid;gap:10px}
.page-course .facts__note{margin:-4px 0 0;font-size:.85rem;color:var(--muted);text-align:center}

.page-course .course-block{scroll-margin-top:88px}
.page-course .course-block+.course-block{margin-top:clamp(56px,7vw,80px)}
.page-course .course-block>h2,.page-course .course-block__head h2{font-size:clamp(1.6rem,2.6vw,2rem);margin-bottom:20px}
.page-course .course-block__head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:20px}
.page-course .course-block__head h2{margin:0}
.page-course .course-block>p{color:var(--ink-2)}
.page-course #overview .lede{margin:0;color:var(--ink-2)}
.page-course .course-fit{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:28px}
.page-course .course-fit__item{display:flex;gap:16px;align-items:flex-start;padding:24px;border-radius:var(--r);background:var(--grey)}
.page-course .course-fit__item h3{margin:2px 0 6px}
.page-course .course-fit__item p{margin:0;color:var(--ink-2);font-size:.95rem}
.page-course .course-outcomes{gap:14px}
.page-course .course-outcomes li{font-size:1.025rem;color:var(--ink-2)}
.page-course .course-modules li{padding:14px 18px;font-size:.975rem;line-height:1.4}
.page-course .course-modules li::before{background:var(--accent);color:var(--ink);box-shadow:none}
.page-course .course-tools__h{margin:32px 0 14px}
.page-course .course-tools .pill{height:34px;padding:0 14px;font-size:.875rem;background:var(--panel-2)}

/* final project: dark tile with this course's certificate */
.page-course .project-tile{position:relative;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);border-radius:var(--r-xl);background:var(--dark);color:var(--ink);overflow:hidden;isolation:isolate;min-height:340px}
.page-course .project-tile__body{padding:clamp(28px,4vw,44px);align-self:center}
.page-course .project-tile__pill{background:var(--tint);color:var(--ink)}
.page-course .project-tile h2{color:var(--ink);font-size:clamp(1.6rem,2.6vw,2rem);margin:16px 0 12px}
.page-course .project-tile__brief{font-size:1.15rem;line-height:1.5;color:var(--ink);margin:0 0 14px}
.page-course .project-tile__body p:last-child{margin:0;color:var(--muted);font-size:.95rem}
.page-course .project-tile__media{position:relative;display:flex;align-items:center;justify-content:flex-start;padding:36px 0 36px 4px}
.page-course .project-tile__media::before{content:"";position:absolute;z-index:-1;width:240px;height:240px;border-radius:50%;background:var(--accent);right:-60px;top:50%;transform:translateY(-50%);opacity:.9}
.page-course .project-cert{--w:290px;margin-right:-48px;transform:rotate(3deg);padding:20px}
.page-course .project-cert .who{font-size:18px;line-height:1.25;text-wrap:balance}
.page-course .project-cert__foot{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:-2px}
.page-course .project-cert__foot .ui-badge .ms{font-size:14px}

/* class times */
.page-course .slot-picks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:24px}
.page-course .slot-pick{position:relative;display:flex;flex-direction:column;border-radius:var(--r-lg);padding:24px;background:var(--yellow);color:var(--ink);transition:transform .2s,box-shadow .2s}
.page-course .slot-pick--evening{background:var(--peri)}
.page-course .slot-pick--weekend{background:var(--green)}
.page-course .slot-pick:hover{transform:translateY(-2px);box-shadow:var(--shadow-2)}
.page-course .slot-pick__icon{width:44px;height:44px;border-radius:14px;background:var(--tint);display:grid;place-items:center}
.page-course .slot-pick h3{font-size:1.25rem;margin:16px 0 4px}
.page-course .slot-pick__time{font-size:1.05rem;font-weight:500;color:var(--ink);margin:0}
.page-course .slot-pick__days{margin:2px 0 0;color:var(--ink);font-size:.9rem}
.page-course .slot-pick__weeks{margin:20px 0 0;padding-top:14px;border-top:1px solid rgba(32,33,36,.16);color:var(--ink);font-size:.95rem}
.page-course .slot-pick__weeks b{font-size:2rem;font-weight:500;color:var(--ink);letter-spacing:-.02em;margin-right:4px}
.page-course .slot-pick__link{margin-top:auto;padding-top:14px;display:inline-flex;align-items:center;gap:4px;font-weight:500;color:var(--ink);font-size:.925rem}
.page-course .slot-pick__link .ms{font-size:18px;transition:transform .2s}
.page-course .slot-pick:hover .slot-pick__link .ms{transform:translateX(3px)}
.page-course .slot-pick__link::after{content:"";position:absolute;inset:0;border-radius:inherit}
.page-course .course-schedule__note{margin:20px 0 0}

/* fees */
.page-course .pay-card{border:1px solid var(--line);border-radius:var(--r-lg);padding:clamp(20px,3vw,32px);background:var(--panel-2)}
.page-course .pay-card__total{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--line-soft)}
.page-course .pay-card__label{display:block;color:var(--muted);font-size:.9rem}
.page-course .pay-card__total b{display:block;font-size:2.25rem;font-weight:500;color:var(--ink);letter-spacing:-.02em;line-height:1.15}
.page-course .pay-steps{list-style:none;margin:0;padding:0}
.page-course .pay-steps li{display:flex;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid var(--line-soft)}
.page-course .pay-steps .badge{width:44px;height:44px;font-size:1.1rem;margin:0;flex:none}
.page-course .pay-steps li>div{flex:1;min-width:0}
.page-course .pay-steps b{display:block;color:var(--ink);font-weight:500;font-size:1.025rem}
.page-course .pay-steps li>div>span{display:block;color:var(--muted);font-size:.925rem}
.page-course .pay-steps strong{font-size:1.15rem;font-weight:500;color:var(--ink);white-space:nowrap}
.page-course .pay-card__note{margin:16px 0 0;font-size:.875rem;color:var(--muted)}

/* programmes that include this course (hidden when there are none) */
.page-course .course-progs:has(.pills:empty){display:none}
.page-course .course-progs__panel{display:flex;gap:20px;align-items:flex-start;padding:clamp(24px,3vw,32px);border-radius:var(--r-lg);background:var(--lav)}
.page-course .course-progs h2{margin:6px 0 8px}
.page-course .course-progs p{margin:0 0 16px;color:var(--ink-2)}
.page-course .course-progs .pill{height:auto;min-height:36px;padding:7px 14px;white-space:normal;font-size:.875rem;line-height:1.3;background:var(--panel-2);box-shadow:var(--shadow-1);text-decoration:none}
.page-course .course-progs .pill:hover{box-shadow:var(--shadow-2)}

.page-course .course-faq{max-width:none}
.page-course .course-faq__more{margin:20px 0 0}
.page-course .course-related__all{margin-top:40px}

@media (max-width:1100px){
  .page-course .course-plan{right:-60px}
  .page-course .course-toast{right:12px}
}
@media (max-width:1000px){
  .page-course .course-aside{order:0}
  .page-course .facts__actions,.page-course .facts__note{display:none}
  .page-course .facts dl{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px}
}
@media (max-width:900px){
  .page-course .course-hero__tile{grid-template-columns:minmax(0,1fr);min-height:0}
  .page-course .course-hero__body{padding-bottom:12px}
  .page-course .course-hero__media{padding:24px 20px 0;align-items:flex-end}
  .page-course .course-pick{margin-bottom:-16px}
  .page-course .project-tile{grid-template-columns:minmax(0,1fr)}
  .page-course .project-tile__media{justify-content:center;padding:0 24px 0;margin-bottom:-24px}
  .page-course .project-tile__media::before{right:auto;left:50%;top:auto;bottom:-80px;transform:translateX(-50%)}
  .page-course .project-cert{margin:0 0 0;transform:rotate(-2deg)}
}
@media (max-width:680px){
  .page-course .course-hero__tile{border-radius:var(--r-lg)}
  .page-course .course-hero__body{padding:28px 22px 8px}
  .page-course .course-hero .actions{flex-direction:column;align-items:stretch}
  .page-course .course-hero .actions .btn{width:100%}
  .page-course .facts{padding:22px}
  .page-course .facts dl{grid-template-columns:minmax(0,1fr)}
  .page-course .course-fit{grid-template-columns:minmax(0,1fr)}
  .page-course .course-fit__item{padding:20px}
  .page-course .slot-picks{grid-template-columns:minmax(0,1fr);gap:12px}
  .page-course .slot-pick{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"icon name weeks" "icon time weeks" "icon days weeks" "link link link";column-gap:16px;align-items:center;padding:20px}
  .page-course .slot-pick__icon{grid-area:icon;align-self:start}
  .page-course .slot-pick h3{grid-area:name;margin:0}
  .page-course .slot-pick__time{grid-area:time;font-size:.975rem}
  .page-course .slot-pick__days{grid-area:days}
  .page-course .slot-pick__weeks{grid-area:weeks;margin:0;padding:0;border:0;text-align:center;line-height:1.1}
  .page-course .slot-pick__weeks b{display:block;margin:0}
  .page-course .slot-pick__link{grid-area:link;padding-top:14px;margin-top:14px;border-top:1px solid rgba(32,33,36,.16)}
  .page-course .pay-card__total b{font-size:1.9rem}
  .page-course .pay-steps li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:4px 14px;align-items:start}
  .page-course .pay-steps .badge{grid-row:span 2}
  .page-course .pay-steps strong{grid-column:2}
  .page-course .course-progs__panel{flex-direction:column;gap:14px}
}

/* ── 41-programmes.css ── */
/* ───────── programmes listing (/programmes/) and programme detail pages ─────────
   Every selector is scoped to .page-programmes (listing) or .page-programme (detail). */

/* ═════════ shared bits ═════════ */
.page-programmes .crumbs,.page-programme .crumbs{margin-bottom:20px}
.page-programme .btn svg{width:20px;height:20px;fill:currentColor;flex:none;margin-left:-4px}

/* ═════════ listing: hero ═════════ */
.page-programmes .section--dark .lede{color:var(--muted)}
.page-programmes .pg-hero{padding:clamp(40px,6vw,72px) 0 0}
.page-programmes .pg-hero h1{max-width:16ch;margin:0 auto}
.page-programmes .pg-hero .lede{max-width:640px;margin:20px auto 0}
.page-programmes .pg-hero .actions{justify-content:center;margin:32px 0 clamp(40px,5vw,56px)}
.page-programmes .pg-stage{min-height:520px;padding:56px 24px}
.page-programmes .pg-roadmap{--w:400px;z-index:3;transform:perspective(1600px) rotateX(4deg);box-shadow:0 2px 6px rgba(60,64,67,.12),0 24px 60px 8px transparent}
.page-programmes .pg-roadmap .ui-title{white-space:normal}
.page-programmes .pg-roadmap .ui-steps b,.page-programme .pp-roadmap .ui-steps b{font-weight:500;color:var(--ink)}
.page-programmes .pg-roadmap__meta,.page-programme .pp-roadmap__meta{display:flex;justify-content:space-between;font-size:11.5px;color:var(--muted);margin:2px 0 6px}
.page-programmes .pg-stage__mentor{--w:250px;left:5%;top:72px;transform:rotate(-3deg)}
.page-programmes .pg-stage__note{margin-top:12px;max-width:100%}
.page-programmes .pg-stage__fee{--w:230px;right:6%;top:104px;transform:rotate(3deg)}
.page-programmes .pg-stage__fee s{color:var(--faint)}
.page-programmes .pg-stage__fee .ui-badge .ms{font-size:14px}
.page-programmes .pg-stage__toast{right:15%;bottom:52px}
@media (max-width:1100px){.page-programmes .pg-stage__mentor{left:2%}.page-programmes .pg-stage__fee{right:2%}.page-programmes .pg-stage__toast{right:6%}}
@media (max-width:860px){.page-programmes .pg-stage{min-height:0;padding:32px 16px}.page-programmes .pg-roadmap{transform:none}}

/* ═════════ listing: comparison table ═════════ */
.page-programmes .pg-compare{background:var(--panel-2);border-radius:var(--r-lg);padding:12px 12px 4px;box-shadow:var(--shadow-1)}
.page-programmes .pg-compare table{width:100%;border-collapse:separate;border-spacing:0;table-layout:fixed;font-size:.975rem}
.page-programmes .pg-compare thead td{width:22%}
.page-programmes .pg-compare thead th{padding:0 6px 8px;vertical-align:stretch;text-align:left;font-weight:400}
.page-programmes .pg-cap{display:flex;flex-direction:column;gap:18px;height:100%;min-height:150px;padding:22px;border-radius:var(--r)}
.page-programmes .pg-cap .ms{width:44px;height:44px;border-radius:14px;background:var(--tint);display:grid;place-items:center;color:var(--ink);font-size:24px}
.page-programmes .pg-cap a{color:var(--ink);font-size:1.15rem;font-weight:500;line-height:1.3;text-decoration:none}
.page-programmes .pg-cap a:hover{text-decoration:underline;text-underline-offset:3px}
.page-programmes .pg-cap--yellow{background:var(--yellow)}.page-programmes .pg-cap--peri{background:var(--peri)}.page-programmes .pg-cap--green{background:var(--green)}
.page-programmes .pg-compare tbody th,.page-programmes .pg-compare tbody td{padding:18px 20px;border-top:1px solid var(--line-soft);text-align:left;vertical-align:top}
.page-programmes .pg-compare tbody th{color:var(--muted);font-weight:500;font-size:.9rem;padding-left:16px}
.page-programmes .pg-compare tbody td{color:var(--ink)}
.page-programmes .pg-compare tbody tr:first-child th,.page-programmes .pg-compare tbody tr:first-child td{border-top:0}
.page-programmes .pg-compare strong{font-size:1.35rem;font-weight:500;letter-spacing:-.01em}
.page-programmes .pg-compare s{color:var(--faint)}
.page-programmes .pg-compare tbody .pg-compare__save td{color:var(--ink-2);font-weight:500}
.page-programmes .pg-compare__go td{padding:12px 6px 14px;border-top:0}
.page-programmes .pg-compare__note{max-width:640px;margin:24px auto 0}
@media (max-width:820px){
  .page-programmes .pg-compare{padding:4px 20px}
  .page-programmes .pg-compare table,.page-programmes .pg-compare tbody,.page-programmes .pg-compare tr,.page-programmes .pg-compare tbody th,.page-programmes .pg-compare tbody td{display:block;width:auto}
  .page-programmes .pg-compare thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .page-programmes .pg-compare tbody tr{padding:18px 0;border-top:1px solid var(--line-soft)}
  .page-programmes .pg-compare tbody tr:first-child{border-top:0}
  .page-programmes .pg-compare tbody th{padding:0 0 10px;border:0;font-size:1rem;color:var(--ink)}
  .page-programmes .pg-compare tbody td{display:grid;grid-template-columns:104px minmax(0,1fr);gap:12px;padding:5px 0;border:0;font-size:.95rem}
  .page-programmes .pg-compare tbody td::before{content:attr(data-label);display:flex;align-items:flex-start;gap:8px;color:var(--muted);font-weight:400;font-size:.875rem;line-height:1.6}
  .page-programmes .pg-compare tbody td::after{content:"";position:absolute}
  .page-programmes .pg-compare td[data-label]{position:relative;padding-left:16px}
  .page-programmes .pg-compare td[data-label]::after{left:0;top:13px;width:8px;height:8px;border-radius:50%;background:var(--yellow)}
  .page-programmes .pg-compare td[data-label]:nth-of-type(2)::after{background:var(--peri)}
  .page-programmes .pg-compare td[data-label]:nth-of-type(3)::after{background:var(--green)}
  .page-programmes .pg-compare strong{font-size:1.1rem}
  .page-programmes .pg-compare__go{display:grid!important;gap:8px}
  .page-programmes .pg-compare__go th{display:none!important}
  .page-programmes .pg-compare__go td{padding:0}
}

/* ═════════ listing: what every programme includes (bento on dark) ═════════ */
.page-programmes .pg-bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.page-programmes .pg-bento>.tile{grid-column:span 5;min-height:480px}
.page-programmes .pg-bento>.pg-bento__wide{grid-column:span 7}
.page-programmes .pg-bento__icon{background:var(--tint);color:var(--ink);margin-bottom:20px}
.page-programmes .pg-bento .tile__body p{max-width:46ch}
.page-programmes .pg-bento .tile__media{min-height:250px}
.page-programmes .pg-bento .ui-row>div{font-size:13px;color:var(--ink-2)}
.page-programmes .pg-bento .ui-steps b{font-weight:500;color:var(--ink)}
.page-programmes .pg-bento__toast{left:12%;top:56px;transform:rotate(-2deg);z-index:3}
@media (max-width:1024px){.page-programmes .pg-bento__toast{display:none}}
.page-programmes .pg-rubric{display:grid;grid-template-columns:118px 1fr;gap:10px 12px;align-items:center;font-size:12px;margin-top:4px}
.page-programmes .pg-rubric i{height:8px;border-radius:4px;background:linear-gradient(90deg,var(--panel-3) var(--p),var(--grey-2) var(--p))}
@media (min-width:1025px){
  .page-programmes .pg-bento__wide{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:stretch}
  .page-programmes .pg-bento__wide .tile__body{align-self:center}
  .page-programmes .pg-bento__wide .tile__media{align-items:flex-end;padding:40px 0 0;justify-content:flex-start}
  .page-programmes .pg-bento__wide .tile__media>.ui{margin-bottom:-24px;margin-right:-60px}
}
@media (max-width:1024px){
  .page-programmes .pg-bento>.tile,.page-programmes .pg-bento>.pg-bento__wide{grid-column:span 6;min-height:0}
}
@media (max-width:760px){
  .page-programmes .pg-bento{grid-template-columns:minmax(0,1fr);gap:16px}
  .page-programmes .pg-bento>.tile,.page-programmes .pg-bento>.pg-bento__wide{grid-column:auto}
  .page-programmes .pg-bento .tile__media{min-height:0;padding-top:4px}
}

/* ═════════ listing: timeline ═════════ */
.page-programmes .pg-timeline{list-style:none;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:28px;position:relative;max-width:1160px;margin:0 auto}
.page-programmes .pg-timeline::before{content:"";position:absolute;left:8%;right:8%;top:31px;height:2px;background:repeating-linear-gradient(90deg,var(--panel-3) 0 6px,transparent 6px 12px)}
.page-programmes .pg-timeline li{position:relative;text-align:center}
.page-programmes .pg-timeline .badge{position:relative;z-index:1;box-shadow:0 0 0 8px var(--line)}
.page-programmes .pg-timeline .badge--circle,.page-programmes .pg-timeline .badge--squircle{box-shadow:0 0 0 8px var(--line)}
.page-programmes .pg-timeline .badge--scallop{box-shadow:none}
.page-programmes .pg-timeline h3{font-size:1.125rem;margin:20px 0 8px}
.page-programmes .pg-timeline p{margin:0;color:var(--muted);font-size:.925rem}
@media (max-width:1024px){
  .page-programmes .pg-timeline{grid-template-columns:minmax(0,1fr);gap:0;max-width:620px}
  .page-programmes .pg-timeline::before{left:31px;right:auto;top:32px;bottom:32px;width:2px;height:auto;background:repeating-linear-gradient(180deg,var(--panel-3) 0 6px,transparent 6px 12px)}
  .page-programmes .pg-timeline li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:20px;text-align:left;padding-bottom:28px}
  .page-programmes .pg-timeline li:last-child{padding-bottom:0}
  .page-programmes .pg-timeline .badge{margin:0}
  .page-programmes .pg-timeline h3{margin:6px 0 6px}
}
@media (max-width:480px){
  .page-programmes .pg-timeline li{grid-template-columns:52px minmax(0,1fr);gap:16px}
  .page-programmes .pg-timeline .badge{width:52px;height:52px;font-size:1.35rem}
  .page-programmes .pg-timeline::before{left:25px;top:26px;bottom:26px}
}

/* ═════════ listing: payment ═════════ */
.page-programmes .pg-pay-stage{min-height:560px;align-items:flex-end;justify-content:flex-start}
.page-programmes .pg-plan{--w:380px;z-index:1;margin-left:4%}
.page-programmes .pg-plan__rows{margin-top:14px}
.page-programmes .pg-plan__rows .ui-row>div{font-size:13px;color:var(--ink-2)}
.page-programmes .pg-plan__rows .ui-row>span{font-weight:500;color:var(--ink)}
.page-programmes .pg-plan__off{color:var(--ink-2)!important}
.page-programmes .pg-plan__per{--w:230px;right:5%;top:36px;transform:rotate(3deg)}
.page-programmes .pg-pay{list-style:none;display:grid;gap:20px;margin-top:28px}
.page-programmes .pg-pay li{display:flex;gap:16px;align-items:flex-start}
.page-programmes .pg-pay h3{font-size:1.125rem;margin:2px 0 4px}
.page-programmes .pg-pay p{margin:0;color:var(--muted);font-size:.95rem}
@media (max-width:1100px){.page-programmes .pg-plan__per{right:2%;top:24px}.page-programmes .pg-plan{margin-left:0}}
@media (max-width:860px){.page-programmes .pg-pay-stage{min-height:0;padding:32px 16px;justify-content:center}}

/* ═════════ detail: hero tile ═════════ */
.page-programme .pp-top{padding-top:clamp(24px,4vw,40px)}
.page-programme .crumbs{justify-content:flex-start}
.page-programme .crumbs span[aria-current]{color:var(--ink-2)}
.page-programme .pp-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:560px;align-items:center}
.page-programme .pp-hero__body{padding:clamp(28px,5vw,64px);position:relative;z-index:1}
.page-programme .pp-hero h1{font-size:clamp(2.1rem,4.2vw,3.25rem);margin:22px 0 16px;color:var(--ink)}
.page-programme .pp-hero .lede{color:var(--ink);margin:0;max-width:52ch}
.page-programme .pp-hero .actions{margin-top:28px}
.page-programme .pp-pill{background:var(--tint);color:var(--ink)}
.page-programme .pp-hero__price{margin:24px 0 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;color:var(--ink)}
.page-programme .pp-hero__price strong{font-size:1.75rem;font-weight:500;color:var(--ink);letter-spacing:-.01em}
.page-programme .pp-hero__media{position:relative;align-self:stretch;display:flex;align-items:flex-end;justify-content:center;padding:56px 32px 0;min-height:420px}
.page-programme .pp-roadmap{--w:380px;margin-bottom:-24px;z-index:2}
.page-programme .pp-roadmap .ui-title{white-space:normal}
.page-programme .pp-hero__mentor{--w:230px;right:4%;top:40px;transform:rotate(3deg);z-index:3}
.page-programme .pp-hero__toast{left:0;top:120px;z-index:3;transform:rotate(-2deg)}
@media (max-width:1100px){.page-programme .pp-hero__mentor{right:-2%;top:24px}.page-programme .pp-hero__toast{left:-4%;top:110px}}
@media (max-width:960px){
  .page-programme .pp-hero{grid-template-columns:minmax(0,1fr);min-height:0}
  .page-programme .pp-hero__media{padding:8px 20px 0;min-height:0}
  .page-programme .pp-hero__mentor,.page-programme .pp-hero__toast{display:none}
}
@media (max-width:480px){
  .page-programme .pp-hero .actions .btn{width:100%}
  .page-programme .pp-hero h1{font-size:2rem}
}

/* ═════════ detail: main column ═════════ */
.page-programme .pp-block+.pp-block{margin-top:clamp(56px,7vw,80px)}
.page-programme .pp-block>h2{font-size:clamp(1.6rem,2.6vw,2rem)}
.page-programme .pp-block>.lede{margin:14px 0 0;font-size:1.05rem;max-width:60ch}
.page-programme .pp-block>p{color:var(--ink-2)}

/* course sequence timeline: li.prog-course > span.icon-tile + div > a > strong + span + span.pill */
.page-programme .prog-courses{list-style:none;counter-reset:pc;display:grid;gap:36px;margin:32px 0 0}
.page-programme .prog-course{counter-increment:pc;position:relative;display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:18px;align-items:center;padding:18px 22px;border-radius:var(--r);background:var(--grey);transition:background-color .15s,box-shadow .15s}
.page-programme .prog-course:hover{background:var(--panel-2);box-shadow:var(--shadow-2)}
.page-programme .prog-course .icon-tile{position:relative}
.page-programme .prog-course .icon-tile::after{content:counter(pc);position:absolute;top:-7px;right:-7px;width:22px;height:22px;border-radius:50%;background:var(--green-deep);color:#fff;font:500 11px/22px var(--font);text-align:center;box-shadow:0 0 0 2px var(--grey)}
.page-programme .prog-course:hover .icon-tile::after{box-shadow:0 0 0 2px var(--line)}
.page-programme .prog-course>div{min-width:0}
.page-programme .prog-course a{color:var(--ink);text-decoration:none}
.page-programme .prog-course a::after{content:"";position:absolute;inset:0;border-radius:inherit}
.page-programme .prog-course a:focus-visible{outline:0}
.page-programme .prog-course:has(a:focus-visible){outline:2px solid var(--primary);outline-offset:2px}
.page-programme .prog-course strong{display:block;font-weight:500;font-size:1.0625rem;line-height:1.35}
.page-programme .prog-course a:hover strong{text-decoration:underline;text-underline-offset:3px}
.page-programme .prog-course>div>span{display:block;color:var(--muted);font-size:.925rem;margin-top:2px}
.page-programme .prog-course .pill{background:var(--panel-2)}
/* dotted connector + "one-week break" label between courses */
.page-programme .prog-course:not(:last-child)::after{content:"";position:absolute;left:45px;top:100%;height:36px;width:2px;background:repeating-linear-gradient(180deg,var(--panel-3) 0 4px,transparent 4px 8px)}
.page-programme .prog-course+.prog-course::before{content:"One-week break";position:absolute;left:62px;top:-28px;font-size:.75rem;line-height:20px;color:var(--faint)}
@media (max-width:560px){
  .page-programme .prog-course{grid-template-columns:48px minmax(0,1fr);gap:6px 16px;padding:16px}
  .page-programme .prog-course .pill{grid-column:2;justify-self:start}
  .page-programme .prog-course:not(:last-child)::after{left:39px}
  .page-programme .prog-course+.prog-course::before{left:54px}
}
.page-programme .pp-finish{display:flex;gap:18px;align-items:center;margin-top:36px;padding:18px 22px;border-radius:var(--r);border:1px dashed var(--line);position:relative}
.page-programme .pp-finish::before{content:"";position:absolute;left:45px;bottom:100%;height:36px;width:2px;background:repeating-linear-gradient(180deg,var(--panel-3) 0 4px,transparent 4px 8px)}
.page-programme .pp-finish strong{display:block;color:var(--ink);font-weight:500;font-size:1.0625rem}
.page-programme .pp-finish span:not(.icon-tile):not(.ms){display:block;color:var(--muted);font-size:.925rem;margin-top:2px}
@media (max-width:560px){.page-programme .pp-finish{padding:16px;align-items:flex-start}.page-programme .pp-finish::before{left:39px}}

/* sessions */
.page-programme .pp-slots{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:28px 0 16px}
.page-programme .pp-slot{display:flex;flex-direction:column;gap:2px;padding:20px;border-radius:var(--r);color:var(--ink-2);font-size:.9rem}
.page-programme .pp-slot .ms{margin-bottom:14px;width:40px;height:40px;border-radius:12px;background:var(--tint);display:grid;place-items:center;font-size:22px;color:var(--ink)}
.page-programme .pp-slot b{font-weight:500;color:var(--ink);font-size:1rem}
.page-programme .pp-slot__time{font-size:1.35rem;font-weight:500;color:var(--ink);letter-spacing:-.01em;margin:2px 0}
.page-programme .pp-slot--yellow{background:var(--yellow-tint)}.page-programme .pp-slot--peri{background:var(--peri-tint)}.page-programme .pp-slot--green{background:var(--green-tint)}
.page-programme .pp-modes{margin-bottom:20px}
@media (max-width:640px){.page-programme .pp-slots{grid-template-columns:minmax(0,1fr)}.page-programme .pp-slot{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:14px}.page-programme .pp-slot .ms{grid-row:span 3;margin:0}}

/* fees */
.page-programme .pp-fee{margin-top:24px;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:8px 32px;padding:28px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--panel-2);align-items:center}
.page-programme .pp-fee__head{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.page-programme .pp-fee__price{font-size:clamp(2rem,4vw,2.75rem);font-weight:500;color:var(--ink);letter-spacing:-.02em;line-height:1.1;margin-bottom:6px}
.page-programme .pp-fee__rows{margin:0}
.page-programme .pp-fee__rows>div{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-top:1px solid var(--line-soft);font-size:.95rem}
.page-programme .pp-fee__rows>div:first-child{border-top:0}
.page-programme .pp-fee__rows dt{color:var(--muted)}
.page-programme .pp-fee__rows dd{margin:0;color:var(--ink);font-weight:500;text-align:right;white-space:nowrap}
.page-programme .pp-fee__rows s{color:var(--faint);font-weight:400}
.page-programme .pp-fee__save dd{color:var(--ink-2)}
@media (max-width:640px){.page-programme .pp-fee{grid-template-columns:minmax(0,1fr);padding:22px}}
.page-programme .pp-pay{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:12px 0}
.page-programme .pp-pay li{display:flex;gap:16px;align-items:flex-start;padding:20px;border-radius:var(--r);background:var(--grey)}
.page-programme .pp-pay h3{font-size:1.0625rem;margin:2px 0 4px}
.page-programme .pp-pay p{margin:0;color:var(--muted);font-size:.925rem}
@media (max-width:640px){.page-programme .pp-pay{grid-template-columns:minmax(0,1fr)}}
.page-programme .pp-note{margin:16px 0 0}

/* facts aside */
.page-programme .pp-aside .facts{gap:14px}
.page-programme .pp-aside__save{color:var(--ink-2);font-weight:500}
.page-programme .pp-aside .facts dl{margin-bottom:6px}
@media (max-width:1000px){.page-programme .pp-aside{max-width:560px}}

/* ═════════ detail: included (certificate stage) ═════════ */
.page-programme .pp-cert-stage{min-height:500px}
.page-programme .pp-cert{--w:360px;z-index:2;transform:rotate(-2deg)}
.page-programme .pp-cert .seal .ms{font-size:24px}
.page-programme .pp-cert__title{font-size:16px;font-weight:500;color:var(--ink);line-height:1.3;margin-top:2px}
.page-programme .pp-cert .ui-chip{margin-top:2px}
.page-programme .pp-verify{--w:240px;right:5%;top:40px;transform:rotate(3deg);z-index:3}
.page-programme .pp-verify__bar{display:flex;align-items:center;gap:6px;height:30px;padding:0 10px;border-radius:999px;background:var(--grey-2);font-size:11.5px;color:var(--ink-2)}
.page-programme .pp-verify__bar .ms{font-size:14px;color:var(--ink-2)}
.page-programme .pp-cert__toast{left:5%;bottom:40px;z-index:3}
.page-programme .pp-checks{margin-top:24px}
@media (max-width:1100px){.page-programme .pp-verify{right:2%;top:24px}.page-programme .pp-cert__toast{left:2%;bottom:24px}}
@media (max-width:860px){.page-programme .pp-cert-stage{min-height:0;padding:32px 16px}.page-programme .pp-cert{transform:none}}

/* ═════════ in-between widths ═════════ */
@media (min-width:681px) and (max-width:1024px){.page-programmes .pg-grid>:last-child{grid-column:1/-1}}
@media (min-width:1001px) and (max-width:1200px){.page-programme .layout-aside{grid-template-columns:minmax(0,1fr) 330px;gap:40px}}

/* ── 42-schedule.css ── */
/* ───────── schedule page (/schedule/) ─────────
   Every selector is scoped under .page-schedule so nothing leaks to other pages. */

/* hero + weekly timetable stage */
.page-schedule .sched-hero{padding-bottom:0}
.page-schedule .sched-hero h1{max-width:16ch}
.page-schedule .sched-hero .actions{margin-bottom:clamp(40px,5vw,56px)}
.page-schedule .sched-stage{min-height:0;padding:56px 24px 76px}
.page-schedule .tt-card{--w:640px;z-index:1;padding:20px 20px 18px;box-shadow:0 2px 6px rgba(60,64,67,.12),0 24px 60px 8px transparent}
.page-schedule .tt-card__head{flex-wrap:wrap;margin-bottom:16px}
.page-schedule .tt-legend{display:flex;flex-wrap:wrap;gap:6px 14px;font-size:12px;color:var(--ink-2)}
.page-schedule .tt-legend span{display:inline-flex;align-items:center;gap:6px}
.page-schedule .tt-legend i{width:10px;height:10px;border-radius:3px}
.page-schedule .tt-legend .m{background:var(--yellow)}
.page-schedule .tt-legend .e{background:var(--peri)}
.page-schedule .tt-legend .w{background:var(--green)}

.page-schedule .tt-week{--hr:30px;--head:28px;--lab:40px;position:relative;grid-template-columns:var(--lab) repeat(7,minmax(0,1fr));grid-template-rows:var(--head) repeat(10,var(--hr));column-gap:6px;row-gap:0;font-size:11px}
.page-schedule .tt-week::before{content:"";position:absolute;left:var(--lab);right:0;top:var(--head);bottom:0;background:repeating-linear-gradient(to bottom,var(--line-soft) 0 1px,transparent 1px var(--hr));pointer-events:none}
.page-schedule .tt-week>span{align-self:center;font-weight:500;font-size:11.5px;color:var(--muted);padding:0}
.page-schedule .tt-week>.tt-fri{color:var(--faint)}
.page-schedule .tt-week>.tt-h{grid-column:1;align-self:start;text-align:right;padding-right:6px;transform:translateY(-50%);font-weight:400;font-size:10.5px;color:var(--faint)}
.page-schedule .tt-week>i{position:relative;z-index:1;min-width:0;margin:2px 0;padding:7px 8px;border-radius:8px;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;overflow:hidden}
.page-schedule .tt-week>i b{font-weight:500;font-size:12px;line-height:1.25;color:var(--ink)}
.page-schedule .tt-week>i small{font-size:11px;line-height:1.25;color:var(--ink-2)}
.page-schedule .tt-week>.m{background:var(--yellow)}
.page-schedule .tt-week>.e{background:var(--peri)}
.page-schedule .tt-week>.w{background:var(--green)}
.page-schedule .tt-week>.tt-free{background:repeating-linear-gradient(135deg,var(--grey-2) 0 6px,var(--panel-2) 6px 12px);border:1px dashed var(--line);align-items:center;justify-content:center;text-align:center;gap:6px;padding:10px 6px}
.page-schedule .tt-free .ms{font-size:22px;color:var(--muted);background:var(--panel-2);border-radius:50%;width:34px;height:34px;display:grid;place-items:center;box-shadow:var(--shadow-1)}
.page-schedule .tt-week>.tt-free b,.page-schedule .tt-week>.tt-free small{background:var(--panel-2);border-radius:6px;padding:2px 6px}
.page-schedule .tt-week>.tt-free small{color:var(--muted);font-size:10.5px;white-space:nowrap}
.page-schedule .tt-now{position:relative;z-index:2;align-self:center;height:2px;margin:0 -3px;background:var(--red);border-radius:1px}
.page-schedule .tt-now::before{content:"";position:absolute;left:-5px;top:-4px;width:10px;height:10px;border-radius:50%;background:var(--red)}

.page-schedule .sched-float-intake{left:3%;top:72px;--w:220px;transform:rotate(-3deg)}
.page-schedule .sched-float-where{right:3%;top:132px;--w:224px;transform:rotate(3deg)}
.page-schedule .sched-toast{left:9%;bottom:44px}
@media (max-width:1240px){.page-schedule .sched-float-intake,.page-schedule .sched-float-where{display:none}.page-schedule .sched-toast{left:auto;right:4%;bottom:32px}}
@media (max-width:860px){
  .page-schedule .sched-stage{flex-direction:column;padding:20px 12px 24px}
  .page-schedule .tt-card{--w:100%;padding:16px 14px 14px;box-shadow:var(--shadow-2)}
  .page-schedule .sched-toast{position:static;margin-top:16px;max-width:100%}
}
@media (max-width:600px){
  .page-schedule .tt-card__head{gap:8px}
  .page-schedule .tt-week{--hr:22px;--lab:30px;column-gap:3px}
  .page-schedule .tt-week>span{font-size:10.5px}
  .page-schedule .tt-week>.tt-h{font-size:9.5px;padding-right:4px}
  .page-schedule .tt-week>i{padding:0;margin:1px 0;border-radius:6px}
  .page-schedule .tt-week>i b,.page-schedule .tt-week>i small{display:none}
  .page-schedule .tt-week>.tt-free{padding:4px 0}
  .page-schedule .tt-free .ms{font-size:16px;width:24px;height:24px}
}

/* the three sessions, with an apply button laid over each tile */
.page-schedule .slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.page-schedule .slot-grid .slot-tile .tile__body{padding:32px 32px 104px}
.page-schedule .slot-grid #morning,.page-schedule .slot-apply--morning{grid-column:1;grid-row:1}
.page-schedule .slot-grid #evening,.page-schedule .slot-apply--evening{grid-column:2;grid-row:1}
.page-schedule .slot-grid #weekend,.page-schedule .slot-apply--weekend{grid-column:3;grid-row:1}
.page-schedule .slot-apply{position:relative;z-index:2;align-self:end;justify-self:start;margin:0 0 32px 32px}
.page-schedule .slot-note{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px 8px;margin:32px auto 0;max-width:none;color:var(--ink-2)}
.page-schedule .slot-note .ms{font-size:20px;color:var(--primary)}
@media (max-width:860px){
  .page-schedule .slot-grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .page-schedule .slot-grid #morning,.page-schedule .slot-apply--morning{grid-column:1;grid-row:1}
  .page-schedule .slot-grid #evening,.page-schedule .slot-apply--evening{grid-column:1;grid-row:2}
  .page-schedule .slot-grid #weekend,.page-schedule .slot-apply--weekend{grid-column:1;grid-row:3}
  .page-schedule .slot-grid .slot-tile .tile__body{padding:28px 28px 96px}
  .page-schedule .slot-apply{margin:0 0 28px 28px}
}

/* a week in each class (dark, tabbed) */
.page-schedule .sched-week__tabs{margin-bottom:40px}
.page-schedule .sched-week .section-head .lede{color:var(--muted)}
.page-schedule .week-tile{grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:480px}
.page-schedule .week-tile .checks{margin-top:22px;font-size:.975rem}
.page-schedule .week-tile .actions{margin-top:28px}
.page-schedule .week-tile .tile__media{padding:48px 32px}
.page-schedule .agenda{--w:400px}
.page-schedule .ag-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;align-items:center;padding:4px 0}
.page-schedule .ag-day{font-size:12px;font-weight:500;color:var(--muted);line-height:1.3}
.page-schedule .ag-ev{display:flex;flex-direction:column;padding:8px 12px;border-radius:10px;border-left:4px solid var(--line);background:var(--grey)}
.page-schedule .ag-ev b{font-weight:500;font-size:13px;color:var(--ink)}
.page-schedule .ag-ev span{font-size:11.5px;color:var(--ink-2)}
.page-schedule .ag-ev.m{background:var(--yellow-tint);border-color:var(--yellow)}
.page-schedule .ag-ev.e{background:var(--peri-tint);border-color:var(--peri)}
.page-schedule .ag-ev.w{background:var(--green-tint);border-color:var(--green)}
.page-schedule .ag-ev--free{background:repeating-linear-gradient(135deg,var(--grey-2) 0 6px,var(--panel-2) 6px 12px);border:1px dashed var(--line);border-left:4px solid var(--line)}
.page-schedule .ag-ev--free span{color:var(--muted)}
.page-schedule .ag-ev--quiet b{color:var(--muted)}
.page-schedule .week-toast{left:6%;bottom:28px}
@media (max-width:860px){
  .page-schedule .week-tile{grid-template-columns:minmax(0,1fr);min-height:0}
  .page-schedule .week-tile .tile__body{max-width:none}
  .page-schedule .week-tile .tile__media{padding:0 16px 28px}
  .page-schedule .ag-row{grid-template-columns:56px minmax(0,1fr);gap:8px}
}

@media (max-width:480px){
  .page-schedule .sched-week .segmented button{padding:0 14px}
  .page-schedule .sched-week .segmented button .ms{display:none}
}

/* rules of the timetable (bento of colour tiles) */
.page-schedule .rules-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:24px}
.page-schedule .rule-tile{grid-column:span 2;min-height:440px}
.page-schedule .rule-tile--half{grid-column:span 3}
.page-schedule .rule-tile .tile__body h3{font-size:1.4rem}
.page-schedule .rule-tile .tile__media{min-height:210px;padding-top:8px;align-items:stretch}
.page-schedule .rule-tile .tile__media>.ui{padding-bottom:42px}
.page-schedule .rule-tile:not(.rule-tile--half){min-height:460px}
.page-schedule .rule-tile--half{min-height:370px}
.page-schedule .rule-ui{--w:340px}
.page-schedule .rule-ui--sm{--w:290px}
.page-schedule .dur-row{display:grid;grid-template-columns:62px minmax(0,1fr) 62px;align-items:center;gap:10px;margin-top:12px;font-size:12px;color:var(--ink-2)}
.page-schedule .dur-row i{display:block;height:10px;border-radius:5px;background:linear-gradient(90deg,var(--c) var(--p),var(--grey-2) var(--p))}
.page-schedule .dur-row i.m{--c:var(--yellow)}
.page-schedule .dur-row i.e{--c:var(--peri)}
.page-schedule .dur-row i.w{--c:var(--green)}
.page-schedule .dur-row b{font-weight:500;color:var(--ink);text-align:right}
.page-schedule .wk-strip{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:6px}
.page-schedule .wk-strip span{padding:8px 0;border-radius:8px;background:var(--grey);text-align:center;font-size:11px;font-weight:500;color:var(--muted)}
.page-schedule .wk-strip .on{background:var(--primary);color:#fff}
.page-schedule .holiday-msg{margin:12px 0;padding:10px 12px;border-radius:12px;background:var(--grey);font-size:12.5px;line-height:1.5;color:var(--ink-2)}
.page-schedule .holiday-swap{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:12px}
.page-schedule .holiday-swap .ui-sub{margin-left:4px}
.page-schedule .wk-strip--hol .c{background:var(--green-tint);color:var(--ink-2)}
.page-schedule .wk-strip--hol .off{color:var(--faint);text-decoration:line-through;background:repeating-linear-gradient(135deg,var(--grey-2) 0 3px,var(--panel-2) 3px 6px)}
.page-schedule .holiday-swap>.ms{font-size:18px;color:var(--muted)}
.page-schedule .holiday-off{color:var(--faint);text-decoration:line-through}
.page-schedule .seats{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;justify-items:center;padding:12px;border-radius:12px;background:var(--grey)}
.page-schedule .seats .ms{font-size:26px;color:var(--coral)}
.page-schedule .seats .you{color:var(--primary)}
.page-schedule .seats-key{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-top:10px;font-size:11.5px;color:var(--muted)}
.page-schedule .seats-key span{display:inline-flex;align-items:center;gap:6px}
.page-schedule .seats-key i{width:10px;height:10px;border-radius:3px;background:var(--primary)}
.page-schedule .seats-key .ms{font-size:16px}
@media (max-width:1024px){
  .page-schedule .rules-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-schedule .rule-tile,.page-schedule .rule-tile--half{grid-column:span 1}
  .page-schedule .rule-tile:last-child{grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;min-height:0}
  .page-schedule .rule-tile:last-child .tile__media{padding:32px 24px 0;align-self:stretch}
}
@media (max-width:680px){
  .page-schedule .rules-grid{grid-template-columns:minmax(0,1fr);gap:16px}
  .page-schedule .rule-tile,.page-schedule .rule-tile:not(.rule-tile--half),.page-schedule .rule-tile--half{min-height:0}
  .page-schedule .rule-tile:last-child{display:flex}
  .page-schedule .rule-tile:last-child .tile__media{padding:0 20px}
  .page-schedule .rule-tile .tile__media{min-height:190px}
}

/* campus, online, hybrid: mode cards on top, mockups below, read as one tile per column */
.page-schedule .mode-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:24px;row-gap:0}
.page-schedule .mode-grid #campus,.page-schedule .mode-media--campus{--mc:var(--yellow);grid-column:1}
.page-schedule .mode-grid #online,.page-schedule .mode-media--online{--mc:var(--green);grid-column:2}
.page-schedule .mode-grid #hybrid,.page-schedule .mode-media--hybrid{--mc:var(--peri);grid-column:3}
.page-schedule .mode-card{grid-row:1;gap:12px;border:0;border-radius:var(--r-lg) var(--r-lg) 0 0;padding:clamp(24px,3vw,36px) clamp(24px,3vw,36px) 16px;background:var(--mc)}
.page-schedule .mode-card .icon-tile{background:var(--tint);color:var(--ink)}
.page-schedule .mode-card h3{margin-top:8px;font-size:1.5rem}
.page-schedule .mode-card p{color:var(--ink-2);font-size:.975rem}
.page-schedule .mode-card .checks{gap:10px}
.page-schedule .mode-card .checks li{color:var(--ink-2)}
.page-schedule .mode-card .checks li::before{background:var(--tint);color:var(--ink)}
.page-schedule .mode-media{grid-row:2;display:flex;align-items:flex-end;justify-content:center;min-height:300px;padding:20px 24px 0;border-radius:0 0 var(--r-lg) var(--r-lg);background:var(--mc);overflow:hidden}
.page-schedule .mode-media>.ui{margin-bottom:-24px}
.page-schedule .mode-ui{--w:300px}
.page-schedule .mode-media--online .ui-video__tile--screen{height:auto;padding:12px 14px 10px}
.page-schedule .mode-media--online .ui-bars{width:100%;margin-top:8px}
.page-schedule .mode-video-top{display:flex;justify-content:space-between;align-items:center;padding:2px 4px 8px;font-size:11px;color:var(--muted)}
.page-schedule .hy-row{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 0;border-top:1px solid var(--line-soft);font-size:12.5px;color:var(--ink-2)}
.page-schedule .hy-pill{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:999px;font-size:12px;font-weight:500}
.page-schedule .hy-pill .ms{font-size:16px}
.page-schedule .hy-pill--campus{background:var(--yellow-tint);color:var(--ink-2)}
.page-schedule .hy-pill--online{background:var(--green-tint);color:var(--ink-2)}
.page-schedule .hy-row--next>span:first-child{color:var(--ink);font-weight:500}
.page-schedule .hy-toggle{display:inline-flex;padding:2px;border-radius:999px;background:var(--grey-2)}
.page-schedule .hy-toggle span{padding:3px 10px;border-radius:999px;font-size:12px;font-weight:500;color:var(--muted)}
.page-schedule .hy-toggle .on{background:var(--panel-2);color:var(--primary);box-shadow:var(--shadow-1)}
.page-schedule .mode-note{margin-top:36px}
@media (max-width:860px){
  .page-schedule .mode-grid{grid-template-columns:minmax(0,1fr)}
  .page-schedule .mode-grid #campus{grid-column:1;grid-row:1}
  .page-schedule .mode-media--campus{grid-column:1;grid-row:2}
  .page-schedule .mode-grid #online{grid-column:1;grid-row:3;margin-top:16px}
  .page-schedule .mode-media--online{grid-column:1;grid-row:4}
  .page-schedule .mode-grid #hybrid{grid-column:1;grid-row:5;margin-top:16px}
  .page-schedule .mode-media--hybrid{grid-column:1;grid-row:6}
  .page-schedule .mode-media{min-height:250px}
}

/* intakes: calendar stage + table */
.page-schedule .intake-layout{display:grid;grid-template-columns:minmax(0,420px) minmax(0,1fr);gap:clamp(24px,4vw,56px);align-items:center}
.page-schedule .intake-stage{min-height:460px;padding:40px 24px 64px}
.page-schedule .cal{--w:340px;transform:rotate(-2deg)}
.page-schedule .cal-nav{display:inline-flex;gap:2px}
.page-schedule .cal-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;text-align:center}
.page-schedule .cal-grid span{padding:2px 0 6px;font-size:11px;font-weight:500;color:var(--muted)}
.page-schedule .cal-grid span.f{color:var(--faint)}
.page-schedule .cal-grid i{position:relative;display:grid;place-items:center;aspect-ratio:1;border-radius:50%;font-style:normal;font-size:12.5px;color:var(--ink)}
.page-schedule .cal-grid i.o{visibility:hidden}
.page-schedule .cal-grid i.c::after{content:"";position:absolute;left:50%;bottom:2px;width:4px;height:4px;margin-left:-2px;border-radius:50%;background:var(--green-deep)}
.page-schedule .cal-grid i.f{border-radius:8px;color:var(--faint);background:repeating-linear-gradient(135deg,var(--grey-2) 0 3px,var(--panel-2) 3px 6px)}
.page-schedule .cal-grid i.start{background:var(--primary);color:#fff;font-weight:500;box-shadow:0 0 0 4px var(--primary-tint)}
.page-schedule .cal-key{display:flex;flex-wrap:wrap;gap:6px 14px;margin-top:12px;padding-top:12px;border-top:1px solid var(--line-soft);font-size:11px;color:var(--muted)}
.page-schedule .cal-key span{display:inline-flex;align-items:center;gap:6px}
.page-schedule .cal-key i{width:10px;height:10px;border-radius:50%}
.page-schedule .cal-key i.start{background:var(--primary)}
.page-schedule .cal-key i.c{width:6px;height:6px;background:var(--green-deep)}
.page-schedule .cal-key i.f{border-radius:3px;border:1px solid var(--line);background:repeating-linear-gradient(135deg,var(--grey-2) 0 2px,var(--panel-2) 2px 4px)}
.page-schedule .intake-toast{left:50%;bottom:28px;transform:translateX(-50%)}
.page-schedule .intake-side .table-wrap{border-radius:var(--r-lg)}
.page-schedule .intake-side .table{min-width:0}
.page-schedule .intake-side .table td{vertical-align:middle}
.page-schedule .intake-side .table td:nth-child(3){color:var(--muted)}
.page-schedule .intake-side .table td:nth-child(-n+2),.page-schedule .intake-side .table td:nth-child(4){white-space:nowrap}
.page-schedule .intake-side .table th,.page-schedule .intake-side .table td{padding-left:16px;padding-right:16px}
.page-schedule .intake-side .actions{margin-top:24px}
@media (max-width:960px){
  .page-schedule .intake-layout{grid-template-columns:minmax(0,1fr)}
  .page-schedule .intake-side{order:-1}
}
@media (max-width:680px){
  .page-schedule .intake-stage{min-height:0;padding:28px 16px 80px}
  .page-schedule .cal{transform:none}
  .page-schedule .intake-side thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .page-schedule .intake-side .table,.page-schedule .intake-side tbody{display:block}
  .page-schedule .intake-side tr{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:16px 18px;border-bottom:1px solid var(--line-soft)}
  .page-schedule .intake-side tr:last-child{border-bottom:0}
  .page-schedule .intake-side .table td{padding:0;border:0}
  .page-schedule .intake-side td:nth-child(1){grid-column:1;grid-row:1}
  .page-schedule .intake-side td:nth-child(2){grid-column:1;grid-row:2;font-size:.9rem}
  .page-schedule .intake-side td:nth-child(2)::before{content:"Starts "}
  .page-schedule .intake-side td:nth-child(3){grid-column:1;grid-row:3;font-size:.85rem}
  .page-schedule .intake-side td:nth-child(4){grid-column:2;grid-row:1/4;align-self:center}
  .page-schedule .intake-side .actions .btn{width:100%}
}

/* durations and fees table */
.page-schedule .dur-wrap{max-width:980px;margin:0 auto}
.page-schedule .dur-wrap .table-wrap{border-radius:var(--r-lg)}
.page-schedule .dur-wrap .table{min-width:0}
.page-schedule .dur-wrap .table td{vertical-align:middle}
.page-schedule .dur-wrap th:nth-child(n+2),.page-schedule .dur-wrap td:nth-child(n+2){text-align:center;white-space:nowrap}
.page-schedule .dur-wrap th:last-child,.page-schedule .dur-wrap td:last-child{text-align:right}
.page-schedule .dur-wrap th:nth-child(2)::before,.page-schedule .dur-wrap th:nth-child(3)::before,.page-schedule .dur-wrap th:nth-child(4)::before{content:"";display:inline-block;width:8px;height:8px;margin-right:8px;border-radius:50%;vertical-align:1px}
.page-schedule .dur-wrap th:nth-child(2)::before{background:var(--panel-3)}
.page-schedule .dur-wrap th:nth-child(3)::before{background:var(--peri)}
.page-schedule .dur-wrap th:nth-child(4)::before{background:var(--green-deep)}
.page-schedule .dur-wrap td:nth-child(4){background:var(--panel-2)}
.page-schedule .dur-wrap tbody tr:hover td{background:var(--grey)}
.page-schedule .dur-wrap td a{color:var(--ink);font-weight:500;text-decoration:none}
.page-schedule .dur-wrap td a:hover{color:var(--primary);text-decoration:underline}
.page-schedule .dur-note{margin:20px 0 0}
.page-schedule .dur-note .ms{flex:none}
@media (max-width:700px){
  .page-schedule .dur-wrap thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .page-schedule .dur-wrap .table,.page-schedule .dur-wrap tbody{display:block}
  .page-schedule .dur-wrap tr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:8px 10px;padding:16px 18px;border-bottom:1px solid var(--line-soft)}
  .page-schedule .dur-wrap tr:last-child{border-bottom:0}
  .page-schedule .dur-wrap .table td{padding:0;border:0;text-align:left;background:none;font-size:.9rem}
  .page-schedule .dur-wrap td:first-child{grid-column:1/-1;font-size:1rem}
  .page-schedule .dur-wrap td:nth-child(n+2)::before{display:block;margin-bottom:2px;font-size:.75rem;color:var(--muted)}
  .page-schedule .dur-wrap td:nth-child(2)::before{content:"Morning"}
  .page-schedule .dur-wrap td:nth-child(3)::before{content:"Evening"}
  .page-schedule .dur-wrap td:nth-child(4)::before{content:"Weekend"}
  .page-schedule .dur-wrap td:nth-child(5){text-align:right}
  .page-schedule .dur-wrap td:nth-child(5)::before{content:"Fee"}
  .page-schedule .dur-wrap tbody tr:hover td{background:none}
}

/* closing CTA */
.page-schedule .cta-band .actions{justify-content:flex-start}

/* ── 43-admissions.css ── */
/* ───────── admissions: apply, apply/thanks, contact, contact/thanks ─────────
   Everything here is scoped to .page-apply or .page-contact. */

/* ── shared hero rhythm ── */
.page-apply .apply-hero,.page-contact .contact-hero{padding:clamp(48px,7vw,88px) 0 clamp(36px,5vw,56px)}
.page-apply .apply-hero h1,.page-contact .contact-hero h1{max-width:16ch;margin:0 auto}
.page-apply .apply-hero .lede,.page-contact .contact-hero .lede{max-width:640px;margin:20px auto 0}
.page-contact .contact-hero .actions{justify-content:center;margin-top:32px}
.page-apply .btn svg,.page-contact .btn svg{width:20px;height:20px;fill:currentColor;flex:none;margin:0 -2px}

/* ════════════════════════════ APPLY ════════════════════════════ */
.page-apply .assure{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:10px 12px;margin-top:28px}
.page-apply .assure li{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 18px 0 6px;border-radius:999px;background:var(--grey);border:1px solid var(--line-soft);color:var(--ink);font-weight:500;font-size:.9375rem}
.page-apply .assure__icon{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--panel-2);color:var(--primary);box-shadow:var(--shadow-1)}
.page-apply .assure__icon .ms{font-size:18px}
.page-apply .assure li:nth-child(2) .assure__icon{color:var(--ink-2)}
.page-apply .assure li:nth-child(3) .assure__icon{color:var(--ink-2)}

.page-apply .apply-main{padding:0 0 clamp(8px,2vw,24px)}
.page-apply .apply-layout{display:grid;grid-template-columns:minmax(0,1fr) 420px;gap:clamp(24px,3.5vw,48px);align-items:start}

/* form card */
.page-apply .apply-card{border-radius:var(--r-xl);padding:0;box-shadow:var(--shadow-1);overflow:hidden}
.page-apply .apply-card__head{padding:clamp(24px,3.5vw,36px) clamp(20px,3.5vw,40px) 20px;background:var(--lav);border-bottom:1px solid var(--line-soft)}
.page-apply .apply-card__head h2{margin-bottom:4px}
.page-apply .apply-card__head p{margin:0}
.page-apply .apply-card .form{gap:0;padding:0 clamp(20px,3.5vw,40px) clamp(24px,3.5vw,40px)}
.page-apply .apply-step{padding:28px 0;border-bottom:1px solid var(--line-soft)}
.page-apply .apply-step .form-step{margin:0 0 18px;float:left;width:100%}
.page-apply .apply-step .form-step+*{clear:both}
.page-apply .form-step i{background:var(--green-deep);width:32px;height:32px;font-size:.95rem;font-weight:500}
.page-apply .apply-step__body{display:grid;gap:18px}
.page-apply .apply-help{margin:12px 0 0}
.page-apply .apply-step__body .apply-help{margin:-6px 0 0}

/* radio cards: icon on top, a check when selected */
.page-apply .choice__box{position:relative;flex-direction:column;gap:14px;padding:18px;border-radius:var(--r)}
.page-apply .choice__box .icon-tile{width:44px;height:44px;border-radius:12px;transition:background-color .15s,color .15s}
.page-apply .choice__box .icon-tile .ms{color:inherit;font-size:24px}
.page-apply .choice input:checked+.choice__box .icon-tile{background:var(--primary);color:#fff}
.page-apply .choice input:checked+.choice__box .icon-tile .ms{color:#fff}
.page-apply .choice__box::after{content:"check_circle";position:absolute;right:14px;top:14px;font:normal 400 22px/1 "Material Symbols Rounded";font-feature-settings:"liga";font-variation-settings:"FILL" 1;color:var(--primary);width:22px;height:22px;overflow:hidden;opacity:0;transform:scale(.6);transition:opacity .15s,transform .15s}
.page-apply .choice input:checked+.choice__box::after{opacity:1;transform:none}
.page-apply .choice input:checked+.choice__box b{color:var(--primary)}
.page-apply .choice__text{display:block}

/* send block */
.page-apply .apply-send{display:grid;gap:18px;padding-top:28px}
.page-apply .apply-send .check-field{color:var(--ink-2)}
.page-apply .apply-send__actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.page-apply .apply-or{color:var(--muted);font-size:.9rem}
.page-apply .apply-wa{color:var(--ink-2);border-color:var(--line)}
.page-apply .apply-wa:hover{background:var(--green-tint);border-color:#25d366}
.page-apply .apply-wa svg{color:#25d366}
.page-apply .apply-send>.apply-help{margin:-6px 0 0}

/* aside: what happens next */
.page-apply .apply-aside{position:sticky;top:88px}
.page-apply .next-card{border-radius:var(--r-xl);overflow:hidden;background:var(--panel-2);border:1px solid var(--line);box-shadow:var(--shadow-1)}
.page-apply .next-card__stage{position:relative;background:var(--scene);padding:64px 28px 0;display:flex;justify-content:center;height:400px;overflow:hidden}
.page-apply .next-card__stage::before{content:"";position:absolute;width:220px;height:220px;border-radius:48px;background:var(--tint);right:-60px;top:-70px;transform:rotate(18deg)}
.page-apply .next-toast{position:absolute;right:18px;top:18px;z-index:3}
.page-apply .next-card__body{padding:28px 28px 30px}
.page-apply .next-card__body h2{margin-bottom:20px}
.page-apply .next-steps{list-style:none;display:grid;gap:18px}
.page-apply .next-steps li{display:flex;gap:14px;align-items:flex-start}
.page-apply .next-steps__n.badge{width:36px;height:36px;margin:0;font-size:1rem;flex:none}
.page-apply .next-steps__n.badge--squircle{border-radius:11px}
.page-apply .next-steps b{display:block;color:var(--ink);font-weight:500;line-height:1.35}
.page-apply .next-steps span:not(.badge){display:block;color:var(--muted);font-size:.9rem;line-height:1.5;margin-top:2px}
.page-apply .next-note{margin:22px 0 0;padding:14px 16px;border-radius:var(--r-sm);background:var(--grey);color:var(--muted);line-height:1.5}

/* WhatsApp confirmation mockup */
.page-apply .wa-card{--w:320px;padding:0;overflow:hidden;background:var(--panel-2);border-radius:22px;z-index:2;align-self:flex-start;transform:rotate(-2deg);transform-origin:50% 0}
.page-apply .wa-card__head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:var(--panel-3);color:var(--ink)}
.page-apply .wa-card__head>div{flex:1;min-width:0}
.page-apply .wa-card__head b{display:block;font-weight:500;font-size:13.5px;line-height:1.25}
.page-apply .wa-card__head small{font-size:11px;opacity:.85}
.page-apply .wa-card__head .ms{font-size:20px}
.page-apply .wa-card__av{width:32px;height:32px;border-radius:50%;background:var(--panel-2);display:grid;place-items:center;flex:none}
.page-apply .wa-card__av svg{width:20px;height:20px}
.page-apply .wa-card__chat{display:grid;gap:7px;padding:12px 12px 18px}
.page-apply .wa-card__day{justify-self:center;font-size:10.5px;color:var(--muted);background:var(--panel-2);border-radius:8px;padding:3px 10px;box-shadow:0 1px 1px rgba(0,0,0,.06)}
.page-apply .wa-in{justify-self:start;max-width:88%;background:var(--panel-2);color:var(--ink-2);border-radius:12px;border-top-left-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,.06)}
.page-apply .ui-bubble.wa-in{border-bottom-left-radius:12px}
.page-apply .wa-class{display:flex;gap:10px;padding:10px 12px;align-items:flex-start}
.page-apply .wa-class .ui-title{font-size:13.5px}
.page-apply .wa-class .ui-sub{font-size:11.5px;line-height:1.45}
.page-apply .wa-out{display:inline-flex;align-items:center;gap:4px}
.page-apply .wa-out .ms{font-size:15px;color:var(--muted)}

@media (max-width:1060px){
  .page-apply .apply-layout{grid-template-columns:minmax(0,1fr)}
  .page-apply .apply-aside{position:static;max-width:640px;width:100%;margin:0 auto}
}
@media (max-width:640px){
  .page-apply .choice__box{flex-direction:row;align-items:center;padding:14px 16px}
  .page-apply .choice__box::after{top:50%;margin-top:-11px}
  .page-apply .choice__text{padding-right:28px}
  .page-apply .apply-send__actions .btn{width:100%}
  .page-apply .apply-or{width:100%;text-align:center;margin:-4px 0}
  .page-apply .apply-step{padding:24px 0}
  .page-apply .next-card__stage{height:380px;padding:60px 16px 0}
  .page-apply .next-toast{right:12px;top:12px}
  .page-apply .next-card__body{padding:24px 20px 26px}
  .page-apply .wa-card{--w:300px}
  .page-apply .assure li{font-size:.875rem}
}

/* ════════════════════════════ THANKS (apply + contact) ════════════════════════════ */
:is(.page-apply,.page-contact) .thanks-hero{padding:clamp(48px,7vw,88px) 0 clamp(64px,8vw,96px)}
:is(.page-apply,.page-contact) .thanks-hero h1{max-width:18ch;margin:0 auto}
:is(.page-apply,.page-contact) .thanks-hero .lede{max-width:620px;margin:20px auto 0}
:is(.page-apply,.page-contact) .thanks-hero .actions{justify-content:center;margin:32px 0 clamp(40px,5vw,56px)}
:is(.page-apply,.page-contact) .thanks-badge{width:76px;height:76px;margin-bottom:28px}
:is(.page-apply,.page-contact) .thanks-badge .ms{font-size:40px}
:is(.page-apply,.page-contact) .thanks-stage{min-height:440px;padding:56px 24px;background:var(--scene)}
:is(.page-apply,.page-contact) .thanks-stage--short{min-height:360px}
:is(.page-apply,.page-contact) .thanks-tracker{--w:380px;z-index:2;box-shadow:0 2px 6px rgba(60,64,67,.12),0 24px 60px 8px rgba(30,142,62,.16)}
:is(.page-apply,.page-contact) .thanks-tracker .ui-steps b{font-weight:500;color:var(--ink)}
:is(.page-apply,.page-contact) .thanks-tracker .ui-steps>div{font-size:13px}
:is(.page-apply,.page-contact) .thanks-contact{left:7%;top:72px;--w:210px;transform:rotate(-4deg);text-align:center}
:is(.page-apply,.page-contact) .thanks-contact__av{width:60px;height:60px;margin:4px auto 0;border-radius:50%;background:var(--lav);display:grid;place-items:center}
:is(.page-apply,.page-contact) .thanks-contact__av svg{width:30px;height:30px}
:is(.page-apply,.page-contact) .thanks-cal{right:7%;top:100px;--w:220px;padding:0;overflow:hidden;transform:rotate(3deg)}
:is(.page-apply,.page-contact) .thanks-cal__top{display:flex;align-items:center;gap:6px;padding:10px 14px;background:var(--primary);color:#fff;font-size:12.5px;font-weight:500}
:is(.page-apply,.page-contact) .thanks-cal__top .ms{font-size:18px}
:is(.page-apply,.page-contact) .thanks-cal__body{padding:14px}
:is(.page-apply,.page-contact) .thanks-cal__day{font-size:20px;font-weight:500;color:var(--ink);line-height:1.2;margin:2px 0 12px;letter-spacing:-.01em}
:is(.page-apply,.page-contact) .thanks-toast{left:18%;bottom:40px}
:is(.page-apply,.page-contact) .thanks-stage--short .thanks-toast{left:auto;right:12%;bottom:44px}
@media (max-width:1100px){
  :is(.page-apply,.page-contact) .thanks-contact{left:2%}
  :is(.page-apply,.page-contact) .thanks-cal{right:2%}
  :is(.page-apply,.page-contact) .thanks-toast{left:6%}
}
@media (max-width:860px){
  :is(.page-apply,.page-contact) .thanks-stage,:is(.page-apply,.page-contact) .thanks-stage--short{min-height:0;padding:32px 16px}
}

:is(.page-apply,.page-contact) .wait-tile .tile__body{display:flex;flex-direction:column;align-items:flex-start}
:is(.page-apply,.page-contact) .wait-tile:not(:has(.tile__media)) .tile__body{flex:1}
:is(.page-apply,.page-contact) .wait-tile:not(:has(.tile__media)) .wait-link{margin-top:auto;padding-top:28px}
:is(.page-apply,.page-contact) .wait-tile .tile__body .icon-tile{margin-bottom:20px;background:var(--tint);color:var(--ink)}
:is(.page-apply,.page-contact) .wait-link{margin-top:18px;color:var(--ink);font-size:.95rem}
:is(.page-apply,.page-contact) .wait-tile .tile__media{min-height:200px;padding-top:4px}
@media (max-width:1024px) and (min-width:681px){
  :is(.page-apply,.page-contact) .wait-grid{grid-template-columns:repeat(3,minmax(0,1fr));--gap:16px}
}
@media (max-width:680px){
  :is(.page-apply,.page-contact) .wait-tile .tile__media{min-height:180px}
}

/* ════════════════════════════ CONTACT ════════════════════════════ */
.page-contact .contact-place{padding:0 0 clamp(8px,2vw,24px)}
.page-contact .place{display:grid;grid-template-columns:440px minmax(0,1fr);gap:24px;align-items:stretch}

/* Google-style place card */
.page-contact .place-card{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-xl);box-shadow:var(--shadow-2);overflow:hidden}
.page-contact .place-card__head{padding:28px 28px 0}
.page-contact .place-card__head h2{font-size:1.5rem;line-height:1.25}
.page-contact .place-card__type{margin:6px 0 0;color:var(--muted);font-size:.925rem}
.page-contact .place-status{margin:6px 0 0;font-size:.925rem;color:var(--muted)}
.page-contact .place-status .is-open{color:var(--ink-2);font-weight:500}
.page-contact .place-status .is-closed{color:var(--ink-2);font-weight:500}
.page-contact .place-actions{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;padding:20px 16px;border-bottom:1px solid var(--line-soft)}
.page-contact .place-actions a{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:.8125rem;font-weight:500;color:var(--primary);padding:6px 0;border-radius:var(--r-sm);transition:background-color .15s}
.page-contact .place-actions a:hover{background:var(--lav)}
.page-contact .place-actions__icon{width:44px;height:44px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:var(--panel-2);color:var(--primary)}
.page-contact .place-actions__icon .ms{font-size:22px}
.page-contact .place-actions__icon svg{width:20px;height:20px;fill:currentColor}
.page-contact .place-actions__icon--primary{background:var(--primary);border-color:var(--primary);color:#fff}
.page-contact .place-info{list-style:none;padding:8px 0 12px}
.page-contact .place-info li{display:flex;gap:18px;align-items:flex-start;padding:14px 28px;font-size:.95rem;line-height:1.5}
.page-contact .place-info li+li{border-top:1px solid var(--line-soft)}
.page-contact .place-info li>.ms,.page-contact .place-info__wa{color:var(--primary);font-size:22px;margin-top:1px}
.page-contact .place-info__wa{width:22px;height:22px;flex:none;display:block}
.page-contact .place-info__wa svg{width:22px;height:22px;fill:var(--primary)}
.page-contact .place-info li>div{min-width:0;flex:1}
.page-contact .place-info b{display:block;color:var(--ink);font-weight:500}
.page-contact .place-info span{display:block;color:var(--muted)}
.page-contact .place-info a{color:var(--ink);font-weight:500;text-decoration:none;overflow-wrap:anywhere}
.page-contact .place-info a:hover{color:var(--primary);text-decoration:underline}
.page-contact .hours{border-collapse:collapse;margin-top:6px;width:100%;font-size:.9rem}
.page-contact .hours th,.page-contact .hours td{padding:3px 0;text-align:left;font-weight:400;color:var(--ink-2);vertical-align:top}
.page-contact .hours td{text-align:right;padding-left:12px;white-space:nowrap}
.page-contact .hours .is-today th,.page-contact .hours .is-today td{color:var(--ink);font-weight:500}
.page-contact .place-map{position:relative;aspect-ratio:auto;height:100%;min-height:520px;border-radius:var(--r-xl)}
.page-contact .place-map iframe{position:relative;z-index:1}
.page-contact .place-map__fallback{position:absolute;inset:0;z-index:0}
.page-contact .place-map__fallback svg{width:100%;height:100%}
.page-contact .place-map__fallback .ui-pin .ms{font-size:48px}

/* route tile */
.page-contact .route-tile .tile__body{max-width:520px}
.page-contact .route-steps{list-style:none;display:grid;gap:18px;margin:8px 0 0}
.page-contact .route-steps li{display:flex;gap:16px;align-items:flex-start}
.page-contact .route-steps .badge{width:40px;height:40px;margin:0;font-size:1.05rem;flex:none}
.page-contact .route-steps .badge--squircle{border-radius:12px}
.page-contact .route-steps b{display:block;color:var(--ink);font-weight:500;font-size:1.05rem;line-height:1.35}
.page-contact .route-steps span:not(.badge){display:block;color:var(--ink);font-size:.95rem;margin-top:2px}
.page-contact .route-tile .actions{margin-top:28px}
.page-contact .route-tile .tile__media{position:relative}
.page-contact .route-card{--w:400px;transform:rotate(2deg)}
.page-contact .route-flag{position:absolute;left:18%;top:20%;display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px 0 6px;border-radius:999px;background:var(--panel-2);color:var(--ink);font-size:11.5px;font-weight:500;box-shadow:var(--shadow-1)}
.page-contact .route-flag .ms{font-size:16px;color:var(--muted);font-variation-settings:"FILL" 1}
.page-contact .route-toast{right:5%;bottom:40px}

/* message form */
.page-contact .contact-write{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}
.page-contact .contact-write__intro h2{margin-bottom:16px}
.page-contact .contact-write__tip{margin:28px 0 14px;color:var(--ink);font-weight:500}
.page-contact .contact-write__team{margin:28px 0 0}
.page-contact .contact-card{border-radius:var(--r-xl);box-shadow:var(--shadow-1);border-color:transparent}
.page-contact .contact-send{display:flex;align-items:center;gap:16px;flex-wrap:wrap}

@media (max-width:1000px){
  .page-contact .place{grid-template-columns:minmax(0,1fr)}
  .page-contact .place-map{height:auto;min-height:0;aspect-ratio:4/3}
  .page-contact .contact-write{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:860px){
  .page-contact .route-tile{grid-template-columns:minmax(0,1fr)}
  .page-contact .route-tile .tile__body{padding:28px 24px 8px}
  .page-contact .route-card{--w:340px;transform:none}
  .page-contact .route-tile .tile__media{padding-top:8px}
}
@media (max-width:640px){
  .page-contact .place-card__head{padding:24px 20px 0}
  .page-contact .place-actions{padding:18px 8px}
  .page-contact .place-info li{padding:14px 20px;gap:14px}
  .page-contact .place-map{aspect-ratio:1/1}
  .page-contact .contact-send .btn{width:100%}
}

/* contact thanks: extra mockups around the tracker */
.page-contact .thanks-hours{left:7%;top:64px;--w:230px;transform:rotate(-4deg)}
.page-contact .thanks-hours .ui-map{margin-bottom:10px}
.page-contact .thanks-hours .ui-badge{margin-top:8px}
.page-contact .thanks-chat{right:6%;top:84px;--w:250px;transform:rotate(3deg)}
.page-contact .thanks-chat .ui-chat{margin-top:4px}
@media (max-width:1100px){.page-contact .thanks-hours{left:2%}.page-contact .thanks-chat{right:2%}}
s.was{opacity:.6;font-weight:400}
/* payment result on the thanks page */
.paynote{max-width:620px;margin:20px auto 0}
.paynote__msg{display:flex;gap:10px;align-items:flex-start;text-align:left;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel);margin:0}
.paynote__msg .ms{flex:none;color:var(--primary)}
.paynote__msg code{font-size:.8125rem;background:var(--panel-3);padding:1px 6px;border-radius:4px}

/* ── 44-school.css ── */
/* ───────── School pages: about, FAQ, corporate (for teams), 404 ─────────
   Every selector is scoped to one of: .page-about .page-faq .page-corporate .page-404 */

/* shared: page hero followed by a big illustrated stage */
:is(.page-about,.page-corporate,.page-404) .page-hero{padding-bottom:0}
:is(.page-about,.page-corporate,.page-404) .page-hero .actions{margin-bottom:clamp(40px,5vw,56px)}
:is(.page-about,.page-corporate,.page-404) .page-hero+.section{padding-top:clamp(72px,9vw,120px)}
:is(.page-about,.page-corporate,.page-404) .stage .ui-steps b{font-weight:500;color:var(--ink)}
:is(.page-about,.page-corporate,.page-404) .hero-card{z-index:3;box-shadow:0 2px 6px rgba(60,64,67,.12),0 24px 60px 8px transparent}
:is(.page-about,.page-corporate) .tile .ui-steps b{font-weight:500;color:var(--ink)}
:is(.page-about,.page-corporate,.page-404,.page-faq) .avatars{display:flex}
:is(.page-about,.page-corporate,.page-404,.page-faq) .avatars .ui-av{box-shadow:0 0 0 2px var(--line);margin-left:-6px}
:is(.page-about,.page-corporate,.page-404,.page-faq) .avatars .ui-av:first-child{margin-left:0}
@media (max-width:860px){
  :is(.page-about,.page-corporate,.page-404) .stage{min-height:0;padding:32px 16px}
}

/* ═════════════════════════ About ═════════════════════════ */
.page-about .about-stage{min-height:500px;padding:56px 24px}
.page-about .about-week{--w:440px;z-index:3;box-shadow:0 2px 6px rgba(60,64,67,.12),0 24px 60px 8px transparent}
.page-about .about-seats{left:6%;top:56px;--w:220px;transform:rotate(-4deg)}
.page-about .about-switch{right:5%;top:92px;--w:250px;transform:rotate(3deg)}
.page-about .about-toast{left:14%;bottom:40px}
@media (max-width:1100px){.page-about .about-seats{left:2%}.page-about .about-switch{right:2%}.page-about .about-toast{left:6%}}

/* week grid inside the hero card */
.page-about .week{display:grid;grid-template-columns:76px repeat(7,minmax(0,1fr));gap:5px;align-items:center;margin-top:6px}
.page-about .week>span{font-size:10.5px;color:var(--muted);text-align:center;padding-bottom:2px}
.page-about .week>b{font-weight:500;font-size:12px;color:var(--ink);line-height:1.25;padding:5px 6px;border-radius:8px}
.page-about .week>b small{display:block;font-weight:400;font-size:10px;color:var(--muted)}
.page-about .week>b.on{background:var(--primary-tint);color:var(--primary)}
.page-about .week>i{height:34px;border-radius:8px;background:var(--grey);box-shadow:inset 0 0 0 1px var(--line-soft)}
.page-about .week>i.m{background:var(--yellow);box-shadow:none}
.page-about .week>i.e{background:var(--peri);box-shadow:inset 0 0 0 2px var(--primary)}
.page-about .week>i.w{background:var(--green);box-shadow:none}
.page-about .about-week__pick{margin-top:14px;border-top:1px solid var(--line-soft)!important;padding-bottom:0}

/* classroom seat map */
.page-about .room{margin-top:12px;background:var(--grey);border-radius:12px;padding:10px}
.page-about .room__front{display:flex;align-items:center;justify-content:center;gap:6px;height:26px;border-radius:8px;background:var(--panel-2);font-size:11px;font-weight:500;color:var(--ink);box-shadow:var(--shadow-1)}
.page-about .room__front .ms{font-size:16px;color:var(--primary)}
.page-about .room__seats{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:12px;justify-items:center}
.page-about .room__seats i{width:22px;height:22px;border-radius:50%;background:var(--panel-2);box-shadow:inset 0 0 0 1.5px var(--line)}
.page-about .room__seats i.t{background:var(--c);box-shadow:none}

/* mission */
.page-about .feature__text .kicker{margin:0 0 12px}
.page-about .mission-stage{min-height:480px;padding:48px 24px 96px}
.page-about .mission-stage .ui--lg{--w:420px}
.page-about .mission-cert{--w:210px;right:7%;bottom:26px;padding:14px 14px 16px;transform:rotate(4deg)}
.page-about .mission-cert .seal{width:34px;height:34px;margin-bottom:6px}
.page-about .mission-cert .seal .ms{font-size:20px}
.page-about .mission-cert .who{font-size:16px;margin:2px 0}
@media (max-width:860px){.page-about .mission-stage{padding:32px 16px}}

/* how we teach: four colour tiles */
.page-about .teach-grid .tile{min-height:460px}
.page-about .teach-icon{width:52px;height:52px;border-radius:16px;background:var(--tint);color:var(--ink);margin-bottom:20px}
.page-about .teach-grid h3{font-size:clamp(1.5rem,2.2vw,1.85rem)}
.page-about .teach-grid .tile__body p{font-size:1.05rem;max-width:40ch}
.page-about .teach-grid .tile__media{min-height:210px;padding-top:8px}
.page-about .split-bar{display:flex;gap:4px;margin:2px 0 6px}
.page-about .split-bar i{font-style:normal;height:30px;border-radius:8px;display:flex;align-items:center;padding:0 10px;font-size:11.5px;font-weight:500;white-space:nowrap}
.page-about .split-bar .talk{flex:1;background:var(--grey-2);color:var(--ink-2)}
.page-about .split-bar .lab{flex:3;background:var(--green-tint);color:var(--ink-2)}

/* what makes us different */
.page-about .diff{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,6vw,88px);align-items:center}
.page-about .diff__list{list-style:none;display:grid;gap:28px}
.page-about .diff__list li{display:flex;gap:18px;align-items:flex-start}
.page-about .diff__list h3{font-size:1.2rem;margin:2px 0 4px}
.page-about .diff__list p{margin:0;color:var(--muted);font-size:.975rem}
.page-about .diff__stage{min-height:560px;padding:48px 24px;background:var(--scene)}
.page-about .diff__stage .ui--lg{--w:420px}
.page-about .class-people{display:flex;align-items:center;gap:10px;margin-top:2px}
@media (max-width:900px){
  .page-about .diff{grid-template-columns:minmax(0,1fr)}
  .page-about .diff__stage{min-height:0;padding:32px 16px}
}

/* team role cards */
.page-about .team-card{background:var(--panel-2);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;display:flex;flex-direction:column}
.page-about .team-card__top{--c:var(--yellow);--ct:var(--yellow-tint);--ci:#7a5f00;height:116px;position:relative;background:var(--c);overflow:visible}
.page-about .team-card__top::before,.page-about .team-card__top::after{content:"";position:absolute;background:var(--tint)}
.page-about .team-card__top::before{width:88px;height:88px;border-radius:24px;right:-18px;top:-22px;transform:rotate(14deg)}
.page-about .team-card__top::after{width:56px;height:56px;border-radius:50%;right:70px;bottom:-20px}
.page-about .team-card__top--peri{--c:var(--peri);--ct:var(--peri-tint);--ci:#3247b8}
.page-about .team-card__top--green{--c:var(--green);--ct:var(--green-tint);--ci:#137a3f}
.page-about .team-card__av{position:absolute;left:24px;bottom:-38px;z-index:1;width:84px;height:84px;border-radius:50%;background:var(--ct);color:var(--ci);border:4px solid var(--line);display:grid;place-items:center;font-size:1.6rem;font-weight:500;letter-spacing:.02em;box-shadow:var(--shadow-1)}
.page-about .team-card__body{padding:58px 24px 24px;display:flex;flex-direction:column;gap:10px;flex:1}
.page-about .team-card__body h3{font-size:1.25rem}
.page-about .team-card__body p{margin:0;color:var(--muted);font-size:.975rem}
.page-about .team-card .pills{margin-top:auto;padding-top:10px}

/* campus tile with live map */
.page-about .campus-tile{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);min-height:500px}
.page-about .campus-tile .tile__body{padding:clamp(28px,5vw,56px);display:flex;flex-direction:column;justify-content:center}
.page-about .campus-tile h3{font-size:clamp(1.6rem,2.6vw,2.25rem);margin-bottom:12px}
.page-about .campus-tile address{font-style:normal;font-size:1.075rem;line-height:1.5;color:var(--ink)}
.page-about .facilities{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px;margin:24px 0}
.page-about .facilities li{display:flex;align-items:center;gap:10px;font-size:.95rem;line-height:1.3;color:var(--ink)}
.page-about .facilities .ms{width:36px;height:36px;border-radius:12px;background:var(--tint);display:grid;place-items:center;font-size:20px}
.page-about .campus-tile .actions{margin-top:24px}
.page-about .campus-tile__map{position:relative;min-height:340px}
.page-about .campus-tile__map .map-embed{position:absolute;inset:0;aspect-ratio:auto;border:0;border-radius:0}
@media (max-width:900px){
  .page-about .campus-tile{grid-template-columns:minmax(0,1fr);min-height:0}
  .page-about .campus-tile__map{min-height:300px}
}
@media (max-width:420px){.page-about .facilities{grid-template-columns:minmax(0,1fr)}}

/* ═════════════════════════ FAQ ═════════════════════════ */
.page-faq .faq-hero{padding-bottom:clamp(48px,6vw,72px)}
.page-faq .faq-nav{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:4px;padding:4px;margin-top:36px;border-radius:999px;background:var(--grey-2);border:1px solid var(--line);max-width:100%}
.page-faq .faq-nav a{display:inline-flex;align-items:center;gap:8px;height:42px;padding:0 18px;border-radius:999px;font-weight:500;font-size:.9375rem;color:var(--ink-2);white-space:nowrap;transition:background-color .15s,box-shadow .15s,color .15s}
.page-faq .faq-nav a:hover{background:var(--panel-2);color:var(--ink);box-shadow:var(--shadow-1)}
.page-faq .faq-nav .ms{font-size:20px;color:var(--muted)}
.page-faq .faq-nav a:hover .ms{color:var(--primary)}
@media (max-width:1060px){
  .page-faq .faq-nav{display:flex;padding:0;background:transparent;border:0;gap:8px}
  .page-faq .faq-nav a{background:var(--panel-2);border:1px solid var(--line);height:40px;padding:0 14px;font-size:.875rem}
  .page-faq .faq-nav .ms{font-size:18px}
}

.page-faq .faq-block{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(24px,5vw,72px);align-items:start;padding:clamp(40px,5vw,64px) 0;border-top:1px solid var(--line-soft)}
.page-faq .faq-block:first-child{border-top:0;padding-top:0}
.page-faq .faq-block__head{position:sticky;top:96px}
.page-faq .faq-block__head h2{font-size:clamp(1.5rem,2.4vw,2rem);margin:20px 0 8px}
.page-faq .faq-block__head p{color:var(--muted);margin:0;max-width:30ch}
.page-faq .faq-block .faq{max-width:none;margin:0}
.page-faq .faq-ico{width:56px;height:56px;border-radius:18px;display:grid;place-items:center;color:var(--ink);background:var(--yellow)}
.page-faq .faq-ico .ms{font-size:28px}
.page-faq .faq-ico--peri{background:var(--peri)}
.page-faq .faq-ico--green{background:var(--green);border-radius:50%}
.page-faq .faq-ico--coral{background:var(--coral)}
.page-faq .faq-ico--sky{background:var(--sky);border-radius:50%}
.page-faq .faq details>div p+p{margin-top:.75em}
@media (max-width:860px){
  .page-faq .faq-block{grid-template-columns:minmax(0,1fr);gap:20px}
  .page-faq .faq-block__head{position:static;display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:16px;align-items:center}
  .page-faq .faq-ico{grid-row:span 2;width:48px;height:48px;border-radius:14px}
  .page-faq .faq-ico .ms{font-size:24px}
  .page-faq .faq-block__head h2{margin:0}
  .page-faq .faq-block__head p{font-size:.925rem}
  .page-faq .faq summary{padding:14px 16px 14px 20px;font-size:.975rem}
  .page-faq .faq details>div{padding:0 20px 18px}
}

/* still have a question tile */
.page-faq .ask-tile{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:480px;align-items:center}
.page-faq .ask-tile .tile__body{padding:clamp(28px,5vw,64px)}
.page-faq .ask-tile h2{margin-bottom:14px}
.page-faq .ask-tile .tile__body>p{font-size:1.075rem;max-width:42ch}
.page-faq .ask-tile .actions{margin-top:28px}
.page-faq .ask-tile .btn svg{width:20px;height:20px;fill:currentColor;flex:none}
.page-faq .ask-tile .tile__body>p.ask-tile__alt{margin-top:24px;font-size:.95rem}
.page-faq .ask-tile__alt a{color:var(--ink)!important}
.page-faq .ask-tile .tile__media{align-self:stretch;align-items:flex-end;padding-top:48px;min-height:0}
.page-faq .wa-mock{--w:340px;padding:0;overflow:hidden;background:var(--panel-2)}
.page-faq .wa-mock__head{display:flex;gap:10px;align-items:center;padding:12px 14px;background:var(--panel-3);color:var(--ink)}
.page-faq .wa-mock__head .ui-av{display:grid;place-items:center}
.page-faq .wa-mock__head b{display:block;font-weight:500;font-size:13px;line-height:1.3}
.page-faq .wa-mock__head small{font-size:11px;opacity:.85}
.page-faq .wa-mock__chat{padding:14px 12px 4px}
.page-faq .wa-mock .ui-bubble{background:var(--panel-2)}
.page-faq .wa-mock .ui-bubble--wa{background:var(--panel-2)}
.page-faq .wa-mock__input{margin:8px 12px 40px;background:var(--panel-2);border:0}
.page-faq .wa-mock__input .send{background:var(--panel-3)}
@media (max-width:860px){
  .page-faq .ask-tile{grid-template-columns:minmax(0,1fr);min-height:0}
  .page-faq .ask-tile .tile__media{padding:8px 20px 0;justify-content:center}
  .page-faq .ask-tile .actions .btn{flex:1 1 auto}
}

/* ═════════════════════════ Corporate (for teams) ═════════════════════════ */
.page-corporate .corp-stage{min-height:540px;padding:56px 24px}
.page-corporate .corp-plan{--w:420px;z-index:3;box-shadow:0 2px 6px rgba(60,64,67,.12),0 24px 60px 8px transparent}
.page-corporate .corp-sector{left:5%;top:60px;--w:250px;transform:rotate(-3deg)}
.page-corporate .corp-delivery{right:5%;top:96px;--w:220px;transform:rotate(3deg)}
.page-corporate .corp-seg{grid-template-columns:1fr;margin-top:10px}
.page-corporate .corp-toast{right:12%;bottom:52px}
@media (max-width:1100px){.page-corporate .corp-sector{left:2%}.page-corporate .corp-delivery{right:2%}.page-corporate .corp-toast{right:4%}}

.page-corporate .sectors{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:16px 48px}
.page-corporate .sectors li{display:flex;flex-direction:column;align-items:center;gap:12px;font-weight:500;color:var(--ink);min-width:96px}
.page-corporate .sectors .icon-tile{width:64px;height:64px;border-radius:20px}
.page-corporate .sectors li:nth-child(even) .icon-tile{border-radius:50%}
.page-corporate .sectors .icon-tile .ms{font-size:30px}
@media (max-width:640px){.page-corporate .sectors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 8px}.page-corporate .sectors li{min-width:0;font-size:.925rem}}

.page-corporate .offers .tile{min-height:480px}
.page-corporate .offer-len{background:var(--tint);color:var(--ink);margin-bottom:18px}
.page-corporate .tile--lav .offer-len{background:var(--panel-2)}
.page-corporate .offers .tile__media{min-height:210px}
.page-corporate .offers .tile__body p{font-size:1rem}

.page-corporate .enquire{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(32px,6vw,96px);align-items:start}
.page-corporate .enquire__text{position:sticky;top:104px}
.page-corporate .enquire__text h2{margin-bottom:16px}
.page-corporate .enquire__contacts{margin-top:28px}
.page-corporate .enquire__contacts li{align-items:center;padding:12px}
.page-corporate .enquire__contacts li:hover{background:var(--tint)}
.page-corporate .enquire__contacts a{color:var(--primary);text-decoration:none;font-weight:500}
.page-corporate .enquire__contacts a:hover{text-decoration:underline}
.page-corporate .corp-form{border:0;box-shadow:var(--shadow-2)}
.page-corporate .corp-form .hint{font-weight:400}
.page-corporate .size-pills{display:flex;flex-wrap:wrap;gap:8px}
.page-corporate .size-pills label{position:relative;cursor:pointer}
.page-corporate .size-pills input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
.page-corporate .size-pills span{display:inline-flex;align-items:center;height:44px;padding:0 22px;border-radius:999px;border:1px solid var(--line);background:var(--panel-2);font-weight:500;color:var(--ink-2);transition:.15s}
.page-corporate .size-pills label:hover span{border-color:var(--line)}
.page-corporate .size-pills input:checked+span{background:var(--primary-tint);border-color:var(--primary);color:var(--primary);box-shadow:inset 0 0 0 1px var(--primary)}
.page-corporate .size-pills input:focus-visible+span{outline:2px solid var(--primary);outline-offset:2px}
.page-corporate .corp-choices{grid-template-columns:repeat(2,minmax(0,1fr))}
.page-corporate .form-foot{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-top:4px}
@media (max-width:900px){
  .page-corporate .enquire{grid-template-columns:minmax(0,1fr)}
  .page-corporate .enquire__text{position:static}
}
@media (max-width:480px){
  .page-corporate .corp-choices{grid-template-columns:minmax(0,1fr)}
  .page-corporate .size-pills{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
  .page-corporate .size-pills span{width:100%;justify-content:center;padding:0 6px}
  .page-corporate .form-foot .btn{width:100%}
}

/* ═════════════════════════ 404 ═════════════════════════ */
.page-404 .nf-stage{min-height:480px;padding:56px 24px}
.page-404 .nf-search{--w:400px;z-index:3;box-shadow:0 2px 6px rgba(60,64,67,.12),0 24px 60px 8px transparent}
.page-404 .nf-search__bar{margin:0 0 6px;color:var(--ink-2)}
.page-404 .nf-search__bar>span:first-child{display:flex;align-items:center;gap:8px;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.page-404 .nf-search__bar .ms{font-size:18px;color:var(--muted)}
.page-404 .nf-search__bar .send .ms{color:#fff;font-size:16px}
.page-404 .nf-search__miss{border-top:0!important}
.page-404 .nf-go{color:var(--faint);font-size:20px}
.page-404 .nf-map{left:6%;top:68px;--w:230px;transform:rotate(-4deg)}
.page-404 .nf-chat{right:6%;top:120px;--w:250px;transform:rotate(3deg)}
@media (max-width:1100px){.page-404 .nf-map{left:2%}.page-404 .nf-chat{right:2%}}

.page-404 .nf-links{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.page-404 .nf-links a{display:flex;align-items:center;gap:14px;height:100%;padding:18px;border:1px solid var(--line);border-radius:var(--r);background:var(--panel-2);color:inherit;text-decoration:none;transition:box-shadow .2s,border-color .2s,transform .2s}
.page-404 .nf-links a:hover{box-shadow:var(--shadow-2);border-color:transparent;transform:translateY(-2px)}
.page-404 .nf-links a>span:nth-child(2){flex:1;min-width:0}
.page-404 .nf-links b{display:block;color:var(--ink);font-weight:500}
.page-404 .nf-links small{display:block;color:var(--muted);font-size:.85rem;line-height:1.35;margin-top:2px}
.page-404 .nf-links a>.ms:last-child{color:var(--primary)}
@media (max-width:1024px){.page-404 .nf-links{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.page-404 .nf-links{grid-template-columns:minmax(0,1fr)}}

/* ═════════════════════════ Polish pass ═════════════════════════ */
/* badges inside mockups never wrap */
:is(.page-about,.page-corporate,.page-404,.page-faq) .ui-badge{white-space:nowrap}

/* about: illustrated map sits under the live map, so the tile never looks empty while it loads or offline */
.page-about .campus-tile__map .map-embed{background:var(--panel-2)}
.page-about .campus-map-fallback{position:absolute;inset:0}
.page-about .campus-map-fallback svg{position:absolute;inset:0;width:100%;height:100%}
.page-about .campus-map-fallback .ui-pin{position:absolute}
.page-about .campus-map-fallback .ui-pin .ms{font-size:48px}
.page-about .campus-tile__map iframe{position:relative;z-index:1}

/* about: keep the CTA shapes clear of the buttons */
.page-about .cta-band__shapes{right:-90px;top:-70px}

/* FAQ: group navigator scrolls sideways on small screens instead of stacking */
@media (max-width:640px){
  .page-faq .faq-nav{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;max-width:none;scrollbar-width:none;margin:28px calc(var(--gutter)*-1) 0;padding:2px var(--gutter)}
  .page-faq .faq-nav::-webkit-scrollbar{display:none}
  .page-faq .faq-nav a{flex:none}
}

/* mobile: no empty space inside stages and tiles */
@media (max-width:860px){
  .page-about .about-stage,.page-about .mission-stage,.page-corporate .corp-stage,.page-404 .nf-stage{min-height:0;padding:32px 16px}
  .page-about .teach-grid .tile,.page-corporate .offers .tile{min-height:0}
  .page-about .teach-grid .tile__media,.page-corporate .offers .tile__media{min-height:0;padding-top:4px}
  .page-about .teach-grid .tile__body,.page-corporate .offers .tile__body{padding-bottom:28px}
}
@media (max-width:420px){
  .page-about .week{grid-template-columns:62px repeat(7,minmax(0,1fr));gap:4px}
  .page-about .week>i{height:28px}
}
.page-about .campus-photo{margin:0 0 32px}
.page-about .campus-photo img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border-radius:var(--r-lg)}
.page-about .campus-photo figcaption{margin-top:8px;font-size:.8125rem;color:var(--muted)}

/* founder */
.page-about .founder{display:grid;grid-template-columns:280px minmax(0,1fr);gap:clamp(28px,5vw,64px);align-items:start}
.page-about .founder__photo{width:100%;height:auto;aspect-ratio:1;object-fit:cover;border-radius:var(--r-lg);filter:grayscale(.15)}
.page-about .founder__text h2{margin:6px 0 14px}
.page-about .founder__quote{margin:22px 0;padding-left:16px;border-left:3px solid var(--bar);font-size:1.25rem;font-weight:500;color:var(--ink);letter-spacing:-.01em}
.page-about .founder__quote cite{display:block;margin-top:6px;font-size:.875rem;font-style:normal;font-weight:400;color:var(--muted)}
.page-about .founder__quote--center{max-width:520px;margin:48px auto 0;padding:0;border:0;text-align:center;font-size:1.5rem}
.page-about .founder__work{list-style:none;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 24px;border-top:1px solid var(--line);margin-bottom:20px}
.page-about .founder__work li{border-bottom:1px solid var(--line)}
.page-about .founder__work a{display:block;padding:12px 0;text-decoration:none;color:inherit}
.page-about .founder__work b{display:block;font-weight:500;color:var(--ink)}
.page-about .founder__work span{font-size:.875rem;color:var(--muted)}
.page-about .founder__work a:hover b{text-decoration:underline;text-underline-offset:3px}
.page-about .ship{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.page-about .ship article{border-top:1px solid var(--line-strong);padding-top:18px}
.page-about .ship h3{margin-bottom:6px}
.page-about .ship p{color:var(--muted);margin:0}
@media (max-width:760px){.page-about .founder{grid-template-columns:minmax(0,1fr)}.page-about .founder__photo{max-width:220px}.page-about .founder__work,.page-about .ship{grid-template-columns:minmax(0,1fr)}}

/* campus photo as a film shot: widescreen frame, slow camera move, vignette, title overlay */
.page-about .cine{position:relative;max-width:820px;margin:0 auto 36px;color:#fff}
.page-about .cine__frame{position:relative;aspect-ratio:2.39/1;overflow:hidden;border-radius:var(--r-lg);background:#030a1c}
.page-about .cine__frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:60% 30%;animation:cineMove 18s ease-in-out infinite alternate;will-change:transform}
.page-about .cine__frame::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at 50% 45%,transparent 45%,rgba(6,12,24,.55) 100%),linear-gradient(180deg,transparent 55%,rgba(6,12,24,.6) 100%)}
@keyframes cineMove{from{transform:scale(1.14) translate(-2%,2%)}to{transform:scale(1.02) translate(2%,-1%)}}
.page-about .cine figcaption{position:absolute;left:22px;bottom:16px;z-index:1;font-size:1rem;font-weight:500;letter-spacing:.01em;color:#fff;margin:0}
.page-about .cine figcaption span{display:block;font-size:.6875rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.7);margin-bottom:2px}
@media (max-width:640px){.page-about .cine__frame{aspect-ratio:16/9}.page-about .cine figcaption{left:14px;bottom:10px;font-size:.875rem}}
@media (prefers-reduced-motion:reduce){.page-about .cine__frame img{animation:none;transform:none}}
/* plain photo: no camera move, no vignette, caption below */
.page-about .cine{color:inherit;max-width:720px}
.page-about .cine__frame{aspect-ratio:16/9}
.page-about .cine__frame img{animation:none!important;transform:none!important;object-position:55% 35%}
.page-about .cine__frame::after{display:none}
.page-about .cine figcaption{position:static;margin-top:10px;font-size:.875rem;font-weight:400;color:var(--muted)}
.page-about .cine figcaption span{display:inline;font-size:inherit;letter-spacing:0;text-transform:none;color:inherit;margin:0}
.page-about .cine figcaption span::after{content:" · "}
