/* ============================================================
   VIENNE FASHION — Main Stylesheet
   ============================================================ */
:root {
  --black:       #0a0a0a;
  --dark:        #111111;
  --dark2:       #161616;
  --border:      rgba(255,255,255,0.07);
  --white:       #fafaf8;
  --stone:       #6b6b6b;
  --gold:        #D4A017;
  --gold-light:  #F0C040;
  --terra:       #C4622D;
  --terra-dark:  #8B3E16;
  --kente:       #2D6A4F;
  --kente-light: #52B788;
  --coral:       #E63946;
  --nav-h:       72px;
}
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { background: var(--black); color: var(--white); font-family: 'Outfit', sans-serif; overflow-x: hidden; line-height: 1.6; }
a { text-decoration: none; color: inherit; }
img { max-width: 100%; display: block; }
::selection { background: var(--gold); color: var(--black); }
::-webkit-scrollbar { width: 5px; }
::-webkit-scrollbar-track { background: var(--black); }
::-webkit-scrollbar-thumb { background: var(--gold); }

/* ── Utilities ──────────────────────────────────────────────── */
.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
.gold-text  { background: linear-gradient(135deg,#D4A017,#F0C040,#C4622D); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.kente-bar  { height: 3px; background: linear-gradient(90deg,var(--terra),var(--gold),var(--kente),var(--coral),var(--terra)); }
.section { padding: 80px 0; }
.section-eyebrow { display: block; font-size: 11px; letter-spacing: 4px; text-transform: uppercase; color: var(--gold); margin-bottom: 12px; }
.section-title { font-family: 'Playfair Display', serif; font-size: clamp(32px,4vw,52px); font-weight: 400; }
.section-header { text-align: center; margin-bottom: 52px; }
.flash-ok  { background: rgba(45,106,79,.15); border: 1px solid rgba(82,183,136,.4); color: var(--kente-light); padding: 12px 16px; margin-bottom: 20px; font-size: 14px; }
.flash-err { background: rgba(230,57,70,.12);  border: 1px solid rgba(230,57,70,.4);  color: #ff6b7a;           padding: 12px 16px; margin-bottom: 20px; font-size: 14px; }

/* Buttons */
.btn-primary { display: inline-flex; align-items: center; gap: 8px; padding: 14px 32px; background: linear-gradient(135deg,var(--terra),var(--gold)); color: #fff; font-family: 'Outfit',sans-serif; font-size: 11px; letter-spacing: 3px; text-transform: uppercase; border: none; cursor: pointer; transition: all .3s; }
.btn-primary:hover { background: linear-gradient(135deg,var(--gold),var(--terra)); box-shadow: 0 4px 24px rgba(212,160,23,.3); }
.btn-outline { display: inline-flex; align-items: center; gap: 8px; padding: 14px 32px; border: 1px solid var(--gold); color: var(--gold); font-size: 11px; letter-spacing: 3px; text-transform: uppercase; background: transparent; cursor: pointer; transition: all .3s; font-family: 'Outfit',sans-serif; }
.btn-outline:hover { background: var(--gold); color: var(--black); }
.btn-ghost  { display: inline-flex; align-items: center; gap: 8px; padding: 12px 24px; border: 1px solid var(--border); color: #aaa; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; background: transparent; cursor: pointer; transition: all .2s; font-family: 'Outfit',sans-serif; }
.btn-ghost:hover { border-color: var(--stone); color: #fff; }

/* Form elements */
input, textarea, select { width: 100%; background: var(--dark); border: 1px solid var(--border); color: var(--white); padding: 13px 16px; font-family: 'Outfit',sans-serif; font-size: 14px; outline: none; transition: border-color .2s; }
input:focus, textarea:focus, select:focus { border-color: var(--gold); }
input::placeholder, textarea::placeholder { color: var(--stone); }
select option { background: var(--dark); }
label { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--stone); display: block; margin-bottom: 6px; }
.form-group { margin-bottom: 20px; }

/* Badges */
.badge-new  { background: var(--kente);  color: #fff; font-size: 10px; padding: 3px 8px; letter-spacing: 2px; text-transform: uppercase; display: inline-block; }
.badge-sale { background: var(--coral);  color: #fff; font-size: 10px; padding: 3px 8px; letter-spacing: 2px; text-transform: uppercase; display: inline-block; }

/* ── Navbar ─────────────────────────────────────────────────── */
#navbar { position: fixed; top: 0; left: 0; right: 0; z-index: 100; transition: background .4s, box-shadow .4s; }
#navbar.scrolled { background: rgba(10,10,10,.96); backdrop-filter: blur(14px); border-bottom: 1px solid var(--border); box-shadow: 0 4px 40px rgba(0,0,0,.5); }
.nav-inner { height: var(--nav-h); display: flex; align-items: center; justify-content: space-between; padding: 0 32px; max-width: 1400px; margin: 0 auto; }
.nav-logo { display: flex; flex-direction: column; line-height: 1; }
.logo-mark { font-family: 'Playfair Display',serif; font-size: 22px; letter-spacing: 6px; text-transform: uppercase; color: var(--white); }
.logo-sub  { font-size: 9px; letter-spacing: 4px; color: var(--gold); opacity: .8; font-family: 'Playfair Display',serif; font-style: italic; margin-top: 2px; }
.nav-links { display: flex; gap: 32px; }
.nav-links a { font-size: 11px; letter-spacing: 3px; text-transform: uppercase; color: #ccc; transition: color .2s; position: relative; }
.nav-links a::after { content: ''; position: absolute; bottom: -3px; left: 0; width: 0; height: 1px; background: var(--gold); transition: width .3s; }
.nav-links a:hover { color: var(--gold); }
.nav-links a:hover::after { width: 100%; }
.nav-actions { display: flex; align-items: center; gap: 14px; }
.currency-btn { background: transparent; border: 1px solid var(--border); color: #aaa; padding: 7px 14px; font-size: 11px; letter-spacing: 2px; cursor: pointer; font-family: 'Outfit',sans-serif; transition: all .2s; }
.currency-btn:hover { border-color: var(--gold); color: var(--gold); }
.cart-link { position: relative; font-size: 19px; color: #ccc; transition: color .2s; }
.cart-link:hover { color: var(--gold); }
.cart-badge { position: absolute; top: -8px; right: -9px; width: 17px; height: 17px; background: var(--terra); color: #fff; font-size: 9px; font-weight: 700; border-radius: 50%; display: flex; align-items: center; justify-content: center; }
.btn-nav { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: #ccc; border: 1px solid var(--border); padding: 8px 18px; transition: all .2s; }
.btn-nav:hover { border-color: var(--gold); color: var(--gold); }
.hamburger { display: none; background: transparent; border: none; color: #ccc; font-size: 22px; cursor: pointer; }

/* Mobile menu */
#mob-menu { position: fixed; top: 0; right: -100%; width: 290px; height: 100vh; background: #0d0d0d; z-index: 200; padding: 80px 32px; display: flex; flex-direction: column; gap: 0; transition: right .4s cubic-bezier(.4,0,.2,1); border-left: 1px solid var(--border); overflow-y: auto; }
#mob-menu.open { right: 0; }
#mob-menu a { font-size: 12px; letter-spacing: 3px; text-transform: uppercase; color: #bbb; border-bottom: 1px solid var(--border); padding: 18px 0; transition: color .2s; }
#mob-menu a:hover { color: var(--gold); }
.mob-close { background: transparent; border: none; color: #888; font-size: 28px; cursor: pointer; position: absolute; top: 20px; right: 24px; line-height: 1; }

/* ── Hero ───────────────────────────────────────────────────── */
.hero { min-height: 100vh; display: flex; align-items: center; position: relative; overflow: hidden; padding-top: var(--nav-h); }
.hero-bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 40%, rgba(196,98,45,.09), transparent 60%), radial-gradient(ellipse at 75% 65%, rgba(212,160,23,.06), transparent 55%); }
.hero-pattern { position: absolute; inset: 0; opacity: .4; background-image: repeating-linear-gradient(45deg, transparent, transparent 44px, rgba(212,160,23,.018) 44px, rgba(212,160,23,.018) 45px), repeating-linear-gradient(-45deg, transparent, transparent 44px, rgba(196,98,45,.018) 44px, rgba(196,98,45,.018) 45px); }
.hero-inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items: center; width: 100%; max-width: 1200px; margin: 0 auto; padding: 60px 24px; }
.hero-eyebrow { display: flex; align-items: center; gap: 14px; margin-bottom: 24px; }
.hero-eyebrow-line { width: 40px; height: 1px; background: var(--gold); }
.hero-eyebrow span { font-size: 11px; letter-spacing: 4px; text-transform: uppercase; color: var(--gold); }
.hero h1 { font-family: 'Playfair Display',serif; font-size: clamp(46px,5.5vw,78px); font-weight: 400; line-height: 1.05; margin-bottom: 24px; }
.hero-desc { color: #aaa; font-size: 17px; line-height: 1.8; max-width: 420px; margin-bottom: 36px; }
.hero-btns { display: flex; gap: 16px; flex-wrap: wrap; margin-bottom: 52px; }
.hero-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; padding-top: 32px; border-top: 1px solid var(--border); }
.stat-val   { font-family: 'Playfair Display',serif; font-size: 32px; color: var(--gold); }
.stat-label { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--stone); margin-top: 4px; }
.hero-img-wrap { position: relative; }
.hero-img { width: 100%; aspect-ratio: 3/4; object-fit: cover; border: 1px solid rgba(212,160,23,.2); }
.hero-caption { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(0,0,0,.85); backdrop-filter: blur(8px); border: 1px solid rgba(212,160,23,.25); padding: 18px 22px; }
.hero-caption-sub  { font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: var(--gold); }
.hero-caption-main { font-family: 'Playfair Display',serif; font-size: 20px; color: #fff; margin-top: 4px; }
.hero-float { position: absolute; top: 56px; right: -18px; background: linear-gradient(135deg,var(--terra),var(--terra-dark)); padding: 18px 20px; max-width: 164px; box-shadow: 0 8px 32px rgba(196,98,45,.35); }
.hero-float .stars { color: #fff; font-size: 11px; margin-bottom: 8px; }
.hero-float p { color: rgba(255,255,255,.9); font-size: 12px; line-height: 1.5; font-family: 'Playfair Display',serif; font-style: italic; }
.hero-float .author { color: rgba(255,255,255,.5); font-size: 10px; margin-top: 8px; }

/* ── Marquee ────────────────────────────────────────────────── */
.marquee { background: rgba(196,98,45,.88); padding: 14px 0; overflow: hidden; }
.marquee-track { display: flex; gap: 56px; animation: marquee 22s linear infinite; white-space: nowrap; }
@keyframes marquee { from { transform: translateX(0) } to { transform: translateX(-50%) } }
.marquee-track span { font-family: 'Playfair Display',serif; font-style: italic; font-size: 18px; color: rgba(255,255,255,.9); flex-shrink: 0; }

/* ── Categories ─────────────────────────────────────────────── */
.cat-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 20px; }
.cat-card { position: relative; overflow: hidden; cursor: pointer; display: block; }
.cat-card img { width: 100%; aspect-ratio: 3/4; object-fit: cover; transition: transform .7s cubic-bezier(.4,0,.2,1); }
.cat-card:hover img { transform: scale(1.05); }
.cat-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(0,0,0,.88) 0%, rgba(0,0,0,.1) 55%, transparent 100%); }
.cat-content { position: absolute; bottom: 0; left: 0; right: 0; padding: 32px; }
.cat-accent  { height: 3px; width: 36px; margin-bottom: 14px; transition: width .35s; }
.cat-card:hover .cat-accent { width: 64px; }
.cat-name    { font-family: 'Playfair Display',serif; font-size: 28px; color: #fff; font-weight: 400; }
.cat-desc    { font-size: 13px; color: rgba(255,255,255,.65); margin: 8px 0 14px; line-height: 1.6; }
.cat-link    { font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: var(--gold); display: flex; align-items: center; gap: 8px; transition: gap .3s; }
.cat-card:hover .cat-link { gap: 16px; }

/* ── Product grid ───────────────────────────────────────────── */
.product-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.pcard { background: var(--dark); border: 1px solid var(--border); }
.pcard-img { position: relative; overflow: hidden; aspect-ratio: 3/4; background: #1a1a1a; display: block; }
.pcard-img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s cubic-bezier(.4,0,.2,1); }
.pcard:hover .pcard-img img { transform: scale(1.04); }
.pcard-badges { position: absolute; top: 12px; left: 12px; display: flex; flex-direction: column; gap: 6px; z-index: 1; }
.pcard-actions { position: absolute; bottom: 0; left: 0; right: 0; background: rgba(10,10,10,.93); padding: 10px 12px; display: flex; gap: 8px; opacity: 0; transform: translateY(6px); transition: all .3s; z-index: 2; }
.pcard:hover .pcard-actions { opacity: 1; transform: translateY(0); }
.pcard-actions a { flex: 1; text-align: center; font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: var(--gold); padding: 8px 6px; border: 1px solid rgba(212,160,23,.25); transition: all .2s; }
.pcard-actions a:hover { background: var(--gold); color: var(--black); }
.pcard-info { padding: 16px; }
.pcard-cat  { font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: var(--stone); margin-bottom: 6px; }
.pcard-name { font-family: 'Playfair Display',serif; font-size: 17px; font-weight: 400; color: #fff; margin-bottom: 10px; line-height: 1.3; }
.pcard-name a:hover { color: var(--gold); }
.pcard-price { display: flex; align-items: center; gap: 10px; }
.price-main { font-size: 16px; font-weight: 500; color: #fff; }
.price-old  { font-size: 14px; color: var(--stone); text-decoration: line-through; }

/* ── Product detail page ────────────────────────────────────── */
.pdp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; padding: 60px 0; }
.pdp-gallery { display: flex; gap: 12px; }
.gallery-thumbs { display: flex; flex-direction: column; gap: 8px; width: 74px; flex-shrink: 0; }
.gallery-thumb { width: 74px; aspect-ratio: 1; overflow: hidden; border: 1px solid var(--border); cursor: pointer; transition: border-color .2s; }
.gallery-thumb:hover, .gallery-thumb.active { border-color: var(--gold); }
.gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
.gallery-main { flex: 1; }
.gallery-main-img { width: 100%; aspect-ratio: 3/4; object-fit: cover; }
.pdp-category { font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: var(--gold); margin-bottom: 12px; display: block; }
.pdp-title  { font-family: 'Playfair Display',serif; font-size: 42px; font-weight: 400; line-height: 1.1; margin-bottom: 16px; }
.pdp-rating { display: flex; align-items: center; gap: 8px; margin-bottom: 24px; }
.stars      { color: var(--gold); letter-spacing: 2px; }
.pdp-price-block { padding-bottom: 28px; margin-bottom: 28px; border-bottom: 1px solid var(--border); }
.pdp-price  { font-family: 'Playfair Display',serif; font-size: 36px; color: #fff; }
.pdp-price-old { font-size: 20px; color: var(--stone); text-decoration: line-through; margin-left: 12px; }
.option-label { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--stone); display: block; margin-bottom: 10px; }
.size-grid  { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 24px; }
.size-btn   { padding: 9px 18px; border: 1px solid var(--border); color: #ccc; font-size: 12px; cursor: pointer; transition: all .2s; background: transparent; font-family: 'Outfit',sans-serif; }
.size-btn:hover, .size-btn.active { border-color: var(--gold); background: var(--gold); color: var(--black); font-weight: 600; }
.color-swatches { display: flex; gap: 10px; margin-bottom: 24px; }
.color-swatch { width: 28px; height: 28px; border-radius: 50%; border: 2px solid transparent; cursor: pointer; transition: all .2s; outline: 2px solid transparent; outline-offset: 2px; }
.color-swatch.active, .color-swatch:hover { outline-color: var(--gold); }
.qty-row { display: flex; align-items: center; gap: 20px; margin-bottom: 20px; }
.qty-ctrl { display: flex; align-items: center; border: 1px solid var(--border); }
.qty-btn  { width: 40px; height: 40px; background: transparent; border: none; color: #ccc; font-size: 20px; cursor: pointer; transition: color .2s; line-height: 1; }
.qty-btn:hover { color: var(--gold); }
.qty-val  { width: 52px; text-align: center; font-size: 15px; color: #fff; background: transparent; border: none; border-left: 1px solid var(--border); border-right: 1px solid var(--border); padding: 10px 0; }
.pdp-cta  { display: flex; gap: 12px; margin-bottom: 28px; }
.pdp-cta .btn-primary { flex: 1; justify-content: center; }
.wish-btn { width: 52px; height: 52px; border: 1px solid var(--border); background: transparent; color: #aaa; font-size: 18px; cursor: pointer; transition: all .2s; }
.wish-btn:hover { border-color: var(--terra); color: var(--terra); }
.trust-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-bottom: 28px; }
.trust-item { background: var(--dark2); border: 1px solid var(--border); padding: 14px; text-align: center; }
.trust-item .t-icon  { font-size: 20px; margin-bottom: 6px; }
.trust-item .t-label { font-size: 11px; color: #fff; font-weight: 500; }
.trust-item .t-sub   { font-size: 10px; color: var(--stone); margin-top: 2px; }
.pdp-tabs-nav { display: flex; border-bottom: 1px solid var(--border); margin-bottom: 20px; }
.tab-btn { padding: 12px 20px; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--stone); background: transparent; border: none; border-bottom: 2px solid transparent; cursor: pointer; transition: all .2s; font-family: 'Outfit',sans-serif; margin-bottom: -1px; }
.tab-btn.active { color: var(--gold); border-bottom-color: var(--gold); }
.tab-pane { display: none; color: #aaa; font-size: 14px; line-height: 1.8; }
.tab-pane.active { display: block; }

/* ── Cart page ──────────────────────────────────────────────── */
.cart-layout { display: grid; grid-template-columns: 1fr 360px; gap: 40px; }
.cart-item { display: flex; gap: 20px; background: var(--dark); border: 1px solid var(--border); padding: 20px; margin-bottom: 12px; }
.cart-item-img { width: 96px; height: 128px; object-fit: cover; flex-shrink: 0; }
.cart-item-body { flex: 1; }
.cart-item-name { font-family: 'Playfair Display',serif; font-size: 18px; color: #fff; margin-bottom: 6px; }
.cart-item-meta { font-size: 12px; color: var(--stone); margin-bottom: 14px; }
.cart-item-foot { display: flex; align-items: center; justify-content: space-between; }
.order-summary-box { background: var(--dark); border: 1px solid var(--border); padding: 24px; position: sticky; top: 90px; }
.sum-row   { display: flex; justify-content: space-between; font-size: 14px; padding: 10px 0; border-bottom: 1px solid var(--border); color: var(--stone); }
.sum-row span:last-child { color: var(--white); }
.sum-total { display: flex; justify-content: space-between; padding: 18px 0; }
.sum-total .s-label { color: #fff; font-size: 16px; font-weight: 500; }
.sum-total .s-val   { font-family: 'Playfair Display',serif; font-size: 26px; color: #fff; }

/* ── Auth pages ─────────────────────────────────────────────── */
.auth-page { min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: calc(var(--nav-h) + 40px) 24px 60px; background: var(--black); }
.auth-card { width: 100%; max-width: 440px; background: var(--dark); border: 1px solid var(--border); overflow: hidden; }
.auth-body { padding: 40px; }
.auth-tabs { display: flex; border: 1px solid var(--border); margin-bottom: 32px; }
.auth-tab  { flex: 1; padding: 12px; text-align: center; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; cursor: pointer; background: transparent; border: none; color: var(--stone); font-family: 'Outfit',sans-serif; transition: all .2s; display: block; }
.auth-tab.active { background: var(--gold); color: var(--black); font-weight: 600; }
.otp-input { text-align: center; font-size: 38px; letter-spacing: 14px; font-family: monospace; }

/* ── Account page ───────────────────────────────────────────── */
.acct-layout { display: grid; grid-template-columns: 260px 1fr; gap: 32px; padding: 60px 0; }
.acct-sidebar { background: var(--dark); border: 1px solid var(--border); padding: 24px; height: fit-content; position: sticky; top: 90px; }
.acct-user { display: flex; align-items: center; gap: 12px; padding-bottom: 20px; margin-bottom: 20px; border-bottom: 1px solid var(--border); }
.acct-avatar { width: 44px; height: 44px; border-radius: 50%; background: linear-gradient(135deg,var(--terra),var(--gold)); display: flex; align-items: center; justify-content: center; font-weight: 700; color: #fff; font-size: 18px; flex-shrink: 0; }
.acct-nav a { display: flex; align-items: center; gap: 10px; padding: 11px 14px; font-size: 12px; color: #999; transition: all .2s; border-left: 2px solid transparent; }
.acct-nav a:hover, .acct-nav a.active { color: var(--gold); background: rgba(212,160,23,.05); border-left-color: var(--gold); }
.order-row { background: var(--dark); border: 1px solid var(--border); padding: 20px 24px; margin-bottom: 10px; display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.order-num { font-family: monospace; font-size: 14px; color: var(--gold); }
.status-badge { display: inline-block; padding: 3px 10px; font-size: 10px; letter-spacing: 1px; text-transform: uppercase; border: 1px solid; }
.s-pending    { background: rgba(251,191,36,.1); color:#fbbf24; border-color:rgba(251,191,36,.3); }
.s-confirmed  { background: rgba(59,130,246,.1);  color:#60a5fa; border-color:rgba(59,130,246,.3); }
.s-processing { background: rgba(168,85,247,.1);  color:#c084fc; border-color:rgba(168,85,247,.3); }
.s-shipped    { background: rgba(249,115,22,.1);  color:#fb923c; border-color:rgba(249,115,22,.3); }
.s-delivered  { background: rgba(34,197,94,.1);   color:#4ade80; border-color:rgba(34,197,94,.3); }
.s-cancelled  { background: rgba(239,68,68,.1);   color:#f87171; border-color:rgba(239,68,68,.3); }

/* ── Bespoke form ───────────────────────────────────────────── */
.bespoke-types { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-bottom: 28px; }
.btype-btn { border: 1px solid var(--border); background: transparent; padding: 20px; cursor: pointer; text-align: center; transition: all .2s; }
.btype-btn:hover, .btype-btn.active { border-color: var(--gold); background: rgba(212,160,23,.06); }
.btype-btn .icon { font-size: 28px; margin-bottom: 8px; }
.btype-btn .label { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: #ccc; }
.measurements-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; }

/* ── Checkout ───────────────────────────────────────────────── */
.checkout-layout { display: grid; grid-template-columns: 1fr 360px; gap: 40px; }

/* ── Contact ────────────────────────────────────────────────── */
.contact-layout { display: grid; grid-template-columns: 1fr 1fr; gap: 60px; padding: 60px 0; }
.contact-info-item { display: flex; gap: 16px; margin-bottom: 32px; }
.contact-icon { width: 44px; height: 44px; border: 1px solid var(--border); display: flex; align-items: center; justify-content: center; font-size: 18px; flex-shrink: 0; }

/* ── Admin ──────────────────────────────────────────────────── */
.admin-wrap    { display: flex; min-height: 100vh; }
.admin-sidebar { width: 240px; background: #080808; border-right: 1px solid var(--border); position: fixed; top: 0; bottom: 0; left: 0; z-index: 50; display: flex; flex-direction: column; overflow-y: auto; }
.admin-logo    { padding: 22px 24px; border-bottom: 1px solid var(--border); }
.admin-nav     { flex: 1; padding: 14px 12px; }
.admin-nav a   { display: flex; align-items: center; gap: 10px; padding: 10px 14px; font-size: 12px; letter-spacing: 1px; color: #777; border-radius: 3px; margin-bottom: 3px; transition: all .2s; }
.admin-nav a:hover, .admin-nav a.active { background: rgba(212,160,23,.1); color: var(--gold); }
.admin-content { margin-left: 240px; flex: 1; }
.admin-topbar  { height: 60px; background: #0d0d0d; border-bottom: 1px solid var(--border); display: flex; align-items: center; justify-content: space-between; padding: 0 28px; position: sticky; top: 0; z-index: 40; }
.admin-main    { padding: 28px; }
.stat-cards    { display: grid; grid-template-columns: repeat(4,1fr); gap: 16px; margin-bottom: 28px; }
.stat-card     { background: var(--dark); border: 1px solid var(--border); padding: 20px; }
.sc-icon       { width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; font-size: 18px; margin-bottom: 14px; }
.sc-label      { font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: var(--stone); margin-bottom: 6px; }
.sc-val        { font-family: 'Playfair Display',serif; font-size: 28px; color: #fff; }
.admin-table   { width: 100%; border-collapse: collapse; background: var(--dark); border: 1px solid var(--border); }
.admin-table th { padding: 14px 20px; text-align: left; font-size: 10px; letter-spacing: 2px; text-transform: uppercase; color: var(--stone); background: #0d0d0d; border-bottom: 1px solid var(--border); white-space: nowrap; }
.admin-table td { padding: 14px 20px; font-size: 13px; border-bottom: 1px solid rgba(255,255,255,.04); vertical-align: middle; }
.admin-table tr:hover td { background: rgba(255,255,255,.02); }
.admin-panel   { background: var(--dark); border: 1px solid var(--border); padding: 28px; margin-bottom: 24px; }
.admin-panel h2 { font-family: 'Playfair Display',serif; font-size: 22px; font-weight: 400; margin-bottom: 20px; }
.form-row2 { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.form-row3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 16px; }

/* ── Footer ─────────────────────────────────────────────────── */
footer { background: #080808; margin-top: 0; }
.footer-newsletter { background: linear-gradient(135deg,rgba(26,14,0,.9),rgba(10,10,0,.9)); padding: 64px 0; }
.footer-nl-inner { display: flex; align-items: center; justify-content: space-between; gap: 32px; flex-wrap: wrap; }
.nl-form { display: flex; min-width: 340px; flex: 1; max-width: 480px; }
.nl-form input { border-right: none; padding: 13px 16px; }
.nl-form button { padding: 13px 24px; background: linear-gradient(135deg,var(--terra),var(--gold)); color: #fff; border: none; font-size: 11px; letter-spacing: 2px; text-transform: uppercase; cursor: pointer; white-space: nowrap; font-family: 'Outfit',sans-serif; }
.footer-main { padding: 64px 0; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 48px; }
.footer-brand p { color: #666; font-size: 14px; line-height: 1.8; margin: 16px 0; }
.footer-col h4  { font-size: 10px; letter-spacing: 3px; text-transform: uppercase; color: var(--gold); margin-bottom: 20px; }
.footer-col a   { display: block; color: #666; font-size: 14px; margin-bottom: 10px; transition: color .2s; }
.footer-col a:hover { color: #fff; }
.whatsapp-btn { display: inline-flex; align-items: center; gap: 8px; padding: 9px 18px; background: rgba(37,211,102,.1); border: 1px solid rgba(37,211,102,.3); color: #25D366; font-size: 12px; transition: all .2s; }
.whatsapp-btn:hover { background: rgba(37,211,102,.2); }
.footer-bottom { border-top: 1px solid var(--border); padding: 20px 0; }
.footer-bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.footer-bottom p, .footer-bottom a { color: #444; font-size: 12px; }
.footer-bottom a:hover { color: #888; }
.paystack-badge { background: rgba(11,164,219,.1); border: 1px solid rgba(11,164,219,.25); color: #0BA4DB; padding: 4px 12px; font-size: 11px; font-weight: 700; }

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .hero-inner { grid-template-columns: 1fr; }
  .hero-img-wrap { display: none; }
  .cat-grid, .product-grid { grid-template-columns: repeat(2,1fr); }
  .pdp-grid { grid-template-columns: 1fr; }
  .cart-layout, .checkout-layout, .contact-layout, .acct-layout { grid-template-columns: 1fr; }
  .stat-cards { grid-template-columns: repeat(2,1fr); }
  .footer-grid { grid-template-columns: 1fr 1fr; }
  .admin-sidebar { display: none; }
  .admin-content { margin-left: 0; }
}
@media (max-width: 768px) {
  .nav-links { display: none; }
  .hamburger { display: block; }
  .currency-btn { display: none; }
  .cat-grid, .product-grid { grid-template-columns: repeat(2,1fr); gap: 10px; }
  .bespoke-types, .measurements-grid { grid-template-columns: 1fr; }
  .footer-grid { grid-template-columns: 1fr; }
  .footer-nl-inner { flex-direction: column; }
  .nl-form { min-width: 0; width: 100%; }
  .stat-cards { grid-template-columns: 1fr 1fr; }
  .form-row2, .form-row3 { grid-template-columns: 1fr; }
  .trust-grid { grid-template-columns: 1fr; }
}
@media (max-width: 480px) {
  .cat-grid, .product-grid { grid-template-columns: 1fr; }
  .hero h1 { font-size: 36px; }
}
