:root {
  color-scheme: light;
  --apple: #508139;
  --apple-deep: #295e39;
  --apple-on-tint: #47752f;
  --leaf: #a8c8ae;
  --leaf-wash: #eaf3eb;
  --ink: #202923;
  --muted: #59635c;
  --paper: #ffffff;
  --soft: #f6f9f5;
  --line: #dce5dc;
  --shell: min(1200px, calc(100% - 80px));
  --header-height: 96px;
  --header-edge: calc(var(--header-height) + 1px);
  font-family: "Segoe UI", Arial, sans-serif;
  font-synthesis: none;
}

* { box-sizing: border-box; }
html { min-width: 320px; scroll-behavior: smooth; scroll-padding-top: calc(var(--header-edge) + 16px); background: var(--paper); }
body { margin: 0; color: var(--ink); background: var(--paper); -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
a { color: inherit; text-decoration: none; }
button { color: inherit; font: inherit; }
img { display: block; max-width: 100%; }
h1, h2, h3, p { margin: 0; }
h1, h2, h3 { font-weight: 600; }
:focus-visible { outline: 3px solid var(--apple); outline-offset: 5px; }
[hidden] { display: none !important; }
.shell { width: var(--shell); margin-inline: auto; }
.skip-link { position: fixed; z-index: 1000; top: 8px; left: 8px; padding: 12px 16px; color: #fff; background: var(--apple-deep); transform: translateY(-160%); }
.skip-link:focus { transform: translateY(0); }

/* A quiet shared header, followed by the call action. */
.site-header { position: sticky; z-index: 50; top: 0; border-bottom: 1px solid var(--line); background: rgba(255,255,255,.97); }
.site-header__inner { min-height: var(--header-height); display: grid; grid-template-columns: 164px minmax(0, 1fr) auto; align-items: center; gap: 32px; }
.brand { width: 148px; display: block; }
.brand img { width: 100%; height: auto; }
.desktop-nav { display: flex; align-items: center; justify-content: center; gap: clamp(20px, 3vw, 44px); }
.desktop-nav a { min-height: 44px; display: inline-flex; align-items: center; border-bottom: 1px solid transparent; font-size: 13px; font-weight: 600; white-space: nowrap; }
.desktop-nav a:hover, .desktop-nav a[aria-current] { border-color: var(--apple); color: var(--apple); }
.header-action { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 11px 18px; border: 1px solid var(--line); border-radius: 8px; color: var(--ink); background: var(--paper); font-size: 13px; font-weight: 600; transition: border-color 180ms ease, box-shadow 180ms ease, color 180ms ease; }
.header-action:hover { border-color: var(--apple); color: var(--apple); }
.site-header.is-call-glowing .header-action { animation: header-call-glow 1200ms ease-in-out 1; }
@keyframes header-call-glow {
  0%, 100% { border-color: var(--line); box-shadow: none; }
  50% { border-color: var(--apple); box-shadow: 0 0 0 3px rgba(80,129,57,.07), 0 3px 10px rgba(41,94,57,.10); }
}
.header-action__icon { width: 18px; height: 18px; display: none; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.menu-button, .mobile-menu { display: none; }

.kicker { margin-bottom: 16px; color: var(--apple); font-size: 13px; line-height: 1.5; font-weight: 600; }
.button { min-height: 51px; display: inline-flex; align-items: center; justify-content: space-between; gap: 28px; padding: 13px 21px; border-radius: 8px; font-size: 14px; line-height: 1.5; font-weight: 600; transition: background-color 160ms ease; }
.button > span { font-size: 20px; line-height: 1; }
.button--primary { color: #fff; background: var(--apple); }
.button--primary:hover { background: var(--apple-deep); }
.under-link { width: fit-content; display: inline-block; padding-block: 10px; font-size: 14px; line-height: 1.5; font-weight: 600; text-decoration: underline; text-underline-offset: 5px; }
.under-link:hover { color: var(--apple); }

/* Direction A: the words carry the first screen. */
.hero { padding: 54px 0 68px; }
.hero__main { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); align-items: center; gap: 48px; }
.hero__copy { max-width: 680px; }
.hero__copy > .kicker { margin-bottom: 15px; color: var(--muted); }
.hero h1 { margin-top: 24px; font-size: clamp(42px, 4.6vw, 66px); line-height: 1.08; letter-spacing: -.045em; }
.hero__bottom { max-width: 510px; margin-top: 25px; }
.hero__description { font-size: 19px; line-height: 1.55; }
.hero__invitation { max-width: 440px; margin-top: 15px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.hero__actions { margin-top: 26px; }
.hero__break-desktop { display: none; }

@media (min-width: 1025px) {
  .hero h1 { margin-top: 20px; font-size: clamp(48px, 4.2vw, 58px); line-height: 1.11; letter-spacing: -.025em; }
  .hero__break-mobile { display: none; }
  .hero__break-desktop { display: inline; }
}

@media (min-width: 1100px) {
  .hero h1 { font-size: clamp(52px, 4.2vw, 58px); }
}

/* The original rabbit and bear from direction B, with a small shared reply. */
.hero-companions { width: min(100%, 480px); justify-self: end; pointer-events: none; }
.hero-companions__drawing { width: 100%; height: auto; display: block; overflow: visible; }
.hero-companions__rabbit, .hero-companions__bear { transform-box: fill-box; transform-origin: 50% 100%; }
.hero-companions__rabbit-eyes, .hero-companions__bear-eyes, .hero-companions__reply { transform-box: fill-box; transform-origin: center; }
.hero-companions.has-motion .hero-companions__rabbit { animation: companion-rabbit-breathe 6.4s ease-in-out infinite paused; }
.hero-companions.has-motion .hero-companions__bear { animation: companion-bear-breathe 7.2s -2s ease-in-out infinite paused; }
.hero-companions.has-motion .hero-companions__rabbit-eyes { animation: companion-blink 6.6s -1s linear infinite paused; }
.hero-companions.has-motion .hero-companions__bear-eyes { animation: companion-blink 7.8s -3.5s linear infinite paused; }
.hero-companions.has-motion .hero-companions__reply { animation: companion-reply 8.4s ease-in-out infinite paused; }
.hero-companions.has-motion.is-active .hero-companions__rabbit,
.hero-companions.has-motion.is-active .hero-companions__bear,
.hero-companions.has-motion.is-active .hero-companions__rabbit-eyes,
.hero-companions.has-motion.is-active .hero-companions__bear-eyes,
.hero-companions.has-motion.is-active .hero-companions__reply { animation-play-state: running; }
@keyframes companion-rabbit-breathe {
  0%, 100% { transform: translateY(0) rotate(-.3deg); }
  50% { transform: translateY(-1px) rotate(.4deg); }
}
@keyframes companion-bear-breathe {
  0%, 100% { transform: translateY(0) rotate(.3deg); }
  50% { transform: translateY(-.8px) rotate(-.4deg); }
}
@keyframes companion-blink {
  0%, 47%, 51%, 100% { transform: scaleY(1); }
  49% { transform: scaleY(.08); }
}
@keyframes companion-reply {
  0%, 14%, 80%, 100% { opacity: 0; transform: translateY(1px) scale(.97); }
  26%, 65% { opacity: 1; transform: none; }
}

/* The home route: question, first meeting, parent materials, contact. */
.section { padding: 76px 0; border-top: 1px solid var(--line); }
.section:focus { outline: none; }
.section:focus-visible, .section h2[tabindex="-1"]:focus-visible { outline: none; }
.section:focus-visible h2[tabindex="-1"], .section h2[tabindex="-1"]:focus-visible { text-decoration: underline; text-decoration-color: var(--apple); text-decoration-thickness: 2px; text-underline-offset: .16em; }
.requests, .parents { background: var(--soft); }
.section-heading, .parents__heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .82fr); align-items: end; gap: 64px; }
.section h2, .article-end h2 { max-width: 560px; font-size: clamp(30px, 3.2vw, 44px); line-height: 1.13; letter-spacing: -.035em; }
.section-heading > p, .parents__heading > p, .contacts__copy > p:not(.kicker) { max-width: 460px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.requests__heading, .parents__heading { grid-template-columns: minmax(0, 1fr) minmax(0, .75fr) clamp(190px, 20vw, 250px); align-items: center; gap: 40px; }
.requests__illustration { width: 100%; height: auto; }
.request-voices { display: grid; margin-top: 38px; }
.request-voice { min-width: 0; display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 28px; padding: 24px 0; border-top: 1px solid var(--line); }
.request-voice:last-child { border-bottom: 1px solid var(--line); }
.request-voice h3 { font-size: clamp(22px, 2.2vw, 29px); line-height: 1.25; letter-spacing: -.025em; }
.request-voice p { margin-top: 8px; color: var(--muted); font-size: 14px; line-height: 1.55; }
.request-voice__read { display: inline-flex; align-items: center; gap: 16px; min-height: 44px; font-size: 13px; font-weight: 600; text-decoration: underline; text-underline-offset: 5px; }
.request-voice__read:hover { color: var(--apple); }
.requests__actions { display: flex; align-items: center; gap: 28px; margin-top: 26px; }
.first-step__grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); align-items: start; gap: 72px; }
.first-step__question { display: grid; justify-items: start; }
.first-step__illustration { width: min(100%, 340px); height: auto; margin-top: 28px; }
.first-step__answer { display: grid; justify-items: start; gap: 26px; }
.first-step__intro { max-width: 600px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.conversation-prompts { width: 100%; margin: 0; padding: 0; list-style: none; counter-reset: prompt; }
.conversation-prompts li { position: relative; padding: 18px 0 18px 36px; border-top: 1px solid var(--line); counter-increment: prompt; font-size: 17px; line-height: 1.55; }
.conversation-prompts li:last-child { border-bottom: 1px solid var(--line); }
.conversation-prompts li::before { position: absolute; top: 22px; left: 0; color: var(--apple); content: "0" counter(prompt); font-size: 11px; font-weight: 600; font-variant-numeric: tabular-nums; }
.conversation-prompts span { font-weight: 600; }
.parents__proof { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .82fr) 144px; align-items: center; gap: 36px; margin-top: 38px; padding: 28px 32px; border: 1px solid var(--line); border-radius: 12px; background: var(--leaf-wash); }
.parents__proof h3 { max-width: 520px; font-size: 25px; line-height: 1.3; letter-spacing: -.025em; }
.parents__proof .kicker { margin-bottom: 12px; }
.parents__proof-source { display: grid; align-content: start; justify-items: start; gap: 12px; }
.parents__proof-source p { max-width: 430px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.parents__proof-award { width: 144px; display: flex; flex-direction: column; align-items: center; justify-self: end; gap: 8px; padding: 4px 0; border-radius: 8px; }
.parents__proof-award:focus-visible { outline: 2px solid var(--apple); outline-offset: 5px; }
.award-medallion__svg { width: 120px; height: 140px; display: block; overflow: visible; }
.parents__proof-award-label { display: inline-flex; align-items: center; gap: 4px; color: var(--apple); border-bottom: 1px solid currentColor; font-size: 11px; line-height: 1.6; }
.parents__proof-award:hover .parents__proof-award-label { color: var(--apple-deep); }
.parents__inner { width: min(1880px, calc(100% - 80px)); }
.review-summary {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 16px;
  margin-top: 18px;
}
.review-summary__card {
  min-width: 0;
  min-height: 112px;
  display: grid;
  align-content: center;
  gap: 10px;
  padding: 18px 22px;
  border-radius: 24px;
  background: var(--leaf-wash);
}
.review-summary__top {
  min-width: 0;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}
.review-summary__label {
  min-width: 0;
  font-size: clamp(15px, .95vw, 20px);
  line-height: 1.25;
  font-weight: 600;
  letter-spacing: -.02em;
  overflow-wrap: anywhere;
}
.review-summary__rating {
  flex: none;
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--apple);
  font-size: clamp(20px, 1.3vw, 27px);
  line-height: 1;
  font-weight: 700;
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}
.review-summary__thumb { width: 19px; height: 19px; flex: none; fill: currentColor; }
.review-summary__count { color: #858a86; font-size: 16px; line-height: 1.35; }
.parents .reading-room { margin-top: 30px; }
.reading-room { margin-top: 68px; }
.reading-room__heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .82fr); align-items: end; gap: 36px; margin-bottom: 20px; }
.reading-room__heading h3 { font-size: clamp(27px, 2.6vw, 34px); line-height: 1.2; letter-spacing: -.03em; }
.reading-room__heading > p { max-width: 460px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.parents__heading-note { display: contents; }
.parents__heading-note > p { max-width: 460px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.parents__illustration { width: 100%; height: auto; }
.reading-room__list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.reading-item { min-width: 0; display: grid; grid-template-columns: 25px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.reading-item__number { align-self: start; padding-top: 3px; color: var(--apple); font-size: 11px; line-height: 1.5; }
.reading-item p { margin-bottom: 9px; color: var(--apple); font-size: 12px; line-height: 1.5; }
.reading-item h3 { font-size: 23px; line-height: 1.3; letter-spacing: -.025em; }
.reading-item__action { font-size: 12px; text-decoration: underline; text-underline-offset: 5px; }
.reading-item:hover h3, .reading-item:hover .reading-item__action { color: var(--apple); }
.reading-room__footer { display: flex; align-items: center; justify-content: space-between; gap: 32px; margin-top: 26px; }
.reading-room__footer p { max-width: 540px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.contacts__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .9fr); align-items: stretch; gap: 72px; }
.contacts__copy { position: relative; }
.contacts__copy > p:not(.kicker) { margin-top: 22px; }
.contacts__actions { display: flex; align-items: center; flex-wrap: wrap; gap: 14px; margin-top: 28px; }
.contact-phone { width: fit-content; display: block; font-size: clamp(26px, 2.8vw, 39px); line-height: 1.3; font-weight: 600; letter-spacing: -.035em; text-decoration: underline; text-underline-offset: 7px; }
.contact-max-placeholder { min-height: 50px; display: inline-flex; align-items: center; gap: 12px; padding: 11px 15px; border: 1px dashed var(--line); border-radius: 8px; color: var(--muted); background: var(--soft); font-size: 14px; line-height: 1.4; font-weight: 600; cursor: default; }
.contact-max-placeholder__status { padding: 3px 7px; border-radius: 999px; background: var(--leaf-wash); font-size: 11px; line-height: 1.4; font-weight: 500; }
.contacts__car-track { position: relative; height: 190px; margin-top: 28px; overflow: hidden; pointer-events: none; }
.contacts__car { position: absolute; bottom: 0; left: 50%; width: min(220px, 55%); height: auto; display: block; transform: translateX(-50%) scaleX(-1); }
.contacts__route { width: 100%; max-width: 540px; overflow: hidden; border: 1px solid var(--line); border-radius: 8px; background: var(--leaf-wash); }
.contacts__map { position: relative; aspect-ratio: 3 / 2; overflow: hidden; isolation: isolate; border-bottom: 1px solid var(--line); background: var(--leaf-wash); }
.contacts__map-link { height: 100%; display: block; cursor: pointer; }
.contacts__map-link:focus-visible { outline-offset: -5px; }
.contacts__map-image { width: 100%; height: 100%; object-fit: cover; }
.contacts__map-brand { position: absolute; z-index: 1; top: 49.9%; left: 50%; width: clamp(94px, 23%, 118px); transform: translate(-50%, -100%); filter: drop-shadow(0 1px 3px rgba(255,255,255,.95)); pointer-events: none; }
.contacts__map-brand img { width: 100%; height: auto; }
.contacts__map-action { position: absolute; right: 16px; bottom: 20px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 6px; background: rgba(255,255,255,.97); font-size: 12px; font-weight: 600; }
.contacts__map-credit { position: absolute; z-index: 2; bottom: 4px; left: 7px; padding: 2px 3px; color: var(--muted); background: rgba(255,255,255,.9); font-size: 9px; line-height: 1.2; }
.contacts__map-frame { position: absolute; z-index: 3; inset: 0; width: 100%; height: 100%; border: 0; opacity: 0; background: var(--paper); transition: opacity 180ms ease; }
.contacts__map.is-map-active { height: clamp(420px, 38vw, 500px); aspect-ratio: auto; }
.contacts__map.is-map-loaded .contacts__map-frame { opacity: 1; }
.contacts__map-status { position: absolute; z-index: 4; top: 50%; left: 50%; padding: 10px 13px; border: 1px solid var(--line); background: var(--paper); font-size: 12px; transform: translate(-50%, -50%); white-space: nowrap; }
.contacts__map-close { position: absolute; z-index: 5; top: 12px; right: 12px; min-height: 44px; padding: 10px 13px; border: 1px solid var(--line); border-radius: 6px; background: var(--paper); font-size: 12px; font-weight: 600; cursor: pointer; }
.contacts__map.is-map-active .contacts__map-credit { visibility: hidden; }
.contacts__address { display: grid; justify-items: start; gap: 14px; padding: 25px 28px; font-style: normal; }
.contacts__address span { color: var(--apple); font-size: 13px; }
.contacts__address strong { font-size: 26px; line-height: 1.25; font-weight: 600; letter-spacing: -.025em; }
.contacts__address a { min-height: 44px; display: inline-flex; align-items: center; font-size: 14px; text-decoration: underline; text-underline-offset: 5px; }

/* Parent library and articles use the same type scale and line lengths. */
.reading-progress { position: fixed; z-index: 49; top: var(--header-edge); right: 0; left: 0; height: 2px; pointer-events: none; }
.reading-progress span { width: 100%; height: 100%; display: block; background: var(--apple); transform: scaleX(var(--reading-progress, 0)); transform-origin: left; }
.library-hero { padding: 64px 0; border-bottom: 1px solid var(--line); }
.library-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(160px, .3fr); align-items: start; gap: 64px; }
.library-hero h1, .article-hero h1, .not-found h1 { max-width: 820px; font-size: clamp(36px, 4vw, 56px); line-height: 1.1; letter-spacing: -.04em; }
.library-hero__copy > p:not(.kicker) { max-width: 620px; margin-top: 24px; color: var(--muted); font-size: 17px; line-height: 1.65; }
.library-hero__card { display: grid; gap: 14px; margin-top: 8px; padding-left: 24px; border-left: 1px solid var(--line); }
.library-hero__mark strong { color: var(--apple); font-size: 48px; line-height: 1; font-weight: 600; letter-spacing: -.04em; }
.library-hero__mark span { max-width: 180px; color: var(--muted); font-size: 13px; line-height: 1.6; }
.article-catalog { padding: 56px 0 76px; background: var(--soft); }
.article-catalog__intro { max-width: 720px; margin-bottom: 44px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.article-catalog__group { display: grid; grid-template-columns: minmax(210px, .3fr) minmax(0, 1fr); gap: 40px; margin-top: 48px; }
.article-catalog__group:first-of-type { margin-top: 0; }
.article-catalog__group-head { display: grid; align-content: start; justify-items: start; gap: 22px; }
.article-catalog__label { align-self: start; color: var(--apple); font-size: 22px; line-height: 1.3; letter-spacing: -.025em; }
.article-catalog__illustration { width: min(100%, 230px); height: auto; }
.article-list { border-bottom: 1px solid var(--line); }
.article-row { min-width: 0; display: grid; grid-template-columns: 28px minmax(0, 1fr) minmax(180px, .68fr) 20px; align-items: center; gap: 20px; padding: 25px 10px; border-top: 1px solid var(--line); }
.article-row:hover { background: var(--leaf-wash); }
.article-row__number { align-self: start; padding-top: 5px; color: var(--apple); font-size: 11px; }
.article-row h3 { font-size: 23px; line-height: 1.3; letter-spacing: -.025em; }
.article-row__summary { color: var(--muted); font-size: 14px; line-height: 1.6; }
.article-row__arrow { font-size: 20px; }
.article-library-note { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 32px; margin-top: 56px; padding-top: 28px; border-top: 1px solid var(--line); }
.article-library-note p { max-width: 660px; color: var(--muted); font-size: 14px; line-height: 1.65; }
.article-hero { padding: 40px 0 56px; border-bottom: 1px solid var(--line); }
.article-breadcrumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 36px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.article-breadcrumbs a { text-decoration: underline; text-underline-offset: 4px; }
.article-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .52fr); align-items: end; gap: 48px; }
.article-hero__summary { display: grid; grid-template-columns: minmax(0, 1fr); align-items: center; gap: 24px; }
.article-hero__illustration { width: min(100%, 250px); height: auto; justify-self: center; }
.article-hero__copy { display: grid; justify-items: start; gap: 18px; }
.article-hero__summary p { color: var(--muted); font-size: 16px; line-height: 1.65; }
.article-status { padding: 7px 12px; border-radius: 20px; color: var(--apple); background: var(--leaf-wash); font-size: 12px; line-height: 1.5; }
.article-layout { display: grid; grid-template-columns: minmax(140px, .24fr) minmax(0, 1fr) minmax(160px, .28fr); align-items: start; gap: 36px; padding-top: 56px; padding-bottom: 76px; }
.article-toc, .article-related { position: sticky; top: calc(var(--header-edge) + 24px); }
.article-toc > p, .article-related > p { margin-bottom: 16px; color: var(--apple); font-size: 13px; line-height: 1.5; font-weight: 600; }
.article-toc nav, .article-related nav { display: grid; }
.article-toc a, .article-related a { padding: 12px 0; border-top: 1px solid var(--line); font-size: 13px; line-height: 1.55; }
.article-toc a { color: var(--muted); }
.article-toc a:last-child, .article-related a:last-child { border-bottom: 1px solid var(--line); }
.article-toc a:hover, .article-related a:hover { color: var(--apple); }
.article-prose { min-width: 0; max-width: 720px; font-size: 18px; line-height: 1.75; }
.article-prose > p:first-child { font-size: 21px; line-height: 1.6; }
.article-prose h2 { position: relative; margin: 46px 0 18px; font-size: 30px; line-height: 1.2; letter-spacing: -.03em; }
.article-prose h2.is-reading-heading::before { position: absolute; top: .35em; left: -16px; width: 2px; height: .65em; content: ""; background: var(--apple); }
.article-prose h2[id] { scroll-margin-top: calc(var(--header-edge) + 24px); }
.article-prose h2:first-child { margin-top: 0; }
.article-prose h3 { margin: 34px 0 16px; font-size: 23px; line-height: 1.3; letter-spacing: -.025em; }
.article-prose p { margin-bottom: 22px; }
.article-prose ul, .article-prose ol { display: grid; gap: 10px; margin: 0 0 28px; padding-left: 1.35em; }
.article-prose li::marker { color: var(--apple); }
.article-prose blockquote { margin: 28px 0; padding: 22px 25px; border-left: 2px solid var(--apple); background: var(--leaf-wash); font-size: 18px; line-height: 1.65; }
.article-prose blockquote p { margin: 0; }
.article-prose strong { font-weight: 600; }
.article-prose .article-disclaimer { margin-top: 44px; padding-top: 22px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; line-height: 1.65; }
.article-end { padding: 60px 0; background: var(--soft); }
.article-end__inner { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .82fr); align-items: end; gap: 64px; }
.article-end__action { display: grid; justify-items: start; gap: 22px; }
.article-end__action p { max-width: 430px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.article-end__links { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }

/* One catalog for the currently confirmed directions. */
.service-hero { padding: 48px 0 64px; border-bottom: 1px solid var(--line); }
.service-hero__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, .34fr); align-items: end; gap: 64px; }
.service-hero h1 { max-width: 800px; font-size: clamp(38px, 4.3vw, 60px); line-height: 1.1; letter-spacing: -.04em; }
.service-hero__intro { max-width: 700px; margin-top: 24px; color: var(--muted); font-size: 17px; line-height: 1.68; }
.service-quicknav { display: grid; border-top: 1px solid var(--line); }
.service-quicknav p { padding: 16px 0 8px; color: var(--apple); font-size: 13px; font-weight: 600; }
.service-quicknav a { display: flex; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--line); font-size: 14px; font-weight: 600; line-height: 1.45; }
.service-quicknav a:hover, .service-card__aside a:hover { color: var(--apple); }
.service-quicknav a span { color: var(--apple); }
.service-catalog { padding: 68px 0 80px; background: var(--soft); }
.service-catalog__heading { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, .8fr); gap: 64px; align-items: end; padding-bottom: 32px; }
.service-catalog__heading h2, .service-first h2 { max-width: 620px; font-size: clamp(32px, 3.1vw, 44px); line-height: 1.16; letter-spacing: -.035em; }
.service-catalog__heading p { max-width: 540px; color: var(--muted); font-size: 16px; line-height: 1.65; }
.service-card { display: grid; grid-template-columns: 36px minmax(0, 1fr) minmax(220px, .36fr); gap: 34px; padding: 42px 0; border-top: 1px solid var(--line); scroll-margin-top: calc(var(--header-edge) + 24px); }
.service-card:last-child { border-bottom: 1px solid var(--line); }
.service-card__number { padding-top: 7px; color: var(--apple); font-size: 13px; font-variant-numeric: tabular-nums; }
.service-card h3 { margin-bottom: 20px; font-size: clamp(28px, 2.65vw, 37px); line-height: 1.2; letter-spacing: -.03em; }
.service-card__main > p { max-width: 680px; color: var(--muted); font-size: 16px; line-height: 1.68; }
.service-card__main > p + p { margin-top: 18px; }
.service-card__main .service-card__prompt { padding-left: 17px; border-left: 2px solid var(--leaf); color: var(--ink); font-size: 14px; }
.service-card__aside { align-self: start; display: grid; border-top: 1px solid var(--line); }
.service-card__aside p { padding: 15px 0 7px; color: var(--apple); font-size: 13px; font-weight: 600; }
.service-card__aside a { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 14px; line-height: 1.5; }
.service-card__aside a span { color: var(--apple); }
.service-first { padding: 76px 0 88px; scroll-margin-top: calc(var(--header-edge) + 24px); }
.service-first__grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(270px, .55fr); align-items: start; gap: 92px; }
.service-first__grid > div:first-child > p:not(.kicker) { max-width: 710px; margin-top: 22px; color: var(--muted); font-size: 16px; line-height: 1.68; }
.service-first__grid > div:first-child > .under-link { margin-top: 15px; }
.service-first__action { display: grid; justify-items: start; gap: 17px; padding: 27px; border: 1px solid var(--line); border-radius: 8px; background: var(--soft); }

/* Small green labels need a darker tone on pale green sections. */
.requests .kicker, .parents .kicker, .parents__proof-award-label,
.reading-item__number, .reading-item p, .contacts__address span,
.article-row__number, .article-status, .article-end .kicker,
.service-card__number, .service-card__aside p { color: var(--apple-on-tint); }
.service-first__action .service-first__action-title { color: var(--ink); font-size: 23px; line-height: 1.3; font-weight: 600; letter-spacing: -.02em; }
.service-first__action > p:not(.service-first__action-title) { color: var(--muted); font-size: 14px; line-height: 1.65; }

.site-footer { border-top: 1px solid var(--line); }
.site-footer__inner { min-height: 88px; display: flex; align-items: center; justify-content: space-between; gap: 24px; color: var(--muted); font-size: 12px; line-height: 1.6; }
.site-footer__links { display: flex; flex-wrap: wrap; gap: 10px 22px; }
.site-footer a { padding-block: 10px; }
.not-found { min-height: calc(100vh - 126px); display: grid; align-items: center; padding: 64px 0 96px; }
.not-found__header { grid-template-columns: minmax(0, 1fr) auto; }
.not-found__inner { display: grid; grid-template-areas: "copy image"; grid-template-columns: minmax(0, 1fr) minmax(200px, .48fr); align-items: center; gap: 48px; }
.not-found__copy { grid-area: copy; }
.not-found__illustration { grid-area: image; width: min(100%, 340px); height: auto; justify-self: center; }
.not-found__inner > p:not(.kicker) { max-width: 560px; margin-top: 24px; color: var(--muted); font-size: 17px; line-height: 1.65; }
.not-found__actions { display: flex; align-items: center; gap: 24px; margin-top: 28px; }

/* The characters are the resting scene; only props and speech bubbles arrive. */
.illustration__svg { width: 100%; height: auto; display: block; overflow: visible; }
.illustration__arrival { --arrival-delay: 100ms; }
.illustration__arrival--2 { --arrival-delay: 420ms; }
.illustration__arrival--3 { --arrival-delay: 740ms; }
.illustration__arrival--4 { --arrival-delay: 1060ms; }
@media (prefers-reduced-motion: no-preference) {
.motion-ready [data-award-medallion].reveal { transform: none; transition: none; }
.motion-ready [data-award-medallion] .award-medallion__svg { opacity: 0; transform: translateY(8px) scale(.96); transition: opacity 420ms ease, transform 620ms cubic-bezier(.2,.8,.2,1); }
.motion-ready [data-award-medallion].is-visible .award-medallion__svg { opacity: 1; transform: none; }
.motion-ready [data-award-medallion] .award-medallion__laurel { opacity: 0; transform-box: fill-box; transform-origin: 100% 100%; transform: scale(.9); transition: opacity 440ms ease, transform 640ms cubic-bezier(.2,.8,.2,1); transition-delay: 0ms; }
.motion-ready [data-award-medallion] .award-medallion__laurel--right { transform-origin: 0 100%; }
.motion-ready [data-award-medallion].is-visible .award-medallion__laurel { opacity: 1; transform: none; transition-delay: 160ms; }
.award-medallion__pin, .award-medallion__pin-gesture { transform-box: fill-box; transform-origin: 50% 100%; }
.motion-ready [data-award-medallion].is-visible .award-medallion__pin { animation: award-pin-arrival 900ms ease 360ms both; }
.award-medallion__pin-gesture { transition: transform 240ms ease; }
.parents__proof-award:is(:hover, :focus-visible) .award-medallion__pin-gesture { transform: rotate(4deg) scale(1.025); }
@keyframes award-pin-arrival { 0%, 100% { transform: rotate(0deg); } 35% { transform: rotate(-7deg); } 65% { transform: rotate(5deg); } 85% { transform: rotate(-2deg); } }
.motion-ready [data-illustration].reveal,
.motion-ready [data-contact-car-scene].reveal { transform: none; transition: none; }
.motion-ready [data-contact-car-scene] .contacts__car {
  left: 100%;
  transform: translateX(0) scaleX(-1);
  transition: left 1200ms cubic-bezier(.2,.72,.22,1), transform 1200ms cubic-bezier(.2,.72,.22,1);
}
.motion-ready [data-contact-car-scene].is-visible .contacts__car {
  left: 50%;
  transform: translateX(-50%) scaleX(-1);
}
.motion-ready [data-illustration] .illustration__arrival {
  opacity: 0;
  transform-box: fill-box;
  transform-origin: center;
  transform: translateY(64px) scale(.96);
  transition: opacity 220ms ease, transform 300ms ease;
  transition-delay: 0ms;
}
.motion-ready [data-illustration] .illustration__arrival--left { transform: translate(-58px, 10px) scale(.96); }
.motion-ready [data-illustration] .illustration__arrival--right { transform: translate(72px, 10px) scale(.96); }
.motion-ready [data-illustration] .illustration__arrival--up { transform: translateY(64px) scale(.96); }
.motion-ready [data-illustration] .illustration__arrival--down { transform: translateY(-64px) scale(.96); }
.motion-ready [data-illustration].is-visible .illustration__arrival {
  opacity: 1;
  transform: none;
  transition: opacity 480ms ease, transform 880ms cubic-bezier(.2,.72,.22,1);
  transition-delay: var(--arrival-delay);
}
}

/* Text returns to its resting state whenever it leaves the viewport. */
.motion-ready .hero__copy { transform: translateY(10px); transition: transform 540ms ease; }
.motion-ready .hero__copy.is-arrived { transform: none; }
.motion-ready .reveal { transform: translateY(8px); transition: transform 480ms ease; }
.motion-ready .reveal.is-visible { transform: none; }
/* A menu target must stay still while its surrounding content reveals. */
.motion-ready .reveal:has(:target) { transform: none; transition: none; }

@media (max-width: 1024px) {
  :root { --shell: calc(100% - 56px); }
  .parents__inner { width: calc(100% - 56px); }
  .site-header__inner { grid-template-columns: minmax(0, 1fr) auto auto; gap: 18px; }
  .desktop-nav { display: none; }
  .menu-button { width: 46px; height: 46px; display: grid; place-content: center; gap: 7px; padding: 0; border: 1px solid var(--line); border-radius: 8px; background: var(--paper); cursor: pointer; touch-action: manipulation; }
  html:not(.site-js-ready) .mobile-menu:target, body.menu-open .mobile-menu { display: block; }
  .menu-button span { width: 18px; height: 2px; display: block; background: var(--ink); transition: transform 160ms ease; }
  .menu-button[aria-expanded="true"] span:first-child { transform: translateY(4.5px) rotate(45deg); }
  .menu-button[aria-expanded="true"] span:last-child { transform: translateY(-4.5px) rotate(-45deg); }
  .mobile-menu { position: fixed; z-index: 60; top: var(--header-edge); right: 0; bottom: 0; left: 0; display: none; overflow-y: auto; overscroll-behavior: contain; touch-action: pan-y; background: var(--paper); }
  html:not(.site-js-ready) .mobile-menu { top: calc(var(--header-height) + 1px); }
  .mobile-menu__inner { width: min(720px, calc(100% - 56px)); margin: 0 auto; padding: 28px 0 36px; }
  .mobile-menu__eyebrow { display: flex; justify-content: space-between; gap: 16px; color: var(--muted); font-size: 12px; line-height: 1.5; }
  .mobile-menu__title { margin-top: 17px; font-size: 32px; line-height: 1.2; letter-spacing: -.035em; }
  .mobile-menu__lead { margin-top: 12px; color: var(--muted); font-size: 14px; line-height: 1.6; }
  .mobile-menu__nav { display: grid; margin-top: 25px; border-bottom: 1px solid var(--line); }
  .mobile-menu__link { display: grid; grid-template-columns: minmax(0, 1fr) 20px; align-items: center; gap: 16px; padding: 19px 0; border-top: 1px solid var(--line); }
  .mobile-menu__label { display: grid; gap: 5px; }
  .mobile-menu__label strong { font-size: 23px; line-height: 1.25; font-weight: 600; letter-spacing: -.025em; }
  .mobile-menu__label small { color: var(--muted); font-size: 12px; line-height: 1.5; }
  .mobile-menu__arrow { color: var(--apple); font-size: 20px; }
  .mobile-menu__link:hover, .mobile-menu__link[aria-current] { color: var(--apple); }
  .mobile-menu__footer { display: grid; justify-items: start; gap: 16px; margin-top: 28px; }
  .mobile-menu__footer p { color: var(--muted); font-size: 13px; line-height: 1.6; }
  .section-heading, .parents__heading, .parents__proof, .article-end__inner { gap: 40px; }
  .first-step__grid, .contacts__inner { gap: 40px; }
  .reading-room__list { gap: 25px; }
  .reading-item { grid-template-columns: 22px minmax(0, 1fr); }
  .reading-item__action { grid-column: 2; justify-self: start; }
  .requests__heading, .parents__heading { grid-template-columns: minmax(0, 1fr) 230px; align-items: center; column-gap: 36px; row-gap: 22px; }
  .requests__heading > p, .parents__heading-note > p { grid-column: 1; }
  .requests__illustration, .parents__illustration { grid-column: 2; grid-row: 1 / 3; width: 230px; }
  .article-catalog__group { grid-template-columns: 205px minmax(0, 1fr); gap: 28px; }
  .article-row { grid-template-columns: 25px minmax(0, 1fr) 20px; gap: 16px; }
  .article-row h3 { grid-column: 2; }
  .article-row__summary { grid-column: 2; }
  .article-row__arrow { grid-column: 3; grid-row: 1 / 3; align-self: center; }
  .article-layout { grid-template-columns: 160px minmax(0, 1fr); gap: 32px; }
  .article-related { position: static; grid-column: 2; }
  .not-found__header { grid-template-columns: minmax(0, 1fr) auto; }
  .hero__main { gap: 32px; }
}

@media (max-width: 820px) {
  .hero__main { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .hero-companions { width: min(100%, 320px); justify-self: center; }
  .section-heading, .parents__heading, .first-step__grid, .parents__proof, .contacts__inner, .article-hero__grid, .article-end__inner { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .contacts__car-track { height: 180px; margin-top: 24px; }
  .contacts__car { width: min(210px, 62%); }
  .requests__heading, .parents__heading { grid-template-columns: minmax(0, 1fr) 210px; column-gap: 28px; row-gap: 20px; }
  .requests__illustration, .parents__illustration { width: 210px; }
  .section-heading > p, .parents__heading-note > p, .contacts__copy > p:not(.kicker) { max-width: 600px; }
  .first-step__answer { max-width: 660px; }
  .parents__proof { grid-template-columns: minmax(0, 1fr) 132px; gap: 20px; }
  .parents__proof-lead, .parents__proof-source { grid-column: 1; }
  .parents__proof-award { grid-column: 2; grid-row: 1 / span 2; width: 132px; }
  .review-summary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .review-summary__card { min-height: 116px; }
  .review-summary__label { font-size: 17px; }
  .review-summary__rating { font-size: 23px; }
  .reading-room__heading { grid-template-columns: minmax(0, 1fr); gap: 14px; }
  .reading-room__list { grid-template-columns: minmax(0, 1fr); gap: 0; }
  .reading-item { grid-template-columns: 25px minmax(0, 1fr) auto; }
  .reading-item__action { grid-column: auto; }
  .contacts__route { max-width: 620px; }
  .library-hero__inner { grid-template-columns: minmax(0, 1fr); gap: 28px; }
  .library-hero__card { grid-template-columns: auto minmax(0, 210px); align-items: center; gap: 20px; padding-left: 0; border-left: 0; }
  .library-hero__mark span { max-width: 210px; }
  .article-catalog__group { grid-template-columns: minmax(0, 1fr); gap: 20px; }
  .article-catalog__group-head { grid-template-columns: minmax(0, 1fr) 180px; align-items: center; gap: 24px; }
  .article-catalog__illustration { width: 180px; justify-self: end; }
  .article-hero__summary { grid-template-columns: 230px minmax(0, 1fr); gap: 28px; }
  .article-hero__illustration { width: 230px; }
  .article-catalog__label { position: static; }
  .article-layout { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .article-toc, .article-related { position: static; grid-column: 1; }
  .article-toc { max-width: 720px; }
  .article-toc nav { grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 24px; }
  .article-related { max-width: 720px; }
  .article-library-note { grid-template-columns: minmax(0, 1fr); justify-items: start; }
  .service-hero__grid, .service-catalog__heading, .service-first__grid { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .service-quicknav { max-width: 620px; }
  .service-card { grid-template-columns: 30px minmax(0, 1fr); gap: 20px; }
  .service-card__aside { grid-column: 2; max-width: 620px; }
  .service-first__action { max-width: 620px; }
  .not-found__inner { grid-template-areas: "image" "copy"; grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .not-found__illustration { width: min(50%, 260px); }
}

@media (max-width: 580px) {
  :root { --shell: calc(100% - 40px); --header-height: 82px; --header-edge: 112px; }
  .parents__inner { width: calc(100% - 40px); }
  .site-header__inner { gap: 10px; }
  .brand { width: 124px; }
  .header-action { padding: 0 11px; font-size: 12px; }
  .parents__proof { grid-template-columns: minmax(0, 1fr) 112px; column-gap: 16px; row-gap: 18px; padding: 22px; }
  .parents__proof-lead { grid-column: 1; grid-row: 1; }
  .parents__proof-source { grid-column: 1 / -1; grid-row: 2; }
  .parents__proof-award { grid-column: 2; grid-row: 1; width: 112px; }
  .award-medallion__svg { width: 104px; height: auto; }
  .parents .reading-room { margin-top: 24px; }
  .reading-room { margin-top: 54px; }
  .mobile-menu__inner { width: calc(100% - 40px); padding-top: 22px; }
  .mobile-menu__title { font-size: 28px; }
  .mobile-menu__link { padding-block: 17px; }
  .mobile-menu__label strong { font-size: 21px; }
  .hero { padding: 34px 0 48px; }
  .hero h1 { font-size: clamp(34px, 8.3vw, 46px); }
  .hero__bottom { margin-top: 22px; }
  .hero__description { font-size: 17px; }
  .hero__invitation { font-size: 15px; }
  .hero-companions { width: min(100%, 280px); }
  .section { padding-block: 52px; }
  .section h2, .article-end h2 { font-size: 32px; }
  .section-heading > p, .parents__heading > p, .contacts__copy > p:not(.kicker), .first-step__intro { font-size: 15px; }
  .requests__heading, .parents__heading { grid-template-columns: minmax(0, 1fr); gap: 22px; }
  .requests__illustration, .parents__illustration { grid-column: 1; grid-row: auto; width: min(100%, 220px); justify-self: center; }
  .first-step__illustration { width: min(100%, 280px); justify-self: center; margin-top: 24px; }
  .parents__heading-note > p { font-size: 15px; }
  .request-voices { margin-top: 28px; }
  .request-voice { grid-template-columns: minmax(0, 1fr); gap: 10px; padding-block: 22px; }
  .request-voice h3 { font-size: 23px; }
  .request-voice__read { justify-self: start; }
  .requests__actions { align-items: start; flex-direction: column; gap: 10px; }
  .conversation-prompts li { font-size: 16px; }
  .parents__proof { margin-top: 30px; }
  .parents__proof h3 { font-size: 23px; }
  .review-summary { gap: 10px; margin-top: 14px; }
  .review-summary__card { min-height: 120px; gap: 8px; padding: 14px; border-radius: 18px; }
  .review-summary__top { grid-template-columns: minmax(0, 1fr); gap: 6px; }
  .review-summary__label { font-size: 14px; }
  .review-summary__rating { font-size: 21px; }
  .review-summary__thumb { width: 16px; height: 16px; }
  .review-summary__count { font-size: 13px; }
  .reading-item { grid-template-columns: 22px minmax(0, 1fr); gap: 12px; }
  .reading-item h3 { font-size: 22px; }
  .reading-item__action { grid-column: 2; justify-self: start; }
  .reading-room__footer { align-items: start; flex-direction: column; gap: 20px; }
  .contact-phone { font-size: clamp(25px, 7.5vw, 32px); }
  .contacts__address { padding: 22px; }
  .contacts__address strong { font-size: 24px; }
  .contacts__map-action { right: 12px; font-size: 11px; }
  .library-hero { padding-block: 42px; }
  .library-hero h1, .article-hero h1, .not-found h1 { font-size: clamp(32px, 8.1vw, 42px); }
  .library-hero__copy > p:not(.kicker) { font-size: 15px; }
  .library-hero__mark strong { font-size: 38px; }
  .article-catalog { padding: 42px 0 56px; }
  .article-catalog__intro { font-size: 15px; }
  .article-catalog__group-head { grid-template-columns: minmax(0, 1fr) 140px; gap: 16px; }
  .article-catalog__illustration { width: 140px; }
  .article-row { padding: 22px 0; gap: 12px; }
  .article-row h3 { font-size: 22px; }
  .article-row__summary { font-size: 13px; }
  .article-library-note { margin-top: 40px; gap: 22px; }
  .article-hero { padding: 28px 0 38px; }
  .article-breadcrumbs { margin-bottom: 28px; font-size: 11px; }
  .article-hero__summary p { font-size: 15px; }
  .article-hero__summary { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .article-hero__illustration { width: min(100%, 220px); }
  .article-layout { padding-top: 34px; padding-bottom: 52px; }
  .article-toc nav { grid-template-columns: minmax(0, 1fr); }
  .article-prose { font-size: 16px; line-height: 1.75; }
  .article-prose > p:first-child { font-size: 18px; }
  .article-prose h2 { margin-top: 36px; font-size: 27px; }
  .article-prose h3 { font-size: 22px; }
  .article-prose blockquote { padding: 18px 20px; font-size: 16px; }
  .article-end { padding-block: 46px; }
  .article-end__action p { font-size: 15px; }
  .service-hero { padding: 30px 0 48px; }
  .service-hero h1 { font-size: clamp(32px, 8vw, 43px); }
  .service-hero__intro { margin-top: 18px; font-size: 15px; }
  .service-catalog { padding: 48px 0 56px; }
  .service-catalog__heading h2, .service-first h2 { font-size: 32px; }
  .service-catalog__heading p { font-size: 15px; }
  .service-card { grid-template-columns: minmax(0, 1fr); gap: 12px; padding: 32px 0; }
  .service-card__number { padding-top: 0; }
  .service-card h3 { margin-bottom: 15px; font-size: 28px; }
  .service-card__main > p { font-size: 15px; }
  .service-card__aside { grid-column: 1; margin-top: 8px; }
  .service-first { padding: 52px 0 60px; }
  .service-first__grid > div:first-child > p:not(.kicker) { font-size: 15px; }
  .service-first__action { padding: 22px; }
  .site-footer__inner { align-items: start; flex-direction: column; gap: 14px; padding-block: 26px; }
  .not-found { min-height: calc(100vh - 112px); padding: 48px 0 64px; }
  .not-found__inner { grid-template-areas: "image" "copy"; grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .not-found__illustration { width: min(66%, 230px); }
  .not-found__header .header-action { width: auto; padding: 10px 16px; }
  .not-found__inner > p:not(.kicker) { font-size: 15px; }
  .not-found__actions { align-items: start; flex-direction: column; gap: 14px; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition: none !important; animation: none !important; }
  [data-illustration] .illustration__arrival { opacity: 1; transform: none; }
}

@media (max-width: 360px) {
  .review-summary { grid-template-columns: minmax(0, 1fr); }
  .review-summary__card { min-height: 90px; }
  .review-summary__top { grid-template-columns: minmax(0, 1fr) auto; }
  .review-summary__label { font-size: 16px; }
  .review-summary__count { font-size: 14px; }
  .parents__proof { grid-template-columns: minmax(0, 1fr); gap: 18px; }
  .parents__proof-lead, .parents__proof-source { grid-column: 1; }
  .parents__proof-award { grid-column: 1; grid-row: auto; width: 144px; justify-self: center; }
}

/* Compact desktop framing; keep the accepted mobile and tablet layouts intact. */
@media (min-width: 1025px) {
  .site-header { background: #fff; }
  .hero { padding: 44px 0 56px; }
  .section { padding: 64px 0; }
  .reading-room { margin-top: 52px; }

  .requests__heading, .parents__heading { align-items: start; }
  #requests-title { scroll-margin-top: 35px; }
  .requests__heading > p, .requests__illustration { margin-top: 35px; }

  .contacts.section { padding: 56px 0; }
  .contacts__map { aspect-ratio: 1.8 / 1; }

  .article-hero { padding: 32px 0 40px; }
  .article-breadcrumbs { margin-bottom: 24px; }
  .article-hero__grid { align-items: start; }
  .article-hero__summary { gap: 16px; }
  .article-hero__illustration { width: min(100%, 220px); }
  .article-layout { padding-top: 40px; padding-bottom: 60px; }
}

/* Keep the final desktop anchor aligned without leaving a blank tail after the footer. */
@media (min-width: 1025px) and (min-height: 761px) {
  .contacts:has(#contacts-title:target) {
    display: flex;
    flex-direction: column;
    min-height: calc(100vh - 145px);
  }
  .contacts:has(#contacts-title:target) .contacts__inner { flex: 1 1 auto; }
  .contacts:has(#contacts-title:target) .contacts__route {
    display: grid;
    grid-template-rows: minmax(0, 1fr) auto;
  }
  .contacts:has(#contacts-title:target) .contacts__map {
    height: 100%;
    min-height: 0;
    aspect-ratio: auto;
  }
}
