/* School components share the identity tokens in styles.css. */
.school-intro { padding-bottom:52px; }
.school-intro h1 { max-width:900px; }
.school-intro .library-lead { max-width:740px; }
.school-content { padding-bottom:110px; }
.school-section-title { margin:28px 0; font-size:clamp(30px,4vw,46px); }
.school-cohorts { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.school-cohort { position:relative; display:flex; flex-direction:column; min-width:0; min-height:270px; padding:28px; border:1px solid var(--line); border-radius:var(--radius); background:radial-gradient(ellipse at 100% 0,#f2e5ce70,transparent 65%),linear-gradient(145deg,#ffffffed,#edf2fbd9); box-shadow:var(--shadow); overflow:hidden; }
.school-card-top { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px; }
.school-cohort-number { font:500 48px/1 var(--font-display); color:var(--gold); }
.school-status { padding:5px 10px; border:1px solid #d5bd91; border-radius:30px; color:#77592c; background:#faf3e6; font-size:11px; }
.school-cohort h3 { margin:32px 0 24px; font-size:26px; }
.school-card-link { margin-top:auto; color:var(--gold); font-size:13px; font-weight:700; }
.school-cohort[aria-current] { border-color:var(--gold); box-shadow:0 14px 36px #94703b1f; }
.school-detail { margin-top:64px; padding:clamp(24px,4vw,48px); border:1px solid var(--line); border-radius:30px; background:linear-gradient(145deg,#ffffffed,#f0eef8d9); box-shadow:var(--shadow); scroll-margin-top:calc(var(--header-height) + 24px); }
.school-detail>.eyebrow { margin-top:32px; }
.school-detail h2 { margin:8px 0 24px; font-size:clamp(38px,6vw,64px); }
.school-detail h2:focus { outline:none; }
.school-detail h2:focus-visible { outline:3px solid var(--gold); outline-offset:8px; }
.school-subheading { margin:36px 0 22px; font-size:24px; }
.school-empty { padding:36px 24px; border:1px dashed #bcc5d5; border-radius:20px; background:#ffffff80; text-align:center; }
.school-empty-star { color:var(--gold); font-size:38px; }
.school-empty h4 { margin:8px 0; font-size:20px; font-weight:600; }
.school-empty p { max-width:560px; margin:12px auto 0; color:var(--ink2); }
.school-pending,.school-dates { color:var(--ink2); }
.school-speakers { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.school-speaker { min-width:0; }
.school-speaker h4 { margin:18px 0 10px; font-size:22px; }
.school-speaker p { color:var(--ink2); }
.school-speaker-photo,.school-cover { position:relative; display:grid; place-items:center; aspect-ratio:4/5; overflow:hidden; border:1px solid var(--line); border-radius:18px; background:linear-gradient(130deg,var(--bg2),var(--bg3),#f5eddf); }
.school-cover { aspect-ratio:16/9; margin-top:24px; }
.school-speaker-photo img,.school-cover img { position:absolute; inset:0; display:block; width:100%; height:100%; object-fit:cover; }
.school-photo-placeholder { padding:20px; text-align:center; color:var(--muted); font-size:14px; }
.school-lessons { padding-left:24px; }
.school-lessons li { padding:18px 10px; border-bottom:1px solid var(--line); }
.school-lessons h4 { font-size:19px; }
.school-lessons p { margin-top:8px; color:var(--ink2); }

@media (max-width:1100px) {
  .school-cohorts { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:970px) {
  .school-speakers { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width:600px) {
  .school-cohorts,.school-speakers { grid-template-columns:1fr; }
  .school-cohort { min-height:220px; padding:24px; }
  .school-detail { margin-top:40px; padding:26px 20px; border-radius:22px; }
  .school-content { padding-bottom:72px; }
}
@media (prefers-reduced-motion:no-preference) {
  .school-intro,.school-cohort,.school-detail { animation:school-enter .65s both; }
  .school-cohort:nth-child(2n) { animation-delay:.08s; }
  @keyframes school-enter { from { opacity:0; transform:translateY(16px); } to { opacity:1; transform:none; } }
}
@media (hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference) {
  .school-cohort { transition:transform .3s ease,box-shadow .3s ease,border-color .3s ease; }
  .school-cohort:hover { transform:translateY(-4px); border-color:#bba67f; box-shadow:var(--shadow-hover); }
}
