/* Landing pubblica NewVoip, condivisa dalle varianti Monitoraggio e Cliente. */
.nv-landing-page {
    margin: 0;
    min-height: 100vh;
    font-family: var(--nv-font-sans);
    color: var(--nv-text);
    background:
        radial-gradient(circle at 14% 0%, var(--nv-accent-soft), transparent 30%),
        radial-gradient(circle at 90% 7%, var(--nv-info-soft), transparent 27%),
        var(--nv-bg);
}

.nv-landing-page * { box-sizing: border-box; }
.nv-landing-page a { color: inherit; text-decoration: none; }
.nv-landing-wrap { width: min(calc(100% - 40px), 1180px); margin: 0 auto; }

.nv-landing-topbar {
    position: sticky;
    top: 0;
    z-index: 20;
    border-bottom: 1px solid var(--nv-border);
    background: var(--nv-topbar-bg);
    backdrop-filter: blur(16px);
}

.nv-landing-nav {
    min-height: 72px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
}

.nv-landing-brand {
    display: flex;
    align-items: center;
    gap: 11px;
    font-size: 1.14rem;
    font-weight: 800;
    letter-spacing: -.03em;
}

.nv-landing-brandmark {
    width: 38px;
    height: 38px;
    display: grid;
    place-items: center;
    border-radius: 12px;
    color: var(--nv-text-on-accent);
    background: linear-gradient(135deg, var(--nv-accent), var(--nv-accent-hover));
    box-shadow: var(--nv-shadow-sm);
    font-size: .74rem;
    font-weight: 900;
}

.nv-landing-navlinks { display: flex; gap: 24px; color: var(--nv-text-muted); font-size: .90rem; }
.nv-landing-navlinks a:hover { color: var(--nv-text); }

.nv-landing-btn {
    min-height: 44px;
    padding: 0 17px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 1px solid var(--nv-border);
    border-radius: 12px;
    background: var(--nv-surface);
    color: var(--nv-text);
    font-weight: 750;
}

.nv-landing-btn--primary {
    border-color: var(--nv-accent);
    background: var(--nv-accent);
    color: var(--nv-text-on-accent);
}

.nv-landing-hero { padding: 82px 0 64px; overflow: hidden; }
.nv-landing-hero-grid { display: grid; grid-template-columns: 1.08fr .92fr; gap: 58px; align-items: center; }

.nv-landing-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 19px;
    color: var(--nv-accent);
    font-size: .76rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .15em;
}

.nv-landing-eyebrow::before { content: ""; width: 27px; height: 2px; border-radius: 99px; background: var(--nv-accent); }
.nv-landing-hero h1 { margin: 0 0 23px; max-width: 780px; font-size: clamp(2.8rem, 6vw, 5.2rem); line-height: .99; letter-spacing: -.062em; }
.nv-landing-hero h1 span { color: var(--nv-accent); }
.nv-landing-lead { max-width: 700px; margin: 0 0 28px; color: var(--nv-text-muted); font-size: 1.13rem; }
.nv-landing-actions { display: flex; gap: 11px; flex-wrap: wrap; }
.nv-landing-badges { display: flex; gap: 9px; flex-wrap: wrap; margin-top: 24px; }
.nv-landing-chip { padding: 8px 11px; border: 1px solid var(--nv-border); border-radius: 999px; background: color-mix(in srgb, var(--nv-surface) 84%, transparent); color: var(--nv-text-muted); font-size: .81rem; }

.nv-landing-visual {
    padding: 22px;
    border: 1px solid var(--nv-border);
    border-radius: 27px;
    background: linear-gradient(180deg, var(--nv-surface-2), var(--nv-surface));
    box-shadow: var(--nv-shadow-lg);
}

.nv-landing-visual-head { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-bottom: 17px; }
.nv-landing-online { display: inline-flex; align-items: center; gap: 7px; padding: 6px 9px; border-radius: 999px; color: var(--nv-success); background: var(--nv-success-soft); border: 1px solid var(--nv-success-border); font-size: .76rem; }
.nv-landing-online i { width: 7px; height: 7px; border-radius: 50%; background: currentColor; }
.nv-landing-metrics { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px; margin-bottom: 12px; }
.nv-landing-metric { padding: 14px; border: 1px solid var(--nv-border); border-radius: 14px; background: var(--nv-surface-3); }
.nv-landing-metric strong { display: block; font-size: 1.35rem; letter-spacing: -.04em; }
.nv-landing-metric span { color: var(--nv-text-muted); font-size: .72rem; }
.nv-landing-row { display: grid; grid-template-columns: 1fr auto; gap: 10px; align-items: center; padding: 12px 13px; border-top: 1px solid var(--nv-border); }
.nv-landing-row strong { display: block; font-size: .84rem; }
.nv-landing-row span { color: var(--nv-text-muted); font-size: .72rem; }
.nv-landing-row em { color: var(--nv-info); font-size: .75rem; font-style: normal; font-weight: 750; }

.nv-landing-section { padding: 72px 0; }
.nv-landing-section--muted { border-top: 1px solid var(--nv-border); border-bottom: 1px solid var(--nv-border); background: color-mix(in srgb, var(--nv-surface) 35%, transparent); }
.nv-landing-sectionhead { max-width: 760px; margin-bottom: 34px; }
.nv-landing-sectionhead h2 { margin: 0 0 14px; font-size: clamp(2rem, 4vw, 3.25rem); line-height: 1.07; letter-spacing: -.05em; }
.nv-landing-sectionhead p { margin: 0; color: var(--nv-text-muted); }
.nv-landing-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 15px; }
.nv-landing-card { min-height: 195px; padding: 24px; border: 1px solid var(--nv-border); border-radius: 18px; background: var(--nv-surface); box-shadow: var(--nv-shadow-sm); }
.nv-landing-card-icon { width: 42px; height: 42px; margin-bottom: 17px; display: grid; place-items: center; border-radius: 12px; background: var(--nv-accent-soft); color: var(--nv-accent); font-weight: 900; }
.nv-landing-card h3 { margin: 0 0 7px; font-size: 1.08rem; }
.nv-landing-card p { margin: 0; color: var(--nv-text-muted); font-size: .90rem; }

.nv-landing-two { display: grid; grid-template-columns: .92fr 1.08fr; gap: 44px; align-items: center; }
.nv-landing-flow { display: grid; gap: 11px; }
.nv-landing-flowitem { padding: 17px 18px; border: 1px solid var(--nv-border); border-radius: 14px; background: var(--nv-surface); }
.nv-landing-flowitem strong { display: block; margin-bottom: 2px; }
.nv-landing-flowitem span { color: var(--nv-text-muted); font-size: .82rem; }
.nv-landing-flowitem--accent { border-color: var(--nv-accent-border); background: linear-gradient(135deg, var(--nv-accent-soft), var(--nv-surface)); }

.nv-landing-copy h2 { margin: 0 0 15px; font-size: clamp(2rem, 4vw, 3.05rem); line-height: 1.08; letter-spacing: -.05em; }
.nv-landing-copy p { color: var(--nv-text-muted); }
.nv-landing-checks { display: grid; gap: 9px; margin-top: 19px; }
.nv-landing-check { display: flex; gap: 9px; color: var(--nv-text); font-size: .91rem; }
.nv-landing-check b { color: var(--nv-success); }

.nv-landing-cta { padding: 0 0 84px; }
.nv-landing-ctabox { padding: 44px; border: 1px solid var(--nv-accent-border); border-radius: 28px; background: radial-gradient(circle at 88% 18%, var(--nv-accent-soft), transparent 30%), var(--nv-surface); box-shadow: var(--nv-shadow-lg); }
.nv-landing-ctabox h2 { max-width: 760px; margin: 0 0 13px; font-size: clamp(2rem, 4vw, 3.35rem); line-height: 1.04; letter-spacing: -.05em; }
.nv-landing-ctabox p { max-width: 720px; margin: 0 0 22px; color: var(--nv-text-muted); }

.nv-landing-footer { padding: 25px 0 35px; border-top: 1px solid var(--nv-border); color: var(--nv-text-subtle); font-size: .82rem; }
.nv-landing-footer-row { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }

/* Quando la landing viene caricata dentro il vecchio shell via Xajax. */
#div_home_page .nv-landing-content { margin: -1rem; }
#div_home_page .nv-landing-content .nv-landing-hero { padding-top: 52px; }

@media (max-width: 950px) {
    .nv-landing-navlinks { display: none; }
    .nv-landing-hero-grid,
    .nv-landing-two { grid-template-columns: 1fr; }
    .nv-landing-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 650px) {
    .nv-landing-wrap { width: min(calc(100% - 24px), 1180px); }
    .nv-landing-hero { padding: 50px 0 42px; }
    .nv-landing-grid { grid-template-columns: 1fr; }
    .nv-landing-metrics { grid-template-columns: 1fr 1fr; }
    .nv-landing-metric:nth-child(3) { display: none; }
    .nv-landing-actions { display: grid; }
    .nv-landing-btn { width: 100%; }
    .nv-landing-ctabox { padding: 29px 22px; }
}
