/* ============================================================
   RESPONSIVE — 1920 / 1440 / 1280 / 1024 / 768 / 425 / 375 / 320
   ============================================================ */

@media (max-width:1280px){
  .intro-grid{ gap:48px; }
  .intro-badge{ padding:18px 20px; }
  .intro-badge-num{ font-size:34px; }
  .intro-facts{ gap:18px; }
  .intro-facts strong{ font-size:27px; }
  .facility-grid{ grid-template-columns:repeat(4,1fr); }
  .services-layout{ grid-template-columns:.9fr 1.4fr; gap:50px; }
  .product-grid{ grid-template-columns:repeat(3,1fr); gap:20px; }
  .svc-grid{ grid-template-columns:repeat(3,1fr); }
  .svcp-intro{ grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:48px; }
}

@media (max-width:1024px){
  :root{ --pad-desktop:var(--pad-tablet); --gap-lg:100px; --gap-md:70px; }
  .topbar-left{ gap:22px; }
  .main-nav{ display:none; }
  .header-actions .btn-primary{ display:none; }
  .hamburger{ display:flex; }
  .header-actions .call-chip{ display:none; }
  .intro-section::before{ display:none; }
  .intro-grid{ grid-template-columns:1fr; gap:52px; }
  .intro-media{ max-width:100%; }
  .intro-content h2{ max-width:20ch; }
  .intro-copy, .intro-facts{ max-width:720px; }
  .facility-grid{ grid-template-columns:repeat(3,1fr); }
  .facility-grid-4{ grid-template-columns:repeat(2,1fr) !important; }
  .svc-grid{ grid-template-columns:repeat(2,1fr); }
  .product-grid{ grid-template-columns:repeat(2,1fr); gap:20px; }
  .video-grid{ grid-template-columns:repeat(2,1fr); gap:18px; }
  .services-layout{ grid-template-columns:1fr; gap:40px; }
  .services-sticky{ position:static; }
  .s-bg{ display:none; }
  .service-row{ min-height:0; padding:26px 0; }
  .service-row:hover{ min-height:0; }
  .philosophy-layout{ grid-template-columns:1fr; gap:44px; }
  .philosophy-section .lede{ max-width:60ch; }
  .philosophy-section h2{ max-width:20ch; }
  .philosophy-diagram{ max-width:520px; margin:0 auto; }
  .philosophy-section::before{ left:50%; }
  .why-intro{ grid-template-columns:1fr; gap:44px; }
  /* once the intro stacks, the capped figure needs auto margins to centre */
  .why-media{ max-width:580px; margin-left:auto; margin-right:auto; }
  .why-intro-copy h2{ max-width:20ch; }
  .contact-grid{ grid-template-columns:1fr; gap:50px; }
  .ct-grid{ grid-template-columns:repeat(2,1fr); }
  .ct-map{ aspect-ratio:16/9; }
  .doctor-grid{ grid-template-columns:1fr; max-width:620px; margin-left:auto; margin-right:auto; }
  .consult-grid{ grid-template-columns:1fr; gap:44px; }
  .svcp-intro{ grid-template-columns:1fr; gap:32px; padding-bottom:38px; }
  .svcp-figure{ max-width:440px; }
  .svcp-intro-copy h2{ max-width:24ch; }
  .svcp-body{ padding-top:36px; }
  .sd-layout{ grid-template-columns:1fr; gap:36px; }
  .sd-nav{ position:static; display:flex; flex-wrap:wrap; gap:6px 10px; padding:18px 20px; }
  .sd-nav a{ border-bottom:none; padding:8px 14px; border:1px solid var(--sage); border-radius:2px; }
  .sd-nav a.active, .sd-nav a:hover{ padding-left:14px; background:var(--sage-light); }
  .sd-nav a::before{ display:none; }
  .footer-top{ grid-template-columns:1fr; gap:32px; text-align:center; }
  .footer-brand p{ margin-left:auto; margin-right:auto; }
  .footer-social{ justify-content:center; }
  .footer-col ul{ align-items:center; }
  .footer-col ul a:hover{ padding-left:0; }
  .footer-bottom{ flex-direction:column; align-items:center; text-align:center; gap:8px; }
  .two-col{ grid-template-columns:1fr; gap:40px; }
  .ab-split{ grid-template-columns:1fr; gap:38px; }
  .ab-story-grid{ grid-template-columns:1fr; gap:36px; }
  .ab-split-rev .ab-media{ order:0; }
  .ab-media{ max-width:100%; }
  .ab-copy h2{ max-width:22ch; }
  .ab-founder{ grid-template-columns:1fr; gap:34px; }
  /* stacked figures need auto margins or they hug the left edge */
  .ab-portrait{ max-width:280px; margin-left:auto; margin-right:auto; }
  .ab-media{ margin-left:auto; margin-right:auto; }
}

@media (max-width:900px){
  .topbar-right .topbar-item:nth-child(2){ display:none; }
}

@media (max-width:768px){
  :root{ --pad-desktop:var(--pad-mobile); --header-h:78px; --header-h-scrolled:64px; --gap-lg:70px; --gap-md:56px; }
  body{ font-size:15px; }
  .topbar{ display:none; }
  .main-nav{ display:none; }
  .header-actions .btn-primary{ display:none; }
  .hamburger{ display:flex; }
  .logo-img{ height:40px; }
  header.site-header.is-scrolled .logo-img{ height:34px; }
  .logo-mark{ width:38px; height:38px; font-size:14px; }
  .logo-text .l1{ font-size:15px; }
  .logo-text .l2{ font-size:9px; }
  .mobile-nav-list a{ font-size:20px; padding:10px 0; }
  .mobile-nav-list li:last-child a{ font-size:17px; }
  .mobile-nav-close{ top:18px; right:16px; width:40px; height:40px; }

  .hero{ min-height:calc(100svh - var(--header-h)); }
  .hero-inner{ padding-top:48px; padding-bottom:56px; }
  .hero-lede{ font-size:16px; }
  /* .btn is inline-flex and defaults to flex-start, so any button that
     stretches full width on mobile would left-align its label */
  .btn{ justify-content:center; text-align:center; }
  .btn-row{ flex-direction:column; align-items:stretch; gap:12px; }
  .btn-row .btn{ width:100%; justify-content:center; }
  .why-intro-copy .btn, .doctor-cta .btn{ width:100%; justify-content:center; }

  .page-hero{ min-height:340px; }
  .svcp-lead{ font-size:16.5px; margin:20px 0 0; }
  .svcp-body p{ font-size:15.2px; line-height:1.82; }
  .svcp-figure{ padding:9px; max-width:100%; }
  .svcp-figure img{ aspect-ratio:4/3; }
  .svcp-intro{ gap:26px; padding-bottom:30px; }
  .svcp-intro-copy h2{ max-width:none; font-size:clamp(25px, 7vw, 32px); }
  .svcp-intro-copy h2::after{ margin-top:18px; width:44px; }
  .svcp-body{ padding-top:30px; }
  .svcp-h3{ font-size:20px; margin-top:34px; padding-top:24px; }
  .svcp-app{ gap:14px; margin-top:24px; }
  .svcp-app-mark{ width:29px; height:29px; font-size:13px; }
  .svcp-app-body h4{ font-size:17px; }
  .svcp-terms li{ grid-template-columns:1fr; gap:7px; padding:16px 0; }
  .svcp-terms strong{ font-size:16px; }
  .svcp-terms span{ font-size:14.4px; text-align:left; hyphens:none; }
  .svcp-list{ padding:18px 18px; }
  .svcp-list li{ font-size:14.2px; }
  .section-head{ flex-direction:column; align-items:flex-start; gap:16px; margin-bottom:44px; }
  .section-head-center{ align-items:center; text-align:center; }
  .philosophy-diagram{ max-width:100%; }
  .intro-facts{ grid-template-columns:1fr 1fr; }
  .ab-media, .svcp-figure{ margin-left:auto; margin-right:auto; }

  .intro-media{ gap:12px; }
  .intro-media-row{ gap:12px; }
  .intro-badge{ padding:14px 16px; }
  .intro-badge-num{ font-size:28px; }
  .intro-badge-label{ font-size:9.5px; letter-spacing:.1em; }
  .intro-lead{ font-size:17px !important; padding-left:16px; }
  .intro-facts{ grid-template-columns:1fr 1fr; gap:22px; margin:34px 0 32px; padding:26px 0; }
  .intro-facts strong{ font-size:26px; }
  .intro-facts span{ font-size:11px; }
  .svc-grid{ grid-template-columns:1fr; gap:16px; }
  .facility-grid{ grid-template-columns:repeat(2,1fr); gap:12px; }
  .facility-item{ padding:20px 18px 22px; }
  .facility-item h4{ font-size:15.5px; }
  .facility-item p{ font-size:12.8px; }
  .facility-grid-4{ grid-template-columns:1fr !important; }
  .philo-node-label{ font-size:15px; }
  .philo-center-label{ font-size:30px; }
  .why-list{ grid-template-columns:1fr; gap:14px; }
  .w-inner{ min-height:228px; }
  .w-face{ padding:22px 22px 24px; }
  .w-front h3{ font-size:18.5px; max-width:none; padding-right:42px; }
  .w-back h3{ font-size:17px; max-width:none; }
  .w-back p{ font-size:14px; }
  .w-num{ font-size:28px; top:19px; right:20px; }
  .w-icon{ width:46px; height:46px; margin-bottom:12px; }
  .w-icon svg{ width:23px; height:23px; }
  .w-hint{ width:29px; height:29px; }
  .why-media{ padding:10px; }
  .video-grid{ grid-template-columns:1fr; gap:16px; margin-top:38px; }
  .video-card .play-btn{ right:13px; bottom:12px; }
  .video-card .play-circle{ width:40px; height:40px; }
  .video-card .play-circle svg{ width:13px; height:13px; }
  .video-caption{ font-size:15px; padding:30px 64px 15px 16px; }
  .product-grid{ grid-template-columns:repeat(2,1fr); gap:14px; margin-top:38px; }
  .product-card{ padding:10px 10px 0; }
  .pc-body{ padding:13px 4px 15px; }
  .pc-buy{ width:100%; justify-content:center; margin-top:13px; padding:10px 14px; }
  .pc-tag{ font-size:9.5px; letter-spacing:.14em; margin-bottom:7px; }
  .pc-body h4{ font-size:16px; margin-bottom:9px; padding-bottom:9px; }
  .pc-body p{ font-size:12.6px; }

  .service-list{ display:none; }
  .service-accordion{ display:block; }
  /* open item mirrors the desktop row: the photo fills the whole card
     behind a scrim, with the text inverted over it */
  .sa-item{
    position:relative;
    overflow:hidden;
    border:1px solid var(--sage);
    border-radius:4px;
    margin-bottom:10px;
    background:var(--white);
    transition:border-color .4s var(--ease-premium);
  }
  .sa-item:last-child{ margin-bottom:0; }
  .sa-bg{
    position:absolute; inset:0;
    z-index:0;
    background-size:cover;
    background-position:center;
    opacity:0;
    transform:scale(1.05);
    transition:opacity .5s var(--ease-premium), transform 1s var(--ease-premium);
  }
  .sa-bg::after{
    content:'';
    position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(14,40,28,.86) 0%, rgba(14,40,28,.72) 45%, rgba(14,40,28,.80) 100%);
  }
  .sa-item.open{ border-color:var(--forest); }
  .sa-item.open .sa-bg{ opacity:1; transform:scale(1); }

  .sa-head{
    position:relative; z-index:1;
    display:grid; grid-template-columns:30px 1fr 28px;
    align-items:start; gap:14px;
    padding:18px 18px 18px 16px;
    cursor:pointer;
  }
  .sa-num{ font-family:var(--font-display); font-size:17px; color:var(--earth); line-height:1.5; transition:color .4s var(--ease-premium); }
  .sa-title{ font-family:var(--font-display); font-size:17.5px; line-height:1.35; color:var(--forest); transition:color .4s var(--ease-premium); }
  .sa-item.open .sa-title{ color:var(--white); }
  .sa-item.open .sa-num{ color:var(--sage); }
  .sa-arrow{
    width:28px; height:28px; margin-top:1px;
    border-radius:50%; border:1px solid var(--sage);
    display:flex; align-items:center; justify-content:center; flex-shrink:0;
    transition:transform .3s var(--ease-premium), background .3s var(--ease-premium), border-color .3s var(--ease-premium);
  }
  .sa-item.open .sa-arrow{ transform:rotate(135deg); background:var(--white); border-color:var(--white); }
  .sa-item.open .sa-arrow svg{ stroke:var(--forest); }

  .sa-body{ position:relative; z-index:1; max-height:0; overflow:hidden; transition:max-height .45s var(--ease-premium); }
  .sa-body-inner{ padding:0 18px 20px 60px; }
  .sa-body-inner p{ font-size:14.2px; line-height:1.7; color:rgba(255,255,255,.82); margin-bottom:14px; }
  .sa-body-inner .text-link{ font-size:11px; color:var(--white); }
  .sa-body-inner .text-link::after{ background:rgba(255,255,255,.5); }

  .contact-grid{ gap:40px; }
  .contact-actions .btn{ width:100%; justify-content:center; }
  .ct-grid{ grid-template-columns:repeat(2,1fr); gap:12px; }
  .ct-card{ padding:20px 18px 22px; }
  .ct-icon{ width:38px; height:38px; margin-bottom:14px; }
  .ct-icon svg{ width:17px; height:17px; }
  .ct-body h4{ font-size:10px; letter-spacing:.13em; margin-bottom:10px; padding-bottom:10px; }
  .ct-body p{ font-size:13.6px; line-height:1.75; }
  .ct-map{ aspect-ratio:4/3; margin-top:16px; }
  .form-shell{ padding:30px 22px; }
  .form-popup{ padding:18px; }
  .form-popup-box{ padding:34px 24px 28px; }
  .form-popup-box h3{ font-size:21px; }
  .form-popup-msg{ font-size:14.4px; }
  .form-row{ grid-template-columns:1fr; gap:0; }

  /* compact roster card: a square portrait beside the details.
     A full-width banner crop blew the headshots up far too large. */
  .doctor-grid{ gap:12px; margin-top:38px; }
  .doctor-grid .doctor-card{ grid-template-columns:104px 1fr; gap:16px; padding:14px; align-items:center; }
  .doctor-grid .dc-photo{ aspect-ratio:1/1; border-radius:3px; }
  .doctor-grid .dc-photo img{ object-position:center 18%; }
  .doctor-grid .doctor-card h3{ font-size:17px; margin-bottom:9px; padding-bottom:9px; }
  .doctor-grid .dc-tag{ font-size:10px; margin-bottom:8px; }
  .doctor-grid .dc-cred{ font-size:12.6px; line-height:1.65; }
  .doctor-grid .dc-mono span{ font-size:30px; }
  .doctor-cta{ margin-top:38px; }
  .doctor-cta .btn{ width:100%; justify-content:center; }
  .doctor-card h3{ font-size:18.5px; }
  .dc-cred{ font-size:13px; }
  .dc-mono span{ font-size:44px; }

  .ab-facts{ grid-template-columns:repeat(2,1fr); }
  .ab-facts li{ padding:22px 14px; gap:8px; }
  .ab-facts li:nth-child(3){ border-left:none; }
  .ab-facts li:nth-child(n+3){ border-top:1px solid var(--sage); }
  .ab-facts strong{ font-size:30px; }
  /* long labels like MEMBER CHARITABLE TRUST need the tracking eased
     to wrap cleanly in a half-width cell */
  .ab-facts span{ font-size:10.5px; letter-spacing:.06em; line-height:1.5; }
  .ab-story-text p{ font-size:15px; }
  .ab-portrait{ max-width:260px; margin-left:auto; margin-right:auto; }
  .ab-quote{ font-size:17px; padding-left:18px; }
  .footer-top{ grid-template-columns:1fr; gap:32px; padding-bottom:36px; text-align:center; }
  footer.site-footer{ padding-top:48px; }
  .footer-brand p{ margin-left:auto; margin-right:auto; }
  .footer-social{ justify-content:center; }
  .footer-col ul{ align-items:center; }
  /* the 4px hover indent would jog centred links sideways */
  .footer-col ul a:hover{ padding-left:0; }
  .footer-bottom{ flex-direction:column; align-items:center; text-align:center; gap:8px; }

  .timeline::before, .timeline-progress{ left:5px; }
  .tl-item{ grid-template-columns:1fr; gap:0; padding-bottom:14px; }
  .tl-time{ text-align:left; padding:0 0 8px 26px; font-size:14.5px; }
  .tl-dot{ left:0; top:2px; }
  .tl-content{ margin-left:26px; padding:16px 18px 18px; }
  .tl-content h4{ font-size:16.5px; }
  .tl-content p{ font-size:13.8px; }

  .wa-float{ right:16px; bottom:16px; width:50px; height:50px; }
  .wa-float svg{ width:27px; height:27px; }
  .cursor-dot, .cursor-ring{ display:none; }

  h1{ font-size:clamp(38px,10vw,52px); }
  h2{ font-size:clamp(30px,8vw,40px); }
}

@media (max-width:425px){
  .container{ padding:0 18px; }
  .ct-grid{ grid-template-columns:1fr; }
  .facility-grid{ grid-template-columns:1fr; }
  .eyebrow{ font-size:11.5px; letter-spacing:.14em; }
  .lede{ font-size:15.5px; }
  .facility-item h4{ font-size:16px; }
  .svc-body h3{ font-size:15.5px; }
  .svcp-app{ grid-template-columns:1fr; gap:10px; }
  .svcp-app-mark{ width:26px; height:26px; font-size:12px; }
  .svcp-app-body h4{ font-size:16px; }
  .svcp-list{ padding:16px 15px; }
  .svcp-list li{ font-size:13.6px; padding-left:19px; }
  .svcp-terms li{ padding:14px 0; }
  .svcp-lead{ font-size:16px; }
  .svcp-body p{ font-size:14.8px; }
  .svc-card .svc-body{ padding:18px 17px 20px; }
  .btn{ padding:15px 22px; font-size:12px; }
  .cta-band{ padding:70px 0; }
  .form-shell{ padding:24px 16px; }
  .product-grid{ grid-template-columns:1fr; gap:14px; max-width:400px; margin-left:auto; margin-right:auto; }
}

@media (max-width:375px){
  .logo-text .l2{ display:none; }
}
