/* V13: calm depth, centred photography and a consistent button language. */
:root {
  --surface-wash: rgb(255 255 255 / 55%);
  --soft-surface: #fff;
  --soft-shadow: 0 14px 38px rgb(27 48 80 / 8%);
  --scene-blue: #bed2e9;
  --scene-rose: #e5c7ce;
}
html[data-theme="dark"] {
  --surface-wash: rgb(10 22 38 / 55%);
  --soft-surface: #18283c;
  --soft-shadow: 0 14px 38px rgb(0 0 0 / 16%);
  --scene-blue: #6689b5;
  --scene-rose: #9e788a;
}
body {
  background: radial-gradient(ellipse at 5% 12%, #e9f0f9 0, transparent 32%),
    radial-gradient(ellipse at 95% 65%, #f6e9eb 0, transparent 32%), #f8f9fb;
}
html[data-theme="dark"] body {
  background: radial-gradient(ellipse at 6% 12%, #172e49 0, transparent 34%),
    radial-gradient(ellipse at 96% 65%, #30273e 0, transparent 35%), #0a1626;
}
main { position: relative; z-index: 1; }
.site-footer { position: relative; z-index: 1; }
.dental-ambient { position: fixed; inset: 88px 0 0; z-index: 0; overflow: hidden; pointer-events: none; }
.ambient-icon {
  position: absolute; width: clamp(120px, 13vw, 190px); height: auto;
  fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
  color: var(--scene-blue); opacity: .58; filter: blur(1.5px);
  transform: rotate(var(--rest-angle, 0deg));
  animation: ambient-drift 19s ease-in-out infinite alternate;
}
.ambient-tooth { top: 8%; left: -32px; --rest-angle: -18deg; }
.ambient-mirror { width: clamp(100px, 10vw, 156px); top: 16%; right: -26px; color: var(--scene-rose); --rest-angle: 25deg; animation-delay: -6s; }
.ambient-brush { left: 7%; bottom: -28px; color: var(--scene-rose); --rest-angle: -34deg; animation-delay: -11s; }
.ambient-implant { right: 8%; bottom: 1%; --rest-angle: 24deg; animation-delay: -15s; }
@keyframes ambient-drift {
  from { transform: translate3d(0, -8px, 0) rotate(var(--rest-angle, 0deg)); }
  to { transform: translate3d(7px, 8px, 0) rotate(calc(var(--rest-angle, 0deg) + 4deg)); }
}
.hero-section,.home-specialists,.home-credentials,.trust-strip,.services-section,
main > .inner-hero,main > .full-reviews,.doctors-section,.clinic-gallery,
.treatments-list,.faq-section,.legal-section,.map-section,.home-contact {
  background: var(--surface-wash);
}
html[data-theme="dark"] :is(.hero-section,.home-specialists,.home-credentials,.trust-strip,.services-section,.inner-hero,.full-reviews,.doctors-section,.clinic-gallery,.treatments-list,.faq-section,.legal-section,.map-section,.home-contact) {
  background: var(--surface-wash);
}

/* The two columns form a balanced, centred opening composition. */
.hero-grid {
  width: min(1240px, calc(100% - 64px));
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(28px, 4vw, 52px); align-items: center; padding: 30px 0 34px;
}
.hero-copy { text-align: center; padding: 4px 0; }
.hero-copy > .eyebrow { justify-content: center; margin-bottom: 14px; font-size: 11px; }
.hero-copy > h1 { font-size: clamp(62px, 5.8vw, 80px); margin-bottom: 15px; }
.hero-copy > .hero-tagline { max-width: 34ch; margin: 0 auto 18px; font-size: 16px; line-height: 1.5; }
.hero-copy > .hero-specialty { display: flex; justify-content: center; gap: 7px; margin: 0 0 16px; }
.hero-specialty > span { display: inline-flex; align-items: center; min-height: 30px; padding: 6px 10px; border: 1px solid var(--line); border-radius: 10px; background: var(--soft-surface); font-size: 10.5px; letter-spacing: .035em; line-height: 1.3; }
.hero-specialty > i { display: none; }
.hero-copy > .hero-mantra { justify-content: center; gap: 8px; font-size: 24px; margin-bottom: 18px; }
.hero-copy > .hero-experience { justify-content: center; width: max-content; max-width: 100%; margin: 0 auto 20px; padding: 11px 18px; background: var(--soft-surface); border: 1px solid var(--line); border-radius: 16px; font-size: 15px; text-align: left; box-shadow: 0 5px 20px rgb(27 48 80 / 4%); }
.hero-experience > b { font-size: 33px; }
.hero-copy > .hero-actions { max-width: 520px; margin: 0 auto; }
.hero-visual { max-width: 550px; width: 100%; margin: 0 auto; padding: 7px 7px 18px; isolation: isolate; }
.hero-visual::before {
  content: ""; position: absolute; inset: 0 0 12px; z-index: -1;
  border: 1px solid var(--line); border-radius: 220px 220px 36px 36px;
  background: linear-gradient(145deg, rgb(255 255 255 / 86%), rgb(219 231 246 / 65%));
}
.hero-photo-frame { height: clamp(420px, calc(100svh - 178px), 580px); border: 6px solid var(--soft-surface); border-radius: 210px 210px 29px 29px; box-shadow: var(--soft-shadow); }
.hero-photo-frame > img { object-position: center 31%; }
.hero-location-card { inset: auto 22px 26px; justify-content: center; padding: 14px 12px; text-align: center; border-radius: 15px; background: var(--soft-surface); box-shadow: 0 8px 30px rgb(23 40 64 / 12%); }
.hero-location-card > svg { display: none; }
.hero-location-card strong { font-family: Georgia, serif; font-size: 17px; line-height: 1.35; }
.hero-location-card small { font-size: 11px; line-height: 1.5; }
.hero-hours-badge { left: 18px; bottom: 96px; padding: 10px 13px; border-left-width: 3px; box-shadow: 0 5px 22px rgb(27 48 80 / 12%); }
.hero-logo-seal { top: 36px; right: 23px; width: 58px; height: 58px; border-width: 4px; box-shadow: 0 6px 20px rgb(27 48 80 / 10%); }
html[data-theme="dark"] .hero-visual::before { background: linear-gradient(145deg, #223b56, #263144); }

/* Shorter introductions, with a complete expertise list available on demand. */
.home-specialists { padding-block: 66px; }
.home-specialists-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1.08fr); gap: 44px; align-items: center; }
.home-specialists-copy h2 { font-size: clamp(34px, 3.35vw, 47px); line-height: 1.13; margin: 19px 0; }
.home-specialists-copy > .home-team-intro { font-size: 18px; line-height: 1.65; margin-bottom: 22px; }
.home-specialists-portrait { border: 7px solid var(--soft-surface); border-radius: 28px 100px 28px 28px; box-shadow: var(--soft-shadow); }
.home-doctor-list { display: grid; gap: 10px; border: 0; margin-block: 20px; }
.home-doctor-list article { border: 1px solid var(--line); border-left: 3px solid var(--blue); border-radius: 14px; padding: 17px 18px; background: var(--soft-surface); }
.home-doctor-list article + article { border-top: 1px solid var(--line); border-left-color: var(--red); }
.home-doctor-list article > strong { font-size: 17px; line-height: 1.4; }
.home-doctor-list article > span { font-size: 14px; line-height: 1.55; }
.doctor-experience-inline { font-size: 12px; }
.about-hero { padding-block: 34px !important; }
.about-hero .inner-hero-grid { padding: 22px; border: 1px solid var(--line); border-radius: 28px; background: var(--soft-surface); box-shadow: var(--soft-shadow); }
.about-hero .inner-hero-photo { border-radius: 20px; }
.about-hero-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 24px; }
.about-hero-actions a { min-height: 46px; font-size: 13px; padding: 12px 16px; }
.doctors-section .split-heading { align-items: end; gap: 28px; margin-bottom: 30px; }
.doctors-section .split-heading h2 { font-size: clamp(33px, 3.2vw, 46px); line-height: 1.15; }
.doctors-section .split-heading > p { font-size: 17px; line-height: 1.65; max-width: 39ch; }
.doctor-card { box-shadow: var(--soft-shadow); border-color: var(--line); }
.doctor-card-body { padding: 26px; }
.doctor-card-body .doctor-description { font-size: 17px; line-height: 1.65; margin-bottom: 20px; }
.doctor-card-body .doctor-title { font-size: 16px; line-height: 1.5; margin-bottom: 16px; }
details.doctor-expertise { margin-bottom: 20px; border: 1px solid var(--line); border-radius: 13px; background: var(--soft-surface); }
.doctor-expertise > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 15px 17px; cursor: pointer; color: var(--ink); font-size: 14px; line-height: 1.4; list-style: none; }
.doctor-expertise > summary::-webkit-details-marker { display: none; }
.doctor-expertise > summary > span { font-size: 22px; line-height: 1; transition: transform .2s ease; }
.doctor-expertise[open] > summary > span { transform: rotate(45deg); }
.doctor-expertise[open] > summary { border-bottom: 1px solid var(--line); }
.doctor-expertise-content { padding: 18px; }
.doctor-expertise-content .doctor-focus { margin: 0; padding-left: 18px; }
.doctor-expertise-content :is(li,h5) { font-size: 15px; line-height: 1.65; }
.values-section .values-grid article { border: 1px solid rgb(255 255 255 / 20%); border-radius: 22px; background: rgb(255 255 255 / 5%); box-shadow: 0 15px 30px rgb(0 0 0 / 8%); }

/* Navigation and text actions use actual link elements styled as buttons. */
.link-button,.map-below-link {
  display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  width: fit-content; max-width: 100%; min-height: 44px; padding: 12px 17px;
  border: 1px solid var(--line); border-radius: 12px;
  background: var(--soft-surface); color: var(--blue); font-size: 14px; line-height: 1.4;
  text-decoration: none; white-space: normal; text-align: center;
  box-shadow: 0 4px 14px rgb(27 48 80 / 5%); transition: border-color .2s ease, box-shadow .2s ease;
}
.link-button:hover,.map-below-link:hover { border-color: var(--blue); box-shadow: 0 8px 22px rgb(27 48 80 / 11%); }
.link-button svg,.map-below-link svg { width: 17px; height: 17px; flex: 0 0 17px; }
.doctor-info-link.link-button { padding: 9px 11px; min-height: 38px; font-size: 12px; }
.clinic-story .link-button { color: #172840; background: #fff; border-color: #fff; }
.desktop-nav { gap: 7px; }
.desktop-nav .nav-button { padding: 10px 13px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft-surface); line-height: 1.4; font-size: 13px; }
.desktop-nav .nav-button.active { color: var(--blue); background: var(--menu-active); border-color: var(--menu-line); }
.desktop-nav .nav-button::after { display: none; }
.desktop-nav .nav-button:hover { border-color: var(--blue); }
.site-footer .footer-link-button { padding: 9px 11px; border: 1px solid rgb(255 255 255 / 20%); border-radius: 10px; background: rgb(255 255 255 / 5%); color: #fff; line-height: 1.5; text-decoration: none; }
.site-footer .footer-link-button:hover { background: rgb(255 255 255 / 12%); border-color: rgb(255 255 255 / 40%); }
.footer-bottom nav { flex-wrap: wrap; gap: 9px; }
.legal-section .link-button { justify-content: flex-start; }
.legal-nav .link-button { width: 100%; }
.legal-section .inline-link-button { display: inline; padding: 2px 6px; border-radius: 6px; box-decoration-break: clone; -webkit-box-decoration-break: clone; }
.home-treatment-copy > strong { display: inline-flex; width: fit-content; align-items: center; gap: 9px; padding: 11px 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--soft-surface); color: var(--blue); }
:is(.link-button,.map-below-link,.footer-link-button,.nav-button,.doctor-expertise > summary):focus-visible { outline: 3px solid var(--blue); outline-offset: 3px; }

/* A still, locally generated stone surface with gently raised foreground cards. */
section.reviews-home {
  --ink: #172840; --text-main: #172840; --text-sub: #30425f;
  --blue: #243b80; --red: #b62038; --soft-surface: #fff;
  --line: #d5dde7; position: relative; isolation: isolate; padding-block: 64px;
  color: #172840; background: #f4f2ec url('../images/reviews-ivory-marble.webp') center / cover no-repeat;
  background-attachment: scroll; border-block: 1px solid #dfe2e4;
}
html[data-theme="dark"] section.reviews-home { background: #f4f2ec url('../images/reviews-ivory-marble.webp') center / cover no-repeat; }
.reviews-home > .section-shell { position: relative; z-index: 1; }
.reviews-home .reviews-intro { align-items: center; gap: 25px; padding: 25px 28px; margin-bottom: 20px; border: 1px solid #ffffffed; border-radius: 23px; background: rgb(255 255 255 / 91%); box-shadow: 0 15px 40px rgb(40 52 66 / 11%); animation: review-buoy 11s ease-in-out infinite alternate; }
.reviews-home .reviews-intro h2 { font-size: clamp(33px, 3.3vw, 46px); }
.reviews-home .reviews-intro > p { max-width: 31ch; font-size: 16px; line-height: 1.65; margin: 0; }
.reviews-home .review-card,html[data-theme="dark"] .reviews-home .review-card {
  background: rgb(255 255 255 / 96%); color: #172840; border: 1px solid #fff;
  border-radius: 23px; box-shadow: 0 17px 30px rgb(40 52 66 / 14%);
  animation: review-buoy 10s ease-in-out -3s infinite alternate;
}
.reviews-home .review-card .review-author strong { color: #172840; }
html[data-theme="dark"] .reviews-home .review-card blockquote { color: #172840 !important; }
.reviews-home [data-slot="carousel-item"]:nth-child(2n) .review-card { animation-delay: -7s; }
.reviews-home [data-slot="carousel-item"] { padding-block: 10px 24px; }
.reviews-home .reviews-actions { padding: 18px; gap: 14px; border: 1px solid #ffffffed; border-radius: 20px; background: rgb(255 255 255 / 91%); box-shadow: 0 12px 34px rgb(40 52 66 / 12%); animation: review-buoy 12s ease-in-out -5s infinite alternate; }
.reviews-home .reviews-external-actions { gap: 10px; flex-wrap: wrap; }
.reviews-home .link-button { border-color: #cbd5e6; color: #243b80; background: #fff; }
.reviews-home .reviews-actions > .link-button { color: #fff; background: #243b80; border-color: #243b80; }
.reviews-home :is(.reviews-intro,.review-card,.reviews-actions):is(:hover,:focus-within) { animation-play-state: paused; }
@keyframes review-buoy { from { transform: translateY(0); } to { transform: translateY(-3px); } }

/* A tooth silhouette surrounds a fully usable map viewport. */
.map-grid .map-frame.tooth-map-frame,.home-contact-match .home-map-frame.tooth-map-frame {
  position: relative; height: 760px; min-height: 0; flex-basis: auto;
  padding: 0; overflow: visible; border: 0; border-radius: 0;
  background: none; box-shadow: none;
}
.tooth-map-frame::before { content: ""; position: absolute; inset: 0; pointer-events: none; background: url('../images/map-tooth-frame.svg') center / 100% 100% no-repeat; filter: drop-shadow(0 15px 18px rgb(27 48 80 / 10%)); }
.tooth-map-frame .map-view-label { position: absolute; top: 9%; left: 8%; right: 8%; color: #243b80; text-align: center; font-size: 11px; line-height: 1.3; letter-spacing: .12em; }
.tooth-map-frame .map-canvas { position: absolute; inset: 14% 8% 23%; border: 1px solid #c8d6e9; border-radius: 17px; overflow: hidden; background: #e9eff7; }
.tooth-map-frame .map-canvas iframe { position: relative; inset: auto; display: block; width: 100%; height: 100%; min-height: 0; border: 0; border-radius: 0; filter: none; }
.map-column .map-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
.map-column .map-actions .map-below-link { width: 100%; margin: 0; min-height: 48px; padding: 12px 10px; font-size: 13px; }
.map-grid,.home-contact-match .home-visit-grid { align-items: center; }

@media (max-width: 1160px) and (min-width: 821px) {
  .desktop-nav .nav-button { padding: 9px 10px; font-size: 12px; }
  .desktop-nav { gap: 5px; }
  .hero-grid { width: calc(100% - 48px); gap: 26px; }
  .hero-copy > h1 { font-size: 62px; }
  .hero-copy > .hero-tagline { font-size: 14px; }
  .hero-copy > .hero-specialty { gap: 6px; }
  .hero-specialty > span { font-size: 10px; padding: 5px 8px; }
  .hero-copy > .hero-experience { font-size: 13px; }
  .hero-actions :is(.primary-button,.secondary-button) { padding-inline: 8px; font-size: 12px; }
  .hero-actions svg { display: none; }
  .home-specialists-grid { gap: 28px; }
}
@media (max-width: 920px) {
  .home-specialists-grid { grid-template-columns: 1fr; }
  .home-specialists-portrait { min-height: 0; }
}
@media (min-width: 821px) and (max-height: 740px) {
  .hero-grid { padding-block: 18px; }
  .hero-photo-frame { height: clamp(370px, calc(100svh - 150px), 540px); }
  .hero-copy > h1 { font-size: 61px; margin-bottom: 10px; }
  .hero-copy > .eyebrow { margin-bottom: 10px; }
  .hero-copy > .hero-tagline { font-size: 14px; margin-bottom: 12px; }
  .hero-copy > .hero-specialty,.hero-copy > .hero-mantra { margin-bottom: 12px; }
  .hero-copy > .hero-experience { padding-block: 8px; margin-bottom: 14px; }
}
@media (max-width: 820px) {
  .dental-ambient { top: 72px; }
  .ambient-icon { opacity: .43; width: 110px; }
  .ambient-mirror { width: 96px; }
  .ambient-brush { left: -24px; }
  .ambient-implant { right: -26px; }
  .hero-grid { display: flex; flex-direction: column; width: 100%; padding: 14px 0 20px; gap: 0; }
  .hero-copy { display: contents; }
  .hero-copy > * { width: calc(100% - 32px); margin-inline: auto; }
  .hero-copy > .eyebrow { order: 1; font-size: 10px; line-height: 1.4; margin-bottom: 5px; }
  .hero-copy > h1 { order: 2; font-size: clamp(38px, 10.6vw, 54px); margin-bottom: 6px; }
  .hero-copy > .hero-tagline { order: 3; width: calc(100% - 32px); max-width: none; font-size: 12px; line-height: 1.35; margin-bottom: 9px; }
  .hero-copy > .hero-specialty { order: 4; width: calc(100% - 32px); gap: 5px; margin: 0 auto 12px; }
  .hero-specialty > span { font-size: 9px; min-height: 22px; padding: 4px 7px; border-radius: 7px; }
  .hero-visual { order: 5; width: calc(100% - 32px); max-width: 530px; margin: 0 auto 7px; padding: 5px 5px 12px; }
  .hero-visual::before { inset: 0 0 6px; border-radius: 100px 100px 23px 23px; }
  .hero-photo-frame { width: 100%; height: clamp(250px, calc(100svh - 480px), 360px); border-width: 4px; border-radius: 95px 95px 19px 19px; }
  .hero-photo-frame > img { object-position: center 27%; }
  .hero-location-card { inset: auto 14px 19px; margin: 0; padding: 8px; border-radius: 11px; }
  .hero-location-card strong { font-size: 13px; }
  .hero-location-card small { font-size: 10px; }
  .hero-hours-badge { inset: 36px auto auto 11px; padding: 6px 8px; gap: 6px; }
  .hero-hours-badge strong { font-size: 10px; }
  .hero-hours-badge small { font-size: 9px; }
  .hero-logo-seal { width: 39px; height: 39px; border-width: 3px; right: 16px; top: 39px; }
  .hero-copy > .hero-mantra { order: 6; font-size: 18px; line-height: 1.3; margin: 0 auto 6px; gap: 6px; }
  .hero-copy > .hero-experience { order: 7; width: fit-content; max-width: calc(100% - 32px); margin: 0 auto 9px; padding: 7px 13px; font-size: 12px; border-radius: 11px; gap: 7px; }
  .hero-experience > b { font-size: 23px; }
  .hero-copy > .hero-actions { order: 8; width: calc(100% - 32px); max-width: 520px; margin: 0 auto; gap: 8px; }
  .hero-actions :is(.primary-button,.secondary-button) { font-size: 12px; min-height: 44px; padding: 10px 8px; }
  .home-specialists { padding-block: 44px; }
  .home-specialists-grid { gap: 28px; }
  .home-specialists-portrait { width: 100%; margin: 0; border-width: 5px; border-radius: 24px 70px 24px 24px; }
  .home-specialists-copy h2 { font-size: 35px; margin-block: 15px; }
  .home-specialists-copy > .home-team-intro { font-size: 17px; }
  .about-hero { padding-block: 22px !important; }
  .about-hero .inner-hero-grid { padding: 20px; border-radius: 22px; }
  .about-hero-actions { margin-top: 18px; }
  .about-hero-actions a { flex: 1 1 150px; }
  .doctors-section .split-heading { gap: 15px; }
  .doctor-card-body { padding: 23px; }
  .doctor-card-body .doctor-description { font-size: 16px; }
  section.reviews-home { padding-block: 44px; }
  .reviews-home .reviews-intro { padding: 22px; gap: 14px; }
  .reviews-home .reviews-intro > p { max-width: none; }
  .reviews-home .reviews-actions { align-items: stretch; flex-direction: column; padding: 14px; }
  .reviews-home .reviews-actions > .link-button { width: 100%; }
  .reviews-home .reviews-external-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reviews-home .reviews-external-actions a { width: 100%; padding-inline: 10px; font-size: 12px; }
  .map-grid .map-frame.tooth-map-frame,.home-contact-match .home-map-frame.tooth-map-frame { height: 650px; min-height: 0; flex-basis: auto; }
}
@media (max-width: 560px) {
  .home-doctor-list article { padding: 16px; gap: 8px; }
  .home-doctor-list article > strong { font-size: 17px; }
  .home-doctor-list article > span { font-size: 14px; }
  .doctor-info-link.link-button { justify-self: end; }
  .about-hero .inner-hero-grid { padding: 16px; }
  .about-hero-actions a { min-height: 44px; font-size: 12px; padding: 10px; flex: 1 1 110px; }
  .doctor-card-body .doctor-experience { font-size: 13px; }
  .doctor-card-body .doctor-title { font-size: 15px; }
  .doctor-expertise > summary { padding: 14px; font-size: 13px; }
  .doctor-expertise-content { padding: 15px; }
  .map-grid .map-frame.tooth-map-frame,.home-contact-match .home-map-frame.tooth-map-frame { height: 560px; }
  .tooth-map-frame .map-view-label { font-size: 9px; letter-spacing: .08em; }
  .tooth-map-frame .map-canvas { border-radius: 12px; }
  .map-column .map-actions { gap: 8px; }
  .map-column .map-actions .map-below-link { padding: 10px 7px; font-size: 12px; gap: 6px; }
  .map-column .map-actions .map-below-link svg { width: 15px; flex-basis: 15px; }
}
@media (max-width: 820px) and (max-height: 700px) {
  .hero-grid { padding-top: 9px; padding-bottom: 13px; }
  .hero-copy > h1 { font-size: 35px; }
  .hero-copy > .hero-tagline { font-size: 11px; margin-bottom: 6px; }
  .hero-copy > .hero-specialty { margin-bottom: 8px; gap: 4px; }
  .hero-specialty > span { font-size: 8.5px; min-height: 20px; padding-block: 3px; }
  .hero-photo-frame { height: 225px; }
  .hero-copy > .hero-experience { padding-block: 5px; }
}
@media (min-width: 600px) and (max-width: 820px) and (max-height: 500px) {
  .hero-grid { display: grid; width: calc(100% - 32px); grid-template-columns: 1fr 1fr; gap: 22px; padding-block: 12px; }
  .hero-copy { display: block; }
  .hero-copy > *,.hero-copy > .hero-actions { width: 100%; }
  .hero-copy > h1 { font-size: 32px; }
  .hero-copy > .hero-tagline { margin-bottom: 7px; }
  .hero-specialty > span { font-size: 8px; }
  .hero-copy > .hero-mantra { font-size: 15px; }
  .hero-copy > .hero-experience { width: fit-content; font-size: 10px; }
  .hero-experience > b { font-size: 18px; }
  .hero-visual { width: 100%; margin: 0; }
  .hero-photo-frame { height: max(280px, calc(100svh - 125px)); }
}
@media (prefers-reduced-motion: reduce) {
  .ambient-icon,.reviews-home .reviews-intro,.reviews-home .review-card,.reviews-home .reviews-actions { animation: none !important; }
  .doctor-expertise > summary > span { transition: none; }
}

/* Desktop refinements; the existing mobile presentation is preserved. */
@media (min-width: 821px) {
.ambient-icon {
  position: absolute; width: clamp(120px, 13vw, 190px); height: auto;
  fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round;
  color: var(--scene-blue); opacity: .38; filter: blur(1.5px);
  transform: rotate(var(--rest-angle, 0deg));
  animation: ambient-drift 19s ease-in-out infinite alternate;
}
.hero-grid {
  width: min(1240px, calc(100% - 64px));
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(20px, 2.2vw, 32px); align-items: center; padding: 30px 0 34px;
}
.hero-copy > .hero-mantra { justify-content: center; gap: 8px; font-size: 24px; margin-bottom: 12px; }
.hero-copy > .hero-experience { justify-content: center; width: max-content; max-width: 100%; margin: 0 auto 15px; padding: 9px 16px; background: var(--soft-surface); border: 1px solid var(--line); border-radius: 16px; font-size: 15px; text-align: left; box-shadow: 0 5px 20px rgb(27 48 80 / 4%); }
.hero-visual { max-width: 550px; width: 100%; margin: 0 auto; padding: 0; isolation: isolate; }
.hero-photo-frame { height: clamp(400px, calc(100svh - 168px), 550px); border: 1px solid var(--line); border-radius: 155px 155px 24px 24px; box-shadow: var(--soft-shadow); }
.hero-location-card { inset: auto 14px 14px; justify-content: center; padding: 9px 12px; text-align: center; border-radius: 15px; background: var(--soft-surface); box-shadow: 0 8px 30px rgb(23 40 64 / 12%); }
.hero-hours-badge { left: 15px; bottom: 83px; padding: 10px 13px; border-left-width: 3px; box-shadow: 0 5px 22px rgb(27 48 80 / 12%); }
section.reviews-home {
  --ink: #172840; --text-main: #172840; --text-sub: #30425f;
  --blue: #243b80; --red: #b62038; --soft-surface: #fff;
  --line: #d5dde7; position: relative; isolation: isolate; padding-block: 38px;
  color: #172840; background: #f4f2ec url('../images/reviews-ivory-marble.webp') center / cover no-repeat;
  background-attachment: fixed; border-block: 1px solid #dfe2e4;
}
.reviews-home .review-card,html[data-theme="dark"] .reviews-home .review-card {
  color: #172840; border: 1px solid rgb(23 40 64 / 10%);
  border-radius: 24px; box-shadow: 0 17px 30px rgb(40 52 66 / 14%);
  animation: review-buoy 10s ease-in-out -3s infinite alternate;
}
@media (max-width: 820px) {
  .dental-ambient { top: 72px; }
  .ambient-icon { opacity: .28; width: 110px; }
  .ambient-mirror { width: 96px; }
  .ambient-brush { left: -24px; }
  .ambient-implant { right: -26px; }
  .hero-grid { display: flex; flex-direction: column; width: 100%; padding: 14px 0 20px; gap: 0; }
  .hero-copy { display: contents; }
  .hero-copy > * { width: calc(100% - 32px); margin-inline: auto; }
  .hero-copy > .eyebrow { order: 1; font-size: 10px; line-height: 1.4; margin-bottom: 5px; }
  .hero-copy > h1 { order: 2; font-size: clamp(38px, 10.6vw, 54px); margin-bottom: 6px; }
  .hero-copy > .hero-tagline { order: 3; width: calc(100% - 32px); max-width: none; font-size: 12px; line-height: 1.35; margin-bottom: 9px; }
  .hero-copy > .hero-specialty { order: 4; width: calc(100% - 32px); gap: 5px; margin: 0 auto 12px; }
  .hero-specialty > span { font-size: 9px; min-height: 22px; padding: 4px 7px; border-radius: 7px; }
  .hero-visual { order: 5; width: calc(100% - 32px); max-width: 530px; margin: 0 auto 7px; padding: 0; }
  .hero-visual::before { inset: 0 0 6px; border-radius: 100px 100px 23px 23px; }
  .hero-photo-frame { width: 100%; height: clamp(250px, calc(100svh - 480px), 360px); border-width: 1px; border-radius: 70px 70px 19px 19px; }
  .hero-photo-frame > img { object-position: center 27%; }
  .hero-location-card { inset: auto 10px 10px; margin: 0; padding: 8px; border-radius: 11px; }
  .hero-location-card strong { font-size: 13px; }
  .hero-location-card small { font-size: 10px; }
  .hero-hours-badge { inset: 36px auto auto 11px; padding: 6px 8px; gap: 6px; }
  .hero-hours-badge strong { font-size: 10px; }
  .hero-hours-badge small { font-size: 9px; }
  .hero-logo-seal { width: 39px; height: 39px; border-width: 3px; right: 16px; top: 39px; }
  .hero-copy > .hero-mantra { order: 6; font-size: 18px; line-height: 1.3; margin: 0 auto 6px; gap: 6px; }
  .hero-copy > .hero-experience { order: 7; width: fit-content; max-width: calc(100% - 32px); margin: 0 auto 9px; padding: 7px 13px; font-size: 12px; border-radius: 11px; gap: 7px; }
  .hero-experience > b { font-size: 23px; }
  .hero-copy > .hero-actions { order: 8; width: calc(100% - 32px); max-width: 520px; margin: 0 auto; gap: 8px; }
  .hero-actions :is(.primary-button,.secondary-button) { font-size: 12px; min-height: 44px; padding: 10px 8px; }
  .home-specialists { padding-block: 44px; }
  .home-specialists-grid { gap: 28px; }
  .home-specialists-portrait { width: 100%; margin: 0; border-width: 5px; border-radius: 24px 70px 24px 24px; }
  .home-specialists-copy h2 { font-size: 35px; margin-block: 15px; }
  .home-specialists-copy > .home-team-intro { font-size: 17px; }
  .about-hero { padding-block: 22px !important; }
  .about-hero .inner-hero-grid { padding: 20px; border-radius: 22px; }
  .about-hero-actions { margin-top: 18px; }
  .about-hero-actions a { flex: 1 1 150px; }
  .doctors-section .split-heading { gap: 15px; }
  .doctor-card-body { padding: 23px; }
  .doctor-card-body .doctor-description { font-size: 16px; }
  section.reviews-home { padding-block: 44px; }
  .reviews-home .reviews-intro { padding: 22px; gap: 14px; }
  .reviews-home .reviews-intro > p { max-width: none; }
  .reviews-home .reviews-actions { align-items: stretch; flex-direction: column; padding: 14px; }
  .reviews-home .reviews-actions > .link-button { width: 100%; }
  .reviews-home .reviews-external-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .reviews-home .reviews-external-actions a { width: 100%; padding-inline: 10px; font-size: 12px; }
  .map-grid .map-frame.tooth-map-frame,.home-contact-match .home-map-frame.tooth-map-frame { height: 650px; min-height: 0; flex-basis: auto; }
}
.ambient-brush,.ambient-implant { display: none; }
.hero-visual::before { display: none; }
.hero-photo-frame > img { transform: scale(1.055); transform-origin: center 72%; }
.hero-specialty > span { font-family: Arial, Helvetica, sans-serif; font-size: 12px; font-weight: 800; letter-spacing: 0; }
.hero-copy > .hero-specialty { flex-wrap: wrap; }
.hero-actions .primary-button,.site-header .nav-cta { background: #263d82; color: #fff; }
.hero-actions .secondary-button { background: rgb(255 255 255 / 40%); border: 1px solid #d4dcea; color: #172840; box-shadow: none; }
.desktop-nav .nav-button { background: transparent; border-color: rgb(36 59 128 / 10%); box-shadow: none; }
.desktop-nav .nav-button.active { background: #eaf0fa; border-color: #dce5f3; }
.desktop-nav .nav-button:hover,.hero-actions .secondary-button:hover { border-color: #9aaccb; background: #eef3fb; }
html[data-theme="dark"] .desktop-nav .nav-button { background: transparent; border-color: #35465d; }
html[data-theme="dark"] .desktop-nav .nav-button.active { background: #263b57; border-color: #57749a; color: #fff; }
html[data-theme="dark"] .hero-actions .secondary-button { background: #18283c; border-color: #657891; color: #fff; }
html[data-theme="dark"] .desktop-nav .nav-button:hover { background: #263b57; }
.assistant-button { min-height: 52px; gap: 8px; padding: 5px 13px 5px 5px; }
.assistant-button .artie-launcher-avatar { width: 40px; height: 40px; }
.assistant-button .artie-launcher-avatar img { width: 39px; height: 39px; }
.assistant-button .artie-launcher-avatar i { width: 10px; height: 10px; border-width: 2px; }
.assistant-launcher-copy { min-width: 0; }
.assistant-launcher-copy strong { font-size: 13px; }
.assistant-launcher-copy small,.assistant-launcher-sparkle { display: none; }
.reviews-home .review-card.tone-blue,html[data-theme="dark"] .reviews-home .review-card.tone-blue { background: #d9e9f2e8; }
.reviews-home .review-card.tone-ivory,html[data-theme="dark"] .reviews-home .review-card.tone-ivory { background: #f6f1e8eb; }
.reviews-home .review-card.tone-grey,html[data-theme="dark"] .reviews-home .review-card.tone-grey { background: #e3e7e8ed; }
.reviews-home .review-card.tone-rose,html[data-theme="dark"] .reviews-home .review-card.tone-rose { background: #f1e3ddec; }
.reviews-home .reviews-intro { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; margin-bottom: 14px; }
.reviews-home .reviews-intro > div { max-width: 760px; }
.reviews-home .reviews-intro h2 { font-size: clamp(28px, 2.8vw, 38px); line-height: 1.15; }
.reviews-home .reviews-intro .google-reviews-title { font-size: clamp(28px, 3vw, 38px); padding: 0; margin-bottom: 12px; border: 0; background: transparent; box-shadow: none; line-height: 1.2; }
.reviews-home .google-reviews-title .google-word { font-size: 1em; }
.reviews-home .review-card.compact { min-height: 330px; height: auto; padding: 25px; }
.reviews-home .review-card.compact blockquote { font-size: 18px; line-height: 1.5; -webkit-line-clamp: 6; }
.reviews-home .review-card .review-author { margin-top: auto; padding-top: 18px; }
.reviews-home [data-slot="carousel-item"] { padding-block: 8px 18px; }
.reviews-home .reviews-actions { padding: 0; margin-top: 8px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
html[data-theme="dark"] section.reviews-home { background-attachment: fixed; }
html[data-theme="dark"] .reviews-home :is(.reviews-intro h2,.google-reviews-title,.reviews-intro > p) { color: #172840; }
.doctor-grid .doctor-card { border-radius: 22px; box-shadow: var(--soft-shadow); }
.doctor-grid .doctor-card-body { padding: 26px; gap: 0; }
.doctor-card-body h3 { min-height: 76px; margin: 0 0 14px; line-height: 1.25; }
.doctor-card-body h3 .name-degrees { display: block; margin-top: 8px; font-size: 12px; line-height: 1.5; letter-spacing: .06em; }
.doctor-card-body .doctor-experience { margin: 0 0 16px; padding: 10px 13px; border-radius: 10px; background: var(--soft-surface); }
.doctor-card-body .doctor-title { min-height: 48px; margin: 0 0 12px; }
.doctor-card-body .doctor-description { min-height: 85px; margin: 0 0 18px; }
.doctor-card-body details.doctor-expertise { padding: 0; margin-top: auto; margin-bottom: 16px; }
.doctor-expertise > summary { min-height: 54px; padding: 15px 17px; }
.doctor-grid .doctor-cta { margin-top: 0; min-height: 54px; border-radius: 12px; }
@media (max-width: 1160px) and (min-width: 821px) {
  .hero-specialty > span { font-size: 11px; padding: 5px 8px; }
  .hero-grid { gap: 20px; }
}
@media (max-width: 1024px) {
  .doctor-card-body h3,.doctor-card-body .doctor-title,.doctor-card-body .doctor-description { min-height: 0; }
}
@media (max-width: 820px) {
  .hero-specialty > span { font-size: 10.5px; padding: 4px 6px; }
  .hero-copy > .hero-specialty { display: grid; grid-template-columns: repeat(2, max-content); gap: 4px 6px; }
  .hero-photo-frame > img { transform: none; }
  .hero-hours-badge { top: 27px; left: 10px; }
  .hero-location-card strong { font-size: 13px; }
  .hero-location-card small { font-size: 10px; }
  .hero-copy > .hero-experience { margin-bottom: 8px; }
  section.reviews-home { padding-block: 30px; background-attachment: scroll; }
  html[data-theme="dark"] section.reviews-home { background-attachment: scroll; }
  .reviews-home .reviews-intro { gap: 10px; }
  .reviews-home .reviews-intro h2 { font-size: 28px; }
  .reviews-home .reviews-intro > p { font-size: 14px; line-height: 1.5; }
  .reviews-home .review-card.compact { min-height: 310px; padding: 22px; }
  .reviews-home .review-card.compact blockquote { font-size: 17px; }
  .reviews-home .reviews-actions { gap: 8px; }
  .doctor-grid .doctor-card-body { padding: 23px; }
  .assistant-button { min-width: 48px; min-height: 48px; padding: 4px; }
}
@media (max-width: 820px) and (max-height: 700px) {
  .hero-specialty > span { font-size: 10px; }
}
@media (min-width: 600px) and (max-width: 820px) and (max-height: 500px) {
  .hero-specialty > span { font-size: 9px; }
}
html[data-theme="dark"] .site-header .nav-cta,html[data-theme="dark"] .hero-actions .primary-button { background: #263d82; color: #fff; }
.hero-logo-seal { display: none; }
}

/* Still viewport texture clipped to the review section, with no moving image. */
section.reviews-home,html[data-theme="dark"] section.reviews-home {
  background: transparent; clip-path: inset(0); padding-block: 36px;
}
section.reviews-home::before {
  content: ""; position: fixed; inset: 0; z-index: -1; pointer-events: none;
  background: #f4f2ec url('../images/reviews-ivory-marble.webp') center / cover no-repeat;
  transform: none; animation: none;
}
.reviews-home .reviews-intro { padding: 0; border: 0; background: transparent; box-shadow: none; margin-bottom: 16px; gap: 18px; }
.reviews-home .reviews-intro h2 { font-size: clamp(28px, 2.8vw, 38px); line-height: 1.15; }
.reviews-home .reviews-intro .google-reviews-title { font-size: clamp(28px, 3vw, 38px); padding: 0; margin-bottom: 12px; border: 0; background: transparent; box-shadow: none; line-height: 1.2; }
.reviews-home .google-reviews-title .google-word { font-size: 1em; }
.reviews-home .review-card.tone-blue,html[data-theme="dark"] .reviews-home .review-card.tone-blue { background: #d9e9f2; }
.reviews-home .review-card.tone-ivory,html[data-theme="dark"] .reviews-home .review-card.tone-ivory { background: #f6f1e8; }
.reviews-home .review-card.tone-grey,html[data-theme="dark"] .reviews-home .review-card.tone-grey { background: #e3e7e8; }
.reviews-home .review-card.tone-rose,html[data-theme="dark"] .reviews-home .review-card.tone-rose { background: #f1e3dd; }
.reviews-home .review-card.compact { min-height: 330px; height: auto; padding: 25px; border-radius: 24px; }
.reviews-home .review-card.compact blockquote { font-size: 18px; line-height: 1.5; -webkit-line-clamp: 6; }
.reviews-home .reviews-actions { padding: 0; margin-top: 8px; background: transparent; border: 0; gap: 10px; }
.reviews-home :is(.reviews-intro,.review-card,.reviews-actions,.link-button,.review-arrow),
.reviews-home :is(.review-card,.link-button,.review-arrow):hover { box-shadow: none !important; text-shadow: none; }
html[data-theme="dark"] .reviews-home :is(.reviews-intro h2,.google-reviews-title,.reviews-intro > p) { color: #172840; }
.about-doctor-tabs { display: none; }
@media (max-width: 820px) {
  .about-doctor-tabs:not([hidden]) { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 5px; padding: 5px; margin-bottom: 0; border: 1px solid var(--line); border-radius: 16px 16px 0 0; background: var(--soft-surface); }
  .about-doctor-tabs button { min-width: 0; min-height: 50px; padding: 10px 8px; color: var(--ink); font-size: 14px; font-weight: 800; border-radius: 11px; cursor: pointer; }
  .about-doctor-tabs button[aria-selected="true"] { background: #263d82; color: #fff; }
  .about-doctor-tabs button:last-child[aria-selected="true"] { background: #b62038; color: #fff; }
  .about-doctor-tabs button:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; }
  .doctors-section .doctor-grid .doctor-card { width: 100%; margin: 0; border: 1px solid var(--line); border-top: 0; border-radius: 0 0 18px 18px; }
  .doctors-section .doctor-grid .doctor-card[hidden] { display: none; }
  .doctors-section .doctor-grid .doctor-card-body { padding: 23px; }
  .doctors-section .doctor-card-body details.doctor-expertise { padding: 0; }
  .doctors-section .doctor-card-body h3 .name-degrees { display: block; margin-top: 6px; }
  .reviews-home .reviews-intro { gap: 10px; }
  .reviews-home .reviews-intro > p { font-size: 14px; line-height: 1.5; }
  section.reviews-home { padding-block: 30px; }
  .reviews-home .review-card.compact { min-height: 310px; padding: 22px; }
  .reviews-home .review-card.compact blockquote { font-size: 17px; }
  .reviews-home .reviews-actions { gap: 8px; }
}

/* V15: full opening viewport, edge-to-edge tooth maps and desktop contacts. */
.hero-section { min-height: calc(100svh - 88px); }
@media (min-width: 821px) {
  .hero-grid { width: min(1440px,calc(100% - 164px)); min-height: calc(100svh - 88px); padding-block: 15px; gap: clamp(20px,2.5vw,40px); }
  .hero-visual { max-width: none; padding: 0; }
  .hero-photo-frame { height: max(360px,calc(100svh - 118px)); max-height: none; }
  .hero-copy > h1 { font-size: clamp(60px,6.2vw,92px); }
  .hero-copy > .hero-tagline { font-size: 17px; }
  .hero-copy > .hero-actions { max-width: none; }
  .hero-copy > .hero-experience { margin-bottom: 15px; }
  .contact-rail {
    display: flex; position: fixed; top: 50%; left: 12px; bottom: auto;
    z-index: 45; flex-direction: column; gap: 7px; padding: 7px;
    border: 1px solid var(--line); border-radius: 22px;
    background: var(--soft-surface); transform: translateY(-50%);
    box-shadow: 0 5px 20px rgb(23 40 64 / 10%);
    animation: contact-rail-arrive .65s ease both;
  }
  .contact-rail a { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 13px; color: #243b80; background: #fff; }
  .contact-rail a :is(svg,img) { width: 25px; height: 25px; object-fit: contain; }
  .contact-rail a:focus-visible { outline: 3px solid #243b80; outline-offset: 2px; }
  .contact-rail a::after { left: calc(100% + 13px); right: auto; color: #fff; background: #172840; }
  .contact-rail a:focus-visible::after { opacity: 1; visibility: visible; }
  .intro-pending .contact-rail { visibility: hidden; animation: none; }
  html[data-theme="dark"] .contact-rail { background: #18283c; border-color: #526780; }
}
@keyframes contact-rail-arrive {
  from { opacity: 0; transform: translate(-12px,-50%); }
  to { opacity: 1; transform: translate(0,-50%); }
}
@media (min-width: 821px) and (max-height: 740px) {
  .hero-copy > h1 { font-size: 60px; }
  .hero-copy > .hero-tagline { font-size: 14px; }
  .hero-copy > .hero-mantra { font-size: 20px; }
}
@media (max-width: 820px) {
  .contact-rail { display: none !important; }
  .hero-section { min-height: calc(100svh - 144px); }
  .hero-grid {
    display: grid; grid-template-columns: minmax(0,1fr);
    grid-template-rows: auto auto auto auto minmax(190px,1fr) auto auto auto;
    min-height: calc(100svh - 144px); width: 100%; padding: 10px 0 15px; gap: 0;
  }
  .hero-copy { display: contents; }
  .hero-visual { position: relative; align-self: stretch; min-height: 190px; max-width: 600px; height: auto; padding: 0; margin: 0 auto 7px; }
  .hero-photo-frame { position: absolute; inset: 0; height: 100%; min-height: 0; width: 100%; }
  .hero-visual::before { inset: -4px -4px; }
  .hero-copy > .hero-mantra { margin-top: 3px; }
}
@media (min-width: 600px) and (max-width: 820px) and (max-height: 500px) {
  .hero-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); grid-template-rows: auto; width: calc(100% - 32px); gap: 20px; }
  .hero-copy { display: block; }
  .hero-visual { width: 100%; min-height: 300px; }
}
/* One silhouette clips the live map; the matching outline is a separate overlay. */
.tooth-map-frame::before { display: none; }
.tooth-map-frame::after { content: ""; position: absolute; inset: 0; z-index: 2; pointer-events: none; background: url('../images/map-tooth-outline.svg') center / 100% 100% no-repeat; }
.tooth-map-frame .map-canvas {
  inset: 0; border: 0; border-radius: 0; background: #e9eff7;
  clip-path: url('#map-tooth-clip'); overflow: hidden;
}
.tooth-map-frame .map-canvas iframe { width: 100%; height: 100%; border: 0; border-radius: 0; }
.tooth-map-frame .map-view-label { display: none; }
.assistant-button { min-height: 62px; padding: 6px 15px 6px 6px; gap: 9px; animation: artie-nudge 2s ease-in-out infinite; transform-origin: 70% 80%; }
.assistant-button .artie-launcher-avatar { width: 48px; height: 48px; }
.assistant-button .artie-launcher-avatar img { width: 47px; height: 47px; }
.assistant-launcher-copy strong { font-size: 14px; }
.assistant-button:is(:hover,:focus-visible),.assistant-button[aria-expanded="true"] { animation: none; transform: none; }
@keyframes artie-nudge {
  0%,18%,100% { transform: rotate(0); }
  3%,11% { transform: rotate(-3deg); }
  7%,15% { transform: rotate(3deg); }
}
@media (max-width: 820px) {
  .assistant-button { min-width: 58px; min-height: 58px; padding: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .contact-rail,.assistant-button { animation: none !important; }
}
