/* Shared tablet and desktop refinements for the public preview. */
main,section,.wrap,.footer-grid>div { min-width:0; }
main :is(p,li,h1,h2,h3) { overflow-wrap:break-word; }
img { max-width:100%; }
input,textarea,select { max-width:100%; }
body .header #main-nav { position:fixed; top:var(--nav-header-height,96px); bottom:auto; height:calc(100dvh - var(--nav-header-height,96px)); max-height:calc(100dvh - var(--nav-header-height,96px)); overflow-y:auto; overscroll-behavior:contain; align-content:start; }
@media(pointer:coarse) {
  button,.button,.calendar-day,.newsroom-filters button { touch-action:manipulation; }
  input,textarea,select { font-size:16px; }
}
@media(min-width:681px) and (max-width:900px) {
  .calendar-layout { grid-template-columns:minmax(0,1fr)!important; }
  .contact-layout,.form-layout { grid-template-columns:minmax(0,1fr); }
  .footer-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  body[data-page="home"] .dalton-blue-intro-inner { grid-template-columns:minmax(0,1.6fr) minmax(0,1fr); }
  body[data-page="home"] .dalton-blue-intro h2 { font-size:clamp(2.7rem,5.8vw,4rem); }
}
@media (min-width: 681px) and (max-width: 1150px) {
  body:not([data-page="home"]) .wrap { width: calc(100% - 64px); }
  .header-inner { width: calc(100% - 56px); }
  .footer-grid { gap: 28px; }
  .contact-band > .wrap { gap: 36px; }

  body[data-page="home"] .header-inner { width: calc(100% - 56px); }
  body[data-page="home"] .brand img { width: 51px; height: 52px; }
  body[data-page="home"] .brand > span { font-size: clamp(1.25rem, 2.35vw, 1.62rem); }
  body[data-page="home"] .header-actions > a { padding-inline: clamp(12px, 1.7vw, 22px); }
  body[data-page="home"] .dalton-hero { min-height: 620px; height: min(790px, 92svh); }
  body[data-page="home"] .dalton-hero-content,
  body[data-page="home"] .dalton-hero-foot { padding-left: clamp(32px, 5vw, 64px); padding-right: clamp(32px, 5vw, 64px); }
  body[data-page="home"] .dalton-hero h1 { max-width: 900px; font-size: clamp(4rem, 7.2vw, 6.3rem); }
  body[data-page="home"] .dalton-blue-intro {
    width: 100%; max-width: none; margin: -8px 0 0;
    padding: 54px clamp(32px, 6vw, 78px) 58px;
  }
  body[data-page="home"] .dalton-blue-intro-inner { width: min(1120px, 100%); }
  body[data-page="home"] .dalton-activities { padding-inline: clamp(32px, 5vw, 64px); }
  body[data-page="home"] .dalton-activities-heading { column-gap: 34px; }
  body[data-page="home"] .dalton-activities-heading h2 { font-size: clamp(3.5rem, 6vw, 5.25rem); }
  body[data-page="home"] .dalton-activity-panel { grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr); gap: clamp(28px, 5vw, 68px); }
  body[data-page="home"] .dalton-activity-panel .activity-visual { min-height: 370px; }
  body[data-page="home"] .dalton-activity-panel .activity-copy h3 { font-size: clamp(3rem, 5.2vw, 4.6rem); }
  body[data-page="home"] .dalton-principal-section,
  body[data-page="home"] .dalton-pillars,
  body[data-page="home"] .dalton-photo-stories,
  body[data-page="home"] .dalton-news,
  body[data-page="home"] .dalton-admissions { padding-left: clamp(32px, 5vw, 64px); padding-right: clamp(32px, 5vw, 64px); }
  body[data-page="home"] .dalton-photo-wall { grid-template-rows: minmax(250px, 30vw) minmax(160px, 18vw); }
  body[data-page="home"] .dalton-principal-grid { gap: clamp(32px, 5vw, 68px); }
  body[data-page="home"] .dalton-principal-image img { max-height: 510px; object-fit: cover; }

  .calendar-shell { padding: 22px; }
  .calendar-layout { grid-template-columns: minmax(0, 1.45fr) minmax(240px, .8fr); gap: 18px; }
  .calendar-day { min-height: clamp(76px, 8.5vw, 98px); }
  .management-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .staff-track { grid-auto-columns: minmax(220px, 27vw); }
  .news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (min-width: 1151px) {
  body[data-page="home"] .dalton-blue-intro { width: 100%; max-width: none; margin: -8px 0 0; }
  body[data-page="home"] .dalton-blue-intro-inner { width: min(1320px, calc(100% - 96px)); }
  body[data-page="home"] .dalton-hero-content,
  body[data-page="home"] .dalton-hero-foot { padding-left: max(48px, calc((100vw - 1320px) / 2)); padding-right: max(48px, calc((100vw - 1320px) / 2)); }
}

@media (min-width: 1500px) {
  body[data-page="home"] .dalton-blue-intro { padding-top: 68px; padding-bottom: 72px; }
  body[data-page="home"] .dalton-activities-inner { width: min(1360px, 100%); }
  body[data-page="home"] .dalton-activity-panel .activity-visual { max-height: 650px; }
}

@media (max-width: 430px) {
  body[data-page="home"] .header-inner { width: calc(100% - 30px); gap: 8px; }
  body[data-page="home"] .brand { min-width: 0; flex: 0 1 auto; gap: 7px; }
  body[data-page="home"] .brand img { width: 39px; height: 40px; }
  body[data-page="home"] .brand > span { font-size: clamp(.93rem, 4.4vw, 1.08rem); white-space: nowrap; }
  body[data-page="home"] .brand small { font-size: .37rem; letter-spacing: .12em; }
  body[data-page="home"] .header-actions { flex: 0 0 auto; }
  body[data-page="home"] .header-actions .header-admissions { padding-inline: 7px; font-size: .49rem; }
  body[data-page="home"] .menu-toggle { gap: 6px; margin-left: 5px; }
  body[data-page="home"] .menu-toggle b { font-size: .5rem; }
  body[data-page="home"] .menu-toggle span { width: 18px; }
}

/* Purpose-built phone layouts: preserve the editorial look without making users pinch, hunt, or scroll through empty space. */
@media (max-width: 680px) {
  html { overflow-x: clip; scroll-padding-top: 82px; }
  body:not([data-page="home"]) { overflow-x: clip; }
  body:not([data-page="home"]) .wrap { width: calc(100% - 36px); }
  .header-inner { padding-left: env(safe-area-inset-left); padding-right: env(safe-area-inset-right); }
  .header-actions a, .menu-toggle, .button, .filters button, .calendar-nav button,
  .calendar-view-switch button, .calendar-filters button, .faculty-controls button { min-height: 44px; }
  #main-nav { padding-top: max(24px, env(safe-area-inset-top)); padding-bottom: max(28px, env(safe-area-inset-bottom)); }
  .page-heading { padding-block: 27px 32px; }
  .page-heading h1 { max-width: none; font-size: clamp(2.2rem, 8.5vw, 3.15rem); line-height: 1.02; }
  .page-heading .lead { max-width: 39ch; margin-top: 15px; font-size: .94rem; line-height: 1.65; }
  .page-heading .section-nav { display: flex; flex-wrap: nowrap; gap: 8px; max-width: 100%; overflow-x: auto; padding: 8px 0 4px; scrollbar-width: none; }
  .page-heading .section-nav::-webkit-scrollbar { display: none; }
  .page-heading .section-nav a { flex: 0 0 auto; min-height: 42px; padding: 9px 12px; border: 1px solid #d4dce7; border-radius: 999px; background: #ffffff78; font-size: .74rem; }
  .section { padding-block: 43px; }
  .school-window { padding-block: 45px; }
  .window-heading { margin-bottom: 28px; }
  .archive-story-grid { gap: 29px; }
  .story-image img { height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
  .photo-split { gap: 23px; }
  .photo-split figure { margin: 0; }
  .filters { flex-wrap: nowrap; max-width: 100%; overflow-x: auto; padding: 2px 1px 9px; scrollbar-width: none; }
  .filters::-webkit-scrollbar { display: none; }
  .filters button { flex: 0 0 auto; padding-inline: 13px; white-space: nowrap; }
  .gallery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .gallery-item img { aspect-ratio: 4 / 3; object-fit: cover; }
  .gallery-item > span { display: block; padding: 10px 10px 2px; font-size: 1rem; }
  .gallery-item small { display: block; padding: 0 10px 12px; font-size: .62rem; }
  .form-layout, .contact-layout, .contact-details-grid { grid-template-columns: 1fr; gap: 18px; }
  .form-panel, .contact-card { padding: 20px; }
  .contact-band { padding-block: 45px; }
  .contact-band .wrap { align-items: flex-start; }
  .footer { padding-top: 40px; }
  .footer-grid { gap: 26px 18px; }
  .footer-grid > div { min-width: 0; }
  .footer a, .footer p { overflow-wrap: anywhere; }

  .calendar-section { padding-block: 8px 48px; }
  .calendar-shell { padding: 15px 12px; }
  .calendar-toolbar { gap: 12px; }
  .calendar-month-tools { align-items: flex-start; gap: 9px; }
  .calendar-month-heading { min-width: 0; }
  .calendar-month-heading h2 { font-size: clamp(1.35rem, 6.3vw, 1.65rem); }
  .calendar-nav { flex: 0 0 auto; gap: 3px; }
  .calendar-nav button { min-width: 34px; padding-inline: 7px; }
  .calendar-nav #calendar-today { min-width: 51px; }
  .calendar-view-switch { align-self: stretch; }
  .calendar-view-switch button { flex: 1; }
  .calendar-grid { gap: 3px; }
  .calendar-day { min-height: clamp(48px, 14vw, 59px); border-radius: 8px; }
  .calendar-day-number { width: 25px; height: 25px; font-size: .74rem; }
  .calendar-day-panel { padding: 15px; }
  .calendar-disclaimer { gap: 10px; }

  .newsroom-section { padding-block: 44px 58px; }
  .newsroom-heading { display: block; margin-bottom: 22px; }
  .newsroom-heading h2 { font-size: clamp(2.4rem, 10vw, 3.5rem); }
  .newsroom-heading > p { margin-top: 13px; font-size: .86rem; }
  .newsroom-filters { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 5px; scrollbar-width: none; }
  .newsroom-filters::-webkit-scrollbar { display: none; }
  .newsroom-filters button { min-height: 42px; flex: 0 0 auto; white-space: nowrap; }
  .newsroom-home-feed { grid-template-columns: 1fr; gap: 13px; }
  .newsroom-card { display: grid; grid-template-columns: minmax(100px, 34%) minmax(0, 1fr); align-items: stretch; }
  .newsroom-card-image { height: 100%; min-height: 118px; aspect-ratio: auto; }
  .newsroom-card-copy { align-self: center; padding: 12px; }
  .newsroom-card h3 { font-size: 1.16rem; }
  .newsroom-card-description { font-size: .75rem; -webkit-line-clamp: 3; }
  .event-gallery-image { aspect-ratio: 4 / 3; }

  .people-section { padding-block: 46px 56px; }
  .people-section-heading h2 { font-size: clamp(2.45rem, 10vw, 3.6rem); }
  .management-card { min-height: 146px; }
  .management-card .people-portrait { min-height: 146px; }
  .faculty-section { padding-block: 47px 56px; }
  .faculty-toolbar { flex-wrap: wrap; gap: 12px; }
  .faculty-card { width: min(78vw, 290px); }
  .people-contact { padding-block: 42px; }

  body[data-page="home"] .dalton-hero { height: min(780px, 94svh); min-height: 640px; }
  body[data-page="home"] .dalton-hero-content { padding: 100px 22px 24px; }
  body[data-page="home"] .dalton-hero h1 { max-width: none; margin-block: 15px; font-size: clamp(2.65rem, 9.2vw, 3.45rem); line-height: .96; }
  body[data-page="home"] .dalton-hero h1 em { margin-top: 5px; font-size: .84em; }
  body[data-page="home"] .dalton-hero-content > p { max-width: 34ch; font-size: .85rem; }
  body[data-page="home"] .dalton-hero-media img { object-position: 58% center; }
  body[data-page="home"] .dalton-hero-shade { background: linear-gradient(90deg, #0b1d36e8 0%, #102749a8 55%, #10274940 100%), linear-gradient(0deg, #0b1d36b5, transparent 48%); }
  body[data-page="home"] .dalton-blue-intro { padding: 36px 22px 39px; }
  body[data-page="home"] .dalton-blue-intro h2 { font-size: clamp(2.45rem, 8.8vw, 3.3rem); }
  body[data-page="home"] .dalton-activities { padding: 43px 18px 51px; }
  body[data-page="home"] .dalton-activities-heading h2 { font-size: clamp(2.85rem, 9.8vw, 3.8rem); }
  body[data-page="home"] .activity-tabs { scroll-snap-type: x proximity; scrollbar-width: none; }
  body[data-page="home"] .activity-tabs::-webkit-scrollbar { display: none; }
  body[data-page="home"] .activity-tabs > button { flex: 0 0 auto; min-height: 50px; scroll-snap-align: start; }
  body[data-page="home"] .dalton-activity-panel { gap: 8px; }
  body[data-page="home"] .dalton-activity-panel .activity-visual { min-height: 0; aspect-ratio: 4 / 3; border-radius: 62px 3px 3px 3px; }
  body[data-page="home"] .dalton-activity-panel .activity-visual img { width: 100%; height: 100%; object-fit: cover; }
  body[data-page="home"] .dalton-activity-panel .activity-copy { padding-top: 16px; }
  body[data-page="home"] .dalton-activity-panel .activity-copy h3 { font-size: clamp(2.65rem, 9vw, 3.5rem); }
  body[data-page="home"] .activity-rotation-controls button { min-height: 42px; }
  body[data-page="home"] .dalton-pillars { padding-block: 50px 55px; }
  body[data-page="home"] .dalton-photo-stories { padding-block: 51px 58px; }
  body[data-page="home"] .dalton-photo-wall { grid-template-rows: minmax(200px, 58vw) minmax(118px, 34vw); }
  body[data-page="home"] .dalton-reviews { padding-block: 48px 40px; }
  body[data-page="home"] .review-card { flex-basis: min(82vw, 326px); min-height: 190px; }
  body[data-page="home"] .dalton-principal-section.principal-quiet { padding-block: 34px 38px; }
  body[data-page="home"] .dalton-news { padding-block: 45px 49px; }
  body[data-page="home"] .dalton-admissions { padding-block: 46px 52px; }
  body[data-page="home"] .dalton-admissions-main { gap: 19px; margin-top: 15px; }
  body[data-page="home"] .dalton-admissions-main h2 { font-size: clamp(3.65rem, 13vw, 5rem); }
  body[data-page="home"] .dalton-admissions-main > strong { font-size: clamp(3.3rem, 12vw, 4.3rem); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}
