/* ============================================
   Calculator Widget Styles
   ============================================ */
.cf-card { background:#fff; border-radius:16px; border:1px solid #E2E8F0; box-shadow:0 4px 24px rgba(15,23,42,0.08); overflow:hidden; font-family:'DM Sans',system-ui,sans-serif; }
.cf-hdr { background:linear-gradient(135deg,#0F172A 0%,#1E293B 100%); padding:18px 24px; color:#fff; }
.cf-hdr__title { font-family:'Fraunces',Georgia,serif; font-size:1.12rem; font-weight:700; margin-bottom:4px; }
.cf-hdr__sub { font-size:0.8rem; color:#94A3B8; line-height:1.5; }
.cf-body { padding:20px 24px; }
.cf-dots { display:flex; justify-content:center; gap:6px; margin-bottom:12px; }
.cf-dot { width:8px; height:8px; border-radius:4px; background:#E2E8F0; transition:all 0.2s; }
.cf-dot--active { width:24px; background:#2563EB; }
.cf-step-label { font-size:0.76rem; color:#94A3B8; text-align:center; margin-bottom:12px; }
.cf-field { margin-bottom:12px; }
.cf-label { display:block; font-size:0.86rem; font-weight:600; color:#0F172A; margin-bottom:7px; }
.cf-sel { width:100%; padding:11px 13px; border-radius:8px; border:1px solid #E2E8F0; font-size:0.9rem; font-family:'DM Sans',sans-serif; color:#0F172A; background:#fff; cursor:pointer; appearance:auto; }
.cf-inp { width:100%; padding:11px 13px; border-radius:8px; border:1px solid #E2E8F0; font-size:0.9rem; font-family:'DM Sans',sans-serif; color:#0F172A; box-sizing:border-box; }
.cf-opt { display:block; width:100%; text-align:left; padding:10px 13px; border-radius:8px; cursor:pointer; border:1px solid #E2E8F0; background:#fff; color:#0F172A; font-size:0.85rem; font-weight:400; font-family:'DM Sans',sans-serif; margin-bottom:5px; transition:all 0.12s; }
.cf-opt:hover { border-color:#CBD5E1; }
.cf-opt--active { border:2px solid #2563EB; background:#EFF6FF; font-weight:600; }
.cf-btns { display:flex; gap:8px; margin-top:8px; }
.cf-btn-primary { flex:1; padding:12px 20px; border-radius:8px; border:none; cursor:pointer; background:#2563EB; color:#fff; font-size:0.95rem; font-weight:600; font-family:'DM Sans',sans-serif; transition:all 0.15s; }
.cf-btn-primary:hover { background:#1D4ED8; }
.cf-btn--disabled { opacity:0.5; cursor:not-allowed; }
.cf-btn-back { padding:13px 18px; border-radius:8px; border:1px solid #E2E8F0; cursor:pointer; background:#fff; color:#475569; font-size:0.88rem; font-weight:500; font-family:'DM Sans',sans-serif; }
.cf-result { background:linear-gradient(135deg,#F0FDF4,#ECFDF5); border:1px solid #BBF7D0; border-radius:12px; padding:18px 20px; margin-bottom:14px; }
.cf-result__headline { font-family:'Fraunces',Georgia,serif; font-size:1.05rem; font-weight:700; color:#0F172A; margin-bottom:4px; }
.cf-result__range-label { font-size:0.8rem; color:#475569; margin-bottom:8px; }
.cf-result__range { font-size:1.45rem; font-weight:700; color:#16A34A; margin-bottom:12px; }
.cf-result__body { font-size:0.86rem; color:#475569; line-height:1.6; margin-bottom:10px; }
.cf-result__note { font-size:0.8rem; color:#64748B; font-style:italic; margin-bottom:5px; }
.cf-checklist { margin-bottom:12px; }
.cf-checklist__title { font-size:0.83rem; font-weight:600; color:#0F172A; margin-bottom:8px; }
.cf-check { display:flex; gap:7px; align-items:flex-start; font-size:0.8rem; color:#475569; margin-bottom:5px; }
.cf-check__icon { color:#16A34A; flex-shrink:0; margin-top:1px; }
.cf-disclaimer { font-size:0.72rem; color:#94A3B8; line-height:1.5; margin-top:10px; border-top:1px solid #E2E8F0; padding-top:8px; }
.cf-consent { font-size:0.76rem; color:#64748B; line-height:1.6; margin-top:10px; background:#F8FAFC; padding:12px; border-radius:8px; }
.cf-contact-intro { margin-bottom:16px; }
.cf-contact-intro strong { font-size:0.92rem; color:#0F172A; }
.cf-contact-intro p { font-size:0.83rem; color:#475569; line-height:1.6; margin-top:4px; }
.cf-shield { display:flex; align-items:center; gap:5px; justify-content:center; margin-top:10px; font-size:0.76rem; color:#94A3B8; }
.cf-confirm { text-align:center; padding:16px 0; }
.cf-confirm__icon { width:56px; height:56px; border-radius:50%; background:#DCFCE7; display:flex; align-items:center; justify-content:center; margin:0 auto 14px; color:#16A34A; font-size:24px; font-weight:700; }
.cf-confirm__title { font-family:'Fraunces',Georgia,serif; font-size:1.1rem; font-weight:700; margin-bottom:8px; }
.cf-confirm__text { font-size:0.88rem; color:#475569; line-height:1.6; margin-bottom:12px; }
.cf-confirm__note { font-size:0.8rem; color:#94A3B8; line-height:1.6; }
