:root {
  --ink: #28302b;
  --muted: #69736b;
  --cream: #f6f1ed;
  --paper: #fbf9f6;
  --sage: #aab7a7;
  --sage-dark: #718175;
  --lavender: #dcd8df;
  --peach: #e6cfc2;
  --line: rgba(40, 48, 43, .16);
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); font-family: "DM Sans", sans-serif; }
a { color: inherit; text-decoration: none; }
.site-header { align-items: center; display: flex; justify-content: space-between; padding: 25px 5.8vw; position: absolute; width: 100%; z-index: 3; }
.brand { align-items: center; display: flex; gap: 11px; }
.brand-logo { display: block; height: auto; max-width: 337px; width: 37vw; }
.brand-mark { align-items: center; background: var(--ink); border-radius: 50%; color: var(--cream); display: flex; font: 600 15px "Playfair Display", serif; height: 43px; justify-content: center; letter-spacing: -.08em; width: 43px; }
.brand-text { font: 600 15px "Playfair Display", serif; letter-spacing: -.02em; line-height: 1; }
.brand-text small { color: var(--sage-dark); display: block; font: 500 8px "DM Sans", sans-serif; letter-spacing: .13em; margin-top: 5px; text-transform: uppercase; }
.nav-links { align-items: center; display: flex; gap: 34px; font-size: 12px; }
.nav-links > a:not(.nav-cta) { color: #58635b; }
.nav-cta { border-bottom: 1px solid var(--ink); margin-left: 9px; padding: 8px 0; }
.nav-cta span, .button span, .text-link span, .arrow-link span { font-size: 17px; margin-left: 13px; }
.menu-toggle { background: none; border: 0; cursor: pointer; display: none; padding: 10px; }
.menu-toggle span { background: var(--ink); display: block; height: 1px; margin: 5px; width: 24px; }
.hero { display: grid; grid-template-columns: 47% 53%; min-height: 730px; overflow: hidden; }
.hero-copy { align-self: center; padding: 125px 8vw 70px 12vw; }
.eyebrow { align-items: center; color: var(--sage-dark); display: flex; font-size: 10px; font-weight: 600; gap: 10px; letter-spacing: .2em; margin: 0 0 26px; text-transform: uppercase; }
.eyebrow span { background: var(--sage-dark); display: inline-block; height: 7px; width: 7px; }
h1, h2, h3, p { margin-top: 0; }
h1 { font: 500 clamp(60px, 6.3vw, 96px)/.91 "Playfair Display", serif; letter-spacing: -.065em; margin-bottom: 29px; }
h1 em, h2 em, .large-copy em { color: var(--sage-dark); font-style: italic; }
.hero-description { color: var(--muted); font-size: 15px; line-height: 1.7; max-width: 330px; }
.hero-actions { align-items: center; display: flex; gap: 27px; margin-top: 35px; }
.button { display: inline-flex; font-size: 11px; font-weight: 700; justify-content: center; letter-spacing: .06em; padding: 17px 22px; text-transform: uppercase; transition: transform .2s, opacity .2s; }
.button:hover { opacity: .85; transform: translateY(-2px); }
.button-dark { background: var(--ink); color: var(--cream); }
.text-link, .arrow-link { border-bottom: 1px solid var(--line); color: var(--ink); font-size: 11px; padding-bottom: 5px; }
.text-link span { margin-left: 6px; }
.hero-note { align-items: flex-start; color: var(--muted); display: flex; font: italic 13px/1.4 "Playfair Display", serif; gap: 13px; margin-top: 76px; }
.note-line { background: var(--sage); height: 1px; margin-top: 9px; width: 34px; }
.hero-visual { background: var(--sage); min-height: 730px; position: relative; }
.hero-image-wrap { bottom: 7%; height: 77%; left: 10%; overflow: hidden; position: absolute; right: 17%; top: 15%; }
.hero-image-wrap:after { background: rgba(102, 123, 105, .1); content: ""; inset: 0; mix-blend-mode: multiply; position: absolute; }
.hero-image-wrap img, .ritual-image img { height: 100%; object-fit: cover; width: 100%; }
.hero-stamp { align-items: center; background: var(--cream); border-radius: 50%; bottom: 10%; display: flex; flex-direction: column; height: 119px; justify-content: center; position: absolute; right: 7%; text-align: center; width: 119px; }
.hero-stamp span { font: italic 30px "Playfair Display", serif; }
.hero-stamp small { color: var(--sage-dark); font-size: 8px; letter-spacing: .1em; line-height: 1.5; text-transform: uppercase; }
.hero-caption { bottom: 4.5%; color: #4d5d50; font-size: 9px; letter-spacing: .14em; position: absolute; right: 18%; text-transform: uppercase; }
.hero-caption span { margin: 0 10px; }
.intro-section, .experiences-section { padding: 130px 12vw; }
.intro-section { align-items: start; display: grid; gap: 10%; grid-template-columns: 28% 62%; }
.intro-aside .section-label { margin-bottom: 34px; }
.section-label { color: var(--sage-dark); font-size: 10px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.large-copy { font: 500 clamp(32px, 4vw, 58px)/1.08 "Playfair Display", serif; letter-spacing: -.04em; margin-bottom: 32px; max-width: 680px; }
.body-copy { color: var(--muted); font-size: 14px; line-height: 1.8; max-width: 385px; }
.arrow-link { display: inline-block; margin-top: 24px; }
.intro-visual { height: 370px; overflow: hidden; position: relative; }
.intro-visual:after { border: 1px solid rgba(246, 241, 237, .6); content: ""; inset: 12px; pointer-events: none; position: absolute; }
.intro-visual img { filter: saturate(.7); height: 100%; object-fit: cover; width: 100%; }
.intro-visual span { bottom: 27px; color: var(--cream); font: italic 17px/1.1 "Playfair Display", serif; left: 27px; position: absolute; z-index: 1; }
.experiences-section { background: var(--paper); }
.section-heading { display: grid; grid-template-columns: 25% 42% 33%; margin-bottom: 55px; }
.section-heading h2 { font: 500 clamp(42px, 4.5vw, 67px)/.98 "Playfair Display", serif; letter-spacing: -.06em; margin: 0; }
.section-heading p { align-self: end; color: var(--muted); font-size: 13px; line-height: 1.5; max-width: 190px; }
.service-grid { display: grid; gap: 13px; grid-template-columns: repeat(3, 1fr); }
.service-card { background: var(--lavender); min-height: 285px; padding: 22px; position: relative; }
.service-card.featured { background: var(--sage); }
.service-card.warm { background: var(--peach); }
.service-number { font-size: 10px; opacity: .65; }
.service-icon { font: 28px "Playfair Display", serif; position: absolute; right: 21px; top: 17px; }
.service-card h3 { font: 500 26px/1.05 "Playfair Display", serif; letter-spacing: -.04em; margin: 55px 0 13px; }
.service-card p { color: #58635b; font-size: 11px; line-height: 1.55; max-width: 175px; }
.service-card > a { bottom: 20px; font-size: 22px; position: absolute; right: 21px; }
.ritual-section { display: grid; grid-template-columns: 48% 52%; min-height: 620px; }
.ritual-image { height: 620px; overflow: hidden; }
.ritual-copy { align-self: center; padding: 50px 12vw 50px 10%; }
.ritual-copy h2 { font: 500 clamp(44px, 5vw, 72px)/.95 "Playfair Display", serif; letter-spacing: -.06em; margin: 26px 0; }
.ritual-copy > p { color: var(--muted); font-size: 14px; line-height: 1.8; max-width: 370px; }
.ritual-steps { border-top: 1px solid var(--line); display: flex; gap: 30px; margin-top: 52px; padding-top: 20px; }
.ritual-steps div { display: flex; gap: 10px; }
.ritual-steps strong { color: var(--sage-dark); font-size: 10px; font-weight: 500; }
.ritual-steps span { font: 500 13px/1.1 "Playfair Display", serif; }.ritual-steps small { color: var(--muted); font: 10px "DM Sans", sans-serif; }
.contact-section { background: var(--ink); color: var(--cream); padding: 110px 20px; text-align: center; }
.contact-section .eyebrow { color: var(--sage); justify-content: center; }.contact-section .eyebrow span { background: var(--sage); }
.contact-section h2 { font: 500 clamp(42px, 5.2vw, 76px)/.98 "Playfair Display", serif; letter-spacing: -.06em; margin-bottom: 39px; }
.contact-section h2 em { color: var(--sage); }
.button-light { background: var(--cream); color: var(--ink); }
.contact-details { align-items: center; color: var(--sage); display: flex; font-size: 11px; gap: 16px; justify-content: center; letter-spacing: .08em; margin-top: 75px; }
.site-footer { align-items: center; background: #1f2722; color: #98a59b; display: flex; font-size: 10px; justify-content: space-between; letter-spacing: .08em; padding: 25px 5.8vw; }
.site-footer a { color: var(--cream); }
@media (max-width: 800px) {
  .site-header { padding: 20px 6vw; }.brand-logo { max-width: 210px; width: 48vw; }.menu-toggle { display: block; }.nav-links { background: var(--paper); display: none; flex-direction: column; gap: 22px; left: 0; padding: 30px 8vw; position: absolute; right: 0; top: 80px; }.nav-links.open { display: flex; }.nav-cta { margin: 5px 0 0; }
  .hero { display: block; }.hero-copy { padding: 145px 9vw 55px; }.hero-visual { min-height: 540px; }.hero-image-wrap { left: 8%; right: 13%; top: 9%; }.hero-stamp { bottom: 8%; height: 95px; right: 5%; width: 95px; }.hero-caption { right: 18%; }.hero-note { margin-top: 50px; }
  .intro-section, .experiences-section { padding: 80px 9vw; }.intro-section { display: block; }.intro-content { margin-top: 50px; }.intro-aside .section-label { margin-bottom: 30px; }.intro-visual { height: 360px; max-width: 430px; }.section-heading { display: block; }.section-heading h2 { margin: 25px 0 17px; }.service-grid { grid-template-columns: repeat(2, 1fr); }.service-card { min-height: 250px; }
  .ritual-section { display: block; }.ritual-image { height: 400px; }.ritual-copy { padding: 75px 9vw; }.site-footer { align-items: flex-start; flex-direction: column; gap: 13px; }
}
@media (max-width: 470px) { .hero-actions { align-items: flex-start; flex-direction: column; gap: 20px; }.service-grid { display: block; }.service-card { margin-bottom: 13px; min-height: 230px; }.ritual-steps { gap: 13px; justify-content: space-between; }.ritual-steps span { font-size: 11px; } }
