/* ================================================================
   ROYALWEALTHPERFUMERY — STYLESHEET
   Bright, feminine, editorial luxury. Warm ivory/white dominates;
   blush pink is the main accent; soft rose gold is the rare, premium
   accent (used sparingly — never as a background everywhere); warm
   cocoa carries the type; champagne is the tiny gilded highlight.
   ================================================================ */

/* ============ ICONS ============ */
.ph{display:inline-flex; align-items:center; justify-content:center; vertical-align:middle;}
i.ph{font-style:normal;}
.icon-btn i, .mobile-link i, .chip i, .footer-col a i, .cat-card-body h3 i, .mobile-panel-foot .btn i{
  display:inline-flex; align-items:center; justify-content:center;
}

/* ============ TOKENS ============
   Luxury feminine palette: soft ivory, dusty rose, warm taupe, 
   premium gold. Cohesive, elegant, premium.              */
:root{
  --cream:#FFF8F6;
  --cream-deep:#FDF0EE;
  --peach:#F8DDE3;
  --peach-soft:#FFF0F3;
  --peach-line:rgba(222,174,185,0.34);
  --apricot:#DCA7B4;
  --apricot-deep:#B87988;
  --editorial:#F4D6DD;
  --espresso:#3F3138;
  --espresso-soft:#75636A;
  --espresso-faint:#BCAAAF;
  --champagne:#D7AE78;
  --champagne-soft:#FFF1D7;
  --white:#FFFFFF;
  --glass:rgba(250,247,244,0.82);
  --shadow-soft:0 18px 42px rgba(74,63,60,0.08);
  --shadow-luxe:0 24px 70px rgba(74,63,60,0.12);
  --serif:'Cormorant Garamond', Georgia, serif;
  --sans:'Manrope', -apple-system, sans-serif;
  --accent:'Manrope', -apple-system, sans-serif;
  --hdr:80px;
  --ease:cubic-bezier(.16,1,.3,1);
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--sans); font-weight:400; color:var(--espresso);
  background:
    radial-gradient(circle at 8% 4%, rgba(232,213,205,.20), transparent 30rem),
    linear-gradient(180deg,var(--cream) 0%,#fff 42%,var(--cream) 100%);
  line-height:1.65; overflow-x:hidden;
  -webkit-font-smoothing:antialiased;
}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
img{max-width:100%;display:block;object-fit:cover;}
button{cursor:pointer;border:none;background:none;font-family:inherit;outline:none;}
input{font-family:inherit;outline:none;border:none;}
.container{width:90%;max-width:1280px;margin:0 auto;}
.container--narrow{width:90%;max-width:760px;margin:0 auto;}
.serif{font-family:var(--serif);}
:focus-visible{outline:2px solid var(--apricot-deep); outline-offset:3px;}
@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms !important; transition-duration:.001ms !important;}}

.page-section{display:none;}
.page-section.active{display:block;}

/* ============ TYPE UTILS ============ */
.eyebrow{
  font-family:var(--accent); font-size:.72rem; font-weight:600; letter-spacing:.26em;
  text-transform:uppercase; color:var(--apricot-deep);
}
.eyebrow.on-dark{color:var(--champagne-soft);}
h1,h2,h3,h4{font-family:var(--serif); font-weight:500; color:var(--espresso); letter-spacing:-.01em;}
.section-head{max-width:640px; margin:0 auto 46px; text-align:center;}
.section-head h2{font-size:clamp(1.9rem,3.4vw,2.7rem); margin:10px 0 14px; line-height:1.15;}
.section-head p{color:var(--espresso-soft); font-size:1rem; font-weight:400;}
.section-pad{padding:110px 0;}
@media(max-width:768px){.section-pad{padding:72px 0;}}

/* ============ BUTTONS ============ */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:42px; padding:11px 22px; font-size:.68rem; font-weight:700; letter-spacing:.12em;
  text-transform:uppercase; border-radius:100px; transition:all .35s var(--ease); white-space:nowrap; font-family:var(--accent);
  position:relative; overflow:hidden; isolation:isolate;
}
.btn::before{
  content:''; position:absolute; inset:1px auto 1px 1px; width:42%;
  background:linear-gradient(90deg,rgba(255,255,255,.4),rgba(255,255,255,0));
  border-radius:inherit; pointer-events:none; z-index:-1;
}
.btn-primary{
  background:linear-gradient(135deg,#FFF3F6,var(--peach) 58%,#F3C8D2);
  color:var(--espresso); box-shadow:0 10px 20px rgba(220,167,180,.18), inset 0 1px 0 rgba(255,255,255,.55);
}
.btn-primary:hover{transform:translateY(-2px); box-shadow:0 16px 34px rgba(220,167,180,.25), inset 0 1px 0 rgba(255,255,255,.62);}
.btn-outline{background:rgba(255,255,255,.72); color:var(--espresso); border:1px solid rgba(74,63,60,.18); box-shadow:inset 0 1px 0 rgba(255,255,255,.8);}
.btn-outline:hover{background:#FFF3F6; color:var(--espresso); transform:translateY(-2px); box-shadow:0 12px 28px rgba(220,167,180,.18);}
.btn-gold{
  background:linear-gradient(135deg,var(--champagne),#E7CC9A 55%,var(--champagne));
  color:var(--espresso); box-shadow:0 14px 32px rgba(212,175,143,.22), inset 0 1px 0 rgba(255,255,255,.32);
}
.btn-gold:hover{transform:translateY(-2px); box-shadow:0 20px 44px rgba(212,175,143,.28), inset 0 1px 0 rgba(255,255,255,.32);}
.btn-light{background:rgba(255,255,255,.92); color:var(--espresso); box-shadow:0 14px 30px rgba(74,63,60,.10);}
.btn-light:hover{transform:translateY(-2px); background:#fff;}
.btn-wa{
  background:linear-gradient(135deg,#23a35a,#2db86d); color:#fff; width:100%; min-height:42px; padding:11px 18px; border-radius:100px;
  font-size:.7rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
  display:flex; align-items:center; justify-content:center; gap:7px; transition:all .3s var(--ease);
  box-shadow:0 12px 24px rgba(35,163,90,.18), inset 0 1px 0 rgba(255,255,255,.26);
}
.btn-wa:hover{transform:translateY(-2px); box-shadow:0 16px 32px rgba(35,163,90,.25), inset 0 1px 0 rgba(255,255,255,.3);}
.btn-wa i{font-size:1.05rem;}
.btn-sm{min-height:36px; padding:9px 14px; font-size:.62rem;}

/* ============ LOADER ============ */
#loader{
  position:fixed; inset:0; z-index:9999; background:var(--cream);
  display:flex; flex-direction:column; align-items:center; justify-content:center; gap:18px;
  transition:opacity .7s var(--ease), visibility .7s var(--ease);
}
#loader.hide{opacity:0; visibility:hidden;}
.loader-mark{font-family:var(--serif); font-size:1.6rem; letter-spacing:.3em; color:var(--espresso);}
.loader-bar{width:180px; height:2px; background:var(--peach-line); position:relative; overflow:hidden; border-radius:2px;}
.loader-bar::after{content:''; position:absolute; inset:0; width:40%; background:var(--apricot-deep); animation:loaderMove 1.1s ease-in-out infinite;}
@keyframes loaderMove{0%{transform:translateX(-100%);}100%{transform:translateX(340%);}}

/* ============ TOASTS ============ */
#toastContainer{position:fixed; top:100px; right:20px; z-index:4000; display:flex; flex-direction:column; gap:10px;}
.toast{
  background:var(--espresso); color:var(--cream); padding:14px 20px; border-radius:12px; font-size:.85rem;
  box-shadow:var(--shadow-luxe); display:flex; align-items:center; gap:10px; animation:toastIn .4s var(--ease);
}
.toast i{color:var(--champagne);}
@keyframes toastIn{from{opacity:0; transform:translateY(-10px);}to{opacity:1; transform:translateY(0);}}

/* ============ HEADER ============ */
header{
  position:fixed; top:0; left:0; right:0; z-index:1000; height:var(--hdr);
  transition:background .4s var(--ease), box-shadow .4s var(--ease), border-color .4s var(--ease);
  background:rgba(255,255,255,.88); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
  border-bottom:1px solid rgba(232,213,205,.58);
  box-shadow:0 10px 32px rgba(74,63,60,.08);
}
header.on-light{background:rgba(255,255,255,.94); border-color:rgba(232,213,205,.72); box-shadow:0 12px 36px rgba(74,63,60,.09);}
.nav-container{height:var(--hdr); display:flex; align-items:center; justify-content:space-between;}
.logo-wrap{display:flex; align-items:center; gap:12px; flex:1; min-width:0;}
.brand-mark{height:40px; width:auto; flex-shrink:0;}
.brand-text{display:flex; flex-direction:column; line-height:1.1; min-width:0;}
.logo{display:flex; flex-direction:column; align-items:flex-start; gap:1px; color:var(--espresso); line-height:1;}
.logo-main, .logo-sub{display:inline-block; white-space:nowrap;}
.logo-main{font-family:var(--serif); font-size:1.08rem; font-weight:600; letter-spacing:.04em;}
.logo-sub{font-family:var(--accent); font-size:.68rem; font-weight:600; letter-spacing:.31em; text-transform:uppercase; color:var(--espresso-soft);}
.logo-tag{font-family:var(--accent); font-size:.52rem; letter-spacing:.12em; text-transform:uppercase; color:var(--apricot-deep); margin-top:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;}
.brand-wishlist{
  width:38px; height:38px; border-radius:50%; background:rgba(74,63,60,.04); display:flex; align-items:center; justify-content:center;
  color:var(--espresso); font-size:1rem; transition:all .3s var(--ease); position:relative; margin:0 24px 0 10px; flex-shrink:0;
}
.brand-wishlist:hover{background:rgba(74,63,60,.09); transform:translateY(-1px);}
.nav-links{display:flex; align-items:center; gap:34px;}
.nav-links a{font-family:var(--accent); font-size:.78rem; font-weight:700; letter-spacing:.05em; color:var(--espresso); position:relative; padding:8px 0;}
.nav-links a::after{content:''; position:absolute; left:0; bottom:-2px; width:0; height:1px; background:var(--apricot-deep); transition:width .3s var(--ease);}
.nav-links a:hover::after{width:100%;}
.nav-actions{display:flex; align-items:center; gap:10px;}
.icon-btn{
  width:40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  color:var(--espresso); font-size:1.1rem; transition:all .3s var(--ease); position:relative;
}
.icon-btn:hover{background:rgba(74,63,60,.06);}
.icon-badge{
  position:absolute; top:0; right:0; background:var(--apricot-deep); color:#fff; font-size:.62rem; font-weight:700;
  width:16px; height:16px; border-radius:50%; display:flex; align-items:center; justify-content:center;
}
.hamburger{display:none; width:42px; height:42px; border-radius:50%; align-items:center; justify-content:center; font-size:1.35rem; color:var(--espresso); background:rgba(232,213,205,.35); border:1px solid rgba(74,63,60,.08);}

/* ============ MOBILE NAV ============ */
.mobile-overlay{position:fixed; inset:0; background:rgba(74,63,60,.28); z-index:1500; opacity:0; visibility:hidden; transition:all .4s var(--ease);}
.mobile-overlay.open{opacity:1; visibility:visible;}
.mobile-panel{
  position:fixed; top:0; right:0; bottom:0; width:min(360px,88vw); background:linear-gradient(180deg,#fff,var(--cream)); z-index:1600;
  transform:translateX(100%); transition:transform .45s var(--ease); display:flex; flex-direction:column; box-shadow:var(--shadow-luxe);
}
.mobile-panel.open{transform:translateX(0);}
.mobile-panel-head{display:flex; align-items:center; justify-content:space-between; padding:22px 24px; border-bottom:1px solid var(--peach-line);}
.mobile-link{display:flex; align-items:center; gap:14px; padding:18px 24px; font-family:var(--serif); font-size:1.18rem; border-bottom:1px solid var(--peach-line); color:var(--espresso);}
.mobile-link:hover{background:rgba(232,213,205,.22);}
.mobile-link i{color:var(--apricot-deep); font-size:1.1rem;}
.mobile-panel-foot{margin-top:auto; padding:22px 24px; display:flex; flex-direction:column; gap:12px;}

/* ============ CINEMATIC HERO ============
   Scenes are configured in script.js under HERO_SCENES.
   This CSS only handles the crossfade/parallax mechanics —
   change timing in script.js, not here.                       */
.hero{
  position:relative; height:100svh; min-height:560px; width:100%; overflow:hidden; background:var(--cream);
}
.hero-scene{
  position:absolute; inset:0; opacity:0; visibility:hidden; transition:opacity 1.6s var(--ease), visibility 1.6s var(--ease);
}
.hero-scene.active{opacity:1; visibility:visible; z-index:2;}
.hero-scene-media{position:absolute; inset:-3% -3% -3% -3%; overflow:hidden;}
.hero-scene-media img, .hero-scene-media video{
  width:100%; height:100%; object-fit:cover; object-position:center; transform:scale(1.06); transition:transform 12s linear;
}
.hero-scene.active .hero-scene-media img, .hero-scene.active .hero-scene-media video{transform:scale(1);}
.hero-scene-media::after{
  content:''; position:absolute; inset:0;
  background:
    linear-gradient(90deg,rgba(40,31,35,.42) 0%, rgba(74,63,60,.12) 48%, rgba(255,248,246,.10) 100%),
    linear-gradient(180deg,rgba(255,255,255,.16) 0%, rgba(255,248,241,.05) 34%, rgba(74,63,60,.44) 100%);
}
.hero-scene-content{
  position:relative; z-index:3; height:100%; display:flex; flex-direction:column; align-items:flex-start; justify-content:flex-end;
  padding:0 0 min(9vh,90px); max-width:680px;
}
.hero-scene .eyebrow{color:var(--champagne-soft); opacity:0; transform:translateY(14px); transition:all .9s var(--ease) .3s;}
.hero-scene h1{
  font-size:clamp(2.5rem,6.4vw,4.6rem); color:#fff; line-height:1.04; letter-spacing:-.01em;
  opacity:0; transform:translateY(26px); transition:all 1s var(--ease) .45s;
}
.hero-scene p{
  color:rgba(255,248,241,.86); font-size:1.05rem; max-width:460px; margin:18px 0 30px;
  opacity:0; transform:translateY(18px); transition:all .9s var(--ease) .65s;
}
.hero-scene .hero-ctas{display:flex; gap:14px; flex-wrap:wrap; opacity:0; transform:translateY(16px); transition:all .9s var(--ease) .8s;}
.hero-scene.active .eyebrow, .hero-scene.active h1, .hero-scene.active p, .hero-scene.active .hero-ctas{opacity:1; transform:translateY(0);}

.hero-dots{position:absolute; z-index:4; left:50%; transform:translateX(-50%); bottom:26px; display:flex; gap:10px;}
.hero-dot{width:26px; height:3px; border-radius:2px; background:rgba(255,255,255,.35); transition:background .4s var(--ease); cursor:pointer;}
.hero-dot.active{background:var(--champagne);}
.hero-scroll-cue{
  position:absolute; z-index:4; right:26px; bottom:30px; writing-mode:vertical-rl; color:rgba(255,255,255,.7);
  font-family:var(--accent); font-size:.66rem; letter-spacing:.2em; text-transform:uppercase; display:flex; align-items:center; gap:10px;
}
.hero-scroll-cue::after{content:''; width:1px; height:38px; background:rgba(255,255,255,.5);}
@media(max-width:768px){
  .hero-scene-content{max-width:100%; padding-bottom:74px;}
  .hero-scroll-cue{display:none;}
}

/* ============ CATEGORY GRID ============ */
.cat-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.cat-card{background:#fff; border-radius:18px; overflow:hidden; box-shadow:var(--shadow-soft); transition:transform .4s var(--ease), box-shadow .4s var(--ease); border:1px solid rgba(232,213,205,.42);}
.cat-card:hover{transform:translateY(-6px); box-shadow:var(--shadow-luxe);}
.cat-card .ph-tile{height:280px; background:var(--peach-soft);}
.cat-card-body{padding:26px 26px 30px;}
.cat-card-body h3{font-size:1.4rem; display:flex; align-items:center; gap:10px; margin-bottom:8px;}
.cat-card-body h3 i{color:var(--apricot-deep);}
.cat-card-body p{color:var(--espresso-soft); font-size:.92rem; margin-bottom:16px;}
.cat-price{
  display:block; font-family:var(--accent); font-size:.78rem; font-weight:800; color:var(--espresso);
  margin:-2px 0 16px;
}
.cat-link{font-family:var(--accent); font-size:.76rem; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--apricot-deep); display:inline-flex; align-items:center; gap:6px;}
@media(max-width:900px){.cat-grid{grid-template-columns:1fr;}}

.ph-tile{position:relative; overflow:hidden; background:var(--peach-soft);}
.ph-tile img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.cat-card:hover .ph-tile img, .prod-card:hover .ph-tile img{transform:scale(1.06);}

/* ============ PRODUCT GRID / CARDS ============ */
.prod-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:24px;}
@media(max-width:1100px){.prod-grid{grid-template-columns:repeat(3,1fr);}}
@media(max-width:760px){.prod-grid{grid-template-columns:repeat(2,1fr); gap:14px;}}
.prod-card{background:#fff; border-radius:18px; overflow:hidden; box-shadow:var(--shadow-soft); transition:transform .4s var(--ease), box-shadow .4s var(--ease); display:flex; flex-direction:column; position:relative; border:1px solid rgba(232,213,205,.45);}
.prod-card:hover{transform:translateY(-5px); box-shadow:var(--shadow-luxe);}
.prod-card .ph-tile{height:260px; cursor:pointer;}
.prod-badge{position:absolute; top:14px; left:14px; background:var(--peach); color:var(--espresso); font-size:.6rem; letter-spacing:.1em; text-transform:uppercase; padding:6px 12px; border-radius:100px; z-index:2; font-weight:700;}
.prod-wish{position:absolute; top:12px; right:12px; z-index:2; width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.85); display:flex; align-items:center; justify-content:center; color:var(--espresso); transition:all .3s var(--ease);}
.prod-wish.active{color:var(--apricot);}
.prod-wish:hover{background:#fff;}
.prod-body{padding:18px 18px 20px; display:flex; flex-direction:column; gap:6px; flex:1;}
.prod-cat{font-family:var(--accent); font-size:.62rem; letter-spacing:.14em; text-transform:uppercase; color:var(--apricot-deep); font-weight:700;}
.prod-card h4{font-size:1.18rem; font-weight:600; cursor:pointer; line-height:1.2; min-height:2.8em;}
.prod-price{font-family:var(--accent); font-weight:700; color:var(--espresso); margin-top:2px;}
.prod-actions{display:flex; gap:8px; margin-top:12px;}
.prod-actions .btn{flex:1; padding:11px 10px; font-size:.62rem;}

/* ============ CHIPS ============ */
.chip-row{display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom:40px;}
.chip{padding:11px 22px; border-radius:100px; background:#fff; border:1px solid var(--peach-line); font-family:var(--accent); font-size:.74rem; font-weight:600; letter-spacing:.05em; color:var(--espresso-soft); transition:all .3s var(--ease);}
.chip.active,.chip:hover{background:var(--peach); color:var(--espresso); border-color:var(--peach);}
.chip-row.moods{margin-top:-24px;}

/* ============ MOOD SCROLLER ============ */
.mood-wrap{background:var(--cream-deep); padding:96px 0;}
.mood-scroller{display:flex; gap:18px; overflow-x:auto; padding-bottom:10px; scrollbar-width:none;}
.mood-scroller::-webkit-scrollbar{display:none;}
.mood-card{min-width:200px; background:#fff; border-radius:18px; padding:28px 22px; text-align:center; box-shadow:var(--shadow-soft); cursor:pointer; transition:transform .3s var(--ease);}
.mood-card:hover{transform:translateY(-4px);}
.mood-card i{font-size:1.7rem; color:var(--apricot-deep); margin-bottom:10px;}
.mood-card h4{font-size:1.05rem; margin-bottom:4px;}
.mood-card p{font-size:.78rem; color:var(--espresso-soft);}

/* ============ EDITORIAL / VALUES ============ */
.editorial-band{position:relative; padding:150px 0; background:var(--editorial); color:var(--espresso); text-align:center; overflow:hidden;}
.editorial-band::before{content:''; position:absolute; inset:0; background:radial-gradient(circle at 50% 0%, rgba(255,255,255,.16), transparent 60%);}
.editorial-band h2{color:var(--espresso); font-size:clamp(2rem,4.2vw,3.4rem); line-height:1.18; max-width:820px; margin:0 auto; position:relative; z-index:2;}
.editorial-band .eyebrow{position:relative; z-index:2; color:var(--espresso);}

/* ============ BRAND FILM ============ */
.brand-film-section{height:100vh; display:flex; align-items:center; justify-content:center; background:#000; overflow:hidden; position:relative;}
.brand-film-section .container{width:100%; height:100%; display:flex; align-items:center; justify-content:center; position:relative; z-index:2;}
.brand-film-video{width:100%; height:100%; object-fit:cover; display:block;}
@media(max-width:768px){.brand-film-section{height:100vh;}}

.values-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:var(--peach-line); border:1px solid var(--peach-line); border-radius:22px; overflow:hidden;}
.value-card{background:#fff; padding:42px 26px; text-align:center;}
.value-card h4{font-size:1.5rem; letter-spacing:.04em; margin-bottom:10px;}
.value-card p{font-size:.86rem; color:var(--espresso-soft);}
@media(max-width:900px){.values-grid{grid-template-columns:1fr 1fr;}}
@media(max-width:560px){.values-grid{grid-template-columns:1fr;}}

/* ============ COLLECTION SPLIT ============ */
.collection-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.collection-card{position:relative; border-radius:18px; overflow:hidden; height:420px; box-shadow:var(--shadow-soft); cursor:pointer; border:1px solid rgba(232,213,205,.42);}
.collection-card img{width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease);}
.collection-card:hover img{transform:scale(1.05);}
.collection-card::after{content:''; position:absolute; inset:0; background:linear-gradient(180deg,rgba(74,63,60,0) 40%, rgba(74,63,60,.42) 100%);}
.collection-content{position:absolute; left:0; right:0; bottom:0; z-index:2; padding:30px; color:#fff;}
.collection-content h3{color:#fff; font-size:1.6rem; margin-bottom:6px;}
.collection-content p{color:rgba(255,248,241,.86); font-size:.88rem; margin-bottom:16px;}
@media(max-width:900px){.collection-grid{grid-template-columns:1fr;}}

/* ============ TESTIMONIALS ============ */
.testi-wrap{background:var(--cream-deep); padding:110px 0;}
.testi-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:26px;}
.testi-card{background:#fff; border-radius:20px; padding:32px 28px; box-shadow:var(--shadow-soft);}
.testi-stars{color:var(--apricot-deep); font-size:.9rem; margin-bottom:14px; letter-spacing:.1em;}
.testi-card p{font-family:var(--serif); font-size:1.15rem; font-style:italic; color:var(--espresso); line-height:1.5; margin-bottom:18px;}
.testi-name{font-family:var(--accent); font-size:.78rem; font-weight:700; letter-spacing:.04em;}
.testi-role{font-size:.76rem; color:var(--espresso-soft);}
@media(max-width:900px){.testi-grid{grid-template-columns:1fr;}}

/* ============ FINAL CTA ============ */
.promise{
  position:relative; padding:150px 0; text-align:center; overflow:hidden;
  background:linear-gradient(135deg,var(--peach-soft),var(--cream-deep) 60%);
}
.promise::before{content:''; position:absolute; inset:0; background:radial-gradient(circle at 80% 20%, rgba(223,160,131,.35), transparent 55%);}
.promise .container--narrow{position:relative; z-index:2;}
.promise h2{font-size:clamp(2.1rem,4.4vw,3.2rem); margin:14px 0 16px;}
.promise p{color:var(--espresso-soft); font-size:1.08rem; margin-bottom:34px;}
.promise .cta-row{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

/* ============ NEWSLETTER ============ */
.newsletter{background:var(--editorial); padding:70px 0;}
.newsletter-inner{display:flex; align-items:center; justify-content:space-between; gap:30px; flex-wrap:wrap;}
.newsletter h2{color:var(--espresso);}
.newsletter .eyebrow.on-dark{color:var(--apricot-deep);}
.newsletter p{color:var(--espresso-soft) !important;}
.newsletter-form{display:flex; gap:10px; flex:1; max-width:420px; min-width:280px;}
.newsletter-form input{flex:1; padding:14px 18px; border-radius:100px; background:rgba(255,255,255,.28); color:var(--espresso); border:1px solid rgba(255,255,255,.28);}
.newsletter-form input::placeholder{color:rgba(74,63,60,.7);}
.newsletter-form button{padding:14px 26px; border-radius:100px; background:var(--peach); color:var(--espresso); font-family:var(--accent); font-weight:700; font-size:.76rem; letter-spacing:.1em; text-transform:uppercase; transition:all .3s var(--ease);}
.newsletter-form button:hover{background:#fff;}

/* ============ FOOTER ============ */
footer{background:var(--cream-deep); padding:80px 0 26px; border-top:1px solid var(--peach-line);}
.footer-grid{display:grid; grid-template-columns:minmax(260px,1.7fr) repeat(3,minmax(150px,1fr)); gap:44px; padding-bottom:44px; align-items:start;}
.footer-brand{padding-right:24px;}
.footer-brand .logo-wrap{flex:0 1 auto;}
.footer-brand p{color:var(--espresso-soft); font-size:.9rem; margin-top:16px; max-width:320px;}
.footer-wa-pill{
  display:inline-flex; align-items:center; gap:8px; margin-top:22px; padding:10px 16px; border-radius:100px;
  background:#fff; border:1px solid var(--peach-line); color:var(--espresso); font-size:.74rem; font-weight:800;
  letter-spacing:.08em; text-transform:uppercase; box-shadow:var(--shadow-soft);
}
.footer-wa-pill i{color:#25D366; font-size:1rem;}
.footer-col{display:flex; flex-direction:column; gap:10px;}
.footer-col h5{font-family:var(--accent); font-size:.7rem; letter-spacing:.14em; text-transform:uppercase; color:var(--espresso); margin-bottom:4px;}
.footer-col a{display:flex; align-items:center; gap:8px; color:var(--espresso-soft); font-size:.86rem; transition:color .3s var(--ease);}
.footer-col a:hover{color:var(--apricot-deep);}
.footer-bottom{display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; padding-top:22px; border-top:1px solid var(--peach-line); font-size:.78rem; color:var(--espresso-faint);}
.footer-credit{text-align:center; margin-top:18px;}
.footer-credit a{display:inline-flex; gap:6px; font-size:.74rem; color:var(--espresso-faint);}
.footer-credit .credit-name{color:var(--apricot-deep); font-weight:700;}
@media(max-width:900px){.footer-grid{grid-template-columns:1fr 1fr;}}

/* ============ PAGE HERO (Shop/Wishlist) ============ */
.page-hero{
  padding:calc(var(--hdr) + 44px) 0 44px;
  background:var(--cream-deep);
  position:relative; overflow:hidden;
}
.page-hero::after{
  content:''; position:absolute; right:-80px; top:-120px; width:300px; height:300px;
  background:radial-gradient(circle,rgba(248,221,227,.9),rgba(248,221,227,0) 68%);
  pointer-events:none;
}
.page-hero-inner{position:relative; z-index:1;}
.page-hero-copy{min-width:0;}
.home-nav-btn{width:42px; height:42px; border-radius:50%; background:#fff; display:flex; align-items:center; justify-content:center; margin-bottom:20px; box-shadow:var(--shadow-soft); color:var(--espresso);}
.page-hero h1{font-size:clamp(2rem,4vw,3rem); margin:8px 0 8px;}
.page-hero p{color:var(--espresso-soft);}
.shop-page-hero{
  min-height:390px; display:flex; align-items:end; color:#fff; background:#2f262a;
}
.shop-page-hero::before{
  content:''; position:absolute; inset:0; z-index:1;
  background:
    linear-gradient(90deg,rgba(43,33,38,.76) 0%, rgba(43,33,38,.42) 48%, rgba(43,33,38,.16) 100%),
    linear-gradient(180deg,rgba(43,33,38,.12) 0%, rgba(43,33,38,.62) 100%);
}
.shop-page-hero::after{display:none;}
.shop-hero-bg{
  position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:center;
  transform:scale(1.02); filter:saturate(.98) contrast(1.02);
}
.shop-page-hero .eyebrow{color:var(--champagne-soft);}
.shop-page-hero h1{color:#fff; text-shadow:0 14px 42px rgba(0,0,0,.22);}
.shop-page-hero p{color:rgba(255,248,246,.86); max-width:460px;}
.shop-page-hero .home-nav-btn{background:rgba(255,255,255,.92); color:var(--espresso);}

.empty-state{text-align:center; padding:80px 20px; color:var(--espresso-soft);}
.empty-state i{font-size:2.6rem; color:var(--apricot); margin-bottom:14px;}
.empty-state h3{margin-bottom:8px;}

/* ============ MODAL ============ */
.modal-overlay{position:fixed; inset:0; background:rgba(74,63,60,.30); z-index:2000; display:flex; align-items:center; justify-content:center; opacity:0; visibility:hidden; transition:all .4s var(--ease); padding:20px;}
.modal-overlay.open{opacity:1; visibility:visible;}
.modal{background:#fff; border-radius:18px; max-width:900px; width:100%; max-height:88vh; overflow:auto; display:grid; grid-template-columns:1fr 1fr; box-shadow:var(--shadow-luxe); position:relative;}
.modal-close{position:absolute; top:18px; right:18px; z-index:5; width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.9); display:flex; align-items:center; justify-content:center;}
.modal .ph-tile{height:100%; min-height:340px;}
.modal-info{padding:40px;}
.modal-price{font-family:var(--serif); font-size:1.7rem; color:var(--espresso); margin:10px 0 16px;}
.modal-desc{color:var(--espresso-soft); margin-bottom:18px;}
.notes-grid{display:grid; gap:10px; margin-bottom:20px;}
.notes-row{display:flex; gap:10px; align-items:baseline;}
.notes-label{font-family:var(--accent); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--apricot-deep); font-weight:700; min-width:100px;}
.notes-val{font-size:.9rem; color:var(--espresso-soft);}
.field-group{margin-bottom:20px;}
.field-group label{display:block; font-family:var(--accent); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--espresso-soft); margin-bottom:8px;}
.qty-stepper{display:inline-flex; align-items:center; border:1px solid var(--peach-line); border-radius:100px;}
.qty-stepper button{width:38px; height:38px; font-size:1.1rem; color:var(--espresso);}
.qty-stepper span{width:34px; text-align:center; font-weight:600;}
.modal-actions{display:flex; flex-direction:column; gap:10px;}
.size-options{display:flex; gap:8px; flex-wrap:wrap;}
.size-opt{padding:9px 16px; border-radius:100px; border:1px solid var(--peach-line); font-size:.78rem; font-weight:600; color:var(--espresso-soft); transition:all .3s var(--ease);}
.size-opt.active{background:var(--peach); color:var(--espresso); border-color:var(--peach);}
@media(max-width:700px){.modal{grid-template-columns:1fr;} .modal .ph-tile{height:260px;}}

/* ============ ORDER BAG PANEL ============ */
.bag-overlay{position:fixed; inset:0; background:rgba(107,81,72,.28); z-index:2100; opacity:0; visibility:hidden; transition:all .4s var(--ease);}
.bag-overlay.open{opacity:1; visibility:visible;}
.bag-panel{position:fixed; top:0; right:0; bottom:0; width:min(420px,92vw); background:#fff; z-index:2200; transform:translateX(100%); transition:transform .45s var(--ease); display:flex; flex-direction:column; box-shadow:var(--shadow-luxe);}
.bag-panel.open{transform:translateX(0);}
.bag-head{display:flex; align-items:center; justify-content:space-between; padding:24px; border-bottom:1px solid var(--peach-line);}
.bag-items{flex:1; overflow-y:auto; padding:10px 24px;}
.bag-item{display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--peach-line);}
.bag-item img{width:70px; height:70px; border-radius:12px; object-fit:cover; background:var(--peach-soft);}
.bag-item-info{flex:1;}
.bag-item-info h5{font-size:.95rem; margin-bottom:2px;}
.bag-item-info .prod-cat{font-size:.6rem;}
.bag-item-controls{display:flex; align-items:center; justify-content:space-between; margin-top:8px;}
.bag-item-price{font-family:var(--accent); font-weight:700; font-size:.85rem;}
.bag-remove{color:var(--espresso-faint); font-size:1rem;}
.bag-foot{padding:22px 24px; border-top:1px solid var(--peach-line);}
.bag-total-line{display:flex; justify-content:space-between; margin-bottom:16px; font-family:var(--accent);}
.bag-total-line strong{font-family:var(--serif); font-size:1.3rem;}

/* ============ FLOATING ACTIONS ============ */
.float-stack{position:fixed; right:22px; bottom:22px; z-index:900; display:flex; flex-direction:column; gap:12px;}
.float-btn{width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.4rem; box-shadow:var(--shadow-luxe); position:relative;}
.float-btn.bag{background:var(--peach); color:var(--espresso); box-shadow:0 16px 30px rgba(232,213,205,.26);}
.float-btn.wa{background:#25D366; color:#fff;}

/* ============ SCROLL REVEAL ============ */
.reveal{opacity:0; transform:translateY(28px); transition:opacity .8s var(--ease), transform .8s var(--ease);}
.reveal.in{opacity:1; transform:translateY(0);}

/* ============ RESPONSIVE NAV ============ */
@media(max-width:960px){
  .nav-links{display:none;}
  .hamburger{display:flex;}
}
@media(max-width:760px){
  :root{--hdr:72px;}
  .container{width:92%;}
  .brand-mark{height:34px;}
  .logo-main{font-size:.98rem;}
  .logo-sub{font-size:.58rem; letter-spacing:.26em;}
  .logo-tag{display:none;}
  .brand-wishlist{width:36px;height:36px; margin-left:auto; margin-right:10px;}
  .hero{min-height:620px;}
  .hero-scene-content{padding-top:var(--hdr);}
  .hero-scene h1{font-size:clamp(2.25rem,13vw,3.6rem);}
  .hero-scene p{font-size:.98rem; max-width:94%;}
  .hero-ctas{width:min(320px,100%);}
  .hero-ctas .btn{width:100%; max-width:320px;}
  .cat-card .ph-tile,.prod-card .ph-tile{height:210px;}
  .prod-body{padding:15px 14px 16px;}
  .prod-card h4{font-size:1.02rem; min-height:2.6em;}
  .prod-actions{flex-direction:column;}
  .prod-actions .btn{width:100%;}
  .collection-card{height:330px;}
  .page-hero{padding:calc(var(--hdr) + 34px) 0 34px;}
  .shop-page-hero{min-height:360px;}
  .shop-hero-bg{object-position:center;}
  .newsletter-form{min-width:100%; flex-direction:column;}
  .newsletter-form button,.newsletter-form input{width:100%;}
  footer{padding-top:58px;}
  .footer-grid{grid-template-columns:1fr; gap:30px; padding-bottom:34px;}
  .footer-brand{padding-right:0;}
  .footer-col{gap:9px;}
  .footer-bottom{justify-content:center; text-align:center;}
  .modal-info{padding:28px 22px;}
  .float-stack{right:16px; bottom:16px;}
}
@media(max-width:430px){
  .prod-grid{grid-template-columns:1fr;}
  .cat-card .ph-tile,.prod-card .ph-tile{height:250px;}
  .shop-page-hero{min-height:340px;}
  .btn{padding:10px 16px; white-space:normal; text-align:center;}
  .footer-bottom{display:grid;}
}
