/* Jaddeville editorial redesign. All fonts and images are bundled locally. */
:root {
  --olive: #333b0a;
  --olive-deep: #252c06;
  --muted: #5e634d;
  --lime: #a3cc39;
  --cream: #faf9f3;
  --new-surface: #f1f3e8;
  --new-border: #bdc79f;
  --new-clay: inset 0 2px 2px #fff, inset 0 -5px 9px #333b0a0b, 0 7px 0 #dce1ca, 0 20px 30px -22px #333b0a66;
}
body { font-size: 18px; }
main { padding-top: 0; }
.wrap { width: min(1280px, calc(100% - 80px)); }
.section { padding-block: 96px; }
p { line-height: 1.85; }
h1, h2, h3 { text-wrap: balance; }
h1 { letter-spacing: -2.8px; }
h2 { font-size: clamp(33px, 3.35vw, 48px); letter-spacing: -1.8px; line-height: 1.2; }
h2 em, h1 em { font-style: normal; color: #687f22; }
.eyebrow { font-size: 12px; line-height: 1.7; font-weight: 700; letter-spacing: 1.4px; }
.section-head { align-items: flex-end; gap: 48px; margin-bottom: 42px; }
.section-head > p { max-width: 360px; font-size: 17px; line-height: 1.8; }
.section-head .eyebrow { margin-bottom: 18px; }
.button { min-height: 54px; padding: 15px 23px; border-radius: 14px; font-size: 15px; gap: 18px; transition: background .2s, box-shadow .2s, transform .2s; }
.button.primary { background: var(--olive); color: white; border: 1px solid #414d13; box-shadow: inset 0 2px 2px #ffffff25, inset 0 -4px 5px #0002, 0 4px 0 #1c2408, 0 10px 15px -8px #252c0660; }
.button.secondary { background: #f6f8ed; border: 1px solid #a7b285; color: var(--olive); box-shadow: var(--new-clay); }
.button:hover { transform: translateY(-2px); }
.button:active { transform: translateY(1px); }
.text-link { min-height: 44px; display: inline-flex; align-items: center; gap: 14px; font-size: 15px; line-height: 1.5; }
.text-link:hover { color: #577218; }
.topline { background: var(--olive-deep); }
.topline .wrap { min-height: 40px; }
.site-header { border: 1px solid #c6ceaf; border-radius: 20px; width: min(1352px, calc(100% - 48px)); background: #fffffff7; box-shadow: inset 0 2px 0 #fff, inset 0 -3px 5px #333b0a09, 0 6px 0 #e1e5d39c, 0 15px 24px -20px #252c0660; }
.header-inner { padding: 13px 22px; min-height: 86px; gap: 26px; }
.brand .logo { width: 54px; height: 54px; border-radius: 50%; object-fit: contain; }
.brand strong { font-size: 23px; letter-spacing: -.8px; }
.brand small { font-size: 10px; }
.desktop-nav { display: flex; gap: 23px; font-size: 15px; }
.desktop-nav > a { font-size: 15px; white-space: nowrap; }
.nav-disclosure { position: relative; font-size: 15px; }
.nav-disclosure summary { display: flex; align-items: center; gap: 6px; min-height: 48px; font-weight: 600; white-space: nowrap; list-style: none; user-select: none; }
.nav-disclosure summary::-webkit-details-marker { display: none; }
.nav-disclosure summary svg { transition: transform .2s; }
.nav-disclosure[open] summary svg { transform: rotate(180deg); }
.nav-disclosure.active-section > summary { color: #567019; }
.nav-disclosure.active-section > summary::after { content: ''; position: absolute; left: 0; bottom: 2px; width: 18px; height: 3px; border-radius: 2px; background: var(--lime); }
.nav-dropdown { position: absolute; left: -18px; top: calc(100% + 18px); width: 270px; padding: 12px; background: #fff; border: 1px solid #c3ccab; border-radius: 17px; box-shadow: 0 18px 35px #252c0622, inset 0 -4px 9px #333b0a08; }
.nav-dropdown a { display: flex; min-height: 47px; padding: 10px 12px; font-size: 15px; line-height: 1.6; white-space: normal; border-radius: 9px; }
.nav-dropdown a:hover, .nav-dropdown a[aria-current] { background: #edf3df; color: var(--olive); }
.nav-dropdown a[aria-current]::after { display: none; }
.header-cta { white-space: nowrap; min-height: 48px; padding: 12px 19px; }
.mobile-menu { max-height: calc(100dvh - 130px); overflow-y: auto; overscroll-behavior: contain; }
.mobile-menu .nav-disclosure { padding: 0; border-bottom: 1px solid #dce0ce; }
.mobile-menu .nav-disclosure summary { justify-content: space-between; padding: 12px 0; font-size: 18px; }
.mobile-menu .nav-dropdown { position: static; width: 100%; border: 0; box-shadow: none; padding: 0 0 12px 12px; background: transparent; }
.mobile-menu .nav-dropdown a { font-size: 16px; border: 0; padding: 10px 12px; }
.mobile-menu .nav-disclosure.active-section > summary::after { display: none; }
.mobile-menu > a { font-size: 18px; min-height: 52px; }

/* Home: a photographic, brand-led opening with independent text and image areas. */
.new-hero { display: grid; grid-template-columns: 1.05fr 1fr; margin-top: 125px; border-radius: 30px; background: var(--olive-deep); padding: 14px; border: 1px solid #394510; box-shadow: inset 0 2px 0 #ffffff25, 0 10px 0 #dce2c7, 0 24px 35px -28px #252c0688; gap: 14px; }
.new-hero-copy { padding: 46px 30px 32px 38px; min-width: 0; }
.new-hero .eyebrow { color: #d5e7aa; margin-bottom: 26px; }
.new-hero .eyebrow > span { background: var(--lime); }
.new-hero h1 { color: #fffef6; font-size: clamp(44px, 4.8vw, 69px); line-height: 1.09; letter-spacing: -3px; }
.new-hero h1 em { color: #b5d957; font-style: normal; }
.new-hero-copy > p:not(.eyebrow) { color: #e1e8cb; font-size: 18px; line-height: 1.85; max-width: 490px; margin: 26px 0 28px; }
.new-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 20px; }
.new-hero-actions .primary { background: #b4d955; color: #252c06; border-color: #d1e991; box-shadow: inset 0 2px 2px #fff8, inset 0 -4px 6px #566e1925, 0 4px 0 #748b30, 0 10px 15px -9px #0008; }
.new-hero-actions .button.primary:hover { background: #c6e77c; color: #252c06; }
.hero-secondary { display: inline-flex; align-items: center; gap: 10px; color: #fffef6; font-size: 15px; font-weight: 600; min-height: 48px; }
.hero-secondary:hover { color: #c7e588; }
.hero-signature { display: flex; align-items: center; gap: 14px; margin-top: 36px; padding-top: 24px; border-top: 1px solid #d6e7a52e; color: #f0f4df; font-size: 15px; }
.hero-signature > svg { color: #b8d879; width: 29px; height: 29px; }
.hero-signature small { display: block; margin-top: 4px; color: #c7d2ac; font-size: 13px; line-height: 1.6; }
.new-hero-image { margin: 0; min-width: 0; width: 100%; align-self: center; position: relative; border-radius: 21px; background: #f0f1de; overflow: hidden; display: flex; flex-direction: column; }
.new-hero-image > img { width: 100%; height: 420px; min-height: 0; flex: none; object-fit: cover; object-position: center 36%; }
.new-hero-image > img.hero-community-photo { object-position: center 36%; filter: brightness(1.1) contrast(1.03) saturate(1.02); image-rendering: auto; }
.new-hero-image figcaption { display: flex; gap: 15px; align-items: center; justify-content: space-between; padding: 18px 22px; color: var(--olive); background: #f7f7eb; font-size: 14px; line-height: 1.6; font-weight: 600; }
.new-hero-image figcaption > span { display: flex; align-items: center; gap: 9px; }
.new-hero-image figcaption > a { display: grid; place-items: center; background: #e4ebd1; width: 40px; height: 40px; border-radius: 50%; flex-shrink: 0; }
.quick-paths { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; margin-top: 38px; }
.quick-path { display: flex; align-items: center; gap: 15px; padding: 23px 20px; background: #f0f3e5; border: 1px solid #bdc99f; border-radius: 17px; box-shadow: var(--new-clay); transition: border-color .2s, background .2s; }
.quick-path:hover { background: #e5eccf; border-color: #6e8338; }
.path-icon { display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 50px; border: 1px solid #c1ce9c; border-radius: 16px; flex-shrink: 0; background: #e5edcf; box-shadow: inset 2px 2px 4px #fff, inset -2px -3px 4px #98a96933, 0 3px 0 #c5d2a4; }
.path-icon svg { width: 24px; height: 24px; }
.quick-path small { display: block; font-size: 12px; line-height: 1.6; margin-bottom: 5px; color: #626e48; }
.quick-path strong { display: block; font-family: Manrope, sans-serif; font-size: 16px; line-height: 1.6; font-weight: 700; }
.quick-path > svg { margin-left: auto; width: 19px; }
.stage-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.stage-card { border-radius: 26px; background: #f8f9ef; border: 1px solid #bdc79e; padding: 10px; box-shadow: var(--new-clay); }
.stage-image { display: block; position: relative; border-radius: 18px; overflow: hidden; }
.stage-image img { width: 100%; height: 272px; object-fit: cover; object-position: center 40%; transition: transform .35s; }
.stage-image:hover img { transform: scale(1.025); }
.stage-number { position: absolute; left: 17px; bottom: 17px; background: #fcfdf2; color: var(--olive); display: grid; place-items: center; border-radius: 12px; width: 45px; height: 45px; font-size: 14px; font-weight: 700; box-shadow: inset 0 -3px 3px #333b0a12, 0 3px 7px #0002; }
.stage-copy { padding: 25px 17px 20px; }
.stage-label { font-size: 11px; line-height: 1.8; letter-spacing: 1.1px; font-weight: 700; color: #667847; }
.stage-card h3 { font-size: 29px; margin: 10px 0 14px; }
.stage-card p { font-size: 17px; line-height: 1.8; min-height: 92px; }
.stage-card .text-link { width: 100%; justify-content: space-between; border-top: 1px solid #d0d8bd; padding-top: 18px; }
.new-story { background: #ecf0df; border-block: 1px solid #dae1c7; }
.story-editorial { display: grid; grid-template-columns: 1fr 1fr; gap: 75px; align-items: center; }
.story-editorial figure { margin: 0; padding: 12px; background: #fbfcf5; border: 1px solid #bdc79f; border-radius: 26px; box-shadow: var(--new-clay); transform: rotate(-1.5deg); }
.story-editorial figure img { width: 100%; height: 450px; object-fit: cover; border-radius: 17px; object-position: center 75%; }
.story-editorial figcaption { padding: 18px 10px 8px; font-size: 14px; line-height: 1.7; }
.story-editorial h2 { margin-bottom: 25px; }
.story-editorial p { font-size: 17px; }
.story-principles { display: flex; gap: 22px; flex-wrap: wrap; margin: 28px 0; }
.story-principles span { display: inline-flex; gap: 8px; font-size: 14px; font-weight: 600; align-items: center; }
.space-grid { display: grid; grid-template-columns: 1.45fr 1fr; gap: 30px; }
.space-card { display: flex; flex-direction: column; min-width: 0; padding: 12px; border: 1px solid #b7c394; background: #f1f5e6; border-radius: 27px; box-shadow: var(--new-clay); }
.space-card > img { height: 330px; width: 100%; object-fit: cover; border-radius: 18px; }
.space-main > img { object-fit: cover; object-position: center 45%; background: #e2e8d1; }
.space-card > div { padding: 23px 17px 16px; }
.space-card > div > span:first-child { font-size: 11px; line-height: 1.7; font-weight: 700; letter-spacing: 1.1px; color: #61733d; }
.space-card h3 { margin: 10px 0 12px; font-size: 26px; }
.space-card p { font-size: 17px; margin-bottom: 12px; }
.space-card .text-link { font-weight: 700; }
.leadership-teaser { background: #e5ebd2; border-block: 1px solid #c4d09e; padding-block: 60px; }
.leadership-teaser-inner { display: grid; grid-template-columns: 160px minmax(0, 1fr) auto; align-items: center; gap: 45px; }
.crest-medallion { border-radius: 50%; background: #fcfdf5; padding: 20px; border: 1px solid #b7c48f; box-shadow: inset 4px 5px 9px #fff, inset -6px -8px 12px #b4c38955, 0 7px 0 #bdc99f, 0 18px 24px -17px #333b0a66; aspect-ratio: 1; display: grid; place-items: center; }
.crest-medallion img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; border-radius: 50%; }
.leadership-teaser h2 { font-size: clamp(29px, 2.8vw, 40px); }
.leadership-teaser p:not(.eyebrow) { margin: 18px 0 0; font-size: 17px; max-width: 620px; }
.home-film-section { padding-top: 0; }
.school-film-layout { display: grid; grid-template-columns: 1.65fr 1fr; gap: 42px; align-items: center; }
.school-film-player { position: relative; border: 1px solid #aebb8b; padding: 10px; border-radius: 25px; background: #eff3e1; box-shadow: var(--new-clay); overflow: hidden; }
.school-film-player video { display: block; width: 100%; height: auto; aspect-ratio: 16/9; background: #161b07; border-radius: 16px; object-fit: contain; }
.film-play-button { position: absolute; inset: 10px; width: calc(100% - 20px); border: 0; border-radius: 16px; background: linear-gradient(transparent 25%, #141a07b3); color: #fff; display: flex; align-items: center; justify-content: flex-end; flex-direction: column; gap: 18px; padding: 24px; text-align: center; font-size: 17px; font-weight: 600; transition: background-color .2s; }
.film-play-button:hover { background-color: #20270620; }
.film-play-button:focus-visible { outline-color: var(--lime); outline-offset: -5px; }
.film-play-icon { display: grid; place-items: center; width: 70px; height: 70px; border: 1px solid #e3ecbc; border-radius: 50%; background: #f7faeb; color: #35420f; box-shadow: inset 2px 3px 4px #fff, inset -3px -4px 5px #879e4c44, 0 5px 0 #5e74278c, 0 12px 22px #0005; }
.film-play-icon svg { width: 29px; height: 29px; margin-left: 3px; }
.film-play-button small { display: block; font-size: 12px; line-height: 1.7; margin-top: 7px; font-weight: 400; color: #f0f3e1; }
.school-film-note h3 { font-size: 30px; margin: 18px 0 22px; }
.school-film-note p { font-size: 17px; }
.head-intro-photo { max-width: 365px; justify-self: center; }
.head-intro-photo > img { height: 450px; object-position: center 38%; }
.notice-preview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.news-preview { display: flex; align-items: flex-start; gap: 25px; padding: 30px; border: 1px solid #bac69b; border-radius: 23px; background: #f5f7ec; box-shadow: var(--new-clay); }
.news-preview h3 { margin: 9px 0 14px; font-size: 25px; }
.news-preview p { font-size: 17px; }
.date-tile { min-width: 94px; padding: 18px 12px; border: 1px solid #afbd83; background: #e6edcf; border-radius: 17px; text-align: center; flex-shrink: 0; box-shadow: inset 2px 3px 5px #fff9, inset -3px -4px 5px #6b822322, 0 4px 0 #c4d2a0; }
.date-tile strong { display: block; font-size: 25px; line-height: 1.4; font-family: Manrope, sans-serif; }
.date-tile span { display: block; font-size: 10px; line-height: 1.7; font-weight: 700; margin-top: 6px; letter-spacing: .6px; }
.new-faq { background: #eff2e6; border-block: 1px solid #d8dfc4; }
.faq-editorial { display: grid; grid-template-columns: .8fr 1.2fr; gap: 85px; }
.faq-editorial h2 { margin-bottom: 24px; }
.new-accordion details { border-bottom: 1px solid #bfc9a6; padding: 0; }
.new-accordion summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; list-style: none; padding: 24px 0; font-family: Manrope, sans-serif; font-size: 18px; font-weight: 700; line-height: 1.7; }
.new-accordion summary::-webkit-details-marker { display: none; }
.new-accordion summary span { color: #6a7f31; font-size: 24px; font-weight: 500; }
.new-accordion p { font-size: 17px; margin-bottom: 25px; }
.new-accordion a { text-decoration: underline; text-underline-offset: 4px; }
.new-cta { border-radius: 29px; padding: 50px 55px; background: #dce9b4; border: 1px solid #aabd76; box-shadow: inset 0 3px 4px #fff9, inset 0 -6px 12px #718d2826, 0 8px 0 #c5d59d, 0 24px 30px -28px #333b0a88; display: flex; gap: 45px; justify-content: space-between; align-items: center; }
.new-cta h2 { color: var(--olive-deep); }
.new-cta p:not(.eyebrow) { font-size: 17px; margin: 22px 0 0; max-width: 600px; }
.new-cta-actions { flex-shrink: 0; text-align: center; }
.new-cta-actions > a:not(.button) { display: block; margin-top: 20px; font-size: 14px; }

/* Retained pages receive a unified image-led introduction and stronger card treatment. */
.page-intro { padding-top: 125px; padding-bottom: 65px; }
.enhanced-intro { display: grid; grid-template-columns: 1.25fr .85fr; gap: 65px; align-items: center; }
.page-intro-copy { min-width: 0; }
.page-intro .breadcrumbs { margin-bottom: 28px; }
.page-intro h1 { font-size: clamp(40px, 4.2vw, 60px); line-height: 1.14; letter-spacing: -2.6px; }
.page-intro .lead { font-size: 18px; line-height: 1.85; }
.page-intro-photo { margin: 0; border: 1px solid #b6c48e; padding: 10px; border-radius: 25px; background: #f4f7ea; box-shadow: var(--new-clay); transform: rotate(1.5deg); }
.page-intro-photo > img { width: 100%; height: 310px; object-fit: cover; border-radius: 17px; object-position: center 38%; }
html[data-page="about"] .page-intro-photo > img, html[data-page="school-heads"] .page-intro-photo > img, html[data-page="contact"] .page-intro-photo > img { object-position: center 75%; }
html[data-page="facilities"] .page-intro-photo > img { object-fit: cover; object-position: center; background: #e8eddb; }
html[data-page="school-heads"] .head-intro-photo > img { height: auto; aspect-ratio: 2/3; object-fit: contain; }
.page-intro-photo figcaption { display: flex; align-items: center; justify-content: center; gap: 10px; padding: 15px 10px 6px; font-size: 13px; line-height: 1.7; font-weight: 600; }
.value-card, .programme-card, .life-card, .download-card { border-color: #b3c18c; box-shadow: var(--new-clay); }
.value-card p, .programme-card p { line-height: 1.85; }
.value-card h3 { font-size: 22px; }
.photo { border-color: #b7c394; }
.facility-card { border-color: #b7c394; box-shadow: var(--new-clay); background: #f6f8ed; }
.facility-card figcaption { padding-bottom: 20px; }
.facilities-intro .facility-jump-links { margin-top: 24px; }
.leadership-welcome { display: grid; grid-template-columns: .65fr 1.35fr; gap: 80px; align-items: center; padding-top: 25px; }
.welcome-seal { display: grid; place-items: center; background: #e6edd2; border: 1px solid #c1cd9f; border-radius: 110px 110px 30px 30px; padding: 58px 35px; }
.welcome-seal .crest-medallion { width: 210px; }
.welcome-seal > span { margin-top: 30px; font-size: 11px; letter-spacing: 1.4px; font-weight: 700; text-align: center; }
.leadership-welcome h2 { margin-bottom: 25px; }
.leadership-welcome p { font-size: 17px; }
.welcome-signature { font-family: Manrope, sans-serif; font-weight: 750; color: var(--olive); margin-top: 30px; }
.welcome-signature span { display: block; font-size: 13px; line-height: 1.8; margin-top: 7px; font-family: 'DM Sans', sans-serif; font-weight: 400; }
.leadership-pending { display: flex; align-items: center; gap: 30px; padding: 32px; background: #fafbf3; border: 1px solid #bcc89d; border-radius: 24px; box-shadow: var(--new-clay); }
.leadership-pending p { font-size: 17px; margin: 15px 0 0; }
.leadership-pending .button { flex-shrink: 0; }
.team-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.team-profile { background: #fafbf3; border: 1px solid #bac59d; border-radius: 24px; overflow: hidden; box-shadow: var(--new-clay); }
.team-profile > img { height: 330px; width: 100%; object-fit: cover; object-position: top; }
.team-profile > div { padding: 26px; }
.team-profile p { font-size: 17px; margin-top: 18px; white-space: pre-line; }
.team-profile .team-role { display: block; margin-top: 10px; color: #65743d; font-size: 14px; }
.topic-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 28px; }
.topic-grid article { padding: 32px; border: 1px solid #b6c493; border-radius: 23px; background: #f4f7ea; box-shadow: var(--new-clay); }
.topic-grid article > svg { width: 35px; height: 35px; margin-bottom: 24px; }
.topic-grid h3 { font-size: 23px; margin-bottom: 18px; }
.topic-grid p { font-size: 17px; margin: 0; }
.care-intro { display: grid; grid-template-columns: 1.1fr .9fr; gap: 70px; align-items: center; padding-top: 20px; }
.care-intro h2 { margin-bottom: 25px; }
.care-intro p { font-size: 17px; }
.care-photo { margin: 0; padding: 10px; background: #f5f7eb; border: 1px solid #bac799; border-radius: 26px; box-shadow: var(--new-clay); }
.care-photo img { height: 400px; width: 100%; object-fit: cover; border-radius: 18px; }
.care-photo figcaption { padding: 18px 12px 10px; font-size: 14px; line-height: 1.7; }
.support-panel { display: grid; grid-template-columns: 1.2fr .8fr; gap: 80px; align-items: center; }
.support-panel h2 { margin-bottom: 25px; }
.support-panel p { font-size: 17px; }
.support-panel aside { background: #eaf0db; border: 1px solid #b6c395; border-radius: 24px; padding: 35px; }
.support-panel aside > a:not(.text-link) { display: block; margin: 17px 0; font-size: 17px; overflow-wrap: anywhere; }
.support-panel aside p { margin-top: 25px; }
.event-list { display: grid; gap: 25px; }
.event-row { padding: 30px; border: 1px solid #bcc99e; border-radius: 22px; display: grid; grid-template-columns: 110px 1fr auto; align-items: center; gap: 32px; background: #f4f7e9; box-shadow: var(--new-clay); }
.event-row h3 { margin: 9px 0; }
.event-row p { font-size: 17px; margin: 0; }
.event-archive { background: #f5f5ed; }
.editorial-news-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px; }
.editorial-news-card { min-width: 0; background: #fafbf4; border: 1px solid #b9c698; border-radius: 25px; padding: 10px; box-shadow: var(--new-clay); }
.poster-frame { display: block; padding: 10px; border-radius: 18px; background: #e5ebd5; }
.poster-frame img { height: 330px; width: 100%; object-fit: contain; }
.editorial-news-card > div { padding: 25px 15px 15px; }
.editorial-news-card h3 { margin: 12px 0 18px; }
.editorial-news-card p { font-size: 17px; }
.news-archive-note { margin: 35px 0 0; font-size: 15px; }
.news-archive-note a { text-decoration: underline; text-underline-offset: 4px; }
.school-social-panel { display: flex; gap: 45px; align-items: center; justify-content: space-between; }
.school-social-panel h2 { margin-bottom: 23px; }
.school-social-panel p { max-width: 700px; font-size: 17px; }
.school-social-panel > div:last-child { display: grid; gap: 20px; }
.parent-shortcuts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 25px; padding-block: 15px 55px; }
.parent-shortcuts > a { padding: 25px; border-radius: 22px; border: 1px solid #b5c38e; background: #eef3df; box-shadow: var(--new-clay); }
.parent-shortcuts strong { display: block; font-family: Manrope, sans-serif; font-size: 19px; margin: 17px 0 14px; }
.parent-shortcuts span { display: flex; align-items: center; justify-content: space-between; gap: 10px; font-size: 14px; line-height: 1.7; }
.visit-checklist { display: grid; grid-template-columns: 1.2fr .8fr; gap: 55px; align-items: start; }
.visit-checklist label { display: flex; gap: 16px; align-items: flex-start; padding: 18px 0; border-bottom: 1px solid #d0d9bc; font-size: 17px; line-height: 1.8; cursor: pointer; }
.visit-checklist input { width: 22px; height: 22px; flex: 0 0 22px; margin-top: 5px; accent-color: #5c7424; }
.visit-checklist aside { padding: 30px; border-radius: 22px; background: #eaf0d8; border: 1px solid #b3c28a; }
.visit-checklist aside h3 { margin: 25px 0 18px; }
.visit-checklist aside p { font-size: 17px; }
.visit-checklist .text-link { margin-top: 20px; }
.purpose-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.purpose-grid article { padding: 35px; border: 1px solid #b7c394; border-radius: 24px; background: #eff4e1; box-shadow: var(--new-clay); }
.purpose-grid article > span { font-size: 12px; letter-spacing: 1.4px; font-weight: 700; color: #697d3e; }
.purpose-grid h3 { margin: 20px 0; font-size: 28px; }
.purpose-grid p { margin-bottom: 0; font-size: 17px; }
.about-next { display: flex; gap: 36px; flex-wrap: wrap; margin-top: 35px; }

/* Footer: a quiet, readable signature, with the maker's WhatsApp link. */
.site-footer { background: var(--olive-deep); }
.footer-invitation { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 38px 0; border-bottom: 1px solid #acbe6a3d; }
.footer-invitation > span { font-family: Manrope, sans-serif; color: #e6efcc; font-size: 26px; letter-spacing: -.8px; font-weight: 650; }
.footer-invitation > a { display: inline-flex; align-items: center; gap: 20px; font-size: 16px; color: #e3edc8; min-height: 48px; }
.footer-top { padding-block: 55px; grid-template-columns: 1.15fr .75fr .85fr 1.25fr; gap: 40px; }
.footer-top .brand strong { color: #fffef4; }
.footer-top .brand small { color: #d2ddbb; }
.footer-brand p { font-size: 17px; margin-top: 25px; }
.footer-top h3 { font-size: 16px; }
.footer-top > div > a:not(.brand), .footer-contact p { font-size: 15px; line-height: 1.85; color: #dce5c7; }
.footer-bottom { gap: 20px; font-size: 13px; }
.footer-credit { flex-basis: 100%; padding-top: 18px; font-size: 14px; }
.footer-credit a { display: inline-block; line-height: 1.8; padding-block: 6px; }
.footer-credit a:hover { color: #cde790; text-decoration: underline; text-underline-offset: 5px; }
.footer-credit strong { color: #ecf3db; }

@media (max-width: 1200px) {
  .header-inner { gap: 18px; padding-inline: 18px; }
  .desktop-nav { gap: 17px; }
  .new-hero-copy { padding: 32px 20px; }
  .new-hero h1 { font-size: clamp(44px, 5vw, 63px); }
  .new-hero-actions { gap: 18px; }
  .quick-path { padding: 20px 15px; gap: 12px; }
  .quick-path > svg { display: none; }
  .quick-path .path-icon { width: 42px; height: 46px; }
  .leadership-teaser-inner { grid-template-columns: 130px minmax(0, 1fr); gap: 35px; }
  .leadership-teaser-inner > .button { grid-column: 2; justify-self: start; }
  .enhanced-intro { gap: 40px; }
  .news-preview { padding: 25px; gap: 20px; }
}
@media (max-width: 1100px) {
  .desktop-nav, .header-cta { display: none; }
  .menu-button { display: flex; margin-left: auto; }
  .new-hero h1 { font-size: 52px; }
  .new-hero-image > img { height: 370px; min-height: 0; }
  .new-hero-image figcaption { padding: 15px; font-size: 13px; }
  .new-hero-image figcaption .icon { width: 18px; }
  .quick-path strong { font-size: 15px; }
  .stage-grid { gap: 20px; }
  .stage-copy { padding-inline: 12px; }
  .stage-image img { height: 240px; }
  .stage-card p { min-height: 120px; }
  .story-editorial { gap: 40px; }
  .faq-editorial { gap: 45px; }
  .enhanced-intro { grid-template-columns: 1.15fr .85fr; }
  .page-intro h1 { font-size: 46px; }
  .leadership-welcome { gap: 45px; }
  .leadership-pending { flex-wrap: wrap; }
  .leadership-pending > div { flex: 1; min-width: 250px; }
  .leadership-pending .button { margin-left: 80px; }
  .editorial-news-grid { gap: 20px; }
  .poster-frame img { height: 280px; }
}
@media (max-width: 900px) {
  .school-film-layout { grid-template-columns: 1fr; gap: 30px; }
  .school-film-note { max-width: 680px; }
  .school-film-note h3 { font-size: 29px; }
  .head-intro-photo { justify-self: start; max-width: 365px; }
  .head-intro-photo > img { height: 430px; }
  .wrap { width: calc(100% - 48px); }
  .new-hero { grid-template-columns: 1fr; }
  .new-hero-copy { padding: 28px 14px; }
  .new-hero h1 { font-size: clamp(46px, 8vw, 64px); letter-spacing: -2px; }
  .new-hero-copy > p:not(.eyebrow) { font-size: 17px; }
  .new-hero-actions { align-items: flex-start; flex-direction: column; gap: 10px; }
  .new-hero-image { max-width: 520px; justify-self: center; }
  .new-hero-image > img { height: auto; min-height: 0; flex: none; aspect-ratio: 4 / 3; }
  .hero-signature { margin-top: 25px; }
  .quick-paths { gap: 15px; }
  .quick-path { flex-direction: column; align-items: flex-start; }
  .stage-grid { grid-template-columns: 1fr; gap: 30px; }
  .stage-card { display: grid; grid-template-columns: .9fr 1.1fr; gap: 18px; }
  .stage-image img { height: 100%; min-height: 300px; }
  .stage-card p { min-height: 0; }
  .stage-copy { padding: 25px 20px 25px 5px; }
  .story-editorial { gap: 35px; }
  .story-editorial figure img { height: 450px; }
  .story-principles { gap: 15px; }
  .space-grid { grid-template-columns: 1fr 1fr; gap: 24px; }
  .space-card > img { height: 260px; }
  .space-card > div { padding-inline: 12px; }
  .space-card h3 { font-size: 23px; }
  .notice-preview-grid { grid-template-columns: 1fr; }
  .faq-editorial { grid-template-columns: 1fr; gap: 25px; }
  .new-cta { padding: 38px; align-items: flex-start; flex-direction: column; gap: 30px; }
  .new-cta-actions { text-align: left; }
  .enhanced-intro { grid-template-columns: 1fr; gap: 40px; }
  .page-intro h1 { max-width: 700px; font-size: 54px; }
  .page-intro-photo { max-width: 620px; transform: none; }
  .page-intro-photo > img { height: 340px; }
  .page-intro { padding-bottom: 55px; }
  .topic-grid { gap: 20px; }
  .topic-grid article { padding: 25px; }
  .topic-grid h3 { font-size: 21px; }
  .leadership-welcome { grid-template-columns: 1fr; }
  .welcome-seal { display: none; }
  .care-intro { grid-template-columns: 1fr 1fr; gap: 35px; }
  .support-panel { grid-template-columns: 1fr; gap: 30px; }
  .event-row { grid-template-columns: 100px 1fr; gap: 25px; }
  .event-row > a { grid-column: 2; }
  .editorial-news-grid { grid-template-columns: 1fr 1fr; gap: 25px; }
  .school-social-panel { align-items: flex-start; flex-direction: column; gap: 20px; }
  .school-social-panel > div:last-child { display: flex; flex-wrap: wrap; gap: 20px; }
  .parent-shortcuts { gap: 18px; }
  .parent-shortcuts > a { padding: 20px; }
  .parent-shortcuts strong { font-size: 17px; }
  .visit-checklist { grid-template-columns: 1fr; gap: 35px; }
  .footer-top { grid-template-columns: 1fr 1fr; }
  .footer-brand { grid-column: auto; }
  .footer-contact { grid-column: auto; }
}
@media (max-width: 600px) {
  .head-intro-photo { width: 100%; max-width: 365px; }
  .head-intro-photo > img { height: 420px; }
  .home-film-section { padding-top: 0; }
  .school-film-player { border-radius: 20px; padding: 8px; }
  .school-film-player video { border-radius: 13px; }
  .film-play-button { inset: 8px; width: calc(100% - 16px); padding: 12px; gap: 12px; border-radius: 13px; font-size: 14px; }
  .film-play-icon { width: 49px; height: 49px; }
  .film-play-icon svg { width: 23px; height: 23px; }
  .film-play-button small { font-size: 10px; margin-top: 3px; }
  .school-film-note h3 { font-size: 27px; }
  body { font-size: 17px; }
  .wrap { width: calc(100% - 36px); }
  .section { padding-block: 62px; }
  h2 { font-size: 35px; letter-spacing: -1.4px; }
  .eyebrow { font-size: 11px; letter-spacing: 1px; }
  .section-head { gap: 22px; margin-bottom: 30px; align-items: flex-start; flex-direction: column; }
  .section-head > p { max-width: 100%; font-size: 17px; margin: 0; }
  .topline .wrap { min-height: 34px; }
  .topline { font-size: 10px; }
  .site-header { top: 46px; width: calc(100% - 24px); border-radius: 17px; }
  body.scrolled .site-header { top: 9px; }
  .header-inner { min-height: 75px; padding: 10px 13px; }
  .brand .logo { width: 47px; height: 47px; }
  .brand strong { font-size: 21px; }
  .brand small { font-size: 9px; margin-top: 4px; }
  .mobile-menu { padding: 12px 22px 25px; max-height: calc(100dvh - 145px); }
  .new-hero { grid-template-columns: 1fr; margin-top: 113px; padding: 9px; gap: 16px; border-radius: 24px; }
  .new-hero-copy { padding: 26px 15px 12px; }
  .new-hero h1 { font-size: clamp(39px, 10.8vw, 61px); letter-spacing: -2px; line-height: 1.12; }
  .new-hero .eyebrow { font-size: 10px; letter-spacing: .9px; margin-bottom: 22px; }
  .new-hero-copy > p:not(.eyebrow) { font-size: 17px; margin: 25px 0; }
  .new-hero-actions { gap: 16px; }
  .hero-signature { margin-top: 25px; padding-top: 23px; }
  .hero-signature small { font-size: 12px; }
  .new-hero-image { border-radius: 17px; }
  .new-hero-image > img { min-height: 0; height: auto; aspect-ratio: 4 / 3; flex: none; object-position: center 35%; }
  .new-hero-image figcaption { font-size: 12px; line-height: 1.7; padding: 13px 12px; gap: 8px; }
  .new-hero-image figcaption > span { gap: 7px; }
  .new-hero-image figcaption > a { width: 36px; height: 36px; }
  .quick-paths { grid-template-columns: 1fr; margin-top: 28px; gap: 18px; }
  .quick-path { flex-direction: row; align-items: center; padding: 20px; gap: 17px; }
  .quick-path .path-icon { width: 46px; height: 46px; }
  .quick-path strong { font-size: 16px; }
  .quick-path small { font-size: 12px; }
  .quick-path > svg { display: block; width: 18px; }
  .stage-card { display: block; padding: 10px; border-radius: 24px; }
  .stage-image img { min-height: 0; height: 280px; }
  .stage-copy { padding: 25px 15px 17px; }
  .stage-card h3 { font-size: 29px; }
  .stage-card p { font-size: 17px; }
  .story-editorial { grid-template-columns: 1fr; gap: 44px; }
  .story-editorial figure { transform: none; }
  .story-editorial figure img { height: 310px; }
  .story-editorial p { font-size: 17px; }
  .space-grid { grid-template-columns: 1fr; gap: 28px; }
  .space-card > img { height: 270px; }
  .space-card h3 { font-size: 25px; }
  .space-card > div { padding: 23px 14px 17px; }
  .leadership-teaser { padding-block: 48px; }
  .leadership-teaser-inner { grid-template-columns: 1fr; gap: 28px; }
  .leadership-teaser .crest-medallion { width: 105px; padding: 13px; }
  .leadership-teaser-inner > .button { grid-column: auto; }
  .leadership-teaser h2 { font-size: 34px; }
  .news-preview { padding: 25px 22px; gap: 22px; flex-direction: column; }
  .news-preview .date-tile { min-width: 100px; padding: 12px; }
  .news-preview h3 { font-size: 25px; }
  .date-tile span { font-size: 10px; }
  .new-accordion summary { font-size: 17px; padding-block: 21px; }
  .new-cta { padding: 30px 24px; border-radius: 24px; }
  .new-cta h2 { font-size: 33px; }
  .new-cta .eyebrow { font-size: 10px; }
  .new-cta p:not(.eyebrow) { font-size: 17px; }
  .page-intro { padding-top: 113px; padding-bottom: 48px; }
  .page-intro h1 { font-size: clamp(36px, 9.5vw, 48px); line-height: 1.16; letter-spacing: -1.7px; }
  .page-intro .lead { font-size: 17px; }
  .page-intro .breadcrumbs { font-size: 13px !important; flex-wrap: wrap; row-gap: 10px; }
  .page-intro-photo { border-radius: 22px; padding: 9px; }
  .page-intro-photo > img { height: 260px; }
  .page-intro-photo figcaption { font-size: 12px; }
  .leadership-welcome { padding-top: 12px; gap: 30px; }
  .leadership-pending { flex-direction: column; align-items: flex-start; padding: 28px 23px; gap: 23px; }
  .leadership-pending > div { min-width: 0; }
  .leadership-pending .button { margin: 0; }
  .leadership-pending h3 { font-size: 25px; }
  .team-grid { grid-template-columns: 1fr; }
  .topic-grid { grid-template-columns: 1fr; gap: 25px; }
  .topic-grid article { padding: 28px; }
  .topic-grid h3 { font-size: 23px; }
  .care-intro { grid-template-columns: 1fr; gap: 35px; padding-top: 15px; }
  .care-photo img { height: 320px; }
  .support-panel aside { padding: 27px; }
  .event-row { grid-template-columns: 1fr; padding: 25px; gap: 22px; justify-items: start; }
  .event-row > a { grid-column: 1; }
  .event-row .date-tile { min-width: 105px; }
  .editorial-news-grid { grid-template-columns: 1fr; gap: 30px; }
  .poster-frame img { height: 340px; }
  .editorial-news-card > div { padding-inline: 15px; }
  .school-social-panel { gap: 18px; }
  .parent-shortcuts { grid-template-columns: 1fr; gap: 22px; padding-bottom: 40px; }
  .parent-shortcuts > a { padding: 25px; }
  .parent-shortcuts strong { font-size: 20px; }
  .visit-checklist { gap: 30px; }
  .visit-checklist aside { padding: 28px 23px; }
  .purpose-grid { grid-template-columns: 1fr; gap: 25px; }
  .purpose-grid article { padding: 28px; }
  .purpose-grid h3 { font-size: 26px; }
  .about-next { gap: 18px; flex-direction: column; align-items: flex-start; }
  .footer-invitation { flex-direction: column; align-items: flex-start; padding-block: 32px; gap: 15px; }
  .footer-invitation > span { font-size: 24px; }
  .footer-invitation > a { font-size: 14px; }
  .footer-top { grid-template-columns: 1fr 1fr; padding-block: 40px; gap: 35px 20px; }
  .footer-brand, .footer-contact { grid-column: 1/-1; }
  .footer-top > div > a:not(.brand), .footer-contact p { font-size: 15px; }
  .footer-bottom { gap: 15px; padding-bottom: 95px; }
  .footer-credit { font-size: 13px; line-height: 1.9; flex-basis: auto; }
  .footer-credit a { max-width: 100%; }
}
@media (max-width: 360px) {
  .wrap { width: calc(100% - 30px); }
  .new-hero-copy { padding-inline: 12px; }
  .new-hero h1 { font-size: 38px; }
  .new-hero-image figcaption > span > svg { display: none; }
  .quick-path { gap: 12px; padding: 18px 15px; }
  .quick-path strong { font-size: 15px; }
  .new-hero-image > img { height: auto; }
  .button { padding-inline: 19px; font-size: 14px; }
  .leadership-pending .button { width: 100%; gap: 10px; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
}
/* Keep the group photo's faces in view as the hero becomes a single column. */
@media (max-width: 900px) {
  .new-hero-image > img.hero-community-photo { height: auto; min-height: 0; flex: none; aspect-ratio: 4 / 3; object-position: center 35%; }
}
@media print {
  .site-header, .topline, .site-footer, .floating-contact { display: none !important; }
  .page-intro { padding-top: 20px; }
  .new-hero { margin-top: 20px; }
  .visit-checklist { display: block; }
  .visit-checklist aside { margin-top: 25px; }
}

/* October 2026: current classrooms, school activities and confirmed staff. */
.activity-showcase-grid { display:grid; grid-template-columns:1.15fr 1fr; gap:30px; align-items:start; }
.activity-showcase .video-card { margin:0; border:1px solid #b7c394; background:#f6f8ed; box-shadow:var(--new-clay); }
.activity-showcase .video-card video { width:100%; height:auto; aspect-ratio:16/9; object-fit:contain; background:#18210b; }
.activity-showcase .video-card p { font-size:17px; line-height:1.75; padding-inline:8px; }
.activity-showcase .video-card h3 { font-size:24px; line-height:1.4; }
.activity-photo-card { overflow:hidden; background:#f6f8ed; border:1px solid #b7c394; border-radius:24px; box-shadow:var(--new-clay); padding:12px; }
.activity-photo-card > img { width:100%; height:auto; aspect-ratio:3/2; object-fit:contain; border-radius:16px; background:#e9ecdf; }
.activity-photo-card > div { padding:24px 14px 14px; }
.activity-photo-card h3 { font-size:25px; line-height:1.4; margin:14px 0; }
.activity-photo-card p { font-size:17px; line-height:1.75; }
.current-school-photo .photo > img { object-fit:contain; background:#e9ecdf; }
.team-profile .team-monogram { width:76px; height:76px; margin:28px 26px 0; padding:0; display:grid; place-items:center; border-radius:24px; border:1px solid #a5b579; background:linear-gradient(140deg,#f7fae9,#dbe5bd); box-shadow:inset 3px 3px 6px #fff,5px 5px 12px #313c1520; font-size:25px; font-weight:700; color:#354610; }
.team-profile h3 { font-size:24px; line-height:1.4; }
.team-profile .team-role { font-size:16px; line-height:1.65; color:#4d6028; }
.space-main > img { object-fit:contain; background:#e9ecdf; }
.graduation-video video { object-fit:contain; background:#18210b; }
.graduation-video > p:not(.video-status) { font-size:17px; line-height:1.75; }
@media (max-width:900px) { .team-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:700px) { .activity-showcase-grid { grid-template-columns:1fr; } }
@media (max-width:600px) { .team-grid { grid-template-columns:1fr; } .activity-showcase .video-card h3 { font-size:22px; } }

/* School curriculum and parent orientation content from the supplied slides. */
.curriculum-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px; }
.curriculum-card { padding:32px; border:1px solid #b7c394; border-radius:25px; background:#f4f7e9; box-shadow:var(--new-clay); }
.curriculum-card h3 { margin:16px 0 24px; font-size:26px; line-height:1.35; }
.subject-list { display:grid; grid-template-columns:1fr 1fr; gap:14px 22px; padding-left:22px; font-size:18px; line-height:1.6; }
.curriculum-card .text-link { margin-top:22px; }
.club-layout { display:grid; grid-template-columns:1fr 1fr; align-items:center; gap:48px; }
.club-photo { margin:0; padding:12px; background:#fafbf3; border:1px solid #b7c394; border-radius:25px; box-shadow:var(--new-clay); }
.club-photo img { width:100%; height:auto; border-radius:17px; }
.club-photo figcaption { font-size:15px; line-height:1.7; padding:18px 12px 8px; }
.club-copy article + article { border-top:1px solid #bac99b; margin-top:25px; padding-top:25px; }
.club-copy h3 { font-size:26px; margin:14px 0; line-height:1.4; }
.club-copy p { font-size:18px; line-height:1.8; }
.club-copy .policy-reference { font-size:15px; line-height:1.8; }
.recognition-grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:22px; }
.recognition-grid article { border:1px solid #b7c394; padding:28px; border-radius:24px; background:#f4f7e9; box-shadow:var(--new-clay); }
.recognition-grid article > span { font-weight:700; font-size:14px; color:#586e31; }
.recognition-grid h3 { font-size:22px; margin:22px 0 15px; line-height:1.4; }
.recognition-grid p { font-size:17px; line-height:1.8; }
.policy-date-note { background:#eaf0d8; border:1px solid #adbd88; border-radius:20px; padding:25px 28px; margin-bottom:30px; }
.policy-date-note strong { font-size:18px; }
.policy-date-note p { margin:12px 0 0; font-size:17px; line-height:1.8; }
.policy-accordion .policy-detail { padding:0 0 25px; }
.policy-detail p { max-width:none; font-size:17px; line-height:1.8; }
.policy-table-wrap { overflow-x:auto; margin:20px 0; }
.policy-table { width:100%; border-collapse:collapse; text-align:left; font-size:17px; line-height:1.7; }
.policy-table caption { text-align:left; font-size:15px; padding-bottom:12px; color:#536735; }
.policy-table th, .policy-table td { padding:16px; border:1px solid #c2cdae; vertical-align:top; }
.policy-table thead { background:#e6edd3; }
.policy-table tbody th { width:35%; font-weight:600; }
.communication-guide { display:grid; grid-template-columns:1.2fr .8fr; gap:60px; align-items:center; }
.communication-guide h2 { margin-bottom:25px; }
.communication-guide p { font-size:17px; line-height:1.8; }
.communication-guide aside { padding:32px; background:#eaf0d8; border:1px solid #b3c28a; border-radius:24px; }
.communication-guide aside h3 { margin-bottom:23px; font-size:25px; }
.communication-guide aside > a { display:block; margin-top:20px; overflow-wrap:anywhere; font-size:17px; }
.communication-guide aside > .button { display:inline-flex; margin-top:28px; font-size:15px; }
.assembly-copy { max-width:880px; font-size:18px; line-height:1.8; }
.assembly-copy .button { margin-top:15px; }
@media(max-width:1000px) { .recognition-grid { grid-template-columns:1fr 1fr; } }
@media(max-width:900px) { .club-layout { gap:28px; } .communication-guide { grid-template-columns:1fr; gap:28px; } }
@media(max-width:600px) { .curriculum-grid,.club-layout,.recognition-grid { grid-template-columns:1fr; } .curriculum-card { padding:26px; } .subject-list { gap:12px 14px; font-size:17px; } .recognition-grid article { padding:26px; } .recognition-grid h3 { margin-top:15px; } .policy-date-note { padding:23px; } .policy-table { font-size:15px; } .policy-table td,.policy-table th { padding:11px; } .policy-table tbody th { width:auto; } .communication-guide aside { padding:26px; } }

.parent-shortcuts { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media(max-width:1000px) { .parent-shortcuts { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:600px) { .parent-shortcuts { grid-template-columns:1fr; } }
