:root {
  --color-bg: #f4efe6; --color-text: #2c2a26; --color-heading: #1a1814;
  --color-muted: #6e6a62; --color-accent: #9a7b4f; --color-surface: #efe8dc;
  --color-border: rgba(26,24,20,.1); --nav-fg: #f4efe6; --nav-solid: rgba(244,239,230,.95);
  --nav-solid-fg: #1a1814; --btn-primary-fg: #f7f1e8; --font-display: 'Frank Ruhl Libre', 'Cormorant Garamond', serif;
  --font-body: 'Assistant', sans-serif; --footer-bg: #1c1a16; --btn-ghost-fg: #f4efe6;
  --spa-stone: #d8d0c4;
}
body { font-family: var(--font-body); background: var(--color-bg); font-weight: 300; color: var(--color-text); }
h1,h2,h3 { font-family: var(--font-display); font-weight: 400; letter-spacing: .01em; }
.theme-spa .site-footer, .theme-spa .site-footer p, .theme-spa .site-footer a, .theme-spa .site-footer button, .theme-spa .site-footer h3 { color: #e8e0d4; }
.spa-kicker { font-family: var(--font-body); font-size: .72rem; font-weight: 500; letter-spacing: .28em; color: var(--color-accent); margin: 0 0 .85rem; }
.spa-hero { position: relative; min-height: 100vh; display: grid; place-items: end start; overflow: hidden; isolation: isolate; }
.spa-hero__bg { position: absolute; inset: 0; background: var(--spa-stone); }
.spa-hero__bg img { width: 100%; height: 100%; object-fit: cover; }
.spa-hero__veil { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(26,24,20,.18) 0%, rgba(26,24,20,.55) 100%); }
.spa-hero__copy { position: relative; z-index: 2; padding: 8rem 10vw 5.5rem; max-width: 42rem; color: #f7f1e8; }
.spa-hero .spa-kicker { color: #d4b483; }
.spa-hero h1 { font-size: clamp(2.35rem, 5.6vw, 4.15rem); line-height: 1.12; font-weight: 400; letter-spacing: .04em; margin: 0; }
.spa-lede { margin: 1.15rem 0 1.8rem; max-width: 28ch; font-size: 1.08rem; font-weight: 300; color: rgba(247,241,232,.88); }
.spa-strip { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; padding: 14px 14px 0; background: var(--color-bg); }
.spa-strip figure { margin: 0; overflow: hidden; background: var(--spa-stone); aspect-ratio: 4/5; }
.spa-strip img { width: 100%; height: 100%; object-fit: cover; }
.spa-about { padding: 7.5rem 0 6.5rem; }
.spa-about__grid { display: grid; gap: 3.5rem; align-items: center; }
.spa-about__media { margin: 0; overflow: hidden; background: var(--spa-stone); min-height: 340px; aspect-ratio: 4/5; }
.spa-about__media img { width: 100%; height: 100%; object-fit: cover; min-height: 340px; }
.spa-about h2 { font-size: clamp(1.85rem, 3.4vw, 2.7rem); margin: 0 0 1.3rem; }
.spa-about__lead { max-width: 46ch; color: var(--color-muted); font-size: 1.05rem; line-height: 1.9; }
.spa-stats { display: flex; flex-wrap: wrap; gap: 2rem 2.6rem; margin-top: 2.6rem; padding-top: 1.8rem; border-top: 1px solid var(--color-border); }
.spa-stats b { display: block; font-family: var(--font-display); font-size: 1.85rem; color: var(--color-heading); font-weight: 400; }
.spa-stats span { font-size: .82rem; color: var(--color-muted); letter-spacing: .04em; }
.spa-visit { padding: 0 0 5rem; background: var(--color-bg); }
.spa-visit__head { margin: 0 0 2.6rem; text-align: right; }
.spa-visit h2 { font-size: clamp(1.7rem, 3vw, 2.4rem); margin: 0; color: var(--color-heading); letter-spacing: .04em; }
.spa-visit__sub { margin: .7rem 0 0; font-size: 1.02rem; color: var(--color-muted); letter-spacing: .08em; }
.spa-visit__list { display: grid; gap: 1.2rem; }
@media (min-width: 860px) {
  .spa-visit__list { grid-template-columns: 1.1fr .95fr .95fr; align-items: stretch; }
  .spa-visit__item--2, .spa-visit__item--3 { background: #f7f1e8; }
}
.spa-visit__item { display: grid; gap: .75rem; padding: 1.7rem 1.55rem 1.8rem; background: #f7f1e8; border: 1px solid rgba(154,123,79,.22); color: var(--color-text); }
.spa-visit__item span { font-family: var(--font-display); font-size: .9rem; letter-spacing: .18em; color: var(--color-accent); }
.spa-visit h3 { font-size: 1.18rem; margin: 0 0 .4rem; color: var(--color-heading); }
.spa-visit p { color: var(--color-muted); font-size: .95rem; line-height: 1.75; }
.spa-belief { display: grid; background: #efe8dc; }
@media (min-width: 860px) { .spa-belief { grid-template-columns: 1.05fr .95fr; } }
.spa-belief blockquote { margin: 0; padding: 5rem 8vw 5.5rem; display: flex; flex-direction: column; justify-content: center; text-align: right; }
.spa-belief__title { font-size: clamp(1.7rem, 3vw, 2.35rem); letter-spacing: .06em; margin: 0 0 1.4rem; font-weight: 400; }
.spa-belief__quote { font-family: var(--font-display); font-size: clamp(1.15rem, 2.2vw, 1.55rem); line-height: 1.75; font-weight: 400; max-width: 28ch; margin: 0; text-align: right; }
.spa-belief cite { margin-top: 1.8rem; font-style: normal; font-size: .88rem; letter-spacing: .12em; color: var(--color-accent); text-align: right; }
.spa-belief__visual { margin: 0; overflow: hidden; background: var(--spa-stone); min-height: 380px; }
.spa-belief__visual img { width: 100%; height: 100%; object-fit: cover; min-height: 380px; }
.spa-svc { padding: 8.5rem 0 8.5rem; background: var(--color-bg); }
.spa-svc__head { text-align: right; max-width: 40rem; margin: 0 0 3.2rem; }
.spa-svc__head h2 { font-size: clamp(1.7rem, 3.1vw, 2.45rem); font-weight: 400; letter-spacing: .08em; margin: 0; line-height: 1.2; }
.spa-cards { display: grid; gap: 1.6rem 1.4rem; }
@media (min-width: 720px) { .spa-cards { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1080px) { .spa-cards { grid-template-columns: repeat(4, 1fr); } }
.spa-cards article { background: #faf6ef; border: 1px solid rgba(26,24,20,.06); overflow: hidden; }
.spa-card__media { overflow: hidden; background: var(--spa-stone); aspect-ratio: 4/3; }
.spa-card__media img { width: 100%; height: 100%; object-fit: cover; }
.spa-cards h3 { font-size: 1.12rem; letter-spacing: .03em; margin: 1.15rem 1.15rem .4rem; }
.spa-cards p { padding: 0 1.15rem 1.4rem; color: var(--color-muted); font-size: .92rem; line-height: 1.75; }
.spa-gal { padding: 6.5rem 0 0; background: #efe8dc; }
.spa-gal__head { padding-bottom: 2.4rem; }
.spa-gal__head h2 { font-size: clamp(1.7rem, 3.1vw, 2.45rem); letter-spacing: .08em; font-weight: 400; }
.spa-gal__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding: 0 8px 8px; }
@media (min-width: 800px) { .spa-gal__grid { grid-template-columns: repeat(4, 1fr); } }
.spa-gal figure { margin: 0; overflow: hidden; background: var(--spa-stone); }
.spa-gal img { height: 34vh; min-height: 220px; object-fit: cover; width: 100%; }
@media (min-width: 800px) {
  .spa-about__grid { grid-template-columns: .9fr 1.1fr; }
}
@media (max-width: 800px) {
  .spa-strip { grid-template-columns: repeat(2, 1fr); }
  .spa-strip figure:last-child { display: none; }
  .spa-hero__copy { padding: 7rem 7vw 4rem; }
}