/* ============================================================
   Maryland Prestigious — design system (light)
   Bright, structured, legible. Navy carries the type, cyan carries
   the structure, flame carries the emphasis.
   ============================================================ */

:root{
  --paper:#ffffff;
  --mist:#f4f7fe;
  --mist-2:#eaf0fd;
  --line:#e2e8f7;
  --line-strong:#cbd6ef;

  --ink:#101b4c;
  --ink-2:#4d5a85;
  --ink-3:#7b86a8;

  --navy:#1f2a75;
  --navy-deep:#141c5c;
  --cyan:#00aeef;
  --cyan-deep:#0089bd;
  --cyan-soft:#e4f5fe;
  --flame:#f5821f;
  --flame-deep:#d96a0a;
  --flame-soft:#fff2e3;
  --leaf:#16a06a;
  --leaf-soft:#e3f7ef;

  --ff-display:var(--wp--preset--font-family--display,"Bricolage Grotesque",system-ui,sans-serif);
  --ff-body:var(--wp--preset--font-family--body,"Instrument Sans",system-ui,sans-serif);
  --ff-mono:var(--wp--preset--font-family--mono,"DM Mono",ui-monospace,monospace);

  --r-xl:28px;
  --r-lg:20px;
  --r-md:14px;
  --r-sm:10px;

  --sh-sm:0 2px 8px -2px rgba(16,27,76,.10);
  --sh-md:0 14px 34px -22px rgba(16,27,76,.34);
  --sh-lg:0 30px 64px -38px rgba(16,27,76,.40);

  --ease:cubic-bezier(.22,.9,.28,1);
  --shell:1240px;
}

*{box-sizing:border-box}
body{background:var(--paper);color:var(--ink);font-family:var(--ff-body);font-size:17px;line-height:1.68;
  -webkit-font-smoothing:antialiased;overflow-x:hidden}
:focus-visible{outline:3px solid var(--cyan);outline-offset:3px;border-radius:6px}
img{max-width:100%;height:auto}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}

h1,h2,h3,h4{font-family:var(--ff-display);font-weight:800;letter-spacing:-.028em;line-height:1.06;color:var(--ink);margin:0}
h1{font-size:clamp(2.5rem,5.6vw,4.3rem)}
h2{font-size:clamp(1.9rem,3.8vw,3rem)}
h3{font-size:clamp(1.2rem,1.9vw,1.55rem);letter-spacing:-.018em}
h4{font-size:1.08rem;letter-spacing:-.012em}
p{margin:0 0 1rem}
a{color:var(--cyan-deep)}
a:hover{color:var(--flame-deep)}

/* ---------- LAYOUT ---------- */
.md-wrap{max-width:var(--shell);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2.2rem);width:100%}
.md-section{padding-block:clamp(3.6rem,7vw,6.5rem);position:relative}
.md-section.tint{background:var(--mist)}
.md-section.tint-deep{background:linear-gradient(160deg,var(--navy),var(--navy-deep));color:#fff}
.md-section.tint-deep h2,.md-section.tint-deep h3{color:#fff}
.md-section.tint-deep p{color:rgba(255,255,255,.82)}
.wp-block-post-content{max-width:var(--shell);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2.2rem)}
.wp-site-blocks{overflow-x:clip}

.sec-head{max-width:62ch;margin-bottom:clamp(2rem,4vw,3rem)}
.sec-head.center{margin-inline:auto;text-align:center}
.sec-head.center .eyebrow,.sec-head.center .is-style-eyebrow{justify-content:center}

.eyebrow,.is-style-eyebrow{font-family:var(--ff-mono)!important;font-size:.7rem!important;letter-spacing:.2em;
  text-transform:uppercase;color:var(--cyan-deep)!important;display:flex;align-items:center;gap:.65rem;
  margin:0 0 .9rem;font-weight:500}
.eyebrow::before,.is-style-eyebrow::before{content:"";width:22px;height:2px;border-radius:2px;background:var(--flame);flex:none}
.tint-deep .eyebrow,.tint-deep .is-style-eyebrow{color:#8fdcff!important}

.lede,.is-style-lede{font-size:1.1rem!important;color:var(--ink-2)!important;max-width:60ch}
.tint-deep .lede,.tint-deep .is-style-lede{color:rgba(255,255,255,.8)!important}

/* ---------- BRAND ---------- */
.brand-link{display:inline-flex;align-items:center;text-decoration:none}
.brand-logo{display:block;height:52px;width:auto}
.brand-crest{display:block}
@media(max-width:640px){.brand-logo{height:38px}}

/* ---------- TOP BAR ---------- */
.md-topbar{background:linear-gradient(90deg,var(--navy),var(--navy-deep));color:rgba(255,255,255,.82);font-size:.8rem}
.md-topbar .inner{display:flex;flex-wrap:wrap;gap:1.3rem;align-items:center;min-height:40px;
  max-width:var(--shell);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2.2rem)}
.md-topbar a{color:inherit;text-decoration:none}
.md-topbar a:hover{color:#8fdcff}
.md-topbar .sp{margin-left:auto;display:flex;gap:1.1rem;align-items:center}
.md-topbar .pill{border:1px solid rgba(143,220,255,.45);border-radius:999px;padding:.16rem .8rem;color:#8fdcff}
.md-topbar .pill:hover{background:var(--flame);border-color:var(--flame);color:#fff}
@media(max-width:900px){.md-topbar{display:none}}

/* ---------- HEADER ---------- */
.md-header{position:sticky;top:0;z-index:80;background:rgba(255,255,255,.94);
  backdrop-filter:blur(14px) saturate(160%);border-bottom:1px solid var(--line);transition:box-shadow .35s var(--ease)}
.admin-bar .md-header{top:32px}
@media(max-width:782px){.admin-bar .md-header{top:46px}}
.md-header.stuck{box-shadow:0 10px 30px -22px rgba(16,27,76,.42)}
.md-header .inner{display:flex;align-items:center;gap:1.2rem;min-height:78px;
  max-width:var(--shell);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2.2rem)}

.md-header .wp-block-navigation{margin-left:auto;font-size:.9rem}
.md-header .wp-block-navigation .wp-block-navigation-item__content{padding:.55rem .68rem;border-radius:9px;
  color:var(--ink);text-decoration:none;font-weight:500;transition:color .2s,background .2s}
.md-header .wp-block-navigation .wp-block-navigation-item__content:hover{color:var(--navy);background:var(--cyan-soft)}
.md-header .wp-block-navigation .wp-block-navigation__submenu-container{background:#fff;border:1px solid var(--line);
  border-radius:var(--r-md);padding:.55rem;min-width:266px;box-shadow:var(--sh-lg)}
.md-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-size:.86rem;
  color:var(--ink-2);border-radius:8px;border-left:2px solid transparent;font-weight:400}
.md-header .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover{
  background:var(--cyan-soft);color:var(--navy);border-left-color:var(--flame);padding-left:.85rem}
.md-header .wp-block-navigation__responsive-container.is-menu-open{background:#fff;padding-top:5rem}
.md-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{color:var(--ink)}
.md-header .wp-block-navigation__responsive-container-open,
.md-header .wp-block-navigation__responsive-container-close{color:var(--navy)}

.head-cta{margin-left:.4rem;padding:.66rem 1.15rem;border-radius:999px;font-size:.85rem;font-weight:600;
  background:var(--flame);color:#fff;text-decoration:none;white-space:nowrap;
  box-shadow:0 12px 26px -14px var(--flame);transition:.25s var(--ease)}
.head-cta:hover{background:var(--navy);color:#fff;transform:translateY(-2px)}
@media(max-width:1180px){.head-cta{display:none}}

/* ---------- BUTTONS ---------- */
.btn{display:inline-flex;align-items:center;gap:.55rem;padding:.92rem 1.6rem;border-radius:999px;font-weight:600;
  font-size:.96rem;text-decoration:none;border:1px solid transparent;cursor:pointer;font-family:inherit;
  transition:.28s var(--ease)}
.btn-primary{background:var(--flame);color:#fff;box-shadow:0 14px 30px -16px var(--flame)}
.btn-primary:hover{background:var(--flame-deep);color:#fff;transform:translateY(-2px)}
.btn-navy{background:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-deep);color:#fff;transform:translateY(-2px)}
.btn-ghost{border-color:var(--line-strong);color:var(--navy);background:#fff}
.btn-ghost:hover{border-color:var(--cyan);background:var(--cyan-soft);color:var(--navy);transform:translateY(-2px)}
.btn-block{width:100%;justify-content:center}
.btn .arw{transition:transform .28s var(--ease);display:inline-block}
.btn:hover .arw{transform:translateX(4px)}

.wp-block-button__link{border-radius:999px;font-weight:600;padding:.92rem 1.6rem;transition:.28s var(--ease)}
.wp-block-button__link:hover{transform:translateY(-2px)}
.wp-block-button.is-style-outline .wp-block-button__link{background:#fff;color:var(--navy);
  border:1px solid var(--line-strong);box-shadow:none}
.wp-block-button.is-style-outline .wp-block-button__link:hover{border-color:var(--cyan);background:var(--cyan-soft)}
.tint-deep .wp-block-button.is-style-outline .wp-block-button__link{background:transparent;color:#fff;
  border-color:rgba(255,255,255,.5)}
.tint-deep .wp-block-button.is-style-outline .wp-block-button__link:hover{background:rgba(255,255,255,.12)}

/* ---------- REVEAL ---------- */
.rv{opacity:0;transform:translateY(20px);transition:opacity .7s var(--ease),transform .7s var(--ease)}
.rv.in{opacity:1;transform:none}

/* ---------- HERO ---------- */
.md-hero{position:relative;overflow:hidden;background:var(--paper);
  padding-block:clamp(2.6rem,5.5vw,5rem) clamp(3rem,6vw,5.5rem)}
.md-hero .hero-wash{position:absolute;inset:0;pointer-events:none;z-index:0;background:
  radial-gradient(760px 520px at 88% 6%,rgba(0,174,239,.20),transparent 62%),
  radial-gradient(520px 420px at 4% 88%,rgba(245,130,31,.14),transparent 62%),
  radial-gradient(900px 500px at 50% -20%,rgba(31,42,117,.08),transparent 68%)}
.md-hero .hero-rule{position:absolute;inset:0;pointer-events:none;z-index:0;opacity:.55;
  background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);
  background-size:72px 72px;
  -webkit-mask-image:radial-gradient(circle at 60% 30%,#000 5%,transparent 68%);
  mask-image:radial-gradient(circle at 60% 30%,#000 5%,transparent 68%)}
.md-hero>*{position:relative;z-index:1}

.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(2rem,4.5vw,4rem);align-items:center}
@media(max-width:980px){.hero-grid{grid-template-columns:1fr;gap:2.6rem}}

.hero-badges{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.4rem}
.chip{display:inline-flex;align-items:center;gap:.4rem;padding:.34rem .8rem;border-radius:999px;
  font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;
  background:var(--cyan-soft);color:var(--cyan-deep);border:1px solid rgba(0,174,239,.24)}
.chip.flame{background:var(--flame-soft);color:var(--flame-deep);border-color:rgba(245,130,31,.26)}
.chip.leaf{background:var(--leaf-soft);color:#0f7a50;border-color:rgba(22,160,106,.24)}

.md-hero h1 .accent{color:var(--flame);white-space:nowrap}
.hero-sub{font-size:1.14rem;color:var(--ink-2);max-width:52ch;margin-top:1.3rem}
.btnrow{display:flex;flex-wrap:wrap;gap:.8rem;margin-top:2rem}

.pillar-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:.9rem;margin-top:2.6rem;padding-top:2rem;
  border-top:1px solid var(--line)}
@media(max-width:560px){.pillar-strip{grid-template-columns:1fr}}
.pillar-strip .p{padding-left:.85rem;border-left:3px solid var(--cyan)}
.pillar-strip .p:nth-child(2){border-left-color:var(--flame)}
.pillar-strip .p:nth-child(3){border-left-color:var(--navy)}
.pillar-strip .p b{display:block;font-family:var(--ff-display);font-size:.95rem;font-weight:800;color:var(--navy);letter-spacing:-.01em}
.pillar-strip .p span{font-size:.84rem;color:var(--ink-3);line-height:1.45;display:block;margin-top:.15rem}

.hero-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);
  padding:clamp(1.6rem,3vw,2.4rem);box-shadow:var(--sh-lg)}
.hero-card .crest-wrap{display:flex;justify-content:center;margin-bottom:1.3rem}
.hero-card .brand-crest{width:104px;filter:drop-shadow(0 12px 24px rgba(16,27,76,.18))}
.hero-card h3{text-align:center;margin-bottom:.4rem}
.hero-card .motto{text-align:center;font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--flame);margin-bottom:1.5rem}
.stat-row{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem}
.stat-row .s{background:var(--mist);border:1px solid var(--line);border-radius:var(--r-md);padding:.9rem 1rem}
.stat-row .s b{display:block;font-family:var(--ff-display);font-size:1.6rem;font-weight:800;color:var(--navy);line-height:1}
.stat-row .s span{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}

/* ---------- TICKER ---------- */
.md-ticker{background:var(--navy);color:#fff;padding:.85rem 0;overflow:hidden;display:flex}
.md-ticker .track{display:flex;gap:2.4rem;padding-right:2.4rem;flex:none;white-space:nowrap;
  animation:md-slide 38s linear infinite}
.md-ticker span{font-family:var(--ff-mono);font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.86);display:flex;align-items:center;gap:2.4rem}
.md-ticker span::after{content:"\25C6";color:var(--flame);font-size:.55rem}
@keyframes md-slide{to{transform:translateX(-100%)}}

/* ---------- CARDS ---------- */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:1.2rem}
.card-grid.two{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.card-grid.four{grid-template-columns:repeat(auto-fit,minmax(228px,1fr))}

.md-card,.is-style-glass-card{position:relative;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);
  padding:1.7rem 1.5rem;box-shadow:var(--sh-sm);
  transition:transform .38s var(--ease),box-shadow .38s var(--ease),border-color .38s}
.md-card:hover,.is-style-glass-card:hover{transform:translateY(-5px);box-shadow:var(--sh-md);border-color:var(--line-strong)}
.md-card p{color:var(--ink-2);font-size:.95rem;margin:.55rem 0 0}
.md-card h3{margin-top:.2rem}
.md-card .ic{width:48px;height:48px;border-radius:13px;display:grid;place-items:center;margin-bottom:1.1rem;
  background:var(--cyan-soft);border:1px solid rgba(0,174,239,.2)}
.md-card .ic svg{width:23px;height:23px;stroke:var(--cyan-deep);fill:none;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.md-card.flame .ic{background:var(--flame-soft);border-color:rgba(245,130,31,.22)}
.md-card.flame .ic svg{stroke:var(--flame-deep)}
.md-card.navy .ic{background:#e9ecfb;border-color:rgba(31,42,117,.18)}
.md-card.navy .ic svg{stroke:var(--navy)}
.md-card .tag{display:inline-block;font-family:var(--ff-mono);font-size:.63rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--flame-deep);margin-bottom:.5rem}

.is-style-lit-panel{background:linear-gradient(150deg,var(--navy),var(--navy-deep));color:#fff;
  border-radius:var(--r-xl);padding:clamp(1.8rem,3.5vw,2.8rem)}
.is-style-lit-panel h2,.is-style-lit-panel h3{color:#fff}
.is-style-lit-panel p{color:rgba(255,255,255,.82)}

/* ---------- SIGNATURE: TORCH PATH ---------- */
.md-journey{background:var(--mist)}
.track-wrap{margin-top:3rem;position:relative}
.track-wrap .rail{position:absolute;left:0;right:0;top:70px;height:4px;border-radius:99px;background:var(--line-strong)}
.track-wrap .rail-lit{position:absolute;left:0;top:0;bottom:0;width:var(--p,0%);border-radius:99px;
  background:linear-gradient(90deg,var(--cyan),var(--flame))}
.track-wrap .rail-flame{position:absolute;top:50%;left:var(--p,0%);translate:-50% -50%;width:40px;height:40px;
  display:grid;place-items:center;border-radius:50%;background:#fff;box-shadow:0 0 0 4px var(--flame-soft),var(--sh-md)}
.track-wrap .rail-flame svg{width:17px;height:23px;animation:md-flick .95s ease-in-out infinite alternate}
@keyframes md-flick{from{transform:scale(1) rotate(-2deg)}to{transform:scale(1.12) rotate(2deg)}}

.stages{display:grid;grid-template-columns:repeat(5,1fr);gap:1rem}
.stage{padding-top:122px;position:relative}
.stage .dot{position:absolute;top:60px;left:0;width:24px;height:24px;border-radius:50%;background:#fff;
  border:4px solid var(--line-strong);transition:.42s var(--ease)}
.stage.lit .dot{border-color:var(--flame);background:var(--flame);box-shadow:0 0 0 7px var(--flame-soft)}
.stage .age{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.15em;color:var(--cyan-deep);text-transform:uppercase}
.stage h3{margin:.45rem 0 .5rem;font-size:1.2rem;color:var(--ink-3);transition:color .42s}
.stage.lit h3{color:var(--ink)}
.stage p{font-size:.9rem;color:var(--ink-2);margin:0}
@media(max-width:920px){
  .stages{grid-template-columns:1fr;gap:0}
  .track-wrap .rail{left:11px;right:auto;top:0;bottom:0;width:4px;height:auto}
  .track-wrap .rail-lit{width:4px;height:var(--p,0%);top:0;bottom:auto;left:0}
  .track-wrap .rail-flame{left:50%;top:var(--p,0%)}
  .stage{padding:1.4rem 0 1.4rem 3.1rem}
  .stage .dot{top:1.5rem;left:1px}
}

/* ---------- SPLIT + LISTS ---------- */
.md-split{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4.5vw,3.6rem);align-items:center}
.md-split.wide-left{grid-template-columns:1.15fr .85fr}
@media(max-width:920px){.md-split,.md-split.wide-left{grid-template-columns:1fr}}

.ulist{list-style:none;padding:0;margin:1.6rem 0 0}
.ulist li{display:flex;gap:.85rem;padding:.8rem 0;border-bottom:1px solid var(--line);font-size:.96rem;
  color:var(--ink-2);align-items:flex-start}
.ulist li:last-child{border-bottom:0}
.ulist li b{font-family:var(--ff-mono);font-size:.7rem;color:var(--flame-deep);letter-spacing:.08em;padding-top:.3rem;flex:none}
.ulist li strong{color:var(--ink);font-weight:600}

.checklist{list-style:none;padding:0;margin:1.2rem 0 0}
.checklist li{position:relative;padding:.42rem 0 .42rem 1.8rem;color:var(--ink-2);font-size:.96rem}
.checklist li::before{content:"";position:absolute;left:0;top:.92rem;width:9px;height:9px;border-radius:50%;
  background:var(--cyan);box-shadow:0 0 0 4px var(--cyan-soft)}
.tint-deep .checklist li{color:rgba(255,255,255,.84)}
.tint-deep .checklist li::before{background:var(--flame);box-shadow:0 0 0 4px rgba(245,130,31,.2)}

.mosaic{display:grid;grid-template-columns:1fr 1fr;grid-auto-rows:128px;gap:.8rem}
.mosaic .tile{border-radius:var(--r-md);position:relative;overflow:hidden;display:flex;align-items:flex-end;
  padding:.9rem;font-family:var(--ff-mono);font-size:.67rem;letter-spacing:.13em;text-transform:uppercase;
  color:#fff;transition:.45s var(--ease);background-size:cover;background-position:center}
.mosaic .tile:nth-child(1){grid-row:span 2;background-image:linear-gradient(150deg,#1f2a75,#00aeef)}
.mosaic .tile:nth-child(2){background-image:linear-gradient(150deg,#0089bd,#00aeef)}
.mosaic .tile:nth-child(3){background-image:linear-gradient(150deg,#f5821f,#ffb547)}
.mosaic .tile:nth-child(4){grid-column:span 2;background-image:linear-gradient(110deg,#1f2a75,#0089bd 60%,#f5821f)}
.mosaic .tile:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.mosaic .tile::before{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(16,27,76,.55))}
.mosaic .tile span{position:relative}

/* ---------- STATS ---------- */
.md-stats{background:linear-gradient(130deg,var(--navy),var(--navy-deep));color:#fff}
.stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(168px,1fr));gap:1.6rem;text-align:center}
.stat b{display:block;font-family:var(--ff-display);font-size:clamp(2.3rem,4.4vw,3.4rem);font-weight:800;
  letter-spacing:-.04em;line-height:1;color:#fff}
.stat b .suf{color:var(--flame)}
.stat span{font-family:var(--ff-mono);font-size:.67rem;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.66)}

/* ---------- TIMELINE ---------- */
.timeline{position:relative;margin-top:2.4rem;padding-left:2.2rem}
.timeline::before{content:"";position:absolute;left:7px;top:.6rem;bottom:.6rem;width:2px;background:var(--line-strong)}
.tl-item{position:relative;padding-bottom:2rem}
.tl-item::before{content:"";position:absolute;left:-2.2rem;top:.45rem;width:16px;height:16px;border-radius:50%;
  background:#fff;border:4px solid var(--cyan)}
.tl-item:nth-child(even)::before{border-color:var(--flame)}
.tl-item .yr{font-family:var(--ff-mono);font-size:.71rem;letter-spacing:.14em;color:var(--flame-deep);text-transform:uppercase}
.tl-item h3{margin:.3rem 0 .45rem}
.tl-item p{color:var(--ink-2);font-size:.96rem;margin:0}

/* ---------- PEOPLE ---------- */
.people-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(258px,1fr));gap:1.2rem}
.person{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.6rem 1.4rem;
  box-shadow:var(--sh-sm);transition:.35s var(--ease)}
.person:hover{transform:translateY(-4px);box-shadow:var(--sh-md)}
.person .av{width:54px;height:54px;border-radius:16px;display:grid;place-items:center;margin-bottom:1rem;
  background:linear-gradient(140deg,var(--navy),var(--cyan));color:#fff;font-family:var(--ff-display);
  font-weight:800;font-size:1.1rem;letter-spacing:-.02em}
.person .role{font-family:var(--ff-mono);font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--cyan-deep);margin-bottom:.35rem}
.person h3{font-size:1.08rem;margin-bottom:.5rem}
.person p{font-size:.92rem;color:var(--ink-2);margin:0}

/* ---------- PROGRAMME CARDS ---------- */
.prog-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(248px,1fr));gap:1.1rem}
.prog{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem 1.4rem;
  text-decoration:none;color:inherit;box-shadow:var(--sh-sm);position:relative;overflow:hidden;transition:.35s var(--ease)}
.prog::after{content:"";position:absolute;left:0;right:0;top:0;height:4px;background:var(--cyan)}
.prog.p2::after{background:var(--flame)}
.prog.p3::after{background:var(--navy)}
.prog.p4::after{background:var(--leaf)}
.prog:hover{transform:translateY(-5px);box-shadow:var(--sh-md);border-color:var(--line-strong);color:inherit}
.prog .age{font-family:var(--ff-mono);font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3)}
.prog h3{margin:.4rem 0 .5rem;font-size:1.16rem}
.prog p{font-size:.9rem;color:var(--ink-2);margin:0 0 .9rem}
.prog .more{font-size:.84rem;font-weight:600;color:var(--cyan-deep);display:inline-flex;align-items:center;gap:.35rem}
.prog:hover .more{color:var(--flame-deep)}

/* ---------- CAMPUS ---------- */
.campus-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.3rem}
@media(max-width:860px){.campus-grid{grid-template-columns:1fr}}
.campus{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;
  box-shadow:var(--sh-sm);transition:.35s var(--ease)}
.campus:hover{transform:translateY(-5px);box-shadow:var(--sh-md)}
.campus .band{height:118px;background:linear-gradient(130deg,var(--navy),var(--cyan));display:flex;
  align-items:flex-end;padding:1.1rem 1.5rem}
.campus.itak .band{background:linear-gradient(130deg,var(--navy),var(--flame))}
.campus .band b{color:#fff;font-family:var(--ff-display);font-size:1.45rem;font-weight:800;letter-spacing:-.025em}
.campus .body{padding:1.5rem}
.campus .meta{font-family:var(--ff-mono);font-size:.67rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--cyan-deep);margin-bottom:.7rem}
.campus .body p{font-size:.94rem;color:var(--ink-2)}
.facility-tags{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:1rem}
.facility-tags span{font-size:.76rem;padding:.28rem .7rem;border-radius:999px;background:var(--mist);
  border:1px solid var(--line);color:var(--ink-2)}

/* ---------- FAQ ---------- */
.faq{border-top:1px solid var(--line);margin-top:1.8rem}
.faq details{border-bottom:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;padding:1.15rem 2.4rem 1.15rem 0;position:relative;
  font-family:var(--ff-display);font-weight:600;font-size:1.04rem;color:var(--ink);letter-spacing:-.012em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"";position:absolute;right:.4rem;top:1.55rem;width:9px;height:9px;
  border-right:2px solid var(--flame);border-bottom:2px solid var(--flame);transform:rotate(45deg);
  transition:transform .3s var(--ease)}
.faq details[open] summary::after{transform:rotate(-135deg)}
.faq details p{color:var(--ink-2);font-size:.96rem;padding-bottom:1.15rem;margin:0;max-width:80ch}
.faq summary:hover{color:var(--cyan-deep)}

/* ---------- STEPS ---------- */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(208px,1fr));gap:1rem;margin-top:2rem}
.step{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.5rem 1.3rem;box-shadow:var(--sh-sm)}
.step .n{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--navy);color:#fff;
  font-family:var(--ff-display);font-weight:800;font-size:.92rem;margin-bottom:.9rem}
.step:nth-child(2) .n{background:var(--cyan-deep)}
.step:nth-child(3) .n{background:var(--flame)}
.step:nth-child(4) .n{background:var(--leaf)}
.step:nth-child(5) .n{background:var(--navy-deep)}
.step h3{font-size:1.04rem;margin-bottom:.4rem}
.step p{font-size:.9rem;color:var(--ink-2);margin:0}

/* ---------- QUOTES ---------- */
.quote-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(288px,1fr));gap:1.2rem}
.md-quote{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);padding:1.8rem 1.6rem;
  position:relative;box-shadow:var(--sh-sm)}
.md-quote::before{content:"\201C";position:absolute;top:.4rem;right:1.2rem;font-family:var(--ff-display);
  font-size:4.6rem;color:var(--cyan-soft);line-height:1}
.md-quote p{font-size:1rem;color:var(--ink);position:relative}
.md-quote .who{display:flex;align-items:center;gap:.75rem;margin-top:1.2rem}
.md-quote .av{width:38px;height:38px;border-radius:50%;flex:none;display:grid;place-items:center;
  background:linear-gradient(140deg,var(--cyan),var(--flame));font-family:var(--ff-display);font-weight:800;
  color:#fff;font-size:.9rem}
.md-quote .who b{display:block;font-size:.9rem;color:var(--ink)}
.md-quote .who small{font-size:.78rem;color:var(--ink-3)}

/* ---------- POSTS ---------- */
.wp-block-post-template{gap:1.2rem!important;list-style:none;padding:0}
.md-posts .wp-block-post{background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--sh-sm);transition:.35s var(--ease)}
.md-posts .wp-block-post:hover{transform:translateY(-5px);box-shadow:var(--sh-md)}
.md-posts .wp-block-post-featured-image{margin:0}
.md-posts .wp-block-post-featured-image img{width:100%;height:170px;object-fit:cover}
.md-posts .wp-block-post-date{padding:1.1rem 1.4rem 0;font-family:var(--ff-mono);font-size:.66rem;
  letter-spacing:.13em;text-transform:uppercase;color:var(--flame-deep)}
.md-posts .wp-block-post-title{font-size:1.08rem;padding:.35rem 1.4rem 0;margin:0}
.md-posts .wp-block-post-title a{color:var(--ink);text-decoration:none}
.md-posts .wp-block-post-title a:hover{color:var(--cyan-deep)}
.md-posts .wp-block-post-excerpt{padding:.5rem 1.4rem 1.4rem;font-size:.9rem;color:var(--ink-2)}

/* ---------- FORMS ---------- */
.md-form-card{display:grid;grid-template-columns:.82fr 1.18fr;border-radius:var(--r-xl);overflow:hidden;
  border:1px solid var(--line);box-shadow:var(--sh-lg);background:#fff}
@media(max-width:880px){.md-form-card{grid-template-columns:1fr}}
.form-aside{padding:clamp(1.8rem,3.5vw,2.8rem);position:relative;overflow:hidden;color:#fff;
  background:linear-gradient(150deg,var(--navy),var(--navy-deep))}
.form-aside::after{content:"";position:absolute;width:260px;height:260px;right:-100px;bottom:-100px;border-radius:50%;
  background:radial-gradient(circle,rgba(245,130,31,.34),transparent 68%)}
.form-aside>*{position:relative}
.form-aside h2,.form-aside h3{color:#fff}
.form-aside p{color:rgba(255,255,255,.82);font-size:.95rem}
.form-aside .brand-crest{width:74px;margin-bottom:1.3rem;background:#fff;border-radius:50%;padding:5px}
.form-aside .contact-line{display:flex;gap:.6rem;align-items:baseline;font-size:.92rem;color:#fff;
  padding:.4rem 0;text-decoration:none}
.form-aside .contact-line b{font-family:var(--ff-mono);font-size:.63rem;letter-spacing:.13em;text-transform:uppercase;
  color:#8fdcff;min-width:72px;flex:none}
.form-aside .contact-line:hover{color:#8fdcff}

.form-body{padding:clamp(1.8rem,3.5vw,2.8rem)}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:560px){.fgrid{grid-template-columns:1fr}}
.field.full{grid-column:1/-1}
.field label{display:block;font-family:var(--ff-mono);font-size:.65rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:.4rem;font-weight:500}
.field input,.field select,.field textarea{width:100%;padding:.82rem .95rem;border-radius:var(--r-sm);
  background:var(--mist);border:1px solid var(--line);color:var(--ink);font:inherit;font-size:.94rem;transition:.22s}
.field textarea{min-height:110px;resize:vertical}
.field select{appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--ink-3) 50%),linear-gradient(135deg,var(--ink-3) 50%,transparent 50%);
  background-position:calc(100% - 19px) 50%,calc(100% - 13px) 50%;background-size:6px 6px;background-repeat:no-repeat}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--cyan);background:#fff;outline:none;
  box-shadow:0 0 0 4px var(--cyan-soft)}
.field input::placeholder,.field textarea::placeholder{color:var(--ink-3)}
.field .is-empty{border-color:var(--flame);background:var(--flame-soft)}
.consent{display:flex;gap:.65rem;align-items:flex-start;font-size:.86rem;color:var(--ink-2);margin:1.2rem 0 1.3rem}
.consent input{width:18px;height:18px;flex:none;margin-top:.18rem;accent-color:var(--flame)}
.md-hp{position:absolute!important;left:-9999px;height:0;overflow:hidden}
.notice-msg{padding:.95rem 1.15rem;border-radius:var(--r-sm);font-size:.93rem;margin-bottom:1.3rem}
.notice-msg.is-good{background:var(--leaf-soft);border:1px solid rgba(22,160,106,.35);color:#0c6a45}
.notice-msg.is-bad{background:var(--flame-soft);border:1px solid rgba(245,130,31,.4);color:var(--flame-deep)}

.form-index{display:grid;grid-template-columns:repeat(auto-fit,minmax(228px,1fr));gap:.9rem}
.form-index a{display:flex;align-items:center;gap:.7rem;padding:.95rem 1.1rem;background:#fff;
  border:1px solid var(--line);border-radius:var(--r-md);text-decoration:none;color:var(--ink);font-size:.93rem;
  font-weight:500;box-shadow:var(--sh-sm);transition:.3s var(--ease)}
.form-index a:hover{border-color:var(--cyan);background:var(--cyan-soft);transform:translateY(-3px);color:var(--navy)}
.form-index a::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--flame);flex:none}

/* ---------- FOOTER ---------- */
.md-footer{background:var(--navy-deep);color:rgba(255,255,255,.72);padding:4rem 0 1.8rem;font-size:.93rem}
.md-footer .inner{max-width:var(--shell);margin-inline:auto;padding-inline:clamp(1.1rem,4vw,2.2rem)}
.f-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:2.2rem}
@media(max-width:900px){.f-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.f-grid{grid-template-columns:1fr}}
.md-footer h4{font-family:var(--ff-mono);font-size:.65rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--flame);margin:0 0 1rem;font-weight:500}
.md-footer a{display:block;padding:.3rem 0;color:rgba(255,255,255,.72);text-decoration:none;font-size:.9rem}
.md-footer a:hover{color:#8fdcff}
.md-footer .brand-logo{height:44px;background:#fff;border-radius:10px;padding:6px 10px}
.f-about p{margin-top:1.1rem;color:rgba(255,255,255,.66);max-width:34ch;font-size:.9rem}
.f-campus{margin-top:1.2rem;font-size:.85rem;color:rgba(255,255,255,.6);line-height:1.6}
.f-campus b{color:#8fdcff;font-family:var(--ff-mono);font-size:.63rem;letter-spacing:.12em;text-transform:uppercase;display:block}
.socials{display:flex;gap:.55rem;margin-top:1.2rem}
.socials a{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;padding:0;
  border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.06);color:#fff;transition:.3s}
.socials a:hover{background:var(--flame);border-color:var(--flame);transform:translateY(-3px)}
.socials svg{width:16px;height:16px;fill:currentColor}
.f-base{margin-top:2.6rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.14);display:flex;
  flex-wrap:wrap;gap:.9rem;justify-content:space-between;font-size:.8rem;color:rgba(255,255,255,.5)}

/* ---------- PAGE BANNER ---------- */
.page-banner{position:relative;overflow:hidden;padding-block:clamp(2.6rem,5.5vw,4.4rem);
  background:linear-gradient(160deg,var(--mist),#fff);border-bottom:1px solid var(--line)}
.page-banner::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(620px 340px at 82% 10%,rgba(0,174,239,.16),transparent 62%),
             radial-gradient(400px 280px at 6% 92%,rgba(245,130,31,.11),transparent 60%)}
.page-banner>*{position:relative}
.page-banner .wp-block-post-title{margin:0;max-width:22ch}
.breadcrumbs{font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;
  color:var(--ink-3);margin-top:.9rem}
.breadcrumbs a{color:var(--cyan-deep);text-decoration:none}
.breadcrumbs a:hover{color:var(--flame-deep)}

/* ---------- EDITORIAL ---------- */
.entry-content{max-width:78ch}
.entry-content>*{margin-block:1rem}
.entry-content h2{margin-top:2.8rem;margin-bottom:.9rem}
.entry-content h3{margin-top:2rem;margin-bottom:.7rem}
.entry-content p{color:var(--ink-2)}
.entry-content ul,.entry-content ol{padding-left:1.3rem;color:var(--ink-2)}
.entry-content li{margin-bottom:.45rem}
.entry-content blockquote{border-left:3px solid var(--flame);padding:.2rem 0 .2rem 1.3rem;margin-left:0;
  font-family:var(--ff-display);font-size:1.14rem;font-weight:600;color:var(--navy);letter-spacing:-.015em}
.entry-content blockquote p{color:inherit}
.wp-block-separator{border:0;border-top:1px solid var(--line);opacity:1;margin-block:2.4rem}
.wp-block-table table{border-collapse:collapse;width:100%;font-size:.94rem}
.wp-block-table th{background:var(--navy);color:#fff;text-align:left;padding:.8rem 1rem;font-weight:600}
.wp-block-table td{padding:.75rem 1rem;border-bottom:1px solid var(--line);color:var(--ink-2)}
.wp-block-table tr:nth-child(even) td{background:var(--mist)}

/* ---------- MOTION ---------- */
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
  html{scroll-behavior:auto}
  .rv{opacity:1;transform:none}
}

/* ============================================================
   LAYER 2 — futuristic surface treatment
   Depth, motion and imagery on top of the light system above.
   ============================================================ */

:root{
  --ph:/wp-content/themes/maryland-prestigious/assets/images/ph;
  --glass:rgba(255,255,255,.72);
  --glass-line:rgba(255,255,255,.85);
  --glow-cyan:0 0 0 1px rgba(0,174,239,.22),0 22px 60px -28px rgba(0,174,239,.55);
  --glow-flame:0 0 0 1px rgba(245,130,31,.22),0 22px 60px -28px rgba(245,130,31,.5);
  --r-2xl:34px;
}

/* ---------- AMBIENT FIELD ---------- */
.aurora{position:relative;isolation:isolate;overflow:hidden}
.aurora::before{
  content:"";position:absolute;inset:-25% -10%;z-index:-2;pointer-events:none;
  background:
    radial-gradient(46% 42% at 18% 22%,rgba(0,174,239,.30),transparent 62%),
    radial-gradient(40% 38% at 82% 14%,rgba(31,42,117,.24),transparent 64%),
    radial-gradient(44% 40% at 68% 82%,rgba(245,130,31,.22),transparent 64%),
    radial-gradient(38% 36% at 12% 78%,rgba(22,160,106,.16),transparent 62%);
  filter:blur(26px);
  animation:md-drift 26s ease-in-out infinite alternate;
}
.aurora::after{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:linear-gradient(rgba(31,42,117,.055) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(31,42,117,.055) 1px,transparent 1px);
  background-size:64px 64px;
  -webkit-mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 20%,transparent 78%);
  mask-image:radial-gradient(ellipse 80% 70% at 50% 40%,#000 20%,transparent 78%);
}
@keyframes md-drift{
  0%{transform:translate3d(0,0,0) scale(1)}
  50%{transform:translate3d(-2.5%,2%,0) scale(1.07)}
  100%{transform:translate3d(2%,-2.5%,0) scale(1.03)}
}

/* thin luminous rule between sections */
.md-section + .md-section::before{
  content:"";position:absolute;top:0;left:50%;translate:-50% 0;width:min(1240px,92vw);height:1px;
  background:linear-gradient(90deg,transparent,rgba(0,174,239,.35),rgba(245,130,31,.3),transparent);
}
.md-section.tint::before,.md-section.md-stats::before,.md-section.tint-deep::before{display:none}

/* ---------- IMAGE PLACEHOLDERS ---------- */
.ph{position:relative;display:block;width:100%;border-radius:var(--r-lg);overflow:hidden;
  background:var(--navy) center/cover no-repeat;box-shadow:var(--sh-md);aspect-ratio:3/2}
.ph.tall{aspect-ratio:3/4}
.ph.wide{aspect-ratio:16/9}
.ph.square{aspect-ratio:1}
.ph img{width:100%;height:100%;object-fit:cover;display:block}
.ph::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(190deg,rgba(255,255,255,.16),transparent 42%);}
.ph-cap{position:absolute;left:14px;bottom:14px;z-index:2;display:inline-flex;align-items:center;gap:.45rem;
  padding:.34rem .8rem;border-radius:999px;background:rgba(13,20,69,.55);backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.24);color:#fff;font-family:var(--ff-mono);font-size:.64rem;
  letter-spacing:.14em;text-transform:uppercase}
.ph-cap::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--flame-soft);
  box-shadow:0 0 0 3px rgba(245,130,31,.35)}

/* ---------- GLASS + GRADIENT BORDER CARDS ---------- */
.md-card,.is-style-glass-card,.person,.step,.md-quote,.prog,.campus{
  position:relative;background:var(--glass);backdrop-filter:blur(14px) saturate(150%);
  border-color:rgba(255,255,255,.9);
  box-shadow:0 1px 0 rgba(255,255,255,.9) inset,0 10px 30px -22px rgba(16,27,76,.45);
}
.md-card::before,.prog::before,.person::before,.campus::before{
  content:"";position:absolute;inset:0;border-radius:inherit;padding:1px;pointer-events:none;
  background:linear-gradient(150deg,rgba(0,174,239,.55),rgba(255,255,255,0) 38%,rgba(245,130,31,.45));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;mask-composite:exclude;opacity:.55;transition:opacity .4s var(--ease)}
.md-card:hover::before,.prog:hover::before,.person:hover::before,.campus:hover::before{opacity:1}
.md-card:hover,.person:hover,.prog:hover,.campus:hover{
  transform:translateY(-6px);box-shadow:var(--glow-cyan)}
.md-card.flame:hover{box-shadow:var(--glow-flame)}

/* pointer spotlight */
.md-card::after,.prog::after{pointer-events:none}
.md-card::after{content:"";position:absolute;inset:0;border-radius:inherit;opacity:0;transition:opacity .4s;
  background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(0,174,239,.13),transparent 62%)}
.md-card:hover::after{opacity:1}

/* icon tiles get depth */
.md-card .ic{box-shadow:0 8px 20px -12px rgba(0,174,239,.75);position:relative;overflow:hidden}
.md-card .ic::after{content:"";position:absolute;inset:0;
  background:linear-gradient(150deg,rgba(255,255,255,.7),transparent 60%)}
.md-card.flame .ic{box-shadow:0 8px 20px -12px rgba(245,130,31,.8)}

/* ---------- GRADIENT TYPE ---------- */
.grad-text{
  background:linear-gradient(100deg,var(--navy) 8%,var(--cyan-deep) 42%,var(--flame) 88%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
  background-size:220% auto;animation:md-sheen 9s linear infinite}
@keyframes md-sheen{to{background-position:220% center}}

/* ---------- BUTTONS ---------- */
.btn{position:relative;overflow:hidden;isolation:isolate}
.btn::after{content:"";position:absolute;inset:0;z-index:-1;transform:translateX(-110%);
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.42),transparent);transition:transform .65s var(--ease)}
.btn:hover::after{transform:translateX(110%)}
.btn-primary{background:linear-gradient(120deg,var(--flame),#ff9d47);
  box-shadow:0 14px 34px -14px rgba(245,130,31,.85),0 0 0 1px rgba(245,130,31,.3)}
.btn-navy{background:linear-gradient(120deg,var(--navy),var(--cyan-deep));
  box-shadow:0 14px 34px -14px rgba(31,42,117,.8)}
.btn-ghost{background:rgba(255,255,255,.86);backdrop-filter:blur(10px);border-color:rgba(0,174,239,.34)}
.btn-ghost:hover{border-color:var(--cyan);box-shadow:var(--glow-cyan)}

/* ---------- HERO ---------- */
.md-hero{padding-block:clamp(3rem,6vw,5.5rem) clamp(3.4rem,7vw,6.5rem)}
.md-hero h1{letter-spacing:-.035em}
.md-hero .accent{position:relative;display:inline-block}
.md-hero .accent::after{content:"";position:absolute;left:0;right:0;bottom:.06em;height:.14em;border-radius:99px;
  background:linear-gradient(90deg,var(--flame),var(--cyan));opacity:.32}
.chip{backdrop-filter:blur(10px);background:rgba(228,245,254,.8);box-shadow:0 4px 14px -8px rgba(0,174,239,.7)}
.chip.flame{background:rgba(255,242,227,.85);box-shadow:0 4px 14px -8px rgba(245,130,31,.7)}
.chip.leaf{background:rgba(227,247,239,.85)}

/* hero image collage replaces the flat card */
.hero-collage{position:relative;display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:auto auto;
  gap:.9rem;align-items:stretch}
.hero-collage .a{grid-row:span 2}
.hero-collage .ph{height:100%;aspect-ratio:auto;min-height:150px}
.hero-collage .a .ph{min-height:340px}
@media(max-width:980px){.hero-collage .a .ph{min-height:250px}}
.hero-float{position:absolute;left:-14px;bottom:-18px;z-index:3;display:flex;align-items:center;gap:.8rem;
  padding:.8rem 1.1rem;border-radius:18px;background:rgba(255,255,255,.86);backdrop-filter:blur(16px);
  border:1px solid rgba(255,255,255,.95);box-shadow:var(--sh-lg)}
.hero-float img{width:44px;height:auto}
.hero-float b{display:block;font-family:var(--ff-display);font-size:.94rem;color:var(--navy);line-height:1.1}
.hero-float span{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;color:var(--flame)}
@media(max-width:560px){.hero-float{position:static;margin-top:.9rem}}

.hero-card{background:var(--glass);backdrop-filter:blur(18px) saturate(160%);
  border-color:rgba(255,255,255,.95);box-shadow:0 1px 0 rgba(255,255,255,.9) inset,var(--sh-lg)}
.stat-row .s{background:rgba(244,247,254,.75);position:relative;overflow:hidden}
.stat-row .s::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;
  background:linear-gradient(var(--cyan),var(--flame))}

/* ---------- BENTO ---------- */
.bento{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}
.bento>*{min-width:0}
.bento .b-2{grid-column:span 2}
.bento .b-3{grid-column:span 3}
.bento .b-4{grid-column:span 4}
.bento .b-tall{grid-row:span 2}
@media(max-width:900px){.bento{grid-template-columns:repeat(2,1fr)}.bento .b-3,.bento .b-4{grid-column:span 2}}
@media(max-width:560px){.bento{grid-template-columns:1fr}.bento .b-2,.bento .b-3,.bento .b-4{grid-column:span 1}}

.feature{position:relative;border-radius:var(--r-xl);overflow:hidden;min-height:230px;display:flex;
  align-items:flex-end;padding:1.5rem;color:#fff;text-decoration:none;background:var(--navy);
  transition:transform .45s var(--ease),box-shadow .45s var(--ease)}
.feature .bg{position:absolute;inset:0;background-size:cover;background-position:center;
  transition:transform .8s var(--ease)}
.feature::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(13,20,69,.05) 30%,rgba(13,20,69,.86))}
.feature:hover{transform:translateY(-6px);box-shadow:var(--glow-cyan);color:#fff}
.feature:hover .bg{transform:scale(1.07)}
.feature .txt{position:relative;z-index:2}
.feature h3{color:#fff;margin-bottom:.3rem}
.feature p{color:rgba(255,255,255,.84);font-size:.9rem;margin:0}
.feature .kicker{font-family:var(--ff-mono);font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--flame-soft);display:block;margin-bottom:.5rem}

/* ---------- TORCH PATH ---------- */
.md-journey{background:linear-gradient(180deg,#fff,var(--mist) 40%,#fff)}
.track-wrap .rail{background:linear-gradient(90deg,rgba(203,214,239,.5),rgba(203,214,239,.9))}
.track-wrap .rail-lit{box-shadow:0 0 22px rgba(245,130,31,.55),0 0 44px rgba(0,174,239,.3)}
.track-wrap .rail-flame{box-shadow:0 0 0 5px rgba(255,255,255,.9),0 0 26px rgba(245,130,31,.75),var(--sh-md)}
.stage.lit .dot{box-shadow:0 0 0 7px rgba(245,130,31,.16),0 0 22px rgba(245,130,31,.6)}
.stage .ph{margin-bottom:1rem;aspect-ratio:4/3}

/* ---------- STATS ---------- */
.md-stats{position:relative;overflow:hidden;
  background:linear-gradient(130deg,#16205e,var(--navy) 45%,#0d1445)}
.md-stats::before{content:"";position:absolute;inset:0;
  background:radial-gradient(60% 90% at 15% 10%,rgba(0,174,239,.34),transparent 60%),
             radial-gradient(50% 80% at 85% 90%,rgba(245,130,31,.28),transparent 62%)}
.md-stats::after{content:"";position:absolute;inset:0;opacity:.5;
  background-image:linear-gradient(rgba(255,255,255,.06) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.06) 1px,transparent 1px);
  background-size:56px 56px}
.md-stats>*{position:relative;z-index:1}
.stat{padding:1.4rem .8rem;border-radius:var(--r-lg);background:rgba(255,255,255,.05);
  border:1px solid rgba(255,255,255,.12);backdrop-filter:blur(8px);transition:.4s var(--ease)}
.stat:hover{background:rgba(255,255,255,.1);transform:translateY(-4px)}
.stat b{background:linear-gradient(120deg,#fff,#8fdcff);-webkit-background-clip:text;background-clip:text;color:transparent}

/* ---------- TICKER ---------- */
.md-ticker{background:linear-gradient(90deg,var(--navy-deep),var(--navy) 50%,var(--navy-deep));
  border-block:1px solid rgba(255,255,255,.1);position:relative}
.md-ticker::before,.md-ticker::after{content:"";position:absolute;top:0;bottom:0;width:90px;z-index:2;pointer-events:none}
.md-ticker::before{left:0;background:linear-gradient(90deg,var(--navy-deep),transparent)}
.md-ticker::after{right:0;background:linear-gradient(270deg,var(--navy-deep),transparent)}

/* ---------- BANNER ---------- */
.page-banner{background:linear-gradient(165deg,#eef3ff,#fff 60%)}
.page-banner h1,.page-banner .wp-block-post-title{
  background:linear-gradient(100deg,var(--navy),var(--cyan-deep) 70%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.page-banner .ph{position:absolute;right:4vw;top:50%;translate:0 -50%;width:min(340px,32vw);
  aspect-ratio:4/3;opacity:.95}
@media(max-width:980px){.page-banner .ph{display:none}}

/* ---------- FORMS ---------- */
.md-form-card{background:rgba(255,255,255,.85);backdrop-filter:blur(18px);
  border-color:rgba(255,255,255,.95);box-shadow:0 40px 90px -50px rgba(16,27,76,.55)}
.form-aside{background:linear-gradient(155deg,var(--navy),#101a5e 55%,#0d1445)}
.form-aside::before{content:"";position:absolute;inset:0;opacity:.4;
  background-image:linear-gradient(rgba(255,255,255,.07) 1px,transparent 1px),
                   linear-gradient(90deg,rgba(255,255,255,.07) 1px,transparent 1px);
  background-size:44px 44px}
.field input,.field select,.field textarea{background:rgba(255,255,255,.7);backdrop-filter:blur(6px)}

/* ---------- FOOTER — high-contrast, clearly clickable ---------- */
.md-footer{position:relative;overflow:hidden;
  background:linear-gradient(165deg,#16205e,#0d1445 65%);padding-top:4.6rem}
.md-footer::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(60% 70% at 12% 0%,rgba(0,174,239,.22),transparent 60%),
             radial-gradient(50% 60% at 88% 100%,rgba(245,130,31,.18),transparent 60%)}
.md-footer .inner{position:relative;z-index:1}
.md-footer h4{color:var(--flame-soft);font-size:.68rem;letter-spacing:.2em;
  padding-bottom:.7rem;margin-bottom:.9rem;border-bottom:1px solid rgba(255,255,255,.16)}

/* links read as links: bright, underlined on hover, with a moving marker */
.md-footer a{
  color:#eaf0ff;font-size:.93rem;padding:.42rem 0 .42rem 1.05rem;position:relative;
  border-radius:8px;transition:color .22s var(--ease),padding-left .22s var(--ease),background .22s}
.md-footer a::before{
  content:"";position:absolute;left:0;top:50%;translate:0 -50%;width:6px;height:6px;border-radius:50%;
  background:var(--cyan);opacity:.75;transition:.22s var(--ease)}
.md-footer a:hover,.md-footer a:focus-visible{
  color:#fff;padding-left:1.5rem;background:rgba(255,255,255,.07);text-decoration:underline;
  text-underline-offset:3px;text-decoration-color:var(--flame)}
.md-footer a:hover::before{background:var(--flame);width:12px;border-radius:99px;opacity:1;
  box-shadow:0 0 12px rgba(245,130,31,.9)}
.md-footer .f-about p{color:rgba(234,240,255,.82)}
.md-footer .f-campus{color:rgba(234,240,255,.78)}
.md-footer .f-campus b{color:#8fdcff}
.md-footer .brand-logo{background:#fff;border-radius:12px;padding:8px 12px;box-shadow:var(--sh-md)}

/* social: solid, labelled, obviously tappable */
.socials{gap:.6rem;flex-wrap:wrap}
.socials a{width:auto;min-width:44px;height:44px;padding:0 .95rem;gap:.5rem;border-radius:13px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.34);color:#fff;
  font-size:.82rem;font-weight:600;text-decoration:none}
.socials a::before{display:none}
.socials a:hover{background:var(--flame);border-color:var(--flame);color:#fff;transform:translateY(-3px);
  box-shadow:0 12px 26px -12px rgba(245,130,31,.9);padding-left:.95rem;text-decoration:none}
.socials svg{width:18px;height:18px;flex:none}
.socials .lbl{display:inline}
@media(max-width:400px){.socials .lbl{display:none}}

.f-base{color:rgba(234,240,255,.7);font-size:.84rem;
  border-top:1px solid rgba(255,255,255,.18);margin-top:3rem;padding-top:1.6rem}
.f-base a{display:inline;padding:0;color:#8fdcff}
.f-base a::before{display:none}

/* ---------- HEADER ---------- */
.md-header{background:rgba(255,255,255,.82);border-bottom-color:rgba(226,232,247,.9)}
.md-header.stuck{background:rgba(255,255,255,.94);
  box-shadow:0 10px 40px -26px rgba(16,27,76,.6),0 1px 0 rgba(0,174,239,.16)}
.head-cta{background:linear-gradient(120deg,var(--flame),#ff9d47);
  box-shadow:0 12px 28px -12px rgba(245,130,31,.9)}
.md-topbar{background:linear-gradient(90deg,var(--navy-deep),var(--navy) 55%,var(--navy-deep))}

/* ---------- REVEALS ---------- */
.rv{transform:translateY(26px) scale(.99);filter:blur(2px)}
.rv.in{transform:none;filter:none}

/* ---------- SCROLL PROGRESS ---------- */
.md-progress{position:fixed;top:0;left:0;height:3px;width:0;z-index:200;
  background:linear-gradient(90deg,var(--cyan),var(--flame));box-shadow:0 0 12px rgba(0,174,239,.7)}
.admin-bar .md-progress{top:32px}

/* ---------- SECTION EYEBROW GLOW ---------- */
.eyebrow::before,.is-style-eyebrow::before{box-shadow:0 0 10px rgba(245,130,31,.9)}

@media (prefers-reduced-motion:reduce){
  .aurora::before{animation:none}
  .grad-text{animation:none}
  .md-progress{display:none}
}

/* ============================================================
   LAYER 3 — editorial structure
   Oversized display words as section anchors, expanding phase
   panels, a persistent action dock, and arrow affordances.
   ============================================================ */

/* ---------- OVERSIZED SECTION WORD ---------- */
.bigword{
  position:absolute;top:-.18em;left:-.02em;z-index:0;pointer-events:none;user-select:none;
  font-family:var(--ff-display);font-weight:800;letter-spacing:-.05em;line-height:.78;
  font-size:clamp(4.5rem,15vw,13rem);
  color:transparent;-webkit-text-stroke:1.5px rgba(31,42,117,.14);
  white-space:nowrap}
.bigword.solid{-webkit-text-stroke:0;
  background:linear-gradient(180deg,rgba(31,42,117,.09),rgba(31,42,117,0));
  -webkit-background-clip:text;background-clip:text}
.bigword.right{left:auto;right:-.02em}
.bigword.on-dark{-webkit-text-stroke-color:rgba(255,255,255,.16)}
.has-bigword{position:relative}
.has-bigword>*{position:relative;z-index:1}
@media(max-width:640px){.bigword{font-size:clamp(3.4rem,22vw,6rem);opacity:.75}}

/* ---------- STATEMENT ---------- */
.statement{max-width:22ch;margin-inline:auto;text-align:center;
  font-family:var(--ff-display);font-weight:800;letter-spacing:-.03em;line-height:1.08;
  font-size:clamp(1.8rem,4.4vw,3.4rem);color:var(--ink)}
.statement em{font-style:normal;color:var(--flame)}
.statement-wide{max-width:34ch}
.statement-sub{max-width:60ch;margin:1.4rem auto 0;text-align:center;color:var(--ink-2);font-size:1.05rem}

/* ---------- WORD MARQUEE ---------- */
.wordmarquee{overflow:hidden;display:flex;padding-block:.4rem;
  -webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.wordmarquee .wm-track{display:flex;flex:none;gap:2.4rem;padding-right:2.4rem;white-space:nowrap;
  animation:md-slide 42s linear infinite;align-items:center}
.wordmarquee span{font-family:var(--ff-display);font-weight:800;letter-spacing:-.03em;
  font-size:clamp(1.5rem,3.4vw,2.6rem);color:var(--ink-3);display:flex;align-items:center;gap:2.4rem;
  transition:color .3s}
.wordmarquee span::after{content:"";width:10px;height:10px;border-radius:50%;background:var(--flame);flex:none}
.wordmarquee:hover span{color:var(--navy)}

/* ---------- EXPANDING PHASE PANELS ---------- */
.phases-strip{display:flex;gap:.7rem;height:clamp(380px,52vh,540px)}
.phase{position:relative;flex:1;min-width:0;border-radius:var(--r-xl);overflow:hidden;cursor:pointer;
  text-decoration:none;color:#fff;background:var(--navy);
  transition:flex .62s var(--ease),box-shadow .5s var(--ease)}
.phase .bg{position:absolute;inset:0;background-size:cover;background-position:center;
  transition:transform .8s var(--ease)}
.phase::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(13,20,69,.18) 20%,rgba(13,20,69,.9))}
.phase .inner{position:absolute;inset:auto 0 0 0;z-index:2;padding:1.5rem 1.4rem;display:flex;
  flex-direction:column;gap:.5rem}
.phase .pico{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);backdrop-filter:blur(8px);
  margin-bottom:.3rem;flex:none}
.phase .pico svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.phase .age{font-family:var(--ff-mono);font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;color:var(--flame-soft)}
.phase h3{color:#fff;font-size:1.35rem;margin:0;
  writing-mode:vertical-rl;transform:rotate(180deg);transition:.5s var(--ease)}
.phase p{color:rgba(255,255,255,.86);font-size:.92rem;margin:0;max-width:44ch;
  opacity:0;max-height:0;overflow:hidden;transition:opacity .45s .12s var(--ease),max-height .55s var(--ease)}
.phase .go{display:inline-flex;align-items:center;gap:.5rem;font-size:.85rem;font-weight:600;
  color:var(--flame-soft);opacity:0;transition:opacity .4s .18s}
.phase.is-open{flex:3.4;box-shadow:var(--glow-cyan)}
.phase.is-open .bg{transform:scale(1.06)}
.phase.is-open h3{writing-mode:horizontal-tb;transform:none;font-size:1.7rem}
.phase.is-open p{opacity:1;max-height:9rem}
.phase.is-open .go{opacity:1}
@media(hover:hover){.phase:hover{flex:3.4}}
@media(max-width:900px){
  .phases-strip{flex-direction:column;height:auto}
  .phase{flex:none;min-height:112px}
  .phase h3{writing-mode:horizontal-tb;transform:none}
  .phase.is-open{flex:none;min-height:270px}
}

/* ---------- ARROW AFFORDANCE ---------- */
.arrow-circle{width:42px;height:42px;border-radius:50%;display:grid;place-items:center;flex:none;
  border:1px solid var(--line-strong);background:#fff;color:var(--navy);
  transition:.35s var(--ease)}
.arrow-circle svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.prog:hover .arrow-circle,.md-card:hover .arrow-circle,.newscard:hover .arrow-circle{
  background:var(--flame);border-color:var(--flame);color:#fff;transform:rotate(-45deg) scale(1.06)}
.card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem}

/* ---------- PRINCIPAL / FOUNDER FEATURE ---------- */
.leader{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(1.8rem,4vw,3.4rem);align-items:center}
@media(max-width:900px){.leader{grid-template-columns:1fr}}
.leader-shot{position:relative}
.leader-shot .ph{aspect-ratio:4/5;border-radius:var(--r-2xl)}
.leader-shot::before{content:"";position:absolute;inset:-18px -18px auto auto;width:62%;height:62%;
  border-radius:var(--r-2xl);background:linear-gradient(140deg,var(--cyan),var(--flame));opacity:.16;z-index:-1}
.leader-badge{position:absolute;left:-16px;bottom:26px;background:#fff;border-radius:18px;padding:.85rem 1.1rem;
  box-shadow:var(--sh-lg);border:1px solid var(--line);display:flex;align-items:center;gap:.7rem}
.leader-badge img{width:40px}
.leader-badge b{display:block;font-family:var(--ff-display);font-size:.9rem;color:var(--navy);line-height:1.1}
.leader-badge span{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase;color:var(--flame)}
@media(max-width:560px){.leader-badge{position:static;margin-top:1rem}}

/* ---------- ACCREDITATION STRIP ---------- */
.accred{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 2.4rem;padding:1.4rem 0;
  border-block:1px solid var(--line)}
.accred .a-item{display:flex;align-items:center;gap:.7rem;color:var(--ink-2);font-size:.9rem}
.accred .a-item b{font-family:var(--ff-display);font-size:1.5rem;color:var(--navy);letter-spacing:-.02em}
.accred .a-sep{flex:1}

/* ---------- NEWS CARD (arrow style) ---------- */
.newscard{display:block;text-decoration:none;color:inherit;border-radius:var(--r-lg);overflow:hidden;
  background:#fff;border:1px solid var(--line);box-shadow:var(--sh-sm);transition:.4s var(--ease)}
.newscard:hover{transform:translateY(-6px);box-shadow:var(--sh-md);color:inherit}
.newscard .ph{border-radius:0;aspect-ratio:16/10}
.newscard .nc-body{padding:1.3rem 1.4rem 1.5rem}
.newscard .nc-meta{font-family:var(--ff-mono);font-size:.65rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--flame-deep);margin-bottom:.5rem}
.newscard h3{font-size:1.06rem;margin:0 0 .8rem}

/* ---------- STICKY ACTION DOCK ---------- */
.dock{position:fixed;right:16px;bottom:16px;z-index:120;display:flex;flex-direction:column;gap:.55rem}
.dock a{display:flex;align-items:center;gap:.6rem;padding:.72rem .95rem;border-radius:999px;
  text-decoration:none;font-size:.83rem;font-weight:600;white-space:nowrap;
  background:rgba(255,255,255,.92);backdrop-filter:blur(14px);color:var(--navy);
  border:1px solid var(--line-strong);box-shadow:var(--sh-md);transition:.3s var(--ease)}
.dock a svg{width:17px;height:17px;flex:none}
.dock a.primary{background:linear-gradient(120deg,var(--flame),#ff9d47);color:#fff;border-color:transparent;
  box-shadow:0 14px 30px -14px rgba(245,130,31,.9)}
.dock a.wa{background:#25d366;color:#fff;border-color:transparent;box-shadow:0 14px 30px -14px rgba(37,211,102,.8)}
.dock a:hover{transform:translateX(-3px) scale(1.03)}
.dock .lbl{display:inline}
@media(max-width:760px){
  .dock{right:10px;bottom:10px;flex-direction:row}
  .dock .lbl{display:none}
  .dock a{padding:.8rem;border-radius:50%}
}
@media print{.dock{display:none}}

/* ---------- VIRTUAL TOUR PANEL ---------- */
.tourpanel{position:relative;border-radius:var(--r-2xl);overflow:hidden;min-height:clamp(300px,44vh,460px);
  display:grid;place-items:center;text-align:center;color:#fff;background:var(--navy)}
.tourpanel .bg{position:absolute;inset:0;background-size:cover;background-position:center}
.tourpanel::after{content:"";position:absolute;inset:0;background:rgba(13,20,69,.6)}
.tourpanel .tp{position:relative;z-index:2;padding:2rem}
.tourpanel h2{color:#fff}
.tourpanel p{color:rgba(255,255,255,.84);max-width:48ch;margin-inline:auto}
.playbtn{width:74px;height:74px;border-radius:50%;display:grid;place-items:center;margin:0 auto 1.4rem;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.4);backdrop-filter:blur(8px);
  position:relative;transition:.35s var(--ease)}
.playbtn::before{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid rgba(255,255,255,.5);
  animation:md-pulse 2.6s ease-out infinite}
.playbtn svg{width:26px;height:26px;fill:#fff;margin-left:3px}
.tourpanel:hover .playbtn{background:var(--flame);border-color:var(--flame);transform:scale(1.07)}
@keyframes md-pulse{0%{transform:scale(1);opacity:.8}100%{transform:scale(1.7);opacity:0}}

/* ---------- SPLIT CTA BAND ---------- */
.ctaband{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
@media(max-width:820px){.ctaband{grid-template-columns:1fr}}
.ctaband a{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.5rem 1.6rem;
  border-radius:var(--r-lg);text-decoration:none;background:rgba(255,255,255,.08);
  border:1px solid rgba(255,255,255,.2);color:#fff;transition:.35s var(--ease)}
.ctaband a b{font-family:var(--ff-display);font-size:1.2rem;display:block}
.ctaband a span{font-size:.86rem;color:rgba(255,255,255,.72)}
.ctaband a:hover{background:rgba(255,255,255,.16);transform:translateY(-4px);color:#fff}
.ctaband .arrow-circle{background:transparent;border-color:rgba(255,255,255,.45);color:#fff}
.ctaband a:hover .arrow-circle{background:var(--flame);border-color:var(--flame)}

/* ============================================================
   LAYER 3 — editorial rebuild
   Oversized display type as graphic device, cinematic phase
   panels, a persistent action dock, and modal enquiry.
   ============================================================ */

/* ---------- OVERSIZED SPLIT HEADINGS ---------- */
.mega-head{position:relative;margin-bottom:clamp(1.6rem,3vw,2.6rem)}
.mega-head .mh-line{display:block;font-family:var(--ff-display);font-weight:800;line-height:.84;
  letter-spacing:-.055em;text-transform:uppercase;color:var(--navy);
  font-size:clamp(3.1rem,11vw,9.5rem)}
.mega-head .mh-line.tint{color:transparent;-webkit-text-stroke:1.5px rgba(31,42,117,.32)}
.mega-head .mh-line.shift{margin-left:clamp(1.5rem,10vw,9rem)}
.mega-head .mh-line.flame{background:linear-gradient(100deg,var(--flame),var(--cyan-deep));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.mega-head .mh-sub{display:block;margin-top:1.1rem;max-width:52ch;font-size:1.08rem;color:var(--ink-2)}
.tint-deep .mega-head .mh-line,.md-stats .mega-head .mh-line{color:#fff}
.tint-deep .mega-head .mh-line.tint{color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.4)}
@media(max-width:640px){.mega-head .mh-line.shift{margin-left:.6rem}}

/* ---------- CINEMATIC HERO ---------- */
.hero-cine{position:relative;min-height:min(92vh,860px);display:flex;align-items:flex-end;
  overflow:hidden;background:var(--navy-deep);color:#fff;padding-block:clamp(3rem,8vw,6rem)}
.hero-cine .cine-bg{position:absolute;inset:0;background-size:cover;background-position:center;
  transform:scale(1.06);animation:md-ken 26s ease-in-out infinite alternate}
@keyframes md-ken{from{transform:scale(1.04) translate3d(0,0,0)}to{transform:scale(1.15) translate3d(-1.5%,-1.5%,0)}}
.hero-cine::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(13,20,69,.62) 0%,rgba(13,20,69,.34) 34%,rgba(13,20,69,.9) 100%),
             radial-gradient(70% 60% at 78% 20%,rgba(0,174,239,.34),transparent 62%)}
.hero-cine>.md-wrap{position:relative;z-index:2;width:100%}
.hero-cine h1,.hero-cine .mh-line{color:#fff}
.hero-cine .mh-line.tint{color:transparent;-webkit-text-stroke:1.6px rgba(255,255,255,.45)}
.hero-cine .hero-sub{color:rgba(255,255,255,.88);font-size:1.15rem;max-width:46ch}
.hero-cine .chip{background:rgba(255,255,255,.15);color:#fff;border-color:rgba(255,255,255,.34);
  backdrop-filter:blur(10px);box-shadow:none}
.hero-cine .btn-ghost{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.42);
  backdrop-filter:blur(10px)}
.hero-cine .btn-ghost:hover{background:#fff;color:var(--navy)}
.hero-foot{display:flex;flex-wrap:wrap;gap:1.6rem 2.6rem;align-items:center;margin-top:clamp(2rem,4vw,3.2rem);
  padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.22)}
.hero-foot .hf{display:flex;flex-direction:column}
.hero-foot .hf b{font-family:var(--ff-display);font-size:1.9rem;font-weight:800;line-height:1;color:#fff}
.hero-foot .hf span{font-family:var(--ff-mono);font-size:.64rem;letter-spacing:.15em;text-transform:uppercase;
  color:rgba(255,255,255,.62);margin-top:.3rem}

/* play button for the school film */
.playbtn{display:inline-flex;align-items:center;gap:.85rem;color:#fff;text-decoration:none;font-weight:600;
  font-size:.95rem}
.playbtn .pb{width:58px;height:58px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.5);backdrop-filter:blur(10px);
  transition:.3s var(--ease);position:relative}
.playbtn .pb::after{content:"";position:absolute;inset:-6px;border-radius:50%;
  border:1px solid rgba(255,255,255,.35);animation:md-pulse 2.4s ease-out infinite}
@keyframes md-pulse{0%{transform:scale(.9);opacity:.9}100%{transform:scale(1.35);opacity:0}}
.playbtn:hover .pb{background:var(--flame);border-color:var(--flame);transform:scale(1.06)}
.playbtn svg{width:17px;height:17px;fill:#fff;margin-left:3px}

.scrollcue{position:absolute;left:50%;bottom:1.1rem;translate:-50% 0;z-index:3;
  font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(255,255,255,.6);display:flex;flex-direction:column;align-items:center;gap:.5rem}
.scrollcue::after{content:"";width:1px;height:34px;background:linear-gradient(rgba(255,255,255,.7),transparent);
  animation:md-cue 2s ease-in-out infinite}
@keyframes md-cue{0%,100%{transform:scaleY(.4);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}}
@media(max-width:700px){.scrollcue{display:none}}

/* ---------- PHASE PANELS ---------- */
.phases{display:grid;grid-template-columns:repeat(4,1fr);gap:.6rem}
@media(max-width:1000px){.phases{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.phases{grid-template-columns:1fr}}
.phase{position:relative;min-height:clamp(300px,42vw,460px);border-radius:var(--r-xl);overflow:hidden;
  display:flex;flex-direction:column;justify-content:flex-end;padding:1.6rem;color:#fff;
  text-decoration:none;background:var(--navy);transition:.5s var(--ease)}
.phase .bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform 1s var(--ease)}
.phase::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(13,20,69,.1) 25%,rgba(13,20,69,.88))}
.phase:hover{color:#fff;box-shadow:var(--glow-cyan)}
.phase:hover .bg{transform:scale(1.08)}
.phase .inner{position:relative;z-index:2}
.phase .pic{width:50px;height:50px;border-radius:14px;display:grid;place-items:center;margin-bottom:1rem;
  background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.34);backdrop-filter:blur(8px)}
.phase .pic svg{width:24px;height:24px;stroke:#fff;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.phase .age{font-family:var(--ff-mono);font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--flame-soft);display:block;margin-bottom:.4rem}
.phase h3{color:#fff;font-size:1.5rem;margin-bottom:.4rem}
.phase p{color:rgba(255,255,255,.82);font-size:.9rem;margin:0;
  max-height:0;opacity:0;overflow:hidden;transition:.5s var(--ease)}
.phase:hover p,.phase:focus-visible p{max-height:9rem;opacity:1;margin-top:.4rem}
.phase .go{margin-top:.9rem;display:inline-flex;align-items:center;gap:.45rem;font-size:.83rem;
  font-weight:600;color:var(--flame-soft)}
@media(max-width:560px){.phase p{max-height:9rem;opacity:1}}

/* ---------- PROGRAMME CARDS WITH INNER LINKS ---------- */
.pcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);padding:1.7rem 1.5rem;
  box-shadow:var(--sh-sm);display:flex;flex-direction:column;transition:.4s var(--ease);position:relative;overflow:hidden}
.pcard::before{content:"";position:absolute;left:0;right:0;top:0;height:4px;
  background:linear-gradient(90deg,var(--cyan),var(--flame))}
.pcard:hover{transform:translateY(-6px);box-shadow:var(--glow-cyan);border-color:var(--line-strong)}
.pcard .tagrow{display:flex;justify-content:space-between;align-items:center;margin-bottom:.9rem}
.pcard .badge{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;
  padding:.26rem .7rem;border-radius:999px;background:var(--cyan-soft);color:var(--cyan-deep)}
.pcard h3{font-size:1.3rem;margin-bottom:.5rem}
.pcard>p{font-size:.93rem;color:var(--ink-2);margin-bottom:1.1rem}
.pcard .plinks{list-style:none;padding:0;margin:0 0 1.2rem;border-top:1px solid var(--line)}
.pcard .plinks li{border-bottom:1px solid var(--line)}
.pcard .plinks a{display:flex;align-items:center;justify-content:space-between;gap:.6rem;
  padding:.62rem .2rem;font-size:.9rem;color:var(--ink);text-decoration:none;transition:.2s}
.pcard .plinks a::after{content:"\2192";color:var(--ink-3);transition:.2s}
.pcard .plinks a:hover{color:var(--cyan-deep);padding-left:.5rem}
.pcard .plinks a:hover::after{color:var(--flame);transform:translateX(3px)}
.pcard .pfoot{margin-top:auto}

/* ---------- CREDENTIAL STRIP ---------- */
.creds{display:flex;flex-wrap:wrap;gap:1rem;align-items:stretch;justify-content:center}
.cred{display:flex;align-items:center;gap:.8rem;padding:.9rem 1.3rem;border-radius:var(--r-md);
  background:#fff;border:1px solid var(--line);box-shadow:var(--sh-sm);min-width:200px}
.cred .cm{width:38px;height:38px;border-radius:11px;flex:none;display:grid;place-items:center;
  background:linear-gradient(140deg,var(--navy),var(--cyan));color:#fff;font-family:var(--ff-display);
  font-weight:800;font-size:.8rem;letter-spacing:-.02em}
.cred b{display:block;font-size:.9rem;color:var(--ink);font-family:var(--ff-display);letter-spacing:-.01em}
.cred span{font-size:.76rem;color:var(--ink-3)}

/* ---------- STAT PAIRS ---------- */
.statpair{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:2rem}
.sp b{display:block;font-family:var(--ff-display);font-size:clamp(2.8rem,6vw,4.6rem);font-weight:800;
  line-height:.9;letter-spacing:-.05em;color:var(--navy)}
.sp .suf{color:var(--flame)}
.sp p{margin:.6rem 0 0;font-size:.94rem;color:var(--ink-2);max-width:22ch}
.tint-deep .sp b,.md-stats .sp b{color:#fff}
.tint-deep .sp p{color:rgba(255,255,255,.76)}

/* ---------- ACTION DOCK ---------- */
.dock{position:fixed;right:16px;bottom:16px;z-index:150;display:flex;flex-direction:column;gap:.5rem;
  align-items:flex-end}
.dock a,.dock button{display:inline-flex;align-items:center;gap:.55rem;padding:.7rem .95rem;border-radius:999px;
  font-family:var(--ff-body);font-size:.83rem;font-weight:600;text-decoration:none;border:1px solid transparent;
  cursor:pointer;box-shadow:var(--sh-md);transition:.28s var(--ease);white-space:nowrap}
.dock .d-tour{background:var(--flame);color:#fff}
.dock .d-wa{background:#25d366;color:#fff}
.dock .d-apply{background:var(--navy);color:#fff}
.dock a:hover,.dock button:hover{transform:translateY(-3px) scale(1.03);box-shadow:var(--sh-lg)}
.dock svg{width:17px;height:17px;fill:currentColor;flex:none}
.dock .dlbl{display:inline}
@media(max-width:760px){
  .dock{right:12px;bottom:12px;flex-direction:row}
  .dock .dlbl{display:none}
  .dock a,.dock button{width:48px;height:48px;padding:0;justify-content:center}
}
@media print{.dock{display:none}}

/* ---------- MODAL ---------- */
.md-modal{position:fixed;inset:0;z-index:400;display:none;align-items:center;justify-content:center;padding:1rem}
.md-modal.open{display:flex}
.md-modal .veil{position:absolute;inset:0;background:rgba(13,20,69,.62);backdrop-filter:blur(6px);
  animation:md-fade .3s ease}
@keyframes md-fade{from{opacity:0}to{opacity:1}}
.md-modal .sheet{position:relative;z-index:2;width:min(940px,100%);max-height:92vh;overflow-y:auto;
  border-radius:var(--r-xl);background:#fff;box-shadow:0 50px 110px -50px rgba(13,20,69,.85);
  animation:md-rise .38s var(--ease)}
@keyframes md-rise{from{transform:translateY(22px);opacity:0}to{transform:none;opacity:1}}
.md-modal .x{position:absolute;top:12px;right:12px;z-index:4;width:38px;height:38px;border-radius:50%;
  border:1px solid var(--line);background:#fff;cursor:pointer;font-size:1.1rem;line-height:1;color:var(--ink-2)}
.md-modal .x:hover{background:var(--flame);color:#fff;border-color:var(--flame)}
.md-modal .md-form-card{border:0;box-shadow:none;border-radius:var(--r-xl)}

/* ---------- MEGA MENU FEATURE IMAGE ---------- */
.megamenu .mm-feature{border-radius:var(--r-md);overflow:hidden;min-height:150px;position:relative;
  background-size:cover;background-position:center;display:flex;align-items:flex-end;padding:.9rem}
.megamenu .mm-feature::after{content:"";position:absolute;inset:0;
  background:linear-gradient(transparent 35%,rgba(13,20,69,.85))}
.megamenu .mm-feature b{position:relative;z-index:2;color:#fff;font-family:var(--ff-display);font-size:.92rem}
@media(max-width:1240px){.megamenu .mm-feature{display:none}}

/* ---------- DECORATIVE SHAPES ---------- */
.blob{position:absolute;pointer-events:none;z-index:0;opacity:.5;filter:blur(2px)}
.blob.b1{width:280px;height:280px;border-radius:44% 56% 62% 38%/48% 41% 59% 52%;
  background:linear-gradient(140deg,rgba(0,174,239,.32),rgba(31,42,117,.12));animation:md-morph 18s ease-in-out infinite}
.blob.b2{width:210px;height:210px;border-radius:60% 40% 35% 65%/55% 60% 40% 45%;
  background:linear-gradient(140deg,rgba(245,130,31,.28),rgba(255,181,71,.1));animation:md-morph 22s ease-in-out infinite reverse}
@keyframes md-morph{
  0%,100%{border-radius:44% 56% 62% 38%/48% 41% 59% 52%;transform:rotate(0)}
  50%{border-radius:62% 38% 44% 56%/58% 52% 48% 42%;transform:rotate(18deg) scale(1.08)}}

/* offset image pair, Estudiar-style */
.imgpair{position:relative;min-height:clamp(300px,38vw,440px)}
.imgpair .ph{position:absolute}
.imgpair .ph:first-child{width:72%;left:0;top:0;aspect-ratio:4/3;z-index:2}
.imgpair .ph:last-child{width:52%;right:0;bottom:0;aspect-ratio:1;z-index:3;
  border:6px solid #fff;box-shadow:var(--sh-lg)}

@media (prefers-reduced-motion:reduce){
  .hero-cine .cine-bg{animation:none}
  .playbtn .pb::after,.scrollcue::after,.blob{animation:none}
}

/* ============================================================
   LAYER 4 — inner page system
   Every page below the home page gets the same editorial
   treatment: cinematic masthead, contents rail, styled blocks.
   ============================================================ */

/* ---------- INNER MASTHEAD ---------- */
.page-hero{position:relative;overflow:hidden;background:var(--navy-deep);color:#fff;
  padding-block:clamp(2.6rem,6vw,4.6rem) clamp(2.4rem,5vw,4rem);display:flex;align-items:flex-end}
.page-hero .ph-bg{position:absolute;inset:0;background-size:cover;background-position:center;
  transform:scale(1.05);animation:md-ken 30s ease-in-out infinite alternate}
.page-hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(13,20,69,.72),rgba(13,20,69,.4) 40%,rgba(13,20,69,.94)),
             radial-gradient(60% 60% at 82% 18%,rgba(0,174,239,.3),transparent 62%)}
.page-hero>.md-wrap{position:relative;z-index:2;width:100%}
.page-hero .mh-line{color:#fff;font-size:clamp(2.2rem,6.4vw,5.2rem)}
.page-hero .mh-line.tint{color:transparent;-webkit-text-stroke:1.4px rgba(255,255,255,.46)}
.page-hero .eyebrow{color:#8fdcff!important}
.page-hero .breadcrumbs{color:rgba(255,255,255,.62);margin-top:1.1rem}
.page-hero .breadcrumbs a{color:rgba(255,255,255,.9)}
.page-hero .breadcrumbs a:hover{color:var(--flame-soft)}
.page-hero .hero-actions{display:flex;flex-wrap:wrap;gap:.7rem;margin-top:1.6rem}
.page-hero .btn-ghost{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.42);
  backdrop-filter:blur(10px)}
.page-hero .btn-ghost:hover{background:#fff;color:var(--navy)}
.page-hero .lede{color:rgba(255,255,255,.86)!important;margin-top:1.1rem;max-width:56ch}

/* ---------- PAGE LAYOUT WITH CONTENTS RAIL ---------- */
.pagelayout{display:grid;grid-template-columns:250px minmax(0,1fr);gap:clamp(1.6rem,4vw,3.4rem);
  align-items:start}
@media(max-width:1040px){.pagelayout{grid-template-columns:1fr}}

.toc{position:sticky;top:110px;align-self:start}
@media(max-width:1040px){
  .toc{position:static;margin-bottom:2rem;background:var(--mist);border:1px solid var(--line);
    border-radius:var(--r-lg);padding:1.1rem 1.2rem}
}
.toc h4{font-family:var(--ff-mono);font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 .9rem;font-weight:500}
.toc ol{list-style:none;padding:0;margin:0;counter-reset:toc}
.toc li{counter-increment:toc}
.toc a{display:flex;gap:.7rem;padding:.46rem 0;font-size:.88rem;color:var(--ink-2);text-decoration:none;
  border-left:2px solid var(--line);padding-left:.85rem;transition:.22s var(--ease)}
.toc a::before{content:counter(toc,decimal-leading-zero);font-family:var(--ff-mono);font-size:.66rem;
  color:var(--ink-3);padding-top:.16rem}
.toc a:hover,.toc a.on{color:var(--navy);border-left-color:var(--flame);background:linear-gradient(90deg,var(--cyan-soft),transparent);
  padding-left:1.1rem}
.toc a.on::before{color:var(--flame-deep)}
.toc .toc-cta{margin-top:1.2rem;display:block;text-align:center}

/* ---------- QUICK FACTS RAIL ---------- */
.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.8rem;margin-bottom:2.2rem}
.fact-chip{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);padding:.9rem 1rem;
  box-shadow:var(--sh-sm)}
.fact-chip b{display:block;font-family:var(--ff-display);font-size:1.15rem;font-weight:800;color:var(--navy);
  line-height:1.1;letter-spacing:-.02em}
.fact-chip span{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.13em;text-transform:uppercase;
  color:var(--ink-3)}

/* ---------- CONTENT BLOCK RHYTHM ---------- */
.blk{position:relative;scroll-margin-top:120px;padding-block:clamp(1.4rem,3vw,2.2rem)}
.blk + .blk{border-top:1px solid var(--line)}
.blk > h2{display:flex;align-items:baseline;gap:.85rem;margin-bottom:1.1rem}
.blk > h2::before{content:attr(data-n);font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.14em;
  color:var(--flame-deep);flex:none;padding-top:.3rem}

/* numbered feature cards */
.card-grid .md-card{counter-increment:cg}
.entry-content .card-grid{counter-reset:cg}
.md-card .cnum{position:absolute;top:1.1rem;right:1.2rem;font-family:var(--ff-mono);font-size:.68rem;
  color:var(--ink-3);letter-spacing:.1em}

/* checklist panels get a marker column */
.panel{display:grid;grid-template-columns:auto 1fr;gap:1.2rem;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-xl);padding:1.6rem;box-shadow:var(--sh-sm);position:relative;overflow:hidden}
.panel::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;
  background:linear-gradient(var(--cyan),var(--flame))}
.panel .pico{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;flex:none;
  background:var(--cyan-soft);border:1px solid rgba(0,174,239,.22)}
.panel .pico svg{width:22px;height:22px;stroke:var(--cyan-deep);fill:none;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round}
.panel h3{margin-bottom:.7rem}
.panel .checklist{margin:0;columns:2;column-gap:2rem}
.panel .checklist li{break-inside:avoid}
@media(max-width:760px){.panel{grid-template-columns:1fr}.panel .checklist{columns:1}}

/* ---------- IMAGE BREAK BAND ---------- */
.breakband{position:relative;border-radius:var(--r-xl);overflow:hidden;min-height:clamp(220px,26vw,330px);
  display:flex;align-items:flex-end;padding:1.8rem;color:#fff;margin-block:2.4rem}
.breakband .bg{position:absolute;inset:0;background-size:cover;background-position:center}
.breakband::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(13,20,69,.14) 30%,rgba(13,20,69,.86))}
.breakband .bb{position:relative;z-index:2;max-width:46ch}
.breakband p{color:rgba(255,255,255,.9);font-family:var(--ff-display);font-weight:600;
  font-size:clamp(1.05rem,2vw,1.5rem);letter-spacing:-.02em;line-height:1.28;margin:0}
.breakband cite{display:block;margin-top:.7rem;font-family:var(--ff-mono);font-size:.64rem;
  letter-spacing:.15em;text-transform:uppercase;color:var(--flame-soft);font-style:normal}

/* ---------- RELATED / CONTINUE ---------- */
.related{background:var(--mist);border-top:1px solid var(--line)}
.rel-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1rem}
.rel{display:block;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;
  text-decoration:none;color:inherit;box-shadow:var(--sh-sm);transition:.35s var(--ease)}
.rel:hover{transform:translateY(-5px);box-shadow:var(--glow-cyan);color:inherit}
.rel .rimg{height:118px;background-size:cover;background-position:center;position:relative}
.rel .rimg::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 40%,rgba(13,20,69,.55))}
.rel .rbody{padding:1.05rem 1.2rem 1.3rem}
.rel .rk{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.rel h3{font-size:1.03rem;margin:.35rem 0 .4rem}
.rel p{font-size:.86rem;color:var(--ink-2);margin:0}

/* ---------- CTA BAND ---------- */
.ctaband{position:relative;overflow:hidden;background:linear-gradient(130deg,#16205e,var(--navy) 45%,#0d1445);
  color:#fff;padding-block:clamp(2.8rem,6vw,4.6rem)}
.ctaband::before{content:"";position:absolute;inset:0;
  background:radial-gradient(55% 80% at 12% 10%,rgba(0,174,239,.32),transparent 60%),
             radial-gradient(50% 70% at 88% 90%,rgba(245,130,31,.26),transparent 62%)}
.ctaband>*{position:relative;z-index:1}
.ctaband .mh-line{color:#fff}
.ctaband .mh-line.tint{color:transparent;-webkit-text-stroke:1.4px rgba(255,255,255,.42)}
.ctaband p{color:rgba(255,255,255,.84);max-width:52ch}
.ctaband .btn-ghost{background:rgba(255,255,255,.14);color:#fff;border-color:rgba(255,255,255,.42)}
.ctaband .btn-ghost:hover{background:#fff;color:var(--navy)}
.cta-split{display:grid;grid-template-columns:1.15fr .85fr;gap:2.4rem;align-items:center}
@media(max-width:860px){.cta-split{grid-template-columns:1fr}}
.cta-lines{list-style:none;padding:0;margin:0}
.cta-lines li{display:flex;gap:.8rem;align-items:center;padding:.7rem 0;
  border-bottom:1px solid rgba(255,255,255,.16);font-size:.94rem;color:rgba(255,255,255,.9)}
.cta-lines li:last-child{border-bottom:0}
.cta-lines b{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;
  color:#8fdcff;min-width:76px;flex:none}
.cta-lines a{color:#fff;text-decoration:none}
.cta-lines a:hover{color:var(--flame-soft)}

/* section-page child grid gets images */
.entry-content .prog{padding-top:0;overflow:hidden}

/* ============================================================
   LAYER 5 — turquoise palette + chaptered inner pages
   Navy is demoted to ink only. Turquoise carries the surfaces.
   ============================================================ */

:root{
  --turq:#17b6c7;
  --turq-mid:#0f97ad;
  --turq-deep:#0a7286;
  --turq-dark:#064f60;
  --turq-ink:#053a47;
  --turq-soft:#e4f8fb;
  --turq-tint:#f0fbfd;
  --turq-line:#c6ecf2;

  --cyan:#17b6c7;
  --cyan-deep:#0a7286;
  --cyan-soft:#e4f8fb;
  --mist:#f0fbfd;
  --line:#d9edf3;
  --line-strong:#b9dfe8;

  --glow-cyan:0 0 0 1px rgba(23,182,199,.24),0 22px 60px -28px rgba(23,182,199,.6);
  --sh-md:0 14px 34px -22px rgba(6,79,96,.36);
  --sh-lg:0 30px 64px -38px rgba(6,79,96,.44);
  --sh-sm:0 2px 8px -2px rgba(6,79,96,.12);
}

/* deep surfaces become turquoise rather than navy */
.md-topbar{background:linear-gradient(90deg,var(--turq-dark),var(--turq-deep) 55%,var(--turq-dark))}
.md-ticker{background:linear-gradient(90deg,var(--turq-dark),var(--turq-deep) 50%,var(--turq-dark))}
.md-ticker::before{background:linear-gradient(90deg,var(--turq-dark),transparent)}
.md-ticker::after{background:linear-gradient(270deg,var(--turq-dark),transparent)}
.md-stats{background:linear-gradient(130deg,var(--turq-deep),var(--turq-dark) 48%,var(--turq-ink))}
.ctaband{background:linear-gradient(130deg,var(--turq-deep),var(--turq-dark) 46%,var(--turq-ink))}
.form-aside{background:linear-gradient(155deg,var(--turq-deep),var(--turq-dark) 60%,var(--turq-ink))}
.md-footer{background:linear-gradient(165deg,var(--turq-deep),var(--turq-ink) 68%)}
.md-section.tint-deep{background:linear-gradient(160deg,var(--turq-deep),var(--turq-dark))}
.is-style-lit-panel{background:linear-gradient(150deg,var(--turq-deep),var(--turq-dark))}
.md-card.navy{background:#fff}
.md-card.navy .ic{background:var(--turq-soft);border-color:rgba(23,182,199,.26)}
.md-card.navy .ic svg{stroke:var(--turq-deep)}
.person .av,.md-quote .av{background:linear-gradient(140deg,var(--turq),var(--flame))}
.campus .band{background:linear-gradient(130deg,var(--turq-deep),var(--turq))}
.cred .cm{background:linear-gradient(140deg,var(--turq-deep),var(--turq))}
.btn-navy{background:linear-gradient(120deg,var(--turq-deep),var(--turq))}
.step .n{background:var(--turq-deep)}
.step:nth-child(2) .n{background:var(--turq)}
.step:nth-child(4) .n{background:var(--turq-dark)}
.toc a:hover,.toc a.on{background:linear-gradient(90deg,var(--turq-soft),transparent);color:var(--turq-deep)}
.mm-head{color:var(--turq-deep)}
.md-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.prev-nav .nav-item>a:hover,.prev-nav .nav-item.is-active>a{color:var(--turq-deep);background:var(--turq-soft)}
.head-cta:hover{background:var(--turq-deep)}
.hero-cine::after,.page-hero::after{
  background:linear-gradient(180deg,rgba(5,58,71,.66),rgba(5,58,71,.3) 38%,rgba(5,58,71,.93)),
             radial-gradient(64% 60% at 80% 18%,rgba(23,182,199,.4),transparent 62%)}
.phase::after,.feature::after,.breakband::after,.rel .rimg::after{
  background:linear-gradient(180deg,rgba(5,58,71,.08) 28%,rgba(5,58,71,.9))}
.mega-head .mh-line{color:var(--turq-ink)}
.mega-head .mh-line.tint{-webkit-text-stroke-color:rgba(23,182,199,.42)}
.mega-head .mh-line.flame{background:linear-gradient(100deg,var(--flame),var(--turq-deep));
  -webkit-background-clip:text;background-clip:text}
.grad-text{background:linear-gradient(100deg,var(--turq-deep) 8%,var(--turq) 42%,var(--flame) 88%);
  -webkit-background-clip:text;background-clip:text}
.aurora::before{background:
  radial-gradient(46% 42% at 18% 22%,rgba(23,182,199,.34),transparent 62%),
  radial-gradient(40% 38% at 82% 14%,rgba(10,114,134,.2),transparent 64%),
  radial-gradient(44% 40% at 68% 82%,rgba(245,130,31,.2),transparent 64%),
  radial-gradient(38% 36% at 12% 78%,rgba(23,182,199,.18),transparent 62%)}
.page-banner{background:linear-gradient(165deg,var(--turq-tint),#fff 60%)}
.md-journey{background:linear-gradient(180deg,#fff,var(--turq-tint) 40%,#fff)}
.related{background:var(--turq-tint)}
.dock .d-apply{background:var(--turq-deep)}
.md-footer h4{border-bottom-color:rgba(255,255,255,.2)}

/* ---------- CHAPTERED SECTIONS ---------- */
.chapter{position:relative;padding-block:clamp(3rem,6.5vw,5.6rem)}
.chapter.c-tint{background:var(--turq-tint)}
.chapter.c-soft{background:var(--turq-soft)}
.chapter.c-dark{background:linear-gradient(140deg,var(--turq-deep),var(--turq-ink));color:#fff}
.chapter.c-dark h2,.chapter.c-dark h3{color:#fff}
.chapter.c-dark p{color:rgba(255,255,255,.86)}
.chapter.c-dark .eyebrow{color:#8fe8f2!important}
.chapter .ch-num{position:absolute;top:clamp(1.4rem,3vw,2.4rem);right:4vw;font-family:var(--ff-mono);
  font-size:.68rem;letter-spacing:.2em;color:var(--turq);opacity:.6}
.chapter.c-dark .ch-num{color:#8fe8f2}

/* section intro: eyebrow + big statement + support text, two columns */
.ch-intro{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(1.6rem,4vw,3.4rem);align-items:start;
  margin-bottom:clamp(1.8rem,3.6vw,2.8rem)}
@media(max-width:900px){.ch-intro{grid-template-columns:1fr;gap:1rem}}
.ch-intro h2{font-size:clamp(1.7rem,3.6vw,2.9rem);letter-spacing:-.035em;line-height:1.06}
.ch-intro .support{font-size:1.02rem;color:var(--ink-2);padding-top:.5rem}
.chapter.c-dark .ch-intro .support{color:rgba(255,255,255,.8)}

/* ---------- FACT STRIP (mixed weights) ---------- */
.factstrip{display:grid;grid-template-columns:repeat(12,1fr);gap:1rem}
.fs{grid-column:span 4;background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);
  padding:1.5rem 1.4rem;box-shadow:var(--sh-sm);display:flex;flex-direction:column;justify-content:space-between;
  min-height:150px;transition:.4s var(--ease);position:relative;overflow:hidden}
.fs:hover{transform:translateY(-5px);box-shadow:var(--glow-cyan)}
.fs.wide{grid-column:span 6}
.fs.full{grid-column:span 12}
.fs.turq{background:linear-gradient(140deg,var(--turq-deep),var(--turq-ink));border-color:transparent;color:#fff}
.fs.turq .fk{color:#8fe8f2}
.fs.turq b,.fs.turq p{color:#fff}
.fs.flame{background:linear-gradient(140deg,var(--flame),#ffa652);border-color:transparent;color:#fff}
.fs.flame .fk{color:rgba(255,255,255,.8)}
.fs.flame b,.fs.flame p{color:#fff}
.fs .fk{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.17em;text-transform:uppercase;
  color:var(--ink-3);margin-bottom:.7rem}
.fs b{display:block;font-family:var(--ff-display);font-size:clamp(1.9rem,3.6vw,3rem);font-weight:800;
  line-height:.95;letter-spacing:-.045em;color:var(--turq-ink)}
.fs p{margin:.55rem 0 0;font-size:.88rem;color:var(--ink-2);line-height:1.45}
@media(max-width:900px){.fs,.fs.wide{grid-column:span 6}}
@media(max-width:600px){.fs,.fs.wide,.fs.full{grid-column:span 12}}

/* ---------- ASK BLOCK (human interlude) ---------- */
.askblock{max-width:60ch}
.askblock .lead{font-style:italic;font-size:.95rem;color:var(--turq-deep);margin-bottom:1rem}
.askblock q,.askblock .q{display:block;font-family:var(--ff-display);font-weight:700;letter-spacing:-.03em;
  font-size:clamp(1.35rem,3vw,2.15rem);line-height:1.2;color:var(--turq-ink);
  padding-left:1.3rem;border-left:3px solid var(--flame);margin-bottom:.85rem}
.chapter.c-dark .askblock q,.chapter.c-dark .askblock .q{color:#fff}
.chapter.c-dark .askblock .lead{color:#8fe8f2}

/* ---------- IMAGE-LED VALUE CARDS ---------- */
.vcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(268px,1fr));gap:1.2rem}
.vcard{background:#fff;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;
  box-shadow:var(--sh-sm);transition:.4s var(--ease);display:flex;flex-direction:column}
.vcard:hover{transform:translateY(-6px);box-shadow:var(--glow-cyan)}
.vcard .vimg{height:190px;background-size:cover;background-position:center;position:relative}
.vcard .vimg::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(5,58,71,.35))}
.vcard .vb{padding:1.4rem 1.4rem 1.6rem}
.vcard .vk{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--turq-deep)}
.vcard h3{margin:.4rem 0 .5rem;font-size:1.25rem}
.vcard p{font-size:.93rem;color:var(--ink-2);margin:0}

/* ---------- TWO-COLUMN EXPLAINER ---------- */
.explainer{display:grid;grid-template-columns:1fr 1fr;gap:clamp(1.8rem,4vw,3.4rem);align-items:center}
@media(max-width:880px){.explainer{grid-template-columns:1fr}}
.explainer .ex-media{position:relative;border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/3;
  background-size:cover;background-position:center;box-shadow:var(--sh-lg)}
.explainer .ex-media::after{content:"";position:absolute;inset:0;background:rgba(5,58,71,.3)}
.explainer .ex-play{position:absolute;inset:0;z-index:2;display:grid;place-items:center}
.explainer .twin{display:grid;gap:1.2rem}
.explainer .twin div{padding-left:1.2rem;border-left:2px solid var(--turq-line)}
.explainer .twin b{display:block;font-family:var(--ff-display);font-size:1.05rem;color:var(--turq-ink);margin-bottom:.3rem}
.explainer .twin p{margin:0;font-size:.95rem;color:var(--ink-2)}

/* ---------- VALUE WORD LIST ---------- */
.vwords{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:1.6rem}
.vwords span{font-family:var(--ff-display);font-weight:700;font-size:clamp(1rem,2.2vw,1.5rem);
  letter-spacing:-.02em;padding:.5rem 1.15rem;border-radius:999px;border:1px solid var(--turq-line);
  background:#fff;color:var(--turq-ink);transition:.3s var(--ease)}
.vwords span:hover{background:var(--turq-deep);color:#fff;border-color:var(--turq-deep);transform:translateY(-3px)}
.chapter.c-dark .vwords span{background:rgba(255,255,255,.1);color:#fff;border-color:rgba(255,255,255,.28)}
.chapter.c-dark .vwords span:hover{background:#fff;color:var(--turq-ink)}

/* ---------- OFFSET GALLERY STRIP ---------- */
.gstrip{display:grid;grid-template-columns:repeat(4,1fr);gap:.9rem;align-items:start}
.gstrip .g{border-radius:var(--r-lg);overflow:hidden;background-size:cover;background-position:center;
  aspect-ratio:3/4;box-shadow:var(--sh-md);transition:.5s var(--ease)}
.gstrip .g:nth-child(even){margin-top:2.2rem}
.gstrip .g:hover{transform:translateY(-8px) scale(1.02)}
@media(max-width:880px){.gstrip{grid-template-columns:repeat(2,1fr)}}

/* ---------- PORTRAIT PEOPLE CARDS ---------- */
.pcards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1.2rem}
.pc{position:relative;border-radius:var(--r-xl);overflow:hidden;min-height:340px;display:flex;
  align-items:flex-end;padding:1.5rem;color:#fff;background:var(--turq-deep);transition:.45s var(--ease)}
.pc .bg{position:absolute;inset:0;background-size:cover;background-position:center;transition:transform .8s var(--ease)}
.pc::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 32%,rgba(5,58,71,.92))}
.pc:hover{transform:translateY(-6px);box-shadow:var(--glow-cyan)}
.pc:hover .bg{transform:scale(1.07)}
.pc .pcb{position:relative;z-index:2}
.pc .pck{font-family:var(--ff-mono);font-size:.6rem;letter-spacing:.17em;text-transform:uppercase;
  color:var(--flame-soft)}
.pc h3{color:#fff;margin:.35rem 0 .4rem;font-size:1.3rem}
.pc p{color:rgba(255,255,255,.84);font-size:.9rem;margin:0}

/* ---------- FULL-BLEED IMAGE CHAPTER ---------- */
.chapter.c-image{color:#fff;overflow:hidden}
.chapter.c-image .ci-bg{position:absolute;inset:0;background-size:cover;background-position:center}
.chapter.c-image::after{content:"";position:absolute;inset:0;
  background:linear-gradient(110deg,rgba(5,58,71,.94),rgba(5,58,71,.6) 55%,rgba(5,58,71,.3))}
.chapter.c-image>*{position:relative;z-index:2}
.chapter.c-image h2,.chapter.c-image h3{color:#fff}
.chapter.c-image p{color:rgba(255,255,255,.88)}
.chapter.c-image .eyebrow{color:#8fe8f2!important}
.chapter.c-image .checklist li{color:rgba(255,255,255,.88)}
.chapter.c-image .checklist li::before{background:var(--flame);box-shadow:0 0 0 4px rgba(245,130,31,.24)}

/* remaining navy surfaces retired */
.mosaic .tile:nth-child(1){background-image:linear-gradient(150deg,var(--turq-deep),var(--turq))}
.mosaic .tile:nth-child(2){background-image:linear-gradient(150deg,var(--turq-dark),var(--turq))}
.mosaic .tile:nth-child(4){background-image:linear-gradient(110deg,var(--turq-deep),var(--turq) 60%,var(--flame))}
.campus.itak .band{background:linear-gradient(130deg,var(--turq-dark),var(--flame))}
.hero-card,.stat-row .s::after{--x:0}
.stat-row .s::after{background:linear-gradient(var(--turq),var(--flame))}
.pillar-strip .p{border-left-color:var(--turq)}
.pillar-strip .p:nth-child(3){border-left-color:var(--turq-deep)}
.pillar-strip .p b,.hero-card .brand-crest ~ h3,.fact-chip b,.sp b{color:var(--turq-ink)}
.prog::after{background:var(--turq)}
.prog.p3::after{background:var(--turq-deep)}
.timeline .tl-item::before{border-color:var(--turq)}
.entry-content blockquote{color:var(--turq-ink)}
.wp-block-table th{background:var(--turq-deep)}

/* ============================================================
   LAYER 6 — final palette
   Warm ivory surfaces, deep indigo depth, amber and coral warmth,
   sky blue for structure. Replaces the turquoise experiment.
   ============================================================ */

:root{
  /* surfaces — warm, not clinical white */
  --paper:#ffffff;
  --cream:#fdf8f2;
  --cream-2:#f8efe4;
  --mist:#fdf8f2;
  --tint:#eef4fb;
  --line:#ece2d6;
  --line-strong:#dccbb7;

  /* ink */
  --ink:#1a2340;
  --ink-2:#55607e;
  --ink-3:#8b93a8;

  /* depth */
  --deep:#141d3d;
  --deep-2:#1e2a55;
  --deep-3:#0d1329;

  /* accents */
  --sky:#2f7fd0;
  --sky-deep:#1c5fa8;
  --sky-soft:#e6f0fb;
  --amber:#f2921d;
  
  --amber-lt:#ffc46b;
  --amber-soft:#fff3e0;
  --coral:#e2654b;
  --coral-soft:#fdeae5;
  --sage:#5c8a72;
  --sage-soft:#eaf3ee;

  /* aliases used by earlier layers */
  --turq:#2f7fd0;
  --turq-mid:#1c5fa8;
  --turq-deep:#1e2a55;
  --turq-dark:#141d3d;
  --turq-ink:#0d1329;
  --turq-soft:#e6f0fb;
  --turq-tint:#fdf8f2;
  --turq-line:#ece2d6;
  --cyan:#2f7fd0;
  --cyan-deep:#1c5fa8;
  --cyan-soft:#e6f0fb;
  --navy:#1e2a55;
  --navy-deep:#141d3d;
  --flame:#f2921d;
  --flame-deep:#d4770c;
  --flame-soft:#fff3e0;
  --leaf:#5c8a72;
  --leaf-soft:#eaf3ee;

  --glow-cyan:0 0 0 1px rgba(47,127,208,.2),0 24px 60px -30px rgba(20,29,61,.5);
  --glow-flame:0 0 0 1px rgba(242,146,29,.24),0 24px 60px -30px rgba(242,146,29,.5);
  --sh-sm:0 2px 10px -3px rgba(20,29,61,.1);
  --sh-md:0 16px 36px -24px rgba(20,29,61,.4);
  --sh-lg:0 34px 70px -40px rgba(20,29,61,.48);
}

body{background:var(--paper);color:var(--ink)}

/* dark surfaces */
.md-topbar,.md-ticker{background:linear-gradient(90deg,var(--deep-3),var(--deep) 52%,var(--deep-3))}
.md-ticker::before{background:linear-gradient(90deg,var(--deep-3),transparent)}
.md-ticker::after{background:linear-gradient(270deg,var(--deep-3),transparent)}
.md-stats,.ctaband{background:linear-gradient(135deg,var(--deep-2),var(--deep) 45%,var(--deep-3))}
.form-aside{background:linear-gradient(155deg,var(--deep-2),var(--deep) 58%,var(--deep-3))}
.md-footer{background:linear-gradient(168deg,var(--deep-2),var(--deep-3) 70%)}
.md-section.tint-deep,.is-style-lit-panel{background:linear-gradient(150deg,var(--deep-2),var(--deep))}
.chapter.c-dark{background:linear-gradient(140deg,var(--deep-2),var(--deep-3))}
.hero-cine::after,.page-hero::after{
  background:linear-gradient(180deg,rgba(13,19,41,.6),rgba(13,19,41,.24) 38%,rgba(13,19,41,.93)),
             radial-gradient(64% 62% at 80% 16%,rgba(47,127,208,.34),transparent 62%)}
.phase::after,.feature::after,.breakband::after,.rel .rimg::after,.pc::after,
.chapter.c-image::after,.vcard .vimg::after{
  background:linear-gradient(180deg,rgba(13,19,41,.06) 26%,rgba(13,19,41,.9))}
.chapter.c-image::after{
  background:linear-gradient(110deg,rgba(13,19,41,.95),rgba(13,19,41,.62) 55%,rgba(13,19,41,.3))}

/* warm tints */
.chapter.c-tint,.md-section.tint,.related,.page-banner{background:var(--cream)}
.chapter.c-soft{background:var(--cream-2)}
.md-journey{background:linear-gradient(180deg,#fff,var(--cream) 42%,#fff)}
.page-banner{background:linear-gradient(165deg,var(--cream),#fff 62%)}

/* accents */
.eyebrow,.is-style-eyebrow{color:var(--sky-deep)!important}
.eyebrow::before,.is-style-eyebrow::before{background:var(--amber)}
.btn-primary{background:linear-gradient(120deg,var(--amber),var(--amber-lt));
  box-shadow:0 14px 34px -14px rgba(242,146,29,.8),0 0 0 1px rgba(242,146,29,.26)}
.btn-primary:hover{background:linear-gradient(120deg,var(--coral),var(--amber))}
.btn-navy{background:linear-gradient(120deg,var(--deep-2),var(--sky-deep))}
.btn-ghost{color:var(--deep-2);border-color:var(--line-strong)}
.btn-ghost:hover{border-color:var(--sky);background:var(--sky-soft)}
.head-cta{background:linear-gradient(120deg,var(--amber),var(--amber-lt))}
.head-cta:hover{background:var(--deep-2)}
.chip{background:var(--sky-soft);color:var(--sky-deep);border-color:rgba(47,127,208,.24)}
.chip.flame{background:var(--amber-soft);color:var(--flame-deep);border-color:rgba(242,146,29,.28)}
.chip.leaf{background:var(--sage-soft);color:#3f6b55;border-color:rgba(92,138,114,.26)}
a{color:var(--sky-deep)}
a:hover{color:var(--coral)}

.mega-head .mh-line{color:var(--deep)}
.mega-head .mh-line.tint{-webkit-text-stroke-color:rgba(47,127,208,.4)}
.mega-head .mh-line.flame{background:linear-gradient(100deg,var(--amber),var(--coral));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.grad-text{background:linear-gradient(100deg,var(--sky-deep) 6%,var(--sky) 44%,var(--amber) 90%);
  -webkit-background-clip:text;background-clip:text;color:transparent}
.aurora::before{background:
  radial-gradient(46% 42% at 18% 22%,rgba(47,127,208,.24),transparent 62%),
  radial-gradient(40% 38% at 82% 14%,rgba(242,146,29,.2),transparent 64%),
  radial-gradient(44% 40% at 68% 82%,rgba(226,101,75,.16),transparent 64%),
  radial-gradient(38% 36% at 12% 78%,rgba(92,138,114,.14),transparent 62%)}

.md-card .ic{background:var(--sky-soft);border-color:rgba(47,127,208,.2)}
.md-card .ic svg{stroke:var(--sky-deep)}
.md-card.flame .ic{background:var(--amber-soft)}
.md-card.flame .ic svg{stroke:var(--flame-deep)}
.md-card.navy .ic{background:var(--sage-soft);border-color:rgba(92,138,114,.22)}
.md-card.navy .ic svg{stroke:#3f6b55}
.md-card::before,.prog::before,.person::before,.campus::before{
  background:linear-gradient(150deg,rgba(47,127,208,.5),rgba(255,255,255,0) 40%,rgba(242,146,29,.45))}
.md-card::after{background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(47,127,208,.1),transparent 62%)}

.fs.turq{background:linear-gradient(140deg,var(--deep-2),var(--deep-3))}
.fs.flame{background:linear-gradient(140deg,var(--amber),var(--coral))}
.fs b,.sp b,.fact-chip b,.pillar-strip .p b{color:var(--deep)}
.fs .fk{color:var(--ink-3)}
.fs.turq .fk{color:#9fc4ec}
.stat b{background:linear-gradient(120deg,#fff,#9fc4ec);-webkit-background-clip:text;background-clip:text}
.stat b .suf{color:var(--amber-lt)}

.askblock q,.askblock .q{border-left-color:var(--amber);color:var(--deep)}
.askblock .lead{color:var(--sky-deep)}
.chapter.c-dark .askblock .lead,.chapter.c-image .eyebrow,.chapter.c-dark .eyebrow{color:#9fc4ec!important}
.vwords span{border-color:var(--line-strong);color:var(--deep)}
.vwords span:hover{background:var(--amber);border-color:var(--amber);color:#fff}
.chapter.c-image .vwords span{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.3)}
.chapter.c-image .vwords span:hover{background:#fff;color:var(--deep)}

.toc a:hover,.toc a.on{background:linear-gradient(90deg,var(--sky-soft),transparent);
  color:var(--sky-deep);border-left-color:var(--amber)}
.blk > h2::before{color:var(--amber)}
.panel::before{background:linear-gradient(var(--sky),var(--amber))}
.panel .pico{background:var(--sky-soft);border-color:rgba(47,127,208,.2)}
.panel .pico svg{stroke:var(--sky-deep)}
.checklist li::before{background:var(--sky);box-shadow:0 0 0 4px var(--sky-soft)}
.ulist li b{color:var(--flame-deep)}

.track-wrap .rail-lit{background:linear-gradient(90deg,var(--sky),var(--amber))}
.stage.lit .dot{border-color:var(--amber);background:var(--amber);box-shadow:0 0 0 7px var(--amber-soft)}
.track-wrap .rail-flame{box-shadow:0 0 0 5px rgba(255,255,255,.92),0 0 26px rgba(242,146,29,.7),var(--sh-md)}

.campus .band{background:linear-gradient(130deg,var(--deep-2),var(--sky))}
.campus.itak .band{background:linear-gradient(130deg,var(--deep-2),var(--amber))}
.cred .cm,.person .av,.md-quote .av,.pc{background:linear-gradient(140deg,var(--deep-2),var(--sky))}
.prog::after{background:var(--sky)}
.prog.p2::after{background:var(--amber)}
.prog.p3::after{background:var(--deep-2)}
.prog.p4::after{background:var(--sage)}
.pcard::before{background:linear-gradient(90deg,var(--sky),var(--amber))}
.pcard .badge{background:var(--sky-soft);color:var(--sky-deep)}
.step .n{background:var(--deep-2)}
.step:nth-child(2) .n{background:var(--sky-deep)}
.step:nth-child(3) .n{background:var(--amber)}
.step:nth-child(4) .n{background:var(--sage)}
.step:nth-child(5) .n{background:var(--coral)}
.timeline .tl-item::before{border-color:var(--sky)}
.timeline .tl-item:nth-child(even)::before{border-color:var(--amber)}
.tl-item .yr,.md-card .tag,.vcard .vk{color:var(--flame-deep)}
.vcard .vk{color:var(--sky-deep)}
.wp-block-table th{background:var(--deep-2)}
.wp-block-table tr:nth-child(even) td{background:var(--cream)}
.entry-content blockquote{border-left-color:var(--amber);color:var(--deep)}
.faq summary::after{border-color:var(--amber)}
.faq summary:hover{color:var(--sky-deep)}
.form-index a:hover{border-color:var(--sky);background:var(--sky-soft);color:var(--deep-2)}
.dock .d-tour{background:linear-gradient(120deg,var(--amber),var(--amber-lt))}
.dock .d-apply{background:var(--deep-2)}
.md-header{background:rgba(255,255,255,.86)}
.md-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.prev-nav .nav-item>a:hover,.prev-nav .nav-item.is-active>a{color:var(--sky-deep);background:var(--sky-soft)}
.mm-head{color:var(--deep-2)}
.mm-sub:hover{background:var(--sky-soft);color:var(--sky-deep);border-left-color:var(--amber)}
.md-footer h4{color:var(--amber-lt)}
.md-footer a::before{background:var(--sky)}
.md-footer a:hover::before{background:var(--amber);box-shadow:0 0 12px rgba(242,146,29,.85)}
.md-footer a:hover{text-decoration-color:var(--amber)}
.md-progress{background:linear-gradient(90deg,var(--sky),var(--amber))}
.mosaic .tile:nth-child(1){background-image:linear-gradient(150deg,var(--deep-2),var(--sky))}
.mosaic .tile:nth-child(2){background-image:linear-gradient(150deg,var(--sky-deep),var(--sky))}
.mosaic .tile:nth-child(3){background-image:linear-gradient(150deg,var(--amber),var(--amber-lt))}
.mosaic .tile:nth-child(4){background-image:linear-gradient(110deg,var(--deep-2),var(--sky) 58%,var(--amber))}

/* ============================================================
   LAYER 7 — royal blue & mint
   Royal blue carries depth and structure; mint lifts it and keeps
   the page fresh; amber stays for warmth on calls to action.
   ============================================================ */

:root{
  /* royal blue scale */
  --royal:#2b4cd8;
  --royal-lt:#5a76ea;
  --royal-deep:#1e35a8;
  --royal-dark:#16257e;
  --royal-ink:#0d1652;
  --royal-soft:#e8ecfd;

  /* mint scale */
  --mint:#4fd6ac;
  --mint-lt:#8ce8cd;
  --mint-deep:#22a983;
  --mint-soft:#e3faf2;
  --mint-tint:#f1fdf9;

  /* surfaces */
  --paper:#ffffff;
  --cream:#f4f7fe;
  --cream-2:#e9f7f2;
  --mist:#f4f7fe;
  --tint:#e8ecfd;
  --line:#dfe6f8;
  --line-strong:#c3d0f0;

  /* ink */
  --ink:#16205c;
  --ink-2:#4e5a8c;
  --ink-3:#8892b8;

  /* depth aliases consumed by earlier layers */
  --deep:#16257e;
  --deep-2:#1e35a8;
  --deep-3:#0d1652;
  --sky:#2b4cd8;
  --sky-deep:#1e35a8;
  --sky-soft:#e8ecfd;
  --navy:#1e35a8;
  --navy-deep:#16257e;
  --cyan:#2b4cd8;
  --cyan-deep:#1e35a8;
  --cyan-soft:#e8ecfd;
  --turq:#4fd6ac;
  --turq-deep:#1e35a8;
  --turq-dark:#16257e;
  --turq-ink:#0d1652;
  --turq-soft:#e3faf2;
  --turq-tint:#f4f7fe;
  --turq-line:#dfe6f8;
  --leaf:#22a983;
  --leaf-soft:#e3faf2;
  --sage:#22a983;
  --sage-soft:#e3faf2;
  --amber:#f5a524;
  --amber-lt:#ffc46b;
  --amber-soft:#fff4e2;
  --flame:#f5a524;
  --flame-deep:#d4820a;
  --flame-soft:#fff4e2;
  --coral:#f5854a;

  --glow-cyan:0 0 0 1px rgba(43,76,216,.22),0 24px 62px -30px rgba(43,76,216,.55);
  --glow-flame:0 0 0 1px rgba(79,214,172,.3),0 24px 62px -30px rgba(34,169,131,.5);
  --sh-sm:0 2px 10px -3px rgba(22,37,126,.12);
  --sh-md:0 16px 38px -24px rgba(22,37,126,.4);
  --sh-lg:0 34px 74px -40px rgba(22,37,126,.46);
}

body{background:var(--paper);color:var(--ink)}

/* ---------- deep surfaces: royal blue, lifted with mint ---------- */
.md-topbar,.md-ticker{background:linear-gradient(90deg,var(--royal-ink),var(--royal-dark) 52%,var(--royal-ink))}
.md-ticker::before{background:linear-gradient(90deg,var(--royal-ink),transparent)}
.md-ticker::after{background:linear-gradient(270deg,var(--royal-ink),transparent)}
.md-ticker span::after{color:var(--mint)}
.md-stats,.ctaband{background:linear-gradient(135deg,var(--royal-deep),var(--royal-dark) 46%,var(--royal-ink))}
.md-stats::before,.ctaband::before{
  background:radial-gradient(58% 82% at 12% 8%,rgba(79,214,172,.34),transparent 60%),
             radial-gradient(52% 72% at 88% 92%,rgba(245,165,36,.24),transparent 62%)}
.form-aside{background:linear-gradient(155deg,var(--royal-deep),var(--royal-dark) 58%,var(--royal-ink))}
.form-aside::after{background:radial-gradient(circle,rgba(79,214,172,.4),transparent 68%)}
.md-footer{background:linear-gradient(168deg,var(--royal-deep),var(--royal-ink) 72%)}
.md-footer::before{
  background:radial-gradient(60% 70% at 12% 0%,rgba(79,214,172,.26),transparent 60%),
             radial-gradient(50% 60% at 88% 100%,rgba(245,165,36,.18),transparent 60%)}
.md-section.tint-deep,.is-style-lit-panel,.chapter.c-dark{
  background:linear-gradient(150deg,var(--royal-deep),var(--royal-ink))}
.hero-cine::after,.page-hero::after{
  background:linear-gradient(180deg,rgba(13,22,82,.58),rgba(13,22,82,.22) 38%,rgba(13,22,82,.93)),
             radial-gradient(66% 62% at 80% 16%,rgba(79,214,172,.34),transparent 62%)}
.phase::after,.feature::after,.breakband::after,.rel .rimg::after,.pc::after,.vcard .vimg::after{
  background:linear-gradient(180deg,rgba(13,22,82,.06) 26%,rgba(13,22,82,.9))}
.chapter.c-image::after{
  background:linear-gradient(110deg,rgba(13,22,82,.95),rgba(13,22,82,.6) 55%,rgba(13,22,82,.28))}

/* ---------- light surfaces alternate blue-tint and mint-tint ---------- */
.chapter.c-tint,.md-section.tint,.related,.page-banner{background:var(--cream)}
.chapter.c-soft{background:var(--cream-2)}
.md-journey{background:linear-gradient(180deg,#fff,var(--mint-tint) 42%,#fff)}
.page-banner{background:linear-gradient(165deg,var(--royal-soft),#fff 62%)}
.aurora::before{background:
  radial-gradient(46% 42% at 18% 22%,rgba(43,76,216,.24),transparent 62%),
  radial-gradient(40% 38% at 82% 14%,rgba(79,214,172,.28),transparent 64%),
  radial-gradient(44% 40% at 68% 82%,rgba(245,165,36,.18),transparent 64%),
  radial-gradient(38% 36% at 12% 78%,rgba(43,76,216,.16),transparent 62%)}

/* ---------- accents ---------- */
.eyebrow,.is-style-eyebrow{color:var(--royal-deep)!important}
.eyebrow::before,.is-style-eyebrow::before{background:var(--mint);box-shadow:0 0 10px rgba(79,214,172,.9)}
.chapter.c-dark .eyebrow,.chapter.c-image .eyebrow,.page-hero .eyebrow,
.hero-cine .eyebrow,.md-stats .eyebrow,.ctaband .eyebrow{color:var(--mint-lt)!important}

.btn-primary{background:linear-gradient(120deg,var(--royal),var(--royal-lt));
  box-shadow:0 14px 34px -14px rgba(43,76,216,.85),0 0 0 1px rgba(43,76,216,.25)}
.btn-primary:hover{background:linear-gradient(120deg,var(--mint-deep),var(--mint));color:#08301f}
.btn-navy{background:linear-gradient(120deg,var(--royal-deep),var(--royal))}
.btn-ghost:hover{border-color:var(--royal);background:var(--royal-soft)}
.head-cta{background:linear-gradient(120deg,var(--royal),var(--royal-lt))}
.head-cta:hover{background:linear-gradient(120deg,var(--mint-deep),var(--mint));color:#08301f}
.wp-block-button__link{box-shadow:0 14px 34px -16px rgba(43,76,216,.8)}

.chip{background:var(--royal-soft);color:var(--royal-deep);border-color:rgba(43,76,216,.24)}
.chip.flame{background:var(--mint-soft);color:var(--mint-deep);border-color:rgba(34,169,131,.3)}
.chip.leaf{background:var(--amber-soft);color:var(--flame-deep);border-color:rgba(245,165,36,.3)}
a{color:var(--royal-deep)}
a:hover{color:var(--mint-deep)}

.mega-head .mh-line{color:var(--royal-dark)}
.mega-head .mh-line.tint{-webkit-text-stroke-color:rgba(43,76,216,.4)}
.mega-head .mh-line.flame{background:linear-gradient(100deg,var(--royal),var(--mint-deep));
  -webkit-background-clip:text;background-clip:text;color:transparent}
.grad-text{background:linear-gradient(100deg,var(--royal-deep) 6%,var(--royal) 40%,var(--mint-deep) 92%);
  -webkit-background-clip:text;background-clip:text;color:transparent}

.md-card .ic{background:var(--royal-soft);border-color:rgba(43,76,216,.2)}
.md-card .ic svg{stroke:var(--royal-deep)}
.md-card.flame .ic{background:var(--mint-soft);border-color:rgba(34,169,131,.24)}
.md-card.flame .ic svg{stroke:var(--mint-deep)}
.md-card.navy .ic{background:var(--amber-soft);border-color:rgba(245,165,36,.26)}
.md-card.navy .ic svg{stroke:var(--flame-deep)}
.md-card::before,.prog::before,.person::before,.campus::before{
  background:linear-gradient(150deg,rgba(43,76,216,.5),rgba(255,255,255,0) 40%,rgba(79,214,172,.5))}
.md-card::after{background:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),rgba(43,76,216,.1),transparent 62%)}
.md-card .tag,.tl-item .yr,.vcard .vk{color:var(--mint-deep)}

.fs.turq{background:linear-gradient(140deg,var(--royal-deep),var(--royal-ink))}
.fs.turq .fk{color:var(--mint-lt)}
.fs.flame{background:linear-gradient(140deg,var(--mint-deep),var(--mint))}
.fs.flame .fk{color:rgba(255,255,255,.86)}
.fs b,.sp b,.fact-chip b,.pillar-strip .p b{color:var(--royal-dark)}
.stat b{background:linear-gradient(120deg,#fff,var(--mint-lt));-webkit-background-clip:text;background-clip:text}
.stat b .suf{color:var(--mint)}
.stat{border-color:rgba(255,255,255,.16)}

.askblock q,.askblock .q{border-left-color:var(--mint);color:var(--royal-dark)}
.askblock .lead{color:var(--royal-deep)}
.vwords span{border-color:var(--line-strong);color:var(--royal-dark)}
.vwords span:hover{background:var(--royal);border-color:var(--royal);color:#fff}
.chapter.c-image .vwords span:hover{background:var(--mint);color:#08301f;border-color:var(--mint)}

.toc a:hover,.toc a.on{background:linear-gradient(90deg,var(--royal-soft),transparent);
  color:var(--royal-deep);border-left-color:var(--mint)}
.blk > h2::before{color:var(--mint-deep)}
.panel::before{background:linear-gradient(var(--royal),var(--mint))}
.panel .pico{background:var(--royal-soft);border-color:rgba(43,76,216,.2)}
.panel .pico svg{stroke:var(--royal-deep)}
.checklist li::before{background:var(--mint);box-shadow:0 0 0 4px var(--mint-soft)}
.chapter.c-image .checklist li::before,.tint-deep .checklist li::before{
  background:var(--mint);box-shadow:0 0 0 4px rgba(79,214,172,.24)}
.ulist li b{color:var(--royal-deep)}

.track-wrap .rail-lit{background:linear-gradient(90deg,var(--royal),var(--mint))}
.track-wrap .rail-lit{box-shadow:0 0 22px rgba(79,214,172,.6),0 0 44px rgba(43,76,216,.3)}
.stage.lit .dot{border-color:var(--mint);background:var(--mint);box-shadow:0 0 0 7px var(--mint-soft)}
.track-wrap .rail-flame{box-shadow:0 0 0 5px rgba(255,255,255,.92),0 0 26px rgba(79,214,172,.7),var(--sh-md)}

.campus .band{background:linear-gradient(130deg,var(--royal-deep),var(--royal-lt))}
.campus.itak .band{background:linear-gradient(130deg,var(--royal-deep),var(--mint-deep))}
.cred .cm,.person .av,.md-quote .av,.pc{background:linear-gradient(140deg,var(--royal-deep),var(--mint-deep))}
.prog::after{background:var(--royal)}
.prog.p2::after{background:var(--mint)}
.prog.p3::after{background:var(--royal-deep)}
.prog.p4::after{background:var(--amber)}
.pcard::before{background:linear-gradient(90deg,var(--royal),var(--mint))}
.pcard .badge{background:var(--royal-soft);color:var(--royal-deep)}
.step .n{background:var(--royal-deep)}
.step:nth-child(2) .n{background:var(--royal)}
.step:nth-child(3) .n{background:var(--mint-deep)}
.step:nth-child(4) .n{background:var(--amber)}
.step:nth-child(5) .n{background:var(--royal-dark)}
.timeline .tl-item::before{border-color:var(--royal)}
.timeline .tl-item:nth-child(even)::before{border-color:var(--mint)}
.wp-block-table th{background:var(--royal-deep)}
.wp-block-table tr:nth-child(even) td{background:var(--cream)}
.entry-content blockquote{border-left-color:var(--mint);color:var(--royal-dark)}
.faq summary::after{border-color:var(--mint-deep)}
.faq summary:hover{color:var(--royal-deep)}
.form-index a:hover{border-color:var(--royal);background:var(--royal-soft);color:var(--royal-deep)}
.form-index a::before{background:var(--mint)}
.md-header .wp-block-navigation .wp-block-navigation-item__content:hover,
.prev-nav .nav-item>a:hover,.prev-nav .nav-item.is-active>a{color:var(--royal-deep);background:var(--royal-soft)}
.mm-head{color:var(--royal-deep)}
.mm-sub:hover{background:var(--royal-soft);color:var(--royal-deep);border-left-color:var(--mint)}
.md-footer h4{color:var(--mint-lt)}
.md-footer a::before{background:var(--mint)}
.md-footer a:hover::before{background:var(--mint-lt);box-shadow:0 0 12px rgba(79,214,172,.9)}
.md-footer a:hover{text-decoration-color:var(--mint)}
.f-campus b,.cta-lines b,.form-aside .contact-line b{color:var(--mint-lt)}
.md-progress{background:linear-gradient(90deg,var(--royal),var(--mint))}
.dock .d-tour{background:linear-gradient(120deg,var(--royal),var(--royal-lt))}
.dock .d-apply{background:var(--mint-deep)}
.mosaic .tile:nth-child(1){background-image:linear-gradient(150deg,var(--royal-deep),var(--royal-lt))}
.mosaic .tile:nth-child(2){background-image:linear-gradient(150deg,var(--royal),var(--mint))}
.mosaic .tile:nth-child(3){background-image:linear-gradient(150deg,var(--mint-deep),var(--mint-lt))}
.mosaic .tile:nth-child(4){background-image:linear-gradient(110deg,var(--royal-deep),var(--royal) 58%,var(--mint))}
.phase .pic,.hero-cine .chip{border-color:rgba(255,255,255,.36)}
.phase .age,.feature .kicker,.pc .pck{color:var(--mint-lt)}

/* ============================================================
   LAYER 8 — readability lock
   Literal colour values for every piece of text that sits on a
   dark surface. No custom properties here on purpose: some
   viewers and forced-dark-mode engines fail to resolve var()
   and fall back to inherited dark text, which made footer
   headings and links unreadable.
   ============================================================ */

:root{color-scheme:light}
html{color-scheme:light}

/* ---- footer ---- */
.md-footer{background:linear-gradient(168deg,#1e35a8,#0d1652 72%);color:#e8edff}
.md-footer h4{color:#9df0d8;border-bottom:1px solid rgba(255,255,255,.26)}
.md-footer a{color:#eef2ff}
.md-footer a:hover,.md-footer a:focus-visible{color:#ffffff;background:rgba(255,255,255,.1)}
.md-footer a::before{background:#5fe0bb}
.md-footer a:hover::before{background:#9df0d8;box-shadow:0 0 12px rgba(95,224,187,.95)}
.md-footer .f-about p{color:#dbe3fb}
.md-footer .f-campus{color:#d3dcf8}
.md-footer .f-campus b{color:#9df0d8}
.md-footer .f-base{color:#c8d2f2;border-top:1px solid rgba(255,255,255,.24)}
.md-footer .f-base a{color:#9df0d8}
.socials a{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.42);color:#ffffff}
.socials a:hover{background:#5fe0bb;border-color:#5fe0bb;color:#07322a}
.socials svg{fill:currentColor}

/* ---- top bar ---- */
.md-topbar{color:#dbe3fb}
.md-topbar a{color:#dbe3fb}
.md-topbar a:hover{color:#9df0d8}
.md-topbar .pill{color:#9df0d8;border-color:rgba(157,240,216,.55)}
.md-topbar .pill:hover{background:#5fe0bb;border-color:#5fe0bb;color:#07322a}

/* ---- ticker ---- */
.md-ticker span{color:#eef2ff}
.md-ticker span::after{color:#5fe0bb}

/* ---- dark bands: stats, cta, deep chapters, image chapters ---- */
.md-stats,.ctaband,.chapter.c-dark,.md-section.tint-deep,.chapter.c-image,
.hero-cine,.page-hero,.form-aside,.is-style-lit-panel{color:#eef2ff}
.md-stats h2,.ctaband h2,.chapter.c-dark h2,.chapter.c-dark h3,.chapter.c-image h2,
.chapter.c-image h3,.hero-cine h1,.page-hero h1,.form-aside h2,.form-aside h3,
.md-section.tint-deep h2,.md-section.tint-deep h3,.is-style-lit-panel h2,
.is-style-lit-panel h3{color:#ffffff}
.md-stats p,.ctaband p,.chapter.c-dark p,.chapter.c-image p,.form-aside p,
.md-section.tint-deep p,.is-style-lit-panel p{color:#dbe3fb}
.md-stats .eyebrow,.ctaband .eyebrow,.chapter.c-dark .eyebrow,.chapter.c-image .eyebrow,
.hero-cine .eyebrow,.page-hero .eyebrow,.md-section.tint-deep .eyebrow{color:#9df0d8}
.md-stats .eyebrow::before,.ctaband .eyebrow::before,.chapter.c-dark .eyebrow::before,
.chapter.c-image .eyebrow::before,.hero-cine .eyebrow::before,.page-hero .eyebrow::before{background:#5fe0bb}
.stat span{color:#c8d2f2}
.stat b{color:#ffffff;-webkit-text-fill-color:#ffffff;background:none}
.stat b .suf{color:#5fe0bb;-webkit-text-fill-color:#5fe0bb}
.cta-lines li{color:#eef2ff;border-bottom-color:rgba(255,255,255,.22)}
.cta-lines b{color:#9df0d8}
.cta-lines a{color:#ffffff}
.cta-lines a:hover{color:#9df0d8}
.form-aside .contact-line{color:#ffffff}
.form-aside .contact-line b{color:#9df0d8}
.form-aside .contact-line:hover{color:#9df0d8}

/* ---- mastheads ---- */
.hero-cine .hero-sub,.page-hero .lede{color:#e2e9ff}
.hero-cine .mh-line,.page-hero .mh-line{color:#ffffff;-webkit-text-fill-color:#ffffff;background:none}
.hero-cine .mh-line.tint,.page-hero .mh-line.tint{color:transparent;-webkit-text-fill-color:transparent;
  -webkit-text-stroke:1.5px rgba(255,255,255,.6)}
.page-hero .breadcrumbs{color:#c8d2f2}
.page-hero .breadcrumbs a{color:#eef2ff}
.page-hero .breadcrumbs a:hover{color:#9df0d8}
.hero-cine .chip,.page-hero .chip{background:rgba(255,255,255,.2);color:#ffffff;border-color:rgba(255,255,255,.45)}
.hero-foot .hf b{color:#ffffff}
.hero-foot .hf span{color:#c8d2f2}
.scrollcue{color:#c8d2f2}
.playbtn{color:#ffffff}

/* ---- image-overlay cards ---- */
.phase h3,.feature h3,.pc h3,.breakband p{color:#ffffff}
.phase p,.feature p,.pc p{color:#dbe3fb}
.phase .age,.feature .kicker,.pc .pck,.breakband cite{color:#9df0d8}
.phase .go{color:#9df0d8}
.mosaic .tile,.campus .band b{color:#ffffff}
.ph-cap{color:#ffffff;background:rgba(13,22,82,.66);border:1px solid rgba(255,255,255,.34)}

/* ---- statement chapter ---- */
.chapter.c-image .vwords span{background:rgba(255,255,255,.16);color:#ffffff;border-color:rgba(255,255,255,.4)}
.chapter.c-image .vwords span:hover{background:#5fe0bb;color:#07322a;border-color:#5fe0bb}
.chapter.c-image .checklist li{color:#dbe3fb}
.chapter.c-dark .askblock q,.chapter.c-dark .askblock .q,
.chapter.c-image .askblock q{color:#ffffff}
.chapter.c-dark .askblock .lead{color:#9df0d8}
.fs.turq,.fs.turq b,.fs.turq p{color:#ffffff}
.fs.turq .fk{color:#9df0d8}
.fs.flame,.fs.flame b,.fs.flame p{color:#07322a}
.fs.flame .fk{color:rgba(7,50,42,.7)}

/* ---- dock and modal ---- */
.dock a,.dock button{color:#ffffff}
.dock .d-apply{background:#1a8f6e;color:#ffffff}
.dock .d-tour{background:#2b4cd8;color:#ffffff}
.dock .d-wa{background:#1da851;color:#ffffff}

/* ---- light surfaces: guarantee dark ink ---- */
.chapter,.md-section,.entry-content,.md-card,.panel,.vcard,.rel,.pcard,.fs,.toc{color:#16205c}
.chapter.c-dark,.chapter.c-image,.md-stats,.ctaband,.md-section.tint-deep{color:#eef2ff}
.md-card p,.panel p,.vcard p,.rel p,.pcard>p,.entry-content p,.entry-content li{color:#4b5788}
.md-card h3,.panel h3,.vcard h3,.rel h3,.pcard h3,.entry-content h2,.entry-content h3{color:#16205c}
.checklist li,.ulist li{color:#4b5788}
.chapter.c-image .checklist li,.chapter.c-dark .checklist li{color:#dbe3fb}

/* ============================================================
   LAYER 9 — WordPress wrapper neutralisation
   The chapters are full-bleed and carry their own .md-wrap.
   WordPress adds width limits and vertical margins around block
   content, which clamped every coloured band to 1240px and threw
   the spacing out. These rules hand layout back to the theme so
   WordPress output matches the reference build exactly.
   ============================================================ */

.wp-site-blocks{padding:0;margin:0;max-width:none}
.wp-site-blocks > *{margin-block-start:0;margin-block-end:0}
.wp-block-template-part{margin:0}

/* post content is the page: no width limit, no padding, no stacking margin */
.wp-block-post-content{max-width:none;width:auto;margin:0;padding:0}
.wp-block-post-content > *{margin-block:0}
main.wp-block-group{margin:0;padding:0;max-width:none}

/* core layout helpers must not fight the chapter system */
.chapter,.md-section,.page-hero,.hero-cine,.ctaband,.md-stats,.md-ticker,
.md-footer,.md-header,.md-topbar,.related{max-width:none;width:auto}
.is-layout-flow > .chapter,.is-layout-flow > .md-section,
.is-layout-constrained > .chapter,.is-layout-constrained > .md-section{margin-block:0}
.wp-block-group.md-wrap{max-width:1240px;margin-inline:auto}
.entry-content > *,.wp-block-post-content .blk > *{margin-block-start:1rem}
.entry-content .chapter{padding-block:0}

/* WordPress wraps html blocks in nothing, but core blocks in layout divs —
   make sure a wrapped chapter still spans the viewport */
.wp-block-group > .chapter,.wp-block-group > .page-hero,.wp-block-group > .ctaband{
  margin-inline:calc(50% - 50vw);width:100vw;max-width:100vw;padding-inline:0}
.wp-block-group > .chapter > .md-wrap,.wp-block-group > .page-hero > .md-wrap,
.wp-block-group > .ctaband > .md-wrap{padding-inline:clamp(1.1rem,4vw,2.2rem)}

/* admin bar must not hide the sticky header */
.admin-bar .md-header{top:32px}
@media(max-width:782px){.admin-bar .md-header{top:46px}}

/* editor preview: give the canvas the same field as the front end */
.editor-styles-wrapper{background:#fff}
.editor-styles-wrapper .chapter{max-width:none}


/* ============================================================
   LAYER 10 — navigation and content helpers
   These rules were previously only in the reference build, which
   is why the menu rendered unstyled and fully expanded once the
   theme was installed. They belong here.
   ============================================================ */

/* ---- primary navigation: mega menu, mobile drawer ---- */
.prev-nav{margin-left:auto;font-size:.9rem}
.prev-nav>ul{list-style:none;display:flex;gap:.1rem;margin:0;padding:0;align-items:center}
.prev-nav .nav-item{position:relative}
.prev-nav .nav-item>a{display:flex;align-items:center;gap:.3rem;padding:.55rem .62rem;border-radius:10px;
  color:var(--ink);text-decoration:none;font-weight:500;white-space:nowrap;transition:.2s}
.prev-nav .nav-item>a:hover,.prev-nav .nav-item.is-active>a{color:var(--navy);background:var(--cyan-soft)}
.prev-nav .caret{width:10px;height:10px;opacity:.55}
.megamenu{position:absolute;top:calc(100% + 12px);left:50%;translate:-50% 0;min-width:300px;
  background:rgba(255,255,255,.97);backdrop-filter:blur(18px);border:1px solid var(--line);
  border-radius:20px;padding:1.1rem;box-shadow:0 40px 80px -40px rgba(16,27,76,.55);
  opacity:0;visibility:hidden;transform:translateY(-8px);transition:.24s var(--ease);z-index:95}
.megamenu::before{content:"";position:absolute;top:-14px;left:0;right:0;height:14px}
.megamenu.mm-wide{min-width:720px}
.mm-inner{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.megamenu.mm-wide .mm-inner{grid-template-columns:repeat(4,1fr)}
.nav-item:hover .megamenu,.nav-item:focus-within .megamenu{opacity:1;visibility:visible;transform:translateY(0)}
.mm-head{display:block;font-family:var(--ff-display);font-weight:700;font-size:.9rem;color:var(--navy);
  text-decoration:none;padding:.3rem 0 .5rem;border-bottom:1px solid var(--line);margin-bottom:.4rem}
.mm-head:hover{color:var(--cyan-deep)}
.mm-sub{display:block;padding:.32rem .5rem;font-size:.83rem;color:var(--ink-2);text-decoration:none;
  border-radius:7px;border-left:2px solid transparent;transition:.16s}
.mm-sub:hover{background:var(--cyan-soft);color:var(--navy);border-left-color:var(--flame);padding-left:.72rem}
.mm-more{color:var(--flame-deep);font-weight:600}
.nav-toggle{display:none;margin-left:auto;width:44px;height:44px;border:1px solid var(--line);
  border-radius:12px;background:#fff;cursor:pointer;flex-direction:column;gap:4px;align-items:center;justify-content:center}
.nav-toggle span{display:block;width:18px;height:2px;background:var(--navy);border-radius:2px;transition:.25s}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(6px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
@media(max-width:1240px){
  .nav-toggle{display:flex}
  .prev-nav{position:fixed;inset:0;background:#fff;padding:5.6rem 1.2rem 3rem;overflow-y:auto;display:none;margin:0;z-index:78}
  .prev-nav.open{display:block}
  .prev-nav>ul{flex-direction:column;align-items:stretch;gap:0}
  .prev-nav .nav-item>a{padding:.9rem .4rem;border-bottom:1px solid var(--line);border-radius:0;
    font-family:var(--ff-display);font-weight:700;font-size:1.05rem}
  .prev-nav .caret{margin-left:auto;transition:transform .25s}
  .nav-item.open>a .caret{transform:rotate(180deg)}
  .megamenu{position:static;opacity:1;visibility:visible;transform:none;box-shadow:none;border:0;
    min-width:0;padding:.3rem 0 .9rem .7rem;display:none;background:transparent;backdrop-filter:none}
  .megamenu.mm-wide{min-width:0}
  .nav-item.open .megamenu{display:block}
  .megamenu .mm-inner{grid-template-columns:1fr!important;gap:.5rem}
}

/* ---- layout helpers used by generated pages ---- */
.gal{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1rem;margin-block:1.4rem}
.gal .ph{margin:0}
.post-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(272px,1fr));gap:1.2rem}
.pagenav{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-top:1.6rem}
.callout{border-left:3px solid var(--flame);background:var(--flame-soft);padding:1rem 1.2rem;
  border-radius:0 var(--r-md) var(--r-md) 0;font-size:.94rem;color:var(--ink-2);margin-block:1.4rem}
.entry-content .md-card,.entry-content .card-grid,.entry-content .steps,.entry-content .faq,
.entry-content .timeline,.entry-content .people-grid,.entry-content .prog-grid,.entry-content .gal,
.entry-content .campus-grid,.entry-content .md-form-card,.entry-content .facility-tags{margin-block:1.6rem}
.entry-content{max-width:none}
.entry-content>p,.entry-content>h2,.entry-content>h3,.entry-content>blockquote{max-width:76ch}
.entry-content .prog .ph{aspect-ratio:16/9}
.stage h3 a{color:inherit;text-decoration:none}
.stage h3 a:hover{color:var(--cyan-deep)}
.page-banner{position:relative}
.page-banner .md-wrap{position:relative}

/* ============================================================
   LAYER 10 — footer and dark-surface text, made unoverridable
   Some browsers apply an automatic dark-mode transform that
   rewrites `color` on text it believes is light-on-light. That
   is what dimmed the footer links and headings to near-black.
   `-webkit-text-fill-color` is not rewritten by that transform,
   and `forced-color-adjust` opts the region out entirely.
   ============================================================ */

:root{color-scheme:only light}

/* --- footer: raise the floor so every colour has room --- */
body .md-footer{
  background:linear-gradient(168deg,#24379e 0%,#182a7a 55%,#101c56 100%);
  color:#f2f5ff;
  forced-color-adjust:none;
}
body .md-footer *{forced-color-adjust:none}

body .md-footer h4{
  color:#8bf3d4 !important;
  -webkit-text-fill-color:#8bf3d4 !important;
  opacity:1 !important;filter:none !important;
  font-size:.72rem;letter-spacing:.2em;
  border-bottom:1px solid rgba(255,255,255,.3);
}
body .md-footer a{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  opacity:1 !important;filter:none !important;
  font-size:.94rem;font-weight:500;
}
body .md-footer a:hover,
body .md-footer a:focus-visible{
  color:#8bf3d4 !important;
  -webkit-text-fill-color:#8bf3d4 !important;
  background:rgba(255,255,255,.12);
  text-decoration:underline;text-underline-offset:3px;
}
body .md-footer a::before{background:#8bf3d4;opacity:1}
body .md-footer a:hover::before{background:#ffffff;box-shadow:0 0 12px rgba(139,243,212,.95)}

body .md-footer p,
body .md-footer .f-about p{
  color:#e4eaff !important;-webkit-text-fill-color:#e4eaff !important;opacity:1 !important}
body .md-footer .f-campus{
  color:#e4eaff !important;-webkit-text-fill-color:#e4eaff !important}
body .md-footer .f-campus b{
  color:#8bf3d4 !important;-webkit-text-fill-color:#8bf3d4 !important}
body .md-footer .f-base{
  color:#d6ddfa !important;-webkit-text-fill-color:#d6ddfa !important;
  border-top:1px solid rgba(255,255,255,.3)}
body .md-footer .f-base a{
  color:#8bf3d4 !important;-webkit-text-fill-color:#8bf3d4 !important}

/* social buttons: solid enough to read at a glance */
body .md-footer .socials a{
  background:rgba(255,255,255,.22);
  border:1px solid rgba(255,255,255,.55);
  color:#ffffff !important;-webkit-text-fill-color:#ffffff !important;
  font-weight:600}
body .md-footer .socials a:hover{
  background:#8bf3d4;border-color:#8bf3d4;
  color:#08322a !important;-webkit-text-fill-color:#08322a !important}
body .md-footer .socials svg{fill:currentColor}
body .md-footer .socials a::before{display:none}

/* --- the same protection on every other dark band --- */
body .md-topbar,body .md-ticker,body .md-stats,body .ctaband,body .form-aside,
body .chapter.c-dark,body .chapter.c-image,body .page-hero,body .hero-cine,
body .md-section.tint-deep{forced-color-adjust:none}

body .md-topbar,body .md-topbar a{color:#e4eaff !important;-webkit-text-fill-color:#e4eaff !important}
body .md-topbar a:hover,body .md-topbar .pill{color:#8bf3d4 !important;-webkit-text-fill-color:#8bf3d4 !important}
body .md-ticker span{color:#f2f5ff !important;-webkit-text-fill-color:#f2f5ff !important}

body .md-stats .stat span,body .ctaband p,body .chapter.c-dark p,
body .chapter.c-image p,body .form-aside p{
  color:#e4eaff !important;-webkit-text-fill-color:#e4eaff !important}
body .md-stats .stat b{color:#ffffff !important;-webkit-text-fill-color:#ffffff !important;background:none}
body .md-stats .stat b .suf{color:#8bf3d4 !important;-webkit-text-fill-color:#8bf3d4 !important}

body .ctaband h2,body .chapter.c-dark h2,body .chapter.c-dark h3,
body .chapter.c-image h2,body .chapter.c-image h3,body .form-aside h2,
body .page-hero h1,body .hero-cine h1{color:#ffffff !important;-webkit-text-fill-color:#ffffff !important}
body .page-hero .mh-line,body .hero-cine .mh-line{
  color:#ffffff !important;-webkit-text-fill-color:#ffffff !important;background:none}
body .page-hero .mh-line.tint,body .hero-cine .mh-line.tint{
  color:transparent !important;-webkit-text-fill-color:transparent !important;
  -webkit-text-stroke:1.5px rgba(255,255,255,.62)}
body .page-hero .lede,body .hero-cine .hero-sub{
  color:#e9edff !important;-webkit-text-fill-color:#e9edff !important}
body .page-hero .breadcrumbs{color:#d6ddfa !important}
body .page-hero .breadcrumbs a{color:#ffffff !important;-webkit-text-fill-color:#ffffff !important}

body .ctaband .cta-lines li,body .ctaband .cta-lines a,
body .form-aside .contact-line{color:#ffffff !important;-webkit-text-fill-color:#ffffff !important}
body .ctaband .cta-lines b,body .form-aside .contact-line b{
  color:#8bf3d4 !important;-webkit-text-fill-color:#8bf3d4 !important}

body .md-stats .eyebrow,body .ctaband .eyebrow,body .chapter.c-dark .eyebrow,
body .chapter.c-image .eyebrow,body .page-hero .eyebrow,body .hero-cine .eyebrow{
  color:#8bf3d4 !important;-webkit-text-fill-color:#8bf3d4 !important}

body .phase h3,body .feature h3,body .pc h3,body .breakband p,
body .campus .band b,body .ph-cap{color:#ffffff !important;-webkit-text-fill-color:#ffffff !important}
body .phase p,body .feature p,body .pc p{color:#e4eaff !important;-webkit-text-fill-color:#e4eaff !important}
body .phase .age,body .feature .kicker,body .pc .pck,body .breakband cite,
body .phase .go{color:#8bf3d4 !important;-webkit-text-fill-color:#8bf3d4 !important}

/* Windows high-contrast mode: let the OS palette through cleanly */
@media (forced-colors: active){
  body .md-footer,body .md-footer a,body .md-footer h4{forced-color-adjust:auto}
  body .md-footer a{color:LinkText !important;-webkit-text-fill-color:LinkText !important}
  body .md-footer h4{color:CanvasText !important;-webkit-text-fill-color:CanvasText !important}
}

/* ---- mega menu: four headed columns, wrapping to further rows ---- */
.megamenu.mm-wide{min-width:min(980px,92vw)}
.megamenu.mm-wide .mm-inner{grid-template-columns:repeat(4,minmax(0,1fr));gap:1.1rem 1.4rem}
.megamenu .mm-inner{grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.mm-col{min-width:0}
.mm-head{display:block;font-size:.9rem;line-height:1.25;padding-bottom:.5rem;margin-bottom:.45rem}
.mm-col:has(> .mm-head:only-child) .mm-head{border-bottom-color:transparent}
.megamenu.mm-wide .mm-feature{grid-column:span 1;min-height:0}
@media(max-width:1240px){
  .megamenu.mm-wide{min-width:0}
  .megamenu.mm-wide .mm-inner{grid-template-columns:1fr}
}

/* ============================================================
   LAYER 11 — headings and buttons on dark bands
   Layer 10 covered h2/h3 but the oversized display headings are
   .mega-head > .mh-line spans, and buttons were never covered at
   all, so both were still being rewritten by dark-mode transforms.
   ============================================================ */

/* --- oversized display headings, wherever they sit on a dark band --- */
body .ctaband .mh-line,
body .md-stats .mh-line,
body .chapter.c-dark .mh-line,
body .chapter.c-image .mh-line,
body .page-hero .mh-line,
body .hero-cine .mh-line,
body .md-section.tint-deep .mh-line{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
  background:none !important;
  opacity:1 !important;
}
body .ctaband .mh-line.tint,
body .md-stats .mh-line.tint,
body .chapter.c-dark .mh-line.tint,
body .chapter.c-image .mh-line.tint,
body .page-hero .mh-line.tint,
body .hero-cine .mh-line.tint,
body .md-section.tint-deep .mh-line.tint{
  color:transparent !important;
  -webkit-text-fill-color:transparent !important;
  -webkit-text-stroke:1.6px rgba(255,255,255,.72);
}
body .ctaband .mh-sub,
body .chapter.c-dark .mh-sub,
body .chapter.c-image .mh-sub{
  color:#e4eaff !important;-webkit-text-fill-color:#e4eaff !important}

/* --- buttons: readable on any background, light or dark --- */
body .btn,
body .wp-block-button__link,
body .head-cta,
body .dock a,
body .dock button{
  forced-color-adjust:none;
  opacity:1 !important;
}
body .btn-primary,
body .btn-navy,
body .head-cta,
body .wp-block-button__link:not(.is-style-outline),
body .dock .d-tour,
body .dock .d-wa,
body .dock .d-apply{
  color:#ffffff !important;
  -webkit-text-fill-color:#ffffff !important;
}
body .btn-primary .arw,
body .btn-navy .arw,
body .head-cta .arw{color:#ffffff !important;-webkit-text-fill-color:#ffffff !important}

body .btn-primary:hover,
body .btn-primary:focus-visible{
  color:#07322a !important;-webkit-text-fill-color:#07322a !important}
body .btn-primary:hover .arw{color:#07322a !important;-webkit-text-fill-color:#07322a !important}

/* outline / ghost buttons on light surfaces */
body .btn-ghost,
body .wp-block-button.is-style-outline .wp-block-button__link{
  color:#16257e !important;-webkit-text-fill-color:#16257e !important;
  background:#ffffff;border-color:#c3d0f0}
body .btn-ghost:hover{
  color:#16257e !important;-webkit-text-fill-color:#16257e !important;
  background:#e8ecfd;border-color:#2b4cd8}

/* ghost buttons sitting on a dark band need the inverse */
body .ctaband .btn-ghost,
body .md-stats .btn-ghost,
body .chapter.c-dark .btn-ghost,
body .chapter.c-image .btn-ghost,
body .page-hero .btn-ghost,
body .hero-cine .btn-ghost{
  background:rgba(255,255,255,.16);
  border-color:rgba(255,255,255,.55);
  color:#ffffff !important;-webkit-text-fill-color:#ffffff !important}
body .ctaband .btn-ghost:hover,
body .md-stats .btn-ghost:hover,
body .chapter.c-dark .btn-ghost:hover,
body .chapter.c-image .btn-ghost:hover,
body .page-hero .btn-ghost:hover,
body .hero-cine .btn-ghost:hover{
  background:#ffffff;border-color:#ffffff;
  color:#16257e !important;-webkit-text-fill-color:#16257e !important}

/* --- the contact list in the CTA band --- */
body .ctaband .cta-lines li,
body .ctaband .cta-lines a,
body .ctaband .cta-lines span{
  color:#ffffff !important;-webkit-text-fill-color:#ffffff !important}
body .ctaband .cta-lines b{
  color:#8bf3d4 !important;-webkit-text-fill-color:#8bf3d4 !important}
body .ctaband .cta-lines a:hover{
  color:#8bf3d4 !important;-webkit-text-fill-color:#8bf3d4 !important;
  text-decoration:underline;text-underline-offset:3px}

/* --- play button and scroll cue --- */
body .playbtn,body .playbtn span,body .scrollcue{
  color:#ffffff !important;-webkit-text-fill-color:#ffffff !important}
body .playbtn small{color:#d6ddfa !important;-webkit-text-fill-color:#d6ddfa !important}

/* --- chips on dark mastheads --- */
body .hero-cine .chip,body .page-hero .chip{
  color:#ffffff !important;-webkit-text-fill-color:#ffffff !important;
  background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.48)}

/* --- value pills on the statement chapter --- */
body .chapter.c-image .vwords span{
  color:#ffffff !important;-webkit-text-fill-color:#ffffff !important}
body .chapter.c-image .vwords span:hover{
  color:#07322a !important;-webkit-text-fill-color:#07322a !important}

/* --- headline figures --- */
body .md-stats .stat b,body .hero-foot .hf b{
  color:#ffffff !important;-webkit-text-fill-color:#ffffff !important;background:none !important}
body .md-stats .stat b .suf{color:#8bf3d4 !important;-webkit-text-fill-color:#8bf3d4 !important}
body .hero-foot .hf span{color:#d6ddfa !important;-webkit-text-fill-color:#d6ddfa !important}

/* primary button gradient darkened: the light end failed AA with white text */
body .btn-primary,
body .head-cta,
body .dock .d-tour,
body .wp-block-button__link:not(.is-style-outline){
  background:linear-gradient(120deg,#1e35a8,#3a55dc);
  box-shadow:0 14px 34px -14px rgba(30,53,168,.85),0 0 0 1px rgba(30,53,168,.28);
}
body .btn-primary:hover,
body .head-cta:hover,
body .wp-block-button__link:not(.is-style-outline):hover{
  background:linear-gradient(120deg,#22a983,#4fd6ac);
  box-shadow:0 18px 40px -16px rgba(34,169,131,.8);
}

/* dock: WhatsApp and Enquire greens failed AA with white text */
body .dock .d-wa{background:#12813d}
body .dock .d-apply{background:#116b52}

/* ============================================================
   LAYER 12 — overflow and narrow-screen behaviour
   Grid and flex children default to min-width:auto, so a long
   heading refuses to shrink; combined with overflow:hidden on the
   card, the text was being clipped rather than wrapped. These
   rules let every child shrink and every word wrap.
   ============================================================ */

/* --- let grid and flex children actually shrink --- */
.card-grid > *,.card-grid.two > *,.card-grid.four > *,
.vcards > *,.bento > *,.factstrip > *,.prog-grid > *,
.rel-grid > *,.people-grid > *,.quote-grid > *,.steps > *,
.pagelayout > *,.explainer > *,.md-form-card > *,.campus-grid > *,
.phases > *,.stat-grid > *,.statpair > *,.gstrip > *,.form-index > *,
.ch-intro > *,.hero-grid > *,.md-split > *,.fgrid > *,
.panel > *,.mm-inner > *{min-width:0}

.panel,.md-card,.vcard,.fs,.prog,.pcard,.rel,.person,.step,
.feature,.phase,.pc,.campus{min-width:0}

/* --- wrap long words instead of overflowing --- */
h1,h2,h3,h4,p,li,a,summary,figcaption,blockquote,
.mh-line,.fs b,.stat b,.sp b,.mega-head,.ch-intro h2{
  overflow-wrap:break-word;word-break:normal;hyphens:auto}
.mh-line{white-space:normal}
.entry-content,.chapter,.md-card,.panel,.vcard,.fs{overflow-wrap:break-word}

/* headings inside cards should not be clipped by the card's rounded corners */
.panel{overflow:visible;border-radius:var(--r-xl)}
.panel::before{border-radius:var(--r-xl) 0 0 var(--r-xl)}

/* --- panels stack sooner, and their list stops splitting into columns --- */
@media(max-width:980px){
  .panel{grid-template-columns:1fr;gap:.9rem}
  .panel .checklist{columns:1}
}
@media(max-width:1180px){
  .panel .checklist{columns:1}
}

/* --- contents rail: stack before it squeezes the reading column --- */
@media(max-width:1180px){
  .pagelayout{grid-template-columns:1fr}
  .toc{position:static;margin-bottom:1.6rem;background:var(--cream);
    border:1px solid var(--line);border-radius:var(--r-lg);padding:1.1rem 1.2rem}
  .toc ol{columns:2;column-gap:1.6rem}
  .toc li{break-inside:avoid}
}
@media(max-width:620px){.toc ol{columns:1}}

/* --- headline type: gentler floor on small screens --- */
@media(max-width:700px){
  h2{font-size:clamp(1.5rem,6vw,2rem)}
  h3{font-size:clamp(1.08rem,4.4vw,1.3rem)}
  .ch-intro h2{font-size:clamp(1.45rem,6vw,2rem)}
  .mega-head .mh-line{font-size:clamp(2.1rem,13vw,3.4rem);letter-spacing:-.04em}
  .mega-head .mh-line.shift{margin-left:0}
  .fs b{font-size:clamp(1.6rem,8vw,2.2rem)}
  .stat b,.sp b{font-size:clamp(2rem,10vw,2.8rem)}
  .hero-foot .hf b{font-size:1.5rem}
  .page-hero .lede,.hero-cine .hero-sub{font-size:1rem}
}

/* --- narrow-screen layout corrections --- */
@media(max-width:880px){
  .explainer{grid-template-columns:1fr}
  .explainer .ex-media{aspect-ratio:16/10}
  .cta-split{grid-template-columns:1fr}
  .md-form-card{grid-template-columns:1fr}
  .gstrip{grid-template-columns:repeat(2,1fr)}
  .gstrip .g:nth-child(even){margin-top:0}
  .bento{grid-template-columns:repeat(2,1fr)}
  .bento .b-2,.bento .b-3,.bento .b-4{grid-column:span 2}
  .bento .b-tall{grid-row:span 1}
  .feature{min-height:190px}
}
@media(max-width:600px){
  .factstrip{grid-template-columns:1fr;gap:.8rem}
  .fs,.fs.wide,.fs.full{grid-column:span 1;min-height:0}
  .bento,.gstrip,.phases,.card-grid,.card-grid.two,.card-grid.four,
  .vcards,.prog-grid,.rel-grid,.people-grid,.quote-grid,.steps{grid-template-columns:1fr}
  .bento .b-2,.bento .b-3,.bento .b-4{grid-column:span 1}
  .gstrip .g{aspect-ratio:4/3}
  .stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .chapter{padding-block:2.4rem}
  .md-wrap{padding-inline:1.1rem}
  .panel,.md-card,.vcard,.pcard{padding:1.25rem 1.1rem}
  .btnrow{flex-direction:column;align-items:stretch}
  .btnrow .btn{justify-content:center}
  .pagenav{flex-direction:column}
  .pagenav .btn{justify-content:center}
}

/* --- nothing may push the page sideways --- */
html,body{max-width:100%;overflow-x:hidden}
.wp-site-blocks,main,.chapter,.md-section,.md-wrap{max-width:100%}
img,svg,video,table{max-width:100%}
.wp-block-table{overflow-x:auto}
.wp-block-table table{min-width:520px}

/* --- the mega menu must never exceed the viewport --- */
.megamenu{max-width:min(96vw,1100px)}
.megamenu.mm-wide{max-width:min(96vw,1000px)}

/* every layout container's children may shrink — prevents the clipped
   headings seen on narrow screens, where min-width:auto stopped text wrapping */
.a-item > *,
.accred > *,
.arrow-circle > *,
.band > *,
.bento > *,
.blk > *,
.brand-link > *,
.breakband > *,
.btn > *,
.btnrow > *,
.campus-grid > *,
.card-grid > *,
.card-top > *,
.ch-intro > *,
.consent > *,
.contact-line > *,
.cred > *,
.creds > *,
.crest-wrap > *,
.cta-lines > *,
.cta-split > *,
.ctaband > *,
.explainer > *,
.eyebrow > *,
.f-base > *,
.f-grid > *,
.facility-tags > *,
.facts > *,
.factstrip > *,
.feature > *,
.fgrid > *,
.form-index > *,
.fs > *,
.gal > *,
.gstrip > *,
.hero-actions > *,
.hero-badges > *,
.hero-cine > *,
.hero-collage > *,
.hero-float > *,
.hero-foot > *,
.hero-grid > *,
.hf > *,
.inner > *,
.is-style-eyebrow > *,
.leader > *,
.leader-badge > *,
.md-form-card > *,
.md-split > *,
.md-ticker > *,
.mm-feature > *,
.mm-inner > *,
.mosaic > *,
.nav-item > *,
.open > *,
.page-hero > *,
.pagelayout > *,
.pagenav > *,
.panel > *,
.pc > *,
.pcard > *,
.pcards > *,
.people-grid > *,
.phase > *,
.phases > *,
.phases-strip > *,
.pic > *,
.pillar-strip > *,
.plinks > *,
.post-grid > *,
.prev-nav > *,
.prog-grid > *,
.quote-grid > *,
.rel-grid > *,
.sp > *,
.stages > *,
.stat-grid > *,
.stat-row > *,
.statpair > *,
.steps > *,
.tagrow > *,
.tile > *,
.toc > *,
.tourpanel > *,
.track > *,
.twin > *,
.ulist > *,
.vcard > *,
.vcards > *,
.vwords > *,
.who > *,
.wm-track > *,
.wordmarquee > *{min-width:0}

/* ============================================================
   LAYER 13 — video
   Background loops sit behind the hero and inside the explainer.
   They are decorative: muted, looping, and skipped entirely when
   the visitor asks for reduced motion or is on a metered
   connection, where the poster image is shown instead.
   ============================================================ */

.cine-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  z-index:0;pointer-events:none;background:var(--deep-3)}
.hero-cine .cine-bg{z-index:0}
.hero-cine > .md-wrap,.hero-cine .scrollcue{z-index:2}
.hero-cine::after{z-index:1}

/* explainer media becomes a real player surface */
.ex-media{position:relative;overflow:hidden}
.ex-media video,.ex-media img{position:absolute;inset:0;width:100%;height:100%;
  object-fit:cover;display:block}
.ex-media .ex-play{z-index:3}

/* --- video lightbox --- */
.vbox{position:fixed;inset:0;z-index:420;display:none;align-items:center;justify-content:center;padding:1rem}
.vbox.open{display:flex}
.vbox .veil{position:absolute;inset:0;background:rgba(13,22,82,.82);backdrop-filter:blur(6px)}
.vbox .frame{position:relative;z-index:2;width:min(1040px,100%);aspect-ratio:16/9;
  border-radius:var(--r-xl);overflow:hidden;background:#000;box-shadow:0 50px 110px -50px rgba(0,0,0,.9)}
.vbox video,.vbox iframe{width:100%;height:100%;border:0;display:block}
.vbox .x{position:absolute;top:-52px;right:0;z-index:4;width:42px;height:42px;border-radius:50%;
  border:1px solid rgba(255,255,255,.5);background:rgba(255,255,255,.14);color:#fff;
  cursor:pointer;font-size:1.2rem;line-height:1}
.vbox .x:hover{background:#fff;color:var(--deep)}
.vbox .cap{position:absolute;left:0;bottom:-38px;color:#e4eaff;font-family:var(--ff-mono);
  font-size:.68rem;letter-spacing:.14em;text-transform:uppercase}
@media(max-width:700px){.vbox .x{top:-46px}}

/* the play button reads as a control, not decoration */
.playbtn{cursor:pointer;background:none;border:0;padding:0;font:inherit;text-align:left}
.playbtn:focus-visible .pb{outline:3px solid var(--mint);outline-offset:3px}

/* poster fallback when motion is not wanted */
@media (prefers-reduced-motion:reduce){
  .cine-video{display:none}
  .ex-media video{display:none}
}

/* portrait film in the lightbox: fit the frame to the video, not the reverse */
.vbox .frame{aspect-ratio:auto;max-height:86vh;width:auto;max-width:min(1040px,100%)}
.vbox .frame video{max-height:86vh;width:auto;max-width:100%;height:auto;display:block;margin-inline:auto}
.vbox .frame iframe{width:min(1040px,92vw);aspect-ratio:16/9;height:auto}
@media(max-width:700px){.vbox .frame video{max-height:74vh}}

/* ============================================================
   LAYER 14 — image surfaces never render as blank boxes
   Every tile that carries a background-image now sits on a brand
   gradient. If a file is missing — a renamed asset, a page body
   still held from an earlier build, a slow or failed request —
   the tile reads as a deliberate coloured panel rather than an
   empty white rectangle.
   ============================================================ */

.gstrip .g,
.ph,
.vcard .vimg,
.rel .rimg,
.feature .bg,
.phase .bg,
.pc .bg,
.chapter.c-image .ci-bg,
.page-hero .ph-bg,
.hero-cine .cine-bg,
.breakband .bg,
.ex-media,
.mm-feature,
.campus .band,
.md-posts .wp-block-post > div:first-child{
  background-color:#1e35a8;
  background-image:linear-gradient(140deg,#1e35a8,#2b4cd8 55%,#4fd6ac);
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}

/* an inline style with a real photograph overrides the gradient above,
   because element styles beat stylesheet rules */

/* a subtle brand mark so an empty tile still looks intentional */
.gstrip .g::after,
.vcard .vimg::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:radial-gradient(circle at 50% 45%,rgba(255,255,255,.16) 0 14px,transparent 15px);
  background-repeat:no-repeat;background-position:center;opacity:.5}
.gstrip .g{position:relative}
.vcard .vimg{position:relative}

/* keep photographs crisp while they load */
.ph,.gstrip .g,.vcard .vimg,.rel .rimg{background-color:#16257e}

/* ============================================================
   LAYER 15 — the journey timeline, rebuilt
   A single narrow column forced every heading to wrap after two
   words and left long gaps between entries. It now reads as a
   grid of dated cards: two or three across on wider screens, one
   on a phone, with the spine kept as a connecting rule.
   ============================================================ */

.timeline{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(268px,1fr));
  gap:1.1rem;
  margin:2rem 0 0;
  padding-left:0;
  position:relative;
}
.timeline::before{display:none}

.tl-item{
  position:relative;
  padding:1.5rem 1.4rem 1.6rem;
  background:#fff;
  border:1px solid var(--line);
  border-radius:var(--r-xl);
  box-shadow:var(--sh-sm);
  transition:transform .38s var(--ease),box-shadow .38s var(--ease),border-color .38s;
  overflow:hidden;
}
.tl-item::before{
  content:"";position:absolute;left:0;right:0;top:0;height:4px;
  background:linear-gradient(90deg,#2b4cd8,#4fd6ac);
  border:0;border-radius:0;width:auto;
}
.tl-item:nth-child(even)::before{background:linear-gradient(90deg,#4fd6ac,#f5a524)}
.tl-item:nth-child(3n)::before{background:linear-gradient(90deg,#1e35a8,#2b4cd8)}
.tl-item:hover{
  transform:translateY(-5px);
  box-shadow:var(--glow-cyan);
  border-color:var(--line-strong);
}

/* the year reads as a marker, not body text */
.tl-item .yr{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.14em;
  text-transform:uppercase;color:#1e35a8;
  background:#e8ecfd;border:1px solid rgba(43,76,216,.2);
  padding:.32rem .8rem;border-radius:999px;margin-bottom:.9rem;
}
.tl-item .yr::before{
  content:"";width:7px;height:7px;border-radius:50%;
  background:#4fd6ac;box-shadow:0 0 0 3px rgba(79,214,172,.28);
}

/* headings sized for a card, so they stop breaking after two words */
.tl-item h3{
  font-size:clamp(1.08rem,1.5vw,1.28rem);
  line-height:1.2;letter-spacing:-.018em;
  margin:0 0 .55rem;color:var(--deep);
  overflow-wrap:break-word;hyphens:none;
}
.tl-item p{
  font-size:.93rem;line-height:1.6;color:var(--ink-2);margin:0;
}

/* a light connecting rule behind the first row on wide screens */
@media(min-width:900px){
  .timeline::after{
    content:"";position:absolute;left:1.4rem;right:1.4rem;top:2px;height:1px;
    background:linear-gradient(90deg,transparent,rgba(43,76,216,.25),rgba(79,214,172,.25),transparent);
    z-index:-1;
  }
}
@media(max-width:600px){
  .timeline{grid-template-columns:1fr;gap:.9rem}
  .tl-item{padding:1.25rem 1.15rem 1.35rem}
  .tl-item h3{font-size:1.1rem}
}

/* ============================================================
   LAYER 16 — gallery tiles always show something
   A tile whose photograph fails to load used to render as an
   empty panel. Each now sits on a brand gradient and carries a
   caption, so the section reads as designed either way.
   ============================================================ */

.gstrip .g{
  position:relative;
  display:flex;align-items:flex-end;
  margin:0;
  background-color:#1e35a8;
  background-image:linear-gradient(150deg,#1e35a8,#2b4cd8 52%,#4fd6ac);
  background-size:cover;background-position:center;
  border-radius:var(--r-lg);overflow:hidden;
  box-shadow:0 18px 40px -26px rgba(22,37,126,.55);
}
.gstrip .g:nth-child(2){background-image:linear-gradient(150deg,#16257e,#2b4cd8 55%,#5a76ea)}
.gstrip .g:nth-child(3){background-image:linear-gradient(150deg,#1e35a8,#4fd6ac)}
.gstrip .g:nth-child(4){background-image:linear-gradient(150deg,#0d1652,#2b4cd8 60%,#f5a524)}
.gstrip .g::after{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(transparent 42%,rgba(13,22,82,.86));
  background-image:linear-gradient(transparent 42%,rgba(13,22,82,.86));
  opacity:1}
.gstrip .g figcaption{position:relative;z-index:2;padding:1rem 1.1rem;width:100%}
.gstrip .g .gk{
  display:inline-block;
  font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.15em;text-transform:uppercase;
  color:#ffffff !important;-webkit-text-fill-color:#ffffff !important;
  background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.34);
  padding:.3rem .7rem;border-radius:999px;backdrop-filter:blur(6px)}
.gstrip .g:hover .gk{background:#4fd6ac;border-color:#4fd6ac;
  color:#07322a !important;-webkit-text-fill-color:#07322a !important}

/* ============================================================
   LAYER 17 — Our Journey, given its own identity
   The year becomes the graphic: an oversized outlined numeral the
   card sits against, with a lit rail running through the sequence.
   Nothing else on the site looks like this, which is the point —
   the school's history should not read like another card grid.
   ============================================================ */

.timeline{
  --rail:#dfe6f8;
  display:grid;grid-template-columns:1fr;gap:0;
  margin:2.6rem 0 0;padding:0;position:relative;
}
.timeline::before,.timeline::after{display:none}

.tl-item{
  position:relative;
  display:grid;
  grid-template-columns:minmax(140px,190px) 1fr;
  gap:clamp(1rem,3vw,2.6rem);
  align-items:start;
  padding:0 0 clamp(2rem,4vw,3.2rem) 0;
  background:none;border:0;border-radius:0;box-shadow:none;overflow:visible;
}
.tl-item::before{
  content:"";position:absolute;
  left:clamp(140px,15vw,190px);top:.9rem;bottom:-.9rem;
  width:2px;height:auto;
  background:linear-gradient(180deg,#2b4cd8,#4fd6ac);
  opacity:.28;transform:translateX(-1px);border-radius:0;
}
.tl-item:last-child::before{background:linear-gradient(180deg,#4fd6ac,transparent)}
.tl-item:hover{transform:none;box-shadow:none}

/* the year, set large and outlined, is the anchor for each entry */
.tl-item .yr{
  position:relative;
  display:block;margin:0;padding:0;border:0;background:none;border-radius:0;
  font-family:var(--ff-display);font-weight:800;
  font-size:clamp(1.9rem,4.4vw,3.1rem);
  line-height:.92;letter-spacing:-.04em;text-transform:none;
  color:transparent;-webkit-text-fill-color:transparent;
  -webkit-text-stroke:1.5px rgba(43,76,216,.55);
  text-align:right;padding-right:clamp(1rem,2.4vw,2rem);
  transition:.4s var(--ease);
}
.tl-item .yr::before{
  content:"";position:absolute;right:calc(clamp(1rem,2.4vw,2rem) - 1px);top:.62em;
  width:15px;height:15px;border-radius:50%;
  background:#fff;border:3px solid #2b4cd8;
  transform:translateX(50%);z-index:2;box-shadow:0 0 0 5px rgba(43,76,216,.1);
  transition:.4s var(--ease);
}
.tl-item:hover .yr{
  color:#2b4cd8;-webkit-text-fill-color:#2b4cd8;-webkit-text-stroke:1.5px transparent}
.tl-item:hover .yr::before{
  background:#4fd6ac;border-color:#4fd6ac;box-shadow:0 0 0 7px rgba(79,214,172,.24)}

/* the entry itself */
.tl-item > h3,
.tl-item > p{grid-column:2}
.tl-item h3{
  font-size:clamp(1.15rem,2.1vw,1.55rem);line-height:1.18;letter-spacing:-.022em;
  margin:.15rem 0 .5rem;color:var(--deep);position:relative;
}
.tl-item p{
  font-size:.98rem;line-height:1.66;color:var(--ink-2);margin:0;max-width:56ch;
  padding-bottom:.2rem;
}

/* a soft panel behind the text, lit on hover */
.tl-item::after{
  content:"";position:absolute;
  left:clamp(140px,15vw,190px);right:-1rem;top:-.6rem;bottom:clamp(1.2rem,2.4vw,2rem);
  margin-left:clamp(1rem,3vw,2.6rem);
  border-radius:var(--r-lg);
  background:linear-gradient(120deg,rgba(232,236,253,.55),rgba(227,250,242,.35));
  opacity:0;transition:opacity .4s var(--ease);z-index:-1;
}
.tl-item:hover::after{opacity:1}

@media(max-width:700px){
  .tl-item{grid-template-columns:1fr;gap:.2rem;padding-bottom:2rem}
  .tl-item::before{left:8px;top:2.9rem;bottom:-.6rem}
  .tl-item::after{left:0;margin-left:0;right:0}
  .tl-item .yr{
    text-align:left;padding-right:0;padding-left:1.9rem;
    font-size:1.75rem;color:#2b4cd8;-webkit-text-fill-color:#2b4cd8;
    -webkit-text-stroke:1.5px transparent;margin-bottom:.5rem}
  .tl-item .yr::before{right:auto;left:0;top:.34em;transform:none;width:13px;height:13px}
  .tl-item > h3,.tl-item > p{grid-column:1;padding-left:1.9rem}
}

/* ============================================================
   LAYER 18 — the journey, built on components that always exist
   The bespoke .timeline rules are no longer used by the markup.
   These additions only decorate the standard cards, so if this
   layer never loads the page still renders as a clean card grid
   rather than collapsing to a line.
   ============================================================ */

.card-grid.jrny{grid-template-columns:repeat(auto-fit,minmax(250px,1fr))}

/* the year, sized up and given a rule beneath it */
.jrny .md-card .tag{
  display:block;
  font-family:var(--ff-display);
  font-size:clamp(1.5rem,2.6vw,2.1rem);
  font-weight:800;letter-spacing:-.035em;line-height:1;
  color:#2b4cd8 !important;-webkit-text-fill-color:#2b4cd8 !important;
  text-transform:none;
  margin:0 0 .75rem;padding:0 0 .7rem;
  border-bottom:1px solid var(--line);
}
.jrny .md-card.flame .tag{color:#22a983 !important;-webkit-text-fill-color:#22a983 !important}
.jrny .md-card.navy .tag{color:#16257e !important;-webkit-text-fill-color:#16257e !important}

.jrny .md-card h3{
  font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.22;margin:0 0 .5rem;
}
.jrny .md-card p:not(.tag){font-size:.93rem;line-height:1.6;margin:0}

/* a small step number in the corner, so the sequence reads at a glance */
.jrny .md-card{counter-increment:jrny;position:relative;overflow:hidden}
.card-grid.jrny{counter-reset:jrny}
.jrny .md-card::after{
  content:counter(jrny,decimal-leading-zero);
  position:absolute;right:1.1rem;bottom:.7rem;
  font-family:var(--ff-mono);font-size:2.4rem;font-weight:500;
  color:rgba(43,76,216,.07);line-height:1;pointer-events:none;
  opacity:1;background:none;
}

/* ============================================================
   LAYER 19 — the contact band, rebuilt
   It used oversized display type inside a narrow grid column, so
   each word was wider than its column and broke one letter per
   line, leaving most of the band empty. It is now a centred
   heading over a grid of contact cards that fills the width.
   ============================================================ */

/* display type must never break mid-word, whatever the column width */
.mega-head .mh-line,
.mega-head{overflow-wrap:normal;word-break:keep-all;hyphens:none}
.ctaband .mega-head{display:none}

.ctaband{padding-block:clamp(3rem,6vw,4.8rem)}
.ctaband .sec-head{max-width:64ch;margin-inline:auto;text-align:center}
.ctaband .sec-head h2{
  font-size:clamp(1.7rem,3.6vw,2.7rem);line-height:1.1;letter-spacing:-.03em;
  color:#ffffff !important;-webkit-text-fill-color:#ffffff !important;
  overflow-wrap:normal;word-break:keep-all;
}
.ctaband .sec-head .lede{
  color:#dbe3fb !important;-webkit-text-fill-color:#dbe3fb !important;
  font-size:1.02rem;margin-inline:auto;
}
.ctaband .btnrow{margin-block:1.6rem clamp(2rem,3.6vw,2.8rem)}

/* contact cards: white on the blue band, so they read instantly */
.card-grid.ctacards{grid-template-columns:repeat(auto-fit,minmax(232px,1fr));gap:1rem}
.ctaband .md-card{
  background:rgba(255,255,255,.97);
  border-color:rgba(255,255,255,.85);
  padding:1.3rem 1.25rem 1.4rem;
  box-shadow:0 20px 44px -28px rgba(0,0,0,.5);
}
.ctaband .md-card .tag{
  color:#1e35a8 !important;-webkit-text-fill-color:#1e35a8 !important;
  font-family:var(--ff-mono);font-size:.64rem;letter-spacing:.16em;text-transform:uppercase;
  margin:0 0 .5rem;
}
.ctaband .md-card.flame .tag{color:#22a983 !important;-webkit-text-fill-color:#22a983 !important}
.ctaband .md-card.navy .tag{color:#d4770c !important;-webkit-text-fill-color:#d4770c !important}
.ctaband .md-card h3{
  font-size:1.06rem;line-height:1.25;margin:0 0 .45rem;
  color:#16257e !important;-webkit-text-fill-color:#16257e !important;
  overflow-wrap:anywhere;
}
.ctaband .md-card h3 a{
  color:#16257e !important;-webkit-text-fill-color:#16257e !important;
  text-decoration:none;border-bottom:2px solid rgba(43,76,216,.25);
}
.ctaband .md-card h3 a:hover{
  color:#1e35a8 !important;-webkit-text-fill-color:#1e35a8 !important;
  border-bottom-color:#4fd6ac;
}
.ctaband .md-card p:not(.tag){
  font-size:.88rem;line-height:1.55;margin:0;
  color:#4b5788 !important;-webkit-text-fill-color:#4b5788 !important;
}
.ctaband .md-card::before,.ctaband .md-card::after{display:none}
.ctaband .md-card:hover{transform:translateY(-4px);box-shadow:0 26px 54px -28px rgba(0,0,0,.6)}

@media(max-width:600px){
  .card-grid.ctacards{grid-template-columns:1fr}
  .ctaband .btnrow{flex-direction:column;align-items:stretch}
  .ctaband .btnrow .btn{justify-content:center}
}

/* ==========================================================================
   CHAPTER BODY — LAYOUT REPAIR AND REDESIGN
   --------------------------------------------------------------------------
   .pagelayout is a two-column grid: a fixed 250px contents rail plus a
   flexible body. 68 of the 116 chapter sections ship without an
   <aside class="toc">, and with the rail absent their <div class="entry-content">
   fell into grid column one — the 250px rail slot. Paragraphs were squeezed
   into a ribbon down the left edge, checklist panels split into two columns
   inside roughly 100px each and broke one letter per line, and the rest of
   the page sat empty.

   The fix keys on :only-child, so it needs no script: an entry-content with no
   rail beside it spans both columns. main.js then builds a real contents rail
   for any section with enough headings to justify one, at which point
   entry-content is no longer an only child and these rules stand down on
   their own.
   ========================================================================== */

.pagelayout > .entry-content:only-child{grid-column:1/-1}

/* 22 sections carry an empty body because their content lives in the chapters
   below. Collapse it rather than leaving a void under the intro. */
.pagelayout > .entry-content:empty{display:none}

/* Full width alone would run prose to 1300px, so the body becomes a measured
   editorial grid: text holds a readable column, while cards, galleries,
   panels and quotes break out to the full width and fill the space. */
.pagelayout > .entry-content:only-child,
.pagelayout > .entry-content:only-child > .blk{
  display:grid;
  grid-template-columns:[edge-start] minmax(0,1fr) [text-start] minmax(0,72ch) [text-end] minmax(0,1fr) [edge-end];
  column-gap:clamp(1.2rem,3vw,2.4rem)}

.pagelayout > .entry-content:only-child > *,
.pagelayout > .entry-content:only-child > .blk > *{grid-column:text}

.pagelayout > .entry-content:only-child > .blk,
.pagelayout > .entry-content:only-child > .blk > .card-grid,
.pagelayout > .entry-content:only-child > .blk > .people-grid,
.pagelayout > .entry-content:only-child > .blk > .gal,
.pagelayout > .entry-content:only-child > .blk > .panel,
.pagelayout > .entry-content:only-child > .blk > .faq,
.pagelayout > .entry-content:only-child > .blk > .factstrip,
.pagelayout > .entry-content:only-child > .blk > .track-wrap,
.pagelayout > .entry-content:only-child > .blk > .breakband,
.pagelayout > .entry-content:only-child > .blk > .callout,
.pagelayout > .entry-content:only-child > .blk > blockquote{grid-column:edge}

/* Below the rail breakpoint the measured grid is unnecessary — the viewport
   already sets the measure. */
@media(max-width:1040px){
  .pagelayout > .entry-content:only-child,
  .pagelayout > .entry-content:only-child > .blk{display:block}
}

/* ---------- CONTENTS RAIL BUILT BY SCRIPT ---------- */
/* Matches the hand-written rails exactly; .built only marks its origin. */
.toc.built .toc-cta{margin-top:1.2rem}

/* ---------- CHAPTER INTRO ---------- */
/* The chapter number was absolutely positioned against the viewport edge, so
   at narrow widths and at browser zoom it landed on top of the support text.
   It now sits in the flow, aligned to the shell, above the intro. */
.chapter{display:flex;flex-direction:column}
.chapter .ch-num{position:static;order:-1;width:100%;max-width:var(--shell);
  margin:0 auto clamp(.8rem,1.8vw,1.4rem);padding-inline:clamp(1.1rem,4vw,2.2rem);
  text-align:right;right:auto;top:auto}

/* The support column floated loose at the top of a tall heading row, which is
   what opened the gap under the title. Anchoring it to the baseline of the
   heading and giving it an accent rule ties the two halves together. */
.ch-intro{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);align-items:end;
  padding-bottom:clamp(1.1rem,2.2vw,1.7rem);border-bottom:1px solid var(--line)}
.ch-intro .support{padding-top:0;max-width:54ch;line-height:1.62;
  border-left:2px solid var(--flame);padding-left:clamp(.9rem,1.6vw,1.2rem)}
.chapter.c-dark .ch-intro{border-bottom-color:rgba(255,255,255,.18)}
.chapter.c-dark .ch-intro .support{border-left-color:#8fe8f2}
@media(max-width:900px){
  .ch-intro{align-items:start;border-bottom:none;padding-bottom:0}
  .ch-intro .support{border-left:none;padding-left:0}
  .chapter .ch-num{text-align:left}
}

/* ---------- NARROW-COLUMN SAFETY ---------- */
/* Nothing should ever be able to stack one letter per line again, whatever
   width a container ends up at. */
.panel .checklist{columns:20ch 2}
.md-card,.panel,.person,.fs,.entry-content,.blk{min-width:0}
.md-card,.panel,.person,.fs{overflow-wrap:break-word}

/* --- rail-absence fallbacks -------------------------------------------------
   Three independent paths collapse the 250px rail column when a section has no
   contents rail, so the body can never be trapped in it again:
     1. :only-child on .entry-content   (above — no script, no :has needed)
     2. :has()                          (modern browsers, works if markup gains
                                          a stray sibling that breaks 1)
     3. .no-rail added by main.js       (works where :has is unsupported)
   Any one of them is enough. */
.pagelayout:not(:has(> .toc)){grid-template-columns:minmax(0,1fr)}
.pagelayout.no-rail{grid-template-columns:minmax(0,1fr)}
.pagelayout.no-rail > .entry-content{grid-column:1/-1}

.pagelayout.no-rail > .entry-content,
.pagelayout.no-rail > .entry-content > .blk{
  display:grid;
  grid-template-columns:[edge-start] minmax(0,1fr) [text-start] minmax(0,72ch) [text-end] minmax(0,1fr) [edge-end];
  column-gap:clamp(1.2rem,3vw,2.4rem)}
.pagelayout.no-rail > .entry-content > *,
.pagelayout.no-rail > .entry-content > .blk > *{grid-column:text}
.pagelayout.no-rail > .entry-content > .blk,
.pagelayout.no-rail > .entry-content > .blk > .card-grid,
.pagelayout.no-rail > .entry-content > .blk > .people-grid,
.pagelayout.no-rail > .entry-content > .blk > .gal,
.pagelayout.no-rail > .entry-content > .blk > .panel,
.pagelayout.no-rail > .entry-content > .blk > .faq,
.pagelayout.no-rail > .entry-content > .blk > .factstrip,
.pagelayout.no-rail > .entry-content > .blk > .track-wrap,
.pagelayout.no-rail > .entry-content > .blk > .breakband,
.pagelayout.no-rail > .entry-content > .blk > .callout,
.pagelayout.no-rail > .entry-content > .blk > blockquote{grid-column:edge}
@media(max-width:1040px){
  .pagelayout.no-rail > .entry-content,
  .pagelayout.no-rail > .entry-content > .blk{display:block}
}

/* ---------- HEADER CALLS TO ACTION ----------
   Two pills now sit in the header. "Apply Now" is the conversion path and
   keeps the flame fill; "Book a tour" steps back to an outline so the pair
   reads as primary + secondary rather than two competing buttons. These rules
   come last on purpose — they must win over the alternate palette blocks
   further up, which restyle .head-cta wholesale. */
.head-cta-apply{background:var(--flame)!important;color:#fff!important;
  box-shadow:0 12px 26px -14px var(--flame)}
.head-cta-apply:hover{background:var(--navy)!important;color:#fff!important}

.head-cta-ghost{background:transparent!important;color:var(--navy)!important;
  border:1px solid var(--line);box-shadow:none}
.head-cta-ghost:hover{background:var(--navy)!important;color:#fff!important;
  border-color:var(--navy)}

/* Apply Now survives further down the viewport than the tour button, because
   it is the one action a parent on a phone is most likely to want. */
@media(max-width:1180px){
  .head-cta-apply{display:inline-flex;align-items:center;margin-left:auto;
    padding:.58rem .95rem;font-size:.8rem}
}
@media(max-width:560px){
  .head-cta-apply{padding:.5rem .8rem;font-size:.74rem;margin-right:.5rem}
}

/* ==========================================================================
   FORMS — REDESIGN
   --------------------------------------------------------------------------
   The forms were plain stacked inputs with mono caption labels above them.
   They now use floating labels: the label sits inside the field and lifts on
   focus or once the field holds a value, which is why forms.php renders the
   control before the label and gives every input placeholder=" " — the
   :placeholder-shown test is what drives the lift.
   ========================================================================== */

.form-body{padding:clamp(1.6rem,3.4vw,2.6rem);position:relative}
.form-body::before{content:"";position:absolute;inset:0 0 auto;height:4px;
  background:linear-gradient(90deg,var(--navy),var(--cyan) 45%,var(--flame));
  border-radius:var(--r-md) var(--r-md) 0 0;pointer-events:none}

.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:1.15rem 1rem}

/* ---- the field shell ---- */
.field{position:relative}
.field input,.field select,.field textarea{
  width:100%;padding:1.5rem .95rem .62rem;border-radius:var(--r-sm);
  background:var(--mist);border:1px solid var(--line);border-bottom-width:2px;
  color:var(--ink);font:inherit;font-size:.96rem;line-height:1.35;
  transition:border-color .2s var(--ease),background .2s var(--ease),box-shadow .2s var(--ease)}
.field textarea{min-height:132px;resize:vertical;padding-top:1.6rem}

/* ---- the floating label ---- */
.field label{position:absolute;left:.98rem;top:1.02rem;transform-origin:left top;
  font-family:var(--ff-mono);font-size:.82rem;letter-spacing:.02em;color:var(--ink-3);
  pointer-events:none;transition:.2s var(--ease);background:transparent;
  max-width:calc(100% - 2rem);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.field input:focus + label,
.field textarea:focus + label,
.field select + label,
.field input:not(:placeholder-shown) + label,
.field textarea:not(:placeholder-shown) + label{
  transform:translateY(-.62rem) scale(.72);letter-spacing:.11em;text-transform:uppercase;
  color:var(--navy);font-weight:600}
.field input:focus + label,
.field textarea:focus + label,
.field select:focus + label{color:var(--cyan-deep,var(--cyan))}
.field label .req{font-style:normal;color:var(--flame);margin-left:.18rem}

/* ---- focus, hover and validity ---- */
.field input:hover,.field select:hover,.field textarea:hover{border-color:var(--ink-3)}
.field input:focus,.field select:focus,.field textarea:focus{
  border-color:var(--cyan);background:#fff;outline:none;box-shadow:0 0 0 4px var(--cyan-soft)}
/* :user-invalid only fires after the person has actually interacted, so nobody
   is shouted at for fields they have not reached yet. */
.field input:user-invalid,.field textarea:user-invalid,.field select:user-invalid{
  border-color:var(--flame);background:var(--flame-soft)}
.field input:user-invalid + label,.field textarea:user-invalid + label{color:var(--flame-deep)}
.field .is-empty{border-color:var(--flame);background:var(--flame-soft)}

/* ---- helper text under a field ---- */
.field .hint{display:block;margin:.34rem .2rem 0;font-size:.76rem;color:var(--ink-3);
  opacity:0;max-height:0;transition:.24s var(--ease)}
.field input:focus ~ .hint,.field textarea:focus ~ .hint{opacity:1;max-height:3rem}

/* ---- select ---- */
.field.is-select select{padding-right:2.6rem;cursor:pointer}
.field.is-select::after{content:"";position:absolute;right:1.05rem;top:1.75rem;
  width:8px;height:8px;border-right:2px solid var(--ink-3);border-bottom:2px solid var(--ink-3);
  transform:rotate(45deg);pointer-events:none;transition:.2s var(--ease)}
.field.is-select:focus-within::after{border-color:var(--cyan);transform:rotate(225deg);top:1.95rem}

/* ---- consent checkbox ---- */
.consent{display:flex;gap:.75rem;align-items:flex-start;font-size:.88rem;color:var(--ink-2);
  margin:1.4rem 0;cursor:pointer;padding:.85rem 1rem;border-radius:var(--r-sm);
  background:var(--mist);border:1px solid var(--line);transition:.22s var(--ease)}
.consent:hover{border-color:var(--cyan);background:var(--cyan-soft)}
.consent input{position:absolute;opacity:0;width:0;height:0}
.consent .cbox{flex:none;width:20px;height:20px;border-radius:6px;background:#fff;
  border:1.5px solid var(--line);position:relative;transition:.2s var(--ease);margin-top:.08rem}
.consent .cbox::after{content:"";position:absolute;left:6px;top:2px;width:5px;height:10px;
  border:solid #fff;border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);
  transition:transform .2s var(--ease)}
.consent input:checked + .cbox{background:var(--flame);border-color:var(--flame)}
.consent input:checked + .cbox::after{transform:rotate(45deg) scale(1)}
.consent input:focus-visible + .cbox{box-shadow:0 0 0 4px var(--cyan-soft)}

/* ---- submit ---- */
.form-send{position:relative;justify-content:center;gap:.6rem;font-size:1rem;padding:1.05rem 1.6rem}
.form-send .spin{display:none;width:16px;height:16px;border-radius:50%;
  border:2px solid rgba(255,255,255,.35);border-top-color:#fff;animation:md-spin .7s linear infinite}
.form-send.is-sending{pointer-events:none;opacity:.85}
.form-send.is-sending .arw{display:none}
.form-send.is-sending .spin{display:inline-block}
@keyframes md-spin{to{transform:rotate(360deg)}}
.form-foot{margin:.85rem 0 0;text-align:center;font-size:.78rem;color:var(--ink-3)}

/* ---- notices ---- */
.notice-msg{padding:1.05rem 1.2rem 1.05rem 3rem;border-radius:var(--r-sm);font-size:.93rem;
  margin-bottom:1.4rem;position:relative;line-height:1.5}
.notice-msg::before{position:absolute;left:1.05rem;top:1rem;font-size:1.05rem;line-height:1}
.notice-msg.is-good::before{content:"\2713";color:#0c6a45}
.notice-msg.is-bad::before{content:"\0021";font-weight:700;color:var(--flame-deep)}

@media(max-width:620px){
  .fgrid{grid-template-columns:1fr}
  .field input,.field select,.field textarea{font-size:16px} /* stops iOS zooming on focus */
}
@media(prefers-reduced-motion:reduce){
  .field label,.field.is-select::after,.consent .cbox::after{transition:none}
  .form-send .spin{animation-duration:2s}
}

/* ==========================================================================
   ACADEMIC CALENDAR + EVENTS
   ========================================================================== */

/* category colours, used by dots, pills and left borders alike */
.c-boarding{--cat:#2563eb}
.c-pta{--cat:#c2860b}
.c-gov{--cat:#0f766e}
.c-holiday{--cat:#15803d}
.c-event{--cat:#7c3aed}
.c-assess{--cat:#dc2626}
.c-disciple{--cat:#0891b2}

/* ---------- at a glance ---------- */
.cal-glance-grid{display:grid;gap:.85rem;
  grid-template-columns:repeat(auto-fit,minmax(min(100%,205px),1fr))}
.cal-glance{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);
  padding:1.15rem 1.2rem;box-shadow:var(--sh-sm);transition:.3s var(--ease);min-width:0}
.cal-glance:hover{transform:translateY(-3px);border-color:var(--cyan);box-shadow:var(--sh-md)}
.cal-glance .cg-k{display:block;font-family:var(--ff-mono);font-size:.63rem;letter-spacing:.14em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:.5rem}
.cal-glance b{display:block;font-size:1.02rem;line-height:1.25;color:var(--navy);letter-spacing:-.01em}
.cal-glance .cg-s{display:block;margin-top:.34rem;font-size:.78rem;color:var(--ink-3)}

/* ---------- the term planner ---------- */
.cal-planner{margin-top:.4rem}
.cal-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:.6rem;margin-bottom:1.1rem}
.cal-tab{display:flex;flex-direction:column;gap:.25rem;padding:.95rem 1.1rem;text-align:left;
  background:#fff;border:1px solid var(--line);border-bottom:3px solid var(--line);
  border-radius:var(--r-sm);cursor:pointer;font:inherit;font-weight:600;font-size:1rem;
  color:var(--ink-2);transition:.25s var(--ease)}
.cal-tab span{font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.06em;color:var(--ink-3);font-weight:400}
.cal-tab:hover{border-color:var(--cyan);color:var(--navy)}
.cal-tab.is-on{background:var(--navy);border-color:var(--navy);border-bottom-color:var(--flame);color:#fff}
.cal-tab.is-on span{color:rgba(255,255,255,.72)}

.cal-filter{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-bottom:1.3rem;
  padding:.8rem .9rem;background:var(--mist);border-radius:var(--r-sm);border:1px solid var(--line)}
.cal-filter-k{font-family:var(--ff-mono);font-size:.63rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);margin-right:.3rem}
.cal-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.42rem .78rem;border-radius:999px;
  border:1px solid var(--line);background:#fff;font:inherit;font-size:.78rem;font-weight:500;
  color:var(--ink-3);cursor:pointer;transition:.2s var(--ease)}
.cal-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--cat,var(--ink-3));flex:none}
.cal-chip:hover{border-color:var(--cat,var(--cyan));color:var(--ink)}
.cal-chip.is-on{background:var(--navy);border-color:var(--navy);color:#fff}
.cal-reset{margin-left:auto;color:var(--flame);border-color:var(--flame-soft)}

.cal-panel{display:none}
.cal-panel.is-on{display:block;animation:cal-in .32s var(--ease)}
@keyframes cal-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.cal-panel-sub{max-width:66ch;color:var(--ink-2);margin:0 0 1.2rem}

.cal-facts{display:grid;gap:.5rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));
  margin-bottom:1.6rem}
.cal-fact{display:flex;justify-content:space-between;gap:.8rem;align-items:baseline;
  padding:.7rem .9rem;background:var(--mist);border-radius:var(--r-sm);border-left:3px solid var(--cyan)}
.cal-fact span{font-size:.76rem;color:var(--ink-3);font-family:var(--ff-mono);letter-spacing:.04em}
.cal-fact b{font-size:.86rem;color:var(--navy);text-align:right}

/* week rows */
.cal-weeks{display:grid;gap:.55rem}
.cal-week{display:grid;grid-template-columns:150px minmax(0,1fr);gap:1.1rem;
  padding:1.05rem 1.2rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);
  transition:.25s var(--ease)}
.cal-week:hover{border-color:var(--cyan);box-shadow:var(--sh-sm)}
.cal-week.is-break{background:var(--flame-soft);border-color:rgba(245,130,31,.3)}
.cal-week.is-lead{background:var(--mist)}
.cal-week.is-hidden{display:none}
.cw-when b{display:block;font-size:.95rem;color:var(--navy);letter-spacing:-.01em}
.cw-when span{display:block;margin-top:.2rem;font-family:var(--ff-mono);font-size:.72rem;color:var(--ink-3)}
.cw-what p{margin:0;font-size:.93rem;line-height:1.55;color:var(--ink-2)}
.cw-pills{display:flex;flex-wrap:wrap;gap:.4rem;margin-top:.7rem}
.cal-pill{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .68rem;border-radius:999px;
  font-size:.74rem;line-height:1.35;font-weight:500;color:var(--cat);
  background:color-mix(in srgb,var(--cat) 10%,#fff);border:1px solid color-mix(in srgb,var(--cat) 28%,#fff);
  transition:.2s var(--ease)}
.cal-pill::before{content:"";width:5px;height:5px;border-radius:50%;background:var(--cat);flex:none}
.cal-pill.is-dim{opacity:.22;filter:grayscale(1)}

/* ---------- public holidays ---------- */
.cal-hols{display:grid;gap:.7rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,255px),1fr))}
.cal-hol{padding:1.05rem 1.15rem;background:#fff;border:1px solid var(--line);
  border-left:3px solid #15803d;border-radius:var(--r-sm);min-width:0}
.cal-hol b{display:block;font-family:var(--ff-mono);font-size:.73rem;letter-spacing:.06em;color:#15803d}
.cal-hol .ch-name{display:block;margin:.35rem 0 .3rem;font-size:1.02rem;font-weight:600;color:var(--navy)}
.cal-hol p{margin:0;font-size:.83rem;color:var(--ink-3);line-height:1.5}

/* ---------- recurring dates inside cards ---------- */
.cal-dates{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.9rem}
.cal-dates span{font-family:var(--ff-mono);font-size:.7rem;padding:.26rem .55rem;border-radius:5px;
  background:rgba(0,0,0,.05);white-space:nowrap}
.md-card.navy .cal-dates span,.md-card.flame .cal-dates span{background:rgba(255,255,255,.18)}

/* ---------- tables ---------- */
.tbl-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-top:.9rem;
  border:1px solid var(--line);border-radius:var(--r-sm)}
.cal-table{width:100%;border-collapse:collapse;font-size:.88rem;min-width:420px;background:#fff}
.cal-table th{background:var(--navy);color:#fff;text-align:left;padding:.72rem .9rem;
  font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.11em;text-transform:uppercase;font-weight:500}
.cal-table td{padding:.72rem .9rem;border-top:1px solid var(--line);vertical-align:top;color:var(--ink-2)}
.cal-table tbody tr:nth-child(even) td{background:var(--mist)}
.cal-table b{color:var(--navy)}
.cal-type{display:inline-block;padding:.16rem .5rem;border-radius:999px;background:var(--cyan-soft);
  color:var(--navy);font-size:.72rem;white-space:nowrap}

/* ---------- professional development ---------- */
.cal-pds{display:grid;gap:.7rem}
.cal-pd{display:grid;grid-template-columns:170px minmax(0,1fr) 210px;gap:1.1rem;align-items:start;
  padding:1rem 1.15rem;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm)}
.cal-pd b{font-family:var(--ff-mono);font-size:.78rem;color:var(--flame-deep)}
.cal-pd p{margin:0;font-size:.9rem;color:var(--ink-2);line-height:1.55}
.cal-pd > span{font-size:.78rem;color:var(--ink-3);line-height:1.5}

/* ---------- events grid ---------- */
.ev-grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,285px),1fr))}
.ev-card{background:#fff;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;
  display:flex;flex-direction:column;transition:.32s var(--ease);min-width:0}
.ev-card:hover{transform:translateY(-5px);box-shadow:var(--sh-md);border-color:var(--cyan)}
.ev-img{aspect-ratio:16/10;background-size:cover;background-position:center;transition:.5s var(--ease)}
.ev-card:hover .ev-img{transform:scale(1.05)}
.ev-body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.42rem;flex:1}
.ev-when{font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.09em;text-transform:uppercase;color:var(--flame)}
.ev-body h3{margin:0;font-size:1.06rem;line-height:1.25;color:var(--navy);letter-spacing:-.015em}
.ev-body p{margin:0;font-size:.88rem;line-height:1.55;color:var(--ink-2)}

/* ---------- responsive ---------- */
@media(max-width:860px){
  .cal-tabs{grid-template-columns:1fr}
  .cal-tab{flex-direction:row;align-items:baseline;justify-content:space-between;gap:.8rem}
  .cal-pd{grid-template-columns:1fr;gap:.45rem}
  .cal-pd > span{order:3}
}
@media(max-width:640px){
  .cal-week{grid-template-columns:1fr;gap:.6rem;padding:.95rem 1rem}
  .cw-when{display:flex;align-items:baseline;gap:.6rem;
    padding-bottom:.55rem;border-bottom:1px dashed var(--line)}
  .cw-when span{margin-top:0}
  .cal-fact{flex-direction:column;gap:.2rem}
  .cal-fact b{text-align:left}
  .cal-filter{padding:.7rem}
  .cal-reset{margin-left:0}
}
@media(prefers-reduced-motion:reduce){
  .cal-panel.is-on{animation:none}
  .ev-card:hover{transform:none}
  .ev-card:hover .ev-img{transform:none}
}

/* ==========================================================================
   RESPONSIVENESS PASS
   --------------------------------------------------------------------------
   Site-wide guards rather than page-specific patches. The recurring faults
   were: fixed-width grid tracks that could not shrink below their content,
   wide tables forcing the whole page to scroll sideways, and touch targets
   sized for a mouse.
   ========================================================================== */

/* Nothing may push the page wider than the viewport. A single overflowing
   child is what produces the sideways scroll on a phone. */
html,body{overflow-x:clip}
img,video,iframe,svg,table{max-width:100%}
img,video{height:auto}

/* Grid and flex children default to min-width:auto, which stops them shrinking
   below their content and is the root of most horizontal overflow. */
.card-grid > *,.factstrip > *,.people-grid > *,.ev-grid > *,.cal-glance-grid > *,
.md-split > *,.hero-grid > *,.ch-intro > *,.twin > *,.explainer > *,
.pagelayout > *,.entry-content > *,.blk > *{min-width:0}

/* Long unbroken strings — emails, URLs, exam codes — wrap instead of pushing out. */
p,li,h1,h2,h3,h4,td,th,dd,dt,.lede,.support{overflow-wrap:break-word}

/* Any table gets its own scroll area rather than dragging the layout with it. */
.entry-content table{display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
.tbl-scroll table{display:table}

/* Touch targets. 44px is the size a thumb actually hits reliably. */
@media(pointer:coarse){
  .btn,.cal-tab,.cal-chip,.form-index a,.nav-toggle,.head-cta{min-height:44px}
  .toc a,.mm-sub,.md-footer a{padding-block:.35rem}
}

/* Headline scaling — mega-head could overflow on the narrowest phones. */
@media(max-width:520px){
  .mega-head{font-size:clamp(2rem,11vw,3.2rem);word-break:break-word;hyphens:auto}
  .lede{font-size:1rem}
  .hero-actions{flex-wrap:wrap;gap:.6rem}
  .hero-actions .btn{flex:1 1 100%;justify-content:center}
}

/* Two-column blocks collapse cleanly instead of squeezing. */
@media(max-width:820px){
  .md-split,.twin,.explainer{grid-template-columns:1fr!important;gap:1.6rem}
  .ch-intro{grid-template-columns:1fr}
}

/* Gallery figures keep a usable aspect ratio on small screens. */
@media(max-width:600px){
  .gal{grid-template-columns:1fr!important}
  .figure.ph,.gal .ph{aspect-ratio:4/3}
}

/* Landscape phones are short — full-height heroes trap the content. */
@media(max-height:520px) and (orientation:landscape){
  .page-hero{min-height:auto;padding-block:3.5rem}
}

/* ==========================================================================
   ACADEMIC CALENDAR — CONTROLS, REDESIGNED AND HARDENED
   --------------------------------------------------------------------------
   The tabs and filter chips were rendering as bare underlined blue text: a
   stylesheet loading after the theme (WordPress core block styles, or a
   plugin) was winning on colour, text-decoration and border-radius while the
   background came through. Buttons are the usual casualty, because most
   resets target them.

   So every property that was being lost is now set explicitly, at higher
   specificity, on a full appearance reset — and the design itself is stronger:
   a segmented term control with an active indicator, and filter chips that
   read as toggles rather than links.
   ========================================================================== */

.cal-planner .cal-tab,
.cal-planner .cal-chip{
  -webkit-appearance:none;appearance:none;
  font:inherit;text-decoration:none!important;text-transform:none;
  letter-spacing:normal;cursor:pointer;margin:0;
  -webkit-tap-highlight-color:transparent}
.cal-planner .cal-tab:hover,.cal-planner .cal-chip:hover,
.cal-planner .cal-tab:focus,.cal-planner .cal-chip:focus{text-decoration:none!important}
.cal-planner .cal-tab:focus-visible,.cal-planner .cal-chip:focus-visible{
  outline:2px solid var(--cyan);outline-offset:2px}

/* ---------- term control ---------- */
.cal-planner .cal-tabs{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;
  padding:.42rem;margin-bottom:1rem;
  background:var(--mist);border:1px solid var(--line);border-radius:var(--r-md)}

.cal-planner .cal-tab{
  position:relative;display:flex;flex-direction:column;gap:.22rem;
  align-items:flex-start;text-align:left;
  padding:.9rem 1.05rem;border:0;border-radius:calc(var(--r-md) - .3rem);
  background:transparent;color:var(--ink-2)!important;
  font-size:1rem;font-weight:600;line-height:1.2;
  transition:background .25s var(--ease),color .25s var(--ease),box-shadow .25s var(--ease)}
.cal-planner .cal-tab span{
  font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.05em;
  font-weight:400;color:var(--ink-3)!important;transition:color .25s var(--ease)}

.cal-planner .cal-tab:hover{background:rgba(255,255,255,.9);color:var(--navy)!important}
.cal-planner .cal-tab.is-on{
  background:linear-gradient(150deg,var(--navy),var(--navy-deep,#141d55));
  color:#fff!important;box-shadow:0 10px 22px -14px rgba(31,42,117,.85)}
.cal-planner .cal-tab.is-on span{color:rgba(255,255,255,.75)!important}
/* the flame underline marks the live term */
.cal-planner .cal-tab.is-on::after{
  content:"";position:absolute;left:1.05rem;right:1.05rem;bottom:.5rem;height:2px;
  border-radius:2px;background:var(--flame)}

/* ---------- filter chips ---------- */
.cal-planner .cal-filter{
  display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;
  margin-bottom:1.3rem;padding:.75rem .85rem;
  background:#fff;border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--sh-sm)}
.cal-planner .cal-filter-k{
  font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink-3);margin-right:.25rem}

.cal-planner .cal-chip{
  display:inline-flex;align-items:center;gap:.42rem;
  padding:.42rem .8rem;border-radius:999px!important;
  border:1px solid var(--line);background:#fff;
  color:var(--ink-3)!important;font-size:.79rem;font-weight:500;line-height:1.2;
  transition:.2s var(--ease)}
.cal-planner .cal-chip .dot{
  width:8px;height:8px;border-radius:50%;flex:none;
  background:var(--cat,var(--ink-3));box-shadow:0 0 0 3px color-mix(in srgb,var(--cat,#999) 18%,transparent)}
.cal-planner .cal-chip:hover{
  border-color:var(--cat,var(--cyan));color:var(--ink)!important;transform:translateY(-1px)}
.cal-planner .cal-chip.is-on{
  background:color-mix(in srgb,var(--cat,var(--navy)) 12%,#fff);
  border-color:color-mix(in srgb,var(--cat,var(--navy)) 45%,#fff);
  color:color-mix(in srgb,var(--cat,var(--navy)) 78%,#000)!important;font-weight:600}
.cal-planner .cal-chip.is-on .dot{box-shadow:0 0 0 3px color-mix(in srgb,var(--cat,#999) 32%,transparent)}

.cal-planner .cal-reset{
  margin-left:auto;border-color:transparent;background:transparent;
  color:var(--flame)!important;font-weight:600}
.cal-planner .cal-reset:hover{background:var(--flame-soft);border-color:transparent;transform:none}

/* Fallback for browsers without color-mix: never leave a chip unreadable. */
@supports not (color:color-mix(in srgb,red 50%,blue)){
  .cal-planner .cal-chip.is-on{background:var(--navy);border-color:var(--navy);color:#fff!important}
  .cal-pill{background:var(--mist);border-color:var(--line)}
}

/* ---------- week rows, a little richer ---------- */
.cal-weeks .cal-week{position:relative;padding-left:1.5rem}
.cal-weeks .cal-week::before{
  content:"";position:absolute;left:.55rem;top:1.1rem;bottom:1.1rem;width:3px;
  border-radius:3px;background:var(--line);transition:background .25s var(--ease)}
.cal-weeks .cal-week:hover::before{background:var(--cyan)}
.cal-weeks .cal-week.is-break::before{background:var(--flame)}
.cal-weeks .cal-week.is-lead::before{background:var(--ink-3)}

/* ---------- responsive ---------- */
@media(max-width:860px){
  /* A horizontal segmented control beats three stacked full-width blocks:
     the three terms stay comparable at a glance and the row stays short. */
  .cal-planner .cal-tabs{
    grid-template-columns:repeat(3,minmax(9.5rem,1fr));
    overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .cal-planner .cal-tabs::-webkit-scrollbar{display:none}
  .cal-planner .cal-tab{padding:.75rem .85rem;font-size:.92rem}
  .cal-planner .cal-tab.is-on::after{left:.85rem;right:.85rem}
}
@media(max-width:560px){
  .cal-planner .cal-filter{padding:.65rem .7rem;gap:.38rem}
  .cal-planner .cal-filter-k{width:100%;margin:0 0 .15rem}
  .cal-planner .cal-chip{padding:.46rem .72rem;font-size:.75rem}
  .cal-planner .cal-reset{margin-left:0;width:100%;justify-content:center;margin-top:.25rem}
}
@media(prefers-reduced-motion:reduce){
  .cal-planner .cal-chip:hover{transform:none}
}

/* ==========================================================================
   PAGE COMPONENTS — ABOUT AND EVENTS
   ========================================================================== */

/* ---------- ledger: numbered rows of substantial points ---------- */
.ledger{display:grid;gap:.7rem;counter-reset:ledger}
.ledger-row{display:grid;grid-template-columns:auto minmax(0,1fr);gap:1.25rem;
  padding:1.35rem 1.5rem;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-md);transition:.28s var(--ease)}
.ledger-row:hover{border-color:var(--cyan);box-shadow:var(--sh-md);transform:translateY(-2px)}
.lr-n{font-family:var(--ff-mono);font-size:1.5rem;font-weight:600;line-height:1;
  color:var(--flame);letter-spacing:-.04em;padding-top:.15rem}
.lr-b h3{margin:0 0 .45rem;font-size:1.12rem;line-height:1.28;color:var(--navy);letter-spacing:-.018em}
.lr-b p{margin:0;font-size:.94rem;line-height:1.62;color:var(--ink-2)}

/* ---------- runsheet: ordered moments down a spine ---------- */
.runsheet{list-style:none;margin:0;padding:0;position:relative;display:grid;gap:0}
.runsheet::before{content:"";position:absolute;left:11px;top:1.1rem;bottom:1.1rem;width:2px;
  background:linear-gradient(var(--cyan),var(--flame));border-radius:2px}
.runsheet > li{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);
  gap:1.1rem;padding:.95rem 0 .95rem 0;align-items:start}
.runsheet > li::before{content:"";width:24px;height:24px;border-radius:50%;background:#fff;
  border:2px solid var(--cyan);box-shadow:0 0 0 4px var(--bg,#fff);z-index:1;margin-top:.15rem}
.runsheet > li:last-child::before{border-color:var(--flame)}
.rs-k{position:absolute;left:3.4rem;top:.62rem;font-family:var(--ff-mono);font-size:.62rem;
  letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.runsheet h4{margin:.85rem 0 .3rem;font-size:1.04rem;line-height:1.3;color:var(--navy);letter-spacing:-.015em}
.runsheet p{margin:0;font-size:.92rem;line-height:1.6;color:var(--ink-2)}
.runsheet > li > div{padding-left:.15rem}

/* ---------- stage switch: the same content, five ages ---------- */
.stage-switch{margin-top:.3rem}
.stage-lede{margin:0 0 1rem;color:var(--ink-3);font-size:.88rem}
.stage-tabs{display:flex;flex-wrap:wrap;gap:.4rem;padding:.4rem;margin-bottom:1.1rem;
  background:var(--mist);border:1px solid var(--line);border-radius:999px}
.stage-tab{-webkit-appearance:none;appearance:none;border:0;margin:0;cursor:pointer;
  font:inherit;font-size:.82rem;font-weight:600;line-height:1.2;
  padding:.6rem 1.05rem;border-radius:999px;background:transparent;
  color:var(--ink-3)!important;text-decoration:none!important;
  transition:.22s var(--ease);flex:1 1 auto;white-space:nowrap}
.stage-tab:hover{background:#fff;color:var(--navy)!important}
.stage-tab.is-on{background:var(--navy);color:#fff!important;box-shadow:var(--sh-sm)}
.stage-tab:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}

.stage-panel{display:none}
.stage-panel.is-on{display:block;animation:stage-in .3s var(--ease)}
@keyframes stage-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
.stage-panel{padding:1.4rem 1.5rem;background:#fff;border:1px solid var(--line);
  border-left:3px solid var(--flame);border-radius:var(--r-md)}
.stage-panel h3{margin:0 0 .6rem;font-size:1.1rem;color:var(--navy);letter-spacing:-.018em}
.stage-panel p{margin:0 0 .7rem;font-size:.95rem;line-height:1.62;color:var(--ink-2)}
.stage-panel p:last-child,.stage-panel ul:last-child{margin-bottom:0}

/* ---------- quote band ---------- */
.quote-band{max-width:64ch}
.quote-band blockquote{margin:.6rem 0 0;padding:0;border:0;
  font-size:clamp(1.35rem,3.2vw,2.3rem);line-height:1.22;letter-spacing:-.03em;
  font-weight:600;color:inherit}
.quote-band blockquote::before{content:"";display:block;width:52px;height:3px;
  background:var(--flame);border-radius:3px;margin-bottom:1.1rem}

/* ---------- chip row ---------- */
.chip-row{display:flex;flex-wrap:wrap;gap:.45rem}
.chip-row span{display:inline-flex;align-items:center;padding:.46rem .9rem;border-radius:999px;
  background:#fff;border:1px solid var(--line);font-size:.82rem;color:var(--ink-2);
  transition:.2s var(--ease)}
.chip-row span:hover{border-color:var(--flame);color:var(--navy);transform:translateY(-1px)}
.chip-row span:last-child{background:var(--flame);border-color:var(--flame);color:#fff;font-weight:600}

/* ---------- opening paragraph on long-form pages ---------- */
.lede-in{font-size:1.14rem;line-height:1.6;color:var(--ink);font-weight:500}

/* ---------- responsive ---------- */
@media(max-width:640px){
  .ledger-row{grid-template-columns:1fr;gap:.5rem;padding:1.15rem 1.2rem}
  .lr-n{font-size:1.15rem}
  .runsheet::before{left:9px}
  .runsheet > li{gap:.9rem}
  .runsheet > li::before{width:20px;height:20px}
  .rs-k{left:2.9rem;top:.7rem}
  .stage-tabs{border-radius:var(--r-md)}
  .stage-tab{flex:1 1 calc(50% - .4rem);font-size:.78rem;padding:.55rem .7rem}
  .stage-panel{padding:1.15rem 1.2rem}
}
@media(prefers-reduced-motion:reduce){
  .ledger-row:hover,.chip-row span:hover{transform:none}
  .stage-panel.is-on{animation:none}
}

/* Sign-off line closing a welcome passage — reads as the writer's own voice. */
.sign-off{margin-top:1.1rem;padding-top:1.1rem;border-top:1px solid var(--line);
  font-size:1.04rem;line-height:1.5;color:var(--navy);font-weight:500}

/* ==========================================================================
   NEWSLETTER — ARCHIVE AND SINGLE EDITION
   ========================================================================== */

.nl-archive{margin-top:.4rem}
.nl-empty{color:var(--ink-3)}

/* ---------- section filter ---------- */
.nl-filter{display:flex;flex-wrap:wrap;gap:.45rem;align-items:center;margin-bottom:1.6rem;
  padding:.75rem .85rem;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-md);box-shadow:var(--sh-sm)}
.nl-filter-k{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.15em;
  text-transform:uppercase;color:var(--ink-3);margin-right:.25rem}
.nl-chip{-webkit-appearance:none;appearance:none;margin:0;cursor:pointer;font:inherit;
  font-size:.79rem;font-weight:500;line-height:1.2;padding:.45rem .85rem;
  border-radius:999px!important;border:1px solid var(--line);background:#fff;
  color:var(--ink-3)!important;text-decoration:none!important;transition:.2s var(--ease)}
.nl-chip:hover{border-color:var(--cyan);color:var(--navy)!important}
.nl-chip.is-on{background:var(--navy);border-color:var(--navy);color:#fff!important;font-weight:600}
.nl-chip:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}

/* ---------- session groups ---------- */
.nl-session + .nl-session{margin-top:2.4rem}
.nl-session-head{display:flex;align-items:baseline;gap:.9rem;margin:0 0 1.1rem;
  font-size:1.05rem;letter-spacing:.01em;color:var(--navy)}
.nl-session-head span{font-family:var(--ff-mono);font-size:.95rem;letter-spacing:.06em}
.nl-session-head::after{content:"";flex:1;height:1px;background:var(--line)}
.nl-session-head em{order:3;font-style:normal;font-size:.74rem;color:var(--ink-3);
  font-family:var(--ff-mono);letter-spacing:.08em;white-space:nowrap}
.nl-session.is-hidden{display:none}

/* ---------- edition cards ---------- */
.nl-grid{display:grid;gap:1.1rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,290px),1fr))}
.nl-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-md);overflow:hidden;text-decoration:none!important;color:inherit;
  min-width:0;transition:.3s var(--ease)}
.nl-card:hover{transform:translateY(-4px);box-shadow:var(--sh-md);border-color:var(--cyan)}
.nl-card.is-hidden{display:none}
.nl-cover{display:block;aspect-ratio:16/10;background-size:cover;background-position:center;
  transition:.5s var(--ease)}
.nl-card:hover .nl-cover{transform:scale(1.05)}
.nl-body{display:flex;flex-direction:column;gap:.42rem;padding:1.1rem 1.2rem 1.25rem;flex:1}
.nl-meta{display:flex;flex-wrap:wrap;gap:.4rem;align-items:center}
.nl-month{font-family:var(--ff-mono);font-size:.68rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--flame)}
.nl-issue{font-size:.68rem;padding:.14rem .5rem;border-radius:999px;background:var(--cyan-soft);
  color:var(--navy);white-space:nowrap}
.nl-title{font-family:var(--ff-display,inherit);font-size:1.12rem;line-height:1.24;
  letter-spacing:-.02em;font-weight:700;color:var(--navy)}
.nl-ex{font-size:.87rem;line-height:1.55;color:var(--ink-2);flex:1}
.nl-go{font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--cyan);display:inline-flex;align-items:center;gap:.35rem;margin-top:.25rem}
.nl-card:hover .nl-go .arw{transform:translateX(4px)}
.nl-go .arw{transition:.25s var(--ease)}

/* ---------- a single edition ---------- */
.nl-single{max-width:var(--shell);margin-inline:auto;
  padding-inline:clamp(1.1rem,4vw,2.2rem);padding-block:clamp(2rem,5vw,3.4rem)}
.nl-masthead{padding-bottom:1.3rem;margin-bottom:1.8rem;border-bottom:3px solid var(--navy)}
.nl-mast-meta{display:flex;flex-wrap:wrap;gap:.5rem;margin:.5rem 0 1rem}
.nl-mast-meta span{font-family:var(--ff-mono);font-size:.72rem;letter-spacing:.08em;
  padding:.26rem .68rem;border-radius:999px;background:var(--mist);border:1px solid var(--line);
  color:var(--ink-2)}

.nl-standfirst p{font-size:1.16rem;line-height:1.55;color:var(--ink);font-weight:500;
  max-width:62ch;margin:0 0 2rem;padding-left:1.1rem;border-left:3px solid var(--flame)}

.nl-story{max-width:70ch;padding-block:1.6rem}
.nl-story + .nl-story{border-top:1px solid var(--line)}
.nl-kicker{display:inline-block;font-family:var(--ff-mono);font-size:.65rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--flame);margin-bottom:.5rem}
.nl-story h2{margin:0 0 .7rem;font-size:clamp(1.3rem,2.6vw,1.75rem);line-height:1.2;
  letter-spacing:-.025em;color:var(--navy)}
.nl-story p{margin:0 0 .85rem;font-size:1rem;line-height:1.68;color:var(--ink-2)}
.nl-story p:last-child{margin-bottom:0}

.nl-dates{margin-top:2.2rem;padding:1.5rem 1.6rem;background:var(--mist);
  border-radius:var(--r-md);border:1px solid var(--line)}
.nl-dates h2{margin:0 0 1rem;font-size:1.2rem;color:var(--navy);letter-spacing:-.02em}
.nl-date-grid{display:grid;gap:.6rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,255px),1fr))}
.nl-date{padding:.8rem .95rem;background:#fff;border-radius:var(--r-sm);
  border-left:3px solid var(--cyan)}
.nl-date b{display:block;font-size:.92rem;color:var(--navy);line-height:1.3}
.nl-date span{display:block;margin-top:.22rem;font-family:var(--ff-mono);font-size:.75rem;
  color:var(--ink-3)}

.nl-foot{margin-top:2.4rem;padding-top:1.6rem;border-top:1px solid var(--line)}

@media(max-width:560px){
  .nl-filter{padding:.65rem .7rem}
  .nl-filter-k{width:100%;margin:0 0 .15rem}
  .nl-session-head{flex-wrap:wrap;gap:.5rem}
  .nl-session-head::after{display:none}
  .nl-story{padding-block:1.3rem}
  .nl-dates{padding:1.15rem 1.2rem}
}
@media(prefers-reduced-motion:reduce){
  .nl-card:hover{transform:none}
  .nl-card:hover .nl-cover{transform:none}
}

/* ==========================================================================
   HEADER — STOP THE CTAs COLLIDING WITH THE NAV
   --------------------------------------------------------------------------
   The header row is a flex line holding the logo, ten top-level nav items and
   two call-to-action pills. Nav links carry white-space:nowrap, so the nav
   cannot shrink below its natural width; the pills, having no flex basis of
   their own, were the ones that gave way — squeezing to nothing and sitting on
   top of "Contact" and "Forms".

   Three changes: the pills refuse to shrink, the nav is allowed to be the
   flexible element, and a compact tier tightens spacing between the point the
   full row stops fitting and the point the drawer takes over.
   ========================================================================== */

.md-header .inner{flex-wrap:nowrap;gap:.85rem}
.md-header .brand-link{flex:0 0 auto}
.md-header .prev-nav{flex:0 1 auto;min-width:0;margin-left:auto}
.md-header .prev-nav > ul{flex-wrap:nowrap}

/* The pills keep their labels whatever else happens on the row. */
.md-header .head-cta{flex:0 0 auto;white-space:nowrap;margin-left:0}

/* Between 1240px (where the drawer appears) and 1500px the full row is tight
   but workable — so tighten it rather than dropping anything. */
@media(min-width:1241px) and (max-width:1500px){
  .md-header .inner{gap:.6rem}
  .prev-nav{font-size:.84rem}
  .prev-nav .nav-item > a{padding:.5rem .42rem}
  .md-header .head-cta{padding:.58rem .85rem;font-size:.78rem}
  .md-header .brand-logo{max-height:44px}
}

/* Below the drawer breakpoint only Apply Now stays on the bar, pinned to the
   right of the logo with the toggle beside it. */
@media(max-width:1240px){
  .md-header .inner{gap:.6rem}
  .md-header .head-cta-ghost{display:none}
  .md-header .head-cta-apply{display:inline-flex;align-items:center;margin-left:auto;order:2}
  .md-header .nav-toggle{order:3;flex:0 0 auto}
}
@media(max-width:420px){
  .md-header .head-cta-apply{padding:.48rem .72rem;font-size:.72rem}
  .md-header .brand-logo{max-height:38px}
}

/* ==========================================================================
   FORMS — THE PAGE AROUND THE FORM
   --------------------------------------------------------------------------
   A form page was a card of inputs and nothing else: no statement of what the
   form is for, no reply time, no alternative if someone would rather phone.
   The page is now two panels — a sticky context column and the form itself —
   and the fields are grouped into "About you" and "Your request" so a long
   form reads as two short ones.
   ========================================================================== */

.form-layout{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);
  gap:clamp(1.2rem,2.6vw,2.2rem);align-items:start;
  max-width:var(--shell);margin-inline:auto}

/* ---------- the context column ---------- */
.form-ctx{display:grid;gap:.8rem;position:sticky;top:100px}
.fa-card{padding:1.25rem 1.35rem;background:#fff;border:1px solid var(--line);
  border-radius:var(--r-md);box-shadow:var(--sh-sm)}
.fa-card .eyebrow{margin:0 0 .55rem}
.fa-what{margin:0;font-size:.92rem;line-height:1.6;color:var(--ink-2)}

.fa-reply{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;
  margin-top:1rem;padding-top:.9rem;border-top:1px dashed var(--line)}
.fa-reply span{font-family:var(--ff-mono);font-size:.66rem;letter-spacing:.13em;
  text-transform:uppercase;color:var(--ink-3)}
.fa-reply b{font-size:.9rem;color:var(--flame-deep);text-align:right}

.fa-steps{list-style:none;counter-reset:fa;margin:0;padding:0;display:grid;gap:.75rem}
.fa-steps li{counter-increment:fa;position:relative;padding-left:2rem;
  font-size:.89rem;line-height:1.55;color:var(--ink-2)}
.fa-steps li::before{content:counter(fa);position:absolute;left:0;top:-.05rem;
  width:1.4rem;height:1.4rem;border-radius:50%;display:grid;place-items:center;
  background:var(--cyan-soft);color:var(--navy);
  font-family:var(--ff-mono);font-size:.7rem;font-weight:600}

.fa-alt{background:var(--navy);border-color:var(--navy);color:#fff}
.fa-alt .eyebrow{color:rgba(255,255,255,.7)}
.fa-line{display:flex;align-items:center;gap:.6rem;padding:.5rem 0;
  color:#fff!important;text-decoration:none!important;font-size:.94rem;
  border-bottom:1px solid rgba(255,255,255,.15);transition:.2s var(--ease)}
.fa-line:last-of-type{border-bottom:0}
.fa-line span{opacity:.65;font-size:1.05rem}
.fa-line:hover{color:var(--cyan)!important;padding-left:.25rem}
.fa-note{margin:.8rem 0 0;font-size:.78rem;color:rgba(255,255,255,.62);line-height:1.5}

/* ---------- grouped fields ---------- */
.fset{border:0;margin:0 0 1.6rem;padding:0;min-width:0}
.fset:last-of-type{margin-bottom:0}
.fset > legend{display:flex;align-items:center;gap:.65rem;padding:0;margin-bottom:1rem;
  font-family:var(--ff-mono);font-size:.7rem;letter-spacing:.15em;text-transform:uppercase;
  color:var(--ink-3);width:100%}
.fs-n{display:grid;place-items:center;width:1.55rem;height:1.55rem;border-radius:50%;
  background:var(--navy);color:#fff;font-size:.66rem;letter-spacing:0;flex:none}
.fset > legend::after{content:"";flex:1;height:1px;background:var(--line)}

/* ---------- responsive ---------- */
@media(max-width:1000px){
  .form-layout{grid-template-columns:1fr}
  /* Context first on a phone: read what it is, then fill it in. */
  .form-ctx{position:static;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr))}
}
@media(max-width:560px){
  .fa-card{padding:1.05rem 1.15rem}
  .fset{margin-bottom:1.3rem}
}

/* ==========================================================================
   SIDE DOCK — TOUR, CONTACT, APPLY
   --------------------------------------------------------------------------
   Book a tour and Apply Now have moved off the header and into the dock. Ten
   top-level nav items, a logo and two pills never fitted one row, and squeezing
   them was always going to fail at some width; the dock gives both actions a
   permanent home that no amount of nav growth can crowd out.

   Tiles are flush to the right edge, rounded on the left only, so the rail
   reads as attached to the viewport rather than floating in it. These rules
   come last on purpose — they supersede the older pill-shaped dock above.
   ========================================================================== */

.dock{position:fixed;right:0;top:50%;transform:translateY(-50%);bottom:auto;
  z-index:150;display:flex;flex-direction:column;gap:.5rem;align-items:flex-end}

.dock a,.dock button{
  -webkit-appearance:none;appearance:none;border:0;cursor:pointer;margin:0;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.3rem;
  width:74px;padding:.85rem .4rem;
  border-radius:16px 0 0 16px;
  font:inherit;font-size:.66rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:#fff!important;text-decoration:none!important;
  box-shadow:-6px 10px 24px -12px rgba(16,27,76,.5);
  transition:transform .25s var(--ease),box-shadow .25s var(--ease),filter .25s var(--ease)}

.dock svg{width:22px;height:22px;flex:none;fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round}
/* The pin and WhatsApp marks are solid shapes, not outlines. */
.dock .d-tour svg,.dock .d-wa svg{fill:currentColor;stroke:none}
.dock .dlbl{display:block;line-height:1}

.dock .d-tour{background:linear-gradient(150deg,#f79b3c,var(--flame))}
.dock .d-wa{background:linear-gradient(150deg,#3ddc7f,#22c55e)}
.dock .d-apply{background:linear-gradient(150deg,#4cc3f5,#22a7e0)}

.dock a:hover,.dock button:hover{transform:translateX(-4px);filter:brightness(1.05);
  box-shadow:-10px 14px 30px -12px rgba(16,27,76,.6)}
.dock a:focus-visible,.dock button:focus-visible{outline:2px solid var(--navy);outline-offset:3px}

/* On a phone the rail becomes a bottom bar — a right-edge column would cover
   half the reading width. */
@media(max-width:720px){
  .dock{right:0;left:0;top:auto;bottom:0;transform:none;
    flex-direction:row;gap:0;align-items:stretch;
    background:rgba(255,255,255,.96);backdrop-filter:blur(12px);
    border-top:1px solid var(--line);box-shadow:0 -8px 24px -16px rgba(16,27,76,.5)}
  .dock a,.dock button{flex:1;width:auto;border-radius:0;padding:.7rem .3rem .8rem;
    box-shadow:none;font-size:.62rem}
  .dock a:hover,.dock button:hover{transform:none}
  /* Keep the footer clear of the bar. */
  .md-footer{padding-bottom:5.5rem}
}
@media(prefers-reduced-motion:reduce){
  .dock a:hover,.dock button:hover{transform:none}
}
@media print{.dock{display:none}}

/* The header no longer carries call-to-action pills — they live in the dock —
   so the nav has the row to itself and simply needs room to breathe. */
.md-header .prev-nav{margin-left:auto}
@media(min-width:1241px) and (max-width:1500px){
  .prev-nav{font-size:.85rem}
  .prev-nav .nav-item > a{padding:.5rem .5rem}
}

/* The alternate palette blocks earlier in this file recolour the dock tiles —
   one of them turns Tour blue. Tour is the school's orange whatever palette is
   in use, so pin it here, last, where nothing further can override it. */
.dock .d-tour,
.dock a.d-tour{background:linear-gradient(150deg,#f79b3c,var(--flame))!important;color:#fff!important}
.dock .d-wa,
.dock a.d-wa{background:linear-gradient(150deg,#3ddc7f,#22c55e)!important;color:#fff!important}
.dock .d-apply,
.dock a.d-apply,
.dock button.d-apply{background:linear-gradient(150deg,#4cc3f5,#22a7e0)!important;color:#fff!important}

/* Two docks used to render — one from the dock pattern, one baked into the
   footer pattern. Both are correct now, but if a stored footer still holds an
   old copy, only show the first so they cannot stack. */
.dock ~ .dock{display:none}

/* ==========================================================================
   BRANDED FORM PANEL — REBALANCED
   --------------------------------------------------------------------------
   The blue side used to hold a crest, a title and four contact lines, while
   the form beside it ran to twice the height — so most of the panel was empty
   navy. It now carries the whole "what this is / when we reply / what happens
   next" story, and the form no longer renders a second context column of its
   own (the shortcode is called with context="no").

   The crest also sat inside a white circle, which fought the crest's own round
   badge. It now sits on the navy directly.
   ========================================================================== */

.md-form-card{grid-template-columns:minmax(0,.92fr) minmax(0,1.08fr)}

.form-aside{display:flex;flex-direction:column;gap:1rem;justify-content:flex-start}

/* No white disc behind the crest — the mark already carries its own ring. */
.form-aside .brand-crest{width:66px;height:auto;margin:0 0 .2rem;padding:0;
  background:none;border-radius:0;
  filter:drop-shadow(0 8px 18px rgba(0,0,0,.28))}

.form-aside .fa-title{margin:0;font-size:clamp(1.45rem,2.4vw,1.95rem);line-height:1.14;
  letter-spacing:-.03em}
.form-aside .fa-blurb{margin:0;font-size:1rem;line-height:1.55;color:rgba(255,255,255,.9)}
.form-aside .fa-what{margin:0;font-size:.9rem;line-height:1.6;color:rgba(255,255,255,.7)}

.form-aside .fa-reply{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;
  margin:0;padding:.85rem 1rem;border:0;border-radius:var(--r-sm);
  background:rgba(255,255,255,.09)}
.form-aside .fa-reply span{font-family:var(--ff-mono);font-size:.62rem;letter-spacing:.14em;
  text-transform:uppercase;color:rgba(255,255,255,.6)}
.form-aside .fa-reply b{font-size:.9rem;color:#ffc98a;text-align:right}

.form-aside .fa-block{padding-top:1rem;border-top:1px solid rgba(255,255,255,.16)}
.form-aside .eyebrow{color:rgba(255,255,255,.62);margin:0 0 .7rem}

.form-aside .fa-steps{list-style:none;counter-reset:fa;margin:0;padding:0;display:grid;gap:.7rem}
.form-aside .fa-steps li{counter-increment:fa;position:relative;padding-left:2rem;
  font-size:.88rem;line-height:1.5;color:rgba(255,255,255,.86)}
.form-aside .fa-steps li::before{content:counter(fa);position:absolute;left:0;top:-.05rem;
  width:1.4rem;height:1.4rem;border-radius:50%;display:grid;place-items:center;
  background:rgba(255,255,255,.14);color:#fff;
  font-family:var(--ff-mono);font-size:.68rem;font-weight:600}

.form-aside .fa-contacts{margin-top:auto}

/* The form fills the card on its own when the panel carries the context. */
.form-layout.is-solo{display:block}
.form-layout.is-solo .form-body{padding:clamp(1.8rem,3.5vw,2.8rem)}

@media(max-width:880px){
  .form-aside{gap:.85rem}
  .form-aside .fa-contacts{margin-top:0}
}
