/* ============================================================
   Glamore Beauty — luxury pink theme (ref: Dior / Chanel / YSL)
   ============================================================ */
:root{
  --pink-50:#fdf4f7; --pink-100:#fbe6ee; --pink-200:#f6cddd;
  --pink-300:#eeaac6; --pink-400:#e284ab; --pink-500:#d4638f;
  --ink:#2b2026; --ink-soft:#6d5a63; --gold:#c9a24b; --cream:#fffdfb;
  --serif:'Cormorant Garamond',serif; --sans:'Jost',sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:var(--ink);background:var(--cream);-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font-family:var(--sans);cursor:pointer}

.wrap{max-width:1180px;margin:0 auto;padding:0 24px}

/* ---------- header ---------- */
.topbar{background:var(--ink);color:#fff;text-align:center;font-size:11px;letter-spacing:.25em;text-transform:uppercase;padding:9px 12px}
header.site{position:sticky;top:0;z-index:60;background:rgba(255,253,251,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--pink-100)}
.nav{display:flex;align-items:center;justify-content:space-between;height:76px}
.brand{display:flex;align-items:center;gap:12px}
.brand img{height:48px;width:48px;object-fit:cover;border-radius:50%}
.brand .name{font-family:var(--serif);font-size:26px;letter-spacing:.32em;text-transform:uppercase;font-weight:600}
.brand .tag{display:block;font-family:var(--sans);font-size:9px;letter-spacing:.42em;text-transform:uppercase;color:var(--gold);margin-top:2px}
.nav-links{display:flex;gap:34px;font-size:12px;letter-spacing:.22em;text-transform:uppercase}
.nav-links a{position:relative;padding:6px 0;color:var(--ink-soft)}
.nav-links a:hover{color:var(--ink)}
.nav-links a::after{content:'';position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--gold);transition:.3s}
.nav-links a:hover::after{width:100%}
.cart-btn{position:relative;background:none;border:none;font-size:20px;color:var(--ink)}
.cart-btn .badge{position:absolute;top:-7px;right:-11px;background:var(--pink-500);color:#fff;font-size:10px;min-width:18px;height:18px;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px;font-family:var(--sans)}

/* ---------- hero ---------- */
.hero{position:relative;min-height:560px;display:flex;align-items:center;overflow:hidden;
  background:linear-gradient(115deg,var(--pink-100) 0%,var(--pink-200) 45%,var(--pink-300) 100%)}
.hero .bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero .veil{position:absolute;inset:0;background:linear-gradient(90deg,rgba(253,244,247,.94) 0%,rgba(253,244,247,.75) 42%,rgba(253,244,247,.08) 100%)}
.hero-inner{position:relative;z-index:2;padding:90px 0}
.hero .eyebrow{font-size:12px;letter-spacing:.5em;text-transform:uppercase;color:var(--gold);margin-bottom:22px}
.hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(40px,6vw,74px);line-height:1.06;max-width:620px}
.hero p{margin:24px 0 38px;font-size:17px;color:var(--ink-soft);max-width:460px;font-weight:300;line-height:1.7}
.btn{display:inline-block;border:1px solid var(--ink);background:var(--ink);color:#fff;
  padding:15px 42px;font-size:12px;letter-spacing:.3em;text-transform:uppercase;transition:.3s}
.btn:hover{background:transparent;color:var(--ink)}
.btn.ghost{background:transparent;color:var(--ink);margin-left:14px}
.btn.ghost:hover{background:var(--ink);color:#fff}
.btn.pink{background:var(--pink-500);border-color:var(--pink-500)}
.btn.pink:hover{background:transparent;color:var(--pink-500)}

/* ---------- marquee ---------- */
.marquee{background:var(--ink);color:var(--pink-200);overflow:hidden;padding:13px 0;white-space:nowrap}
.marquee span{display:inline-block;font-size:11px;letter-spacing:.4em;text-transform:uppercase;padding-right:60px;animation:mq 28s linear infinite}
@keyframes mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}

/* ---------- sections ---------- */
section{padding:88px 0}
.sec-head{text-align:center;margin-bottom:54px}
.sec-head .eyebrow{font-size:11px;letter-spacing:.5em;text-transform:uppercase;color:var(--gold)}
.sec-head h2{font-family:var(--serif);font-weight:500;font-size:clamp(30px,4vw,44px);margin-top:12px}
.sec-head .line{width:52px;height:1px;background:var(--gold);margin:22px auto 0}

/* kategori pills */
.pills{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:46px}
.pill{border:1px solid var(--pink-200);background:#fff;padding:10px 26px;font-size:11px;
  letter-spacing:.25em;text-transform:uppercase;color:var(--ink-soft);transition:.25s;border-radius:999px}
.pill:hover,.pill.on{background:var(--ink);border-color:var(--ink);color:#fff}

/* produk grid */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:30px 22px}
.card{background:#fff;border:1px solid var(--pink-100);transition:.35s;display:flex;flex-direction:column}
.card:hover{box-shadow:0 22px 44px -18px rgba(212,99,143,.35);transform:translateY(-4px)}
.card .ph{position:relative;aspect-ratio:3/3.6;overflow:hidden;background:linear-gradient(150deg,var(--pink-100),var(--pink-200))}
.card .ph img{width:100%;height:100%;object-fit:cover;transition:.6s}
.card:hover .ph img{transform:scale(1.06)}
.card .ph .initial{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:64px;color:#fff;text-shadow:0 2px 14px rgba(212,99,143,.5)}
.card .ribbon{position:absolute;top:12px;left:12px;background:var(--pink-500);color:#fff;font-size:10px;letter-spacing:.18em;text-transform:uppercase;padding:5px 12px}
.card .body{padding:18px 18px 20px;display:flex;flex-direction:column;gap:6px;flex:1}
.card .brand-l{font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold)}
.card h3{font-family:var(--serif);font-size:19px;font-weight:600;line-height:1.3}
.card .price{margin-top:auto;padding-top:10px;display:flex;align-items:baseline;gap:9px}
.card .price b{font-size:16px;font-weight:600}
.card .price s{color:#b9a7af;font-size:13px;font-weight:300}
.card .add{margin-top:12px;width:100%;border:1px solid var(--ink);background:transparent;color:var(--ink);
  padding:11px;font-size:11px;letter-spacing:.28em;text-transform:uppercase;transition:.3s}
.card .add:hover{background:var(--ink);color:#fff}
.card .add[disabled]{opacity:.4;cursor:not-allowed}

/* ---------- benefit bar ---------- */
.benefits{background:#fff;border-bottom:1px solid var(--pink-100);padding:26px 0}
.benefits-in{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:860px){.benefits-in{grid-template-columns:repeat(2,1fr)}}
.ben{display:flex;align-items:center;gap:13px;justify-content:center}
.ben .ico{font-size:26px}
.ben b{display:block;font-size:13px;letter-spacing:.06em}
.ben small{color:var(--ink-soft);font-weight:300;font-size:12px}

/* ---------- banner carousel ---------- */
.carousel{position:relative;overflow:hidden;background:var(--pink-100);touch-action:pan-y;cursor:grab}
.carousel:active{cursor:grabbing}
.c-track{display:flex;transition:transform .55s cubic-bezier(.4,0,.2,1)}
.c-slide{position:relative;flex:0 0 100%;display:block;aspect-ratio:21/8;overflow:hidden;-webkit-user-drag:none;user-select:none}
@media(max-width:640px){.c-slide{aspect-ratio:16/9}}
.c-slide img{width:100%;height:100%;object-fit:cover;display:block;pointer-events:none}
.c-cap{position:absolute;left:0;right:0;bottom:0;padding:26px 28px 18px;color:#fff;font-family:var(--serif);font-size:24px;
  background:linear-gradient(transparent,rgba(43,32,38,.72))}
.c-nav{position:absolute;top:50%;transform:translateY(-50%);left:14px;width:42px;height:42px;border-radius:50%;
  border:none;background:rgba(255,253,251,.85);color:var(--ink);font-size:24px;cursor:pointer;z-index:5;transition:.25s;line-height:1}
.c-nav:hover{background:#fff}
.c-nav.next{left:auto;right:14px}
.c-dots{position:absolute;left:0;right:0;bottom:12px;display:flex;gap:8px;justify-content:center;z-index:5}
.c-dot{width:9px;height:9px;border-radius:50%;border:none;background:rgba(255,255,255,.55);cursor:pointer;padding:0;transition:.25s}
.c-dot.on{background:#fff;width:24px;border-radius:5px}

/* ---------- promo strip ---------- */
.promo-strip{position:relative;background:linear-gradient(115deg,var(--ink) 0%,#4a3340 55%,var(--pink-500) 130%);overflow:hidden;text-align:center}
.promo-strip .bgimg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.promo-strip .veil-dark{position:absolute;inset:0;background:rgba(43,32,38,.55)}
.promo-in{position:relative;z-index:2;padding:80px 24px;color:#fff}
.promo-in .eyebrow{font-size:11px;letter-spacing:.5em;text-transform:uppercase;color:var(--pink-200);margin-bottom:16px}
.promo-in h2{font-family:var(--serif);font-weight:500;font-size:clamp(30px,4.4vw,48px);margin-bottom:14px}
.promo-in p{font-weight:300;color:#f0dde6;max-width:520px;margin:0 auto 30px;line-height:1.7}

/* ---------- pilihan kurir (checkout) ---------- */
.kurir-opts{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media(max-width:560px){.kurir-opts{grid-template-columns:1fr}}
.kurir-card{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--pink-200);background:#fff;padding:16px;cursor:pointer;transition:.25s}
.kurir-card:hover{border-color:var(--pink-400)}
.kurir-card input{width:auto;margin-top:4px;accent-color:var(--pink-500)}
.kurir-card:has(input:checked){border-color:var(--pink-500);box-shadow:0 0 0 1px var(--pink-500);background:var(--pink-50)}
.kurir-card b{display:block;font-size:14px;letter-spacing:.05em}
.kurir-card .k-price{display:block;font-size:14px;color:var(--pink-500);font-weight:500;margin-top:3px}
.kurir-card .k-eta{display:block;font-size:11px;color:var(--ink-soft);font-weight:300;margin-top:2px}

/* grid rapat (saat kategori dipilih) */
.grid.dense{grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:18px 14px}
.grid.dense .card .body{padding:12px 12px 14px;gap:4px}
.grid.dense .card h3{font-size:15px}
.grid.dense .card .price b{font-size:14px}
.grid.dense .card .price s{font-size:12px}
.grid.dense .card .add{padding:8px;font-size:10px;letter-spacing:.18em;margin-top:8px}
.grid.dense .ph .initial{font-size:42px}
.grid.dense .card .ribbon{font-size:9px;padding:4px 9px;top:8px;left:8px}

/* ---------- halaman detail produk ---------- */
.crumb{padding:26px 0 0;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-soft)}
.crumb a:hover{color:var(--pink-500)}
.crumb span{color:var(--ink)}
.pd{display:grid;grid-template-columns:1fr 1.1fr;gap:56px;padding:40px 0 70px}
@media(max-width:860px){.pd{grid-template-columns:1fr;gap:30px}}
.pd-img{position:relative;aspect-ratio:3/3.4;overflow:hidden;background:linear-gradient(150deg,var(--pink-100),var(--pink-200))}
.pd-img img{width:100%;height:100%;object-fit:cover}
.pd-img .initial{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  font-family:var(--serif);font-size:120px;color:#fff;text-shadow:0 2px 18px rgba(212,99,143,.5)}
.pd-img .ribbon{position:absolute;top:16px;left:16px;background:var(--pink-500);color:#fff;font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:6px 14px}
.pd-info .brand-l{font-size:11px;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}
.pd-info h1{font-family:var(--serif);font-weight:500;font-size:clamp(28px,3.6vw,42px);line-height:1.15;margin-bottom:18px}
.pd-price{display:flex;align-items:baseline;gap:12px;margin-bottom:8px}
.pd-price b{font-size:26px;font-weight:600}
.pd-price s{color:#b9a7af;font-weight:300;font-size:17px}
.pd-price .disc{background:var(--pink-100);color:var(--pink-500);font-size:12px;padding:3px 10px;border-radius:99px}
.pd-stok{font-size:13px;color:#1c7c45;margin-bottom:22px}
.pd-stok.habis{color:#c0392b}
.pd-desc{border-top:1px solid var(--pink-100);padding-top:20px;margin-bottom:26px}
.pd-desc h4{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.pd-desc p{font-weight:300;color:var(--ink-soft);line-height:1.8}
/* galeri thumbnail */
.thumbs{display:flex;gap:10px;margin-top:12px;flex-wrap:wrap}
.thumb{width:64px;height:64px;object-fit:cover;border:1px solid var(--pink-200);cursor:pointer;opacity:.65;transition:.25s}
.thumb:hover{opacity:1}
.thumb.on{opacity:1;border-color:var(--pink-500);box-shadow:0 0 0 1px var(--pink-500)}

/* opsi / varian */
.opt-group{margin-bottom:18px}
.opt-group h4{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:9px}
.opt-pills{display:flex;gap:9px;flex-wrap:wrap}
.opt-pill{border:1px solid var(--pink-200);background:#fff;padding:9px 18px;font-size:13px;cursor:pointer;transition:.22s}
.opt-pill:hover{border-color:var(--pink-400)}
.opt-pill.on{background:var(--ink);border-color:var(--ink);color:#fff}

/* teks varian di keranjang */
.vr{font-size:11px;color:var(--gold);margin-bottom:3px;font-weight:300}

.pd-buy{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.qty-lg{border:1px solid var(--ink);margin:0}
.qty-lg button{width:44px;height:48px;font-size:18px}
.qty-lg span{width:44px;font-size:16px}
.pd-buy .btn{padding:15px 30px}
.pd-note{margin-top:20px;font-size:12px;color:var(--ink-soft);font-weight:300;letter-spacing:.05em}

/* tentang */
.about{background:var(--pink-50)}
.about-flex{display:flex;gap:70px;align-items:center;flex-wrap:wrap}
.about-flex>div{flex:1;min-width:300px}
.about h2{font-family:var(--serif);font-weight:500;font-size:38px;margin-bottom:20px}
.about p{color:var(--ink-soft);font-weight:300;line-height:1.9;margin-bottom:14px}
.info-card{background:#fff;border:1px solid var(--pink-100);padding:38px}
.info-card h4{font-size:11px;letter-spacing:.35em;text-transform:uppercase;color:var(--gold);margin-bottom:10px}
.info-card p{margin-bottom:24px;color:var(--ink);font-weight:300}

/* footer */
footer{background:var(--ink);color:#cbb9c2;padding:70px 0 34px}
.foot{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-bottom:46px}
footer .fname{font-family:var(--serif);color:#fff;font-size:24px;letter-spacing:.3em;text-transform:uppercase;margin-bottom:14px}
footer p{font-weight:300;font-size:14px;line-height:1.8;max-width:320px}
footer h5{color:#fff;font-size:11px;letter-spacing:.35em;text-transform:uppercase;margin-bottom:16px}
footer ul{list-style:none}
footer li{margin-bottom:10px;font-size:14px;font-weight:300}
footer a:hover{color:#fff}
.copy{border-top:1px solid #453741;padding-top:26px;text-align:center;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:#8d7a84}

/* ---------- cart drawer ---------- */
.overlay{position:fixed;inset:0;background:rgba(43,32,38,.5);opacity:0;pointer-events:none;transition:.3s;z-index:80}
.overlay.show{opacity:1;pointer-events:auto}
.drawer{position:fixed;top:0;right:-440px;width:min(420px,92vw);height:100%;background:#fff;z-index:90;
  transition:.35s;display:flex;flex-direction:column}
.drawer.show{right:0}
.drawer .dh{display:flex;justify-content:space-between;align-items:center;padding:24px 26px;border-bottom:1px solid var(--pink-100)}
.drawer .dh h3{font-family:var(--serif);font-size:22px;letter-spacing:.18em;text-transform:uppercase}
.drawer .dh button{background:none;border:none;font-size:22px}
.d-items{flex:1;overflow-y:auto;padding:10px 26px}
.d-item{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--pink-50)}
.d-item .im{width:64px;height:76px;background:linear-gradient(150deg,var(--pink-100),var(--pink-200));flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--serif);font-size:24px;color:#fff;overflow:hidden}
.d-item .im img{width:100%;height:100%;object-fit:cover}
.d-item h4{font-size:14px;font-weight:500;margin-bottom:4px}
.d-item .pr{font-size:13px;color:var(--ink-soft)}
.qty{display:inline-flex;align-items:center;border:1px solid var(--pink-200);margin-top:8px}
.qty button{width:26px;height:26px;background:none;border:none;font-size:14px}
.qty span{width:30px;text-align:center;font-size:13px}
.d-item .rm{margin-left:auto;background:none;border:none;color:#b9a7af;font-size:16px;align-self:flex-start}
.d-foot{padding:22px 26px;border-top:1px solid var(--pink-100)}
.d-total{display:flex;justify-content:space-between;font-size:15px;margin-bottom:16px}
.d-total b{font-size:18px}
.d-empty{text-align:center;color:var(--ink-soft);padding:60px 20px;font-weight:300}

/* ---------- checkout & sukses ---------- */
.page-title{background:var(--pink-50);padding:56px 0;text-align:center}
.page-title h1{font-family:var(--serif);font-weight:500;font-size:40px}
.co-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:44px;padding:60px 0}
@media(max-width:860px){.co-grid{grid-template-columns:1fr}}
.f-group{margin-bottom:20px}
.f-group label{display:block;font-size:11px;letter-spacing:.25em;text-transform:uppercase;color:var(--ink-soft);margin-bottom:8px}
.f-group input,.f-group textarea,.f-group select{width:100%;border:1px solid var(--pink-200);background:#fff;padding:13px 15px;font-family:var(--sans);font-size:15px;outline:none;transition:.25s}
.f-group input:focus,.f-group textarea:focus{border-color:var(--pink-500)}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:560px){.f-row{grid-template-columns:1fr}}
.summary{background:var(--pink-50);border:1px solid var(--pink-100);padding:32px;height:fit-content}
.summary h3{font-family:var(--serif);font-size:22px;margin-bottom:20px}
.s-item{display:flex;justify-content:space-between;gap:12px;font-size:14px;padding:9px 0;border-bottom:1px solid var(--pink-100);font-weight:300}
.s-total{display:flex;justify-content:space-between;padding-top:16px;font-size:16px}
.notice{background:#fff;border:1px dashed var(--pink-300);padding:16px;font-size:13px;color:var(--ink-soft);margin-top:18px;line-height:1.7;font-weight:300}

.success-box{max-width:640px;margin:60px auto;background:#fff;border:1px solid var(--pink-100);padding:50px;text-align:center}
.success-box .ico{font-size:44px;margin-bottom:16px}
.success-box h1{font-family:var(--serif);font-weight:500;font-size:34px;margin-bottom:10px}
.success-box .kode{display:inline-block;background:var(--pink-50);border:1px dashed var(--pink-300);padding:10px 26px;font-size:20px;letter-spacing:.2em;margin:18px 0}
.bank-box{background:var(--pink-50);padding:28px;margin:24px 0;text-align:left}
.bank-box h4{font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:14px}
.bank-box .rek{font-size:26px;font-weight:600;letter-spacing:.08em}
.bank-box p{font-weight:300;color:var(--ink-soft);font-size:14px;margin-top:6px}

/* toast */
.toast{position:fixed;bottom:28px;left:50%;transform:translate(-50%,80px);background:var(--ink);color:#fff;
  padding:14px 30px;font-size:13px;letter-spacing:.1em;z-index:100;transition:.4s;opacity:0}
.toast.show{transform:translate(-50%,0);opacity:1}

@media(max-width:760px){
  .nav-links{display:none}
  /* header ringkas di HP */
  .topbar{font-size:9px;letter-spacing:.15em;padding:6px 10px}
  .nav{height:54px}
  .brand{gap:8px}
  .brand img{height:32px;width:32px}
  .brand .name{font-size:15px;letter-spacing:.16em;white-space:nowrap}
  .brand .tag{font-size:7px;letter-spacing:.28em}
  .cart-btn{font-size:18px}
  /* hero ringkas di HP */
  .hero{min-height:330px}
  .hero-inner{padding:44px 0}
  .hero .eyebrow{font-size:10px;letter-spacing:.35em;margin-bottom:14px}
  .hero h1{font-size:32px}
  .hero p{margin:14px 0 24px;font-size:14px}
  .btn{padding:12px 24px;font-size:11px;letter-spacing:.22em}
  .btn.ghost{margin-left:8px}
  .marquee{padding:9px 0}
  .marquee span{font-size:9px;letter-spacing:.3em}
  .benefits{padding:16px 0}
  .ben .ico{font-size:20px}
  .ben b{font-size:11px}
  .ben small{font-size:10px}
  .promo-in{padding:52px 20px}
  section{padding:56px 0}
  .sec-head{margin-bottom:34px}
}
