/* V29: requested spacing, navigation, warm theme and policy-page refinements. */

/* A compact, centred introduction with the original two-line heading. */
html body.client-update-v27[data-page="home"] .home-specialists { padding-block: 34px; }
html body.client-update-v27[data-page="home"] .home-specialists-copy { max-width: 880px; }
html body.client-update-v27[data-page="home"] #home-specialists-heading {
  font-size: clamp(22px, 5.8cqi, 48px); line-height: 1.18;
  font-style: italic; margin: 12px 0 18px;
}
html body.client-update-v27[data-page="home"] .home-team-intro {
  max-width: 70ch; margin: 0 auto 20px; font-size: clamp(17px, 1.5vw, 20px);
  line-height: 1.65; font-style: italic;
}
html body.client-update-v27[data-page="home"] .home-specialists .text-link { margin-top: 0; }
html body.client-update-v27 main > :is(.home-credentials,.services-section,.clinic-story,.doctors-section,.values-section,.faq-section,.treatment-bento-section) {
  padding-block: 44px;
}
html body.client-update-v27[data-page="home"] main > .home-credentials { padding-top: 24px; }

/* Home contact: balanced map, address/action row and compact contact cards. */
html body[data-page="home"] .home-contact-match { padding-block: 38px; }
html body[data-page="home"] .home-contact-match .home-visit-grid {
  grid-template-columns: minmax(0,.92fr) minmax(0,1.08fr);
  align-items: center; gap: clamp(24px,3vw,42px);
}
html body[data-page="home"] .home-contact-match .home-map-frame.tooth-map-frame {
  width: 100%; max-width: 520px; height: clamp(420px,39vw,550px);
  min-height: 0; flex: 0 0 auto; aspect-ratio: auto; margin-inline: auto;
}
html body[data-page="home"] .home-contact-match .home-map-frame iframe { min-height: 0; height: 100%; }
html body[data-page="home"] .home-contact-match .clinic-contact-block { padding: 0; }
html body[data-page="home"] .home-contact-match .clinic-contact-block h2 {
  font-size: clamp(30px,3vw,40px); line-height: 1.17; margin: 10px 0 14px;
}
html body[data-page="home"] .home-contact-match .clinic-contact-block > .visit-intro {
  font-size: 16px; line-height: 1.65; margin: 0 0 16px;
}
html body[data-page="home"] .visit-location-row {
  display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center;
  gap: 14px; margin: 0 0 16px;
}
html body[data-page="home"] .visit-location-row p { font-size: 14px; line-height: 1.6; margin: 0; }
html body[data-page="home"] .visit-location-row .visit-directions {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  min-height: 46px; padding: 11px 14px; margin: 0; font-size: 14px; line-height: 1.4;
  border: 1px solid var(--blue); border-radius: 10px; background: var(--paper);
  color: var(--blue); white-space: nowrap; text-decoration: none; box-shadow: none;
  transition: background-color .2s ease, color .2s ease;
}
html body[data-page="home"] .visit-location-row .visit-directions:hover { background: var(--blue-soft); }
html body[data-page="home"] .visit-location-row .visit-directions span { color: inherit; font-size: 20px; }
html body[data-page="home"] .home-contact-match .visit-hours {
  display: grid; gap: 3px; padding: 14px 18px; margin: 0 0 14px; border-radius: 12px;
}
html body[data-page="home"] .home-contact-match .visit-hours strong { font-size: 17px; line-height: 1.5; }
html body[data-page="home"] .home-contact-match .visit-hours small { font-size: 14px; line-height: 1.5; }
html body[data-page="home"] .home-contact-match .contact-channel-grid {
  grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px; margin: 0;
}
html body[data-page="home"] .home-contact-match .contact-channel-grid a {
  display: flex; align-items: center; min-height: 78px; padding: 12px 14px;
  gap: 10px; border-radius: 12px; min-width: 0;
}
html body[data-page="home"] .home-contact-match .contact-channel-grid a > :is(svg,img) { width: 23px; height: 23px; flex: 0 0 23px; }
html body[data-page="home"] .home-contact-match .contact-channel-grid a > span { min-width: 0; }
html body[data-page="home"] .home-contact-match .contact-channel-grid a strong { font-size: 15px; line-height: 1.4; }
html body[data-page="home"] .home-contact-match .contact-channel-grid a small { font-size: 13px; line-height: 1.5; overflow-wrap: anywhere; }

/* Each footer doctor has a single aligned identity, qualification and specialty. */
html body .site-footer .footer-specialists { display: grid; grid-template-columns: minmax(0,1fr); gap: 0; }
html body .site-footer .footer-specialists > a {
  display: grid; grid-template-columns: minmax(0,1fr); align-items: start;
  justify-content: start; gap: 7px; width: 100%; padding-block: 14px; margin: 0;
  white-space: normal; text-align: left; line-height: 1.5;
}
html body .site-footer .footer-specialists > a + a { border-top: 1px solid var(--line); }
html body .site-footer .footer-specialists .footer-doctor-name {
  display: block; width: 100%; font-size: 15px; line-height: 1.5; margin: 0;
}
html body .site-footer .footer-specialists .footer-doctor-degrees {
  display: block; margin-top: 3px; font-size: 13px; line-height: 1.5; white-space: nowrap;
}
html body .site-footer .footer-specialists > a > span { display: block; margin: 0; font-size: 13px; line-height: 1.6; }

/* A real two-position theme switch. Labels appear on hover and keyboard focus. */
html body .site-header .appearance-toggle {
  display: inline-flex; align-items: center; justify-content: center; position: relative;
  flex: 0 0 58px; width: 58px; min-width: 58px; height: 44px; min-height: 44px;
  padding: 4px; margin: 0; border: 0; border-radius: 10px; background: transparent;
  overflow: visible; cursor: pointer;
}
.appearance-toggle .theme-toggle-track {
  display: block; position: relative; width: 50px; height: 28px;
  border: 1px solid #bcc8df; border-radius: 20px; background: #dfe7f5;
  transition: background-color .3s ease, border-color .3s ease;
}
.appearance-toggle .theme-toggle-thumb {
  display: block; position: absolute; left: 3px; top: 3px; width: 20px; height: 20px;
  border-radius: 50%; background: #243b80; box-shadow: 0 1px 3px rgb(0 0 0 / 15%);
  transform: translateX(0); transition: transform .32s cubic-bezier(.2,.7,.3,1), background-color .3s ease;
}
.appearance-toggle[aria-checked="true"] .theme-toggle-track { background: #e8ddce; border-color: #bbaa92; }
.appearance-toggle[aria-checked="true"] .theme-toggle-thumb { transform: translateX(22px); background: #66513c; }
.appearance-toggle::after {
  content: attr(data-theme-hint); position: absolute; top: calc(100% + 8px); right: 0;
  width: max-content; max-width: 240px; padding: 9px 12px; border: 1px solid var(--line);
  border-radius: 8px; background: var(--paper); color: var(--ink); font-size: 12px;
  line-height: 1.5; box-shadow: 0 5px 16px rgb(0 0 0 / 8%);
  opacity: 0; visibility: hidden; pointer-events: none; transition: opacity .18s ease, visibility .18s ease;
}
.appearance-toggle:is(:hover,:focus-visible)::after { opacity: 1; visibility: visible; }

/* A left drawer with an independent scrolling body, including short screens. */
html body .static-mobile-menu {
  position: fixed; inset: 0; display: flex; align-items: stretch; justify-content: flex-start;
  padding: 0; background: rgb(20 30 45 / 38%); backdrop-filter: blur(4px);
  opacity: 0; visibility: hidden; pointer-events: none;
  transition: opacity .3s ease, visibility 0s linear .36s;
}
html body .static-mobile-menu.open { opacity: 1; visibility: visible; pointer-events: auto; transition-delay: 0s; }
html body .static-mobile-menu .static-mobile-menu-panel {
  display: flex; flex-direction: column; width: min(390px,calc(100% - 32px));
  max-width: none; height: 100vh; height: 100dvh; max-height: 100dvh; margin: 0;
  border: 0; border-right: 1px solid var(--line); border-radius: 0 18px 18px 0;
  background: var(--menu-panel); box-shadow: 10px 0 36px rgb(0 0 0 / 12%);
  transform: translateX(-105%); transition: transform .36s cubic-bezier(.22,.7,.25,1);
  overflow: hidden;
}
html body .static-mobile-menu.open .static-mobile-menu-panel { transform: translateX(0); }
html body .static-mobile-menu .static-menu-head { flex: 0 0 auto; padding: max(12px,env(safe-area-inset-top)) 16px 12px; }
html body .static-mobile-menu .static-menu-close { width: 44px; height: 44px; flex: 0 0 44px; }
html body .static-mobile-menu .static-menu-content {
  display: flex; flex-direction: column; flex: 1; min-height: 0;
  padding: 14px 18px max(18px,env(safe-area-inset-bottom)); gap: 18px;
  overflow-y: auto; overscroll-behavior-y: contain;
}
html body .static-mobile-menu .static-menu-links { display: grid; flex: 0 0 auto; grid-template-rows: none; gap: 5px; }
html body .static-mobile-menu .static-menu-links a { min-height: 46px; padding: 9px 12px; font-size: 18px; }
html body .static-mobile-menu .static-menu-links a > svg { display: block; width: 18px; height: 18px; }
html body .static-mobile-menu .static-menu-actions { grid-template-columns: minmax(0,1fr); gap: 8px; }
html body .static-mobile-menu .static-menu-actions a { min-height: 46px; padding: 11px 14px; justify-content: center; }
html body .static-mobile-menu .static-menu-actions a strong { font-size: 14px; }
html body .static-mobile-menu .static-menu-action-icon { display: block; width: 20px; height: 20px; }
html body .static-mobile-menu .static-theme-switch button { min-height: 44px; font-size: 13px; }
html body .static-mobile-menu .static-menu-socials { gap: 8px; }
html body .static-mobile-menu .static-menu-socials a { min-height: 54px; }
html body .static-mobile-menu .static-menu-socials small { display: block; font-size: 11px; }
html body .static-mobile-menu .static-menu-hours { font-size: 13px; line-height: 1.65; padding-top: 0; margin-top: auto; }

/* Subtle page turn: one short movement per nine-second cycle, with idle time. */
.booking-calendar-icon { overflow: visible; perspective: 70px; }
.booking-calendar-icon .calendar-page {
  transform-box: fill-box; transform-origin: 50% 0%;
  animation: booking-calendar-turn 9s cubic-bezier(.4,0,.2,1) 2s infinite;
}
@keyframes booking-calendar-turn {
  0%,78%,100% { transform: perspective(45px) rotateX(0); opacity: 1; }
  84% { transform: perspective(45px) rotateX(-80deg); opacity: .7; }
  88% { transform: perspective(45px) rotateX(-170deg); opacity: 0; }
  89% { transform: perspective(45px) rotateX(30deg); opacity: 0; }
  96% { transform: perspective(45px) rotateX(0); opacity: 1; }
}
html body .assistant-wrap { transition: opacity .25s ease, transform .25s ease, visibility .25s ease; }
html body .assistant-wrap.is-footer-hidden { opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(12px); }

/* Both review pages share a stationary stone background and a native swipe rail. */
html body :is(section.reviews-home,section.full-reviews) {
  position: relative; isolation: isolate; clip-path: inset(0); background: transparent;
  animation: none; transform: none;
}
html body :is(section.reviews-home,section.full-reviews)::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: #f4f2ec url('../images/reviews-ivory-marble.webp') center / cover no-repeat;
  animation: none; transform: none;
}
html body :is(section.reviews-home,section.full-reviews)::after { display: none; }
html body .full-reviews :is(.reviews-page-head,.reviews-carousel,.review-card) { animation: none; transform: none; }
html body .reviews-carousel > [data-slot="carousel-content"] {
  min-width: 0; overflow-x: auto; overflow-y: hidden; scroll-behavior: auto;
  scroll-snap-type: x mandatory; overscroll-behavior-x: contain; scrollbar-width: none;
  -webkit-overflow-scrolling: touch;
}
html body .reviews-carousel > [data-slot="carousel-content"]::-webkit-scrollbar { display: none; }
html body .reviews-carousel > [data-slot="carousel-content"].review-moving { scroll-snap-type: none; }
html body .reviews-carousel > [data-slot="carousel-content"]:focus-visible { outline: 2px solid var(--blue); outline-offset: 3px; border-radius: 12px; }
html body .reviews-page-carousel { display: grid; grid-template-columns: 52px minmax(0,1fr) 52px; gap: 14px; align-items: center; }
html body .reviews-page-carousel > [data-slot="carousel-content"] { grid-column: 2; grid-row: 1; }
html body .reviews-page-carousel .reviews-grid { position: relative; display: flex; flex-wrap: nowrap; gap: 18px; margin: 0; padding: 0; }
html body .reviews-page-carousel .reviews-grid > .review-card {
  flex: 0 0 calc((100% - 18px) / 2); width: auto; min-width: 0; height: auto;
  margin: 0; padding: 26px; display: flex; flex-direction: column;
  scroll-snap-align: start; scroll-snap-stop: normal;
}
html body .reviews-page-carousel .reviews-grid > .static-hidden { display: none !important; }
html body .reviews-page-carousel .review-card blockquote {
  display: block; overflow: visible; -webkit-line-clamp: unset; line-clamp: unset;
  max-height: none; font-size: 17px; line-height: 1.65; margin-block: 18px 24px;
}
html body .reviews-page-carousel .review-author { margin-top: auto; }
html body .reviews-page-carousel .review-arrow {
  position: static !important; inset: auto !important; transform: none !important;
  width: 52px !important; height: 52px !important; margin: 0;
  grid-row: 1; align-self: center; border: 1px solid var(--blue) !important;
  background: var(--paper) !important; color: var(--blue) !important; border-radius: 50%;
}
html body .reviews-page-carousel .review-prev { grid-column: 1; }
html body .reviews-page-carousel .review-next { grid-column: 3; }
html body .reviews-page-carousel .review-arrow:disabled { opacity: .4; cursor: default; }

/* Warm neutrals with explicit text ownership, avoiding white-on-cream labels. */
html[data-theme="beige"] {
  --ink: #342f28; --muted: #64594d; --blue: #66513c; --blue-dark: #493a2c;
  --blue-soft: #eae0d2; --red: #8a4037; --red-dark: #713329;
  --warm: #f6f1e9; --paper: #fffdf9; --line: #d9cdbd;
  --text-main: #342f28; --text-sub: #64594d; --inverse-main: #fffdf9; --inverse-sub: #fffdf9;
  --page-backdrop: #f6f1e9; --surface-wash: #f6f1e9; --soft-surface: #fffdf9;
  --menu-panel: #fffdf9; --menu-row: #f4ede3; --menu-active: #eae0d2;
  --menu-line: #d9cdbd; --menu-icon: #eae0d2; --menu-label: #342f28;
  --menu-action: #66513c; --menu-on-action: #fffdf9;
}
html[data-theme="beige"] body :is(.clinic-story,.values-section,.site-footer,.contact-banner,.home-treatment-more,.appointment-section,.treatment-cta-card,.legal-contact-card,.artie-sheet-head,.booking-guide) {
  --ink: #342f28; --text-main: #342f28; --text-sub: #64594d;
  --blue: #66513c; --red: #8a4037; background: #ede4d7; color: #342f28; border-color: var(--line);
}
html[data-theme="beige"] body :is(.credential-card,.home-treatment-card,.treatment-bento-card,.service-card,.home-contact-channels a,.hero-location-card,.doctor-card,.faq-item,.booking-workspace,.booking-dialog,.booking-survey,.legal-nav,.legal-content,.legal-contact-card,.footer-patient-guide,.client-footer .footer-invitation) {
  --ink: #342f28; --text-main: #342f28; --text-sub: #64594d;
  background: var(--paper); color: var(--ink); border-color: var(--line);
}
html[data-theme="beige"] body :is(.site-footer,.clinic-story,.values-section,.booking-guide,.legal-contact-card,.artie-sheet-head) :is(h1,h2,h3,h4,h5,h6,strong,span,a,svg) { color: var(--text-main); }
html[data-theme="beige"] body .site-footer :is(.footer-invitation,.footer-patient-guide,.footer-specialists,.footer-grid,.footer-bottom) { border-color: var(--line); }
html[data-theme="beige"] body .site-footer :is(.footer-link-button,.footer-contact a) { background: var(--paper); color: var(--ink); border-color: var(--line); }
html[data-theme="beige"] body :is(.booking-guide,.booking-dialog .booking-guide) :is(p,li,h2,.eyebrow) { color: var(--ink) !important; }
html[data-theme="beige"] body .booking-progress li[aria-current="step"] { background: var(--paper); color: var(--ink) !important; border-color: var(--blue); }
html[data-theme="beige"] body .booking-survey :is(input:not([type="radio"]):not([type="checkbox"]),select,textarea) { background: var(--paper); color: var(--ink); border-color: #9b8b77; }
html[data-theme="beige"] body :is(.survey-small,.specialist-choices label > span,.survey-hours,.legal-highlight,.legal-inline-note) { --text-main: #342f28; --text-sub: #64594d; }
html[data-theme="beige"] body :is(.primary-button,.site-header .nav-cta,.doctor-cta,.appointment-submit,.static-menu-book,.assistant-button,.artie-composer button,.survey-actions .primary-button,.mobile-action-dock .dock-book,.mobile-action-dock .dock-call) {
  --text-main: #fffdf9; --text-sub: #fffdf9; background: #66513c;
  color: #fffdf9; border-color: #66513c; box-shadow: none;
}
html[data-theme="beige"] body :is(.primary-button,.site-header .nav-cta,.doctor-cta,.appointment-submit,.static-menu-book,.assistant-button,.artie-composer button,.survey-actions .primary-button,.mobile-action-dock .dock-book,.mobile-action-dock .dock-call) :is(span,strong,small,svg) { color: #fffdf9 !important; }
html[data-theme="beige"] body :is(.primary-button,.site-header .nav-cta,.doctor-cta,.static-menu-book):hover { background: #493a2c; border-color: #493a2c; color: #fffdf9; }
html[data-theme="beige"] body :is(.secondary-button,.white-button,.outline-light-button,.link-button,.map-below-link) { --text-main: #342f28; --text-sub: #64594d; color: #342f28; background: var(--paper); border-color: var(--line); }
html[data-theme="beige"] body .reviews-home .reviews-actions > .link-button { --text-main: #fffdf9; background: #66513c; color: #fffdf9; border-color: #66513c; }
html[data-theme="beige"] body .reviews-home .reviews-actions > .link-button :is(span,svg) { color: #fffdf9; }
html[data-theme="beige"] body :is(section.reviews-home,section.full-reviews) { --ink: #342f28; --text-main: #342f28; --text-sub: #64594d; background: transparent; }
html[data-theme="beige"] body :is(section.reviews-home,section.full-reviews)::before { background-image: linear-gradient(#f6f1e936,#f6f1e936), url('../images/reviews-ivory-marble.webp'); }
html[data-theme="beige"] body :is(.review-card blockquote,.review-author strong,.review-stars) { color: #342f28; }
html[data-theme="beige"] body .static-mobile-menu { background: rgb(52 47 40 / 36%); }
html[data-theme="beige"] body .static-mobile-menu .static-menu-call { color: #342f28; background: #f4ede3; border-color: var(--line); }
html[data-theme="beige"] body .static-mobile-menu .static-menu-call :is(strong,span,svg) { color: #342f28; }

/* Legal documents: quiet hierarchy, a usable contents column and readable prose. */
html body :is(.legal-hero,.legal-hero-terms) { padding-block: 34px 24px; background: var(--warm); }
html body .legal-hero .narrow-hero { max-width: 1080px; text-align: left; }
html body .legal-hero h1 { font-size: clamp(34px,4vw,54px); line-height: 1.12; margin: 12px 0 18px; }
html body .legal-hero h1 em { color: var(--blue); }
html body .legal-hero p { max-width: 75ch; margin: 0; font-size: 16px; line-height: 1.75; font-weight: 500 !important; }
html body .legal-meta { gap: 10px; margin-top: 18px; }
html body .legal-meta span { padding: 7px 11px; border: 1px solid var(--line); border-radius: 7px; background: var(--paper); font-size: 12px; }
html body .legal-section { padding-block: 12px 48px; background: var(--warm); }
html body .legal-layout { display: grid; grid-template-columns: 244px minmax(0,1fr); gap: 28px; align-items: start; }
html body .legal-nav { position: sticky; top: 100px; max-height: calc(100dvh - 120px); overflow-y: auto; padding: 16px; border: 1px solid var(--line); border-radius: 14px; background: var(--paper); }
html body .legal-nav > span { display: block; color: var(--blue); margin-bottom: 12px; font-size: 13px; }
html body .legal-nav a { display: flex; align-items: baseline; gap: 9px; padding: 10px 0; margin: 0; min-height: 40px; border: 0; border-bottom: 1px solid var(--line); border-radius: 0; background: transparent; box-shadow: none; font-size: 13px; line-height: 1.5; }
html body .legal-nav a:last-child { border-bottom: 0; }
html body .legal-nav a b { display: inline; flex: 0 0 19px; color: var(--blue); }
html body .legal-content { padding: clamp(20px,3vw,36px); border: 1px solid var(--line); border-radius: 16px; background: var(--paper); }
html body .legal-content > section { padding-block: 26px; margin: 0; border-bottom: 1px solid var(--line); scroll-margin-top: 108px; }
html body .legal-content > section:last-child { border-bottom: 0; padding-bottom: 0; }
html body .legal-content h2 { font-size: clamp(24px,2.5vw,30px); line-height: 1.25; margin: 8px 0 16px; }
html body .legal-content h3 { font-size: 18px; line-height: 1.5; color: var(--blue); margin: 22px 0 10px; }
html body .legal-content :is(p,li) { font-size: 16px; line-height: 1.8; font-weight: 400 !important; }
html body .legal-content p { margin: 0 0 15px; }
html body .legal-content :is(p,li) strong { font-weight: 700 !important; }
html body .legal-content ul { padding-left: 22px; margin: 12px 0 18px; list-style: disc; }
html body .legal-content li + li { margin-top: 8px; }
html body .legal-content .inline-link-button { display: inline; padding: 0; min-height: 0; background: transparent; border: 0; border-radius: 0; color: var(--blue); text-decoration: underline; text-underline-offset: 3px; box-shadow: none; }
html body :is(.legal-highlight,.legal-inline-note,.legal-contact-card) { display: flex; align-items: flex-start; gap: 14px; padding: 20px; border: 1px solid var(--line); border-radius: 12px; box-shadow: none; }
html body :is(.legal-highlight,.legal-inline-note) { background: var(--blue-soft); }
html body .legal-highlight-emergency { --text-main: #7d2a35; --text-sub: #7d2a35; background: #fff2ed; border-color: #e4bcb6; }
html body .legal-highlight-emergency strong { color: #7d2a35; }
html body :is(.legal-highlight,.legal-inline-note,.legal-contact-card) > svg { width: 24px; height: 24px; flex: 0 0 24px; margin-top: 3px; }
html body :is(.legal-highlight,.legal-inline-note) p { margin: 8px 0 0; font-size: 15px; line-height: 1.75; }
html body .legal-external-links { display: flex; flex-wrap: wrap; gap: 8px; margin: 18px 0; }
html body .legal-external-links a { font-size: 12px; padding: 9px 11px; border-radius: 8px; }
html body .legal-contact-card { --text-main: var(--ink); --text-sub: var(--muted); background: var(--warm); color: var(--ink); margin: 18px 0; }
html body .legal-contact-card > div { display: grid; gap: 9px; }
html body .legal-contact-card :is(strong,span,a,svg) { color: var(--ink); }
html body .legal-contact-card a { width: fit-content; max-width: 100%; font-size: 14px; }

@media (max-width: 1160px) {
  html body .site-header .nav-shell { gap: 10px; }
  html body .site-header .brand { flex: 1 1 auto; min-width: 0; }
  html body .site-header .nav-cta { display: inline-flex !important; margin-left: 0; }
}
@media (max-width: 960px) {
  html body .legal-layout { grid-template-columns: 210px minmax(0,1fr); gap: 20px; }
  html body[data-page="home"] .visit-location-row { grid-template-columns: minmax(0,1fr); gap: 10px; }
  html body[data-page="home"] .visit-location-row .visit-directions { justify-self: start; }
}
@media (max-width: 820px) {
  html body.client-update-v27 main > :is(.home-specialists,.home-credentials,.services-section,.clinic-story,.doctors-section,.values-section,.faq-section,.treatment-bento-section) { padding-block: 26px; }
  html body.client-update-v27[data-page="home"] .home-team-intro { font-size: 17px; line-height: 1.7; }
  html body .site-header .nav-shell { width: calc(100% - 24px); gap: 6px; }
  html body .site-header .brand { gap: 7px; }
  html body .site-header .brand img { width: 34px; height: 34px; flex: 0 0 34px; }
  html body .site-header .brand strong { font-size: 17px; white-space: nowrap; }
  html body .site-header .brand small { font-size: 9px; letter-spacing: .12em; }
  html body .site-header .appearance-toggle { width: 54px; min-width: 54px; flex-basis: 54px; padding: 2px; }
  html body .site-header .nav-cta { width: 40px; min-width: 40px; max-width: 40px; height: 42px; min-height: 42px; flex: 0 0 40px; padding: 0; }
  html body .site-header .nav-cta > svg { display: block; width: 21px; height: 21px; max-width: 21px; flex: 0 0 21px; }
  html body .site-header .nav-cta > span { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  html body .site-header .menu-trigger { width: 40px; min-width: 40px; flex: 0 0 40px; height: 42px; padding: 0; }
  html body[data-page="home"] .home-contact-match { padding-block: 28px; }
  html body[data-page="home"] .home-contact-match .home-visit-grid { grid-template-columns: minmax(0,1fr); gap: 22px; }
  html body[data-page="home"] .home-contact-match .home-map-frame.tooth-map-frame { max-width: 390px; height: auto; min-height: 0; aspect-ratio: 1 / 1; }
  html body[data-page="home"] .home-contact-match .clinic-contact-block h2 { font-size: clamp(29px,7vw,36px); }
  html body[data-page="home"] .visit-location-row { grid-template-columns: minmax(0,1fr) auto; }
  html body[data-page="home"] .home-contact-match .contact-channel-grid a { flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 7px; padding: 12px; }
  html body[data-page="home"] .home-contact-match .contact-channel-grid a small { font-size: 12px; }
  html body .reviews-page-carousel .reviews-grid > .review-card { flex-basis: 100%; padding: 22px; }
  html body .legal-layout { grid-template-columns: minmax(0,1fr); gap: 18px; }
  html body .legal-nav { position: static; display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); column-gap: 16px; max-height: none; }
  html body .legal-nav > span { grid-column: 1 / -1; }
  html body .legal-nav a { font-size: 12px; }
  html body .legal-content { padding: 20px; }
  html body .legal-content > section { padding-block: 22px; }
  html body .legal-hero { padding-block: 24px 18px; }
  html body .legal-section { padding-block: 8px 28px; }
}
@media (max-width: 767px) {
  html body[data-page="home"] .reviews-carousel,
  html body .reviews-page-carousel { display: grid; grid-template-columns: 38px minmax(0,1fr) 38px; grid-template-rows: auto; gap: 6px; padding: 0; align-items: center; }
  html body[data-page="home"] .reviews-carousel > [data-slot="carousel-content"],
  html body .reviews-page-carousel > [data-slot="carousel-content"] { grid-column: 2; grid-row: 1; }
  html body[data-page="home"] .reviews-carousel .review-arrow,
  html body .reviews-page-carousel .review-arrow {
    position: static !important; inset: auto !important; transform: none !important; translate: none;
    width: 38px !important; height: 44px !important; min-width: 0; min-height: 44px;
    margin: 0; grid-row: 1; align-self: center; border-radius: 12px;
  }
  html body[data-page="home"] .reviews-carousel .review-prev,
  html body .reviews-page-carousel .review-prev { grid-column: 1; }
  html body[data-page="home"] .reviews-carousel .review-next,
  html body .reviews-page-carousel .review-next { grid-column: 3; }
  html body[data-page="home"] .reviews-carousel .review-card { padding: 18px 16px; }
  html body[data-page="home"] .reviews-carousel .review-card blockquote { font-size: 16px; line-height: 1.6; }
  html body .reviews-page-carousel .reviews-grid > .review-card { padding: 18px 16px; }
  html body .reviews-page-carousel .review-card blockquote { font-size: 16px; line-height: 1.65; }
  /* The full Reviews page keeps complete quotations wide enough to read. */
  html body .reviews-page-carousel > [data-slot="carousel-content"] { grid-column: 1 / -1; grid-row: 2; }
  html body .reviews-page-carousel { row-gap: 12px; }
}
@media (max-width: 420px) {
  html body[data-page="home"] .visit-location-row { grid-template-columns: minmax(0,1fr); }
  html body[data-page="home"] .visit-location-row .visit-directions { justify-self: stretch; }
  html body .legal-content { padding: 16px; }
  html body :is(.legal-highlight,.legal-inline-note,.legal-contact-card) { padding: 15px; gap: 10px; }
  html body .legal-content :is(p,li) { font-size: 15px; }
}
html.mobile-desktop-mode body .site-header .appearance-toggle { width: 68px; min-width: 68px; flex-basis: 68px; min-height: 60px; }
html.mobile-desktop-mode body .static-mobile-menu .static-mobile-menu-panel { width: min(540px,88vw); }
html.mobile-desktop-mode body .static-mobile-menu .static-menu-links a { min-height: 60px; font-size: 24px; }
html.mobile-desktop-mode body .static-mobile-menu .static-menu-actions a { min-height: 60px; }
html.mobile-desktop-mode body .static-mobile-menu .static-menu-actions a strong { font-size: 18px; }
@media (prefers-reduced-motion: reduce) {
  html body .booking-calendar-icon .calendar-page { animation: none; }
  html body :is(.static-mobile-menu,.static-mobile-menu .static-mobile-menu-panel,.assistant-wrap,.theme-toggle-thumb,.theme-toggle-track) { transition: none; }
}
