/* ═══════════════════════════════════════════════════
   FUSCO SAPORI — main.css  DEFINITIVO v4
   Design Chiaro · Navbar corretta · Mega OK · Mobile
   ═══════════════════════════════════════════════════ */
:root {
  --gold:      #B8922A;
  --gold-lt:   #D4A93A;
  --gold-pale: #F5E8C0;
  --gold-bg:   #FBF5E6;
  --cream:     #FDFAF4;
  --sand:      #F2E8D5;
  --parchment: #E8D8B8;
  --bord:      #5C1A1A;
  --bord-lt:   #7D2E2E;
  --ink:       #1A0E04;
  --text:      #2D1C08;
  --muted:     #7A5C38;
  --line:      rgba(90,60,20,.12);

  /* ── Alias vecchie variabili (shop.css, chi-siamo, checkout, ecc.) ── */
  --gold-light:   #D4A93A;   /* = gold-lt */
  --burgundy:     #5C1A1A;   /* = bord */
  --wine:         #7D2E2E;   /* = bord-lt */
  --wine-deep:    #3a0e0e;
  --dark:         #1A0E04;   /* = ink */
  --earth:        #6B4A2A;
  --moss:         #3a6a2a;
  --border:       rgba(90,60,20,.12); /* = line */
  --text-muted:   #7A5C38;   /* = muted */
  --white:        #ffffff;
  --nav-height:   70px;      /* alias mobile-safe */
  --font-serif:   'Cormorant Garamond', Georgia, serif;
  --font-sans:    'Montserrat', 'Helvetica Neue', sans-serif;
  --transition:   .25s cubic-bezier(.25,.46,.45,.94);
  --radius:       4px;
  --shadow-lg:    0 14px 34px rgba(26,14,4,.12);
  --shadow-soft:  0 10px 24px rgba(26,14,4,.08);
  --glass:        rgba(255,255,255,.72);

  --F1: 'Cormorant Garamond', Georgia, serif;
  --F2: 'Montserrat', 'Helvetica Neue', sans-serif;
  --PROMO: 36px;
  --NAV:   70px;
  --ease:  cubic-bezier(.25,.46,.45,.94);
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--F2);background:radial-gradient(circle at 0% 0%,rgba(212,169,58,.08),transparent 38%),var(--cream);color:var(--text);-webkit-font-smoothing:antialiased;overflow-x:hidden;padding-top:var(--NAV);line-height:1.6}
main{width:min(100%,1400px);margin:0 auto}
body.has-banner{padding-top:calc(var(--PROMO) + var(--NAV))}
a{text-decoration:none;color:inherit}
img{display:block;max-width:100%}
ul{list-style:none}
button{font-family:inherit;cursor:pointer;border:none;background:none}

/* PROMO BAR */
.promo-bar{position:fixed;top:0;left:0;right:0;height:var(--PROMO);z-index:1002;background:var(--bord);color:var(--gold-pale);display:flex;align-items:center;justify-content:center;font-family:var(--F2);font-size:.6rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;padding:0 3rem}
.promo-bar button{position:absolute;right:1rem;font-size:1rem;color:var(--gold-pale);opacity:.55;padding:.3rem;transition:opacity .2s}
.promo-bar button:hover{opacity:1}

/* NAVBAR */
.nav{position:fixed;top:0;left:0;right:0;height:var(--NAV);z-index:1001;background:linear-gradient(180deg,var(--glass),rgba(253,250,244,.92));backdrop-filter:blur(20px);border-bottom:1px solid var(--line);transition:top .25s,box-shadow .25s}
body.has-banner .nav{top:var(--PROMO)}
.nav.scrolled{box-shadow:0 8px 28px rgba(90,60,20,.14)}
.nav-inner{max-width:1400px;margin:0 auto;padding:0 2.8rem;height:100%;display:flex;align-items:center;gap:1.5rem}

/* Logo */
.nav-logo{flex-shrink:0;display:flex;flex-direction:column;line-height:1}
.nl-name{font-family:var(--F1);font-size:1.55rem;font-weight:400;color:var(--ink);letter-spacing:.02em;line-height:1}
.nl-name em{font-style:italic;color:var(--gold)}
.nl-sub{font-family:var(--F2);font-size:.44rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;color:var(--muted);margin-top:2px;opacity:.65}

/* Nav links */
.nav-links{flex:1;display:flex;align-items:center;justify-content:center;gap:.2rem}
.nav-lnk{font-family:var(--F2);font-size:.6rem;font-weight:600;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding:.5rem 1rem;transition:color .2s;display:flex;align-items:center;gap:.3rem;white-space:nowrap}
.nav-lnk:hover{color:var(--gold);text-shadow:0 0 1px rgba(212,169,58,.45)}

/* MEGA MENU — soluzione definitiva */
.mega-wrap{position:relative;display:flex;align-items:center}
.mega-wrap:hover .nav-lnk,.mega-wrap:hover .mega-arrow{color:var(--gold)}
.mega-arrow{transition:transform .22s;opacity:.7;flex-shrink:0}

/* Il panel è fixed, posizionato via JS al bottom esatto della navbar */
.mega-panel{
  position:fixed;left:0;right:0;
  background:#fff;
  border-top:2px solid var(--gold);
  border-bottom:1px solid var(--line);
  box-shadow:0 20px 60px rgba(90,60,20,.12);
  z-index:1000;
  opacity:0;pointer-events:none;
  transform:translateY(-8px);
  transition:opacity .18s var(--ease),transform .18s var(--ease);
}
/* Pseudo-element che copre il gap subpixel tra nav e panel */
.mega-panel::before{content:'';position:absolute;top:-16px;left:0;right:0;height:16px;background:transparent}
.mega-panel.open{opacity:1;pointer-events:auto;transform:translateY(0)}
.mega-inner{max-width:1400px;margin:0 auto;padding:2.2rem 2.8rem;display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.mega-col{padding:0 2.5rem;border-right:1px solid var(--line)}
.mega-col:first-child{padding-left:0}
.mega-col:last-child{border-right:none}
.mega-head{font-family:var(--F2);font-size:.5rem;font-weight:700;letter-spacing:.38em;text-transform:uppercase;color:var(--gold);margin-bottom:1rem}
.mega-lnk{display:flex;align-items:center;gap:.6rem;font-family:var(--F2);font-size:.7rem;color:var(--muted);padding:.4rem 0;transition:color .15s,padding-left .15s}
.mega-lnk:hover{color:var(--gold);padding-left:.35rem}
.mega-gold{color:var(--gold)!important;font-weight:600}

/* Nav actions */
.nav-actions{display:flex;align-items:center;gap:.3rem;flex-shrink:0}
.nav-icon-btn{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid transparent;color:var(--muted);transition:all .2s;position:relative;border-radius:10px}
.nav-icon-btn:hover{color:var(--gold);border-color:var(--line);background:var(--sand);transform:translateY(-1px)}
.nav-cart-btn{border-color:var(--line);background:var(--gold-bg)}
.nav-cart-btn:hover{background:var(--gold);color:#fff;border-color:var(--gold)}

/* Cart badge — animazione bump */
.cart-badge-num{position:absolute;top:-5px;right:-5px;background:var(--bord);color:#fff;border-radius:50%;width:18px;height:18px;font-family:var(--F2);font-size:.5rem;font-weight:700;display:flex;align-items:center;justify-content:center;border:2px solid var(--cream);transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .3s}
.cart-badge-num.bump{transform:scale(1.5);background:var(--gold)}

.nav-burger{display:none;flex-direction:column;gap:5px;width:40px;height:40px;align-items:center;justify-content:center}
.nav-burger span{display:block;width:22px;height:1.5px;background:var(--muted);transition:all .25s}
.nav-burger.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}
.nav-burger.open span:nth-child(2){opacity:0}
.nav-burger.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}

/* MOBILE */
.mob-overlay{position:fixed;inset:0;background:rgba(26,14,4,.55);backdrop-filter:blur(4px);z-index:1099;opacity:0;pointer-events:none;transition:opacity .3s}
.mob-overlay.open{opacity:1;pointer-events:all}
.mob-menu{position:fixed;top:0;right:0;bottom:0;width:min(290px,90dvw);max-width:100%;height:100dvh;background:var(--cream);z-index:1100;transform:translateX(100%);transition:transform .36s var(--ease);display:flex;flex-direction:column;border-left:3px solid var(--gold)}
.mob-menu.open{transform:translateX(0)}
.mob-header{padding:1.2rem 1.5rem;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:var(--sand);flex-shrink:0}
.mob-logo{font-family:var(--F1);font-size:1.3rem;color:var(--ink)}
.mob-logo em{font-style:italic;color:var(--gold)}
.mob-close{font-size:1.1rem;color:var(--muted);padding:.3rem}
.mob-nav{flex:1;overflow-y:auto;padding:.8rem 1.5rem 2rem}
.mob-nav a{display:block;font-family:var(--F2);font-size:.68rem;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);padding:.82rem 0;border-bottom:1px solid var(--line);transition:color .2s,padding-left .2s}
.mob-nav a:hover{color:var(--gold);padding-left:.4rem}

/* ═══ CART PANEL — Laterale fisso, non blocca la navigazione ═══ */

/* Niente overlay scuro — il pannello è a lato */
.cart-overlay { display: none; }

/* Pannello laterale */
.cart-drawer {
  position: fixed;
  top: 0; right: 0;
  width: min(380px, 100dvw);
  max-width: 100%;
  height: 100dvh;
  background: var(--cream);
  z-index: 1500;
  transform: translateX(100%);
  transition: transform .38s cubic-bezier(.25,.46,.45,.94);
  display: flex;
  flex-direction: column;
  box-shadow: -4px 0 40px rgba(90,60,20,.15);
  border-left: 1px solid var(--line);
}
.cart-drawer.open {
  transform: translateX(0);
}

/* Quando il carrello è aperto, la pagina si sposta a sinistra */
body.cart-open { transition: margin-right .38s cubic-bezier(.25,.46,.45,.94); }

/* Header del pannello */
.cart-header {
  padding: 1rem 1.4rem;
  background: var(--ink);
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-shrink: 0;
  gap: 1rem;
  position: sticky;
  top: 0;
  z-index: 2;
}
.cart-header h2 {
  font-family: var(--F1);
  font-size: 1.1rem;
  color: #fff;
  font-weight: 300;
  line-height: 1;
}
.cart-hcount {
  font-family: var(--F2);
  font-size: .58rem;
  color: rgba(255,255,255,.4);
  letter-spacing: .08em;
  display: block;
  margin-top: 2px;
  transition: all .3s;
}
.close-btn {
  color: rgba(255,255,255,.5);
  font-size: 1rem;
  width: 28px; height: 28px;
  display: flex; align-items: center; justify-content: center;
  transition: color .2s;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,.15);
}
.close-btn:hover { color: #fff; border-color: rgba(255,255,255,.4); }

/* Progress bar spedizione */
.cart-progress-wrap {
  padding: .7rem 1.4rem;
  background: var(--gold-bg);
  border-bottom: 1px solid var(--line);
  flex-shrink: 0;
}
.cart-progress-label {
  display: flex;
  justify-content: space-between;
  font-family: var(--F2);
  font-size: .58rem;
  color: var(--muted);
  margin-bottom: .35rem;
}
.cart-progress-bar {
  height: 3px;
  background: var(--sand);
  border-radius: 2px;
  overflow: hidden;
}
.cart-progress-fill {
  height: 100%;
  background: var(--gold-lt);
  border-radius: 2px;
  transition: width .6s cubic-bezier(.25,.46,.45,.94);
}
.cart-progress-fill.full { background: #2a8a2a; }

/* Body scrollabile */
.cart-body {
  flex: 1;
  overflow-y: auto;
  padding: .8rem 1.4rem;
  overscroll-behavior: contain;
}
.cart-loading {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100px;
  font-family: var(--F2);
  font-size: .75rem;
  color: var(--muted);
}

/* Item con animazione */
.cart-item {
  display: flex;
  gap: .8rem;
  align-items: flex-start;
  padding: .8rem 0;
  border-bottom: 1px solid var(--line);
  animation: ciIn .28s cubic-bezier(.25,.46,.45,.94);
}
@keyframes ciIn {
  from { opacity:0; transform:translateX(16px); }
  to   { opacity:1; transform:translateX(0); }
}
.cart-item-img {
  width: 52px; height: 60px;
  background: var(--sand);
  display: flex; align-items: center; justify-content: center;
  font-size: 1.7rem;
  flex-shrink: 0;
  border-radius: 2px;
  position: relative;
  overflow: hidden;
}
.cart-item-img img {
  width: 100%; height: 100%; object-fit: cover;
}
.cart-item-info { flex: 1; min-width: 0; }
.cart-item-name {
  font-family: var(--F1);
  font-size: .95rem;
  color: var(--bord);
  line-height: 1.2;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  margin-bottom: 2px;
}
.cart-item-price {
  font-family: var(--F2);
  font-size: .62rem;
  color: var(--muted);
}
.cart-item-qty {
  display: flex;
  align-items: center;
  gap: .3rem;
  margin-top: .4rem;
}
.qty-btn {
  width: 22px; height: 22px;
  background: var(--sand);
  border: 1px solid var(--line);
  font-size: .85rem;
  display: flex; align-items: center; justify-content: center;
  transition: all .18s;
  border-radius: 2px;
  flex-shrink: 0;
}
.qty-btn:hover { background: var(--bord); color: #fff; border-color: var(--bord); }
.qty-val {
  font-family: var(--F2);
  font-size: .75rem;
  font-weight: 700;
  min-width: 18px;
  text-align: center;
  color: var(--text);
}
.cart-item-right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: .4rem;
  flex-shrink: 0;
}
.cart-item-total {
  font-family: var(--F1);
  font-size: 1rem;
  color: var(--bord);
}
.cart-item-remove {
  font-size: .75rem;
  color: rgba(90,60,20,.3);
  padding: .15rem;
  transition: color .18s;
  line-height: 1;
}
.cart-item-remove:hover { color: var(--bord); }

/* Carrello vuoto */
.cart-empty {
  text-align: center;
  padding: 2.5rem 1rem;
}
.cart-empty-ico { font-size: 3.5rem; display: block; margin-bottom: .8rem; }
.cart-empty h3 {
  font-family: var(--F1);
  font-size: 1.2rem;
  color: var(--ink);
  font-weight: 300;
  margin-bottom: .4rem;
}
.cart-empty p {
  font-family: var(--F2);
  font-size: .7rem;
  color: var(--muted);
  line-height: 1.7;
  margin-bottom: 1.2rem;
}

/* Footer con totali */
.cart-footer {
  padding: 1rem 1.4rem;
  background: #fff;
  border-top: 1px solid var(--line);
  flex-shrink: 0;
}
.cart-coupon {
  display: flex;
  margin-bottom: .8rem;
  gap: 0;
}
.cart-coupon input {
  flex: 1;
  padding: .58rem .8rem;
  border: 1px solid var(--line);
  border-right: none;
  font-family: var(--F2);
  font-size: .68rem;
  background: var(--cream);
  outline: none;
  transition: border-color .2s;
  min-width: 0;
}
.cart-coupon input:focus { border-color: var(--gold); }
.cart-coupon button {
  padding: .58rem .85rem;
  background: var(--muted);
  color: #fff;
  font-family: var(--F2);
  font-size: .56rem;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  white-space: nowrap;
  transition: background .2s;
  flex-shrink: 0;
}
.cart-coupon button:hover { background: var(--bord); }

.cart-lines { display: flex; flex-direction: column; gap: .35rem; margin-bottom: .8rem; }
.cart-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-family: var(--F2);
  font-size: .7rem;
  color: var(--muted);
}
.cart-line.discount { color: var(--gold-lt); }
.cart-line.total {
  border-top: 1px solid var(--line);
  padding-top: .65rem;
  margin-top: .2rem;
  font-size: .6rem;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--text);
}
.cart-total-price {
  font-family: var(--F1);
  font-size: 1.5rem;
  font-weight: 400;
  color: var(--bord);
  transition: transform .3s cubic-bezier(.34,1.56,.64,1);
}
.cart-total-price.bump { transform: scale(1.1); }

.btn-checkout {
  display: block;
  width: 100%;
  text-align: center;
  background: var(--bord);
  color: var(--gold-pale);
  font-family: var(--F2);
  font-size: .62rem;
  font-weight: 700;
  letter-spacing: .2em;
  text-transform: uppercase;
  padding: .95rem;
  transition: background .2s;
  margin-bottom: .6rem;
}
.btn-checkout:hover { background: var(--bord-lt); }

/* Link continua shopping */
.cart-continue {
  display: block;
  text-align: center;
  font-family: var(--F2);
  font-size: .58rem;
  font-weight: 600;
  letter-spacing: .15em;
  text-transform: uppercase;
  color: var(--muted);
  padding: .4rem;
  transition: color .2s;
  margin-bottom: .5rem;
}
.cart-continue:hover { color: var(--gold); }

.cart-secure {
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
  gap: .25rem;
  padding-top: .5rem;
  border-top: 1px solid var(--line);
}
.cart-secure span {
  font-family: var(--F2);
  font-size: .53rem;
  color: var(--muted);
  letter-spacing: .04em;
}

/* Mini badge "nuovo" che appare sull'item aggiunto */
.cart-item-new {
  position: absolute;
  top: -4px; right: -4px;
  background: var(--gold);
  color: var(--ink);
  font-family: var(--F2);
  font-size: .42rem;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  padding: .12rem .3rem;
  border-radius: 2px;
  animation: newBadge 2s ease forwards;
}
@keyframes newBadge {
  0%   { opacity:1; transform:scale(1); }
  70%  { opacity:1; transform:scale(1); }
  100% { opacity:0; transform:scale(.8); }
}

/* Responsive mobile — pannello full width */
@media (max-width: 768px) {
  .cart-drawer { width: 100dvw; }
  body.cart-open { margin-right: 0; }
}
@media (max-width: 480px) {
  body.cart-open { margin-right: 0; }
}
/* ── UTILITY CLASSES — usate in tutte le pagine ── */
.section-eyebrow {
  display: block;
  font-family: var(--F2); font-size: .55rem; font-weight: 700;
  letter-spacing: .45em; text-transform: uppercase;
  color: var(--gold); margin-bottom: .75rem;
}
.section-title {
  font-family: var(--F1); font-weight: 300;
  font-size: clamp(2rem,3.5vw,3rem);
  line-height: 1.05; color: var(--ink); margin-bottom: 1rem;
}
.section-title em { font-style: italic; color: var(--bord); }
.section-lead {
  font-family: var(--F2); font-size: .84rem;
  color: var(--muted); line-height: 1.9; max-width: 600px;
  margin: 0 auto 1rem;
}
.section-header { text-align: center; margin-bottom: 3rem; }

/* ── FORZA LEGGIBILITÀ TESTI — tutte le pagine ── */
/* Testi su sfondo scuro/vino */
[style*="background:var(--dark)"] p,
[style*="background:var(--ink)"] p,
[style*="background:linear-gradient(145deg,var(--wine"] p,
[style*="background:linear-gradient(145deg,#1a0808"] p {
  color: rgba(250,246,239,.7) !important;
}
[style*="background:var(--dark)"] h1,
[style*="background:var(--dark)"] h2,
[style*="background:var(--dark)"] h3,
[style*="background:var(--ink)"] h1,
[style*="background:var(--ink)"] h2 {
  color: #fff !important;
}
/* Testi su sfondo parchment/crema/sand — forza scuro */
[style*="background:var(--parchment)"] p,
[style*="background:var(--cream)"] p,
[style*="background:var(--sand)"] p,
[style*="background:white"] p,
[style*="background:#fff"] p {
  color: var(--text) !important;
}
[style*="background:var(--parchment)"] h1,
[style*="background:var(--parchment)"] h2,
[style*="background:var(--cream)"] h1,
[style*="background:var(--cream)"] h2 {
  color: var(--ink) !important;
}
/* section-title su sfondo chiaro sempre visibile */
.section-title { color: var(--ink); }
/* su sfondo scuro viene sovrascritto inline con style="color:white" già presente */

/* Checkout */
.checkout-layout { display: grid; grid-template-columns: 1fr 380px; gap: 2.5rem; max-width: 1200px; margin: 0 auto; padding: 3rem 4rem 5rem; align-items: start; }
.checkout-title { font-family: var(--F1); font-size: 1.3rem; font-weight: 400; color: var(--ink); margin-bottom: 1.2rem; }
.checkout-section { background: #fff; border: 1px solid var(--line); padding: 2rem; margin-bottom: 1.5rem; }
.checkout-summary { background: var(--sand); border: 1px solid var(--line); padding: 2rem; position: sticky; top: calc(var(--NAV) + 1rem); }
.checkout-summary h3 { font-family: var(--F1); font-size: 1.1rem; color: var(--ink); font-weight: 400; margin-bottom: 1.2rem; border-bottom: 1px solid var(--line); padding-bottom: .8rem; }
.checkout-item { display: flex; align-items: center; gap: .8rem; padding: .7rem 0; border-bottom: 1px solid var(--line); font-size: .78rem; }
.checkout-item-name { flex: 1; color: var(--text); font-size: .8rem; }
.checkout-item-qty { color: var(--muted); font-size: .72rem; }
.checkout-item-price { font-family: var(--F1); font-size: 1rem; color: var(--bord); }
.checkout-totals { margin-top: 1rem; }
.checkout-totals .row { display: flex; justify-content: space-between; font-size: .78rem; color: var(--muted); margin-bottom: .5rem; }
.checkout-totals .row.total { font-family: var(--F1); font-size: 1.4rem; color: var(--bord); font-weight: 400; border-top: 1px solid var(--line); padding-top: .8rem; margin-top: .5rem; }
.payment-method { border: 1px solid var(--line); padding: 1rem 1.2rem; margin-bottom: .8rem; cursor: pointer; transition: all .2s; display: flex; align-items: center; gap: 1rem; }
.payment-method:hover { border-color: var(--gold); }
.payment-method.selected { border-color: var(--bord); background: rgba(92,26,26,.04); }
.payment-method label { cursor: pointer; flex: 1; }
.payment-desc { font-size: .7rem; color: var(--muted); margin-top: .2rem; }
@media (max-width: 900px) {
  .checkout-layout { grid-template-columns: 1fr; padding: 2rem 1.5rem; }
  .checkout-summary { position: static; }
}
@media (max-width: 560px) {
  .checkout-layout { padding: 1rem; gap: .9rem; }
  .checkout-section { padding: 1rem; margin-bottom: 1rem; }
  .checkout-summary { padding: 1rem; }
  .checkout-item { gap: .55rem; font-size: .72rem; }
  .checkout-item-name { font-size: .75rem; }
  .checkout-item-price { font-size: .9rem; }
  .checkout-totals .row { font-size: .72rem; }
}

/* TOAST */
.toast{position:fixed;bottom:2rem;left:50%;transform:translateX(-50%) translateY(6rem);background:var(--ink);color:var(--gold-pale);font-family:var(--F2);font-size:.72rem;letter-spacing:.1em;padding:.9rem 1.8rem;z-index:5000;transition:transform .38s cubic-bezier(.34,1.56,.64,1);white-space:nowrap;border-left:3px solid var(--gold-lt);box-shadow:0 12px 40px rgba(0,0,0,.2);max-width:calc(100vw - 1.2rem);overflow:hidden;text-overflow:ellipsis}
.toast.show{transform:translateX(-50%) translateY(0)}

/* BUTTONS */
.btn-primary{display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,var(--gold),var(--gold-lt));color:#fff;font-family:var(--F2);font-size:.62rem;font-weight:700;letter-spacing:.22em;text-transform:uppercase;padding:.95rem 2.3rem;transition:background .22s,transform .2s,box-shadow .2s;border-radius:12px;box-shadow:var(--shadow-soft);min-height:44px}
.btn-primary:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(212,169,58,.24)}
.btn-dark{display:inline-flex;align-items:center;gap:.5rem;background:linear-gradient(135deg,var(--ink),#2b1408);color:var(--gold-pale);font-family:var(--F2);font-size:.62rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;padding:.9rem 2rem;transition:background .22s,transform .2s,box-shadow .2s;border-radius:12px;min-height:44px}
.btn-dark:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(26,14,4,.24)}
.btn-outline{display:inline-flex;align-items:center;gap:.5rem;background:transparent;color:var(--muted);font-family:var(--F2);font-size:.62rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;padding:.95rem 2.3rem;border:1px solid var(--line);transition:all .22s;min-height:44px}
.btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.form-input{width:100%;padding:.8rem 1rem;border:1px solid var(--line);background:#fff;font-family:var(--F2);font-size:.8rem;color:var(--text);outline:none;transition:border-color .22s}
.form-input:focus{border-color:var(--gold)}
.form-label{display:block;font-family:var(--F2);font-size:.56rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:.4rem}

/* ANIMATIONS */
@keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}


/* ── FOOTER ── */
.site-footer{background:linear-gradient(180deg,#190d04 0%,#120801 100%)}
.footer-newsletter{background:var(--bord);padding:3.5rem 4rem}
.newsletter-inner{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:2.5rem;flex-wrap:wrap}
.newsletter-text h3{font-family:var(--F1);font-size:clamp(1.4rem,2.2vw,2rem);color:#fff;font-weight:300;margin-bottom:.4rem}
.newsletter-text h3 em{color:var(--gold-pale)}
.newsletter-text p{font-size:.72rem;color:rgba(255,255,255,.55)}
.newsletter-form{display:flex;min-width:340px}
.newsletter-form input{flex:1;padding:.88rem 1.2rem;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.22);border-right:none;color:#fff;font-family:var(--F2);font-size:.74rem;outline:none}
.newsletter-form input::placeholder{color:rgba(255,255,255,.38)}
.newsletter-form button{padding:.88rem 1.6rem;background:var(--gold-lt);color:var(--ink);font-family:var(--F2);font-size:.6rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;white-space:nowrap;transition:background .2s;border:none;cursor:pointer}
.newsletter-form button:hover{background:var(--gold-pale);color:var(--ink)}
.footer-main{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:2.5rem;padding:3.5rem 4rem;max-width:1400px;margin:0 auto;border-bottom:1px solid rgba(255,255,255,.06)}
.footer-logo{font-family:var(--F1);font-size:1.8rem;font-weight:300;color:var(--gold-lt);margin-bottom:1rem}
.footer-logo em{font-style:italic}
.footer-brand p{font-size:.7rem;color:rgba(255,255,255,.38);line-height:1.85;margin-bottom:1rem}
.footer-certif{display:flex;flex-wrap:wrap;gap:.4rem;margin-bottom:1rem}
.footer-certif span{font-size:.56rem;color:rgba(255,255,255,.3);border:1px solid rgba(255,255,255,.1);padding:.18rem .5rem}
.footer-social{display:flex;gap:.5rem}
.footer-social a{width:34px;height:34px;border:1px solid rgba(184,146,42,.22);display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.32);font-size:.85rem;transition:all .2s}
.footer-social a:hover{border-color:var(--gold-lt);color:var(--gold-lt)}
.footer-col h4{font-family:var(--F2);font-size:.56rem;font-weight:700;letter-spacing:.28em;text-transform:uppercase;color:var(--gold-lt);margin-bottom:1.2rem}
.footer-col ul li{margin-bottom:.52rem}
.footer-col ul li a{font-size:.7rem;color:rgba(255,255,255,.38);transition:color .2s}
.footer-col ul li a:hover{color:var(--gold-lt)}
.footer-contacts{margin-top:1.2rem;display:flex;flex-direction:column;gap:.4rem}
.footer-contacts a,.footer-contacts span{font-size:.68rem;color:rgba(255,255,255,.35)}
.footer-contacts a:hover{color:var(--gold-lt)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;padding:1.2rem 4rem;flex-wrap:wrap;gap:.8rem;font-family:var(--F2);font-size:.58rem;color:rgba(255,255,255,.2);letter-spacing:.07em}
.footer-legal{display:flex;gap:1.3rem}
.footer-legal a{color:rgba(255,255,255,.2);transition:color .2s}
.footer-legal a:hover{color:var(--gold-lt)}
.footer-payments{display:flex;gap:.4rem;font-size:1rem}

/* Migliora coerenza leggibilità globale */
p{line-height:1.75}
h1,h2,h3{letter-spacing:.01em}

/* ── TESTI LEGGIBILI — text-shadow su sfondi scuri/ambigui ── */
/* Hero homepage */
.hl h1,.hl-tag,.hl-lead{text-shadow:0 2px 12px rgba(0,0,0,.5)}
/* Sezioni scure generiche */
.prods .sec-tt,.prods .sec-ey,.prods .sec-more,
.phi-vl,.phi-lb,.phi-sb,
.nl-tt,.nl-ey,.nl-tx,
.awards .aw-nm,.awards .aw-sb,.awards .aw-lbl{text-shadow:none}
/* Testo su sfondo crema/bianco — nessuna ombra necessaria */
.terr-nm,.terr-tx,.phi-p,.phi-tt,.phi-ey{text-shadow:none}
/* Card prodotto su sfondo bianco */
.pc-nm a,.pc-cat,.pc-ds{text-shadow:none}
/* Forza leggibilità link nav su sfondo chiaro */
.nav-lnk{text-shadow:none}
/* Mega menu su bianco */
.mega-lnk,.mega-head{text-shadow:none}
/* Ribbon stats oro — testo scuro, leggibile */
.rib-num,.rib-label,.st-n,.st-l{text-shadow:none}
/* Sezione filosofia destra (sfondo scuro) */
.phi-vl{font-size:2.4rem;color:rgba(255,255,255,.92);text-shadow:0 2px 8px rgba(0,0,0,.3)}
.phi-sb{color:rgba(255,255,255,.52);text-shadow:0 1px 4px rgba(0,0,0,.2)}
/* Categorie su sfondo bianco */
.cat-nm{text-shadow:none;color:var(--muted)}
/* Nomi prodotti su sfondo chiaro */
.pc-nm a{color:var(--ink) !important}
/* Descrizioni prodotti */
.pc-ds{color:var(--muted) !important}
/* Prezzi */
.pc-pr{color:var(--bord) !important}
/* Sezione territory */
.terr-nm{color:var(--ink)}
.terr-tx{color:var(--muted)}
/* Sezione filosofia sinistra (sfondo sabbia) */
.phi-tt{color:var(--ink)}
.phi-p{color:rgba(45,28,8,.75)}
/* Footer testi chiari su scuro */
.footer-certif span,.footer-brand p,.footer-col ul li a,.footer-contacts a,.footer-contacts span{color:rgba(255,255,255,.45) !important}

/* RESPONSIVE */
@media(max-width:1100px){
  .nav-links{display:none}
  .nav-inner{justify-content:space-between}
  .nav-burger{display:flex}
  .footer-main{grid-template-columns:1fr 1fr}
}
@media(max-width:768px){
  :root{--NAV:58px;--nav-height:58px;--PROMO:32px}
  .nav-inner{padding:0 max(1rem,env(safe-area-inset-left)) 0 max(1rem,env(safe-area-inset-right))}
  .nl-name{font-size:1.22rem}
  .nav-icon-btn{width:36px;height:36px}
  .mob-menu{width:100dvw}
  .mob-nav{padding:1rem 1.2rem 2rem}
  .mob-nav a{font-size:.74rem;padding:.95rem 0}
  .nl-sub{display:none}
  .section-header{margin-bottom:2rem}
  .section-title{font-size:clamp(1.55rem,7vw,2.1rem)}
  .section-lead{font-size:.8rem;line-height:1.75}
  .btn-primary,.btn-dark,.btn-outline{width:100%;justify-content:center}
  .footer-newsletter{padding:2.5rem 1.5rem}
  .newsletter-inner{gap:1rem}
  .newsletter-form{display:flex;flex-direction:column;gap:.55rem}
  .newsletter-form input,.newsletter-form button{width:100%;border-right:1px solid rgba(255,255,255,.22)}
  .newsletter-form{min-width:unset;width:100%}
  .footer-main{grid-template-columns:1fr;padding:2.5rem 1.5rem}
  .footer-bottom{padding:1rem 1.5rem;flex-direction:column;text-align:center}
  .cart-drawer{width:100dvw}
  .cart-header{padding:.9rem 1rem}
  .cart-progress-wrap{padding:.62rem 1rem}
  .cart-body{padding:.7rem 1rem}
  .cart-footer{padding:.85rem 1rem}
  .cart-item{gap:.65rem}
  .cart-item-name{font-size:.86rem}
  .cart-item-total{font-size:.94rem}
  .cart-total-price{font-size:1.32rem}
  .checkout-layout{padding:1.4rem 1rem 3rem}
  .checkout-section{padding:1.2rem}
  .payment-method{padding:.85rem .9rem;align-items:flex-start}
  .checkout-totals .row.total{font-size:1.12rem}
  .toast{bottom:1rem;font-size:.66rem;letter-spacing:.06em;padding:.8rem 1rem;white-space:normal;text-align:center}
  .nav{backdrop-filter:blur(12px)}
  .promo-bar{padding:0 max(2rem,env(safe-area-inset-left)) 0 max(2rem,env(safe-area-inset-right));font-size:.52rem;letter-spacing:.14em}
  .fs-cookie-banner{padding:1rem max(1rem,env(safe-area-inset-right)) calc(1rem + env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left))}
  .fs-chat-fab{right:max(14px,env(safe-area-inset-right));bottom:calc(14px + env(safe-area-inset-bottom))}
  .pwa-install{right:max(14px,env(safe-area-inset-right));bottom:calc(84px + env(safe-area-inset-bottom));max-width:min(300px,calc(100dvw - 28px - env(safe-area-inset-left) - env(safe-area-inset-right)))}
  .toast{max-width:calc(100dvw - 1rem - env(safe-area-inset-left) - env(safe-area-inset-right));left:50%}
}

@supports not (padding: max(0px)) {
  @media(max-width:768px){
    .nav-inner{padding:0 1rem}
  }
}

/* -- CROSS-SELL carrello -- */
.cart-cross-sell{margin:1rem .6rem;padding:1rem;background:#FDFAF6;border-radius:4px;border:1px dashed #E0D8D0}
.ccs-title{font-size:.62rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:#5C1A1A;margin-bottom:.8rem}
.ccs-item{display:flex;gap:.7rem;align-items:center;padding:.5rem 0;border-bottom:1px solid rgba(224,216,208,.5)}
.ccs-item:last-child{border:none}
.ccs-item img{width:44px;height:44px;object-fit:cover;border-radius:3px;background:#fff}
.ccs-info{flex:1;min-width:0}
.ccs-name{font-size:.78rem;color:#2e1e10;text-decoration:none;font-weight:500;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ccs-name:hover{color:#5C1A1A}
.ccs-price{font-size:.72rem;color:#8c6d52;margin-top:.1rem}
.ccs-add{width:30px;height:30px;border:1px solid #5C1A1A;background:#fff;color:#5C1A1A;border-radius:50%;font-size:1rem;font-weight:700;cursor:pointer;flex-shrink:0;transition:all .18s}
.ccs-add:hover{background:#5C1A1A;color:#E8C97A}

/* -- Urgency badges prodotto -- */
.urgency-pulse{display:inline-flex;align-items:center;gap:.4rem;background:#FFF0E6;color:#D84315;padding:.35rem .8rem;border-radius:20px;font-size:.68rem;font-weight:600;letter-spacing:.05em}
.urgency-pulse::before{content:'';width:8px;height:8px;background:#D84315;border-radius:50%;animation:pulse 1.6s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.25)}}

/* -- Cookie banner -- */
.fs-cookie-banner{position:fixed;bottom:0;left:0;right:0;background:#160A02;color:#E8D4AE;padding:1.2rem 1.5rem;z-index:99998;display:none;box-shadow:0 -10px 40px rgba(0,0,0,.4);animation:slideUp .4s ease}
.fs-cookie-banner.show{display:block}
@keyframes slideUp{from{transform:translateY(100%)}to{transform:translateY(0)}}
.fs-cookie-inner{max-width:1200px;margin:0 auto;display:flex;gap:1.2rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
.fs-cookie-text{flex:1;min-width:280px;font-size:.82rem;line-height:1.5}
.fs-cookie-text a{color:#C9A84C;text-decoration:underline}
.fs-cookie-btns{display:flex;gap:.6rem;flex-wrap:wrap}
.fs-cookie-btns button{padding:.6rem 1.2rem;border:none;cursor:pointer;font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;font-family:inherit;border-radius:2px}
.fs-cookie-btns .btn-accept{background:#C9A84C;color:#160A02}
.fs-cookie-btns .btn-accept:hover{background:#E8C97A}
.fs-cookie-btns .btn-reject{background:transparent;color:#E8D4AE;border:1px solid rgba(232,212,174,.4)}
.fs-cookie-btns .btn-reject:hover{background:rgba(255,255,255,.08)}
.fs-cookie-btns .btn-settings{background:rgba(255,255,255,.08);color:#E8D4AE}

/* -- Support chat widget (floating) -- */
.fs-chat-fab{position:fixed;bottom:24px;right:24px;width:60px;height:60px;border-radius:50%;background:linear-gradient(135deg,#5C1A1A,#7D2E2E);color:#E8C97A;border:none;font-size:1.7rem;cursor:pointer;box-shadow:0 10px 28px rgba(92,26,26,.45);z-index:9997;transition:transform .2s,box-shadow .2s}
.fs-chat-fab:hover{transform:scale(1.08);box-shadow:0 16px 30px rgba(92,26,26,.5)}

/* -- PWA install banner -- */
.pwa-install{position:fixed;bottom:84px;right:24px;background:#fff;padding:1rem 1.2rem;border-radius:8px;box-shadow:0 12px 40px rgba(0,0,0,.2);z-index:9996;max-width:300px;display:none;border:1px solid #EDE5DC}
.pwa-install.show{display:block}

/* Accessibility */
.skip-link{position:fixed;top:-100px;left:8px;background:#160A02;color:#E8C97A;padding:.6rem .9rem;z-index:12000;text-decoration:none;border:1px solid #E8C97A}
.skip-link:focus{top:8px}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #C9A84C;outline-offset:2px}
@media (prefers-reduced-motion: reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
}

/* Stabilita' layout globale */
table{max-width:100%}
iframe,video{max-width:100%}
