/* ==========================================================================
   Ethereal Ehsaas — design system (hand-built, no framework)
   Ivory paper · espresso ink · kundan gold · rosewood · Cormorant + Jost
   ========================================================================== */

:root{
  --ivory:#faf6f0; --paper:#f3ece2; --ink:#241b14; --ink-soft:#4a3b30;
  --gold:#a87b38; --gilt:#d9be8b; --gold-dark:#6e4c1f;
  --rosewood:#6e2230; --rule:#e4d8c8; --muted:#8b7b6b;
  --success:#2f6b4f; --danger:#a32a2a;
  --display:"Cormorant Garamond","Cormorant",Georgia,"Times New Roman",serif;
  --sans:"Jost","Futura","Century Gothic","Helvetica Neue",Arial,sans-serif;
  --ease:cubic-bezier(.2,.7,.3,1);
  --shadow:0 26px 60px -34px rgba(36,27,20,.45);
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0; background:var(--ivory); color:var(--ink);
  font-family:var(--sans); font-weight:300; font-size:16px; line-height:1.6;
  -webkit-font-smoothing:antialiased; overflow-x:hidden;
}
img{max-width:100%; display:block}
a{color:inherit; text-decoration:none}
button{font:inherit; cursor:pointer}
ul{margin:0; padding:0; list-style:none}

h1,h2,h3,h4{font-family:var(--display); font-weight:500; line-height:1.08; letter-spacing:-.01em; margin:0}
h1{font-size:clamp(2.1rem,4.6vw,3.6rem)}
h2{font-size:clamp(1.75rem,3.2vw,2.6rem)}
h3{font-size:clamp(1.35rem,2.2vw,1.85rem)}
.display{font-family:var(--display); font-size:clamp(2.9rem,7vw,5.6rem); line-height:1.02}
.display em{font-style:italic; font-weight:400}
.num{font-variant-numeric:tabular-nums; font-feature-settings:"tnum" 1}
.eyebrow{font-family:var(--sans); font-size:.6875rem; letter-spacing:.22em; text-transform:uppercase; font-weight:500}
.gold{color:var(--gold)} .rose{color:var(--rosewood)} .muted{color:var(--muted)}
.success{color:var(--success)} .danger{color:var(--danger)}
.strike{text-decoration:line-through; color:var(--muted); font-size:.85em}
.save{font-size:.72rem; letter-spacing:.14em; text-transform:uppercase; color:var(--rosewood)}
.center{text-align:center}
.h3{font-family:var(--display); font-size:1.35rem}

.container{width:100%; max-width:1400px; margin:0 auto; padding:0 16px}
@media(min-width:640px){.container{padding:0 32px}}
@media(min-width:1024px){.container{padding:0 40px}}

.skip-link{position:absolute; left:-9999px}
.skip-link:focus{left:16px; top:16px; background:var(--ink); color:var(--ivory); padding:10px 16px; z-index:99}
:focus-visible{outline:2px solid var(--gold); outline-offset:2px}

/* ---------------------------------------------------------------- buttons */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55rem;
  font-family:var(--sans); font-size:.75rem; letter-spacing:.18em; text-transform:uppercase; font-weight:500;
  padding:.95rem 1.6rem; border:1px solid var(--ink); background:transparent; color:var(--ink);
  transition:all .28s var(--ease);
}
.btn:hover{letter-spacing:.22em}
.btn-primary{background:var(--ink); color:var(--ivory)}
.btn-primary:hover{background:var(--gold-dark); border-color:var(--gold-dark)}
.btn-gold{background:var(--gold); border-color:var(--gold); color:#fff}
.btn-gold:hover{background:var(--gold-dark); border-color:var(--gold-dark)}
.btn-ghost:hover{background:var(--ink); color:var(--ivory)}
.btn-light{background:var(--gilt); border-color:var(--gilt); color:var(--ink)}
.btn-light:hover{background:var(--ivory)}
.btn-outline-light{border-color:rgba(250,246,240,.4); color:var(--ivory)}
.btn-outline-light:hover{background:var(--ivory); color:var(--ink)}
.btn-danger{border-color:var(--danger); color:var(--danger)}
.btn-danger:hover{background:var(--danger); color:#fff}
.btn-block{width:100%}
.btn:disabled{opacity:.45; cursor:not-allowed}
.btn-sm{padding:.6rem 1rem; font-size:.68rem}

.input{width:100%; background:transparent; border:1px solid var(--rule); padding:.85rem 1rem;
  font-family:var(--sans); font-size:.95rem; color:var(--ink); transition:border-color .25s ease}
.input:focus{outline:none; border-color:var(--gold)}
.input::placeholder{color:var(--muted)}
textarea.input{min-height:110px; resize:vertical}
.field-label{display:block; font-size:.6875rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-bottom:.45rem}
.field{margin-bottom:18px}
.hairline{border-top:1px solid var(--rule)}

/* ----------------------------------------------------------------- header */
.announce{background:var(--ink); color:var(--ivory)}
.announce-inner{display:flex; flex-wrap:wrap; justify-content:center; gap:14px; padding:10px 16px}
.announce-inner span{font-size:.625rem; letter-spacing:.18em; text-transform:uppercase; opacity:.85}

.site-header{position:sticky; top:0; z-index:40; background:rgba(250,246,240,.93); backdrop-filter:blur(12px); border-bottom:1px solid var(--rule)}
.header-row{display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:12px; padding-top:12px; padding-bottom:12px}
.brand{justify-self:center; font-family:var(--display); font-size:1.75rem; letter-spacing:.28em}
.brand-sm{font-family:var(--display); letter-spacing:.2em}
.header-actions{display:flex; align-items:center; justify-content:flex-end}
.icon-btn{position:relative; width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center;
  background:none; border:0; font-size:18px; color:var(--ink)}
.icon-btn .count{position:absolute; right:2px; top:2px; font-style:normal; font-size:10px; color:var(--rosewood)}
.icon-btn .count.gold{background:var(--gold); color:#fff; padding:0 4px; min-width:16px; text-align:center}
.mini-link{font-size:.625rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gold); padding:0 8px}
.nav-main{display:none; gap:22px}
.nav-item{position:relative}
.nav-item>a{font-size:.625rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(36,27,20,.78)}
.nav-item>a:hover{color:var(--gold)}
.mega{position:absolute; left:0; top:100%; display:none; width:430px; background:var(--ivory);
  border:1px solid var(--rule); box-shadow:var(--shadow); grid-template-columns:150px 1fr; z-index:50}
.nav-item:hover .mega{display:grid}
.mega-img{background-size:cover; background-position:center}
.mega-links{padding:18px}
.mega-links a{display:block; padding:5px 0; font-size:.92rem}
.mega-links a:hover{color:var(--gold)}
.mega-all{margin-top:10px; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color:var(--gold)}
.nav-sub{display:none; gap:28px; justify-content:center; padding-top:8px; padding-bottom:8px; border-top:1px solid var(--rule)}
.nav-sub a{font-size:.625rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(36,27,20,.7)}
.nav-sub a:hover{color:var(--gold)}

.search-panel{border-top:1px solid var(--rule); background:var(--ivory); padding:20px 0}
.search-form{display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--ink); padding-bottom:10px}
.search-form input{flex:1; border:0; background:none; font-family:var(--display); font-size:1.6rem; outline:none}
.search-icon{color:var(--gold)}
.search-suggest{margin-top:14px; display:grid; gap:8px; grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.search-suggest a{display:flex; justify-content:space-between; border:1px solid var(--rule); padding:12px 14px; font-size:.9rem}
.search-suggest a:hover{border-color:var(--gold)}

.only-desk{display:none}
@media(min-width:768px){.only-desk{display:inline-flex}}
@media(min-width:1024px){
  .only-mobile{display:none}
  .nav-main{display:flex}
  .nav-sub{display:flex}
}

/* ----------------------------------------------------------------- drawer */
.drawer,.mini-cart{position:fixed; inset:0; z-index:60}
.drawer-scrim{position:absolute; inset:0; background:rgba(36,27,20,.5)}
.drawer-panel,.mini-cart-panel{position:absolute; top:0; height:100%; background:var(--ivory); display:flex; flex-direction:column}
.drawer-panel{left:0; width:88%; max-width:380px}
.mini-cart-panel{right:0; width:min(420px,94vw); box-shadow:var(--shadow)}
.drawer-head{display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--rule)}
.drawer-body{flex:1; overflow:auto; padding:18px 20px}
.drawer-search input{width:100%; border:0; border-bottom:1px solid var(--ink); padding:8px 0; background:none; outline:none}
.drawer-item{border-bottom:1px solid var(--rule)}
.drawer-item summary{padding:12px 0; font-family:var(--display); font-size:1.6rem; cursor:pointer; list-style:none}
.drawer-children{padding:0 0 12px 10px}
.drawer-children a{display:block; padding:5px 0; font-size:.92rem; color:rgba(36,27,20,.75)}
.drawer-links{margin-top:22px; display:grid; gap:10px; font-size:.92rem}
.mini-cart-body{flex:1; overflow:auto; padding:6px 20px}
.mini-cart-foot{border-top:1px solid var(--rule); padding:18px 20px}
.mini-line{display:flex; gap:14px; padding:16px 0; border-bottom:1px solid var(--rule)}
.mini-line img{width:72px; height:88px; object-fit:cover}
.mini-line .m-name{font-family:var(--display); font-size:1.15rem; line-height:1.2}
.progress{margin:14px 0; font-size:.75rem; color:var(--ink-soft)}
.progress-bar{height:3px; background:var(--rule); margin-top:6px}
.progress-bar span{display:block; height:3px; background:var(--gold)}
.toast{position:fixed; left:20px; bottom:80px; z-index:80; background:var(--ink); color:var(--ivory);
  padding:12px 18px; border:1px solid var(--gold); max-width:320px; font-size:.88rem}
.toast.error{background:var(--ivory); color:var(--danger); border-color:var(--danger)}

/* --------------------------------------------------------------- sections */
.section{padding:80px 0}
.section-sm{padding:48px 0}
.section-head{display:flex; flex-wrap:wrap; gap:16px; align-items:flex-end; justify-content:space-between}
.section-head .eyebrow{color:var(--gold); margin-bottom:10px}
.link-more{font-size:.6875rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(36,27,20,.7)}
.link-more:hover{color:var(--gold)}

.hero{position:relative; min-height:78vh; background:var(--ink); color:var(--ivory); overflow:hidden}
.hero-img{position:absolute; inset:0; background-size:cover; background-position:center}
.hero-shade{position:absolute; inset:0; background:linear-gradient(90deg,rgba(36,27,20,.82),rgba(36,27,20,.35) 55%,rgba(36,27,20,.12))}
.hero-shade-2{position:absolute; inset:0; background:linear-gradient(0deg,rgba(36,27,20,.55),transparent 45%)}
.hero-inner{position:relative; z-index:2; min-height:78vh; display:flex; flex-direction:column; justify-content:flex-end; padding:120px 0 56px}
.hero-copy{max-width:620px}
.hero-copy p.lead{margin-top:20px; max-width:460px; color:rgba(250,246,240,.82); line-height:1.85}
.hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:34px}
.hero-caption{margin-top:36px; display:flex; justify-content:space-between; align-items:center; gap:20px}
.hero-caption small{max-width:320px; color:rgba(250,246,240,.6); font-size:.78rem; line-height:1.7}
.hero-dots{display:flex; gap:10px}
.hero-dots button{width:34px; height:1px; background:rgba(250,246,240,.4); border:0}
.hero-dots button.on{background:var(--gilt); width:56px}

.promise-strip{border-bottom:1px solid var(--rule)}
.promise-strip ul{display:grid; grid-template-columns:repeat(2,1fr); gap:0}
.promise-strip li{display:flex; align-items:baseline; gap:12px; padding:18px 16px; border-right:1px solid var(--rule)}
.promise-strip li span.n{font-size:.72rem; letter-spacing:.2em; color:var(--gold)}
.promise-strip li span.t{font-size:.6875rem; letter-spacing:.18em; text-transform:uppercase}
@media(min-width:900px){.promise-strip ul{grid-template-columns:repeat(4,1fr)}}

.tiles{display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:38px}
.tile{position:relative; min-height:250px; overflow:hidden}
.tile img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease)}
.tile:hover img{transform:scale(1.05)}
.tile .shade{position:absolute; inset:0; background:linear-gradient(0deg,rgba(36,27,20,.72),rgba(36,27,20,.05))}
.tile .tile-copy{position:absolute; left:0; right:0; bottom:0; padding:18px; color:var(--ivory)}
.tile .tile-copy .eyebrow{color:var(--gilt)}
.tile .tile-copy h3{font-size:2rem; margin-top:4px}
@media(min-width:900px){
  .tiles{grid-template-columns:repeat(4,1fr); gap:16px}
  .tile{min-height:280px}
  .tile.wide{grid-column:span 2}
  .tile.tall{grid-row:span 2}
}

.grid-products{display:grid; grid-template-columns:repeat(2,1fr); gap:26px 20px; margin-top:44px}
@media(min-width:1024px){.grid-products{grid-template-columns:repeat(4,1fr); gap:52px 22px}}
.grid-products .span2{grid-column:span 2}

/* ------------------------------------------------------------- product card */
.card .card-media{position:relative; overflow:hidden; background:var(--paper)}
.card .shot,.card .shot-alt{width:100%; aspect-ratio:4/5; object-fit:cover; transition:opacity .45s ease, transform .7s var(--ease)}
.card .shot-alt{position:absolute; inset:0; opacity:0}
.card:hover .shot{opacity:0}
.card:hover .shot-alt{opacity:1}
.card:hover .shot-alt{transform:scale(1.04)}
.badges{position:absolute; left:0; top:0; padding:12px; display:flex; flex-direction:column; gap:6px}
.badge{padding:4px 9px; font-size:.625rem; letter-spacing:.16em; text-transform:uppercase}
.badge.rose{background:var(--rosewood); color:#fff}
.badge.light{background:rgba(250,246,240,.92)}
.badge.dark{background:var(--ink); color:var(--ivory)}
.card-actions{position:absolute; right:12px; top:12px; display:flex; flex-direction:column; gap:8px}
.round-btn{width:36px; height:36px; border-radius:50%; border:0; background:rgba(250,246,240,.9); color:var(--ink); font-size:15px}
.round-btn:hover{background:#fff}
.bag-bar{position:absolute; left:0; right:0; bottom:0; background:rgba(36,27,20,.95); color:var(--ivory);
  border:0; padding:14px; font-size:.6875rem; letter-spacing:.22em; text-transform:uppercase;
  transform:translateY(101%); transition:transform .32s var(--ease)}
.card:hover .bag-bar,.card:focus-within .bag-bar{transform:translateY(0)}
.card-info{padding-top:16px}
.card-meta{display:flex; align-items:center; gap:10px; font-size:.625rem; letter-spacing:.2em; text-transform:uppercase; color:var(--muted)}
.card-rule{flex:1; height:1px; background:var(--rule); transition:background .3s ease}
.card:hover .card-rule{background:var(--gold)}
.card-name{display:block; margin-top:10px; font-family:var(--display); font-size:1.35rem; line-height:1.18}
.card-name:hover{color:var(--gold)}
.card-price{display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-top:7px; font-size:1.05rem}
.card-rating{margin-top:8px; color:var(--gold); font-size:.85rem}
.card-rating span{color:var(--muted); margin-left:6px}

/* ----------------------------------------------------------- price / bands */
.price-bands{border-top:1px solid var(--rule); margin-top:32px}
.price-band{display:grid; grid-template-columns:auto 1fr auto; gap:24px; align-items:baseline; padding:26px 0; border-bottom:1px solid var(--rule)}
.price-band .band-label{font-family:var(--display); font-size:clamp(2rem,4vw,3.1rem)}
.price-band:hover .band-label{color:var(--gold)}
.price-band small{display:block; font-family:var(--sans); font-size:.9rem; color:var(--muted); margin-top:4px}
.occasion-links{display:flex; flex-wrap:wrap; gap:14px 32px; margin-top:26px}
.occasion-links a{font-family:var(--display); font-size:clamp(1.9rem,3.4vw,3rem); color:rgba(36,27,20,.82)}
.occasion-links a:hover{color:var(--gold)}

.band-dark{background:var(--ink); color:var(--ivory)}
.band-dark h2{color:var(--ivory)}
.band-rose{background:var(--rosewood); color:var(--ivory)}
.band-rose h2{color:var(--ivory)}
.split{display:grid; gap:0}
.split-media{position:relative; min-height:420px}
.split-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.split-copy{padding:56px 22px}
@media(min-width:1024px){
  .split{grid-template-columns:1fr 1fr}
  .split-copy{padding:80px 56px; display:flex; flex-direction:column; justify-content:center}
}
.split-copy p{margin-top:18px; line-height:1.9; opacity:.85}
.split-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:32px}

.atelier{display:grid; border:1px solid var(--rule)}
.atelier-media{position:relative; min-height:420px}
.atelier-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover}
.atelier-copy{padding:44px 22px}
.atelier-steps li{display:grid; grid-template-columns:44px 1fr; gap:12px; padding:14px 0; border-bottom:1px solid var(--rule)}
.atelier-steps li:first-child{border-top:1px solid var(--rule)}
.atelier-steps .n{color:var(--gold); font-size:.85rem}
.atelier-steps .t{font-family:var(--display); font-size:1.15rem}
.atelier-steps .d{font-size:.78rem; color:var(--muted); line-height:1.6}
@media(min-width:1024px){.atelier{grid-template-columns:1.05fr .95fr}.atelier-copy{padding:56px 48px}}

.offers-band{background:var(--paper); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule)}
.offers-band ul{display:flex; flex-wrap:wrap; justify-content:center; gap:12px 36px; padding:16px}
.offers-band li{display:flex; align-items:center; gap:12px; font-size:.6875rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(36,27,20,.78)}
.offers-band li::before{content:""; width:24px; height:1px; background:var(--gold)}

.review-band{border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); padding:72px 0}
.review-grid{display:grid; gap:36px}
@media(min-width:1024px){.review-grid{grid-template-columns:1fr 280px}}
.quote-mark{font-family:var(--display); font-size:5rem; line-height:.6; color:var(--gold)}
.review-lead blockquote{font-family:var(--display); font-size:clamp(1.6rem,3.2vw,3rem); line-height:1.25; margin:14px 0 0}
.review-side{border-top:1px solid var(--rule); padding-top:22px; display:grid; gap:22px}
.review-side blockquote{margin:8px 0 0; font-size:.92rem; line-height:1.75; color:var(--ink-soft)}
@media(min-width:1024px){.review-side{border-left:1px solid var(--rule); border-top:0; padding:0 0 0 28px}}

.insta{display:grid; grid-template-columns:repeat(3,1fr); gap:6px; margin-top:32px}
.insta a{overflow:hidden}
.insta img{aspect-ratio:1/1; object-fit:cover; transition:transform .5s var(--ease)}
.insta a:hover img{transform:scale(1.06)}
@media(min-width:1024px){.insta{grid-template-columns:repeat(6,1fr); gap:8px}}

.cta-band{background:var(--ink); color:var(--ivory)}
.cta-inner{display:grid; gap:26px; padding:70px 0}
@media(min-width:1024px){.cta-inner{grid-template-columns:1fr auto; align-items:end}}
.newsletter{display:flex; gap:10px; margin-top:16px}
.newsletter input{flex:1; background:transparent; border:0; border-bottom:1px solid rgba(250,246,240,.3); color:var(--ivory); padding:10px 0; outline:none}
.newsletter button{background:var(--gilt); color:var(--ink); border:0; padding:10px 18px; font-size:.68rem; letter-spacing:.18em; text-transform:uppercase}

/* ------------------------------------------------------------- shop / filter */
.page-hero{position:relative; background:var(--ink); color:var(--ivory); overflow:hidden}
.page-hero img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:.45}
.page-hero .shade{position:absolute; inset:0; background:linear-gradient(90deg,rgba(36,27,20,.86),rgba(36,27,20,.25))}
.page-hero .container{position:relative; z-index:2; padding-top:64px; padding-bottom:64px}
.page-hero h1{color:var(--ivory)}
.page-hero p.lead{margin-top:18px; max-width:560px; line-height:1.9; color:rgba(250,246,240,.78)}

.breadcrumbs{display:flex; flex-wrap:wrap; gap:8px; font-size:.6875rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted); margin-bottom:22px}
.breadcrumbs a:hover{color:var(--gold)}
.page-hero .breadcrumbs{color:rgba(250,246,240,.6)}
.page-hero .breadcrumbs a:hover{color:var(--gilt)}

.shop-layout{display:grid; gap:36px; padding:40px 0 80px}
@media(min-width:1024px){.shop-layout{grid-template-columns:220px 1fr}}
.filter-group{margin-bottom:30px}
.filter-group h3{font-family:var(--sans); font-size:.6875rem; letter-spacing:.18em; text-transform:uppercase; margin-bottom:12px}
.chips{display:flex; flex-wrap:wrap; gap:8px}
.chip{border:1px solid var(--rule); padding:8px 13px; font-size:.78rem; background:none}
.chip:hover{border-color:var(--gold)}
.chip.on{background:var(--gold); border-color:var(--gold); color:#fff}
.sortbar{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-bottom:26px}
.sortbar select{border:1px solid var(--rule); background:none; padding:9px 12px; font-size:.8rem}
.pager{display:flex; gap:8px; justify-content:center; margin-top:48px}
.pager a{width:40px; height:40px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--rule)}
.pager a.on{background:var(--gold); border-color:var(--gold); color:#fff}

/* --------------------------------------------------------------- product page */
.product-layout{display:grid; gap:34px; padding:26px 0 20px}
@media(min-width:1024px){.product-layout{grid-template-columns:1.12fr 1fr; gap:56px}}
.gallery{display:flex; gap:12px; overflow-x:auto; scroll-snap-type:x mandatory}
.plate{position:relative; flex:0 0 82%; scroll-snap-align:start; overflow:hidden; background:var(--paper); border:0; padding:0}
.plate img{width:100%; aspect-ratio:4/5; object-fit:cover}
.plate .zoom{position:absolute; right:12px; bottom:12px; background:rgba(250,246,240,.85); padding:5px 9px; font-size:.625rem; letter-spacing:.16em; text-transform:uppercase}
@media(min-width:1024px){.gallery{display:grid; grid-template-columns:1fr 1fr; overflow:visible}.plate{flex:none}.plate.wide{grid-column:span 2}}

.dossier{padding-bottom:20px}
@media(min-width:1024px){.dossier{position:sticky; top:110px; align-self:start}}
.price-row{display:flex; flex-wrap:wrap; align-items:baseline; gap:14px; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); padding:18px 0; margin:18px 0}
.price-row .now{font-family:var(--display); font-size:2.6rem; line-height:1}
.price-row small{width:100%; font-size:.78rem; color:var(--muted)}
.variant-row{display:flex; flex-wrap:wrap; gap:9px; margin-top:12px}
.variant-row button{border:1px solid var(--rule); background:none; padding:11px 18px; font-size:.88rem}
.variant-row button.on{background:var(--ink); border-color:var(--ink); color:var(--ivory)}
.variant-row button:disabled{opacity:.4}
.qty-row{display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:24px}
.qty{display:flex; align-items:center; border:1px solid var(--rule)}
.qty button{width:42px; height:48px; border:0; background:none; font-size:18px}
.qty span{width:38px; text-align:center}
.share-row{display:flex; flex-wrap:wrap; gap:12px; align-items:center; margin-top:16px; font-size:.6875rem; letter-spacing:.18em; text-transform:uppercase; color:var(--ink-soft)}
.share-row button,.share-row a{background:none; border:0; padding:0; color:inherit}
.share-row button:hover,.share-row a:hover{color:var(--gold)}
.trust-row{display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--rule); border-bottom:1px solid var(--rule); text-align:center}
.trust-row li{padding:14px 8px; font-size:.625rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(36,27,20,.78); border-right:1px solid var(--rule)}
.trust-row li:last-child{border-right:0}
.trust-row .i{display:block; color:var(--gold); margin-bottom:6px; font-size:15px}
.pincode-box{border:1px solid var(--rule); margin-top:22px}
.pincode-box .hd{padding:12px 18px; border-bottom:1px solid var(--rule); font-size:.6875rem; letter-spacing:.18em; text-transform:uppercase}
.pincode-box .bd{padding:18px}
.pincode-box .fr{display:flex; gap:10px}

.notes-panel{background:var(--ink); color:var(--ivory); padding:44px 22px}
.notes-panel h2{color:var(--ivory)}
.notes-panel h2 em{font-style:italic; color:var(--gilt); font-weight:400}
.notes-panel p{opacity:.82; line-height:1.95; margin-top:18px}
.spec-grid{display:grid; gap:22px; margin-top:32px; padding-top:26px; border-top:1px solid rgba(250,246,240,.16)}
@media(min-width:640px){.spec-grid{grid-template-columns:1fr 1fr; gap:26px 40px}}
.spec-grid .k{font-size:.625rem; letter-spacing:.18em; text-transform:uppercase; color:var(--gilt)}
.spec-grid .v{margin-top:6px; opacity:.9; font-size:.92rem}
.panel{border:1px solid var(--rule); padding:28px}
.panel.gold{border-color:var(--gold); background:var(--paper)}
.panel h3{font-family:var(--sans); font-size:.6875rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gold)}
.panel ul{margin-top:16px; display:grid; gap:12px; font-size:.92rem; line-height:1.75; color:var(--ink-soft)}
.detail-frame{position:relative; margin-top:22px; overflow:hidden}
.detail-frame img{aspect-ratio:4/5; object-fit:cover; width:100%}
.detail-frame .cap{position:absolute; left:12px; bottom:12px; background:rgba(36,27,20,.85); color:var(--ivory); padding:6px 10px; font-size:.625rem; letter-spacing:.16em; text-transform:uppercase}

/* ---------------------------------------------------------- cart / checkout */
.two-col{display:grid; gap:36px; padding:40px 0 90px}
@media(min-width:1024px){.two-col{grid-template-columns:1.35fr 1fr; gap:52px}}
.cart-line{display:flex; gap:18px; padding:24px 0; border-bottom:1px solid var(--rule)}
.cart-line img{width:96px; height:120px; object-fit:cover}
.cart-line .l-name{font-family:var(--display); font-size:1.45rem; line-height:1.2}
.cart-line .l-actions{display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; margin-top:16px}
.remove-btn{background:none; border:0; color:var(--muted); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase}
.remove-btn:hover{color:var(--danger)}

.summary-panel{background:var(--ink); color:var(--ivory); padding:30px 26px}
.summary-panel h2{font-family:var(--sans); font-size:.6875rem; letter-spacing:.22em; text-transform:uppercase; color:var(--gilt)}
.summary-row{display:flex; justify-content:space-between; gap:14px; padding:7px 0; font-size:.92rem}
.summary-row .k{color:rgba(250,246,240,.68)}
.summary-total{display:flex; justify-content:space-between; border-top:1px solid rgba(250,246,240,.22); margin-top:14px; padding-top:14px; font-size:1.15rem}
.summary-total .big{color:var(--gilt); font-size:1.35rem}
.summary-note{margin-top:12px; font-size:.72rem; color:rgba(250,246,240,.55); line-height:1.7}

.opt-card{display:flex; gap:14px; width:100%; text-align:left; border:1px solid var(--rule); background:none; padding:18px; margin-bottom:12px}
.opt-card.on{border-color:var(--gold); background:var(--paper)}
.opt-card .dot{width:18px; height:18px; border-radius:50%; border:1px solid var(--rule); margin-top:3px}
.opt-card.on .dot{background:var(--gold); border-color:var(--gold)}
.opt-card .t{font-weight:400}
.opt-card .d{font-size:.78rem; color:var(--muted); margin-top:5px; line-height:1.6}
.opt-card:disabled{opacity:.5}

.form-grid{display:grid; gap:18px}
@media(min-width:640px){.form-grid{grid-template-columns:1fr 1fr}.form-grid .full{grid-column:span 2}}
.saved-addr{display:flex;align-items:flex-start;gap:12px;border:1px solid var(--rule);padding:18px;text-align:left;background:none;width:100%;margin-bottom:12px;cursor:pointer}
.saved-addr input{flex:0 0 auto;margin-top:4px}
.saved-addr>span{display:block;flex:1;min-width:0;line-height:1.65}
.saved-addr.on{border-color:var(--gold); background:var(--paper)}

/* --------------------------------------------------------------- account */
.stat-grid{display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:16px; margin:28px 0}
.stat{border:1px solid var(--rule); padding:22px}
.stat .k{font-size:.6875rem; letter-spacing:.18em; text-transform:uppercase; color:var(--muted)}
.stat .v{font-family:var(--display); font-size:1.9rem; margin-top:8px}
.list-row{display:flex; flex-wrap:wrap; align-items:center; gap:14px; padding:20px 0; border-bottom:1px solid var(--rule)}
.list-row .grow{flex:1; min-width:180px}
.status{font-size:.6875rem; letter-spacing:.16em; text-transform:uppercase}
.status.ok{color:var(--success)} .status.warn{color:var(--gold)} .status.bad{color:var(--danger)}
.timeline{display:grid; gap:10px; grid-template-columns:repeat(auto-fit,minmax(90px,1fr)); margin:22px 0}
.timeline .step{height:5px; background:var(--rule)}
.timeline .step.done{background:var(--gold)}
.timeline .lbl{margin-top:8px; font-size:.625rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}
.timeline .lbl.done{color:var(--ink)}
.empty{border:1px solid var(--rule); background:var(--paper); padding:52px 26px; text-align:center}
.empty h3{margin-bottom:12px}
.empty p{color:var(--muted); max-width:420px; margin:0 auto 22px; font-size:.92rem; line-height:1.8}

/* ------------------------------------------------------------------ table */
.table{width:100%; border-collapse:collapse; font-size:.88rem}
.table th{text-align:left; font-size:.625rem; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); padding:12px 10px; border-bottom:1px solid var(--ink)}
.table td{padding:14px 10px; border-bottom:1px solid var(--rule); vertical-align:top}
.table .num{text-align:right}
.table-scroll{overflow-x:auto}
.thumb{width:44px; height:56px; object-fit:cover}

/* ------------------------------------------------------------------ admin */
.admin-shell{display:grid; min-height:100vh; background:var(--ivory)}
@media(min-width:1024px){.admin-shell{grid-template-columns:236px 1fr}}
.admin-side{background:var(--ink); color:var(--ivory); padding:22px 14px}
.admin-side a{display:flex; justify-content:space-between; align-items:center; padding:11px 14px; font-size:.86rem; color:rgba(250,246,240,.78)}
.admin-side a:hover,.admin-side a.on{background:rgba(250,246,240,.1); color:var(--ivory)}
.admin-side .brand-sm{display:block; padding:6px 14px 20px; letter-spacing:.22em}
.admin-main{padding:26px 20px 70px}
.admin-head{display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between; border-bottom:1px solid var(--rule); padding-bottom:20px; margin-bottom:26px}
.admin-top{background:var(--ink); color:var(--ivory); display:flex; flex-wrap:wrap; gap:14px; align-items:center; justify-content:space-between; padding:12px 20px}
.admin-top .brand-sm{letter-spacing:.22em}
.admin-top a{color:rgba(250,246,240,.75); font-size:.72rem; letter-spacing:.16em; text-transform:uppercase}
.admin-top a:hover{color:var(--gilt)}
.admin-search{display:flex; gap:8px; border:1px solid rgba(250,246,240,.28); padding:7px 12px; min-width:240px}
.admin-search input{background:none; border:0; color:var(--ivory); outline:none; width:100%; font-size:.85rem}
.chart{width:100%; height:210px}
.panel-grid{display:grid; gap:26px}
@media(min-width:1024px){.panel-grid{grid-template-columns:1fr 1fr}}
details.acc{border-bottom:1px solid var(--rule); padding:12px 0}
details.acc summary{cursor:pointer; font-family:var(--display); font-size:1.25rem}
details.acc .acc-body{padding:16px 0}

/* --------------------------------------------------------------- footer */
.site-footer{background:var(--ink); color:var(--ivory); margin-top:64px; padding:64px 0 24px}
.footer-mark{font-family:var(--display); font-size:clamp(2.6rem,7vw,5rem); letter-spacing:.18em; margin:0}
.footer-tagline{max-width:460px; color:rgba(250,246,240,.55); font-size:.92rem; margin-top:14px}
.footer-grid{display:grid; gap:34px; border-top:1px solid rgba(250,246,240,.15); margin-top:44px; padding-top:38px}
@media(min-width:1024px){.footer-grid{grid-template-columns:1.3fr 1fr 1fr 1.2fr}}
.f-line{color:rgba(250,246,240,.7); font-size:.92rem; line-height:1.8; margin:0 0 8px}
.f-list li{margin-bottom:9px}
.f-list a{color:rgba(250,246,240,.72); font-size:.92rem}
.f-list a:hover{color:var(--gilt)}
.socials{display:flex; gap:10px; margin-top:16px}
.socials a{width:36px; height:36px; display:inline-flex; align-items:center; justify-content:center; border:1px solid rgba(250,246,240,.25)}
.socials a:hover{border-color:var(--gilt); color:var(--gilt)}
.pay-icons{display:flex; flex-wrap:wrap; gap:8px; margin-top:12px}
.pay-icons span{border:1px solid rgba(250,246,240,.2); padding:5px 11px; font-size:.625rem; letter-spacing:.14em; text-transform:uppercase; color:rgba(250,246,240,.62)}
.footer-bottom{display:flex; flex-wrap:wrap; gap:14px; justify-content:space-between; border-top:1px solid rgba(250,246,240,.15); margin-top:42px; padding-top:22px; font-size:.78rem; color:rgba(250,246,240,.55)}
.f-links{display:flex; gap:18px}
.f-links a:hover{color:var(--gilt)}

.bottom-nav{position:fixed; left:0; right:0; bottom:0; z-index:35; display:grid; grid-template-columns:repeat(5,1fr);
  background:rgba(250,246,240,.97); border-top:1px solid var(--rule); backdrop-filter:blur(8px)}
.bottom-nav a{padding:11px 4px; text-align:center; font-size:.5625rem; letter-spacing:.14em; text-transform:uppercase; color:var(--muted)}
.bottom-nav a:hover{color:var(--gold)}
@media(min-width:768px){.bottom-nav{display:none}}

/* ---------------------------------------------------------------- print */
@media print{
  .site-header,.announce,.site-footer,.bottom-nav,.no-print,.toast,.drawer,.mini-cart{display:none !important}
  body{background:#fff}
  .summary-panel,.notes-panel,.band-dark{background:#fff !important; color:#000 !important}
}

@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important; transition-duration:.001ms !important}
}

/* --------------------------------------------------------- hamper builder */
.hamper-page{padding-top:38px;padding-bottom:78px}
.hamper-head{border-bottom:1px solid var(--rule);padding-bottom:34px}
.hamper-head .display{margin-top:14px}
.hamper-lead{max-width:720px;margin-top:20px;color:var(--ink-soft);font-size:.95rem;line-height:1.9}
.hamper-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:36px 0 0;padding:0;list-style:none}
@media(min-width:760px){.hamper-steps{grid-template-columns:repeat(6,1fr)}}
.hamper-step{width:100%;border:1px solid var(--rule);background:transparent;color:var(--muted);padding:12px 10px;text-align:left;font:500 .62rem var(--sans);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.hamper-step.on{background:var(--gold);border-color:var(--gold);color:#fff}.hamper-step.done{color:var(--ink)}
.hamper-layout{display:grid;gap:42px;margin-top:42px}.hamper-work{min-width:0}
@media(min-width:980px){.hamper-layout{grid-template-columns:minmax(0,1.5fr) minmax(280px,1fr)}.hamper-summary{position:sticky;top:118px;align-self:start}}
.hamper-choice-grid,.hamper-pick-grid{display:grid;gap:16px;margin-top:26px}@media(min-width:620px){.hamper-choice-grid,.hamper-pick-grid{grid-template-columns:1fr 1fr}}
.hamper-choice{border:1px solid var(--rule);background:transparent;padding:22px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:9px;color:var(--ink)}
.hamper-choice:hover,.hamper-choice.on{border-color:var(--gold)}.hamper-choice.on{background:var(--paper)}
.hamper-choice strong{font:500 1.65rem var(--display)}.hamper-choice small{color:var(--muted);line-height:1.6}.hamper-choice .num{font-size:.86rem;margin-top:4px}
.hamper-pick{display:flex;align-items:center;gap:14px;border:1px solid var(--rule);background:transparent;padding:14px;text-align:left;cursor:pointer;color:var(--ink)}
.hamper-pick:hover,.hamper-pick.on{border-color:var(--gold)}.hamper-pick.on{background:var(--paper)}.hamper-pick.disabled{opacity:.4;cursor:not-allowed}
.hamper-check{display:flex;width:25px;height:25px;align-items:center;justify-content:center;border:1px solid var(--rule);flex:0 0 auto}.hamper-pick.on .hamper-check{background:var(--gold);border-color:var(--gold);color:#fff}
.hamper-pick strong{display:block;font-size:.88rem;font-weight:400}.hamper-pick small{display:block;color:var(--muted);margin-top:4px}
.hamper-form{max-width:520px;margin-top:26px}.hamper-form .field-label{margin-top:18px}.hamper-form .muted{margin-top:8px;font-size:.78rem}
.hamper-review{border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);margin-top:26px}.hamper-review li{display:flex;justify-content:space-between;gap:20px;padding:14px 0;border-bottom:1px solid var(--rule);font-size:.9rem}.hamper-review li:last-child{border-bottom:0}.hamper-review .gift-note{font-style:italic;color:var(--muted);display:block}
.hamper-copy{max-width:560px;color:var(--ink-soft);font-size:.9rem;line-height:1.9;margin:18px 0 24px}.danger{color:var(--danger);font-size:.86rem;margin:18px 0}
.hamper-nav{display:flex;justify-content:space-between;gap:16px;margin-top:34px}
.hamper-summary-box{border:1px solid var(--rule);padding:26px}.hamper-summary-box dl{margin:20px 0 0}.hamper-summary-box dl>div{display:flex;justify-content:space-between;gap:16px;padding:8px 0;font-size:.86rem}.hamper-summary-box dt{color:var(--muted)}.hamper-summary-box dd{margin:0;text-align:right}.hamper-summary-box .total{border-top:1px solid var(--rule);margin-top:10px;padding-top:16px;font-size:1rem}.hamper-summary-box .total dt,.hamper-summary-box .total dd{color:var(--ink);font-weight:500}.hamper-summary-box ul{margin-top:18px;color:var(--muted);font-size:.78rem;line-height:1.7}.hamper-summary-box>p:last-child{margin-top:18px;color:var(--muted);font-size:.75rem;line-height:1.7}


/* ========================================================================
   V5 mobile refinement — applies below desktop breakpoint only.
   Desktop (>=1024px) intentionally keeps the existing layout.
   ======================================================================== */
.nav-icon{width:21px;height:21px;display:block;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.icon-btn{border-radius:999px}
.icon-btn:hover{background:rgba(168,123,56,.08)}
.password-field{position:relative}.password-field .input{padding-right:64px}.password-toggle{position:absolute;right:5px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:var(--gold);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;padding:8px}
.auth-page{padding-bottom:40px}.auth-grid{padding-top:70px}.auth-copy h1{margin-top:16px}.auth-lead{margin-top:20px;max-width:520px;color:var(--ink-soft);line-height:1.9}.auth-links{margin-top:30px;border-top:1px solid var(--rule)}.auth-links p{padding:13px 0;margin:0;border-bottom:1px solid var(--rule);font-size:.9rem}.auth-card-note{font-size:.84rem;line-height:1.7;margin:10px 0 22px}.auth-row{display:flex;justify-content:flex-end;font-size:.8rem;margin:-6px 0 16px}.auth-secondary{margin-top:10px}.otp-input{text-align:center;font-size:1.45rem;letter-spacing:.32em;font-variant-numeric:tabular-nums}.otp-resend{display:flex;gap:16px;justify-content:center;margin-top:14px}.link-button{border:0;background:none;color:var(--gold);padding:6px;font-size:.8rem;text-decoration:underline;text-underline-offset:3px}
.checkout-head{padding-top:46px}.checkout-head h1{margin-top:12px}.checkout-head>p:last-child{max-width:760px;margin-top:14px}.checkout-section-title{margin-top:42px}.check-row{display:flex;align-items:flex-start;gap:10px;margin-top:14px;font-size:.82rem;color:var(--ink-soft);line-height:1.6}.check-row input{margin-top:5px;accent-color:var(--gold)}.payment-only{cursor:default}.checkout-summary{position:sticky;top:110px}
.bottom-nav button{font:inherit;border:0;background:none;color:inherit}.bottom-nav a,.bottom-nav button{min-width:0;padding:8px 2px 7px;text-align:center;font-size:.54rem;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}.bottom-nav .nav-icon{width:20px;height:20px}.bottom-nav a:hover,.bottom-nav button:hover{color:var(--gold)}.bottom-icon-wrap{position:relative;display:inline-flex}.bottom-count{position:absolute;right:-9px;top:-7px;min-width:15px;height:15px;padding:0 3px;border-radius:10px;background:var(--gold);color:white;font-style:normal;font-size:9px;line-height:15px}

@media(max-width:1023px){
  .only-desk{display:none !important}
  .bottom-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding-bottom:max(2px,env(safe-area-inset-bottom))}
  body{padding-bottom:62px}
  .site-footer{margin-bottom:0}
  .header-row{grid-template-columns:40px minmax(0,1fr) auto;gap:6px;padding-top:8px;padding-bottom:8px}
  .brand{font-size:1.22rem;letter-spacing:.14em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
  .header-actions .icon-btn{width:38px;height:38px}
  .announce-inner{padding-top:7px;padding-bottom:7px;gap:6px 12px}.announce-inner span{font-size:.56rem;letter-spacing:.12em}
  .search-panel{padding:14px 0}.search-form input{font-size:1.25rem;min-width:0}
  .drawer-panel{width:min(90%,360px)}
  .checkout-summary{position:static}
}
@media(max-width:767px){
  h1{font-size:clamp(2rem,10vw,2.75rem)}h2{font-size:clamp(1.65rem,8vw,2.25rem)}
  .container{padding-left:14px;padding-right:14px}
  .panel{padding:20px 16px}
  .two-col{gap:26px;padding:28px 0 50px}
  .auth-grid{padding-top:32px}.auth-copy{padding:0 2px}.auth-card{margin-top:0}
  .checkout-head{padding-top:28px}.checkout-grid{padding-top:24px}.checkout-section-title{margin-top:34px}
  .summary-panel{padding:24px 17px}
  .saved-addr{padding:14px;gap:10px}.saved-addr input{margin-top:5px}
  .form-grid{gap:14px}
  .input{font-size:16px;padding:.82rem .9rem}
  .btn{padding:.9rem 1rem;letter-spacing:.13em}.btn:hover{letter-spacing:.13em}
  .cart-line{gap:12px;padding:18px 0}.cart-line img{width:78px;height:98px}.cart-line .l-name{font-size:1.22rem}
  .mini-cart-panel{width:100vw}.mini-cart-body{padding-left:14px;padding-right:14px}.drawer-head{padding-left:14px;padding-right:14px}
  .footer-grid{gap:26px}.site-footer{padding-top:46px}.footer-mark{font-size:2.25rem;letter-spacing:.12em;overflow-wrap:anywhere}
  .table{min-width:680px}.table-scroll{margin-left:-14px;margin-right:-14px;padding:0 14px}
  .pincode-box .fr{flex-direction:column}.pincode-box .fr .btn{width:100%}
  .product-layout{padding-top:24px}.dossier{padding-top:2px}
  .otp-resend{flex-direction:column;align-items:center;gap:4px}
}
@media(max-width:420px){
  .brand{font-size:1.05rem;letter-spacing:.1em}
  .header-actions .icon-btn{width:34px;height:36px}.header-actions .nav-icon{width:19px;height:19px}
  .icon-btn .count{right:-1px;top:0}
  .bottom-nav a,.bottom-nav button{font-size:.5rem;letter-spacing:.045em}
}


/* Admin product editor improvements */
.product-form-top{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;padding:12px 14px;border:1px solid var(--rule);background:var(--paper)}
.product-savebar{position:sticky;bottom:12px;z-index:30;margin-top:22px;padding:12px 14px;border:1px solid var(--rule);background:rgba(250,246,240,.96);backdrop-filter:blur(10px);display:flex;justify-content:space-between;align-items:center;gap:12px;box-shadow:0 10px 30px rgba(36,27,20,.10)}
.product-savebar>div{display:flex;gap:8px;align-items:center}
.admin-media-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:10px}
.admin-media-thumb{border:1px solid var(--rule);background:#fff;padding:6px;position:relative}
.admin-media-thumb img{width:100%;aspect-ratio:1/1;object-fit:cover;display:block}
.admin-media-thumb span{display:block;font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;margin-top:6px;color:var(--muted)}
@media(max-width:767px){.product-form-top{position:sticky;top:0;z-index:20}.product-form-top .muted{display:none}.product-savebar{bottom:70px;flex-direction:column;align-items:stretch}.product-savebar>div{display:grid;grid-template-columns:1fr 1fr}.product-savebar .btn{text-align:center}.admin-media-grid{grid-template-columns:repeat(3,1fr)}}

/* V9 admin product reliability + visible feedback */
.admin-alert{margin:0 0 18px;padding:13px 15px;border:1px solid var(--rule);background:#fff;font-size:.88rem;line-height:1.55}
.admin-alert.success{border-color:#83a58a;background:#f3f8f3;color:#234d2d}
.admin-alert.warning{border-color:#d6ae66;background:#fff9ea;color:#6a4b16}
.admin-alert.error{border-color:#c98787;background:#fff3f3;color:#7b2525}
.field-help{font-size:.72rem;color:var(--muted);margin-top:6px;line-height:1.45}
.upload-box{border:1px dashed #b99b70;background:#fffaf3;padding:16px}
.upload-label{display:flex;align-items:center;gap:13px;cursor:pointer;min-height:62px}
.upload-label small{color:var(--muted);line-height:1.5}
.upload-icon{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--gilt);font-size:1.5rem;color:var(--gilt);flex:0 0 auto}
.upload-box input[type=file]{display:block;width:100%;margin-top:12px}
.media-manage-card{display:flex;flex-direction:column;gap:7px}
.media-choice{font-size:.72rem;display:flex;align-items:center;gap:6px;cursor:pointer}
.danger-text{color:#9b3030}
.product-form-top button[disabled],.product-savebar button[disabled]{opacity:.65;cursor:wait}
@media(max-width:767px){.upload-label{align-items:flex-start}.admin-alert{margin-bottom:12px}}

/* V10 product editor — intentionally scoped to Admin product form only. */
.product-editor{padding-bottom:90px}
.product-editor-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:16px 18px;margin-bottom:18px;border:1px solid var(--rule);background:#fff;position:sticky;top:0;z-index:35;box-shadow:0 8px 24px rgba(36,27,20,.06)}
.product-editor-title-row{display:flex;align-items:center;gap:10px;font-size:1.05rem}.product-editor-toolbar .muted{margin-top:4px;font-size:.78rem}
.product-editor-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.product-editor-grid{display:grid;grid-template-columns:minmax(0,1.9fr) minmax(285px,.85fr);gap:18px;align-items:start}
.product-editor-main,.product-editor-side{display:grid;gap:18px}.product-editor-side{position:sticky;top:98px}.product-panel{margin:0!important;padding:20px}.panel-heading{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.panel-heading>div{display:flex;align-items:center;gap:10px}.panel-heading h3{margin:0}.step-no{width:28px;height:28px;border-radius:50%;display:inline-grid;place-items:center;background:var(--ink);color:white;font-size:.75rem}
.product-fields{gap:14px}.input-lg{font-size:1rem!important;padding:14px!important}.product-description{min-height:190px!important}.stack-fields{display:grid;gap:13px;margin-top:14px}.two-mini{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.product-image-uploader{border:2px dashed #b99766;background:#fffaf1;padding:22px;text-align:center;border-radius:4px;transition:.18s ease}.product-image-uploader.dragging{border-color:var(--gilt);background:#fff3dc;transform:translateY(-1px)}.uploader-icon{font-size:2.2rem;line-height:1;color:var(--gilt)}.uploader-copy{display:grid;gap:4px;margin:8px auto 14px;max-width:590px}.uploader-copy strong{font-size:1rem}.uploader-copy span,.upload-limits{font-size:.75rem;color:var(--muted);line-height:1.55}.product-file-native{display:block!important;opacity:1!important;visibility:visible!important;position:static!important;width:100%;max-width:560px;margin:0 auto 12px;padding:10px;border:1px solid var(--rule);background:#fff;color:var(--ink)}.product-file-button{display:inline-block!important}.product-preview-grid{margin-top:14px}.current-media-head{display:flex;justify-content:space-between;gap:10px;align-items:center;margin-top:22px;margin-bottom:10px}.product-current-grid{grid-template-columns:repeat(auto-fill,minmax(135px,1fr))}.product-media-card{padding:8px}.product-media-card img{aspect-ratio:1/1}.media-choice{display:flex!important;align-items:center;gap:7px;margin-top:8px;font-size:.75rem!important;text-transform:none!important;letter-spacing:0!important}.primary-choice{color:#3e6c47!important}.remove-choice{color:#a43f3f!important}.empty-media-note{margin-top:14px;padding:13px;border:1px solid #e5c9a2;background:#fff8ee;font-size:.82rem}.advanced-details{margin-top:16px}.advanced-details summary{cursor:pointer;font-size:.82rem;font-weight:500;margin-bottom:10px}.variants-editor{min-height:135px!important;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.78rem!important}.publish-panel{border-color:#d9bd8f!important}.publish-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:15px}.publish-actions .btn{text-align:center}.toggle-list{display:grid;gap:7px;margin-top:14px}.toggle-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--rule);font-size:.8rem}.toggle-row:last-child{border:0}.product-editor-bottom{position:fixed;left:var(--admin-side-width,220px);right:0;bottom:0;z-index:90;display:flex;justify-content:space-between;align-items:center;gap:14px;padding:11px 22px;border-top:1px solid var(--rule);background:rgba(255,252,247,.97);box-shadow:0 -8px 25px rgba(36,27,20,.08);backdrop-filter:blur(10px)}.product-editor-bottom>div:first-child{display:flex;flex-direction:column;gap:2px}.product-editor-bottom .muted{font-size:.72rem}
@media(max-width:1100px){.product-editor-grid{grid-template-columns:1fr}.product-editor-side{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.publish-panel{grid-column:1/-1}.product-editor-bottom{left:0}}
@media(max-width:767px){.product-editor{padding-bottom:120px}.product-editor-toolbar{position:static;align-items:stretch;flex-direction:column}.product-editor-actions{display:grid;grid-template-columns:1fr 1fr}.product-editor-actions .btn{text-align:center}.product-editor-toolbar .product-editor-actions a{grid-column:1/-1}.product-editor-side{grid-template-columns:1fr}.product-panel{padding:15px}.panel-heading{align-items:flex-start;flex-direction:column}.panel-heading>div{align-items:center}.two-mini{grid-template-columns:1fr}.product-current-grid{grid-template-columns:repeat(2,1fr)}.product-editor-bottom{bottom:0;left:0;right:0;align-items:stretch;flex-direction:column;padding:9px 12px}.product-editor-bottom>div:first-child{display:none}.product-editor-bottom .product-editor-actions{grid-template-columns:1fr 1fr;width:100%}.product-editor-bottom .product-editor-actions>a{display:none}.product-image-uploader{padding:16px 10px}}
