/* ================================================================
   Marago Caffè — theme.css v5.0
   Strategy: uses EXACT class names from the real markup.
   Overrides webflow.css only where needed.
   Hero: pure CSS animations — works with ZERO JavaScript.
   ================================================================ */

/* ── 0. FONTS ─────────────────────────────────────────────────── */
@font-face {
  font-family: "Tanker";
  src: url("https://cdn.prod.website-files.com/6915bbbef5b75d8daa2ff39d/6915bbbef5b75d8daa2ff3e8_Tanker-Regular.otf") format("opentype");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Interdisplay";
  src: url("https://cdn.prod.website-files.com/6915bbbef5b75d8daa2ff39d/6915bbbef5b75d8daa2ff3df_Inter-Bold.ttf") format("truetype");
  font-weight: 700; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Interdisplay";
  src: url("https://cdn.prod.website-files.com/6915bbbef5b75d8daa2ff39d/6915bbbef5b75d8daa2ff3dd_Inter-Regular.ttf") format("truetype");
  font-weight: 400; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Interdisplay";
  src: url("https://cdn.prod.website-files.com/6915bbbef5b75d8daa2ff39d/6915bbbef5b75d8daa2ff3dc_Inter-Medium.ttf") format("truetype");
  font-weight: 500; font-style: normal; font-display: swap;
}
@font-face {
  font-family: "Interdisplay";
  src: url("https://cdn.prod.website-files.com/6915bbbef5b75d8daa2ff39d/6915bbbef5b75d8daa2ff3de_Inter-SemiBold.ttf") format("truetype");
  font-weight: 600; font-style: normal; font-display: swap;
}

/* Font sito — Libre Baskerville ovunque (titoli e testo normale).
   Sovrascrive le variabili CSS di webflow.css invece di toccare i
   @font-face o le classi originali: essendo custom property su :root,
   l'override si propaga automaticamente a tutti gli usi esistenti
   (h1-h6, paragrafi, bottoni, ecc.) senza dover cambiare ogni regola.
   "Smooch" resta invariato: è solo la scritta corsiva decorativa
   "Marago" in Chi Siamo, non un font di lettura. */
:root {
  --_font-family---font-family--body-text: "Libre Baskerville", Georgia, serif;
  --_font-family---font-family--heading-text: "Libre Baskerville", Georgia, serif;
}

/* ── 1. CSS KEYFRAME ANIMATIONS (no JS needed) ─────────────────── */
@keyframes bl-fade-up {
  from { opacity: 0; transform: translateY(32px); }
  to   { opacity: 1; transform: translateY(0);    }
}
@keyframes bl-scale-in {
  from { opacity: 0; transform: scale(0.7) rotate(-8deg); }
  to   { opacity: 1; transform: scale(1)   rotate(0deg);  }
}
@keyframes bl-fade-in {
  from { opacity: 0; }
  to   { opacity: 1; }
}
@keyframes bl-float-y {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50%      { transform: translateY(-14px) rotate(2deg); }
}

/* ── 2. BASE OVERRIDES ─────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; overflow-x: hidden; }

body, body.body {
  background-color: var(--brand-colors--background-color, #f8f5f1);
  color: var(--brand-colors--primary, #48281f);
  overflow-x: hidden;
}

/* Hero heading responsive */
.hero-heading {
  font-size: clamp(64px, 11vw, var(--_typography---h1--font-size, 152px)) !important;
  line-height: 0.86 !important;
  letter-spacing: -2px !important;
  overflow: visible !important; /* was hidden in webflow → cut off chars */
}

/* CRITICAL: heading-wrap had overflow:hidden which CUT the heading text
   At large sizes the text was taller than the container */
.hero-heading-wrap {
  overflow: visible !important;
  max-width: 100% !important;
}

/* ── 3. NAVBAR — SEMPRE SCURO, UGUALE SU TUTTE LE PAGINE ─────────
   Unico stile consistente: dark semi-trasparente con blur.
   Nessun transparent/scroll switching che causa differenze visive.
──────────────────────────────────────────────────────────────────*/
.navbar.w-nav {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 9000 !important;
  background: rgba(40, 28, 20, 0.92) !important;
  backdrop-filter: blur(20px) !important;
  -webkit-backdrop-filter: blur(20px) !important;
  box-shadow: 0 1px 0 rgba(255,255,255,0.05), 0 4px 40px rgba(0,0,0,0.35) !important;
  transition: background 0.3s ease !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* Navbar inner: fixed height, grid */
.navbar-inner {
  height: 80px !important;
  max-width: 1440px !important;
  margin: 0 auto !important;
  padding: 0 40px !important;
  align-items: center !important;
  border-bottom: none !important;
}

/* Desktop: 3 columns left/center/right.
   minmax(0,1fr), non "1fr" da solo: una colonna "1fr" da sola non si
   restringe mai sotto il min-content del contenuto — con molte voci
   di menu la colonna si allargava oltre lo spazio assegnato, spingendo
   via logo e icone a destra invece di lasciare che initPriorityNav()
   (in marago-main.js) rilevasse correttamente il troppopieno. */
.navbar-inner {
  display: grid !important;
  grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) !important;
}

/* Left: nav links */
.menu-list-wrap.w-nav-menu {
  display: flex !important;
  align-items: center !important;
  position: static !important;
  background: transparent !important;
  width: auto !important;
  height: auto !important;
  padding: 0 !important;
  flex-flow: row !important;
}
.menu-list {
  display: flex !important;
  align-items: center !important;
  gap: 24px !important;
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.nav-item { position: relative; list-style: none; }
.nav-link {
  display: flex !important;
  align-items: center !important;
  gap: 4px !important;
  color: rgba(255,255,255,0.82) !important;
  font-size: 13px !important;
  font-weight: 500 !important;
  letter-spacing: 0.6px !important;
  position: relative !important;
  transition: color 0.2s !important;
  white-space: nowrap !important;
}
.nav-link:hover { color: #fff !important; }
.nav-link .link-text { pointer-events: none; }
/* Underline effect */
.nav-link::after {
  content: '';
  position: absolute;
  bottom: -4px; left: 0;
  width: 0; height: 1px;
  background: var(--brand-colors--secondary, #fcd5cd);
  transition: width 0.3s ease;
}
.nav-link:hover::after { width: 100%; }

/* ── Dropdown (voci con sottomenu) ──
   Molte più voci si aggiungono organizzandole sotto una voce padre
   con dropdown, invece di appiattirle tutte sulla stessa riga —
   prima anche solo 4 voci mettevano in difficoltà l'header. */
.nav-caret {
  background: none; border: none; padding: 2px; margin: 0;
  color: inherit; display: inline-flex; cursor: pointer;
  transition: transform 0.2s ease;
}
.has-dropdown.is-open > .nav-link > .nav-caret,
.has-dropdown:hover > .nav-link > .nav-caret { transform: rotate(180deg); }

.sub-menu {
  list-style: none;
  margin: 14px 0 0;
  padding: 8px;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%) translateY(6px);
  min-width: 220px;
  background: rgba(30, 20, 15, 0.98);
  backdrop-filter: blur(20px);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  box-shadow: 0 20px 48px rgba(0,0,0,0.4);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.18s ease, transform 0.18s ease, visibility 0.18s;
  z-index: 50;
}
.has-dropdown:hover > .sub-menu,
.has-dropdown.is-open > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(-50%) translateY(0);
}
.sub-menu .nav-item { width: 100%; }
.sub-menu .nav-link {
  display: block !important;
  padding: 10px 14px !important;
  border-radius: 8px;
  font-size: 13px !important;
  white-space: nowrap;
}
.sub-menu .nav-link:hover { background: rgba(255,255,255,0.08) !important; }
.sub-menu .nav-link::after { display: none; }

/* Center: brand/logo */
.brand-wrap {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
}
.brand.w-nav-brand {
  display: flex !important;
  align-items: center !important;
  padding: 0 !important;
}
.barand-logo { width: 148px !important; height: auto !important; }
.brand-wrap .custom-logo { width: 148px !important; height: auto !important; filter: brightness(0) invert(1); }

/* Footer: stesso trattamento dell'header (bianco, stessa dimensione) —
   prima il logo nel footer restava nei colori originali (invisibile o
   stonato sullo sfondo scuro del footer) mentre l'header lo forzava
   in bianco. */
.footer-brand-wrap .custom-logo,
.footer-brand-wrap .footer-brand {
  width: 148px !important;
  height: auto !important;
  filter: brightness(0) invert(1) !important;
}

/* Right: cart + button + hamburger */
.menu-button-wrapper {
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 20px !important;
  position: static !important;
  z-index: auto !important;
}

/* Cart */
.nav-cart-link {
  display: flex !important;
  align-items: center !important;
  position: relative !important;
  color: rgba(255,255,255,0.82) !important;
  transition: color 0.2s !important;
}
.nav-cart-link:hover { color: #fff !important; }
.nav-cart-count {
  position: absolute !important;
  top: -8px !important; right: -9px !important;
  background: var(--brand-colors--secondary, #fcd5cd) !important;
  color: var(--brand-colors--primary, #48281f) !important;
  font-size: 10px !important; font-weight: 800 !important;
  border-radius: 99px !important;
  min-width: 18px !important; height: 18px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  padding: 0 4px !important;
}

/* Area riservata link */
.nav-account-link {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  color: rgba(255,255,255,0.75) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  letter-spacing: 0.4px !important;
  transition: color 0.2s !important;
  white-space: nowrap !important;
}
.nav-account-link:hover { color: #fff !important; }
.nav-account-label { display: none; }
@media (min-width: 1200px) { .nav-account-label { display: inline; } }

/* CTA button slot */
.nav-button-slot { display: flex; align-items: center; }

/* Nav CTA button — rimpiazzo del complesso button Webflow con uno stile pulito */
.bl-nav-cta {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  background: var(--brand-colors--secondary, #fcd5cd) !important;
  color: var(--brand-colors--primary, #48281f) !important;
  border-radius: 999px !important;
  padding: 10px 20px !important;
  font-size: 12px !important;
  font-weight: 800 !important;
  letter-spacing: 0.5px !important;
  text-transform: uppercase !important;
  text-decoration: none !important;
  transition: background 0.2s, transform 0.15s !important;
  white-space: nowrap !important;
}
.bl-nav-cta:hover {
  background: var(--brand-colors--primary, #48281f) !important;
  color: #fff !important;
  transform: translateY(-1px) !important;
}

/* Hamburger: hidden on desktop */
.menu-button.w-nav-button {
  display: none !important;
  background: none !important;
  border: none !important;
  cursor: pointer !important;
  padding: 0 !important;
  width: 36px !important;
  /* webflow.css imposta overflow:clip sul .menu-button — lo rimuoviamo */
  overflow: visible !important;
  /* stroke="currentColor" sui SVG segue questo colore */
  color: rgba(255,255,255,0.85) !important;
}
.menu-button.w-nav-button:hover { color: #fff !important; }
/* Hamburger icon — sempre visibile; la close icon è dentro il menu overlay, mai coperta */
.menu-icon { width: 28px !important; height: 28px !important; display: block !important; }

/* Bottone chiudi dentro il menu mobile overlay */
.mobile-menu-close {
  display: none !important;
  background: none !important; border: none !important; cursor: pointer !important;
  color: rgba(255,255,255,0.85) !important; padding: 0 !important;
  width: 44px !important; height: 44px !important;
  align-items: center !important; justify-content: center !important;
  border-radius: 50% !important; transition: background 0.2s, color 0.2s !important;
}
.mobile-menu-close:hover { background: rgba(255,255,255,0.1) !important; color: #fff !important; }
@media (max-width: 991px) {
  .mobile-menu-close {
    display: flex !important;
    position: absolute !important; top: 24px !important; right: 24px !important; z-index: 2 !important;
  }
}

/* Admin bar */
.admin-bar .navbar.w-nav { top: 32px !important; }
@media (max-width: 782px) { .admin-bar .navbar.w-nav { top: 46px !important; } }

/* ── MOBILE NAVBAR ── */
@media (max-width: 991px) {
  .navbar-inner {
    display: flex !important;
    justify-content: space-between !important;
    padding: 0 20px !important;
    border-bottom: none !important;
    grid-template-columns: none !important;
  }

  /* Hide the nav CTA button on mobile */
  .nav-button-slot { display: none !important; }

  /* Show hamburger */
  .menu-button.w-nav-button { display: flex !important; align-items: center; }

  /* Mobile menu overlay — nascosto di default, visibile con classe .is-open */
  .menu-list-wrap.w-nav-menu {
    display: none !important;
    position: fixed !important;
    inset: 0 !important;
    z-index: 10000 !important; /* sopra navbar — il bottone close è DENTRO qui, mai coperto */
    background: var(--brand-colors--primary, #48281f) !important;
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    padding: 80px 40px 60px !important;
    overflow-y: auto !important;
    width: 100% !important;
    height: 100vh !important;
    box-shadow: none !important;
  }
  /* JS aggiunge .is-open al nav menu per aprirlo */
  .menu-list-wrap.w-nav-menu.is-open {
    display: flex !important;
  }
  .menu-list {
    flex-direction: column !important;
    align-items: center !important;
    gap: 4px !important;
  }
  .nav-link {
    font-family: var(--_font-family---font-family--heading-text, 'Tanker') !important;
    font-size: clamp(36px, 9vw, 52px) !important;
    color: rgba(255,255,255,0.88) !important;
    padding: 8px 0 !important;
    letter-spacing: -0.5px !important;
  }
  .nav-link::after { display: none !important; }

  /* Dropdown su mobile: niente overlay assoluto (non ha senso dentro
     il menu a schermo intero) — le voci figlie si espandono in linea
     sotto la voce padre con un accordion, aperto/chiuso via JS
     (.has-dropdown.is-open), dato che il touch non ha hover. */
  .nav-item { width: 100%; text-align: center; }
  .has-dropdown > .nav-link { justify-content: center !important; }
  .sub-menu {
    position: static !important;
    transform: none !important;
    opacity: 1 !important; visibility: visible !important; pointer-events: auto !important;
    display: none;
    background: transparent !important; backdrop-filter: none !important;
    border: none !important; box-shadow: none !important;
    padding: 0 !important; margin: 4px 0 10px !important;
    width: 100%;
  }
  .has-dropdown.is-open > .sub-menu { display: block; }
  .sub-menu .nav-link {
    font-size: clamp(18px, 4.5vw, 24px) !important;
    color: rgba(255,255,255,0.6) !important;
    padding: 6px 0 !important;
    justify-content: center !important;
  }
  .nav-caret svg { width: 11px; height: 7px; }
}

/* ── 4. HERO — CSS ANIMATIONS ─────────────────────────────────── */
/* webflow.css sets: .hero-section { position:relative; min-height:80vh }
   We keep that but add padding-top for fixed navbar */
.hero-section {
  padding-top: 80px !important; /* account for fixed navbar */
  min-height: 100vh !important;
  overflow: hidden !important;
}

/* Container inside hero: relative, z-index above video */
.hero-section .container {
  position: relative !important;
  z-index: 3 !important;
}

/* Hero wrap */
.hero-wrap {
  padding-top: 80px !important;
  padding-bottom: 60px !important;
  min-height: calc(100vh - 80px) !important;
  justify-content: center !important;
}

/* ── CSS KEYFRAME ANIMATIONS: no JS needed ── */
.hero-button-wrap {
  animation: bl-fade-up 0.7s cubic-bezier(0.22,0.68,0,1.2) 0.4s both;
}

/* ── HERO MINIMALE — solo video, logo, CTA (nessun titolo/testo) ── */
.bl-hero--minimal .hero-wrap {
  width: 100% !important;
  min-height: calc(100vh - 80px) !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: flex-end !important;
  padding-top: 0 !important;
  padding-bottom: 72px !important;
}
.bl-hero__cta-wrap { margin-top: 0 !important; }

/* Logo in alto a sinistra, sotto la navbar fissa (80px) */
.bl-hero__logo {
  position: absolute;
  top: 104px;
  left: 40px;
  z-index: 4;
  max-width: 140px;
}
.bl-hero__logo img { display: block; width: 100%; height: auto; }

@media screen and (max-width: 767px) {
  .bl-hero__logo { top: 96px; left: 20px; max-width: 96px; }
  .bl-hero--minimal .hero-wrap { padding-bottom: 48px !important; }
}

/* Video hero: due versioni, mostrate in base al breakpoint.
   Il caricamento avviene da Personalizza → Hero (upload diretto). */
.hero-video { object-fit: cover !important; }
.hero-video--mobile { display: none; }
@media screen and (max-width: 767px) {
  .hero-video--desktop { display: none; }
  .hero-video--mobile  { display: block; }
  /* Webflow ancora .hero-video a object-position:100% 50% (bordo destro).
     Su mobile va centrata, altrimenti il crop mostra solo il lato destro
     dell'immagine/video e sembra scentrata. */
  .hero-video--mobile  { object-position: 50% 50% !important; }
}
/* Messaggio quando nessun video è stato ancora caricato dal Customizer */
.bl-hero__video-placeholder {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
  text-align: center; padding: 40px;
  background: var(--brand-colors--primary, #48281f);
}
.bl-hero__video-placeholder p {
  color: rgba(255,255,255,0.75);
  font-size: 15px; max-width: 420px; margin: 0;
}

/* ── 4b. ABOUT — mascotte Marago (barca + chicco) ────────────────
   Barca: illustrazione nell'angolo basso a destra della sezione
   "Chi Siamo", immagine ritagliata (barca-mascotte-cropped.png):
   l'originale aveva spazio trasparente sotto lo scafo che la faceva
   apparire "in alto" a prescindere dal bottom impostato qui.
   z-index SOTTO il "mare" (.background-wave.is-bottom, z-index:3): la
   parte bassa dello scafo resta coperta dall'onda, per dare l'illusione
   che la barca galleggi dentro il mare, non sopra.
   L'onda ha altezza FISSA (134px, non scala col viewport), mentre la
   barca è molto più grande su desktop: stesso "bottom" = percentuale di
   sommersione molto diversa. Valori quindi separati per breakpoint,
   non semplicemente proporzionali. */
.bl-about__boat {
  position: absolute;
  right: 4%;
  bottom: 100px;
  width: clamp(160px, 20vw, 300px);
  height: auto;
  z-index: 2;
  pointer-events: none;
  animation: bl-float-y 5s ease-in-out infinite;
}
@media screen and (max-width: 767px) {
  .bl-about__boat { width: 150px; right: 12px; bottom: 8px; }
}

/* Mascotte chicco: prima era una piccola foto circolare inline nel
   testo (troppo nascosta, il cliente non la notava) — ora è
   un'illustrazione grande in basso a sinistra, a specchio con la
   barca, ma SOPRA il mare (z-index:4, non un personaggio acquatico)
   così resta sempre completamente visibile.
   Su mobile lo stacking di menu-wrap + testo lascia poco spazio
   "vuoto": la versione assoluta finiva sopra il testo. Sotto i 767px
   si nasconde questa e si mostra invece .bl-about__mascot--mobile,
   un'immagine in-flow (non assoluta) subito dopo il testo — non può
   mai sovrapporsi a nulla. */
.bl-about__mascot {
  position: absolute;
  left: 4%;
  bottom: 140px;
  width: clamp(180px, 22vw, 320px);
  height: auto;
  z-index: 4;
  pointer-events: none;
  animation: bl-float-y 6s ease-in-out infinite 0.4s;
}
.bl-about__mascot--mobile {
  display: none;
}
@media screen and (max-width: 767px) {
  .bl-about__mascot { display: none; }
  .bl-about__mascot--mobile {
    display: block;
    width: 130px;
    height: auto;
    margin: 28px auto 0;
  }
}

/* Richiamo card verso la pagina "Chi Siamo" — dentro il testo About in home */
.bl-about-teaser {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 32px;
  padding: 12px;
  max-width: 420px;
  background: var(--brand-colors--background-color, #f8f5f1);
  border-radius: 20px;
  text-decoration: none;
  transition: box-shadow .2s ease, transform .2s ease;
}
.bl-about-teaser:hover {
  box-shadow: 0 12px 32px rgba(72,40,31,0.12);
  transform: translateY(-2px);
}
.bl-about-teaser__media {
  flex-shrink: 0;
  width: 68px;
  height: 68px;
  border-radius: 14px;
  overflow: hidden;
}
.bl-about-teaser__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.bl-about-teaser__text {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.bl-about-teaser__label {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: rgba(72,40,31,0.5);
}
.bl-about-teaser__title {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: 17px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
}
@media screen and (max-width: 767px) {
  .bl-about-teaser { max-width: 100%; margin-top: 24px; }
}

/* ── Spennellata decorativa — richiamo grafico, piccolo accento
   d'angolo nelle sezioni a sfondo bianco (Chi Siamo, Testimonianze),
   lontano da testo/card per non sovrapporsi a nulla. ── */
.bl-brush-accent {
  position: absolute;
  pointer-events: none;
  z-index: 1;
  opacity: 0.85;
}
.bl-brush-accent--about {
  top: 32px;
  left: 24px;
  transform: rotate(-15deg);
  width: clamp(80px, 9vw, 140px);
  height: auto;
}
.bl-brush-accent--testimonials {
  top: 32px;
  right: 24px;
  transform: rotate(12deg) scaleX(-1);
  width: clamp(80px, 9vw, 140px);
  height: auto;
}
@media screen and (max-width: 767px) {
  .bl-brush-accent--about,
  .bl-brush-accent--testimonials { width: 64px; top: 16px; }
}

/* Spazio sotto il blocco recensioni Google (Trustindex) */
.bl-trustindex-wrap { margin-bottom: 48px; }

/* ── 5. LIGHTBOX ──────────────────────────────────────────────── */
.bl-lightbox {
  position: fixed; inset: 0; z-index: 99000;
  display: none; align-items: center; justify-content: center;
}
.bl-lightbox.is-open { display: flex; }
.bl-lightbox__overlay { position: absolute; inset: 0; background: rgba(0,0,0,0.93); cursor: pointer; }
.bl-lightbox__box {
  position: relative; z-index: 1;
  width: 90%; max-width: 960px;
  background: #000; border-radius: 16px;
  overflow: hidden; box-shadow: 0 40px 100px rgba(0,0,0,0.7);
}
.bl-lightbox__close {
  position: absolute; top: 12px; right: 12px; z-index: 2;
  width: 36px; height: 36px;
  background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.18);
  border-radius: 50%; color: #fff;
  display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background 0.2s;
}
.bl-lightbox__close:hover { background: rgba(255,255,255,0.2); }
.bl-lightbox__ratio { position: relative; padding-bottom: 56.25%; height: 0; }
.bl-lightbox__ratio iframe { position: absolute; inset: 0; width: 100%; height: 100%; }

/* ── 6. SCROLL TO TOP ─────────────────────────────────────────── */
.marago-scroll-top {
  position: fixed; bottom: 28px; right: 28px;
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--brand-colors--secondary, #fcd5cd);
  color: var(--brand-colors--primary, #48281f);
  border: none; cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  box-shadow: 0 4px 20px rgba(0,0,0,0.2); z-index: 8000;
  opacity: 0; pointer-events: none;
  transition: opacity 0.3s, transform 0.3s, background 0.2s;
  transform: translateY(14px);
}
.marago-scroll-top:hover { background: #e8a9a0; }

/* ── 7. NEWSLETTER FORM ───────────────────────────────────────── */
#bl-form-success { color: #3a9e3a; font-size: 14px; margin-top: 8px; }
#bl-form-error   { color: #c0392b; font-size: 14px; margin-top: 8px; }

/* ── 7b. PRODOTTI HOMEPAGE — rimuove lo sfocato sull'overlay hover ──
   Webflow mette backdrop-filter: blur(2px) su .product-button-wrap
   (l'overlay con il bottone "Acquista" sopra l'immagine prodotto). */
.product-button-wrap {
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
}

/* ── 8. WOOCOMMERCE — COMPLETE STYLING ──────────────────────────
   All pages need padding-top for the fixed navbar.
──────────────────────────────────────────────────────────────── */

/* Woo pages: compensate fixed navbar */
.woocommerce-page .woo-page-wrap,
.woocommerce-shop .woo-page-wrap,
.woocommerce-cart .woo-page-wrap,
.woocommerce-checkout .woo-page-wrap,
.single-product .woo-page-wrap,
body.woocommerce-page > .woo-page-wrap,
.woo-page-wrap { min-height: 60vh; }

/* ── SHOP HERO HEADER ── */
.woo-shop-hero {
  background: var(--brand-colors--primary, #48281f);
  padding: 120px 0px 0px;
  position: relative; overflow: hidden;
}
.woo-shop-hero__inner {
  max-width: 1440px; margin: 0 auto;
}
.woo-shop-hero__breadcrumb {
  font-size: 13px; color: rgba(255,255,255,0.4);
  margin-bottom: 28px; display: block;
}
.woo-shop-hero__breadcrumb a { color: rgba(255,255,255,0.55); transition: color 0.2s; }
.woo-shop-hero__breadcrumb a:hover { color: #fff; }
.woo-shop-hero__title {
  font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif;
  font-size: clamp(56px, 9vw, 110px);
  line-height: 0.88; letter-spacing: -2.5px;
  text-transform: uppercase; color: #fff;
  margin: 0 0 14px;
}
.woo-shop-hero__title span { color: var(--brand-colors--secondary, #fcd5cd); }
.woo-shop-hero__sub { color: rgba(255,255,255,0.5); font-size: 15px; }
.woo-shop-hero__wave { width: 100%; display: block; margin-top: -2px; position: relative; z-index: 2; }

/* ── SHOP TOOLBAR ── */
.woocommerce-result-count {
  color: rgba(72,40,31,0.45); font-size: 13px; margin: 0;
  font-weight: 500;
}
.woocommerce-ordering {
  display: flex; align-items: center;
}
.woocommerce-ordering select {
  background: #fff; border: 1.5px solid rgba(72,40,31,0.12);
  border-radius: 999px; color: #48281f;
  padding: 11px 44px 11px 20px; font-size: 13px; font-weight: 600;
  outline: none; cursor: pointer;
  appearance: none; -webkit-appearance: none;
  font-family: inherit; letter-spacing: 0.2px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23514638' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 18px center;
  transition: border-color 0.2s;
}
.woocommerce-ordering select:focus { border-color: rgba(72,40,31,0.4); }
/* Toolbar wrapper che WC genera */
.woocommerce-products-header { margin-bottom: 0; }
.woo-shop-content .woocommerce-notices-wrapper { margin-bottom: 24px; }
.woo-shop-content-inner > .woo-inner-wrap > *:first-child { margin-top: 0; }
/* Result count + ordering spacing */
.woo-shop-content .woocommerce-result-count,
.woo-shop-content .woocommerce-ordering { margin-bottom: 32px; }
/* No products state */
.woocommerce-info.woocommerce-no-products-found {
  background: #fff; border-radius: 24px; border-top: none !important;
  padding: 60px 40px; text-align: center; font-size: 17px;
  color: rgba(72,40,31,0.55); margin: 0;
}

/* ── SHOP PRODUCT GRID ── */
.woocommerce-page ul.products,
.woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 28px !important;
  list-style: none !important;
  padding: 0 !important; margin: 0 0 80px !important;
}
/* Elimina il clearfix ::before / ::after di WC — diventano grid item vuoti e creano spazio bianco */
.woocommerce-page ul.products::before,
.woocommerce-page ul.products::after,
.woocommerce ul.products::before,
.woocommerce ul.products::after {
  display: none !important;
  content: none !important;
}
/* WC aggiunge .first e .last alle li — annulliamo clear/margin residui */
.woocommerce-page ul.products li.product.first,
.woocommerce ul.products li.product.first {
  clear: none !important; margin-left: 0 !important;
}
.woocommerce-page ul.products li.product.last,
.woocommerce ul.products li.product.last {
  margin-right: 0 !important;
}
@media (max-width: 991px) {
  .woocommerce-page ul.products,
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 479px) {
  .woocommerce-page ul.products,
  .woocommerce ul.products {
    grid-template-columns: 1fr !important;
    max-width: 420px; margin-left: auto !important; margin-right: auto !important;
  }
}

/* Product card — width:100% e float:none annullano stili WC default (columns-N) */
.woocommerce-page ul.products li.product,
.woocommerce ul.products li.product {
  width: 100% !important; float: none !important;
  background: var(--brand-colors--primary, #48281f) !important;
  border-radius: 48px !important;
  overflow: hidden !important;
  padding: 0 !important; margin: 0 !important;
  width: 100% !important;
  float: none !important; clear: none !important; /* override WC default float:left */
  display: flex !important; flex-direction: column !important;
  transition: transform 0.32s ease, box-shadow 0.32s ease !important;
  position: relative !important;
}
.woocommerce-page ul.products li.product:hover,
.woocommerce ul.products li.product:hover {
  transform: translateY(-8px) !important;
  box-shadow: 0 24px 64px rgba(72,40,31,0.32) !important;
}

/* Product image */
.woocommerce-page ul.products li.product a img,
.woocommerce ul.products li.product a img {
  width: 100% !important; aspect-ratio: 1 / 1 !important;
  object-fit: cover !important; border-radius: 0 !important;
  display: block !important; margin: 0 !important;
  transition: transform 0.5s ease !important;
}
.woocommerce-page ul.products li.product:hover a img,
.woocommerce ul.products li.product:hover a img { transform: scale(1.05) !important; }

/* Product title */
.woocommerce-page ul.products li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product h2 {
  font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif !important;
  font-size: 26px !important; line-height: 1.1 !important;
  text-transform: uppercase !important; letter-spacing: -0.3px !important;
  color: #fff !important;
  padding: 20px 24px 4px !important; margin: 0 !important; text-align: center !important;
}

/* Product price */
.woocommerce-page ul.products li.product .price,
.woocommerce ul.products li.product .price {
  display: block !important; color: var(--brand-colors--secondary, #fcd5cd) !important;
  font-size: 20px !important; font-weight: 700 !important;
  text-align: center !important; padding: 0 24px 4px !important;
}
.woocommerce-page ul.products li.product .price del,
.woocommerce ul.products li.product .price del {
  color: rgba(255,255,255,0.28) !important; font-size: 14px !important;
}

/* Add to cart button */
.woocommerce-page ul.products li.product .button,
.woocommerce ul.products li.product .button,
.woocommerce-page ul.products li.product a.button,
.woocommerce ul.products li.product a.button {
  display: block !important;
  background: var(--brand-colors--secondary, #fcd5cd) !important;
  color: var(--brand-colors--primary, #48281f) !important;
  border-radius: 999px !important;
  padding: 13px 24px !important; font-size: 13px !important;
  font-weight: 700 !important; text-align: center !important;
  letter-spacing: 0.3px !important; text-transform: uppercase !important;
  margin: 14px 24px 24px !important; border: none !important;
  cursor: pointer !important; transition: background 0.2s, transform 0.15s !important;
  font-family: inherit !important;
}
.woocommerce-page ul.products li.product .button:hover,
.woocommerce ul.products li.product .button:hover {
  background: var(--brand-colors--primary, #48281f) !important; color: #fff !important; transform: scale(1.02) !important;
}

/* Price sale: del + ins */
.woocommerce-page ul.products li.product .price del,
.woocommerce ul.products li.product .price del {
  color: rgba(255,255,255,0.35) !important; font-size: 13px !important;
  font-weight: 400 !important; display: inline !important;
  text-decoration: line-through !important; margin-right: 4px !important;
}
.woocommerce-page ul.products li.product .price ins,
.woocommerce ul.products li.product .price ins {
  text-decoration: none !important; display: inline !important;
  color: var(--brand-colors--secondary, #fcd5cd) !important;
}

/* Sale badge — single product page */
.woocommerce.single-product span.onsale {
  position: absolute !important;
  top: 16px !important; left: 16px !important; right: auto !important;
  margin: 0 !important;
  background: var(--brand-colors--secondary, #fcd5cd) !important;
  color: var(--brand-colors--primary, #48281f) !important;
  border-radius: 999px !important;
  padding: 6px 16px !important;
  font-size: 11px !important; font-weight: 900 !important;
  text-transform: uppercase !important; letter-spacing: 1px !important;
  z-index: 10 !important; min-height: 0 !important; min-width: 0 !important;
  line-height: 1.5 !important;
}

/* Sale badge — premium pill, top-right */
.woocommerce-page ul.products li.product .onsale,
.woocommerce ul.products li.product .onsale {
  position: absolute !important; top: 16px !important; right: 16px !important;
  left: auto !important;
  background: var(--brand-colors--secondary, #fcd5cd) !important;
  color: var(--brand-colors--primary, #48281f) !important;
  border-radius: 999px !important; padding: 5px 14px !important;
  font-size: 10px !important; font-weight: 900 !important;
  text-transform: uppercase !important; letter-spacing: 1px !important;
  z-index: 2 !important; margin: 0 !important; min-height: 0 !important;
  line-height: 1.5 !important; box-shadow: 0 2px 12px rgba(252,213,205,0.35) !important;
}

/* Pagination */
.woocommerce-pagination { margin: 20px 0 60px; text-align: center; }
.woocommerce-pagination ul.page-numbers { display: inline-flex; gap: 8px; list-style: none; padding: 0; margin: 0; }
.woocommerce-pagination ul.page-numbers li { display: flex; }
.woocommerce-pagination ul.page-numbers li a,
.woocommerce-pagination ul.page-numbers li span {
  display: flex; align-items: center; justify-content: center;
  width: 42px; height: 42px; border-radius: 50%;
  border: 2px solid rgba(72,40,31,0.14);
  color: #48281f; font-size: 14px; font-weight: 600;
  transition: all 0.2s; text-decoration: none;
}
.woocommerce-pagination ul.page-numbers li a:hover { border-color: #48281f; background: #48281f; color: #fff; }
.woocommerce-pagination ul.page-numbers li span.current { background: #48281f; color: #fff; border-color: #48281f; }

/* ── SINGLE PRODUCT PAGE ── */
.single-product .woo-page-wrap { padding: 0; }

.woo-single-hero {
  background: var(--brand-colors--primary, #48281f);
  padding: 100px 40px 0;
}
.woo-single-hero__inner { max-width: 1440px; margin: 0 auto; padding-bottom: 36px; }
.woo-single-breadcrumb {
  font-size: 13px; color: rgba(255,255,255,0.4); display: block;
}
.woo-single-breadcrumb a { color: rgba(255,255,255,0.6); transition: color 0.2s; }
.woo-single-breadcrumb a:hover { color: #fff; }
.woocommerce-breadcrumb { font-size: 13px; color: rgba(72,40,31,0.45); margin-bottom: 32px; display: block; }
.woocommerce-breadcrumb a { color: rgba(72,40,31,0.65); transition: color 0.2s; }
.woocommerce-breadcrumb a:hover { color: #48281f; }

/* ─── Product layout: 2 colonne (gallery sx, summary dx) ─── */
.woocommerce.single-product .product {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 56px !important;
  align-items: flex-start !important;
  padding: 60px 0 0 !important;
}
.woocommerce.single-product .product > .woocommerce-notices-wrapper {
  flex: 0 0 100% !important;
  order: -1 !important;
}
.woocommerce.single-product .product > .woocommerce-product-gallery {
  flex: 0 0 calc(50% - 28px) !important;
  min-width: 0 !important;
}
.woocommerce.single-product .product > .summary.entry-summary {
  flex: 1 1 calc(50% - 28px) !important;
  min-width: 0 !important;
}
/* Tabs, related, upsells: larghezza piena */
.woocommerce.single-product .product > .woocommerce-tabs,
.woocommerce.single-product .product > .related.products,
.woocommerce.single-product .product > .up-sells.upsells {
  flex: 0 0 100% !important;
}

/* ─── Gallery ─── */

/* Gallery container */
.single-product .woocommerce-product-gallery {
  border-radius: 32px !important;
  overflow: hidden !important;
  background: rgba(72,40,31,0.05) !important;
  position: sticky !important;
  top: 100px !important;
  align-self: start !important;
}

/* flex-viewport: overflow hidden basta; NON imporre width — flexslider lo gestisce */
.single-product .woocommerce-product-gallery .flex-viewport {
  overflow: hidden !important;
}

/* __wrapper e __image: NON toccare width/display.
   Flexslider imposta via JS inline style:
   - __wrapper.width = n_slides * 100%
   - ogni __image.width calcolata proporzionalmente
   Se forziamo width:100%!important sugli __image,
   100% di un __wrapper al 400% = immagine "zoomata" */

/* Solo il link: block per eliminare il gap inline */
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image a {
  display: block !important;
  line-height: 0 !important;
}

/* img: larghezza piena dello slide, altezza naturale — nessuno zoom */
.single-product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
  width: 100% !important;
  height: auto !important;
  object-fit: initial !important;
  display: block !important;
  border-radius: 0 !important;
}

/* Placeholder senza immagine */
.single-product .woocommerce-product-gallery--without-images {
  aspect-ratio: 1 / 1 !important;
}
.single-product .woocommerce-product-gallery--without-images img {
  width: 100% !important; height: 100% !important; object-fit: cover !important;
}
/* Zoom trigger */
.single-product .woocommerce-product-gallery__trigger {
  position: absolute !important; top: 14px !important; right: 14px !important; z-index: 10 !important;
  width: 38px !important; height: 38px !important; border-radius: 50% !important;
  background: rgba(255,255,255,0.9) !important; backdrop-filter: blur(8px) !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  transition: background 0.2s !important; box-shadow: 0 2px 12px rgba(0,0,0,0.12) !important;
}
.single-product .woocommerce-product-gallery__trigger:hover { background: #fff !important; }
.single-product .woocommerce-product-gallery__trigger img { width: 16px !important; height: 16px !important; display: block !important; }
/* Thumbnails */
.single-product ol.flex-control-thumbs,
.single-product ul.flex-control-thumbs {
  display: grid !important; grid-template-columns: repeat(5, 1fr) !important;
  gap: 6px !important; padding: 8px !important; margin: 0 !important;
  list-style: none !important; background: rgba(72,40,31,0.04) !important;
}
/* WC default: li { float: left; width: 25% } — annulliamo per il nostro grid */
.single-product ol.flex-control-thumbs li,
.single-product ul.flex-control-thumbs li {
  float: none !important;
  width: 100% !important;
  clear: none !important;
  margin: 0 !important;
}
.single-product ol.flex-control-thumbs img,
.single-product ul.flex-control-thumbs img {
  border-radius: 8px !important; cursor: pointer !important; opacity: 0.45 !important;
  width: 100% !important; height: auto !important; aspect-ratio: 1 / 1 !important;
  object-fit: cover !important;
  transition: opacity 0.2s, border-color 0.2s !important; display: block !important;
  border: 2px solid transparent !important;
}
.single-product ol.flex-control-thumbs img:hover,
.single-product ul.flex-control-thumbs img:hover { opacity: 0.75 !important; }
.single-product ol.flex-control-thumbs img.flex-active,
.single-product ul.flex-control-thumbs img.flex-active {
  opacity: 1 !important; border-color: var(--brand-colors--secondary, #fcd5cd) !important;
}

/* ─── Summary ─── */
.single-product .summary.entry-summary {
  display: flex !important; flex-direction: column !important; gap: 18px !important;
  padding-top: 8px !important;
}
.single-product .product_title.entry-title {
  font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif !important;
  font-size: clamp(36px, 4.5vw, 64px) !important;
  line-height: 0.92 !important; letter-spacing: -1.5px !important;
  color: var(--brand-colors--primary, #48281f) !important;
  text-transform: uppercase !important; margin: 0 !important;
}
.single-product .woocommerce-product-rating { display: flex !important; align-items: center !important; gap: 10px !important; }
.single-product .star-rating { color: var(--brand-colors--secondary, #fcd5cd) !important; font-size: 14px !important; }
/* Prezzo principale (range per variabili, prezzo fisso per semplici) */
.single-product .summary > .price {
  font-size: 36px !important; font-weight: 800 !important;
  color: var(--brand-colors--secondary, #fcd5cd) !important;
  display: block !important; line-height: 1 !important;
}
.single-product .summary > .price del {
  color: rgba(72,40,31,0.3) !important; font-size: 20px !important;
  font-weight: 400 !important; display: inline !important;
}
.single-product .summary > .price ins { text-decoration: none !important; display: inline !important; }
/* Descrizione breve */
.single-product .woocommerce-product-details__short-description {
  font-size: 15px !important; line-height: 1.75 !important;
  color: var(--brand-colors--primary, #48281f) !important; opacity: 0.75 !important;
  border-left: 3px solid var(--brand-colors--secondary, #fcd5cd) !important;
  padding-left: 16px !important; margin: 0 !important;
}

/* ─── Add-to-cart: PRODOTTO SEMPLICE ─── */
/* form.cart su prodotto semplice (no .variations_form) */
.single-product form.cart:not(.variations_form) {
  display: flex !important; align-items: center !important;
  gap: 14px !important; flex-wrap: wrap !important; margin: 0 !important;
}
/* ─── PRODOTTO VARIABILE: form esterno = block ─── */
.single-product form.variations_form.cart {
  display: block !important; margin: 0 !important;
}
/* Tabella varianti */
.single-product table.variations {
  width: 100% !important; border-collapse: collapse !important; margin-bottom: 16px !important;
}
.single-product table.variations tr { border-bottom: 1px solid rgba(72,40,31,0.06) !important; }
.single-product table.variations td.label {
  padding: 12px 0 !important; width: 110px !important; vertical-align: middle !important;
}
.single-product table.variations td.label label {
  font-size: 11px !important; font-weight: 800 !important; letter-spacing: 1px !important;
  text-transform: uppercase !important; color: rgba(72,40,31,0.45) !important; margin: 0 !important;
}
.single-product table.variations td.value {
  padding: 12px 0 !important; vertical-align: middle !important;
}
/* Select variante — stile custom, immune a appearance default */
.single-product table.variations select {
  width: 100% !important; max-width: 320px !important;
  appearance: none !important; -webkit-appearance: none !important;
  border: 2px solid rgba(72,40,31,0.15) !important; border-radius: 12px !important;
  padding: 12px 44px 12px 16px !important;
  font-size: 14px !important; font-weight: 600 !important;
  color: #48281f !important; background-color: #f8f5f1 !important;
  outline: none !important; cursor: pointer !important; font-family: inherit !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23514638' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat: no-repeat !important;
  background-position: right 16px center !important;
  transition: border-color 0.2s !important;
}
.single-product table.variations select:focus { border-color: #48281f !important; }
.single-product .reset_variations {
  display: inline-block !important; margin-top: 6px !important;
  font-size: 12px !important; color: rgba(72,40,31,0.4) !important;
  text-decoration: underline !important; cursor: pointer !important; transition: color 0.2s !important;
}
.single-product .reset_variations:hover { color: #48281f !important; }
/* Zona variazione dinamica */
.single-product .single_variation_wrap { margin-top: 4px !important; }
.single-product .woocommerce-variation { margin-bottom: 16px !important; }
.single-product .woocommerce-variation-price .price {
  font-size: 34px !important; font-weight: 800 !important;
  color: var(--brand-colors--secondary, #fcd5cd) !important;
  display: block !important; line-height: 1 !important;
}
.single-product .woocommerce-variation-price .price del {
  font-size: 18px !important; font-weight: 400 !important;
  color: rgba(72,40,31,0.3) !important; display: inline !important;
}
.single-product .woocommerce-variation-availability p {
  font-size: 13px !important; margin: 4px 0 0 !important; font-weight: 600 !important;
}
.single-product .woocommerce-variation-availability .in-stock  { color: #3a9e3a !important; }
.single-product .woocommerce-variation-availability .out-of-stock { color: #e74c3c !important; }
/* Add-to-cart zona interna ai variabili */
.single-product .woocommerce-variation-add-to-cart.variations_button {
  display: flex !important; align-items: center !important;
  gap: 14px !important; flex-wrap: wrap !important;
}

/* ─── Quantità con +/- button (aggiunto da JS) ─── */
/* Si applica sia alla pagina prodotto che al carrello */
.quantity { display: flex !important; align-items: center !important; gap: 0 !important; }
.quantity input.qty {
  border: 2px solid rgba(72,40,31,0.14) !important;
  border-left: none !important; border-right: none !important;
  border-radius: 0 !important;
  padding: 0 12px !important; width: 56px !important; height: 48px !important;
  text-align: center !important; font-size: 16px !important; font-weight: 700 !important;
  background: #f8f5f1 !important; color: #48281f !important;
  outline: none !important; -moz-appearance: textfield !important;
}
.quantity input.qty::-webkit-inner-spin-button,
.quantity input.qty::-webkit-outer-spin-button { -webkit-appearance: none !important; }
.qty-btn {
  background: rgba(72,40,31,0.07) !important; border: 2px solid rgba(72,40,31,0.14) !important;
  color: #48281f !important; cursor: pointer !important;
  width: 44px !important; height: 48px !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  font-size: 20px !important; font-weight: 400 !important; line-height: 1 !important;
  transition: background 0.15s, color 0.15s !important; flex-shrink: 0 !important;
  padding: 0 !important; font-family: inherit !important;
}
.qty-btn.qty-minus { border-radius: 12px 0 0 12px !important; }
.qty-btn.qty-plus  { border-radius: 0 12px 12px 0 !important; }
.qty-btn:hover { background: #48281f !important; color: #fff !important; border-color: #48281f !important; }
/* Carrello: dimensioni leggermente ridotte */
.woocommerce-cart .quantity input.qty { width: 50px !important; height: 42px !important; }
.woocommerce-cart .qty-btn { width: 38px !important; height: 42px !important; font-size: 18px !important; }
/* Pulsante aggiungi al carrello */
.single-product button.single_add_to_cart_button,
.single-product input.single_add_to_cart_button {
  background: var(--brand-colors--primary, #48281f) !important;
  color: #fff !important; border: none !important;
  border-radius: 12px !important; padding: 15px 40px !important;
  font-size: 14px !important; font-weight: 800 !important;
  letter-spacing: 0.5px !important; text-transform: uppercase !important;
  cursor: pointer !important; transition: background 0.2s, transform 0.15s !important;
  flex: 1 !important; font-family: inherit !important;
  min-height: 52px !important;
}
.single-product button.single_add_to_cart_button:hover {
  background: #3e2d24 !important; transform: translateY(-2px) !important;
}
/* Pulsante disabilitato (variazione non selezionata) */
.single-product button.single_add_to_cart_button:disabled {
  opacity: 0.45 !important; cursor: not-allowed !important; transform: none !important;
}
/* Meta (SKU, categorie) */
.single-product .product_meta {
  font-size: 13px !important; color: rgba(72,40,31,0.45) !important;
  padding-top: 8px !important; border-top: 1px solid rgba(72,40,31,0.08) !important;
}
.single-product .product_meta span { display: block !important; margin-bottom: 4px !important; }
.single-product .product_meta a { color: rgba(72,40,31,0.6) !important; text-decoration: underline !important; }

/* Tabs, related products, upsells → già a larghezza piena via flex: 0 0 100% sopra */
/* Related / upsell card grid — 3 columns (override WC columns-4 default) */
.single-product .related.products ul.products,
.single-product .up-sells.upsells ul.products {
  grid-template-columns: repeat(3, 1fr) !important;
  margin-bottom: 0 !important;
}
@media (max-width: 860px) {
  .single-product .related.products ul.products,
  .single-product .up-sells.upsells ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}
@media (max-width: 479px) {
  .single-product .related.products ul.products,
  .single-product .up-sells.upsells ul.products {
    grid-template-columns: 1fr !important;
  }
}

/* Product tabs */
.single-product .woocommerce-tabs {
  margin-top: 0 !important;
  border-top: 1px solid rgba(72,40,31,0.1) !important;
  padding-top: 48px !important;
  padding-bottom: 48px !important;
}
.single-product .woocommerce-tabs ul.tabs {
  list-style: none !important; padding: 0 !important; margin: 0 0 40px !important;
  display: flex !important; gap: 0 !important;
  border-bottom: 2px solid rgba(72,40,31,0.08) !important;
}
.single-product .woocommerce-tabs ul.tabs li { margin: 0 !important; }
.single-product .woocommerce-tabs ul.tabs li a {
  display: block !important; padding: 14px 28px !important;
  font-size: 11px !important; font-weight: 800 !important; letter-spacing: 1.2px !important;
  text-transform: uppercase !important; color: rgba(72,40,31,0.35) !important;
  transition: color 0.2s !important; border-bottom: 2px solid transparent !important;
  margin-bottom: -2px !important;
}
.single-product .woocommerce-tabs ul.tabs li.active a {
  color: #48281f !important; border-bottom-color: var(--brand-colors--secondary, #fcd5cd) !important;
}
.single-product .woocommerce-tabs .panel {
  font-size: 15px !important; line-height: 1.78 !important;
  color: rgba(72,40,31,0.75) !important; max-width: 800px !important;
}
.single-product .woocommerce-tabs .panel h2,
.single-product .woocommerce-tabs .panel h3 {
  font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif !important;
  font-size: 28px !important; text-transform: uppercase !important; margin: 0 0 16px !important;
}

/* Related products and upsells — sotto tutta la griglia */
.single-product .related.products,
.single-product .up-sells.upsells {
  padding: 60px 0 80px !important;
  border-top: 1px solid rgba(72,40,31,0.08) !important;
}
.single-product .related h2,
.single-product .upsells h2,
.single-product .related.products > h2,
.single-product .up-sells.upsells > h2 {
  font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif !important;
  font-size: clamp(36px, 5vw, 56px) !important; color: #48281f !important;
  margin: 0 0 40px !important; text-transform: uppercase !important;
  letter-spacing: -1px !important; line-height: 0.92 !important;
}

/* ── CART PAGE ── */
.woo-cart-hero {
  background: var(--brand-colors--primary, #48281f);
  padding: 100px 40px 56px; position: relative;
}
.woo-cart-hero__inner { max-width: 1440px; margin: 0 auto; }
.woo-cart-hero__title {
  font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif;
  font-size: clamp(56px, 8vw, 96px);
  line-height: 0.9; letter-spacing: -2px;
  text-transform: uppercase; color: #fff; margin: 0;
}
.woo-cart-hero__title span { color: var(--brand-colors--secondary, #fcd5cd); }

.woo-cart-content { padding: 48px 0 80px; }
.woo-cart-content-inner { max-width: 1360px; margin: 0 auto; padding: 0 40px; }

.woocommerce-cart table.cart { width: 100%; border-collapse: collapse; margin-bottom: 40px; }
.woocommerce-cart table.cart thead th { font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: 1.5px; color: rgba(72,40,31,0.45); border-bottom: 2px solid rgba(72,40,31,0.08); padding: 0 16px 14px; text-align: left; }
.woocommerce-cart table.cart td { padding: 22px 16px; border-bottom: 1px solid rgba(72,40,31,0.06); vertical-align: middle; }
.woocommerce-cart table.cart td.product-thumbnail img { width: 80px; height: 80px; object-fit: cover; border-radius: 16px; display: block; }
.woocommerce-cart table.cart td.product-name a { font-size: 16px; font-weight: 700; color: #48281f; transition: opacity 0.2s; }
.woocommerce-cart table.cart td.product-name a:hover { opacity: 0.65; }
.woocommerce-cart table.cart td.product-price, .woocommerce-cart table.cart td.product-subtotal { font-weight: 700; color: #48281f; font-size: 17px; }
.woocommerce-cart table.cart .quantity input { border: 2px solid rgba(72,40,31,0.1); border-radius: 999px; padding: 8px 14px; width: 80px; text-align: center; font-size: 15px; background: #f8f5f1; color: #48281f; outline: none; font-family: inherit; }
.woocommerce-cart .actions { display: flex; justify-content: flex-end; gap: 12px; padding-top: 8px; }
.woocommerce-cart .actions input[name="update_cart"] { background: transparent; border: 2px solid rgba(72,40,31,0.18); color: #48281f; border-radius: 999px; padding: 10px 28px; font-size: 13px; font-weight: 700; cursor: pointer; transition: all 0.2s; font-family: inherit; }
.woocommerce-cart .actions input[name="update_cart"]:hover { background: #48281f; color: #fff; border-color: #48281f; }
.woocommerce-cart .cart-collaterals { max-width: 480px; margin-left: auto; margin-top: 12px; }
.woocommerce-cart .cart_totals { background: #f8f5f1; border-radius: 32px; padding: 36px; }
.woocommerce-cart .cart_totals h2 { font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif; font-size: 36px; color: #48281f; text-transform: uppercase; margin-bottom: 24px; }
.woocommerce-cart .cart_totals table { width: 100%; border-collapse: collapse; margin-bottom: 24px; }
.woocommerce-cart .cart_totals table td, .woocommerce-cart .cart_totals table th { padding: 14px 0; border-bottom: 1px solid rgba(72,40,31,0.07); color: #48281f; font-size: 15px; }
.woocommerce-cart .cart_totals .order-total th, .woocommerce-cart .cart_totals .order-total td { border-bottom: none; padding-top: 20px; font-size: 20px; font-weight: 800; }
.woocommerce-cart a.checkout-button, .woocommerce-cart .wc-proceed-to-checkout a.button {
  display: block !important; background: #48281f !important; color: #fff !important;
  border-radius: 999px !important; padding: 18px 36px !important;
  font-size: 15px !important; font-weight: 700 !important; text-align: center !important;
  text-transform: uppercase !important; letter-spacing: 0.4px !important;
  transition: background 0.2s, transform 0.2s !important;
  text-decoration: none !important; border: none !important; cursor: pointer !important;
  font-family: inherit !important;
}
.woocommerce-cart a.checkout-button:hover, .woocommerce-cart .wc-proceed-to-checkout a.button:hover { background: #5a3228 !important; transform: translateY(-2px) !important; }

/* ── CHECKOUT PAGE ── */
.woo-checkout-hero { background: var(--brand-colors--primary, #48281f); padding: 100px 40px 56px; }
.woo-checkout-hero__inner { max-width: 1440px; margin: 0 auto; }
.woo-checkout-hero__title { font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif; font-size: clamp(56px, 8vw, 96px); line-height: 0.9; letter-spacing: -2px; text-transform: uppercase; color: #fff; margin: 0; }
.woo-checkout-hero__title span { color: var(--brand-colors--secondary, #fcd5cd); }
.woo-checkout-content { padding: 48px 0 80px; }
.woo-checkout-content-inner { max-width: 1360px; margin: 0 auto; padding: 0 40px; }

.woocommerce-checkout .col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; }
@media (max-width: 767px) { .woocommerce-checkout .col2-set { grid-template-columns: 1fr; } }
.woocommerce-checkout .woocommerce-billing-fields h3, .woocommerce-checkout .woocommerce-shipping-fields h3, .woocommerce-checkout #order_review_heading { font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif; font-size: 28px; color: #48281f; text-transform: uppercase; margin: 32px 0 20px; }
.woocommerce-checkout form .form-row { margin-bottom: 16px; }
.woocommerce-checkout form .form-row label { display: block; font-size: 11px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: rgba(72,40,31,0.5); margin-bottom: 8px; }
.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 {
  border: 2px solid rgba(72,40,31,0.1); border-radius: 12px;
  padding: 13px 17px; width: 100%; font-size: 15px;
  background: #fff; color: #48281f; outline: none;
  transition: border-color 0.2s; font-family: inherit;
}
.woocommerce-checkout form .form-row input:focus, .woocommerce-checkout form .form-row select:focus, .woocommerce-checkout form .form-row textarea:focus { border-color: #48281f; }
.woocommerce-checkout #order_review { background: #f8f5f1; border-radius: 32px; padding: 36px; }
.woocommerce-checkout table.shop_table { width: 100%; border-collapse: collapse; margin-bottom: 24px; }
.woocommerce-checkout table.shop_table td, .woocommerce-checkout table.shop_table th { padding: 14px 0; border-bottom: 1px solid rgba(72,40,31,0.07); color: #48281f; font-size: 15px; }
.woocommerce-checkout table.shop_table .order-total th, .woocommerce-checkout table.shop_table .order-total td { font-size: 20px; font-weight: 800; border-bottom: none; padding-top: 18px; }
.woocommerce-checkout #place_order { width: 100%; background: #48281f !important; color: #fff !important; border-radius: 999px !important; padding: 18px 36px !important; font-size: 15px !important; font-weight: 700 !important; border: none !important; cursor: pointer !important; text-transform: uppercase !important; letter-spacing: 0.5px !important; transition: background 0.2s, transform 0.2s !important; margin-top: 10px !important; font-family: inherit !important; }
.woocommerce-checkout #place_order:hover { background: #5a3228 !important; transform: translateY(-2px) !important; }

/* ── WOO NOTICES — stile premium, visibili e puliti ── */
.woocommerce-notices-wrapper { position: relative !important; z-index: 50 !important; }
/* Successo / Info */
.woocommerce-message,
.woocommerce-info {
  background: #fff !important;
  border: none !important;
  border-left: 4px solid var(--brand-colors--secondary, #fcd5cd) !important;
  border-radius: 12px !important;
  padding: 16px 20px !important;
  margin-bottom: 24px !important;
  color: #48281f !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  flex-wrap: wrap !important;
  list-style: none !important;
  box-shadow: 0 4px 24px rgba(72,40,31,0.1) !important;
}
/* Errore */
.woocommerce-error {
  background: #fff0ee !important;
  border: none !important;
  border-left: 4px solid #e74c3c !important;
  border-radius: 12px !important;
  padding: 16px 20px !important;
  margin-bottom: 24px !important;
  color: #c0392b !important;
  font-size: 14px !important;
  list-style: none !important;
  box-shadow: 0 4px 24px rgba(231,76,60,0.1) !important;
}
.woocommerce-error li { padding: 4px 0 !important; }
/* Pulsante dentro le notice */
.woocommerce-message a.button,
.woocommerce-info a.button {
  background: var(--brand-colors--primary, #48281f) !important;
  color: #fff !important; border-radius: 999px !important;
  padding: 9px 22px !important; font-size: 12px !important; font-weight: 800 !important;
  text-transform: uppercase !important; letter-spacing: 0.5px !important;
  text-decoration: none !important; white-space: nowrap !important;
  transition: background 0.2s !important;
}
.woocommerce-message a.button:hover { background: #3e2d24 !important; }
/* Testo del messaggio — prende lo spazio rimanente */
.woocommerce-message::before,
.woocommerce-info::before { display: none !important; content: none !important; }

/* ── 9. NAVBAR — colore unico ovunque (rimosso rule condizionale, ora gestito dalla
   regola globale .navbar.w-nav in cima al file) ── */

/* ── PAGE.PHP — Hero e contenuto ─────────────────────────────────── */
.bl-page-hero {
  background: var(--brand-colors--primary, #48281f);
  padding: 100px 40px 60px;
  position: relative;
  overflow: hidden;
}
.bl-page-hero__inner {
  max-width: 1440px;
  margin: 0 auto;
}
.bl-page-hero__title {
  font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif;
  font-size: clamp(56px, 8vw, 96px);
  line-height: 0.9;
  letter-spacing: -2px;
  text-transform: uppercase;
  color: #fff;
  margin: 0;
}
.bl-page-hero__title span { color: var(--brand-colors--secondary, #fcd5cd); }

.bl-page-content {
  background: var(--brand-colors--background-color, #f8f5f1);
  padding: 60px 0 100px;
}
.bl-page-content__inner {
  max-width: 1300px;
  margin: 0 auto;
  padding: 0 40px;
}
.bl-page-body { font-size: 16px; line-height: 1.78; color: #48281f; }
.bl-page-body h2 { font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif; font-size: 40px; text-transform: uppercase; margin: 40px 0 16px; }
.bl-page-body h3 { font-size: 22px; font-weight: 700; margin: 32px 0 12px; }
.bl-page-body a { color: var(--brand-colors--secondary, #fcd5cd); text-decoration: underline; }
.bl-page-body img { max-width: 100%; border-radius: 20px; }

@media (max-width: 991px) {
  .bl-page-hero { padding: 100px 24px 48px; }
  .bl-page-content__inner { padding: 0 24px; }
}

/* ── WOOCOMMERCE — CONTENITORI PAGINE ────────────────────────────── */
.woo-shop-content    { background: #ffffff; padding: 48px 40px 80px; }
.woo-shop-content-inner { max-width: 1440px; margin: 0 auto; }
.woo-product-content { background: var(--brand-colors--background-color, #f8f5f1); overflow: visible; padding-bottom: 80px; }
.woo-product-content-inner { max-width: 1440px; margin: 0 auto; padding: 0 40px; overflow: visible; }
.woo-account-content { background: var(--brand-colors--background-color, #f8f5f1); padding: 48px 0 80px; }
.woo-account-content-inner { max-width: 1440px; margin: 0 auto; padding: 0 40px; }
.woo-generic-content { background: var(--brand-colors--background-color, #f8f5f1); padding: 60px 0 100px; }
.woo-generic-content-inner { max-width: 1440px; margin: 0 auto; padding: 0 40px; }
/* Wrapper neutro aggiunto da functions.php hooks */
.woo-inner-wrap { width: 100%; }

@media (max-width: 991px) {
  .woo-shop-content, .woo-product-content-inner,
  .woo-account-content-inner, .woo-generic-content-inner { padding-left: 24px; padding-right: 24px; }
}

/* ── 10. RESPONSIVE HELPERS ── */
@media (max-width: 991px) {
  .woo-shop-hero { padding: 120px 0 0; }
  .woo-cart-hero { padding: 100px 24px 48px; }
  .woo-checkout-hero { padding: 100px 24px 48px; }
  .woo-cart-content-inner, .woo-checkout-content-inner { padding: 0 24px; }
  .woocommerce.single-product .product { padding: 40px 24px 60px !important; }
  .woo-single-hero { padding: 100px 24px 0; }
  .woo-single-hero__inner { padding-bottom: 24px; }

  /* ── Mobile single product: colonna, gallery sempre prima ── */
  .woocommerce.single-product .product {
    flex-direction: column !important;
    gap: 24px !important;
    padding: 32px 24px 0 !important;
  }
  .woocommerce.single-product .product > .woocommerce-product-gallery {
    flex: 0 0 100% !important;
    width: 100% !important;
    order: 1 !important;
  }
  .woocommerce.single-product .product > .summary.entry-summary {
    flex: 0 0 100% !important;
    width: 100% !important;
    order: 2 !important;
  }
  .woocommerce.single-product .product > .woocommerce-tabs,
  .woocommerce.single-product .product > .related.products,
  .woocommerce.single-product .product > .up-sells.upsells {
    order: 3 !important;
  }

  /* Galleria: no sticky su mobile, bordi ridotti */
  .single-product .woocommerce-product-gallery {
    position: static !important;
    border-radius: 24px !important;
  }

  /* Tabs: collassabili su mobile — titolo tab cliccabile, pannello espandibile */
  .single-product .woocommerce-tabs ul.tabs {
    flex-direction: column !important;
    border-bottom: none !important;
    gap: 0 !important;
    margin-bottom: 0 !important;
  }
  .single-product .woocommerce-tabs ul.tabs li {
    border-bottom: 1px solid rgba(72,40,31,0.08) !important;
  }
  .single-product .woocommerce-tabs ul.tabs li a {
    padding: 16px 0 !important;
    border-bottom: none !important;
    font-size: 12px !important;
    display: flex !important; align-items: center !important;
    justify-content: space-between !important;
  }
  .single-product .woocommerce-tabs ul.tabs li a::after {
    content: '+' !important;
    font-size: 20px !important; font-weight: 300 !important;
    color: rgba(72,40,31,0.4) !important;
  }
  .single-product .woocommerce-tabs ul.tabs li.active a::after {
    content: '−' !important;
  }
  .single-product .woocommerce-tabs .panel { max-width: 100% !important; padding-bottom: 16px !important; }

  /* Sezione relazionati: 2 colonne su tablet, 1 su small */
  .single-product .related.products ul.products,
  .single-product .up-sells.upsells ul.products {
    grid-template-columns: repeat(2, 1fr) !important;
  }
  @media (max-width: 479px) {
    .single-product .related.products ul.products,
    .single-product .up-sells.upsells ul.products {
      grid-template-columns: 1fr !important;
    }
  }

  /* Separazione visiva chiara tra prodotto e sezioni sotto */
  .single-product .woocommerce-tabs { padding-top: 32px !important; padding-bottom: 32px !important; }
  .single-product .related.products,
  .single-product .up-sells.upsells { padding: 40px 0 60px !important; }

  /* Reviews: assicuriamo siano nell'ordine corretto (dentro il tab, non flottanti) */
  .single-product #reviews { clear: both !important; }
  .woocommerce-product-content-inner { padding: 0 24px !important; }
}

/* ── 11. MY ACCOUNT PAGE ──────────────────────────────────────────── */
.woocommerce-account .woocommerce-MyAccount-navigation {
  width: 220px; float: left; margin-right: 40px;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul {
  list-style: none; padding: 0; margin: 0;
  background: var(--brand-colors--primary, #48281f);
  border-radius: 24px; overflow: hidden;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
  display: block; padding: 14px 22px;
  font-size: 13px; font-weight: 700; letter-spacing: 0.5px; text-transform: uppercase;
  color: rgba(255,255,255,0.75) !important;
  transition: color 0.2s, background 0.2s;
}
.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover { color: #fff !important; }
.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
.woocommerce-account .woocommerce-MyAccount-navigation ul li.woocommerce-MyAccount-navigation-link--active a {
  color: var(--brand-colors--secondary, #fcd5cd) !important;
  background: rgba(255,255,255,0.06);
}
.woocommerce-account .woocommerce-MyAccount-content {
  overflow: hidden; font-size: 15px; line-height: 1.7; color: #48281f;
}
@media (max-width: 767px) {
  .woocommerce-account .woocommerce-MyAccount-navigation { width: 100%; float: none; margin: 0 0 32px; }
}

/* ── 12. MINI-CART DRAWER ─────────────────────────────────────────── */
.bl-cart-drawer {
  position: fixed; inset: 0; z-index: 99100;
  pointer-events: none;
}
.bl-cart-drawer.is-open { pointer-events: auto; }

/* Overlay */
.bl-cart-drawer__overlay {
  position: absolute; inset: 0;
  background: rgba(0,0,0,0); cursor: pointer;
  transition: background 0.35s ease;
}
.bl-cart-drawer.is-open .bl-cart-drawer__overlay { background: rgba(0,0,0,0.5); }

/* Pannello laterale */
.bl-cart-drawer__panel {
  position: absolute; top: 0; right: 0; bottom: 0;
  width: min(440px, 95vw);
  background: var(--brand-colors--background-color, #f8f4ef);
  display: flex; flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.38s cubic-bezier(0.22, 1, 0.36, 1);
  box-shadow: -32px 0 100px rgba(0,0,0,0.22);
  overflow: hidden;
}
.bl-cart-drawer.is-open .bl-cart-drawer__panel { transform: translateX(0); }

/* Header drawer */
.bl-cart-drawer__header {
  display: flex; align-items: center; justify-content: space-between;
  padding: 28px 32px;
  background: var(--brand-colors--primary, #48281f);
  flex-shrink: 0;
}
.bl-cart-drawer__title-row { display: flex; align-items: center; gap: 12px; }
.bl-cart-drawer__title {
  font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif;
  font-size: 30px; line-height: 1; text-transform: uppercase;
  letter-spacing: -0.5px; color: #fff; margin: 0;
}
.bl-cart-drawer__badge {
  background: var(--brand-colors--secondary, #fcd5cd);
  color: var(--brand-colors--primary, #48281f);
  font-size: 11px; font-weight: 800;
  border-radius: 99px; min-width: 24px; height: 24px;
  display: inline-flex; align-items: center; justify-content: center; padding: 0 7px;
}
.bl-cart-drawer__close {
  width: 40px; height: 40px; border-radius: 50%;
  background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.2);
  color: #fff; display: flex; align-items: center; justify-content: center;
  cursor: pointer; transition: background 0.2s; flex-shrink: 0;
}
.bl-cart-drawer__close:hover { background: rgba(255,255,255,0.25); }

/* Body con scroll — WC output diretto */
.bl-cart-drawer__body {
  flex: 1; overflow-y: auto;
  display: flex; flex-direction: column;
  -webkit-overflow-scrolling: touch;
}
.bl-cart-drawer__body .widget_shopping_cart_content {
  display: flex; flex-direction: column; flex: 1;
}

/* Lista prodotti */
.bl-cart-drawer__body ul.woocommerce-mini-cart {
  list-style: none !important;
  padding: 0 !important; margin: 0 !important;
  flex: 1;
}

/* Singolo item — layout a griglia: [link prodotto | bottone remove]
   Riga 1: a:not(.remove) span col 1 | a.remove col 2
   Riga 2: span.quantity span col 1-2
   Nota: a.remove è il PRIMO figlio nell'HTML di WooCommerce, quindi
   usiamo grid-column/row espliciti per riposizionarlo in alto a destra. */
.bl-cart-drawer__body li.woocommerce-mini-cart-item {
  display: grid !important;
  grid-template-columns: 1fr 32px !important;
  grid-template-rows: auto auto !important;
  column-gap: 12px !important;
  row-gap: 8px !important;
  padding: 20px 24px !important;
  border-bottom: 1px solid rgba(72,40,31,0.08) !important;
  background: #fff;
  align-items: start !important;
}

/* Tasto rimuovi: posizionato esplicitamente in col 2, riga 1 */
.bl-cart-drawer__body li.woocommerce-mini-cart-item a.remove {
  grid-column: 2 !important;
  grid-row: 1 !important;
  position: static !important;
  top: auto !important; right: auto !important;
  width: 28px !important; height: 28px !important;
  border-radius: 50% !important;
  background: rgba(72,40,31,0.07) !important;
  color: rgba(72,40,31,0.45) !important;
  font-size: 16px !important; line-height: 1 !important;
  display: flex !important; align-items: center !important; justify-content: center !important;
  text-decoration: none !important; flex-shrink: 0 !important;
  transition: background 0.2s, color 0.2s !important;
  margin-top: 4px !important;
}
.bl-cart-drawer__body li.woocommerce-mini-cart-item a.remove:hover {
  background: #e74c3c !important; color: #fff !important;
}

/* Link prodotto (contiene img + testo titolo): col 1, riga 1 */
.bl-cart-drawer__body li.woocommerce-mini-cart-item > a:not(.remove) {
  grid-column: 1 !important;
  grid-row: 1 !important;
  display: flex !important;
  align-items: flex-start !important;
  gap: 12px !important;
  text-decoration: none !important;
  color: var(--brand-colors--primary, #48281f) !important;
  font-size: 14px !important; font-weight: 600 !important;
  line-height: 1.45 !important;
  min-width: 0 !important;
  padding-right: 0 !important;
}
.bl-cart-drawer__body li.woocommerce-mini-cart-item > a:not(.remove) img {
  width: 64px !important; height: 64px !important;
  object-fit: cover !important;
  border-radius: 12px !important;
  flex-shrink: 0 !important; display: block !important;
  background: rgba(72,40,31,0.06) !important;
}

/* Quantità + prezzo: col 1/2, riga 2 — allineata con il testo (non con l'img) */
.bl-cart-drawer__body li.woocommerce-mini-cart-item .quantity {
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  display: block !important;
  padding-left: 76px !important; /* 64px img + 12px gap */
  font-size: 12px !important; color: rgba(72,40,31,0.5) !important;
  font-weight: 500 !important;
}
.bl-cart-drawer__body li.woocommerce-mini-cart-item .quantity .woocommerce-Price-amount {
  font-weight: 700 !important;
  color: var(--brand-colors--secondary, #fcd5cd) !important;
}

/* Footer drawer: totale */
.bl-cart-drawer__body p.woocommerce-mini-cart__total {
  display: flex !important;
  justify-content: space-between !important; align-items: baseline !important;
  padding: 22px 32px 14px !important; margin: 0 !important;
  border-top: 2px solid rgba(72,40,31,0.1) !important;
  background: var(--brand-colors--background-color, #f8f4ef) !important;
}
.bl-cart-drawer__body p.woocommerce-mini-cart__total strong {
  font-size: 11px !important; font-weight: 800 !important;
  letter-spacing: 1px !important; text-transform: uppercase !important;
  color: rgba(72,40,31,0.45) !important;
}
.bl-cart-drawer__body p.woocommerce-mini-cart__total .woocommerce-Price-amount {
  font-size: 30px !important; font-weight: 800 !important;
  color: var(--brand-colors--primary, #48281f) !important;
  font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif !important;
  letter-spacing: -0.5px !important;
}

/* Bottoni */
.bl-cart-drawer__body p.woocommerce-mini-cart__buttons {
  display: flex !important; flex-direction: column !important; gap: 10px !important;
  padding: 12px 32px 36px !important; margin: 0 !important;
  background: var(--brand-colors--background-color, #f8f4ef) !important;
}
.bl-cart-drawer__body p.woocommerce-mini-cart__buttons a {
  display: block !important; text-align: center !important;
  border-radius: 999px !important; padding: 15px 24px !important;
  font-size: 12px !important; font-weight: 800 !important;
  letter-spacing: 0.8px !important; text-transform: uppercase !important;
  transition: background 0.2s, transform 0.15s !important;
  text-decoration: none !important; font-family: inherit !important;
}
.bl-cart-drawer__body p.woocommerce-mini-cart__buttons a.checkout {
  background: var(--brand-colors--primary, #48281f) !important;
  color: #fff !important;
}
.bl-cart-drawer__body p.woocommerce-mini-cart__buttons a.checkout:hover {
  background: #3e3328 !important; transform: translateY(-2px) !important;
}
.bl-cart-drawer__body p.woocommerce-mini-cart__buttons a:not(.checkout) {
  background: transparent !important;
  border: 2px solid rgba(72,40,31,0.2) !important;
  color: var(--brand-colors--primary, #48281f) !important;
}
.bl-cart-drawer__body p.woocommerce-mini-cart__buttons a:not(.checkout):hover {
  background: var(--brand-colors--primary, #48281f) !important;
  color: #fff !important; border-color: var(--brand-colors--primary, #48281f) !important;
}

/* Carrello vuoto */
.bl-cart-drawer__body p.woocommerce-mini-cart__empty-message {
  text-align: center !important;
  padding: 64px 32px !important;
  color: rgba(72,40,31,0.4) !important;
  font-size: 15px !important; line-height: 1.6 !important;
}

/* ── 13. WOO NOTICES FIX ───────────────────────────────────────────── */
/* WooCommerce notices inside our containers */
.woo-inner-wrap > .woocommerce-notices-wrapper { padding: 24px 0 0; }

/* ── 14. RESPONSIVE MICRO-FIX ─────────────────────────────────────── */
@media (max-width: 479px) {
  .bl-page-hero__title { font-size: clamp(42px, 11vw, 64px); letter-spacing: -1px; }
  .bl-cart-drawer__panel { width: 100vw; }
}

/* ── 15. PAGE HERO VARIANTI ────────────────────────────────────────── */
.bl-page-hero__label {
  font-size: 11px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase;
  color: var(--brand-colors--secondary, #fcd5cd); margin: 0 0 12px; display: block;
}
.bl-page-hero__sub {
  font-size: 17px; color: rgba(255,255,255,0.6);
  max-width: 560px; line-height: 1.6; margin: 16px 0 0;
}

/* ── 16. DIVENTA RIVENDITORE ────────────────────────────────────────── */
.bl-reseller-benefits { background: var(--brand-colors--background-color, #f8f4ef); padding: 80px 40px; }
.bl-reseller-benefits__inner { max-width: 1440px; margin: 0 auto; }
.bl-reseller-grid { display: grid; grid-template-columns: repeat(4,1fr); gap: 28px; }
@media (max-width: 991px) { .bl-reseller-grid { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 540px)  { .bl-reseller-grid { grid-template-columns: 1fr; } }

.bl-reseller-card {
  background: #fff; border-radius: 32px; padding: 36px 28px;
  box-shadow: 0 4px 32px rgba(72,40,31,0.07);
  transition: transform 0.28s ease, box-shadow 0.28s ease;
}
.bl-reseller-card:hover { transform: translateY(-6px); box-shadow: 0 16px 48px rgba(72,40,31,0.13); }
.bl-reseller-card__icon {
  width: 60px; height: 60px; border-radius: 18px;
  background: var(--brand-colors--primary, #48281f);
  display: flex; align-items: center; justify-content: center;
  color: var(--brand-colors--secondary, #fcd5cd); margin-bottom: 20px;
}
.bl-reseller-card h3 { font-size: 20px; font-weight: 800; color: #48281f; margin: 0 0 10px; }
.bl-reseller-card p  { font-size: 14px; line-height: 1.7; color: rgba(72,40,31,0.65); margin: 0; }

.bl-reseller-form-section { background: var(--brand-colors--primary, #48281f); padding: 80px 40px; }
.bl-reseller-form-section__inner { max-width: 1440px; margin: 0 auto; }
.bl-reseller-form-wrap { display: grid; grid-template-columns: 1fr 1.4fr; gap: 72px; align-items: start; }
@media (max-width: 767px) { .bl-reseller-form-wrap { grid-template-columns: 1fr; gap: 48px; } }

.bl-reseller-form-intro__title {
  font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif;
  font-size: clamp(32px, 4vw, 52px); line-height: 0.95; letter-spacing: -1px;
  text-transform: uppercase; color: #fff; margin: 0 0 20px;
}
.bl-reseller-form-intro__text { font-size: 15px; line-height: 1.7; color: rgba(255,255,255,0.6); margin: 0 0 28px; }
.bl-reseller-checklist { list-style: none; padding: 0; margin: 0; }
.bl-reseller-checklist li {
  display: flex; align-items: center; gap: 10px;
  font-size: 14px; color: rgba(255,255,255,0.75); padding: 8px 0;
  border-bottom: 1px solid rgba(255,255,255,0.08);
}
.bl-reseller-checklist li::before {
  content: '\2713'; display: flex; width: 20px; height: 20px;
  background: var(--brand-colors--secondary, #fcd5cd); border-radius: 50%;
  align-items: center; justify-content: center;
  font-size: 11px; font-weight: 800; color: #48281f; flex-shrink: 0;
}

.bl-reseller-form-container { background: #fff; border-radius: 32px; padding: 40px; }
.bl-reseller-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 479px) { .bl-reseller-form__row { grid-template-columns: 1fr; } }
.bl-reseller-form__field { margin-bottom: 16px; }
.bl-reseller-form__field label { display: block; font-size: 11px; font-weight: 800; letter-spacing: 1px; text-transform: uppercase; color: rgba(72,40,31,0.5); margin-bottom: 8px; }
.bl-reseller-form__field input,
.bl-reseller-form__field select,
.bl-reseller-form__field textarea {
  width: 100%; border: 2px solid rgba(72,40,31,0.1); border-radius: 12px;
  padding: 12px 16px; font-size: 15px; background: #fdfbf9; color: #48281f;
  outline: none; transition: border-color 0.2s; font-family: inherit;
}
.bl-reseller-form__field input:focus,
.bl-reseller-form__field select:focus,
.bl-reseller-form__field textarea:focus { border-color: #48281f; }
.bl-reseller-form__submit {
  width: 100%; background: var(--brand-colors--primary, #48281f); color: #fff;
  border: none; border-radius: 999px; padding: 16px 32px;
  font-size: 14px; font-weight: 800; text-transform: uppercase; letter-spacing: 0.5px;
  cursor: pointer; transition: background 0.2s, transform 0.15s; margin-top: 4px; font-family: inherit;
}
.bl-reseller-form__submit:hover { background: #3d3228; transform: translateY(-2px); }
.bl-reseller-form__note { font-size: 12px; color: rgba(72,40,31,0.45); margin: 14px 0 0; line-height: 1.5; }
.bl-reseller-form__note a { color: rgba(72,40,31,0.6); }
@media (max-width: 991px) { .bl-reseller-benefits { padding: 60px 24px; } .bl-reseller-form-section { padding: 60px 24px; } }

/* ── 17. COMPONI IL TUO CAFFE ──────────────────────────────────────── */
.bl-composer { background: var(--brand-colors--background-color, #f8f4ef); padding: 80px 40px 100px; }
.bl-composer__inner { max-width: 900px; margin: 0 auto; }
.bl-composer-step { margin-bottom: 64px; }
.bl-composer-step__header { margin-bottom: 32px; }
.bl-composer-step__num { font-size: 11px; font-weight: 800; letter-spacing: 2px; text-transform: uppercase; color: var(--brand-colors--secondary, #fcd5cd); display: block; margin-bottom: 8px; }
.bl-composer-step__title { font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif; font-size: 36px; text-transform: uppercase; color: #48281f; margin: 0 0 8px; letter-spacing: -0.5px; }
.bl-composer-step__desc { font-size: 14px; color: rgba(72,40,31,0.55); margin: 0; }

.bl-composer-options { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.bl-composer-options--3col { grid-template-columns: repeat(3, 1fr); }
.bl-composer-options--4col { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 767px) {
  .bl-composer-options, .bl-composer-options--3col { grid-template-columns: repeat(2, 1fr); }
  .bl-composer-options--4col { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 479px) {
  .bl-composer-options, .bl-composer-options--4col { grid-template-columns: 1fr; }
}

.bl-composer-option { cursor: pointer; }
.bl-composer-option input { display: none; }
.bl-composer-option__card {
  background: #fff; border: 2px solid rgba(72,40,31,0.1); border-radius: 20px;
  padding: 20px 16px; text-align: center;
  transition: border-color 0.2s, box-shadow 0.2s, transform 0.15s;
  display: flex; flex-direction: column; gap: 6px;
}
.bl-composer-option__card strong { font-size: 14px; font-weight: 800; color: #48281f; display: block; }
.bl-composer-option__card small  { font-size: 12px; color: rgba(72,40,31,0.5); line-height: 1.4; }
.bl-composer-option__emoji { font-size: 28px; line-height: 1; margin-bottom: 4px; }
.bl-composer-option:hover .bl-composer-option__card { border-color: rgba(72,40,31,0.3); transform: translateY(-2px); }
.bl-composer-option input:checked + .bl-composer-option__card {
  border-color: var(--brand-colors--secondary, #fcd5cd);
  box-shadow: 0 0 0 3px rgba(252,213,205,0.2); background: #fef6f5;
}
.bl-composer-option__roast { width: 40px; height: 40px; border-radius: 50%; margin: 0 auto 8px; }
.bl-composer-option__roast--light  { background: #d4a66a; }
.bl-composer-option__roast--medium { background: #8b5e3c; }
.bl-composer-option__roast--dark   { background: #2d1c0e; }

.bl-composer-cta { text-align: center; padding: 48px 0 0; border-top: 1px solid rgba(72,40,31,0.1); }
.bl-composer-cta__note { font-size: 14px; color: rgba(72,40,31,0.55); max-width: 480px; margin: 0 auto 28px; line-height: 1.6; }
.bl-composer-cta__btn {
  display: inline-flex; align-items: center; gap: 8px;
  background: var(--brand-colors--primary, #48281f); color: #fff; border-radius: 999px;
  padding: 16px 40px; font-size: 14px; font-weight: 800; text-transform: uppercase;
  letter-spacing: 0.5px; text-decoration: none; transition: background 0.2s, transform 0.15s;
}
.bl-composer-cta__btn:hover { background: #3d3228; transform: translateY(-2px); }
.bl-composer-cta__alt { font-size: 13px; color: rgba(72,40,31,0.45); margin: 20px 0 0; }

/* ─────────────────────────────────────────────
   §17 — EMPORIO MARAGO PAGE
   ───────────────────────────────────────────── */

/* Hero tweak */
.emporio-hero .woo-shop-hero__sub {
  font-size: 17px;
  opacity: 0.75;
  margin-top: 12px;
  font-weight: 400;
  letter-spacing: 0;
}

/* Page wrapper */
.emporio-page {
  background: var(--brand-colors--background-color, #f8f5f1);
}

/* ── Intro ── */
.emporio-intro {
  padding: 100px 0 80px;
  text-align: center;
}
.emporio-intro__wrap {
  max-width: 780px;
  margin: 0 auto;
}
.emporio-intro__tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: var(--brand-colors--secondary, #fcd5cd);
  background: rgba(252,213,205,0.12);
  border-radius: 999px;
  padding: 6px 18px;
  margin-bottom: 28px;
}
.emporio-intro__heading {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: clamp(38px, 5vw, 64px);
  line-height: 1.05;
  color: var(--brand-colors--primary, #48281f);
  margin: 0 0 32px;
}
.emporio-intro__body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.emporio-intro__body p {
  font-size: 17px;
  line-height: 1.7;
  color: rgba(72,40,31,0.75);
  margin: 0;
}

/* ── Features ── */
.emporio-features {
  padding: 0 0 100px;
}
.emporio-features__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
.emporio-card {
  background: #fff;
  border: 1.5px solid rgba(72,40,31,0.09);
  border-radius: 28px;
  padding: 44px 36px;
  transition: transform 0.25s ease, box-shadow 0.25s ease;
}
.emporio-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 48px rgba(72,40,31,0.1);
}
.emporio-card__icon {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: rgba(252,213,205,0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 24px;
  color: var(--brand-colors--secondary, #fcd5cd);
}
.emporio-card__title {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: 24px;
  color: var(--brand-colors--primary, #48281f);
  margin: 0 0 12px;
  line-height: 1.1;
}
.emporio-card__text {
  font-size: 15px;
  line-height: 1.65;
  color: rgba(72,40,31,0.65);
  margin: 0;
}
.emporio-card__link {
  display: inline-block;
  margin-top: 16px;
  font-size: 14px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.emporio-card__link:hover { opacity: .7; }

/* ── Prenotazione Workshop ── */
.emporio-booking {
  padding: 0 0 100px;
}
.emporio-booking__wrap {
  max-width: 720px;
  margin: 0 auto;
  background: #fff;
  border: 1.5px solid rgba(72,40,31,0.09);
  border-radius: 28px;
  padding: 48px;
}
.emporio-booking__intro {
  text-align: center;
  margin-bottom: 32px;
}
.emporio-booking__intro p {
  font-size: 15px;
  line-height: 1.6;
  color: rgba(72,40,31,0.65);
  margin: 8px 0 0;
}
.emporio-booking__form { display: flex; flex-direction: column; gap: 18px; }
.emporio-booking__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.emporio-booking__field { display: flex; flex-direction: column; gap: 6px; }
.emporio-booking__field label {
  font-size: 12px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: rgba(72,40,31,0.55);
}
.emporio-booking__field input,
.emporio-booking__field textarea {
  border: 1.5px solid rgba(72,40,31,0.15);
  border-radius: 10px;
  padding: 12px 14px;
  font-size: 15px;
  font-family: inherit;
  color: var(--brand-colors--primary, #48281f);
  background: var(--brand-colors--background-color, #f8f5f1);
}
.emporio-booking__field input:focus,
.emporio-booking__field textarea:focus {
  outline: none;
  border-color: var(--brand-colors--primary, #48281f);
}
.emporio-booking__submit { align-self: center; margin-top: 8px; }
.emporio-booking__msg {
  text-align: center;
  font-size: 14px;
  font-weight: 600;
  margin: 0;
}
.emporio-booking__msg--ok { color: #2e7d32; }
.emporio-booking__msg--error { color: #c0392b; }
@media (max-width: 600px) {
  .emporio-booking__wrap { padding: 32px 24px; }
  .emporio-booking__row { grid-template-columns: 1fr; }
}

/* ── Quote ── */
.emporio-quote {
  padding: 80px 0;
  background: var(--brand-colors--primary, #48281f);
}
.emporio-quote__block {
  margin: 0;
  text-align: center;
}
.emporio-quote__text {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: clamp(28px, 3.5vw, 48px);
  line-height: 1.2;
  color: #fff;
  margin: 0;
  opacity: 0.92;
}

/* ── CTA ── */
.emporio-cta {
  padding: 100px 0;
  text-align: center;
}
.emporio-cta__wrap {
  max-width: 640px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.emporio-cta__heading {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: clamp(38px, 5vw, 60px);
  line-height: 1.05;
  color: var(--brand-colors--primary, #48281f);
  margin: 0;
}
.emporio-cta__heading span {
  color: var(--brand-colors--secondary, #fcd5cd);
}
.emporio-cta__sub {
  font-size: 16px;
  line-height: 1.6;
  color: rgba(72,40,31,0.6);
  margin: 0 0 8px;
}

/* ── Responsive ── */
@media (max-width: 991px) {
  .emporio-intro  { padding: 72px 0 56px; }
  .emporio-features { padding: 0 0 72px; }
  .emporio-features__grid { grid-template-columns: 1fr 1fr; }
  .emporio-cta    { padding: 72px 0; }
  .emporio-quote  { padding: 60px 0; }
}
@media (max-width: 767px) {
  .emporio-features__grid { grid-template-columns: 1fr; }
  .emporio-card { padding: 32px 24px; }
  .emporio-intro  { padding: 56px 0 40px; }
  .emporio-cta    { padding: 56px 0; }
}
.bl-composer-cta__alt a { color: rgba(72,40,31,0.65); text-decoration: underline; }

/* ── Chi Siamo — sezione team/famiglia (foto + testo) ── */
.chisiamo-team { padding: 0 0 100px; }
.chisiamo-team__grid {
  display: grid;
  grid-template-columns: 1.6fr 1fr;
  gap: 56px;
  align-items: center;
}
.chisiamo-team__media {
  border-radius: 28px;
  overflow: hidden;
}
.chisiamo-team__media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  /* Rapporto vicino a quello reale della foto famiglia (1024×683 ≈
     1,5:1) così il ritaglio resta minimo. */
  aspect-ratio: 3 / 2;
}
.chisiamo-team__heading {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: clamp(30px, 3.5vw, 42px);
  line-height: 1.15;
  color: var(--brand-colors--primary, #48281f);
  margin: 0 0 20px;
}
.chisiamo-team__text p {
  font-size: 16px;
  line-height: 1.7;
  color: rgba(72,40,31,0.72);
  margin: 0 0 16px;
}
.chisiamo-team__text p:last-child { margin-bottom: 0; }
@media (max-width: 900px) {
  .chisiamo-team__grid { grid-template-columns: 1fr; gap: 32px; }
}
@media (max-width: 767px) {
  .chisiamo-team { padding: 0 0 56px; }
}

/* .chisiamo-people riusa lo stile di .emporio-intro (padding-top:100px),
   ma segue subito .chisiamo-team che ha già 100px di padding-bottom —
   sommati sarebbero 200px di vuoto. Riduce solo lo spazio in cima. */
.chisiamo-people { padding-top: 24px; }
@media (max-width: 767px) {
  .chisiamo-people { padding-top: 16px; }
}

/* ─────────────────────────────────────────────
   §18 — COLOR PALETTE FIXES
   ───────────────────────────────────────────── */

/* product-price in webflow.css usa var(--brand-colors--secondary):
   con il rosa chiaro #fcd5cd su sfondo crema è illeggibile → override primario */
.product-price { color: var(--brand-colors--primary, #48281f) !important; }

/* WooCommerce price amount — stessa override */
.woocommerce .price .woocommerce-Price-amount,
.woocommerce-page .price .woocommerce-Price-amount { color: var(--brand-colors--primary, #48281f) !important; }

/* Link nel body: il rosa chiaro su crema ha contrasto insufficiente → primario */
.bl-page-body a { color: var(--brand-colors--primary, #48281f) !important; }

/* emporio-cta span: correggiamo il rosa su sfondo crema con primario */
.emporio-cta__heading span { color: var(--brand-colors--primary, #48281f); }

/* Star rating: il rosa su bianco è debole, usiamo un rosa più saturo */
.single-product .star-rating { color: #e89088 !important; font-size: 14px !important; }

/* ── Background wave override ── */
.background-wave {
  object-position: unset !important;
}

/* ── Gallery reel cards — stesse dimensioni delle card statiche ── */
.gallery-item--reel { aspect-ratio: 4 / 5; }
.gallery-reel-link  { display: block; width: 100%; height: 100%; position: relative; }
.gallery-reel-video {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
}

/* ─────────────────────────────────────────────
   §19 — B2B SYSTEM
   ───────────────────────────────────────────── */

/* Hero pagine B2B */
.bl-page-hero {
  background: var(--brand-colors--primary, #48281f);
  padding: 140px 40px 72px;
  text-align: center;
  color: #fff;
}
.bl-page-hero__label {
  font-size: 13px;
  letter-spacing: .12em;
  text-transform: uppercase;
  color: var(--brand-colors--secondary, #fcd5cd);
  margin: 0 0 16px;
}
.bl-page-hero__title {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: clamp(48px, 8vw, 96px);
  line-height: 1;
  margin: 0 0 20px;
  color: #fff;
}
.bl-page-hero__title span {
  color: var(--brand-colors--secondary, #fcd5cd);
}
.bl-page-hero__sub {
  font-size: 18px;
  line-height: 1.6;
  color: rgba(255,255,255,0.75);
  max-width: 600px;
  margin: 0 auto;
}

/* ── Vantaggi rivenditore ── */
.bl-reseller-benefits {
  background: var(--brand-colors--background-color, #f8f5f1);
  padding: 80px 40px;
}
.bl-reseller-benefits__inner {
  max-width: 1200px;
  margin: 0 auto;
}
.bl-reseller-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 32px;
}
.bl-reseller-card {
  background: #fff;
  border-radius: 16px;
  padding: 32px 24px;
  text-align: center;
}
.bl-reseller-card__icon {
  width: 64px;
  height: 64px;
  background: var(--brand-colors--secondary, #fcd5cd);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
  color: var(--brand-colors--primary, #48281f);
}
.bl-reseller-card h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  margin: 0 0 12px;
}
.bl-reseller-card p {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(72,40,31,0.65);
  margin: 0;
}

/* ── Sezione registrazione ── */
.bl-register-section {
  background: #fff;
  padding: 80px 40px;
}
.bl-register-section__inner {
  max-width: 720px;
  margin: 0 auto;
}
.bl-register-logged {
  text-align: center;
  padding: 48px;
  background: var(--brand-colors--background-color, #f8f5f1);
  border-radius: 16px;
}
.bl-register-logged p { margin: 0 0 24px; }
.bl-register-wrap { }
.bl-register-header {
  text-align: center;
  margin-bottom: 40px;
}
.bl-register-header h2 {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: 40px;
  color: var(--brand-colors--primary, #48281f);
  margin: 0 0 12px;
}
.bl-register-header p {
  color: rgba(72,40,31,0.65);
  margin: 0 0 28px;
}
.bl-register-toggle {
  display: inline-flex;
  background: var(--brand-colors--background-color, #f8f5f1);
  border-radius: 50px;
  padding: 4px;
  gap: 4px;
}
.bl-register-toggle__btn {
  border: none;
  background: transparent;
  padding: 10px 24px;
  border-radius: 50px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  color: rgba(72,40,31,0.55);
  transition: all .2s;
}
.bl-register-toggle__btn.is-active {
  background: var(--brand-colors--primary, #48281f);
  color: #fff;
}
.bl-register-msg {
  border-radius: 12px;
  padding: 16px 20px;
  font-size: 14px;
  margin-bottom: 24px;
  line-height: 1.5;
}
.bl-register-msg--success {
  background: #f0fdf4;
  color: #166534;
  border: 1px solid #bbf7d0;
}
.bl-register-msg--error {
  background: #fff1f2;
  color: #9f1239;
  border: 1px solid #fecdd3;
}
.bl-register-form__row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 20px;
}
.bl-register-form__field {
  display: flex;
  flex-direction: column;
  gap: 6px;
  margin-bottom: 20px;
}
.bl-register-form__field label {
  font-size: 13px;
  font-weight: 600;
  color: var(--brand-colors--primary, #48281f);
}
.bl-register-form__field input,
.bl-register-form__field select,
.bl-register-form__field textarea {
  border: 1.5px solid rgba(72,40,31,0.2);
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 15px;
  color: var(--brand-colors--primary, #48281f);
  background: #fff;
  transition: border-color .2s;
  outline: none;
  font-family: inherit;
  width: 100%;
  box-sizing: border-box;
}
.bl-register-form__field input:focus,
.bl-register-form__field select:focus { border-color: var(--brand-colors--primary, #48281f); }
.bl-register-form__separator {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: rgba(72,40,31,0.5);
  border-top: 1px solid rgba(72,40,31,0.12);
  padding-top: 24px;
  margin: 8px 0 24px;
}
.bl-register-b2b-fields { margin-top: 8px; }
.bl-register-form__submit {
  width: 100%;
  background: var(--brand-colors--primary, #48281f);
  color: #fff;
  border: none;
  border-radius: 50px;
  padding: 16px;
  font-size: 16px;
  font-weight: 700;
  cursor: pointer;
  transition: opacity .2s;
  margin-top: 8px;
}
.bl-register-form__submit:hover:not(:disabled) { opacity: .85; }
.bl-register-form__submit:disabled { opacity: .5; cursor: not-allowed; }
.bl-register-form__note {
  font-size: 12px;
  color: rgba(72,40,31,0.5);
  text-align: center;
  margin: 16px 0 8px;
}
.bl-register-form__login {
  font-size: 14px;
  text-align: center;
  color: rgba(72,40,31,0.65);
  margin: 0;
}
.bl-register-form__login a { color: var(--brand-colors--primary, #48281f); text-decoration: underline; }

/* ── B2B Area dashboard ── */
.bl-b2b-pending-section {
  background: #fff;
  padding: 80px 40px;
}
.bl-b2b-pending-section__inner {
  max-width: 600px;
  margin: 0 auto;
  text-align: center;
}
.bl-b2b-pending-box {
  background: var(--brand-colors--background-color, #f8f5f1);
  border-radius: 20px;
  padding: 48px 40px;
}
.bl-b2b-pending-box__icon {
  color: var(--brand-colors--primary, #48281f);
  margin-bottom: 24px;
}
.bl-b2b-pending-box h2 {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: 32px;
  color: var(--brand-colors--primary, #48281f);
  margin: 0 0 16px;
}
.bl-b2b-pending-box p {
  color: rgba(72,40,31,0.65);
  line-height: 1.6;
  margin: 0 0 12px;
}
.bl-b2b-pending-box a { color: var(--brand-colors--primary, #48281f); }

.bl-b2b-dashboard {
  background: var(--brand-colors--background-color, #f8f5f1);
  padding: 72px 40px;
}
.bl-b2b-dashboard__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.bl-b2b-features {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  margin-bottom: 48px;
}
.bl-b2b-feature-card {
  background: #fff;
  border-radius: 20px;
  padding: 40px 36px;
  display: flex;
  gap: 28px;
  align-items: flex-start;
}
.bl-b2b-feature-card__icon {
  flex-shrink: 0;
  width: 72px;
  height: 72px;
  background: var(--brand-colors--secondary, #fcd5cd);
  border-radius: 16px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brand-colors--primary, #48281f);
}
.bl-b2b-feature-card__body h3 {
  font-size: 22px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  margin: 0 0 12px;
}
.bl-b2b-feature-card__body p {
  font-size: 14px;
  line-height: 1.6;
  color: rgba(72,40,31,0.65);
  margin: 0 0 20px;
}
.bl-b2b-feature-card__cta { }

/* ── Tab navigazione B2B ── */
.bl-b2b-tabs {
  display: flex;
  gap: 8px;
  margin-bottom: 32px;
  border-bottom: 2px solid rgba(72,40,31,0.1);
  padding-bottom: 0;
}
.bl-b2b-tab {
  display: flex;
  align-items: center;
  gap: 8px;
  background: none;
  border: none;
  border-bottom: 3px solid transparent;
  margin-bottom: -2px;
  padding: 14px 20px;
  font-size: 16px;
  font-weight: 600;
  color: rgba(72,40,31,0.45);
  cursor: pointer;
  transition: color .2s, border-color .2s;
  border-radius: 0;
}
.bl-b2b-tab:hover { color: var(--brand-colors--primary, #48281f); }
.bl-b2b-tab.is-active {
  color: var(--brand-colors--primary, #48281f);
  border-bottom-color: var(--brand-colors--primary, #48281f);
}
.bl-b2b-tab-panel {
  background: #fff;
  border-radius: 20px;
  padding: 40px;
}

/* ── Bottone generico B2B ── */
.bl-btn {
  display: inline-block;
  background: var(--brand-colors--primary, #48281f);
  color: #fff !important;
  border: none;
  border-radius: 50px;
  padding: 14px 28px;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
  text-decoration: none !important;
  transition: opacity .2s;
}
.bl-btn:hover { opacity: .85; }
.bl-btn:disabled { opacity: .4; cursor: not-allowed; }

/* ── Tostatura (nuove classi) ── */
.bl-tostatura__intro,
.bl-blend__intro {
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(72,40,31,0.1);
}
.bl-tostatura__intro h2,
.bl-blend__intro h2 {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: 32px;
  color: var(--brand-colors--primary, #48281f);
  margin: 0 0 8px;
}
.bl-tostatura__intro p,
.bl-blend__intro p {
  font-size: 15px;
  color: rgba(72,40,31,0.65);
  margin: 0;
  line-height: 1.6;
}
.bl-tostatura__empty-state,
.bl-blend__empty-state {
  text-align: center;
  padding: 48px 24px;
  color: rgba(72,40,31,0.5);
  font-size: 15px;
  line-height: 1.6;
}
/* Step label */
.bl-tost-step { margin-bottom: 36px; }
.bl-tost-step__label {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 17px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  margin-bottom: 16px;
}
.bl-tost-step__num {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--brand-colors--primary, #48281f);
  color: #fff;
  font-size: 15px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
/* Griglia prodotti */
.bl-tost-products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
  gap: 12px;
}
.bl-tost-product { cursor: pointer; }
.bl-tost-product input[type="radio"] { display: none; }
.bl-tost-product__card {
  border: 2px solid rgba(72,40,31,0.12);
  border-radius: 14px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  text-align: center;
  transition: border-color .15s, box-shadow .15s;
  position: relative;
}
.bl-tost-product__card img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 10px;
}
.bl-tost-product__info { display: flex; flex-direction: column; gap: 4px; }
.bl-tost-product__info strong { font-size: 14px; color: var(--brand-colors--primary, #48281f); }
.bl-tost-product__info span  { font-size: 13px; color: rgba(72,40,31,0.55); }
.bl-tost-product__check {
  display: none;
  position: absolute;
  top: 8px; right: 8px;
  width: 24px; height: 24px;
  background: var(--brand-colors--primary, #48281f);
  border-radius: 50%;
  align-items: center;
  justify-content: center;
}
.bl-tost-product.is-selected .bl-tost-product__card {
  border-color: var(--brand-colors--primary, #48281f);
  box-shadow: 0 0 0 3px rgba(72,40,31,0.08);
}
.bl-tost-product.is-selected .bl-tost-product__check { display: flex; }
/* Giorni */
.bl-tost-days {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
}
.bl-tost-day { cursor: pointer; }
.bl-tost-day input[type="radio"] { display: none; }
.bl-tost-day__card {
  border: 2px solid rgba(72,40,31,0.12);
  border-radius: 14px;
  padding: 20px 16px;
  text-align: center;
  transition: all .15s;
}
.bl-tost-day__card strong {
  display: block;
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: 26px;
  color: var(--brand-colors--primary, #48281f);
  line-height: 1;
  margin-bottom: 6px;
}
.bl-tost-day__card span {
  display: block;
  font-size: 12px;
  color: rgba(72,40,31,0.5);
  line-height: 1.4;
}
.bl-tost-day.is-selected .bl-tost-day__card {
  background: var(--brand-colors--primary, #48281f);
  border-color: var(--brand-colors--primary, #48281f);
}
.bl-tost-day.is-selected .bl-tost-day__card strong,
.bl-tost-day.is-selected .bl-tost-day__card span { color: #fff; }
/* Quantità */
.bl-tost-qty {
  display: inline-flex;
  align-items: center;
  border: 2px solid rgba(72,40,31,0.2);
  border-radius: 50px;
  overflow: hidden;
}
.bl-tost-qty__btn {
  background: none; border: none;
  padding: 12px 22px;
  font-size: 22px; line-height: 1;
  cursor: pointer;
  color: var(--brand-colors--primary, #48281f);
}
.bl-tost-qty__input {
  border: none;
  width: 72px;
  text-align: center;
  font-size: 18px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  padding: 10px 0;
  outline: none;
  -moz-appearance: textfield;
}
.bl-tost-qty__input::-webkit-outer-spin-button,
.bl-tost-qty__input::-webkit-inner-spin-button { -webkit-appearance: none; }
/* Messaggi tostatura */
.bl-tost-msg {
  border-radius: 12px;
  padding: 14px 18px;
  font-size: 14px;
  margin: 20px 0;
  line-height: 1.5;
}
.bl-tost-msg--success { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.bl-tost-msg--error   { background: #fff1f2; color: #9f1239; border: 1px solid #fecdd3; }
.bl-tost-submit-wrap  { margin-top: 8px; }

/* ── Bottone large ── */
.bl-btn--large { padding: 18px 40px; font-size: 17px; }

/* ── Configuratore Miscela (nuove classi) ── */
.bl-blend__layout {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 40px;
  align-items: start;
}
.bl-blend__section-title {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(72,40,31,0.45);
  margin: 0 0 16px;
}
/* Lista origini */
.bl-blend__origins {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 500px;
  overflow-y: auto;
  padding-right: 4px;
}
.bl-blend__origin {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--brand-colors--background-color, #f8f5f1);
  border-radius: 14px;
  padding: 14px 16px;
}
.bl-blend__origin__info { flex: 1; min-width: 0; }
.bl-blend__origin__info strong {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  margin-bottom: 2px;
}
.bl-blend__origin__info span {
  font-size: 12px;
  color: rgba(72,40,31,0.5);
  display: block;
}
.bl-blend__origin__info p {
  font-size: 12px;
  color: rgba(72,40,31,0.5);
  margin: 4px 0 0;
  line-height: 1.4;
}
.bl-blend__origin__right {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 8px;
  flex-shrink: 0;
}
.bl-blend__origin__price {
  font-size: 14px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  white-space: nowrap;
}
.bl-blend__origin__add {
  display: flex;
  align-items: center;
  gap: 6px;
  background: var(--brand-colors--primary, #48281f);
  color: #fff;
  border: none;
  border-radius: 50px;
  padding: 8px 14px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: opacity .15s;
}
.bl-blend__origin__add:hover { opacity: .8; }
/* Basket */
.bl-blend__basket {
  min-height: 80px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 20px;
}
.bl-blend__basket-empty {
  font-size: 14px;
  color: rgba(72,40,31,0.4);
  font-style: italic;
  padding: 20px;
  text-align: center;
  background: var(--brand-colors--background-color, #f8f5f1);
  border-radius: 12px;
  line-height: 1.6;
}
.bl-blend__row {
  display: grid;
  grid-template-columns: 1fr auto auto auto;
  align-items: center;
  gap: 10px;
  background: var(--brand-colors--background-color, #f8f5f1);
  border-radius: 12px;
  padding: 12px 14px;
}
.bl-blend__row__name { font-size: 14px; font-weight: 600; color: var(--brand-colors--primary, #48281f); }
.bl-blend__row__ctrl {
  display: flex;
  align-items: center;
  gap: 8px;
  border: 1.5px solid rgba(72,40,31,0.15);
  border-radius: 50px;
  padding: 0 4px;
}
.bl-blend__row__btn {
  background: none; border: none;
  padding: 4px 8px;
  font-size: 18px; line-height: 1;
  cursor: pointer;
  color: var(--brand-colors--primary, #48281f);
}
.bl-blend__row__kg {
  font-size: 14px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  min-width: 52px;
  text-align: center;
}
.bl-blend__row__sub {
  font-size: 14px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  min-width: 64px;
  text-align: right;
}
.bl-blend__row__del {
  background: none; border: none;
  font-size: 22px; line-height: 1;
  cursor: pointer;
  color: rgba(72,40,31,0.25);
  transition: color .15s;
  padding: 0 4px;
}
.bl-blend__row__del:hover { color: #9f1239; }
/* Riepilogo */
.bl-blend__recap {
  background: var(--brand-colors--primary, #48281f);
  border-radius: 16px;
  padding: 20px;
  margin-bottom: 16px;
}
.bl-blend__recap-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 14px;
  padding: 6px 0;
  color: rgba(255,255,255,0.65);
  border-bottom: 1px solid rgba(255,255,255,0.1);
}
.bl-blend__recap-row--price {
  font-size: 20px;
  font-weight: 700;
  color: #fff;
  border-bottom: none;
  padding-top: 12px;
  margin-top: 4px;
}
.bl-blend__recap-row--price strong { color: var(--brand-colors--secondary, #fcd5cd); font-size: 24px; }
.bl-blend__progress-wrap {
  background: rgba(255,255,255,0.15);
  border-radius: 50px;
  height: 6px;
  margin: 16px 0 8px;
  overflow: hidden;
}
.bl-blend__progress-fill {
  height: 100%;
  background: var(--brand-colors--secondary, #fcd5cd);
  border-radius: 50px;
  transition: width .3s ease, background .3s;
}
.bl-blend__progress-note {
  font-size: 12px;
  color: rgba(255,255,255,0.55);
  text-align: center;
  margin: 0;
}
/* Messaggi blend */
.bl-blend__msg {
  border-radius: 12px;
  padding: 14px 18px;
  font-size: 14px;
  margin-bottom: 12px;
}
.bl-blend__msg--success { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.bl-blend__msg--error   { background: #fff1f2; color: #9f1239; border: 1px solid #fecdd3; }
.bl-blend__cta { width: 100%; text-align: center; }
.bl-blend__cta-note {
  font-size: 12px;
  color: rgba(72,40,31,0.45);
  text-align: center;
  margin: 10px 0 0;
}

/* ── Stili vecchi tostatura mantenuti per compatibilità (solo legacy) ── */
.bl-tostatura__header {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 36px;
  border-bottom: 1px solid rgba(72,40,31,0.1);
  padding-bottom: 24px;
}
.bl-tostatura__title {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: 32px;
  color: var(--brand-colors--primary, #48281f);
  margin: 0;
  flex: 1;
}
.bl-tostatura__sub {
  font-size: 14px;
  color: rgba(72,40,31,0.65);
  margin: 6px 0 0;
  flex-basis: 100%;
}
.bl-tostatura__close {
  background: none;
  border: 1.5px solid rgba(72,40,31,0.2);
  border-radius: 50px;
  padding: 8px 16px;
  font-size: 13px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  color: rgba(72,40,31,0.6);
  transition: all .2s;
}
.bl-tostatura__close:hover { border-color: var(--brand-colors--primary, #48281f); color: var(--brand-colors--primary, #48281f); }
.bl-tostatura__section { margin-bottom: 36px; }
.bl-tostatura__section h3 {
  font-size: 16px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  margin: 0 0 16px;
  letter-spacing: .04em;
  text-transform: uppercase;
  font-size: 13px;
}
.bl-tostatura__products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
  gap: 12px;
}
.bl-tostatura__product-card { cursor: pointer; }
.bl-tostatura__product-card input[type="radio"] { display: none; }
.bl-tostatura__product-card__inner {
  border: 2px solid rgba(72,40,31,0.12);
  border-radius: 12px;
  padding: 16px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  text-align: center;
  transition: border-color .2s;
  position: relative;
}
.bl-tostatura__product-card__inner img {
  width: 64px;
  height: 64px;
  object-fit: cover;
  border-radius: 8px;
}
.bl-tostatura__product-card__name { font-size: 14px; font-weight: 600; color: var(--brand-colors--primary, #48281f); }
.bl-tostatura__product-card__price { font-size: 13px; color: rgba(72,40,31,0.55); }
.bl-tostatura__product-card__check {
  display: none;
  position: absolute;
  top: 8px;
  right: 8px;
  background: var(--brand-colors--primary, #48281f);
  color: #fff;
  border-radius: 50%;
  width: 22px;
  height: 22px;
  align-items: center;
  justify-content: center;
}
.bl-tostatura__product-card.is-selected .bl-tostatura__product-card__inner {
  border-color: var(--brand-colors--primary, #48281f);
}
.bl-tostatura__product-card.is-selected .bl-tostatura__product-card__check { display: flex; }
.bl-tostatura__qty-wrap {
  display: flex;
  align-items: center;
  gap: 0;
  width: fit-content;
  border: 2px solid rgba(72,40,31,0.2);
  border-radius: 50px;
  overflow: hidden;
}
.bl-tostatura__qty-btn {
  background: none;
  border: none;
  padding: 10px 20px;
  font-size: 20px;
  cursor: pointer;
  color: var(--brand-colors--primary, #48281f);
  line-height: 1;
}
.bl-tostatura__qty-input {
  border: none;
  width: 64px;
  text-align: center;
  font-size: 16px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  padding: 10px 0;
  -moz-appearance: textfield;
  outline: none;
}
.bl-tostatura__qty-input::-webkit-outer-spin-button,
.bl-tostatura__qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }
.bl-tostatura__days {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
}
.bl-tostatura__day-card { cursor: pointer; }
.bl-tostatura__day-card input[type="radio"] { display: none; }
.bl-tostatura__day-card__inner {
  border: 2px solid rgba(72,40,31,0.12);
  border-radius: 16px;
  padding: 20px 32px;
  text-align: center;
  transition: all .2s;
}
.bl-tostatura__day-card__day {
  display: block;
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: 28px;
  color: var(--brand-colors--primary, #48281f);
}
.bl-tostatura__day-card__label {
  display: block;
  font-size: 13px;
  color: rgba(72,40,31,0.55);
  margin-top: 4px;
}
.bl-tostatura__day-card.is-selected .bl-tostatura__day-card__inner {
  border-color: var(--brand-colors--primary, #48281f);
  background: var(--brand-colors--primary, #48281f);
}
.bl-tostatura__day-card.is-selected .bl-tostatura__day-card__day,
.bl-tostatura__day-card.is-selected .bl-tostatura__day-card__label { color: #fff; }
.bl-tostatura__msg {
  border-radius: 12px;
  padding: 14px 18px;
  font-size: 14px;
  margin: 20px 0;
  line-height: 1.5;
}
.bl-tostatura__msg--success { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.bl-tostatura__msg--error   { background: #fff1f2; color: #9f1239; border: 1px solid #fecdd3; }
.bl-tostatura__actions { margin-top: 8px; }
.bl-tostatura__empty { color: rgba(72,40,31,0.55); font-style: italic; }

/* ── Configuratore miscela ── */
.bl-blend__header {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  flex-wrap: wrap;
  margin-bottom: 36px;
  border-bottom: 1px solid rgba(72,40,31,0.1);
  padding-bottom: 24px;
}
.bl-blend__title {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: 32px;
  color: var(--brand-colors--primary, #48281f);
  margin: 0;
  flex: 1;
}
.bl-blend__sub {
  font-size: 14px;
  color: rgba(72,40,31,0.65);
  margin: 6px 0 0;
  flex-basis: 100%;
  line-height: 1.6;
}
.bl-blend__close {
  background: none;
  border: 1.5px solid rgba(72,40,31,0.2);
  border-radius: 50px;
  padding: 8px 16px;
  font-size: 13px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 6px;
  color: rgba(72,40,31,0.6);
  transition: all .2s;
}
.bl-blend__close:hover { border-color: var(--brand-colors--primary, #48281f); color: var(--brand-colors--primary, #48281f); }
.bl-blend__layout {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 40px;
  align-items: start;
}
.bl-blend__origins-col h3,
.bl-blend__builder-col h3 {
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: rgba(72,40,31,0.5);
  margin: 0 0 12px;
}
.bl-blend__origins-hint {
  font-size: 13px;
  color: rgba(72,40,31,0.55);
  margin: 0 0 16px;
}
.bl-blend__origins-list {
  display: flex;
  flex-direction: column;
  gap: 8px;
  max-height: 480px;
  overflow-y: auto;
  padding-right: 4px;
}
.bl-blend__origin-item {
  display: flex;
  align-items: center;
  gap: 12px;
  background: var(--brand-colors--background-color, #f8f5f1);
  border-radius: 12px;
  padding: 14px 16px;
}
.bl-blend__origin-item__info { flex: 1; }
.bl-blend__origin-item__info strong {
  display: block;
  font-size: 15px;
  color: var(--brand-colors--primary, #48281f);
  margin-bottom: 2px;
}
.bl-blend__origin-item__country {
  font-size: 12px;
  color: rgba(72,40,31,0.5);
  display: block;
}
.bl-blend__origin-item__desc {
  font-size: 12px;
  color: rgba(72,40,31,0.5);
  margin: 4px 0 0;
  line-height: 1.4;
}
.bl-blend__origin-item__price {
  font-size: 14px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  white-space: nowrap;
}
.bl-blend__origin-add {
  background: var(--brand-colors--primary, #48281f);
  color: #fff;
  border: none;
  border-radius: 50%;
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  flex-shrink: 0;
  transition: opacity .2s;
}
.bl-blend__origin-add:hover { opacity: .8; }

/* Builder col */
.bl-blend__rows {
  min-height: 100px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 24px;
}
.bl-blend__rows-empty {
  font-size: 14px;
  color: rgba(72,40,31,0.4);
  font-style: italic;
  padding: 24px 0;
  text-align: center;
}
/* NOTA: .bl-blend__row e derivate sono definite più sopra (con
   grid-template-columns: 1fr auto auto auto, coerente con il markup
   generato da JS in b2b-configuratore.php: name + ctrl + sub + del).
   Qui c'era un secondo blocco doppione, con nomi di classe leggermente
   diversi (es. .bl-blend__row__controls invece di __ctrl,
   .bl-blend__row__subtotal invece di __sub), residuo di una versione
   precedente del composer. Le classi in comune (.bl-blend__row,
   .bl-blend__row__name, .bl-blend__row__btn, .bl-blend__row__kg)
   venivano sovrascritte in modo incoerente e causavano la
   sovrapposizione di prezzo/quantità nella card del carrello.
   Rimosso: non serve più, il blocco corretto resta sopra. */

.bl-blend__summary {
  background: var(--brand-colors--primary, #48281f);
  border-radius: 16px;
  padding: 24px;
  color: #fff;
  margin-bottom: 16px;
}
.bl-blend__summary-row {
  display: flex;
  justify-content: space-between;
  font-size: 14px;
  padding: 6px 0;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  color: rgba(255,255,255,0.7);
}
.bl-blend__summary-row--total {
  font-size: 18px;
  font-weight: 700;
  color: #fff;
  border-bottom: none;
  padding-top: 14px;
  margin-top: 8px;
}
.bl-blend__progress-wrap {
  background: rgba(255,255,255,0.15);
  border-radius: 50px;
  height: 6px;
  margin: 16px 0 8px;
  overflow: hidden;
}
.bl-blend__progress-bar {
  height: 100%;
  background: var(--brand-colors--secondary, #fcd5cd);
  border-radius: 50px;
  transition: width .3s ease;
}
.bl-blend__progress-label {
  font-size: 12px;
  color: rgba(255,255,255,0.6);
  margin: 0;
  text-align: center;
}
.bl-blend__msg {
  border-radius: 12px;
  padding: 14px 18px;
  font-size: 14px;
  margin-bottom: 16px;
}
.bl-blend__msg--success { background: #f0fdf4; color: #166534; border: 1px solid #bbf7d0; }
.bl-blend__msg--error   { background: #fff1f2; color: #9f1239; border: 1px solid #fecdd3; }
.bl-blend__submit { width: 100%; text-align: center; }
.bl-blend__empty { color: rgba(72,40,31,0.55); font-style: italic; }

/* ── Configuratore Miscela — composer layout ──
   "1fr" da solo non si restringe mai sotto la larghezza minima del
   contenuto (min-content): se la griglia interna delle origini a 3
   colonne ha bisogno di più spazio di quanto gliene resti, trabocca
   oltre la colonna assegnata e finisce sotto la sidebar "Riepilogo".
   minmax(0,1fr) permette invece alla colonna di restringersi davvero,
   forzando il contenuto interno a comprimersi/andare a capo. */
.bl-blend__composer-layout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 380px;
  gap: 40px;
  align-items: start;
}
.bl-blend__composer-main { min-width: 0; }
.bl-blend__composer-sidebar { position: sticky; top: 100px; }
.bl-blend__sidebar-inner {
  background: var(--brand-colors--background-color, #f8f5f1);
  border-radius: 20px;
  padding: 28px 24px;
}
.bl-blend__sidebar-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  margin: 0 0 20px;
}
.bl-blend__sidebar-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  padding: 28px 0;
  color: rgba(72,40,31,0.4);
  font-size: 14px;
  text-align: center;
  line-height: 1.5;
}
.bl-blend__sidebar-empty span {
  font-size: 32px;
  line-height: 1;
}

/* ── Origin card — nuova struttura con profilo sensoriale ── */
.bl-origins-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 16px; }
@media (max-width: 900px) { .bl-origins-grid { grid-template-columns: repeat(2, minmax(0,1fr)); } }
@media (max-width: 560px) { .bl-origins-grid { grid-template-columns: minmax(0,1fr); } }

.bl-origin-card-wrap {
  background: #fff;
  border: 1.5px solid rgba(72,40,31,0.12);
  border-radius: 12px;
  padding: 16px;
  cursor: pointer;
  transition: border-color .18s, box-shadow .18s, transform .18s;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.bl-origin-card-wrap:hover,
.bl-origin-card-wrap:focus {
  border-color: rgba(72,40,31,0.35);
  box-shadow: 0 4px 16px rgba(72,40,31,0.1);
  transform: translateY(-2px);
  outline: none;
}
.bl-origin-card-wrap.is-selected {
  border-color: var(--brand-colors--primary, #48281f);
  box-shadow: 0 0 0 3px rgba(72,40,31,0.12), 0 4px 16px rgba(72,40,31,0.1);
}
.bl-origin-card-wrap.is-added { animation: bl-card-pulse .35s ease; }
@keyframes bl-card-pulse {
  0%   { transform: scale(1); }
  50%  { transform: scale(1.03); box-shadow: 0 6px 24px rgba(72,40,31,0.18); }
  100% { transform: scale(1); }
}

.bl-ocard__head { display: flex; align-items: flex-start; gap: 10px; }
.bl-ocard__emoji { font-size: 28px; line-height: 1; flex-shrink: 0; }
.bl-ocard__info { flex: 1; min-width: 0; }
.bl-ocard__name {
  display: block;
  font-size: 14px; font-weight: 800; color: var(--brand-colors--primary,#48281f); line-height: 1.2;
  /* Nomi lunghi (es. "Messico – Arabica AHG") su card strette (griglia 3 col)
     andavano a capo su più righe e finivano per scontrarsi col prezzo,
     che resta fisso in alto a destra. Troncando su una riga con ellissi
     il nome non può più crescere in altezza e collidere. */
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bl-ocard__country { display: block; font-size: 12px; color: rgba(72,40,31,0.5); margin-top: 2px; }
.bl-ocard__price { font-size: 13px; font-weight: 700; color: var(--brand-colors--primary,#48281f); flex-shrink: 0; white-space: nowrap; }

.bl-ocard__badges { display: flex; gap: 6px; flex-wrap: wrap; }
.bl-ocard__badge {
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .04em;
  text-transform: uppercase;
  padding: 2px 8px;
  border-radius: 50px;
  background: rgba(72,40,31,0.07);
  color: rgba(72,40,31,0.65);
}
.bl-ocard__badge--type { background: rgba(254,189,2,0.15); color: #7a5c00; }

.bl-ocard__notes {
  font-size: 12px;
  color: rgba(72,40,31,0.6);
  line-height: 1.45;
  margin: 0;
  font-style: italic;
}

.bl-ocard__scores { display: flex; flex-direction: column; gap: 5px; }
.bl-ocard__score-row { display: flex; align-items: center; gap: 8px; }
.bl-ocard__score-label {
  width: 62px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .04em;
  color: rgba(72,40,31,0.55);
  flex-shrink: 0;
}
.bl-ocard__score-bar-wrap {
  flex: 1;
  height: 5px;
  background: rgba(72,40,31,0.09);
  border-radius: 50px;
  overflow: hidden;
}
.bl-ocard__score-bar {
  height: 100%;
  background: var(--brand-colors--secondary, #febd02);
  border-radius: 50px;
  transition: width .4s ease;
}
.bl-ocard__score-val {
  width: 26px;
  text-align: right;
  font-size: 11px;
  font-weight: 700;
  color: var(--brand-colors--primary,#48281f);
  flex-shrink: 0;
}

.bl-ocard__add-label {
  display: inline-block;
  align-self: flex-start;
  margin-top: 2px;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .04em;
  color: var(--brand-colors--primary, #48281f);
  background: rgba(72,40,31,0.07);
  border-radius: 50px;
  padding: 4px 12px;
  transition: background .15s, color .15s;
}
.bl-origin-card-wrap:hover .bl-ocard__add-label,
.bl-origin-card-wrap:focus .bl-ocard__add-label,
.bl-origin-card-wrap.is-selected .bl-ocard__add-label {
  background: var(--brand-colors--primary, #48281f);
  color: #fff;
}

/* ── B2B price badge (single product) ── */
.bl-b2b-price-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: var(--brand-colors--primary, #48281f);
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  border-radius: 50px;
  padding: 6px 14px;
  margin-bottom: 16px;
}
.bl-b2b-price-badge::before {
  content: '★';
  color: var(--brand-colors--secondary, #fcd5cd);
  font-size: 11px;
}

/* ── Navbar B2B badge ── */
.bl-nav-b2b { position: relative; }
.bl-nav-b2b-star {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 18px;
  height: 18px;
  background: var(--brand-colors--secondary, #fcd5cd);
  color: var(--brand-colors--primary, #48281f);
  border-radius: 50%;
  font-size: 10px;
  line-height: 1;
  margin-left: 4px;
  flex-shrink: 0;
}

/* ── B2B Strip (homepage) ── */
/* Banner rivenditori — prima era una banda sottile in mezzo alla
   pagina, sotto l'hero (100vh): sulla prima entrata l'utente non la
   vedeva mai senza scrollare. Ora è la prima cosa dopo la navbar
   fissa (vedi ordine in index.php), con padding-top:80px per non
   finire coperta, colore pieno acceso (non più beige tenue) e
   un'animazione di ingresso per farla notare subito. */
.bl-b2b-strip {
  background: var(--brand-colors--secondary, #fcd5cd);
  padding-top: 80px; /* compensa la navbar fissa sopra */
  position: relative;
  z-index: 1;
  overflow: hidden;
  animation: bl-strip-in 0.6s cubic-bezier(0.22,0.68,0,1.2) both;
}
@keyframes bl-strip-in {
  from { opacity: 0; transform: translateY(-12px); }
  to   { opacity: 1; transform: translateY(0); }
}
.bl-b2b-strip__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 16px 40px;
  min-height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
}
.bl-b2b-strip__badge {
  display: inline-flex;
  align-items: center;
  background: var(--brand-colors--primary, #48281f);
  color: var(--brand-colors--secondary, #fcd5cd);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .07em;
  border-radius: 50px;
  padding: 5px 14px;
  white-space: nowrap;
  flex-shrink: 0;
}
.bl-b2b-strip__greeting {
  font-size: 15px;
  font-weight: 600;
  color: var(--brand-colors--primary, #48281f);
}
.bl-b2b-strip__greeting strong { color: var(--brand-colors--primary, #48281f); }
.bl-b2b-strip__sep {
  color: rgba(72,40,31,0.3);
  font-size: 18px;
  line-height: 1;
}
.bl-b2b-strip__text {
  font-size: 16px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
}
.bl-b2b-strip__link {
  display: inline-flex;
  align-items: center;
  gap: 5px;
  font-size: 14px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: opacity .15s;
  white-space: nowrap;
}
.bl-b2b-strip__link:hover { opacity: .65; }
.bl-b2b-strip__link--cta {
  background: var(--brand-colors--primary, #48281f);
  color: #fff !important;
  padding: 9px 20px;
  border-radius: 50px;
  margin-left: 6px;
  text-decoration: none;
  font-size: 14px;
}
.bl-b2b-strip__link--cta:hover { opacity: .85; }

/* ── Quick action bar (area B2B dashboard) ── */
.bl-b2b-quickbar {
  background: #fff;
  border-bottom: 1px solid rgba(72,40,31,0.08);
}
.bl-b2b-quickbar__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 40px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}
.bl-b2b-quickbar__item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 20px 16px;
  text-decoration: none;
  border-right: 1px solid rgba(72,40,31,0.08);
  transition: background .15s;
}
.bl-b2b-quickbar__item:last-child { border-right: none; }
.bl-b2b-quickbar__item:hover { background: rgba(72,40,31,0.03); }
.bl-b2b-quickbar__icon {
  width: 44px;
  height: 44px;
  background: var(--brand-colors--secondary, #fcd5cd);
  border-radius: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--brand-colors--primary, #48281f);
  flex-shrink: 0;
}
.bl-b2b-quickbar__item > span:nth-child(2) { flex: 1; min-width: 0; }
.bl-b2b-quickbar__item strong {
  display: block;
  font-size: 14px;
  color: var(--brand-colors--primary, #48281f);
  margin-bottom: 2px;
}
.bl-b2b-quickbar__item small {
  font-size: 12px;
  color: rgba(72,40,31,0.5);
}
.bl-b2b-quickbar__arrow { color: rgba(72,40,31,0.3); flex-shrink: 0; }

/* ── Listino B2B ── */
.bl-listino {
  background: var(--brand-colors--background-color, #f8f5f1);
  padding: 56px 40px 80px;
}
.bl-listino__inner {
  max-width: 1100px;
  margin: 0 auto;
}
.bl-listino__topbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 32px;
  padding-bottom: 24px;
  border-bottom: 1px solid rgba(72,40,31,0.1);
}
.bl-listino__discount-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: var(--brand-colors--primary, #48281f);
  color: rgba(255,255,255,0.8);
  font-size: 14px;
  border-radius: 50px;
  padding: 8px 20px;
}
.bl-listino__discount-badge strong { color: var(--brand-colors--secondary, #fcd5cd); }
.bl-listino__discount-badge--neutral {
  background: rgba(72,40,31,0.08);
  color: var(--brand-colors--primary, #48281f);
}
.bl-listino__actions {
  display: flex;
  align-items: center;
  gap: 16px;
}
.bl-listino__print-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}
.bl-listino__back-link {
  font-size: 14px;
  color: rgba(72,40,31,0.55);
  text-decoration: none;
  transition: color .15s;
}
.bl-listino__back-link:hover { color: var(--brand-colors--primary, #48281f); }
.bl-listino__empty {
  text-align: center;
  padding: 48px;
  color: rgba(72,40,31,0.5);
  font-style: italic;
}
/* Grid prodotti listino */
.bl-listino__grid {
  display: flex;
  flex-direction: column;
  gap: 1px;
  background: rgba(72,40,31,0.08);
  border-radius: 16px;
  overflow: hidden;
  margin-bottom: 40px;
}
.bl-listino__item {
  display: grid;
  grid-template-columns: 72px 1fr auto auto;
  align-items: center;
  gap: 20px;
  background: #fff;
  padding: 16px 20px;
  transition: background .1s;
}
.bl-listino__item:hover { background: rgba(72,40,31,0.02); }
.bl-listino__item-img {
  width: 72px;
  height: 72px;
  object-fit: cover;
  border-radius: 10px;
  flex-shrink: 0;
}
.bl-listino__item-body { min-width: 0; }
.bl-listino__item-name {
  display: block;
  font-size: 15px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  margin-bottom: 4px;
}
.bl-listino__item-cat {
  font-size: 12px;
  color: rgba(72,40,31,0.45);
  text-transform: uppercase;
  letter-spacing: .06em;
}
.bl-listino__item-prices {
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 2px;
  text-align: right;
}
.bl-listino__item-regular {
  font-size: 13px;
  color: rgba(72,40,31,0.4);
  text-decoration: line-through;
}
.bl-listino__item-b2b {
  font-size: 18px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
}
.bl-listino__item-cta {
  display: inline-block;
  padding: 8px 18px;
  background: var(--brand-colors--primary, #48281f);
  color: #fff !important;
  text-decoration: none;
  border-radius: 50px;
  font-size: 13px;
  font-weight: 600;
  white-space: nowrap;
  transition: opacity .15s;
}
.bl-listino__item-cta:hover { opacity: .8; }
.bl-listino__footer {
  text-align: center;
  padding-top: 40px;
  border-top: 1px solid rgba(72,40,31,0.1);
  color: rgba(72,40,31,0.6);
  font-size: 14px;
}
.bl-listino__footer a { color: var(--brand-colors--primary, #48281f); }

/* ── Richieste miscela (dashboard tab) ── */
.bl-richieste__list { display: flex; flex-direction: column; gap: 12px; }
.bl-richiesta-card {
  background: var(--brand-colors--background-color, #f8f5f1);
  border-radius: 14px;
  padding: 20px 24px;
}
.bl-richiesta-card__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.bl-richiesta-card__meta {
  display: flex;
  align-items: center;
  gap: 12px;
}
.bl-richiesta-card__num {
  font-size: 15px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
}
.bl-richiesta-card__date {
  font-size: 13px;
  color: rgba(72,40,31,0.5);
}
.bl-richiesta-card__right {
  display: flex;
  align-items: center;
  gap: 8px;
}
.bl-richiesta-card__tipo {
  font-size: 12px;
  font-weight: 700;
  border-radius: 50px;
  padding: 4px 10px;
}
.bl-richiesta-card__tipo--miscela {
  background: rgba(72,40,31,0.08);
  color: var(--brand-colors--primary, #48281f);
}
.bl-richiesta-card__tipo--tostatura {
  background: rgba(252,213,205,0.5);
  color: var(--brand-colors--primary, #48281f);
}
.bl-richiesta-card__status {
  font-size: 12px;
  color: rgba(72,40,31,0.5);
  border: 1px solid rgba(72,40,31,0.15);
  border-radius: 50px;
  padding: 3px 10px;
}
.bl-richiesta-card__items {
  font-size: 14px;
  color: var(--brand-colors--primary, #48281f);
  line-height: 1.7;
  padding-bottom: 12px;
  border-bottom: 1px solid rgba(72,40,31,0.08);
  margin-bottom: 12px;
}
.bl-richiesta-card__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.bl-richiesta-card__total {
  font-size: 16px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
}
.bl-richiesta-card__link {
  font-size: 13px;
  font-weight: 600;
  color: var(--brand-colors--primary, #48281f);
  text-decoration: underline;
  text-underline-offset: 3px;
}

/* Print styles listino */
@media print {
  .navbar, footer, .bl-cart-drawer, .bl-listino__print-btn,
  .bl-print-hide { display: none !important; }
  .bl-page-hero { padding: 24px 24px 20px; }
  .bl-page-hero__title { font-size: 36px !important; }
  .bl-listino { background: #fff; padding: 0; }
  .bl-listino__item { break-inside: avoid; }
  .bl-listino__item-cta { display: none; }
}

/* ── Responsive B2B ── */
@media (max-width: 1024px) {
  .bl-reseller-grid          { grid-template-columns: 1fr 1fr; }
  .bl-blend__layout          { grid-template-columns: 1fr; }
  .bl-blend__origins         { max-height: 320px; }
  .bl-blend__composer-layout { grid-template-columns: 1fr; }
  .bl-blend__composer-sidebar { position: static; }
  .bl-b2b-quickbar__inner    { grid-template-columns: 1fr 1fr; padding: 0 24px; }
  .bl-listino__item          { grid-template-columns: 56px 1fr auto auto; gap: 14px; }
}
@media (max-width: 767px) {
  .bl-page-hero { padding: 120px 24px 56px; }
  .bl-reseller-benefits { padding: 56px 24px; }
  .bl-reseller-grid { grid-template-columns: 1fr; }
  .bl-register-section { padding: 56px 24px; }
  .bl-register-form__row { grid-template-columns: 1fr; }
  .bl-b2b-dashboard { padding: 40px 20px; }
  .bl-b2b-tabs { overflow-x: auto; }
  .bl-b2b-tab { padding: 12px 14px; font-size: 14px; white-space: nowrap; }
  .bl-b2b-tab-panel { padding: 24px 20px; }
  .bl-tost-products { grid-template-columns: 1fr 1fr; }
  .bl-tost-days { grid-template-columns: 1fr; }
  .bl-blend__layout          { grid-template-columns: 1fr; }
  .bl-blend__composer-layout { grid-template-columns: 1fr; }
  .bl-blend__composer-sidebar { order: -1; position: static; }
  .bl-blend__right { order: -1; }
  /* Strip */
  .bl-b2b-strip__inner { padding: 14px 20px; gap: 8px; }
  .bl-b2b-strip__sep, .bl-b2b-strip__greeting { display: none; }
  .bl-b2b-strip__text { font-size: 14px; }
  /* Quickbar */
  .bl-b2b-quickbar__inner { grid-template-columns: 1fr; padding: 0 20px; }
  .bl-b2b-quickbar__item  { border-right: none; border-bottom: 1px solid rgba(72,40,31,0.08); }
  .bl-b2b-quickbar__item:last-child { border-bottom: none; }
  /* Listino */
  .bl-listino { padding: 32px 20px 56px; }
  .bl-listino__topbar { flex-direction: column; align-items: flex-start; gap: 16px; }
  .bl-listino__item {
    grid-template-columns: 48px 1fr;
    grid-template-rows: auto auto;
    gap: 4px 12px;
    align-items: start;
  }
  .bl-listino__item-img { grid-row: 1 / 3; }
  .bl-listino__item-prices {
    display: flex !important;
    grid-column: 2;
    font-size: 13px;
    gap: 10px;
  }
  .bl-listino__item-cta { display: none; }
  /* Assistenza */
  .bl-support-cols { grid-template-columns: 1fr; }
  /* WhatsApp FAB */
  .bl-whatsapp-fab { bottom: 16px; left: 16px; }
  .bl-whatsapp-fab__label { display: none; }
}

/* ═══════════════════════════════════════════════════════════════
   §20 — WHATSAPP FAB + ASSISTENZA B2B
   ═══════════════════════════════════════════════════════════════ */

/* ── WhatsApp floating button ── */
.bl-whatsapp-fab {
  position: fixed;
  bottom: 28px;
  left: 28px;
  z-index: 9000;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #25d366;
  color: #fff;
  text-decoration: none;
  border-radius: 50px;
  padding: 13px 20px 13px 16px;
  box-shadow: 0 4px 20px rgba(37,211,102,.35);
  transition: transform .2s ease, box-shadow .2s ease;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .01em;
}
.bl-whatsapp-fab:hover {
  transform: translateY(-3px);
  box-shadow: 0 8px 28px rgba(37,211,102,.45);
  color: #fff;
}
.bl-whatsapp-fab svg { flex-shrink: 0; }
.bl-whatsapp-fab__label { white-space: nowrap; }

/* ── Sezione Assistenza B2B ── */
.bl-support-wrap { padding: 4px 0 40px; }

.bl-support-cols {
  display: grid;
  grid-template-columns: 1fr 380px;
  gap: 48px;
  align-items: start;
}

/* Form */
.bl-support-form-wrap { }
.bl-support-field { margin-bottom: 20px; }
.bl-support-label {
  display: block;
  font-size: 13px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  letter-spacing: .04em;
  text-transform: uppercase;
  margin-bottom: 8px;
}
.bl-support-select,
.bl-support-textarea {
  width: 100%;
  border: 1.5px solid rgba(72,40,31,0.2);
  border-radius: 10px;
  padding: 12px 16px;
  font-size: 15px;
  color: var(--brand-colors--primary, #48281f);
  background: #fff;
  transition: border-color .15s;
  font-family: inherit;
  outline: none;
}
.bl-support-select:focus,
.bl-support-textarea:focus { border-color: var(--brand-colors--primary, #48281f); }
.bl-support-textarea { resize: vertical; min-height: 140px; }
.bl-support-feedback {
  margin-top: 14px;
  font-size: 14px;
  font-weight: 600;
  min-height: 20px;
}
.bl-support-feedback--ok    { color: #2e7d32; }
.bl-support-feedback--error { color: #c62828; }

/* Storico richieste */
.bl-support-history {
  background: var(--brand-colors--background-color, #f8f5f1);
  border-radius: 16px;
  padding: 24px;
}
.bl-support-history__title {
  font-size: 14px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .06em;
  color: var(--brand-colors--primary, #48281f);
  margin: 0 0 20px;
}
.bl-support-empty {
  font-size: 14px;
  color: rgba(72,40,31,.5);
  text-align: center;
  padding: 24px 0;
  line-height: 1.6;
}
.bl-support-item {
  background: #fff;
  border-radius: 10px;
  padding: 14px 16px;
  margin-bottom: 10px;
  border: 1px solid rgba(72,40,31,.07);
}
.bl-support-item:last-child { margin-bottom: 0; }
.bl-support-item__top {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
  gap: 8px;
}
.bl-support-item__tipo {
  font-size: 12px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
}
.bl-support-item__date {
  font-size: 11px;
  color: rgba(72,40,31,.45);
  white-space: nowrap;
}
.bl-support-item__msg {
  font-size: 13px;
  color: rgba(72,40,31,.7);
  margin: 0;
  line-height: 1.5;
}

/* ── Mini-cart: blend item fix ── */
.bl-cart-drawer .wc-item-meta {
  font-size: 12px;
  line-height: 1.5;
  margin-top: 4px;
}
.bl-cart-drawer .wc-item-meta dt,
.bl-cart-drawer .wc-item-meta dd {
  display: inline;
  margin: 0;
  padding: 0;
}
.bl-cart-drawer .wc-item-meta dt { font-weight: 700; }
.bl-cart-drawer .wc-item-meta dt::after { content: ': '; }
.bl-cart-drawer .wc-item-meta dd::after { content: '  '; }
.bl-cart-drawer .woocommerce-mini-cart__item a:not([href]) {
  pointer-events: none;
  cursor: default;
}

/* ═══════════════════════════════════════════════════════════════
   §21 — CATEGORY CARDS (menu-item as <a> link)
   ═══════════════════════════════════════════════════════════════ */
/* Immagine riempie tutta la card senza padding laterale */
.menu-iimage-wrap {
  padding: 0 !important;
}
.menu-image {
  object-fit: cover !important;
  border-radius: inherit;
}

a.menu-item {
  text-decoration: none !important;
  cursor: pointer;
  transition: transform 0.22s ease, opacity 0.22s ease;
}
a.menu-item:hover,
a.menu-item:focus {
  transform: translateY(-4px);
  outline: none;
}
a.menu-item:hover .menu-image,
a.menu-item:focus .menu-image {
  opacity: 0.88;
}
a.menu-item .menu-name {
  transition: color 0.2s;
}
a.menu-item:hover .menu-name,
a.menu-item:focus .menu-name {
  color: var(--brand-colors--secondary, #febd02);
}

/* ═══════════════════════════════════════════════════════════════
   §22 — CATEGORIA PRODOTTI (page-category-landing.php)
   ═══════════════════════════════════════════════════════════════ */

/* Hero con immagine categoria */
.bl-page-hero--category {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 0;
  overflow: hidden;
}
.bl-page-hero--category .bl-page-hero__inner {
  padding-right: 48px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}
.bl-cat-hero-img-wrap {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-radius: 32px;
  margin: 48px 48px 48px 0;
  min-height: 320px;
}
.bl-cat-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 32px;
}
/* Senza immagine: layout hero standard */
.bl-page-hero--category:not(.has-cat-image) {
  grid-template-columns: 1fr;
}
.bl-page-hero--category:not(.has-cat-image) .bl-page-hero__inner {
  padding-right: 0;
}

/* ── Banda pattern (divisore) ── */
.bl-cat-pattern-band {
  width: 100%;
  line-height: 0;
  overflow: hidden;
}
.bl-cat-pattern-band img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* ── Storia ── */
.bl-cat-story {
  position: relative;
  overflow: hidden;
  background: var(--brand-colors--background-color, #f8f5f1);
  padding: 80px 48px;
}
.bl-cat-story__inner {
  max-width: 800px;
  margin: 0 auto;
}
.bl-cat-story__accent {
  position: absolute;
  right: 4%;
  bottom: 24px;
  width: clamp(90px, 11vw, 170px);
  height: auto;
  z-index: 1;
  pointer-events: none;
}
@media (max-width: 767px) {
  .bl-cat-story__accent { width: 80px; right: 12px; bottom: 12px; }
}
.bl-cat-story__label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--brand-colors--secondary, #febd02);
  margin-bottom: 16px;
}
.bl-cat-story__text {
  font-size: 18px;
  line-height: 1.75;
  color: var(--brand-colors--primary, #48281f);
}
.bl-cat-story__text p { margin-bottom: 16px; }
.bl-cat-story__text p:last-child { margin-bottom: 0; }

/* ── Griglia prodotti: permette più righe ── */
.bl-cat-product-grid {
  grid-auto-rows: auto !important;
  flex-wrap: wrap;
}

/* Stato vuoto */
.bl-cat-empty {
  text-align: center;
  padding: 80px 24px;
  color: rgba(255,255,255,.55);
  font-size: 18px;
}

/* ── Responsive ── */
@media (max-width: 991px) {
  .bl-page-hero--category {
    grid-template-columns: 1fr;
  }
  .bl-cat-hero-img-wrap {
    margin: 0 24px 40px;
    min-height: 220px;
  }
  .bl-page-hero--category .bl-page-hero__inner {
    padding-right: 0;
  }
  .bl-cat-story {
    padding: 48px 24px;
  }
}
@media (max-width: 479px) {
  .bl-cat-hero-img-wrap { min-height: 180px; border-radius: 20px; }
  .bl-cat-story__text { font-size: 16px; }
}

/* ═══════════════════════════════════════════════════════════════
   §23 — SPEDIZIONI E RESI (page-spedizione.php)
   ═══════════════════════════════════════════════════════════════ */

/* ── Cards intro ── */
.bl-ship-intro {
  background: var(--brand-colors--background-color, #f8f5f1);
  padding: 64px 48px;
}
.bl-ship-intro__inner {
  max-width: 900px;
  margin: 0 auto;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
.bl-ship-card {
  background: #fff;
  border: 1px solid rgba(72,40,32,.1);
  border-radius: 20px;
  padding: 32px 28px;
  text-align: center;
}
.bl-ship-card__icon {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--brand-colors--primary, #48281f);
  color: var(--brand-colors--secondary, #febd02);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 20px;
}
.bl-ship-card__title {
  font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif;
  font-size: 28px;
  text-transform: uppercase;
  color: var(--brand-colors--primary, #48281f);
  margin: 0 0 8px;
}
.bl-ship-card__sub {
  font-size: 14px;
  color: rgba(72,40,32,.6);
  margin: 0;
  line-height: 1.5;
}

/* ── Sezione dettagli ── */
.bl-ship-section {
  background: #fff;
  padding: 80px 48px;
}
.bl-ship-section__inner {
  max-width: 860px;
  margin: 0 auto;
}
.bl-ship-block {
  padding: 48px 0;
}
.bl-ship-block__label {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 3px;
  text-transform: uppercase;
  color: var(--brand-colors--secondary, #febd02);
  margin-bottom: 12px;
}
.bl-ship-block__title {
  font-family: var(--_font-family---font-family--heading-text, 'Tanker'), Impact, sans-serif;
  font-size: 40px;
  text-transform: uppercase;
  color: var(--brand-colors--primary, #48281f);
  margin: 0 0 28px;
}
.bl-ship-divider {
  height: 1px;
  background: rgba(72,40,32,.1);
}

/* ── Tabella ── */
.bl-ship-table-wrap {
  overflow-x: auto;
  margin-bottom: 24px;
  border-radius: 12px;
  border: 1px solid rgba(72,40,32,.12);
}
.bl-ship-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 15px;
}
.bl-ship-table th {
  background: var(--brand-colors--primary, #48281f);
  color: #fff;
  padding: 14px 20px;
  text-align: left;
  font-weight: 600;
  font-size: 13px;
  letter-spacing: .5px;
}
.bl-ship-table td {
  padding: 14px 20px;
  border-bottom: 1px solid rgba(72,40,32,.08);
  color: var(--brand-colors--primary, #48281f);
}
.bl-ship-table tr:last-child td { border-bottom: none; }
.bl-ship-table__highlight td {
  background: rgba(254,189,2,.08);
  font-weight: 600;
}
.bl-ship-badge {
  display: inline-block;
  background: var(--brand-colors--secondary, #febd02);
  color: var(--brand-colors--primary, #48281f);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: 1px;
  padding: 3px 10px;
  border-radius: 20px;
}

/* ── Prosa ── */
.bl-ship-notes {
  font-size: 15px;
  line-height: 1.7;
  color: rgba(72,40,32,.75);
}
.bl-ship-notes p { margin-bottom: 12px; }
.bl-ship-prose { font-size: 16px; line-height: 1.75; color: rgba(72,40,32,.85); }
.bl-ship-prose p { margin-bottom: 16px; }
.bl-ship-prose h3 {
  font-size: 18px;
  font-weight: 700;
  color: var(--brand-colors--primary, #48281f);
  margin: 28px 0 12px;
}
.bl-ship-prose ul,
.bl-ship-prose ol { padding-left: 24px; margin-bottom: 16px; }
.bl-ship-prose li { margin-bottom: 6px; }
.bl-ship-prose a { color: var(--brand-colors--primary, #48281f); font-weight: 600; }
.bl-ship-prose a:hover { color: var(--brand-colors--secondary, #febd02); }

/* ── Alert info ── */
.bl-ship-alert {
  display: flex;
  gap: 12px;
  align-items: flex-start;
  background: rgba(254,189,2,.1);
  border: 1px solid rgba(254,189,2,.4);
  border-radius: 10px;
  padding: 16px 20px;
  font-size: 14px;
  color: var(--brand-colors--primary, #48281f);
  margin-top: 20px;
}
.bl-ship-alert svg { flex-shrink: 0; margin-top: 1px; color: #c9970e; }

/* ── Blocco contatto ── */
.bl-ship-block--contact {
  text-align: center;
  padding-bottom: 16px;
}
.bl-ship-block--contact .bl-ship-block__title { margin-bottom: 12px; }
.bl-ship-block--contact p { color: rgba(72,40,32,.7); margin-bottom: 28px; font-size: 16px; }
.bl-ship-contact-row {
  display: flex;
  gap: 16px;
  justify-content: center;
  flex-wrap: wrap;
}

/* ── Responsive ── */
@media (max-width: 768px) {
  .bl-ship-intro { padding: 48px 24px; }
  .bl-ship-intro__inner { grid-template-columns: 1fr; gap: 16px; }
  .bl-ship-section { padding: 48px 24px; }
  .bl-ship-block__title { font-size: 32px; }
  .bl-ship-table th,
  .bl-ship-table td { padding: 12px 14px; font-size: 14px; }
}

/* ── 18. FOOTER — banda pattern brand ─────────────────────────────
   Immagine caricata da Personalizza → Footer. Formato consigliato:
   PNG trasparente 1920×120px, banda fissa non ripetuta.
   Posizionata a filo con il bordo superiore della section (fuori dal
   padding-top), per fare da divisore netto col blocco sopra —
   sostituisce il vecchio video di sfondo stock, rimosso perché la
   copriva. */
.bl-footer__pattern-band {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  line-height: 0;
  overflow: hidden;
  z-index: 1;
}
.bl-footer__pattern-band img {
  display: block;
  width: 100%;
  height: auto;
  object-fit: cover;
}

/* Dati aziendali (ragione sociale, P.IVA, contatti) — Personalizza → Footer */
.footer-legal {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 1px solid rgba(255,255,255,0.15);
}
.footer-legal__company {
  color: rgba(255,255,255,0.8);
  font-size: 13px;
  margin: 0 0 4px;
}
.footer-legal__contact {
  font-size: 13px;
  margin: 0;
}
.footer-legal__contact a {
  color: rgba(255,255,255,0.8);
  text-decoration: none;
}
.footer-legal__contact a:hover { color: #fff; text-decoration: underline; }

/* ── Sezione "Crea la tua Miscela" (home) ─────────────────────────
   Promuove il configuratore miscele, esclusivo per i rivenditori B2B
   approvati: prima non era annunciato da nessuna parte pubblicamente,
   quindi di fatto una funzionalità invisibile. Sfondo pieno scuro
   (stesso trattamento di CTA/quote) per farla notare subito, appena
   dopo l'hero. */
.bl-blend-feature {
  background: var(--brand-colors--primary, #48281f);
  padding: 72px 0;
}
.bl-blend-feature__grid {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px;
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
  flex-direction: column;
}
.bl-blend-feature__icon-badge {
  width: 88px;
  height: 88px;
  border-radius: 50%;
  background: var(--brand-colors--secondary, #fcd5cd);
  color: var(--brand-colors--primary, #48281f);
  display: flex;
  align-items: center;
  justify-content: center;
}
.bl-blend-feature__tag {
  display: inline-block;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .08em;
  color: var(--brand-colors--secondary, #fcd5cd);
  background: rgba(252,213,205,0.12);
  border-radius: 999px;
  padding: 6px 16px;
  margin-bottom: 18px;
}
.bl-blend-feature__heading {
  font-family: 'Libre Baskerville', Georgia, serif;
  font-size: clamp(30px, 4vw, 44px);
  line-height: 1.15;
  color: #fff;
  margin: 0 0 16px;
}
.bl-blend-feature__text {
  font-size: 16px;
  line-height: 1.7;
  color: rgba(255,255,255,0.75);
  max-width: 560px;
  margin: 0 auto 28px;
}
@media (max-width: 600px) {
  .bl-blend-feature { padding: 56px 0; }
  .bl-blend-feature__icon-badge { width: 72px; height: 72px; }
  .bl-blend-feature__icon-badge svg { width: 44px; height: 44px; }
}
@media screen and (max-width: 767px) {
  .product-button-wrap {
    inset: auto 0% 15px 0%;
    background-color: transparent;
  }
}
