/* School-supplied photographs and an accessible, bilingual album viewer. */
.school-photo{margin:0;min-width:0}
.school-photo>a{display:block;position:relative;overflow:hidden;border-radius:16px;background:#f1f5fa}
.school-photo img{width:100%;height:auto;display:block}
.school-photo figcaption{font-size:13px;line-height:1.6;color:#595959;margin-top:9px}
.photo-expand{position:absolute;bottom:12px;right:12px;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#fff;color:var(--heading);box-shadow:0 2px 8px #0002;font-size:20px}
.school-photo>a:hover .photo-expand{background:var(--heading);color:#fff}
.achievement-with-photo .achievement-photo{align-self:stretch;width:100%;margin:18px 0 24px}
.achievement-photo img{aspect-ratio:3/4;object-fit:contain;max-height:470px}
.achievement-with-photo h3{margin-bottom:14px}
.achievement-with-photo p{font-size:16px;line-height:1.75}
.award-story{margin-top:22px;align-self:stretch;border-top:1px solid #e3e9f1;padding-top:17px}
.award-story summary,.heritage-history summary{cursor:pointer;color:var(--heading);font-weight:600;font-size:15px}
.award-story p{margin:16px 0}
.award-story>a{color:var(--heading);font-size:14px;text-decoration:underline;text-underline-offset:4px}
.culture-with-photos .heritage-lead{margin:20px 0}
.heritage-lead img{aspect-ratio:3/2;object-fit:contain}
.heritage-highlights{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}
.heritage-highlights img{aspect-ratio:3/2;object-fit:contain}
.heritage-history{margin-top:22px;border-top:1px solid #e3e9f1;padding-top:17px}
.heritage-history .timeline{margin-top:14px}
.school-life-heading{text-align:center;margin:65px 0 30px}
#community .school-life-heading h2{font-size:40px}
.school-life-heading>p{font-size:16px;color:#fff;margin-top:14px}
.school-life-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;align-items:stretch}
.school-life-card{min-width:0;background:#fff;border-radius:22px;overflow:hidden;box-shadow:0 10px 25px #0001;display:flex;flex-direction:column}
.school-life-photo>a{border-radius:0}
.school-life-photo img{aspect-ratio:4/3;object-fit:contain;background:#f5f7fa}
.school-life-copy{padding:25px;display:flex;flex-direction:column;flex:1}
.school-life-copy h3{font-size:28px;line-height:1.25;color:var(--heading);margin-bottom:13px}
.school-life-copy p{font-size:15px;line-height:1.75;color:#595959;margin-bottom:18px}
.school-life-copy>a{margin-top:auto;font-size:14px;font-weight:600;color:var(--heading);align-self:start}
.school-life-copy>a:hover{text-decoration:underline;text-underline-offset:4px}
.school-albums{margin-top:35px}
.school-albums>summary{display:flex;align-items:center;justify-content:center;gap:22px;padding:17px 25px;background:#fff;border-radius:22px;color:var(--heading);cursor:pointer;font-weight:600;list-style:none}
.school-albums>summary::-webkit-details-marker,.photo-album>summary::-webkit-details-marker{display:none}
.school-albums>summary::marker,.photo-album>summary::marker{content:''}
.album-total{font-size:13px;color:#595959;font-weight:400}
.school-albums-content{margin-top:20px;padding:32px;background:#fff;border-radius:22px}
.school-albums-content>h3{font-size:32px;color:var(--heading)}
.school-albums-content>p{font-size:15px;color:#595959;margin:12px 0 25px}
.photo-album{border-top:1px solid #e1e8f0}
.photo-album>summary{display:flex;align-items:center;gap:20px;padding:18px 0;cursor:pointer;list-style:none}
.album-cover{width:96px;height:76px;object-fit:contain;background:#f1f5fa;border-radius:10px;flex-shrink:0}
.album-summary-copy{min-width:0;display:grid;gap:6px}
.album-summary-copy strong{font-size:17px;color:var(--heading);line-height:1.5;font-weight:600}
.album-count{font-size:13px;color:#595959}
.album-chevron{margin-left:auto;color:var(--heading);font-size:24px;transition:transform .2s;flex-shrink:0}
.photo-album[open]>summary .album-chevron{transform:rotate(45deg)}
.album-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;padding:5px 0 25px}
.album-photo img{aspect-ratio:4/3;object-fit:contain}
.album-story{grid-column:1/-1;background:#f5f9ff;padding:20px;border-radius:14px;color:#333}
.album-story summary{cursor:pointer;color:var(--heading);font-weight:600}
.album-story p{margin-top:14px;font-size:15px;line-height:1.8}
.photo-viewer-open{overflow:hidden}
#photo-viewer{padding:0;border:0;border-radius:22px;width:min(1000px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 32px);background:#fff;color:#333;box-shadow:0 24px 80px #0005}
#photo-viewer::backdrop{background:#071a35cc;backdrop-filter:blur(3px)}
#photo-viewer [hidden]{display:none!important}
.photo-viewer-header{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid #e3e9f1}
.photo-viewer-header label{font-size:14px;color:#595959}
.photo-viewer-header select{font:inherit;font-size:15px;color:#333;background:#f5f7fa;border:1px solid #d2dce8;border-radius:10px;padding:9px 12px;max-width:calc(100% - 100px);min-width:0}
.viewer-close{margin-left:auto;flex-shrink:0;width:42px;height:42px;border:0;border-radius:50%;background:#edf3fa;color:var(--heading);font-size:20px}
.photo-viewer-stage{display:grid;place-items:center;padding:10px;background:#eef2f7;min-height:160px}
#photo-viewer-image{display:block;max-width:100%;max-height:min(62dvh,650px);width:auto;height:auto;margin:auto}
#photo-viewer-story{max-width:720px;padding:20px 25px;font-size:17px;line-height:1.85}
#photo-viewer-story p+p{margin-top:20px}
.photo-viewer-error{padding:35px;color:#595959;text-align:center}
.photo-viewer-info{padding:15px 22px 18px;text-align:center}
#photo-viewer-caption{font-size:24px;color:var(--heading);line-height:1.4;margin-bottom:14px}
.photo-viewer-controls{display:flex;align-items:center;justify-content:center;gap:20px}
.photo-viewer-controls button{border:1px solid #c7d8ec;background:#f4f8fd;color:var(--heading);border-radius:20px;padding:9px 18px;font-size:14px;font-weight:600}
#photo-viewer-count{font-size:14px;color:#595959;min-width:45px}
@media(max-width:850px){.school-life-grid{gap:18px}.school-life-copy{padding:20px}.school-life-copy h3{font-size:26px}.album-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.school-albums-content{padding:26px}.heritage-highlights{gap:12px}}
@media(max-width:620px){.school-life-grid{grid-template-columns:1fr;gap:24px}.school-life-copy{padding:25px}.school-life-copy h3{font-size:30px}.school-life-heading{margin-top:50px}#community .school-life-heading h2{font-size:36px}.heritage-highlights{gap:12px}.school-photo figcaption{font-size:12px}.school-albums>summary{gap:12px;padding:16px 18px}.school-albums-content{padding:22px}.photo-album>summary{gap:12px}.album-cover{width:70px;height:65px}.album-summary-copy strong{font-size:15px}.album-count{font-size:12px}.album-photo-grid{gap:16px 12px}.album-photo>a{border-radius:10px}.photo-expand{width:30px;height:30px;bottom:8px;right:8px}.album-story{padding:16px}#photo-viewer{width:calc(100vw - 20px);max-height:calc(100dvh - 20px);border-radius:16px}.photo-viewer-header{padding:12px;gap:8px}.photo-viewer-header label{display:none}.photo-viewer-header select{max-width:calc(100% - 50px);font-size:14px}.photo-viewer-info{padding:14px}#photo-viewer-caption{font-size:21px}.photo-viewer-controls{gap:12px}.photo-viewer-controls button{padding:10px 13px;font-size:13px}#photo-viewer-story{padding:16px;font-size:16px}.photo-viewer-stage{padding:6px}}
@media(prefers-reduced-motion:reduce){.album-chevron{transition:none}}
