/* Quote funnel. Reserved height keeps the page from jumping while funnel.js loads. */
.fn{min-height:640px;position:relative}
.fn-top{margin-bottom:22px}
.fn-step-l{margin:0 0 8px;font:500 .78rem/1.3 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--steel)}
.fn-bar{height:8px;background:var(--sky);border-radius:99px;overflow:hidden}
.fn-bar i{display:block;height:100%;width:16.66%;background:var(--blue);border-radius:99px;transform-origin:left}
.fn-step{border:0;margin:0;padding:0;min-width:0}
.fn-step[hidden]{display:none}
.fn-step legend{display:block;padding:0;margin:0 0 6px;font:700 clamp(1.45rem,3vw,1.85rem)/1.2 var(--display);letter-spacing:-.015em;color:var(--ink)}
.fn-step legend:focus{outline:0}
.fn-sub{margin:0 0 16px;color:var(--steel);font-size:.97rem}
.fn-step legend+.fn-cards,.fn-step legend+.fn-f{margin-top:18px}
.fn-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fn-one{grid-template-columns:minmax(0,1fr)}
.fn-card{position:relative;display:flex;align-items:center;min-height:60px;padding:12px 14px 12px 50px;border:2px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-weight:600;line-height:1.3;transition:border-color .15s,background-color .15s}
.fn-card:hover{border-color:var(--blue)}
.fn-card input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.fn-card::before{content:"";position:absolute;left:14px;top:50%;width:22px;height:22px;margin-top:-11px;border:2px solid var(--ink);background:#fff;border-radius:4px}
.fn-one .fn-card::before{border-radius:50%}
.fn-card:has(input:checked){border-color:var(--ink);background:#FFF6D9}
.fn-card:has(input:checked)::before{background:var(--tape)}
.fn-card:has(input:checked)::after{content:"";position:absolute;left:20px;top:50%;width:10px;height:6px;margin-top:-5px;border-left:2.5px solid var(--ink);border-bottom:2.5px solid var(--ink);transform:rotate(-45deg)}
.fn-one .fn-card:has(input:checked)::after{left:21px;top:50%;width:8px;height:8px;margin-top:-4px;border:0;border-radius:50%;background:var(--ink);transform:none}
.fn-card:has(input:focus-visible),.fn-pill:has(input:focus-visible),.fn-check:has(input:focus-visible){outline:3px solid var(--tape);outline-offset:3px}
.fn-hint{margin:16px 0 0;padding:12px 16px;background:var(--sky);border-left:5px solid var(--tape);border-radius:0 8px 8px 0;font-size:.96rem;color:var(--ink-2)}
.fn-hint:empty{display:none}
.fn-f{display:block;margin-top:14px}
.fn-f>span{display:block;margin-bottom:6px;font-weight:600;font-size:.95rem}
.fn-f input,.fn-f textarea{width:100%;min-height:52px;padding:12px 14px;border:2px solid var(--line);border-radius:8px;background:#fff;color:var(--ink);font:inherit;font-size:1.0625rem}
.fn-f textarea{min-height:140px;resize:vertical}
.fn-f input:focus,.fn-f textarea:focus{border-color:var(--blue);outline:0}
.fn-f input[aria-invalid=true]{border-color:#B3261E}
.fn-zip{max-width:200px}
.fn-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 14px}
.fn-prefs{display:flex;gap:10px;flex-wrap:wrap}
.fn-pill{position:relative;flex:1 1 90px}
.fn-pill input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.fn-pill span{display:grid;place-items:center;min-height:50px;border:2px solid var(--line);border-radius:10px;font-weight:600;background:#fff}
.fn-pill input:checked+span{border-color:var(--ink);background:var(--tape)}
.fn-count{display:flex;justify-content:space-between;gap:12px;margin:8px 0 0;font-size:.9rem;color:var(--steel)}
.fn-count b{font:500 .8rem/1.6 var(--mono)}
.fn-note,.fn-fine{margin:12px 0 0;font-size:.9rem;color:var(--steel)}
.fn-fine{font-size:.82rem}
.fn-check{display:flex;gap:12px;align-items:flex-start;margin-top:16px;font-size:.88rem;line-height:1.5;color:var(--ink-2);cursor:pointer}
.fn-check input{appearance:none;flex:none;width:22px;height:22px;margin:1px 0 0;border:2px solid var(--ink);border-radius:4px;background:#fff;display:grid;place-items:center;cursor:pointer}
.fn-check input:checked{background:var(--tape)}
.fn-check input:checked::after{content:"";width:11px;height:6px;border-left:2.5px solid var(--ink);border-bottom:2.5px solid var(--ink);transform:rotate(-45deg) translate(1px,-1px)}
.fn-err{margin:14px 0 0;padding:10px 14px;background:#FDECEA;border-left:5px solid #B3261E;border-radius:0 8px 8px 0;color:#7A1812;font-weight:600;font-size:.95rem}
.fn-err[hidden]{display:none}
.fn-err a{color:inherit}
.fn-nav{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:22px}
.fn-next{min-width:150px;min-height:54px}
.fn-next[disabled]{opacity:.45;cursor:not-allowed}
.fn-back{background:none;border:0;padding:12px 6px;font:600 1rem var(--body);color:var(--blue-deep);cursor:pointer;text-decoration:underline;text-underline-offset:3px;min-height:48px}
.fn-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.fn-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.fn-done{padding:6px 0}
.fn-done[hidden]{display:none}
.fn-done h3{margin:0 0 12px;font:700 clamp(1.5rem,3vw,1.9rem)/1.2 var(--display);letter-spacing:-.015em}
.fn-done h3:focus{outline:0}
.fn-cta{display:flex;gap:10px;flex-wrap:wrap;margin-top:20px}
.fn-ns{padding:6px 0}
.fn.fn-finished{min-height:0}
@media (prefers-reduced-motion:no-preference){
  .fn-bar i{transition:width .3s ease}
  .fn-step.fn-in{animation:fnIn .25s ease-out}
  @keyframes fnIn{from{opacity:0;transform:translateX(14px)}to{opacity:1;transform:none}}
}
@media (max-width:640px){
  .fn{min-height:830px}
  .fn-cards{grid-template-columns:minmax(0,1fr)}
  .fn-row{grid-template-columns:minmax(0,1fr)}
  .fn-next{flex:1}
}
