/* SSAT Master: homepage template. Loaded after base.css. */

/* Hero. Text paints immediately (no fade-in) so it can be the LCP element. */
.sm-hero{background:var(--green);color:var(--on-green);padding:calc(var(--nav-h) + clamp(3rem,8vw,6rem)) 0 clamp(3.5rem,8vw,6rem);position:relative;overflow:hidden}
.sm-hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(60% 80% at 85% 20%, rgba(201,154,46,.16), transparent 60%),
  repeating-linear-gradient(90deg, rgba(241,244,236,.035) 0 1px, transparent 1px 88px);pointer-events:none}
.sm-hero .sm-wrap{position:relative;display:grid;grid-template-columns:1.05fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:center}
.sm-hero .sm-wrap > *{min-width:0}
.sm-view .sm-hero h1{font-family:var(--serif);font-weight:400;font-size:clamp(2.4rem,6vw,5rem);line-height:1.04;letter-spacing:-.02em;margin:0 0 1.25rem;color:var(--on-green);overflow-wrap:break-word}
.sm-view .sm-lede{font-size:clamp(1.1rem,1.5vw,1.25rem);color:var(--on-green-muted);max-width:32rem;margin:0 0 2rem}
.sm-actions{display:flex;flex-wrap:wrap;gap:.8rem}
.sm-view .sm-trust{margin:2rem 0 0;font-size:.95rem;color:var(--on-green-muted)}
.sm-trust b{color:var(--on-green);font-weight:600}
@media (max-width:960px){.sm-hero .sm-wrap{grid-template-columns:1fr}}
@media (max-width:420px){.sm-actions .sm-btn{flex:1 1 100%}}

/* Split-flap admissions board. Tiles are rendered server-side (no layout shift). */
.sm-board{background:linear-gradient(180deg,#141917,#0E1211);border-radius:18px;padding:clamp(1rem,3vw,2rem);
  box-shadow:0 30px 60px -20px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.06)}
.sm-board-head{display:flex;justify-content:space-between;align-items:center;gap:.5rem;font-family:var(--mono);font-weight:600;font-size:.78rem;letter-spacing:.08em;color:#9AA7A0;margin-bottom:1rem}
.sm-board-head .sm-dot{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--brass);margin-right:.5rem;box-shadow:0 0 10px var(--brass)}
.sm-flaps{display:grid;grid-template-columns:repeat(10,minmax(0,1fr));gap:clamp(3px,.6vw,6px)}
.sm-flap{position:relative;aspect-ratio:3/4.2;background:linear-gradient(180deg,var(--tile-2) 0 50%,var(--tile) 50% 100%);border-radius:6px;
  display:grid;place-items:center;font-family:var(--mono);font-weight:600;font-size:clamp(1rem,3.2vw,2.5rem);color:var(--tile-ink);
  box-shadow:inset 0 -2px 0 rgba(0,0,0,.35);overflow:hidden}
.sm-flap::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(0,0,0,.6)}
.sm-flap span{display:block;line-height:1}
.sm-board-foot{display:flex;justify-content:space-between;flex-wrap:wrap;gap:.25rem 1rem;margin-top:1rem;font-family:var(--mono);font-weight:600;font-size:.82rem;color:#C9D2CC}
.sm-board-foot b{color:var(--brass);font-weight:600}
@media (max-width:960px){.sm-board{max-width:620px}}

/* Sections */
.sm-block{padding:clamp(4.5rem,9vw,7.5rem) 0}
.sm-block + .sm-block{border-top:1px solid var(--line)}
.sm-view .sm-h2{font-family:var(--serif);font-weight:400;font-size:clamp(2rem,4.6vw,3.6rem);line-height:1.06;letter-spacing:-.015em;margin:0 0 1rem;max-width:20ch;overflow-wrap:break-word}
.sm-view .sm-sub{color:var(--muted);font-size:1.15rem;margin:0 0 2.5rem;max-width:38rem}

/* Why SSAT */
.sm-why{display:grid;grid-template-columns:1fr 1.1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.sm-view .sm-why p{margin:0 0 1rem;max-width:34rem}
.sm-reasons{list-style:none;margin:0;padding:0;counter-reset:r}
.sm-reasons li{display:grid;grid-template-columns:3.5rem 1fr;gap:1rem;padding:1.4rem 0;margin:0;border-top:1px solid var(--line)}
.sm-reasons li:last-child{border-bottom:1px solid var(--line)}
.sm-reasons li::before{counter-increment:r;content:counter(r,upper-roman);font-family:var(--serif);font-size:1.6rem;color:var(--accent-text);line-height:1.2}
.sm-view .sm-reasons h3{font-family:var(--sans);font-weight:600;font-size:1.15rem;line-height:1.3;margin:0 0 .2rem}
.sm-view .sm-reasons p{margin:0;color:var(--muted)}
@media (max-width:900px){.sm-why{grid-template-columns:1fr}}

/* Programs */
.sm-programs{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:1.25rem}
.sm-program{border:1px solid var(--line);border-radius:18px;padding:clamp(1.4rem,3vw,2.25rem);display:flex;flex-direction:column;gap:1rem;background:var(--paper);min-width:0}
.sm-program.is-feature{background:var(--green);color:var(--on-green);border-color:transparent}
.sm-label{font-size:.9rem;font-weight:600;color:var(--accent-text)}
.sm-program.is-feature .sm-label{color:var(--brass)}
.sm-view .sm-program h3{font-family:var(--serif);font-weight:400;font-size:clamp(1.6rem,2.6vw,2.2rem);line-height:1.1;margin:0}
.sm-program ul{list-style:none;margin:0;padding:0;flex:1}
.sm-program li{padding:.55rem 0 .55rem 1.6rem;margin:0;border-top:1px solid var(--line);position:relative}
.sm-program.is-feature li{border-color:var(--green-line)}
.sm-program li::before{content:"";position:absolute;left:0;top:1.05rem;width:.7rem;height:.38rem;border-left:2px solid var(--accent-text);border-bottom:2px solid var(--accent-text);transform:rotate(-45deg)}
.sm-program.is-feature li::before{border-color:var(--brass)}
.sm-program .sm-btn{align-self:flex-start}
@media (max-width:960px){.sm-programs{grid-template-columns:1fr}}

/* Results */
.sm-ba{display:grid;grid-template-columns:1fr auto 1fr;gap:1.25rem;align-items:stretch;margin-bottom:3rem}
.sm-ba > div{border-radius:18px;padding:clamp(1.4rem,3vw,2.25rem)}
.sm-ba .is-before{background:var(--paper-2)}
.sm-ba .is-after{background:var(--green);color:var(--on-green)}
.sm-ba .sm-tag{font-size:.9rem;font-weight:600;color:var(--muted);display:block;margin-bottom:.5rem}
.sm-ba .is-after .sm-tag{color:var(--brass)}
.sm-view .sm-ba p{font-family:var(--serif);font-size:clamp(1.3rem,2.4vw,1.8rem);line-height:1.25;margin:0}
.sm-ba .sm-arrow{display:grid;place-items:center;font-size:2rem;color:var(--accent-text);padding:0}
@media (max-width:800px){.sm-ba{grid-template-columns:1fr}.sm-ba .sm-arrow{transform:rotate(90deg)}}
.sm-results-row{display:grid;grid-template-columns:auto 1fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.sm-stat b{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(4rem,9vw,7rem);line-height:.9;color:var(--accent-text)}
.sm-stat span{color:var(--muted);font-size:1rem}
.sm-view .sm-schools h3{font-family:var(--sans);font-size:1rem;font-weight:600;margin:0 0 .75rem;color:var(--muted)}
.sm-schools ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;column-gap:2rem}
.sm-schools li{font-family:var(--serif);font-size:clamp(1.15rem,2vw,1.5rem);padding:.7rem 0;margin:0;border-top:1px solid var(--line)}
@media (max-width:800px){.sm-results-row{grid-template-columns:1fr}.sm-schools ul{grid-template-columns:1fr}}

/* Process */
.sm-steps{list-style:none;margin:0 0 2.5rem;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem;position:relative}
.sm-steps li{position:relative;padding-top:3.4rem;margin:0}
.sm-steps li::before{content:attr(data-n);position:absolute;top:0;left:0;width:2.6rem;height:2.6rem;border-radius:50%;display:grid;place-items:center;
  background:var(--green);color:var(--on-green);font-weight:600;font-size:.95rem}
.sm-steps li:not(:last-child)::after{content:"";position:absolute;top:1.3rem;left:3.2rem;right:-.6rem;height:2px;background:repeating-linear-gradient(90deg,var(--brass) 0 6px,transparent 6px 12px)}
.sm-view .sm-steps h3{font-family:var(--serif);font-weight:400;font-size:1.5rem;line-height:1.2;margin:0 0 .4rem}
.sm-view .sm-steps p{margin:0;color:var(--muted)}
@media (max-width:900px){.sm-steps{grid-template-columns:1fr 1fr}.sm-steps li::after{display:none}}
@media (max-width:560px){.sm-steps{grid-template-columns:1fr}}

/* About */
.sm-about{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(2rem,6vw,5rem);align-items:start}
.sm-profile{background:var(--green);color:var(--on-green);border-radius:22px;padding:2rem;position:sticky;top:100px}
.sm-mono{width:5.5rem;height:5.5rem;border-radius:50%;display:grid;place-items:center;background:var(--brass);color:var(--on-brass);font-family:var(--serif);font-size:2.2rem;margin-bottom:1.25rem}
.sm-view .sm-profile h3{font-family:var(--serif);font-weight:400;font-size:2rem;line-height:1.1;margin:0;color:var(--on-green)}
.sm-view .sm-profile .sm-role{color:var(--on-green-muted);margin:0 0 1.5rem}
.sm-view .sm-years{font-family:var(--serif);font-size:3.2rem;line-height:1;color:var(--brass);margin:0}
.sm-years + span{color:var(--on-green-muted);font-size:.95rem}
.sm-view .sm-prose p{margin:0 0 1.1rem;max-width:36rem}
.sm-commit{list-style:none;margin:2rem 0 0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.sm-commit li{border:1px solid var(--line);border-radius:14px;padding:1.1rem 1.2rem;margin:0;font-weight:500}
@media (max-width:900px){.sm-about{grid-template-columns:1fr}.sm-profile{position:static}.sm-commit{grid-template-columns:1fr}}

/* Testimonials */
.sm-quotes-head{display:flex;justify-content:space-between;align-items:end;gap:1rem;flex-wrap:wrap}
.sm-qnav{display:flex;gap:.5rem;margin-bottom:2.5rem}
body.sm-view .sm-qnav .sm-qbtn{width:3rem;height:3rem;padding:0;border-radius:50%;border:1.5px solid var(--line);background:transparent;color:var(--ink);font-size:1.2rem;line-height:1;cursor:pointer;box-shadow:none}
body.sm-view .sm-qnav .sm-qbtn:hover{border-color:var(--ink);background:transparent;color:var(--ink)}
.sm-quotes{display:grid;grid-auto-flow:column;grid-auto-columns:min(30rem,85%);gap:1.25rem;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:1rem;scrollbar-width:thin}
.sm-quote{scroll-snap-align:start;background:var(--paper-2);border-radius:20px;padding:clamp(1.4rem,3vw,2.25rem);display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem;margin:0;border:0;position:relative}
.sm-quote::before,.sm-quote::after{content:none!important;display:none!important}
.sm-view .sm-quote p{font-family:var(--serif);font-size:clamp(1.2rem,2vw,1.5rem);line-height:1.3;margin:0;color:var(--ink);font-style:normal}
.sm-quote footer{font-size:.95rem;color:var(--muted)}
.sm-quote footer b{display:block;color:var(--ink);font-weight:600}
.sm-pill{display:inline-block;margin-top:.5rem;font-size:.82rem;font-weight:600;color:var(--accent-text)}

/* FAQ */
.sm-faq{max-width:52rem}
.sm-faq details{border-top:1px solid var(--line)}
.sm-faq details:last-child{border-bottom:1px solid var(--line)}
.sm-faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem;align-items:center;padding:1.3rem 0;font-family:var(--serif);font-size:clamp(1.15rem,2vw,1.45rem);line-height:1.3}
.sm-faq summary::-webkit-details-marker{display:none}
.sm-faq summary::after{content:"+";flex:none;font-family:var(--sans);font-size:1.6rem;color:var(--accent-text);transition:transform .2s ease}
.sm-faq details[open] summary::after{transform:rotate(45deg)}
.sm-view .sm-faq details p{margin:0 0 1.4rem;color:var(--muted);max-width:44rem}
.sm-view .sm-faq a{color:var(--accent-text);text-decoration:underline;text-underline-offset:3px}

/* Final CTA */
.sm-block.is-start{border-top:0;padding-top:0}
.sm-final{background:var(--green);color:var(--on-green);border-radius:28px;padding:clamp(2rem,6vw,5rem);text-align:center;position:relative;overflow:hidden}
.sm-final::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 70% at 50% 0%,rgba(201,154,46,.2),transparent 70%);pointer-events:none}
.sm-final > *{position:relative}
.sm-view .sm-final .sm-h2{margin-inline:auto;color:var(--on-green)}
.sm-view .sm-final p{color:var(--on-green-muted);max-width:34rem;margin:0 auto 2rem;font-size:1.15rem}
.sm-checks{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1.75rem;margin:1.75rem 0 0;padding:0;color:var(--on-green-muted);font-size:.95rem}
.sm-checks li{margin:0}
.sm-checks li::before{content:"\2713  ";color:var(--brass);font-weight:700}

@media (prefers-reduced-motion:reduce){
  .sm-faq summary::after{transition:none}
}
