/* ═══════════════════════════════════════════════════════
   Stima Immobile Levanto v2.3 — Brand palette
   #1A1A2E dark blue · #C8112A red · #F0C428 gold
═══════════════════════════════════════════════════════ */

:root {
    --sil-dark:  #1A1A2E;
    --sil-dark2: #2d2d4e;
    --sil-red:   #C8112A;
    --sil-red2:  #a50e22;
    --sil-gold:  #F0C428;
    --sil-white: #ffffff;
    --sil-grey0: #f5f6f8;
    --sil-grey1: #eaecf0;
    --sil-grey2: #c8cbd4;
    --sil-grey3: #8a8d9a;
    --sil-text:  #1e1f2e;
    --sil-muted: #5a5d6e;
    --sil-green: #1d9e75;
    --sil-r:     10px;
    --sil-sh:    0 4px 24px rgba(26,26,46,.10);
}

/* ── Hero ─────────────────────────────────────────── */
.sil-hero {
    background: linear-gradient(135deg,var(--sil-dark) 0%,#23234a 100%);
    color: var(--sil-white);
    padding: 64px 24px 72px;
    position: relative;
    overflow: hidden;
}
.sil-hero::before {
    content:''; position:absolute; top:-60px; right:-80px;
    width:340px; height:340px; border-radius:50%;
    background:rgba(200,17,42,.12); pointer-events:none;
}
.sil-hero::after {
    content:''; position:absolute; bottom:-40px; left:-60px;
    width:220px; height:220px; border-radius:50%;
    background:rgba(240,196,40,.07); pointer-events:none;
}
.sil-hero-inner {
    max-width:720px; margin:0 auto;
    text-align:center; position:relative; z-index:1;
}
.sil-hero-badge {
    display:inline-block;
    background:rgba(240,196,40,.18); color:var(--sil-gold);
    border:1px solid rgba(240,196,40,.35); border-radius:20px;
    padding:5px 16px; font-size:.78rem; font-weight:600;
    text-transform:uppercase; letter-spacing:.08em; margin-bottom:22px;
}
.sil-hero-title {
    font-size:clamp(1.8rem,4vw,2.8rem); font-weight:800;
    line-height:1.2; margin:0 0 16px; color:var(--sil-white);
}
.sil-hero-sub {
    font-size:1.05rem; color:rgba(255,255,255,.75);
    line-height:1.7; margin:0 auto 36px; max-width:560px;
}
.sil-hero-stats { display:flex; justify-content:center; gap:40px; flex-wrap:wrap; }
.sil-hero-stat  { text-align:center; }
.sil-hero-num   {
    display:block; font-size:1.8rem; font-weight:800;
    color:var(--sil-gold); line-height:1; margin-bottom:4px;
}
.sil-hero-lbl {
    font-size:.78rem; color:rgba(255,255,255,.6);
    text-transform:uppercase; letter-spacing:.06em;
}

/* ── Wrapper ──────────────────────────────────────── */
#sil-wrap {
    max-width:800px; margin:0 auto;
    font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;
    color:var(--sil-text); line-height:1.5;
    padding:40px 20px 60px;
}
.sil-valutazione-page #sil-wrap { padding-top:48px; }

.sil-step {
    background:var(--sil-white);
    border:1px solid var(--sil-grey1);
    border-radius:16px;
    padding:36px 40px;
    box-shadow:var(--sil-sh);
    animation:sil-fadein .35s ease;
}
@media(max-width:580px){ .sil-step{ padding:24px 18px; } }
@keyframes sil-fadein { from{opacity:0;transform:translateY(10px)} to{opacity:1;transform:none} }

/* ── Step dots ────────────────────────────────────── */
.sil-dots {
    display:flex; justify-content:center;
    align-items:center; margin-bottom:28px;
}
.sil-dot {
    width:32px; height:32px; border-radius:50%;
    background:var(--sil-grey1); border:2px solid var(--sil-grey2);
    display:flex; align-items:center; justify-content:center;
    font-size:.72rem; font-weight:700; color:var(--sil-grey3);
    flex-shrink:0; transition:all .3s; position:relative; z-index:1;
}
.sil-dots-line {
    flex:1; height:2px; background:var(--sil-grey1); max-width:80px;
}
.sil-dot.active { background:var(--sil-dark); border-color:var(--sil-dark); color:var(--sil-white); }
.sil-dot.done   { background:var(--sil-green); border-color:var(--sil-green); color:var(--sil-white); }

/* ── Header ───────────────────────────────────────── */
.sil-header { text-align:center; margin-bottom:32px; }
.sil-header h3 { font-size:1.5rem; font-weight:700; margin:0 0 8px; color:var(--sil-dark); }
.sil-header p  { font-size:.95rem; color:var(--sil-muted); margin:0; }

/* ── Sezione label ────────────────────────────────── */
.sil-section-label {
    font-size:.72rem; font-weight:700; text-transform:uppercase;
    letter-spacing:.1em; color:var(--sil-red);
    margin:8px 0 4px; padding-bottom:8px;
    border-bottom:2px solid var(--sil-grey1);
    grid-column:1/-1;
}

/* ── Grid / Campi ─────────────────────────────────── */
.sil-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }
@media(max-width:580px){ .sil-grid{ grid-template-columns:1fr; } }
.sil-field { display:flex; flex-direction:column; gap:6px; }
.sil-field.sil-full { grid-column:1/-1; }

.sil-field label {
    font-size:.77rem; font-weight:600; color:var(--sil-dark);
    text-transform:uppercase; letter-spacing:.05em;
}
.sil-field input[type="text"],
.sil-field input[type="email"],
.sil-field input[type="tel"],
.sil-field input[type="number"],
.sil-field select,
.sil-field textarea {
    padding:11px 14px;
    border:1.5px solid var(--sil-grey2);
    border-radius:var(--sil-r);
    font-size:.95rem; background:var(--sil-white);
    color:var(--sil-text);
    transition:border-color .2s, box-shadow .2s;
    width:100%; box-sizing:border-box;
    font-family:inherit;
    -webkit-appearance:none; appearance:none;
}
.sil-field select {
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%235a5d6e' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat; background-position:right 14px center;
    padding-right:36px;
}
.sil-field input:focus, .sil-field select:focus, .sil-field textarea:focus {
    outline:none; border-color:var(--sil-dark);
    box-shadow:0 0 0 3px rgba(26,26,46,.08);
}

/* ── Checkboxes ───────────────────────────────────── */
.sil-checks { display:flex; flex-wrap:wrap; gap:8px; }
.sil-checks label {
    display:flex; align-items:center; gap:7px;
    font-size:.87rem; font-weight:500;
    text-transform:none; letter-spacing:0;
    cursor:pointer;
    background:var(--sil-grey0); border:1.5px solid var(--sil-grey1);
    border-radius:8px; padding:7px 14px;
    transition:border-color .2s, background .2s;
    color:var(--sil-text);
}
.sil-checks label:hover { border-color:var(--sil-dark); background:var(--sil-white); }
.sil-checks input[type="checkbox"] { accent-color:var(--sil-dark); }

/* ── Toggle ───────────────────────────────────────── */
.sil-toggle-label {
    display:flex !important; align-items:center !important; gap:12px;
    cursor:pointer; font-weight:500 !important; font-size:.92rem !important;
    text-transform:none !important; letter-spacing:0 !important;
    color:var(--sil-dark) !important;
    background:rgba(26,26,46,.04); border:1.5px solid rgba(26,26,46,.12);
    border-radius:var(--sil-r); padding:12px 16px; transition:background .2s;
}
.sil-toggle-label:hover { background:rgba(26,26,46,.07); }
.sil-toggle-label input { accent-color:var(--sil-dark); width:18px; height:18px; flex-shrink:0; }

/* ── Pulsanti ─────────────────────────────────────── */
.sil-btn {
    display:inline-flex; align-items:center; gap:8px;
    background:var(--sil-red); color:var(--sil-white);
    border:none; border-radius:var(--sil-r);
    padding:13px 30px; font-size:1rem; font-weight:700;
    cursor:pointer; font-family:inherit; letter-spacing:.01em;
    box-shadow:0 4px 14px rgba(200,17,42,.25);
    transition:background .2s, transform .15s, box-shadow .2s;
}
.sil-btn:hover { background:var(--sil-red2); transform:translateY(-2px); box-shadow:0 6px 20px rgba(200,17,42,.35); }
.sil-btn:active { transform:none; box-shadow:none; }
.sil-btn:disabled { opacity:.55; cursor:default; transform:none; box-shadow:none; }
.sil-btn-outline {
    background:transparent; color:var(--sil-dark);
    border:2px solid var(--sil-grey2); box-shadow:none;
}
.sil-btn-outline:hover { background:var(--sil-grey0); border-color:var(--sil-dark); box-shadow:none; transform:none; }
.sil-action-row { display:flex; gap:12px; margin-top:28px; justify-content:flex-end; flex-wrap:wrap; }

/* ── Errori ───────────────────────────────────────── */
.sil-error {
    background:#fff5f5; border:1px solid #fcc;
    border-left:3px solid var(--sil-red); border-radius:var(--sil-r);
    padding:10px 14px; font-size:.87rem; color:#9b1c1c; margin-top:10px;
}

/* ── Risultato ────────────────────────────────────── */
.sil-result-box {
    background:linear-gradient(135deg,var(--sil-dark) 0%,#252550 100%);
    color:var(--sil-white); border-radius:14px;
    padding:36px 28px; text-align:center;
    margin-bottom:20px; position:relative; overflow:hidden;
}
.sil-result-box::before {
    content:''; position:absolute; top:-30px; right:-30px;
    width:160px; height:160px; border-radius:50%;
    background:rgba(240,196,40,.08); pointer-events:none;
}
.sil-result-label { font-size:.75rem; text-transform:uppercase; letter-spacing:.1em; color:rgba(255,255,255,.6); margin-bottom:10px; }
.sil-result-range { font-size:2.4rem; font-weight:900; color:var(--sil-gold); margin-bottom:10px; line-height:1.1; }
.sil-result-mqp   { font-size:.88rem; color:rgba(255,255,255,.65); }

/* ── Affidabilità ─────────────────────────────────── */
#sil-affidabilita-box {
    background:var(--sil-grey0); border:1px solid var(--sil-grey1);
    border-radius:var(--sil-r); padding:16px 20px; margin-bottom:16px;
}
.sil-aff-label { font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--sil-muted); margin-bottom:10px; }
.sil-aff-bar-wrap { height:8px; background:var(--sil-grey1); border-radius:4px; overflow:hidden; margin-bottom:8px; }
.sil-aff-bar { height:100%; width:0; border-radius:4px; transition:width .9s cubic-bezier(.4,0,.2,1), background .4s; }
.sil-aff-desc { font-size:.83rem; color:var(--sil-muted); }

/* ── Comparabili ──────────────────────────────────── */
#sil-comparabili-box {
    border:1px solid var(--sil-grey1); border-top:3px solid var(--sil-dark);
    border-radius:var(--sil-r); margin-bottom:20px; overflow:hidden; background:var(--sil-white);
}
.sil-comp-header {
    background:var(--sil-dark); color:var(--sil-white);
    padding:11px 18px; font-size:.75rem; font-weight:700;
    text-transform:uppercase; letter-spacing:.08em;
}
.sil-comp-item { padding:14px 18px; border-bottom:1px solid var(--sil-grey1); transition:background .15s; }
.sil-comp-item:last-child { border-bottom:none; }
.sil-comp-item:hover { background:var(--sil-grey0); }
.sil-comp-info { font-size:.88rem; color:var(--sil-text); margin-bottom:7px; }
.sil-comp-tipo {
    display:inline-block; background:var(--sil-dark); color:var(--sil-white);
    font-size:.68rem; font-weight:700; text-transform:uppercase;
    letter-spacing:.06em; padding:2px 8px; border-radius:4px; margin-right:6px;
}
.sil-comp-dati { display:flex; gap:20px; flex-wrap:wrap; font-size:.85rem; font-weight:600; color:var(--sil-dark); }
.sil-comp-data { color:var(--sil-grey3); font-weight:400; }

/* ── AI box ───────────────────────────────────────── */
.sil-ai-box {
    border:1px solid var(--sil-grey1); border-left:3px solid var(--sil-gold);
    border-radius:var(--sil-r); margin-bottom:20px; overflow:hidden; background:var(--sil-white);
}
.sil-ai-header { background:rgba(240,196,40,.12); padding:10px 16px; font-size:.75rem; font-weight:700; color:#7a5c00; text-transform:uppercase; letter-spacing:.07em; }
.sil-ai-body   { padding:16px 18px; font-size:.94rem; color:var(--sil-text); line-height:1.75; min-height:50px; display:flex; align-items:center; }

/* ── Spinner ──────────────────────────────────────── */
.sil-spinner {
    width:26px; height:26px; border:3px solid var(--sil-grey1);
    border-top-color:var(--sil-dark); border-radius:50%;
    animation:sil-spin .75s linear infinite; margin:0 auto;
}
@keyframes sil-spin { to{ transform:rotate(360deg); } }

/* ── Disclaimer ───────────────────────────────────── */
.sil-disclaimer {
    background:rgba(240,196,40,.08); border:1px solid rgba(240,196,40,.3);
    border-radius:var(--sil-r); padding:12px 16px;
    font-size:.84rem; color:#5a4800; margin-bottom:22px; line-height:1.65;
}

/* ── Privacy ──────────────────────────────────────── */
.sil-privacy { margin-top:16px; font-size:.82rem; color:var(--sil-muted); line-height:1.6; }
.sil-privacy label { display:flex; align-items:flex-start; gap:9px; cursor:pointer; font-weight:400; font-size:.82rem; text-transform:none; letter-spacing:0; color:var(--sil-muted); }
.sil-privacy input { margin-top:3px; accent-color:var(--sil-dark); flex-shrink:0; }

/* ── Grazie ───────────────────────────────────────── */
.sil-thanks { text-align:center; padding:52px 24px; }
.sil-thanks-icon {
    width:72px; height:72px; background:var(--sil-green);
    border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-size:30px; color:var(--sil-white); margin:0 auto 22px;
    box-shadow:0 8px 24px rgba(29,158,117,.3);
}
.sil-thanks h3 { font-size:1.5rem; color:var(--sil-dark); margin:0 0 12px; font-weight:700; }
.sil-thanks p  { color:var(--sil-muted); font-size:.97rem; line-height:1.7; margin:0 0 8px; }
.sil-thanks a  { color:var(--sil-red); font-weight:600; text-decoration:none; }
.sil-thanks a:hover { text-decoration:underline; }

/* ── CTA Button [stima_bottone] ───────────────────── */
.sil-cta-btn {
    display:inline-flex; align-items:center; gap:10px;
    text-decoration:none; border-radius:var(--sil-r);
    padding:15px 32px; font-size:1rem; font-weight:700;
    font-family:inherit; transition:all .2s; cursor:pointer; letter-spacing:.01em;
}
.sil-cta-primario   { background:var(--sil-red); color:var(--sil-white); box-shadow:0 4px 18px rgba(200,17,42,.28); }
.sil-cta-primario:hover  { background:var(--sil-red2); transform:translateY(-2px); box-shadow:0 8px 24px rgba(200,17,42,.38); color:var(--sil-white); }
.sil-cta-secondario { background:var(--sil-dark); color:var(--sil-white); box-shadow:0 4px 18px rgba(26,26,46,.25); }
.sil-cta-secondario:hover { background:var(--sil-dark2); transform:translateY(-2px); color:var(--sil-white); }
.sil-cta-outline    { background:transparent; color:var(--sil-dark); border:2px solid var(--sil-dark); }
.sil-cta-outline:hover { background:var(--sil-dark); color:var(--sil-white); }
.sil-cta-arrow { display:inline-block; transition:transform .2s; }
.sil-cta-btn:hover .sil-cta-arrow { transform:translateX(4px); }

/* ── Responsive ───────────────────────────────────── */
@media(max-width:480px){
    .sil-result-range { font-size:1.8rem; }
    .sil-hero-stats   { gap:24px; }
    .sil-hero-num     { font-size:1.4rem; }
    .sil-cta-btn, .sil-action-row .sil-btn, .sil-action-row .sil-btn-outline {
        width:100%; justify-content:center;
    }
    .sil-action-row { flex-direction:column-reverse; }
}
