/*
  The Gow School: main stylesheet
  Brand: The Gow School Digital Guidelines (logos, color palette, typography, rep stripe patterns).
  © 2026 The Gow School. All rights reserved.
*/
/* ===== Brand tokens: The Gow School Digital Guidelines ===== */
:root{
  --crimson:#A6192E;   /* Gow Crimson, Pantone 187 */
  --navy:#00205B;      /* Gow Navy, Pantone 281 */
  --blue:#009CDE;      /* Pantone 2925 */
  --red:#E4002B;       /* Pantone 185 */
  --silver:#D9E1E2;    /* Pantone 7541 */
  --white:#FFFFFF;
  --black:#000000;
  --ink:#121A2E;
  --muted:#4A5568;
  --mist:#F3F6F7;      /* tint of Pantone 7541 for quiet backgrounds */
  --rule:#D9E1E2;
  --display:"Octave Display","Octave","Libre Caslon Display",Georgia,"Times New Roman",serif;
  --body:"Atkinson Hyperlegible Next","Atkinson Hyperlegible",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;
  --fs:1.125rem; --lh:1.6; --ls:0; --ws:0;
  --max:1200px; --gutter:24px;
  /* rep stripe patterns */
  --stripe-blue:repeating-linear-gradient(180deg,var(--navy) 0 28px,var(--blue) 28px 44px,var(--navy) 44px 52px,var(--blue) 52px 56px);
  --stripe-red:repeating-linear-gradient(180deg,var(--crimson) 0 28px,var(--red) 28px 44px,var(--crimson) 44px 52px,var(--red) 52px 56px);
  --stripe-diag:repeating-linear-gradient(135deg,var(--navy) 0 14px,var(--blue) 14px 24px);
}
html.comfort{ --fs:1.3rem; --lh:1.9; --ls:.035em; --ws:.12em; }
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
body{margin:0;background:var(--white);color:var(--ink);font-family:var(--body);font-size:var(--fs);line-height:var(--lh);font-weight:400;letter-spacing:var(--ls);word-spacing:var(--ws);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}
img,svg{max-width:100%;display:block}
a{color:var(--navy)}
a:hover{color:var(--crimson)}
button,input,select,textarea{font:inherit;color:inherit}
:focus{outline:none}
:focus-visible{outline:3px solid var(--blue);outline-offset:3px;border-radius:2px}
[id]{scroll-margin-top:96px}
.wrap{max-width:var(--max);margin:0 auto;padding-left:max(var(--gutter),env(safe-area-inset-left));padding-right:max(var(--gutter),env(safe-area-inset-right))}
h1,h2,h3{margin:0;color:var(--navy);letter-spacing:0;word-spacing:0}
/* Guide: headlines in Atkinson Hyperlegible Next Bold, title case; subheads in Octave, sentence case */
h2{font-family:var(--body);font-weight:700;font-size:clamp(1.9rem,3.4vw,2.75rem);line-height:1.12;max-width:22ch}
h3{font-family:var(--display);font-weight:500;font-size:1.5rem;line-height:1.2}
.display{font-family:var(--display);font-weight:500}
p{margin:0 0 1em;max-width:64ch}
strong{font-weight:700}
.skip{position:absolute;left:-999px;top:auto}.skip:focus{left:16px;top:8px;background:#fff;padding:8px 12px;z-index:99}
.kicker{font-family:var(--display);font-size:1.15rem;color:var(--crimson);margin:0 0 12px}
.flag{display:inline-block;font-family:var(--body);font-size:.72rem;line-height:1.4;background:#FFF4D6;color:#5F4A0E;border:1px dashed #C9A54E;padding:2px 8px;border-radius:2px;margin-top:8px;letter-spacing:0;word-spacing:0}
.sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);-webkit-clip-path:inset(50%);clip-path:inset(50%);white-space:nowrap}

/* spacing and color utilities */
.m-0{margin:0}
.mt-6{margin-top:6px}.mt-16{margin-top:16px}.mt-18{margin-top:18px}.mt-20{margin-top:20px}.mt-22{margin-top:22px}.mt-24{margin-top:24px}
.muted{color:var(--muted)}
a.on-dark,a.on-dark:hover{color:#fff}

/* buttons: 44px minimum touch targets */
.btn{display:-webkit-inline-box;display:inline-flex;align-items:center;justify-content:center;min-height:48px;font-family:var(--body);font-weight:700;font-size:1rem;letter-spacing:var(--ls);padding:.7em 1.35em;border-radius:3px;text-decoration:none;border:2px solid var(--navy);cursor:pointer;white-space:nowrap;-webkit-appearance:none;appearance:none;transition:background-color .15s,color .15s,border-color .15s}
.btn.solid{background:var(--navy);color:#fff}
.btn.crimson{background:var(--crimson);border-color:var(--crimson);color:#fff}
.btn.outline{background:transparent;color:var(--navy)}
.btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.8)}
@media (hover:hover){
  .btn.solid:hover{background:#00163F;color:#fff}
  .btn.crimson:hover{background:#8C1427;border-color:#8C1427;color:#fff}
  .btn.outline:hover{background:var(--navy);color:#fff}
  .btn.ghost:hover{background:rgba(255,255,255,.12);color:#fff}
}
.ctas{display:flex;flex-wrap:wrap;gap:14px}

/* stripe accent band (rep stripes) */
.stripes{height:14px;background:linear-gradient(180deg,var(--navy) 0 5px,var(--blue) 5px 9px,var(--crimson) 9px 14px)}
.stripes.red{background:linear-gradient(180deg,var(--crimson) 0 5px,var(--red) 5px 9px,var(--crimson) 9px 14px)}

/* utility bar + header */
.util{background:var(--navy);color:var(--silver);font-size:.85rem}
.util .wrap{display:flex;justify-content:space-between;gap:16px;align-items:center;min-height:42px;flex-wrap:wrap}
.util a{color:#fff;text-decoration:none;margin-left:18px}
.util a:hover{text-decoration:underline;color:#fff}
.util .a11y{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pill{font-family:var(--body);font-size:.8rem;background:transparent;border:1px solid rgba(255,255,255,.35);border-radius:20px;padding:.35em .85em;cursor:pointer;color:var(--silver);min-height:32px;-webkit-appearance:none;appearance:none}
.pill[aria-pressed=true]{background:var(--blue);border-color:var(--blue);color:var(--navy);font-weight:700}
header.site{background:var(--white);border-bottom:1px solid var(--rule);position:-webkit-sticky;position:sticky;top:0;z-index:20}
header.site .wrap{display:flex;align-items:center;gap:24px;min-height:84px}
.brand{display:block;text-decoration:none;flex:none}
.brand svg{height:52px;width:auto}
nav.main{margin-left:auto}
nav.main ul{list-style:none;display:flex;gap:22px;white-space:nowrap;margin:0;padding:0}
nav.main a{text-decoration:none;color:var(--navy);font-weight:700;font-size:.95rem;padding:10px 0;display:block}
nav.main a:hover{color:var(--crimson)}
.tools{display:flex;gap:8px;align-items:center}
.menu-btn{display:none}

/* hero */
.hero{background:var(--white);padding:72px 0 0;overflow:hidden}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:56px;align-items:end}
.since{font-family:var(--display);font-size:1.2rem;color:var(--crimson);margin-bottom:22px}
.hero h1{font-family:var(--display);font-weight:500;color:var(--navy);font-size:clamp(2.9rem,6.6vw,5.9rem);line-height:1;max-width:12ch}
.hero h1 .l2{display:block;color:var(--crimson);margin-top:.06em}
.hero .lede{font-size:1.25rem;color:var(--muted);margin:30px 0 34px;max-width:48ch}
.hero .ctas{margin-bottom:64px}
/* image placeholders use the brand stripe patterns */
.photo{position:relative;border-radius:2px;min-height:280px;display:flex;align-items:flex-end;background:linear-gradient(180deg,rgba(0,32,91,.72),rgba(0,32,91,.92)),var(--stripe-blue)}
.photo.red{background:linear-gradient(180deg,rgba(120,14,30,.6),rgba(90,10,22,.9)),var(--stripe-red)}
.photo.diag{background:linear-gradient(180deg,rgba(0,32,91,.7),rgba(0,32,91,.92)),var(--stripe-diag)}
.photo .cap{font-size:.82rem;color:#fff;padding:12px 16px;position:relative}
.hero .photo{min-height:520px;border-radius:2px 2px 0 0}
.quote-card{position:absolute;left:-44px;bottom:72px;background:var(--white);max-width:350px;padding:22px 24px;border-top:4px solid var(--crimson);box-shadow:0 18px 40px -18px rgba(0,32,91,.5);margin:0}
.quote-card p{font-family:var(--display);font-size:1.4rem;line-height:1.3;color:var(--navy);margin:0 0 10px}
.quote-card small{color:var(--muted);font-size:.85rem}

/* century line */
.century{background:var(--navy);color:#fff;padding:30px 0 34px}
.century .head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:12px}
.century .head h2{color:#fff;font-family:var(--display);font-weight:500;font-size:1.6rem;max-width:none}
.century .head p{margin:0;color:var(--silver);font-size:.92rem}
.cline{position:relative;height:150px}
.ticks{position:absolute;left:0;right:0;top:64px;height:26px;display:flex;justify-content:space-between;align-items:flex-end}
.ticks i{display:block;width:2px;background:rgba(255,255,255,.45);height:12px;-webkit-transform-origin:bottom;transform-origin:bottom;-webkit-animation:grow .5s ease-out both;animation:grow .5s ease-out both}
.ticks i.d10{height:20px;background:rgba(255,255,255,.8)}
.ticks i.ms{height:26px;width:4px;background:var(--red)}
@-webkit-keyframes grow{from{-webkit-transform:scaleY(0)}to{-webkit-transform:scaleY(1)}}
@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}
.base{position:absolute;left:0;right:0;top:90px;height:1px;background:rgba(255,255,255,.5)}
.ms-btn{position:absolute;font-family:var(--body);font-size:.82rem;line-height:1.3;color:var(--silver);width:160px;-webkit-transform:translateX(-50%);transform:translateX(-50%);text-align:center;background:none;border:0;cursor:pointer;padding:4px;border-radius:3px;-webkit-appearance:none;appearance:none}
.ms-btn b{display:block;font-family:var(--display);font-weight:500;font-size:1.3rem;color:#fff}
.ms-btn:hover,.ms-btn[aria-expanded=true]{background:rgba(255,255,255,.1)}
.ms-btn.up{top:0}.ms-btn.down{top:100px}
.ms-btn.first{-webkit-transform:none;transform:none;text-align:left}.ms-btn.last{-webkit-transform:translateX(-100%);transform:translateX(-100%);text-align:right}
.ms-detail{min-height:1.6em;margin:10px 0 0;color:var(--silver);font-size:1rem;max-width:none}
.century-list{display:none}

/* proof strip */
.proof{background:var(--white);border-bottom:1px solid var(--rule)}
.proof ul{list-style:none;margin:0;padding:30px 0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
.proof li{border-left:3px solid var(--crimson);padding-left:16px}
.proof b{display:block;font-family:var(--display);font-weight:500;font-size:2.3rem;color:var(--navy);line-height:1.1}
.proof span{font-size:.95rem;color:var(--muted)}

/* accreditation */
.accred{background:var(--mist);border-bottom:1px solid var(--rule)}
.accred .wrap{display:flex;flex-wrap:wrap;gap:10px 32px;align-items:center;padding-top:22px;padding-bottom:22px}
.accred span{font-size:.9rem;color:var(--muted)}
.accred b{font-weight:700;color:var(--navy);font-size:.95rem}
.accred b[title]{border-bottom:1px dotted var(--muted)}

/* movement dividers: the theme */
.movement{padding:110px 0 90px;position:relative;overflow:hidden}
.movement.one{background:var(--white)}
.movement.two{background:var(--navy);color:var(--silver)}
.movement .part{font-family:var(--display);font-size:1.2rem;color:var(--crimson);margin:0 0 18px}
.movement.two .part{color:var(--blue)}
.movement h2{font-family:var(--display);font-weight:500;font-size:clamp(3.2rem,8vw,7rem);line-height:.98;max-width:none}
.movement.two h2{color:#fff}
.movement p.sub{font-size:1.3rem;margin-top:28px;max-width:46ch}
.movement .rule{height:14px;width:160px;margin-top:34px;background:linear-gradient(180deg,var(--navy) 0 5px,var(--blue) 5px 9px,var(--crimson) 9px 14px)}
.movement.two .rule{background:linear-gradient(180deg,var(--blue) 0 5px,#fff 5px 9px,var(--red) 9px 14px)}
.movement .raven{position:absolute;right:-30px;bottom:-40px;width:min(46vw,560px);opacity:.06;pointer-events:none}
.movement.two .raven{opacity:.08}

section.band{padding:96px 0}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.split.align-start{align-items:start}

/* original */
.original .photo{min-height:520px}
.original blockquote{margin:28px 0;padding:0 0 0 22px;border-left:3px solid var(--crimson);font-family:var(--display);font-size:1.55rem;line-height:1.35;color:var(--navy);max-width:30ch}

/* the original place */
.place{background:var(--mist)}
.place-head{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:56px;align-items:end;margin-bottom:44px}
.place-head h2,.life-head h2{font-size:clamp(2.4rem,5vw,4.2rem);line-height:1.02}
.place-lede,.life-lede{font-size:1.2rem;margin:0}
.thennow{position:relative;height:540px;overflow:hidden;border-radius:2px;--pos:50%;touch-action:pan-y;cursor:ew-resize;-webkit-user-select:none;user-select:none}
.thennow .photo{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:0;min-height:0}
.tn-then{position:absolute;top:0;right:0;bottom:0;left:0;-webkit-clip-path:inset(0 calc(100% - var(--pos)) 0 0);clip-path:inset(0 calc(100% - var(--pos)) 0 0);background:linear-gradient(180deg,rgba(40,30,15,.05),rgba(40,30,15,.55)),repeating-linear-gradient(135deg,#8A7A5E 0 14px,#776A50 14px 24px);display:flex;align-items:flex-start}
.tn-then .cap,.tn-capr{font-size:.85rem;color:#fff;padding:14px 18px}
.tn-capr{position:absolute;right:0;bottom:0}
.tn-handle{position:absolute;top:0;bottom:0;left:var(--pos);width:3px;margin-left:-1.5px;background:#fff;pointer-events:none}
.tn-handle::after{content:"";position:absolute;top:50%;left:50%;width:46px;height:46px;margin:-23px 0 0 -23px;border-radius:50%;background:var(--crimson);box-shadow:0 0 0 4px #fff}
.thennow input[type=range]{position:absolute;left:0;top:0;width:100%;height:100%;opacity:0;margin:0;-webkit-appearance:none;appearance:none;pointer-events:none}
.thennow:focus-within .tn-handle::after{box-shadow:0 0 0 4px #fff,0 0 0 7px var(--blue)}
.tn-note{margin:10px 0 0}
.place-facts{list-style:none;margin:48px 0 0;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px}
.place-facts li{border-top:3px solid var(--crimson);padding-top:16px}
.place-facts b{display:block;font-family:var(--display);font-weight:500;font-size:2.5rem;line-height:1.1;color:var(--navy)}
.place-facts span{font-size:.98rem;color:var(--muted)}
.seasons{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin-top:56px}
.season{margin:0}
.season .photo{min-height:230px}
.season figcaption{padding-top:12px;font-size:.95rem;color:var(--muted)}
.season figcaption b{display:block;font-family:var(--display);font-weight:500;font-size:1.4rem;color:var(--navy)}
.place-foot{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;margin-top:64px;align-items:start}
.place-foot blockquote,.forever blockquote{margin:0;padding-left:24px;border-left:3px solid var(--crimson);font-family:var(--display);font-size:1.7rem;line-height:1.3;color:var(--navy)}
.place-foot blockquote small,.forever blockquote small{display:block;font-family:var(--body);font-size:.9rem;color:var(--muted);margin-top:14px}
.travel{list-style:none;padding:0;margin:14px 0 26px;display:grid;gap:10px}
.travel li{display:flex;justify-content:space-between;border-bottom:1px solid var(--rule);padding-bottom:10px;gap:16px}
.travel li span:last-child{color:var(--muted);text-align:right}

/* how we teach */
.rl .intro{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;margin-bottom:56px}
.steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));counter-reset:s;border-top:1px solid var(--rule)}
.steps li{counter-increment:s;padding:28px 28px 30px 0;border-bottom:1px solid var(--rule)}
.steps li::before{content:counter(s);font-family:var(--display);font-size:2.4rem;color:var(--crimson);display:block;line-height:1;margin-bottom:12px}
.steps h3{font-size:1.35rem;margin-bottom:8px}
.steps p{font-size:1rem;margin:0;color:var(--muted)}
.lineage{margin-top:44px;padding:24px 28px;background:var(--mist);border-left:4px solid var(--navy);display:flex;gap:28px;align-items:center;flex-wrap:wrap}
.lineage p{margin:0;flex:1 1 420px}

/* small classes */
.classes{background:var(--navy);color:var(--silver);padding:88px 0;position:relative;overflow:hidden}
.classes-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.classes h2{color:#fff}
.classes .kicker{color:var(--blue)}
.ratio{display:flex;align-items:flex-end;gap:28px;flex-wrap:wrap}
.ratio .big{font-family:var(--display);font-weight:500;font-size:clamp(6rem,14vw,10rem);line-height:.85;color:#fff}
.ratio .big span{color:var(--blue)}
.ratio p{margin:0 0 10px;font-size:1.1rem;max-width:22ch}
.seats{display:grid;grid-template-columns:repeat(5,44px);gap:10px;margin-top:28px}
.seats i{height:44px;border-radius:50%;background:var(--blue)}
.seats i.t{background:var(--red)}
.class-points{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:14px}
.class-points li{padding-left:22px;position:relative}
.class-points li::before{content:"";position:absolute;left:0;top:.55em;width:10px;height:10px;background:var(--red)}
.class-points b{color:#fff}

/* featured story */
.video{position:relative;min-height:440px}
.play{position:absolute;left:50%;top:45%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:88px;height:88px;border-radius:50%;background:rgba(255,255,255,.95);border:0;cursor:pointer;display:flex;align-items:center;justify-content:center;-webkit-appearance:none;appearance:none}
.play::after{content:"";border-left:24px solid var(--crimson);border-top:15px solid transparent;border-bottom:15px solid transparent;margin-left:6px}
.arc{list-style:none;padding:0;margin:26px 0 28px;border-left:2px solid var(--rule)}
.arc li{padding:0 0 18px 22px;position:relative}
.arc li::before{content:"";position:absolute;left:-7px;top:.45em;width:12px;height:12px;border-radius:50%;background:var(--white);border:2px solid var(--navy)}
.arc li.turn::before{background:var(--crimson);border-color:var(--crimson)}
.arc b{display:block;font-weight:700;color:var(--navy)}
.arc span{color:var(--muted)}

/* story library */
.library{background:var(--mist)}
.lib-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap;margin-bottom:28px}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.chip{font-family:var(--body);font-size:.92rem;background:var(--white);border:1px solid var(--rule);border-radius:22px;padding:.5em 1.05em;cursor:pointer;color:var(--navy);min-height:44px;-webkit-appearance:none;appearance:none}
.chip[aria-pressed=true]{background:var(--navy);color:#fff;border-color:var(--navy);font-weight:700}
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.card{background:var(--white);display:flex;flex-direction:column}
.card .photo{min-height:200px;border-radius:0}
.card .body{padding:20px 22px 24px}
.card .meta{font-size:.85rem;color:var(--crimson);font-weight:700;margin-bottom:6px}
.card h3{font-size:1.3rem;margin-bottom:8px}
.card p{font-size:.98rem;margin:0;color:var(--muted)}
.card[hidden]{display:none}

/* to the student */
.to-student{background:var(--crimson);color:#FBE9EC}
.to-student .kicker{color:#fff}
.ts-grid{display:grid;grid-template-columns:minmax(0,.6fr) minmax(0,1.4fr);gap:48px;align-items:start}
.to-student h2{color:#fff;font-size:clamp(2rem,4vw,3.2rem);max-width:22ch}
.ts-body{font-size:1.2rem;margin:24px 0 30px}
.to-student .btn.solid{background:#fff;color:var(--crimson);border-color:#fff}

/* life at gow */
.life-head{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:56px;align-items:end;margin-bottom:40px}
.tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:2px solid var(--rule);margin-bottom:34px}
.tabs button{font-family:var(--body);font-weight:700;font-size:1rem;letter-spacing:var(--ls);background:none;border:0;border-bottom:4px solid transparent;margin-bottom:-2px;padding:.8em 1.1em;color:var(--muted);cursor:pointer;min-height:48px;-webkit-appearance:none;appearance:none}
.tabs button:hover{color:var(--navy)}
.tabs button[aria-selected=true]{color:var(--navy);border-bottom-color:var(--crimson)}
.tabpanel:focus-visible{outline-offset:8px}
.panel-intro{font-size:1.15rem}
.family{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px}
.fam .photo,.b-item .photo{min-height:220px}
.fam h3,.b-item h3{font-size:1.4rem;margin:16px 0 6px}
.fam p,.b-item p{font-size:.98rem;color:var(--muted);margin:0}
.daylist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));border-top:3px solid var(--navy)}
.daylist li{padding:18px 16px 0 0}
.daylist time{display:block;font-family:var(--display);font-size:1.4rem;color:var(--crimson)}
.daylist b{display:block;font-weight:700;color:var(--navy);margin:4px 0}
.daylist span{font-size:.95rem;color:var(--muted)}
.sports{list-style:none;margin:0 0 18px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--rule)}
.sports li{padding:22px 24px 22px 0;border-bottom:1px solid var(--rule)}
.sports b{display:block;font-family:var(--display);font-weight:500;font-size:1.65rem;color:var(--navy)}
.sports span{font-size:.98rem;color:var(--muted)}
.beyond{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-bottom:14px}
.forever{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center;margin-top:72px;padding-top:56px;border-top:1px solid var(--rule)}
.forever .photo{min-height:440px}
.forever h3{font-size:clamp(1.9rem,3vw,2.5rem);margin-bottom:16px}
.forever blockquote{margin:22px 0 26px}

/* global community */
.global{background:var(--mist)}
.global-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:center}
.globe-stats{padding:0;display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:30px 0}
.globe-stats li{list-style:none;border-top:3px solid var(--navy);padding-top:14px}
.globe-stats b{display:block;font-family:var(--display);font-weight:500;font-size:3rem;line-height:1;color:var(--crimson)}
.globe-stats span{color:var(--muted);font-size:.98rem}
.places-list{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 10px;padding:0;list-style:none}
.places-list li{background:var(--white);border:1px solid var(--rule);border-radius:20px;padding:.35em .9em;font-size:.92rem;color:var(--navy)}
.globe{position:relative;aspect-ratio:1/1;max-width:460px;width:100%;margin:0 auto;border-radius:50%;background:radial-gradient(circle at 35% 30%,#1A3D7C 0,var(--navy) 65%);overflow:hidden;box-shadow:inset -30px -30px 60px rgba(0,0,0,.35)}
.globe::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(0deg,transparent 0 38px,rgba(0,156,222,.35) 38px 39px),repeating-linear-gradient(90deg,transparent 0 38px,rgba(0,156,222,.25) 38px 39px);border-radius:50%}
.globe i{position:absolute;width:12px;height:12px;border-radius:50%;background:var(--red);box-shadow:0 0 0 4px rgba(228,0,43,.25)}
.globe i.home{width:18px;height:18px;background:#fff;box-shadow:0 0 0 6px rgba(255,255,255,.25);left:calc(38% - 9px);top:calc(40% - 9px)}
.globe i.g1{left:calc(66% - 6px);top:calc(30% - 6px)}
.globe i.g2{left:calc(48% - 6px);top:calc(74% - 6px)}
.globe i.g3{left:calc(78% - 6px);top:calc(58% - 6px)}
.globe i.g4{left:calc(18% - 6px);top:calc(52% - 6px)}
.globe i.g5{left:calc(70% - 6px);top:calc(80% - 6px)}
.globe svg.lines{position:absolute;top:0;left:0;width:100%;height:100%}
@supports not (aspect-ratio:1/1){.globe{height:0;padding-bottom:100%}}

/* outcomes */
.out-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:64px;margin-top:40px}
.alumni{display:grid;grid-template-columns:1fr 1fr;gap:20px}
.alum{background:var(--mist);padding:22px;border-top:3px solid var(--navy)}
.alum .dec{font-family:var(--display);font-size:1.7rem;color:var(--crimson)}
.alum p{font-size:.98rem;margin:6px 0 0}
.research{background:var(--white);padding:28px;border-left:4px solid var(--crimson);box-shadow:0 0 0 1px var(--rule)}
.big100{font-family:var(--display);font-weight:500;font-size:4.6rem;line-height:1;color:var(--navy)}
.colleges{margin-top:48px;padding-top:32px;border-top:1px solid var(--rule)}
.colleges h3{font-size:1.45rem;margin-bottom:16px}
.colleges ul{list-style:none;margin:0 0 12px;padding:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px 24px}
.colleges li{font-family:var(--display);font-size:1.2rem;color:var(--navy);border-bottom:1px solid var(--rule);padding:6px 0}

/* pathways */
.paths{background:var(--mist)}
.path-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin-top:40px;border-top:1px solid var(--rule)}
.path-grid a{display:block;padding:26px 24px 30px 0;text-decoration:none;border-bottom:1px solid var(--rule);color:var(--ink)}
.path-grid a:hover h3{color:var(--crimson)}
.path-grid .grades{font-size:.9rem;color:var(--crimson);font-weight:700}
.path-grid h3{margin:6px 0 10px;font-size:1.5rem}
.path-grid p{font-size:.98rem;color:var(--muted);margin:0;padding-right:12px}

/* fit check */
.fit{background:var(--navy);color:var(--silver)}
.fit h2{color:#fff}
.fit .kicker{color:var(--blue)}
.panel{background:var(--white);color:var(--ink);padding:34px;border-radius:2px}
.fit fieldset{border:0;padding:0;margin:0;min-width:0}
.fit legend{font-weight:700;color:var(--navy);margin-bottom:14px;font-size:1.05rem;padding:0}
.fit label.chk{display:flex;gap:14px;align-items:flex-start;padding:12px 0;border-bottom:1px solid var(--rule);cursor:pointer;font-size:1rem;min-height:44px}
.fit input[type=checkbox]{width:22px;height:22px;accent-color:var(--crimson);flex:none;margin-top:2px}
.result{margin-top:22px;padding:18px 20px;background:var(--mist);border-left:4px solid var(--crimson);display:none}
.result.show{display:block}
.result p{margin:0 0 12px}

/* inquiry */
.form-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:18px 20px}
.field label{display:block;font-size:.95rem;font-weight:700;color:var(--navy);margin-bottom:6px}
.field input,.field select,.field textarea{font-size:16px;width:100%;min-height:48px;padding:.7em .8em;border:1px solid #8A97A6;border-radius:3px;background:#fff;color:var(--ink);-webkit-appearance:none;appearance:none}
.field select{background-image:linear-gradient(45deg,transparent 50%,var(--navy) 50%),linear-gradient(135deg,var(--navy) 50%,transparent 50%);background-position:calc(100% - 20px) 50%,calc(100% - 14px) 50%;background-size:6px 6px;background-repeat:no-repeat;padding-right:2.4em}
.field textarea{min-height:130px;resize:vertical;line-height:1.5}
.field.full{grid-column:1/-1}
.err{color:#A6192E;font-size:.9rem;margin-top:4px;display:none}
.field.invalid .err{display:block}.field.invalid input,.field.invalid textarea{border-color:var(--crimson)}
.side-cards{display:grid;gap:18px;align-content:start}
.side{padding:24px;border:1px solid var(--rule);border-top:3px solid var(--crimson);background:var(--mist)}
.side h3{font-size:1.35rem;margin-bottom:8px}
.side p{font-size:.98rem;margin:0 0 12px}
.dates{list-style:none;margin:0;padding:0}
.dates li{display:flex;justify-content:space-between;gap:16px;padding:10px 0;border-bottom:1px solid var(--rule);font-size:.98rem}
.dates b{font-weight:700;color:var(--navy)}
.thanks{display:none;padding:24px;background:var(--mist);border-left:4px solid var(--navy)}
.thanks.show{display:block}
.thanks p{margin:10px 0 0}
.process{list-style:none;counter-reset:pr;margin:26px 0 30px;padding:0;display:grid;gap:14px}
.process li{counter-increment:pr;display:grid;grid-template-columns:44px 1fr;column-gap:12px}
.process li::before{content:counter(pr);grid-row:span 2;width:36px;height:36px;border-radius:50%;background:var(--navy);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--display);font-size:1.15rem}
.process b{font-weight:700;color:var(--navy)}
.process span{font-size:.95rem;color:var(--muted)}

/* ask luke */
.ask{background:var(--navy);color:var(--silver);position:relative;overflow:hidden}
.ask-grid{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:64px;align-items:start}
.ask h2{color:#fff;font-family:var(--display);font-weight:500;font-size:clamp(2.6rem,5vw,4rem)}
.ask .kicker{color:var(--blue)}
.head-card{display:flex;gap:18px;align-items:center;margin:28px 0}
.head-photo{width:96px;height:96px;border-radius:50%;flex:none;background:var(--stripe-red);border:3px solid #fff}
.head-card b{display:block;color:#fff;font-family:var(--display);font-weight:500;font-size:1.45rem}
.head-card span{font-size:.95rem}
.ask .panel h3{margin-bottom:6px}
.ask .panel .hint{font-size:.9rem;color:var(--muted);margin:14px 0 0}
.ask a.mail{color:#fff}
.submit-row{margin:20px 0 0}

/* FAQ */
.faq{background:var(--mist)}
.faq-list{margin-top:34px;border-top:1px solid var(--rule);max-width:880px}
.faq details{border-bottom:1px solid var(--rule)}
.faq summary{cursor:pointer;list-style:none;padding:20px 44px 20px 0;font-weight:700;color:var(--navy);position:relative;font-size:1.08rem;min-height:44px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::marker{content:""}
.faq summary::after{content:"+";position:absolute;right:6px;top:12px;font-family:var(--display);font-size:1.9rem;color:var(--crimson)}
.faq details[open] summary::after{content:"\2013"}
.faq details p{margin:0 0 20px}

/* resources */
.res-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin-top:36px}
.res{padding:24px;background:var(--mist);border-top:3px solid var(--navy);text-decoration:none;color:var(--ink);display:block}
.res .meta{font-size:.85rem;color:var(--crimson);font-weight:700;margin:0}
.res h3{font-size:1.3rem;margin:6px 0 8px}
.res p{font-size:.95rem;margin:0;color:var(--muted)}
.edu-card{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:40px;background:var(--stripe-diag);padding:6px;margin-top:40px}
.edu-card > div,.edu-card > form{background:var(--navy);color:var(--silver);padding:34px}
.edu-card h3{color:#fff;font-size:1.75rem;margin-bottom:10px}
.edu-card .kicker{color:var(--blue)}
.edu-card form{display:grid;gap:10px;align-content:start}
.edu-card label{font-size:.95rem;font-weight:700;color:#fff}
.edu-card input{font-size:16px;min-height:48px;padding:.7em .8em;border:0;border-radius:3px;width:100%;color:var(--ink);-webkit-appearance:none;appearance:none}
.edu-msg{font-size:.95rem;margin:0;color:var(--silver)}

/* centennial */
.centennial{background:var(--navy);color:var(--silver);padding:100px 0;position:relative;overflow:hidden}
.centennial::before{content:"";position:absolute;left:0;right:0;top:0;height:14px;background:linear-gradient(180deg,var(--crimson) 0 5px,var(--red) 5px 9px,var(--crimson) 9px 14px)}
.cent-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:64px;align-items:center}
.cent-logo{width:min(300px,70%);margin-bottom:48px}
.centennial h2{color:#fff;font-family:var(--display);font-weight:500;font-size:clamp(2.6rem,5.2vw,4.4rem);line-height:1.02;max-width:14ch}
.centennial h2 span{display:block;color:var(--blue)}
.cent-actions{display:grid;gap:16px}
.cent-actions a{display:block;padding:22px 24px;border:1px solid rgba(255,255,255,.25);text-decoration:none;color:var(--silver)}
.cent-actions a:hover{border-color:var(--blue);color:#fff}
.cent-actions b{display:block;font-family:var(--display);font-weight:500;font-size:1.45rem;color:#fff;margin-bottom:4px}

footer{background:var(--navy);color:var(--silver);font-size:.92rem;padding:0 0 28px}
footer .top{border-top:1px solid rgba(255,255,255,.12);padding-top:56px}
footer .flogo{width:220px;margin-bottom:22px}
footer .tag{font-family:var(--display);font-size:2rem;color:#fff;line-height:1.15;margin:0 0 36px}
footer .tag span{color:var(--blue)}
footer .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px;margin-bottom:40px}
footer h3{color:#fff;font-size:1.2rem;margin-bottom:12px}
footer ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
footer a{color:#fff;text-decoration:none}
footer a:hover{color:#fff;text-decoration:underline}
footer .legal{border-top:1px solid rgba(255,255,255,.15);padding-top:20px;display:grid;gap:8px;font-size:.82rem}
footer .legal .note{color:#BFD6E6}

.sticky-cta{display:none}

/* ===== Responsive: large desktop / laptop / tablet landscape / tablet portrait / phone ===== */
@media (max-width:1280px){ nav.main ul{gap:16px} nav.main a{font-size:.9rem} }
@media (max-width:1180px){
  nav.main{display:none}
  nav.main.open{display:block;position:absolute;top:100%;left:0;right:0;background:#fff;border-bottom:1px solid var(--rule);padding:8px var(--gutter) 16px;box-shadow:0 12px 24px -12px rgba(0,32,91,.25)}
  nav.main.open ul{flex-direction:column;gap:0}
  nav.main.open a{padding:12px 0;border-bottom:1px solid var(--rule)}
  .menu-btn{display:inline-flex;align-items:center;margin-left:auto;background:none;border:2px solid var(--navy);border-radius:3px;padding:.5em .9em;min-height:44px;font-family:var(--body);font-weight:700;font-size:.95rem;cursor:pointer;color:var(--navy);-webkit-appearance:none;appearance:none}
}
/* tablet landscape and small laptops */
@media (max-width:1024px){
  section.band{padding:80px 0}
  .split,.global-grid,.classes-grid,.ask-grid{gap:44px}
  .family,.seasons{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proof ul{grid-template-columns:repeat(3,minmax(0,1fr))}
  .path-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .daylist{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:18px}
  .colleges ul{grid-template-columns:repeat(3,minmax(0,1fr))}
  .quote-card{left:-24px}
  footer .cols{grid-template-columns:1fr 1fr}
}
/* tablet portrait */
@media (max-width:860px){
  .hero-grid,.split,.rl .intro,.out-grid,.edu-card,.cent-grid,.place-head,.place-foot,.life-head,.forever,.global-grid,.classes-grid,.ask-grid,.ts-grid{grid-template-columns:minmax(0,1fr);gap:32px}
  .hero{padding-top:44px}.hero .photo{min-height:360px}
  .quote-card{left:16px;right:16px;bottom:56px;max-width:none}
  .steps,.cards,.res-grid,.beyond,.sports{grid-template-columns:minmax(0,1fr)}
  .cline{display:none}.ms-detail{display:none}.century .head p{display:none}
  .century-list{display:grid;list-style:none;margin:0;padding:0;gap:12px}
  .century-list li{display:grid;grid-template-columns:70px 1fr;gap:12px;border-bottom:1px solid rgba(255,255,255,.2);padding-bottom:10px;font-size:.95rem}
  .century-list b{font-family:var(--display);font-weight:500;color:#fff;font-size:1.25rem}
  section.band{padding:64px 0}.movement{padding:80px 0 64px}.classes,.centennial{padding:72px 0}
  .alumni,.form-grid{grid-template-columns:minmax(0,1fr)}
  .original .photo,.video,.forever .photo{min-height:320px}
  .thennow{height:360px}
  .edu-card > div,.edu-card > form,.panel{padding:26px}
  .tabs{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none}
  .tabs::-webkit-scrollbar{display:none}
  .tabs button{white-space:nowrap}
  .sticky-cta{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:30;background:#fff;border-top:1px solid var(--rule);padding:10px 16px calc(10px + env(safe-area-inset-bottom));gap:10px}
  .sticky-cta .btn{flex:1;padding:.6em}
  body{padding-bottom:76px}
  .util .links,.util .cent{display:none}
  .tools{display:none}
  .util .wrap{justify-content:flex-end}
  .globe{max-width:340px}
}
/* phone */
@media (max-width:560px){
  :root{--gutter:16px}
  header.site .wrap{gap:10px;min-height:68px}
  .brand svg{height:40px}
  .hero h1{font-size:2.8rem}
  .proof ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .proof b{font-size:1.9rem}
  .path-grid,.daylist,.place-facts,.family,.seasons{grid-template-columns:minmax(0,1fr)}
  .colleges ul{grid-template-columns:1fr 1fr}
  .globe-stats{grid-template-columns:1fr 1fr}
  .ctas .btn{flex:1 1 100%}
  footer .cols{grid-template-columns:minmax(0,1fr)}
  .seats{grid-template-columns:repeat(5,36px)}.seats i{height:36px}
}
@media print{.util,header.site,.sticky-cta,.tools,.play{display:none!important}body{padding:0}}
