/* ══ THEME VARIABLES ══════════════════════════════════ */
:root,
[data-theme="dark"] {
  --noir:      #0C0B08;
  --ombre:     #1E1A12;
  --gold:      #A8945E;
  --champagne: #D4C49A;
  --ivory:     #FAF8F3;
  --muted:     #8A8070;   /* WCAG AA: 5.05:1 against --noir (was #6a6050 = 3.2:1, failed AA) */
  --border:    #2a2418;
  --danger:    #8b3a3a;
  --panel-bg:  #16130D;
  --input-bg:  #0C0B08;
  --card-bg:   #1E1A12;
  --noise-op:  0.5;
  --overlay-bg: rgba(12,11,8,0.85);
  --search-bg: rgba(12,11,8,0.97);
  --cart-bg:   #1E1A12;
  --shadow:    rgba(0,0,0,0.4);
  --theme-transition: background .35s ease, color .35s ease, border-color .35s ease;
}

.story-sig-logo{height:64px;width:auto;object-fit:contain;opacity:0.85;transition:filter .35s ease;}
[data-theme="light"] .story-sig-logo{filter:brightness(0);opacity:0.75;}
[data-theme="light"] {
  --noir:      #F8F5F0;
  --ombre:     #EDE8E0;
  --gold:      #8A6E2A;
  --champagne: #6B5518;
  --ivory:     #3D3833;
  --muted:     #6F6357;   /* WCAG AA: 5.39:1 against --noir light bg (was #9A8E82 = 2.9:1, failed AA) */
  --border:    #D8D0C4;
  --danger:    #b03a3a;
  --panel-bg:  #F0EBE3;
  --input-bg:  #F8F5F0;
  --card-bg:   #EDE8E0;
  --noise-op:  0.25;
  --overlay-bg: rgba(232,226,216,0.92);
  --search-bg: rgba(248,245,240,0.97);
  --cart-bg:   #EDE8E0;
  --shadow:    rgba(100,80,50,0.15);
  --theme-transition: background .35s ease, color .35s ease, border-color .35s ease;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{background:var(--noir);color:var(--ivory);font-family:'Montserrat',sans-serif;font-weight:400;overflow-x:hidden;cursor:none;transition:var(--theme-transition);}

/* CURSOR */
.cursor{position:fixed;width:8px;height:8px;background:var(--gold);border-radius:50%;pointer-events:none;z-index:999999;transform:translate(-50%,-50%);transition:width .2s,height .2s,background .2s;}
/* Position is driven by the rAF lerp in JS — only size/opacity/border transition here */
.cursor-ring{position:fixed;width:32px;height:32px;border:1px solid var(--champagne);border-radius:50%;pointer-events:none;z-index:999998;transform:translate(-50%,-50%);transition:width .3s ease,height .3s ease,opacity .3s ease,border-color .3s ease;opacity:.6;}
body:has(a:hover) .cursor,.cursor.hover{width:16px;height:16px;background:var(--champagne);}
body:has(button:hover) .cursor{width:20px;height:20px;}
/* Ring gently expands + fades over interactive elements */
body:has(a:hover) .cursor-ring,body:has(button:hover) .cursor-ring{width:48px;height:48px;opacity:.35;border-color:var(--gold);}
input,textarea,select{cursor:text;}select{cursor:pointer;}
@keyframes skeletonPulse{0%,100%{opacity:.3;}50%{opacity:.6;}}
@media(max-width:768px){.cursor,.cursor-ring{display:none;}body{cursor:auto;}}
/* Reduced motion / accessibility + low-end relief: kill the decorative
   continuous animations and the custom cursor; keep functional UI
   transitions. Honours the OS "Reduce motion" setting. */
@media(prefers-reduced-motion:reduce){
  .hero-logo-wrap::before,.scroll-chevron,.story-particle,
  .tc-slabel-dot.current,.dp-glow,.strip-inner{animation:none !important;}
  .cursor,.cursor-ring{display:none !important;}
  body{cursor:auto;}
  html{scroll-behavior:auto !important;}
}

/* GRAIN */
body::before{content:'';position:fixed;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");pointer-events:none;z-index:9000;opacity:var(--noise-op);transition:opacity .35s;}

/* ══════════════════════════════════════
   NAV — DESKTOP
══════════════════════════════════════ */
nav {
  position:fixed;top:0;left:0;right:0;z-index:1000;
  padding:24px 48px;
  padding-top:max(24px, env(safe-area-inset-top));
  display:flex;align-items:center;justify-content:space-between;
  background:linear-gradient(to bottom,color-mix(in srgb,var(--noir) 95%,transparent),transparent);
  transition: transform .35s cubic-bezier(.4,0,.2,1), padding .3s, background .3s, border-color .3s;
}
nav.scrolled {
  padding: 16px 48px;
  padding-top:max(16px, env(safe-area-inset-top));
  background: var(--noir);
  border-bottom: 1px solid var(--border);
  /* No backdrop-filter — the background is opaque, so blur was invisible
     yet forced a full-viewport GPU re-blur on every scroll frame. Removing
     it is the single biggest scroll-smoothness win on low-end GPUs. */
}
.nav-brand{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:400;letter-spacing:4px;color:var(--ivory);text-decoration:none;cursor:none;}
.nav-brand span{color:var(--gold);}
.nav-sub{font-family:'DM Sans',sans-serif;font-size:7px;letter-spacing:6px;color:var(--muted);text-transform:uppercase;display:block;text-align:center;font-weight:400;}

/* Desktop links */
.nav-links{display:flex;gap:36px;align-items:center;}
.nav-links a{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--muted);text-decoration:none;transition:color .2s;cursor:none;}
.nav-links a:hover{color:var(--champagne);}

/* Desktop cart */
.nav-cart{position:relative;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--champagne);background:transparent;border:1px solid var(--border);padding:10px 20px;cursor:none;transition:all .25s;}
.nav-cart:hover{background:var(--gold);color:var(--noir);border-color:var(--gold);}
.cart-badge{position:absolute;top:-6px;right:-6px;background:var(--gold);color:var(--noir);border-radius:50%;width:16px;height:16px;font-size:10px;display:none;align-items:center;justify-content:center;font-weight:600;}

/* ══════════════════════════════════════
   MOBILE NAV
══════════════════════════════════════ */
.nav-right { display:flex; align-items:center; gap:16px; }

/* Hamburger */
.hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: flex-end;
  gap: 5px;
  width: 40px;
  height: 40px;
  background: transparent;
  border: 1px solid var(--border);
  padding: 10px;
  cursor: pointer;
  z-index: 1100;
  flex-shrink: 0;
  transition: border-color .2s;
}
.hamburger:hover { border-color: var(--gold); }
.hamburger .bar {
  display: block;
  height: 1px;
  background: var(--champagne);
  transition: all .35s cubic-bezier(.77,0,.18,1);
  transform-origin: right center;
}
.hamburger .bar:nth-child(1) { width: 20px; }
.hamburger .bar:nth-child(2) { width: 14px; }
.hamburger .bar:nth-child(3) { width: 18px; }
.hamburger.open .bar:nth-child(1) { width: 20px; transform: rotate(-45deg) translate(1px, 0); }
.hamburger.open .bar:nth-child(2) { width: 0; opacity: 0; }
.hamburger.open .bar:nth-child(3) { width: 20px; transform: rotate(45deg) translate(1px, 0); }

/* Mobile cart icon (inside hamburger area) */
.mob-cart-btn {
  display: none;
  position: relative;
  background: transparent;
  border: 1px solid var(--border);
  width: 40px;
  height: 40px;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: border-color .2s;
  flex-shrink: 0;
}
.mob-cart-btn:hover { border-color: var(--gold); }
nav.nav--hidden { transform: translateY(-110%); }
.mob-cart-icon { font-size: 14px; color: var(--champagne); display:flex;align-items:center;justify-content:center; }
.mob-cart-badge {
  position: absolute; top: -5px; right: -5px;
  background: var(--gold); color: var(--noir);
  border-radius: 50%; width: 14px; height: 14px;
  font-size: 7px; display: none;
  align-items: center; justify-content: center;
  font-weight: 600;
}

/* ══════════════════════════════════════
   MOBILE MENU OVERLAY
══════════════════════════════════════ */
.mobile-menu {
  position: fixed;
  inset: 0;
  z-index: 1050;
  background: var(--noir);
  display: flex;
  flex-direction: column;
  padding: 0;
  transform: translateX(100%);
  transition: transform .5s cubic-bezier(.77,0,.18,1);
  overflow: hidden;
}
.mobile-menu.open { transform: translateX(0); }

/* Grain on menu too */
.mobile-menu::before {
  content:'';position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");
  pointer-events:none;z-index:0;opacity:.6;
}

.mm-header {
  padding: 24px 28px;
  border-bottom: 1px solid var(--border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  position: relative; z-index: 1;
}
.mm-brand {
  font-family: 'Cormorant Garamond', serif;
  font-size: 20px; letter-spacing: 4px; color: var(--ivory);
}
.mm-brand em { color: var(--gold); font-style: normal; }
.mm-close {
  background: transparent; border: 1px solid var(--border);
  color: var(--muted); width: 36px; height: 36px;
  font-size: 14px; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  transition: all .2s;
}
.mm-close:hover { border-color: var(--gold); color: var(--gold); }

.mm-links {
  flex: 1;
  padding: 40px 28px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
  position: relative; z-index: 1;
}
.mm-link {
  display: block;
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(36px, 8vw, 52px);
  font-weight: 300;
  color: var(--muted);
  text-decoration: none;
  padding: 16px 0;
  border-bottom: 1px solid var(--border);
  cursor: pointer;
  transition: color .25s, padding-left .25s;
  letter-spacing: 1px;
  opacity: 0;
  transform: translateX(40px);
  transition: opacity .4s, transform .4s, color .2s, padding-left .2s;
}
.mm-link:first-child { border-top: 1px solid var(--border); }
.mm-link em { font-style: italic; color: var(--champagne); }
.mm-link:hover { color: var(--ivory); padding-left: 12px; }

.mobile-menu.open .mm-link:nth-child(1) { opacity:1; transform:translateX(0); transition-delay: .15s; }
.mobile-menu.open .mm-link:nth-child(2) { opacity:1; transform:translateX(0); transition-delay: .22s; }
.mobile-menu.open .mm-link:nth-child(3) { opacity:1; transform:translateX(0); transition-delay: .29s; }
.mobile-menu.open .mm-link:nth-child(4) { opacity:1; transform:translateX(0); transition-delay: .36s; }

.mm-footer {
  padding: 28px;
  border-top: 1px solid var(--border);
  position: relative; z-index: 1;
  opacity: 0;
  transform: translateY(16px);
  transition: opacity .4s .45s, transform .4s .45s;
}
.mobile-menu.open .mm-footer { opacity: 1; transform: translateY(0); }

.mm-cart-btn {
  width: 100%;
  background: var(--gold);
  border: 1px solid var(--gold);
  color: var(--noir);
  font-family: 'Montserrat', sans-serif;
  font-size: 10px; letter-spacing: 4px; text-transform: uppercase;
  padding: 18px;
  cursor: pointer;
  transition: all .3s;
  display: flex; align-items: center; justify-content: center; gap: 12px;
}
.mm-cart-btn:hover { background: var(--champagne); border-color: var(--champagne); }
.mm-social { display: flex; gap: 12px; margin-top: 20px; }
.mm-tagline { font-family:'DM Sans',sans-serif; font-size:11px; letter-spacing:5px; color:var(--muted); text-transform:uppercase; margin-top:16px; font-weight:400; }

/* ══════════════════════════════════════
   RESPONSIVE BREAKPOINTS
══════════════════════════════════════ */
@media(max-width:768px) {
  nav { padding: 18px 20px; padding-top:max(18px, env(safe-area-inset-top)); }
  nav.scrolled { padding: 14px 20px; padding-top:max(14px, env(safe-area-inset-top)); }
  .nav-links { display: none; }
  .nav-cart { display: none; }
  .hamburger { display: flex; }
  .mob-cart-btn { display: flex; }
}

/* PAGES */

.sr-wrap{max-width:800px;margin:0 auto;padding:120px 48px 80px;}
.sr-eyebrow{font-size:10px;letter-spacing:5px;color:var(--gold);text-transform:uppercase;margin-bottom:16px;}
.sr-title{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,5vw,58px);font-weight:300;color:var(--ivory);line-height:1.1;margin-bottom:48px;}
.sr-title em{font-style:italic;color:var(--champagne);}
.sr-block{border-top:1px solid var(--border);padding:40px 0;}
.sr-block:last-child{border-bottom:1px solid var(--border);}
.sr-block-icon{font-size:24px;margin-bottom:16px;display:block;}
.sr-block-label{font-size:10px;letter-spacing:4px;color:var(--gold);text-transform:uppercase;margin-bottom:12px;}
.sr-block-title{font-family:'Cormorant Garamond',serif;font-size:26px;font-weight:300;color:var(--ivory);margin-bottom:16px;}
.sr-block-text{font-size:15px;color:var(--muted);line-height:1.85;}
.sr-block-text strong{color:var(--ivory);font-weight:400;}
.sr-note{margin-top:48px;padding:24px 32px;border:1px solid var(--border);background:var(--ombre);}
.sr-note-label{font-size:7px;letter-spacing:4px;color:var(--gold);text-transform:uppercase;margin-bottom:10px;}
.sr-note-text{font-family:'Cormorant Garamond',serif;font-size:16px;color:var(--muted);font-style:italic;line-height:1.8;}
@media(max-width:768px){.sr-wrap{padding:100px 24px 60px;}}

.page{display:none;min-height:100vh;}
.page.active{display:block;}

/* ══════════════════════════════════════
   HOME PAGE
══════════════════════════════════════ */
#home{position:relative;overflow:hidden;}

/* HERO */
.hero{height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;}
#hero-canvas{position:absolute;inset:0;z-index:1;}
.hero-vignette{position:absolute;inset:0;z-index:1;background:radial-gradient(ellipse 55% 55% at 50% 58%, transparent 20%, color-mix(in srgb, var(--noir) 30%, transparent) 60%, color-mix(in srgb, var(--noir) 82%, transparent) 100%);pointer-events:none;transition:background .35s;}
@media(max-width:768px){.hero-vignette{background:radial-gradient(ellipse 70% 50% at 50% 52%, transparent 25%, color-mix(in srgb, var(--noir) 25%, transparent) 60%, color-mix(in srgb, var(--noir) 80%, transparent) 100%);}}
.hero-content{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;text-align:center;pointer-events:none;}
@media(max-width:768px){.hero-content{top:46%;}}
.hero-eyebrow{font-size:11px;letter-spacing:8px;color:var(--gold);text-transform:uppercase;margin-bottom:24px;opacity:0;animation:fadeUp .8s .5s forwards;}
.hero-title{font-family:'Cormorant Garamond',serif;font-size:clamp(56px,10vw,120px);font-weight:300;line-height:.95;letter-spacing:-1px;opacity:0;animation:fadeUp 1s .7s forwards;}
.hero-logo-wrap{display:flex;flex-direction:column;align-items:center;gap:0px;opacity:0;animation:fadeUp 1s .7s forwards;position:relative;}
.hero-logo-wrap::before{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-55%);width:clamp(120px,18vw,200px);height:clamp(120px,18vw,200px);border-radius:50%;background:radial-gradient(circle,rgba(168,148,94,.18) 0%,rgba(168,148,94,.06) 40%,transparent 70%);animation:logoBreath 4s ease-in-out infinite;pointer-events:none;z-index:-1;}
[data-theme="light"] .hero-logo-wrap::before{width:clamp(140px,20vw,220px);height:clamp(140px,20vw,220px);background:radial-gradient(circle,rgba(255,255,255,.5) 0%,rgba(255,255,255,.25) 35%,rgba(255,255,255,.08) 60%,transparent 80%);}
@keyframes logoBreath{0%,100%{opacity:.5;transform:translate(-50%,-55%) scale(1);}50%{opacity:1;transform:translate(-50%,-55%) scale(1.15);}}
.hero-logo{width:clamp(200px,28vw,360px);height:auto;display:block;filter:drop-shadow(0 0 60px rgba(168,148,94,.4)) drop-shadow(0 0 120px rgba(168,148,94,.2)) drop-shadow(0 0 20px rgba(250,248,243,.15));}
.hero-maison-sub{font-family:'DM Sans',sans-serif;font-size:clamp(7px,1vw,10px);letter-spacing:clamp(4px,0.8vw,8px);color:var(--muted);text-transform:uppercase;margin-top:-8px;font-weight:400;white-space:nowrap;text-align:center;transform:translateX(6px);}
@media(max-width:480px){.hero-logo{width:clamp(160px,50vw,220px);}.hero-maison-sub{font-size:6px;letter-spacing:4px;margin-top:-6px;}}
[data-theme="light"] .hero-logo{filter:invert(1) drop-shadow(0 0 60px rgba(168,148,94,.5)) drop-shadow(0 0 120px rgba(168,148,94,.25)) drop-shadow(0 0 20px rgba(250,248,243,.2));}
[data-theme="light"] .nav-brand img,
[data-theme="light"] .footer-brand-name img,
[data-theme="light"] .mm-brand img { filter: invert(1); }
.hero-title em{font-style:italic;color:var(--champagne);}
.pd-pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:32px;padding-top:36px;border-top:1px solid var(--border);}
.pd-pillar{display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px 10px 12px;background:transparent;border:none;}
.pd-pillar-icon{font-size:38px;line-height:1;margin-bottom:16px;display:flex;align-items:center;justify-content:center;height:48px;}
.pd-pillar-title{font-size:11px;letter-spacing:3px;color:var(--gold);text-transform:uppercase;margin-bottom:8px;font-weight:500;}
.pd-pillar-sub{font-family:'Cormorant Garamond',serif;font-size:15px;color:var(--muted);line-height:1.55;font-style:italic;max-width:180px;margin:0 auto;}
@media(max-width:600px){.pd-pillars{grid-template-columns:1fr 1fr;gap:16px;}.pd-pillar-icon{font-size:34px;}}
@media(max-width:380px){.pd-pillars{grid-template-columns:1fr;}.pd-pillar-sub{max-width:240px;}}
.page-back-btn{display:inline-flex;align-items:center;gap:8px;font-size:10px;letter-spacing:3px;color:var(--muted);text-transform:uppercase;cursor:pointer;border:none;background:transparent;padding:0;margin-bottom:32px;transition:color .2s;}
.page-back-btn:hover{color:var(--champagne);}
.hero-maison{font-size:11px;letter-spacing:10px;color:var(--muted);text-transform:uppercase;margin-top:16px;opacity:0;animation:fadeUp .8s .9s forwards;}
@media(max-width:480px){.hero-maison{letter-spacing:4px;font-size:10px;padding:0 20px;}}
.hero-scroll{position:absolute;bottom:40px;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:12px;cursor:pointer;pointer-events:all;}
.hero-scroll span{font-size:10px;letter-spacing:4px;color:var(--muted);text-transform:uppercase;}
.scroll-chevron{width:24px;height:24px;border-right:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(45deg);animation:chevronBob 2s ease-in-out infinite;opacity:.7;}
@keyframes chevronBob{0%,100%{transform:rotate(45deg) translate(0,0);opacity:.5;}50%{transform:rotate(45deg) translate(3px,3px);opacity:1;}}

/* FEATURED PRODUCT SECTION */
.featured{padding:120px 80px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center;max-width:1400px;margin:0 auto;}
@media(max-width:900px){.featured{grid-template-columns:1fr;padding:80px 32px;gap:48px;}}
@media(max-width:480px){.featured{padding:60px 20px;gap:40px;}}

.featured-3d{position:relative;height:500px;}
#bottle-canvas{width:100%;height:100%;display:block;}
.featured-glow{position:absolute;inset:0;background:radial-gradient(ellipse 60% 60% at 50% 60%,rgba(168,148,94,.15),transparent);pointer-events:none;}

.featured-info{padding:24px 0;}
.fi-label{font-size:11px;letter-spacing:5px;color:var(--gold);text-transform:uppercase;margin-bottom:20px;}
.fi-title{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,5vw,56px);font-weight:300;line-height:1.1;margin-bottom:24px;}
.fi-title em{font-style:italic;color:var(--champagne);}
.fi-desc{font-size:12px;color:var(--muted);line-height:2.2;margin-bottom:32px;max-width:420px;}
.fi-notes{display:flex;gap:24px;margin-bottom:40px;}
.note-item{text-align:center;display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;min-width:0;}
.note-icon{font-size:18px;line-height:1;}
.note-label{font-size:10px;letter-spacing:3px;color:var(--champagne);text-transform:uppercase;}
.note-name{font-family:'Cormorant Garamond',serif;font-size:14px;color:var(--ivory);word-wrap:break-word;overflow-wrap:break-word;}
@media(max-width:480px){.note-name{font-size:12px;}.note-label{font-size:7px;letter-spacing:2px;}.fi-notes{gap:12px;}}
.fi-price{font-family:'Montserrat',sans-serif;font-weight:400;font-variant-numeric:tabular-nums lining-nums;letter-spacing:.02em;font-size:28px;color:var(--ivory);margin-bottom:32px;}
.fi-price span{font-size:13px;color:var(--muted);font-family:'Montserrat',sans-serif;font-weight:400;margin-left:8px;}

.btn-primary{background:transparent;border:1px solid var(--gold);color:var(--gold);font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:4px;text-transform:uppercase;padding:18px 48px;cursor:none;transition:all .3s;position:relative;overflow:hidden;}
.btn-primary::before{content:'';position:absolute;inset:0;background:var(--gold);transform:translateX(-101%);transition:transform .3s ease;}
.btn-primary:hover::before{transform:translateX(0);}
.btn-primary span{position:relative;z-index:1;}
.btn-primary:hover span{color:var(--noir);}
@media(max-width:768px){.btn-primary{cursor:pointer;}}

/* CAROUSEL SECTION */
.carousel-section{padding:80px 0 120px;overflow:hidden;}
.cs-header{text-align:center;padding:0 32px;margin-bottom:64px;}
.cs-label{font-size:11px;letter-spacing:6px;color:var(--gold);text-transform:uppercase;margin-bottom:16px;}
.cs-title{font-family:'Cormorant Garamond',serif;font-size:clamp(32px,5vw,52px);font-weight:300;}
.cs-title em{font-style:italic;color:var(--champagne);}

.carousel-track-wrap{position:relative;overflow:hidden;}
.carousel-track{display:flex;gap:24px;padding:0 48px;transition:transform .7s cubic-bezier(.22,.61,.36,1);align-items:stretch;}
.carousel-card:last-of-type{margin-right:48px;}
@media(max-width:768px){
  .carousel-track-wrap{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:none;scroll-snap-type:x mandatory;scroll-behavior:smooth;}
  .carousel-track-wrap::-webkit-scrollbar{display:none;}
  .carousel-track{padding:0;gap:16px;transition:none;}
  .carousel-card:first-of-type{margin-left:48px;}
  .carousel-card:last-of-type{margin-right:48px;}
}

.carousel-card{width:340px;background:var(--ombre);border:none;box-shadow:inset 0 0 0 1px var(--border);border-radius:14px;overflow:hidden;cursor:none;transition:transform .3s,box-shadow .3s;flex-shrink:0;flex-grow:0;scroll-snap-align:start;display:flex;flex-direction:column;}
@media(max-width:480px){.carousel-card{width:280px;}}
.carousel-card:hover{transform:translateY(-8px);box-shadow:inset 0 0 0 1px var(--gold);}
@media(max-width:768px){.carousel-card{cursor:pointer;}}
.cc-visual{height:280px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;flex-shrink:0;}
.cc-bottle{font-size:100px;filter:drop-shadow(0 20px 40px rgba(168,148,94,.3));transition:transform .4s;}
.carousel-card:hover .cc-bottle{transform:scale(1.08) translateY(-8px);}
.cc-glow{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:60%;height:40%;background:radial-gradient(ellipse,rgba(168,148,94,.2),transparent);pointer-events:none;}
.cc-info{padding:28px 28px 32px;flex:1;display:flex;flex-direction:column;}
.cc-badge{position:absolute;top:16px;left:16px;background:color-mix(in srgb, var(--noir) 85%, transparent);border:1px solid var(--border);color:var(--gold);font-size:7px;letter-spacing:3px;text-transform:uppercase;padding:5px 10px;backdrop-filter:blur(4px);}
.cc-tag{font-size:10px;letter-spacing:4px;color:var(--gold);text-transform:uppercase;margin-bottom:8px;}
.cc-name{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:400;margin-bottom:8px;}
.cc-mood{font-family:'Cormorant Garamond',serif;font-size:14px;color:var(--muted);font-style:italic;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.cc-price{font-family:'Montserrat',sans-serif;font-weight:400;font-variant-numeric:tabular-nums lining-nums;letter-spacing:.02em;font-size:17px;color:var(--champagne);}
.cc-btn{margin-top:auto;width:100%;background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:3px;text-transform:uppercase;padding:12px;cursor:none;transition:all .25s;}
.cc-btn:hover{border-color:var(--gold);color:var(--gold);}
@media(max-width:768px){.cc-btn{cursor:pointer;}}

.carousel-nav{display:flex;justify-content:center;gap:16px;margin-top:48px;padding:0 48px;align-items:center;}
.cn-btn{background:transparent;border:1px solid var(--border);color:var(--muted);width:48px;height:48px;cursor:none;transition:all .25s;font-size:16px;position:relative;overflow:hidden;}
.cn-btn::before{content:'';position:absolute;inset:0;background:var(--gold);transform:translateX(-101%);transition:transform .25s ease;}
.cn-btn:hover::before{transform:translateX(0);}
.cn-btn:hover{border-color:var(--gold);color:var(--noir);}
.cn-btn span{position:relative;z-index:1;}
.cn-dots{display:flex;gap:8px;}
@media(max-width:768px){.carousel-nav{display:none;}}
.cn-dot{width:6px;height:6px;background:var(--border);border-radius:50%;transition:all .3s;cursor:none;}
.cn-dot.active{background:var(--gold);width:20px;border-radius:3px;}
@media(max-width:768px){.cn-dot{cursor:pointer;}}

/* BRAND STRIP */
.brand-strip{border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:24px 0;overflow:hidden;}
.strip-inner{display:flex;align-items:center;gap:0;white-space:nowrap;will-change:transform;}
.strip-item{font-family:'DM Sans',sans-serif;font-size:11px;letter-spacing:6px;color:var(--muted);text-transform:uppercase;flex-shrink:0;font-weight:400;line-height:1;padding:0 12px;}
.strip-sep{color:var(--gold);opacity:.5;font-size:11px;line-height:1;flex-shrink:0;padding:0 12px;}
@media(max-width:768px){.strip-item{font-size:10px;letter-spacing:4px;padding:0 8px;}.strip-sep{font-size:10px;padding:0 8px;}}

/* ══════════════════════════════════════
   PRODUCT PAGE
══════════════════════════════════════ */
#product-page{padding-top:100px;}
.product-wrap{max-width:1300px;margin:0 auto;padding:60px 48px;display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;}
@media(max-width:900px){.product-wrap{grid-template-columns:1fr;padding:40px 24px;gap:40px;}}

/* Desktop only: pin the product image while the right-hand details scroll.
   Sticky kicks in when .product-visuals' top hits 90px (just below the fixed
   nav). It stops when .product-wrap's bottom passes 90px — which is exactly
   where the reviews section begins, since reviews are appended AFTER
   .product-wrap. So: image pins → right scrolls → image unpins → page
   continues normally into reviews. Disabled below 901px because the layout
   collapses to a single column there. */
@media(min-width:901px){
  .product-visuals{
    position: sticky;
    top: 90px;
    align-self: start;
  }
}
@media(max-width:480px){.product-wrap{padding:24px 16px;}}

.pv-main{background:var(--ombre);border:1px solid var(--border);height:480px;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden;margin-bottom:16px;transition:background .4s;}
@media(max-width:480px){.pv-main{height:320px;}}
#product-3d-canvas{width:100%;height:100%;display:block;}
#product-img-display{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;object-position:center;display:none;background:var(--ombre);padding:24px;}
#product-img-display.visible{display:block;}
.pv-thumbs{display:flex;gap:12px;}
.pv-thumb{width:80px;height:80px;background:var(--ombre);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:32px;cursor:none;transition:border-color .2s;}
.pv-thumb.active,.pv-thumb:hover{border-color:var(--gold);}

.pd-breadcrumb-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px;position:relative;}
.pd-breadcrumb{font-size:11px;letter-spacing:3px;color:var(--muted);text-transform:uppercase;}
.pd-breadcrumb a{color:var(--muted);text-decoration:none;cursor:none;}
.pd-breadcrumb a:hover{color:var(--champagne);}
/* Share — small circular icon button, matches the maison icon-button language */
.pd-share-btn{
  flex-shrink:0;width:30px;height:30px;
  background:transparent;border:none;color:var(--muted);
  display:inline-flex;align-items:center;justify-content:center;cursor:pointer;
  transition:color .25s,transform .25s;margin-top:-4px;padding:0;
}
.pd-share-btn:hover{color:var(--gold);transform:translateY(-1px);}
.pd-share-btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px;}
/* Desktop fallback menu */
.pd-share-menu{
  position:absolute;top:38px;right:0;z-index:60;min-width:170px;
  background:var(--panel-bg,var(--ombre));border:1px solid var(--border);
  box-shadow:0 16px 40px rgba(0,0,0,.28);
  display:flex;flex-direction:column;
  animation:pdShareIn .2s ease;
}
@keyframes pdShareIn{from{opacity:0;transform:translateY(-6px);}to{opacity:1;transform:translateY(0);}}
.pd-share-opt{
  appearance:none;background:none;border:none;border-bottom:1px solid var(--border);
  color:var(--ivory);font-family:'Montserrat',sans-serif;font-size:11px;
  letter-spacing:2px;text-transform:uppercase;text-align:left;
  padding:13px 18px;cursor:pointer;text-decoration:none;display:block;
  transition:background .2s,color .2s;
}
.pd-share-opt:last-child{border-bottom:none;}
.pd-share-opt:hover{background:rgba(168,148,94,.08);color:var(--gold);}
.pd-tag{font-size:10px;letter-spacing:5px;color:var(--gold);text-transform:uppercase;margin-bottom:12px;}
.pd-name{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,4vw,52px);font-weight:300;line-height:1.1;margin-bottom:16px;}
.pd-name em{font-style:italic;color:var(--champagne);}
.pd-mood{font-family:'Cormorant Garamond',serif;font-size:18px;font-style:italic;color:var(--muted);margin-bottom:32px;}
.pd-rating{display:flex;align-items:center;gap:12px;margin-bottom:32px;}
.pd-stars{color:var(--gold);letter-spacing:3px;font-size:13px;}
.pd-reviews{font-size:11px;color:var(--muted);}
.pd-price{font-family:'Montserrat',sans-serif;font-weight:400;font-variant-numeric:tabular-nums lining-nums;letter-spacing:.02em;font-size:34px;color:var(--ivory);margin-bottom:8px;}
.pd-original{font-size:13px;color:var(--muted);text-decoration:line-through;font-family:'Montserrat',sans-serif;}
.pd-divider{border:none;border-top:1px solid var(--border);margin:32px 0;}
.pd-desc{font-size:12px;color:var(--muted);line-height:2.4;margin-bottom:32px;}

/* Notes pyramid — same visual language as the homepage New Arrivals
   featured section: centred, an emoji icon on top, label, name. No
   bordered box — quieter, more aligned with the rest of the page. */
.pd-notes-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-bottom:32px;}
.pd-note{background:transparent;border:none;padding:14px 8px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;min-width:0;}
.pdn-icon{font-size:24px;line-height:1;margin-bottom:2px;}
.pdn-label{font-size:9px;letter-spacing:3px;color:var(--champagne);text-transform:uppercase;}
.pdn-name{font-family:'Cormorant Garamond',serif;font-size:15px;color:var(--ivory);word-wrap:break-word;overflow-wrap:break-word;line-height:1.35;}

.pd-size{margin-bottom:32px;}
.pd-size-label{font-size:11px;letter-spacing:3px;color:var(--champagne);text-transform:uppercase;margin-bottom:12px;}
.size-opts{display:flex;gap:10px;flex-wrap:wrap;}
.size-opt{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:2px;padding:10px 20px;cursor:none;transition:all .2s;}
.size-opt.active,.size-opt:hover{border-color:var(--gold);color:var(--gold);}
@media(max-width:768px){.size-opt{cursor:pointer;}}

.pd-qty{display:flex;align-items:center;gap:0;margin-bottom:32px;border:1px solid var(--border);width:fit-content;}
.qty-btn{background:transparent;color:var(--champagne);border:none;width:44px;height:44px;font-size:16px;cursor:none;transition:background .2s;}
.qty-btn:hover{background:var(--ombre);}
@media(max-width:768px){.qty-btn{cursor:pointer;}}
.qty-val{width:48px;text-align:center;font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--ivory);border-left:1px solid var(--border);border-right:1px solid var(--border);height:44px;line-height:44px;}

.pd-actions{display:flex;gap:12px;margin-bottom:32px;flex-wrap:wrap;}
.btn-add{flex:1;background:var(--gold);border:1px solid var(--gold);color:var(--noir);font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:4px;text-transform:uppercase;padding:18px 32px;cursor:none;transition:all .3s;min-width:200px;}
.btn-add:hover{background:var(--champagne);border-color:var(--champagne);}
@media(max-width:768px){.btn-add{cursor:pointer;}}
.btn-wish{background:transparent;border:1px solid var(--border);color:var(--muted);font-size:18px;width:56px;height:56px;cursor:none;transition:all .2s;}
.btn-wish:hover{border-color:var(--gold);color:var(--gold);}
@media(max-width:768px){.btn-wish{cursor:pointer;}}

.pd-perks{display:flex;flex-direction:column;gap:12px;}
.perk{display:flex;align-items:center;gap:12px;font-size:11px;color:var(--muted);}
.perk-icon{color:var(--gold);font-size:14px;}

/* ══════════════════════════════════════
   CART PANEL
══════════════════════════════════════ */
.cart-overlay{position:fixed;top:0;left:0;right:0;bottom:0;width:100%;height:100%;background:rgba(0,0,0,0.9);z-index:2000;opacity:0;pointer-events:none;transition:opacity .3s;}
.cart-overlay.open{opacity:1;pointer-events:all;}
.cart-panel{position:fixed;top:0;right:0;bottom:0;width:420px;height:100%;background:var(--noir);border-left:1px solid var(--border);z-index:2001;transform:translateX(100%);transition:transform .4s cubic-bezier(.25,.46,.45,.94);display:flex;flex-direction:column;overflow-y:auto;}
@media(max-width:480px){.cart-panel{width:100%;left:0;right:0;}}
.cart-overlay.open .cart-panel{transform:translateX(0);}

.cart-header{padding:32px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;}
.ch-title{font-family:'Cormorant Garamond',serif;font-size:24px;font-weight:300;}
.ch-close{background:transparent;border:1px solid var(--border);color:var(--muted);width:36px;height:36px;cursor:pointer;font-size:16px;transition:all .2s;}
.ch-close:hover{border-color:var(--gold);color:var(--gold);}

.cart-items{flex:1;overflow-y:auto;padding:24px 32px;}
.cart-empty{text-align:center;padding:60px 24px;}
.ce-icon{font-size:48px;margin-bottom:16px;opacity:.3;}
.ce-text{font-family:'Cormorant Garamond',serif;font-size:20px;color:var(--muted);font-style:italic;}

.cart-item{display:flex;gap:16px;padding:20px 0;border-bottom:1px solid var(--border);}
.ci-img{width:64px;height:64px;background:var(--noir);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:28px;flex-shrink:0;}
.ci-info{flex:1;}
.ci-name{font-family:'Cormorant Garamond',serif;font-size:17px;margin-bottom:4px;}
.ci-meta{font-size:10px;color:var(--muted);letter-spacing:1px;margin-bottom:8px;}
.ci-price{font-family:'Montserrat',sans-serif;font-weight:400;font-variant-numeric:tabular-nums lining-nums;letter-spacing:.02em;font-size:15px;color:var(--champagne);}
.ci-qty-wrap{display:flex;align-items:center;gap:0;margin-bottom:8px;}
.ci-qty-btn{width:26px;height:26px;background:transparent;border:1px solid var(--border);color:var(--muted);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s;font-family:'Montserrat',sans-serif;}
.ci-qty-btn:hover{border-color:var(--gold);color:var(--gold);}
.ci-qty-val{width:32px;height:26px;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--ivory);letter-spacing:1px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);}
.ci-remove{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:16px;padding:4px;transition:color .2s;align-self:flex-start;}
.ci-remove:hover{color:var(--gold);}

.cart-footer{padding:24px 32px;border-top:1px solid var(--border);}
.cf-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;}
.cf-label{font-size:11px;color:var(--muted);letter-spacing:2px;text-transform:uppercase;}
.cf-total{font-family:'Montserrat',sans-serif;font-weight:400;font-variant-numeric:tabular-nums lining-nums;letter-spacing:.02em;font-size:24px;color:var(--ivory);}
.btn-checkout{width:100%;background:var(--gold);border:1px solid var(--gold);color:var(--noir);font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:4px;text-transform:uppercase;padding:18px;cursor:pointer;transition:all .3s;margin-top:16px;}
.btn-checkout:hover{background:var(--champagne);border-color:var(--champagne);}
.cf-note{font-size:11px;color:var(--muted);text-align:center;margin-top:12px;letter-spacing:1px;}

/* ══════════════════════════════════════
   CHECKOUT MODAL
══════════════════════════════════════ */
.checkout-overlay {
  position:fixed;inset:0;background:var(--overlay-bg);
  z-index:3000;opacity:0;pointer-events:none;
  transition:opacity .3s;backdrop-filter:blur(8px);
  display:flex;align-items:center;justify-content:center;padding:20px;
}
.checkout-overlay.open{opacity:1;pointer-events:all;}
.checkout-modal {
  background:var(--ombre);border:1px solid var(--border);
  width:100%;max-width:540px;max-height:90vh;overflow-y:auto;
  transform:translateY(24px);transition:transform .4s;
}
.checkout-overlay.open .checkout-modal{transform:translateY(0);}

.cm-header{padding:28px 32px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;}
.cm-title{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:300;}
.cm-close{background:transparent;border:1px solid var(--border);color:var(--muted);width:32px;height:32px;cursor:pointer;font-size:14px;transition:all .2s;display:flex;align-items:center;justify-content:center;}
.cm-close:hover{border-color:var(--gold);color:var(--gold);}

.cm-body{padding:28px 32px;}
.cm-section-title{font-size:10px;letter-spacing:5px;color:var(--gold);text-transform:uppercase;margin-bottom:20px;}
.cm-order-summary{background:var(--noir);border:1px solid var(--border);padding:20px;margin-bottom:28px;}
.cm-item{display:flex;justify-content:space-between;align-items:center;padding:10px 0;border-bottom:none;font-size:11px;}
.cm-item:last-child{border-bottom:none;}
.cm-item-name{color:var(--ivory);font-family:'Cormorant Garamond',serif;font-size:15px;}
.cm-item-meta{color:var(--muted);font-size:10px;margin-top:2px;}
.cm-item-price{color:var(--champagne);font-family:'Cormorant Garamond',serif;font-size:15px;white-space:nowrap;}
.cm-total-row{display:flex;justify-content:space-between;align-items:center;padding-top:18px;margin-top:10px;border-top:1px solid var(--border);}
.cm-total-label{font-size:10px;letter-spacing:3px;color:var(--muted);text-transform:uppercase;}
.cm-total-val{font-family:'Cormorant Garamond',serif;font-size:24px;color:var(--ivory);}

.cform{display:flex;flex-direction:column;gap:16px;}
.cfield{display:flex;flex-direction:column;gap:7px;}
.cfield-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.clabel{font-size:10px;letter-spacing:4px;color:var(--gold);text-transform:uppercase;}
.cfield input,.cfield select,.cfield textarea{
  background:var(--noir);border:1px solid var(--border);
  color:var(--ivory);font-family:'Montserrat',sans-serif;
  font-size:13px;font-weight:400;padding:13px 15px;
  outline:none;transition:border-color .2s;width:100%;
}
.cfield input:focus,.cfield select:focus,.cfield textarea:focus{border-color:var(--gold);}
.cfield input::placeholder,.cfield textarea::placeholder{color:var(--muted);}
.cfield select{color:var(--muted);}
.cfield select option{background:var(--noir);}

.payment-opts{display:flex;flex-direction:column;gap:10px;margin-bottom:8px;}
.pay-opt{display:flex;align-items:center;gap:12px;padding:14px 16px;border:1px solid var(--border);cursor:pointer;transition:border-color .2s;}
.pay-opt:hover,.pay-opt.selected{border-color:var(--gold);}
.pay-opt input{accent-color:var(--gold);}
.pay-opt-label{font-size:11px;color:var(--ivory);letter-spacing:1px;}
.pay-opt-sub{font-size:11px;color:var(--muted);margin-top:-6px;}

.btn-place-order {
  width:100%;background:var(--gold);border:1px solid var(--gold);
  color:var(--noir);font-family:'Montserrat',sans-serif;
  font-size:10px;letter-spacing:4px;text-transform:uppercase;
  padding:18px;cursor:pointer;transition:all .3s;margin-top:24px;
}
.btn-place-order:hover{background:var(--champagne);border-color:var(--champagne);}

/* Order success */
.order-success{text-align:center;padding:48px 32px;}
.os-icon{font-size:48px;margin-bottom:20px;}
.os-title{font-family:'Cormorant Garamond',serif;font-size:28px;margin-bottom:12px;}
.os-sub{font-size:11px;color:var(--muted);line-height:2;margin-bottom:8px;}
.os-order-num{font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--champagne);margin:20px 0;}
.os-btn{margin-top:24px;background:transparent;border:1px solid var(--gold);color:var(--gold);font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:4px;text-transform:uppercase;padding:14px 32px;cursor:pointer;transition:all .3s;}
.os-btn:hover{background:var(--gold);color:var(--noir);}

/* TOAST */
.toast{position:fixed;bottom:32px;left:50%;transform:translateX(-50%) translateY(20px);background:var(--gold);color:var(--noir);font-size:10px;letter-spacing:3px;text-transform:uppercase;padding:14px 28px;opacity:0;transition:all .3s;z-index:9999;pointer-events:none;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}

/* FOOTER */
/* ── NEWSLETTER / INNER CIRCLE ── */
.nl-section{padding:100px 48px;text-align:center;border-top:none;border-bottom:1px solid var(--border);background:var(--noir);}
.nl-divider{display:flex;align-items:center;justify-content:center;gap:0;padding:48px 0 0;background:var(--noir);}
.nl-divider-line{width:80px;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.4;flex-shrink:0;}
.nl-divider-star{font-size:10px;color:var(--gold);opacity:.6;line-height:1;width:32px;text-align:center;flex-shrink:0;}
[data-theme="light"] .nl-section{background:#F8F5F0;}
[data-theme="light"] .nl-divider{background:#F8F5F0;}
[data-theme="light"] .nl-input-wrap{border-color:#C8BBA8;}
[data-theme="light"] .nl-input-wrap input{color:#3D3833;}
[data-theme="light"] .nl-note{color:#8A6E2A;}
.nl-inner{max-width:560px;margin:0 auto;}
.nl-eyebrow{font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:8px;color:var(--gold);text-transform:uppercase;margin-bottom:20px;}
.nl-title{font-family:'Cormorant Garamond',serif;font-size:clamp(32px,5vw,48px);font-weight:300;line-height:1.1;margin-bottom:20px;}
.nl-title em{font-style:italic;color:var(--champagne);}
.nl-desc{font-size:12px;color:var(--muted);line-height:2;margin-bottom:32px;max-width:440px;margin-left:auto;margin-right:auto;}
.nl-form{margin-bottom:16px;}
.nl-input-wrap{display:flex;gap:0;border:1px solid var(--border);transition:border-color .3s;}
.nl-input-wrap:focus-within{border-color:var(--gold);}
.nl-input-wrap input{flex:1;background:transparent;border:none;color:var(--ivory);font-family:'Montserrat',sans-serif;font-size:13px;font-weight:400;padding:16px 20px;outline:none;letter-spacing:1px;}
.nl-input-wrap input::placeholder{color:var(--muted);}
.nl-submit{background:var(--gold);border:none;color:var(--noir);font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:4px;text-transform:uppercase;padding:16px 28px;cursor:pointer;transition:all .25s;white-space:nowrap;}
.nl-submit:hover:not(:disabled){background:var(--champagne);}
.nl-submit:disabled{opacity:.3;cursor:not-allowed;}
.nl-note{font-size:11px;color:var(--gold);letter-spacing:2px;opacity:.7;}
@media(max-width:768px){.nl-section{padding:72px 24px;}.nl-desc{font-size:11px;}}
@media(max-width:480px){.nl-section{padding:56px 20px;}.nl-input-wrap{flex-direction:column;}.nl-submit{width:100%;padding:14px;}}

/* ── CREATORS PAGE ── */
.creators-wrap{max-width:700px;margin:0 auto;padding:120px 64px 100px;position:relative;z-index:1;}
.creators-desc{font-size:15px;color:var(--muted);line-height:1.95;margin-bottom:48px;text-align:center;}
.creators-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:48px;}
.creators-card{border:1px solid var(--border);padding:24px;text-align:center;}
.creators-card-title{font-size:10px;letter-spacing:3px;color:var(--gold);text-transform:uppercase;margin-bottom:8px;}
.creators-card-desc{font-size:11px;color:var(--muted);line-height:1.8;}
.creators-form-section{border-top:1px solid var(--border);padding-top:48px;margin-bottom:48px;}
.creators-form-eyebrow{font-size:11px;letter-spacing:6px;color:var(--gold);text-transform:uppercase;text-align:center;margin-bottom:24px;}
.creators-note{font-size:10px;color:var(--muted);text-align:center;line-height:2;opacity:.6;}
@media(max-width:768px){
  .creators-wrap{padding:100px 32px 80px;}
  .creators-desc{font-size:12px;line-height:2;}
  .creators-grid{gap:12px;}
  .creators-card{padding:20px 16px;}
  .creators-card-title{font-size:11px;letter-spacing:2px;}
  .creators-card-desc{font-size:10px;}
  #creators-page .story-headline{font-size:clamp(48px,10vw,64px);}
  #creators-page .story-pull{font-size:clamp(20px,4vw,28px);padding-left:20px;}
  #creators-page .story-eyebrow{font-size:7px;letter-spacing:6px;}
}
@media(max-width:480px){
  .creators-wrap{padding:90px 20px 60px;}
  .creators-grid{grid-template-columns:1fr;gap:12px;}
  .creators-card{padding:20px;}
  .creators-desc{font-size:11px;}
  .creators-form-section{padding-top:36px;margin-bottom:36px;}
  .creators-form-section .btn-primary{width:100%;padding:16px 24px;font-size:11px;letter-spacing:3px;}
  #creators-page .story-headline{font-size:clamp(44px,12vw,60px);letter-spacing:-1px;}
  #creators-page .story-headline-line2{padding-left:clamp(16px,4vw,32px);}
  #creators-page .story-pull{font-size:clamp(18px,4.5vw,24px);padding-left:16px;margin-bottom:32px;}
}

/* ── MAISON PRIVÉE PAGE ── */
.privee-wrap{max-width:800px;margin:0 auto;padding:140px 64px 100px;position:relative;z-index:1;}
.privee-intro{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--muted);line-height:2;text-align:center;max-width:600px;margin:0 auto;}
.privee-spacer{height:80px;}
.privee-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;}
.privee-card{border:1px solid var(--border);padding:40px 32px;text-align:center;transition:border-color .3s;}
.privee-card:hover{border-color:var(--gold);}
.privee-card-icon{margin-bottom:20px;opacity:.7;}
.privee-card-title{font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:4px;color:var(--gold);text-transform:uppercase;margin-bottom:16px;}
.privee-card-line{width:24px;height:1px;background:var(--gold);opacity:.3;margin:0 auto 16px;}
.privee-card-desc{font-family:'Cormorant Garamond',serif;font-size:14px;color:var(--muted);line-height:1.9;}
.privee-pull{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,3vw,32px);font-weight:300;font-style:italic;color:var(--ivory);line-height:1.5;text-align:center;max-width:500px;margin:0 auto;}
.privee-pull em{color:var(--gold);font-style:normal;}
.privee-form-section{border-top:1px solid var(--border);padding-top:64px;}
.privee-form-eyebrow{font-size:11px;letter-spacing:6px;color:var(--gold);text-transform:uppercase;text-align:center;margin-bottom:32px;}
.privee-note{font-size:10px;color:var(--muted);text-align:center;line-height:2;opacity:.6;}
@media(max-width:768px){
  .privee-wrap{padding:100px 32px 80px;}
  #privee-page .story-headline{font-size:clamp(48px,10vw,64px);}
  .privee-intro{font-size:16px;}
  .privee-spacer{height:56px;}
  .privee-grid{gap:16px;}
  .privee-card{padding:28px 24px;}
  .privee-card-desc{font-size:13px;}
  .privee-pull{font-size:clamp(20px,5vw,28px);}
}
@media(max-width:480px){
  .privee-wrap{padding:90px 20px 60px;}
  .privee-grid{grid-template-columns:1fr;gap:14px;}
  .privee-card{padding:24px 20px;}
  .privee-intro{font-size:14px;}
  .privee-spacer{height:40px;}
  .privee-form-section{padding-top:40px;}
  .privee-form-section .btn-primary{width:100%;padding:16px 24px;font-size:11px;letter-spacing:3px;}
  #privee-page .story-headline{font-size:clamp(44px,12vw,60px);letter-spacing:-1px;}
}

footer{border-top:1px solid var(--border);padding:80px 80px 48px;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;width:100%;box-sizing:border-box;}
@media(max-width:900px){footer{grid-template-columns:1fr 1fr;padding:60px 32px 40px;}}
@media(max-width:480px){footer{grid-template-columns:1fr;padding:48px 20px 32px;gap:32px;}}
.footer-brand-name{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:300;letter-spacing:4px;margin-bottom:8px;}
.footer-brand-name em{color:var(--gold);}
.footer-tagline{font-size:11px;color:var(--muted);font-style:italic;font-family:'Cormorant Garamond',serif;margin-bottom:24px;}
.footer-social{display:flex;gap:12px;}
.social-btn{width:36px;height:36px;border:1px solid var(--border);display:flex;align-items:center;justify-content:center;color:var(--muted);font-size:13px;text-decoration:none;cursor:pointer;transition:all .2s;}
.social-btn:hover{border-color:var(--gold);color:var(--gold);}
.footer-col-title{font-size:11px;letter-spacing:4px;color:var(--gold);text-transform:uppercase;margin-bottom:20px;}
.footer-links{display:flex;flex-direction:column;gap:10px;}
.footer-links a{font-size:11px;color:var(--muted);text-decoration:none;cursor:pointer;transition:color .2s;letter-spacing:1px;}
.footer-links a:hover{color:var(--champagne);}
/* Ornamental footer wordmark — large calligraphic flourish above the copyright line.
   Uses Italianno (loaded via Google Fonts) which renders true script swashes
   without needing OpenType features that Google Fonts strips. Falls back to
   Cormorant Garamond italic if Italianno fails to load. */
.footer-ornament{
  font-family:'Italianno','Cormorant Garamond',serif;
  font-weight:400;font-style:normal;
  font-size:clamp(54px,11vw,148px);
  line-height:.95;letter-spacing:.005em;
  /* Match the copyright bar's text colour so the whole footer reads as one palette */
  color:var(--muted);opacity:1;
  text-align:center;width:100%;
  padding:18px 24px 28px;margin:0;
  user-select:none;-webkit-font-smoothing:antialiased;
  white-space:nowrap;overflow:hidden;text-overflow:clip;
}
@media(max-width:768px){
  .footer-ornament{font-size:clamp(42px,13vw,88px);padding:12px 16px 18px;}
}
@media(max-width:480px){
  .footer-ornament{font-size:clamp(34px,15vw,66px);padding:10px 12px 14px;letter-spacing:0;}
}
.footer-bottom{padding:24px 80px;display:flex;justify-content:space-between;align-items:center;width:100%;box-sizing:border-box;}
.fb-payments{display:flex;gap:6px;align-items:center;}
.fb-payments svg{opacity:.7;transition:opacity .3s;}
.fb-payments svg:hover{opacity:1;}
@media(max-width:600px){.footer-bottom{padding:20px 20px;flex-direction:column;gap:12px;text-align:center;}}
.fb-copy{font-size:11px;color:var(--muted);letter-spacing:2px;}

/* PRODUCT IMAGE CAROUSEL */
.pv-img-thumbs{display:flex;gap:8px;padding:10px 10px 0;background:var(--ombre);justify-content:center;flex-wrap:wrap;}
.pv-img-thumb{width:56px;height:56px;border:1px solid var(--border);cursor:pointer;transition:border-color .2s;background-size:cover;background-position:center;flex-shrink:0;}
.pv-img-thumb.active,.pv-img-thumb:hover{border-color:var(--gold);}
.pv-arrow{position:absolute;top:50%;transform:translateY(-50%);background:color-mix(in srgb,var(--noir) 55%,transparent);border:1px solid var(--border);color:var(--ivory);width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;z-index:10;transition:all .2s;backdrop-filter:blur(6px);}
.pv-arrow:hover{background:var(--gold);color:var(--noir);border-color:var(--gold);}
.pv-arrow.left{left:12px;}
.pv-arrow.right{right:12px;}
[data-theme="light"] .pv-arrow{background:rgba(255,255,255,0.75);border-color:rgba(180,165,140,0.4);color:var(--text-dark,#3D3833);}
[data-theme="light"] .pv-arrow:hover{background:var(--gold);color:#fff;border-color:var(--gold);}
.pv-dot-wrap{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:10;}
.pv-dot{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.35);transition:background .2s;cursor:pointer;}
.pv-dot.active{background:var(--gold);}
[data-theme="light"] .pv-dot{background:rgba(100,80,60,.25);}
[data-theme="light"] .pv-dot.active{background:var(--gold);}

/* ANIMATIONS */
@keyframes fadeUp{from{opacity:0;transform:translateY(20px);}to{opacity:1;transform:translateY(0);}}
@keyframes pulse{0%,100%{opacity:.3;}50%{opacity:1;}}


.reveal{opacity:0;transform:translateY(32px);transition:opacity .8s ease,transform .8s ease;}
.reveal.visible{opacity:1;transform:translateY(0);}

/* FEATURED IMAGE */
.featured-img-wrap{width:100%;height:500px;position:relative;overflow:hidden;background:transparent;}
.featured-img-wrap img{width:100%;height:100%;object-fit:contain;object-position:center;background:transparent;}
@media(max-width:480px){.featured-img-wrap{height:320px;}}
.feat-img-arrow{position:absolute;top:50%;transform:translateY(-50%);background:color-mix(in srgb,var(--noir) 65%,transparent);border:1px solid var(--border);color:var(--champagne);width:40px;height:40px;display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:16px;transition:all .25s;z-index:3;backdrop-filter:blur(4px);}
.feat-img-arrow:hover{border-color:var(--gold);color:var(--gold);}
.feat-img-arrow.prev{left:12px;}
.feat-img-arrow.next{right:12px;}
[data-theme="light"] .feat-img-arrow{background:rgba(255,255,255,0.75);border-color:rgba(180,165,140,0.4);color:#3D3833;}
[data-theme="light"] .feat-img-arrow:hover{background:var(--gold);color:#fff;border-color:var(--gold);}
.feat-img-dots{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);display:flex;gap:6px;z-index:3;}
.feat-img-dot{width:5px;height:5px;border-radius:50%;background:var(--muted);transition:all .25px;cursor:pointer;}
.feat-img-dot.active{background:var(--gold);width:14px;border-radius:3px;}

/* STORY PAGE */
/* ── STORY PAGE — ULTRA LUXURY REDESIGN ── */
.story-page-inner{position:relative;min-height:100vh;overflow:hidden;}

/* Atmospheric background layers */
.story-bg{position:fixed;inset:0;pointer-events:none;z-index:0;}
.story-bg-grad{position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(168,148,94,.07) 0%,transparent 70%),radial-gradient(ellipse 60% 40% at 80% 80%,rgba(168,148,94,.04) 0%,transparent 60%),var(--bg);}
.story-bg-lines{position:absolute;inset:0;background-image:repeating-linear-gradient(0deg,transparent,transparent 79px,rgba(168,148,94,.03) 80px);opacity:.6;}
.story-bg-vignette{position:absolute;inset:0;background:radial-gradient(ellipse 100% 100% at 50% 50%,transparent 40%,rgba(0,0,0,.5) 100%);}

.story-wrap{position:relative;z-index:1;max-width:900px;margin:0 auto;padding:120px 64px 100px;}

.story-back{margin-bottom:64px;}
.story-back a{font-size:10px;letter-spacing:4px;text-transform:uppercase;color:var(--muted);text-decoration:none;cursor:pointer;transition:color .3s,letter-spacing .3s;}
.story-back a:hover{color:var(--champagne);letter-spacing:6px;}

/* Eyebrow */
.story-eyebrow{display:flex;align-items:center;gap:16px;font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:10px;color:var(--gold);text-transform:uppercase;margin-bottom:24px;font-weight:400;opacity:0;animation:storyFadeUp .8s ease forwards .1s;}
.story-eyebrow::before,.story-eyebrow::after{content:'';flex:1;height:1px;background:linear-gradient(90deg,transparent,var(--gold),transparent);opacity:.4;}

/* Giant headline */
.story-headline{font-family:'Cormorant Garamond',serif;font-size:clamp(64px,10vw,130px);font-weight:300;line-height:.88;margin-bottom:0;letter-spacing:-2px;opacity:0;animation:storyFadeUp .9s ease forwards .2s;}
.story-headline-line1{display:block;color:var(--ivory);}
.story-headline-line2{display:block;font-style:italic;color:var(--gold);padding-left:clamp(32px,6vw,96px);}

/* Horizontal rule after headline */
.story-rule{display:flex;align-items:center;gap:20px;margin:48px 0 64px;opacity:0;animation:storyFadeUp .7s ease forwards .35s;}
.story-rule-line{flex:1;height:1px;background:linear-gradient(90deg,var(--gold),transparent);opacity:.3;}
.story-rule-diamond{color:var(--gold);font-size:10px;letter-spacing:4px;white-space:nowrap;text-align:center;line-height:1;}

/* Opening statement — massive pull quote */
.story-pull{font-family:'Cormorant Garamond',serif;font-size:clamp(26px,3.5vw,42px);font-weight:300;font-style:italic;color:var(--ivory);line-height:1.3;letter-spacing:.3px;border-left:1px solid var(--gold);padding-left:32px;margin-bottom:64px;opacity:0;animation:storyFadeUp .8s ease forwards .45s;}
.story-pull em{color:var(--gold);font-style:normal;}

/* Body text columns */
.story-columns{display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-bottom:64px;opacity:0;animation:storyFadeUp .8s ease forwards .6s;}
.story-col p{font-size:15px;color:var(--muted);line-height:1.95;letter-spacing:.3px;}
.story-col p+p{margin-top:24px;}

/* Centre divider with roman numeral */
.story-center-break{text-align:center;margin:16px 0 64px;opacity:0;animation:storyFadeUp .7s ease forwards .75s;}
.story-roman{font-family:'Cormorant Garamond',serif;font-size:11px;letter-spacing:12px;color:var(--gold);opacity:.6;text-transform:uppercase;}
.story-center-ornament{display:flex;align-items:center;justify-content:center;gap:24px;margin-top:16px;}
.story-center-ornament span{display:inline-block;width:40px;height:1px;background:linear-gradient(90deg,transparent,var(--gold));opacity:.3;}
.story-center-ornament em{color:var(--gold);font-style:normal;font-size:14px;}
.story-center-ornament span:last-child{background:linear-gradient(90deg,var(--gold),transparent);}

/* Philosophy statement — full width */
.story-philosophy{font-family:'Cormorant Garamond',serif;font-size:clamp(18px,2.2vw,28px);font-weight:300;color:var(--ivory);line-height:1.7;text-align:center;max-width:640px;margin:0 auto 80px;opacity:0;animation:storyFadeUp .8s ease forwards .85s;}
.story-philosophy em{font-style:italic;color:var(--champagne);}

/* Closing manifesto line */
.story-manifesto{position:relative;padding:48px 0;border-top:1px solid rgba(168,148,94,.15);border-bottom:1px solid rgba(168,148,94,.15);margin-bottom:64px;text-align:center;opacity:0;animation:storyFadeUp .8s ease forwards 1s;}
.story-manifesto-text{font-family:'Cormorant Garamond',serif;font-size:clamp(22px,3vw,36px);font-style:italic;color:var(--ivory);line-height:1.4;letter-spacing:.5px;}
.story-manifesto-text em{color:var(--gold);font-style:normal;}

/* Signature */
.story-sig{display:flex;align-items:flex-end;justify-content:space-between;opacity:0;animation:storyFadeUp .8s ease forwards 1.1s;}
.story-sig-left{}
.story-brand{font-family:'Cormorant Garamond',serif;font-size:clamp(36px,5vw,52px);letter-spacing:6px;color:var(--ivory);font-weight:300;font-style:italic;}
.story-maison{font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:6px;color:var(--gold);text-transform:uppercase;margin-top:8px;font-weight:400;opacity:.7;}
.story-sig-right{text-align:right;}
.story-year{font-family:'Cormorant Garamond',serif;font-size:clamp(48px,6vw,80px);color:rgba(168,148,94,.12);font-weight:300;line-height:1;letter-spacing:-2px;}

/* Animations */
@keyframes storyFadeUp{from{opacity:0;transform:translateY(24px);}to{opacity:1;transform:translateY(0);}}

/* Floating gold particles */
.story-particle{position:fixed;pointer-events:none;z-index:0;width:1px;height:1px;background:var(--gold);border-radius:50%;animation:particleDrift linear infinite;opacity:0;}
@keyframes particleDrift{0%{opacity:0;transform:translateY(100vh) translateX(0);}10%{opacity:.4;}90%{opacity:.2;}100%{opacity:0;transform:translateY(-10vh) translateX(20px);}}

/* CONTACT PAGE */
.contact-wrap{max-width:1100px;margin:0 auto;padding:120px 48px 80px;}
@media(max-width:480px){.contact-wrap{padding:100px 20px 60px;}}
.contact-header{margin-bottom:64px;}
.contact-grid{display:grid;grid-template-columns:320px 1fr;gap:64px;align-items:start;}
@media(max-width:800px){.contact-grid{grid-template-columns:1fr;gap:40px;}}
.contact-info{display:flex;flex-direction:column;gap:28px;}
.ci-block{border-bottom:1px solid var(--border);padding-bottom:24px;}
.ci-icon{font-size:18px;margin-bottom:6px;}
.ci-label{font-size:10px;letter-spacing:4px;color:var(--gold);text-transform:uppercase;margin-bottom:6px;}
.ci-value{font-family:'Cormorant Garamond',serif;font-size:16px;color:var(--ivory);line-height:1.6;}
.ci-value a{color:var(--champagne);text-decoration:none;cursor:pointer;transition:color .2s;}
.ci-value a:hover{color:var(--ivory);}
.cf-title{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:300;margin-bottom:32px;}
.contact-cform{display:flex;flex-direction:column;gap:20px;}
.contact-cfield{display:flex;flex-direction:column;gap:8px;}
.contact-clabel{font-size:10px;letter-spacing:4px;color:var(--gold);text-transform:uppercase;}
.contact-cfield input,.contact-cfield textarea{background:var(--ombre);border:1px solid var(--border);color:var(--ivory);font-family:'Montserrat',sans-serif;font-size:13px;font-weight:400;padding:14px 16px;outline:none;transition:border-color .2s;width:100%;resize:vertical;}
.contact-cfield input:focus,.contact-cfield textarea:focus{border-color:var(--gold);}
.contact-cfield input::placeholder,.contact-cfield textarea::placeholder{color:var(--muted);}

/* ══════════════════════════════════════
   SEARCH
══════════════════════════════════════ */
.search-btn{background:transparent;border:none;color:var(--muted);cursor:none;padding:4px 8px;font-size:15px;transition:color .2s;display:flex;align-items:center;}
.search-btn:hover{color:var(--champagne);}
@media(max-width:768px){.search-btn{cursor:pointer;}}

.search-overlay{position:fixed;inset:0;z-index:3000;background:var(--search-bg);backdrop-filter:blur(16px);opacity:0;pointer-events:none;transition:opacity .35s;display:flex;flex-direction:column;}
.search-overlay.open{opacity:1;pointer-events:all;}
.search-overlay::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.04'/%3E%3C/svg%3E");pointer-events:none;}

.search-header{padding:28px 48px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--border);position:relative;z-index:1;}
@media(max-width:480px){.search-header{padding:20px 20px;}}
.search-label{font-size:10px;letter-spacing:6px;color:var(--gold);text-transform:uppercase;}
.search-close{background:transparent;border:1px solid var(--border);color:var(--muted);width:36px;height:36px;cursor:pointer;font-size:14px;transition:all .2s;display:flex;align-items:center;justify-content:center;}
.search-close:hover{border-color:var(--gold);color:var(--gold);}

.search-input-wrap{padding:48px 48px 32px;position:relative;z-index:1;}
@media(max-width:480px){.search-input-wrap{padding:32px 20px 24px;}}
.search-input-row{display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--border);padding-bottom:16px;}
.search-icon-disp{color:var(--gold);font-size:18px;flex-shrink:0;}
.search-input{background:transparent;border:none;outline:none;color:var(--ivory);font-family:'Cormorant Garamond',serif;font-size:clamp(28px,5vw,52px);font-weight:300;width:100%;letter-spacing:1px;}
.search-input::placeholder{color:var(--muted);font-style:italic;}
.search-clear{background:transparent;border:none;color:var(--muted);cursor:pointer;font-size:20px;padding:4px;transition:color .2s;flex-shrink:0;}
.search-clear:hover{color:var(--gold);}

.search-body{flex:1;overflow-y:auto;padding:0 48px 48px;position:relative;z-index:1;}
@media(max-width:480px){.search-body{padding:0 20px 32px;}}
.search-hint{font-size:10px;letter-spacing:3px;color:var(--muted);text-transform:uppercase;margin-bottom:32px;}
.search-results{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px;}
.search-card{background:var(--ombre);border:1px solid var(--border);padding:20px;cursor:pointer;transition:all .25s;display:flex;gap:16px;align-items:center;}
.search-card:hover{border-color:var(--gold);transform:translateY(-2px);}
.sc-thumb{width:56px;height:56px;background:var(--noir);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:26px;flex-shrink:0;overflow:hidden;}
.sc-thumb img{width:100%;height:100%;object-fit:cover;}
.sc-info{flex:1;min-width:0;}
.sc-tag{font-size:7px;letter-spacing:4px;color:var(--gold);text-transform:uppercase;margin-bottom:4px;}
.sc-name{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--ivory);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sc-mood{font-family:'Cormorant Garamond',serif;font-size:12px;color:var(--muted);font-style:italic;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sc-price{font-family:'Montserrat',sans-serif;font-weight:400;font-variant-numeric:tabular-nums lining-nums;letter-spacing:.02em;font-size:13px;color:var(--champagne);margin-top:4px;}
.search-no-results{text-align:center;padding:60px 24px;}
.snr-icon{font-size:36px;margin-bottom:14px;opacity:.25;}
.snr-text{font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--muted);font-style:italic;margin-bottom:8px;}
.snr-sub{font-size:10px;color:var(--muted);letter-spacing:2px;opacity:.6;}

/* ══════════════════════════════════════
   REVIEWS
══════════════════════════════════════ */
.reviews-section{margin-top:0;padding:64px 48px;border-top:1px solid var(--border);max-width:100%;box-sizing:border-box;}
@media(max-width:768px){.reviews-section{padding:48px 24px;}}
@media(max-width:480px){.reviews-section{padding:40px 16px;}}

/* ── RECOMMENDATIONS ── */
.reco-section{margin-top:0;padding:64px 0;border-top:1px solid var(--border);}
.reco-section-header{padding:0 48px;margin-bottom:32px;}
@media(max-width:768px){.reco-section-header{padding:0 24px;}}
@media(max-width:480px){.reco-section-header{padding:0 20px;}}
.reco-eyebrow{font-size:10px;letter-spacing:6px;color:var(--gold);text-transform:uppercase;margin-bottom:8px;}
.reco-title{font-family:'Cormorant Garamond',serif;font-size:clamp(28px,4vw,40px);font-weight:300;color:var(--ivory);margin-bottom:0;}
.reco-title em{font-style:italic;color:var(--champagne);}
.reco-grid{display:flex;flex-wrap:nowrap;gap:20px;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 0 32px;}
.reco-grid::-webkit-scrollbar{display:none;}
.reco-grid .reco-card:first-child{margin-left:48px;}
.reco-grid .reco-card:last-child{margin-right:48px;}
@media(max-width:768px){.reco-grid{gap:16px;padding-bottom:24px;}.reco-grid .reco-card:first-child{margin-left:24px;}.reco-grid .reco-card:last-child{margin-right:24px;}}
@media(max-width:480px){.reco-grid{gap:16px;padding-bottom:20px;}.reco-grid .reco-card:first-child{margin-left:20px;}.reco-grid .reco-card:last-child{margin-right:20px;}}
.reco-card{background:var(--ombre);border:none;box-shadow:inset 0 0 0 1px var(--border);border-radius:14px;cursor:pointer;transition:box-shadow .3s,transform .3s;position:relative;overflow:hidden;min-width:260px;max-width:260px;flex-shrink:0;scroll-snap-align:start;display:flex;flex-direction:column;}
.reco-card:hover{box-shadow:inset 0 0 0 1px var(--gold);transform:translateY(-6px);}
@media(max-width:768px){.reco-card{min-width:220px;max-width:220px;}}
@media(max-width:480px){.reco-card{min-width:190px;max-width:190px;}}
.reco-card-visual{height:220px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.reco-card-visual img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;transition:transform .5s cubic-bezier(.25,.46,.45,.94);}
.reco-card:hover .reco-card-visual img{transform:scale(1.05);}
.reco-card-emoji{font-size:64px;filter:drop-shadow(0 12px 30px rgba(168,148,94,.3));transition:transform .4s;}
.reco-card:hover .reco-card-emoji{transform:scale(1.08) translateY(-6px);}
.reco-card-glow{position:absolute;bottom:0;left:50%;transform:translateX(-50%);width:70%;height:45%;background:radial-gradient(ellipse,rgba(168,148,94,.18),transparent);pointer-events:none;}
.reco-card-body{padding:18px 20px 22px;flex:1;display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--border);}
.reco-card-tag{font-size:7px;letter-spacing:4px;color:var(--gold);text-transform:uppercase;margin-bottom:4px;}
.reco-card-name{font-family:'Cormorant Garamond',serif;font-size:19px;font-weight:400;color:var(--ivory);line-height:1.2;}
.reco-card-sub{font-size:11px;color:var(--muted);letter-spacing:1px;}
.reco-card-mood{font-family:'Cormorant Garamond',serif;font-size:12px;color:var(--muted);font-style:italic;line-height:1.5;margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.reco-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:12px;}
.reco-card-price{font-family:'Cormorant Garamond',serif;font-size:17px;color:var(--champagne);}
.reco-card-btn{font-size:10px;letter-spacing:2px;color:var(--muted);text-transform:uppercase;transition:color .2s;}
.reco-card:hover .reco-card-btn{color:var(--gold);}
.reco-card:hover{border-color:var(--gold);transform:translateY(-4px);}
.reco-card::before{content:'';position:absolute;inset:0;background:linear-gradient(135deg,rgba(168,148,94,.05),transparent);opacity:0;transition:opacity .3s;}
.reco-card:hover::before{opacity:1;}
.reco-emoji{font-size:28px;margin-bottom:16px;display:block;}
.reco-img{width:100%;aspect-ratio:3/4;object-fit:contain;object-position:center;display:block;margin-bottom:16px;background:var(--noir);}
.reco-img-placeholder{width:100%;aspect-ratio:3/4;display:flex;align-items:center;justify-content:center;font-size:48px;margin-bottom:16px;background:linear-gradient(135deg,var(--ombre),var(--noir));}
.reco-tag{font-size:7px;letter-spacing:3px;color:var(--gold);text-transform:uppercase;margin-bottom:8px;}
.reco-name{font-family:'Cormorant Garamond',serif;font-size:18px;font-weight:300;color:var(--ivory);margin-bottom:4px;}
.reco-sub{font-size:11px;color:var(--muted);letter-spacing:1px;margin-bottom:12px;}
.reco-mood{font-size:10px;color:var(--muted);font-style:italic;line-height:1.5;margin-bottom:16px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.reco-price{font-family:'Montserrat',sans-serif;font-weight:400;font-variant-numeric:tabular-nums lining-nums;letter-spacing:.02em;font-size:15px;color:var(--gold);}
.reco-arrow{position:absolute;bottom:20px;right:20px;font-size:11px;color:var(--gold);opacity:0;transition:opacity .3s,transform .3s;}
.reco-card:hover .reco-arrow{opacity:1;transform:translateX(4px);}
[data-theme="light"] .reco-card{background:#EDE8E0;border-color:#D8D0C4;}
.rs-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:40px;flex-wrap:wrap;gap:20px;}
.rs-title{font-family:'Cormorant Garamond',serif;font-size:28px;font-weight:300;}
.rs-title em{font-style:italic;color:var(--champagne);}
.rs-summary{display:flex;align-items:center;gap:24px;flex-wrap:wrap;}
.rss-score{text-align:center;}
.rss-big{font-family:'Cormorant Garamond',serif;font-size:56px;color:var(--ivory);line-height:1;}
.rss-stars{color:var(--gold);font-size:14px;letter-spacing:4px;margin:4px 0;}
.rss-count{font-size:11px;color:var(--muted);letter-spacing:3px;text-transform:uppercase;}
.rss-bars{display:flex;flex-direction:column;gap:6px;min-width:160px;}
.rss-bar-row{display:flex;align-items:center;gap:8px;}
.rss-bar-label{font-size:11px;color:var(--muted);width:10px;text-align:right;flex-shrink:0;}
.rss-bar-track{flex:1;height:3px;background:var(--border);position:relative;overflow:hidden;}
.rss-bar-fill{height:100%;background:var(--gold);transition:width .6s ease;}
.rss-bar-count{font-size:11px;color:var(--muted);width:16px;text-align:right;flex-shrink:0;}

.btn-write-review{background:transparent;border:1px solid var(--gold);color:var(--gold);font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:4px;text-transform:uppercase;padding:13px 28px;cursor:pointer;transition:all .3s;position:relative;overflow:hidden;}
.btn-write-review::before{content:'';position:absolute;inset:0;background:var(--gold);transform:translateX(-101%);transition:transform .3s ease;}
.btn-write-review:hover::before{transform:translateX(0);}
.btn-write-review span{position:relative;z-index:1;}
.btn-write-review:hover span{color:var(--noir);}

.reviews-list{display:flex;flex-direction:column;gap:0;}
.review-item{padding:28px 0;border-bottom:1px solid var(--border);}
.review-item:first-child{border-top:1px solid var(--border);}
.ri-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:10px;gap:16px;flex-wrap:wrap;}
.ri-author{font-family:'Cormorant Garamond',serif;font-size:17px;color:var(--ivory);}
.ri-meta{font-size:11px;color:var(--muted);letter-spacing:1px;margin-top:4px;}
.ri-stars{color:var(--gold);font-size:12px;letter-spacing:3px;}
.ri-body{font-size:12px;color:var(--muted);line-height:2.2;max-width:640px;}
.ri-verified{display:inline-flex;align-items:center;gap:5px;font-size:10px;letter-spacing:2px;color:#5aaa80;text-transform:uppercase;margin-top:8px;}

.reviews-load-more-wrap{text-align:center;padding:32px 0 8px;}
.btn-load-more-reviews{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:3px;text-transform:uppercase;padding:13px 32px;cursor:pointer;transition:all .25s;}
.btn-load-more-reviews:hover{border-color:var(--gold);color:var(--champagne);}
.no-reviews{text-align:center;padding:48px 24px;border:1px solid var(--border);}
.nr-stars{font-size:28px;color:var(--border);letter-spacing:4px;margin-bottom:14px;}
.nr-sub{font-size:11px;color:var(--muted);letter-spacing:2px;margin-top:6px;}
.nr-icon{font-size:32px;margin-bottom:12px;opacity:.25;}
.nr-text{font-family:'Cormorant Garamond',serif;font-size:18px;color:var(--muted);font-style:italic;margin-bottom:16px;}

/* Review Form Modal */
.review-modal-bg{position:fixed;inset:0;background:var(--overlay-bg);z-index:4000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .3s;backdrop-filter:blur(8px);padding:20px;}
.review-modal-bg.open{opacity:1;pointer-events:all;}
.review-modal{background:var(--ombre);border:1px solid var(--border);width:100%;max-width:520px;transform:translateY(20px);transition:transform .35s;}
.review-modal-bg.open .review-modal{transform:translateY(0);}
.rm-header{padding:24px 28px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center;}
.rm-title{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:300;}
.rm-close{background:transparent;border:1px solid var(--border);color:var(--muted);width:32px;height:32px;cursor:pointer;font-size:13px;display:flex;align-items:center;justify-content:center;transition:all .2s;}
.rm-close:hover{border-color:var(--gold);color:var(--gold);}
.rm-body{padding:28px;}
.rm-product{display:flex;align-items:center;gap:12px;padding:14px;background:var(--noir);border:1px solid var(--border);margin-bottom:24px;}
.rm-product-thumb{width:40px;height:40px;font-size:20px;display:flex;align-items:center;justify-content:center;}
.rm-product-name{font-family:'Cormorant Garamond',serif;font-size:16px;}
.rm-product-sub{font-size:11px;color:var(--muted);letter-spacing:2px;}
.rm-field{display:flex;flex-direction:column;gap:7px;margin-bottom:18px;}
.rm-label{font-size:10px;letter-spacing:4px;color:var(--gold);text-transform:uppercase;}
.rm-field input,.rm-field textarea{background:var(--noir);border:1px solid var(--border);color:var(--ivory);font-family:'Montserrat',sans-serif;font-size:13px;font-weight:400;padding:13px 15px;outline:none;transition:border-color .2s;width:100%;resize:vertical;}
.rm-field input:focus,.rm-field textarea:focus{border-color:var(--gold);}
.rm-field input::placeholder,.rm-field textarea::placeholder{color:var(--muted);}

/* Star selector */
.star-selector{display:flex;gap:6px;margin-top:4px;}
.star-sel{font-size:26px;cursor:pointer;color:var(--border);transition:color .15s,transform .15s;}
.star-sel:hover,.star-sel.active{color:var(--gold);}
.star-sel:hover{transform:scale(1.15);}
.rating-label{font-size:10px;color:var(--muted);margin-left:8px;font-style:italic;font-family:'Cormorant Garamond',serif;align-self:center;}

.btn-submit-review{width:100%;background:var(--gold);border:1px solid var(--gold);color:var(--noir);font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:4px;text-transform:uppercase;padding:16px;cursor:pointer;transition:all .3s;margin-top:8px;}
.btn-submit-review:hover{background:var(--champagne);border-color:var(--champagne);}
.rm-note{font-size:11px;color:var(--muted);text-align:center;margin-top:10px;letter-spacing:1px;line-height:1.8;}
/* ══════════════════════════════════════
   FAQ PAGE
══════════════════════════════════════ */
.faq-wrap{max-width:900px;margin:0 auto;padding:120px 48px 100px;}
@media(max-width:600px){.faq-wrap{padding:100px 20px 80px;}}

.faq-back{margin-bottom:48px;}
.faq-back a{font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--muted);text-decoration:none;cursor:pointer;transition:color .2s;}
.faq-back a:hover{color:var(--champagne);}

.faq-eyebrow{font-size:11px;letter-spacing:8px;color:var(--gold);text-transform:uppercase;margin-bottom:16px;}
.faq-headline{font-family:'Cormorant Garamond',serif;font-size:clamp(48px,8vw,96px);font-weight:300;line-height:.95;margin-bottom:20px;}
.faq-headline em{font-style:italic;color:var(--champagne);}
.faq-intro{font-size:15px;color:var(--muted);line-height:1.85;max-width:600px;margin-bottom:72px;font-family:'Cormorant Garamond',serif;font-style:italic;}

/* Category label */
.faq-category{font-size:10px;letter-spacing:6px;color:var(--gold);text-transform:uppercase;margin-bottom:0;padding:0 0 16px;border-bottom:1px solid var(--border);margin-top:64px;}
.faq-category:first-of-type{margin-top:0;}

/* Accordion items */
.faq-list{margin-top:0;}
.faq-item{border-bottom:1px solid var(--border);overflow:hidden;}
.faq-question{
  width:100%;background:transparent;border:none;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:28px 0;cursor:pointer;text-align:left;
  transition:all .2s;
}
.faq-question:hover .fq-text{color:var(--ivory);}
.fq-text{
  font-family:'Cormorant Garamond',serif;
  font-size:clamp(18px,2.5vw,22px);
  font-weight:400;color:var(--champagne);
  line-height:1.3;transition:color .25s;
}
.fq-icon{
  flex-shrink:0;width:32px;height:32px;
  border:1px solid var(--border);
  display:flex;align-items:center;justify-content:center;
  color:var(--gold);font-size:16px;
  transition:all .35s cubic-bezier(.4,0,.2,1);
}
.faq-item.open .fq-icon{
  transform:rotate(45deg);
  border-color:var(--gold);
  background:rgba(168,148,94,.08);
}
.faq-item.open .fq-text{color:var(--ivory);}

.faq-answer{
  max-height:0;overflow:hidden;
  transition:max-height .45s cubic-bezier(.4,0,.2,1), opacity .35s ease;
  opacity:0;
}
.faq-item.open .faq-answer{opacity:1;}
.fa-inner{
  padding:0 48px 28px 0;
  font-size:15px;color:var(--muted);
  line-height:1.85;
}
@media(max-width:480px){.fa-inner{padding:0 0 24px;}}
.fa-inner strong{color:var(--champagne);font-weight:500;}
.fa-inner em{font-style:italic;color:var(--ivory);}

/* Still have questions */
.faq-cta{margin-top:80px;padding:48px;border:1px solid var(--border);background:var(--ombre);text-align:center;}
.faq-cta-title{font-family:'Cormorant Garamond',serif;font-size:clamp(28px,4vw,40px);margin-bottom:12px;}
.faq-cta-title em{font-style:italic;color:var(--champagne);}
.faq-cta-sub{font-size:12px;color:var(--muted);margin-bottom:32px;line-height:2;}
.faq-cta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;}
/* ══════════════════════════════════════════════════════
   THE SCENTS PAGE
══════════════════════════════════════════════════════ */
#scents-page { min-height: 100vh; }

/* ── SCENTS HERO BANNER ── */
.scents-hero {
  padding: 140px 80px 80px;
  display: grid;
  grid-template-columns: 1fr auto;
  align-items: flex-end;
  gap: 40px;
  border-bottom: 1px solid var(--border);
  position: relative;
  overflow: hidden;
}
@media(max-width:768px){ .scents-hero{ padding: 120px 24px 48px; grid-template-columns:1fr; } }
.scents-hero::before {
  content:'';
  position: absolute;
  top: 0; right: 0;
  width: 50%;
  height: 100%;
  background: radial-gradient(ellipse at 80% 30%, rgba(168,148,94,.06), transparent 70%);
  pointer-events: none;
}
.sh-left {}
.sh-eyebrow {
  font-size: 10px;
  letter-spacing: 8px;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 12px;
}
.sh-eyebrow::before {
  content: '';
  width: 32px;
  height: 1px;
  background: var(--gold);
  display: inline-block;
}
.sh-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: clamp(56px, 9vw, 120px);
  font-weight: 300;
  line-height: .88;
  letter-spacing: -2px;
  margin-bottom: 24px;
}
.sh-title em { font-style: italic; color: var(--champagne); }
.sh-desc {
  font-family: 'Cormorant Garamond', serif;
  font-size: 16px;
  color: var(--muted);
  font-style: italic;
  line-height: 2;
  max-width: 420px;
}
.sh-count {
  text-align: right;
  flex-shrink: 0;
}
.sh-count-num {
  font-family: 'Cormorant Garamond', serif;
  font-size: 80px;
  color: var(--border);
  line-height: 1;
  font-weight: 300;
}
.sh-count-label {
  font-size: 10px;
  letter-spacing: 4px;
  color: var(--muted);
  text-transform: uppercase;
}

/* ── CONTROLS BAR ── */
.scents-controls {
  padding: 24px 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  border-bottom: 1px solid var(--border);
  background: var(--noir);
  backdrop-filter: blur(8px);
  position: sticky;
  top: var(--nav-h, 60px);
  z-index: 50;
  flex-wrap: wrap;
  transition: top .35s cubic-bezier(.4,0,.2,1);
}
.nav-hidden-mode .scents-controls { top: 0; }
@media(max-width:768px){
  .filter-pills{
    overflow-x:auto;
    flex-wrap:nowrap;
    scrollbar-width:none;
    -webkit-overflow-scrolling:touch;
  }
  .filter-pills::-webkit-scrollbar{display:none;}
}

/* Filter pills */
.filter-pills {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: nowrap;
  flex: 1;
  overflow-x: auto;
  scrollbar-width: none;
}
.filter-pills::-webkit-scrollbar{display:none;}
@media(max-width:768px){
  .filter-pills {
    overflow-x: auto;
    flex-wrap: nowrap;
    scrollbar-width: none;
    -ms-overflow-style: none;
    padding-bottom: 2px;
  }
  .filter-pills::-webkit-scrollbar { display: none; }
}
.fp-label {
  font-size: 7px;
  letter-spacing: 4px;
  color: var(--muted);
  text-transform: uppercase;
  margin-right: 4px;
}
.fp-pill {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--muted);
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  padding: 8px 18px;
  border-radius: 999px;           /* capsule shape */
  cursor: pointer;
  transition: all .2s;
  white-space: nowrap;
}
.fp-pill:hover { border-color: rgba(168,148,94,.5); color: var(--champagne); }
.fp-pill.active { border-color: var(--gold); color: var(--gold); background: rgba(168,148,94,.08); }

/* Sort + View controls */
.scents-right-controls {
  display: flex;
  align-items: center;
  gap: 16px;
}
.sort-select {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--muted);
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  letter-spacing: 2px;
  text-transform: uppercase;
  padding: 8px 14px;
  cursor: pointer;
  outline: none;
  transition: border-color .2s;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%236a6050'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  padding-right: 28px;
}
.sort-select:focus,
.sort-select:hover { border-color: rgba(168,148,94,.5); color: var(--champagne); }
.sort-select option { background: #1E1A12; color: var(--ivory); }

.view-toggle {
  display: flex;
  gap: 4px;
}
.vt-btn {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--muted);
  width: 34px;
  height: 34px;
  cursor: pointer;
  transition: all .2s;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 13px;
}
.vt-btn.active { border-color: var(--gold); color: var(--gold); background: rgba(168,148,94,.08); }
.vt-btn:hover { border-color: rgba(168,148,94,.5); color: var(--champagne); }

/* Results count */
.scents-results-bar {
  padding: 20px 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}
@media(max-width:768px){ .scents-results-bar{ padding: 16px 20px; } }
.srb-count {
  font-size: 11px;
  letter-spacing: 3px;
  color: var(--muted);
  text-transform: uppercase;
}
.srb-count span { color: var(--champagne); }
.srb-clear {
  background: transparent;
  border: none;
  color: var(--muted);
  font-size: 11px;
  letter-spacing: 2px;
  text-transform: uppercase;
  cursor: pointer;
  transition: color .2s;
  padding: 0;
  display: none;
}
.srb-clear.show { display: block; }
.srb-clear:hover { color: var(--gold); }

/* ── PRODUCT GRID ── */
.scents-grid-wrap {
  padding: 32px 80px 120px;
  max-width: 1400px;
  margin: 0 auto;
}
@media(max-width:768px){ .scents-grid-wrap{ padding: 16px 20px 80px; } }

.scents-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  transition: all .3s;
}
/* Gallery view — pure photo mosaic, no card chrome. Click a tile to
   open the product page. Replaces the previous horizontal "list" view.
   The icon toggle in the controls bar still flips this class. */
.scents-grid.view-list {
  grid-template-columns: repeat(6, 1fr);
  gap: 10px;
}
/* Stable column count at every desktop/laptop width: always 4 */
@media(max-width:1100px){ .scents-grid{ grid-template-columns: repeat(3, 1fr); gap: 22px; } }
@media(max-width:820px){ .scents-grid{ grid-template-columns: repeat(2, 1fr); gap: 20px; } }
/* Phones: keep exactly 2 cards per row — never drop to 1. Tighter gap
   + smaller body padding so two cards fit comfortably even at iPhone SE
   width (~375px). List view still forces 1 column at all sizes. */
@media(max-width:480px){
  .scents-grid{ grid-template-columns: repeat(2, 1fr); gap: 12px; }
  .scents-grid.view-list{ grid-template-columns: repeat(4, 1fr); gap: 6px; }
  .scents-grid:not(.view-list) .sc-card-body{ padding: 14px 14px 16px; }
  .scents-grid:not(.view-list) .sc-card-name{ font-size: 16px; line-height: 1.2; }
  .scents-grid:not(.view-list) .sc-card-tag{ font-size: 6px; letter-spacing: 3px; margin-bottom: 6px; }
  .scents-grid:not(.view-list) .sc-card-add{ width: 26px; height: 26px; }
  .scents-grid:not(.view-list) .sc-card-add svg{ width: 14px; height: 14px; }
}
/* Gallery intermediate breakpoints */
@media(max-width:1100px){ .scents-grid.view-list{ grid-template-columns: repeat(5, 1fr); gap: 8px; } }
@media(max-width:820px) { .scents-grid.view-list{ grid-template-columns: repeat(4, 1fr); gap: 8px; } }

/* Size picker — slides up from the bottom of the card when Add to Cart
   is clicked on a multi-size product. Single-size products skip this
   and add directly. */
.sc-card-size-picker {
  position: absolute;
  left: 0; right: 0; bottom: 0;
  background: var(--ombre);
  border-top: 1px solid var(--gold);
  padding: 16px 18px 18px;
  transform: translateY(100%);
  transition: transform .3s cubic-bezier(.25,.46,.45,.94);
  z-index: 5;
  border-bottom-left-radius: 14px;
  border-bottom-right-radius: 14px;
}
.sc-card-size-picker.is-open { transform: translateY(0); }
.sc-picker-close {
  position: absolute; top: 8px; right: 10px;
  background: none; border: none; color: var(--muted);
  font-size: 14px; line-height: 1; cursor: pointer;
  padding: 4px 6px; transition: color .2s;
}
.sc-picker-close:hover { color: var(--gold); }
.sc-picker-label {
  font-size: 8px; letter-spacing: 4px; text-transform: uppercase;
  color: var(--gold); margin-bottom: 10px;
}
.sc-picker-options { display: flex; flex-direction: column; gap: 6px; }
.sc-picker-opt {
  display: flex; align-items: center; justify-content: space-between;
  gap: 12px; width: 100%;
  background: transparent; border: 1px solid var(--border);
  color: var(--ivory);
  font-family: 'Montserrat', sans-serif;
  font-size: 10px; letter-spacing: 2px; text-transform: uppercase;
  padding: 10px 14px; cursor: pointer; text-align: left;
  transition: background .2s, border-color .2s, color .2s;
}
.sc-picker-opt:hover:not(.is-oos) {
  background: var(--gold); color: var(--noir); border-color: var(--gold);
}
.sc-picker-opt.is-oos { opacity: .4; cursor: not-allowed; }
.sc-picker-opt-size { font-weight: 500; }
.sc-picker-opt-meta { font-weight: 300; opacity: .85; font-feature-settings: 'tnum'; }
.sc-picker-opt.is-oos .sc-picker-opt-meta { color: #c07070; opacity: 1; }

/* GRID CARD */
.sc-card {
  position: relative;
  background: var(--ombre);
  border: none;
  /* Inset box-shadow draws the "border" on top of content so it stays
     crisp at the rounded corners even when the image inside is
     absolutely positioned to inset:0. Avoids the WebKit clip-overflow
     issue where the image paints over the actual border-line. */
  box-shadow: inset 0 0 0 1px var(--border);
  border-radius: 14px;
  overflow: hidden;
  cursor: pointer;
  transition: box-shadow .3s, transform .35s cubic-bezier(.25,.46,.45,.94);
  animation: sc-fadein .4s ease both;
  display: flex;
  flex-direction: column;
}
.sc-card:hover { box-shadow: inset 0 0 0 1px rgba(168,148,94,.5); transform: translateY(-4px); z-index: 2; }
@keyframes sc-fadein {
  from { opacity: 0; transform: translateY(16px); }
  to   { opacity: 1; transform: translateY(0); }
}
/* staggered animation delays */
.sc-card:nth-child(1){animation-delay:.05s}
.sc-card:nth-child(2){animation-delay:.08s}
.sc-card:nth-child(3){animation-delay:.11s}
.sc-card:nth-child(4){animation-delay:.14s}
.sc-card:nth-child(5){animation-delay:.17s}
.sc-card:nth-child(6){animation-delay:.20s}
.sc-card:nth-child(7){animation-delay:.23s}
.sc-card:nth-child(8){animation-delay:.26s}

.sc-card-visual {
  aspect-ratio: 4 / 5;          /* matches upload spec — full photo always visible, no crop */
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--ombre);      /* fills any sub-pixel band on slightly-off uploads */
}
.sc-card-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;             /* with matching 4:5 aspect, this shows the full image */
  position: absolute;
  inset: 0;
  transition: transform .6s cubic-bezier(.25,.46,.45,.94);
}
.sc-card:hover .sc-card-visual img { transform: scale(1.06); }
.sc-card-emoji {
  font-size: 72px;
  filter: drop-shadow(0 12px 40px rgba(168,148,94,.25));
  transition: transform .4s cubic-bezier(.25,.46,.45,.94);
  position: relative;
  z-index: 1;
}
.sc-card:hover .sc-card-emoji { transform: scale(1.1) translateY(-8px); }
.sc-card-glow {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 80%;
  height: 60%;
  background: radial-gradient(ellipse, rgba(168,148,94,.15), transparent);
  pointer-events: none;
}
/* tag badge */
.sc-card-badge {
  position: absolute;
  top: 16px;
  left: 16px;
  background: color-mix(in srgb, var(--noir) 85%, transparent);
  border: 1px solid var(--border);
  color: var(--gold);
  font-size: 7px;
  letter-spacing: 3px;
  text-transform: uppercase;
  padding: 5px 10px;
  backdrop-filter: blur(4px);
}
/* Hover = quiet image zoom only. No scrim, no overlay button — the
   product photography is the seduction; we never cover it. The single
   CTA lives in the calm footer below. */

.sc-card-body {
  padding: 20px 20px 22px;
  border-top: 1px solid var(--border);
  display: flex;
  flex-direction: column;
  flex: 1;
}
.sc-card-tag {
  font-size: 7px;
  letter-spacing: 4px;
  color: var(--gold);
  text-transform: uppercase;
  margin-bottom: 8px;
}
/* Name + Add button share a row; button pinned to the far right and
   centred vertically against the name line. */
.sc-card-name-row {
  display: flex;
  align-items: center;       /* + sits on the exact vertical midline of the name */
  justify-content: space-between;
  gap: 12px;
  margin-top: auto;          /* pushes the row to the card bottom so cards align */
  padding-top: 6px;
}
.sc-card-name {
  font-family: 'Cormorant Garamond', serif;
  font-size: 20px;
  font-weight: 400;
  color: var(--ivory);
  line-height: 1.2;
  flex: 1;
  min-width: 0;              /* allows long names to wrap cleanly inside flex */
  margin: 0;
}
.sc-card-name em { color: var(--champagne); font-style: italic; }

/* Bare + glyph — no circle, no border. Quiet, considered. */
.sc-card-add {
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  background: transparent;
  border: none;
  color: var(--gold);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  padding: 0;
  /* margin-top removed — align-items:center on the row handles vertical alignment */
  transition: color .25s ease, transform .2s ease;
}
.sc-card-add:hover { color: var(--champagne); transform: scale(1.12); }
.sc-card-add:active { transform: scale(.92); }
.sc-card-add:focus-visible { outline: 2px solid var(--gold); outline-offset: 4px; border-radius: 50%; }
.sc-card-add svg { width: 18px; height: 18px; }
/* Notes pyramid — one row per note, each value clamped to a single
   line with an … ellipsis. Fixed row height → fixed block height →
   every card is the same total height → perfect grid symmetry.
   Minimal: no per-row dividers, just one hairline framing the block. */
.sc-card-notes {
  display: flex;
  flex-direction: column;
  margin-bottom: 18px;
  padding-top: 14px;
  border-top: 1px solid var(--border);
  /* Reserve exactly 3 rows so a product missing a note still aligns */
  min-height: calc((9px * 1.6 + 14px) * 3);
}
.sc-note-row {
  display: grid;
  grid-template-columns: 42px 1fr;
  gap: 14px;
  align-items: baseline;
  padding: 8px 0;
}
.sc-note-label {
  font-size: 8px;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--gold);
}
.sc-note-value {
  font-size: 9px;
  letter-spacing: 1.5px;
  text-transform: uppercase;
  color: var(--muted);
  line-height: 1.6;
  /* Single line + ellipsis — full notes live on the product page */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  min-width: 0;
}
.sc-card-footer {
  display: flex;
  align-items: center;
  justify-content: center;     /* button centred — only thing in the footer now */
  margin-top: auto;
  padding-top: 18px;
  border-top: 1px solid var(--border);
}
.sc-card-footer .sc-card-btn {
  /* Give the centred button a comfortable hit area + visual weight */
  min-width: 60%;
  text-align: center;
}
.sc-card-rating {
  display: flex;
  align-items: center;
  gap: 6px;
  margin-bottom: 4px;
}
.sc-card-rating-stars { color: var(--gold); font-size: 10px; letter-spacing: 2px; }
.sc-card-rating-count { font-size: 11px; color: var(--muted); letter-spacing: 1px; }
.sc-card-price {
  font-family: 'Cormorant Garamond', serif;
  font-size: 22px;
  color: var(--champagne);
}
.sc-card-size {
  font-size: 11px;
  color: var(--muted);
  letter-spacing: 1px;
  margin-top: 2px;
}
.sc-card-btn {
  background: transparent;
  border: 1px solid var(--border);
  color: var(--muted);
  font-family: 'Montserrat', sans-serif;
  font-size: 10px;
  letter-spacing: 3px;
  text-transform: uppercase;
  padding: 11px 22px;
  cursor: pointer;
  transition: background .3s ease, color .3s ease, border-color .3s ease;
}
.sc-card-btn:hover { background: var(--gold); border-color: var(--gold); color: var(--noir); }

/* Elegance accent — a gold hairline above the card body that draws
   itself in on hover, echoing the maison's hairline motif used on the
   auth cards and footer ornament. */
.sc-card-body { position: relative; }
.scents-grid:not(.view-list) .sc-card-body::before {
  content: '';
  position: absolute;
  top: -1px; left: 0;
  height: 1px; width: 0;
  background: var(--gold);
  transition: width .45s cubic-bezier(.25,.46,.45,.94);
}
.scents-grid:not(.view-list) .sc-card:hover .sc-card-body::before { width: 100%; }

/* LIST VIEW card */
/* Gallery tile — rounded corners, no border/box-shadow, no body
   chrome. Just the photo, clipped to the rounded shape. */
.scents-grid.view-list .sc-card {
  border-radius: 10px;
  border: none;
  box-shadow: none;
  background: transparent;
  animation: sc-fadein .4s ease both;
  transform: none !important;
  cursor: pointer;
  overflow: hidden;
  display: block;
}
.scents-grid.view-list .sc-card:hover { transform: none !important; z-index: 2; }
.scents-grid.view-list .sc-card-visual {
  aspect-ratio: 4 / 5;
  height: auto;
  position: relative;
  overflow: hidden;
  display: block;
}
.scents-grid.view-list .sc-card-visual img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
  transition: transform .55s cubic-bezier(.25,.46,.45,.94);
}
/* Hover: image enlarges, nothing else changes */
.scents-grid.view-list .sc-card:hover .sc-card-visual img { transform: scale(1.08); }
/* Hide every piece of card chrome — the gallery is pure photo */
.scents-grid.view-list .sc-card-body,
.scents-grid.view-list .sc-card-badge,
.scents-grid.view-list .sc-card-emoji,
.scents-grid.view-list .sc-card-glow { display: none !important; }

/* ── MOBILE FILTER DRAWER ── */
.mf-trigger-bar{display:none;}
.mf-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.6);z-index:1100;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);opacity:0;transition:opacity .3s;}
.mf-overlay.open{display:block;opacity:1;}
.mf-drawer{position:fixed;bottom:0;left:0;right:0;z-index:1101;background:var(--noir);border-top:1px solid var(--border);transform:translateY(100%);transition:transform .4s cubic-bezier(.25,.8,.25,1);max-height:85vh;display:flex;flex-direction:column;border-radius:16px 16px 0 0;}
.mf-drawer.open{transform:translateY(0);}
.mf-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border);}
.mf-drawer-title{font-family:'Cormorant Garamond',serif;font-size:22px;font-weight:400;color:var(--ivory);}
.mf-drawer-close{background:none;border:none;color:var(--muted);font-size:18px;cursor:pointer;padding:4px 8px;transition:color .2s;}
.mf-drawer-close:hover{color:var(--ivory);}
.mf-drawer-body{flex:1;overflow-y:auto;padding:20px 24px;-webkit-overflow-scrolling:touch;}
.mf-section{margin-bottom:28px;}
.mf-section:last-child{margin-bottom:12px;}
.mf-section-label{font-size:10px;letter-spacing:5px;color:var(--gold);text-transform:uppercase;margin-bottom:14px;}
.mf-chips{display:flex;gap:8px;flex-wrap:wrap;}
.mf-chip{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:2px;text-transform:uppercase;padding:10px 22px;border-radius:999px;cursor:pointer;transition:all .25s;}
.mf-chip:hover{border-color:rgba(168,148,94,.4);color:var(--champagne);}
.mf-chip.active{border-color:var(--gold);color:var(--gold);background:rgba(168,148,94,.1);}
.mf-sort-opts{display:flex;flex-direction:column;gap:2px;}
.mf-sort-opt{background:transparent;border:none;color:var(--muted);font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:1px;padding:12px 16px;cursor:pointer;transition:all .2s;text-align:left;border-left:2px solid transparent;}
.mf-sort-opt:hover{color:var(--champagne);}
.mf-sort-opt.active{color:var(--gold);border-left-color:var(--gold);background:rgba(168,148,94,.05);}
.mf-view-opts{display:flex;gap:8px;}
.mf-view-opt{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:2px;text-transform:uppercase;padding:12px;cursor:pointer;transition:all .25s;}
.mf-view-opt:hover{border-color:rgba(168,148,94,.4);}
.mf-view-opt.active{border-color:var(--gold);color:var(--gold);background:rgba(168,148,94,.08);}
.mf-drawer-footer{display:flex;gap:12px;padding:16px 24px 28px;border-top:1px solid var(--border);}
.mf-clear-btn{flex:1;background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:3px;text-transform:uppercase;padding:14px;cursor:pointer;transition:all .2s;}
.mf-clear-btn:hover{border-color:var(--gold);color:var(--champagne);}
.mf-apply-btn{flex:2;background:var(--gold);border:none;color:var(--noir);font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:4px;text-transform:uppercase;padding:14px;cursor:pointer;transition:opacity .2s;}
.mf-apply-btn:hover{opacity:.85;}
/* Trigger bar */
.mf-trigger-bar{position:sticky;top:var(--nav-h, 56px);z-index:50;padding:10px 16px;display:flex;align-items:center;justify-content:space-between;background:var(--noir);border-bottom:1px solid var(--border);transition:top .35s cubic-bezier(.4,0,.2,1);}
.nav-hidden-mode .mf-trigger-bar{top:0;}
.mf-trigger-btn{display:flex;align-items:center;gap:8px;background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:3px;text-transform:uppercase;padding:9px 16px;cursor:pointer;transition:all .2s;}
.mf-trigger-btn:hover{border-color:var(--gold);color:var(--gold);}
.mf-trigger-btn svg{opacity:.6;}
.mf-count{background:var(--gold);color:var(--noir);font-size:10px;font-weight:600;padding:1px 6px;border-radius:8px;margin-left:2px;}
.mf-trigger-right{display:flex;align-items:center;gap:10px;}
.mf-result-count{font-size:11px;color:var(--muted);letter-spacing:1px;}
.mf-view-toggle{gap:3px;}
.mf-view-toggle .vt-btn{width:30px;height:30px;}
/* Light theme */
[data-theme="light"] .mf-drawer{background:var(--panel-bg);}
[data-theme="light"] .mf-apply-btn{background:var(--gold);color:#fff;}
/* Desktop: hide mobile drawer, show controls */
@media(min-width:769px){.mf-trigger-bar{display:none !important;}.mf-drawer{display:none !important;}.mf-overlay{display:none !important;}}
/* Mobile: hide desktop controls, show trigger */
@media(max-width:768px){.scents-controls{display:none !important;}.mf-trigger-bar{display:flex;}}

/* Empty state */
.scents-empty {
  padding: 100px 20px;
  text-align: center;
  grid-column: 1 / -1;
}
.se-icon { font-size: 48px; margin-bottom: 20px; opacity: .2; }
.se-title {
  font-family: 'Cormorant Garamond', serif;
  font-size: 32px;
  color: var(--muted);
  font-style: italic;
  margin-bottom: 10px;
}
.se-sub { font-size: 10px; color: var(--muted); letter-spacing: 2px; opacity: .6; }
.se-sub { font-size: 10px; color: var(--muted); letter-spacing: 2px; opacity: .6; }

/* ══════════════════════════════════════════════════════
   THEME TOGGLE BUTTON
══════════════════════════════════════════════════════ */
.theme-toggle {
  position: relative;
  width: 48px;
  height: 26px;
  background: transparent;
  border: 1px solid var(--border);
  border-radius: 13px;
  cursor: none;
  padding: 0;
  flex-shrink: 0;
  transition: border-color .3s, background .3s;
  overflow: hidden;
}
.theme-toggle:hover { border-color: var(--gold); }
.theme-toggle-track {
  position: absolute;
  inset: 0;
  border-radius: 13px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 5px;
}
.theme-toggle-icon {
  font-size: 11px;
  line-height: 1;
  transition: opacity .3s;
  pointer-events: none;
  z-index: 1;
}
.theme-toggle-icon.dark-icon { opacity: 1; }
.theme-toggle-icon.light-icon { opacity: 0.4; }
[data-theme="light"] .theme-toggle-icon.dark-icon { opacity: 0.4; }
[data-theme="light"] .theme-toggle-icon.light-icon { opacity: 1; }
.theme-toggle-knob {
  position: absolute;
  top: 3px;
  left: 3px;
  width: 18px;
  height: 18px;
  background: var(--gold);
  border-radius: 50%;
  transition: transform .3s cubic-bezier(.34,1.56,.64,1), background .3s;
  pointer-events: none;
  z-index: 2;
}
[data-theme="light"] .theme-toggle-knob {
  transform: translateX(22px);
}
@media(max-width:768px){ .theme-toggle { cursor: pointer; } }

/* ── LIGHT THEME OVERRIDES ─────────────────────────── */
/* Elements that need more than just variable swaps */
[data-theme="light"] body::before { opacity: 0.18; }

/* Hero title contrast */
[data-theme="light"] .hero-title { color: #3D3833; }
[data-theme="light"] .hero-title em { color: #8B6B20; }
[data-theme="light"] .hero-eyebrow { color: #A8873A; }
[data-theme="light"] .hero-maison { color: #9A8E82; }
[data-theme="light"] .hero-scroll span { color: #9A8E82; }

/* Nav in light mode */
[data-theme="light"] nav {
  background: linear-gradient(to bottom, color-mix(in srgb,#F8F5F0 95%,transparent), transparent);
}
[data-theme="light"] nav.scrolled {
  background: rgba(248,245,240,.97);
}
[data-theme="light"] .mobile-menu {
  background: #F0EBE3;
  border-right: 1px solid #D8D0C4;
}
[data-theme="light"] .mobile-menu::before { display: none; }
[data-theme="light"] .hamburger .bar { background: #6a5c4a; }
[data-theme="light"] .mob-cart-icon { color: #6a5c4a; }

/* Buttons */
[data-theme="light"] .btn-primary {
  border-color: #A8873A;
  color: #A8873A;
}
[data-theme="light"] .btn-primary::before {
  background: #A8873A;
}
[data-theme="light"] .btn-primary:hover span { color: #F8F5F0; }
[data-theme="light"] .nav-cart { color: #8B6B20; border-color: #D8D0C4; }
[data-theme="light"] .nav-cart:hover { background: #A8873A; color: #F8F5F0; border-color: #A8873A; }

/* Cart */
[data-theme="light"] .cart-panel { background: #EDE8E0; border-left-color: #D8D0C4; }
[data-theme="light"] .cart-item { border-bottom-color: #D8D0C4; }
[data-theme="light"] .cart-item-emoji { background: #F0EBE3; }

/* Checkout + forms */
[data-theme="light"] .checkout-modal { background: #EDE8E0; border-color: #D8D0C4; }
[data-theme="light"] .cm-order-summary { background: #F8F5F0; border-color: #D8D0C4; }
[data-theme="light"] .cfield input,
[data-theme="light"] .cfield select,
[data-theme="light"] .cfield textarea { background: #F8F5F0; border-color: #D8D0C4; color: #3D3833; }
[data-theme="light"] .cfield select option { background: #F8F5F0; color: #3D3833; }

/* Product page */
[data-theme="light"] .pv-main { background: #F0EBE3; border-color: #D8D0C4; }
[data-theme="light"] .pv-thumb { background: #F0EBE3; border-color: #D8D0C4; }

/* Search */
[data-theme="light"] .search-input { color: #3D3833; }
[data-theme="light"] .search-input::placeholder { color: #9A8E82; }
[data-theme="light"] .search-result { border-color: #D8D0C4; }
[data-theme="light"] .search-result:hover { background: #F0EBE3; }
[data-theme="light"] .search-result-emoji { background: #F0EBE3; border-color: #D8D0C4; }

/* Reviews */
[data-theme="light"] .review-modal-inner { background: #EDE8E0; border-color: #D8D0C4; }
[data-theme="light"] .review-card { background: #F0EBE3; border-color: #D8D0C4; }

/* FAQ */
[data-theme="light"] .faq-item { border-color: #D8D0C4; }
[data-theme="light"] .faq-cta { background: #EDE8E0; border-color: #D8D0C4; }

/* Scents page */
[data-theme="light"] .sc-card { background: #EDE8E0; border-color: #D8D0C4; }
[data-theme="light"] .sc-card-body { border-color: #D8D0C4; }
[data-theme="light"] .sc-card-note { background: #F0EBE3; border-color: #D8D0C4; }
[data-theme="light"] .sc-list-card .sc-card-body { border-left-color: #D8D0C4; }
[data-theme="light"] .sort-select { color: #6a5c4a; }
[data-theme="light"] .sort-select option { background: #F8F5F0; color: #3D3833; }

/* Toast in light mode — dark on light */
[data-theme="light"] .toast { background: #3D3833; color: #F8F5F0; }

/* Carousel cards */
[data-theme="light"] .carousel-card { background: #EDE8E0; border-color: #D8D0C4; }

/* Featured section */
[data-theme="light"] .fi-notes .note-item { background: transparent; }
[data-theme="light"] .fi-label { color: #A8873A; }

/* pd notes — light-theme label tint (name uses theme var) */
[data-theme="light"] .pdn-label { color: #6B5518; }

/* Footer */
[data-theme="light"] footer { border-top-color: #D8D0C4; background: #DDD5C8; }
[data-theme="light"] .footer-bottom { border-top-color: #D8D0C4; background: #DDD5C8; border-top: none; }
[data-theme="light"] .footer-ornament { background: #DDD5C8; }
[data-theme="light"] .social-btn { border-color: #D8D0C4; color: #9A8E82; }

/* Footer */
[data-theme="light"] footer { border-top-color: #D8D0C4; background: #DDD5C8; }
[data-theme="light"] .footer-bottom { border-top-color: #D8D0C4; background: #DDD5C8; border-top: none; }
[data-theme="light"] .footer-ornament { background: #DDD5C8; }
[data-theme="light"] .social-btn { border-color: #D8D0C4; color: #9A8E82; }

/* ══ TRACK ORDER PAGE ════════════════════════════════ */
.track-wrap{max-width:860px;margin:0 auto;padding:120px 48px 80px;}
.track-header{margin-bottom:48px;}
.track-search-box{background:var(--ombre);border:1px solid var(--border);padding:36px 40px;margin-bottom:40px;}
.track-search-label{font-size:11px;color:var(--muted);letter-spacing:2px;margin-bottom:20px;}
.track-input-row{display:flex;gap:12px;margin-bottom:16px;}
.track-input{flex:1;background:var(--noir);border:1px solid var(--border);color:var(--ivory);font-family:'Montserrat',sans-serif;font-size:14px;font-weight:400;padding:14px 18px;outline:none;transition:border-color .2s;letter-spacing:1px;}
.track-input:focus{border-color:var(--gold);}
.track-input::placeholder{color:var(--muted);}
.track-search-btn{white-space:nowrap;flex-shrink:0;}
.track-hint{font-size:11px;color:var(--muted);letter-spacing:1px;}
/* ── JOURNEY ROADMAP ── */
.tc-journey{margin-bottom:40px;}
.tc-journey-title{font-size:10px;letter-spacing:4px;color:var(--champagne);text-transform:uppercase;margin-bottom:16px;text-align:center;}
.tc-road-canvas-wrap{position:relative;width:100%;border-radius:4px;overflow:hidden;}
#tc-road-canvas{display:block;width:100%;height:200px;}
.tc-stage-labels{display:flex;justify-content:space-between;padding:10px 20px 0;margin-top:4px;}
.tc-slabel{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1;}
.tc-slabel-dot{width:8px;height:8px;border-radius:50%;background:var(--border);transition:background .4s;}
.tc-slabel-dot.done{background:var(--gold);}
.tc-slabel-dot.current{background:var(--gold);box-shadow:0 0 8px var(--gold);animation:dotPulse 1.5s ease-in-out infinite;}
@keyframes dotPulse{0%,100%{box-shadow:0 0 8px var(--gold);}50%{box-shadow:0 0 16px var(--gold),0 0 28px rgba(168,148,94,.4);}}
.tc-slabel-text{font-size:7px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted);text-align:center;line-height:1.5;}
.tc-slabel-text.active{color:var(--champagne);}
@media(max-width:700px){#tc-road-canvas{height:140px;}.tc-slabel-text{font-size:6px;letter-spacing:1px;}}
/* Result card */
.track-card{background:var(--ombre);border:1px solid var(--border);padding:36px 40px;}
.tc-order-id{font-family:'Cormorant Garamond',serif;font-size:28px;color:var(--ivory);margin-bottom:4px;}
.tc-date{font-size:11px;color:var(--muted);letter-spacing:2px;margin-bottom:28px;}
.tc-status-row{display:flex;align-items:center;gap:12px;margin-bottom:32px;}
.tc-status-label{font-size:10px;letter-spacing:4px;color:var(--muted);text-transform:uppercase;}
.tc-awb-box{background:var(--noir);border:1px solid var(--border);padding:20px 24px;margin-bottom:32px;}
.tc-awb-label{font-size:10px;letter-spacing:4px;color:var(--gold);text-transform:uppercase;margin-bottom:8px;}
.tc-awb-val{font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--ivory);letter-spacing:2px;}
.tc-awb-courier{font-size:10px;color:var(--muted);margin-top:4px;letter-spacing:1px;}
.tc-track-link{display:inline-block;margin-top:12px;font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--gold);text-decoration:none;border-bottom:1px solid var(--gold);padding-bottom:2px;transition:opacity .2s;}
.tc-track-link:hover{opacity:.7;}
/* Shiprocket events */
.tc-events-wrap{margin-top:8px;}
.tc-tl-title{font-size:10px;letter-spacing:4px;color:var(--champagne);text-transform:uppercase;margin-bottom:16px;}
.tl-item{display:flex;gap:16px;padding:12px 0;border-bottom:1px solid var(--border);position:relative;}
.tl-item:last-child{border-bottom:none;}
.tl-dot{width:10px;height:10px;border-radius:50%;background:var(--border);flex-shrink:0;margin-top:3px;}
.tl-dot.active{background:var(--gold);}
.tl-body{flex:1;}
.tl-status{font-size:10px;color:var(--ivory);letter-spacing:1px;margin-bottom:2px;}
.tl-location{font-size:11px;color:var(--muted);letter-spacing:1px;}
.tl-time{font-size:10px;color:var(--muted);margin-top:-6px;}
/* Items */
.tc-items{margin-top:24px;padding-top:24px;border-top:1px solid var(--border);}
.tc-items-title{font-size:10px;letter-spacing:4px;color:var(--muted);text-transform:uppercase;margin-bottom:14px;}
.tc-item-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border);font-size:11px;}
.tc-item-row:last-child{border-bottom:none;}
.tc-item-name{color:var(--ivory);font-family:'Cormorant Garamond',serif;font-size:14px;line-height:1.3;}
.tc-item-meta{font-size:11px;color:var(--muted);letter-spacing:1px;margin-top:4px;}
.tc-item-price{color:var(--champagne);font-family:'Cormorant Garamond',serif;font-size:15px;}
.tc-not-found{padding:40px;text-align:center;background:var(--ombre);border:1px solid var(--border);}
.tc-nf-icon{font-size:32px;margin-bottom:12px;}
.tc-nf-text{font-family:'Cormorant Garamond',serif;font-size:22px;color:var(--ivory);margin-bottom:8px;}
.tc-nf-sub{font-size:10px;color:var(--muted);letter-spacing:1px;}
.tc-refresh-btn{background:transparent;border:1px solid var(--border);color:var(--muted);font-family:'Montserrat',sans-serif;font-size:10px;letter-spacing:3px;text-transform:uppercase;padding:8px 16px;cursor:pointer;transition:all .2s;margin-top:16px;}
.tc-refresh-btn:hover{border-color:var(--gold);color:var(--gold);}
.tc-loading{padding:40px;text-align:center;color:var(--muted);font-size:11px;letter-spacing:2px;}
/* ── Delivered Celebration Popup ── */
.delivered-popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;z-index:999991;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.6);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;animation:dpPopIn .6s cubic-bezier(.16,1,.3,1) forwards;}
.delivered-popup{background:#0C0B08;border:1px solid rgba(168,148,94,.35);padding:52px 48px;text-align:center;max-width:420px;width:90%;position:relative;overflow:hidden;transform:scale(.85) translateY(30px);animation:dpCardIn .6s cubic-bezier(.16,1,.3,1) .1s forwards;opacity:0;}
@media(max-width:480px){.delivered-popup{padding:36px 28px;max-width:340px;}.dp-title{font-size:26px !important;}.dp-checkmark{width:52px;height:52px;}.dp-checkmark svg{width:22px;height:22px;}.dp-message{font-size:13px !important;margin-bottom:20px !important;}}
.delivered-popup::before{content:'';position:absolute;inset:-1px;background:linear-gradient(135deg,rgba(168,148,94,.15),transparent 50%,rgba(168,148,94,.08));pointer-events:none;}
.dp-checkmark{width:64px;height:64px;margin:0 auto 28px;border:2px solid #A8945E;border-radius:50%;display:flex;align-items:center;justify-content:center;position:relative;}
.dp-checkmark svg{width:28px;height:28px;stroke:#A8945E;stroke-width:2.5;fill:none;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:30;stroke-dashoffset:30;animation:dpCheck .5s ease .5s forwards;}
.dp-glow{position:absolute;width:100%;height:100%;border-radius:50%;box-shadow:0 0 24px rgba(168,148,94,.4),0 0 48px rgba(168,148,94,.15);animation:dpGlow 2s ease-in-out infinite;}
.dp-title{font-family:'Cormorant Garamond',serif;font-size:32px;font-weight:300;color:#FAF8F3;margin-bottom:8px;letter-spacing:1px;}
.dp-subtitle{font-size:11px;letter-spacing:5px;text-transform:uppercase;color:#A8945E;margin-bottom:24px;}
.dp-message{font-family:'Cormorant Garamond',serif;font-size:15px;color:#6a6050;line-height:2;font-style:italic;margin-bottom:28px;}
.dp-review-btn{display:inline-block;border:1px solid #A8945E;color:#A8945E;background:transparent;font-family:'Montserrat',sans-serif;font-size:11px;letter-spacing:4px;text-transform:uppercase;padding:14px 36px;cursor:pointer;transition:all .3s;text-decoration:none;}
.dp-review-btn:hover{background:#A8945E;color:#0C0B08;}
.dp-dismiss{font-size:10px;letter-spacing:3px;color:#4a4040;text-transform:uppercase;margin-top:16px;cursor:pointer;transition:color .2s;}
.dp-dismiss:hover{color:#6a6050;}
@keyframes dpPopIn{to{opacity:1;}}
@keyframes dpCardIn{to{opacity:1;transform:scale(1) translateY(0);}}
@keyframes dpCheck{to{stroke-dashoffset:0;}}
@keyframes dpGlow{0%,100%{box-shadow:0 0 24px rgba(168,148,94,.4),0 0 48px rgba(168,148,94,.15);}50%{box-shadow:0 0 32px rgba(168,148,94,.6),0 0 64px rgba(168,148,94,.25);}}
.delivered-popup-overlay.fade-out{animation:dpPopOut .8s ease forwards;}
.delivered-popup-overlay.fade-out .delivered-popup{animation:dpCardOut .6s ease forwards;}
@keyframes dpPopOut{to{opacity:0;}}
@keyframes dpCardOut{to{opacity:0;transform:scale(.9) translateY(-20px);}}
[data-theme="light"] .delivered-popup{background:#FAF8F3;border-color:rgba(168,148,94,.3);}
[data-theme="light"] .dp-title{color:#0C0B08;}
[data-theme="light"] .dp-message{color:#8a7e6e;}
[data-theme="light"] .delivered-popup-overlay{background:rgba(255,255,255,.5);}

[data-theme="light"] .track-search-box{background:var(--ombre);border-color:var(--border);}
[data-theme="light"] .track-input{background:var(--input-bg);}
[data-theme="light"] .track-card{background:var(--ombre);border-color:var(--border);}
[data-theme="light"] .tc-awb-box{background:var(--input-bg);border-color:var(--border);}
@media(max-width:700px){
  .track-wrap{padding:90px 16px 48px;}
  .track-search-box{padding:24px 20px;}
  .track-input-row{flex-direction:column;}
  .track-card{padding:24px 20px;}

}


                600px  (large phone)
                480px  (phone — already handled above)
                380px  (small phone)
══════════════════════════════════════════════════════ */

/* ── TABLET LANDSCAPE (≤1100px) ── */
@media(max-width:1100px){
  .featured{ padding:100px 48px; gap:56px; }
  footer{ padding:72px 48px 40px; }
  .footer-bottom{ padding:20px 48px; }
  .scents-hero{ padding:140px 48px 72px; }
  .scents-controls{ padding:20px 48px; }
  .scents-results-bar{ padding:16px 48px; }
  .scents-grid-wrap{ padding:0 48px 100px; }
  .sh-count-num{ font-size:60px; }
}

/* ── TABLET PORTRAIT (≤900px) ── */
@media(max-width:900px){
  /* Nav */
  nav{ padding:18px 24px; }

  /* Hero */
  .hero-title{ font-size: clamp(48px, 12vw, 80px); }
  .hero-eyebrow{ letter-spacing:5px; }

  /* Featured / New Arrival */
  .featured{ padding:72px 24px; gap:40px; }
  .featured-3d{ height:380px; }
  .featured-img-wrap{ height:380px; }
  .fi-title{ font-size:clamp(32px,6vw,48px); }

  /* Carousel */
  .carousel-section{ padding:60px 0 80px; }
  .cs-header{ padding:0 24px; }

  /* Product page */
  .product-wrap{ grid-template-columns:1fr; padding:40px 24px; gap:32px; }
  .pv-main{ height:380px; }
  .pd-notes-grid{ grid-template-columns:repeat(3,1fr); gap:8px; }
  .pd-actions{ flex-wrap:wrap; }
  .pd-actions .btn-primary{ flex:1; min-width:140px; text-align:center; }

  /* Checkout */
  .checkout-modal{ max-width:100%; margin:0 16px; }
  .cfield-row{ grid-template-columns:1fr; }
  .cm-body{ padding:20px 20px; }
  .cm-header{ padding:20px 20px; }

  /* Story */
  .story-wrap{ padding:100px 32px 60px; }
  .story-columns{ grid-template-columns:1fr; gap:32px; }

  /* Contact */
  .contact-wrap{ padding:100px 32px 60px; }

  /* FAQ */
  .faq-wrap{ padding:100px 32px 80px; }
  .faq-cta{ padding:32px 24px; }

  /* Scents page */
  .scents-hero{ padding:120px 24px 56px; }
  .sh-title{ font-size:clamp(48px,10vw,80px); }
  .sh-count-num{ font-size:48px; }
  .scents-controls{ padding:14px 20px; }
  .scents-right-controls{ justify-content:flex-end; }
  .filter-pills{ width:100%; overflow-x:auto; flex-wrap:nowrap; scrollbar-width:none; -webkit-overflow-scrolling:touch; }
  .filter-pills::-webkit-scrollbar{display:none;}
  .scents-grid-wrap{ padding:0 20px 80px; }
  .scents-results-bar{ padding:12px 20px; }

  /* Footer */
  .footer-bottom{ padding:16px 24px; }
}

/* ── LARGE PHONE (≤600px) ── */
@media(max-width:600px){
  /* Nav */
  nav{ padding:16px 16px; }
  .nav-brand{ font-size:18px; letter-spacing:3px; }
  .nav-sub{ display:none; }

  /* Hero */
  .hero-title{ font-size:clamp(42px,13vw,64px); letter-spacing:-0.5px; }
  .hero-content{ padding:0 16px; }

  /* Featured */
  .featured{ padding:56px 16px; gap:32px; }
  .featured-3d,.featured-img-wrap{ height:300px; }
  .fi-title{ font-size:clamp(28px,8vw,40px); }
  .fi-desc{ font-size:11px; }
  .fi-notes{ gap:16px; }
  .fi-price{ font-size:22px; }
  .btn-primary{ padding:16px 32px; font-size:11px; width:100%; text-align:center; }

  /* Carousel */
  .carousel-section{ padding:48px 0 64px; }
  .carousel-card{ width:300px; }
  .cc-visual{ height:200px; }

  /* Product page */
  .pv-main{ height:300px; }
  .pd-notes-grid{ grid-template-columns:1fr; gap:8px; }
  .pd-price{ font-size:28px; }
  .pd-mood{ font-size:15px; }
  .size-opts{ gap:8px; }
  .size-opt{ padding:10px 14px; font-size:11px; }
  .pd-actions{ gap:8px; }
  .pd-actions .btn-primary,.pd-actions .btn-add,.pd-actions .btn-wish{ width:100%; }
  .pd-perks{ gap:10px; }

  /* Review section */
  .reviews-wrap{ padding:40px 16px; }
  .review-form-modal .rfm-inner{ padding:24px 16px; width:calc(100vw - 32px); }
  .rfm-stars{ gap:8px; }
  .rfm-star{ font-size:28px; }

  /* Cart */
  .cart-panel{ width:100%; left:0; right:0; }

  /* Checkout */
  .checkout-modal{ margin:0; border-radius:0; max-height:100vh; }
  .cm-body{ padding:16px 16px; }
  .cm-header{ padding:16px 16px; }

  /* Scents page */
  .scents-hero{ padding:100px 16px 40px; }
  .sh-title{ font-size:clamp(40px,12vw,60px); }
  .sh-desc{ font-size:14px; }
  .sh-count{ display:none; }
  .sc-card-visual{ height:240px; }
  .scents-controls{ padding:10px 12px; top:var(--nav-h, 52px); gap:8px; }
  .scents-right-controls{ gap:6px; }
  .sort-select{ font-size:7px; padding:6px 22px 6px 8px; }
  .fp-pill{ font-size:7px; padding:6px 10px; letter-spacing:2px; }
  .fp-label{ display:none; }
  .scents-grid-wrap{ padding:0 16px 64px; }

  /* Story */
  .story-wrap{ padding:90px 20px 48px; }
  .story-columns{ grid-template-columns:1fr; gap:24px; }
  .story-pull{ font-size:clamp(20px,5vw,28px); padding-left:20px; }
  .story-sig{ flex-direction:column; gap:16px; }
  .story-sig-right{ text-align:left; }

  /* Contact */
  .contact-wrap{ padding:90px 16px 48px; }
  .contact-info{ gap:20px; }
  .ci-block{ gap:12px; }

  /* FAQ */
  .faq-wrap{ padding:90px 16px 64px; }
  .fq-text{ font-size:16px; }
  .faq-cta{ padding:24px 16px; }
  .faq-cta-btns .btn-primary{ width:100%; }

  /* Footer */
  footer{ padding:40px 16px 28px; gap:24px; }
  .footer-brand-name{ font-size:22px; }
  .footer-bottom{ padding:16px 16px; gap:8px; }
  .fb-copy{ font-size:10px; }

  /* Search */
  .search-header{ padding:16px 16px; }
  .search-input-wrap{ padding:24px 16px 16px; }
  .search-body{ padding:0 16px 24px; }
  .search-input{ font-size:clamp(22px,7vw,36px); }

  /* Toast */
  .toast{ font-size:11px; padding:12px 20px; max-width:calc(100vw - 32px); white-space:normal; text-align:center; }
}

/* ── SMALL PHONE (≤420px) ── */
@media(max-width:420px){
  .hero-title{ font-size:clamp(38px,13vw,52px); }
  .nav-brand{ font-size:16px; letter-spacing:2px; }

  .featured-3d,.featured-img-wrap{ height:260px; }
  .fi-title{ font-size:clamp(26px,9vw,36px); }

  .pv-main{ height:260px; }
  .pd-name{ font-size:clamp(28px,8vw,40px); }

  .carousel-card{ width:260px; }
  .cc-visual{ height:180px; }

  .sh-title{ font-size:clamp(36px,12vw,52px); }
  .faq-headline{ font-size:clamp(40px,12vw,64px); }
  .story-headline{ font-size:clamp(44px,12vw,60px); }

  /* Scents list view — compact horizontal like search results */
  .scents-grid.view-list .sc-card{ grid-template-columns:80px 1fr; }
  .scents-grid.view-list .sc-card-visual{ height:80px; }
  .scents-grid.view-list .sc-card-body{ border-left:1px solid var(--border); border-top:none; padding:12px 16px; }
  .scents-grid.view-list .sc-card-badge{ display:none; }
  .scents-grid.view-list .sc-card-notes{ display:none; }
  .scents-grid.view-list .sc-card-footer{ margin-top:auto; }
  .scents-grid.view-list .sc-card-name{ font-size:16px; }

  .checkout-modal{ max-height:100dvh; }
}

/* ── TOUCH / HOVER STATES ── */
@media(hover:none){
  /* All cursor:none elements should use auto on touch */
  *{ cursor:auto !important; }
  .btn-primary:hover,.nav-cart:hover{ background:transparent; }
  .carousel-card:hover{ transform:none; }
  .sc-card:hover{ transform:none; }
}

/* ── SAFE AREA (iPhone notch/home indicator) ── */
@supports(padding-bottom:env(safe-area-inset-bottom)){
  nav{ padding-left:max(16px,env(safe-area-inset-left)); padding-right:max(16px,env(safe-area-inset-right)); }
  .mobile-menu{ padding-bottom:env(safe-area-inset-bottom); }
  .cart-panel{ padding-bottom:env(safe-area-inset-bottom); }
  footer{ padding-left:max(20px,env(safe-area-inset-left)); padding-right:max(20px,env(safe-area-inset-right)); }
}

/* ── LANDSCAPE PHONE ── */
@media(max-height:500px) and (orientation:landscape){
  .hero{ height:auto; min-height:100vh; padding:80px 20px 40px; }
  .mobile-menu{ overflow-y:auto; }
  .pv-main{ height:240px; }
  .featured-3d,.featured-img-wrap{ height:260px; }
  .checkout-modal{ max-height:95vh; }
}

/* ── HIGH DPI / RETINA ── */
@media(-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){
  .pv-img-thumb{ image-rendering:-webkit-optimize-contrast; }
}

/* (Theme intro popup CSS removed — popup deprecated, light is the default theme.) */

/* ══ COOKIE CONSENT ══════════════════════════════════ */
.cookie-bar{position:fixed;bottom:0;left:0;right:0;z-index:10000;background:var(--ombre);border-top:1px solid var(--border);padding:16px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px;transform:translateY(100%);opacity:0;transition:transform .45s cubic-bezier(.4,0,.2,1),opacity .45s ease;pointer-events:none;}
.cookie-bar.show{transform:translateY(0);opacity:1;pointer-events:auto;}
.cookie-bar-text{font-family:'DM Sans',sans-serif;font-size:11px;color:var(--muted);line-height:1.6;letter-spacing:0.3px;}
.cookie-bar-text a{color:var(--gold);text-decoration:none;border-bottom:1px solid transparent;transition:border-color .2s;}
.cookie-bar-text a:hover{border-bottom-color:var(--gold);}
.cookie-bar-btn{flex-shrink:0;background:transparent;border:1px solid var(--gold);color:var(--gold);font-family:'DM Sans',sans-serif;font-size:10px;letter-spacing:3px;text-transform:uppercase;padding:10px 24px;cursor:pointer;transition:background .25s,color .25s;white-space:nowrap;}
.cookie-bar-btn:hover{background:var(--gold);color:var(--noir);}
@media(max-width:600px){
  .cookie-bar{flex-direction:column;align-items:stretch;gap:12px;padding:16px 20px;}
  .cookie-bar-btn{text-align:center;padding:12px 20px;}
}

/* ════════════════════════════════════════════════════════
   THE JOURNAL  (Gazette editorial · mapped to site vars)
════════════════════════════════════════════════════════ */
#blog-page, #blog-article-page {
  font-family:'EB Garamond', Georgia, serif;
  background: var(--noir);
  color: var(--ivory);
  padding-top: 86px; /* clear fixed nav */
  min-height: 100vh;
}
#blog-page .jo-wrap, #blog-article-page .jo-wrap { max-width: 1400px; margin: 0 auto; }

/* Masthead */
.jo-masthead {
  text-align:center;
  border-top: 3px double var(--ivory);
  border-bottom: 3px double var(--ivory);
  padding: 36px 32px;
  background: var(--noir);
  transition: var(--theme-transition);
}
.jo-orn {
  font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase;
  color: var(--muted); margin-bottom: 10px;
  display:flex; align-items:center; justify-content:center; gap: 16px;
  font-family:'EB Garamond', serif;
}
.jo-orn::before, .jo-orn::after { content:'─ ─ ─'; color: var(--border); letter-spacing:-0.05em; }
.jo-title {
  font-family:'Cormorant Garamond', serif;
  font-size: 92px; font-weight: 300; letter-spacing: 0.12em; line-height: 0.9;
  color: var(--ivory);
}
.jo-title em { font-style: italic; color: var(--champagne); }
.jo-sub {
  font-size: 10px; letter-spacing: 0.38em; text-transform: uppercase;
  color: var(--muted); margin-top: 16px;
  border-top: 1px solid var(--border); padding-top: 12px;
}

/* Dateline */
.jo-dateline {
  display:flex; justify-content:space-between;
  padding: 7px 32px;
  font-size: 10px; letter-spacing: 0.09em; text-transform: uppercase;
  color: var(--muted); font-style: italic;
  border-bottom: 1px solid var(--border);
}

/* Controls */
.jo-controls {
  display:flex; justify-content:space-between; align-items:center;
  padding: 14px 32px;
  border-bottom: 1px solid var(--border);
  gap: 32px;
  background: var(--ombre);
  transition: var(--theme-transition);
}
.jo-search-wrap { position: relative; max-width: 280px; flex: 1; }
.jo-search {
  width: 100%; padding: 8px 24px 8px 0;
  border: none; border-bottom: 1px solid var(--border);
  background: transparent; color: var(--ivory);
  font-family:'EB Garamond', serif; font-size: 14px;
  outline: none; transition: border-color 0.2s;
  cursor: text;
}
.jo-search::placeholder { color: var(--muted); font-style: italic; }
.jo-search:focus { border-bottom-color: var(--gold); }
.jo-search-icon { position: absolute; right: 0; top: 50%; transform: translateY(-50%); color: var(--muted); font-size: 11px; pointer-events:none; }

.jo-pills { display:flex; gap: 7px; flex-wrap: wrap; }
.jo-pill {
  font-size: 10px; letter-spacing: 0.13em; text-transform: uppercase;
  padding: 5px 13px; border: 1px solid var(--border);
  background: transparent; color: var(--muted); cursor: pointer;
  font-family:'EB Garamond', serif; transition: all 0.2s;
}
.jo-pill:hover { color: var(--ivory); border-color: var(--muted); }
.jo-pill.active {
  color: var(--ivory); border-color: var(--gold);
  background: color-mix(in srgb, var(--gold) 10%, transparent);
}

/* Hero (pinned) */
.jo-hero {
  display:grid; grid-template-columns: 1fr 1fr;
  border-bottom: 2px solid var(--ivory);
  cursor: pointer;
}
.jo-hero-img {
  height: 520px; overflow:hidden; background: var(--ombre);
  background-size: cover; background-position: center;
}
.jo-hero-img.placeholder::after {
  content:'✦'; display:flex; align-items:center; justify-content:center;
  height:100%; color: var(--border); font-size: 48px;
}
.jo-hero-body {
  padding: 58px; border-left: 1px solid var(--border);
  display:flex; flex-direction:column; justify-content:space-between;
}
.jo-hero-label {
  font-size: 10px; letter-spacing: 0.22em; text-transform: uppercase;
  color: var(--muted); display:flex; align-items:center; gap: 13px; margin-bottom: 26px;
}
.jo-hero-label::before {
  content:''; width: 28px; height: 1px; background: var(--gold); flex-shrink: 0;
}
.jo-hero-h {
  font-family:'Cormorant Garamond', serif;
  font-size: 52px; font-weight: 400; line-height: 1.1; color: var(--ivory);
  margin-bottom: 22px; flex: 1;
}
.jo-hero-h em { font-style: italic; color: var(--champagne); }
.jo-hero-p {
  font-size: 16px; line-height: 1.9; color: var(--muted);
  margin-bottom: 26px; text-wrap: pretty;
}
.jo-hero-foot {
  display:flex; justify-content:space-between; align-items:flex-end;
  border-top: 1px solid var(--border); padding-top: 16px;
}
.jo-meta { font-size: 11px; color: var(--muted); font-style: italic; }
.jo-meta strong { font-style: normal; color: var(--ivory); font-weight: 500; display:block; margin-bottom: 2px; }
.jo-link {
  font-size: 11px; letter-spacing: 0.16em; text-transform: uppercase;
  color: var(--ivory); text-decoration: none; transition: color 0.2s;
  background: transparent; border: none; cursor: pointer; font-family:'EB Garamond', serif; padding: 0;
}
.jo-link:hover { color: var(--gold); }

/* Section divider */
.jo-sec {
  display:flex; align-items:center; gap: 16px;
  padding: 13px 32px;
  border-top: 2px solid var(--ivory); border-bottom: 1px solid var(--border);
  font-size: 10px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--ivory);
}
.jo-sec-line { flex: 1; height: 1px; background: var(--border); }

/* Grid */
.jo-grid { display:grid; grid-template-columns: 1fr 1px 1fr 1px 1fr; background: var(--noir); transition: var(--theme-transition); }
.jo-grid-div { background: var(--border); }
.jo-col { padding: 36px; cursor: pointer; transition: background 0.2s; }
.jo-col:hover { background: color-mix(in srgb, var(--gold) 4%, transparent); }
.jo-col-img {
  height: 180px; margin-bottom: 20px; background: var(--ombre);
  background-size: cover; background-position: center;
}
.jo-col-img.placeholder::after {
  content:'✦'; display:flex; align-items:center; justify-content:center;
  height:100%; color: var(--border); font-size: 28px;
}
.jo-tag { font-size: 10px; letter-spacing: 0.18em; text-transform: uppercase; color: var(--gold); margin-bottom: 8px; display: block; }
.jo-col-h {
  font-family:'Cormorant Garamond', serif;
  font-size: 26px; font-weight: 400; line-height: 1.2; color: var(--ivory); margin-bottom: 8px;
}
.jo-col-h em { font-style: italic; color: var(--champagne); }
.jo-col-p {
  font-size: 14px; line-height: 1.78; color: var(--muted);
  margin-bottom: 14px; text-wrap: pretty;
}

/* Inner Circle CTA */
.jo-cta {
  display:grid; grid-template-columns: 1fr 1fr; gap: 48px;
  padding: 56px 64px; background: var(--ombre); transition: var(--theme-transition);
  border-top: 2px solid var(--ivory); align-items:center;
}
.jo-cta-h {
  font-family:'Cormorant Garamond', serif;
  font-size: 44px; font-weight: 300; line-height: 1.15; color: var(--ivory);
}
.jo-cta-h em { font-style: italic; color: var(--gold); }
.jo-cta-p {
  font-size: 15px; line-height: 1.82; color: var(--muted);
  font-style: italic; margin-bottom: 22px; text-wrap: pretty;
}
.jo-cta-form { display:flex; }
.jo-cta-in {
  flex: 1; padding: 11px 16px; border: 1px solid var(--border);
  background: var(--noir); color: var(--ivory);
  font-family:'EB Garamond', serif; font-size: 15px;
  outline: none; font-style: italic; transition: border-color 0.2s;
  cursor: text;
}
.jo-cta-in:focus { border-color: var(--gold); }
.jo-cta-btn {
  padding: 11px 22px; background: var(--ivory); color: var(--noir);
  border: 1px solid var(--ivory); font-family:'EB Garamond', serif;
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  cursor: pointer; transition: all 0.2s; white-space: nowrap;
}
.jo-cta-btn:hover { background: var(--gold); border-color: var(--gold); color: var(--noir); }

/* Footer strip */
.jo-footer {
  border-top: 1px solid var(--border); padding: 20px 32px;
  display:flex; justify-content:space-between; align-items:center;
  font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--muted);
}

/* Empty state */
.jo-empty {
  padding: 80px 32px; text-align:center; color: var(--muted);
  font-family:'Cormorant Garamond', serif; font-size: 20px; font-style: italic;
}

/* ── ARTICLE PAGE ── */
.jo-art-wrap { max-width: 760px; margin: 0 auto; padding: 48px 32px 120px; }
.jo-art-back { margin-bottom: 32px; }
.jo-art-eyebrow {
  font-size: 10px; letter-spacing: 0.32em; text-transform: uppercase;
  color: var(--gold); margin-bottom: 16px; text-align: center;
}
.jo-art-h1 {
  font-family:'Cormorant Garamond', serif;
  font-size: 64px; font-weight: 300; line-height: 1.08;
  color: var(--ivory); text-align: center; margin-bottom: 16px;
}
.jo-art-h1 em { font-style: italic; color: var(--champagne); }
.jo-art-sub {
  font-size: 18px; line-height: 1.7; color: var(--muted);
  font-style: italic; text-align: center; margin-bottom: 28px;
  font-family:'EB Garamond', serif;
}
.jo-art-meta {
  display:flex; justify-content:center; align-items:center; gap: 20px;
  font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--muted); padding-bottom: 32px;
  border-bottom: 1px solid var(--border); margin-bottom: 48px;
}
.jo-art-meta span.dot { color: var(--border); }
.jo-art-cover { width: 100%; margin-bottom: 48px; background: var(--ombre); }
.jo-art-cover img { width: 100%; display: block; }
.jo-art-body {
  font-family:'EB Garamond', Georgia, serif;
  font-size: 19px; line-height: 1.85; color: var(--ivory);
}
.jo-art-body p { margin-bottom: 24px; text-wrap: pretty; }
.jo-art-body h2 {
  font-family:'Cormorant Garamond', serif; font-weight: 400;
  font-size: 36px; line-height: 1.2; color: var(--ivory);
  margin: 56px 0 20px;
}
.jo-art-body h3 {
  font-family:'Cormorant Garamond', serif; font-weight: 400;
  font-size: 26px; line-height: 1.25; color: var(--ivory);
  margin: 40px 0 16px;
}
.jo-art-body em { font-style: italic; color: var(--champagne); }
.jo-art-body strong { font-weight: 500; color: var(--ivory); }
.jo-art-body a { color: var(--gold); text-decoration: none; border-bottom: 1px solid color-mix(in srgb, var(--gold) 50%, transparent); }
.jo-art-body a:hover { border-bottom-color: var(--gold); }
.jo-art-body blockquote {
  border-left: 2px solid var(--gold);
  margin: 32px 0; padding: 8px 0 8px 28px;
  font-style: italic; color: var(--champagne);
  font-family:'Cormorant Garamond', serif; font-size: 22px; line-height: 1.5;
}
.jo-art-body hr {
  border: none; text-align: center; margin: 48px 0;
  font-size: 10px; letter-spacing: 0.4em; color: var(--muted);
}
.jo-art-body hr::after { content: '✦ ✦ ✦'; }
.jo-art-body figure { margin: 40px 0; }
.jo-art-body figure img { width: 100%; display: block; background: var(--ombre); }
.jo-art-body figcaption {
  font-size: 12px; color: var(--muted); font-style: italic;
  text-align: center; margin-top: 10px; letter-spacing: 0.06em;
}
.jo-art-body ul, .jo-art-body ol { margin: 0 0 24px 28px; }
.jo-art-body li { margin-bottom: 10px; }

/* Related */
.jo-related-wrap {
  max-width: 1200px; margin: 0 auto; padding: 40px 32px 80px;
  border-top: 1px solid var(--border);
}
.jo-related-h {
  font-family:'EB Garamond', serif; font-size: 11px;
  letter-spacing: 0.28em; text-transform: uppercase;
  color: var(--ivory); margin-bottom: 24px; text-align:center;
}
.jo-related-grid { display:grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }

@media (max-width: 900px) {
  #blog-page, #blog-article-page { padding-top: 70px; }
  .jo-title { font-size: 56px; }
  .jo-hero { grid-template-columns: 1fr; }
  .jo-hero-img { height: 300px; }
  .jo-hero-body { padding: 32px; }
  .jo-hero-h { font-size: 36px; }
  .jo-grid { grid-template-columns: 1fr; }
  .jo-grid-div { display: none; }
  .jo-cta { grid-template-columns: 1fr; padding: 32px; gap: 20px; }
  .jo-cta-h { font-size: 30px; }
  .jo-dateline span:nth-child(2) { display: none; }
  .jo-related-grid { grid-template-columns: 1fr; }
  .jo-art-h1 { font-size: 40px; }
  .jo-art-body { font-size: 17px; }
  .jo-art-body h2 { font-size: 28px; }
}
@media (max-width: 600px) {
  .jo-title { font-size: 42px; }
  .jo-controls { flex-direction: column; align-items: stretch; gap: 14px; padding: 14px 20px; }
  .jo-search-wrap { max-width: none; }
  .jo-dateline { padding: 7px 16px; font-size: 11px; }
  .jo-masthead { padding: 28px 16px; }
  .jo-sec { padding: 13px 20px; }
  .jo-col { padding: 28px 20px; }
  .jo-art-wrap { padding: 24px 20px 80px; }
}

/* ═══════════════════════════════════════════════════════════
   INSTAGRAM · "LIVE FROM THE MAISON" (Curator.io mosaic)
   Wraps the Curator.io embed in our typography + spacing so
   it lives inside the house aesthetic, not as a foreign island.
   Curator's own grid (.crt-feed) is left alone — we just frame it.
   ═══════════════════════════════════════════════════════════ */
.ig-section{
  padding: 110px 64px 80px;
  background: var(--bg);
  position: relative;
}
.ig-header{
  text-align: center;
  margin: 0 auto 56px;
  max-width: 760px;
}
.ig-eyebrow{
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 6px;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 22px;
  font-weight: 400;
}
.ig-title{
  font-family: 'Cormorant Garamond', serif;
  font-weight: 300;
  font-size: clamp(40px, 5.6vw, 76px);
  line-height: 1.04;
  letter-spacing: -0.5px;
  color: var(--text);
  margin: 0 0 22px;
}
.ig-title em{
  font-style: italic;
  color: var(--gold);
  font-weight: 300;
}
.ig-lead{
  font-family: 'Montserrat', sans-serif;
  font-weight: 300;
  font-size: 14px;
  line-height: 1.7;
  letter-spacing: 0.4px;
  color: var(--muted, var(--text));
  opacity: 0.78;
  max-width: 520px;
  margin: 0 auto;
}

/* Feed wrap: gold hairline frame, generous padding, never wider than 1320px.
   overflow:hidden contains any Curator template that tries to spill
   horizontally (e.g. a misconfigured Carousel template with reel tiles). */
.ig-feed-wrap{
  max-width: 1320px;
  margin: 0 auto;
  padding: 28px 28px 56px;     /* extra bottom pad so the "Powered by" tag sits below tiles, not over them */
  background: var(--ombre);
  box-shadow: inset 0 0 0 1px var(--border);
  border-radius: 4px;
  position: relative;
  min-height: 280px;
  overflow: hidden;
}
/* Curator injects its own grid into #curator-feed-default-feed-layout.
   We override its defaults so it inherits our spacing + tile radius. */
.ig-feed-wrap #curator-feed-default-feed-layout{ max-width: 100%; }
.ig-feed-wrap .crt-widget{
  background: transparent !important;
  max-width: 100% !important;
}
.ig-feed-wrap .crt-feed{
  background: transparent !important;
  max-width: 100% !important;
}
.ig-feed-wrap .crt-post{
  border-radius: 6px !important;
  overflow: hidden !important;
  transition: transform .35s ease, box-shadow .35s ease !important;
}
.ig-feed-wrap .crt-post:hover{
  transform: translateY(-3px);
  box-shadow: 0 14px 32px rgba(0,0,0,0.18) !important;
}
/* Push Curator's "Powered by" tag out of the tile area, under the grid */
.ig-feed-wrap .crt-logo{
  position: absolute !important;
  bottom: 16px;
  right: 22px;
  font-size: 10px !important;
  opacity: 0.6;
}
/* Paid Curator tier removes the badge entirely — uncomment to hide if upgraded */
/* .ig-feed-wrap .crt-logo{ display: none !important; } */

/* CTA row beneath the feed */
.ig-cta-row{
  text-align: center;
  margin-top: 40px;
}
.ig-cta{
  display: inline-block;
  font-family: 'Montserrat', sans-serif;
  font-size: 11px;
  letter-spacing: 4px;
  text-transform: uppercase;
  color: var(--gold);
  text-decoration: none;
  padding: 14px 28px;
  box-shadow: inset 0 0 0 1px var(--gold);
  border-radius: 2px;
  transition: background .25s ease, color .25s ease;
}
.ig-cta:hover{
  background: var(--gold);
  color: var(--noir);
}
.ig-cta span{
  margin-left: 6px;
  display: inline-block;
  transition: transform .25s ease;
}
.ig-cta:hover span{ transform: translateX(4px); }

/* ── Tablet ── */
@media (max-width: 900px){
  .ig-section{ padding: 80px 32px 60px; }
  .ig-header{ margin-bottom: 40px; }
  .ig-feed-wrap{ padding: 18px; }
}

/* ── Mobile ── */
@media (max-width: 600px){
  .ig-section{ padding: 60px 18px 50px; }
  .ig-eyebrow{ font-size: 10px; letter-spacing: 4px; margin-bottom: 16px; }
  .ig-title{ font-size: clamp(34px, 11vw, 48px); }
  .ig-lead{ font-size: 13px; }
  .ig-feed-wrap{ padding: 12px; border-radius: 3px; }
  .ig-cta{ font-size: 10px; letter-spacing: 3px; padding: 12px 22px; }
}
