/* Shared layout corrections. Preserve each page's existing brand and content. */
:root { --mobile-bar-height: 0px; }
.site-inner { --aqua: var(--gold); --teal: var(--navy); --bg: var(--cream-soft); }
body { padding-bottom: var(--mobile-bar-height); }
body :is(.btn, .btn-navy, .btn-ghost, .verify-btn) { max-width: 100%; line-height: 1.5; text-align: center; }
body :is(.hero-actions, .actions) { gap: 16px; }
body :is(summary, .sn-group) { gap: 16px; }
body :is(summary, .sn-group)::after { flex-shrink: 0; }
body :is(button, a, input, select, textarea, summary):focus-visible { outline: 3px solid #a8863d; outline-offset: 4px; }
body :is(.hero-grid, .why-grid, .appt-grid, .guide-grid, .cols, .viw, .team-grid, .svc-grid, .steps) > * { min-width: 0; }
body :is(.hours div, .hours-line) { gap: 16px; align-items: baseline; }
body :is(.hours div, .hours-line) > :last-child { text-align: right; flex-shrink: 0; }
body :is(.btn, .btn-navy, .btn-ghost, .verify-btn, .caps-sub, .role, .step h3) { overflow-wrap: break-word; }

/* Homepage rhythm, photographs, and review cards. */
.site-home .hero-grid { padding-inline: 24px; }
.site-home .checklist { margin: 0 0 28px; gap: 16px; }
.site-home .checklist + .hero-actions { margin-top: 28px; margin-bottom: 0; }
.site-home .member-photo img { object-position: center 25%; }
.site-home .member-photo img[src$="dr-foster.jpg"] { object-position: center 20%; }
.site-home .member h3 { margin-bottom: 8px; line-height: 1.3; }
.site-home .member .role { line-height: 1.5; margin-bottom: 16px; }
.site-home .member-body { padding: 24px; }
.site-home .tour-grid figure:last-child { grid-column: span 2; }
.site-home .tour-grid figcaption { padding: 28px 16px 14px; line-height: 1.5; }
.site-home .review { flex-basis: calc((100% - 72px) / 4); padding: 34px 30px 30px; }
.site-home .rev-name { margin-bottom: 0; line-height: inherit; }
.site-home .review .gsrc { line-height: 1.2; gap: 0; color: var(--gray); text-decoration: none; }
.site-home .review .gsrc .g-sub { margin: 2px 0 0 1px; }
.site-home .review a.read-more { text-decoration: none; }
.site-home .video-banner { padding: 0; }
.site-home .video-banner .hero-actions { margin-bottom: 0; }
@media (min-width: 961px) and (max-width: 1320px) {
  .site-home .hero-grid { grid-template-columns: 1.05fr .95fr; gap: 40px; }
  .site-home .why-grid { grid-template-columns: .95fr 1.05fr; gap: 40px; }
  .site-home .appt-grid { grid-template-columns: 1fr 1.1fr; gap: 40px; }
  .site-home :is(.svc-grid, .team-grid) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .site-home .why-img { aspect-ratio: 3/4; max-height: 520px; }
  .site-home .tour-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 1320px) {
  .site-home .review { flex-basis: calc((100% - 24px) / 2); }
}
@media (max-width: 960px) {
  .site-home .hero-img { width: 100%; }
}
@media (max-width: 600px) {
  .site-home .review { flex-basis: 100%; }
  .site-home .rev-carousel { padding: 0 0 64px; }
  .site-home .rev-arrow { top: auto; bottom: 0; transform: none; }
  .site-home .rev-arrow.prev { left: calc(50% - 54px); }
  .site-home .rev-arrow.next { right: calc(50% - 54px); }
  .site-home .contact-card { padding: 24px 20px; }
  .site-home .hours { font-size: 14px; }
  .site-home .vb-content { padding: 64px 24px 88px; }
}

/* Sidebar pages: readable heading lines, affordable grid widths, scrollable menu. */
.site-inner h2 { line-height: 1.2; margin-bottom: 16px; }
.site-inner .step h3 { line-height: 1.4; letter-spacing: .1em; }
.site-inner .menu { z-index: 800; align-items: flex-start; padding: 80px 24px 40px; overflow-y: auto; overscroll-behavior: contain; }
.site-inner .menu nav { margin: auto; width: min(100%, 720px); gap: 14px; }
.site-inner .menu a { line-height: 1.35; padding: 4px 0; }
.site-inner .menu .close { position: fixed; top: 16px; right: 20px; width: 44px; height: 44px; background: #181b20; }
.site-inner .viw { grid-template-columns: minmax(200px, .8fr) minmax(0, 2fr); }
.site-inner .viw-plans { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; padding: 24px; }
.site-inner .viw-plans > * { overflow-wrap: break-word; }
.site-inner .viw-panel h3 { line-height: 1.3; margin-bottom: 16px; }
.site-inner .bio-photo { max-width: 440px; margin-inline: auto; border-radius: 14px; aspect-ratio: 4/5; object-fit: cover; object-position: center; }
.site-inner .doctor-intro { grid-template-columns: .8fr 1.2fr; gap: 48px; }
.site-inner .tech-ph { padding: 24px; text-align: center; }
.site-inner .tech-ph .lbl { line-height: 1.5; }
.site-inner .soon { line-height: 1.5; }
.site-inner .mp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.site-inner .mp-card h3 { line-height: 1.35; }
.site-inner .table-scroll { overflow-x: auto; margin-top: 36px; }
.site-inner .table-scroll .cmp { margin-top: 0; min-width: 560px; }
.site-inner .table-hint { display: none; }
.site-inner .ot-grid img { aspect-ratio: 3/2; height: auto; }
@media (max-width: 1280px) {
  .site-inner :is(.needs, .ot-grid) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 1100px) {
  .site-inner .svc-trio { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 860px) {
  .site-inner .doctor-intro { grid-template-columns: minmax(0, 1fr); gap: 32px; }
}
@media (max-width: 700px) {
  .site-inner :is(.needs, .ot-grid) { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 1200px) {
  .site-inner .viw { grid-template-columns: minmax(0, 1fr); }
  .site-inner .viw-tabs { flex-direction: row; flex-wrap: wrap; }
  .site-inner .viw-tabs button { flex: 1 1 180px; padding: 18px 20px; line-height: 1.4; }
}
@media (max-width: 600px) {
  .site-inner .table-hint { display: block; margin: 12px 0 0; color: var(--gray); font-size: 14px; }
  .site-inner :is(.mp-grid, .ins-grid) { grid-template-columns: minmax(0, 1fr); }
  .site-inner .soon { display: table; margin: 12px 0 0; }
  .site-inner .viw { padding: 18px; gap: 22px; }
  .site-inner .viw-plans { grid-template-columns: minmax(0, 1fr) !important; padding: 16px; gap: 12px; }
  .site-inner :is(.qform, .callout) { padding: 24px 20px; }
  .site-inner .btn { padding: 18px 24px; }
}

/* Floating controls must clear the mobile call bar, including wrapped labels. */
body .mobile-call { padding-bottom: calc(12px + env(safe-area-inset-bottom, 0px)); }
body .mobile-call a { display: flex; align-items: center; justify-content: center; min-width: 0; line-height: 1.4; }
body #hdc-btn { bottom: calc(var(--mobile-bar-height) + 20px); transition: transform .2s, background-color .2s; }
body #hdc { bottom: calc(var(--mobile-bar-height) + 94px); max-height: calc(100dvh - var(--mobile-bar-height) - 110px); }
body #hdc .hdc-msgs { flex: 1 1 240px; min-height: 70px; }
body #hdc :is(.hdc-head, .hdc-chips, .hdc-in, .hdc-note) { flex-shrink: 0; }
body #hdc .hdc-head { gap: 12px; }
body #hdc .hdc-head b { line-height: 1.4; }
body #hdc .hdc-close { width: 32px; height: 32px; flex-shrink: 0; }
body #hdc .hdc-in input { min-width: 0; }
body #hdc .hdc-in button { flex-shrink: 0; }
body #a11y-panel { max-height: calc(100dvh - var(--mobile-bar-height) - 24px); overflow-y: auto; }
@media (max-width: 640px) {
  body #hdc-btn { width: 52px; height: 52px; right: 16px; bottom: calc(var(--mobile-bar-height) + 16px); }
  body #hdc { right: 12px; bottom: calc(var(--mobile-bar-height) + 80px); max-height: calc(100dvh - var(--mobile-bar-height) - 96px); }
  body #a11y-btn { top: auto; bottom: calc(var(--mobile-bar-height) + 16px); left: 16px; right: auto; transform: none; width: 44px; height: 44px; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
  body #a11y-panel { top: auto; bottom: calc(var(--mobile-bar-height) + 72px); left: 12px; right: auto; transform: none; border-radius: 12px; border: 1px solid rgba(34,38,44,.15); }
}
@media (max-height: 600px) {
  body #hdc { top: 12px; bottom: calc(var(--mobile-bar-height) + 12px); max-height: none; overflow-y: auto; }
  body #hdc .hdc-msgs { flex-basis: 100px; }
  body #hdc .hdc-chips { padding-bottom: 8px; gap: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; }
}
