/* One quiet motion language throughout the public site. No animation library. */
:root{--motion-ease:cubic-bezier(.22,.8,.25,1);--motion-fast:220ms;--motion-slow:650ms}
html{scrollbar-gutter:stable;scroll-padding-top:120px}
main [id]{scroll-margin-top:120px}
:is(h1,h2,h3){text-wrap:balance}
p{ text-wrap:pretty }
button,a,input,select,textarea,summary{touch-action:manipulation}
a,button,summary{transition:color var(--motion-fast),background-color var(--motion-fast),border-color var(--motion-fast),box-shadow .3s,transform .3s var(--motion-ease)}
:is(a,button,summary):focus-visible{outline:3px solid #b18a43;outline-offset:5px}
.button:active,.dalton-pill:active{transform:translateY(1px) scale(.98)}
.button{box-shadow:0 4px 12px #1736510b}
.page-heading{background:radial-gradient(ellipse at 95% 5%,#dce7f5,transparent 60%),linear-gradient(130deg,#f2f5f7,#edf1f7)}
.breadcrumbs a{color:#466384;text-underline-offset:4px}
.breadcrumbs,.event-story-crumb,.section-nav{display:flex;position:relative;inset:auto;height:auto;max-height:none;background:transparent;border:0;padding:0;overflow:visible;align-items:center}
.breadcrumbs,.event-story-crumb{flex-wrap:wrap;gap:12px}
body main :is(.breadcrumbs,.event-story-crumb)>a:not(.button){font:400 .8rem/1.5 Georgia,serif;padding:0;border:0;box-shadow:none}
.section-nav{flex-wrap:wrap}
.breadcrumbs a:hover{text-decoration:underline}
.page-heading .lead{max-width:780px}
.section-nav a{transition:background .25s,color .25s,transform .25s}
.contact-band .contact-secondary{width:fit-content}
.contact-details a{overflow-wrap:anywhere}
.form-panel :is(input,textarea,select){border-radius:8px;transition:border-color .2s,box-shadow .2s,background .2s}
.form-panel :is(input,textarea,select):focus{border-color:#567ab1;box-shadow:0 0 0 4px #315f9b12;background:#fff}
.form-panel .field:focus-within label{color:#234e8c}
.form-status{line-height:1.7}
.form-status,.muted-note,.organisation-preview-note{max-width:80ch}
.info-card,.lgs-values article,.family-guidance-grid article,.family-hours-grid article{transition:transform .35s var(--motion-ease),box-shadow .35s,border-color .35s}
.story-card{border-radius:12px;overflow:hidden;transition:transform .35s var(--motion-ease)}
.story-card img{transition:filter .4s,transform .6s var(--motion-ease);border-radius:12px;aspect-ratio:4/3;object-fit:cover}
.gallery-item{border-radius:12px;overflow:hidden;transition:transform .35s var(--motion-ease),box-shadow .35s;background:#f7f9fc;border:1px solid #d6dfeb}
.gallery-item img{width:100%;height:auto;aspect-ratio:4/3;transition:filter .4s;border-radius:0}
.gallery-item>span,.gallery-item small{padding-inline:15px}
.gallery-item small{padding-bottom:15px}
.lightbox{border:1px solid #c8d3e2;border-radius:18px;box-shadow:0 30px 100px #081a3f55}
.lightbox::backdrop{background:#08172ed9;backdrop-filter:blur(5px)}
.lightbox[open]{animation:site-dialog-in .3s var(--motion-ease)}
.lightbox-navigation button,.lightbox-tools button{min-height:44px;border-radius:999px}
.faq details{border-color:#c9d5e4;transition:background .25s,border-color .25s}
.faq details[open]{background:#e9eff7;border-color:#9eb6d8}
.faq summary{min-height:56px;cursor:pointer;padding-right:16px}
.faq details[open] p{animation:site-copy-in .3s var(--motion-ease)}
@supports(interpolate-size:allow-keywords){
  .faq details{interpolate-size:allow-keywords}
  .faq details::details-content{height:0;overflow:clip;transition:height .32s var(--motion-ease),content-visibility .32s allow-discrete}
  .faq details[open]::details-content{height:auto}
}
.calendar-day{transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}
.calendar-day:active{transform:scale(.96)}
.calendar-day-panel{border-radius:16px}
.calendar-filters button,.newsroom-filters button,.filters button{min-height:44px}
.newsroom-grid>.newsroom-card,.calendar-list-group,.calendar-day-events>.calendar-event{animation:site-copy-in .3s var(--motion-ease)}
.newsroom-card:focus-visible{outline-offset:5px}
.newsroom-card-description{color:#526580}
.footer{border-top:1px solid #d4deeb;background:radial-gradient(ellipse at 0 100%,#dce5f2,transparent 55%),#edf1f6}
.footer .footer-bottom{align-items:center}
.back-to-top{padding:10px 0;border:0;background:transparent;color:#375987;font:inherit;min-height:44px;white-space:nowrap}
.back-to-top span{display:inline-block;margin-left:6px;transition:transform .25s}
.back-to-top:hover span{transform:translateY(-3px)}
.site-enter{animation:site-reveal .7s var(--motion-ease) backwards;animation-delay:var(--reveal-delay,0ms)}
.site-offscreen .review-marquee-track{animation-play-state:paused!important}
body[data-page="home"] .activity-progress i{animation-duration:4.4s}
body[data-page="home"] .dalton-photo-wall a{overflow:hidden}
body[data-page="home"] .dalton-photo-wall img{transition:transform .75s var(--motion-ease)}
body[data-page="home"] .dalton-pillars-grid>a{transition:transform .35s var(--motion-ease),background .35s}
/* Opening remains scroll-driven; other elements never hijack scrolling. */
body .header #main-nav.open{animation:site-menu-in .25s var(--motion-ease)}
body[data-page].menu-open{position:fixed;top:var(--menu-scroll,0px);left:0;right:0;width:100%;overflow:hidden}
body[data-page].menu-open .header{position:fixed;top:0;left:0;right:0;width:100%;transform:none;z-index:100}
body .header #main-nav.open>a{animation:site-copy-in .35s var(--motion-ease) both}
body .header #main-nav.open>a:nth-of-type(2n){animation-delay:35ms}
@media(hover:hover) and (pointer:fine){
  .button:hover{box-shadow:0 8px 22px #17365120;transform:translateY(-3px)}
  .section-nav a:hover{transform:translateY(-2px)}
  .info-card:hover,.lgs-values article:hover,.family-guidance-grid article:hover,.family-hours-grid article:hover{transform:translateY(-4px);box-shadow:0 12px 25px #183a6510;border-color:#9bb4d4}
  .gallery-item:hover{transform:translateY(-4px);box-shadow:0 16px 30px #193b7018}
  .gallery-item:hover img{filter:brightness(1.04)}
  .story-card:hover{transform:translateY(-4px)}
  .story-card:hover img{filter:brightness(1.04)}
  .calendar-day:hover{transform:translateY(-2px);box-shadow:0 4px 9px #21427013}
  body[data-page="home"] .dalton-photo-wall a:hover img{transform:scale(1.035)}
  body[data-page="home"] .dalton-pillars-grid>a:hover{transform:translateY(-5px)}
}
@media(max-width:680px){
  html{scroll-padding-top:104px}main [id]{scroll-margin-top:104px}
  .footer .footer-bottom{align-items:flex-start}
  .page-heading .lead{font-size:1rem;line-height:1.7}
  .page-heading .section-nav{flex-wrap:nowrap;overflow-x:auto;padding:8px 0 4px}
  .calendar-filters{flex-wrap:nowrap;overflow:auto;scrollbar-width:thin;padding-bottom:7px}
  .calendar-filters button{flex-shrink:0}
  .newsroom-card{display:block}
  .newsroom-card-image{width:100%;height:auto;min-height:0;aspect-ratio:4/3;object-fit:contain;background:#e4ebf4}
  .newsroom-card-copy{padding:20px}
  .newsroom-card h3{font-size:1.5rem}
  .newsroom-card-description{font-size:.9rem}
  .story-arrows button,.story-pause{min-height:44px;min-width:44px}
  .story-dot{width:24px;height:36px;border-radius:0;background:radial-gradient(circle,#b6c4d9 3px,transparent 4px)}
  .story-dot[aria-current="true"]{transform:none;background:radial-gradient(circle,#2858a3 4px,transparent 5px)}
  .story-dots{gap:0}
  .story-card img{height:auto;aspect-ratio:4/3}
  .faq summary{line-height:1.5}
  .lightbox{max-width:calc(100% - 20px)}
  .lightbox-navigation{gap:10px;flex-wrap:wrap}
}
@keyframes site-reveal{from{opacity:.15;transform:translateY(18px)}to{opacity:1;transform:none}}
@keyframes site-copy-in{from{opacity:.4;translate:0 6px}to{opacity:1;translate:0 0}}
@keyframes site-menu-in{from{opacity:.3;translate:0 -8px}to{opacity:1;translate:0 0}}
@keyframes site-dialog-in{from{opacity:0;transform:translateY(12px) scale(.985)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .site-enter{opacity:1;transform:none}
  .button:hover,.story-card:hover,.gallery-item:hover,.calendar-day:hover,.info-card:hover,.lgs-values article:hover,.family-guidance-grid article:hover,.family-hours-grid article:hover{transform:none}
}
