/* =========================================================================
   Icewine Africa — storefront design system
   "Frozen North -> Warm South": frost-blue ground, molten amber accent.
   ========================================================================= */

:root{
  --void:#0B1119; --deep:#121B27; --raised:#18232F;
  --amber:#D89A3E; --amber-bright:#EBB65A; --amber-deep:#B27A22;
  --burgundy:#6E2A3C;
  --frost:#EEF3F4; --mist:#AEBEC6; --mist-dim:#7C8B94;
  --line:rgba(174,190,198,.16);

  --ground:var(--void); --panel:var(--deep); --card:var(--raised); --ink:var(--frost);
  --ink-soft:var(--mist); --ink-faint:var(--mist-dim);
  --accent:var(--amber); --accent-strong:var(--amber-bright);
  --hairline:var(--line); --chip:#F4F6F5; --shadow:rgba(0,0,0,.5);

  --font-display:"Didot","Bodoni MT","Bodoni 72","Hoefler Text",Georgia,"Times New Roman",serif;
  --font-body:Georgia,"Iowan Old Style","Times New Roman",serif;
  --font-label:"Helvetica Neue",-apple-system,system-ui,"Segoe UI",Arial,sans-serif;

  --wrap:1200px;
  --radius:4px;
}

@media (prefers-color-scheme: light){
  :root{
    --ground:#E9EEF0; --panel:#F4F7F7; --card:#FFFFFF; --ink:#0E1620;
    --ink-soft:#42535D; --ink-faint:#5C6B73;
    --accent:var(--amber-deep); --accent-strong:#8E5F17;
    --hairline:rgba(14,22,32,.12); --chip:#FFFFFF; --shadow:rgba(20,30,45,.14);
  }
}
:root[data-theme="dark"]{
  --ground:var(--void); --panel:var(--deep); --card:var(--raised); --ink:var(--frost);
  --ink-soft:var(--mist); --ink-faint:var(--mist-dim);
  --accent:var(--amber); --accent-strong:var(--amber-bright);
  --hairline:var(--line); --chip:#F4F6F5; --shadow:rgba(0,0,0,.5);
}
:root[data-theme="light"]{
  --ground:#E9EEF0; --panel:#F4F7F7; --card:#FFFFFF; --ink:#0E1620;
  --ink-soft:#42535D; --ink-faint:#5C6B73;
  --accent:var(--amber-deep); --accent-strong:#8E5F17;
  --hairline:rgba(14,22,32,.12); --chip:#FFFFFF; --shadow:rgba(20,30,45,.14);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--ground);color:var(--ink);
  font-family:var(--font-body);font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:var(--font-display);font-weight:400;margin:0;text-wrap:balance;letter-spacing:.01em}
::selection{background:var(--accent);color:var(--void)}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

.wrap{width:min(var(--wrap),92vw);margin-inline:auto}
.label{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.26em;
  font-size:.7rem;font-weight:600;color:var(--accent)}
.muted{color:var(--ink-soft)}
.center{text-align:center}

/* ---------------- Buttons ---------------- */
.btn{display:inline-flex;align-items:center;gap:.55rem;font-family:var(--font-label);
  text-transform:uppercase;letter-spacing:.15em;font-size:.72rem;font-weight:700;
  padding:.85rem 1.5rem;border:1px solid var(--accent);color:var(--accent);border-radius:2px;
  background:transparent;cursor:pointer;transition:all .25s;white-space:nowrap;line-height:1}
.btn:hover{background:var(--accent);color:var(--void)}
.btn.solid{background:var(--accent);color:var(--void)}
.btn.solid:hover{background:var(--accent-strong);border-color:var(--accent-strong)}
.btn.ghost{border-color:var(--hairline);color:var(--ink-soft)}
.btn.ghost:hover{border-color:var(--accent);color:var(--accent);background:transparent}
.btn.block{width:100%;justify-content:center}
.btn.sm{padding:.6rem 1rem;font-size:.66rem}
.btn:disabled{opacity:.45;cursor:not-allowed}

/* ---------------- Header ---------------- */
.site-head{position:sticky;top:0;z-index:60;
  background:color-mix(in srgb,var(--ground) 85%,transparent);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border-bottom:1px solid var(--hairline)}
.head-in{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:.7rem 0}
.brand{display:flex;align-items:center;gap:.65rem}
.brand img{height:40px;width:auto}
.brand-name{font-family:var(--font-display);font-size:1.15rem;line-height:1}
.brand-name small{display:block;font-family:var(--font-label);font-size:.5rem;letter-spacing:.32em;
  text-transform:uppercase;color:var(--accent);margin-top:.28rem;font-weight:600}
.nav{display:flex;gap:1.6rem;align-items:center}
.nav a{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.14em;
  font-size:.72rem;font-weight:600;color:var(--ink-soft);transition:color .2s;padding:.3rem 0}
.nav a:hover,.nav a.active{color:var(--accent)}
.head-actions{display:flex;align-items:center;gap:.9rem}
.icon-btn{background:transparent;border:1px solid var(--hairline);color:var(--ink-soft);
  width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:all .2s;position:relative;flex-shrink:0}
.icon-btn:hover{border-color:var(--accent);color:var(--accent)}
.icon-btn svg{width:18px;height:18px}
.cart-count{position:absolute;top:-6px;right:-6px;background:var(--accent);color:var(--void);
  font-family:var(--font-label);font-size:.62rem;font-weight:700;min-width:18px;height:18px;
  border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0 4px}
.menu-toggle{display:none}
@media(max-width:940px){
  .nav{display:none}
  .brand-name{display:none}
  .menu-toggle{display:flex}
}

/* mobile nav drawer */
.mobile-nav{display:none;flex-direction:column;gap:.2rem;padding:.4rem 1rem;margin:0 -1rem;
  background:var(--ground);border-top:1px solid var(--hairline);box-shadow:0 24px 40px -24px var(--shadow)}
.mobile-nav.open{display:flex}
.mobile-nav a{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.14em;
  font-size:.8rem;font-weight:600;color:var(--ink);padding:.7rem .2rem;border-bottom:1px solid var(--hairline)}
/* keep the drawer readable even while the header sits transparent over the hero */
body.has-hero .site-head:not(.scrolled) .mobile-nav a{color:var(--ink)}

/* ---------------- Flash ---------------- */
.flash{padding:.9rem 0}
.flash-in{padding:.85rem 1.2rem;border-radius:var(--radius);font-family:var(--font-label);
  font-size:.85rem;display:flex;align-items:center;gap:.6rem}
.flash-in.ok{background:color-mix(in srgb,var(--accent) 16%,var(--card));color:var(--ink);
  border:1px solid var(--accent)}
.flash-in.err{background:color-mix(in srgb,var(--burgundy) 20%,var(--card));color:var(--ink);
  border:1px solid var(--burgundy)}

/* ---------------- Hero ---------------- */
.hero{position:relative;min-height:88vh;display:flex;align-items:flex-end;overflow:hidden}
.hero-bg{position:absolute;inset:0;z-index:0}
.hero-bg img{width:100%;height:100%;object-fit:cover;animation:drift 26s ease-in-out infinite alternate}
@keyframes drift{from{transform:scale(1.05)}to{transform:scale(1.14) translate(-2%,-1%)}}
.hero-bg::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(8,13,20,.5),rgba(8,13,20,.1) 34%,rgba(8,13,20,.72) 76%,var(--void)),
  radial-gradient(120% 80% at 12% 100%,rgba(216,154,62,.24),transparent 55%)}
.hero-in{position:relative;z-index:2;padding-bottom:clamp(3rem,7vh,6rem)}
.hero h1{color:#F7FAFB;font-size:clamp(2.8rem,7.5vw,6rem);line-height:.98;margin:1rem 0 0;
  max-width:15ch;text-shadow:0 2px 30px rgba(0,0,0,.4)}
.hero h1 em{font-style:italic;color:var(--amber-bright)}
.hero p.lede{color:#DEE7EA;max-width:52ch;font-size:clamp(1.05rem,1.5vw,1.28rem);margin:1.5rem 0 2rem}
.hero .actions{display:flex;gap:1rem;flex-wrap:wrap}

/* ---------------- 3-slide interchanging hero ---------------- */
.hero-slides .hero-slide{position:absolute;inset:0;z-index:0;opacity:0;transition:opacity 1.4s ease}
.hero-slides .hero-slide.active{opacity:1}
.hero-slides .hero-slide img{width:100%;height:100%;object-fit:cover;object-position:center;
  animation:heroZoom 12s ease-out both}
@keyframes heroZoom{from{transform:scale(1.0)}to{transform:scale(1.045)}}
.hero-slides .slide-scrim{position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(8,13,20,.34),rgba(8,13,20,.03) 34%,rgba(8,13,20,.5) 78%,var(--void)),
  linear-gradient(90deg,rgba(8,13,20,.52),rgba(8,13,20,.08) 58%,transparent),
  radial-gradient(90% 70% at 10% 90%,rgba(216,154,62,.14),transparent 55%)}
.hero-tag{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-label);
  text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;font-weight:600;color:#F2E6CE;margin-bottom:1rem}
.hero-tag b{width:22px;height:1px;background:var(--amber-bright);display:inline-block}
.hero-dots{position:absolute;left:0;right:0;bottom:1.6rem;z-index:4;display:flex;gap:.6rem;justify-content:center}
.hero-dots button{width:34px;height:3px;border:0;border-radius:2px;background:rgba(255,255,255,.3);
  cursor:pointer;padding:0;transition:background .3s}
.hero-dots button.on{background:var(--amber-bright)}

/* Buy Now badge in the header */
.buy-now{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.14em;font-size:.7rem;
  font-weight:700;padding:.62rem 1.2rem;border-radius:999px;background:var(--accent);color:var(--void);
  white-space:nowrap;transition:background .25s,transform .15s;display:inline-flex;align-items:center;gap:.4rem}
.buy-now:hover{background:var(--amber-bright)}
.buy-now:active{transform:translateY(1px)}
body.has-hero .site-head:not(.scrolled) .buy-now{box-shadow:0 6px 20px -8px rgba(216,154,62,.7)}
@media(max-width:940px){.buy-now{display:none}}

/* ---------------- Modern hero ---------------- */
.hero-modern{min-height:86vh}
.hero-modern .hero-bg::after{background:
  linear-gradient(180deg,rgba(8,13,20,.35),rgba(8,13,20,.05) 30%,rgba(8,13,20,.55) 70%,rgba(8,13,20,.92)),
  linear-gradient(90deg,rgba(8,13,20,.72),rgba(8,13,20,.12) 60%,transparent),
  radial-gradient(90% 70% at 8% 90%,rgba(216,154,62,.22),transparent 55%)}
.hero-modern .hero-in{width:min(1180px,92vw);padding-bottom:clamp(4rem,9vh,7rem)}
.hero-content{max-width:660px}
.hero-badge{display:inline-flex;align-items:center;gap:.6rem;font-family:var(--font-label);
  text-transform:uppercase;letter-spacing:.18em;font-size:.68rem;font-weight:600;color:#F2E6CE;
  background:rgba(255,255,255,.08);border:1px solid rgba(235,182,90,.35);border-radius:999px;
  padding:.5rem 1rem;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.hero-badge .pulse{width:7px;height:7px;border-radius:50%;background:var(--amber-bright);
  box-shadow:0 0 0 0 rgba(235,182,90,.7);animation:pulse 2.2s infinite}
@keyframes pulse{0%{box-shadow:0 0 0 0 rgba(235,182,90,.6)}70%{box-shadow:0 0 0 8px rgba(235,182,90,0)}100%{box-shadow:0 0 0 0 rgba(235,182,90,0)}}
.hero-modern h1{color:#F8FBFC;font-size:clamp(2.9rem,7.5vw,6.2rem);line-height:.96;margin:1.3rem 0 0;
  letter-spacing:-.015em;text-shadow:0 2px 40px rgba(0,0,0,.45)}
.hero-modern h1 em{font-style:italic;color:var(--amber-bright)}
.hero-modern .lede{color:#E4EBEE;max-width:50ch;font-size:clamp(1.05rem,1.5vw,1.28rem);margin:1.5rem 0 2.2rem}
.hero-modern .actions{display:flex;align-items:center;gap:1.6rem;flex-wrap:wrap}
.hero-modern .btn.solid{padding:1rem 1.8rem;font-size:.74rem}
.hero-modern .btn.solid svg{transition:transform .3s}
.hero-modern .btn.solid:hover svg{transform:translateX(4px)}
.hero-textlink{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.14em;font-size:.74rem;
  font-weight:700;color:#fff;display:inline-flex;align-items:center;gap:.5rem;padding-bottom:3px;
  border-bottom:1px solid rgba(255,255,255,.35);transition:border-color .3s,color .3s}
.hero-textlink span{transition:transform .3s;color:var(--amber-bright)}
.hero-textlink:hover{color:var(--amber-bright);border-color:var(--amber-bright)}
.hero-textlink:hover span{transform:translateX(4px)}
.hero-trust{display:flex;gap:clamp(1.5rem,4vw,3rem);margin-top:clamp(2.5rem,5vh,3.5rem);
  padding-top:1.6rem;border-top:1px solid rgba(255,255,255,.16)}
.hero-trust div{display:flex;flex-direction:column;gap:.25rem}
.hero-trust b{font-family:var(--font-display);font-size:clamp(1.6rem,3vw,2.1rem);color:#fff;line-height:1;font-weight:400}
.hero-trust span{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.14em;font-size:.6rem;color:#B9C6CC}
.hero-scroll{position:absolute;left:50%;bottom:1.6rem;transform:translateX(-50%);z-index:3;
  display:flex;flex-direction:column;align-items:center;gap:.6rem;color:#D9E2E6;
  font-family:var(--font-label);text-transform:uppercase;letter-spacing:.24em;font-size:.6rem}
.hero-scroll i{width:1px;height:34px;background:linear-gradient(var(--amber-bright),transparent);position:relative;overflow:hidden}
.hero-scroll i::after{content:"";position:absolute;top:-34px;left:0;width:1px;height:34px;
  background:linear-gradient(transparent,#fff);animation:scrolldrop 1.8s ease-in-out infinite}
@keyframes scrolldrop{0%{top:-34px}60%,100%{top:34px}}
@media(max-width:720px){
  .hero-modern{min-height:90vh}
  .hero-trust{gap:1.4rem}
  .hero-modern .actions{gap:1rem;flex-direction:column;align-items:stretch}
  .hero-modern .actions .btn.solid{justify-content:center}
  .hero-textlink{justify-content:center}
  .hero-scroll{display:none}
}

/* ---------------- Marquee ---------------- */
.strip{background:var(--accent);color:var(--void);overflow:hidden;padding:.85rem 0;
  border-block:1px solid rgba(0,0,0,.12)}
.marq{display:flex;width:max-content;animation:slide 36s linear infinite;
  font-family:var(--font-display);font-style:italic;font-size:1.45rem;white-space:nowrap}
.marq span{display:inline-flex;align-items:center;gap:2.5rem;padding-right:2.5rem}
.marq b{font-style:normal;font-family:var(--font-label);font-size:.68rem;letter-spacing:.3em;
  text-transform:uppercase;font-weight:700;opacity:.6}
@keyframes slide{to{transform:translateX(-50%)}}

/* ---------------- Sections ---------------- */
.section{padding:clamp(2.5rem,5vw,4.25rem) 0}
.section.panel{background:var(--panel)}
.section-head{max-width:60ch}
.section-head h2{font-size:clamp(2rem,4.2vw,3.2rem);line-height:1.04;margin:.7rem 0 0}
.section-head p{color:var(--ink-soft);margin:1rem 0 0;font-size:1.1rem}
.section-head.center{margin-inline:auto}

/* ---------------- Product grid & cards ---------------- */
.grid{display:grid;gap:clamp(1.2rem,2.5vw,1.8rem)}
.grid.cols-3{grid-template-columns:repeat(3,1fr)}
.grid.cols-4{grid-template-columns:repeat(4,1fr)}
@media(max-width:900px){.grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.grid.cols-3,.grid.cols-4{grid-template-columns:1fr 1fr}}

.card{background:var(--card);border:1px solid var(--hairline);border-radius:var(--radius);
  overflow:hidden;display:flex;flex-direction:column;transition:transform .3s,border-color .3s,box-shadow .3s}
.card:hover{transform:translateY(-5px);border-color:var(--accent);box-shadow:0 24px 50px -30px var(--shadow)}
.card-media{position:relative;aspect-ratio:3/4;background:linear-gradient(178deg,#ffffff 0%,#eef1f4 100%);overflow:hidden}
/* smaller bottle inside the card (ref inniskillin.com pack-shots) */
.card-media img{width:100%;height:100%;box-sizing:border-box;object-fit:contain;padding:1.9rem 2rem .7rem;transition:transform .7s cubic-bezier(.2,.7,.2,1)}
.card:hover .card-media img{transform:scale(1.04)}
/* Media Articles: smaller, landscape thumbnails (cover photos, not tall pack-shots) */
.grid.editorial .card-media{aspect-ratio:16/11}
.grid.editorial .card-media img{object-fit:cover;padding:0}
.card-tag{position:absolute;top:.8rem;left:.8rem;font-family:var(--font-label);font-size:.58rem;
  text-transform:uppercase;letter-spacing:.16em;font-weight:700;padding:.32rem .6rem;border-radius:2px;
  background:var(--void);color:var(--amber-bright)}
.card-tag.sale{background:var(--burgundy);color:#fff}
.card-tag.out{background:#333;color:#ccc}
.card-body{padding:1.1rem 1.2rem 1.3rem;display:flex;flex-direction:column;gap:.35rem;flex:1}
.card-brand{font-family:var(--font-label);font-size:.6rem;text-transform:uppercase;letter-spacing:.18em;
  color:var(--accent);font-weight:600}
.card-name{font-family:var(--font-display);font-size:1.2rem;line-height:1.15;color:var(--ink)}
.card-name a:hover{color:var(--accent)}
.card-meta{font-size:.82rem;color:var(--ink-faint)}
.card-foot{margin-top:auto;padding-top:.8rem;display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.price{font-family:var(--font-display);font-size:1.25rem;color:var(--ink)}
.price .was{font-size:.85rem;color:var(--ink-faint);text-decoration:line-through;margin-right:.4rem}
.price .now{color:var(--accent)}

/* ---------------- Shop layout ---------------- */
.shop{display:grid;grid-template-columns:250px 1fr;gap:clamp(1.5rem,3vw,3rem);align-items:start}
@media(max-width:820px){.shop{grid-template-columns:1fr}}
.filters{position:sticky;top:90px;display:flex;flex-direction:column;gap:1.8rem}
@media(max-width:820px){.filters{position:static}}
.filter-group h4{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.18em;
  font-size:.68rem;color:var(--ink);font-weight:700;margin-bottom:.8rem}
.filter-list{display:flex;flex-direction:column;gap:.1rem}
.filter-list a{padding:.4rem 0;font-size:.92rem;color:var(--ink-soft);border-bottom:1px solid var(--hairline)}
.filter-list a:hover,.filter-list a.active{color:var(--accent)}
.shop-bar{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-bottom:1.5rem;flex-wrap:wrap}
.shop-bar .count{font-family:var(--font-label);font-size:.8rem;color:var(--ink-faint);text-transform:uppercase;letter-spacing:.1em}
.select,.input,.textarea{background:var(--card);border:1px solid var(--hairline);border-radius:var(--radius);
  padding:.7rem .9rem;color:var(--ink);font-family:var(--font-body);font-size:.95rem;width:100%}
.select{max-width:220px;font-family:var(--font-label);font-size:.8rem}
.search{display:flex;gap:.5rem;max-width:340px}

/* ---------------- Product detail ---------------- */
.pdp{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,5vw,4.5rem);align-items:start}
@media(max-width:860px){.pdp{grid-template-columns:1fr}}
/* compact product-detail image (ref inniskillin.com) — smaller & quicker to scroll past */
.gallery{max-width:400px}
.gallery .main{aspect-ratio:3/4;border-radius:var(--radius);overflow:hidden;background:linear-gradient(178deg,#ffffff 0%,#eef1f4 100%);border:1px solid var(--hairline)}
.gallery .main img{width:100%;height:100%;box-sizing:border-box;object-fit:contain;padding:2.2rem 2.2rem .8rem}
.thumbs{display:flex;gap:.7rem;margin-top:.7rem;flex-wrap:wrap}
.thumbs button{width:70px;height:90px;border-radius:3px;overflow:hidden;border:1px solid var(--hairline);
  padding:0;cursor:pointer;background:none}
.thumbs button.active{border-color:var(--accent)}
.thumbs img{width:100%;height:100%;object-fit:contain;background:#fff;padding:.25rem;box-sizing:border-box}
.pdp-info h1{font-size:clamp(2rem,3.5vw,2.8rem);line-height:1.05;margin:.5rem 0 0}
.pdp-price{font-family:var(--font-display);font-size:2rem;color:var(--accent);margin:1rem 0}
.pdp-price .was{font-size:1.1rem;color:var(--ink-faint);text-decoration:line-through;margin-right:.6rem}
.attrs{display:grid;grid-template-columns:repeat(2,1fr);gap:.1rem 1.5rem;margin:1.5rem 0;
  border-top:1px solid var(--hairline)}
.attrs div{display:flex;justify-content:space-between;gap:1rem;padding:.6rem 0;border-bottom:1px solid var(--hairline);font-size:.9rem}
.attrs dt{color:var(--ink-faint);font-family:var(--font-label);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem}
.attrs dd{margin:0;color:var(--ink);text-align:right}
.buy{display:flex;gap:.8rem;align-items:stretch;margin:1.5rem 0}
.qty{display:flex;align-items:center;border:1px solid var(--hairline);border-radius:2px;overflow:hidden}
.qty button{width:42px;height:100%;background:var(--card);border:none;color:var(--ink);font-size:1.1rem;cursor:pointer}
.qty button:hover{color:var(--accent)}
.qty input{width:48px;text-align:center;border:none;background:transparent;color:var(--ink);
  font-family:var(--font-label);font-size:1rem;-moz-appearance:textfield;appearance:textfield}
.qty input::-webkit-outer-spin-button,.qty input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.stock-line{font-family:var(--font-label);font-size:.75rem;text-transform:uppercase;letter-spacing:.12em}
.stock-line.in{color:var(--accent)}
.stock-line.out{color:var(--burgundy)}
.prose{color:var(--ink-soft);line-height:1.7}
.prose h3{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;
  color:var(--accent);margin:1.6rem 0 .5rem;font-weight:700}
.prose p{margin:.4rem 0}

/* ---------------- Cart & checkout ---------------- */
.two-col{display:grid;grid-template-columns:1.6fr 1fr;gap:clamp(1.5rem,3vw,3rem);align-items:start}
@media(max-width:860px){.two-col{grid-template-columns:1fr}}
.cart-line{display:grid;grid-template-columns:88px 1fr auto;gap:1.1rem;padding:1.2rem 0;border-bottom:1px solid var(--hairline);align-items:center}
.cart-line img{width:88px;height:110px;object-fit:cover;border-radius:3px}
.cart-line .nm{font-family:var(--font-display);font-size:1.15rem;color:var(--ink)}
.cart-line .mt{font-size:.82rem;color:var(--ink-faint)}
.summary{background:var(--card);border:1px solid var(--hairline);border-radius:var(--radius);padding:1.6rem;position:sticky;top:90px}
.summary h3{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.18em;font-size:.75rem;
  color:var(--ink);font-weight:700;margin-bottom:1.2rem}
.sumrow{display:flex;justify-content:space-between;padding:.5rem 0;font-size:.95rem;color:var(--ink-soft)}
.sumrow.total{border-top:1px solid var(--hairline);margin-top:.6rem;padding-top:1rem;
  font-family:var(--font-display);font-size:1.4rem;color:var(--ink)}
.sumrow.total b{color:var(--accent);font-weight:400}
.field{display:flex;flex-direction:column;gap:.4rem;margin-bottom:1rem}
.field label{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;color:var(--ink-soft);font-weight:600}
.field .err{color:var(--burgundy);font-size:.78rem}
.field-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media(max-width:520px){.field-row{grid-template-columns:1fr}}
.pay-option{display:flex;gap:.9rem;align-items:flex-start;padding:1rem;border:1px solid var(--hairline);
  border-radius:var(--radius);cursor:pointer;margin-bottom:.8rem;transition:border-color .2s}
.pay-option:hover,.pay-option.sel{border-color:var(--accent)}
.pay-option input{margin-top:.3rem}
.pay-option .t{display:block;font-family:var(--font-label);font-weight:700;font-size:.85rem;color:var(--ink);margin-bottom:.2rem}
.pay-option .d{display:block;font-size:.82rem;color:var(--ink-faint);line-height:1.4}

/* ---------------- Italian portfolio flip cards ---------------- */
.wine-flight{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(1.2rem,2.5vw,2rem)}
@media(max-width:820px){.wine-flight{grid-template-columns:1fr 1fr;gap:1rem}}
@media(max-width:480px){.wine-flight{grid-template-columns:1fr 1fr;gap:.7rem}}
.flip-card{perspective:1400px;cursor:pointer;background:none;border:0;padding:0;width:100%;
  font:inherit;text-align:left;display:block}
.flip-inner{position:relative;width:100%;aspect-ratio:4/5;transition:transform .75s cubic-bezier(.2,.7,.2,1);
  transform-style:preserve-3d;border-radius:var(--radius);box-shadow:0 20px 45px -28px var(--shadow)}
.flip-card:hover .flip-inner{box-shadow:0 28px 60px -26px var(--shadow)}
.flip-card.flipped .flip-inner{transform:rotateY(180deg)}
.flip-face{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;
  border-radius:var(--radius);overflow:hidden;background:#efe9df}
.flip-face img{width:100%;height:100%;object-fit:cover;display:block}
.flip-back{transform:rotateY(180deg)}
.flip-hint{position:absolute;bottom:.7rem;right:.7rem;z-index:2;font-family:var(--font-label);
  text-transform:uppercase;letter-spacing:.12em;font-size:.56rem;font-weight:700;color:#fff;
  background:rgba(8,13,20,.55);border:1px solid rgba(255,255,255,.25);border-radius:999px;
  padding:.32rem .6rem;display:inline-flex;align-items:center;gap:.35rem;backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);pointer-events:none;transition:opacity .3s}
.flip-card.flipped .flip-hint{opacity:0}
.flip-caption{margin-top:.7rem}
.flip-caption .fc-name{font-family:var(--font-display);font-size:1.05rem;color:var(--ink);line-height:1.15}
.flip-caption .fc-sub{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.12em;
  font-size:.62rem;color:var(--ink-faint);margin-top:.25rem}
.wine-group-label{display:flex;align-items:center;gap:1rem;margin:clamp(2.5rem,5vw,3.5rem) 0 clamp(1.5rem,3vw,2rem)}
.wine-group-label h3{font-family:var(--font-display);font-size:clamp(1.5rem,3vw,2.1rem);color:var(--ink);white-space:nowrap}
.wine-group-label::after{content:"";flex:1;height:1px;background:var(--hairline)}
.wine-group-label .swatch{width:12px;height:12px;border-radius:50%}
.swatch.red{background:#6E2A3C}.swatch.white{background:#E7C878}.swatch.rose{background:#E19AA6}
.swatch.gold{background:#D89A3E}.swatch.blue{background:#3E6E8E}
/* data-driven portfolio: pack-shot front + tasting-text back */
.flip-front.pack{background:linear-gradient(178deg,#ffffff 0%,#eef1f4 100%)}
.flip-front.pack img{object-fit:contain;padding:1.5rem 1.5rem .5rem}
.flip-back.text{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  text-align:left;gap:.35rem;padding:1.1rem 1.15rem;background:var(--card);color:var(--ink)}
.flip-back.text .fb-brand{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.14em;font-size:.6rem;color:var(--accent);font-weight:600}
.flip-back.text .fb-name{font-family:var(--font-display);font-size:1.05rem;line-height:1.15;color:var(--ink)}
.flip-back.text .fb-sub{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.1em;font-size:.6rem;color:var(--ink-faint)}
.flip-back.text .fb-desc{font-size:.8rem;line-height:1.5;color:var(--ink-soft);margin:.25rem 0 0}
.flip-caption .fc-name a{color:inherit;transition:color .2s}
.flip-caption .fc-name a:hover{color:var(--accent)}

/* ---------------- Collections ---------------- */
/* smaller, centred frames — the 3 collection cards sit in the middle of the row */
.collection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,280px));gap:clamp(1rem,2vw,1.5rem);justify-content:center}
@media(max-width:900px){.collection-grid{grid-template-columns:repeat(2,minmax(0,260px))}}
@media(max-width:560px){.collection-grid{grid-template-columns:minmax(0,300px)}}
.collection-card{position:relative;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;
  display:flex;align-items:flex-end;background:#0d1420;border:1px solid var(--hairline);
  transition:transform .35s cubic-bezier(.2,.7,.2,1),border-color .35s}
.collection-card:hover{transform:translateY(-5px);border-color:var(--accent)}
.collection-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  transition:transform .9s cubic-bezier(.2,.7,.2,1);opacity:.82}
.collection-card:hover img{transform:scale(1.06)}
.collection-card::after{content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(8,13,20,.1),rgba(8,13,20,.35) 45%,rgba(8,13,20,.92))}
.collection-card .cc-body{position:relative;z-index:2;padding:1.4rem}
.collection-card .cc-body h3{font-family:var(--font-display);color:#fff;font-size:1.4rem;line-height:1.1}
.collection-card .cc-body p{color:#D9E2E6;font-size:.85rem;margin:.4rem 0 .6rem;line-height:1.4}
.collection-card .cc-link{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.16em;
  font-size:.66rem;font-weight:700;color:var(--amber-bright)}

/* ---- Terroir step cards ---- */
.step-card{background:var(--card);border:1px solid var(--hairline);border-radius:var(--radius);padding:1.6rem}
.step-card .step-num{font-family:var(--font-display);font-size:1.6rem;color:var(--accent);display:block}
.step-card h3{font-family:var(--font-display);font-size:1.15rem;color:var(--ink);margin:.6rem 0 .5rem;line-height:1.2}
.step-card p{color:var(--ink-soft);font-size:.92rem;line-height:1.6;margin:0}

/* ---- Gallery (uniform grid) + lightbox ---- */
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
@media(max-width:900px){.gallery-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:8px}}
.gallery-grid figure{margin:0;aspect-ratio:1/1;border-radius:3px;overflow:hidden;cursor:zoom-in;
  background:#0d1420;position:relative}
.gallery-grid img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .8s cubic-bezier(.2,.7,.2,1)}
.gallery-grid figure:hover img{transform:scale(1.06)}
.gallery-grid figure::after{content:"";position:absolute;inset:0;background:rgba(8,13,20,0);transition:background .3s}
.gallery-grid figure:hover::after{background:rgba(8,13,20,.12)}
.lightbox{position:fixed;inset:0;z-index:200;background:rgba(6,10,16,.94);display:none;
  align-items:center;justify-content:center;padding:2rem}
.lightbox.open{display:flex}
.lightbox img{max-width:94vw;max-height:90vh;border-radius:4px;box-shadow:0 30px 90px -20px #000}
.lightbox .lb-close,.lightbox .lb-nav{position:absolute;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.2);
  color:#fff;width:48px;height:48px;border-radius:50%;cursor:pointer;font-size:1.4rem;display:flex;align-items:center;justify-content:center}
.lightbox .lb-close{top:1.2rem;right:1.2rem}
.lightbox .lb-nav.prev{left:1.2rem;top:50%;transform:translateY(-50%)}
.lightbox .lb-nav.next{right:1.2rem;top:50%;transform:translateY(-50%)}
.lightbox .lb-nav:hover,.lightbox .lb-close:hover{background:var(--accent);color:var(--void);border-color:var(--accent)}

/* ---------------- Brand strip ---------------- */
.makers{display:grid;grid-template-columns:repeat(3,minmax(0,300px));gap:clamp(1rem,2.4vw,1.8rem);justify-content:center}
@media(max-width:820px){.makers{grid-template-columns:repeat(2,minmax(0,260px))}}
@media(max-width:560px){.makers{grid-template-columns:minmax(0,320px)}}
.maker{background:var(--card);border:1px solid var(--hairline);border-radius:var(--radius);padding:1.4rem;
  display:flex;flex-direction:column;gap:1.2rem;transition:transform .3s,border-color .3s}
.maker:hover{transform:translateY(-4px);border-color:var(--accent)}
.maker .plaque{background:var(--chip);border-radius:3px;height:78px;display:flex;align-items:center;justify-content:center;padding:1rem}
.maker .plaque img{max-height:100%;width:auto;object-fit:contain}
.maker p{margin:0;color:var(--ink-soft);font-size:.86rem;line-height:1.55}
.maker .mk{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.16em;font-size:.64rem;color:var(--accent);font-weight:600}

/* ---------------- Footer ---------------- */
.foot{background:var(--void);color:var(--mist);padding:clamp(3.5rem,7vw,5rem) 0 2rem;border-top:1px solid var(--line)}
.foot-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:2.5rem}
@media(max-width:860px){.foot-grid{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.foot-grid{grid-template-columns:1fr}}
.foot h4{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;
  color:var(--amber);font-weight:700;margin:0 0 1.1rem}
.foot a,.foot p{color:var(--mist);font-size:.9rem;display:block;margin:.35rem 0;line-height:1.5}
.foot a:hover{color:var(--amber-bright)}
.foot .brand-name{color:#fff}
.foot-form{display:flex;flex-direction:column;gap:.7rem;margin-top:.4rem}
.foot-form input{background:rgba(255,255,255,.06);border:1px solid rgba(174,190,198,.25);border-radius:3px;
  padding:.7rem .9rem;color:#fff;font-family:var(--font-body);font-size:.92rem}
.foot-form input::placeholder{color:#87949c}
.foot-bottom{border-top:1px solid rgba(174,190,198,.14);margin-top:3rem;padding-top:1.5rem;
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-family:var(--font-label);font-size:.72rem;letter-spacing:.06em;color:var(--mist-dim)}
.socials{display:flex;gap:.8rem;margin-top:1rem}
.socials a{width:34px;height:34px;border:1px solid rgba(174,190,198,.28);border-radius:50%;
  display:flex;align-items:center;justify-content:center;transition:all .25s}
.socials a:hover{border-color:var(--amber);background:var(--amber);color:var(--void)}
.socials svg{width:15px;height:15px}

/* ---------------- Pagination ---------------- */
.pagination{display:flex;gap:.4rem;justify-content:center;margin-top:3rem;list-style:none;padding:0;flex-wrap:wrap}
.pagination a,.pagination span{display:flex;align-items:center;justify-content:center;min-width:40px;height:40px;
  border:1px solid var(--hairline);border-radius:3px;font-family:var(--font-label);font-size:.82rem;color:var(--ink-soft);padding:0 .6rem}
.pagination a:hover{border-color:var(--accent);color:var(--accent)}
.pagination .active span{background:var(--accent);color:var(--void);border-color:var(--accent)}
.pagination [aria-disabled] span{opacity:.35}

/* ---------------- Misc ---------------- */
.breadcrumb{font-family:var(--font-label);font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;
  color:var(--ink-faint);padding:1.4rem 0;display:flex;gap:.5rem;flex-wrap:wrap}
.breadcrumb a:hover{color:var(--accent)}
.page-hero{padding:clamp(2.5rem,5vw,4rem) 0 1rem}
.page-hero h1{font-size:clamp(2.2rem,5vw,3.6rem);line-height:1.02}
.empty{text-align:center;padding:4rem 1rem;color:var(--ink-soft)}
.empty h2{font-size:1.8rem;margin-bottom:.6rem}

/* =========================================================================
   PREMIUM + MOBILE PASS
   ========================================================================= */

/* ---- Prices always inline, never wrap mid-number ---- */
.price, .pdp-price, .card-foot .price, .sumrow > span:last-child{ white-space:nowrap; }
.card-foot{ flex-wrap:nowrap; gap:.55rem; align-items:center; }
.card-foot .price{ flex:1 1 auto; min-width:0; font-size:1.1rem; letter-spacing:-.01em; }
.card-foot form, .card-foot .btn{ flex:0 0 auto; }
.price .was{ display:inline; }

/* ---- Global easing / press feedback ---- */
a, .btn, .card, .icon-btn, .maker, input, textarea, .select, figure.card img, .filter-list a, .nav a{
  transition-timing-function: cubic-bezier(.2,.7,.2,1);
}
.btn:active{ transform:translateY(1px); }
.icon-btn:active{ transform:scale(.94); }
.card:active{ transform:translateY(-2px) scale(.995); }

/* ---- Gentle page-load fade ---- */
@keyframes pageIn{ from{opacity:0} to{opacity:1} }
body{ animation:pageIn .5s ease both; }

/* ---- Header lifts on scroll ---- */
.site-head{ transition:box-shadow .3s, background .3s, border-color .3s; }
.site-head.scrolled{ box-shadow:0 8px 30px -18px var(--shadow); border-bottom-color:var(--accent); }

/* ---- Transparent header over hero pages, solid on scroll ---- */
body.has-hero{ }
body.has-hero .site-head{ position:fixed; left:0; right:0; top:0;
  background:transparent; border-bottom-color:transparent;
  -webkit-backdrop-filter:none; backdrop-filter:none; }
/* reserve space so the fixed header never overlaps hero content */
body.has-hero .hero{ padding-top:clamp(86px,11vh,120px); }
/* subtle top scrim so light nav stays legible over bright hero areas */
body.has-hero .site-head:not(.scrolled){ background:linear-gradient(180deg,rgba(8,13,20,.55),rgba(8,13,20,0)); }
body.has-hero .site-head:not(.scrolled) .brand-name{ color:#fff; }
body.has-hero .site-head:not(.scrolled) .nav a{ color:rgba(255,255,255,.9); }
body.has-hero .site-head:not(.scrolled) .nav a:hover,
body.has-hero .site-head:not(.scrolled) .nav a.active{ color:var(--amber-bright); }
body.has-hero .site-head:not(.scrolled) .icon-btn{ border-color:rgba(255,255,255,.4); color:#fff; }
body.has-hero .site-head:not(.scrolled) .icon-btn:hover{ border-color:var(--amber-bright); color:var(--amber-bright); }
/* scrolled → solid frosted bar (both light & dark theme) */
body.has-hero .site-head.scrolled{ position:fixed;
  background:color-mix(in srgb,var(--ground) 92%,transparent);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border-bottom:1px solid var(--hairline); }

/* ---- Scroll reveal (auto-applied via JS) ---- */
[data-reveal]{ opacity:0; transform:translateY(24px);
  transition:opacity .8s cubic-bezier(.2,.7,.2,1), transform .8s cubic-bezier(.2,.7,.2,1); }
[data-reveal].in{ opacity:1; transform:none; }
[data-reveal].d1{ transition-delay:.06s } [data-reveal].d2{ transition-delay:.12s }
[data-reveal].d3{ transition-delay:.18s } [data-reveal].d4{ transition-delay:.24s }

/* Award medallion: pops out when scrolled into view */
.award-pop{ transform:scale(.55); opacity:0;
  transition:transform .7s cubic-bezier(.34,1.56,.64,1), opacity .5s ease; will-change:transform; }
.award-pop.in{ transform:scale(1); opacity:1; }
@media (prefers-reduced-motion: reduce){ .award-pop{ transform:none; opacity:1; transition:none; } }

/* =============== MOBILE (<= 720px) =============== */
@media (max-width:720px){
  body{ font-size:16px; }
  .wrap{ width:auto; margin-inline:0; padding-inline:20px; }
  .section{ padding:clamp(2rem,7vw,3rem) 0; }
  .breadcrumb{ padding:1rem 0; font-size:.66rem; }
  .page-hero{ padding:2rem 0 .5rem; }
  .page-hero h1{ font-size:clamp(2rem,9vw,2.7rem); }
  .section-head h2{ font-size:clamp(1.8rem,8vw,2.4rem); }
  .section-head p{ font-size:1rem; }

  /* Header */
  .head-in{ padding:.6rem 0; gap:.75rem; }
  .brand img{ height:34px; }
  .head-actions{ gap:.5rem; }
  .icon-btn{ width:42px; height:42px; }

  /* Hero */
  .hero{ min-height:88vh; }
  .hero h1{ font-size:clamp(2.6rem,12vw,3.6rem); line-height:1; }
  .hero p.lede{ font-size:1.02rem; }
  .hero .actions{ flex-direction:column; align-items:stretch; gap:.7rem; }
  .hero .actions .btn{ width:100%; justify-content:center; }

  /* Marquee smaller */
  .marq{ font-size:1.15rem; }
  .strip{ padding:.7rem 0; }

  /* Product cards: 2-up, tighter, price+ADD locked inline */
  .grid.cols-3, .grid.cols-4{ grid-template-columns:1fr 1fr; gap:14px; }
  .card-body{ padding:.9rem .9rem 1.05rem; gap:.28rem; }
  .card-name{ font-size:1.02rem; }
  .card-meta{ font-size:.75rem; }
  .card-foot{ padding-top:.7rem; }
  .card-foot .price{ font-size:.98rem; }
  .btn.sm{ padding:.5rem .8rem; font-size:.6rem; letter-spacing:.12em; }

  /* Two-column layouts stack cleanly */
  .two-col, .split, .whatis, .enjoy-grid, .pdp{ grid-template-columns:1fr; gap:2rem; }
  .summary{ position:static; }

  /* Cart line: thumb + details, line total on its own right-aligned row */
  .cart-line{ grid-template-columns:72px 1fr; gap:.9rem 1rem; }
  .cart-line > *{ min-width:0; }
  .cart-line img{ width:72px; height:90px; }
  .cart-line .price{ grid-column:2; justify-self:end; font-size:1.05rem; }
  .cart-line .nm{ font-size:1.05rem; }

  /* Product detail */
  .pdp-info h1{ font-size:clamp(1.9rem,8vw,2.4rem); }
  .attrs{ grid-template-columns:1fr; gap:0; }
  .buy{ gap:.6rem; }
  .buy .btn.solid{ font-size:.66rem; }

  /* Editorial (news/events) — full-width immersive cards */
  .grid.editorial{ grid-template-columns:1fr; gap:1.5rem; }
  .grid.editorial .card-media{ aspect-ratio:16/10; }

  /* Makers / footer breathing room */
  .maker{ padding:1.6rem; }
  .foot{ padding-top:3rem; }

  /* Forms full width, comfy tap size */
  .field .input, .input, .select, .textarea{ font-size:16px; padding:.85rem .95rem; }
  .search{ max-width:none; }
}

/* ---- Shop: compact horizontal filter chips on mobile ---- */
@media (max-width:820px){
  .shop{ grid-template-columns:1fr; gap:1.25rem; }
  .shop > *{ min-width:0; }
  .filters{ position:static; flex-direction:column; gap:1rem; min-width:0; }
  .filter-group{ min-width:0; }
  .filters .search{ order:-1; }
  .filter-group h4{ margin-bottom:.5rem; }
  .filter-list{
    flex-direction:row; flex-wrap:nowrap; overflow-x:auto; gap:.5rem; min-width:0;
    padding-bottom:.3rem; scrollbar-width:none; -webkit-overflow-scrolling:touch;
    scroll-snap-type:x proximity;
  }
  .filter-list::-webkit-scrollbar{ display:none; }
  .filter-list a{
    flex:0 0 auto; border:1px solid var(--hairline); border-bottom:1px solid var(--hairline);
    border-radius:999px; padding:.5rem .95rem; font-size:.8rem; white-space:nowrap;
    color:var(--ink-soft); scroll-snap-align:start;
  }
  .filter-list a.active{
    border-color:var(--accent); color:var(--void); background:var(--accent); font-weight:600;
  }
  .shop-bar{ margin-bottom:1.1rem; }
  .shop-bar .select{ max-width:none; }
}

/* =========================================================================
   WINE DOSSIER (product page)
   ========================================================================= */
.eyebrow-appellation{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.2em;
  font-size:.68rem;color:var(--accent);font-weight:600}
.provenance{display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;font-family:var(--font-label);
  font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:.6rem 0 0}
.provenance span.sep{color:var(--accent);opacity:.6}

.dossier-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--hairline);
  border:1px solid var(--hairline);border-radius:var(--radius);overflow:hidden;margin:1.5rem 0}
.dossier-stats .st{background:var(--card);padding:1rem 1.1rem;text-align:left}
.dossier-stats .st dt{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.12em;
  font-size:.58rem;color:var(--ink-faint);margin:0 0 .3rem}
.dossier-stats .st dd{margin:0;font-family:var(--font-display);font-size:1.15rem;color:var(--ink);line-height:1}
@media(max-width:520px){.dossier-stats{grid-template-columns:repeat(2,1fr)}}

/* Tasting meters */
.meters{display:flex;flex-direction:column;gap:.85rem;margin:.4rem 0 0}
.meter{display:grid;grid-template-columns:88px 1fr;gap:1rem;align-items:center}
.meter .mlabel{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.12em;
  font-size:.66rem;color:var(--ink-soft)}
.meter .track{display:flex;gap:5px}
.meter .track i{flex:1;height:7px;border-radius:2px;background:var(--hairline)}
.meter .track i.on{background:linear-gradient(90deg,var(--amber-deep),var(--accent))}
:root[data-theme="dark"] .meter .track i.on{background:linear-gradient(90deg,var(--amber),var(--amber-bright))}

/* Pairing chips */
.chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:.3rem}
.chips .chip{font-family:var(--font-label);font-size:.72rem;letter-spacing:.04em;padding:.45rem .8rem;
  border:1px solid var(--hairline);border-radius:999px;color:var(--ink-soft);background:var(--card)}

/* Dossier sections */
.dossier{display:flex;flex-direction:column;gap:0}
.dsec{padding:1.6rem 0;border-top:1px solid var(--hairline)}
.dsec:first-child{border-top:none}
.dsec h3{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;
  color:var(--accent);font-weight:700;margin:0 0 .9rem}
.dsec p{margin:.3rem 0;color:var(--ink-soft);line-height:1.7}
.tasting-line{display:grid;grid-template-columns:90px 1fr;gap:1rem;padding:.5rem 0;border-bottom:1px dashed var(--hairline)}
.tasting-line:last-child{border-bottom:none}
.tasting-line dt{font-family:var(--font-display);font-style:italic;color:var(--accent);font-size:1rem}
.tasting-line dd{margin:0;color:var(--ink-soft)}

/* Awards */
.awards{display:flex;flex-direction:column;gap:.7rem}
.award-row{display:flex;gap:.9rem;align-items:center;padding:.7rem .9rem;border:1px solid var(--hairline);
  border-radius:var(--radius);background:var(--card)}
.award-row .medal{width:34px;height:34px;flex:0 0 auto;border-radius:50%;display:flex;align-items:center;
  justify-content:center;border:1px solid var(--accent);color:var(--accent)}
.award-row .medal svg{width:18px;height:18px}
.award-row .at{font-family:var(--font-body);color:var(--ink);font-size:.95rem}
.award-row .ao{font-family:var(--font-label);font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-faint)}

/* Estate story */
.estate{background:var(--panel);border-radius:var(--radius);padding:clamp(1.5rem,3vw,2.4rem)}
.estate .estate-kicker{font-family:var(--font-label);text-transform:uppercase;letter-spacing:.2em;font-size:.66rem;color:var(--accent);font-weight:600}
.estate h3{font-family:var(--font-display);font-size:clamp(1.4rem,3vw,1.9rem);margin:.5rem 0 .8rem;color:var(--ink)}
.estate p{color:var(--ink-soft);line-height:1.8;margin:0}

/* Sticky detail rail on desktop */
@media(min-width:861px){
  .pdp-rail{position:sticky;top:90px;align-self:start}
}

/* ---- Sticky mobile buy-bar (product page) ---- */
.buybar{
  position:fixed; left:0; right:0; bottom:0; z-index:80; display:none;
  align-items:center; justify-content:space-between; gap:1rem;
  padding:.75rem 20px calc(.75rem + env(safe-area-inset-bottom,0px));
  background:color-mix(in srgb,var(--ground) 92%,transparent);
  -webkit-backdrop-filter:blur(14px); backdrop-filter:blur(14px);
  border-top:1px solid var(--hairline);
  transform:translateY(110%); transition:transform .4s cubic-bezier(.2,.7,.2,1);
}
.buybar.show{ transform:translateY(0); }
.buybar .bb-price{ font-family:var(--font-display); font-size:1.25rem; white-space:nowrap; }
.buybar .bb-price small{ display:block; font-family:var(--font-label); font-size:.6rem;
  text-transform:uppercase; letter-spacing:.14em; color:var(--ink-faint); }
.buybar form{ flex:1 1 auto; max-width:60%; }
.buybar .btn{ width:100%; justify-content:center; }
@media (max-width:720px){ .buybar{ display:flex; } }

/* Very small phones */
@media (max-width:360px){
  .wrap{ padding-inline:16px; }
  .grid.cols-3, .grid.cols-4{ gap:12px; }
  .card-foot{ gap:.4rem; }
  .card-foot .price{ font-size:.9rem; }
  .btn.sm{ padding:.45rem .65rem; }
}

@media(prefers-reduced-motion:reduce){
  *{animation:none!important}
  html{scroll-behavior:auto}
  [data-reveal]{ opacity:1; transform:none; transition:none; }
  body{ animation:none; }
}
