/* ==========================================================================
   prezzi-nuova.css — bozza della nuova pagina /prezzi, direzione «Il listino».
   Tema chiaro, tipografia nitida, numeri tabellari. Il piano consigliato è
   l'unica superficie scura in alto; bande scure solo per numeri voce,
   servizio gestito e chiusura. Menu e footer sono i partials del sito: qui se
   ne adatta solo l'aspetto.
   Animazioni solo su transform/opacity. Movimento ridotto: tutto fermo.
   «Ferma le animazioni» (html.pn-still) ferma i cicli continui; le sezioni
   con cicli fuori schermo (.pn-off) vanno in pausa.
   ========================================================================== */

/* Ripiego con le stesse misure di Inter (Arial adattata): quando Inter arriva da Google Fonts
   (display=swap) il testo non si sposta, niente salti di impaginazione (CLS). */
@font-face { font-family: 'Inter Fallback'; src: local('Arial'), local('ArialMT'), local('Helvetica'); ascent-override: 90.44%; descent-override: 22.52%; line-gap-override: 0%; size-adjust: 107.12%; }

:root {
  --pn-bg: #FBFCFE;
  --pn-bg-2: #F3F6FA;
  --pn-card: #FFFFFF;
  --pn-ink: #0A0C12;
  --pn-ink-2: #2A303C;
  --pn-muted: #555D6E;
  --pn-faint: #5B6271;
  --pn-line: rgba(15, 23, 42, .08);
  --pn-line-2: rgba(15, 23, 42, .14);
  --pn-cyan: #00E5FF;
  --pn-violet: #7C4DFF;
  --pn-green: #00E676;
  --pn-violet-ink: #5B34E6;
  --pn-cyan-ink: #00728C;
  --pn-green-ink: #047A44;
  --pn-amber-ink: #8A5A00;
  --pn-navy: #0A0F1E;
  --pn-navy-2: #111A30;
  --pn-navy-text: #AEB6C7;
  --pn-sh-1: 0 1px 2px rgba(16, 24, 40, .05), 0 2px 6px -2px rgba(16, 24, 40, .06);
  --pn-sh-2: 0 2px 4px rgba(16, 24, 40, .03), 0 14px 34px -12px rgba(16, 24, 40, .14);
  --pn-sh-3: 0 4px 10px rgba(16, 24, 40, .04), 0 34px 70px -20px rgba(16, 24, 40, .26);
  --pn-ease: cubic-bezier(.2, .8, .2, 1);
  --pn-spring: cubic-bezier(.34, 1.4, .64, 1);
  --pn-font: 'Inter', 'Inter Fallback', -apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif;
  --pn-nav: 64px;
  --pn-c-maps: #00A3C4;
  --pn-c-li: #2F6BDB;
  --pn-c-em: #B88A00;
  --pn-c-vo: #7C4DFF;
  --pn-c-nu: #8A93A6;
}

/* ---------- Base ---------- */
body.pn-page { background: var(--pn-bg); color: var(--pn-ink); font-family: var(--pn-font); -webkit-font-smoothing: antialiased; }
.pn-page main { display: block; font-size: 17px; line-height: 1.6; font-feature-settings: "cv11" 1, "ss01" 1; overflow-x: clip; }
.pn-page main:focus { outline: none; }
.pn-page main ul, .pn-page main ol { list-style: none; }
.pn-page main img { display: block; max-width: 100%; height: auto; }
.pn-page main picture { display: block; }
.pn-page main h1, .pn-page main h2, .pn-page main h3 { font-weight: 700; }
.pn-ic { width: 18px; height: 18px; flex: none; }
.pn-sprite { position: absolute; width: 0; height: 0; overflow: hidden; }
.pn-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pn-page [id] { scroll-margin-top: 84px; }
.pn-wrap { width: 100%; max-width: 1200px; margin: 0 auto; padding: 0 32px; }
.pn-page main a:not([class]) {
  color: var(--pn-violet-ink); font-weight: 600; text-decoration: underline; text-decoration-color: rgba(91, 52, 230, .32); text-underline-offset: 3px;
  transition: text-decoration-color .2s;
}
.pn-page main a:not([class]):hover { text-decoration-color: currentColor; }
.pn-page main :focus-visible, .pn-skip:focus-visible { outline: 3px solid var(--pn-violet); outline-offset: 3px; border-radius: 6px; }
.pn-skip {
  position: fixed; left: 16px; top: -64px; z-index: 1100; padding: 10px 16px; border-radius: 12px;
  background: var(--pn-ink); color: #fff; font: 600 14px/20px var(--pn-font); text-decoration: none; transition: top .2s;
}
.pn-skip:focus { top: 12px; }
.pn-num, .pn-price, .pn-rate-table, .pn-bill, .pn-table, .pn-th-price { font-variant-numeric: tabular-nums; }

/* ---------- Menu del sito: stessa struttura, aspetto chiaro ---------- */
.pn-page #nav { background: rgba(251, 252, 254, .66); border-bottom-color: transparent; -webkit-backdrop-filter: saturate(180%) blur(18px); backdrop-filter: saturate(180%) blur(18px); transition: background .3s, box-shadow .3s; }
.pn-page #nav.pn-scrolled { background: rgba(255, 255, 255, .9); box-shadow: 0 1px 0 var(--pn-line), 0 10px 30px -18px rgba(16, 24, 40, .18); }
.pn-page .nav-logo, .pn-page .nav-logo a { color: var(--pn-ink) !important; letter-spacing: -.02em; }
.pn-page #nav .logo-icon { box-shadow: var(--pn-sh-1), inset 0 0 0 1px var(--pn-line); }
.pn-page .nav-links a { color: var(--pn-ink-2); }
.pn-page .nav-links a:hover { color: var(--pn-ink); }
.pn-page .nav-links a[href="/prezzi"] { color: var(--pn-violet-ink) !important; }
.pn-page .nav-dropdown-menu { background: rgba(255, 255, 255, .98); border-color: var(--pn-line); box-shadow: var(--pn-sh-3); }
.pn-page .mega-left { background: #F5F7FB; border-right-color: var(--pn-line); }
.pn-page .mega-label, .pn-page .mega-desc, .pn-page .ndm-text span { color: var(--pn-muted); }
.pn-page .mega-right a { color: var(--pn-ink) !important; }
.pn-page .mega-right a:hover { background: rgba(15, 23, 42, .045); }
.pn-page .ndm-text strong { color: var(--pn-ink); }
.pn-page .nav-auth { border-left-color: var(--pn-line); }
.pn-page .nav-login { color: var(--pn-ink) !important; border-color: var(--pn-line-2); border-radius: 999px; }
.pn-page .nav-login:hover { color: var(--pn-ink) !important; background: rgba(15, 23, 42, .04); border-color: rgba(15, 23, 42, .24); }
.pn-page .nav-cta { background: var(--pn-ink) !important; color: #fff !important; border-radius: 999px; box-shadow: 0 6px 16px -8px rgba(10, 12, 18, .6); }
.pn-page .nav-cta:hover { opacity: 1; box-shadow: 0 10px 22px -10px rgba(124, 77, 255, .7); }
.pn-page .nav-account-btn { background: #fff; border-color: var(--pn-line-2); color: var(--pn-ink) !important; box-shadow: var(--pn-sh-1); }
.pn-page .nav-account-btn:hover { background: #fff; border-color: rgba(124, 77, 255, .4); }
.pn-page .nav-hamburger span { background: var(--pn-ink); }
.pn-page .nav-mobile-overlay { top: var(--pn-nav); padding-top: 20px; background: rgba(251, 252, 254, .98); border-top: 1px solid var(--pn-line); }
.pn-page .nav-mobile-overlay a { color: var(--pn-ink); border-bottom-color: var(--pn-line); }
.pn-page .nav-mobile-overlay a:hover { color: var(--pn-violet-ink); }
.pn-page .nav-mobile-overlay .nav-auth { border-top-color: var(--pn-line); }
.pn-page #nav a:focus-visible, .pn-page #nav button:focus-visible, .pn-page .nav-mobile-overlay a:focus-visible { outline: 3px solid var(--pn-violet); outline-offset: 2px; border-radius: 8px; }

/* ---------- Footer del sito: superficie chiara ---------- */
.pn-page footer { background: #fff; border-top: 1px solid var(--pn-line); color: var(--pn-ink); }
.pn-page footer .nav-logo { color: var(--pn-ink); }
.pn-page footer .logo-icon { box-shadow: var(--pn-sh-1), inset 0 0 0 1px var(--pn-line); }
.pn-page .footer-brand p, .pn-page .footer-col a, .pn-page .footer-hours, .pn-page .footer-bottom p,
.pn-page .footer-bottom-links a, .pn-page .footer-bottom-links button { color: var(--pn-muted); }
.pn-page .footer-col h4 { color: var(--pn-ink); }
.pn-page .footer-col a:hover { color: var(--pn-ink); }
.pn-page .footer-contact-link { color: var(--pn-muted) !important; }
.pn-page .footer-contact-link:hover { color: var(--pn-violet-ink) !important; }
.pn-page .footer-contact-link svg { color: var(--pn-cyan-ink); }
.pn-page .footer-hours { border-top-color: var(--pn-line); }
.pn-page .footer-hours svg { color: var(--pn-green-ink); }
.pn-page .footer-hours strong, .pn-page .trust-made-in strong { color: var(--pn-ink); }
.pn-page .footer-trust { border-color: var(--pn-line); }
.pn-page .trust-made-in { color: var(--pn-ink-2); }
.pn-page .trust-flag { box-shadow: 0 0 0 1px var(--pn-line), 0 1px 3px rgba(16, 24, 40, .15); }
.pn-page .trust-badge { background: #F5F7FB; border-color: var(--pn-line); color: var(--pn-ink-2); }
.pn-page .trust-badge:hover { background: #fff; border-color: rgba(124, 77, 255, .3); color: var(--pn-ink); }
.pn-page .trust-badge.ssl svg { color: var(--pn-green-ink); }
.pn-page .trust-badge.gdpr svg { color: #2F5BD3; }
.pn-page .trust-badge.pci svg { color: var(--pn-cyan-ink); }
/* Bozza: il badge «Supporto italiano 24h» del footer comune non è un impegno verificato
   (orari reali lun-ven 9-18): su questa pagina non si mostra. Da correggere nel partial. */
.pn-page .trust-badge.uptime { display: none; }
.pn-page .footer-bottom { border-top: 0; padding-top: 4px; }
.pn-page .footer-bottom-links a:hover, .pn-page .footer-bottom-links button:hover { color: var(--pn-violet-ink); }
.pn-page footer a:focus-visible, .pn-page footer button:focus-visible { outline: 3px solid var(--pn-violet); outline-offset: 2px; border-radius: 6px; }

/* ---------- Pulsanti ---------- */
.pn-btn {
  position: relative; display: inline-flex; align-items: center; justify-content: center; gap: 10px; overflow: hidden;
  min-height: 50px; padding: 0 24px; border: 0; border-radius: 999px; cursor: pointer; isolation: isolate;
  font: 600 16px/1.2 var(--pn-font); letter-spacing: -.01em; text-decoration: none; text-align: center; white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
  transition: transform .4s var(--pn-spring), box-shadow .35s var(--pn-ease), background-color .25s, color .25s;
}
.pn-btn .pn-ic { width: 17px; height: 17px; transition: transform .35s var(--pn-ease); }
.pn-btn:hover { transform: translateY(-2px); }
.pn-btn:hover .pn-ic { transform: translateX(3px); }
.pn-btn:active { transform: scale(.97); transition-duration: .1s; }
.pn-btn-dark { color: #fff; background: var(--pn-ink); box-shadow: 0 12px 26px -12px rgba(10, 12, 18, .7), 0 10px 30px -16px rgba(124, 77, 255, .55); }
.pn-btn-line { color: var(--pn-ink); background: #fff; box-shadow: inset 0 0 0 1px var(--pn-line-2), var(--pn-sh-1); }
.pn-btn-line:hover { box-shadow: inset 0 0 0 1px rgba(91, 52, 230, .45), var(--pn-sh-2); }
.pn-btn-glow { color: #06101C; background: linear-gradient(100deg, #00E5FF 0%, #7DF3FF 45%, #B6A4FF 100%); box-shadow: 0 14px 34px -14px rgba(0, 229, 255, .65), inset 0 0 0 1px rgba(255, 255, 255, .4); }
.pn-btn-glow:hover { box-shadow: 0 18px 40px -14px rgba(0, 229, 255, .8), inset 0 0 0 1px rgba(255, 255, 255, .55); }
.pn-btn-white { color: var(--pn-ink); background: #fff; box-shadow: 0 14px 34px -14px rgba(0, 229, 255, .45); }
.pn-btn-ghost { color: #fff; background: rgba(255, 255, 255, .07); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .24); }
.pn-btn-ghost:hover { background: rgba(255, 255, 255, .13); }
.pn-btn-full { width: 100%; }
.pn-cta-row { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.pn-cta-c { justify-content: center; }

/* Segno discreto dei prezzi di bozza */
.pn-draft {
  display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px 4px 9px; border-radius: 999px;
  font: 600 12px/1.3 var(--pn-font); letter-spacing: .01em; color: var(--pn-amber-ink);
  background: #FFF7E0; box-shadow: inset 0 0 0 1px rgba(184, 138, 0, .28); white-space: nowrap;
}
.pn-draft::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: #E0A800; }
.pn-draft-s { font-size: 11.5px; padding: 3px 8px 3px 7px; }

/* ---------- Titoli e testi delle sezioni ---------- */
.pn-sec { position: relative; padding: 120px 0; }
.pn-kicker { display: inline-flex; align-items: center; gap: 8px; margin-bottom: 14px; font: 700 13px/1.2 var(--pn-font); letter-spacing: .08em; text-transform: uppercase; color: var(--pn-violet-ink); }
.pn-kicker::before { content: ""; width: 18px; height: 2px; border-radius: 2px; background: linear-gradient(90deg, var(--pn-cyan), var(--pn-violet)); }
.pn-kicker-d { color: #8FEFFF; }
.pn-h2 { font-size: clamp(30px, 3.4vw, 46px); line-height: 1.08; letter-spacing: -.035em; color: var(--pn-ink); text-wrap: balance; }
.pn-p { margin-top: 18px; max-width: 62ch; font-size: 18px; line-height: 1.65; color: var(--pn-muted); text-wrap: pretty; }
.pn-sec-head { max-width: 760px; margin-bottom: 56px; }
.pn-sec-head-c { margin-left: auto; margin-right: auto; text-align: center; }
.pn-sec-head-c .pn-p { margin-left: auto; margin-right: auto; }

/* ---------- Hero ---------- */
.pn-hero { position: relative; padding: calc(var(--pn-nav) + 28px) 0 56px; overflow: hidden; isolation: isolate; }
.pn-hero-bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.pn-paper {
  position: absolute; inset: 0;
  background-image: linear-gradient(rgba(15, 23, 42, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(15, 23, 42, .045) 1px, transparent 1px);
  background-size: 40px 40px; background-position: center -1px;
  -webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 18%, #000 30%, transparent 78%);
  mask-image: radial-gradient(ellipse 70% 60% at 50% 18%, #000 30%, transparent 78%);
}
.pn-au { position: absolute; display: block; border-radius: 50%; will-change: transform; animation: pn-drift 22s var(--pn-ease) infinite alternate; }
.pn-au1 { width: 760px; height: 520px; left: calc(50% - 760px); top: -200px; background: radial-gradient(closest-side, rgba(0, 229, 255, .26), rgba(0, 229, 255, 0)); }
.pn-au2 { width: 820px; height: 560px; left: calc(50% - 40px); top: -240px; background: radial-gradient(closest-side, rgba(124, 77, 255, .2), rgba(124, 77, 255, 0)); animation-duration: 26s; animation-delay: -8s; }
.pn-au3 { width: 900px; height: 600px; left: calc(50% - 450px); top: 520px; background: radial-gradient(closest-side, rgba(0, 230, 118, .1), rgba(0, 230, 118, 0)); animation-duration: 30s; animation-delay: -14s; }
@keyframes pn-drift { from { transform: translate3d(-40px, 0, 0) scale(1); } to { transform: translate3d(60px, 40px, 0) scale(1.08); } }
.pn-hero-in { position: relative; text-align: center; }
.pn-crumbs { display: flex; justify-content: center; gap: 8px; margin-bottom: 22px; font-size: 13px; color: var(--pn-faint); }
.pn-crumbs a { color: var(--pn-muted); text-decoration: none; }
.pn-crumbs a:hover { color: var(--pn-ink); text-decoration: underline; }
.pn-crumbs [aria-current] { color: var(--pn-ink-2); font-weight: 600; }
.pn-eyebrow {
  display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px 7px 12px; border-radius: 999px;
  font: 600 13.5px/1.3 var(--pn-font); color: var(--pn-ink-2); background: rgba(255, 255, 255, .8);
  box-shadow: inset 0 0 0 1px var(--pn-line-2), var(--pn-sh-1);
}
.pn-eyebrow-dot { width: 8px; height: 8px; border-radius: 50%; background: linear-gradient(135deg, var(--pn-cyan), var(--pn-violet)); box-shadow: 0 0 0 3px rgba(124, 77, 255, .14); }
.pn-h1 { margin: 22px auto 0; max-width: 1100px; font-size: clamp(42px, 5.5vw, 80px); line-height: 1; letter-spacing: -.048em; font-weight: 800 !important; color: var(--pn-ink); }
.pn-h1-l { display: block; }
.pn-grad { background: linear-gradient(96deg, #5B34E6 0%, #3E5BEA 34%, #0089A8 68%, #04875A 100%); -webkit-background-clip: text; background-clip: text; color: transparent; padding-bottom: .06em; }
.pn-lead { max-width: 64ch; margin: 24px auto 0; font-size: 18.5px; line-height: 1.6; color: var(--pn-muted); text-wrap: pretty; }
.pn-lead strong { color: var(--pn-ink-2); font-weight: 650; }

/* Interruttore mensile / annuale */
.pn-billing-row { display: flex; align-items: center; justify-content: center; gap: 14px; flex-wrap: wrap; margin-top: 34px; }
.pn-billing {
  position: relative; display: inline-grid; grid-auto-flow: column; align-items: center; padding: 5px; border: 0; border-radius: 999px;
  background: #EEF2F7; box-shadow: inset 0 0 0 1px var(--pn-line), inset 0 1px 2px rgba(16, 24, 40, .06); isolation: isolate;
}
.pn-billing input { position: absolute; opacity: 0; width: 1px; height: 1px; pointer-events: none; }
.pn-billing label {
  position: relative; z-index: 1; display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 18px; border-radius: 999px; cursor: pointer;
  font: 600 15px/1 var(--pn-font); color: var(--pn-muted); transition: color .3s; white-space: nowrap; user-select: none;
}
.pn-billing input:checked + label { color: var(--pn-ink); }
.pn-billing input:focus-visible + label { outline: 3px solid var(--pn-violet); outline-offset: 2px; }
.pn-billing-thumb {
  position: absolute; z-index: 0; top: 5px; left: 0; height: calc(100% - 10px); width: var(--pn-tw, 50%); border-radius: 999px; background: #fff;
  box-shadow: 0 1px 2px rgba(16, 24, 40, .08), 0 6px 16px -6px rgba(16, 24, 40, .22);
  transform: translateX(var(--pn-tx, 5px)); transition: transform .5s var(--pn-spring), width .5s var(--pn-spring);
}
.pn-save { padding: 3px 8px; border-radius: 999px; font-size: 12px; font-weight: 700; color: #03663A; background: #DDF7EA; }
.pn-billing-s { margin: 0; padding: 4px; }
.pn-billing-s label { min-height: 30px; padding: 0 12px; font-size: 13.5px; }
.pn-billing-s .pn-billing-thumb { top: 4px; height: calc(100% - 8px); }

/* Schede dei piani */
.pn-plans { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; align-items: stretch; margin-top: 40px; text-align: left; }
.pn-plan {
  position: relative; display: flex; flex-direction: column; padding: 30px 28px 26px; border-radius: 24px; background: var(--pn-card); overflow: hidden; isolation: isolate;
  box-shadow: inset 0 0 0 1px var(--pn-line), var(--pn-sh-2);
  transition: translate .5s var(--pn-spring), box-shadow .4s var(--pn-ease);
}
.pn-plan:hover { translate: 0 -4px; box-shadow: inset 0 0 0 1px var(--pn-line-2), var(--pn-sh-3); }
.pn-glow {
  position: absolute; inset: 0; z-index: -1; pointer-events: none; opacity: 0; transition: opacity .4s;
  background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(124, 77, 255, .09), transparent 60%);
}
.pn-plan:hover .pn-glow { opacity: 1; }
.pn-plan-head { display: block; }
.pn-plan-name { display: flex; align-items: center; gap: 10px; font-size: 21px; letter-spacing: -.02em; color: var(--pn-ink); }
.pn-plan-ic { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 10px; background: #F1F4FA; box-shadow: inset 0 0 0 1px var(--pn-line); color: var(--pn-violet-ink); }
.pn-plan-ic svg { width: 17px; height: 17px; }
.pn-plan-for { margin-top: 6px; font-size: 15px; color: var(--pn-muted); }
.pn-price { display: flex; align-items: flex-start; gap: 2px; margin-top: 22px; font-size: 58px; font-weight: 750; line-height: 1; letter-spacing: -.045em; color: var(--pn-ink); min-height: 1.1em; }
.pn-price-cur { margin-top: .12em; font-size: .5em; font-weight: 650; letter-spacing: 0; color: var(--pn-ink-2); }
.pn-roll { display: inline-flex; height: 1.1em; overflow: hidden; }
.pn-dg { display: inline-block; height: 1.1em; overflow: hidden; }
/* La colonna 0-9 è un contenuto generato: nel testo della pagina (e per i motori) resta solo il prezzo. */
.pn-dg-in { display: block; transform: translate3d(0, calc(var(--d, 0) * -1.1em), 0); transition: transform .9s var(--pn-spring); transition-delay: var(--dl, 0ms); }
.pn-dg-in::before { content: "0\A 1\A 2\A 3\A 4\A 5\A 6\A 7\A 8\A 9"; display: block; white-space: pre; line-height: 1.1em; text-align: center; }
.pn-price-note { min-height: 2.8em; margin-top: 8px; font-size: 14px; line-height: 1.4; color: var(--pn-faint); white-space: pre-line; transition: opacity .25s; }
.pn-price-note.is-swap { opacity: 0; }
.pn-plan .pn-btn { margin-top: 18px; width: 100%; }
.pn-plan-desc { margin-top: 22px; padding-top: 20px; border-top: 1px solid var(--pn-line); font-size: 15px; line-height: 1.55; color: var(--pn-ink-2); }
.pn-feats { display: grid; gap: 11px; margin-top: 18px; font-size: 15px; line-height: 1.45; color: var(--pn-ink-2); }
.pn-feats li { display: flex; gap: 10px; align-items: flex-start; }
.pn-feats .pn-ic { width: 17px; height: 17px; margin-top: 2px; color: var(--pn-green-ink); }
.pn-feats .pn-no { color: var(--pn-faint); }
.pn-feats .pn-no .pn-ic { color: #858D9D; }
.pn-plan-foot { display: flex; align-items: center; gap: 8px; margin-top: auto; padding-top: 22px; font-size: 14px; }
.pn-plan-foot .pn-ic { width: 15px; height: 15px; color: var(--pn-cyan-ink); }
.pn-page .pn-plan-foot a { color: var(--pn-ink-2); font-weight: 600; text-decoration: none; border-bottom: 1px solid var(--pn-line-2); }
.pn-page .pn-plan-foot a:hover { border-bottom-color: currentColor; }

/* Piano consigliato: superficie scura, bordo che ruota */
.pn-plan-top { background: var(--pn-navy); color: #fff; box-shadow: 0 30px 70px -28px rgba(31, 22, 92, .55), 0 10px 30px -18px rgba(0, 229, 255, .35); }
.pn-plan-top:hover { box-shadow: 0 36px 80px -28px rgba(31, 22, 92, .6), 0 14px 36px -18px rgba(0, 229, 255, .45); }
.pn-ring { position: absolute; inset: 0; z-index: -2; border-radius: inherit; overflow: hidden; }
.pn-ring::before {
  content: ""; position: absolute; left: 50%; top: 50%; width: 180%; aspect-ratio: 1; margin-left: -90%; margin-top: -90%;
  background: conic-gradient(from 0deg, rgba(0, 229, 255, 0) 0deg, rgba(0, 229, 255, .95) 70deg, rgba(124, 77, 255, .95) 140deg, rgba(0, 230, 118, .7) 200deg, rgba(0, 229, 255, 0) 260deg, rgba(0, 229, 255, 0) 360deg);
  will-change: transform; animation: pn-spin 9s linear infinite;
}
.pn-ring::after { content: ""; position: absolute; inset: 1.5px; border-radius: 22.5px; background: linear-gradient(180deg, #121A33 0%, #0A0F1E 46%); }
@keyframes pn-spin { to { transform: rotate(1turn); } }
.pn-plan-top .pn-glow { background: radial-gradient(420px circle at var(--mx, 50%) var(--my, 0%), rgba(0, 229, 255, .12), transparent 60%); }
.pn-plan-top .pn-plan-name, .pn-plan-top .pn-price { color: #fff; }
.pn-plan-top .pn-price-cur { color: #CFE9FF; }
.pn-plan-top .pn-plan-ic { background: rgba(255, 255, 255, .08); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14); color: #8FEFFF; }
.pn-plan-top .pn-plan-for, .pn-plan-top .pn-price-note { color: var(--pn-navy-text); }
.pn-plan-top .pn-plan-desc { color: #DCE2EE; border-top-color: rgba(255, 255, 255, .1); }
.pn-plan-top .pn-feats { color: #E6EAF3; }
.pn-plan-top .pn-feats .pn-ic { color: #5CF2A6; }
.pn-page .pn-plan-top .pn-plan-foot a { color: #E6EAF3; border-bottom-color: rgba(255, 255, 255, .25); }
.pn-plan-top .pn-plan-foot .pn-ic { color: #8FEFFF; }
.pn-plan-top :focus-visible { outline-color: #8FEFFF !important; }
.pn-badge {
  position: absolute; top: 26px; right: 24px; padding: 5px 11px; border-radius: 999px; font: 700 12px/1.2 var(--pn-font); letter-spacing: .02em;
  color: #06101C; background: linear-gradient(100deg, #8FEFFF, #C9BDFF);
}
.pn-plans-note { max-width: 70ch; margin: 22px auto 0; font-size: 14px; line-height: 1.55; color: var(--pn-faint); text-align: center; }

/* Prova gratuita */
.pn-trial {
  display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 22px; margin-top: 34px; padding: 22px 24px; border-radius: 22px; text-align: left;
  background: linear-gradient(#fff, #fff) padding-box, linear-gradient(110deg, rgba(0, 229, 255, .55), rgba(124, 77, 255, .5), rgba(0, 230, 118, .45)) border-box;
  border: 1.5px solid transparent; box-shadow: var(--pn-sh-2);
}
.pn-trial-ic { display: grid; place-items: center; width: 48px; height: 48px; border-radius: 14px; color: #fff; background: linear-gradient(135deg, #00C2E0, #7C4DFF); box-shadow: 0 10px 24px -10px rgba(124, 77, 255, .7); }
.pn-trial-ic svg { width: 22px; height: 22px; }
.pn-trial-t { font-size: 19px; line-height: 1.3; letter-spacing: -.02em; color: var(--pn-ink); }
.pn-trial-txt p { margin-top: 4px; font-size: 15px; line-height: 1.55; color: var(--pn-muted); }
.pn-hero-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-top: 30px; }
.pn-jump { display: flex; flex-wrap: wrap; gap: 8px; }
.pn-jump a {
  display: inline-flex; align-items: center; min-height: 36px; padding: 0 14px; border-radius: 999px; font-size: 14px; font-weight: 600; color: var(--pn-ink-2); text-decoration: none;
  background: rgba(255, 255, 255, .7); box-shadow: inset 0 0 0 1px var(--pn-line-2); transition: background .2s, box-shadow .2s, color .2s;
}
.pn-jump a:hover { background: #fff; color: var(--pn-violet-ink); box-shadow: inset 0 0 0 1px rgba(91, 52, 230, .35); }
.pn-still-btn {
  display: inline-flex; align-items: center; gap: 8px; min-height: 36px; padding: 0 14px; border: 0; border-radius: 999px; cursor: pointer;
  font: 600 13.5px/1 var(--pn-font); color: var(--pn-muted); background: transparent; box-shadow: inset 0 0 0 1px var(--pn-line-2);
}
.pn-still-btn:hover { color: var(--pn-ink); background: rgba(255, 255, 255, .7); }
.pn-still-btn .pn-ic { width: 16px; height: 16px; }
.pn-still-btn:focus-visible { outline: 3px solid var(--pn-violet); outline-offset: 2px; }

/* Ingresso dell'hero (una volta) */
/* Il paragrafo d'apertura (elemento LCP su tablet e telefono) non ha dissolvenza. */
.js .pn-in-1, .js .pn-in-3 { animation: pn-rise .8s var(--pn-ease) backwards; }
.js .pn-in-3 { animation-delay: .12s; }
.js .pn-plans .pn-plan { animation: pn-rise .9s var(--pn-ease) backwards; }
.js .pn-plans .pn-plan:nth-child(1) { animation-delay: .18s; }
.js .pn-plans .pn-plan:nth-child(2) { animation-delay: .26s; }
.js .pn-plans .pn-plan:nth-child(3) { animation-delay: .34s; }
@keyframes pn-rise { from { opacity: 0; transform: translate3d(0, 18px, 0); } to { opacity: 1; transform: none; } }

/* Comparsa allo scorrimento */
.js [data-rv] { opacity: 0; transform: translate3d(0, 22px, 0); transition: opacity .8s var(--pn-ease), transform .8s var(--pn-ease); transition-delay: var(--rv-d, 0ms); }
.js [data-rv].is-in { opacity: 1; transform: none; }

/* ---------- Paghi solo quello che usi ---------- */
.pn-model { background: linear-gradient(180deg, var(--pn-bg) 0%, #fff 100%); border-top: 1px solid var(--pn-line); }
.pn-model-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 64px; align-items: start; }
.pn-steps { position: relative; display: grid; gap: 26px; margin-top: 36px; }
.pn-steps::before { content: ""; position: absolute; left: 17px; top: 18px; bottom: 18px; width: 2px; background: linear-gradient(var(--pn-cyan), var(--pn-violet), var(--pn-green)); opacity: .45; border-radius: 2px; }
.pn-steps li { position: relative; display: grid; grid-template-columns: 36px 1fr; gap: 18px; }
.pn-step-n { position: relative; display: grid; place-items: center; width: 36px; height: 36px; border-radius: 50%; font: 700 15px/1 var(--pn-font); color: var(--pn-ink); background: #fff; box-shadow: inset 0 0 0 1.5px var(--pn-line-2), var(--pn-sh-1); }
.pn-steps h3 { font-size: 18px; letter-spacing: -.015em; color: var(--pn-ink); margin-top: 5px; }
.pn-steps p { margin-top: 6px; font-size: 16px; line-height: 1.6; color: var(--pn-muted); }
.pn-rate { padding: 8px; border-radius: 26px; background: #F4F6FA; box-shadow: inset 0 0 0 1px var(--pn-line); }
.pn-rate-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 16px 18px 14px; }
.pn-rate-t { display: flex; align-items: center; gap: 10px; font-weight: 700; font-size: 16px; color: var(--pn-ink); }
.pn-rate-t .pn-ic { color: var(--pn-violet-ink); }
.pn-rate-unit { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: 14.5px; color: var(--pn-muted); }
.pn-rate-unit strong { color: var(--pn-ink); }
.pn-rate-table { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border-radius: 18px; box-shadow: var(--pn-sh-1), inset 0 0 0 1px var(--pn-line); overflow: hidden; }
.pn-rate-table thead th { padding: 13px 18px; font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--pn-faint); text-align: left; border-bottom: 1px solid var(--pn-line); }
.pn-rate-table thead th:nth-child(n+2) { text-align: right; }
.pn-rate-table tbody th, .pn-rate-table tbody td { padding: 13px 18px; border-bottom: 1px solid var(--pn-line); vertical-align: top; }
.pn-rate-table tbody tr:last-child > * { border-bottom: 0; }
.pn-rate-table tbody th { font-size: 15.5px; font-weight: 600; text-align: left; color: var(--pn-ink); }
.pn-rate-table tbody th .pn-tl, .pn-table tbody th .pn-tl { color: var(--pn-ink); font-weight: 600; text-decoration: underline; text-decoration-color: rgba(15, 23, 42, .22); text-decoration-thickness: 1px; text-underline-offset: 4px; transition: color .2s, text-decoration-color .2s; }
.pn-rate-table tbody th .pn-tl:hover, .pn-table tbody th .pn-tl:hover { color: var(--pn-violet-ink); text-decoration-color: currentColor; }
.pn-rate-table small { display: block; margin-top: 2px; font-size: 13px; font-weight: 500; color: var(--pn-faint); }
.pn-rate-table tbody td { text-align: right; font-size: 15.5px; font-weight: 700; color: var(--pn-ink); white-space: nowrap; }
.pn-rate-table tbody td small { font-weight: 500; }
.pn-rate-table tbody td[data-eur] { color: var(--pn-violet-ink); }
.pn-rate-table tbody tr { transition: background .2s; }
.pn-rate-table tbody tr:hover { background: #FAFBFF; }
.pn-free { margin-top: 8px; padding: 16px 18px 14px; }
.pn-free-t { font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--pn-green-ink); }
.pn-free ul { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; }
.pn-free li { padding: 6px 12px; border-radius: 999px; font-size: 13.5px; color: var(--pn-ink-2); background: #fff; box-shadow: inset 0 0 0 1px var(--pn-line); }
.pn-free li small { color: var(--pn-faint); }

/* ---------- Calcolatore ---------- */
.pn-calc { background: #fff; border-top: 1px solid var(--pn-line); }
.pn-calc::before { content: ""; position: absolute; inset: 0 0 auto; height: 520px; pointer-events: none; background: radial-gradient(60% 80% at 80% 0%, rgba(124, 77, 255, .07), transparent 70%), radial-gradient(50% 70% at 10% 10%, rgba(0, 229, 255, .07), transparent 70%); }
.pn-calc .pn-wrap { position: relative; }
.pn-calc-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 40px; align-items: start; }
.pn-calc-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.pn-presets { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-bottom: 4px; }
.pn-presets-l { margin-right: 4px; font-size: 14px; font-weight: 600; color: var(--pn-faint); }
.pn-presets button {
  min-height: 36px; padding: 0 14px; border: 0; border-radius: 999px; cursor: pointer; font: 600 14px/1 var(--pn-font); color: var(--pn-ink-2);
  background: #F3F5F9; box-shadow: inset 0 0 0 1px var(--pn-line); transition: background .2s, color .2s, box-shadow .2s, transform .3s var(--pn-spring);
}
.pn-presets button:hover { background: #fff; box-shadow: inset 0 0 0 1px rgba(91, 52, 230, .35); color: var(--pn-violet-ink); }
.pn-presets button:active { transform: scale(.96); }
.pn-presets button[aria-pressed="true"] { color: #fff; background: var(--pn-ink); box-shadow: none; }
.pn-presets button:focus-visible { outline: 3px solid var(--pn-violet); outline-offset: 2px; }
.pn-grp-f { min-width: 0; margin: 0; padding: 20px 22px 18px; border: 0; border-radius: 20px; background: #FBFCFE; box-shadow: inset 0 0 0 1px var(--pn-line); }
.pn-grp-f legend { float: left; width: 100%; display: flex; align-items: center; gap: 10px; margin-bottom: 14px; padding: 0; font-size: 15px; font-weight: 700; color: var(--pn-ink); }
.pn-grp-f legend + * { clear: both; }
.pn-grp-ic { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 9px; background: #fff; box-shadow: inset 0 0 0 1px var(--pn-line-2); color: var(--pn-violet-ink); }
.pn-grp-ic svg { width: 15px; height: 15px; }
.pn-field + .pn-field { margin-top: 18px; }
.pn-field-top { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.pn-field-top label { font-size: 15px; font-weight: 600; color: var(--pn-ink-2); }
.pn-num {
  width: 104px; min-height: 38px; padding: 0 12px; border: 0; border-radius: 10px; font: 700 16px/1 var(--pn-font); text-align: right; color: var(--pn-ink);
  background: #fff; box-shadow: inset 0 0 0 1px var(--pn-line-2); -moz-appearance: textfield; appearance: textfield;
}
.pn-num::-webkit-outer-spin-button, .pn-num::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.pn-num:focus { outline: none; box-shadow: inset 0 0 0 2px var(--pn-violet); }
.pn-range { --fill: 0%; display: block; width: 100%; height: 28px; margin: 10px 0 2px; background: transparent; cursor: pointer; -webkit-appearance: none; appearance: none; }
.pn-range::-webkit-slider-runnable-track { height: 6px; border-radius: 6px; background: linear-gradient(90deg, #00C2E0, #7C4DFF) 0 0 / var(--fill) 100% no-repeat, #E3E8F0; }
.pn-range::-moz-range-track { height: 6px; border-radius: 6px; background: #E3E8F0; }
.pn-range::-moz-range-progress { height: 6px; border-radius: 6px; background: linear-gradient(90deg, #00C2E0, #7C4DFF); }
.pn-range::-webkit-slider-thumb { -webkit-appearance: none; width: 24px; height: 24px; margin-top: -9px; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px rgba(15, 23, 42, .16), 0 4px 12px -2px rgba(16, 24, 40, .25); transition: transform .25s var(--pn-spring); }
.pn-range::-moz-range-thumb { width: 24px; height: 24px; border: 0; border-radius: 50%; background: #fff; box-shadow: 0 0 0 1px rgba(15, 23, 42, .16), 0 4px 12px -2px rgba(16, 24, 40, .25); }
.pn-range:active::-webkit-slider-thumb { transform: scale(1.15); }
.pn-range:focus { outline: none; }
.pn-range:focus-visible::-webkit-slider-thumb { box-shadow: 0 0 0 3px #fff, 0 0 0 6px var(--pn-violet); }
.pn-range:focus-visible::-moz-range-thumb { box-shadow: 0 0 0 3px #fff, 0 0 0 6px var(--pn-violet); }
.pn-hint { font-size: 13.5px; color: var(--pn-faint); }
.pn-hint-b { margin-top: 10px; min-height: 1.4em; }
.pn-check { display: inline-flex; align-items: center; gap: 10px; margin-top: 10px; font-size: 14.5px; color: var(--pn-ink-2); cursor: pointer; }
.pn-check small { color: var(--pn-faint); }
.pn-check input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pn-check-box { display: grid; place-items: center; flex: none; width: 22px; height: 22px; border-radius: 7px; background: #fff; box-shadow: inset 0 0 0 1.5px var(--pn-line-2); transition: background .2s, box-shadow .2s; }
.pn-check-box svg { width: 14px; height: 14px; color: #fff; transform: scale(.4); opacity: 0; transition: transform .3s var(--pn-spring), opacity .2s; }
.pn-check input:checked + .pn-check-box { background: var(--pn-violet-ink); box-shadow: none; }
.pn-check input:checked + .pn-check-box svg { transform: none; opacity: 1; }
.pn-check input:focus-visible + .pn-check-box { outline: 3px solid var(--pn-violet); outline-offset: 2px; }
.pn-stepper { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 16px; padding-top: 14px; border-top: 1px dashed var(--pn-line-2); }
.pn-stepper-l { font-size: 15px; font-weight: 600; color: var(--pn-ink-2); }
.pn-stepper-l small { display: block; margin-top: 2px; font-size: 13px; font-weight: 500; color: var(--pn-faint); }
.pn-stepper-c { display: inline-flex; align-items: center; gap: 4px; padding: 4px; border-radius: 12px; background: #fff; box-shadow: inset 0 0 0 1px var(--pn-line-2); }
.pn-stepper-c button { display: grid; place-items: center; width: 36px; height: 36px; border: 0; border-radius: 9px; cursor: pointer; font: 600 20px/1 var(--pn-font); color: var(--pn-ink); background: #F3F5F9; transition: background .2s, transform .25s var(--pn-spring); }
.pn-stepper-c button:hover { background: #E9EDF5; }
.pn-stepper-c button:active { transform: scale(.92); }
.pn-stepper-c button:disabled { opacity: .4; cursor: default; }
.pn-stepper-c button:focus-visible { outline: 3px solid var(--pn-violet); outline-offset: 1px; }
.pn-stepper-c output { min-width: 28px; text-align: center; font-weight: 700; font-size: 16px; }
.pn-grp-row .pn-hint { margin-top: 10px; }
.pn-seg { display: flex; flex-wrap: wrap; gap: 6px; padding: 4px; border-radius: 14px; background: #fff; box-shadow: inset 0 0 0 1px var(--pn-line-2); }
.pn-seg input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.pn-seg label { flex: 1 1 auto; display: grid; place-items: center; min-height: 38px; padding: 0 12px; border-radius: 10px; cursor: pointer; font-size: 14.5px; font-weight: 600; color: var(--pn-muted); transition: background .25s, color .25s, box-shadow .25s; white-space: nowrap; }
.pn-seg label:hover { color: var(--pn-ink); }
.pn-seg input:checked + label { color: #fff; background: var(--pn-ink); box-shadow: 0 6px 14px -8px rgba(10, 12, 18, .7); }
.pn-seg input:focus-visible + label { outline: 3px solid var(--pn-violet); outline-offset: 2px; }

/* Riepilogo fisso sopra i controlli (sotto i 960 px lo scontrino è dopo il modulo; da 960 a 1099 px lo nasconde il blocco tablet in fondo) */
.pn-mini { display: none; }
@media (max-width: 1099px) {
  .pn-mini {
    position: sticky; top: calc(var(--pn-nav) + 8px); z-index: 5; display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-radius: 14px; text-decoration: none;
    color: #fff; background: rgba(10, 15, 30, .94); -webkit-backdrop-filter: blur(10px); backdrop-filter: blur(10px); box-shadow: 0 12px 28px -14px rgba(10, 15, 30, .6);
    transition: opacity .3s, transform .3s var(--pn-ease);
  }
  .pn-mini.is-off { opacity: 0; transform: translate3d(0, -8px, 0); pointer-events: none; }
  .pn-mini-k { font-size: 11.5px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: #8FEFFF; }
  .pn-mini-v { flex: 1; min-width: 0; font-size: 15px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .pn-mini-go { display: inline-flex; align-items: center; gap: 4px; font-size: 13px; font-weight: 600; color: #C9D0DD; }
  .pn-mini-go .pn-ic { width: 14px; height: 14px; transform: rotate(90deg); }
  .pn-mini:focus-visible { outline: 3px solid var(--pn-violet); outline-offset: 2px; }
}

/* Lo scontrino della stima */
.pn-bill { position: relative; }
/* --pn-bill-top (prezzi-nuova.js) solo se lo scontrino è più alto della finestra: resta fermo con il fondo in vista. */
.pn-bill.is-sticky { position: sticky; top: var(--pn-bill-top, calc(var(--pn-nav) + 20px)); }
.pn-bill-in {
  position: relative; padding: 20px 22px 22px; border-radius: 24px 24px 10px 10px; background: #fff;
  box-shadow: inset 0 0 0 1px var(--pn-line-2), var(--pn-sh-3);
}
.pn-bill-in::before { content: ""; position: absolute; inset: 0 0 auto; height: 5px; border-radius: 24px 24px 0 0; background: linear-gradient(90deg, #00E5FF, #7C4DFF, #00E676); }
.pn-bill-in::after {
  content: ""; position: absolute; left: 14px; right: 14px; bottom: -7px; height: 14px;
  background: radial-gradient(circle at 7px 0, transparent 6px, #fff 6.5px) 0 0 / 14px 14px repeat-x;
  filter: drop-shadow(0 2px 1px rgba(16, 24, 40, .08));
}
.pn-bill-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 12px; }
.pn-bill-t { font-size: 18px; font-weight: 750; letter-spacing: -.02em; }
.pn-bill-plan { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; padding: 12px 14px; border-radius: 16px; background: #F5F7FB; }
.pn-bill-k { font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--pn-faint); }
.pn-bill-pname { margin-top: 2px; font-size: 20px; font-weight: 750; letter-spacing: -.02em; color: var(--pn-ink); }
.pn-bill-why { margin-top: 2px; font-size: 13px; line-height: 1.45; color: var(--pn-muted); }
.pn-bill-pprice { font-size: 20px; font-weight: 750; white-space: nowrap; color: var(--pn-ink); text-align: right; }
.pn-bill-pprice small { display: block; font-size: 12px; font-weight: 500; color: var(--pn-faint); }
.pn-bar { position: relative; height: 10px; margin: 16px 0 4px; border-radius: 10px; background: #EEF1F6; overflow: hidden; }
.pn-bar i { position: absolute; left: 0; top: 0; display: block; width: 100%; height: 100%; transform-origin: 0 50%; transform: translateX(var(--x, 0%)) scaleX(var(--s, 0)); transition: transform .65s var(--pn-ease); box-shadow: inset -2px 0 0 #fff; }
.pn-bar [data-bar="maps"] { background: var(--pn-c-maps); }
.pn-bar [data-bar="linkedin"] { background: var(--pn-c-li); }
.pn-bar [data-bar="email"] { background: var(--pn-c-em); }
.pn-bar [data-bar="voice"] { background: var(--pn-c-vo); }
.pn-bar [data-bar="numbers"] { background: var(--pn-c-nu); }
.pn-bill-lines { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.pn-bill-lines th, .pn-bill-lines td { padding: 6px 0; border-bottom: 1px dashed var(--pn-line-2); vertical-align: baseline; }
.pn-bill-lines th { text-align: left; font-weight: 600; color: var(--pn-ink-2); }
.pn-bill-lines th small { margin-left: 8px; font-size: 12.5px; font-weight: 500; color: var(--pn-faint); white-space: nowrap; }
.pn-bill-lines td { text-align: right; white-space: nowrap; color: var(--pn-ink); padding-left: 10px; }
.pn-bill-lines td:last-child { width: 86px; font-weight: 700; }
.pn-bill-lines tr.is-zero th, .pn-bill-lines tr.is-zero td { color: var(--pn-faint); font-weight: 500; }
.pn-bill-lines tr.is-zero .pn-dot { opacity: .35; }
.pn-bill-lines tfoot th, .pn-bill-lines tfoot td { padding-top: 11px; border-bottom: 0; font-weight: 750; color: var(--pn-ink); }
.pn-dot { display: inline-block; width: 9px; height: 9px; margin-right: 9px; border-radius: 3px; vertical-align: 1px; transition: opacity .3s; }
.pn-dot-maps { background: var(--pn-c-maps); } .pn-dot-li { background: var(--pn-c-li); } .pn-dot-em { background: var(--pn-c-em); } .pn-dot-vo { background: var(--pn-c-vo); } .pn-dot-nu { background: var(--pn-c-nu); }
.pn-bill-total { margin-top: 12px; padding: 13px 16px; border-radius: 16px; background: var(--pn-navy); color: #fff; }
.pn-bill-total .pn-bill-k { color: var(--pn-navy-text); }
.pn-bill-sum { display: flex; align-items: baseline; gap: 10px; margin-top: 2px; font-size: 36px; font-weight: 800; letter-spacing: -.04em; line-height: 1.05; }
.pn-bill-sum small { font-size: 13px; font-weight: 500; letter-spacing: 0; color: var(--pn-navy-text); }
.pn-bill-sub { margin-top: 4px; font-size: 13.5px; color: #C9D0DD; }
.pn-bill-setup { margin-top: 12px; font-size: 14px; line-height: 1.5; color: var(--pn-ink-2); }
.pn-bill-setup strong { color: var(--pn-ink); }
.pn-bill-warn { margin-top: 10px; padding: 10px 12px; border-radius: 12px; font-size: 13.5px; line-height: 1.5; color: #7A4B00; background: #FFF6E0; box-shadow: inset 0 0 0 1px rgba(184, 138, 0, .25); }
.pn-bill .pn-btn { margin-top: 14px; }
.pn-bill-foot { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: 12px; font-size: 12.5px; line-height: 1.5; color: var(--pn-faint); }

/* ---------- Confronto ---------- */
.pn-cmp { background: var(--pn-bg); border-top: 1px solid var(--pn-line); }
.pn-cmp-pick { display: none; }
.pn-cmp-sentinel { height: 1px; }
.pn-table { width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed; font-size: 15px; }
.pn-col-f { width: 34%; }
.pn-table thead th {
  position: sticky; top: var(--pn-nav); z-index: 3; padding: 18px 14px 16px; vertical-align: bottom; text-align: center;
  background: rgba(251, 252, 254, .94); -webkit-backdrop-filter: saturate(180%) blur(12px); backdrop-filter: saturate(180%) blur(12px);
  border-bottom: 1px solid var(--pn-line-2); transition: box-shadow .3s;
}
.pn-table.is-stuck thead th { box-shadow: 0 12px 20px -16px rgba(16, 24, 40, .35); }
.pn-table thead .pn-th-f { text-align: left; }
.pn-th-k { display: block; font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: var(--pn-faint); margin-bottom: 8px; }
.pn-th-name { display: block; font-size: 17px; font-weight: 750; letter-spacing: -.02em; color: var(--pn-ink); }
.pn-th-name em { display: block; margin-top: 3px; font-style: normal; font-size: 11.5px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--pn-violet-ink); }
.pn-th-price { display: block; margin-top: 4px; font-size: 14px; font-weight: 600; color: var(--pn-muted); min-height: 1.4em; }
.pn-th-cta { display: inline-flex; align-items: center; justify-content: center; margin-top: 10px; min-height: 34px; padding: 0 14px; border-radius: 999px; font-size: 13.5px; font-weight: 650; color: var(--pn-ink); text-decoration: none; background: #fff; box-shadow: inset 0 0 0 1px var(--pn-line-2); transition: box-shadow .2s, color .2s; }
.pn-th-cta:hover { color: var(--pn-violet-ink); box-shadow: inset 0 0 0 1px rgba(91, 52, 230, .4); }
.pn-th-top .pn-th-cta { color: #06101C; background: linear-gradient(100deg, #8FEFFF, #C9BDFF); box-shadow: none; }
.pn-table tbody th, .pn-table tbody td { padding: 13px 14px; border-bottom: 1px solid var(--pn-line); }
.pn-table tbody th { text-align: left; font-weight: 500; color: var(--pn-ink-2); }

.pn-table tbody th small { display: block; margin-top: 1px; font-size: 13px; color: var(--pn-faint); font-weight: 500; }
.pn-table tbody td { text-align: center; font-weight: 600; color: var(--pn-ink); }
.pn-table td.y .pn-ic { display: block; width: 20px; height: 20px; margin: 0 auto; color: var(--pn-green-ink); }
.pn-table td.n .pn-ic { display: block; width: 18px; height: 18px; margin: 0 auto; color: #858D9D; }
.pn-table tbody tr:not(.pn-grp):hover > * { background: rgba(124, 77, 255, .035); }
.pn-table tbody td:nth-child(4), .pn-table thead th:nth-child(4) { background-color: rgba(124, 77, 255, .045); }
.pn-table thead th:nth-child(4) { background-color: rgba(246, 243, 255, .96); }
.pn-table .pn-grp th { padding: 34px 14px 10px; border-bottom: 1px solid var(--pn-line-2); font-size: 13px; font-weight: 750; letter-spacing: .07em; text-transform: uppercase; color: var(--pn-violet-ink); background: none !important; }
.pn-table tbody:first-of-type .pn-grp th { padding-top: 22px; }

/* ---------- Numeri italiani (banda scura) ---------- */
.pn-voice { background: radial-gradient(70% 90% at 85% 10%, rgba(124, 77, 255, .22), transparent 70%), radial-gradient(60% 80% at 0% 100%, rgba(0, 229, 255, .14), transparent 70%), var(--pn-navy); color: #fff; }
.pn-voice .pn-h2 { color: #fff; }
.pn-voice .pn-p { color: var(--pn-navy-text); }
.pn-voice .pn-p strong { color: #fff; }
.pn-voice-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 64px; align-items: center; }
.pn-rules { display: grid; gap: 22px; margin-top: 34px; }
.pn-rules li { display: grid; grid-template-columns: 40px 1fr; gap: 16px; }
.pn-rules .pn-ic { width: 40px; height: 40px; padding: 10px; border-radius: 12px; color: #8FEFFF; background: rgba(255, 255, 255, .06); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .12); }
.pn-rules h3 { font-size: 17px; color: #fff; letter-spacing: -.01em; }
.pn-rules p { margin-top: 5px; font-size: 15.5px; line-height: 1.6; color: var(--pn-navy-text); }
.pn-phone { margin: 0; }
.pn-phone-card {
  position: relative; padding: 28px; border-radius: 26px; overflow: hidden;
  background: linear-gradient(160deg, rgba(255, 255, 255, .1), rgba(255, 255, 255, .03)); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .14), 0 40px 80px -30px rgba(0, 0, 0, .6);
}
.pn-phone-k { display: flex; align-items: center; gap: 10px; font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: #8FEFFF; }
.pn-phone-k .pn-ic { width: 16px; height: 16px; }
.pn-phone-n { margin-top: 12px; font-size: clamp(28px, 3vw, 38px); font-weight: 750; letter-spacing: -.02em; font-variant-numeric: tabular-nums; }
.pn-eq { display: flex; align-items: center; gap: 4px; height: 56px; margin: 22px 0 18px; }
.pn-eq i { flex: 1; height: 100%; border-radius: 2px; background: linear-gradient(180deg, #8FEFFF, #7C4DFF); transform-origin: 50% 50%; transform: scaleY(.18); animation: pn-eq 1.6s ease-in-out infinite; will-change: transform; }
.pn-eq i:nth-child(3n) { animation-duration: 1.2s; } .pn-eq i:nth-child(4n+1) { animation-duration: 1.9s; } .pn-eq i:nth-child(5n+2) { animation-duration: 1.4s; }
.pn-eq i:nth-child(2) { animation-delay: -.3s; } .pn-eq i:nth-child(3) { animation-delay: -.7s; } .pn-eq i:nth-child(4) { animation-delay: -.2s; } .pn-eq i:nth-child(5) { animation-delay: -1s; }
.pn-eq i:nth-child(6) { animation-delay: -.5s; } .pn-eq i:nth-child(7) { animation-delay: -.9s; } .pn-eq i:nth-child(8) { animation-delay: -.1s; } .pn-eq i:nth-child(9) { animation-delay: -.6s; }
.pn-eq i:nth-child(10) { animation-delay: -1.2s; } .pn-eq i:nth-child(11) { animation-delay: -.4s; } .pn-eq i:nth-child(12) { animation-delay: -.8s; } .pn-eq i:nth-child(13) { animation-delay: -.25s; }
.pn-eq i:nth-child(14) { animation-delay: -1.1s; } .pn-eq i:nth-child(15) { animation-delay: -.55s; } .pn-eq i:nth-child(16) { animation-delay: -.15s; }
.pn-eq i:nth-child(17) { animation-delay: -0.45s; } .pn-eq i:nth-child(18) { animation-delay: -0.24s; } .pn-eq i:nth-child(19) { animation-delay: -0.86s; } .pn-eq i:nth-child(20) { animation-delay: -0.14s; } .pn-eq i:nth-child(21) { animation-delay: -0.72s; } .pn-eq i:nth-child(22) { animation-delay: -0.51s; } .pn-eq i:nth-child(23) { animation-delay: -0.12s; } .pn-eq i:nth-child(24) { animation-delay: -0.68s; } .pn-eq i:nth-child(25) { animation-delay: -0.10s; } .pn-eq i:nth-child(26) { animation-delay: -0.59s; } .pn-eq i:nth-child(27) { animation-delay: -0.14s; } .pn-eq i:nth-child(28) { animation-delay: -0.16s; }
@keyframes pn-eq { 0%, 100% { transform: scaleY(.18); } 50% { transform: scaleY(1); } }
.pn-phone-dl { display: grid; gap: 0; }
.pn-phone-dl div { display: flex; justify-content: space-between; gap: 14px; padding: 12px 0; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 15px; }
.pn-phone-dl dt { color: var(--pn-navy-text); }
.pn-phone-dl dd { display: flex; align-items: center; gap: 8px; font-weight: 650; text-align: right; }
.pn-live { width: 8px; height: 8px; border-radius: 50%; background: #00E676; box-shadow: 0 0 0 4px rgba(0, 230, 118, .18); }
.pn-phone figcaption { margin-top: 12px; font-size: 13px; color: #8E97AA; text-align: right; }

/* ---------- Crediti sotto controllo ---------- */
.pn-ctrl { background: #fff; }
.pn-ctrl-grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 56px; align-items: center; }
.pn-ctrl-list { display: grid; gap: 22px; margin-top: 30px; }
.pn-ctrl-list li { display: grid; grid-template-columns: 40px 1fr; gap: 16px; }
.pn-ctrl-list .pn-ic { width: 40px; height: 40px; padding: 10px; border-radius: 12px; color: var(--pn-violet-ink); background: #F3F1FF; box-shadow: inset 0 0 0 1px rgba(91, 52, 230, .14); }
.pn-ctrl-list h3 { font-size: 17px; letter-spacing: -.01em; color: var(--pn-ink); margin-top: 2px; }
.pn-ctrl-list p { margin-top: 5px; font-size: 15.5px; line-height: 1.6; color: var(--pn-muted); }
.pn-shots { position: relative; padding: 0 0 150px 0; }
.pn-shot { margin: 0; border-radius: 18px; overflow: hidden; background: #111827; box-shadow: 0 0 0 1px rgba(15, 23, 42, .12), 0 40px 80px -34px rgba(16, 24, 40, .55); will-change: transform; }
.pn-shot-a { width: 86%; margin-left: auto; }
.pn-shot-b { position: absolute; left: 0; bottom: 0; width: 48%; box-shadow: 0 0 0 1px rgba(255, 255, 255, .06), 0 30px 60px -24px rgba(16, 24, 40, .6); }
.pn-shots-cap { position: absolute; right: 0; bottom: 0; font-size: 13px; color: var(--pn-faint); }
.pn-strip { margin: 72px 0 0; }
.pn-strip picture { border-radius: 18px; overflow: hidden; background: #111827; box-shadow: 0 0 0 1px rgba(15, 23, 42, .1), 0 30px 60px -32px rgba(16, 24, 40, .45); }
.pn-strip figcaption { margin-top: 12px; font-size: 13.5px; color: var(--pn-faint); }

/* ---------- Garanzie ---------- */
.pn-guar { background: linear-gradient(180deg, #fff, var(--pn-bg)); border-top: 1px solid var(--pn-line); }
.pn-guar-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.pn-guar-grid li {
  position: relative; padding: 26px 24px 24px; border-radius: 22px; background: #fff; box-shadow: inset 0 0 0 1px var(--pn-line), var(--pn-sh-1);
  transition: opacity .8s var(--pn-ease), transform .8s var(--pn-ease), translate .45s var(--pn-spring), box-shadow .35s var(--pn-ease);
}
.pn-guar-grid li:hover { translate: 0 -3px; box-shadow: inset 0 0 0 1px var(--pn-line-2), var(--pn-sh-2); }
.pn-guar-grid .pn-ic { width: 42px; height: 42px; padding: 10px; border-radius: 13px; color: var(--pn-green-ink); background: #EAFBF2; box-shadow: inset 0 0 0 1px rgba(4, 122, 68, .14); }
.pn-guar-grid li:nth-child(3n+2) .pn-ic { color: var(--pn-violet-ink); background: #F3F1FF; box-shadow: inset 0 0 0 1px rgba(91, 52, 230, .14); }
.pn-guar-grid li:nth-child(3n) .pn-ic { color: var(--pn-cyan-ink); background: #E6FAFD; box-shadow: inset 0 0 0 1px rgba(0, 114, 140, .14); }
.pn-guar-grid h3 { margin-top: 18px; font-size: 18px; letter-spacing: -.015em; color: var(--pn-ink); }
.pn-guar-grid p { margin-top: 8px; font-size: 15.5px; line-height: 1.6; color: var(--pn-muted); }

/* ---------- Servizio gestito ---------- */
.pn-managed { padding: 0 0 120px; background: var(--pn-bg); }
.pn-managed-in {
  display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 48px; align-items: center; padding: 56px; border-radius: 32px; color: #fff; max-width: 1200px;
  background: radial-gradient(80% 120% at 100% 0%, rgba(124, 77, 255, .35), transparent 60%), radial-gradient(70% 100% at 0% 100%, rgba(0, 229, 255, .18), transparent 60%), var(--pn-navy);
  box-shadow: 0 40px 90px -40px rgba(10, 15, 30, .7);
}
.pn-wrap.pn-managed-in { width: calc(100% - 64px); }
.pn-managed .pn-h2 { color: #fff; }
.pn-managed .pn-p { color: var(--pn-navy-text); }
.pn-contacts { display: grid; gap: 12px; }
.pn-contacts li { display: grid; grid-template-columns: 40px 1fr; gap: 14px; align-items: center; padding: 16px 18px; border-radius: 18px; background: rgba(255, 255, 255, .05); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, .1); }
.pn-contacts .pn-ic { width: 40px; height: 40px; padding: 10px; border-radius: 12px; color: #8FEFFF; background: rgba(255, 255, 255, .07); }
.pn-contact-k { font-size: 12px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; color: #8E97AA; }
.pn-page .pn-contacts a, .pn-contacts p:not(.pn-contact-k) { font-size: 16.5px; font-weight: 650; color: #fff; text-decoration: none; }
.pn-page .pn-contacts a:hover { color: #8FEFFF; text-decoration: underline; text-underline-offset: 3px; }
.pn-managed :focus-visible { outline-color: #8FEFFF !important; }

/* ---------- Domande ---------- */
.pn-faq { background: #fff; border-top: 1px solid var(--pn-line); }
.pn-faq-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 64px; align-items: start; }
.pn-faq-head { position: sticky; top: calc(var(--pn-nav) + 32px); }
.pn-faq-list { border-top: 1px solid var(--pn-line-2); }
.pn-faq-list details { border-bottom: 1px solid var(--pn-line-2); }
.pn-faq-list summary { position: relative; display: block; padding: 22px 48px 22px 0; cursor: pointer; list-style: none; }
.pn-faq-list summary::-webkit-details-marker { display: none; }
.pn-faq-list summary h3 { font-size: 18px; line-height: 1.4; letter-spacing: -.015em; color: var(--pn-ink); transition: color .2s; }
.pn-faq-list summary:hover h3 { color: var(--pn-violet-ink); }
.pn-faq-list summary::before, .pn-faq-list summary::after { content: ""; position: absolute; right: 8px; top: 50%; width: 16px; height: 2px; margin-top: -1px; border-radius: 2px; background: var(--pn-ink-2); transition: transform .35s var(--pn-ease); }
.pn-faq-list summary::after { transform: rotate(90deg); }
.pn-faq-list details[open] summary::after { transform: rotate(0deg); }
.pn-faq-list summary:focus-visible { outline: 3px solid var(--pn-violet); outline-offset: 4px; border-radius: 8px; }
.pn-ans { padding: 0 48px 24px 0; }
.pn-ans p { font-size: 16.5px; line-height: 1.7; color: var(--pn-muted); }
.pn-faq-list details[open] .pn-ans { animation: pn-ans .45s var(--pn-ease); }
@keyframes pn-ans { from { opacity: 0; transform: translate3d(0, -6px, 0); } to { opacity: 1; transform: none; } }

/* ---------- Chiusura ---------- */
.pn-final { position: relative; padding: 120px 0; overflow: hidden; color: #fff; background: var(--pn-navy); isolation: isolate; text-align: center; }
.pn-final-bg { position: absolute; inset: 0; z-index: -1; background: radial-gradient(50% 70% at 50% 0%, rgba(0, 229, 255, .22), transparent 70%), radial-gradient(40% 60% at 85% 100%, rgba(124, 77, 255, .28), transparent 70%), radial-gradient(40% 60% at 10% 100%, rgba(0, 230, 118, .12), transparent 70%); }
.pn-final-t { max-width: 22ch; margin: 0 auto; font-size: clamp(32px, 4vw, 54px); line-height: 1.06; letter-spacing: -.04em; color: #fff; text-wrap: balance; }
.pn-final-p { max-width: 56ch; margin: 20px auto 0; font-size: 18px; line-height: 1.6; color: var(--pn-navy-text); }
.pn-final :focus-visible { outline-color: #8FEFFF !important; }
.pn-legal { padding: 28px 0 36px; background: var(--pn-bg); }
.pn-legal p { max-width: 110ch; font-size: 13px; line-height: 1.6; color: var(--pn-faint); }

/* ---------- Punti di rottura ---------- */
@media (min-width: 1100px) {
  .pn-plan-top { translate: 0 -10px; }
  .pn-plan-top:hover { translate: 0 -14px; }
}
@media (max-width: 1099px) {
  .pn-wrap { padding: 0 28px; }
  .pn-plans { grid-template-columns: 1fr; max-width: 560px; margin-left: auto; margin-right: auto; }
  .pn-model-grid, .pn-calc-grid, .pn-voice-grid, .pn-ctrl-grid, .pn-faq-grid, .pn-managed-in { grid-template-columns: 1fr; }
  .pn-model-grid { gap: 48px; }
  .pn-calc-grid { gap: 28px; }
  .pn-bill { max-width: 560px; }
  .pn-faq-head { position: static; }
  .pn-faq-grid { gap: 32px; }
  .pn-guar-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .pn-managed-in { padding: 44px; gap: 32px; }
  .pn-shots { max-width: 680px; }
}
@media (max-width: 759px) {
  .pn-page main { font-size: 16px; }
  .pn-wrap { padding: 0 16px; }
  .pn-sec { padding: 76px 0; }
  .pn-hero { padding: calc(var(--pn-nav) + 18px) 0 40px; }
  .pn-h1 { font-size: clamp(36px, 10.4vw, 52px); letter-spacing: -.045em; }
  .pn-lead { font-size: 16.5px; }
  .pn-billing-row { margin-top: 26px; }
  .pn-billing label { padding: 0 14px; font-size: 14.5px; }
  .pn-plans { margin-top: 28px; gap: 16px; }
  .pn-plan { padding: 26px 20px 22px; border-radius: 22px; }
  .pn-badge { top: 22px; right: 18px; }
  .pn-price { font-size: 52px; }
  .pn-trial { grid-template-columns: 1fr; gap: 14px; padding: 20px; }
  .pn-trial .pn-btn { width: 100%; }
  .pn-hero-foot { flex-direction: column; align-items: stretch; }
  .pn-jump { justify-content: center; }
  .pn-still-btn { align-self: center; }
  .pn-sec-head { margin-bottom: 36px; }
  .pn-p { font-size: 16.5px; }
  .pn-rate { padding: 6px; border-radius: 22px; }
  .pn-rate-head { padding: 12px 12px 12px; }
  .pn-rate-table thead th, .pn-rate-table tbody th, .pn-rate-table tbody td { padding: 12px 12px; }
  .pn-rate-table tbody th, .pn-rate-table tbody td { font-size: 14.5px; }
  .pn-rate-table thead th, .pn-rate-table tbody th, .pn-rate-table tbody td { padding-left: 10px; padding-right: 10px; }
  .pn-rate-table tbody td { white-space: normal; font-size: 14px; }
  .pn-rate-table tbody td small { font-size: 12px; }
  .pn-rate-table tbody td:last-child { white-space: nowrap; }
  .pn-grp-f { padding: 18px 16px 16px; }
  .pn-stepper { align-items: flex-start; flex-direction: column; gap: 10px; }
  .pn-seg label { flex: 1 1 40%; }
  .pn-bill-in { padding: 20px 18px 24px; }
  .pn-bill-sum { font-size: 34px; }
  .pn-cmp-pick { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; position: sticky; top: calc(var(--pn-nav) + 8px); z-index: 4; margin-bottom: 14px; padding: 5px; border-radius: 14px; background: rgba(251, 252, 254, .94); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); box-shadow: inset 0 0 0 1px var(--pn-line-2), var(--pn-sh-1); }
  .pn-cmp-pick-l { padding: 0 6px; font-size: 13px; font-weight: 700; color: var(--pn-faint); }
  .pn-cmp-pick button { flex: 1; min-height: 38px; border: 0; border-radius: 10px; cursor: pointer; font: 650 14px/1 var(--pn-font); color: var(--pn-muted); background: transparent; }
  .pn-cmp-pick button[aria-pressed="true"] { color: #fff; background: var(--pn-ink); }
  .pn-cmp-pick button:focus-visible { outline: 3px solid var(--pn-violet); outline-offset: 2px; }
  .pn-table { table-layout: auto; }
  .pn-col-f { width: 64%; }
  .pn-table thead th { position: static; padding: 12px 10px; }
  .pn-table thead .pn-th-f .pn-th-k { margin-bottom: 4px; }
  .pn-table tbody th, .pn-table tbody td { padding: 12px 10px; font-size: 14.5px; }
  .pn-table[data-show="1"] :is(th, td):not(:first-child):not(:nth-child(2)),
  .pn-table[data-show="2"] :is(th, td):not(:first-child):not(:nth-child(3)),
  .pn-table[data-show="3"] :is(th, td):not(:first-child):not(:nth-child(4)),
  .pn-table[data-show="4"] :is(th, td):not(:first-child):not(:nth-child(5)) { display: none; }
  .pn-table .pn-grp th { display: table-cell !important; }
  .pn-table col:not(.pn-col-f) { width: auto; }
  .pn-voice-grid { gap: 40px; }
  .pn-phone-card { padding: 22px; }
  .pn-shots { padding-bottom: 96px; }
  .pn-shot-a { width: 94%; }
  .pn-shot-b { width: 62%; }
  .pn-shots-cap { bottom: 0; font-size: 12.5px; }
  .pn-strip { margin-top: 48px; }
  .pn-guar-grid { grid-template-columns: 1fr; }
  .pn-managed { padding-bottom: 76px; }
  .pn-wrap.pn-managed-in { width: calc(100% - 32px); padding: 30px 20px; border-radius: 26px; }
  .pn-managed-in .pn-btn { width: 100%; }
  .pn-ans { padding-right: 8px; }
  .pn-faq-list summary { padding-right: 40px; }
  .pn-faq-list summary h3 { font-size: 17px; }
  .pn-final { padding: 84px 0; }
  .pn-final .pn-btn { width: 100%; }
}
@media (max-width: 380px) {
  .pn-billing label { padding: 0 11px; font-size: 14px; }
  .pn-save { padding: 2px 6px; font-size: 11px; }
}

/* ---------- Bolla della chat: non copre prezzi, controlli e risultati (classe da prezzi-nuova.js) ---------- */
.pn-chat-hide .msc-bubble:not(:focus-visible) { opacity: 0; transform: scale(.85); pointer-events: none; }
.pn-chat-hide .msc-widget:not(:focus-within) { pointer-events: none; }

/* ---------- Cicli continui: in pausa fuori schermo o su richiesta ---------- */
[data-loop].pn-off .pn-au, [data-loop].pn-off .pn-ring::before, [data-loop].pn-off .pn-eq i { animation-play-state: paused; }
.pn-still .pn-au, .pn-still .pn-ring::before, .pn-still .pn-eq i { animation-play-state: paused; }
/* Anche il battito della bolla della chat del sito, se l'utente chiede di fermare tutto. */
.pn-still .msc-bubble { animation-play-state: paused !important; }

/* ---------- Movimento ridotto: tutto fermo ---------- */
@media (prefers-reduced-motion: reduce) {
  .pn-page *, .pn-page *::before, .pn-page *::after { animation: none !important; transition-duration: .01ms !important; transition-delay: 0ms !important; scroll-behavior: auto !important; }
  .js [data-rv] { opacity: 1; transform: none; }
  .pn-eq i { transform: scaleY(.5); }
  .pn-eq i:nth-child(odd) { transform: scaleY(.8); }
  .pn-shot { transform: none !important; }
  .pn-still-btn { display: none; }
}

/* ---------- Ritocchi della revisione (critico, 17/10) ---------- */
/* Piano consigliato: il bordo che ruota si deve vedere (2 px, più luce). */
.pn-ring::after { inset: 2px; border-radius: 22px; }
.pn-plan-top { box-shadow: 0 30px 70px -28px rgba(31, 22, 92, .55), 0 10px 30px -18px rgba(0, 229, 255, .35), 0 0 0 1px rgba(143, 239, 255, .08); }

/* Tablet (760-1099 px): i tre piani restano affiancati, come un listino, invece di una colonna lunga. */
@media (min-width: 760px) and (max-width: 1099px) {
  .pn-plans { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: none; gap: 12px; }
  .pn-plan { padding: 22px 16px 20px; border-radius: 20px; }
  .pn-plan-top { translate: 0 -8px; }
  .pn-plan-top:hover { translate: 0 -12px; }
  .pn-badge { top: 25px; right: 12px; padding: 4px 8px; font-size: 11px; }
  .pn-plan-top .pn-plan-name { padding-right: 82px; }
  .pn-plan-name { font-size: 19px; gap: 8px; }
  .pn-plan-ic { width: 28px; height: 28px; }
  .pn-plan-for { font-size: 14px; min-height: 2.9em; }
  .pn-price { font-size: 46px; margin-top: 16px; }
  .pn-price-note { font-size: 13px; }
  .pn-plan .pn-btn { padding-left: 10px; padding-right: 10px; font-size: 14.5px; }
  .pn-plan-desc, .pn-feats { font-size: 14px; }
  .pn-feats { gap: 9px; }
  .pn-feats .pn-ic { width: 15px; height: 15px; }
}

/* Confronto: intestazione fissa più bassa (meno schermo coperto) e prezzo su una riga. */
@media (min-width: 760px) {
  .pn-table thead th { padding: 14px 12px 12px; }
  .pn-th-cta { margin-top: 8px; min-height: 32px; }
}
.pn-th-price { white-space: nowrap; }
.pn-table thead .pn-th-f .pn-draft { white-space: nowrap; }

/* Telefono: il riepilogo fisso non taglia più il totale; lo scontrino non spezza i nomi delle voci. */
@media (max-width: 759px) {
  .pn-mini { gap: 8px; padding: 10px 12px; }
  .pn-mini-go { font-size: 0; gap: 0; }
  .pn-mini-go .pn-ic { width: 16px; height: 16px; }
  .pn-bill-lines th { white-space: nowrap; }
  .pn-bill-lines th small { display: block; margin: 1px 0 0 18px; }
}

/* Footer comune: l'orario non va a capo a metà («09:00 - / 18:00»). */
.pn-page .footer-hours strong { white-space: nowrap; }

/* BOZZA (giudizio finale, uguale su tutte le bozze): «Supporto italiano 24h» (uffici lun-ven 9-18) e «Conforme GDPR» (promessa assoluta) nascosti qui; da togliere dal partial del footer. */
.pn-page .trust-badge.gdpr, .pn-page .trust-badge.uptime { display: none; }

/* ==========================================================================
   Tablet (revisione 19/10): iPad, iPad Air, iPad Pro, Android da 760 a 1366 px, al tocco.
   Desktop (da 1100 px col mouse) e telefono (sotto i 760 px) restano come sopra.
   ========================================================================== */

/* Sezioni un po' meno alte: la pagina scorreva per 17.000 px a 768. */
@media (min-width: 760px) and (max-width: 1099px) {
  .pn-sec { padding: 96px 0; }
  .pn-managed { padding-bottom: 96px; }
  .pn-final { padding: 96px 0; }
  .pn-sec-head { margin-bottom: 44px; }
}

/* Da 960 a 1099 px (iPad 1024 in orizzontale, iPad Pro 12,9 in verticale) tornano le due colonne del
   desktop. Prima tutto in una colonna larga 968 px: cursori lunghi 924 px, scontrino di 560 px a sinistra
   con 400 px vuoti accanto, schermate dei crediti a sinistra e metà riga vuota. */
@media (min-width: 960px) and (max-width: 1099px) {
  .pn-model-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px; }
  .pn-calc-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 28px; }
  .pn-bill { max-width: none; }
  .pn-mini { display: none; }
  .pn-voice-grid { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 44px; }
  .pn-ctrl-grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 40px; }
  .pn-shots { max-width: none; padding-bottom: 130px; }
  .pn-faq-grid { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: 48px; }
  .pn-faq-head { position: sticky; }
  .pn-wrap.pn-managed-in { grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 36px; }
  .pn-guar-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
  .pn-guar-grid li { padding: 22px 20px 20px; }
}

/* Da 760 a 959 px (tablet in verticale): lo scontrino era largo 560 px a sinistra, con 150-220 px vuoti
   accanto e 734 px di altezza. Ora occupa la larghezza del modulo, in due colonne (.pn-bill-a: piano e voci;
   .pn-bill-b: totale e pulsante) e si accorcia di circa 250 px. */
@media (min-width: 760px) and (max-width: 959px) {
  .pn-bill { max-width: none; }
  .pn-bill-in { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(0, 1fr); column-gap: 28px; align-items: start; }
  .pn-bill-head { grid-column: 1 / -1; }
  .pn-bill-b .pn-bill-total { margin-top: 0; }
  /* Come al telefono: il nome della voce non si spezza («Google / Maps» con «Volumi alti»), la quantità va sotto. */
  .pn-bill-lines th { white-space: nowrap; }
  .pn-bill-lines th small { display: block; margin: 1px 0 0 18px; }
  /* Confronto: «Crea l'account» va su due righe in una colonna di 120 px; la pillola diventa un riquadro arrotondato. */
  .pn-th-cta { border-radius: 12px; padding: 5px 10px; line-height: 1.2; text-align: center; }
}

/* Schermata «Crediti consumati»: fino a 1099 px il ritaglio su due righe (lo stesso del telefono). La striscia
   larga di 8 riquadri a 712-968 px aveva le scritte alte 6-7 px. Al massimo 760 px: 1440 px di immagine
   bastano per uno schermo a densità 2. */
@media (min-width: 760px) and (max-width: 1099px) {
  .pn-strip picture { max-width: 760px; }
}

/* Schermi al tocco: aree di tocco di almeno 44 px. Dove il controllo non deve crescere (intestazione fissa
   del confronto, interruttore dello scontrino, link piccoli) si allarga solo l'area sensibile. */
@media (pointer: coarse) {
  .pn-jump a, .pn-still-btn, .pn-presets button { min-height: 44px; }
  .pn-billing:not(.pn-billing-s) label { min-height: 44px; }
  .pn-num { min-height: 44px; }
  .pn-range { height: 44px; margin: 4px 0 -4px; }
  .pn-range::-webkit-slider-thumb { width: 28px; height: 28px; margin-top: -11px; }
  .pn-range::-moz-range-thumb { width: 28px; height: 28px; }
  .pn-stepper-c button { width: 44px; height: 44px; }
  .pn-seg label { min-height: 44px; }
  .pn-check { min-height: 44px; margin-top: 4px; }
  .pn-mini { min-height: 44px; }
  .pn-cmp-pick button { min-height: 44px; }
  .pn-crumbs a { padding: 12px 6px; margin: -12px -6px; }
  .pn-th-cta, .pn-page .pn-plan-foot a, .pn-billing-s label { position: relative; }
  .pn-th-cta::after { content: ""; position: absolute; inset: -6px -4px; }
  .pn-page .pn-plan-foot a::after { content: ""; position: absolute; inset: -11px -6px; }
  .pn-billing-s label::after { content: ""; position: absolute; inset: -7px 0; }
}

/* Al tocco l'effetto del passaggio del mouse resta «appiccicato» dopo il tocco (schede e pulsanti sollevati,
   luce accesa): qui non si applica. La pressione (:active) resta. */
@media (hover: none) {
  .pn-btn:hover:not(:active), .pn-btn:hover .pn-ic { transform: none; }
  .pn-plan:hover { translate: 0 0; box-shadow: inset 0 0 0 1px var(--pn-line), var(--pn-sh-2); }
  .pn-plan:hover .pn-glow { opacity: 0; }
  .pn-plan-top:hover { box-shadow: 0 30px 70px -28px rgba(31, 22, 92, .55), 0 10px 30px -18px rgba(0, 229, 255, .35), 0 0 0 1px rgba(143, 239, 255, .08); }
  .pn-guar-grid li:hover { translate: 0 0; box-shadow: inset 0 0 0 1px var(--pn-line), var(--pn-sh-1); }
  .pn-rate-table tbody tr:hover, .pn-table tbody tr:not(.pn-grp):hover > * { background-color: transparent; }
  .pn-table tbody tr:not(.pn-grp):hover > td:nth-child(4) { background-color: rgba(124, 77, 255, .045); }
}
@media (hover: none) and (min-width: 1100px) { .pn-plan-top:hover { translate: 0 -10px; } }
@media (hover: none) and (min-width: 760px) and (max-width: 1099px) { .pn-plan-top:hover { translate: 0 -8px; } }
