:root {
  --clay: #9e5b49;
  --clay-deep: #743f34;
  --blush: #e5c7b9;
  --cream: #f5efe6;
  --paper: #fcfaf6;
  --ink: #3a2925;
  --line: rgba(58, 41, 37, .16);
  --serif: Iowan Old Style, Baskerville, "Times New Roman", serif;
  --sans: "Avenir Next", Avenir, "Segoe UI", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 100px; background: var(--paper); }
body { margin: 0; min-width: 320px; background: radial-gradient(circle at 15% 12%, rgba(229,199,185,.32), transparent 30rem), var(--paper); color: var(--ink); font-family: var(--sans); line-height: 1.65; }
img { display: block; max-width: 100%; }
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
.skip-link { position: fixed; z-index: 100; top: 10px; left: 10px; padding: 10px 14px; transform: translateY(-150%); background: white; color: var(--clay-deep); }
.skip-link:focus { transform: none; }
.shell { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.section { padding-block: clamp(84px, 11vw, 160px); }

.site-header { position: fixed; z-index: 50; top: 18px; left: 50%; width: min(1040px, calc(100% - 40px)); min-height: 68px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 9px 14px 9px 18px; border: 1px solid rgba(255,255,255,.52); border-radius: 999px; background: linear-gradient(135deg, rgba(255,255,255,.34), rgba(255,255,255,.12)), rgba(252,248,243,.08); box-shadow: 0 16px 46px rgba(58,41,37,.08), inset 0 1px rgba(255,255,255,.46); color: var(--ink); transform: translateX(-50%); backdrop-filter: blur(24px) saturate(1.35); -webkit-backdrop-filter: blur(24px) saturate(1.35); }
.brand { display: flex; align-items: center; gap: 12px; font-size: .77rem; font-weight: 700; letter-spacing: .13em; text-decoration: none; white-space: nowrap; }
.brand img { width: 42px; height: 42px; object-fit: contain; filter: sepia(1) saturate(.4) brightness(.58); }
nav { display: flex; align-items: center; gap: clamp(16px, 2.4vw, 34px); }
nav a { position: relative; padding: 11px 0; font-size: .83rem; text-decoration: none; }
nav a::after { content: ""; position: absolute; right: 0; bottom: 7px; left: 0; height: 1px; background: var(--clay-deep); transform: scaleX(0); transform-origin: right; transition: transform 220ms ease; }
nav a:hover::after, nav a:focus-visible::after { transform: scaleX(1); transform-origin: left; }
.menu-button { display: none; width: 48px; height: 48px; border: 0; border-radius: 50%; background: rgba(116,63,52,.08); color: var(--ink); }
.menu-button span:not(.sr-only) { display: block; width: 20px; height: 1px; margin: 5px auto; background: currentColor; }

.hero { position: relative; min-height: 100svh; display: grid; grid-template-columns: minmax(0, .82fr) minmax(480px, 1.18fr); align-items: center; gap: clamp(42px, 7vw, 110px); padding: 116px max(32px, calc((100vw - 1320px) / 2)) 54px; overflow: hidden; background: linear-gradient(125deg, rgba(255,255,255,.38), transparent 52%), var(--cream); isolation: isolate; }
.hero::before { content: ""; position: absolute; z-index: -1; width: min(58vw, 900px); aspect-ratio: 1; right: -16vw; bottom: -30vw; border-radius: 50%; background: rgba(229,199,185,.4); filter: blur(2px); }
.hero__copy { position: relative; z-index: 2; max-width: 640px; }
.eyebrow { margin: 0 0 22px; font-size: .72rem; font-weight: 700; letter-spacing: .27em; }
.eyebrow--clay { color: var(--clay); }
h1, h2 { margin: 0; font-family: var(--serif); font-weight: 400; letter-spacing: -.045em; line-height: .96; }
h1 { font-size: clamp(4.5rem, 6.2vw, 5.8rem); }
.hero__subtitle { margin: 16px 0 34px; font-size: clamp(1.15rem, 2vw, 1.65rem); }
.button { display: inline-block; min-width: 178px; padding: 14px 24px; border-radius: 999px; background: var(--clay-deep); color: white; font-size: .88rem; font-weight: 650; text-align: center; text-decoration: none; transition: transform 180ms ease, background 180ms ease; }
.button:hover { transform: translateY(-2px); background: var(--clay); }
.hero__meta { display: flex; flex-wrap: wrap; gap: 8px 20px; margin-top: 24px; color: #725f59; font-size: .75rem; }
.hero__meta a { text-decoration-color: rgba(116,63,52,.32); text-underline-offset: 4px; }
.hero__portrait { width: 100%; height: min(76svh, 780px); margin: 0; overflow: hidden; border: 1px solid rgba(255,255,255,.62); border-radius: 50% 50% 28px 28px; background: var(--blush); box-shadow: 0 40px 90px rgba(82,47,39,.13); }
.hero__portrait img { width: 100%; height: 100%; object-fit: cover; object-position: center; transition: transform 900ms cubic-bezier(.22,.75,.16,1); }
.hero__portrait:hover img { transform: scale(1.018); }

.statement { display: grid; grid-template-columns: .55fr 1.35fr .8fr; gap: clamp(30px, 6vw, 82px); align-items: start; }
.statement h2 { max-width: 13ch; font-size: clamp(3.3rem, 6vw, 6rem); }
.statement > p:last-child { margin: 20px 0 0; font-size: 1.05rem; }

.treatments { padding-bottom: clamp(84px, 12vw, 170px); }
.treatment { display: block; padding: clamp(36px, 6vw, 76px) 0; border-top: 1px solid var(--line); }
.treatment:last-child { border-bottom: 1px solid var(--line); }
.treatment > div { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(30px, 7vw, 90px); }
.treatment h2 { max-width: 14ch; font-size: clamp(2.4rem, 4vw, 4rem); }
.treatment__copy { max-width: 620px; }
.treatment__copy p { margin: 5px 0 1.2em; }
.treatment__copy p:last-child { margin-bottom: 0; }
.treatment__copy ul { margin: 4px 0 1.2em; padding-left: 1.2em; }
.treatment a { color: var(--clay-deep); text-underline-offset: 4px; }

.about { display: grid; grid-template-columns: 1fr 1fr; background: var(--clay-deep); color: white; }
.about__image { min-height: 760px; overflow: hidden; }
.about__image img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.about__copy { padding: clamp(60px, 9vw, 130px); }
.about h2 { margin-bottom: 48px; font-size: clamp(4rem, 8vw, 7rem); }
.prose p { margin: 0 0 1.35em; }
.prose a { text-underline-offset: 4px; }

.prices { display: grid; grid-template-columns: minmax(200px, .32fr) minmax(0, 1fr); gap: clamp(42px, 6vw, 82px); }
.prices__heading h2 { font-size: clamp(3.8rem, 6vw, 5.8rem); }
.price-panel { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(400px, .9fr); overflow: hidden; border: 1px solid var(--line); border-radius: 28px; }
.price-panel__treatment { min-width: 0; padding: clamp(26px, 2.8vw, 40px); border-right: 1px solid var(--line); }
.price-label { margin: 0 0 24px; color: #846d65; font-size: .7rem; font-weight: 700; letter-spacing: .17em; text-transform: uppercase; }
.price-panel h3 { margin: 0 0 18px; font-family: var(--serif); font-size: 2rem; font-weight: 400; }
.price-options { min-width: 0; display: grid; grid-template-rows: 1fr 1fr; }
.price-row { min-width: 0; display: grid; grid-template-columns: minmax(90px, .55fr) repeat(2, minmax(0, 1fr)); align-items: stretch; }
.price-row + .price-row { border-top: 1px solid var(--line); }
.price-row > * { min-width: 0; display: flex; align-items: center; justify-content: center; margin: 0; padding: clamp(20px, 2.2vw, 32px); text-align: center; }
.price-row > * + * { border-left: 1px solid var(--line); }
.price-row .price-label { justify-content: flex-start; }
.price-row strong { font-size: 1rem; white-space: nowrap; }
.price-row span { font-family: var(--serif); font-size: clamp(2.8rem, 3.6vw, 4rem); line-height: 1; white-space: nowrap; }
.prices__note { grid-column: 2; max-width: 780px; margin: 18px 0 0; color: #6b5a55; font-size: .88rem; }

.holiday { display: grid; grid-template-columns: 1fr 1fr; background: var(--blush); }
.holiday__copy { align-self: center; padding: clamp(60px, 10vw, 150px); }
.holiday h2 { max-width: 9ch; margin-bottom: 30px; font-size: clamp(4rem, 8vw, 7rem); }
.holiday__copy > p:not(.eyebrow) { max-width: 590px; }
.holiday > img { width: 100%; height: 100%; min-height: 680px; object-fit: cover; }
.text-link { display: inline-block; margin-top: 22px; font-weight: 700; text-underline-offset: 5px; }

.contact { background: var(--cream); }
.contact__grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(40px, 10vw, 140px); }
.contact h2 { font-size: clamp(3rem, 6vw, 6rem); }
.contact__links { border-top: 1px solid var(--line); }
.contact__links a { display: flex; justify-content: space-between; gap: 20px; padding: 24px 4px; border-bottom: 1px solid var(--line); text-decoration: none; }
.contact__links span { transition: transform 180ms ease; }
.contact__links a:hover span { transform: rotate(12deg); }

footer { display: flex; justify-content: flex-end; gap: 28px; padding: 28px clamp(24px, 5vw, 72px); background: var(--clay-deep); color: rgba(255,255,255,.68); font-size: .72rem; }
footer a { color: white; font-weight: 700; letter-spacing: .18em; text-decoration: none; }
footer p { margin: 0; }

.has-reveal .reveal { opacity: 0; transform: translateY(24px); transition: opacity 650ms ease, transform 650ms cubic-bezier(.2,.7,.2,1); }
.has-reveal .reveal.is-visible, .has-reveal .reveal:focus-within { opacity: 1; transform: none; }

@media (max-width: 1000px) {
  .menu-button { display: block; flex: 0 0 auto; }
  nav { position: absolute; top: calc(100% + 8px); right: 0; left: 0; display: grid; gap: 0; padding: 10px; border: 1px solid rgba(255,255,255,.34); border-radius: 20px; background: linear-gradient(135deg, rgba(255,255,255,.18), rgba(255,255,255,.05)), rgba(48,31,27,.38); box-shadow: 0 20px 50px rgba(0,0,0,.13), inset 0 1px rgba(255,255,255,.18); color: white; visibility: hidden; opacity: 0; transform: translateY(-8px) scale(.985); transform-origin: top; pointer-events: none; transition: opacity 200ms ease, transform 240ms cubic-bezier(.22,.75,.16,1), visibility 0s linear 240ms; backdrop-filter: blur(28px) saturate(1.4); -webkit-backdrop-filter: blur(28px) saturate(1.4); }
  nav.is-open { visibility: visible; opacity: 1; transform: none; pointer-events: auto; transition-delay: 0s; }
  nav a { padding: 12px 14px; border-radius: 10px; }
  nav a:hover { background: rgba(255,255,255,.08); }
  nav a::after { display: none; }
  .hero { grid-template-columns: .82fr 1.18fr; gap: 32px; padding-inline: 24px; }
  .hero__portrait { height: min(68svh, 680px); }
  h1 { max-width: none; font-size: clamp(3.8rem, 7vw, 5rem); }
  .statement { grid-template-columns: 1fr 2fr; }
  .statement > p:last-child { grid-column: 2; }
  .treatment > div { grid-template-columns: 1fr; gap: 20px; }
  .about__copy { padding: 70px 46px; }
  .prices { grid-template-columns: 1fr; }
  .prices__note { grid-column: auto; }
  .price-panel { grid-template-columns: 1fr; }
  .price-panel__treatment { border-right: 0; border-bottom: 1px solid var(--line); }
  .holiday__copy { padding: 76px 46px; }
  .contact__grid { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
  html { scroll-padding-top: 88px; }
  .shell { width: min(100% - 28px, 1180px); }
  .section { padding-block: 76px; }
  .site-header { top: 10px; width: calc(100% - 20px); min-height: 62px; border-radius: 999px; }
  .brand { font-size: .66rem; }
  .brand img { width: 38px; height: 38px; }
  .menu-button { width: 42px; height: 42px; }
  .hero { grid-template-columns: minmax(0, 1fr); gap: 42px; padding: 112px 14px 36px; }
  .hero__copy { min-width: 0; padding: 26px 10px 0; }
  .hero__meta a { overflow-wrap: anywhere; }
  .hero__portrait { min-width: 0; }
  h1 { max-width: none; font-size: clamp(3.65rem, 15vw, 4.3rem); }
  .hero__portrait { height: min(66svh, 560px); border-radius: 44% 44% 24px 24px; }
  .statement { grid-template-columns: 1fr; }
  .statement > p:last-child { grid-column: auto; }
  .treatment { grid-template-columns: 1fr; }
  .treatment__number { margin-bottom: 10px; }
  .about { grid-template-columns: 1fr; }
  .about__image { min-height: 420px; }
  .about__copy { padding: 64px 24px; }
  .price-row { grid-template-columns: 72px repeat(2, minmax(0, 1fr)); }
  .price-row > * { padding: 20px 12px; }
  .price-row span { font-size: clamp(2.45rem, 13vw, 3.25rem); }
  .holiday { grid-template-columns: 1fr; }
  .holiday__copy { padding: 72px 24px; }
  .holiday > img { min-height: 430px; }
  .contact__links a { overflow-wrap: anywhere; }
  footer { flex-direction: column; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
