/* ── V SIGNATURE Main CSS ── */
:root {
  --rose: #d4637a;
  --gold: #c9a96e;
  --cream: #faf8f5;
  --charcoal: #2c2c2c;
  --muted: #8a8a8a;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Jost', sans-serif; background: var(--cream); color: var(--charcoal); overflow-x: hidden; -webkit-text-size-adjust: 100%; }
.serif { font-family: 'Cormorant Garamond', serif; }
h1,h2,h3 { font-family: 'Cormorant Garamond', serif; }
a { text-decoration: none; }

/* Marquee */
.mq-wrap { overflow: hidden; width: 100%; }
.mq-track { display: flex; width: max-content; animation: mq 25s linear infinite; }
@keyframes mq { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Hero */
.hero-bg { background: linear-gradient(135deg,#f5ede8 0%,#ede4f0 50%,#e8f0ed 100%); position: relative; }
.hero-bg::before { content:''; position:absolute; inset:0; background: radial-gradient(ellipse at 70% 50%,rgba(212,99,122,.08) 0%,transparent 60%), radial-gradient(ellipse at 20% 80%,rgba(201,169,110,.1) 0%,transparent 50%); pointer-events:none; }

/* Cards */
.card { transition: transform .4s cubic-bezier(.25,.8,.25,1), box-shadow .4s; }
@media(hover:hover) { .card:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(44,44,44,.12); } }
.card-img { overflow: hidden; position: relative; }
@media(hover:hover) { .card:hover .card-img > div { transform: scale(1.05); } }

/* Badges */
.b-sold { position:absolute; top:10px; right:10px; background:rgba(44,44,44,.85); color:#fff; font-size:9px; letter-spacing:1.5px; padding:3px 8px; text-transform:uppercase; }
.b-sale { position:absolute; top:10px; left:10px; background:var(--rose); color:#fff; font-size:9px; letter-spacing:1.5px; padding:3px 8px; text-transform:uppercase; }

/* Hover overlay */
.h-overlay { position:absolute; bottom:0; left:0; right:0; opacity:0; transition:opacity .3s; }
@media(hover:hover) { .card:hover .h-overlay { opacity:1; } }
@media(hover:none) { .h-overlay { opacity:1; } }

/* Buttons */
.btn { display:inline-block; cursor:pointer; text-align:center; transition:all .3s; font-family:'Jost',sans-serif; font-weight:500; letter-spacing:2px; font-size:11px; text-transform:uppercase; }
.btn-r { background:var(--rose); color:#fff; }
.btn-r:hover { background:#b84f66; transform:translateY(-1px); }
.btn-o { border:1px solid var(--rose); color:var(--rose); }
.btn-o:hover { background:var(--rose); color:#fff; }
.btn-d { background:var(--charcoal); color:#fff; }
.btn-d:hover { background:#111; }
.p-sm { padding:10px 20px; font-size:10px; }
.p-md { padding:12px 28px; }
.p-lg { padding:14px 36px; }

/* Nav */
#nav { background:rgba(255,255,255,.97); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); }
.nl { position:relative; letter-spacing:1.5px; font-size:11px; font-weight:500; color:var(--charcoal); text-transform:uppercase; transition:color .2s; white-space:nowrap; }
.nl::after { content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px; background:var(--rose); transition:width .3s; }
@media(hover:hover) { .nl:hover::after { width:100%; } .nl:hover { color:var(--rose); } }

/* Section label */
.sl { font-size:10px; letter-spacing:3px; color:var(--muted); text-transform:uppercase; }

/* Wedding banner */
.wb { background:linear-gradient(120deg,#1a0a12 60%,#3a1a2a 100%); position:relative; overflow:hidden; }
.wb::before { content:''; position:absolute; inset:0; pointer-events:none; background:url("data:image/svg+xml,%3Csvg width='60' height='60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23c9a96e' fill-opacity='.06'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/svg%3E"); }

/* Reveal animations */
.rv { opacity:0; transform:translateY(28px); transition:opacity .7s ease,transform .7s ease; }
.rv.vs { opacity:1; transform:none; }
.sg > * { opacity:0; transform:translateY(20px); transition:opacity .5s ease,transform .5s ease; }
.sg.vs > *:nth-child(1) { opacity:1; transform:none; transition-delay:.05s; }
.sg.vs > *:nth-child(2) { opacity:1; transform:none; transition-delay:.15s; }
.sg.vs > *:nth-child(3) { opacity:1; transform:none; transition-delay:.25s; }
.sg.vs > *:nth-child(4) { opacity:1; transform:none; transition-delay:.35s; }
.sg.vs > *:nth-child(5) { opacity:1; transform:none; transition-delay:.45s; }
.sg.vs > *:nth-child(6) { opacity:1; transform:none; transition-delay:.55s; }

/* Hero text */
@keyframes fu { from{opacity:0;transform:translateY(22px)} to{opacity:1;transform:none} }
.a1{animation:fu .8s ease .2s both} .a2{animation:fu .8s ease .4s both}
.a3{animation:fu .8s ease .6s both} .a4{animation:fu .8s ease .8s both}
.h-title { font-size:clamp(2.8rem,9vw,7rem); }

/* WhatsApp */
.wa { position:fixed; bottom:20px; left:20px; z-index:200; width:48px; height:48px; background:#25d366; border-radius:50%; display:flex; align-items:center; justify-content:center; box-shadow:0 4px 14px rgba(37,211,102,.4); transition:transform .3s; }
@media(min-width:768px) { .wa { bottom:28px; left:28px; width:52px; height:52px; } }
@media(hover:hover) { .wa:hover { transform:scale(1.1); } }

/* Footer */
.fh { font-size:10px; letter-spacing:3px; color:#fff; text-transform:uppercase; margin-bottom:16px; }
.footer-link { color:#bbb; transition:color .2s; font-size:13px; display:block; padding:2px 0; }
.footer-link:hover { color:var(--rose); }
.ei { background:transparent; border:none; border-bottom:1px solid #555; color:#fff; font-family:'Jost'; font-size:13px; outline:none; padding:6px 0; width:100%; }
.ei::placeholder { color:#666; }
.ei:focus { border-color:var(--rose); }

/* Prices */
.po { text-decoration:line-through; color:#aaa; font-size:11px; }
.ps { color:var(--rose); font-size:13px; font-weight:600; }
.pv { color:#27ae60; font-size:10px; }

/* Loader */
.loader { width:36px; height:36px; border:3px solid #f0d0d8; border-top-color:var(--rose); border-radius:50%; animation:spin .8s linear infinite; }
@keyframes spin { to{transform:rotate(360deg)} }

/* Cart drawer slide */
#cart-panel.open { transform:translateX(0) !important; }

/* Range input */
input[type=range] { -webkit-appearance:none; appearance:none; height:3px; background:#ddd; border-radius:2px; outline:none; }
input[type=range]::-webkit-slider-thumb { -webkit-appearance:none; width:16px; height:16px; border-radius:50%; background:var(--rose); cursor:pointer; }

/* Wishlist heart */
.wished i { color:var(--rose) !important; }

/* Line clamp */
.line-clamp-2 { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* Form inputs */
.inp { width:100%; border:1px solid #ddd; padding:10px 14px; font-family:'Jost'; font-size:13px; outline:none; transition:border-color .2s; background:white; }
.inp:focus { border-color:var(--rose); }
.inp-label { display:block; font-size:11px; letter-spacing:1px; text-transform:uppercase; color:var(--muted); margin-bottom:6px; font-weight:500; }

/* Scrollbar */
::-webkit-scrollbar { width:4px; }
::-webkit-scrollbar-thumb { background:var(--rose); border-radius:2px; }

/* Tags */
.tag { display:inline-block; border:1px solid #ddd; padding:5px 12px; font-size:11px; cursor:pointer; transition:all .2s; }
.tag:hover,.tag.active { border-color:var(--rose); color:var(--rose); background:#fdf0f3; }
.tag.selected { background:var(--rose); color:#fff; border-color:var(--rose); }

/* Rating stars */
.stars { color:#c9a96e; }

/* Pagination */
.page-btn { display:inline-flex; align-items:center; justify-content:center; width:36px; height:36px; border:1px solid #ddd; font-size:13px; transition:all .2s; cursor:pointer; }
.page-btn:hover,.page-btn.active { border-color:var(--rose); color:var(--rose); background:#fdf0f3; }

/* Admin table */
.admin-table th { background:#f8f8f8; font-size:11px; letter-spacing:1px; text-transform:uppercase; padding:12px 16px; text-align:left; color:#666; border-bottom:2px solid #eee; }
.admin-table td { padding:12px 16px; border-bottom:1px solid #f0f0f0; font-size:13px; vertical-align:middle; }
.admin-table tr:hover td { background:#fafafa; }

/* Status badges */
.status-badge { display:inline-block; padding:3px 10px; border-radius:20px; font-size:10px; font-weight:600; letter-spacing:.5px; text-transform:uppercase; }
.status-pending { background:#fff3cd; color:#856404; }
.status-confirmed { background:#cce5ff; color:#004085; }
.status-processing { background:#d1ecf1; color:#0c5460; }
.status-shipped { background:#d4edda; color:#155724; }
.status-delivered { background:#c3e6cb; color:#155724; }
.status-cancelled { background:#f8d7da; color:#721c24; }

/* Toast */
#toast-inner { min-width:220px; }
