/* Shared headers, full-width waves, page illustrations and accessible spacing. */
.theme-b > .header { display:grid; grid-template-columns:auto minmax(0,1fr) auto; align-items:center; padding:20px 4%; gap:20px; }
.theme-b > .header > .brand { grid-column:1; grid-row:1; min-width:0; }
.theme-b > .header > nav { grid-column:2; grid-row:1; order:0; width:auto; margin:0; display:flex; align-items:center; justify-content:flex-end; gap:16px; }
.theme-b > .header > .nav-cta { grid-column:3; grid-row:1; justify-self:end; margin:0; }
.theme-b > .header nav a { line-height:1.6; }
.theme-b section[id] { scroll-margin-top:28px; }
.faq-teaser-layout { display:grid; grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr); gap:60px; align-items:center; }
.faq-teaser-copy { min-width:0; }
.faq-teaser-copy > p:not(.eyebrow) { color:#435984; margin-top:24px; font-size:18px; line-height:2; }
.faq-teaser-copy .faq-page-link { margin-top:27px; gap:15px; }
.faq-teaser .atmosphere-faq-image { width:100%; margin:0; }
.faq-teaser .atmosphere-image-frame { height:270px; border-radius:38% 8% 30% 8%; }
.theme-b .atmosphere-faq-image [data-atmosphere-parallax] { height:calc(100% + 56px); margin-top:-28px; object-position:50% 50%; }
.faq-page-hero { padding:42px 0 48px; background:#edf3ff; border:0; }
.faq-page-hero .breadcrumb { margin-bottom:30px; }
.faq-page-hero h1 { font-size:clamp(32px,3.4vw,49px); }
.faq-page-hero > .wrap > p:last-child { margin-top:17px; font-size:18px; color:#435984; }
.faq-page .faq-detail-section { padding-top:100px; }
.faq-page .faq-tabs { position:relative; z-index:3; }
.faq-page .faq-home-return { margin-top:30px; text-align:center; }
.theme-b h1.svg-page-heading { line-height:0; max-width:100%; }
.theme-b .section-boundary { position:relative; display:block; width:100%; margin-inline:0; border:0; background:var(--section-color,#fffdf7); padding-inline:0; }
.theme-b .section-boundary > .section-boundary-wave { display:block; position:absolute; z-index:2; top:-1px; left:0; width:100%; height:64px; pointer-events:none; }
.theme-b .section-boundary > .section-inner { position:relative; z-index:3; }
.theme-b .about > .section-inner { display:grid; grid-template-columns:1fr 1fr; gap:70px; }
.theme-b .parents > .section-inner { display:grid; grid-template-columns:.85fr 1.15fr; gap:70px; align-items:center; }
.theme-b .organization-teaser > .section-inner { display:grid; grid-template-columns:.45fr 1fr; gap:55px; align-items:center; }
.theme-b .representative-layout > .section-inner { display:grid; grid-template-columns:.7fr 1.3fr; gap:62px; align-items:start; }
.theme-b .organization-hero { border:0; }
.theme-b .organization-return { border-top:0; }
.growth-illustration { width:240px; max-width:100%; margin:22px 0 0; }
.pace-illustration { width:260px; max-width:100%; margin:30px 0 0; }
.theme-b .schedule-heading { position:static; }
.pace-illustration figcaption { font-size:14px; text-align:center; color:#435984; margin-top:2px; }
.line-scene { display:block; width:100%; height:auto; fill:none; stroke:#1648ce; stroke-width:2.3; stroke-linecap:round; stroke-linejoin:round; overflow:visible; }
.line-scene .scene-ground { stroke:#93abc7; stroke-width:1.6; }
.line-scene .growth-sun,.line-scene .pace-rays { stroke:#d0a829; stroke-width:2; }
.line-scene .pace-traveller { fill:#e5bb32; stroke:none; offset-path:path('M34 146 C68 146 73 106 113 112 C163 120 142 65 187 70 L219 70'); offset-distance:100%; offset-rotate:0deg; }
.line-scene.motion-ready .scene-stroke { stroke-dasharray:1; stroke-dashoffset:1; }
.line-scene.motion-ready .pace-traveller { opacity:0; }
.line-scene.is-playing .scene-stroke { animation:scene-line-draw 1.2s ease both; }
.line-scene.is-playing .sprout-stem { animation-duration:1s; animation-delay:.1s; }
.line-scene.is-playing .leaf-left { animation-duration:.7s; animation-delay:.65s; }
.line-scene.is-playing .leaf-right { animation-duration:.8s; animation-delay:1s; }
.line-scene.is-playing .growth-sun { animation-duration:.5s; animation-delay:1.55s; }
.line-scene.is-playing .pace-route { animation-duration:2.1s; }
.line-scene.is-playing .pace-book { animation-duration:.7s; animation-delay:1.35s; }
.line-scene.is-playing .pace-rays { animation-duration:.5s; animation-delay:.15s; }
.line-scene.is-playing .pace-traveller { animation:pace-travel 2.1s ease both; }
@keyframes scene-line-draw { from { stroke-dasharray:1; stroke-dashoffset:1; } to { stroke-dasharray:1; stroke-dashoffset:0; } }
@keyframes pace-travel { 0% { opacity:0; offset-distance:0%; } 10% { opacity:1; } 100% { opacity:1; offset-distance:100%; } }
.motion-off .line-scene .scene-stroke { stroke-dashoffset:0!important; animation:none!important; }
.motion-off .line-scene .pace-traveller { opacity:1!important; offset-distance:100%!important; animation:none!important; }
@media(max-width:1250px) and (min-width:801px) {
  .theme-b > .header > nav { grid-column:1/-1; grid-row:2; width:100%; justify-content:center; }
}
@media(max-width:800px) {
  .theme-b > .header { grid-template-columns:minmax(0,1fr) auto; padding:17px 5%; gap:12px; }
  .theme-b > .header > nav { grid-column:1/-1; grid-row:2; width:100%; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px 9px; justify-content:center; }
  .theme-b > .header > .nav-cta { grid-column:2; grid-row:1; font-size:13px; padding:9px 12px; min-height:42px; }
  .theme-b > .header .brand { gap:10px; }
  .theme-b > .header .brand b { font-size:23px; }
  .theme-b > .header .brand small { font-size:10px; }
  .theme-b > .header nav a { text-align:center; }
  .theme-b > .header nav a:last-child { grid-column:1/-1; }
  .theme-b .section-boundary > .section-boundary-wave { height:38px; }
  .theme-b .about > .section-inner,.theme-b .parents > .section-inner,.theme-b .organization-teaser > .section-inner,.theme-b .representative-layout > .section-inner { grid-template-columns:1fr; gap:30px; }
  .theme-b .days .feed-heading { flex-direction:column; align-items:flex-start; gap:17px; }
  .theme-b .days .feed-heading > div:first-child { width:100%; flex:none; }
  .theme-b .days h2,.theme-b .days .svg-title { text-align:left; margin-inline:0; }
  .faq-teaser-layout { grid-template-columns:1fr; gap:32px; }
  .faq-teaser-copy > p:not(.eyebrow) { font-size:17px; }
  .faq-teaser .atmosphere-image-frame { height:190px; border-radius:30% 8% 30% 8%; }
  .faq-page-hero { padding:30px 0 34px; }
  .faq-page-hero .breadcrumb { margin-bottom:24px; }
  .faq-page-hero > .wrap > p:last-child { font-size:17px; }
  .faq-page .faq-detail-section { padding-top:74px; }
  .faq-page .faq-home-return { text-align:left; }
  .growth-illustration { width:200px; }
  .pace-illustration { width:220px; margin-top:22px; }
}
@media(max-width:360px) {
  .theme-b > .header .brand { gap:8px; }
  .theme-b > .header .brand img { width:36px; height:36px; }
  .theme-b > .header .brand b { font-size:19px; }
  .theme-b > .header .brand small { font-size:8.5px; }
  .theme-b > .header > .nav-cta { font-size:12px; padding-inline:10px; }
}
@media(prefers-reduced-motion:reduce) {
  .line-scene .scene-stroke { stroke-dashoffset:0!important; animation:none!important; }
  .line-scene .pace-traveller { opacity:1!important; offset-distance:100%!important; animation:none!important; }
}
@media print {
  .theme-b .line-scene .scene-stroke { stroke-dashoffset:0!important; animation:none!important; }
  .theme-b .line-scene .pace-traveller { opacity:1!important; offset-distance:100%!important; animation:none!important; }
}
