:root{
  --cream:#F7F3EA; --cream-deep:#EFE7D6; --ink:#171412; --charcoal:#4B443A;
  --gold:#B08D57; --white:#FFFDF8; --line:rgba(23,20,18,.12);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--cream);color:var(--ink);font-family:'Inter',system-ui,sans-serif;line-height:1.7;-webkit-font-smoothing:antialiased}
h1,h2,h3,.serif{font-family:'Cormorant Garamond',Georgia,serif;font-weight:500;line-height:1.15}
img{max-width:100%;display:block}
a{color:inherit}
main{padding-top:0}

/* header */
.site-header{position:sticky;top:0;z-index:50;display:flex;align-items:center;gap:1.5rem;
  padding:.9rem 2rem;background:rgba(247,243,234,.96);backdrop-filter:blur(6px);border-bottom:1px solid var(--line)}
.brand{font-family:'Cormorant Garamond',serif;font-size:1.5rem;font-weight:600;letter-spacing:.04em;text-decoration:none}
.main-nav{display:flex;gap:1.4rem;margin-left:auto}
.main-nav a{text-decoration:none;font-size:.95rem;color:var(--charcoal)}
.main-nav a.active{color:var(--ink);font-weight:600}
.nav-toggle{display:none;background:none;border:0;font-size:1.6rem;cursor:pointer}

/* buttons */
.btn{display:inline-block;border-radius:999px;padding:.75rem 1.9rem;font-size:1rem;cursor:pointer;
  text-decoration:none;border:1px solid var(--ink);transition:transform .15s ease,opacity .15s ease;font-family:'Inter',sans-serif}
.btn-dark{background:var(--ink);color:#fff}
.btn-dark:hover{opacity:.88}
.btn-outline{background:transparent;color:var(--ink)}
.btn-outline:hover{background:var(--ink);color:#fff}
.btn-light-outline{background:transparent;color:#fff;border-color:#fff}
.btn-light-outline:hover{background:#fff;color:var(--ink)}
.btn:active{transform:scale(.98)}

/* hero */
.hero{position:relative;min-height:78vh;display:flex;align-items:center;justify-content:center;text-align:center;color:#fff;overflow:hidden}
.hero-video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,14,8,.55),rgba(20,14,8,.35))}
.hero-content{position:relative;z-index:2;max-width:820px;padding:4rem 1.5rem}
.hero h1{font-size:clamp(3rem,7vw,5.2rem);letter-spacing:.02em;margin-bottom:1rem}
.hero p{font-size:1.15rem;max-width:620px;margin:0 auto 2rem;opacity:.94}
.hero .btn-row{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.hero-band{position:relative;padding:5rem 1.5rem;text-align:center;color:#fff;overflow:hidden}
.hero-band .band-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero-band h1{font-size:clamp(2.6rem,6vw,4.2rem);position:relative;z-index:2}
.hero-band p{position:relative;z-index:2;max-width:680px;margin:1rem auto 0;opacity:.94}
.hero-band .band-overlay{position:absolute;inset:0;background:rgba(20,14,8,.55)}

/* marquee */
.marquee{background:var(--ink);color:var(--cream);overflow:hidden;white-space:nowrap;padding:.9rem 0}
.marquee span{display:inline-block;padding:0 1.6rem;font-size:.9rem;letter-spacing:.28em}
.marquee .track{display:inline-block;animation:scroll 28s linear infinite}
@keyframes scroll{to{transform:translateX(-50%)}}

/* sections */
.section{max-width:1180px;margin:0 auto;padding:5rem 1.5rem}
.section h2{font-size:clamp(2rem,4.5vw,3rem);text-align:center;margin-bottom:.6rem}
.section .lead{text-align:center;color:var(--charcoal);max-width:700px;margin:0 auto 3rem}
.divider{border:0;border-top:1px dashed var(--gold);opacity:.6;margin:0 auto;max-width:1180px}
.eyebrow{text-align:center;letter-spacing:.3em;font-size:.78rem;color:var(--gold);font-family:'Cormorant Garamond',serif;margin-bottom:.5rem}

/* cards */
.card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.8rem}
.card{background:var(--white);border:1px solid var(--line);border-radius:22px;overflow:hidden;display:flex;flex-direction:column}
.card img{height:230px;width:100%;object-fit:cover;border-radius:22px 22px 0 0}
.card-body{padding:1.6rem;display:flex;flex-direction:column;gap:.7rem;flex:1}
.card-body h3{font-size:1.65rem}
.card-body p{color:var(--charcoal);font-size:.97rem;flex:1}
.tags{color:var(--gold);font-size:.78rem;letter-spacing:.22em;font-weight:600}
.card-link{font-size:.95rem;font-weight:600;text-decoration:underline;text-underline-offset:4px;cursor:pointer;background:none;border:0;color:var(--ink);text-align:left;padding:0}
.price-pill{display:inline-block;background:var(--cream-deep);border-radius:999px;padding:.3rem 1rem;font-size:.85rem;font-weight:600;width:fit-content}
.treatment-row{display:grid;grid-template-columns:320px 1fr;gap:2.2rem;background:var(--white);border:1px solid var(--line);
  border-radius:24px;overflow:hidden;margin-bottom:2rem}
.treatment-row img{height:100%;min-height:280px;object-fit:cover}
.treatment-body{padding:2rem 2rem 2rem 0}
.treatment-body h3{font-size:2rem;margin-bottom:.4rem}
.treatment-body .meta{display:flex;gap:.6rem;align-items:center;margin:.8rem 0;flex-wrap:wrap}
.treatment-body p{color:var(--charcoal);margin-bottom:.8rem}
.kv{font-size:.9rem;color:var(--charcoal)}
.kv strong{color:var(--ink)}

/* shop */
.shop-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.8rem}
.product{background:var(--white);border:1px solid var(--line);border-radius:22px;overflow:hidden;display:flex;flex-direction:column}
.product img{height:200px;width:100%;object-fit:cover}
.product-body{padding:1.4rem;display:flex;flex-direction:column;gap:.5rem;flex:1}
.product-body h3{font-size:1.45rem}
.product-body .price{font-weight:600;font-size:1.05rem}
.product-body p{color:var(--charcoal);font-size:.92rem;flex:1}
.sample-note{background:#FBF6EC;border:1px dashed var(--gold);border-radius:14px;padding:.8rem 1.1rem;font-size:.85rem;color:var(--charcoal);margin-bottom:1.6rem}

/* steps */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.6rem;margin-top:2.5rem}
.step{background:var(--white);border:1px solid var(--line);border-radius:20px;padding:1.8rem}
.step .num{font-family:'Cormorant Garamond',serif;font-size:2.2rem;color:var(--gold)}
.step h3{font-size:1.4rem;margin:.4rem 0 .6rem}
.step p{color:var(--charcoal);font-size:.94rem}

/* contact */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem;align-items:start}
.contact-block{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:2.2rem}
.contact-block h3{font-size:1.8rem;margin-bottom:1rem}
.contact-block .line{margin:.7rem 0}
.contact-block a{color:var(--ink);font-weight:600}

/* forms */
.field{margin-bottom:1.1rem}
.field label{display:block;font-size:.9rem;font-weight:600;margin-bottom:.35rem}
.field input,.field select,.field textarea{width:100%;padding:.75rem 1rem;border:1px solid var(--line);border-radius:12px;
  background:#fff;font-family:'Inter',sans-serif;font-size:1rem}
.field textarea{min-height:110px;resize:vertical}
.form-card{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:2.2rem}
.time-pills{display:flex;flex-wrap:wrap;gap:.6rem}
.time-pills button{border:1px solid var(--ink);background:#fff;border-radius:999px;padding:.5rem 1.1rem;cursor:pointer;font-size:.92rem}
.time-pills button.selected{background:var(--ink);color:#fff}
.checks{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}
.checks label{display:flex;gap:.6rem;align-items:center;font-size:.92rem;font-weight:400}

/* modal */
.modal-backdrop{position:fixed;inset:0;background:rgba(20,14,8,.55);display:flex;align-items:center;justify-content:center;z-index:100;padding:1rem}
.modal-backdrop[hidden]{display:none}
.modal{background:var(--cream);border-radius:26px;max-width:640px;width:100%;max-height:92vh;overflow:auto;padding:2.4rem;position:relative}
.modal-close{position:absolute;top:1rem;right:1.3rem;background:none;border:0;font-size:1.9rem;cursor:pointer;color:var(--ink)}
.modal h2{font-size:2.1rem;margin-bottom:.3rem;text-align:left}
.modal .sub{color:var(--charcoal);margin-bottom:1.6rem}
.step-title{font-family:'Cormorant Garamond',serif;font-size:1.35rem;margin:1.4rem 0 .8rem}
.booking-summary{background:var(--white);border:1px solid var(--line);border-radius:14px;padding:1rem 1.2rem;margin-bottom:1rem;font-size:.95rem}
.full{width:100%}
.center{text-align:center}
.confirm-box{text-align:center;padding:1rem 0}
.confirm-box h2{margin-bottom:.6rem}
.note{font-size:.85rem;color:var(--charcoal);margin-top:1rem}

/* footer */
.site-footer{background:var(--cream-deep);margin-top:4rem;border-top:1px solid var(--line)}
.footer-inner{max-width:1180px;margin:0 auto;padding:3.5rem 1.5rem;display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:2.5rem}
.footer-tagline{color:var(--charcoal);font-size:.94rem;margin-bottom:1.2rem;max-width:340px}
.site-footer h4{font-family:'Cormorant Garamond',serif;letter-spacing:.22em;font-size:.95rem;margin-bottom:1rem}
.footer-nav a{display:block;text-decoration:none;color:var(--charcoal);margin:.35rem 0;font-size:.95rem}
.footer-contact a{display:block;font-weight:600;text-decoration:none;margin:.25rem 0}
.footer-contact address{font-style:normal;color:var(--charcoal);margin:.6rem 0 1.2rem}
.footer-bottom{text-align:center;padding:1.2rem;border-top:1px solid var(--line);font-size:.85rem;color:var(--charcoal)}

@media (max-width:860px){
  .main-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--cream);flex-direction:column;padding:1rem 2rem;border-bottom:1px solid var(--line)}
  .main-nav.open{display:flex}
  .nav-toggle{display:block;margin-left:auto}
  .site-header .btn{display:none}
  .treatment-row{grid-template-columns:1fr}
  .treatment-body{padding:0 1.6rem 1.8rem}
  .treatment-row img{min-height:220px}
  .contact-grid{grid-template-columns:1fr}
  .footer-inner{grid-template-columns:1fr}
  .modal{padding:1.8rem 1.3rem}
}
