/* CFE Pricing Assistant - public form. Every rule is scoped to #cfe-ai so site CSS cannot clash. */
#cfe-ai{--brand:#339ac3;--brand-dark:#1f7aa0;--brand-tint:#e8f4f9;--ink:#1f2933;--muted:#5b6770;--line:#d5dee5;--bad:#b42318;--bad-tint:#fdecea;--ok:#1a7f4b;
  color:var(--ink);font-family:inherit}
#cfe-ai .cfe-form{display:block!important;float:none!important;width:auto;box-sizing:border-box;background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 2px 14px rgba(20,50,70,.06)}
@media (max-width:520px){#cfe-ai .cfe-form{padding:16px}}
#cfe-ai .cfe-hp{position:absolute!important;left:-10000px;top:auto;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);visibility:hidden;pointer-events:none}
#cfe-ai [hidden]{display:none!important}
#cfe-ai .cfe-progress{margin-bottom:18px}
#cfe-ai .cfe-progress-label{display:flex;justify-content:space-between;gap:10px;font-size:.85rem;color:var(--muted);margin-bottom:6px}
#cfe-ai #cfe-step-title{font-weight:600;color:var(--ink);text-align:right}
#cfe-ai .cfe-bar{height:8px;background:#e6edf2;border-radius:99px;overflow:hidden}
#cfe-ai .cfe-bar-fill{height:100%;background:var(--brand);border-radius:99px;transition:width .35s ease}
#cfe-ai .cfe-bubble{display:flex;gap:12px;align-items:flex-start;margin:0 0 14px}
#cfe-ai .cfe-avatar{flex:0 0 auto;width:40px;height:40px;border-radius:50%;background:var(--brand);color:#fff;font-weight:700;font-size:.72rem;letter-spacing:.04em;display:grid;place-items:center}
#cfe-ai .cfe-bubble-body{background:var(--brand-tint);border-radius:4px 14px 14px 14px;padding:11px 15px;position:relative;min-height:44px}
#cfe-ai .cfe-bubble-text{margin:0;font-size:.98rem}
#cfe-ai .cfe-typing{display:none;gap:5px;align-items:center;height:22px}
#cfe-ai .cfe-typing i{width:8px;height:8px;border-radius:50%;background:var(--brand);opacity:.35;animation:cfe-blink 1s infinite}
#cfe-ai .cfe-typing i:nth-child(2){animation-delay:.15s}
#cfe-ai .cfe-typing i:nth-child(3){animation-delay:.3s}
@keyframes cfe-blink{0%,80%,100%{opacity:.25}40%{opacity:1}}
#cfe-ai .cfe-bubble.is-typing .cfe-typing{display:flex}
#cfe-ai .cfe-bubble.is-typing .cfe-bubble-text{display:none}
@media (prefers-reduced-motion:reduce){#cfe-ai .cfe-typing i{animation:none;opacity:.6}
#cfe-ai .cfe-bar-fill{transition:none}}
#cfe-ai .cfe-step-title{font-size:1.2rem;margin:4px 0 14px}
.js #cfe-ai .cfe-step{display:none}
.js #cfe-ai .cfe-step.is-active{display:block;animation:cfe-in .25s ease}
@keyframes cfe-in{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.js #cfe-ai .cfe-step.is-active{animation:none}}
#cfe-ai .cfe-step{margin-bottom:8px}
#cfe-ai .cfe-field{margin:0 0 18px}
#cfe-ai .cfe-field[hidden]{display:none}
#cfe-ai .cfe-field label,#cfe-ai .cfe-field legend{display:block;font-weight:600;margin:0 0 6px;padding:0}
#cfe-ai .cfe-field fieldset{border:0;margin:0;padding:0;min-width:0}
#cfe-ai .cfe-req{color:var(--bad)}
#cfe-ai .cfe-field input[type=text],#cfe-ai .cfe-field input[type=email],#cfe-ai .cfe-field input[type=tel],#cfe-ai .cfe-field input[type=url],#cfe-ai .cfe-field textarea{width:100%;font:inherit;font-size:1rem;padding:11px 12px;border:1.5px solid var(--line);border-radius:9px;background:#fff;color:var(--ink)}
#cfe-ai .cfe-field textarea{resize:vertical;min-height:110px}
#cfe-ai .cfe-field input:focus,#cfe-ai .cfe-field textarea:focus{outline:3px solid rgba(51,154,195,.35);border-color:var(--brand)}
#cfe-ai .cfe-help{margin:6px 0 0;font-size:.88rem;color:var(--muted)}
#cfe-ai .cfe-help.is-warn{color:#8a4b00;font-weight:600}
#cfe-ai .cfe-note{margin:4px 0 18px;padding:10px 12px;background:#fff7e6;border:1px solid #f2d9a0;border-radius:8px;font-size:.92rem;font-weight:600}
#cfe-ai .cfe-err{color:var(--bad);font-size:.88rem;margin-top:6px;min-height:0}
#cfe-ai .cfe-err:empty{display:none}
#cfe-ai .has-error input[type=text],#cfe-ai .has-error input[type=email],#cfe-ai .has-error input[type=tel],#cfe-ai .has-error input[type=url],#cfe-ai .has-error textarea{border-color:var(--bad);background:var(--bad-tint)}
#cfe-ai .has-error .cfe-opts{outline:2px solid var(--bad);outline-offset:3px;border-radius:10px}
#cfe-ai .cfe-opts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
#cfe-ai .cfe-opts-compact{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px}
#cfe-ai .cfe-opt{display:flex;gap:10px;align-items:flex-start;padding:11px 12px;border:1.5px solid var(--line);border-radius:10px;cursor:pointer;background:#fff;font-weight:400!important;margin:0!important;transition:border-color .15s,background .15s}
#cfe-ai .cfe-field label.cfe-opt{display:flex}
#cfe-ai .cfe-opt:hover{border-color:var(--brand)}
#cfe-ai .cfe-opt input{flex:0 0 auto;width:18px;height:18px;margin:2px 0 0;accent-color:var(--brand)}
#cfe-ai .cfe-opt-text{display:flex;flex-direction:column;gap:2px;min-width:0}
#cfe-ai .cfe-opt-label{font-weight:600}
#cfe-ai .cfe-opt-hint{font-size:.86rem;color:var(--muted)}
#cfe-ai .cfe-opt:has(input:checked){border-color:var(--brand);background:var(--brand-tint)}
#cfe-ai .cfe-opt:has(input:focus-visible){outline:3px solid rgba(51,154,195,.4)}
#cfe-ai .cfe-agree{align-items:flex-start}
#cfe-ai .cfe-agree .cfe-opt-label{font-weight:400}
#cfe-ai .cfe-alert{background:var(--bad-tint);border:1px solid #f1b8b2;color:#7a1d14;padding:11px 14px;border-radius:9px;margin:0 0 16px;font-size:.95rem}
#cfe-ai .cfe-alert[hidden]{display:none}
#cfe-ai .cfe-nav{display:flex!important;float:none!important;clear:both;justify-content:space-between;gap:12px;margin-top:8px;padding-top:16px;border-top:1px solid #edf1f4}
#cfe-ai .cfe-nav [hidden]{display:none}
#cfe-ai .cfe-btn{float:none!important;position:static!important;box-shadow:none;font:inherit;font-weight:700;padding:12px 24px;border-radius:10px;border:2px solid transparent;cursor:pointer;min-width:120px}
#cfe-ai .cfe-btn-primary{background:var(--brand);color:#fff;margin-left:auto}
#cfe-ai .cfe-btn-primary:hover{background:var(--brand-dark)}
#cfe-ai .cfe-btn-ghost{background:#fff;color:var(--ink);border-color:var(--line)}
#cfe-ai .cfe-btn-ghost:hover{border-color:var(--brand)}
#cfe-ai .cfe-btn[disabled]{opacity:.65;cursor:progress}
#cfe-ai .cfe-btn:focus-visible{outline:3px solid rgba(51,154,195,.5);outline-offset:2px}
#cfe-ai .cfe-summary{display:grid;gap:14px}
#cfe-ai .cfe-sum-block{border:1px solid var(--line);border-radius:10px;overflow:hidden}
#cfe-ai .cfe-sum-block h3{margin:0;padding:8px 14px;background:#f1f6f9;font-size:.85rem;text-transform:uppercase;letter-spacing:.05em;color:var(--brand-dark);display:flex;justify-content:space-between;align-items:center}
#cfe-ai .cfe-sum-block h3 button{background:none;border:0;color:var(--brand-dark);font:inherit;font-size:.82rem;text-transform:none;letter-spacing:0;text-decoration:underline;cursor:pointer}
#cfe-ai .cfe-sum-block dl{margin:0;padding:6px 14px 10px}
#cfe-ai .cfe-sum-block dt{font-size:.82rem;color:var(--muted);margin-top:8px}
#cfe-ai .cfe-sum-block dd{margin:0;font-weight:600;overflow-wrap:anywhere}
#cfe-ai .cfe-thanks{background:#fff;border:1px solid var(--line);border-radius:14px;padding:30px 24px;text-align:center}
#cfe-ai .cfe-check{width:60px;height:60px;border-radius:50%;background:var(--ok);color:#fff;font-size:30px;display:grid;place-items:center;margin:0 auto 14px}
#cfe-ai .cfe-thanks h2{margin:0 0 10px}

/* ---- Defensive resets so the site's global CSS cannot distort the form ---- */
#cfe-ai,#cfe-ai *,#cfe-ai *::before,#cfe-ai *::after{box-sizing:border-box}
#cfe-ai{clear:both;line-height:1.5}
#cfe-ai fieldset{border:0;margin:0;padding:0;min-width:0;background:none;float:none}
#cfe-ai legend{float:none;width:auto;padding:0;display:block;border:0}
#cfe-ai label{float:none;width:auto;text-transform:none}
#cfe-ai input[type=checkbox],#cfe-ai input[type=radio]{-webkit-appearance:auto;appearance:auto;width:18px;height:18px;padding:0;margin:2px 0 0;border:0;box-shadow:none;background:none;float:none;flex:0 0 auto}
#cfe-ai .cfe-field input[type=text],#cfe-ai .cfe-field input[type=email],#cfe-ai .cfe-field input[type=tel],#cfe-ai .cfe-field input[type=url],#cfe-ai .cfe-field textarea{width:100%;max-width:100%;height:auto;float:none;box-shadow:none;line-height:1.4;margin:0}
#cfe-ai button{text-transform:none;letter-spacing:normal;text-shadow:none;box-shadow:none;line-height:1.2;height:auto;float:none}
#cfe-ai p{margin-top:0}
#cfe-ai h2{text-transform:none;float:none;letter-spacing:normal}
#cfe-ai ul,#cfe-ai ol{list-style:none;margin:0;padding:0}
/* keep label colours independent of site-wide label styles */
#cfe-ai .cfe-field label,#cfe-ai .cfe-field legend{color:var(--ink)}

#cfe-ai .cfe-row{display:flex;flex-wrap:wrap;gap:0 12px}
#cfe-ai .cfe-row>.cfe-field{flex:1 1 140px;min-width:0}
#cfe-ai .cfe-step,#cfe-ai .cfe-bubble-body,#cfe-ai .cfe-progress,#cfe-ai .cfe-review{box-sizing:border-box}
