/* ================================================================
   IZALE SPARKLE — Unified Responsive Stylesheet
   Mobile-first · Tablet · Desktop
   Breakpoints: 480px | 768px | 1024px | 1280px
   ================================================================ */

@import url('https://fonts.googleapis.com/css2?family=Playfair+Display:ital,wght@0,400;0,500;0,700;1,400;1,500&family=Raleway:wght@200;300;400;500;600&family=Dancing+Script:wght@600;700&display=swap');

/* ── DESIGN TOKENS ── */
:root {
  --gold:         #C8973A;
  --gold-bright:  #E4B655;
  --gold-light:   #F0D080;
  --gold-pale:    #F7E9C0;
  --cream:        #F5F0E1;
  --cream-deep:   #EDE5CC;
  --cream-soft:   #FAF7EE;
  --charcoal:     #1C1A16;
  --dark:         #2A2520;
  --warm-brown:   #5C4A2A;
  --warm-gray:    #7A6E5F;
  --border:       rgba(200,151,58,.18);
  --border-mid:   rgba(200,151,58,.35);
  --shadow-gold:  0 8px 40px rgba(200,151,58,.18);
  --touch-min:    44px;
  --safe-top:     env(safe-area-inset-top, 0px);
  --safe-bottom:  env(safe-area-inset-bottom, 0px);
  --nav-h:        64px;
  --radius-sm:    4px;
  --radius-md:    8px;
  --transition:   .3s cubic-bezier(.23,1,.32,1);
}

/* ── RESET ── */
*, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
  font-family:'Raleway',sans-serif;
  background:var(--cream-soft);
  color:var(--charcoal);
  overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}
img  { display:block; max-width:100%; height:auto; }
a    { text-decoration:none; color:inherit; -webkit-tap-highlight-color:transparent; }
button { font-family:'Raleway',sans-serif; -webkit-tap-highlight-color:transparent; border:none; }
input, select, textarea { font-family:'Raleway',sans-serif; -webkit-appearance:none; appearance:none; }
ul, ol { list-style:none; }

/* Pointer based cursor */
@media(pointer:fine)  { body, button { cursor:none; } }
@media(pointer:coarse){ body, button { cursor:pointer; } .izale-cursor, .izale-cursor-ring { display:none !important; } }

/* ── ANIMATIONS ── */
@keyframes fadeUp       { from{opacity:0;transform:translateY(24px)} to{opacity:1;transform:translateY(0)} }
@keyframes fadeIn       { from{opacity:0} to{opacity:1} }
@keyframes scalePop     { from{opacity:0;transform:scale(.7)} to{opacity:1;transform:scale(1)} }
@keyframes float        { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-12px)} }
@keyframes marqueeScroll{ from{transform:translateX(0)} to{transform:translateX(-50%)} }
@keyframes sparkleFade  { 0%{opacity:1;transform:translate(-50%,-50%) scale(1)} 100%{opacity:0;transform:translate(-50%,-50%) scale(0) translateY(-20px)} }
@keyframes twinkle      { 0%,100%{opacity:0;transform:scale(0)} 50%{opacity:1;transform:scale(1)} }
@keyframes rotateSlow   { from{transform:rotate(0deg)} to{transform:rotate(360deg)} }
@keyframes loadDot      { 0%,80%,100%{opacity:.2;transform:scale(.8)} 40%{opacity:1;transform:scale(1)} }
@keyframes toastIn      { from{opacity:0;transform:translateY(16px)} to{opacity:1;transform:translateY(0)} }
@keyframes slideUp      { from{transform:translateY(100%)} to{transform:translateY(0)} }
@keyframes slideLeft    { from{transform:translateX(-100%)} to{transform:translateX(0)} }
@keyframes fadeOut      { from{opacity:1} to{opacity:0} }
@keyframes growLine     { from{width:0;opacity:0} to{width:28px;opacity:1} }
@keyframes shimmer      { 0%{background-position:200% center} 100%{background-position:-200% center} }

@media(prefers-reduced-motion:reduce) {
  *, *::before, *::after { animation-duration:.01ms !important; transition-duration:.01ms !important; }
  .marquee-track { animation:none; }
}

/* ── LOADING SCREEN ── */
.blazor-loading-screen {
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  min-height:100vh; background:var(--cream-soft); gap:.5rem;
}
.loading-logo { font-family:'Playfair Display',serif; font-size:2rem; font-weight:400; letter-spacing:.3em; color:var(--charcoal); }
.loading-logo span { color:var(--gold); }
.loading-tagline { font-size:.62rem; letter-spacing:.3em; color:var(--warm-gray); text-transform:uppercase; }
.loading-dots { display:flex; gap:.5rem; margin-top:1.5rem; }
.loading-dots span { width:8px; height:8px; border-radius:50%; background:var(--gold); animation:loadDot 1.4s ease-in-out infinite; }
.loading-dots span:nth-child(2){ animation-delay:.2s; }
.loading-dots span:nth-child(3){ animation-delay:.4s; }

/* Blazor error UI */
#blazor-error-ui { display:none; position:fixed; bottom:0; left:0; right:0; background:#c0392b; color:white; padding:1rem; font-size:.8rem; z-index:9999; text-align:center; }
#blazor-error-ui .reload { color:white; text-decoration:underline; margin-left:.5rem; }

/* ── TOAST ── */
#global-toast {
  position:fixed; bottom:1.5rem; left:50%; transform:translateX(-50%) translateY(16px);
  background:var(--charcoal); color:var(--gold-pale);
  padding:.9rem 2rem; font-size:.68rem; letter-spacing:.12em; text-transform:uppercase;
  z-index:3000; border-left:3px solid var(--gold); white-space:nowrap;
  opacity:0; transition:opacity .35s, transform .35s;
}
#global-toast.show { opacity:1; transform:translateX(-50%) translateY(0); }

/* ── SCROLL REVEAL ── */
.reveal       { opacity:0; transform:translateY(28px); transition:opacity .8s var(--transition), transform .8s var(--transition); }
.reveal.visible { opacity:1; transform:none; }
.reveal-left  { opacity:0; transform:translateX(-28px); transition:opacity .8s var(--transition), transform .8s var(--transition); }
.reveal-left.visible { opacity:1; transform:none; }
.reveal-right { opacity:0; transform:translateX(28px); transition:opacity .8s var(--transition), transform .8s var(--transition); }
.reveal-right.visible { opacity:1; transform:none; }

/* ── HERO ENTRANCE ANIMATIONS ── */
.hero-eyebrow { animation:fadeUp .7s var(--transition) .15s both; }
.eyebrow-line { animation:growLine .9s var(--transition) .15s both; }
.hero-script  { animation:fadeUp .7s var(--transition) .35s both; }
.hero-title   { animation:fadeUp .75s var(--transition) .5s both; }
.hero-desc    { animation:fadeUp .7s var(--transition) .7s both; }
.hero-btns    { animation:fadeUp .7s var(--transition) .88s both; }
.hero-stats   { animation:fadeUp .7s var(--transition) 1.05s both; }
/* stagger each stat number */
.hero-stats .stat:nth-child(1) .stat-num { animation:scalePop .5s var(--transition) 1.15s both; }
.hero-stats .stat:nth-child(2) .stat-num { animation:scalePop .5s var(--transition) 1.3s both; }
.hero-stats .stat:nth-child(3) .stat-num { animation:scalePop .5s var(--transition) 1.45s both; }

/* ── USP STAGGER (reveal driven — transition-delay per child) ── */
.usp-item.reveal:nth-child(1) { transition-delay:.05s; }
.usp-item.reveal:nth-child(2) { transition-delay:.18s; }
.usp-item.reveal:nth-child(3) { transition-delay:.31s; }
.usp-item.reveal:nth-child(4) { transition-delay:.44s; }
/* icon hover lift */
.usp-icon { display:inline-block; transition:transform .35s var(--transition); }
.usp-item:hover .usp-icon { transform:scale(1.25) rotate(-8deg); }

/* ── TESTI CARD STAGGER ── */
.testi-card.reveal:nth-child(1) { transition-delay:.05s; }
.testi-card.reveal:nth-child(2) { transition-delay:.2s; }
.testi-card.reveal:nth-child(3) { transition-delay:.35s; }

/* ── SPARKLE DIVIDER SPIN ── */
.sparkle-divider span { display:inline-block; animation:rotateSlow 10s linear infinite; }

/* ── SECTION HEAD default delay ── */
.section-head.reveal { transition-delay:.05s; }

/* ── HERO SECTION TITLE shimmer on em ── */
.hero-title em, .editorial-title em, .section-title em {
  background:linear-gradient(90deg,var(--gold) 0%,var(--gold-bright) 45%,var(--gold) 100%);
  background-size:200% auto;
  -webkit-background-clip:text; background-clip:text;
  -webkit-text-fill-color:transparent;
  animation:shimmer 4s linear infinite;
}

/* ── EDITORIAL reveal transition overrides (faster for side-by-side) ── */
.editorial-img.reveal-left   { transition-duration:1s; }
.editorial-content.reveal-right { transition-duration:1s; transition-delay:.2s; }

/* ── FOCUS VISIBLE ── */
:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }
button:focus:not(:focus-visible), a:focus:not(:focus-visible) { outline:none; }

/* ================================================================
   LAYOUT
   ================================================================ */
.page-wrap { display:flex; flex-direction:column; min-height:100vh; }
.menu-is-open { overflow:hidden; }
.main-content { flex:1; padding-top:calc(var(--nav-h) + env(safe-area-inset-top) + 8px); }

/* ================================================================
    NAVBAR — Mobile (hamburger centre brand)
    ================================================================ */
.navbar {
  position:fixed; top:0; left:0; right:0; z-index:500;
  /* Direct env() usage — more reliable on iOS Safari than CSS variables */
  padding-top:env(safe-area-inset-top);
  padding-left:0.8rem; padding-right:0.8rem; padding-bottom:0;
  min-height:calc(60px + env(safe-area-inset-top));
  display:grid;
  grid-template-columns:44px 1fr auto;
  /* align-items:end places buttons at the bottom of the padded area, not inside the status bar */
  align-items:center;
  padding-bottom:.5rem;
  background:rgba(250,247,238,.97);
  backdrop-filter:blur(20px);
  -webkit-backdrop-filter:blur(20px);
  border-bottom:1px solid var(--border);
  transition:box-shadow var(--transition);
  gap:.4rem;
}
.navbar.scrolled { box-shadow:0 2px 24px rgba(200,151,58,.12); }
.nav-brand { justify-self:center; display:flex; flex-direction:column; align-items:center; line-height:1.1; gap:0.1rem; }
.nav-logo-text { font-family:'Playfair Display',serif; font-size:1.1rem; font-weight:400; letter-spacing:.15em; color:var(--charcoal); }
.nav-logo-text .gold { color:var(--gold); }
.nav-tagline { display:none; font-size:.48rem; letter-spacing:.2em; color:var(--warm-gray); text-transform:uppercase; }
.nav-links { display:none; }
.nav-actions { 
  justify-self:end; 
  display:flex; 
  align-items:center; 
  gap:0; 
  align-self:center; 
  overflow:visible; 
  flex-wrap:nowrap;
  flex-shrink:0;
}
.nav-icon-btn {
  background:none; border:none; padding:0;
  min-width:44px; min-height:44px;
  color:var(--warm-gray); font-size:1rem;
  display:flex; align-items:center; justify-content:center;
  position:relative; transition:color .2s;
  flex-shrink:0;
}
.nav-icon-btn:hover { color:var(--gold); }
.cart-btn { position:relative; }
.cart-badge {
  position:absolute; top:2px; right:2px;
  background:var(--gold); color:white; border-radius:50%;
  width:16px; height:16px; font-size:.48rem;
  display:flex; align-items:center; justify-content:center; font-weight:700;
}

/* ── HAMBURGER ── */
.hamburger {
  display:flex; flex-direction:column; justify-content:center;
  width:22px; height:16px; background:none; border:none; padding:0;
  min-width:44px; min-height:44px;
  align-items:center; justify-self:start;
  cursor:pointer; z-index:520;
  transition:all .2s ease;
  position:relative;
}
.hamburger:hover {
  transform:scale(1.05);
}
.hamburger:active {
  transform:scale(0.95);
}
.hamburger span {
  display:block; width:22px; height:2px; background:var(--charcoal);
  border-radius:1px; transition:transform .35s cubic-bezier(.68,-.55,.265,1.55), opacity .25s ease, background .2s ease;
  transform-origin:11px 1px;
  position:absolute;
}
.hamburger span:nth-child(1) {
  transform:translateY(-6px);
}
.hamburger span:nth-child(2) {
  transform:translateY(0);
}
.hamburger span:nth-child(3) {
  transform:translateY(6px);
}
.hamburger:hover span {
  background:var(--gold);
}
.hamburger.open span:nth-child(1) { 
  transform:rotate(45deg) translateY(0);
  background:var(--gold);
}
.hamburger.open span:nth-child(2) { 
  opacity:0;
  transform:translateX(-8px);
}
.hamburger.open span:nth-child(3) { 
  transform:rotate(-45deg) translateY(0);
  background:var(--gold);
}

/* ── MOBILE MENU OVERLAY ── */
.menu-overlay {
  position:fixed; inset:0;
  background:rgba(28,26,22,.5);
  backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px);
  z-index:510; animation:fadeIn .25s ease;
}

/* ── MOBILE MENU DRAWER ── */
.mobile-menu {
  position:fixed; top:0; left:0; bottom:0;
  width:min(300px, 82vw);
  background:var(--cream-soft);
  z-index:515; display:flex; flex-direction:column;
  transform:translateX(-100%);
  transition:transform .38s var(--transition);
  overflow-y:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch;
  box-shadow:10px 0 50px rgba(0,0,0,.18);
  /* Push content below iOS status bar */
  padding-top:env(safe-area-inset-top);
}
.mobile-menu::-webkit-scrollbar { display:none; }
.mobile-menu.open { transform:translateX(0); }
.mobile-menu-head {
  display:flex; align-items:center; justify-content:space-between;
  padding:0 1.2rem; height:var(--nav-h); flex-shrink:0;
  border-bottom:1px solid var(--border); background:var(--cream);
}
.mobile-menu-logo { font-family:'Playfair Display',serif; font-size:1.1rem; letter-spacing:.18em; color:var(--charcoal); }
.mobile-menu-logo .gold { color:var(--gold); }
.mobile-menu-close {
  background:none; border:none; color:var(--warm-gray); font-size:1.1rem;
  width:var(--touch-min); height:var(--touch-min);
  display:flex; align-items:center; justify-content:center; transition:color .2s;
}
.mobile-menu-close:hover { color:var(--gold); }
.mobile-menu-nav { display:flex; flex-direction:column; flex-shrink:0; }
.mobile-nav-link {
  display:flex; align-items:center; gap:.9rem;
  padding:0 1.2rem; min-height:52px; text-decoration:none;
  color:var(--charcoal); font-size:.82rem; letter-spacing:.04em;
  border-bottom:1px solid var(--border); transition:background .2s, color .2s;
}
.mobile-nav-link:hover, .mobile-nav-link.active { background:var(--cream); color:var(--gold); }
.mobile-nav-link.active { font-weight:600; }
.mobile-nav-icon { font-size:1.05rem; flex-shrink:0; width:1.4rem; text-align:center; }
.mobile-nav-link span:nth-child(2) { flex:1; }
.mobile-nav-arrow { color:rgba(200,151,58,.4); transition:transform .2s, color .2s; }
.mobile-nav-link:hover .mobile-nav-arrow, .mobile-nav-link.active .mobile-nav-arrow { transform:translateX(3px); color:var(--gold); }
.mobile-menu-cats { padding:1.2rem; flex-shrink:0; border-bottom:1px solid var(--border); }
.mobile-cats-title { font-size:.55rem; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); font-weight:500; margin-bottom:.8rem; }
.mobile-cats-grid { display:grid; grid-template-columns:1fr 1fr; gap:.5rem; }
.mobile-cat-chip {
  display:flex; align-items:center; justify-content:center;
  padding:.6rem; border:1px solid var(--border); background:white;
  color:var(--warm-gray); font-size:.65rem; letter-spacing:.1em; text-transform:uppercase;
  text-decoration:none; min-height:40px; transition:all .2s;
}
.mobile-cat-chip:hover { background:var(--charcoal); color:var(--gold-pale); border-color:var(--charcoal); }
.mobile-menu-footer { margin-top:auto; padding:1.2rem; border-top:1px solid var(--border); background:var(--cream); flex-shrink:0; }
.mobile-menu-tagline { font-family:'Playfair Display',serif; font-size:.72rem; font-style:italic; color:var(--warm-gray); margin-bottom:.9rem; }
.mobile-menu-socials { display:flex; gap:.5rem; }
.mobile-social {
  width:34px; height:34px; border:1px solid var(--border);
  display:flex; align-items:center; justify-content:center;
  color:var(--gold); font-size:.7rem; font-weight:600; transition:all .25s;
}
.mobile-social:hover { background:var(--gold); color:var(--charcoal); }

/* ── SW UPDATE BANNER ── */
.sw-update-banner {
  position:fixed; top:var(--nav-h); left:0; right:0; z-index:490;
  background:var(--gold); color:var(--charcoal);
  display:flex; align-items:center; justify-content:space-between;
  padding:.75rem 1.2rem; gap:1rem;
  transform:translateY(-100%); transition:transform .4s;
}
.sw-update-banner.show { transform:translateY(0); }
.sw-update-banner span { font-size:.72rem; font-weight:500; }
.sw-update-btn { background:var(--charcoal); color:var(--gold-pale); border:none; padding:.45rem .9rem; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; }

/* ── PWA INSTALL BANNER ── */
.pwa-install-banner {
  position:fixed; bottom:0; left:0; right:0; z-index:600;
  background:var(--charcoal); color:var(--cream-soft);
  display:none; align-items:center; gap:1rem; padding:1rem 1.2rem;
  border-top:1px solid var(--border);
  transform:translateY(100%); transition:transform .4s var(--transition);
}
@media (max-width: 768px) {
  .pwa-install-banner { display:flex; }
}
.pwa-install-banner.show { transform:translateY(0); }
.pwa-banner-icon { font-size:1.8rem; flex-shrink:0; }
.pwa-banner-text { flex:1; }
.pwa-banner-title { font-family:'Playfair Display',serif; font-size:.95rem; margin-bottom:.12rem; }
.pwa-banner-sub   { font-size:.62rem; color:rgba(245,240,225,.5); }
.pwa-banner-btn   { background:var(--gold); color:var(--charcoal); border:none; padding:.6rem 1.1rem; font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; min-height:var(--touch-min); flex-shrink:0; }
.pwa-banner-dismiss { background:rgba(245,240,225,.1); border:1px solid rgba(245,240,225,.2); color:var(--cream-soft); font-size:1rem; min-height:var(--touch-min); min-width:var(--touch-min); flex-shrink:0; display:flex; align-items:center; justify-content:center; border-radius:50%; padding:0.4rem; }

/* ================================================================
   SECTIONS — shared padding
   ================================================================ */
.section { padding:3rem 1.2rem; }
.section.bg-white { background:white; }
.section.bg-cream { background:var(--cream); }
.section.bg-dark  { background:var(--charcoal); }
.section-head { text-align:center; margin-bottom:2.5rem; }
.section-tag { font-size:.58rem; letter-spacing:.38em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:.7rem; font-weight:500; }
.section-title { font-family:'Playfair Display',serif; font-size:clamp(1.7rem,5vw,3.2rem); font-weight:400; line-height:1.2; color:var(--charcoal); }
.section-title em { font-style:italic; color:var(--gold); }
.section-subtitle { font-size:.8rem; color:var(--warm-gray); margin-top:.8rem; line-height:1.85; font-weight:300; }
.section-cta { text-align:center; margin-top:2.5rem; }
.sparkle-divider { display:flex; align-items:center; justify-content:center; gap:.8rem; margin:1.2rem auto; }
.sparkle-divider::before, .sparkle-divider::after { content:''; width:40px; height:1px; background:linear-gradient(to right,transparent,var(--gold)); }
.sparkle-divider::after { background:linear-gradient(to left,transparent,var(--gold)); }
.sparkle-divider span { color:var(--gold); font-size:.6rem; }

/* ================================================================
   BUTTONS
   ================================================================ */
.btn {
  display:inline-flex; align-items:center; justify-content:center;
  border:none; padding:.9rem 2rem; font-size:.7rem; letter-spacing:.22em;
  text-transform:uppercase; font-weight:500; transition:all .3s;
  min-height:var(--touch-min); white-space:nowrap;
}
.btn-dark         { background:var(--charcoal); color:var(--gold-pale); }
.btn-dark:hover   { background:var(--gold); color:var(--charcoal); }
.btn-gold         { background:var(--gold); color:var(--charcoal); }
.btn-gold:hover   { background:var(--gold-bright); }
.btn-outline      { background:transparent; color:var(--charcoal); border:1px solid var(--charcoal); }
.btn-outline:hover{ background:var(--charcoal); color:var(--gold-pale); }
.btn-outline-gold { background:transparent; color:var(--gold); border:1px solid var(--gold); }
.btn-outline-gold:hover { background:var(--gold); color:var(--charcoal); }
.btn-outline-light{ background:transparent; color:var(--cream-soft); border:1px solid rgba(245,240,225,.35); }
.btn-outline-light:hover { border-color:var(--gold); color:var(--gold); }
.btn-full { width:100%; }
@media(max-width:479px){ .btn-full-mobile { width:100%; } }

/* Active tap feedback */
@media(pointer:coarse) {
  .btn:active { opacity:.82; transform:scale(.97); }
}

/* ================================================================
   HERO
   ================================================================ */
.hero { padding:2.5rem 1.2rem 3rem; background:var(--cream-soft); position:relative; overflow:hidden; }
.hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 80% 0%,rgba(200,151,58,.07) 0%,transparent 65%); pointer-events:none; }
.hero-content { position:relative; z-index:2; }
.hero-eyebrow { display:flex; align-items:center; gap:.8rem; margin-bottom:1.3rem; }
.eyebrow-line { width:28px; height:1px; background:var(--gold); }
.hero-eyebrow span { font-size:.6rem; letter-spacing:.35em; text-transform:uppercase; color:var(--gold); }
.hero-script { font-family:'Dancing Script',cursive; font-size:clamp(2.2rem,8vw,3.8rem); color:var(--gold); line-height:1.1; display:block; margin-bottom:.2rem; }
.hero-title { font-family:'Playfair Display',serif; font-size:clamp(2rem,6.5vw,4.2rem); font-weight:400; line-height:1.08; color:var(--charcoal); margin-bottom:1.3rem; }
.hero-title em { font-style:italic; color:var(--gold); }
.hero-desc { font-size:.84rem; line-height:1.9; color:var(--warm-gray); margin-bottom:2rem; font-weight:300; max-width:420px; }
.hero-btns { display:flex; gap:.8rem; flex-wrap:wrap; }
.hero-btns .btn { flex:1; min-width:130px; }

/* Hero mobile image */
.hero-img-mobile { margin:2rem -1.2rem 0; overflow:hidden; position:relative; height:260px; }
.hero-img-mobile img { width:100%; height:100%; object-fit:cover; }
.hero-img-mobile-overlay { position:absolute; inset:0; background:linear-gradient(to top,var(--cream-soft) 0%,transparent 60%); }
.hero-img-side { display:none; }
.hero-sparkles, .sparkle-dot { display:none; }

.hero-stats { display:flex; gap:0; margin-top:2rem; padding-top:1.8rem; border-top:1px solid var(--border); justify-content:space-around; }
.stat { text-align:center; }
.stat-num { font-family:'Playfair Display',serif; font-size:1.6rem; font-weight:400; color:var(--gold); line-height:1; }
.stat-label { font-size:.54rem; letter-spacing:.15em; text-transform:uppercase; color:var(--warm-gray); margin-top:.3rem; }

/* ================================================================
   MARQUEE
   ================================================================ */
.marquee-bar { background:var(--charcoal); padding:.8rem 0; overflow:hidden; }
.marquee-track { display:flex; white-space:nowrap; animation:marqueeScroll 35s linear infinite; }
.marquee-item { font-size:.58rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); padding:0 2.5rem; flex-shrink:0; }
.marquee-sep { color:rgba(200,151,58,.35); }

/* ================================================================
   CATEGORY TILES
   Mobile: horizontal scroll  |  Desktop: editorial grid
   ================================================================ */
.cat-scroll-wrap {
  display:flex; gap:.8rem;
  overflow-x:auto; -webkit-overflow-scrolling:touch;
  padding:.5rem 1.2rem 1rem; margin:0 -1.2rem;
  scroll-snap-type:x mandatory;
}
.cat-scroll-wrap::-webkit-scrollbar { display:none; }
.cat-tile-mobile {
  flex:0 0 140px; height:190px;
  position:relative; overflow:hidden; border-radius:var(--radius-sm);
  scroll-snap-align:start; -webkit-tap-highlight-color:transparent;
}
.cat-tile-mobile img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
.cat-tile-mobile:hover img { transform:scale(1.08); }
.cat-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(28,26,22,.78) 0%,rgba(28,26,22,.08) 60%,transparent 100%); }
.cat-info { position:absolute; bottom:0; left:0; right:0; padding:.8rem; color:white; }
.cat-name  { font-family:'Playfair Display',serif; font-size:1rem; font-weight:400; }
.cat-count { font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; opacity:.65; }
.cat-arrow { display:none; }
.cat-grid  { display:none; }
.cat-tile  { display:none; }

/* ── HOME: SHOP BY CATEGORY CARDS ── */
.home-cat-grid {
  display:grid; grid-template-columns:repeat(4,1fr); gap:1rem;
  max-width:1100px; margin:0 auto; padding:0 1.2rem;
}
.home-cat-card {
  display:flex; flex-direction:column; align-items:center; gap:.55rem;
  padding:2rem 1rem; background:var(--cream-soft);
  border:1px solid var(--border); border-radius:var(--radius-sm);
  text-decoration:none; color:var(--charcoal,#1C1A16);
  transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.home-cat-card:hover {
  transform:translateY(-4px);
  box-shadow:0 14px 32px rgba(28,26,22,.10);
  border-color:var(--gold);
}
.home-cat-icon  { font-size:2.4rem; line-height:1; }
.home-cat-name  { font-family:'Playfair Display',serif; font-size:1.05rem; text-align:center; }
.home-cat-count { font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--warm-gray); }
@media (max-width:900px) { .home-cat-grid { grid-template-columns:1fr 1fr; } }
@media (max-width:480px) {
  .home-cat-grid { gap:.7rem; }
  .home-cat-card { padding:1.4rem .6rem; }
  .home-cat-icon { font-size:2rem; }
  .home-cat-name { font-size:.92rem; }
}

/* ================================================================
   NECKLACE HERO (Hidden by default, shown on desktop)
   ================================================================ */
.necklace-hero { display:none; }

/* Mobile Necklace Hero */
@media (max-width: 900px) {
  .necklace-hero {
    display:block !important;
    background:linear-gradient(135deg,#1C1A16 0%,#2a2520 100%);
    padding:2rem 1rem;
    min-height:auto;
    min-height:350px;
  }
  .necklace-hero::before {
    background:radial-gradient(ellipse at 50% 30%,rgba(200,151,58,.15) 0%,transparent 70%);
  }
  .nh-slideshow {
    border-radius:4px;
    min-height:300px;
  }
  .nh-slide img {
    max-height:350px;
  }
  .nh-particle { display:none; }
}

/* ================================================================
   PRODUCT GRID & CARD
   ================================================================ */
.product-grid { display:grid; gap:1rem; grid-template-columns:repeat(2,1fr); }
.grid-4 { grid-template-columns:repeat(2,1fr); }
.grid-3 { grid-template-columns:repeat(2,1fr); }
.product-card { position:relative; }
.product-img-link { display:block; }
.product-img-wrap { position:relative; overflow:hidden; aspect-ratio:3/4; background:var(--cream); border:1px solid var(--border); }
.product-img-wrap img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--transition); }
.product-card:hover .product-img-wrap img { transform:scale(1.05); }
.product-badge { position:absolute; top:.6rem; left:.6rem; padding:.22rem .6rem; font-size:.52rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; }
.badge-new        { background:var(--charcoal); color:var(--gold-pale); }
.badge-sale       { background:var(--gold); color:var(--charcoal); }
.badge-bestseller { background:var(--warm-brown); color:var(--gold-light); }
.badge-out        { background:#991b1b; color:#fff; }
.product-hover-overlay { display:none; }
.product-card.out-of-stock { opacity:.75; }
.product-card.out-of-stock .product-img-wrap img { filter:grayscale(.5); }
.prod-add-btn.btn-disabled { background:var(--warm-gray); color:#fff; cursor:not-allowed; }
.product-card-actions { display:flex; }
.prod-add-btn { flex:1; padding:.75rem .5rem; background:var(--charcoal); color:var(--gold-pale); border:none; font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; min-height:var(--touch-min); transition:background .3s; }
.prod-add-btn:hover { background:var(--gold); color:var(--charcoal); }
.prod-wish-btn { width:44px; background:var(--cream-soft); border:none; border-left:1px solid var(--border); color:var(--warm-gray); font-size:1.1rem; min-height:var(--touch-min); display:flex; align-items:center; justify-content:center; transition:all .25s; }
.prod-wish-btn:hover, .prod-wish-btn.wishlisted { background:var(--cream); color:var(--gold); }
.product-card-info { margin-top:.75rem; }
.product-stars { font-size:.58rem; color:var(--gold); margin-bottom:.2rem; }
.product-name-link { display:block; }
.product-name { font-family:'Playfair Display',serif; font-size:.92rem; font-weight:400; color:var(--charcoal); margin-bottom:.15rem; line-height:1.3; transition:color .25s; }
.product-name:hover { color:var(--gold); }
.product-material { font-size:.6rem; color:var(--warm-gray); margin-bottom:.4rem; }
.product-price-row { display:flex; align-items:baseline; gap:.5rem; flex-wrap:wrap; }
.product-price { font-family:'Playfair Display',serif; font-size:1rem; color:var(--charcoal); }
.product-price-old { font-size:.72rem; color:var(--warm-gray); text-decoration:line-through; }
.product-save { font-size:.58rem; color:#c0392b; font-weight:600; }

/* ================================================================
   EDITORIAL STRIP
   ================================================================ */
.editorial-strip { display:flex; flex-direction:column; }
.editorial-img { overflow:hidden; height:260px; }
.editorial-img img { width:100%; height:100%; object-fit:cover; }
.editorial-content { background:var(--charcoal); padding:2.5rem 1.5rem; position:relative; }
.editorial-content::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 30% 50%,rgba(200,151,58,.06) 0%,transparent 60%); }
.editorial-tag { font-size:.6rem; letter-spacing:.38em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; position:relative; }
.editorial-title { font-family:'Playfair Display',serif; font-size:clamp(1.5rem,4vw,2.8rem); font-weight:400; color:var(--cream-soft); line-height:1.2; margin-bottom:1rem; position:relative; }
.editorial-title em { font-style:italic; color:var(--gold); }
.editorial-body { font-size:.8rem; line-height:1.9; color:rgba(245,240,225,.5); margin-bottom:1.8rem; font-weight:300; position:relative; }

/* ================================================================
   USP BAR
   ================================================================ */
.usp-bar { display:grid; grid-template-columns:1fr 1fr; background:var(--cream); border-top:1px solid var(--border); border-bottom:1px solid var(--border); }
.usp-item { padding:1.4rem .8rem; text-align:center; border-right:1px solid var(--border); border-bottom:1px solid var(--border); transition:background .25s; }
.usp-item:nth-child(2n) { border-right:none; }
.usp-item:nth-child(n+3) { border-bottom:none; }
.usp-item:hover { background:var(--cream-deep); }
.usp-icon  { font-size:1.3rem; margin-bottom:.5rem; }
.usp-title { font-family:'Playfair Display',serif; font-size:.9rem; color:var(--charcoal); margin-bottom:.25rem; }
.usp-desc  { font-size:.62rem; color:var(--warm-gray); line-height:1.6; }

/* ================================================================
   TESTIMONIALS  — horizontal scroll (mobile) / grid (desktop)
   ================================================================ */
.testi-scroll { overflow-x:auto; -webkit-overflow-scrolling:touch; margin:0 -1.2rem; padding:0 1.2rem 1rem; scroll-snap-type:x mandatory; }
.testi-scroll::-webkit-scrollbar { display:none; }
.testi-grid { display:flex; gap:1rem; width:max-content; }
.testi-card { flex:0 0 280px; padding:1.6rem; border:1px solid var(--border); background:white; scroll-snap-align:start; border-radius:var(--radius-sm); position:relative; overflow:hidden; }
.testi-card::before { content:''; position:absolute; top:0; left:0; right:0; height:2px; background:linear-gradient(to right,var(--gold),var(--gold-light),var(--gold)); transform:scaleX(0); transition:transform .4s; }
.testi-card:hover::before { transform:scaleX(1); }
.testi-stars { font-size:.7rem; color:var(--gold); margin-bottom:.8rem; }
.testi-quote { font-family:'Playfair Display',serif; font-size:3rem; color:var(--gold); opacity:.2; line-height:1; margin-bottom:.3rem; }
.testi-text { font-family:'Playfair Display',serif; font-size:.95rem; font-style:italic; line-height:1.7; color:var(--warm-gray); margin-bottom:1rem; }
.testi-name { font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--charcoal); font-weight:500; }

/* ================================================================
   NEWSLETTER
   ================================================================ */
.newsletter-strip { background:linear-gradient(135deg,var(--charcoal) 0%,var(--dark) 100%); padding:3rem 1.5rem; text-align:center; position:relative; overflow:hidden; }
.newsletter-strip::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at center,rgba(200,151,58,.07) 0%,transparent 65%); }
.newsletter-strip h3 { font-family:'Playfair Display',serif; font-size:clamp(1.6rem,4vw,2.8rem); font-weight:400; color:var(--cream-soft); margin-bottom:.5rem; position:relative; }
.newsletter-strip h3 em { font-style:italic; color:var(--gold); }
.newsletter-strip p { font-size:.76rem; color:rgba(245,240,225,.5); margin-bottom:1.8rem; position:relative; }
.newsletter-form { display:flex; flex-direction:column; gap:.6rem; max-width:420px; margin:0 auto; position:relative; }
.newsletter-input { padding:1rem 1.2rem; border:1px solid var(--border-mid); background:rgba(255,255,255,.06); font-size:.78rem; color:var(--cream-soft); outline:none; min-height:var(--touch-min); }
.newsletter-input::placeholder { color:rgba(245,240,225,.3); }
.newsletter-input:focus { border-color:var(--gold); }
.newsletter-submit { padding:1rem; background:var(--gold); color:var(--charcoal); border:none; font-size:.65rem; letter-spacing:.2em; text-transform:uppercase; font-weight:600; min-height:var(--touch-min); }
.newsletter-submit:hover { background:var(--gold-bright); }

/* ================================================================
   PAGE HERO (inner pages)
   ================================================================ */
.page-hero { background:var(--charcoal); position:relative; overflow:hidden; display:flex; align-items:center; justify-content:center; flex-direction:column; text-align:center; min-height:38vh; padding:3rem 1.5rem 2.5rem; }
.page-hero::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 50% 50%,rgba(200,151,58,.08) 0%,transparent 70%); }
.page-hero-tag { font-size:.6rem; letter-spacing:.4em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:.8rem; position:relative; z-index:2; }
.page-hero-title { font-family:'Playfair Display',serif; font-size:clamp(1.9rem,6vw,4.5rem); font-weight:400; color:var(--cream-soft); line-height:1.1; position:relative; z-index:2; }
.page-hero-title em { font-style:italic; color:var(--gold); }
.page-hero-sub { font-size:.78rem; color:rgba(245,240,225,.45); margin-top:1rem; max-width:380px; line-height:1.9; font-weight:300; position:relative; z-index:2; }

/* ================================================================
   TERMS PAGE
   ================================================================ */
.terms-section { background:var(--cream-soft); padding:4rem 1.5rem; }
.terms-content { max-width:800px; margin:0 auto; display:flex; flex-direction:column; gap:1.5rem; }
.terms-card { background:white; border:1px solid var(--border); border-radius:8px; padding:2rem; }
.terms-card h2 { font-family:'Playfair Display',serif; font-size:1.3rem; font-weight:400; color:var(--charcoal); margin-bottom:1rem; }
.terms-card p { font-size:.9rem; color:var(--warm-gray); line-height:1.8; }
@media(min-width:768px) {
  .terms-section { padding:5rem 2rem; }
  .terms-card { padding:2.5rem; }
  .terms-card h2 { font-size:1.5rem; }
}

/* ================================================================
   SHOP PAGE
   ================================================================ */
.shop-filter-bar { display:flex; gap:.5rem; padding:.8rem 1.2rem; overflow-x:auto; -webkit-overflow-scrolling:touch; border-bottom:1px solid var(--border); background:var(--cream); position:sticky; top:var(--nav-h); z-index:100; }
.shop-filter-bar::-webkit-scrollbar { display:none; }
.filter-chip { flex:0 0 auto; padding:.5rem 1rem; border:1px solid var(--border); background:white; font-family:'Raleway',sans-serif; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--warm-gray); white-space:nowrap; min-height:36px; border-radius:20px; transition:all .2s; }
.filter-chip.active, .filter-chip:hover { background:var(--charcoal); color:var(--gold-pale); border-color:var(--charcoal); }
.shop-toolbar { display:flex; justify-content:space-between; align-items:center; padding:.8rem 1.2rem; border-bottom:1px solid var(--border); }
.shop-toolbar-right { display:flex; align-items:center; gap:.6rem; }
.shop-count { font-family:'Playfair Display',serif; font-size:.9rem; color:var(--warm-gray); }
.shop-count strong { color:var(--charcoal); }
.view-toggle { display:flex; gap:.3rem; }
.view-btn { width:36px; height:36px; border:1px solid var(--border); background:transparent; display:flex; align-items:center; justify-content:center; font-size:.85rem; color:var(--warm-gray); transition:all .2s; }
.view-btn.active, .view-btn:hover { background:var(--charcoal); color:var(--gold-pale); border-color:var(--charcoal); }
.sort-btn { display:flex; align-items:center; gap:.3rem; background:none; border:1px solid var(--border); padding:.4rem .85rem; font-family:'Raleway',sans-serif; font-size:.64rem; letter-spacing:.14em; text-transform:uppercase; color:var(--warm-gray); min-height:36px; }
.shop-sidebar { display:none; }
.shop-layout { display:block; }
.shop-products { padding:1rem 1.2rem; }
.list-view { display:flex !important; flex-direction:column; gap:1rem; }
.list-view .product-card { display:flex; gap:1rem; }
.list-view .product-img-wrap { width:110px; height:130px; flex-shrink:0; aspect-ratio:auto; }
.no-results { text-align:center; padding:5rem 1rem; color:var(--warm-gray); font-family:'Playfair Display',serif; font-size:1.1rem; font-style:italic; }

/* Sort sheet */
.sort-overlay { position:fixed; inset:0; background:rgba(28,26,22,.5); z-index:700; animation:fadeIn .25s ease; }
.sort-sheet { position:fixed; bottom:0; left:0; right:0; z-index:800; background:var(--cream-soft); border-radius:20px 20px 0 0; padding:0 0 calc(var(--safe-bottom) + 1rem); box-shadow:0 -20px 60px rgba(0,0,0,.2); animation:slideUp .3s var(--transition); }
.sort-sheet-handle { width:40px; height:4px; background:var(--border-mid); border-radius:2px; margin:.9rem auto .5rem; }
.sort-sheet-title { font-size:.58rem; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); padding:.5rem 1.5rem 1rem; font-weight:500; }
.sort-option { display:flex; justify-content:space-between; align-items:center; width:100%; padding:1rem 1.5rem; background:none; border:none; border-top:1px solid var(--border); font-family:'Raleway',sans-serif; font-size:.82rem; color:var(--charcoal); min-height:var(--touch-min); text-align:left; transition:background .2s; }
.sort-option:hover { background:var(--cream); }
.sort-option.active { color:var(--gold); font-weight:600; }
.sort-check { color:var(--gold); font-weight:700; }

/* ================================================================
   PRODUCT DETAIL
   ================================================================ */
.breadcrumb { display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; font-size:.62rem; letter-spacing:.1em; color:var(--warm-gray); padding:.8rem 1.2rem; border-bottom:1px solid var(--border); background:var(--cream-soft); }
.breadcrumb a { color:var(--warm-gray); transition:color .25s; }
.breadcrumb a:hover { color:var(--gold); }
.bsep { color:var(--gold); font-size:.5rem; }
.bcurrent { color:var(--charcoal); font-weight:500; }
.product-detail-layout { display:flex; flex-direction:column; }
.gallery-zoom-wrap { position:relative; }
.main-img-box { position:relative; overflow:hidden; background:var(--cream); border-bottom:1px solid var(--border); aspect-ratio:1/1; }
.main-product-img { width:100%; height:100%; object-fit:cover; display:block; transition:opacity .25s; }
.zoom-lens { position:absolute; border:2px solid var(--gold); background:rgba(200,151,58,.1); pointer-events:none; z-index:10; }
.zoom-result-panel { display:none; }
.zoom-hint { display:none; }
.touch-swipe-hint { position:absolute; bottom:.8rem; left:50%; transform:translateX(-50%); background:rgba(28,26,22,.7); color:var(--gold-light); font-size:.55rem; letter-spacing:.16em; text-transform:uppercase; padding:.3rem .8rem; z-index:5; pointer-events:none; border-radius:12px; animation:fadeOut 3s ease 2s forwards; }
.fullscreen-btn { position:absolute; bottom:.8rem; right:.8rem; background:rgba(250,247,238,.9); border:1px solid var(--border); width:40px; height:40px; display:flex; align-items:center; justify-content:center; font-size:1.1rem; z-index:5; }
.img-badge-wrap { position:absolute; top:.8rem; left:.8rem; z-index:5; display:flex; flex-direction:column; gap:.3rem; }
.img-badge { padding:.25rem .7rem; font-size:.52rem; letter-spacing:.16em; text-transform:uppercase; font-weight:600; }
.badge-new-in { background:var(--charcoal); color:var(--gold-pale); }
.img-nav-btn { position:absolute; top:50%; transform:translateY(-50%); width:40px; height:40px; background:rgba(250,247,238,.9); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:1.2rem; z-index:10; }
.prev-btn { left:.6rem; }
.next-btn { right:.6rem; }
.thumb-strip { display:flex; gap:.5rem; padding:.7rem 1.2rem; overflow-x:auto; -webkit-overflow-scrolling:touch; background:var(--cream); }
.thumb-strip::-webkit-scrollbar { display:none; }
.thumb { flex:0 0 64px; height:64px; overflow:hidden; border:2px solid transparent; background:var(--cream); flex-shrink:0; }
.thumb img { width:100%; height:100%; object-fit:cover; }
.thumb.active { border-color:var(--gold); }
.img-counter { text-align:center; font-size:.6rem; color:var(--warm-gray); padding:.35rem 0; }
.img-counter span { color:var(--gold); font-weight:600; }
.info-col { padding:1.5rem 1.2rem; }
.product-brand-tag { font-size:.58rem; letter-spacing:.36em; text-transform:uppercase; color:var(--gold); margin-bottom:.5rem; display:flex; align-items:center; gap:.5rem; }
.product-brand-tag::after { content:''; flex:1; height:1px; background:var(--border); }
.product-title { font-family:'Playfair Display',serif; font-size:clamp(1.5rem,5vw,2.6rem); font-weight:400; line-height:1.2; color:var(--charcoal); margin-bottom:.8rem; }
.rating-row { display:flex; align-items:center; gap:.8rem; margin-bottom:1.2rem; flex-wrap:wrap; }
.stars-display { color:var(--gold); font-size:.85rem; }
.rating-count { font-size:.68rem; color:var(--warm-gray); background:none; border:none; border-bottom:1px solid var(--warm-gray); padding:0; transition:all .25s; }
.rating-count:hover { color:var(--gold); border-color:var(--gold); }
.in-stock-badge { font-size:.58rem; letter-spacing:.12em; text-transform:uppercase; color:#4a9b6a; background:rgba(74,155,106,.1); padding:.2rem .6rem; border:1px solid rgba(74,155,106,.25); }
.price-block { margin-bottom:1.5rem; }
.price-main { font-family:'Playfair Display',serif; font-size:2rem; font-weight:400; color:var(--charcoal); }
.price-old  { font-family:'Playfair Display',serif; font-size:1rem; color:var(--warm-gray); text-decoration:line-through; margin-left:.6rem; }
.price-save { font-size:.62rem; color:#c0392b; font-weight:600; margin-left:.5rem; }
.price-vat  { font-size:.65rem; color:var(--warm-gray); margin-top:.35rem; }
.info-divider { height:1px; background:var(--border); margin:1.3rem 0; }
.option-group { margin-bottom:1.3rem; }
.option-label { font-size:.6rem; letter-spacing:.22em; text-transform:uppercase; color:var(--warm-gray); margin-bottom:.7rem; font-weight:500; display:flex; justify-content:space-between; align-items:center; }
.option-label span { color:var(--charcoal); font-weight:600; text-transform:none; letter-spacing:0; font-size:.82rem; }
.metal-options { display:flex; gap:.5rem; flex-wrap:wrap; }
.metal-opt { display:flex; align-items:center; gap:.4rem; padding:.5rem .9rem; border:1px solid var(--border); background:white; font-size:.7rem; color:var(--warm-gray); min-height:var(--touch-min); transition:all .25s; }
.metal-opt.active { border-color:var(--gold); background:rgba(200,151,58,.04); color:var(--charcoal); }
.metal-swatch { width:14px; height:14px; border-radius:50%; border:1px solid rgba(0,0,0,.1); flex-shrink:0; }
.size-options { display:flex; gap:.5rem; flex-wrap:wrap; }
.size-opt { width:48px; height:48px; border:1px solid var(--border); background:white; display:flex; align-items:center; justify-content:center; font-size:.76rem; color:var(--warm-gray); font-weight:500; transition:all .25s; }
.size-opt.active { background:var(--charcoal); color:var(--gold-pale); border-color:var(--charcoal); }
.size-opt.unavail { opacity:.3; text-decoration:line-through; pointer-events:none; }
.metal-selector { display:flex; gap:.4rem; flex-wrap:wrap; }
.metal-btn { padding:.5rem 1rem; border:1px solid var(--border); background:white; font-size:.65rem; letter-spacing:.08em; color:var(--warm-gray); min-height:36px; transition:all .2s; }
.metal-btn:hover { border-color:var(--gold); color:var(--charcoal); }
.metal-btn.selected { background:var(--charcoal); color:var(--gold-pale); border-color:var(--charcoal); }
.buy-row { display:flex; gap:.6rem; margin-bottom:.8rem; flex-wrap:wrap; }
.qty-control { display:flex; align-items:center; border:1px solid var(--border); background:white; height:var(--touch-min); }
.qty-btn { width:44px; height:100%; background:none; border:none; color:var(--charcoal); font-size:1.2rem; display:flex; align-items:center; justify-content:center; transition:all .2s; }
.qty-btn:hover { background:var(--cream); color:var(--gold); }
.qty-display { width:40px; text-align:center; font-family:'Playfair Display',serif; font-size:1rem; }
.add-cart-btn { flex:1; min-width:160px; height:var(--touch-min); background:var(--charcoal); color:var(--gold-pale); font-family:'Raleway',sans-serif; font-size:.65rem; letter-spacing:.22em; text-transform:uppercase; transition:all .35s; }
.add-cart-btn:hover, .add-cart-btn.added { background:var(--gold); color:var(--charcoal); }
.wish-btn { width:var(--touch-min); height:var(--touch-min); border:1px solid var(--border); background:white; font-size:1.2rem; color:var(--warm-gray); display:flex; align-items:center; justify-content:center; transition:all .25s; }
.wish-btn:hover, .wish-btn.wishlisted { border-color:var(--gold); color:var(--gold); }
.buy-now-btn { width:100%; height:var(--touch-min); background:var(--gold); color:var(--charcoal); font-family:'Raleway',sans-serif; font-size:.68rem; letter-spacing:.24em; text-transform:uppercase; font-weight:600; margin-bottom:1rem; transition:background .3s; }
.buy-now-btn:hover { background:var(--gold-bright); }
.trust-pills { display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1.2rem; }
.trust-pill { display:flex; align-items:center; gap:.3rem; font-size:.6rem; color:var(--warm-gray); padding:.3rem .6rem; border:1px solid var(--border); background:white; }
.share-row { display:flex; align-items:center; gap:.6rem; font-size:.6rem; letter-spacing:.12em; text-transform:uppercase; color:var(--warm-gray); }
.share-btn { width:38px; height:38px; border:1px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:.8rem; color:var(--warm-gray); background:white; transition:all .25s; }
.share-btn:hover { background:var(--gold); color:white; }

/* Tabs */
.tabs-section { background:white; }
.tab-nav { display:flex; overflow-x:auto; border-bottom:1px solid var(--border); -webkit-overflow-scrolling:touch; }
.tab-nav::-webkit-scrollbar { display:none; }
.tab-btn { flex:0 0 auto; padding:1rem 1.2rem; background:none; border:none; font-family:'Raleway',sans-serif; font-size:.65rem; letter-spacing:.16em; text-transform:uppercase; color:var(--warm-gray); white-space:nowrap; position:relative; min-height:var(--touch-min); transition:color .25s; }
.tab-btn::after { content:''; position:absolute; bottom:0; left:0; right:0; height:2px; background:var(--gold); transform:scaleX(0); transition:transform .3s; }
.tab-btn.active { color:var(--gold); }
.tab-btn.active::after { transform:scaleX(1); }
.tab-panel { padding:1.5rem 1.2rem; animation:fadeUp .4s ease; }
.desc-grid { display:flex; flex-direction:column; gap:1.5rem; }
.desc-text { font-size:.8rem; line-height:1.9; color:var(--warm-gray); font-weight:300; }
.desc-text p { margin-bottom:.8rem; }
.spec-table .spec-row { display:flex; justify-content:space-between; padding:.7rem 0; border-bottom:1px solid var(--border); font-size:.74rem; }
.spec-table .spec-row:first-child { border-top:1px solid var(--border); }
.spec-table .spec-row span:last-child { font-weight:500; text-align:right; }
.detail-item { display:flex; gap:1rem; padding:1rem 0; border-bottom:1px solid var(--border); }
.di-icon { font-size:1.2rem; flex-shrink:0; margin-top:.1rem; }
.detail-item h4 { font-size:.76rem; font-weight:600; margin-bottom:.3rem; }
.detail-item p { font-size:.72rem; color:var(--warm-gray); line-height:1.7; }
.reviews-summary { display:flex; flex-direction:column; gap:1.5rem; padding:1.2rem; background:var(--cream); border:1px solid var(--border); margin-bottom:1.5rem; }
.review-score { display:flex; align-items:center; gap:1.2rem; }
.big-num { font-family:'Playfair Display',serif; font-size:3.5rem; font-weight:400; line-height:1; }
.big-stars { font-size:.9rem; color:var(--gold); }
.bar-row { display:flex; align-items:center; gap:.6rem; margin-bottom:.4rem; font-size:.62rem; color:var(--warm-gray); }
.bar-track { flex:1; height:5px; background:var(--cream-deep); border-radius:3px; overflow:hidden; }
.bar-fill { height:100%; background:var(--gold); border-radius:3px; }
.review-card { padding:1.2rem; border:1px solid var(--border); background:white; margin-bottom:1rem; transition:box-shadow .3s; }
.review-card:hover { box-shadow:var(--shadow-gold); }
.review-top { display:flex; justify-content:space-between; margin-bottom:.6rem; gap:.5rem; }
.reviewer { font-weight:600; font-size:.78rem; margin-bottom:.15rem; }
.review-date { font-size:.62rem; color:var(--warm-gray); }
.review-stars { font-size:.72rem; color:var(--gold); }
.verified-badge { font-size:.55rem; letter-spacing:.1em; text-transform:uppercase; color:#4a9b6a; background:rgba(74,155,106,.08); padding:.15rem .5rem; border:1px solid rgba(74,155,106,.2); display:inline-block; }
.review-title { font-family:'Playfair Display',serif; font-size:.95rem; margin-bottom:.4rem; }
.review-body { font-size:.76rem; color:var(--warm-gray); line-height:1.7; }
.related-section { padding:2.5rem 1.2rem; background:var(--cream); border-top:1px solid var(--border); }

/* Lightbox */
.lightbox { position:fixed; inset:0; z-index:1000; background:rgba(28,26,22,.97); display:flex; align-items:center; justify-content:center; flex-direction:column; animation:fadeIn .3s ease; padding:1rem; }
.lb-close { position:absolute; top:calc(var(--safe-top) + 1rem); right:1rem; background:none; border:1px solid rgba(200,151,58,.4); color:var(--gold); font-size:1.2rem; width:44px; height:44px; display:flex; align-items:center; justify-content:center; }
.lb-nav { position:absolute; top:50%; transform:translateY(-50%); background:rgba(250,247,238,.12); border:1px solid rgba(200,151,58,.3); color:var(--gold-pale); width:44px; height:44px; display:flex; align-items:center; justify-content:center; font-size:1.2rem; }
.lb-prev { left:.8rem; }
.lb-next { right:.8rem; }
.lb-img { max-width:100%; max-height:70vh; object-fit:contain; border:1px solid rgba(200,151,58,.2); }
.lb-thumbs { display:flex; gap:.4rem; margin-top:1rem; }
.lb-thumb { width:48px; height:48px; object-fit:cover; border:2px solid transparent; opacity:.5; }
.lb-thumb.active { border-color:var(--gold); opacity:1; }
.lb-counter { position:absolute; bottom:1rem; left:50%; transform:translateX(-50%); font-size:.62rem; letter-spacing:.2em; color:rgba(245,240,225,.4); }

/* Sticky bar */
.sticky-bar { position:fixed; bottom:0; left:0; right:0; z-index:400; background:rgba(250,247,238,.97); backdrop-filter:blur(16px); border-top:1px solid var(--border); padding:.75rem 1.2rem; display:flex; align-items:center; justify-content:space-between; gap:1rem; transform:translateY(100%); transition:transform .4s var(--transition); }
.sticky-bar.visible { transform:translateY(0); }
.sticky-info { display:flex; align-items:center; gap:.8rem; min-width:0; }
.sticky-img { width:42px; height:42px; object-fit:cover; border:1px solid var(--border); flex-shrink:0; }
.sticky-name { font-family:'Playfair Display',serif; font-size:.85rem; color:var(--charcoal); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sticky-price { font-family:'Playfair Display',serif; font-size:.9rem; color:var(--gold); }
.sticky-add-btn { flex-shrink:0; padding:.7rem 1.2rem; background:var(--charcoal); color:var(--gold-pale); font-family:'Raleway',sans-serif; font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; min-height:var(--touch-min); transition:all .3s; }
.sticky-add-btn:hover { background:var(--gold); color:var(--charcoal); }

/* ================================================================
   CHECKOUT
   ================================================================ */
.checkout-nav { position:sticky; top:0; z-index:500; background:rgba(250,247,238,.97); backdrop-filter:blur(20px); border-bottom:1px solid var(--border); padding:.8rem 1.2rem; display:flex; align-items:center; justify-content:space-between; min-height:var(--nav-h); }
.checkout-logo { font-family:'Playfair Display',serif; font-size:1.2rem; font-weight:400; letter-spacing:.22em; }
.checkout-steps { display:none; }
.secure-badge { font-size:.58rem; color:var(--warm-gray); }
.checkout-layout { display:flex; flex-direction:column; }
.checkout-summary-col { background:var(--cream-soft); border:1px solid var(--border); }
.checkout-summary-top-mobile { background:white; }
.checkout-summary-sidebar { background:var(--cream-soft); }
.checkout-summary-toggle { display:flex; justify-content:space-between; align-items:center; background:var(--charcoal); color:var(--gold); padding:1rem 1.2rem; min-height:var(--touch-min); font-family:'Raleway',sans-serif; font-size:.68rem; letter-spacing:.18em; text-transform:uppercase; border-bottom:1px solid rgba(200,151,58,.12); }
.toggle-chevron { transition:transform .3s; font-size:1rem; }
.checkout-summary-toggle.open .toggle-chevron { transform:rotate(180deg); }
.checkout-summary-collapsible { max-height:0; overflow:hidden; transition:max-height .4s var(--transition); background:var(--cream-soft); }
.checkout-summary-collapsible.open { max-height:2000px; }

/* Mobile: Order summary always visible, top position */
@media (max-width: 768px) {
  .checkout-layout { display:flex; flex-direction:column-reverse; }
  .checkout-summary-sidebar { order:-1; margin-bottom:1rem; }
  .checkout-summary-collapsible { max-height:none !important; overflow:visible !important; }
  .checkout-summary-toggle { display:none !important; }
}
.checkout-form-col { padding:1.5rem 1.2rem; }
.checkout-summary-top-mobile { padding:1.5rem 1.2rem 2rem; }
.cos-title { font-size:.6rem; letter-spacing:.28em; text-transform:uppercase; color:var(--warm-gray); font-weight:500; padding:1.2rem 1.2rem .9rem; border-bottom:1px solid var(--border); }
.cos-item { border-bottom:1px solid var(--border); padding:.9rem 1.2rem; }
/* compact horizontal item row */
.cos-item-compact { display:flex; gap:.9rem; align-items:flex-start; }
.cos-item-img-wrap { position:relative; flex-shrink:0; width:64px; height:64px; overflow:hidden; border-radius:2px; }
.cos-item-img { width:100%; height:100%; object-fit:cover; }
.cos-item-qty-badge { position:absolute; top:-6px; right:-6px; width:18px; height:18px; border-radius:50%; background:var(--charcoal); color:var(--gold); font-size:.55rem; font-weight:600; display:flex; align-items:center; justify-content:center; border:1px solid rgba(200,151,58,.3); }
.cos-item-info { flex:1; min-width:0; }
.cos-item-name { font-family:'Playfair Display',serif; font-size:.82rem; color:var(--charcoal); line-height:1.3; margin-bottom:.15rem; }
.cos-item-meta { font-size:.55rem; color:var(--warm-gray); letter-spacing:.06em; text-transform:uppercase; margin-bottom:.4rem; }
.cos-item-price { font-family:'Playfair Display',serif; font-size:.9rem; color:var(--charcoal); white-space:nowrap; flex-shrink:0; }
.cos-item-ctrl { display:flex; align-items:center; gap:.3rem; }
.q-btn { width:24px; height:24px; border:1px solid var(--border); background:white; color:var(--charcoal); font-size:.85rem; display:flex; align-items:center; justify-content:center; transition:all .2s; line-height:1; }
.q-btn:hover { background:var(--charcoal); color:var(--gold); border-color:var(--charcoal); }
.q-num { font-size:.72rem; color:var(--charcoal); min-width:18px; text-align:center; }
.cos-remove { background:none; border:none; font-size:.55rem; letter-spacing:.08em; text-transform:uppercase; color:rgba(122,110,95,.45); margin-left:.3rem; transition:color .2s; }
.cos-remove:hover { color:#c0392b; }
.promo-wrap { margin:0.8rem 1.2rem 1.2rem; padding:0.8rem 0; border-top:1px solid rgba(200,151,58,.1); }
.promo-row { display:flex; }
.promo-input { flex:1; padding:.75rem 1rem; background:white; border:1px solid var(--border); border-right:none; font-family:'Raleway',sans-serif; font-size:.72rem; color:var(--charcoal); outline:none; min-height:var(--touch-min); }
.promo-input:focus { border-color:var(--gold); }
.promo-apply { padding:.75rem 1rem; background:var(--charcoal); border:1px solid var(--charcoal); color:var(--gold); font-family:'Raleway',sans-serif; font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; min-height:var(--touch-min); transition:all .25s; }
.promo-apply:hover { background:var(--gold); color:var(--charcoal); }
.promo-msg { font-size:.62rem; margin-top:.5rem; padding:0 0.4rem; }
.promo-ok  { color:#7fc97f; }
.promo-err { color:#c0392b; }
.cos-totals { padding:0.8rem 1.2rem 1.2rem; margin-top:0.8rem; border-top:1px solid rgba(200,151,58,.1); }
.tot-row { display:flex; justify-content:space-between; padding:.6rem 0; font-size:.68rem; color:var(--warm-gray); line-height:1.4; }
.tot-row span:last-child { font-family:'Playfair Display',serif; font-size:.88rem; color:var(--charcoal); }
.tot-row.discount span:last-child { color:#16a34a; }
.tot-grand { border-top:2px solid var(--gold); margin-top:.6rem; padding-top:.8rem; display:flex; justify-content:space-between; align-items:baseline; }
.tot-grand span:first-child { font-family:'Playfair Display',serif; font-size:.95rem; color:var(--charcoal); }
.tot-grand span:last-child  { font-family:'Playfair Display',serif; font-size:1.5rem; color:var(--gold); }
.trust-badges { display:flex; justify-content:center; gap:1.5rem; margin:.8rem 1.2rem 1.2rem; padding:.8rem 0 0; border-top:1px solid rgba(200,151,58,.1); }
.trust-b { font-size:.52rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(245,240,225,.3); }
.co-section { margin-bottom:1.2rem; }
.co-section-title { font-size:.6rem; letter-spacing:.28em; text-transform:uppercase; color:var(--charcoal); font-weight:600; margin-bottom:.8rem; }
.co-section-sub { font-size:.62rem; color:var(--warm-gray); margin-bottom:.9rem; margin-top:-.4rem; }
.free-ship-notice { font-size:.76rem; color:var(--gold); background:rgba(200,151,58,.08); border:1px solid rgba(200,151,58,.2); padding:.7rem 1rem; border-radius:6px; margin-bottom:1rem; text-align:center; }
.free-ship-notice.success { background:rgba(22,163,74,.08); border-color:rgba(22,163,74,.2); color:#16a34a; }
.form-divider { height:1px; background:var(--border); border:none; margin:1.2rem 0; }
.f-row { display:flex; flex-direction:column; gap:.8rem; margin-bottom:.8rem; }
.f-row .f-field { flex:1; }
.f-field { display:flex; flex-direction:column; gap:.25rem; }
.f-field label { font-size:.58rem; letter-spacing:.18em; text-transform:uppercase; color:var(--warm-gray); font-weight:500; }
.f-field input, .f-field select, .f-field textarea { padding:.85rem 1rem; background:white; border:1px solid var(--border); font-size:.8rem; color:var(--charcoal); outline:none; transition:border-color .3s; min-height:var(--touch-min); resize:vertical; }
.f-field input:focus, .f-field select:focus, .f-field textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(200,151,58,.07); }
.f-field input::placeholder, .f-field textarea::placeholder { color:rgba(122,110,95,.35); }
.f-field select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23C8973A' fill='none' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 1rem center; padding-right:2.5rem; background-color:white; }
.field-error { border-color:#c0392b !important; }
.chk-wrap { display:flex; align-items:flex-start; gap:.8rem; margin-bottom:.8rem; font-size:.72rem; color:var(--warm-gray); line-height:1.5; cursor:pointer; }
.chk-wrap input[type="checkbox"] {
  appearance:checkbox; -webkit-appearance:checkbox;
  margin-top:.15rem; flex-shrink:0;
  width:18px; height:18px; min-width:18px;
  accent-color:var(--gold);
  border:2px solid var(--gold);
  cursor:pointer;
  display:block;
}
.radio-opt { display:flex; align-items:center; gap:.7rem; padding:.8rem 1rem; border:1px solid var(--border); background:white; margin-bottom:.6rem; min-height:var(--touch-min); transition:all .2s; }
.radio-opt.sel { border-color:var(--gold); background:rgba(200,151,58,.03); }
.r-dot { width:18px; height:18px; border-radius:50%; border:1px solid var(--border-mid); display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.r-dot.checked::after { content:''; width:8px; height:8px; border-radius:50%; background:var(--gold); display:block; }
.r-main { flex:1; }
.r-title { font-size:.76rem; font-weight:500; }
.r-sub   { font-size:.62rem; color:var(--warm-gray); margin-top:.05rem; }
.r-price { font-family:'Playfair Display',serif; font-size:.9rem; color:var(--gold); flex-shrink:0; }
.card-fields { margin-top:1rem; }
.form-error { color:#c0392b; font-size:.72rem; padding:.6rem 1rem; background:rgba(192,57,43,.07); border:1px solid rgba(192,57,43,.2); margin-bottom:1rem; }
.form-error-msg { color:#c0392b; font-size:.72rem; margin-bottom:1rem; }
.submit-btn { width:100%; padding:1.1rem; background:var(--charcoal); color:var(--cream-soft); font-family:'Raleway',sans-serif; font-size:.72rem; letter-spacing:.2em; text-transform:uppercase; font-weight:500; transition:all .3s; min-height:var(--touch-min); border:1px solid var(--charcoal); }
.submit-btn:hover:not(:disabled) { background:var(--gold); color:var(--charcoal); border-color:var(--gold); }
.submit-btn:disabled { opacity:.55; cursor:not-allowed; }
.form-note { text-align:center; font-size:.62rem; color:var(--warm-gray); margin-top:1rem; line-height:1.8; }
.inline-link { color:var(--gold); text-decoration:none; transition:all .2s; border-bottom:1px solid var(--gold); }
.inline-link:hover { color:var(--gold-bright); border-bottom-color:var(--gold-bright); }
.success-screen { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:80vh; text-align:center; padding:2rem; }
.success-ring { width:90px; height:90px; border-radius:50%; border:2px solid var(--gold); display:flex; align-items:center; justify-content:center; margin-bottom:2rem; animation:scalePop .6s cubic-bezier(.34,1.56,.64,1) .2s both; }
.success-ring span { font-size:2.2rem; color:var(--gold); }
.success-title { font-family:'Playfair Display',serif; font-size:2.5rem; font-weight:400; margin-bottom:.5rem; }
.success-sub   { font-size:.8rem; color:var(--warm-gray); margin-bottom:.4rem; }
.success-order { font-family:'Playfair Display',serif; font-size:.95rem; color:var(--gold); letter-spacing:.18em; margin-bottom:2.5rem; }
.success-details { background:var(--cream-soft); border:1px solid var(--border); padding:1.5rem; border-radius:8px; margin-bottom:2rem; max-width:400px; }
.detail-row { display:flex; justify-content:space-between; align-items:center; padding:.7rem 0; font-size:.8rem; }
.detail-row:not(:last-child) { border-bottom:1px solid rgba(200,151,58,.1); }
.detail-label { color:var(--warm-gray); font-weight:500; }
.detail-value { font-family:'Playfair Display',serif; font-size:.95rem; color:var(--charcoal); font-weight:500; }
.detail-value.free { color:var(--gold); font-weight:600; }

/* ================================================================
   COLLECTIONS, ABOUT, CONTACT
   ================================================================ */
/* Collections */
.collections-hero { min-height:55vh; background:var(--charcoal); display:flex; align-items:center; justify-content:center; flex-direction:column; text-align:center; position:relative; overflow:hidden; padding:3rem 1.5rem 2.5rem; }
.ch-bg-img { position:absolute; inset:0; background:url('https://images.unsplash.com/photo-1515562141207-7a88fb7ce338?w=1800&q=40') center/cover; opacity:.12; }
.ch-deco { position:absolute; border-radius:50%; border:1px solid var(--border); top:50%; left:50%; transform:translate(-50%,-50%); }
.ch-content { position:relative; z-index:2; }
.ch-tag { font-size:.58rem; letter-spacing:.42em; text-transform:uppercase; color:var(--gold); display:block; margin-bottom:1rem; }
.ch-title { font-family:'Playfair Display',serif; font-size:clamp(2.2rem,7vw,5.5rem); font-weight:400; color:var(--cream-soft); line-height:1.07; }
.ch-title em { font-style:italic; color:var(--gold); }
.ch-sub { font-size:.78rem; color:rgba(245,240,225,.45); margin-top:1rem; max-width:340px; line-height:1.9; font-weight:300; margin-left:auto; margin-right:auto; }
.col-entry { display:flex; flex-direction:column; }
.col-entry.reversed { flex-direction:column; }
.col-img { overflow:hidden; height:280px; }
.col-img img { width:100%; height:100%; object-fit:cover; transition:transform .9s; }
.col-entry:hover .col-img img { transform:scale(1.05); }
.col-content { padding:2rem 1.5rem; }
.col-num { font-family:'Playfair Display',serif; font-size:3.5rem; font-weight:400; line-height:1; margin-bottom:.2rem; }
.col-tag { font-size:.58rem; letter-spacing:.34em; text-transform:uppercase; color:var(--gold); margin-bottom:.8rem; }
.col-name { font-family:'Playfair Display',serif; font-size:1.8rem; font-weight:400; margin-bottom:1rem; line-height:1.2; }
.col-desc { font-size:.8rem; line-height:1.9; margin-bottom:1.5rem; font-weight:300; }
.col-pieces { font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:2rem; }
.lookbook-grid { display:grid; grid-template-columns:1fr 1fr; gap:3px; }
.lb-item { overflow:hidden; position:relative; height:160px; }
.lb-item:first-child { grid-column:span 2; height:240px; }
.lb-item img { width:100%; height:100%; object-fit:cover; transition:transform .7s; }
.lb-item:hover img { transform:scale(1.06); }
.lb-overlay { position:absolute; inset:0; background:linear-gradient(to top,rgba(28,26,22,.3) 0%,transparent 50%); opacity:0; transition:opacity .4s; }
.lb-item:hover .lb-overlay { opacity:1; }

/* About */
.about-hero { display:flex; flex-direction:column; }
.ah-img { height:280px; overflow:hidden; }
.ah-img img { width:100%; height:100%; object-fit:cover; }
.ah-content { background:var(--charcoal); padding:2.5rem 1.5rem; position:relative; }
.ah-content::before { content:''; position:absolute; inset:0; background:radial-gradient(ellipse at 30% 50%,rgba(200,151,58,.06) 0%,transparent 60%); }
.ah-tag  { font-size:.6rem; letter-spacing:.34em; text-transform:uppercase; color:var(--gold); margin-bottom:1rem; position:relative; }
.ah-title{ font-family:'Playfair Display',serif; font-size:clamp(1.8rem,5vw,3.5rem); font-weight:400; color:var(--cream-soft); line-height:1.15; margin-bottom:1.5rem; position:relative; }
.ah-title em { font-style:italic; color:var(--gold); }
.ah-body { font-size:.82rem; color:rgba(245,240,225,.5); line-height:1.9; font-weight:300; margin-bottom:2rem; position:relative; }
.numbers-bar { display:grid; grid-template-columns:1fr 1fr; background:var(--gold); }
.nb-item { padding:1.8rem 1rem; text-align:center; border-right:1px solid rgba(28,26,22,.12); border-bottom:1px solid rgba(28,26,22,.12); }
.nb-item:nth-child(2n)  { border-right:none; }
.nb-item:nth-child(n+3) { border-bottom:none; }
.nb-num   { font-family:'Playfair Display',serif; font-size:2.3rem; font-weight:400; color:var(--charcoal); line-height:1; margin-bottom:.3rem; }
.nb-label { font-size:.58rem; letter-spacing:.22em; text-transform:uppercase; color:rgba(28,26,22,.6); }
.timeline { position:relative; padding-left:2rem; margin-top:1.5rem; }
.timeline::before { content:''; position:absolute; left:0; top:0; bottom:0; width:1px; background:var(--border-mid); }
.tl-item { position:relative; padding:0 0 2rem 1.8rem; }
.tl-dot  { position:absolute; left:-4px; top:6px; width:9px; height:9px; border-radius:50%; background:var(--gold); box-shadow:0 0 8px rgba(200,151,58,.4); }
.tl-year { font-size:.58rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); margin-bottom:.4rem; }
.tl-title{ font-family:'Playfair Display',serif; font-size:1.1rem; font-weight:400; color:var(--charcoal); margin-bottom:.5rem; }
.tl-body { font-size:.76rem; color:var(--warm-gray); line-height:1.8; }
.values-grid { display:flex; flex-direction:column; gap:1rem; }
.val-card { padding:1.8rem 1.2rem; border:1px solid var(--border); text-align:center; transition:all .3s; }
.val-card:hover { box-shadow:var(--shadow-gold); transform:translateY(-3px); }
.val-icon  { font-size:2rem; margin-bottom:.8rem; }
.val-title { font-family:'Playfair Display',serif; font-size:1.1rem; margin-bottom:.6rem; }
.val-body  { font-size:.74rem; color:var(--warm-gray); line-height:1.75; }
.team-grid { display:flex; flex-direction:column; gap:1.5rem; }
.team-img  { width:100%; aspect-ratio:3/4; object-fit:cover; margin-bottom:1rem; }
.team-name { font-family:'Playfair Display',serif; font-size:1.1rem; margin-bottom:.2rem; }
.team-role { font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); margin-bottom:.5rem; }
.team-bio  { font-size:.74rem; color:var(--warm-gray); line-height:1.7; }
.bespoke-section { display:flex; flex-direction:column; }
.bs-img { height:240px; overflow:hidden; order:-1; }
.bs-img img { width:100%; height:100%; object-fit:cover; }
.bs-content { padding:2rem 1.5rem; }
.bespoke-step { display:flex; gap:1.2rem; align-items:flex-start; margin-bottom:1.5rem; }
.bs-num { font-family:'Playfair Display',serif; font-size:1.8rem; font-weight:400; color:var(--gold); flex-shrink:0; line-height:1; }
.bs-step-title { font-size:.76rem; font-weight:600; margin-bottom:.25rem; }
.bs-step-body  { font-size:.72rem; color:var(--warm-gray); line-height:1.65; }

/* Contact */
.contact-hero { background:var(--charcoal); min-height:42vh; display:flex; align-items:center; justify-content:center; flex-direction:column; text-align:center; position:relative; overflow:hidden; padding:3rem 1.5rem 2.5rem; }
.contact-grid { display:flex; flex-direction:column; }
.ci-panel { padding:2rem 1.2rem; background:var(--cream); border-bottom:1px solid var(--border); }
.cf-panel { padding:2rem 1.2rem; }
.ci-block { margin-bottom:2rem; padding-bottom:2rem; border-bottom:1px solid var(--border); }
.ci-block:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
.ci-label { font-size:.58rem; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); margin-bottom:.8rem; font-weight:500; }
.ci-title { font-family:'Playfair Display',serif; font-size:1.1rem; margin-bottom:.5rem; }
.ci-text  { font-size:.78rem; color:var(--warm-gray); line-height:1.85; }
.hours-grid { display:grid; grid-template-columns:1fr 1fr; gap:.3rem 1rem; margin-top:.5rem; }
.hours-day  { font-size:.7rem; font-weight:500; }
.hours-time { font-size:.7rem; color:var(--warm-gray); }
.social-row { display:flex; gap:.8rem; }
.cf-title { font-family:'Playfair Display',serif; font-size:1.9rem; font-weight:400; margin-bottom:.4rem; }
.cf-sub   { font-size:.76rem; color:var(--warm-gray); margin-bottom:2rem; line-height:1.75; }
.form-success { text-align:center; padding:3rem 1.5rem; border:1px solid var(--border); background:var(--cream-soft); }
.form-success-icon { font-size:2.5rem; margin-bottom:.8rem; }
.form-success h3 { font-family:'Playfair Display',serif; font-size:1.5rem; font-weight:400; margin-bottom:.4rem; }
.form-success p { font-size:.76rem; color:var(--warm-gray); }
.map-section { background:var(--charcoal); height:280px; display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; }
.map-bg { position:absolute; inset:0; background:url('https://images.unsplash.com/photo-1513635269975-59663e0ac1ad?w=1600&q=40') center/cover; opacity:.18; }
.map-pin-wrap { position:relative; z-index:2; text-align:center; }
.map-pin-icon { font-size:2.5rem; animation:float 3s ease-in-out infinite; }
.map-pin-name { font-family:'Playfair Display',serif; font-size:1.2rem; color:var(--gold); margin-top:.6rem; }
.map-pin-addr { font-size:.68rem; color:rgba(245,240,225,.45); letter-spacing:.1em; margin-top:.35rem; }

/* ================================================================
   CART DRAWER  — bottom sheet (mobile) / side panel (desktop)
   ================================================================ */
.cart-overlay { position:fixed; inset:0; background:rgba(28,26,22,.6); z-index:800; animation:fadeIn .25s ease; }
.cart-drawer {
  position:fixed; bottom:0; left:0; right:0; z-index:900;
  background:var(--cream-soft); border-radius:20px 20px 0 0;
  transform:translateY(100%); transition:transform .4s var(--transition);
  display:flex; flex-direction:column; max-height:88vh;
  box-shadow:0 -20px 60px rgba(0,0,0,.18);
}
.cart-drawer::before { content:''; display:block; width:40px; height:4px; background:var(--border-mid); border-radius:2px; margin:.8rem auto 0; }
.cart-drawer.open { transform:translateY(0); }
.cart-drawer-head { padding:.8rem 1.2rem 1rem; display:flex; justify-content:space-between; align-items:center; border-bottom:1px solid var(--border); }
.cart-drawer-head h3 { font-family:'Playfair Display',serif; font-size:1.25rem; font-weight:400; }
.cart-close { background:none; border:none; font-size:1.1rem; color:var(--warm-gray); min-height:var(--touch-min); min-width:var(--touch-min); display:flex; align-items:center; justify-content:center; transition:color .2s; }
.cart-close:hover { color:var(--gold); }
.cart-drawer-items { flex:1; overflow-y:auto; padding:0 1.2rem; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; }
.cart-drawer-items::-webkit-scrollbar { display:none; }
.cart-drawer-item { display:flex; gap:.9rem; padding:1rem 0; border-bottom:1px solid var(--border); align-items:center; }
.cart-item-img { width:68px; height:68px; object-fit:cover; border:1px solid var(--border); flex-shrink:0; border-radius:var(--radius-sm); }
.cart-item-info { flex:1; min-width:0; }
.cart-item-name  { font-family:'Playfair Display',serif; font-size:.9rem; margin-bottom:.2rem; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cart-item-meta  { font-size:.62rem; color:var(--warm-gray); }
.cart-item-price { font-family:'Playfair Display',serif; font-size:.95rem; color:var(--gold); margin-top:.25rem; }
.cart-item-remove { background:none; border:none; color:var(--warm-gray); font-size:1rem; min-height:var(--touch-min); min-width:var(--touch-min); flex-shrink:0; display:flex; align-items:center; justify-content:center; transition:color .2s; }
.cart-item-remove:hover { color:var(--gold); }
.cart-empty { text-align:center; padding:3rem 1rem; }
.cart-empty p { font-family:'Playfair Display',serif; font-size:1rem; font-style:italic; color:var(--warm-gray); margin-bottom:1rem; }
.cart-drawer-foot { padding:1rem 1.2rem calc(var(--safe-bottom) + 1rem); border-top:1px solid var(--border); background:var(--cream); }
.cart-foot-total { display:flex; justify-content:space-between; margin-bottom:1rem; align-items:center; }
.cart-foot-total span:first-child { font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--warm-gray); }
.cart-total-amt { font-family:'Playfair Display',serif; font-size:1.4rem; color:var(--gold); }
.checkout-link { display:block; width:100%; padding:1rem; text-align:center; background:var(--charcoal); color:var(--gold-pale); font-size:.7rem; letter-spacing:.24em; text-transform:uppercase; transition:background .3s; min-height:var(--touch-min); }
.checkout-link:hover { background:var(--gold); color:var(--charcoal); }

/* ================================================================
   FOOTER
   ================================================================ */
.site-footer { background:var(--charcoal); border-top:1px solid rgba(200,151,58,.12); }
.footer-inner { padding:2.5rem 1.2rem 1.5rem; display:flex; flex-direction:column; gap:0; }
.footer-brand-col { margin-bottom:1.5rem; padding-bottom:1.5rem; border-bottom:1px solid rgba(200,151,58,.1); }
.footer-logo { font-family:'Playfair Display',serif; font-size:1.5rem; font-weight:400; letter-spacing:.25em; color:var(--cream-soft); margin-bottom:.8rem; }
.footer-logo .gold { color:var(--gold); }
.footer-tagline { font-size:.74rem; line-height:1.8; color:rgba(245,240,225,.4); font-weight:300; margin-bottom:1.2rem; font-style:italic; font-family:'Playfair Display',serif; }
.footer-socials { display:flex; gap:.8rem; }
.social-link { width:38px; height:38px; border:1px solid rgba(200,151,58,.25); display:flex; align-items:center; justify-content:center; color:var(--gold); font-size:.72rem; font-weight:600; transition:all .25s; }
.social-link:hover { background:var(--gold); color:var(--charcoal); }
/* Accordion columns */
.footer-col { border-bottom:1px solid rgba(200,151,58,.1); }
.footer-col-header { display:flex; justify-content:space-between; align-items:center; padding:1rem 0; background:none; border:none; width:100%; text-align:left; min-height:var(--touch-min); pointer-events:auto; }
.footer-col-header h4 { font-size:.6rem; letter-spacing:.3em; text-transform:uppercase; color:var(--gold); font-weight:500; }
.footer-col-toggle { color:var(--gold); font-size:1.2rem; transition:transform .3s; display:inline-block; line-height:1; }
.footer-col.open .footer-col-toggle { transform:rotate(45deg); }
.footer-col-links { max-height:0; overflow:hidden; transition:max-height .35s ease; list-style:none; }
.footer-col.open .footer-col-links { max-height:300px; }
.footer-col-links li { padding:.4rem 0; }
.footer-col-links a { font-size:.76rem; color:rgba(245,240,225,.4); transition:color .25s; }
.footer-col-links a:hover { color:var(--gold); }
.footer-bottom { border-top:1px solid rgba(200,151,58,.1); padding:1rem 1.2rem; display:flex; flex-direction:column; gap:.4rem; }
.footer-copy { font-size:.6rem; color:rgba(245,240,225,.22); letter-spacing:.08em; }
.footer-copy a { transition:color .25s; }
.footer-copy a:hover { color:var(--gold); }

/* Loading state */
.loading-screen { display:flex; flex-direction:column; align-items:center; justify-content:center; min-height:50vh; gap:1rem; }
.loading-spinner { font-size:2.5rem; color:var(--gold); animation:rotateSlow 3s linear infinite; }
.loading-screen p { font-size:.72rem; color:var(--warm-gray); letter-spacing:.2em; text-transform:uppercase; }

/* ================================================================
   TABLET  768px+
   ================================================================ */
@media(min-width:768px) {
  :root { --nav-h: 72px; }
  .section { padding:4rem 2.5rem; }
  .section-head { margin-bottom:3rem; }
  .hero { padding:3.5rem 2.5rem 4rem; }
  .hero-img-mobile { height:340px; }
  .product-grid, .grid-4, .grid-3 { grid-template-columns:repeat(2,1fr); gap:1.5rem; }
  .cat-scroll-wrap .cat-tile-mobile { flex:0 0 170px; height:220px; }
  .newsletter-form { flex-direction:row; max-width:480px; }
  .newsletter-input { border-right:none; flex:1; }
  .testi-grid { grid-template-columns:repeat(2,1fr); display:grid; width:auto; }
  .testi-scroll { overflow-x:visible; margin:0; padding:0; }
  .testi-card { flex:none; }
  .usp-bar { grid-template-columns:repeat(4,1fr); }
  .usp-item { border-bottom:none; padding:2rem 1.2rem; }
  .usp-item:nth-child(2n) { border-right:1px solid var(--border); }
  .usp-item:last-child { border-right:none; }
  .footer-inner { padding:3rem 2.5rem 2rem; }
  .footer-bottom { padding:1.2rem 2.5rem; flex-direction:row; justify-content:space-between; }
  .f-row { flex-direction:row; gap:1.2rem; }
  .f-row .f-field { flex:1; }
  /* Two-column checkout layout on tablet */
  .checkout-layout { display:grid; grid-template-columns:1fr 380px; }
  .checkout-summary-col { order:1; max-height:none; overflow-y:auto; }
  .checkout-summary-collapsible { max-height:none !important; overflow:visible; }
  .checkout-summary-toggle { display:none; }
  /* Shop sidebar appears on tablet */
  .shop-layout { display:grid; grid-template-columns:220px 1fr; }
  .shop-sidebar { display:block; padding:2rem 1.2rem; background:var(--cream); border-right:1px solid var(--border); position:sticky; top:var(--nav-h); height:calc(100vh - var(--nav-h)); overflow-y:auto; }
  .shop-filter-bar, .sort-btn { display:none; }
  .shop-products { padding:1.5rem 2rem; }
  .shop-toolbar { padding:.8rem 2rem; }
  /* Product detail two-col on tablet */
  .product-detail-layout { display:grid; grid-template-columns:1fr 1fr; align-items:start; }
  .gallery-col { position:sticky; top:calc(var(--nav-h) + 1rem); }
  .info-col { padding:1.5rem 2rem; }
  .tabs-section { padding:0 2.5rem 3rem; }
  /* About two-col */
  .about-hero { display:grid; grid-template-columns:1fr 1fr; }
  .ah-img { height:auto; }
  .numbers-bar { grid-template-columns:repeat(4,1fr); }
  .values-grid { display:grid; grid-template-columns:repeat(3,1fr); }
  .team-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1.5rem; }
  .bespoke-section { display:grid; grid-template-columns:1fr 1fr; }
  .bs-img { order:0; height:auto; }
  /* Collections two-col */
  .col-entry { display:grid; grid-template-columns:1fr 1fr; }
  .col-entry.reversed { direction:rtl; }
  .col-entry.reversed > * { direction:ltr; }
  .col-img { height:auto; }
  .lookbook-grid { grid-template-columns:repeat(3,1fr); grid-auto-rows:200px; }
  .lb-item { height:auto; }
  .lb-item:first-child { grid-column:span 2; grid-row:span 2; }
  /* Contact two-col */
  .contact-grid { display:grid; grid-template-columns:1fr 1.4fr; }
  .ci-panel { border-bottom:none; border-right:1px solid var(--border); padding:3rem 2rem; }
  .cf-panel { padding:3rem 2rem; }
  /* Cart side drawer on tablet */
  .cart-drawer { bottom:auto; left:auto; right:0; top:0; width:400px; height:100%; border-radius:0; max-height:none; transform:translateX(100%); box-shadow:-20px 0 60px rgba(0,0,0,.15); }
  .cart-drawer::before { display:none; }
  .cart-drawer.open { transform:translateX(0); }
  .cart-drawer-foot { padding-bottom:2rem; }
}

/* ================================================================
   DESKTOP  1024px+
   ================================================================ */
@media(min-width:1024px) {
  :root { --nav-h: 80px; }
  body { padding-bottom:0; }
  @media(pointer:fine) { body, button { cursor:none; } }

  /* Navbar — horizontal links, no hamburger */
  .navbar { display:flex; padding:.8rem 4rem; grid-template-columns:unset; }
  .nav-brand { justify-self:unset; align-items:flex-start; }
  .nav-logo-text { font-size:1.55rem; }
  .nav-tagline { display:block; }
  .nav-actions { justify-self:unset; }
  .hamburger { display:none; }
  .mobile-menu { display:none !important; }
  .menu-overlay { display:none; }
  .nav-links {
    display:flex; gap:0; align-items:center;
  }
  .nav-links a {
    font-size:.66rem; letter-spacing:.22em; text-transform:uppercase;
    color:var(--warm-gray); padding:.5rem 1rem; position:relative; transition:color .3s;
  }
  .nav-links a::after { content:''; position:absolute; bottom:-1px; left:1rem; right:1rem; height:1px; background:var(--gold); transform:scaleX(0); transition:transform .35s; }
  .nav-links a:hover, .nav-links a.active { color:var(--gold); }
  .nav-links a:hover::after, .nav-links a.active::after { transform:scaleX(1); }

  /* Sections */
  .section { padding:6rem 5rem; }
  .section-head { margin-bottom:4rem; }
  .product-grid { gap:2rem; }
  .grid-4 { grid-template-columns:repeat(4,1fr); }
  .grid-3 { grid-template-columns:repeat(3,1fr); }
  .product-hover-overlay { display:block; position:absolute; bottom:0; left:0; right:0; background:rgba(28,26,22,.7); color:var(--gold-light); font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; text-align:center; padding:.5rem; opacity:0; transition:opacity .3s; }
  .product-card:hover .product-hover-overlay { opacity:1; }

  /* Hero — two column */
  .hero { display:grid; grid-template-columns:1fr 1fr; align-items:center; padding:0 5rem; min-height:100vh; }
  .hero::before { background:radial-gradient(ellipse at 70% 50%,rgba(200,151,58,.06) 0%,transparent 60%); }
  .hero-btns .btn { flex:none; padding:1rem 2.4rem; font-size:.68rem; }
  .hero-img-mobile { display:none; }
  .hero-img-side { display:flex; height:100vh; align-items:center; justify-content:center; position:relative; animation:fadeIn 1.2s ease .4s both; }
  .hero-img-frame { width:440px; height:580px; position:relative; }
  .hero-img-frame img { width:100%; height:100%; object-fit:cover; box-shadow:30px 30px 80px rgba(200,151,58,.12),0 30px 60px rgba(0,0,0,.12); }
  .hero-img-frame::before { content:''; position:absolute; top:-20px; left:-20px; right:20px; bottom:20px; border:1px solid var(--border-mid); z-index:-1; }
  .hero-sparkles { position:absolute; inset:0; display:block; }
  .sparkle-dot { display:block; position:absolute; color:var(--gold); animation:twinkle 2s ease-in-out infinite; }
  .s1{top:15%;left:10%;font-size:1rem} .s2{top:60%;left:5%;font-size:.7rem;animation-delay:.8s}
  .s3{bottom:20%;right:12%;font-size:1.2rem;animation-delay:1.4s} .s4{top:25%;right:8%;font-size:.8rem;animation-delay:.4s}
  .hero-stats .stat-num { font-size:2rem; }

  /* Category grid */
  .cat-section .cat-scroll-wrap { display:none !important; }
  .cat-section { display:none !important; }
  .cat-grid { display:grid !important; grid-template-columns:1.3fr 1fr 1fr; grid-template-rows:300px 300px; gap:2px; background:var(--border); }
  .cat-tile { display:block !important; position:relative; overflow:hidden; }
  .cat-tile-large { grid-row:1/3; }
  .cat-tile-img { width:100%; height:100%; object-fit:cover; transition:transform .75s; }
  .cat-tile:hover .cat-tile-img { transform:scale(1.07); }
  .cat-arrow { display:inline-block; margin-top:.7rem; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-light); opacity:0; transform:translateX(-8px); transition:all .3s; }
  .cat-tile:hover .cat-arrow { opacity:1; transform:translateX(0); }
  .cat-info { padding:2rem; }

  /* Necklace Hero */
  .necklace-hero {
    display:block;
    background:linear-gradient(135deg,#1C1A16 0%,#2a2520 50%,#1C1A16 100%);
    padding:6rem 5rem;
    position:relative;
    overflow:hidden;
    min-height:650px;
  }
  .necklace-hero::before {
    content:'';
    position:absolute;
    top:0;left:0;right:0;bottom:0;
    background:radial-gradient(ellipse at 50% 40%,rgba(200,151,58,.12) 0%,transparent 60%);
    pointer-events:none;
  }
  .nh-particles {
    position:absolute;
    top:0;left:0;right:0;bottom:0;
    pointer-events:none;
  }
  .nh-particle {
    position:absolute;
    color:rgba(200,151,58,.5);
    animation:nhFloat 5s ease-in-out infinite;
  }
  .np1{top:8%;left:8%;font-size:1rem;animation-delay:0s}
  .np2{top:15%;right:12%;font-size:.8rem;animation-delay:.8s}
  .np3{top:35%;left:5%;font-size:.6rem;animation-delay:1.5s}
  .np4{top:55%;right:8%;font-size:1.1rem;animation-delay:2s}
  .np5{top:75%;left:12%;font-size:.7rem;animation-delay:1s}
  .np6{top:25%;right:25%;font-size:.5rem;animation-delay:2.5s}
  .np7{bottom:15%;right:15%;font-size:.9rem;animation-delay:1.8s}
  .np8{top:45%;left:20%;font-size:.6rem;animation-delay:3s}
  .np9{top:65%;right:30%;font-size:.8rem;animation-delay:.5s}
  .np10{bottom:20%;left:8%;font-size:.7rem;animation-delay:2.2s}
  @keyframes nhFloat {
    0%,100%{transform:translateY(0) rotate(0deg);opacity:.4}
    50%{transform:translateY(-25px) rotate(15deg);opacity:.9}
  }
  .nh-slideshow {
    position:relative;
    max-width:1400px;
    margin:0 auto;
    z-index:1;
    display:flex;
    justify-content:center;
    border-radius:8px;
    overflow:hidden;
    box-shadow:0 40px 100px rgba(0,0,0,.4),0 0 60px rgba(200,151,58,.15);
  }
  .nh-slide {
    position:absolute;
    top:0;left:0;right:0;bottom:0;
    opacity:0;
    animation:slideShow 12s ease-in-out infinite;
  }
  .nh-slide:nth-child(1){animation-delay:0s}
  .nh-slide:nth-child(2){animation-delay:3s}
  .nh-slide:nth-child(3){animation-delay:6s}
  .nh-slide:nth-child(4){animation-delay:9s}
  @keyframes slideShow {
    0%,20%{opacity:1}
    25%,100%{opacity:0}
  }
  .nh-slide img {
    width:100%;
    max-height:550px;
    object-fit:cover;
    display:block;
  }
  .nh-shine {
    position:absolute;
    top:0;left:-100%;
    width:60%;
    height:100%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.1),transparent);
    animation:shineMove 4s ease-in-out infinite;
    pointer-events:none;
    z-index:2;
  }
  @keyframes shineMove {
    0%{left:-100%}
    50%,100%{left:200%}
  }

  /* Editorial */
  .editorial-strip { display:grid; grid-template-columns:1fr 1fr; min-height:500px; }
  .editorial-img { height:auto; }
  .editorial-content { padding:5rem; }

  /* Shop */
  .shop-layout { grid-template-columns:260px 1fr; }
  .shop-sidebar { padding:3rem 2rem; top:var(--nav-h); height:calc(100vh - var(--nav-h)); }
  .shop-sidebar::-webkit-scrollbar { width:3px; }
  .shop-sidebar::-webkit-scrollbar-thumb { background:var(--border-mid); }
  .sb-section { margin-bottom:2.5rem; }
  .sb-title { font-size:.6rem; letter-spacing:.32em; text-transform:uppercase; color:var(--gold); margin-bottom:1.2rem; font-weight:500; }
  .filter-item { display:flex; justify-content:space-between; align-items:center; padding:.55rem .8rem; font-size:.76rem; color:var(--warm-gray); border:1px solid transparent; margin-bottom:.4rem; }
  .filter-item.active { background:var(--charcoal); color:var(--gold-pale); }
  .filter-item span { font-size:.62rem; opacity:.5; }
  .sb-select, .sb-search { width:100%; padding:.7rem .9rem; border:1px solid var(--border); background:var(--cream-soft); font-size:.74rem; color:var(--charcoal); outline:none; }
  .sb-select { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='7'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%23C8973A' fill='none' stroke-width='1.5'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right .8rem center; background-color:var(--cream-soft); padding-right:2.5rem; }
  .price-slider { width:100%; accent-color:var(--gold); }
  .price-labels { display:flex; justify-content:space-between; font-size:.7rem; color:var(--warm-gray); }
  .shop-products { padding:3rem 4rem; }
  .shop-toolbar { padding:1rem 4rem 0; }

  /* Product detail */
  .product-detail-layout { display:grid; grid-template-columns:1fr 1fr; max-width:1400px; margin:0 auto; padding:3rem 5rem; align-items:start; }
  .gallery-col { position:sticky; top:calc(var(--nav-h) + 1.5rem); }
  .zoom-result-panel { display:block; position:absolute; left:calc(100% + 12px); top:0; border:1px solid var(--border-mid); background-color:var(--cream); background-repeat:no-repeat; box-shadow:0 20px 60px rgba(0,0,0,.18); overflow:hidden; z-index:200; }
  .zoom-result-panel::after { content:'🔍  Magnified View'; position:absolute; bottom:0; left:0; right:0; background:rgba(28,26,22,.75); color:var(--gold-light); font-size:.58rem; letter-spacing:.2em; text-transform:uppercase; text-align:center; padding:.4rem; }
  .zoom-hint { display:block; position:absolute; bottom:.8rem; right:.8rem; background:rgba(28,26,22,.7); color:var(--gold-light); font-size:.58rem; letter-spacing:.14em; text-transform:uppercase; padding:.3rem .7rem; z-index:5; pointer-events:none; }
  .touch-swipe-hint { display:none; }
  .info-col { padding:0 0 0 4rem; }
  .tabs-section { max-width:1400px; margin:0 auto; padding:0 5rem 4rem; background:transparent; }
  .tab-nav { overflow:visible; }
  .desc-grid { display:grid; grid-template-columns:1fr 1fr; gap:3rem; }
  .breadcrumb { padding:1rem 5rem; }
  .thumb-strip { background:transparent; padding:.7rem 0; }
  .related-section { padding:5rem; }
  .sticky-bar { bottom:0; }

  /* Checkout */
  .checkout-layout { grid-template-columns:1fr 460px; }
  .checkout-form-col { padding:4rem 5rem; }
  .checkout-summary-col { position:sticky; top:0; height:100vh; overflow-y:auto; }
  .checkout-nav { padding:.9rem 4rem; }
  .checkout-steps { display:flex; align-items:center; gap:.8rem; font-size:.62rem; letter-spacing:.2em; text-transform:uppercase; color:rgba(122,110,95,.4); }
  .cstep { display:flex; align-items:center; gap:.6rem; }
  .cstep.active { color:var(--gold); }
  .cstep.done   { color:var(--charcoal); }
  .cstep-num { width:22px; height:22px; border-radius:50%; border:1px solid currentColor; display:flex; align-items:center; justify-content:center; font-size:.58rem; font-weight:600; }
  .cstep.active .cstep-num { background:var(--gold); color:white; border-color:var(--gold); }
  .cstep.done .cstep-num   { background:var(--charcoal); color:var(--gold-pale); border-color:var(--charcoal); }
  .step-line { width:30px; height:1px; background:var(--border); }

  /* About */
  .ah-content { padding:6rem 5rem; }
  .bespoke-section { min-height:480px; }
  .bs-content { padding:5rem; }

  /* Collections */
  .col-entry { min-height:520px; }
  .col-content { padding:5rem 6rem; }
  .lookbook-grid { grid-template-columns:repeat(4,1fr); grid-auto-rows:260px; }
  .lb-item:first-child { grid-column:span 2; grid-row:span 2; }

  /* Contact */
  .ci-panel, .cf-panel { padding:5rem; }

  /* Footer — four column grid */
  .footer-inner { display:grid; grid-template-columns:2fr 1fr 1fr 1fr; gap:4rem; padding:5rem 5rem 4rem; }
  .footer-brand-col { border-bottom:none; margin-bottom:0; padding-bottom:0; }
  .footer-col { border-bottom:none; }
  .footer-col-header { pointer-events:none; }
  .footer-col-toggle { display:none; }
  .footer-col-links { max-height:none !important; overflow:visible; }
  .footer-col-links li { padding:.6rem 0; }
  .footer-col-links a { font-size:.75rem; color:rgba(245,240,225,.42); }
  .footer-bottom { padding:1.8rem 5rem; flex-direction:row; justify-content:space-between; }
  .footer-copy { margin-bottom:0; }

  /* Cart — side panel */
  .cart-drawer { bottom:auto; left:auto; right:0; top:0; width:420px; height:100%; border-radius:0; max-height:none; transform:translateX(100%); box-shadow:-30px 0 80px rgba(0,0,0,.12); }
  .cart-drawer::before { display:none; }
  .cart-drawer.open { transform:translateX(0); }
  .cart-drawer-foot { padding-bottom:2rem; }

  /* USP */
  .usp-bar { grid-template-columns:repeat(4,1fr); }
  .usp-item { padding:2.2rem 1.8rem; }

  /* Newsletter */
  .newsletter-strip { padding:5rem; }
  .newsletter-form { max-width:460px; }
}

/* ================================================================
   WIDE  1280px+
   ================================================================ */
@media(min-width:1280px) {
  .zoom-result-panel { width:420px; height:420px; }
  .navbar { padding:.8rem 5rem; }
}

/* ================================================================
   LANDSCAPE MOBILE
   ================================================================ */
@media(max-height:500px) and (orientation:landscape) {
  .hero { padding:1.5rem 1.2rem; min-height:auto; }
  .hero-img-mobile { display:none; }
  .page-hero { min-height:auto; padding:2rem 1.2rem; }
}

/* ================================================================
   PRINT
   ================================================================ */
@media print {
  .navbar, .mobile-menu, .menu-overlay, .pwa-install-banner,
  .sw-update-banner, .sticky-bar, .sort-sheet, .sort-overlay,
  .cart-drawer, .cart-overlay, .hamburger { display:none !important; }
  body { padding:0; background:white; color:black; }
  .main-content { padding-top:0; }
}

/* ================================================================
   ADMIN PANEL STYLES
   ================================================================ */

/* ── LAYOUT ── */
.admin-wrap { display:flex; min-height:100vh; background:#f4f5f7; }

/* ── SIDEBAR ── */
.admin-sidebar {
  width:240px; flex-shrink:0;
  background:var(--charcoal);
  display:flex; flex-direction:column;
  position:sticky; top:0; height:100vh;
  overflow-y:auto;
}
.admin-logo {
  padding:1.5rem 1.4rem 1.2rem;
  border-bottom:1px solid rgba(200,151,58,.15);
}
.admin-logo a {
  font-family:'Playfair Display',serif;
  font-size:1.2rem; font-weight:400;
  letter-spacing:.2em; color:var(--cream-soft);
  text-decoration:none;
}
.admin-logo a span { color:var(--gold); }
.admin-badge {
  font-size:.52rem; letter-spacing:.28em;
  text-transform:uppercase; color:rgba(200,151,58,.6);
  margin-top:.3rem;
}
.admin-nav { padding:.8rem 0; flex:1; }
.admin-nav-item {
  display:flex; align-items:center; gap:.8rem;
  padding:.75rem 1.4rem;
  color:rgba(245,240,225,.5);
  font-size:.76rem; letter-spacing:.04em;
  text-decoration:none;
  transition:all .2s;
  border-left:2px solid transparent;
}
.admin-nav-item:hover { color:var(--gold-pale); background:rgba(200,151,58,.05); }
.admin-nav-item.active { color:var(--gold); border-left-color:var(--gold); background:rgba(200,151,58,.08); }
.anav-icon { font-size:1rem; width:1.2rem; text-align:center; }
.admin-nav-divider { height:1px; background:rgba(200,151,58,.1); margin:.6rem 1.4rem; }

/* ── MAIN ── */
.admin-main { flex:1; display:flex; flex-direction:column; min-width:0; }
.admin-header {
  background:white; border-bottom:1px solid #e5e7eb;
  padding:1rem 2rem;
  display:flex; align-items:center; justify-content:space-between;
  position:sticky; top:0; z-index:100;
}
.admin-header-title { font-family:'Playfair Display',serif; font-size:1.25rem; font-weight:400; color:var(--charcoal); }
.admin-user { font-size:.68rem; letter-spacing:.15em; text-transform:uppercase; color:var(--warm-gray); }
.admin-content { padding:1.8rem 2rem; flex:1; }

/* ── PAGE HEADER ── */
.admin-page-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:1.5rem; }
.admin-page-title { font-family:'Playfair Display',serif; font-size:1.6rem; font-weight:400; color:var(--charcoal); display:flex; align-items:center; gap:.8rem; }
.admin-count-badge { background:var(--gold); color:var(--charcoal); font-size:.58rem; letter-spacing:.1em; padding:.2rem .7rem; font-weight:600; font-family:'Raleway',sans-serif; border-radius:12px; }

/* ── STAT CARDS ── */
.admin-stats-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; margin-bottom:2rem; }
.admin-stat-card {
  background:white; border:1px solid #e5e7eb;
  padding:1.5rem; border-radius:8px;
  border-top:3px solid var(--border);
  transition:box-shadow .2s;
}
.admin-stat-card.gold { border-top-color:var(--gold); }
.admin-stat-card:hover { box-shadow:0 4px 20px rgba(0,0,0,.08); }
.asc-icon { font-size:1.6rem; margin-bottom:.6rem; }
.asc-num  { font-family:'Playfair Display',serif; font-size:2rem; font-weight:400; color:var(--charcoal); line-height:1; margin-bottom:.3rem; }
.asc-label{ font-size:.72rem; font-weight:600; color:var(--charcoal); margin-bottom:.2rem; }
.asc-sub  { font-size:.65rem; color:var(--warm-gray); }

/* ── DASHBOARD REDESIGN ── */
.admin-page-sub { font-size:.7rem; letter-spacing:.06em; color:var(--warm-gray); margin-top:.35rem; }

.dash-grid { display:grid; grid-template-columns:1.1fr 2fr; gap:1.2rem; margin-bottom:1.2rem; }

/* Featured revenue card */
.dash-revenue-card {
  background:linear-gradient(150deg,#23201a 0%,var(--charcoal) 60%);
  border-radius:12px; padding:1.6rem 1.7rem;
  display:flex; flex-direction:column; justify-content:space-between;
  position:relative; overflow:hidden;
  box-shadow:0 10px 30px rgba(28,26,22,.18);
}
.dash-revenue-card::after {
  content:''; position:absolute; top:-40%; right:-15%;
  width:220px; height:220px; border-radius:50%;
  background:radial-gradient(circle,rgba(200,151,58,.32),transparent 70%);
}
.drc-top { display:flex; align-items:center; justify-content:space-between; position:relative; z-index:1; }
.drc-label { font-size:.62rem; letter-spacing:.24em; text-transform:uppercase; color:var(--gold-light); font-weight:600; }
.drc-pill { font-size:.55rem; letter-spacing:.1em; text-transform:uppercase; color:var(--gold-pale); background:rgba(200,151,58,.18); border:1px solid rgba(200,151,58,.35); padding:.2rem .6rem; border-radius:12px; }
.drc-amount { font-family:'Playfair Display',serif; font-size:2.7rem; font-weight:400; color:#fff; line-height:1; margin:1.4rem 0; position:relative; z-index:1; }
.drc-foot { display:flex; align-items:center; gap:1.2rem; position:relative; z-index:1; }
.drc-foot-item { display:flex; flex-direction:column; gap:.15rem; }
.drc-foot-num { font-family:'Playfair Display',serif; font-size:1.05rem; color:var(--gold-pale); }
.drc-foot-label { font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; color:var(--warm-gray); }
.drc-foot-divider { width:1px; align-self:stretch; background:rgba(255,255,255,.1); }

/* KPI tiles */
.dash-kpis { display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
.dash-kpi {
  background:white; border:1px solid #e5e7eb; border-radius:12px;
  padding:1.3rem 1.4rem; display:flex; align-items:center; gap:1rem;
  position:relative; transition:box-shadow .2s, transform .2s;
}
.dash-kpi:hover { box-shadow:0 6px 22px rgba(0,0,0,.07); transform:translateY(-2px); }
.dash-kpi.alert { border-color:#fcd34d; background:#fffdf6; }
.dk-icon { font-size:1.5rem; width:46px; height:46px; display:flex; align-items:center; justify-content:center; background:var(--cream-soft); border-radius:10px; flex-shrink:0; }
.dash-kpi.alert .dk-icon { background:#fef3c7; }
.dk-body { flex:1; }
.dk-num { font-family:'Playfair Display',serif; font-size:1.7rem; font-weight:400; color:var(--charcoal); line-height:1; }
.dk-label { font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--warm-gray); margin-top:.3rem; }
.dk-tag { position:absolute; top:1rem; right:1.2rem; font-size:.58rem; letter-spacing:.08em; color:var(--warm-gray); }
.dk-tag.link { color:var(--gold); text-decoration:none; font-weight:600; }
.dk-tag.link:hover { text-decoration:underline; }

/* Attention strip */
.dash-strip {
  display:grid; grid-template-columns:repeat(4,1fr); gap:1px;
  background:#e5e7eb; border:1px solid #e5e7eb; border-radius:12px;
  overflow:hidden; margin-bottom:1.5rem;
}
.dash-strip-item { background:white; padding:1rem 1.3rem; display:flex; align-items:center; gap:.6rem; }
.dsi-dot { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.dsi-dot.pending   { background:#d97706; }
.dsi-dot.delivered { background:#059669; }
.dsi-dot.cancelled { background:#dc2626; }
.dsi-dot.category  { background:var(--gold); }
.dsi-num { font-family:'Playfair Display',serif; font-size:1.25rem; color:var(--charcoal); }
.dsi-label { font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--warm-gray); }

@media(max-width:900px) {
  .dash-grid { grid-template-columns:1fr; }
}
@media(max-width:560px) {
  .dash-kpis { grid-template-columns:1fr; }
  .dash-strip { grid-template-columns:1fr 1fr; }
  .drc-amount { font-size:2.2rem; }
}

/* ── SECTION ── */
.admin-section { background:white; border:1px solid #e5e7eb; border-radius:8px; margin-bottom:1.5rem; overflow:hidden; }
.admin-section-head { display:flex; align-items:center; justify-content:space-between; padding:1.2rem 1.5rem; border-bottom:1px solid #e5e7eb; }
.admin-section-head h2 { font-family:'Playfair Display',serif; font-size:1.1rem; font-weight:400; color:var(--charcoal); }
.admin-link { font-size:.72rem; color:var(--gold); text-decoration:none; letter-spacing:.06em; }
.admin-link:hover { text-decoration:underline; }

/* ── TABLE ── */
.admin-table-wrap { overflow-x:auto; }
.admin-table { width:100%; border-collapse:collapse; }
.admin-table th {
  text-align:left; padding:.75rem 1.5rem;
  font-size:.6rem; letter-spacing:.2em;
  text-transform:uppercase; color:var(--warm-gray);
  background:#f9fafb; border-bottom:1px solid #e5e7eb;
  white-space:nowrap;
}
.admin-table td { padding:.85rem 1.5rem; border-bottom:1px solid #f3f4f6; vertical-align:middle; }
.admin-table tr:last-child td { border-bottom:none; }
.admin-table tr:hover td { background:#fafafa; }
.admin-product-cell { display:flex; align-items:center; gap:.9rem; }
.admin-product-thumb { width:48px; height:48px; object-fit:cover; border-radius:4px; border:1px solid #e5e7eb; flex-shrink:0; }
.admin-product-name { font-size:.84rem; font-weight:500; color:var(--charcoal); margin-bottom:.15rem; }
.admin-product-material { font-size:.65rem; color:var(--warm-gray); }
.admin-price { font-family:'Playfair Display',serif; font-size:.95rem; color:var(--charcoal); }
.admin-price-old { font-size:.7rem; color:var(--warm-gray); text-decoration:line-through; }
.admin-badge-chip {
  display:inline-block; padding:.2rem .65rem;
  font-size:.58rem; letter-spacing:.14em; text-transform:uppercase;
  font-weight:600; border-radius:12px;
  background:#f3f4f6; color:var(--warm-gray);
}
.admin-badge-chip.badge-new  { background:#ecfdf5; color:#065f46; }
.admin-badge-chip.badge-sale { background:#fef2f2; color:#991b1b; }
.admin-badge-chip.badge-bestseller { background:#fffbeb; color:#92400e; }
.admin-status { display:inline-flex; align-items:center; gap:.35rem; font-size:.65rem; letter-spacing:.1em; text-transform:uppercase; font-weight:600; padding:.2rem .7rem; border-radius:12px; }
.admin-status::before { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; }
.admin-status.active   { background:#ecfdf5; color:#065f46; }
.admin-status.inactive { background:#f3f4f6; color:#6b7280; }
.admin-order-num { font-family:'Playfair Display',serif; font-size:.85rem; color:var(--gold); }
.admin-empty { text-align:center; padding:3rem; color:var(--warm-gray); font-style:italic; }
.admin-actions { display:flex; gap:.4rem; }
.admin-action-btn {
  padding:.3rem .8rem; font-size:.62rem; letter-spacing:.1em;
  text-transform:uppercase; font-weight:500;
  background:none; border:1px solid var(--border);
  color:var(--warm-gray); text-decoration:none; transition:all .2s;
  border-radius:4px;
}
.admin-action-btn:hover { background:var(--charcoal); color:var(--gold-pale); border-color:var(--charcoal); }
.admin-action-btn.danger:hover { background:#c0392b; color:white; border-color:#c0392b; }

/* ── FILTERS ── */
.admin-filters { display:flex; gap:.8rem; margin-bottom:1.2rem; flex-wrap:wrap; }
.admin-search, .admin-select {
  padding:.65rem 1rem; border:1px solid #e5e7eb;
  background:white; font-family:'Raleway',sans-serif;
  font-size:.78rem; color:var(--charcoal);
  outline:none; transition:border-color .2s; border-radius:4px;
}
.admin-search { flex:1; min-width:200px; }
.admin-select { min-width:160px; }
.admin-search:focus, .admin-select:focus { border-color:var(--gold); }

/* ── FORM ── */
.admin-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:1.5rem; margin-bottom:1.5rem; }
.admin-form-card { background:white; border:1px solid #e5e7eb; border-radius:8px; padding:1.5rem; }
.admin-form-section-title { font-size:.62rem; letter-spacing:.28em; text-transform:uppercase; color:var(--gold); font-weight:500; margin-bottom:1rem; }
.admin-field { display:flex; flex-direction:column; gap:.4rem; margin-bottom:1.1rem; }
.admin-field label { font-size:.62rem; letter-spacing:.16em; text-transform:uppercase; color:var(--warm-gray); font-weight:500; }
.admin-field small { font-size:.6rem; color:var(--warm-gray); letter-spacing:0; text-transform:none; margin-left:.4rem; }
.admin-field input, .admin-field select, .admin-field textarea {
  padding:.8rem 1rem; border:1px solid #e5e7eb;
  font-family:'Raleway',sans-serif; font-size:.82rem;
  color:var(--charcoal); outline:none; transition:border-color .2s;
  border-radius:4px; background:white;
}
.admin-field input:focus, .admin-field select:focus, .admin-field textarea:focus { border-color:var(--gold); }
.admin-field input.field-error, .admin-field textarea.field-error, .admin-field select.field-error { border-color:#c0392b; }
.admin-field-row { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.admin-field-hint { font-size:.68rem; color:var(--warm-gray); margin-bottom:.8rem; }
.admin-img-row { flex-direction:row !important; align-items:center; gap:.5rem; }
.admin-img-row input { flex:1; }
.admin-remove-btn { background:none; border:none; color:var(--warm-gray); font-size:1rem; padding:.4rem; transition:color .2s; flex-shrink:0; }
.admin-remove-btn:hover { color:#c0392b; }
.admin-add-img-btn {
  width:100%; padding:.7rem; border:1px dashed var(--border);
  background:transparent; color:var(--gold); font-family:'Raleway',sans-serif;
  font-size:.7rem; letter-spacing:.15em; text-transform:uppercase;
  cursor:pointer; transition:all .2s; border-radius:4px; margin-bottom:1rem;
}
.admin-add-img-btn:hover { background:rgba(200,151,58,.05); border-style:solid; }
.admin-img-preview { width:100%; height:180px; object-fit:cover; border-radius:4px; border:1px solid #e5e7eb; margin-top:.5rem; }
.admin-img-suggestions { display:flex; flex-wrap:wrap; gap:.5rem; }
.admin-suggestion-img { padding:0; border:2px solid transparent; border-radius:4px; overflow:hidden; width:54px; height:54px; transition:border-color .2s; }
.admin-suggestion-img:hover { border-color:var(--gold); }
.admin-suggestion-img img { width:100%; height:100%; object-fit:cover; }
.admin-stars-input { display:flex; align-items:center; gap:.3rem; }
.admin-star-btn { background:none; border:none; font-size:1.4rem; color:#e5e7eb; cursor:pointer; padding:0; transition:color .15s; line-height:1; }
.admin-star-btn.filled { color:var(--gold); }
.admin-stars-label { font-size:.72rem; color:var(--warm-gray); margin-left:.5rem; }
.admin-toggle-row { display:flex; align-items:center; gap:.8rem; font-size:.78rem; color:var(--warm-gray); }
.admin-toggle { position:relative; display:inline-block; width:44px; height:24px; }
.admin-toggle input { opacity:0; width:0; height:0; }
.admin-toggle-slider { position:absolute; inset:0; background:#e5e7eb; border-radius:12px; cursor:pointer; transition:.3s; }
.admin-toggle-slider::before { content:''; position:absolute; width:18px; height:18px; left:3px; bottom:3px; background:white; border-radius:50%; transition:.3s; }
.admin-toggle input:checked + .admin-toggle-slider { background:var(--gold); }
.admin-toggle input:checked + .admin-toggle-slider::before { transform:translateX(20px); }

/* ── FORM ACTIONS ── */
.admin-form-actions { display:flex; gap:1rem; justify-content:flex-end; padding-top:1rem; }
.admin-error-banner   { background:#fef2f2; border:1px solid #fca5a5; color:#991b1b; padding:.9rem 1.2rem; font-size:.78rem; margin-bottom:1rem; border-radius:4px; }
.admin-success-banner { background:#ecfdf5; border:1px solid #86efac; color:#065f46; padding:.9rem 1.2rem; font-size:.78rem; margin-bottom:1rem; border-radius:4px; }

/* ── MODAL ── */
.admin-modal-overlay { position:fixed; inset:0; background:rgba(28,26,22,.5); z-index:800; display:flex; align-items:center; justify-content:center; padding:1rem; animation:fadeIn .2s ease; }
.admin-modal { background:white; border-radius:8px; padding:2rem; max-width:400px; width:100%; text-align:center; box-shadow:0 20px 60px rgba(0,0,0,.2); }
.admin-modal-icon  { font-size:2.5rem; margin-bottom:1rem; }
.admin-modal-title { font-family:'Playfair Display',serif; font-size:1.3rem; font-weight:400; margin-bottom:.8rem; }
.admin-modal-body  { font-size:.8rem; color:var(--warm-gray); line-height:1.7; margin-bottom:1.5rem; }
.admin-modal-actions { display:flex; gap:.8rem; justify-content:center; }

/* ── CATEGORIES ── */
.admin-cat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:1.2rem; }
.admin-cat-card { background:white; border:1px solid #e5e7eb; border-radius:8px; padding:1.5rem; text-align:center; }
.admin-cat-icon  { font-size:2.5rem; margin-bottom:.8rem; }
.admin-cat-name  { font-family:'Playfair Display',serif; font-size:1.1rem; font-weight:400; margin-bottom:.4rem; }
.admin-cat-desc  { font-size:.7rem; color:var(--warm-gray); line-height:1.6; margin-bottom:.8rem; }
.admin-cat-count { font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); font-weight:600; margin-bottom:1rem; }
.admin-cat-actions { display:flex; flex-direction:column; gap:.5rem; }

/* ── INFO / LOADING ── */
.admin-info-banner { background:#fffbeb; border:1px solid #fcd34d; color:#92400e; padding:.9rem 1.2rem; font-size:.76rem; border-radius:4px; margin-bottom:1.5rem; }
.admin-info-banner code { background:rgba(0,0,0,.07); padding:.1rem .4rem; border-radius:3px; font-size:.72rem; }
.admin-loading { display:flex; justify-content:center; padding:4rem; }

/* ── RESPONSIVE: hide sidebar on mobile, show hamburger ── */
@media(max-width:768px) {
  .admin-sidebar { display:none; position:fixed; top:0; left:0; bottom:0; z-index:1200; box-shadow:4px 0 24px rgba(0,0,0,.4); }
  .admin-sidebar.mobile-open { display:flex; }
  .admin-mobile-header { display:flex !important; }
  .admin-mobile-overlay { display:block !important; }
  /* hide desktop sticky header — mobile-header replaces it */
  .admin-header { display:none; }
  .admin-stats-grid  { grid-template-columns:1fr 1fr; }
  .admin-form-grid   { grid-template-columns:1fr; }
  .admin-cat-grid    { grid-template-columns:1fr 1fr; }
  .admin-field-row   { grid-template-columns:1fr; }
  .admin-content     { padding:1rem; }
  .admin-table th, .admin-table td { padding:.6rem .75rem; font-size:.7rem; }
  /* page header stacks on small screens */
  .admin-page-header { flex-direction:column; align-items:flex-start; gap:.75rem; }
  /* search / filter inputs fill width */
  .admin-search { min-width:0; width:100%; }
  .admin-filters { flex-direction:column; }
  /* form card padding tighter */
  .admin-form-card { padding:1rem; }
  /* modal full-width on mobile */
  .admin-modal { padding:1.5rem 1rem; }
}
@media(max-width:480px) {
  .admin-stats-grid { grid-template-columns:1fr; }
  .admin-cat-grid   { grid-template-columns:1fr; }
  /* action buttons stack */
  .admin-actions { flex-direction:column; }
  .admin-modal-actions { flex-direction:column; }
}

/* ================================================================
   AUTH PAGES  (Login / Register / Admin Login)
   ================================================================ */

.auth-page {
  min-height:100vh; display:flex; align-items:center; justify-content:center;
  background:var(--cream-soft); padding:2rem 1.2rem;
}
.auth-page-dark { background:var(--charcoal); }

.auth-card {
  width:100%; max-width:420px;
  background:white; border:1px solid var(--border);
  padding:2.5rem 2rem; box-shadow:0 20px 60px rgba(0,0,0,.08);
}
.auth-card-dark {
  background:var(--dark); border-color:rgba(200,151,58,.15);
  box-shadow:0 20px 60px rgba(0,0,0,.4);
}

.auth-brand { text-align:center; margin-bottom:2rem; }
.auth-logo {
  font-family:'Playfair Display',serif; font-size:1.5rem;
  font-weight:400; letter-spacing:.22em; color:var(--charcoal);
  text-decoration:none;
}
.auth-logo .gold { color:var(--gold); }
.auth-card-dark .auth-logo { color:var(--cream-soft); }
.auth-tagline { font-size:.56rem; letter-spacing:.28em; text-transform:uppercase; color:var(--warm-gray); margin-top:.3rem; }

.auth-title { font-family:'Playfair Display',serif; font-size:1.6rem; font-weight:400; color:var(--charcoal); text-align:center; margin-bottom:.4rem; }
.auth-card-dark .auth-title { color:var(--cream-soft); }
.auth-subtitle { font-size:.76rem; color:var(--warm-gray); text-align:center; margin-bottom:1.8rem; }

.auth-error   { background:#fef2f2; border:1px solid #fca5a5; color:#991b1b; padding:.75rem 1rem; font-size:.76rem; margin-bottom:1.2rem; border-radius:4px; }
.auth-success { background:#ecfdf5; border:1px solid #86efac; color:#065f46; padding:.75rem 1rem; font-size:.76rem; margin-bottom:1.2rem; border-radius:4px; }

.auth-form { display:flex; flex-direction:column; gap:1rem; }

.auth-field { display:flex; flex-direction:column; gap:.35rem; }
.auth-field label { font-size:.6rem; letter-spacing:.18em; text-transform:uppercase; color:var(--warm-gray); font-weight:500; }
.auth-field small { font-size:.6rem; color:var(--warm-gray); letter-spacing:0; text-transform:none; margin-left:.4rem; }
.auth-field input {
  padding:.85rem 1rem; border:1px solid var(--border);
  font-family:'Raleway',sans-serif; font-size:.82rem; color:var(--charcoal);
  outline:none; transition:border-color .2s; background:white;
  border-radius:4px;
}
.auth-field input:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(200,151,58,.07); }
.auth-field input.field-error { border-color:#c0392b; }

.auth-field-dark label { color:rgba(245,240,225,.5); }
.auth-field-dark input { background:rgba(255,255,255,.05); border-color:rgba(200,151,58,.2); color:var(--cream-soft); }
.auth-field-dark input:focus { border-color:var(--gold); }
.auth-field-dark input::placeholder { color:rgba(245,240,225,.2); }

.auth-field-row { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; }

.auth-pass-wrap { position:relative; }
.auth-pass-wrap input { width:100%; padding-right:3rem; }
.auth-pass-toggle {
  position:absolute; right:.75rem; top:50%; transform:translateY(-50%);
  background:none; border:none; font-size:1rem; color:var(--warm-gray);
  cursor:pointer; padding:.2rem;
}

/* Password strength bar */
.auth-strength { display:flex; align-items:center; gap:.6rem; margin-top:.35rem; }
.auth-strength-bar { flex:1; height:4px; background:var(--border); border-radius:2px; overflow:hidden; }
.auth-strength-fill { height:100%; border-radius:2px; transition:width .3s, background .3s; }
.auth-strength-fill.weak   { background:#ef4444; }
.auth-strength-fill.fair   { background:#f97316; }
.auth-strength-fill.good   { background:#eab308; }
.auth-strength-fill.strong { background:#22c55e; }
.auth-strength-label { font-size:.6rem; color:var(--warm-gray); white-space:nowrap; }

.auth-chk { display:flex; align-items:flex-start; gap:.7rem; font-size:.74rem; color:var(--warm-gray); line-height:1.6; }
.auth-chk input { margin-top:.2rem; accent-color:var(--gold); width:16px; height:16px; flex-shrink:0; }
.auth-chk a { color:var(--gold); }

.auth-submit-btn {
  width:100%; padding:1rem; background:var(--charcoal); color:var(--gold-pale);
  font-family:'Raleway',sans-serif; font-size:.7rem; letter-spacing:.24em;
  text-transform:uppercase; font-weight:500; transition:all .3s;
  min-height:var(--touch-min); border:none; border-radius:4px; margin-top:.4rem;
}
.auth-submit-btn:hover:not(:disabled) { background:var(--gold); color:var(--charcoal); }
.auth-submit-btn:disabled { opacity:.6; }
.auth-submit-gold { background:var(--gold); color:var(--charcoal); }
.auth-submit-gold:hover:not(:disabled) { background:var(--gold-bright); }

.auth-links { display:flex; align-items:center; justify-content:center; gap:.5rem; margin-top:1.5rem; font-size:.74rem; color:var(--warm-gray); }
.auth-links a { color:var(--gold); }

.auth-divider { display:flex; align-items:center; gap:.8rem; margin:1.2rem 0; }
.auth-divider::before, .auth-divider::after { content:''; flex:1; height:1px; background:var(--border); }
.auth-divider span { font-size:.6rem; letter-spacing:.12em; color:var(--warm-gray); text-transform:uppercase; }

.auth-seed-hint { font-size:.65rem; color:rgba(200,151,58,.5); text-align:center; background:rgba(200,151,58,.06); padding:.6rem; border:1px solid rgba(200,151,58,.15); border-radius:4px; }
.auth-seed-hint code { font-family:monospace; color:var(--gold); }

/* ── NAV USER MENU ── */
.nav-user-menu { position:relative; }
.nav-user-btn { display:flex; align-items:center; justify-content:center; }
.nav-user-avatar {
  width:28px; height:28px; border-radius:50%;
  background:var(--gold); color:var(--charcoal);
  font-size:.7rem; font-weight:700; display:flex;
  align-items:center; justify-content:center; text-transform:uppercase;
}
.nav-user-dropdown {
  position:absolute; right:0; top:calc(100% + .5rem);
  background:white; border:1px solid var(--border);
  min-width:200px; box-shadow:0 12px 40px rgba(0,0,0,.14);
  z-index:600; animation:fadeUp .2s ease;
}
.nav-user-name  { font-family:'Playfair Display',serif; font-size:.9rem; padding:.75rem 1rem .1rem; }
.nav-user-email { font-size:.65rem; color:var(--warm-gray); padding:0 1rem .75rem; }
.nav-user-divider { height:1px; background:var(--border); }
.nav-user-item {
  display:flex; align-items:center; gap:.6rem;
  padding:.7rem 1rem; font-size:.74rem; color:var(--charcoal);
  text-decoration:none; transition:background .15s; width:100%;
  background:none; border:none; font-family:'Raleway',sans-serif;
  text-align:left; cursor:pointer;
}
.nav-user-item:hover { background:var(--cream); color:var(--gold); }
.nav-user-logout { color:var(--warm-gray); }

/* ── ADMIN SIDEBAR USER CHIP ── */
.admin-sidebar-user {
  display:flex; align-items:center; gap:.8rem;
  padding:1rem 1.4rem; border-top:1px solid rgba(200,151,58,.12);
  margin-top:auto;
}
.admin-sidebar-avatar {
  width:34px; height:34px; border-radius:50%;
  background:var(--gold); color:var(--charcoal);
  display:flex; align-items:center; justify-content:center;
  font-size:.8rem; font-weight:700; flex-shrink:0; text-transform:uppercase;
}
.admin-sidebar-name { font-size:.76rem; color:var(--cream-soft); font-weight:500; }
.admin-sidebar-role { font-size:.58rem; letter-spacing:.16em; text-transform:uppercase; color:rgba(200,151,58,.5); }
.admin-logout-btn {
  width:100%; text-align:left; background:none; border:none;
  font-family:'Raleway',sans-serif; cursor:pointer;
  color:rgba(245,240,225,.4) !important;
}
.admin-logout-btn:hover { color:var(--gold) !important; }

/* ================================================================
   ADMIN ORDERS
   ================================================================ */

/* ── STATUS CHIPS ── */
.order-status-chip {
  display:inline-flex; align-items:center; gap:.3rem;
  padding:.22rem .75rem; font-size:.6rem; letter-spacing:.12em;
  text-transform:uppercase; font-weight:600; border-radius:12px;
  white-space:nowrap;
}
.order-status-chip::before { content:''; width:6px; height:6px; border-radius:50%; background:currentColor; }
.order-status-chip.pending         { background:#fffbeb; color:#92400e; }
.order-status-chip.paymentreceived { background:#eff6ff; color:#1e40af; }
.order-status-chip.processing      { background:#f0fdf4; color:#166534; }
.order-status-chip.readyforcollection { background:#fef08a; color:#713f12; }
.order-status-chip.shipped         { background:#ecfdf5; color:#065f46; }
.order-status-chip.delivered       { background:#f0fdf4; color:#14532d; border:1px solid #86efac; }
.order-status-chip.cancelled       { background:#fef2f2; color:#991b1b; }
.order-status-chip.refunded        { background:#faf5ff; color:#6b21a8; }

/* ── PIPELINE ── */
.order-pipeline {
  display:flex; gap:.5rem; overflow-x:auto; padding:.5rem 0;
  -webkit-overflow-scrolling:touch; scrollbar-width:none;
}
.order-pipeline::-webkit-scrollbar { display:none; }
.order-pipeline-step {
  display:flex; flex-direction:column; align-items:center; gap:.3rem;
  padding:.7rem 1rem; border:1px solid #e5e7eb; background:white;
  font-family:'Raleway',sans-serif; border-radius:8px; flex-shrink:0;
  transition:all .2s; cursor:pointer; min-width:90px;
}
.order-pipeline-step:hover { border-color:var(--gold); }
.order-pipeline-step.active { background:var(--charcoal); border-color:var(--charcoal); }
.order-pipeline-step.active .ops-label, .order-pipeline-step.active .ops-count { color:var(--gold-pale); }
.ops-icon  { font-size:1.2rem; }
.ops-label { font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; color:var(--warm-gray); }
.ops-count { font-family:'Playfair Display',serif; font-size:1.1rem; color:var(--charcoal); font-weight:400; }

/* ── ORDER DETAIL GRID ── */
.order-detail-grid {
  display:grid;
  grid-template-columns:1fr 360px;
  gap:1.5rem;
  align-items:start;
}
@media(max-width:900px) {
  .order-detail-grid { grid-template-columns:1fr; }
}
.order-detail-header {
  display:flex; align-items:flex-start; justify-content:space-between; gap:1rem;
}

/* ── ORDER ITEMS ── */
.order-items-list { display:flex; flex-direction:column; gap:0; }
.order-item-row {
  display:flex; align-items:center; gap:1rem;
  padding:.9rem 0; border-bottom:1px solid var(--border);
}
.order-item-row:last-child { border-bottom:none; }
.order-item-img { width:56px; height:56px; object-fit:cover; border:1px solid var(--border); border-radius:4px; flex-shrink:0; }
.order-item-info { flex:1; min-width:0; }
.order-item-name { font-size:.84rem; font-weight:500; color:var(--charcoal); margin-bottom:.2rem; }
.order-item-meta { font-size:.65rem; color:var(--warm-gray); }
.order-item-qty  { font-size:.65rem; color:var(--warm-gray); margin-top:.15rem; }
.order-item-prices { text-align:right; flex-shrink:0; }

/* ── TOTALS ── */
.order-totals { border-top:1px solid var(--border); margin-top:1rem; padding-top:1rem; }
.order-total-row {
  display:flex; justify-content:space-between; align-items:center;
  padding:.35rem 0; font-size:.76rem; color:var(--warm-gray);
}
.order-total-row span:last-child { font-family:'Playfair Display',serif; font-size:.9rem; color:var(--charcoal); }
.order-total-row.discount span:last-child { color:#22c55e; }
.order-total-row.grand {
  border-top:1px solid var(--border); margin-top:.5rem; padding-top:.8rem;
  font-weight:600; color:var(--charcoal);
}
.order-total-row.grand span:last-child { font-size:1.3rem; color:var(--gold); }

/* ── ADDRESS ── */
.order-address-grid { display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
.order-label { font-size:.58rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold); margin-bottom:.3rem; font-weight:500; }
.order-value { font-size:.8rem; color:var(--charcoal); line-height:1.7; }

/* ── TIMELINE ── */
.order-timeline { display:flex; flex-direction:column; gap:0; margin:.8rem 0; }
.order-tl-step  { display:flex; align-items:center; gap:.8rem; padding:.4rem 0; position:relative; }
.order-tl-step::before { content:''; position:absolute; left:7px; top:100%; width:1px; height:100%; background:#e5e7eb; }
.order-tl-step:last-child::before { display:none; }
.order-tl-dot  { width:15px; height:15px; border-radius:50%; border:2px solid #e5e7eb; background:white; flex-shrink:0; transition:all .2s; }
.order-tl-step.done .order-tl-dot { background:#e5e7eb; border-color:#e5e7eb; }
.order-tl-step.current .order-tl-dot { background:var(--gold); border-color:var(--gold); box-shadow:0 0 0 3px rgba(200,151,58,.2); }
.order-tl-label { font-size:.72rem; color:var(--warm-gray); }
.order-tl-step.current .order-tl-label { color:var(--gold); font-weight:600; }
.order-tl-step.done .order-tl-label { color:var(--charcoal); }

/* ── ORDER META ── */
.order-meta-grid { display:grid; grid-template-columns:120px 1fr; gap:.4rem 1rem; }

/* ================================================================
   IMAGE UPLOAD SYSTEM
   ================================================================ */

/* ── TABS ── */
.img-tab-bar { display:flex; gap:.3rem; margin-bottom:1rem; border-bottom:1px solid var(--border); padding-bottom:.5rem; }
.img-tab {
  padding:.5rem 1rem; font-family:'Raleway',sans-serif; font-size:.68rem;
  letter-spacing:.1em; text-transform:uppercase; background:none;
  border:1px solid transparent; color:var(--warm-gray); border-radius:4px 4px 0 0;
  transition:all .2s; cursor:pointer;
}
.img-tab:hover { color:var(--charcoal); background:var(--cream); }
.img-tab.active { background:var(--charcoal); color:var(--gold-pale); border-color:var(--charcoal); }

/* ── DROP ZONE ── */
.img-dropzone {
  border:2px dashed var(--border-mid); border-radius:8px;
  padding:2rem 1rem; text-align:center;
  transition:all .25s; background:var(--cream-soft);
  cursor:pointer;
}
.img-dropzone:hover, .img-dropzone.drag-over {
  border-color:var(--gold); background:rgba(200,151,58,.04);
}
.img-dropzone-icon { font-size:2.5rem; margin-bottom:.8rem; }
.img-dropzone-text { font-size:.78rem; color:var(--warm-gray); line-height:1.7; margin-bottom:1rem; }
.img-dropzone-text small { font-size:.65rem; }
.img-browse-btn {
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.7rem 1.5rem; background:var(--charcoal); color:var(--gold-pale);
  font-family:'Raleway',sans-serif; font-size:.68rem; letter-spacing:.18em;
  text-transform:uppercase; border-radius:4px; cursor:pointer; transition:all .25s;
}
.img-browse-btn:hover { background:var(--gold); color:var(--charcoal); }

/* ── CAMERA ── */
.img-camera-wrap { text-align:center; padding:1.5rem .5rem; }
.img-camera-btn {
  display:inline-flex; align-items:center; justify-content:center; gap:.6rem;
  padding:1rem 2rem; background:var(--gold); color:var(--charcoal);
  font-family:'Raleway',sans-serif; font-size:.75rem; letter-spacing:.16em;
  text-transform:uppercase; font-weight:600; border-radius:4px; cursor:pointer;
  transition:background .25s; border:none;
}
.img-camera-btn:hover { background:var(--gold-bright); }

/* ── UPLOAD PROGRESS ── */
.img-upload-progress { margin-top:1rem; }
.img-progress-bar { height:6px; background:var(--border); border-radius:3px; overflow:hidden; margin-bottom:.4rem; }
.img-progress-fill { height:100%; background:var(--gold); border-radius:3px; transition:width .3s ease; }
.img-progress-label { font-size:.65rem; color:var(--warm-gray); }

/* ── IMAGE GALLERY GRID ── */
.img-gallery-grid {
  display:grid; grid-template-columns:repeat(3, 1fr); gap:.6rem;
  margin-top:.8rem;
}
.img-gallery-item {
  position:relative; aspect-ratio:1/1; overflow:hidden;
  border-radius:4px; border:2px solid var(--border);
  background:var(--cream);
}
.img-gallery-item.main { border-color:var(--gold); }
.img-gallery-item img { width:100%; height:100%; object-fit:cover; display:block; }
.img-gallery-badge {
  position:absolute; top:.3rem; left:.3rem;
  background:var(--gold); color:var(--charcoal);
  font-size:.5rem; letter-spacing:.14em; text-transform:uppercase;
  font-weight:700; padding:.15rem .4rem; border-radius:3px;
}
.img-gallery-remove {
  position:absolute; top:.3rem; right:.3rem;
  background:rgba(28,26,22,.75); color:white; border:none;
  width:22px; height:22px; border-radius:50%;
  font-size:.65rem; display:flex; align-items:center; justify-content:center;
  cursor:pointer; opacity:0; transition:opacity .2s;
}
.img-gallery-make-main {
  position:absolute; bottom:.3rem; right:.3rem;
  background:rgba(200,151,58,.9); color:var(--charcoal); border:none;
  width:22px; height:22px; border-radius:50%;
  font-size:.65rem; display:flex; align-items:center; justify-content:center;
  cursor:pointer; opacity:0; transition:opacity .2s;
}
.img-gallery-item:hover .img-gallery-remove,
.img-gallery-item:hover .img-gallery-make-main { opacity:1; }

/* Mobile — always show the buttons (no hover) */
@media(pointer:coarse) {
  .img-gallery-remove, .img-gallery-make-main { opacity:1; }
}

/* ── COST / MARGIN BADGE (admin-only) ── */
.cost-margin-badge {
  display:inline-flex; align-items:center;
  padding:.25rem .7rem; border-radius:12px;
  font-size:.62rem; font-weight:600; letter-spacing:.06em;
  white-space:nowrap; flex-shrink:0;
}
.cost-margin-badge.good { background:#ecfdf5; color:#065f46; }
.cost-margin-badge.ok   { background:#fffbeb; color:#92400e; }
.cost-margin-badge.low  { background:#fef2f2; color:#991b1b; }

/* ── STOCK CONTROL ── */
.stock-badge {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:36px; height:28px; border-radius:6px; padding:0 .6rem;
  font-family:'Playfair Display',serif; font-size:1rem; font-weight:400;
}
.stock-badge.ok  { background:#ecfdf5; color:#065f46; }
.stock-badge.low { background:#fffbeb; color:#92400e; }
.stock-badge.out { background:#fef2f2; color:#991b1b; }
.stock-level-wrap { display:flex; align-items:center; gap:.5rem; }

/* ================================================================
   STOCK CONTROL (Product Form)
   ================================================================ */

/* ── STOCK STATUS BAR ── */
.stock-status-bar {
  display:flex; align-items:center; gap:.8rem;
  padding:.75rem 1rem; border-radius:6px; margin-bottom:1rem;
  font-size:.76rem; border:1px solid;
}
.stock-status-bar.ok  { background:#ecfdf5; border-color:#86efac; color:#065f46; }
.stock-status-bar.low { background:#fffbeb; border-color:#fcd34d; color:#92400e; }
.stock-status-bar.out { background:#fef2f2; border-color:#fca5a5; color:#991b1b; }
.stock-status-icon { font-size:1.2rem; flex-shrink:0; }
.stock-status-bar > div { flex:1; }
.stock-manage-link { font-size:.62rem; letter-spacing:.12em; text-transform:uppercase; color:inherit; font-weight:600; text-decoration:none; white-space:nowrap; flex-shrink:0; }
.stock-manage-link:hover { text-decoration:underline; }

/* ── PURCHASE HISTORY (inline in form) ── */
.stock-purchase-history {
  background:#f9fafb; border:1px solid #e5e7eb;
  padding:.8rem 1rem; border-radius:6px; margin-bottom:1rem;
}
.stock-purchase-row {
  display:flex; flex-wrap:wrap; gap:.4rem .8rem; align-items:center;
  padding:.35rem 0; border-bottom:1px solid #f3f4f6; font-size:.72rem;
}
.stock-purchase-row:last-of-type { border-bottom:none; }
.spr-qty      { font-weight:700; color:var(--charcoal); min-width:2rem; }
.spr-cost     { color:var(--warm-gray); }
.spr-total    { font-weight:600; color:var(--charcoal); }
.spr-date     { color:var(--warm-gray); font-size:.65rem; }
.spr-supplier { color:var(--gold); font-size:.65rem; background:rgba(200,151,58,.08); padding:.1rem .4rem; border-radius:4px; }

/* ── STOCK TABLE BADGES ── */
.stock-level-wrap { display:flex; align-items:center; gap:.5rem; }
.stock-badge {
  display:inline-flex; align-items:center; justify-content:center;
  min-width:36px; height:28px; padding:0 .6rem;
  font-family:'Playfair Display',serif; font-size:1rem;
  border-radius:6px; font-weight:400;
}
.stock-badge.ok  { background:#ecfdf5; color:#065f46; }
.stock-badge.low { background:#fffbeb; color:#92400e; }
.stock-badge.out { background:#fef2f2; color:#991b1b; }

/* ── USER AVATAR CHIP (admin users list) ── */
.user-avatar-chip {
  width:36px; height:36px; border-radius:50%; flex-shrink:0;
  background:var(--charcoal); color:var(--gold-pale);
  display:flex; align-items:center; justify-content:center;
  font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.02em;
}
.user-avatar-chip.admin { background:var(--gold); color:var(--charcoal); }

/* ── PAYMENT NOTICE (checkout) ── */
.payment-notice {
  display:flex; gap:.8rem; align-items:flex-start;
  background:var(--cream); border:1px solid var(--border);
  padding:1rem 1.2rem; border-radius:6px; margin-bottom:1rem;
}
.payment-notice-icon { font-size:1.6rem; flex-shrink:0; }
.payment-notice-title { font-family:'Playfair Display',serif; font-size:.95rem; font-weight:400; margin-bottom:.2rem; }
.payment-notice-body  { font-size:.75rem; color:var(--warm-gray); line-height:1.6; }

/* ── CUSTOM CHECKBOX (reliable across all browsers) ── */
.chk-box {
  width:20px; height:20px; min-width:20px; border:2px solid var(--gold);
  border-radius:3px; display:flex; align-items:center; justify-content:center;
  background:white; transition:background .15s; flex-shrink:0; margin-top:.1rem;
}
.chk-box-checked { background:var(--gold); border-color:var(--gold); }
.chk-wrap { display:flex; align-items:flex-start; gap:.8rem; margin-bottom:1rem; font-size:.74rem; color:var(--warm-gray); line-height:1.6; }

/* ── DISCOUNT CODES ── */
.discount-code-chip {
  display:inline-block; font-family:monospace; font-size:.78rem; font-weight:700;
  letter-spacing:.12em; background:var(--charcoal); color:var(--gold-pale);
  padding:.3rem .7rem; border-radius:4px;
}
.discount-usage-bar { height:4px; background:#e5e7eb; border-radius:2px; margin-top:.3rem; width:80px; }
.discount-usage-fill { height:100%; background:var(--gold); border-radius:2px; }

/* ── MY ORDERS PAGE ── */
.order-card { background:white; border:1px solid var(--border); margin-bottom:1rem; }
.order-card-header { display:flex; justify-content:space-between; align-items:flex-start; padding:1rem 1.2rem; border-bottom:1px solid var(--border); background:var(--cream); }
.order-card-number { font-family:monospace; font-size:.8rem; font-weight:700; color:var(--charcoal); letter-spacing:.06em; }
.order-card-date { font-size:.68rem; color:var(--warm-gray); margin-top:.2rem; }
.order-card-items { padding:.8rem 1.2rem; }
.order-card-item { display:flex; justify-content:space-between; align-items:center; padding:.5rem 0; border-bottom:1px solid var(--border); }
.order-card-item:last-child { border-bottom:none; }
.order-card-footer { display:flex; justify-content:space-between; align-items:center; padding:.8rem 1.2rem; background:var(--cream-soft); border-top:1px solid var(--border); }

/* ── QTY BUTTONS (order item edit) ── */
.qty-btn {
  width:28px; height:28px; border-radius:50%;
  border:1px solid var(--border-mid); background:white;
  font-size:1rem; line-height:1; color:var(--charcoal);
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all .15s; flex-shrink:0;
}
.qty-btn:hover:not(:disabled) { background:var(--gold); border-color:var(--gold); color:var(--charcoal); }
.qty-btn:disabled { opacity:.3; cursor:not-allowed; }

/* ── ORDER ITEM QTY CONTROLS (admin edit) ── */
.qty-btn {
  width:28px; height:28px; border-radius:50%; border:1px solid var(--border-mid);
  background:white; color:var(--charcoal); font-size:1rem; line-height:1;
  display:flex; align-items:center; justify-content:center;
  cursor:pointer; transition:all .2s; flex-shrink:0;
}
.qty-btn:hover:not(:disabled) { background:var(--gold); border-color:var(--gold); color:white; }
.qty-btn:disabled { opacity:.3; cursor:not-allowed; }

/* ── CATEGORY ADMIN ── */
.cat-inactive { opacity:.55; filter:grayscale(.4); }
.admin-cat-card .danger { border-color:rgba(220,38,38,.3); color:#dc2626; }
.admin-cat-card .danger:hover { background:#dc2626; color:white; border-color:#dc2626; }

/* ================================================================
   COOKIE CONSENT BANNER
   ================================================================ */

/* Overlay (dims page when detail panel is open) */
.cookie-overlay {
  position:fixed; bottom:0; left:0; right:0; z-index:9999;
  pointer-events:none;
}
.cookie-overlay-dim::before {
  content:''; position:fixed; inset:0;
  background:rgba(28,26,22,.45); backdrop-filter:blur(2px);
  pointer-events:none;
}

/* Banner base */
.cookie-banner {
  position:relative; pointer-events:all;
  background:var(--charcoal); color:var(--cream-soft);
  border-top:2px solid var(--gold);
  box-shadow:0 -8px 40px rgba(0,0,0,.35);
  font-family:'Raleway',sans-serif;
  transition:all .3s ease;
}

/* ── SIMPLE VIEW ── */
.cookie-simple {
  display:flex; align-items:center; gap:1.2rem;
  padding:1rem 1.5rem; flex-wrap:wrap;
}
.cookie-icon { font-size:1.8rem; flex-shrink:0; }
.cookie-text { flex:1; min-width:200px; }
.cookie-title { font-size:.9rem; font-weight:700; color:var(--gold); margin-bottom:.2rem; }
.cookie-body  { font-size:.72rem; color:rgba(245,240,225,.7); line-height:1.6; }
.cookie-link  { color:var(--gold); text-decoration:underline; }
.cookie-link:hover { opacity:.8; }
.cookie-actions { display:flex; gap:.6rem; flex-shrink:0; flex-wrap:wrap; }

/* ── DETAIL VIEW ── */
.cookie-details { padding:1.5rem; max-height:85vh; overflow-y:auto; }
.cookie-details-header {
  display:flex; justify-content:space-between; align-items:center;
  margin-bottom:1rem;
}
.cookie-close {
  width:32px; height:32px; border-radius:50%; border:1px solid rgba(255,255,255,.2);
  background:none; color:var(--cream-soft); font-size:1rem;
  display:flex; align-items:center; justify-content:center; cursor:pointer;
  transition:all .2s;
}
.cookie-close:hover { background:rgba(255,255,255,.1); }
.cookie-intro {
  font-size:.74rem; color:rgba(245,240,225,.65); line-height:1.7;
  margin-bottom:1.2rem; padding-bottom:1rem;
  border-bottom:1px solid rgba(255,255,255,.1);
}

/* Category rows */
.cookie-category {
  padding:.9rem 0;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.cookie-category:last-of-type { border-bottom:none; }
.cookie-cat-header {
  display:flex; justify-content:space-between; align-items:flex-start; gap:1rem;
}
.cookie-cat-title { font-size:.84rem; font-weight:600; color:var(--cream-soft); margin-bottom:.2rem; }
.cookie-cat-desc  { font-size:.68rem; color:rgba(245,240,225,.55); line-height:1.6; max-width:460px; }
.cookie-toggle-wrap { flex-shrink:0; padding-top:.1rem; }
.cookie-toggle-always {
  font-size:.6rem; letter-spacing:.18em; text-transform:uppercase;
  color:var(--gold); font-weight:600; padding:.3rem .7rem;
  border:1px solid rgba(200,151,58,.3); border-radius:12px;
}

/* Toggle switch */
.cookie-toggle { position:relative; display:inline-block; width:44px; height:24px; cursor:pointer; }
.cookie-toggle input { opacity:0; width:0; height:0; }
.cookie-toggle-slider {
  position:absolute; inset:0; background:rgba(255,255,255,.15);
  border-radius:12px; transition:.3s;
}
.cookie-toggle-slider::before {
  content:''; position:absolute; width:18px; height:18px;
  left:3px; top:3px; background:white; border-radius:50%; transition:.3s;
}
.cookie-toggle input:checked + .cookie-toggle-slider { background:var(--gold); }
.cookie-toggle input:checked + .cookie-toggle-slider::before { transform:translateX(20px); }

/* Actions */
.cookie-details-actions {
  display:flex; gap:.6rem; flex-wrap:wrap; margin-top:1.4rem; padding-top:1rem;
  border-top:1px solid rgba(255,255,255,.1);
}
.cookie-legal {
  font-size:.6rem; color:rgba(245,240,225,.35); margin-top:.8rem; line-height:1.8;
  text-align:center;
}

/* Buttons */
.cookie-btn {
  padding:.6rem 1.2rem; font-family:'Raleway',sans-serif;
  font-size:.62rem; letter-spacing:.16em; text-transform:uppercase;
  font-weight:600; border-radius:2px; cursor:pointer; transition:all .2s;
  white-space:nowrap;
}
.cookie-btn-gold {
  background:var(--gold); color:var(--charcoal); border:1px solid var(--gold);
}
.cookie-btn-gold:hover { background:#d4a43f; }
.cookie-btn-outline {
  background:transparent; color:var(--cream-soft);
  border:1px solid rgba(255,255,255,.25);
}
.cookie-btn-outline:hover { border-color:var(--gold); color:var(--gold); }

/* Re-open button (bottom-right after consent) */
.cookie-reopen-btn {
  position:fixed; bottom:1.5rem; right:1.5rem; z-index:999;
  width:44px; height:44px; border-radius:50%;
  background:var(--charcoal); border:2px solid var(--gold);
  font-size:1.2rem; display:flex; align-items:center; justify-content:center;
  cursor:pointer; box-shadow:0 4px 20px rgba(0,0,0,.3);
  transition:transform .2s; opacity:.75;
}
.cookie-reopen-btn:hover { transform:scale(1.1); opacity:1; }

/* Mobile */
@media(max-width:600px) {
  .cookie-simple  { flex-direction:column; text-align:center; padding:1.2rem 1rem; }
  .cookie-actions { width:100%; justify-content:center; }
  .cookie-details-actions { flex-direction:column; }
  .cookie-btn     { width:100%; text-align:center; }
  .cookie-details { padding:1rem; }
}

/* ── ADMIN MOBILE HEADER & HAMBURGER ── */
.admin-mobile-header {
  display:none;
  position:fixed; top:0; left:0; right:0; z-index:1100;
  padding-top:env(safe-area-inset-top);
  min-height:calc(56px + env(safe-area-inset-top));
  padding-left:1rem; padding-right:1rem; padding-bottom:.5rem;
  background:var(--charcoal); border-bottom:1px solid rgba(200,151,58,.2);
  align-items:flex-end; justify-content:space-between;
}
.admin-mobile-logo {
  font-family:'Playfair Display',serif; font-size:1rem;
  color:var(--gold); letter-spacing:.12em;
}
.admin-mobile-hamburger {
  background:none; border:none; color:var(--gold-pale);
  font-size:1.3rem; padding:.4rem; cursor:pointer;
  display:flex; align-items:center; justify-content:center;
  width:40px; height:40px;
}
.admin-mobile-overlay {
  display:none; position:fixed; inset:0;
  background:rgba(0,0,0,.55); z-index:1150;
}
.admin-content-with-header { padding-top:calc(56px + env(safe-area-inset-top)); }
@media(min-width:769px) {
  .admin-mobile-header  { display:none !important; }
  .admin-mobile-overlay { display:none !important; }
  .admin-content-with-header { padding-top:0; }
}

/* ── SEARCH OVERLAY ── */
.search-overlay {
  position:fixed; inset:0; z-index:600;
  background:rgba(28,26,22,.7); backdrop-filter:blur(4px);
  display:flex; align-items:flex-start; justify-content:center;
  padding-top:calc(var(--nav-h) + env(safe-area-inset-top) + 1rem);
  animation:fadeIn .2s ease;
}
.search-modal {
  width:min(640px, 92vw);
  background:var(--cream-soft);
  border:1px solid var(--border);
  box-shadow:0 20px 60px rgba(0,0,0,.3);
  animation:slideDown .22s ease;
}
.search-modal-inner {
  display:flex; align-items:center; gap:0;
}
.search-modal-input {
  flex:1; padding:.9rem 1.2rem;
  font-family:'Raleway',sans-serif; font-size:1rem;
  border:none; background:transparent; outline:none; color:var(--charcoal);
  min-height:56px;
}
.search-modal-input::placeholder { color:var(--warm-gray); }
.search-modal-btn {
  padding:.9rem 1rem; background:var(--gold); border:none;
  font-size:1.1rem; cursor:pointer; min-height:56px; min-width:52px;
  transition:background .2s;
}
.search-modal-btn:hover { background:#d4a43f; }
.search-modal-close {
  padding:.9rem .8rem; background:none; border:none; border-left:1px solid var(--border);
  color:var(--warm-gray); font-size:1rem; cursor:pointer; min-height:56px; min-width:44px;
  transition:color .2s;
}
.search-modal-close:hover { color:var(--charcoal); }
.search-modal-hint {
  padding:.5rem 1.2rem .6rem;
  font-size:.62rem; letter-spacing:.15em; text-transform:uppercase;
  color:var(--warm-gray); border-top:1px solid var(--border);
}
@keyframes slideDown {
  from { opacity:0; transform:translateY(-12px); }
  to   { opacity:1; transform:translateY(0); }
}

/* ── OUT OF STOCK BADGE ── */
.out-of-stock-badge {
  display:inline-flex; align-items:center; gap:.3rem;
  font-size:.6rem; letter-spacing:.18em; text-transform:uppercase;
  font-weight:600; color:#dc2626; background:#fef2f2;
  border:1px solid #fca5a5; padding:.2rem .7rem; border-radius:12px;
}
.add-cart-btn.btn-disabled,
.add-cart-btn:disabled {
  background:#e5e7eb !important; color:#9ca3af !important;
  border-color:#e5e7eb !important; cursor:not-allowed !important;
  transform:none !important;
}
