:root {
  --plum: #3a123e;
  --plum-deep: #241025;
  --violet: #6b3273;
  --pink: #e71983;
  --cyan: #0ca6c5;
  --orange: #f17a1b;
  --lime: #b9d936;
  --gold: #f2b331;
  --ink: #25182a;
  --muted: #625e64;
  --paper: #fffdf8;
  --mist: #f1f0ed;
  --line: #ddd7d5;
  --max: 1180px;
  --shadow: 0 20px 50px rgba(52, 16, 58, .15);
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --display: "Trebuchet MS", "Arial Rounded MT Bold", var(--sans);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: clip; }
body { margin: 0; color: var(--ink); background: var(--paper); font-family: var(--sans); font-size: 1rem; line-height: 1.6; overflow-x: clip; }
img { max-width: 100%; height: auto; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
h1, h2, h3, h4, p { margin-top: 0; }
h1, h2, h3, h4 { font-family: var(--display); line-height: 1.05; letter-spacing: -.035em; }
h1 { font-size: clamp(2.6rem, 6vw, 6.2rem); }
h2 { font-size: clamp(2rem, 4vw, 4rem); }
h3 { font-size: clamp(1.3rem, 2.4vw, 2rem); }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 1000; padding: .7rem 1rem; background: var(--gold); color: var(--plum-deep); font-weight: 800; }
.skip-link:focus { top: 1rem; }
.visually-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; }
.wrap { width: min(var(--max), calc(100% - 2.5rem)); margin: 0 auto; }
.eyebrow { margin: 0 0 .7rem; color: var(--violet); font-size: .77rem; font-weight: 900; letter-spacing: .16em; text-transform: uppercase; }
.eyebrow.light { color: var(--gold); }
.button { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; min-height: 2.9rem; padding: .72rem 1.25rem; border: 0; border-radius: 0; background: var(--plum); color: #fff; font-weight: 850; text-decoration: none; transition: transform .2s ease, background .2s ease, color .2s ease; }
.button:hover, .button:focus-visible { transform: translateY(-2px); background: var(--pink); }
.button.gold { background: var(--gold); color: var(--plum-deep); }
.button.light { background: #fff; color: var(--plum); }
.button.outline { border: 1px solid currentColor; background: transparent; color: inherit; }
.button.outline:hover, .button.outline:focus-visible { background: #fff; color: var(--plum); }
.button-arrow::after { content: "↗"; font-size: 1.1em; }

/* The Earls Colne-inspired shell: utility rail, hero navigation and bright pathway bands. */
.site-header { position: absolute; inset: 0 0 auto; z-index: 20; color: #fff; }
.utility-bar { border-bottom: 1px solid rgba(255,255,255,.18); background: rgba(28,11,32,.32); font-size: .78rem; }
.utility-inner { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 2.25rem; }
.utility-links { display: flex; gap: 1rem; flex-wrap: wrap; }
.utility-links a { text-decoration: none; opacity: .92; }
.utility-links a:hover, .utility-links a:focus-visible { color: var(--gold); }
.utility-contact { display: flex; gap: 1rem; white-space: nowrap; }
.main-nav { width: min(var(--max), calc(100% - 2.5rem)); margin: 0 auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 1.2rem; padding: 1.25rem 0 .75rem; }
.wordmark { display: inline-flex; align-items: center; gap: .7rem; color: #fff; text-decoration: none; min-width: max-content; }
.logo-badge { position: relative; display: grid; place-items: center; width: 3.25rem; height: 3.25rem; flex: none; }
.logo-badge::after { content: ""; position: absolute; inset: -.22rem; border: 1px solid rgba(255,255,255,.6); border-radius: 50%; animation: orbit 12s linear infinite; }
.brand-mark { position: relative; z-index: 1; display: block; width: 3rem; height: 3rem; object-fit: contain; }
.wordmark-name { display: block; font-family: var(--display); font-size: 1.25rem; line-height: 1; letter-spacing: -.025em; }
.wordmark-sub { display: block; margin-top: .24rem; font-size: .6rem; line-height: 1; letter-spacing: .12em; text-transform: uppercase; }
.nav-disclosure { flex: 1; }
.nav-disclosure summary { display: none; }
.primary-nav { display: flex; align-items: center; justify-content: flex-end; gap: 0; border-top: 1px solid rgba(255,255,255,.35); }
.primary-nav a, .primary-nav summary { display: inline-flex; align-items: center; min-height: 2.7rem; padding: .45rem .8rem; color: #fff; font-size: .86rem; font-weight: 750; text-decoration: none; white-space: nowrap; }
.primary-nav a:first-child { border-top: 4px solid var(--gold); }
.primary-nav a:hover, .primary-nav a:focus-visible, .primary-nav summary:hover, .primary-nav summary:focus-visible { background: rgba(255,255,255,.14); color: var(--gold); }
.nav-group { position: relative; }
.nav-group > summary { list-style: none; cursor: pointer; }
.nav-group > summary::-webkit-details-marker { display: none; }
.nav-group > summary::after { content: "⌄"; margin-left: .35rem; color: var(--gold); }
.nav-menu { position: absolute; top: calc(100% + .2rem); left: 0; display: grid; grid-template-columns: repeat(2, minmax(10rem, 1fr)); min-width: 26rem; padding: .75rem; background: var(--paper); color: var(--ink); box-shadow: var(--shadow); }
.nav-menu a { color: var(--ink); min-height: auto; }
.nav-menu a:first-child { border-top: 0; }
.nav-menu a:hover, .nav-menu a:focus-visible { background: var(--mist); color: var(--plum); }
.header-cta { align-self: flex-end; }

.school-hero { position: relative; min-height: min(820px, 100vh); display: grid; align-items: end; overflow: hidden; background: linear-gradient(100deg, rgba(30,10,38,.76), rgba(47,17,62,.25)), url("media/meadowlark-children-playing-hero.webp") center / cover; color: #fff; }
.school-hero::before { content: ""; position: absolute; inset: 0; background: radial-gradient(circle at 78% 36%, rgba(241,122,27,.45), transparent 25%), linear-gradient(180deg, rgba(33,11,39,.3), rgba(35,10,44,.85)); mix-blend-mode: multiply; }
.school-hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1fr) minmax(18rem, .72fr); align-items: end; gap: 3rem; width: min(var(--max), calc(100% - 2.5rem)); margin: 0 auto; padding: 11rem 0 5rem; }
.hero-kicker { color: var(--gold); font-size: .85rem; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; }
.school-hero h1 { max-width: 8ch; margin-bottom: 1.15rem; }
.school-hero h1 em { color: var(--gold); font-style: normal; }
.hero-intro { max-width: 42rem; font-size: clamp(1.05rem, 1.8vw, 1.4rem); }
.hero-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.5rem; }
.hero-quote { align-self: end; position: relative; padding: 3rem 2rem 2rem; background: rgba(242,179,49,.9); color: var(--plum-deep); clip-path: polygon(11% 0, 94% 8%, 100% 87%, 14% 100%, 0 22%); }
.hero-quote::before { content: "✦"; position: absolute; top: .5rem; right: 1.2rem; color: var(--pink); font-size: 3rem; }
.hero-quote blockquote { margin: 0; font-family: var(--display); font-size: clamp(1.4rem, 2.5vw, 2.2rem); line-height: 1.12; }
.hero-quote cite { display: block; margin-top: 1rem; font-size: .8rem; font-style: normal; font-weight: 800; }
.hero-tabs { position: absolute; z-index: 2; left: 0; right: 0; bottom: 0; display: flex; justify-content: center; gap: .35rem; padding: .8rem 1rem; background: rgba(41,15,48,.82); }
.hero-tabs a { padding: .45rem 1rem; border: 1px solid rgba(255,255,255,.2); color: #fff; font-size: .84rem; font-weight: 850; text-decoration: none; }
.hero-tabs a:hover, .hero-tabs a:focus-visible { background: var(--gold); color: var(--plum-deep); }

.side-tab { position: fixed; z-index: 30; top: 42%; padding: 1rem .65rem; background: var(--gold); color: var(--plum-deep); writing-mode: vertical-rl; transform: rotate(180deg); font-weight: 850; text-decoration: none; box-shadow: 0 8px 18px rgba(0,0,0,.12); }
.side-tab.useful { left: 0; }
.side-tab.contact { right: 0; }
.welcome { padding: clamp(4.5rem, 9vw, 8rem) 0; background: #fff; }
.welcome-grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 3.5rem; align-items: center; }
.welcome h2 { margin-bottom: 1.2rem; color: var(--plum); }
.welcome-lede { font-size: 1.08rem; font-weight: 750; }
.welcome-copy p { max-width: 66ch; }
.welcome-mark { justify-self: end; width: min(16rem, 65%); opacity: .86; filter: drop-shadow(0 15px 20px rgba(58,18,62,.12)); animation: float-mark 5s ease-in-out infinite; }
.phase-band { position: relative; overflow: hidden; padding: clamp(3rem, 7vw, 5.5rem) 0; background: linear-gradient(90deg, #707575, #9a9c9a); color: #fff; }
.phase-band::before { content: ""; position: absolute; inset: 0; background: url("media/rainbow.webp") center / cover; opacity: .17; mix-blend-mode: screen; }
.phase-grid { position: relative; display: grid; grid-template-columns: repeat(6, 1fr); gap: .8rem; align-items: start; }
.phase-card { display: flex; min-height: 6rem; align-items: center; justify-content: center; padding: 1rem; text-align: center; color: #fff; font-weight: 900; text-decoration: none; clip-path: polygon(10% 0, 100% 0, 90% 100%, 0 100%); transition: transform .25s ease, filter .25s ease; }
.phase-card:hover, .phase-card:focus-visible { transform: translateY(-7px); filter: brightness(1.12); }
.phase-card:nth-child(1) { background: var(--pink); grid-column: span 2; }
.phase-card:nth-child(2) { background: var(--cyan); grid-column: span 2; }
.phase-card:nth-child(3) { background: var(--orange); grid-column: span 2; }
.phase-card:nth-child(4) { background: var(--lime); color: var(--plum-deep); grid-column: 2 / span 2; }
.phase-card:nth-child(5) { background: var(--plum); grid-column: 4 / span 2; }
.events-band { padding: clamp(4rem, 8vw, 7rem) 0; background: linear-gradient(135deg, rgba(58,18,62,.98), rgba(108,49,115,.98)), url("media/book-1.webp") center / cover; color: #fff; }
.events-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; }
.events-grid h2 { margin-bottom: 1.6rem; color: var(--gold); font-size: clamp(2rem, 4vw, 3.2rem); }
.event-list { display: grid; gap: .8rem; }
.event-row { display: grid; grid-template-columns: 6.5rem 1fr; align-items: center; background: #fff; color: var(--ink); clip-path: polygon(0 0, 100% 0, 96% 100%, 0 100%); }
.event-date { padding: .8rem; background: var(--gold); color: var(--plum-deep); text-align: center; font-weight: 900; line-height: 1; }
.event-date strong { display: block; font-size: 2.1rem; }
.event-row span:last-child { padding: 1rem 1.2rem; font-weight: 700; }
.notice-card { position: relative; padding: 2rem; background: #fff; color: var(--ink); }
.notice-card::before, .notice-card::after { content: "✦"; position: absolute; color: rgba(242,179,49,.35); font-size: 4rem; }
.notice-card::before { top: -.8rem; right: 1rem; }
.notice-card::after { bottom: -1rem; left: 1rem; }
.notice-card h3 { color: var(--plum); }
.notice-card img { width: 46%; aspect-ratio: 4/3; float: left; margin: 0 1.3rem 1rem 0; object-fit: cover; }
.notice-card p:last-child { clear: both; margin-bottom: 0; font-size: .82rem; color: var(--muted); }

.desk-section { padding: clamp(4rem, 8vw, 7rem) 0; background: var(--mist); }
.section-intro { display: grid; grid-template-columns: .8fr 1.2fr; gap: 3rem; align-items: end; margin-bottom: 2.5rem; }
.section-intro h2 { margin-bottom: 0; color: var(--plum); }
.section-intro p { max-width: 52ch; margin-bottom: 0; }
.desk-grid { display: grid; grid-template-columns: .78fr 1.22fr; gap: 1.5rem; align-items: start; }
.desk-copy { padding: 2rem; background: #fff; border-left: 6px solid var(--gold); }
.desk-copy h3 { color: var(--plum); }
.desk-sheet { padding: 2rem; background: #fff; border: 1px solid var(--line); box-shadow: var(--shadow); }
.desk-sheet h3 { color: var(--plum); }
.form-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; }
label { display: grid; gap: .35rem; font-size: .83rem; font-weight: 800; }
input, select, textarea { width: 100%; border: 1px solid #cfc6ca; border-radius: 0; padding: .72rem .8rem; background: #fffdf8; color: var(--ink); }
textarea { min-height: 7rem; resize: vertical; }
.form-full { grid-column: 1 / -1; }
.calc-output { display: grid; grid-template-columns: repeat(4, 1fr); gap: .5rem; margin-top: 1.25rem; }
.calc-output div { padding: .75rem; background: #f4ebf1; border-top: 3px solid var(--pink); }
.calc-output dt { font-size: .72rem; font-weight: 800; text-transform: uppercase; }
.calc-output dd { margin: .2rem 0 0; color: var(--plum); font-family: var(--display); font-size: 1.4rem; font-weight: 900; }
.form-status { min-height: 1.4em; margin: .8rem 0 0; color: var(--plum); font-weight: 800; }
.standards { padding: clamp(4rem, 8vw, 7rem) 0; background: #fff; }
.standards-list { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1px; border: 1px solid var(--line); background: var(--line); }
.standard { padding: 1.7rem; background: #fff; }
.standard:nth-child(3n + 1) { border-top: 5px solid var(--pink); }
.standard:nth-child(3n + 2) { border-top: 5px solid var(--cyan); }
.standard:nth-child(3n) { border-top: 5px solid var(--orange); }
.standard h3 { font-size: 1.25rem; color: var(--plum); }
.standard p { margin-bottom: 0; color: var(--muted); }
.cta-band { padding: clamp(4rem, 8vw, 6rem) 0; background: var(--gold); color: var(--plum-deep); }
.cta-grid { display: flex; align-items: center; justify-content: space-between; gap: 2rem; }
.cta-grid h2 { margin-bottom: .6rem; }
.cta-grid p { margin-bottom: 0; max-width: 55ch; }

/* Inner-page shell used by the school, nursery and parents routes. */
.page-hero { padding: 12rem 0 4rem; background: linear-gradient(135deg, var(--plum), var(--violet)); color: #fff; }
.page-hero h1 { max-width: 12ch; margin-bottom: 1rem; }
.page-hero p { max-width: 60ch; font-size: 1.1rem; }
.page-main { padding: clamp(4rem, 8vw, 7rem) 0; }
.two-col { display: grid; grid-template-columns: 1fr 1fr; gap: 3rem; align-items: start; }
.paper-card { padding: 2rem; border: 1px solid var(--line); background: #fff; box-shadow: 0 10px 30px rgba(58,18,62,.08); }
.paper-card h2, .paper-card h3 { color: var(--plum); }
.value-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.value-card { padding: 1.5rem; min-height: 12rem; background: var(--mist); border-top: 7px solid var(--pink); }
.value-card:nth-child(2) { border-top-color: var(--cyan); }
.value-card:nth-child(3) { border-top-color: var(--lime); }
.value-card h3 { color: var(--plum); }
.info-table { width: 100%; border-collapse: collapse; }
.info-table th, .info-table td { padding: 1rem .75rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.info-table th { width: 32%; color: var(--plum); }
.accordion { border-top: 2px solid var(--plum); }
.accordion details { border-bottom: 1px solid var(--line); padding: 1rem 0; }
.accordion summary { cursor: pointer; font-family: var(--display); font-weight: 800; color: var(--plum); }
.link-index { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; }
.link-index a { display: flex; justify-content: space-between; gap: 1rem; padding: .85rem 1rem; border-bottom: 1px solid var(--line); color: var(--plum); font-weight: 800; text-decoration: none; }
.link-index a::after { content: "↗"; color: var(--pink); }

.site-footer { padding: 0; background: var(--plum-deep); color: #fff; }
.footer-contact { padding: 3.5rem 0; background: linear-gradient(135deg, rgba(107,50,115,.95), rgba(58,18,62,.96)), url("media/book-2.webp") center / cover; }
.footer-contact-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 2rem; text-align: center; }
.footer-contact-item { display: grid; gap: .45rem; justify-items: center; }
.footer-icon { display: grid; place-items: center; width: 3rem; height: 3rem; border: 2px solid var(--gold); border-radius: 50%; color: var(--gold); font-size: 1.35rem; }
.footer-contact-item strong { font-size: 1.05rem; }
.footer-lower { padding: 2.5rem 0 1.5rem; }
.footer-cols { display: grid; grid-template-columns: 1.2fr repeat(4, 1fr); gap: 1.5rem; }
.footer-cols h3 { color: var(--gold); font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; }
.footer-cols a { display: block; margin: .35rem 0; color: rgba(255,255,255,.78); font-size: .82rem; text-decoration: none; }
.footer-cols a:hover, .footer-cols a:focus-visible { color: #fff; }
.footer-truth { margin: 2rem 0 0; padding-top: 1rem; border-top: 1px solid rgba(255,255,255,.2); color: rgba(255,255,255,.66); font-size: .76rem; }
.footer-build, .footer-maker { margin: .35rem 0 0; font-size: .78rem; }
.footer-build { color: var(--gold); font-weight: 900; }
.footer-maker { color: rgba(255,255,255,.72); }

@keyframes ml-nest-reveal { from { opacity: 0; clip-path: inset(0 0 18% 0 round 22px); transform: translateY(18px) rotate(.45deg); } to { opacity: 1; clip-path: inset(0 round 22px); transform: none; } }
.reveal { animation: ml-nest-reveal .8s cubic-bezier(.2,.75,.25,1) both; }
.reveal:nth-child(2) { animation-delay: .08s; }
.reveal:nth-child(3) { animation-delay: .16s; }
.scroll-orbit { animation: orbit 18s linear infinite; transform-origin: center; }
@keyframes rise-in { from { transform: translateY(18px); } to { transform: translateY(0); } }
@keyframes orbit { to { transform: rotate(360deg); } }
@keyframes float-mark { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-8px) rotate(2deg); } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; } .reveal { clip-path: none !important; transform: none !important; animation: none !important; } }

@media (max-width: 980px) {
  .main-nav { align-items: center; }
  .header-cta { display: none; }
  .nav-disclosure { flex: none; }
  .nav-disclosure summary { display: inline-flex; padding: .55rem .8rem; border: 1px solid rgba(255,255,255,.65); cursor: pointer; font-weight: 850; }
  .primary-nav { position: absolute; top: 100%; right: 1.25rem; left: 1.25rem; display: grid; grid-template-columns: 1fr; padding: .75rem; border-top: 0; background: var(--paper); box-shadow: var(--shadow); }
  .primary-nav a, .primary-nav summary { color: var(--plum); }
  .primary-nav a:first-child { border-top: 0; border-left: 4px solid var(--gold); }
  .nav-menu { position: static; display: grid; grid-template-columns: 1fr 1fr; min-width: 0; box-shadow: none; background: #f4ebf1; }
  .school-hero-inner { grid-template-columns: 1fr; padding-top: 12rem; }
  .hero-quote { max-width: 30rem; }
  .phase-grid { grid-template-columns: repeat(4, 1fr); }
  .phase-card:nth-child(n) { grid-column: span 2; }
  .footer-cols { grid-template-columns: repeat(3, 1fr); }
  .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
  .wrap, .main-nav, .school-hero-inner { width: min(100% - 1.4rem, var(--max)); }
  .utility-inner { padding: .3rem .7rem; }
  .utility-links { display: none; }
  .utility-contact { width: 100%; justify-content: space-between; font-size: .68rem; }
  .main-nav { padding-top: .8rem; }
  .wordmark-name { font-size: 1.05rem; }
  .wordmark-sub { font-size: .5rem; }
  .logo-badge { width: 2.55rem; height: 2.55rem; }
  .brand-mark { width: 2.4rem; height: 2.4rem; }
  .school-hero { min-height: 760px; }
  .school-hero-inner { gap: 1.2rem; padding-top: 10rem; padding-bottom: 7rem; }
  .school-hero h1 { font-size: clamp(2.7rem, 14vw, 4.5rem); }
  .hero-intro { font-size: 1rem; }
  .hero-quote { width: 100%; max-width: none; padding: 2.8rem 1.35rem 1.5rem; }
  .hero-quote blockquote { font-size: 1.45rem; }
  .hero-tabs { justify-content: flex-start; overflow-x: auto; }
  .hero-tabs a { flex: none; font-size: .73rem; }
  .side-tab { display: none; }
  .welcome-grid, .events-grid, .desk-grid, .two-col, .section-intro { grid-template-columns: 1fr; gap: 1.5rem; }
  .welcome-mark { justify-self: start; width: 8rem; order: -1; }
  .phase-grid { grid-template-columns: repeat(2, 1fr); }
  .phase-card:nth-child(n) { grid-column: span 1; min-height: 5.2rem; font-size: .83rem; }
  .event-row { grid-template-columns: 5.3rem 1fr; }
  .notice-card img { width: 38%; }
  .form-grid, .calc-output, .value-grid, .standards-list, .link-index { grid-template-columns: 1fr; }
  .calc-output { gap: .6rem; }
  .cta-grid { align-items: flex-start; flex-direction: column; }
  .page-hero { padding: 10rem 0 3rem; }
  .page-hero h1 { font-size: 3rem; }
  .footer-contact-grid, .footer-cols { grid-template-columns: 1fr; text-align: left; }
  .footer-contact-item { justify-items: start; }
  .footer-brand { grid-column: auto; }
}

/* Accessibility palette hooks — preserve the nursery's token roles under reader preference. */
html[data-a11y-contrast="high"] {
  --plum: #000; --plum-deep: #000; --violet: #000; --pink: #000;
  --cyan: #000; --orange: #000; --lime: #000; --gold: #000; --ink: #000;
  --muted: #333; --paper: #fff; --mist: #fff; --line: #000;
}
html[data-a11y-colour="safe"] {
  --plum: #23282a; --plum-deep: #16191a; --violet: #3a4245;
  --pink: #0072b2; --cyan: #0072b2; --orange: #e69f00; --lime: #e69f00; --gold: #e69f00;
}
/* S301 parity pass — make the school reference's parent-facing quick links explicit before
   the illustrated hero, while leaving the existing useful-links utility bar intact. */
.school-quick-rail { display:flex; align-items:center; justify-content:center; flex-wrap:wrap; gap:0; background:var(--plum-deep); color:#fff7ed; border-bottom:3px solid var(--gold); }
.school-quick-rail a, .school-quick-rail > span { padding:.55rem .82rem; border-right:1px solid rgba(255,255,255,.16); font-size:.62rem; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.school-quick-rail__label { color:var(--lime); }
.school-quick-rail a { color:#ffe2f0; text-decoration:underline; text-underline-offset:.18em; }
@media (max-width:700px) { .school-quick-rail { justify-content:flex-start; overflow-x:auto; flex-wrap:nowrap; scrollbar-width:none; } .school-quick-rail::-webkit-scrollbar { display:none; } .school-quick-rail a, .school-quick-rail > span { flex:none; padding:.55rem .62rem; font-size:.53rem; } }
/* S301 parity repair — give the family visit action a visible, child-safe shape motif. */
.school-visit-rail { display:flex; align-items:center; gap:.7rem; padding:.55rem clamp(1rem,4vw,4rem); background:#5a2e88; color:#fff; }
.school-visit-rail__shape { display:grid; width:1.6rem; height:1.6rem; place-items:center; color:#5a2e88; background:#f4c85b; font-size:1rem; transform:rotate(12deg); }
.school-visit-rail span:not(.school-visit-rail__shape) { font-size:.62rem; letter-spacing:.04em; }
.school-visit-rail span strong { margin-right:.35rem; color:#f4c85b; font-size:.58rem; letter-spacing:.12em; }
.school-visit-rail a { margin-left:auto; color:#fff; font-size:.64rem; font-weight:900; letter-spacing:.08em; text-decoration:underline; text-transform:uppercase; }
/* Keep the mapped school opening clean: the reference places one short mission cue over the
   hero, rather than stacking several utility rows on top of the logo at phone width. */
.utility-bar { display:none; }
.school-visit-rail { position:absolute; top:3.8rem; right:clamp(1.5rem,7vw,7rem); z-index:21; width:auto; padding:.55rem 1.2rem; background:var(--gold); color:var(--plum-deep); clip-path:polygon(5% 0,100% 0,94% 100%,0 100%); }
.school-visit-rail__shape { display:none; }
.school-visit-rail span:not(.school-visit-rail__shape) { color:var(--plum-deep); }
.school-visit-rail span strong { color:var(--plum-deep); }
.school-visit-rail a { color:var(--plum-deep); }
@media (max-width:680px) { .school-visit-rail { display:none; } }

/* S301 opening-parity repair — the school hero needs a child-scale learning image role,
   not only a quote card. The collage is representative and never presented as pupil proof. */
.school-hero { isolation:isolate; }
.school-hero-collage { position:absolute; right:clamp(1rem,7vw,7rem); top:14%; z-index:1; display:flex; gap:.7rem; align-items:flex-start; transform:rotate(3deg); pointer-events:none; }
.school-hero-collage figure { width:clamp(6rem,10vw,9rem); padding:.35rem .35rem .55rem; background:#fff7ed; box-shadow:.55rem .7rem 1.4rem rgba(35,10,44,.28); color:#5a235f; }
.school-hero-collage figure:nth-child(2) { margin-top:2.3rem; transform:rotate(-8deg); }
.school-hero-collage img { display:block; width:100%; height:clamp(5rem,8vw,7.5rem); object-fit:cover; }
.school-hero-collage figcaption { margin-top:.35rem; font-size:.48rem; font-weight:900; letter-spacing:.12em; }
@media (max-width:900px) { .school-hero-collage { right:1.2rem; top:12%; opacity:.92; } }
@media (max-width:680px) {
  .school-hero { background-position:38% center; }
  .school-hero-collage { top:4.8rem; right:.45rem; transform:scale(.52) rotate(3deg); transform-origin:top right; }
  .school-hero-collage figure { width:7.1rem; }
}
/* S301 parity closeout — the reference's first frame is carried by a large, child-scale
   colour-star field behind the portrait/collage. This is an authored abstract device, not a
   borrowed school mark or a claim about a real pupil. */
.school-hero::after { position:absolute; right:clamp(7%, 12vw, 14rem); top:31%; z-index:0; width:clamp(15rem, 28vw, 27rem); aspect-ratio:1; background:conic-gradient(from 8deg, #f2b331 0 13%, #ec4c8b 13% 27%, #f4d64d 27% 40%, #8f3b92 40% 55%, #f26e35 55% 69%, #f2b331 69% 82%, #ec4c8b 82% 100%); clip-path:polygon(50% 0,61% 35%,98% 22%,68% 50%,100% 71%,63% 65%,56% 100%,44% 67%,10% 86%,33% 54%,0 30%,39% 35%); opacity:.74; mix-blend-mode:screen; content:""; transform:rotate(-8deg); }
@media (max-width:900px) { .school-hero::after { right:4%; top:30%; width:18rem; opacity:.64; } }
@media (max-width:680px) { .school-hero::after { right:-2.8rem; top:36%; width:9.5rem; opacity:.58; } }

/* S301 reference-detail closeout — retain the school reference's small bottom-left consent
   surface, labelled as a local preview and dismissible without storing anything. */
.meadowlark-preview-cookie { position:fixed; left:1.2rem; bottom:1.2rem; z-index:45; width:min(23rem,calc(100% - 2.4rem)); padding:1rem 1.1rem; color:var(--ink); background:#fff; border:1px solid rgba(35,10,44,.12); box-shadow:0 1rem 2.5rem rgba(35,10,44,.2); transition:opacity .22s ease, transform .22s ease; }
.meadowlark-preview-cookie.is-dismissed { opacity:0; transform:translateY(120%); pointer-events:none; }
.meadowlark-preview-cookie h2 { color:var(--plum); font-size:1rem; }
.meadowlark-preview-cookie p { margin-top:.35rem; color:rgba(35,10,44,.72); font-size:.68rem; line-height:1.4; }
.meadowlark-cookie-actions { display:flex; gap:.45rem; margin-top:.75rem; }
.meadowlark-cookie-actions button { flex:1; min-height:2.2rem; border:1px solid var(--plum); color:var(--plum); background:#fff; font-size:.62rem; font-weight:900; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
.meadowlark-cookie-actions button:last-child { color:var(--plum-deep); background:var(--gold); border-color:var(--gold); }
@media (max-width:680px) { .meadowlark-preview-cookie { left:.7rem; right:.7rem; bottom:.7rem; width:auto; } }

/* S301 judge correction — keep the children-playing hero as the opening focal point. The
   authored star remains a background cue, the representative collage sits below the quote,
   and the mobile privacy notice follows the hero instead of covering its proof continuation. */
.school-hero-inner { z-index: 2; }
.school-hero::after { z-index: 0; opacity: .42; transform: rotate(-8deg) scale(.9); }
.school-hero-collage { z-index: 0; opacity: .72; }
.hero-quote { z-index: 1; }
@media (max-width:680px) {
  .school-hero::after { right: -3.8rem; top: 35%; width: 8.5rem; opacity: .34; }
  .school-hero-collage { z-index: 0; opacity: .58; }
  .meadowlark-preview-cookie { position: static; width: min(calc(100% - 1.4rem), 30rem); margin: .8rem auto 0; }
}

/* S301 nav occlusion repair — keep the family visit strip below the 84px desktop header so
   its label and action remain fully readable while the hero stays image-led underneath. */
@media (min-width:681px) {
  .school-visit-rail { top:5.25rem; }
}
