/* Academics program pages — shared layout for /academics and the four division pages */
html { scroll-behavior:smooth; scroll-padding-top:125px; }
body { font-family:var(--font-body); background:var(--color-bg); color:var(--color-text); }
[hidden] { display:none!important; }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #c4a75c!important; outline-offset:4px; }
button { font-family:inherit; }
.program-hero { padding:64px 0 68px; color:white; min-height:352px; display:flex; align-items:center; background-image:linear-gradient(90deg,rgba(16,40,70,.90),rgba(16,40,70,.62)),var(--hero-image); background-size:cover; background-position:center 42%; }
.program-hero.hero-lower-elementary-hero { background-position:center 30%; }
.program-hero.hero-upper-elementary-hero { background-position:62% 45%; }
.program-hero.hero-junior-kindergarten-hero { background-position:center 55%; }
.program-hero.hero-middle-school-hero { background-position:center 50%; }
.program-hero.hero-overview-hero { background-position:center 35%; }
@media(min-width:900px){ .program-hero { min-height:520px; padding:88px 0 92px; } .program-hero.hero-lower-elementary-hero { background-position:center 30%; } }
.hero-copy { max-width:800px; }
.program-hero .section-label { color:#dedbbf; margin-bottom:18px; }
.program-hero .section-label::before { display:none; }
.program-hero h1 { color:white; font-family:var(--font-display); font-size:var(--text-2xl); font-weight:600; line-height:1.15; margin:0 0 24px; letter-spacing:-.025em; }
.program-hero .hero-description { font-size:var(--text-base); color:#f5f3ef; line-height:1.7; max-width:650px; margin:0; }
.hero-academics { background-position:center 28%; }
.hero-upper { background-position:center 28%; }
.hero-junior-hero { background-position:center 60%; }
.hero-middle-hero { background-position:center 65%; }
.division-rail { background:#eeeadf; border-bottom:1px solid #d8d1c2; }
.division-rail .container { display:flex; align-items:stretch; gap:28px; overflow-x:auto; scrollbar-width:thin; }
.division-rail a { padding:19px 0; text-decoration:none; white-space:nowrap; color:#4c5146; font-size:var(--text-sm); border-bottom:3px solid transparent; }
.division-rail a:hover { color:#1B2F5E; border-color:#aaa88d; }
.division-rail a[aria-current=page] { color:#1B2F5E; border-color:#4c5e32; font-weight:600; }
.program-intro,.story-section,.learning-picture { padding-block:72px; }
.intro-grid { display:grid; grid-template-columns:.9fr 1.3fr; gap:80px; align-items:start; }
.story-grid { display:grid; grid-template-columns:1.25fr .9fr; gap:72px; align-items:center; }
main h2 { font-family:var(--font-display); font-size:var(--text-xl); font-weight:600; line-height:1.3; color:#1B2F5E; margin:0 0 24px; letter-spacing:-.018em; }
main h3 { font-family:var(--font-body); font-size:var(--text-lg); color:#1B2F5E; line-height:1.4; margin:0 0 14px; }
main p { font-size:var(--text-base); line-height:1.8; margin-bottom:18px; }
main p:last-child { margin-bottom:0; }
main .section-label { font-size:12px; color:#4c5e32; line-height:1.6; font-weight:600; letter-spacing:.1em; text-transform:uppercase; }
.program-hero .section-label { color:#dedbbf; }
.soft { background:#f0ede5; }
.program-photo { margin:0; }
.program-photo img { width:100%; max-height:620px; object-fit:contain; object-position:center; display:block; border-radius:4px; }
.story-photo { margin-top:56px; }
.story-photo img { aspect-ratio:16/9; max-height:none; object-fit:cover; object-position:center 45%; }
@media(max-width:600px){ .story-photo { margin-top:32px; } .story-photo img { aspect-ratio:4/3; } }
.program-photo figcaption { font-size:12px; margin-top:12px; color:#655e52; line-height:1.6; }
.program-directory { padding-top:8px; padding-bottom:80px; }
.program-grid { display:grid; grid-template-columns:1fr 1fr; gap:32px; margin-top:32px; }
.program-card { display:block; color:inherit; text-decoration:none; border:1px solid #ded7c9; background:#fffdf8; border-radius:4px; overflow:hidden; transition:box-shadow .2s; }
.program-card:hover { box-shadow:0 8px 28px #28341115; }
.card-image { position:relative; height:240px; overflow:hidden; }
.card-image img { width:100%; height:100%; object-fit:cover; transition:transform .35s; }
.program-card:hover .card-image img { transform:scale(1.025); }
.card-image>span { position:absolute; top:16px; left:16px; background:#f8f6f1; color:#4c5e32; padding:6px 10px; font-size:12px; font-weight:600; }
.card-copy { padding:28px; }
.card-copy h3 { font-family:var(--font-display); font-size:26px; }
.card-copy p { font-size:16px; }
.text-link { display:flex; justify-content:space-between; align-items:center; color:#4c5e32; font-size:14px; font-weight:600; margin-top:24px; }
.learning-picture { background:#f0ede5; }
.photo-pair { display:grid; grid-template-columns:.7fr 1.3fr; gap:32px; margin-top:40px; }
.photo-pair .program-photo img { height:340px; width:100%; object-fit:cover; }
.photo-pair .program-photo:first-child img { object-fit:contain; background:#eeede5; }
.rhythm-note { padding:64px 0; }
.rhythm-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:40px; margin-top:24px; }
.rhythm-grid>div { padding-top:20px; border-top:1px solid #b6bcab; }
.rhythm-grid p { font-size:16px; }
.curriculum-grid { display:grid; grid-template-columns:.9fr 1.3fr; gap:80px; align-items:start; }
.subject { border-top:1px solid #ccc8bc; }
.subject:last-child { border-bottom:1px solid #ccc8bc; }
.subject summary { cursor:pointer; padding:21px 0; display:flex; justify-content:space-between; align-items:center; font-size:var(--text-base); font-weight:600; color:#1B2F5E; list-style:none; min-height:64px; gap:20px; }
summary::-webkit-details-marker { display:none; }
summary { -webkit-tap-highlight-color:transparent; }
.subject summary span { font-size:24px; font-weight:400; line-height:1; transition:transform .2s; }
.subject[open] summary span { transform:rotate(45deg); }
.subject p { margin:0 0 24px; font-size:16px; max-width:66ch; }
.middle-prose ul { list-style:none; padding:0; margin:0; }
.middle-prose li { padding:0 0 24px; margin:0 0 24px; border-bottom:1px solid #d1cdbf; line-height:1.8; font-size:var(--text-base); }
.middle-prose li:last-child { margin:0; border-bottom:0; padding-bottom:0; }
.middle-prose strong { display:block; color:#1B2F5E; }
.schedule-intro { max-width:850px; }
.schedule-detail { margin-top:32px; background:#fcfbf7; border:1px solid #d8d2c6; }
.schedule-detail>summary { display:flex; gap:16px; justify-content:space-between; align-items:center; min-height:80px; padding:20px 28px; cursor:pointer; color:#1B2F5E; font-size:var(--text-base); font-weight:600; list-style:none; }
.proposed-label { color:#4c5e32; font-weight:500; font-size:14px; display:flex; gap:20px; align-items:center; }
.proposed-label>span { display:inline-block; transition:transform .18s; }
.schedule-detail[open] .proposed-label>span { transform:rotate(45deg); }
.schedule-table { padding:0 28px 24px; }
.schedule-table table { border-collapse:collapse; width:100%; text-align:left; font-size:15px; }
.schedule-table th { padding:14px; background:#1B2F5E; color:white; font-weight:500; }
.schedule-table td { padding:16px 14px; border-bottom:1px solid #ded8cb; vertical-align:top; line-height:1.6; }
.schedule-table td:first-child { width:210px; white-space:nowrap; color:#1B2F5E; font-variant-numeric:tabular-nums; }
.schedule-table tbody tr:nth-child(even) { background:#f2f0e8; }
.schedule-table>p { font-size:14px; color:#5e6257; margin-top:24px; }
.program-cta { background:#e8ecdf; padding:56px 0; }
.program-cta>.container { display:flex; align-items:center; justify-content:space-between; gap:48px; }
.program-cta h2 { margin-bottom:12px; }
.program-cta p:not(.section-label) { max-width:690px; font-size:16px; }
.program-cta .btn { flex-shrink:0; }
.next-programs { padding:56px 0; }
.next-programs h2 { font-size:28px; }
.related-links { display:flex; flex-wrap:wrap; gap:0 32px; }
.related-links a { color:#1B2F5E; text-decoration:none; padding:14px 0; font-size:15px; display:flex; align-items:center; gap:20px; border-bottom:1px solid #bfc4b2; }
@media(max-width:900px) {
 .intro-grid,.story-grid,.curriculum-grid { grid-template-columns:1fr; gap:32px; }
 .program-photo img { max-height:620px; }
 .program-cta>.container { display:block; }
 .program-cta .btn { margin-top:24px; }
 .rhythm-grid { gap:24px; }
 .division-rail .container { gap:24px; }
}
@media(max-width:600px) {
 .program-hero { min-height:310px; padding:44px 0; background-position:60% center; }
 .program-hero h1 { font-size:36px; }
 .program-hero .hero-description { font-size:16px; }
 .program-intro,.story-section,.learning-picture { padding-block:44px; }
 main h2 { font-size:28px; }
 .program-grid { grid-template-columns:1fr; gap:24px; }
 .card-image { height:220px; }
 .card-copy { padding:24px; }
 .program-photo img { max-height:450px; }
 .photo-pair { grid-template-columns:1fr; gap:28px; }
 .photo-pair .program-photo img { height:260px; }
 .rhythm-grid { grid-template-columns:1fr; }
 .rhythm-note { padding:40px 0; }
 .schedule-detail>summary { padding:20px 16px; }
 .schedule-table { padding:0 12px 20px; }
 .schedule-table table { display:block; }
 .schedule-table thead { display:none; }
 .schedule-table tbody { display:block; }
 .schedule-table tr { display:block; padding:16px 4px; border-top:1px solid #d8d2c6; }
 .schedule-table td { display:block; border:0; padding:4px 10px; }
 .schedule-table td:first-child { width:auto; white-space:normal; font-weight:600; }
 .schedule-section { padding-block:40px; }
 .proposed-label { font-size:12px; gap:8px; }
 .next-programs { padding:40px 0; }
 .related-links { display:block; }
 .related-links a { justify-content:space-between; }
 .division-rail a { font-size:14px; padding:16px 0; }
}
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
.candidacy-section { padding-block:64px; background:#fbfaf6; border-top:1px solid #e3ded2; }
.candidacy-logo { display:block; width:min(260px,100%); height:auto; margin-top:4px; }
.candidacy-statement { font-family:var(--font-display); font-size:clamp(1.25rem,2.2vw,1.6rem); line-height:1.45; color:#1B2F5E; margin-bottom:16px; }
.program-cta .btn { white-space:nowrap; }
@media(max-width:600px){ .candidacy-section { padding-block:40px; } }
