/* Mobile composition pass · 20 October 2026.
   The 64/52 px section rhythm separates chapters without preserving desktop
   minimum heights. Text steps use 16–22 px; models retain explicit art slots.
   All overrides are <=780 px. Desktop typography and hero geometry are owned
   elsewhere. Load after team-portraits.css and footer-scene.css. */
@media (max-width:780px) {
  .section { padding-top:64px; padding-bottom:64px; }
  .section .kicker { margin-bottom:18px; }
  .section-heading { margin-bottom:28px; }
  .section-intro { margin-top:17px; max-width:42ch; }
  .morning.section { min-height:0; padding-top:70px; padding-bottom:34px; grid-template-columns:minmax(0,1fr) minmax(0,1fr); column-gap:3vw; }
  .morning-title { grid-column:1/-1; }
  .morning-title h2 { font-size:clamp(55px,8vw,68px); }
  .morning .morning-clock { grid-column:2; grid-row:2; width:100%; max-width:none; height:300px; margin:0; align-self:center; }
  .morning .morning-clock .clock-number { font-size:23vw; }
  .morning-copy { grid-column:1; grid-row:2; margin-top:25px; }
  .morning-copy .large-copy { font-size:clamp(21px,3vw,25px); }
  .morning-copy>p+p { margin-top:16px; }
  .morning-foot { margin-top:32px; padding-top:18px; }

  /* A laboratory study, an imaging study, then a consultation list. Different
     tonal grounds and type levels make the three roles legible without tiles. */
  .services .service-grid { border-color:#a9bea5; }
  .services .service-cell { min-height:365px; padding-top:23px; padding-bottom:24px; }
  .services .service-analysis { background:linear-gradient(115deg,#dce8d145,transparent 76%); }
  .services .service-uzi { background:linear-gradient(115deg,#edf3e739,transparent 76%); }
  .services .service-top { color:#49674e; font-size:14px; font-weight:500; line-height:1.45; }
  .services .service-name { margin-top:20px; color:var(--ink); }
  .services .service-desc { color:#526c57; font-size:16px; line-height:1.55; max-width:29ch; }
  .services .service-cell.service-doctor {
    min-height:0; padding-top:28px; padding-bottom:26px;
    border-top:1px solid #a9bea5; background:#d7e3ce29;
  }
  .service-doctor .service-top { margin-bottom:6px; }
  .service-doctor h3 { font-size:34px; line-height:1.12; }
  .service-doctor .specialties { border-top:1px solid #b5c8ad; }
  .service-doctor .specialties button {
    min-height:49px; padding:13px 0; font-size:17px; line-height:1.35;
    color:var(--ink); border-bottom-color:#b5c8ad;
  }
  .service-doctor .service-desc { margin-top:4px; font-size:15px; }

  /* On a small tablet the heading spans one row, then portrait and list share
     a reading row. No sticky portrait or orphan label between the two. */
  .doctors .team-layout { grid-template-columns:minmax(0,.76fr) minmax(0,1.24fr); gap:24px; }
  .doctors .team-editorial { display:contents; }
  .doctors .team-editorial>.section-heading { grid-column:1/-1; grid-row:1; margin:0; }
  .doctors .team-editorial>.section-heading>.section-intro { margin-top:16px; }
  .doctors .team-portrait { grid-column:1; grid-row:2; position:relative; top:auto; width:100%; max-width:none; margin:0; }
  .doctors .team-portrait>.kicker { margin-bottom:12px; }
  .doctors .team-editorial>.doctor-list { grid-column:2; grid-row:2; }
  .doctors .doctor-list>.doctor-row { padding-top:20px; padding-bottom:22px; row-gap:8px; }
  .doctors .doctor-list>.doctor-row>.doctor-name { font-size:clamp(27px,4.2vw,34px); }
  .doctors .team-portrait .portrait-notice { margin-top:12px; line-height:1.5; }

  /* The shared 3D canvas is ABOVE the DOM. Give its measured slot a distinct
     right column instead of relying on z-index to hide it behind text. */
  .clinic.section { display:grid; grid-template-columns:minmax(0,1.25fr) minmax(150px,.75fr); gap:24px; min-height:0; align-items:start; }
  .clinic .clinic-content { grid-column:1; grid-row:1; width:100%; min-width:0; }
  .clinic .clinic-art { grid-column:2; grid-row:1; width:100%; height:350px; margin:45px 0 0; align-self:start; }
  .clinic .clinic-content h2 { font-size:clamp(36px,5.1vw,44px); }
  .clinic .clinic-content>p:not(.kicker) { margin-top:18px; }
  .clinic .clinic-content .line-link { margin-top:18px; }

  .questions.section { gap:24px; padding-top:54px; }
  .questions .faq-list { padding-top:0; }
  .questions summary { padding-top:19px; padding-bottom:19px; }
  .contacts.section { padding-top:64px; padding-bottom:0; }
  .contacts .contact-finale { gap:30px; }
  .contacts .contact-heading .kicker { margin-bottom:18px; }
  .contacts .contact-heading .button { margin-top:24px; }
  .contacts .contact-details { gap:25px; }
  .contacts .brand-lockup { margin-top:38px; min-height:225px; padding-top:14px; padding-bottom:16px; }
  .contacts .footer-art { height:215px; }
}

@media (max-width:600px) {
  .section { padding-top:52px; padding-bottom:52px; }
  .section .kicker { margin-bottom:16px; }
  .section-heading { margin-bottom:25px; }
  .section-intro { margin-top:16px; line-height:1.6; }
  .morning.section { display:flex; min-height:0; padding-top:57px; padding-bottom:27px; }
  .morning-title h2 { font-size:clamp(49px,12vw,67px); }
  .morning .morning-clock { width:100%; height:clamp(215px,64vw,350px); margin:10px 0 16px; }
  .morning .morning-clock .clock-number { font-size:39vw; }
  .morning-copy .large-copy { font-size:clamp(24px,6.3vw,30px); }
  .morning .morning-copy { margin-top:0; }
  .morning .morning-copy>p+p { max-width:34ch; margin-top:16px; }
  .morning .morning-foot { margin-top:28px; gap:7px; }
  .services .service-cell { min-height:345px; padding-top:22px; padding-bottom:22px; }
  .services .service-name { margin-top:18px; font-size:45px; }
  .services .service-top { font-size:13px; }
  .services .service-desc { max-width:30ch; }
  .services .service-cell.service-doctor { display:flex; min-height:0; gap:0; padding-top:27px; padding-bottom:25px; }
  .service-doctor .service-top { margin:0 0 17px; }
  .services .service-doctor h3 { margin:0; font-size:clamp(32px,8.5vw,41px); line-height:1.1; }
  .service-doctor .specialties { margin:20px 0 15px; }
  .services .service-doctor .service-desc { margin:0; max-width:32ch; }

  /* Compact portrait crop keeps title, face and list in one short sequence.
     The source is unchanged; object-position keeps the face above the centre. */
  .doctors .team-layout { grid-template-columns:minmax(0,1fr); gap:22px; }
  .doctors .team-editorial>.section-heading { grid-column:1; grid-row:1; }
  .doctors .team-portrait { grid-column:1; grid-row:2; width:100%; max-width:none; margin:0; }
  .doctors .team-portrait-stack { aspect-ratio:4/3; border-radius:14px 14px 8px 8px; }
  .doctors .team-portrait .doctor-media img { object-position:50% 34%; }
  .doctors .team-editorial>.doctor-list { grid-column:1; grid-row:3; }
  .doctors .team-portrait .portrait-notice { max-width:39ch; font-size:14px; }
  .doctors .doctor-list>.doctor-row { padding-top:20px; padding-bottom:22px; }
  .doctors .doctor-list>.doctor-row>.doctor-name { font-size:clamp(28px,7.5vw,36px); line-height:1.17; }

  /* Below 600: right-hand model only beside the title. Description and action
     use full width underneath, avoiding a long narrow body-text column. */
  .clinic.section { grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:0 14px; padding-top:52px; padding-bottom:46px; }
  .clinic .clinic-content { display:contents; }
  .clinic .clinic-content>.kicker { grid-column:1/-1; grid-row:1; margin:0 0 17px; }
  .clinic .clinic-content>h2 { grid-column:1; grid-row:2; font-size:clamp(28px,7.7vw,43px); line-height:1.13; align-self:center; min-width:0; }
  .clinic .clinic-art { grid-column:2; grid-row:2; width:100%; height:clamp(158px,44vw,218px); margin:0; align-self:center; }
  .clinic .clinic-content>p:not(.kicker) { grid-column:1/-1; grid-row:3; width:100%; max-width:38ch; margin:17px 0 0; }
  .clinic .clinic-content>.line-link { grid-column:1/-1; grid-row:4; justify-self:start; margin-top:16px; }

  .questions.section { padding-top:48px; gap:23px; }
  .contacts.section { padding-top:55px; padding-bottom:0; }
  .contacts .contact-finale { gap:28px; }
  .contacts .contact-details { gap:27px; padding:0; align-items:stretch; }
  .contacts .address { margin-top:11px; }
  .contacts .brand-lockup {
    grid-template-columns:minmax(72px,.35fr) minmax(0,1fr); gap:10px;
    min-height:0; margin-top:33px; padding:13px 0 17px; text-align:left;
  }
  .contacts .footer-art { width:100%; max-width:none; height:145px; justify-self:stretch; }
  .contacts .finale-signature { min-width:0; padding:0; }
  .contacts .finale-wordmark { font-size:clamp(30px,9.1vw,50px); line-height:1.14; margin:0; }
  .contacts .finale-tagline { margin-top:9px; font-size:clamp(13px,3.5vw,17px); gap:7px; line-height:1.4; }
  .contacts .finale-tagline::before { width:13px; }
  .contacts footer { align-items:flex-start; gap:18px; padding:22px 0 78px; }
  .contacts footer>span { order:initial; flex:1; width:auto; max-width:none; font-size:13px; line-height:1.55; }
}
