:root{
  --bg:#fff8fa;--paper:#ffffff;--ink:#3a2a32;--muted:#8b7580;
  --pink:#e8478f;--pink-d:#c9306f;--petal:#ffe3ee;--blush:#fff0f5;--rose:#f7b9d1;
  --line:#f5d9e5;--btn-ink:#fff;--shadow:0 18px 50px rgba(201,48,111,.14);
  --serif:"Cormorant Garamond",Georgia,serif;--sans:"Jost",system-ui,sans-serif;--script:"Pinyon Script",cursive;
}
@media (prefers-color-scheme:dark){:root{
  --bg:#1b1317;--paper:#251a20;--ink:#fbeef4;--muted:#bda5b0;
  --pink:#f27cb0;--pink-d:#f27cb0;--petal:#3a2430;--blush:#21171c;--rose:#7a3a58;
  --line:#40303a;--btn-ink:#1b1317;--shadow:0 18px 50px rgba(0,0,0,.4)}}
*{box-sizing:border-box;margin:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--ink);font:300 17px/1.7 var(--sans);overflow-x:hidden;padding-bottom:76px}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.1;letter-spacing:-.01em}
h1 em,h2 em{font-style:italic;color:var(--pink-d)}
a{color:inherit}
img,video{max-width:100%;display:block}
.wrap{max-width:1120px;margin:0 auto;padding:0 20px}
.script{font-family:var(--script);color:var(--pink-d);font-size:1.9rem;line-height:1}
.eyebrow{font-size:.78rem;letter-spacing:.26em;text-transform:uppercase;color:var(--pink-d);font-weight:500;margin-bottom:12px}
section{padding:88px 0;position:relative}
section h2{font-size:clamp(2.1rem,5vw,3.4rem);margin-bottom:14px}
.lead{color:var(--muted);max-width:52ch;margin-bottom:40px}
.center{text-align:center}.center .lead{margin-inline:auto}

/* buttons */
.btn{display:inline-flex;align-items:center;gap:10px;background:var(--pink-d);color:var(--btn-ink);padding:15px 30px;border-radius:999px;text-decoration:none;font-weight:500;font-size:.95rem;letter-spacing:.04em;border:0;cursor:pointer;transition:transform .25s,box-shadow .25s}
.btn:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(232,71,143,.35)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--rose)}
.btn.ghost:hover{background:var(--petal);box-shadow:none}

/* header */
header{position:fixed;inset:0 0 auto 0;z-index:20;transition:background .3s,box-shadow .3s}
header.solid{background:color-mix(in srgb,var(--bg) 90%,transparent);backdrop-filter:blur(14px);box-shadow:0 1px 0 var(--line)}
header .wrap{display:flex;align-items:center;justify-content:space-between;height:68px;gap:16px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;min-width:0;flex:1 1 auto}
.brand img{height:46px;width:46px;object-fit:cover;object-position:62% 40%;border-radius:50%;background:#fff;box-shadow:0 2px 10px rgba(201,48,111,.2)}
.brand span{font-family:var(--serif);font-size:clamp(1rem,4.7vw,1.35rem);font-weight:600;letter-spacing:.01em;white-space:nowrap;overflow:hidden}
nav{display:flex;gap:30px;font-size:.84rem;letter-spacing:.14em;text-transform:uppercase}
nav a{text-decoration:none;color:var(--muted);transition:color .2s}
nav a:hover{color:var(--pink-d)}
.hbtn{padding:11px 22px;font-size:.82rem;white-space:nowrap;flex:0 0 auto}
@media (max-width:380px){.brand img{width:38px;height:38px}.hbtn{padding:10px 16px}header .wrap{gap:10px}.brand{gap:8px}}

/* hero */
.hero{min-height:100svh;display:flex;align-items:center;padding:110px 0 70px;overflow:hidden;
  background:radial-gradient(60% 50% at 85% 20%,var(--petal),transparent 70%),radial-gradient(50% 50% at 5% 90%,var(--blush),transparent 70%),var(--bg)}
.herogrid{display:grid;gap:56px;grid-template-columns:1.05fr .95fr;align-items:center}
.hero h1{font-size:clamp(2.9rem,7.5vw,5.6rem);margin:6px 0 22px}
.hero p.sub{color:var(--muted);max-width:42ch;font-size:1.08rem;margin-bottom:32px}
.btns{display:flex;gap:12px;flex-wrap:wrap}
.reel{position:relative;aspect-ratio:4/5;max-width:440px;width:100%;justify-self:center;border-radius:220px 220px 28px 28px;overflow:hidden;box-shadow:var(--shadow);
  background:linear-gradient(160deg,#ffd3e5,#f58bb7 55%,#c9306f)}
.reel video,.reel img.poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.reel .glow{position:absolute;inset:0;background:radial-gradient(circle at 30% 20%,rgba(255,255,255,.55),transparent 55%);mix-blend-mode:soft-light}
.reel .tagline{position:absolute;left:0;right:0;bottom:26px;text-align:center;color:#fff;font-family:var(--script);font-size:2.3rem;text-shadow:0 2px 14px rgba(0,0,0,.25)}
.badge{position:absolute;z-index:2;background:var(--paper);border-radius:16px;padding:12px 18px;box-shadow:var(--shadow);font-size:.82rem;line-height:1.35;animation:float 6s ease-in-out infinite}
.badge b{display:block;font-family:var(--serif);font-size:1.15rem;font-weight:600}
.reelwrap{position:relative;justify-self:center;width:100%;max-width:440px}
.badge.b1{left:-34px;top:20%}.badge.b2{right:-26px;bottom:22%;animation-delay:-3s}
@keyframes float{50%{transform:translateY(-10px)}}
.petal{position:absolute;width:14px;height:14px;background:var(--rose);border-radius:100% 0 100% 0;opacity:.55;animation:fall linear infinite;pointer-events:none}
@keyframes fall{from{transform:translateY(-10vh) rotate(0)}to{transform:translateY(110vh) rotate(540deg)}}

/* marquee */
.marquee{background:var(--pink-d);color:var(--btn-ink);overflow:hidden;white-space:nowrap;padding:15px 0}
.marquee div{display:inline-block;animation:slide 32s linear infinite;font-family:var(--serif);font-size:1.25rem;font-style:italic}
.marquee span{margin:0 26px}
@keyframes slide{to{transform:translateX(-50%)}}

/* before / after */
.ba-tabs{display:flex;gap:10px;justify-content:center;margin-bottom:30px;flex-wrap:wrap}
.chip{padding:10px 22px;border-radius:999px;border:1px solid var(--rose);background:transparent;color:var(--ink);cursor:pointer;font:400 .85rem var(--sans);letter-spacing:.08em;transition:.2s}
.chip[aria-selected=true]{background:var(--pink-d);color:var(--btn-ink);border-color:var(--pink-d)}
.ba{position:relative;max-width:min(720px,calc(78vh * var(--r,1.33)));margin:0 auto;aspect-ratio:4/3;border-radius:28px;overflow:hidden;box-shadow:var(--shadow);user-select:none;touch-action:pan-y;--pos:50%}
.ba .layer{position:absolute;inset:0;display:grid;place-items:center;font-family:var(--serif)}
.ba img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ba .after{background:linear-gradient(135deg,#ffd0e3,#f27cb0 60%,#d6336f)}
.ba .before{background:linear-gradient(135deg,#efe5e8,#cbbfc4);clip-path:inset(0 calc(100% - var(--pos)) 0 0)}
.ba .ph{color:#fff;text-align:center;font-size:1.1rem;opacity:.9;padding:20px}
.ba .before .ph{color:#6e5e65}
.ba .ph b{display:block;font-size:2.4rem;font-weight:500}
.ba .lbl{position:absolute;top:18px;padding:6px 16px;border-radius:999px;background:rgba(255,255,255,.88);color:#3a2a32;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;font-weight:500;z-index:3}
.ba .l1{left:18px}.ba .l2{right:18px}
.ba .bar{position:absolute;top:0;bottom:0;left:var(--pos);width:2px;background:#fff;z-index:4;transform:translateX(-1px);pointer-events:none}
.ba .knob{position:absolute;top:50%;left:var(--pos);width:54px;height:54px;border-radius:50%;background:#fff;z-index:5;transform:translate(-50%,-50%);display:grid;place-items:center;box-shadow:0 6px 22px rgba(0,0,0,.25);color:var(--pink-d);font-size:1.1rem;letter-spacing:-2px;pointer-events:none}
.ba input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:ew-resize;z-index:6;margin:0}
.ba input:focus-visible~.knob{outline:3px solid var(--pink-d);outline-offset:3px}
.note{text-align:center;color:var(--muted);font-size:.85rem;margin-top:16px}

/* services */
.alt{background:var(--blush)}
.cards{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.card{background:var(--paper);border-radius:28px;padding:36px 32px;box-shadow:var(--shadow);border:1px solid var(--line)}
.card h3{font-size:2rem;margin-bottom:6px}
.card .desc{color:var(--muted);margin-bottom:20px;font-size:.96rem}
.tag{font-size:.76rem;letter-spacing:.2em;text-transform:uppercase;color:var(--pink-d);margin:20px 0 4px;font-weight:500}
.price{list-style:none;padding:0}
.price li{display:flex;align-items:baseline;gap:10px;padding:11px 0}
.price li::after{content:"";order:2;flex:1;border-bottom:1px dotted var(--rose);transform:translateY(-4px)}
.price .n{order:1}
.price .p{order:3;font-family:var(--serif);font-size:1.4rem;color:var(--pink-d);font-weight:600}
.price .p small{font:300 .8rem var(--sans);color:var(--muted)}

/* gallery */
.gal{display:grid;gap:16px;grid-template-columns:repeat(3,1fr);grid-auto-flow:dense}
.gal figure.pair{grid-column:span 2;aspect-ratio:1.65;background:#fff}
.gal figure{position:relative;border-radius:24px;overflow:hidden;box-shadow:var(--shadow);background:var(--petal);aspect-ratio:4/5}
.gal img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.gal figure:hover img{transform:scale(1.06)}
.gal figcaption{position:absolute;left:14px;bottom:12px;padding:4px 14px;border-radius:999px;background:rgba(255,255,255,.9);color:#3a2a32;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
@media (max-width:760px){.gal{grid-template-columns:repeat(2,1fr);gap:12px}.gal figure.wide{grid-column:span 2;aspect-ratio:16/10}}

.gal figure{animation:galIn .55s both}
@keyframes galIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

/* video stories */
.stories{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 20px;padding:6px 20px 26px;margin:0 -20px;scrollbar-width:none}
.stories::-webkit-scrollbar{display:none}
.story{flex:0 0 min(240px,68vw);aspect-ratio:9/16;border-radius:24px;overflow:hidden;position:relative;scroll-snap-align:start;cursor:pointer;box-shadow:var(--shadow);border:0;padding:0;color:#fff;text-align:left;font:inherit;
  background:linear-gradient(170deg,var(--c1),var(--c2))}
.story video,.story img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.story .cap{position:absolute;left:16px;right:16px;bottom:16px;z-index:2;font-family:var(--serif);font-size:1.3rem;line-height:1.15;text-shadow:0 2px 12px rgba(0,0,0,.3)}
.story .cap small{display:block;font:400 .78rem var(--sans);letter-spacing:.14em;text-transform:uppercase;margin-bottom:4px}
.story .play{position:absolute;top:16px;right:16px;z-index:2;width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.9);color:var(--pink-d);display:grid;place-items:center;transition:transform .25s}
.story:hover .play{transform:scale(1.12)}
.story.playing .play{display:none}

/* process */
.steps{display:grid;gap:22px;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));counter-reset:s}
.step{background:var(--paper);border-radius:24px;padding:28px 24px;border:1px solid var(--line)}
.step::before{counter-increment:s;content:"0" counter(s);font-family:var(--serif);font-size:2.6rem;color:var(--rose);display:block;line-height:1;margin-bottom:10px}
.step h3{font-size:1.4rem;margin-bottom:6px}
.step p{color:var(--muted);font-size:.93rem}

/* outlets */
.outlet h3{font-size:1.7rem}
.outlet p{color:var(--muted);margin:6px 0 14px}
.outlet .row{display:flex;gap:10px;flex-wrap:wrap}
.outlet .btn{padding:10px 20px;font-size:.82rem}
.hours{display:inline-block;margin-bottom:30px;padding:8px 20px;border-radius:999px;background:var(--petal);font-size:.85rem;letter-spacing:.06em}

/* faq */
.faqcols{display:grid;gap:0 40px;grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.faqcols h3{font-size:1.7rem;margin:6px 0 16px}
details{border-bottom:1px solid var(--line);padding:0}
summary{cursor:pointer;font-weight:400;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:1.02rem;padding:16px 0;min-height:52px}
summary::-webkit-details-marker{display:none}
summary::after{content:"+";color:var(--pink-d);font-size:1.5rem;line-height:1;transition:transform .3s}
details[open] summary::after{transform:rotate(45deg)}
details p{margin:0 0 16px;color:var(--muted);font-size:.96rem}

/* cta */
.cta{background:linear-gradient(135deg,#f27cb0,#c9306f);color:#fff;border-radius:36px;padding:70px 28px;text-align:center;overflow:hidden;position:relative}
.cta h2{color:#fff;font-size:clamp(2.2rem,5vw,3.6rem)}
.cta h2 em{color:#ffe3ee}
.cta p{max-width:44ch;margin:0 auto 28px;opacity:.92}
.cta .btn{background:#fff;color:#c9306f}
.cta .btn.ghost{background:transparent;color:#fff;border-color:rgba(255,255,255,.7)}
footer{padding:44px 0 30px;text-align:center;color:var(--muted);font-size:.86rem}
footer .locs{margin-bottom:4px}

/* floating */
.wa{position:fixed;right:18px;bottom:92px;z-index:30;width:58px;height:58px;border-radius:50%;background:#25d366;display:grid;place-items:center;box-shadow:0 10px 28px rgba(37,211,102,.45);text-decoration:none;animation:pulse 2.6s infinite}
.wa svg{width:30px;height:30px;fill:#fff}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(37,211,102,.5)}70%{box-shadow:0 0 0 18px rgba(37,211,102,0)}100%{box-shadow:0 0 0 0 rgba(37,211,102,0)}}
.dock{position:fixed;left:0;right:0;bottom:0;z-index:25;background:color-mix(in srgb,var(--paper) 92%,transparent);backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:10px 16px;display:flex;gap:10px;justify-content:center;transform:translateY(110%);transition:transform .4s}
.dock.show{transform:none}
.dock .btn{flex:1;max-width:260px;justify-content:center;padding:13px 16px}

/* reveal */
.rv{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s}
.rv.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv{opacity:1;transform:none}html{scroll-behavior:auto}}

@media (max-width:860px){
  nav{display:none}
  .wa{display:none}
  .herogrid{grid-template-columns:1fr;gap:40px}
  .reelwrap{order:-1;max-width:340px}
  .badge.b1{left:-8px}.badge.b2{right:-8px}
  section{padding:64px 0}
}
@media (min-width:861px){.dock{display:none}body{padding-bottom:0}.wa{bottom:24px}}

/* reviews widgets */
.reviews-embed{min-height:140px;max-width:100%;overflow:hidden}
.reviews-embed>*{max-width:100%}
/* keep the review pop-up above the mobile WhatsApp/Call bar */
@media (max-width:860px){html body div.cleanslate[class*="gfs-popup"][class*="screenSide"][class*="js-gfs-widget"]{bottom:88px!important;left:12px!important;right:auto!important;max-width:calc(100vw - 24px)!important;width:auto!important}}
