/* Napoli Affissioni — design system pubblico.
   Palette del marchio: navy #1E2B4E (testi), blu #3466AE (accent), verde #64B989 (esiti positivi), grigio-azzurro #DCE2EB (superfici).
   Struttura dai mockup index / catalogo / wizard: Metropolis,
   card fotografiche arrotondate, chip a pillola, badge animati, bottom-nav flottante.
   L'accent si cambia da un solo punto: --blue (e --blue-dark per hover/testi). */

@font-face { font-family: 'Metropolis'; font-weight: 400; font-style: normal; font-display: swap; src: url('../fonts/Metropolis-Regular.woff2') format('woff2'), url('../fonts/Metropolis-Regular.woff') format('woff'); }
@font-face { font-family: 'Metropolis'; font-weight: 500; font-style: normal; font-display: swap; src: url('../fonts/Metropolis-Medium.woff2') format('woff2'), url('../fonts/Metropolis-Medium.woff') format('woff'); }
@font-face { font-family: 'Metropolis'; font-weight: 600; font-style: normal; font-display: swap; src: url('../fonts/Metropolis-SemiBold.woff2') format('woff2'), url('../fonts/Metropolis-SemiBold.woff') format('woff'); }
@font-face { font-family: 'Metropolis'; font-weight: 700; font-style: normal; font-display: swap; src: url('../fonts/Metropolis-Bold.woff2') format('woff2'), url('../fonts/Metropolis-Bold.woff') format('woff'); }

:root {
  --ink: #1E2B4E; --ink-70: rgba(30,43,78,.72); --ink-45: rgba(30,43,78,.45);
  --paper: #FFFFFF;
  --gray-100: #EEF1F6; --gray-200: #DCE2EB; --gray-500: #6D7893; --gray-700: #3F4B6B;
  --blue: #3466AE; --blue-dark: #1E2B4E; --blue-soft: #DCE2EB; --blue-tint: #E9EEF6;
  --status-hot: #FF4331; --status-warn: #FFA716; --status-new: #3466AE; --status-ok: #64B989; --status-off: #6D7893;
  --radius-xl: 0; --radius-lg: 0; --radius-md: 0; --radius-pill: 2px;
  --gutter: clamp(20px, 6vw, 96px);
  --maxw: 1280px;
  --shadow-soft: 0 2px 8px rgba(30,43,78,.05), 0 16px 32px -16px rgba(30,43,78,.16);
  --shadow-lift: 0 4px 12px rgba(30,43,78,.07), 0 24px 48px -18px rgba(30,43,78,.24);
  --ease-out: cubic-bezier(.22, 1, .36, 1);
  --ease-spring: cubic-bezier(.34, 1.56, .64, 1);
  --f: 'Metropolis', system-ui, -apple-system, 'Segoe UI', sans-serif;
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { -webkit-text-size-adjust: 100%; overflow-x: hidden; scroll-padding-top: 20px; }
body {
  background: var(--paper); color: var(--ink);
  font: 400 16px/1.55 var(--f); -webkit-font-smoothing: antialiased;
  padding-bottom: calc(110px + env(safe-area-inset-bottom));
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button, input, select, textarea { font-family: inherit; color: inherit; }
h1, h2, h3 { font-weight: 700; letter-spacing: -0.02em; line-height: 1.08; }
h1 { font-size: clamp(30px, 4.6vw, 48px); }
h2 { font-size: clamp(22px, 2.8vw, 30px); }
h3 { font-size: 17px; }
:focus-visible { outline: 2.5px solid var(--blue); outline-offset: 2px; }
.icon { width: 1em; height: 1em; display: inline-block; vertical-align: -0.15em; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.container { max-width: var(--maxw); margin: 0 auto; padding: 0 var(--gutter); }
.sr-only { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.skip { position: absolute; left: -9999px; top: 8px; background: var(--ink); color: #fff; padding: 8px 14px; border-radius: var(--radius-pill); z-index: 100; }
.skip:focus { left: 8px; }
.muted { color: var(--gray-500); }
[hidden] { display: none !important; }
.emboss { background: var(--gray-100); }
.emboss-blue { background: var(--blue); }

/* Comparsa al caricamento (sostituisce GSAP dei mockup): solo CSS, il contenuto resta visibile anche senza JS */
[data-reveal] { animation: revealIn .7s var(--ease-out) both; animation-delay: var(--d, 0s); }
@keyframes revealIn { from { opacity: 0; transform: translateY(20px) scale(.98); } }

/* ---------- Top bar ---------- */
.top-bar { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; padding: calc(22px + env(safe-area-inset-top)) 0 26px; }
.top-bar[hidden] { display: none; }
.top-left { display: flex; align-items: center; gap: 8px; justify-self: start; }
.top-bar > .top-bar-actions { justify-self: end; }
.brand-center { justify-self: center; }
.cart-btn { position: relative; }
.cart-btn .bn-badge, .account-btn .bn-badge { top: -2px; right: -2px; }
.brand { display: inline-flex; align-items: center; gap: 9px; line-height: 1; text-decoration: none; }
.brand-mark { display: block; width: auto; height: 30px; flex: none; }
.brand-name { font-size: 15.5px; font-weight: 700; letter-spacing: -.02em; color: var(--ink); white-space: nowrap; }
.brand-name b { font-weight: 700; color: var(--blue); }
.top-title { font-size: 15px; font-weight: 700; letter-spacing: -0.01em; }
.icon-btn { position: relative; width: 54px; height: 54px; border-radius: 50%; border: none; display: flex; align-items: center; justify-content: center; color: var(--blue-dark); cursor: pointer; transition: transform .2s ease; }
.icon-btn:hover { transform: translateY(-1px); }
.icon-btn:active { transform: scale(.94); }
.icon-btn .icon { width: 20px; height: 20px; }
.icon-btn.emboss-blue { color: #fff; }
.icon-btn .icon.icon-back { transform: scaleX(-1); }
.top-bar-actions { display: flex; align-items: center; }
.icon-btn.wizard-fab { z-index: 2; background: var(--blue); color: #fff; box-shadow: 0 6px 16px -4px rgba(52,102,174,.5); }
.icon-btn.wizard-fab .icon { width: 24px; height: 24px; overflow: visible; }
.icon-btn.wizard-fab:hover { transform: scale(1.06); }
.top-bar-actions .icon-btn.emboss-blue { z-index: 1; margin-left: -16px; filter: brightness(.9); }

.gsearch { position: fixed; inset: 0; z-index: 90; background: rgba(10, 13, 26, .45); opacity: 0; pointer-events: none; transition: opacity .2s ease; }
.gsearch.is-active { opacity: 1; pointer-events: auto; }
.gsearch-inner { background: var(--paper); border-radius: 0 0 var(--radius-xl) var(--radius-xl); padding: calc(18px + env(safe-area-inset-top)) var(--gutter) 26px; max-height: 82vh; overflow-y: auto; box-shadow: var(--shadow-lift); transform: translateY(-12px); transition: transform .25s var(--ease-out); }
.gsearch.is-active .gsearch-inner { transform: translateY(0); }
.gsearch-bar { display: flex; align-items: center; gap: 12px; background: var(--gray-100); border-radius: var(--radius-pill); padding: 15px 20px; }
.gsearch-bar .icon { width: 18px; height: 18px; color: var(--gray-500); flex-shrink: 0; }
.gsearch-input { flex: 1; border: none; background: none; outline: none; font-size: 16px; min-width: 0; color: var(--ink); }
.gsearch-input::placeholder { color: var(--gray-500); }
.gsearch-close { background: none; border: none; padding: 4px; color: var(--gray-500); cursor: pointer; display: flex; flex-shrink: 0; }
.gsearch-results { margin-top: 16px; display: flex; flex-direction: column; gap: 2px; }
.gsearch-group-label { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-500); margin: 14px 6px 6px; }
.gsearch-group-label:first-child { margin-top: 4px; }
.gsearch-row { display: flex; align-items: center; gap: 12px; padding: 10px 8px; border-radius: 14px; transition: background .15s ease; }
.gsearch-row:hover { background: var(--gray-100); }
.gsearch-row-ico { width: 36px; height: 36px; border-radius: 50%; background: var(--blue-tint); color: var(--blue); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.gsearch-row-ico .icon { width: 15px; height: 15px; }
.gsearch-row-txt { min-width: 0; flex: 1; }
.gsearch-row-txt strong { display: block; font-size: 14.5px; font-weight: 700; letter-spacing: -0.01em; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.gsearch-row-txt span { display: block; font-size: 12px; font-weight: 600; color: var(--gray-500); margin-top: 2px; }
.gsearch-hint, .gsearch-empty { font-size: 13.5px; font-weight: 600; color: var(--gray-500); text-align: center; padding: 34px 10px; }

/* ---------- Bottom nav (Home pill + cerchi sovrapposti) ---------- */
.bottom-nav { position: fixed; left: 50%; bottom: calc(16px + env(safe-area-inset-bottom)); z-index: 60; transform: translateX(-50%); display: flex; align-items: center; }
.bn-pill, .bn-circle { position: relative; display: flex; align-items: center; justify-content: center; height: 56px; box-shadow: 0 10px 28px -16px rgba(30,43,78,.26); transition: transform .2s ease; }
.bn-pill { gap: 9px; padding: 0 22px 0 18px; border-radius: var(--radius-pill); background: var(--blue); color: #fff; font-size: 14px; font-weight: 700; z-index: 5; }
.bn-circle { width: 56px; border-radius: 50%; background: var(--gray-100); color: var(--blue-dark); margin-left: -16px; border: 2px solid #fff; }
.bn-pill + .bn-circle, .bottom-nav > :first-child + .bn-circle { margin-left: -16px; }
.bottom-nav > :first-child { margin-left: 0; }
.bn-pill .icon, .bn-circle .icon { width: 19px; height: 19px; }
.bn-circle:hover { transform: translateY(-1px) scale(1.05); }
.bn-pill:hover { transform: translateY(-1px); }
.bn-circle.soft { background: var(--blue-soft); }
.bn-badge { position: absolute; top: -4px; right: -4px; min-width: 17px; height: 17px; padding: 0 4px; border-radius: 999px; background: var(--status-hot); color: #fff; font-size: 9.5px; font-weight: 700; display: flex; align-items: center; justify-content: center; line-height: 1; box-shadow: 0 0 0 2px #fff; }
.bottom-nav > :nth-child(1) { z-index: 4; } .bottom-nav > :nth-child(2) { z-index: 3; } .bottom-nav > :nth-child(3) { z-index: 2; } .bottom-nav > :nth-child(4) { z-index: 1; }
.bottom-nav .bn-pill { z-index: 5; }

/* Pillola del riepilogo sopra la bottom-nav: compare solo quando serve (vedi carrello.js) */
.sel-pill { position: fixed; left: 50%; bottom: calc(84px + env(safe-area-inset-bottom)); z-index: 59; transform: translate(-50%, 14px) scale(.96); opacity: 0; pointer-events: none;
  display: flex; align-items: center; gap: 4px; background: var(--ink); color: #fff; border-radius: var(--radius-pill); padding: 6px 6px 6px 6px; box-shadow: var(--shadow-lift);
  transition: opacity .3s ease, transform .45s var(--ease-out); white-space: nowrap; max-width: calc(100vw - 24px); }
.sel-pill.is-on { opacity: 1; transform: translate(-50%, 0) scale(1); pointer-events: auto; }
.sel-pill-main { display: flex; align-items: center; gap: 10px; padding: 4px 4px 4px 14px; min-width: 0; }
.sel-pill-main strong { background: var(--blue); color: #fff; border-radius: var(--radius-pill); min-width: 26px; height: 26px; padding: 0 8px; display: inline-flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 700; }
.sel-pill-main > span:not(.sel-pill-cta) { font-size: 13px; font-weight: 700; overflow: hidden; text-overflow: ellipsis; }
.sel-pill-cta { display: inline-flex; align-items: center; gap: 6px; background: #fff; color: var(--ink); font-size: 12.5px; font-weight: 700; padding: 9px 14px; border-radius: var(--radius-pill); }
.sel-pill-cta .icon { width: 12px; height: 12px; }
.sel-pill-x { width: 34px; height: 34px; border-radius: 50%; border: none; background: rgba(255, 255, 255, .12); color: rgba(255, 255, 255, .8); display: flex; align-items: center; justify-content: center; cursor: pointer; flex-shrink: 0; }
.sel-pill-x .icon { width: 13px; height: 13px; }
.no-sel-pill .sel-pill, .has-rq-bar .sel-pill { display: none; }
@media (max-width: 420px) { .sel-pill-main > span:not(.sel-pill-cta) { display: none; } }
/* Il pulsante Richiesta "salta" quando si aggiunge un impianto */
.bn-circle.bump, .bn-pill.bump { animation: bnBump .6s var(--ease-spring); }
@keyframes bnBump { 30% { transform: translateY(-6px) scale(1.12); } }

/* ---------- Bottoni ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; border: none; cursor: pointer; font-size: 15px; font-weight: 700; padding: 16px 26px; border-radius: var(--radius-pill); transition: transform .25s var(--ease-out), box-shadow .25s ease, background .2s ease; line-height: 1.2; }
.btn .icon { width: 15px; height: 15px; transition: transform .3s var(--ease-out); }
.btn:hover .icon { transform: translateX(3px); }
.btn-primary { background: var(--blue); color: #fff; box-shadow: var(--shadow-soft); }
.btn-primary:hover { background: var(--blue-dark); transform: translateY(-2px); box-shadow: var(--shadow-lift); }
.btn-soft { background: var(--gray-100); color: var(--ink); }
.btn-soft:hover { background: var(--gray-200); }
.btn-tint { background: var(--blue-tint); color: var(--blue-dark); }
.btn-tint:hover { background: var(--blue-soft); }
.btn-sm { font-size: 12.5px; padding: 10px 16px; }
.btn-block { width: 100%; }
.btn[disabled] { opacity: .45; cursor: not-allowed; transform: none; }

/* Pulsante tondo con freccia (hero, CTA) */
.pill-arrow-btn { flex-shrink: 0; width: 64px; height: 64px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: #fff; transition: transform .3s var(--ease-spring); }
.pill-arrow-btn .icon { width: 24px; height: 24px; }
a:hover > .pill-arrow-btn, .pill-arrow-btn:hover { transform: scale(1.08) rotate(8deg); }

/* ---------- Badge di domanda (identici ai mockup) ---------- */
.demand-badge { display: inline-flex; align-items: center; justify-content: center; gap: 6px; padding: 9px 13px; border-radius: var(--radius-pill); font-size: 11px; font-weight: 700; line-height: 1; white-space: nowrap; flex-shrink: 0; color: #fff; transition: padding .65s var(--ease-out), gap .65s var(--ease-out); }
.demand-badge .icon { width: 12px; height: 12px; stroke-width: 2.6; transition: width .6s var(--ease-out), height .6s var(--ease-out); }
.demand-badge .label { display: inline-block; max-width: 150px; overflow: hidden; white-space: nowrap; transition: max-width .65s var(--ease-out), opacity .5s ease .1s; }
.demand-badge.is-collapsed { padding: 11px; gap: 0; }
.demand-badge.is-collapsed .icon { width: 15px; height: 15px; }
.demand-badge.is-collapsed .label { max-width: 0; opacity: 0; transition: max-width .65s var(--ease-out), opacity .2s ease; }
.demand-badge.is-collapsed:hover { padding: 9px 14px 9px 12px; gap: 6px; }
.demand-badge.is-collapsed:hover .label { max-width: 150px; opacity: 1; }
.demand-badge.high { background: var(--status-hot); }
.demand-badge.medium { background: var(--status-warn); }
.demand-badge.new { background: var(--status-new); }
.demand-badge.steady { background: var(--blue); }
.demand-badge.off { background: rgba(30,43,78,.62); backdrop-filter: blur(6px); }
.icon-flame { transform-origin: 50% 95%; animation: flameFlicker 1.8s ease-in-out infinite; }
.clock-hand { transform-origin: 12px 12px; animation: clockTick 3s steps(12) infinite; }
.spark-main { transform-box: fill-box; transform-origin: 50% 50%; animation: sparkTwinkle 3.96s ease-in-out infinite; }
.spark-mini { transform-box: fill-box; transform-origin: 50% 50%; opacity: .5; }
.spark-mini-1 { animation: miniTwinkle 2.86s ease-in-out infinite 0.33s; }
.spark-mini-2 { animation: miniTwinkle 3.3s ease-in-out infinite 1.21s; }
@keyframes clockTick { to { transform: rotate(360deg); } }
@keyframes sparkTwinkle { 0%, 100% { transform: scale(1) rotate(0); } 50% { transform: scale(1.15) rotate(8deg); } }
@keyframes miniTwinkle { 0%, 100% { transform: scale(.6); opacity: .35; } 50% { transform: scale(1.2); opacity: 1; } }
@keyframes flameFlicker {
  0% { transform: scale(1, 1); } 18% { transform: scale(.93, 1.07) rotate(-3deg); } 36% { transform: scale(1.05, .95) rotate(3deg); }
  54% { transform: scale(.97, 1.04) rotate(-2deg); } 72% { transform: scale(1.04, .97) rotate(2deg); } 100% { transform: scale(1, 1); }
}

/* Pillola vetro "live" */
.prov-live { display: inline-flex; align-items: center; gap: 6px; background: rgba(255, 255, 255, .16); backdrop-filter: blur(6px); border: 1px solid rgba(255, 255, 255, .28); color: #fff; font-size: 11px; font-weight: 700; padding: 9px 12px; border-radius: var(--radius-pill); white-space: nowrap; }
.prov-live-dot { position: relative; width: 6px; height: 6px; border-radius: 50%; background: #64B989; flex-shrink: 0; }
.prov-live-dot::after { content: ''; position: absolute; inset: -4px; border-radius: 50%; border: 1.5px solid #64B989; animation: liveDotPulse 1.8s ease-out infinite; }
@keyframes liveDotPulse { 0% { opacity: .7; transform: scale(.4); } 100% { opacity: 0; transform: scale(1.6); } }
.glass-pill { background: rgba(255, 255, 255, .16); backdrop-filter: blur(6px); border: 1px solid rgba(255, 255, 255, .28); color: #fff; font-size: 10px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; padding: 6px 11px; border-radius: var(--radius-pill); }

/* ---------- Segnaposto foto (finché non arrivano le foto reali) ---------- */
.ph { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; color: rgba(255, 255, 255, .5); overflow: hidden;
  background: radial-gradient(ellipse 70% 60% at 80% 10%, rgba(52,102,174,.55), transparent 60%), radial-gradient(ellipse 60% 50% at 10% 90%, rgba(52,102,174,.35), transparent 60%), linear-gradient(160deg, #1E2B4E 0%, #141C35 70%); }
.ph::before { content: ''; position: absolute; inset: 0; opacity: .35; background-image: repeating-linear-gradient(0deg, rgba(255, 255, 255, .07) 0 1px, transparent 1px 44px), repeating-linear-gradient(90deg, rgba(255, 255, 255, .07) 0 1px, transparent 1px 44px); }
.ph-fmt { position: relative; font-size: clamp(26px, 4vw, 44px); font-weight: 700; letter-spacing: -0.03em; color: rgba(255, 255, 255, .22); }
.ph-sub { position: relative; font-size: 10.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.ph.alt { background: radial-gradient(ellipse 60% 60% at 20% 15%, rgba(255, 167, 22, .35), transparent 60%), linear-gradient(160deg, #3466AE 0%, #1E2B4E 55%, #141C35 100%); }

/* ---------- Card impianto (cg-card) ---------- */
.cg-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 22px; }
@media (max-width: 1080px) { .cg-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .cg-grid { grid-template-columns: 1fr; } }
.cg-card { position: relative; display: block; border-radius: var(--radius-xl); overflow: hidden; background: var(--gray-100); aspect-ratio: 4 / 3.6; box-shadow: var(--shadow-soft); transition: box-shadow .25s ease, transform .25s ease; isolation: isolate; }
.cg-card > img, .cg-card > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .5s cubic-bezier(.2, .7, .2, 1); }
.cg-card:hover > img, .cg-card:hover > .ph { transform: scale(1.06); }
.cg-card:hover, .cg-card.is-hl { transform: translateY(-4px); box-shadow: var(--shadow-lift); }
.cg-card.is-hl { box-shadow: 0 0 0 3px var(--blue), var(--shadow-lift); }
.cg-link { position: absolute; inset: 0; z-index: 1; }
.cg-tint { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0, 0, 0, .88) 0%, rgba(0, 0, 0, .46) 40%, rgba(0, 0, 0, .06) 66%, transparent 80%); pointer-events: none; }
.cg-fmt { position: absolute; top: 14px; left: 14px; z-index: 2; pointer-events: none; }
.cg-card .demand-badge { position: absolute; top: 12px; right: 12px; z-index: 2; }
.cg-body { position: absolute; left: 20px; right: 20px; bottom: 18px; z-index: 2; pointer-events: none; }
.cg-name { color: #fff; font-size: 17px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.22; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cg-zone { color: rgba(255, 255, 255, .72); font-size: 12px; font-weight: 600; margin-top: 3px; }
.cg-tags { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; }
.cg-tag { display: inline-flex; align-items: center; gap: 5px; font-size: 11px; font-weight: 700; color: rgba(255, 255, 255, .88); }
.cg-tag i { width: 5px; height: 5px; border-radius: 50%; background: #64B989; flex-shrink: 0; }
.cg-tag .ico-traffico { color: #fff; }
.cg-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: 16px; padding-top: 14px; border-top: 1px solid rgba(255, 255, 255, .16); pointer-events: auto; }
.cg-cta { display: inline-flex; align-items: center; gap: 6px; background: #fff; color: var(--ink); font-size: 12px; font-weight: 700; padding: 9px 15px; border-radius: var(--radius-pill); transition: transform .2s ease; position: relative; z-index: 3; }
.cg-cta .icon { width: 11px; height: 11px; transition: transform .25s ease; }
.cg-card:hover .cg-cta .icon { transform: translateX(3px); }
.cg-add { position: relative; z-index: 3; display: inline-flex; align-items: center; gap: 7px; border: none; cursor: pointer; background: rgba(255, 255, 255, .16); backdrop-filter: blur(6px); border: 1px solid rgba(255, 255, 255, .3); color: #fff; font-size: 11.5px; font-weight: 700; padding: 8px 13px 8px 10px; border-radius: var(--radius-pill); transition: background .2s ease, border-color .2s ease; }
.cg-add .icon { width: 14px; height: 14px; }
.cg-add:hover { background: rgba(255, 255, 255, .26); }
.cg-add.is-on { background: var(--blue); border-color: var(--blue); }
.cg-add .when-on { display: none; } .cg-add.is-on .when-on { display: inline; } .cg-add.is-on .when-off { display: none; }
.ico-traffico { color: var(--blue); flex-shrink: 0; }

.cg-empty { grid-column: 1 / -1; font-size: 14px; color: var(--gray-500); padding: 60px 4px; line-height: 1.6; text-align: center; }
.cg-empty strong { display: block; color: var(--ink); font-size: 19px; margin-bottom: 6px; }

/* ---------- Home ---------- */
.home-hero { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr); gap: 18px; margin-bottom: 18px; }
@media (max-width: 900px) { .home-hero { grid-template-columns: 1fr; } }
.wizard-hero { position: relative; display: block; overflow: hidden; border-radius: var(--radius-xl); min-height: 340px; background: var(--blue); box-shadow: var(--shadow-soft); transition: transform .3s var(--ease-out); }
.wizard-hero:hover { transform: translateY(-2px); }
.wizard-hero-content { position: relative; z-index: 2; height: 100%; min-height: 340px; display: flex; flex-direction: column; justify-content: center; padding: 36px 280px 36px 36px; }
.wizard-hero-kicker { color: rgba(255, 255, 255, .7); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 12px; }
.wizard-hero-title { color: #fff; }
.wizard-hero-sub { font-size: 14.5px; font-weight: 500; color: rgba(255, 255, 255, .82); line-height: 1.45; margin-top: 10px; max-width: 340px; }
.wizard-hero .pill-arrow-btn { position: absolute; right: 24px; bottom: 24px; z-index: 3; background: #fff; color: var(--blue); }
.wizard-hero-fan { position: absolute; z-index: 1; right: 0; bottom: 0; width: 320px; height: 100%; pointer-events: none; }
.fan-card { position: absolute; width: 200px; height: 270px; border-radius: 22px; overflow: hidden; border: 4px solid rgba(255, 255, 255, .9); box-shadow: 0 24px 48px -10px rgba(20,28,53,.5); }
.fan-card img { width: 100%; height: 100%; object-fit: cover; filter: contrast(1.05); }
.fan-a { bottom: -64px; right: 92px; transform: rotate(-12deg); }
.fan-b { bottom: -54px; right: -14px; transform: rotate(9deg); z-index: 1; }
.morph-wrap { position: relative; display: inline-block; min-width: 100%; height: 1.15em; vertical-align: bottom; }
.morph-wrap span { position: absolute; left: 0; top: 0; white-space: nowrap; font-size: clamp(28px, 4.4vw, 42px); color: #fff; letter-spacing: -0.02em; font-weight: 700; }
@media (max-width: 640px) {
  .wizard-hero-content { justify-content: flex-end; padding: 24px 24px 200px; min-height: 420px; }
  .wizard-hero-sub { font-size: 13.5px; }
  .wizard-hero-fan { width: 230px; }
  .fan-card { width: 150px; height: 200px; }
  .fan-a { bottom: -40px; right: 66px; } .fan-b { bottom: -34px; right: -10px; }
  .wizard-hero .pill-arrow-btn { width: 54px; height: 54px; right: 20px; bottom: 20px; }
}

.map-hero { position: relative; display: block; overflow: hidden; border-radius: var(--radius-xl); min-height: 340px; background: var(--blue-tint); box-shadow: var(--shadow-soft); transition: transform .3s var(--ease-out); }
.map-hero:hover { transform: translateY(-2px); }
.map-hero .map-live { position: absolute; inset: 0; pointer-events: none; }
.map-hero-fade { position: absolute; inset: 0; z-index: 2; background: linear-gradient(0deg, rgba(237, 241, 255, .98) 8%, rgba(237, 241, 255, .6) 38%, transparent 64%); pointer-events: none; }
.map-hero-body { position: absolute; left: 26px; right: 100px; bottom: 26px; z-index: 3; }
.map-hero-body h2 { font-size: clamp(22px, 2.4vw, 28px); color: var(--ink); }
.map-hero-body p { font-size: 13.5px; color: var(--gray-700); font-weight: 500; margin-top: 6px; }
.map-hero .pill-arrow-btn { position: absolute; right: 22px; bottom: 22px; z-index: 3; background: var(--blue); width: 58px; height: 58px; }

.perks-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 44px; }
.perk-tile { position: relative; aspect-ratio: .92; border-radius: var(--radius-lg); overflow: hidden; background: var(--blue-tint); box-shadow: var(--shadow-soft); transition: transform .25s var(--ease-out); }
.perk-tile:hover { transform: translateY(-3px); }
.perk-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.perk-tint { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(237, 241, 255, .97) 14%, rgba(237, 241, 255, .5) 46%, rgba(237, 241, 255, .12) 68%, transparent 82%); }
.perk-ico { position: absolute; top: 16px; left: 16px; z-index: 1; width: 38px; height: 38px; border-radius: 50%; background: var(--blue); color: #fff; display: flex; align-items: center; justify-content: center; box-shadow: var(--shadow-soft); }
.perk-ico .icon { width: 16px; height: 16px; }
.perk-txt { position: absolute; left: 16px; right: 16px; bottom: 16px; z-index: 1; display: flex; flex-direction: column; gap: 4px; }
.perk-txt strong { font-size: 14.5px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.2; color: var(--ink); }
.perk-txt span { font-size: 12px; font-weight: 600; color: var(--gray-700); line-height: 1.35; }
@media (max-width: 560px) { .perks-row { grid-template-columns: 1fr 1fr; gap: 10px; } .perk-tile { aspect-ratio: .85; } .perk-tile:nth-child(3) { grid-column: 1 / -1; aspect-ratio: 2; } }

.sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.sec-kicker { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); margin-bottom: 8px; display: block; }
.sec-link { display: inline-flex; align-items: center; gap: 6px; font-size: 13.5px; font-weight: 700; color: var(--blue-dark); white-space: nowrap; }
.sec-link .icon { width: 13px; height: 13px; transition: transform .25s ease; }
.sec-link:hover .icon { transform: translateX(3px); }
.section { margin-bottom: 48px; }

.promo-banner { display: flex; align-items: center; gap: 18px; padding: 22px 26px; margin-bottom: 48px; border-radius: var(--radius-lg); background: linear-gradient(120deg, var(--blue) 0%, var(--blue-dark) 100%); box-shadow: var(--shadow-soft); }
.promo-banner-ico { flex-shrink: 0; width: 46px; height: 46px; border-radius: 50%; background: rgba(255, 255, 255, .16); display: flex; align-items: center; justify-content: center; color: #fff; }
.promo-banner-ico .icon { width: 21px; height: 21px; }
.promo-banner-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.promo-banner-body strong { color: #fff; font-size: 15.5px; font-weight: 700; letter-spacing: -0.01em; }
.promo-banner-body span { color: rgba(255, 255, 255, .78); font-size: 13px; font-weight: 500; line-height: 1.4; }
.promo-banner-cta { flex-shrink: 0; display: inline-flex; align-items: center; gap: 6px; background: #fff; color: var(--blue-dark); font-size: 13px; font-weight: 700; padding: 11px 18px; border-radius: var(--radius-pill); white-space: nowrap; transition: transform .2s ease; }
.promo-banner-cta .icon { width: 12px; height: 12px; transition: transform .25s ease; }
.promo-banner-cta:hover .icon { transform: translateX(3px); }
.promo-banner-alt { background: var(--blue-tint); }
.promo-banner-alt .promo-banner-ico { background: rgba(52,102,174,.1); color: var(--blue); }
.promo-banner-alt .promo-banner-body strong { color: var(--ink); }
.promo-banner-alt .promo-banner-body span { color: var(--gray-700); }
.promo-banner-alt .promo-banner-cta { background: var(--blue); color: #fff; }
@media (max-width: 640px) {
  .promo-banner { flex-wrap: wrap; padding: 20px; }
  .promo-banner-body { flex-basis: 100%; order: 2; }
  .promo-banner-cta { order: 3; width: 100%; justify-content: center; }
}

.carousel { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x proximity; -webkit-overflow-scrolling: touch; scrollbar-width: none; margin: 0 calc(-1 * var(--gutter)); padding: 4px var(--gutter) 14px; scroll-padding-left: var(--gutter); }
.carousel::-webkit-scrollbar { display: none; }
.carousel > * { flex: 0 0 min(78%, 360px); scroll-snap-align: start; }
.carousel > .carousel-feature { display: flex; flex-direction: column; gap: 10px; flex-basis: min(92%, 480px); }
.carousel-feature-tag { display: inline-flex; align-items: center; gap: 6px; color: var(--blue); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.carousel-feature-tag .icon { width: 13px; height: 13px; }

.listing-card { position: relative; display: block; aspect-ratio: .8; border-radius: var(--radius-xl); overflow: hidden; background: var(--blue-dark); box-shadow: var(--shadow-soft); }
.listing-card > img, .listing-card > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: contrast(1.06); transition: transform .6s cubic-bezier(.2, .7, .2, 1); }
.listing-card:hover > img { transform: scale(1.05); }
.listing-tint { position: absolute; inset: 0; z-index: 1; background: linear-gradient(0deg, rgba(0, 0, 0, .86) 0%, rgba(0, 0, 0, .55) 38%, rgba(0, 0, 0, .12) 62%, transparent 78%); }
.listing-top { position: absolute; top: 16px; left: 16px; right: 16px; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.listing-meta { position: absolute; left: 22px; right: 22px; bottom: 86px; z-index: 2; display: flex; flex-direction: column; gap: 8px; }
.listing-name { color: #fff; font-size: 24px; font-weight: 700; line-height: 1.12; letter-spacing: -0.01em; }
.listing-cities { color: rgba(255, 255, 255, .82); font-size: 12.5px; font-weight: 600; line-height: 1.35; }
.listing-stats { display: flex; align-items: center; gap: 8px; }
.listing-stat { color: #fff; font-size: 13px; font-weight: 700; }
.listing-stat strong { font-size: 16px; font-weight: 700; margin-right: 3px; }
.listing-stat-dot { width: 3px; height: 3px; border-radius: 50%; background: rgba(255, 255, 255, .5); }
.listing-bottom { position: absolute; left: 22px; right: 22px; bottom: 22px; z-index: 2; }
.listing-cta { display: inline-flex; align-items: center; background: #fff; color: var(--ink); font-size: 14.5px; font-weight: 700; padding: 15px 26px; border-radius: var(--radius-pill); transition: transform .3s var(--ease-out); }
.listing-card:hover .listing-cta { transform: translateY(-2px); }
.cta-arrow { display: inline-block; width: 0; opacity: 0; overflow: hidden; transition: width .35s var(--ease-out), opacity .3s ease, margin-left .35s var(--ease-out); }
.cta-arrow .icon { width: 13px; height: 13px; display: block; }
.listing-card:hover .cta-arrow { width: 13px; opacity: 1; margin-left: 8px; }

/* Deck tipologie (card che si apre in un carosello interno) */
.deck-stack { display: flex; align-items: center; height: 420px; gap: 16px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; margin: 0 calc(-1 * var(--gutter)); padding: 8px var(--gutter) 24px; scroll-padding-left: var(--gutter); }
.deck-stack::-webkit-scrollbar { display: none; }
.deck-card { position: relative; flex: 0 0 240px; height: 88%; min-width: 0; overflow: hidden; border-radius: var(--radius-lg); cursor: pointer; background: var(--blue-tint); box-shadow: var(--shadow-lift); scroll-snap-align: start;
  transition: flex-grow .65s cubic-bezier(.19, 1, .22, 1), transform .3s cubic-bezier(.19, 1, .22, 1), opacity .4s ease, height .6s cubic-bezier(.19, 1, .22, 1); }
.deck-card:hover { transform: translateY(-4px); }
.deck-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: opacity .35s ease, transform .5s cubic-bezier(.2, .7, .2, 1); }
.deck-card:hover .deck-bg { transform: scale(1.05); }
.deck-tint { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(237, 241, 255, .96) 10%, rgba(237, 241, 255, .32) 50%, transparent 74%); transition: opacity .35s ease; }
.deck-name { position: absolute; left: 18px; bottom: 24px; right: 76px; z-index: 1; color: var(--ink); font-size: 19px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.2; transition: opacity .25s ease; }
.deck-tap-hint { position: absolute; right: 16px; bottom: 16px; z-index: 1; width: 44px; height: 44px; border-radius: 50%; background: var(--blue); display: flex; align-items: center; justify-content: center; color: #fff; transition: opacity .25s ease, transform .3s var(--ease-spring); }
.deck-tap-hint .icon { width: 17px; height: 17px; }
.deck-card:hover .deck-tap-hint { transform: scale(1.1); }
.deck-open-head { position: relative; z-index: 1; display: none; align-items: baseline; gap: 10px; padding: 24px 60px 16px 26px; }
.deck-open-name { font-size: 24px; font-weight: 700; white-space: nowrap; letter-spacing: -0.01em; }
.deck-close { position: absolute; top: 18px; right: 20px; z-index: 2; width: 36px; height: 36px; border-radius: 50%; background: var(--gray-100); border: none; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.deck-close .icon { width: 15px; height: 15px; }
.deck-carousel { position: relative; z-index: 1; display: none; gap: 16px; overflow-x: auto; scrollbar-width: none; padding: 4px 26px 24px; height: calc(100% - 64px); }
.deck-carousel::-webkit-scrollbar { display: none; }
.deck-mini { position: relative; flex: 0 0 176px; border-radius: 16px; overflow: hidden; box-shadow: 0 6px 16px -8px rgba(30,43,78,.3); animation: miniIn .5s var(--ease-out) both; }
.deck-mini:nth-child(2) { animation-delay: .07s; } .deck-mini:nth-child(3) { animation-delay: .14s; } .deck-mini:nth-child(4) { animation-delay: .21s; } .deck-mini:nth-child(5) { animation-delay: .28s; }
@keyframes miniIn { from { opacity: 0; transform: translateY(10px); } }
.deck-mini > img, .deck-mini > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.deck-mini .ph-fmt { font-size: 22px; }
.deck-mini-tint { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0, 0, 0, .8) 0%, rgba(0, 0, 0, .15) 45%, transparent 62%); }
.deck-mini .demand-badge { position: absolute; top: 10px; left: 10px; z-index: 1; padding: 7px 10px; font-size: 10px; }
.deck-mini-label { position: absolute; left: 12px; right: 12px; bottom: 12px; z-index: 1; color: #fff; font-size: 13.5px; font-weight: 700; line-height: 1.25; }
.deck-mini-cta { background: var(--blue); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; gap: 14px; padding: 20px; flex-basis: 210px; }
.deck-mini-cta:hover { background: var(--blue-dark); }
.deck-mini-cta-icon { width: 48px; height: 48px; border-radius: 50%; background: rgba(255, 255, 255, .2); display: flex; align-items: center; justify-content: center; color: #fff; }
.deck-mini-cta-icon .icon { width: 19px; height: 19px; }
.deck-mini-cta-text { color: #fff; font-size: 14px; font-weight: 600; line-height: 1.4; }
.deck-mini-cta-text strong { display: block; font-size: 18px; font-weight: 700; }
.deck-card.is-open { flex-grow: 8; height: 100%; background: #fff; z-index: 6; transform: none; cursor: default; }
.deck-card.is-open .deck-bg, .deck-card.is-open .deck-tint, .deck-card.is-open .deck-name, .deck-card.is-open .deck-tap-hint { opacity: 0; }
.deck-card.is-open .deck-open-head { display: flex; }
.deck-card.is-open .deck-carousel { display: flex; }
.deck-stack.has-open .deck-card:not(.is-open) { flex-grow: 0; flex-basis: 0; opacity: 0; margin: 0 -8px; pointer-events: none; transform: scale(.8); }
@media (max-width: 640px) {
  .deck-stack { height: 330px; }
  .deck-card { flex-basis: 196px; }
  .deck-name { font-size: 16px; }
  .deck-open-head { padding: 22px 54px 14px 20px; } .deck-open-name { font-size: 21px; }
  .deck-carousel { padding: 4px 20px 20px; } .deck-mini { flex-basis: 150px; }
}

.site-foot { text-align: center; font-size: 12px; font-weight: 600; color: var(--gray-500); padding: 20px var(--gutter) 10px; }
.site-foot a { color: var(--gray-700); }
.site-foot nav { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 18px; margin-top: 6px; }

/* Percorso guidato a schermo pieno: niente bottom-nav né footer (come wizard.html) */
.is-wizard { padding-bottom: 24px; }
.is-wizard .bottom-nav, .is-wizard .site-foot { display: none; }

/* ---------- Catalogo ---------- */
.cg-summary { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 14px; }
.cg-pill { display: flex; flex-direction: column; gap: 3px; }
.cg-pill h1 { font-size: clamp(26px, 3.6vw, 38px); }
.cg-pill-count { font-size: 14px; font-weight: 700; letter-spacing: -0.01em; }
.cg-pill-count strong { color: var(--blue-dark); }
.cg-pill-meta { font-size: 12px; font-weight: 700; color: var(--gray-500); }
.rs-toggle { display: flex; align-items: center; background: var(--gray-100); border-radius: var(--radius-pill); padding: 4px; gap: 2px; }
.rs-toggle a { font-size: 12.5px; font-weight: 700; padding: 10px 16px; border-radius: var(--radius-pill); color: var(--ink-70); transition: background .25s ease, color .25s ease; }
.rs-toggle a.active { background: var(--blue); color: #fff; box-shadow: 0 6px 16px -8px rgba(52,102,174,.55); }
.cg-filters { display: flex; flex-direction: column; gap: 8px; margin-bottom: 22px; }
.cg-chip-row { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 0 calc(-1 * var(--gutter)); padding: 2px var(--gutter); }
.cg-chip-row::-webkit-scrollbar { display: none; }
.cg-chip { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; border: 1.5px solid var(--blue-soft); background: var(--blue-tint); color: var(--blue-dark); font-size: 13px; font-weight: 700; padding: 9px 16px; border-radius: var(--radius-pill); cursor: pointer; transition: border-color .2s ease, background .2s ease, transform .2s ease, box-shadow .2s ease; white-space: nowrap; }
.cg-chip .icon { width: 14px; height: 14px; }
.cg-chip small { font-size: 11px; font-weight: 700; opacity: .65; }
.cg-chip:hover { border-color: var(--blue); background: var(--blue-soft); transform: translateY(-1px); }
.cg-chip.selected { background: var(--blue); border-color: var(--blue); color: #fff; box-shadow: 0 8px 20px -10px rgba(52,102,174,.6); }
.cg-chip.reset { background: #fff; border-style: dashed; }
.cg-chip.reset.selected { border-style: solid; background: var(--blue); }
.cg-chip-label { flex: 0 0 auto; align-self: center; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--gray-500); padding: 0 4px; }
.cg-search { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; background: var(--gray-100); border-radius: var(--radius-pill); padding: 0 16px; }
.cg-search .icon { width: 15px; height: 15px; color: var(--gray-500); }
.cg-search input { border: none; background: none; outline: none; font-size: 16px; font-weight: 600; padding: 10px 0; width: 190px; }

.paginazione { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 36px 0 12px; }
.pag-num, .pag-btn, .pag-gap { min-width: 44px; height: 44px; padding: 0 16px; display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-pill); font-size: 13.5px; font-weight: 700; }
.pag-num, .pag-btn { background: var(--gray-100); color: var(--ink); transition: background .2s ease; }
.pag-num:hover, .pag-btn:hover { background: var(--gray-200); }
.pag-num.is-on { background: var(--blue); color: #fff; }
.pag-gap { color: var(--gray-500); }

/* Vista mappa: lista a sinistra, mappa a destra (come catalogo.html) */
.cg-split { display: flex; gap: 20px; height: calc(100dvh - 330px); min-height: 460px; margin-bottom: 20px; }
.cg-list { width: 440px; max-width: 46%; flex: 0 0 auto; overflow-y: auto; padding: 4px 6px 24px 2px; scrollbar-width: thin; }
.cg-list .cg-grid { grid-template-columns: 1fr 1fr; gap: 14px; }
.cg-list .cg-card { aspect-ratio: 4 / 4.2; border-radius: var(--radius-lg); }
.cg-list .cg-name { font-size: 14.5px; }
.cg-list .cg-tags { display: none; }
.cg-map { flex: 1 1 auto; position: relative; overflow: hidden; background: #F4F6FA; border-radius: var(--radius-xl); }
.map-tools { position: absolute; top: 14px; left: 14px; z-index: 5; display: flex; gap: 8px; flex-wrap: wrap; }
.map-tool { display: inline-flex; align-items: center; gap: 6px; background: #fff; border: none; box-shadow: var(--shadow-soft); font-size: 12.5px; font-weight: 700; padding: 10px 14px; border-radius: var(--radius-pill); cursor: pointer; }
.map-tool .icon { width: 14px; height: 14px; }
.map-tool.is-on { background: var(--blue); color: #fff; }
.map-status { position: absolute; left: 50%; bottom: 16px; transform: translateX(-50%); z-index: 5; background: #fff; border-radius: var(--radius-pill); box-shadow: var(--shadow-soft); padding: 9px 16px; font-size: 12.5px; font-weight: 700; white-space: nowrap; }
.map-status strong { color: var(--blue-dark); }
@media (max-width: 900px) {
  .cg-split { flex-direction: column-reverse; height: auto; }
  .cg-list { width: 100%; max-width: none; overflow: visible; padding: 0; }
  .cg-map { height: 62vh; flex: 0 0 auto; }
}
@media (max-width: 520px) { .cg-list .cg-grid { grid-template-columns: 1fr; } }

/* Motore mappa (assets/js/mappa.js) */
.um-map { position: absolute; inset: 0; overflow: hidden; touch-action: none; cursor: grab; user-select: none; -webkit-user-select: none; }
.um-map.is-drag { cursor: grabbing; }
.um-map.is-draw { cursor: crosshair; }
.um-tiles, .um-markers { position: absolute; inset: 0; }
.um-tiles canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.um-tiles img { position: absolute; width: 256px; height: 256px; max-width: none; }
.um-tiles img.um-ref { pointer-events: none; }
.um-pin { position: absolute; width: 46px; height: 46px; margin: -23px 0 0 -23px; border-radius: 50%; background: var(--blue); border: 3px solid #fff; box-shadow: 0 8px 18px -6px rgba(19, 57, 184, .5); overflow: hidden; cursor: pointer; display: flex; align-items: center; justify-content: center; color: #fff; transition: transform .2s var(--ease-spring), box-shadow .2s ease; }
.um-pin img { width: 100%; height: 100%; object-fit: cover; }
.um-pin .icon { width: 18px; height: 18px; }
.um-pin:hover { transform: scale(1.1); }
.um-pin.is-hl { transform: scale(1.16); z-index: 3; box-shadow: 0 0 0 3px var(--blue), 0 12px 24px -6px rgba(52,102,174,.55); }
.um-pin.sm { width: 34px; height: 34px; margin: -17px 0 0 -17px; }
.um-cluster { position: absolute; transform: translate(-50%, -50%); border-radius: 50%; background: var(--blue); color: #fff; display: grid; place-items: center; font: 700 13px var(--f); border: 4px solid rgba(255, 255, 255, .9); box-shadow: 0 8px 18px -6px rgba(19, 57, 184, .55); cursor: pointer; transition: transform .2s var(--ease-spring); }
.um-cluster:hover { transform: translate(-50%, -50%) scale(1.08); }
.um-zoom { position: absolute; right: 14px; top: 14px; z-index: 5; display: flex; flex-direction: column; border-radius: var(--radius-md); overflow: hidden; box-shadow: var(--shadow-soft); }
.um-zoom button { width: 40px; height: 40px; border: 0; background: #fff; font-size: 18px; font-weight: 700; cursor: pointer; }
.um-zoom button:hover { background: var(--gray-100); }
.um-zoom button + button { border-top: 1px solid var(--gray-100); }
.um-attr { position: absolute; right: 0; bottom: 0; z-index: 5; background: rgba(255, 255, 255, .75); backdrop-filter: blur(4px); font-size: 9.5px; padding: 2px 6px; color: var(--gray-500); border-top-left-radius: 6px; }
.um-rect { position: absolute; border: 2px solid var(--blue); background: rgba(52,102,174,.12); border-radius: 8px; pointer-events: none; }
.um-pop { position: absolute; z-index: 6; transform: translate(-50%, calc(-100% - 30px)); background: #fff; border-radius: 18px; box-shadow: var(--shadow-lift); width: 220px; overflow: hidden; }
.um-pop-media { position: relative; height: 100px; background: var(--blue-dark); }
.um-pop-media img { width: 100%; height: 100%; object-fit: cover; }
.um-pop-media .ph-fmt { font-size: 22px; }
.um-pop-body { padding: 12px 14px 14px; display: flex; flex-direction: column; gap: 2px; }
.um-pop-body strong { font-size: 14px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.25; }
.um-pop-body > span { font-size: 10.5px; font-weight: 700; color: var(--gray-500); text-transform: uppercase; letter-spacing: .02em; }
.um-pop-cta { display: inline-flex; align-items: center; gap: 5px; align-self: flex-start; margin-top: 9px; background: var(--blue); color: #fff; font-size: 11.5px; font-weight: 700; padding: 8px 13px; border-radius: var(--radius-pill); }
.um-pop-cta .icon { width: 10px; height: 10px; }

/* ---------- Wizard "Cerca per zona" (come wizard.html) ---------- */
.wz-head { display: flex; align-items: flex-start; justify-content: space-between; padding: calc(18px + env(safe-area-inset-top)) 0 14px; }
.wz-progress { display: flex; flex-direction: column; align-items: center; gap: 8px; }
.wz-progress-num { font-size: 12px; font-weight: 700; letter-spacing: .04em; color: var(--ink-45); }
.wz-progress-num strong { color: var(--blue-dark); }
.wz-progress-dots { display: flex; gap: 5px; }
.wz-progress-dots i { width: 16px; height: 3px; border-radius: 2px; background: var(--gray-200); }
.wz-progress-dots i.done { background: var(--blue-soft); }
.wz-progress-dots i.active { background: var(--blue); width: 24px; }
.wz-close { width: 44px; height: 44px; border-radius: 50%; background: var(--gray-100); display: flex; align-items: center; justify-content: center; transition: background .2s ease, transform .2s ease; }
.wz-close:hover { background: var(--gray-200); transform: rotate(90deg); }
.wz-close .icon { width: 16px; height: 16px; }
.wz-step-head { max-width: 720px; margin: 10px 0 clamp(18px, 3vh, 30px); }
.wz-eyebrow { display: inline-block; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); margin-bottom: 10px; }
.wz-title { font-size: clamp(28px, 4.6vw, 48px); }
.wz-sub { font-size: clamp(13.5px, 1.6vw, 15.5px); color: var(--gray-700); margin-top: 10px; max-width: 480px; }
.wz-crumbs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.wz-crumbs a { display: inline-flex; align-items: center; gap: 6px; background: var(--blue-tint); color: var(--blue-dark); font-size: 12.5px; font-weight: 700; padding: 8px 14px; border-radius: var(--radius-pill); }
.wz-crumbs a .icon { width: 12px; height: 12px; }
.wz-foot { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 22px 0 10px; }
.wz-back-btn { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--ink-70); padding: 12px 4px; }
.wz-back-btn .icon { width: 16px; height: 16px; transform: rotate(180deg); }
.wz-back-btn:hover { color: var(--ink); }
.wz-skip { font-size: 13px; font-weight: 700; color: var(--blue-dark); }

.wz-thinking { position: fixed; inset: 0; z-index: 80; background: var(--paper); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 30px; padding: 32px; text-align: center; transition: opacity .5s ease; }
.wz-thinking.is-done { opacity: 0; pointer-events: none; }
.wz-thinking-orb { position: relative; width: 84px; height: 84px; border-radius: 50%; background: var(--blue-tint); display: flex; align-items: center; justify-content: center; }
.wz-thinking-orb::before, .wz-thinking-orb::after { content: ''; position: absolute; inset: -10px; border-radius: 50%; border: 2px solid var(--blue-soft); animation: wzOrbPulse 1.8s ease-out infinite; }
.wz-thinking-orb::after { animation-delay: .9s; }
.wz-thinking-orb .icon { width: 34px; height: 34px; color: var(--blue); }
.wz-thinking-title { font-size: clamp(19px, 2.4vw, 24px); font-weight: 700; letter-spacing: -0.01em; max-width: 340px; }
.wz-thinking-steps { display: flex; flex-direction: column; gap: 14px; text-align: left; }
.wz-thinking-steps li { display: flex; align-items: center; gap: 12px; font-size: 14px; font-weight: 600; color: var(--gray-500); opacity: .4; transition: opacity .3s ease; }
.wz-thinking-steps li.done, .wz-thinking-steps li.active { opacity: 1; color: var(--ink); }
.wz-thinking-check { width: 22px; height: 22px; border-radius: 50%; border: 1.5px solid var(--gray-200); display: flex; align-items: center; justify-content: center; flex-shrink: 0; transition: background .25s ease, border-color .25s ease; }
.wz-thinking-check .icon { width: 11px; height: 11px; color: #fff; opacity: 0; transition: opacity .2s ease; }
.wz-thinking-steps li.done .wz-thinking-check { background: var(--blue); border-color: var(--blue); }
.wz-thinking-steps li.done .wz-thinking-check .icon { opacity: 1; }
.wz-thinking-steps li.active .wz-thinking-check { border-color: var(--blue); animation: wzCheckPulse 1s ease-in-out infinite; }
@keyframes wzCheckPulse { 0%, 100% { box-shadow: 0 0 0 0 rgba(52,102,174,.35); } 50% { box-shadow: 0 0 0 5px rgba(52,102,174,0); } }
@keyframes wzOrbPulse { from { opacity: .7; transform: scale(.9); } to { opacity: 0; transform: scale(1.4); } }
@media (prefers-reduced-motion: reduce) { .wz-thinking { display: none; } }

.wz-welcome { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; min-height: calc(100vh - 140px); padding: 20px 16px 60px; }
.wz-welcome-aura { position: fixed; inset: 0; z-index: 0; display: flex; align-items: center; justify-content: center; pointer-events: none; }
.wz-aura-ring { position: absolute; border-radius: 50%; filter: blur(60px); animation: wzAuraPulse 7s ease-in-out infinite; }
.wz-aura-1 { width: min(70vw, 460px); height: min(70vw, 460px); background: radial-gradient(circle, var(--blue) 0%, transparent 72%); opacity: .45; }
.wz-aura-2 { width: min(50vw, 340px); height: min(50vw, 340px); background: radial-gradient(circle, #6E8CFF 0%, transparent 72%); opacity: .5; animation-delay: 1.8s; animation-duration: 8s; }
.wz-aura-3 { width: min(34vw, 240px); height: min(34vw, 240px); background: radial-gradient(circle, var(--blue-soft) 0%, transparent 72%); opacity: .6; animation-delay: 3.2s; animation-duration: 6.5s; }
@keyframes wzAuraPulse { 0%, 100% { transform: scale(1) translate(0, 0); } 50% { transform: scale(1.22) translate(3%, -3%); } }
.wz-welcome-orb { position: relative; z-index: 1; width: 96px; height: 96px; border-radius: 50%; background: #fff; box-shadow: var(--shadow-lift); display: flex; align-items: center; justify-content: center; margin-bottom: 26px; }
.wz-welcome-orb .icon { width: 40px; height: 40px; color: var(--blue); }
.wz-welcome > * { position: relative; z-index: 1; }
.wz-welcome .wz-title { max-width: 480px; }
.wz-welcome .wz-sub { max-width: 420px; margin: 14px 0 30px; }
@media (prefers-reduced-motion: reduce) { .wz-aura-ring { animation: none; } }

.prov-track { display: flex; gap: 18px; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; margin: 0 calc(-1 * var(--gutter)); padding: 10px var(--gutter) 18px; scroll-padding-left: var(--gutter); cursor: grab; }
.prov-track::-webkit-scrollbar { display: none; }
.prov-track.is-dragging { cursor: grabbing; scroll-snap-type: none; }
.prov-card { position: relative; flex: 0 0 auto; width: clamp(230px, 30vw, 360px); height: clamp(340px, 56vh, 520px); border-radius: var(--radius-xl); overflow: hidden; scroll-snap-align: start; background: var(--blue-dark); box-shadow: var(--shadow-soft); transition: transform .25s var(--ease-out), box-shadow .3s ease; -webkit-user-drag: none; }
.prov-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); }
.prov-card > img, .prov-card > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.prov-card-tint { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(0, 0, 0, .85) 0%, rgba(0, 0, 0, .4) 40%, rgba(0, 0, 0, .06) 68%, transparent 82%); }
.prov-card-body { position: absolute; left: 24px; right: 24px; bottom: 24px; z-index: 2; }
.prov-card-name { color: #fff; font-size: clamp(22px, 3vw, 32px); font-weight: 700; letter-spacing: -0.02em; line-height: 1.1; }
.prov-card-region { color: rgba(255, 255, 255, .7); font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; margin-top: 6px; }
.prov-card .prov-live { position: absolute; top: 18px; left: 18px; z-index: 2; }
.prov-card-mark { position: absolute; top: 18px; right: 18px; z-index: 3; width: 36px; height: 36px; border-radius: 50%; border: 2px solid rgba(255, 255, 255, .75); background: rgba(255, 255, 255, .14); backdrop-filter: blur(6px); display: flex; align-items: center; justify-content: center; color: #fff; transition: background .25s ease, border-color .25s ease; }
.prov-card-mark .icon { width: 15px; height: 15px; }
.prov-card:hover .prov-card-mark { background: var(--blue); border-color: var(--blue); }
.wz-search-box { display: flex; align-items: center; gap: 10px; background: var(--gray-100); border-radius: var(--radius-pill); padding: 15px 22px; margin-bottom: 22px; max-width: 460px; transition: box-shadow .2s ease; }
.wz-search-box:focus-within { box-shadow: 0 0 0 2px var(--blue); }
.wz-search-box .icon { width: 17px; height: 17px; color: var(--gray-500); flex-shrink: 0; }
.wz-search-box input { border: none; background: none; outline: none; font: inherit; font-size: 16px; width: 100%; color: var(--ink); }
.wz-filter-empty { font-size: 13.5px; font-weight: 600; color: var(--gray-500); padding: 40px 4px; text-align: center; }
.vis-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.vis-card { position: relative; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 20px 22px; border-radius: var(--radius-lg); border: 1.5px solid var(--gray-200); background: #fff; transition: border-color .25s ease, transform .2s ease, box-shadow .25s ease; }
.vis-card:hover { border-color: var(--blue); transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.vis-card strong { display: block; font-size: 16px; font-weight: 700; letter-spacing: -0.01em; }
.vis-card span { display: block; font-size: 12.5px; font-weight: 600; color: var(--gray-500); margin-top: 3px; }
.vis-card .icon { width: 16px; height: 16px; color: var(--blue); }
@media (max-width: 900px) { .vis-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .vis-grid { grid-template-columns: 1fr; } .prov-card { width: min(78vw, 340px); height: clamp(320px, 52vh, 460px); } }

.per-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.per-card { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 22px; padding: 24px 22px; border-radius: var(--radius-lg); border: 1.5px solid var(--gray-200); background: #fff; min-height: 168px; transition: border-color .25s ease, background .25s ease, transform .2s ease, box-shadow .25s ease; cursor: pointer; text-align: left; font-size: inherit; }
.per-card:hover { border-color: var(--blue); transform: translateY(-3px); box-shadow: var(--shadow-soft); }
.per-card.selected { border-color: var(--blue); background: var(--blue-tint); box-shadow: 0 0 0 1.5px var(--blue), var(--shadow-soft); }
.per-card.unavailable { opacity: .42; pointer-events: none; }
.per-eyebrow { font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--gray-500); }
.per-range { display: block; font-size: clamp(18px, 2vw, 22px); font-weight: 700; letter-spacing: -0.01em; line-height: 1.25; margin-top: 6px; }
.per-status { display: inline-flex; align-items: center; gap: 8px; font-size: 13px; font-weight: 700; }
.per-dot { width: 8px; height: 8px; border-radius: 50%; flex-shrink: 0; background: var(--status-ok); }
.per-card[data-status="partial"] .per-dot, .per-dot.warn { background: var(--status-warn); }
.per-card[data-status="none"] .per-dot, .per-dot.off { background: var(--status-hot); }
.per-check { position: absolute; top: 20px; right: 20px; width: 24px; height: 24px; border-radius: 50%; border: 1.5px solid var(--gray-200); background: #fff; display: flex; align-items: center; justify-content: center; }
.per-check .icon { width: 12px; height: 12px; color: #fff; opacity: 0; }
.per-card.selected .per-check { background: var(--blue); border-color: var(--blue); }
.per-card.selected .per-check .icon { opacity: 1; }
@media (max-width: 900px) { .per-grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) {
  .per-grid { grid-template-columns: 1fr; gap: 10px; }
  .per-card { min-height: auto; flex-direction: row; align-items: center; padding: 18px 20px; }
  .per-check { position: static; margin-left: auto; }
}

/* ---------- Scheda prodotto ---------- */
.crumbs { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; font-size: 12.5px; font-weight: 700; color: var(--gray-500); margin-bottom: 14px; }
.crumbs li + li::before { content: '/'; margin-right: 6px; opacity: .5; }
.crumbs a:hover { color: var(--blue-dark); }
.crumbs [aria-current] { color: var(--ink); }
.pd-title { display: flex; justify-content: space-between; align-items: flex-end; gap: 20px; flex-wrap: wrap; margin-bottom: 24px; }
.pd-type { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); margin-bottom: 10px; }
.pd-title h1 { font-size: clamp(28px, 4vw, 44px); max-width: 22ch; }
.pd-addr { display: flex; align-items: center; gap: 8px; margin-top: 10px; color: var(--gray-700); font-size: 14.5px; font-weight: 600; }
.pd-addr .icon { color: var(--blue); width: 17px; height: 17px; }
.pd-gallery-main { position: relative; aspect-ratio: 16 / 8.2; border-radius: var(--radius-xl); overflow: hidden; background: var(--blue-dark); box-shadow: var(--shadow-soft); }
.pd-gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.pd-gallery-main .glass-pill { position: absolute; left: 18px; bottom: 18px; z-index: 2; }
.pd-thumbs { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-top: 12px; }
.pd-thumb { position: relative; aspect-ratio: 4 / 3; border-radius: var(--radius-md); overflow: hidden; background: var(--blue-dark); border: none; padding: 0; cursor: pointer; transition: transform .2s ease, box-shadow .2s ease; }
.pd-thumb img { width: 100%; height: 100%; object-fit: cover; }
.pd-thumb:hover { transform: translateY(-2px); }
.pd-thumb.active { box-shadow: 0 0 0 3px var(--blue); }
.pd-thumb .glass-pill { position: absolute; left: 8px; bottom: 8px; font-size: 9.5px; padding: 5px 9px; }
.pd-thumb .ph-fmt { display: none; }
.pd-grid { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(320px, 1fr); gap: 36px; align-items: start; margin-top: 36px; }
@media (max-width: 980px) { .pd-grid { grid-template-columns: 1fr; gap: 28px; } }
.pd-block + .pd-block { margin-top: 36px; }
.pd-kicker { display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500); margin-bottom: 14px; }
.spec-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.spec-item { background: var(--gray-100); border-radius: var(--radius-md); padding: 18px 18px 20px; }
.sp-label { font-size: 11px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-500); margin-bottom: 10px; }
.sp-value { display: flex; align-items: center; gap: 8px; font-size: 20px; font-weight: 700; letter-spacing: -0.01em; line-height: 1.15; }
.sp-value small { font-size: 13px; font-weight: 700; color: var(--gray-500); }
@media (max-width: 640px) { .spec-grid { grid-template-columns: 1fr 1fr; } }
.pd-desc { color: var(--gray-700); font-size: 15.5px; max-width: 640px; }
.pd-map { position: relative; aspect-ratio: 16 / 9; border-radius: var(--radius-xl); overflow: hidden; background: #F4F6FA; }
.pd-map-cap { font-size: 12px; font-weight: 700; color: var(--gray-500); margin-top: 10px; }
.side-card { position: sticky; top: 20px; border-radius: var(--radius-xl); background: #fff; box-shadow: var(--shadow-lift); border: 1px solid var(--gray-200); padding: 28px 24px 24px; }
.side-card h2 { font-size: 22px; }
.side-card .side-sub { font-size: 13px; font-weight: 600; color: var(--gray-500); margin: 6px 0 18px; }
.cal-list { display: flex; flex-direction: column; gap: 8px; max-height: 360px; overflow-y: auto; margin: 0 -4px 18px; padding: 2px 4px; }
.cal-block { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px; border-radius: var(--radius-md); border: 1.5px solid var(--gray-200); background: #fff; cursor: pointer; font-size: 14px; font-weight: 700; text-align: left; transition: border-color .2s ease, background .2s ease; }
.cal-block:hover { border-color: var(--blue); }
.cal-block.selected { border-color: var(--blue); background: var(--blue-tint); box-shadow: 0 0 0 1px var(--blue); }
.cal-block.is-busy { cursor: not-allowed; opacity: .55; background: var(--gray-100); border-color: transparent; }
.cal-status { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; color: var(--gray-700); white-space: nowrap; }
.side-note { margin-top: 14px; font-size: 12.5px; font-weight: 600; color: var(--gray-500); text-align: center; }
.pd-legend { display: flex; gap: 14px; flex-wrap: wrap; margin-bottom: 14px; font-size: 12px; font-weight: 700; color: var(--gray-700); }
.pd-legend span { display: inline-flex; align-items: center; gap: 6px; }

.toast { position: fixed; left: 50%; bottom: calc(150px + env(safe-area-inset-bottom)); z-index: 80; transform: translate(-50%, 16px); opacity: 0; pointer-events: none; display: flex; align-items: center; gap: 10px; background: var(--ink); color: #fff; font-size: 13.5px; font-weight: 700; padding: 14px 22px; border-radius: var(--radius-pill); box-shadow: var(--shadow-lift); transition: opacity .3s ease, transform .4s var(--ease-out); }
.toast.show { opacity: 1; transform: translate(-50%, 0); }
.toast .icon { color: #8FABD2; width: 16px; height: 16px; }

/* ---------- Richiesta ---------- */
.page-head { margin: 4px 0 30px; }
.page-head .wz-sub { max-width: 560px; }
.req-grid { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(320px, 1fr); gap: 36px; align-items: start; }
@media (max-width: 980px) { .req-grid { grid-template-columns: 1fr; } }
.sel-list { display: flex; flex-direction: column; gap: 12px; }
.sel-row { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto; align-items: center; gap: 18px; padding: 12px 16px 12px 12px; border-radius: var(--radius-lg); background: var(--gray-100); }
.sel-thumb { position: relative; width: 110px; height: 96px; border-radius: var(--radius-md); overflow: hidden; background: var(--blue-dark); }
.sel-thumb img { width: 100%; height: 100%; object-fit: cover; }
.sel-thumb .ph-fmt { font-size: 16px; }
.sel-info .pd-type { font-size: 10.5px; margin-bottom: 4px; }
.sel-info h3 { font-size: 16px; line-height: 1.25; }
.sel-info h3 a:hover { color: var(--blue-dark); }
.sel-meta { font-size: 12.5px; font-weight: 600; color: var(--gray-500); margin-top: 3px; }
.sel-fields { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.sel-fields select { appearance: none; -webkit-appearance: none; border: 1.5px solid var(--blue-soft); background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%231339B8' fill='none' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 14px center; border-radius: var(--radius-pill); padding: 10px 34px 10px 14px; font-size: 16px; font-weight: 700; color: var(--blue-dark); cursor: pointer; max-width: 100%; }
.sel-fields select:focus { outline: none; border-color: var(--blue); }
.sel-remove { width: 40px; height: 40px; border-radius: 50%; border: none; background: #fff; color: var(--gray-700); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s ease, color .2s ease; }
.sel-remove:hover { background: #FFE3E0; color: var(--status-hot); }
.sel-remove .icon { width: 16px; height: 16px; }
.sel-warn { font-size: 12.5px; font-weight: 700; color: var(--status-hot); margin-top: 8px; }
@media (max-width: 600px) {
  .sel-row { grid-template-columns: 80px minmax(0, 1fr); }
  .sel-thumb { width: 80px; height: 80px; }
  .sel-remove { grid-column: 2; justify-self: end; width: 34px; height: 34px; }
}
.form-card { border-radius: var(--radius-xl); background: #fff; border: 1px solid var(--gray-200); box-shadow: var(--shadow-soft); padding: 30px 26px; position: sticky; top: 20px; }
.form-card h2 { font-size: 22px; }
.form-sub { font-size: 13.5px; font-weight: 600; color: var(--gray-500); margin: 6px 0 22px; }
.f-group { display: block; margin-bottom: 14px; }
.f-group > span { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--gray-700); margin-bottom: 7px; }
.f-group input, .f-group textarea { width: 100%; border: 1.5px solid transparent; background: var(--gray-100); border-radius: 14px; padding: 13px 16px; font-size: 16px; font-weight: 600; transition: border-color .2s ease, background .2s ease; }
.f-group input:focus, .f-group textarea:focus { outline: none; border-color: var(--blue); background: #fff; }
.f-group textarea { min-height: 96px; resize: vertical; }
.f-row { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
@media (max-width: 520px) { .f-row { grid-template-columns: 1fr; } }
.f-check { display: flex; gap: 10px; align-items: flex-start; font-size: 12.5px; font-weight: 600; color: var(--gray-700); margin: 4px 0 18px; }
.f-check input { margin-top: 3px; accent-color: var(--blue); width: 16px; height: 16px; flex-shrink: 0; }
.hp { position: absolute; left: -5000px; }
.alert { padding: 14px 18px; border-radius: var(--radius-md); font-size: 14px; font-weight: 700; margin-bottom: 18px; }
.alert-err { background: #FFE3E0; color: #B3261E; }
.alert-ok { background: var(--blue-tint); color: var(--blue-dark); }

/* Codice OTP */
.otp-boxes { display: flex; gap: 10px; margin: 22px 0 20px; }
.otp-box { width: 100%; aspect-ratio: 1; max-width: 56px; text-align: center; font-size: 22px; font-weight: 700; border: 1.5px solid var(--gray-200); background: var(--gray-100); border-radius: 14px; transition: border-color .2s ease, background .2s ease; }
.otp-box:focus { outline: none; border-color: var(--blue); background: #fff; }
.otp-actions { margin-top: 4px; }
.link-btn { background: none; border: none; padding: 4px 0; font-size: 13.5px; font-weight: 700; color: var(--blue-dark); cursor: pointer; }
.link-btn:disabled { color: var(--gray-500); cursor: default; }
.link-btn.muted { color: var(--gray-500); font-weight: 700; margin-top: 10px; }
@media (max-width: 420px) {
  .otp-box { font-size: 18px; }
}

.confirm-screen { position: fixed; inset: 0; z-index: 100; background: var(--blue); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 40px 24px; animation: veilIn .5s var(--ease-out) both; }
@keyframes veilIn { from { opacity: 0; } }
.confirm-icon { width: 84px; height: 84px; border-radius: 50%; background: #fff; color: var(--blue); display: flex; align-items: center; justify-content: center; margin-bottom: 30px; animation: popIn .6s var(--ease-spring) .15s both; }
.confirm-icon .icon { width: 34px; height: 34px; stroke-width: 2.6; }
@keyframes popIn { from { transform: scale(.4); opacity: 0; } }
.confirm-screen .sec-kicker { color: rgba(255, 255, 255, .7); }
.confirm-screen h1 { font-size: clamp(28px, 4.4vw, 44px); max-width: 620px; }
.confirm-screen p { color: rgba(255, 255, 255, .85); max-width: 480px; font-size: 15px; font-weight: 500; margin: 16px 0 34px; }
.confirm-actions { display: flex; gap: 10px; flex-wrap: wrap; justify-content: center; }
.btn-white { background: #fff; color: var(--blue-dark); }
.btn-white:hover { transform: translateY(-2px); }
.btn-ghost-white { background: rgba(255, 255, 255, .14); color: #fff; border: 1px solid rgba(255, 255, 255, .35); }

/* ---------- Zona ---------- */
.zona-page .cg-pill h1 { font-size: clamp(36px, 4.6vw, 48px); }
.zona-editoriale { display: grid; grid-template-columns: minmax(0, 640px) minmax(0, 1fr); gap: 32px; align-items: start; margin-bottom: 26px; }
.zona-testo p { font-size: 15px; font-weight: 500; color: var(--gray-700); }
.zona-testo p + p { margin-top: 12px; }
.zona-foto { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--radius-lg); display: block; }
@media (max-width: 860px) { .zona-editoriale { grid-template-columns: 1fr; gap: 18px; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .15s !important; scroll-behavior: auto !important; }
}

/* Segnaposto nelle miniature piccole: solo il formato */
.sel-thumb .ph-sub, .deck-mini .ph-sub, .um-pop-media .ph-sub, .pd-thumb .ph-sub { display: none; }

/* ---------- Comparatore ---------- */
.cg-cmp { position: relative; z-index: 3; width: 36px; height: 36px; margin-left: auto; border-radius: 50%; border: 1px solid rgba(255, 255, 255, .3); background: rgba(255, 255, 255, .16); backdrop-filter: blur(6px); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s ease; }
.cg-cmp .icon { width: 15px; height: 15px; }
.cg-cmp:hover { background: rgba(255, 255, 255, .28); }
.cg-cmp.is-on { background: #fff; color: var(--blue); border-color: #fff; }
.pd-cmp-link { display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 12px; padding: 12px; border-radius: var(--radius-pill); background: var(--blue-tint); color: var(--blue-dark); font-size: 13.5px; font-weight: 700; }
.pd-cmp-link .icon { width: 15px; height: 15px; }
@media (max-width: 980px) { .pd-summary > .pd-cmp-link { display: flex; } }
.cmp-pill { position: fixed; right: 18px; bottom: calc(86px + env(safe-area-inset-bottom)); z-index: 58; display: inline-flex; align-items: center; gap: 8px; background: #fff; color: var(--blue-dark); border: 1.5px solid var(--blue-soft); box-shadow: var(--shadow-lift); padding: 11px 16px; border-radius: var(--radius-pill); font-size: 13px; font-weight: 700; }
.cmp-pill .icon { width: 16px; height: 16px; }
.cmp-pill strong { background: var(--blue); color: #fff; border-radius: var(--radius-pill); min-width: 22px; height: 22px; display: inline-flex; align-items: center; justify-content: center; font-size: 11.5px; }
@media (max-width: 700px) { .cmp-pill { bottom: calc(146px + env(safe-area-inset-bottom)); right: 12px; } }
.cmp-scroll { overflow-x: auto; margin: 0 calc(-1 * var(--gutter)); padding: 4px var(--gutter) 18px; scrollbar-width: none; }
.cmp-scroll::-webkit-scrollbar { display: none; }
.cmp-grid { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(260px, 1fr); gap: 16px; min-width: min-content; }
.cmp-col { border-radius: var(--radius-xl); background: var(--gray-100); overflow: hidden; display: flex; flex-direction: column; }
.cmp-media { position: relative; aspect-ratio: 4 / 3; background: var(--blue-dark); }
.cmp-media > img, .cmp-media > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cmp-media .demand-badge { position: absolute; top: 12px; left: 12px; z-index: 2; }
.cmp-x { position: absolute; top: 10px; right: 10px; z-index: 2; width: 34px; height: 34px; border-radius: 50%; border: none; background: rgba(255, 255, 255, .92); display: flex; align-items: center; justify-content: center; cursor: pointer; }
.cmp-x .icon { width: 14px; height: 14px; }
.cmp-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 14px; flex: 1; }
.cmp-body h2 { font-size: 18px; line-height: 1.25; }
.cmp-body h2 a:hover { color: var(--blue-dark); }
.cmp-row { display: flex; justify-content: space-between; gap: 10px; padding-top: 12px; border-top: 1px solid var(--gray-200); font-size: 13.5px; }
.cmp-row dt { color: var(--gray-500); font-weight: 700; }
.cmp-row dd { margin: 0; font-weight: 700; text-align: right; display: inline-flex; align-items: center; gap: 6px; }
.cmp-row dd.best { color: var(--blue-dark); }
.cmp-actions { margin-top: auto; display: grid; gap: 8px; padding-top: 6px; }
.cmp-empty { max-width: 420px; margin: 40px auto; text-align: center; color: var(--gray-500); font-weight: 600; }
.cmp-empty strong { display: block; color: var(--ink); font-size: 20px; margin-bottom: 8px; }

/* ---------- Condivisione ---------- */
.side-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 10px; }
.side-actions .btn { padding: 12px 14px; font-size: 13px; }
.share-menu { display: grid; gap: 6px; margin-top: 10px; padding: 8px; border-radius: var(--radius-md); background: var(--gray-100); }
.share-menu a, .share-menu button { display: flex; align-items: center; gap: 10px; padding: 11px 12px; border-radius: 12px; border: none; background: #fff; font-size: 13.5px; font-weight: 700; cursor: pointer; text-align: left; }
.share-menu .icon { width: 17px; height: 17px; color: var(--blue-dark); }

/* ---------- Account in top bar ---------- */
.account-btn { position: relative; }
.account-ini { width: 100%; height: 100%; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--blue-soft); color: var(--blue-dark); font-weight: 700; font-size: 17px; }
.account-btn .bn-badge { top: -2px; right: -2px; }

/* ---------- Area cliente ---------- */
.acct-login { max-width: 560px; margin: 20px auto 40px; }
.acct-login h1 { margin-bottom: 10px; }
.acct-form { margin-top: 24px; }
.acct-form.wide { margin-top: 0; max-width: 720px; }
.acct-form input:disabled { opacity: .6; }
.acct-sent { display: flex; gap: 14px; align-items: flex-start; margin-top: 24px; padding: 20px; border-radius: var(--radius-lg); background: var(--blue-tint); color: var(--blue-dark); font-weight: 600; }
.acct-sent .icon { width: 22px; height: 22px; flex-shrink: 0; margin-top: 2px; }
.acct-sent strong { display: block; font-weight: 700; margin-bottom: 2px; }
.acct-head { display: flex; align-items: flex-start; gap: 16px; margin: 4px 0 22px; }
.acct-avatar { width: 60px; height: 60px; border-radius: 50%; background: var(--blue); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 24px; font-weight: 700; flex-shrink: 0; }
.acct-head-info { flex: 1 1 auto; min-width: 0; }
.acct-head .sec-kicker { margin-bottom: 4px; }
.acct-out { margin-left: auto; flex-shrink: 0; }
.acct-out-btn { width: 44px; height: 44px; background: var(--gray-100); color: var(--gray-700); }
.acct-out-btn:hover { background: var(--gray-200); color: var(--ink); }
.acct-out-btn .icon { width: 16px; height: 16px; }
.acct-tabs { position: sticky; top: 0; z-index: 20; display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 0 calc(-1 * var(--gutter)) 8px; padding: 10px var(--gutter); background: rgba(255, 255, 255, .94); backdrop-filter: blur(10px); }
.acct-tabs::-webkit-scrollbar { display: none; }
.acct-tabs::after { content: ''; position: absolute; top: 0; right: 0; bottom: 0; width: 44px; background: linear-gradient(to right, transparent, rgba(255, 255, 255, .96) 65%); pointer-events: none; opacity: 0; transition: opacity .2s ease; }
.acct-tabs.is-scrollable::after { opacity: 1; }
.acct-tabs a { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; padding: 10px 16px; border-radius: var(--radius-pill); background: var(--gray-100); font-size: 13.5px; font-weight: 700; transition: background .2s ease, color .2s ease; }
.acct-tabs a .icon { width: 16px; height: 16px; color: var(--blue-dark); transition: color .2s ease; }
.acct-tabs a.is-active { background: var(--blue); color: #fff; }
.acct-tabs a.is-active .icon { color: #fff; }
.acct-tabs a.is-active b.soft { background: rgba(255, 255, 255, .25); color: #fff; }
.acct-tabs b { background: var(--status-hot); color: #fff; border-radius: var(--radius-pill); min-width: 20px; height: 20px; padding: 0 6px; font-size: 11px; display: inline-flex; align-items: center; justify-content: center; }
.acct-tabs b.soft { background: #fff; color: var(--gray-700); transition: background .2s ease, color .2s ease; }
.acct-sec { padding: 26px 0 8px; scroll-margin-top: 70px; }
.acct-sec .sec-head { margin-bottom: 14px; }
.acct-empty { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 32px 22px; border-radius: var(--radius-lg); background: var(--gray-100); color: var(--gray-700); font-weight: 600; font-size: 14px; text-align: center; }
.acct-empty-ico { width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--blue-dark); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.acct-empty-ico .icon { width: 20px; height: 20px; }
.acct-empty p { max-width: 34ch; }
.acct-list { display: grid; gap: 8px; }
.acct-notif { display: flex; align-items: flex-start; gap: 14px; padding: 16px 18px; border-radius: var(--radius-lg); background: var(--gray-100); }
.acct-notif > span:nth-child(2) { flex: 1; min-width: 0; }
.acct-notif strong { display: block; font-weight: 700; font-size: 14.5px; }
.acct-notif small { display: block; color: var(--gray-700); font-size: 13px; margin-top: 2px; font-weight: 500; }
.acct-notif time { font-size: 12px; font-weight: 700; color: var(--gray-500); white-space: nowrap; }
.acct-notif-ico { width: 40px; height: 40px; border-radius: 14px; background: #fff; color: var(--blue-dark); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.acct-notif-ico .icon { width: 18px; height: 18px; }
.acct-notif.is-new { background: var(--blue-tint); }
.acct-notif.is-new strong { font-weight: 700; }
.acct-notif.is-new .acct-notif-ico { background: var(--blue); color: #fff; }
.acct-camp { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.acct-card { display: flex; flex-direction: column; border-radius: var(--radius-xl); overflow: hidden; background: var(--gray-100); }
.acct-card-media { position: relative; aspect-ratio: 16 / 9; background: var(--blue-dark); }
.acct-card-media > img, .acct-card-media > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.acct-card-body { padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 6px; align-items: flex-start; }
.acct-card-body h3 { font-size: 16.5px; line-height: 1.25; }
.acct-card-body h3 a:hover { color: var(--blue-dark); }
.acct-period { font-weight: 700; font-size: 14px; }
.acct-left { font-size: 13px; font-weight: 700; color: var(--gray-700); margin-bottom: 8px; }
.acct-left.is-soon { color: var(--status-hot); }
.acct-req { border-radius: var(--radius-xl); background: #fff; border: 1px solid var(--gray-200); padding: 6px 0; margin-bottom: 14px; scroll-margin-top: 80px; }
.acct-req > header { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; padding: 14px 20px; }
.acct-req > header .demand-badge { margin-left: auto; }
.acct-row { display: flex; align-items: center; gap: 14px; padding: 12px 20px; border-top: 1px solid var(--gray-100); }
.acct-thumb { position: relative; width: 64px; height: 48px; border-radius: 12px; overflow: hidden; background: var(--blue-dark); flex-shrink: 0; }
.acct-thumb > img, .acct-thumb > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.acct-thumb .ph-fmt { font-size: 12px; } .acct-thumb .ph-sub { display: none; }
.acct-row-txt { flex: 1; min-width: 0; }
.acct-row-txt a { display: block; font-weight: 700; font-size: 14px; line-height: 1.3; }
.acct-row-txt a:hover { color: var(--blue-dark); }
.acct-row-txt small { display: block; font-size: 12px; font-weight: 600; color: var(--gray-500); margin-top: 2px; }
.acct-row .demand-badge { padding: 7px 11px; font-size: 10.5px; }
@media (max-width: 560px) { .acct-row { flex-wrap: wrap; } .acct-row .demand-badge { margin-left: 78px; } }

/* ---------- Scheda prodotto (riordinata) ---------- */
.pd-hero { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(340px, 1fr); gap: 28px; align-items: start; margin-top: 6px; }
.pd-media { min-width: 0; }
.pd-hero .pd-gallery-main { aspect-ratio: 16 / 11; }
.pd-media-top { position: absolute; top: 16px; left: 16px; z-index: 2; display: flex; gap: 8px; }
.pd-media-actions { position: absolute; top: 14px; right: 14px; z-index: 2; display: flex; gap: 8px; }
.pd-round { width: 44px; height: 44px; border-radius: 50%; border: none; background: rgba(255, 255, 255, .92); color: var(--ink); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 6px 16px -8px rgba(0, 0, 0, .35); transition: transform .2s var(--ease-spring), background .2s ease; }
.pd-round:hover { transform: scale(1.06); }
.pd-round .icon { width: 18px; height: 18px; }
.pd-round.is-on { background: var(--blue); color: #fff; }
.pd-share-menu { position: absolute; top: 66px; right: 14px; z-index: 3; min-width: 200px; margin: 0; box-shadow: var(--shadow-lift); }
.pd-summary { position: sticky; top: 20px; border-radius: var(--radius-xl); background: #fff; border: 1px solid var(--gray-200); box-shadow: var(--shadow-lift); padding: 26px 24px 22px; }
.pd-summary .pd-type { margin-bottom: 8px; }
.pd-summary h1 { font-size: clamp(22px, 2.4vw, 28px); line-height: 1.15; }
.pd-summary .pd-addr { margin-top: 10px; font-size: 14px; }
.pd-facts { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin: 18px 0; }
.pd-facts div { background: var(--gray-100); border-radius: var(--radius-md); padding: 12px; min-width: 0; }
.pd-facts dt { font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-500); }
.pd-facts dd { margin: 4px 0 0; font-size: 14px; font-weight: 700; display: flex; align-items: center; gap: 6px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pd-pick { border-top: 1px solid var(--gray-200); padding-top: 16px; margin-bottom: 16px; }
.pd-pick-head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 10px; }
.pd-pick-head strong { font-size: 14.5px; font-weight: 700; }
.pd-pick-head a { font-size: 12.5px; font-weight: 700; color: var(--blue-dark); }
.pd-pick-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.pd-slot { border: 1.5px solid var(--gray-200); background: #fff; border-radius: var(--radius-md); padding: 11px 10px; font-size: 13px; font-weight: 700; cursor: pointer; transition: border-color .2s ease, background .2s ease; }
.pd-slot:hover { border-color: var(--blue); }
.pd-slot.selected { border-color: var(--blue); background: var(--blue-tint); color: var(--blue-dark); box-shadow: 0 0 0 1px var(--blue); }
.pd-none { font-size: 13.5px; font-weight: 600; color: var(--gray-700); background: var(--gray-100); border-radius: var(--radius-md); padding: 14px; }
.btn-lg { padding: 17px 26px; font-size: 15.5px; }
.pd-sections { max-width: 900px; margin-top: 44px; }
.pd-block { padding: 28px 0; border-top: 1px solid var(--gray-200); scroll-margin-top: 20px; }
.pd-block + .pd-block { margin-top: 0; }
.pd-block-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 16px; }
.pd-block-head h2 { font-size: 22px; }
.pd-block-head .pd-legend { margin: 0; }
.pd-cal { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.pd-cal-cell { display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 14px; border-radius: var(--radius-md); border: 1.5px solid var(--gray-200); background: #fff; cursor: pointer; text-align: left; transition: border-color .2s ease, background .2s ease; }
.pd-cal-cell:hover:not([disabled]) { border-color: var(--blue); }
.pd-cal-cell[disabled] { cursor: default; background: var(--gray-100); border-color: transparent; }
.pd-cal-cell.selected { border-color: var(--blue); background: var(--blue-tint); box-shadow: 0 0 0 1px var(--blue); }
.pd-cal-date { font-size: 14px; font-weight: 700; }
.pd-cal-st { display: inline-flex; align-items: center; gap: 7px; font-size: 12px; font-weight: 700; color: var(--gray-700); }
.pd-map-cap { display: flex; align-items: center; gap: 6px; }
.pd-map-cap .icon { width: 14px; height: 14px; color: var(--blue); }
.pd-vicini { margin-top: 20px; }
.book-bar { display: none; }
@media (max-width: 980px) {
  .pd-hero { grid-template-columns: 1fr; gap: 18px; }
  .pd-summary { position: static; box-shadow: none; border: none; padding: 4px 0 0; }
  .pd-sections { margin-top: 20px; }
  .has-book-bar .bottom-nav, .has-book-bar .sel-pill, .has-book-bar .cmp-pill { display: none; }
  .has-book-bar { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
  .book-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 60; background: rgba(255, 255, 255, .98); backdrop-filter: blur(18px); border: 1px solid var(--gray-200); border-radius: 24px; padding: 10px 10px 10px 20px; box-shadow: var(--shadow-lift); }
  .book-bar-txt { min-width: 0; }
  .book-bar-txt small { display: block; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--gray-500); }
  .book-bar-txt strong { display: block; font-size: 14.5px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .book-bar .btn { padding: 14px 20px; flex-shrink: 0; }
  .book-bar .btn.is-on { background: var(--ink); }
}
@media (max-width: 420px) { .pd-facts dd { font-size: 12.5px; } .pd-facts div { padding: 10px; } }

@media (max-width: 480px) {
  .top-bar { gap: 6px; }
  .top-left { gap: 6px; }
  .top-bar .icon-btn { width: 46px; height: 46px; }
  .top-bar .icon-btn .icon { width: 18px; height: 18px; }
  .top-bar-actions .icon-btn.emboss-blue { margin-left: -12px; }
  .brand-mark { height: 26px; }
  .brand-name { font-size: 13.5px; }
}

/* ---------- Richiesta (checkout) ---------- */
.rq-empty { max-width: 520px; margin: 30px auto 50px; text-align: center; }
.rq-empty-ico { width: 72px; height: 72px; border-radius: 24px; background: var(--blue-tint); color: var(--blue); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 20px; }
.rq-empty-ico .icon { width: 30px; height: 30px; }
.rq-empty p { color: var(--gray-700); font-weight: 500; margin: 12px 0 24px; }
.rq-empty-actions { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }
.rq-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 22px; }
.rq-head .sec-kicker { margin-bottom: 6px; }
.rq-head h1 { font-size: clamp(26px, 3.6vw, 38px); }
.rq-grid { display: grid; grid-template-columns: minmax(0, 1fr) 360px; gap: 32px; align-items: start; }
.rq-step { display: flex; align-items: center; gap: 12px; font-size: 19px; margin: 6px 0 14px; }
.rq-step span { width: 30px; height: 30px; border-radius: 50%; background: var(--blue); color: #fff; font-size: 14px; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rq-list { display: grid; gap: 12px; margin-bottom: 34px; }
.rq-item { position: relative; background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius-lg); padding: 14px; box-shadow: var(--shadow-soft); }
.rq-item-top { display: flex; gap: 14px; align-items: center; padding-right: 36px; }
.rq-thumb { position: relative; width: 92px; height: 72px; border-radius: 14px; overflow: hidden; background: var(--blue-dark); flex-shrink: 0; }
.rq-thumb > img, .rq-thumb > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rq-thumb .ph-fmt { font-size: 15px; } .rq-thumb .ph-sub { display: none; }
.rq-item-txt { min-width: 0; }
.rq-item-txt .pd-type { font-size: 10.5px; margin-bottom: 3px; display: block; }
.rq-item-txt h3 { font-size: 15.5px; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rq-item-txt h3 a:hover { color: var(--blue-dark); }
.rq-meta { display: block; font-size: 12.5px; font-weight: 600; color: var(--gray-500); margin-top: 3px; }
.rq-x { position: absolute; top: 12px; right: 12px; width: 32px; height: 32px; border-radius: 50%; border: none; background: var(--gray-100); color: var(--gray-700); display: flex; align-items: center; justify-content: center; cursor: pointer; transition: background .2s ease, color .2s ease; }
.rq-x:hover { background: #FFE3E0; color: var(--status-hot); }
.rq-x .icon { width: 14px; height: 14px; }
.rq-fields { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 10px; margin-top: 14px; }
.rq-field { display: block; background: var(--gray-100); border-radius: var(--radius-md); padding: 8px 14px 6px; position: relative; }
.rq-field span { display: block; font-size: 10.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-500); }
.rq-field select { min-width: 0; appearance: none; -webkit-appearance: none; width: 100%; border: none; background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%231339B8' fill='none' stroke-width='1.6'/%3E%3C/svg%3E") no-repeat right 2px center; padding: 2px 18px 4px 0; font-size: 16px; font-weight: 700; color: var(--ink); cursor: pointer; outline: none; text-overflow: ellipsis; }
.rq-field:focus-within { box-shadow: 0 0 0 2px var(--blue); background: #fff; }
.rq-until { margin-top: 10px; font-size: 13px; font-weight: 600; color: var(--gray-700); }
.rq-until strong { color: var(--blue-dark); font-weight: 700; }
.rq-warn { margin-top: 12px; font-size: 13px; font-weight: 700; color: var(--status-hot); background: #FFE9E6; padding: 10px 12px; border-radius: 12px; }
.rq-card { background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius-lg); padding: 22px 22px 8px; box-shadow: var(--shadow-soft); }
.rq-card .f-check { margin-bottom: 14px; }
.tried input:invalid, .tried textarea:invalid { border-color: var(--status-hot); background: #FFF3F1; }
.tried .f-check input:invalid + * { color: var(--status-hot); }
.rq-side { position: sticky; top: 20px; }
.rq-summary { border-radius: var(--radius-xl); background: var(--ink); color: #fff; padding: 26px 24px 22px; box-shadow: var(--shadow-lift); }
.rq-summary h2 { font-size: 20px; margin-bottom: 14px; }
.rq-summary dl { margin: 0 0 20px; }
.rq-summary dl div { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid rgba(255, 255, 255, .12); font-size: 14px; }
.rq-summary dt { color: rgba(255, 255, 255, .65); font-weight: 600; }
.rq-summary dd { margin: 0; font-weight: 700; text-align: right; }
.rq-promise { list-style: none; padding: 0; margin: 18px 0 0; display: grid; gap: 9px; }
.rq-promise li { display: flex; gap: 9px; font-size: 12.5px; font-weight: 600; color: rgba(255, 255, 255, .78); }
.rq-promise .icon { width: 15px; height: 15px; color: #8FABD2; flex-shrink: 0; margin-top: 1px; }
.rq-bar { display: none; }
@media (max-width: 980px) {
  .rq-grid { grid-template-columns: minmax(0, 1fr); gap: 8px; }
  .rq-side { position: static; }
  .rq-summary .btn { display: none; }
  .has-rq-bar { padding-bottom: calc(100px + env(safe-area-inset-bottom)); }
  .rq-bar { display: flex; align-items: center; justify-content: space-between; gap: 12px; position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 60; background: rgba(255, 255, 255, .98); backdrop-filter: blur(18px); border: 1px solid var(--gray-200); border-radius: 24px; padding: 10px 10px 10px 20px; box-shadow: var(--shadow-lift); }
  .rq-bar .book-bar-txt { min-width: 0; }
  .rq-bar .book-bar-txt small { display: block; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--gray-500); }
  .rq-bar .book-bar-txt strong { display: block; font-size: 14px; font-weight: 700; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .rq-bar .btn { padding: 14px 20px; flex-shrink: 0; }
}
@media (max-width: 420px) { .rq-thumb { width: 76px; height: 62px; } .rq-fields { grid-template-columns: minmax(0, 1fr); } }

.rq-step small { font-size: 13px; font-weight: 700; color: var(--gray-500); }
.rq-me { padding-bottom: 14px; }
.rq-me-who { display: flex; align-items: center; gap: 14px; padding: 4px 0 18px; margin-bottom: 16px; border-bottom: 1px solid var(--gray-200); }
.rq-me-who .acct-avatar { width: 48px; height: 48px; font-size: 19px; }
.rq-me-who > div { flex: 1; min-width: 0; }
.rq-me-who small { display: block; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--gray-500); }
.rq-me-who strong { display: block; font-size: 16px; font-weight: 700; }
.rq-me-who > div > span { display: block; font-size: 13px; font-weight: 600; color: var(--gray-700); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.rq-me-edit { font-size: 13px; font-weight: 700; color: var(--blue-dark); flex-shrink: 0; }
.rq-login { font-size: 13px; font-weight: 600; color: var(--gray-700); margin: 0 0 14px; }
.rq-login a { color: var(--blue-dark); font-weight: 700; }

/* ---------- Preventivo ---------- */
#pv-form { max-width: 640px; margin: 0 auto; padding-bottom: 40px; }
.pv-titolo { font-size: clamp(30px, 5vw, 40px); }
.pv-riepilogo { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 10px; margin: 14px 0 6px; }
.pv-riepilogo li { display: inline-flex; align-items: center; gap: 7px; background: var(--blue-tint); color: var(--blue-dark); font-size: 13.5px; font-weight: 600; padding: 8px 14px; border-radius: var(--radius-pill); }
.pv-riepilogo .icon { width: 15px; height: 15px; color: var(--blue); flex-shrink: 0; }
.pv-step { display: flex; align-items: center; gap: 12px; font-size: 18px; margin: 34px 0 14px; }
.pv-step span { width: 28px; height: 28px; border-radius: 50%; background: var(--blue); color: #fff; font-size: 14px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.pv-lista { list-style: none; display: grid; gap: 10px; }
.pv-riga { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto; gap: 6px 16px; align-items: center; padding: 12px 16px 12px 12px; background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); }
.pv-thumb { position: relative; width: 64px; height: 64px; border-radius: 12px; overflow: hidden; background: var(--blue-dark); }
.pv-thumb > img, .pv-thumb > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.pv-thumb .ph-fmt { font-size: 11px; } .pv-thumb .ph-sub { display: none; }
.pv-info { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.pv-tipo { font-size: 16px; font-weight: 700; }
.pv-zona { display: flex; align-items: center; gap: 5px; font-size: 14px; font-weight: 500; color: var(--gray-700); }
.pv-zona .icon { width: 14px; height: 14px; color: var(--blue); flex-shrink: 0; }
.pv-azioni { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; }
.pv-dettagli { display: inline-flex; align-items: center; gap: 4px; border: none; background: none; padding: 4px 0; font-size: 13.5px; font-weight: 700; color: var(--blue); cursor: pointer; }
.pv-dettagli .icon { width: 12px; height: 12px; transition: transform .2s ease; }
.pv-dettagli[aria-expanded="true"] .icon { transform: rotate(90deg); }
.pv-rimuovi { border: none; background: none; padding: 4px 0; font-size: 13px; font-weight: 600; color: var(--gray-500); text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
.pv-rimuovi:hover { color: var(--status-hot); }
.pv-extra { grid-column: 1 / -1; border-top: 1px solid var(--gray-200); padding-top: 10px; font-size: 13.5px; color: var(--gray-700); display: grid; gap: 4px; }
.pv-extra[hidden] { display: none; }
.pv-extra a { font-weight: 700; color: var(--blue); }
@media (max-width: 480px) { .pv-riga { grid-template-columns: 56px minmax(0, 1fr); } .pv-thumb { width: 56px; height: 56px; } .pv-azioni { grid-column: 1 / -1; flex-direction: row; justify-content: space-between; border-top: 1px solid var(--gray-200); padding-top: 8px; } }
.pv-aggiungi { display: inline-flex; align-items: center; gap: 6px; margin-top: 12px; font-size: 14px; font-weight: 700; color: var(--blue); }
.pv-aggiungi .icon { width: 14px; height: 14px; }
.pv-periodo { display: grid; grid-template-columns: 1.4fr 1fr; gap: 12px; }
.pv-dati { display: grid; gap: 12px; }
.pv-campo { display: block; }
.pv-campo > span { display: block; font-size: 13px; font-weight: 600; color: var(--gray-700); margin-bottom: 6px; }
.pv-campo small { font-weight: 500; color: var(--gray-500); }
.pv-campo input, .pv-campo select, .pv-campo textarea { width: 100%; border: 1.5px solid var(--gray-200); background: #fff; border-radius: 14px; padding: 13px 16px; font-size: 16px; font-weight: 500; color: var(--ink); transition: border-color .2s ease; }
.pv-campo textarea { resize: vertical; min-height: 84px; }
.pv-campo input:focus, .pv-campo select:focus, .pv-campo textarea:focus { outline: none; border-color: var(--blue); }
.pv-invio { margin-top: 28px; }
.pv-disclaimer { margin: 0 0 18px; font-size: 12.5px; line-height: 1.55; color: var(--gray-500); }
.pv-cta { width: 100%; }
.pv-empty, .pv-done { max-width: 520px; margin: 40px auto 60px; text-align: center; }
.pv-empty[hidden] { display: none; }
.pv-empty p, .pv-done p { color: var(--gray-700); font-weight: 500; margin: 12px 0 24px; }
.pv-done-ico { width: 72px; height: 72px; border-radius: 24px; background: var(--blue-tint); color: var(--blue); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 18px; }
.pv-done-ico .icon { width: 30px; height: 30px; }
.pv-done-links { display: flex; gap: 18px; justify-content: center; align-items: center; }
.pv-link { font-weight: 700; color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }

/* ---------- Scheda impianto ---------- */
.pd-disp { text-align: center; margin: 0 0 12px; }
.pd-vicini { margin-top: 48px; }

/* ---------- Circuito ---------- */
.ci-head { margin: 4px 0 18px; }
.ci-head p { margin-top: 8px; color: var(--gray-700); font-weight: 500; max-width: 640px; }
.ci-hint { color: var(--gray-500); font-size: 14px; font-weight: 500; margin-bottom: 14px; }
.ci-cta { max-width: 520px; margin: 34px auto 10px; text-align: center; }
.ci-cta p { font-size: 13.5px; color: var(--gray-500); margin-bottom: 12px; }
.ci-griglia { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
@media (max-width: 720px) { .ci-griglia { grid-template-columns: 1fr; } }
.ci-card { display: flex; flex-direction: column; background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); overflow: hidden; transition: transform .25s var(--ease-out), box-shadow .25s ease; }
.ci-card:hover { transform: translateY(-3px); box-shadow: var(--shadow-lift); }
.ci-fan { position: relative; height: 210px; background: var(--blue); overflow: hidden; }
.ci-tess { position: absolute; bottom: -26px; left: 50%; width: 138px; height: 184px; margin-left: -69px; border-radius: 20px; overflow: hidden; border: 4px solid rgba(255, 255, 255, .9); background: var(--blue-dark); box-shadow: 0 24px 40px -12px rgba(20, 28, 53, .5); transition: transform .35s var(--ease-out); }
.ci-tess img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; filter: contrast(1.05); }
.ci-tess .glass-pill { position: absolute; left: 8px; bottom: 34px; font-size: 10px; padding: 5px 9px; }
.ci-fan-1 .ci-tess { transform: rotate(-4deg); }
.ci-fan-2 .ci-tess:nth-child(1) { transform: translateX(-46px) rotate(-10deg); }
.ci-fan-2 .ci-tess:nth-child(2) { transform: translateX(46px) rotate(9deg); z-index: 1; }
.ci-fan-3 .ci-tess:nth-child(1) { transform: translateX(-88px) rotate(-13deg); }
.ci-fan-3 .ci-tess:nth-child(2) { transform: translateY(-8px); z-index: 1; }
.ci-fan-3 .ci-tess:nth-child(3) { transform: translateX(88px) rotate(12deg); z-index: 2; }
.ci-card:hover .ci-fan-3 .ci-tess:nth-child(1) { transform: translateX(-96px) rotate(-15deg); }
.ci-card:hover .ci-fan-3 .ci-tess:nth-child(3) { transform: translateX(96px) rotate(14deg); }
.ci-piu { position: absolute; top: 12px; right: 12px; z-index: 3; background: rgba(255, 255, 255, .92); color: var(--blue-dark); font-size: 12px; font-weight: 700; padding: 5px 10px; border-radius: var(--radius-pill); }
.ci-body { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px 18px; }
.ci-body strong { font-size: 17px; font-weight: 700; }
.ci-body span { font-size: 14px; color: var(--gray-700); }
.ci-body em { font-style: normal; font-size: 13px; font-weight: 600; color: var(--blue); margin-top: 4px; }

/* ---------- Menu principale ---------- */
.site-nav { display: block; background: transparent; position: sticky; top: 0; z-index: 70; transition: background 0.54s ease, box-shadow 0.54s ease, backdrop-filter 0.54s ease; }
.site-nav.is-stuck, .nm-bar.is-stuck { background: rgba(255,255,255,.86); -webkit-backdrop-filter: saturate(1.6) blur(14px); backdrop-filter: saturate(1.6) blur(14px); box-shadow: 0 10px 30px -18px rgba(30,43,78,.35); }
.sn-in { display: flex; align-items: center; justify-content: space-between; gap: 16px; height: 80px; }
.sn-side { display: flex; align-items: center; gap: 10px; }
.sn-side .btn { white-space: nowrap; }
.sn-round { position: relative; width: 46px; height: 46px; border-radius: 50%; background: var(--gray-100); color: var(--ink); display: inline-flex; align-items: center; justify-content: center; transition: background 0.36s ease; }
.sn-round:hover { background: var(--gray-200); }
.sn-round .icon { width: 20px; height: 20px; }
.sn-round .account-ini { font-size: 15px; font-weight: 700; }
.sn-burger { width: 46px; height: 46px; border: none; border-radius: 50%; background: var(--ink); color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: transform 0.36s var(--ease-out), background 0.36s ease; }
.sn-burger:hover { background: var(--blue); transform: scale(1.06); }
.sn-burger .icon { width: 21px; height: 21px; stroke-width: 2.2; }
.top-wrap, .bottom-nav { display: none; }
@media (max-width: 600px) { .sn-cta { display: none; } .sn-in { height: 68px; } }

/* Menu a piena pagina */
.nav-menu { position: fixed; inset: 0; z-index: 120; background: #fff; display: flex; flex-direction: column; opacity: 0; transition: opacity 0.4s ease; }
.nav-menu[hidden] { display: none; }
.nav-menu.is-on { opacity: 1; }
.nm-bar { flex: none; background: #fff; padding-top: env(safe-area-inset-top); position: relative; z-index: 3; transition: background 0.54s ease, box-shadow 0.54s ease; }
.nm-scroll { flex: 1; overflow-y: auto; display: flex; flex-direction: column; }
.nm-top { display: grid; grid-template-columns: 1fr 1fr; }
.nm-feat { position: relative; overflow: hidden; display: flex; align-items: center; gap: 18px; min-height: 112px; padding: 22px clamp(24px, 3.4vw, 56px); transition: background 0.54s ease; }
.nm-feat-ico { display: flex; flex: none; align-items: center; justify-content: center; width: 40px; height: 40px; }
.nm-feat-ico .icon, .nm-feat-ico .ai { width: 36px; height: 36px; }
.nm-wizard .nm-feat-ico { color: #fff; }
.nm-mappa .nm-feat-ico { color: var(--blue); }
.nm-feat-txt { position: relative; flex: 1; min-width: 0; }
.nm-feat-txt strong { display: block; font-size: clamp(24px, 2.4vw, 32px); font-weight: 600; letter-spacing: -.03em; line-height: 1.1; }
.nm-feat-txt small { display: block; margin-top: 6px; font-size: 14px; font-weight: 500; line-height: 1.35; }
.nm-feat-go { position: relative; flex: none; display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; border-radius: 50%; transition: transform 0.54s var(--ease-spring); }
.nm-feat-go .icon { width: 22px; height: 22px; }
.nm-feat:hover .nm-feat-go { transform: translateX(6px); }
.nm-wizard { background: var(--blue); color: #fff; }
.nm-wizard:hover { background: #2c5a9d; }
.nm-wizard small { color: rgba(255,255,255,.82); }
.nm-wizard .nm-feat-go { background: #fff; color: var(--blue); }
.nm-mappa { background: #DCE2EB; color: var(--ink); }
.nm-mappa:hover { background: #cfd7e4; }
.nm-mappa small { color: var(--gray-700); }
.nm-mappa .nm-feat-go { background: var(--ink); color: #fff; }
.nm-cols { flex: 1; display: grid; grid-template-columns: repeat(3, 1fr); }
.nm-sec { --acc: #3466AE; position: relative; overflow: hidden; padding: clamp(36px, 5vw, 72px) clamp(24px, 3.4vw, 56px) 56px; }
.nm-zona { --acc: #64B989; background: #F5F6F8; }
.nm-circuito { --acc: #fff; background: #1E2B4E; color: #fff; }
.nm-wm { position: absolute; top: -30px; right: -50px; width: 340px; height: auto; fill: var(--acc); opacity: .1; pointer-events: none; }
.nm-circuito .nm-wm { fill: #64B989; opacity: .16; }
.nm-title { position: relative; font-weight: 600; margin-bottom: 36px; }
.nm-title button { display: flex; align-items: center; gap: 16px; width: 100%; text-align: left; border: none; background: none; padding: 0; color: inherit; font: inherit; cursor: default; }
.nm-tx { flex: 1; min-width: 0; }
.nm-ai { flex: none; width: clamp(44px, 4.2vw, 58px); height: clamp(44px, 4.2vw, 58px); color: var(--acc); }
.nm-ai .ai { width: 100%; height: 100%; stroke-width: 1.6; }
.nm-zona .nm-ai { color: #64B989; }
.nm-name { display: block; font-size: clamp(48px, 5vw, 64px); font-weight: 600; letter-spacing: -.035em; line-height: 1; }
.nm-prodotto .nm-name { color: var(--acc); }
.nm-verb { display: block; margin-top: 10px; font-size: 14px; font-weight: 600; letter-spacing: .02em; color: var(--gray-500); }
.nm-circuito .nm-verb { color: rgba(255,255,255,.66); }
.nm-plus { display: none; }
.nm-body { position: relative; }
.nm-empty { font-size: 15px; color: var(--gray-500); }
.nm-circuito .nm-empty { color: rgba(255,255,255,.66); }
.nm-all { display: inline-flex; align-items: center; gap: 8px; margin-top: 34px; font-size: 14px; font-weight: 700; color: var(--ink); }
.nm-all .icon { width: 15px; height: 15px; transition: transform 0.45s var(--ease-out); }
.nm-all:hover .icon { transform: translateX(4px); }
.nm-circuito .nm-all { color: #fff; }
/* Prodotto: griglia con respiro */
.nm-cats { list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: 30px 28px; }
.nm-cat { display: inline-block; font-size: 20px; font-weight: 700; letter-spacing: -.015em; color: var(--ink); transition: transform 0.45s var(--ease-out), color 0.36s ease; }
.nm-cat:hover { transform: translateX(8px); color: var(--acc); }
.nm-subs { list-style: none; margin-top: 6px; }
.nm-subs a { display: inline-block; padding: 3px 0; font-size: 14px; font-weight: 500; color: var(--gray-700); transition: transform 0.45s var(--ease-out), color 0.36s ease; }
.nm-subs a:hover { transform: translateX(6px); color: var(--acc); }
/* Zona: il numero pesa quanto il nome */
.nm-zone { list-style: none; }
.nm-zone a { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--gray-200); font-size: 30px; font-weight: 600; letter-spacing: -.025em; line-height: 1.15; transition: transform 0.45s var(--ease-out); }
.nm-zone b { font-weight: 700; color: var(--acc); font-variant-numeric: tabular-nums; }
.nm-zone a:hover { transform: translateX(8px); }
/* Circuito: la fotografia fa il lavoro del testo */
.nm-circ { display: flex; flex-direction: column; gap: 24px; }
.nm-cc { display: block; }
.nm-cc-img { position: relative; display: block; min-height: 360px; aspect-ratio: 4 / 5; border-radius: 0; overflow: hidden; background: rgba(255,255,255,.08); }
.nm-cc-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.08s var(--ease-out); }
.nm-cc:hover .nm-cc-img img { transform: scale(1.05); }
.nm-cc-img::after { content: ''; position: absolute; inset: 40% 0 0; background: linear-gradient(to top, rgba(30,43,78,.9), transparent); }
.nm-cc-img strong { position: absolute; left: 22px; right: 22px; bottom: 20px; z-index: 1; font-size: 24px; font-weight: 700; letter-spacing: -.02em; line-height: 1.15; }
.nm-cc small { display: block; margin-top: 12px; font-size: 13.5px; font-weight: 600; color: rgba(255,255,255,.72); }
.nm-badge { position: static; display: inline-flex; vertical-align: middle; box-shadow: none; }

/* Telefono: sezioni impilate, accordion (una aperta alla volta) */
@media (max-width: 980px) {
  .nm-top { grid-template-columns: 1fr; }
  .nm-feat { min-height: 92px; padding: 18px var(--gutter); }
  .nm-cols { display: block; }
  .nm-sec { padding: 0 var(--gutter); border-bottom: 1px solid var(--gray-200); }
  .nm-circuito { border-bottom: 0; }
  .nm-wm { width: 200px; top: -20px; right: -30px; }
  .nm-title { margin: 0; }
  .nm-title button { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 26px 0; cursor: pointer; }
  .nm-name { font-size: 48px; }
  .nm-verb { display: none; }
  .nm-plus { display: block; width: 26px; height: 26px; flex: none; transition: transform 0.45s var(--ease-out); }
  .nm-sec.open .nm-plus { transform: rotate(45deg); }
  .nm-body { display: none; padding-bottom: 32px; }
  .nm-sec.open .nm-body { display: block; }
  .nm-cats { gap: 24px 18px; }
  .nm-zone a { font-size: 26px; }
  .nm-cc-img { min-height: 0; aspect-ratio: 4 / 4.4; }
  .nm-all { margin-top: 26px; }
}
@media (max-width: 420px) { .nm-cats { grid-template-columns: 1fr; } }
html.nav-lock, html.nav-lock body { overflow: hidden; }

/* footer blu scuro */
.site-foot { text-align: left; background: var(--blue-dark); color: rgba(255, 255, 255, .78); margin-top: 60px; padding: 44px 0 26px; font-size: 14px; font-weight: 500; }
.site-foot a { color: rgba(255, 255, 255, .85); }
.site-foot a:hover { color: #fff; }
.sf-in { display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 32px; }
.sf-brand { display: flex; flex-direction: column; gap: 6px; }
.sf-brand strong, .sf-nav strong { color: #fff; font-size: 15px; font-weight: 700; }
.sf-nav { display: flex; flex-direction: column; gap: 8px; }
.site-foot .sf-nav { display: flex; flex-direction: column; flex-wrap: nowrap; justify-content: flex-start; align-items: flex-start; gap: 8px; margin-top: 0; }
.sf-copy { max-width: var(--maxw); margin: 28px auto 0; padding: 18px var(--gutter) 0; border-top: 1px solid rgba(255, 255, 255, .14); font-size: 12.5px; color: rgba(255, 255, 255, .55); }
@media (max-width: 720px) { .sf-in { grid-template-columns: 1fr; } .site-foot { padding-bottom: 110px; } }

/* Pianifica (ingresso ai percorsi) */
.pf-head { margin: 8px 0 26px; }
.pf-head p { margin-top: 8px; color: var(--gray-700); font-weight: 500; }
.pf-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 14px; }
.pf-box { background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius-lg); padding: 18px 20px; box-shadow: var(--shadow-soft); display: flex; flex-direction: column; gap: 4px; }
.pf-main { display: flex; justify-content: space-between; align-items: center; font-size: 16px; padding-bottom: 6px; }
.pf-main .icon { width: 16px; height: 16px; color: var(--blue); }
.pf-sub { font-size: 14px; font-weight: 500; color: var(--gray-700); padding: 4px 0 4px 12px; border-left: 2px solid var(--gray-200); }
.pf-sub:hover, .pf-main:hover { color: var(--blue); }
.pf-tre { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.pf-opt { position: relative; display: flex; flex-direction: column; gap: 8px; min-height: 240px; justify-content: flex-end; background: var(--blue); color: #fff; border-radius: var(--radius-xl); padding: 26px; box-shadow: var(--shadow-soft); transition: transform 0.45s var(--ease-out); }
.pf-opt:hover { transform: translateY(-3px); }
.pf-opt strong { font-size: 24px; }
.pf-opt > span:not(.pf-ico) { color: rgba(255, 255, 255, .85); font-weight: 500; font-size: 15px; }
.pf-ico { position: absolute; top: 24px; left: 26px; width: 48px; height: 48px; border-radius: 16px; background: rgba(255, 255, 255, .16); display: flex; align-items: center; justify-content: center; }
.pf-opt > .icon { position: absolute; top: 28px; right: 26px; width: 20px; height: 20px; }
@media (max-width: 860px) { .pf-tre { grid-template-columns: 1fr; } .pf-opt { min-height: 170px; } }

/* ---------- Home ---------- */
.hm-hero { text-align: center; padding: clamp(40px, 8vw, 96px) 0 clamp(32px, 6vw, 64px); background: var(--gray-100); border-radius: var(--radius-xl); margin-top: 6px; }
.hm-hero h1 { font-size: clamp(38px, 7vw, 72px); letter-spacing: -0.03em; line-height: 1.04; }
.hm-hero h1 span { display: block; }
.hm-hero h1 span:last-child { color: var(--blue); }
.hm-sub { max-width: 520px; margin: 18px auto 0; font-size: 17px; font-weight: 500; color: var(--gray-700); }
.hm-cta { display: flex; flex-direction: column; align-items: center; gap: 14px; margin-top: 28px; }
.hm-link { font-size: 14.5px; font-weight: 700; color: var(--blue); text-decoration: underline; text-underline-offset: 3px; }
.hm-stats { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; margin: 40px 0 0; text-align: center; }
.hm-stats strong { display: block; font-size: clamp(30px, 5vw, 48px); font-weight: 700; color: var(--blue-dark); letter-spacing: -0.02em; line-height: 1.1; }
.hm-stats span { font-size: 14px; font-weight: 500; color: var(--gray-500); }
.hm-sec { margin-top: clamp(48px, 7vw, 88px); }
.hm-sec > h2 { font-size: clamp(26px, 3.6vw, 34px); margin-bottom: 22px; }
.hm-steps { list-style: none; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.hm-steps li { background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius-lg); padding: 22px 20px; }
.hm-steps li > span { display: inline-flex; width: 32px; height: 32px; border-radius: 50%; background: var(--blue); color: #fff; font-size: 15px; font-weight: 700; align-items: center; justify-content: center; margin-bottom: 14px; }
.hm-steps strong { display: block; font-size: 16.5px; margin-bottom: 6px; }
.hm-steps p { font-size: 14px; font-weight: 500; color: var(--gray-700); }
.hm-ev-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.hm-ev-head h2 { font-size: clamp(26px, 3.6vw, 34px); }
@media (max-width: 860px) { .hm-steps { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .hm-steps { grid-template-columns: 1fr; } .hm-stats { gap: 8px; } }

/* ---------- Wizard ---------- */
.pf-prog { display: flex; align-items: center; gap: 12px; margin: 4px 0 14px; font-size: 13px; font-weight: 600; color: var(--gray-500); }
.pf-dots { display: inline-flex; gap: 5px; }
.pf-dots i { width: 8px; height: 8px; border-radius: 50%; background: var(--gray-200); }
.pf-dots i.fatto { background: var(--blue); opacity: .45; }
.pf-dots i.ora { background: var(--blue); }
.pf-cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 12px; }
.pf-cat { position: relative; display: flex; flex-direction: column; gap: 4px; padding: 20px; background: #fff; border: 1px solid var(--gray-200); border-radius: var(--radius-lg); box-shadow: var(--shadow-soft); transition: transform 0.36s var(--ease-out), border-color 0.36s ease; }
.pf-cat:hover { transform: translateY(-2px); border-color: var(--blue); }
.pf-cat strong { font-size: 16.5px; font-weight: 700; }
.pf-cat small { font-size: 13px; font-weight: 500; color: var(--gray-500); }
.pf-cat-ico { width: 42px; height: 42px; border-radius: 14px; background: var(--blue-tint); color: var(--blue); display: flex; align-items: center; justify-content: center; margin-bottom: 10px; }
.pf-cat-ico .icon { width: 20px; height: 20px; }
.pf-cat > .icon { position: absolute; top: 22px; right: 20px; width: 16px; height: 16px; color: var(--blue); }
.pf-cat-tutte { background: var(--blue-tint); border-color: transparent; }
.pf-back { margin-top: 18px; font-size: 14px; font-weight: 700; }
.pf-back a, .pf-alt a { color: var(--blue); }
.pf-zona { display: grid; gap: 12px; max-width: 460px; }
.pf-conta { margin: 18px 0 14px; font-size: 16px; color: var(--gray-700); }
.pf-conta strong { font-size: 26px; color: var(--blue-dark); }
.pf-avanti { min-width: 220px; }
.pf-avanti.is-off { opacity: .4; pointer-events: none; }
.pf-alt { margin-top: 18px; font-size: 14px; font-weight: 700; }
.pf-alt .icon { width: 15px; height: 15px; margin-right: 6px; vertical-align: -2px; }
.pf-imp { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.pf-map { height: 300px; border-radius: var(--radius-xl); overflow: hidden; background: #F4F6FA; position: relative; }
.pf-cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 640px) { .pf-cards { grid-template-columns: 1fr; } }
@media (min-width: 981px) {
  .pf-imp { grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr); gap: 24px; align-items: start; }
  .pf-map-col { position: sticky; top: 96px; }
  .pf-map { height: calc(100vh - 130px); min-height: 420px; }
}
.pf-mese { border: none; margin-bottom: 22px; }
.pf-mese legend { font-size: 15px; font-weight: 700; margin-bottom: 10px; }
.pf-pillole { display: flex; flex-wrap: wrap; gap: 8px; }
.pf-per input { position: absolute; opacity: 0; pointer-events: none; }
.pf-per span { display: flex; flex-direction: column; gap: 2px; padding: 11px 16px; border: 1.5px solid var(--gray-200); background: #fff; border-radius: 14px; font-size: 14px; font-weight: 600; cursor: pointer; transition: border-color 0.36s ease, background 0.36s ease; }
.pf-per span small { font-size: 12px; font-weight: 500; color: var(--gray-500); }
.pf-per:hover span { border-color: var(--blue); }
.pf-per input:checked + span { background: var(--blue); border-color: var(--blue); color: #fff; }
.pf-per input:checked + span small { color: rgba(255, 255, 255, .8); }
.pf-per input:focus-visible + span { outline: 2.5px solid var(--blue); outline-offset: 2px; }
.pf-sel-txt { margin: 18px 0 12px; font-size: 14px; font-weight: 600; color: var(--gray-700); }
.sel-pill.is-sticky .sel-pill-x { display: none; }
.pv-periodi { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; }
.pv-periodi li { background: var(--blue-tint); color: var(--blue-dark); font-size: 14px; font-weight: 600; padding: 9px 14px; border-radius: var(--radius-pill); }
.pv-link { font-size: 14px; }
.pf-page { padding-bottom: 110px; }

/* ---------- Catalogo: titolo, vista, righe, pannello filtri (stesso linguaggio del menu) ---------- */
.cg-page { padding-bottom: 40px; }
.cg-bar { position: sticky; top: 80px; z-index: 40; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 10px 0; margin-top: 4px; background: rgba(255,255,255,.9); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.cg-filter-btn { position: relative; width: 52px; height: 52px; }
.cg-filter-btn .icon { width: 23px; height: 23px; }
.cg-filter-n { position: absolute; top: -3px; right: -3px; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 10px; background: #64B989; color: #1E2B4E; font-size: 11.5px; font-weight: 700; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 2px #fff; }
.cg-seg { display: flex; gap: 26px; }
.cg-seg a { padding: 8px 0; font-size: 15px; font-weight: 700; color: var(--gray-500); border-bottom: 3px solid transparent; transition: color 0.36s ease, border-color 0.36s ease; }
.cg-seg a:hover { color: var(--ink); }
.cg-seg a.on { color: var(--ink); border-bottom-color: var(--blue); }
.cg-head { margin: 22px 0 34px; }
.cg-head h1 { font-size: clamp(40px, 6vw, 72px); font-weight: 600; letter-spacing: -.035em; line-height: 1.02; }
.cg-count { margin-top: 12px; display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px 14px; font-size: 18px; font-weight: 600; }
.cg-count strong { font-size: 18px; color: var(--blue); }
.cg-count span { font-size: 14px; font-weight: 600; color: var(--gray-500); }
.cg-reset { display: inline-block; margin-top: 10px; font-size: 13.5px; font-weight: 700; color: var(--ink); text-decoration: underline; text-underline-offset: 3px; }
.cg-reset:hover { color: var(--blue); }
.cg-grid.cg-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 520px) { .cg-grid.cg-grid-2 { grid-template-columns: 1fr; } }
/* Elenco */
.cg-rows { display: flex; flex-direction: column; }
.cg-row { display: grid; grid-template-columns: 148px minmax(0, 1fr) auto; align-items: center; gap: 22px; padding: 18px 0; border-bottom: 1px solid var(--gray-200); }
.cg-row:first-child { border-top: 1px solid var(--gray-200); }
.cg-row-img { position: relative; display: block; width: 148px; height: 112px; overflow: hidden; background: var(--gray-100); border-radius: 12px; }
.cg-row-img .ph-fmt { font-size: 22px; }
.cg-row-img .ph-sub { font-size: 8.5px; }
.cg-row-img img, .cg-row-img .ph { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--ease-out); }
.cg-row:hover .cg-row-img img { transform: scale(1.06); }
.cg-row-top { display: flex; align-items: center; gap: 10px; margin-bottom: 6px; }
.cg-row-fmt { font-size: 11.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--blue); }
.cg-row-body h3 { font-size: 20px; font-weight: 700; letter-spacing: -.02em; line-height: 1.2; }
.cg-row-body h3 a:hover { color: var(--blue); }
.cg-row-body p { margin-top: 3px; font-size: 14px; font-weight: 500; color: var(--gray-700); }
.cg-row-tags { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-top: 8px; font-size: 12.5px; font-weight: 600; color: var(--gray-700); }
.cg-row-tags span { display: inline-flex; align-items: center; gap: 6px; }
.cg-row-tags i { width: 5px; height: 5px; border-radius: 50%; background: #64B989; }
.cg-row-act { display: flex; align-items: center; gap: 10px; }
.cg-row .cg-add { background: var(--gray-100); border-color: transparent; color: var(--ink); backdrop-filter: none; }
.cg-row .cg-add:hover { background: var(--gray-200); }
.cg-row .cg-add.is-on { background: var(--blue); color: #fff; }
.cg-row-go { width: 44px; height: 44px; border-radius: 50%; background: var(--ink); color: #fff; display: flex; align-items: center; justify-content: center; transition: transform 0.45s var(--ease-spring), background 0.36s ease; }
.cg-row-go:hover { background: var(--blue); transform: translateX(3px); }
.cg-row-go .icon { width: 17px; height: 17px; }
@media (max-width: 760px) {
  .cg-row { grid-template-columns: 96px minmax(0, 1fr); gap: 14px; }
  .cg-row-img { width: 96px; height: 96px; }
  .cg-row-body h3 { font-size: 17px; }
  .cg-row-act { grid-column: 1 / -1; justify-content: space-between; }
  .cg-row-act .cg-add { flex: 1; justify-content: center; }
}
/* Pannello filtri */
.fp { position: fixed; inset: 0; z-index: 130; }
.fp[hidden] { display: none; }
.fp-scrim { position: absolute; inset: 0; background: rgba(30,43,78,.5); opacity: 0; transition: opacity 0.4s ease; }
.fp-panel { position: absolute; top: 0; right: 0; bottom: 0; width: min(540px, 100%); background: #fff; display: flex; flex-direction: column; transform: translateX(32px); opacity: 0; transition: transform 0.5s var(--ease-out), opacity 0.4s ease; }
.fp.is-on .fp-scrim { opacity: 1; }
.fp.is-on .fp-panel { transform: none; opacity: 1; }
.fp-head { display: flex; align-items: center; justify-content: space-between; padding: calc(16px + env(safe-area-inset-top)) 28px 12px; }
.fp-head strong { font-size: 28px; font-weight: 600; letter-spacing: -.03em; }
.fp-body { flex: 1; overflow-y: auto; padding: 8px 28px 32px; }
.fp-sec { --acc: #3466AE; --on: #fff; margin-top: 26px; padding-top: 18px; border-top: 4px solid var(--acc); }
.fp-green { --acc: #64B989; --on: #1E2B4E; }
.fp-sec h2 { font-size: 40px; font-weight: 600; letter-spacing: -.035em; line-height: 1; margin-bottom: 16px; }
.fp-sec h3 { margin: 18px 0 10px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500); }
.fp-group { margin-top: 14px; }
.fp-subs, .fp-wrap { display: flex; flex-wrap: wrap; gap: 8px; }
.fp-subs { margin: 8px 0 0 18px; }
.fp-sec > .fp-opt { display: inline-block; margin-bottom: 4px; }
.fp-opt { position: relative; display: inline-block; cursor: pointer; }
.fp-opt input { position: absolute; opacity: 0; inset: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; }
.fp-opt span { display: inline-flex; align-items: baseline; gap: 8px; padding: 10px 16px; border: 2px solid var(--gray-200); font-size: 15px; font-weight: 600; transition: background 0.27s ease, border-color 0.27s ease, color 0.27s ease; }
.fp-opt small { font-size: 12px; font-weight: 700; opacity: .55; }
.fp-main span { font-size: 18px; font-weight: 700; letter-spacing: -.01em; }
.fp-opt:hover span { border-color: var(--acc); }
.fp-opt input:checked + span { background: var(--acc); border-color: var(--acc); color: var(--on); }
.fp-opt input:focus-visible + span { outline: 2.5px solid var(--ink); outline-offset: 2px; }
.fp-check { display: flex; align-items: center; gap: 12px; margin-top: 30px; font-size: 15px; font-weight: 600; cursor: pointer; }
.fp-check input { width: 20px; height: 20px; accent-color: var(--blue); }
.fp-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 16px 28px calc(16px + env(safe-area-inset-bottom)); background: #fff; box-shadow: 0 -14px 24px -18px rgba(30,43,78,.3); }
.fp-clear { font-size: 14.5px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.fp-foot .btn { padding: 15px 32px; }
@media (max-width: 980px) { .cg-bar { top: 68px; } }

/* Icone animate (header e menu): SVG inline, loop leggero, niente se l'utente riduce il movimento */
.ai { width: 1em; height: 1em; fill: none; stroke: currentColor; stroke-width: 1.9; stroke-linecap: round; stroke-linejoin: round; overflow: visible; flex: none; }
.ai * { transform-box: fill-box; }
.sn-round .ai { width: 21px; height: 21px; }
.sn-burger .ai { width: 22px; height: 22px; stroke-width: 2.3; }
.sn-cta { gap: 8px; }
.sn-cta .icon { width: 16px; height: 16px; fill: currentColor; stroke: none; }
.ai-burger .l1 { transform-origin: 100% 50%; animation: aiLine 7.36s ease-in-out infinite; }
.ai-burger .l2 { transform-origin: 0 50%; animation: aiLine 7.36s ease-in-out infinite 0.8s; }
.ai-burger .l3 { transform-origin: 100% 50%; animation: aiLine 7.36s ease-in-out infinite 1.61s; }
.sn-burger:hover .ai-burger * { animation-duration: 2.07s; }
@keyframes aiLine { 0%, 62%, 100% { transform: scaleX(1); } 30% { transform: scaleX(.5); } }
.ai-search .ring { transform-origin: 50% 50%; opacity: 0; animation: aiRing 6.44s ease-out infinite; }
.ai-search .handle { transform-origin: 0 0; }
.sn-round:hover .ai-search .handle { animation: aiWiggle 1.15s ease-in-out 2; }
@keyframes aiRing { 0% { opacity: .55; transform: scale(1); } 70%, 100% { opacity: 0; transform: scale(1.7); } }
@keyframes aiWiggle { 0%, 100% { transform: rotate(0); } 50% { transform: rotate(14deg); } }
.ai-user .head { animation: aiBob 5.98s ease-in-out infinite; }
.ai-user .torso { transform-origin: 50% 100%; animation: aiBreath 5.98s ease-in-out infinite; }
@keyframes aiBob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-1.4px); } }
@keyframes aiBreath { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.06); } }
.ai-prodotto .b { transform-origin: 50% 50%; animation: aiPop 5.98s ease-in-out infinite; }
.ai-prodotto .b2 { animation-delay: 0.51s; } .ai-prodotto .b4 { animation-delay: 1.01s; } .ai-prodotto .b3 { animation-delay: 1.52s; }
@keyframes aiPop { 0%, 55%, 100% { transform: scale(1); fill: transparent; } 25% { transform: scale(.78); fill: currentColor; fill-opacity: .3; } }
.ai-zona .pin { animation: aiHop 4.37s ease-in-out infinite; }
.ai-zona .shadow { fill: currentColor; fill-opacity: .3; stroke: none; transform-origin: 50% 50%; animation: aiShadow 1.9s ease-in-out infinite; }
.ai-zona .wave { transform-origin: 50% 50%; opacity: 0; animation: aiWave 4.37s ease-out infinite; }
@keyframes aiHop { 0%, 100% { transform: translateY(0); } 40% { transform: translateY(-3px); } }
@keyframes aiShadow { 0%, 100% { transform: scale(1); } 40% { transform: scale(.6); } }
@keyframes aiWave { 0%, 30% { opacity: 0; transform: scale(.6); } 40% { opacity: .7; } 100% { opacity: 0; transform: scale(2.6); } }
.ai-circuito .route { stroke-dasharray: 2.2 3; animation: aiDash 2.99s linear infinite; }
.ai-circuito .n { transform-origin: 50% 50%; animation: aiNode 4.14s ease-in-out infinite; }
.ai-circuito .n2 { animation-delay: 2.07s; }
@keyframes aiDash { to { stroke-dashoffset: -10.4; } }
@keyframes aiNode { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.25); } }
@media (prefers-reduced-motion: reduce) { .ai *, .spark-main, .spark-mini { animation: none !important; } }

/* Menu: fascia delle altre pagine */
.nm-pages { background: #EEF1F6; padding: 46px 0 calc(44px + env(safe-area-inset-bottom)); }
.nm-pages-in { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px clamp(24px, 3.4vw, 56px); }
.nm-pages h3 { margin-bottom: 10px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500); }
.nm-pages a { display: block; width: fit-content; padding: 5px 0; font-size: 20px; font-weight: 600; letter-spacing: -.015em; color: var(--ink); transition: transform 0.45s var(--ease-out), color 0.36s ease; }
.nm-pages a:hover { transform: translateX(8px); color: var(--blue); }
.nm-pages .nm-badge { display: inline-flex; vertical-align: middle; }
@media (max-width: 980px) { .nm-pages-in { grid-template-columns: 1fr; } .nm-pages a { font-size: 18px; } }

/* Card "In evidenza" (home) */
.ev-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.ev-card { background: #fff; border: 1px solid var(--gray-200); border-radius: 10px; overflow: hidden; transition: transform 0.36s ease, box-shadow 0.36s ease; }
.ev-link { display: block; }
.ev-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--gray-100); }
.ev-media > img, .ev-media > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 0.36s ease; }
.ev-media::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 42%; background: linear-gradient(to bottom, transparent, rgba(0,0,0,.72)); pointer-events: none; }
.ev-pill { position: absolute; top: 12px; z-index: 2; padding: 5px 12px; border-radius: 999px; font-size: 11.5px; font-weight: 700; line-height: 1.2; white-space: nowrap; }
.ev-cat { left: 12px; background: rgba(255,255,255,.95); color: var(--ink); }
.ev-ed { right: 12px; background: #64B989; color: #1E2B4E; }
.ev-name { position: absolute; left: 16px; right: 16px; bottom: 14px; z-index: 2; color: #fff; font-size: 19px; font-weight: 600; letter-spacing: -.01em; line-height: 1.22; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ev-body { padding: 14px 16px 16px; }
.ev-spec { display: flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; letter-spacing: -.005em; color: var(--ink); }
.ev-bulb { width: 16px; height: 16px; color: var(--blue); }
.ev-loc { display: flex; align-items: center; gap: 6px; margin-top: 4px; font-size: 13px; font-weight: 500; color: var(--gray-500); }
.ev-loc .icon { width: 13px; height: 13px; }
@media (hover: hover) {
  .ev-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lift); }
  .ev-card:hover .ev-media > img, .ev-card:hover .ev-media > .ph { transform: scale(1.03); }
}
@media (max-width: 1023px) { .ev-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) { .ev-grid { grid-template-columns: 1fr; } .ev-media { aspect-ratio: 16 / 10; } .ev-loc { display: none; } }

/* ================= Home: stesso linguaggio del menu (piena larghezza, angoli vivi, colori reali) ================= */
.hp-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.hp-h2 { font-size: clamp(40px, 6.2vw, 88px); font-weight: 600; letter-spacing: -.04em; line-height: 1; }
.hp-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; flex-wrap: wrap; margin-bottom: clamp(28px, 4vw, 48px); }
.hp-link { display: inline-flex; align-items: center; gap: 8px; font-size: 15px; font-weight: 700; color: var(--ink); transition: color 0.36s ease; }
.hp-link .icon { width: 16px; height: 16px; transition: transform 0.45s var(--ease-out); }
.hp-link:hover { color: var(--blue); }
.hp-link:hover .icon { transform: translateX(5px); }
.hp-link-w { color: #fff; } .hp-link-w:hover { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.hp-sec { padding: clamp(56px, 8vw, 120px) 0; }
.hp-sec-tight { padding-bottom: 0; }
.hp-ai { display: inline-block; width: clamp(48px, 5vw, 68px); height: clamp(48px, 5vw, 68px); }
.hp-ai .ai { width: 100%; height: 100%; stroke-width: 1.6; }
.hp-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; margin-top: 36px; }
.btn-light { background: #fff; color: var(--blue); }
.btn-light:hover { background: var(--blue-tint); transform: translateY(-2px); }

/* Hero */
.hp-hero { position: relative; overflow: hidden; padding: clamp(48px, 8vw, 120px) 0 clamp(56px, 8vw, 112px); }
.hp-hero .nm-wm { top: 50%; right: -4%; width: min(62vw, 720px); transform: translateY(-50%); fill: var(--blue); opacity: .07; }
.hp-hero-in { position: relative; }
.hp-kicker { display: inline-flex; align-items: center; gap: 12px; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); margin-bottom: 26px; }
.hp-kicker span { width: 34px; height: 3px; background: #64B989; }
.hp-hero h1 { font-size: clamp(60px, 11.5vw, 168px); font-weight: 600; letter-spacing: -.05em; line-height: .92; }
.hp-hero h1 span { display: block; }
.hp-hero h1 .b { color: var(--blue); }
.hp-lead { max-width: 560px; margin-top: 30px; font-size: clamp(17px, 1.6vw, 21px); line-height: 1.5; font-weight: 500; color: var(--gray-700); }

/* Numeri */
.hp-stats { background: var(--ink); color: #fff; }
.hp-stats-in { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 28px; padding-top: clamp(36px, 5vw, 64px); padding-bottom: clamp(36px, 5vw, 64px); }
.hp-stats dt { font-size: clamp(48px, 6.5vw, 96px); font-weight: 600; letter-spacing: -.045em; line-height: 1; font-variant-numeric: tabular-nums; }
.hp-stats dd { margin-top: 8px; font-size: 14.5px; font-weight: 600; color: rgba(255,255,255,.7); }

/* Tre modi per iniziare */
.hp-ways { display: grid; grid-template-columns: repeat(3, 1fr); }
.hp-way { --acc: #fff; position: relative; overflow: hidden; display: flex; flex-direction: column; padding: clamp(36px, 5vw, 72px) clamp(24px, 3.4vw, 56px); min-height: 640px; }
.hp-prodotto { background: #3466AE; color: #fff; }
.hp-zona { background: #64B989; color: #1E2B4E; }
.hp-circuito { background: #1E2B4E; color: #fff; }
.hp-way .nm-wm { fill: currentColor; opacity: .09; }
.hp-way > * { position: relative; }
.hp-way .nm-wm { position: absolute; }
.hp-way-top { display: flex; align-items: center; gap: 16px; }
.hp-verb { font-size: 14px; font-weight: 700; letter-spacing: .02em; opacity: .8; }
.hp-way h3 { margin-top: 26px; font-size: clamp(52px, 5.4vw, 80px); font-weight: 600; letter-spacing: -.04em; line-height: 1; }
.hp-way p { margin-top: 16px; max-width: 420px; font-size: 17px; line-height: 1.5; font-weight: 500; opacity: .92; }
.hp-way ul { list-style: none; margin: 30px 0 34px; }
.hp-way li a { display: flex; align-items: baseline; justify-content: space-between; gap: 14px; padding: 8px 0; font-size: 22px; font-weight: 600; letter-spacing: -.02em; transition: transform 0.45s var(--ease-out); }
.hp-way li a:hover { transform: translateX(8px); }
.hp-way li b { font-weight: 700; font-variant-numeric: tabular-nums; }
.hp-go { display: inline-flex; align-items: center; gap: 12px; margin-top: auto; align-self: flex-start; padding: 16px 26px; background: #fff; color: #3466AE; font-size: 15px; font-weight: 700; transition: transform 0.45s var(--ease-out), background 0.36s ease; }
.hp-zona .hp-go { background: #1E2B4E; color: #fff; }
.hp-circuito .hp-go { color: #1E2B4E; }
.hp-go .icon { width: 17px; height: 17px; transition: transform 0.45s var(--ease-out); }
.hp-go:hover .icon { transform: translateX(5px); }
.hp-go-ink { background: #1E2B4E; color: #fff; margin-top: 30px; }

/* Percorso guidato */
.hp-guide { background: #EEF1F6; }
.hp-guide-in { display: flex; align-items: center; gap: clamp(20px, 3.4vw, 48px); padding-top: clamp(44px, 6vw, 80px); padding-bottom: clamp(44px, 6vw, 80px); }
.hp-guide-ico { flex: none; width: clamp(64px, 8vw, 110px); height: clamp(64px, 8vw, 110px); color: var(--blue); }
.hp-guide-ico .icon { width: 100%; height: 100%; }
.hp-guide h2 { font-size: clamp(32px, 4.4vw, 60px); font-weight: 600; letter-spacing: -.035em; line-height: 1.05; }
.hp-guide p { max-width: 620px; margin-top: 12px; font-size: 17px; line-height: 1.5; font-weight: 500; color: var(--gray-700); }
.hp-guide .btn { flex: none; margin-left: auto; }

/* Come funziona */
.hp-steps { list-style: none; display: grid; grid-template-columns: repeat(4, 1fr); gap: 0 clamp(20px, 3vw, 44px); margin-top: clamp(32px, 5vw, 64px); }
.hp-steps li { padding-top: 22px; border-top: 4px solid var(--blue); }
.hp-steps li:nth-child(2) { border-top-color: #64B989; }
.hp-steps li:nth-child(3) { border-top-color: #1E2B4E; }
.hp-steps b { display: block; font-size: clamp(72px, 8vw, 120px); font-weight: 600; letter-spacing: -.05em; line-height: .9; color: var(--blue); }
.hp-steps li:nth-child(2) b { color: #64B989; } .hp-steps li:nth-child(3) b { color: #1E2B4E; }
.hp-steps strong { display: block; margin-top: 20px; font-size: 22px; font-weight: 700; letter-spacing: -.02em; }
.hp-steps p { margin-top: 8px; font-size: 15.5px; line-height: 1.5; color: var(--gray-700); font-weight: 500; }

/* Mosaico dei formati */
.hp-mosaic { display: grid; grid-template-columns: repeat(4, 1fr); gap: 4px; }
.hp-tile { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; background: var(--ink); color: #fff; }
.hp-tile > img, .hp-tile > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.08s var(--ease-out); }
.hp-tile:hover > img, .hp-tile:hover > .ph { transform: scale(1.06); }
.hp-tile::after { content: ''; position: absolute; inset: 35% 0 0; background: linear-gradient(to top, rgba(30,43,78,.92), transparent); }
.hp-tile-txt { position: absolute; left: 22px; right: 22px; bottom: 20px; z-index: 2; }
.hp-tile-txt strong { display: block; font-size: clamp(22px, 2.2vw, 30px); font-weight: 600; letter-spacing: -.03em; line-height: 1.1; }
.hp-tile-txt small { display: block; margin-top: 4px; font-size: 13px; font-weight: 600; opacity: .8; }

/* Dove */
.hp-where { position: relative; overflow: hidden; background: #64B989; color: #1E2B4E; padding: clamp(56px, 8vw, 120px) 0; }
.hp-where .nm-wm { fill: #1E2B4E; opacity: .08; left: -40px; right: auto; top: -60px; width: 420px; }
.hp-where-in { position: relative; display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(32px, 6vw, 96px); align-items: start; }
.hp-where .hp-ai { margin-bottom: 18px; }
.hp-where p { max-width: 440px; margin-top: 20px; font-size: 18px; line-height: 1.5; font-weight: 500; }
.hp-zone { list-style: none; }
.hp-zone a { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid rgba(30,43,78,.22); font-size: clamp(26px, 3vw, 40px); font-weight: 600; letter-spacing: -.03em; line-height: 1.15; transition: transform 0.45s var(--ease-out); }
.hp-zone a:hover { transform: translateX(8px); }
.hp-zone b { font-weight: 700; font-variant-numeric: tabular-nums; }
.hp-zone .sub a { font-size: clamp(19px, 2vw, 26px); font-weight: 600; padding: 10px 0; }

/* Circuiti */
.hp-circ { position: relative; overflow: hidden; background: #1E2B4E; color: #fff; padding: clamp(56px, 8vw, 120px) 0; }
.hp-circ .nm-wm { fill: #64B989; opacity: .14; right: -60px; top: -40px; width: 380px; }
.hp-circ .container { position: relative; }
.hp-circ .hp-ai { display: block; margin-bottom: 14px; }
.hp-circ .hp-link { color: #fff; } .hp-circ .hp-link:hover { color: #64B989; }
.hp-circ-p { max-width: 520px; margin: -14px 0 34px; font-size: 18px; line-height: 1.5; font-weight: 500; color: rgba(255,255,255,.75); }
.hp-circ-grid .nm-circ { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 28px; }
.hp-circ-grid .nm-cc-img { aspect-ratio: 4 / 5; min-height: 0; }

/* In evidenza: card piatte */
.ev-grid { gap: clamp(20px, 2.4vw, 36px); }
.ev-card { background: none; border: 0; border-radius: 0; overflow: visible; }
.ev-media { aspect-ratio: 4 / 3; border-radius: 0; }
.ev-media::after { display: none; }
.ev-pill { top: 0; left: 0; right: auto; border-radius: 0; padding: 8px 14px; font-size: 11.5px; letter-spacing: .06em; text-transform: uppercase; }
.ev-ed { background: #64B989; color: #1E2B4E; }
.ev-go { position: absolute; right: 0; bottom: 0; z-index: 2; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; background: var(--ink); color: #fff; transition: background 0.36s ease, width 0.45s var(--ease-out); }
.ev-go .icon { width: 19px; height: 19px; }
.ev-body { padding: 18px 0 0; }
.ev-cat { display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); margin-bottom: 8px; }
.ev-name { position: static; color: var(--ink); font-size: clamp(20px, 1.8vw, 24px); font-weight: 600; letter-spacing: -.025em; line-height: 1.2; -webkit-line-clamp: 2; }
.ev-spec { margin-top: 10px; font-size: 16px; }
.ev-loc { margin-top: 6px; font-size: 14px; }
@media (hover: hover) {
  .ev-card:hover { transform: none; box-shadow: none; }
  .ev-card:hover .ev-go { background: var(--blue); width: 64px; }
  .ev-card:hover .ev-name { color: var(--blue); }
}

/* Strumenti */
.hp-tools { background: #EEF1F6; padding: clamp(56px, 8vw, 120px) 0; }
.hp-tools-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(20px, 2.4vw, 36px); margin-top: clamp(32px, 5vw, 56px); }
.hp-tools-grid a { display: flex; flex-direction: column; background: #fff; padding: 30px 26px 26px; color: var(--ink); transition: background 0.36s ease, color 0.36s ease; }
.hp-tools-grid .hp-ai { width: 52px; height: 52px; color: var(--blue); margin-bottom: 26px; }
.hp-tools-grid strong { font-size: 22px; font-weight: 700; letter-spacing: -.02em; line-height: 1.2; }
.hp-tools-grid p { margin-top: 10px; font-size: 15px; line-height: 1.5; font-weight: 500; color: var(--gray-700); }
.hp-tools-grid em { display: inline-flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 26px; font-style: normal; font-size: 14.5px; font-weight: 700; color: var(--blue); }
.hp-tools-grid em .icon { width: 15px; height: 15px; transition: transform 0.45s var(--ease-out); }
.hp-tools-grid a:hover { background: var(--blue); color: #fff; }
.hp-tools-grid a:hover p, .hp-tools-grid a:hover em, .hp-tools-grid a:hover .hp-ai { color: #fff; }
.hp-tools-grid a:hover em .icon { transform: translateX(5px); }

/* Chiusura */
.hp-final { position: relative; overflow: hidden; background: #3466AE; color: #fff; padding: clamp(64px, 10vw, 150px) 0; }
.hp-final .nm-wm { fill: #fff; opacity: .09; right: -2%; top: 50%; transform: translateY(-50%); width: min(52vw, 560px); }
.hp-final-in { position: relative; }
.hp-final h2 { font-size: clamp(48px, 9vw, 130px); font-weight: 600; letter-spacing: -.045em; line-height: .96; max-width: 900px; }
.hp-final p { max-width: 520px; margin-top: 24px; font-size: 19px; line-height: 1.5; font-weight: 500; opacity: .9; }

@media (max-width: 1023px) {
  .hp-ways { grid-template-columns: 1fr; }
  .hp-way { min-height: 0; }
  .hp-go { margin-top: 10px; }
  .hp-steps { grid-template-columns: repeat(2, 1fr); gap: 36px 28px; }
  .hp-mosaic { grid-template-columns: repeat(2, 1fr); }
  .hp-where-in { grid-template-columns: 1fr; }
  .hp-tools-grid { grid-template-columns: repeat(2, 1fr); }
  .hp-guide-in { flex-wrap: wrap; }
  .hp-guide .btn { margin-left: 0; }
}
@media (max-width: 560px) {
  .hp-steps, .hp-tools-grid { grid-template-columns: 1fr; }
  .hp-guide-in { flex-direction: column; align-items: flex-start; }
  .hp-hero .nm-wm { width: 100vw; right: -30%; }
}

/* Ricerca a schermo: stesso linguaggio (piatta, angoli vivi) */
.sn-round { border: none; cursor: pointer; }
.gsearch { background: rgba(30,43,78,.5); }
.gsearch-inner { border-radius: 0; box-shadow: none; max-height: 90vh; padding: calc(28px + env(safe-area-inset-top)) var(--gutter) 40px; }
.gsearch-bar { border-radius: 0; background: #EEF1F6; padding: 20px 24px; gap: 16px; }
.gsearch-bar .icon { width: 24px; height: 24px; color: var(--ink); }
.gsearch-input { font-size: clamp(20px, 3vw, 32px); font-weight: 600; letter-spacing: -.02em; }
.gsearch-close { width: 40px; height: 40px; align-items: center; justify-content: center; background: var(--ink); color: #fff; border-radius: 50%; }
.gsearch-close .icon { width: 18px; height: 18px; color: #fff; }
.gsearch-row { border-radius: 0; padding: 14px 10px; }
.gsearch-row-ico { width: 40px; height: 40px; border-radius: 0; background: var(--blue); color: #fff; }
.gsearch-row-txt strong { font-size: 18px; font-weight: 600; letter-spacing: -.02em; }
.gsearch-group-label { font-size: 12px; letter-spacing: .1em; margin: 22px 4px 8px; }

/* Icone animate aggiuntive */
.ai-calendario .cell { fill: currentColor; animation: aiBlink 5.52s ease-in-out infinite; }
@keyframes aiBlink { 0%, 100% { opacity: .15; } 50% { opacity: 1; } }
.ai-confronta .c { transform-origin: 50% 100%; animation: aiGrow 5.52s ease-in-out infinite; }
.ai-confronta .c2 { animation-delay: 2.76s; }
@keyframes aiGrow { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(.55); } }

.is-home .site-foot { margin-top: 0; }

/* =============== Home v2: composizione, movimento, gerarchia =============== */
/* Rivelazione allo scroll */
.rv-on [data-rv]:not(.in) { opacity: 0; transform: translateY(32px); }
.rv-on [data-rv].in { animation: rvIn 2.07s var(--ease-out) backwards; animation-delay: var(--d, 0s); }
@keyframes rvIn { from { opacity: 0; transform: translateY(32px); } }

/* Eyebrow numerato: dà gerarchia a ogni sezione */
.hp-eye { display: flex; align-items: center; gap: 14px; margin-bottom: 18px; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--blue); }
.hp-eye b { padding-right: 14px; border-right: 2px solid currentColor; color: #64B989; font-weight: 700; letter-spacing: .04em; }
.hp-eye-w, .hp-where .hp-eye, .hp-circ .hp-eye { color: inherit; }
.hp-circ .hp-eye b, .hp-final .hp-eye b { color: #64B989; }
.hp-final .hp-eye b { color: #fff; }
.hp-where .hp-eye b { color: #1E2B4E; }

/* Hero: testo + composizione del marchio */
.hp-hero { padding: clamp(40px, 6vw, 88px) 0 clamp(48px, 7vw, 96px); }
.hp-hero-in { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr); align-items: center; gap: clamp(24px, 4vw, 64px); }
.hp-hero h1 { font-size: clamp(54px, 8.6vw, 136px); line-height: .95; letter-spacing: -.05em; }
.hp-hero h1 .w { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.hp-hero h1 .w i { display: block; font-style: normal; animation: wUp 2.3s var(--ease-out) backwards; }
.hp-hero h1 .w:nth-child(2) i { animation-delay: 0.28s; } .hp-hero h1 .w:nth-child(3) i { animation-delay: 0.55s; }
.hp-hero h1 u { text-decoration: none; color: #64B989; }
@keyframes wUp { from { transform: translateY(105%); } }
.hp-kicker, .hp-lead, .hp-cta, .hp-trust { animation: fadeUp 2.07s var(--ease-out) backwards; }
.hp-kicker { animation-delay: 0s; } .hp-lead { animation-delay: 0.92s; } .hp-cta { animation-delay: 1.15s; } .hp-trust { animation-delay: 1.38s; }
@keyframes fadeUp { from { opacity: 0; transform: translateY(18px); } }
.hp-trust { list-style: none; display: flex; flex-wrap: wrap; gap: 10px 26px; margin-top: 34px; }
.hp-trust li { display: inline-flex; align-items: center; gap: 9px; font-size: 14px; font-weight: 600; color: var(--gray-700); }
.hp-trust .icon { width: 18px; height: 18px; padding: 3px; border-radius: 50%; background: #64B989; color: #fff; stroke-width: 3; }
.hp-mag { transform: translate(var(--mx, 0), var(--my, 0)); transition: transform 0.45s var(--ease-out), background 0.36s ease, box-shadow 0.45s ease; }
.hp-vis { position: relative; width: 100%; max-width: 560px; aspect-ratio: 1; justify-self: end; }
.hp-disc { position: absolute; inset: 7%; border-radius: 50%; background: var(--blue-tint); animation: discIn 2.76s var(--ease-out) backwards 0.23s; }
@keyframes discIn { from { transform: scale(.4); opacity: 0; } }
.hp-ring { position: absolute; inset: 0; width: 100%; height: 100%; fill: none; stroke: var(--blue); stroke-opacity: .35; stroke-width: .6; stroke-dasharray: 2 5; stroke-linecap: round; animation: spin 60s linear infinite; }
.hp-ring2 { inset: 13%; width: 74%; height: 74%; stroke: #64B989; stroke-opacity: .7; stroke-dasharray: 1 8; animation-direction: reverse; animation-duration: 96.6s; }
@keyframes spin { to { transform: rotate(360deg); } }
.hp-mark { position: absolute; left: 24%; top: 25%; width: 52%; height: auto; animation: floaty 16.1s ease-in-out infinite 3.68s; overflow: visible; }
.mk * { transform-box: fill-box; }
.mk-a { animation: mkA 2.53s var(--ease-out) backwards 0.46s; }
.mk-b { animation: mkB 2.53s var(--ease-out) backwards 0.92s; }
.mk-c { animation: mkC 2.3s var(--ease-spring) backwards 2.07s; }
@keyframes mkA { from { opacity: 0; transform: translate(-46px, 60px); } }
@keyframes mkB { from { opacity: 0; transform: translate(46px, -40px); } }
@keyframes mkC { from { opacity: 0; transform: translateY(40px) scale(.6); } }
@keyframes floaty { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-14px) rotate(1.5deg); } }
.hp-chip { position: absolute; display: flex; flex-direction: column; padding: 12px 18px 12px 16px; background: #fff; border-left: 4px solid var(--blue); box-shadow: 0 18px 30px -18px rgba(30,43,78,.45); animation: chipIn 1.84s var(--ease-out) backwards, bob 11.5s ease-in-out infinite; }
.hp-chip strong { font-size: 16px; font-weight: 700; letter-spacing: -.02em; line-height: 1.15; }
.hp-chip small { font-size: 12px; font-weight: 600; color: var(--gray-500); margin-top: 2px; }
.hp-chip1 { left: -2%; top: 14%; animation-delay: 2.53s, 4.37s; }
.hp-chip2 { right: -3%; top: 46%; border-left-color: #64B989; animation-delay: 2.99s, 5.98s; }
.hp-chip3 { left: 6%; bottom: 8%; border-left-color: var(--ink); animation-delay: 3.45s, 7.36s; }
@keyframes chipIn { from { opacity: 0; transform: translateY(24px); } }
@keyframes bob { 0%, 100% { translate: 0 0; } 50% { translate: 0 -8px; } }

/* Striscia scorrevole */
.hp-marq { overflow: hidden; background: #fff; padding: 22px 0; }
.hp-marq-track { display: flex; width: max-content; animation: marq 138s linear infinite; }
.hp-marq:hover .hp-marq-track { animation-play-state: paused; }
.hp-marq-set { display: flex; align-items: center; gap: 30px; padding-right: 30px; }
.hp-marq-set span { font-size: clamp(34px, 5vw, 64px); font-weight: 600; letter-spacing: 0; color: transparent; -webkit-text-stroke: 1.5px var(--ink); white-space: nowrap; transition: color 0.36s ease; }
.hp-marq-set span:hover { color: var(--ink); }
.hp-marq-set svg { width: clamp(22px, 2.6vw, 34px); height: clamp(22px, 2.6vw, 34px); flex: none; fill: #64B989; animation: spin 9s linear infinite; }
@keyframes marq { to { transform: translateX(-50%); } }

/* Tre modi: intro + colonne che si allargano */
.hp-ways-wrap { padding-top: clamp(56px, 8vw, 120px); }
.hp-intro { margin-bottom: clamp(28px, 4vw, 52px); }
.hp-intro-p { max-width: 560px; margin-top: 18px; font-size: 18px; line-height: 1.5; font-weight: 500; color: var(--gray-700); }
@media (min-width: 1024px) {
  .hp-ways { display: flex; }
  .hp-way { flex: 1 1 0; min-width: 0; transition: flex-grow 1.08s var(--ease-out); }
  .hp-ways:hover .hp-way { flex-grow: .85; }
  .hp-ways .hp-way:hover { flex-grow: 1.35; }
}
.hp-way li a .icon { width: 18px; height: 18px; flex: none; opacity: 0; transform: translateX(-10px); transition: opacity 0.36s ease, transform 0.45s var(--ease-out); align-self: center; }
.hp-way li a:hover .icon { opacity: 1; transform: none; }
.hp-way .nm-wm { translate: 0 var(--py, 0px); }
.hp-way:hover .hp-ai .ai * { animation-duration: 1.84s; }

/* Mosaico: numero, freccia, velo */
.hp-tile-n { position: absolute; top: 18px; left: 20px; z-index: 2; font-size: 14px; font-weight: 700; letter-spacing: .08em; color: #fff; opacity: .85; }
.hp-tile-go { position: absolute; right: 0; bottom: 0; z-index: 3; width: 52px; height: 52px; display: flex; align-items: center; justify-content: center; background: #64B989; color: #1E2B4E; transform: translate(100%, 0); transition: transform 0.54s var(--ease-out); }
.hp-tile-go .icon { width: 20px; height: 20px; }
.hp-tile:hover .hp-tile-go { transform: none; }
.hp-tile::before { content: ''; position: absolute; inset: 0; z-index: 1; background: #3466AE; mix-blend-mode: multiply; opacity: 0; transition: opacity 0.54s ease; }
.hp-tile:hover::before { opacity: .55; }

/* Processo: barre che si riempiono */
.hp-steps li { border-top: 0; position: relative; padding-top: 26px; }
.hp-steps li::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 4px; background: var(--blue); transform-origin: left; animation: barIn 2.53s var(--ease-out) backwards 0.69s; }
.hp-steps li:nth-child(2)::before { background: #64B989; } .hp-steps li:nth-child(3)::before { background: #1E2B4E; }
@keyframes barIn { from { transform: scaleX(0); } }

/* Zone / circuiti: forme in parallasse */
.hp-where .nm-wm, .hp-circ .nm-wm { translate: 0 var(--py, 0px); }

/* In evidenza: card da catalogo con aggiunta rapida */
.ev-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 560px) { .ev-grid-2 { grid-template-columns: 1fr; } }
.ev-card { position: relative; }
.ev-go { display: none; }
.ev-more { position: absolute; left: 0; right: 0; bottom: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; padding: 14px 18px; background: var(--ink); color: #fff; font-size: 14px; font-weight: 700; transform: translateY(101%); transition: transform 0.54s var(--ease-out); }
.ev-more .icon { width: 17px; height: 17px; }
.ev-add { position: absolute; top: 12px; right: 12px; z-index: 4; width: 44px; height: 44px; border: 0; border-radius: 50%; background: #fff; color: var(--ink); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 8px 18px -8px rgba(30,43,78,.5); transition: transform 0.45s var(--ease-spring), background 0.36s ease, color 0.36s ease; }
.ev-add .icon { width: 20px; height: 20px; stroke-width: 2.4; }
.ev-add:hover { transform: scale(1.1); background: var(--blue); color: #fff; }
.ev-add .when-on { display: none; } .ev-add.is-on .when-on { display: block; } .ev-add.is-on .when-off { display: none; }
.ev-add.is-on { background: #64B989; color: #1E2B4E; }
.ev-fmt { font-size: 18px; font-weight: 700; letter-spacing: -.02em; }
.ev-lit { display: inline-flex; align-items: center; justify-content: center; width: 28px; height: 28px; border-radius: 50%; background: rgba(100,185,137,.22); color: #2f8d5c; }
.ev-bulb { width: 15px; height: 15px; color: currentColor; animation: glow 5.98s ease-in-out infinite; }
@keyframes glow { 0%, 100% { opacity: .7; } 50% { opacity: 1; filter: drop-shadow(0 0 4px rgba(100,185,137,.9)); } }
.ev-pill { top: 12px; left: 12px; }
.ev-media > img, .ev-media > .ph { transition: transform 1.08s var(--ease-out); }
@media (hover: hover) {
  .ev-card:hover .ev-more { transform: none; }
  .ev-card:hover .ev-media > img, .ev-card:hover .ev-media > .ph { transform: scale(1.05); }
  .ev-card:hover .ev-go { display: none; }
}
@media (hover: none) { .ev-more { display: none; } }

/* Domande frequenti */
.hp-faq { display: grid; grid-template-columns: 1fr 1.3fr; gap: clamp(28px, 6vw, 96px); align-items: start; }
.hp-faq-list details { border-bottom: 1px solid var(--gray-200); }
.hp-faq-list details:first-child { border-top: 1px solid var(--gray-200); }
.hp-faq-list summary { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 24px 0; list-style: none; cursor: pointer; font-size: clamp(19px, 2vw, 24px); font-weight: 600; letter-spacing: -.02em; }
.hp-faq-list summary::-webkit-details-marker { display: none; }
.hp-faq-list summary .icon { width: 26px; height: 26px; flex: none; color: var(--blue); transition: transform 0.54s var(--ease-out); }
.hp-faq-list details[open] summary .icon { transform: rotate(45deg); }
.hp-faq-list details[open] summary { color: var(--blue); }
.hp-faq-list details p { padding: 0 48px 26px 0; font-size: 16.5px; line-height: 1.55; font-weight: 500; color: var(--gray-700); animation: fadeUp 0.92s var(--ease-out); }

/* Chiusura: marchio grande */
.hp-final-mark { position: absolute; right: 4%; top: 50%; width: min(40vw, 480px); height: auto; translate: 0 calc(-50% + var(--py, 0px)); opacity: .95; }
.hp-final .nm-wm { display: none; }
.hp-final-in { z-index: 1; }
.hp-final-mark .mk-a { fill: #fff; } .hp-final-mark .mk-b { fill: rgba(255,255,255,.55); } .hp-final-mark .mk-c { fill: #64B989; }
.hp-final-mark { animation: floaty 18.4s ease-in-out infinite; }

/* Footer: payoff */
.sf-pay { display: block; margin-top: 14px; font-style: normal; font-size: 17px; font-weight: 600; letter-spacing: -.01em; color: #fff; }

@media (max-width: 1023px) {
  .hp-hero-in { grid-template-columns: 1fr; }
  .hp-vis { max-width: 360px; justify-self: center; }
  .hp-faq { grid-template-columns: 1fr; }
  .hp-final-mark { opacity: .18; width: 70vw; right: -10%; }
}
@media (max-width: 560px) { .hp-chip { padding: 9px 13px 9px 12px; } .hp-chip strong { font-size: 13.5px; } .hp-chip small { font-size: 11px; } .hp-faq-list details p { padding-right: 0; } }
@media (prefers-reduced-motion: reduce) {
  .hp-hero h1 .w i, .hp-kicker, .hp-lead, .hp-cta, .hp-trust, .hp-disc, .hp-ring, .hp-mark, .mk *, .hp-chip, .hp-marq-track, .hp-marq-set svg, .hp-steps li::before, .ev-bulb, .hp-final-mark { animation: none !important; }
  .rv-on [data-rv]:not(.in) { opacity: 1; transform: none; }
}


/* ================= Correzione di rotta: piatto, angoli vivi, movimento lento ================= */
.sn-round, .sn-burger, .ev-add, .nm-feat-go, .cg-row-go, .gsearch-close, .cg-filter-n, .ev-lit, .ns-close, .hp-trust .icon { border-radius: 0; }
.cg-row-img { border-radius: 0; }
.btn { box-shadow: none; }
.btn-primary:hover, .btn-light:hover { transform: none; box-shadow: none; }
.btn-primary:hover { background: var(--ink); }
.btn-light:hover { background: var(--ink); color: #fff; }
.btn .icon:last-child { width: 17px; height: 17px; transition: transform .6s var(--ease-out); }
.btn:hover .icon:last-child { transform: translateX(5px); }
.sn-burger:hover { transform: none; }

/* Hero: tipografico, calmo */
.hp-hero { position: relative; overflow: hidden; padding: clamp(56px, 8vw, 128px) 0 clamp(64px, 9vw, 136px); }
.hp-hero .nm-wm { top: 50%; right: -6%; width: min(58vw, 760px); transform: translateY(-50%); fill: var(--blue); opacity: .06; }
.hp-hero-in { display: block; position: relative; }
.hp-hero h1 { font-size: clamp(64px, 12.5vw, 196px); line-height: .92; letter-spacing: -.055em; font-weight: 600; }
.hp-hero h1 .w i { animation: wUp 1.8s cubic-bezier(.16, 1, .3, 1) backwards; }
.hp-hero h1 .w:nth-child(2) i { animation-delay: .3s; } .hp-hero h1 .w:nth-child(3) i { animation-delay: .6s; }
.hp-kicker { animation: fadeUp 1.6s cubic-bezier(.16, 1, .3, 1) backwards; }
.hp-hero-foot { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 28px 64px; margin-top: clamp(36px, 5vw, 72px); }
.hp-lead { margin: 0; max-width: 500px; animation: fadeUp 1.6s cubic-bezier(.16, 1, .3, 1) backwards 1s; }
.hp-hero-foot .hp-cta { margin: 0; animation: fadeUp 1.6s cubic-bezier(.16, 1, .3, 1) backwards 1.2s; }

/* Rivelazione allo scroll: più lenta e più sobria */
.rv-on [data-rv]:not(.in) { transform: translateY(18px); }
.rv-on [data-rv].in { animation: rvIn 1.6s cubic-bezier(.16, 1, .3, 1) backwards; animation-delay: var(--d, 0s); }
@keyframes rvIn { from { opacity: 0; transform: translateY(18px); } }
.hp-steps li::before { animation-duration: 2.4s; }
.hp-ways, .hp-way { --slow: 1; }
@media (min-width: 1024px) { .hp-way { transition: flex-grow 1.1s cubic-bezier(.16, 1, .3, 1); } }

/* Chiusura: senza marchio animato */
.hp-final .nm-wm { display: block; fill: #fff; opacity: .08; right: -4%; left: auto; top: 50%; transform: translateY(-50%); width: min(50vw, 600px); }
.hp-eye b:empty { display: none; }


/* ================= Hero impaginata + rifinitura ================= */
/* Spigolo minimo (2px) solo su bottoni, campi e badge; tutto il resto resta a filo */
.btn, .sn-round, .sn-burger, .ev-add, .cg-row-go, .nm-feat-go, .gsearch-close, .ev-pill, .cg-filter-n { border-radius: 2px; }
input:not([type="checkbox"]):not([type="radio"]):not([type="range"]), select, textarea { border-radius: 2px; }

.hp-hero { padding: 0; overflow: hidden; }
.hp-hero .nm-wm { display: none; }
.hp-hero-in { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); align-items: stretch; gap: 0; max-width: none; padding: 0; }
.hp-hero-txt { display: flex; flex-direction: column; justify-content: center; padding: clamp(56px, 7vw, 112px) clamp(32px, 4vw, 72px) clamp(56px, 7vw, 112px) max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter))); position: relative; z-index: 1; }
.hp-hero h1 { font-size: clamp(56px, 8.4vw, 136px); line-height: .94; }
.hp-hero .hp-lead { margin-top: clamp(24px, 3vw, 40px); max-width: 480px; animation: fadeUp 1.6s cubic-bezier(.16, 1, .3, 1) backwards 1s; }
.hp-hero .hp-cta { margin-top: clamp(26px, 3vw, 40px); }
.hp-photo { position: relative; display: block; min-height: 600px; background: var(--ink); overflow: hidden; clip-path: polygon(14% 0, 100% 0, 100% 100%, 0 100%); animation: photoIn 2.4s cubic-bezier(.16, 1, .3, 1) backwards .3s; }
.hp-photo > img, .hp-photo > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; animation: photoZoom 3.2s cubic-bezier(.16, 1, .3, 1) backwards .3s; transition: transform 1.6s cubic-bezier(.16, 1, .3, 1); }
.hp-photo:hover > img { transform: scale(1.04); }
@keyframes photoIn { from { clip-path: polygon(100% 0, 100% 0, 100% 100%, 100% 100%); } }
@keyframes photoZoom { from { transform: scale(1.12); } }
.hp-cap { position: absolute; left: 14%; bottom: 0; z-index: 2; display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 4px 20px; max-width: min(86%, 440px); padding: 18px 22px; background: #fff; color: var(--ink); animation: fadeUp 1.6s cubic-bezier(.16, 1, .3, 1) backwards 1.6s; }
.hp-cap small { grid-column: 1; font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); }
.hp-cap strong { grid-column: 1; font-size: 15.5px; font-weight: 600; letter-spacing: -.01em; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hp-cap .icon { grid-column: 2; grid-row: 1 / span 2; width: 38px; height: 38px; padding: 10px; background: var(--ink); color: #fff; transition: transform .8s cubic-bezier(.16, 1, .3, 1), background .5s ease; }
.hp-photo:hover .hp-cap .icon { transform: translateX(6px); background: var(--blue); }
@media (max-width: 1023px) {
  .hp-hero-in { grid-template-columns: 1fr; }
  .hp-hero-txt { padding: clamp(40px, 8vw, 72px) var(--gutter) 40px; }
  .hp-photo { min-height: 0; aspect-ratio: 4 / 3; clip-path: none; animation: none; }
  .hp-cap { left: 0; max-width: 92%; }
}
@media (min-width: 1024px) { .hp-hero-in { min-height: min(780px, calc(100vh - 80px)); } .hp-photo { min-height: 0; } }


/* ================= Catalogo v2: testata, barra strumenti, elenco, paginazione ================= */
.cg-hero { position: relative; overflow: hidden; background: var(--ink); color: #fff; padding: clamp(44px, 6vw, 88px) 0 clamp(40px, 5vw, 72px); }
.cg-hero .nm-wm { fill: #64B989; opacity: .14; right: -2%; left: auto; top: 50%; transform: translateY(-50%); width: min(46vw, 520px); }
.cg-hero-in { position: relative; }
.cg-hero .hp-eye { color: rgba(255,255,255,.75); }
.cg-hero h1 { font-size: clamp(48px, 8.5vw, 132px); font-weight: 600; letter-spacing: -.05em; line-height: .96; animation: fadeUp 1.6s cubic-bezier(.16, 1, .3, 1) backwards; }
.cg-count { margin-top: 18px; display: flex; align-items: baseline; gap: 10px; font-size: 20px; font-weight: 600; color: #fff; }
.cg-count strong { font-size: 20px; color: #64B989; }
.cg-count span { margin-left: 8px; font-size: 15px; font-weight: 600; color: rgba(255,255,255,.65); }
.cg-tags { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-top: 26px; }
.cg-tags a { display: inline-flex; align-items: center; gap: 10px; padding: 10px 14px; border: 1.5px solid rgba(255,255,255,.4); font-size: 14px; font-weight: 600; color: #fff; transition: background .5s ease, border-color .5s ease, color .5s ease; }
.cg-tags a .icon { width: 13px; height: 13px; stroke-width: 2.6; }
.cg-tags a:hover { background: #fff; border-color: #fff; color: var(--ink); }
.cg-tags .cg-tags-all { border-color: transparent; text-decoration: underline; text-underline-offset: 4px; padding-left: 6px; }
.cg-tags .cg-tags-all:hover { background: none; color: #64B989; }
/* Barra strumenti */
.cg-bar { top: 80px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 20px; margin-top: 0; padding: 14px 0; background: rgba(255,255,255,.94); }
.cg-filter { position: relative; display: inline-flex; align-items: center; gap: 12px; height: 50px; padding: 0 22px; border: 0; border-radius: 2px; background: var(--ink); color: #fff; font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; transition: background .5s ease; }
.cg-filter:hover { background: var(--blue); }
.cg-filter .icon { width: 20px; height: 20px; }
.cg-filter .cg-filter-n { position: static; box-shadow: none; margin-left: 2px; }
.cg-range { font-size: 14px; font-weight: 600; color: var(--gray-500); }
.cg-page { padding-top: 0; padding-bottom: 72px; }
.cg-page > .ev-grid, .cg-page > .cg-rows { margin-top: clamp(24px, 3vw, 40px); }
/* Elenco a righe */
.cg-row { grid-template-columns: 200px minmax(0, 1fr) auto; gap: 28px; padding: 22px 0; transition: background .6s ease; }
.cg-row-img { width: 200px; height: 140px; border-radius: 0; }
.cg-row-fmt { letter-spacing: .08em; }
.cg-row-body h3 { font-size: clamp(20px, 2vw, 26px); font-weight: 600; letter-spacing: -.025em; }
.cg-row-body p { font-size: 15px; margin-top: 6px; }
.cg-row-act .cg-add { border-radius: 2px; padding: 12px 18px; }
.cg-row-go { width: 48px; height: 48px; }
@media (max-width: 760px) { .cg-row { grid-template-columns: 110px minmax(0, 1fr); gap: 16px; } .cg-row-img { width: 110px; height: 110px; } .cg-bar { grid-template-columns: auto 1fr; } .cg-range { display: none; } .cg-seg { justify-self: end; } }
/* Paginazione piatta */
.paginazione { justify-content: flex-start; gap: 4px; margin: 56px 0 0; }
.pag-num, .pag-btn, .pag-gap { border-radius: 2px; height: 48px; min-width: 48px; font-size: 14.5px; font-weight: 700; }
.pag-num, .pag-btn { background: var(--gray-100); transition: background .5s ease, color .5s ease; }
.pag-num:hover, .pag-btn:hover { background: var(--ink); color: #fff; }
.pag-num.is-on { background: var(--ink); color: #fff; }
.cg-empty { padding: 80px 0; font-size: 16px; }
.cg-empty strong { font-size: 28px; font-weight: 600; letter-spacing: -.03em; }

/* ================= Catalogo: stessa hero della home + vista Mappa a tutto schermo ================= */
.cg-hero.hp-hero { background: none; color: var(--ink); padding: 0; }
.cg-hero.hp-hero .hp-hero-in { min-height: min(520px, calc(100vh - 80px)); }
.cg-hero .hp-hero-txt { padding-top: clamp(40px, 5vw, 80px); padding-bottom: clamp(40px, 5vw, 80px); }
.cg-hero h1 { font-size: clamp(48px, 7.6vw, 120px); line-height: .95; letter-spacing: -.05em; font-weight: 600; margin-top: 0; }
.cg-hero .cg-count { margin-top: 22px; color: var(--ink); }
.cg-hero .cg-count strong { color: var(--blue); }
.cg-hero .cg-count span { color: var(--gray-500); }
.cg-hero .cg-tags a { border-color: rgba(30,43,78,.25); color: var(--ink); }
.cg-hero .cg-tags a:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.cg-hero .cg-tags .cg-tags-all { border-color: transparent; color: var(--ink); }
.cg-hero .cg-tags .cg-tags-all:hover { background: none; color: var(--blue); }
.cg-hero .hp-photo { min-height: 0; }
.cg-bar { top: 80px; }

/* Vista Mappa: a tutto schermo, pannello a sinistra e mappa a destra */
.is-map .site-foot { display: none; }
.mv { display: grid; grid-template-columns: 440px minmax(0, 1fr); grid-template-rows: auto minmax(0, 1fr); grid-template-areas: "head map" "list map"; height: calc(100dvh - 80px); min-height: 560px; background: #fff; }
.mv-head { grid-area: head; padding: 26px 28px 18px; }
.mv-head .hp-eye { margin-bottom: 10px; }
.mv-head h1 { font-size: clamp(34px, 3.4vw, 48px); font-weight: 600; letter-spacing: -.04em; line-height: 1; }
.mv-count { margin-top: 12px; font-size: 16px; font-weight: 600; }
.mv-count strong { color: var(--blue); }
.mv-count span { color: var(--gray-500); font-weight: 500; }
.mv-head .cg-tags { margin-top: 16px; }
.mv-head .cg-tags a { border-color: rgba(30,43,78,.25); color: var(--ink); padding: 8px 12px; font-size: 13px; }
.mv-head .cg-tags a:hover { background: var(--ink); color: #fff; border-color: var(--ink); }
.mv-head .cg-tags .cg-tags-all { border-color: transparent; color: var(--ink); }
.mv-tools { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 20px; }
.mv-list { grid-area: list; overflow-y: auto; padding: 0 28px 28px; scrollbar-width: thin; }
.mv-map { grid-area: map; position: relative; overflow: hidden; background: #EEF1F6; }
.mp-row { position: relative; display: grid; grid-template-columns: 92px minmax(0, 1fr) auto; align-items: center; gap: 16px; padding: 16px 12px 16px 0; border-top: 1px solid var(--gray-200); background: none; border-radius: 0; box-shadow: none; aspect-ratio: auto; transition: background .5s ease; }
.mp-row:hover, .mp-row.is-hl { background: #F5F6F8; transform: none; box-shadow: none; }
.mp-row.is-hl { box-shadow: inset 4px 0 0 var(--blue); padding-left: 12px; }
.mp-img { position: relative; display: block; width: 92px; height: 72px; overflow: hidden; background: var(--ink); }
.mp-img img, .mp-img .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.mp-img .ph-fmt { font-size: 15px; } .mp-img .ph-sub { display: none; }
.mp-cat { display: block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); margin-bottom: 4px; }
.mp-body h3 { font-size: 15.5px; font-weight: 600; letter-spacing: -.01em; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.mp-body h3 a:hover { color: var(--blue); }
.mp-body p { margin-top: 3px; font-size: 13px; font-weight: 500; color: var(--gray-500); }
.mp-row .mp-add, .mp-row .ev-add { position: static; width: 40px; height: 40px; box-shadow: none; background: var(--gray-100); }
.mp-row .ev-add:hover { background: var(--blue); }
.mp-row .ev-add.is-on { background: #64B989; }
.mv-map .map-tools { top: 18px; left: 18px; }
.mv-map .map-tool { border-radius: 2px; padding: 12px 16px; font-size: 13.5px; box-shadow: 0 10px 24px -12px rgba(30,43,78,.5); transition: background .5s ease, color .5s ease; }
.mv-map .map-tool:hover { background: var(--ink); color: #fff; }
.mv-map .map-status { left: 18px; bottom: 18px; transform: none; border-radius: 2px; padding: 12px 16px; font-size: 13.5px; box-shadow: 0 10px 24px -12px rgba(30,43,78,.5); }
@media (max-width: 980px) {
  .mv { display: flex; flex-direction: column; height: auto; }
  .mv-head { order: 1; padding: 22px var(--gutter) 16px; }
  .mv-map { order: 2; height: 62vh; flex: none; }
  .mv-list { order: 3; overflow: visible; padding: 8px var(--gutter) 40px; }
}

/* ================= Catalogo v3: tre assi (Prodotto · Zona · Circuito) come filtri ================= */
.cx-title { padding-top: clamp(36px, 5vw, 72px); padding-bottom: clamp(28px, 3.4vw, 48px); }
.cx-title h1 { font-size: clamp(48px, 8vw, 120px); font-weight: 600; letter-spacing: -.05em; line-height: .95; animation: fadeUp 1.6s cubic-bezier(.16, 1, .3, 1) backwards; }
.cx-title .hp-kicker { margin-bottom: 20px; }
/* Barra fissa dei tre assi */
.cx-strip { position: sticky; top: 80px; z-index: 40; display: grid; grid-template-columns: repeat(3, 1fr); }
.cx-axis { position: relative; --acc: #3466AE; --on: #fff; background: var(--acc); color: var(--on); transition: filter .6s ease; }
.cx-zona { --acc: #64B989; --on: #1E2B4E; }
.cx-circuito { --acc: #1E2B4E; --on: #fff; }
.cx-axis:hover { filter: brightness(.94); }
.cx-open { display: flex; align-items: center; gap: 16px; width: 100%; height: 76px; padding: 0 clamp(18px, 3vw, 48px); border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; }
.cx-ai { flex: none; width: 34px; height: 34px; }
.cx-ai .ai { width: 100%; height: 100%; stroke-width: 1.7; }
.cx-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.cx-txt small { font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .78; }
.cx-txt strong { font-size: clamp(17px, 1.7vw, 22px); font-weight: 600; letter-spacing: -.02em; line-height: 1.15; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cx-plus { flex: none; width: 22px; height: 22px; transition: transform .8s var(--ease-out); }
.cx-open:hover .cx-plus { transform: rotate(90deg); }
.cx-axis.on .cx-open { padding-right: 76px; }
.cx-clear { position: absolute; right: clamp(14px, 2vw, 26px); top: 50%; translate: 0 -50%; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,.22); color: inherit; border-radius: 2px; transition: background .5s ease, color .5s ease; }
.cx-zona .cx-clear { background: rgba(30,43,78,.14); }
.cx-clear:hover { background: var(--on); color: var(--acc); }
.cx-clear .icon { width: 16px; height: 16px; stroke-width: 2.6; }
.cx-axis.on .cx-plus { display: none; }
/* Conteggio e viste */
.cx-bar { display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap; padding-top: 22px; padding-bottom: 22px; }
.cx-count { display: flex; align-items: baseline; flex-wrap: wrap; gap: 8px; font-size: 17px; font-weight: 600; }
.cx-count strong { font-size: clamp(28px, 3vw, 40px); font-weight: 600; letter-spacing: -.04em; line-height: 1; color: var(--blue); }
.cx-count span { color: var(--gray-500); font-weight: 500; }
.cx-reset { margin-left: 14px; font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.cx-reset:hover { color: var(--blue); }
.cx-res { padding-bottom: 80px; }
.cx-res > .ev-grid, .cx-res > .cg-rows { margin-top: 6px; }
/* Mappa: stessa cornice, risultati sulla sinistra */
.is-cat.is-map .mv { display: grid; grid-template-columns: 420px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); grid-template-areas: "list map"; height: calc(100dvh - 80px - 76px - 78px); min-height: 460px; }
.is-cat.is-map .cx-bar { padding-top: 16px; padding-bottom: 16px; }
.is-cat.is-map .mv-list { padding: 0 24px 24px; }
/* Filtri a tutta pagina */
.fx .fx-form { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.fx .nm-scroll { flex: 1; }
.fx input[type="radio"] { position: absolute; opacity: 0; pointer-events: none; }
.fx label { cursor: pointer; }
.fx-foot { flex: none; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 16px max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter))); padding-bottom: calc(16px + env(safe-area-inset-bottom)); background: #fff; box-shadow: 0 -18px 30px -24px rgba(30,43,78,.45); position: relative; z-index: 3; }
.fx-clear { font-size: 15px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; }
.fx-clear:hover { color: var(--blue); }
.fx-lab { margin: 4px 0 8px; font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .7; }
.fx-lab:not(:first-child) { margin-top: 26px; }
.fx-all span, .fx-cat span, .fx-sub span { display: inline-flex; align-items: baseline; gap: 10px; }
.fx-all span::before, .fx-cat span::before, .fx-sub span::before { content: ''; width: 10px; height: 10px; background: var(--acc); align-self: center; transform: scale(0); transition: transform .5s var(--ease-out); flex: none; margin-right: -2px; }
.fx input:checked + span::before { transform: scale(1); }
.fx-all { display: block; margin-bottom: 20px; }
.fx-all span { font-size: 15px; font-weight: 700; }
.fx-cat span { font-size: 20px; font-weight: 700; letter-spacing: -.015em; color: var(--ink); transition: transform .5s var(--ease-out), color .4s ease; }
.fx-sub span { padding: 3px 0; font-size: 14.5px; font-weight: 500; color: var(--gray-700); transition: transform .5s var(--ease-out), color .4s ease; }
.fx-cat:hover span, .fx-sub:hover span { transform: translateX(8px); color: var(--acc); }
.fx input:checked + span { color: var(--acc); }
.fx small { font-size: 12px; font-weight: 700; opacity: .55; }
.nm-cats .fx-cat, .nm-subs .fx-sub { display: inline-block; }
.fx-zone span { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 12px 14px; font-size: clamp(22px, 2.2vw, 30px); font-weight: 600; letter-spacing: -.025em; line-height: 1.15; color: var(--ink); transition: transform .5s var(--ease-out), background .5s ease; }
.fx-zone em { font-style: normal; }
.fx-zone b { font-weight: 700; font-variant-numeric: tabular-nums; }
.fx-zone label:hover span { transform: translateX(8px); }
.fx-zone input:checked + span { background: #64B989; color: #1E2B4E; }
.nm-circuito .fx-all span { color: #fff; }
.nm-circuito .fx-all span::before { background: #64B989; }
.fx-circ { gap: 22px; }
.fx-cc .nm-cc-img { outline: 4px solid transparent; outline-offset: -4px; transition: outline-color .5s ease; }
.fx-cc input:checked ~ .nm-cc-img { outline-color: #64B989; }
.fx-tick { position: absolute; top: 14px; right: 14px; z-index: 3; width: 34px; height: 34px; display: flex; align-items: center; justify-content: center; background: #64B989; color: #1E2B4E; opacity: 0; transform: scale(.6); transition: opacity .5s ease, transform .6s var(--ease-out); }
.fx-tick .icon { width: 18px; height: 18px; stroke-width: 3; }
.fx-cc input:checked ~ .nm-cc-img .fx-tick { opacity: 1; transform: none; }
.fx-cc small { display: block; }
@media (max-width: 980px) {
  .cx-strip { top: 68px; }
  .cx-open { height: 64px; padding: 0 12px; gap: 8px; }
  .cx-ai, .cx-plus { display: none; }
  .cx-txt small { font-size: 10px; letter-spacing: .08em; }
  .cx-txt strong { font-size: 14px; }
  .cx-axis.on .cx-open { padding-right: 44px; }
  .cx-clear { right: 6px; width: 30px; height: 30px; }
  .is-cat.is-map .mv { display: flex; flex-direction: column; height: auto; }
  .is-cat.is-map .mv-map { order: 1; height: 58vh; flex: none; }
  .is-cat.is-map .mv-list { order: 2; overflow: visible; padding: 8px var(--gutter) 40px; }
  .fx-foot { padding-left: var(--gutter); padding-right: var(--gutter); }
}

/* Colonna Zona: ricerca + percorso a scendere */
.fz-search { display: flex; align-items: center; gap: 14px; height: 60px; padding: 0 20px; background: #fff; border-radius: 2px; margin-bottom: 20px; }
.fz-search .icon { width: 22px; height: 22px; color: var(--ink); flex: none; }
.fz-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: none; font: inherit; font-size: 17px; font-weight: 600; color: var(--ink); }
.fz-search input::placeholder { color: var(--gray-500); font-weight: 500; }
.fz-search:focus-within { outline: 2.5px solid var(--ink); outline-offset: 2px; }
.fz-path { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; min-height: 8px; margin-bottom: 14px; font-size: 14px; font-weight: 700; }
.fz-path:empty { display: none; }
.fz-crumb { border: 0; background: none; padding: 4px 0; font: inherit; color: var(--gray-700); text-decoration: underline; text-underline-offset: 4px; cursor: pointer; }
.fz-crumb.cur { color: var(--ink); text-decoration: none; cursor: default; }
.fz-path span { color: var(--gray-500); }
.fz-list { list-style: none; }
.fz-row { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; padding: 14px 16px; border: 0; background: none; font: inherit; text-align: left; color: var(--ink); cursor: pointer; transition: transform .5s var(--ease-out), background .5s ease; }
.fz-t { display: flex; flex-direction: column; min-width: 0; }
.fz-t em { font-style: normal; font-size: clamp(21px, 2vw, 28px); font-weight: 600; letter-spacing: -.025em; line-height: 1.15; }
.fz-t small { margin-top: 3px; font-size: 12.5px; font-weight: 600; opacity: .6; }
.fz-row b { margin-left: auto; font-size: clamp(21px, 2vw, 28px); font-weight: 700; font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.fz-go { width: 18px; height: 18px; flex: none; opacity: .5; transition: transform .5s var(--ease-out), opacity .4s ease; }
.fz-row:hover { transform: translateX(8px); }
.fz-row:hover .fz-go { transform: translateX(4px); opacity: 1; }
.fz-row.sel { background: #64B989; color: #1E2B4E; }
.fz-none { padding: 18px 16px; font-size: 16px; font-weight: 500; color: var(--gray-700); }

/* ================= La tua richiesta: sempre raggiungibile e con lo stesso nome ================= */
/* Header: pulsante fisso con conteggio */
.sn-req { position: relative; display: inline-flex; align-items: center; gap: 10px; height: 46px; padding: 0 16px; border-radius: 2px; background: var(--gray-100); color: var(--ink); font-size: 14px; font-weight: 700; white-space: nowrap; transition: background .6s ease, color .6s ease; }
.sn-req .ai { width: 21px; height: 21px; }
.sn-req:hover { background: var(--gray-200); }
.sn-req-n { min-width: 24px; height: 24px; padding: 0 6px; display: inline-flex; align-items: center; justify-content: center; border-radius: 2px; background: var(--ink); color: #fff; font-size: 12.5px; font-weight: 700; font-variant-numeric: tabular-nums; transition: background .6s ease, color .6s ease; }
.sn-req.has-items { background: #64B989; color: #1E2B4E; }
.sn-req.has-items:hover { background: #55a97b; }
.sn-req.has-items .sn-req-n { background: #1E2B4E; color: #fff; }
.sn-req.bump { animation: reqBump 1.4s cubic-bezier(.16, 1, .3, 1); }
@keyframes reqBump { 0% { transform: scale(1); } 30% { transform: scale(1.12); } 100% { transform: scale(1); } }
.ai-richiesta .ln { transform-box: fill-box; transform-origin: 0 50%; animation: aiLine 7s ease-in-out infinite; }
.ai-richiesta .ln2 { animation-delay: .8s; }
@media (max-width: 1100px) { .sn-req-t { display: none; } .sn-req { padding: 0 12px; gap: 8px; } }

/* Barra della richiesta: fissa in basso finché c'è almeno un impianto, nessuna chiusura */
.sel-pill, .sel-pill.is-sticky { position: fixed; left: 0; right: 0; bottom: 0; z-index: 59; transform: translateY(105%); opacity: 1; max-width: none; display: block; padding: 0; border-radius: 0; background: var(--ink); color: #fff; box-shadow: 0 -20px 40px -26px rgba(30,43,78,.6); transition: transform 1s cubic-bezier(.16, 1, .3, 1); pointer-events: none; white-space: normal; }
.sel-pill.is-on { transform: none; pointer-events: auto; }
.sel-pill-x { display: none; }
.sel-pill-main { display: flex; align-items: center; gap: 18px; padding-top: 12px; padding-bottom: calc(12px + env(safe-area-inset-bottom)); min-width: 0; }
.sel-thumbs { display: flex; flex: none; }
.sel-thumbs i { width: 52px; height: 40px; margin-right: -14px; background: #3466AE; border: 2px solid var(--ink); overflow: hidden; }
.sel-thumbs i img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sel-thumbs:not(:empty) { padding-right: 14px; }
.sel-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; line-height: 1.2; }
.sel-pill-main strong { background: none; border-radius: 0; min-width: 0; height: auto; padding: 0; display: block; font-size: 17px; font-weight: 700; letter-spacing: -.015em; }
.sel-pill-main strong b { font-weight: 700; color: #64B989; font-size: 20px; }
.sel-txt small { font-size: 12.5px; font-weight: 600; opacity: .72; margin-top: 2px; }
.sel-pill-main > span:not(.sel-pill-cta) { font-size: inherit; overflow: visible; }
.sel-pill-cta { display: inline-flex; align-items: center; gap: 12px; flex: none; padding: 14px 24px; background: #64B989; color: #1E2B4E; border-radius: 2px; font-size: 15px; font-weight: 700; transition: background .6s ease, transform .8s var(--ease-out); }
.sel-pill-cta .icon { width: 17px; height: 17px; transition: transform .8s var(--ease-out); }
.sel-pill-main:hover .sel-pill-cta { background: #fff; }
.sel-pill-main:hover .sel-pill-cta .icon { transform: translateX(5px); }
.has-selbar body { padding-bottom: 84px; }
.has-selbar .toast { bottom: calc(100px + env(safe-area-inset-bottom)); }
@media (max-width: 560px) { .sel-pill-main { gap: 12px; } .sel-thumbs i:nth-child(n+3) { display: none; } .sel-pill-cta { padding: 13px 16px; font-size: 14px; } .sel-txt small { display: none; } }
.sel-pill-main { padding-left: var(--gutter); padding-right: var(--gutter); }

/* ================= La tua richiesta: pagina propria (riepilogo, periodo, dati) ================= */
.rq-head { padding-top: clamp(36px, 5vw, 72px); padding-bottom: clamp(28px, 4vw, 52px); }
.rq-head .hp-kicker { margin-bottom: 20px; }
.rq-head h1 { font-size: clamp(48px, 8vw, 120px); font-weight: 600; letter-spacing: -.05em; line-height: .95; animation: fadeUp 1.6s cubic-bezier(.16, 1, .3, 1) backwards; }
.rq-lead { max-width: 640px; margin-top: 22px; font-size: clamp(17px, 1.6vw, 20px); line-height: 1.5; font-weight: 500; color: var(--gray-700); }
.rq-grid { display: grid; grid-template-columns: minmax(0, 1fr) 400px; gap: clamp(32px, 5vw, 80px); align-items: start; padding-bottom: 96px; }
.rq-err { margin-bottom: 32px; border-radius: 0; border-left: 5px solid var(--status-hot); }
.rq-sec { --acc: #3466AE; margin-bottom: 60px; padding-top: 24px; border-top: 4px solid var(--acc); }
.rq-s2 { --acc: #64B989; } .rq-s3 { --acc: #1E2B4E; }
.rq-sec h2 { display: flex; align-items: baseline; gap: 18px; margin-bottom: 22px; font-size: clamp(28px, 3.2vw, 40px); font-weight: 600; letter-spacing: -.035em; line-height: 1.05; }
.rq-sec h2 b { font-size: clamp(44px, 5vw, 64px); font-weight: 600; letter-spacing: -.05em; line-height: .9; color: var(--acc); }
.rq-help { margin: -6px 0 20px; font-size: 15.5px; line-height: 1.5; font-weight: 500; color: var(--gray-700); }
.rq-lista { list-style: none; }
.rq-riga { display: grid; grid-template-columns: 132px minmax(0, 1fr) auto; align-items: center; gap: 22px; padding: 18px 0; border-bottom: 1px solid var(--gray-200); }
.rq-riga:first-child { border-top: 1px solid var(--gray-200); }
.rq-thumb { position: relative; display: block; width: 132px; height: 100px; overflow: hidden; background: var(--ink); }
.rq-thumb > img, .rq-thumb > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rq-thumb .ph-fmt { font-size: 18px; } .rq-thumb .ph-sub { display: none; }
.rq-info { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.rq-cat { font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--blue); }
.rq-nome { font-size: clamp(18px, 1.8vw, 22px); font-weight: 600; letter-spacing: -.02em; line-height: 1.25; transition: color .5s ease; }
.rq-nome:hover { color: var(--blue); }
.rq-zona { display: inline-flex; align-items: center; gap: 6px; font-size: 14px; font-weight: 500; color: var(--gray-500); }
.rq-zona .icon { width: 14px; height: 14px; }
.rq-rimuovi { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border: 1.5px solid rgba(30,43,78,.25); border-radius: 2px; background: none; font: inherit; font-size: 14px; font-weight: 700; color: var(--ink); cursor: pointer; transition: background .5s ease, color .5s ease, border-color .5s ease; }
.rq-rimuovi .icon { width: 14px; height: 14px; stroke-width: 2.6; }
.rq-rimuovi:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.rq-aggiungi { display: inline-flex; align-items: center; gap: 10px; margin-top: 20px; font-size: 15.5px; font-weight: 700; color: var(--blue); }
.rq-aggiungi .icon { width: 17px; height: 17px; stroke-width: 2.4; transition: transform .8s var(--ease-out); }
.rq-aggiungi:hover .icon { transform: rotate(90deg); }
.rq-s2 .pv-periodi { gap: 10px; margin-bottom: 14px; }
.rq-s2 .pv-periodi li { padding: 14px 18px; border-radius: 0; border-left: 4px solid #64B989; background: #EEF1F6; font-size: 16px; font-weight: 700; color: var(--ink); }
.rq-periodo, .rq-dati { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.rq-dati .rq-campo:first-child, .rq-wide { grid-column: 1 / -1; }
.rq-campo { display: block; }
.rq-campo > span { display: block; margin-bottom: 8px; font-size: 14.5px; font-weight: 700; }
.rq-campo small { font-weight: 500; color: var(--gray-500); }
.rq-campo input, .rq-campo select, .rq-campo textarea { width: 100%; min-height: 58px; padding: 0 18px; border: 2px solid var(--gray-200); border-radius: 2px; background: #fff; font: inherit; font-size: 17px; font-weight: 500; color: var(--ink); transition: border-color .4s ease; }
.rq-campo textarea { padding: 16px 18px; min-height: 130px; resize: vertical; line-height: 1.5; }
.rq-campo input:hover, .rq-campo select:hover, .rq-campo textarea:hover { border-color: rgba(30,43,78,.45); }
.rq-campo input:focus-visible, .rq-campo select:focus-visible, .rq-campo textarea:focus-visible { outline: 3px solid var(--blue); outline-offset: 2px; border-color: var(--ink); }
.rq-campo ::placeholder { color: var(--gray-500); }
.rq-check { display: flex; align-items: flex-start; gap: 14px; margin-top: 26px; font-size: 16px; font-weight: 500; line-height: 1.45; cursor: pointer; }
.rq-check input { width: 24px; height: 24px; flex: none; margin-top: 1px; accent-color: var(--blue); }
/* Riepilogo */
.rq-side { position: sticky; top: 104px; }
.rq-card { position: relative; overflow: hidden; background: var(--ink); color: #fff; padding: 34px 32px 30px; }
.rq-card .nm-wm { fill: #64B989; opacity: .14; top: -50px; right: -70px; width: 280px; }
.rq-card > *:not(.nm-wm) { position: relative; }
.rq-side-eye { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: .72; }
.rq-n { display: flex; align-items: baseline; gap: 14px; margin: 12px 0 18px; }
.rq-n strong { font-size: 96px; font-weight: 600; letter-spacing: -.06em; line-height: .9; color: #64B989; font-variant-numeric: tabular-nums; }
.rq-n span { font-size: 22px; font-weight: 600; }
.rq-dl div { padding: 14px 0; border-top: 1px solid rgba(255,255,255,.18); }
.rq-dl dt { font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; opacity: .65; }
.rq-dl dd { margin-top: 4px; font-size: 18px; font-weight: 600; letter-spacing: -.01em; line-height: 1.3; }
.rq-cta { display: flex; align-items: center; justify-content: center; gap: 14px; width: 100%; min-height: 64px; margin-top: 24px; border: 0; border-radius: 2px; background: #64B989; color: #1E2B4E; font: inherit; font-size: 18px; font-weight: 700; cursor: pointer; transition: background .6s ease; }
.rq-cta .icon { width: 19px; height: 19px; transition: transform .8s var(--ease-out); }
.rq-cta:hover { background: #fff; }
.rq-cta:hover .icon { transform: translateX(6px); }
.rq-cta:focus-visible { outline: 3px solid #fff; outline-offset: 3px; }
.rq-disclaimer { margin-top: 18px; font-size: 12.5px; line-height: 1.55; opacity: .72; }
/* Vuoto e conferma */
.rq-empty { padding: clamp(48px, 7vw, 112px) 0 clamp(72px, 9vw, 140px); }
.rq-empty .hp-kicker { margin-bottom: 20px; }
.rq-empty[hidden] { display: none; }
.rq-empty h1 { font-size: clamp(48px, 9vw, 140px); font-weight: 600; letter-spacing: -.05em; line-height: .95; }
.rq-empty p:not(.hp-kicker) { max-width: 520px; margin-top: 22px; font-size: 19px; line-height: 1.5; font-weight: 500; color: var(--gray-700); }
.rq-done { position: relative; overflow: hidden; background: #64B989; color: #1E2B4E; padding: clamp(56px, 8vw, 120px) 0; }
.rq-done .nm-wm { fill: #1E2B4E; opacity: .08; right: -4%; left: auto; top: 50%; transform: translateY(-50%); width: min(46vw, 560px); }
.rq-done-in { position: relative; }
.rq-done .hp-eye, .rq-done .hp-eye-w { color: #1E2B4E; }
.rq-done-ico { display: flex; align-items: center; justify-content: center; width: 84px; height: 84px; margin: 6px 0 28px; background: #1E2B4E; color: #fff; animation: popIn 1.4s cubic-bezier(.16, 1, .3, 1) backwards; }
.rq-done-ico .icon { width: 40px; height: 40px; stroke-width: 2.6; }
.rq-done h1 { font-size: clamp(52px, 9vw, 140px); font-weight: 600; letter-spacing: -.05em; line-height: .95; }
.rq-done-p { max-width: 560px; margin-top: 24px; font-size: 20px; line-height: 1.5; font-weight: 500; }
.rq-done .btn-light { background: #1E2B4E; color: #fff; }
.rq-done .btn-light:hover { background: #fff; color: #1E2B4E; }
.rq-done .hp-link-w, .rq-done .hp-link-w:hover { color: #1E2B4E; }
.rq-next { padding-top: clamp(56px, 8vw, 112px); padding-bottom: clamp(64px, 9vw, 128px); }
.rq-next .hp-steps { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 1023px) {
  .rq-grid { grid-template-columns: 1fr; }
  .rq-side { position: static; }
  .rq-next .hp-steps { grid-template-columns: 1fr; }
}
@media (max-width: 640px) {
  .rq-riga { grid-template-columns: 96px minmax(0, 1fr); gap: 14px; }
  .rq-thumb { width: 96px; height: 80px; }
  .rq-rimuovi { grid-column: 1 / -1; justify-content: center; }
  .rq-periodo, .rq-dati { grid-template-columns: 1fr; }
  .rq-n strong { font-size: 76px; }
}
.rq-head .hp-kicker, .cx-title .hp-kicker, .rq-empty .hp-kicker { display: flex; }

/* ===== La tua richiesta v2: stesso ritmo della home (apertura, fasce a colori, chiusura blu) ===== */
.rq-hero .hp-hero-in { min-height: min(560px, calc(100vh - 80px)); }
.rq-hero h1 { font-size: clamp(56px, 8vw, 128px); line-height: .94; letter-spacing: -.05em; font-weight: 600; }
.rq-hero h1 u { text-decoration: none; color: #64B989; }
.rq-hero .hp-lead { max-width: 520px; }
.rq-err { margin: 0 0 8px; }
.rq-band { padding: clamp(56px, 8vw, 112px) 0; }
.rq-bh .hp-h2 { font-size: clamp(40px, 6vw, 88px); }
.rq-help { margin-top: 18px; max-width: 420px; font-size: 17px; line-height: 1.5; font-weight: 500; }
/* 01: mosaico fotografico */
.rq-b1 { padding-bottom: 0; }
.rq-b1 .rq-bh { margin-bottom: clamp(28px, 4vw, 48px); }
.rq-tiles { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 4px; }
.rq-tile { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--ink); color: #fff; }
.rq-tile-img { position: absolute; inset: 0; display: block; }
.rq-tile-img > img, .rq-tile-img > .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rq-tile::after { content: ''; position: absolute; inset: 38% 0 0; background: linear-gradient(to top, rgba(30,43,78,.94), transparent); pointer-events: none; }
.rq-tile-txt { position: absolute; left: 22px; right: 22px; bottom: 20px; z-index: 2; display: flex; flex-direction: column; gap: 4px; }
.rq-tile-txt small { font-size: 11.5px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #64B989; }
.rq-tile-txt a { font-size: clamp(18px, 1.7vw, 22px); font-weight: 600; letter-spacing: -.02em; line-height: 1.22; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.rq-tile-txt a:hover { text-decoration: underline; text-underline-offset: 3px; }
.rq-tile-txt em { display: inline-flex; align-items: center; gap: 6px; font-style: normal; font-size: 13.5px; font-weight: 500; opacity: .85; }
.rq-tile-txt em .icon { width: 13px; height: 13px; }
.rq-tile .rq-rimuovi { position: absolute; top: 0; right: 0; z-index: 3; min-height: 48px; padding: 0 16px; border: 0; border-radius: 0; background: #fff; color: var(--ink); }
.rq-tile .rq-rimuovi:hover { background: var(--ink); color: #fff; }
.rq-add { background: #EEF1F6; color: var(--ink); }
.rq-add::after { display: none; }
.rq-add a { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; text-align: center; transition: background .6s ease, color .6s ease; }
.rq-add a:hover { background: var(--blue); color: #fff; }
.rq-add .icon { width: 44px; height: 44px; stroke-width: 1.6; transition: transform .8s var(--ease-out); }
.rq-add a:hover .icon { transform: rotate(90deg); }
.rq-add strong { font-size: 19px; font-weight: 600; letter-spacing: -.02em; }
/* 02 Periodo: fascia verde */
.rq-b2 { background: #64B989; color: #1E2B4E; }
.rq-cols { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 6vw, 96px); align-items: start; }
.rq-b2 .hp-eye, .rq-b2 .hp-eye b { color: #1E2B4E; }
.rq-b2 .pv-periodi { gap: 10px; margin-bottom: 18px; }
.rq-b2 .pv-periodi li { padding: 18px 22px; border-radius: 0; border-left: 5px solid #1E2B4E; background: #fff; font-size: 19px; font-weight: 700; color: #1E2B4E; }
.rq-b2 .pv-link { color: #1E2B4E; font-size: 16px; }
.rq-b2 .rq-campo > span { color: #1E2B4E; font-size: 15px; }
.rq-b2 .rq-campo select { border-color: #1E2B4E; min-height: 64px; font-size: 18px; font-weight: 600; }
/* 03 Dati: fascia chiara */
.rq-b3 { background: #EEF1F6; }
.rq-b3 .rq-campo input, .rq-b3 .rq-campo textarea { background: #fff; }
.rq-b3 .hp-eye b { color: #3466AE; }
.rq-b3 .rq-help { color: var(--gray-700); }
/* Chiusura blu */
.rq-final { position: relative; overflow: hidden; background: #3466AE; color: #fff; padding: clamp(64px, 9vw, 136px) 0; }
.rq-final .nm-wm { fill: #fff; opacity: .08; right: -4%; left: auto; top: 50%; transform: translateY(-50%); width: min(48vw, 560px); }
.rq-final-in { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(28px, 6vw, 96px); align-items: end; }
.rq-final .rq-n { display: flex; align-items: baseline; gap: 16px; margin: 6px 0 14px; }
.rq-final .rq-n strong { font-size: clamp(96px, 15vw, 220px); font-weight: 600; letter-spacing: -.07em; line-height: .85; color: #fff; font-variant-numeric: tabular-nums; }
.rq-final .rq-n span { font-size: clamp(22px, 2.4vw, 32px); font-weight: 600; color: #64B989; }
.rq-final h2 { font-size: clamp(36px, 5vw, 72px); font-weight: 600; letter-spacing: -.045em; line-height: 1; }
.rq-final .rq-dl div { padding: 16px 0; border-top: 1px solid rgba(255,255,255,.28); }
.rq-final .rq-dl dd { font-size: 20px; }
.rq-final .rq-cta { background: #fff; color: #3466AE; min-height: 68px; font-size: 19px; }
.rq-final .rq-cta:hover { background: #1E2B4E; color: #fff; }
.rq-final .rq-disclaimer { max-width: 560px; }
@media (max-width: 1023px) {
  .rq-hero .hp-hero-in { min-height: 0; }
  .rq-cols, .rq-final-in { grid-template-columns: 1fr; }
  .rq-tile .rq-rimuovi { min-height: 44px; }
}
@media (max-width: 640px) { .rq-tile { aspect-ratio: 16 / 11; } .rq-periodo, .rq-dati { grid-template-columns: 1fr; } }
#pv-form { max-width: none; margin: 0; padding: 0; }

/* Richiesta: su telefono più calma e più corta (niente foto d'apertura, impianti in righe compatte) */
@media (max-width: 1023px) {
  .rq-hero .hp-photo { display: none; }
  .rq-hero .hp-hero-txt { padding-bottom: 36px; }
  .rq-band { padding: 48px 0; }
  .rq-b1 { padding-bottom: 0; }
  .rq-b1 .rq-bh { margin-bottom: 20px; }
  .rq-bh .hp-h2 { font-size: clamp(36px, 10vw, 52px); }
  .rq-tiles { display: block; }
  .rq-tile { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; align-items: center; gap: 4px 16px; aspect-ratio: auto; padding: 16px var(--gutter); background: #fff; color: var(--ink); border-top: 1px solid var(--gray-200); overflow: visible; }
  .rq-tile:last-child { border-bottom: 1px solid var(--gray-200); }
  .rq-tile::after { display: none; }
  .rq-tile-img { position: relative; inset: auto; width: 96px; height: 76px; grid-row: 1 / span 2; overflow: hidden; background: var(--ink); }
  .rq-tile-txt { position: static; grid-column: 2; grid-row: 1 / span 2; color: var(--ink); }
  .rq-tile-txt small { color: var(--blue); }
  .rq-tile-txt a { font-size: 16px; }
  .rq-tile-txt em { color: var(--gray-500); opacity: 1; }
  .rq-tile .rq-rimuovi { position: static; grid-column: 3; grid-row: 1 / span 2; width: 44px; min-height: 44px; padding: 0; justify-content: center; border: 1.5px solid rgba(30,43,78,.25); background: none; }
  .rq-tile .rq-rimuovi span { display: none; }
  .rq-add { padding: 0; }
  .rq-add a { position: static; flex-direction: row; justify-content: flex-start; gap: 16px; padding: 18px var(--gutter); background: #EEF1F6; }
  .rq-add .icon { width: 28px; height: 28px; }
  .rq-add strong { font-size: 17px; }
}
.rq-tile-img .ph-sub { display: none; }
.rq-tile-img .ph-fmt { font-size: 20px; }
@media (max-width: 1023px) { .rq-tile.rq-add { display: block; padding: 0; border-top: 1px solid var(--gray-200); } }

/* ================= Wizard "Pianifica": stessa lingua della home, un colore per percorso ================= */
.pw-m-prodotto { --mc: #3466AE; --mon: #fff; }
.pw-m-zona { --mc: #64B989; --mon: #1E2B4E; }
.pw-m-circuito { --mc: #1E2B4E; --mon: #fff; }
.pw-m-scelta { --mc: #3466AE; --mon: #fff; }
/* Barra dei passi (fissa sotto l'header, nel colore del percorso) */
.pw-rail { position: sticky; top: 80px; z-index: 40; background: var(--mc); color: var(--mon); }
.pw-rail ol { list-style: none; display: flex; align-items: stretch; min-height: 64px; }
.pw-rail li { flex: 1 1 0; min-width: 0; display: flex; }
.pw-rail li > a, .pw-rail li > span { display: flex; align-items: center; gap: 12px; width: 100%; padding: 10px 14px 10px 0; color: inherit; }
.pw-rail b { flex: none; width: 30px; height: 30px; display: inline-flex; align-items: center; justify-content: center; border: 2px solid currentColor; border-radius: 2px; font-size: 13.5px; font-weight: 700; opacity: .6; transition: background .6s ease, color .6s ease, opacity .6s ease; }
.pw-rail b .icon { width: 15px; height: 15px; stroke-width: 3; }
.pw-rail .t { display: flex; flex-direction: column; min-width: 0; font-size: 14.5px; font-weight: 700; letter-spacing: -.01em; line-height: 1.2; opacity: .6; transition: opacity .6s ease; }
.pw-rail .t small { font-size: 12px; font-weight: 600; opacity: .85; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pw-rail li.now b { background: var(--mon); color: var(--mc); border-color: var(--mon); opacity: 1; }
.pw-rail li.now .t { opacity: 1; font-size: 15.5px; }
.pw-rail li.done b { background: var(--mon); color: var(--mc); border-color: var(--mon); opacity: .9; }
.pw-rail li.done .t { opacity: .95; }
.pw-rail li.done > a:hover .t { text-decoration: underline; text-underline-offset: 4px; }
.pw-rail li + li { padding-left: 4px; }
/* Testata del passo */
.pw-top { padding-top: clamp(40px, 6vw, 88px); padding-bottom: clamp(28px, 4vw, 56px); }
.pw-top .hp-kicker { display: flex; margin-bottom: 20px; }
.pw-top h1 { font-size: clamp(48px, 8vw, 124px); font-weight: 600; letter-spacing: -.05em; line-height: .95; animation: fadeUp 1.6s cubic-bezier(.16, 1, .3, 1) backwards; }
.pw-top h1 u { text-decoration: none; color: #64B989; }
.pw-lead { max-width: 600px; margin-top: 22px; font-size: clamp(17px, 1.6vw, 20px); line-height: 1.5; font-weight: 500; color: var(--gray-700); }
.pw-lead strong { color: var(--ink); }
.pw-back { display: inline-flex; align-items: center; gap: 10px; margin-top: 22px; font-size: 15px; font-weight: 700; color: var(--ink); }
.pw-back .icon { width: 16px; height: 16px; transform: scaleX(-1); transition: transform .8s var(--ease-out); }
.pw-back:hover .icon { transform: scaleX(-1) translateX(5px); }
/* Scelta iniziale: le tre colonne della home */
.pw-ways .pw-way { min-height: min(560px, 70vh); }
.pw-way h3 { text-transform: none; }
/* Prodotto: mosaico con foto */
.pw-mosaic { margin-top: 8px; margin-bottom: 8px; }
.pw-tile-all { background: var(--mc); }
.pw-tile-all::after { display: none; }
.pw-tile-all .hp-tile-txt strong { font-size: clamp(24px, 2.6vw, 34px); }
/* Zona: conteggio a sinistra, scelte a destra */
.pw-zona { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(28px, 6vw, 96px); align-items: start; padding-bottom: 120px; }
.pw-count { position: sticky; top: 168px; background: var(--mc); color: var(--mon); padding: 32px 28px; }
.pw-count strong { display: block; font-size: clamp(72px, 9vw, 132px); font-weight: 600; letter-spacing: -.06em; line-height: .88; font-variant-numeric: tabular-nums; }
.pw-count span { display: block; margin-top: 14px; font-size: 17px; font-weight: 600; line-height: 1.3; }
.pw-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.pw-chips a { display: inline-flex; align-items: center; gap: 12px; padding: 10px 14px; border: 1.5px solid rgba(30,43,78,.28); border-radius: 2px; font-size: 16px; font-weight: 700; transition: background .5s ease, color .5s ease, border-color .5s ease; }
.pw-chips small { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; opacity: .6; }
.pw-chips .icon { width: 13px; height: 13px; stroke-width: 2.6; }
.pw-chips a:hover { background: var(--ink); border-color: var(--ink); color: #fff; }
.pw-liv { margin-bottom: 14px; font-size: clamp(28px, 3vw, 40px); font-weight: 600; letter-spacing: -.035em; }
.pw-search { margin-bottom: 14px; background: #EEF1F6; }
.pw-lista { list-style: none; }
.pw-lista li[hidden] { display: none; }
.pw-lista .fz-row { text-decoration: none; border-bottom: 1px solid var(--gray-200); }
.pw-lista .fz-row:hover { background: color-mix(in srgb, var(--mc) 14%, #fff); }
.pw-lista .fz-row b { color: var(--ink); }
.pw-avanti { margin-top: 30px; display: inline-flex; gap: 14px; }
.pw-avanti.is-off, .pw-avanti[aria-disabled="true"] { opacity: .4; pointer-events: none; }
.pw-alt { margin-top: 26px; font-size: 15px; font-weight: 700; }
.pw-alt a { color: var(--blue); display: inline-flex; align-items: center; gap: 8px; }
.pw-alt .icon { width: 17px; height: 17px; }
/* Circuito */
.pw-dark { position: relative; overflow: hidden; background: #1E2B4E; color: #fff; padding: clamp(40px, 6vw, 88px) 0; }
.pw-dark .nm-wm { fill: #64B989; opacity: .14; right: -2%; left: auto; top: -30px; width: 380px; }
.pw-dark .container { position: relative; }
.pw-circ { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 28px; }
.pw-circ .nm-cc-img { aspect-ratio: 4 / 5; min-height: 0; }
.pw-none { color: rgba(255,255,255,.75); }
/* Impianti: lista + mappa */
.pw-imp { display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px; padding-bottom: 130px; }
.pw-map { height: 320px; background: #EEF1F6; position: relative; overflow: hidden; }
.pw-cards { margin-top: 0; }
@media (min-width: 1024px) {
  .pw-imp { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 32px; align-items: start; }
  .pw-imp-map { position: sticky; top: 168px; }
  .pw-map { height: calc(100vh - 210px); min-height: 420px; }
}
.ev-card.is-hl .ev-media { outline: 4px solid var(--blue); outline-offset: -4px; }
/* Periodo: tessere piatte per mese */
.pw-periodi { display: grid; grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: clamp(28px, 5vw, 80px); align-items: start; padding-bottom: 130px; }
.pw-mese { border: 0; margin: 0 0 44px; padding: 0; }
.pw-mese legend { margin-bottom: 14px; font-size: clamp(26px, 3vw, 38px); font-weight: 600; letter-spacing: -.035em; }
.pw-pers { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 200px), 1fr)); gap: 6px; }
.pw-per { position: relative; display: block; cursor: pointer; }
.pw-per input { position: absolute; opacity: 0; pointer-events: none; }
.pw-per > span { position: relative; display: flex; flex-direction: column; justify-content: space-between; gap: 6px; min-height: 96px; padding: 18px 20px; background: #EEF1F6; color: var(--ink); transition: background .6s ease, color .6s ease, transform .6s var(--ease-out); }
.pw-per b { font-size: 19px; font-weight: 700; letter-spacing: -.02em; line-height: 1.2; }
.pw-per small { font-size: 13.5px; font-weight: 600; opacity: .7; }
.pw-tick { position: absolute; top: 12px; right: 12px; width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; background: var(--mon); color: var(--mc); opacity: 0; transform: scale(.6); transition: opacity .5s ease, transform .6s var(--ease-out); }
.pw-tick .icon { width: 15px; height: 15px; stroke-width: 3; }
.pw-per:hover > span { transform: translateY(-3px); }
.pw-per input:checked + span { background: var(--mc); color: var(--mon); }
.pw-per input:checked + span .pw-tick { opacity: 1; transform: none; }
.pw-per input:focus-visible + span { outline: 3px solid var(--ink); outline-offset: 3px; }
.pw-sel { position: sticky; top: 168px; background: var(--ink); color: #fff; padding: 30px 28px; }
.pw-sel-n { font-size: 22px; font-weight: 600; letter-spacing: -.02em; line-height: 1.25; }
.pw-sel .btn { width: 100%; margin-top: 22px; background: #64B989; color: #1E2B4E; }
.pw-sel .btn:hover { background: #fff; }
@media (max-width: 1023px) {
  .pw-rail { top: 68px; }
  .pw-rail ol { min-height: 56px; }
  .pw-rail li:not(.now) .t { display: none; }
  .pw-rail li:not(.now) { flex: 0 0 auto; }
  .pw-rail li:not(.now) > a, .pw-rail li:not(.now) > span { padding-right: 10px; }
  .pw-zona, .pw-periodi { grid-template-columns: 1fr; }
  .pw-count { position: static; display: flex; align-items: baseline; gap: 18px; padding: 22px 24px; }
  .pw-count strong { font-size: 72px; }
  .pw-count span { margin: 0; }
  .pw-sel { position: static; }
  .pw-ways .pw-way { min-height: 0; }
}
.pw-go { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-top: 24px; padding: 18px 22px; background: var(--mon); color: var(--mc); font-size: 17px; font-weight: 700; transition: background .6s ease, color .6s ease; }
.pw-go .icon { width: 18px; height: 18px; transition: transform .8s var(--ease-out); }
.pw-go:hover { background: var(--ink); color: #fff; }
.pw-go:hover .icon { transform: translateX(6px); }
@media (max-width: 1023px) { .pw-count { flex-wrap: wrap; } .pw-go { flex: 1 1 100%; } }
@media (max-width: 1023px) { .pw-imp-map { order: -1; } .pw-map { height: 260px; } }

/* ===== Wizard v2: ogni passo ha il suo layout ===== */
/* Barra: "Ricomincia" a destra */
.pw-rail li.pw-reset { flex: 0 0 auto; margin-left: auto; align-items: center; }
.pw-rail li.pw-reset a { padding: 10px 0 10px 16px; font-size: 13.5px; font-weight: 700; opacity: .8; text-decoration: underline; text-underline-offset: 4px; transition: opacity .5s ease; }
.pw-rail li.pw-reset a:hover { opacity: 1; }
.pw-rail li.pw-reset .t { display: block; }
/* Riprendi dove eri rimasto */
.pw-resume { display: flex; align-items: center; justify-content: space-between; gap: 16px; max-width: 640px; margin-top: 30px; padding: 18px 22px; background: #64B989; color: #1E2B4E; font-size: 17px; transition: background .6s ease, color .6s ease; }
.pw-resume[hidden] { display: none; }
.pw-resume b { font-weight: 700; font-size: 22px; }
.pw-resume em { display: inline-flex; align-items: center; gap: 10px; font-style: normal; font-weight: 700; font-size: 15px; white-space: nowrap; }
.pw-resume .icon { width: 17px; height: 17px; transition: transform .8s var(--ease-out); }
.pw-resume:hover { background: #1E2B4E; color: #fff; }
.pw-resume:hover .icon { transform: translateX(6px); }
@media (max-width: 560px) { .pw-resume { flex-direction: column; align-items: flex-start; } }
/* Prodotto: testo fisso a sinistra, categorie a destra */
.pw-split { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: clamp(28px, 5vw, 80px); align-items: start; padding-top: clamp(40px, 6vw, 88px); padding-bottom: 120px; }
.pw-side { position: sticky; top: 168px; }
.pw-side .hp-kicker { display: flex; margin-bottom: 20px; }
.pw-side h1 { font-size: clamp(40px, 4.6vw, 72px); font-weight: 600; letter-spacing: -.045em; line-height: .98; animation: fadeUp 1.6s cubic-bezier(.16, 1, .3, 1) backwards; }
.pw-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 6px; }
.pw-grid .hp-tile { aspect-ratio: 4 / 5; }
.pw-grid .hp-tile-txt strong { font-size: clamp(22px, 2.2vw, 30px); }
.pw-grid .hp-tile:nth-child(1):nth-last-child(n+3) { grid-column: 1 / -1; aspect-ratio: 16 / 9; }
@media (max-width: 1023px) {
  .pw-split { grid-template-columns: 1fr; padding-top: 36px; }
  .pw-side { position: static; }
  .pw-grid .hp-tile { aspect-ratio: 1 / 1.1; }
  .pw-grid .hp-tile:nth-child(1):nth-last-child(n+3) { aspect-ratio: 16 / 10; }
}
/* Zona: barra di densità dietro ogni riga */
.pw-lista li { position: relative; }
.pw-lista li::before { content: ''; position: absolute; left: 0; top: 0; bottom: 1px; width: var(--w, 0); background: color-mix(in srgb, var(--mc) 16%, #fff); transform-origin: left; animation: barIn 2s cubic-bezier(.16, 1, .3, 1) backwards .2s; pointer-events: none; }
.pw-lista .fz-row { position: relative; }
.pw-lista .fz-row:hover { background: none; }
.pw-lista li:hover::before { background: color-mix(in srgb, var(--mc) 32%, #fff); }
/* Impianti: riga strumenti */
.pw-tools { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding-bottom: 18px; }
.pw-tools p { font-size: 16px; font-weight: 600; color: var(--gray-700); }
.pw-tools strong { font-size: 28px; letter-spacing: -.03em; color: var(--ink); margin-right: 4px; }
.pw-all { min-height: 48px; padding: 0 22px; border: 2px solid var(--ink); border-radius: 2px; background: none; font: inherit; font-size: 15px; font-weight: 700; color: var(--ink); cursor: pointer; transition: background .5s ease, color .5s ease; }
.pw-all:hover { background: var(--ink); color: #fff; }
/* Periodo: mesi in evidenza, riepilogo con elenco e totale */
.pw-mese-h { position: sticky; top: 132px; z-index: 5; margin: 0 0 14px; padding: 12px 0; background: #fff; font-size: clamp(26px, 3vw, 38px); font-weight: 600; letter-spacing: -.035em; }
@media (max-width: 1023px) { .pw-mese-h { top: 124px; } }
.pw-sel-eye { font-size: 12px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; opacity: .7; margin-bottom: 10px; }
.pw-sel-l { list-style: none; margin-top: 16px; }
.pw-sel-l li { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0; border-top: 1px solid rgba(255,255,255,.18); font-size: 16px; font-weight: 600; }
.pw-sel-l button { width: 36px; height: 36px; flex: none; border: 0; border-radius: 2px; background: rgba(255,255,255,.14); color: #fff; font: inherit; font-size: 20px; line-height: 1; cursor: pointer; transition: background .5s ease; }
.pw-sel-l button:hover { background: #fff; color: var(--ink); }
.pw-sel-tot { margin-top: 14px; font-size: 14px; font-weight: 600; color: #64B989; }

/* ===================== Wizard v3 · domanda a sinistra, risposta a destra ===================== */
/* Barra di avanzamento (colore del percorso) */
.pw-bar { position: sticky; top: 80px; z-index: 40; background: var(--mc); color: var(--mon); }
.pw-bar-in { display: flex; align-items: center; gap: clamp(16px, 3vw, 40px); min-height: 56px; }
.pw-bar-now { display: flex; align-items: baseline; gap: 8px; white-space: nowrap; }
.pw-bar-now b { font-size: 17px; font-weight: 700; letter-spacing: -.01em; }
.pw-bar-now span { font-size: 14px; font-weight: 600; opacity: .65; }
.pw-bar-now strong { margin-left: 8px; font-size: 17px; font-weight: 700; }
.pw-seg { list-style: none; display: flex; flex: 1; gap: 6px; max-width: 520px; margin-left: auto; }
.pw-seg li { position: relative; flex: 1; height: 6px; background: color-mix(in srgb, var(--mon) 28%, transparent); overflow: hidden; }
.pw-seg li::after { content: ''; position: absolute; inset: 0; background: var(--mon); transform: scaleX(0); transform-origin: left; }
.pw-seg li.done::after { transform: scaleX(1); animation: barIn 2.2s cubic-bezier(.16, 1, .3, 1) backwards calc(var(--i) * .15s + .2s); }
.pw-seg li.now::after { transform: scaleX(.5); animation: barIn 2.2s cubic-bezier(.16, 1, .3, 1) backwards calc(var(--i) * .15s + .2s); }
.pw-bar-reset { font-size: 14px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; opacity: .85; white-space: nowrap; transition: opacity .5s ease; }
.pw-bar-reset:hover { opacity: 1; }
/* Cornice di ogni passo */
.pw-screen { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 6vw, 100px); align-items: start; padding-top: clamp(36px, 5vw, 72px); padding-bottom: 150px; min-height: calc(100dvh - 140px); }
.pw-q { position: sticky; top: 168px; }
.pw-num { overflow: hidden; margin-bottom: 6px; }
.pw-num span { display: block; font-size: clamp(96px, 13vw, 200px); font-weight: 600; letter-spacing: -.07em; line-height: .84; color: var(--mc); animation: wUp 2s cubic-bezier(.16, 1, .3, 1) backwards; }
.pw-eye { margin: 18px 0 14px; font-size: 12.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--gray-500); }
.pw-eye b { color: var(--ink); font-weight: 700; }
.pw-q h1 { font-size: clamp(34px, 4.2vw, 62px); font-weight: 600; letter-spacing: -.045em; line-height: 1; animation: fadeUp 1.6s cubic-bezier(.16, 1, .3, 1) backwards .3s; }
.pw-q h1 u { text-decoration: none; color: #64B989; }
.pw-help { max-width: 440px; margin-top: 18px; font-size: 17px; line-height: 1.5; font-weight: 500; color: var(--gray-700); animation: fadeUp 1.6s cubic-bezier(.16, 1, .3, 1) backwards .6s; }
.pw-sub-back { display: inline-block; margin-top: 14px; font-size: 14.5px; font-weight: 700; color: var(--blue); }
.pw-rec { margin-top: 34px; border-top: 1px solid var(--gray-200); }
.pw-rec > div { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 16px; align-items: baseline; padding: 14px 0; border-bottom: 1px solid var(--gray-200); }
.pw-rec dt { grid-column: 1; font-size: 11.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gray-500); }
.pw-rec dd { grid-column: 1; font-size: 18px; font-weight: 600; letter-spacing: -.015em; }
.pw-rec a { grid-column: 2; grid-row: 1 / span 2; font-size: 13.5px; font-weight: 700; text-decoration: underline; text-underline-offset: 4px; color: var(--ink); }
.pw-rec a:hover { color: var(--blue); }
.pw-back { display: inline-flex; align-items: center; gap: 10px; margin-top: 26px; font-size: 15px; font-weight: 700; }
.pw-back .icon { width: 16px; height: 16px; transform: scaleX(-1); transition: transform .8s var(--ease-out); }
.pw-back:hover .icon { transform: scaleX(-1) translateX(5px); }
.pw-q .pw-count { position: static; margin-top: 30px; padding: 26px; background: var(--mc); color: var(--mon); }
.pw-q .pw-count strong { display: block; font-size: clamp(64px, 7vw, 104px); font-weight: 600; letter-spacing: -.06em; line-height: .88; }
.pw-q .pw-count span { display: block; margin-top: 10px; font-size: 16px; font-weight: 600; }
.pw-q .pw-go { margin-top: 22px; }
.pw-all { display: inline-flex; margin-top: 18px; min-height: 48px; align-items: center; padding: 0 20px; border: 2px solid var(--mon); border-radius: 2px; background: none; color: var(--mon); font: inherit; font-size: 15px; font-weight: 700; cursor: pointer; transition: background .5s ease, color .5s ease; }
.pw-all:hover { background: var(--mon); color: var(--mc); }
/* Righe: l'elemento di scelta di Prodotto e Zona */
.pw-rows { list-style: none; }
.pw-rows > li, .pw-circ > li, .pw-chips, .pw-mese, .pw-imp-list .mp-row, .pw-liv, .pw-search { animation: fadeUp 1.5s cubic-bezier(.16, 1, .3, 1) backwards; animation-delay: calc(var(--i, 0) * .14s + .5s); }
.pw-row { position: relative; display: grid; grid-template-columns: 52px minmax(0, 1fr) auto auto; align-items: center; gap: 18px; padding: 22px 0; border-bottom: 1px solid var(--gray-200); overflow: hidden; }
.pw-row::before { content: ''; position: absolute; inset: 0; background: color-mix(in srgb, var(--mc) 13%, #fff); transform: scaleX(0); transform-origin: left; transition: transform 1.1s cubic-bezier(.16, 1, .3, 1); }
.pw-row:hover::before { transform: scaleX(1); }
.pw-row > * { position: relative; }
.pw-row-n { font-size: 14px; font-weight: 700; color: var(--gray-500); font-variant-numeric: tabular-nums; }
.pw-row-t { display: flex; flex-direction: column; gap: 4px; min-width: 0; transition: transform .9s cubic-bezier(.16, 1, .3, 1); }
.pw-row:hover .pw-row-t { transform: translateX(10px); }
.pw-row-t strong { font-size: clamp(24px, 3vw, 42px); font-weight: 600; letter-spacing: -.035em; line-height: 1.08; }
.pw-row-t small { font-size: 14px; font-weight: 600; color: var(--gray-500); }
.pw-row-img { width: 124px; height: 84px; overflow: hidden; background: var(--ink); position: relative; }
.pw-row-img img, .pw-row-img .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s cubic-bezier(.16, 1, .3, 1); }
.pw-row-img .ph-sub { display: none; } .pw-row-img .ph-fmt { font-size: 20px; }
.pw-row:hover .pw-row-img img { transform: scale(1.08); }
.pw-row-go { width: 46px; height: 46px; display: inline-flex; align-items: center; justify-content: center; background: var(--ink); color: #fff; border-radius: 2px; transition: background .6s ease, color .6s ease, transform .9s cubic-bezier(.16, 1, .3, 1); }
.pw-row-go .icon { width: 18px; height: 18px; }
.pw-row:hover .pw-row-go { background: var(--mc); color: var(--mon); transform: translateX(6px); }
.pw-row-all { margin-bottom: 10px; padding: 24px 22px; background: var(--mc); color: var(--mon); border-bottom: 0; }
.pw-row-all::before { display: none; }
.pw-row-all .pw-row-n, .pw-row-all .pw-row-t small { color: inherit; opacity: .75; }
.pw-row-all .pw-row-go { background: var(--mon); color: var(--mc); }
/* Zona: righe con barra di densità */
.pw-row-z { grid-template-columns: minmax(0, 1fr) auto auto; padding: 18px 16px; }
.pw-row-z::before { display: none; }
.pw-row-z .pw-row-t strong { font-size: clamp(22px, 2.4vw, 32px); }
.pw-row-c { font-size: clamp(22px, 2.4vw, 32px); font-weight: 700; letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.pw-lista li { position: relative; border-bottom: 1px solid var(--gray-200); }
.pw-lista li::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: var(--w, 0); background: color-mix(in srgb, var(--mc) 16%, #fff); transform-origin: left; animation: barIn 2.4s cubic-bezier(.16, 1, .3, 1) backwards .6s; transition: background .6s ease; }
.pw-lista li:hover::before { background: color-mix(in srgb, var(--mc) 34%, #fff); }
.pw-lista .pw-row { border-bottom: 0; }
.pw-lista li[hidden] { display: none; }
.pw-liv { margin-bottom: 14px; font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: var(--gray-500); }
/* Circuito: schede orizzontali */
.pw-circ { list-style: none; display: grid; gap: 6px; }
.pw-cc { display: grid; grid-template-columns: minmax(180px, 40%) minmax(0, 1fr) auto; align-items: center; gap: 24px; background: var(--ink); color: #fff; overflow: hidden; }
.pw-cc-img { position: relative; display: block; aspect-ratio: 4 / 3; background: #2a3a66; overflow: hidden; }
.pw-cc-img img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1.4s cubic-bezier(.16, 1, .3, 1); }
.pw-cc:hover .pw-cc-img img { transform: scale(1.06); }
.pw-cc-t { display: flex; flex-direction: column; gap: 8px; padding: 18px 0; }
.pw-cc-t strong { font-size: clamp(24px, 2.6vw, 36px); font-weight: 600; letter-spacing: -.035em; line-height: 1.1; }
.pw-cc-t small { font-size: 14.5px; font-weight: 500; color: rgba(255,255,255,.72); }
.pw-cc .pw-row-go { margin-right: 24px; background: #64B989; color: #1E2B4E; }
.pw-cc:hover .pw-row-go { transform: translateX(6px); background: #fff; }
/* Impianti: la domanda diventa testata, sotto lista + mappa */
.pw-screen.pw-wide { grid-template-columns: 1fr; gap: clamp(24px, 3vw, 40px); }
.pw-wide .pw-q { position: static; display: grid; grid-template-columns: auto minmax(0, 1fr) minmax(220px, 300px); grid-template-areas: "num eye cnt" "num h1 cnt" "num help cnt" "rec rec rec" "bk bk bk"; column-gap: clamp(24px, 4vw, 64px); align-items: start; }
.pw-wide .pw-num { grid-area: num; } .pw-wide .pw-eye { grid-area: eye; margin-top: 0; } .pw-wide .pw-q h1 { grid-area: h1; } .pw-wide .pw-help { grid-area: help; }
.pw-wide .pw-count { grid-area: cnt; margin-top: 0; } .pw-wide .pw-rec { grid-area: rec; } .pw-wide .pw-back { grid-area: bk; }
.pw-wide .pw-num span { font-size: clamp(72px, 9vw, 140px); }
.pw-imp { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 32px; align-items: start; }
.pw-imp-list .mp-row { padding-left: 0; }
.pw-imp-map { position: sticky; top: 168px; }
.pw-map { height: calc(100dvh - 210px); min-height: 420px; background: #EEF1F6; position: relative; overflow: hidden; border-radius: 0; }
/* Periodo: mesi che si scorrono */
.pw-mesi-nav { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 14px; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--gray-500); }
.pw-mesi-nav span { display: inline-flex; gap: 6px; }
.pw-mesi-nav button { width: 46px; height: 46px; border: 0; border-radius: 2px; background: var(--ink); color: #fff; font: inherit; font-size: 20px; cursor: pointer; transition: background .5s ease; }
.pw-mesi-nav button:hover { background: var(--mc); color: var(--mon); }
.pw-mesi { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(250px, 280px); gap: 8px; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 16px; scrollbar-width: thin; outline: none; }
.pw-mese { scroll-snap-align: start; border: 0; margin: 0; padding: 0; min-width: 0; }
.pw-mese legend { padding: 0; margin-bottom: 14px; font-size: clamp(26px, 2.6vw, 34px); font-weight: 600; letter-spacing: -.035em; }
.pw-pers { display: grid; grid-template-columns: 1fr; gap: 6px; }
.pw-q .pw-sel { position: static; margin-top: 30px; padding: 26px; background: var(--ink); color: #fff; }
.pw-q .pw-sel .pw-go { background: #64B989; color: #1E2B4E; margin-top: 20px; }
.pw-q .pw-sel .pw-go:hover { background: #fff; }
/* Scelta iniziale: tre fasce orizzontali */
.pw-fasce { display: grid; }
.pw-fascia { --pad: max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter))); position: relative; overflow: hidden; display: grid; grid-template-columns: 56px 56px minmax(0, 5fr) minmax(0, 4fr) auto; align-items: center; gap: clamp(16px, 3vw, 40px); min-height: min(240px, 28vh); padding: 32px var(--pad); color: #fff; animation: fadeUp 1.6s cubic-bezier(.16, 1, .3, 1) backwards; animation-delay: calc(var(--i) * .2s + .4s); transition: filter .8s ease; }
.pw-f-prodotto { background: #3466AE; } .pw-f-zona { background: #64B989; color: #1E2B4E; } .pw-f-circuito { background: #1E2B4E; }
.pw-fascia .nm-wm { position: absolute; fill: currentColor; opacity: .08; right: 6%; top: -40%; width: 300px; transition: transform 1.6s cubic-bezier(.16, 1, .3, 1); }
.pw-fascia:hover .nm-wm { transform: translateX(-30px); }
.pw-fascia > * { position: relative; }
.pw-fascia .nm-wm { position: absolute; }
.pw-f-n { font-size: 14px; font-weight: 700; opacity: .7; }
.pw-f-ai { width: 52px; height: 52px; }
.pw-f-ai .ai { width: 100%; height: 100%; stroke-width: 1.6; }
.pw-f-t small { display: block; margin-bottom: 4px; font-size: 13px; font-weight: 700; letter-spacing: .06em; opacity: .8; }
.pw-f-t strong { display: block; font-size: clamp(44px, 6.4vw, 100px); font-weight: 600; letter-spacing: -.05em; line-height: .95; transition: transform 1s cubic-bezier(.16, 1, .3, 1); }
.pw-fascia:hover .pw-f-t strong { transform: translateX(14px); }
.pw-f-d { font-size: 17px; line-height: 1.45; font-weight: 500; opacity: .92; }
.pw-f-go { width: 64px; height: 64px; display: inline-flex; align-items: center; justify-content: center; background: #fff; color: #3466AE; border-radius: 2px; transition: transform .9s cubic-bezier(.16, 1, .3, 1); }
.pw-f-zona .pw-f-go { background: #1E2B4E; color: #fff; } .pw-f-circuito .pw-f-go { color: #1E2B4E; }
.pw-f-go .icon { width: 24px; height: 24px; }
.pw-fascia:hover .pw-f-go { transform: translateX(10px); }
@media (max-width: 1023px) {
  .pw-bar { top: 68px; }
  .pw-bar-now strong { display: none; }
  .pw-screen { grid-template-columns: 1fr; gap: 28px; min-height: 0; padding-bottom: 130px; }
  .pw-q { position: static; }
  .pw-num span { font-size: 84px; }
  .pw-wide .pw-q { display: block; }
  .pw-wide .pw-num span { font-size: 84px; }
  .pw-wide .pw-count { margin-top: 22px; }
  .pw-imp { grid-template-columns: 1fr; }
  .pw-imp-map { position: static; order: -1; }
  .pw-map { height: 260px; min-height: 0; }
  .pw-row { grid-template-columns: 36px minmax(0, 1fr) auto; gap: 12px; }
  .pw-row-img { display: none; }
  .pw-row-go { width: 42px; height: 42px; }
  .pw-cc { grid-template-columns: 1fr; gap: 0; }
  .pw-cc-t { padding: 18px 56px 18px 20px; }
  .pw-cc .pw-row-go { position: absolute; right: 16px; bottom: 16px; margin: 0; }
  .pw-cc { position: relative; }
  .pw-mesi { grid-auto-columns: 78%; }
  .pw-fascia { grid-template-columns: 1fr auto; grid-template-areas: "ai go" "t go" "d d"; gap: 8px 16px; min-height: 0; padding: 28px var(--gutter); }
  .pw-f-n { display: none; }
  .pw-f-ai { grid-area: ai; width: 40px; height: 40px; } .pw-f-t { grid-area: t; } .pw-f-d { grid-area: d; } .pw-f-go { grid-area: go; width: 54px; height: 54px; }
}
@media (max-width: 1023px) { .pw-row.pw-row-z { grid-template-columns: minmax(0, 1fr) auto auto; padding: 16px 12px; } .pw-row-all { padding: 20px 18px; } }
@media (max-width: 1023px) {
  .pw-num span, .pw-wide .pw-num span { font-size: 64px; }
  .pw-eye { margin: 12px 0 10px; }
  .pw-rec { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 20px; border: 0; }
  .pw-rec > div { position: relative; display: inline-flex; padding: 9px 14px; border: 1.5px solid rgba(30,43,78,.25); }
  .pw-rec dt { display: none; }
  .pw-rec dd { font-size: 14.5px; }
  .pw-rec a { position: absolute; inset: 0; overflow: hidden; text-indent: -999px; }
  .pw-q .pw-count { padding: 20px 22px; }
  .pw-q .pw-count strong { font-size: 64px; }
  .pw-back { margin-top: 18px; }
}
.pw-wide .pw-rec { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 22px; border: 0; }
.pw-wide .pw-rec > div { position: relative; display: inline-flex; align-items: center; gap: 10px; padding: 10px 16px; border: 1.5px solid rgba(30,43,78,.25); transition: background .5s ease, color .5s ease; }
.pw-wide .pw-rec > div:hover { background: var(--ink); color: #fff; }
.pw-wide .pw-rec dt { font-size: 11px; }
.pw-wide .pw-rec dd { font-size: 15.5px; }
.pw-wide .pw-rec a { position: absolute; inset: 0; overflow: hidden; text-indent: -999px; }
.pw-wide .pw-back { margin-top: 16px; }

.pw-a .pw-sel { margin-top: 28px; padding: 28px 30px; background: var(--ink); color: #fff; }
.pw-a .pw-sel .pw-go { background: #64B989; color: #1E2B4E; margin-top: 22px; }
.pw-a .pw-sel .pw-go:hover { background: #fff; }
@media (min-width: 1024px) { .pw-a .pw-sel { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 0 28px; align-items: end; } .pw-a .pw-sel > .pw-go { grid-column: 2; grid-row: 1 / span 4; align-self: end; margin-top: 0; min-width: 260px; } }


/* =============== Home e footer: blocchi a tutta larghezza, fessure sottili (come l'app Zara), blu scuro prevalente =============== */
body { padding-bottom: 0; }
.is-wizard { padding-bottom: 24px; }
:root { --gap: 4px; }

/* Home: si parte subito dai tre percorsi, niente hero */
.is-home main { display: flex; flex-direction: column; gap: var(--gap); background: var(--paper); }
.hp-ways { gap: var(--gap); }
.hp-way, .hp-prodotto, .hp-zona, .hp-circuito { background: var(--ink); color: #fff; min-height: min(86vh, 720px); }
.hp-zona .hp-go, .hp-prodotto .hp-go, .hp-circuito .hp-go { background: #fff; color: var(--ink); }
.hp-way .nm-wm { opacity: .07; }
.hp-way-top { gap: 20px; }
.hp-ai { width: clamp(64px, 6vw, 84px); height: clamp(64px, 6vw, 84px); }
.hp-prodotto .hp-ai { color: #8FABD2; } .hp-zona .hp-ai { color: #64B989; } .hp-circuito .hp-ai { color: #fff; }
.hp-verb { font-size: clamp(24px, 2.4vw, 30px); font-weight: 700; letter-spacing: -.02em; opacity: 1; }
.hp-way h3 { margin-top: auto; padding-top: 48px; }
.hp-way ul { margin: 24px 0 30px; }
.hp-way li a { border-bottom: 1px solid rgba(255,255,255,.14); }
.hp-way li:last-child a { border-bottom: 0; }

.hp-sec { padding: clamp(40px, 6vw, 88px) 0; }
.hp-sec-tight { padding: 0; }
.hp-head { margin-bottom: clamp(20px, 3vw, 36px); }
.hp-sec:has(.hp-steps) { background: var(--ink); color: #fff; }
.hp-sec:has(.hp-steps) .hp-h2 { color: #fff; }
.hp-steps li::before, .hp-steps li:nth-child(n)::before { background: rgba(255,255,255,.28); }
.hp-steps li:nth-child(2)::before { background: #64B989; }
.hp-steps b, .hp-steps li:nth-child(n) b { color: #fff; }
.hp-steps li:nth-child(2) b { color: #64B989; }
.hp-steps strong { color: #fff; }
.hp-sec-tight .hp-head { padding: clamp(28px, 4vw, 56px) 0 0; }
.hp-sec-tight .container { background: var(--paper); }
.hp-mosaic { gap: var(--gap); }
.hp-circ { padding: clamp(40px, 6vw, 88px) 0; }
.hp-final { background: var(--ink); padding: clamp(56px, 9vw, 120px) 0; }
.hp-final .nm-wm { opacity: .06; }
.hp-final .btn-light { background: #fff; color: var(--ink); }
.hp-final h2 { margin: 0; }
.is-home .site-foot { margin-top: var(--gap); }

/* Etichette accanto alle icone: doppie */
.pw-f-t small { font-size: clamp(24px, 2.4vw, 30px); letter-spacing: -.02em; }
.nm-feat-txt strong { font-size: 24px; }
.nm-verb { font-size: clamp(20px, 2vw, 26px); }
.sn-req-t { font-size: 17px; }
.bn-pill { font-size: 18px; }

@media (max-width: 1023px) {
  .hp-way, .hp-prodotto, .hp-zona, .hp-circuito { min-height: 0; padding: 36px 24px 32px; }
  .hp-way h3 { padding-top: 28px; margin-top: 0; }
}

/* Footer completo, blu scuro, il padding in basso (per la bottom-nav) sta qui dentro: niente striscia bianca */
.site-foot { margin-top: 60px; padding: clamp(40px, 5vw, 64px) 0 calc(110px + env(safe-area-inset-bottom)); background: var(--ink); color: rgba(255,255,255,.7); }
.sf-in { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 36px 28px; }
.sf-nav { gap: 12px; }
.sf-nav strong { margin-bottom: 4px; color: #fff; font-size: 12.5px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.sf-nav a { font-size: 16px; font-weight: 500; color: rgba(255,255,255,.78); overflow-wrap: anywhere; }
.sf-nav a:hover { color: #fff; }
.sf-end { margin-top: clamp(36px, 5vw, 64px); padding-top: 28px; border-top: 1px solid rgba(255,255,255,.16); display: flex; flex-direction: column; gap: 14px; }
.sf-word { font-size: clamp(40px, 9vw, 120px); font-weight: 700; letter-spacing: -.045em; line-height: .95; color: #fff; }
.sf-word b { color: #64B989; font-weight: 700; }
.sf-end .sf-copy { margin: 0; padding: 0; border: 0; max-width: none; font-size: 13px; color: rgba(255,255,255,.5); }
@media (max-width: 900px) { .sf-in { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .sf-in { gap: 32px 20px; } .sf-nav a { font-size: 15px; } }
@media (max-width: 900px) { .sf-in .sf-nav:last-child { grid-column: 1 / -1; } }
.hp-ways-wrap { padding: 0; margin: 0; }

/* =============== Home v3: tutti i prodotti subito, a tessere fotografiche =============== */
.hp-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px var(--gutter); background: var(--paper); }
.hp-bar h2 { font-size: clamp(14px, 1.4vw, 17px); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.hp-bar a { display: inline-flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 700; }
.hp-bar a .icon { width: 15px; height: 15px; }
.hp-bar-in { padding-left: 0; padding-right: 0; background: none; color: #fff; margin-bottom: 8px; }
.hp-bar-in a { color: #fff; }

.hp-prod .hp-mosaic { grid-template-columns: repeat(2, 1fr); gap: var(--gap); }
@media (min-width: 700px) { .hp-prod .hp-mosaic { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .hp-prod .hp-mosaic { grid-template-columns: repeat(5, 1fr); } }
.hp-prod .hp-tile { aspect-ratio: 3 / 4; }
.hp-tile::after { inset: 25% 0 0; background: linear-gradient(to top, rgba(30,43,78,.95), rgba(30,43,78,.4) 60%, transparent); }
.hp-tile-n { position: absolute; top: 16px; left: 18px; z-index: 2; font-size: 13px; font-weight: 700; letter-spacing: .1em; color: rgba(255,255,255,.85); }
.hp-tile-go { position: absolute; top: 0; right: 0; z-index: 2; width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; background: #fff; color: var(--ink); }
.hp-tile-go .icon { width: 17px; height: 17px; }
.hp-tile-txt { left: 18px; right: 18px; bottom: 18px; }
.hp-tile-txt strong { font-size: clamp(22px, 2.4vw, 32px); }
.hp-tile-txt small { font-size: 13px; font-weight: 600; opacity: .8; line-height: 1.35; }
.hp-tile.no-foto { background: var(--ink); }
.hp-tile.no-foto.t1 { background: #263a6b; } .hp-tile.no-foto.t2 { background: #2d4f8f; }
.hp-tile.no-foto::after { display: none; }
.hp-tile.no-foto .nm-wm { position: absolute; right: -18%; bottom: -8%; width: 78%; fill: #fff; opacity: .07; transition: transform 1s var(--ease-out); }
.hp-tile.no-foto:hover .nm-wm { transform: scale(1.08); }

.hp-zone-sec { background: var(--ink); color: #fff; }
.hp-zone-sec .hp-bar { background: none; padding-top: clamp(28px, 4vw, 48px); }
.hp-zlist { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 0 clamp(24px, 4vw, 64px); padding: 0 var(--gutter) clamp(28px, 4vw, 56px); max-width: calc(var(--maxw) + 2 * var(--gutter)); margin: 0 auto; }
.hp-zlist a { display: flex; align-items: baseline; gap: 14px; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.18); font-size: clamp(26px, 3vw, 40px); font-weight: 600; letter-spacing: -.03em; line-height: 1.1; transition: transform .45s var(--ease-out); }
.hp-zlist a span { flex: 1; }
.hp-zlist a b { font-size: 16px; font-weight: 700; color: #64B989; font-variant-numeric: tabular-nums; }
.hp-zlist a .icon { width: 20px; height: 20px; align-self: center; }
.hp-zlist a:hover { transform: translateX(8px); }

.hp-circ .hp-bar-in { padding-top: 0; }
.hp-circ { padding: clamp(28px, 4vw, 56px) 0 clamp(36px, 5vw, 72px); }
.hp-sec .hp-head { margin-bottom: 20px; }
.hp-sec .hp-h2 { font-size: clamp(14px, 1.4vw, 17px); font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }

/* Header su telefono: tutto dentro la larghezza, niente scorrimento laterale */
@media (max-width: 480px) {
  .sn-in { gap: 8px; }
  .brand { min-width: 0; }
  .sn-side { gap: 6px; }
  .sn-round, .sn-burger { width: 40px; height: 40px; }
  .sn-req { height: 40px; padding: 0 10px; }
  .brand-name { font-size: 15px; }
}

/* =============== Home v4: elenco dei prodotti (stile menu app Zara) =============== */
.hp-prod { background: var(--ink); color: #fff; }
.hp-prod .hp-bar { background: none; padding-top: clamp(28px, 4vw, 48px); }
.hp-prod .hp-bar a { color: #fff; }
.hp-plist { list-style: none; max-width: calc(var(--maxw) + 2 * var(--gutter)); margin: 0 auto; padding: 0 var(--gutter) clamp(20px, 3vw, 40px); }
.hp-plist > li { border-top: 1px solid rgba(255,255,255,.18); }
.hp-prow { display: flex; align-items: center; gap: 16px; padding: 20px 0; transition: transform .45s var(--ease-out); }
.hp-prow:hover { transform: translateX(8px); }
.hp-prow-t { flex: 1; font-size: clamp(28px, 3.6vw, 48px); font-weight: 600; letter-spacing: -.035em; line-height: 1.05; }
.hp-prow b { font-size: 16px; font-weight: 700; color: #64B989; font-variant-numeric: tabular-nums; }
.hp-prow-img { width: 64px; height: 64px; overflow: hidden; flex: none; }
.hp-prow-img img, .hp-prow-img .ph { width: 100%; height: 100%; object-fit: cover; }
.hp-prow .icon { width: 22px; height: 22px; }
.hp-psub { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 22px; padding: 0 0 20px; margin-top: -8px; }
.hp-psub a { font-size: 16px; font-weight: 500; color: rgba(255,255,255,.7); }
.hp-psub a:hover { color: #fff; }
@media (min-width: 1000px) { .hp-plist { columns: 2; column-gap: clamp(32px, 5vw, 80px); } .hp-plist > li { break-inside: avoid; } }
.hp-bar h2, .hp-bar a { white-space: nowrap; } @media (max-width: 480px) { .hp-bar h2 { font-size: 13px; letter-spacing: .08em; } .hp-bar a { font-size: 13px; } }

/* Home v4: i tre percorsi con elenchi completi (tutti i prodotti, tutte le zone, tutti i circuiti) */
.hp-way { min-height: 0; }
.hp-way h3, .hp-go { display: none; }
.hp-way ul { margin: 36px 0 0; }
.hp-way li a { align-items: center; padding: 14px 0; font-size: clamp(22px, 2vw, 28px); line-height: 1.15; }
.hp-way li a > span { flex: 1; }
.hp-way li a small { display: block; margin-top: 4px; font-size: 14px; font-weight: 500; letter-spacing: 0; opacity: .6; }
.hp-way li a .icon { width: 20px; height: 20px; opacity: .7; }
.hp-zona li b { color: #64B989; font-size: 18px; }

/* Home v5: circuiti in tessere piccole (se ne vedono molte per riga) e tono più sobrio, ispirato a Zara */
.hp-circ-grid .nm-circ { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: var(--gap); }
.hp-circ-grid .nm-cc-img { aspect-ratio: 3 / 4; }
.hp-circ-grid .nm-cc-img strong { left: 12px; right: 12px; bottom: 12px; font-size: 14px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; line-height: 1.25; }
.hp-circ-grid .nm-cc small { margin-top: 8px; font-size: 11.5px; font-weight: 500; letter-spacing: .04em; text-transform: uppercase; opacity: .7; }
@media (max-width: 560px) { .hp-circ-grid .nm-circ { grid-template-columns: repeat(2, 1fr); } }

/* Elenchi: maiuscolo, peso medio, righe sottili — il linguaggio dei menu Zara */
.hp-way li a { font-size: clamp(15px, 1.3vw, 17px); font-weight: 500; letter-spacing: .06em; text-transform: uppercase; padding: 13px 0; }
.hp-way li a small { font-size: 11.5px; letter-spacing: .05em; }
.hp-way li a .icon { width: 16px; height: 16px; }
.hp-zona li b { font-size: 14px; }
.hp-bar h2, .hp-sec .hp-h2 { font-weight: 600; letter-spacing: .14em; }
.hp-final h2 { font-weight: 500; letter-spacing: -.035em; }

/* Home v6: Prodotto a tutta larghezza su più colonne, Zona e Circuito affiancati; accenti colorati */
.hp-ways { grid-template-columns: 1fr 1fr; }
.hp-prodotto { grid-column: 1 / -1; }
.hp-prodotto ul { column-count: 3; column-gap: clamp(24px, 4vw, 64px); }
.hp-prodotto li { break-inside: avoid; }
.hp-way { border-top: 0; }
.hp-prodotto { --bar: #3466AE; }
.hp-zona { --bar: #64B989; background: #263a6b; }
.hp-circuito { --bar: #DCE2EB; }
.hp-zona .hp-ai { color: #64B989; } .hp-circuito .hp-ai { color: #DCE2EB; }
.hp-way li a:hover { color: var(--bar); }
.hp-soon { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 13px 0; font-size: clamp(15px, 1.3vw, 17px); font-weight: 500; letter-spacing: .06em; text-transform: uppercase; opacity: .55; border-bottom: 1px solid rgba(255,255,255,.14); }
.hp-soon em { font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .1em; padding: 4px 8px; border: 1px solid rgba(255,255,255,.4); }
.hp-zona li:last-child .hp-soon { border-bottom: 0; }
@media (max-width: 1023px) {
  .hp-ways { grid-template-columns: 1fr; }
  .hp-prodotto ul { column-count: 2; }
}
@media (max-width: 560px) { .hp-prodotto ul { column-count: 1; } }

/* Header: sempre bianco pieno e leggibile (niente vetro sfocato sopra i blocchi scuri), più basso, con filo sottile */
.site-nav, .site-nav.is-stuck { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; box-shadow: none; border-bottom: 1px solid var(--gray-200); }
.nm-bar.is-stuck { background: #fff; -webkit-backdrop-filter: none; backdrop-filter: none; }
.sn-in { height: 68px; }
.sn-req-t { font-size: 14.5px; }
@media (max-width: 480px) { .sn-in { height: 60px; } }

@media (max-width: 480px) { .sn-user { display: none; } .brand { min-width: auto; flex: none; } }
.hp-circ .nm-wm, .hp-final .nm-wm { display: none; }
.hp-circ-grid .nm-cc-img { background: #263a6b; }

/* Home: tre colonne verticali su desktop, ogni colonna si allarga al passaggio */
.hp-ways { grid-template-columns: 1fr; }
.hp-prodotto { grid-column: auto; }
.hp-prodotto ul { column-count: 1; }
.hp-way { min-height: min(86vh, 760px); }
@media (min-width: 1024px) {
  .hp-ways { display: flex; gap: var(--gap); }
  .hp-way { flex: 1 1 0; min-width: 0; transition: flex-grow 1.08s var(--ease-out); }
  .hp-ways:hover .hp-way { flex-grow: .85; }
  .hp-ways .hp-way:hover { flex-grow: 1.35; }
  .hp-way li a .icon { opacity: 0; transform: translateX(-10px); }
  .hp-way li a:hover .icon { opacity: 1; transform: none; }
}
@media (max-width: 1023px) { .hp-way { min-height: 0; } }

/* =============== Home v8: primo passo della richiesta (selezione + conteggio live), mappa a punti =============== */
.hp-ways-wrap { display: flex; flex-direction: column; gap: var(--gap); }
.hp-way { padding: clamp(28px, 3.2vw, 52px) clamp(22px, 2.8vw, 44px); }
button.hp-way-top { appearance: none; -webkit-appearance: none; width: 100%; background: none; border: 0; color: inherit; font: inherit; text-align: left; padding: 0; cursor: default; }
.hp-verb { display: block; }
.hp-way-sel { display: block; width: max-content; margin-top: 8px; padding: 4px 10px; background: #64B989; color: var(--ink); font-style: normal; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.hp-way-plus { display: none; width: 22px; height: 22px; margin-left: auto; transition: transform .45s var(--ease-out); }
.hp-opts { list-style: none; }
.hp-way .hp-opt { appearance: none; -webkit-appearance: none; display: flex; align-items: center; justify-content: space-between; gap: 14px; width: 100%; padding: 12px 0; background: none; border: 0; border-bottom: 1px solid rgba(255,255,255,.14); color: inherit; font: 500 clamp(15px, 1.3vw, 17px)/1.2 var(--f); letter-spacing: .06em; text-transform: uppercase; text-align: left; cursor: pointer; transition: color .3s ease, background .3s ease, padding .4s var(--ease-out); }
.hp-way .hp-opt > span { flex: 1; }
.hp-way .hp-opt b { font-size: 14px; font-weight: 700; color: #64B989; font-variant-numeric: tabular-nums; }
.hp-way .hp-opt .icon { width: 16px; height: 16px; opacity: 0; transform: none; transition: opacity .3s ease; }
button.hp-opt .icon { color: #64B989; }
a.hp-opt .icon { opacity: .7; }
.hp-way .hp-opt:hover { color: #8fe0b3; }
.hp-way .hp-opt.is-on { color: #64B989; background: rgba(100,185,137,.12); padding-left: 12px; padding-right: 12px; }
.hp-way .hp-opt.is-on .icon { opacity: 1; }
.hp-way li:last-child .hp-opt, .hp-way li:last-child .hp-soon { border-bottom: 0; }
.hp-opt small { display: block; margin-top: 4px; font-size: 11.5px; font-weight: 500; letter-spacing: .05em; opacity: .6; }

.hp-pick { display: flex; align-items: center; gap: clamp(14px, 3vw, 40px); padding: 12px var(--gutter); background: #fff; color: var(--ink); }
.hp-pick-sum { flex: 1; min-width: 0; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hp-pick-n { display: flex; align-items: baseline; gap: 10px; }
.hp-pick-n b { font-size: clamp(36px, 4.4vw, 56px); font-weight: 700; letter-spacing: -.04em; line-height: 1; font-variant-numeric: tabular-nums; }
.hp-pick-n span { font-size: 13px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500); }
.hp-pick-go { display: inline-flex; align-items: center; gap: 12px; padding: 18px 28px; background: var(--ink); color: #fff; font-size: 14px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; white-space: nowrap; transition: background .35s ease, color .35s ease; }
.hp-pick-go .icon { width: 17px; height: 17px; transition: transform .45s var(--ease-out); }
.hp-pick-go:hover .icon { transform: translateX(5px); }
[data-pick].has-sel .hp-pick-go { background: #64B989; color: var(--ink); }

@media (min-width: 1024px) {
  .hp-way { min-height: max(560px, calc(100svh - 68px - 92px)); }
  .hp-way .hp-opt .icon { transform: none; }
  .hp-way .hp-opt:hover .icon { transform: none; }
}
@media (max-width: 1023px) {
  .hp-ways { gap: var(--gap); }
  .hp-way { padding: 0 20px; }
  button.hp-way-top { display: flex; align-items: center; gap: 16px; padding: 18px 0; cursor: pointer; }
  .hp-way .hp-ai { width: 44px; height: 44px; }
  .hp-verb { font-size: 20px; }
  .hp-way-plus { display: block; }
  .hp-way.is-open .hp-way-plus { transform: rotate(45deg); }
  .hp-way:not(.is-open) .hp-opts { display: none; }
  .hp-way.is-open .hp-opts { margin: 0 0 22px; }
  .hp-prodotto .hp-opts { column-count: 2; column-gap: 20px; }
  .hp-prodotto .hp-opt small { display: none; }
  .hp-zona .hp-opts { column-count: 1; }
  .hp-way .hp-opt { padding: 11px 0; font-size: 15px; }
}
@media (max-width: 560px) {
  .hp-pick { flex-wrap: wrap; gap: 8px 14px; padding: 12px 20px; }
  .hp-pick-sum { flex: 1 1 100%; order: -1; }
  .hp-pick-n { flex: 1; }
  .hp-pick-go { padding: 15px 20px; font-size: 13px; }
}

@media (min-width: 1024px) {
  .hp-way .hp-opt { padding: 9px 0; }
  .hp-opt small { display: none; }
  .hp-opt.is-on small { display: block; }
  .hp-way ul.hp-opts { margin-top: 24px; }
}
@media (max-width: 560px) {
  .hp-bar { gap: 10px; padding: 18px 20px; }
  .hp-bar-in { padding-left: 0; padding-right: 0; }
  .hp-bar h2 { font-size: 12px; letter-spacing: .1em; }
  .hp-bar a { font-size: 13px; white-space: nowrap; }
}

/* Home v9: percorsi come prima (link), sempre aperti, richiudibili */
.hp-pick { display: none; }
.hp-ways-wrap { gap: 0; }
.hp-way-top { display: flex; align-items: flex-start; gap: 12px; }
.hp-way-link { display: flex; align-items: center; gap: 20px; flex: 1; min-width: 0; color: inherit; }
.hp-way-link .hp-verb { display: block; }
.hp-way-link .hp-verb > .icon { width: 20px; height: 20px; margin-left: 12px; vertical-align: -.1em; transition: transform .45s var(--ease-out); }
.hp-way-link:hover .hp-verb > .icon { transform: translateX(6px); }
button.hp-way-toggle { appearance: none; -webkit-appearance: none; flex: none; display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; background: rgba(255,255,255,.1); border: 0; color: #fff; cursor: pointer; transition: background .3s ease; }
button.hp-way-toggle:hover { background: rgba(255,255,255,.2); }
.hp-way-toggle .hp-way-plus { display: block; margin: 0; transition: transform .45s var(--ease-out); }
.hp-way.is-open .hp-way-plus { transform: rotate(45deg); }
.hp-way:not(.is-open) .hp-opts { display: none; }
.hp-way:not(.is-open) { min-height: 0; }
.hp-way .hp-opt .icon { opacity: 0; }
a.hp-opt .icon { opacity: .7; }
@media (min-width: 1024px) {
  .hp-way { min-height: 560px; }
  .hp-ways { align-items: flex-start; }
  .hp-way { align-self: stretch; }
  .hp-way:not(.is-open) { align-self: flex-start; }
  .hp-opt small { display: block; }
}
@media (max-width: 1023px) {
  .hp-way { padding: 24px 20px 8px; }
  button.hp-way-top { all: unset; }
  .hp-way .hp-ai { width: 52px; height: 52px; }
  .hp-verb { font-size: 22px; }
  .hp-way.is-open .hp-opts { margin: 14px 0 18px; }
  .hp-prodotto .hp-opts { column-count: 1; }
  .hp-prodotto .hp-opt small { display: block; }
}

/* Anteprima mappa (home) */
.hp-map { background: var(--paper); color: var(--ink); padding: 0; }
.hp-map-stage { position: relative; height: clamp(340px, 56vh, 560px); background: #E9EEF6; overflow: hidden; }
.hp-map-view { position: absolute; inset: 0; pointer-events: none; }
.hp-map-cover { position: absolute; inset: 0; z-index: 5; }
.hp-map-card { position: absolute; left: var(--gutter); bottom: clamp(16px, 3vw, 36px); z-index: 6; display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 2px 12px; padding: 18px 22px; background: var(--ink); color: #fff; pointer-events: none; box-shadow: 0 18px 40px -16px rgba(30,43,78,.5); transition: transform .5s var(--ease-out); }
.hp-map-card strong { font-size: clamp(40px, 5vw, 64px); font-weight: 700; letter-spacing: -.04em; line-height: 1; }
.hp-map-card span { font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.75); }
.hp-map-card i { grid-column: 1 / -1; display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; padding-top: 12px; border-top: 1px solid rgba(255,255,255,.2); font-style: normal; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #64B989; }
.hp-map-card i .icon { width: 16px; height: 16px; }
.hp-map-stage:hover .hp-map-card { transform: translateY(-6px); }
.hp-map .um-pin { border-color: #fff; background: var(--ink); }
@media (max-width: 560px) { .hp-map-card { left: 0; right: 0; bottom: 0; grid-template-columns: auto 1fr; padding: 14px 20px; } }
.hp-map-card { top: auto; height: auto; align-content: start; width: max-content; max-width: calc(100% - 2 * var(--gutter)); }
@media (max-width: 560px) { .hp-map-card { width: auto; max-width: none; } }

/* Percorso: meno elementi, più respiro */
.pw-q .pw-count, .pw-wide .pw-q .pw-count { margin-top: 20px; padding: 16px 20px; display: flex; align-items: baseline; gap: 12px; }
.pw-q .pw-count strong, .pw-wide .pw-q .pw-count strong { display: inline; font-size: clamp(40px, 4vw, 56px); line-height: 1; }
.pw-q .pw-count span { display: inline; margin: 0; font-size: 15px; }
.pw-wide .pw-q { grid-template-areas: "h1 cnt" "bk cnt"; grid-template-columns: minmax(0, 1fr) minmax(200px, 280px); }
@media (max-width: 1023px) { .pw-wide .pw-q { display: block; } }
.pw-row { grid-template-columns: minmax(0, 1fr) auto auto; }
@media (max-width: 1023px) { .pw-row { grid-template-columns: minmax(0, 1fr) auto; } }

/* Zona: selezione multipla */
.pw-lista li { position: relative; }
.pw-chk { position: absolute; left: 0; top: 50%; transform: translateY(-50%); z-index: 3; display: inline-flex; width: 44px; height: 44px; align-items: center; justify-content: center; cursor: pointer; }
.pw-chk input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.pw-chk i { width: 22px; height: 22px; display: grid; place-items: center; border: 2px solid var(--ink); background: #fff; color: transparent; transition: background .25s ease, color .25s ease; }
.pw-chk .icon { width: 14px; height: 14px; stroke-width: 3; }
.pw-chk input:checked + i { background: var(--ink); color: #fff; }
.pw-chk input:focus-visible + i { outline: 2.5px solid var(--blue); outline-offset: 2px; }
.pw-lista li:has(.pw-chk) .pw-row-z { padding-left: 52px; }
.pw-lista li.is-picked .pw-row-z { background: color-mix(in srgb, var(--mc) 16%, #fff); }
.pw-multi-bar { position: sticky; bottom: calc(100px + env(safe-area-inset-bottom)); z-index: 20; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; padding: 14px 18px; background: var(--ink); color: #fff; box-shadow: 0 18px 40px -16px rgba(30,43,78,.5); }
.pw-multi-bar span { font-size: 14px; font-weight: 600; }
.pw-multi-bar b { font-size: 18px; }
.pw-multi-bar .pw-go { flex: none; margin: 0; padding: 14px 22px; background: #64B989; color: var(--ink); }
.pw-row.is-soon { display: flex; align-items: center; justify-content: space-between; opacity: .5; padding: 18px 16px; border-bottom: 0; }
.pw-row.is-soon::before { display: none; }
.pw-row.is-soon em { font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 4px 8px; border: 1px solid currentColor; }

/* =============== Colori della home anche nei percorsi e nel menu: blu scuro prevalente, accenti verdi, fessure sottili =============== */
.pw-m-prodotto, .pw-m-zona, .pw-m-circuito, .pw-m-scelta { --mc: #1E2B4E; --mon: #fff; }
.pw-seg li::after { background: #64B989; }
.pw-fasce { gap: var(--gap); }
.pw-f-prodotto, .pw-f-circuito { background: #1E2B4E; color: #fff; }
.pw-f-zona { background: #263a6b; color: #fff; }
.pw-f-prodotto .pw-f-ai { color: #8FABD2; } .pw-f-zona .pw-f-ai { color: #64B989; } .pw-f-circuito .pw-f-ai { color: #DCE2EB; }
.pw-f-go, .pw-f-zona .pw-f-go, .pw-f-circuito .pw-f-go { background: #fff; color: #1E2B4E; }
.pw-fascia:hover .pw-f-go { background: #64B989; }
.pw-multi-bar .pw-go, .pw-go:hover { background: #64B989; color: #1E2B4E; }

/* Menu: stesse tre colonne della home */
.nm-cols { gap: var(--gap); background: var(--paper); }
.nm-sec, .nm-prodotto { --acc: #8FABD2; background: #1E2B4E; color: #fff; }
.nm-zona { --acc: #64B989; background: #263a6b; color: #fff; }
.nm-circuito { --acc: #DCE2EB; background: #1E2B4E; color: #fff; }
.nm-wm, .nm-circuito .nm-wm { fill: #fff; opacity: .06; }
.nm-title, .nm-title button { color: #fff; }
.nm-name { color: #fff; }
.nm-prodotto .nm-name { color: #fff; }
.nm-verb, .nm-circuito .nm-verb { color: rgba(255,255,255,.7); }
.nm-cat { color: #fff; }
.nm-cat:hover, .nm-subs a:hover { color: #64B989; }
.nm-subs a { color: rgba(255,255,255,.65); }
.nm-zone a { border-bottom-color: rgba(255,255,255,.16); color: #fff; }
.nm-zone b { color: #64B989; }
.nm-all, .nm-circuito .nm-all { color: #fff; }
.nm-all:hover { color: #64B989; }
.nm-empty { color: rgba(255,255,255,.65); }
.nm-ai, .nm-zona .nm-ai { color: var(--acc); }
.nm-wizard { background: #1E2B4E; } .nm-wizard:hover { background: #263a6b; }
.nm-wizard .nm-feat-go { color: #1E2B4E; }
.nm-mappa { background: #263a6b; color: #fff; } .nm-mappa:hover { background: #2d4a85; }
.nm-mappa small { color: rgba(255,255,255,.75); }
.nm-mappa .nm-feat-ico { color: #64B989; }
.nm-mappa .nm-feat-go { background: #fff; color: #1E2B4E; }
.nm-top { gap: var(--gap); background: var(--paper); }
@media (max-width: 1023px) { .nm-sec { border-bottom: 0; } .nm-cols { display: flex; flex-direction: column; } }
.nm-soon { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 14px 0; border-bottom: 1px solid rgba(255,255,255,.16); font-size: 30px; font-weight: 600; letter-spacing: -.025em; line-height: 1.15; opacity: .5; }
.nm-soon em { font-style: normal; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; padding: 4px 8px; border: 1px solid currentColor; }

/* =============== Richiesta: blu scuro, miniature a tessere (stile Zara), pochi elementi =============== */
.rq2-page { background: #1E2B4E; color: #fff; padding-bottom: 0; }
.rq2-page .site-foot { margin-top: 0; border-top: 1px solid rgba(255,255,255,.14); }
.rq2 { max-width: var(--maxw); margin: 0 auto; }
.rq2-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 22px var(--gutter); }
.rq2-bar h1 { font-size: clamp(14px, 1.4vw, 17px); font-weight: 600; letter-spacing: .14em; text-transform: uppercase; line-height: 1.2; }
.rq2-count { font-size: 13px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.rq2-count b { color: #64B989; font-size: 18px; }
.rq2-err { margin: 0 var(--gutter) 16px; padding: 14px 18px; background: #FF4331; color: #fff; font-weight: 600; }

.rq2-tiles { list-style: none; display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--gap); }
@media (min-width: 700px) { .rq2-tiles { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1100px) { .rq2-tiles { grid-template-columns: repeat(4, 1fr); } }
.rq2-tile { position: relative; aspect-ratio: 3 / 4; overflow: hidden; background: #263a6b; }
.rq2-tile-img, .rq2-tile-img img, .rq2-tile-img .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rq2-tile-img img, .rq2-tile-img .ph { transition: transform 1s var(--ease-out); }
.rq2-tile:hover .rq2-tile-img img { transform: scale(1.05); }
.rq2-tile-img .ph-sub { display: none; }
.rq2-tile::after { content: ''; position: absolute; inset: 40% 0 0; background: linear-gradient(to top, rgba(30,43,78,.95), transparent); pointer-events: none; }
.rq2-tile-txt { position: absolute; left: 14px; right: 14px; bottom: 14px; z-index: 2; pointer-events: none; }
.rq2-tile-txt small { display: block; margin-bottom: 4px; font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #64B989; }
.rq2-tile-txt strong { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; font-size: 14px; font-weight: 600; line-height: 1.25; }
.rq2-x { position: absolute; top: 0; right: 0; z-index: 3; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; background: #fff; color: #1E2B4E; border: 0; cursor: pointer; transition: background .3s ease, color .3s ease; }
.rq2-x:hover { background: #FF4331; color: #fff; }
.rq2-x .icon { width: 16px; height: 16px; }
.rq2-add { background: none; border: 1.5px dashed rgba(255,255,255,.3); }
.rq2-add::after { display: none; }
.rq2-add a { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; color: #fff; transition: background .3s ease; }
.rq2-add a:hover { background: rgba(255,255,255,.08); }
.rq2-add .icon { width: 32px; height: 32px; }

.rq2-sec { padding: clamp(28px, 4vw, 48px) var(--gutter) 0; }
.rq2-sec h2 { margin-bottom: 18px; font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.rq2-chips { list-style: none; display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.rq2-chips li { padding: 12px 16px; background: #263a6b; font-size: 15px; font-weight: 600; }
.rq2-link { display: inline-block; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #64B989; border-bottom: 1px solid currentColor; }
.rq2-link:hover { color: #fff; }
.rq2-fields { display: grid; grid-template-columns: 1fr; gap: 14px; }
@media (min-width: 700px) { .rq2-fields { grid-template-columns: 1fr 1fr; } .rq2-wide { grid-column: 1 / -1; } }
.rq2-f { display: flex; flex-direction: column; gap: 8px; }
.rq2-f > span { font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.7); }
.rq2-f input, .rq2-f select, .rq2-f textarea { width: 100%; padding: 15px 16px; background: #fff; color: #1E2B4E; border: 0; border-radius: 0; font: 500 16px/1.3 var(--f); }
.rq2-f textarea { resize: vertical; min-height: 96px; }
.rq2-f input:focus-visible, .rq2-f select:focus-visible, .rq2-f textarea:focus-visible { outline: 3px solid #64B989; outline-offset: 0; }
.rq2-check { display: flex; align-items: center; gap: 12px; margin-top: 18px; font-size: 15px; font-weight: 500; cursor: pointer; }
.rq2-check input { width: 22px; height: 22px; accent-color: #64B989; flex: none; }
.rq2 .hp { position: absolute; left: -9999px; }

.rq2-submit { position: sticky; bottom: 0; z-index: 30; margin-top: clamp(28px, 4vw, 48px); padding: 14px var(--gutter) calc(14px + env(safe-area-inset-bottom)); background: #1E2B4E; border-top: 1px solid rgba(255,255,255,.14); }
.rq2-cta { display: flex; align-items: center; justify-content: space-between; gap: 16px; width: 100%; padding: 18px 24px; background: #64B989; color: #1E2B4E; border: 0; font: 700 14px/1 var(--f); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: background .3s ease; }
.rq2-cta:hover { background: #fff; }
.rq2-cta .icon { width: 18px; height: 18px; }
@media (min-width: 700px) { .rq2-cta { max-width: 420px; margin-left: auto; } }

.rq2-empty, .rq2-done { min-height: 60vh; display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 28px; padding-top: 48px; padding-bottom: 48px; }
.rq2-done > .container { display: flex; flex-direction: column; align-items: flex-start; gap: 20px; }
.rq2-empty h1, .rq2-done h1 { font-size: clamp(34px, 5vw, 64px); font-weight: 600; letter-spacing: -.04em; line-height: 1.05; }
.rq2-done-ico { width: 64px; height: 64px; display: flex; align-items: center; justify-content: center; background: #64B989; color: #1E2B4E; }
.rq2-done-ico .icon { width: 30px; height: 30px; stroke-width: 2.6; }
.rq2-done-n { font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; color: #64B989; }
.rq2-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 18px 28px; }
.rq2-actions .rq2-cta { width: auto; max-width: none; margin: 0; gap: 20px; }
.rq2-actions .rq2-link { color: #fff; }

/* Richiesta v2: righe compatte con miniatura (come il carrello Zara), poco scroll */
.rq2-tiles { grid-template-columns: 1fr; gap: 0; padding: 0 var(--gutter); }
@media (min-width: 900px) { .rq2-tiles { grid-template-columns: 1fr 1fr; column-gap: clamp(24px, 4vw, 56px); } }
@media (min-width: 1200px) { .rq2-tiles { grid-template-columns: repeat(3, 1fr); } }
.rq2-tile { aspect-ratio: auto; overflow: visible; background: none; display: grid; grid-template-columns: 72px minmax(0, 1fr) auto; align-items: center; gap: 14px; padding: 10px 0; border-top: 1px solid rgba(255,255,255,.14); }
.rq2-tile::after { display: none; }
.rq2-tile-img { position: relative; inset: auto; display: block; width: 72px; height: 72px; overflow: hidden; background: #263a6b; }
.rq2-tile-img img, .rq2-tile-img .ph { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.rq2-tile-img .ph-fmt { font-size: 13px; }
.rq2-tile-txt { position: static; pointer-events: auto; min-width: 0; }
.rq2-tile-txt small { margin-bottom: 3px; font-size: 10.5px; }
.rq2-tile-txt strong { font-size: 14.5px; }
.rq2-x { position: static; width: 36px; height: 36px; background: rgba(255,255,255,.1); color: #fff; }
.rq2-x:hover { background: #FF4331; }
.rq2-add { display: block; padding: 0; border: 0; border-top: 1px solid rgba(255,255,255,.14); }
.rq2-add a { position: static; display: flex; align-items: center; gap: 12px; justify-content: flex-start; height: 72px; padding: 0 0; font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: #64B989; }
.rq2-add a:hover { background: none; color: #fff; }
.rq2-add .icon { width: 22px; height: 22px; }
@media (min-width: 900px) { .rq2-add { grid-column: auto; } }
.rq2-tile { grid-template-areas: "img txt x"; }
.rq2-tile-img { grid-area: img; } .rq2-tile-txt { grid-area: txt; } .rq2-x { grid-area: x; }
.rq2-add { grid-template-areas: none; }

/* =============== Area cliente: stesso linguaggio della richiesta (blu scuro, righe con miniatura, solo l'essenziale) =============== */
.ac-flash { margin: 0 var(--gutter) 0; padding: 14px 18px; font-size: 15px; font-weight: 600; }
.ac-flash.is-ok { background: #64B989; color: #1E2B4E; } .ac-flash.is-err { background: #FF4331; color: #fff; }
.ac-login { max-width: 480px; margin: 0 auto; padding: clamp(40px, 8vw, 96px) var(--gutter) 64px; }
.ac-login h1 { margin-bottom: 28px; font-size: clamp(34px, 5vw, 56px); font-weight: 600; letter-spacing: -.04em; line-height: 1; }
.ac-form { display: flex; flex-direction: column; gap: 14px; }
.ac-form .rq2-fields { margin-bottom: 8px; }
.ac-form .rq2-cta { margin-top: 10px; max-width: none; }
.ac-form .rq2-check { margin-top: 4px; }
.ac-alt { display: flex; gap: 24px; margin-top: 22px; }
.ac-alt .rq2-link { background: none; border: 0; border-bottom: 1px solid currentColor; padding: 0; cursor: pointer; font-family: inherit; color: #fff; }
.ac-sent { display: flex; align-items: center; gap: 12px; font-size: 20px; font-weight: 600; }
.ac-sent .icon { width: 26px; height: 26px; color: #64B989; }
.ac-out { background: none; border: 0; padding: 0; cursor: pointer; font-family: inherit; color: #fff; }

.ac-tabs { display: flex; gap: clamp(18px, 4vw, 40px); padding: 0 var(--gutter); border-bottom: 1px solid rgba(255,255,255,.14); overflow-x: auto; scrollbar-width: none; }
.ac-tabs::-webkit-scrollbar { display: none; }
.ac-tabs a { position: relative; flex: none; display: inline-flex; align-items: center; gap: 8px; padding: 14px 0; font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.55); transition: color .3s ease; }
.ac-tabs a b { font-size: 11px; padding: 2px 7px; background: #64B989; color: #1E2B4E; letter-spacing: 0; }
.ac-tabs a:hover { color: #fff; }
.ac-tabs a.is-active { color: #fff; }
.ac-tabs a.is-active::after { content: ''; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: #fff; }
.ac-sec { padding-top: 8px; padding-bottom: 8px; }
.ac-sec .rq2-fields, .ac-sec .ac-form { padding: 24px var(--gutter) 0; }
.ac-empty { padding: 40px var(--gutter); font-size: 16px; font-weight: 500; color: rgba(255,255,255,.6); }
.ac-more { padding: 22px var(--gutter) 0; }
.ac-note { padding: 14px var(--gutter) 0; font-size: 14px; color: rgba(255,255,255,.7); }
.ac-list { padding-top: 8px; }
.ac-row { grid-template-areas: "img txt act"; }
.ac-row .ac-act, .ac-row .ac-esito { grid-area: act; }
.ac-act { appearance: none; padding: 10px 16px; background: #64B989; color: #1E2B4E; border: 0; font: 700 12px/1 var(--f); letter-spacing: .1em; text-transform: uppercase; cursor: pointer; transition: background .3s ease; }
.ac-act:hover { background: #fff; }
.ac-act.is-on { background: rgba(255,255,255,.12); color: #fff; }
.ac-left { display: block; margin-top: 3px; font-style: normal; font-size: 13px; font-weight: 600; color: rgba(255,255,255,.7); }
.ac-left.is-soon { color: #FFA716; }
.ac-esito { font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.7); text-align: right; }
.ac-esito.is-steady { color: #64B989; } .ac-esito.is-off { color: rgba(255,255,255,.4); }
.ac-req { padding-top: 22px; }
.ac-req header { display: flex; align-items: baseline; gap: 14px; padding: 0 var(--gutter); }
.ac-req header strong { font-size: 13px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.ac-req header span { font-size: 13px; font-weight: 500; color: rgba(255,255,255,.6); }
.ac-notifs { list-style: none; padding: 8px var(--gutter) 0; }
.ac-notif { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; padding: 16px 0; border-top: 1px solid rgba(255,255,255,.14); }
.ac-notif strong { display: block; font-size: 15px; font-weight: 600; }
.ac-notif small { display: block; margin-top: 3px; font-size: 14px; color: rgba(255,255,255,.65); }
.ac-notif time { flex: none; font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.5); }
.ac-notif.is-new strong::before { content: ''; display: inline-block; width: 8px; height: 8px; margin-right: 10px; background: #64B989; border-radius: 50%; }
.ac .rq2-tiles { padding-left: var(--gutter); padding-right: var(--gutter); }
.ac .rq2-tile:first-child { border-top: 0; }
@media (min-width: 900px) { .ac-form .rq2-cta { max-width: 320px; } }
.ac-sec .ac-form .rq2-fields { padding: 0; }
.ac-login .ac-form { padding: 0; }

/* =============== Richiesta e area cliente: sfondo bianco, blu scuro per testi e pulsanti =============== */
.rq2-page { background: #fff; color: var(--ink); }
.rq2-page .site-foot { border-top: 0; }
.rq2-bar { border-bottom: 1px solid var(--gray-200); }
.rq2-count { color: var(--gray-500); }
.rq2-count b { color: var(--ink); }
.rq2-tile { border-top-color: var(--gray-200); }
.rq2-tile-img { background: var(--gray-100); }
.rq2-tile-txt small { color: var(--blue); }
.rq2-tile-txt strong { color: var(--ink); }
.rq2-x { background: var(--gray-100); color: var(--ink); }
.rq2-x:hover { background: #FF4331; color: #fff; }
.rq2-add, .rq2-add a { color: var(--ink); }
.rq2-add { border-top-color: var(--gray-200); }
.rq2-add a:hover { color: var(--blue); }
.rq2-sec h2 { color: var(--gray-500); }
.rq2-chips li { background: var(--gray-100); color: var(--ink); }
.rq2-link, .ac-alt .rq2-link, .ac-out { color: var(--ink); }
.rq2-link:hover { color: var(--blue); }
.rq2-f > span { color: var(--gray-500); }
.rq2-f input, .rq2-f select, .rq2-f textarea { background: var(--gray-100); color: var(--ink); }
.rq2-f input:disabled { color: var(--gray-500); }
.rq2-f input:focus-visible, .rq2-f select:focus-visible, .rq2-f textarea:focus-visible { outline-color: var(--ink); }
.rq2-submit { background: #fff; border-top-color: var(--gray-200); }
.rq2-cta { background: var(--ink); color: #fff; }
.rq2-cta:hover { background: var(--blue); color: #fff; }
.rq2-empty h1, .rq2-done h1 { color: var(--ink); }
.rq2-done-ico { background: var(--ink); color: #fff; }
.rq2-done-n { color: var(--blue); }
.rq2-actions .rq2-link { color: var(--ink); }
.ac-sent .icon { color: var(--blue); }
.ac-tabs { border-bottom-color: var(--gray-200); }
.ac-tabs a { color: var(--gray-500); }
.ac-tabs a:hover, .ac-tabs a.is-active { color: var(--ink); }
.ac-tabs a.is-active::after { background: var(--ink); }
.ac-tabs a b { background: var(--ink); color: #fff; }
.ac-empty { color: var(--gray-500); }
.ac-note { color: var(--gray-500); }
.ac-act { background: var(--ink); color: #fff; }
.ac-act:hover { background: var(--blue); }
.ac-act.is-on { background: var(--gray-100); color: var(--ink); }
.ac-left { color: var(--gray-500); }
.ac-left.is-soon { color: #E58F00; }
.ac-esito { color: var(--gray-500); }
.ac-esito.is-steady { color: #2E9A63; } .ac-esito.is-off { color: var(--gray-500); opacity: .7; }
.ac-req header span { color: var(--gray-500); }
.ac-notif { border-top-color: var(--gray-200); }
.ac-notif small { color: var(--gray-500); }
.ac-notif time { color: var(--gray-500); }
.ac-notif.is-new strong::before { background: var(--ink); }
.rq2-check input, .rq2-check { accent-color: var(--ink); }
.ac-flash.is-ok { background: var(--ink); color: #fff; }

/* Filtri del catalogo: colonne scure come il menu, testi chiari */
.fx .fx-all span, .fx .fx-cat span { color: #fff; }
.fx .fx-sub span { color: rgba(255,255,255,.7); }
.fx .fx-cat:hover span, .fx .fx-sub:hover span, .fx input:checked + span { color: #64B989; }
.fx-cat span::before, .fx-sub span::before, .fx-all span::before { background: #64B989; }
.fx .fz-row { color: #fff; border-bottom: 1px solid rgba(255,255,255,.16); }
.fx .fz-row b { color: #64B989; }
.fx .fz-row.sel, .fx .fz-row.sel b { color: #1E2B4E; }
.fx .fz-crumb { color: rgba(255,255,255,.7); }
.fx .fz-crumb.cur { color: #fff; }
.fx .fz-path span, .fx .fz-none { color: rgba(255,255,255,.55); }
.fx small { opacity: .7; }

/* Catalogo, vista griglia: schede dense con più spazio alle foto. Desktop 3 (o 4), telefono 2 (o 1). */
.cx-dens { display: flex; gap: 6px; margin-left: auto; }
.cx-dens button { display: flex; align-items: center; justify-content: center; width: 44px; height: 36px; border: 1.5px solid var(--gray-200); background: #fff; color: var(--gray-500); cursor: pointer; border-radius: 2px; transition: color .3s ease, border-color .3s ease, background .3s ease; }
.cx-dens button:hover { color: var(--ink); border-color: var(--ink); }
.cx-dens button.on { background: var(--ink); border-color: var(--ink); color: #fff; }
.cx-dens svg { width: 24px; height: 16px; fill: currentColor; }
.cx-dens .cx-d-small { display: none; }
.cx-res .ev-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.cx-res[data-d="b"] .ev-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.cx-res .ev-card { display: flex; flex-direction: column; }
.cx-res .ev-link { flex: 1; }
.cx-res .ev-media { aspect-ratio: 5 / 4; }
.cx-res .ev-pill { top: 8px; left: 8px; padding: 4px 8px; font-size: 9.5px; }
.cx-res .ev-body { padding: 8px 2px 8px; }
.cx-res .ev-cat { margin-bottom: 3px; font-size: 9.5px; }
.cx-res .ev-name { font-size: 13px; line-height: 1.25; font-weight: 600; letter-spacing: -.01em; }
.cx-res .ev-spec { margin-top: 4px; font-size: 12px; gap: 6px; }
.cx-res .ev-fmt { font-size: 12px; }
.cx-res .ev-lit { width: 20px; height: 20px; }
.cx-res .ev-bulb { width: 11px; height: 11px; }
.cx-res .ev-loc { margin-top: 3px; font-size: 11px; }
.cx-res .ev-loc .icon { width: 11px; height: 11px; }
/* Pulsante Aggiungi in vista: "+" piccolo accanto al testo, in basso a destra della scheda */
.cx-res .ev-card { position: relative; }
.cx-res .ev-body { padding-bottom: 8px; }
.cx-res .ev-spec { min-height: 32px; }
.cx-res .ev-spec, .cx-res .ev-loc { padding-right: 40px; }
.cx-res .ev-add { position: absolute; right: 0; bottom: 8px; top: auto; width: 32px; height: 32px; border-radius: 2px; background: #fff; color: var(--ink); border: 1.5px solid var(--ink); box-shadow: none; }
.cx-res .ev-add:hover { transform: none; background: var(--ink); color: #fff; }
.cx-res .ev-add.is-on { background: #64B989; border-color: #64B989; color: #1E2B4E; }
.cx-res .ev-add .icon { width: 16px; height: 16px; stroke-width: 2.6; }
@media (max-width: 767px) {
  .cx-dens .cx-d-big { display: none; }
  .cx-dens .cx-d-small { display: block; }
  .cx-res .ev-grid, .cx-res[data-d="b"] .ev-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .cx-res[data-d="b"] .ev-grid { grid-template-columns: 1fr; }
  .cx-res .ev-media { aspect-ratio: 1 / 1; }
  .cx-res[data-d="b"] .ev-media { aspect-ratio: 4 / 3; }
  .cx-res .ev-pill { top: 6px; left: 6px; font-size: 9px; padding: 3px 7px; }
  .cx-res .ev-name { font-size: 12px; }
  .cx-res[data-d="b"] .ev-name { font-size: 14px; }
}

/* Home: invito ad aprire il catalogo completo (sopra i tre percorsi, più grande di loro) */
.hp-catalogo { background: #1E2B4E; color: #fff; padding: clamp(44px, 7vw, 104px) 0; }
.hp-catalogo-in { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px 48px; flex-wrap: wrap; }
.hp-catalogo h2 { font-size: clamp(44px, 8vw, 112px); font-weight: 600; letter-spacing: -.045em; line-height: .96; max-width: 11em; }
.hp-catalogo p { max-width: 520px; margin-top: 20px; font-size: clamp(16px, 1.6vw, 20px); line-height: 1.5; font-weight: 500; opacity: .92; }
.hp-catalogo p strong { font-weight: 700; }
.hp-catalogo .btn { background: #fff; color: #1E2B4E; }
.hp-catalogo .btn:hover { background: #64B989; }
@media (max-width: 640px) { .hp-catalogo-in .btn { width: 100%; justify-content: center; } }

/* Catalogo in stile Zara: foto quasi a filo, testi minuscoli e sottili, niente riquadri */
.is-cat .cx-res { max-width: none; padding-left: 8px; padding-right: 8px; }
.cx-res .ev-grid, .cx-res[data-d="b"] .ev-grid { gap: 4px 4px; }
.cx-res .ev-media { aspect-ratio: 4 / 5; }
.cx-res .ev-pill { top: 0; left: 0; padding: 4px 8px; background: #fff; color: var(--ink); font-size: 9px; font-weight: 600; letter-spacing: .08em; }
.cx-res .ev-cat { display: none; }
.cx-res .ev-body { padding: 8px 6px 14px; }
.cx-res .ev-name { font-size: 11px; font-weight: 400; letter-spacing: .04em; text-transform: uppercase; line-height: 1.35; color: var(--ink); -webkit-line-clamp: 2; }
.cx-res .ev-spec { margin-top: 4px; min-height: 0; }
.cx-res .ev-fmt { font-size: 11px; font-weight: 400; letter-spacing: .02em; color: var(--gray-500); }
.cx-res .ev-loc { margin-top: 2px; font-size: 11px; font-weight: 400; color: var(--gray-500); }
.cx-res .ev-lit { background: none; width: 16px; height: 16px; }
.cx-res .ev-add { bottom: 14px; right: 6px; width: 28px; height: 28px; border: 0; background: transparent; }
.cx-res .ev-add:hover { background: var(--ink); color: #fff; }
.cx-res .ev-add.is-on { background: transparent; color: #2f8d5c; }
.cx-res .ev-body, .cx-res .ev-spec, .cx-res .ev-loc { text-align: left; }
.cx-res .ev-card:hover .ev-name { color: var(--ink); }
@media (max-width: 767px) {
  .is-cat .cx-res { padding-left: 2px; padding-right: 2px; }
  .cx-res .ev-grid, .cx-res[data-d="b"] .ev-grid { gap: 2px; }
  .cx-res .ev-media, .cx-res[data-d="b"] .ev-media { aspect-ratio: 4 / 5; }
  .cx-res .ev-name, .cx-res[data-d="b"] .ev-name { font-size: 10.5px; }
  .cx-res .ev-add { bottom: 0; }
}

/* Home in stile Zara: tre colonne di solo testo, piccole e in maiuscolo */
.hz { background: #fff; padding: clamp(36px, 5vw, 72px) 0; }
.hz-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 40px clamp(24px, 4vw, 64px); }
.hz-head { display: flex; flex-direction: column; gap: 8px; padding-bottom: 18px; border-bottom: 1px solid var(--ink); color: var(--ink); }
.hz-head small { font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--gray-500); }
.hz-head strong { display: flex; align-items: center; justify-content: space-between; font-size: 13px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.hz-head .icon { width: 16px; height: 16px; transition: transform .45s var(--ease-out); }
.hz-head:hover .icon { transform: translateX(5px); }
.hz-list { list-style: none; }
.hz-list a { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; padding: 13px 0; border-bottom: 1px solid var(--gray-200); font-size: 12px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--ink); transition: padding-left .45s var(--ease-out); }
.hz-list a:hover { padding-left: 6px; }
.hz-list b { font-weight: 400; font-size: 11px; color: var(--gray-500); font-variant-numeric: tabular-nums; }
@media (max-width: 767px) { .hz-grid { grid-template-columns: 1fr; gap: 36px; } }

/* Catalogo: più aria tra le schede, riga piccola grigia sopra il nome e "+" in alto a destra del testo */
.is-cat .cx-res { padding-left: 24px; padding-right: 24px; }
.cx-res .ev-grid, .cx-res[data-d="b"] .ev-grid { gap: 48px 22px; }
.cx-res .ev-cat { display: block; margin-bottom: 4px; font-size: 10px; font-weight: 400; letter-spacing: .1em; color: var(--gray-500); }
.cx-res .ev-body { padding: 10px 0 4px; position: relative; }
.cx-res .ev-name { padding-right: 36px; }
.cx-res .ev-add { top: auto; bottom: 0; right: 0; }
@media (max-width: 767px) {
  .is-cat .cx-res { padding-left: 12px; padding-right: 12px; }
  .cx-res .ev-grid, .cx-res[data-d="b"] .ev-grid { gap: 32px 12px; }
  .cx-res .ev-name { padding-right: 30px; }
}
.hz-more { padding-top: 0; }
.hz-more .hz-list a { padding: 18px 0; }
.hz-more .hz-list b { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); }
.hz-more .hz-list .icon { width: 15px; height: 15px; }

/* Home: le tre colonne colorate in stile Zara (testi piccoli, sottili, in maiuscolo; niente titoli giganti) */
.hz-ways .hp-ways { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; }
.hz-ways .hp-way { min-height: clamp(360px, 52vh, 520px); padding: clamp(24px, 3vw, 44px); display: flex; flex-direction: column; flex: none; transition: none; }
.hz-ways .hp-ways:hover .hp-way, .hz-ways .hp-ways .hp-way:hover { flex-grow: 0; }
.hz-ways .hz-head { border-bottom-color: rgba(255,255,255,.7); color: #fff; }
.hz-ways .hz-head small { color: rgba(255,255,255,.7); }
.hz-ways .hz-list { margin: 0; }
.hz-ways .hz-list a { color: #fff; border-bottom-color: rgba(255,255,255,.18); }
.hz-ways .hz-list b { color: rgba(255,255,255,.7); }
.hz-ways .hz-list .icon { width: 14px; height: 14px; opacity: 1; transform: none; }
.hz-ways .hz-list a:hover { color: #64B989; }
@media (max-width: 767px) { .hz-ways .hp-ways { grid-template-columns: 1fr; } .hz-ways .hp-way { min-height: 0; padding: 28px 20px 20px; } }

/* Icone sottili della home: una per colonna, al posto della riga piccola sopra il titolo */
.hz-ico { width: 28px; height: 28px; flex: none; }
.hz-head { flex-direction: row; align-items: center; gap: 16px; }
.hz-head strong { flex: 1; }
.hz-ways .hz-head .hz-ico { color: #fff; }
.hz-ways .hz-head { padding-bottom: 20px; }
.hz-ways .hz-head strong .icon, .hz-list .icon { stroke-width: 1.2; }
.hz-more .hz-list a > span { display: inline-flex; align-items: center; gap: 14px; }
.hz-more .hz-ico { width: 22px; height: 22px; }
.hp-catalogo .btn { display: inline-flex; align-items: center; gap: 10px; }
.hp-catalogo .btn .hz-ico { width: 20px; height: 20px; }
.hz-more .hz-list a { align-items: center; }

/* Schede prodotto della home: solo testo, tratto sottile */
.hz-prod { padding-bottom: clamp(24px, 3vw, 40px); }
.hz-h2 { margin-bottom: 22px; font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); }
.hz-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 16px; }
.hz-card { display: flex; flex-direction: column; gap: 10px; min-height: 220px; padding: 22px; border: 1px solid var(--gray-200); color: var(--ink); transition: border-color .35s ease, background .35s ease; }
.hz-card:hover { border-color: var(--ink); }
.hz-card-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: auto; color: var(--ink); }
.hz-card-top b { font-size: 11px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; color: var(--gray-500); }
.hz-card strong { font-size: 14px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.hz-card-f, .hz-card-l { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500); }
.hz-card-f { margin-top: -4px; }
.hz-card i { display: inline-flex; align-items: center; gap: 8px; margin-top: 8px; font-style: normal; font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; border-bottom: 1px solid var(--ink); align-self: flex-start; padding-bottom: 3px; }
.hz-card i .icon { width: 14px; height: 14px; stroke-width: 1.2; transition: transform .45s var(--ease-out); }
.hz-card:hover i .icon { transform: translateX(4px); }
.hz-card-top { margin-bottom: 36px; }
.hz-card i { margin-top: auto; }
.hz-card-f { margin-top: 0; }

/* Header in stile Zara: menu a sinistra, marchio al centro, a destra testi piccoli e icone sottili */
.site-nav .sn-in { display: grid; grid-template-columns: 1fr auto 1fr; gap: 12px; height: 60px; }
.site-nav .sn-in > .brand, .site-nav .sn-in > a:first-of-type { justify-self: center; }
.site-nav .sn-burger { justify-self: start; width: 40px; height: 40px; margin-left: -8px; background: transparent; color: var(--ink); border-radius: 0; }
.site-nav .sn-burger:hover { background: transparent; transform: none; }
.site-nav .sn-burger .ai, .site-nav .sn-burger .icon { width: 24px; height: 24px; stroke-width: 1.2; }
.site-nav .sn-side { justify-self: end; gap: 6px; align-items: center; }
.site-nav .sn-round { width: 38px; height: 38px; background: transparent; border-radius: 0; }
.site-nav .sn-round:hover { background: transparent; opacity: .6; }
.site-nav .sn-round .ai, .site-nav .sn-round .icon { width: 22px; height: 22px; stroke-width: 1.2; }
.site-nav .sn-req { background: transparent; padding: 0 6px; gap: 8px; font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
.site-nav .sn-req .ai, .site-nav .sn-req .icon { width: 22px; height: 22px; stroke-width: 1.2; }
.site-nav .sn-req-n { background: none; color: var(--ink); min-width: 0; padding: 0; font-size: 11px; font-weight: 500; }
.site-nav .sn-req-n::before { content: '('; } .site-nav .sn-req-n::after { content: ')'; }
.site-nav .sn-cta { background: transparent; color: var(--ink); border: 0; box-shadow: none; padding: 0 10px; height: auto; font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; border-bottom: 1px solid var(--ink); border-radius: 0; }
.site-nav .sn-cta .icon { display: none; }
@media (max-width: 767px) { .site-nav .sn-req-t, .site-nav .sn-cta { display: none; } }
.site-nav .sn-req .sn-req-n { background: transparent !important; color: var(--ink) !important; min-width: 0; height: auto; padding: 0; border-radius: 0; }

/* ===== Stile Zara su tutte le pagine: titoli piccoli in maiuscolo, tratti sottili, spigoli netti. I colori restano quelli del brand. ===== */
h1, .cx-title h1, .page-head h1, .ci-head h1, .pw-q, .pw-q h1 { font-size: clamp(18px, 2vw, 24px); font-weight: 500; letter-spacing: .06em; text-transform: uppercase; line-height: 1.25; }
.cx-title { padding-top: clamp(20px, 3vw, 36px); padding-bottom: 0; }
.crumbs, .crumbs a { font-size: 11px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; color: var(--gray-500); }
.crumbs [aria-current], .crumbs span:last-child { color: var(--ink); font-weight: 500; }
.sec-head h2, .pd-block-head h2, .pd-block-head h3, .zona-editoriale h2, .ac-login h2, .rq2-sec h2, .rq2-sec h3 { font-size: 12px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; }
.sec-link { font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }

/* Pulsanti: spigoli netti, testo piccolo in maiuscolo */
.btn, .btn-lg, .btn-sm, .rq2-submit, .rq2-cta, .pag-btn { border-radius: 0; font-size: 11.5px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.btn .icon, .rq2-submit .icon, .rq2-cta .icon { stroke-width: 1.4; }

/* Campi: sfondo bianco e solo la riga sotto */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="date"], input[type="number"], input[type="search"], select, textarea { border-radius: 0; background: #fff; border: 0; border-bottom: 1px solid var(--ink); box-shadow: none; font-size: 14px; }
input:focus, select:focus, textarea:focus { outline: 0; border-bottom-width: 2px; }
label, .f-group > span, .rq2-f > span { font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; color: var(--gray-500); }

/* Schede e riquadri: filo sottile, niente riempimenti né angoli arrotondati */
.cg-card, .rq2-tile, .pd-facts > *, .cg-chip, .cg-pill, .pag-num, .zona-foto { border-radius: 0; }
.pd-facts > * { background: #fff; border: 1px solid var(--gray-200); }
.pd-facts dt, .pd-facts small, .pd-facts span:first-child { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--gray-500); }
.cg-name { font-size: 13px; font-weight: 500; letter-spacing: .05em; text-transform: uppercase; line-height: 1.3; }
.cg-zone, .cg-tag { font-size: 11px; letter-spacing: .06em; }
.cg-chip, .cg-pill { background: #fff; border: 1px solid var(--gray-200); font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.cg-chip.selected, .cg-pill.selected { background: var(--ink); color: #fff; border-color: var(--ink); }
.pag-num, .pag-btn { border: 1px solid var(--gray-200); background: #fff; font-size: 11px; letter-spacing: .08em; }
.pag-num.is-on { background: var(--ink); color: #fff; border-color: var(--ink); }

/* Percorso guidato */
.pw-row-t strong { font-size: 13px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase; }
.pw-row-c { font-size: 11px; font-weight: 400; letter-spacing: .08em; color: var(--gray-500); }
.pw-bar-now, .pw-bar-reset { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.pw-liv, .pw-sub { font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--gray-500); }

/* Piè di pagina */
.sf-nav a, .sf-nav h3, .sf-nav h4, .sf-copy { font-size: 11px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; }

/* Icona del carrello: sacchetto sottile */
.sn-bag { width: 24px; height: 24px; flex: none; }
.site-nav .sn-req .sn-bag { color: var(--ink); }


/* Barra "nella tua richiesta" in basso: stessa funzione di prima, in stile Zara (testi piccoli in maiuscolo, spigoli netti) */
.sel-pill-main strong { font-size: 12px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.sel-pill-main small { font-size: 10.5px; letter-spacing: .1em; text-transform: uppercase; opacity: .7; }
.sel-pill-cta { border-radius: 0; font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; padding: 12px 18px; }

/* Home: schede impianto di solo testo che ruotano a caso */
.hz-imp { padding-bottom: 0; }
.hz-imp-head { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin-bottom: 22px; }
.hz-imp-head .hz-h2 { margin: 0; }
.hz-imp-all { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; border-bottom: 1px solid var(--ink); padding-bottom: 2px; }
.hz-imp-all .icon { width: 14px; height: 14px; stroke-width: 1.2; }
.hz-imp-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; transition: opacity .45s ease; }
.hz-imp-grid.is-out { opacity: 0; }
.hz-imp-card { position: relative; border: 1px solid var(--gray-200); transition: border-color .35s ease; }
.hz-imp-card[hidden] { display: none; }
.hz-imp-card:hover { border-color: var(--ink); }
.hz-imp-link { display: flex; flex-direction: column; gap: 10px; min-height: 190px; padding: 20px 56px 20px 20px; color: var(--ink); }
.hz-imp-t { font-size: 10px; letter-spacing: .12em; text-transform: uppercase; color: var(--gray-500); }
.hz-imp-link strong { font-size: 12px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; line-height: 1.4; display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden; }
.hz-imp-z { margin-top: auto; font-size: 11px; letter-spacing: .06em; text-transform: uppercase; color: var(--gray-500); }
.hz-imp-add { position: absolute; right: 12px; bottom: 12px; top: auto; width: 30px; height: 30px; border: 0; background: transparent; box-shadow: none; border-radius: 0; color: var(--ink); }
.hz-imp-add:hover { background: var(--ink); color: #fff; transform: none; }
.hz-imp-add.is-on { background: transparent; color: #2f8d5c; }
.hz-imp-add .icon { width: 18px; height: 18px; stroke-width: 1.4; }
@media (max-width: 1023px) { .hz-imp-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 480px) { .hz-imp-grid { gap: 10px; } .hz-imp-link { min-height: 170px; padding: 16px 44px 16px 14px; } }

/* Menu a tutta pagina in stile Zara: testi piccoli in maiuscolo, righe sottili, icone sottili. Stessi collegamenti e stessi colori. */
.nm-feat { min-height: 0; padding: 18px 24px; display: flex; align-items: center; gap: 14px; }
.nm-feat-txt strong, .nm-feat-txt { font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.nm-feat small { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.nm-feat-ico .icon, .nm-feat-ico .ai, .nm-feat-ico svg { width: 24px; height: 24px; stroke-width: 1.1; }
.nm-feat-go { width: auto; height: auto; background: transparent !important; color: inherit !important; border-radius: 0; margin-left: auto; }
.nm-feat-go .icon { width: 16px; height: 16px; stroke-width: 1.2; }
.nm-title button { gap: 14px; }
.nm-name { font-size: 13px !important; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; line-height: 1.2; }
.nm-verb { font-size: 11px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; margin-top: 4px; }
.nm-ai .icon, .nm-ai .ai, .nm-ai svg { width: 26px; height: 26px; stroke-width: 1.1; }
.nm-plus { stroke-width: 1.2; }
.nm-cats { gap: 22px 24px; }
.nm-cat { font-size: 12px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.nm-subs a { font-size: 11px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; }
.nm-zone a, .nm-soon { font-size: 12px !important; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; padding: 13px 0; }
.nm-zone b { font-size: 11px; font-weight: 400; letter-spacing: .08em; }
.nm-soon em { font-size: 10px; letter-spacing: .12em; }
.nm-cc strong { font-size: 12px; font-weight: 500; letter-spacing: .1em; text-transform: uppercase; }
.nm-cc small { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; }
.nm-all { font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.nm-pages a, .nm-pages-in a { font-size: 11px; font-weight: 400; letter-spacing: .12em; text-transform: uppercase; }
.nm-bar .sn-burger { background: transparent; color: var(--ink); border-radius: 0; }
.nm-bar .sn-burger:hover { background: transparent; transform: none; }
.nm-bar .sn-burger .icon { width: 24px; height: 24px; stroke-width: 1.2; }
.nm-title button { align-items: center; }
.nm-ai { display: inline-flex; align-items: center; }

/* Menu su telefono: righe compatte con filo sottile, titoli a fisarmonica, niente forma di sfondo */
@media (max-width: 980px) {
  .nm-top { gap: 1px; background: rgba(255,255,255,.25); }
  .nm-feat { min-height: 56px; height: 56px; padding: 0 20px; }
  .nm-wm { display: none; }
  .nm-sec { padding: 0 20px; }
  .nm-title button { min-height: 60px; padding: 0; width: 100%; }
  .nm-sec + .nm-sec { border-top: 1px solid rgba(255,255,255,.18); }
  .nm-body-in { padding-bottom: 14px; }
  .nm-cats { grid-template-columns: 1fr; gap: 0; }
  .nm-cats > li { border-top: 1px solid rgba(255,255,255,.14); padding: 0; }
  .nm-cats > li:first-child { border-top: 0; }
  .nm-cat { display: block; padding: 14px 0 6px; }
  .nm-cats > li:not(:has(.nm-subs)) .nm-cat { padding-bottom: 14px; }
  .nm-subs { margin: 0 0 10px; }
  .nm-subs a { display: block; padding: 6px 0 6px 14px; }
  .nm-zone a, .nm-soon { padding: 14px 0; }
  .nm-circ { gap: 1px; }
  .nm-cc { padding: 12px 0; }
  .nm-all { display: block; padding: 14px 0 4px; }
}

/* ===== Più vivo: sezioni che si allargano al passaggio del mouse, forme che si muovono, colonne a scalini ===== */
.nm-home { background: #3466AE; color: #fff; }
.nm-top { grid-template-columns: repeat(3, 1fr); }
@media (max-width: 767px) { .nm-top { grid-template-columns: 1fr; } }

/* Home: le tre colonne */
.hz-ways .hp-way { position: relative; overflow: hidden; }
.hz-ways .nm-wm { display: block; position: absolute; top: auto; left: auto; right: -14%; bottom: -10%; width: 72%; height: auto; fill: #fff; opacity: .06; transform: rotate(-10deg); transition: opacity .9s ease, transform 1.3s var(--ease-out); pointer-events: none; }
.hz-ways .hp-way:nth-child(2) .nm-wm { right: auto; left: -16%; transform: rotate(8deg); }
.hz-ways .hp-way:nth-child(3) .nm-wm { right: -8%; bottom: auto; top: -12%; transform: rotate(-4deg); }
.hz-ways .hp-way > *:not(.nm-wm) { position: relative; z-index: 1; }
.hz-ways .hp-way:hover .nm-wm { opacity: .16; transform: rotate(0) scale(1.2); }
.hz-ways .hz-head .hz-ico { transition: transform .6s var(--ease-out); }
.hz-ways .hp-way:hover .hz-head .hz-ico { transform: scale(1.18) rotate(-4deg); }
@media (min-width: 1024px) {
  .hz-ways .hp-ways { display: flex; align-items: stretch; gap: 4px; }
  .hz-ways .hp-way { flex: 1 1 0; min-width: 0; min-height: clamp(420px, 56vh, 560px); transition: flex-grow 1.1s var(--ease-out); }
  .hz-ways .hp-ways:hover .hp-way { flex-grow: .8; }
  .hz-ways .hp-ways .hp-way:hover { flex-grow: 1.6; }
  .hz-ways .hz-list a { transition: padding-left .45s var(--ease-out), letter-spacing .6s var(--ease-out); }
  .hz-ways .hp-way:hover .hz-list a { letter-spacing: .14em; }
}

/* Menu: stesso effetto sulle tre colonne (solo schermi larghi) */
.nm-sec .nm-wm { transition: opacity .9s ease, transform 1.3s var(--ease-out); }
@media (min-width: 1024px) {
  .nav-menu .nm-cols { display: flex; align-items: stretch; }
  .nav-menu .nm-sec { flex: 1 1 0; min-width: 0; transition: flex-grow 1.1s var(--ease-out); }
  .nav-menu .nm-cols:hover .nm-sec { flex-grow: .8; }
  .nav-menu .nm-cols .nm-sec:hover { flex-grow: 1.6; }
  .nav-menu .nm-cols .nm-sec:hover .nm-wm { opacity: .18; transform: scale(1.15) rotate(-3deg); }
  .nav-menu .nm-feat .nm-feat-go { transition: transform .5s var(--ease-out); }
}
@media (prefers-reduced-motion: reduce) { .hz-ways .hp-way, .nav-menu .nm-sec, .hz-ways .nm-wm { transition: none !important; } }
.nav-menu .nm-sec > *:not(.nm-wm) { position: relative; z-index: 1; }
.nav-menu .nm-sec .nm-wm { z-index: 0; }
@media (min-width: 1024px) { .nav-menu .nm-cols .nm-sec:hover .nm-wm { opacity: .12; } .hz-ways .hp-way:hover .nm-wm { opacity: .12; } }

/* Menu su telefono, secondo passaggio: le tre sezioni sono blocchi colorati separati, chiusi all'apertura */
@media (max-width: 1023px) {
  .nav-menu .nm-top { gap: 1px; background: rgba(255,255,255,.3); }
  .nav-menu .nm-feat { height: 54px; min-height: 54px; }
  .nav-menu .nm-cols { display: flex; flex-direction: column; gap: 8px; padding: 8px 0 0; background: var(--paper); }
  .nav-menu .nm-sec { padding: 0 20px; border: 0; }
  .nav-menu .nm-sec + .nm-sec { border-top: 0; }
  .nav-menu .nm-title button { min-height: 88px; gap: 16px; }
  .nav-menu .nm-ai { width: 40px; height: 40px; justify-content: center; }
  .nav-menu .nm-ai .icon, .nav-menu .nm-ai .ai, .nav-menu .nm-ai svg { width: 32px; height: 32px; }
  .nav-menu .nm-tx { display: flex; flex-direction: column; gap: 6px; text-align: left; }
  .nav-menu .nm-name { font-size: 14px !important; letter-spacing: .16em; }
  .nav-menu .nm-verb { display: block; margin: 0; font-size: 10.5px; opacity: .75; }
  .nav-menu .nm-plus { width: 36px; height: 36px; padding: 9px; border: 1px solid rgba(255,255,255,.45); border-radius: 50%; margin-left: auto; transition: transform .5s var(--ease-out), background .35s ease; }
  .nav-menu .nm-sec.open .nm-plus { transform: rotate(45deg); background: rgba(255,255,255,.12); }
  .nav-menu .nm-body-in { padding: 2px 0 20px; border-top: 1px solid rgba(255,255,255,.2); }
  .nav-menu .nm-sec.open .nm-body-in { animation: nmIn .5s var(--ease-out) both; }
  @keyframes nmIn { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: none; } }
  .nav-menu .nm-wm { display: block; top: auto; bottom: -30px; right: -40px; width: 170px; opacity: .07; }
}

/* ===== Catalogo su schermi larghi, come Zara: niente barra in alto, colonna a sinistra, testi a destra ===== */
.cz-side { display: none; }
@media (min-width: 1024px) {
  body.is-cat:not(.is-map) .cx-title, body.is-cat:not(.is-map) .cx-strip, body.is-cat:not(.is-map) .cx-bar { display: none; }
  body.is-cat:not(.is-map) .site-nav, body.is-cat:not(.is-map) .site-nav.is-stuck { position: fixed; top: 0; left: 0; right: 0; background: transparent; border: 0; box-shadow: none; -webkit-backdrop-filter: none; backdrop-filter: none; pointer-events: none; }
  body.is-cat:not(.is-map) .site-nav .sn-in { height: 64px; padding: 0; max-width: none; margin: 0; }
  body.is-cat:not(.is-map) .site-nav .sn-in > * { pointer-events: auto; }
  body.is-cat:not(.is-map) .site-nav .brand { display: none; }
  body.is-cat:not(.is-map) .site-nav .sn-burger { margin-left: 14px; }
  /* A destra: CERCA in alto, poi gli altri testi in colonna */
  body.is-cat:not(.is-map) .site-nav .sn-side { position: fixed; top: 22px; right: 40px; flex-direction: column; align-items: flex-end; gap: 14px; pointer-events: auto; }
  body.is-cat:not(.is-map) .site-nav .sn-round, body.is-cat:not(.is-map) .site-nav .sn-req, body.is-cat:not(.is-map) .site-nav .sn-cta { width: auto; height: auto; padding: 0; font-size: 12px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); background: none; border: 0; }
  body.is-cat:not(.is-map) .site-nav .sn-round .ai, body.is-cat:not(.is-map) .site-nav .sn-round .icon, body.is-cat:not(.is-map) .site-nav .sn-round .account-ini, body.is-cat:not(.is-map) .site-nav .sn-bag, body.is-cat:not(.is-map) .site-nav .sn-req .ai { display: none; }
  body.is-cat:not(.is-map) .site-nav [data-gsearch-toggle] { order: 0; border-bottom: 1px solid var(--ink); padding: 0 0 8px 120px; }
  body.is-cat:not(.is-map) .site-nav [data-gsearch-toggle]::after { content: 'Cerca'; }
  body.is-cat:not(.is-map) .site-nav .sn-req { order: 1; margin-top: 130px; }
  body.is-cat:not(.is-map) .site-nav .sn-req-t { display: inline; }
  body.is-cat:not(.is-map) .site-nav .sn-user { order: 2; }
  body.is-cat:not(.is-map) .site-nav .sn-user::after { content: 'Area cliente'; }
  body.is-cat:not(.is-map) .site-nav .sn-cta { order: 3; display: inline; border-bottom: 1px solid var(--ink); padding-bottom: 2px; }

  /* Colonna a sinistra */
  body.is-cat:not(.is-map) .cz-side { display: flex; flex-direction: column; justify-content: space-between; position: fixed; top: 0; bottom: 0; left: 0; width: 300px; padding: 84px 0 36px 24px; z-index: 40; overflow-y: auto; }
  .cz-cats { display: flex; flex-direction: column; gap: 14px; margin-top: 8vh; }
  .cz-cats a { display: flex; gap: 8px; align-items: baseline; font-size: 13.5px; font-weight: 300; letter-spacing: .06em; text-transform: uppercase; color: var(--ink); transition: letter-spacing .4s var(--ease-out); }
  .cz-cats a i { font-style: normal; font-size: 12px; letter-spacing: 0; color: var(--ink); }
  .cz-cats a:hover { letter-spacing: .1em; }
  .cz-cats a.on { font-weight: 600; }
  .cz-filtri { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin-top: 36px; }
  .cz-filtri button { display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 0; border: 0; background: none; font: inherit; font-size: 13px; font-weight: 300; letter-spacing: .08em; text-transform: uppercase; color: var(--ink); cursor: pointer; text-align: left; }
  .cz-filtri button span { font-size: 11px; font-weight: 500; color: var(--blue); }
  .cz-filtri button:hover { text-decoration: underline; text-underline-offset: 4px; }
  .cz-reset { margin-top: 6px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; border-bottom: 1px solid var(--ink); }
  .cz-vista { margin-top: 36px; }
  .cz-lab { display: block; font-size: 13px; font-weight: 300; letter-spacing: .08em; text-transform: uppercase; margin-bottom: 14px; }
  .cz-vrow { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 18px; font-size: 13px; letter-spacing: .06em; text-transform: uppercase; }
  .cz-dens { display: inline-flex; gap: 14px; margin-right: 6px; }
  .cz-dens button { padding: 0; border: 0; background: none; font: inherit; font-size: 14px; font-weight: 300; color: var(--ink); cursor: pointer; opacity: .55; }
  .cz-dens button.on { font-weight: 700; opacity: 1; }
  .cz-vrow a { font-weight: 300; color: var(--ink); opacity: .55; }
  .cz-vrow a.on { font-weight: 700; opacity: 1; }
  .cz-count { margin-top: 18px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--gray-500); }
  .cz-count strong { color: var(--ink); font-weight: 600; }

  /* Schede al centro, con più aria */
  body.is-cat:not(.is-map) .cx-res { margin-left: 330px; margin-right: 270px; max-width: none; width: auto; padding: 72px 0 80px; }
  body.is-cat:not(.is-map) .cx-res .ev-grid, body.is-cat:not(.is-map) .cx-res[data-d="b"] .ev-grid { gap: 72px 32px; }
}

/* ===== Il resto del sito come il catalogo: header pulito con testi, logo, colore dove serve ===== */
@media (min-width: 1024px) {
  /* Header su tutte le pagine: menu a sinistra, logo al centro, a destra solo testi */
  .site-nav .sn-round .ai, .site-nav .sn-round .icon, .site-nav .sn-round .account-ini, .site-nav .sn-bag, .site-nav .sn-req .ai { display: none; }
  .site-nav .sn-round, .site-nav .sn-req { width: auto; height: auto; padding: 0 10px; font-size: 12px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); background: none; border: 0; }
  .site-nav .sn-req-t { display: inline; }
  .site-nav [data-gsearch-toggle]::after { content: 'Cerca'; }
  .site-nav .sn-user::after { content: 'Area cliente'; }
  .site-nav .sn-side { gap: 8px; }
  .site-nav .sn-cta { display: inline-flex; margin-left: 10px; padding: 11px 18px; background: #3466AE; color: #fff; border: 0; border-radius: 0; font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
  .site-nav .sn-cta:hover { background: #1E2B4E; }
  .site-nav .sn-cta .icon { display: none; }
  /* Catalogo: il logo resta, al centro in alto */
  body.is-cat:not(.is-map) .site-nav .brand { display: flex; position: fixed; top: 20px; left: 50%; transform: translateX(-50%); }
  body.is-cat:not(.is-map) .site-nav .sn-cta { margin: 0; padding: 11px 18px; border: 0; color: #fff; }
}
/* Colore */
.site-nav .sn-req.has-items .sn-req-n { color: #2f8d5c !important; font-weight: 700; }
.cz-cats a.on { color: #3466AE; }
.cz-cats a.on i { color: #3466AE; }
.cz-cats a:hover { color: #3466AE; }
.cz-vrow a.on, .cz-dens button.on { color: #3466AE; }
.cz-reset { color: #3466AE; border-bottom-color: #3466AE; }
.cx-res .ev-card:hover .ev-name { color: #3466AE; }
.cx-res .ev-add:hover { background: #3466AE; color: #fff; }
.cx-res .ev-pill.ev-ed { background: #64B989; color: #1E2B4E; }
.hz-imp-add:hover { background: #3466AE; }
.cx-res .ev-cat { color: #3466AE; }
/* Pagine zona, circuito e scheda impianto: stessa griglia pulita del catalogo */
.zona-page .cx-res, .pd-block .cx-res, .pd-vicini .cx-res { padding: 24px 0 8px; }
.cg-pill { border: 0; background: none; padding-left: 0; padding-right: 0; }
.site-nav .sn-round, .site-nav .sn-req, .site-nav .sn-cta { white-space: nowrap; }

/* ===== Personalità: logo grande nella colonna, testata blu con le forme del marchio, header diverso da Zara, telefono pulito ===== */

/* Testata del catalogo: blocco blu scuro con due sagome del marchio sovrapposte */
.cz-hero { position: relative; overflow: hidden; background: #1E2B4E; color: #fff; padding: clamp(36px, 5vw, 64px) clamp(20px, 4vw, 56px); min-height: 180px; display: flex; align-items: flex-end; }
.cz-hero .nm-wm { position: absolute; top: auto; width: min(46vw, 420px); height: auto; pointer-events: none; transition: transform 1.4s var(--ease-out); }
.cz-hero .nm-wm:nth-of-type(1) { right: 2%; bottom: -34%; fill: #3466AE; opacity: .75; transform: rotate(-8deg); }
.cz-hero .nm-wm:nth-of-type(2) { right: 20%; bottom: -52%; fill: #64B989; opacity: .35; transform: rotate(10deg) scale(.8); }
.cz-hero:hover .nm-wm:nth-of-type(1) { transform: rotate(-3deg) translateX(-14px); }
.cz-hero:hover .nm-wm:nth-of-type(2) { transform: rotate(4deg) scale(.86) translateX(10px); }
.cz-hero-in { position: relative; z-index: 1; }
.cz-hero h1 { font-size: clamp(34px, 6vw, 84px); font-weight: 300; letter-spacing: -.02em; text-transform: none; line-height: 1; color: #fff; }
.cz-hero p { margin-top: 14px; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: rgba(255,255,255,.8); }
.cz-hero p strong { font-size: 22px; font-weight: 500; letter-spacing: 0; color: #64B989; margin-right: 6px; }

/* Header: logo a sinistra, testi a destra, menu all'estremità */
@media (min-width: 1024px) {
  .site-nav .sn-in { grid-template-columns: auto 1fr auto; }
  .site-nav .sn-in > .brand { grid-column: 1; justify-self: start; }
  .site-nav .sn-side { grid-column: 2; justify-self: end; }
  .site-nav .sn-burger { grid-column: 3; grid-row: 1; justify-self: end; margin: 0 -8px 0 12px; }
  /* Catalogo: logo grande nella colonna, menu in alto a sinistra */
  body.is-cat:not(.is-map) .site-nav .brand { display: none; }
  body.is-cat:not(.is-map) .site-nav .sn-burger { grid-column: 1; justify-self: start; margin: 0 0 0 14px; }
  .cz-brand { display: flex; margin: 8px 0 0; }
  .cz-brand .brand-mark { width: 44px; height: 50px; }
  .cz-brand .brand-name { font-size: 26px; letter-spacing: -.02em; }
  .cz-cats { margin-top: 5vh; }
  body.is-cat:not(.is-map) .cx-res { margin-top: 0; }
  body.is-cat:not(.is-map) .cx-title.cz-hero { margin: 0 270px 0 330px; margin-top: 0; }
  body.is-cat:not(.is-map) .cx-title.cz-hero { display: flex; margin-top: 64px; }
  body.is-cat:not(.is-map) .cx-res { padding-top: 56px; }
  .cz-dens .d-small { display: none; }
}

/* Telefono: come Zara. Menu a sinistra, logo piccolo, icone a destra; sotto, categorie scorrevoli e riga filtri/vista */
@media (max-width: 1023px) {
  .site-nav .sn-in { grid-template-columns: auto 1fr auto; gap: 4px; }
  .site-nav .sn-burger { grid-column: 1; grid-row: 1; margin-left: -8px; }
  .site-nav .sn-in > .brand { grid-column: 2; justify-self: start; margin-left: 4px; }
  .site-nav .sn-in > .brand .brand-name { font-size: 17px; }
  .site-nav .sn-side { grid-column: 3; }
  .site-nav .sn-user { display: none; }
  body.is-cat:not(.is-map) .cx-strip, body.is-cat:not(.is-map) .cx-bar { display: none; }
  body.is-cat:not(.is-map) .cz-side { display: block; position: static; width: auto; padding: 0 16px; }
  .cz-brand { display: none; }
  .cz-cats { display: flex; flex-direction: row; gap: 22px; overflow-x: auto; white-space: nowrap; margin: 0; padding: 16px 0 14px; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
  .cz-cats::-webkit-scrollbar { display: none; }
  .cz-cats a { font-size: 12px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; color: var(--gray-500); }
  .cz-cats a i { display: none; }
  .cz-cats a.on { color: #3466AE; font-weight: 600; border-bottom: 1px solid #3466AE; padding-bottom: 3px; }
  .cz-filtri { display: flex; flex-direction: row; flex-wrap: wrap; gap: 4px 22px; padding: 10px 0; border-top: 1px solid var(--gray-200); }
  .cz-filtri button { display: inline-flex; gap: 6px; align-items: baseline; padding: 0; border: 0; background: none; font: inherit; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
  .cz-filtri button span { font-size: 11px; font-weight: 600; color: #3466AE; }
  .cz-reset { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: #3466AE; margin-left: auto; }
  .cz-vista { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 0 14px; border-top: 1px solid var(--gray-200); }
  .cz-lab { display: none; }
  .cz-vrow { display: flex; align-items: center; gap: 16px; font-size: 12px; letter-spacing: .1em; text-transform: uppercase; }
  .cz-dens { display: inline-flex; gap: 14px; margin-right: 6px; }
  .cz-dens button { padding: 0; border: 0; background: none; font: inherit; font-size: 13px; color: var(--ink); opacity: .5; }
  .cz-dens button.on { opacity: 1; font-weight: 700; color: #3466AE; }
  .cz-dens .d-big { display: none; }
  .cz-vrow a { color: var(--ink); opacity: .5; }
  .cz-vrow a.on { opacity: 1; font-weight: 700; color: #3466AE; }
  .cz-count { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--gray-500); margin: 0; }
  .cz-hero { min-height: 140px; margin: 0; }
  .is-cat .cx-res { padding-top: 20px; }
}

/* ===== Header più grande, pulsante del menu grande, footer leggibile, menu telefono a elenco numerato ===== */
.nm-back { display: none; }
.site-nav .sn-burger { width: 64px; height: 64px; background: #1E2B4E; color: #fff; border-radius: 0; margin: 0; }
.site-nav .sn-burger:hover { background: #3466AE; }
.site-nav .sn-burger .ai, .site-nav .sn-burger .icon { width: 36px; height: 36px; stroke-width: 1.4; }
.site-nav .sn-in { height: 92px; }
.site-nav .sn-in > .brand .brand-mark { width: 36px; height: 41px; }
.site-nav .sn-in > .brand .brand-name { font-size: 26px; }
@media (min-width: 1024px) {
  .site-nav .sn-burger { margin: 0 -8px 0 16px; }
  body.is-cat:not(.is-map) .site-nav .sn-in { height: 92px; }
  body.is-cat:not(.is-map) .site-nav .sn-burger { margin: 0 0 0 20px; }
  body.is-cat:not(.is-map) .cz-side { padding-top: 112px; }
  body.is-cat:not(.is-map) .cx-title.cz-hero { margin-top: 92px; }
  body.is-cat:not(.is-map) .site-nav .sn-side { top: 30px; }
}
@media (max-width: 1023px) {
  .site-nav .sn-in { height: 72px; }
  .site-nav .sn-burger { width: 52px; height: 52px; margin-left: -4px; }
  .site-nav .sn-burger .ai, .site-nav .sn-burger .icon { width: 30px; height: 30px; }
  .site-nav .sn-in > .brand .brand-name { font-size: 20px; }
  .site-nav .sn-in > .brand .brand-mark { width: 28px; height: 32px; }
}
/* Footer: sopra la colonna fissa e i testi, e questi spariscono quando arriva il footer */
.site-foot { position: relative; z-index: 60; }
.cz-side, .site-nav .sn-side { transition: opacity .35s ease; }
body.foot-vis .cz-side, body.foot-vis .site-nav .sn-side { opacity: 0; pointer-events: none; }
.sf-nav a, .sf-copy { color: rgba(255,255,255,.88); }
.sf-copy { color: rgba(255,255,255,.7); }

/* Menu su telefono: elenco numerato a schermo intero, secondo livello con "Indietro" */
@media (max-width: 1023px) {
  .nav-menu:not(.fx) .nm-scroll { counter-reset: nmn; background: #fff; }
  .nav-menu:not(.fx) .nm-top { display: block; background: #fff; gap: 0; }
  .nav-menu:not(.fx) .nm-feat { height: 68px; min-height: 68px; padding: 0 20px; gap: 8px; background: #fff !important; color: var(--ink); border-bottom: 1px solid var(--gray-200); counter-increment: nmn; }
  .nav-menu:not(.fx) .nm-feat::before, .nav-menu:not(.fx) .nm-title button::before { content: '|' counter(nmn, decimal-leading-zero) '|'; font-size: 12px; letter-spacing: 0; color: #3466AE; margin-right: 4px; }
  .nav-menu:not(.fx) .nm-feat-ico { display: none; }
  .nav-menu:not(.fx) .nm-feat-txt strong, .nav-menu:not(.fx) .nm-name { font-size: 16px !important; font-weight: 300; letter-spacing: .08em; color: var(--ink); text-transform: uppercase; }
  .nav-menu:not(.fx) .nm-feat-go { color: var(--ink) !important; }
  .nav-menu:not(.fx) .nm-cols { display: block; padding: 0; background: #fff; }
  .nav-menu:not(.fx) .nm-sec:not(.open) { background: #fff !important; color: var(--ink); padding: 0; border-bottom: 1px solid var(--gray-200); }
  .nav-menu:not(.fx) .nm-sec:not(.open) .nm-wm { display: none; }
  .nav-menu:not(.fx) .nm-sec:not(.open) .nm-body { display: none; }
  .nav-menu:not(.fx) .nm-title button { min-height: 68px; padding: 0 20px; width: 100%; gap: 8px; counter-increment: nmn; }
  .nav-menu:not(.fx) .nm-title button .nm-ai, .nav-menu:not(.fx) .nm-title button .nm-verb, .nav-menu:not(.fx) .nm-title button .nm-plus { display: none; }
  .nav-menu:not(.fx) .nm-title button::after { content: '\203A'; margin-left: auto; font-size: 28px; font-weight: 200; line-height: 1; color: var(--ink); }
  .nav-menu:not(.fx) .nm-sec.open { position: fixed; top: 72px; left: 0; right: 0; bottom: 0; z-index: 8; overflow-y: auto; padding: 0 20px 40px; }
  .nav-menu:not(.fx) .nm-sec.open .nm-back { display: flex; align-items: center; gap: 10px; padding: 20px 0 8px; border: 0; background: none; color: #fff; font: inherit; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
  .nav-menu:not(.fx) .nm-sec.open .nm-back .icon { width: 18px; height: 18px; }
  .nav-menu:not(.fx) .nm-sec.open .nm-title button { min-height: 64px; padding: 0; }
  .nav-menu:not(.fx) .nm-sec.open .nm-title button::after { content: ''; }
  .nav-menu:not(.fx) .nm-sec.open .nm-name { color: #fff; }
  .nav-menu:not(.fx) .nm-sec.open .nm-body-in { border-top: 1px solid rgba(255,255,255,.2); animation: nmIn .45s var(--ease-out) both; }
}

/* Step Impianti del wizard: griglia come nel catalogo, senza mappa */
.pw-imp.pw-imp-grid { grid-template-columns: minmax(0, 1fr); }
.pw-imp-grid .cx-res { padding: 0 0 110px; }

/* Home: hero su fondo bianco, tre card dei percorsi smussate */
.hp-catalogo { background: #fff; color: var(--ink, #1E2B4E); }
.hp-catalogo p { opacity: 1; color: var(--gray-500, #5b6478); }
.hp-catalogo p strong { color: var(--ink, #1E2B4E); }
.hp-catalogo .btn { background: #1E2B4E; color: #fff; }
.hp-catalogo .btn:hover { background: #3466AE; color: #fff; }
.hz-ways { padding: 0 clamp(12px, 2vw, 24px) clamp(12px, 2vw, 24px); }
.hz-ways .hp-ways { gap: clamp(12px, 1.4vw, 20px); }
.hz-ways .hp-way { border-radius: 28px; }
@media (max-width: 767px) { .hz-ways .hp-way { border-radius: 22px; } }

.hz-ways .hp-way { margin-top: 0 !important; }
.hz-list .is-soon { opacity: .55; cursor: default; }
.hz-list .is-soon:hover { padding-left: 0; color: inherit; }
.hz-list .is-soon b { font-size: 10px; letter-spacing: .1em; }
.hz-ways .hp-ways { align-items: stretch !important; }
.hz-ways .hp-way { align-self: stretch !important; height: auto; }

/* Menu: card smussate come in home */
.nav-menu .nm-cols { gap: clamp(12px, 1.4vw, 20px); padding: 0 clamp(12px, 2vw, 24px) clamp(12px, 2vw, 24px); }
.nav-menu .nm-sec { border-radius: 28px; }
@media (max-width: 1023px) { .nav-menu .nm-sec { border-radius: 22px; } }

/* ===== Header unico su tutto il sito, nello stile del catalogo: menu a sinistra, logo al centro, testi a destra con "Cerca" sottolineato ===== */
@media (min-width: 1024px) {
  body:not(.is-cat) .site-nav:not(.is-stuck) { background: transparent; border-bottom: 0; box-shadow: none; }
  body:not(.is-cat) .site-nav .sn-in { grid-template-columns: 1fr auto 1fr; }
  body:not(.is-cat) .site-nav .sn-burger { grid-column: 1; grid-row: 1; justify-self: start; margin: 0 0 0 20px; }
  body:not(.is-cat) .site-nav .sn-in > .brand { grid-column: 2; grid-row: 1; justify-self: center; margin: 0; }
  body:not(.is-cat) .site-nav .sn-side { grid-column: 3; grid-row: 1; justify-self: end; gap: 26px; margin-right: 8px; }
  body:not(.is-cat) .site-nav .sn-round, body:not(.is-cat) .site-nav .sn-req { padding: 0; }
  body:not(.is-cat) .site-nav [data-gsearch-toggle] { border-bottom: 1px solid var(--ink); padding: 0 0 4px 64px; }
  body:not(.is-cat) .site-nav .sn-cta { margin: 0; }
}
@media (max-width: 1023px) {
  .site-nav .sn-in { grid-template-columns: 1fr auto 1fr; }
  .site-nav .sn-burger { grid-column: 1; grid-row: 1; justify-self: start; }
  .site-nav .sn-in > .brand { grid-column: 2; grid-row: 1; justify-self: center; margin: 0; }
  .site-nav .sn-in > .brand .brand-name { font-size: 16px; }
  .site-nav .sn-in > .brand .brand-mark { width: 22px; height: 25px; }
  .site-nav .sn-side { grid-column: 3; grid-row: 1; justify-self: end; gap: 14px; align-items: center; }
  .site-nav [data-gsearch-toggle] { width: auto; height: auto; padding: 0 0 3px; background: none; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
  .site-nav [data-gsearch-toggle] .ai, .site-nav [data-gsearch-toggle] .icon { display: none; }
  .site-nav [data-gsearch-toggle]::after { content: 'Cerca'; }
}
@media (max-width: 1023px) {
  .site-nav .sn-in { grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; }
  .site-nav .sn-in > .brand { justify-self: center; }
  .site-nav .sn-in > .brand .brand-name { font-size: 15px; }
  .site-nav .sn-burger { width: 44px; height: 44px; }
  .site-nav .sn-burger .ai, .site-nav .sn-burger .icon { width: 26px; height: 26px; }
  .site-nav .sn-side { gap: 12px; }
}

/* Menu: le tre scorciatoie in alto (Home, Percorso guidato, Catalogo) come le card sotto: stessi margini, stesso spazio, angoli smussati */
@media (min-width: 768px) {
  .nav-menu .nm-top { gap: clamp(12px, 1.4vw, 20px); padding: clamp(12px, 2vw, 24px) clamp(12px, 2vw, 24px) 0; background: var(--paper); }
  .nav-menu .nm-feat { height: 64px; min-height: 64px; border-radius: 18px; padding: 0 clamp(20px, 2.4vw, 32px); }
  .nav-menu .nm-feat-txt strong { font-size: 12px; letter-spacing: .12em; }
}
@media (min-width: 768px) and (max-width: 1023px) { .nav-menu .nm-top { grid-template-columns: 1fr; gap: 8px; } }
@media (min-width: 768px) { .nav-menu .nm-cols { padding-top: clamp(12px, 1.4vw, 20px); } }

/* ===== Cerca in stile Zara: pannello bianco a tutta larghezza, solo una riga sottolineata, testi sottili in maiuscolo ===== */
.gsearch { background: rgba(255,255,255,.0); }
.gsearch-inner { position: relative; max-width: none; width: 100%; min-height: 100vh; min-height: 100dvh; max-height: none; background: #fff; border-radius: 0; box-shadow: none; padding: calc(96px + env(safe-area-inset-top)) clamp(20px, 6vw, 120px) 60px; }
.gsearch-bar { background: none; padding: 0 0 14px; border-radius: 0; border-bottom: 1px solid var(--ink); gap: 14px; max-width: 920px; margin: 0 auto; }
.gsearch-bar > .icon { display: none; }
.gsearch-input { font-size: clamp(22px, 3vw, 34px); font-weight: 300; letter-spacing: .04em; text-transform: uppercase; }
.gsearch-input::placeholder { color: var(--gray-500); opacity: .7; }
.gsearch-close { position: absolute; top: calc(30px + env(safe-area-inset-top)); right: clamp(20px, 4vw, 56px); width: auto; height: auto; background: none; color: var(--ink); border-radius: 0; gap: 10px; align-items: center; padding: 0; font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.gsearch-close .icon { width: 18px; height: 18px; color: var(--ink); stroke-width: 1.2; }
.gsearch-results { max-width: 920px; margin: 36px auto 0; gap: 0; }
.gsearch-group-label { font-size: 11px; font-weight: 400; letter-spacing: .14em; color: var(--gray-500); margin: 28px 0 8px; }
.gsearch-row { padding: 14px 0; border-bottom: 1px solid var(--gray-200); gap: 16px; border-radius: 0; }
.gsearch-row:hover { background: none; padding-left: 6px; }
.gsearch-row-ico { width: 28px; height: 28px; background: none; color: var(--ink); }
.gsearch-row-txt strong { font-size: 13px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; }
.gsearch-row-txt span { font-size: 11px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; }
.gsearch-hint, .gsearch-empty { text-align: left; padding: 8px 0; font-size: 12px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; }
.gsearch-input, .gsearch-input:focus { border: 0 !important; box-shadow: none !important; }

/* Hero della home: titolo molto più piccolo */
.hp-catalogo { padding: clamp(36px, 5vw, 72px) 0; }
.hp-catalogo h2 { font-size: clamp(24px, 2.6vw, 38px); letter-spacing: -.03em; line-height: 1.1; max-width: none; }
.hp-catalogo p { margin-top: 12px; font-size: clamp(14px, 1.2vw, 16px); }

/* Header: logo con respiro attorno, nessun elemento attaccato */
@media (min-width: 1024px) {
  body:not(.is-cat) .site-nav .sn-in { column-gap: 32px; }
  body:not(.is-cat) .site-nav .sn-in > .brand { margin: 0 24px; }
  body:not(.is-cat) .site-nav .sn-in > .brand .brand-name { font-size: 22px; }
  body:not(.is-cat) .site-nav .sn-in > .brand .brand-mark { width: 30px; height: 34px; }
  body:not(.is-cat) .site-nav .sn-side { gap: 20px; min-width: 0; }
}
@media (min-width: 1024px) and (max-width: 1279px) {
  body:not(.is-cat) .site-nav .sn-user, body:not(.is-cat) .site-nav .sn-req-t { display: none; }
  body:not(.is-cat) .site-nav .sn-bag { display: inline-block; }
}
@media (min-width: 1024px) {
  body:not(.is-cat) .site-nav .sn-in { grid-template-columns: auto auto minmax(0, 1fr); column-gap: 0; }
  body:not(.is-cat) .site-nav .sn-in > .brand { justify-self: start; margin: 0 0 0 32px; }
  body:not(.is-cat) .site-nav .sn-side { margin-left: 32px; }
}

/* "Pronto a comunicare?": titolo piccolo come l'hero, blocco smussato come le card */
.hp-final { padding: clamp(40px, 5vw, 72px) 0; margin: 0 clamp(12px, 2vw, 24px); border-radius: 28px; }
.hp-final h2 { font-size: clamp(24px, 2.6vw, 38px); letter-spacing: -.03em; line-height: 1.1; max-width: none; }
.hp-final .hp-cta { margin-top: 24px; }
.hp-final-mark { width: min(22vw, 220px); }
@media (max-width: 767px) { .hp-final { border-radius: 22px; } }
.hp-final { margin: 0; border-radius: 0; }

/* ===== "Scegli un circuito" verde ovunque (testo scuro sul verde) ===== */
.hp-way.hp-circuito, .hp-circuito, .nm-circuito, .pw-f-circuito { background: #64B989 !important; color: #1E2B4E !important; }
.hp-circuito:hover, .nm-circuito:hover, .pw-f-circuito:hover { background: #64B989; }
.hz-ways .hp-circuito .hz-head, .hz-ways .hp-circuito .hz-head small, .hz-ways .hp-circuito .hz-head .hz-ico { color: #1E2B4E; }
.hz-ways .hp-circuito .hz-head { border-bottom-color: rgba(30,43,78,.55); }
.hz-ways .hp-circuito .hz-list a, .hz-ways .hp-circuito .hz-list b { color: #1E2B4E; border-bottom-color: rgba(30,43,78,.22); }
.hz-ways .hp-circuito .hz-list a:hover { color: #fff; }
.hp-circuito .nm-wm, .nm-circuito .nm-wm { fill: #1E2B4E; opacity: .08; }
.nm-circuito .nm-verb, .nm-circuito .nm-empty, .nm-circuito .nm-all, .nm-circuito .nm-name, .nm-circuito .nm-title, .nm-circuito small { color: #1E2B4E; }
.nm-circuito .nm-verb { opacity: .75; }
.nm-circuito .nm-ai, .nm-circuito .nm-plus { color: #1E2B4E; }
.hp-circuito .hp-ai, .pw-f-circuito .pw-f-ai { color: #1E2B4E; }
.pw-f-circuito .pw-f-go, .hp-circuito .hp-go { background: #1E2B4E; color: #fff; }
.pw-f-circuito small, .pw-f-circuito strong { color: #1E2B4E; }
.cx-circuito { --acc: #64B989; --on: #1E2B4E; }
.cx-circuito.on .cx-open, .cx-circuito .cx-open { color: #1E2B4E; }
.pw-m-circuito { --mc: #64B989; --mon: #1E2B4E; }

/* Card dei percorsi in home: più strette, con più spazio tra loro */
.hz-ways { padding-left: clamp(24px, 7vw, 140px); padding-right: clamp(24px, 7vw, 140px); }
.hz-ways .hp-ways { gap: clamp(24px, 3.6vw, 56px); }
@media (max-width: 767px) { .hz-ways { padding-left: 16px; padding-right: 16px; } .hz-ways .hp-ways { gap: 16px; } }
.hz-ways { padding-left: clamp(24px, 13vw, 260px); padding-right: clamp(24px, 13vw, 260px); }
.hz-ways .hp-ways { gap: clamp(28px, 4.4vw, 72px); }
@media (max-width: 767px) { .hz-ways { padding-left: 16px; padding-right: 16px; } }
.hz-ways .hp-ways { gap: clamp(40px, 6.5vw, 110px); }
@media (max-width: 767px) { .hz-ways .hp-ways { gap: 24px; } }

/* "Pronto a comunicare?": e-mail sotto il bottone; logo del footer più piccolo */
.hp-cta.hp-cta-col { flex-direction: column; align-items: flex-start; gap: 22px; }
.hp-mail { display: flex; flex-direction: column; gap: 4px; margin: 0; max-width: none; font-size: 14px; opacity: 1; }
.hp-mail span { font-size: 11px; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.sf-word { font-size: clamp(22px, 3vw, 36px); }

/* Niente animazione di espansione al passaggio del mouse (card home e colonne del menu) */
@media (min-width: 1024px) {
  .hz-ways .hp-ways:hover .hp-way, .hz-ways .hp-ways .hp-way:hover,
  .nav-menu .nm-cols:hover .nm-sec, .nav-menu .nm-cols .nm-sec:hover { flex-grow: 1 !important; }
  .hz-ways .hp-way, .nav-menu .nm-sec { transition: none !important; }
}

/* Header: nessuna linea, sfondo completamente trasparente */
.site-nav, .site-nav.is-stuck, body:not(.is-cat) .site-nav:not(.is-stuck) { background: transparent !important; border: 0 !important; box-shadow: none !important; -webkit-backdrop-filter: none !important; backdrop-filter: none !important; }
.site-nav::before, .site-nav::after, .site-nav .sn-in::after { display: none !important; }

/* Header trasparente su sfondo scuro: testi e logo chiari */
.site-nav .brand-name, .site-nav .brand-name b, .site-nav .brand-mark, .site-nav .sn-round, .site-nav .sn-req, .site-nav .sn-burger { transition: color .3s ease, filter .3s ease, background-color .3s ease; }
.site-nav.on-dark .brand-name, .site-nav.on-dark .sn-round, .site-nav.on-dark .sn-req, .site-nav.on-dark .sn-req-n { color: #fff !important; }
.site-nav.on-dark .brand-name b { color: #64B989; }
.site-nav.on-dark .brand-mark { filter: brightness(0) invert(1); }
.site-nav.on-dark [data-gsearch-toggle] { border-bottom-color: #fff !important; }
.site-nav.on-dark .sn-burger { background: #fff; color: #1E2B4E; }
.site-nav.on-dark .sn-burger:hover { background: #64B989; }

/* Card dei percorsi: fino ai margini della pagina, spazio ampio tra loro */
.hz-ways { padding-left: clamp(20px, 3vw, 48px); padding-right: clamp(20px, 3vw, 48px); }
.hz-ways .hp-ways { gap: clamp(40px, 6.5vw, 110px); }
@media (max-width: 767px) { .hz-ways { padding-left: 16px; padding-right: 16px; } .hz-ways .hp-ways { gap: 24px; } }

/* Card dei percorsi: larghezza fissa stretta, distribuite fino ai margini (lo spazio in più va tra le card) */
@media (min-width: 768px) {
  .hz-ways .hp-ways { display: flex; justify-content: space-between; gap: 0; }
  .hz-ways .hp-way, .hz-ways .hp-ways .hp-way { flex: 0 0 22vw; max-width: 22vw; min-width: 0; }
}

/* Card dei percorsi: primo bordo e ultimo bordo allineati al testo dell'hero (stesso margine del container) */
@media (min-width: 768px) {
  .hz-ways { --pad: max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter))); padding-left: var(--pad); padding-right: var(--pad); }
  .hz-ways .hp-way, .hz-ways .hp-ways .hp-way { flex: 0 0 22vw; max-width: 22vw; }
}

/* Home: tutti i pulsanti a pillola */
.is-home .btn, .is-home .site-nav .sn-cta, .is-home .site-nav .sn-burger, .is-home .nav-menu .nm-feat, .is-home .nav-menu .nm-feat-go, .is-home .gsearch-close, .is-home .nav-menu .sn-burger, .is-home .hp-go { border-radius: 999px !important; }
.is-home .site-nav .sn-burger { width: 56px; height: 56px; }

/* Quarta card (mappa) e forme meno tonde: angoli "quasi quadrati" per card e pulsanti */
.hp-mappa, .hz-ways .hp-way.hp-mappa { background: #3466AE; color: #fff; }
.hz-ways .hp-mappa .hz-head, .hz-ways .hp-mappa .hz-head small, .hz-ways .hp-mappa .hz-head .hz-ico { color: #fff; }
@media (min-width: 768px) {
  .hz-ways .hp-way, .hz-ways .hp-ways .hp-way { flex: 0 0 19vw; max-width: 19vw; }
}
.hz-ways .hp-way { border-radius: 18px; }
.nav-menu .nm-sec { border-radius: 18px; }
@media (max-width: 1023px) { .nav-menu .nm-sec { border-radius: 14px; } }
@media (max-width: 767px) { .hz-ways .hp-way { border-radius: 14px; } }
.is-home .btn, .is-home .site-nav .sn-cta, .is-home .site-nav .sn-burger, .is-home .nav-menu .nm-feat, .is-home .nav-menu .nm-feat-go, .is-home .gsearch-close, .is-home .nav-menu .sn-burger, .is-home .hp-go { border-radius: 12px !important; }
.is-home .nav-menu .nm-feat { border-radius: 14px !important; }

/* Tre card di nuovo: strette, distribuite fra i margini del testo; mai più larghe dello spazio disponibile (schermi grandi) */
@media (min-width: 768px) {
  .hz-ways .hp-way, .hz-ways .hp-ways .hp-way { flex: 0 1 min(22vw, calc((100% - 2 * clamp(32px, 4vw, 72px)) / 3)); max-width: none; }
  .hz-ways { padding-bottom: clamp(20px, 2.4vw, 40px); }
}
.hp-mappa { display: none; }

/* Card mappa sotto i percorsi */
.hz-mapwrap { --pad: max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter))); padding: 0 var(--pad) clamp(40px, 5vw, 80px); }
.hz-mapcard { position: relative; overflow: hidden; border-radius: 18px; height: clamp(340px, 36vw, 520px); background: #E7ECF3; }
.hz-map { position: absolute; inset: 0; }
.hz-mapinfo { position: absolute; left: clamp(16px, 2.4vw, 36px); top: clamp(16px, 2.4vw, 36px); bottom: auto; width: min(360px, calc(100% - 32px)); display: flex; flex-direction: column; gap: 16px; padding: clamp(20px, 2.4vw, 32px); background: #1E2B4E; color: #fff; border-radius: 14px; z-index: 2; }
.hz-mapinfo .hz-head { color: #fff; border-bottom: 1px solid rgba(255,255,255,.35); }
.hz-mapinfo .hz-ico { color: #fff; }
.hz-mapinfo p { margin: 0; font-size: 14px; line-height: 1.5; opacity: .9; }
.hz-mapinfo p strong { font-weight: 700; }
.hz-mapinfo .btn { align-self: flex-start; }
.hz-maplink { position: absolute; inset: 0; z-index: 1; }
.hz-mapinfo { z-index: 3; }
@media (max-width: 767px) { .hz-mapwrap { padding: 0 16px 40px; } .hz-mapcard { height: 420px; border-radius: 14px; } }

/* ===== Coerenza di stile: pianifica, catalogo (mappa ed elenco) come la home — margini del testo, angoli 18px, pulsanti 12px, titoli piccoli ===== */
:root { --pad-pg: max(var(--gutter), calc((100vw - var(--maxw)) / 2 + var(--gutter))); --r-card: 18px; --r-btn: 12px; }

/* Pulsanti ovunque: quasi quadrati */
.btn, .cg-add, .cg-row-go, .pw-row-go, .pw-f-go, .pw-go, .nm-feat-go, .cx-clear, .map-tool, .gsearch-close, .ev-add { border-radius: var(--r-btn) !important; }
.site-nav .sn-cta, .site-nav .sn-burger { border-radius: var(--r-btn) !important; }

/* Barra dei tre assi (catalogo): tessere smussate nei margini, stessi colori delle card della home */
.cx-strip { top: 8px; gap: 12px; padding: 12px var(--pad-pg); background: transparent; }
.cx-axis { border-radius: 14px; overflow: hidden; --acc: #1E2B4E; --on: #fff; }
.cx-zona { --acc: #263a6b; --on: #fff; }
.cx-circuito { --acc: #64B989; --on: #1E2B4E; }
.cx-open { height: 64px; padding: 0 20px; }
.cx-clear { border-radius: 10px; }
.cx-bar { padding-left: var(--pad-pg); padding-right: var(--pad-pg); max-width: none; }

/* Mappa: cornice con margini, mappa e righe in card smussate */
.is-cat.is-map .mv { margin: 0 var(--pad-pg) 24px; gap: 16px; height: calc(100dvh - 64px - 24px - 78px - 24px); }
.is-cat.is-map .mv-map { border-radius: var(--r-card); overflow: hidden; }
.is-cat.is-map .mv-list { padding: 0 4px 0 0; }
.mv-list .cg-card, .mv-list .mp-row, .mp-row { border-radius: 14px; }
.map-box { border-radius: var(--r-card); }

/* Elenco: ogni riga è una card con foto smussata */
.cg-rows { gap: 12px; }
.cg-row { padding: 14px 18px 14px 14px; border: 1px solid var(--gray-200); border-radius: var(--r-card); background: #fff; }
.cg-row:first-child { border-top: 1px solid var(--gray-200); }
.cg-row-img { border-radius: 12px; }
.cg-row-body h3 { font-size: 16px; font-weight: 600; letter-spacing: -.01em; }
@media (min-width: 1024px) and (max-width: 1279px) { body.is-cat:not(.is-map) .cx-res { margin-right: 170px; } body.is-cat:not(.is-map) .cx-title.cz-hero { margin-right: 170px; } }
.cz-hero { border-radius: var(--r-card); }

/* Pianifica: titoli piccoli, fasce come card nei margini */
.pw-top h1 { font-size: clamp(28px, 3vw, 44px); letter-spacing: -.03em; line-height: 1.1; }
.pw-q h1 { font-size: clamp(26px, 3vw, 40px); letter-spacing: -.03em; line-height: 1.1; }
.pw-top { padding-top: clamp(28px, 4vw, 56px); padding-bottom: clamp(20px, 3vw, 36px); }
.pw-fasce { display: flex; flex-direction: column; gap: 12px; padding: 0 var(--pad-pg) clamp(40px, 5vw, 72px); }
.pw-fascia { border-radius: var(--r-card); padding: 26px clamp(20px, 3vw, 40px) !important; min-height: 0; }
.pw-f-prodotto { background: #1E2B4E !important; }
.pw-f-zona { background: #263a6b !important; color: #fff !important; }
.pw-f-zona .pw-f-go { background: #fff !important; color: #1E2B4E !important; }
.pw-f-zona .pw-f-ai { color: #64B989; }
.pw-row-all, .pw-row-z, .pw-cc, .pw-row { border-radius: 14px; }
.pw-row-img, .pw-cc-img { border-radius: 12px; }
.pw-cc { border-radius: var(--r-card); }
.pw-bar { border-radius: 0; }
.pw-fascia { grid-template-columns: 48px minmax(0, 1fr) auto !important; gap: 20px !important; }
.pw-f-t small { white-space: nowrap; }
.pw-f-t strong { font-size: clamp(26px, 3vw, 40px); }

/* Card della home completamente statiche: nessuna espansione né movimento al passaggio del mouse */
.hz-ways .hp-way, .hz-ways .hp-way:hover, .hz-ways .hp-ways:hover .hp-way, .hz-ways .hp-ways .hp-way:hover { flex-grow: 0 !important; transition: none !important; transform: none !important; }
.hz-ways .hp-way .nm-wm, .hz-ways .hp-way:hover .nm-wm { transition: none !important; transform: none !important; scale: none !important; }
.hz-ways .hp-way:hover .hz-head .hz-ico { transform: none !important; }
.hz-ways .hz-list a, .hz-ways .hz-list a:hover { transition: none !important; padding-left: 0 !important; transform: none !important; }

/* Catalogo a schermi medi (1024–1279): colonne laterali più sottili, righe dell'elenco su due livelli */
@media (min-width: 1024px) and (max-width: 1279px) {
  body.is-cat:not(.is-map) .cz-side { width: 230px; }
  body.is-cat:not(.is-map) .cx-res, body.is-cat:not(.is-map) .cx-title.cz-hero { margin-left: 250px; margin-right: 190px; }
}
.cg-row { grid-template-columns: 120px minmax(0, 1fr); }
.cg-row-img { width: 120px; height: 92px; }
.cg-row-act { grid-column: 1 / -1; justify-content: flex-end; }
@media (min-width: 1024px) and (max-width: 1279px) {
  body.is-cat:not(.is-map) .cx-res, body.is-cat:not(.is-map) .cx-title.cz-hero { margin-right: 215px; }
  .cz-brand .brand-name { font-size: 19px; }
  .cz-brand .brand-mark { width: 32px; height: 36px; }
}

/* Smussato solo nella home: fuori dalla home resta lo stile Zara, angoli vivi */
body:not(.is-home) .btn, body:not(.is-home) .cg-add, body:not(.is-home) .cg-row-go, body:not(.is-home) .pw-row-go, body:not(.is-home) .pw-f-go, body:not(.is-home) .pw-go,
body:not(.is-home) .cx-clear, body:not(.is-home) .map-tool, body:not(.is-home) .ev-add,
body:not(.is-home) .site-nav .sn-cta, body:not(.is-home) .site-nav .sn-burger,
body:not(.is-home) .cx-axis, body:not(.is-home) .mp-row, body:not(.is-home) .map-box, body:not(.is-home) .mv-map,
body:not(.is-home) .cg-row, body:not(.is-home) .cg-row-img, body:not(.is-home) .cz-hero,
body:not(.is-home) .pw-fascia, body:not(.is-home) .pw-row, body:not(.is-home) .pw-row-all, body:not(.is-home) .pw-row-z, body:not(.is-home) .pw-cc,
body:not(.is-home) .pw-row-img, body:not(.is-home) .pw-cc-img { border-radius: 0 !important; }

/* ===== Pagina mappa in stile Zara: a tutto schermo, filtri come testo, elenco sottile con righe fini, niente colori pieni ===== */
@media (min-width: 1024px) {
  body.is-cat.is-map .cx-strip { position: static; display: flex; gap: 36px; padding: 6px var(--pad-pg) 0; background: none; }
  body.is-cat.is-map .cx-axis { background: none !important; color: var(--ink) !important; border-radius: 0; filter: none; }
  body.is-cat.is-map .cx-open { height: 44px; padding: 0 !important; gap: 10px; border-bottom: 1px solid var(--ink); }
  body.is-cat.is-map .cx-axis.on .cx-open { padding-right: 34px !important; }
  body.is-cat.is-map .cx-ai, body.is-cat.is-map .cx-plus { display: none; }
  body.is-cat.is-map .cx-txt { flex-direction: row; align-items: baseline; gap: 10px; }
  body.is-cat.is-map .cx-txt small, body.is-cat.is-map .cx-txt strong { font-size: 12px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; opacity: 1; }
  body.is-cat.is-map .cx-txt strong { color: #3466AE; max-width: 200px; }
  body.is-cat.is-map .cx-clear { background: none !important; width: 24px; height: 24px; color: var(--ink); }
  body.is-cat.is-map .cx-bar { padding-top: 14px; padding-bottom: 14px; }
  body.is-cat.is-map .cx-count, body.is-cat.is-map .cx-count span, body.is-cat.is-map .cx-reset { font-size: 12px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; }
  body.is-cat.is-map .cx-count strong { font-size: 14px; font-weight: 600; color: var(--ink); }
  body.is-cat.is-map .cg-seg a { font-size: 12px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; }
  body.is-cat.is-map .cg-seg a.on { font-weight: 700; color: #3466AE; }

  body.is-cat.is-map .mv { margin: 0; gap: 0; grid-template-columns: 400px minmax(0, 1fr); height: calc(100dvh - 92px - 52px - 48px); border-top: 1px solid var(--ink); }
  body.is-cat.is-map .mv-list { padding: 0; border-right: 1px solid var(--gray-200); }
  body.is-cat.is-map .mp-row { grid-template-columns: 84px minmax(0, 1fr) auto; padding: 16px 20px; border-top: 0; border-bottom: 1px solid var(--gray-200); }
  body.is-cat.is-map .mp-row.is-hl { box-shadow: inset 3px 0 0 #3466AE; padding-left: 20px; }
  body.is-cat.is-map .mp-img { width: 84px; height: 64px; }
  body.is-cat.is-map .mp-cat { font-size: 10.5px; font-weight: 400; letter-spacing: .12em; color: var(--gray-500); }
  body.is-cat.is-map .mp-body h3 { font-size: 12.5px; font-weight: 400; letter-spacing: .06em; text-transform: uppercase; line-height: 1.35; }
  body.is-cat.is-map .mp-body p { font-size: 11px; letter-spacing: .06em; text-transform: uppercase; }
  body.is-cat.is-map .mp-row .ev-add { background: none; border: 1px solid var(--ink); width: 34px; height: 34px; }
  body.is-cat.is-map .mv-map .map-tool, body.is-cat.is-map .mv-map .map-status { font-size: 11px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; box-shadow: none; border: 1px solid var(--ink); }
}

/* ===== Pagina dei filtri in stile Zara: fondo bianco, tre colonne separate da linee sottili, testi sottili in maiuscolo, angoli vivi ===== */
.nav-menu.fx { background: #fff; color: var(--ink); }
.nav-menu.fx .nm-bar { background: #fff; border-bottom: 0; }
.nav-menu.fx .nm-scroll { background: #fff; }
.nav-menu.fx .nm-cols, .nav-menu.fx .fx-cols { background: #fff; gap: 0; padding: 0 var(--pad-pg); }
.nav-menu.fx .nm-sec, .nav-menu.fx .nm-prodotto, .nav-menu.fx .nm-zona, .nav-menu.fx .nm-circuito { background: #fff !important; color: var(--ink) !important; border-radius: 0 !important; padding: 28px clamp(16px, 2.4vw, 40px) 40px; border: 0; }
.nav-menu.fx .nm-sec + .nm-sec { border-left: 1px solid var(--gray-200); }
.nav-menu.fx .nm-sec:first-child { padding-left: 0; }
.nav-menu.fx .nm-wm { display: none; }
.nav-menu.fx .nm-title { margin-bottom: 18px; padding-bottom: 14px; border-bottom: 1px solid var(--ink); }
.nav-menu.fx .nm-title button { color: var(--ink); }
.nav-menu.fx .nm-ai { display: none; }
.nav-menu.fx .nm-name { font-size: 13px !important; font-weight: 500; letter-spacing: .14em; text-transform: uppercase; color: var(--ink); }
.nav-menu.fx .nm-verb { display: none; }
.nav-menu.fx .nm-plus { display: none; }

/* Voci */
.nav-menu.fx .fx-all span { font-size: 12px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
.nav-menu.fx .fx-cat span { font-size: 13px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--ink); }
.nav-menu.fx .fx-sub span { font-size: 11.5px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500); }
.nav-menu.fx .fx-all span::before, .nav-menu.fx .fx-cat span::before, .nav-menu.fx .fx-sub span::before { width: 8px; height: 8px; background: var(--ink); border-radius: 0; }
.nav-menu.fx input:checked + span { color: #3466AE; font-weight: 600; }
.nav-menu.fx input:checked + span::before { background: #3466AE; }
.nav-menu.fx .fx-cat:hover span, .nav-menu.fx .fx-sub:hover span { transform: none; color: #3466AE; }
.nav-menu.fx .nm-cats { grid-template-columns: 1fr; gap: 14px; }
.nav-menu.fx small { font-size: 11px; font-weight: 400; opacity: .6; }

/* Zona */
.nav-menu.fx .fz-search { background: none; border: 0; border-bottom: 1px solid var(--ink); border-radius: 0; height: 44px; padding: 0; }
.nav-menu.fx .fz-search .icon { width: 18px; height: 18px; }
.nav-menu.fx .fz-search input { font-size: 12px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; }
.nav-menu.fx .fz-path, .nav-menu.fx .fz-crumb { font-size: 11px; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
.nav-menu.fx .fz-row { padding: 12px 0; border-bottom: 1px solid var(--gray-200); color: var(--ink); border-radius: 0; background: none; }
.nav-menu.fx .fz-t em { font-size: 12.5px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; }
.nav-menu.fx .fz-t small { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.nav-menu.fx .fz-row b { font-size: 12px; font-weight: 400; letter-spacing: .06em; }
.nav-menu.fx .fz-row:hover { transform: none; color: #3466AE; }

/* Circuiti: immagini quadrate con didascalia sottile */
.nav-menu.fx .fx-circ { gap: 18px; }
.nav-menu.fx .nm-cc-img { min-height: 0; aspect-ratio: 4 / 3; border-radius: 0; background: var(--gray-100); }
.nav-menu.fx .nm-cc-img::after { display: none; }
.nav-menu.fx .nm-cc-img strong { position: static; display: block; padding: 10px 0 0; font-size: 12.5px; font-weight: 400; letter-spacing: .08em; text-transform: uppercase; color: var(--ink); }
.nav-menu.fx .fx-cc { display: block; }
.nav-menu.fx .fx-cc input:checked ~ .nm-cc-img { outline-color: #3466AE; }
.nav-menu.fx .fx-tick { border-radius: 0; background: #3466AE; }
.nav-menu.fx .fx-cc small { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-500); }
.nav-menu.fx .nm-all, .nav-menu.fx .nm-empty { color: var(--ink); }

/* Piede: link sottile + pulsante nero squadrato */
.nav-menu.fx .fx-foot { background: #fff; border-top: 1px solid var(--ink); box-shadow: none; padding-left: var(--pad-pg); padding-right: var(--pad-pg); }
.nav-menu.fx .fx-clear { font-size: 12px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; }
.nav-menu.fx .fx-foot .btn { border-radius: 0 !important; background: var(--ink); color: #fff; font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.nav-menu.fx .fx-foot .btn:hover { background: #3466AE; }
@media (max-width: 1023px) {
  .nav-menu.fx .nm-cols, .nav-menu.fx .fx-cols { padding: 0 var(--gutter); }
  .nav-menu.fx .nm-sec + .nm-sec { border-left: 0; border-top: 1px solid var(--gray-200); }
  .nav-menu.fx .nm-sec:first-child { padding-left: clamp(16px, 2.4vw, 40px); }
}

/* ===== Home coerente con il resto del sito (stile Zara): solo le tre card dei percorsi restano smussate ===== */
.is-home .btn, .is-home .site-nav .sn-cta, .is-home .site-nav .sn-burger, .is-home .gsearch-close, .is-home .hp-go { border-radius: 0 !important; }
.is-home .site-nav .sn-burger { width: 64px; height: 64px; }
.is-home .btn, .is-home .site-nav .sn-cta { font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }

/* Hero: titolo sottile, testi in maiuscolo leggero, bottone nero squadrato */
.hp-catalogo h2 { font-weight: 300; letter-spacing: -.01em; }
.hp-catalogo p { font-size: 12px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; line-height: 1.7; }
.hp-catalogo p strong { font-weight: 600; }

/* Card mappa: squadrata, riquadro bianco con testi sottili */
.hz-mapcard { border-radius: 0; }
.hz-mapinfo { border-radius: 0; background: #fff; color: var(--ink); }
.hz-mapinfo .hz-head { color: var(--ink); border-bottom-color: var(--ink); }
.hz-mapinfo .hz-ico { color: var(--ink); }
.hz-mapinfo .hz-head strong { font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.hz-mapinfo p { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; opacity: 1; color: var(--ink); }
.hz-mapinfo .btn { background: var(--ink); color: #fff; }
.hz-mapinfo .btn:hover { background: #3466AE; }

/* Chiusura: titolo sottile */
.hp-final h2 { font-weight: 300; letter-spacing: -.01em; }
.hp-mail span, .hp-mail a { font-size: 12px; letter-spacing: .1em; text-transform: uppercase; font-weight: 400; }

/* Header: trasparente in cima, pieno appena la pagina scorre (bianco, o blu scuro sopra le sezioni scure) così non si perde sopra i contenuti */
.site-nav.is-scrolled, .site-nav.is-scrolled.is-stuck { background: #fff !important; }
.site-nav.is-scrolled.on-dark, .site-nav.is-scrolled.on-dark.is-stuck { background: #1E2B4E !important; }
.site-nav { transition: background-color .3s ease; }
@media (min-width: 1024px) { body.is-cat:not(.is-map) .site-nav.is-scrolled, body.is-cat:not(.is-map) .site-nav.is-scrolled.is-stuck, body.is-cat:not(.is-map) .site-nav.is-scrolled.on-dark { background: transparent !important; } }

/* Riquadro sulla mappa: blu */
.hz-mapinfo { background: #3466AE; color: #fff; }
.hz-mapinfo .hz-head { color: #fff; border-bottom-color: rgba(255,255,255,.6); }
.hz-mapinfo .hz-ico, .hz-mapinfo p { color: #fff; }
.hz-mapinfo { background: #1E2B4E; }
.hz-mapinfo { border-radius: 14px; }
.hz-mapcard { border-radius: 18px; }
@media (max-width: 767px) { .hz-mapcard { border-radius: 14px; } }

/* Accedi / Registrati: solo i pulsanti hanno gli angoli morbidi */
.ac-login .rq2-cta, .acct-login .btn.btn-primary { border-radius: 12px !important; }


/* Hero: testo come prima (frase normale, titolo in grassetto) */
.hp-catalogo h2 { font-weight: 600; letter-spacing: -.03em; }
.hp-catalogo p { font-size: clamp(14px, 1.2vw, 16px); font-weight: 500; letter-spacing: 0; text-transform: none; line-height: 1.5; }
.hp-catalogo p strong { font-weight: 700; }

/* "La tua richiesta": traccia blu scuro attorno */
.site-nav .sn-req { border: 1.5px solid #1E2B4E !important; padding: 9px 14px !important; }
.site-nav.on-dark .sn-req { border-color: #fff !important; }
@media (max-width: 1023px) { .site-nav .sn-req { padding: 7px 10px !important; } }

/* "La tua richiesta": stesso testo di "Inizia a pianificare" */
.site-nav .sn-req, .site-nav .sn-req-t, .site-nav .sn-req-n { font-size: 11px !important; font-weight: 500 !important; letter-spacing: .12em !important; text-transform: uppercase; }
@media (min-width: 1024px) { body:not(.is-cat) .site-nav .sn-req-t { display: inline !important; } body:not(.is-cat) .site-nav .sn-bag { display: none; } }

/* "La tua richiesta": senza traccia, stessa dimensione di "Area cliente" */
.site-nav .sn-req { border: 0 !important; padding: 0 !important; }
.site-nav .sn-req, .site-nav .sn-req-t, .site-nav .sn-req-n { font-size: 12px !important; font-weight: 400 !important; letter-spacing: .1em !important; }

/* "La tua richiesta": al passaggio il testo diventa verde, nessun riempimento */
.site-nav .sn-req:hover, .site-nav .sn-req.has-items, .site-nav .sn-req.has-items:hover { background: transparent !important; }
.site-nav .sn-req:hover, .site-nav .sn-req:hover .sn-req-t, .site-nav .sn-req:hover .sn-req-n { color: #2f8d5c !important; }
.site-nav .sn-req .sn-req-n, .site-nav .sn-req.has-items .sn-req-n { background: transparent !important; min-width: 0; height: auto; padding: 0; }

/* Menu: le tre colonne strette come le card della home, distribuite fra i margini del testo */
@media (min-width: 1024px) {
  .nav-menu:not(.fx) .nm-cols { display: flex; justify-content: space-between; gap: 0; padding-left: var(--pad-pg); padding-right: var(--pad-pg); }
  .nav-menu:not(.fx) .nm-cols .nm-sec, .nav-menu:not(.fx) .nm-cols .nm-sec:hover { flex: 0 1 min(22vw, calc((100% - 2 * clamp(32px, 4vw, 72px)) / 3)) !important; max-width: none; min-width: 0; }
  .nav-menu:not(.fx) .nm-top { padding-left: var(--pad-pg); padding-right: var(--pad-pg); }
}
@media (min-width: 1024px) {
  .nav-menu:not(.fx) .nm-top { display: flex; justify-content: space-between; gap: 0; }
  .nav-menu:not(.fx) .nm-top .nm-feat { flex: 0 1 min(22vw, calc((100% - 2 * clamp(32px, 4vw, 72px)) / 3)); min-width: 0; padding: 0 16px; }
  .nav-menu:not(.fx) .nm-circ, .nav-menu:not(.fx) .nm-cc { max-width: 100%; min-width: 0; }
  .nav-menu:not(.fx) .nm-cc-img { min-height: 0; aspect-ratio: 4 / 5; width: 100%; }
}

/* Pianifica: le tre card iniziali (prodotto, zona, circuito) con angoli morbidi */
body .pw-fascia { border-radius: 16px !important; }
body:not(.is-home) .pw-fascia { border-radius: 16px !important; }

/* Circuiti: elenco come prodotti e zone, senza immagini */
.pw-rows.pw-m-circuito { --mc: #64B989; --mon: #1E2B4E; margin: 24px 0 60px; }
.pw-rows .pw-row { grid-template-columns: minmax(0, 1fr) auto; }
.nav-menu.fx .nm-cats .fx-cat span { display: inline-flex; }

/* ===== Desktop: testi più contenuti ovunque (titoli, conteggi, righe) ===== */
@media (min-width: 768px) {
  h1, .ac-login h1, .acct-login h1, .pd-title h1, .cg-pill h1, .zona-page .cg-pill h1, .cx-title h1, .cz-hero h1, .pw-q h1, .pw-top h1, .rq-head h1, .rq2-empty h1, .rq2-done h1, .rq2 h1, .rq-empty h1, .rq-done h1, .confirm-screen h1, .wz-title, .ci-head h1, .mv-head h1, .cg-head h1, .hm-hero h1 { font-size: clamp(22px, 2.2vw, 32px) !important; letter-spacing: -.02em; line-height: 1.15; }
  .ac-login h1 { text-transform: none; font-weight: 600; }
  h2, .sec-head h2, .pd-block-head h2, .rq2-sec h2, .rq-sec h2, .zona-editoriale h2 { font-size: clamp(16px, 1.5vw, 20px); }
  .pw-row-t strong, .pw-cc-t strong { font-size: clamp(17px, 1.6vw, 22px); letter-spacing: -.01em; }
  .pw-row-z .pw-row-t strong, .pw-row-c, .fz-t em, .fz-row b { font-size: clamp(15px, 1.3vw, 18px); }
  .pw-f-t strong { font-size: clamp(20px, 2vw, 28px); }
  .pw-liv, .pw-mese legend, .pw-mese-h { font-size: clamp(16px, 1.5vw, 20px); }
  .pw-q .pw-count strong, .pw-count strong, .pw-wide .pw-q .pw-count strong { font-size: clamp(22px, 2.2vw, 32px); }
  .cx-count strong, .cz-hero p strong { font-size: 18px; }
  .nm-name { font-size: clamp(16px, 1.6vw, 22px) !important; }
  .nm-soon, .nm-zone a { font-size: 12px !important; }
  .rq2-cta, .btn-lg { font-size: 13px; }
  .gsearch-input { font-size: clamp(18px, 2vw, 24px); }
  .sf-word { font-size: clamp(20px, 2vw, 28px); }
  .pv-titolo { font-size: clamp(20px, 2vw, 28px); }
  body { font-size: 15px; }
}
.cz-hero { min-height: 120px; }
.ac-login .ac-form { display: flex; flex-direction: column; gap: 16px; }
.ac-login .rq2-cta { width: 100%; max-width: none; margin: 0; align-self: stretch; box-sizing: border-box; padding: 15px 20px; font-size: 12px; }
.ac-login .rq2-check { font-size: 12px; }
.ac-login .rq2-f input { font-size: 15px; }

/* Menu aperto: X di chiusura e logo nelle stesse posizioni di burger e logo con il menu chiuso */
.nm-bar .sn-in { display: grid; align-items: center; height: 92px; }
.nm-bar .sn-burger { order: -1; grid-column: 1; grid-row: 1; justify-self: start; width: 64px; height: 64px; background: #1E2B4E; color: #fff; border-radius: 0; margin: 0; }
.nm-bar .sn-burger:hover { background: #3466AE; }
.nm-bar .sn-burger .icon { width: 36px; height: 36px; stroke-width: 1.4; }
.nm-bar .sn-in > .brand { grid-row: 1; }
.nm-bar .sn-in > .brand .brand-mark { width: 30px; height: 34px; }
.nm-bar .sn-in > .brand .brand-name { font-size: 22px; }
@media (min-width: 1024px) {
  .nm-bar .sn-in { grid-template-columns: auto auto minmax(0, 1fr); }
  .nm-bar .sn-burger { margin-left: 20px; }
  .nm-bar .sn-in > .brand { grid-column: 2; justify-self: start; margin: 0 0 0 32px; }
}
@media (max-width: 1023px) {
  .nm-bar .sn-in { grid-template-columns: auto minmax(0, 1fr) auto; gap: 8px; height: 72px; }
  .nm-bar .sn-burger { width: 44px; height: 44px; }
  .nm-bar .sn-burger .icon { width: 26px; height: 26px; }
  .nm-bar .sn-in > .brand { grid-column: 2; justify-self: center; }
  .nm-bar .sn-in > .brand .brand-mark { width: 22px; height: 25px; }
  .nm-bar .sn-in > .brand .brand-name { font-size: 15px; }
}
@media (min-width: 1024px) { .nm-bar .sn-in { column-gap: 0; gap: 0; } }

/* Menu aperto: niente logo, solo la X di chiusura */
.nm-bar .sn-in > .brand { display: none !important; }

/* Burger e X senza riquadro blu; X del menu aperto a destra */
.site-nav .sn-burger, .site-nav .sn-burger:hover, .is-home .site-nav .sn-burger, .nm-bar .sn-burger, .nm-bar .sn-burger:hover { background: transparent !important; color: var(--ink) !important; }
.site-nav.on-dark .sn-burger, .site-nav.on-dark .sn-burger:hover { background: transparent !important; color: #fff !important; }
.site-nav .sn-burger:hover, .nm-bar .sn-burger:hover { color: #3466AE !important; }
@media (min-width: 1024px) {
  .nm-bar .sn-in { grid-template-columns: 1fr auto; }
  .nm-bar .sn-burger { grid-column: 2; justify-self: end; margin: 0 20px 0 0; }
}
@media (max-width: 1023px) {
  .nm-bar .sn-in { grid-template-columns: 1fr auto; }
  .nm-bar .sn-burger { grid-column: 2; justify-self: end; margin: 0; }
}

/* Nessuna traccia attorno a burger, X e pulsanti dell'header dopo il clic (resta solo con la tastiera) */
.site-nav .sn-burger, .nm-bar .sn-burger, .site-nav button, .nm-bar button { -webkit-tap-highlight-color: transparent; }
.site-nav .sn-burger:focus:not(:focus-visible), .nm-bar .sn-burger:focus:not(:focus-visible), .site-nav button:focus:not(:focus-visible), .nm-bar button:focus:not(:focus-visible) { outline: none !important; box-shadow: none !important; }
.site-nav .sn-burger:active, .nm-bar .sn-burger:active { outline: none !important; box-shadow: none !important; }

/* ===== Pagine di accesso (Accedi, Registrati): pannello scuro a sinistra, modulo a destra; su telefono il pannello diventa una fascia ===== */
.au { display: grid; grid-template-columns: minmax(300px, 5fr) 7fr; min-height: calc(100dvh - 92px - 12px); margin-top: 0; background: #fff; }
.au-side { position: relative; overflow: hidden; display: flex; flex-direction: column; justify-content: flex-end; gap: 18px; padding: clamp(32px, 5vw, 72px) clamp(24px, 4vw, 64px) clamp(32px, 5vw, 72px) var(--pad-pg); background: #1E2B4E; color: #fff; }
.au-side .nm-wm { position: absolute; right: -14%; top: -8%; width: min(420px, 70%); height: auto; fill: #fff; opacity: .06; pointer-events: none; transform: rotate(-6deg); }
.au-side > *:not(.nm-wm) { position: relative; }
.au-k { margin: 0; font-size: 11px; font-weight: 500; letter-spacing: .16em; text-transform: uppercase; color: #64B989; }
.au-t { margin: 0; max-width: 16em; font-size: clamp(22px, 2.3vw, 34px) !important; font-weight: 300; letter-spacing: -.01em; line-height: 1.2; color: #fff; }
.au-l { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 0; }
.au-l li { padding: 13px 0; border-top: 1px solid rgba(255,255,255,.2); font-size: 12px; letter-spacing: .1em; text-transform: uppercase; color: rgba(255,255,255,.85); }
.au-main { display: flex; align-items: center; justify-content: center; padding: clamp(32px, 6vw, 96px) clamp(20px, 5vw, 80px); }
.au-main > .ac-login, .au-main > .acct-login { width: 100%; max-width: 440px; margin: 0; padding: 0; background: none; border: 0; border-radius: 0; }

/* Titolo e testi del modulo */
.au-main h1 { margin: 0 0 8px; font-size: clamp(22px, 2vw, 28px) !important; font-weight: 600; letter-spacing: -.02em; line-height: 1.15; text-transform: none; color: var(--ink); }
.au-main .wz-sub { margin: 0 0 24px; font-size: 14px; line-height: 1.55; color: var(--gray-500); }
.au-main .ac-form, .au-main .acct-form { display: flex; flex-direction: column; gap: 16px; margin-top: 24px; }
.au-main .acct-form { margin-top: 24px; }
.au-main .f-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin: 0; }
.au-main .f-group, .au-main .rq2-f { display: flex; flex-direction: column; gap: 6px; margin: 0; }
.au-main .f-group > span, .au-main .rq2-f > span { font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; color: var(--gray-500); }
.au-main .f-group input, .au-main .rq2-f input { width: 100%; height: 48px; padding: 0 14px; font-size: 15px; color: var(--ink); background: #fff; border: 1px solid #cfd6e2; border-radius: 0; box-sizing: border-box; }
.au-main .f-group input:focus, .au-main .rq2-f input:focus { outline: none; border-color: var(--ink); box-shadow: 0 0 0 3px rgba(30,43,78,.08); }
.au-main .rq2-check { display: flex; align-items: center; gap: 10px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--gray-700); }
.au-main .rq2-check input { width: 16px; height: 16px; accent-color: #1E2B4E; }

/* Pulsanti */
.au-main .rq2-cta, .au-main .btn.btn-primary { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; max-width: none; height: 50px; padding: 0 20px; margin: 4px 0 0; background: var(--ink); color: #fff; border: 0; border-radius: 12px !important; font-size: 12px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; box-sizing: border-box; cursor: pointer; }
.au-main .btn.btn-primary { justify-content: center; }
.au-main .rq2-cta:hover, .au-main .btn.btn-primary:hover { background: #3466AE; color: #fff; }

/* Link */
.au-main .ac-alt { display: flex; justify-content: space-between; gap: 16px; margin: 22px 0 0; }
.au-main .rq2-link, .au-main .link-btn, .au-main .side-note { font-size: 11.5px; font-weight: 400; letter-spacing: .1em; text-transform: uppercase; color: var(--ink); }
.au-main .rq2-link { border-bottom: 1px solid var(--ink); background: none; padding: 0 0 3px; cursor: pointer; }
.au-main .side-note { margin: 22px 0 0; text-align: left; color: var(--gray-500); }
.au-main .side-note a { color: #3466AE !important; font-weight: 600 !important; }
.au-main .ac-flash, .au-main .alert { margin: 16px 0 0; padding: 12px 14px; border-radius: 0; font-size: 13px; }
.au-main .otp-boxes { display: grid; grid-template-columns: repeat(6, 1fr); gap: 8px; }
.au-main .otp-box { height: 52px; text-align: center; font-size: 20px; border: 1px solid #cfd6e2; border-radius: 0; background: #fff; }
.au-main .otp-actions { margin-top: 18px; }

/* Schermi molto grandi: il blocco resta composto e centrato */
@media (min-width: 1680px) { .au { max-width: 1680px; margin-left: auto; margin-right: auto; } }

/* Tablet */
@media (max-width: 1023px) { .au { grid-template-columns: 1fr 1.2fr; } .au-side { padding-left: 32px; } }

/* Telefono: fascia scura in alto, modulo sotto */
@media (max-width: 767px) {
  .au { display: block; min-height: 0; }
  .au-side { padding: 28px 20px 24px; gap: 10px; }
  .au-t { font-size: 20px !important; max-width: none; }
  .au-l { display: none; }
  .au-main { padding: 28px 20px 48px; }
  .au-main > .ac-login, .au-main > .acct-login { max-width: none; }
  .au-main .f-row { grid-template-columns: 1fr; }
}
.au { max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; }
.au-side { padding-left: clamp(32px, 6vw, 120px); }
.au-t { max-width: 18em; }
@media (min-width: 1500px) { .au { grid-template-columns: 5fr 7fr; } .au-main > .ac-login, .au-main > .acct-login { max-width: 480px; } }

/* Recupero accesso: passi e note, stessa scala tipografica di Accedi e Registrati */
.au-steps, .au-help { list-style: none; margin: 22px 0 0; padding: 0; display: flex; flex-direction: column; border-top: 1px solid var(--gray-200); }
.au-steps li, .au-help li { display: flex; align-items: flex-start; gap: 16px; padding: 14px 0; border-bottom: 1px solid var(--gray-200); font-size: 14px; line-height: 1.5; color: var(--ink); }
.au-steps li b { flex: none; width: 26px; height: 26px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--ink); border-radius: 50%; font-size: 12px; font-weight: 500; }
.au-help li { flex-direction: column; gap: 2px; }
.au-help li b { font-size: 11px; font-weight: 500; letter-spacing: .12em; text-transform: uppercase; }
.au-help li span { color: var(--gray-500); }
.au-main .au-steps + .ac-form { margin-top: 24px; }
/* Proporzioni comuni alle tre schermate */
.au-main > .ac-login, .au-main > .acct-login { max-width: 440px; }
.au-main h1 { margin-bottom: 10px; }
.au-main .wz-sub { margin-bottom: 0; max-width: 40em; }
.au-main .ac-form, .au-main .acct-form { margin-top: 28px; gap: 18px; }
.au-main .ac-alt { margin-top: 24px; }
.au-main .au-steps + .ac-form, .au-main .au-help + .ac-alt { margin-top: 28px; }

/* "Pronto a comunicare?": blu del marchio */
.hp-final { background: #3466AE; }
.hp-final .btn-light { color: #1E2B4E; }

/* Pianifica su telefono: icona, testo e freccia in una riga, senza sovrapposizioni */
@media (max-width: 767px) {
  .pw-fascia { grid-template-columns: 36px minmax(0, 1fr) 44px !important; grid-template-areas: none !important; gap: 14px !important; align-items: center; padding: 20px 16px !important; min-height: 0; }
  .pw-fascia > * { grid-area: auto !important; position: relative; }
  .pw-fascia .nm-wm { position: absolute !important; }
  .pw-f-ai { width: 32px; height: 32px; justify-self: center; }
  .pw-f-ai .ai, .pw-f-ai svg { width: 100%; height: 100%; }
  .pw-f-t { min-width: 0; }
  .pw-f-t small { font-size: 11px; letter-spacing: .1em; white-space: normal; }
  .pw-f-t strong { font-size: 22px; }
  .pw-f-go { width: 44px !important; height: 44px !important; margin: 0 !important; justify-self: end; }
  .pw-fasce { padding-left: 16px; padding-right: 16px; gap: 10px; }
  .pw-top h1 { font-size: 26px !important; }
}

/* Avviso "work in progress" in cima alla home: tre pannelli che si compongono, poi il testo */
.hp-wip { display: flex; width: fit-content; max-width: 100%; text-align: left; align-items: center; gap: 10px; margin: clamp(18px, 3vw, 30px) 0 0; padding: 7px 18px 7px 12px; border: 1px solid rgba(52, 102, 174, .22); border-radius: var(--radius-pill); background: rgba(52, 102, 174, .06); color: var(--blue); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.hp-wip b { font-weight: 700; }
.hp-wip-t { color: var(--gray-700); font-weight: 500; letter-spacing: .04em; text-transform: none; font-size: 13px; }
.hp-wip-ico { width: 38px; height: 29px; flex: none; fill: none; stroke: var(--blue); stroke-width: 1.6; stroke-linecap: square; overflow: visible; }
.hp-wip-ico .s { stroke: none; fill: var(--blue); transform-box: fill-box; transform-origin: top; animation: wipStrip 4.6s var(--ease-out) infinite backwards; }
.hp-wip-ico .s2 { fill: #64B989; animation-delay: .35s; }
.hp-wip-ico .s3 { animation-delay: .7s; }
.hp-wip b, .hp-wip-t { animation: wipText .6s var(--ease-out) .8s backwards; }
@keyframes wipStrip { 0% { transform: scaleY(0); } 16%, 78% { transform: scaleY(1); } 92%, 100% { transform: scaleY(0); } }
@keyframes wipText { from { opacity: 0; transform: translateX(-6px); } to { opacity: 1; transform: none; } }
@media (max-width: 520px) { .hp-wip-t { display: none; } }
@media (prefers-reduced-motion: reduce) { .hp-wip-ico .s, .hp-wip b, .hp-wip-t { animation: none; } }
