:root{
  --cream:#FBF5F1;
  --white:#FFFFFF;
  --plum:#4A1E3F;
  --plum-2:#6E3460;
  --malva:#B784A7;
  --blush:#F5DCDF;
  --blush-2:#FBEDEE;
  --gold:#C29A5B;
  --text:#2F1F2B;
  --muted:#6C5866;
  --line:#EBDCDD;
  --head:'DM Serif Display', Georgia, serif;
  --body:'Manrope', system-ui, sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--cream);color:var(--text);line-height:1.6;overflow-x:hidden}
a{color:inherit}
h1,h2,h3,.wordmark{font-family:var(--head);font-weight:400;line-height:1.1;color:var(--plum)}
em{font-style:italic}

.demo-bar{background:var(--plum);color:#F1DCE8;font-size:.75rem;text-align:center;padding:.35rem 1rem;letter-spacing:.04em}

.top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.5rem 1rem;padding:1rem 1.25rem;background:var(--cream);border-bottom:1px solid var(--line)}
.wordmark{font-size:1.7rem;text-decoration:none}
.wordmark em{color:var(--malva)}
.nav{display:flex;gap:1.2rem;font-weight:700;font-size:.92rem}
.nav a{text-decoration:none;color:var(--muted)}
.nav a:hover{color:var(--plum)}

section{padding:3rem 1.25rem}
h2{font-size:clamp(2rem,7vw,2.8rem)}

/* Hero */
.hero{display:grid;gap:2rem;padding-top:2.5rem;background:linear-gradient(180deg,var(--blush-2),var(--cream))}
.eyebrow{font-size:.78rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--plum-2)}
.hero h1{font-size:clamp(2.3rem,9vw,4rem);margin:.9rem 0 1rem}
.hero h1 em{display:block;color:var(--plum-2)}
.hook{font-size:1.06rem;color:var(--muted);max-width:42ch}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.5rem;margin-top:1.6rem}
.btn{display:inline-block;background:var(--plum);color:#fff;text-decoration:none;font-weight:800;padding:.95rem 1.6rem;border-radius:999px;transition:background .15s}
.btn:hover{background:var(--plum-2)}
.text-link{font-weight:700;color:var(--plum);text-underline-offset:4px}
.hint{font-size:.85rem;color:var(--muted);margin-top:.8rem}

.hero-art{position:relative;height:300px;width:100%;max-width:420px;margin:0 auto}
.arch{position:absolute;left:12%;right:12%;top:0;bottom:0;background:var(--blush);border-radius:999px 999px 24px 24px}
.mirror{position:absolute;left:50%;top:30px;transform:translateX(-50%);width:130px;height:170px;border-radius:999px;background:linear-gradient(160deg,#fff 0%,#EFE3EA 100%);border:6px solid var(--gold);box-shadow:0 14px 30px rgba(74,30,63,.15)}
.mirror::after{content:"";position:absolute;left:50%;bottom:-46px;transform:translateX(-50%);width:10px;height:40px;background:var(--gold);border-radius:4px}
.glint{position:absolute;left:24px;top:26px;width:16px;height:50px;border-radius:999px;background:rgba(255,255,255,.9);transform:rotate(18deg)}
.comb{position:absolute;left:2%;bottom:52px;width:110px;height:22px;background:repeating-linear-gradient(90deg,var(--plum-2) 0 6px,transparent 6px 10px);border-top:10px solid var(--plum-2);border-radius:6px 6px 0 0;transform:rotate(-14deg)}
.polish{position:absolute;right:6%;bottom:38px;width:42px;height:48px;border-radius:12px;background:var(--malva)}
.polish .cap{position:absolute;left:50%;top:-34px;transform:translateX(-50%);width:20px;height:36px;border-radius:6px 6px 2px 2px;background:var(--plum)}
.petal{position:absolute;width:18px;height:18px;background:var(--malva);border-radius:0 60% 0 60%;opacity:.8}
.p1{left:18%;top:16%}.p2{right:16%;top:30%;transform:rotate(60deg);width:14px;height:14px}.p3{left:26%;top:56%;transform:rotate(120deg);width:12px;height:12px;background:var(--gold)}
.ticket{position:absolute;right:0;bottom:-6px;background:var(--white);border:1px solid var(--line);border-radius:16px;padding:.7rem 1rem;box-shadow:0 10px 24px rgba(74,30,63,.12)}
.t-title{font-size:.68rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--plum-2)}
.t-line{font-family:var(--head);font-size:1.1rem;color:var(--plum);white-space:nowrap}
.t-sub{font-size:.82rem;color:var(--muted)}

/* Services */
.head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:.6rem 1rem;margin-bottom:1.6rem}
.badge,.tag-ex{display:inline-block;font-size:.76rem;font-weight:800;background:var(--blush);color:var(--plum);padding:.28rem .75rem;border-radius:999px}
.svc-grid{display:grid;gap:1rem}
.svc{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:1.3rem}
.svc h3{font-size:1.5rem;margin-bottom:.6rem}
.svc-ico{display:block;width:42px;height:42px;border-radius:50%;background:var(--blush);position:relative;margin-bottom:.8rem}
.svc-ico::after{content:"";position:absolute;inset:12px;background:var(--plum-2)}
.ico-cut::after{border-radius:50% 0 50% 0}
.ico-color::after{border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--malva)}
.ico-nails::after{inset:10px 14px;border-radius:999px 999px 4px 4px}
.ico-style::after{border-radius:50%;background:transparent;border:4px solid var(--gold)}
.price-list{list-style:none}
.price-list li{display:flex;justify-content:space-between;align-items:baseline;gap:.4rem 1rem;padding:.55rem 0;border-top:1px dashed var(--line)}
.price-list span{color:var(--muted)}
.price-list b{color:var(--plum);white-space:nowrap}
.fine{font-size:.82rem;color:var(--muted);margin-top:1.2rem;max-width:80ch}

/* Booking */
.booking{display:grid;gap:2rem;background:var(--plum);color:#F3E4EE}
.booking h2{color:#fff}
.steps{list-style:none;counter-reset:s;display:grid;gap:.9rem;margin:1.5rem 0}
.steps li{counter-increment:s;position:relative;padding-left:2.9rem;color:#E4CFDD}
.steps li b{color:#fff}
.steps li::before{content:counter(s);position:absolute;left:0;top:-.1rem;width:2rem;height:2rem;border-radius:50%;background:var(--blush);color:var(--plum);display:grid;place-items:center;font-family:var(--head);font-size:1.1rem}
.wa-line{font-weight:800}
.booking .prov{color:#D9BFD0}
.prov{font-size:.8rem;font-weight:500;color:var(--muted);white-space:nowrap}
.week{background:var(--white);color:var(--text);border-radius:24px;padding:1.2rem}
.week-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:1rem}
.week-title{font-family:var(--head);font-size:1.4rem;color:var(--plum)}
.days{display:grid;grid-template-columns:repeat(2,1fr);gap:.7rem}
.day{border:1px solid var(--line);border-radius:16px;padding:.75rem}
.day-name{font-weight:800;font-size:.88rem;color:var(--plum);margin-bottom:.5rem}
.slots{display:grid;gap:.4rem}
.slot{display:block;white-space:nowrap;text-align:center;text-decoration:none;font-weight:700;font-size:.9rem;padding:.45rem .3rem;border-radius:999px;background:var(--blush-2);color:var(--plum);border:1px solid var(--blush);transition:background .15s,color .15s}
.slot:hover{background:var(--plum);color:#fff}
.day-off{background:var(--cream)}
.off{font-size:.9rem;color:var(--muted)}
.btn-full{display:block;text-align:center;margin-top:1rem}
.week-note{font-size:.84rem;color:var(--muted);margin-top:.8rem}

/* Tips */
.tips h2{margin-bottom:1.5rem}
.tips-grid{display:grid;gap:1rem}
.tip{background:var(--white);border:1px solid var(--line);border-radius:22px;padding:1.3rem;border-left:5px solid var(--malva)}
.tip h3{font-size:1.35rem;margin-bottom:.4rem}
.tip p{color:var(--muted)}
.tag-ex{margin-top:.8rem}

/* Where */
.where{display:grid;gap:2rem;background:var(--blush-2)}
.addr{margin-top:1rem}
.hours{list-style:none;margin-top:1.2rem;border-top:2px solid var(--plum)}
.hours li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:.25rem 1rem;padding:.7rem 0;border-bottom:1px solid var(--line)}
.hours li span:last-child{font-weight:800;color:var(--plum);white-space:nowrap}
.hours .closed span{color:var(--muted)!important}
.small-links{font-size:.92rem;margin-top:1rem}
.small-links a{color:var(--plum);font-weight:800}
.map{position:relative;min-height:250px;border-radius:24px;overflow:hidden;background:#F1E4E6;border:1px solid var(--line)}
.road{position:absolute;background:#fff}
.rd1{left:0;right:0;top:56%;height:20px}
.rd2{top:0;bottom:0;left:38%;width:18px}
.block{position:absolute;background:#E7D3D8;border-radius:10px}
.b1{left:6%;top:12%;width:26%;height:34%}
.b2{left:50%;top:12%;width:40%;height:34%}
.b3{left:50%;top:70%;width:32%;height:22%}
.pin{position:absolute;left:calc(38% + 26px);top:calc(56% - 44px);width:34px;height:34px;background:var(--plum);border-radius:50% 50% 50% 0;transform:rotate(-45deg)}
.pin::after{content:"";position:absolute;inset:10px;background:#fff;border-radius:50%}
.map-label{position:absolute;left:12px;bottom:12px;background:var(--plum);color:#fff;font-size:.75rem;font-weight:700;padding:.25rem .65rem;border-radius:999px}

.footer{background:var(--cream);border-top:1px solid var(--line);padding:2rem 1.25rem;text-align:center;display:grid;gap:.35rem;justify-items:center;color:var(--muted)}
.wordmark-foot{font-size:1.7rem}
.demo-note{font-size:.78rem;max-width:60ch;margin-top:.4rem}

@media (min-width:640px){
  .svc-grid{grid-template-columns:repeat(2,1fr)}
  .days{grid-template-columns:repeat(3,1fr)}
  .tips-grid{grid-template-columns:repeat(3,1fr)}
}
@media (min-width:960px){
  .top{padding:1.1rem 3rem}
  section{padding:4.5rem 3rem}
  .hero{grid-template-columns:1.1fr 1fr;align-items:center;padding-top:4rem}
  .hero-art{height:360px}
  .mirror{width:160px;height:210px;top:40px}
  .svc-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem}
  .booking{grid-template-columns:.8fr 1.2fr;gap:3rem;align-items:center}
  .where{grid-template-columns:1fr 1fr;align-items:center}
  .map{min-height:330px}
  .hero,.services,.booking,.tips,.where{padding-inline:max(3rem,calc((100% - 1180px)/2))}
}
.nw{white-space:nowrap}
