:root {
  --site-max-width: 1720px;
  --site-gutter: clamp(24px, 3.15vw, 60px);
  --header-height: 56px;
  --font-body: 'apollonia-clinic', sans-serif;
  --font-display: 'Forum', serif;
  --section-heading-size: clamp(2rem, 3.35vw, 4rem);
  --section-body-size: clamp(1rem, 1.05vw, 1.125rem);
  --header-logo-width: clamp(94px, 10vw, 148px);
  --header-text-size: 14px;
  --header-address-height: 18px;
  --action-fill: #5a5980;
  --action-hover: #474668;
}

* { box-sizing: border-box; }
:where(a, button, summary, [tabindex]) { -webkit-tap-highlight-color: transparent; }
:where(a, button, summary, [tabindex]):focus:not(:focus-visible) { outline: none; }
:where(a, button, summary, [tabindex]):focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
a { text-decoration: none; }
:where(button, summary) { -webkit-appearance: none; appearance: none; }
button { font: inherit; }
::selection { color: #fff; background: #61617d; }
html, body { width: 100%; min-height: 100%; margin: 0; }
html { background: #efecea; }
body { overflow-x: hidden; overflow-y: auto; font-family: var(--font-body); letter-spacing: -.2px; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-display);  text-transform: uppercase; }
.scene { position: relative; isolation: isolate; min-height: 100vh; width: 100%; background: #efecea; }


.hero { position: relative; z-index: 2; height: 100vh; height: 100dvh; min-height: 34rem; }
#hero-glass { display: block; position: absolute; top: 0; left: 0; z-index: 0; width: 100%; pointer-events: none; background: transparent; }
.hero-copy, .hero-awards { z-index: 1; }
.video-section { position: relative; z-index: 2; padding: clamp(1rem, 1.5vw, 2rem) 0 clamp(1.5rem, 2vw, 2.5rem); color: #000; }
.services, .video-section, .doctors, .hero-awards[id] { scroll-margin-top: calc(var(--header-height) + 54px); }
.video-layout { width: min(100%, var(--site-max-width)); margin: 0 auto; padding: 0 var(--site-gutter); }
.services__interlude { padding: calc(clamp(2.5rem, 4vw, 4.5rem) + 30px) 0; }
.services__interlude .video-layout { padding: 0; }
.services__divider { position: absolute; top: 30px; left: 0; right: 0; height: 1px; pointer-events: none; }
.services__divider::before { content: ''; display: block; width: 100%; height: 100%; background: rgba(52, 54, 75, .28); transform-origin: left; transition: transform 1.1s cubic-bezier(.22, 1, .36, 1); }
.services__divider.line-reveal:not(.is-line-visible)::before { transform: scaleX(0); }
@media (prefers-reduced-motion: reduce) {
  .services__divider::before { transition: none; }
}
.video-copy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: clamp(2rem, 5vw, 6rem); min-width: 0; }
.video-frame { --video-radius: clamp(20px, 2vw, 36px); position: relative; isolation: isolate; width: 100%; aspect-ratio: 16 / 9; overflow: hidden; border-radius: var(--video-radius); background: #00000014; -webkit-clip-path: inset(0 round var(--video-radius)); clip-path: inset(0 round var(--video-radius)); }
.custom-video { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; border-radius: inherit; background: transparent; }
.custom-video::-webkit-media-controls { display: none !important; }
.video-glass-defs { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.video-fullscreen, .video-play { display: grid; place-items: center; position: absolute; z-index: 2; width: clamp(44px, 3.2vw, 54px); aspect-ratio: 1; padding: 0; border: 0; border-radius: 50%; color: #fff; background: var(--action-fill); -webkit-backdrop-filter: blur(12px) saturate(1.4); backdrop-filter: blur(12px) saturate(1.4); cursor: pointer; touch-action: manipulation; transition: background .2s ease, transform .2s ease; }
.video-fullscreen { top: clamp(12px, 1.2vw, 20px); right: clamp(12px, 1.2vw, 20px); color: #000; background: rgba(255, 255, 255, .88); }
.video-fullscreen.is-glass-ready { color: #000; background: linear-gradient(155deg, rgba(255, 255, 255, .97), rgba(255, 255, 255, .86) 62%, rgba(255, 255, 255, .9)); -webkit-backdrop-filter: url(#video-liquid-glass) blur(7px) grayscale(1); backdrop-filter: url(#video-liquid-glass) blur(7px) grayscale(1); }
.video-fullscreen:hover, .video-fullscreen:focus-visible, .video-play:hover, .video-play:focus-visible { background: var(--action-hover); }
.video-fullscreen.is-glass-ready:hover, .video-fullscreen.is-glass-ready:focus-visible { background: linear-gradient(155deg, #fff, rgba(255, 255, 255, .94)); }
.video-play { top: 50%; left: 50%; transform: translate(-50%, -50%); }
.video-play[hidden] { display: none; }
.video-icon-collapse { display: none; }
.video-frame:fullscreen, .video-frame.is-expanded { position: fixed; inset: 0; z-index: 10000; width: 100vw; height: 100vh; height: 100dvh; aspect-ratio: auto; border-radius: 0; background: #11121a; -webkit-clip-path: none; clip-path: none; }
.video-frame:fullscreen .custom-video, .video-frame.is-expanded .custom-video { object-fit: contain; border-radius: 0; }
.video-frame:fullscreen .video-icon-expand, .video-frame.is-expanded .video-icon-expand { display: none; }
.video-frame:fullscreen .video-icon-collapse, .video-frame.is-expanded .video-icon-collapse { display: block; }
body.is-video-expanded { overflow: hidden; }
.scene.is-video-expanded .services { z-index: 10000; }
body.is-video-expanded #site-header, body.is-video-expanded .site-noise { visibility: hidden; }
.video-copy h2, .video-copy h3 { margin: 0 0 clamp(.9rem, 1.2vw, 1.25rem); font: 400 clamp(1.75rem, 2.3vw, 2.75rem)/1.06 var(--font-display); text-transform: uppercase; }
.video-body-copy { font: 400 var(--section-body-size)/1.55 var(--font-body); }
.doctors { position: relative; z-index: 2; padding: clamp(3rem, 5vw, 5rem) 0 clamp(3rem, 4vw, 5rem); overflow: hidden; color: #000; }
.doctors-layout { width: 100%; }
.doctors-intro { position: relative; z-index: 1; max-width: 31rem; padding-right: clamp(1.5rem, 4vw, 5rem); }
.doctors-intro-mobile { display: none; }
.doctors-intro-desktop { flex: 0 0 clamp(28rem, 35vw, 44rem); max-width: none; }
.doctors-kicker { margin: 0 0 clamp(1rem, 1.8vw, 1.75rem); font: 400 clamp(.75rem, .85vw, .9rem)/1.2 var(--font-body); letter-spacing: -.2px; text-transform: uppercase; }
.doctors h2 { margin: 0; font: 400 var(--section-heading-size)/1.02 var(--font-display); text-transform: uppercase; }
.doctors-lede { max-width: 32rem; margin: clamp(1.25rem, 2vw, 2rem) 0 0; font: 400 var(--section-body-size)/1.55 var(--font-body); }
.doctors-gallery { position: relative; width: 100%; min-width: 0; overflow: hidden; touch-action: pan-y; user-select: none; cursor: grab; }
.doctors-gallery.is-dragging { cursor: grabbing; }
.doctors-gallery:focus-visible .doctor-card:first-child .doctor-card-rule::after { transform: scaleX(1); }
.doctors-track { display: flex; align-items: flex-start; width: max-content; padding: 0 var(--doctors-side-space, calc((100vw - min(100vw, var(--site-max-width))) / 2 + var(--site-gutter))) clamp(2rem, 4vw, 4rem); will-change: transform; }
.doctors-cards { display: flex; flex: 0 0 auto; align-items: flex-start; gap: clamp(48px, 6.7vw, 128px); }
.doctor-card { flex: 0 0 auto; width: clamp(233px, calc(194px + 10.3vw), 380px); }
.doctor-card:nth-child(odd) { margin-top: clamp(40px, 6.9vw, 132px); }
.doctor-card-main { display: block; width: 100%; }
.doctor-photo-frame { display: block; width: 100%; perspective: 1000px; }
.doctor-photo-tilt { display: block; width: 100%; aspect-ratio: 380 / 450; background: #00000014; overflow: hidden; border-radius: 15px; transform-style: preserve-3d; transition: transform .15s linear; }
.doctor-photo-svg { display: block; width: 100%; height: 100%; }
.doctor-photo-flare { mix-blend-mode: screen; opacity: 0; }
.doctor-photo-tilt.has-image .doctor-photo-flare { opacity: 1; }
.doctor-card-caption { display: block; margin-top: clamp(1.5rem, 2.6vw, 3.25rem); }
.doctor-card-name { display: block; font: 400 clamp(1.08rem, 1.35vw, 1.55rem)/1.12 var(--font-body); }
.doctor-card-specialty, .doctor-card-experience { font: 400 clamp(.85rem, 1vw, 1rem)/1.45 var(--font-body); }
.doctor-card-specialty { padding: 1.2rem 0 .2rem; }
.doctor-card-experience { padding: .3rem 0 .4rem; opacity: .66; }
.doctor-card-rule { position: relative; display: block; height: 1px; margin-top: clamp(1.2rem, 2.3vw, 2.5rem); }
.doctor-card-rule::before { content: ''; position: absolute; inset: 0; background: rgba(52, 54, 75, .25); transform-origin: left; transition: transform 1.15s cubic-bezier(.4, 0, .2, 1); }
.doctor-card-rule::after { content: ''; position: absolute; inset: 0; background: #747999; transform: scaleX(0); transform-origin: right; transition: transform .4s cubic-bezier(.52, .01, 0, 1); }
.doctor-card:hover .doctor-card-rule::after, .doctor-card:focus-within .doctor-card-rule::after { transform: scaleX(1); transform-origin: left; }
.doctors-cursor { display: none; position: fixed; z-index: 10000; left: 0; top: 0; width: 110px; height: 110px; align-items: center; justify-content: center; border-radius: 50%; background: #fff; color: #000; pointer-events: none; opacity: 0; transform: translate3d(-50%, -50%, 0); transition: opacity .18s ease; will-change: transform; }
.doctors-cursor.is-visible { opacity: 1; }
.doctors-cursor-label { font: 400 14px/1 var(--font-body); letter-spacing: -.2px; text-transform: uppercase; }
.doctors-cursor-arrow { position: absolute; top: 50%; width: 8px; height: 8px; margin-top: -4px; border-top: 2px solid #34364b; border-right: 2px solid #34364b; transition: opacity .15s ease; }
.doctors-cursor-arrow--left { left: -20px; transform: rotate(-135deg); }
.doctors-cursor-arrow--right { right: -20px; transform: rotate(45deg); }

.photo-gallery { position: relative; z-index: 2; padding: clamp(3rem, 5vw, 5.5rem) 0 clamp(2rem, 3vw, 3.5rem); color: #000; scroll-margin-top: calc(var(--header-height) + 54px); }
.photo-gallery__heading, .photo-gallery__foot { width: min(100%, var(--site-max-width)); margin: 0 auto; padding: 0 var(--site-gutter); }
.photo-gallery__heading { display: flex; align-items: end; justify-content: space-between; gap: 1.5rem; margin-bottom: clamp(1.75rem, 3vw, 3rem); }
.photo-gallery__kicker { display: block; margin-bottom: 1rem; font: 400 .9rem/1.2 var(--font-body); text-transform: uppercase; }
.photo-gallery h2 { margin: 0; font: 400 var(--section-heading-size)/1.02 var(--font-display); text-transform: uppercase; }
.photo-gallery__controls { display: flex; flex: 0 0 auto; gap: .75rem; }
.photo-gallery__controls[hidden] { display: none; }
.photo-gallery__button { display: grid; place-items: center; width: 48px; height: 48px; padding: 0; border: 1px solid rgba(0, 0, 0, .2); border-radius: 50%; color: #000; background: transparent; cursor: pointer; transition: background .2s ease, color .2s ease, border-color .2s ease, opacity .2s ease; }
.photo-gallery__button:enabled:hover, .photo-gallery__button:focus-visible { background: var(--action-fill); border-color: var(--action-fill); color: #fff; }
.photo-gallery__button:disabled { opacity: .3; cursor: default; }
.photo-gallery__viewport { position: relative; width: 100%; overflow-x: auto; overflow-y: hidden; overscroll-behavior-x: contain; scroll-behavior: auto; touch-action: pan-x pan-y; }
.photo-gallery__viewport.is-interactive { scrollbar-width: none; cursor: grab; user-select: none; -webkit-user-select: none; }
.photo-gallery__viewport.is-interactive::-webkit-scrollbar { display: none; }
.photo-gallery__viewport.is-dragging { cursor: grabbing; }
.photo-gallery__viewport:focus-visible { outline-offset: -4px; }
.photo-gallery__track { display: flex; align-items: start; gap: clamp(16px, 1.75vw, 30px); width: max-content; padding: 0 var(--photo-gallery-side-space, calc((100vw - min(100vw, var(--site-max-width))) / 2 + var(--site-gutter))); }
.photo-gallery__item { flex: 0 0 auto; width: clamp(280px, 32vw, 520px); margin: 0; }
.photo-gallery__item--wide { width: clamp(340px, 45vw, 720px); }
.photo-gallery__item--portrait { width: clamp(240px, 24vw, 380px); }
.photo-gallery__frame { position: relative; height: clamp(250px, 29vw, 440px); overflow: hidden; border-radius: clamp(14px, 1.5vw, 24px); background: #00000014; }
.photo-gallery__image { display: block; width: 100%; height: 100%; object-fit: cover; transition: opacity .45s ease, transform .8s cubic-bezier(.22, 1, .36, 1); }
.has-js .photo-gallery__image:not(.is-loaded) { opacity: 0; }
.photo-gallery__image[hidden] { display: none; }
.photo-gallery__number { display: block; margin-top: .9rem; font: 400 .9rem/1.2 var(--font-body); color: #000; }
.photo-gallery__foot { display: flex; align-items: center; gap: 1.5rem; margin-top: clamp(1.5rem, 2.5vw, 2.5rem); }
.photo-gallery__count { flex: 0 0 auto; font: 400 1rem/1.2 var(--font-body); }
.photo-gallery__progress { height: 1px; width: 100%; overflow: hidden; background: rgba(0, 0, 0, .14); }
.photo-gallery__progress span { display: block; width: 100%; height: 100%; background: var(--action-fill); transform: scaleX(.125); transform-origin: left; }
@media (hover: hover) and (pointer: fine) {
  .photo-gallery__viewport.is-interactive { cursor: none; }
  .photo-gallery__viewport:not(.is-dragging) .photo-gallery__frame:hover .photo-gallery__image.is-loaded { transform: scale(1.035); }
}
@media (max-width: 600px) {
  .photo-gallery__heading { align-items: center; flex-wrap: wrap; gap: 1rem; }
  .photo-gallery__controls { gap: .5rem; }
  .photo-gallery__button { width: 44px; height: 44px; }
  .photo-gallery__item, .photo-gallery__item--wide { width: min(80vw, 400px); }
  .photo-gallery__item--portrait { width: min(65vw, 300px); }
  .photo-gallery__frame { height: clamp(240px, 70vw, 340px); }
}
@media (prefers-reduced-motion: reduce) {
  .photo-gallery__image, .photo-gallery__button { transition: none; }
  .photo-gallery__frame .photo-gallery__image.is-loaded { transform: none !important; }
}


.hero-copy {
  position: absolute;
  left: calc((100% - min(100%, var(--site-max-width))) / 2 + var(--site-gutter));
  --hero-title-size: min(3.75rem, max(1.75rem, 3.4vw), calc((100vw - var(--site-gutter) - var(--site-gutter)) / 10.5));
  font-size: var(--hero-title-size);
  top: 50%;
  transform: translateY(-50%);
  width: min(48rem, max(19rem, 43vw), calc(100% - var(--site-gutter) - var(--site-gutter)));
  --hero-ink: #000;
  color: var(--hero-ink);
  text-align: left;
  pointer-events: none;
}
.has-js .hero-copy:not(.is-ready) { visibility: hidden; }
.hero-copy h1 {
  margin: 0;
  font: 400 1em/1.08 var(--font-display);
  letter-spacing: .005em;
  text-transform: uppercase;
  position: relative;
  min-height: 3.24em;
}
.hero-copy-line { position: relative; display: block; width: max-content; white-space: nowrap; }
.hero-copy-probe { position: absolute; left: 0; top: calc(var(--line) * 1.08em); display: block; width: max-content; white-space: nowrap; visibility: hidden; pointer-events: none; }
.hero-copy-line.is-scrambling { color: transparent; }
.scramble-overlay { position: absolute; inset: 0; color: var(--hero-ink); pointer-events: none; }
.scramble-glyph {
  position: absolute;
  top: 0;
  display: block;
  white-space: pre;
  opacity: 0;
}
.type-cursor {
  position: absolute;
  left: calc(100% + .07em);
  top: 0;
  color: var(--hero-ink);
  visibility: hidden;
  pointer-events: none;
  animation: type-cursor-blink .75s step-end infinite;
}
.type-cursor.is-visible { visibility: visible; }
@keyframes type-cursor-blink { 50% { opacity: 0; } }
.hero-appointment {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 64px;
  margin-top: clamp(38px, 4vh, 58px);
  padding: 16px clamp(24px, 1.9vw, 36px);
  border: 0;
  border-radius: 9999px;
  color: #fff;
  background: var(--action-fill);
  font: 400 clamp(15px, 1.05vw, 20px)/1.25 var(--font-body);
  text-decoration: none;
  white-space: nowrap;
  pointer-events: auto;
  transition: background-color .25s ease;
}
.has-js .hero-appointment, .has-js .hero-award { opacity: 0; transform: translate3d(0, 14px, 0); }
.has-js .hero-appointment:not(.is-revealed), .has-js .hero-award:not(.is-revealed) { visibility: hidden; }
.has-js .hero-appointment.is-revealed { animation: hero-control-enter 1s cubic-bezier(.22, 1, .36, 1) forwards; }
.has-js .hero-award.is-revealed { animation: hero-control-enter .95s cubic-bezier(.22, 1, .36, 1) forwards; }
@keyframes hero-control-enter { to { opacity: 1; transform: translate3d(0, 0, 0); } }
.hero-appointment:hover, .hero-appointment:focus-visible { background: var(--action-hover); }

.hero-awards {
  position: absolute;
  left: calc((100% - min(100%, var(--site-max-width))) / 2 + var(--site-gutter));
  bottom: clamp(1.5rem, 5vh, 4rem);
  bottom: clamp(1.5rem, 5dvh, 4rem);
  display: flex;
  align-items: center;
  gap: clamp(16px, 1.75vw, 36px);
  max-width: calc(100% - var(--site-gutter) - var(--site-gutter));
  color: #000;
}
.hero-award { display: flex; flex: 0 0 auto; align-items: center; gap: 4px; min-height: 78px; }
.hero-award-laurel { display: block; flex: 0 0 auto; width: 34px; height: 60px; object-fit: contain; }
.hero-award-laurel--right { transform: scaleX(-1); }
.hero-award-content { display: flex; flex-direction: column; justify-content: center; min-height: 52px; }
.hero-award-content--inline { flex-direction: row; align-items: center; gap: 9px; }
.hero-award-stars { display: flex; gap: 2px; margin-bottom: 3px; }
.hero-award-stars img { display: block; width: 17px; height: 17px; }
.hero-award-caption { display: block; font: 400 clamp(13px, .85vw, 15px)/1.3 var(--font-body); white-space: nowrap; }
.hero-award-caption .award-emphasis { font-weight: 600; }
.hero-award-caption .award-line { display: block; }
.hero-award--rating .hero-award-content { display: grid; grid-template-rows: 26px 20px; align-content: center; justify-items: center; }
.hero-award--rating .hero-award-stars { align-self: center; justify-content: center; width: 100%; margin: 0; }
.hero-award--rating .hero-award-caption { line-height: 20px; text-align: center; }
.hero-award--yandex .hero-award-content { display: grid; grid-template-columns: 32px auto; grid-template-rows: 26px 20px; align-content: center; gap: 0 9px; }
.hero-award--yandex .hero-award-yandex { grid-row: 1 / 3; align-self: center; }
.hero-award--yandex .hero-award-caption { grid-column: 2; grid-row: 1 / 3; align-self: end; line-height: 20px; }
.hero-award-yandex { display: block; width: 32px; height: 32px; }
.hero-award-megaphone { display: block; width: 28px; height: 28px; }
.hero-award-prodoctorov { display: block; width: 100px; height: auto; margin-top: 3px; }


#site-header {
  position: fixed;
  inset: 0 0 auto 0;
  width: calc(min(100%, var(--site-max-width)) - var(--site-gutter) - var(--site-gutter));
  height: var(--header-height);
  margin: 30px auto 0;
  z-index: 10001;
  border-radius: 999px;
  background: #ffffff80;
  -webkit-backdrop-filter: blur(12px) saturate(1.4);
  backdrop-filter: blur(12px) saturate(1.4);
  border-width: 0.5px;
  border-style: solid;
  border-color: rgba(255, 255, 255, 0.2);
  transform: translate3d(0, calc(-100% - 64px), 0);
  animation: header-slide-in .85s cubic-bezier(.22, 1, .36, 1) 1s forwards;
  transition: margin-top .5s cubic-bezier(.22, 1, .36, 1);
}
#site-header.is-scrolled { margin-top: 10px; }
@keyframes header-slide-in { to { transform: translate3d(0, 0, 0); } }
#site-header.is-glass-ready { backdrop-filter: url(#header-liquid-glass) blur(7px) saturate(1.4); }
.header-glass-defs { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
#site-header .header-shell {
  display: flex;
  align-items: center;
  gap: clamp(12px, 1.15vw, 22px);
  height: 100%;
  padding: 0 clamp(16px, 1.7vw, 28px);
}
#site-header .header-brand { display: flex; flex: 0 0 var(--header-logo-width); align-items: center; gap: 4.5%; width: var(--header-logo-width); text-decoration: none; }
#site-header .header-brand:focus-visible { filter: brightness(.72); }
#site-header .header-mark { display: block; width: 19.5%; height: auto; }
#site-header .header-wordmark { display: block; width: 76%; height: auto; }
#site-header .header-location,
#site-header .site-navigation,
#site-header .header-phone {
  color: #000;
  font: 400 clamp(14px, 1.15vw, 16px)/1.25 var(--font-body);
  letter-spacing: -.2px;
  white-space: nowrap;
}
#site-header .header-location {display: flex;flex: 0 0 auto;align-items: center;gap: 10px;min-width: 0;}
#site-header .header-status-dot {display: block;flex: 0 0 8px;width: 8px;height: 8px;border-radius: 50%;background: #61617d;animation: header-dot-pulse 2s ease-in-out infinite;}
@keyframes header-dot-pulse { 0%, 100% { opacity: .28; transform: scale(.8); } 50% { opacity: 1; transform: scale(1); } }
#site-header .header-address { position: relative; display: inline-block; height: var(--header-address-height); line-height: var(--header-address-height); overflow: hidden; color: inherit; text-decoration: none; }
#site-header .header-address-track { display: flex; flex-direction: column; transform: translate3d(0, 0, 0); transition: transform .55s cubic-bezier(.22, 1, .36, 1); }
#site-header .header-address-line { display: block; height: var(--header-address-height); line-height: var(--header-address-height); }
#site-header .header-address:hover .header-address-track,
#site-header .header-address:focus-visible .header-address-track { transform: translate3d(0, calc(-1 * var(--header-address-height)), 0); }
#site-header .site-navigation { display: flex; flex: 0 1 auto; align-items: center; gap: clamp(11px, 1.05vw, 19px); min-width: 0; margin-left: auto; }
#site-header .site-navigation a,
#site-header .header-phone { color: inherit; text-decoration: none; }
#site-header .site-navigation a {flex: 0 0 auto;font-size: clamp(14px, 1.15vw, 16px);}
#site-header .site-navigation a:hover,
#site-header .site-navigation a:focus-visible,
#site-header .header-phone:hover,
#site-header .header-phone:focus-visible {text-decoration: none;}
#site-header .header-phone {flex: 0 0 auto;margin-left: clamp(4px, .6vw, 12px);font-size: clamp(14px, 1.1vw, 16px);font-weight: 500;}

@media (min-width: 1024px) and (max-width: 1390px) {
  :root {
    --header-logo-width: clamp(84px, 8.8vw, 122px);
    --header-text-size: clamp(12px, 1.1vw, 13px);
  }
  #site-header .header-shell { gap: clamp(7px, .9vw, 12px); padding: 0 clamp(12px, 1.25vw, 18px); }
  #site-header .header-location { gap: 6px; }
  #site-header .site-navigation { gap: clamp(8px, .9vw, 12px); }
  #site-header .header-phone { margin-left: 0; }
}
@media (max-width: 1023px) {
  :root { --header-height: 80px; }
  #site-header { border-radius: 28px; }
  #site-header .header-shell {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    grid-template-areas: 'brand location phone' 'nav nav nav';
    column-gap: 16px;
    row-gap: 5px;
    padding: 9px 18px;
  }
  #site-header .header-brand { grid-area: brand; }
  #site-header .header-location { grid-area: location; justify-self: center; }
  #site-header .site-navigation { grid-area: nav; justify-self: center; margin: 0; }
  #site-header .header-phone { grid-area: phone; justify-self: end; margin: 0; }
}
@media (max-width: 760px) {
  :root { --header-height: 96px; }
  #site-header { border-radius: 22px; }
  #site-header .header-shell {
    grid-template-columns: minmax(0, 1fr) auto;
    grid-template-areas: 'brand phone' 'location location' 'nav nav';
    row-gap: 4px;
    padding: 8px 14px;
  }
  #site-header .header-brand { width: min(100%, var(--header-logo-width)); }
  #site-header .header-location { justify-self: start; max-width: 100%; }
  #site-header .header-address { min-width: 0; max-width: 100%; }
  #site-header .header-address-line { overflow: hidden; text-overflow: ellipsis; }
  #site-header .site-navigation {
    justify-self: stretch;
    justify-content: flex-start;
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
    padding: 2px 0 4px;
  }
  #site-header .site-navigation::-webkit-scrollbar { display: none; }
}


.scene.no-webgl #hero-glass { visibility: hidden; }
.scene.no-webgl .hero::before { content: ""; position: absolute; width: min(68vw, 60vh, 760px); aspect-ratio: 216 / 179; right: calc((100% - min(100%, var(--site-max-width))) / 2 + var(--site-gutter)); top: calc(50% + var(--glass-shift-px, 0px)); transform: translateY(-50%); background: url("assets/tooth-fallback-lightened.svg") center / contain no-repeat; }

@media (hover: hover) and (pointer: fine) {
  .doctors-cursor { display: flex; }
  .doctors-gallery { cursor: none; }
}
@media (max-width: 800px) {
  .doctors { padding-top: clamp(2.5rem, 5vh, 4rem); }
  .doctors-intro-mobile { display: block; width: min(100%, var(--site-max-width)); max-width: none; margin: 0 auto; padding: 0 var(--site-gutter); }
  .doctors-intro-desktop { display: none; }
  .doctors-gallery { margin-top: clamp(2rem, 6vw, 3.5rem); }
  .doctors-track { padding-bottom: 2rem; }
  .doctors-cards { gap: clamp(32px, 7vw, 64px); }
  .doctor-card { width: clamp(220px, 63vw, 350px); }
  .doctor-card:nth-child(odd) { margin-top: clamp(24px, 6vw, 56px); }
  .doctor-card-caption { margin-top: 1.5rem; }
}
@media (max-width: 900px) {
  .video-copy { grid-template-columns: minmax(0, 1fr); max-width: 45rem; gap: clamp(2.5rem, 6vw, 4rem); }
}
@media (max-width: 1200px) {
  .hero { min-height: 42rem; margin-bottom: 14rem; }
  .hero-awards { display: grid; grid-template-columns: repeat(2, max-content); gap: 12px 24px; top: calc(100% + 16px); bottom: auto; }
}
@media (max-width: 900px) {
  
  .hero-copy { top: calc(var(--header-height) + 30px + clamp(18px, 2.5vw, 32px)); transform: none; }
  .scene.no-webgl .hero::before { top: calc(var(--header-height) + 18rem); transform: none; }
}
@media (max-width: 600px) {
  .hero { height: 100vh; height: 100svh; min-height: 35rem; margin-bottom: 17rem; }
  .hero-awards { grid-template-columns: max-content; gap: 9px; }
  .hero-award { min-height: 66px; }
  .hero-award-laurel { height: 54px; width: 30px; }
  .hero-appointment { min-height: 56px; padding-block: 14px; }
}

.hero-awards.is-row {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: clamp(16px, 1.75vw, 36px);
  top: auto;
  bottom: clamp(1.5rem, 5vh, 4rem);
  bottom: clamp(1.5rem, 5dvh, 4rem);
}
.hero-awards.is-stacked {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 4px;
  top: auto;
  bottom: clamp(12px, 4vh, 36px);
  bottom: clamp(12px, 4dvh, 36px);
}
.hero-awards.is-below {
  display: grid;
  grid-template-columns: repeat(2, max-content);
  gap: 12px 24px;
  top: calc(100% + 16px);
  bottom: auto;
}
@media (min-width: 1000px) and (max-width: 1550px) {
  .hero-awards.is-row { bottom: clamp(2rem, 5vh, 4rem); bottom: clamp(2rem, 5dvh, 4rem); }
}
@media (max-width: 600px) {
  .hero-awards.is-below { grid-template-columns: max-content; gap: 9px; }
}

.services {
  position: relative;
  z-index: 2;
  padding: clamp(2.5rem, 4vw, 5rem) 0 clamp(.75rem, 1.3vw, 1.5rem);
  color: #000;
}
.hero + .services { padding-top: clamp(2rem, 3.4vw, 4.25rem); }
.services__inner {
  width: min(100%, var(--site-max-width));
  margin: 0 auto;
  padding: 0 var(--site-gutter);
}
.services__heading {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 1.5rem;
  margin-bottom: clamp(1.5rem, 2.8vw, 3rem);
}
.services__heading h2 {
  margin: 0;
  font: 400 var(--section-heading-size)/1.02 var(--font-display);
  text-transform: uppercase;
}
.services__eyebrow {
  padding-bottom: .25em;
  font: 400 clamp(.85rem, .94vw, 1rem)/1.2 var(--font-body);
  text-align: right;
  text-transform: uppercase;
}
.services__grid {
  display: grid;
  grid-template-columns: repeat(12, minmax(0, 1fr));
  grid-auto-rows: auto;
  column-gap: clamp(20px, 2.3vw, 36px);
  row-gap: clamp(2.25rem, 3vw, 3.5rem);
  margin: 0;
  padding: 0;
  list-style: none;
}
.services__grid > .service-card {
  --tile-height: clamp(260px, 20vw, 360px);
  grid-column: span var(--tile-span);
  min-width: 0;
}
.service-icon-defs { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.service-card__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
}
.service-card__media {
  display: block;
  position: relative;
  flex: none;
  height: var(--tile-height);
  overflow: hidden;
  border-radius: clamp(14px, 1.45vw, 24px);
  background: #00000014;
}
.service-card__media img {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .55s cubic-bezier(.2, .7, .2, 1), opacity .4s ease;
}
.service-card--model { position: relative; }
.service-card--model::before {
  content: '';
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--tile-height);
  border-radius: clamp(14px, 1.45vw, 24px);
  background: var(--action-fill);
  transition: background-color .32s cubic-bezier(.2, .65, .2, 1);
}
.service-card--model:focus-within::before { background: var(--action-hover); }
.service-card--model .service-card__link { position: relative; z-index: 1; }
.service-card--model .service-card__media { background: transparent; }
.service-card__model-clip {
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--tile-height);
  overflow: hidden;
  isolation: isolate;
  border-radius: clamp(14px, 1.45vw, 24px);
  pointer-events: none;
}
.service-card__model {
  display: block;
  position: absolute;
  z-index: 0;
  top: 0;
  left: 0;
  width: 100%;
  height: var(--tile-height);
  border: 0;
  border-radius: clamp(14px, 1.45vw, 24px);
  background: transparent;
  pointer-events: none;
}
.service-card--pediatric .service-card__model { z-index: 2; }
.service-card--orthodontics { position: relative; }
.service-card--orthodontics .service-card__model-clip { z-index: 1; }
.service-card--orthodontics .service-card__cta { z-index: 2; }
.service-card__marquee {
  display: flex;
  position: absolute;
  z-index: 1;
  inset: 0;
  flex-direction: column;
  justify-content: center;
  gap: clamp(.75rem, 1.5vw, 1.25rem);
  overflow: hidden;
  color: rgba(255, 255, 255, .7);
  font: 400 clamp(2.4rem, 3.7vw, 4.4rem)/1.08 var(--font-body);
  text-transform: uppercase;
  pointer-events: none;
  transform: translateY(10%);
}
.has-js .service-card__marquee { visibility: hidden; }
.has-js .service-card--pediatric.is-marquee-ready .service-card__marquee { visibility: visible; }
.service-card__marquee-row { flex: none; width: 100%; overflow: hidden; }
.service-card__marquee-track {
  display: flex;
  width: max-content;
  transform: translate3d(0, 0, 0);
}
.service-card--pediatric.is-marquee-ready .service-card__marquee-track { will-change: transform; }
.service-card__marquee-copy {
  flex: none;
  padding-inline-end: clamp(.9rem, 1.2vw, 1.5rem);
  white-space: nowrap;
}
.service-card--consultation .video-frame { height: var(--tile-height); aspect-ratio: auto; }
.service-card--consultation .video-frame:fullscreen,
.service-card--consultation .video-frame.is-expanded { height: 100vh; height: 100dvh; }
.service-card__consult-link { position: absolute; inset: 0; z-index: 1; color: inherit; text-decoration: none; }
.video-frame:fullscreen .service-card__consult-link,
.video-frame.is-expanded .service-card__consult-link { display: none; }
.service-card--consultation .service-card__name a { color: inherit; text-decoration: none; }
.service-card--consultation .service-card__name a:hover,
.service-card--consultation .service-card__name a:focus-visible { text-decoration: none;  }
.has-js .service-card__media img:not(.is-loaded) { opacity: 0; }
.service-card__media img[hidden] { display: none; }
.service-card__cta {
  display: inline-flex;
  position: absolute;
  z-index: 1;
  top: clamp(12px, 1.25vw, 20px);
  left: clamp(12px, 1.25vw, 20px);
  align-items: center;
  justify-content: center;
  gap: clamp(6px, .5vw, 9px);
  min-height: 44px;
  padding: 10px 15px;
  border: 0;
  border-radius: 999px;
  background: rgba(255, 255, 255, .88);
  color: #000;
  font: 400 clamp(.84rem, .9vw, .98rem)/1.15 var(--font-body);
  -webkit-backdrop-filter: blur(16px);
  backdrop-filter: blur(16px);
  transition: background .25s ease, color .25s ease;
}
.service-card__arrow { display: block; flex: none; width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; transition: transform .25s ease; }
.service-card__link:focus-visible .service-card__cta,
.service-card__consult-link:focus-visible .service-card__cta { background: rgba(255, 255, 255, .96); }
.service-card__notes {
  display: flex;
  position: absolute;
  z-index: 1;
  bottom: clamp(12px, 1.25vw, 20px);
  left: clamp(12px, 1.25vw, 20px);
  flex-direction: column;
  align-items: flex-start;
  gap: 6px;
  max-width: calc(100% - clamp(24px, 2.5vw, 40px));
  margin: 0;
  padding: 0;
  list-style: none;
  color: #000;
  font: 400 clamp(.84rem, .9vw, .98rem)/1.25 var(--font-body);
  text-transform: none;
}
.service-card__notes li {
  max-width: 100%;
  padding: .55em .9em;
  border-radius: 999px;
  background: rgba(255, 255, 255, .88);
}
.service-card__footer {
  display: flex;
  align-items: flex-start;
  justify-content: flex-start;
  height: auto;
  padding: clamp(8px, .8vw, 13px) 0 0;
}
.service-card__name {
  max-width: 100%;
  margin: 0;
  text-align: left;
  font: 400 clamp(1.06rem, 1.35vw, 1.6rem)/1.25 var(--font-body);
  text-transform: none;
  letter-spacing: -.015em;
  white-space: normal;
}
@media (hover: hover) and (pointer: fine) {
  .service-card--model:hover::before { background: var(--action-hover); }
  .service-card__link:hover .service-card__media img { transform: scale(1.045); }
  .service-card__link:hover .service-card__cta,
  .service-card__consult-link:hover .service-card__cta { background: rgba(255, 255, 255, .96); }
  .service-card__link:hover .service-card__arrow,
  .service-card__consult-link:hover .service-card__arrow { transform: translate(2px, -2px); }
}
@media (max-width: 900px) {
  .services__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .services__grid > .service-card:nth-child(n) { grid-column: auto; --tile-height: clamp(240px, 38vw, 320px); }
}
@media (max-width: 640px) {
  .services { padding-block: 2.5rem 1rem; }
  .services__heading { align-items: flex-start; flex-direction: column; gap: .5rem; }
  .services__eyebrow { text-align: left; }
  .services__grid { grid-template-columns: minmax(0, 1fr); row-gap: 2.5rem; }
  .services__grid > .service-card:nth-child(n) { grid-column: auto; --tile-height: clamp(220px, 58vw, 330px); }
  .services__grid > .service-card--implantation:nth-child(n) { --tile-height: calc(100vw - 2 * var(--site-gutter)); }
  .service-card__footer { height: auto; padding: 10px 0 0; }
  .service-card__name { font-size: clamp(1.15rem, 4.7vw, 1.5rem); }
}
@media (prefers-reduced-motion: reduce) {
  .service-card--model::before,
  .service-card__media img, .service-card__cta, .service-card__arrow { transition: none; }
  .service-card__marquee-track { will-change: auto; }
}


.section-heading-scramble { position: relative; }
.section-heading-scramble.is-scrambling { color: transparent; }
.section-scramble-overlay { position: absolute; inset: 0; pointer-events: none; }
.section-scramble-glyph { display: block; position: absolute; white-space: pre; opacity: 0; font: inherit; text-transform: inherit; }
.section-scramble-cursor { position: absolute; display: block; visibility: hidden; font: inherit; animation: type-cursor-blink .75s step-end infinite; }
.section-scramble-cursor.is-visible { visibility: visible; }


.advantages {
  position: relative;
  z-index: 2;
  padding: clamp(1rem, 2vw, 2rem) 0 clamp(.75rem, 1.5vw, 2rem);
  color: #000;
}
.advantages__inner {
  width: min(100%, var(--site-max-width));
  margin: 0 auto;
  padding: 0 var(--site-gutter);
}
.advantages__title {
  margin: 0;
  font: 400 var(--section-heading-size)/1.02 var(--font-display);
  text-transform: uppercase;
}
.advantages__list {
  display: grid;
  grid-auto-rows: 1fr;
  position: relative;
  --stack-step: 50px;
  margin: 30px 0 0;
  padding: 0;
  list-style: none;
}
.advantages__item-wrap {
  position: sticky;
  top: calc(var(--header-height) + var(--stack-offset));
  min-width: 0;
}
.advantages__item-wrap:nth-child(1) {--stack-offset: calc(var(--stack-step) * 1);}
.advantages__item-wrap:nth-child(2) { --stack-offset: calc(var(--stack-step) * 2); }
.advantages__item-wrap:nth-child(3) { --stack-offset: calc(var(--stack-step) * 3); }
.advantages__item-wrap:nth-child(4) { --stack-offset: calc(var(--stack-step) * 4); }
.advantages__item-wrap:nth-child(5) { --stack-offset: calc(var(--stack-step) * 5); }
.advantages__item-wrap:nth-child(6) { --stack-offset: calc(var(--stack-step) * 6); }
.advantage-item { display: flex; flex-direction: column; height: 100%; }
.advantage-item__head,
.advantage-item__content {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(24px, 2.5vw, 40px);
}
.advantage-item__head {
  box-sizing: border-box;
  height: var(--stack-step);
  align-items: center;
  background: linear-gradient(rgba(52, 54, 75, .25), rgba(52, 54, 75, .25)) left top / 100% 1px no-repeat;
  transition: background-size 1.15s cubic-bezier(.4, 0, .2, 1);
}
.advantage-item__index,
.advantage-item__short-title {
  font: 500 14px/1.4 var(--font-body);
  letter-spacing: -.2px;
  text-transform: uppercase;
}
.advantage-item__content {
  --photo-height: clamp(360px, 25.5vw, 465px);
  --content-pad-top: clamp(24px, 2vw, 34px);
  --content-pad-bottom: clamp(28px, 2.5vw, 44px);
  flex: 1;
  position: relative;
  min-height: calc(var(--photo-height) + var(--content-pad-top) + var(--content-pad-bottom));
  align-items: start;
  padding: var(--content-pad-top) 0 var(--content-pad-bottom);
}
.advantage-item__content::before {
  content: "";
  position: absolute;
  top: var(--content-pad-top);
  bottom: var(--content-pad-bottom);
  left: 50%;
  width: 1px;
  background: rgba(52, 54, 75, .25);
  transform-origin: top;
  transition: transform 1.15s cubic-bezier(.4, 0, .2, 1);
  pointer-events: none;
}
.advantage-item__copy { display: flex; flex-direction: column; align-items: flex-start; gap: clamp(22px, 2.5vw, 44px); padding-right: clamp(16px, 3vw, 52px); }
.advantage-item__title {
  margin: 0;
  font: 400 clamp(27px, 2.1vw, 37px)/1.2 var(--font-display);
  text-transform: uppercase;
}
.advantage-item__text { max-width: 34rem; font: 400 16px/1.5 var(--font-body); }
.advantage-item__photo {
  position: relative;
  height: var(--photo-height);
  overflow: hidden;
  border-radius: clamp(14px, 1.6vw, 26px);
  background: #00000014;
}
.advantage-item__photo img { display: block; position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.has-js .advantage-item__photo img:not(.is-loaded) { opacity: 0; }
.advantage-item__photo img.is-loaded { opacity: 1; transition: opacity .5s ease; }
.advantage-item__photo img[hidden] { display: none; }
.advantages.is-observed [data-need-animation]:not(.is-visible) { opacity: 0; transform: translate3d(0, 20px, 0); }
.advantages [data-need-animation] {
  transition: opacity .7s cubic-bezier(.25, .1, .25, 1), transform .7s cubic-bezier(.25, .1, .25, 1);
}

@media (max-width: 1179px) {
  .advantage-item__content { --photo-height: clamp(315px, 36vw, 397.5px); column-gap: clamp(20px, 2.5vw, 32px); }
  .advantage-item__copy { gap: 20px; padding-right: 0; }
}
@media (min-width: 768px) and (max-width: 1179px) {
  .advantages__list { margin-top: 20px; }
}
@media (max-width: 767px) {
  .advantages__list { --stack-step: 38px; margin-top: 12px; }
  .advantage-item__head { display: flex; column-gap: 14px; }
  .advantage-item__index,
  .advantage-item__short-title { font-size: 13px; }
  .advantage-item__content { display: flex; flex-direction: column; min-height: 0; gap: 22px; padding: 18px 0 24px; }
  .advantage-item__content::before { display: none; }
  .advantage-item__copy { gap: 14px; }
  .advantage-item__title { font-size: clamp(19px, 3.6vw, 25px); }
  .advantage-item__text { font-size: 15px; }
  .advantage-item__photo { width: 100%; height: auto; aspect-ratio: 32 / 21; }
}
@media (max-width: 767px) and (max-height: 760px) {
  .advantages__list { --stack-step: 32px; }
}
@media (prefers-reduced-motion: reduce) {
  .advantages [data-need-animation] { opacity: 1 !important; transform: none !important; transition: none; }
  .advantage-item__photo img.is-loaded { transition: none; }
  #site-header { animation: none; transform: none; transition: none; }
  #site-header .header-status-dot { animation: none; opacity: .75; transform: none; }
  .has-js .hero-appointment.is-revealed, .has-js .hero-award.is-revealed { opacity: 1; transform: none; animation: none; }
  #site-header .header-address-track,
  .doctor-photo-tilt,
  .doctor-card-rule::after, .doctors-cursor, .hero-appointment,
  .video-fullscreen, .video-play { transition: none; }
}


.numeric-sphere {
  position: relative;
  z-index: 2;
  padding: clamp(.5rem, 1.25vw, 1.25rem) 0 clamp(.25rem, .8vw, .8rem);
  color: #000;
}
.numeric-sphere__inner {
  display: grid;
  grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr);
  align-items: center;
  gap: clamp(.75rem, 1.1vw, 1.5rem);
  position: relative;
  z-index: 1;
  width: min(100%, var(--site-max-width));
  margin: 0 auto;
  padding: 0 var(--site-gutter);
}
.numeric-sphere__visual {
  position: relative;
  justify-self: start;
  width: 100%;
  aspect-ratio: 1;
  min-width: 0;
  overflow: hidden;
}
.numeric-sphere__canvas {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  opacity: 0;
  pointer-events: none;
}
.numeric-sphere.is-canvas-ready .numeric-sphere__canvas { opacity: 1; pointer-events: auto; }
.numeric-sphere__canvas > canvas { display: block; position: absolute; inset: 0; width: 100%; height: 100%; }
.sphere-cursor { position: fixed; top: 0; left: 0; z-index: 10003; width: 24px; height: 24px; border-radius: 50%; background: var(--action-fill); pointer-events: none; opacity: 0; visibility: hidden; transition: opacity .18s ease, visibility 0s .18s; }
.sphere-cursor.is-visible { opacity: 1; visibility: visible; transition-delay: 0s; }
@media (prefers-reduced-motion: reduce) { .sphere-cursor { transition: none; } }
@media (hover: hover) and (pointer: fine) {
  .numeric-sphere.has-custom-cursor, .numeric-sphere.has-custom-cursor * { cursor: none; }
}
.numeric-sphere__benefits {
  min-width: 0;
  border-top: 1px solid rgba(97, 97, 125, .28);
  border-bottom: 1px solid rgba(97, 97, 125, .28);
}
.numeric-sphere__benefit {
  display: grid;
  grid-template-columns: 2rem clamp(50px, 4vw, 66px) minmax(0, 1fr);
  align-items: center;
  gap: clamp(.85rem, 1.5vw, 1.5rem);
  min-height: clamp(118px, 9vw, 156px);
  padding: clamp(1.25rem, 2.2vw, 2.25rem) 0;
}
.numeric-sphere__benefit + .numeric-sphere__benefit { border-top: 1px solid rgba(97, 97, 125, .28); }
.numeric-sphere__number {
  align-self: start;
  padding-top: .25em;
  color: #000;
  font: 400 clamp(.8rem, .85vw, .95rem)/1.2 var(--font-body);
}
.numeric-sphere__benefit img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 1;
  object-fit: contain;
}
.numeric-sphere__copy { display: grid; gap: clamp(.35rem, .65vw, .7rem); min-width: 0; }
.numeric-sphere__title {
  color: #000;
  font: 400 clamp(1.55rem, 1.9vw, 2.15rem)/1.02 var(--font-display);
 text-transform: uppercase; }
.numeric-sphere__detail {
  color: #000;
  font: 400 clamp(.95rem, 1.02vw, 1.125rem)/1.45 var(--font-body);
}
.numeric-sphere__detail a {
  color: #000;
  text-decoration: none;
  
  
  transition: color .25s ease;
}
.numeric-sphere__detail a:hover, .numeric-sphere__detail a:focus-visible { color: var(--action-hover);  }
@media (max-width: 900px) {
  .numeric-sphere__inner { grid-template-columns: minmax(0, 1fr); gap: clamp(.5rem, 2vw, 1rem); }
  .numeric-sphere__visual { width: min(85%, 64.6vh, 544px); }
}
@media (max-width: 600px) {
  .numeric-sphere__visual { width: 85%; }
  .numeric-sphere__benefit { grid-template-columns: 1.4rem 48px minmax(0, 1fr); gap: .75rem; min-height: 104px; padding-block: 1.2rem; }
  .numeric-sphere__title { font-size: clamp(1.45rem, 6vw, 1.85rem); }
}

.prices {
  position: relative;
  z-index: 2;
  padding: clamp(1.5rem, 2vw, 2.5rem) 0 clamp(2rem, 3vw, 4rem);
  color: #000;
  scroll-margin-top: calc(var(--header-height) + 54px);
}
.services + .prices { margin-top: clamp(3rem, 5vw, 6rem); }
.prices__inner {
  width: min(100%, var(--site-max-width));
  margin: 0 auto;
  padding: 0 var(--site-gutter);
}
.prices__intro {
  display: grid;
  grid-template-columns: minmax(0, 1.2fr) minmax(280px, .8fr);
  align-items: end;
  gap: clamp(2rem, 5vw, 6rem);
  margin-bottom: clamp(2rem, 4vw, 4rem);
}
.prices__kicker {
  display: block;
  margin-bottom: clamp(1rem, 2vw, 2rem);
  color: #000;
  font: 400 clamp(.82rem, .9vw, .96rem)/1.3 var(--font-body);
  text-transform: uppercase;
}
.prices__intro h2 {
  margin: 0;
  font: 400 var(--section-heading-size)/1.02 var(--font-display);
  text-transform: uppercase;
}
.prices__intro-aside { align-self: end; }
.prices__notice {
  max-width: 44ch;
  color: #000;
  font: 400 var(--section-body-size)/1.5 var(--font-body);
}
.price-row__book:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; text-decoration: none;  }
.price-group__summary:focus-visible { outline: none; }
.price-group__summary:focus-visible .price-group__title { text-decoration: none;   }
.prices__groups { background: linear-gradient(rgba(52, 54, 75, .26), rgba(52, 54, 75, .26)) left bottom / 100% 1px no-repeat; }
.price-group { background: linear-gradient(rgba(52, 54, 75, .26), rgba(52, 54, 75, .26)) left top / 100% 1px no-repeat; }
.price-group__summary {
  display: grid;
  grid-template-columns: clamp(2.75rem, 5vw, 5rem) minmax(0, 1fr) max-content clamp(42px, 3.2vw, 50px);
  align-items: center;
  gap: clamp(1rem, 2vw, 2rem);
  min-height: clamp(86px, 7vw, 112px);
  padding: 10px 2px;
  list-style: none;
  border: 0;
  background: transparent;
  cursor: pointer;
  touch-action: manipulation;
}
.price-group__summary::-webkit-details-marker { display: none; }
.price-group__summary::marker { content: ""; }
.price-group__index, .price-group__count { color: #000; font: 400 clamp(.82rem, .9vw, .96rem)/1.2 var(--font-body); }
.price-group__title {
  font: 400 clamp(1.45rem, 1.9vw, 2.2rem)/1.1 var(--font-display);
  text-transform: uppercase;
  transition: color .25s ease;
}
.price-group__summary:hover .price-group__title, .price-group[open] .price-group__title { color: #000; }
.price-group__toggle {
  display: block;
  position: relative;
  width: clamp(42px, 3.2vw, 50px);
  aspect-ratio: 1;
  border-radius: 50%;
  background: var(--action-fill);
  color: #fff;
  transition: background .25s ease, color .25s ease;
}
.price-group__toggle::before, .price-group__toggle::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  background: currentColor;
  transform: translate(-50%, -50%);
}
.price-group__toggle::before { width: 16px; height: 1.5px; }
.price-group__toggle::after { width: 1.5px; height: 16px; }
.price-group__summary:hover .price-group__toggle,
.price-group__summary:focus-visible .price-group__toggle,
.price-group[open] .price-group__toggle { background: var(--action-hover); }
.price-group[open] .price-group__toggle::after { transform: translate(-50%, -50%) scaleY(0); }
.price-group__summary { scroll-margin-top: calc(var(--header-height) + 90px); }
.price-group__content { padding: 0; }
.price-group__panel { padding: 0 0 clamp(1.5rem, 2.5vw, 3rem); }
.price-group__layout {
  display: grid;
  grid-template-columns: clamp(210px, 18vw, 300px) minmax(0, 1fr);
  gap: clamp(26px, 3.2vw, 60px);
  align-items: stretch;
}
.price-group__rows { min-width: 0; }
.price-visual { position: relative; min-width: 0; min-height: clamp(250px, 34vh, 340px); }
.price-visual__stage {
  position: absolute;
  inset: 0;
}
.price-visual__frame {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: clamp(210px, 29vh, 280px);
  overflow: hidden;
  border-radius: clamp(14px, 1.5vw, 24px);
  background: #00000014;
  will-change: transform;
}
.price-visual__pane {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background: transparent;
  opacity: 0;
  transition: opacity .62s cubic-bezier(.22, 1, .36, 1);
}
.price-visual__pane.is-visible { opacity: 1; }
.price-visual__pane img { display: block; width: 100%; height: 100%; object-fit: cover; opacity: 0; transition: opacity .5s ease; }
.price-visual__pane img[hidden] { display: none; }
.price-visual__pane.has-image img { opacity: 1; }
.price-visual__sequence {
  position: absolute;
  right: 14px;
  bottom: 12px;
  color: #000;
  font: 400 .78rem/1.2 var(--font-body);
}
.price-visual__pane.has-image .price-visual__sequence { display: none; }
.price-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) max-content max-content;
  align-items: start;
  column-gap: clamp(1.5rem, 3.5vw, 4.5rem);
  padding: clamp(1.25rem, 2vw, 2rem) 0;
  background: linear-gradient(rgba(52, 54, 75, .18), rgba(52, 54, 75, .18)) left top / 100% 1px no-repeat;
}
.price-row__copy { min-width: 0; }
.price-row__name { max-width: 58ch; font: 500 clamp(.98rem, 1.06vw, 1.18rem)/1.32 var(--font-body); }
.price-row__description {
  max-width: 72ch;
  margin-top: .55rem;
  color: #000;
  font: 400 clamp(.87rem, .92vw, 1rem)/1.47 var(--font-body);
}
.price-row__meta {
  display: flex;
  flex-wrap: wrap;
  gap: .6rem;
  margin-top: .8rem;
  color: #000;
  font: 400 clamp(.78rem, .84vw, .9rem)/1.3 var(--font-body);
}
.price-row__cost { display: inline-grid; justify-items: end; white-space: nowrap; text-align: right; font: 400 clamp(1.25rem, 1.35vw, 1.55rem)/1.2 var(--font-body); }
.price-row__cost > span { grid-area: 1 / 1; }
.has-js .price-row__cost:not(.is-counted) .price-row__cost-final { visibility: hidden; }
.price-row__cost-rolling { display: none; }
.price-row__cost.is-counting .price-row__cost-rolling { display: inline; }
.price-row__book {
  display: inline-flex;
  align-items: center;
  justify-content: space-between;
  gap: clamp(.75rem, 1.25vw, 1.5rem);
  min-height: 48px;
  margin-top: -7px;
  padding: 11px 18px;
  border-radius: 999px;
  background: var(--action-fill);
  color: #fff;
  font: 400 clamp(.83rem, .9vw, .98rem)/1.15 var(--font-body);
  text-decoration: none;
  white-space: nowrap;
  transition: background .25s ease, color .25s ease;
}
.price-row__book:hover, .price-row__book:focus-visible { background: var(--action-hover); }
.price-row__book span { font-size: 1.25em; line-height: 1; }
@media (max-width: 900px) {
  .prices__intro { grid-template-columns: 1fr; gap: 1.5rem; }
  .price-row { column-gap: 1.25rem; }
}
@media (max-width: 1100px), (hover: none) {
  .price-group__layout { display: block; }
  .price-visual { display: none; }
}
@media (max-width: 760px) {
  .prices { padding-block: 2rem 5rem; }
  .prices__intro { margin-bottom: 2rem; }
  .price-group__summary { grid-template-columns: 2.25rem minmax(0, 1fr) 42px; min-height: 82px; gap: .8rem; }
  .price-group__title { font-size: clamp(1.23rem, 4vw, 1.7rem); }
  .price-group__count { display: none; }
  .price-group__panel { padding-bottom: 1.5rem; }
  .price-group__rows { padding-left: 0; }
  .price-row { grid-template-columns: minmax(0, 1fr) max-content; row-gap: 1.2rem; }
  .price-row__copy { grid-column: 1 / -1; }
  .price-row__book { margin: -6px 0 0; }
}
@media (max-width: 390px) {
  .price-row { column-gap: .6rem; }
  .price-row__cost { font-size: 1.16rem; }
  .price-row__book { gap: .35rem; padding-inline: 10px; font-size: .8rem; }
}
@media (prefers-reduced-motion: reduce) {
  .has-js .price-row__cost .price-row__cost-final { visibility: visible; }
  .price-row__cost-rolling { display: none !important; }
  .price-visual__pane, .price-visual__pane img { transition: none; }
  .price-row__book, .price-group__title, .price-group__toggle,
  .price-group__toggle::before, .price-group__toggle::after, .price-row__name { transition: none; }
}


.advantage-item__head.line-reveal:not(.is-line-visible) {
  background-size: 1px 1px;
}
.doctor-card-rule.line-reveal:not(.is-line-visible)::before { transform: scaleX(.003); }
.advantage-item__content.line-reveal:not(.is-line-visible)::before { transform: scaleY(.004); }
@media (prefers-reduced-motion: reduce) {
  .advantage-item__head, .advantage-item__content::before, .doctor-card-rule::before { transition: none; }
}


.team-banner { position: relative; z-index: 2; padding: clamp(1.5rem, 3vw, 3rem) 0 clamp(1rem, 2vw, 2rem); }
.team-banner + .doctors { padding-top: clamp(1rem, 2vw, 2rem); }
.team-banner__inner { width: min(100%, var(--site-max-width)); margin: 0 auto; padding: 0 var(--site-gutter); }
.team-banner__frame { position: relative; perspective: 1400px; }
.team-banner__tilt {
  position: relative;
  width: 100%;
  aspect-ratio: 1720 / 960;
  overflow: hidden;
  border-radius: clamp(14px, 1.5vw, 24px);
  background: #00000014;
  transform-style: preserve-3d;
  transition: transform .15s linear;
}
.team-banner__image {
  display: block;
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transition: opacity .5s ease;
}
.has-js .team-banner__image:not(.is-loaded) { opacity: 0; }
.team-banner__image[hidden] { display: none; }
.team-banner__title {
  display: grid;
  position: absolute;
  z-index: 1;
  inset: 0;
  place-items: center;
  margin: 0;
  color: #fff;
  font: 400 clamp(3rem, 11vw, 12rem)/1 var(--font-display);
  text-transform: uppercase;
  pointer-events: none;
  transform: translateY(10%);
}
.team-banner__word { position: relative; display: inline-block; white-space: nowrap; }
@media (prefers-reduced-motion: reduce) {
  .team-banner__tilt, .team-banner__image { transition: none; }
}

.service-card__model-canvas, .service-card__model-still { position: absolute; inset: 0; display: block; width: 100%; height: 100%; }
.service-card__model-canvas[hidden], .service-card__model-still[hidden] { display: none; }
.service-card__model-still { padding: 2.5%; object-fit: contain; }
.service-card--orthodontics .service-card__model-still { top: auto; bottom: -5px; height: calc((96.8% + 5px) * 1136 / 1112); padding: 0 2.5%; object-position: center bottom; }
.service-card--pediatric .service-card__model-still { padding: 0 2.5%; object-position: center bottom; transform: translate(10%, 10px) scale(1.2584); transform-origin: center bottom; }
:where(a, button, summary, [tabindex]):focus-visible { outline: 2px solid #61617d; outline-offset: 4px; }
.doctor-photo-frame { contain: layout paint; }
.service-card__cta { -webkit-backdrop-filter: none; backdrop-filter: none; }
@media (prefers-reduced-motion: reduce) { .type-cursor, .section-scramble-cursor { animation: none; } }

.site-noise {height:100%;left:0;pointer-events:none;position:fixed;top:0;width:100%}.site-noise{overflow:hidden;z-index:10000}.site-noise::after{-webkit-animation:site-noise 1s steps(2) infinite;animation:site-noise 1s steps(2) infinite;background:transparent url(assets/background/noise-bad10279f752a786442d83de9f0f608d.webp) repeat 0 0;content:"";height:calc(100% + 20rem);left:-10rem;pointer-events:none;position:absolute;top:-10rem;width:calc(100% + 20rem);will-change:transform}@-webkit-keyframes site-noise{0%{transform:translate3d(0,9rem,0)}10%{transform:translate3d(-1rem,-4rem,0)}20%{transform:translate3d(-8rem,2rem,0)}30%{transform:translate3d(9rem,-9rem,0)}40%{transform:translate3d(-2rem,7rem,0)}50%{transform:translate3d(-9rem,-4rem,0)}60%{transform:translate3d(2rem,6rem,0)}70%{transform:translate3d(7rem,-8rem,0)}80%{transform:translate3d(-9rem,1rem,0)}90%{transform:translate3d(6rem,-5rem,0)}to{transform:translate3d(-7rem,0,0)}}@keyframes site-noise{0%{transform:translate3d(0,9rem,0)}10%{transform:translate3d(-1rem,-4rem,0)}20%{transform:translate3d(-8rem,2rem,0)}30%{transform:translate3d(9rem,-9rem,0)}40%{transform:translate3d(-2rem,7rem,0)}50%{transform:translate3d(-9rem,-4rem,0)}60%{transform:translate3d(2rem,6rem,0)}70%{transform:translate3d(7rem,-8rem,0)}80%{transform:translate3d(-9rem,1rem,0)}90%{transform:translate3d(6rem,-5rem,0)}to{transform:translate3d(-7rem,0,0)}}
@media (prefers-reduced-motion: reduce) { .site-noise::after { animation: none; } }

.services, .video-section, .doctors, .reviews, .site-footer { scroll-margin-top: calc(var(--header-height) + 54px); }
.reviews { position: relative; z-index: 2; padding: clamp(3rem, 6vw, 7rem) 0 clamp(2.5rem, 4vw, 5rem); overflow: hidden; color: #000; }
.reviews__inner { position: relative; z-index: 1; width: min(100%, var(--site-max-width)); margin: 0 auto; padding: 0 var(--site-gutter); }
.reviews__summary { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1.25rem 2rem; padding: clamp(1rem, 1.6vw, 1.5rem) 0; margin-bottom: clamp(1.5rem, 3vw, 3rem); border-block: 1px solid rgba(97, 97, 125, .28); }
.reviews__score { display: flex; align-items: center; gap: 1rem; }
.reviews__stars { display: inline-flex; gap: 4px; }
.reviews__stars img { width: clamp(18px, 1.6vw, 26px); height: auto; }
.reviews__count {font: 400 clamp(1.2rem, 2.2vw, 1.2rem)/1 var(--font-body);text-transform: uppercase;}
.reviews__sources { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem; }
.reviews__source {display: inline-flex;align-items: center;gap: .6rem;min-height: 48px;padding: 8px 16px 8px 12px;border-radius: 999px;background: rgba(255, 255, 255, .55);font: 400 clamp(.85rem, .94vw, 1rem)/1 var(--font-body);text-transform: uppercase;}
.reviews__source { color: inherit; text-decoration: none; }
.reviews__source img { display: block; width: auto; }
.reviews__track { --reviews-gap: clamp(12px, 1.6vw, 28px); position: relative; z-index: 1; display: flex; gap: var(--reviews-gap); overflow-x: auto; padding: 1.5rem 0 2rem; scroll-snap-type: x mandatory; scroll-padding-inline: 0; scrollbar-width: none; cursor: grab; perspective: 1200px; overscroll-behavior-x: contain; }
.reviews__track::-webkit-scrollbar { display: none; }
.reviews__track.is-dragging { cursor: grabbing; scroll-snap-type: none; user-select: none; }
.review-card {--rx: 0deg;--ry: 0deg;--gx: 50%;--gy: 0%;position: relative;isolation: isolate;display: flex;flex: 0 0 calc((100% - var(--reviews-gap) - var(--reviews-gap)) / 3);min-width: 0;flex-direction: column;gap: 1.25rem;min-height: clamp(24rem, 36vw, 30rem);padding: clamp(1.4rem, 2.2vw, 2.6rem);overflow: hidden;border: 1px solid rgba(255, 255, 255, .75);border-radius: clamp(20px, 2vw, 36px);scroll-snap-align: start;color: #000;background: linear-gradient(155deg, rgba(255, 255, 255, .8), rgba(255, 255, 255, .4));-webkit-backdrop-filter: blur(20px) saturate(1.3);backdrop-filter: blur(20px) saturate(1.3);transform: rotateX(var(--rx)) rotateY(var(--ry));transition: transform .28s cubic-bezier(.2, .8, .2, 1), opacity .55s ease;}
.review-card::after { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; background: radial-gradient(420px circle at var(--gx) var(--gy), rgba(255, 255, 255, .9), transparent 60%); transition: opacity .3s ease; }
.review-card.is-tilting { transition-duration: .08s, .55s; will-change: transform; }
.review-card.is-tilting::after { opacity: .7; }
.review-card--accent { color: #fff; border-color: rgba(255, 255, 255, .18); background: linear-gradient(155deg, #6d6c9a, #4a4970 70%); }
.review-card--accent::after { background: radial-gradient(420px circle at var(--gx) var(--gy), rgba(255, 255, 255, .28), transparent 60%); }
.review-card__quote {position: absolute;top: -.05em;right: .18em;z-index: -1;color: rgba(90, 89, 128, .16);font: 400 clamp(9rem, 14vw, 15rem)/1 var(--font-display);text-transform: uppercase;}
.review-card--accent .review-card__quote { color: rgba(255, 255, 255, .14); }
.review-card__tag { align-self: flex-start; padding: 7px 14px; border: 1px solid currentColor; border-radius: 999px; font: 400 clamp(.72rem, .8vw, .85rem)/1 var(--font-body); text-transform: uppercase; opacity: .8; }
.review-card__text {margin: 0;font: 400 clamp(1.05rem, 1.3vw, 1.2rem)/1.45 var(--font-body);}
.has-js .review-card .review-card__text { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 6; overflow: hidden; }
.review-card__more {align-self: flex-start;padding: 9px 15px;border: 1px solid rgba(97, 97, 125, .28);border-radius: 999px;color: #000;background: transparent;font: 400 .875rem/1.25 var(--font-body);cursor: pointer;touch-action: manipulation;}
.review-card__more[hidden] { display: none; }
.review-card--accent .review-card__more { border-color: rgba(255, 255, 255, .3); color: #fff; background: #54537c; }
.review-card__more:hover { text-decoration: none;  }
.review-card__author {display: flex;align-items: center;gap: .85rem;margin-top: auto;padding-top: 1.25rem;border-top: 1px solid rgba(97, 97, 125, .28);}
.review-card--accent .review-card__author { border-color: rgba(255, 255, 255, .25); }
.review-card__avatar { display: grid; flex: none; place-items: center; width: 48px; aspect-ratio: 1; border-radius: 50%; color: inherit; background: #00000014; font: 500 .95rem/1 var(--font-body); text-transform: uppercase; }
.review-card__who { display: grid; gap: 3px; min-width: 0; overflow-wrap: anywhere; }
.review-card__who b { font: 400 clamp(1rem, 1.1vw, 1.15rem)/1.1 var(--font-body); }
.review-card__source { color: inherit; text-decoration: none;  }
.review-card__source:hover { text-decoration: none; }
.review-card__who small { font: 400 .8rem/1.1 var(--font-body); opacity: .65; }
.review-card__stars { margin-left: auto; color: #e0a83a; font-size: .95rem; letter-spacing: 2px; white-space: nowrap; }
.reviews__controls { display: flex; align-items: center; gap: .75rem; }
.reviews__progress { --p: 0; flex: 1; height: 2px; margin-right: clamp(.5rem, 2vw, 2rem); background: rgba(97, 97, 125, .28); }
.reviews__progress::after { content: ""; display: block; height: 100%; background: var(--action-fill); transform: scaleX(var(--p)); transform-origin: left; transition: transform .25s ease; }
.reviews__btn { display: grid; flex: none; place-items: center; width: 56px; aspect-ratio: 1; padding: 0; border: 0; border-radius: 50%; color: #fff; background: var(--action-fill); cursor: pointer; touch-action: manipulation; transition: background .25s ease, opacity .25s ease, transform .25s ease; }
.reviews__btn:hover, .reviews__btn:focus-visible { background: var(--action-hover); transform: scale(1.06); }
.reviews__btn:disabled { opacity: .35; cursor: default; transform: none; }
.reviews__marquee { position: relative; overflow: hidden; z-index: 1; display: grid; gap: 14px; margin-top: clamp(2rem, 4vw, 4.5rem); -webkit-mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); mask-image: linear-gradient(90deg, transparent, #000 12%, #000 88%, transparent); }
.reviews__row { display: flex; gap: 14px; width: max-content; animation: reviews-marquee 60s linear infinite; }
.reviews__row--rev { animation-direction: reverse; animation-duration: 70s; }
.reviews__row span {padding: 14px 26px;border: 1px solid rgba(97, 97, 125, .35);border-radius: 999px;background: transparent;font: 400 clamp(1rem, 1.4vw, 1.2rem)/1.2 var(--font-body);white-space: nowrap;}
.reviews__row span::before {content: "✦";margin-right: .7em;color: var(--action-fill);font-size: 1em;vertical-align: baseline;}
@keyframes reviews-marquee { to { transform: translate3d(calc(-50% - 7px), 0, 0); } }
.has-js .review-card {height: clamp(24rem, 36vw, 30rem);}
@media (prefers-reduced-motion: no-preference) {
  .has-js .review-card:not(.is-in) { opacity: 0; pointer-events: none; }
  .has-js .review-card.is-in { opacity: 1; }
}
@media (prefers-reduced-motion: reduce) { .reviews__row { animation: none; } .review-card, .reviews__btn { transition: none; } }
@media (max-width: 1023px) { .review-card { flex-basis: calc((100% - var(--reviews-gap)) / 2); } }
@media (max-width: 760px) { .review-card { flex-basis: 100%; min-height: 28rem; } .reviews__btn { width: 48px; } .reviews__source { min-height: 42px; } }



.site-footer { position: relative; z-index: 2; width: min(100%, var(--site-max-width)); margin: 0 auto; padding: clamp(2.5rem, 5vw, 5rem) var(--site-gutter) clamp(1.5rem, 3vw, 3rem); color: #000; }
.site-footer__cards { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(12px, 1.4vw, 24px); }
.site-footer__card { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; padding: clamp(1.25rem, 2.2vw, 2.5rem); border: 1px solid rgba(255, 255, 255, .8); border-radius: clamp(20px, 1.9vw, 32px); background: rgba(255, 255, 255, .4); }
.site-footer__card h3 { margin: 0 0 1.25rem; color: #4a4b68; font: 500 clamp(1rem, 1.2vw, 1.25rem)/1.35 var(--font-body); text-transform: none; }
.site-footer__address { margin: 0 0 1.25rem; font: 400 clamp(1rem, 1.25vw, 1.25rem)/1.5 var(--font-body); font-style: normal; }
.site-footer__route { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; margin-top: auto; padding: 10px 18px; border: 1px solid rgba(97, 97, 125, .24); border-radius: 999px; color: #000; background: #fff; font: 400 .875rem/1.4 var(--font-body); transition: background-color .2s ease; }
.site-footer__route:hover { background: #e8e4ee; }
.site-footer__hours { display: grid; gap: .625rem; width: 100%; margin: 0; font: 400 .875rem/1.5 var(--font-body); }
.site-footer__hours > div { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .25rem .875rem; }
.site-footer__hours dt { color: #4a4b68; }
.site-footer__hours dd { margin: 0; color: #000; white-space: nowrap; }
.site-footer__appointment-note { max-width: 30ch; margin: 1rem 0 0; color: #4a4b68; font: 400 .875rem/1.5 var(--font-body); }
.site-footer__contact-phone { max-width: 100%; margin: 0 0 .75rem; color: #000; font: 500 clamp(1rem, 1.3vw, 1.5rem)/1.4 var(--font-body); white-space: nowrap; }
.site-footer__email { max-width: 100%; color: #000; font: 400 clamp(1rem, 1.15vw, 1.125rem)/1.5 var(--font-body); overflow-wrap: anywhere; }
.site-footer__legal { margin-top: clamp(12px, 1.4vw, 24px); padding: clamp(1.25rem, 2.5vw, 2.75rem); border: 1px solid rgba(255, 255, 255, .18); border-radius: clamp(20px, 1.9vw, 32px); color: #fff; background: var(--action-fill); font: 400 .875rem/1.6 var(--font-body); }
.site-footer__legal h3 { margin: 0 0 1.25rem; font: 500 clamp(1.35rem, 2vw, 1.75rem)/1.3 var(--font-body); text-transform: none; }
.site-footer__legal-grid { display: grid; grid-template-columns: minmax(0, .95fr) minmax(0, 1.4fr); gap: 1.5rem 3rem; }
.site-footer__license { display: flex; min-width: 0; flex-direction: column; align-items: flex-start; }
.site-footer__company { margin-bottom: .75rem; opacity: .8; }
.site-footer__license-link { max-width: 100%; padding: .625rem .875rem; border: 1px solid rgba(255, 255, 255, .28); border-radius: 12px; color: #fff; background: rgba(255, 255, 255, .08); font-weight: 500; overflow-wrap: anywhere; transition: background-color .2s ease; }
.site-footer__documents { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .625rem 1.25rem; }
.site-footer__documents a { display: flex; align-items: center; min-height: 44px; padding: 10px 14px; border: 1px solid rgba(255, 255, 255, .2); border-radius: 12px; color: #fff; background: rgba(255, 255, 255, .08); overflow-wrap: anywhere; transition: background-color .2s ease; }
.site-footer__documents a:hover, .site-footer__license-link:hover { background: rgba(255, 255, 255, .16); }
.site-footer__details { margin-top: 1.5rem; padding-top: .75rem; border-top: 1px solid rgba(255, 255, 255, .25); }
.site-footer__details summary { display: flex; align-items: center; justify-content: space-between; gap: 1rem; min-height: 44px; padding-block: .5rem; cursor: pointer; font: 400 .875rem/1.5 var(--font-body); list-style: none; }
.site-footer__details summary::-webkit-details-marker { display: none; }
.site-footer__details summary::after { content: "+"; display: grid; place-items: center; flex: none; width: 28px; height: 28px; border: 1px solid rgba(255, 255, 255, .3); border-radius: 50%; font: 400 1.125rem/1 var(--font-body); }
.site-footer__details[open] summary::after { content: "−"; }
.site-footer__requisites { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem 2rem; margin: 1rem 0; }
.site-footer__requisites > div { min-width: 0; }
.site-footer__requisites dt { opacity: .75; }
.site-footer__requisites dd { margin: .375rem 0 0; overflow-wrap: anywhere; }
.site-footer__information { margin: 1rem 0 0; opacity: .75; }
.site-footer__bar { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) auto; align-items: center; gap: 1rem 2rem; padding: 1.5rem .25rem 0; font: 400 .8125rem/1.6 var(--font-body); }
.site-footer__note { max-width: 31rem; color: #4a4b68; }
.site-footer__back { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 18px; border: 1px solid rgba(97, 97, 125, .24); border-radius: 999px; color: #000; background: #fff; font: 400 .875rem/1.4 var(--font-body); }
.site-footer__email:hover, .site-footer__contact-phone:hover { color: var(--action-hover); }
.site-footer a:focus-visible { outline: 2px solid currentColor; outline-offset: 5px; }
@media (max-width: 1000px) {
  .site-footer__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-footer__card:last-child { grid-column: 1 / -1; }
  .site-footer__legal-grid { grid-template-columns: minmax(0, 1fr); }
  .site-footer__bar { grid-template-columns: minmax(0, 1fr) auto; }
  .site-footer__note { grid-column: 1 / -1; grid-row: 2; }
  .site-footer__back { grid-column: 2; grid-row: 1; }
}
@media (max-width: 600px) {
  .site-footer__cards, .site-footer__documents, .site-footer__requisites { grid-template-columns: minmax(0, 1fr); }
  .site-footer__card:last-child { grid-column: auto; }
  .site-footer__bar { column-gap: 1rem; }
}
@media (prefers-reduced-motion: reduce) { .site-footer__route, .site-footer__documents a, .site-footer__license-link { transition: none; } }

html { scrollbar-gutter: stable; }
html.is-review-open { overflow: hidden; }
.price-group__title { min-width: 0; overflow-wrap: anywhere; }
.price-reveal__accessible { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.price-reveal__mask { display: block; overflow: hidden; }
.price-reveal__line { display: block; }
.price-reveal:not(.is-revealed) .price-reveal__line { opacity: 0; transform: translate3d(0, 110%, 0); }
.price-reveal.is-revealed:not(.is-reveal-settled) .price-reveal__line { animation: price-line-rise .72s cubic-bezier(.22, 1, .36, 1) both; animation-delay: calc(var(--reveal-delay, 0ms) + var(--line-order) * 95ms); }
.price-reveal.is-reveal-settled .price-reveal__line { opacity: 1; transform: none; }
@keyframes price-line-rise { from { opacity: 0; transform: translate3d(0, 110%, 0); } to { opacity: 1; transform: translate3d(0, 0, 0); } }
.review-dialog { width: min(44rem, calc(100% - 2 * var(--site-gutter))); max-height: min(82vh, 50rem); max-height: min(82dvh, 50rem); margin: auto; padding: 0; overflow: hidden; border: 1px solid rgba(97, 97, 125, .24); border-radius: clamp(20px, 2vw, 32px); color: #000; background: #f3f0ee; }
.review-dialog::backdrop { background: rgba(24, 22, 35, .5); }
.review-dialog__panel { display: grid; grid-template-rows: auto minmax(0, 1fr) auto; gap: 1.5rem; max-height: inherit; padding: clamp(1.25rem, 3vw, 2.5rem); }
.review-dialog__head { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: 1rem; padding-bottom: 1.25rem; border-bottom: 1px solid rgba(97, 97, 125, .25); }
.review-dialog__name { margin: 0 0 .75rem; font: 500 clamp(1.25rem, 2vw, 1.75rem)/1.2 var(--font-body); text-transform: none; overflow-wrap: anywhere; }
.review-dialog__meta { display: flex; flex-wrap: wrap; align-items: center; gap: .75rem 1rem; font: 400 .875rem/1.4 var(--font-body); }
.review-dialog__stars { color: #b87f16; font-size: 1rem; letter-spacing: 2px; white-space: nowrap; }
.review-dialog__close { display: grid; place-items: center; flex: none; width: 44px; height: 44px; padding: 0; border: 1px solid rgba(97, 97, 125, .3); border-radius: 50%; color: #000; background: #e8e4e9; cursor: pointer; touch-action: manipulation; }
.review-dialog__close:hover { background: #ddd7e1; }
.review-dialog__body { min-height: 0; padding-right: .25rem; overflow-y: auto; overscroll-behavior: contain; font: 400 clamp(1rem, 1.25vw, 1.125rem)/1.65 var(--font-body); }
.review-dialog__text { margin: 0; white-space: pre-wrap; overflow-wrap: anywhere; }
.review-dialog__foot { padding-top: 1.25rem; border-top: 1px solid rgba(97, 97, 125, .25); }
.review-dialog__source { color: #000; font: 400 .9375rem/1.4 var(--font-body);  }
@media (prefers-reduced-motion: no-preference) {
  .review-dialog[open] { animation: review-dialog-enter .38s cubic-bezier(.22, 1, .36, 1) both; }
  .review-dialog[open]::backdrop { animation: review-backdrop-enter .3s ease both; }
}
@keyframes review-dialog-enter { from { opacity: 0; transform: translate3d(0, 16px, 0) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes review-backdrop-enter { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .price-reveal__line { animation: none !important; opacity: 1 !important; transform: none !important; } }

#site-header ._navln, #site-header ._navtext { display: flex; align-items: center; }
#site-header ._navtext ._lchar { display: block; flex: none; overflow: hidden; position: relative; white-space: pre; }
#site-header ._navtext ._lcharin, #site-header ._navtext ._lcharout { display: block; backface-visibility: hidden; }
#site-header ._navtext ._lcharin { position: absolute; inset: 0 auto auto 0; transform: translate3d(-110%, 0, 0); }
#site-header ._navtext ._lcharout { transform: translate3d(0, 0, 0); }
#site-header .header-phone:hover { color: var(--action-hover); }
.review-card__more:hover { background: #0000000a; }
.review-card--accent .review-card__more:hover { background: var(--action-hover); }
.review-card__source:hover { opacity: .7; }
.numeric-sphere__benefit { border-radius: 0; outline-offset: -4px; }
.numeric-sphere__benefit:focus-visible { outline: 2px solid rgba(74, 75, 104, .6); }
@media (hover: hover) and (prefers-reduced-motion: no-preference) {
  #site-header ._navln:hover ._navtext :is(._lcharin, ._lcharout) { transition: transform .46s cubic-bezier(.22, 1, .36, 1); transition-delay: calc(var(--li, 0) * 18ms); }
  #site-header ._navln:hover ._lcharin { transform: translate3d(0, 0, 0); }
  #site-header ._navln:hover ._lcharout { transform: translate3d(110%, 0, 0); }
}
@media (prefers-reduced-motion: no-preference) {
  #site-header ._navln:focus-visible ._navtext :is(._lcharin, ._lcharout) { transition: transform .46s cubic-bezier(.22, 1, .36, 1); transition-delay: calc(var(--li, 0) * 18ms); }
  #site-header ._navln:focus-visible ._lcharin { transform: translate3d(0, 0, 0); }
  #site-header ._navln:focus-visible ._lcharout { transform: translate3d(110%, 0, 0); }
}
