:root{
  --ink:#1c211c;
  --paper:#fffaf8;
  --pink:#f5d9e4;
  --pink-2:#f9e9ef;
  --pistachio:#cddda8;
  --pistachio-2:#e7efd4;
  --line:rgba(28,33,28,.13);
  --muted:#6f736d;
  --serif:'Playfair Display', Georgia, serif;
  --sans:'DM Sans', Arial, sans-serif;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);overflow-x:hidden}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
button{font:inherit}

.announcement{height:34px;background:var(--pistachio);display:flex;align-items:center;justify-content:center;font-size:10px;letter-spacing:.2em;font-weight:600;border-bottom:1px solid var(--line)}
.site-header{height:82px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:0 4vw;border-bottom:1px solid var(--line);position:sticky;top:0;background:rgba(255,250,248,.92);backdrop-filter:blur(14px);z-index:20}
.brand{font-family:var(--serif);font-size:27px;letter-spacing:.12em;justify-self:start}
.nav{display:flex;gap:34px;font-size:13px}
.nav a{position:relative;padding:8px 0}
.nav a:after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--ink);transition:.3s}
.nav a:hover:after{width:100%}
.menu-toggle{display:none;justify-self:end;background:none;border:0;padding:10px;cursor:pointer}
.menu-toggle span{display:block;width:24px;height:1px;background:var(--ink);margin:6px 0}

.hero{min-height:760px;display:grid;grid-template-columns:minmax(0,42%) minmax(0,58%);position:relative;border-bottom:1px solid var(--line)}
.hero-copy{padding:11vw 6vw 7vw 7vw;display:flex;flex-direction:column;justify-content:center;background:linear-gradient(180deg,var(--pink-2),#fffaf8)}
.eyebrow{font-size:10px;letter-spacing:.24em;font-weight:600;margin:0 0 22px}
.hero h1,.section-heading h2,.banner-card h2,.ritual-content h2,.booking h2{font-family:var(--serif);font-weight:500;line-height:.94;letter-spacing:-.035em;margin:0}
.hero h1{font-size:clamp(60px,7.6vw,118px)}
em{font-weight:500;color:#65714d}
.hero-text{max-width:520px;font-size:16px;line-height:1.75;color:#555c52;margin:34px 0}
.hero-actions{display:flex;align-items:center;gap:28px;flex-wrap:wrap}
.btn{border:0;display:inline-flex;align-items:center;justify-content:center;padding:15px 24px;border-radius:999px;font-size:12px;font-weight:600;letter-spacing:.03em;cursor:pointer;transition:.25s}
.btn:hover{transform:translateY(-2px)}
.btn-dark{background:var(--ink);color:white}
.btn-pistachio{background:var(--pistachio);color:var(--ink)}
.text-link{font-size:12px;border-bottom:1px solid var(--ink);padding-bottom:4px}
.hero-media{position:relative;min-height:760px;overflow:hidden}
.hero-media:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 65%,rgba(0,0,0,.18))}
.hero-media img{transition:transform 1.2s cubic-bezier(.2,.7,.2,1)}
.hero-media:hover img{transform:scale(1.025)}
.hero-stamp{position:absolute;right:28px;bottom:28px;z-index:2;background:rgba(255,250,248,.93);padding:18px 22px;min-width:180px;border:1px solid rgba(255,255,255,.5)}
.hero-stamp span{font-family:var(--serif);font-size:30px;display:block;letter-spacing:.08em}
.hero-stamp small{display:block;font-size:8px;letter-spacing:.17em;margin-top:3px}
.hero-side-note{position:absolute;left:18px;top:50%;transform:translateY(-50%) rotate(-90deg);transform-origin:left top;font-size:9px;letter-spacing:.2em;color:#71756f}

.ticker{overflow:hidden;background:var(--ink);color:white;padding:14px 0}
.ticker-track{display:flex;gap:24px;align-items:center;width:max-content;animation:ticker 24s linear infinite;font-size:11px;letter-spacing:.2em}
.ticker-track b{font-size:8px;color:var(--pistachio)}
@keyframes ticker{to{transform:translateX(-50%)}}

.section{padding:120px 6vw}
.section-heading{display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:5vw;align-items:end;margin-bottom:58px}
.section-heading h2{font-size:clamp(48px,5.3vw,84px)}
.section-heading>p:last-child{font-size:14px;line-height:1.8;color:var(--muted);max-width:420px}

.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}
.service-card{border:1px solid var(--line);background:#fff;overflow:hidden;transition:.35s}
.service-card:hover{transform:translateY(-6px);box-shadow:0 24px 60px rgba(61,57,47,.08)}
.service-card.featured{margin-top:48px}
.service-image{aspect-ratio:4/4.7;overflow:hidden;background:#eee}
.service-card:hover .service-image img{transform:scale(1.035)}
.service-image img{transition:.8s}
.service-card-body{padding:24px 24px 28px;position:relative}
.service-number{position:absolute;right:22px;top:24px;font-size:10px;color:#8a8c85}
.service-card h3{font-family:var(--serif);font-size:32px;font-weight:500;margin:0 0 13px}
.service-card p{font-size:13px;line-height:1.7;color:var(--muted);padding-right:35px;min-height:68px}
.service-card a{font-size:11px;font-weight:600;border-bottom:1px solid var(--line);padding-bottom:5px}

.editorial-banner{display:grid;grid-template-columns:1.35fr .65fr;min-height:680px;background:var(--pistachio-2);margin:0 3vw}
.banner-image{min-height:680px}
.banner-card{padding:7vw 5vw;display:flex;flex-direction:column;justify-content:center}
.banner-card h2{font-size:clamp(54px,5.8vw,90px)}
.banner-card>p:not(.eyebrow){font-size:15px;line-height:1.8;color:#62685e;margin:30px 0 44px;max-width:480px}
.mini-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;border-top:1px solid var(--line);padding-top:22px}
.mini-stats div{display:flex;flex-direction:column;gap:8px}
.mini-stats strong{font-family:var(--serif);font-size:25px;font-weight:500}
.mini-stats span{font-size:10px;line-height:1.4;text-transform:uppercase;letter-spacing:.07em}

.ritual{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:center}
.ritual-photo{height:680px;position:relative}
.ritual-photo:before{content:"";position:absolute;inset:18px;border:1px solid rgba(255,255,255,.55);z-index:1}
.photo-caption{position:absolute;left:-20px;bottom:55px;background:var(--pink);padding:11px 18px;font-size:9px;letter-spacing:.18em;transform:rotate(-90deg);transform-origin:left bottom}
.ritual-content h2{font-size:clamp(50px,5vw,78px);margin-bottom:46px}
.steps{border-top:1px solid var(--line)}
.step{display:grid;grid-template-columns:52px 1fr;gap:22px;padding:24px 0;border-bottom:1px solid var(--line)}
.step>span{font-family:var(--serif);font-size:18px;color:#7f866e}
.step h3{font-size:15px;margin:0 0 6px}
.step p{font-size:13px;line-height:1.6;color:var(--muted);margin:0}

.gallery{background:var(--pink-2)}
.gallery-heading{grid-template-columns:.8fr 1.5fr;max-width:900px}
.gallery-heading>p:last-child{display:none}
.gallery-grid{display:grid;grid-template-columns:1.1fr .8fr 1.1fr;grid-template-rows:320px 240px;gap:16px}
.gallery-grid figure{margin:0;overflow:hidden}
.g1{grid-row:1/3}.g2{grid-column:2;grid-row:1}.g3{grid-column:3;grid-row:1/3}
.gallery-grid figure img{transition:.8s}
.gallery-grid figure:hover img{transform:scale(1.035)}
.gallery-quote{background:var(--pistachio);padding:36px;display:flex;flex-direction:column;justify-content:space-between}
.gallery-quote span{font-family:var(--serif);font-size:64px;line-height:.7}
.gallery-quote p{font-family:var(--serif);font-size:27px;line-height:1.15;margin:0}

.booking{margin:3vw;display:grid;grid-template-columns:1.25fr .75fr;background:var(--ink);color:white;min-height:530px}
.booking-panel{padding:7vw;display:flex;flex-direction:column;justify-content:center}
.booking h2{font-size:clamp(54px,5.7vw,88px)}
.booking h2 em{color:var(--pink)}
.booking-panel>p:not(.eyebrow){max-width:600px;color:#c9cbc6;font-size:14px;line-height:1.8;margin:28px 0 34px}
.booking-art{position:relative;overflow:hidden;background:var(--pink);color:var(--ink);display:flex;align-items:flex-end;justify-content:flex-end;padding:34px}
.big-o{font-family:var(--serif);font-size:min(30vw,430px);line-height:.7;position:absolute;left:-20px;top:50%;transform:translateY(-53%);color:var(--pistachio);font-style:italic}
.booking-art p{position:relative;z-index:1;text-align:right;font-size:10px;line-height:1.8;letter-spacing:.16em}

footer{padding:42px 4vw;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr auto;gap:24px;align-items:end}
.footer-name{font-family:var(--serif);font-size:42px;letter-spacing:.12em}
.footer-meta{font-size:10px;letter-spacing:.12em;line-height:1.7}
.footer-meta p{margin:0}.footer-meta span{color:#888}
footer>a{font-size:11px;border-bottom:1px solid var(--ink);padding-bottom:4px}

.modal{position:fixed;inset:0;z-index:50;display:none;align-items:center;justify-content:center;padding:20px}
.modal.open{display:flex}
.modal-backdrop{position:absolute;inset:0;background:rgba(19,21,18,.65);backdrop-filter:blur(8px)}
.modal-card{position:relative;width:min(520px,100%);background:var(--paper);padding:48px;border:1px solid var(--line);box-shadow:0 30px 100px rgba(0,0,0,.25)}
.modal-card h2{font-family:var(--serif);font-size:42px;line-height:1.05;font-weight:500;margin:0 0 18px}
.modal-card>p:not(.eyebrow){font-size:14px;line-height:1.7;color:var(--muted);margin-bottom:28px}
.modal-close{position:absolute;right:18px;top:15px;background:none;border:0;font-size:30px;cursor:pointer;font-family:var(--serif)}

.reveal{opacity:0;transform:translateY(24px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:none}

@media(max-width:980px){
  .site-header{grid-template-columns:1fr auto;height:70px}
  .nav{position:absolute;top:70px;left:0;right:0;background:var(--paper);border-bottom:1px solid var(--line);display:none;flex-direction:column;padding:26px 5vw;gap:18px}
  .nav.open{display:flex}
  .menu-toggle{display:block}
  .hero{grid-template-columns:1fr;min-height:auto}
  .hero-copy{padding:95px 7vw 70px}
  .hero-media{min-height:70vh}
  .hero-side-note{display:none}
  .section{padding:90px 5vw}
  .section-heading{grid-template-columns:1fr;gap:20px}
  .section-heading>p:last-child{max-width:650px}
  .service-grid{grid-template-columns:1fr 1fr}
  .service-card.featured{margin-top:0}
  .service-card:last-child{grid-column:1/3;width:50%;justify-self:center}
  .editorial-banner{grid-template-columns:1fr;margin:0}
  .banner-image{min-height:55vh}
  .banner-card{padding:80px 7vw}
  .ritual{grid-template-columns:1fr;gap:60px}
  .ritual-photo{height:60vh}
  .gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:460px 300px}
  .g1{grid-row:1}.g2{grid-row:2}.g3{grid-column:2;grid-row:1/3}.gallery-quote{grid-column:1;grid-row:2}
  .booking{grid-template-columns:1fr}.booking-art{min-height:260px}.big-o{font-size:280px}
}

@media(max-width:640px){
  .announcement{font-size:8px;letter-spacing:.13em}
  .site-header{padding:0 5vw}
  .brand{font-size:23px}
  .hero-copy{padding:72px 7vw 56px}
  .hero h1{font-size:58px}
  .hero-text{font-size:14px;margin:26px 0}
  .hero-actions{align-items:flex-start;flex-direction:column;gap:18px}
  .hero-media{min-height:64vh}
  .hero-stamp{right:15px;bottom:15px;min-width:150px;padding:14px 16px}
  .hero-stamp span{font-size:24px}
  .section{padding:72px 5vw}
  .section-heading h2,.banner-card h2,.ritual-content h2,.booking h2{font-size:48px}
  .service-grid{grid-template-columns:1fr}
  .service-card:last-child{grid-column:auto;width:100%}
  .service-image{aspect-ratio:4/4}
  .banner-image{min-height:48vh}
  .banner-card{padding:64px 6vw}
  .mini-stats{grid-template-columns:1fr;gap:20px}
  .mini-stats div{display:grid;grid-template-columns:40px 1fr;align-items:center}
  .ritual{padding-left:0;padding-right:0}
  .ritual-photo{height:55vh;margin-right:5vw}
  .ritual-content{padding:0 5vw}
  .gallery-grid{display:grid;grid-template-columns:1fr;grid-template-rows:none}
  .g1,.g2,.g3,.gallery-quote{grid-column:auto;grid-row:auto}
  .gallery-grid figure{height:390px}
  .gallery-quote{min-height:220px}
  .booking{margin:0;min-height:auto}
  .booking-panel{padding:72px 7vw}
  .booking-art{min-height:220px}
  footer{grid-template-columns:1fr;align-items:start}
  .modal-card{padding:38px 28px}.modal-card h2{font-size:34px}
}


.whatsapp-float{position:fixed;right:18px;bottom:18px;z-index:40;background:var(--pistachio);color:var(--ink);padding:14px 18px;border-radius:999px;border:1px solid rgba(28,33,28,.12);box-shadow:0 18px 40px rgba(0,0,0,.12);font-size:12px;font-weight:600;letter-spacing:.04em}
.whatsapp-float:hover{transform:translateY(-2px)}
.footer-meta span{color:inherit}
.booking-art strong{font-size:14px;letter-spacing:.08em}
@media(max-width:640px){.whatsapp-float{right:14px;bottom:14px;font-size:11px;padding:12px 15px}}
