/* Adult Day Services: contained editorial movement, ordinary document scroll. */
.adult-day-page { background: var(--paper); }
.adult-day-page :focus-visible { outline: 3px solid #9b6a18; outline-offset: 5px; }
.adult-day-page main [id] { scroll-margin-top: 112px; }
.adult-day-page main { --ad-line: rgba(16,34,53,.2); font-size: 18px; line-height: 1.75; }
.ad-shell { width: min(1320px, calc(100% - 80px)); margin-inline: auto; }
.ad-section { position: relative; padding-block: clamp(80px, 7vw, 126px); }
.adult-day-page main h1, .adult-day-page main h2, .adult-day-page main h3 { text-wrap: pretty; }
.adult-day-page main h1 { margin-bottom: 25px; font-size: clamp(2.9rem, 4vw, 4.2rem); line-height: 1.04; letter-spacing: -.025em; }
.adult-day-page main h2 { margin: 0 0 28px; font-size: clamp(2.6rem, 3.7vw, 3.9rem); line-height: 1.09; }
.adult-day-page main h3 { font-size: clamp(1.8rem, 2.5vw, 2.5rem); line-height: 1.2; }
.ad-eyebrow { margin: 0 0 22px; color: #805517; font-size: .78rem; font-weight: 700; line-height: 1.5; letter-spacing: .15em; text-transform: uppercase; }
.ad-prose { max-width: 650px; }
.ad-prose p, .ad-hero-copy > p { margin-bottom: 1.3em; }
.ad-lead { font-size: 1.18em; line-height: 1.65; }
.ad-display-line, .ad-closing-line { font-family: var(--serif); font-size: clamp(1.8rem, 2.6vw, 2.6rem); line-height: 1.25; }
.ad-display-line { color: #805517; }
.ad-closing-line { margin-top: 1.2em; color: var(--ink); }
.ad-button { min-height: 56px; max-width: 100%; width: fit-content; padding: 15px 23px; display: inline-flex; align-items: center; justify-content: center; border: 1px solid #a77b28; background: #efcc78; color: #102235; font: 700 .88rem/1.45 var(--sans); text-align: center; cursor: pointer; }
.ad-button:hover { background: #ffe3a3; }
.ad-button:disabled { cursor: default; opacity: .7; }
.ad-text-link { display: inline-flex; min-height: 48px; width: fit-content; gap: 14px; align-items: center; padding-block: 8px; border-bottom: 1px solid currentColor; color: #805517; font-size: .9rem; font-weight: 700; }
.ad-text-link:hover { text-decoration: underline; text-underline-offset: 5px; }
.ad-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 28px; margin-top: 30px; }
.ad-hero { padding: 150px 0 90px; background: #f1e9dc; }
.ad-hero-grid { display: grid; grid-template-columns: minmax(0, .96fr) minmax(0, 1.04fr); align-items: center; gap: clamp(36px, 4.4vw, 74px); }
.ad-hero-copy { grid-column: 1; grid-row: 1; }
.ad-hero-photo { grid-column: 2; grid-row: 1; margin: 0; }
.adult-day-page picture { display: block; }
.adult-day-page picture img { display: block; width: 100%; height: auto; }
.ad-hero-photo figcaption, .ad-family-photo figcaption { padding-top: 16px; color: #62533c; font-family: var(--serif); font-size: 1.22rem; line-height: 1.4; }
.ad-hero-photo picture { box-shadow: 0 25px 70px rgba(50,31,12,.14); }
.ad-life { background: var(--paper); }
.ad-split, .ad-family-copy { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(35px,6vw,95px); align-items: start; }
.ad-split > *, .ad-hero-grid > *, .ad-family-copy > *, .ad-tomorrow-grid > *, .ad-object-grid > *, .ad-halia-grid > * { min-width: 0; }
.ad-arrival-stage { overflow: clip; }
.ad-cadence, .ad-beginning-questions { margin: 32px 0; padding: 0 0 0 24px; list-style: none; border-left: 2px solid #ad7627; }
.ad-cadence li, .ad-beginning-questions li { padding-block: 5px; }
.ad-story-openings { background: #102a3d; color: #fffdf8; }
.ad-story-openings .ad-eyebrow { color: #f0d184; }
.ad-explorer-heading { display: flex; align-items: end; gap: 40px; justify-content: space-between; margin-bottom: 22px; }
.ad-explorer-heading h2 { max-width: 760px; margin-bottom: 0 !important; }
.ad-explorer-hint { max-width: 290px; margin: 0; color: #e0e6e9; font-size: .93rem; line-height: 1.65; }
.ad-story-track { overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; scrollbar-color: #d7a841 #102a3d; scrollbar-width: thin; touch-action: pan-x pan-y pinch-zoom; scroll-padding-inline: 0; }
.ad-story-track ol { display: flex; gap: 30px; margin: 0; padding: 25px 0 28px; list-style: none; }
.ad-story-opening { position: relative; flex: 0 0 77%; min-width: 0; display: flex; align-items: center; gap: clamp(26px,5vw,75px); padding: 34px 10px 34px 0; border-top: 1px solid rgba(240,209,132,.5); border-bottom: 1px solid rgba(240,209,132,.5); scroll-snap-align: start; scroll-margin-inline: 0; }
.ad-story-opening:last-child { margin-right: 23%; }
.ad-story-number { color: #d7a841; font-family: var(--serif); font-size: clamp(5rem,9vw,9.5rem); font-weight: 500; line-height: .95; }
.ad-story-opening h3 { max-width: 580px; margin: 0; color: #fffdf8; font-size: clamp(2rem,3.2vw,3.3rem) !important; }
.ad-story-track.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.ad-explorer-controls { display: flex; align-items: center; justify-content: space-between; gap: 18px; margin-top: 22px; }
.ad-explorer-controls[hidden] { display: none; }
.ad-explorer-controls button { min-height: 48px; padding: 9px 15px; display: inline-flex; align-items: center; gap: 12px; border: 1px solid #d7a841; background: transparent; color: #f0d184; font: 600 .9rem/1.4 var(--sans); cursor: pointer; }
.ad-explorer-controls button[aria-disabled="true"] { color: #bac6ce; border-color: #70818c; cursor: default; }
.ad-explorer-controls p { margin: 0; color: #e0e6e9; font-size: .9rem; }
.ad-story-openings :focus-visible, .ad-inquiry :focus-visible { outline-color: #f0d184; }
.ad-tomorrow { z-index: 2; background: #eadbc1; }
.ad-tomorrow h2 { max-width: 900px; }
.ad-tomorrow-grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1fr); gap: clamp(40px,8vw,130px); margin-top: 50px; }
.ad-paired-thought p { max-width: 400px; font-family: var(--serif); font-size: clamp(2rem,3vw,3rem); line-height: 1.2; }
.ad-paired-thought p + p { color: #805517; }
.ad-halia { background: var(--paper); }
.ad-halia-grid { display: grid; grid-template-columns: minmax(0,1.1fr) minmax(0,.75fr); gap: clamp(45px,9vw,140px); align-items: center; }
.ad-halia-sequence { margin: 28px 0 36px; padding: 0; list-style: none; }
.ad-halia-sequence li { padding: 17px 0 17px 22px; border-left: 2px solid #cdbb99; color: #31475a; font-size: 1.1rem; }
.ad-halia-sequence li.is-active { border-left-color: #805517; color: #102235; font-weight: 600; }
.ad-halia-figure { margin: 0; }
.ad-halia-figure img { width: 100%; height: auto; }
.ad-halia-figure figcaption { padding-top: 18px; color: #805517; font-family: var(--serif); font-size: 2.4rem; }
.ad-halia-figure figcaption span { margin-left: 14px; color: #31475a; font-family: var(--sans); font-size: .82rem; }
.ad-families { background: #f1e9dc; }
.ad-family-photo { width: min(100%, 1080px); margin: 0 auto 65px; }
.ad-family-copy { align-items: start; }
.ad-objects { background: #e8ddcd; }
.ad-object-grid { display: grid; grid-template-columns: minmax(0,.85fr) minmax(0,1.15fr); gap: clamp(35px,5vw,80px); align-items: center; }
.ad-object-grid figure { margin: 0; }
.ad-object-grid picture { box-shadow: 14px 14px 0 #d5c0a1; }
.ad-leaders { background: #06192c; color: #fffdf8; }
.ad-leaders .ad-eyebrow, .ad-leaders .ad-display-line { color: #f0d184; }
.ad-leaders-inner { max-width: 1020px; }
.ad-leaders h2 { max-width: 850px; }
.ad-leaders .ad-prose { max-width: 780px; margin-left: auto; }
.ad-rhythm { background: var(--paper); }
.ad-rhythm-list { display: flex; flex-wrap: wrap; gap: 0 24px; margin: 28px 0; padding: 0; list-style: none; }
.ad-rhythm-list li { padding: 10px 0; border-bottom: 1px solid #cdbb99; font-family: var(--serif); font-size: 1.55rem; }
.ad-dignity { background: #f1e9dc; }
.ad-dignity-inner { max-width: 1000px; }
.ad-dignity .ad-prose { max-width: 780px; }
.ad-beginning { background: var(--paper); }
.ad-faq { background: #f1e9dc; }
.ad-faq-inner { max-width: 1050px; }
.ad-faq-item { border-top: 1px solid #ab9775; }
.ad-faq-item:last-child { border-bottom: 1px solid #ab9775; }
.ad-faq-item summary { min-height: 76px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding-block: 22px; cursor: pointer; list-style: none; font-family: var(--serif); font-size: clamp(1.55rem,2vw,2rem); line-height: 1.25; }
.ad-faq-item summary::-webkit-details-marker { display: none; }
.ad-faq-item summary > span:last-child { flex: 0 0 25px; color: #805517; font-family: var(--sans); font-size: 1.4rem; text-align: center; }
.ad-faq-item[open] summary > span:last-child { transform: rotate(45deg); }
.ad-faq-item > div { max-width: 850px; padding: 0 45px 24px 0; }
.ad-inquiry { background: #06192c; color: #fffdf8; }
.ad-inquiry .ad-eyebrow { color: #f0d184; }
.ad-inquiry-intro { max-width: 1020px; margin-bottom: 55px; }
.ad-inquiry-intro > p:not(.ad-eyebrow) { max-width: 780px; }
.ad-form-panel { max-width: 900px; padding-top: 40px; border-top: 1px solid #897448; }
.ad-form-panel h3 { max-width: 700px; margin-bottom: 30px; color: #f0d184; }
.ad-form { max-width: 850px; }
.ad-field-pair { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: 24px; }
.ad-field { min-width: 0; margin-bottom: 23px; }
.ad-field label { display: block; margin-bottom: 8px; font-size: .98rem; font-weight: 600; }
.ad-optional { color: #bac6ce; font-size: .85rem; font-weight: 400; }
.ad-field input, .ad-field textarea { box-sizing: border-box; width: 100%; min-width: 0; min-height: 50px; padding: 13px 14px; border: 1px solid #b6c2cb; border-radius: 0; background: #fffdf8; color: #102235; font: 400 1rem/1.6 var(--sans); }
.ad-field textarea { resize: vertical; }
.ad-field [aria-invalid="true"] { border: 2px solid #f6b2a5; }
.ad-error { display: block; margin-top: 6px; color: #ffd0c6; font-size: .9rem; }
.ad-error:empty { display: none; }
.ad-form-note, .ad-contact-fallback { color: #e0e6e9; font-size: .95rem; line-height: 1.75; }
.ad-contact-fallback { margin-top: 24px; }
.ad-contact-fallback a, .ad-inquiry noscript a { color: #f0d184; text-decoration: underline; text-underline-offset: 4px; }
.ad-form [role="status"] { margin: 24px 0 0; padding: 18px; border: 1px solid #cdbb99; color: #fffdf8; }
.ad-form [hidden] { display: none; }
@media (min-width:1100px) and (prefers-reduced-motion:no-preference) {
 .ad-chapter-stack { position: relative; isolation: isolate; }
 .ad-story-openings { position: sticky; top: 76px; z-index: 1; padding-block: 48px; }
 .ad-chapter-stack.ad-layer-static .ad-story-openings { position: relative; top: auto; }
 /* Keyboard focus returns the interactive chapter to ordinary flow so the
    following chapter cannot cover a focused control. */
 .ad-chapter-stack:has(.ad-story-openings :focus-visible) .ad-story-openings { position: relative; top: auto; }
 @supports not selector(:has(*)) {
  .ad-chapter-stack:focus-within .ad-story-openings { position: relative; top: auto; }
 }
 .ad-tomorrow { box-shadow: 0 -25px 60px rgba(2,14,27,.2); }
 .ad-motion-enabled [data-ad-arrival] { opacity: 0; transition: opacity .6s ease, transform .7s cubic-bezier(.2,.7,.2,1); }
 .ad-motion-enabled [data-ad-arrival="left"] { transform: translateX(-32px); }
 .ad-motion-enabled [data-ad-arrival="right"] { transform: translateX(24px); transition-duration: .75s, .95s; }
 .ad-motion-enabled [data-ad-arrival].is-arrived { opacity: 1; transform: none; }
}
@media (max-width:1099px) {
 .ad-hero { padding-top: 110px; }
 .ad-hero-grid { display: flex; flex-direction: column; align-items: stretch; gap: 42px; }
 .ad-hero-copy { max-width: 850px; }
 .ad-hero-photo { width: min(100%,850px); align-self: center; }
 .ad-hero-photo img { object-fit: contain; }
 .ad-explorer-heading { display: block; }
 .ad-explorer-hint { max-width: 650px; margin-top: 24px; }
 .ad-halia-grid { gap: 45px; grid-template-columns: minmax(0,1fr) minmax(0,.7fr); }
}
@media (max-width:800px) {
 .ad-shell { width: min(680px, calc(100% - 40px)); }
 .ad-section { padding-block: 76px; }
 .adult-day-page main { font-size: 17px; }
 .adult-day-page main h1 { font-size: clamp(2.8rem,7vw,3.8rem); }
 .adult-day-page main h2 { font-size: clamp(2.35rem,6.8vw,3.5rem); }
 .ad-hero { padding: 96px 0 76px; }
 .ad-hero-grid { gap: 30px; }
 .ad-split, .ad-family-copy, .ad-tomorrow-grid, .ad-halia-grid, .ad-object-grid { grid-template-columns: minmax(0,1fr); gap: 35px; }
 .ad-halia-figure { width: min(100%,420px); margin-inline: auto; }
 .ad-family-photo { margin-bottom: 40px; }
 .ad-story-opening { flex-basis: 86%; align-items: start; flex-direction: column; gap: 22px; padding-block: 28px; }
 .ad-story-number { font-size: 4.5rem; }
 .ad-story-opening h3 { font-size: clamp(1.8rem,5.2vw,2.6rem) !important; }
 .ad-story-opening:last-child { margin-right: 14%; }
 .ad-explorer-controls { gap: 9px; }
 .ad-explorer-controls button { padding-inline: 10px; gap: 8px; }
 .ad-explorer-controls p { font-size: .8rem; text-align: center; }
 .ad-tomorrow-grid { margin-top: 34px; }
 .ad-object-grid picture { box-shadow: 7px 7px 0 #d5c0a1; }
 .ad-field-pair { grid-template-columns: minmax(0,1fr); gap: 0; }
 .ad-faq-item > div { padding-right: 0; }
}
@media (max-width:390px) {
 .ad-shell { width: calc(100% - 36px); }
 .ad-explorer-controls button { font-size: .8rem; padding-inline: 8px; }
}
@media (prefers-reduced-motion:reduce) {
 .adult-day-page, .adult-day-page * { scroll-behavior: auto !important; animation: none !important; transition: none !important; }
 .ad-story-openings { position: relative; top: auto; }
 .ad-tomorrow { box-shadow: none; }
 [data-ad-arrival] { opacity: 1; transform: none; }
}
@media print {
 .ad-story-track { overflow: visible; }
 .ad-story-track ol { display: block; }
 .ad-story-opening { margin: 0 !important; padding-block: 20px; color: #102235; }
 .ad-story-openings, .ad-story-opening h3 { color: #102235; background: white; }
 .ad-story-openings { position: static; }
 .ad-explorer-controls { display: none; }
}
