/* Plush Beauty Bar — "Bold & Loud" expressive boutique system */
:root{
  --rose:#E14B82; --pink:#ED6FA0; --cream:#FCEFF2; --plum:#2B1622;
  --coral:#FF8C5A; --gold:#F4C76B;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Space Grotesk',system-ui,sans-serif;background:var(--cream);color:var(--plum);overflow-x:hidden;-webkit-font-smoothing:antialiased}
.display{font-family:'Fraunces',Georgia,serif}
h1,h2,h3{line-height:.92;letter-spacing:-.02em}
a{color:inherit;text-decoration:none}
img{display:block;max-width:100%}
.wrap{max-width:1280px;margin:0 auto;padding:0 28px}

/* HEADER */
header{position:sticky;top:0;z-index:100;background:var(--plum);border-bottom:3px solid var(--plum)}
.nav{display:flex;align-items:center;justify-content:space-between;height:74px}
.wordmark{font-family:'Fraunces',serif;font-weight:900;font-size:1.7rem;color:var(--cream);letter-spacing:-.03em;line-height:1;display:flex;align-items:baseline;gap:.4rem}
.wordmark .dot{color:var(--coral)}
.navlinks{display:flex;gap:34px;align-items:center}
.navlinks a{color:var(--cream);font-weight:500;font-size:.92rem;text-transform:uppercase;letter-spacing:.12em;position:relative;transition:color .2s}
.navlinks a:not(.btn):after{content:"";position:absolute;left:0;bottom:-6px;height:2px;width:0;background:var(--coral);transition:width .25s}
.navlinks a:not(.btn):hover{color:var(--pink)}
.navlinks a:not(.btn):hover:after{width:100%}
.navlinks a.active:not(.btn):after{width:100%}
.btn{background:var(--rose);color:#fff!important;padding:12px 22px;border-radius:999px;font-weight:700;letter-spacing:.06em;transition:transform .18s,background .18s;border:2px solid var(--rose)}
.btn:hover{background:var(--coral);border-color:var(--coral);transform:translateY(-2px) rotate(-1.5deg)}
.navtoggle{display:none;background:none;border:none;color:var(--cream);font-size:1.6rem;cursor:pointer}

/* MARQUEE */
.marquee{background:var(--coral);color:var(--plum);border-top:3px solid var(--plum);border-bottom:3px solid var(--plum);overflow:hidden;white-space:nowrap;padding:13px 0}
.marquee .track{display:inline-block;will-change:transform;animation:scroll 22s linear infinite}
.marquee span{font-family:'Fraunces',serif;font-weight:900;font-size:1.3rem;text-transform:uppercase;letter-spacing:.04em;padding:0 26px}
.marquee .star{color:var(--rose)}
@keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* BUTTONS */
.btn-dark{background:var(--plum);color:var(--cream)!important;border:2px solid var(--plum);padding:15px 30px;border-radius:999px;font-weight:700;letter-spacing:.06em;transition:transform .18s,background .18s;font-size:1rem;display:inline-block}
.btn-dark:hover{background:var(--rose);border-color:var(--rose);transform:translateY(-2px) rotate(1.5deg)}
.btn-out{border:2px solid var(--plum);padding:15px 28px;border-radius:999px;font-weight:700;letter-spacing:.06em;transition:.18s;display:inline-block}
.btn-out:hover{background:var(--plum);color:var(--cream)}

/* HERO (home) */
.hero{position:relative;padding:72px 0 90px;background:var(--cream)}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center}
.hero-eyebrow{display:inline-flex;align-items:center;gap:10px;font-weight:700;text-transform:uppercase;letter-spacing:.18em;font-size:.78rem;color:var(--rose);margin-bottom:22px}
.hero-eyebrow .pill{background:var(--plum);color:var(--cream);padding:5px 12px;border-radius:999px;letter-spacing:.1em}
.hero h1{font-family:'Fraunces',serif;font-weight:900;font-size:clamp(3.4rem,8.2vw,7.3rem);color:var(--plum);margin-bottom:26px}
.hero h1 .out{color:transparent;-webkit-text-stroke:2px var(--rose);font-style:italic}
.hero h1 .fill{color:var(--rose)}
.hero p.lede{font-size:1.18rem;max-width:30ch;line-height:1.5;color:var(--plum);margin-bottom:32px;font-weight:400}
.hero-cta{display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.hero-photo{position:relative}
.hero-photo .main{border:5px solid var(--plum);border-radius:8px;overflow:hidden;box-shadow:14px 14px 0 var(--pink);transform:rotate(-1.5deg);transition:transform .4s}
.hero-photo .main:hover{transform:rotate(0)}
.hero-photo .main img{width:100%;height:430px;object-fit:cover;object-position:center 25%}
.sticker{position:absolute;display:grid;place-items:center;text-align:center;font-family:'Fraunces',serif;font-weight:900;border:3px solid var(--plum);border-radius:50%;z-index:5}
.sticker-est{width:122px;height:122px;background:var(--gold);color:var(--plum);top:-34px;left:-34px;font-size:.95rem;line-height:1.05;padding:10px;animation:wiggle 4s ease-in-out infinite}
.sticker-est small{display:block;font-family:'Space Grotesk';font-weight:700;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;margin-top:4px}
.sticker-appt{background:var(--rose);color:#fff;border-radius:999px;bottom:24px;right:-26px;font-size:.82rem;font-weight:700;font-family:'Space Grotesk';text-transform:uppercase;letter-spacing:.1em;padding:13px 20px;transform:rotate(6deg)}
@keyframes wiggle{0%,100%{transform:rotate(-8deg)}50%{transform:rotate(8deg)}}

/* PAGE HERO (inner pages) */
.page-hero{background:var(--plum);color:var(--cream);padding:64px 0 70px;position:relative;overflow:hidden}
.page-hero .eyebrow{font-weight:700;text-transform:uppercase;letter-spacing:.2em;font-size:.78rem;color:var(--coral);margin-bottom:18px;display:block}
.page-hero h1{font-family:'Fraunces',serif;font-weight:900;font-size:clamp(2.8rem,7vw,5.6rem);color:var(--cream)}
.page-hero h1 em{font-style:italic;color:var(--pink)}
.page-hero p{font-size:1.15rem;max-width:46ch;margin-top:20px;line-height:1.5;color:rgba(252,239,242,.85)}

/* REVEAL */
.reveal{opacity:0;transform:translateY(34px);transition:opacity .7s ease,transform .7s ease}
.reveal.in{opacity:1;transform:none}

/* SERVICES (home) */
.services{background:var(--plum);color:var(--cream);padding:96px 0;border-top:3px solid var(--plum)}
.sec-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:54px;flex-wrap:wrap}
.sec-head h2{font-family:'Fraunces',serif;font-weight:900;font-size:clamp(2.6rem,6vw,5rem);color:var(--cream)}
.sec-head h2 em{color:var(--pink);font-style:italic}
.sec-head .tag{font-size:.8rem;text-transform:uppercase;letter-spacing:.2em;color:var(--coral);font-weight:700;max-width:24ch;text-align:right}
.svc{display:grid;grid-template-columns:90px 1.2fr 1fr;gap:36px;align-items:center;padding:42px 0;border-top:2px solid rgba(252,239,242,.2);transition:padding-left .3s}
.svc:hover{padding-left:14px}
.svc:last-child{border-bottom:2px solid rgba(252,239,242,.2)}
.svc .num{font-family:'Fraunces',serif;font-weight:900;font-size:2.6rem;color:var(--coral)}
.svc-main h3{font-family:'Fraunces',serif;font-weight:900;font-size:clamp(2rem,4vw,3.2rem);color:var(--cream);margin-bottom:8px;transition:color .25s}
.svc:hover .svc-main h3{color:var(--pink)}
.svc-main .with{color:var(--gold);font-weight:700;letter-spacing:.04em;margin-bottom:14px;font-size:1.02rem}
.tag-list{list-style:none;display:flex;flex-wrap:wrap;gap:8px 10px}
.tag-list li{font-size:.85rem;border:1.5px solid rgba(252,239,242,.35);padding:6px 13px;border-radius:999px;color:var(--cream);transition:.2s}
.svc:hover .tag-list li{border-color:var(--pink)}
.svc-side .booknote{font-size:1.05rem;font-weight:500;margin-bottom:14px;line-height:1.4;color:var(--cream)}
.svc-side .booknote strong{color:var(--coral)}
.svc-img{width:100%;height:170px;object-fit:cover;border:4px solid var(--cream);border-radius:6px;transform:rotate(2deg);transition:transform .35s;box-shadow:8px 8px 0 var(--rose)}
.svc-img:hover{transform:rotate(0) scale(1.02)}

/* BIO SPLIT (lashes/nails inner) */
.bio{padding:90px 0;background:var(--cream)}
.bio-grid{display:grid;grid-template-columns:.85fr 1.15fr;gap:54px;align-items:center}
.bio.reverse .bio-grid{grid-template-columns:1.15fr .85fr}
.bio.reverse .bio-photo{order:2}
.bio-photo{position:relative}
.bio-photo .frame{border:5px solid var(--plum);border-radius:8px;overflow:hidden;box-shadow:14px 14px 0 var(--pink);transform:rotate(-1.5deg);transition:transform .4s}
.bio.reverse .bio-photo .frame{box-shadow:-14px 14px 0 var(--coral);transform:rotate(1.5deg)}
.bio-photo .frame:hover{transform:rotate(0)}
.bio-photo img{width:100%;height:480px;object-fit:cover;object-position:center 25%}
.bio-text .eyebrow{font-weight:700;text-transform:uppercase;letter-spacing:.2em;font-size:.78rem;color:var(--rose);margin-bottom:14px;display:block}
.bio-text h2{font-family:'Fraunces',serif;font-weight:900;font-size:clamp(2.2rem,5vw,3.8rem);color:var(--plum);margin-bottom:8px}
.bio-text .with{color:var(--gold);font-weight:700;font-size:1.05rem;margin-bottom:20px}
.bio-text p{font-size:1.08rem;line-height:1.65;margin-bottom:16px;max-width:48ch}
.bio-text .tag-list{margin:22px 0 28px}
.bio-text .tag-list li{border-color:var(--plum);color:var(--plum)}
.bio-text .tag-list li:hover{background:var(--plum);color:var(--cream)}

/* GALLERY */
.gallery-sec{background:var(--plum);padding:90px 0}
.gallery-sec .sec-head h2{color:var(--cream)}
.gallery{columns:4 220px;column-gap:18px}
.gallery img{width:100%;margin-bottom:18px;border:3px solid var(--cream);border-radius:6px;transition:transform .35s}
.gallery img:nth-child(even){transform:rotate(1.4deg)}
.gallery img:nth-child(odd){transform:rotate(-1.4deg)}
.gallery img:hover{transform:rotate(0) scale(1.03)}

/* TESTIMONIAL */
.quote{background:var(--pink);color:var(--plum);padding:110px 0;position:relative;overflow:hidden;border-top:3px solid var(--plum)}
.quote .bigmark{position:absolute;font-family:'Fraunces',serif;font-weight:900;font-size:34rem;line-height:.6;color:var(--rose);opacity:.4;top:-30px;left:-10px;pointer-events:none;user-select:none}
.quote .inner{position:relative;z-index:2;max-width:18ch}
.quote blockquote{font-family:'Fraunces',serif;font-weight:600;font-style:italic;font-size:clamp(1.9rem,4.6vw,3.6rem);line-height:1.12;letter-spacing:-.01em}
.quote blockquote .hi{background:var(--cream);box-decoration-break:clone;-webkit-box-decoration-break:clone;padding:0 .12em}
.quote cite{display:block;margin-top:30px;font-family:'Space Grotesk';font-style:normal;font-weight:700;text-transform:uppercase;letter-spacing:.14em;font-size:.85rem;color:var(--plum)}
.quote cite:before{content:"— ";color:var(--rose)}

/* COLLECTIVE */
.collective{background:var(--cream);padding:100px 0}
.coll-grid{display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}
.coll-text h2{font-family:'Fraunces',serif;font-weight:900;font-size:clamp(2.6rem,5.5vw,4.6rem);color:var(--plum);margin-bottom:24px}
.coll-text h2 em{font-style:italic;color:var(--rose)}
.coll-text p{font-size:1.12rem;line-height:1.6;margin-bottom:18px;max-width:46ch}
.coll-stats{display:flex;gap:38px;margin-top:34px;flex-wrap:wrap}
.stat .n{font-family:'Fraunces',serif;font-weight:900;font-size:3rem;color:var(--rose);line-height:1}
.stat .l{font-size:.78rem;text-transform:uppercase;letter-spacing:.16em;font-weight:700;margin-top:6px}
.coll-photo{position:relative}
.coll-photo .frame{border:5px solid var(--plum);border-radius:8px;overflow:hidden;box-shadow:-14px 14px 0 var(--coral);transform:rotate(1.3deg);transition:transform .4s}
.coll-photo .frame:hover{transform:rotate(0)}
.coll-photo img{width:100%;height:420px;object-fit:cover;object-position:center 30%}
.coll-photo .feat{position:absolute;bottom:-44px;left:-34px;width:160px;height:200px;border:4px solid var(--plum);border-radius:6px;overflow:hidden;box-shadow:7px 7px 0 var(--pink);transform:rotate(-4deg);z-index:4;transition:transform .35s;background:var(--plum)}
.coll-photo .feat:hover{transform:rotate(0) scale(1.04)}
.coll-photo .feat img{width:100%;height:100%;object-fit:cover;object-position:center 18%}

/* VISIT / CONTACT */
.visit{background:var(--rose);color:#fff;padding:96px 0;border-top:3px solid var(--plum)}
.visit-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.visit h2{font-family:'Fraunces',serif;font-weight:900;font-size:clamp(2.8rem,6vw,5.4rem);color:#fff;margin-bottom:26px}
.visit h2 .out{color:transparent;-webkit-text-stroke:2px var(--cream);font-style:italic}
.visit .info{font-size:1.18rem;line-height:1.7}
.visit .info .lbl{text-transform:uppercase;letter-spacing:.18em;font-size:.76rem;font-weight:700;color:var(--plum);display:block;margin-top:22px}
.visit .info a:hover{color:var(--gold)}
.visit-card{background:var(--cream);color:var(--plum);border:4px solid var(--plum);border-radius:10px;padding:40px;box-shadow:12px 12px 0 var(--plum);transform:rotate(-1.2deg)}
.visit-card h3{font-family:'Fraunces',serif;font-weight:900;font-size:1.9rem;margin-bottom:14px}
.visit-card p{font-size:1rem;line-height:1.55;margin-bottom:22px}
.visit-card .ig{display:inline-flex;align-items:center;gap:8px;margin-top:18px;font-weight:700;letter-spacing:.04em}
.visit-card .ig:hover{color:var(--rose)}

/* CONTACT page specifics */
.contact-rows{background:var(--cream);padding:80px 0}
.crow{display:grid;grid-template-columns:200px 1fr;gap:24px;padding:22px 0;border-top:2px solid rgba(43,22,34,.15);font-size:1.1rem;align-items:start}
.crow:last-child{border-bottom:2px solid rgba(43,22,34,.15)}
.crow .k{font-family:'Space Grotesk';font-weight:700;text-transform:uppercase;letter-spacing:.16em;font-size:.8rem;color:var(--rose)}
.crow a{border-bottom:2px solid var(--pink)}
.crow a:hover{color:var(--rose)}
.map-embed{width:100%;border:5px solid var(--plum);border-radius:8px;box-shadow:14px 14px 0 var(--coral);min-height:420px;margin-top:10px}

/* CTA band */
.cta-band{background:var(--plum);color:var(--cream);padding:90px 0;text-align:center}
.cta-band h2{font-family:'Fraunces',serif;font-weight:900;font-size:clamp(2.4rem,6vw,4.4rem);margin-bottom:14px}
.cta-band h2 em{font-style:italic;color:var(--pink)}
.cta-band p{font-size:1.1rem;color:rgba(252,239,242,.85);max-width:40ch;margin:0 auto 30px}
.cta-band .hero-cta{justify-content:center}
.cta-band .btn-out{color:var(--cream);border-color:var(--cream)}
.cta-band .btn-out:hover{background:var(--cream);color:var(--plum)}

/* FOOTER */
footer{background:var(--plum);color:var(--cream);padding:58px 0 40px}
.foot-top{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;flex-wrap:wrap;border-bottom:2px solid rgba(252,239,242,.18);padding-bottom:30px;margin-bottom:24px}
.foot-wm{font-family:'Fraunces',serif;font-weight:900;font-size:2.6rem;color:var(--cream)}
.foot-wm .dot{color:var(--coral)}
.foot-nav{display:flex;gap:26px;flex-wrap:wrap}
.foot-nav a{text-transform:uppercase;letter-spacing:.12em;font-size:.82rem;font-weight:500}
.foot-nav a:hover{color:var(--pink)}
.foot-bottom{display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:.8rem;color:rgba(252,239,242,.7)}
.foot-bottom .credit a{color:var(--coral);font-weight:700}

/* RESPONSIVE */
@media(max-width:880px){
  .navlinks{position:absolute;top:74px;left:0;right:0;background:var(--plum);flex-direction:column;gap:20px;padding:26px;display:none;border-bottom:3px solid var(--coral)}
  .navlinks.open{display:flex}
  .navtoggle{display:block}
  .hero-grid{grid-template-columns:1fr;gap:64px}
  .hero-photo{max-width:480px}
  .svc{grid-template-columns:60px 1fr}
  .svc-side{grid-column:1 / -1}
  .svc-img{height:200px;max-width:340px}
  .bio-grid,.bio.reverse .bio-grid{grid-template-columns:1fr;gap:48px}
  .bio.reverse .bio-photo{order:0}
  .gallery{columns:2 150px}
  .coll-grid{grid-template-columns:1fr;gap:64px}
  .coll-photo .feat{left:auto;right:-14px;width:130px;height:165px;bottom:-30px}
  .visit-grid{grid-template-columns:1fr}
  .quote .bigmark{font-size:20rem}
  .crow{grid-template-columns:1fr;gap:6px}
}
@media(max-width:420px){
  .wrap{padding:0 20px}
  .hero{padding:48px 0 70px}
  .sticker-est{width:96px;height:96px;font-size:.78rem;top:-22px;left:-16px}
  .sticker-appt{right:-6px}
  .hero-photo .main img{height:340px}
  .bio-photo img{height:380px}
  .svc{grid-template-columns:46px 1fr;gap:16px}
  .svc .num{font-size:1.8rem}
  .visit-card{padding:28px;box-shadow:8px 8px 0 var(--plum)}
  .foot-top{flex-direction:column;align-items:flex-start}
}
