:root {
  /* Colour */
  --paper: #f3eee6;
  --paper-light: #faf7f1;
  --paper-muted: #e7e1d8;
  --ink: #211d1c;
  --white: #fff;
  --black: #171313;
  --wine: #6b2137;
  --wine-deep: #2e0e19;
  --rose: #d9a1ac;
  --error: #a72840;
  --stone: #dedbd3;
  --line: rgba(33,29,28,.16);
  --line-light: rgba(255,255,255,.2);

  /* Typefaces */
  --serif: "Newsreader", Georgia, serif;
  --sans: "Instrument Sans", Arial, sans-serif;

  /* Fluid primitives: 20rem → 90rem viewport */
  --site--margin: clamp(1rem,.428rem + 2.86vw,3rem);
  --size--2rem: clamp(1.75rem,1.678rem + .36vw,2rem);
  --size--2-5rem: clamp(2rem,1.858rem + .71vw,2.5rem);
  --size--3rem: clamp(2.25rem,2.036rem + 1.07vw,3rem);
  --size--3-5rem: clamp(2.375rem,2.053rem + 1.61vw,3.5rem);
  --size--4rem: clamp(2.5rem,2.072rem + 2.14vw,4rem);
  --size--4-5rem: clamp(2.75rem,2.25rem + 2.5vw,4.5rem);
  --size--5rem: clamp(3rem,2.428rem + 2.86vw,5rem);
  --size--5-5rem: clamp(3.25rem,2.608rem + 3.21vw,5.5rem);
  --size--6rem: clamp(3.5rem,2.786rem + 3.57vw,6rem);
  --size--6-5rem: clamp(3.75rem,2.964rem + 3.93vw,6.5rem);
  --size--7rem: clamp(4rem,3.142rem + 4.29vw,7rem);
  --size--7-5rem: clamp(4.25rem,3.322rem + 4.64vw,7.5rem);
  --size--8rem: clamp(4.5rem,3.5rem + 5vw,8rem);
  --size--8-5rem: clamp(4.75rem,3.678rem + 5.36vw,8.5rem);
  --size--9rem: clamp(5rem,3.858rem + 5.71vw,9rem);
  --size--9-5rem: clamp(5.25rem,4.036rem + 6.07vw,9.5rem);
  --size--10rem: clamp(5.5rem,4.214rem + 6.43vw,10rem);
  --size--11rem: clamp(5.75rem,4.25rem + 7.5vw,11rem);
  --size--12rem: clamp(6rem,4.286rem + 8.57vw,12rem);
  --size--13rem: clamp(6.5rem,4.642rem + 9.29vw,13rem);
  --size--14rem: clamp(7rem,5rem + 10vw,14rem);
  --size--15rem: clamp(7.5rem,5.358rem + 10.71vw,15rem);
  --size--16rem: clamp(8rem,5.714rem + 11.43vw,16rem);

  /* Semantic typography */
  --font-size-meta: clamp(.58rem,.557rem + .11vw,.66rem);
  --font-size-caption: clamp(.56rem,.543rem + .09vw,.62rem);
  --font-size-button: clamp(.65rem,.627rem + .11vw,.73rem);
  --font-size-button-compact: clamp(.64rem,.611rem + .14vw,.74rem);
  --font-size-nav: clamp(.75rem,.733rem + .09vw,.81rem);
  --font-size-nav-action: clamp(.7rem,.683rem + .09vw,.76rem);
  --font-size-body-small: clamp(.74rem,.717rem + .11vw,.82rem);
  --font-size-body: clamp(.78rem,.751rem + .14vw,.88rem);
  --font-size-lead: clamp(1.05rem,.996rem + .27vw,1.24rem);
  --font-size-hero: clamp(5.3rem,7.25vw,7rem);
  --font-size-section-title: clamp(3.7rem,5vw,5.5rem);
  --font-size-section-title-wide: clamp(3.8rem,5.2vw,5.8rem);
  --font-size-form-title: clamp(3rem,4.2vw,4.7rem);
  --font-size-row-title: clamp(1.65rem,2.1vw,2.35rem);
  --font-size-doctor-slide-title: clamp(3.4rem,4.7vw,4.375rem);
  --font-size-doctor-quote: clamp(2.4rem,3.65vw,3.4rem);
  --line-height-doctor-heading: 1.02;

  /* Spacing */
  --space-3xs: .5rem;
  --space-2xs: .75rem;
  --space-xs: 1rem;
  --space-sm: clamp(1.125rem,1.018rem + .54vw,1.5rem);
  --space-md: clamp(1.5rem,1.286rem + 1.07vw,2.25rem);
  --space-lg: clamp(2rem,1.572rem + 2.14vw,3.5rem);
  --space-xl: clamp(3rem,2.286rem + 3.57vw,5.5rem);
  --space-2xl: clamp(4rem,2.858rem + 5.71vw,8rem);
  --space-section: clamp(7.5rem,6.786rem + 3.57vw,10rem);
  --space-section-compact: clamp(6rem,5.036rem + 4.82vw,9.375rem);
  --space-section-tablet: clamp(6rem,12vw,6.875rem);
  --space-section-mobile: 5.125rem;

  /* Layout and controls */
  --container: 90rem;
  --gutter: var(--site--margin);
  --page: min(var(--container),calc(100vw - (2 * var(--gutter))));
  --header-h: 4.5rem;
  --header-h-scrolled: 4rem;
  --control-h: 3.5rem;
  --control-h-compact: 2.625rem;
  --icon-md: 1.125rem;
  --icon-sm: 1.0625rem;
  --border-hairline: .0625rem;
  --focus-width: .125rem;

  /* Motion and elevation */
  --ease: cubic-bezier(.2,.8,.2,1);
  --ease-cta: cubic-bezier(.16,1,.3,1);
  --ease-image-reveal: cubic-bezier(.42,0,.3,1);
  --duration-fast: .2s;
  --duration-medium: .3s;
  --duration-slow: .8s;
  --duration-cta-bg: .44s;
  --duration-cta-icon: .36s;
  --duration-cta-fade: .25s;
  --duration-cta-underline: .3s;
  --duration-image-reveal: 1.2s;
  --duration-image-settle: 1.4s;
  --duration-press: .12s;
  --shadow-button: 0 1.125rem 2.625rem rgba(107,33,55,.17);
  --shadow-portrait: 0 2.5rem 6.25rem rgba(64,20,35,.16);

  /* Layering */
  --z-mobile-cta: 98;
  --z-mobile-nav: 99;
  --z-header: 100;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: var(--header-h); }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: var(--sans); -webkit-font-smoothing: antialiased; }
body.menu-open { overflow: hidden; }
img, svg { display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font: inherit; }
button { color: inherit; }
h1, h2, h3, p, dl, dd, blockquote { margin: 0; }
address { font-style: normal; }
[hidden] { display: none !important; }
.svg-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.skip-link { position: fixed; top: 8px; left: 8px; z-index: 999; padding: 10px 14px; background: #fff; transform: translateY(-160%); }
.skip-link:focus { transform: none; }
:focus-visible { outline: var(--focus-width) solid var(--rose); outline-offset: .25rem; }
.scene { position: relative; }
.eyebrow { font-size: var(--font-size-meta); font-weight: 600; letter-spacing: .13em; line-height: 1.3; text-transform: uppercase; }
.eyebrow-light { color: rgba(255,255,255,.62); }
em { font-weight: 400; }

/* CTA system */
.button { position: relative; isolation: isolate; display: inline-flex; align-items: center; justify-content: space-between; gap: var(--space-md); min-height: var(--control-h); padding: 0 var(--space-sm); border: var(--border-hairline) solid transparent; overflow: hidden; font-size: var(--font-size-button); font-weight: 600; letter-spacing: .085em; text-transform: uppercase; transition: color var(--duration-medium) var(--ease-cta), border-color var(--duration-medium) var(--ease-cta), background-color var(--duration-medium) var(--ease-cta), transform var(--duration-press) var(--ease-cta); }
.button > span { position: relative; z-index: 1; }
.button::before { position: absolute; inset: 0; z-index: 0; background: var(--wine-deep); content: ""; transform: translate3d(-101%,0,0); transition: transform var(--duration-cta-bg) var(--ease-cta); will-change: transform; }
.button:hover::before, .button:focus-visible::before { transform: translate3d(0,0,0); }
.button:active { transform: scale(.985); }
.button-primary { background: var(--wine); color: #fff; }
.button-outline { border-color: currentColor; background: transparent; }
.button-outline:hover, .button-outline:focus-visible { color: #fff; }
.button-light { background: #fff; color: var(--wine-deep); }
.button-light::before { background: var(--rose); }
.button-text { min-height: auto; padding: .5625rem 0; border-bottom: var(--border-hairline) solid transparent; overflow: visible; }
.button-text::before { top: auto; height: var(--border-hairline); background: currentColor; transform: scaleX(0); transform-origin: right; transition: transform var(--duration-cta-underline) var(--ease-cta); }
.button-text:hover::before, .button-text:focus-visible::before { transform: scaleX(1); transform-origin: left; }
.button-compact { min-height: var(--control-h-compact); padding: 0 1.0625rem; gap: 1.0625rem; font-size: var(--font-size-button-compact); }
.cta-icon { position: relative; flex: 0 0 var(--icon-md); width: var(--icon-md); height: var(--icon-md); overflow: hidden; }
.cta-icon svg { position: absolute; inset: 0; width: var(--icon-md); height: var(--icon-md); fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.45; transition: transform var(--duration-cta-icon) var(--ease-cta), opacity var(--duration-cta-fade) linear; will-change: transform, opacity; }
.cta-icon svg:first-child { transform: translate3d(0,0,0); opacity: 1; }
.cta-icon svg:nth-child(2) { transform: translate3d(-110%,0,0); opacity: 0; }
.button:hover .cta-icon svg, .button:focus-visible .cta-icon svg { transition-delay: .04s; }
.button:hover .cta-icon svg:first-child, .button:focus-visible .cta-icon svg:first-child { transform: translate3d(110%,0,0); opacity: 0; }
.button:hover .cta-icon svg:nth-child(2), .button:focus-visible .cta-icon svg:nth-child(2) { transform: translate3d(0,0,0); opacity: 1; }
.cta-icon.external svg:nth-child(2) { transform: translate3d(-85%,85%,0); }
.button:hover .cta-icon.external svg:first-child, .button:focus-visible .cta-icon.external svg:first-child { transform: translate3d(85%,-85%,0); }
.button:hover .cta-icon.external svg:nth-child(2), .button:focus-visible .cta-icon.external svg:nth-child(2) { transform: translate3d(0,0,0); }
.phone-icon { width: var(--icon-sm); height: var(--icon-sm); }
.phone-icon svg, .mobile-conversion svg { width: var(--icon-sm); height: var(--icon-sm); fill: none; stroke: currentColor; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.3; }

/* Header and navigation */
.site-header { position: fixed; top: 0; right: 0; left: 0; z-index: var(--z-header); height: var(--header-h); border-bottom: var(--border-hairline) solid transparent; transition: height var(--duration-medium) var(--ease), background var(--duration-medium), color var(--duration-medium), border-color var(--duration-medium); }
.site-header-inner { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; width: var(--page); height: 100%; margin-inline: auto; }
.site-header.is-scrolled { height: var(--header-h-scrolled); border-bottom-color: var(--line); background: rgba(243,238,230,.93); backdrop-filter: blur(.875rem); }
.site-header.on-dark { color: #fff; }
.site-header.is-scrolled.on-dark { border-bottom-color: rgba(255,255,255,.13); background: rgba(46,14,25,.93); }
.brand { display: block; justify-self: start; width: max-content; }
.brand, .footer-brand { transform: scale(1); transform-origin: center; transition: transform var(--duration-medium) ease; will-change: transform; }
.brand:hover, .brand:focus-visible, .footer-brand:hover, .footer-brand:focus-visible { transform: scale(.96); }
.brand img { width: auto; height: 2.8125rem; object-fit: contain; transition: height var(--duration-medium), filter var(--duration-medium); }
.site-header.is-scrolled .brand img { height: 2.4375rem; }
.site-header.on-dark .brand img { filter: brightness(0) invert(1); }
.primary-nav { display: flex; align-items: center; gap: var(--space-md); }
.primary-nav a { position: relative; padding: var(--space-3xs) 0; font-size: var(--font-size-nav); font-weight: 500; }
.primary-nav a::after { position: absolute; right: 0; bottom: 0; left: 0; height: var(--border-hairline); background: currentColor; content: ""; transform: scaleX(0); transform-origin: right; transition: transform .22s var(--ease); }
.primary-nav a:hover::after, .primary-nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.header-actions { display: flex; justify-self: end; align-items: center; gap: var(--space-sm); }
.header-call { display: flex; align-items: center; gap: .5625rem; font-size: var(--font-size-nav-action); font-weight: 600; letter-spacing: .04em; text-transform: uppercase; }
.call-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--wine); box-shadow: 0 0 0 4px rgba(107,33,55,.09); }
.on-dark .call-dot { background: #fff; box-shadow: 0 0 0 4px rgba(255,255,255,.1); }
.menu-toggle { position: relative; display: none; width: 44px; height: 44px; padding: 0; border: 0; background: transparent; cursor: pointer; }
.menu-toggle span { position: absolute; left: 10px; width: 24px; height: 1px; background: currentColor; transition: transform .25s var(--ease), top .25s var(--ease); }
.menu-toggle span:first-child { top: 17px; }
.menu-toggle span:last-child { top: 26px; }
.menu-toggle[aria-expanded="true"] span:first-child { top: 22px; transform: rotate(45deg); }
.menu-toggle[aria-expanded="true"] span:last-child { top: 22px; transform: rotate(-45deg); }
.mobile-nav { position: fixed; inset: 0; z-index: var(--z-mobile-nav); background: var(--wine-deep); color: #fff; }
.mobile-nav-inner { display: flex; flex-direction: column; min-height: 100%; padding: 112px 22px 95px; }
.mobile-nav-inner > p { margin-bottom: 1.5625rem; color: rgba(255,255,255,.42); font-size: var(--font-size-meta); letter-spacing: .13em; text-transform: uppercase; }
.mobile-nav-inner > a { display: grid; grid-template-columns: 2.375rem 1fr; align-items: center; padding: var(--space-xs) 0; border-top: var(--border-hairline) solid var(--line-light); font: 400 var(--size--2rem)/1 var(--serif); }
.mobile-nav-inner > a span { color: var(--rose); font: 600 var(--font-size-caption)/1 var(--sans); }
.mobile-nav-inner > a:last-of-type { margin-top: var(--space-xs); padding: 1.125rem 1.25rem; border: 0; background: var(--rose); color: var(--wine-deep); }
.mobile-nav-inner > a:last-of-type span { color: currentColor; }
.mobile-nav-inner > div { margin-top: auto; padding-top: 1.5625rem; border-top: var(--border-hairline) solid var(--line-light); }
.mobile-nav-inner > div a { display: block; margin-bottom: 6px; font: 400 1.55rem/1 var(--serif); }
.mobile-nav-inner small { color: rgba(255,255,255,.45); font-size: var(--font-size-meta); }

/* Hero */
.hero { min-height: 100svh; overflow: hidden; background: var(--paper); }
.hero::before { position: absolute; inset: 0; background: linear-gradient(112deg,rgba(250,247,241,.58),transparent 54%); content: ""; pointer-events: none; }
.hero-ambient { position: absolute; top: -24vw; right: -18vw; width: 72vw; height: 72vw; border-radius: 50%; background: radial-gradient(circle,rgba(164,91,114,.23),rgba(243,238,230,0) 67%); filter: blur(18px); pointer-events: none; }
.hero-inner { position: relative; z-index: 1; display: grid; grid-template-columns: repeat(12,minmax(0,1fr)); grid-template-rows: auto auto auto; column-gap: var(--space-sm); row-gap: clamp(1.125rem,2.4vh,1.625rem); align-content: center; width: var(--page); min-height: 100svh; margin-inline: auto; padding: calc(var(--header-h) + 5vh) 0 4vh; }
.hero-heading { grid-column: 1 / span 7; grid-row: 1; position: relative; z-index: 2; align-self: end; }
.hero-heading .eyebrow { margin-bottom: 34px; }
.hero h1 { font: 400 var(--font-size-hero)/.9 var(--serif); letter-spacing: -.062em; text-wrap: balance; }
.headline-line { display: block; overflow: visible; margin-bottom: -.08em; }
.headline-line > span { display: block; }
.hero h1 em { color: var(--wine); }
.hero-portrait { grid-column: 8 / -1; grid-row: 1 / span 3; position: relative; z-index: 1; width: min(100%,540px); margin: 0; justify-self: end; align-self: center; }
.portrait-stage, .doctor-frame, .clinic-frame { position: relative; overflow: hidden; background: linear-gradient(145deg,#b1848d,#5c2638); }
.portrait-photo, .doctor-photo, .clinic-photo, .experience-photo img, .visit-wayfinding img { display: block; width: 100%; height: 100%; object-fit: cover; }
.portrait-stage { height: min(68vh,42.5rem); min-height: 29.375rem; clip-path: inset(0 0 0 0 round 48% 48% .125rem .125rem / 16% 16% .125rem .125rem); box-shadow: var(--shadow-portrait); }
.portrait-photo { object-position: 50% 24%; filter: saturate(.86) contrast(1.02); }
.portrait-grid { position: absolute; inset: 0; opacity: .28; background-image: linear-gradient(rgba(255,255,255,.28) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.28) 1px,transparent 1px); background-size: 58px 58px; }
.portrait-stage::before { position: absolute; inset: 0; z-index: 1; background: radial-gradient(circle at 50% 28%,rgba(255,255,255,.12),transparent 42%),linear-gradient(180deg,transparent 42%,rgba(45,13,24,.3)); content: ""; pointer-events: none; }
.portrait-figure, .doctor-frame > span { position: absolute; top: 50%; left: 50%; color: rgba(255,255,255,.25); font: 400 clamp(6rem,10vw,10rem)/1 var(--serif); transform: translate(-50%,-50%); }
.portrait-stage > p, .doctor-frame > p { position: absolute; right: 1.375rem; bottom: 1.25rem; left: 1.375rem; z-index: 2; color: rgba(255,255,255,.74); font-size: var(--font-size-meta); letter-spacing: .1em; text-transform: uppercase; }
.hero-intro { grid-column: 1 / span 6; grid-row: 2; position: relative; z-index: 2; }
.hero-intro > p:first-child { max-width: 32.5rem; margin-bottom: var(--space-lg); font: 400 var(--font-size-lead)/1.5 var(--serif); }
.hero-actions { display: flex; align-items: center; gap: var(--space-sm); }
.hero-primary { min-width: 17.875rem; min-height: 3.875rem; padding-inline: 1.6875rem; box-shadow: var(--shadow-button); }
.hero-assurance { display: flex; align-items: center; gap: .5625rem; margin-top: var(--space-xs); color: rgba(33,29,28,.49); font-size: var(--font-size-caption); letter-spacing: .07em; text-transform: uppercase; }
.hero-assurance span { width: 6px; height: 6px; border-radius: 50%; background: var(--wine); box-shadow: 0 0 0 4px rgba(107,33,55,.08); }
.hero-trust { grid-column: 1 / span 7; grid-row: 3; display: flex; align-items: center; gap: var(--space-sm); position: relative; z-index: 2; align-self: end; padding-top: 1.1875rem; border-top: var(--border-hairline) solid var(--line); color: rgba(33,29,28,.58); font-size: var(--font-size-caption); font-weight: 600; letter-spacing: .075em; line-height: 1.4; text-transform: uppercase; }
.hero-trust i { flex: 0 0 4px; width: 4px; height: 4px; border-radius: 50%; background: var(--wine); opacity: .55; }

/* Section hierarchy */
.section-kicker { display: flex; align-items: center; gap: var(--space-xs); margin-bottom: var(--space-lg); color: rgba(33,29,28,.5); font-size: var(--font-size-meta); font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.section-kicker::after { width: 62px; height: 1px; background: var(--line); content: ""; }
.section-kicker span { color: var(--wine); }
.section-copy { max-width: 29.375rem; color: rgba(33,29,28,.6); font-size: var(--font-size-body); line-height: 1.65; }

/* Care navigator */
.care-section { padding: var(--space-section) max(var(--gutter),calc((100vw - var(--container))/2)); background: var(--paper-light); }
.care-intro { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(320px,.7fr); gap: 8vw; align-items: end; }
.care-intro .eyebrow { margin-bottom: 24px; }
.care-intro h2 { font: 400 var(--font-size-section-title-wide)/.93 var(--serif); letter-spacing: -.045em; }
.care-intro h2 em { color: var(--wine); }
.care-intro .section-copy { align-self: end; padding-bottom: 8px; }
.care-index { margin-top: clamp(70px,7vw,105px); border-top: 1px solid var(--line); }
.care-row { --row-shift: 12px; position: relative; isolation: isolate; display: grid; grid-template-columns: minmax(300px,.9fr) minmax(0,1.1fr); gap: clamp(48px,8vw,130px); align-items: center; min-height: 148px; padding: 30px 0; border-bottom: 1px solid var(--line); overflow: hidden; }
.care-row::before { position: absolute; inset: 0; z-index: -1; background: rgba(107,33,55,.035); content: ""; transform: scaleY(0); transform-origin: top; transition: transform .45s var(--ease); }
.care-row::after { position: absolute; top: 0; bottom: 0; left: 0; width: 2px; background: var(--wine); content: ""; transform: scaleY(0); transform-origin: top; transition: transform .45s var(--ease); }
.care-row h3 { max-width: 32.5rem; font: 400 var(--font-size-row-title)/1.06 var(--serif); letter-spacing: -.03em; transition: color .35s, transform .45s var(--ease); }
.care-row > p { justify-self: end; width: 100%; max-width: 35rem; padding-right: var(--row-shift); color: rgba(33,29,28,.67); font-size: clamp(.84rem,.806rem + .17vw,.96rem); line-height: 1.65; transition: transform .45s var(--ease); }
.care-row:hover::before, .care-row:focus-within::before, .care-row:hover::after, .care-row:focus-within::after { transform: scaleY(1); }
.care-row:hover h3, .care-row:focus-within h3 { color: var(--wine); }
.care-row:hover h3, .care-row:focus-within h3, .care-row:hover > p, .care-row:focus-within > p { transform: translateX(var(--row-shift)); }
.care-help { display: flex; align-items: center; justify-content: flex-end; gap: 28px; margin-top: 38px; }
.care-help p { font: italic 400 1.08rem/1.3 var(--serif); }
.care-help .button-text { flex: none; }

/* Doctor — signature sequence */
.doctor { height: 210vh; background: var(--wine-deep); color: #fff; }
.doctor-sticky { position: sticky; top: 0; display: grid; grid-template-columns: repeat(12,1fr); grid-template-rows: 1fr auto; gap: 24px; align-items: center; min-height: 100svh; overflow: hidden; padding: calc(var(--header-h) + 5vh) max(var(--gutter),calc((100vw - var(--container))/2)) 5vh; }
.doctor-progress { position: absolute; top: 50%; right: max(var(--gutter),calc((100vw - var(--container))/2)); display: flex; flex-direction: column; gap: 13px; transform: translateY(-50%); }
.doctor-progress span { position: relative; display: block; color: rgba(255,255,255,.28); font-size: .5rem; font-weight: 600; letter-spacing: .1em; line-height: 1; transition: color .3s, transform .35s var(--ease); }
.doctor-progress span.is-active { color: var(--rose); transform: translateX(-5px); }
.doctor-portrait { grid-column: 1 / span 5; grid-row: 1; align-self: center; justify-self: center; width: min(36vw,510px); }
.doctor-frame { height: min(68vh,650px); clip-path: inset(0 0 0 0 round 48% 48% 2px 2px / 18% 18% 2px 2px); transition: clip-path .8s var(--ease), transform .8s var(--ease); }
.doctor-frame::before { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg,rgba(46,14,25,.02) 45%,rgba(46,14,25,.42)); content: ""; pointer-events: none; }
.doctor-photo { object-position: 66% 50%; filter: saturate(.88) contrast(1.02) brightness(.96); }
.doctor[data-active-step="1"] .doctor-frame { clip-path: inset(2% 4% 2% 4% round 5px); transform: scale(.96); }
.doctor[data-active-step="2"] .doctor-frame { clip-path: inset(4% 0 4% 0 round 48% 48% 2px 2px / 15% 15% 2px 2px); transform: scale(.92); }
.doctor-narrative { grid-column: 7 / -1; grid-row: 1; position: relative; min-height: 480px; }
.doctor-chapter { position: absolute; top: 50%; left: 0; width: 100%; opacity: 0; visibility: hidden; transform: translateY(calc(-50% + 18px)); transition: opacity .2s linear, transform .35s var(--ease), visibility 0s .22s; }
.doctor-chapter.is-active { opacity: 1; visibility: visible; transform: translateY(-50%); transition: opacity .36s .08s linear, transform .45s .08s var(--ease), visibility 0s; }
.doctor-chapter .eyebrow { margin-bottom: 24px; }
.doctor-chapter h2 { margin-bottom: 1.6875rem; font: 400 var(--font-size-section-title)/.92 var(--serif); letter-spacing: -.052em; }
.doctor-name { display: block; white-space: nowrap; }
.doctor-chapter h3 { max-width: 40.625rem; margin-bottom: 1.75rem; font: 400 var(--font-size-doctor-slide-title)/var(--line-height-doctor-heading) var(--serif); letter-spacing: -.047em; }
.doctor-chapter h2 em, .doctor-chapter h3 em { color: var(--rose); }
.doctor-chapter[data-step="1"] h3 em { display: inline-block; padding-left: .14em; }
.doctor-role { display: flex; flex-wrap: wrap; gap: 7px 12px; align-items: center; }
.doctor-role span { display: inline-flex; align-items: center; gap: 12px; }
.doctor-role i { color: rgba(255,255,255,.42); font-style: normal; }
.doctor-chapter > p:last-child { max-width: 31.25rem; color: rgba(255,255,255,.68); font-size: var(--font-size-body); line-height: 1.7; }
.doctor-chapter:is([data-step="1"],[data-step="2"]) > p:last-child { max-width: 35rem; }
.doctor-chapter .doctor-role { max-width: 620px; }
.doctor-chapter blockquote { max-width: 620px; margin-bottom: 30px; font: italic 400 var(--font-size-doctor-quote)/1.07 var(--serif); }
.doctor-mobile-story { display: none; }
.doctor-credentials { grid-column: 1 / span 8; grid-row: 2; display: grid; grid-template-columns: repeat(3,1fr); border-top: 1px solid var(--line-light); }
.doctor-credentials div { padding: 17px 18px 0 0; }
.doctor-credentials div + div { padding-left: 18px; border-left: 1px solid var(--line-light); }
.doctor-credentials dt { margin-bottom: 6px; font: 400 1.25rem/1 var(--serif); }
.doctor-credentials dd { color: rgba(255,255,255,.56); font-size: var(--font-size-caption); letter-spacing: .1em; text-transform: uppercase; }
.doctor-cta { grid-column: 10 / -1; grid-row: 2; justify-self: end; align-self: end; }

/* Patient experience */
.experience { padding: var(--space-section-compact) max(var(--gutter),calc((100vw - var(--container))/2)); background: var(--paper); }
.experience-top { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(320px,.75fr); gap: clamp(70px,9vw,145px); align-items: end; }
.experience-heading .eyebrow { margin-bottom: 23px; }
.experience h2 { font: 400 var(--font-size-section-title)/.95 var(--serif); letter-spacing: -.045em; }
.experience h2 em { color: var(--wine); }
.experience-proof { justify-self: end; width: min(100%,430px); padding: 20px 0 21px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.experience-proof-label { margin-bottom: var(--space-sm); color: rgba(33,29,28,.5); font-size: var(--font-size-caption); font-weight: 600; letter-spacing: .11em; text-transform: uppercase; }
.experience-score { display: flex; align-items: center; gap: 22px; }
.experience-score strong { font: 400 3.65rem/1 var(--serif); }
.experience-score > div { display: grid; gap: 7px; }
.experience-score .stars { display: flex; color: var(--wine); font-size: .72rem; letter-spacing: .09em; }
.experience-score .partial-star { background: linear-gradient(90deg,var(--wine) 40%,rgba(107,33,55,.2) 40%); color: transparent; background-clip: text; -webkit-background-clip: text; }
.experience-score p { color: rgba(33,29,28,.52); font-size: var(--font-size-caption); letter-spacing: .06em; text-transform: uppercase; }
.experience-photo { position: relative; width: 100%; margin: clamp(60px,5vw,76px) 0 0; overflow: hidden; background: var(--stone); }
.experience-photo img { height: clamp(27.5rem,45vw,40.625rem); object-position: 50% 48%; filter: saturate(.88) contrast(1.01) brightness(1.02); }
.lead-review { display: grid; grid-template-columns: minmax(0,1.4fr) minmax(260px,.6fr); grid-template-rows: auto 1fr; gap: 0 clamp(70px,8vw,125px); width: 100%; margin: clamp(64px,5.6vw,82px) 0 0; }
.lead-review > span { grid-column: 1; color: var(--wine); font: 400 5.8rem/.68 var(--serif); }
.lead-review > p { grid-column: 1; max-width: 900px; margin-top: 24px; color: rgba(33,29,28,.88); font: italic 400 clamp(2.2rem,3.2vw,3.5rem)/1.09 var(--serif); letter-spacing: -.022em; }
.lead-review footer { grid-column: 2; grid-row: 1 / span 2; display: flex; align-items: flex-start; flex-direction: column; padding-left: clamp(28px,3vw,48px); border-left: 1px solid var(--line); }
.lead-review cite { color: rgba(33,29,28,.54); font-size: var(--font-size-caption); font-style: normal; letter-spacing: .1em; line-height: 1.6; text-transform: uppercase; }
.lead-review footer .button-text { margin-top: auto; }
.lead-review footer .button-primary { align-self: stretch; margin-top: 22px; }
.experience-principles { display: grid; grid-template-columns: repeat(3,1fr); width: 100%; margin: clamp(56px,5vw,72px) 0 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.experience-principles p { display: flex; align-items: center; justify-content: center; min-height: 82px; padding: 20px; font: 400 1.35rem/1.05 var(--serif); text-align: center; }
.experience-principles p + p { border-left: 1px solid var(--line); }

/* Visit — utility scene */
.visit { padding: var(--space-section-compact) max(var(--gutter),calc((100vw - var(--container))/2)); background: var(--paper-muted); }
.visit-layout { display: grid; grid-template-columns: minmax(340px,.72fr) minmax(520px,1.28fr); gap: clamp(56px,7vw,110px); align-items: start; }
.visit-intro { position: sticky; top: calc(var(--header-h) + 45px); }
.visit-intro .eyebrow { margin-bottom: 23px; }
.visit h2 { font: 400 clamp(3.2rem,4vw,4.55rem)/.96 var(--serif); letter-spacing: -.043em; text-wrap: balance; }
.visit h2 em { color: var(--wine); }
.visit-location { margin-top: 27px; color: rgba(33,29,28,.62); font-size: .68rem; font-weight: 600; letter-spacing: .09em; text-transform: uppercase; }
.visit-journey { margin-top: 58px; border-top: 1px solid rgba(33,29,28,.25); }
.visit-journey article { display: grid; grid-template-columns: 46px 1fr; padding: 20px 0; border-bottom: 1px solid rgba(33,29,28,.25); }
.visit-journey article > span { padding-top: .3125rem; color: var(--wine); font-size: var(--font-size-caption); font-weight: 600; }
.visit-journey h3 { margin-bottom: 7px; font: 400 1.5rem/1 var(--serif); }
.visit-journey p { color: rgba(33,29,28,.62); font-size: var(--font-size-body-small); line-height: 1.55; }
.visit-place { min-width: 0; }
.clinic-frame { aspect-ratio: 16 / 10; min-height: 0; background: linear-gradient(145deg,#aaa59c,#60625e); }
.clinic-photo { position: absolute; inset: 0; object-position: 50% 46%; filter: saturate(.74) contrast(1.01) brightness(.94); }
.visit-details { padding-top: clamp(36px,4vw,52px); }
.visit-details-top { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: clamp(36px,5vw,72px); align-items: end; }
.visit-details .eyebrow { margin-bottom: 16px; }
.visit-details h3 { margin-bottom: 20px; font: 400 clamp(2.4rem,3vw,3rem)/1 var(--serif); }
.visit-details address { color: rgba(33,29,28,.7); font: 400 1.08rem/1.48 var(--serif); }
.visit-actions { display: flex; align-items: center; gap: 24px; }
.visit-facts { display: grid; grid-template-columns: repeat(2,1fr); margin-top: 38px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.visit-facts div { padding: var(--space-xs) 1.25rem var(--space-xs) 0; font-size: var(--font-size-body-small); line-height: 1.5; }
.visit-facts div + div { padding-left: 24px; border-left: 1px solid var(--line); }
.visit-facts dt { margin-bottom: 5px; color: rgba(33,29,28,.5); }
.visit-wayfinding { display: grid; grid-template-columns: minmax(260px,1.2fr) minmax(190px,.8fr); gap: clamp(28px,4vw,52px); align-items: center; margin: 40px 0 0; }
.visit-wayfinding img { aspect-ratio: 16 / 9; height: auto; object-position: 50% 50%; filter: saturate(.76) contrast(1.01) brightness(.98); }
.visit-wayfinding figcaption .eyebrow { margin-bottom: 13px; }
.visit-wayfinding figcaption > p:last-child { max-width: 16.875rem; color: rgba(33,29,28,.64); font-size: var(--font-size-body-small); line-height: 1.6; }

/* Conversion */
.appointment { display: grid; grid-template-columns: minmax(20rem,.9fr) minmax(28.75rem,1.1fr); gap: clamp(4.25rem,8vw,7.8125rem); align-items: start; padding: var(--space-section-compact) max(var(--gutter),calc((100vw - var(--container))/2)); background: var(--wine-deep); color: var(--white); }
.appointment-intro { position: relative; }
.appointment-intro .eyebrow { margin-bottom: 23px; }
.appointment h2 { margin-bottom: 1.875rem; font: 400 var(--font-size-form-title)/1.03 var(--serif); letter-spacing: -.047em; }
.appointment h2 em { display: inline-block; color: var(--rose); white-space: nowrap; }
.appointment-intro > p:not(.eyebrow):not(.appointment-phone) { max-width: 31.25rem; color: rgba(255,255,255,.7); font-size: var(--font-size-body); line-height: 1.7; }
.appointment-assurance { max-width: 520px; margin-top: 42px; border-top: 1px solid var(--line-light); }
.appointment-assurance p { position: relative; padding: .875rem 0 .875rem 1.3125rem; border-bottom: var(--border-hairline) solid var(--line-light); font-size: var(--font-size-body-small); }
.appointment-assurance p::before { position: absolute; top: 50%; left: 1px; width: 5px; height: 5px; border-radius: 50%; background: var(--rose); content: ""; transform: translateY(-50%); }
.appointment-phone { display: grid; gap: 8px; margin-top: 34px; }
.appointment-phone > span { color: rgba(255,255,255,.54); font: italic 400 1rem/1.4 var(--serif); }
.appointment-phone a { display: inline-flex; align-items: center; gap: 15px; justify-self: start; padding-bottom: 6px; border-bottom: 1px solid rgba(255,255,255,.34); color: #fff; font: 400 1.6rem/1 var(--serif); }
.form-shell { border: 1px solid rgba(255,255,255,.16); border-top: 3px solid var(--rose); background: var(--paper-light); color: var(--ink); }
.appointment-form { padding: clamp(42px,4vw,52px); }
.appointment-form header { display: flex; justify-content: space-between; margin-bottom: 32px; padding-bottom: 15px; border-bottom: 1px solid var(--line); font-size: .65rem; font-weight: 600; letter-spacing: .11em; text-transform: uppercase; }
.appointment-form header span:last-child { color: rgba(33,29,28,.42); }
.field { position: relative; margin-bottom: 25px; }
.field label { display: block; margin-bottom: var(--space-3xs); font-size: .68rem; font-weight: 600; letter-spacing: .05em; }
.field input, .field select, .field textarea { width: 100%; border: 0; border-bottom: 1px solid rgba(33,29,28,.27); border-radius: 0; outline: 0; background: transparent; color: var(--ink); font: 400 1.15rem/1.25 var(--serif); transition: border-color .2s; }
.field input, .field select { height: 46px; }
.field textarea { min-height: 82px; padding-top: 9px; resize: vertical; }
.field input:focus, .field select:focus, .field textarea:focus { border-color: var(--wine); }
.field input::placeholder, .field textarea::placeholder { color: rgba(33,29,28,.34); }
.field .invalid { border-color: #a72840; }
.error { display: block; min-height: .875rem; margin-top: .25rem; color: var(--error); font-size: var(--font-size-caption); }
.optional-details { margin: 2px 0 25px; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.optional-details summary { display: flex; justify-content: space-between; padding: 16px 0; cursor: pointer; font-size: .68rem; font-weight: 600; letter-spacing: .05em; list-style: none; }
.optional-details summary::-webkit-details-marker { display: none; }
.optional-details summary::before { margin-right: 10px; content: "+"; }
.optional-details[open] summary::before { content: "−"; }
.optional-details summary span { margin-left: auto; color: rgba(33,29,28,.43); }
.optional-fields { padding: 14px 0 4px; }
.consent-field { display: grid; grid-template-columns: 18px 1fr; gap: 10px; margin-bottom: 23px; }
.consent-field input { width: 16px; height: 16px; margin: 1px 0 0; accent-color: var(--wine); }
.consent-field label { color: rgba(33,29,28,.74); font-size: .72rem; line-height: 1.5; }
.consent-field .error { grid-column: 2; }
.button-submit { width: 100%; border: 0; background: var(--wine); color: #fff; cursor: pointer; }
.button-submit::before { background: var(--wine-deep); }
.form-note { margin-top: 13px; color: rgba(33,29,28,.58); font-size: .64rem; line-height: 1.5; text-align: center; }
.success-message { display: flex; flex-direction: column; justify-content: center; min-height: 620px; padding: clamp(42px,5vw,60px); }
.success-message > span { margin-bottom: 24px; color: var(--wine); font-size: .56rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.success-message h3 { max-width: 520px; margin-bottom: 22px; font: 400 clamp(2.8rem,4vw,3.5rem)/.98 var(--serif); }
.success-message p { margin-bottom: 28px; color: rgba(33,29,28,.64); font-size: .75rem; line-height: 1.65; }
.success-message .button { align-self: flex-start; }

/* FAQ and footer */
.faq { padding: clamp(5.25rem,6.5vw,7.5rem) max(var(--gutter),calc((100vw - var(--container))/2)); background: var(--paper-light); }
.faq-heading { text-align: center; }
.faq-heading .eyebrow { margin-bottom: 22px; }
.faq-heading h2 { font: 400 var(--font-size-section-title)/.95 var(--serif); letter-spacing: -.043em; }
.faq-heading em { color: var(--wine); }
.accordion { width: min(100%,60rem); margin: clamp(42px,4vw,58px) auto 0; }
.accordion-item { border-top: 1px solid var(--line); }
.accordion-item:last-child { border-bottom: 1px solid var(--line); }
.accordion-item h3 { margin: 0; }
.accordion-trigger { display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 88px; padding: 0 4px 0 0; border: 0; background: transparent; cursor: pointer; font: 400 clamp(1.08rem,1.35vw,1.28rem)/1.2 var(--serif); letter-spacing: -.015em; text-align: left; transition: color .25s var(--ease); }
.accordion-trigger:hover, .accordion-trigger[aria-expanded="true"] { color: var(--wine); }
.accordion-trigger:focus-visible { outline: 2px solid rgba(107,33,55,.45); outline-offset: -6px; }
.accordion-trigger span { padding-right: 28px; }
.accordion-trigger i { position: relative; flex: 0 0 18px; width: 18px; height: 18px; color: var(--wine); }
.accordion-trigger i::before, .accordion-trigger i::after { position: absolute; top: 8.5px; left: 1px; width: 16px; height: 1px; background: currentColor; content: ""; transition: transform .3s var(--ease); }
.accordion-trigger i::after { transform: rotate(90deg); }
.accordion-trigger[aria-expanded="true"] i::after { transform: rotate(0); }
.accordion-panel { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .4s var(--ease); }
.accordion-panel[aria-hidden="false"] { grid-template-rows: 1fr; }
.accordion-panel > div { overflow: hidden; opacity: 0; transform: translateY(-6px); transition: opacity .25s linear, transform .35s var(--ease); }
.accordion-panel[aria-hidden="false"] > div { opacity: 1; transform: none; transition-delay: .08s; }
.accordion-panel p { max-width: 47.5rem; padding: 0 4rem 1.875rem 0; color: rgba(33,29,28,.64); font-size: var(--font-size-body); line-height: 1.72; }
.site-footer { padding: clamp(6rem,8vw,8.25rem) max(var(--gutter),calc((100vw - var(--container))/2)) 2rem; background: var(--wine-deep); color: var(--white); }
.footer-inner { width: 100%; max-width: var(--container); margin-inline: auto; }
.footer-primary { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(340px,.75fr); gap: clamp(76px,9vw,145px); align-items: end; padding-bottom: clamp(82px,7vw,110px); }
.footer-brand { display: block; width: max-content; margin-bottom: clamp(46px,5vw,68px); }
.footer-brand img { width: auto; height: 62px; filter: brightness(0) invert(1); }
.footer-closing > p { max-width: 850px; font: 400 clamp(3.4rem,4.8vw,5.65rem)/.93 var(--serif); letter-spacing: -.048em; }
.footer-closing em { color: var(--rose); }
.footer-conversion { padding-top: 28px; border-top: 1px solid var(--line-light); }
.footer-label { margin-bottom: var(--space-sm); color: rgba(255,255,255,.56); font-size: .66rem; font-weight: 600; letter-spacing: .13em; text-transform: uppercase; }
.footer-appointment { width: 100%; min-height: 64px; padding-inline: 27px; }
.footer-confirmation { display: flex; align-items: center; gap: .625rem; margin-top: .9375rem; color: rgba(255,255,255,.58); font-size: .68rem; letter-spacing: .075em; text-transform: uppercase; }
.footer-confirmation i { flex: 0 0 6px; width: 6px; height: 6px; border-radius: 50%; background: var(--rose); box-shadow: 0 0 0 4px rgba(217,161,172,.1); }
.footer-call { display: grid; gap: 9px; margin-top: 38px; }
.footer-call > span { color: rgba(255,255,255,.55); font: italic 400 1rem/1.35 var(--serif); }
.footer-call a { position: relative; justify-self: start; padding-bottom: 8px; font: 400 clamp(1.65rem,2vw,2rem)/1 var(--serif); }
.footer-call a::after { position: absolute; right: 0; bottom: 0; left: 0; height: var(--border-hairline); background: rgba(255,255,255,.55); content: ""; transform: scaleX(0); transform-origin: right; transition: transform var(--duration-cta-underline) var(--ease-cta); }
.footer-call a:hover::after, .footer-call a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.footer-call small { color: rgba(255,255,255,.54); font-size: .68rem; }
.footer-utility { display: grid; grid-template-columns: 1.2fr 1fr .8fr; gap: clamp(54px,8vw,120px); padding: 38px 0 62px; border-top: 1px solid var(--line-light); }
.footer-utility > div > p:last-child, .footer-utility address { max-width: 360px; color: rgba(255,255,255,.63); font-size: var(--font-size-nav); line-height: 1.65; }
.footer-utility nav > div { display: flex; align-items: flex-start; flex-direction: column; gap: 9px; }
.footer-utility nav a { position: relative; color: rgba(255,255,255,.7); font-size: var(--font-size-nav); transition: color .25s var(--ease), transform .25s var(--ease); }
.footer-utility nav a::after { position: absolute; right: 0; bottom: -3px; left: 0; height: 1px; background: var(--rose); content: ""; transform: scaleX(0); transform-origin: right; transition: transform .25s var(--ease); }
.footer-utility nav a:hover, .footer-utility nav a:focus-visible { color: #fff; transform: translateX(5px); }
.footer-utility nav a:hover::after, .footer-utility nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.footer-bottom { display: flex; justify-content: center; padding-top: 25px; border-top: 1px solid var(--line-light); }
.footer-bottom p { color: rgba(255,255,255,.52); font-size: var(--font-size-nav); line-height: 1.62; text-align: center; }
.mobile-conversion { display: none; }

/* Motion */
[data-hero], [data-reveal] { opacity: 1; transform: none; }
.motion-enabled [data-hero] { opacity: 0; transform: translateY(22px); transition: opacity .7s, transform .8s var(--ease); }
.motion-enabled.is-ready [data-hero] { opacity: 1; transform: none; }
.motion-enabled .headline-line > span { transform: translateY(112%); transition: transform .9s var(--ease); }
.motion-enabled.is-ready .headline-line > span { transform: none; }
.motion-enabled.has-gsap-hero .hero-heading, .motion-enabled.has-gsap-hero .hero-intro, .motion-enabled.has-gsap-hero .hero-portrait, .motion-enabled.has-gsap-hero .hero-trust { opacity: 1; transform: none; transition: none; }
.motion-enabled.has-gsap-hero #hero-heading { visibility: hidden; }
.motion-enabled.has-gsap-hero .hero-heading .eyebrow, .motion-enabled.has-gsap-hero .hero-intro > p:first-child, .motion-enabled.has-gsap-hero .hero-actions, .motion-enabled.has-gsap-hero .hero-assurance, .motion-enabled.has-gsap-hero .hero-portrait, .motion-enabled.has-gsap-hero .hero-trust { opacity: 0; filter: blur(.625rem); transform: translateY(1.375rem); }
.hero-word { will-change: transform, opacity; }
.motion-enabled.is-ready .hero-heading { transition-delay: .03s; }
.motion-enabled.is-ready .headline-line:first-child > span { transition-delay: .12s; }
.motion-enabled.is-ready .headline-accent > span { transition-delay: .22s; }
.motion-enabled.is-ready .hero-portrait { transition-delay: .18s; }
.motion-enabled.is-ready .hero-intro { transition-delay: .42s; }
.motion-enabled.is-ready .hero-trust { transition-delay: .56s; }
.motion-enabled [data-reveal] { opacity: 0; transform: translateY(26px); transition: opacity .58s, transform .68s var(--ease); }
.motion-enabled [data-reveal].is-visible { opacity: 1; transform: none; }
.motion-enabled .experience-photo[data-reveal] { opacity: 1; clip-path: inset(0 0 100% 0); transform: none; transition: clip-path var(--duration-image-reveal) var(--ease-image-reveal); }
.motion-enabled .experience-photo[data-reveal] img { transform: scale(1.035); transition: transform var(--duration-image-settle) var(--ease); }
.motion-enabled .experience-photo[data-reveal].is-visible { clip-path: inset(0); }
.motion-enabled .experience-photo[data-reveal].is-visible img { transform: scale(1); }
.motion-enabled .clinic-frame[data-reveal] { opacity: 1; clip-path: inset(0 0 100% 0); transform: none; transition: clip-path var(--duration-image-reveal) var(--ease-image-reveal); }
.motion-enabled .clinic-frame[data-reveal] img { transform: scale(1.035); transition: transform var(--duration-image-settle) var(--ease); }
.motion-enabled .clinic-frame[data-reveal].is-visible { clip-path: inset(0); }
.motion-enabled .clinic-frame[data-reveal].is-visible img { transform: scale(1); }
.motion-enabled .visit-intro[data-reveal] .visit-journey article { opacity: 0; transform: translateY(10px); transition: opacity .4s linear, transform .5s var(--ease); }
.motion-enabled .visit-intro[data-reveal].is-visible .visit-journey article { opacity: 1; transform: none; }
.motion-enabled .visit-intro[data-reveal].is-visible .visit-journey article:nth-child(2) { transition-delay: .08s; }
.motion-enabled .visit-intro[data-reveal].is-visible .visit-journey article:nth-child(3) { transition-delay: .16s; }
.motion-enabled .form-shell[data-reveal] { transition-delay: .08s; }
.motion-enabled .form-shell[data-reveal] .appointment-form > * { opacity: 0; transform: translateY(8px); transition: opacity .3s linear, transform .4s var(--ease); }
.motion-enabled .form-shell[data-reveal].is-visible .appointment-form > * { opacity: 1; transform: none; }
.motion-enabled .form-shell[data-reveal].is-visible .appointment-form > *:nth-child(2) { transition-delay: .06s; }
.motion-enabled .form-shell[data-reveal].is-visible .appointment-form > *:nth-child(3) { transition-delay: .1s; }
.motion-enabled .form-shell[data-reveal].is-visible .appointment-form > *:nth-child(4) { transition-delay: .14s; }
.motion-enabled .form-shell[data-reveal].is-visible .appointment-form > *:nth-child(n+5) { transition-delay: .18s; }
.motion-enabled .experience-principles[data-reveal] p { opacity: 0; transform: translateY(12px); transition: opacity .4s linear, transform .5s var(--ease); }
.motion-enabled .experience-principles[data-reveal].is-visible p { opacity: 1; transform: none; }
.motion-enabled .experience-principles[data-reveal].is-visible p:nth-child(2) { transition-delay: .08s; }
.motion-enabled .experience-principles[data-reveal].is-visible p:nth-child(3) { transition-delay: .16s; }
.motion-enabled .accordion[data-reveal] .accordion-item { opacity: 0; transform: translateY(10px); transition: opacity .4s linear, transform .5s var(--ease); }
.motion-enabled .accordion[data-reveal].is-visible .accordion-item { opacity: 1; transform: none; }
.motion-enabled .accordion[data-reveal].is-visible .accordion-item:nth-child(2) { transition-delay: .07s; }
.motion-enabled .accordion[data-reveal].is-visible .accordion-item:nth-child(3) { transition-delay: .14s; }
.motion-enabled .accordion[data-reveal].is-visible .accordion-item:nth-child(4) { transition-delay: .21s; }
.motion-enabled .accordion[data-reveal].is-visible .accordion-item:nth-child(5) { transition-delay: .28s; }
.motion-enabled .footer-utility[data-reveal] > * { opacity: 0; transform: translateY(8px); transition: opacity .35s linear, transform .45s var(--ease); }
.motion-enabled .footer-utility[data-reveal].is-visible > * { opacity: 1; transform: none; }
.motion-enabled .footer-utility[data-reveal].is-visible > *:nth-child(2) { transition-delay: .07s; }
.motion-enabled .footer-utility[data-reveal].is-visible > *:nth-child(3) { transition-delay: .14s; }
.motion-enabled .doctor-chapter > * { opacity: 0; transform: translateY(12px); transition: opacity .3s linear, transform .42s var(--ease); }
.motion-enabled .doctor-chapter.is-active > * { opacity: 1; transform: none; }
.motion-enabled .doctor-chapter.is-active > *:nth-child(1) { transition-delay: .08s; }
.motion-enabled .doctor-chapter.is-active > *:nth-child(2) { transition-delay: .14s; }
.motion-enabled .doctor-chapter.is-active > *:nth-child(3) { transition-delay: .2s; }

@media (min-width: 901px) {
  .care-row > p { padding-right: calc(var(--row-shift) + clamp(2rem,2.4vw,3rem)); }
}

@media (min-width: 1101px) {
  .doctor-narrative { transform: translateX(clamp(-3rem,-2.5vw,-2rem)); }
}

@media (max-width: 1100px) {
  :root { --page: calc(100vw - 4rem); --font-size-hero: clamp(5rem,8.7vw,7rem); }
  .care-section { padding-inline: 5vw; }
  .doctor-sticky { padding-inline: var(--gutter); }
  .visit-layout { grid-template-columns: minmax(300px,.7fr) minmax(0,1.3fr); gap: 5vw; }
  .appointment { gap: 5vw; }
}

@media (min-width: 721px) and (max-height: 800px) {
  :root { --font-size-hero: clamp(4.8rem,7.8vw,6.5rem); }
  .hero-inner { row-gap: 24px; padding-top: calc(var(--header-h) + 30px); padding-bottom: 18px; }
  .portrait-stage { height: 53vh; min-height: 350px; }
  .hero-intro > p:first-child { margin-bottom: 28px; font-size: 1rem; }
  .doctor-frame { height: 64vh; }
  .doctor-chapter h2 { font-size: clamp(3.65rem,5vw,4.5rem); }
  .doctor-chapter h3 { font-size: clamp(3.1rem,4.5vw,4.5rem); }
}

@media (min-width: 901px) and (max-width: 1100px) {
  :root { --font-size-hero: clamp(4.8rem,8.35vw,5.75rem); }
  .hero-inner { column-gap: 20px; }
  .hero-primary { min-width: 248px; }
  .hero-actions { gap: 20px; }
  .hero-trust { font-size: .55rem; }
  .doctor-narrative { grid-column: 6 / -1; }
  .doctor-chapter h2 { font-size: clamp(3.4rem,5.6vw,4.35rem); }
  .doctor-chapter h3 { font-size: clamp(2.9rem,4.5vw,3.85rem); }
  .visit-details-top { display: block; }
  .visit-actions { margin-top: 30px; }
  .appointment h2 { font-size: clamp(2.55rem,4.2vw,3.2rem); }
}

/* Shared 900px layout shift */
@media (max-width: 900px) {
  :root {
    --header-h: 4.25rem;
    --header-h-scrolled: 4.25rem;
    --font-size-hero: clamp(4.1rem,9.2vw,5.2rem);
    --font-size-section-title: clamp(3.25rem,7vw,4.6rem);
    --font-size-section-title-wide: clamp(3.4rem,7.2vw,4.6rem);
    --font-size-form-title: clamp(3.3rem,7vw,4.45rem);
  }
  html { scroll-padding-top: var(--header-h); }
  .site-header, .site-header.is-scrolled { height: var(--header-h); border-bottom-color: var(--line); background: rgba(243,238,230,.95); color: var(--ink); backdrop-filter: blur(.75rem); }
  .site-header-inner { grid-template-columns: 1fr auto; width: var(--page); }
  .site-header.on-dark, .site-header.is-scrolled.on-dark { border-bottom-color: rgba(255,255,255,.13); background: rgba(46,14,25,.95); color: #fff; }
  body.menu-open .site-header { border-bottom-color: rgba(255,255,255,.13); background: var(--wine-deep); color: #fff; }
  body.menu-open .site-header .brand img { filter: brightness(0) invert(1); }
  .brand img, .site-header.is-scrolled .brand img { height: 37px; }
  .primary-nav, .header-call, .header-actions > .button { display: none; }
  .header-actions { grid-column: 2; }
  .menu-toggle { display: block; }

  .hero { min-height: auto; }
  .hero-ambient { top: -20vw; right: -60vw; width: 140vw; height: 140vw; opacity: .72; }
  .hero-inner { display: flex; flex-direction: column; row-gap: 0; min-height: auto; padding: calc(var(--header-h) + 56px) 0 48px; }
  .hero-heading { order: 1; align-self: stretch; width: 100%; text-align: left; }
  .hero-heading .eyebrow { margin-bottom: 28px; }
  .hero h1 { line-height: .95; }
  .hero-intro { order: 2; padding: 20px 0 0; }
  .hero-intro > p:first-child { margin-bottom: 25px; font-size: 1.04rem; }
  .hero-actions { align-items: stretch; flex-direction: column; gap: 12px; }
  .hero-actions .button-primary { width: 100%; min-width: 0; }
  .hero-actions .button-text { align-self: flex-start; }
  .hero-assurance { margin-top: 15px; }
  .hero-portrait { order: 3; align-self: stretch; width: 100%; margin-top: 36px; }
  .portrait-stage { aspect-ratio: 5 / 4; height: auto; min-height: 0; clip-path: inset(0 0 0 0 round 46% 46% 2px 2px / 18% 18% 2px 2px); }
  .hero-trust { order: 4; display: grid; grid-template-columns: minmax(0,1.25fr) 4px minmax(0,.85fr) 4px minmax(0,1.1fr); align-items: start; width: 100%; margin-top: 28px; padding-top: 16px; gap: 8px; font-size: .55rem; }
  .hero-trust i, .hero-trust i:last-of-type { display: block; margin-top: .35em; }
  .hero-trust span { min-width: 0; }
  .hero-trust span:nth-of-type(2) { text-align: center; }
  .hero-trust span:last-child { flex-basis: auto; text-align: right; }

  .care-section { padding: var(--space-section-tablet) max(var(--gutter),calc((100vw - var(--container))/2)); }
  .care-intro { display: block; }
  .care-intro > div { max-width: 730px; }
  .care-intro .section-copy { max-width: 560px; margin-top: 28px; padding: 0; }
  .care-index { margin-top: 66px; }
  .care-row { display: block; min-height: 0; padding: 34px 0; }
  .care-row h3 { margin-bottom: 14px; font-size: clamp(1.75rem,3.2vw,2.15rem); }
  .care-row > p { justify-self: start; max-width: 600px; }
  .care-help { align-items: flex-start; flex-direction: column; gap: 10px; }

  .doctor { height: auto; padding: var(--space-section-tablet) max(var(--gutter),calc((100vw - var(--container))/2)); }
  .doctor-sticky { position: relative; display: flex; flex-direction: column; width: 100%; min-height: 0; overflow: visible; padding: 0; }
  .doctor-progress, .doctor-narrative { display: none; }
  .doctor-portrait { order: 1; align-self: flex-start; width: min(100%,760px); }
  .doctor-frame { aspect-ratio: 16 / 10; height: auto; min-height: 0; clip-path: inset(0 0 0 0 round 48% 48% 2px 2px / 16% 16% 2px 2px) !important; transform: none !important; }
  .doctor-mobile-story { order: 2; display: block; width: min(100%,760px); margin-top: 44px; }
  .doctor-mobile-story .eyebrow { margin-bottom: 19px; }
  .doctor-mobile-story h2 { margin-bottom: 20px; font: 400 clamp(2.3rem,10.25vw,5rem)/.94 var(--serif); letter-spacing: -.048em; }
  .doctor-mobile-story h2 em { color: var(--rose); }
  .doctor-mobile-story .doctor-role { margin-bottom: 27px; color: rgba(255,255,255,.68); font-size: .68rem; letter-spacing: .06em; line-height: 1.55; text-transform: uppercase; }
  .doctor-mobile-story > p:not(.eyebrow):not(.doctor-role) { max-width: 650px; color: rgba(255,255,255,.7); font-size: .84rem; line-height: 1.7; }
  .doctor-mobile-story blockquote { max-width: 720px; margin-top: 36px; padding-top: 31px; border-top: 1px solid var(--line-light); font: italic 400 clamp(2.1rem,4.8vw,3rem)/1.1 var(--serif); }
  .doctor-credentials { order: 3; width: 100%; margin-top: 46px; }
  .doctor-cta { order: 4; align-self: flex-start; margin-top: 34px; }

  .experience { padding: var(--space-section-tablet) max(var(--gutter),calc((100vw - var(--container))/2)); }
  .experience-top { display: block; }
  .experience-heading { max-width: 730px; }
  .experience-proof { justify-self: start; width: 100%; max-width: 560px; margin-top: 40px; }
  .experience-photo { margin-top: 62px; }
  .experience-photo img { aspect-ratio: 16 / 10; height: auto; object-fit: cover; }
  .lead-review { display: block; margin-top: 74px; }
  .lead-review > span { display: block; font-size: 5rem; }
  .lead-review > p { max-width: 760px; margin-top: 22px; font-size: clamp(2.2rem,5vw,3rem); }
  .lead-review footer { display: flex; margin-top: 38px; padding: 28px 0 0; border-top: 1px solid var(--line); border-left: 0; }
  .lead-review footer .button-text { margin-top: 28px; }
  .lead-review footer .button-primary { align-self: flex-start; min-width: 280px; }
  .experience-principles { grid-template-columns: 1fr; margin-top: 62px; }
  .experience-principles p { justify-content: flex-start; min-height: 70px; padding: 18px 0; text-align: left; }
  .experience-principles p + p { border-top: 1px solid var(--line); border-left: 0; }

  .visit { padding: var(--space-section-tablet) max(var(--gutter),calc((100vw - var(--container))/2)); }
  .visit-layout { display: flex; flex-direction: column; gap: 62px; }
  .visit-intro { position: relative; top: auto; width: min(100%,730px); }
  .visit h2 { font-size: clamp(3.35rem,7.1vw,4.5rem); }
  .visit-journey { max-width: 660px; margin-top: 48px; }
  .visit-place { width: 100%; }
  .clinic-frame { aspect-ratio: 16 / 10; }
  .visit-details { padding-top: 40px; }
  .visit-details-top { display: block; }
  .visit-actions { margin-top: 30px; }
  .visit-wayfinding { grid-template-columns: minmax(260px,1.1fr) minmax(210px,.9fr); }

  .appointment { display: block; padding: var(--space-section-tablet) max(var(--gutter),calc((100vw - var(--container))/2)); }
  .appointment-intro { width: min(100%,730px); }
  .appointment-intro > p:not(.eyebrow):not(.appointment-phone) { max-width: 560px; }
  .appointment-assurance { max-width: 600px; }
  .form-shell { width: min(100%,760px); margin-top: 52px; }

  .faq { padding: var(--space-section-tablet) max(var(--gutter),calc((100vw - var(--container))/2)); }
  .accordion { width: 100%; margin-top: 54px; }

  .site-footer { padding: var(--space-section-tablet) max(var(--gutter),calc((100vw - var(--container))/2)) 1.875rem; }
  .footer-primary { display: block; padding-bottom: 68px; }
  .footer-closing { max-width: 760px; }
  .footer-brand { margin-bottom: 48px; }
  .footer-closing > p { font-size: clamp(3.2rem,7.5vw,4.6rem); }
  .footer-conversion { width: min(100%,620px); margin-top: 58px; }
  .footer-utility { grid-template-columns: 1fr; gap: 0; padding: 0 0 50px; }
  .footer-utility > div, .footer-utility > nav { padding: 25px 0; border-bottom: 1px solid var(--line-light); }
  .footer-utility > nav:last-child { border-bottom: 0; }
  .footer-utility .footer-label { margin-bottom: 12px; }
  .footer-utility nav > div { flex-direction: row; flex-wrap: wrap; gap: 12px 28px; }
  .footer-bottom { justify-content: flex-start; }
  .footer-bottom p { text-align: left; }
}

/* Mobile-first composition */
@media (max-width: 720px) {
  :root {
    --site--margin: 1.125rem;
    --page: calc(100vw - (2 * var(--site--margin)));
    --font-size-meta: .58rem;
    --font-size-hero: clamp(3rem,14vw,4.1rem);
    --font-size-section-title: clamp(2.85rem,11.5vw,3.55rem);
    --font-size-section-title-wide: clamp(2.9rem,11.5vw,3.45rem);
    --font-size-form-title: clamp(2.4rem,10.8vw,3.35rem);
    --font-size-row-title: 1.7rem;
    --mobile-cta-h: 3.875rem;
  }
  body { padding-bottom: calc(var(--mobile-cta-h) + env(safe-area-inset-bottom)); }
  .site-header-inner { width: var(--page); }

  .hero-inner { display: flex; flex-direction: column; row-gap: 0; width: var(--page); min-height: auto; padding: 6.5rem 0 2.375rem; }
  .hero h1 { line-height: .95; }
  .hero-intro { padding-top: 18px; }
  .hero-intro > p:first-child { margin-bottom: 19px; font-size: 1rem; }
  .hero-portrait { margin-top: 29px; }
  .portrait-stage { aspect-ratio: 4 / 5; height: auto; min-height: 0; clip-path: inset(0 0 0 0 round 46% 46% 2px 2px / 18% 18% 2px 2px); }
  .hero-trust { grid-template-columns: minmax(0,1fr) 4px minmax(0,.72fr); font-size: .54rem; }
  .hero-trust i:last-of-type { display: none; }
  .hero-trust span:last-child { grid-column: 1 / -1; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); text-align: left; }

  .section-kicker { margin-bottom: 35px; }
  .care-section { padding: var(--space-section-mobile) var(--gutter); }
  .care-intro .eyebrow { margin-bottom: 18px; }
  .care-intro h2 { line-height: .98; }
  .care-intro .section-copy { margin-top: 22px; }
  .care-index { margin-top: 48px; }
  .care-row { --row-shift: 7px; padding: 28px 0; }
  .care-row h3 { margin-bottom: 13px; }
  .care-row > p { font-size: .82rem; }
  .care-help { margin-top: 30px; }
  .care-help p { font-size: 1rem; }

  .doctor { padding: var(--space-section-mobile) var(--gutter); }
  .doctor-portrait { width: 100%; }
  .doctor-frame { aspect-ratio: 4 / 5; }
  .doctor-mobile-story { margin-top: 35px; }
  .doctor-mobile-story .eyebrow { margin-bottom: 17px; }
  .doctor-mobile-story h2 { margin-bottom: 17px; }
  .doctor-mobile-story .doctor-role { margin-bottom: 23px; font-size: .6rem; }
  .doctor-mobile-story > p:not(.eyebrow):not(.doctor-role) { font-size: .76rem; }
  .doctor-mobile-story blockquote { margin-top: 28px; padding-top: 25px; font-size: 1.9rem; }
  .doctor-credentials { order: 3; grid-template-columns: 1fr; width: 100%; margin-top: 34px; }
  .doctor-credentials div, .doctor-credentials div + div { display: grid; grid-template-columns: 110px 1fr; padding: 13px 0; border-left: 0; border-bottom: 1px solid var(--line-light); }
  .doctor-credentials dt { font-size: 1rem; }
  .doctor-credentials dd { align-self: center; }
  .doctor-cta { align-self: stretch; margin-top: 29px; }

  .experience { padding: var(--space-section-mobile) var(--gutter); }
  .experience-heading .eyebrow { margin-bottom: 17px; }
  .experience h2 { line-height: .98; }
  .experience-proof { margin-top: 32px; padding: 17px 0 18px; }
  .experience-proof-label { margin-bottom: 14px; }
  .experience-score { gap: 18px; }
  .experience-score strong { font-size: 3rem; }
  .experience-photo { margin-top: 42px; }
  .experience-photo img { aspect-ratio: 4 / 3; object-position: 58% 50%; }
  .lead-review { margin-top: 54px; }
  .lead-review > span { font-size: 4.5rem; }
  .lead-review > p { margin-top: 18px; font-size: 1.95rem; line-height: 1.1; }
  .lead-review footer { margin-top: 32px; padding-top: 24px; }
  .lead-review footer .button-text { margin-top: 24px; }
  .lead-review footer .button-primary { align-self: stretch; min-width: 0; margin-top: 19px; }
  .experience-principles { grid-template-columns: 1fr; margin-top: 42px; }
  .experience-principles p { min-height: 62px; padding: 16px 0; font-size: 1.1rem; }

  .visit { padding: var(--space-section-mobile) var(--gutter); }
  .visit-layout { gap: 40px; }
  .visit-intro .eyebrow { margin-bottom: 17px; }
  .visit h2 { font-size: clamp(2.8rem,11.4vw,3.4rem); line-height: .98; }
  .visit-location { margin-top: 22px; font-size: .62rem; }
  .visit-journey { margin-top: 38px; }
  .visit-journey article { grid-template-columns: 35px 1fr; padding: 15px 0; }
  .visit-journey h3 { font-size: 1.24rem; }
  .clinic-frame { aspect-ratio: 4 / 3; }
  .clinic-photo { object-position: 54% 48%; }
  .visit-details { padding-top: 32px; }
  .visit-details h3 { font-size: 2.35rem; }
  .visit-details address { font-size: 1rem; }
  .visit-actions { align-items: stretch; flex-direction: column; gap: 13px; }
  .visit-actions .button-primary { width: 100%; }
  .visit-actions .button-text { align-self: flex-start; }
  .visit-facts { grid-template-columns: 1fr; margin-top: 30px; }
  .visit-facts div { padding: 14px 0; }
  .visit-facts div + div { padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .visit-wayfinding { display: block; margin-top: 34px; }
  .visit-wayfinding figcaption { padding-top: 20px; }
  .visit-wayfinding figcaption > p:last-child { max-width: 330px; }

  .appointment { padding: var(--space-section-mobile) var(--gutter); }
  .appointment-intro .eyebrow { margin-bottom: 17px; }
  .appointment h2 { margin-bottom: 23px; line-height: 1.03; }
  .appointment-intro > p:not(.eyebrow):not(.appointment-phone) { font-size: .76rem; }
  .appointment-assurance { margin-top: 31px; }
  .appointment-assurance p { padding: 12px 0 12px 20px; font-size: .64rem; }
  .appointment-phone { margin-top: 27px; }
  .appointment-phone a { font-size: 1.35rem; }
  .form-shell { margin-top: 40px; }
  .appointment-form { padding: 32px 20px; }
  .appointment-form header { align-items: flex-start; flex-direction: column; gap: 5px; }
  .field label { font-size: .68rem; }
  .field input, .field select, .field textarea { font-size: 1.07rem; }
  .consent-field label { font-size: .7rem; }
  .success-message { min-height: 520px; padding: 42px 27px; }
  .success-message h3 { font-size: 2.8rem; }

  .faq { padding: var(--space-section-mobile) var(--gutter); }
  .faq-heading .eyebrow { margin-bottom: 17px; }
  .accordion { margin-top: 42px; }
  .accordion-trigger { min-height: 76px; font-size: 1.08rem; }
  .accordion-panel p { padding: 0 42px 25px 0; font-size: .74rem; }
  .site-footer { padding: 4.875rem var(--gutter) 1.625rem; }
  .footer-brand { margin-bottom: 38px; }
  .footer-brand img { height: 54px; }
  .footer-closing > p { font-size: clamp(2.75rem,12.5vw,3.5rem); line-height: .96; }
  .footer-primary { padding-bottom: 62px; }
  .footer-conversion { margin-top: 48px; }
  .footer-appointment { min-height: 62px; }
  .footer-call { margin-top: 34px; }
  .footer-call a { font-size: 1.65rem; }
  .footer-utility { padding-bottom: 42px; }
  .footer-utility nav > div { align-items: flex-start; flex-direction: column; gap: 12px; }
  .footer-utility nav a, .footer-bottom p { font-size: var(--font-size-nav); }
  .mobile-conversion { position: fixed; right: 0; bottom: 0; left: 0; z-index: var(--z-mobile-cta); display: grid; grid-template-columns: 31% 69%; min-height: calc(var(--mobile-cta-h) + env(safe-area-inset-bottom)); padding-bottom: env(safe-area-inset-bottom); background: var(--black); color: var(--white); box-shadow: 0 -.5rem 1.5rem rgba(0,0,0,.1); transition: transform var(--duration-medium) var(--ease); }
  .mobile-conversion > a { display: flex; align-items: center; justify-content: center; gap: var(--space-3xs); font-size: var(--font-size-button-compact); font-weight: 600; letter-spacing: .07em; text-transform: uppercase; }
  .mobile-conversion > a:first-child { border-right: 1px solid rgba(255,255,255,.15); }
  .mobile-conversion > a:last-child { justify-content: space-between; padding: 0 19px; background: var(--wine); }
  body.hero-in-view .mobile-conversion, body.appointment-in-view .mobile-conversion, body.footer-in-view .mobile-conversion { transform: translateY(110%); }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
  .button:hover .cta-icon svg:first-child, .button:focus-visible .cta-icon svg:first-child { transform: none; opacity: 1; }
  .button:hover .cta-icon svg:nth-child(2), .button:focus-visible .cta-icon svg:nth-child(2) { transform: translate3d(-110%,0,0); opacity: 0; }
}
