/* ═══════════════════════════════════════════════════════════════
   LOTTO ANALYSIS PRO - Landing Page
   Color palette dall'app: dark theme + cyan + oro + rosso
═══════════════════════════════════════════════════════════════ */

:root {
    --bg-dark: #0a0e14;
    --bg-card: #161b22;
    --bg-surface: #1c2128;
    --bg-hover: #232831;
    --border: #30363d;
    --border-light: #3a4150;

    --text: #f0f6fc;
    --text-2: #b1bac4;
    --text-3: #8b949e;
    --text-mute: #6e7681;

    --cyan: #00D9FF;
    --cyan-glow: rgba(0, 217, 255, 0.4);
    --green: #3DDC84;
    --red: #FF3366;
    --gold: #FFB800;
    --purple: #a371f7;

    --grad-1: linear-gradient(135deg, #00D9FF 0%, #3DDC84 100%);
    --grad-2: linear-gradient(135deg, #FFB800 0%, #FF3366 100%);
    --grad-hero: radial-gradient(ellipse at top, rgba(0, 217, 255, 0.15), transparent 50%);

    --shadow-md: 0 4px 24px rgba(0, 0, 0, 0.4);
    --shadow-lg: 0 12px 48px rgba(0, 0, 0, 0.5);
    --shadow-cyan: 0 0 40px rgba(0, 217, 255, 0.25);
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    background: var(--bg-dark);
    color: var(--text);
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    line-height: 1.6;
    overflow-x: hidden;
}

/* Selezione testo */
::selection { background: var(--cyan); color: var(--bg-dark); }

/* Scrollbar */
::-webkit-scrollbar { width: 12px; }
::-webkit-scrollbar-track { background: var(--bg-dark); }
::-webkit-scrollbar-thumb { background: var(--border-light); border-radius: 6px; }
::-webkit-scrollbar-thumb:hover { background: var(--cyan); }

/* ═══ UTILITY ═══════════════════════════════════════════════════ */
.gradient-text {
    background: var(--grad-1);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.cyan { color: var(--cyan); }
.green { color: var(--green); }
.red { color: var(--red); }
.gold { color: var(--gold); }
.purple { color: var(--purple); }

/* ═══ PROMO BANNER TOP — FISSO ══════════════════════════════════ */
.promo-banner {
    background: linear-gradient(90deg, var(--gold) 0%, #ff9500 50%, var(--red) 100%);
    color: #1a0a00;
    padding: 10px 20px;
    text-align: center;
    font-size: 14px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 12px;
    position: sticky;
    top: 0;
    z-index: 200;
    overflow: hidden;
    box-shadow: 0 2px 12px rgba(0,0,0,0.4);
}
.promo-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
    animation: promoShine 3s ease-in-out infinite;
}
@keyframes promoShine {
    0%, 100% { transform: translateX(-100%); }
    50% { transform: translateX(100%); }
}
.promo-icon { font-size: 18px; animation: bounce 1.5s ease-in-out infinite; }
@keyframes bounce {
    0%, 100% { transform: translateY(0); }
    50% { transform: translateY(-4px); }
}
.promo-text strong { font-weight: 800; }
.promo-cta { font-size: 18px; font-weight: 800; }

/* ═══ NAVBAR — non sticky (solo banner promo è sticky) ═══════ */
.navbar {
    position: relative;
    z-index: 100;
    background: rgba(10, 14, 20, 0.92);
    backdrop-filter: blur(20px);
    -webkit-backdrop-filter: blur(20px);
    border-bottom: 1px solid var(--border);
}
.nav-container {
    max-width: 1800px;
    margin: 0 auto;
    padding: 16px 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.nav-logo {
    display: flex;
    align-items: center;
    gap: 10px;
    text-decoration: none;
    color: var(--text);
    font-size: 18px;
    font-weight: 800;
    letter-spacing: 0.5px;
}
.logo-bolt {
    color: var(--cyan);
    filter: drop-shadow(0 0 8px var(--cyan-glow));
    animation: boltPulse 2s ease-in-out infinite;
    display: inline-block;
}
.nav-logo .logo-bolt { font-size: 24px; }
@keyframes boltPulse {
    0%, 100% { transform: scale(1); filter: drop-shadow(0 0 8px var(--cyan-glow)); }
    50% { transform: scale(1.1); filter: drop-shadow(0 0 18px rgba(0, 217, 255, 0.8)); }
}
/* Override per banner promo top (icona dentro un gradient gold→red) */
.promo-banner .logo-bolt {
    color: #1a0a00;
    filter: drop-shadow(0 0 6px rgba(0,0,0,0.4));
}
@keyframes promoBoltPulse {
    0%, 100% { transform: scale(1) rotate(0); }
    50% { transform: scale(1.15) rotate(-8deg); }
}
.promo-banner .logo-bolt {
    animation: promoBoltPulse 1.5s ease-in-out infinite;
}
/* Logo bolt nella sezione problem (più grande) */
.problem-icon.logo-bolt {
    font-size: 64px;
    margin-bottom: 16px;
}
/* Logo bolt nel pricing card (grande, oro accent) */
.pc-icon.logo-bolt {
    font-size: 56px;
    margin: 8px 0;
    color: var(--cyan);
}
/* Logo bolt nel banner limited offer (scuro su gradient) */
.lb-icon.logo-bolt {
    font-size: 56px;
    color: #1a0a00;
    filter: drop-shadow(0 0 8px rgba(0,0,0,0.3));
}
.logo-pro {
    background: var(--grad-1);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-weight: 900;
}
.nav-links {
    display: flex;
    list-style: none;
    gap: 32px;
}
.nav-links a {
    color: var(--text-2);
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    transition: color 0.2s;
}
.nav-links a:hover { color: var(--cyan); }
.nav-cta {
    background: var(--cyan);
    color: var(--bg-dark);
    padding: 10px 22px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 800;
    font-size: 14px;
    transition: all 0.2s;
    box-shadow: var(--shadow-cyan);
    display: inline-flex;
    align-items: center;
    gap: 8px;
}
.nav-cta:hover { transform: translateY(-2px); box-shadow: 0 0 60px var(--cyan-glow); }
.nav-cta-arrow { transition: transform 0.3s; }
.nav-cta:hover .nav-cta-arrow { transform: translateX(4px); }

/* ═══ TRUST STRIP — social proof immediato sotto navbar ═══════ */
.trust-strip {
    background: linear-gradient(90deg,
        rgba(0,217,255,0.04) 0%,
        rgba(61,220,132,0.04) 50%,
        rgba(0,217,255,0.04) 100%);
    border-bottom: 1px solid var(--border);
    padding: 10px 20px;
    text-align: center;
    font-size: 13px;
    color: var(--text-2);
}
.trust-strip-content {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    gap: 10px;
}
.ts-stars {
    color: var(--gold);
    letter-spacing: 1px;
    font-size: 14px;
}
.ts-rating { color: var(--gold); font-weight: 700; }
.ts-rating strong { color: var(--gold); }
.ts-item { color: var(--text-2); }
.ts-item strong { color: var(--text); font-weight: 700; }
.ts-sep { color: var(--border-light); }

/* ═══ MID CTA — banner intermedio ════════════════════════════ */
.mid-cta {
    margin: 0 32px 60px;
}
.mid-cta-inner {
    max-width: 1600px;
    margin: 0 auto;
    background: linear-gradient(135deg, rgba(0,217,255,0.06), rgba(61,220,132,0.04));
    border: 1px solid rgba(0,217,255,0.3);
    border-radius: 16px;
    padding: 24px 32px;
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    justify-content: space-between;
}
.mid-cta-text {
    display: flex;
    flex-direction: column;
    gap: 4px;
}
.mid-cta-strong {
    font-size: 18px;
    font-weight: 800;
    color: var(--text);
}
.mid-cta-text span {
    font-size: 14px;
    color: var(--text-3);
}
.mid-cta-btn {
    background: var(--cyan);
    color: var(--bg-dark);
    padding: 14px 26px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 800;
    font-size: 15px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    transition: all 0.3s;
    box-shadow: var(--shadow-cyan);
    white-space: nowrap;
}
.mid-cta-btn:hover { transform: translateY(-3px); box-shadow: 0 8px 50px var(--cyan-glow); }
.mid-cta-btn:hover .btn-arrow { transform: translateX(6px); }

/* ═══ STICKY MOBILE CTA — sempre visibile su smartphone ═══════ */
.sticky-mobile-cta {
    display: none;  /* nascosto su desktop */
    position: fixed;
    bottom: 12px;
    left: 12px;
    right: 12px;
    z-index: 150;
    background: linear-gradient(135deg, var(--cyan) 0%, #00b8da 100%);
    color: var(--bg-dark);
    padding: 14px 18px;
    border-radius: 14px;
    text-decoration: none;
    align-items: center;
    gap: 12px;
    box-shadow: 0 10px 30px rgba(0, 217, 255, 0.5), 0 4px 12px rgba(0,0,0,0.4);
    font-weight: 800;
    backdrop-filter: blur(10px);
}
.smc-icon {
    font-size: 24px;
    filter: drop-shadow(0 0 4px rgba(255,255,255,0.5));
    animation: boltPulse 1.5s ease-in-out infinite;
}
.smc-text {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 1px;
    line-height: 1.2;
}
.smc-text strong { font-size: 16px; font-weight: 900; }
.smc-text small { font-size: 11px; opacity: 0.8; font-weight: 600; }
.smc-arrow {
    font-size: 22px;
    font-weight: 900;
}

/* ═══ HERO ══════════════════════════════════════════════════════ */
.hero {
    position: relative;
    min-height: 100vh;
    display: grid;
    grid-template-columns: 1.1fr 0.9fr;
    align-items: center;
    gap: 60px;
    max-width: 1800px;
    margin: 0 auto;
    padding: 80px 32px 60px;
    overflow: hidden;
}
.hero-grid {
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
    background-size: 50px 50px;
    mask-image: radial-gradient(ellipse at center, black, transparent 70%);
    -webkit-mask-image: radial-gradient(ellipse at center, black, transparent 70%);
    pointer-events: none;
}
.hero-glow {
    position: absolute;
    top: -200px;
    left: -200px;
    width: 700px;
    height: 700px;
    background: radial-gradient(circle, var(--cyan-glow), transparent 60%);
    filter: blur(60px);
    pointer-events: none;
    animation: heroGlow 8s ease-in-out infinite;
}
@keyframes heroGlow {
    0%, 100% { transform: translate(0, 0); }
    50% { transform: translate(100px, 100px); }
}
.hero-content { position: relative; z-index: 1; }
.hero-badge {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    background: rgba(0, 217, 255, 0.08);
    border: 1px solid rgba(0, 217, 255, 0.3);
    padding: 8px 16px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    color: var(--cyan);
    letter-spacing: 1.5px;
    margin-bottom: 24px;
}
.badge-dot {
    width: 8px;
    height: 8px;
    background: var(--cyan);
    border-radius: 50%;
    box-shadow: 0 0 12px var(--cyan);
    animation: dotPulse 1.5s ease-in-out infinite;
}
@keyframes dotPulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(0.8); }
}
.hero-title {
    font-size: 64px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -2px;
    margin-bottom: 24px;
}
.hero-bolt {
    display: inline-block;
    font-size: 64px;
    line-height: 1;
    margin-right: 14px;
    vertical-align: -6px;
    /* Animazione più drammatica per il bolt grande del hero */
    animation: heroBoltPulse 2.4s ease-in-out infinite !important;
}
@keyframes heroBoltPulse {
    0%, 100% {
        transform: scale(1);
        filter: drop-shadow(0 0 20px rgba(0, 217, 255, 0.5));
    }
    50% {
        transform: scale(1.15) rotate(-5deg);
        filter: drop-shadow(0 0 40px rgba(0, 217, 255, 0.9));
    }
}
/* Bolt nel bottone CTA primary */
.btn-bolt {
    display: inline-block;
    animation: btnBoltShake 2s ease-in-out infinite;
}
@keyframes btnBoltShake {
    0%, 100% { transform: rotate(0); }
    25% { transform: rotate(-8deg); }
    75% { transform: rotate(8deg); }
}
.hero-subtitle {
    font-size: 18px;
    line-height: 1.6;
    color: var(--text-2);
    margin-bottom: 36px;
    max-width: 540px;
}
.hero-subtitle strong { color: var(--text); }
.hero-subtitle .highlight { color: var(--cyan); font-weight: 600; }

.hero-cta-row {
    display: flex;
    gap: 16px;
    margin-bottom: 36px;
    flex-wrap: wrap;
}
.btn-primary {
    background: var(--cyan);
    color: var(--bg-dark);
    padding: 16px 32px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 800;
    font-size: 16px;
    display: inline-flex;
    align-items: center;
    gap: 12px;
    box-shadow: var(--shadow-cyan);
    transition: all 0.3s;
    position: relative;
    overflow: hidden;
}
.btn-primary::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
    transform: translateX(-100%);
    transition: transform 0.6s;
}
.btn-primary:hover { transform: translateY(-3px); box-shadow: 0 8px 60px var(--cyan-glow); }
.btn-primary:hover::before { transform: translateX(100%); }
.btn-arrow { transition: transform 0.3s; }
.btn-primary:hover .btn-arrow { transform: translateX(6px); }

.btn-secondary {
    background: transparent;
    color: var(--text);
    padding: 16px 32px;
    border-radius: 10px;
    border: 1px solid var(--border-light);
    text-decoration: none;
    font-weight: 600;
    font-size: 16px;
    transition: all 0.3s;
}
.btn-secondary:hover { border-color: var(--cyan); color: var(--cyan); }

.hero-trust {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--border);
}
.trust-item {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--text-3);
    font-size: 14px;
    font-weight: 500;
}
.trust-icon { font-size: 18px; }

/* HERO MOCKUP (app preview) */
.hero-mockup {
    position: relative;
    perspective: 2000px;
}

/* ═══ DECORAZIONI 3D — palline del Lotto + banconote ═══════════ */
.hero-deco {
    position: absolute;
    inset: -60px -40px;
    pointer-events: none;
    z-index: 0;
}

/* Palline del Lotto — sfere 3D con numero al centro */
.deco-ball {
    position: absolute;
    width: 76px;
    height: 76px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 900;
    font-size: 26px;
    color: #1a1a1a;
    /* Effetto sfera 3D: gradiente radiale + ombra interna + esterna */
    background: radial-gradient(circle at 30% 25%,
        #ffffff 0%,
        #f5f5f5 30%,
        var(--ball-color) 70%,
        var(--ball-color-dark) 100%);
    box-shadow:
        inset -8px -10px 22px rgba(0, 0, 0, 0.35),
        inset 6px 6px 16px rgba(255, 255, 255, 0.4),
        0 12px 32px rgba(0, 0, 0, 0.55),
        0 0 30px var(--ball-glow);
    text-shadow: 0 1px 2px rgba(255, 255, 255, 0.6);
}
.deco-ball::after {
    /* Riflesso lucido top-left */
    content: '';
    position: absolute;
    top: 8px;
    left: 12px;
    width: 22px;
    height: 18px;
    background: radial-gradient(ellipse, rgba(255,255,255,0.85), transparent 70%);
    border-radius: 50%;
    filter: blur(2px);
}

/* Palline con colori diversi (oro, cyan, rosso, verde, viola) */
.deco-ball-1 {
    --ball-color: #FFB800;
    --ball-color-dark: #b88200;
    --ball-glow: rgba(255, 184, 0, 0.4);
    top: -20px;
    right: 20px;
    transform: rotate(-12deg);
    animation: ballFloat 5s ease-in-out infinite;
}
.deco-ball-2 {
    --ball-color: #00D9FF;
    --ball-color-dark: #008ba5;
    --ball-glow: rgba(0, 217, 255, 0.5);
    bottom: 30px;
    left: -50px;
    width: 90px;
    height: 90px;
    font-size: 30px;
    transform: rotate(8deg);
    animation: ballFloat 6.5s ease-in-out infinite reverse;
    animation-delay: -1s;
}
.deco-ball-3 {
    --ball-color: #FF3366;
    --ball-color-dark: #a31f43;
    --ball-glow: rgba(255, 51, 102, 0.4);
    top: 40%;
    right: -30px;
    width: 64px;
    height: 64px;
    font-size: 22px;
    transform: rotate(15deg);
    animation: ballFloat 4.5s ease-in-out infinite;
    animation-delay: -2.5s;
}
.deco-ball-4 {
    --ball-color: #3DDC84;
    --ball-color-dark: #258255;
    --ball-glow: rgba(61, 220, 132, 0.4);
    bottom: -25px;
    right: 35%;
    width: 58px;
    height: 58px;
    font-size: 20px;
    transform: rotate(-20deg);
    animation: ballFloat 5.5s ease-in-out infinite;
    animation-delay: -3s;
    opacity: 0.85;
}
.deco-ball-5 {
    --ball-color: #a371f7;
    --ball-color-dark: #5e3eb0;
    --ball-glow: rgba(163, 113, 247, 0.4);
    top: 25%;
    left: -40px;
    width: 50px;
    height: 50px;
    font-size: 17px;
    transform: rotate(22deg);
    animation: ballFloat 7s ease-in-out infinite;
    animation-delay: -1.5s;
    opacity: 0.75;
}

@keyframes ballFloat {
    0%, 100% { transform: translateY(0) rotate(var(--rot, -12deg)); }
    50% { transform: translateY(-22px) rotate(calc(var(--rot, -12deg) + 8deg)); }
}
.deco-ball-1 { --rot: -12deg; }
.deco-ball-2 { --rot: 8deg; }
.deco-ball-3 { --rot: 15deg; }
.deco-ball-4 { --rot: -20deg; }
.deco-ball-5 { --rot: 22deg; }

/* Monete € fluttuanti */
.deco-coin {
    position: absolute;
    width: 56px;
    height: 56px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 30%,
        #ffe98a 0%,
        #ffcc44 35%,
        #d39c11 75%,
        #8b6308 100%);
    box-shadow:
        inset -5px -6px 14px rgba(0, 0, 0, 0.4),
        inset 4px 4px 10px rgba(255, 255, 255, 0.5),
        0 10px 24px rgba(180, 130, 0, 0.5),
        0 0 20px rgba(255, 184, 0, 0.4);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 30px;
    color: #6a4500;
    text-shadow: 0 1px 1px rgba(255, 255, 255, 0.5);
}
.deco-coin-1 {
    top: 12%;
    left: -20px;
    transform: rotate(-25deg);
    animation: coinFloat 6s ease-in-out infinite;
}
.deco-coin-2 {
    bottom: 5%;
    right: -10px;
    width: 44px;
    height: 44px;
    font-size: 24px;
    transform: rotate(18deg);
    animation: coinFloat 4.8s ease-in-out infinite reverse;
    animation-delay: -2s;
    opacity: 0.85;
}
@keyframes coinFloat {
    0%, 100% { transform: translateY(0) rotate(-25deg); }
    50% { transform: translateY(-18px) rotate(-15deg); }
}

/* Banconote €50 / €100 stilizzate */
.deco-bill {
    position: absolute;
    width: 130px;
    height: 70px;
    border-radius: 6px;
    padding: 8px 10px;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    color: #1a1a1a;
    font-weight: 900;
    box-shadow:
        0 14px 32px rgba(0, 0, 0, 0.55),
        inset 0 0 0 1px rgba(255, 255, 255, 0.3);
    overflow: hidden;
}
.deco-bill::before {
    content: '';
    position: absolute;
    inset: 0;
    background:
        repeating-linear-gradient(45deg,
            transparent 0,
            transparent 8px,
            rgba(255,255,255,0.06) 8px,
            rgba(255,255,255,0.06) 9px);
    pointer-events: none;
}
.deco-bill-1 {
    /* Banconota da 50€ — arancione (come quella vera) */
    background: linear-gradient(135deg, #f5a623 0%, #d68410 50%, #b56d00 100%);
    top: 50%;
    right: -50px;
    transform: rotate(15deg);
    animation: billFloat 6.5s ease-in-out infinite;
    animation-delay: -1s;
}
.deco-bill-2 {
    /* Banconota da 100€ — verde (come quella vera) */
    background: linear-gradient(135deg, #6ec27a 0%, #3d9b54 50%, #25733a 100%);
    bottom: 15%;
    left: -30px;
    transform: rotate(-12deg) scale(0.85);
    animation: billFloat 5.2s ease-in-out infinite reverse;
    animation-delay: -3s;
    opacity: 0.92;
}
.bill-corner {
    font-size: 12px;
    font-family: 'JetBrains Mono', monospace;
    color: rgba(0,0,0,0.7);
    align-self: flex-start;
    z-index: 1;
}
.bill-corner.br {
    align-self: flex-end;
}
.bill-50, .bill-100 {
    font-size: 28px;
    font-family: 'JetBrains Mono', monospace;
    text-align: center;
    color: rgba(0, 0, 0, 0.85);
    text-shadow: 0 1px 1px rgba(255, 255, 255, 0.4);
    letter-spacing: -1px;
    z-index: 1;
    line-height: 1;
    margin-top: -2px;
}
@keyframes billFloat {
    0%, 100% { transform: translateY(0) rotate(15deg); }
    50% { transform: translateY(-25px) rotate(20deg); }
}
.deco-bill-2 {
    animation-name: billFloat2;
}
@keyframes billFloat2 {
    0%, 100% { transform: translateY(0) rotate(-12deg) scale(0.85); }
    50% { transform: translateY(-20px) rotate(-7deg) scale(0.85); }
}
.mockup-window {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: var(--shadow-lg);
    transform: perspective(1500px) rotateY(-8deg) rotateX(4deg);
    transition: transform 0.5s ease-out;
    position: relative;
    z-index: 5; /* sopra le decorazioni 3D */
}
.mockup-window:hover {
    transform: perspective(1500px) rotateY(-4deg) rotateX(2deg) scale(1.02);
}
.mockup-glow {
    position: absolute;
    top: 50%;
    left: 50%;
    width: 100%;
    height: 100%;
    transform: translate(-50%, -50%);
    background: radial-gradient(ellipse, var(--cyan-glow), transparent 70%);
    filter: blur(60px);
    z-index: 1;
    opacity: 0.5;
}
.mockup-bar {
    background: var(--bg-surface);
    padding: 12px 16px;
    display: flex;
    align-items: center;
    gap: 8px;
    border-bottom: 1px solid var(--border);
}
.mockup-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
}
.mockup-dot.red { background: #FF5F57; }
.mockup-dot.yellow { background: #FEBC2E; }
.mockup-dot.green { background: #28C840; }
.mockup-title {
    margin-left: 16px;
    font-size: 12px;
    color: var(--text-3);
    font-weight: 600;
}
.mockup-content { padding: 18px; }
.mockup-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 14px;
}
.mockup-badge-cyan {
    background: var(--cyan);
    color: var(--bg-dark);
    padding: 4px 12px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 1px;
}
.mockup-meta { font-size: 11px; color: var(--text-3); }
.mockup-cards {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 8px;
    margin-bottom: 14px;
}
.mockup-card {
    background: var(--bg-surface);
    border-radius: 6px;
    padding: 10px;
    border: 1px solid var(--border);
}
.mc-title {
    font-size: 9px;
    font-weight: 800;
    color: var(--green);
    margin-bottom: 6px;
    letter-spacing: 0.5px;
}
.mc-title.red { color: var(--red); }
.mc-title.gold { color: var(--gold); }
.mc-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    font-size: 10px;
    margin-bottom: 3px;
    font-family: 'JetBrains Mono', monospace;
}
.mc-num { font-weight: 800; }
.mc-num.green { color: var(--green); }
.mc-num.red { color: var(--red); }
.mc-num.gold { color: var(--gold); }
.mc-info { color: var(--text-3); }

.mockup-table {
    background: var(--bg-surface);
    border-radius: 6px;
    border: 1px solid var(--border);
    overflow: hidden;
}
.mt-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr 1fr;
    padding: 6px 10px;
    font-size: 10px;
    font-family: 'JetBrains Mono', monospace;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    align-items: center;
}
.mt-row:last-child { border-bottom: none; }
.mt-header {
    background: var(--bg-card);
    color: var(--cyan);
    font-weight: 700;
    font-size: 9px;
    letter-spacing: 1px;
    text-transform: uppercase;
}

/* ═══ STATS ═════════════════════════════════════════════════════ */
.stats {
    background: linear-gradient(180deg, transparent, rgba(0, 217, 255, 0.04), transparent);
    padding: 60px 32px;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}
.stats-container {
    max-width: 1800px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: space-around;
    flex-wrap: wrap;
    gap: 24px;
}
.stat-card {
    text-align: center;
    flex: 1;
    min-width: 200px;
}
.stat-number {
    font-size: 56px;
    font-weight: 900;
    background: var(--grad-1);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    line-height: 1;
    margin-bottom: 8px;
    font-family: 'JetBrains Mono', monospace;
}
.stat-label {
    font-size: 16px;
    font-weight: 700;
    color: var(--text);
    margin-bottom: 4px;
}
.stat-detail {
    font-size: 13px;
    color: var(--text-3);
}
.stat-divider {
    width: 1px;
    height: 80px;
    background: var(--border-light);
}

/* ═══ FEATURES ══════════════════════════════════════════════════ */
.features {
    max-width: 1800px;
    margin: 0 auto;
    padding: 100px 32px;
}
.section-header {
    text-align: center;
    margin-bottom: 60px;
}
.section-tag {
    display: inline-block;
    background: rgba(0, 217, 255, 0.08);
    border: 1px solid rgba(0, 217, 255, 0.3);
    color: var(--cyan);
    padding: 6px 16px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    margin-bottom: 20px;
}
.section-title {
    font-size: 48px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: -1px;
    margin-bottom: 16px;
}
.section-sub {
    font-size: 18px;
    color: var(--text-2);
    max-width: 700px;
    margin: 0 auto;
    line-height: 1.6;
}
.features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}
.feature-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 14px;
    padding: 28px;
    transition: all 0.3s;
    position: relative;
    overflow: hidden;
}
.feature-card::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(circle at top right, var(--cyan-glow), transparent 50%);
    opacity: 0;
    transition: opacity 0.3s;
    pointer-events: none;
}
.feature-card:hover {
    border-color: var(--cyan);
    transform: translateY(-4px);
    box-shadow: var(--shadow-md);
}
.feature-card:hover::before { opacity: 0.5; }
.feature-card.feature-large { grid-column: span 2; }
.feature-icon { font-size: 36px; margin-bottom: 16px; }
.feature-card h3 {
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 10px;
}
.feature-card p {
    font-size: 14px;
    color: var(--text-2);
    line-height: 1.6;
}
.feature-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 16px;
}
.feature-tags span {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    padding: 4px 10px;
    border-radius: 999px;
    font-size: 11px;
    color: var(--cyan);
    font-weight: 600;
}

/* ═══ FEATURES TABLE — confronto compatto ═════════════════════ */
.features-table-section {
    max-width: 1800px;
    margin: 0 auto;
    padding: 100px 32px;
}
.ft-wrap {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 20px;
    overflow: hidden;
    box-shadow: var(--shadow-md);
}
.ft-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 14px;
}
.ft-table thead th {
    padding: 24px 20px;
    background: var(--bg-surface);
    border-bottom: 2px solid var(--border);
    text-align: center;
    vertical-align: top;
}
.ft-feat-col { text-align: left !important; width: 40%; }
.ft-other-col { width: 28%; }
.ft-ours-col {
    width: 32%;
    background: linear-gradient(180deg, rgba(0, 217, 255, 0.08), rgba(0, 217, 255, 0.02)) !important;
    border-left: 1px solid rgba(0, 217, 255, 0.3);
    border-right: 1px solid rgba(0, 217, 255, 0.3);
    position: relative;
}
.ft-ours-col::before {
    content: 'CONSIGLIATO';
    position: absolute;
    top: -1px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--cyan);
    color: var(--bg-dark);
    padding: 4px 14px;
    border-radius: 0 0 8px 8px;
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1.5px;
}
.ft-th-name {
    font-size: 16px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 6px;
    margin-top: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.ft-feat-col .ft-th-name { justify-content: flex-start; }
.ft-bolt {
    color: var(--cyan);
    filter: drop-shadow(0 0 6px var(--cyan-glow));
    font-size: 20px;
}
.ft-th-sub {
    font-size: 11px;
    color: var(--text-3);
    font-weight: 500;
}

.ft-table tbody td {
    padding: 16px 20px;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    vertical-align: middle;
}
.ft-table tbody td:first-child {
    color: var(--text);
    font-size: 14px;
    line-height: 1.4;
}
.ft-table tbody td:first-child strong {
    color: var(--text);
    font-weight: 700;
}
.ft-table tbody tr:hover td {
    background: rgba(0, 217, 255, 0.02);
}
.ft-table tbody tr:hover td.ft-cell.ft-yes {
    background: rgba(0, 217, 255, 0.08);
}

.ft-cell {
    text-align: center;
    color: var(--text-3);
}
.ft-cell small {
    display: block;
    font-size: 11px;
    color: var(--text-mute);
    margin-top: 4px;
    line-height: 1.3;
}
.ft-cell.ft-yes {
    background: linear-gradient(180deg, rgba(0, 217, 255, 0.04), transparent);
    border-left: 1px solid rgba(0, 217, 255, 0.3);
    border-right: 1px solid rgba(0, 217, 255, 0.3);
    color: var(--text);
}
.ft-cell.ft-yes small { color: var(--text-2); }

.ft-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: var(--green);
    color: var(--bg-dark);
    border-radius: 50%;
    font-weight: 900;
    font-size: 16px;
    box-shadow: 0 0 14px rgba(61, 220, 132, 0.4);
}
.ft-x {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    background: rgba(255, 51, 102, 0.15);
    color: var(--red);
    border: 1px solid rgba(255, 51, 102, 0.3);
    border-radius: 50%;
    font-weight: 900;
    font-size: 14px;
}
.ft-no {
    display: inline-block;
    background: rgba(255, 51, 102, 0.1);
    color: var(--red);
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid rgba(255, 51, 102, 0.25);
}
.ft-partial {
    display: inline-block;
    background: rgba(255, 184, 0, 0.1);
    color: var(--gold);
    padding: 4px 10px;
    border-radius: 6px;
    font-size: 12px;
    font-weight: 700;
    border: 1px solid rgba(255, 184, 0, 0.25);
}

/* Footer della tabella */
.ft-table tfoot td {
    padding: 24px 20px;
    text-align: center;
    border-top: 2px solid var(--border);
    background: var(--bg-surface);
}
.ft-foot-other { color: var(--text-3); }
.ft-foot-ours {
    background: linear-gradient(180deg, rgba(0, 217, 255, 0.06), rgba(0, 217, 255, 0.01)) !important;
    border-left: 1px solid rgba(0, 217, 255, 0.3);
    border-right: 1px solid rgba(0, 217, 255, 0.3);
    border-bottom-left-radius: 20px;
    border-bottom-right-radius: 20px;
}
.ft-foot-title {
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 1.5px;
    color: var(--text-3);
    margin-bottom: 8px;
    font-weight: 700;
}
.ft-foot-price {
    font-family: 'JetBrains Mono', monospace;
    font-size: 28px;
    font-weight: 900;
    color: var(--text-3);
    line-height: 1;
}
.ft-foot-price small {
    display: block;
    font-size: 11px;
    color: var(--text-mute);
    font-weight: 600;
    margin-top: 4px;
    font-family: 'Inter', sans-serif;
}
.ft-foot-cyan {
    background: var(--grad-1);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    font-size: 36px;
}
.ft-foot-cyan small {
    background: none;
    -webkit-text-fill-color: var(--cyan);
}

/* ═══ LIMITED OFFER BANNER ═════════════════════════════════════ */
.limited-banner {
    background: linear-gradient(135deg, var(--red) 0%, var(--gold) 100%);
    padding: 32px;
    margin: 40px 32px;
    border-radius: 20px;
    box-shadow: var(--shadow-lg);
    position: relative;
    overflow: hidden;
}
.limited-banner::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        radial-gradient(circle at 10% 50%, rgba(255,255,255,0.1) 1px, transparent 2px),
        radial-gradient(circle at 90% 30%, rgba(255,255,255,0.1) 1px, transparent 2px);
    background-size: 50px 50px;
    pointer-events: none;
}
.lb-content {
    max-width: 1600px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    gap: 24px;
    flex-wrap: wrap;
    position: relative;
}
.lb-icon {
    font-size: 56px;
    animation: bounce 1.5s ease-in-out infinite;
}
.lb-text { flex: 1; min-width: 280px; }
.lb-text h3 {
    font-size: 24px;
    font-weight: 900;
    color: #1a0a00;
    margin-bottom: 6px;
}
.lb-price {
    background: rgba(0,0,0,0.85);
    color: var(--gold);
    padding: 4px 12px;
    border-radius: 6px;
    font-family: 'JetBrains Mono', monospace;
    margin: 0 4px;
}
.lb-old {
    color: rgba(0,0,0,0.55);
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    margin-right: 4px;
}
.lb-text p {
    font-size: 14px;
    color: rgba(0,0,0,0.7);
    font-weight: 600;
}
.lb-cta {
    background: var(--bg-dark);
    color: var(--text);
    padding: 14px 28px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 800;
    font-size: 15px;
    border: 2px solid var(--bg-dark);
    transition: all 0.3s;
}
.lb-cta:hover { transform: translateY(-2px); box-shadow: 0 10px 30px rgba(0,0,0,0.4); }

/* ═══ SCREENSHOTS ═══════════════════════════════════════════════ */
.screenshots {
    max-width: 1800px;
    margin: 0 auto;
    padding: 100px 32px;
}
.screenshots-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 24px;
}
.screen-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 16px;
    transition: all 0.3s;
}
.screen-card.screen-large { grid-column: span 1; }
.screen-card:hover { transform: translateY(-4px); border-color: var(--cyan); box-shadow: var(--shadow-md); }
.screen-window {
    background: var(--bg-dark);
    border-radius: 10px;
    border: 1px solid var(--border);
    overflow: hidden;
    margin-bottom: 16px;
}
.screen-bar {
    background: var(--bg-surface);
    padding: 8px 12px;
    display: flex;
    align-items: center;
    gap: 6px;
}
.screen-dot {
    width: 9px;
    height: 9px;
    border-radius: 50%;
}
.screen-dot.red { background: #FF5F57; }
.screen-dot.yellow { background: #FEBC2E; }
.screen-dot.green { background: #28C840; }
.screen-title {
    margin-left: 12px;
    font-size: 11px;
    color: var(--text-3);
    font-weight: 600;
}
.screen-body {
    padding: 16px;
    min-height: 280px;
}
.screen-mini-grid {
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    gap: 6px;
}
.smg-cell {
    aspect-ratio: 1;
    border-radius: 8px;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    font-size: 13px;
    font-weight: 800;
    font-family: 'JetBrains Mono', monospace;
    color: white;
    box-shadow: inset 0 -2px 4px rgba(0,0,0,0.2);
}
.smg-cell small { font-size: 9px; opacity: 0.85; font-weight: 600; }
.smg-cell.cyan { background: var(--cyan); color: var(--bg-dark); }
.smg-cell.green { background: var(--green); color: var(--bg-dark); }
.smg-cell.red { background: var(--red); }
.smg-cell.gold { background: var(--gold); color: var(--bg-dark); }
.smg-cell.purple { background: var(--purple); }

.sb-title {
    color: var(--cyan);
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 14px;
}
.sb-title small { font-weight: 500; color: var(--red); font-size: 11px; }
.sb-section { margin-bottom: 16px; }
.sb-label {
    color: var(--text-3);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 1px;
    margin-bottom: 8px;
}
.sb-label small { color: var(--red); font-weight: 700; margin-left: 6px; }
.sb-numbers {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}
.sn {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 6px 10px;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
    font-size: 14px;
    color: var(--text);
    display: flex;
    flex-direction: column;
    align-items: center;
}
.sn.gold { color: var(--gold); border-color: var(--gold); }
.sn small { font-size: 9px; color: var(--text-3); font-weight: 500; }
.sb-numbers.small .sn-mini {
    background: rgba(255, 51, 102, 0.1);
    border: 1px solid rgba(255, 51, 102, 0.3);
    border-radius: 4px;
    padding: 3px 7px;
    color: var(--red);
    font-family: 'JetBrains Mono', monospace;
    font-weight: 700;
    font-size: 11px;
}
.sb-bars {
    display: flex;
    align-items: flex-end;
    gap: 3px;
    height: 80px;
    padding: 8px;
    background: var(--bg-card);
    border-radius: 6px;
}
.sbar {
    flex: 1;
    background: var(--cyan);
    height: var(--h);
    border-radius: 2px 2px 0 0;
    opacity: 0.7;
}
.sbar.gold-bar { background: var(--gold); opacity: 1; }

.sb-pillbar {
    display: flex;
    gap: 6px;
    margin-bottom: 18px;
}
.pill {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    color: var(--text-3);
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    font-family: 'JetBrains Mono', monospace;
}
.pill.active {
    background: var(--cyan);
    color: var(--bg-dark);
    border-color: var(--cyan);
    box-shadow: 0 0 12px var(--cyan-glow);
}
.sb-bignumbers {
    display: flex;
    gap: 8px;
    justify-content: center;
    margin: 18px 0;
}
.bn {
    width: 56px;
    height: 56px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 22px;
    font-weight: 900;
    color: var(--text);
}
.bn.gold-bn {
    background: rgba(255, 184, 0, 0.1);
    border-color: var(--gold);
    color: var(--gold);
    box-shadow: 0 0 16px rgba(255, 184, 0, 0.3);
}
.sb-disclaimer {
    text-align: center;
    color: var(--text-3);
    font-size: 11px;
    line-height: 1.5;
}

.screen-caption {
    padding: 0 8px;
}
.screen-caption h4 {
    font-size: 16px;
    font-weight: 800;
    margin-bottom: 6px;
}
.screen-caption p {
    font-size: 13px;
    color: var(--text-3);
    line-height: 1.5;
}

/* ═══ COMPARISON ════════════════════════════════════════════════ */
.comparison {
    max-width: 1600px;
    margin: 0 auto;
    padding: 80px 32px;
}
.comp-table {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 24px;
}
.comp-col {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 32px;
}
.comp-col.comp-others { opacity: 0.7; }
.comp-col.comp-ours {
    border-color: var(--cyan);
    box-shadow: var(--shadow-cyan);
    background: linear-gradient(135deg, rgba(0, 217, 255, 0.04), transparent);
}
.comp-head {
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 24px;
    padding-bottom: 16px;
    border-bottom: 1px solid var(--border);
    color: var(--text);
    display: flex;
    align-items: center;
    gap: 8px;
}
.comp-others .comp-head { color: var(--text-3); }
.comp-col ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 14px;
}
.comp-col li {
    font-size: 15px;
    padding-left: 32px;
    position: relative;
    line-height: 1.5;
}
.comp-col li.x { color: var(--text-3); text-decoration: line-through; }
.comp-col li.x::before {
    content: '✗';
    position: absolute;
    left: 0;
    color: var(--red);
    font-weight: 800;
    font-size: 18px;
}
.comp-col li.check { color: var(--text); font-weight: 500; }
.comp-col li.check::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--green);
    font-weight: 800;
    font-size: 18px;
}

/* ═══ PRICING ═══════════════════════════════════════════════════ */
.pricing {
    max-width: 1800px;
    margin: 0 auto;
    padding: 100px 32px;
    position: relative;
}
.pricing-tag { background: rgba(255, 184, 0, 0.1); color: var(--gold); border-color: rgba(255, 184, 0, 0.3); }
.pricing-card-wrap {
    display: flex;
    justify-content: center;
}
.pricing-card {
    background: linear-gradient(180deg, var(--bg-card) 0%, var(--bg-surface) 100%);
    border: 2px solid var(--cyan);
    border-radius: 24px;
    padding: 48px 40px;
    max-width: 540px;
    width: 100%;
    text-align: center;
    position: relative;
    box-shadow: var(--shadow-cyan), var(--shadow-lg);
}
.pricing-card::before {
    content: '';
    position: absolute;
    inset: -2px;
    background: var(--grad-1);
    border-radius: 24px;
    z-index: -1;
    opacity: 0.6;
    filter: blur(20px);
}
.pc-badge {
    position: absolute;
    top: -16px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--gold);
    color: var(--bg-dark);
    padding: 8px 24px;
    border-radius: 999px;
    font-weight: 800;
    font-size: 12px;
    letter-spacing: 1px;
    box-shadow: 0 4px 12px rgba(255, 184, 0, 0.4);
}
.pc-icon {
    font-size: 56px;
    margin: 8px 0;
    color: var(--cyan);
    filter: drop-shadow(0 0 12px var(--cyan-glow));
}
.pc-title {
    font-size: 28px;
    font-weight: 900;
    margin-bottom: 8px;
}
.pc-subtitle {
    color: var(--text-3);
    font-size: 14px;
    margin-bottom: 32px;
}
.pc-price-row {
    display: flex;
    align-items: baseline;
    justify-content: center;
    gap: 16px;
    margin-bottom: 6px;
}
.pc-old-price {
    font-size: 24px;
    color: var(--text-3);
    text-decoration: line-through;
    font-weight: 700;
}
.pc-price {
    font-size: 88px;
    font-weight: 900;
    background: var(--grad-1);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    line-height: 1;
    font-family: 'JetBrains Mono', monospace;
}
.pc-cur { font-size: 44px; }
.pc-price-info {
    color: var(--text-3);
    font-size: 14px;
    margin-bottom: 32px;
}
.pc-features {
    list-style: none;
    text-align: left;
    margin-bottom: 32px;
    padding: 24px;
    background: rgba(0,0,0,0.2);
    border-radius: 14px;
    border: 1px solid var(--border);
}
.pc-features li {
    padding: 8px 0;
    font-size: 15px;
    color: var(--text-2);
}
.pc-features li strong { color: var(--text); font-weight: 700; }
.pc-cta {
    display: block;
    background: var(--cyan);
    color: var(--bg-dark);
    padding: 20px 32px;
    border-radius: 14px;
    text-decoration: none;
    font-weight: 900;
    font-size: 18px;
    transition: all 0.3s;
    box-shadow: var(--shadow-cyan);
    position: relative;
    overflow: hidden;
}
.pc-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.4), transparent);
    transform: translateX(-100%);
    animation: ctaShine 3s ease-in-out infinite;
}
@keyframes ctaShine {
    0%, 100% { transform: translateX(-100%); }
    50% { transform: translateX(100%); }
}
.pc-cta:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 60px var(--cyan-glow);
}
.pc-trust {
    margin-top: 20px;
    font-size: 12px;
    color: var(--text-3);
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
}

/* ═══ FAQ ═══════════════════════════════════════════════════════ */
.faq {
    max-width: 900px;
    margin: 0 auto;
    padding: 100px 32px;
}
.faq-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.faq-item {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 12px;
    transition: all 0.3s;
    overflow: hidden;
}
.faq-item[open] { border-color: var(--cyan); box-shadow: var(--shadow-md); }
.faq-item summary {
    cursor: pointer;
    padding: 20px 24px;
    font-weight: 700;
    font-size: 16px;
    color: var(--text);
    display: flex;
    justify-content: space-between;
    align-items: center;
    list-style: none;
}
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after {
    content: '+';
    font-size: 24px;
    color: var(--cyan);
    font-weight: 300;
    transition: transform 0.3s;
}
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-item p {
    padding: 0 24px 20px;
    color: var(--text-2);
    font-size: 14px;
    line-height: 1.7;
}

/* ═══ FINAL CTA ═════════════════════════════════════════════════ */
.final-cta {
    margin: 60px 32px;
    padding: 80px 32px;
    background: linear-gradient(135deg, var(--bg-card) 0%, var(--bg-surface) 100%);
    border: 1px solid var(--border);
    border-radius: 24px;
    text-align: center;
    position: relative;
    overflow: hidden;
}
.final-cta::before {
    content: '';
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center top, var(--cyan-glow), transparent 60%);
    opacity: 0.6;
    pointer-events: none;
}
.fc-content { position: relative; max-width: 800px; margin: 0 auto; }
.fc-title {
    font-size: 48px;
    font-weight: 900;
    line-height: 1.2;
    letter-spacing: -1px;
    margin-bottom: 20px;
}
.fc-text {
    font-size: 18px;
    color: var(--text-2);
    margin-bottom: 32px;
}
.fc-btn {
    display: inline-block;
    background: var(--cyan);
    color: var(--bg-dark);
    padding: 22px 48px;
    border-radius: 14px;
    text-decoration: none;
    font-weight: 900;
    font-size: 20px;
    box-shadow: var(--shadow-cyan);
    transition: all 0.3s;
}
.fc-btn:hover { transform: translateY(-3px) scale(1.02); }
.fc-disclaimer {
    margin-top: 24px;
    color: var(--text-3);
    font-size: 13px;
}

/* ═══ FOOTER ════════════════════════════════════════════════════ */
.footer {
    background: var(--bg-card);
    border-top: 1px solid var(--border);
    padding: 60px 32px 32px;
}
.footer-content {
    max-width: 1800px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: 2fr 1fr 1fr 1fr;
    gap: 40px;
    margin-bottom: 40px;
}
.footer-logo {
    display: flex;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: var(--text);
    font-size: 18px;
    font-weight: 800;
    margin-bottom: 12px;
}
.footer-desc {
    color: var(--text-3);
    font-size: 14px;
    line-height: 1.6;
    max-width: 320px;
}
.footer-col h4 {
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 16px;
    letter-spacing: 0.5px;
}
.footer-col ul {
    list-style: none;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.footer-col a {
    color: var(--text-3);
    text-decoration: none;
    font-size: 14px;
    transition: color 0.2s;
}
.footer-col a:hover { color: var(--cyan); }
.footer-bottom {
    max-width: 1800px;
    margin: 0 auto;
    padding-top: 32px;
    border-top: 1px solid var(--border);
    text-align: center;
    font-size: 12px;
    color: var(--text-3);
    line-height: 1.6;
}
.footer-warning {
    margin-top: 12px;
    color: var(--text-mute);
    font-size: 11px;
    max-width: 720px;
    margin-left: auto;
    margin-right: auto;
}

/* ═══ GRADIENT TEXT RED (per "alla cieca") ═════════════════════ */
.gradient-text-red {
    background: linear-gradient(135deg, #FF3366 0%, #FFB800 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}

/* ═══ HERO MOCKUP STAT BAR (3 box come app reale) ═════════════ */
.mockup-statbar {
    display: grid;
    grid-template-columns: 1.6fr 0.7fr 1.2fr;
    gap: 6px;
    margin-bottom: 14px;
}
.msb-card {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 6px;
    padding: 8px 10px;
    text-align: left;
    line-height: 1.2;
}
.msb-card.cyan-border { border-color: var(--cyan); }
.msb-card.green-border { border-color: var(--green); }
.msb-card.gold-border { border-color: var(--gold); }
.msb-icon { font-size: 14px; margin-bottom: 2px; }
.msb-num {
    font-family: 'JetBrains Mono', monospace;
    font-size: 20px;
    font-weight: 900;
    color: var(--text);
    line-height: 1;
}
.msb-num.msb-num-sm { font-size: 14px; }
.msb-lbl { font-size: 10px; color: var(--text-3); margin-top: 2px; }
.msb-sub { font-size: 9px; color: var(--text-mute); font-family: 'JetBrains Mono', monospace; }

/* ═══ ASIMMETRIA — La verità che spiega tutto ══════════════════ */
.asymmetry {
    background:
        radial-gradient(ellipse at top, rgba(255, 51, 102, 0.06), transparent 60%),
        radial-gradient(ellipse at bottom, rgba(0, 217, 255, 0.06), transparent 60%);
    padding: 100px 32px 80px;
    border-top: 1px solid var(--border);
    position: relative;
    overflow: hidden;
}
.asymmetry::before {
    content: '';
    position: absolute;
    inset: 0;
    background-image:
        linear-gradient(rgba(255,255,255,0.02) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.02) 1px, transparent 1px);
    background-size: 60px 60px;
    mask-image: radial-gradient(ellipse at center, black, transparent 70%);
    -webkit-mask-image: radial-gradient(ellipse at center, black, transparent 70%);
    pointer-events: none;
}
.asym-container {
    max-width: 1700px;
    margin: 0 auto;
    position: relative;
}
.asym-header {
    text-align: center;
    margin-bottom: 60px;
}
.asym-tag {
    background: rgba(255, 51, 102, 0.08);
    border-color: rgba(255, 51, 102, 0.3);
    color: var(--red);
}
.asym-cols {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 0;
    align-items: stretch;
    margin-bottom: 60px;
}
.asym-col {
    padding: 36px 32px;
    border-radius: 16px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    text-align: center;
    transition: all 0.3s;
}
.asym-them {
    border-color: rgba(255, 51, 102, 0.3);
    background: linear-gradient(180deg, rgba(255,51,102,0.04), rgba(255,51,102,0.01));
}
.asym-you {
    border-color: rgba(255, 184, 0, 0.3);
    background: linear-gradient(180deg, rgba(255,184,0,0.04), rgba(255,184,0,0.01));
}
.asym-label {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: 2px;
    color: var(--text-3);
    margin-bottom: 8px;
}
.asym-name {
    font-size: 28px;
    font-weight: 900;
    margin-bottom: 16px;
    letter-spacing: 1px;
}
.asym-them .asym-name { color: var(--red); }
.asym-you .asym-name { color: var(--gold); }
.asym-icon {
    font-size: 56px;
    margin-bottom: 18px;
    filter: drop-shadow(0 4px 12px rgba(0,0,0,0.4));
}
.asym-list {
    list-style: none;
    text-align: left;
    padding: 0;
    margin: 0 auto;
    max-width: 320px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.asym-list li {
    padding: 10px 14px;
    background: rgba(0, 0, 0, 0.25);
    border-radius: 8px;
    font-size: 14px;
    color: var(--text-2);
    border-left: 3px solid;
    line-height: 1.4;
}
.asym-them .asym-list li { border-left-color: var(--red); }
.asym-you .asym-list li { border-left-color: var(--gold); }
.asym-list li strong { color: var(--text); font-weight: 700; }
.asym-list li em { color: var(--text-3); font-style: italic; }

.asym-vs {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 0 24px;
    position: relative;
}
.asym-vs::before, .asym-vs::after {
    content: '';
    position: absolute;
    width: 1px;
    background: linear-gradient(180deg, transparent, var(--border-light), transparent);
    left: 50%;
    height: 30%;
}
.asym-vs::before { top: 0; }
.asym-vs::after { bottom: 0; }
.asym-vs-circle {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    background: var(--bg-dark);
    border: 2px solid var(--border-light);
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 20px;
    color: var(--text-3);
    letter-spacing: 1px;
    box-shadow: 0 0 24px rgba(0,0,0,0.5);
}

/* Quote editoriale stile articolo */
.asym-quote {
    max-width: 900px;
    margin: 0 auto 60px;
    padding: 48px 60px;
    background: linear-gradient(135deg, var(--bg-card) 0%, var(--bg-surface) 100%);
    border-left: 4px solid var(--cyan);
    border-radius: 4px 16px 16px 4px;
    position: relative;
    box-shadow: var(--shadow-md);
}
.asym-quote-mark {
    position: absolute;
    top: -10px;
    left: 24px;
    font-size: 120px;
    line-height: 1;
    color: var(--cyan);
    opacity: 0.4;
    font-family: Georgia, serif;
    font-weight: 900;
}
.asym-quote-text {
    font-size: 28px;
    line-height: 1.4;
    font-weight: 700;
    color: var(--text);
    text-align: center;
    margin: 0;
    font-family: Georgia, 'Times New Roman', serif;
    font-style: italic;
}

.asym-bridge {
    text-align: center;
    max-width: 720px;
    margin: 0 auto;
    font-size: 17px;
    line-height: 1.7;
    color: var(--text-2);
}
.asym-bridge strong { color: var(--text); font-weight: 700; }

/* ═══ SEZIONE PROBLEM + SCREENSHOTS FUSI ══════════════════════ */
.problem {
    background:
        linear-gradient(180deg,
            rgba(255, 51, 102, 0.04) 0%,
            transparent 30%,
            rgba(0, 217, 255, 0.04) 70%,
            transparent 100%);
    padding: 80px 32px 100px;
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}
.problem-container {
    max-width: 1600px;
    margin: 0 auto 50px;
    text-align: center;
}
/* Bridge tra stats e screenshots */
.problem-bridge {
    margin-top: 60px;
    padding: 0;
    text-align: center;
    max-width: 1600px;
    margin-left: auto;
    margin-right: auto;
}
.problem-bridge-title {
    font-size: 36px;
    font-weight: 900;
    letter-spacing: 4px;
    margin: 0 0 36px;
    background: var(--grad-1);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    text-transform: uppercase;
    position: relative;
    display: inline-block;
}
.problem-bridge-title::before,
.problem-bridge-title::after {
    content: '';
    position: absolute;
    top: 50%;
    width: 60px;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--cyan));
}
.problem-bridge-title::before {
    right: calc(100% + 24px);
    background: linear-gradient(90deg, transparent, var(--cyan));
}
.problem-bridge-title::after {
    left: calc(100% + 24px);
    background: linear-gradient(90deg, var(--cyan), transparent);
}

/* ═══ PROBLEM STATS — 4 contatori grandi ═════════════════════ */
.problem-stats {
    display: grid;
    grid-template-columns: 1fr auto 1fr auto 1fr auto 1fr;
    align-items: center;
    gap: 12px;
    padding: 40px 32px;
    background: linear-gradient(180deg,
        rgba(0, 217, 255, 0.03) 0%,
        rgba(61, 220, 132, 0.02) 100%);
    border: 1px solid var(--border);
    border-radius: 20px;
    margin-bottom: 0;
}
.ps-card {
    text-align: center;
    padding: 12px;
}
.ps-num {
    font-family: 'JetBrains Mono', monospace;
    font-size: 56px;
    font-weight: 900;
    background: var(--grad-1);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    line-height: 1;
    margin-bottom: 8px;
    letter-spacing: -1px;
}
.ps-lbl {
    font-size: 16px;
    font-weight: 800;
    color: var(--text);
    margin-bottom: 4px;
}
.ps-sub {
    font-size: 12px;
    color: var(--text-3);
    font-weight: 500;
}
.ps-divider {
    width: 1px;
    height: 70px;
    background: linear-gradient(180deg, transparent, var(--border-light), transparent);
}
/* Container screenshots dentro la stessa sezione */
.screens-inline {
    max-width: 1800px;
    margin: 0 auto;
}
.screens-inline .screenshots-grid {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr;
    gap: 24px;
}
.screens-inline .screen-wide {
    margin-top: 32px;
}
.problem-icon {
    font-size: 64px;
    margin-bottom: 16px;
    animation: bounce 2s ease-in-out infinite;
}
.problem-title {
    font-size: 56px;
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -1.5px;
    margin-bottom: 50px;
}
.problem-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 50px;
}
.problem-item {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 20px 18px;
    display: flex;
    align-items: center;
    gap: 14px;
    text-align: left;
    transition: all 0.3s;
}
.problem-item:hover {
    border-color: var(--red);
    transform: translateY(-3px);
}
.pi-icon {
    font-size: 28px;
    flex-shrink: 0;
}
.pi-text {
    font-size: 14px;
    color: var(--text-2);
    line-height: 1.5;
}
.pi-text strong { color: var(--text); }
.problem-cta-row {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 24px;
}
.problem-conclusion {
    font-size: 22px;
    line-height: 1.6;
    color: var(--text);
}
.problem-conclusion strong { font-weight: 800; }
.problem-cta {
    display: inline-block;
    background: var(--cyan);
    color: var(--bg-dark);
    padding: 16px 40px;
    border-radius: 12px;
    text-decoration: none;
    font-weight: 800;
    font-size: 16px;
    box-shadow: var(--shadow-cyan);
    transition: all 0.3s;
}
.problem-cta:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 60px var(--cyan-glow);
}

/* ═══ MOCKUP WIDE — Confronto Periodi ══════════════════════════ */
.screen-wide {
    margin-top: 40px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 16px;
    transition: all 0.3s;
}
.screen-wide:hover { border-color: var(--cyan); }
.sw-body {
    padding: 0;
    min-height: auto;
}
.sw-tabs {
    display: flex;
    gap: 4px;
    padding: 12px 16px 0;
    border-bottom: 1px solid var(--border);
    flex-wrap: wrap;
}
.sw-tab {
    padding: 10px 16px;
    font-size: 13px;
    color: var(--text-3);
    font-weight: 600;
    border-bottom: 2px solid transparent;
    cursor: default;
}
.sw-tab.active {
    color: var(--cyan);
    border-bottom-color: var(--cyan);
}
.sw-presets {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 14px 16px;
    flex-wrap: wrap;
    border-bottom: 1px solid var(--border);
}
.sw-pre-label {
    font-size: 11px;
    color: var(--text-3);
    font-weight: 700;
    letter-spacing: 1px;
    margin-right: 4px;
}
.sw-pill {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    color: var(--text-2);
    padding: 6px 12px;
    border-radius: 6px;
    font-size: 11px;
    font-weight: 600;
}
.sw-periods {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 16px;
    padding: 16px;
}
.sw-period {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 14px;
}
.sw-pheader {
    font-size: 12px;
    font-weight: 800;
    margin-bottom: 10px;
    letter-spacing: 1px;
}
.sw-pheader.cyan { color: var(--cyan); }
.sw-pheader.gold { color: var(--gold); }
.sw-prow {
    display: flex;
    justify-content: space-between;
    padding: 6px 8px;
    background: var(--bg-card);
    border-radius: 4px;
    margin-bottom: 4px;
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
}
.sw-prow span:first-child { color: var(--text-3); }
.sw-prow span:last-child { color: var(--text); font-weight: 700; }
.sw-table {
    padding: 0 16px 16px;
}
.sw-trow {
    display: grid;
    grid-template-columns: 0.6fr 1fr 1fr 1fr 1fr 1fr 1.5fr;
    padding: 9px 12px;
    font-size: 12px;
    font-family: 'JetBrains Mono', monospace;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    align-items: center;
}
.sw-trow.sw-thead {
    background: var(--bg-card);
    color: var(--cyan);
    font-weight: 800;
    font-size: 11px;
    letter-spacing: 1px;
    text-transform: uppercase;
    border-radius: 6px;
}
.sw-trow:not(.sw-thead):hover { background: rgba(0, 217, 255, 0.04); }
.sw-caption {
    margin-top: 16px;
    text-align: center;
}

/* ═══ TESTIMONIALS ══════════════════════════════════════════════ */
.testimonials {
    background: linear-gradient(180deg, transparent 0%, rgba(0, 217, 255, 0.03) 50%, transparent 100%);
    padding: 100px 32px;
}
.testi-grid {
    max-width: 1800px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 24px;
}
.testi-card {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    padding: 28px;
    transition: all 0.3s;
    position: relative;
}
.testi-card:hover {
    transform: translateY(-4px);
    border-color: var(--cyan);
    box-shadow: var(--shadow-md);
}
.testi-stars {
    color: var(--gold);
    font-size: 18px;
    letter-spacing: 2px;
    margin-bottom: 16px;
}
.testi-quote {
    color: var(--text);
    font-size: 15px;
    line-height: 1.7;
    margin-bottom: 24px;
    font-style: italic;
}
.testi-quote::before {
    content: '"';
    color: var(--cyan);
    font-size: 48px;
    line-height: 1;
    font-family: Georgia, serif;
    display: block;
    margin-bottom: -20px;
}
.testi-quote strong { color: var(--cyan); font-style: normal; font-weight: 700; }
.testi-author {
    display: flex;
    align-items: center;
    gap: 12px;
    padding-top: 16px;
    border-top: 1px solid var(--border);
}
.testi-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    background: linear-gradient(135deg, var(--c1), var(--c2));
    display: flex;
    align-items: center;
    justify-content: center;
    color: white;
    font-weight: 800;
    font-size: 18px;
    box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.testi-name {
    font-weight: 700;
    color: var(--text);
    font-size: 14px;
}
.testi-meta {
    color: var(--text-3);
    font-size: 12px;
}

/* ═══ PRICING — Value Stack + Garanzia ═════════════════════════ */
.pc-value-stack {
    background: rgba(0,0,0,0.3);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 20px;
    margin-bottom: 24px;
    text-align: left;
}
.pc-vs-title {
    font-size: 13px;
    color: var(--cyan);
    font-weight: 700;
    margin-bottom: 12px;
    letter-spacing: 0.3px;
}
.pc-vs-title strong { color: var(--gold); }
.pc-vs-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 8px 0;
    border-bottom: 1px solid rgba(255,255,255,0.04);
    font-size: 13px;
    color: var(--text-2);
}
.pc-vs-row:last-of-type { border-bottom: none; }
.pc-vs-val {
    color: var(--text-3);
    font-weight: 700;
    font-family: 'JetBrains Mono', monospace;
    text-decoration: line-through;
    font-size: 12px;
}
.pc-vs-total {
    margin-top: 12px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
    text-align: center;
    font-size: 14px;
    color: var(--text-2);
}
.pc-vs-total s { color: var(--text-mute); }

.pc-guarantee {
    margin-top: 20px;
    background: linear-gradient(135deg, rgba(61, 220, 132, 0.08), rgba(0, 217, 255, 0.08));
    border: 1px solid rgba(61, 220, 132, 0.3);
    border-radius: 12px;
    padding: 16px 20px;
    display: flex;
    align-items: center;
    gap: 16px;
    text-align: left;
}
.pc-g-shield {
    font-size: 36px;
    flex-shrink: 0;
}
.pc-guarantee strong {
    display: block;
    color: var(--green);
    font-size: 14px;
    margin-bottom: 4px;
}
.pc-guarantee p {
    color: var(--text-2);
    font-size: 12px;
    margin: 0;
    line-height: 1.5;
}

/* ═══ RESPONSIVE ════════════════════════════════════════════════ */
@media (max-width: 1024px) {
    .hero { grid-template-columns: 1fr; padding: 60px 24px; }
    .hero-mockup { order: -1; max-width: 540px; margin: 0 auto; }
    .hero-title { font-size: 48px; }
    .screenshots-grid { grid-template-columns: 1fr 1fr; }
    .footer-content { grid-template-columns: 1fr 1fr; }
    .testi-grid { grid-template-columns: 1fr 1fr; }
    .sw-trow { font-size: 11px; }
    .ft-table { font-size: 13px; }
    .ft-table tbody td { padding: 14px 14px; }
    .ft-cell small { font-size: 10px; }
    .problem-stats { padding: 28px 18px; }
    .ps-num { font-size: 44px; }
    .ps-lbl { font-size: 14px; }
    .asym-quote-text { font-size: 22px; }
}
@media (max-width: 700px) {
    .nav-links { display: none; }
    .nav-container { padding: 14px 20px; }
    .nav-cta { padding: 8px 14px; font-size: 13px; }
    /* Sticky CTA mobile attiva solo su schermi piccoli */
    .sticky-mobile-cta { display: flex; }
    /* Lascio padding-bottom alla pagina per non coprire il footer */
    body { padding-bottom: 80px; }
    /* Trust strip più compatto su mobile */
    .trust-strip { font-size: 11px; padding: 8px 12px; }
    .trust-strip-content { gap: 6px; }
    .ts-sep { display: none; }
    /* Mid CTA stacked su mobile */
    .mid-cta-inner { flex-direction: column; text-align: center; padding: 20px; }
    .mid-cta-btn { width: 100%; justify-content: center; }
    .hero-title { font-size: 36px; }
    .section-title { font-size: 32px; }
    .screenshots-grid { grid-template-columns: 1fr; }
    .footer-content { grid-template-columns: 1fr; }
    .pc-price { font-size: 64px; }
    .fc-title { font-size: 32px; }
    .promo-banner { font-size: 12px; padding: 8px 14px; }
    .promo-text { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
    .testi-grid { grid-template-columns: 1fr; }
    .sw-periods { grid-template-columns: 1fr; }
    .sw-tabs { overflow-x: auto; flex-wrap: nowrap; }
    .sw-trow { grid-template-columns: 0.5fr 0.8fr 0.8fr 0.8fr 0.8fr 1fr 1fr; font-size: 10px; }
    .mockup-statbar { grid-template-columns: 1fr; }
    /* Asimmetria stacked su mobile */
    .asymmetry { padding: 60px 16px 50px; }
    .asym-cols { grid-template-columns: 1fr; gap: 16px; }
    .asym-col { padding: 24px 18px; }
    .asym-vs { padding: 8px; }
    .asym-vs-circle { width: 56px; height: 56px; font-size: 16px; }
    .asym-name { font-size: 22px; }
    .asym-icon { font-size: 44px; margin-bottom: 12px; }
    .asym-quote { padding: 36px 24px 28px; margin-bottom: 40px; }
    .asym-quote-text { font-size: 18px; }
    .asym-quote-mark { font-size: 80px; left: 14px; top: -4px; }
    .asym-bridge { font-size: 15px; }

    /* Stats compatti su mobile: 2 colonne */
    .problem-stats {
        grid-template-columns: 1fr 1fr;
        gap: 16px;
        padding: 24px 16px;
    }
    .ps-divider { display: none; }
    .ps-num { font-size: 36px; }
    .ps-lbl { font-size: 13px; }
    .ps-sub { font-size: 11px; }
    .problem-bridge .problem-conclusion { font-size: 16px; }
    /* Tabella features: scroll orizzontale + dimensioni ridotte */
    .features-table-section { padding: 60px 16px; }
    .ft-wrap { overflow-x: auto; }
    .ft-table { min-width: 720px; font-size: 12px; }
    .ft-table tbody td { padding: 12px 10px; }
    .ft-th-name { font-size: 13px; }
    .ft-th-sub { font-size: 10px; }
    .ft-foot-price { font-size: 22px; }
    .ft-foot-cyan { font-size: 28px; }
}

/* ═══════════════════════════════════════════════════════════════
   VERSIONE 3.1 — sezioni in cima, tre giochi, nuove funzioni
   (2026-09-17). Aggiunte al sito esistente senza toccarne lo stile:
   stesse variabili, stessi caratteri, stessi componenti.
═══════════════════════════════════════════════════════════════ */

/* ── La barra con le sezioni resta in cima, sotto il banner promo ──
   Prima era `position: relative` e scorrendo spariva. --promo-h lo
   misura script.js: il banner va a capo su schermi stretti. */
.navbar {
    position: sticky;
    top: var(--promo-h, 42px);
    z-index: 150;
}
.nav-container { gap: 24px; }
.nav-links-wrap { min-width: 0; }
.nav-links { gap: 4px; flex-wrap: nowrap; }
.nav-links a {
    display: block;
    padding: 8px 12px;
    border-radius: 8px;
    white-space: nowrap;
    position: relative;
}
.nav-links a:hover { background: var(--bg-surface); }
.nav-links a.attivo { color: var(--cyan); }
.nav-links a.attivo::after {
    content: "";
    position: absolute;
    left: 12px; right: 12px; bottom: 2px;
    height: 2px;
    border-radius: 2px;
    background: var(--cyan);
    box-shadow: 0 0 8px var(--cyan-glow);
}
.nav-links .nav-nuovo {
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .5px;
    color: var(--bg-dark);
    background: var(--gold);
    border-radius: 999px;
    padding: 1px 6px;
    margin-left: 5px;
    vertical-align: 2px;
}

/* ── Voce «Vincite»: pillola azzurra, richiama l'attenzione ─────
   Testo scuro su azzurro pieno: leggibile in tema scuro e chiaro.
   Da attiva niente ciano su azzurro: sottolineatura e testo scuri. */
/* «Vincite»: scritta in azzurro sfumato con riflesso che scorre, niente
   pastiglia piena (era `background: #38bdf8` con testo scuro). */
.nav-links a.nav-vincite {
    font-size: 17px;
    font-weight: 900;
    letter-spacing: .3px;
    /* alone morbido intorno alle lettere: risalta senza pastiglia dietro */
    filter: drop-shadow(0 0 10px rgba(56, 189, 248, .55));
    /* primo e ultimo colore uguali: il riflesso gira senza stacchi */
    background-image: linear-gradient(90deg, #38bdf8, #e0f2fe, #38bdf8, #e0f2fe, #38bdf8);
    background-size: 300% 100%;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    box-shadow: none;
    animation: brillaVincite 5s linear infinite;
}
@keyframes brillaVincite {
    from { background-position: 0% 50%; }
    to   { background-position: 100% 50%; }
}
/* ⚠ l'hover delle voci usa la scorciatoia `background`, che azzera
   background-image: senza questa riga la scritta sparirebbe (testo
   trasparente senza sfumatura sotto). */
.nav-links a.nav-vincite:hover,
.nav-links a.nav-vincite:focus-visible {
    background-color: transparent;
    animation-duration: 1.6s;   /* col mouse sopra il riflesso accelera */
}
.nav-links a.nav-vincite.attivo::after {
    background: #38bdf8;
    box-shadow: none;
}
/* sul bianco serve un azzurro più profondo, altrimenti non si legge */
html[data-tema="chiaro"] .nav-links a.nav-vincite {
    background-image: linear-gradient(90deg, #0369a1, #38bdf8, #0369a1, #38bdf8, #0369a1);
    filter: drop-shadow(0 0 7px rgba(3, 105, 161, .30));
}
html[data-tema="chiaro"] .nav-links a.nav-vincite.attivo::after { background: #0369a1; }

/* ── Tre giochi ─────────────────────────────────────────────── */
.nv-gioco { display: flex; flex-direction: column; }
.nv-gioco-nuovo { border-color: rgba(255, 184, 0, 0.35); }
.nv-gioco-testa {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 4px;
}
.nv-gioco-testa .feature-icon { margin-bottom: 0; }
.nv-gioco-tag {
    font-size: 11px;
    font-weight: 700;
    color: var(--text-3);
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 999px;
    padding: 4px 10px;
}
.nv-gioco-tag.nv-nuovo {
    color: var(--bg-dark);
    background: var(--gold);
    border-color: var(--gold);
    font-weight: 900;
    letter-spacing: 1px;
    box-shadow: 0 0 14px rgba(255, 184, 0, 0.35);
}
.nv-gioco h3 { font-size: 24px; margin: 10px 0 14px; }
.nv-cifre {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-bottom: 16px;
}
.nv-cifre div {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 10px;
    padding: 10px 12px;
}
.nv-cifre strong {
    display: block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 22px;
    font-weight: 800;
    color: var(--cyan);
    line-height: 1.2;
}
.nv-cifre span { font-size: 11px; color: var(--text-3); }
.nv-ultima {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .5px;
    color: var(--text-3);
    margin-bottom: 8px;
}
.nv-balls { display: flex; flex-wrap: wrap; gap: 6px; }
.nv-ball {
    width: 34px;
    height: 34px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-family: 'JetBrains Mono', monospace;
    font-size: 13px;
    font-weight: 800;
    color: var(--bg-dark);
    background: radial-gradient(circle at 35% 30%, #ffffff 0%, #dfe6f2 55%, #aab6c8 100%);
    box-shadow: inset 0 -2px 3px rgba(0, 0, 0, 0.25), 0 2px 6px rgba(0, 0, 0, 0.35);
}
.nv-ball.oro {
    background: radial-gradient(circle at 35% 30%, #fff3c4 0%, var(--gold) 60%, #b98200 100%);
}
.nv-ball.jolly {
    background: radial-gradient(circle at 35% 30%, #d8f8ff 0%, var(--cyan) 60%, #0086a3 100%);
}
.nv-ball.attesa {
    background: rgba(255, 184, 0, 0.12);
    color: var(--gold);
    border: 1px solid var(--gold);
    box-shadow: none;
}
.nv-balls-fitte { gap: 4px; }
.nv-balls-fitte .nv-ball { width: 28px; height: 28px; font-size: 11px; }
.nv-balls-mini { gap: 4px; }
.nv-balls-mini .nv-ball { width: 28px; height: 28px; font-size: 11px; }
.nv-oro {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 6px;
    margin-top: 14px;
    padding-top: 12px;
    border-top: 1px solid var(--border);
    font-size: 11px;
    color: var(--text-3);
}
.nv-oro span { margin-left: 6px; }
.nv-oro span:first-child { margin-left: 0; }
.nv-gioco .feature-tags { margin-top: auto; padding-top: 16px; }
.nv-nota {
    max-width: 760px;
    margin: 32px auto 0;
    text-align: center;
    color: var(--text-2);
    font-size: 15px;
    line-height: 1.6;
}

/* ── Nuove funzioni ─────────────────────────────────────────── */
.nv-griglia {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}
.nv-kpi {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin-bottom: 16px;
}
.nv-kpi div {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 8px 10px;
}
.nv-kpi small {
    display: block;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 1px;
    color: var(--text-3);
}
.nv-kpi b {
    font-family: 'JetBrains Mono', monospace;
    font-size: 22px;
    font-weight: 800;
    color: var(--cyan);
}
.nv-progress {
    position: relative;
    height: 24px;
    border-radius: 6px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    overflow: hidden;
}
.nv-progress i {
    position: absolute;
    top: 0; bottom: 0; left: 0;
    background: var(--green);
    box-shadow: 0 0 14px rgba(61, 220, 132, 0.4);
}
.nv-progress span {
    position: absolute;
    left: 10px; top: 50%;
    transform: translateY(-50%);
    font-family: 'JetBrains Mono', monospace;
    font-size: 11px;
    font-weight: 800;
    color: var(--bg-dark);
}

.nv-divs { display: flex; flex-direction: column; gap: 5px; }
.nv-div {
    display: grid;
    grid-template-columns: 78px minmax(0, 1fr) 42px;
    align-items: center;
    gap: 8px;
    font-size: 11px;
    color: var(--text-3);
}
.nv-asse { position: relative; height: 14px; }
.nv-asse::before {
    content: "";
    position: absolute;
    left: 50%; top: 0; bottom: 0;
    width: 1px;
    background: var(--border-light);
}
.nv-asse i { position: absolute; top: 2px; bottom: 2px; border-radius: 3px; }
.nv-asse i.su { left: 50%; background: var(--green); }
.nv-asse i.giu { right: 50%; background: var(--red); }
.nv-div b {
    text-align: right;
    font-family: 'JetBrains Mono', monospace;
    font-weight: 800;
}
.nv-div b.su { color: var(--green); }
.nv-div b.giu { color: var(--red); }
.nv-assi {
    display: flex;
    justify-content: space-between;
    margin: 8px 50px 0 86px;
    font-size: 10px;
    color: var(--text-mute);
}

.nv-tabellone {
    display: grid;
    grid-template-columns: repeat(10, minmax(0, 1fr));
    gap: 3px;
}
.nv-cella {
    aspect-ratio: 1;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'JetBrains Mono', monospace;
    font-size: 10px;
    font-weight: 700;
    color: var(--text-2);
    background: var(--bg-surface);
}
.nv-cella.p2 { background: var(--green); color: var(--bg-dark); }
.nv-cella.p1 { background: rgba(61, 220, 132, 0.35); color: var(--text); }
.nv-cella.m1 { background: rgba(255, 51, 102, 0.35); color: var(--text); }
.nv-legenda {
    display: flex;
    flex-wrap: wrap;
    gap: 6px 14px;
    margin-top: 12px;
    font-size: 10px;
    color: var(--text-3);
}
.nv-legenda span { display: inline-flex; align-items: center; gap: 5px; }
.nv-legenda i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.nv-legenda i.p2 { background: var(--green); }
.nv-legenda i.p1 { background: rgba(61, 220, 132, 0.35); }
.nv-legenda i.m1 { background: rgba(255, 51, 102, 0.35); }

.nv-vs {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
    margin: 14px 0 12px;
}
.nv-vs div {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 8px;
    padding: 8px 10px;
}
.nv-vs small {
    display: block;
    font-size: 9px;
    font-weight: 800;
    letter-spacing: .8px;
    color: var(--text-3);
}
.nv-vs b {
    font-family: 'JetBrains Mono', monospace;
    font-size: 26px;
    font-weight: 900;
    color: var(--text-2);
}
.nv-vs span { font-size: 10px; color: var(--text-3); margin-left: 4px; }
.nv-vs .meglio { border-color: var(--green); }
.nv-vs .meglio b { color: var(--green); }
.nv-blocchi {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 5px;
}
.nv-blocco {
    display: flex;
    gap: 3px;
    padding: 4px 6px;
    border: 1px solid var(--border);
    border-radius: 6px;
    background: var(--bg-card);
}
.nv-blocco .nv-ball { width: 24px; height: 24px; font-size: 10px; }

.nv-cerca {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 14px;
}
.nv-cerca-lbl { font-size: 11px; color: var(--text-3); font-weight: 700; }
.nv-cerca-box {
    font-family: 'JetBrains Mono', monospace;
    font-size: 14px;
    font-weight: 800;
    color: var(--text);
    background: var(--bg-card);
    border: 1px solid var(--cyan);
    border-radius: 6px;
    padding: 5px 12px;
    box-shadow: 0 0 10px rgba(0, 217, 255, 0.2);
}
.nv-coppie {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 6px;
}
.nv-coppia {
    display: flex;
    align-items: center;
    gap: 4px;
    padding: 6px 8px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 8px;
}
.nv-coppia .nv-ball { width: 26px; height: 26px; font-size: 10px; }
.nv-coppia b {
    margin-left: auto;
    text-align: right;
    font-family: 'JetBrains Mono', monospace;
    font-size: 15px;
    font-weight: 800;
    color: var(--cyan);
    line-height: 1.1;
}
.nv-coppia b small {
    display: block;
    font-family: 'Inter', sans-serif;
    font-size: 9px;
    font-weight: 500;
    color: var(--text-3);
}

.nv-passi { display: flex; flex-direction: column; gap: 6px; }
.nv-passi div {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 7px 10px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 8px;
    font-size: 12px;
    color: var(--text-2);
}
.nv-passi b {
    width: 22px;
    height: 22px;
    flex-shrink: 0;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    color: var(--cyan);
    border: 1px solid var(--cyan);
}
.nv-pillwrap { flex-wrap: wrap; }
.nv-altre { margin-top: 32px; }

/* ── Responsive delle parti nuove ─────────────────────────────── */
/* ⚠️ Sempre minmax(0, 1fr): un `1fr` nudo in una griglia prende come
   minimo la larghezza del contenuto e allarga la pagina oltre lo
   schermo (preso sul sito rifatto e scartato, 2026-09-17). */
@media (max-width: 1180px) {
    .nav-links a { padding: 8px 8px; font-size: 13px; }
    .nav-links a.attivo::after { left: 8px; right: 8px; }
}
@media (max-width: 1024px) {
    .nv-griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .features-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    /* la barra va su due righe: logo e acquisto sopra, sezioni sotto */
    .nav-container { flex-wrap: wrap; row-gap: 6px; padding-bottom: 8px; }
    .nav-links-wrap {
        order: 3;
        flex-basis: 100%;
        margin: 0 -32px;
    }
    .nav-links {
        overflow-x: auto;
        scrollbar-width: none;
        padding: 0 32px;
    }
    .nav-links::-webkit-scrollbar { display: none; }
}
@media (max-width: 700px) {
    /* le sezioni restano visibili anche su telefono: prima sparivano */
    .nav-links { display: flex; padding: 0 20px; }
    .nav-links-wrap { margin: 0 -20px; }
    /* su telefono il banner promo scorre via, resta fissa solo la barra */
    .promo-banner { position: relative; }
    .navbar { top: 0; }
    .nv-griglia { grid-template-columns: minmax(0, 1fr); }
    .features-grid { grid-template-columns: minmax(0, 1fr); }
    .nv-giochi, .nv-novita { padding: 60px 16px; }
}

/* riga «ora anche 10eLotto e SuperEnalotto» nel sottotitolo dell'apertura */
.hero-novita {
    display: inline-block;
    margin: 6px 0 4px;
    color: var(--gold);
    font-weight: 600;
}
.hero-novita strong { color: var(--gold); }

/* ⚠️ Difetto del sito originale, trovato il 2026-09-17: su telefono una
   schermata della sezione «Il software» era larga 935 px a qualunque
   larghezza di schermo e, con `overflow-x: hidden` sul body, veniva
   TAGLIATA invece di far scorrere la pagina. Le celle di una griglia
   `1fr` prendono come minimo la larghezza del contenuto: min-width 0
   le lascia stringere, e il mockup largo scorre dentro la sua finestra. */
.screenshots-grid > *, .screens-inline > * { min-width: 0; }
.screen-window { max-width: 100%; }
@media (max-width: 1024px) {
    .sw-body { overflow-x: auto; }
    .sw-table { min-width: 560px; }
}
/* le pillole delle ruote vanno a capo invece di uscire dalla card */
.sb-pillbar { flex-wrap: wrap; }
/* «STRUMENTI PROFESSIONALI» a 36px con spaziatura larga non entra in 320px */
@media (max-width: 480px) {
    .problem-bridge-title { font-size: 22px; letter-spacing: 2px; }
    /* i numeroni dei consigliati: 5 da 56px non entrano in una card stretta */
    .sb-bignumbers { flex-wrap: wrap; gap: 6px; }
    .bn { width: 44px; height: 44px; font-size: 18px; }
    .sb-title { overflow-wrap: anywhere; }
    /* il banner «Offerta lancio» chiedeva 280px di testo: con margini e
       riempimenti da 32px a 320px ne restavano 192 */
    .limited-banner { margin: 32px 16px; padding: 22px 18px; }
    .lb-text { min-width: 0; }
    .lb-text h3 { font-size: 20px; }
    /* «381.260» a corpo 36 non entrava nella mezza colonna e veniva tagliato */
    .ps-num { font-size: 26px; }
}
/* le due linee accanto al titolo sporgono di 60px+24px per lato: sotto i
   900px escono dallo schermo (e il body le taglia a meta') */
@media (max-width: 900px) {
    .problem-bridge-title::before, .problem-bridge-title::after { display: none; }
}
/* titoli lunghi nella barra delle finestre finte: puntini, non sbordo */
.screen-bar { min-width: 0; }
.screen-title {
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

/* ⚠️ LA CAUSA VERA dello sbordo della sezione «Il software» (sito
   originale): `.screens-inline .screenshots-grid` fissa 3 colonne con
   specificita' 0,2,0, e le regole per tablet e telefono erano scritte su
   `.screenshots-grid` (0,1,0): non si applicavano MAI. Sul telefono le tre
   card restavano affiancate — prima in una sezione larga 935px e tagliata
   dal body, poi (con min-width 0) in tre colonne schiacciate a zero.
   Stessa specificita', stesso selettore. */
@media (max-width: 1024px) {
    .screens-inline .screenshots-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .screens-inline .screenshots-grid { grid-template-columns: minmax(0, 1fr); }
}

/* ═══════════════════════════════════════════════════════════════
   SCREENSHOT VERI (2026-09-17) — al posto dei mockup in HTML
═══════════════════════════════════════════════════════════════ */

/* apertura: la schermata vera dentro la finestra inclinata */
.mockup-foto {
    display: block;
    width: 100%;
    height: auto;
}


/* ── Tre giochi: il nome al posto dell'icona ───────────────────── */
.nv-gioco-testa { margin-bottom: 14px; }
.nv-gioco-testa h3 { font-size: 24px; margin: 0; }
.nv-striscia {
    margin: 32px auto 0;
    max-width: 1600px;
}
.nv-striscia img {
    display: block;
    width: 100%;
    height: auto;
    border-radius: 12px;
    border: 1px solid var(--border);
    box-shadow: var(--shadow-md);
}
.nv-striscia figcaption {
    margin-top: 10px;
    text-align: center;
    font-size: 13px;
    color: var(--text-3);
}

/* ── Novità: quattro schermate vere ───────────────────────────── */
.nv-griglia-foto {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
}
.nv-foto {
    margin: 0;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
    transition: border-color .3s, transform .3s;
}
.nv-foto:hover { border-color: var(--cyan); transform: translateY(-4px); }
.nv-foto-img {
    background: var(--bg-dark);
    aspect-ratio: 16 / 10;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid var(--border);
}
.nv-foto-img img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
}
.nv-foto figcaption { padding: 20px 24px 24px; }
.nv-foto h3 { font-size: 20px; font-weight: 800; margin-bottom: 8px; }
.nv-foto p { color: var(--text-2); font-size: 14px; line-height: 1.6; }
.nv-foto p strong { color: var(--text); }

.nv-altre {
    margin-top: 24px;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.nv-voce {
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-left: 3px solid var(--cyan);
    border-radius: 10px;
    padding: 14px 16px;
}
.nv-voce h4 { font-size: 15px; font-weight: 800; margin-bottom: 4px; }
.nv-voce p { font-size: 13px; color: var(--text-2); line-height: 1.5; }

@media (max-width: 1024px) {
    .nv-altre { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .nv-griglia-foto { grid-template-columns: minmax(0, 1fr); }
    .nv-altre { grid-template-columns: minmax(0, 1fr); }
}

/* ═══════════════════════════════════════════════════════════════
   CARRELLO (2026-09-17) — pannello laterale, pagamento con Stripe
═══════════════════════════════════════════════════════════════ */
.sr-only {
    position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
    overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.nav-azioni { display: flex; align-items: center; gap: 10px; flex-shrink: 0; }
.nav-carrello {
    position: relative;
    display: inline-flex; align-items: center; justify-content: center;
    width: 42px; height: 42px;
    background: var(--bg-surface);
    color: var(--text);
    border: 1px solid var(--border);
    border-radius: 10px;
    cursor: pointer;
    transition: border-color .2s, color .2s, transform .2s;
}
.nav-carrello:hover { border-color: var(--cyan); color: var(--cyan); transform: translateY(-2px); }
.nav-carrello:focus-visible, .carrello :focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
.nav-carrello-num {
    position: absolute; top: -6px; right: -6px;
    min-width: 20px; height: 20px; padding: 0 5px;
    border-radius: 10px;
    background: var(--gold); color: #1a0a00;
    font-size: 11px; font-weight: 900; line-height: 20px; text-align: center;
    box-shadow: 0 0 0 2px var(--bg-dark);
}

body.carrello-aperto { overflow: hidden; }
.carrello-velo {
    position: fixed; inset: 0; z-index: 300;
    background: rgba(5, 8, 12, .7);
    backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
    opacity: 0; transition: opacity .3s ease;
}
.carrello-velo.aperto { opacity: 1; }
.carrello {
    position: fixed; top: 0; right: 0; bottom: 0; z-index: 301;
    width: min(440px, 100%);
    display: flex; flex-direction: column;
    background: var(--bg-card);
    border-left: 1px solid var(--border);
    box-shadow: var(--shadow-lg);
    transform: translateX(100%);
    transition: transform .32s cubic-bezier(.2, .8, .2, 1);
    padding-top: env(safe-area-inset-top, 0px);
}
.carrello.aperto { transform: none; }
@media (prefers-reduced-motion: reduce) {
    .carrello, .carrello-velo { transition: none; }
}
.carrello-testa {
    display: flex; align-items: center; justify-content: space-between;
    padding: 18px 22px;
    border-bottom: 1px solid var(--border);
}
.carrello-testa h2 { font-size: 20px; font-weight: 900; }
.carrello-chiudi {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px;
    background: none; color: var(--text-2);
    border: 1px solid var(--border); border-radius: 10px;
    cursor: pointer; transition: color .2s, border-color .2s;
}
.carrello-chiudi:hover { color: var(--text); border-color: var(--text-3); }

.carrello-passi {
    display: flex; gap: 6px;
    list-style: none;
    padding: 12px 22px;
    font-size: 12px; font-weight: 600; color: var(--text-3);
    border-bottom: 1px solid var(--border);
    background: var(--bg-surface);
}
.carrello-passi li { display: flex; align-items: center; gap: 6px; flex: 1 1 auto; min-width: 0; white-space: nowrap; }
.carrello-passi li + li::before {
    content: ""; flex: 0 0 10px; height: 1px; background: var(--border-light); margin-right: 2px;
}
.carrello-passi span {
    display: inline-flex; align-items: center; justify-content: center;
    width: 20px; height: 20px; flex-shrink: 0;
    border-radius: 50%;
    border: 1px solid var(--border-light);
    font-size: 11px; font-weight: 800;
}
.carrello-passi li.fatto { color: var(--cyan); }
.carrello-passi li.fatto span { background: var(--cyan); border-color: var(--cyan); color: var(--bg-dark); }

.carrello-form { flex: 1; display: flex; flex-direction: column; min-height: 0; }
.carrello-corpo {
    flex: 1; min-height: 0;
    overflow-y: auto; overscroll-behavior: contain;
    padding: 18px 22px 22px;
    display: flex; flex-direction: column; gap: 18px;
}

.carrello-righe { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.cr-riga {
    display: flex; gap: 14px; justify-content: space-between; align-items: flex-start;
    padding: 14px 16px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 12px;
}
.cr-riga:first-child { border-color: rgba(0, 217, 255, .45); }
.cr-info { min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.cr-info strong { font-size: 15px; font-weight: 800; line-height: 1.3; }
.cr-info span { font-size: 12.5px; color: var(--text-3); line-height: 1.45; }
.cr-prezzo { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; flex-shrink: 0; }
.cr-prezzo s { font-size: 12px; color: var(--text-mute); }
.cr-prezzo strong { font-size: 18px; font-weight: 900; font-family: 'JetBrains Mono', monospace; }
.cr-togli {
    margin-top: 4px;
    background: none; border: 0; padding: 2px 0;
    font: inherit; font-size: 12px; color: var(--text-3);
    text-decoration: underline; text-underline-offset: 2px;
    cursor: pointer;
}
.cr-togli:hover { color: var(--red); }

.carrello-vuoto {
    text-align: center;
    padding: 26px 16px;
    border: 1px dashed var(--border-light);
    border-radius: 12px;
    color: var(--text-2);
}
.carrello-vuoto p { margin-bottom: 14px; }
.cr-aggiungi {
    background: var(--cyan); color: var(--bg-dark);
    border: 0; border-radius: 10px;
    padding: 12px 18px;
    font: inherit; font-weight: 800; font-size: 14px;
    cursor: pointer;
}

.carrello-extra h3 {
    font-size: 12px; font-weight: 800; letter-spacing: 1.2px;
    text-transform: uppercase; color: var(--text-3);
    margin-bottom: 10px;
}
#carrello-extra-lista { display: flex; flex-direction: column; gap: 8px; }
.ce-voce {
    display: flex; align-items: center; gap: 12px;
    width: 100%;
    text-align: left;
    background: transparent;
    border: 1px dashed var(--border-light);
    border-radius: 12px;
    padding: 12px 14px;
    color: var(--text);
    font: inherit;
    cursor: pointer;
    transition: border-color .2s, background .2s;
}
.ce-voce:hover { border-color: var(--cyan); background: rgba(0, 217, 255, .04); }
.ce-voce.scelto { border-style: solid; border-color: var(--green); background: rgba(61, 220, 132, .06); }
.ce-segno {
    display: inline-flex; align-items: center; justify-content: center;
    width: 26px; height: 26px; flex-shrink: 0;
    border-radius: 8px;
    border: 1px solid var(--border-light);
    font-weight: 900; font-size: 15px; color: var(--cyan);
}
.ce-voce.scelto .ce-segno { background: var(--green); border-color: var(--green); color: var(--bg-dark); }
.ce-testo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.ce-testo strong { font-size: 14px; font-weight: 800; }
.ce-testo span { font-size: 12px; color: var(--text-3); line-height: 1.4; }
.ce-prezzo {
    flex-shrink: 0;
    display: flex; flex-direction: column; align-items: flex-end;
    font-family: 'JetBrains Mono', monospace; font-weight: 800; font-size: 14px;
}
.ce-prezzo s { font-size: 11px; color: var(--text-mute); font-weight: 500; }

.cr-campo { display: flex; flex-direction: column; gap: 6px; }
.cr-campo label { font-size: 13px; font-weight: 700; color: var(--text-2); }
.cr-campo input {
    width: 100%;
    background: var(--bg-dark);
    color: var(--text);
    border: 1px solid var(--border-light);
    border-radius: 10px;
    padding: 12px 14px;
    font: inherit;
    font-size: 16px; /* 16px: su iPhone la pagina non si ingrandisce */
    transition: border-color .2s, box-shadow .2s;
}
.cr-campo input::placeholder { color: var(--text-mute); }
.cr-campo input:focus { outline: none; border-color: var(--cyan); box-shadow: 0 0 0 3px rgba(0, 217, 255, .18); }
.cr-campo input[aria-invalid="true"] { border-color: var(--red); box-shadow: 0 0 0 3px rgba(255, 51, 102, .18); }
#carrello-codice { font-family: 'JetBrains Mono', monospace; letter-spacing: 1px; }
.cr-campo small { font-size: 12px; color: var(--text-3); }

.cr-sconto summary {
    cursor: pointer;
    font-size: 13px; font-weight: 700; color: var(--cyan);
    list-style: none;
    width: fit-content;
}
.cr-sconto summary::-webkit-details-marker { display: none; }
.cr-sconto summary::after { content: " +"; }
.cr-sconto[open] summary::after { content: " \2212"; }
.cr-sconto[open] summary { margin-bottom: 8px; }

.cr-termini {
    display: flex; gap: 10px; align-items: flex-start;
    font-size: 13px; color: var(--text-2); line-height: 1.5;
    cursor: pointer;
}
.cr-termini input {
    width: 18px; height: 18px; margin-top: 1px; flex-shrink: 0;
    accent-color: var(--cyan);
}
.cr-termini input[aria-invalid="true"] { outline: 2px solid var(--red); outline-offset: 2px; }
.cr-termini a { color: var(--cyan); }

.carrello-piede {
    border-top: 1px solid var(--border);
    background: var(--bg-surface);
    padding: 16px 22px calc(18px + env(safe-area-inset-bottom, 0px));
    display: flex; flex-direction: column; gap: 12px;
}
.cr-avviso {
    font-size: 13px; line-height: 1.45;
    color: #ffd0da;
    background: rgba(255, 51, 102, .1);
    border: 1px solid rgba(255, 51, 102, .4);
    border-radius: 10px;
    padding: 10px 12px;
}
.cr-totale { display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; }
.cr-totale > span:first-child { font-weight: 700; color: var(--text-2); }
.cr-totale-cifra { display: flex; flex-direction: column; align-items: flex-end; }
.cr-totale-cifra small { font-size: 12px; font-weight: 700; color: var(--green); }
.cr-totale-cifra strong { font-size: 30px; font-weight: 900; line-height: 1.1; font-family: 'JetBrains Mono', monospace; }
.cr-paga {
    display: flex; align-items: center; justify-content: center; gap: 8px;
    width: 100%;
    padding: 16px 18px;
    border: 0; border-radius: 12px;
    background: var(--grad-1);
    color: var(--bg-dark);
    font: inherit; font-size: 16px; font-weight: 900;
    cursor: pointer;
    box-shadow: var(--shadow-cyan);
    transition: transform .2s, box-shadow .2s, opacity .2s;
}
.cr-paga:hover:not(:disabled) { transform: translateY(-2px); box-shadow: 0 0 50px var(--cyan-glow); }
.cr-paga:disabled { opacity: .45; cursor: not-allowed; box-shadow: none; }
.cr-paga.in-corso { opacity: .8; cursor: progress; }
.cr-sicuro { font-size: 11.5px; color: var(--text-3); text-align: center; line-height: 1.45; }
.cr-sicuro strong { color: var(--text-2); }
.carrello-form.cr-spento .cr-campo,
.carrello-form.cr-spento .cr-sconto,
.carrello-form.cr-spento .cr-termini { opacity: .45; pointer-events: none; }

@media (max-width: 700px) {
    .nav-carrello { width: 38px; height: 38px; }
    .nav-azioni { gap: 8px; }
}
@media (max-width: 480px) {
    .carrello { border-left: 0; }
    .carrello-testa, .carrello-passi { padding-left: 16px; padding-right: 16px; }
    .carrello-corpo { padding: 16px; }
    .carrello-piede { padding-left: 16px; padding-right: 16px; }
    .carrello-passi { font-size: 11px; gap: 4px; }
    .carrello-passi li + li::before { flex-basis: 6px; }
    .nav-cta-arrow { display: none; }
}

/* `display:flex` qui sopra vincerebbe su [hidden]: da chiuso il pannello restava
   disegnato fuori schermo e i suoi campi prendevano il fuoco col Tab */
.carrello[hidden], .carrello [hidden] { display: none !important; }

/* su telefono «Acquista» c'è già nel pulsante fisso in basso: in alto resta
   il carrello, e logo e carrello stanno su una riga (prima la barra ne
   occupava tre, fissa sopra la pagina) */
@media (max-width: 700px) {
    .nav-azioni .nav-cta { display: none; }
}
@media (max-width: 360px) {
    .nav-container { column-gap: 8px; }
    .nav-logo { font-size: 14px; gap: 6px; }
    .nav-logo .logo-bolt { font-size: 20px; }
}

/* ═══════════════════════════════════════════════════════════════
   IL SOFTWARE (2026-09-17) — presentazione continua, testo a lato
   Sostituisce la galleria: markup da sito_strumenti/galleria_slide.py
═══════════════════════════════════════════════════════════════ */
.slider {
    max-width: 1800px;
    margin: 0 auto;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    overflow: hidden;
}
.slider-schede {
    background: var(--bg-surface);
    flex-wrap: nowrap;
    overflow-x: auto;
    scrollbar-width: none;
}
.slider-schede::-webkit-scrollbar { display: none; }
.slider-scheda {
    appearance: none;
    background: none;
    border-top: 0;
    border-left: 0;
    border-right: 0;
    font-family: inherit;
    white-space: nowrap;
    cursor: pointer;
    transition: color .2s, border-color .2s;
}
.slider-scheda:hover { color: var(--text); }
.slider-scheda:focus-visible { outline: 2px solid var(--cyan); outline-offset: -2px; }

.slider-corpo {
    display: grid;
    /* la foto si prende tutto lo spazio che avanza, il testo resta leggibile */
    grid-template-columns: minmax(0, 1fr) clamp(300px, 27%, 430px);
}
.slider-foto {
    background: var(--bg-dark);
    display: flex;
    align-items: center;
    justify-content: center;
    aspect-ratio: 16 / 9;
    min-width: 0;
}
.slider-foto img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    transition: opacity .25s ease;
}
.slider-foto img.cambio { opacity: 0; }

.slider-testo {
    display: flex;
    flex-direction: column;
    justify-content: center;   /* niente vuoto in mezzo sugli schermi alti */
    padding: 26px 28px;
    border-left: 1px solid var(--border);
    min-width: 0;
}
.slider-conta {
    font-family: 'JetBrains Mono', monospace;
    font-size: 12px;
    font-weight: 700;
    color: var(--text-mute);
    letter-spacing: 1px;
    margin-bottom: 10px;
}
.slider-conta strong { color: var(--cyan); font-size: 15px; }
.slider-testo h4 {
    font-size: 21px;
    font-weight: 800;
    line-height: 1.25;
    margin-bottom: 10px;
}
.slider-testo > p#slider-desc {
    color: var(--text-2);
    font-size: 14.5px;
    line-height: 1.65;
}
.slider-comandi {
    display: flex;
    gap: 8px;
    margin-top: 20px;
}
.slider-freccia {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: var(--bg-surface);
    color: var(--text-2);
    border: 1px solid var(--border);
    border-radius: 10px;
    cursor: pointer;
    transition: color .2s, border-color .2s;
}
.slider-freccia:hover { color: var(--cyan); border-color: var(--cyan); }
.slider-freccia:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
.slider-freccia .ic-via { display: none; }
.slider.in-pausa .slider-freccia .ic-via { display: block; }
.slider.in-pausa .slider-freccia .ic-pausa { display: none; }

.slider-barra {
    margin-top: 16px;
    height: 3px;
    border-radius: 2px;
    background: var(--border);
    overflow: hidden;
}
.slider-barra span {
    display: block;
    height: 100%;
    width: 0;
    background: var(--grad-1);
}
@keyframes riempiBarra {
    from { width: 0; }
    to { width: 100%; }
}

@media (max-width: 900px) {
    .slider-corpo { grid-template-columns: minmax(0, 1fr); }
    .slider-testo { border-left: 0; border-top: 1px solid var(--border); padding: 20px 20px 22px; }
    .slider-testo h4 { font-size: 19px; }
}
@media (max-width: 480px) {
    .slider { border-radius: 12px; }
    .slider-testo { padding: 16px 16px 18px; }
    .slider-freccia { width: 44px; height: 44px; }
}

/* Novità 3.1: solo voci brevi, le foto stanno nella presentazione sopra */
.nv-altre-sola { margin-top: 0; gap: 14px; }
.nv-altre-sola .nv-voce { padding: 16px 18px; }
.nv-altre-sola .nv-voce h4 { font-size: 16px; }
.nv-altre-sola .nv-voce p { font-size: 13.5px; }

/* chi chiede meno animazioni: le schermate cambiano di colpo, senza dissolvenza
   (lo scorrimento automatico resta: c'è il pulsante di pausa) */
@media (prefers-reduced-motion: reduce) {
    /* solo la dissolvenza della foto: la barra del tempo deve riempirsi
       comunque, è lì per dire quanto manca al cambio */
    .slider-foto img { transition: none !important; }
}

/* le foto delle novità sono ritagliate in 16:9: niente bande nere ai lati */
.nv-foto-img { aspect-ratio: 16 / 9; }

/* «Presto altri giochi»: striscia sotto le tre card */
.nv-presto {
    max-width: 1600px;
    margin: 24px auto 0;
    display: flex; align-items: center; gap: 14px; flex-wrap: wrap;
    padding: 16px 20px;
    background: var(--bg-card);
    border: 1px dashed var(--border-light);
    border-radius: 12px;
}
.nv-presto-tag {
    flex-shrink: 0;
    padding: 5px 12px; border-radius: 20px;
    background: rgba(255, 184, 0, .12); color: var(--gold);
    border: 1px solid rgba(255, 184, 0, .45);
    font-size: 11px; font-weight: 900; letter-spacing: 1.2px;
}
.nv-presto p { color: var(--text-2); font-size: 14.5px; line-height: 1.55; min-width: 0; }
.nv-presto p strong { color: var(--text); }

/* ═══════════════════════════════════════════════════════════════
   VINCITE — nastro che scorre con le schedine vere
═══════════════════════════════════════════════════════════════ */
.vincite { padding: 90px 20px; }
.vinci-nastro {
    position: relative;
    overflow: hidden;
    padding: 6px 0;
    /* i bordi sfumano: le schedine entrano ed escono senza tagli netti */
    -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
    mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent);
}
.vinci-pista {
    display: flex;
    width: max-content;
    animation: scorriVincite 44s linear infinite;
}
.vinci-gruppo {
    display: flex;
    gap: 22px;
    padding-right: 22px;   /* il vuoto fra i due gruppi è uguale agli altri */
}
@keyframes scorriVincite {
    from { transform: translateX(0); }
    to { transform: translateX(-50%); }
}
/* il rullo gira sempre: con le animazioni di sistema spente restava fermo
   (stesso inciampo della presentazione, 2026-09-17) */

.vinci-carta {
    margin: 0;
    width: 268px;
    flex-shrink: 0;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    box-shadow: var(--shadow-md);
}
.vinci-foto {
    background: var(--bg-dark);
    height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-bottom: 1px solid var(--border);
}
.vinci-foto img {
    display: block;
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
}
.vinci-carta figcaption {
    display: flex;
    flex-direction: column;
    gap: 3px;
    padding: 14px 16px 16px;
}
.vinci-tipo {
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 1.6px;
    text-transform: uppercase;
    color: var(--green);
}
.vinci-numeri {
    font-family: 'JetBrains Mono', monospace;
    font-size: 26px;
    font-weight: 800;
    line-height: 1.15;
}
.vinci-dove { font-size: 12.5px; color: var(--text-3); }

.vinci-nota {
    max-width: 860px;
    margin: 26px auto 0;
    text-align: center;
    font-size: 13px;
    line-height: 1.6;
    color: var(--text-3);
}
.vinci-nota strong { color: var(--text-2); }

@media (max-width: 700px) {
    .vincite { padding: 70px 16px; }
    .vinci-carta { width: 220px; }
    .vinci-foto { height: 250px; }
    .vinci-numeri { font-size: 22px; }
}


/* ═══ CONFRONTO a scomparsa: fuori dallo scorrimento, si apre dal menu ═══ */
#features[hidden] { display: none !important; }
.chiudi-confronto-riga { text-align: center; margin-top: 34px; }
.chiudi-confronto {
    background: none;
    color: var(--text-2);
    border: 1px solid var(--border-light);
    border-radius: 10px;
    padding: 11px 20px;
    font: inherit;
    font-weight: 700;
    cursor: pointer;
    transition: color .2s, border-color .2s;
}
.chiudi-confronto:hover { color: var(--text); border-color: var(--cyan); }
.chiudi-confronto:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }

/* ═══════════════════════════════════════════════════════════════
   TEMA CHIARO — PROVA (2026-09-18)
   Si accende con  <html data-tema="chiaro">  e si spegne togliendo
   l'attributo: il tema scuro resta intatto qui sopra.
═══════════════════════════════════════════════════════════════ */
html[data-tema="chiaro"] {
    --bg-dark: #f4f7fb;
    --bg-card: #ffffff;
    --bg-surface: #eef2f8;
    --bg-hover: #e4eaf3;
    --border: #d8dfe9;
    --border-light: #c2ccda;

    --text: #101922;
    --text-2: #3d4a5c;
    --text-3: #5d6b7c;
    --text-mute: #8a97a6;

    /* accenti più scuri: sul bianco quelli fluo non si leggono */
    --cyan: #0284a8;
    --cyan-glow: rgba(2, 132, 168, 0.28);
    --green: #12864b;
    --red: #d51f48;
    --gold: #a06c00;
    --purple: #6b3fc4;

    --grad-1: linear-gradient(135deg, #0284a8 0%, #12864b 100%);
    --grad-2: linear-gradient(135deg, #a06c00 0%, #d51f48 100%);
    --grad-hero: radial-gradient(ellipse at top, rgba(2, 132, 168, 0.12), transparent 55%);

    --shadow-md: 0 4px 20px rgba(16, 25, 34, 0.08);
    --shadow-lg: 0 14px 40px rgba(16, 25, 34, 0.12);
    --shadow-cyan: 0 6px 24px rgba(2, 132, 168, 0.22);
}

/* fondali scritti a mano nel tema scuro: qui vanno schiariti */
html[data-tema="chiaro"] .navbar { background: rgba(255, 255, 255, 0.92); }
html[data-tema="chiaro"] .hero-grid { opacity: .5; }
html[data-tema="chiaro"] .footer { background: var(--bg-surface); }
html[data-tema="chiaro"] .trust-strip {
    background: linear-gradient(90deg, rgba(2,132,168,.06), rgba(18,134,75,.06) 50%, rgba(2,132,168,.06));
}
html[data-tema="chiaro"] ::-webkit-scrollbar-track { background: var(--bg-surface); }
html[data-tema="chiaro"] ::selection { background: var(--cyan); color: #fff; }

/* le schermate del programma sono scure: su bianco vogliono una cornice */
html[data-tema="chiaro"] .slider-foto,
html[data-tema="chiaro"] .nv-foto-img,
html[data-tema="chiaro"] .galleria-finestra { background: #0d1219; }
/* le schedine sono di carta chiara: niente cornice scura intorno */
html[data-tema="chiaro"] .vinci-foto { background: var(--bg-surface); }
html[data-tema="chiaro"] .mockup-window { box-shadow: var(--shadow-lg); }

/* il riquadro dell'apertura mostra il programma, che è scuro: dentro
   di lui torna la tavolozza scura, anche col sito chiaro */
html[data-tema="chiaro"] .mockup-window {
    --bg-card: #161b22;
    --bg-surface: #1c2128;
    --bg-dark: #0a0e14;
    --bg-hover: #232831;
    --border: #30363d;
    --border-light: #3a4150;
    --text: #f0f6fc;
    --text-2: #b1bac4;
    --text-3: #8b949e;
    --text-mute: #6e7681;
    --cyan: #00D9FF;
    --green: #3DDC84;
    --gold: #FFB800;
    --red: #FF3366;
    background: #161b22;
    color: #f0f6fc;
    border-color: #30363d;
}

/* ⚠ le sezioni hanno display:grid/flex, che batte l'attributo hidden:
   senza questa regola le pagine chiuse restavano disegnate */
.pagina[hidden], [data-home][hidden] { display: none !important; }

/* ═══════════════════════════════════════════════════════════════
   TEMA CHIARO — seconda passata (2026-09-18)
   Contrasti più decisi e aura dorata dietro al riquadro dell'app.
═══════════════════════════════════════════════════════════════ */
html[data-tema="chiaro"] {
    /* testi più scuri: sul bianco i grigi chiari sparivano */
    --text: #0b1420;
    --text-2: #33414f;
    --text-3: #4d5b6b;
    --text-mute: #6b7a8c;
    --border: #ccd6e2;
    --border-light: #aab8c9;
}

/* ── Aura dorata «leggendaria» dietro al riquadro del programma ── */
html[data-tema="chiaro"] .mockup-glow {
    width: 150%;
    height: 150%;
    opacity: 1;
    background:
        radial-gradient(ellipse at 50% 50%, rgba(255, 205, 60, .95) 0%, rgba(255, 176, 0, .72) 26%, rgba(255, 140, 0, .34) 46%, rgba(255, 120, 0, .10) 64%, transparent 78%);
    filter: blur(46px);
    animation: auraOro 5s ease-in-out infinite;
}
@keyframes auraOro {
    0%, 100% { transform: translate(-50%, -50%) scale(1); opacity: .9; }
    50% { transform: translate(-50%, -50%) scale(1.06); opacity: 1; }
}
/* un secondo alone più stretto e caldo, attaccato alla finestra */
html[data-tema="chiaro"] .mockup-window {
    box-shadow:
        0 0 0 2px rgba(255, 190, 20, .85),
        0 18px 50px rgba(20, 30, 45, .30),
        0 0 90px rgba(255, 176, 0, .75);
}
html[data-tema="chiaro"] .hero-glow {
    background: radial-gradient(circle, rgba(2, 132, 168, .22), transparent 62%);
}

/* ── Contrasti del testo ────────────────────────────────────── */
html[data-tema="chiaro"] .hero-subtitle,
html[data-tema="chiaro"] .section-sub,
html[data-tema="chiaro"] .footer-desc { color: var(--text-2); }
html[data-tema="chiaro"] .trust-item,
html[data-tema="chiaro"] .ts-item { color: var(--text-2); }

/* etichette di sezione: prima erano chiare su chiaro */
html[data-tema="chiaro"] .section-tag {
    background: rgba(2, 132, 168, .10);
    border-color: rgba(2, 132, 168, .35);
    color: #046a87;
}
html[data-tema="chiaro"] .hero-badge {
    background: rgba(2, 132, 168, .09);
    border-color: rgba(2, 132, 168, .35);
    color: #046a87;
}
html[data-tema="chiaro"] .nv-nuovo,
html[data-tema="chiaro"] .nav-nuovo {
    background: #b57500;
    color: #fff;
}

/* ── Pulsanti ───────────────────────────────────────────────── */
html[data-tema="chiaro"] .btn-primary,
html[data-tema="chiaro"] .nav-cta,
html[data-tema="chiaro"] .mid-cta-btn,
html[data-tema="chiaro"] .fc-btn,
html[data-tema="chiaro"] .pc-cta,
html[data-tema="chiaro"] .cr-aggiungi {
    background: #0284a8;
    color: #fff;
}
html[data-tema="chiaro"] .cr-paga { color: #fff; }
html[data-tema="chiaro"] .btn-secondary {
    background: #fff;
    border-color: var(--border-light);
    color: var(--text);
}
html[data-tema="chiaro"] .sticky-mobile-cta {
    background: linear-gradient(135deg, #0284a8, #046a87);
    color: #fff;
}
html[data-tema="chiaro"] .smc-icon,
html[data-tema="chiaro"] .nav-cta .logo-bolt { filter: none; }

/* ── Il prezzo: il riquadro era slavato ─────────────────────── */
html[data-tema="chiaro"] .pricing-card {
    background: #fff;
    border-color: rgba(2, 132, 168, .45);
    box-shadow: 0 18px 50px rgba(16, 25, 34, .12);
}
html[data-tema="chiaro"] .pc-features li,
html[data-tema="chiaro"] .pc-price-info,
html[data-tema="chiaro"] .pc-subtitle { color: var(--text-2); }
html[data-tema="chiaro"] .pc-badge { background: #b57500; color: #fff; }
html[data-tema="chiaro"] .pc-old-price { color: var(--text-mute); }

/* ── Carte e tabelle ────────────────────────────────────────── */
html[data-tema="chiaro"] .feature-card,
html[data-tema="chiaro"] .stat-card,
html[data-tema="chiaro"] .nv-foto,
html[data-tema="chiaro"] .vinci-carta,
html[data-tema="chiaro"] .slider,
html[data-tema="chiaro"] .faq-item {
    background: #fff;
    box-shadow: 0 2px 10px rgba(16, 25, 34, .05);
}
html[data-tema="chiaro"] .nv-voce { background: #fff; }
html[data-tema="chiaro"] .slider-schede,
html[data-tema="chiaro"] .carrello-passi { background: var(--bg-surface); }
html[data-tema="chiaro"] .comp-col { background: #fff; }
html[data-tema="chiaro"] .ft-row:nth-child(even) { background: var(--bg-surface); }

/* ── Piè di pagina ──────────────────────────────────────────── */
html[data-tema="chiaro"] .footer { border-top: 1px solid var(--border); }
html[data-tema="chiaro"] .footer-col ul a { color: var(--text-2); }
html[data-tema="chiaro"] .footer-col ul a:hover { color: var(--cyan); }
html[data-tema="chiaro"] .footer-warning { color: var(--text-3); }

/* la pagina appena aperta compare con una breve dissolvenza */
.pagina:not([hidden]), [data-home]:not([hidden]) {
    animation: entraPagina .3s ease both;
}
@keyframes entraPagina {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: none; }
}

/* ── Correzioni di contrasto viste sulle pagine (2026-09-18) ── */
/* le palline erano bianche su bianco */
html[data-tema="chiaro"] .nv-ball {
    background: radial-gradient(circle at 35% 30%, #ffffff 0%, #dbe4ef 55%, #b6c3d4 100%);
    color: #16202c;
    border: 1px solid #b0bfd0;
}
html[data-tema="chiaro"] .nv-ball.oro { border-color: #c79400; color: #3a2800; }
html[data-tema="chiaro"] .nv-ball.jolly { color: #06283a; }
/* il riquadro delle voci del prezzo era un grigio sporco */
html[data-tema="chiaro"] .pc-features {
    background: var(--bg-surface);
    border-color: var(--border);
}
/* aura ancora più ampia dietro al programma */
html[data-tema="chiaro"] .mockup-glow { width: 168%; height: 168%; filter: blur(52px); }

/* il fuoco va sulla pagina aperta (per i lettori di schermo), ma non
   deve disegnare un riquadro intorno a tutto */
.pagina:focus, [data-home]:focus { outline: none; }

/* ═══════════════════════════════════════════════════════════════
   TEMA CHIARO — terza passata: i fondi scritti a mano (2026-09-18)
   Nel tema scuro decine di blocchi usano rgba(0,0,0,·) come fondo e
   rgba(255,255,255,0.0x) come riga: sul bianco diventano grigio sporco
   e righe invisibili. Qui vengono rifatti.
═══════════════════════════════════════════════════════════════ */

/* ── Asimmetria (BANCO contro TU) ───────────────────────────── */
html[data-tema="chiaro"] .asymmetry {
    background: linear-gradient(180deg, rgba(213, 31, 72, .04), transparent 60%);
}
html[data-tema="chiaro"] .asymmetry::before { opacity: .35; }
html[data-tema="chiaro"] .asym-col {
    background: #fff;
    box-shadow: 0 6px 24px rgba(16, 25, 34, .07);
}
html[data-tema="chiaro"] .asym-them {
    border-color: rgba(213, 31, 72, .40);
    background: linear-gradient(180deg, rgba(213, 31, 72, .05), #fff 45%);
}
html[data-tema="chiaro"] .asym-you {
    border-color: rgba(160, 108, 0, .40);
    background: linear-gradient(180deg, rgba(160, 108, 0, .06), #fff 45%);
}
html[data-tema="chiaro"] .asym-list li {
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-left-width: 3px;
    color: var(--text-2);
}
html[data-tema="chiaro"] .asym-them .asym-list li { border-left-color: #d51f48; }
html[data-tema="chiaro"] .asym-you .asym-list li { border-left-color: #a06c00; }
html[data-tema="chiaro"] .asym-them .asym-name { color: #c01a3f; }
html[data-tema="chiaro"] .asym-you .asym-name { color: #8d5f00; }
html[data-tema="chiaro"] .asym-tag {
    background: rgba(213, 31, 72, .08);
    border-color: rgba(213, 31, 72, .35);
    color: #c01a3f;
}
html[data-tema="chiaro"] .asym-vs-circle {
    background: #fff;
    border-color: var(--border-light);
    color: var(--text-2);
    box-shadow: 0 2px 10px rgba(16, 25, 34, .08);
}
html[data-tema="chiaro"] .asym-quote {
    background: #fff;
    box-shadow: 0 6px 24px rgba(16, 25, 34, .07);
}
html[data-tema="chiaro"] .gradient-text-red {
    /* `background-image` e non `background`: la scorciatoia azzera
       background-clip, e il testo diventava un rettangolo pieno */
    background-image: linear-gradient(135deg, #d51f48 0%, #a06c00 100%);
}

/* ── Righe di tabella: erano bianche al 4%, cioè invisibili ── */
html[data-tema="chiaro"] .ft-table tbody td,
html[data-tema="chiaro"] .pc-vs-row,
html[data-tema="chiaro"] .sw-trow { border-bottom-color: var(--border); }
html[data-tema="chiaro"] .ft-table tbody tr:hover td { background: rgba(2, 132, 168, .05); }
html[data-tema="chiaro"] .ft-table tbody tr:hover td.ft-us { background: rgba(2, 132, 168, .12); }

/* ── Reticoli e trame di sfondo ─────────────────────────────── */
html[data-tema="chiaro"] .hero-grid {
    background-image:
        linear-gradient(rgba(16, 25, 34, .05) 1px, transparent 1px),
        linear-gradient(90deg, rgba(16, 25, 34, .05) 1px, transparent 1px);
    opacity: 1;
}

/* ── Sezioni con velature pensate per il nero ───────────────── */
html[data-tema="chiaro"] .problem {
    background: linear-gradient(180deg, rgba(213, 31, 72, .05) 0%, transparent 40%);
}
html[data-tema="chiaro"] .testimonials {
    background: linear-gradient(180deg, transparent, rgba(2, 132, 168, .05) 50%, transparent);
}
html[data-tema="chiaro"] .problem-stats {
    background: linear-gradient(180deg, rgba(2, 132, 168, .05), rgba(18, 134, 75, .04));
    box-shadow: 0 6px 24px rgba(16, 25, 34, .05);
}
html[data-tema="chiaro"] .problem-item,
html[data-tema="chiaro"] .tst-card {
    background: #fff;
    box-shadow: 0 2px 10px rgba(16, 25, 34, .05);
}
html[data-tema="chiaro"] .mid-cta-inner {
    background: linear-gradient(135deg, rgba(2, 132, 168, .07), rgba(18, 134, 75, .05));
    border-color: rgba(2, 132, 168, .35);
}
html[data-tema="chiaro"] .final-cta {
    background: linear-gradient(135deg, #fff 0%, var(--bg-surface) 100%);
    box-shadow: 0 10px 34px rgba(16, 25, 34, .08);
}

/* ── Offerta a tempo (fondo arancio): il pulsante era chiaro su chiaro ── */
html[data-tema="chiaro"] .lb-cta {
    background: #101922;
    color: #fff;
    border-color: #101922;
}

/* ── Il pallino verde della finestra finta e simili restano ── */
html[data-tema="chiaro"] .screen-window,
html[data-tema="chiaro"] .sw-tabs { background: var(--bg-surface); }

/* ═══════════════════════════════════════════════════════════════
   TEMA CHIARO — quarta passata: COLORI PIENI (2026-09-18)
   Chiesto dall'utente: non velature, tinte vere. Il pannello del
   banco è rosso acceso, quello «TU» oro; i segnali (pallini,
   etichette, badge) diventano intensi e si vedono davvero.
═══════════════════════════════════════════════════════════════ */

/* ── Pallino dell'etichetta in apertura: era quasi invisibile ── */
html[data-tema="chiaro"] .badge-dot {
    width: 11px;
    height: 11px;
    background: #00a8d6;
    box-shadow: 0 0 0 4px rgba(0, 168, 214, .20), 0 0 14px rgba(0, 168, 214, .85);
}
html[data-tema="chiaro"] .hero-badge {
    background: rgba(0, 168, 214, .12);
    border-color: rgba(0, 168, 214, .55);
    color: #01617c;
}

/* ── I due pannelli: rosso acceso contro oro ────────────────── */
html[data-tema="chiaro"] .asym-them {
    background: linear-gradient(170deg, #e8254f 0%, #c30f38 100%);
    border: 1px solid #a20c2e;
    box-shadow: 0 12px 34px rgba(195, 15, 56, .28);
}
html[data-tema="chiaro"] .asym-you {
    background: linear-gradient(170deg, #ffc531 0%, #e59a00 100%);
    border: 1px solid #c07f00;
    box-shadow: 0 12px 34px rgba(229, 154, 0, .28);
}
html[data-tema="chiaro"] .asym-them .asym-label { color: rgba(255, 255, 255, .88); }
html[data-tema="chiaro"] .asym-them .asym-name { color: #fff; }
html[data-tema="chiaro"] .asym-you .asym-label { color: #6b4500; }
html[data-tema="chiaro"] .asym-you .asym-name { color: #3d2700; }

/* le voci restano bianche, così si leggono sul colore pieno */
html[data-tema="chiaro"] .asym-list li {
    background: #fff;
    border: 1px solid rgba(255, 255, 255, .7);
    border-left-width: 4px;
    color: #27313d;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .10);
}
html[data-tema="chiaro"] .asym-them .asym-list li { border-left-color: #7d0a22; }
html[data-tema="chiaro"] .asym-you .asym-list li { border-left-color: #a06c00; }
html[data-tema="chiaro"] .asym-list li strong { color: #101922; }
html[data-tema="chiaro"] .asym-list li em { color: #55616f; }

/* ── Etichette di sezione: fondo pieno, non più sbiadite ────── */
html[data-tema="chiaro"] .section-tag {
    background: #00a8d6;
    border-color: #0089b0;
    color: #fff;
}
html[data-tema="chiaro"] .asym-tag {
    background: #e8254f;
    border-color: #c30f38;
    color: #fff;
}
html[data-tema="chiaro"] .pricing-tag { background: #12a05e; border-color: #0d7d49; }
html[data-tema="chiaro"] .nv-nuovo,
html[data-tema="chiaro"] .nav-nuovo,
html[data-tema="chiaro"] .pc-badge { background: #e59a00; color: #2b1c00; }
html[data-tema="chiaro"] .vinci-tipo { color: #0d7d49; }

/* ── Accenti un po' più vivi (restano leggibili sul bianco) ── */
html[data-tema="chiaro"] {
    --cyan: #0396c0;
    --cyan-glow: rgba(3, 150, 192, .35);
    --green: #12a05e;
    --gold: #e0960b;
    --red: #e8254f;
    --grad-1: linear-gradient(135deg, #0396c0 0%, #12a05e 100%);
}

/* i pulsanti pieni restano scuri quanto basta per il bianco sopra */
html[data-tema="chiaro"] .btn-primary,
html[data-tema="chiaro"] .nav-cta,
html[data-tema="chiaro"] .mid-cta-btn,
html[data-tema="chiaro"] .fc-btn,
html[data-tema="chiaro"] .pc-cta,
html[data-tema="chiaro"] .problem-cta,
html[data-tema="chiaro"] .cr-aggiungi { background: #0284a8; color: #fff; }

/* ── Il cerchio VS fra i due pannelli ───────────────────────── */
html[data-tema="chiaro"] .asym-vs-circle {
    background: #fff;
    border: 2px solid #c30f38;
    color: #c30f38;
    font-weight: 900;
}

/* ═══════════════════════════════════════════════════════════════
   TEMA CHIARO — quinta passata: colore pieno nelle altre pagine
   (tre giochi, prezzo, vincite, confronto)          2026-09-18
═══════════════════════════════════════════════════════════════ */

/* ── Tre giochi: una fascia colorata per gioco ──────────────── */
html[data-tema="chiaro"] .nv-gioco {
    padding-top: 0;
    overflow: hidden;
    border-color: var(--border);
}
html[data-tema="chiaro"] .nv-gioco .nv-gioco-testa {
    margin: 0 -28px 16px;          /* .feature-card ha padding 28px */
    padding: 16px 24px;
    background: #0396c0;
    color: #fff;
    border-bottom: 3px solid rgba(0, 0, 0, .12);
}
html[data-tema="chiaro"] .nv-gioco .nv-gioco-testa h3 { color: #fff; margin: 0; }
html[data-tema="chiaro"] .nv-gioco:nth-child(2) .nv-gioco-testa { background: #12a05e; }
html[data-tema="chiaro"] .nv-gioco:nth-child(3) .nv-gioco-testa { background: #e0960b; }
html[data-tema="chiaro"] .nv-gioco:nth-child(3) .nv-gioco-testa h3 { color: #2b1c00; }
html[data-tema="chiaro"] .nv-gioco-tag {
    background: rgba(255, 255, 255, .22);
    border: 1px solid rgba(255, 255, 255, .5);
    color: #fff;
}
html[data-tema="chiaro"] .nv-gioco:nth-child(3) .nv-gioco-tag {
    background: rgba(43, 28, 0, .12);
    border-color: rgba(43, 28, 0, .35);
    color: #2b1c00;
}
/* i due riquadrini con le cifre prendono il colore del gioco */
html[data-tema="chiaro"] .nv-cifre div {
    background: rgba(3, 150, 192, .08);
    border: 1px solid rgba(3, 150, 192, .30);
}
html[data-tema="chiaro"] .nv-cifre strong { color: #026f8f; }
html[data-tema="chiaro"] .nv-gioco:nth-child(2) .nv-cifre div {
    background: rgba(18, 160, 94, .09);
    border-color: rgba(18, 160, 94, .30);
}
html[data-tema="chiaro"] .nv-gioco:nth-child(2) .nv-cifre strong { color: #0d7d49; }
html[data-tema="chiaro"] .nv-gioco:nth-child(3) .nv-cifre div {
    background: rgba(224, 150, 11, .12);
    border-color: rgba(224, 150, 11, .35);
}
html[data-tema="chiaro"] .nv-gioco:nth-child(3) .nv-cifre strong { color: #96650a; }
html[data-tema="chiaro"] .nv-presto {
    background: rgba(224, 150, 11, .10);
    border: 1px solid rgba(224, 150, 11, .45);
}
html[data-tema="chiaro"] .nv-presto-tag { background: #e0960b; color: #2b1c00; border-color: #b87b00; }

/* ── Prezzo: testata colorata e cifra piena ─────────────────── */
/* la fascia è UNA SOLA, disegnata sulla carta: tre sfumature separate
   sui tre elementi lasciavano le cuciture in mezzo */
html[data-tema="chiaro"] .pricing-card {
    padding-top: 36px;
    /* niente overflow:hidden: tagliava il fregio «OFFERTA LANCIO»,
       che sporge sopra il bordo */
    border-color: #0396c0;
    background-color: #fff;
    background-image: linear-gradient(135deg, #0396c0 0%, #12a05e 100%);
    background-repeat: no-repeat;
    background-size: 100% 218px;
}
html[data-tema="chiaro"] .pricing-card .pc-icon {
    margin: 0 0 6px;
    color: #fff;
    filter: none;
}
html[data-tema="chiaro"] .pricing-card .pc-title { color: #fff; margin-bottom: 6px; }
html[data-tema="chiaro"] .pricing-card .pc-subtitle {
    color: rgba(255, 255, 255, .92);
    margin-bottom: 34px;
}
html[data-tema="chiaro"] .pc-price {
    background-image: linear-gradient(135deg, #0a8f5c 0%, #0396c0 100%);
}
html[data-tema="chiaro"] .pc-cta {
    background: linear-gradient(135deg, #0396c0 0%, #12a05e 100%);
    color: #fff;
}
html[data-tema="chiaro"] .pc-features li strong { color: #101922; }

/* ── Vincite: la didascalia dice «vinto», e si vede ─────────── */
html[data-tema="chiaro"] .vinci-carta figcaption {
    background: linear-gradient(180deg, rgba(18, 160, 94, .10), rgba(18, 160, 94, .04));
    border-top: 3px solid #12a05e;
}
html[data-tema="chiaro"] .vinci-tipo { color: #0b6f41; }
html[data-tema="chiaro"] .vinci-numeri { color: #0b3b26; }

/* ── Confronto: la nostra colonna in evidenza ───────────────── */
html[data-tema="chiaro"] .ft-table thead th.ft-us,
html[data-tema="chiaro"] .comp-col.comp-us .comp-head {
    background: linear-gradient(135deg, #0396c0 0%, #12a05e 100%);
    color: #fff;
}
html[data-tema="chiaro"] .ft-badge-ok,
html[data-tema="chiaro"] .ft-ok { color: #0b6f41; }
html[data-tema="chiaro"] .ft-no { color: #c30f38; }

/* ── Statistiche in cima a «Il software» ────────────────────── */
html[data-tema="chiaro"] .ps-num { color: #026f8f; }
html[data-tema="chiaro"] .problem-stats {
    border-color: rgba(3, 150, 192, .35);
}

/* Confronto: la nostra colonna è un <col>, quindi si può solo tingere
   (scriverci sopra colore o gradiente cancella testo e spunte) */
html[data-tema="chiaro"] .ft-ours-col {
    background: linear-gradient(180deg, rgba(3, 150, 192, .12), rgba(3, 150, 192, .04)) !important;
}
html[data-tema="chiaro"] .ft-partial { background: rgba(224, 150, 11, .16); color: #8d5f00; }
html[data-tema="chiaro"] .ft-cell.ft-yes { border-left-color: rgba(3, 150, 192, .45); }

/* ═══════════════════════════════════════════════════════════════
   BLOG (2026-09-18) — contenuti veri sul dominio del sito
═══════════════════════════════════════════════════════════════ */
.blog-nav {
    max-width: 1800px;
    margin: 0 auto;
    padding: 20px 32px;
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.blog-nav .nav-logo { font-size: 18px; font-weight: 800; }
.blog-torna {
    color: var(--text-2);
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    display: inline-flex;
    align-items: center;
    gap: 6px;
}
.blog-torna:hover { color: var(--cyan); }

.blog-hero {
    max-width: 900px;
    margin: 0 auto;
    padding: 40px 32px 20px;
    text-align: center;
}
.blog-hero .section-title { margin-bottom: 14px; }

.blog-griglia {
    max-width: 1100px;
    margin: 0 auto;
    padding: 20px 32px 100px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 22px;
}
.blog-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 28px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    text-decoration: none;
    color: inherit;
    transition: border-color .2s, transform .2s;
}
.blog-card:hover { border-color: var(--cyan); transform: translateY(-3px); }
.blog-card-meta {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .5px;
    color: var(--text-3);
    text-transform: uppercase;
}
.blog-card h2 { font-size: 20px; font-weight: 800; line-height: 1.3; }
.blog-card p { color: var(--text-2); font-size: 14.5px; line-height: 1.55; }
.blog-card-leggi { margin-top: auto; color: var(--cyan); font-weight: 700; font-size: 14px; }

/* ── L'articolo ──────────────────────────────────────────────── */
.articolo {
    max-width: 760px;
    margin: 0 auto;
    padding: 8px 32px 100px;
}
.articolo-testa { text-align: center; margin-bottom: 40px; }
.articolo-meta {
    font-size: 13px;
    font-weight: 700;
    color: var(--text-3);
    margin-bottom: 14px;
}
.articolo-meta span + span::before { content: '·'; margin: 0 8px; }
.articolo h1 {
    font-size: clamp(28px, 4.5vw, 40px);
    font-weight: 900;
    line-height: 1.2;
    margin-bottom: 14px;
}
.articolo-lead {
    font-size: 17px;
    color: var(--text-2);
    line-height: 1.6;
}
.articolo-corpo { font-size: 16px; line-height: 1.75; color: var(--text-2); }
.articolo-corpo h2 {
    font-size: 24px;
    font-weight: 800;
    color: var(--text);
    margin: 40px 0 16px;
}
.articolo-corpo h3 {
    font-size: 19px;
    font-weight: 800;
    color: var(--text);
    margin: 28px 0 12px;
}
.articolo-corpo p { margin-bottom: 18px; }
.articolo-corpo ul, .articolo-corpo ol { margin: 0 0 18px 22px; }
.articolo-corpo li { margin-bottom: 8px; }
.articolo-corpo strong { color: var(--text); }
.articolo-corpo a { color: var(--cyan); }
/* tabelle con i dati dell'archivio (genera_blog.py, 2026-10-01): scorrono di lato sul telefono */
.articolo-tabella { overflow-x: auto; margin: 6px 0 14px; border: 1px solid var(--border); border-radius: 12px; -webkit-overflow-scrolling: touch; }
.articolo-tabella table { width: 100%; border-collapse: collapse; font-size: 14.5px; line-height: 1.4; }
.articolo-tabella th, .articolo-tabella td { padding: 9px 14px; text-align: left; border-bottom: 1px solid var(--border); white-space: nowrap; }
.articolo-tabella th { background: var(--bg-surface); color: var(--text); font-size: 12.5px; font-weight: 700; letter-spacing: .3px; text-transform: uppercase; }
.articolo-tabella tbody tr:last-child td { border-bottom: 0; }
.articolo-tabella tbody tr:nth-child(even) td { background: var(--bg-surface); }
.articolo-tabella .num { text-align: right; font-variant-numeric: tabular-nums; }
.articolo-tabella td strong { color: var(--text); }
.articolo-fonte { font-size: 13px; color: var(--text-3); margin: -4px 0 18px; }
.articolo-corpo blockquote {
    margin: 24px 0;
    padding: 4px 0 4px 20px;
    border-left: 3px solid var(--cyan);
    color: var(--text);
    font-style: italic;
}
.articolo-riquadro {
    margin: 28px 0;
    padding: 22px 24px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
    border-radius: 14px;
}
.articolo-riquadro h3 { margin-top: 0; }
.articolo-cta {
    margin-top: 44px;
    padding: 30px;
    text-align: center;
    background: linear-gradient(135deg, var(--bg-card) 0%, var(--bg-surface) 100%);
    border: 1px solid var(--border);
    border-radius: 18px;
}
.articolo-cta p { color: var(--text-2); margin-bottom: 16px; }
.articolo-cta a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    background: var(--cyan);
    color: var(--bg-dark);
    padding: 12px 26px;
    border-radius: 10px;
    text-decoration: none;
    font-weight: 800;
}
.articolo-disclaimer {
    margin-top: 30px;
    padding: 16px 20px;
    border-left: 3px solid var(--border-light);
    font-size: 13px;
    color: var(--text-3);
    line-height: 1.6;
}
.articolo-correlati {
    margin-top: 50px;
    padding-top: 34px;
    border-top: 1px solid var(--border);
}
.articolo-correlati h3 { font-size: 15px; color: var(--text-3); margin-bottom: 16px; }
.articolo-correlati ul { list-style: none; display: flex; flex-direction: column; gap: 10px; }
.articolo-correlati a { color: var(--text); font-weight: 700; text-decoration: none; }
.articolo-correlati a:hover { color: var(--cyan); }

@media (max-width: 700px) {
    .blog-griglia { grid-template-columns: minmax(0, 1fr); padding: 20px 20px 60px; }
    .blog-hero, .articolo { padding-left: 20px; padding-right: 20px; }
    .blog-nav { padding: 16px 20px; }
}

/* tema chiaro: le carte diventano bianche, coerenti col resto */
html[data-tema="chiaro"] .blog-card,
html[data-tema="chiaro"] .articolo-riquadro,
html[data-tema="chiaro"] .articolo-cta {
    background: #fff;
    box-shadow: 0 2px 10px rgba(16, 25, 34, .05);
}

/* ── Blog, impaginazione larga (2026-10-01) ──────────────────────
   Il testo resta in una colonna da ~720 px (righe comode da leggere);
   i lati lavorano: indice a sinistra, scheda del programma a destra,
   testata a tutta larghezza con i numeri chiave. genera_blog.py */
.art-testa {
    padding: 52px 32px 46px;
    margin-bottom: 44px;
    background:
        radial-gradient(900px 320px at 12% 0%, rgba(0, 217, 255, .13), transparent 62%),
        radial-gradient(760px 320px at 92% 30%, rgba(163, 113, 247, .11), transparent 62%),
        var(--bg-card);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}
.art-testa-in { max-width: 1216px; margin: 0 auto; }   /* = colonne sotto (1280 - 2×32) */
.art-testa-in.art-testa-indice { max-width: 1116px; }   /* = griglia delle carte */
.art-briciole { font-size: 13px; font-weight: 700; color: var(--text-3); margin-bottom: 18px; }
.art-briciole a { color: inherit; text-decoration: none; }
.art-briciole a:hover { color: var(--cyan); }
.art-briciole span { margin: 0 6px; }
.art-tipo {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 5px 12px;
    border-radius: 999px;
    font-size: 11.5px;
    font-weight: 800;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: var(--cyan);
    background: color-mix(in srgb, var(--cyan) 12%, transparent);
    margin-bottom: 16px;
}
.art-tipo.dati { color: var(--gold); background: color-mix(in srgb, var(--gold) 14%, transparent); }
.art-tipo.dati::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.art-testa h1 {
    font-size: clamp(30px, 4.4vw, 50px);
    font-weight: 900;
    line-height: 1.1;
    letter-spacing: -.6px;
    max-width: 920px;
    margin-bottom: 18px;
}
.art-testa .articolo-lead { max-width: 820px; font-size: 18.5px; line-height: 1.6; }
.art-meta { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.art-meta span {
    padding: 6px 13px;
    border: 1px solid var(--border);
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    color: var(--text-2);
    background: var(--bg-dark);
}
.art-numeri {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin-top: 32px;
    max-width: 980px;
}
.art-numero {
    padding: 20px 22px;
    background: var(--bg-dark);
    border: 1px solid var(--border);
    border-radius: 16px;
}
.art-numero b {
    display: block;
    font-size: clamp(26px, 3vw, 34px);
    font-weight: 900;
    line-height: 1.05;
    color: var(--text);
    font-variant-numeric: tabular-nums;
    letter-spacing: -.5px;
}
.art-numero:first-child b { color: var(--cyan); }
.art-numero span { display: block; margin-top: 8px; font-size: 13.5px; line-height: 1.45; color: var(--text-2); }

.art-griglia {
    max-width: 1280px;
    margin: 0 auto;
    padding: 0 32px 100px;
    display: grid;
    grid-template-columns: 210px minmax(0, 720px) 260px;
    justify-content: center;
    align-items: start;
    gap: 52px;
}
.art-griglia .articolo { max-width: none; margin: 0; padding: 0; min-width: 0; }
.art-indice { position: sticky; top: 28px; font-size: 14px; }
.art-indice h4, .art-indice-breve summary {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: var(--text-3);
    margin-bottom: 12px;
}
.art-indice ol, .art-indice-breve ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--border); }
.art-indice a, .art-indice-breve a {
    display: block;
    margin-left: -2px;
    padding: 7px 0 7px 14px;
    border-left: 2px solid transparent;
    color: var(--text-2);
    text-decoration: none;
    line-height: 1.35;
}
.art-indice a:hover, .art-indice-breve a:hover { color: var(--cyan); border-left-color: var(--cyan); }
.art-indice-breve { display: none; }
.art-lato { position: sticky; top: 28px; }
.art-scheda {
    padding: 24px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 18px;
    box-shadow: 0 12px 34px rgba(16, 25, 34, .07);
}
.art-scheda-marchio { display: flex; align-items: center; gap: 6px; font-size: 15px; font-weight: 900; margin-bottom: 12px; color: var(--text); }
.art-scheda p { font-size: 14px; line-height: 1.55; color: var(--text-2); margin-bottom: 14px; }
.art-scheda ul { list-style: none; margin: 0 0 20px; padding: 0; font-size: 13.5px; color: var(--text-2); }
.art-scheda li { position: relative; padding: 5px 0 5px 24px; }
.art-scheda li::before { content: '✓'; position: absolute; left: 0; font-weight: 900; color: var(--green); }
.art-scheda-bottone {
    display: block;
    text-align: center;
    padding: 12px;
    border-radius: 11px;
    background: var(--cyan);
    color: var(--bg-dark);
    font-weight: 800;
    text-decoration: none;
}
.art-scheda-bottone:hover { filter: brightness(1.08); }

/* il corpo: titoli con una lineetta, sezioni d'avviso, barre nelle tabelle */
.art-griglia .articolo-corpo section { scroll-margin-top: 24px; }
.art-griglia .articolo-corpo > section:first-child > h2:first-child,
.art-griglia .articolo-corpo > h2:first-child { margin-top: 0; }
.art-griglia .articolo-corpo h2 { position: relative; padding-left: 16px; font-size: 25px; letter-spacing: -.2px; }
.art-griglia .articolo-corpo h2::before {
    content: '';
    position: absolute;
    left: 0; top: .22em; bottom: .22em;
    width: 4px;
    border-radius: 2px;
    background: linear-gradient(var(--cyan), var(--purple));
}
.art-avviso {
    margin: 36px 0;
    padding: 4px 26px 8px;
    border: 1px solid color-mix(in srgb, var(--gold) 45%, var(--border));
    border-radius: 18px;
    background: color-mix(in srgb, var(--gold) 7%, var(--bg-card));
}
.art-avviso h2 { padding-left: 0 !important; }
.art-avviso h2::before { display: none; }
.art-avviso h2::after { content: ' ⚠'; color: var(--gold); }
.art-barra {
    display: inline-block;
    width: 84px;
    height: 8px;
    margin-right: 12px;
    vertical-align: middle;
    border-radius: 4px;
    background: var(--bg-hover);
    overflow: hidden;
}
.art-barra i { display: block; height: 100%; border-radius: 4px; background: linear-gradient(90deg, var(--cyan), var(--purple)); }
.art-griglia .articolo-tabella { box-shadow: 0 6px 22px rgba(16, 25, 34, .05); background: var(--bg-card); }
.art-griglia .articolo-correlati ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.art-griglia .articolo-correlati a {
    display: flex;
    flex-direction: column;
    gap: 6px;
    height: 100%;
    padding: 16px 18px;
    border: 1px solid var(--border);
    border-radius: 14px;
    background: var(--bg-card);
    line-height: 1.35;
    transition: border-color .2s, transform .2s;
}
.art-griglia .articolo-correlati a:hover { border-color: var(--cyan); transform: translateY(-2px); }
.art-griglia .articolo-correlati a span {
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .6px;
    text-transform: uppercase;
    color: var(--text-3);
}

/* indice del blog */
.blog-card .art-tipo { align-self: flex-start; margin-bottom: 2px; }
.blog-card-piede { margin-top: auto; display: flex; justify-content: space-between; align-items: center; font-size: 13px; color: var(--text-3); font-weight: 700; }
.blog-card-piede .blog-card-leggi { margin: 0; }
.blog-griglia { max-width: 1180px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.blog-card-prima { grid-column: span 2; }
.blog-card-prima h2 { font-size: 26px; }

@media (max-width: 1180px) {
    .art-griglia { grid-template-columns: minmax(0, 720px) 250px; gap: 40px; }
    .art-indice { display: none; }
    .art-indice-breve {
        display: block;
        margin-bottom: 30px;
        padding: 14px 18px;
        border: 1px solid var(--border);
        border-radius: 14px;
        background: var(--bg-card);
    }
    .art-indice-breve summary { margin: 0; cursor: pointer; }
    .art-indice-breve[open] summary { margin-bottom: 10px; }
    .blog-griglia { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .art-griglia { grid-template-columns: minmax(0, 1fr); padding: 0 20px 70px; }
    .art-lato { display: none; }
    .art-testa { padding: 36px 20px 32px; margin-bottom: 30px; }
    .art-numeri { grid-template-columns: minmax(0, 1fr); gap: 10px; }
    .art-numero { display: flex; align-items: baseline; gap: 14px; padding: 14px 16px; }
    .art-numero b { flex: none; min-width: 92px; }
    .art-numero span { margin-top: 0; }
    .art-griglia .articolo-correlati ul { grid-template-columns: minmax(0, 1fr); }
    .art-avviso { padding: 2px 18px 6px; }
    .art-testa .articolo-lead { font-size: 17px; }
}
@media (max-width: 700px) {
    .blog-griglia { grid-template-columns: minmax(0, 1fr); }
    .blog-card-prima { grid-column: auto; }
    .blog-card-prima h2 { font-size: 21px; }
}
html[data-tema="chiaro"] .art-scheda,
html[data-tema="chiaro"] .art-indice-breve,
html[data-tema="chiaro"] .art-griglia .articolo-correlati a,
html[data-tema="chiaro"] .art-griglia .articolo-tabella { background: #fff; }
html[data-tema="chiaro"] .art-numero,
html[data-tema="chiaro"] .art-meta span { background: rgba(255, 255, 255, .75); }
html[data-tema="chiaro"] .art-testa { background-color: #eef4fa; }

/* «Approfitta ora» era uno <span>: non cliccabile. Ora è un link che
   apre il carrello, e deve restare identico com'era (2026-09-22) */
.promo-cta {
    color: inherit;
    text-decoration: none;
    cursor: pointer;
    white-space: nowrap;
}
.promo-cta:hover { text-decoration: underline; }
.promo-cta:focus-visible { outline: 2px solid #1a0a00; outline-offset: 3px; border-radius: 4px; }

/* ── Vincite: l'importo vinto sotto ogni schedina ─────────────── */
.vinci-soldi {
    font-family: 'JetBrains Mono', monospace;
    font-size: 34px;
    font-weight: 900;
    line-height: 1.05;
    color: var(--green);
    margin: 4px 0 2px;
    letter-spacing: -.5px;
}
.vinci-posta { font-size: 11.5px; color: var(--text-mute); }
html[data-tema="chiaro"] .vinci-soldi { color: #0b6f41; }

/* la schedina in vetrina: quella con l'importo, si stacca dalle altre */
.vinci-carta-forte {
    border-color: var(--green);
    box-shadow: 0 6px 26px rgba(18, 160, 94, .22);
}
.vinci-carta-forte .vinci-foto { border-bottom-color: var(--green); }

/* ═══════════════════════════════════════════════════════════════
   IL SOFTWARE — rifatta (2026-09-22)
   Vincita vera + motore AI in apertura, contatori compatti,
   schermate in miniatura che si aprono grandi (dialog #sw-zoom).
═══════════════════════════════════════════════════════════════ */
.sw { padding: 120px 0 90px; overflow-x: clip; }   /* l'aura dorata esce apposta dalla schedina: sui telefoni faceva sbordare la pagina */
.sw-wrap { max-width: 1500px; margin: 0 auto; padding: 0 clamp(16px, 4vw, 56px); }

/* apertura: schedina a sinistra, promessa a destra */
.sw-apertura {
    display: grid;
    grid-template-columns: minmax(240px, 360px) 1fr;
    gap: clamp(32px, 5vw, 80px);
    align-items: center;
}
.sw-vincita { margin: 0; position: relative; }
.sw-vincita::before {                       /* aura dorata dietro la schedina */
    content: '';
    position: absolute;
    inset: -12% -16%;
    background: radial-gradient(ellipse at 50% 45%, rgba(255, 196, 40, .55), rgba(255, 150, 0, .18) 45%, transparent 70%);
    filter: blur(30px);
    z-index: 0;
    animation: auraOro 5s ease-in-out infinite;
}
.sw-vincita-foto {
    position: relative;
    z-index: 1;
    transform: rotate(-3deg);
    border-radius: 14px;
    overflow: hidden;
    background: #fff;
    box-shadow: 0 18px 44px rgba(16, 25, 34, .22), 0 0 0 1px rgba(160, 108, 0, .25);
    transition: transform .4s;
}
.sw-vincita:hover .sw-vincita-foto { transform: rotate(0) scale(1.02); }
.sw-vincita-foto img { display: block; width: 100%; height: auto; }
.sw-timbro {
    position: absolute;
    right: -6px;
    bottom: 18px;
    transform: rotate(-8deg);
    background: linear-gradient(135deg, #12a05e, #0b6f41);
    color: #fff;
    font-weight: 900;
    font-size: 12px;
    letter-spacing: 3px;
    text-align: center;
    padding: 10px 18px 12px;
    border-radius: 10px;
    box-shadow: 0 10px 26px rgba(11, 111, 65, .45);
    line-height: 1.1;
}
.sw-timbro strong {
    display: block;
    font-family: 'JetBrains Mono', monospace;
    font-size: 30px;
    letter-spacing: -.5px;
    margin-top: 2px;
}
.sw-vincita figcaption {
    position: relative;
    z-index: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    margin-top: 22px;
    text-align: center;
}
.sw-vincita-num { font-family: 'JetBrains Mono', monospace; font-size: 24px; font-weight: 800; color: var(--text); }
.sw-vincita-dove { font-size: 14px; color: var(--text-2); }
.sw-verificata { font-size: 12.5px; font-weight: 700; color: var(--green); }

.sw-pitch .section-title { font-size: clamp(32px, 4vw, 52px); margin-bottom: 18px; }
.sw-lead { font-size: 18px; line-height: 1.65; color: var(--text-2); max-width: 680px; margin-bottom: 28px; }
.sw-lead strong { color: var(--text); }
.sw-passi {
    list-style: none;
    padding: 0;
    margin: 0 0 30px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
.sw-passi li {
    display: flex;
    gap: 12px;
    padding: 16px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: var(--shadow-md);
}
.sw-passi b {
    font-family: 'JetBrains Mono', monospace;
    font-size: 20px;
    font-weight: 800;
    color: var(--cyan);
    line-height: 1.2;
}
.sw-passi strong { display: block; font-size: 15px; margin-bottom: 4px; color: var(--text); }
.sw-passi span { font-size: 13px; line-height: 1.5; color: var(--text-3); }
.sw-cta { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; }
.sw-scarsita { font-size: 14px; color: var(--text-2); }
.sw-scarsita b { color: var(--red); }

/* contatori: una striscia sola, piccola */
.sw-numeri {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    margin: 64px 0 56px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 16px;
    box-shadow: var(--shadow-md);
}
.sw-numeri > div { padding: 18px 20px; text-align: center; }
.sw-numeri > div + div { border-left: 1px solid var(--border); }
.sw-numeri .ps-num {
    display: block;
    font-family: 'JetBrains Mono', monospace;
    font-size: clamp(22px, 2.4vw, 32px);
    font-weight: 800;
    color: var(--cyan);
    line-height: 1.2;
}
.sw-numeri span { font-size: 12.5px; color: var(--text-3); text-transform: uppercase; letter-spacing: 1px; font-weight: 700; }

/* le schermate: una grande (la novità) e otto piccole */
.sw-testa { display: flex; align-items: baseline; justify-content: space-between; gap: 16px; flex-wrap: wrap; margin-bottom: 18px; }
.sw-testa h3 { font-size: 26px; font-weight: 900; letter-spacing: -.5px; }
.sw-testa p { font-size: 14px; color: var(--text-3); }
.sw-griglia {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}
.sw-tessera {
    position: relative;
    display: block;
    padding: 0;
    border: 1px solid var(--border);
    border-radius: 14px;
    overflow: hidden;
    background: #0d1219;
    cursor: zoom-in;
    aspect-ratio: 16 / 10;
    font: inherit;
    text-align: left;
    box-shadow: var(--shadow-md);
    transition: transform .3s, box-shadow .3s, border-color .3s;
}
.sw-tessera img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: left top;
    display: block;
    transition: transform .5s;
}
.sw-tessera:hover, .sw-tessera:focus-visible {
    transform: translateY(-3px);
    border-color: var(--cyan);
    box-shadow: var(--shadow-cyan);
}
.sw-tessera:hover img { transform: scale(1.05); }
.sw-tessera:focus-visible { outline: 2px solid var(--cyan); outline-offset: 2px; }
.sw-didascalia {
    position: absolute;
    inset: auto 0 0 0;
    padding: 34px 14px 12px;
    background: linear-gradient(to top, rgba(6, 10, 16, .94) 30%, rgba(6, 10, 16, 0));
    color: #fff;
}
.sw-didascalia strong { display: block; font-size: 14.5px; font-weight: 800; }
.sw-didascalia span { display: block; font-size: 12px; color: #b9c4d0; line-height: 1.4; margin-top: 2px; }
.sw-tessera-grande {
    grid-column: span 2;
    grid-row: span 2;
    aspect-ratio: auto;
    border: 2px solid #e0a000;
    display: flex;
    flex-direction: column;
}
/* nella grande la didascalia sta SOTTO la schermata: sopra copriva la schedina */
.sw-tessera-grande img { flex: 1; min-height: 0; }
.sw-tessera-grande .sw-didascalia { position: static; background: #10151f; border-top: 1px solid rgba(224, 160, 0, .5); }
.sw-tessera-grande img { object-position: center top; }
.sw-tessera-grande .sw-didascalia { padding: 14px 22px 16px; }
.sw-tessera-grande .sw-didascalia strong { font-size: 22px; }
.sw-tessera-grande .sw-didascalia span { font-size: 14px; max-width: 560px; }
.sw-badge {
    position: absolute;
    top: 14px;
    right: 14px;
    background: #FFB800;
    color: #1a1000;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 1.5px;
    padding: 6px 12px;
    border-radius: 999px;
    box-shadow: 0 4px 16px rgba(255, 184, 0, .45);
}

.sw-chiusura {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    margin-top: 48px;
    padding: 24px 28px;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(2, 132, 168, .08), rgba(255, 184, 0, .12));
    border: 1px solid var(--border);
}
.sw-chiusura p { font-size: 17px; color: var(--text-2); }
.sw-chiusura strong { color: var(--text); }

/* l'ingrandimento */
.sw-zoom {
    margin: auto;               /* il reset del sito azzera il centrato dei dialog */
    padding: 0;
    border: 0;
    border-radius: 18px;
    width: min(1240px, 94vw);
    max-height: 92vh;
    background: var(--bg-card);
    color: var(--text);
    box-shadow: 0 30px 80px rgba(0, 0, 0, .45);
}
.sw-zoom::backdrop { background: rgba(6, 10, 16, .72); backdrop-filter: blur(3px); }
.sw-zoom-dentro { position: relative; display: grid; grid-template-columns: 1fr 280px; }
.sw-zoom-foto { background: #0d1219; display: flex; align-items: center; justify-content: center; }
.sw-zoom-foto img { display: block; width: 100%; height: auto; max-height: 88vh; object-fit: contain; }
.sw-zoom-testo { padding: 28px 24px; display: flex; flex-direction: column; gap: 10px; }
.sw-zoom-conta { font-family: 'JetBrains Mono', monospace; font-size: 12px; color: var(--text-mute); }
.sw-zoom-testo h4 { font-size: 21px; font-weight: 900; line-height: 1.25; }
.sw-zoom-desc { font-size: 14.5px; line-height: 1.6; color: var(--text-2); }
.sw-zoom-comandi { display: flex; gap: 8px; margin-top: auto; }
.sw-zoom-comandi button, .sw-zoom-chiudi {
    width: 42px;
    height: 42px;
    border-radius: 10px;
    border: 1px solid var(--border-light);
    background: var(--bg-surface);
    color: var(--text);
    font-size: 18px;
    cursor: pointer;
}
.sw-zoom-comandi button:hover, .sw-zoom-chiudi:hover { border-color: var(--cyan); color: var(--cyan); }
.sw-zoom-chiudi { position: absolute; top: 12px; right: 12px; }

@media (max-width: 1100px) {
    .sw-griglia { grid-template-columns: repeat(3, 1fr); }
    .sw-passi { grid-template-columns: 1fr; }
}
@media (max-width: 800px) {
    .sw { padding-top: 96px; }
    .sw-apertura { grid-template-columns: 1fr; }
    .sw-vincita { max-width: 300px; margin: 0 auto; }
    .sw-numeri { grid-template-columns: repeat(2, 1fr); }
    .sw-numeri > div:nth-child(3) { border-left: 0; }
    .sw-numeri > div:nth-child(n+3) { border-top: 1px solid var(--border); }
    .sw-griglia { grid-template-columns: repeat(2, 1fr); }
    .sw-tessera-grande { grid-row: span 1; aspect-ratio: auto; }
    .sw-tessera-grande img { height: auto; aspect-ratio: 16 / 10; flex: none; }
    /* piccole su telefono: solo il titolo, se no la didascalia copre la schermata */
    .sw-tessera:not(.sw-tessera-grande) .sw-didascalia { padding: 22px 10px 9px; }
    .sw-tessera:not(.sw-tessera-grande) .sw-didascalia strong { font-size: 12.5px; line-height: 1.25; }
    .sw-tessera:not(.sw-tessera-grande) .sw-didascalia span { display: none; }
    .sw-tessera-grande .sw-didascalia strong { font-size: 18px; }
    .sw-badge { top: 8px; right: 8px; font-size: 9px; letter-spacing: 1px; padding: 4px 9px; }
    .sw-tessera-grande .sw-didascalia span { display: none; }
    .sw-zoom-dentro { grid-template-columns: 1fr; }
    .sw-zoom-testo { padding: 18px; }
}
@media (prefers-reduced-motion: reduce) {
    .sw-vincita::before { animation: none; }
    .sw-tessera, .sw-tessera img, .sw-vincita-foto { transition: none; }
}

/* ── «Il software»: metodi + motore AI (2026-09-22) ─────────────── */
.sw-due {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 22px;
    margin: 0 0 64px;
}
.sw-due article {
    border-radius: 18px;
    padding: clamp(22px, 3vw, 36px);
    border: 1px solid var(--border);
    box-shadow: var(--shadow-md);
}
.sw-due h3 { font-size: clamp(24px, 2.4vw, 32px); font-weight: 900; line-height: 1.2; letter-spacing: -.5px; margin: 12px 0 14px; }
.sw-due p { font-size: 15.5px; line-height: 1.65; }
.sw-occhiello {
    display: inline-block;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 2px;
    padding: 5px 12px;
    border-radius: 999px;
    color: var(--cyan);
    background: rgba(2, 132, 168, .08);
    border: 1px solid rgba(2, 132, 168, .3);
}
.sw-occhiello-oro { color: #1a1000; background: #FFB800; border-color: #FFB800; }

/* metodi: carta chiara, ricette a gettoni */
.sw-metodi { background: var(--bg-card); color: var(--text-2); }
.sw-metodi h3 { color: var(--text); }
.sw-metodi strong { color: var(--text); }
.sw-ricette { list-style: none; padding: 0; margin: 20px 0; display: grid; gap: 10px; }
.sw-ricette li {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 8px 14px;
    padding: 12px 14px;
    border-radius: 12px;
    background: var(--bg-surface);
    border: 1px solid var(--border);
}
.sw-ricetta-pezzi { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; }
.sw-ricetta-pezzi i { font-style: normal; font-weight: 900; color: var(--text-mute); }
.sw-chip {
    font-size: 12.5px;
    font-weight: 700;
    padding: 5px 10px;
    border-radius: 8px;
    background: var(--bg-card);
    border: 1px solid var(--border-light);
    color: var(--text);
}
.sw-ricetta-nome { font-size: 13px; font-weight: 800; color: var(--cyan); }
.sw-conto { font-size: 14.5px !important; padding-top: 14px; border-top: 1px dashed var(--border-light); }
.sw-conto b { font-family: 'JetBrains Mono', monospace; font-size: 18px; color: var(--cyan); }

/* motore: carta scura come il programma, accenti oro */
.sw-motore {
    background: radial-gradient(ellipse at 85% 0%, rgba(255, 184, 0, .16), transparent 55%), #10151f;
    border-color: #2a3242 !important;
    color: #b9c4d0;
}
.sw-motore h3 { color: #fff; }
.sw-motore strong { color: #FFD166; }
.sw-segnali { list-style: none; padding: 0; margin: 18px 0; display: grid; gap: 9px; }
.sw-segnali li { display: grid; grid-template-columns: minmax(0, 1.25fr) 1fr 44px; align-items: center; gap: 12px; }
.sw-seg-nome { font-size: 13.5px; color: #dfe6ee; }
.sw-seg-barra { height: 8px; border-radius: 99px; background: rgba(255, 255, 255, .08); overflow: hidden; }
.sw-seg-barra span { display: block; height: 100%; border-radius: 99px; background: linear-gradient(90deg, #FFB800, #FF8A00); }
.sw-segnali b { font-family: 'JetBrains Mono', monospace; font-size: 14px; color: #FFB800; text-align: right; }
.sw-garanzie { list-style: none; padding: 16px 0 0; margin: 0; border-top: 1px solid rgba(255, 255, 255, .1); display: grid; gap: 8px; }
.sw-garanzie li { font-size: 14px; color: #dfe6ee; padding-left: 26px; position: relative; }
.sw-garanzie li::before { content: '✓'; position: absolute; left: 0; top: -1px; font-weight: 900; color: #3DDC84; }

@media (max-width: 980px) {
    .sw-due { grid-template-columns: 1fr; }
}
@media (max-width: 520px) {
    .sw-segnali li { grid-template-columns: 1fr 44px; }
    .sw-seg-barra { grid-column: 1 / -1; grid-row: 2; }
    .sw-due h3 br { display: none; }
}

/* ── Confronto e Prezzo rivisti (2026-09-22) ──────────────────── */
.ft-gruppo th {
    text-align: left;
    padding: 12px 20px;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: 2px;
    color: var(--cyan);
    background: var(--bg-surface);
    border-top: 1px solid var(--border);
    border-bottom: 1px solid var(--border);
}
.ft-badge-nuovo {
    display: inline-block;
    vertical-align: 1px;
    margin-left: 6px;
    font-size: 9.5px;
    font-weight: 900;
    letter-spacing: 1px;
    padding: 2px 7px;
    border-radius: 999px;
    background: #FFB800;
    color: #1a1000;
}
/* sul bianco il bordo al 4% di bianco non si vedeva: righe senza separazione */
html[data-tema="chiaro"] .ft-table tbody td { border-bottom-color: var(--border); }
.ft-cta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    margin-top: 28px;
    padding: 24px 28px;
    border-radius: 16px;
    background: linear-gradient(135deg, rgba(2, 132, 168, .08), rgba(255, 184, 0, .12));
    border: 1px solid var(--border);
}
.ft-cta p { font-size: 16px; color: var(--text-2); max-width: 760px; }
.ft-cta strong { color: var(--text); }

.pc-posti {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin: 4px 0 14px;
    padding: 6px 14px;
    border-radius: 999px;
    font-size: 12.5px;
    font-weight: 800;
    color: var(--red);
    background: rgba(213, 31, 72, .08);
    border: 1px solid rgba(213, 31, 72, .3);
}
.pc-posti-punto {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background: var(--red);
    box-shadow: 0 0 0 0 rgba(213, 31, 72, .5);
    animation: pcPulsa 1.8s ease-out infinite;
}
@keyframes pcPulsa {
    0% { box-shadow: 0 0 0 0 rgba(213, 31, 72, .5); }
    100% { box-shadow: 0 0 0 10px rgba(213, 31, 72, 0); }
}
.pc-extra {
    margin-top: 14px;
    font-size: 13px;
    line-height: 1.55;
    color: var(--text-3);
    text-align: center;
}
.pc-extra strong { color: var(--text); }
.pc-passi {
    list-style: none;
    padding: 0;
    margin: 28px auto 0;
    max-width: 980px;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
}
.pc-passi li {
    display: flex;
    gap: 12px;
    padding: 16px;
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: 14px;
    box-shadow: var(--shadow-md);
}
.pc-passi b {
    flex: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--cyan);
    color: #fff;
    font-weight: 900;
}
.pc-passi strong { display: block; font-size: 14.5px; color: var(--text); margin-bottom: 3px; }
.pc-passi span { font-size: 13px; line-height: 1.5; color: var(--text-3); }
@media (max-width: 800px) {
    .pc-passi { grid-template-columns: 1fr; }
    .ft-gruppo th { padding: 10px 12px; }
}
@media (prefers-reduced-motion: reduce) {
    .pc-posti-punto { animation: none; }
}

/* ── Prezzo su due colonne negli schermi larghi (2026-09-22) ──
   la scheda da sola lasciava vuoti i lati: accanto la prova e i passi */
.pc-lato { max-width: 980px; margin: 28px auto 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 16px; }
.pc-lato .pc-passi { margin: 0; max-width: none; }
.pc-prova {
    margin: 0;
    display: flex;
    gap: 18px;
    align-items: center;
    padding: 16px;
    border-radius: 16px;
    background: var(--bg-card);
    border: 2px solid #12a05e;
    box-shadow: 0 8px 26px rgba(18, 160, 94, .18);
}
.pc-prova img { width: 120px; height: auto; border-radius: 10px; transform: rotate(-3deg); flex: none; }
.pc-prova figcaption { display: flex; flex-direction: column; gap: 4px; }
.pc-prova-tag { font-size: 10.5px; font-weight: 900; letter-spacing: 2px; color: #0b6f41; }
.pc-prova strong { font-family: 'JetBrains Mono', monospace; font-size: 34px; font-weight: 900; color: #0b6f41; line-height: 1.05; }
.pc-prova span:not(.pc-prova-tag) { font-size: 13.5px; color: var(--text-2); line-height: 1.5; }
.pc-prova a { font-size: 13.5px; font-weight: 800; color: var(--cyan); text-decoration: none; }
.pc-prova a:hover { text-decoration: underline; }
@media (min-width: 1100px) {
    .pricing {
        display: grid;
        grid-template-columns: minmax(0, 540px) minmax(0, 440px);
        justify-content: center;
        column-gap: 48px;
        align-items: start;
    }
    .pricing > .section-header { grid-column: 1 / -1; }
    .pc-lato { margin: 0; position: sticky; top: calc(var(--promo-h, 0px) + 96px); }
    .pc-lato .pc-passi { grid-template-columns: 1fr; }
}
/* telefoni stretti: la schedina sopra il testo, non accanto (a 320 sbordava) */
@media (max-width: 480px) {
    .pc-prova { flex-direction: column; text-align: center; }
    .pc-prova img { width: 110px; }
    .pc-passi li { min-width: 0; }
    .pc-passi li > div { min-width: 0; }
}

/* ═══════════════════════════════════════════════════════════════
   GIRO DI STILE (2026-09-22)
   Firma = blu notte + bagliore della sfumatura di «software
   definitivo» (#0396c0 → #12a05e). L'oro resta dove parla di soldi
   e di motore AI (schedina, «Non fuffa», badge NUOVO, OFFERTA LANCIO).
═══════════════════════════════════════════════════════════════ */
:root {
    --firma-blu: #0396c0;
    --firma-verde: #12a05e;
    --firma-sfumatura: linear-gradient(135deg, #0396c0 0%, #12a05e 100%);
    --firma-notte: #10151f;
    --firma-bordo: #2a3242;
    --firma-testo: #b9c4d0;
    --firma-bagliore:
        radial-gradient(ellipse at 88% 0%, rgba(3, 150, 192, .34), transparent 55%),
        radial-gradient(ellipse at 0% 100%, rgba(18, 160, 94, .22), transparent 55%);
}

/* ── Home: il bagliore dietro al programma, da oro a blu→verde ── */
html[data-tema="chiaro"] .mockup-glow {
    background: radial-gradient(ellipse at 45% 45%,
        rgba(3, 150, 192, .80) 0%, rgba(3, 150, 192, .50) 26%,
        rgba(18, 160, 94, .34) 46%, rgba(18, 160, 94, .10) 64%, transparent 78%);
}
html[data-tema="chiaro"] .mockup-window {
    box-shadow:
        0 0 0 2px rgba(3, 150, 192, .75),
        0 18px 50px rgba(20, 30, 45, .30),
        0 0 90px rgba(3, 150, 192, .50);
}

/* ── I riquadri scuri con la firma ──────────────────────────── */
html[data-tema="chiaro"] .final-cta,
html[data-tema="chiaro"] .mid-cta-inner,
html[data-tema="chiaro"] .nv-presto,
html[data-tema="chiaro"] .sw-chiusura,
html[data-tema="chiaro"] .ft-cta,
.faq-fine {
    background: var(--firma-bagliore), var(--firma-notte);
    border: 1px solid var(--firma-bordo);
    color: var(--firma-testo);
    box-shadow: 0 16px 40px rgba(16, 25, 34, .18);
}
html[data-tema="chiaro"] .final-cta::before { opacity: 0; }
html[data-tema="chiaro"] .fc-title,
html[data-tema="chiaro"] .mid-cta-strong,
html[data-tema="chiaro"] .nv-presto p strong,
html[data-tema="chiaro"] .sw-chiusura strong,
html[data-tema="chiaro"] .ft-cta strong,
.faq-fine h3 { color: #fff; }
html[data-tema="chiaro"] .fc-text,
html[data-tema="chiaro"] .mid-cta-text span,
html[data-tema="chiaro"] .nv-presto p,
html[data-tema="chiaro"] .sw-chiusura p,
html[data-tema="chiaro"] .ft-cta p,
.faq-fine p { color: var(--firma-testo); }
html[data-tema="chiaro"] .fc-disclaimer { color: #8a96a6; }
/* sul blu notte la sfumatura va schiarita, se no si spegne */
html[data-tema="chiaro"] .final-cta .gradient-text {
    background-image: linear-gradient(135deg, #3cc8ef 0%, #3ddc84 100%);
}
html[data-tema="chiaro"] .nv-presto-tag {
    background: var(--firma-sfumatura);
    color: #fff;
    border-color: transparent;
}

/* bottoni dentro i riquadri scuri: la sfumatura, con un bagliore */
html[data-tema="chiaro"] .fc-btn,
html[data-tema="chiaro"] .mid-cta-btn,
html[data-tema="chiaro"] .sw-chiusura .btn-primary,
html[data-tema="chiaro"] .ft-cta .btn-primary,
html[data-tema="chiaro"] .faq-fine .btn-primary {
    background: var(--firma-sfumatura);
    color: #fff;
    box-shadow: 0 8px 30px rgba(3, 150, 192, .45);
}

/* ── Prezzo: la testata della scheda prende la firma ────────── */
html[data-tema="chiaro"] .pricing-card {
    border-color: var(--firma-blu);
    background-image:
        radial-gradient(ellipse at 88% 0%, rgba(3, 150, 192, .55), transparent 60%),
        radial-gradient(ellipse at 0% 100%, rgba(18, 160, 94, .38), transparent 60%),
        linear-gradient(#10151f, #10151f);
    background-size: 100% 218px;
    background-repeat: no-repeat;
    box-shadow: 0 0 0 1px rgba(3, 150, 192, .25), 0 20px 60px rgba(3, 150, 192, .28);
}
html[data-tema="chiaro"] .pc-cta {
    background: var(--firma-sfumatura);
    box-shadow: 0 8px 30px rgba(3, 150, 192, .40);
}

/* ── Confronto: la nostra colonna in testa e in fondo ───────── */
html[data-tema="chiaro"] .ft-table thead th.ft-ours-col {
    background: var(--firma-bagliore), var(--firma-notte) !important;
    border-left-color: var(--firma-notte);
    border-right-color: var(--firma-notte);
}
html[data-tema="chiaro"] .ft-ours-col .ft-th-name { color: #fff; }
html[data-tema="chiaro"] .ft-ours-col .ft-th-sub { color: var(--firma-testo); }
html[data-tema="chiaro"] .ft-ours-col::before { background: var(--firma-sfumatura); color: #fff; }
html[data-tema="chiaro"] .ft-table tfoot td.ft-foot-ours {
    background: var(--firma-bagliore), var(--firma-notte) !important;
}
html[data-tema="chiaro"] .ft-foot-ours .ft-foot-title { color: var(--firma-testo); }
html[data-tema="chiaro"] .ft-foot-ours .ft-foot-cyan {
    background-image: linear-gradient(135deg, #3cc8ef 0%, #3ddc84 100%);
}
html[data-tema="chiaro"] .ft-foot-ours .ft-foot-cyan small { -webkit-text-fill-color: #8fe3ff; }

/* ── Accenti con la sfumatura ───────────────────────────────── */
html[data-tema="chiaro"] .section-tag,
html[data-tema="chiaro"] .sw-occhiello:not(.sw-occhiello-oro) {
    background: var(--firma-sfumatura);
    border-color: transparent;
    color: #fff;
    box-shadow: 0 4px 14px rgba(3, 150, 192, .28);
}
html[data-tema="chiaro"] .nav-links a.attivo:not(.nav-vincite)::after { background: var(--firma-sfumatura); }
.pc-passi b { background: var(--firma-sfumatura); }
.sw-passi b,
.sw-conto b,
.sw-numeri .ps-num {
    background-image: var(--firma-sfumatura);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
html[data-tema="chiaro"] .ft-gruppo th { color: var(--firma-blu); border-left: 3px solid var(--firma-blu); }

/* ── FAQ: il riquadro finale ────────────────────────────────── */
.faq-fine {
    max-width: 900px;
    margin: 36px auto 0;
    padding: 26px 30px;
    border-radius: 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
}
.faq-fine h3 { font-size: 22px; font-weight: 900; margin-bottom: 6px; }
.faq-fine p { font-size: 15px; line-height: 1.55; }
.faq-fine strong { color: #8fe3ff; overflow-wrap: anywhere; }
/* i bottoni per comprare hanno tutti la sfumatura di «software definitivo» */
html[data-tema="chiaro"] .btn-primary,
html[data-tema="chiaro"] .nav-cta {
    background: var(--firma-sfumatura);
    color: #fff;
}

/* ═══════════════════════════════════════════════════════════════
   PALCO E BLU NOTTE (2026-09-23)
   L'aura sfumata sembrava una macchia che invadeva la pagina: al suo
   posto un pannello blu notte dai bordi netti, col bagliore chiuso
   dentro. Poi il blu notte della firma in molti più punti.
═══════════════════════════════════════════════════════════════ */

/* ── Home: il palco dietro al programma ─────────────────────── */
html[data-tema="chiaro"] .hero-glow { display: none; }
html[data-tema="chiaro"] .mockup-glow {
    width: 104%;
    height: 114%;
    opacity: 1;
    filter: none;
    animation: none;
    border-radius: 32px;
    background:
        radial-gradient(circle at 1px 1px, rgba(255, 255, 255, .07) 1px, transparent 0) 0 0 / 22px 22px,
        radial-gradient(ellipse at 82% 8%, rgba(3, 150, 192, .46), transparent 55%),
        radial-gradient(ellipse at 8% 96%, rgba(18, 160, 94, .32), transparent 55%),
        #10151f;
    box-shadow: 0 0 0 1px rgba(3, 150, 192, .35), 0 40px 80px -24px rgba(16, 25, 34, .55);
}
html[data-tema="chiaro"] .mockup-window {
    box-shadow: 0 0 0 1px rgba(143, 227, 255, .35), 0 26px 50px rgba(0, 0, 0, .45);
}

/* ── Menu in alto ───────────────────────────────────────────── */
html[data-tema="chiaro"] .navbar {
    background: rgba(13, 18, 27, .95);
    border-bottom: 1px solid #222b3a;
    -webkit-backdrop-filter: blur(12px);
    backdrop-filter: blur(12px);
}
html[data-tema="chiaro"] .navbar .logo-text { color: #fff; }
html[data-tema="chiaro"] .navbar .logo-pro,
html[data-tema="chiaro"] .footer .logo-pro {
    background-image: linear-gradient(135deg, #3cc8ef 0%, #3ddc84 100%);
}
html[data-tema="chiaro"] .nav-links a:not(.nav-vincite) { color: #c3cdd9; }
html[data-tema="chiaro"] .nav-links a:not(.nav-vincite):hover,
html[data-tema="chiaro"] .nav-links a.attivo:not(.nav-vincite) { color: #fff; }
html[data-tema="chiaro"] .nav-links a.nav-vincite {
    background-image: linear-gradient(90deg, #38bdf8, #a5ecff, #38bdf8, #a5ecff, #38bdf8);
    filter: drop-shadow(0 0 8px rgba(56, 189, 248, .45));
}
html[data-tema="chiaro"] .nav-links a.nav-vincite.attivo::after { background: #38bdf8; }
html[data-tema="chiaro"] .nav-carrello {
    background: #1a2230;
    border-color: #2a3242;
    color: #fff;
}

/* ── Striscia delle stelle ──────────────────────────────────── */
html[data-tema="chiaro"] .trust-strip {
    background: #0b1018;
    border-bottom: 1px solid #1d2533;
}
html[data-tema="chiaro"] .trust-strip .ts-item { color: #aab6c3; }
html[data-tema="chiaro"] .trust-strip .ts-item strong { color: #fff; }
html[data-tema="chiaro"] .trust-strip .ts-sep { color: #4a5566; }

/* ── Piè di pagina ──────────────────────────────────────────── */
html[data-tema="chiaro"] .footer {
    background: var(--firma-bagliore), #0b1018;
    border-top: 0;
    color: #aab6c3;
}
html[data-tema="chiaro"] .footer-logo,
html[data-tema="chiaro"] .footer-col h4 { color: #fff; }
html[data-tema="chiaro"] .footer-desc { color: #aab6c3; }
html[data-tema="chiaro"] .footer-col ul a { color: #aab6c3; }
html[data-tema="chiaro"] .footer-col ul a:hover { color: #8fe3ff; }
html[data-tema="chiaro"] .footer-bottom { border-top-color: #1d2533; color: #8a96a6; }
html[data-tema="chiaro"] .footer-warning { color: #7d8998; }

/* ── Recensioni: fascia scura da bordo a bordo ──────────────── */
html[data-tema="chiaro"] .testimonials {
    background: var(--firma-bagliore), var(--firma-notte);
}
html[data-tema="chiaro"] .testimonials .section-title { color: #fff; }
html[data-tema="chiaro"] .testimonials .section-sub { color: var(--firma-testo); }
html[data-tema="chiaro"] .testimonials .gradient-text,
html[data-tema="chiaro"] .vincite .gradient-text {
    background-image: linear-gradient(135deg, #3cc8ef 0%, #3ddc84 100%);
}
html[data-tema="chiaro"] .testi-card {
    background: #161d2a;
    border-color: #2a3242;
    box-shadow: 0 10px 30px rgba(0, 0, 0, .25);
}
html[data-tema="chiaro"] .testi-quote { color: #d3dbe4; }
html[data-tema="chiaro"] .testi-quote strong { color: #8fe3ff; }
html[data-tema="chiaro"] .testi-name { color: #fff; }
html[data-tema="chiaro"] .testi-meta { color: #8a96a6; }
html[data-tema="chiaro"] .testi-author { border-top-color: #2a3242; }

/* ── Vincite: la pagina è una vetrina scura, le schedine risaltano ── */
html[data-tema="chiaro"] .vincite {
    background: var(--firma-bagliore), var(--firma-notte);
}
html[data-tema="chiaro"] .vincite .section-title { color: #fff; }
html[data-tema="chiaro"] .vincite .section-sub,
html[data-tema="chiaro"] .vincite > p,
html[data-tema="chiaro"] .vincite .vinci-nota { color: var(--firma-testo); }
html[data-tema="chiaro"] .vincite .vinci-nota strong,
html[data-tema="chiaro"] .vincite > p strong { color: #fff; }
html[data-tema="chiaro"] .vinci-carta { box-shadow: 0 14px 34px rgba(0, 0, 0, .40); }

/* ── Il software: contatori e passi in blu notte ────────────── */
html[data-tema="chiaro"] .sw-numeri {
    background: var(--firma-bagliore), var(--firma-notte);
    border-color: var(--firma-bordo);
}
html[data-tema="chiaro"] .sw-numeri > div + div { border-left-color: var(--firma-bordo); }
html[data-tema="chiaro"] .sw-numeri > div:nth-child(n+3) { border-top-color: var(--firma-bordo); }
html[data-tema="chiaro"] .sw-numeri span { color: var(--firma-testo); }
html[data-tema="chiaro"] .sw-passi li {
    background: var(--firma-notte);
    border-color: var(--firma-bordo);
}
html[data-tema="chiaro"] .sw-passi strong { color: #fff; }
html[data-tema="chiaro"] .sw-passi span { color: var(--firma-testo); }
html[data-tema="chiaro"] .sw-numeri .ps-num,
html[data-tema="chiaro"] .sw-passi b {
    background-image: linear-gradient(135deg, #3cc8ef 0%, #3ddc84 100%);
}

/* ── Novità: schede scure, come il programma ────────────────── */
html[data-tema="chiaro"] .nv-foto,
html[data-tema="chiaro"] .nv-voce {
    background: var(--firma-notte);
    border-color: var(--firma-bordo);
}
html[data-tema="chiaro"] .nv-foto h3,
html[data-tema="chiaro"] .nv-voce h4 { color: #fff; }
html[data-tema="chiaro"] .nv-foto p,
html[data-tema="chiaro"] .nv-voce p { color: var(--firma-testo); }
html[data-tema="chiaro"] .nv-foto p strong { color: #8fe3ff; }

/* ── Confronto: la testata e il totale in blu notte ─────────── */
html[data-tema="chiaro"] .ft-table thead th {
    background: var(--firma-notte);
    border-bottom-color: var(--firma-bordo);
}
html[data-tema="chiaro"] .ft-table thead .ft-th-name { color: #fff; }
html[data-tema="chiaro"] .ft-table thead .ft-th-sub { color: var(--firma-testo); }
html[data-tema="chiaro"] .ft-table tfoot td {
    background: var(--firma-notte);
    border-top-color: var(--firma-bordo);
}
html[data-tema="chiaro"] .ft-foot-other .ft-foot-title,
html[data-tema="chiaro"] .ft-foot-other .ft-foot-price { color: #8a96a6; }
/* le palline e le banconote stanno SOPRA il palco (sotto la finestra, che è a 5) */
html[data-tema="chiaro"] .hero-deco { z-index: 2; }

/* ── Home: la descrizione in un riquadro nero (2026-09-24) ─────
   Stessa firma del riquadro «Non fuffa»: blu notte, bagliore blu-verde. */
.hero-box {
    max-width: 590px;
    margin: 0 0 32px;
    padding: 22px 26px;
    border-radius: 18px;
    background:
        radial-gradient(ellipse at 90% 0%, rgba(3, 150, 192, .30), transparent 55%),
        radial-gradient(ellipse at 0% 100%, rgba(18, 160, 94, .20), transparent 55%),
        #10151f;
    border: 1px solid #2a3242;
    box-shadow: 0 16px 40px rgba(16, 25, 34, .22);
    color: #b9c4d0;
    font-size: 16.5px;
    line-height: 1.6;
}
.hero-box p { margin: 0; padding: 9px 0; }
.hero-box p + p { border-top: 1px solid rgba(255, 255, 255, .08); }
.hero-box strong { color: #fff; }
.hero-box-vivo {
    display: flex;
    align-items: center;
    gap: 10px;
    font-weight: 800;
    background-image: linear-gradient(135deg, #3cc8ef 0%, #3ddc84 100%);
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
}
.hero-box-punto {
    flex: none;
    width: 9px;
    height: 9px;
    border-radius: 50%;
    background: #3ddc84;
    box-shadow: 0 0 0 0 rgba(61, 220, 132, .55);
    animation: heroVivo 1.8s ease-out infinite;
}
@keyframes heroVivo {
    0% { box-shadow: 0 0 0 0 rgba(61, 220, 132, .55); }
    100% { box-shadow: 0 0 0 10px rgba(61, 220, 132, 0); }
}
@media (max-width: 600px) {
    .hero-box { padding: 16px 18px; font-size: 15.5px; }
}
@media (prefers-reduced-motion: reduce) {
    .hero-box-punto { animation: none; }
}

/* «Il software» senza l'apertura (congelata 2026-09-24): la griglia apre la pagina */
.sw-wrap > .sw-testa:first-of-type { margin-top: 0; }
.sw-griglia + .sw-numeri { margin-top: 56px; }
.sw { padding-top: 64px; }
