

:root{
  --ink:#101C2E;
  --ink-2:#1B2C44;
  --ink-3:#2C3F59;
  --brass:#C6A15B;
  --brass-lite:#E4CE9B;
  --ivy:#24402F;
  --stone:#EDEBE4;
  --stone-2:#E2DFD5;
  --paper:#FAF9F5;
  --text:#22303F;
  --muted:#5B6875;
  --rule:rgba(16,28,46,.14);
  --shadow:0 18px 40px -24px rgba(16,28,46,.45);
  --wrap:1160px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:var(--stone);
  color:var(--text);
  font-family:"Archivo",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  font-size:17px;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;display:block}
a{color:inherit}
h1,h2,h3,h4{font-family:"Spectral",Georgia,serif;font-weight:600;line-height:1.15;margin:0;letter-spacing:-.01em}
p{margin:0 0 1.05em}
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 24px}
.eyebrow{
  font-family:"Barlow Condensed",sans-serif;
  text-transform:uppercase;
  letter-spacing:.18em;
  font-weight:600;
  font-size:15px;
  color:var(--brass);
  margin:0 0 14px;
}
.eyebrow.dark{color:#8A6E2F}
.section{padding:92px 0}
.section-head{max-width:660px;margin-bottom:52px}
.section-head h2{font-size:clamp(30px,4vw,44px)}
.section-head p{margin-top:16px;color:var(--muted);font-size:18px}
.lede{font-size:19px;color:var(--muted)}

/* ---------- buttons ---------- */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:"Barlow Condensed",sans-serif;
  text-transform:uppercase;letter-spacing:.14em;font-weight:600;font-size:16px;
  padding:15px 28px;border:1px solid transparent;border-radius:2px;
  text-decoration:none;cursor:pointer;transition:background .18s,color .18s,border-color .18s,transform .18s;
}
.btn-primary{background:var(--brass);color:var(--ink);border-color:var(--brass)}
.btn-primary:hover{background:var(--brass-lite);border-color:var(--brass-lite)}
.btn-ghost{border-color:rgba(255,255,255,.45);color:#fff}
.btn-ghost:hover{border-color:#fff;background:rgba(255,255,255,.08)}
.btn-ink{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn-ink:hover{background:var(--ink-2);border-color:var(--ink-2)}
.btn-outline-ink{border-color:var(--ink);color:var(--ink)}
.btn-outline-ink:hover{background:var(--ink);color:var(--paper)}
.btn:focus-visible,a:focus-visible,button:focus-visible{outline:3px solid var(--brass);outline-offset:3px}

/* ---------- top bar + nav ---------- */
.topbar{background:var(--ink);color:rgba(255,255,255,.72);font-size:14px}
.topbar .wrap{display:flex;flex-wrap:wrap;gap:6px 26px;align-items:center;justify-content:flex-end;min-height:42px;padding-top:8px;padding-bottom:8px}
.topbar a{text-decoration:none;display:inline-flex;align-items:center;gap:7px}
.topbar a:hover{color:#fff}
.topbar .portal{color:var(--brass-lite);font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-weight:600;font-size:15px}

.nav{position:sticky;top:0;z-index:60;background:var(--paper);border-bottom:2px solid var(--brass);box-shadow:0 10px 24px -22px rgba(16,28,46,.5)}
.nav .wrap{display:flex;align-items:center;justify-content:space-between;min-height:82px;gap:20px}
.brand{display:flex;align-items:center;text-decoration:none;color:var(--ink);padding:0}
.brand-logo{height:68px;width:auto}
.nav-links{display:flex;align-items:center;gap:30px;list-style:none;margin:0;padding:0}
.nav-links a{
  text-decoration:none;color:var(--ink);
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-weight:600;font-size:16px;
  padding:6px 0;border-bottom:2px solid transparent;
}
.nav-links a:hover{color:#8A6E2F;border-bottom-color:var(--brass)}
.nav-links a.nav-cta{padding:11px 24px;font-size:15px;color:var(--paper);border-bottom-color:transparent}
.nav-links a.nav-cta:hover{color:var(--paper);background:var(--ink-2);border-bottom-color:transparent}
.nav-toggle{display:none;background:none;border:1px solid rgba(16,28,46,.3);border-radius:2px;padding:9px 11px;cursor:pointer}
.nav-toggle span{display:block;width:22px;height:2px;background:var(--ink);margin:4px 0}

/* ---------- hero ---------- */
.hero{position:relative;background:var(--ink);color:#fff;overflow:hidden}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center 38%}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(10,18,30,.93) 0%,rgba(10,18,30,.84) 40%,rgba(10,18,30,.50) 70%,rgba(10,18,30,.24) 100%);
}
.hero-inner{position:relative;padding:104px 0 96px;max-width:660px}
.hero h1{font-size:clamp(38px,5.6vw,62px);line-height:1.06}
.hero h1 em{font-style:italic;color:var(--brass-lite)}
.hero-sub{margin-top:22px;font-size:19px;color:rgba(255,255,255,.86);max-width:540px}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:34px}
.hero-facts{
  display:flex;flex-wrap:wrap;gap:14px 44px;margin-top:44px;padding-top:26px;
  border-top:1px solid rgba(198,161,91,.35);
}
.fact-k{font-family:"Spectral",serif;font-size:26px;color:var(--brass-lite);display:block;line-height:1.2}
.fact-v{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.15em;font-size:14px;color:rgba(255,255,255,.7)}
.enroll-flag{
  display:inline-flex;align-items:center;gap:12px;margin-bottom:24px;
  background:rgba(198,161,91,.14);border:1px solid rgba(198,161,91,.5);border-radius:2px;
  padding:9px 16px;
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.16em;font-weight:600;font-size:15px;color:var(--brass-lite);
}
.pulse{width:9px;height:9px;border-radius:50%;background:#5FD08C;box-shadow:0 0 0 0 rgba(95,208,140,.75);animation:pulse 2.4s infinite}
@keyframes pulse{70%{box-shadow:0 0 0 10px rgba(95,208,140,0)}100%{box-shadow:0 0 0 0 rgba(95,208,140,0)}}

/* ---------- plaque band (signature) ---------- */
.plaque-band{background:var(--ink-2);padding:0}
.plaque-grid{display:grid;grid-template-columns:1fr 1fr;gap:0}
.plaque{
  padding:64px 48px;color:#fff;position:relative;
  border-left:1px solid rgba(198,161,91,.28);
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;
}
.plaque:first-child{border-left:0}
.plaque-icon{width:58px;height:58px;color:var(--brass);margin-bottom:22px}
.plaque .eyebrow{margin-bottom:18px}
.flourish{display:block;width:132px;height:9px;margin:22px auto 0;position:relative}
.flourish::before{
  content:"";position:absolute;top:4px;left:0;right:0;height:1px;
  background:linear-gradient(90deg,rgba(198,161,91,0),rgba(198,161,91,.85),rgba(198,161,91,0));
}
.flourish::after{
  content:"";position:absolute;top:1px;left:50%;width:7px;height:7px;margin-left:-3.5px;
  background:var(--brass);transform:rotate(45deg);
}
.plaque .motto{font-family:"Spectral",serif;font-size:clamp(22px,2.6vw,30px);line-height:1.4;color:var(--brass-lite)}
.plaque .motto span{display:block}
.plaque .verse{font-family:"Spectral",serif;font-style:italic;font-size:clamp(19px,2.2vw,25px);color:rgba(255,255,255,.92);line-height:1.5;max-width:420px;margin:0}
.plaque .ref{
  display:block;margin-top:16px;
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.2em;font-size:14px;color:var(--brass);
  font-style:normal;
}

/* ---------- value cards ---------- */
.cards{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.card{
  background:var(--paper);border:1px solid var(--rule);border-radius:2px;padding:32px 26px;
  border-top:3px solid var(--brass);
}
.card h3{font-size:21px;margin-bottom:10px}
.card p{color:var(--muted);font-size:16px;margin:0}

/* ---------- languages strip ---------- */
.langs{background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.langs .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:18px 40px;padding-top:26px;padding-bottom:26px}
.langs .label{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.18em;font-weight:600;font-size:15px;color:#8A6E2F}
.langs ul{display:flex;flex-wrap:wrap;gap:14px 28px;list-style:none;margin:0;padding:0;font-family:"Spectral",serif;font-size:18px;color:var(--ink)}

/* ---------- curriculum ---------- */
.years{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.year{background:var(--paper);border:1px solid var(--rule);border-radius:2px;padding:34px 30px;display:flex;flex-direction:column}
.year-num{
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.2em;font-weight:600;font-size:14px;color:var(--brass);
  display:flex;align-items:center;gap:12px;margin-bottom:16px;
}
.year-num::after{content:"";flex:1;height:1px;background:var(--rule)}
.year h3{font-size:24px;margin-bottom:8px}
.year .sems{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:14px;color:var(--muted);margin-bottom:20px}
.year ul{list-style:none;margin:0 0 22px;padding:0}
.year li{padding:9px 0 9px 20px;border-bottom:1px solid var(--rule);position:relative;font-size:16px}
.year li:last-child{border-bottom:0}
.year li::before{content:"";position:absolute;left:0;top:18px;width:7px;height:1px;background:var(--brass)}
.year .more{margin-top:auto;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-weight:600;font-size:15px;color:var(--ink);text-decoration:none;border-bottom:1px solid var(--brass);align-self:flex-start;padding-bottom:2px}
.year .more:hover{color:#8A6E2F}
.curriculum-foot{margin-top:40px;display:flex;flex-wrap:wrap;gap:16px;align-items:center}

/* ---------- founder ---------- */
.founder{background:var(--ink);color:#fff}
.founder-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:64px;align-items:center}
.portrait{
  aspect-ratio:4/5;background:var(--ink-3);border:1px solid rgba(198,161,91,.4);border-radius:2px;
  display:grid;place-items:center;text-align:center;padding:24px;
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.16em;font-size:14px;color:rgba(255,255,255,.55);
  overflow:hidden;
}
.portrait img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.founder h2{font-size:clamp(28px,3.6vw,40px);color:#fff}
.founder .role{margin:14px 0 22px;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.16em;font-size:15px;color:var(--brass)}
.founder p{color:rgba(255,255,255,.8)}
.pullquote{
  margin:28px 0;padding:20px 0 20px 26px;border-left:2px solid var(--brass);
  font-family:"Spectral",serif;font-style:italic;font-size:21px;line-height:1.5;color:var(--brass-lite);
}
.creds{display:flex;flex-wrap:wrap;gap:10px;margin:26px 0 30px;list-style:none;padding:0}
.creds li{
  border:1px solid rgba(255,255,255,.22);border-radius:2px;padding:7px 14px;
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.12em;font-size:14px;color:rgba(255,255,255,.8);
}

/* ---------- steps ---------- */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--rule);background:var(--paper)}
.step{padding:38px 32px;border-left:1px solid var(--rule)}
.step:first-child{border-left:0}
.step .n{font-family:"Spectral",serif;font-size:40px;color:var(--brass);line-height:1;display:block;margin-bottom:14px}
.step h3{font-size:20px;margin-bottom:8px}
.step p{color:var(--muted);font-size:16px;margin:0}
.apply-cta{margin-top:40px;display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.apply-note{font-size:15px;color:var(--muted)}

/* ---------- give ---------- */
.give{background:var(--ivy);color:#fff}
.give-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:56px;align-items:center}
.give h2{color:#fff;font-size:clamp(28px,3.6vw,40px)}
.give p{color:rgba(255,255,255,.82)}
.give .eyebrow{color:#B7D3B8}
.give-list{list-style:none;margin:0;padding:0}
.give-list li{padding:14px 0;border-top:1px solid rgba(255,255,255,.18);font-size:16px}
.give-list li:last-child{border-bottom:1px solid rgba(255,255,255,.18)}

/* ---------- contact ---------- */
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:8px}
.contact-card{background:var(--paper);border:1px solid var(--rule);border-radius:2px;padding:30px 26px}
.contact-card .k{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.18em;font-size:14px;font-weight:600;line-height:1.4;color:#8A6E2F;display:block;margin:0 0 10px}
.contact-card a{font-family:"Spectral",serif;font-size:20px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--brass);word-break:break-word}
.contact-card a:hover{color:#8A6E2F}
.contact-card .note{font-size:15px;color:var(--muted);margin:10px 0 0}

/* ---------- footer ---------- */
.footer{background:var(--ink);color:rgba(255,255,255,.7);padding:64px 0 30px;font-size:15px}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:44px;padding-bottom:40px;border-bottom:1px solid rgba(255,255,255,.14)}

.footer ul{list-style:none;margin:0;padding:0}
.footer li{margin-bottom:10px}
.footer a{text-decoration:none}
.footer a:hover{color:#fff}
.footer .motto-sm{font-family:"Spectral",serif;font-style:italic;color:var(--brass-lite);margin-top:14px}
.colophon{padding-top:24px;display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;font-size:14px;color:rgba(255,255,255,.5)}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* ---------- responsive ---------- */
@media(max-width:1000px){
  .cards{grid-template-columns:repeat(2,1fr)}
  .years{grid-template-columns:1fr}
  .founder-grid{grid-template-columns:1fr;gap:36px}
  .portrait{max-width:340px;aspect-ratio:1/1}
  .give-grid{grid-template-columns:1fr;gap:32px}
  .steps{grid-template-columns:1fr}
  .step{border-left:0;border-top:1px solid var(--rule)}
  .step:first-child{border-top:0}
  .contact-grid{grid-template-columns:1fr}
  .footer-grid{grid-template-columns:1fr;gap:32px}
  .plaque-grid{grid-template-columns:1fr}
  .plaque{border-left:0;border-top:1px solid rgba(198,161,91,.28);padding:40px 24px}
  .plaque:first-child{border-top:0}
}
@media(max-width:820px){
  .nav-toggle{display:block}
  .nav-links{
    display:none;position:absolute;left:0;right:0;top:100%;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--paper);border-bottom:2px solid var(--brass);
    box-shadow:0 16px 26px -20px rgba(16,28,46,.55);padding:8px 24px 22px;
  }
  .nav-links.open{display:flex}
  .nav-links li{border-top:1px solid var(--rule)}
  .nav-links a{display:block;padding:15px 0;border-bottom:0}
  .nav-links a.nav-cta{display:flex;justify-content:center;margin-top:16px;padding:15px 24px}
  .nav .wrap{position:relative;min-height:72px}
  .brand-logo{height:56px}
  .section{padding:68px 0}
  .section-head{margin-bottom:38px}
  .hero-inner{padding:64px 0 60px;max-width:none;text-align:center}
  .hero-media::after{background:linear-gradient(180deg,rgba(10,18,30,.92) 0%,rgba(10,18,30,.88) 50%,rgba(10,18,30,.94) 100%)}
  .hero-media img{object-position:center 42%}
  .hero-sub{margin-left:auto;margin-right:auto}
  .enroll-flag{margin-left:auto;margin-right:auto;text-align:left}
  .hero-actions{flex-direction:column;align-items:stretch;gap:12px;margin-top:30px}
  .hero-actions .btn{width:100%;justify-content:center}
  .hero-facts{
    flex-direction:column;align-items:center;gap:22px;
    margin-top:38px;padding-top:26px;text-align:center;
  }
  .topbar .wrap{justify-content:center;text-align:center}
  .langs .wrap{flex-direction:column;align-items:flex-start;gap:12px}
  .curriculum-foot,.apply-cta{flex-direction:column;align-items:stretch;gap:14px}
  .curriculum-foot .btn,.apply-cta .btn{width:100%;justify-content:center}
  .give .btn{width:100%;justify-content:center}
  .colophon{flex-direction:column;gap:8px}
}
@media(max-width:560px){
  .cards{grid-template-columns:1fr}
  body{font-size:16px}
  .wrap{padding:0 20px}
  .hero h1{font-size:clamp(31px,8.4vw,40px)}
  .hero-sub{font-size:17px}
  .enroll-flag{font-size:13.5px;letter-spacing:.12em;padding:9px 13px;gap:9px}
  .brand-logo{height:42px}
  .brand{gap:10px}
  .card,.year,.step,.contact-card,.plaque{padding-left:22px;padding-right:22px}
  .founder .portrait{max-width:none}
  .contact-card a{font-size:18px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .reveal{opacity:1;transform:none}
  html{scroll-behavior:auto}
}

/* ---------- a11y helpers ---------- */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{
  position:absolute;left:-9999px;top:0;z-index:200;
  background:var(--brass);color:var(--ink);padding:12px 20px;border-radius:0 0 2px 0;
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-weight:600;text-decoration:none;
}
.skip-link:focus{left:0}
.foot-h{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.18em;font-size:14px;color:var(--brass);margin-bottom:16px;font-weight:600}
.verse cite{font-style:normal}

/* ============ PAGE HEADER (interior pages) ============ */
.page-head{
  background:var(--ink);color:#fff;position:relative;overflow:hidden;
  border-bottom:1px solid rgba(198,161,91,.38);
  background-image:radial-gradient(ellipse 70% 90% at 82% 42%,rgba(198,161,91,.17),transparent 62%);
}
/* fine engraved hatching, like a printing plate */
.page-head::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background-image:repeating-linear-gradient(135deg,rgba(198,161,91,.055) 0 1px,transparent 1px 10px);
}
/* oversized open-book watermark, bled off the right edge */
.page-head::after{
  content:"";position:absolute;right:-70px;top:50%;transform:translateY(-50%);
  width:430px;height:430px;opacity:.085;pointer-events:none;
  background:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64' fill='none' stroke='%23C6A15B' stroke-width='1.15' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M32 20c-5.5-5-14.5-6-23-5v33c8.5-1 17.5 0 23 5'/%3E%3Cpath d='M32 20c5.5-5 14.5-6 23-5v33c-8.5-1-17.5 0-23 5'/%3E%3Cpath d='M32 20v33'/%3E%3Cpath d='M32 15.5c-4.2-3.8-3.6-7.6 0-12 3.6 4.4 4.2 8.2 0 12z' fill='%23C6A15B' stroke='none'/%3E%3C/svg%3E") no-repeat center/contain;
}
.page-head .wrap{padding:74px 24px 68px;max-width:900px;position:relative;z-index:2}
.page-head h1{font-size:clamp(32px,5vw,52px);color:#fff}
.page-head .lede{margin-top:20px;color:rgba(255,255,255,.82);font-size:19px;max-width:640px}
.page-head .role{
  margin-top:16px;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;
  letter-spacing:.16em;font-size:15px;color:var(--brass);
}
.crumbs{
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.16em;
  font-size:14px;color:rgba(255,255,255,.55);margin-bottom:22px;
}
.crumbs a{color:var(--brass);text-decoration:none}
.crumbs a:hover{color:var(--brass-lite)}
.crumbs span{margin:0 8px}

/* ============ BIO LAYOUT ============ */
.bio-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:64px;align-items:start}
.bio-aside{position:sticky;top:110px}
.bio-portrait{
  aspect-ratio:4/5;background:var(--stone-2);border:1px solid var(--rule);border-radius:2px;
  display:grid;place-items:center;text-align:center;padding:24px;overflow:hidden;
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.16em;
  font-size:14px;color:var(--muted);
}
.bio-portrait img{width:100%;height:100%;object-fit:cover;object-position:center 22%}
.aside-card{background:var(--paper);border:1px solid var(--rule);border-top:3px solid var(--brass);padding:26px 24px;margin-top:22px}
.aside-card h2{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.18em;font-size:14px;color:#8A6E2F;font-weight:600;margin-bottom:14px}
.aside-card ul{list-style:none;margin:0;padding:0}
.aside-card li{padding:9px 0;border-bottom:1px solid var(--rule);font-size:16px}
.aside-card li:last-child{border-bottom:0}
.bio-body h2{font-size:clamp(26px,3.2vw,34px);margin-bottom:16px}
.bio-body h2+p{margin-top:0}
.bio-block{margin-bottom:52px}
.bio-block:last-child{margin-bottom:0}
.bio-body .rule{height:1px;background:var(--rule);margin:0 0 52px}

/* ============ TIMELINE ============ */
.timeline{list-style:none;margin:0;padding:0 0 0 30px;border-left:1px solid var(--rule)}
.timeline li{position:relative;padding:0 0 30px 26px}
.timeline li:last-child{padding-bottom:0}
.timeline li::before{
  content:"";position:absolute;left:-35px;top:6px;width:11px;height:11px;
  background:var(--brass);transform:rotate(45deg);
}
.timeline h3{font-size:20px;margin-bottom:5px}
.timeline p{margin:0;color:var(--muted);font-size:16px}

/* ============ QUOTE PANEL ============ */
.quote-panel{background:var(--ink);color:#fff;text-align:center}
.quote-panel .wrap{max-width:820px;padding-top:0;padding-bottom:0}
.quote-panel svg{width:54px;height:54px;color:var(--brass);margin:0 auto 24px;display:block}
.quote-panel blockquote{
  font-family:"Spectral",serif;font-style:italic;font-size:clamp(22px,3.2vw,32px);
  line-height:1.45;color:var(--brass-lite);margin:0;
}
.quote-panel .attrib{
  display:block;margin-top:24px;font-style:normal;
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.18em;
  font-size:14px;color:rgba(255,255,255,.65);
}

/* ============ LANGUAGE CHIPS ============ */
.chips{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:22px 0 0;padding:0}
.chips li{
  border:1px solid var(--rule);background:var(--paper);border-radius:2px;padding:8px 16px;
  font-family:"Spectral",serif;font-size:17px;color:var(--ink);
}

/* ============ CTA BAND ============ */
.cta-band{background:var(--ivy);color:#fff;text-align:center}
.cta-band h2{color:#fff;font-size:clamp(28px,3.6vw,40px)}
.cta-band p{color:rgba(255,255,255,.82);max-width:620px;margin:16px auto 30px}
.cta-band .eyebrow{color:#B7D3B8}
.cta-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}

@media(max-width:1000px){
  .bio-grid{grid-template-columns:1fr;gap:38px}
  .bio-aside{position:static}
  .bio-portrait{max-width:380px;aspect-ratio:1/1}
}
@media(max-width:820px){
  .page-head .wrap{padding:56px 24px 52px}
  .page-head::after{width:300px;height:300px;right:-90px;opacity:.07}
  .cta-actions{flex-direction:column;align-items:stretch}
  .cta-actions .btn{width:100%;justify-content:center}
  .bio-portrait{max-width:none}
  .timeline{padding-left:22px}
  .timeline li{padding-left:22px}
  .timeline li::before{left:-27px}
}

/* ============ COURSES PAGE ============ */
.jumpbar{
  position:sticky;top:82px;z-index:50;background:var(--paper);
  border-bottom:1px solid var(--rule);box-shadow:0 8px 18px -18px rgba(16,28,46,.6);
}
.jumpbar .wrap{display:flex;flex-wrap:wrap;gap:8px 28px;align-items:center;padding-top:14px;padding-bottom:14px}
.jumpbar .label{
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.18em;
  font-weight:600;font-size:14px;color:#8A6E2F;margin-right:6px;
}
.jumpbar a{
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.14em;
  font-weight:600;font-size:15px;color:var(--ink);text-decoration:none;
  padding:5px 0;border-bottom:2px solid transparent;
}
.jumpbar a:hover{color:#8A6E2F;border-bottom-color:var(--brass)}

.prog-facts{background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.prog-facts .wrap{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;padding-top:34px;padding-bottom:34px}
.prog-facts .f-k{font-family:"Spectral",serif;font-size:27px;color:var(--ink);display:block;line-height:1.2}
.prog-facts .f-v{
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.15em;
  font-size:14px;color:var(--muted);
}

.year-band{background:var(--ink);color:#fff;scroll-margin-top:150px}
.year-band .wrap{padding-top:52px;padding-bottom:52px;display:flex;flex-wrap:wrap;gap:20px 48px;align-items:flex-end;justify-content:space-between}
.year-band h2{color:#fff;font-size:clamp(28px,3.8vw,42px)}
.year-band .yr{
  display:block;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;
  letter-spacing:.2em;font-size:15px;color:var(--brass);margin-bottom:10px;
}
.year-band .yr-note{color:rgba(255,255,255,.72);max-width:420px;margin:0;font-size:17px}

.semester{margin-bottom:56px}
.semester:last-child{margin-bottom:0}
.sem-head{display:flex;align-items:center;gap:18px;margin-bottom:8px}
.sem-head h3{font-size:23px;white-space:nowrap}
.sem-head::after{content:"";flex:1;height:1px;background:var(--rule)}
.sem-note{
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.14em;
  font-size:14px;color:var(--muted);margin:0 0 22px;
}
.course-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.course{display:grid;grid-template-columns:44px 1fr;gap:20px;padding:22px 4px;border-bottom:1px solid var(--rule)}
.course .num{font-family:"Spectral",serif;font-size:22px;color:var(--brass);line-height:1.35}
.course h4{font-family:"Spectral",Georgia,serif;font-weight:600;font-size:20px;line-height:1.25;margin:0}
.course p{margin:7px 0 0;color:var(--muted);font-size:16.5px}
.course .ref{
  display:inline-block;margin-top:9px;font-family:"Barlow Condensed",sans-serif;
  text-transform:uppercase;letter-spacing:.14em;font-size:13.5px;color:#8A6E2F;
}

.note-panel{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--brass);padding:28px 30px}
.note-panel h2{font-size:22px;margin-bottom:10px}
.note-panel p:last-child{margin-bottom:0}

@media(max-width:1000px){
  .prog-facts .wrap{grid-template-columns:repeat(2,1fr);gap:26px}
}
@media(max-width:820px){
  .jumpbar{top:72px}
  .jumpbar .wrap{gap:6px 20px;padding-top:11px;padding-bottom:11px}
  .year-band .wrap{padding-top:42px;padding-bottom:42px}
  .year-band{scroll-margin-top:130px}
  .course{grid-template-columns:34px 1fr;gap:14px}
  .course .num{font-size:19px}
  .course h4{font-size:18.5px}
}
@media(max-width:560px){
  .prog-facts .wrap{grid-template-columns:1fr;gap:18px}
}

@media(max-width:620px){
  .page-head::after{display:none}
  .page-head{background-image:radial-gradient(ellipse 90% 60% at 70% 20%,rgba(198,161,91,.15),transparent 65%)}
}

/* ============ APPLICATION FORM ============ */
.form-wrap{max-width:840px;margin:0 auto}
.progress{margin-bottom:38px}
.progress-top{display:flex;justify-content:space-between;align-items:baseline;gap:16px;margin-bottom:12px}
.progress-step{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.16em;font-size:14px;color:#8A6E2F;font-weight:600}
.progress-name{font-family:"Spectral",serif;font-size:17px;color:var(--muted)}
.progress-track{height:4px;background:var(--stone-2);border-radius:2px;overflow:hidden}
.progress-fill{height:100%;background:var(--brass);width:0;transition:width .35s ease}

.step{display:none}
.step.active{display:block}
.step fieldset{border:0;margin:0;padding:0}
.step legend{padding:0}
.step-h{font-family:"Spectral",Georgia,serif;font-weight:600;font-size:clamp(25px,3.4vw,33px);line-height:1.2;margin:0 0 8px}
.step-intro{color:var(--muted);margin-bottom:30px;font-size:17px}

.field{margin-bottom:22px}
.field > label,.field-label{
  display:block;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;
  letter-spacing:.14em;font-size:14px;font-weight:600;color:#5B6875;margin-bottom:8px;
}
.req{color:#A33B26}
.field input[type=text],.field input[type=email],.field input[type=tel],
.field input[type=date],.field input[type=number],.field input[type=password],
.field input[type=search],.field input[type=url],.field select,.field textarea{
  width:100%;padding:13px 15px;border:1px solid var(--rule);border-radius:2px;
  background:var(--paper);font-family:"Archivo",sans-serif;font-size:16.5px;color:var(--text);
}
.field textarea{min-height:130px;resize:vertical;line-height:1.6}
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none;border-color:var(--brass);box-shadow:0 0 0 3px rgba(198,161,91,.22);
}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.hint{font-size:14.5px;color:var(--muted);margin-top:7px}
.err{display:none;color:#A33B26;font-size:14.5px;margin-top:7px}
.field.invalid .err{display:block}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:#A33B26}

.choices{display:flex;flex-wrap:wrap;gap:10px}
.choice{position:relative;display:inline-flex}
.choice input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}
.choice span{
  display:inline-block;border:1px solid var(--rule);background:var(--paper);
  padding:11px 20px;border-radius:2px;font-size:16px;cursor:pointer;transition:all .15s;
}
.choice input:checked + span{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.choice input:focus-visible + span{outline:3px solid var(--brass);outline-offset:2px}

.check{display:flex;gap:12px;align-items:flex-start;margin-bottom:12px}
.check input{margin-top:5px;width:19px;height:19px;flex:0 0 19px;accent-color:#1B2C44}
.check label{font-size:16.5px;color:var(--text)}

.form-nav{display:flex;justify-content:space-between;gap:14px;margin-top:36px;padding-top:26px;border-top:1px solid var(--rule)}
.form-nav .spacer{flex:1}

.review{background:var(--paper);border:1px solid var(--rule);border-top:3px solid var(--brass);padding:8px 26px 22px;margin-bottom:28px}
.review h3{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.16em;font-size:14px;color:#8A6E2F;font-weight:600;margin:22px 0 10px}
.review dl{margin:0;display:grid;grid-template-columns:minmax(140px,32%) 1fr;gap:0}
.review dt{padding:9px 0;border-top:1px solid var(--rule);font-size:15px;color:var(--muted)}
.review dd{padding:9px 0;border-top:1px solid var(--rule);margin:0;font-size:16px}
.review .empty{color:var(--muted);font-style:italic}

.hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.form-note{background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--brass);padding:20px 24px;font-size:16px;color:var(--muted);margin-bottom:34px}
.form-note strong{color:var(--text)}

@media(max-width:700px){
  .grid-2{grid-template-columns:1fr}
  .review dl{grid-template-columns:1fr}
  .review dt{padding-bottom:0;border-top:1px solid var(--rule)}
  .review dd{padding-top:2px;border-top:0}
  .form-nav{flex-direction:column-reverse}
  .form-nav .btn{width:100%;justify-content:center}
  .form-nav .spacer{display:none}
  .choice{flex:1 1 auto}
  .choice span{width:100%;text-align:center}
}

/* ============ PORTAL ============ */
.auth-card{max-width:460px;margin:0 auto;background:var(--paper);border:1px solid var(--rule);border-top:3px solid var(--brass);padding:34px 32px}
.auth-alt{margin:22px 0 0;font-size:15.5px;color:var(--muted);text-align:center;line-height:1.9}
.auth-alt a{color:var(--ink)}

.flash{padding:14px 18px;border-radius:2px;margin-bottom:24px;font-size:16px;border:1px solid}
.flash-ok{background:#EAF2EC;border-color:#B7CDBB;color:#24402F}
.flash-err{background:#F6E9E6;border-color:#DBB6AC;color:#7A2E1C}
.flash a{color:inherit}

.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:26px;align-items:start}
.panel{background:var(--paper);border:1px solid var(--rule);border-top:3px solid var(--brass);padding:26px 28px;margin-bottom:26px}
.panel:last-child{margin-bottom:0}
.panel-h{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.18em;font-size:14px;color:#8A6E2F;font-weight:600;margin-bottom:16px}
.panel p{font-size:16px}

.kv{display:grid;grid-template-columns:minmax(130px,38%) 1fr;gap:0;margin:0}
.kv dt{padding:10px 0;border-top:1px solid var(--rule);font-size:14.5px;color:var(--muted)}
.kv dd{padding:10px 0;border-top:1px solid var(--rule);margin:0;font-size:16px}
.kv dt:first-child,.kv dt:first-child + dd{border-top:0}
.muted{color:var(--muted)}

.pill{display:inline-block;padding:5px 13px;border-radius:2px;font-family:"Barlow Condensed",sans-serif;
  text-transform:uppercase;letter-spacing:.13em;font-size:13px;font-weight:600;border:1px solid}
.pill-applicant{background:#F3EEE1;border-color:#D8C9A4;color:#7A5F22}
.pill-accepted,.pill-enrolled{background:#EAF2EC;border-color:#A8C4AD;color:#24402F}
.pill-graduated{background:#E8EDF5;border-color:#A9BBD6;color:#22406E}
.pill-declined,.pill-inactive{background:#F1EFEC;border-color:#CFC9C0;color:#6B6259}

.app-sec{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.16em;
  font-size:13.5px;color:#8A6E2F;font-weight:600;margin:26px 0 8px}
.app-details summary{cursor:pointer;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;
  letter-spacing:.14em;font-size:15px;color:var(--ink);padding:10px 0}

.thread{border:1px solid var(--rule);background:var(--stone);padding:20px;max-height:520px;overflow-y:auto;margin-bottom:22px}
.thread-empty{color:var(--muted);text-align:center;padding:26px 0;margin:0}
.msg{max-width:82%;margin-bottom:18px}
.msg-meta{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.12em;
  font-size:12.5px;color:var(--muted);margin-bottom:5px}
.msg-body{padding:13px 17px;border-radius:2px;font-size:16px;line-height:1.6}
.msg-in .msg-body{background:var(--paper);border:1px solid var(--rule)}
.msg-out{margin-left:auto}
.msg-out .msg-meta{text-align:right}
.msg-out .msg-body{background:var(--ink);color:var(--paper)}
.thread-wrap{max-width:780px;margin:0 auto}
.msg-form{margin-top:8px}

.admin-filters{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:26px;align-items:center}
.admin-filters input[type=search],.admin-filters select{
  padding:12px 14px;border:1px solid var(--rule);border-radius:2px;background:var(--paper);
  font-family:"Archivo",sans-serif;font-size:16px;color:var(--text)}
.admin-filters input[type=search]{flex:1;min-width:220px}

.table-wrap{overflow-x:auto;border:1px solid var(--rule);background:var(--paper)}
.admin-table{width:100%;border-collapse:collapse;font-size:15.5px}
.admin-table th{
  text-align:left;padding:14px 16px;background:var(--stone-2);border-bottom:1px solid var(--rule);
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:13px;color:#5B6875}
.admin-table td{padding:14px 16px;border-bottom:1px solid var(--rule);vertical-align:top}
.admin-table tr:last-child td{border-bottom:0}
.tbl-name{font-family:"Spectral",serif;font-size:17px;color:var(--ink);text-decoration:none;font-weight:600}
.tbl-name:hover{color:#8A6E2F}
.tbl-sub{display:block;color:var(--muted);font-size:14px;margin-top:3px}
.tbl-link{color:#8A6E2F;text-decoration:none;font-family:"Barlow Condensed",sans-serif;
  text-transform:uppercase;letter-spacing:.14em;font-size:14px}
.badge{display:inline-block;margin-left:8px;background:#A33B26;color:#fff;border-radius:2px;
  padding:2px 8px;font-family:"Barlow Condensed",sans-serif;font-size:12px;letter-spacing:.1em;text-transform:uppercase}

@media(max-width:900px){
  .portal-grid{grid-template-columns:1fr;gap:0}
  .msg{max-width:92%}
}

/* ============ ADMIN NOTIFICATION BELL ============ */
.bell-wrap{position:relative}
.bell{
  position:relative;display:flex;align-items:center;justify-content:center;
  width:44px;height:44px;padding:0;border:1px solid var(--rule);border-radius:2px;
  background:var(--paper);color:var(--ink);cursor:pointer;transition:all .15s;
}
.bell:hover{border-color:var(--brass);color:#8A6E2F}
.bell svg{width:21px;height:21px}
.bell-badge{
  position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;padding:0 5px;
  background:#A33B26;color:#fff;border-radius:10px;
  font-family:"Barlow Condensed",sans-serif;font-size:12.5px;font-weight:600;line-height:20px;
  text-align:center;letter-spacing:.03em;
}
.bell-menu{
  position:absolute;right:0;top:calc(100% + 12px);z-index:80;
  width:320px;background:var(--paper);border:1px solid var(--rule);border-top:3px solid var(--brass);
  box-shadow:0 18px 40px -18px rgba(16,28,46,.55);
}
.bell-head{
  padding:14px 18px;border-bottom:1px solid var(--rule);background:var(--stone-2);
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.16em;
  font-size:13px;font-weight:600;color:#5B6875;
}
.bell-empty{padding:20px 18px;margin:0;font-size:15px;color:var(--muted)}
.bell-item{
  display:block;padding:14px 18px;border-bottom:1px solid var(--rule);
  text-decoration:none;color:var(--ink);transition:background .15s;
}
.bell-item:last-child{border-bottom:0}
.bell-item:hover{background:var(--stone)}
.bell-name{display:block;font-family:"Spectral",serif;font-size:16.5px;font-weight:600;line-height:1.3}
.bell-count{
  display:inline-block;margin-left:7px;background:#A33B26;color:#fff;border-radius:2px;
  padding:1px 7px;font-family:"Barlow Condensed",sans-serif;font-size:12px;letter-spacing:.06em;
}
.bell-when{
  display:block;margin-top:3px;font-family:"Barlow Condensed",sans-serif;
  text-transform:uppercase;letter-spacing:.12em;font-size:12.5px;color:var(--muted);
}
@media(max-width:820px){
  .bell-wrap{padding:14px 0}
  .bell{width:100%;justify-content:flex-start;gap:12px;padding:12px 14px;height:auto}
  .bell::after{
    content:"Messages";font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;
    letter-spacing:.14em;font-weight:600;font-size:16px;
  }
  .bell-badge{position:static;margin-left:auto}
  .bell-menu{position:static;width:100%;box-shadow:none;margin-top:10px}
}

/* ---- clearing notifications ---- */
.bell-row{display:flex;align-items:stretch;border-bottom:1px solid var(--rule)}
.bell-row:hover{background:var(--stone)}
.bell-row .bell-item{flex:1;border-bottom:0}
.bell-row .bell-item:hover{background:transparent}
.bell-clear-one{display:flex}
.bell-clear-one button{
  border:0;background:none;cursor:pointer;color:var(--muted);
  font-size:22px;line-height:1;padding:0 16px;transition:color .15s;
}
.bell-clear-one button:hover{color:#A33B26}
.bell-foot{border-top:1px solid var(--rule);background:var(--stone-2)}
.bell-foot button{
  width:100%;border:0;background:none;cursor:pointer;padding:13px 18px;color:var(--ink);
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.16em;
  font-weight:600;font-size:14px;transition:color .15s;
}
.bell-foot button:hover{color:#8A6E2F}

/* ---- the bell menu lives inside .nav-links, so undo the nav link styling ---- */
.nav-links .bell-menu a{
  font-family:"Archivo",sans-serif;text-transform:none;letter-spacing:normal;
  font-size:16px;font-weight:400;border-bottom:0;color:var(--ink);
}
.nav-links a.bell-item{display:block;padding:14px 18px;border-bottom:0}
.nav-links a.bell-item:hover{color:var(--ink);border-bottom:0}
.bell-menu .bell-name{font-family:"Spectral",Georgia,serif;font-size:16.5px;font-weight:600;
  text-transform:none;letter-spacing:normal}
.bell-menu .bell-when{font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;
  letter-spacing:.12em;font-size:12.5px;color:var(--muted)}

/* ============================================================
   MOBILE READABILITY
   Sizes below are deliberately larger than desktop's scaled-down
   defaults — small screens are read at arm's length, often outdoors,
   often by people whose second language this is.
   ============================================================ */
@media(max-width:820px){
  body{font-size:17.5px;line-height:1.68}

  /* header */
  .brand-logo{height:60px}
  .topbar{font-size:15px}
  .topbar .portal{font-size:16px}
  .nav-links a{font-size:18px;letter-spacing:.13em}
  .nav-links a.nav-cta{font-size:17px;padding:16px 24px}
  .nav-toggle{padding:11px 13px}
  .nav-toggle span{width:24px}

  /* type scale */
  .eyebrow{font-size:16px;letter-spacing:.16em}
  .lede,.hero-sub{font-size:18.5px}
  .section-head p{font-size:18px}
  .btn{font-size:17px;padding:16px 28px}
  .crumbs{font-size:15px}

  /* homepage */
  .fact-k{font-size:27px}
  .fact-v{font-size:15px}
  .card p{font-size:17px}
  .card h3{font-size:22px}
  .langs ul{font-size:19px}
  .langs .label{font-size:16px}
  .year li{font-size:17.5px}
  .year .sems{font-size:15px}
  .year .more{font-size:16px}
  .step p{font-size:17px}
  .step h3{font-size:21px}
  .apply-note{font-size:16.5px}
  .give-list li{font-size:17px}
  .contact-card a{font-size:20px}
  .contact-card .note{font-size:16px}
  .creds li{font-size:15px}
  .pullquote{font-size:20px}

  /* courses */
  .course h4{font-size:20px}
  .course p{font-size:17.5px}
  .course .num{font-size:21px}
  .course .ref{font-size:14.5px}
  .sem-head h3{font-size:22px}
  .sem-note{font-size:15px}
  .prog-facts .f-k{font-size:26px}
  .prog-facts .f-v{font-size:15px}
  .jumpbar a{font-size:16.5px}
  .jumpbar .label{font-size:15px}
  .note-panel{font-size:17px}

  /* about */
  .timeline p{font-size:17px}
  .timeline h3{font-size:20px}
  .chips li{font-size:18px}
  .aside-card li{font-size:17px}
  .quote-panel blockquote{font-size:22px}

  /* forms */
  .field > label,.field-label{font-size:15.5px}
  .field input,.field select,.field textarea{font-size:17.5px;padding:15px 16px}
  .hint{font-size:15.5px}
  .err{font-size:15.5px}
  .choice span{font-size:17px;padding:13px 22px}
  .check label{font-size:17px}
  .progress-step{font-size:15px}
  .progress-name{font-size:16.5px}
  .step-intro{font-size:17.5px}
  .review dt{font-size:16px}
  .review dd{font-size:17px}
  .form-note{font-size:17px}

  /* portal */
  .panel p{font-size:17px}
  .panel-h{font-size:15px}
  .kv dt{font-size:15.5px}
  .kv dd{font-size:17px}
  .msg-body{font-size:17px}
  .msg-meta{font-size:13.5px}
  .pill{font-size:14px}
  .admin-table{font-size:16.5px}
  .admin-table th{font-size:14px}
  .tbl-name{font-size:18px}
  .tbl-sub{font-size:15px}
  .tbl-link{font-size:15px}
  .admin-filters input[type=search],.admin-filters select{font-size:17px;padding:14px 15px}
  .auth-alt{font-size:16.5px}
  .flash{font-size:17px}

  /* footer */
  .footer{font-size:16.5px}
  .footer li{margin-bottom:13px}
  .foot-h{font-size:15px}
  .motto-sm{font-size:17px}
  .colophon{font-size:15px}
}

@media(max-width:560px){
  body{font-size:17px}
  .wrap{padding:0 18px}
  .brand-logo{height:50px}
  .nav .wrap{gap:12px}
  .nav-toggle{padding:10px 12px}
  .hero h1{font-size:clamp(33px,8.8vw,42px)}
  .section-head h2,.give h2,.cta-band h2{font-size:clamp(27px,7.4vw,34px)}
  .page-head h1{font-size:clamp(30px,8.4vw,40px)}
  .enroll-flag{font-size:14.5px;letter-spacing:.1em}
  .btn{font-size:16.5px}
  .contact-card a{font-size:19px}
  .admin-table{font-size:16px}
}

/* ---- sub-heading above the education timeline ---- */
.bio-block > h3{font-size:22px;margin:38px 0 24px}
.bio-block > h3:first-child{margin-top:0}

/* ============ LANGUAGE BAND (rewritten) ============ */
.langs .wrap{display:flex;align-items:center;gap:22px;padding-top:30px;padding-bottom:30px}
.langs-icon{width:52px;height:52px;flex:0 0 52px;color:var(--brass)}
.langs-line{margin:6px 0 0;font-family:"Spectral",Georgia,serif;font-size:19px;color:var(--ink);line-height:1.5}
.langs-line strong{color:#8A6E2F}
.lang-note{
  background:var(--paper);border:1px solid var(--rule);border-left:3px solid var(--brass);
  padding:18px 22px;margin-top:22px;font-size:17px;
}

/* ============ PHOTOGRAPH UPLOAD ============ */
.optional{
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.12em;
  font-size:12.5px;color:var(--muted);border:1px solid var(--rule);border-radius:2px;
  padding:2px 8px;margin-left:8px;
}
.photo-guide{font-size:16px;color:var(--muted);margin:0 0 16px;max-width:560px}
.photo-picker{display:flex;gap:22px;align-items:center}
.photo-preview{
  width:118px;height:148px;flex:0 0 118px;background:var(--stone-2);
  border:1px solid var(--rule);border-radius:2px;display:grid;place-items:center;
  color:var(--muted);overflow:hidden;
}
.photo-preview svg{width:54px;height:54px}
.photo-preview img{width:100%;height:100%;object-fit:cover}
.photo-actions{flex:1}
.photo-actions input[type=file]{position:absolute;left:-9999px;width:1px;height:1px}
.photo-actions label.btn{cursor:pointer;margin-bottom:10px}
.photo-actions .hint{margin-top:4px;word-break:break-word}

/* ============ STUDENT PHOTOS IN THE PORTAL ============ */
.avatar{
  border-radius:2px;background:var(--stone-2);border:1px solid var(--rule);
  object-fit:cover;display:block;
}
.avatar-sm{width:46px;height:56px}
.avatar-lg{width:100%;aspect-ratio:4/5}
.avatar-empty{
  display:grid;place-items:center;color:var(--muted);
  border:1px dashed var(--rule);background:var(--stone-2);border-radius:2px;
}
.avatar-empty svg{width:40%;height:40%;max-width:60px}
.tbl-photo{display:flex;gap:14px;align-items:flex-start}
.photo-panel .photo-preview{width:100%;height:auto;aspect-ratio:4/5}

/* ============ DANGER ZONE (delete a student) ============ */
.danger{border-top:3px solid #A33B26;background:#FBF6F4;border-color:#E0C6BE}
.danger .panel-h{color:#A33B26}
.danger p{font-size:16px}
.danger .btn-danger{
  background:#A33B26;color:#fff;border-color:#A33B26;
}
.danger .btn-danger:hover{background:#8A2F1D;border-color:#8A2F1D}
.danger .btn-danger[disabled]{opacity:.45;cursor:not-allowed}
.danger input[type=text]{
  width:100%;padding:13px 15px;border:1px solid #D8B6AC;border-radius:2px;background:#fff;
  font-family:"Archivo",sans-serif;font-size:16.5px;color:var(--text);margin-bottom:14px;
}
.danger ul{margin:10px 0 18px;padding-left:20px;font-size:16px;color:var(--muted)}
.danger li{margin-bottom:6px}

@media(max-width:700px){
  .langs .wrap{flex-direction:column;align-items:flex-start;gap:14px}
  .photo-picker{flex-direction:column;align-items:flex-start;gap:16px}
  .photo-actions{width:100%}
  .photo-actions label.btn{width:100%;justify-content:center}
}

/* ============ LETTER FROM THE PRESIDENT ============ */
.letter-section{background:var(--paper);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.letter{max-width:760px;margin:0 auto}
.letter h2{font-size:clamp(30px,4.2vw,44px);margin-bottom:30px}
.letter-body p{
  font-family:"Spectral",Georgia,serif;font-size:19.5px;line-height:1.72;color:var(--text);
  margin-bottom:1.15em;
}
.letter-body p:first-child::first-letter{
  float:left;font-family:"Spectral",Georgia,serif;font-weight:600;
  font-size:66px;line-height:.86;padding:6px 12px 0 0;color:var(--brass);
}
.letter-body p:last-child{margin-bottom:0}
.signature{margin-top:38px;padding-top:26px;border-top:1px solid var(--rule);position:relative}
.signature::before{
  content:"";position:absolute;top:-1px;left:0;width:90px;height:2px;background:var(--brass);
}
.sig-name{
  display:block;font-family:"Spectral",Georgia,serif;font-style:italic;font-size:26px;
  color:var(--ink);line-height:1.3;
}
.sig-role{
  display:block;margin-top:8px;font-family:"Barlow Condensed",sans-serif;
  text-transform:uppercase;letter-spacing:.2em;font-size:14px;color:#8A6E2F;font-weight:600;
}
@media(max-width:820px){
  .letter-body p{font-size:19px}
  .letter-body p:first-child::first-letter{font-size:56px;padding-right:10px}
  .sig-name{font-size:23px}
  .sig-role{font-size:15px}
}

/* ============ ACCOUNTS AND PAYMENTS ============ */
.acct-figures{
  display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-bottom:22px;
  border:1px solid var(--rule);background:var(--stone);
}
.acct-figures > div{padding:18px 16px;text-align:center;border-left:1px solid var(--rule)}
.acct-figures > div:first-child{border-left:0}
.acct-k{display:block;font-family:"Spectral",Georgia,serif;font-size:26px;line-height:1.2;color:var(--ink)}
.acct-v{
  display:block;margin-top:5px;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;
  letter-spacing:.15em;font-size:13px;color:var(--muted);
}
.acct-due .acct-k{color:#A33B26}
.acct-clear .acct-k{color:#2E6B45}
.balance-big{font-family:"Spectral",Georgia,serif;font-size:42px;color:var(--ink);margin:0}

.acct-form{border-top:1px solid var(--rule);margin-top:6px}
.acct-form > summary{
  cursor:pointer;padding:14px 0;list-style:none;
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.15em;
  font-weight:600;font-size:15px;color:var(--ink);
}
.acct-form > summary::-webkit-details-marker{display:none}
.acct-form > summary::before{content:"+ ";color:var(--brass)}
.acct-form[open] > summary::before{content:"– "}
.acct-form > summary:hover{color:#8A6E2F}
.acct-form form{padding:6px 0 22px}

.money-input{display:flex;align-items:stretch}
.money-input span{
  display:flex;align-items:center;padding:0 14px;background:var(--stone-2);
  border:1px solid var(--rule);border-right:0;border-radius:2px 0 0 2px;
  font-family:"Spectral",serif;font-size:18px;color:var(--muted);
}
.money-input input{border-radius:0 2px 2px 0!important}

.acct-log-h{
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.16em;
  font-size:14px;color:#8A6E2F;font-weight:600;margin:28px 0 12px;
  padding-top:22px;border-top:1px solid var(--rule);
}
.ledger{list-style:none;margin:0;padding:0}
.ledger li{padding:16px 0 16px 18px;border-bottom:1px solid var(--rule);position:relative}
.ledger li:last-child{border-bottom:0}
.ledger li::before{content:"";position:absolute;left:0;top:22px;width:8px;height:8px;transform:rotate(45deg)}
.led-pay::before{background:#2E6B45}
.led-adj::before{background:var(--brass)}
.led-top{display:flex;justify-content:space-between;align-items:baseline;gap:14px}
.led-amt{font-family:"Spectral",Georgia,serif;font-size:19px;color:var(--ink)}
.led-pay .led-amt{color:#2E6B45}
.led-date{
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.13em;
  font-size:13.5px;color:var(--muted);white-space:nowrap;
}
.led-meta{font-size:15px;color:var(--muted);margin-top:3px}
.led-note{font-size:15.5px;color:var(--text);margin-top:8px;padding-left:12px;border-left:2px solid var(--rule)}
.led-actions{display:flex;gap:16px;align-items:center;margin-top:10px}
.led-actions details{flex:1}
.led-actions summary{
  cursor:pointer;list-style:none;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;
  letter-spacing:.13em;font-size:13.5px;color:#8A6E2F;
}
.led-actions summary::-webkit-details-marker{display:none}
.led-edit{padding:14px 0 4px}
.led-del{
  background:none;border:0;cursor:pointer;padding:0;color:#A33B26;
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.13em;font-size:13.5px;
}
.led-del:hover{text-decoration:underline}

/* balance in the header */
.bal-pill{
  display:inline-flex;align-items:center;gap:9px;padding:9px 15px;border-radius:2px;
  border:1px solid var(--rule);background:var(--stone);text-decoration:none;
}
.bal-pill:hover{border-color:var(--brass)}
.bal-label{
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.14em;
  font-size:12.5px;color:var(--muted);
}
.bal-amt{font-family:"Spectral",Georgia,serif;font-size:17px;font-weight:600}
.bal-due .bal-amt{color:#A33B26}
.bal-clear .bal-amt{color:#2E6B45}
.bal-cell{font-family:"Spectral",Georgia,serif;font-size:17px;display:block}
.bal-due.bal-cell{color:#A33B26}
.bal-clear.bal-cell{color:#2E6B45}

/* the nav strips link styling, so put it back */
.nav-links a.bal-pill{padding:9px 15px;border-bottom:1px solid var(--rule);text-transform:none;letter-spacing:normal}
.nav-links a.bal-pill:hover{border-bottom-color:var(--brass)}

@media(max-width:820px){
  .acct-figures{grid-template-columns:1fr}
  .acct-figures > div{border-left:0;border-top:1px solid var(--rule);text-align:left;display:flex;
    justify-content:space-between;align-items:baseline;gap:14px;padding:14px 16px}
  .acct-figures .acct-v{text-align:right;flex:0 0 auto}
  .acct-figures > div:first-child{border-top:0}
  .acct-v{margin-top:0}
  .nav-links a.bal-pill{justify-content:space-between;width:100%}
  .led-actions{flex-direction:column;align-items:flex-start;gap:8px}
}

/* ---- footer credit ---- */
.colophon .credit{color:rgba(255,255,255,.45)}
.colophon .credit a{color:rgba(255,255,255,.62);text-decoration:none;border-bottom:1px solid rgba(198,161,91,.45)}
.colophon .credit a:hover{color:#fff;border-bottom-color:var(--brass)}


/* ---- tuition figures in the admin page header ---- */
.head-stats{
  display:flex;flex-wrap:wrap;gap:18px 52px;align-items:flex-end;
  margin-top:34px;padding-top:26px;border-top:1px solid rgba(198,161,91,.35);
}
.hs-k{display:block;font-family:"Spectral",Georgia,serif;font-size:27px;line-height:1.2;color:var(--brass-lite)}
.hs-of{font-size:18px;color:rgba(255,255,255,.55)}
.hs-due{color:#F0A08C}
.hs-clear{color:#9FD3B0}
.hs-v{
  display:block;margin-top:5px;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;
  letter-spacing:.15em;font-size:13.5px;color:rgba(255,255,255,.62);
}
.hs-note{
  width:100%;margin:4px 0 0;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;
  letter-spacing:.14em;font-size:13px;color:rgba(255,255,255,.5);
}
@media(max-width:820px){
  .head-stats{gap:16px 36px;margin-top:28px}
  .hs-k{font-size:24px}
  .hs-v{font-size:13px}
}
@media(max-width:520px){
  .head-stats{display:grid;grid-template-columns:1fr 1fr;gap:20px 24px}
}

/* ============ REARRANGEABLE DASHBOARD ============ */
.dash-bar{display:flex;flex-wrap:wrap;align-items:center;gap:14px;margin-bottom:24px}
.dash-toggle{display:inline-flex;align-items:center;gap:10px}
.dash-toggle svg{width:19px;height:19px}
.dash-hint,.dash-saved{
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.14em;font-size:13.5px;
}
.dash-hint{color:var(--muted)}
.dash-saved{color:#2E6B45}

.dash-grid{align-items:start}
.dash-col{min-height:60px}
/* the panel is the only child of its wrapper, so .panel:last-child was
   zeroing the gap between sections — put the spacing on the wrapper */
.dash-panel{position:relative;margin-bottom:26px}
.dash-panel > .panel{margin-bottom:0}
.dash-tools{display:none}

/* ---- edit mode ---- */
.dash-grid.editing .dash-col{outline:1px dashed var(--rule);outline-offset:8px;border-radius:2px}
.dash-grid.editing .dash-col.over{outline-color:var(--brass)}
.dash-grid.editing .dash-panel .panel{outline:1px solid rgba(198,161,91,.55)}
.dash-grid.editing .dash-panel.dragging{opacity:.4}
.dash-grid.editing .dash-tools{
  display:flex;align-items:center;gap:4px;
  position:absolute;top:-15px;left:14px;z-index:3;
  background:var(--ink);border-radius:2px;padding:3px 6px;
}
.dash-handle{display:flex;align-items:center;color:var(--brass-lite);padding:0 4px;cursor:grab}
.dash-handle svg{width:15px;height:15px}
.dash-move{
  width:26px;height:24px;border:0;border-radius:2px;cursor:pointer;
  background:rgba(255,255,255,.1);color:var(--brass-lite);font-size:14px;line-height:1;
}
.dash-move:hover{background:var(--brass);color:var(--ink)}
.dash-move:focus-visible{outline:2px solid var(--brass);outline-offset:1px}

/* dragging is a desktop pointer thing; phones use the arrows */
.dash-grid.editing:not(.is-mobile) .dash-panel{cursor:grab}
.dash-grid.editing:not(.is-mobile) .dash-panel:active{cursor:grabbing}
.dash-grid.is-mobile .dash-handle{display:none}
.dash-grid.is-mobile .dash-lr{display:none}

@media(max-width:900px){
  /* one column: the panels become direct children so CSS order can rank them */
  .dash-grid{display:flex;flex-direction:column;gap:0}
  .dash-col{display:contents}
  .dash-grid.editing .dash-col{outline:0}
  .dash-grid.editing .dash-panel{margin-bottom:34px}
  .dash-tools{left:12px}
}

.dash-saved.save-failed{color:#A33B26}

/* ============ CASH APP PAYMENT ============ */
.pay-note{
  background:var(--paper);border:1px solid var(--rule);border-left:3px solid #2E6B45;
  padding:24px 26px;margin:26px 0;
}
.pay-h{
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.16em;
  font-size:14px;color:#2E6B45;font-weight:600;margin:0 0 12px;
}
.pay-note p{font-size:16.5px;color:var(--muted)}
.pay-btn{background:#00C244;border-color:#00C244;color:#06301A;margin:6px 0 14px}
.pay-btn:hover{background:#00A93B;border-color:#00A93B;color:#06301A}
.pay-btn svg{width:19px;height:19px}
.pay-small{font-size:15px;color:var(--muted);margin:0}
.pay-small strong{color:var(--text);font-family:"Spectral",Georgia,serif;font-size:16.5px}
.panel .pay-note{margin:18px 0 14px;padding:20px 22px}
.nav-links a.pay-btn{text-transform:uppercase}
@media(max-width:700px){
  .pay-btn{width:100%;justify-content:center}
}

/* ============ LANGUAGE SWITCHER ============ */
.lang-wrap{position:relative}
.lang-btn{
  display:inline-flex;align-items:center;gap:8px;padding:9px 14px;cursor:pointer;
  background:var(--stone);border:1px solid var(--rule);border-radius:2px;color:var(--ink);
  font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;letter-spacing:.13em;
  font-weight:600;font-size:15px;
}
.lang-btn:hover{border-color:var(--brass);color:#8A6E2F}
.lang-btn svg{width:17px;height:17px}
.lang-menu{
  position:absolute;right:0;top:calc(100% + 10px);z-index:80;min-width:190px;
  background:var(--paper);border:1px solid var(--rule);border-top:3px solid var(--brass);
  box-shadow:0 16px 34px -18px rgba(16,28,46,.5);list-style:none;margin:0;padding:0;
}
.lang-menu li{border-bottom:1px solid var(--rule)}
.lang-menu li:last-child{border-bottom:0}
.nav-links .lang-menu a{
  display:block;padding:12px 18px;font-family:"Spectral",Georgia,serif;font-size:16.5px;
  text-transform:none;letter-spacing:normal;color:var(--ink);border-bottom:0;
}
.nav-links .lang-menu a:hover{background:var(--stone);color:#8A6E2F;border-bottom:0}
.nav-links .lang-menu a.on{color:#8A6E2F}
.nav-links .lang-menu a.on::after{content:" ·"}

.browser-translate{
  margin:26px 0 0;padding-top:22px;border-top:1px solid rgba(255,255,255,.14);
  font-size:15px;color:rgba(255,255,255,.5);
}

@media(max-width:820px){
  .lang-wrap{padding:14px 0}
  .lang-btn{width:100%;justify-content:flex-start}
  .lang-menu{position:static;width:100%;box-shadow:none;margin-top:10px}
}

/* ============ PAYMENT OPTIONS ============ */
.pay-panel{
  background:var(--paper);border:1px solid var(--rule);border-top:3px solid var(--brass);
  padding:30px 30px 26px;margin:30px 0;
}
.pay-price{
  font-family:"Spectral",Georgia,serif;font-size:44px;color:var(--ink);line-height:1;margin:0 0 14px;
}
.pay-price span{font-size:19px;color:var(--muted);font-style:italic;margin-left:8px}
.pay-intro{font-size:17px;color:var(--muted);margin-bottom:30px;line-height:1.65}

.pay-options{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-bottom:6px}
.pay-option{border:1px solid var(--rule);border-radius:2px;padding:26px 24px 24px;background:var(--stone)}
.pay-cash{border-top:3px solid #00C244}
.pay-zelle{border-top:3px solid #6D1ED4}
.pay-brand{
  display:block;font-family:"Barlow Condensed",sans-serif;text-transform:uppercase;
  letter-spacing:.18em;font-size:14px;font-weight:600;margin-bottom:12px;
}
.pay-cash .pay-brand{color:#00902F}
.pay-zelle .pay-brand{color:#6D1ED4}
.pay-detail{
  font-family:"Spectral",Georgia,serif;font-size:19px;color:var(--ink);
  margin:0 0 22px;word-break:break-all;
}
.pay-go{width:100%;justify-content:center;border:0;cursor:pointer;font-size:16px;padding:17px 22px;line-height:1.35}
.pay-go-cash{background:#00C244;color:#06301A}
.pay-go-cash:hover{background:#00A93B;color:#06301A}
.pay-go-zelle{background:#6D1ED4;color:#fff}
.pay-go-zelle:hover{background:#5A15B4;color:#fff}
.pay-go.copied{background:#2E6B45;color:#fff}
.pay-option .pay-small{margin-top:20px;font-size:14.5px;color:var(--muted);line-height:1.6}
.pay-foot{margin:28px 0 0;font-size:16px;color:var(--muted);line-height:1.65}
.pay-foot strong{color:var(--text)}

@media(max-width:760px){
  .pay-options{grid-template-columns:1fr}
  .pay-panel{padding:24px 22px 22px}
  .pay-price{font-size:38px}
  .pay-price span{display:block;margin:6px 0 0}
}

/* payment brand marks on the buttons */
.pay-ico{width:22px;height:22px;flex:0 0 22px;margin-right:10px}
.pay-go{display:inline-flex;align-items:center;justify-content:center;text-align:center;gap:0}
.pay-go .pay-lbl{display:inline-block}
