.library-heading{display:flex;justify-content:space-between;gap:var(--layout-gap);align-items:flex-end;margin-bottom:45px}
.library-heading>div{min-width:0}.library-heading .section-lead{max-width:36ch}
.library-controls{border-block:1px solid #bac6b2;padding-block:28px;display:grid;grid-template-columns:minmax(220px,.8fr) minmax(0,1.4fr);gap:30px;align-items:end}
.library-controls[hidden],.library-card[hidden],.library-empty[hidden],.library-more button[hidden]{display:none}
.library-search{font-size:var(--text-small);line-height:1.6;display:block;color:#455c4c}
.library-search input{width:100%;display:block;margin-top:12px;border:1px solid #9aab91;border-radius:8px;background:#faf9f2;color:#192d23;padding:15px 17px;font:inherit;font-size:var(--text-ui);min-height:54px;min-width:0}
.library-search input::placeholder{color:#53674e;opacity:1}
.library-filters{display:flex;gap:10px;flex-wrap:wrap}
.library-filters button{display:inline-flex;gap:12px;align-items:center;justify-content:center;font:inherit;font-size:var(--text-small);line-height:1.4;min-height:54px;padding:12px 18px;border:1px solid #a8b79d;border-radius:8px;background:transparent;color:#273f2d;cursor:pointer}
.library-filters button[aria-pressed=true]{background:#253d2d;color:#f5f3e9;border-color:#253d2d}
.library-filters span{opacity:.85}
.library-result{font-size:var(--text-small);color:#455c4c;margin:24px 0 36px;line-height:1.6}
.library-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:56px var(--layout-gap)}
.library-card{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.library-media{width:100%;aspect-ratio:4/3;position:relative;display:block;overflow:hidden;background:#e0e6d9;border-radius:12px;margin-bottom:26px}
.library-media img{width:100%;height:100%;object-fit:cover;object-position:center 60%;display:block;transition:transform .25s}
.library-media--video img{object-fit:cover;object-position:center 38%;background:#1a2a21}
.library-media--video{aspect-ratio:16/9}
.library-card>.library-media-meta{position:static;font-size:var(--text-small);line-height:1.6;color:#455c4c;margin:-10px 0 18px}
.library-media--catalogue{background:#e9e6de;isolation:isolate}
.library-media--catalogue img{background:transparent;mix-blend-mode:multiply}
.library-media--catalogue:hover img{transform:none}
.library-media:hover img{transform:scale(1.025)}
.library-card>.micro{font-size:var(--text-small);color:#705625;line-height:1.6;letter-spacing:.035em;margin-bottom:16px}
.library-card h3{font-size:var(--title-card);font-weight:400;line-height:1.25;letter-spacing:-.025em;margin-bottom:20px;max-width:28ch}
.library-card>p:not(.micro){font-size:var(--text-body);color:#455c4c;line-height:1.8;margin-bottom:22px}
.library-card>.text-link{margin-top:auto;align-items:flex-start}
.library-media .media-badge,.video-hero-link .media-badge{font-size:var(--text-small);line-height:1.5;top:17px;left:17px;max-width:calc(100% - 34px);padding:9px 13px;white-space:normal}
.library-play{position:absolute;bottom:20px;right:20px;display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:#f5f1dfeb;color:#243a2b;font-size:23px;box-shadow:0 0 0 1px #f5f1df70}
.video-hero-link{display:block;position:relative;border-radius:12px;overflow:hidden;background:#1a2a21}
body.site-fluid .video-hero-link>img{object-fit:cover;width:100%;height:auto;aspect-ratio:16/9;min-height:0;max-height:none;object-position:center 38%}
.video-hero-link .library-play{width:76px;height:76px;font-size:28px}
.library-empty{padding:32px;border-radius:12px;background:#e6ecdf;font-size:var(--text-body);line-height:1.7}
.library-empty h3{font-size:var(--title-sub);font-weight:500;margin-bottom:14px}.library-empty p{margin-bottom:20px}
.library-more{display:flex;justify-content:center;margin-top:45px}
.library-more:has(button[hidden]){margin:0}
.stem-topic-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px var(--layout-gap)}
.stem-topic-grid article{border-top:1px solid #b8c5af;padding-top:26px;min-width:0;position:relative;padding-right:75px}
.stem-topic-number{position:absolute;right:0;top:25px;color:#647956;font-size:var(--title-card);font-weight:400}
.stem-topic-grid h3{font-size:var(--title-card);font-weight:400;line-height:1.3;margin-bottom:20px}
.stem-topic-grid p{font-size:var(--text-body);line-height:1.8;color:#455c4c;max-width:44ch}
body.site-fluid .inner-hero--school .inner-hero-media>img{object-fit:cover;object-position:center 62%;height:clamp(500px,68svh,1000px);width:100%}
.school-reference-image{margin:0}.school-reference-image img{display:block;width:100%;height:70svh;max-height:900px;object-fit:cover;object-position:center 65%;border-radius:12px}
.school-reference-image figcaption{margin-top:18px;color:#455c4c}
body.site-fluid .school-entry{margin-top:46px;padding:30px;border:1px solid #bcc8b4;background:#e9ece2;border-radius:12px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.school-entry p{font-size:var(--text-body);line-height:1.7;max-width:43ch}.school-entry .text-link{flex-shrink:0}
@media(max-width:1300px){.library-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.library-controls{grid-template-columns:minmax(0,1fr)}.library-heading{align-items:flex-start;flex-direction:column}.library-heading .section-lead{max-width:55ch}}
@media(max-width:850px){.library-heading{gap:25px}.library-grid{gap:40px 28px}.stem-topic-grid{gap:32px}.stem-topic-grid article{padding-right:45px}body.site-fluid .school-entry{align-items:flex-start;flex-direction:column}.school-entry .text-link{flex-shrink:1}.school-reference-image img{height:65svh}body.site-fluid .inner-hero--school .inner-hero-media>img{height:65svh;min-height:420px}}
@media(max-width:700px){.library-grid,.stem-topic-grid{grid-template-columns:minmax(0,1fr)}.library-controls{padding-block:22px}.library-filters{gap:9px}.library-filters button{padding:12px 14px}.library-media .media-badge,.video-hero-link .media-badge{font-size:var(--text-small);top:12px;left:12px;max-width:calc(100% - 24px)}.library-result{margin:22px 0 30px}.library-empty{padding:25px}.video-hero-link .library-play{width:56px;height:56px;font-size:22px;bottom:15px;right:15px}.library-heading{margin-bottom:30px}.library-more{margin-top:30px}body.site-fluid .school-entry{padding:24px;margin-top:35px}}
@media(prefers-reduced-motion:reduce){.library-media img{transition:none}}
/* Distinguish existing catalogue covers from the real footage they open. */
body.site-fluid .library-cover-note{font-size:var(--text-small);line-height:1.65;color:#52664a;margin:14px 0 0}
