/* Castaldi · sistema grafico del sito (direzione D · Atlante, prototipo di Simone, REGICODE 20/10/2026).
   Colori, caratteri e componenti condivisi da Elementor e dalle uscite del plugin. Le classi sono quelle del prototipo:
   in Elementor si mettono in «Classi CSS» di contenitori e widget. */

/* ---------- caratteri ospitati sul sito (OFL) ---------- */
body @font-face { font-family: 'Funnel Display'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(fonts/funnel-display-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Funnel Display'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(fonts/funnel-display-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Funnel Sans'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(fonts/funnel-sans-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Funnel Sans'; font-style: normal; font-weight: 300 800; font-display: swap; src: url(fonts/funnel-sans-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }
@font-face { font-family: 'Funnel Sans'; font-style: italic; font-weight: 300 800; font-display: swap; src: url(fonts/funnel-sans-italic-latin-ext.woff2) format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF; }
@font-face { font-family: 'Funnel Sans'; font-style: italic; font-weight: 300 800; font-display: swap; src: url(fonts/funnel-sans-italic-latin.woff2) format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; }

:root {
  --blu: #3E50B4;
  --ink: #222222;
  --testo: #666666;
  --grigio: #EEEEEE;
  --linea: #D5D5D5;
  --bordo: #E5E5E5;
  --bianco: #FFFFFF;
  --f-titoli: 'Funnel Display', 'Arial Narrow', Arial, sans-serif;
  --f-testo: 'Funnel Sans', 'Segoe UI', Arial, sans-serif;
  --max: 1600px;
  --margine: clamp(20px, 3vw, 40px);
  color-scheme: light;
}

/* ---------- base (il reset del tema Hello è spento) ---------- */
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--bianco); color: var(--testo); font-family: var(--f-testo); font-size: 17px; line-height: 1.6; overflow-x: hidden; }
body img { height: auto; border-style: none; }
body button, body input, body select, body textarea { font: inherit; color: inherit; margin: 0; }
body button { cursor: pointer; }
body table { border-collapse: collapse; }
body a { color: var(--ink); text-decoration: none; }
body a:hover { color: var(--blu); }
body :focus-visible { outline: 3px solid var(--blu); outline-offset: 3px; }
body h1, body h2, body h3 { font-family: var(--f-titoli); letter-spacing: -0.03em; text-wrap: balance; }
body img { max-width: 100%; }
body [hidden] { display: none !important; }
body .sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
body .wrap { max-width: var(--max); margin: 0 auto; padding-inline: var(--margine); }
body .piccolo, body .piccolo p { font-size: 14px; }
body .link-blu, body a.link-blu { color: var(--blu); font-weight: 700; }

/* ---------- bottoni, body chip, body etichette ---------- */
body .btn, body a.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 0 26px; border-radius: 999px; border: 0; font: inherit; font-weight: 700; line-height: 1.2; text-align: center; cursor: pointer; transition: transform .2s, background-color .2s, color .2s; }
body .btn:hover { transform: translateY(-2px); }
body .btn--blu, body a.btn--blu { background: var(--blu); color: var(--bianco); }
body .btn--blu:hover, body a.btn--blu:hover { color: var(--bianco); }
body .btn--ink, body a.btn--ink { background: var(--ink); color: var(--bianco); }
body .btn--ink:hover, body a.btn--ink:hover { color: var(--bianco); background: var(--blu); }
body .btn--bianco, body a.btn--bianco { background: var(--bianco); color: var(--ink); }
body .btn--bordo, body a.btn--bordo { background: transparent; color: var(--ink); border: 1.5px solid var(--ink); }
body .btn--mini, body a.btn--mini { min-height: 40px; padding: 0 18px; font-size: 15px; }
body .btn--piccolo { min-height: 44px; padding: 0 18px; font-size: 15px; }
body .btn--grande, body a.btn--grande { min-height: 56px; padding: 0 28px; font-size: 17px; }
body .btn--pieno { width: 100%; }
body .btn.loading { opacity: .7; }
body .btn.added::after { content: " ✓"; }
body a.added_to_cart { display: none; }
body .chip { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; border: 0; background: var(--grigio); color: var(--ink); font: inherit; font-weight: 600; cursor: pointer; transition: background-color .25s, color .25s, transform .25s; }
body .chip[aria-pressed="true"], body .chip--spunta:has(input:checked) { background: var(--blu); color: var(--bianco); transform: scale(1.05); }
body .chip--spunta input { position: absolute; opacity: 0; pointer-events: none; }
body .chip--spunta { position: relative; }
body .chip--spunta:has(input:focus-visible) { outline: 3px solid var(--blu); outline-offset: 3px; }
body .chips { display: flex; flex-wrap: wrap; gap: 8px; }
body .etichetta { display: inline-flex; align-items: center; min-height: 26px; padding: 0 10px; border-radius: 999px; background: var(--ink); color: var(--bianco); font-size: 12px; font-weight: 700; }
body .etichetta--blu { background: var(--blu); }
body .etichetta--chiara { background: var(--bianco); color: var(--ink); }
body .occhiello { font-size: 14px; font-weight: 700; color: var(--blu); }
body .icona-btn { position: relative; display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; border-radius: 50%; border: 0; background: var(--grigio); color: var(--ink); cursor: pointer; flex: 0 0 auto; padding: 0; }
body .icona-btn:hover { color: var(--blu); }
body .icona-btn--grande { width: 52px; height: 52px; }
body .icona-btn[aria-pressed="true"] { color: var(--bianco); background: var(--blu); }
body .icona-btn[aria-pressed="true"] svg path { fill: currentColor; }
body .badge { position: absolute; top: -4px; right: -4px; min-width: 20px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--blu); color: var(--bianco); font-size: 12px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; }

/* ---------- titoli ---------- */
body .titolo-xl, body .titolo-xl .elementor-heading-title { font-family: var(--f-titoli); font-weight: 800; font-size: clamp(42px, 5.6vw, 84px); line-height: 0.96; letter-spacing: -0.03em; color: var(--ink); }
body .titolo-l, body .titolo-l .elementor-heading-title { font-family: var(--f-titoli); font-weight: 800; font-size: clamp(32px, 3.8vw, 52px); line-height: 1; letter-spacing: -0.03em; color: var(--ink); }
body .titolo-m, body .titolo-m .elementor-heading-title { font-family: var(--f-titoli); font-weight: 700; font-size: clamp(22px, 2vw, 28px); line-height: 1.15; letter-spacing: -0.02em; color: var(--ink); }
body .titolo-sezione, body .titolo-sezione .elementor-heading-title { font-family: var(--f-titoli); font-weight: 800; font-size: clamp(36px, 4.4vw, 60px); line-height: 1; letter-spacing: -0.03em; color: var(--ink); }
body .briciole, body .woocommerce-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; font-size: 14px; padding-top: 12px; color: var(--testo); }
body .briciole a, body .woocommerce-breadcrumb a { color: var(--testo); }
body .briciole a:hover, body .woocommerce-breadcrumb a:hover { color: var(--blu); }
body .briciole [aria-current="page"] { color: var(--ink); font-weight: 600; }
body .briciole .briciola:last-child { color: var(--ink); font-weight: 600; }
body .briciole .briciola a { color: var(--testo); }
body .intro, body .intro p { max-width: 680px; font-size: 18px; }

/* ---------- pannelli e schede ---------- */
body .pannello { background: var(--grigio); border-radius: 28px; padding: clamp(22px, 3vw, 40px); }
body .pannello--blu { background: var(--blu); color: var(--bianco); }
body .pannello--blu .titolo-m, body .pannello--blu .titolo-l, body .pannello--blu h2, body .pannello--blu h3, body .pannello--ink .titolo-m, body .pannello--ink h2, body .pannello--ink h3 { color: var(--bianco); }
body .pannello--blu .occhiello { color: var(--grigio); }
body .pannello--ink { background: var(--ink); color: var(--linea); }
body .pannello--ink .occhiello { color: var(--linea); }
body .scheda { background: var(--bianco); border: 1px solid var(--bordo); border-radius: 28px; padding: clamp(22px, 3vw, 40px); }
body .lift { transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }
body .lift:hover { transform: translateY(-6px); box-shadow: 0 18px 36px rgba(34,34,34,.14); }

/* ---------- schede prodotto in griglia ---------- */
body .griglia-prodotti { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 16px; }
body .prod { position: relative; display: flex; flex-direction: column; gap: 12px; height: 100%; background: var(--bianco); border: 1px solid var(--bordo); border-radius: 24px; padding: 14px; transition: transform .35s cubic-bezier(.2,.7,.2,1), box-shadow .35s; }
body .prod:hover { transform: translateY(-4px); box-shadow: 0 16px 32px rgba(34,34,34,.1); }
body .prod-img { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; max-width: 100%; border-radius: 18px; background: var(--grigio); overflow: hidden; }
body .prod-img img { width: 100%; height: 100%; object-fit: contain; display: block; transition: transform .6s cubic-bezier(.2,.7,.2,1); }
body .prod:hover .prod-img img { transform: scale(1.06); }
body .prod-etichette { position: absolute; top: 24px; left: 24px; display: flex; flex-wrap: wrap; gap: 6px; pointer-events: none; z-index: 1; }
body .prod-cuore { position: absolute; top: 22px; right: 22px; background: var(--bianco); z-index: 2; }
body .prod-corpo { display: flex; flex-direction: column; gap: 4px; padding-inline: 4px; }
body .prod-epoca { display: block; font-size: 13px; font-weight: 700; color: var(--blu); }
body .prod h3 { margin: 0; font-family: var(--f-titoli); font-size: 19px; font-weight: 700; line-height: 1.2; letter-spacing: -0.01em; color: var(--ink); }
body .prod h3 a { color: var(--ink); }
body .prod h3 a::after { content: ""; position: absolute; inset: 0; border-radius: 24px; }
body .prod-meta { display: block; font-size: 14px; }
body .prod-piede { position: relative; z-index: 1; margin-top: auto; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 4px 4px; }
body .prezzo, body .prezzo .woocommerce-Price-amount { font-family: var(--f-titoli); font-size: 24px; font-weight: 800; letter-spacing: -0.02em; color: var(--ink); font-variant-numeric: tabular-nums; }
body .prezzo--testo { font-size: 18px; }
body .prezzo del { font-size: .7em; color: var(--testo); }
body .medaglia { width: 68%; aspect-ratio: 1 / 1; border-radius: 50%; background: var(--bianco); border: 2px solid var(--linea); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; line-height: 1; color: var(--testo); }
body .medaglia b { font-family: var(--f-titoli); font-size: clamp(28px, 2.6vw, 40px); font-weight: 800; color: var(--ink); }
body .medaglia small { margin-top: 6px; font-size: 12px; font-weight: 600; }
body .medaglia--blu { background: var(--blu); border-color: var(--blu); color: var(--bianco); }
body .medaglia--blu b { color: var(--bianco); }
body .medaglia--ink { background: var(--ink); border-color: var(--ink); color: var(--linea); }
body .medaglia--ink b { color: var(--bianco); }

/* ---------- filtri del negozio (pannello laterale su telefono) ---------- */
body .filtri-shop .filtro, body .filtri-shop .jet-filter { border-bottom: 1px solid var(--bordo); padding-block: 14px; }
body .filtri-shop .jet-filter-label, body .filtri-shop .elementor-widget-heading .elementor-heading-title { font-weight: 700; color: var(--ink); font-size: 16px; }
body .btn-filtri, body .filtri-chiudi { display: none !important; }
body .velo-filtri { position: fixed; inset: 0; z-index: 9990; background: rgba(34,34,34,.45); opacity: 0; visibility: hidden; transition: opacity .3s, visibility .3s; }
@media (max-width: 860px) {
  body .btn-filtri, body .filtri-chiudi { display: inline-flex !important; }
  body .filtri-shop { position: fixed !important; inset: 0 auto 0 0; z-index: 9991; width: min(360px, 92%) !important; max-width: none !important; background: var(--bianco); padding: calc(20px + env(safe-area-inset-top, 0px)) 24px calc(24px + env(safe-area-inset-bottom, 0px)) max(24px, env(safe-area-inset-left, 0px)) !important; overflow-y: auto; transform: translateX(-102%); transition: transform .4s cubic-bezier(.2,.7,.2,1); visibility: hidden; }
  html[data-filtri="aperti"] .filtri-shop { transform: none; visibility: visible; }
  html[data-filtri="aperti"] .velo-filtri { opacity: 1; visibility: visible; }
  html[data-filtri="aperti"] { overflow: hidden; }
}

/* ---------- campi dei moduli ---------- */
body .campo { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
body .campo label, body .etichetta-campo { font-size: 14px; font-weight: 700; color: var(--ink); }
body .aiuto, body .campo .aiuto { font-size: 13px; font-weight: 400; color: var(--testo); }
body .input, body .textarea { width: 100%; min-height: 52px; border: 1px solid var(--linea); border-radius: 14px; padding: 0 16px; background: var(--bianco); font: inherit; color: var(--ink); }
body .textarea { min-height: 140px; padding: 14px 16px; resize: vertical; }
body .input:focus, body .textarea:focus, body .select:focus { border-color: var(--blu); outline: 3px solid rgba(62,80,180,.2); outline-offset: 0; }
body .griglia-campi { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; }
body .spunta { display: flex; align-items: flex-start; gap: 12px; font-size: 15px; cursor: pointer; }
body .spunta input { flex: 0 0 22px; width: 22px; height: 22px; margin: 1px 0 0; accent-color: var(--blu); cursor: pointer; }
body .select { min-height: 44px; border: 1px solid var(--linea); border-radius: 999px; padding: 0 44px 0 18px; background: var(--bianco) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23222222' stroke-width='2.2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center; font: inherit; font-size: 15px; color: var(--ink); appearance: none; -webkit-appearance: none; cursor: pointer; }
body .esito { display: flex; align-items: flex-start; gap: 12px; padding: 16px 18px; border-radius: 16px; background: rgba(62,80,180,.08); color: var(--ink); font-weight: 600; }

/* ---------- tabelle ---------- */
body .tabella-box { overflow-x: auto; }
body .tabella { width: 100%; border-collapse: collapse; font-size: 15px; font-variant-numeric: tabular-nums; }
body .tabella th, body .tabella td { text-align: left; padding: 14px 12px; border: 0; border-bottom: 1px solid var(--bordo); vertical-align: middle; background: none; }
body .tabella th { color: var(--ink); font-weight: 700; }
body .tabella thead th { font-size: 13px; color: var(--testo); font-weight: 600; }
body .stato { display: inline-flex; align-items: center; gap: 6px; min-height: 28px; padding: 0 12px; border-radius: 999px; background: var(--grigio); color: var(--ink); font-size: 13px; font-weight: 700; white-space: nowrap; }
body .stato--blu { background: var(--blu); color: var(--bianco); }

/* ---------- scheda prodotto ---------- */
/* colonne esplicite: con auto-fit, dentro i contenitori flex di Elementor, il riquadro viene misurato a una colonna
   e resta alto il doppio (vuoto sotto le caratteristiche al telefono) */
body .specifiche { margin: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 600px) { body .specifiche { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
body .specifiche div { background: var(--grigio); border-radius: 16px; padding: 12px 14px; }
body .specifiche dt { font-size: 13px; }
body .specifiche dd { margin: 2px 0 0; font-weight: 700; color: var(--ink); }
body .garanzie { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; font-size: 15px; }
body .garanzie li { display: flex; align-items: center; gap: 10px; }
body .garanzie svg { flex: 0 0 auto; color: var(--blu); }
body .quotazione-prodotto { margin: 0; padding: 14px 18px; border-radius: 16px; background: rgba(62,80,180,.08); color: var(--ink); font-size: 15px; }
body .link-confronta { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 4px; border: 0; background: none; font: inherit; font-weight: 700; color: var(--ink); cursor: pointer; }
body .link-confronta[aria-pressed="true"] { color: var(--blu); }

/* ---------- liste del conto ---------- */
body .riga-carrello { display: grid; grid-template-columns: 76px minmax(0, 1fr) auto; gap: 14px; align-items: center; }
body .mini { width: 76px; height: 76px; border-radius: 16px; background: var(--grigio); overflow: hidden; display: flex; align-items: center; justify-content: center; }
body .mini img { width: 100%; height: 100%; object-fit: contain; display: block; }
body .mini .medaglia { width: 70%; border-width: 1.5px; }
body .mini .medaglia b { font-size: 15px; }
body .riga-carrello strong { display: block; color: var(--ink); font-family: var(--f-titoli); font-size: 16px; line-height: 1.2; }
body .riga-carrello .meta { display: block; font-size: 13px; }
body .riga-destra { display: flex; flex-direction: column; align-items: flex-end; gap: 8px; font-variant-numeric: tabular-nums; }
body .riga-destra b { color: var(--ink); }
body .togli { border: 0; background: transparent; padding: 0; font: inherit; font-size: 13px; color: var(--testo); text-decoration: underline; cursor: pointer; }
body .lista-righe { display: flex; flex-direction: column; gap: 16px; }
body .lista-vuota { padding: 24px; border-radius: 20px; background: var(--grigio); }
body .tabella-confronto thead th { vertical-align: top; min-width: 180px; }
body .tabella-confronto .mini { margin-bottom: 8px; }

/* ---------- domande frequenti ---------- */
body .domande details { border-bottom: 1px solid var(--bordo); }
body .domande summary { min-height: 60px; display: flex; align-items: center; justify-content: space-between; gap: 16px; cursor: pointer; list-style: none; font-size: 18px; font-weight: 700; color: var(--ink); }
body .domande summary::-webkit-details-marker { display: none; }
body .domande summary::after { content: "+"; flex: 0 0 34px; height: 34px; border-radius: 50%; background: var(--grigio); color: var(--blu); display: inline-flex; align-items: center; justify-content: center; font-family: var(--f-titoli); font-size: 20px; }
body .domande details[open] summary::after { content: "\2212"; }
body .domande p { padding: 0 48px 20px 0; max-width: 68ch; margin: 0; }

/* ---------- avviso in basso ---------- */
body .avviso { position: fixed; left: 50%; bottom: calc(20px + env(safe-area-inset-bottom, 0px)); z-index: 99999; max-width: calc(100% - 32px); transform: translate(-50%, 140%); opacity: 0; visibility: hidden; background: var(--ink); color: var(--bianco); border-radius: 999px; padding: 12px 20px; font-size: 15px; font-weight: 600; text-align: center; transition: transform .35s cubic-bezier(.2,.7,.2,1), opacity .35s, visibility .35s; }
body .avviso.visibile { transform: translate(-50%, 0); opacity: 1; visibility: visible; }

/* ---------- 2 € commemorativi ---------- */
body .c2e-filtri { display: flex; flex-direction: column; gap: 14px; }
body .c2e-filtri .etichetta-campo + .chips { margin-top: -4px; }
body .c2e-barra { margin-top: 28px; margin-bottom: 20px; color: var(--ink); }
body .c2e-griglia[aria-busy="true"] { opacity: .5; transition: opacity .2s; }
body .c2e-moneta .c2e-ho { position: relative; z-index: 1; justify-content: center; }
body .c2e-moneta .c2e-ho[aria-pressed="true"]::before { content: "✓\00a0"; }
body .prod--senza-link h3 { color: var(--ink); }
body .c2e-vuoto { padding: 24px; border-radius: 20px; background: var(--grigio); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; }
body .c2e-vuoto[hidden] { display: none; }
body .c2e-vuoto p { margin: 0; color: var(--ink); font-weight: 600; }
/* ricerca e «Mostra» sopra il listino */
body .c2e-strumenti { margin-top: 24px; display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; }
body .c2e-strumenti .c2e-cerca { flex: 1 1 320px; max-width: 520px; }
body .c2e-strumenti .c2e-cerca input[type="search"] { min-height: 48px; }
body .c2e-strumenti .c2e-mostra { flex: 0 1 auto; }
body .c2e-strumenti .c2e-mostra .chip { flex: 0 0 auto; white-space: nowrap; }
body .c2e-barra { margin-top: 20px; }
body .c2e-barra [data-c2e-disponibili] { font-weight: 400; color: var(--testo); }
body .c2e-moneta[hidden] { display: none; }
/* prezzo «da» e pannello «Scegli» con le versioni in vendita */
body .prezzo small { margin-right: 2px; font-family: var(--f-testo); font-size: 13px; font-weight: 600; letter-spacing: 0; color: var(--testo); }
body .c2e-moneta .prod-piede { position: static; z-index: auto; } /* niente livello proprio: il pannello «Scegli» deve stare sopra «Non ce l’ho» */
body .c2e-moneta .prod-piede > .prezzo, body .c2e-moneta .prod-piede > .btn, body .c2e-scegli > summary { position: relative; z-index: 2; }
body .c2e-scegli > summary { list-style: none; cursor: pointer; user-select: none; }
body .c2e-scegli > summary::-webkit-details-marker { display: none; }
body .c2e-scegli[open] > summary { background: var(--ink); }
body .c2e-varianti { position: absolute; left: 10px; right: 10px; bottom: 10px; z-index: 4; max-height: calc(100% - 20px); overflow-y: auto; padding: 14px 16px; border: 1px solid var(--bordo); border-radius: 18px; background: var(--bianco); box-shadow: 0 18px 40px rgba(34,34,34,.18); }
body .c2e-varianti-titolo { margin: 0 0 6px; font-size: 13px; font-weight: 700; color: var(--testo); }
body .c2e-varianti ul { list-style: none; margin: 0; padding: 0; }
body .c2e-varianti li { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; align-items: center; gap: 10px; padding: 8px 0; border-top: 1px solid var(--bordo); }
body .c2e-varianti li:first-child { border-top: 0; }
body .c2e-varianti .c2e-variante { font-size: 14px; font-weight: 600; line-height: 1.3; color: var(--ink); }
body .c2e-varianti .c2e-variante:hover { color: var(--blu); }
body .c2e-varianti b { color: var(--ink); font-variant-numeric: tabular-nums; white-space: nowrap; }
body .c2e-varianti .btn--mini { min-width: 40px; min-height: 36px; padding: 0 12px; font-size: 18px; }
body .c2e-varianti .added_to_cart { display: none; }
@media (max-width: 760px) {
  /* anno e paese su una riga che scorre di lato, invece di sei righe di pillole */
  body .c2e-filtri .chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-inline: calc(var(--margine, 16px) * -1); padding: 2px var(--margine, 16px) 6px; scroll-padding-inline: var(--margine, 16px); }
  body .c2e-filtri .chips::-webkit-scrollbar { display: none; }
  body .c2e-filtri .chip { flex: 0 0 auto; }
  body .c2e-strumenti .c2e-cerca { max-width: none; }
  body .c2e-strumenti .c2e-mostra { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
}
body .c2e-progresso { display: flex; flex-direction: column; gap: 14px; }
body .c2e-progresso-numero { font-family: var(--f-titoli); font-size: 40px; font-weight: 800; line-height: 1; letter-spacing: -0.03em; color: var(--ink); font-variant-numeric: tabular-nums; }
body .c2e-barra-fondo { display: block; height: 10px; border-radius: 999px; background: var(--grigio); overflow: hidden; }
body .c2e-barra-pieno { display: block; height: 100%; width: 0; border-radius: 999px; background: var(--blu); transition: width .5s; }
body .c2e-progresso--chiaro .c2e-progresso-numero { color: var(--bianco); }
body .c2e-progresso--chiaro .c2e-barra-fondo { background: #444444; }
body .c2e-progresso--chiaro .c2e-barra-pieno { background: var(--bianco); }
body .c2e-conto { display: flex; flex-direction: column; gap: 20px; }
body .c2e-conto-testa { display: flex; flex-direction: column; gap: 14px; align-items: flex-start; }
body .c2e-conto-testa .c2e-progresso { width: 100%; }

/* ---------- quotazioni ---------- */
body .oro-chips { display: flex; flex-wrap: wrap; gap: 10px; font-variant-numeric: tabular-nums; }
body .oro-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: 999px; background: var(--bianco); color: var(--testo); }
body .oro-chip strong { color: var(--ink); }
body .quotazioni { display: flex; flex-direction: column; gap: 24px; }
body .quotazioni-testa { display: flex; flex-wrap: wrap; gap: 16px; }
body .quotazioni-oro { flex: 1 1 280px; display: flex; flex-direction: column; gap: 6px; }
body .quotazioni-prezzo { margin: 0; font-family: var(--f-titoli); font-size: clamp(34px, 3.6vw, 48px); font-weight: 800; letter-spacing: -0.02em; line-height: 1.05; color: var(--ink); font-variant-numeric: tabular-nums; }
body .pannello--blu .quotazioni-prezzo { color: var(--bianco); }
body .quotazioni-tabella td, body .quotazioni-tabella th { vertical-align: middle; }
body .quotazioni-foto { width: 72px; }
body .quotazioni-foto img { width: 56px; height: 56px; object-fit: contain; border-radius: 50%; background: var(--grigio); display: block; }
body .quotazioni-foto .medaglia { width: 56px; }
body .quotazioni-foto .medaglia b { font-size: 16px; }
body .quotazioni-valore strong { font-family: var(--f-titoli); font-size: 20px; font-weight: 800; color: var(--ink); }
body .quotazioni-fonte a { color: var(--blu); font-weight: 700; }

/* ---------- trova il regalo ---------- */
body .trova-regalo { display: flex; flex-direction: column; gap: 10px; align-items: flex-start; }
body .trova-regalo .etichetta-campo { font-size: 17px; margin: 14px 0 0; }
body .trova-regalo .etichetta-campo:first-child { margin-top: 0; }
body .trova-regalo [data-regalo-vai] { margin-top: 20px; }

/* ---------- carosello delle recensioni ---------- */
body .carosello-finestra { overflow: hidden; }
body .carosello-traccia { display: flex; gap: 16px; transition: transform .7s cubic-bezier(.2,.7,.2,1); }
body .carosello-traccia > * { flex: 0 0 calc((100% - 32px) / 3); min-width: 0; }
@media (max-width: 1023px) { body .carosello-traccia > * { flex-basis: calc((100% - 16px) / 2); } }
@media (max-width: 640px) { body .carosello-traccia > * { flex-basis: 100%; } }
body .carosello-controlli { display: flex; align-items: center; gap: 8px; }
body .carosello-controlli button { width: 48px; height: 48px; border-radius: 50%; border: 1px solid var(--linea); background: var(--bianco); color: var(--ink); font: inherit; font-size: 20px; cursor: pointer; }
body .carosello-controlli [data-carosello-succ] { border: 0; background: var(--ink); color: var(--bianco); }
body .carosello-controlli [data-carosello-pausa] { width: auto; min-height: 48px; padding: 0 16px; border-radius: 999px; font-size: 14px; font-weight: 700; }
body .carosello-controlli [data-carosello-pagina] { margin-right: 6px; font-weight: 700; color: var(--ink); font-variant-numeric: tabular-nums; }
body .carosello-punti { margin-top: 14px; display: flex; justify-content: center; gap: 2px; }
body .dot { width: 44px; height: 44px; border: 0; background: transparent; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; padding: 0; }
body .dot span { display: block; height: 10px; width: 10px; border-radius: 999px; background: var(--linea); transition: width .3s, background-color .3s; }
body .dot[aria-pressed="true"] span { width: 28px; background: var(--blu); }
body .rec { margin: 0; height: 100%; background: var(--grigio); border-radius: 28px; padding: 26px; display: flex; flex-direction: column; gap: 14px; }
body .rec figcaption { display: flex; align-items: center; gap: 14px; }
body .rec .foto { flex: 0 0 56px; width: 56px; height: 56px; border-radius: 50%; object-fit: cover; border: 3px solid var(--bianco); display: block; }
body .rec .iniziali { flex: 0 0 56px; width: 56px; height: 56px; border-radius: 50%; border: 3px solid var(--bianco); background: var(--blu); color: var(--bianco); display: flex; align-items: center; justify-content: center; font-family: var(--f-titoli); font-size: 19px; font-weight: 800; }
body .rec strong { display: block; font-family: var(--f-titoli); font-size: 18px; color: var(--ink); }
body .rec small { font-size: 14px; }
body .rec .stelle { color: var(--blu); }
body .rec blockquote { margin: 0; padding: 0; border: 0; }
body .rec .titolo { margin: 0; font-family: var(--f-titoli); font-size: 20px; font-weight: 700; line-height: 1.2; color: var(--ink); }
body .rec .corpo { margin: 8px 0 0; font-size: 16px; }

/* ---------- animazioni ---------- */
body @keyframes galleggia { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-14px); } }
@keyframes ruota { to { transform: rotate(360deg); } }
@keyframes scorri { to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) { body *, body *::before, body *::after { animation: none !important; transition: none !important; } }

/* schermi grandi (fino al 2K e oltre): stessa composizione, body ingrandita in proporzione */
body @media (min-width: 1800px) { html { zoom: 1.1; } }
@media (min-width: 2000px) { html { zoom: 1.2; } }
@media (min-width: 2200px) { html { zoom: 1.3; } }
@media (min-width: 2400px) { html { zoom: 1.4; } }
@media (min-width: 2800px) { html { zoom: 1.6; } }
@media (min-width: 3400px) { html { zoom: 2; } }
