/*
Theme Name: Nuova Val Calore
Theme URI: https://nuovavalcalore.com
Author: Nuova Val Calore Srl
Author URI: https://nuovavalcalore.com
Description: Tema ufficiale Nuova Val Calore — Vini DOC e Olio EVO dal Cilento. Compatibile WooCommerce.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.0
License: Private
Text Domain: nvc
Tags: woocommerce, e-commerce, agriculture, wine
*/

/* ── CSS CUSTOM PROPERTIES ── */
:root {
  --gold:    #b8963e;
  --gold-l:  #d4b06a;
  --gold-xl: #e8cc8a;
  --dark:    #170f08;
  --earth:   #2e1f12;
  --earth2:  #3d2b1f;
  --cream:   #f4ede0;
  --sand:    #e0d0b8;
  --mist:    #c8b89a;
  --wine:    #6b2535;
  --wine-l:  #8c3448;
  --olive:   #3f5228;
  --olive-l: #5a7238;
  --olive-xl:#7a9452;
  --border:  rgba(184,150,62,.18);
  --ff-d:    'Cormorant Garamond', Georgia, serif;
  --ff-c:    'Cinzel', 'Times New Roman', serif;
  --ff-b:    'Lato', system-ui, sans-serif;
}

/* ── RESET & BASE ── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; font-size: 16px; }
body {
  font-family: var(--ff-b);
  background: var(--dark);
  color: var(--cream);
  overflow-x: hidden;
}
body::before {
  content: '';
  position: fixed;
  inset: 0;
  pointer-events: none;
  z-index: 9000;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 200'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.035'/%3E%3C/svg%3E");
  opacity: .28;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
ul, ol { list-style: none; }

/* ── LAYOUT ── */
.nvc-wrap { max-width: 1280px; margin: 0 auto; padding: 0 2.5rem; }
.nvc-sec  { padding: 6.5rem 0; }

/* ── TYPOGRAPHY ── */
.nvc-lbl {
  font-family: var(--ff-c);
  font-size: .56rem;
  letter-spacing: .48em;
  text-transform: uppercase;
  color: var(--gold);
  display: block;
  margin-bottom: .9rem;
}
.nvc-title {
  font-family: var(--ff-d);
  font-size: clamp(2rem, 4.5vw, 3.4rem);
  font-weight: 300;
  line-height: 1.08;
  color: var(--cream);
}
.nvc-title em { font-style: italic; color: var(--gold-l); }
.nvc-body {
  font-family: var(--ff-d);
  font-size: 1.05rem;
  line-height: 1.9;
  color: var(--sand);
}

/* ── BUTTONS ── */
.nvc-btn {
  display: inline-block;
  font-family: var(--ff-c);
  font-size: .6rem;
  letter-spacing: .22em;
  text-transform: uppercase;
  padding: .85rem 1.9rem;
  cursor: pointer;
  transition: all .3s;
  border: none;
}
.nvc-btn-gold   { background: var(--gold);  color: var(--dark); }
.nvc-btn-gold:hover { background: var(--gold-l); transform: translateY(-2px); }
.nvc-btn-ghost  { border: 1px solid rgba(244,237,224,.35); color: var(--cream); background: transparent; }
.nvc-btn-ghost:hover { border-color: var(--gold); color: var(--gold); }
.nvc-btn-wine   { background: var(--wine);  color: var(--cream); }
.nvc-btn-wine:hover  { background: var(--wine-l); }
.nvc-btn-olive  { background: var(--olive); color: var(--cream); }
.nvc-btn-olive:hover { background: var(--olive-l); }

/* ── PROMO BAND ── */
.nvc-promo-band {
  background: var(--wine);
  padding: .48rem 1rem;
  text-align: center;
  font-family: var(--ff-c);
  font-size: .58rem;
  letter-spacing: .25em;
  text-transform: uppercase;
  color: var(--cream);
  position: relative;
  z-index: 900;
}
.nvc-promo-band strong { color: var(--gold-xl); }

/* ── NAVIGATION ── */
.nvc-nav {
  position: fixed;
  left: 0; right: 0;
  z-index: 800;
  background: linear-gradient(to bottom, rgba(23,15,8,.97), transparent);
  padding: .75rem 2.8rem;
  display: flex;
  align-items: center;
  justify-content: space-between;
  transition: background .4s, top .3s;
}
.nvc-nav.nvc-nav--solid { background: rgba(23,15,8,.98); top: 0 !important; }
.nvc-nav-logo {
  font-family: var(--ff-c);
  font-size: .9rem;
  letter-spacing: .22em;
  color: var(--gold);
  display: flex;
  flex-direction: column;
  line-height: 1.25;
}
.nvc-nav-logo small {
  font-size: .5rem;
  letter-spacing: .4em;
  color: var(--gold-l);
  font-weight: 400;
}
.nvc-nav-links {
  display: flex;
  gap: 2rem;
  align-items: center;
}
.nvc-nav-links a {
  font-family: var(--ff-c);
  font-size: .73rem;
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--sand);
  transition: color .3s;
  position: relative;
}
.nvc-nav-links a:hover,
.nvc-nav-links a.current-menu-item { color: var(--gold); }
.nvc-nav-links a.current-menu-item::after {
  content: '';
  position: absolute;
  bottom: -4px; left: 0; right: 0;
  height: 1px;
  background: var(--gold);
}
.nvc-nav-right { display: flex; align-items: center; gap: 1rem; }
.nvc-nav-cart {
  position: relative;
  cursor: pointer;
  font-family: var(--ff-c);
  font-size: .6rem;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--sand);
  transition: color .3s;
  display: flex;
  align-items: center;
  gap: .4rem;
}
.nvc-nav-cart:hover { color: var(--gold); }
.nvc-cart-count {
  background: var(--gold);
  color: var(--dark);
  border-radius: 50%;
  width: 17px; height: 17px;
  font-size: .5rem;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
}

/* ── HERO ── */
.nvc-hero {
  position: relative;
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  text-align: center;
}
.nvc-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.07);
  animation: nvcBgZ 22s ease-in-out infinite alternate;
}
@keyframes nvcBgZ { from { transform: scale(1.07); } to { transform: scale(1.14); } }
.nvc-hero__overlay { position: absolute; inset: 0; }
.nvc-hero__body {
  position: relative;
  z-index: 2;
  padding: 0 2rem;
  max-width: 860px;
}
.nvc-hero__eyebrow {
  font-family: var(--ff-c);
  font-size: .58rem;
  letter-spacing: .5em;
  text-transform: uppercase;
  color: var(--gold-l);
  display: flex;
  align-items: center;
  gap: 1rem;
  justify-content: center;
  margin-bottom: 1.6rem;
}
.nvc-hero__eyebrow::before, .nvc-hero__eyebrow::after {
  content: ''; display: block;
  width: 36px; height: 1px;
  background: var(--gold-l);
}
.nvc-hero__h1 {
  font-family: var(--ff-d);
  font-size: clamp(3rem, 8vw, 7rem);
  font-weight: 300;
  line-height: .9;
  color: var(--cream);
}
.nvc-hero__h1 em { font-style: italic; color: var(--gold); display: block; }
.nvc-hero__sub {
  font-family: var(--ff-d);
  font-style: italic;
  font-size: 1.1rem;
  color: var(--sand);
  max-width: 500px;
  margin: 1.8rem auto;
  line-height: 1.85;
}
.nvc-hero__btns {
  display: flex;
  gap: 1.1rem;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 2.2rem;
}
.nvc-hero__scroll {
  position: absolute;
  bottom: 2.2rem; left: 50%;
  transform: translateX(-50%);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: .4rem;
  font-family: var(--ff-c);
  font-size: .5rem;
  letter-spacing: .38em;
  color: var(--gold-l);
}
.nvc-hero__scroll-line {
  width: 1px; height: 42px;
  background: var(--gold-l);
  animation: nvcSA 2s ease-in-out infinite;
}
@keyframes nvcSA { 0%,100%{transform:scaleY(1);opacity:1}50%{transform:scaleY(.35);opacity:.35} }

/* ── PRODUCT CARDS ── */
.nvc-prod-card {
  background: rgba(244,237,224,.04);
  border: 1px solid var(--border);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition: border-color .4s, transform .35s;
}
.nvc-prod-card:hover { border-color: rgba(184,150,62,.5); transform: translateY(-5px); }
.nvc-prod-card__img {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3/2;
}
.nvc-prod-card__img img {
  width: 100%; height: 100%;
  object-fit: cover;
  transition: transform .7s;
  filter: sepia(.08) contrast(1.06);
}
.nvc-prod-card:hover .nvc-prod-card__img img { transform: scale(1.06); }
.nvc-prod-card__body { padding: 1.2rem; flex: 1; display: flex; flex-direction: column; }
.nvc-prod-card__foot {
  padding: .8rem 1.2rem;
  border-top: 1px solid var(--border);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* ── WOOCOMMERCE BASE OVERRIDES ── */
.woocommerce #content .quantity .qty,
.woocommerce .quantity .qty {
  background: rgba(244,237,224,.06);
  border: 1px solid var(--border);
  color: var(--cream);
  font-family: var(--ff-d);
  font-size: 1rem;
  padding: .5rem .8rem;
  width: 70px;
}
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
  font-family: var(--ff-c) !important;
  font-size: .6rem !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  background: var(--gold) !important;
  color: var(--dark) !important;
  border: none !important;
  border-radius: 0 !important;
  padding: .85rem 1.8rem !important;
  transition: background .3s !important;
}
.woocommerce a.button:hover,
.woocommerce button.button:hover { background: var(--gold-l) !important; }

.woocommerce .woocommerce-message,
.woocommerce .woocommerce-info {
  background: rgba(184,150,62,.12);
  border-top-color: var(--gold);
  color: var(--sand);
  font-family: var(--ff-d);
}

/* ── CHECKOUT STYLES ── */
.woocommerce-checkout .woocommerce {
  max-width: 1100px;
  margin: 0 auto;
}
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout h3 {
  font-family: var(--ff-d) !important;
  font-size: 1.4rem !important;
  font-weight: 300 !important;
  color: var(--cream) !important;
  border-bottom: 1px solid var(--border);
  padding-bottom: .8rem;
  margin-bottom: 1.4rem;
}
.woocommerce form .form-row label {
  font-family: var(--ff-c);
  font-size: .52rem;
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--gold);
}
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select,
.woocommerce form .form-row textarea {
  background: rgba(244,237,224,.06) !important;
  border: 1px solid var(--border) !important;
  color: var(--cream) !important;
  font-family: var(--ff-d) !important;
  font-size: .96rem !important;
  border-radius: 0 !important;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row select:focus {
  border-color: var(--gold) !important;
  outline: none !important;
  box-shadow: none !important;
}
.woocommerce-checkout #payment {
  background: rgba(244,237,224,.04) !important;
  border: 1px solid var(--border) !important;
}
.woocommerce-checkout #payment ul.payment_methods { border-bottom: 1px solid var(--border) !important; }
.woocommerce-checkout #payment ul.payment_methods li {
  border-bottom: 1px solid rgba(184,150,62,.08) !important;
}
.woocommerce-checkout #payment ul.payment_methods li label {
  font-family: var(--ff-c);
  font-size: .58rem;
  letter-spacing: .18em;
  color: var(--cream);
}
#place_order {
  background: var(--wine) !important;
  font-size: .64rem !important;
  padding: 1rem 2.5rem !important;
  width: 100% !important;
}
#place_order:hover { background: var(--wine-l) !important; }

/* ── ORDER RECEIVED ── */
.woocommerce-order-received .woocommerce-thankyou-section {
  text-align: center;
  padding: 3rem 0;
}
.woocommerce-order-received h2 {
  font-family: var(--ff-d) !important;
  font-size: 2.5rem !important;
  font-weight: 300 !important;
  color: var(--cream) !important;
}

/* ── CTA BAND ── */
.nvc-cta-band {
  padding: 6rem 2rem;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.nvc-cta-band__bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.nvc-cta-band__over { position: absolute; inset: 0; }
.nvc-cta-band__body { position: relative; z-index: 2; max-width: 680px; margin: 0 auto; }

/* ── STAT ROW ── */
.nvc-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border-top: 1px solid var(--border);
  padding-top: 2rem;
  margin-top: 2rem;
  gap: 0;
}
.nvc-stat { text-align: left; padding-right: 2rem; }
.nvc-stat:not(:first-child) { padding-left: 2rem; border-left: 1px solid var(--border); }
.nvc-stat__n { font-family: var(--ff-d); font-size: 2.5rem; font-weight: 300; color: var(--gold); line-height: 1; }
.nvc-stat__l { font-family: var(--ff-c); font-size: .52rem; letter-spacing: .22em; color: var(--mist); margin-top: .3rem; }

/* ── DIVIDER ── */
.nvc-divider { display: flex; align-items: center; gap: 1rem; margin: 1.4rem 0; }
.nvc-divider__line { flex: 1; height: 1px; background: var(--border); }
.nvc-divider__diamond { width: 6px; height: 6px; background: var(--gold); transform: rotate(45deg); flex-shrink: 0; }

/* ── PROCESS GALLERY ── */
.nvc-proc-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: .7rem; }
.nvc-proc-img { overflow: hidden; aspect-ratio: 4/3; position: relative; }
.nvc-proc-img img { width: 100%; height: 100%; object-fit: cover; filter: sepia(.12) contrast(1.06); transition: transform .6s; }
.nvc-proc-img:hover img { transform: scale(1.05); }
.nvc-proc-img__cap {
  position: absolute; bottom: 0; left: 0; right: 0;
  background: linear-gradient(to top, rgba(23,15,8,.78), transparent);
  padding: .6rem .8rem;
  font-family: var(--ff-d); font-size: .82rem; font-style: italic; color: var(--cream);
}

/* ── REVEAL ANIMATIONS ── */
.nvc-rev { opacity: 0; transform: translateY(24px); transition: opacity .75s ease, transform .75s ease; }
.nvc-rev.is-visible { opacity: 1; transform: translateY(0); }
.nvc-rev-l { opacity: 0; transform: translateX(-24px); transition: opacity .75s ease, transform .75s ease; }
.nvc-rev-l.is-visible { opacity: 1; transform: translateX(0); }

/* ── FOOTER ── */
.nvc-footer { background: #0e0905; border-top: 1px solid var(--border); padding: 4rem 2.5rem 0; }
.nvc-footer__grid {
  max-width: 1280px; margin: 0 auto;
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: 2.5rem;
  padding-bottom: 3.5rem;
}
.nvc-footer__logo { font-family: var(--ff-c); font-size: .9rem; letter-spacing: .22em; color: var(--gold); }
.nvc-footer__tagline { font-family: var(--ff-d); font-style: italic; color: var(--sand); margin-top: .4rem; }
.nvc-footer__desc { font-size: .72rem; color: rgba(224,208,184,.4); line-height: 1.8; margin-top: .9rem; }
.nvc-footer__col-h { font-family: var(--ff-c); font-size: .54rem; letter-spacing: .3em; text-transform: uppercase; color: var(--gold); margin-bottom: .9rem; }
.nvc-footer__col li + li { margin-top: .48rem; }
.nvc-footer__col a { font-family: var(--ff-d); font-size: .93rem; color: var(--sand); transition: color .3s; }
.nvc-footer__col a:hover { color: var(--gold); }
.nvc-footer__bottom {
  max-width: 1280px; margin: 0 auto;
  padding: 1.2rem 0;
  border-top: 1px solid rgba(184,150,62,.1);
  display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: .6rem;
}
.nvc-footer__bottom p, .nvc-footer__bottom a { font-size: .66rem; color: rgba(224,208,184,.28); letter-spacing: .04em; }
.nvc-footer__bottom a:hover { color: var(--gold); }

/* ── RESPONSIVE ── */
@media (max-width: 1024px) {
  .nvc-footer__grid { grid-template-columns: 1fr 1fr; }
  .nvc-proc-gallery { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 640px) {
  .nvc-nav-links { display: none; }
  .nvc-wrap { padding: 0 1.2rem; }
  .nvc-sec { padding: 4.5rem 0; }
  .nvc-hero__h1 { font-size: 2.8rem; }
  .nvc-proc-gallery { grid-template-columns: 1fr; }
  .nvc-footer__grid { grid-template-columns: 1fr; }
  .nvc-stats { grid-template-columns: 1fr; }
}

/* ── LOGO IMAGE ─────────────────────────────────────────────────────── */
.nvc-nav-logo {
  display: flex;
  align-items: center;
  text-decoration: none;
}

/* Logo immagine (custom logo WP o default bundled) */
.nvc-nav-logo img,
.nvc-nav-logo .custom-logo,
.nvc-nav-logo .nvc-logo-default {
  width: 160px;
  height: auto;
  max-height: 60px;
  object-fit: contain;
  display: block;
  /* PNG trasparente — nessun filtro */
  filter: none;
  background: transparent;
  transition: opacity .3s, transform .3s;
}

.nvc-nav-logo:hover img,
.nvc-nav-logo:hover .custom-logo,
.nvc-nav-logo:hover .nvc-logo-default {
  opacity: .85;
  transform: translateY(-1px);
}

/* WP wraps custom-logo in <a> — togliamo doppio link */
.nvc-nav-logo .custom-logo-link {
  display: contents;
}

/* Tablet */
@media (max-width: 1024px) {
  .nvc-nav-logo img,
  .nvc-nav-logo .custom-logo,
  .nvc-nav-logo .nvc-logo-default {
    width: 130px;
    max-height: 50px;
  }
}

/* Mobile */
@media (max-width: 640px) {
  .nvc-nav-logo img,
  .nvc-nav-logo .custom-logo,
  .nvc-nav-logo .nvc-logo-default {
    width: 110px;
    max-height: 42px;
  }
}

/* ════════════════════════════════════════════════════════
   WOOCOMMERCE — CART / CHECKOUT / PAYMENT
   Tutti i colori sono calibrati sul dark background (#170f08)
   ════════════════════════════════════════════════════════ */

/* ── Padding pagine WC ─────────────────────────────────── */
.woocommerce-cart .woocommerce,
.woocommerce-checkout .woocommerce,
.woocommerce-account .woocommerce {
  padding-top: 100px;
  padding-bottom: 5rem;
  min-height: 80vh;
}

/* ── Titoli pagina ─────────────────────────────────────── */
.woocommerce-cart h1.entry-title,
.woocommerce-checkout h1.entry-title {
  font-family: var(--ff-d) !important;
  font-size: clamp(2rem, 4vw, 3.2rem) !important;
  font-weight: 300 !important;
  color: var(--cream) !important;
  margin-bottom: 2.5rem !important;
}

/* ── Messaggi notice ───────────────────────────────────── */
.woocommerce-message,
.woocommerce-info,
.woocommerce-error,
.wc-block-components-notice-banner {
  background: rgba(184,150,62,.1) !important;
  border-top: 3px solid var(--gold) !important;
  color: var(--sand) !important;
  font-family: var(--ff-d) !important;
  font-size: 1rem !important;
  padding: 1rem 1.4rem !important;
  margin-bottom: 1.5rem !important;
}
.woocommerce-error {
  border-top-color: #c8533a !important;
  background: rgba(200,83,58,.1) !important;
}

/* ════════ CARRELLO ════════════════════════════════════════ */

/* Tabella carrello */
.woocommerce-cart-form__contents,
table.shop_table {
  width: 100% !important;
  border-collapse: collapse !important;
  background: transparent !important;
}

table.shop_table th {
  font-family: var(--ff-c) !important;
  font-size: .54rem !important;
  letter-spacing: .3em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  border-bottom: 1px solid var(--border) !important;
  padding: .8rem .6rem !important;
  background: transparent !important;
  font-weight: 400 !important;
}

table.shop_table td {
  font-family: var(--ff-d) !important;
  font-size: 1rem !important;
  color: var(--sand) !important;
  border-bottom: 1px solid rgba(184,150,62,.1) !important;
  padding: 1.2rem .6rem !important;
  vertical-align: middle !important;
  background: transparent !important;
}

/* Immagine prodotto nel carrello */
table.shop_table td.product-thumbnail img {
  width: 72px !important;
  height: 72px !important;
  object-fit: cover !important;
  border: 1px solid var(--border) !important;
}

/* Nome prodotto */
table.shop_table td.product-name a,
table.shop_table td.product-name {
  font-family: var(--ff-d) !important;
  font-size: 1.05rem !important;
  color: var(--cream) !important;
  text-decoration: none !important;
}
table.shop_table td.product-name a:hover { color: var(--gold) !important; }

/* Variazione prodotto */
.woocommerce-cart-form .variation dt,
.woocommerce-cart-form .variation dd {
  font-family: var(--ff-c) !important;
  font-size: .5rem !important;
  letter-spacing: .14em !important;
  color: var(--mist) !important;
}

/* Prezzo */
table.shop_table td.product-price,
table.shop_table td.product-subtotal {
  font-family: var(--ff-d) !important;
  font-size: 1.05rem !important;
  color: var(--gold) !important;
}

/* Quantità input */
.woocommerce .quantity input.qty,
.woocommerce-cart .quantity input.qty {
  background: rgba(244,237,224,.08) !important;
  border: 1px solid var(--border) !important;
  color: var(--cream) !important;
  font-family: var(--ff-d) !important;
  font-size: 1rem !important;
  padding: .5rem .6rem !important;
  width: 64px !important;
  text-align: center !important;
  border-radius: 0 !important;
}
.woocommerce .quantity input.qty:focus {
  outline: none !important;
  border-color: var(--gold) !important;
}

/* Tasto rimuovi × */
.woocommerce-cart-form .product-remove a.remove {
  color: rgba(244,237,224,.3) !important;
  font-size: 1.3rem !important;
  font-weight: 400 !important;
  transition: color .3s !important;
  text-decoration: none !important;
}
.woocommerce-cart-form .product-remove a.remove:hover {
  color: #c8533a !important;
  background: transparent !important;
}

/* Pulsante Aggiorna Carrello */
.woocommerce-cart-form button[name="update_cart"],
.woocommerce-cart .actions .button {
  background: transparent !important;
  border: 1px solid var(--border) !important;
  color: var(--sand) !important;
  font-family: var(--ff-c) !important;
  font-size: .56rem !important;
  letter-spacing: .2em !important;
  text-transform: uppercase !important;
  padding: .75rem 1.6rem !important;
  cursor: pointer !important;
  transition: all .3s !important;
  border-radius: 0 !important;
}
.woocommerce-cart-form button[name="update_cart"]:hover {
  border-color: var(--gold) !important;
  color: var(--gold) !important;
  background: transparent !important;
}

/* Coupon campo + pulsante */
.woocommerce-cart .coupon input#coupon_code {
  background: rgba(244,237,224,.06) !important;
  border: 1px solid var(--border) !important;
  color: var(--cream) !important;
  font-family: var(--ff-d) !important;
  font-size: .96rem !important;
  padding: .72rem 1rem !important;
  border-radius: 0 !important;
  width: 200px !important;
}
.woocommerce-cart .coupon input#coupon_code:focus {
  outline: none !important;
  border-color: var(--gold) !important;
}
.woocommerce-cart .coupon button[name="apply_coupon"] {
  background: var(--gold) !important;
  color: var(--dark) !important;
  font-family: var(--ff-c) !important;
  font-size: .56rem !important;
  letter-spacing: .2em !important;
  text-transform: uppercase !important;
  padding: .75rem 1.4rem !important;
  border: none !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  transition: background .3s !important;
}
.woocommerce-cart .coupon button[name="apply_coupon"]:hover {
  background: var(--gold-l) !important;
}

/* Totali carrello */
.cart_totals,
.woocommerce-shipping-calculator {
  background: rgba(244,237,224,.04) !important;
  border: 1px solid var(--border) !important;
  padding: 2rem !important;
}
.cart_totals h2,
.woocommerce-shipping-calculator h2 {
  font-family: var(--ff-c) !important;
  font-size: .64rem !important;
  letter-spacing: .3em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  margin-bottom: 1.2rem !important;
  padding-bottom: .7rem !important;
  border-bottom: 1px solid var(--border) !important;
  font-weight: 400 !important;
}
.cart_totals table th,
.cart_totals table td {
  font-family: var(--ff-d) !important;
  font-size: 1rem !important;
  color: var(--sand) !important;
  border-bottom: 1px solid rgba(184,150,62,.1) !important;
  padding: .7rem .4rem !important;
  background: transparent !important;
}
.cart_totals table .order-total th,
.cart_totals table .order-total td {
  font-family: var(--ff-d) !important;
  font-size: 1.2rem !important;
  color: var(--gold) !important;
  border-top: 1px solid var(--border) !important;
  border-bottom: none !important;
  padding-top: 1rem !important;
}
.cart_totals table .order-total th {
  font-family: var(--ff-c) !important;
  font-size: .6rem !important;
  letter-spacing: .2em !important;
  text-transform: uppercase !important;
}

/* Pulsante Procedi all'acquisto */
.wc-proceed-to-checkout .checkout-button,
.cart_totals .wc-proceed-to-checkout a {
  display: block !important;
  background: var(--wine) !important;
  color: var(--cream) !important;
  font-family: var(--ff-c) !important;
  font-size: .64rem !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  padding: 1rem 2rem !important;
  text-align: center !important;
  border: none !important;
  border-radius: 0 !important;
  margin-top: 1.2rem !important;
  transition: background .3s !important;
  text-decoration: none !important;
}
.wc-proceed-to-checkout .checkout-button:hover {
  background: var(--wine-l) !important;
  color: var(--cream) !important;
}

/* Layout carrello: prodotti a sinistra, totali a destra */
.woocommerce-cart .woocommerce {
  display: block !important;
}
.woocommerce-cart form.woocommerce-cart-form {
  margin-bottom: 3rem !important;
}
.woocommerce-cart .cart-collaterals {
  display: grid !important;
  grid-template-columns: 1fr 380px !important;
  gap: 2rem !important;
  align-items: start !important;
}
@media (max-width: 768px) {
  .woocommerce-cart .cart-collaterals {
    grid-template-columns: 1fr !important;
  }
}

/* ════════ CHECKOUT ════════════════════════════════════════ */

.woocommerce-checkout .woocommerce {
  display: grid !important;
  grid-template-columns: 1fr 380px !important;
  gap: 3rem !important;
  align-items: start !important;
}
@media (max-width: 900px) {
  .woocommerce-checkout .woocommerce {
    grid-template-columns: 1fr !important;
  }
}

/* Box sezioni */
.woocommerce-billing-fields,
.woocommerce-shipping-fields,
.woocommerce-additional-fields {
  background: rgba(244,237,224,.04) !important;
  border: 1px solid var(--border) !important;
  padding: 2rem !important;
  margin-bottom: 1.5rem !important;
}

/* Titoli sezioni checkout */
.woocommerce-billing-fields h3,
.woocommerce-shipping-fields h3,
.woocommerce-additional-fields h3,
.woocommerce-checkout h3 {
  font-family: var(--ff-d) !important;
  font-size: 1.3rem !important;
  font-weight: 300 !important;
  color: var(--cream) !important;
  margin-bottom: 1.4rem !important;
  padding-bottom: .8rem !important;
  border-bottom: 1px solid var(--border) !important;
}

/* Label */
.woocommerce-checkout form .form-row label,
.woocommerce form .form-row label {
  font-family: var(--ff-c) !important;
  font-size: .52rem !important;
  letter-spacing: .24em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  display: block !important;
  margin-bottom: .38rem !important;
  font-weight: 400 !important;
}
/* required star */
.woocommerce-checkout form .form-row label abbr {
  color: var(--wine-l) !important;
  text-decoration: none !important;
}

/* Input text, select, textarea */
.woocommerce-checkout form .form-row input.input-text,
.woocommerce-checkout form .form-row input[type="text"],
.woocommerce-checkout form .form-row input[type="email"],
.woocommerce-checkout form .form-row input[type="tel"],
.woocommerce-checkout form .form-row input[type="password"],
.woocommerce-checkout form .form-row select,
.woocommerce-checkout form .form-row textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row select {
  background: rgba(244,237,224,.07) !important;
  border: 1px solid rgba(184,150,62,.3) !important;
  color: var(--cream) !important;
  font-family: var(--ff-d) !important;
  font-size: .98rem !important;
  padding: .78rem 1rem !important;
  width: 100% !important;
  border-radius: 0 !important;
  transition: border-color .3s !important;
  -webkit-appearance: none !important;
}
.woocommerce-checkout form .form-row input.input-text:focus,
.woocommerce-checkout form .form-row select:focus,
.woocommerce form .form-row input.input-text:focus {
  outline: none !important;
  border-color: var(--gold) !important;
  background: rgba(244,237,224,.1) !important;
  box-shadow: none !important;
}
/* Placeholder */
.woocommerce-checkout form .form-row input::placeholder,
.woocommerce form .form-row input::placeholder { color: var(--mist) !important; }

/* Select freccia */
.woocommerce-checkout form .form-row select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23b8963e' d='M6 8L0 0h12z'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 1rem center !important;
  background-size: 10px !important;
  padding-right: 2.5rem !important;
  cursor: pointer !important;
}
.woocommerce-checkout form .form-row select option {
  background: #1e140a !important;
  color: var(--cream) !important;
}

/* Select2 (WC usa select2 per i paesi) */
.select2-container--default .select2-selection--single {
  background: rgba(244,237,224,.07) !important;
  border: 1px solid rgba(184,150,62,.3) !important;
  border-radius: 0 !important;
  height: auto !important;
  padding: .78rem 1rem !important;
  color: var(--cream) !important;
}
.select2-container--default .select2-selection--single .select2-selection__rendered {
  color: var(--cream) !important;
  font-family: var(--ff-d) !important;
  font-size: .98rem !important;
  line-height: normal !important;
  padding: 0 !important;
}
.select2-container--default .select2-selection--single .select2-selection__arrow {
  display: none !important;
}
.select2-dropdown {
  background: #1e140a !important;
  border: 1px solid var(--border) !important;
  border-radius: 0 !important;
}
.select2-container--default .select2-results__option {
  color: var(--sand) !important;
  font-family: var(--ff-d) !important;
  font-size: .96rem !important;
  padding: .6rem 1rem !important;
}
.select2-container--default .select2-results__option--highlighted[aria-selected] {
  background: rgba(184,150,62,.2) !important;
  color: var(--cream) !important;
}
.select2-search__field {
  background: rgba(244,237,224,.06) !important;
  border: 1px solid var(--border) !important;
  color: var(--cream) !important;
  font-family: var(--ff-d) !important;
  border-radius: 0 !important;
  padding: .5rem .8rem !important;
}

/* Checkbox "spedisci a indirizzo diverso" */
.woocommerce-checkout .woocommerce-form__label-for-checkbox {
  font-family: var(--ff-d) !important;
  font-size: .96rem !important;
  color: var(--sand) !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
  display: flex !important;
  align-items: center !important;
  gap: .6rem !important;
  cursor: pointer !important;
}
.woocommerce-checkout input[type="checkbox"] {
  accent-color: var(--gold) !important;
  width: 16px !important;
  height: 16px !important;
}

/* Textarea note ordine */
.woocommerce-checkout .woocommerce-additional-fields textarea {
  height: 100px !important;
  resize: vertical !important;
}

/* ════════ PAGAMENTO (payment box) ═════════════════════════ */

/* Box pagamento */
#payment,
.woocommerce-checkout #payment {
  background: rgba(244,237,224,.04) !important;
  border: 1px solid var(--border) !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* Lista metodi */
#payment ul.payment_methods,
.woocommerce-checkout #payment ul.payment_methods {
  padding: 1.4rem !important;
  border-bottom: 1px solid var(--border) !important;
  margin: 0 !important;
  list-style: none !important;
}
#payment ul.payment_methods li {
  padding: .9rem 0 !important;
  border-bottom: 1px solid rgba(184,150,62,.08) !important;
}
#payment ul.payment_methods li:last-child { border-bottom: none !important; }

/* Radio label metodo pagamento */
#payment ul.payment_methods li label {
  font-family: var(--ff-c) !important;
  font-size: .6rem !important;
  letter-spacing: .2em !important;
  text-transform: uppercase !important;
  color: var(--cream) !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  gap: .7rem !important;
  font-weight: 400 !important;
}
#payment ul.payment_methods li label img {
  max-height: 22px !important;
  width: auto !important;
  filter: brightness(.9) !important;
}
#payment ul.payment_methods input[type="radio"] {
  accent-color: var(--gold) !important;
  width: 16px !important;
  height: 16px !important;
  flex-shrink: 0 !important;
}

/* Descrizione metodo pagamento */
#payment .payment_box,
.woocommerce-checkout #payment .payment_box {
  background: rgba(184,150,62,.06) !important;
  border-top: 1px solid rgba(184,150,62,.15) !important;
  padding: .9rem 1.2rem !important;
  margin: .5rem 0 0 !important;
}
#payment .payment_box p,
.woocommerce-checkout #payment .payment_box p {
  font-family: var(--ff-d) !important;
  font-size: .92rem !important;
  color: var(--sand) !important;
  margin: 0 !important;
  line-height: 1.7 !important;
}

/* Campo CC dentro payment_box */
#payment .payment_box input,
.woocommerce-checkout #payment .payment_box input {
  background: rgba(244,237,224,.08) !important;
  border: 1px solid rgba(184,150,62,.3) !important;
  color: var(--cream) !important;
  font-family: var(--ff-d) !important;
  font-size: .96rem !important;
  padding: .65rem .9rem !important;
  border-radius: 0 !important;
  margin-bottom: .5rem !important;
}
#payment .payment_box input:focus {
  outline: none !important;
  border-color: var(--gold) !important;
}

/* Box azioni: T&C + bottone */
#payment .place-order,
.woocommerce-checkout #payment .place-order {
  padding: 1.4rem !important;
}

/* T&C testo */
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper,
#payment .woocommerce-privacy-policy-text {
  font-family: var(--ff-d) !important;
  font-size: .88rem !important;
  color: var(--mist) !important;
  line-height: 1.65 !important;
  margin-bottom: 1rem !important;
}
.woocommerce-checkout #payment .woocommerce-terms-and-conditions-wrapper a,
#payment .woocommerce-privacy-policy-text a {
  color: var(--gold) !important;
}
.woocommerce-checkout #payment input#terms {
  accent-color: var(--gold) !important;
}

/* ── Pulsante CONFERMA E ACQUISTA ── */
#place_order,
.woocommerce-checkout #place_order {
  display: block !important;
  width: 100% !important;
  background: var(--wine) !important;
  color: var(--cream) !important;
  font-family: var(--ff-c) !important;
  font-size: .66rem !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  padding: 1.1rem 2rem !important;
  border: none !important;
  border-radius: 0 !important;
  cursor: pointer !important;
  transition: background .3s !important;
  margin-top: .5rem !important;
}
#place_order:hover { background: var(--wine-l) !important; }

/* ════════ ORDER REVIEW SIDEBAR ════════════════════════════ */

#order_review,
.woocommerce-checkout-review-order {
  background: rgba(244,237,224,.04) !important;
  border: 1px solid var(--border) !important;
  padding: 1.6rem !important;
  position: sticky !important;
  top: 90px !important;
}
#order_review_heading {
  font-family: var(--ff-c) !important;
  font-size: .64rem !important;
  letter-spacing: .3em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  margin-bottom: 1.2rem !important;
  padding-bottom: .7rem !important;
  border-bottom: 1px solid var(--border) !important;
  font-weight: 400 !important;
}

/* Tabella riepilogo ordine */
table.woocommerce-checkout-review-order-table {
  width: 100% !important;
  border-collapse: collapse !important;
}
table.woocommerce-checkout-review-order-table th {
  font-family: var(--ff-c) !important;
  font-size: .5rem !important;
  letter-spacing: .2em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  padding: .5rem .3rem .5rem 0 !important;
  border-bottom: 1px solid var(--border) !important;
  font-weight: 400 !important;
  background: transparent !important;
}
table.woocommerce-checkout-review-order-table td {
  font-family: var(--ff-d) !important;
  font-size: .94rem !important;
  color: var(--sand) !important;
  padding: .7rem .3rem .7rem 0 !important;
  border-bottom: 1px solid rgba(184,150,62,.08) !important;
  background: transparent !important;
  vertical-align: middle !important;
}
table.woocommerce-checkout-review-order-table .product-name {
  color: var(--cream) !important;
  font-size: .95rem !important;
}
table.woocommerce-checkout-review-order-table .product-total {
  color: var(--gold) !important;
  text-align: right !important;
  font-size: 1rem !important;
}
table.woocommerce-checkout-review-order-table .cart-subtotal td,
table.woocommerce-checkout-review-order-table .shipping td {
  color: var(--sand) !important;
  font-size: .9rem !important;
}
table.woocommerce-checkout-review-order-table .cart-subtotal th,
table.woocommerce-checkout-review-order-table .shipping th {
  font-size: .5rem !important;
  color: var(--mist) !important;
}
table.woocommerce-checkout-review-order-table .order-total td {
  font-family: var(--ff-d) !important;
  font-size: 1.2rem !important;
  color: var(--gold) !important;
  border-top: 1px solid var(--border) !important;
  border-bottom: none !important;
  padding-top: .9rem !important;
}
table.woocommerce-checkout-review-order-table .order-total th {
  font-family: var(--ff-c) !important;
  font-size: .56rem !important;
  letter-spacing: .2em !important;
  color: var(--gold) !important;
  border-top: 1px solid var(--border) !important;
  border-bottom: none !important;
  padding-top: .9rem !important;
}

/* Metodi spedizione nel checkout */
.woocommerce-shipping-methods li {
  list-style: none !important;
  padding: .8rem 1rem !important;
  border: 1px solid var(--border) !important;
  margin-bottom: .6rem !important;
  transition: border-color .3s !important;
  display: flex !important;
  align-items: center !important;
  gap: .8rem !important;
}
.woocommerce-shipping-methods li:hover { border-color: rgba(184,150,62,.4) !important; }
.woocommerce-shipping-methods li input[type="radio"] { accent-color: var(--gold) !important; flex-shrink: 0 !important; }
.woocommerce-shipping-methods li label {
  font-family: var(--ff-d) !important;
  font-size: .96rem !important;
  color: var(--sand) !important;
  cursor: pointer !important;
  text-transform: none !important;
  letter-spacing: 0 !important;
}

/* ════════ RESPONSIVE ══════════════════════════════════════ */
@media (max-width: 768px) {
  table.shop_table thead { display: none !important; }
  table.shop_table td {
    display: block !important;
    text-align: right !important;
    position: relative !important;
    padding-left: 45% !important;
  }
  table.shop_table td::before {
    content: attr(data-title);
    position: absolute !important;
    left: 0 !important;
    font-family: var(--ff-c) !important;
    font-size: .5rem !important;
    letter-spacing: .2em !important;
    text-transform: uppercase !important;
    color: var(--gold) !important;
    top: 1.2rem !important;
  }
  table.shop_table td.product-thumbnail { display: none !important; }
  .woocommerce-checkout .woocommerce,
  .woocommerce-cart .cart-collaterals {
    grid-template-columns: 1fr !important;
  }
  #order_review { position: static !important; }
}

/* ── FOOTER WIDGET AREAS ─────────────────────────────────────────────── */
.nvc-footer__brand { }
.nvc-footer__logo-wrap img,
.nvc-footer__logo-wrap .custom-logo {
  width: 130px !important;
  max-height: 52px !important;
  height: auto !important;
  object-fit: contain !important;
  display: block;
  margin-bottom: .8rem;
  filter: none;
  opacity: .9;
}
.nvc-footer__logo-wrap .custom-logo-link { display: contents; }

/* Widget generico nel footer */
.nvc-fw { display: block; width: 100%; }
.nvc-fw + .nvc-fw { margin-top: 1.2rem; }

/* Titolo widget footer */
.nvc-fw .widget-title,
.nvc-fw .nvc-footer__col-h {
  font-family: var(--ff-c) !important;
  font-size: .54rem !important;
  letter-spacing: .3em !important;
  text-transform: uppercase !important;
  color: var(--gold) !important;
  margin-bottom: .9rem !important;
  font-weight: 400 !important;
  border: none !important;
  padding: 0 !important;
}

/* Lista widget footer */
.nvc-fw ul { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.nvc-fw ul li { margin-bottom: .48rem !important; }
.nvc-fw ul li a {
  font-family: var(--ff-d) !important;
  font-size: .93rem !important;
  color: var(--sand) !important;
  text-decoration: none !important;
  transition: color .3s !important;
  line-height: 1.55 !important;
}
.nvc-fw ul li a:hover { color: var(--gold) !important; }

/* Testo widget footer */
.nvc-fw p {
  font-family: var(--ff-d) !important;
  font-size: .88rem !important;
  color: var(--sand) !important;
  line-height: 1.75 !important;
  margin-bottom: .6rem !important;
}
.nvc-fw p:last-child { margin-bottom: 0 !important; }

/* Widget testo/HTML */
.nvc-fw .textwidget p { font-family: var(--ff-d) !important; font-size: .88rem !important; color: var(--sand) !important; line-height: 1.75 !important; }
.nvc-fw .textwidget a { color: var(--gold) !important; }
.nvc-fw .textwidget a:hover { opacity: .75; }

/* Widget menu di navigazione */
.nvc-fw .widget_nav_menu ul { list-style: none !important; padding: 0 !important; }
.nvc-fw .widget_nav_menu ul li a { font-family: var(--ff-d) !important; font-size: .93rem !important; color: var(--sand) !important; transition: color .3s !important; }
.nvc-fw .widget_nav_menu ul li a:hover { color: var(--gold) !important; }

/* Widget ricerca */
.nvc-fw .widget_search input[type="search"] {
  background: rgba(244,237,224,.07) !important;
  border: 1px solid var(--border) !important;
  color: var(--cream) !important;
  font-family: var(--ff-d) !important;
  font-size: .92rem !important;
  padding: .6rem .9rem !important;
  width: 100% !important;
  margin-bottom: .5rem !important;
}
.nvc-fw .widget_search button {
  background: var(--gold) !important;
  color: var(--dark) !important;
  border: none !important;
  font-family: var(--ff-c) !important;
  font-size: .52rem !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  padding: .55rem 1.2rem !important;
  cursor: pointer !important;
}

/* Bottom bar widget */
.nvc-bottom-w {
  font-family: var(--ff-d);
  font-size: .66rem;
  color: rgba(224,208,184,.28);
}
.nvc-bottom-w a { color: rgba(224,208,184,.28); }
.nvc-bottom-w a:hover { color: var(--gold); }

/* Footer bottom links */
.nvc-footer__bottom-links a {
  font-size: .66rem;
  color: rgba(224,208,184,.28);
}
.nvc-footer__bottom-links a:hover { color: var(--gold); }

/* ── Menu footer (wp_nav_menu) ── */
.nvc-footer__menu { list-style: none !important; padding: 0 !important; margin: 0 !important; }
.nvc-footer__menu li { margin-bottom: .48rem !important; }
.nvc-footer__menu li a {
  font-family: var(--ff-d) !important;
  font-size: .93rem !important;
  color: var(--sand) !important;
  text-decoration: none !important;
  transition: color .3s !important;
  line-height: 1.55 !important;
  display: inline-block !important;
}
.nvc-footer__menu li a:hover { color: var(--gold) !important; }
/* Rimuove stili WP default */
.nvc-footer__menu .menu-item a::before { display: none !important; }

/* ════════════════════════════════════════════════════════════════════════
   LIGHT MODE — sfondo bianco, colori verificati per leggibilità WCAG AA
   Attivata da: body.nvc-light  (toggle JS) oppure prefers-color-scheme: light
   ════════════════════════════════════════════════════════════════════════ */

/* ── Variabili Light ── */
body.nvc-light,
.nvc-light {
  /* Sfondi */
  --dark:    #ffffff;
  --earth:   #f5f0e8;
  --earth2:  #ede5d5;

  /* Testi — verificati WCAG AA su bianco */
  --cream:   #1a1108;   /* testo principale: quasi-nero caldo  ratio 16:1 */
  --sand:    #3d2b10;   /* testo secondario: marrone scuro      ratio 8:1  */
  --mist:    #6b4f28;   /* testo terziario: marrone medio       ratio 5:1  */

  /* Accenti — mantenuti per brand identity */
  --gold:    #8a6820;   /* oro scurito per contrasto su bianco  ratio 5.5:1 */
  --gold-l:  #a07828;
  --gold-xl: #b89040;

  /* Vino — leggermente scurito */
  --wine:    #5a1e2c;
  --wine-l:  #7a2d3e;

  /* Oliva — leggermente scurito */
  --olive:   #2e3d1c;
  --olive-l: #3f5228;
  --olive-xl:#5a7238;

  /* Bordi — visibili su bianco */
  --border: rgba(100,70,20,.18);
}

/* ── Body Light ── */
body.nvc-light {
  background: #ffffff;
  color: var(--cream);
}

/* Rimuovi grain overlay in light */
body.nvc-light::before { opacity: 0; }

/* ── Navbar Light ── */
body.nvc-light .nvc-nav {
  background: rgba(255,255,255,.50);
  box-shadow: none;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
body.nvc-light .nvc-nav.nvc-nav--solid {
  background: rgba(255,255,255,.50);
  box-shadow: 0 1px 0 rgba(100,70,20,.12);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  top: 0 !important;
}
body.nvc-light .nvc-nav-logo { color: var(--gold); }
body.nvc-light .nvc-nav-logo small { color: var(--gold-l); }
body.nvc-light .nvc-nav-links a { color: var(--sand); }
body.nvc-light .nvc-nav-links a:hover,
body.nvc-light .nvc-nav-links a.current-menu-item { color: var(--gold); }
body.nvc-light .nvc-nav-cart { color: var(--sand); }
body.nvc-light .nvc-nav-cart:hover { color: var(--gold); }
body.nvc-light .nvc-promo-band { background: var(--wine); } /* invariato — già scuro */

/* ── Titoli e testi Light ── */
body.nvc-light .nvc-title { color: var(--cream); }
body.nvc-light .nvc-title em { color: var(--gold); }
body.nvc-light .nvc-lbl { color: var(--gold); }
body.nvc-light .nvc-body { color: var(--sand); }

/* ── Sezioni Light ── */
body.nvc-light .nvc-sec { background: #ffffff; }
body.nvc-light [style*="background:var(--dark)"],
body.nvc-light [style*="background: var(--dark)"] { background: #ffffff !important; }
body.nvc-light [style*="background:var(--earth2)"],
body.nvc-light [style*="background: var(--earth2)"] { background: #f5efe2 !important; }
body.nvc-light [style*="background:var(--earth)"],
body.nvc-light [style*="background: var(--earth)"] { background: #ede5d5 !important; }
body.nvc-light [style*="background:linear-gradient(135deg,var(--earth)"],
body.nvc-light [style*="background:linear-gradient(180deg,var(--earth)"] { background: #f0e8d8 !important; }

/* ── Dividers ── */
body.nvc-light .nvc-divider__line { background: rgba(100,70,20,.2); }
body.nvc-light .nvc-divider__diamond { background: var(--gold); }

/* ── Buttons Light ── */
/* Ghost button generico su sfondo chiaro */
body.nvc-light .nvc-btn-ghost {
  border-color: rgba(100,70,20,.4);
  color: var(--sand);
}
body.nvc-light .nvc-btn-ghost:hover {
  border-color: var(--gold);
  color: var(--gold);
}
/* Ghost button DENTRO un hero (sempre su immagine scura → testo bianco) */
body.nvc-light .nvc-hero .nvc-btn-ghost,
body.nvc-light .nvc-hero .nvc-btn-ghost:link,
body.nvc-light .nvc-hero .nvc-btn-ghost:visited {
  border-color: rgba(255,255,255,.65);
  color: #ffffff;
  background: rgba(255,255,255,.08);
}
body.nvc-light .nvc-hero .nvc-btn-ghost:hover {
  border-color: var(--gold-xl);
  color: var(--gold-xl);
  background: rgba(255,255,255,.15);
}
/* Gold button nel hero in light mode — rimane leggibile */
body.nvc-light .nvc-hero .nvc-btn-gold {
  color: var(--dark) !important;
}
/* Hero testi in light mode — già su immagine scura, ok cream */
body.nvc-light .nvc-hero__eyebrow { color: var(--gold-l); }
/* Light mode: testo bianco su bottoni con sfondo scuro */
body.nvc-light .nvc-btn-wine,
body.nvc-light .nvc-btn-wine:hover {
  color: #ffffff !important;
}
body.nvc-light .nvc-btn-olive,
body.nvc-light .nvc-btn-olive:hover {
  color: #ffffff !important;
}
body.nvc-light .nvc-btn-gold {
  color: var(--dark) !important;
}

/* ── Prodotti Card Light ── */
body.nvc-light .nvc-prod-card,
body.nvc-light .nvc-arc-card {
  background: #ffffff;
  border-color: rgba(100,70,20,.16);
  box-shadow: 0 2px 12px rgba(0,0,0,.06);
}
body.nvc-light .nvc-prod-card:hover,
body.nvc-light .nvc-arc-card:hover {
  border-color: var(--gold);
  box-shadow: 0 8px 28px rgba(0,0,0,.1);
}
body.nvc-light .nvc-arc-card__name { color: var(--cream); }
body.nvc-light .nvc-arc-card__desc { color: var(--sand); }
body.nvc-light .nvc-arc-card__foot { border-top-color: rgba(100,70,20,.12); }
body.nvc-light .nvc-arc-card__price { color: var(--gold); }

/* ── Scheda tecnica accordion Light ── */
body.nvc-light .nvc-scheda-toggle {
  background: rgba(100,70,20,.05);
  border-top-color: rgba(100,70,20,.12);
  color: var(--gold);
}
body.nvc-light .nvc-scheda-toggle:hover { background: rgba(100,70,20,.09); }
body.nvc-light .nvc-scheda-body { border-top-color: rgba(100,70,20,.1); }
body.nvc-light .nvc-scheda-body dt { color: var(--gold); }
body.nvc-light .nvc-scheda-body dd { color: var(--sand); }

/* ── Hero Light — overlay adattato ── */
body.nvc-light .nvc-hero__overlay {
  /* Overlay leggermente più denso in light per mantenere il testo leggibile */
  opacity: .92;
}
/* I testi hero rimangono bianchi sull'immagine scura */
body.nvc-light .nvc-hero__h1 { color: #ffffff; text-shadow: 0 2px 12px rgba(0,0,0,.35); }
body.nvc-light .nvc-hero__h1 em { color: var(--gold-xl); }
body.nvc-light .nvc-hero__sub { color: rgba(255,255,255,.95); text-shadow: 0 1px 6px rgba(0,0,0,.3); }
body.nvc-light .nvc-hero__eyebrow { color: var(--gold-l); }

/* ── Stats Light ── */
body.nvc-light .nvc-stats { border-top-color: rgba(100,70,20,.15); }
body.nvc-light .nvc-stat__n { color: var(--gold); }
body.nvc-light .nvc-stat__l { color: var(--mist); }
body.nvc-light .nvc-stat:not(:first-child) { border-left-color: rgba(100,70,20,.15); }

/* ── Checkout / Cart Light ── */
body.nvc-light .nvc-co-card {
  background: #f9f5ee;
  border-color: rgba(100,70,20,.18);
}
body.nvc-light .nvc-co-card:focus-within { border-color: var(--gold); }
body.nvc-light .nvc-co-card__head {
  background: rgba(100,70,20,.06);
  border-bottom-color: rgba(100,70,20,.15);
}
body.nvc-light .nvc-co-card__title { color: var(--cream); }

body.nvc-light .nvc-co-wrap input.input-text,
body.nvc-light .nvc-co-wrap input[type="text"],
body.nvc-light .nvc-co-wrap input[type="email"],
body.nvc-light .nvc-co-wrap input[type="tel"],
body.nvc-light .nvc-co-wrap select,
body.nvc-light .nvc-co-wrap textarea {
  background: #ffffff !important;
  border-color: rgba(100,70,20,.28) !important;
  color: var(--cream) !important;
}
body.nvc-light .nvc-co-wrap input:focus,
body.nvc-light .nvc-co-wrap select:focus,
body.nvc-light .nvc-co-wrap textarea:focus {
  border-color: var(--gold) !important;
  background: #fffdf8 !important;
  box-shadow: 0 0 0 3px rgba(138,104,32,.1) !important;
}
body.nvc-light .nvc-co-step--todo .nvc-co-step__num { border-color: rgba(100,70,20,.25); }
body.nvc-light .nvc-co-step__sep { background: rgba(100,70,20,.2); }

/* ── WooCommerce Light ── */
body.nvc-light table.shop_table th { color: var(--gold) !important; border-bottom-color: rgba(100,70,20,.18) !important; }
body.nvc-light table.shop_table td { color: var(--sand) !important; border-bottom-color: rgba(100,70,20,.1) !important; }
body.nvc-light table.shop_table td.product-name a { color: var(--cream) !important; }
body.nvc-light table.shop_table td.product-price,
body.nvc-light table.shop_table td.product-subtotal { color: var(--gold) !important; }
body.nvc-light .cart_totals { background: #f9f5ee !important; border-color: rgba(100,70,20,.18) !important; }
body.nvc-light .woocommerce-checkout #payment { background: #f9f5ee !important; border-color: rgba(100,70,20,.18) !important; }
body.nvc-light .woocommerce-checkout #payment ul.payment_methods li label { color: var(--cream) !important; }

/* ── Footer Light ── */
body.nvc-light .nvc-footer {
  background: #f5efe2 !important;
  border-top: 1px solid rgba(100,70,20,.15);
}
body.nvc-light .nvc-footer__logo { color: var(--gold); }
body.nvc-light .nvc-footer__tagline { color: var(--sand); }
body.nvc-light .nvc-footer__desc { color: var(--mist); }
body.nvc-light .nvc-footer__col-h { color: var(--gold) !important; }
body.nvc-light .nvc-footer__col a,
body.nvc-light .nvc-footer__menu li a { color: var(--sand) !important; }
body.nvc-light .nvc-footer__col a:hover,
body.nvc-light .nvc-footer__menu li a:hover { color: var(--gold) !important; }
body.nvc-light .nvc-footer__bottom { border-top-color: rgba(100,70,20,.12); }
body.nvc-light .nvc-footer__bottom p,
body.nvc-light .nvc-footer__bottom a { color: rgba(60,40,15,.4); }
body.nvc-light .nvc-footer__bottom a:hover { color: var(--gold); }

/* ── Toggle Button ── */
.nvc-mode-toggle {
  position: fixed;
  bottom: 5.5rem;
  right: 2rem;
  z-index: 7999;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 1.5px solid var(--border);
  background: var(--earth2);
  color: var(--gold);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.1rem;
  transition: background .3s, border-color .3s, transform .2s;
  box-shadow: 0 2px 12px rgba(0,0,0,.18);
}
.nvc-mode-toggle:hover {
  background: var(--earth);
  border-color: var(--gold);
  transform: scale(1.08);
}
body.nvc-light .nvc-mode-toggle {
  background: #ffffff;
  border-color: rgba(100,70,20,.25);
  box-shadow: 0 2px 12px rgba(0,0,0,.1);
}
body.nvc-light .nvc-mode-toggle:hover {
  background: #f5efe2;
  border-color: var(--gold);
}

/* ── Barra progresso spedizione Light ── */
body.nvc-light #boxFreeShipProgress,
body.nvc-light .nvc-ship-progress {
  background: #f9f5ee;
  border-color: rgba(100,70,20,.18);
}
body.nvc-light #boxProgressBar { background: var(--gold); }

/* ── Tabella archivio vini/olio Light ── */
body.nvc-light .nvc-arc-bar { background: #f9f5ee; border-bottom-color: rgba(100,70,20,.15); }
body.nvc-light .nvc-arc-tab { border-color: rgba(100,70,20,.2); color: var(--sand); }
body.nvc-light .nvc-arc-tab:hover,
body.nvc-light .nvc-arc-tab.active { border-color: var(--gold); color: var(--gold); background: rgba(138,104,32,.07); }
body.nvc-light .nvc-arc-pagination .page-numbers { border-color: rgba(100,70,20,.2); color: var(--sand); }
body.nvc-light .nvc-arc-pagination .page-numbers.current,
body.nvc-light .nvc-arc-pagination .page-numbers:hover { border-color: var(--gold); color: var(--gold); }

/* ── Prefers-color-scheme: forza dark se OS dark ma non c'è preferenza salvata ── */
@media (prefers-color-scheme: dark) {
  body:not(.nvc-light):not(.nvc-dark-forced) {
    /* già dark di default — nessuna modifica */
  }
}

/* ════════════════════════════════════════════════════════════════════════
   CONTACT FORM 7 — Stile Nuova Val Calore
   ════════════════════════════════════════════════════════════════════════ */

/* ── Wrapper CF7 ── */
.wpcf7 { width: 100%; }
.wpcf7 form { display: flex; flex-direction: column; gap: 0; }

/* ── Reset CF7 defaults ── */
.wpcf7 p { margin: 0 0 1.2rem; }
.wpcf7 br { display: none; }
.wpcf7-form-control-wrap { display: block; width: 100%; }

/* ── Label ── */
.wpcf7 .nvc-label,
.wpcf7 label {
    display: block !important;
    font-family: var(--ff-c) !important;
    font-size: .6rem !important;
    letter-spacing: .3em !important;
    text-transform: uppercase !important;
    color: var(--gold) !important;
    margin-bottom: .5rem !important;
    font-weight: 400 !important;
    cursor: pointer;
}

/* ── Inputs, Textarea, Select ── */
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="number"],
.wpcf7 input[type="url"],
.wpcf7 input[type="date"],
.wpcf7 textarea,
.wpcf7 select {
    width: 100% !important;
    background: rgba(244,237,224,.07) !important;
    border: 1px solid rgba(184,150,62,.3) !important;
    border-radius: 3px !important;
    color: var(--cream) !important;
    font-family: var(--ff-d) !important;
    font-size: 1.05rem !important;
    line-height: 1.5 !important;
    padding: .88rem 1.1rem !important;
    transition: border-color .25s, background .25s, box-shadow .25s !important;
    outline: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
}

.wpcf7 input[type="text"]:focus,
.wpcf7 input[type="email"]:focus,
.wpcf7 input[type="tel"]:focus,
.wpcf7 input[type="url"]:focus,
.wpcf7 textarea:focus,
.wpcf7 select:focus {
    border-color: var(--gold) !important;
    background: rgba(244,237,224,.11) !important;
    box-shadow: 0 0 0 3px rgba(184,150,62,.12) !important;
}

.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder {
    color: rgba(200,184,154,.38) !important;
    font-style: italic;
}

/* Select con freccia dorata */
.wpcf7 select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23b8963e' d='M6 8L0 0h12z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right 1rem center !important;
    background-size: 10px !important;
    padding-right: 2.6rem !important;
    cursor: pointer !important;
}
.wpcf7 select option {
    background: #1e140a;
    color: var(--cream);
}

/* ── Textarea ── */
.wpcf7 textarea {
    height: 130px !important;
    resize: vertical !important;
    min-height: 100px;
}

/* ── Grid 2 colonne per nome+email ── */
.wpcf7 .nvc-cf7-row {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.2rem;
    margin-bottom: 1.2rem;
}
.wpcf7 .nvc-cf7-col { display: flex; flex-direction: column; }
.wpcf7 .nvc-cf7-full {
    margin-bottom: 1.2rem;
}
@media (max-width: 600px) {
    .wpcf7 .nvc-cf7-row { grid-template-columns: 1fr; }
}

/* ── Checkbox e Radio ── */
.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
    accent-color: var(--gold) !important;
    width: 17px !important;
    height: 17px !important;
    cursor: pointer !important;
    flex-shrink: 0;
    border: none !important;
    background: transparent !important;
    box-shadow: none !important;
    padding: 0 !important;
}
.wpcf7 .wpcf7-list-item {
    display: flex;
    align-items: center;
    gap: .6rem;
    margin: .35rem 0 !important;
}
.wpcf7 .wpcf7-list-item label {
    font-family: var(--ff-d) !important;
    font-size: .98rem !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
    color: var(--sand) !important;
    cursor: pointer;
}

/* ── Privacy / Acceptance checkbox ── */
.wpcf7 .wpcf7-acceptance .wpcf7-list-item label {
    font-size: .9rem !important;
    color: var(--mist) !important;
    line-height: 1.6;
}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item label a {
    color: var(--gold-l);
    text-decoration: underline;
}

/* ── Bottone Submit ── */
.wpcf7 input[type="submit"],
.wpcf7 .wpcf7-submit {
    display: inline-block !important;
    background: var(--wine) !important;
    color: var(--cream) !important;
    font-family: var(--ff-c) !important;
    font-size: .65rem !important;
    letter-spacing: .26em !important;
    text-transform: uppercase !important;
    padding: 1rem 2.5rem !important;
    border: none !important;
    border-radius: 3px !important;
    cursor: pointer !important;
    transition: background .28s, transform .2s !important;
    align-self: flex-start;
    min-width: 200px;
    text-align: center;
    box-shadow: none !important;
    outline: none !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    width: auto !important;
}
.wpcf7 input[type="submit"]:hover,
.wpcf7 .wpcf7-submit:hover {
    background: var(--wine-l) !important;
    transform: translateY(-2px) !important;
}
.wpcf7 input[type="submit"]:active {
    transform: translateY(0) !important;
}

/* Loading state */
.wpcf7 input[type="submit"].wpcf7-loading {
    opacity: .65 !important;
    pointer-events: none !important;
}

/* ── Messaggi risposta CF7 ── */
.wpcf7 .wpcf7-response-output {
    margin: 1.2rem 0 0 !important;
    padding: 1rem 1.3rem !important;
    border-radius: 3px !important;
    font-family: var(--ff-d) !important;
    font-size: 1rem !important;
    line-height: 1.6 !important;
    border: none !important;
}

/* Successo */
.wpcf7 .wpcf7-mail-sent-ok,
.wpcf7 form.sent .wpcf7-response-output {
    background: rgba(63,82,40,.2) !important;
    border-left: 3px solid var(--olive-l) !important;
    color: var(--olive-xl) !important;
}

/* Errore */
.wpcf7 .wpcf7-mail-sent-ng,
.wpcf7 .wpcf7-aborted,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
    background: rgba(107,37,53,.2) !important;
    border-left: 3px solid var(--wine-l) !important;
    color: #e8a0a0 !important;
}

/* Spam */
.wpcf7 .wpcf7-spam-blocked,
.wpcf7 form.spam .wpcf7-response-output {
    background: rgba(100,70,20,.15) !important;
    border-left: 3px solid var(--gold) !important;
    color: var(--gold-l) !important;
}

/* Validazione campo ── */
.wpcf7 .wpcf7-not-valid-tip {
    font-family: var(--ff-d) !important;
    font-size: .85rem !important;
    color: #e8a0a0 !important;
    margin-top: .35rem !important;
    display: block;
}
.wpcf7 .wpcf7-not-valid {
    border-color: rgba(200,83,58,.6) !important;
    background: rgba(200,83,58,.06) !important;
}
.wpcf7 .wpcf7-not-valid:focus {
    border-color: #c8533a !important;
    box-shadow: 0 0 0 3px rgba(200,83,58,.12) !important;
}

/* ── Spinner CF7 ── */
.wpcf7 .wpcf7-spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid rgba(184,150,62,.3);
    border-top-color: var(--gold);
    border-radius: 50%;
    animation: nvcSpin .7s linear infinite;
    margin-left: .8rem;
    vertical-align: middle;
    visibility: visible !important;
    background: none !important;
}
@keyframes nvcSpin { to { transform: rotate(360deg); } }

/* ── Light mode overrides ── */
body.nvc-light .wpcf7 input[type="text"],
body.nvc-light .wpcf7 input[type="email"],
body.nvc-light .wpcf7 input[type="tel"],
body.nvc-light .wpcf7 textarea,
body.nvc-light .wpcf7 select {
    background: #ffffff !important;
    border-color: rgba(100,70,20,.25) !important;
    color: var(--cream) !important;
}
body.nvc-light .wpcf7 input:focus,
body.nvc-light .wpcf7 textarea:focus,
body.nvc-light .wpcf7 select:focus {
    border-color: var(--gold) !important;
    background: #fffdf8 !important;
    box-shadow: 0 0 0 3px rgba(138,104,32,.1) !important;
}

/* ════════════════════════════════════════════════════════════════════════
   SCHEDA PRODOTTO — Add to Cart + Quantità
   ════════════════════════════════════════════════════════════════════════ */

/* Wrapper add-to-cart */
.nvc-atc-wrap { }

/* Form add to cart — layout orizzontale con spazio */
.nvc-atc-wrap .cart,
.woocommerce div.product form.cart {
    display: flex !important;
    align-items: center !important;
    gap: 1.2rem !important;
    flex-wrap: wrap !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}

/* Label "Quantità" */
.nvc-atc-wrap .cart .quantity label,
.woocommerce div.product form.cart .quantity label {
    font-family: var(--ff-c) !important;
    font-size: .54rem !important;
    letter-spacing: .24em !important;
    text-transform: uppercase !important;
    color: var(--gold) !important;
    display: block !important;
    margin-bottom: .45rem !important;
    font-weight: 400 !important;
}

/* Input quantità */
.nvc-atc-wrap .cart .quantity .qty,
.woocommerce div.product .quantity input.qty {
    width: 72px !important;
    height: 52px !important;
    background: rgba(244,237,224,.08) !important;
    border: 1px solid rgba(184,150,62,.3) !important;
    border-radius: 3px !important;
    color: var(--cream) !important;
    font-family: var(--ff-d) !important;
    font-size: 1.15rem !important;
    text-align: center !important;
    padding: .4rem .6rem !important;
    transition: border-color .25s !important;
    -moz-appearance: textfield !important;
}
.nvc-atc-wrap .cart .quantity .qty:focus,
.woocommerce div.product .quantity input.qty:focus {
    outline: none !important;
    border-color: var(--gold) !important;
    background: rgba(244,237,224,.12) !important;
    box-shadow: 0 0 0 3px rgba(184,150,62,.12) !important;
}
.nvc-atc-wrap .cart .quantity .qty::-webkit-inner-spin-button,
.nvc-atc-wrap .cart .quantity .qty::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Wrapper quantità */
.nvc-atc-wrap .cart div.quantity,
.woocommerce div.product form.cart div.quantity {
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    gap: 0 !important;
    margin: 0 !important;
}

/* Pulsante Aggiungi al carrello */
.nvc-atc-wrap .cart .single_add_to_cart_button,
.woocommerce div.product form.cart .single_add_to_cart_button {
    height: 52px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 2.2rem !important;
    font-family: var(--ff-c) !important;
    font-size: .65rem !important;
    letter-spacing: .22em !important;
    text-transform: uppercase !important;
    background: var(--wine) !important;
    color: var(--cream) !important;
    border: none !important;
    border-radius: 3px !important;
    cursor: pointer !important;
    transition: background .28s, transform .2s !important;
    white-space: nowrap !important;
    align-self: flex-end !important;
    margin: 0 !important;
}
.nvc-atc-wrap .cart .single_add_to_cart_button:hover,
.woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background: var(--wine-l) !important;
    transform: translateY(-2px) !important;
}

/* Prezzo nella scheda prodotto (p.price) */
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    font-family: var(--ff-d) !important;
    font-size: 1.8rem !important;
    font-weight: 300 !important;
    color: var(--gold) !important;
    line-height: 1 !important;
}
.woocommerce div.product p.price del,
.woocommerce div.product span.price del {
    color: var(--mist) !important;
    font-size: 1.2rem !important;
    opacity: .7 !important;
    margin-right: .5rem !important;
}
.woocommerce div.product p.price ins,
.woocommerce div.product span.price ins {
    text-decoration: none !important;
    color: var(--gold) !important;
}

/* Variazioni prodotto (prodotti variabili) */
.woocommerce div.product form.cart .variations {
    width: 100% !important;
    border-collapse: collapse !important;
    margin-bottom: 1.4rem !important;
}
.woocommerce div.product form.cart .variations td,
.woocommerce div.product form.cart .variations th {
    padding: .5rem 0 !important;
    vertical-align: middle !important;
    background: transparent !important;
    border: none !important;
}
.woocommerce div.product form.cart .variations label {
    font-family: var(--ff-c) !important;
    font-size: .54rem !important;
    letter-spacing: .22em !important;
    text-transform: uppercase !important;
    color: var(--gold) !important;
    font-weight: 400 !important;
    white-space: nowrap !important;
    padding-right: 1.2rem !important;
}
.woocommerce div.product form.cart .variations select {
    background: rgba(244,237,224,.08) !important;
    border: 1px solid rgba(184,150,62,.3) !important;
    border-radius: 3px !important;
    color: var(--cream) !important;
    font-family: var(--ff-d) !important;
    font-size: 1rem !important;
    padding: .7rem 2.4rem .7rem 1rem !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath fill='%23b8963e' d='M6 8L0 0h12z'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat !important;
    background-position: right .9rem center !important;
    background-size: 9px !important;
    -webkit-appearance: none !important;
    appearance: none !important;
    cursor: pointer !important;
    transition: border-color .25s !important;
    min-width: 160px !important;
}
.woocommerce div.product form.cart .variations select:focus {
    outline: none !important;
    border-color: var(--gold) !important;
    box-shadow: 0 0 0 3px rgba(184,150,62,.12) !important;
}
.woocommerce div.product form.cart .variations select option {
    background: #1e140a !important;
    color: var(--cream) !important;
}

/* Reset variation link */
.woocommerce div.product form.cart .reset_variations {
    font-family: var(--ff-c) !important;
    font-size: .5rem !important;
    letter-spacing: .16em !important;
    color: var(--mist) !important;
    text-decoration: none !important;
    display: inline-block !important;
    margin-top: .4rem !important;
    transition: color .3s !important;
}
.woocommerce div.product form.cart .reset_variations:hover { color: var(--gold) !important; }

/* Descrizione variazione */
.woocommerce div.product form.cart .woocommerce-variation-description p {
    font-family: var(--ff-d) !important;
    font-size: .95rem !important;
    color: var(--sand) !important;
    line-height: 1.7 !important;
    margin: .8rem 0 !important;
    padding: .7rem 1rem !important;
    background: rgba(184,150,62,.05) !important;
    border-left: 2px solid var(--gold) !important;
    border-radius: 0 3px 3px 0 !important;
}

/* Prezzo variazione */
.woocommerce div.product form.cart .woocommerce-variation-price span.price {
    font-family: var(--ff-d) !important;
    font-size: 1.6rem !important;
    color: var(--gold) !important;
}

/* ── Light mode scheda prodotto ── */
body.nvc-light .woocommerce div.product .quantity input.qty {
    background: #fff !important;
    border-color: rgba(100,70,20,.25) !important;
    color: var(--cream) !important;
}
body.nvc-light .woocommerce div.product form.cart .variations select {
    background-color: #fff !important;
    border-color: rgba(100,70,20,.25) !important;
    color: var(--cream) !important;
}

/* ════════════════════════════════════════════════════════════════════════
   MOBILE — Sistema completo responsive
   Breakpoints: tablet ≤1024px · mobile ≤768px · small ≤480px
   ════════════════════════════════════════════════════════════════════════ */

/* ── HAMBURGER BUTTON ── */
.nvc-hamburger {
  display: none;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 5px;
  width: 40px;
  height: 40px;
  cursor: pointer;
  background: transparent;
  border: 1px solid rgba(184,150,62,.3);
  border-radius: 3px;
  padding: 0;
  transition: border-color .3s;
  flex-shrink: 0;
}
.nvc-hamburger:hover { border-color: var(--gold); }
.nvc-hamburger span {
  display: block;
  width: 20px;
  height: 2px;
  background: var(--cream);
  border-radius: 2px;
  transition: all .3s;
  transform-origin: center;
}
/* Stato aperto */
.nvc-hamburger.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nvc-hamburger.is-open span:nth-child(2) { opacity: 0; transform: scaleX(0); }
.nvc-hamburger.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ── MOBILE NAV OVERLAY ── */
.nvc-mobile-menu {
  /* Sopra tutto: promo band (900), navbar (800), grain overlay (9000 ma non-interactive) */
  position: fixed;
  inset: 0;
  z-index: 8500;
  background: rgba(23,15,8,.99);
  padding: 0;
  overflow-y: auto;
  flex-direction: column;
  gap: 0;
  /* Nascosto di default con visibility+opacity per transizione */
  visibility: hidden;
  opacity: 0;
  transform: translateX(100%);
  transition: visibility 0s .35s, opacity .35s ease, transform .35s cubic-bezier(.4,0,.2,1);
  /* Forza stacking context separato */
  will-change: transform;
  -webkit-overflow-scrolling: touch;
}
.nvc-mobile-menu.is-open {
  visibility: visible;
  opacity: 1;
  transform: translateX(0);
  transition: visibility 0s 0s, opacity .35s ease, transform .35s cubic-bezier(.4,0,.2,1);
}
/* Contenuto interno con padding corretto per navbar */
.nvc-mobile-menu-inner {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 0 1.8rem 3rem;
  padding-top: max(80px, env(safe-area-inset-top, 80px));
}
.nvc-mobile-menu a {
  font-family: var(--ff-d);
  font-size: 1.6rem;
  font-weight: 300;
  color: var(--cream);
  text-decoration: none;
  padding: .9rem 0;
  border-bottom: 1px solid rgba(184,150,62,.12);
  display: flex;
  justify-content: space-between;
  align-items: center;
  transition: color .3s, padding-left .3s;
}
.nvc-mobile-menu a:hover { color: var(--gold); padding-left: .5rem; }
.nvc-mobile-menu a::after { content: '→'; font-size: 1rem; color: var(--gold); opacity: .6; }
.nvc-mobile-menu .nvc-mobile-cta {
  margin-top: 2rem;
  display: flex;
  flex-direction: column;
  gap: .8rem;
}
.nvc-mobile-menu .nvc-mobile-cta a {
  font-family: var(--ff-c) !important;
  font-size: .65rem !important;
  letter-spacing: .22em !important;
  text-transform: uppercase !important;
  font-weight: 400 !important;
  text-align: center !important;
  padding: 1rem !important;
  border: none !important;
  border-radius: 3px !important;
  justify-content: center !important;
}
.nvc-mobile-menu .nvc-mobile-cta a::after { display: none; }
.nvc-mobile-menu .nvc-mobile-cart {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: .9rem 0;
  border-bottom: 1px solid rgba(184,150,62,.12);
  font-family: var(--ff-c);
  font-size: .65rem;
  letter-spacing: .2em;
  text-transform: uppercase;
  color: var(--sand);
  text-decoration: none;
  transition: color .3s;
}
.nvc-mobile-menu .nvc-mobile-cart:hover { color: var(--gold); }
.nvc-mobile-menu .nvc-mobile-cart::after { display: none !important; }

/* ════ TABLET (≤1024px) ════ */
@media (max-width: 1024px) {

  /* Navbar */
  .nvc-nav { padding: 1rem 1.8rem; }
  .nvc-nav-right .nvc-btn { display: none; } /* nascondi CTA desktop */

  /* Hero */
  .nvc-hero__h1 { font-size: clamp(2.4rem,7vw,5rem); }
  .nvc-hero__sub { font-size: .96rem; max-width: 420px; }

  /* Griglia 2→1 per sezioni principali */
  .nvc-co-grid,
  .woocommerce-checkout .woocommerce { grid-template-columns: 1fr !important; }

}

/* ════ MOBILE (≤768px) ════ */
@media (max-width: 768px) {

  /* NAVBAR mobile */
  .nvc-nav {
    padding: .9rem 1.2rem;
  }
  .nvc-nav-links { display: none !important; }
  .nvc-nav-cart span.nvc-nav-cart { display: none; } /* testo "Carrello" */
  .nvc-hamburger { display: flex; }

  /* Solo icona carrello + contatore nella navbar */
  .nvc-nav-right {
    gap: .6rem;
  }
  .nvc-nav-right .nvc-btn { display: none; }

  /* Hero */
  .nvc-hero__h1 { font-size: clamp(2rem,9vw,3.8rem); }
  .nvc-hero__sub { font-size: .92rem; margin-top: 1rem; }
  .nvc-hero__btns {
    flex-direction: column;
    align-items: center;
    gap: .7rem;
  }
  .nvc-hero__btns .nvc-btn { width: 100%; max-width: 280px; text-align: center; }
  .nvc-hero__eyebrow { font-size: .5rem; }

  /* Promo band */
  .nvc-promo-band { font-size: .52rem; letter-spacing: .12em; padding: .5rem .8rem; }

  /* Wrap */
  .nvc-wrap { padding: 0 1.1rem; }
  .nvc-sec { padding: 3.5rem 0; }

  /* Griglia home: split vino/olio → stacked */
  section[style*="grid-template-columns:1fr 1fr"][style*="min-height"] {
    display: flex !important;
    flex-direction: column !important;
  }
  /* Forza tutte le griglie 2-col inline a stack */
  [style*="display:grid"][style*="grid-template-columns:1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
  [style*="display:grid"][style*="grid-template-columns:1fr 1fr;gap:5rem"] {
    gap: 3rem !important;
  }
  [style*="display:grid"][style*="grid-template-columns:repeat(4,1fr)"] {
    grid-template-columns: 1fr 1fr !important;
  }
  [style*="display:grid"][style*="grid-template-columns:repeat(3,1fr)"] {
    grid-template-columns: 1fr 1fr !important;
  }
  [style*="display:grid"][style*="grid-template-columns:repeat(4,1fr);gap:1.2rem"] {
    grid-template-columns: 1fr 1fr !important;
    gap: 1rem !important;
  }
  [style*="display:grid"][style*="grid-template-columns:1fr 360px"],
  [style*="display:grid"][style*="grid-template-columns:1fr 340px"],
  [style*="display:grid"][style*="grid-template-columns:1fr 380px"],
  [style*="display:grid"][style*="grid-template-columns:1fr 400px"] {
    grid-template-columns: 1fr !important;
  }

  /* Stats row */
  .nvc-stats { grid-template-columns: 1fr 1fr; gap: .5rem; }
  .nvc-stat:not(:first-child) { border-left: none; padding-left: 0; }
  .nvc-stat { padding: .8rem; border: 1px solid var(--border); }

  /* Titoli */
  .nvc-title { font-size: clamp(1.8rem,5.5vw,2.6rem); }

  /* Cards: forza 1 colonna su mobile stretto */
  .nvc-arc-grid {
    grid-template-columns: 1fr !important;
    gap: 1.2rem !important;
  }

  /* Footer */
  .nvc-footer__grid { grid-template-columns: 1fr !important; gap: 2rem; }
  .nvc-footer { padding: 2.5rem 1.2rem 0; }

  /* Immagine frame badge */
  .img-badge { bottom: -1rem !important; left: -.8rem !important; min-width: 90px !important; padding: .8rem !important; }
  .img-frame-border { display: none; }

  /* Proc gallery */
  .nvc-proc-gallery { grid-template-columns: 1fr !important; }

  /* Timeline */
  .timeline { padding-left: 1.8rem; }

  /* Checkout */
  .nvc-co-wrap { padding-top: 80px; }
  .nvc-co-inner { padding: 0 1.1rem; }
  .nvc-co-card__body { padding: 1.2rem 1.2rem 1rem; }
  .nvc-co-card__head { padding: 1rem 1.2rem; }
  .nvc-co-steps { gap: .3rem; margin-bottom: 2rem; }
  .nvc-co-step__label { display: none; } /* solo numeri su mobile */
  .nvc-co-step__sep { width: 20px; }

  /* Carrello */
  .nvc-wrap [style*="grid-template-columns:72px 1fr 90px 100px 80px 30px"] {
    grid-template-columns: 52px 1fr auto auto !important;
    gap: .5rem !important;
  }
  /* Nascondi colonne prezzo singolo e subtotale su mobile piccolo */
  .woocommerce-cart-form .product-price { display: none; }

  /* Box configuratore */
  #box-configurator .nvc-wrap > div[style*="grid-template-columns:1fr 360px"] {
    grid-template-columns: 1fr !important;
  }
  #boxViniGrid,
  #boxOlioGrid { grid-template-columns: 1fr 1fr !important; }

  /* Mode toggle + back to top */
  .nvc-mode-toggle { bottom: 4.5rem; right: 1rem; }
  #nvcBackToTop { right: 1rem; bottom: 1.5rem; }

  /* Pagamento / checkout sidebar sticky → static */
  .nvc-co-sidebar { position: static !important; top: auto !important; }
  #order_review { position: static !important; }

  /* WC prodotto singolo */
  .woocommerce div.product form.cart {
    flex-wrap: wrap !important;
    gap: .9rem !important;
  }
  .woocommerce div.product form.cart .single_add_to_cart_button {
    width: 100% !important;
  }

  /* Archivio prod: barra filtri wrap */
  .nvc-arc-bar__inner { flex-direction: column; align-items: flex-start; gap: .6rem; }
  .nvc-arc-filter-tabs { flex-wrap: wrap; }
}

/* ════ SMALL MOBILE (≤480px) ════ */
@media (max-width: 480px) {

  .nvc-hero__h1 { font-size: clamp(1.8rem,9vw,3rem); }

  /* 1 colonna ovunque */
  [style*="display:grid"][style*="repeat(4,1fr)"],
  [style*="display:grid"][style*="repeat(3,1fr)"],
  [style*="display:grid"][style*="1fr 1fr"] {
    grid-template-columns: 1fr !important;
  }
  #boxViniGrid,
  #boxOlioGrid { grid-template-columns: 1fr !important; }

  /* Box coupon stacked */
  #boxViniGrid ~ * .os-coupon,
  .os-coupon { flex-direction: column; }

  /* Navbar ancora più compatta */
  .nvc-nav { padding: .8rem 1rem; }

  /* Sezioni padding ridotto */
  .nvc-sec { padding: 2.8rem 0; }

  /* Bottoni full width */
  .nvc-hero__btns .nvc-btn { max-width: 100%; }

  /* CTA band padding */
  .nvc-cta-band { padding: 4rem 1.2rem; }

  /* Footer brand */
  .nvc-footer__brand { text-align: center; }
  .nvc-footer__logo-wrap img { margin: 0 auto .8rem; }
}

/* ════ HOME PAGE — fix fluttuazione ════ */

/* Il problema della "fluttuazione" è causato da:
   1. padding-top mancante o inconsistente sulle sezioni successive all'hero
   2. sticky navbar che si sovrappone ai contenuti
   3. animazioni su elementi che non hanno will-change
*/

/* Stabilizza hero */
.nvc-hero {
  will-change: auto;
  backface-visibility: hidden;
  -webkit-backface-visibility: hidden;
}
.nvc-hero__bg {
  will-change: transform;
  transform: scale(1.07) translateZ(0);
}

/* Previeni overflow orizzontale su mobile */
html, body {
  overflow-x: hidden;
  max-width: 100%;
}

/* Fix: sezioni inline con stili diretti che si sovrappongono */
@media (max-width: 768px) {

  /* Split hero vino/olio → full height auto */
  section[style*="min-height:520px"] {
    min-height: auto !important;
  }
  section[style*="min-height:520px"] > div,
  section[style*="min-height:520px"] > a {
    min-height: 280px !important;
    padding: 2.5rem 1.5rem !important;
  }

  /* Padding nelle sezioni inline */
  section[style*="padding:5rem 0"],
  section[style*="padding:6rem 0"],
  section[style*="padding:6.5rem 0"] {
    padding: 3rem 0 !important;
  }

  /* Griglia 2 colonne immagini → 1 */
  [style*="display:grid;grid-template-columns:repeat(2,1fr)"],
  [style*="display:grid;grid-template-columns:1fr 1fr;gap:.7rem"] {
    grid-template-columns: 1fr 1fr !important;
    gap: .5rem !important;
  }

  /* Img frame: rimuovi padding extra */
  [style*="padding-bottom:1.8rem;padding-right:1.8rem"],
  [style*="padding-bottom:1.6rem;padding-right:1.6rem"] {
    padding-bottom: 0 !important;
    padding-right: 0 !important;
    margin-bottom: 2.5rem !important;
  }

  /* G2 gap */
  [style*="gap:5rem"] { gap: 2.5rem !important; }
  [style*="gap:3rem"] { gap: 2rem !important; }
}

/* ── Light mode hamburger ── */
body.nvc-light .nvc-hamburger { border-color: rgba(100,70,20,.25); }
body.nvc-light .nvc-hamburger span { background: var(--cream); }
body.nvc-light .nvc-mobile-menu { background: #ffffff; }
body.nvc-light .nvc-mobile-menu a { color: var(--cream); border-bottom-color: rgba(100,70,20,.12); }

/* ── Mobile menu inner content ── */
.nvc-mobile-menu-inner {
  display: flex;
  flex-direction: column;
  min-height: 100%;
  padding: 1.2rem 1.8rem 4rem;
  /* Spazio per navbar (max ~80px) + promo band (max ~36px) */
  padding-top: calc(80px + 2rem);
}

/* Logo nell'header del menu mobile */
.nvc-mobile-menu-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-bottom: 1.5rem;
  border-bottom: 1px solid rgba(184,150,62,.15);
  margin-bottom: .5rem;
}
.nvc-mobile-menu-header .nvc-close-btn {
  background: transparent;
  border: 1px solid rgba(184,150,62,.3);
  color: var(--cream);
  width: 36px;
  height: 36px;
  border-radius: 50%;
  cursor: pointer;
  font-size: 1.1rem;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: border-color .3s, color .3s;
}
.nvc-mobile-menu-header .nvc-close-btn:hover {
  border-color: var(--gold);
  color: var(--gold);
}

/* Assicura che il menu sia SEMPRE sopra la navbar */
.nvc-mobile-menu { z-index: 8500 !important; }
.nvc-nav { z-index: 8000 !important; }
.nvc-promo-band { z-index: 7900 !important; }

/* Grain overlay NON deve coprire il menu */
body::before { z-index: 8600 !important; pointer-events: none !important; }

/* Fix: quando il menu è aperto, il grain non copre il menu */
body.nvc-menu-open::before { display: none; }


/* ── Quantity +/- buttons — scheda prodotto ── */
.nvc-qty-wrap {
  display: flex !important;
  align-items: center !important;
  gap: 0 !important;
}
.nvc-qty-minus,
.nvc-qty-plus {
  width: 44px !important;
  height: 52px !important;
  background: rgba(244,237,224,.08) !important;
  border: 1px solid rgba(184,150,62,.3) !important;
  color: var(--cream) !important;
  font-size: 1.3rem !important;
  font-family: var(--ff-d) !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  transition: background .25s, color .25s, border-color .25s !important;
  flex-shrink: 0 !important;
  line-height: 1 !important;
  padding: 0 !important;
}
.nvc-qty-minus { border-radius: 3px 0 0 3px !important; border-right: none !important; }
.nvc-qty-plus  { border-radius: 0 3px 3px 0 !important; border-left: none !important; }
.nvc-qty-minus:hover,
.nvc-qty-plus:hover {
  background: rgba(184,150,62,.18) !important;
  color: var(--gold) !important;
  border-color: var(--gold) !important;
}
.nvc-qty-wrap input.qty {
  border-radius: 0 !important;
  border-left: none !important;
  border-right: none !important;
  text-align: center !important;
  width: 64px !important;
  height: 52px !important;
  -moz-appearance: textfield !important;
}
.nvc-qty-wrap input.qty::-webkit-inner-spin-button,
.nvc-qty-wrap input.qty::-webkit-outer-spin-button { -webkit-appearance: none !important; }
.nvc-qty-wrap input.qty:focus {
  z-index: 1;
  border-color: var(--gold) !important;
  border-left: 1px solid var(--gold) !important;
  border-right: 1px solid var(--gold) !important;
}
/* Stessi bottoni anche nel carrello */
.woocommerce-cart-form .nvc-qty-wrap,
.nvc-qty-wrap { display: flex !important; }

/* Light mode */
body.nvc-light .nvc-qty-minus,
body.nvc-light .nvc-qty-plus {
  background: rgba(100,70,20,.06) !important;
  border-color: rgba(100,70,20,.25) !important;
  color: var(--sand) !important;
}
body.nvc-light .nvc-qty-minus:hover,
body.nvc-light .nvc-qty-plus:hover {
  background: rgba(100,70,20,.12) !important;
  color: var(--gold) !important;
  border-color: var(--gold) !important;
}

/* ════════════════════════════════════════════════════════════════════════
   QUANTITY +/- BUTTONS — globale (carrello + scheda prodotto)
   ════════════════════════════════════════════════════════════════════════ */
.nvc-inqty {
  display:flex;align-items:center;gap:0;
}
.nvc-inqty-btn {
  width:40px;height:46px;background:rgba(244,237,224,.07);
  border:1px solid rgba(184,150,62,.25);color:var(--cream);
  font-family:'Lato',system-ui,sans-serif;font-size:1.25rem;font-weight:400;
  cursor:pointer;display:flex;align-items:center;
  justify-content:center;transition:all .25s;flex-shrink:0;
  line-height:1;padding:0;user-select:none;
  margin-top:10px;margin-bottom:10px
}
.nvc-inqty-btn:first-child { border-radius:3px 0 0 3px;border-right:none }
.nvc-inqty-btn:last-child  { border-radius:0 3px 3px 0;border-left:none }
.nvc-inqty-btn:hover { background:rgba(184,150,62,.18);color:var(--gold);border-color:var(--gold) }
.nvc-inqty input {
  width:56px;height:46px;text-align:center;
  background:rgba(244,237,224,.08);border:1px solid rgba(184,150,62,.25);
  color:var(--cream);font-family:'Lato',system-ui,sans-serif;font-size:1rem;font-weight:700;
  border-radius:0;-moz-appearance:textfield
}
.nvc-inqty input::-webkit-inner-spin-button,
.nvc-inqty input::-webkit-outer-spin-button { -webkit-appearance:none }
.nvc-inqty input:focus { outline:none;border-color:var(--gold);z-index:1 }

/* nvc-inqty — Light Mode */
body.nvc-light .nvc-inqty-btn {
  background: rgba(100,70,20,.06) !important;
  border-color: rgba(100,70,20,.25) !important;
  color: var(--sand) !important;
}
body.nvc-light .nvc-inqty-btn:hover {
  background: rgba(100,70,20,.14) !important;
  color: var(--gold) !important;
  border-color: var(--gold) !important;
}
body.nvc-light .nvc-inqty input {
  background: #fff !important;
  border-color: rgba(100,70,20,.25) !important;
  color: var(--cream) !important;
}

/* Assicura che .nvc-atc-wrap .quantity erediti il layout inqty */
.nvc-atc-wrap .quantity.nvc-inqty {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  gap: 0 !important;
}
.nvc-atc-wrap .quantity.nvc-inqty input.qty {
  width: 64px !important;
  height: 46px !important;
  text-align: center !important;
  background: rgba(244,237,224,.08) !important;
  border: 1px solid rgba(184,150,62,.25) !important;
  color: var(--cream) !important;
  font-family: 'Lato',system-ui,sans-serif !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  border-radius: 0 !important;
  border-left: none !important;
  border-right: none !important;
  -moz-appearance: textfield !important;
}
.nvc-atc-wrap .quantity.nvc-inqty input.qty::-webkit-inner-spin-button,
.nvc-atc-wrap .quantity.nvc-inqty input.qty::-webkit-outer-spin-button { -webkit-appearance: none !important; }
.nvc-atc-wrap .quantity.nvc-inqty input.qty:focus {
  outline: none !important;
  border-color: var(--gold) !important;
  border-left: 1px solid var(--gold) !important;
  border-right: 1px solid var(--gold) !important;
  background: rgba(244,237,224,.12) !important;
}
