/* TOEF house style — CMHS maroon & white, slate accents */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,500;9..144,700&family=Source+Sans+3:ital,wght@0,400;0,600;0,700;1,400&display=swap');

:root{
  --maroon:#670000; --maroon-dark:#4A0000; --maroon-tint:#F5EDEB;
  --slate:#53565A; --slate-light:#8A8D91; --line:#E3DFDC;
  --paper:#FFFFFF; --cream:#FAF7F4; --ink:#1F1D1C;
  --ok:#2E7D4F; --warn:#B7791F; --err:#B3261E;
  --display:'Fraunces',Georgia,serif; --body:'Source Sans 3',system-ui,sans-serif;
  --max:1120px; --radius:10px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:var(--body);font-size:17px;line-height:1.55;color:var(--ink);background:var(--paper)}
img{max-width:100%;display:block}
a{color:var(--maroon)}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.15;margin:0 0 .5em;color:var(--ink)}
h1{font-size:clamp(2rem,4.5vw,3.3rem)}
h2{font-size:clamp(1.6rem,3vw,2.2rem)}
h3{font-size:1.25rem}
p{margin:0 0 1em}
.eyebrow{font:600 .8rem var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--maroon);margin-bottom:.6em}
.lede{font-size:1.2rem;color:var(--slate);max-width:62ch}
.wrap{max-width:var(--max);margin:0 auto;padding:0 20px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* header / nav */
.topbar{background:var(--maroon);color:#fff;font-size:.9rem}
.topbar .wrap{display:flex;justify-content:space-between;align-items:center;min-height:36px;gap:12px;flex-wrap:wrap}
.topbar a{color:#fff;text-decoration:none;opacity:.92}
.topbar a:hover{opacity:1;text-decoration:underline}
header.site{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
header.site .wrap{display:flex;align-items:center;justify-content:space-between;min-height:76px;gap:16px}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--ink)}
.brand .mark{width:46px;height:46px;flex:none}
.brand .name{font-family:var(--display);font-weight:700;font-size:1.05rem;line-height:1.1}
.brand .name small{display:block;font:600 .7rem var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--slate)}
nav.primary ul{list-style:none;margin:0;padding:0;display:flex;gap:4px;align-items:center}
nav.primary a{display:inline-block;padding:10px 12px;text-decoration:none;color:var(--ink);font-weight:600;border-radius:6px}
nav.primary a:hover,nav.primary a[aria-current="page"]{background:var(--maroon-tint);color:var(--maroon)}
nav.primary a.btn{color:#fff}
nav.primary a.btn.ghost{color:var(--maroon)}
nav.primary a.btn.ghost:hover{background:var(--maroon-tint)}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:6px;padding:8px 10px;font:600 .9rem var(--body);color:var(--ink)}
@media (max-width:860px){
  .menu-btn{display:inline-block}
  nav.primary{display:none;position:absolute;left:0;right:0;top:100%;background:#fff;border-bottom:1px solid var(--line);padding:8px 20px 16px}
  nav.primary.open{display:block}
  nav.primary ul{flex-direction:column;align-items:stretch}
  nav.primary a{display:block}
}

/* buttons */
.btn{display:inline-block;background:var(--maroon);color:#fff;border:2px solid var(--maroon);padding:12px 22px;border-radius:999px;font:600 1rem var(--body);text-decoration:none;cursor:pointer;transition:background .15s,transform .05s}
.btn:hover{background:var(--maroon-dark);border-color:var(--maroon-dark)}
.btn:active{transform:translateY(1px)}
.btn.ghost{background:transparent;color:var(--maroon)}
.btn.ghost:hover{background:var(--maroon-tint)}
.btn.light{background:#fff;color:var(--maroon);border-color:#fff}
.btn.light:hover{background:var(--maroon-tint)}
.btn[disabled]{opacity:.6;cursor:wait}
.btn-row{display:flex;gap:12px;flex-wrap:wrap;margin-top:1.2em}

/* hero */
.hero{background:linear-gradient(135deg,#7A0000 0%,var(--maroon) 45%,var(--maroon-dark) 100%);color:#fff;padding:72px 0 64px;position:relative;overflow:hidden}
.hero:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1200' height='400' viewBox='0 0 1200 400'%3E%3Cpath d='M0 400 L180 240 L300 300 L470 150 L600 230 L760 90 L900 200 L1060 110 L1200 220 L1200 400 Z' fill='%23ffffff' fill-opacity='0.06'/%3E%3Cpath d='M0 400 L120 320 L260 350 L400 260 L560 330 L700 220 L860 300 L1000 240 L1200 330 L1200 400 Z' fill='%23ffffff' fill-opacity='0.05'/%3E%3C/svg%3E") bottom/cover no-repeat;pointer-events:none}
.hero .wrap{position:relative}
.hero h1,.hero .eyebrow{color:#fff}
.hero .eyebrow{opacity:.85}
.hero .lede{color:#fff;opacity:.92}
.hero.compact{padding:52px 0 44px}

/* sections */
section{padding:64px 0}
section.alt{background:var(--cream)}
section.tint{background:var(--maroon-tint)}
.grid{display:grid;gap:24px}
.grid.c2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grid.c3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid.c4{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 26px 22px}
.card h3{margin-top:.2em}
.card .num{font:700 2.6rem/1 var(--display);color:var(--maroon);margin-bottom:.25em}
.card.accent{border-top:5px solid var(--maroon)}
.pill{display:inline-block;background:var(--maroon-tint);color:var(--maroon);font:600 .8rem var(--body);padding:4px 10px;border-radius:999px;letter-spacing:.04em}
.quote{font-family:var(--display);font-size:1.35rem;font-weight:500;line-height:1.35;color:var(--maroon-dark);border-left:4px solid var(--maroon);padding-left:20px;margin:0}
.quote cite{display:block;font:600 .85rem var(--body);letter-spacing:.08em;text-transform:uppercase;color:var(--slate);margin-top:12px;font-style:normal}
ul.clean{list-style:none;padding:0;margin:0}
ul.clean li{padding:10px 0;border-bottom:1px solid var(--line)}
ul.clean li:last-child{border-bottom:0}
ul.checks{list-style:none;padding:0;margin:0 0 1em}
ul.checks li{position:relative;padding-left:28px;margin-bottom:.5em}
ul.checks li:before{content:"✓";position:absolute;left:0;top:0;color:var(--maroon);font-weight:700}
.schools{display:flex;flex-wrap:wrap;gap:10px}
.schools span{background:#fff;border:1px solid var(--line);padding:8px 14px;border-radius:8px;font-weight:600;font-size:.95rem}
.sponsor-tier{margin-bottom:28px}
.sponsor-tier h3{font:600 .8rem var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--slate);margin-bottom:10px}
.sponsor-tier .names{display:flex;flex-wrap:wrap;gap:12px}
.sponsor-tier .names span{font-family:var(--display);font-size:1.25rem;font-weight:700;color:var(--ink)}
.board-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}
.board-list div{padding:14px 16px;background:#fff;border:1px solid var(--line);border-radius:8px}
.board-list b{display:block}
.board-list small{color:var(--slate)}
.address{font-style:normal;line-height:1.5}
.address b{font-family:var(--display)}

/* forms */
form{max-width:760px}
fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:22px 24px 10px;margin:0 0 24px;background:#fff}
legend{font-family:var(--display);font-weight:700;font-size:1.2rem;padding:0 8px;color:var(--maroon)}
.field{margin-bottom:18px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
@media (max-width:600px){.row2,.row3{grid-template-columns:1fr}}
label{display:block;font-weight:600;margin-bottom:6px}
label .req{color:var(--maroon)}
.hint{display:block;font-weight:400;font-size:.9rem;color:var(--slate);margin-top:2px}
input[type=text],input[type=email],input[type=tel],input[type=url],input[type=password],select,textarea{width:100%;font:inherit;padding:11px 12px;border:1px solid #C9C4C0;border-radius:7px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--maroon);outline-offset:1px;border-color:var(--maroon)}
textarea{min-height:96px;resize:vertical}
.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:8px 16px}
.choices label,.consent label{display:flex;gap:10px;align-items:flex-start;font-weight:400;cursor:pointer}
.choices input,.consent input{margin-top:4px;width:18px;height:18px;accent-color:var(--maroon);flex:none}
.consent label{padding:10px 0;border-bottom:1px solid var(--line)}
.consent label:last-child{border:0}
.privacy{background:var(--cream);border-left:4px solid var(--maroon);padding:14px 18px;border-radius:0 8px 8px 0;font-size:.95rem;color:var(--slate)}
.notice{padding:14px 18px;border-radius:8px;margin:16px 0;display:none}
.notice.ok{display:block;background:#E8F4EC;color:var(--ok);border:1px solid #BFE0CA}
.notice.err{display:block;background:#FBE9E7;color:var(--err);border:1px solid #F1C2BD}
.hp{position:absolute;left:-9999px;opacity:0;height:0;overflow:hidden}

/* resource lists (board page) */
.res{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}
.res a.item{display:block;text-decoration:none;color:var(--ink);background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px;transition:border-color .15s,transform .1s}
.res a.item:hover{border-color:var(--maroon);transform:translateY(-2px)}
.res a.item b{display:block;font-family:var(--display);font-size:1.1rem;color:var(--maroon);margin-bottom:4px}
.res a.item span{color:var(--slate);font-size:.95rem}
table.sched{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
table.sched th{background:var(--maroon);color:#fff;text-align:left;padding:10px 14px;font-weight:600}
table.sched td{padding:10px 14px;border-top:1px solid var(--line)}

/* footer */
footer.site{background:var(--ink);color:#D9D5D1;padding:48px 0 28px;font-size:.95rem}
footer.site a{color:#fff}
footer.site .grid{margin-bottom:28px}
footer.site h3{color:#fff;font-size:1rem;font-family:var(--body);text-transform:uppercase;letter-spacing:.12em}
footer.site .legal{border-top:1px solid #3A3735;padding-top:18px;font-size:.85rem;color:#A9A5A1}
