
:root {
    --orange: #f3a33b;
    --red: #e74845;
    --magenta: #c93b86;
    --purple: #7c4da3;
    --blue: #326eb6;
    --ink: #26243f;
    --text: #4e5063;
    --muted: #74778a;
    --line: #e9e9f0;
    --soft: #f7f7fb;
    --white: #fff;
    --gradient: linear-gradient(100deg, var(--orange), var(--red), var(--magenta), var(--purple), var(--blue));
    --shadow: 0 18px 60px rgba(38,36,63,.10);
    --radius: 24px;
    --container: 1180px;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    color: var(--text);
    background: var(--white);
    font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    line-height: 1.6;
}
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; display: block; }
button, input { font: inherit; }
.container { width: min(calc(100% - 40px), var(--container)); margin-inline: auto; }
.screen-reader-text { position:absolute; left:-10000px; width:1px; height:1px; overflow:hidden; }

.site-header {
    position: sticky;
    top: 0;
    z-index: 50;
    background: rgba(255,255,255,.92);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(233,233,240,.9);
}
.header-inner { min-height: 76px; display: flex; align-items: center; gap: 28px; }
.brand { width: 172px; flex: 0 0 auto; }
.brand img, .custom-logo { max-height: 54px; width: auto; object-fit: contain; }
.main-nav { margin-left: auto; }
.menu { list-style: none; padding: 0; margin: 0; display: flex; align-items: center; gap: 26px; }
.menu a { font-weight: 700; color: var(--ink); font-size: .95rem; }
.menu a:hover { color: var(--purple); }
.menu-toggle { display:none; border:0; background:transparent; padding:8px; }
.menu-toggle span:not(.screen-reader-text) { display:block; width:26px; height:2px; background:var(--ink); margin:5px; }

.button {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    min-height: 50px;
    padding: 0 24px;
    border-radius: 999px;
    color: var(--white);
    font-weight: 800;
    background: var(--gradient);
    border: 0;
    cursor: pointer;
    box-shadow: 0 12px 28px rgba(124,77,163,.20);
    transition: transform .2s ease, box-shadow .2s ease;
}
.button:hover { transform: translateY(-2px); box-shadow: 0 16px 34px rgba(124,77,163,.27); }
.button-small { min-height: 42px; padding-inline: 18px; font-size: .9rem; }
.button-ghost { color: var(--ink); background: var(--white); border:1px solid var(--line); box-shadow:none; }
.button-light { background:var(--white); color:var(--ink); box-shadow:none; }

.hero { padding: 88px 0 78px; overflow:hidden; }
.hero-grid { display:grid; grid-template-columns: 1.05fr .95fr; gap:70px; align-items:center; }
.eyebrow { display:inline-block; color:var(--purple); font-weight:900; text-transform:uppercase; letter-spacing:.11em; font-size:.75rem; margin-bottom:16px; }
.eyebrow.light { color:#fff; opacity:.8; }
h1,h2,h3 { color:var(--ink); line-height:1.08; margin-top:0; }
h1 { font-size:clamp(2.8rem, 6vw, 5.4rem); letter-spacing:-.055em; margin-bottom:24px; }
h1 span { background:var(--gradient); -webkit-background-clip:text; background-clip:text; color:transparent; }
h2 { font-size:clamp(2rem, 4vw, 3.4rem); letter-spacing:-.04em; margin-bottom:18px; }
h3 { font-size:1.35rem; margin-bottom:12px; }
.hero-copy > p { font-size:1.18rem; max-width:650px; margin:0 0 30px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:14px; }
.trust-row { display:flex; flex-wrap:wrap; gap:18px; margin-top:30px; font-weight:700; color:var(--muted); font-size:.9rem; }
.trust-row span::before { content:"✓"; color:var(--magenta); margin-right:7px; }

.hero-visual { min-height:500px; position:relative; }
.network-card {
    position:relative;
    min-height:500px;
    border-radius:42px;
    background:
        radial-gradient(circle at 20% 20%, rgba(243,163,59,.18), transparent 28%),
        radial-gradient(circle at 80% 30%, rgba(50,110,182,.18), transparent 30%),
        linear-gradient(145deg, #fff, #f5f4fb);
    box-shadow:var(--shadow);
    border:1px solid rgba(233,233,240,.9);
}
.network-card::before,
.network-card::after {
    content:"";
    position:absolute;
    inset:50%;
    width:260px;
    height:260px;
    border:1px solid rgba(124,77,163,.17);
    border-radius:50%;
    transform:translate(-50%,-50%);
}
.network-card::after { width:390px; height:390px; border-color:rgba(50,110,182,.12); }
.network-core {
    position:absolute; left:50%; top:50%; transform:translate(-50%,-50%);
    width:118px; height:118px; border-radius:36px;
    display:grid; place-items:center; color:white; font-weight:900; font-size:1.5rem;
    background:var(--gradient); box-shadow:0 22px 50px rgba(124,77,163,.28);
}
.signal {
    position:absolute; padding:14px 18px; border-radius:18px; background:white; color:var(--ink);
    font-weight:800; box-shadow:0 14px 30px rgba(38,36,63,.10); border:1px solid var(--line);
}
.signal-home { left:10%; top:16%; }
.signal-business { right:8%; top:26%; }
.signal-fwa { left:16%; bottom:14%; }

.section { padding:94px 0; }
.section-soft { background:var(--soft); }
.section-dark { background:var(--ink); color:white; }
.section-dark h2 { color:white; margin-bottom:0; }
.section-heading { max-width:700px; margin-bottom:42px; }
.section-heading.centered { text-align:center; margin-inline:auto; }
.cards { display:grid; gap:22px; }
.cards.four { grid-template-columns:repeat(4,1fr); }
.service-card {
    padding:30px; border:1px solid var(--line); border-radius:var(--radius); background:white;
    transition:.2s ease; min-height:280px;
}
.service-card:hover { transform:translateY(-5px); box-shadow:var(--shadow); border-color:transparent; }
.service-card .icon {
    width:54px; height:54px; border-radius:18px; display:grid; place-items:center;
    background:linear-gradient(135deg, rgba(243,163,59,.16), rgba(124,77,163,.14)); color:var(--purple);
    font-size:1.5rem; margin-bottom:28px; font-weight:900;
}
.service-card a { color:var(--purple); font-weight:900; }

.configurator-wrap { max-width:980px; }
.configurator { background:white; border:1px solid var(--line); border-radius:32px; padding:38px; box-shadow:var(--shadow); }
.progress { height:7px; background:var(--soft); border-radius:999px; overflow:hidden; margin-bottom:36px; }
.progress span { display:block; width:33.333%; height:100%; background:var(--gradient); transition:width .25s ease; }
.step { display:none; }
.step.active { display:block; animation:fade .25s ease; }
@keyframes fade { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:none; } }
.choice-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
.choice {
    min-height:150px; padding:24px; text-align:left; border:1px solid var(--line); background:white;
    border-radius:22px; cursor:pointer; transition:.2s ease; color:var(--text);
}
.choice:hover { border-color:var(--purple); transform:translateY(-3px); box-shadow:0 14px 30px rgba(38,36,63,.08); }
.choice strong { display:block; color:var(--ink); font-size:1.15rem; margin-bottom:8px; }
.choice span { display:block; color:var(--muted); }
.back-link { margin-top:22px; border:0; background:none; color:var(--purple); font-weight:800; cursor:pointer; }
.result-card { text-align:center; padding:20px 0; }
.result-badge { display:inline-block; padding:7px 12px; border-radius:999px; background:var(--soft); color:var(--purple); font-weight:900; font-size:.78rem; text-transform:uppercase; letter-spacing:.08em; }
.result-card h3 { font-size:2.4rem; margin:22px 0 12px; }
.result-card p { max-width:620px; margin:0 auto 28px; }
.result-actions { display:flex; justify-content:center; flex-wrap:wrap; gap:12px; }

.coverage-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.coverage-form { padding:30px; border-radius:var(--radius); border:1px solid var(--line); box-shadow:var(--shadow); }
.coverage-form label { display:block; font-weight:800; color:var(--ink); margin-bottom:16px; }
.coverage-form input { display:block; width:100%; min-height:52px; border:1px solid var(--line); border-radius:14px; padding:0 16px; margin-top:7px; outline:none; }
.coverage-form input:focus { border-color:var(--purple); box-shadow:0 0 0 4px rgba(124,77,163,.09); }
.coverage-form .button { width:100%; margin-top:8px; }
.cta-grid { display:flex; align-items:center; justify-content:space-between; gap:30px; }

.site-footer { padding:70px 0 26px; background:#f3f2f7; }
.footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:50px; }
.footer-logo { width:180px; margin-bottom:18px; }
.site-footer h3 { font-size:1rem; text-transform:uppercase; letter-spacing:.08em; }
.site-footer a:hover { color:var(--purple); }
.footer-menu { list-style:none; padding:0; margin:0; }
.footer-bottom { display:flex; justify-content:space-between; gap:20px; padding-top:28px; margin-top:40px; border-top:1px solid #dedde7; font-size:.88rem; color:var(--muted); }
.content-area { max-width:820px; }
.post-card { padding:30px 0; border-bottom:1px solid var(--line); }

@media (max-width: 960px) {
    .hero-grid, .coverage-grid { grid-template-columns:1fr; }
    .hero-visual { min-height:400px; }
    .network-card { min-height:400px; }
    .cards.four { grid-template-columns:repeat(2,1fr); }
    .header-cta { display:none; }
    .menu-toggle { display:block; margin-left:auto; }
    .main-nav { position:absolute; top:76px; left:20px; right:20px; display:none; background:white; border:1px solid var(--line); border-radius:18px; box-shadow:var(--shadow); padding:18px; }
    .main-nav.open { display:block; }
    .menu { flex-direction:column; align-items:flex-start; gap:13px; }
}
@media (max-width: 680px) {
    .container { width:min(calc(100% - 28px), var(--container)); }
    .hero { padding:58px 0; }
    h1 { font-size:clamp(2.5rem, 13vw, 4rem); }
    .hero-visual { min-height:330px; }
    .network-card { min-height:330px; border-radius:28px; }
    .network-card::after { width:280px; height:280px; }
    .network-card::before { width:190px; height:190px; }
    .network-core { width:92px; height:92px; border-radius:28px; }
    .signal { font-size:.8rem; padding:10px 12px; }
    .section { padding:70px 0; }
    .cards.four, .choice-grid, .footer-grid { grid-template-columns:1fr; }
    .configurator { padding:24px 18px; border-radius:24px; }
    .choice { min-height:120px; }
    .cta-grid, .footer-bottom { flex-direction:column; align-items:flex-start; }
}

.brand img,.custom-logo,.footer-logo{background:transparent!important}
.page-hero{padding:88px 0 62px;background:linear-gradient(180deg,#fff,#faf9fd);border-bottom:1px solid var(--line)}
.page-hero h1{max-width:900px;font-size:clamp(2.5rem,5vw,4.6rem)}
.pricing-grid,.support-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:22px}
.price-card,.support-card{padding:32px;border:1px solid var(--line);border-radius:28px;background:#fff;box-shadow:0 12px 32px rgba(38,36,63,.05)}
.price-card{display:flex;flex-direction:column}
.price-card.featured{border-color:rgba(124,77,163,.45);transform:translateY(-8px);box-shadow:var(--shadow)}
.plan-label{color:var(--purple);text-transform:uppercase;font-size:.75rem;font-weight:900;letter-spacing:.09em}
.price{display:flex;align-items:baseline;gap:6px;margin:18px 0;color:var(--ink)}
.price strong{font-size:2rem}
.price-card ul{list-style:none;padding:0;margin:0 0 28px;flex-grow:1}
.price-card li{padding:10px 0 10px 24px;border-bottom:1px solid var(--line);position:relative}
.price-card li:before{content:"✓";position:absolute;left:0;color:var(--magenta);font-weight:900}
.support-card{text-align:center}
.contact-layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:54px;align-items:start}
.contact-details{display:grid;gap:14px}
.contact-box{display:flex;flex-direction:column;gap:4px;padding:20px 22px;border-radius:18px;background:var(--soft);border:1px solid var(--line)}
.contact-box strong{color:var(--ink)}.contact-box a{color:var(--purple);font-weight:800}
.contact-form-card{padding:32px;border:1px solid var(--line);border-radius:28px;box-shadow:var(--shadow)}
.contact-form-card form{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.contact-form-card label{display:flex;flex-direction:column;gap:7px;font-weight:800;color:var(--ink)}
.contact-form-card label:nth-of-type(5),.contact-form-card .privacy-check,.contact-form-card button{grid-column:1/-1}
.contact-form-card input,.contact-form-card select,.contact-form-card textarea{width:100%;border:1px solid var(--line);border-radius:13px;padding:13px 14px;background:#fff}
.contact-form-card .privacy-check{display:block;font-weight:500;font-size:.9rem}
.contact-form-card .privacy-check input{width:auto;margin-right:8px}
.form-success{padding:14px 16px;border-radius:14px;background:#eaf8ef;color:#176637;font-weight:800;margin-bottom:20px}
.legal-content{max-width:860px}.legal-content h2{font-size:1.55rem;margin-top:38px}.legal-content a{color:var(--purple);font-weight:700}
.legal-note{margin-top:36px;padding:20px 22px;background:#fff7e9;border:1px solid #f0d6a6;border-radius:16px}
@media(max-width:900px){.pricing-grid,.support-grid{grid-template-columns:1fr}.price-card.featured{transform:none}.contact-layout{grid-template-columns:1fr}}
@media(max-width:620px){.contact-form-card form{grid-template-columns:1fr}.contact-form-card label{grid-column:1/-1}}

/* v0.5: logo completo al centro della rete */
.network-core {
    width: 150px;
    height: 110px;
    padding: 18px;
    border-radius: 32px;
    background: #fff;
    box-shadow: 0 22px 50px rgba(124,77,163,.22);
}
.network-core img {
    width: 100%;
    height: 100%;
    object-fit: contain;
}
@media (max-width:680px) {
    .network-core {
        width: 125px;
        height: 92px;
        padding: 14px;
        border-radius: 26px;
    }
}
