:root{
  --paper:#F8F6F3; --paper-2:#F1EDEB; --paper-cool:#DEEDF3;
  --ink:#33312E; --ink-soft:#54514C; --muted:#989088;
  --line:#EAE6E1; --line-cool:#DEEDF3;
  --pewter-300:#BACDC0; --pewter-400:#AAC0B3; --pewter-700:#70877A;
  --glacier-50:#DEEDF3; --glacier-300:#BAD6E0; --glacier-400:#A7CBD6;
  --glacier-700:#71A8B5; --glacier-950:#4C7B85;
  --tide-50:#F1EDEB; --tide-200:#E3DDD9;
  --ice:var(--glacier-300); --ice-pale:var(--glacier-50); --dove:var(--glacier-400);
  --sage:var(--pewter-300); --sage-grey:var(--pewter-400);
  --ice-deep:#71A8B5; --sage-deep:#70877A;
  --copper:#71A8B5;            /* accent unified to glacier #71A8B5 */
  --accent:#71A8B5;
  --color-bg:#F8F6F3; --color-surface:var(--paper-cool);
  --color-ink:var(--ink); --color-text:var(--ink-soft); --color-muted:var(--muted);
  --color-line:var(--line); --color-accent:var(--ice-deep); --color-accent-2:var(--sage-deep);
  --font-display:"Cormorant Garamond","Playfair Display",Georgia,serif;
  --font-body:"Poppins",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --maxw:1720px; --maxw-text:1200px;
  --gutter:clamp(1.5rem,3.5vw,4.5rem);
  --section-y:clamp(4rem,8vw,9rem);
  --fs-hero:clamp(1.75rem,1.2rem + 2.6vw,2.5rem); --fs-h2:clamp(1.375rem,1.1rem + 1.2vw,1.625rem);
  --fs-h3:clamp(1.125rem,1rem + .5vw,1.25rem); --fs-lead:clamp(1rem,.9rem + .4vw,1.125rem);
  --fs-body:0.875rem; --fs-small:0.75rem; --fs-micro:0.75rem;
  --track-wide:0.22em; --track-mega:0.34em;
  --ease:cubic-bezier(.16,.84,.32,1);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
body{font-family:var(--font-body);font-size:var(--fs-body);font-weight:400;line-height:1.8;
  color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;overflow-x:hidden;}
h1,h2,h3,h4{font-family:var(--font-display);color:var(--color-ink);font-weight:400;line-height:1.16;letter-spacing:.002em;}
h1{font-size:var(--fs-hero);} h2{font-size:var(--fs-h2);} h3{font-size:var(--fs-h3);}
h1 em,h2 em,h3 em{font-style:italic;font-weight:400;}
p{font-size:var(--fs-body);}
a{color:inherit;text-decoration:none;transition:color .4s var(--ease),opacity .4s var(--ease);}
img{max-width:100%;display:block;}
ul,ol{list-style:none;}
::selection{background:var(--ice-pale);color:var(--ink);}
.container{width:100%;max-width:var(--maxw);margin-inline:auto;padding-inline:var(--gutter);}
.container--narrow{max-width:1080px;}
.kicker{font-family:var(--font-body);font-size:var(--fs-micro);font-weight:400;
  letter-spacing:var(--track-mega);text-transform:uppercase;color:var(--color-muted);display:inline-block;}
.rule{height:1px;background:var(--color-line);border:0;}
.reveal{opacity:0;transform:translateY(32px);transition:opacity 1.4s var(--ease),transform 1.4s var(--ease);}
.reveal.in{opacity:1;transform:none;}
.reveal[data-d="1"]{transition-delay:.14s;} .reveal[data-d="2"]{transition-delay:.28s;}
.reveal[data-d="3"]{transition-delay:.42s;} .reveal[data-d="4"]{transition-delay:.56s;}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;}
  .reveal{opacity:1;transform:none;} html{scroll-behavior:auto;}}

/* ===================== ARTICLE PAGE ===================== */
.art-hero{padding-top:clamp(8rem,14vh,11rem);padding-bottom:clamp(2.5rem,5vw,4rem);}
.art-hero__crumbs{display:flex;align-items:center;gap:.7rem;font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--color-muted);margin-bottom:clamp(2rem,4vw,3rem);}
.art-hero__crumbs a:hover{color:var(--ice-deep);}
.art-hero__crumbs .sep{opacity:.5;}
.art-hero__grid{display:grid;grid-template-columns:1fr;gap:clamp(1.6rem,3vw,2.4rem);max-width:none;}
.art-hero__cat{color:var(--copper);letter-spacing:var(--track-mega);}
.art-hero__title{font-size:clamp(1.75rem,1.2rem + 2.6vw,2.5rem);line-height:1.16;letter-spacing:.008em;max-width:none;}
.art-hero__meta{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.2rem 1.4rem;font-size:var(--fs-small);color:var(--color-muted);letter-spacing:.04em;}.art-hero__read{white-space:nowrap;}
.art-share{display:flex;align-items:center;gap:.7rem;margin-left:auto;}
.art-share__label{font-size:var(--fs-micro);letter-spacing:.16em;text-transform:uppercase;color:var(--color-muted);margin-right:.2rem;}
.art-share__btn{width:38px;height:38px;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);border-radius:50%;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;position:relative;transition:border-color .4s var(--ease),color .4s var(--ease),transform .4s var(--ease);}
.art-share__btn:hover{border-color:var(--accent);color:var(--accent);transform:translateY(-2px);}
.art-share__copied{position:absolute;top:-30px;left:50%;transform:translateX(-50%);font-family:var(--font-body);font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:#fff;background:var(--accent);padding:.25rem .5rem;border-radius:3px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .3s var(--ease);}
.art-share__copied.show{opacity:1;}
@media (max-width:520px){.art-hero__meta{justify-content:flex-start;}.art-share{margin-left:0;width:100%;}}

.art-hero__meta .dot{width:3px;height:3px;border-radius:50%;background:var(--sage-grey);display:inline-block;}

.art-figure{position:relative;max-width:var(--maxw-text);margin-inline:auto;margin-block:clamp(1rem,2vw,2rem) clamp(2.5rem,5vw,4rem);}
.art-figure__frame{position:relative;overflow:hidden;background:var(--paper-cool);border:1px solid var(--line);}
.art-figure__frame img{width:100%;height:auto;display:block;}
.art-figure__cap{margin-top:.9rem;font-size:clamp(.58rem,1vw,var(--fs-micro));letter-spacing:.02em;color:var(--color-muted);font-style:italic;max-width:100%;line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.art-lead{font-family:var(--font-display);font-size:clamp(1.35rem,2.3vw,1.95rem);line-height:1.45;color:var(--ink);font-weight:400;max-width:32ch;}
.art-body{max-width:var(--maxw-text);margin-inline:auto;}
.art-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:0;}

/* lead + key metrics sit in a wider editorial band */
.art-intro{display:block;
  padding-bottom:clamp(2.5rem,5vw,4rem);margin-bottom:clamp(2.5rem,5vw,4rem);border-bottom:1px solid var(--accent);}
.art-stats{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);}
.art-stat{background:var(--paper);padding:clamp(1.2rem,2.2vw,1.8rem);}
.art-stat__n{font-family:var(--font-display);font-size:clamp(1.8rem,3vw,2.6rem);color:var(--copper);line-height:1;margin-bottom:.5rem;}
.art-stat__l{font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;color:var(--color-muted);line-height:1.5;}

.prose h2{font-size:var(--fs-h2);margin-top:clamp(2.6rem,5vw,3.6rem);margin-bottom:1.1rem;letter-spacing:.004em;}
.prose h2:first-child{margin-top:0;}
.prose h3{font-size:var(--fs-h3);margin-top:clamp(2rem,3.5vw,2.6rem);margin-bottom:.9rem;color:var(--ink);}
.prose p{margin-bottom:1.4rem;color:var(--ink-soft);line-height:1.85;}
.prose p .q{color:var(--ink);font-style:italic;}
.prose strong{color:var(--ink);font-weight:500;}
.prose .lede-q{font-family:var(--font-display);font-style:italic;font-size:clamp(1.15rem,1.8vw,1.4rem);color:var(--ice-deep);line-height:1.5;margin:clamp(1.2rem,2vw,1.6rem) 0;}
.prose ul{margin:0 0 1.6rem;display:grid;gap:.85rem;}
.prose ul li{position:relative;padding-left:1.6rem;color:var(--ink-soft);line-height:1.75;}
.prose ul li::before{content:"";position:absolute;left:0;top:.7em;width:7px;height:1px;background:var(--copper);}
.prose ul li strong{color:var(--ink);}

.art-pull{border-left:2px solid var(--copper);padding:.4rem 0 .4rem 1.6rem;margin:clamp(2rem,4vw,2.8rem) 0;
  font-family:var(--font-display);font-size:clamp(1.3rem,2.1vw,1.7rem);line-height:1.4;color:var(--ink);font-style:italic;}

.art-refs{margin-top:clamp(2.2rem,4vw,3.2rem);padding:clamp(1.4rem,2.4vw,1.9rem) clamp(1.4rem,2.4vw,1.8rem);background:var(--paper-2);border-radius:2px;}.art-section-end{border:0;border-top:1px solid var(--line);margin-top:clamp(2.4rem,4vw,3.2rem);}
.art-refs h4{font-family:var(--font-body);font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--accent);margin-bottom:.7rem;}
.art-refs p{font-size:var(--fs-small);color:var(--muted);line-height:1.7;margin:0;}
.art-refs a{color:var(--ice-deep);border-bottom:1px solid transparent;}
.art-refs a:hover{border-bottom-color:var(--ice-deep);}

/* next / prev article nav */
.art-more{border-top:0;padding-top:clamp(2.6rem,5vw,4rem);padding-bottom:clamp(4rem,8vw,7rem);}
.art-more__bar{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:clamp(1.6rem,3vw,2.2rem);}
.art-more__head{text-align:left;margin-bottom:0;}
.art-more__head .kicker{color:var(--accent);margin-bottom:.6rem;display:block;}
.art-more__head h2{font-size:1.625rem;}
.kn-ctrls{display:flex;gap:.7rem;flex:none;}
.kn-arrow{width:46px;height:46px;border:1px solid var(--line);background:var(--paper);color:var(--ink-soft);border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:border-color .4s var(--ease),color .4s var(--ease),background .4s var(--ease);}
.kn-arrow:hover{border-color:var(--accent);color:var(--accent);}
.kn-arrow:disabled{opacity:.3;cursor:default;}
.kn-carousel{overflow:hidden;}
.kn-track{display:flex;gap:clamp(1.2rem,2.4vw,2rem);overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding-bottom:.4rem;}
.kn-track::-webkit-scrollbar{display:none;}
.kn-card{flex:0 0 350px;max-width:350px;display:flex;flex-direction:column;border:1px solid var(--line);background:var(--paper);transition:border-color .5s var(--ease),transform .6s var(--ease),box-shadow .6s var(--ease);}
.kn-card:hover{border-color:var(--accent);transform:translateY(-4px);box-shadow:0 18px 40px -28px rgba(76,123,133,.45);}
.kn-card__media{background:var(--paper-cool);overflow:hidden;}
.kn-card__media img{width:100%;height:auto;display:block;transition:transform 1.2s var(--ease);}
.kn-card:hover .kn-card__media img{transform:scale(1.04);}
.kn-card__b{padding:clamp(1.2rem,2vw,1.6rem);display:flex;flex-direction:column;flex:1;}
.kn-card__cat{font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);}
.kn-card__t{font-family:var(--font-body);font-weight:500;font-size:var(--fs-h3);line-height:1.3;letter-spacing:.005em;margin-top:.6rem;color:var(--ink);}
.kn-card__more{display:inline-block;margin-top:auto;padding-top:.9rem;font-size:var(--fs-small);letter-spacing:.06em;color:var(--accent);}
.kn-card__more span{border-bottom:1px solid var(--accent);padding-bottom:.3rem;}
@media (max-width:760px){.kn-card{flex:0 0 86%;max-width:86%;}}
@media (max-width:620px){.art-more__bar{flex-direction:column;align-items:flex-start;}}
.art-more__head{text-align:center;margin-bottom:clamp(2.2rem,4vw,3.2rem);}
.art-more__head .kicker{margin-bottom:1rem;}
.art-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.4vw,2rem);}
.art-card{display:block;border:1px solid var(--line);background:var(--paper);transition:border-color .5s var(--ease),transform .6s var(--ease);}
.art-card:hover{border-color:var(--ice-deep);transform:translateY(-4px);}
.art-card__media{background:var(--paper-cool);overflow:hidden;}
.art-card__media img{width:100%;height:auto;display:block;transition:transform 1.2s var(--ease);}
.art-card:hover .art-card__media img{transform:scale(1.05);}
.art-card__media--ph{display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--glacier-50),var(--tide-50));}
.art-card__ph-n{font-family:var(--font-display);font-size:2.4rem;color:var(--glacier-700);opacity:.5;}
.art-card__b{padding:clamp(1.2rem,2vw,1.6rem);}
.art-card__cat{font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--copper);}
.art-card__t{font-size:var(--fs-h3);line-height:1.25;margin-top:.7rem;color:var(--ink);}
.art-card__more{display:inline-block;margin-top:1.1rem;font-size:var(--fs-small);letter-spacing:.06em;color:var(--ice-deep);border-bottom:1px solid var(--ice-deep);padding-bottom:.3rem;}

 

@media (max-width:860px){
  .art-intro{grid-template-columns:1fr;}
  .art-grid{grid-template-columns:1fr;}
}
@media (max-width:560px){
  .art-stats{grid-template-columns:1fr 1fr;}
}

/* === NAVBAR + FOOTER (verbatim from shayne.html) === */
/* ============================================================
   NAVBAR — logo centred (closed) → shifts left when menu opens
   ============================================================ */
.nav {
  position: fixed; inset: 0 0 auto 0; z-index: 1000;
  transition: background .7s var(--ease), border-color .7s var(--ease);
  border-bottom: 1px solid transparent;
}
.nav__inner {
  display: grid; grid-template-columns: 1fr auto 1fr; align-items: center;
  min-height: 92px; gap: 1.5rem;
}

/* Logo — centred by default (Aman) */
.nav__logo {
  grid-column: 2; grid-row: 1; justify-self: center;
  display: block; line-height: 0; position: relative;
  transition: transform .8s var(--ease);
}
.nav__logo img { height: 22px; width: auto; }

/* Burger — left */
.nav__burger {
  grid-column: 1; grid-row: 1; justify-self: start;
  display: flex; flex-direction: column; gap: 6px; width: 40px; height: 40px;
  align-items: flex-start; justify-content: center; background: none; border: none; cursor: pointer;
}
.nav__burger span { width: 26px; height: 1px; background: var(--color-ink); transition: transform .5s var(--ease), opacity .5s var(--ease), width .5s var(--ease), background .7s var(--ease); }
.nav__burger span:nth-child(2) { width: 18px; }
.nav__burger.open span:nth-child(1) { transform: translateY(3.5px) rotate(45deg); width: 26px; }
.nav__burger.open span:nth-child(2) { transform: translateY(-3.5px) rotate(-45deg); width: 26px; }

/* CTA on the right (closed bar) */
.nav__cta {
  grid-column: 3; grid-row: 1; justify-self: end;
  font-family: var(--font-body); font-size: var(--fs-small);
  font-weight: 400; letter-spacing: 0.12em; text-transform: uppercase;
  color: var(--color-ink); position: relative; padding-block: .4rem; white-space: nowrap;
}
.nav__cta::after { content: ""; position: absolute; left: 0; bottom: .15rem; width: 0; height: 1px; background: currentColor; transition: width .6s var(--ease); }
.nav__cta:hover::after { width: 100%; }

/* Dark theme over hero — keep burger + cta black for contrast (logo stays dark) */
.nav[data-theme="dark"]:not(.scrolled) .nav__cta { color: #000000; }
.nav[data-theme="dark"]:not(.scrolled) .nav__burger span { background: #000000; }

/* Scrolled — warm frosted bar */
.nav.scrolled {
  background: rgba(248,246,243,.88);
  backdrop-filter: saturate(120%) blur(18px); -webkit-backdrop-filter: saturate(120%) blur(18px);
  border-bottom-color: var(--color-line);
}
.nav.scrolled .nav__inner { min-height: 70px; }
.nav.scrolled .nav__cta { color: var(--color-ink); }
.nav.scrolled .nav__burger span { background: var(--color-ink); }

/* ===== Menu OPEN: logo slides to top-left, burger/cta hidden, dark ink ===== */
body.menu-open .nav__inner { grid-template-columns: auto 1fr auto; }
body.menu-open .nav__logo {
  grid-column: 1; justify-self: start; transform: none;
}
body.menu-open .nav__inner > .nav__cta { opacity: 0; pointer-events: none; }
body.menu-open .nav__burger { grid-column: 3; justify-self: end; }
body.menu-open .nav__burger span { background: #000000; }
.nav__burger.open span { background: #000000; }

/* ===== Full overlay drawer (0do style) ===== */
.nav__menu {
  position: fixed; inset: 0; z-index: 1900;
  display: flex; flex-direction: column; justify-content: center;
  padding: clamp(5rem, 12vh, 8rem) clamp(2.5rem, 8vw, 8rem) clamp(2rem, 6vh, 4rem);
  background: var(--paper);
  opacity: 0; visibility: hidden; transform: scale(1.02);
  transition: opacity .7s var(--ease), transform .9s var(--ease), visibility .7s var(--ease);
}
.nav__menu.open { opacity: 1; visibility: visible; transform: none; }

/* Links list — left aligned */
.nav__menu-links { display: flex; flex-direction: column; align-items: flex-start; gap: clamp(.8rem, 2vw, 1.5rem); }
/* Display-type styling shared by top-level links and the dropdown toggle */
.nav__menu-links > a,
.nav__dd-link {
  font-family: var(--font-display); font-weight: 400;
  font-size: clamp(1.8rem, 4vw, 3rem); letter-spacing: .01em; line-height: 1.1;
  color: var(--ink); position: relative; padding-block: .15rem;
}
/* Reveal stagger — applies to each top-level item (link or dropdown wrapper) */
.nav__menu-links > a,
.nav__menu-links > .nav__dd {
  opacity: 0; transform: translateY(16px);
  transition: color .5s var(--ease), opacity .8s var(--ease), transform .8s var(--ease);
}
.nav__menu.open .nav__menu-links > a,
.nav__menu.open .nav__menu-links > .nav__dd { opacity: 1; transform: none; }
.nav__menu.open .nav__menu-links > *:nth-child(1) { transition-delay: .12s; }
.nav__menu.open .nav__menu-links > *:nth-child(2) { transition-delay: .18s; }
.nav__menu.open .nav__menu-links > *:nth-child(3) { transition-delay: .24s; }
.nav__menu.open .nav__menu-links > *:nth-child(4) { transition-delay: .30s; }
.nav__menu.open .nav__menu-links > *:nth-child(5) { transition-delay: .36s; }
.nav__menu.open .nav__menu-links > *:nth-child(6) { transition-delay: .42s; }
.nav__menu-links > a:hover,
.nav__menu-links > a.active,
.nav__dd-link:hover { color: var(--ice-deep); }
.nav__menu-links > a.active::after,
.nav__menu-links > a:hover::after,
.nav__dd-link:hover::after {
  content: ""; position: absolute; left: 0; bottom: -.1rem;
  width: clamp(70px, 8vw, 110px); height: 1px; background: currentColor;
}

/* ===== Program dropdown (within the overlay menu) ===== */
.nav__dd { position: relative; display: flex; flex-direction: column; align-items: flex-start; }
/* Program link + caret toggle sit on one row; submenu drops below */
.nav__dd-head { display: inline-flex; align-items: center; gap: .5rem; }
.nav__dd-toggle {
  display: inline-flex; align-items: center;
  background: none; border: 0; cursor: pointer; padding: .2rem;
  color: var(--ink); line-height: 0;
}
.nav__dd-toggle:hover { color: var(--ice-deep); }
.nav__dd-caret {
  width: clamp(18px, 2.2vw, 26px); height: clamp(18px, 2.2vw, 26px);
  flex: none; transition: transform .45s var(--ease);
}
.nav__dd:hover .nav__dd-caret,
.nav__dd.open .nav__dd-caret { transform: rotate(180deg); }
.nav__dd-menu {
  display: grid; gap: clamp(.45rem, 1vw, .75rem);
  padding-left: clamp(.9rem, 2vw, 1.5rem);
  max-height: 0; overflow: hidden; opacity: 0; margin-top: 0;
  transition: max-height .55s var(--ease), opacity .45s var(--ease), margin-top .45s var(--ease);
}
.nav__dd:hover .nav__dd-menu,
.nav__dd.open .nav__dd-menu {
  max-height: 60vh; opacity: 1; margin-top: clamp(.5rem, 1.4vw, 1rem);
}
.nav__dd-menu a {
  font-family: var(--font-body); font-weight: 300;
  font-size: clamp(1rem, 1.5vw, 1.2rem); letter-spacing: .02em; line-height: 1.3;
  color: var(--ink-soft); width: max-content; max-width: 100%;
  position: relative; transition: color .4s var(--ease);
}
.nav__dd-menu a:hover { color: var(--ice-deep); }

/* Bottom-right actions (contact + book) */
.nav__menu-actions {
  position: absolute; right: clamp(2.5rem, 8vw, 8rem); bottom: clamp(2rem, 6vh, 4rem);
  display: flex; align-items: center; gap: clamp(1.5rem, 3vw, 2.5rem);
  opacity: 0; transform: translateY(12px);
  transition: opacity .8s var(--ease) .4s, transform .8s var(--ease) .4s;
}
.nav__menu.open .nav__menu-actions { opacity: 1; transform: none; }
.nav__menu-contact {
  font-family: var(--font-body); font-size: var(--fs-small);
  letter-spacing: .08em; color: var(--ink-soft); position: relative; padding-left: 3rem;
}
.nav__menu-contact::before {
  content: ""; position: absolute; left: 0; top: 50%; width: 2rem; height: 1px; background: currentColor;
}
.nav__menu-contact:hover { color: var(--ice-deep); }
.nav__menu-actions .nav__cta {
  position: static; grid-column: auto; justify-self: auto;
  font-family: var(--font-body); font-size: var(--fs-small);
  text-transform: uppercase; letter-spacing: .12em; color: var(--ink-soft);
  border: 1px solid var(--line); padding: .9rem 2rem; background: var(--paper-2);
}
.nav__menu-actions .nav__cta::after { display: none; }
.nav__menu-actions .nav__cta:hover { background: var(--ice-deep); color: #fff; border-color: var(--ice-deep); }

/* keep logo + burger above the overlay while open */
body.menu-open .nav { z-index: 2000; }
/* backdrop-filter on .nav makes it a containing block for the fixed menu,
   collapsing the overlay to the header height — disable it while open */
body.menu-open .nav.scrolled { backdrop-filter: none; -webkit-backdrop-filter: none; background: transparent; border-bottom-color: transparent; }
body.menu-open .nav__menu { z-index: 2000; }
.nav__menu.open ~ .nav__inner,
body.menu-open .nav__burger,
body.menu-open .nav__logo { z-index: 2010; }

@media (max-width: 600px) {
  /* Links group toward the top/center, actions pinned to the bottom */
  .nav__menu { align-items: stretch; justify-content: space-between; padding-block: clamp(7rem, 16vh, 9rem) clamp(2.5rem, 6vh, 3.5rem); }
  .nav__menu-actions { position: static; margin-top: 0; flex-direction: column; align-items: center; gap: 1.25rem; }
  .nav__menu-actions .nav__cta { width: 100%; max-width: 280px; text-align: center; }
  /* Center the logo and hide the Book CTA on mobile */
  .nav__inner { grid-template-columns: 1fr auto 1fr; }
  .nav__logo { grid-column: 2; justify-self: center; transform: none; }
  .nav__burger { grid-column: 1; justify-self: start; }
  .nav__inner > .nav__cta { display: none; }
  /* Keep logo centered even when the menu is open */
  body.menu-open .nav__inner { grid-template-columns: 1fr auto 1fr; }
  body.menu-open .nav__logo { grid-column: 2; justify-self: center; }
  body.menu-open .nav__burger { grid-column: 3; justify-self: end; }
  /* Center the open menu links */
  .nav__menu-links { align-items: center; text-align: center; justify-content: center; }
  /* Program dropdown — centre on mobile to match the centred menu */
  .nav__dd { align-items: center; }
  .nav__dd-toggle { justify-content: center; }
  .nav__dd-menu { padding-left: 0; justify-items: center; text-align: center; }
  .nav__menu-links a.active::after,
  .nav__menu-links a:hover::after { left: 50%; transform: translateX(-50%); }
  .nav__menu-contact { padding-left: 0; }
  .nav__menu-contact::before { display: none; }
}

.footer {
  background: var(--glacier-50);
  color: var(--ink-soft);
  padding-top: clamp(4rem, 9vw, 7rem);
}
.footer a { color: var(--ink-soft); }
.footer a:hover { color: var(--ice-deep); }
.footer__h {
  display: block; font-size: var(--fs-micro);
  letter-spacing: var(--track-wide); text-transform: uppercase;
  color: var(--glacier-950); margin-bottom: 1.3rem;
}

.footer__top {
  display: grid; grid-template-columns: 1.4fr 2fr;
  gap: clamp(2rem, 5vw, 5rem);
  padding-bottom: clamp(3rem, 6vw, 5rem);
}
.footer__logo { height: 20px; width: auto; margin-bottom: 1.6rem; opacity: .95; }
.footer__tagline { font-family: var(--font-body); font-size: .9rem; line-height: 1.6; color: var(--ink); max-width: 30ch; font-weight: 300; margin-top: 1.6rem; }

/* Follow us — sits below the tagline */
.footer__brand .footer__follow { margin-top: 1.6rem; }

.footer__nav { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; }
.footer__col a { display: block; font-size: var(--fs-small); margin-bottom: .9rem; }

.footer__bottom {
  display: flex; justify-content: space-between; align-items: center; gap: clamp(1rem, 3vw, 2rem); flex-wrap: nowrap;
  margin-top: clamp(3rem, 6vw, 5rem); padding-top: clamp(1.8rem, 3vw, 2.6rem); padding-bottom: clamp(1.8rem, 3vw, 2.6rem);
  border-top: 1px solid var(--glacier-300);
  font-size: var(--fs-micro); letter-spacing: .03em; color: var(--color-muted);
}
.footer__bottom-logo { flex: none; display: block; line-height: 0; }
.footer__bottom-logo img { height: clamp(22px, 2.6vw, 30px); width: auto; opacity: .95; }

.footer__follow { display: flex; align-items: center; gap: clamp(.8rem, 2vw, 1.4rem); }
.footer__follow-label { font-family: var(--font-body); font-size: var(--fs-small); color: var(--ink-soft); letter-spacing: .02em; white-space: nowrap; }
.footer__icons { display: flex; align-items: center; gap: clamp(.8rem, 1.8vw, 1.5rem); }
.footer__icons a { color: var(--glacier-950); display: inline-flex; transition: color .4s var(--ease), transform .4s var(--ease); }
.footer__icons a:hover { color: var(--ice-deep); transform: translateY(-2px); }

.footer__copy { margin: 0; text-align: left; line-height: 1.6; white-space: nowrap; }

@media (max-width: 860px) {
  .footer__top { grid-template-columns: 1fr; gap: 2.5rem; }
  .footer__nav { grid-template-columns: 1fr 1fr; }
  .footer__bottom { flex-direction: column; align-items: flex-start; gap: 1.6rem; flex-wrap: wrap; }
  .footer__copy { text-align: left; white-space: normal; }
}
@media (max-width: 560px) {
  .footer__nav { grid-template-columns: 1fr; }
  .footer__follow { flex-wrap: wrap; }
}
