/* Stile della landing Vox Interceptor, sul sito e dentro l'editor.
   Niente media query: le griglie sono auto-fit e le colonne flex-basis,
   quindi il layout si adatta da solo. Meglio non aggiungerne. */

/* ---------- Font locali (estratti dal design originale) ---------- */
@font-face { font-family: 'League Spartan'; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url('assets/fonts/league-spartan-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF; }
@font-face { font-family: 'League Spartan'; font-style: normal; font-weight: 400 800; font-display: swap;
  src: url('assets/fonts/league-spartan-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+1E00-1E9F, U+2020, U+20A0-20AB, U+20AD-20C0; }
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('assets/fonts/lato-400-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF; }
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 400; font-display: swap;
  src: url('assets/fonts/lato-400-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+1E00-1E9F, U+2020, U+20A0-20AB, U+20AD-20C0; }
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('assets/fonts/lato-700-latin.woff2') format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+20AC, U+2122, U+2212, U+FEFF; }
@font-face { font-family: 'Lato'; font-style: normal; font-weight: 700; font-display: swap;
  src: url('assets/fonts/lato-700-latin-ext.woff2') format('woff2');
  unicode-range: U+0100-02BA, U+1E00-1E9F, U+2020, U+20A0-20AB, U+20AD-20C0; }
@font-face { font-family: 'Lato'; font-style: italic; font-weight: 400; font-display: swap;
  src: url('assets/fonts/lato-400italic-latin.woff2') format('woff2'); }

/* ---------- Base documento ---------- */
body.vox-landing *, body.vox-landing *::before, body.vox-landing *::after { box-sizing: border-box; }
body.vox-landing { margin: 0; background: #ffffff; color: #343334;
  font-family: 'Lato', system-ui, -apple-system, sans-serif; font-size: 16px; line-height: normal;
  -webkit-font-smoothing: antialiased; overflow-x: hidden; }
.vox-landing img, .vox-landing video { display: block; max-width: 100%; height: auto; }
.vox-landing a { color: inherit; text-decoration: none; }
.editor-styles-wrapper { font-family: 'Lato', system-ui, -apple-system, sans-serif; font-size: 16px; line-height: normal; }

@keyframes voxPulse {
  0%, 100% { opacity: .35; transform: translate(-50%, -50%) scale(1); }
  50%      { opacity: .6;  transform: translate(-50%, -50%) scale(1.06); }
}

/* ---------- Palette (classi preset per gli attributi colore dei blocchi) ---------- */
.has-vox-red-color { color: #ea5853 !important; }
.has-vox-red-background-color { background-color: #ea5853 !important; }
.has-vox-red-dark-color { color: #d84540 !important; }
.has-vox-red-dark-background-color { background-color: #d84540 !important; }
.has-vox-dark-color { color: #2b2a2b !important; }
.has-vox-dark-background-color { background-color: #2b2a2b !important; }
.has-vox-dark-2-color { color: #343334 !important; }
.has-vox-dark-2-background-color { background-color: #343334 !important; }
.has-vox-ink-color { color: #55545a !important; }
.has-vox-ink-background-color { background-color: #55545a !important; }
.has-vox-muted-color { color: #8a8886 !important; }
.has-vox-muted-background-color { background-color: #8a8886 !important; }
.has-vox-grey-color { color: #f2f1ef !important; }
.has-vox-grey-background-color { background-color: #f2f1ef !important; }
.has-vox-cream-color { color: #eceae8 !important; }
.has-vox-cream-background-color { background-color: #eceae8 !important; }
.has-vox-soft-color { color: #f8f7f6 !important; }
.has-vox-soft-background-color { background-color: #f8f7f6 !important; }
.has-vox-white-color { color: #ffffff !important; }
.has-vox-white-background-color { background-color: #ffffff !important; }

/* ---------- Dimensioni testo registrate ---------- */
.has-vox-small-font-size { font-size: 13px !important; }
.has-vox-normal-font-size { font-size: 15px !important; }
.has-vox-medium-font-size { font-size: 16px !important; }
.has-vox-large-font-size { font-size: 20px !important; }
.has-vox-xl-font-size { font-size: 26px !important; }

/* ---------- Contenitore e sezioni ---------- */
.vox-container { max-width: 1180px; margin: 0 auto; padding-left: 20px; padding-right: 20px; }
.vox-section { padding-top: clamp(56px, 8vw, 100px); padding-bottom: clamp(56px, 8vw, 100px); }
.vox-section > .vox-container > *:first-child { margin-top: 0; }

/* Etichette sopra i titoli: inline (hero, privacy, acquisto)... */
p.vox-eyebrow { display: inline-block; width: fit-content; margin: 0; padding: 7px 14px; border-radius: 3px;
  font-family: 'League Spartan', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .12em;
  text-transform: uppercase; line-height: normal; }
/* ...e badge di sezione, centrato. */
p.vox-eyebrow.has-text-align-center { display: table; margin-left: auto; margin-right: auto;
  border-radius: 4px; padding: 10px 22px; letter-spacing: .14em; }

/* Titoli */
.vox-h1 { font-family: 'League Spartan', sans-serif; font-size: clamp(33px, 4.6vw, 58px); font-weight: 700;
  line-height: 1.02; letter-spacing: -.015em; margin: 20px 0 0; text-wrap: pretty; }
.vox-h2 { font-family: 'League Spartan', sans-serif; font-size: clamp(28px, 3.5vw, 44px); font-weight: 700;
  line-height: 1.06; letter-spacing: -.015em; margin: 22px 0 0; text-wrap: pretty; }
.vox-h2.has-text-align-center { margin-left: auto; margin-right: auto; }
.vox-sub { font-family: 'League Spartan', sans-serif; font-weight: 700; font-size: clamp(17px, 1.9vw, 22px);
  letter-spacing: .01em; line-height: normal; margin: 18px 0 0; }

/* Bottoni */
.vox-landing .wp-block-button__link, .editor-styles-wrapper .vox-ctas .wp-block-button__link {
  display: inline-block; font-family: 'League Spartan', sans-serif; font-size: 13px; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; line-height: normal; border-radius: 3px;
  padding: 16px 26px; text-decoration: none; }
.vox-ctas { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 30px; }
.vox-ctas.vox-ctas-center { justify-content: center; margin-top: clamp(28px, 3vw, 40px); }
.vox-btn .wp-block-button__link:hover { background-color: #d84540 !important; }
.vox-btn-dark .wp-block-button__link:hover { background-color: #1f1e1f !important; }
.vox-btn-ghost .wp-block-button__link { background: transparent; border: 1px solid rgba(255, 255, 255, .45); }
.vox-btn-ghost .wp-block-button__link:hover { background: #fff; color: #343334 !important; border-color: #fff; }

/* Elenco con spunte */
.vox-checks { display: flex; flex-wrap: wrap; gap: 10px 26px; margin: 0; padding: 0; }
p.vox-check { display: flex; align-items: center; gap: 10px; margin: 0; font-size: 14px; line-height: normal; }
p.vox-check::before { content: "\2713"; flex: 0 0 auto; width: 20px; height: 20px; border-radius: 50%;
  background: #ea5853; color: #fff; display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; }

/* ---------- Barra alta ---------- */
.vox-topbar { padding: 0; }
.vox-topbar-inner { min-height: 36px; display: flex; align-items: center; justify-content: space-between;
  gap: 16px; flex-wrap: wrap; }
p.vox-topnav { margin: 0; padding: 9px 0; display: flex; align-items: center; gap: 18px;
  font-family: 'League Spartan', sans-serif; font-size: 11px; font-weight: 600; letter-spacing: .1em;
  line-height: normal; text-transform: uppercase; white-space: nowrap; overflow-x: auto; scrollbar-width: none; }
p.vox-topnav::-webkit-scrollbar { display: none; }
p.vox-topchips { margin: 0; padding: 6px 0; display: flex; align-items: center; gap: 8px; }
p.vox-topchips a { background: #343334; color: #fff; border-radius: 3px; padding: 6px 12px;
  font-family: 'League Spartan', sans-serif; font-size: 11px; font-weight: 700; letter-spacing: .08em;
  line-height: normal; text-transform: uppercase; white-space: nowrap; }

/* ---------- Hero ---------- */
.vox-hero { position: relative; overflow: hidden;
  background-image: linear-gradient(115deg, #232223 0%, #343334 58%, #2b2a2b 100%); }
.vox-hero > .vox-container { position: relative; z-index: 1;
  padding-top: clamp(40px, 6vw, 76px); padding-bottom: clamp(48px, 6vw, 84px); }
.vox-hero-grid { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(28px, 4vw, 56px); }
.vox-hero-copy { flex: 1 1 420px; min-width: 300px; }
.vox-hero-copy .vox-lead { font-size: clamp(15px, 1.15vw, 17px); line-height: 1.7; color: #d8d6d4;
  max-width: 560px; margin: 16px 0 0; text-wrap: pretty; }
.vox-hero-copy .vox-lead strong { color: #fff; }
.vox-hero-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin-top: 30px; }
.vox-hero-actions .vox-ctas { margin-top: 0; }
/* Bottoni e prezzo nella stessa riga flex, o sul mobile vanno a capo prima. */
body.vox-landing .vox-hero-actions .vox-ctas { display: contents; }
p.vox-hero-price { margin: 0; font-family: 'League Spartan', sans-serif; font-size: 15px; font-weight: 600;
  line-height: normal; color: #fff; }
.vox-hero-price strong { color: #ea5853; font-size: 22px; font-weight: 700; }
.vox-hero-rule { width: 100%; max-width: none; height: 0; margin: 28px 0 24px; border: 0;
  border-top: 1px solid rgba(255, 255, 255, .14); }
.vox-hero .vox-checks p.vox-check { color: #eceae8; }
.vox-hero-img { flex: 0 1 430px; min-width: 260px; position: relative; display: flex; align-items: center;
  justify-content: center; padding: clamp(8px, 2vw, 26px) 0; }
.vox-hero-img::before { content: ""; position: absolute; left: 50%; top: 50%; width: 82%; aspect-ratio: 1;
  border-radius: 50%; pointer-events: none; transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(234,88,83,.36) 0%, rgba(234,88,83,.12) 46%, rgba(234,88,83,0) 70%);
  animation: voxPulse 7s ease-in-out infinite; }
.vox-hero-img figure { position: relative; z-index: 1; margin: 0; width: 100%; display: flex; justify-content: center; }
.vox-hero-img figure img { width: 100%; max-width: 400px;
  filter: drop-shadow(0 44px 60px rgba(0,0,0,.6)) drop-shadow(0 8px 20px rgba(0,0,0,.35)); }

/* ---------- Card generiche ---------- */
.vox-cards { display: grid; margin-top: clamp(30px, 4vw, 48px); }
.vox-card { margin: 0; }
.vox-card > p { margin: 0; }
.vox-card-title { font-family: 'League Spartan', sans-serif; font-weight: 700; line-height: 1.15; margin: 0; }
p.vox-num { display: flex; align-items: center; justify-content: center; margin: 0; border-radius: 50%;
  background: #ea5853; color: #fff; font-family: 'League Spartan', sans-serif; font-weight: 700; line-height: normal; }

/* ---------- Perche' nasce ---------- */
.vox-why { padding-bottom: clamp(24px, 3vw, 40px); }
.vox-why .vox-h2 { max-width: 780px; }
.vox-why .vox-cards { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: clamp(18px, 2vw, 26px); }
.vox-why .vox-card { border-radius: 22px; padding: clamp(24px, 2.6vw, 34px); }
.vox-why .vox-card > p { font-size: 16px; line-height: 1.72; text-wrap: pretty; }

/* ---------- Punto chiave privacy ---------- */
.vox-privacy { padding-top: clamp(30px, 4vw, 56px); padding-bottom: clamp(56px, 8vw, 96px); }
.vox-privacy-card { border-radius: 26px; padding: clamp(28px, 4vw, 52px); }
.vox-privacy-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(24px, 3vw, 48px); align-items: start; }
.vox-privacy-copy .vox-h2 { font-size: clamp(26px, 3vw, 38px); line-height: 1.08; margin: 18px 0 0; }
.vox-privacy-copy p:not(.vox-eyebrow):not(.vox-privacy-note):not(.vox-privacy-claim) {
  font-size: 16px; line-height: 1.72; color: #e2e0de; margin: 18px 0 0; text-wrap: pretty; }
.vox-privacy-copy p strong { color: #fff; }
.vox-privacy-copy p.vox-privacy-note { font-size: 15px; line-height: 1.7; color: #bfbcba;
  font-style: italic; margin: 14px 0 0; text-wrap: pretty; }
.vox-privacy-copy p.vox-privacy-note strong { color: #ea5853; }
/* Senza text-wrap: pretty, che manderebbe a capo una parola prima. */
.vox-privacy-copy p.vox-privacy-claim { font-family: 'League Spartan', sans-serif; font-size: 17px;
  font-weight: 600; line-height: normal; color: #fff; margin: 18px 0 0; }
.vox-mini-cards { display: grid; gap: 14px; }
.vox-mini-card { margin: 0; background: rgba(255, 255, 255, .06); border: 1px solid rgba(255, 255, 255, .12);
  border-radius: 16px; padding: 20px 22px; color: #bfbcba; font-size: 14px; line-height: normal; }
.vox-mini-card strong { display: block; margin-bottom: 6px; color: #fff;
  font-family: 'League Spartan', sans-serif; font-size: 17px; font-weight: 700; }

/* ---------- Come funziona ---------- */
.vox-steps .vox-h2 { max-width: 760px; }
.vox-steps .vox-cards { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: clamp(16px, 2vw, 24px); }
.vox-steps .vox-card { border-radius: 22px; padding: clamp(24px, 2.4vw, 32px); display: flex;
  flex-direction: column; gap: 12px; }
.vox-steps .vox-card p.vox-num { width: 38px; height: 38px; font-size: 18px; }
.vox-steps .vox-card-title { font-size: 20px; }
.vox-steps .vox-card > p:not(.vox-num) { font-size: 15px; line-height: 1.68; }

/* ---------- Video ---------- */
.vox-video-sec { padding-top: clamp(48px, 6vw, 88px); padding-bottom: clamp(48px, 6vw, 88px); }
.vox-video-sec > .vox-container { max-width: 1120px; }
.vox-video-fig { margin: 0 auto; width: 100%; max-width: 1080px; display: flex; align-items: center;
  justify-content: center; mix-blend-mode: multiply;
  -webkit-mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%),
                      linear-gradient(to bottom, transparent 0, #000 5%, #000 95%, transparent 100%);
          mask-image: linear-gradient(to right, transparent 0, #000 6%, #000 94%, transparent 100%),
                      linear-gradient(to bottom, transparent 0, #000 5%, #000 95%, transparent 100%);
  -webkit-mask-composite: source-in; mask-composite: intersect; }
.vox-video-fig video { width: 100%; height: auto; background: #ffffff; }

/* ---------- Specifiche tecniche ---------- */
.vox-specs { padding-top: clamp(20px, 3vw, 40px); padding-bottom: clamp(56px, 8vw, 96px); }
.vox-specs .vox-h2 { max-width: 820px; }
.vox-chips { display: flex; justify-content: center; flex-wrap: wrap; gap: 10px; margin: 20px 0 0; }
p.vox-chip { display: inline-flex; align-items: center; gap: 9px; margin: 0; background: #f2f1ef;
  border-radius: 3px; padding: 9px 18px; font-family: 'League Spartan', sans-serif; font-size: 13px;
  font-weight: 700; letter-spacing: .08em; line-height: normal; text-transform: uppercase; color: #343334; }
p.vox-chip::before { content: ""; flex: 0 0 auto; width: 17px; height: 17px; background-size: contain;
  background-repeat: no-repeat; background-position: center; }
p.vox-chip-android::before { background-image: url("data:image/svg+xml,%3Csvg%20fill='%23343334'%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle%3EAndroid%3C/title%3E%3Cpath%20d='M18.4395%205.5586c-.675%201.1664-1.352%202.3318-2.0274%203.498-.0366-.0155-.0742-.0286-.1113-.043-1.8249-.6957-3.484-.8-4.42-.787-1.8551.0185-3.3544.4643-4.2597.8203-.084-.1494-1.7526-3.021-2.0215-3.4864a1.1451%201.1451%200%200%200-.1406-.1914c-.3312-.364-.9054-.4859-1.379-.203-.475.282-.7136.9361-.3886%201.5019%201.9466%203.3696-.0966-.2158%201.9473%203.3593.0172.031-.4946.2642-1.3926%201.0177C2.8987%2012.176.452%2014.772%200%2018.9902h24c-.119-1.1108-.3686-2.099-.7461-3.0683-.7438-1.9118-1.8435-3.2928-2.7402-4.1836a12.1048%2012.1048%200%200%200-2.1309-1.6875c.6594-1.122%201.312-2.2559%201.9649-3.3848.2077-.3615.1886-.7956-.0079-1.1191a1.1001%201.1001%200%200%200-.8515-.5332c-.5225-.0536-.9392.3128-1.0488.5449zm-.0391%208.461c.3944.5926.324%201.3306-.1563%201.6503-.4799.3197-1.188.0985-1.582-.4941-.3944-.5927-.324-1.3307.1563-1.6504.4727-.315%201.1812-.1086%201.582.4941zM7.207%2013.5273c.4803.3197.5506%201.0577.1563%201.6504-.394.5926-1.1038.8138-1.584.4941-.48-.3197-.5503-1.0577-.1563-1.6504.4008-.6021%201.1087-.8106%201.584-.4941z'/%3E%3C/svg%3E"); }
p.vox-chip-apple::before { width: 15px; height: 15px; background-image: url("data:image/svg+xml,%3Csvg%20fill='%23343334'%20role='img'%20viewBox='0%200%2024%2024'%20xmlns='http://www.w3.org/2000/svg'%3E%3Ctitle%3EApple%3C/title%3E%3Cpath%20d='M12.152%206.896c-.948%200-2.415-1.078-3.96-1.04-2.04.027-3.91%201.183-4.961%203.014-2.117%203.675-.546%209.103%201.519%2012.09%201.013%201.454%202.208%203.09%203.792%203.039%201.52-.065%202.09-.987%203.935-.987%201.831%200%202.35.987%203.96.948%201.637-.026%202.676-1.48%203.676-2.948%201.156-1.688%201.636-3.325%201.662-3.415-.039-.013-3.182-1.221-3.22-4.857-.026-3.04%202.48-4.494%202.597-4.559-1.429-2.09-3.623-2.324-4.39-2.376-2-.156-3.675%201.09-4.61%201.09zM15.53%203.83c.843-1.012%201.4-2.427%201.245-3.83-1.207.052-2.662.805-3.532%201.818-.78.896-1.454%202.338-1.273%203.714%201.338.104%202.715-.688%203.559-1.701'/%3E%3C/svg%3E"); }

.vox-specs-list { margin-top: clamp(28px, 3.5vw, 44px); border: 1px solid #e7e5e3; border-radius: 22px; overflow: hidden; }
.vox-spec-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  border-bottom: 1px solid #e7e5e3; }
.vox-spec-row:last-child { border-bottom: 0; }
p.vox-spec-label { margin: 0; background: #f2f1ef; padding: 22px clamp(20px, 2.2vw, 30px);
  font-family: 'League Spartan', sans-serif; font-size: 15px; font-weight: 700; letter-spacing: .04em;
  line-height: normal; text-transform: uppercase; color: #343334; }
.vox-spec-row > p:not(.vox-spec-label) { grid-column: span 2; margin: 0;
  padding: 22px clamp(20px, 2.2vw, 30px); font-size: 15px; line-height: 1.68; color: #55545a; text-wrap: pretty; }
.vox-spec-row strong, .vox-spec-row b { color: #343334; }

/* ---------- Per chi e' pensato ---------- */
.vox-who .vox-h2 { max-width: 760px; }
.vox-who .vox-cards { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(14px, 1.6vw, 20px); }
.vox-who .vox-card { border-radius: 18px; padding: 24px 26px; display: flex; gap: 16px; align-items: flex-start; }
.vox-who .vox-card p.vox-num { flex: 0 0 auto; width: 30px; height: 30px; font-size: 15px; }
.vox-who .vox-card > p:not(.vox-num) { font-size: 15px; line-height: 1.68; font-weight: 900;
  color: #343334; text-wrap: pretty; }
.vox-who .vox-card em { color: #55545a; font-weight: normal; }

/* ---------- Cinque motivi ---------- */
.vox-reasons .vox-cards { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: clamp(14px, 1.6vw, 20px); }
.vox-reason { border-radius: 20px; padding: 28px 24px; }
.vox-reason .vox-card-title { display: inline-block; background: #ea5853; color: #fff; border-radius: 3px;
  padding: 7px 12px; font-size: 13px; letter-spacing: .12em; line-height: normal; text-transform: uppercase; }
.vox-reason > p:not(.vox-card-title) { margin: 16px 0 0; font-size: 15px; line-height: 1.68; text-wrap: pretty; }

/* ---------- Sezione acquisto ---------- */
.vox-buy-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: clamp(28px, 3vw, 48px); align-items: start; }
.vox-buy .vox-eyebrow { padding: 8px 16px; letter-spacing: .14em; }
.vox-buy-copy .vox-h2 { font-size: clamp(28px, 3.4vw, 42px); margin: 20px 0 0; }
p.vox-buy-note { margin: 16px 0 0; font-size: 16px; line-height: 1.7; font-style: italic; color: #ffe9e8;
  text-wrap: pretty; }
.vox-checks-col { display: grid; gap: 12px; margin-top: 28px; }
.vox-checks-white p.vox-check { gap: 12px; font-family: 'League Spartan', sans-serif; font-size: 17px;
  font-weight: 600; }
.vox-checks-white p.vox-check::before { content: "\203A"; width: 24px; height: 24px; background: #343334;
  color: #fff; font-size: 12px; font-weight: 400; }

/* Box acquisto */
.vox-buybox { background: #fff; border-radius: 26px; padding: clamp(24px, 3vw, 38px); color: #343334; }
.vox-buybox-price { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.vox-buybox-price-label { font-family: 'League Spartan', sans-serif; font-size: 14px; font-weight: 600; color: #55545a; }
.vox-buybox-price-value { font-family: 'League Spartan', sans-serif; font-size: clamp(34px, 4vw, 46px);
  font-weight: 700; color: #ea5853; line-height: 1; }
/* Descrizione della variazione selezionata. */
.vox-buybox-desc { margin: 10px 0 0; font-size: 13px; line-height: 1.55; color: #55545a; }
.vox-buybox-desc[hidden] { display: none; }
.vox-buybox-desc p { margin: 0 0 6px; }
.vox-buybox-desc p:last-child { margin-bottom: 0; }
.vox-buybox-opts-label { font-family: 'League Spartan', sans-serif; font-size: 13px; font-weight: 700;
  letter-spacing: .1em; text-transform: uppercase; margin: 26px 0 12px; }
.vox-buybox-opts { display: grid; gap: 10px; }
.vox-opt { display: flex; align-items: center; gap: 14px; background: #f8f7f6; border: 2px solid #e7e5e3;
  border-radius: 14px; padding: 16px 18px; cursor: pointer; font-family: 'Lato', sans-serif; }
.vox-opt input { position: absolute; opacity: 0; pointer-events: none; }
.vox-opt-radio { width: 20px; height: 20px; border-radius: 50%; border: 2px solid #ea5853; display: inline-flex;
  align-items: center; justify-content: center; flex: 0 0 auto; box-sizing: border-box; }
.vox-opt-radio::after { content: ""; width: 10px; height: 10px; border-radius: 50%; background: transparent; }
.vox-opt:has(input:checked) { border-color: #ea5853; }
.vox-opt:has(input:checked) .vox-opt-radio::after { background: #ea5853; }
.vox-opt-name { font-family: 'League Spartan', sans-serif; font-size: 16px; font-weight: 600; line-height: normal; }
.vox-buybox-qty { display: flex; align-items: center; gap: 14px; margin-top: 22px; flex-wrap: wrap; }
.vox-buybox-qty-label { font-family: 'League Spartan', sans-serif; font-size: 13px; font-weight: 700;
  letter-spacing: .08em; text-transform: uppercase; }
.vox-qty { display: flex; align-items: center; border: 1px solid #ddd9d6; border-radius: 10px; overflow: hidden; }
.vox-qty button { width: 42px; height: 44px; border: 0; background: #f2f1ef; font-size: 19px; color: #343334; cursor: pointer; }
.vox-qty input { width: 52px; height: 44px; border: 0; text-align: center; font-family: 'League Spartan', sans-serif;
  font-size: 17px; font-weight: 700; -moz-appearance: textfield; appearance: textfield; }
.vox-qty input::-webkit-outer-spin-button, .vox-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.vox-buybox-add { display: block; width: 100%; text-align: center; margin-top: 20px; background: #ea5853; color: #fff;
  border: 0; border-radius: 4px; padding: 19px 26px; font-family: 'League Spartan', sans-serif; font-size: 15px;
  font-weight: 700; letter-spacing: .1em; line-height: normal; text-transform: uppercase; cursor: pointer; }
.vox-buybox-add:hover { background: #d84540; }
.vox-buybox-foot { margin-top: 22px; padding-top: 20px; border-top: 1px solid #ececec; }
.vox-buybox-pay-label { font-family: 'League Spartan', sans-serif; font-size: 11px; font-weight: 700;
  letter-spacing: .12em; text-transform: uppercase; color: #8a8886; }
.vox-buybox-pay { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 12px; }
.vox-buybox-pay span { border: 1px solid #e4e1de; border-radius: 6px; padding: 8px 12px;
  font-family: 'League Spartan', sans-serif; font-size: 12px; font-weight: 700; letter-spacing: .06em;
  line-height: normal; color: #55545a; }
.vox-buybox-meta { font-size: 12px; color: #8a8886; margin-top: 14px; }
.vox-buybox-meta a { color: #ea5853; }

/* ---------- Recensioni ---------- */
.vox-reviews { padding-top: clamp(56px, 8vw, 96px); padding-bottom: clamp(56px, 8vw, 96px); }
.vox-reviews .vox-cards { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: clamp(16px, 2vw, 22px); }
.vox-reviews .vox-card { border-radius: 20px; padding: 30px 28px; display: flex; flex-direction: column; gap: 16px; }
.vox-reviews .vox-card > p:not(.vox-stars):not(.vox-review-name) { font-size: 15px; line-height: 1.72; text-wrap: pretty; }
p.vox-stars { color: #ea5853; font-size: 15px; letter-spacing: .18em; line-height: normal; }
p.vox-review-name { margin-top: auto; font-family: 'League Spartan', sans-serif; font-size: 15px;
  font-weight: 700; color: #343334; line-height: normal; }

/* ---------- FAQ ---------- */
.vox-faq-sec > .vox-container { max-width: 900px; }
.vox-faq { display: grid; gap: 12px; margin-top: clamp(30px, 4vw, 44px); }
.vox-faq details { border-radius: 14px; overflow: hidden; margin: 0; }
.vox-faq summary { list-style: none; cursor: pointer; display: flex; align-items: center;
  justify-content: space-between; gap: 18px; padding: 20px 22px; font-family: 'League Spartan', sans-serif;
  font-size: 16px; font-weight: 700; letter-spacing: .04em; line-height: normal; text-transform: uppercase; }
.vox-faq summary::-webkit-details-marker { display: none; }
.vox-faq summary::after { content: "\203A"; flex: 0 0 auto; width: 32px; height: 32px; border-radius: 50%;
  background: #343334; color: #fff; display: inline-flex; align-items: center; justify-content: center;
  font-size: 15px; font-weight: 400; transition: transform .25s ease; }
.vox-faq details[open] > summary::after { transform: rotate(90deg); }
.vox-faq details > p { padding: 0 22px 22px; margin: 0; font-size: 15px; line-height: 1.72; text-wrap: pretty; }
/* Prima voce: riquadro sempre aperto, senza freccia. Il blocco dei click vale
   solo sul sito, nell'editor la voce deve restare selezionabile. */
.vox-faq details:first-child > summary { padding-bottom: 0; }
.vox-faq details:first-child > summary::after { display: none; }
.vox-faq details:first-child > p { padding-top: 14px; }
body.vox-landing .vox-faq details:first-child > summary { cursor: default; pointer-events: none; }

/* ---------- CTA finale ---------- */
.vox-final { padding-top: clamp(52px, 7vw, 92px); padding-bottom: clamp(52px, 7vw, 92px); }
.vox-final-grid { display: flex; flex-wrap: wrap; align-items: center; gap: clamp(24px, 4vw, 56px); }
.vox-final-copy { flex: 1 1 340px; }
.vox-final-copy .vox-h2 { font-size: clamp(30px, 4vw, 50px); line-height: 1.04; margin: 0; }
.vox-final-copy > p { margin: 16px 0 0; font-size: clamp(16px, 1.4vw, 19px); line-height: 1.6; color: #ddd9d6;
  text-wrap: pretty; }
p.vox-final-price { margin: 14px 0 0; font-family: 'League Spartan', sans-serif; font-style: italic;
  font-size: 18px; line-height: normal; color: #fff !important; }
.vox-final-price strong { color: #ea5853; font-size: 24px; font-style: normal; }
.vox-final .vox-ctas { margin-top: 28px; }
.vox-final .wp-block-button__link { padding: 17px 28px; }
.vox-final-img { flex: 0 1 300px; min-width: 220px; position: relative; display: flex; align-items: center;
  justify-content: center; }
.vox-final-img::before { content: ""; position: absolute; left: 50%; top: 50%; width: 80%; aspect-ratio: 1;
  border-radius: 50%; pointer-events: none; transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(234,88,83,.30) 0%, rgba(234,88,83,0) 68%); }
.vox-final-img figure { position: relative; z-index: 1; margin: 0; width: 100%; display: flex; justify-content: center; }
.vox-final-img figure img { width: 100%; max-width: 280px; filter: drop-shadow(0 32px 48px rgba(0,0,0,.55)); }

/* ---------- Barra sticky ---------- */
.vox-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; background: #343334;
  border-top: 2px solid #ea5853; transform: translateY(110%); transition: transform .3s ease; }
.vox-sticky.vox-sticky-on { transform: translateY(0); }
.vox-sticky-inner { max-width: 1180px; margin: 0 auto; padding: 12px 20px; display: flex; align-items: center;
  justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.vox-sticky-copy { color: #fff; display: flex; align-items: baseline; gap: 8px; }
.vox-sticky-label { font-family: 'League Spartan', sans-serif; font-size: 13px; font-weight: 600;
  letter-spacing: .06em; line-height: normal; text-transform: uppercase; }
.vox-sticky-price { font-family: 'League Spartan', sans-serif; font-size: 20px; font-weight: 700;
  line-height: normal; color: #ea5853; }
.vox-sticky a { background: #ea5853; color: #fff; border-radius: 3px; padding: 13px 22px;
  font-family: 'League Spartan', sans-serif; font-size: 12.5px; font-weight: 700; letter-spacing: .1em;
  line-height: normal; text-transform: uppercase; white-space: nowrap; }
.vox-sticky a:hover { background: #d84540; }

@media (prefers-reduced-motion: reduce) {
  .vox-hero-img::before { animation: none; }
  .vox-sticky { transition: none; }
}
