/* ==========================================================
   Conto Termico 3.0 — Wizard Public — Tema Blu
   ========================================================== */
.ct30-wrap*,.ct30-wrap*::before,.ct30-wrap*::after{box-sizing:border-box;}
.ct30-wrap{max-width:760px;margin:0 auto;font-family:inherit;color:#222;}

/* Progress */
.ct30-progress{margin-bottom:32px;}
.ct30-progress-bar{height:6px;background:#e0e0e0;border-radius:3px;overflow:hidden;margin-bottom:10px;}
.ct30-progress-fill{height:100%;background:#1a56db;border-radius:3px;transition:width .35s ease;width:25%;}
.ct30-steps-labels{display:flex;justify-content:space-between;}
.ct30-step-label{font-size:12px;color:#aaa;transition:color .2s;}
.ct30-step-label.active{color:#1a56db;font-weight:600;}
.ct30-step-label.done{color:#555;}

/* Step */
.ct30-step{animation:ct30FadeIn .25s ease;}
@keyframes ct30FadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
.ct30-step-title{font-size:20px;color:#1a56db;margin-bottom:24px;padding-bottom:10px;border-bottom:2px solid #dce8ff;}

/* Fields */
.ct30-field{margin-bottom:18px;}
.ct30-field-row{display:flex;gap:16px;margin-bottom:18px;}
.ct30-field-row .ct30-field{flex:1;margin-bottom:0;}
.ct30-label{display:block;font-size:14px;font-weight:600;margin-bottom:6px;color:#333;}
.ct30-label .req{color:#c0392b;margin-left:2px;}
.ct30-wrap input[type="text"],.ct30-wrap input[type="email"],.ct30-wrap input[type="number"],.ct30-wrap input[type="tel"],.ct30-wrap select,.ct30-wrap textarea{width:100%;padding:10px 12px;border:1.5px solid #ccc;border-radius:5px;font-size:14px;transition:border-color .2s,box-shadow .2s;background:#fff;}
.ct30-wrap input:focus,.ct30-wrap select:focus{border-color:#1a56db;box-shadow:0 0 0 3px rgba(26,86,219,.12);outline:none;}
.ct30-wrap input[readonly]{background:#f5f5f5;color:#666;}
.ct30-radio-group{display:flex;gap:24px;margin-top:4px;flex-wrap:wrap;}
.ct30-radio-group label{display:flex;align-items:center;gap:6px;font-size:14px;cursor:pointer;}

/* Check cards */
.ct30-checks-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-bottom:24px;}
.ct30-check-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 12px;border:2px solid #e0e0e0;border-radius:8px;cursor:pointer;text-align:center;transition:border-color .2s,background .2s;position:relative;user-select:none;}
.ct30-check-card input[type="checkbox"]{position:absolute;opacity:0;width:0;height:0;}
.ct30-check-card:hover{border-color:#1a56db;background:#f0f4ff;}
.ct30-check-card:has(input:checked){border-color:#1a56db;background:#dce8ff;}
.ct30-check-icon{font-size:28px;}
.ct30-check-label{font-size:13px;font-weight:500;color:#333;line-height:1.3;}
.ct30-check-card.ct30-disabled{opacity:.45;cursor:not-allowed;pointer-events:none;}

/* Alerts */
.ct30-hint{color:#666;font-size:13px;margin-bottom:16px;}
.ct30-alert{padding:12px 16px;border-radius:5px;font-size:13px;margin:8px 0 16px;}
.ct30-alert-warning{background:#fff3cd;border-left:4px solid #f0ad4e;color:#856404;}
.ct30-alert-error{background:#f8d7da;border-left:4px solid #dc3545;color:#842029;}
.ct30-alert-success{background:#dce8ff;border-left:4px solid #1a56db;color:#1a3db0;}

/* Section group (step 3) */
.ct30-section-group{background:#f5f8ff;border:1px solid #dce8ff;border-radius:8px;padding:20px;margin-bottom:20px;}
.ct30-section-group h3{font-size:15px;color:#1a56db;margin:0 0 16px;padding-bottom:8px;border-bottom:1px solid #c7d9ff;}

/* Navigation */
.ct30-nav{display:flex;justify-content:space-between;align-items:center;margin-top:28px;padding-top:20px;border-top:1px solid #eee;}
.ct30-btn{padding:11px 26px;border:none;border-radius:5px;font-size:14px;font-weight:600;cursor:pointer;transition:background .2s,transform .1s;}
.ct30-btn:active{transform:scale(.98);}
.ct30-btn-next,.ct30-btn-calcola{background:#1a56db;color:#fff;}
.ct30-btn-next:hover,.ct30-btn-calcola:hover{background:#1344b0;}
.ct30-btn-prev{background:#f0f0f0;color:#333;}
.ct30-btn-prev:hover{background:#e0e0e0;}
.ct30-btn-reset{background:#6c757d;color:#fff;}
.ct30-btn-reset:hover{background:#565e64;}

/* Loading */
.ct30-loading{text-align:center;padding:48px 0;color:#666;}
.ct30-spinner{width:48px;height:48px;border:5px solid #e0e0e0;border-top-color:#1a56db;border-radius:50%;margin:0 auto 16px;animation:ct30Spin .8s linear infinite;}
@keyframes ct30Spin{to{transform:rotate(360deg)}}

/* Risultati */
.ct30-totale-banner{background:#1a56db;color:#fff;border-radius:8px;padding:20px 24px;margin-bottom:28px;}
.ct30-totale-row{display:flex;justify-content:space-between;align-items:center;padding:6px 0;font-size:15px;border-bottom:1px solid rgba(255,255,255,.15);}
.ct30-totale-row:last-child{border-bottom:none;}
.ct30-incentivo-row{color:#a8c4ff;}
.ct30-netto-row{font-size:20px;font-weight:700;margin-top:8px;padding-top:12px;border-top:2px solid rgba(255,255,255,.3);}
.ct30-dettaglio-table{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:8px;}
.ct30-dettaglio-table th{background:#dce8ff;color:#1a56db;text-align:left;padding:9px 12px;font-weight:600;}
.ct30-dettaglio-table td{padding:9px 12px;border-bottom:1px solid #f0f0f0;}
.ct30-dettaglio-table tr:last-child td{border-bottom:none;}
.ct30-dettaglio-table td:nth-child(2),.ct30-dettaglio-table td:nth-child(3),.ct30-dettaglio-table td:nth-child(4){text-align:right;white-space:nowrap;}
.ct30-inc-val{color:#1a56db;font-weight:600;}
.ct30-email-status{margin-top:16px;padding:12px 16px;border-radius:5px;font-size:13px;text-align:center;}
.ct30-hidden{display:none!important;}

@media(max-width:540px){
  .ct30-checks-grid{grid-template-columns:1fr 1fr;}
  .ct30-field-row{flex-direction:column;}
  .ct30-dettaglio-table{font-size:11px;}
  .ct30-nav{flex-direction:column;gap:12px;}
  .ct30-btn{width:100%;text-align:center;}
}

/* ---- Righe extra nel banner risultati ---- */
.ct30-det-row    { color: #a8c4ff; }
.ct30-rata-row   { color: #fff; font-size:14px; font-weight:600; }
.ct30-esborso-row{ color: #ffd700; font-weight:700; font-size:15px; }
.ct30-risp-row   { color: #90ee90; }

/* ---- Sezione altri incentivi ---- */
.ct30-altri-incentivi {
    margin-top: 24px;
    padding: 16px 20px;
    background: #f5f8ff;
    border: 1px solid #dce8ff;
    border-radius: 8px;
}
.ct30-altri-title {
    font-size: 15px;
    color: #1a56db;
    margin: 0 0 6px;
}

/* ---- Banner titolo ---- */
.ct30-banner-title {
    font-size: 13px;
    font-weight: 700;
    opacity: .7;
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: .5px;
}

/* ---- Banner sezioni COSTI / FINANZIAMENTO ---- */
.ct30-banner-section-title {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .8px;
    opacity: .65;
    margin: 14px 0 6px;
    padding-top: 10px;
    border-top: 1px solid rgba(255,255,255,.15);
}
.ct30-banner-section-title:first-child { border-top: none; margin-top: 4px; }
.ct30-incentivo-row { color: #a8c4ff; }
.ct30-iva-nota {
    font-size: 10px;
    opacity: .55;
    margin-top: 12px;
    font-style: italic;
}
