:root {
  --color-ivory: #f4f0e8;
  --color-wine: #4a2930;
  --color-graphite: #1d1b1a;
  --color-clay: #b97865;
  --color-stone: #d8d1c7;
  --color-soft-white: #fcfaf6;
  --color-muted: #746e68;
  --container: 1312px;
  --gutter: clamp(1.25rem, 4.45vw, 4rem);
  --section-space: clamp(5rem, 9vw, 8.75rem);
  --text-display: clamp(3.2rem, 7.6vw, 7.4rem);
  --text-h2: clamp(2.55rem, 4.5vw, 4rem);
  --text-h3: clamp(1.75rem, 2.3vw, 2.5rem);
  --text-body: clamp(0.98rem, 1.25vw, 1.125rem);
  --ease: cubic-bezier(.2,.75,.25,1);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; background: var(--color-graphite); }
body { margin: 0; color: var(--color-graphite); background: var(--color-ivory); font-family: "Manrope", sans-serif; overflow-x: clip; }
body.is-loading { overflow: hidden; }
body.menu-open { overflow: hidden; }
img { display: block; max-width: 100%; }
button, a { font: inherit; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
h1, h2, h3, p, figure, blockquote { margin: 0; }
h1, h2, h3, blockquote { font-family: "Newsreader", serif; font-weight: 400; }
h2 { font-size: var(--text-h2); line-height: 1.08; letter-spacing: -.015em; color: var(--color-wine); }
:focus-visible { outline: 2px solid var(--color-clay); outline-offset: 4px; }
[hidden] { display: none !important; }
.skip-link { position: fixed; top: 1rem; left: 1rem; z-index: 1000; padding: .8rem 1rem; background: var(--color-soft-white); color: var(--color-wine); transform: translateY(-160%); transition: transform .2s; }
.skip-link:focus { transform: translateY(0); }
.container { width: min(var(--container), calc(100% - 2 * var(--gutter))); margin-inline: auto; }
.section { position: relative; padding-block: var(--section-space); }
.section--raised { background: var(--color-soft-white); }
.section--wine { background: var(--color-wine); color: var(--color-soft-white); }
.eyebrow { color: var(--color-clay); font-size: .75rem; line-height: 1rem; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.section-heading { display: grid; grid-template-columns: 1.15fr .85fr; align-items: center; gap: clamp(3rem, 8vw, 8rem); }
.section-heading > *, .treatments__heading > *, .space-grid > *, .contact > * { min-width: 0; }
.section-heading h2, .treatments__heading h2 { max-width: 100%; overflow-wrap: break-word; }
.section-heading .eyebrow { margin-bottom: 2rem; }
.section-heading h2 { max-width: 42rem; }
.section-intro { max-width: 32rem; font-size: var(--text-body); line-height: 1.67; }
.section-heading--light h2 { color: var(--color-soft-white); }
.section-heading--light .section-intro { color: var(--color-stone); }
.button { min-height: 3.375rem; display: inline-flex; align-items: center; justify-content: center; padding: .9rem 1.4rem; border: 1px solid transparent; border-radius: 999px; cursor: pointer; font-size: .875rem; font-weight: 500; transition: color .3s, background .3s, border-color .3s, transform .3s; }
.button:hover { transform: translateY(-2px); }
.button--primary { background: var(--color-wine); color: var(--color-soft-white); }
.button--ghost { position: relative; gap: .45rem; overflow: hidden; color: var(--color-soft-white); border-color: rgba(252,250,246,.8); isolation: isolate; }
.button--ghost::before { content: ""; position: absolute; z-index: -1; inset: -1px; border-radius: inherit; background: var(--color-soft-white); transform: translateX(-102%); transition: transform .5s cubic-bezier(.2,.75,.25,1); }
.button--ghost span { transition: transform .4s var(--ease); }
.button--ghost i { width: 0; overflow: hidden; opacity: 0; font-style: normal; transform: translate(-.5rem,.3rem); transition: width .4s var(--ease), opacity .3s, transform .4s var(--ease); }
.button--ghost:is(:hover,:focus-visible) { border-color: var(--color-soft-white); color: var(--color-wine); box-shadow: 0 10px 30px rgba(29,27,26,.14); }
.button--ghost:is(:hover,:focus-visible)::before { transform: translateX(0); }
.button--ghost:is(:hover,:focus-visible) span { transform: translateX(-.1rem); }
.button--ghost:is(:hover,:focus-visible) i { width: 1rem; opacity: 1; transform: translate(0,0); }
.button--ghost:active { transform: translateY(0) scale(.97); }
.button--light { color: var(--color-wine); background: var(--color-soft-white); }
.button--outline-dark { border-color: rgba(74,41,48,.72); background: transparent; color: var(--color-wine); }

.preloader { --reveal-start-y: 38%; --scene-shift-y: -38%; --tooth-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 407'%3E%3Cpath d='M150 23.5632C102.857 4.28421 47.1429 26.7763 28.9286 83.5421C12.8571 134.953 36.4286 179.937 62.1429 225.992C80.3571 259.195 78.2143 349.163 105 381.295C122.143 402.716 136.071 356.661 150 309.534C165 360.945 180 401.645 199.286 378.082C226.071 345.95 219.643 261.337 241.071 224.921C270 176.724 291.429 125.313 271.071 76.0447C247.5 22.4921 196.071 7.49737 150 23.5632Z' fill='white'/%3E%3C/svg%3E"); position: fixed; inset: 0; z-index: 999; min-height: 100vh; min-height: 100dvh; overflow: hidden; background: var(--color-wine); color: var(--color-soft-white); isolation: isolate; }
.preloader__tooth { position: absolute; z-index: 1; top: var(--reveal-start-y); left: 50%; width: clamp(4.5rem, 6.2vw, 6.5rem); aspect-ratio: 300 / 407; overflow: hidden; translate: -50% -50%; background: #aaa096; mask: var(--tooth-mask) center / 100% 100% no-repeat; -webkit-mask: var(--tooth-mask) center / 100% 100% no-repeat; will-change: width, opacity, transform; }
.preloader__tooth-media { position: absolute; inset: 0; overflow: visible; will-change: clip-path; }
.preloader__scene { position: absolute; top: 50%; left: 50%; width: 100vw; height: 100vh; translate: -50% var(--scene-shift-y); overflow: hidden; background: linear-gradient(114.29deg, #5a3337 0%, #a56e60 48%, #d6c3b6 100%); will-change: transform, filter, opacity; }
.preloader__scene-face, .preloader__scene-gesture { position: absolute; max-width: none; }
.preloader__scene-face { top: -18.89%; left: 56.94%; width: 52.78%; height: 108.89%; }
.preloader__scene-gesture { top: 18.89%; left: -8.33%; width: 41.67%; height: 82.22%; }
.preloader__scene span { position: absolute; inset: 0; background: linear-gradient(114.29deg, rgba(29,27,26,.256), rgba(74,41,48,.032) 55%, rgba(29,27,26,.192)); }
.preloader__tooth-outline { position: absolute; z-index: 2; inset: 0; width: 100%; height: 100%; overflow: visible; fill: none; stroke: rgba(252,250,246,.88); stroke-width: 1.4; stroke-linejoin: round; vector-effect: non-scaling-stroke; pointer-events: none; }
.preloader__tooth-outline path { vector-effect: non-scaling-stroke; }
.preloader__chrome { position: absolute; z-index: 2; inset: 0; }
.preloader__meta { position: absolute; top: clamp(1.5rem, 4vw, 3.5rem); right: var(--gutter); left: var(--gutter); display: flex; justify-content: space-between; gap: 2rem; font-size: .68rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.preloader__wordmark { position: absolute; top: 55%; left: 50%; translate: -50% -50%; padding-left: .14em; font: 400 clamp(4.5rem, 10vw, 9rem)/.8 "Newsreader", serif; letter-spacing: .14em; white-space: nowrap; }
.preloader__claim { position: absolute; top: 68%; left: 50%; translate: -50% -50%; font-family: "Newsreader", serif; font-size: clamp(1.05rem, 1.7vw, 1.45rem); letter-spacing: .015em; white-space: nowrap; }
.preloader__status { position: absolute; right: var(--gutter); bottom: clamp(1.5rem, 4vw, 3rem); left: var(--gutter); display: grid; grid-template-columns: auto minmax(5rem, 1fr) auto; align-items: center; gap: 1.25rem; font-size: .65rem; font-weight: 500; letter-spacing: .13em; text-transform: uppercase; }
.preloader__status i { position: relative; display: block; height: 1px; overflow: hidden; background: rgba(252,250,246,.24); }
.preloader__status b { position: absolute; inset: 0; display: block; background: var(--color-clay); transform-origin: left center; }

.site-header { position: absolute; z-index: 20; top: 0; left: 0; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; width: 100%; padding: 1.5rem 2rem; color: var(--color-soft-white); }
.site-header .button { justify-self: end; min-width: 9.5rem; }
.header-signature { font-size: .75rem; font-weight: 600; line-height: 1.2; letter-spacing: .12em; text-shadow: 0 1px 8px rgba(29,27,26,.72), 0 0 1px rgba(29,27,26,.9); text-transform: uppercase; }
.menu-button { display: grid; gap: .42rem; width: 4rem; padding: 0; border: 0; background: transparent; color: var(--color-soft-white); text-align: left; cursor: pointer; text-transform: uppercase; font-size: .7rem; letter-spacing: .1em; }
.menu-button i { display: block; width: 3rem; height: 1px; background: currentColor; }
.site-navigation { position: fixed; inset: 0; z-index: 100; display: grid; grid-template-rows: auto 1fr auto; min-height: 100dvh; padding: 1.5rem 2rem 1.25rem; overflow: hidden; background: radial-gradient(circle at 16% 80%, rgba(185,120,101,.2), transparent 34%), linear-gradient(125deg, #3d2027, var(--color-wine) 55%, #5a3337); color: var(--color-soft-white); isolation: isolate; }
.site-navigation__tooth { position: absolute; z-index: -1; top: 15%; left: 20%; width: min(28vw, 25rem); opacity: .09; rotate: -8deg; }
.site-navigation__monogram { position: absolute; z-index: -1; right: -2vw; bottom: -9vw; font: 400 min(26vw, 24rem)/1 "Newsreader", serif; letter-spacing: .05em; color: rgba(252,250,246,.025); pointer-events: none; }
.site-navigation__header { display: flex; align-items: center; justify-content: space-between; padding-bottom: 1.25rem; border-bottom: 1px solid rgba(252,250,246,.18); }
.site-navigation__brand { display: flex; align-items: baseline; gap: 1rem; }
.site-navigation__brand strong { font: 400 1.75rem/1 "Newsreader", serif; letter-spacing: .12em; }
.site-navigation__brand span { font-size: .65rem; letter-spacing: .14em; text-transform: uppercase; opacity: .72; }
.navigation-close { display: inline-flex; min-height: 2.8rem; align-items: center; gap: .8rem; padding: .65rem .7rem .65rem 1.15rem; border: 1px solid rgba(252,250,246,.5); border-radius: 999px; background: transparent; color: var(--color-soft-white); cursor: pointer; font-size: .7rem; letter-spacing: .1em; text-transform: uppercase; transition: color .3s, background .3s, transform .3s; }
.navigation-close i { position: relative; display: block; width: 1.8rem; height: 1.8rem; border-radius: 50%; background: rgba(252,250,246,.12); transition: rotate .4s var(--ease), background .3s; }
.navigation-close i::before, .navigation-close i::after { content: ""; position: absolute; top: 50%; left: 50%; width: .8rem; height: 1px; background: currentColor; }
.navigation-close i::before { transform: translate(-50%,-50%) rotate(45deg); }
.navigation-close i::after { transform: translate(-50%,-50%) rotate(-45deg); }
.navigation-close:hover { background: var(--color-soft-white); color: var(--color-wine); transform: translateY(-1px); }
.navigation-close:hover i { background: rgba(74,41,48,.1); rotate: 90deg; }
.site-navigation__body { display: grid; grid-template-columns: minmax(15rem,.72fr) minmax(30rem,1.28fr); align-items: center; gap: clamp(4rem,9vw,10rem); width: min(100%, 86rem); margin-inline: auto; }
.site-navigation__intro { align-self: end; max-width: 22rem; padding-bottom: 2rem; }
.site-navigation__intro > p:not(.eyebrow) { margin-top: 1.5rem; color: rgba(252,250,246,.78); font-family: "Newsreader", serif; font-size: clamp(1.55rem,2.2vw,2.1rem); line-height: 1.18; }
.site-navigation__schedule { display: inline-flex; align-items: center; gap: .8rem; margin-top: 2rem; padding-bottom: .45rem; border-bottom: 1px solid rgba(252,250,246,.55); font-size: .75rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; transition: gap .35s, color .35s; }
.site-navigation__schedule:hover { gap: 1.2rem; color: var(--color-clay); }
.site-navigation__schedule i, .site-navigation__links i { font-style: normal; }
.site-navigation__links { border-bottom: 1px solid rgba(252,250,246,.2); }
.site-navigation__links a { display: grid; grid-template-columns: 2.5rem 1fr auto; align-items: center; gap: 1.25rem; min-height: clamp(5rem,10vh,7.2rem); padding: .4rem 1rem; border-top: 1px solid rgba(252,250,246,.2); transition: color .4s, background .4s, padding .4s var(--ease); }
.site-navigation__links a > span { align-self: start; padding-top: 1.35rem; font-size: .62rem; letter-spacing: .12em; opacity: .55; }
.site-navigation__links strong { font: 400 clamp(2.5rem,4.6vw,4.75rem)/.95 "Newsreader", serif; }
.site-navigation__links i { font-size: 1.2rem; opacity: 0; translate: -.8rem .4rem; transition: opacity .3s, translate .4s var(--ease); }
.site-navigation__links a:hover, .site-navigation__links a:focus-visible { padding-inline: 1.6rem; background: var(--color-soft-white); color: var(--color-wine); }
.site-navigation__links a:hover i, .site-navigation__links a:focus-visible i { opacity: 1; translate: 0 0; }
.site-navigation__footer { display: flex; justify-content: space-between; padding-top: 1.25rem; border-top: 1px solid rgba(252,250,246,.18); font-size: .65rem; letter-spacing: .13em; text-transform: uppercase; opacity: .7; }

.hero-care-transition { position: relative; isolation: isolate; }
.hero { --tooth-x: 39.58%; --tooth-y: 49.89%; --tooth-width: clamp(15rem, 25vw, 22.5rem); --tooth-height: clamp(20.35rem, 33.89vw, 30.5rem); --tooth-half-width: clamp(7.5rem, 12.5vw, 11.25rem); --tooth-half-height: clamp(10.175rem, 16.945vw, 15.25rem); --hero-exit-opacity: 0; --hero-tooth-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 407'%3E%3Cpath d='M150 23.5632C102.857 4.28421 47.1429 26.7763 28.9286 83.5421C12.8571 134.953 36.4286 179.937 62.1429 225.992C80.3571 259.195 78.2143 349.163 105 381.295C122.143 402.716 136.071 356.661 150 309.534C165 360.945 180 401.645 199.286 378.082C226.071 345.95 219.643 261.337 241.071 224.921C270 176.724 291.429 125.313 271.071 76.0447C247.5 22.4921 196.071 7.49737 150 23.5632Z' fill='white'/%3E%3C/svg%3E"); position: sticky; top: 0; min-height: 100svh; height: max(56.25rem, 100svh); overflow: clip; background: linear-gradient(114.29deg, #5a3337 0%, #a56e60 48%, #d6c3b6 100%); color: var(--color-soft-white); }
.hero::after { content: ""; position: absolute; z-index: 22; inset: 0; background: linear-gradient(180deg, rgba(44,22,28,0) 32%, rgba(44,22,28,.82) 100%); opacity: var(--hero-exit-opacity); pointer-events: none; }
.hero__ambient { position: absolute; z-index: 0; inset: 0; overflow: hidden; }
.hero__ambient img { position: absolute; max-width: none; }
.hero__ambient-face { top: -10.625rem; left: calc(58.33% - 1.25rem); width: 47.5rem; height: 61.25rem; }
.hero__ambient-gesture { top: 10.625rem; left: -7.5rem; width: 37.5rem; height: 46.25rem; }
.hero__vignette { position: absolute; z-index: 1; inset: 0; background: linear-gradient(114.29deg, rgba(29,27,26,.256), rgba(74,41,48,.032) 55%, rgba(29,27,26,.192)); }
.hero__wordmark, .hero__precision-wordmark { position: absolute; top: 21.11%; left: 12.22%; font-family: "Newsreader", serif; font-size: clamp(9rem, 20.833vw, 18.75rem); font-weight: 400; line-height: 1.033; letter-spacing: .04em; white-space: nowrap; }
.hero__wordmark { z-index: 2; color: rgba(252,250,246,.32); }
.hero__precision { position: absolute; z-index: 21; inset: 0; overflow: hidden; background: linear-gradient(114.29deg, #f4f0e8 0%, #fcfaf6 52%, #d8d1c7 100%); mask-image: var(--hero-tooth-mask); mask-position: calc(var(--tooth-x) - var(--tooth-half-width)) calc(var(--tooth-y) - var(--tooth-half-height)); mask-size: var(--tooth-width) var(--tooth-height); mask-repeat: no-repeat; -webkit-mask-image: var(--hero-tooth-mask); -webkit-mask-position: calc(var(--tooth-x) - var(--tooth-half-width)) calc(var(--tooth-y) - var(--tooth-half-height)); -webkit-mask-size: var(--tooth-width) var(--tooth-height); -webkit-mask-repeat: no-repeat; filter: drop-shadow(0 0 1px rgba(252,250,246,.88)); pointer-events: none; will-change: mask-position, -webkit-mask-position; }
.hero__precision::before, .hero__precision::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.hero__precision::before { top: -10.625rem; left: calc(58.33% - 1.25rem); width: 47.5rem; height: 61.25rem; background: rgba(74,41,48,.08); }
.hero__precision::after { top: 10.625rem; left: -7.5rem; width: 37.5rem; height: 46.25rem; background: rgba(185,120,101,.13); }
.hero__precision-header { position: absolute; top: 0; left: 0; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; width: 100%; padding: 1.5rem 2rem; color: var(--color-wine); }
.hero__precision-menu { display: grid; gap: .42rem; width: 4rem; text-align: left; font-size: .7rem; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.hero__precision-menu i { display: block; width: 3rem; height: 1px; background: currentColor; }
.hero__precision-signature { font-size: .75rem; font-weight: 600; line-height: 1.2; letter-spacing: .12em; text-shadow: 0 1px 7px rgba(252,250,246,.92), 0 0 1px rgba(252,250,246,.96); text-transform: uppercase; }
.hero__precision-action { position: relative; justify-self: end; display: inline-flex; min-width: 9.5rem; min-height: 3.375rem; align-items: center; justify-content: center; gap: .45rem; overflow: hidden; padding: .9rem 1.4rem; border: 1px solid rgba(74,41,48,.72); border-radius: 999px; font-size: .875rem; font-weight: 500; transition: color .3s, border-color .3s, transform .3s, box-shadow .3s; }
.hero__precision-action::before { content: ""; position: absolute; z-index: -1; inset: -1px; border-radius: inherit; background: var(--color-wine); transform: translateX(-102%); transition: transform .5s cubic-bezier(.2,.75,.25,1); }
.hero__precision-action > span { transition: transform .4s var(--ease); }
.hero__precision-action i { width: 0; overflow: hidden; opacity: 0; font-style: normal; transform: translate(-.5rem,.3rem); transition: width .4s var(--ease), opacity .3s, transform .4s var(--ease); }
body:has(.button--ghost:is(:hover,:focus-visible)) .hero__precision-action { color: var(--color-soft-white); border-color: var(--color-wine); box-shadow: 0 10px 30px rgba(74,41,48,.12); transform: translateY(-2px); }
body:has(.button--ghost:is(:hover,:focus-visible)) .hero__precision-action::before { transform: translateX(0); }
body:has(.button--ghost:is(:hover,:focus-visible)) .hero__precision-action > span { transform: translateX(-.1rem); }
body:has(.button--ghost:is(:hover,:focus-visible)) .hero__precision-action i { width: 1rem; opacity: 1; transform: translate(0,0); }
.hero__precision-wordmark { color: var(--color-wine); }
.hero__pointer-dot { position: absolute; z-index: 24; top: var(--pointer-y, var(--tooth-y)); left: var(--pointer-x, var(--tooth-x)); width: 9px; height: 9px; border: 2px solid var(--color-soft-white); border-radius: 50%; background: var(--color-wine); opacity: 0; translate: -50% -50%; pointer-events: none; transition: opacity .25s; }
.hero__annotation { position: absolute; z-index: 4; top: 56.67%; left: calc(58.33% - 1.25rem); width: 23rem; font-size: .75rem; font-weight: 500; line-height: 1rem; letter-spacing: .12em; }
.hero__annotation span { display: block; text-transform: uppercase; }
.hero__annotation--precision { color: var(--color-wine); }
.hero__copy, .hero__precision-copy { position: absolute; z-index: 3; left: 50%; bottom: 11.5%; width: min(1000px, calc(100% - 2 * var(--gutter))); text-align: center; translate: -50% 0; }
.hero__copy h1, .hero__precision-title { font-family: "Newsreader", serif; font-size: clamp(2.4rem, 3.75vw, 3.375rem); font-weight: 400; line-height: 1.11; letter-spacing: -.015em; }
.hero__copy p, .hero__precision-description { max-width: 47.5rem; margin: 1.25rem auto 0; font-size: clamp(1rem, 1.25vw, 1.125rem); line-height: 1.67; opacity: .88; }
.hero__precision-copy { color: var(--color-wine); }
.hero__continuity { position: absolute; z-index: 23; bottom: 0; width: 100%; min-height: 3.25rem; overflow: hidden; border-top: 1px solid rgba(252,250,246,.18); background: linear-gradient(90deg, rgba(74,41,48,.2), rgba(74,41,48,.07) 50%, rgba(74,41,48,.16)); color: rgba(252,250,246,.78); font-size: .68rem; font-weight: 500; line-height: 1rem; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; backdrop-filter: blur(8px); mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); -webkit-mask-image: linear-gradient(90deg, transparent, #000 5%, #000 95%, transparent); }
.hero__continuity-track { display: flex; width: max-content; animation: hero-continuity 28s linear infinite; will-change: transform; }
.hero__continuity-group { display: flex; flex: 0 0 50vw; min-height: 3.25rem; align-items: center; justify-content: center; gap: clamp(.75rem,1.5vw,1.5rem); }
.hero__continuity b { color: rgba(185,120,101,.9); font-weight: 400; }
.hero__continuity:hover .hero__continuity-track { animation-play-state: paused; }
@keyframes hero-continuity { to { transform: translateX(-25%); } }

.care { z-index: 26; border-radius: clamp(1.75rem, 3vw, 2.75rem) clamp(1.75rem, 3vw, 2.75rem) 0 0; }
.js-motion .care { margin-top: -4rem; transform: translateY(4rem); will-change: transform; }
.care-story { position: relative; display: grid; grid-template-columns: minmax(20rem, .85fr) minmax(25rem, 1.15fr); gap: clamp(4rem, 10vw, 11rem); margin-top: clamp(3rem, 6vw, 5rem); }
.care-story__narrative { position: relative; min-width: 0; }
.care-story__copy { position: sticky; top: 20vh; min-height: 60vh; }
.care-story__track { display: grid; }
.care-story__track i { min-height: 54vh; }
.care-story__steps { position: absolute; inset: 0; padding: 0; margin: 0; list-style: none; }
.care-story__steps li { position: absolute; inset: 0; display: grid; align-content: center; padding: 4rem 0 4rem 5.25rem; opacity: 0; visibility: hidden; transform: translateY(1.5rem); transition: opacity .55s, transform .7s var(--ease), visibility 0s .55s; }
.care-story__steps li.is-active { opacity: 1; visibility: visible; transform: translateY(0); transition-delay: 0s; }
.care-story__steps span { position: absolute; top: 50%; left: 0; display: grid; width: 2.3rem; height: 2.3rem; place-items: center; border: 1px solid rgba(74,41,48,.24); border-radius: 50%; background: var(--color-soft-white); color: var(--color-clay); translate: 0 -50%; font-size: .65rem; font-weight: 500; letter-spacing: .08em; transition: background .5s, color .5s, border-color .5s; }
.care-story__steps li.is-active span { border-color: var(--color-wine); background: var(--color-wine); color: var(--color-soft-white); }
.care-story__steps h3 { color: var(--color-wine); font-size: clamp(2.75rem, 4.5vw, 4.25rem); line-height: .95; }
.care-story__steps p { max-width: 26rem; margin-top: 1.5rem; color: var(--color-muted); font-size: clamp(1rem, 1.25vw, 1.12rem); line-height: 1.65; }
.care-story__progress { position: absolute; top: 50%; left: 1.15rem; width: 1px; height: 14rem; background: rgba(74,41,48,.14); translate: -50% -50%; }
.care-story__progress i { display: block; width: 100%; height: 33.333%; background: var(--color-clay); transition: height .8s var(--ease); }
.care-story[data-active-step="2"] .care-story__progress i { height: 66.666%; }
.care-story[data-active-step="3"] .care-story__progress i { height: 100%; }
.care-story__visual { position: relative; min-width: 0; }
.care-story__visual-inner { position: sticky; top: 12vh; display: grid; min-height: 76vh; place-items: center; overflow: hidden; border-radius: 50% 50% 2rem 2rem / 16% 16% 2rem 2rem; background: radial-gradient(circle at 50% 42%, rgba(252,250,246,.9), rgba(232,220,210,.76) 58%, rgba(185,120,101,.16)), #f1e7df; }
.care-story__visual-label { position: absolute; top: 2rem; left: 50%; color: var(--color-wine); translate: -50% 0; font-size: .68rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.care-story__tooth { width: min(55%, 20rem); overflow: visible; }
.care-story__layer { transform-box: fill-box; transform-origin: center; transition: transform 1s var(--ease), opacity .8s, fill .8s; }
.care-story__layer--one { fill: #d6c3b6; opacity: .22; transform: translate(-2.6rem, 1.4rem) rotate(-7deg); }
.care-story__layer--two { fill: #b97865; opacity: .14; transform: translate(2.8rem, -.8rem) rotate(6deg); }
.care-story__layer--three { fill: #4a2930; opacity: .08; transform: translate(.7rem, 2.8rem) scale(.91); }
.care-story__outline { fill: none; stroke: rgba(74,41,48,.28); stroke-width: 1.15; vector-effect: non-scaling-stroke; }
.care-story[data-active-step="1"] .care-story__layer--one { opacity: .82; transform: none; }
.care-story[data-active-step="2"] .care-story__layer--one { opacity: .42; transform: none; }
.care-story[data-active-step="2"] .care-story__layer--two { opacity: .72; transform: none; }
.care-story[data-active-step="3"] .care-story__layer--one { opacity: .25; transform: none; }
.care-story[data-active-step="3"] .care-story__layer--two { opacity: .38; transform: none; }
.care-story[data-active-step="3"] .care-story__layer--three { opacity: .92; transform: none; }
.care-story__visual-legend { position: absolute; right: 2.25rem; bottom: 2rem; left: 2.25rem; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 1rem; color: var(--color-wine); font-size: .62rem; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.care-story__visual-legend i { height: 1px; background: rgba(74,41,48,.28); }

.treatments { padding-bottom: 0; }
.treatments__heading { display: grid; grid-template-columns: 1fr auto; align-items: end; gap: 3rem; padding-bottom: 4.5rem; }
.treatments__heading .eyebrow { margin-bottom: 2rem; }
.treatments__heading h2 { max-width: 68rem; font-size: clamp(2.45rem, 3.7vw, 3.25rem); }
.treatments__instruction { padding-bottom: 1rem; color: var(--color-muted); font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.treatment-stack { --active-color: #e9e2d8; --active-glow: rgba(185,120,101,.22); }
.treatment-tabs { display: grid; grid-template-columns: repeat(5, 1fr); align-items: end; }
.treatment-tabs button { position: relative; min-height: 4.25rem; overflow: hidden; padding: 1rem 1.5rem; border: 0; border-radius: 1.25rem 1.25rem 0 0; background: var(--tab-color); color: var(--tab-ink, var(--color-wine)); cursor: pointer; text-align: left; text-transform: uppercase; font-size: .85rem; letter-spacing: .02em; transform-origin: center bottom; transition: min-height .4s var(--ease), filter .35s, transform .4s var(--ease), box-shadow .4s var(--ease); }
.treatment-tabs button::after { content: ""; position: absolute; right: 1.5rem; bottom: .58rem; left: 1.5rem; height: 1px; background: currentColor; opacity: .62; transform: scaleX(0); transform-origin: left; transition: transform .55s var(--ease); }
.treatment-tabs button:nth-child(1) { --tab-color: #e9e2d8; }
.treatment-tabs button:nth-child(2) { --tab-color: #d8d1c7; }
.treatment-tabs button:nth-child(3) { --tab-color: #b97865; --tab-ink: #fcfaf6; }
.treatment-tabs button:nth-child(4) { --tab-color: #4a2930; --tab-ink: #fcfaf6; }
.treatment-tabs button:nth-child(5) { --tab-color: #c8b7aa; }
.treatment-tabs button:hover { filter: brightness(1.035); }
.treatment-tabs button:focus-visible { z-index: 3; outline: 2px solid var(--color-wine); outline-offset: -4px; }
.treatment-tabs button[aria-selected="true"] { z-index: 2; min-height: 5.2rem; filter: brightness(1.04); box-shadow: 0 1rem 2.2rem rgba(74,41,48,.08); }
.treatment-tabs button[aria-selected="true"]::after { transform: scaleX(1); }
.treatment-tabs span { margin-right: 1.2rem; opacity: .68; font-size: .72rem; }
.treatment-panel { position: relative; display: grid; grid-template-columns: 1fr 1fr; gap: clamp(3rem, 7vw, 7rem); min-height: 31.25rem; overflow: hidden; padding: clamp(3rem, 5.5vw, 5rem) var(--gutter); border-radius: 1.25rem 1.25rem 0 0; background: var(--active-color); transition: background-color .65s var(--ease); }
.treatment-panel::before { content: ""; position: absolute; top: -26%; right: -8%; width: min(44rem, 52vw); aspect-ratio: 1; border-radius: 58% 42% 46% 54% / 45% 55% 45% 55%; background-color: var(--active-glow); filter: blur(46px); opacity: .9; transform: rotate(-8deg); transition: background-color .65s var(--ease); pointer-events: none; }
.treatment-panel > * { position: relative; z-index: 1; }
.treatment-panel__copy { align-self: center; max-width: 39rem; }
.treatment-panel h3 { color: var(--color-wine); font-size: clamp(2.5rem, 4vw, 3rem); line-height: 1.16; }
.treatment-panel__copy > p:not(.treatment-panel__services) { max-width: 33rem; margin-top: 1.8rem; color: var(--color-wine); font-size: var(--text-body); line-height: 1.67; }
.treatment-panel__services { margin: 3rem 0 2rem; color: var(--color-wine); opacity: .72; font-size: .75rem; letter-spacing: .12em; text-transform: uppercase; }
.treatment-panel__media { position: relative; min-height: 24rem; overflow: hidden; border-radius: 1.5rem; background: var(--color-soft-white); box-shadow: 0 1.5rem 4rem rgba(74,41,48,.1); }
.treatment-panel__media::after { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(252,250,246,.13), transparent 42%, rgba(74,41,48,.08)); pointer-events: none; }
.treatment-panel__media img { width: 100%; height: 100%; object-fit: cover; will-change: opacity, transform; }
.treatment-panel__media figcaption { position: absolute; z-index: 2; right: 1.25rem; bottom: 1.25rem; left: 1.25rem; padding: .9rem 1rem; background: rgba(252,250,246,.88); color: var(--color-wine); font-size: .75rem; letter-spacing: .06em; backdrop-filter: blur(8px); will-change: opacity, transform; }

.precision { min-height: 53rem; }
.precision-toggle { display: flex; width: fit-content; margin-top: 2.2rem; padding: .32rem; border-radius: 999px; background: var(--color-graphite); }
.precision-toggle button { min-height: 2.4rem; padding: .65rem 1.15rem; border: 0; border-radius: 999px; background: transparent; color: rgba(252,250,246,.72); cursor: pointer; font-size: .75rem; letter-spacing: .1em; transition: color .3s, background-color .3s, transform .3s var(--ease); }
.precision-toggle button:hover { color: var(--color-soft-white); }
.precision-toggle button:focus-visible { outline: 2px solid var(--color-clay); outline-offset: 3px; }
.precision-toggle button.is-active { background: var(--color-clay); color: var(--color-soft-white); }
.precision-stage { position: relative; min-height: 29.5rem; margin-top: .25rem; }
.precision-visual { position: absolute; top: -2.75rem; left: 50%; width: min(70vw, 900px); aspect-ratio: 940/500; translate: -50% 0; pointer-events: none; }
.precision-visual > img { width: 100%; height: 100%; opacity: .82; transition: opacity .45s; }
.precision-overlays { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.precision-overlays > g { opacity: 0; transform: scale(.985); transform-origin: center; transition: opacity .45s var(--ease), transform .55s var(--ease); }
.precision[data-active-precision-point="1"] [data-precision-overlay="1"],
.precision[data-active-precision-point="2"] [data-precision-overlay="2"],
.precision[data-active-precision-point="3"] [data-precision-overlay="3"] { opacity: 1; transform: none; }
.precision-overlay__wash { fill: rgba(185,120,101,.13); stroke: rgba(185,120,101,.42); stroke-width: 1; }
.precision-overlay__surface { fill: rgba(185,120,101,.2); }
.precision-overlay__trace, .precision-overlay__mark, .precision-overlay__measure { fill: none; stroke: #d99a84; stroke-width: 1.6; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 0 5px rgba(185,120,101,.5)); }
.precision-overlay__mark { stroke-width: 1.25; }
.precision-overlay__measure { stroke-dasharray: 4 6; opacity: .8; }
.precision-overlay__point { fill: var(--color-soft-white); stroke: var(--color-clay); stroke-width: 2; }
.precision[data-active-precision-point="1"] [data-precision-overlay="1"] .precision-overlay__trace,
.precision[data-active-precision-point="2"] [data-precision-overlay="2"] .precision-overlay__trace,
.precision[data-active-precision-point="3"] [data-precision-overlay="3"] .precision-overlay__trace { animation: precisionTrace .72s var(--ease) both; }
@keyframes precisionTrace { from { stroke-dasharray: 1 420; stroke-dashoffset: 80; opacity: .25; } to { stroke-dasharray: 420 1; stroke-dashoffset: 0; opacity: 1; } }
.scan-line { position: absolute; top: 10%; bottom: 10%; left: 0; width: 1px; background: linear-gradient(transparent, var(--color-clay), transparent); opacity: 0; box-shadow: 0 0 24px var(--color-clay); }
.precision.is-scanning .scan-line { animation: scan .8s var(--ease) forwards; }
@keyframes scan { 0% { left: 13%; opacity: 0; } 15% { opacity: 1; } 85% { opacity: 1; } 100% { left: 87%; opacity: 0; } }
.hotspot { position: absolute; z-index: 2; display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid var(--color-clay); border-radius: 50%; background: var(--color-wine); color: var(--color-soft-white); cursor: pointer; font-size: .7rem; pointer-events: auto; transition: background-color .3s, box-shadow .35s, transform .35s var(--ease); }
.hotspot::before { content: ""; position: absolute; inset: -.55rem; border: 1px solid rgba(185,120,101,.42); border-radius: inherit; opacity: 0; transform: scale(.75); transition: opacity .35s, transform .45s var(--ease); }
.hotspot:hover, .hotspot:focus-visible { transform: scale(1.06); }
.hotspot:focus-visible { outline: 2px solid var(--color-soft-white); outline-offset: 3px; }
.hotspot.is-active { background: var(--color-clay); box-shadow: 0 0 0 .4rem rgba(185,120,101,.12), 0 0 2rem rgba(185,120,101,.3); }
.hotspot.is-active::before { opacity: 1; transform: scale(1); }
.hotspot--1 { top: 48%; left: 10%; }
.hotspot--2 { top: 39%; right: 8%; }
.hotspot--3 { right: 15%; bottom: 5%; }
.precision-notes article { position: absolute; width: 15rem; padding-left: .85rem; border-left: 1px solid transparent; font-family: "Manrope", sans-serif; opacity: .82; transition: opacity .35s, border-color .35s, transform .35s var(--ease); }
.precision-notes article::after { content: ""; position: absolute; top: 1.05rem; width: 2.5rem; height: 1px; background: linear-gradient(90deg, rgba(185,120,101,.55), transparent); opacity: .38; transition: opacity .35s, width .4s var(--ease); }
.precision-notes article.is-active { border-color: var(--color-clay); opacity: 1; transform: translateY(-.18rem); }
.precision-notes article.is-active::after { width: 3.25rem; opacity: .9; }
.precision-notes article:nth-child(1) { top: 4.8rem; left: 0; }
.precision-notes article:nth-child(1)::after { right: -3rem; }
.precision-notes article:nth-child(2) { top: 4.2rem; right: 0; }
.precision-notes article:nth-child(2)::after, .precision-notes article:nth-child(3)::after { left: -3rem; rotate: 180deg; }
.precision-notes article:nth-child(3) { right: 0; bottom: 2.25rem; }
.precision-notes span { color: var(--color-clay); font-size: .75rem; letter-spacing: .12em; }
.precision-notes h3 { margin-top: .65rem; font: 400 .92rem/1.5 "Manrope", sans-serif; text-transform: uppercase; }
.precision-notes p { margin-top: .4rem; color: rgba(252,250,246,.74); font-size: .92rem; line-height: 1.6; }
.precision-hint { display: flex; align-items: center; gap: 1rem; width: fit-content; color: var(--color-clay); font-size: .72rem; letter-spacing: .12em; text-transform: uppercase; }
.precision-hint::before { content: ""; width: 2.75rem; height: 1px; background: currentColor; opacity: .7; }

.space-grid { display: grid; grid-template-columns: 1.8fr .94fr; gap: clamp(2rem, 4vw, 4rem); margin-top: clamp(3rem, 6vw, 5.25rem); }
.space-photo { overflow: hidden; background: var(--color-stone); }
.space-photo img { width: 100%; height: calc(100% + 2.5rem); margin-top: -1.25rem; object-fit: cover; will-change: transform; }
.space-photo--main { position: relative; min-height: 35.625rem; border-radius: 1.75rem; }
.space-photo--main img { object-position: center; transition: filter 1s var(--ease); }
.space-photo__zoom { display: block; width: 100%; height: 100%; transform: scale(1.015); transform-origin: center; transition: transform 1s var(--ease); will-change: transform; }
.space-photo--main::before { content: ""; position: absolute; z-index: 1; top: -35%; bottom: -35%; left: -42%; width: 32%; background: linear-gradient(90deg, transparent, rgba(252,250,246,.3), transparent); opacity: 0; rotate: 12deg; pointer-events: none; }
.space.is-illuminated .space-photo--main::before { animation: spaceLight 1.4s var(--ease) both; }
@keyframes spaceLight { 0% { left: -42%; opacity: 0; } 22% { opacity: .65; } 100% { left: 118%; opacity: 0; } }
@media (hover: hover) and (pointer: fine) {
  .space-photo:hover .space-photo__zoom { transform: scale(1.065); }
  .space-photo:hover img { filter: saturate(1.045) contrast(1.02); }
}
.space-grid__side { display: grid; grid-template-rows: minmax(22rem, 1fr) auto; gap: 1.8rem; }
.space-photo--detail { overflow: hidden; border-radius: 13rem 13rem 1.5rem 1.5rem; }
.space-photo--detail img { object-position: center 52%; }
.space-grid blockquote { position: relative; z-index: 2; margin: -2.5rem 1rem 0; padding: 2rem; border-radius: 1.5rem; background: rgba(244,240,232,.94); color: var(--color-wine); font-size: 1.55rem; line-height: 1.3; backdrop-filter: blur(10px); }
.space-grid blockquote span { display: flex; align-items: center; gap: .75rem; margin-bottom: 1rem; color: var(--color-clay); font: 500 .65rem/1.2 "Manrope", sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.space-grid blockquote span::before { content: ""; width: 2rem; height: 1px; background: currentColor; }

.team .section-heading { margin-bottom: clamp(2.75rem, 4.5vw, 4.5rem); }
.team-collective { position: relative; width: min(108rem, calc(100% - clamp(2rem, 4vw, 5rem))); min-height: clamp(34rem, 38vw, 39rem); margin-inline: auto; overflow: hidden; border-radius: 1.75rem; background: var(--color-wine); }
.team-collective > img { width: 100%; height: clamp(34rem, 38vw, 39rem); object-fit: cover; object-position: center 46%; }
.team-collective::after { content: ""; position: absolute; inset: 42% 0 0; pointer-events: none; background: linear-gradient(transparent, rgba(74,41,48,.96)); }
.team-members { position: absolute; z-index: 2; right: 0; bottom: 0; left: 0; display: grid; grid-template-columns: repeat(4, 1fr); }
.team-members button { position: relative; min-width: 0; min-height: 9rem; padding: 1.2rem 2rem; border: 0; border-top: 1px solid rgba(252,250,246,.55); border-right: 1px solid rgba(252,250,246,.22); background: transparent; color: var(--color-soft-white); cursor: pointer; text-align: left; transition: background .35s, min-height .35s; }
.team-members button:hover, .team-members button:focus-visible, .team-members button[aria-expanded="true"] { background: rgba(74,41,48,.58); min-height: 11rem; }
.team-members span { display: block; margin-bottom: .7rem; color: var(--color-clay); font-size: .7rem; letter-spacing: .1em; }
.team-members strong { display: block; font: 400 1.35rem/1.2 "Newsreader", serif; }
.team-members small { display: block; margin-top: .55rem; color: rgba(252,250,246,.72); line-height: 1.45; }
.team-members em { display: none; margin-top: .75rem; font-style: normal; font-size: .75rem; line-height: 1.5; }
.team-members button[aria-expanded="true"] em { display: block; }

.contact { display: grid; grid-template-columns: 1fr 1fr; min-height: 42rem; }
.contact-cta, .location { min-width: 0; padding: clamp(4rem, 7vw, 6.5rem) var(--gutter); }
.contact-cta { display: flex; flex-direction: column; justify-content: center; background: var(--color-wine); color: var(--color-soft-white); }
.contact-cta h2 { max-width: 38rem; margin-top: 3rem; color: var(--color-soft-white); font-size: clamp(2.5rem, 3.4vw, 3rem); line-height: 1.16; }
.contact-cta__intro { max-width: 33rem; margin-top: 2.5rem; color: var(--color-stone); font-size: var(--text-body); line-height: 1.65; }
.contact-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 1.25rem 1.5rem; margin-top: 3rem; }
.contact-actions .button { align-self: flex-start; }
.contact-email { color: var(--color-stone); font-size: .82rem; border-bottom: 1px solid rgba(216,209,199,.38); padding-bottom: .25rem; }
.contact-email span { display: inline-block; margin-left: .25rem; transition: transform .3s var(--ease); }
.contact-email:hover span { transform: translate(.2rem,-.2rem); }
.contact-cta__note { max-width: 34rem; margin-top: 2.25rem; color: rgba(216,209,199,.5); font-size: .68rem; line-height: 1.55; letter-spacing: .05em; }
.location { position: relative; display: flex; align-items: flex-end; overflow: hidden; background: var(--color-stone); isolation: isolate; }
.location::before { content: ""; position: absolute; z-index: 1; inset: 0; background: linear-gradient(180deg, rgba(244,240,232,.58), rgba(244,240,232,.42)); opacity: 1; pointer-events: none; transition: opacity .6s var(--ease); }
.location__map { position: absolute; z-index: 0; inset: -1.5rem; width: calc(100% + 3rem); height: calc(100% + 3rem); border: 0; opacity: .58; filter: grayscale(1) sepia(.38) saturate(.38) contrast(.84); pointer-events: none; transition: opacity .7s var(--ease), filter .7s var(--ease); }
.location__copy { position: relative; z-index: 2; width: min(34rem, 100%); padding: clamp(1.75rem, 3vw, 2.5rem); border: 1px solid rgba(252,250,246,.72); border-radius: 1.5rem; background: rgba(244,240,232,.94); color: var(--color-wine); box-shadow: 0 1.5rem 4rem rgba(74,41,48,.13); backdrop-filter: blur(16px); transition: opacity .45s var(--ease), transform .55s var(--ease), visibility .45s; }
.location__map-close { position: absolute; z-index: 4; top: 1.5rem; right: 1.5rem; display: inline-flex; align-items: center; gap: .75rem; min-height: 3rem; padding: .65rem .75rem .65rem 1.15rem; border: 1px solid rgba(74,41,48,.28); border-radius: 999px; background: rgba(244,240,232,.94); color: var(--color-wine); cursor: pointer; opacity: 0; visibility: hidden; transform: translateY(-.5rem); transition: opacity .35s, transform .4s var(--ease), visibility .35s; backdrop-filter: blur(12px); }
.location__map-close span { display: grid; width: 1.8rem; aspect-ratio: 1; border-radius: 50%; place-items: center; background: var(--color-wine); color: var(--color-soft-white); font-size: 1.1rem; line-height: 1; }
.location.is-map-expanded::before { opacity: 0; }
.location.is-map-expanded .location__map { opacity: 1; filter: grayscale(.72) sepia(.2) saturate(.72) contrast(.94); pointer-events: auto; }
.location.is-map-expanded .location__copy { opacity: 0; visibility: hidden; transform: translateY(1.5rem) scale(.98); pointer-events: none; }
.location.is-map-expanded .location__map-close { position: fixed; opacity: 1; visibility: visible; transform: translateY(0); }
.location__eyebrow { color: var(--color-clay); font-size: .72rem; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.location__copy h3 { margin-top: .8rem; font-size: clamp(2.6rem, 3.6vw, 3.75rem); line-height: 1; }
.location__intro { max-width: 29rem; margin-top: 1.75rem; color: rgba(74,41,48,.76); font-size: 1rem; line-height: 1.7; }
.location__details { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin-top: 2rem; padding-block: 1.25rem; border-block: 1px solid rgba(74,41,48,.24); }
.location__details span, .location__details strong { display: block; }
.location__details span { margin-bottom: .45rem; color: var(--color-muted); font-size: .65rem; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; }
.location__details strong { font-size: .82rem; font-weight: 500; line-height: 1.5; }
.location__copy .button { margin-top: 2.25rem; }

.site-footer { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(15rem, .75fr); gap: clamp(3.5rem, 6vw, 5rem) 3rem; padding: clamp(4rem, 6vw, 6rem) var(--gutter) 3rem; background: var(--color-graphite); color: var(--color-soft-white); }
.footer-brand { max-width: 34rem; }
.footer-wordmark { font: 400 clamp(3.5rem, 6vw, 5rem)/1 "Newsreader", serif; letter-spacing: .12em; }
.footer-brand p { max-width: 25rem; margin-top: 1.5rem; color: rgba(216,209,199,.68); font-size: .9rem; line-height: 1.65; }
.footer-info { padding-top: .4rem; color: var(--color-stone); font-size: .88rem; line-height: 1.8; }
.footer-info a { transition: color .3s; }
.footer-info a:hover { color: var(--color-clay); }
.site-footer nav { display: flex; flex-wrap: wrap; align-items: end; gap: 1.4rem; font-size: .86rem; }
.site-footer nav a:hover { color: var(--color-clay); }
.footer-meta { display: flex; align-items: end; justify-content: space-between; gap: 2rem; border-top: 1px solid rgba(252,250,246,.12); padding-top: 1.5rem; }
.footer-note { color: var(--color-muted); font-size: .68rem; letter-spacing: .11em; text-transform: uppercase; }
.footer-meta > a { flex: none; color: var(--color-stone); font-size: .78rem; }
.footer-meta > a span { display: inline-block; margin-left: .35rem; transition: transform .3s var(--ease); }
.footer-meta > a:hover span { transform: translateY(-.2rem); }

.reveal-group > *, .reveal-media { opacity: 1; }
.js-motion .reveal-group > *, .js-motion .reveal-media { opacity: 0; transform: translateY(24px); }

@media (max-width: 1023px) {
  :root { --gutter: 2rem; }
  .site-header { grid-template-columns: 1fr 1fr; }
  .header-signature { display: none; }
  .site-navigation__body { grid-template-columns: 1fr; width: min(100%, 46rem); }
  .site-navigation__intro { display: none; }
  .site-navigation__links strong { font-size: clamp(2.5rem,7vw,4rem); }
  .hero__precision-header { grid-template-columns: 1fr 1fr; }
  .hero__precision-signature { display: none; }
  .section-heading { gap: 3rem; }
  .care-story { grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 2rem; }
  .care-story__steps li { padding-left: 4.25rem; }
  .care-story__visual-inner { min-height: 70vh; }
  .treatment-tabs { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .treatment-tabs button { padding-inline: .8rem; font-size: .72rem; }
  .treatment-tabs span { display: block; margin: 0 0 .5rem; }
  .precision-notes article { width: 12rem; }
  .team-members button { padding-inline: 1rem; }
}

@media (max-width: 767px) {
  :root { --gutter: 1.3rem; --section-space: clamp(4.5rem, 20vw, 6rem); }
  .site-header { padding: 1.1rem var(--gutter); }
  .site-navigation { padding: 1.1rem var(--gutter) .9rem; }
  .site-navigation__header { padding-bottom: .9rem; }
  .site-navigation__brand span { display: none; }
  .site-navigation__brand strong { font-size: 1.45rem; }
  .navigation-close { min-height: 2.55rem; padding-block: .5rem; }
  .navigation-close i { width: 1.55rem; height: 1.55rem; }
  .site-navigation__body { align-items: center; }
  .site-navigation__links a { grid-template-columns: 1.75rem 1fr auto; min-height: clamp(4.25rem,10.8vh,5.4rem); gap: .75rem; padding-inline: .5rem; }
  .site-navigation__links a > span { padding-top: 1rem; font-size: .55rem; }
  .site-navigation__links strong { font-size: clamp(2.15rem,11vw,3.1rem); }
  .site-navigation__footer { gap: 1rem; padding-top: .85rem; font-size: .55rem; }
  .site-navigation__footer span:last-child { text-align: right; }
  .site-navigation__tooth { top: 30%; left: 45%; width: 55vw; }
  .site-navigation__monogram { right: -4vw; bottom: 4rem; font-size: 40vw; }
  .hero__precision-header { padding: 1.1rem var(--gutter); }
  .hero__precision-action { min-width: auto; min-height: 2.8rem; padding: .7rem 1rem; }
  .hero__precision-menu { width: 3.5rem; }
  .hero__precision-menu i { width: 2.3rem; }
  .preloader__meta { font-size: .58rem; }
  .preloader { --reveal-start-y: 36%; --scene-shift-y: -36%; }
  .preloader__tooth { width: 4.6rem; }
  .preloader__wordmark { top: 53%; font-size: clamp(4rem, 22vw, 5.5rem); }
  .preloader__claim { top: 65%; font-size: 1rem; }
  .preloader__status { grid-template-columns: 1fr auto; row-gap: .8rem; }
  .preloader__status i { grid-column: 1 / -1; grid-row: 1; }
  .preloader__status span { grid-row: 2; }
  .site-header .button { min-width: auto; min-height: 2.8rem; padding: .7rem 1rem; }
  .menu-button { width: 3.5rem; }
  .menu-button i { width: 2.3rem; }
  .hero { --tooth-x: 50%; --tooth-y: 42%; --tooth-width: 48vw; --tooth-height: 65.12vw; --tooth-half-width: 24vw; --tooth-half-height: 32.56vw; height: auto; min-height: 100svh; padding-bottom: 8rem; }
  .hero__ambient-face { top: -8rem; left: 38%; width: 31rem; height: 40rem; }
  .hero__ambient-gesture { top: 14rem; left: -12rem; width: 29rem; height: 36rem; }
  .hero__precision::before { top: -8rem; left: 38%; width: 31rem; height: 40rem; }
  .hero__precision::after { top: 14rem; left: -12rem; width: 29rem; height: 36rem; }
  .hero__vignette { background: linear-gradient(155deg, rgba(29,27,26,.28), rgba(74,41,48,.02) 52%, rgba(29,27,26,.24)); }
  .hero__wordmark, .hero__precision-wordmark { top: 24%; left: 50%; translate: -50% 0; font-size: 27vw; }
  .hero__annotation { display: none; }
  .hero__copy, .hero__precision-copy { bottom: 8.5rem; }
  .hero__copy h1, .hero__precision-title { font-size: clamp(2.2rem, 10vw, 3rem); }
  .hero__copy p, .hero__precision-description { font-size: .95rem; }
  .hero__continuity { min-height: 3rem; font-size: .62rem; letter-spacing: .11em; backdrop-filter: blur(5px); }
  .hero__continuity-group { flex-basis: 100vw; min-height: 3rem; gap: .65rem; }
  .care { border-radius: 1.75rem 1.75rem 0 0; }
  .js-motion .care { margin-top: -2.5rem; transform: translateY(2.5rem); }
  .section-heading, .treatments__heading { grid-template-columns: 1fr; gap: 2rem; }
  .section-heading > *, .treatments__heading > * { width: 100%; }
  .section-heading .eyebrow, .treatments__heading .eyebrow { margin-bottom: 1.35rem; }
  .section-intro { max-width: 100%; }
  .care-story { display: block; margin-top: 2.5rem; padding-top: 15.5rem; }
  .care-story__visual { position: absolute; z-index: 2; inset: 0 0 auto; height: calc(100% - 12.75rem); pointer-events: none; }
  .care-story__narrative { position: relative; z-index: 3; }
  .care-story__visual-inner { top: 5.25rem; min-height: 14.5rem; height: 14.5rem; border-radius: 44% 44% 1.5rem 1.5rem / 14% 14% 1.5rem 1.5rem; }
  .care-story__visual-label { top: 1.25rem; left: 50%; font-size: .58rem; }
  .care-story__tooth { position: absolute; top: 3.25rem; left: 50%; width: min(31%, 6.15rem); translate: -50% 0; }
  .care-story__visual-legend { right: 1.35rem; bottom: 1.25rem; left: 1.35rem; font-size: .54rem; }
  .care-story__copy { top: 20.75rem; min-height: 11.75rem; height: 11.75rem; background: var(--color-soft-white); }
  .care-story__track i { min-height: 42vh; }
  .care-story__steps li { align-content: start; padding: .65rem .35rem 1rem 3.55rem; }
  .care-story__steps span { top: 1.55rem; left: 0; width: 2.25rem; height: 2.25rem; translate: 0 -50%; }
  .care-story__steps h3 { font-size: clamp(2.35rem, 11vw, 2.85rem); line-height: 1; }
  .care-story__steps p { max-width: 18rem; margin-top: 1rem; font-size: .94rem; line-height: 1.6; }
  .care-story__progress { top: 1.55rem; left: 1.1rem; height: 7.75rem; translate: -50% 0; }
  .care-story__steps p { margin-top: 1.15rem; font-size: .98rem; }
  .care-story__progress { left: 1rem; height: 10rem; }
  .treatments { background: var(--color-soft-white); }
  .treatments__heading { padding-bottom: 2.5rem; }
  .treatments__heading h2 br, .treatments__instruction { display: none; }
  .treatment-stack { padding: 0 var(--gutter) var(--section-space); }
  .treatment-tabs { display: grid; grid-template-columns: 1fr; gap: .35rem; }
  .treatment-tabs button, .treatment-tabs button[aria-selected="true"] { min-height: 3.25rem; padding: .8rem .9rem; border-radius: .7rem; font-size: .95rem; text-transform: none; transform: none; }
  .treatment-tabs button::after { right: .9rem; bottom: .45rem; left: .9rem; }
  .treatment-tabs button[aria-selected="true"] { min-height: 5.9rem; background: var(--color-clay); color: var(--color-soft-white); transform: translateX(.25rem); }
  .treatment-tabs span { display: inline; margin: 0 .8rem 0 0; }
  .treatment-panel { grid-template-columns: 1fr; gap: 2rem; min-height: 0; margin-top: .8rem; padding: 1.4rem; border-radius: 1rem; }
  .treatment-panel h3 { font-size: 2.2rem; }
  .treatment-panel__services { margin-top: 2rem; }
  .treatment-panel__media { min-height: 16rem; }
  .precision { min-height: 0; }
  .precision-toggle { width: 100%; }
  .precision-toggle button { flex: 1; padding-inline: .5rem; }
  .precision-stage { display: flex; flex-direction: column; min-height: 0; margin-top: 2rem; }
  .precision-visual { position: relative; top: auto; left: auto; width: 100%; translate: none; }
  .precision-notes { order: 2; margin-top: 1.5rem; }
  .precision-notes article { position: static; display: none; width: 100%; min-height: 12rem; padding: 1.5rem; border: 0; border-radius: 1.35rem; background: var(--color-clay); opacity: 1; transform: none; }
  .precision-notes article::after { display: none; }
  .precision-notes article.is-active { display: block; }
  .precision-notes article p { color: var(--color-soft-white); }
  .precision-hint { margin-top: 2rem; line-height: 1.5; }
  .space-grid { grid-template-columns: 1fr; gap: 1.5rem; margin-top: 3rem; }
  .space-photo--main { min-height: 25rem; }
  .space-grid__side { grid-template-rows: 21rem auto; }
  .space-photo--detail { border-radius: 9rem 9rem 1.5rem 1.5rem; }
  .team-collective { min-height: auto; overflow: visible; border-radius: 1.5rem; background: var(--color-graphite); }
  .team-collective > img { height: 14rem; border-radius: 1.5rem 1.5rem 0 0; }
  .team-collective::after { display: none; }
  .team-members { position: static; display: block; padding: 1rem 1.25rem 1.5rem; }
  .team-members button { width: 100%; min-height: 4rem; padding: 1rem 0; border-right: 0; }
  .team-members button:hover, .team-members button:focus-visible, .team-members button[aria-expanded="true"] { min-height: 4rem; padding: 1rem; border: 1px solid rgba(185,120,101,.7); border-radius: .9rem; background: var(--color-wine); }
  .team-members span { float: left; width: 2rem; }
  .team-members strong { font-size: 1.2rem; }
  .team-members small { display: none; }
  .team-members em { clear: both; padding-top: .5rem; }
  .contact { grid-template-columns: 1fr; }
  .contact-cta, .location { min-height: 33rem; }
  .location { padding: 1.25rem; }
  .location__copy { width: 100%; }
  .location__details { grid-template-columns: 1fr; gap: 1rem; }
  .site-footer { grid-template-columns: 1fr; gap: 2rem; }
  .site-footer nav { align-items: start; }
  .footer-meta { align-items: start; margin-top: 1rem; }
}

@media (max-height: 48rem) and (min-width: 48rem) {
  .preloader {
    --reveal-start-y: 31%;
    --scene-shift-y: -31%;
  }
  .preloader__tooth { width: clamp(4.1rem, 5.3vw, 4.8rem); }
  .preloader__meta { top: 1.75rem; }
  .preloader__wordmark {
    top: 54%;
    font-size: clamp(4.4rem, 8.6vw, 7.4rem);
  }
  .preloader__claim {
    top: 66%;
    font-size: clamp(.95rem, 1.4vw, 1.15rem);
  }
  .preloader__status { bottom: 1.75rem; }
  .hero {
    --tooth-y: 43%;
    --tooth-width: clamp(13rem, 20vw, 17rem);
    --tooth-height: clamp(17.64rem, 27.13vw, 23.05rem);
    --tooth-half-width: clamp(6.5rem, 10vw, 8.5rem);
    --tooth-half-height: clamp(8.82rem, 13.565vw, 11.525rem);
    height: 100svh;
    min-height: 38rem;
  }
  .hero__wordmark, .hero__precision-wordmark {
    top: 18%;
    font-size: clamp(7.5rem, 16vw, 13rem);
  }
  .hero__annotation { top: 56%; }
  .hero__copy, .hero__precision-copy { bottom: 4.35rem; }
  .hero__copy h1, .hero__precision-title { font-size: clamp(2.15rem, 3.25vw, 2.8rem); }
  .hero__copy p, .hero__precision-description {
    max-width: 42rem;
    margin-top: .7rem;
    font-size: .92rem;
    line-height: 1.45;
  }
}

@media (hover: none), (pointer: coarse) {
  .hero__precision { filter: none; transform: translateZ(0); will-change: mask-position, -webkit-mask-position; }
}

@media (hover: hover) and (pointer: fine) {
  .hero { cursor: none; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .js-motion .reveal-group > *, .js-motion .reveal-media { opacity: 1; transform: none; }
  .hero__continuity-track { animation: none; }
  .care-story__steps li { opacity: 1; translate: none; }
  .care-story__steps li span { border-color: var(--color-wine); background: var(--color-wine); color: var(--color-soft-white); }
  .care-story__layer { transform: none; }
  .care-story__layer--one { opacity: .25; }
  .space-photo__zoom { transform: scale(1.015); }
  .care-story__layer--two { opacity: .38; }
  .care-story__layer--three { opacity: .92; }
}
