/*
Theme Name: Drive In
Theme URI: https://drivein.lan.ga
Description: Tema Drive In — LANGA BAZAR. Modello C chat-first con sidebar espandibile.
Version: 22.4-promo-zfix
Author: LANGA Galaxy
Text Domain: drivein
*/

/* ============================================================
   VARIABILI
   ============================================================ */
:root {
  --lb-w: 260px;
  --lb-ic: 52px;
  --dur: .25s;
  --ease: cubic-bezier(.4,0,.2,1);
  --rosa: #E8487F;
  --rosa-s: rgba(232,72,127,.07);
  --rosa-b: rgba(232,72,127,.18);
  --azz: #56B4D3;
  --bazar: #7c3aed;
  --easy: #1d3557;
  --bg: #fff;
  --sf: #F9FAFB;
  --sf2: #F3F4F6;
  --bd: #E5E7EB;
  --t1: #1F2937;
  --t2: #374151;
  --tm: #6B7280;
  --tl: #9CA3AF;
  --r: 8px;
  --rm: 12px;
  --rl: 16px;
  --bai-grad: linear-gradient(135deg, #6a4c93, #E8487F);
  --bai-dark: linear-gradient(135deg, #0d0014 0%, #1a0030 100%);
  --sec-industria: #1F3A5F;
  --sec-logistica: #F57C00;
  --sec-medicale: #0288D1;
  --sec-agricoltura: #43A047;
  --sec-creativo: #7B1FA2;
  --sec-edile: #6D4C41;
  --sec-servizi: #455A64;
  --sec-horeca: #C62828;
}

/* ============================================================
   RESET
   ============================================================ */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; overflow: hidden; }
body {
  font-family: 'DM Sans', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  font-size: 15px; line-height: 1.55; color: var(--t1);
  background: var(--bg); -webkit-font-smoothing: antialiased;
}
a { color: inherit; text-decoration: none; }
button { font-family: inherit; cursor: pointer; border: none; background: none; font-size: inherit; }

/* ============================================================
   LAYOUT — 3 colonne
   ============================================================ */
.app { display: flex; height: 100vh; overflow: hidden; }

/* ── LEFTBAR ── */
.lb {
  width: var(--lb-w); min-width: var(--lb-w); height: 100vh;
  background: var(--sf); border-right: .5px solid var(--bd);
  display: flex; flex-direction: column;
  overflow: visible; position: relative; flex-shrink: 0; z-index: 2;
  transition: width var(--dur) var(--ease), min-width var(--dur) var(--ease);
}
body.lb-ic .lb { width: var(--lb-ic); min-width: var(--lb-ic); }

.lbl {
  display: inline; transition: opacity var(--dur), max-width var(--dur);
  max-width: 200px; overflow: hidden; white-space: nowrap;
}
body.lb-ic .lbl { opacity: 0; max-width: 0; pointer-events: none; }

.lb-hd {
  padding: 14px 10px 8px; flex-shrink: 0;
  display: flex; align-items: center; gap: 10px;
}
body.lb-ic .lb-hd { justify-content: center; padding: 12px 0 4px; gap: 0; }

.lb-logo { height: 32px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.lb-logo-full { height: 24px; width: auto; display: block; border-radius: 4px; mix-blend-mode: multiply; }
body.lb-ic .lb-logo-full { display: none; }
.lb-logo-icon { display: none; width: 28px; height: 28px; border-radius: var(--r); }
body.lb-ic .lb-logo-icon { display: block; }

.lb-new {
  margin: 4px 8px 6px; padding: 9px 14px; border-radius: var(--r);
  background: var(--rosa-s); border: 1px solid var(--rosa-b);
  color: var(--rosa); font-size: 14px; font-weight: 600;
  display: flex; align-items: center; gap: 0;
  overflow: hidden; transition: all var(--dur);
}
.lb-new:hover { background: var(--rosa-b); }
.lb-new svg { flex-shrink: 0; }
body.lb-ic .lb-new {
  padding: 0; margin: 2px 8px; height: 36px;
  background: none; border-color: transparent; color: var(--tm);
  border-radius: var(--r);
  display: flex; align-items: center; justify-content: center;
}
body.lb-ic .lb-new:hover { background: var(--sf2); color: var(--rosa); }

.lb-search {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; margin: 0 6px 0; border-radius: var(--r);
  color: var(--tm); font-size: 13.5px; cursor: pointer;
  white-space: nowrap; overflow: hidden;
  background: none; border: none;
  transition: background var(--dur), color var(--dur);
}
.lb-search:hover { background: var(--sf2); color: var(--t1); }
.lb-search svg { flex-shrink: 0; }
body.lb-ic .lb-search {
  padding: 0; margin: 2px 8px; height: 36px; gap: 0;
  display: flex; align-items: center; justify-content: center;
  border-radius: var(--r); color: var(--tm);
}
body.lb-ic .lb-search:hover { background: var(--sf2); color: var(--rosa); }

/* Search popup */
.di-search-overlay {
  display: none; position: fixed; inset: 0; z-index: 900;
  background: rgba(0,0,0,.4); backdrop-filter: blur(2px);
  justify-content: center; padding-top: 12vh;
}
.di-search-overlay.open { display: flex; }
.di-search-popup {
  width: 580px; max-width: 92vw; max-height: 70vh;
  background: var(--bg); border-radius: var(--rl);
  box-shadow: 0 16px 60px rgba(0,0,0,.2);
  display: flex; flex-direction: column; overflow: hidden;
  animation: diSearchIn .15s var(--ease);
}
@keyframes diSearchIn { from { opacity: 0; transform: translateY(-8px) scale(.98); } }
@keyframes diPulse { 0%,100% { opacity: 1; } 50% { opacity: .4; } }
.di-search-head {
  display: flex; align-items: center; gap: 10px;
  padding: 16px 20px; border-bottom: .5px solid var(--bd);
}
.di-search-input {
  flex: 1; border: none; background: none; outline: none;
  font-size: 16px; font-family: inherit; color: var(--t1);
}
.di-search-input::placeholder { color: var(--tl); }
.di-search-kbd {
  font-size: 11px; font-weight: 600; color: var(--tl);
  padding: 2px 8px; border: 1px solid var(--bd);
  border-radius: 4px; font-family: inherit;
}
.di-search-results { flex: 1; overflow-y: auto; padding: 8px 0; max-height: 50vh; }
.di-search-results::-webkit-scrollbar { width: 4px; }
.di-search-results::-webkit-scrollbar-thumb { background: var(--bd); border-radius: 4px; }
.di-search-empty { display: flex; align-items: center; justify-content: center; padding: 40px 20px; }
.di-search-group-title {
  font-size: 10px; font-weight: 700; text-transform: uppercase;
  letter-spacing: .06em; color: var(--tl); padding: 10px 14px 4px;
}
.di-search-item {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 14px; cursor: pointer; border-radius: 6px;
  transition: background .1s;
}
.di-search-item:hover { background: var(--sf); }
.di-search-item-icon { flex-shrink: 0; color: var(--tm); }
.di-search-item-icon.product { background: var(--rosa-s); color: var(--rosa); width: 28px; height: 28px; border-radius: var(--r); display: flex; align-items: center; justify-content: center; }
.di-search-item-icon.chat { background: rgba(86,180,211,.1); color: var(--azz); width: 28px; height: 28px; border-radius: var(--r); display: flex; align-items: center; justify-content: center; }
.di-search-item-icon.page { background: var(--sf2); color: var(--tm); width: 28px; height: 28px; border-radius: var(--r); display: flex; align-items: center; justify-content: center; }
.di-search-item-body { flex: 1; min-width: 0; }
.di-search-item-title { font-size: 13px; font-weight: 500; color: var(--t1); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.di-search-item-desc { font-size: 11px; color: var(--tl); margin-top: 1px; }
.di-search-item-type { font-size: 11px; color: var(--tl); white-space: nowrap; flex-shrink: 0; }

/* Nav items */
.lb-nav { padding: 0 6px 4px; display: flex; flex-direction: column; gap: 1px; }
.lb-nav-item {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; border-radius: var(--r);
  color: var(--tm); font-size: 13.5px; cursor: pointer;
  white-space: nowrap; overflow: hidden;
  transition: background var(--dur), color var(--dur);
}
.lb-nav-item:hover { background: var(--sf2); color: var(--t1); }
.lb-nav-item svg { flex-shrink: 0; }
.lb-nav-badge {
  margin-left: auto; font-size: 10px; font-weight: 700;
  padding: 1px 7px; border-radius: 10px;
  background: var(--rosa); color: #fff; flex-shrink: 0;
}
body.lb-ic .lb-nav { padding: 0 8px; align-items: stretch; gap: 0; }
body.lb-ic .lb-nav-item {
  padding: 0; margin: 2px 0; height: 36px; gap: 0;
  display: flex; align-items: center; justify-content: center; color: var(--tm);
}
body.lb-ic .lb-nav-item:hover { color: var(--rosa); }
body.lb-ic .lb-nav-item .lbl { display: none; }
body.lb-ic .lb-nav-badge { display: none; }

/* Recenti */
.lb-sect { transition: all var(--dur); overflow: hidden; }
body.lb-ic .lb-sect { opacity: 0; height: 0; pointer-events: none; }
.lb-stit {
  padding: 14px 14px 6px; font-size: 11px; font-weight: 700;
  color: var(--tl); text-transform: uppercase; letter-spacing: .06em;
}
.lb-ls { flex: 1; overflow-y: auto; overflow-x: hidden; padding: 0 6px 8px; }
.lb-ls::-webkit-scrollbar { width: 3px; }
.lb-ls::-webkit-scrollbar-thumb { background: var(--bd); border-radius: 3px; }
.lb-ch {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 10px; border-radius: var(--r);
  color: var(--tm); font-size: 13.5px; cursor: pointer;
  white-space: nowrap; overflow: hidden;
  transition: background var(--dur), color var(--dur);
}
.lb-ch:hover { background: var(--sf2); color: var(--t1);  }
.lb-ch.active { background: var(--rosa-s); color: var(--rosa); }
.lb-ch svg { flex-shrink: 0; opacity: .4; }

/* Footer */
.lb-ft {
  flex-shrink: 0; border-top: .5px solid var(--bd);
  padding: 10px 10px; display: flex; align-items: center;
  gap: 8px; transition: all var(--dur);
  cursor: pointer; margin-top: auto; position: relative;
}
.lb-ft:hover { background: var(--sf2); }
body.lb-ic .lb-ft { padding: 10px 0; gap: 0; display: flex; align-items: center; justify-content: center; }
body.lb-ic .lb-ft:hover { color: var(--rosa); }
.lb-av {
  width: 30px; height: 30px; border-radius: 50%;
  background: var(--rosa); color: #fff;
  font-size: 12px; font-weight: 700; flex-shrink: 0;
  display: flex; align-items: center; justify-content: center;
  transition: all var(--dur);
}
body.lb-ic .lb-av { background: none; color: var(--tm); border: 1px solid var(--bd); margin: 0; }
body.lb-ic .lb-ft:hover .lb-av { border-color: var(--rosa); color: var(--rosa); }
.lb-uinfo { flex: 1; min-width: 0; transition: all var(--dur); overflow: hidden; }
body.lb-ic .lb-uinfo { opacity: 0; max-width: 0; width: 0; padding: 0; margin: 0; overflow: hidden; pointer-events: none; }
body.lb-ic .lb-ft svg.lbl { display: none; width: 0; }
.lb-un { font-size: 13px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.lb-us { font-size: 11px; color: var(--tm); }

/* Dropdown */
.lb-dropdown {
  display: none; position: fixed; bottom: auto; left: 8px;
  width: 240px; background: var(--bg); border: 1px solid var(--bd);
  border-radius: var(--rm); box-shadow: 0 4px 16px rgba(0,0,0,.1);
  z-index: 1000; padding: 6px;
}
.lb-dropdown.open { display: block; }
body.lb-ic .lb-dropdown { left: 4px; width: 220px; }
.lb-dd-item {
  display: flex; align-items: center; gap: 10px;
  padding: 9px 12px; border-radius: var(--r);
  font-size: 13px; color: var(--tm); cursor: pointer;
  transition: background .15s, color .15s; white-space: nowrap; text-decoration: none;
}
.lb-dd-item:hover { background: var(--sf2); color: var(--t1); }
.lb-dd-item svg { flex-shrink: 0; }
.lb-dd-sep { height: 1px; background: var(--bd); margin: 4px 0; }
.lb-dd-status { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; color: var(--tl); margin-left: auto; }
.lb-dd-dot { width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; }

/* Toggle */
.lb-tog {
  position: absolute; top: 50%; right: 0;
  transform: translate(50%, -50%);
  z-index: 20; width: 28px; height: 28px; border-radius: 50%;
  background: var(--bg); border: 1px solid var(--bd);
  box-shadow: 0 1px 4px rgba(0,0,0,.1);
  display: flex; align-items: center; justify-content: center;
  transition: background var(--dur);
}
.lb-tog:hover { background: var(--sf2); }
.lb-tog svg { transition: transform var(--dur); }
body.lb-ic .lb-tog svg { transform: rotate(180deg); }

/* ============================================================
   SECTOR COLORS
   ============================================================ */
body.sector-industria { --rosa: #1F3A5F; --rosa-s: rgba(31,58,95,.07); --rosa-b: rgba(31,58,95,.18); }
body.sector-logistica { --rosa: #F57C00; --rosa-s: rgba(245,124,0,.07); --rosa-b: rgba(245,124,0,.18); }
body.sector-medicale { --rosa: #0288D1; --rosa-s: rgba(2,136,209,.07); --rosa-b: rgba(2,136,209,.18); }
body.sector-agricoltura { --rosa: #43A047; --rosa-s: rgba(67,160,71,.07); --rosa-b: rgba(67,160,71,.18); }
body.sector-creativo { --rosa: #7B1FA2; --rosa-s: rgba(123,31,162,.07); --rosa-b: rgba(123,31,162,.18); }
body.sector-edile { --rosa: #6D4C41; --rosa-s: rgba(109,76,65,.07); --rosa-b: rgba(109,76,65,.18); }
body.sector-servizi { --rosa: #455A64; --rosa-s: rgba(69,90,100,.07); --rosa-b: rgba(69,90,100,.18); }
body.sector-horeca { --rosa: #C62828; --rosa-s: rgba(198,40,40,.07); --rosa-b: rgba(198,40,40,.18); }

body.sector-agroalimentare { --rosa: #43A047; --rosa-s: rgba(67,160,71,.07); --rosa-b: rgba(67,160,71,.18); }
body.sector-design { --rosa: #7B1FA2; --rosa-s: rgba(123,31,162,.07); --rosa-b: rgba(123,31,162,.18); }
body.sector-artigianato { --rosa: #6D4C41; --rosa-s: rgba(109,76,65,.07); --rosa-b: rgba(109,76,65,.18); }
body.sector-turismo { --rosa: #C62828; --rosa-s: rgba(198,40,40,.07); --rosa-b: rgba(198,40,40,.18); }

/* ============================================================
   BREADCRUMB BAR
   ============================================================ */
.di-bc {
  flex-shrink: 0; display: flex; align-items: center; flex-wrap: wrap;
  gap: 4px; padding: 10px 20px; font-size: 13px; color: var(--tl); min-height: 40px;
}
.di-bc-link { color: var(--tm); text-decoration: none; font-weight: 500; transition: color .15s; }
.di-bc-link:hover { color: var(--t1); }
.di-bc-sep { flex-shrink: 0; color: #ababab; }
.di-bc-sector {
  display: inline-flex; align-items: center; gap: 6px;
  padding: 2px 10px; border-radius: 20px;
  background: var(--rosa-s); border: 1px solid var(--rosa-b);
  font-size: 12px; font-weight: 500; color: var(--rosa);
}
.di-bc-x { cursor: pointer; opacity: .5; font-size: 14px; line-height: 1; transition: opacity .15s; }
.di-bc-x:hover { opacity: 1; }
.di-bc-current { color: var(--t1); font-weight: 600; }
.di-bc-actions { margin-left: auto; display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.di-bc-btn {
  padding: 4px 10px; border-radius: 6px; font-size: 11px; font-weight: 600; color: var(--tm);
  border: 1px solid var(--bd); background: var(--bg);
  cursor: pointer; transition: all .15s; display: inline-flex;
  align-items: center; gap: 4px; text-decoration: none; white-space: nowrap;
}
.di-bc-btn:hover { border-color: var(--rosa); color: var(--rosa); }
.di-bc-btn.bai { background: var(--bai-grad); color: #fff; border: none; padding: 2px 8px; font-size: 12px; }
.di-bc-btn.bai:hover { opacity: .9; }
.di-bc-cat { }
body.sb-on .di-bc-cat { display: none; }
.di-bc-reset {
  padding: 4px 10px; border-radius: 6px; font-size: 11px; font-weight: 600; color: var(--tm);
  border: 1px solid var(--bd); background: var(--bg);
  cursor: pointer; transition: all .15s; display: flex; align-items: center; gap: 4px; white-space: nowrap;
}
.di-bc-reset:hover { border-color: var(--rosa); color: var(--rosa); }

/* ============================================================
   CENTRO
   ============================================================ */
.ctr { flex: 1; min-width: 0; display: flex; flex-direction: column; overflow: hidden; }
.ch-scroll { flex: 1; overflow-y: auto; display: flex; justify-content: center; scroll-behavior: smooth; }
.ch-scroll::-webkit-scrollbar { width: 4px; }
.ch-scroll::-webkit-scrollbar-thumb { background: var(--bd); border-radius: 4px; }
.ch-inner { width: 100%; max-width: 800px; padding: 28px 24px 120px; }

/* Messaggi */
.msg { margin-bottom: 16px; animation: diMsgIn .4s ease both; }
@keyframes diMsgIn { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
.msg-sys .msg-bub {
  background: var(--rosa-s); border: 1px solid var(--rosa-b);
  padding: 14px 18px; border-radius: 4px 16px 16px 16px;
  font-size: 14px; line-height: 1.65; max-width: 85%;
}
.msg-sys .msg-bub strong { font-weight: 600; }
.msg-usr { display: flex; justify-content: flex-end; }
.msg-usr .msg-bub {
  background: var(--sf2); border: 1px solid var(--bd);
  padding: 10px 16px; border-radius: 16px 16px 4px 16px;
  font-size: 14px; max-width: 80%;
}
.msg-from { font-size: 12px; font-weight: 600; color: var(--tm); display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.msg-body { font-size: 15px; line-height: 1.65; }
.msg-body strong { font-weight: 600; }

/* AI Working state */
body.di-ai-working .sugs, body.di-ai-working .in-bar { pointer-events: none; opacity: .3; }
body.di-ai-working .sb { position: relative; }
.di-ai-overlay {
  position: absolute; bottom: 0; left: 0; right: 0; z-index: 50; padding: 8px 12px;
  background: linear-gradient(135deg, #0d0014ee, #1a0030ee);
  display: flex; align-items: center; gap: 8px;
  font-size: 12px; font-weight: 600; color: rgba(255,255,255,.8);
  animation: diPulse 2s infinite;
}
.di-ai-overlay svg { flex-shrink: 0; }

.tb {
  display: inline-flex; align-items: center; gap: 4px;
  padding: 2px 8px; border-radius: 20px;
  background: rgba(86,180,211,.08); border: 1px solid rgba(86,180,211,.15);
  font-size: 10.5px; font-weight: 600; color: var(--azz);
}

/* Workflow */
.wf { display: flex; flex-direction: column; margin: 12px 0 20px; }
.wf-s { display: flex; gap: 14px; padding: 14px 0; }
.wf-s + .wf-s { border-top: .5px solid var(--bd); }
.wf-n { width: 26px; height: 26px; border-radius: 50%; flex-shrink: 0; background: var(--rosa); color: #fff; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.wf-t { font-size: 14px; font-weight: 600; margin-bottom: 2px; }
.wf-d { font-size: 13px; color: var(--tm); line-height: 1.45; }
.wf-w { display: inline-flex; align-items: center; gap: 4px; margin-top: 4px; font-size: 11px; font-weight: 600; color: var(--azz); }

/* Suggerimenti */
.sugs { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 20px; }
.sg {
  padding: 10px 18px; border-radius: 24px;
  border: 1.5px solid var(--bd); background: var(--bg);
  color: var(--t1); font-size: 14px; font-weight: 500;
  transition: all var(--dur); white-space: nowrap;
  display: flex; align-items: center; gap: 6px;
}
.sg:hover { border-color: var(--rosa); color: var(--rosa); background: var(--rosa-s); }
.sg.ai { border-color: transparent; background: var(--bai-grad); color: #fff; }
.sg.ai:hover { border-color: transparent; background: linear-gradient(135deg, #5a3d83, #d13d6c); color: #fff; }

/* Input bar */
.in-bar { flex-shrink: 0; display: flex; justify-content: center; padding: 12px 24px calc(16px + env(safe-area-inset-bottom, 0px)); background: var(--bg); border-top: .5px solid var(--bd); }
.in-inner { width: 100%; max-width: 800px; }
.bai {
  display: flex; align-items: center; gap: 12px;
  padding: 12px 16px; border-radius: var(--rm);
  background: var(--bai-dark); cursor: pointer; transition: box-shadow var(--dur);
}
.bai:hover { box-shadow: 0 4px 20px rgba(124,58,237,.25); }
.bai-ic { width: 32px; height: 32px; border-radius: 50%; background: var(--bai-grad); flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.bai-tx { flex: 1; }
.bai-tt { font-size: 14px; font-weight: 700; color: #fff; }
.bai-su { font-size: 12px; color: rgba(255,255,255,.5); margin-top: 1px; }

/* ============================================================
   SIDEBAR DESTRA
   ============================================================ */
.sb {
  width: 0; min-width: 0; height: 100vh;
  border-left: .5px solid var(--bd); background: var(--bg);
  display: flex; flex-direction: column; overflow: hidden; flex-shrink: 0;
  transition: flex var(--dur) var(--ease), width var(--dur) var(--ease), min-width var(--dur) var(--ease);
}
body.sb-on .sb { flex: 1; width: auto; min-width: 340px; }
.sb-hd { flex-shrink: 0; display: flex; align-items: center; padding: 0 8px 0 4px; height: 50px; border-bottom: .5px solid var(--bd); }
.sb-tabs { display: flex; flex: 1; height: 100%; align-items: center; }
.sb-tab {
  padding: 0 10px; height: 100%; font-size: 12px; font-weight: 500;
  color: var(--tm); border-bottom: 1.5px solid transparent;
  margin-bottom: -1px; display: flex; align-items: center;
  gap: 5px; white-space: nowrap; transition: color .15s, border-color .15s;
}
.sb-tab:hover { color: var(--t2); }
.sb-tab.active { color: var(--rosa); border-bottom-color: var(--rosa); font-weight: 600; }
.sb-tab-num { width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 700; flex-shrink: 0; background: var(--sf2); color: var(--tm); }
.sb-tab.active .sb-tab-num { background: var(--rosa); color: #fff; }
.sb-tab-arrow { flex-shrink: 0; opacity: .3; }
.tab-badge { width: 6px; height: 6px; border-radius: 50%; background: var(--rosa); display: inline-block; margin-left: 4px; position: relative; top: -6px; vertical-align: top; font-size: 0; }
.sb-back { display: flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 500; color: var(--tm); padding: 5px 8px; border-radius: var(--r); transition: all .15s; flex-shrink: 0; }
.sb-back:hover { background: var(--sf2); color: var(--rosa); }
.sb-tit { font-size: 14px; font-weight: 600; flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; padding: 0 8px; }
.sb-x { width: 36px; height: 36px; border-radius: var(--r); flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: var(--tm); transition: background var(--dur); }
.sb-x:hover { background: var(--sf2); color: var(--t1); }
.sb-bd { flex: 1; overflow-y: auto; }
.sb-bd::-webkit-scrollbar { width: 4px; }
.sb-bd::-webkit-scrollbar-thumb { background: var(--bd); border-radius: 4px; }

/* ── Catalogo ── */
.cat-s { padding: 14px 16px; }
.cat-fl { display: flex; gap: 5px; overflow-x: auto; scroll-behavior: smooth; scrollbar-width: none; -ms-overflow-style: none; }
.cat-fl::-webkit-scrollbar { display: none; }
.cpill { padding: 6px 12px; border-radius: 20px; border: 1px solid var(--bd); background: var(--bg); font-size: 12px; font-weight: 500; color: var(--tm); white-space: nowrap; transition: all .15s; }
.cpill:hover { border-color: var(--rosa); color: var(--rosa); }
.cpill.active { border-color: var(--rosa); color: var(--rosa); background: var(--rosa-s); font-weight: 600; }
.il { display: flex; flex-direction: column; gap: 6px; }
.ic { padding: 14px; border: 1px solid var(--bd); border-radius: var(--rm); cursor: pointer; transition: border-color .15s, box-shadow .15s; }
.ic:hover { border-color: var(--rosa); box-shadow: 0 2px 8px var(--rosa-s); }
.ic.sel { border-color: var(--rosa); background: var(--rosa-s); }
.ic-r { display: flex; justify-content: space-between; align-items: flex-start; gap: 8px; }
.ic-n { font-size: 14px; font-weight: 600; }
.ic-p { font-size: 13.5px; font-weight: 700; color: var(--rosa); white-space: nowrap; flex-shrink: 0; }
.ic-d { font-size: 12px; color: var(--tm); margin-top: 3px; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ic-m { display: flex; align-items: center; gap: 6px; margin-top: 8px; }
.ic-tag { font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: 4px; }
.ic-tag.P { background: var(--rosa-s); color: var(--rosa); }
.ic-tag.R { background: rgba(86,180,211,.1); color: var(--azz); }
.ic-tm { font-size: 10.5px; color: var(--tl); margin-left: auto; display: flex; align-items: center; gap: 3px; }

/* Cascade glow */
.ic.di-glow {
  border: 1px solid #E8487F !important;
  box-shadow: 0 0 0 1px #6a4c93, 0 0 18px rgba(232,72,127,.3), 0 0 6px rgba(106,76,147,.2) !important;
  overflow: visible !important; transform: scale(1.02) !important;
  transition: all .3s ease !important; position: relative; z-index: 2;
  background: linear-gradient(135deg, rgba(106,76,147,.03), rgba(232,72,127,.05)) !important;
}
@keyframes diCatPulse {
  0% { box-shadow: 0 0 0 rgba(232,72,127, 0); }
  50% { box-shadow: 0 0 20px rgba(232,72,127, .15); border-color: var(--rosa); }
  100% { box-shadow: 0 0 0 rgba(232,72,127, 0); }
}
.cat-card.di-pulse { animation: diCatPulse .6s ease; }

/* ── Scheda prodotto ── */
.pd { padding: 0 0 20px; }
.pd-hero { width: 100%; height: 160px; display: flex; align-items: center; justify-content: center; color: #fff; flex-direction: column; gap: 8px; border-bottom: .5px solid var(--bd); }
.pd-hero svg { opacity: .8; }
.pd-slider { display: flex; gap: 6px; padding: 12px 16px; overflow-x: auto; }
.pd-slider::-webkit-scrollbar { height: 3px; }
.pd-slider::-webkit-scrollbar-thumb { background: var(--bd); border-radius: 3px; }
.pd-th { width: 64px; height: 46px; border-radius: 6px; background: var(--sf2); border: 1.5px solid var(--bd); flex-shrink: 0; display: flex; align-items: center; justify-content: center; cursor: pointer; transition: border-color .15s; }
.pd-th:hover { border-color: var(--rosa); }
.pd-th.on { border-color: var(--rosa); border-width: 1px; }
.pd-th svg { opacity: .3; width: 16px; height: 16px; }
.pd-th.vid { position: relative; }
.pd-th.vid::after { content: ''; position: absolute; inset: 0; border-radius: 6px; background: rgba(0,0,0,.1); }
.pd-th.vid svg { opacity: .7; z-index: 1; position: relative; }
.pd-b { padding: 16px 16px 0; }
.pd-pr { display: flex; align-items: baseline; gap: 10px; margin-bottom: 4px; padding: 0 16px; margin-top: 12px; }
.pd-price { font-size: 24px; font-weight: 700; color: var(--rosa); }
.pd-mode { font-size: 11px; font-weight: 600; padding: 3px 10px; border-radius: 20px; }
.pd-desc { font-size: 14px; color: var(--t2); line-height: 1.55; margin-bottom: 20px; }
.pd-sec { margin-bottom: 16px; }
.pd-lab { font-size: 11px; font-weight: 700; color: var(--tl); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 8px; }
.pd-incs { display: flex; flex-direction: column; gap: 5px; }
.pd-inc { display: flex; align-items: flex-start; gap: 8px; font-size: 13px; color: var(--t2); line-height: 1.45; }
.pd-inc svg { flex-shrink: 0; margin-top: 2px; }
.pd-time { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: var(--sf); border-radius: var(--r); margin-bottom: 10px; font-size: 13px; }
.pd-time svg { flex-shrink: 0; color: var(--tl); }
.pd-team { padding: 12px; background: rgba(86,180,211,.04); border: 1px solid rgba(86,180,211,.12); border-radius: var(--rm); }
.pd-team-h { font-size: 13px; font-weight: 600; color: var(--azz); display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.pd-team-b { font-size: 12px; color: var(--tm); line-height: 1.5; }
.pd-salse { display: flex; flex-direction: column; gap: 5px; }
.pd-sa { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; border: 1px solid var(--bd); border-radius: var(--r); cursor: pointer; transition: all .15s; }
.pd-sa:hover { border-color: var(--azz); background: rgba(86,180,211,.03); }
.pd-sa-on { border-color: var(--azz); background: rgba(86,180,211,.04); }
.pd-sa-on:hover { background: rgba(86,180,211,.06); }
.pd-sa-n { font-size: 12.5px; font-weight: 500; }
.pd-sa-sc { font-size: 10px; color: var(--azz); font-weight: 600; }
.pd-sa-p { font-size: 12.5px; font-weight: 600; color: var(--azz); white-space: nowrap; }
.pd-add { width: calc(100% - 32px); margin: 0 16px; padding: 14px; border-radius: var(--rm); background: var(--rosa); color: #fff; font-size: 15px; font-weight: 600; display: flex; align-items: center; justify-content: center; gap: 8px; transition: background var(--dur); }
.pd-add:hover { background: #d13d6c; }
.pd-add.in { background: var(--bg); color: var(--rosa); border: 1.5px solid var(--rosa-b); }
.pd-rn { text-align: center; margin: 10px 16px 0; font-size: 12px; color: var(--tm); }
.pd-aft { padding: 14px 16px; background: var(--sf); border-radius: var(--rm); margin: 12px 0 0; }
.pd-aft-lab { font-size: 11px; font-weight: 700; color: var(--tl); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 10px; }
.pd-aft-s { display: flex; align-items: flex-start; gap: 10px; padding: 5px 0; }
.pd-aft-dot { width: 7px; height: 7px; border-radius: 50%; flex-shrink: 0; margin-top: 5px; }
.pd-aft-t { font-size: 12px; color: var(--t2); line-height: 1.4; }

/* ── Carrello + Checkout ── */
.pv { padding: 20px 16px; }
.pv-empty { display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 50px 20px; text-align: center; gap: 10px; color: var(--tm); }
.ci { display: flex; align-items: center; gap: 10px; padding: 12px 0; border-bottom: .5px solid var(--bd); }
.ci:last-child { border-bottom: none; }
.ci-b { flex: 1; min-width: 0; }
.ci-n { font-size: 14px; font-weight: 500; }
.ci-tag { display: inline-block; margin-top: 3px; font-size: 10px; font-weight: 600; padding: 2px 7px; border-radius: 4px; }
.ci-p { font-size: 14px; font-weight: 700; white-space: nowrap; }
.ci-rm { width: 26px; height: 26px; border-radius: var(--r); flex-shrink: 0; display: flex; align-items: center; justify-content: center; color: var(--tl); transition: all .15s; }
.ci-rm:hover { background: var(--rosa-s); color: var(--rosa); }
.ct { border-top: 2px solid var(--bd); padding-top: 16px; display: flex; flex-direction: column; gap: 10px; }
.ct-row { display: flex; justify-content: space-between; align-items: baseline; }
.ct-num { font-size: 24px; font-weight: 700; }
.ct-lg { font-size: 12px; color: var(--tm); text-align: center; padding: 8px; background: rgba(86,180,211,.06); border-radius: var(--r); }
.ct-lg strong { color: var(--azz); }
.rate-row { display: flex; gap: 6px; }
.rate-btn { flex: 1; padding: 10px; border-radius: var(--r); border: 1.5px solid var(--bd); font-size: 12.5px; font-weight: 500; color: var(--tm); text-align: center; transition: all .15s; }
.rate-btn:hover { border-color: var(--easy); color: var(--easy); }
.rate-btn.on { border-color: var(--easy); background: rgba(29,53,87,.04); color: var(--easy); font-weight: 600; }
.btn-e { width: 100%; padding: 14px; background: var(--easy); color: #fff; border-radius: var(--rm); font-size: 15px; font-weight: 600; display: flex; align-items: center; justify-content: center; gap: 8px; transition: background var(--dur); }
.btn-e:hover { background: #162840; }
.btn-go { width: 100%; padding: 14px; background: var(--rosa); color: #fff; border-radius: var(--rm); font-size: 15px; font-weight: 600; display: flex; align-items: center; justify-content: center; gap: 8px; transition: background var(--dur); }
.btn-go:hover { background: #d13d6c; }

/* ============================================================
   BazarAI BANNERS
   ============================================================ */
.di-bai-icon { width: 36px; height: 36px; border-radius: 50%; background: var(--bai-grad); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.di-bai-icon svg { width: 16px; height: 16px; }
.di-bai-icon-sm { width: 16px; height: 16px; border-radius: 50%; background: var(--bai-grad); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.di-bai-icon-sm svg { width: 8px; height: 8px; }
.di-bai-dark { background: var(--bai-dark); border-radius: var(--rm); padding: 16px 20px; display: flex; align-items: center; gap: 14px; cursor: pointer; transition: box-shadow .2s; }
.di-bai-dark:hover { box-shadow: 0 4px 20px rgba(124,58,237,.25); }
.di-bai-dark__text { flex: 1; }
.di-bai-dark__title { color: #fff; font-weight: 700; font-size: 15px; }
.di-bai-dark__sub { color: rgba(255,255,255,.5); font-size: 13px; margin-top: 2px; }
.di-bai-dark__cta { background: var(--rosa); color: #fff; font-size: 13px; font-weight: 700; padding: 8px 16px; border-radius: 20px; white-space: nowrap; flex-shrink: 0; }
.di-bai-light { background: rgba(124,58,237,.04); border: 1px solid rgba(124,58,237,.12); border-radius: var(--rm); padding: 14px 18px; display: flex; align-items: center; gap: 12px; }
.di-bai-light__text { flex: 1; }
.di-bai-light__title { font-size: 14px; font-weight: 700; color: var(--t1); }
.di-bai-light__sub { font-size: 12px; color: var(--tm); margin-top: 2px; }
.di-bai-light__cta { display: flex; align-items: center; gap: 6px; padding: 8px 16px; border-radius: 20px; background: var(--bai-grad); color: #fff; font-size: 13px; font-weight: 700; white-space: nowrap; }
.di-bai-score { background: var(--bai-dark); border-radius: var(--rm); padding: 16px 20px; margin-bottom: 16px; }
.di-bai-score__head { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; }
.di-bai-score__info { flex: 1; }
.di-bai-score__label { color: #fff; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 8px; }
.di-bai-score__badge { font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 4px; background: var(--bai-grad); color: #fff; }
.di-bai-score__sub { color: rgba(255,255,255,.5); font-size: 12px; margin-top: 2px; }
.di-bai-score__val { text-align: right; flex-shrink: 0; }
.di-bai-score__num { font-size: 2rem; font-weight: 800; color: #fff; line-height: 1; }
.di-bai-score__max { font-size: 12px; color: rgba(255,255,255,.4); }
.di-bai-score__bar { position: relative; height: 8px; background: rgba(255,255,255,.1); border-radius: 4px;  }
.di-bai-score__bar-fill { height: 100%; background: var(--bai-grad); border-radius: 4px; transition: width .5s ease; }

/* Studios banner */
.di-studios-banner { border-radius: var(--rm); overflow: hidden; border: 1px solid #e8ddd3; background: #F4EBE2; }
.di-studios-banner__body { display: grid; grid-template-columns: 1fr 200px; min-height: 140px; }
.di-studios-banner__content { padding: 20px 22px 16px; }
.di-studios-banner__tag { display: flex; align-items: center; gap: 6px; margin-bottom: 10px; font-size: 11px; font-weight: 600; color: #7a6555; text-transform: uppercase; letter-spacing: .1em; }
.di-studios-banner__title { font-family: Georgia, serif; font-size: 17px; font-weight: 700; color: #2a1f1a; line-height: 1.3; margin-bottom: 6px; }
.di-studios-banner__desc { font-size: 13px; color: #5a4a3a; line-height: 1.55; margin-bottom: 14px; }
.di-studios-banner__services { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-bottom: 14px; }
.di-studios-banner__svc { display: flex; align-items: center; gap: 4px; font-size: 12px; color: #5a4a3a; font-weight: 500; }
.di-studios-banner__svc svg { width: 11px; height: 11px; color: #7a6555; }
.di-studios-banner__cta { display: inline-flex; align-items: center; gap: 5px; padding: 7px 14px; border-radius: 20px; background: #2a1f1a; color: #F4EBE2; font-size: 12px; font-weight: 600; }
.di-studios-banner__img { position: relative; overflow: hidden; }
.di-studios-banner__img img { width: 100%; height: 100%; object-fit: cover; filter: grayscale(100%) contrast(1.05); object-position: center top; }
.di-studios-banner__foot { border-top: 1px solid #ddd0c4; padding: 7px 22px; display: flex; align-items: center; justify-content: space-between; font-size: 12px; }
.di-studios-banner__foot span { color: #7a6555; }
.di-studios-banner__foot a { font-weight: 600; color: #2a1f1a; }

/* ============================================================
   PAGE CONTENT
   ============================================================ */
.pg-content { max-width: 800px; width: 100%; margin: 0 auto; padding: 20px 24px 60px; }
.pg-head { margin-bottom: 24px; }
.pg-title { font-size: 24px; font-weight: 700; color: var(--t1); line-height: 1.3; letter-spacing: -.02em; margin: 0; }
.pg-excerpt { font-size: 15px; color: var(--tm); line-height: 1.6; margin: 8px 0 0; }
.pg-hero { margin-bottom: 24px; border-radius: 12px; overflow: hidden; }
.pg-hero-img { width: 100%; height: auto; display: block; }
.pg-body { font-size: 15px; line-height: 1.75; color: var(--t1); }
.pg-body h2 { font-size: 19px; font-weight: 700; margin: 28px 0 12px; }
.pg-body h3 { font-size: 16px; font-weight: 600; margin: 24px 0 10px; }
.pg-body p { margin: 0 0 16px; }
.pg-body img { max-width: 100%; border-radius: 8px; margin: 16px 0; }
.pg-body a { color: var(--rosa); text-decoration: underline; text-underline-offset: 2px; }
.pg-body ul, .pg-body ol { padding-left: 20px; margin: 12px 0; }
.pg-body li { margin-bottom: 6px; }
.pg-body blockquote { border-left: 3px solid var(--rosa); padding: 12px 16px; margin: 16px 0; background: var(--sf); border-radius: 0 8px 8px 0; font-style: italic; color: var(--tm); }

/* Featured image float left in articles */
.blog-article .pg-hero { float: left; width: 45%; max-width: 380px; margin: 0 24px 16px 0; }
.blog-article .pg-hero-img { width: 100%; height: auto; max-height: 600px; object-fit: cover; border-radius: 12px; }
.blog-article .pg-body::after { content: ""; display: table; clear: both; }

/* Page children grid */
.pg-children { margin-top: 36px; }
.pg-children-title { font-size: 16px; font-weight: 600; margin: 0 0 14px; color: var(--t1); }
.pg-children-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.pg-child-card { display: flex; flex-direction: column; background: var(--sf); border: 1px solid var(--bd); border-radius: 10px; overflow: hidden; text-decoration: none; transition: border-color .2s, box-shadow .2s; }
.pg-child-card:hover { border-color: var(--rosa); box-shadow: 0 4px 12px rgba(0,0,0,.06); }
.pg-child-thumb { height: 120px; overflow: hidden; background: var(--sf); }
.pg-child-thumb img { width: 100%; height: 100%; object-fit: cover; }
.pg-child-ph { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--sf), var(--bd)); }
.pg-child-info { padding: 12px; }
.pg-child-name { font-size: 14px; font-weight: 600; color: var(--t1); }
.pg-child-desc { font-size: 12px; color: var(--tm); margin-top: 4px; line-height: 1.4; }

/* ============================================================
   BLOG STYLES
   ============================================================ */
.blog-meta { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; font-size: 12px; color: var(--tm); }
.blog-cat { background: var(--rosa); color: #fff; padding: 2px 10px; border-radius: 20px; font-weight: 600; text-decoration: none; font-size: 11px; letter-spacing: .02em; }
.blog-date, .blog-read { display: flex; align-items: center; gap: 4px; }
.blog-footer { margin-top: 32px; }
.blog-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 24px; }
.blog-tag { font-size: 12px; padding: 4px 12px; border: 1px solid var(--bd); border-radius: 20px; color: var(--tm); text-decoration: none; transition: all .15s; }
.blog-tag:hover { border-color: var(--rosa); color: var(--rosa); }

/* Blog CTA box */
.blog-cta { background: var(--sf); border: 1px solid var(--bd); border-radius: 12px; padding: 20px; margin-bottom: 24px; }
.blog-cta strong { color: var(--t1); font-size: 15px; }
.blog-cta p { color: var(--tm); font-size: 14px; margin: 6px 0 14px; line-height: 1.5; }
.blog-cta-btn { display: inline-flex; align-items: center; gap: 6px; padding: 10px 18px; border-radius: 8px; font-size: 13px; font-weight: 600; text-decoration: none; transition: opacity .15s; }
.blog-cta-btn.primary { background: var(--rosa); color: #fff; }
.blog-cta-btn.secondary { background: var(--bai-grad); color: #fff; }
.blog-cta-btn:hover { opacity: .9; }

/* Blog related */
.blog-related-title { font-size: 16px; font-weight: 600; margin: 0 0 14px; color: var(--t1); }
.blog-related-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.blog-related-card { background: var(--sf); border: 1px solid var(--bd); border-radius: 10px; overflow: hidden; }
.blog-related-ph { height: 100px; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--sf), var(--bd)); }
.blog-related-info { padding: 12px; }
.blog-related-name { font-size: 13px; font-weight: 600; color: var(--t1); }
.blog-related-desc { font-size: 12px; color: var(--tm); margin-top: 3px; }

/* ============================================================
   BLOG GRID + PORTFOLIO — Unica definizione, zero duplicati
   ============================================================ */
.blog-subcats { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 20px; }
.blog-subcat { padding: 6px 14px; border: 1px solid var(--bd); border-radius: 20px; font-size: 13px; color: var(--tm); text-decoration: none; font-weight: 500; transition: all .15s; }
.blog-subcat:hover { border-color: var(--rosa); color: var(--rosa); }

.blog-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 16px; margin-bottom: 24px;
}
.blog-card {
  display: flex; flex-direction: column;
  background: var(--sf); border: 1px solid var(--bd); border-radius: 12px;
  overflow: hidden; text-decoration: none;
  transition: border-color .2s, box-shadow .2s;
  height: 100%;
}
.blog-card:hover { border-color: var(--rosa); box-shadow: 0 4px 16px rgba(0,0,0,.06); }

.blog-card-thumb {
  width: 100%; aspect-ratio: 16/10;
  overflow: hidden; background: var(--sf2); flex-shrink: 0;
}
.blog-card-thumb img {
  width: 100% !important; height: 100% !important;
  object-fit: cover !important; display: block;
}
.blog-card-ph { display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--sf), var(--bd)); }

.blog-card-body {
  padding: 14px 16px 16px;
  display: flex; flex-direction: column; flex: 1;
}
.blog-card-cat { font-size: 11px; font-weight: 600; color: var(--rosa); text-transform: uppercase; letter-spacing: .3px; margin-bottom: 6px; }
.blog-card-title {
  font-size: 15px; font-weight: 600; color: var(--t1);
  margin: 0 0 6px; line-height: 1.35;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.blog-card-excerpt {
  font-size: 13px; color: var(--tm); line-height: 1.5;
  margin: 0 0 auto;
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.blog-card-meta {
  display: flex; gap: 12px; margin-top: 12px; font-size: 11px; color: var(--tl);
  padding-top: 10px; border-top: 1px solid var(--bd);
}

/* Portfolio variante */
.blog-grid--portfolio { grid-template-columns: repeat(3, 1fr); }
.blog-card--portfolio .blog-card-thumb { aspect-ratio: 3/4; }
.blog-card-tags { display: flex; gap: 4px; margin-bottom: 4px; }
.blog-card-tag { font-size: 10px; font-weight: 600; padding: 2px 8px; border-radius: 10px; background: var(--rosa-s); color: var(--rosa); }

.blog-empty { text-align: center; padding: 60px 0; color: var(--tm); }
.blog-empty a { color: var(--rosa); }

/* Pagination */
.nav-links { display: flex; justify-content: center; gap: 6px; }
.nav-links .page-numbers { padding: 8px 14px; border: 1px solid var(--bd); border-radius: 8px; font-size: 13px; color: var(--tm); text-decoration: none; transition: all .15s; }
.nav-links .page-numbers.current { background: var(--rosa); color: #fff; border-color: var(--rosa); }
.nav-links .page-numbers:hover:not(.current) { border-color: var(--rosa); color: var(--rosa); }

/* ============================================================
   BLOG SEARCH BAR
   ============================================================ */
.di-blog-search { display: flex; align-items: center; gap: 8px; margin-bottom: 16px; }
.di-blog-search-input {
  flex: 1; padding: 10px 14px; border: 1.5px solid var(--bd);
  border-radius: 10px; font-size: 14px; font-family: inherit;
  color: var(--t1); background: var(--bg); outline: none; transition: border-color .15s;
}
.di-blog-search-input:focus { border-color: var(--rosa); }
.di-blog-search-input::placeholder { color: var(--tl); }
.di-blog-search-btn {
  padding: 10px 16px; border-radius: 10px; border: none;
  background: var(--rosa); color: #fff; font-size: 13px;
  font-weight: 600; cursor: pointer; font-family: inherit; transition: opacity .15s;
}
.di-blog-search-btn:hover { opacity: .88; }

/* ============================================================
   FILTER PILLS
   ============================================================ */
.di-filters {
  display: flex; flex-wrap: wrap; gap: 6px;
  margin-bottom: 20px; padding-bottom: 16px;
  border-bottom: 1px solid var(--bd);
}
.di-filter {
  display: inline-flex; align-items: center; gap: 5px;
  padding: 7px 14px; border-radius: 20px;
  font-size: 13px; font-weight: 500; color: var(--tm);
  background: var(--sf); border: 1px solid var(--bd);
  text-decoration: none; transition: all .15s; white-space: nowrap;
}
.di-filter:hover { border-color: var(--rosa); color: var(--rosa); background: var(--rosa-s); }
.di-filter.active { background: var(--rosa); color: #fff; border-color: var(--rosa); }
.di-filter-count { font-size: 11px; font-weight: 600; opacity: .6; }
.di-filter.active .di-filter-count { opacity: .8; }

/* ============================================================
   AUTO CTA — Injected in article body
   ============================================================ */
.di-auto-cta--inline { margin: 28px 0; border-left: 3px solid var(--rosa); }
.di-auto-cta__items { display: flex; flex-direction: column; gap: 6px; margin: 14px 0 16px; }
.di-auto-cta__item {
  display: flex; align-items: center; justify-content: space-between;
  padding: 10px 14px; border-radius: 8px;
  background: var(--bg); border: 1px solid var(--bd);
  text-decoration: none; transition: border-color .15s, background .15s;
}
.di-auto-cta__item:hover { border-color: var(--rosa); background: var(--rosa-s); }
.di-auto-cta__name { font-size: 13px; font-weight: 500; color: var(--t1); }
.di-auto-cta__price { font-size: 13px; font-weight: 600; color: var(--rosa); white-space: nowrap; }
.di-auto-cta__btns { display: flex; gap: 8px; flex-wrap: wrap; }

/* ============================================================
   PROMO BANNERS — Ambassador + Actions
   ============================================================ */
.di-promo-banner {
  display: flex; flex-wrap: wrap; align-items: center; gap: 14px;
  padding: 18px 20px; margin: 28px 0;
  background: linear-gradient(135deg, rgba(243,127,13,.04), rgba(243,127,13,.08));
  border: 1px solid rgba(243,127,13,.15);
  border-radius: 12px; transition: border-color .2s;
}
.di-promo-banner:hover { border-color: rgba(243,127,13,.3); }
.di-promo-banner__icon { width: 44px; height: 44px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: rgba(243,127,13,.1); border-radius: 12px; }
.di-promo-banner__body { flex: 1 1 80px; min-width: 0; }
.di-promo-banner__title { font-size: 15px; font-weight: 600; color: var(--t1); margin-bottom: 3px; }
.di-promo-banner__text { font-size: 13px; color: var(--tm); line-height: 1.5; }
.di-promo-banner__btn { flex: 1 1 auto; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 10px 18px; border-radius: 10px; font-size: 13px; font-weight: 600; border: none; cursor: pointer; font-family: inherit; transition: opacity .15s; white-space: nowrap; }
.di-promo-banner__btn:hover { opacity: .88; }
.di-promo-banner__btn--amb { background: #f37f0d; color: #fff; }

.di-promo-actions { display: flex; flex-direction: column; gap: 8px; margin: 28px 0; }
.di-promo-action {
  display: flex; align-items: center; gap: 14px;
  padding: 14px 16px; border-radius: 10px;
  background: var(--sf); border: 1px solid var(--bd);
  text-decoration: none; transition: border-color .15s, background .15s;
}
.di-promo-action:hover { border-color: var(--rosa); background: var(--rosa-s); }
.di-promo-action__icon { width: 36px; height: 36px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; border-radius: 10px; }
.di-promo-action__icon--rosa { background: var(--rosa-s); color: var(--rosa); }
.di-promo-action__icon--bai { background: var(--bai-grad); color: #fff; }
.di-promo-action__icon--easy { background: rgba(29,53,87,.08); color: var(--easy); }
.di-promo-action__text { flex: 1; min-width: 0; }
.di-promo-action__text strong { display: block; font-size: 14px; font-weight: 600; color: var(--t1); }
.di-promo-action__text span { display: block; font-size: 12px; color: var(--tm); margin-top: 2px; }
.di-promo-action__arrow { color: var(--tl); flex-shrink: 0; }
.di-promo-action:hover .di-promo-action__arrow { color: var(--rosa); }

/* ============================================================
   BOTTOM NAV MOBILE
   ============================================================ */
.bnav {
  display: none; position: fixed; bottom: 0; left: 0; right: 0;
  height: 60px; background: var(--bg); border-top: .5px solid var(--bd);
  z-index: 600; justify-content: space-around; align-items: center;
}
.bn { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 14px; font-size: 10px; font-weight: 500; color: var(--tm); cursor: pointer; -webkit-tap-highlight-color: transparent; transition: color .15s; }
.bn.active, .bn:hover { color: var(--rosa); }
.bn svg { width: 22px; height: 22px; }

/* Mobile leftbar overlay */
.lb-ov { display: none; position: fixed; inset: 0; background: rgba(0,0,0,.35); z-index: 699; }
body.lb-mob .lb-ov { display: block; }
body.lb-mob .lb { position: fixed !important; left: 0; top: 0; bottom: 0; z-index: 700; width: var(--lb-w) !important; min-width: var(--lb-w) !important; }
body.lb-mob .lbl { opacity: 1 !important; max-width: 200px !important; }
body.lb-mob .lb-sect { opacity: 1 !important; height: auto !important; }
body.lb-mob .lb-uinfo { opacity: 1 !important; max-width: 200px !important; }
body.lb-mob .lb-search { margin: 0 6px !important; height: auto !important; gap: 10px !important; }
body.lb-mob .lb-search .lbl { display: inline !important; opacity: 1 !important; max-width: 200px !important; }
body.lb-mob .lb-nav-item .lbl { display: inline !important; }
body.lb-mob .lb-nav-badge { display: inline-flex !important; }
body.lb-mob .lb-nav-item { justify-content: flex-start !important; height: auto !important; padding: 8px 10px !important; }
body.lb-mob .lb-ft svg.lbl { display: block !important; }
body.lb-mob .lb > * { opacity: 1 !important; pointer-events: auto !important; }

/* ============================================================
   ACCOUNT PAGES
   ============================================================ */
body.account-page .in-bar { display: none !important; }
body.account-page .ch-inner { max-width: 800px; padding: 32px 24px 60px; }
body.account-page .ctr { overflow-y: auto; }
body.account-page .ch-scroll { display: block; }
body.account-page .ch-inner { margin: 0 auto; }
body.account-page table td { padding: 12px 16px; border-bottom: .5px solid var(--bd); font-size: 14px; color: var(--t2); vertical-align: middle; }
body.account-page table tr:last-child td { border-bottom: none; }
body.account-page table tr:hover td { background: var(--sf); }

body.home-page { overflow: auto; }
body:not(.modello-c) { overflow: auto; }

/* Dashboard */
.di-dashboard { max-width: 800px; margin: 0 auto; padding: 32px 24px; }
.di-dash-title { font-size: 22px; font-weight: 700; margin-bottom: 24px; }
.di-dash-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 24px; }
.di-dash-card { padding: 20px; background: var(--sf); border-radius: var(--rm); }
.di-dash-card__label { font-size: 12px; font-weight: 600; color: var(--tm); text-transform: uppercase; letter-spacing: .05em; margin-bottom: 6px; }
.di-dash-card__val { font-size: 28px; font-weight: 700; }
.di-dash-card__sub { font-size: 12px; color: var(--tl); margin-top: 2px; }

/* Content pages */
body.content-page .ch-inner { max-width: 100%; padding: 0; }
body.content-page .ch-scroll { display: block; overflow-y: auto; }
body.content-page .ctr { overflow-y: auto; }
body.content-page .in-bar { display: none; }

/* Shield scan */
@keyframes diShScan { 0% { background: rgba(29,53,87,.08); } 100% { background: transparent; } }
@keyframes diBaiGlow {
  0%, 100% { box-shadow: 0 0 8px rgba(232,72,127,.15), 0 0 2px rgba(106,76,147,.1); }
  50% { box-shadow: 0 0 18px rgba(232,72,127,.25), 0 0 6px rgba(106,76,147,.2); }
}

/* Scrollbar */
::-webkit-scrollbar { width: 5px; height: 5px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--bd); border-radius: 5px; }
::-webkit-scrollbar-thumb:hover { background: var(--tl); }

/* ============================================================
   RESPONSIVE
   ============================================================ */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 1024px) {
  .blog-grid, .blog-grid--portfolio { grid-template-columns: repeat(2, 1fr); }
}
*/

/* Auto-collassa sidebar sotto 1200px */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 1200px) and (min-width: 901px) {
  .lb { width: var(--lb-ic) !important; min-width: var(--lb-ic) !important; }
  .lbl { opacity: 0; max-width: 0; pointer-events: none; }
  .lb-hd { justify-content: center; padding: 12px 0 4px; gap: 0; }
  .lb-logo-full { display: none; }
  .lb-logo-icon { display: block; }
  .lb-new { padding: 0; margin: 2px 8px; height: 36px; background: none; border-color: transparent; color: var(--tm); display: flex; align-items: center; justify-content: center; }
  .lb-new:hover { background: var(--sf2); color: var(--rosa); }
  .lb-search { padding: 0; margin: 2px 8px; height: 36px; background: none; border-color: transparent; justify-content: center; }
  .lb-chats { padding: 0; }
  .lb-recent-title { display: none; }
  .lb-chat-item .lbl { display: none; }
}
*/


/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  .lb { width: 0 !important; min-width: 0 !important; overflow: hidden; }
  .lb > * { opacity: 0; pointer-events: none; }
  .lb-tog { display: none !important; }
  .bnav { display: flex; }
  .app { padding-bottom: 60px; }
  body.sb-on .sb {
    flex: none !important; width: 100vw !important; min-width: 100vw !important;
    position: fixed; right: 0; top: 0; bottom: 60px; z-index: 500;
  }
}
*/

@media (min-width: 901px) {
  .bnav { display: none !important; }
  .lb-ov { display: none !important; }
}

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 768px) {
  .pg-content { padding: 16px 16px 40px; }
  .pg-title { font-size: 20px; }
  .pg-children-grid { grid-template-columns: 1fr; }
  .blog-related-grid { grid-template-columns: 1fr; }
  .blog-article .pg-hero { float: none; width: 100%; max-width: 100%; margin: 0 0 16px 0; }
  .blog-article .pg-hero-img { max-height: 400px; }
  .di-promo-banner { flex-direction: column; text-align: center; gap: 12px; }
  .di-promo-banner__btn { width: 100%; justify-content: center; }
  .di-auto-cta__btns { flex-direction: column; }
  .di-auto-cta__btns .blog-cta-btn { text-align: center; justify-content: center; }
  .di-filters { overflow-x: auto; flex-wrap: nowrap; -webkit-overflow-scrolling: touch; padding-bottom: 12px; }
  .di-filter { flex-shrink: 0; }
}
*/


/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 600px) {
  .blog-grid, .blog-grid--portfolio { grid-template-columns: 1fr; }
  .blog-card-thumb { aspect-ratio: 16/9; }
  .blog-card--portfolio .blog-card-thumb { aspect-ratio: 4/5; }
  .di-dash-grid { grid-template-columns: 1fr; }
  .di-studios-banner__body { grid-template-columns: 1fr; }
  .di-studios-banner__img { height: 120px; }
}
*/


/* ============================================================
   DARK MODE
   ============================================================ */
body.dark { --bg: #0f0f1a; --sf: #181828; --sf2: #1e1e30; --t1: #e4e4ee; --tm: #8888a0; --tl: #55556a; --bd: #252540; }
body.dark .lb { background: #111122; border-color: #252540; }
body.dark .sb { background: #111122; border-color: #252540; }
body.dark .di-bc { border-color: #252540; }
body.dark .ch-scroll { background: #0f0f1a; }
body.dark .msg-sys .msg-bub { background: #181828; border-color: #252540; color: #e4e4ee; }
body.dark .msg-usr .msg-bub { background: #252540; color: #e4e4ee; }
body.dark .in-bar { background: #111122; border-color: #252540; }
body.dark .lb-dropdown { background: #181828; border-color: #252540; box-shadow: 0 12px 40px rgba(0,0,0,.5); }
body.dark .lb-dd-item { color: #e4e4ee; }
body.dark .lb-dd-item:hover { background: #252540; }
body.dark .lb-dd-sep { background: #252540; }
body.dark .sugs button.sg { background: #181828; border-color: #252540; color: #e4e4ee; }
body.dark .sugs button.sg:hover { border-color: var(--rosa); }
body.dark .sugs button.sg.ai { background: var(--bai-grad); color: #fff; border-color: transparent; }
body.dark input, body.dark select, body.dark textarea { background: #181828; color: #e4e4ee; border-color: #252540; }
body.dark input:focus, body.dark select:focus, body.dark textarea:focus { border-color: var(--rosa); }
body.dark .sb-tab { color: #8888a0; border-color: transparent; }
body.dark .sb-tab.active { color: #e4e4ee; border-color: var(--rosa); }
body.dark .di-bc-link { color: #8888a0; }
body.dark .di-bc-link:hover { color: #e4e4ee; }
body.dark .di-bc-current { color: #e4e4ee; }
body.dark .di-bc-btn { background: #181828; border-color: #252540; color: #8888a0; }
body.dark .di-bc-btn:hover { border-color: var(--rosa); color: var(--rosa); }
body.dark .di-bc-reset { background: #181828; border-color: #252540; color: #8888a0; }
body.dark .di-bc-reset:hover { border-color: var(--rosa); color: var(--rosa); }
body.dark .lb-ch { color: #8888a0; }
body.dark .lb-ch:hover, body.dark .lb-ch.active { background: #252540; color: #e4e4ee; }
body.dark .lb-new { background: #181828; border-color: #252540; color: #e4e4ee; }
body.dark .lb-search { color: #8888a0; }
body.dark .lb-stit { color: #55556a; }
body.dark .lb-av { background: #252540; color: #e4e4ee; }
body.dark .lb-un { color: #e4e4ee; }
body.dark .lb-us { color: #8888a0; }
body.dark .lb-tog { color: #8888a0; border-color: #252540; }
body.dark .pg-body { color: #e4e4ee; }
body.dark .pg-body a { color: var(--rosa); }
body.dark .pg-body blockquote { background: #181828; border-color: var(--rosa); }
body.dark .pg-child-card { background: #181828; border-color: #252540; }
body.dark .pg-child-ph { background: linear-gradient(135deg, #181828, #252540); }
body.dark .blog-card { background: #181828; border-color: #252540; }
body.dark .blog-card:hover { box-shadow: 0 4px 16px rgba(0,0,0,.2); }
body.dark .blog-card-thumb { background: #1e1e30; }
body.dark .blog-card-ph { background: linear-gradient(135deg, #181828, #252540); }
body.dark .blog-cta { background: #181828; border-color: #252540; }
body.dark .blog-related-card { background: #181828; border-color: #252540; }
body.dark .blog-related-ph { background: linear-gradient(135deg, #181828, #252540); }
body.dark .blog-subcat { border-color: #252540; color: #8888a0; }
body.dark .di-search-popup { background: #181828; border-color: #252540; }
body.dark .di-search-input { background: #181828; color: #e4e4ee; }
body.dark .di-search-item:hover { background: #252540; }
body.dark .di-blog-search-input { background: #1e1e30; border-color: #252540; }
body.dark .di-filter { background: #1e1e30; border-color: #252540; }
body.dark .di-filter:hover { background: rgba(232,72,127,.08); }
body.dark .di-filter.active { background: var(--rosa); border-color: var(--rosa); }
body.dark .di-auto-cta--inline { border-left-color: var(--rosa); }
body.dark .di-auto-cta__item { background: #1e1e30; border-color: #252540; }
body.dark .di-auto-cta__item:hover { background: rgba(232,72,127,.1); border-color: var(--rosa); }
body.dark .di-promo-banner { background: linear-gradient(135deg, rgba(243,127,13,.06), rgba(243,127,13,.03)); border-color: rgba(243,127,13,.12); }
body.dark .di-promo-banner__icon { background: rgba(243,127,13,.12); }
body.dark .di-promo-action { background: #1e1e30; border-color: #252540; }
body.dark .di-promo-action:hover { background: rgba(232,72,127,.06); border-color: var(--rosa); }
body.dark .di-promo-action__icon--easy { background: rgba(29,53,87,.2); color: #7ca5c9; }

/* Logo dark mode */
body.dark .lb-logo-full { filter: brightness(0) invert(1); mix-blend-mode: normal; }
body.dark .lb-logo-icon { filter: brightness(0) invert(1); mix-blend-mode: normal; }

/* Dark theme toggle */
body.dark #di-theme-toggle, body.dark #di-theme-toggle-h { background: var(--rosa) !important; }
body.dark #di-theme-toggle > div, body.dark #di-theme-toggle-h > div { transform: translateX(16px); }

/* Dark sector card hover */
body.dark .di-sector-card:hover .di-sector-card-name { color: #fff !important; }
body.dark .di-sector-card:hover .di-sector-card-icon { color: #fff !important; }
body.dark .di-sector-card:hover .di-sector-meta span { color: rgba(255,255,255,.85) !important; border-color: rgba(255,255,255,.25) !important; }
/* ═══════════════════════════════════════════════════════════
   DRIVE IN — WOOCOMMERCE PRODUCT STYLES v1.0
   Aggiungere in fondo a style.css
   ═══════════════════════════════════════════════════════════ */

/* ── Layout prodotto singolo ───────────────────────────────── */

.single-product .product {
    max-width: 900px;
    margin: 0 auto;
    padding: 0 var(--sp-m);
}

.single-product .product .woocommerce-product-gallery {
    margin-bottom: var(--sp-l);
}

.single-product .product .woocommerce-product-gallery .woocommerce-product-gallery__image img {
    border-radius: 12px;
    border: 0.5px solid var(--grigio);
}

.single-product .product .summary.entry-summary {
    padding: 0;
}

.single-product .product .product_title {
    font-family: var(--ff);
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--testo);
    margin: 0 0 8px;
    line-height: 1.25;
}

.single-product .product .woocommerce-product-details__short-description {
    color: var(--testo-l);
    font-size: 0.9rem;
    line-height: 1.6;
    margin-bottom: var(--sp-m);
    padding-bottom: var(--sp-m);
    border-bottom: 0.5px solid var(--grigio);
}

/* ── Prezzo ────────────────────────────────────────────────── */

.single-product .product .price {
    font-family: var(--ff);
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--rosa);
    margin-bottom: var(--sp-s);
}

.single-product .product .price del {
    color: var(--testo-l);
    font-size: 1rem;
    font-weight: 400;
    text-decoration: line-through;
}

.single-product .product .price ins {
    text-decoration: none;
}

.single-product .product .price .woocommerce-Price-amount {
    color: inherit;
}

.single-product .product .price .woocommerce-Price-currencySymbol {
    font-size: 0.85em;
}

/* Prezzo "su misura" per prodotti senza prezzo */
.single-product .product .price:empty::after,
.single-product .product .price .amount:empty::after {
    content: 'Prezzo su misura';
    color: var(--azzurro);
    font-size: 1.1rem;
    font-weight: 600;
}

/* ── Badge tipo (P/R) ──────────────────────────────────────── */

.di-product-badges {
    display: flex;
    gap: 8px;
    margin-bottom: var(--sp-m);
    flex-wrap: wrap;
}

.di-badge {
    display: inline-flex;
    align-items: center;
    padding: 4px 12px;
    border-radius: 20px;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.02em;
    text-transform: uppercase;
}

.di-badge--project {
    background: var(--rosa-s);
    color: var(--rosa);
}

.di-badge--recurring {
    background: var(--azzurro-s);
    color: var(--azzurro);
}

.di-badge--rate {
    background: #f0f0f0;
    color: var(--testo-l);
}

/* ── Variazioni ────────────────────────────────────────────── */

.single-product .variations {
    margin-bottom: var(--sp-m);
    border: none;
}

.single-product .variations td {
    padding: 6px 0;
    border: none;
    vertical-align: middle;
}

.single-product .variations .label {
    font-weight: 600;
    font-size: 0.85rem;
    color: var(--testo);
    padding-right: 12px;
}

.single-product .variations select {
    width: 100%;
    padding: 10px 14px;
    border: 1px solid var(--grigio);
    border-radius: 8px;
    font-family: var(--ff);
    font-size: 0.9rem;
    background: #fff;
    color: var(--testo);
    cursor: pointer;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
}

.single-product .variations select:focus {
    border-color: var(--rosa);
    outline: none;
    box-shadow: 0 0 0 3px var(--rosa-s);
}

.single-product .woocommerce-variation-description p {
    font-size: 0.82rem;
    color: var(--testo-l);
    margin: 4px 0 0;
    font-style: italic;
}

.single-product .woocommerce-variation-price .price {
    font-size: 1.4rem;
    margin: 8px 0;
}

/* ── Bottone aggiungi al carrello ──────────────────────────── */

.single-product .single_add_to_cart_button {
    background: var(--rosa) !important;
    color: #fff !important;
    border: none;
    border-radius: 10px;
    padding: 14px 32px;
    font-family: var(--ff);
    font-size: 0.95rem;
    font-weight: 600;
    cursor: pointer;
    transition: all 0.2s ease;
    width: 100%;
    text-align: center;
    text-transform: none;
    letter-spacing: 0;
}

.single-product .single_add_to_cart_button:hover {
    background: #d43d6b !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 12px rgba(232, 72, 127, 0.3);
}

.single-product .quantity {
    display: none; /* Servizi: sempre qty = 1 */
}

/* ── CTA Proposta sotto il bottone ─────────────────────────── */

.di-product-proposta-cta {
    margin-top: var(--sp-m);
    padding-top: var(--sp-m);
    border-top: 0.5px solid var(--grigio);
    text-align: center;
}

.di-product-proposta-cta p {
    font-size: 0.82rem;
    color: var(--testo-l);
    margin-bottom: 8px;
}

.di-btn-proposta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 10px 20px;
    border-radius: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    color: #fff;
    background: linear-gradient(135deg, #6a4c93, #E8487F);
    text-decoration: none;
    transition: all 0.2s ease;
}

.di-btn-proposta:hover {
    transform: translateY(-1px);
    box-shadow: 0 4px 16px rgba(106, 76, 147, 0.35);
    color: #fff;
}

.di-btn-proposta svg {
    flex-shrink: 0;
}

.di-proposta-fee {
    display: block;
    margin-top: 6px;
    font-size: 0.75rem;
    color: var(--testo-l);
}

/* ── Tab prodotto ──────────────────────────────────────────── */

.single-product .woocommerce-tabs {
    margin-top: var(--sp-xl);
    border-top: 0.5px solid var(--grigio);
    padding-top: var(--sp-l);
}

.single-product .woocommerce-tabs ul.tabs {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--sp-l);
    display: flex;
    gap: 4px;
    border-bottom: 2px solid #f0f0f0;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.single-product .woocommerce-tabs ul.tabs::before,
.single-product .woocommerce-tabs ul.tabs::after {
    display: none;
}

.single-product .woocommerce-tabs ul.tabs li {
    border: none;
    background: none;
    padding: 0;
    margin: 0;
    border-radius: 0;
}

.single-product .woocommerce-tabs ul.tabs li a {
    display: block;
    padding: 10px 18px;
    font-family: var(--ff);
    font-size: 0.85rem;
    font-weight: 500;
    color: var(--testo-l);
    text-decoration: none;
    border-bottom: 1.5px solid transparent;
    margin-bottom: -2px;
    white-space: nowrap;
    transition: all 0.15s ease;
}

.single-product .woocommerce-tabs ul.tabs li a:hover {
    color: var(--testo);
}

.single-product .woocommerce-tabs ul.tabs li.active a {
    color: var(--rosa);
    border-bottom-color: var(--rosa);
    font-weight: 600;
}

.single-product .woocommerce-tabs .panel {
    padding: 0;
    border: none;
    margin: 0;
}

.single-product .woocommerce-tabs .panel h2 {
    display: none; /* Nasconde il titolo duplicato del tab */
}

/* ── Tab content styling ───────────────────────────────────── */

.di-tab-content {
    font-size: 0.9rem;
    line-height: 1.7;
    color: var(--testo);
}

.di-tab-content p {
    margin-bottom: 12px;
}

.di-tab-content strong {
    color: var(--testo);
    font-weight: 600;
}

.di-tab-list {
    list-style: none;
    padding: 0;
    margin: 12px 0;
}

.di-tab-list li {
    position: relative;
    padding: 8px 0 8px 28px;
    border-bottom: 0.5px solid #f0f0f0;
    font-size: 0.88rem;
}

.di-tab-list li:last-child {
    border-bottom: none;
}

.di-tab-list li::before {
    content: '';
    position: absolute;
    left: 0;
    top: 14px;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--rosa);
    opacity: 0.6;
}

.di-tab-step {
    padding: 12px 16px;
    margin-bottom: 8px;
    background: var(--sfondo-s);
    border-radius: 8px;
    border-left: 3px solid var(--rosa);
    font-size: 0.88rem;
}

/* ── Salse di prossimità ───────────────────────────────────── */

.di-proximity-section {
    margin-top: var(--sp-xl);
    padding-top: var(--sp-l);
    border-top: 0.5px solid var(--grigio);
}

.di-proximity-title {
    font-family: var(--ff);
    font-size: 1.15rem;
    font-weight: 700;
    color: var(--testo);
    margin: 0 0 4px;
}

.di-proximity-subtitle {
    font-size: 0.82rem;
    color: var(--testo-l);
    margin-bottom: var(--sp-m);
}

.di-proximity-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
    gap: 12px;
}

.di-proximity-card {
    border: 0.5px solid var(--grigio);
    border-radius: 10px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

.di-proximity-card:hover {
    border-color: var(--azzurro);
    box-shadow: 0 2px 12px rgba(86, 180, 211, 0.12);
}

.di-proximity-card-body {
    padding: 14px 16px 10px;
    flex: 1;
}

.di-proximity-card-body h4 {
    font-family: var(--ff);
    font-size: 0.88rem;
    font-weight: 600;
    color: var(--testo);
    margin: 0 0 6px;
}

.di-proximity-card-body p {
    font-size: 0.78rem;
    color: var(--testo-l);
    line-height: 1.5;
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.di-proximity-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 10px 16px;
    background: var(--sfondo-s);
    border-top: 0.5px solid var(--grigio);
}

.di-proximity-price {
    font-weight: 700;
    font-size: 0.88rem;
    color: var(--testo);
}

.di-proximity-price .woocommerce-Price-amount {
    color: var(--rosa);
}

.di-price-custom {
    color: var(--azzurro);
    font-weight: 600;
    font-size: 0.82rem;
}

.di-btn-add-addon {
    display: inline-flex;
    align-items: center;
    padding: 6px 14px;
    border-radius: 6px;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--azzurro);
    background: #fff;
    border: 1px solid var(--azzurro);
    text-decoration: none;
    transition: all 0.15s ease;
    cursor: pointer;
}

.di-btn-add-addon:hover {
    background: var(--azzurro);
    color: #fff;
}

/* ── Griglia prodotti (shop/catalogo) ──────────────────────── */

.woocommerce ul.products {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    padding: 0;
    margin: 0;
}

.woocommerce ul.products li.product {
    border: 0.5px solid var(--grigio);
    border-radius: 10px;
    overflow: hidden;
    padding: 0;
    margin: 0;
    transition: border-color 0.15s ease, box-shadow 0.15s ease;
    list-style: none;
    float: none;
    width: auto;
}

.woocommerce ul.products li.product:hover {
    border-color: var(--rosa);
    box-shadow: 0 4px 16px rgba(232, 72, 127, 0.08);
}

.woocommerce ul.products li.product a img {
    border-radius: 0;
    margin: 0;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: var(--ff);
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--testo);
    padding: 12px 14px 4px;
}

.woocommerce ul.products li.product .price {
    padding: 0 14px 12px;
    font-size: 0.95rem;
    font-weight: 700;
    color: var(--rosa);
}

.woocommerce ul.products li.product .button {
    display: block;
    text-align: center;
    padding: 10px;
    background: var(--sfondo-s);
    color: var(--rosa);
    font-size: 0.82rem;
    font-weight: 600;
    border-top: 0.5px solid var(--grigio);
    text-decoration: none;
    transition: all 0.15s ease;
}

.woocommerce ul.products li.product .button:hover {
    background: var(--rosa);
    color: #fff;
}

/* ── Mobile ────────────────────────────────────────────────── */


/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 768px) {
    .single-product .product .product_title {
        font-size: 1.35rem;
    }

    .single-product .product .price {
        font-size: 1.25rem;
    }

    .single-product .woocommerce-tabs ul.tabs {
        gap: 0;
    }

    .single-product .woocommerce-tabs ul.tabs li a {
        padding: 8px 12px;
        font-size: 0.8rem;
    }

    .di-proximity-grid {
        grid-template-columns: 1fr;
    }

    .woocommerce ul.products {
        grid-template-columns: 1fr;
    }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 480px) {
    .single-product .single_add_to_cart_button {
        padding: 12px 20px;
        font-size: 0.9rem;
    }
}
*/


/* ═══════════════════════════════════════════════════════════
   DRIVE IN — PAGE TEMPLATES v3.0
   Hero, product grid, CTA, actions
   ═══════════════════════════════════════════════════════════ */

.pg-hero-section {
    padding: var(--sp-xl) 0 var(--sp-l);
    border-bottom: 0.5px solid var(--grigio);
    margin-bottom: var(--sp-l);
}

.pg-hero--sector, .pg-hero--service {
    background: linear-gradient(135deg, rgba(232,72,127,0.04) 0%, rgba(86,180,211,0.04) 100%);
    border-radius: 16px;
    padding: var(--sp-xl) var(--sp-l);
    margin-bottom: var(--sp-xl);
    border: none;
}

.pg-hero-inner { max-width: 640px; }
.pg-hero-title { font-size: 1.75rem; font-weight: 700; line-height: 1.2; margin: 0 0 10px; color: var(--testo); }
.pg-hero-sub { font-size: 0.95rem; color: var(--testo-l); line-height: 1.6; margin: 0 0 var(--sp-m); }
.pg-hero-actions { display: flex; gap: 10px; flex-wrap: wrap; }
.pg-hero-img-wrap { margin-top: var(--sp-m); }
.pg-hero-img { border-radius: 12px; width: 100%; height: auto; max-height: 300px; object-fit: cover; }

.pg-btn {
    display: inline-flex; align-items: center; gap: 8px;
    padding: 11px 22px; border-radius: 9px;
    font-family: var(--ff); font-size: 0.88rem; font-weight: 600;
    text-decoration: none; transition: all 0.2s ease; cursor: pointer;
}
.pg-btn--rosa { background: var(--rosa); color: #fff; }
.pg-btn--rosa:hover { background: #d43d6b; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(232,72,127,0.3); color: #fff; }
.pg-btn--ghost { background: transparent; color: var(--testo); border: 1px solid var(--grigio); }
.pg-btn--ghost:hover { border-color: var(--rosa); color: var(--rosa); }
.pg-btn--bazarai { background: linear-gradient(135deg, #6a4c93, #E8487F); color: #fff; padding: 14px 28px; font-size: 0.95rem; }
.pg-btn--bazarai:hover { transform: translateY(-1px); box-shadow: 0 6px 20px rgba(106,76,147,0.35); color: #fff; }

/* ── Body section ───────────────────────────────────────── */
.pg-body-section { margin-bottom: var(--sp-xl); }
.pg-body { font-size: 0.92rem; line-height: 1.75; color: var(--testo); }
.pg-body h2 { font-size: 1.2rem; font-weight: 700; margin: var(--sp-l) 0 var(--sp-s); }
.pg-body h3 { font-size: 1.05rem; font-weight: 600; margin: var(--sp-m) 0 var(--sp-xs); }
.pg-body p { margin-bottom: var(--sp-s); }

/* ── Section header ─────────────────────────────────────── */
.pg-section-header { margin-bottom: var(--sp-l); }
.pg-section-header h2 { font-size: 1.3rem; font-weight: 700; margin: 0 0 4px; color: var(--testo); }
.pg-section-header p { font-size: 0.85rem; color: var(--testo-l); margin: 0; }

/* ── Products grid ──────────────────────────────────────── */
.pg-products { margin-bottom: var(--sp-xl); }
.pg-products-grid {
    display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px;
}
.pg-product-card {
    border: 0.5px solid var(--grigio); border-radius: 10px;
    padding: 18px 16px; text-decoration: none; color: inherit;
    transition: all 0.15s ease; display: flex; flex-direction: column;
}
.pg-product-card:hover { border-color: var(--rosa); box-shadow: 0 4px 16px rgba(232,72,127,0.08); transform: translateY(-2px); }
.pg-product-info h3 { font-size: 0.92rem; font-weight: 600; margin: 0 0 6px; color: var(--testo); }
.pg-product-info p { font-size: 0.78rem; color: var(--testo-l); margin: 0 0 10px; line-height: 1.5; }
.pg-product-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-top: auto; }
.pg-product-price { font-weight: 700; font-size: 0.95rem; color: var(--rosa); }
.pg-product-price small { font-size: 0.7rem; font-weight: 400; color: var(--testo-l); }
.pg-price-custom { color: var(--azzurro); font-weight: 600; font-size: 0.85rem; }

/* ── CTA Proposta ───────────────────────────────────────── */
.pg-cta-proposta {
    margin-bottom: var(--sp-xl);
    background: linear-gradient(135deg, rgba(106,76,147,0.06) 0%, rgba(232,72,127,0.06) 100%);
    border-radius: 16px; padding: var(--sp-xl) var(--sp-l);
    text-align: center;
}
.pg-cta-inner { max-width: 500px; margin: 0 auto; }
.pg-cta-text h2 { font-size: 1.3rem; font-weight: 700; margin: 0 0 8px; }
.pg-cta-text p { font-size: 0.88rem; color: var(--testo-l); margin: 0 0 var(--sp-m); line-height: 1.6; }
.pg-cta-fee { display: block; margin-top: 10px; font-size: 0.78rem; color: var(--testo-l); }

/* ── Children grid ──────────────────────────────────────── */
.pg-children { margin-bottom: var(--sp-xl); }
.pg-children-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pg-child-card {
    border: 0.5px solid var(--grigio); border-radius: 10px;
    padding: 16px; text-decoration: none; color: inherit;
    transition: all 0.15s ease;
}
.pg-child-card:hover { border-color: var(--rosa); transform: translateY(-1px); }
.pg-child-name { font-weight: 600; font-size: 0.88rem; color: var(--testo); margin-bottom: 4px; }
.pg-child-desc { font-size: 0.78rem; color: var(--testo-l); line-height: 1.5; }
.pg-child-arrow { color: var(--rosa); font-size: 0.85rem; margin-top: 8px; display: block; }

/* ── Actions ────────────────────────────────────────────── */
.pg-actions { margin-bottom: var(--sp-xl); }
.pg-actions-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.pg-action-card {
    border: 0.5px solid var(--grigio); border-radius: 10px;
    padding: 20px 16px; text-decoration: none; text-align: center;
    transition: all 0.15s ease;
}
.pg-action-card:hover { border-color: var(--rosa); transform: translateY(-1px); }
.pg-action-card strong { display: block; font-size: 0.9rem; color: var(--testo); margin-bottom: 4px; }
.pg-action-card span { font-size: 0.78rem; color: var(--testo-l); }
.pg-action--proposta { background: linear-gradient(135deg, rgba(106,76,147,0.05), rgba(232,72,127,0.05)); border-color: rgba(232,72,127,0.2); }
.pg-action--proposta strong { color: var(--rosa); }

/* ── Mobile pages ───────────────────────────────────────── */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 768px) {
    .pg-hero-title { font-size: 1.35rem; }
    .pg-products-grid, .pg-children-grid, .pg-actions-grid { grid-template-columns: 1fr; }
    .pg-hero--sector, .pg-hero--service { padding: var(--sp-l) var(--sp-m); }
    .pg-cta-proposta { padding: var(--sp-l) var(--sp-m); }
}
*/


/* ── SPECIFICATIONS TAB ── */
.di-spec { font-size: 13px; line-height: 1.6; }
.di-spec-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.di-spec-section { margin-bottom: 20px; }
.di-spec-section h3 { font-size: 14px; font-weight: 600; color: var(--t1); margin: 0 0 10px; padding-bottom: 6px; border-bottom: 1px solid var(--bd); }
.di-spec-section ul { list-style: none; padding: 0; margin: 0; }
.di-spec-section ul li { padding: 6px 0; border-bottom: 1px solid var(--sf2); font-size: 13px; color: var(--t2, #4b5563); display: flex; align-items: flex-start; gap: 8px; }
.di-spec-section ul li::before { content: '✓'; color: var(--rosa); font-weight: 600; flex-shrink: 0; margin-top: 1px; }
.di-spec-section ul li strong { color: var(--t1); }
.di-spec-section ul li span { color: var(--tm); margin-left: auto; }
.di-spec-section dl { margin: 0; }
.di-spec-section dt { font-size: 12px; font-weight: 500; color: var(--tm); margin-top: 8px; }
.di-spec-section dd { font-size: 13px; font-weight: 600; color: var(--t1); margin: 2px 0 0; }
.di-spec-banner { margin-top: 24px; padding: 16px 20px; background: linear-gradient(135deg, #E8487F11, #56B4D311); border: 1px solid var(--rosa-b); border-radius: var(--rm); display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.di-spec-banner-text { flex: 1; }
.di-spec-banner-text strong { display: block; font-size: 14px; color: var(--t1); margin-bottom: 2px; }
.di-spec-banner-text span { font-size: 12px; color: var(--tm); }
.di-spec-banner-btn { flex-shrink: 0; padding: 10px 20px; background: var(--rosa); color: #fff; border: none; border-radius: var(--r); font-size: 13px; font-weight: 600; cursor: pointer; transition: all .15s; }
.di-spec-banner-btn:hover { opacity: .9; transform: translateY(-1px); }

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 768px) {
  .di-spec-grid { grid-template-columns: 1fr; }
  .di-spec-banner { flex-direction: column; text-align: center; }
}
*/

/* Legacy specs support (old HTML) */
.di-specifications { font-size: 13px; line-height: 1.6; }
.di-specifications .container { max-width: 100%; padding: 0; }
.di-specifications .row { display: flex; flex-wrap: wrap; gap: 24px; }
.di-specifications .col-lg-6 { flex: 1; min-width: 280px; }
.di-specifications .content-section { margin-bottom: 24px; }
.di-specifications .content-section h2 { font-size: 15px; font-weight: 600; color: var(--t1); margin: 0 0 12px; padding-bottom: 8px; border-bottom: 1px solid var(--bd); }
.di-specifications .list-unstyled { list-style: none; padding: 0; margin: 0; }
.di-specifications .d-flex { display: flex; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--sf2); }
.di-specifications .text-muted { color: var(--tm); flex-shrink: 0; }
.di-specifications .width-40 { width: 35%; min-width: 120px; font-weight: 500; font-size: 12px; }
.di-specifications .width-60 { width: 60%; font-size: 13px; color: var(--t1); }
.di-specifications .tooltipsheet { cursor: help; color: var(--azz); }
.di-specifications .unordered-list { list-style: disc; padding-left: 18px; }
.di-specifications a { color: var(--rosa); }

/* ── AMBASSADOR POPUP ── */
.di-amb-overlay { position: fixed; inset: 0; background: rgba(0,0,0,.45); z-index: 9999; display: flex; align-items: center; justify-content: center; animation: fadeIn .2s ease; }
.di-amb-popup { background: #fff; border-radius: 16px; padding: 28px 24px; max-width: 380px; width: 90%; text-align: center; position: relative; box-shadow: 0 20px 60px rgba(0,0,0,.15); }
.di-amb-close { position: absolute; top: 10px; right: 14px; background: none; border: none; font-size: 22px; color: var(--tm); cursor: pointer; line-height: 1; }
.di-amb-popup h3 { font-size: 17px; font-weight: 700; color: var(--t1); margin: 0 0 6px; }
.di-amb-popup p { font-size: 13px; color: var(--tm); margin: 0 0 16px; line-height: 1.5; }
.di-amb-info { background: var(--sf); border-radius: var(--rm); padding: 12px 16px; margin-bottom: 16px; text-align: left; }
.di-amb-row { display: flex; justify-content: space-between; align-items: center; padding: 5px 0; font-size: 13px; }
.di-amb-row span:first-child { color: var(--tm); font-weight: 500; font-size: 12px; }
.di-amb-row a { color: var(--rosa); font-weight: 600; text-decoration: none; }
.di-amb-btns { display: flex; flex-direction: column; gap: 8px; }
.di-amb-cta { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 11px; border-radius: var(--r); font-size: 14px; font-weight: 600; text-decoration: none; cursor: pointer; transition: all .15s; border: none; }
.di-amb-cta.wa { background: #25D366; color: #fff; }
.di-amb-cta.wa:hover { background: #1da851; }
.di-amb-cta.em { background: var(--sf); color: var(--t1); border: 1px solid var(--bd); }
.di-amb-cta.em:hover { background: var(--sf2); }
.di-amb-cta.ph { background: var(--rosa); color: #fff; }
.di-amb-cta.ph:hover { opacity: .9; }

/* ── DETAIL VIEW SPACING ── */
.pd-b { padding-bottom: 8px; }
.pd-desc { font-size: 15px; line-height: 1.6; color: var(--t2, #4b5563); padding: 0 16px 4px; }
.pd-dtabs { margin: 8px 16px 0; }
.pd-dtab-c[data-dt] { padding: 12px 16px; }

.pd-specs { padding: 0; }
.pd-specs .di-spec { font-size: 12px; }
.pd-specs .di-spec-grid { grid-template-columns: 1fr; gap: 16px; }
.pd-specs .di-spec-section h3 { font-size: 13px; }
.pd-specs .di-spec-section ul li { font-size: 12px; padding: 4px 0; }
.pd-specs .di-spec-banner { padding: 12px 14px; }
.pd-specs .di-spec-banner-text strong { font-size: 13px; }
.pd-specs .di-spec-banner-btn { padding: 8px 14px; font-size: 12px; }

/* ── DETAIL TABS ── */
.pd-dtabs { display: flex; gap: 0; margin: 16px 16px 0; border-bottom: 1px solid var(--bd); }
.pd-dtab { flex: 1; padding: 8px 0; font-size: 12px; font-weight: 500; color: var(--tm); background: none; border: none; border-bottom: 1.5px solid transparent; cursor: pointer; transition: all .15s; }
.pd-dtab.on { color: var(--rosa); border-bottom-color: var(--rosa); font-weight: 600; }
.pd-dtab:hover { color: var(--t1); }
.pd-dtab-c { padding: 0; }
.pd-dtab-c[data-dt] { min-height: 100px; }

/* ── AMBASSADOR CARD ── */
.pd-amb { margin: 12px 0 0; padding: 14px; background: var(--sf2); border-radius: var(--rm); }
.pd-amb-head { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.pd-amb-av { width: 32px; height: 32px; border-radius: 50%; background: var(--rosa); flex-shrink: 0; display: flex; align-items: center; justify-content: center; }
.pd-amb-head strong { font-size: 13px; color: var(--t1); display: block; }
.pd-amb-head span { font-size: 11px; color: var(--tm); }
.pd-amb p { font-size: 12px; color: var(--t2, #4b5563); line-height: 1.5; margin: 0 0 10px; }
.pd-amb-btn { width: 100%; padding: 9px; background: var(--rosa); color: #fff; border: none; border-radius: var(--r); font-size: 13px; font-weight: 600; cursor: pointer; }
.pd-amb-btn:hover { opacity: .9; }

/* ── ATTRIBUTI WC ── */
.pd-attr { padding: 0 0 12px; margin-bottom: 12px; border-bottom: 1px solid var(--sf2); }
.pd-attr:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.pd-attr-name { font-size: 11px; font-weight: 700; color: var(--rosa); margin-bottom: 4px; text-transform: uppercase; letter-spacing: .5px; }
.pd-attr-val { font-size: 13px; color: var(--t2, #4b5563); line-height: 1.6; }

/* ── CTA WRAP (add to cart) ── */
.pd-cta-wrap { display: flex; gap: 8px; margin: 10px 16px 16px; }
.pd-cta-wrap .pd-add { flex: 1; margin: 0; }
.pd-cta-wrap .pd-add.in { background: transparent; color: var(--rosa); border: 1.5px solid var(--rosa); }
.pd-remove { padding: 0 14px; border-radius: var(--r); background: var(--sf); border: 1px solid var(--bd); color: var(--tm); font-size: 12px; font-weight: 500; cursor: pointer; transition: all .15s; white-space: nowrap; }
.pd-remove:hover { border-color: #ef4444; color: #ef4444; background: #fef2f2; }
.pd-cart-link { margin: 6px 16px 0; padding: 8px 12px; background: var(--rosa-s); border: 1px solid var(--rosa-b); border-radius: var(--rm); display: flex; align-items: center; justify-content: space-between; cursor: pointer; font-size: 12px; font-weight: 500; color: var(--rosa); transition: all .15s; }
.pd-cart-link:hover { background: var(--rosa-b); }

/* ── HELP BUTTON + NOMENCLATURA ── */
.di-help-btn { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 50%; background: var(--rosa); color: #fff; border: none; font-size: 11px; font-weight: 700; cursor: pointer; margin-left: 4px; vertical-align: middle; line-height: 1; }
.di-help-btn:hover { opacity: .8; }
.di-nom-item { display: flex; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--sf2, #f3f4f6); }
.di-nom-item:last-of-type { border-bottom: none; }
.di-nom-icon { width: 28px; height: 28px; border-radius: 8px; display: flex; align-items: center; justify-content: center; color: #fff; font-size: 14px; font-weight: 700; flex-shrink: 0; }
.di-nom-item strong { display: block; font-size: 14px; color: var(--t1); margin-bottom: 2px; }
.di-nom-item span { font-size: 12px; color: var(--tm); line-height: 1.5; }

/* ============================================================
   BADGE + CARD RIUSABILI — Blocco 3 (ridotto)
   ============================================================ */

/* Badge tipo prodotto */
.di-product-badges { display:flex; gap:8px; margin:12px 0; }
.di-badge { padding:4px 10px; border-radius:var(--rm); font-size:11px; font-weight:600; text-transform:uppercase; }
.di-badge--project { background:rgba(232,72,127,.15); color:var(--rosa); }
.di-badge--recurring { background:rgba(86,180,211,.15); color:var(--azzurro); }
.di-badge--rate { background:rgba(232,72,127,.08); color:var(--rosa); font-weight:400; }

/* CTA Proposta (usato nei CPT) */
.di-btn-proposta { display:inline-flex; align-items:center; gap:8px; padding:10px 20px; background:linear-gradient(135deg,#6a4c93,#E8487F); color:#fff; border-radius:var(--rm); text-decoration:none; font-size:13px; font-weight:600; }

/* Card grid riusabili (archivio case study) */
.di-wc-archive__grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.di-wc-card { display:block; background:var(--sf); border:1px solid var(--bd); border-radius:var(--rl); overflow:hidden; text-decoration:none; color:var(--tx); transition:border-color .2s; }
.di-wc-card:hover { border-color:var(--rosa); }
.di-wc-card__thumb { aspect-ratio:426/600; overflow:hidden; }
.di-wc-card__thumb img { width:100%; height:100%; object-fit:cover; }
.di-wc-card__body { padding:14px; }
.di-wc-card__name { font-size:14px; font-weight:600; margin:0 0 6px; }
.di-wc-card__desc { font-size:12px; color:var(--tl); margin:8px 0 0; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }

/* ============================================================
   CPT TEMPLATES — Blocco 4
   ============================================================ */

.di-cpt-badges { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.di-cpt-badge { display:inline-block; padding:4px 12px; border-radius:20px; font-size:12px; font-weight:600; }
.di-cpt-badge--city { background:var(--sf2); color:var(--tl); }
.di-cpt-title { font-size:22px; font-weight:700; margin:0 0 16px; line-height:1.3; }
.di-cpt-body { font-size:14px; line-height:1.7; color:var(--tx); margin-bottom:28px; }
.di-cpt-body p { margin-bottom:14px; }
.di-cpt-section { margin-bottom:32px; padding-top:24px; border-top:1px solid var(--bd); }
.di-cpt-section__title { font-size:16px; font-weight:700; margin:0 0 16px; }
.di-cpt-products-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; }
.di-cpt-product-card { display:block; padding:14px; background:var(--sf); border:1px solid var(--bd); border-radius:var(--rm); text-decoration:none; color:var(--tx); transition:border-color .2s; }
.di-cpt-product-card:hover { border-color:var(--rosa); }
.di-cpt-product-card h4 { font-size:14px; font-weight:600; margin:0 0 6px; }
.di-cpt-product-price { font-size:13px; font-weight:600; color:var(--rosa); }
.di-cpt-portfolio-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; }
.di-cpt-portfolio-card { display:block; text-decoration:none; color:var(--tx); }
.di-cpt-portfolio-thumb { aspect-ratio:16/10; overflow:hidden; border-radius:var(--rm); margin-bottom:8px; }
.di-cpt-portfolio-thumb img { width:100%; height:100%; object-fit:cover; }
.di-cpt-portfolio-card h4 { font-size:13px; font-weight:600; }
.di-cpt-faq-list { display:flex; flex-direction:column; gap:1px; background:var(--bd); border:1px solid var(--bd); border-radius:var(--rm); overflow:hidden; }
.di-cpt-faq { background:var(--sf); }
.di-cpt-faq summary { padding:14px 16px; font-size:14px; font-weight:600; cursor:pointer; list-style:none; }
.di-cpt-faq summary::-webkit-details-marker { display:none; }
.di-cpt-faq[open] summary { border-bottom:1px solid var(--bd); }
.di-cpt-faq__body { padding:14px 16px; font-size:13px; line-height:1.7; color:var(--tl); }
.di-cpt-cta-row { display:flex; gap:10px; margin-top:28px; }
.di-cs-hero-img { margin-bottom:4px; }
.di-cs-meta { display:flex; gap:8px; margin-bottom:12px; }
.di-cs-intro { font-size:16px; line-height:1.7; color:var(--tl); margin-bottom:20px; }
.di-cs-cta { margin-top:32px; padding:24px; background:var(--sf); border:1px solid var(--bd); border-radius:var(--rl); text-align:center; }
.di-cs-cta__text { font-size:15px; font-weight:600; margin:0 0 12px; }


/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:768px) {
  .di-wc-archive__grid { grid-template-columns:1fr; }
  .di-cpt-products-grid { grid-template-columns:1fr; }
  .di-cpt-portfolio-grid { grid-template-columns:1fr; }
  .di-cpt-cta-row { flex-direction:column; }
  .di-cpt-cta-row .blog-cta-btn { text-align:center; justify-content:center; }
}
*/


/* DISABLED-LEGACY-MOBILE-V20
@media (min-width:769px) and (max-width:1024px) {
  .di-wc-archive__grid { grid-template-columns:repeat(2,1fr); }
  .di-cpt-portfolio-grid { grid-template-columns:repeat(2,1fr); }
}
*/


/* Pills archivio lavori */
.di-wc-archive__pills { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:24px; }

/* Fix: blog footer CTA non deve wrappare intorno all'immagine float */
.blog-article .blog-footer { clear:both; }


/* ═══ Layout lavoro: hero split + contenuto pulito ═══ */
.lavoro-hero-split { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin-bottom:28px; align-items:stretch; }
.lavoro-hero-left { position:relative; overflow:hidden; border-radius:10px; display:flex; align-items:center; justify-content:center; background:var(--sf,#181828); }
.lavoro-hero-left::before { content:''; position:absolute; inset:-20px; background:var(--lavoro-bg) center/cover no-repeat; filter:blur(20px) brightness(.7); opacity:.6; z-index:0; }
.lavoro-main-img { width:100%; height:auto; display:block; position:relative; z-index:1; }
.lavoro-hero-right { display:flex; flex-direction:column; gap:8px; }
.lavoro-video-wrap { flex:1; min-height:0; border-radius:10px; overflow:hidden; background:#181828; border:1px solid var(--bd); position:relative; }
.lavoro-video-wrap iframe { position:absolute; inset:0; width:100%; height:100%; border:none; }
.lavoro-gallery-lg { flex:1; min-height:0; border-radius:10px; object-fit:cover; display:block; width:100%; }
.lavoro-gallery-full { width:100%; height:100%; border-radius:10px; object-fit:cover; display:block; }
.lavoro-gallery-row { display:grid; grid-template-columns:1fr 1fr; gap:8px; flex-shrink:0; }
.lavoro-gallery-sm { width:100%; object-fit:cover; border-radius:8px; display:block; aspect-ratio:16/10; }
.lavoro-body { font-size:14px; line-height:1.7; }
.lavoro-body p { margin-bottom:14px; }
.lavoro-article .blog-footer { clear:both; margin-top:32px; }


/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:768px) {
  .lavoro-hero-split { grid-template-columns:1fr; }
  .lavoro-gallery-row { grid-template-columns:1fr 1fr; }
}
*/


/* Placeholder lavoro (quando mancano img/video) */
.lavoro-placeholder { background:var(--sf,#181828); border:1px dashed var(--bd,#353555); border-radius:10px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; color:var(--tm,#8888a0); font-size:12px; flex:1; min-height:0; }
.lavoro-placeholder-sm { background:var(--sf,#181828); border:1px dashed var(--bd,#353555); border-radius:8px; display:flex; align-items:center; justify-content:center; aspect-ratio:16/10; color:var(--tm,#8888a0); }

/* ============================================================
   EASY GATEWAY CHECKOUT + THANKYOU — Drive In
   v1.0.0 — 24/04/2026
   ============================================================ */

/* -- Gateway grid overrides (light theme) -- */
.la-gw-grid { --la-gw-accent: var(--rosa); }
.la-gw-card { background: var(--sf); border-color: var(--bd); }
.la-gw-card:hover { border-color: var(--tm); background: var(--sf2); }
.la-gw-card--on { border-color: var(--rosa) !important; background: rgba(232,72,127,.04) !important; box-shadow: 0 0 0 1px var(--rosa) inset; }
.la-gw-card strong { color: var(--t1); }
.la-gw-card span { color: var(--tm); }
.la-gw-note { color: var(--tm); }

/* -- Checkout layout -- */
.di-co { min-height: 60vh; padding: 40px 20px 60px; }
.di-co-inner { max-width: 600px; margin: 0 auto; }

.di-co-head { margin-bottom: 24px; }
.di-co-tag { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--rosa); margin-bottom: 10px; }
.di-co-head h1 { font-family: 'DM Sans', sans-serif; font-size: clamp(24px, 4vw, 36px); font-weight: 700; color: var(--t1); margin: 0; }

.di-co-card { background: var(--bg); border: 1px solid var(--bd); border-radius: var(--rl); padding: 18px; margin-bottom: 16px; }
.di-co-card-title { font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--tm); margin-bottom: 16px; }

.di-co-items { display: flex; flex-direction: column; gap: 0; margin-bottom: 12px; }
.di-co-item { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--bd); gap: 12px; }
.di-co-item:last-child { border-bottom: none; padding-bottom: 0; }
.di-co-item-name { font-size: 13px; color: var(--t2); flex: 1; min-width: 0; }
.di-co-item-qty { font-size: 11px; color: var(--tm); margin-left: 3px; }
.di-co-item-price { font-size: 13px; color: var(--t1); font-weight: 600; white-space: nowrap; text-align: right; }
.di-co-item-per { font-size: 11px; color: var(--tm); font-weight: 400; }

.di-co-total { display: flex; justify-content: space-between; align-items: center; padding-top: 12px; border-top: 1px solid var(--bd); font-size: 14px; color: var(--t2); }
.di-co-total strong { color: var(--t1); font-size: 16px; font-weight: 700; display: flex; align-items: baseline; gap: 3px; }
.di-co-edit { font-size: 12px; color: var(--tm); text-decoration: none; display: inline-block; margin-top: 10px; transition: color .15s; }
.di-co-edit:hover { color: var(--rosa); }

/* -- Checkout form fields -- */
.di-co-form .form-row { margin-bottom: 14px; }
.di-co-form label { font-size: 12px; color: var(--t2); display: block; margin-bottom: 5px; }
.di-co-form label .required { color: var(--rosa); }
.di-co-form input[type="text"],
.di-co-form input[type="email"],
.di-co-form input[type="tel"],
.di-co-form input[type="url"],
.di-co-form textarea { width: 100%; background: var(--bg); border: 1px solid var(--bd); border-radius: var(--r); color: var(--t1); font-size: 14px; padding: 10px 12px; outline: none; transition: border-color .15s; box-sizing: border-box; font-family: inherit; }
.di-co-form input:focus, .di-co-form textarea:focus { border-color: var(--rosa); }
.di-co-form select { width: 100%; background: var(--bg); border: 1px solid var(--bd); border-radius: var(--r); color: var(--t1); font-size: 14px; padding: 10px 12px; outline: none; font-family: inherit; -webkit-appearance: none; appearance: none; }

/* Select2 overrides */
.di-co-form .select2-container .select2-selection--single { background: var(--bg) !important; border: 1px solid var(--bd) !important; border-radius: var(--r) !important; height: auto !important; padding: 8px 12px !important; }
.di-co-form .select2-container .select2-selection--single .select2-selection__rendered { color: var(--t1) !important; padding: 0 !important; line-height: 1.4 !important; font-size: 14px !important; }
.di-co-form .select2-container .select2-selection--single .select2-selection__arrow { top: 50% !important; transform: translateY(-50%) !important; right: 8px !important; }
body.woocommerce-checkout .select2-dropdown { background: var(--bg) !important; border: 1px solid var(--bd) !important; border-radius: var(--r) !important; }
body.woocommerce-checkout .select2-results__option { color: var(--t2) !important; padding: 8px 12px !important; font-size: 13px !important; }
body.woocommerce-checkout .select2-results__option--highlighted { background: rgba(232,72,127,.08) !important; color: var(--rosa) !important; }
body.woocommerce-checkout .select2-search__field { background: var(--sf) !important; border: 1px solid var(--bd) !important; color: var(--t1) !important; border-radius: 6px !important; padding: 6px 10px !important; font-size: 13px !important; }

/* -- Place order button -- */
body.woocommerce-checkout #place_order { width: 100%; display: block; background: var(--rosa) !important; color: #fff !important; border: none !important; border-radius: var(--rm) !important; font-family: 'DM Sans', sans-serif !important; font-size: 16px !important; font-weight: 700 !important; padding: 16px !important; cursor: pointer !important; transition: background .18s !important; margin-top: 12px !important; }
body.woocommerce-checkout #place_order:hover { background: #d13d6a !important; }

/* -- Payment methods wrapper -- */
body.woocommerce-checkout #payment { background: transparent !important; border: none !important; border-radius: 0 !important; padding: 0 !important; }
body.woocommerce-checkout #payment .payment_methods { list-style: none !important; padding: 0 !important; margin: 0 0 12px !important; border: none !important; }
body.woocommerce-checkout #payment .payment_methods li { background: var(--sf) !important; border: 1px solid var(--bd) !important; border-radius: var(--rm) !important; padding: 14px 16px !important; margin-bottom: 8px !important; }
body.woocommerce-checkout #payment .payment_methods li label { color: var(--t1) !important; font-size: 13px !important; font-weight: 500 !important; cursor: pointer; }
body.woocommerce-checkout #payment .payment_methods li .payment_box { color: var(--tm) !important; font-size: 12px !important; line-height: 1.6 !important; padding: 8px 0 0 !important; background: transparent !important; }
body.woocommerce-checkout #payment .payment_methods li .payment_box::before { display: none !important; }
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { margin: 12px 0 0 !important; }
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper label { font-size: 12px !important; color: var(--tm) !important; }
body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a { color: var(--rosa) !important; }

/* -- WC notices -- */
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-cart .woocommerce-error { background: rgba(239,68,68,.06) !important; border: 1px solid rgba(239,68,68,.2) !important; color: #b91c1c !important; border-radius: var(--rm) !important; padding: 12px 16px !important; list-style: none !important; font-size: 13px !important; margin: 0 0 16px !important; }
body.woocommerce-checkout .woocommerce-message,
body.woocommerce-cart .woocommerce-message { background: rgba(22,163,74,.06) !important; border: 1px solid rgba(22,163,74,.2) !important; color: #166534 !important; border-radius: var(--rm) !important; padding: 12px 16px !important; list-style: none !important; font-size: 13px !important; margin: 0 0 16px !important; }

/* -- Easy badge -- */
.di-co-pay-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.di-co-easy-badge { display: inline-flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 5px; background: rgba(29,53,87,.08); color: var(--easy); font-size: 10px; font-weight: 600; letter-spacing: .05em; text-transform: uppercase; }
.di-co-easy-badge svg { flex-shrink: 0; }

/* -- Payment card inner overrides -- */
#di-payment-card #payment { background: none; border: none; box-shadow: none; padding: 0; margin: 0; }
#di-payment-card .wc_payment_methods { list-style: none; margin: 0; padding: 0; }
#di-payment-card .wc_payment_method > label { display: none !important; }
#di-payment-card .wc_payment_method > input[type="radio"] { position: absolute; opacity: 0; }
#di-payment-card .payment_box { background: none !important; border: none !important; padding: 0 !important; margin: 0 !important; color: var(--t1); }
#di-payment-card .woocommerce-terms-and-conditions-wrapper { display: none; }
#di-payment-card .woocommerce-privacy-policy-text { display: none !important; }
#di-payment-card .form-row.place-order { margin: 0; padding: 0; }
#di-payment-card .form-row.place-order noscript { display: none; }
#di-payment-card #place_order { display: block; width: 100%; margin: 16px 0 0; padding: 16px 24px; background: var(--rosa); color: #fff; border: none; border-radius: var(--rm); font-size: 15px; font-weight: 700; cursor: pointer; font-family: inherit; box-shadow: 0 4px 16px rgba(232,72,127,.2); transition: all .2s; }
#di-payment-card #place_order:hover { background: #d13d6a; transform: translateY(-1px); }

/* -- Renewal note -- */
.di-co-renewal { font-size: 12px; color: var(--tm); line-height: 1.6; margin-top: 12px; padding: 14px 16px; background: var(--sf); border: 1px solid var(--bd); border-radius: var(--rm); }
.di-co-renewal p { margin: 0; }
.di-co-renewal strong { color: var(--t1); }

/* -- WC price override -- */
body.woocommerce-cart .woocommerce-Price-amount,
body.woocommerce-checkout .woocommerce-Price-amount,
body.woocommerce-order-received .woocommerce-Price-amount { color: var(--t1) !important; }
body.woocommerce-cart .woocommerce-Price-currencySymbol,
body.woocommerce-checkout .woocommerce-Price-currencySymbol,
body.woocommerce-order-received .woocommerce-Price-currencySymbol { color: var(--t1) !important; }

/* Hide default WC entry title */
body.woocommerce-cart .entry-title,
body.woocommerce-checkout .entry-title,
body.woocommerce-order-received .entry-title { display: none !important; }


/* ============================================================
   THANK YOU
   ============================================================ */
.di-thankyou { min-height: 60vh; padding: 40px 20px 60px; }
.di-ty-inner { max-width: 600px; margin: 0 auto; }

.di-ty-hero { text-align: center; margin-bottom: 28px; }
.di-ty-check { width: 56px; height: 56px; border-radius: 50%; background: rgba(22,163,74,.08); display: flex; align-items: center; justify-content: center; margin: 0 auto 16px; color: #16a34a; }
.di-ty-hero h1 { font-family: 'DM Sans', sans-serif; font-size: clamp(24px, 4vw, 36px); font-weight: 700; color: var(--t1); margin: 0 0 8px; }
.di-ty-sub { font-size: 14px; color: var(--t2); line-height: 1.6; }
.di-ty-sub strong { color: var(--t1); }

.di-ty-card { background: var(--bg); border: 1px solid var(--bd); border-radius: var(--rl); padding: 18px; margin-bottom: 16px; }
.di-ty-card-title { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--tm); margin-bottom: 14px; }

/* BACS details */
.di-ty-bacs-row { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-bottom: 12px; }
.di-ty-bacs-row div { display: flex; flex-direction: column; gap: 2px; }
.di-ty-bacs-row span { font-size: 10px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: var(--tm); }
.di-ty-bacs-row strong { font-size: 13px; color: var(--t1); font-weight: 500; }
.di-ty-mono { font-family: 'JetBrains Mono', 'SF Mono', monospace; letter-spacing: .02em; }
.di-ty-bacs-ref { display: flex; align-items: flex-start; gap: 8px; padding: 12px 14px; background: rgba(22,163,74,.05); border: 1px solid rgba(22,163,74,.15); border-radius: var(--r); font-size: 12px; color: var(--t2); line-height: 1.5; margin-top: 4px; }
.di-ty-bacs-ref svg { flex-shrink: 0; color: #16a34a; margin-top: 1px; }
.di-ty-bacs-ref strong { color: var(--t1); }

/* Order items */
.di-ty-items { display: flex; flex-direction: column; }
.di-ty-item { display: flex; justify-content: space-between; align-items: center; padding: 10px 0; border-bottom: 1px solid var(--bd); gap: 12px; }
.di-ty-item:last-child { border-bottom: none; }
.di-ty-item-name { font-size: 13px; color: var(--t2); flex: 1; }
.di-ty-qty { font-size: 11px; color: var(--tm); margin-left: 3px; }
.di-ty-item-price { font-size: 13px; color: var(--t1); font-weight: 600; white-space: nowrap; }
.di-ty-item-price span { font-size: 11px; color: var(--tm); font-weight: 400; margin-left: 1px; }
.di-ty-total { display: flex; justify-content: space-between; align-items: center; padding-top: 12px; border-top: 1px solid var(--bd); font-size: 14px; color: var(--t2); }
.di-ty-total strong { color: var(--t1); font-size: 16px; font-weight: 700; }

/* Steps */
.di-ty-step-list { display: flex; flex-direction: column; gap: 14px; }
.di-ty-step { display: flex; gap: 14px; align-items: flex-start; }
.di-ty-step-n { width: 28px; height: 28px; border-radius: 50%; background: rgba(232,72,127,.08); color: var(--rosa); display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 700; flex-shrink: 0; }
.di-ty-step strong { font-size: 13px; color: var(--t1); display: block; margin-bottom: 2px; }
.di-ty-step p { font-size: 12px; color: var(--tm); line-height: 1.5; margin: 0; }

/* Actions */
.di-ty-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 4px; }

/* Buttons */
.di-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; padding: 12px 24px; border-radius: var(--rm); font-size: 14px; font-weight: 600; text-decoration: none; cursor: pointer; transition: all .18s; border: none; font-family: inherit; }
.di-btn-p { background: var(--rosa); color: #fff; }
.di-btn-p:hover { background: #d13d6a; }
.di-btn-s { background: var(--sf2); color: var(--t1); border: 1px solid var(--bd); }
.di-btn-s:hover { background: var(--bd); }

/* -- Responsive -- */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 600px) {
  .di-co { padding: 24px 16px 40px; }
  .di-thankyou { padding: 24px 16px 40px; }
  .di-ty-bacs-row { grid-template-columns: 1fr; }
  .di-ty-actions { flex-direction: column; }
  .di-ty-actions .di-btn { width: 100%; }
  .di-co-item { flex-direction: column; align-items: flex-start; gap: 4px; }
  .di-co-item-price { align-self: flex-end; }
}
*/


/* -- Easy Pay sparks + loading spin -- */
@keyframes laGwSpkFly {
  0% { opacity:1; transform:translate(0,0) scale(1); }
  100% { opacity:0; transform:translate(var(--tx,5px),var(--ty,-15px)) scale(0.3); }
}
@keyframes spin { to { transform:rotate(360deg); } }
.pd-dtab-c[data-dt="scheda"] { padding: 12px 16px; }
.pd-dtab-c[data-dt="scheda"] > div { padding: 12px; background: #F9FAFB; border-radius: 10px; }

/* ============================================================
   MOBILE AUDIT v15.10 — 28/04/2026
   ============================================================ */

.bnav {
  padding-bottom: env(safe-area-inset-bottom, 0);
  height: calc(60px + env(safe-area-inset-bottom, 0));
}

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  .app { padding-bottom: calc(60px + env(safe-area-inset-bottom, 0)); }
  body.sb-on .sb { bottom: calc(60px + env(safe-area-inset-bottom, 0)); }
}
*/


/* DISABLED-LEGACY-MOBILE-V20
@media (min-width: 601px) and (max-width: 900px) {
  .woocommerce ul.products { grid-template-columns: repeat(2, 1fr); }
  .pg-products-grid { grid-template-columns: repeat(2, 1fr); }
  .pg-children-grid { grid-template-columns: repeat(2, 1fr); }
  .pg-actions-grid { grid-template-columns: repeat(2, 1fr); }
  .di-wc-archive__grid { grid-template-columns: repeat(2, 1fr); }
  .di-cpt-portfolio-grid { grid-template-columns: repeat(2, 1fr); }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 600px) {
  .ic { border-radius: 10px; }
  .ic > div:first-child { width: 64px !important; min-height: 64px !important; border-radius: 10px 0 0 10px !important; }
  .ic > div:last-child { padding: 10px 12px !important; }
  .ic-n { font-size: 13px; }
  .ic-p { font-size: 12.5px; }
  .ic-d { font-size: 11px; -webkit-line-clamp: 1; margin-top: 2px; }
  .ic-m { margin-top: 5px; }
  .ic-tag { font-size: 9px; padding: 1px 6px; }
  .cpill { font-size: 11px; padding: 5px 10px; }
  .pd-desc { font-size: 13px; padding: 0 12px 4px; }
  .pd-dtabs { margin: 8px 12px 0; }
  .pd-dtab-c[data-dt] { padding: 10px 12px; }
  .pd-cta-wrap { margin: 8px 12px 12px; }
  .pd-attr-name { font-size: 10px; }
  .pd-attr-val { font-size: 12px; }
  .pd-specs .di-spec-grid { grid-template-columns: 1fr; gap: 12px; }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 600px) {
  #diFilterPopup > div {
    max-width: 100% !important; max-height: 100% !important;
    height: 100% !important; border-radius: 0 !important;
    padding: 20px 16px calc(20px + env(safe-area-inset-bottom, 0)) !important;
    display: flex !important; flex-direction: column !important;
  }
  #diFilterPopup select,
  #diFilterPopup input[type="text"] { font-size: 16px !important; }
  #dfApplyBtn { margin-top: auto !important; flex-shrink: 0; }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 480px) {
  .ch-inner { padding: 16px 12px 100px; }
  .msg-bub { font-size: 13.5px; max-width: 92%; }
  .msg-sys .msg-bub { max-width: 95%; }
  .sugs { padding: 0 12px 12px; gap: 6px; }
  .sugs button.sg { font-size: 12px; padding: 8px 12px; }
  .in-inner { padding: 0 12px; }
  .sb-tabs { gap: 0; }
  .sb-tab { font-size: 11px; padding: 8px 6px; }
  .sb-tab-num { width: 16px; height: 16px; font-size: 9px; }
  .sb-tab-arrow { display: none; }
  .pg-hero-title { font-size: 1.2rem; }
  .pg-hero-sub { font-size: 0.85rem; }
  .pg-hero-actions { gap: 8px; }
  .pg-btn { padding: 9px 16px; font-size: 0.82rem; }
  .single-product .product .product_title { font-size: 1.2rem; }
  .single-product .product .price { font-size: 1.15rem; }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-height: 500px) and (max-width: 900px) {
  .bnav { height: 48px; padding-bottom: 0; }
  .bn { padding: 4px 14px; font-size: 9px; }
  .bn svg { width: 18px; height: 18px; }
  .app { padding-bottom: 48px; }
  body.sb-on .sb { bottom: 48px; }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 480px) {
  .di-amb-popup { padding: 20px 16px; border-radius: 12px; }
  .di-amb-popup h3 { font-size: 15px; }
  .di-amb-popup p { font-size: 12px; }
  .di-amb-cta { font-size: 13px; padding: 10px; }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 480px) {
  .di-proximity-grid { grid-template-columns: 1fr; gap: 10px; }
  .di-proximity-card-body { padding: 12px 14px 8px; }
  .di-proximity-card-body h4 { font-size: 0.82rem; }
  .di-proximity-card-footer { padding: 8px 14px; }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 480px) {
  .di-co { padding: 20px 12px 40px; }
  .di-co-head h1 { font-size: 22px; }
  .di-co-card { padding: 14px; }
  .di-thankyou { padding: 20px 12px 40px; }
  .di-ty-hero h1 { font-size: 22px; }
  .di-ty-card { padding: 14px; }
}
*/


body.dark #diFilterPopup > div { background: var(--bg); color: var(--t1); }
body.dark #diFilterPopup select { background: var(--sf); color: var(--t1); border-color: var(--bd); }
body.dark #diFilterPopup input[type="range"] { background: var(--sf); }

/* -- Carrello + checkout mobile -- */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 480px) {
  .pv { padding: 16px 12px; }
  .pv-empty { padding: 40px 16px; }
  .ci-n { font-size: 13px; }
  .ci-p { font-size: 13px; }
  .ct-num { font-size: 20px; }
  .btn-go, .btn-e { font-size: 14px; padding: 12px; }
  .rate-btn { font-size: 11px; padding: 8px 6px; }
  .pd-price { font-size: 20px; }
  .pd-pr { padding: 0 12px; margin-top: 8px; }
  .pd-b { padding: 12px 12px 0; }
  .pd-hero { height: 140px; }
  .pd-th { width: 52px; height: 38px; }
  .pd-slider { padding: 8px 12px; gap: 5px; }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 480px) {
  .pd-sa { padding: 8px 10px; }
  .pd-sa-n { font-size: 12px; }
  .pd-sa-p { font-size: 12px; }
  .pd-inc { font-size: 12px; }
  .pd-lab { font-size: 10px; }
  .pd-team { padding: 10px; }
  .pd-team-h { font-size: 12px; }
  .pd-team-b { font-size: 11px; }
  .pd-time { font-size: 12px; padding: 8px 10px; }
}
*/


/* -- Touch targets 44px minimum -- */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  .bn { min-height: 44px; min-width: 44px; }
  .sb-x { min-width: 44px; min-height: 44px; }
  .sb-back { min-height: 44px; }
  .sb-tab { min-height: 44px; }
  .pd-dtab { min-height: 44px; }
  .cpill { min-height: 36px; }
  .pd-add { min-height: 48px; }
}
*/


/* -- Sidebar mobile slide-in transition -- */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.sb-on .sb {
    transition: transform .25s ease;
    transform: translateX(0);
  }
  .sb {
    transform: translateX(100%);
    transition: transform .25s ease;
  }
}
*/


/* -- Body scroll lock when sidebar open on mobile -- */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.sb-on { overflow: hidden; }
  body.sb-on .sb .sb-bd { -webkit-overflow-scrolling: touch; }
}
*/


/* -- Drafts table mobile -- */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 768px) {
  .di-draft-row { grid-template-columns: 1fr !important; gap: 6px !important; padding: 14px 16px !important; }
  .di-draft-head { display: none !important; }
}
*/


/* -- Chat card (saved chats page) -- */
.di-chat-card { padding: 12px 14px; border: 1px solid var(--bd); border-radius: 8px; margin-bottom: 8px; cursor: pointer; transition: border-color .15s; }
.di-chat-card:hover { border-color: var(--rosa); }
.di-chat-card strong { font-size: 13px; color: var(--t1); }

/* ============================================================
   MOBILE AUDIT v16.0 — B32
   ============================================================ */

.bn-badge { position:absolute; top:2px; right:2px; min-width:16px; height:16px; padding:0 4px; border-radius:8px; background:var(--rosa); color:#fff; font-size:9px; font-weight:700; display:none; align-items:center; justify-content:center; line-height:1; }
.bn { position:relative; }
.bn-badge.show { display:flex; }


/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:600px) {
  #di-pills-wrap { scroll-snap-type:x mandatory; gap:4px !important; }
  #di-pills-wrap .cpill { scroll-snap-align:start; }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:600px) {
  #diFilterPopup > div { display:flex !important; flex-direction:column !important; }
  #dfApplyBtn { position:sticky; bottom:0; z-index:2; margin-top:auto !important; }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:900px) {
  .sb-bd { padding-bottom:calc(80px + env(safe-area-inset-bottom,0)); overflow-y:auto; -webkit-overflow-scrolling:touch; }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:600px) {
  .pd-dtab { min-height:44px; display:flex; align-items:center; justify-content:center; }
  .sb-tab { min-height:44px; }
  .sb-back { min-height:44px; display:inline-flex; align-items:center; }
  .ic:active { transform:scale(.98); transition:transform .1s; }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:480px) {
  .woocommerce ul.products { grid-template-columns:1fr !important; gap:10px; }
  .pg-products-grid { grid-template-columns:1fr !important; gap:10px; }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:600px) {
  .in-bar { padding: 8px 8px calc(12px + env(safe-area-inset-bottom, 0px)); }
  .in-inner { padding:0 4px; }
  .bai { padding:10px 12px; gap:8px; }
  .bai-tt { font-size:12px; }
  .bai-su { font-size:10px; }
}
*/



/* -- Chat delete button -- */
.lb-ch-del { display:none; flex-shrink:0; background:none; border:none; color:var(--tl); font-size:16px; cursor:pointer; padding:0 2px; line-height:1; border-radius:4px; margin-left:auto; }
.lb-ch:hover .lb-ch-del { display:flex; align-items:center; }
.lb-ch-del:hover { color:var(--rosa); }
.lb-ch span { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* -- Product detail fixed bottom bar -- */
.pd-bar { position:sticky; bottom:0; z-index:10; display:flex; align-items:center; gap:8px; padding:12px 16px; background:var(--bg); border-top:1px solid var(--bd); }
.pd-bar-qty { display:flex; align-items:center; gap:0; border:1px solid var(--bd); border-radius:8px; overflow:hidden; flex-shrink:0; }
.pd-bar-qb { width:32px; height:34px; border:none; background:var(--sf); color:var(--t1); font-size:16px; font-weight:600; cursor:pointer; display:flex; align-items:center; justify-content:center; }
.pd-bar-qb:hover { background:var(--sf2); }
.pd-bar-qty span { min-width:28px; text-align:center; font-size:14px; font-weight:600; color:var(--t1); }
.pd-bar-add { flex:1; padding:10px 14px; border-radius:24px; border:1.5px solid var(--rosa); background:var(--rosa); color:#fff; font-size:13px; font-weight:600; cursor:pointer; font-family:inherit; display:flex; align-items:center; justify-content:center; gap:6px; transition:all .15s; white-space:nowrap; }
.pd-bar-add:hover { opacity:.9; }
.pd-bar-add.in { background:var(--bg); color:var(--rosa); border-color:var(--rosa); }
.pd-bar-go { padding:10px 14px; border-radius:24px; border:1.5px solid var(--bd); background:var(--bg); color:var(--t1); font-size:13px; font-weight:600; cursor:pointer; font-family:inherit; display:flex; align-items:center; gap:6px; transition:all .15s; white-space:nowrap; flex-shrink:0; }
.pd-bar-go:hover { border-color:var(--rosa); color:var(--rosa); }

/* -- Cart qty controls -- */
.ci-q { display:flex; align-items:center; gap:0; border:1px solid var(--bd); border-radius:6px; overflow:hidden; flex-shrink:0; margin-right:8px; }
.ci-qb { width:24px; height:24px; border:none; background:var(--sf); color:var(--t1); font-size:13px; font-weight:600; cursor:pointer; display:flex; align-items:center; justify-content:center; padding:0; }
.ci-qb:hover { background:var(--sf2); }
.ci-q span { min-width:20px; text-align:center; font-size:12px; font-weight:600; }

/* -- Cart item clickable + layout fix -- */
.ci { display:flex; align-items:center; gap:8px; padding:12px 0; border-bottom:1px solid var(--bd); }
.ci-b { flex:1; min-width:0; cursor:pointer; }
.ci-b:hover .ci-n { color:var(--rosa); }
.ci-n { font-size:14px; font-weight:600; color:var(--t1); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; transition:color .15s; }
.ci-p { font-size:14px; font-weight:700; color:var(--t1); white-space:nowrap; min-width:80px; text-align:right; }

/* ============================================================
   v18.2 — DriveIn UX Fix Pack (in-bar/CTA/cart) — 2026-05-02
   ============================================================ */

/* Nasconde i bottoni rate 40/30/30 fake; piano vero arriva da Stripe (Klarna/PayPal/Card) */
.rate-row { display: none !important; }

/* CTA "frozen" — sub-flow popup overlay sopra; sotto restano cliccabili (mai rimossi dal DOM) */
.sugs.sugs-frozen { opacity: .55; pointer-events: auto; transition: opacity .2s ease; }
.sugs.sugs-frozen button { cursor: pointer; }
.sugs.sugs-frozen:hover { opacity: 1; }

/* Improved product card — image, longer desc, pricing pill, recurring tag */
.ic.di-ic-v2 { transition: transform .12s ease, box-shadow .15s ease; }
.ic.di-ic-v2:hover { transform: translateY(-1px); box-shadow: 0 8px 24px -16px rgba(0,0,0,.25); }
.ic-img-wrap { width: 96px; min-height: 96px; flex-shrink: 0; background: linear-gradient(135deg, var(--rosa-s), rgba(106,76,147,.06)); display: flex; align-items: center; justify-content: center; border-radius: var(--rm) 0 0 var(--rm); overflow: hidden; }
.ic-img-wrap img { width: 100%; height: 100%; object-fit: cover; }
.ic-img-ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--rosa); opacity: .55; }
.ic-d-long { font-size: 12.5px; color: var(--tm); line-height: 1.45; margin: 4px 0 6px; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ic-meta-row { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-top: 4px; }
.ic-meta-row .ic-tag { font-size: 10px; font-weight: 600; padding: 3px 8px; border-radius: 999px; }
.ic-meta-row .ic-tag.T { background: rgba(106,76,147,.10); color: #6a4c93; }
.ic-meta-row .ic-tag.R { background: rgba(232,72,127,.10); color: var(--rosa); }
.ic-meta-row .ic-state { font-size: 11px; font-weight: 600; padding: 3px 9px; border-radius: 999px; background: var(--sf2); color: var(--tm); }
.ic.sel .ic-state { background: var(--rosa); color: #fff; }
.ic.sel .ic-state::before { content: "\2713 "; }

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 600px) { .ic-img-wrap { width: 76px; min-height: 76px; } }
*/


/* ============================================================
   HELLO EMBED — sezione integrata nel pannello destro DriveIn
   v18.3 — sostituisce lo spazio bianco sotto le cards Catalogo
   ============================================================ */
.di-hello-embed-host { margin-top: 14px; padding: 0; }
.di-hello-embed {
  margin: 4px 0 8px;
  border-radius: 14px;
  background: linear-gradient(135deg, rgba(0,113,227,.04), rgba(124,58,237,.04));
  border: 1px solid rgba(124,58,237,.18);
  overflow: hidden;
  transition: box-shadow .2s, border-color .2s;
}
.di-hello-embed.is-open { box-shadow: 0 8px 28px -16px rgba(124,58,237,.35); border-color: rgba(124,58,237,.32); }
.di-hello-embed__head {
  display: flex; align-items: center; gap: 12px;
  padding: 14px 14px;
  cursor: pointer;
  background: linear-gradient(135deg, #0071e3, #7c3aed);
  color: #fff;
  user-select: none;
}
.di-hello-embed.is-open .di-hello-embed__head { border-bottom: 1px solid rgba(124,58,237,.2); }
.di-hello-embed__ic {
  flex-shrink: 0;
  width: 36px; height: 36px;
  border-radius: 9px;
  background: rgba(255,255,255,.16);
  display: flex; align-items: center; justify-content: center;
}
.di-hello-embed__txt { flex: 1; min-width: 0; }
.di-hello-embed__title { font-size: 13.5px; font-weight: 700; line-height: 1.3; }
.di-hello-embed__sub   { font-size: 11.5px; opacity: .82; line-height: 1.45; margin-top: 3px; }
.di-hello-embed__cta {
  flex-shrink: 0;
  display: inline-flex; align-items: center; gap: 6px;
  padding: 8px 14px;
  background: rgba(255,255,255,.95);
  color: #6d28d9;
  border-radius: 999px;
  font-size: 12px; font-weight: 700;
  border: none; cursor: pointer;
  transition: background .15s, transform .15s;
}
.di-hello-embed__cta:hover { background: #fff; transform: translateY(-1px); }
.di-hello-embed.is-open  .di-hello-embed__cta-label-open  { display: none; }
.di-hello-embed.is-open  .di-hello-embed__cta-label-close { display: inline; }
.di-hello-embed.is-collapsed .di-hello-embed__cta-label-open  { display: inline; }
.di-hello-embed.is-collapsed .di-hello-embed__cta-label-close { display: none; }
.di-hello-embed__body {
  height: 0; max-height: 0; overflow: hidden;
  transition: max-height .35s var(--ease, cubic-bezier(.4,0,.2,1));
}
.di-hello-embed.is-open .di-hello-embed__body {
  height: auto; max-height: 1400px;
}
.di-hello-embed__iframe {
  width: 100%;
  height: 760px;
  border: 0;
  background: #f5f5f7;
  display: block;
}

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 720px) {
  .di-hello-embed__head { padding: 12px; gap: 10px; }
  .di-hello-embed__title { font-size: 12.5px; }
  .di-hello-embed__sub { display: none; }
  .di-hello-embed__cta { padding: 7px 11px; font-size: 11.5px; }
  .di-hello-embed__iframe { height: 600px; }
}
*/

/* Spazio bianco residuo: rimuovi padding-bottom inutile sb-bd quando catalogo */
.sb-bd > .cat-s { padding-bottom: 16px; }

/* ===========================================================
   DRIVEIN MOBILE APP-LIKE EXPERIENCE  v2026-05-03
   =========================================================== */
:root {
  --m-bnav-h: 64px;
  --m-header-h: 56px;
  --m-bcrumb-h: 44px;
  --m-safe-bottom: env(safe-area-inset-bottom, 0px);
  --m-safe-top: env(safe-area-inset-top, 0px);
  --m-shadow-card: 0 2px 8px rgba(15, 15, 26, .06);
  --m-shadow-fab: 0 4px 16px rgba(124, 58, 237, .35);
}


/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  html, body {
    overflow-x: hidden !important;
    overscroll-behavior-y: contain;
  }
  body { -webkit-tap-highlight-color: transparent; }

  body.modello-c .app {
    display: block !important;
    height: auto !important;
    min-height: 100vh !important;
    padding-bottom: calc(var(--m-bnav-h) + var(--m-safe-bottom)) !important;
    position: relative;
  }

  body.modello-c .lb {
    position: fixed !important;
    left: 0 !important; top: 0 !important; bottom: 0 !important;
    height: 100vh !important;
    width: 0 !important; min-width: 0 !important;
    overflow: hidden; z-index: 700;
    transition: width .25s cubic-bezier(.2,.9,.3,1);
    border-right: 1px solid var(--bd);
  }
  body.lb-mob .lb {
    width: 280px !important; min-width: 280px !important;
    box-shadow: 8px 0 32px rgba(0,0,0,.18);
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }
  body.lb-mob .lb > * { opacity: 1 !important; pointer-events: auto !important; }
  body.lb-mob .lbl, body.lb-mob .lb-uinfo { opacity: 1 !important; max-width: none !important; }
  body.lb-mob .lb-sect { opacity: 1 !important; height: auto !important; }
  body.lb-mob .lb-nav-item .lbl { display: inline !important; }
  body.lb-mob .lb-nav-badge { display: inline-flex !important; }
  body.lb-mob .lb-nav-item { justify-content: flex-start !important; height: auto !important; padding: 10px 12px !important; }
  body.lb-mob .lb-ft svg.lbl { display: block !important; }
  body.lb-mob .lb-search { margin: 0 8px !important; height: auto !important; }
  body.lb-mob .lb-search .lbl { display: inline !important; }

  .lb-ov {
    display: none; position: fixed; inset: 0;
    background: rgba(15, 15, 26, .5);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 699;
    animation: m-fadeIn .2s ease-out;
  }
  body.lb-mob .lb-ov { display: block; }

  @keyframes m-fadeIn { from { opacity: 0; } to { opacity: 1; } }
  @keyframes m-slideUp {
    from { transform: translateY(20px); opacity: 0; }
    to { transform: translateY(0); opacity: 1; }
  }

  body.modello-c .ctr {
    width: 100vw !important;
    height: auto !important;
    min-height: calc(100vh - var(--m-bnav-h) - var(--m-safe-bottom)) !important;
    flex: none !important;
    overflow: visible !important;
    padding-top: 0 !important;
  }

  .di-bc {
    position: sticky; top: 0; z-index: 90;
    background: var(--bg);
    border-bottom: 1px solid var(--bd);
    padding: calc(8px + var(--m-safe-top)) 12px 8px !important;
    min-height: var(--m-bcrumb-h);
    font-size: 13px; gap: 6px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    white-space: nowrap;
    scrollbar-width: none;
  }
  .di-bc::-webkit-scrollbar { display: none; }
  .di-bc-link, .di-bc-current { font-size: 13px; }
  .di-bc-sector { padding: 2px 8px; font-size: 11px; }
  .di-bc-actions { gap: 4px; }
  .di-bc-btn {
    padding: 6px 10px !important;
    font-size: 11.5px !important;
    min-height: 36px;
    white-space: nowrap;
  }
  .di-bc-cat { display: none !important; }
  .di-bc-reset { padding: 6px 10px !important; font-size: 11.5px !important; min-height: 36px; }

  body.modello-c .ch-scroll {
    height: auto !important;
    flex: 1 !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
  }
  body.modello-c .ch-inner {
    padding: 12px 12px 8px !important;
    max-width: 100% !important;
  }

  .msg { padding: 8px 0; }
  .msg-bub {
    max-width: 88% !important;
    padding: 12px 14px !important;
    font-size: 14.5px !important;
    line-height: 1.5;
    border-radius: 16px !important;
  }

  .msg-bub .sg, .msg-bub .btn, .msg-bub .di-cta {
    min-height: 44px !important;
    padding: 11px 14px !important;
    font-size: 14px !important;
  }

  .sugs {
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch;
    padding: 8px 12px 12px !important;
    gap: 8px !important;
    scrollbar-width: none;
  }
  .sugs::-webkit-scrollbar { display: none; }
  .sugs > * { flex-shrink: 0 !important; }

  body.modello-c .in-bar {
    position: sticky; bottom: 0; z-index: 80;
    padding: 8px 10px calc(8px + var(--m-safe-bottom)) !important;
    background: var(--bg);
    border-top: 1px solid var(--bd);
  }
  body.modello-c .in-inner { padding: 0 !important; max-width: 100% !important; }
  body.modello-c .bai {
    padding: 10px 12px !important;
    border-radius: 14px !important;
    gap: 10px !important;
  }
  body.modello-c .bai-ic { width: 36px !important; height: 36px !important; }
  body.modello-c .bai-tt { font-size: 13.5px !important; line-height: 1.3 !important; }
  body.modello-c .bai-su {
    font-size: 11px !important;
    line-height: 1.35 !important;
    -webkit-line-clamp: 2;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  body.modello-c .sb {
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important; min-width: 100vw !important;
    height: 100vh !important; max-height: none !important;
    z-index: 500;
    transform: translateX(100%);
    transition: transform .25s cubic-bezier(.2,.9,.3,1);
    flex: none !important;
    border-left: none;
    background: var(--bg);
    display: flex; flex-direction: column;
  }
  body.sb-on .sb {
    transform: translateX(0) !important;
    bottom: calc(var(--m-bnav-h) + var(--m-safe-bottom)) !important;
    height: calc(100vh - var(--m-bnav-h) - var(--m-safe-bottom)) !important;
    box-shadow: -8px 0 32px rgba(0,0,0,.12);
  }

  body.modello-c .sb-hd {
    position: sticky; top: 0; z-index: 5;
    padding: calc(10px + var(--m-safe-top)) 12px 10px !important;
    min-height: calc(56px + var(--m-safe-top));
    background: var(--bg);
    border-bottom: 1px solid var(--bd);
    display: flex; align-items: center; gap: 8px;
  }
  body.modello-c .sb-bd {
    flex: 1;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
    padding: 12px !important;
  }

  .sb-back, .sb-x, .sb-tab {
    min-height: 40px !important;
    padding: 8px 12px !important;
    font-size: 13px !important;
  }
  .sb-tit {
    font-size: 16px !important;
    font-weight: 600;
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .cat-s { display: block !important; }
  .ic {
    width: 100% !important;
    margin-bottom: 12px;
    border-radius: 14px !important;
    border: 1px solid var(--bd);
    overflow: hidden;
    transition: transform .12s, box-shadow .12s;
    background: var(--sf);
  }
  .ic:active { transform: scale(.985); box-shadow: var(--m-shadow-card); }
  .ic-img-wrap {
    width: 110px !important;
    min-height: 110px !important;
    flex-shrink: 0;
  }
  .ic-info { padding: 12px !important; min-width: 0; flex: 1; }
  .ic-name { font-size: 14px !important; font-weight: 600 !important; line-height: 1.3; }
  .ic-price { font-size: 13px !important; }
  .ic-desc {
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    font-size: 12px !important;
  }

  .cat-fl, .di-filters {
    position: sticky;
    top: 0;
    z-index: 4;
    background: var(--bg);
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    flex-wrap: nowrap !important;
    gap: 8px !important;
    padding: 10px 12px !important;
    margin: 0 -12px 12px !important;
    border-bottom: 1px solid var(--bd);
    scrollbar-width: none;
  }
  .cat-fl::-webkit-scrollbar, .di-filters::-webkit-scrollbar { display: none; }
  .cat-fl > *, .di-filters > * { flex-shrink: 0 !important; min-height: 36px; }

  .pd-bar, .pd-bar-go {
    position: sticky;
    bottom: 0;
    background: var(--bg);
    padding: 10px !important;
    border-top: 1px solid var(--bd);
    z-index: 5;
  }
  .pd-bar-go {
    width: 100%;
    min-height: 48px !important;
    border-radius: 12px !important;
    font-size: 14px !important;
    font-weight: 600;
  }

  .ci { padding: 12px !important; border-radius: 12px !important; }
  .ci-n { font-size: 14px !important; }
  .ci-p { font-size: 13px !important; }

  .di-hello-embed {
    margin: 12px -12px 0 !important;
    border-radius: 12px;
  }
  .di-hello-embed__iframe {
    height: 70vh !important;
    min-height: 500px;
  }
  .di-hello-embed__cta {
    min-height: 44px !important;
    padding: 11px 14px !important;
  }

  .bnav {
    display: flex !important;
    position: fixed !important;
    left: 0; right: 0; bottom: 0;
    height: calc(var(--m-bnav-h) + var(--m-safe-bottom));
    padding-bottom: var(--m-safe-bottom);
    background: var(--bg);
    border-top: 1px solid var(--bd);
    z-index: 1000;
    justify-content: space-around;
    align-items: center;
    box-shadow: 0 -2px 12px rgba(0,0,0,.04);
  }
  .bn {
    flex: 1; min-width: 0; min-height: 56px;
    padding: 8px 4px !important;
    font-size: 10.5px !important;
    color: var(--tm);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 3px;
    transition: color .15s, transform .12s;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
    position: relative;
  }
  .bn svg { width: 22px !important; height: 22px !important; transition: transform .12s; }
  .bn:active { transform: scale(.92); }
  .bn:active svg { transform: scale(.9); }
  .bn.active { color: var(--rosa); }
  .bn.active::before {
    content: '';
    position: absolute;
    top: 0;
    left: 50%;
    width: 28px;
    height: 3px;
    background: var(--rosa);
    border-radius: 0 0 3px 3px;
    transform: translateX(-50%);
  }
  .bn-badge {
    position: absolute;
    top: 6px;
    right: calc(50% - 18px);
    min-width: 18px;
    height: 18px;
    padding: 0 5px;
    border-radius: 9px;
    background: var(--rosa);
    color: #fff;
    font-size: 10px;
    font-weight: 700;
    display: none;
    align-items: center;
    justify-content: center;
    line-height: 1;
    box-shadow: 0 1px 3px rgba(0,0,0,.2);
  }
  .bn-badge.show { display: flex; }

  .di-search-overlay { padding: 0 !important; }
  .di-search-popup {
    width: 100vw !important;
    height: 100vh !important;
    max-width: none !important;
    max-height: none !important;
    border-radius: 0 !important;
  }
  .di-search-head {
    padding: calc(12px + var(--m-safe-top)) 14px 12px !important;
  }
  .di-search-input {
    font-size: 16px !important;
    height: 44px;
  }

  .lb-dropdown.open {
    position: fixed !important;
    left: 12px !important;
    right: 12px !important;
    bottom: calc(var(--m-bnav-h) + var(--m-safe-bottom) + 80px) !important;
    width: auto !important;
    max-width: none !important;
    border-radius: 14px !important;
    box-shadow: 0 8px 32px rgba(0,0,0,.18) !important;
    animation: m-slideUp .2s ease-out;
  }
  .lb-dd-item {
    padding: 12px 14px !important;
    font-size: 14px !important;
    min-height: 48px;
  }

  input[type="text"], input[type="email"], input[type="tel"],
  input[type="number"], input[type="search"], input[type="password"],
  textarea, select {
    font-size: 16px !important;
    min-height: 44px;
  }
  textarea { min-height: 88px; }

  .pg-content {
    padding: 16px 14px calc(40px + var(--m-bnav-h)) !important;
  }
  .pg-children-grid, .di-dash-grid, .blog-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .di-ai-stop {
    bottom: calc(var(--m-bnav-h) + var(--m-safe-bottom) + 12px) !important;
  }

  .di-sheet {
    position: fixed;
    left: 0; right: 0;
    bottom: calc(var(--m-bnav-h) + var(--m-safe-bottom));
    z-index: 950;
    background: var(--bg);
    border-radius: 18px 18px 0 0;
    box-shadow: 0 -8px 32px rgba(0,0,0,.18);
    transform: translateY(100%);
    transition: transform .25s cubic-bezier(.2,.9,.3,1);
    max-height: 80vh;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  .di-sheet.open { transform: translateY(0); }
  .di-sheet-handle {
    width: 36px; height: 4px;
    background: var(--bd);
    border-radius: 2px;
    margin: 8px auto 12px;
  }

  body.sb-on .in-bar { display: none !important; }
  body.sb-on .ctr { display: none; }
  body.sb-on .app {
    padding-bottom: calc(var(--m-bnav-h) + var(--m-safe-bottom)) !important;
  }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 380px) {
  .bn { font-size: 9.5px !important; }
  .bn svg { width: 20px !important; height: 20px !important; }
  .di-bc { font-size: 12px; }
  .di-bc-btn { padding: 5px 8px !important; font-size: 11px !important; }
  .msg-bub { max-width: 92% !important; padding: 10px 12px !important; }
  body.modello-c .bai-ic { width: 32px !important; height: 32px !important; }
  body.modello-c .bai-tt { font-size: 12.5px !important; }
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) and (orientation: landscape) {
  .di-bc { padding: 6px 12px !important; min-height: 36px !important; }
  body.modello-c .bai-su { display: none !important; }
}
*/


body.dark .bnav {
  box-shadow: 0 -2px 12px rgba(0, 0, 0, .35);
  background: #111122;
}
body.dark .lb-ov { background: rgba(0, 0, 0, .65); }
body.dark .ic { background: #181828; }
body.dark .di-bc { background: #0f0f1a; border-color: #252540; }

@media (min-width: 901px) {
  .lb-ov { display: none !important; }
  .di-sheet { display: none !important; }
}
/* === FINE MOBILE APP-LIKE EXPERIENCE === */

/* === DEEP FIX v19.1-deepfix === */
.lk-cb{z-index:9999!important}
body.modello-c .sb{z-index:9000!important}
.lb-ov{z-index:8999!important}
body.modello-c .lb{z-index:9100!important}
.bnav{z-index:1000!important}

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:900px){
html,body{overflow-y:auto!important;-webkit-overflow-scrolling:touch;height:auto!important;min-height:100vh!important}
body.lb-mob,body.sb-on{overflow:hidden!important;height:100vh!important;position:relative}
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:900px){
/* CHAT IN-BAR FIXED ABOVE BNAV * /
body.modello-c .in-bar{position:fixed!important;left:0!important;right:0!important;bottom:calc(var(--m-bnav-h) + var(--m-safe-bottom))!important;z-index:990!important;background:var(--bg)!important;border-top:1px solid var(--bd)!important;padding:8px 12px!important;box-shadow:0 -2px 8px rgba(0,0,0,.04);transition:bottom .2s ease}
body.modello-c .ch-scroll{padding-bottom:calc(80px + var(--m-bnav-h) + var(--m-safe-bottom))!important}
body.modello-c .app{padding-bottom:calc(var(--m-bnav-h) + var(--m-safe-bottom) + 80px)!important}
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:900px){
/* COOKIE BANNER COMPACT MOBILE * /
.lk-cb{max-height:70vh!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch!important}
.lk-cb__inner{padding:14px 16px!important}
.lk-cb__title{font-size:15px!important;margin:0 0 6px!important}
.lk-cb__text{font-size:12.5px!important;margin:0 0 12px!important;line-height:1.5}
.lk-cb__btn{padding:11px 14px!important;font-size:13.5px!important;min-height:44px!important;border-radius:8px!important}
.lk-cb__buttons{gap:8px!important}
.lk-cb__details{max-height:40vh;overflow-y:auto;-webkit-overflow-scrolling:touch}
.lk-cb__footer{font-size:11.5px}
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:900px){
/* BODY PADDING quando cookie banner visibile * /
body:has(#lk-cookie-banner:not([style*="display: none"])):not(.modello-c){padding-bottom:280px!important}
body.modello-c:has(#lk-cookie-banner:not([style*="display: none"])) .in-bar{bottom:calc(var(--m-bnav-h) + var(--m-safe-bottom) + 280px)!important}
body.modello-c:has(#lk-cookie-banner:not([style*="display: none"])) .bnav{bottom:280px!important}
body.has-cookie-banner:not(.modello-c){padding-bottom:280px!important}
body.has-cookie-banner.modello-c .in-bar{bottom:calc(var(--m-bnav-h) + var(--m-safe-bottom) + 280px)!important}
body.has-cookie-banner.modello-c .bnav{bottom:280px!important}
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:900px){
/* VIP PAGE MOBILE FIX * /
body.page-template-page-vip{padding:0!important;min-height:100vh}
body.page-template-page-vip .vip{padding:24px 16px 60px!important}
body.page-template-page-vip .vip-hero{padding:28px 18px!important}
body.page-template-page-vip .vip-title{font-size:22px!important;line-height:1.25!important;word-wrap:break-word}
body.page-template-page-vip .vip-sub{font-size:14px!important}
body.page-template-page-vip .vip-cta,body.page-template-page-vip .vip-btn,body.page-template-page-vip .vip-hey-btn{min-height:48px!important;padding:13px 22px!important;font-size:14.5px!important}
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:900px){
body.page-template-page-vip .vip-grid{grid-template-columns:1fr!important;gap:10px!important}
body.page-template-page-vip .vip-form-body{padding:18px 16px!important}
body.page-template-page-vip .vip-form-body > div[style*="grid-template-columns:1fr 1fr"]{grid-template-columns:1fr!important}
body.page-template-page-vip .vip-inp{font-size:16px!important;min-height:44px;padding:12px 14px!important}
body.page-template-page-vip .vip-row{padding:12px 14px!important;margin-bottom:8px!important}
body.page-template-page-vip .vip-card{padding:18px 16px!important;margin-bottom:12px!important}
body.page-template-page-vip .vip-form-head{padding:16px!important;flex-wrap:wrap}
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:900px){
/* TOUCH TARGETS GLOBALI * /
body.modello-c .bn,body.modello-c .lb-nav-item,body.modello-c .sg,body.modello-c .btn,body.modello-c .di-cta,body.modello-c .pd-bar-add,body.modello-c .pd-bar-go,body.modello-c .pd-bar-qb,body.modello-c .ci-qb,body.modello-c .ci-rm,body.modello-c .pd-amb-btn,body.modello-c .lb-tog,body.modello-c .sb-x,body.modello-c .sb-back,body.modello-c .sb-tab,body.modello-c .di-bc-btn{min-height:44px;min-width:44px}
}
*/



/* DISABLED-LEGACY-MOBILE-V20
@media (max-width:900px){
/* HELLO EMBED FULL-SCREEN * /
.di-hello-embed--open{position:fixed!important;inset:0!important;z-index:9500!important;margin:0!important;border-radius:0!important;background:var(--bg)!important}
.di-hello-embed--open .di-hello-embed__iframe{height:calc(100vh - 56px)!important;width:100vw!important}
.di-hello-embed__close{position:fixed!important;top:calc(8px + var(--m-safe-top))!important;right:12px!important;z-index:9501!important;min-width:44px!important;min-height:44px!important}
/* PADDING STANDARD * /
body.modello-c .ch-inner,body.modello-c .pg-content{padding-left:16px!important;padding-right:16px!important}
body.modello-c .sb-bd{padding:16px!important}
.lb-ov{touch-action:none}
}
*/


/* Touch device: rimuovi hover-only effects */

/* DISABLED-LEGACY-MOBILE-V20
@media (hover:none) and (pointer:coarse){
.vip-cta:hover{background:#E8487F!important}
.lk-cb__btn:hover{transform:none!important}
body.modello-c .ic:hover{transform:none;box-shadow:none}
}
*/

/* === FINE DRIVEIN DEEP FIX v19.1-deepfix === */

/* === DEEP FIX v19.2-internal — pagine post-login === */

/* 1. dvh fallback per .app */
@supports (height: 100dvh) {
  .app { height: 100dvh; }
}

/* 2. Sidebar drawer mobile */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.sb-on .sb {
    bottom: calc(var(--m-bnav-h) + var(--m-safe-bottom)) !important;
    width: 100vw !important; min-width: 100vw !important;
    z-index: 9000 !important;
  }
  body.sb-on { overflow: hidden !important; height: 100vh !important; }
  body.modello-c .sb-x { min-width: 44px !important; min-height: 44px !important; }
}
*/


/* 3. Sidebar tabs scrollable */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.modello-c .sb-tabs {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none;
  }
  body.modello-c .sb-tabs::-webkit-scrollbar { display: none; }
  body.modello-c .sb-tab { flex-shrink: 0; min-height: 44px; padding: 0 12px !important; }
}
*/


/* 4. Chat suggestions touch */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.modello-c .sg {
    min-height: 44px !important;
    padding: 11px 16px !important;
    font-size: 13.5px !important;
  }
}
*/


/* 5. Form inputs anti-zoom iOS */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.modello-c input[type="text"],
  body.modello-c input[type="email"],
  body.modello-c input[type="search"],
  body.modello-c input[type="tel"],
  body.modello-c input[type="password"],
  body.modello-c input[type="number"],
  body.modello-c textarea,
  body.modello-c select,
  body.modello-c .in-tx {
    font-size: 16px !important;
    min-height: 44px;
  }
}
*/


/* 6. Hello embed iframe dvh */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  .di-hello-embed--open .di-hello-embed__iframe {
    height: calc(100dvh - 56px) !important;
    min-height: calc(100vh - 56px) !important;
  }
}
*/


/* 7. Breadcrumb di-bc scroll orizzontale */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.modello-c .di-bc {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none;
    padding: 10px 12px !important;
    flex-wrap: nowrap !important;
  }
  body.modello-c .di-bc::-webkit-scrollbar { display: none; }
  body.modello-c .di-bc-btn,
  body.modello-c .di-bc-link,
  body.modello-c .di-bc-current,
  body.modello-c .di-bc-reset {
    flex-shrink: 0 !important;
    min-height: 36px;
    padding: 6px 10px !important;
    font-size: 12.5px !important;
  }
}
*/


/* 8. Product detail padding-bottom */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.modello-c .pd,
  body.modello-c .pd-content,
  body.modello-c .sb-bd {
    padding-bottom: calc(80px + var(--m-bnav-h) + var(--m-safe-bottom)) !important;
  }
}
*/


/* 9. Bottom nav touch target */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.modello-c .bnav .bn {
    min-height: 48px !important;
    min-width: 56px !important;
    padding: 8px 6px !important;
  }
  body.modello-c .bnav { z-index: 1000 !important; }
}
*/


/* 10. Cards .ic stack */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.modello-c .ic { margin-bottom: 10px; border-radius: 10px; }
  body.modello-c .ic-n { font-size: 14px; }
  body.modello-c .ic-p { font-size: 13px; }
}
*/


/* 11. Account/profile mobile inputs */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.account-page input,
  body.account-page select,
  body.account-page textarea,
  body.page-template-page-settings input,
  body.page-template-page-settings select,
  body.page-template-page-settings textarea {
    width: 100% !important;
    font-size: 16px !important;
    padding: 12px 14px !important;
    min-height: 44px;
    box-sizing: border-box;
  }
  body.account-page table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
}
*/


/* 12. Woo cart/checkout mobile */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.woocommerce-checkout .col2-set,
  body.woocommerce-checkout .col2-set .col-1,
  body.woocommerce-checkout .col2-set .col-2 {
    width: 100% !important;
    float: none !important;
    padding: 0 !important;
    margin-bottom: 16px;
  }
  body.woocommerce-cart .woocommerce-cart-form,
  body.woocommerce-cart table.shop_table {
    display: block;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  body.woocommerce-checkout #place_order,
  body.woocommerce-cart .button {
    width: 100% !important;
    min-height: 50px !important;
    font-size: 16px !important;
  }
}
*/


/* 13. Cookie banner z-index */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.modello-c.sb-on .lk-cb { z-index: 8500 !important; }
}
*/


/* 14. In-bar buttons tap area */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.modello-c .in-bar .in-inner { padding: 0; }
  body.modello-c .in-bar button { min-height: 44px !important; min-width: 44px !important; }
}
*/


/* 15. Breadcrumb safe-top */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.modello-c .ch > .di-bc {
    padding-top: calc(8px + var(--m-safe-top)) !important;
  }
}
*/


/* 16. Chat scroll iOS momentum */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.modello-c .ch-scroll {
    -webkit-overflow-scrolling: touch !important;
    overscroll-behavior: contain;
  }
}
*/


/* 17. Pills sugs schermi piccoli */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 480px) {
  body.modello-c .sugs { gap: 6px !important; }
  body.modello-c .sg { flex: 1 1 calc(50% - 6px); justify-content: center; }
  body.modello-c .sg.ai { flex: 1 1 100%; }
}
*/


/* 18. Modal/popup max-height dvh */

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 900px) {
  body.modello-c .di-search-popup,
  body.modello-c .di-amb-popup {
    max-height: 80vh !important;
    max-height: 80dvh !important;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
}
*/


/* === END v19.2-internal === */

/* === DEEP FIX v19.3-craft — UX loading + artigiani digitali === */

/* 1. Skeleton shimmer base */
.di-skel {
  background: linear-gradient(90deg, var(--sf2) 0%, var(--sf) 50%, var(--sf2) 100%);
  background-size: 200% 100%;
  animation: di-shimmer 1.4s infinite linear;
  border-radius: 8px;
  display: block;
}
.di-skel-line { height: 12px; margin: 8px 0; }
.di-skel-block { height: 120px; }
.di-skel-circle { border-radius: 50%; aspect-ratio: 1/1; }

@keyframes di-shimmer {
  0% { background-position: 200% 0; }
  100% { background-position: -200% 0; }
}

/* 2. Ripple effect su button/CTA */
.di-ripple { position: relative; overflow: hidden; isolation: isolate; }
.di-ripple::after {
  content: ''; position: absolute; inset: 0;
  background: radial-gradient(circle at var(--rx,50%) var(--ry,50%),
    rgba(232,72,127,.28) 0%, transparent 60%);
  opacity: 0; transition: opacity .4s ease;
  pointer-events: none;
}
.di-ripple.di-ripple-active::after { opacity: 1; transition: opacity 0s; }

/* 3. Touch active scale */

/* DISABLED-LEGACY-MOBILE-V20
@media (hover: none) and (pointer: coarse) {
  body.modello-c .sg:active,
  body.modello-c .bn:active,
  body.modello-c .di-cta:active,
  body.modello-c .di-bc-btn:active,
  body.modello-c .lb-nav-item:active,
  body.modello-c .pd-bar-add:active,
  body.modello-c .pd-bar-go:active {
    transform: scale(.97);
    transition: transform .1s ease;
  }
}
*/


/* 4. View transitions: fade-in */
.di-fade-in { animation: di-fade-in .35s cubic-bezier(.4,0,.2,1) both; }
@keyframes di-fade-in {
  from { opacity: 0; transform: translateY(6px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* 5. Spinner mini */
.di-spin {
  display: inline-block; width: 16px; height: 16px;
  border: 2px solid var(--bd); border-top-color: var(--rosa);
  border-radius: 50%; animation: di-spin 0.7s linear infinite;
}
@keyframes di-spin { to { transform: rotate(360deg); } }

/* 6. Pulse loader AI */
.di-ai-pulse {
  display: inline-flex; gap: 6px; align-items: center;
  font-size: 13px; color: var(--tm); padding: 6px 10px;
  background: var(--rosa-s); border-radius: 12px;
}
.di-ai-pulse::before {
  content: ''; width: 8px; height: 8px; border-radius: 50%;
  background: var(--rosa);
  animation: di-pulse 1.2s ease-in-out infinite;
}
@keyframes di-pulse {
  0%,100% { opacity: 1; transform: scale(1); }
  50%     { opacity: .35; transform: scale(.7); }
}

/* 7. Banner Artigiani — sticky top */
.di-craft-banner {
  position: sticky; top: 0; z-index: 100;
  background: linear-gradient(90deg, #1a0030 0%, #2d0050 100%);
  color: #fff; font-size: 13px;
  padding: 10px 16px; text-align: center;
  border-bottom: 1px solid rgba(232,72,127,.3);
  display: flex; gap: 8px; align-items: center; justify-content: center;
  flex-wrap: wrap;
}
.di-craft-banner strong { color: #ffb8d4; font-weight: 600; }
.di-craft-banner svg { flex-shrink: 0; }

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 600px) {
  .di-craft-banner { font-size: 12px; padding: 8px 12px; }
}
*/


/* 8. Sezione Come Funziona 3 step */
.di-craft-how {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 18px;
  padding: 28px 24px;
  max-width: 980px;
  margin: 0 auto;
}
.di-craft-step {
  background: var(--bg);
  border: 1px solid var(--bd);
  border-radius: var(--rl);
  padding: 22px 18px;
  text-align: left;
}
.di-craft-step-num {
  width: 32px; height: 32px;
  border-radius: 50%;
  background: var(--rosa);
  color: #fff;
  font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 14px; margin-bottom: 12px;
}
.di-craft-step-title { font-size: 16px; font-weight: 600; margin-bottom: 6px; }
.di-craft-step-text { font-size: 13.5px; color: var(--tm); line-height: 1.55; }

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 768px) {
  .di-craft-how { grid-template-columns: 1fr; gap: 12px; padding: 18px 14px; }
}
*/


/* 9. Toast feedback */
.di-toast-stack {
  position: fixed;
  bottom: calc(20px + var(--m-safe-bottom, 0px));
  left: 50%; transform: translateX(-50%);
  z-index: 9800;
  display: flex; flex-direction: column; gap: 8px;
  pointer-events: none;
  max-width: calc(100vw - 32px);
}
.di-toast {
  background: var(--t1); color: #fff;
  padding: 12px 18px; border-radius: 12px;
  font-size: 13.5px; font-weight: 500;
  box-shadow: 0 8px 24px -8px rgba(0,0,0,.35);
  pointer-events: auto;
  animation: di-toast-in .25s ease both;
  max-width: 360px;
}
.di-toast.ok { background: #166534; }
.di-toast.err { background: #b91c1c; }
.di-toast.info { background: #0369a1; }
@keyframes di-toast-in {
  from { opacity: 0; transform: translateY(12px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* 10. Tooltip */
.di-tt { position: relative; cursor: help; }
.di-tt::after {
  content: attr(data-tt);
  position: absolute; bottom: calc(100% + 6px); left: 50%;
  transform: translateX(-50%);
  background: var(--t1); color: #fff;
  font-size: 11.5px; font-weight: 500;
  padding: 6px 10px; border-radius: 6px;
  white-space: nowrap; pointer-events: none;
  opacity: 0; transition: opacity .15s;
  z-index: 200;
}
.di-tt:hover::after, .di-tt:focus-visible::after { opacity: 1; }

/* 11. Field validation gentile */
.di-field-hint {
  font-size: 12px; color: var(--tm); margin-top: 4px;
  display: flex; gap: 4px; align-items: center;
}
.di-field-hint.warn { color: #b45309; }
.di-field-hint.err { color: #b91c1c; }
.di-field-hint.ok { color: #166534; }

/* 12. Wizard progress bar */
.di-wiz-progress {
  display: flex; gap: 6px; align-items: center;
  padding: 12px 16px;
  background: var(--sf);
  border-bottom: 1px solid var(--bd);
  font-size: 12.5px; color: var(--tm);
}
.di-wiz-progress-bar {
  flex: 1; height: 4px; background: var(--sf2);
  border-radius: 2px; overflow: hidden;
}
.di-wiz-progress-fill {
  height: 100%; background: var(--rosa);
  border-radius: 2px;
  transition: width .35s ease;
}
.di-wiz-step-label { font-weight: 600; color: var(--t2); white-space: nowrap; }

/* 13. Skeleton iframe Hello */
.di-iframe-skel {
  position: relative;
  background: var(--sf);
  border-radius: 12px;
  overflow: hidden;
  min-height: 280px;
}
.di-iframe-skel::before {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(180deg,
    transparent 0%, transparent 14%,
    var(--sf2) 14%, var(--sf2) 16%,
    transparent 16%, transparent 100%);
}
.di-iframe-skel::after {
  content: '';
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.6), transparent);
  background-size: 200% 100%;
  animation: di-shimmer 1.6s infinite linear;
}

/* 14. Confirm dialog */
.di-confirm-bg {
  position: fixed; inset: 0;
  background: rgba(0,0,0,.5);
  display: flex; align-items: center; justify-content: center;
  z-index: 9700;
  animation: di-fade-in .2s ease both;
  padding: 20px;
}
.di-confirm {
  background: var(--bg);
  border-radius: 16px;
  max-width: 420px; width: 100%;
  padding: 24px;
}
.di-confirm-title { font-size: 18px; font-weight: 700; margin-bottom: 8px; }
.di-confirm-text { font-size: 14px; color: var(--tm); margin-bottom: 18px; line-height: 1.55; }
.di-confirm-btns { display: flex; gap: 8px; justify-content: flex-end; }
.di-confirm-btn {
  padding: 10px 18px; border-radius: 10px;
  font-size: 14px; font-weight: 600;
  cursor: pointer;
  border: 1px solid var(--bd); background: var(--bg); color: var(--t1);
  min-height: 44px;
}
.di-confirm-btn.primary { background: var(--rosa); color: #fff; border-color: var(--rosa); }
.di-confirm-btn.danger { background: #b91c1c; color: #fff; border-color: #b91c1c; }

/* 15. CTA Craft elegante */
.di-cta-craft {
  background: linear-gradient(135deg, #6a4c93 0%, #E8487F 100%);
  color: #fff !important;
  padding: 14px 28px !important;
  border-radius: 980px !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  display: inline-flex; align-items: center; gap: 8px;
  text-decoration: none !important;
  transition: transform .15s, box-shadow .2s;
  border: none;
}
.di-cta-craft:hover { transform: translateY(-1px); box-shadow: 0 12px 30px -10px rgba(232,72,127,.45); }

/* 16. Inline support chat snippet */
.di-craft-support {
  display: flex; gap: 10px; align-items: center;
  padding: 12px 14px; background: var(--rosa-s);
  border: 1px solid rgba(232,72,127,.18);
  border-radius: 12px; margin: 14px 0;
  font-size: 13px; color: var(--t2);
}
.di-craft-support strong { color: var(--rosa); }

/* 17. Footer artigiani */
.di-craft-footer {
  text-align: center;
  padding: 28px 18px 36px;
  font-size: 12.5px;
  color: var(--tm);
  border-top: 1px solid var(--bd);
  margin-top: 32px;
}
.di-craft-footer strong { color: var(--t2); font-weight: 600; }

/* 18. Step microcopy hint */
.di-craft-microcopy {
  font-size: 12.5px; color: var(--tm);
  font-style: italic; line-height: 1.55;
  margin-top: 6px; padding-left: 16px;
  border-left: 2px solid rgba(232,72,127,.3);
}

/* 19. Reduced-motion respect */
@media (prefers-reduced-motion: reduce) {
  .di-skel, .di-iframe-skel::after, .di-ai-pulse::before { animation: none !important; }
  .di-fade-in, .di-toast { animation: none !important; }
  .di-ripple::after { display: none; }
}

/* === END v19.3-craft === */

/* Banner artigiani in app — non sticky, sopra header */
.di-craft-banner--app {
  position: relative;
  top: auto;
  font-size: 12px;
  padding: 7px 12px;
  border-bottom: 1px solid rgba(232,72,127,.25);
}

/* DISABLED-LEGACY-MOBILE-V20
@media (max-width: 600px) {
  .di-craft-banner--app { font-size: 11.5px; padding: 6px 10px; }
}
*/


/* === v19.4-wired: email modal, history, chat widget, hello bridge === */
.di-email-modal{max-width:440px}
.di-email-input{
  width:100%;padding:12px 14px;border:1px solid var(--bd);
  border-radius:10px;font-size:15px;font-family:inherit;
  background:var(--bg);color:var(--t1);margin-bottom:6px;
  min-height:44px;
}
.di-email-input:focus{outline:2px solid var(--rosa);outline-offset:1px;border-color:var(--rosa)}
.di-email-err{font-size:12.5px;color:#b91c1c;min-height:16px;margin-bottom:10px}

/* History sidebar */
.di-hist-list{display:flex;flex-direction:column;gap:8px;padding:10px;background:var(--sf);border:1px solid var(--bd);border-radius:12px;max-width:320px}
.di-hist-list h4{font-size:13px;font-weight:600;color:var(--t1);margin:0 0 4px}
.di-hist-item{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:8px 10px;background:var(--bg);border:1px solid var(--bd);border-radius:8px;font-size:12.5px;cursor:pointer}
.di-hist-item:hover{border-color:var(--rosa);background:rgba(232,72,127,.04)}
.di-hist-item-time{color:var(--tm);font-size:11.5px}
.di-hist-empty{padding:14px;text-align:center;color:var(--tm);font-size:12.5px;font-style:italic}

.di-hist-item-restore{padding:5px 10px;border-radius:999px;font-size:11.5px;font-weight:600;border:1px solid var(--rosa);color:var(--rosa);background:transparent;cursor:pointer}
.di-hist-item-restore:hover{background:var(--rosa);color:#fff}

/* Live chat widget RIMOSSO 2026-05-04: ora si usa Galaxy Bubble (BazarAI) condiviso */
.di-craft-chat,.di-craft-chat-panel,.di-craft-chat-btn,.bai-chat,.bai-chat-panel{display:none!important;visibility:hidden!important;pointer-events:none!important}


/* Hello configurator wired primitives bridge (loaded inline by hf_render_app) */
.hf-wired{--bg:#fff;--sf:#fbfbfd;--sf2:#f3f4f6;--bd:#d2d2d7;--t1:#1d1d1f;--t2:#1d1d1f;--tm:#6e6e73;--rosa:#E8487F;--rosa-s:rgba(232,72,127,.06)}
.hf-wired .di-wiz-progress{position:sticky;top:48px;z-index:30;border-radius:0;background:rgba(255,255,255,.92);backdrop-filter:blur(20px)}

/* DISABLED-LEGACY-MOBILE-V20
@media(max-width:768px){.hf-wired .di-wiz-progress{top:48px}}
*/

.hf-wired .di-iframe-skel{background:#f3f4f6;border-radius:0;min-height:420px}
/* .hf-wired .di-craft-chat rule rimossa 2026-05-04 */
.hf-wired .di-tt::after{font-size:11px;max-width:240px;white-space:normal;line-height:1.35}

/* Hello header restart button + save-link CTA */
.hf-restart{background:transparent;border:1px solid #d2d2d7;color:#6e6e73;padding:7px 14px;border-radius:999px;font-size:12.5px;font-weight:500;cursor:pointer;font-family:inherit;min-height:36px}
.hf-restart:hover{border-color:#b91c1c;color:#b91c1c}
.hf-savelink{display:inline-flex;align-items:center;gap:6px;background:#fff;border:1px solid #0071e3;color:#0071e3;padding:10px 18px;border-radius:999px;font-size:13.5px;font-weight:600;cursor:pointer;font-family:inherit}
.hf-savelink:hover{background:#0071e3;color:#fff}

/* Hello microcopy (artigiano voice) */
.hf-step-copy{font-size:12.5px;color:#6e6e73;font-style:italic;margin:8px 0 18px;padding:10px 14px;border-left:2px solid rgba(232,72,127,.4);background:rgba(232,72,127,.04);border-radius:6px}

/* v22.2b — promo banner fix when sidebar open */
body.sb-on .di-promo-banner {
  flex-direction: column;
  text-align: center;
  gap: 12px;
  padding: 16px;
}
body.sb-on .di-promo-banner__icon { margin: 0 auto; }
body.sb-on .di-promo-banner__btn {
  width: 100%;
  justify-content: center;
}
body.sb-on .di-auto-cta__btns {
  flex-direction: column;
}
body.sb-on .di-auto-cta__btns .blog-cta-btn {
  text-align: center;
  justify-content: center;
}
/* v22.2b END */
