/* STGC '85 Knights Foundation: redesign preview
   Flat colour bands, square corners, big bold sans headings.
   Navy is the main colour; red is reserved for Donate. */
:root{--navy:#0f2340;--navy-2:#18335c;--red:#c8202f;--red-dark:#a51824;--ink:#111a2b;--muted:#4a5468;--grey:#ececec;--grey-2:#f5f5f5;--line:#d4d8df;--white:#fff;--max:1160px;--bar:64px}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:var(--bar)}
body{margin:0;font-family:"Source Sans 3","Segoe UI",Roboto,Helvetica,Arial,sans-serif;color:var(--ink);line-height:1.55;background:var(--white);font-size:18px}
img{max-width:100%;display:block}
a{color:var(--navy)}
h1,h2,h3,h4{font-family:inherit;color:var(--navy);font-weight:800;line-height:1.05;letter-spacing:-.02em;margin:0 0 .5em}
h2{font-size:clamp(2.4rem,5vw,4rem)}
h3{font-size:clamp(1.4rem,2.2vw,1.75rem);line-height:1.15}
.wrap{max-width:var(--max);margin:0 auto;padding:0 24px}

/* buttons: flat, square, no shadow */
.btn{display:inline-block;min-width:200px;padding:18px 26px;font-weight:700;font-size:1.05rem;line-height:1.2;text-decoration:none;text-align:left;border:0;border-radius:0;background:var(--navy);color:#fff;transition:background .15s,color .15s}
.btn:hover,.btn:focus-visible{background:var(--navy-2)}
.btn-donate{background:var(--red);color:#fff}
.btn-donate:hover,.btn-donate:focus-visible{background:var(--red-dark)}
.btn-light{background:#fff;color:var(--navy)}
.btn-light:hover,.btn-light:focus-visible{background:var(--grey)}
.btn-on-red{background:var(--navy);color:#fff}
.btn-on-red:hover,.btn-on-red:focus-visible{background:#08142a}
a:focus-visible,button:focus-visible{outline:3px solid #fff;outline-offset:2px;box-shadow:0 0 0 6px var(--navy)}

/* header: slim navy bar, logo tab hanging over hero, red Donate flush right */
.site-header{position:sticky;top:0;z-index:20;background:var(--navy);color:#fff}
.site-header .bar{display:flex;align-items:stretch;height:var(--bar);padding-left:24px}
.brand{display:flex;align-items:center;gap:16px;color:#fff;text-decoration:none;font-weight:700;margin-right:auto;position:relative}
.logo-tab{align-self:flex-start;background:#fff;padding:10px;width:128px;height:128px;position:relative;z-index:2}
.logo-tab img{width:100%;height:100%;object-fit:cover}
.brand-name{font-size:1.05rem;letter-spacing:.01em;white-space:nowrap}
.nav{display:flex;align-items:stretch}
.nav a{display:flex;align-items:center;padding:0 18px;color:#fff;text-decoration:none;font-weight:600;font-size:1rem;position:relative}
.nav a::after{content:"";position:absolute;left:18px;right:18px;bottom:14px;height:3px;background:#fff;transform:scaleX(0);transform-origin:left;transition:transform .2s}
.nav a:hover::after,.nav a:focus-visible::after{transform:scaleX(1)}
.header-donate{display:flex;align-items:center;justify-content:center;min-width:0;padding:0 34px;font-size:1.05rem}
.menu-toggle{display:none;background:var(--navy);color:#fff;border:0;border-left:1px solid rgba(255,255,255,.25);padding:0 20px;font:inherit;font-weight:700;font-size:1rem;cursor:pointer}
@media (max-width:1000px){.brand-name{display:none}}
@media (max-width:820px){
  :root{--bar:56px}
  .site-header .bar{padding-left:16px}
  .logo-tab{width:88px;height:88px;padding:7px}
  .menu-toggle{display:block}
  .header-donate{padding:0 22px}
  .nav{display:none;position:absolute;top:var(--bar);left:0;right:0;flex-direction:column;background:var(--navy);border-top:1px solid rgba(255,255,255,.2)}
  .nav-open .nav{display:flex;padding-top:calc(88px - var(--bar) + 6px)}
  .nav a{padding:16px 24px;font-size:1.15rem;border-bottom:1px solid rgba(255,255,255,.12)}
  .nav a::after{display:none}
}

/* hero: edge-to-edge photo, dark overlay, big white type */
.hero{position:relative;color:#fff;background:var(--navy) url("images/hero.jpg") center 30%/cover no-repeat;min-height:max(calc(100vh - var(--bar)),640px);display:flex;align-items:flex-end;padding:0}
.hero::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,18,36,.25) 0%,rgba(8,18,36,.35) 40%,rgba(8,18,36,.82) 72%,rgba(8,18,36,.92) 100%)}
.hero .wrap{position:relative;width:100%;padding-top:160px;padding-bottom:56px}
.hero .eyebrow{font-size:1.05rem;font-weight:700;color:#fff;margin-bottom:.8em}
.hero h1{color:#fff;font-size:clamp(2.6rem,6.4vw,5.2rem);font-weight:900;line-height:.98;letter-spacing:-.03em;max-width:900px;margin-bottom:.35em}
.hero p{font-size:1.3rem;max-width:640px;color:#fff;margin:0 0 1.5em}
.hero .actions{display:flex;gap:16px;flex-wrap:wrap}
.hero-legal{font-size:.95rem!important;color:rgba(255,255,255,.82)!important;margin:22px 0 0!important}
@media (max-width:820px){
  .hero{min-height:0;display:block;background-size:100% auto;background-position:center top}
  .hero::before{background:linear-gradient(180deg,rgba(8,18,36,.15) 0,rgba(8,18,36,.2) 55vw,var(--navy) 75vw,var(--navy) 100%)}
  .hero .wrap{padding-top:calc(72vw - 10px);padding-bottom:48px}
  .hero p{font-size:1.1rem}
  .hero .actions .btn{flex:1 1 100%}
}

/* sections: flat full-width colour bands */
section{padding:96px 0}
@media (max-width:820px){section{padding:64px 0}}
.alt{background:var(--grey-2)}
.lead{font-size:1.25rem;color:var(--muted);max-width:720px;margin:-.2em 0 0}
.grid-2{display:grid;grid-template-columns:1.4fr 1fr;gap:64px;align-items:center}
@media (max-width:820px){.grid-2{grid-template-columns:1fr;gap:32px}}
blockquote{margin:1.2em 0 1.6em;padding:0 0 0 22px;border-left:6px solid var(--navy);font-size:1.35rem;line-height:1.4;font-weight:600;color:var(--navy)}
#about h3{margin-top:1em}
.facts{list-style:none;padding:0;margin:1em 0 0;border-top:2px solid var(--navy)}
.facts li{padding:14px 0;border-bottom:1px solid var(--line)}
.facts strong{color:var(--navy)}
.logo-card{background:var(--navy);padding:40px;text-align:center}
.logo-card img{margin:0 auto;width:100%;max-width:320px;background:#fff;padding:12px}
.logo-card p{margin:.9em 0 0;color:#fff;font-weight:700;letter-spacing:.2em}

/* cards: square, no shadow */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,360px));gap:32px;margin-top:40px}
.card{background:#fff;border-radius:0;padding:28px 0 0}
.card h3{margin-bottom:.3em}
.card p{margin:0;color:var(--muted)}
.card.scholar{padding:0}
.card.scholar h3{padding:22px 0 0}
.card.scholar p{padding:0 0 4px}
.alt .card{background:transparent}
.scholar-photo{width:100%;height:auto;aspect-ratio:1/1;object-fit:cover;background:var(--grey)}
.impact-placeholder{margin:56px 0 0;max-width:820px;padding:24px 28px;border:2px dashed #9aa3b2;background:#fff;color:#5d6678;font-size:1.15rem;font-weight:400;font-style:italic}

/* partner: navy band */
.band-navy{background:var(--navy);color:#fff}
.band-navy h2,.band-navy h3{color:#fff}
.partner-cards{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.band-navy .card{background:transparent;border-top:3px solid #fff;padding-top:24px}
.band-navy .card p{color:rgba(255,255,255,.85)}
.partner-cta{margin:48px 0 0}

/* memorial */
.memorial{display:grid;grid-template-columns:1fr 1fr;gap:32px;margin-top:40px}
@media (max-width:820px){.memorial{grid-template-columns:1fr}}
.tribute{background:#fff;display:flex;flex-direction:column}
.tribute .photos{display:grid;grid-template-columns:1fr 1fr;gap:0}
.tribute .photos img{width:100%;height:260px;object-fit:cover}
.tribute .body{padding:26px 28px 30px}
.tribute.text-only{justify-content:flex-end;background:var(--navy);color:#fff;min-height:260px}
.tribute.text-only .body{padding:40px 32px}
.tribute.text-only h3{color:#fff}
.tribute h3{font-size:clamp(1.8rem,3vw,2.4rem);margin-bottom:.25em}
.tribute p{margin:0}
.tribute .label{font-size:1rem;font-weight:700;margin-bottom:.4em;color:var(--muted)}
.tribute.text-only .label{color:rgba(255,255,255,.8)}

/* board */
.board-president{font-size:1.4rem;margin:0 0 1.4em}
.board-president strong{color:var(--navy)}
#board h3{margin-top:.6em}
.names{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));border-top:2px solid var(--navy)}
.names li{padding:18px 0;border-bottom:1px solid var(--line);font-weight:700;font-size:1.2rem;color:var(--navy);margin-right:24px}

/* donate: red band */
.band-red,.donate{background:var(--red);color:#fff}
.donate h2{color:#fff;font-size:clamp(2.8rem,6vw,4.8rem)}
.donate p{max-width:680px;margin:0 0 1.4em;font-size:1.2rem}
.donate-facts{list-style:none;padding:0;margin:0 0 2em;display:grid;gap:0;max-width:680px;border-top:2px solid #fff}
.donate-facts li{padding:14px 0;border-bottom:1px solid rgba(255,255,255,.45);font-weight:700;font-size:1.15rem}
.mail-gift{display:grid;grid-template-columns:1fr 1fr;gap:24px 48px;margin:3em 0 0;max-width:820px;padding-top:28px;border-top:1px solid rgba(255,255,255,.45)}
@media (max-width:640px){.mail-gift{grid-template-columns:1fr}}
.mail-gift p{margin:0!important;font-size:1.05rem!important}
.donate a:not(.btn){color:#fff;font-weight:700}
.donate .small{font-size:1rem;margin-top:2em}

/* footer: light grey, three columns */
footer{background:var(--grey);color:var(--ink);padding:72px 0 40px;font-size:1rem}
footer .cols{display:grid;grid-template-columns:repeat(3,1fr);gap:40px}
@media (max-width:820px){footer .cols{grid-template-columns:1fr;gap:32px}}
footer h4{font-size:1.3rem;font-weight:800;letter-spacing:-.01em;margin:0 0 .6em;color:var(--navy)}
footer h4.follow{margin-top:1.4em}
footer a{color:var(--navy);font-weight:600}
footer p{margin:.25em 0}
footer .logo{width:88px;background:#fff;padding:6px;margin-bottom:16px}
footer .base{border-top:1px solid #c9ccd2;margin-top:48px;padding-top:20px;font-size:.9rem;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;color:var(--muted)}
footer .base p{margin:0}

/* scholar cards as links */
.visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.card-link{display:block;color:inherit;text-decoration:none}
.card-link .read-more{display:inline-block;margin-top:10px;font-weight:700;color:var(--navy);text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.card-link:hover .read-more,.card-link:focus-visible .read-more{text-decoration-thickness:4px}
.card-link:hover h3,.card-link:focus-visible h3{text-decoration:underline;text-underline-offset:5px}
.card-link:hover .scholar-photo{opacity:.92}

/* image placeholders */
.img-placeholder{display:flex;align-items:center;justify-content:center;background:#d9dce1;color:#4a5468;font-weight:700;font-size:1.1rem;text-align:center;aspect-ratio:4/3;width:100%}
.img-placeholder-sm{width:140px;flex:0 0 140px;aspect-ratio:1/1;font-size:.9rem;padding:8px}

/* past scholars row */
.past-scholars{margin-top:56px;padding-top:28px;border-top:2px solid var(--navy);max-width:820px}
.past-heading{font-size:1.4rem;margin-bottom:.8em}
.past-card{display:flex;align-items:center;gap:22px;background:#fff;padding:14px;max-width:520px}
.past-text{display:flex;flex-direction:column}
.past-text .label{font-size:.95rem;font-weight:700;color:var(--muted)}
.past-text strong{font-size:1.35rem;color:var(--navy);line-height:1.2}
.past-text .read-more{margin-top:6px}
@media (max-width:480px){.img-placeholder-sm{width:96px;flex-basis:96px}}

/* scholar pages */
.page-hero{background:var(--navy);color:#fff;padding:150px 0 64px}
.page-hero .back{color:#fff;font-weight:700;text-decoration:underline;text-underline-offset:4px}
.page-hero .label{font-size:1.1rem;font-weight:700;color:rgba(255,255,255,.85);margin:1.6em 0 .4em}
.page-hero h1{color:#fff;font-size:clamp(3rem,8vw,6rem);font-weight:900;line-height:.95;letter-spacing:-.03em;margin:0}
@media (max-width:820px){.page-hero{padding:120px 0 48px}}
.scholar-main{padding:72px 0}
.scholar-main .img-placeholder.hero-img{aspect-ratio:16/9;font-size:1.4rem}
.scholar-body{display:grid;grid-template-columns:1.5fr 1fr;gap:56px;margin-top:56px}
@media (max-width:820px){.scholar-body{grid-template-columns:1fr;gap:32px}.scholar-main{padding:48px 0}}
.scholar-body p{margin:0 0 1.1em;font-size:1.15rem}
.pull-quote{margin:0;padding:0 0 0 22px;border-left:6px solid var(--navy);font-size:1.6rem;line-height:1.3;font-weight:700;color:var(--navy);align-self:start}
.pull-quote cite{display:block;margin-top:.8em;font-size:1rem;font-style:normal;font-weight:600;color:var(--muted)}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:40px}
@media (max-width:560px){.gallery{grid-template-columns:1fr}}
.gallery h2{grid-column:1/-1;font-size:clamp(1.8rem,3vw,2.4rem);margin:0}
.back-row{margin-top:48px}
.back-link{font-weight:700;font-size:1.1rem;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.cta-band{padding:80px 0}
.cta-band h2{margin-bottom:.4em}
