.page-hero {
  position: relative;
  min-height: 410px;
  overflow: hidden;
  background: var(--sky);
}
.page-hero > img { position: absolute; inset: 0; height: 100%; object-fit: cover; }
.page-hero-scrim { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(255,255,255,.98) 0, rgba(255,255,255,.9) 22%, rgba(255,255,255,.22) 49%, transparent 62%); }
.page-hero-copy { position: relative; z-index: 2; display: flex; min-height: 410px; padding-block: 3rem; flex-direction: column; align-items: flex-start; justify-content: center; }
.page-hero-copy h1 { max-width: 700px; margin: 0; color: var(--blue); font-size: clamp(2.75rem, 5vw, 4.75rem); font-weight: 600; line-height: 1; overflow-wrap: anywhere; }
.page-hero-copy > p:last-child { max-width: 560px; margin: 1.2rem 0 0; color: var(--ink); font-size: 1.15rem; }
.page-hero--task,
.page-hero--task .page-hero-copy { min-height: 380px; }
.page-hero--reference,
.page-hero--reference .page-hero-copy { min-height: 330px; }
.page-hero--reference .page-hero-copy h1 { font-size: clamp(2.65rem, 4.5vw, 4.25rem); }
.topic-hero { padding: clamp(4rem, 8vw, 7rem) 0; border-bottom: 1px solid var(--line); background: var(--sky); }
.topic-hero-layout { display: grid; grid-template-columns: minmax(0, 1.35fr) minmax(280px, .65fr); gap: clamp(2.5rem, 7vw, 7rem); align-items: center; }
.topic-hero-copy { display: grid; align-content: center; }
.topic-hero h1 { max-width: 760px; margin: 0; color: var(--blue); font-size: clamp(3rem, 5.5vw, 5.75rem); font-weight: 600; line-height: .95; }
.topic-hero-copy > p:last-child { max-width: 680px; margin: 1.4rem 0 0; color: var(--muted); font-size: 1.15rem; }
.topic-hero figure { width:var(--midway-image-width,100%); aspect-ratio:4 / 3; margin:0 auto; overflow:hidden; background:var(--white); }
.topic-hero figure img { width:100%; height:100%; object-fit:cover; object-position:var(--midway-image-focus-x,50%) var(--midway-image-focus-y,50%); transform:scale(var(--midway-image-zoom,1)); transform-origin:var(--midway-image-focus-x,50%) var(--midway-image-focus-y,50%); }
.topic-hero figure.is-contain { overflow: visible; background: transparent; }
.topic-hero figure.is-contain img { object-fit: contain; }
.topic-hero figure.is-cutout,.editorial-story figure.is-cutout,.grade-band-intro figure.is-cutout { overflow:visible; background:transparent; }
.topic-hero figure.is-cutout img,.editorial-story figure.is-cutout img,.grade-band-intro figure.is-cutout img { object-fit:contain; filter:drop-shadow(10px 10px 0 rgba(0,104,255,.32)); }
@media (max-width:680px) {
  .topic-hero figure.is-cutout,.editorial-story figure.is-cutout,.grade-band-intro figure.is-cutout { width:100%; max-width:100%; }
}
.page-section { padding: 4.25rem 0; background: var(--white); }
.page-section:nth-of-type(odd) { background: var(--mist); }
.section-heading { max-width: 820px; margin-bottom: 2rem; }
.section-heading h2 { margin: 0; color: var(--blue); font-size: clamp(2rem, 3.5vw, 3.5rem); font-weight: 600; line-height: 1.05; overflow-wrap: anywhere; }
.section-intro { max-width: 680px; margin: -1rem 0 2rem; color: var(--muted); font-size: 1.05rem; }
.split-story { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, .6fr); gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.split-story > div > p:not(.eyebrow) { max-width: 720px; color: var(--muted); font-size: 1.08rem; }
.split-story dl { margin: 0; border-top: 1px solid var(--line); }
.split-story dl div { display: grid; padding: 1rem 0; grid-template-columns: 1fr 1.4fr; border-bottom: 1px solid var(--line); gap: 1rem; }
.split-story dt { color: var(--muted); font-size: .8rem; font-weight: 600; text-transform: uppercase; }
.split-story dd { margin: 0; font-weight: 600; }
.statement-section .wrap { display: grid; grid-template-columns: minmax(240px, .55fr) minmax(0, 1.45fr); gap: clamp(2rem, 6vw, 6rem); }
.statement-copy { max-width: 900px; margin: 0; color: var(--ink); font-size: clamp(1.45rem, 2.5vw, 2.25rem); line-height: 1.35; }
.link-list { border-top: 1px solid var(--line); }
.link-list > a { display: flex; min-height: 96px; padding: 1rem 0; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--line); gap: 2rem; text-decoration: none; }
.link-list > a:hover,
.link-list > a:focus-visible { background: var(--sky); }
.link-list span { display: grid; min-width: 0; }
.link-list strong { color: var(--ink); font-size: 1.25rem; font-weight: 600; }
.link-list small { color: var(--muted); font-size: .95rem; }
.link-list b { font-size: 1.7rem; font-weight: 400; }
.feature-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.feature-grid > a {
  display: flex;
  min-height: 150px;
  padding: 1.6rem;
  align-items: flex-end;
  justify-content: space-between;
  border-right: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
  gap: 1.5rem;
  color: var(--ink);
  background: var(--white);
  text-decoration: none;
}
.feature-grid > a:hover,
.feature-grid > a:focus-visible { background: var(--sky); }
.feature-grid span { display: grid; gap: .25rem; }
.feature-grid strong { color: var(--blue); font-size: 1.4rem; font-weight: 600; }
.feature-grid small { max-width: 36ch; color: var(--muted); font-size: .95rem; }
.feature-grid b { color: var(--blue); font-size: 1.5rem; font-weight: 400; }
.icon-link-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.icon-link-grid > a { display: grid; min-height: 188px; padding: 1.5rem; grid-template-columns: 40px minmax(0, 1fr) auto; align-content: start; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); gap: 1rem; color: var(--ink); background: var(--white); text-decoration: none; }
.icon-link-grid > a.is-no-icon { grid-template-columns: minmax(0, 1fr); }
.icon-link-grid > a:hover,
.icon-link-grid > a:focus-visible { background: var(--sky); }
.icon-link-grid img { width: 34px; height: 34px; object-fit: contain; }
.icon-link-grid span { display: grid; gap: .35rem; }
.icon-link-grid strong { color: var(--blue); font-size: 1.18rem; font-weight: 600; }
.icon-link-grid small { color: var(--muted); font-size: .92rem; line-height: 1.45; }
.icon-link-grid b { color: var(--blue); font-size: 1.25rem; font-weight: 400; }
.image-link-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.image-link { min-width: 0; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); color: var(--ink); background: var(--white); text-decoration: none; }
.image-link figure { aspect-ratio: 4 / 3; margin: 0; overflow: hidden; background: var(--sky); }
.image-link figure img { height: 100%; object-fit: cover; transition: transform 220ms ease; }
.image-link > span { position: relative; display: grid; min-height: 144px; padding: 1.35rem 3rem 1.35rem 1.35rem; align-content: start; gap: .35rem; }
.image-link strong { color: var(--blue); font-size: 1.35rem; font-weight: 600; }
.image-link small { color: var(--muted); font-size: .95rem; }
.image-link b { position: absolute; top: 1.35rem; right: 1.35rem; color: var(--blue); font-size: 1.4rem; font-weight: 400; }
.image-link:hover > span,
.image-link:focus-visible > span { background: var(--sky); }
.image-link:hover figure img,
.image-link:focus-visible figure img { transform: scale(1.025); }
.quote-section { padding: 0; }
.quote-pair { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
.quote-pair article { min-height: 430px; padding: clamp(3rem, 7vw, 7rem); }
.quote-pair article:first-child { color: var(--white); background: var(--blue); }
.quote-pair article:last-child { background: var(--sky); }
.quote-pair article:first-child .eyebrow,
.quote-pair article:first-child h2,
.quote-pair article:first-child > p:last-child { color: var(--white); }
.quote-pair h2 { max-width: 650px; margin: 0 0 1.5rem; color: var(--blue); font-size: clamp(2.2rem, 4vw, 4rem); font-weight: 600; line-height: 1.04; }
.quote-pair article > p:last-child { max-width: 62ch; margin: 0; color: var(--ink); font-size: clamp(1.05rem, 1.5vw, 1.3rem); line-height: 1.55; }
.program-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.program-list article { min-height: 210px; padding: 2rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.program-list h3 { margin: 0 0 .8rem; color: var(--blue); font-size: 1.55rem; font-weight: 600; }
.program-list p { margin: 0; font-weight: 600; }
.program-list small { display: block; margin-top: .75rem; color: var(--muted); font-size: .9rem; }
.principles-section { background: var(--white) !important; }
.principles-section .wrap { display: grid; grid-template-columns: minmax(260px, .7fr) minmax(0, 1.3fr); gap: clamp(3rem, 8vw, 8rem); }
.principles-heading { position: sticky; top: 8rem; align-self: start; }
.principles-heading .section-intro { margin: 0; }
.principle-list { border-top: 1px solid var(--line); }
.principle-list article { display: grid; min-height: 128px; padding: 1.3rem 0; grid-template-columns: 58px minmax(0, 1fr); border-bottom: 1px solid var(--line); align-items: start; gap: 1.25rem; }
.principle-list article > span { color: var(--blue); font-size: .82rem; font-weight: 600; }
.principle-list h3 { margin: 0 0 .4rem; color: var(--ink); font-size: 1.4rem; font-weight: 600; }
.principle-list p { max-width: 62ch; margin: 0; color: var(--muted); }
.grade-tabs {
  display: flex;
  width: fit-content;
  margin-bottom: 2rem;
  border: 1px solid var(--line);
  background: var(--white);
}
.grade-tabs button {
  min-height: 52px;
  padding: .75rem 1.25rem;
  border: 0;
  border-right: 1px solid var(--line);
  color: var(--muted);
  background: transparent;
  font: inherit;
  font-weight: 600;
  cursor: pointer;
}
.grade-tabs button:last-child { border-right: 0; }
.grade-tabs button[aria-selected="true"] { color: var(--white); background: var(--blue); }
.grade-tabs button:focus-visible { outline-offset: 3px; }
.grade-panel > p { max-width: 720px; margin: 0 0 2rem; color: var(--muted); font-size: 1.05rem; }
.step-list { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(4, minmax(0, 1fr)); list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.step-list li { min-height: 250px; padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.step-list li > b { color: var(--blue); font-size: 3rem; font-weight: 500; }
.step-list h3 { margin: 1rem 0 .5rem; font-size: 1.25rem; font-weight: 600; }
.step-list p { margin: 0; color: var(--muted); }
.job-board-section { background: var(--white) !important; }
.job-list { border-top: 1px solid var(--line); }
.job-list details { border-bottom: 1px solid var(--line); }
.job-list summary { display: grid; min-height: 108px; padding: 1.25rem 0; grid-template-columns: minmax(0, 1fr) 42px; align-items: center; cursor: pointer; list-style: none; }
.job-list summary::-webkit-details-marker { display: none; }
.job-list summary span { display: grid; }
.job-list summary small { margin-bottom: .35rem; color: var(--blue); font-size: .78rem; font-weight: 600; text-transform: uppercase; }
.job-list summary strong { color: var(--ink); font-size: clamp(1.35rem, 2.5vw, 2rem); font-weight: 600; }
.job-list summary b { position: relative; width: 34px; height: 34px; }
.job-list summary b::before,
.job-list summary b::after { position: absolute; top: 50%; left: 50%; width: 20px; height: 2px; background: var(--blue); content: ""; transform: translate(-50%, -50%); }
.job-list summary b::after { transform: translate(-50%, -50%) rotate(90deg); transition: transform 160ms ease; }
.job-list details[open] summary b::after { transform: translate(-50%, -50%) rotate(0); }
.job-detail { display: grid; padding: .5rem 0 2rem; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; gap: 2rem; align-items: start; }
.job-detail h3 { margin: 0 0 .5rem; font-size: 1rem; font-weight: 600; }
.job-detail p, .job-detail ul { margin: 0; color: var(--muted); }
.job-detail ul { padding-left: 1.2rem; }
.job-detail .button { align-self: end; }
.people-list { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.people-list article { display: grid; min-height: 120px; padding: 1.25rem; grid-template-columns: 56px 1fr; align-items: center; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); gap: 1rem; }
.people-list article > span { display: grid; width: 56px; height: 56px; place-items: center; color: var(--blue); background: var(--sky); font-weight: 600; }
.people-list h3 { margin: 0; font-size: 1.08rem; font-weight: 600; }
.people-list p { margin: .15rem 0 0; color: var(--muted); font-size: .9rem; }
.staff-tools { display: flex; margin-bottom: 1.25rem; align-items: center; justify-content: space-between; gap: 1.5rem; }
.staff-filters { display: flex; flex-wrap: wrap; gap: .5rem; }
.staff-filters button {
  min-height: 44px;
  padding: .6rem .9rem;
  border: 1px solid var(--line);
  color: var(--ink);
  background: var(--white);
  font: inherit;
  font-size: .88rem;
  font-weight: 600;
  cursor: pointer;
}
.staff-filters button:hover,
.staff-filters button:focus-visible { border-color: var(--blue); color: var(--blue); }
.staff-filters button[aria-pressed="true"] { border-color: var(--blue); color: var(--white); background: var(--blue); }
.staff-count { margin: 0; flex: 0 0 auto; color: var(--muted); font-size: .9rem; }
.staff-directory article[hidden] { display: none; }
.quick-fact-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  border-top: 1px solid var(--line);
  border-left: 1px solid var(--line);
}
.quick-fact-list article { min-height: 160px; padding: 1.5rem; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--white); }
.quick-fact-list h3 { margin: 0 0 .5rem; color: var(--blue); font-size: 1.25rem; font-weight: 600; }
.quick-fact-list p { max-width: 52ch; margin: 0; color: var(--muted); }
.transport-contact-section { color: var(--white); background: var(--blue) !important; }
.transport-contact-section .wrap { display: grid; grid-template-columns: minmax(240px, .72fr) minmax(0, 1.28fr); gap: clamp(2.5rem, 7vw, 7rem); }
.transport-contact-intro .eyebrow,
.transport-contact-intro h2,
.transport-contact-intro > p { color: var(--white); }
.transport-contact-intro > p { max-width: 48ch; margin: 0; font-size: 1.05rem; }
.transport-contact-list { border-top: 1px solid rgba(255,255,255,.55); }
.transport-contact-list a { display: grid; min-height: 132px; padding: 1.25rem 0; grid-template-columns: minmax(0, 1fr) auto; align-items: center; border-bottom: 1px solid rgba(255,255,255,.55); gap: 1.5rem; color: var(--white); text-decoration: none; }
.transport-contact-list span { display: grid; }
.transport-contact-list small { font-size: .8rem; font-weight: 600; text-transform: uppercase; }
.transport-contact-list strong { margin-top: .15rem; font-size: clamp(1.65rem, 3vw, 2.35rem); font-weight: 600; }
.transport-contact-list p { margin: .3rem 0 0; color: var(--white); }
.transport-contact-list b { font-weight: 600; transition: transform 160ms ease; }
.transport-contact-list a:hover b,
.transport-contact-list a:focus-visible b { transform: translateX(4px); }
.route-guide-list { display: grid; margin: 0; padding: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; border-top: 1px solid var(--line); border-left: 1px solid var(--line); }
.route-guide-list li { display: grid; min-height: 170px; padding: 1.5rem; grid-template-columns: 46px minmax(0, 1fr); border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); gap: 1rem; background: var(--white); }
.route-guide-list li > span { display: grid; width: 40px; height: 40px; place-items: center; color: var(--white); background: var(--blue); font-weight: 600; }
.route-guide-list h3 { margin: 0 0 .45rem; color: var(--blue); font-size: 1.25rem; font-weight: 600; }
.route-guide-list p { margin: 0; color: var(--muted); }
.fact-band { background: var(--white) !important; }
.fact-layout { display: grid; grid-template-columns: minmax(240px, .7fr) minmax(0, 1.3fr); align-items: start; gap: clamp(2.5rem, 7vw, 7rem); }
.fact-layout .section-heading { margin-bottom: 1rem; }
.fact-layout .section-intro { margin: 0; }
.fact-table-wrap { border-top: 2px solid var(--blue); }
.fact-table { width: 100%; border-collapse: collapse; font-size: 1rem; }
.fact-table th,
.fact-table td { padding: 1.1rem 0; border-bottom: 1px solid var(--line); vertical-align: top; text-align: left; }
.fact-table th { width: 34%; padding-right: 1.5rem; color: var(--muted); font-size: .82rem; font-weight: 600; text-transform: uppercase; }
.fact-table td { color: var(--ink); font-weight: 500; }
.content-layout { display: grid; grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr); gap: clamp(2.5rem, 7vw, 7rem); }
.content-copy { max-width: 780px; color: var(--muted); font-size: 1.06rem; }
.content-copy > p:first-child { margin-top: 0; }
.content-bullets { display: grid; margin: 1.5rem 0 0; padding: 0; grid-template-columns: repeat(2, minmax(0, 1fr)); list-style: none; border-top: 1px solid var(--line); }
.content-bullets li { padding: .85rem .5rem .85rem 1.25rem; border-bottom: 1px solid var(--line); position: relative; color: var(--ink); }
.content-bullets li::before { position: absolute; left: 0; content: "\2022"; color: var(--blue); }
.inline-actions { display: flex; margin-top: 1.5rem; gap: 1rem; }
.editorial-story { padding: 0; }
.editorial-story-layout { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr); align-items: stretch; }
.editorial-story figure { width:var(--midway-image-width,100%); min-height:520px; margin:0 auto; overflow:hidden; }
.editorial-story figure img { width:100%; height:100%; object-fit:cover; object-position:var(--midway-image-focus-x,50%) var(--midway-image-focus-y,50%); transform:scale(var(--midway-image-zoom,1)); transform-origin:var(--midway-image-focus-x,50%) var(--midway-image-focus-y,50%); }
.editorial-story-copy { display: flex; padding: clamp(3rem, 7vw, 7rem); flex-direction: column; justify-content: center; }
.editorial-story-copy .section-heading { margin-bottom: 1rem; }
.editorial-story-copy > p { max-width: 58ch; margin: 0 0 1rem; color: var(--muted); font-size: 1.06rem; }
.editorial-story-copy > .text-link { align-self: flex-start; margin-top: 1rem; }
.editorial-story.is-reversed figure { order: 2; }
.editorial-story.is-reversed .editorial-story-copy { order: 1; }
.action-callout { background: var(--sky-strong) !important; }
.action-callout .wrap { display: grid; grid-template-columns: minmax(0, 1.25fr) auto; align-items: center; gap: 2rem; }
.action-callout.has-icon .wrap { grid-template-columns: 72px minmax(0, 1.25fr) auto; }
.callout-icon { width:calc(64px * var(--midway-icon-scale,1)); height:calc(64px * var(--midway-icon-scale,1)); padding:.8rem; border:1px solid var(--blue); object-fit:contain; transform:translate(var(--midway-image-x,0),var(--midway-image-y,0)); }
.action-callout .section-heading { margin-bottom: .5rem; }
.action-callout p { max-width: 720px; margin: 0; color: var(--ink); }
.action-callout .contact-actions { align-items: center; }
.action-callout .text-link { color: var(--blue); }
.document-section { padding-block: 2.75rem; }
.document-section .section-heading { margin-bottom: 1rem; }
.document-section .section-heading h2 { font-size: 1.65rem; }
.document-table-wrap { overflow-x: auto; }
.document-table { width: 100%; border-collapse: collapse; text-align: left; }
.document-table th,
.document-table td { padding: .8rem 1rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
.document-table thead th { color: var(--white); background: var(--blue); font-size: .72rem; font-weight: 600; text-transform: uppercase; }
.document-table tbody th { width: 58%; font-weight: 500; }
.document-table tbody td { color: var(--muted); font-size: .9rem; }
.document-table a { display: flex; min-height: 44px; align-items: center; justify-content: space-between; gap: 1rem; color: var(--ink); text-decoration: none; }
.document-table a b { color: var(--blue); font-size: 1rem; font-weight: 400; }
.document-table a:hover,
.document-table a:focus-visible { color: var(--blue); }
.record-discovery { display: grid; grid-template-columns: minmax(16rem, 1fr) minmax(10rem, 14rem) auto; gap: 1rem; align-items: end; margin-bottom: 1rem; padding: 1rem; border: 1px solid var(--line); background: var(--sky); }
.record-search, .record-year { display: grid; gap: .35rem; color: var(--ink); font-weight: 600; }
.record-search input, .record-year select { width: 100%; min-height: 48px; padding: .65rem .8rem; border: 1px solid #9fb6ce; border-radius: 0; color: var(--ink); background: var(--white); font: inherit; }
.record-search input:focus, .record-year select:focus { outline: 3px solid rgba(0, 104, 255, .22); outline-offset: 1px; border-color: var(--blue); }
.record-clear { min-height: 48px; padding: .65rem 1rem; border: 1px solid var(--blue); color: var(--blue); background: var(--white); font: inherit; font-weight: 700; cursor: pointer; }
.record-filters { display: flex; margin-bottom: 1rem; flex-wrap: wrap; gap: .5rem; }
.record-filters button { min-height: 44px; padding: .55rem 1rem; border: 1px solid var(--line); color: var(--ink); background: var(--white); font: inherit; font-weight: 600; cursor: pointer; }
.record-filters button:hover,
.record-filters button:focus-visible { border-color: var(--blue); color: var(--blue); }
.record-filters button[aria-pressed="true"] { border-color: var(--blue); color: var(--white); background: var(--blue); }
.record-table-wrap { overflow-x: auto; }
.record-table { width: 100%; border-collapse: collapse; text-align: left; }
.record-table th, .record-table td { padding: 1rem .75rem; border-bottom: 1px solid var(--line); vertical-align: middle; }
.record-table thead th { color: var(--white); background: var(--blue); font-size: .75rem; font-weight: 600; text-transform: uppercase; }
.record-table tbody th { font-weight: 600; }
.record-table tbody td { color: var(--muted); }
.record-table a { white-space: nowrap; font-weight: 600; text-decoration: none; }
.record-count { margin: .75rem 0; color: var(--muted); font-size: .92rem; font-weight: 600; }
.record-table tr[hidden] { display: none; }
.record-no-results { margin-top: 1rem; padding: 1.4rem; border-left: 5px solid var(--blue); color: var(--ink); background: var(--sky); }
.record-no-results strong { font-size: 1.05rem; }
.record-no-results p { margin: .35rem 0 0; color: var(--muted); }
.empty-state { display: grid; min-height: 150px; padding: 2rem; align-content: center; border: 1px solid var(--line); color: var(--muted); background: var(--white); }
.empty-state span { margin-top: .35rem; }
.contact-band { color: var(--white); background: var(--blue) !important; }
.contact-band .wrap { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 3rem; }
.contact-band .eyebrow,
.contact-band h2,
.contact-band p { color: var(--white); }
.contact-band .section-heading { margin-bottom: .75rem; }
.contact-actions { display: flex; align-items: center; gap: 1.25rem; }
.contact-band .button { color: var(--blue); background: var(--white); }
.contact-band .text-link { color: var(--white); }
.form-layout { display: grid; grid-template-columns: minmax(240px, .6fr) minmax(0, 1.4fr); gap: clamp(2rem, 6vw, 6rem); }
.form-intro { align-self: start; padding: clamp(1.5rem, 3vw, 2.5rem); color: var(--white); background: var(--blue); }
.form-intro .eyebrow,
.form-intro h2,
.form-intro p { color: var(--white); }
.form-intro .section-heading { margin-bottom: .75rem; }
.form-intro p { margin-bottom: 0; }
.school-form { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.school-form label { display: grid; color: var(--ink); font-weight: 600; gap: .35rem; }
.field-label { display: inline-flex; align-items: baseline; gap: .2rem; }
.field-label b { color: var(--blue); font-weight: 600; }
.school-form input,
.school-form textarea { width: 100%; min-height: 50px; padding: .75rem; border: 1px solid var(--line); color: var(--ink); background: var(--white); font: inherit; }
.school-form textarea { resize: vertical; }
.full-field { grid-column: 1 / -1; }
.form-status { min-height: 1.5rem; margin: .75rem 0 0; color: var(--muted); }
.alert-panel { display: grid; grid-template-columns: 68px 1fr; align-items: center; border: 1px solid var(--blue); gap: 1.5rem; }
.alert-panel > span { display: grid; min-height: 130px; place-items: center; color: var(--white); background: var(--blue); font-size: 2rem; font-weight: 600; }
.alert-panel h2 { margin: 0; font-size: 1.5rem; font-weight: 600; }
.alert-panel p { margin: .35rem 1.5rem 0 0; color: var(--muted); }
.calendar-section { padding-top: 2.5rem; background: var(--white) !important; }
.calendar-page-heading { position: relative; display: grid; min-height: 220px; padding: 1.25rem 0 2.25rem 230px; align-items: end; }
.calendar-page-heading img { position: absolute; z-index: 2; bottom: -40px; left: 8px; width: 195px; max-height: 225px; object-fit: contain; object-position: bottom; }
.calendar-page-heading h1 { max-width: 800px; margin: 0; color: var(--blue); font-size: clamp(2.75rem, 5vw, 4.8rem); font-weight: 600; line-height: .95; }
.calendar-page-heading div > p:last-child { max-width: 700px; margin: 1rem 0 0; color: var(--muted); font-size: 1.05rem; }
.calendar-layout { position: relative; display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(280px, .45fr); border: 1px solid var(--line); }
.calendar-panel { min-width: 0; }
.calendar-panel header { display: flex; min-height: 72px; align-items: center; justify-content: space-between; border-bottom: 1px solid var(--blue); background: var(--blue); }
.calendar-panel header h2 { margin: 0; color: var(--white); font-size: 1.8rem; font-weight: 600; }
.calendar-panel header button { width: 60px; min-height: 60px; border: 0; color: var(--white); background: transparent; font-size: 2rem; cursor: pointer; }
.calendar-panel header button:hover,
.calendar-panel header button:focus-visible { background: rgba(255,255,255,.16); }
.calendar-weekdays,
.calendar-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.calendar-weekdays span { padding: .55rem; color: var(--muted); text-align: center; font-size: .72rem; font-weight: 600; text-transform: uppercase; }
.calendar-grid time,
.calendar-grid .outside,
.calendar-day { display: grid; min-height: 98px; padding: .6rem; place-items: start end; border: 0; border-top: 1px solid var(--line); border-left: 1px solid var(--line); color: var(--ink); background: var(--white); font: inherit; }
.calendar-grid time[aria-current="date"] { color: var(--white); background: var(--blue); font-weight: 600; }
.calendar-day { position: relative; cursor: pointer; }
.calendar-day:hover,
.calendar-day:focus-visible,
.calendar-day[aria-selected="true"] { color: var(--blue); background: var(--sky); }
.calendar-agenda { min-width: 0; padding: 1.6rem; border-left: 1px solid var(--line); }
.calendar-agenda > header { padding-bottom: 1rem; border-bottom: 1px solid var(--line); }
.calendar-agenda h2 { margin: 0; color: var(--ink); font-size: 1.55rem; font-weight: 600; }
.calendar-event-list { margin: 0; padding: 0; list-style: none; }
.calendar-event-list li { border-bottom: 1px solid var(--line); }
.calendar-event-list button { display: grid; width: 100%; min-height: 76px; padding: .65rem 0; grid-template-columns: 52px minmax(0, 1fr) 18px; align-items: center; border: 0; gap: .8rem; color: var(--ink); background: transparent; text-align: left; font: inherit; cursor: pointer; }
.calendar-event-list button > time { display: grid; width: 48px; min-height: 52px; place-content: center; color: var(--blue); background: var(--sky); text-align: center; line-height: 1; }
.calendar-event-list button time span { font-size: .7rem; font-weight: 600; text-transform: uppercase; }
.calendar-event-list button time b { margin-top: .2rem; font-size: 1.25rem; font-weight: 600; }
.calendar-event-list button > span:nth-child(2) { display: grid; min-width: 0; gap: .2rem; }
.calendar-event-list button strong { font-weight: 600; }
.calendar-event-list button > span:last-child { color: var(--blue); }
.event-category { display: inline-flex; width: fit-content; min-height: 22px; padding: .15rem .45rem; align-items: center; border: 1px solid var(--blue); color: var(--blue); background: var(--white); font-size: .7rem; font-weight: 600; line-height: 1.2; }
.calendar-event-list button:hover,
.calendar-event-list button:focus-visible,
.calendar-event-list button[aria-selected="true"] { color: var(--blue); background: var(--sky); }
.calendar-empty { padding: 1.25rem 0; color: var(--muted); }
.calendar-event-detail { padding-top: .75rem; background: var(--white); }
.calendar-event-detail:not([hidden]) { animation: calendar-detail-in 220ms cubic-bezier(.2, .75, .25, 1); }
.calendar-detail-actions { padding-bottom: .75rem; border-bottom: 1px solid var(--line); }
.calendar-detail-actions button { min-height: 44px; padding: .4rem 0; border: 0; color: var(--blue); background: transparent; font: inherit; font-weight: 600; cursor: pointer; }
.calendar-day-events article { padding: 1.1rem 0; border-bottom: 1px solid var(--line); }
.calendar-day-events h3 { margin: .45rem 0 .25rem; color: var(--blue); font-size: 1.35rem; font-weight: 600; }
.calendar-day-events p { margin: .25rem 0 0; color: var(--muted); }

@keyframes calendar-detail-in {
  from { opacity: .7; transform: translateY(8px); }
  to { opacity: 1; transform: translateY(0); }
}

@media (max-width: 960px) {
  .page-hero,
  .page-hero-copy { min-height: 390px; }
  .page-hero-scrim { background: linear-gradient(90deg, rgba(255,255,255,.96), rgba(255,255,255,.72) 54%, rgba(255,255,255,.08)); }
  .step-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .transport-contact-section .wrap { grid-template-columns: minmax(220px, .65fr) minmax(0, 1.35fr); gap: 3rem; }
  .people-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .icon-link-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .topic-hero-layout { grid-template-columns: minmax(0, 1.15fr) minmax(240px, .85fr); gap: 2.5rem; }
  .principles-section .wrap { grid-template-columns: minmax(220px, .55fr) minmax(0, 1fr); gap: 3rem; }
  .job-detail { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .job-detail .button { grid-column: 1 / -1; justify-self: start; }
  .calendar-layout { grid-template-columns: 1fr; }
  .calendar-agenda { border-top: 1px solid var(--line); border-left: 0; }
}

@media (max-width: 680px) {
  .page-hero,
  .page-hero-copy { min-height: 360px; }
  .page-hero-scrim { background: linear-gradient(90deg, rgba(255,255,255,.96), rgba(255,255,255,.78) 70%, rgba(255,255,255,.28)); }
  .page-hero-copy { padding-block: 3rem; }
  .page-hero-copy h1 { max-width: 95%; font-size: 2.75rem; }
  .page-hero-copy > p:last-child { max-width: 88%; font-size: 1rem; }
  .page-hero--reference,
  .page-hero--reference .page-hero-copy,
  .page-hero--task,
  .page-hero--task .page-hero-copy { min-height: 340px; }
  .page-section { padding: 3.5rem 0; }
  .topic-hero { padding: 3.5rem 0; }
  .topic-hero-layout { grid-template-columns: 1fr; gap: 1rem; }
  .topic-hero h1 { font-size: 3rem; }
  .topic-hero figure { aspect-ratio: 16 / 9; margin-top: 1.25rem; }
  .split-story,
  .statement-section .wrap,
  .fact-layout,
  .content-layout,
  .form-layout,
  .contact-band .wrap,
  .action-callout .wrap { grid-template-columns: 1fr; gap: 2rem; }
  .transport-contact-section .wrap { grid-template-columns: 1fr; gap: 2rem; }
  .route-guide-list { grid-template-columns: 1fr; }
  .action-callout.has-icon .wrap { grid-template-columns: 1fr; }
  .editorial-story-layout { grid-template-columns: 1fr; }
  .editorial-story figure { min-height: 320px; }
  .editorial-story-copy { padding: 3rem 1rem; }
  .editorial-story.is-reversed figure,
  .editorial-story.is-reversed .editorial-story-copy { order: initial; }
  .quote-pair { grid-template-columns: 1fr; }
  .quote-pair article { min-height: 0; padding: 3.5rem 1rem; }
  .image-link-grid { grid-template-columns: 1fr; }
  .image-link > span { min-height: 0; }
  .feature-grid,
  .quick-fact-list,
  .program-list,
  .step-list,
  .people-list { grid-template-columns: 1fr; }
  .principles-section .wrap { grid-template-columns: 1fr; gap: 1.5rem; }
  .principles-heading { position: static; }
  .principle-list article { min-height: 0; grid-template-columns: 42px minmax(0, 1fr); }
  .job-detail { grid-template-columns: 1fr; gap: 1.25rem; }
  .job-detail .button { grid-column: auto; }
  .job-list summary { min-height: 92px; }
  .feature-grid > a,
  .quick-fact-list article { min-height: 0; }
  .icon-link-grid { grid-template-columns: 1fr; }
  .icon-link-grid > a { min-height: 0; }
  .fact-table th { width: 42%; }
  .program-list article,
  .step-list li { min-height: 0; }
  .document-table th,
  .document-table td { padding-block: .7rem; }
  .staff-tools { align-items: flex-start; flex-direction: column; gap: .75rem; }
  .staff-filters { flex-wrap: nowrap; width: 100%; padding-bottom: .35rem; overflow-x: auto; }
  .staff-filters button { flex: 0 0 auto; }
  .content-bullets { grid-template-columns: 1fr; }
  .contact-actions { align-items: flex-start; flex-direction: column; }
  .school-form { grid-template-columns: 1fr; }
  .school-form .full-field { grid-column: auto; }
  .calendar-section { padding-top: 1.5rem; }
  .calendar-page-heading { min-height: 190px; padding: 1rem 0 1.75rem 132px; }
  .calendar-page-heading img { bottom: -22px; left: 0; width: 116px; max-height: 155px; }
  .calendar-page-heading h1 { font-size: 2.55rem; }
  .calendar-page-heading div > p:last-child { font-size: .95rem; }
  .calendar-panel header h2 { font-size: 1.4rem; }
  .calendar-panel header button { width: 48px; min-height: 48px; }
  .calendar-grid time,
  .calendar-grid .outside,
  .calendar-day { min-height: 48px; padding: .35rem; font-size: .78rem; }
  .calendar-weekdays span { padding-inline: .15rem; font-size: .62rem; }
  .record-filters { flex-wrap: nowrap; padding-bottom: .35rem; overflow-x: auto; }
  .record-filters button { flex: 0 0 auto; }
  .record-discovery { grid-template-columns: 1fr; }
  .record-clear { justify-self: start; }
  .record-table thead { position: absolute; clip: rect(0 0 0 0); clip-path: inset(50%); }
  .record-table, .record-table tbody, .record-table tr, .record-table th, .record-table td { display: block; width: 100%; }
  .record-table tr { padding: 1rem 0; border-bottom: 1px solid var(--line); }
  .record-table th, .record-table td { padding: .2rem 0; border: 0; }
  .record-table td[data-label]::before { margin-right: .35rem; color: var(--muted); content: attr(data-label) ":"; font-size: .72rem; font-weight: 600; text-transform: uppercase; }
}

/* Final-pass readability and compact, family-first interactions. */
.page-section { padding-block: clamp(3rem, 5vw, 4.5rem); }
.topic-hero { padding-block: clamp(3.5rem, 6vw, 5.5rem); }
.school-form select, .school-form input, .school-form textarea { width:100%; min-height:48px; border:1px solid var(--line); border-radius:0; padding:.7rem .8rem; color:var(--ink); background:var(--white); font:inherit; }
.school-form textarea { min-height:130px; }
.calendar-day { min-height:92px; padding:.45rem; overflow:hidden; }
.calendar-day-snippets { max-height:39px; }
.calendar-day-snippet { font-size:.63rem; }
.empty-state--blue { border:0; }
.empty-state--blue strong { color:var(--white); font-size:1.3rem; }
.empty-state--blue p { margin:.6rem 0 1rem; }
@media (max-width:680px) { .page-section { padding-block:2.75rem; } .calendar-day { min-height:72px; padding:.3rem; } .calendar-day-snippet { font-size:.55rem; } }

@media (prefers-reduced-motion: reduce) {
  .image-link figure img,
  .transport-contact-list b { transition: none; }
  .calendar-event-detail:not([hidden]) { animation: none; }
}

/* Final implementation baseline: compact pages, readable identifiers, and connected grade content. */
.page-section { padding-block:clamp(2.75rem, 4vw, 3.75rem); }
.principle-list article > span {
  display:grid;
  width:42px;
  height:42px;
  place-items:center;
  color:var(--white);
  background:var(--blue);
  font-size:1.25rem;
  font-weight:600;
}
.grade-band-intro {
  display:grid;
  margin-bottom:1.5rem;
  grid-template-columns:minmax(240px, .72fr) minmax(0, 1.28fr);
  align-items:stretch;
  border:1px solid var(--line);
  background:var(--sky);
}
.grade-band-intro figure { width:var(--midway-image-width,100%); min-height:240px; margin:0 auto; overflow:hidden; }
.grade-band-intro img { width:100%; height:100%; object-fit:cover; object-position:var(--midway-image-focus-x,50%) var(--midway-image-focus-y,50%); transform:scale(var(--midway-image-zoom,1)); transform-origin:var(--midway-image-focus-x,50%) var(--midway-image-focus-y,50%); }
.grade-band-intro > div { display:grid; padding:2rem; align-content:center; }
.grade-band-intro > div > p:last-child { max-width:58ch; margin:.5rem 0 0; color:var(--ink); font-size:1.08rem; }
.calendar-day-snippets {
  position:absolute;
  top:1.8rem;
  right:.35rem;
  left:.35rem;
  display:grid;
  max-height:48px;
  gap:.2rem;
  overflow:hidden;
}
.calendar-day-snippet {
  display:block;
  padding:.18rem .3rem;
  overflow:hidden;
  color:var(--ink);
  background:var(--sky);
  font-size:.65rem;
  font-weight:600;
  line-height:1.15;
  text-align:left;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.empty-state--blue {
  min-height:190px;
  padding:2.25rem;
  color:var(--white);
  background:var(--blue);
}
.empty-state--blue p { max-width:60ch; color:var(--white); }
.empty-state--blue .button { width:fit-content; color:var(--blue); background:var(--white); }
.school-form .form-section { margin:1.25rem 0 0; padding:1rem 0 .45rem; border-bottom:2px solid var(--blue); color:var(--ink); font-size:1.25rem; }
.school-form .form-checks { margin:0; padding:1rem; border:1px solid var(--line); }
.school-form .form-checks legend { padding:0 .35rem; color:var(--ink); font-weight:600; }
.school-form .form-checks > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.65rem 1rem; }
.school-form .form-checks label { display:flex; align-items:flex-start; gap:.55rem; font-weight:500; }
.school-form .form-checks input[type="checkbox"] { width:20px; min-width:20px; height:20px; min-height:20px; margin:.15rem 0 0; accent-color:var(--blue); }
.form-consent > label { display:flex; align-items:flex-start; gap:.75rem; font-weight:500; }
.school-form .form-consent input[type="checkbox"] { width:22px; min-width:22px; height:22px; min-height:22px; margin:.15rem 0 0; accent-color:var(--blue); }
body[data-page="academics"] .topic-hero,
body[data-page="board"] .topic-hero,
body[data-page="authorizer"] .topic-hero { padding-block:clamp(2.75rem, 4vw, 4rem); }
body[data-page="academics"] .page-section,
body[data-page="board"] .page-section,
body[data-page="authorizer"] .page-section { padding-block:clamp(2.5rem, 3.5vw, 3.35rem); }
body[data-page="contact"] .feature-grid > a { min-height:132px; }
@media (max-width:680px) {
  .grade-band-intro { grid-template-columns:1fr; }
  .grade-band-intro figure { min-height:210px; }
  .grade-band-intro > div { padding:1.4rem; }
  .calendar-day-snippets { top:1.45rem; right:.2rem; left:.2rem; }
  .calendar-day-snippet { padding:.12rem .2rem; font-size:.52rem; }
}

/* Outlook-style month grid: day and individual event controls are independently expandable. */
.calendar-day {
  position:relative;
  display:block;
  min-height:124px;
  padding:.45rem;
  overflow:hidden;
  background:#fbfdff;
  cursor:default;
}
.calendar-day-number {
  position:absolute;
  z-index:2;
  top:.35rem;
  right:.35rem;
  display:grid;
  width:30px;
  height:30px;
  padding:0;
  place-items:center;
  border:0;
  border-radius:50%;
  color:var(--ink);
  background:transparent;
  font:600 .82rem/1 var(--sans);
  cursor:pointer;
}
.calendar-day-number:hover,
.calendar-day-number:focus-visible,
.calendar-day-number[aria-selected="true"] { color:var(--white); background:var(--blue); }
.calendar-day-number[aria-current="date"] { box-shadow:inset 0 0 0 2px var(--blue); }
.calendar-day-number[aria-current="date"]:not([aria-selected="true"]) { color:var(--blue); background:var(--white); }
.calendar-day-snippets {
  position:static;
  display:grid;
  max-height:none;
  padding-top:2.15rem;
  gap:.25rem;
  overflow:visible;
}
.calendar-day-snippet,
.calendar-day-more {
  display:block;
  width:100%;
  min-height:24px;
  padding:.22rem .38rem;
  overflow:hidden;
  border:0;
  border-left:4px solid var(--blue);
  border-radius:2px;
  color:var(--ink);
  background:var(--sky);
  font:600 .68rem/1.2 var(--sans);
  text-align:left;
  text-overflow:ellipsis;
  white-space:nowrap;
  cursor:pointer;
}
.calendar-day-snippet span { display:block; overflow:hidden; text-overflow:ellipsis; }
.calendar-day-snippet:hover,
.calendar-day-snippet:focus-visible,
.calendar-day-more:hover,
.calendar-day-more:focus-visible { box-shadow:inset 0 0 0 2px var(--ink); }
.calendar-day-more { color:var(--blue); background:transparent; border-left-color:transparent; }
@media (max-width:680px) {
  .calendar-day { min-height:86px; padding:.25rem; }
  .calendar-day-number { top:.18rem; right:.18rem; width:25px; height:25px; font-size:.72rem; }
  .calendar-day-snippets { padding-top:1.65rem; gap:.12rem; }
  .calendar-day-snippet,
  .calendar-day-more { min-height:18px; padding:.12rem .2rem; border-left-width:3px; font-size:.52rem; }
}

/* Centered Outlook-style calendar: the complete day cell opens the day, while event bars open one event. */
.calendar-section { overflow:hidden; }
.calendar-shell {
  width:min(calc(100% - 3rem), 1440px);
  max-width:1440px;
  margin-inline:auto;
}
.calendar-layout {
  width:100%;
  max-width:1440px;
  margin-inline:auto;
  grid-template-columns:minmax(0, 1fr) minmax(270px, 24%);
  overflow:hidden;
  background:var(--white);
}
.calendar-panel,
.calendar-agenda,
.calendar-day-events,
.calendar-day-events article { min-width:0; }
.calendar-panel { overflow:hidden; }
.calendar-agenda { overflow:hidden; }
.calendar-agenda h2,
.calendar-day-events h3,
.calendar-day-events p { max-width:100%; overflow-wrap:anywhere; }
.calendar-weekdays,
.calendar-grid { width:100%; }
.calendar-grid > * { min-width:0; }
.calendar-day {
  position:relative;
  display:block;
  min-height:118px;
  padding:0;
  overflow:hidden;
  background:var(--white);
  cursor:default;
}
.calendar-day-open {
  position:absolute;
  z-index:1;
  inset:0;
  width:100%;
  padding:0;
  border:0;
  color:var(--ink);
  background:transparent;
  cursor:pointer;
}
.calendar-day-open:hover,
.calendar-day-open:focus-visible,
.calendar-day-open[aria-selected="true"] {
  color:var(--ink);
  background:var(--sky);
  box-shadow:inset 0 0 0 2px var(--blue);
}
.calendar-day-number {
  position:absolute;
  z-index:2;
  top:.55rem;
  right:.65rem;
  display:block;
  width:auto;
  height:auto;
  padding:0;
  color:var(--ink);
  background:transparent;
  font:600 .88rem/1 var(--sans);
}
.calendar-day-number:hover,
.calendar-day-number:focus-visible,
.calendar-day-number[aria-selected="true"] { color:inherit; background:transparent; }
.calendar-day-open[aria-current="date"]:not([aria-selected="true"]) { color:var(--white); background:var(--blue); }
.calendar-day-open[aria-current="date"]:not([aria-selected="true"]) .calendar-day-number { color:var(--white); background:transparent; box-shadow:none; }
.calendar-day-snippets {
  position:absolute;
  z-index:2;
  inset:2.55rem .55rem auto;
  display:grid;
  max-height:none;
  padding:0;
  gap:.3rem;
  overflow:visible;
  pointer-events:none;
}
.calendar-day-snippet,
.calendar-day-more {
  width:100%;
  max-width:100%;
  min-height:27px;
  margin-inline:auto;
  padding:.34rem .48rem;
  border:0;
  border-left:4px solid color-mix(in srgb, var(--event-color, var(--blue)) 72%, #16212a);
  border-radius:2px;
  color:var(--event-text, var(--white));
  background:var(--event-color, var(--blue));
  font:600 .72rem/1.2 var(--sans);
  text-align:left;
  pointer-events:auto;
}
.calendar-day-more {
  display:block;
  color:var(--blue);
  background:transparent;
  border-left-color:transparent;
}
.event-category {
  border-color:var(--event-color, var(--blue));
  color:var(--event-text, var(--white));
  background:var(--event-color, var(--blue));
}
.calendar-day.has-all-day { background:var(--event-soft,#eaf6ff); }
.calendar-day.has-all-day .calendar-day-open,
.calendar-day.has-all-day .calendar-day-open:hover,
.calendar-day.has-all-day .calendar-day-open:focus-visible { color:var(--event-ink,var(--ink)); background:transparent; }
.calendar-day.has-all-day .calendar-day-number { color:var(--event-ink,var(--ink)); }
.calendar-day.has-all-day .calendar-day-open[aria-current="date"] .calendar-day-number,
.calendar-day.has-all-day .calendar-day-open[aria-selected="true"] .calendar-day-number { color:var(--event-ink,var(--ink)); }
.calendar-day.has-all-day .calendar-day-open[aria-current="date"] { box-shadow:inset 0 0 0 3px var(--event-color,var(--blue)); }
.job-list { display:grid; border:0; gap:1rem; }
.job-list details { overflow:hidden; border:0; background:var(--blue); color:var(--white); box-shadow:0 12px 30px rgba(18,54,82,.14); }
.job-list summary { padding:1.25rem 1.5rem; }
.job-list summary small,
.job-list summary strong { color:var(--white); }
.job-list summary b::before,
.job-list summary b::after { background:var(--white); }
.job-detail { padding:1.25rem 1.5rem 1.6rem; border-top:1px solid rgba(255,255,255,.34); }
.job-detail h3,
.job-detail p,
.job-detail ul { color:var(--white); }
.job-detail .button { border-color:var(--white); color:var(--blue); background:var(--white); }
.job-detail .button:hover,
.job-detail .button:focus-visible { color:var(--white); background:transparent; }
.job-apply-actions { grid-column:1/-1; display:flex; justify-content:flex-start; }
.job-apply-toggle { font:inherit; cursor:pointer; }
.job-application-form {
  grid-column:1/-1;
  margin-top:.35rem;
  padding:clamp(1.1rem,3vw,1.65rem);
  border-radius:4px;
  color:var(--ink);
  background:var(--white);
  box-shadow:0 12px 28px rgba(8,37,66,.18);
}
.job-application-form[hidden] { display:none; }
.job-application-form .job-application-note { margin:0 0 .25rem; color:var(--muted); }
.job-application-form .field-label,
.job-application-form .form-consent span,
.job-application-form small { color:var(--ink); }
.job-application-form input,
.job-application-form textarea { color:var(--ink); background:var(--white); }
.job-application-form input[type="file"] { padding:.68rem; border:1px dashed var(--blue); }
.job-application-form label>small { display:block; margin-top:.35rem; font-size:.78rem; }
.job-application-form .button { color:var(--white); background:var(--blue); border-color:var(--blue); }
.job-application-form .button:hover,
.job-application-form .button:focus-visible { color:var(--blue); background:var(--white); }
.calendar-no-events { margin:1rem 0; color:var(--muted); }
.form-status.is-sending,
.form-status.is-pending { color:var(--blue); }
.form-status.is-success { color:#0b6b42; font-weight:600; }
.form-status.is-error { color:#a52828; font-weight:600; }
.school-form button:disabled { cursor:wait; opacity:.62; }
.form-honeypot { position:absolute!important; left:-10000px!important; width:1px!important; height:1px!important; min-height:0!important; overflow:hidden!important; }
.form-notification {
  position:fixed;
  z-index:120;
  right:1.25rem;
  bottom:1.25rem;
  width:min(430px, calc(100% - 2.5rem));
  padding:1rem 1.15rem;
  border-left:5px solid var(--white);
  color:var(--white);
  background:var(--blue);
  box-shadow:0 16px 42px rgba(18,54,82,.24);
  font-weight:600;
  opacity:0;
  pointer-events:none;
  transform:translateY(18px);
  transition:opacity 180ms ease, transform 180ms ease;
}
.form-notification.is-visible { opacity:1; transform:translateY(0); }
.form-notification.is-error { background:#8f2525; }

/* Editor-selectable section fills use the approved Midway palette. */
.topic-hero.section-fill--white,.page-section.section-fill--white { background:var(--white)!important; }
.topic-hero.section-fill--sky,.page-section.section-fill--sky { background:var(--sky)!important; }
.topic-hero.section-fill--sky-strong,.page-section.section-fill--sky-strong { background:var(--sky-strong)!important; }
.topic-hero.section-fill--blue,.page-section.section-fill--blue { color:var(--white); background:var(--blue)!important; }
.topic-hero.section-fill--navy,.page-section.section-fill--navy { color:var(--white); background:#173b66!important; }
.topic-hero.section-fill--blue .eyebrow,.topic-hero.section-fill--blue h1,.topic-hero.section-fill--blue p,
.topic-hero.section-fill--navy .eyebrow,.topic-hero.section-fill--navy h1,.topic-hero.section-fill--navy p,
.page-section.section-fill--blue .eyebrow,.page-section.section-fill--blue h2,.page-section.section-fill--blue>.wrap>.section-intro,
.page-section.section-fill--navy .eyebrow,.page-section.section-fill--navy h2,.page-section.section-fill--navy>.wrap>.section-intro { color:var(--white); }
.people-list article>.person-photo { width:64px; height:64px; object-fit:cover; border:2px solid var(--sky-strong); }
.person-contact { display:flex; flex-wrap:wrap; gap:.35rem .8rem; margin:.45rem 0 0!important; }
.person-contact a { color:var(--blue); font-size:.78rem; overflow-wrap:anywhere; }
@media (max-width:1100px) {
  .calendar-layout { grid-template-columns:1fr; }
  .calendar-agenda { border-top:1px solid var(--line); border-left:0; }
}
@media (max-width:680px) {
  .calendar-shell { width:min(calc(100% - 1rem), 1440px); }
  .calendar-day { min-height:82px; }
  .calendar-day-number { top:.32rem; right:.35rem; font-size:.7rem; }
  .calendar-day-snippets { inset:1.75rem .22rem auto; gap:.12rem; }
  .calendar-day-snippet,
  .calendar-day-more { min-height:18px; padding:.15rem .22rem; border-left-width:3px; font-size:.52rem; }
  .form-notification { right:.75rem; bottom:.75rem; width:calc(100% - 1.5rem); }
}
@media (prefers-reduced-motion:reduce) {
  .form-notification { transition:none; }
}

/* Shared mobile page baseline. Content remains complete; controls reflow so
   editors and families never need horizontal scrolling to reach an action. */
@media (max-width:680px) {
  .topic-hero h1,
  .page-heading h1 { font-size:clamp(2.35rem,12vw,3rem); overflow-wrap:anywhere; }
  .topic-hero p,
  .page-lead { font-size:1rem; }
  .staff-tools { gap:1rem; }
  .staff-filters { display:grid; width:100%; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; overflow:visible; }
  .staff-filters button,
  .staff-filters a,
  .grade-tabs button,
  .grade-tabs a { min-width:0; min-height:46px; white-space:normal; line-height:1.2; }
  .grade-tabs { display:grid; width:100%; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.5rem; }
  .school-form,
  .form-layout,
  .form-grid { gap:1rem; }
  .school-form input:not([type="checkbox"]):not([type="radio"]),
  .school-form select,
  .school-form textarea,
  .contact-form input:not([type="checkbox"]):not([type="radio"]),
  .contact-form select,
  .contact-form textarea { min-height:48px; font-size:16px; }
  .school-form input[type="checkbox"],
  .school-form input[type="radio"],
  .contact-form input[type="checkbox"],
  .contact-form input[type="radio"] { width:22px; height:22px; }
  .school-form label,
  .contact-form label { overflow-wrap:anywhere; }
  .calendar-toolbar,
  .record-toolbar,
  .record-filters { gap:.75rem; }
  .calendar-toolbar button,
  .calendar-toolbar a,
  .record-toolbar button,
  .record-toolbar a,
  .record-filters button,
  .record-filters a { min-height:44px; }
  .action-card,
  .feature-card,
  .quick-card,
  .program-card,
  .person-card,
  .icon-link-grid>a { overflow-wrap:anywhere; }
}

@media (max-width:430px) {
  .school-form .form-checks,
  .school-form .checkbox-grid,
  .school-form .radio-grid { grid-template-columns:1fr; }
}

/* Dense-month calendar containment: the month grid keeps its natural height
   while the event list scrolls inside the matching agenda column. */
.calendar-layout { align-items:start; }
.calendar-agenda {
  display:flex;
  max-height:var(--calendar-panel-height, 820px);
  flex-direction:column;
  overflow:hidden;
}
.calendar-agenda>header { flex:0 0 auto; }
.calendar-event-list:not([hidden]),
.calendar-event-detail:not([hidden]) {
  min-height:0;
  padding-right:.5rem;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-color:var(--blue) var(--sky);
  scrollbar-gutter:stable;
  scrollbar-width:thin;
}
.calendar-event-list:not([hidden])::-webkit-scrollbar,
.calendar-event-detail:not([hidden])::-webkit-scrollbar { width:9px; }
.calendar-event-list:not([hidden])::-webkit-scrollbar-track,
.calendar-event-detail:not([hidden])::-webkit-scrollbar-track { background:var(--sky); }
.calendar-event-list:not([hidden])::-webkit-scrollbar-thumb,
.calendar-event-detail:not([hidden])::-webkit-scrollbar-thumb { background:var(--blue); border:2px solid var(--sky); }
.calendar-event-list:focus-visible,
.calendar-event-detail:focus-visible { outline-offset:-3px; }

@media (max-width:1100px) {
  .calendar-agenda { max-height:min(var(--calendar-panel-height, 640px), 70vh); }
}

@media (max-width:680px) {
  .calendar-agenda { max-height:min(var(--calendar-panel-height, 540px), 68vh); }
}
