/* 71.zone guided quote flow (public/quote.js), mounted on /estimate. Built on the site tokens of niche.css (--surface, --ink, --muted, --line,
   --accent, --ring) so the dark (pro) and light (lab) designs both work; buttons are the site's own .btn.
   Fixed layout: the stage has one height (min(720px, 100dvh - header)), panes swap inside it, the total bar and drawer are pinned in it. */
.qz{--qz-hdr:112px;--qz-bar:72px;--qz-top:52px;--qz-r:18px;--qz-soft:color-mix(in srgb,var(--ink) 4%,transparent);--qz-hover:color-mix(in srgb,var(--ink) 8%,transparent);--qz-edge:color-mix(in srgb,var(--ink) 30%,transparent);--qz-on:color-mix(in srgb,var(--accent) 13%,transparent);
  --qz-ease:cubic-bezier(.2,.7,.2,1);position:relative;display:block;height:max(480px,min(720px,calc(100dvh - var(--qz-hdr))));min-width:0;max-width:100%;overflow:hidden;overflow:clip;color:var(--ink);background:var(--surface,var(--bg));border:1px solid var(--line);border-radius:24px;text-align:left;font-size:17px;line-height:1.5}
[data-variant=lab] .qz{--qz-hdr:80px;border-color:#cfcfc8}
@media (max-width:640px){.qz{margin-inline:calc(-1*var(--gut));max-width:none;border-radius:0;border-inline:0}}
.qz *,.qz *::before,.qz *::after{box-sizing:border-box}
.qz p,.qz h2,.qz h3,.qz ul{margin:0;padding:0}
.qz ul{list-style:none}
.qz button,.qz input{font:inherit;color:inherit}
.qz button{cursor:pointer}
.qz :focus-visible{outline:var(--ring-w,3px) solid var(--ring);outline-offset:3px;border-radius:10px}
.qz [tabindex="-1"]:focus{outline:0}
.qz-app{position:absolute;inset:0;display:grid;grid-template-rows:var(--qz-top) minmax(0,1fr) var(--qz-bar);overflow:hidden;overflow:clip}
.qz-prog{position:absolute;left:0;top:0;right:0;height:2px;background:var(--qz-soft);z-index:5}
.qz-prog i{display:block;height:100%;width:100%;background:var(--accent);transform-origin:0 50%;transform:scaleX(0);transition:transform .7s var(--qz-ease)}

/* header row */
.qz-hdr{display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 10px;gap:12px}
.qz-ib{width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--qz-soft);display:grid;place-items:center;transition:background .25s,border-color .25s,transform .2s}
.qz-ib:hover{background:var(--qz-hover);border-color:var(--qz-edge)}
.qz-ib:active{transform:scale(.94)}
.qz-chev{width:10px;height:10px;border:solid currentColor;border-width:0 0 2px 2px;transform:rotate(45deg);margin-left:4px}
.qz-link{background:none;border:0;color:var(--muted);padding:10px 12px;border-radius:999px;font-size:15px;min-height:44px;transition:color .2s}
.qz-link:hover{color:var(--ink)}

/* stage */
.qz-stage{position:relative;min-height:0;overflow:hidden;overflow:clip}
.qz-pane{position:absolute;inset:0;overflow-y:auto;overflow-x:hidden;overscroll-behavior:contain;will-change:transform,opacity;scrollbar-width:thin}
.qz .col{max-width:1040px;margin:0 auto;padding:clamp(8px,3vh,36px) 24px 0;min-height:100%;display:flex;flex-direction:column}
.qz .q{font-size:clamp(26px,4.2vw,50px);line-height:1.1;font-weight:700;letter-spacing:-.035em;max-width:18ch;text-wrap:balance}
.qz .sub{margin-top:12px;color:var(--muted);font-size:16px;min-height:24px}
.qz .sub b{color:var(--accent);font-weight:600}
.qz .cards{display:grid;grid-template-columns:1fr;gap:10px;margin-top:clamp(16px,3vh,32px)}
@media (min-width:760px){.qz .cards{grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px}.qz .cards.few{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1000px){.qz .cards{grid-template-columns:repeat(3,minmax(0,1fr))}.qz .cards.few{grid-template-columns:repeat(2,minmax(0,1fr))}}
.qz .card{position:relative;text-align:left;flex-direction:row;justify-content:flex-start;border:1px solid var(--line);background:var(--qz-soft);border-radius:var(--qz-r);padding:16px 58px 16px 20px;min-height:60px;display:flex;align-items:center;font-size:18px;font-weight:600;letter-spacing:-.015em;line-height:1.3;
  transition:border-color .25s,background .25s,transform .25s var(--qz-ease);animation:qz-in .5s var(--qz-ease) both;animation-delay:calc(var(--i)*45ms + 120ms)}
@media (min-width:760px){.qz .card{min-height:96px;align-items:flex-end;padding:18px 60px 18px 20px;font-size:19px}}
@keyframes qz-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
.qz .card:hover{border-color:var(--qz-edge);background:var(--qz-hover);transform:translateY(-2px)}
.qz .card:active{transform:scale(.985)}
.qz .card .ck{position:absolute;right:16px;top:50%;margin-top:-14px;width:28px;height:28px;border-radius:50%;border:1.5px solid var(--qz-edge);transition:background .25s,border-color .25s}
@media (min-width:760px){.qz .card .ck{top:16px;margin-top:0}}
.qz .card .ck::after{content:"";position:absolute;left:9px;top:5px;width:6px;height:11px;border:solid var(--surface,var(--bg));border-width:0 2px 2px 0;transform:rotate(45deg) scale(0);transition:transform .25s var(--qz-ease)}
.qz .card.on{border-color:var(--accent);background:var(--qz-on)}
.qz .card.on .ck{background:var(--accent);border-color:var(--accent)}
.qz .card.on .ck::after{transform:rotate(45deg) scale(1)}
.qz .multi .card .ck{border-radius:8px}
.qz .free{margin-top:20px;display:flex;align-items:center;gap:10px;border:1px solid var(--line);border-radius:999px;padding:5px 5px 5px 20px;background:var(--qz-soft);transition:border-color .25s;max-width:560px}
.qz .free:focus-within{border-color:var(--qz-edge)}
.qz .free input{flex:1;min-width:0;background:none;border:0;outline:0;font-size:16px;padding:10px 0;color:var(--ink)}
.qz .free input::placeholder{color:var(--muted);opacity:.85}
.qz .free button{width:42px;height:42px;border-radius:50%;border:0;background:var(--ink);color:var(--surface,var(--bg));display:grid;place-items:center;flex:none;transition:opacity .2s,transform .2s}
.qz .free button:disabled{opacity:.25;cursor:default}
.qz .free button::after{content:"";width:9px;height:9px;border:solid currentColor;border-width:2px 2px 0 0;transform:rotate(45deg);margin-left:-3px}
.qz .msg{min-height:26px;margin-top:8px;padding-left:20px;font-size:14px;color:var(--muted)}
.qz .msg.err{color:#e5484d}
.qz .act{position:sticky;bottom:0;margin-top:auto;padding:18px 0 20px;display:flex;align-items:center;gap:14px;background:linear-gradient(to top,var(--surface,var(--bg)) 62%,transparent)}
.qz .act:empty{display:none}
.qz .btn{white-space:nowrap}
.qz-toast{position:absolute;left:50%;bottom:calc(var(--qz-bar) + 12px);z-index:8;max-width:calc(100% - 32px);padding:10px 18px;border-radius:999px;background:var(--ink);color:var(--surface,var(--bg));font-size:14px;opacity:0;transform:translate(-50%,8px);pointer-events:none;transition:opacity .3s,transform .3s var(--qz-ease)}
.qz-toast.on{opacity:1;transform:translate(-50%,0)}

/* running total bar */
.qz-bar{position:relative;z-index:6;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface,var(--bg)) 88%,transparent);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}
.qz-bar button{all:unset;box-sizing:border-box;cursor:pointer;width:100%;height:var(--qz-bar);max-width:1040px;margin:0 auto;padding:0 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}
.qz-bar button:focus-visible{outline:var(--ring-w,3px) solid var(--ring);outline-offset:-3px}
.qz-bar .l{display:flex;flex-direction:column;line-height:1.2;min-width:0}
.qz-bar small{font-size:13px;color:var(--muted)}
.qz-bar .n{font-size:clamp(19px,5.2vw,28px);font-weight:700;letter-spacing:-.03em;font-variant-numeric:tabular-nums;white-space:nowrap}
.qz-bar .n em{font-style:normal;color:var(--muted);font-weight:400;padding:0 .3em}
.qz-bar .d{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:15px;white-space:nowrap}
.qz-bar .d .qz-chev{transform:rotate(135deg);margin:0 0 -3px 0}
.qz-bar.floor .n{font-size:clamp(17px,4.4vw,22px);font-weight:600;color:var(--muted)}

/* drawer */
.qz-veil{position:absolute;inset:0;background:rgba(0,0,0,.55);opacity:0;pointer-events:none;transition:opacity .35s;z-index:20}
.qz-veil.on{opacity:1;pointer-events:auto}
.qz-sheet{position:absolute;left:0;right:0;bottom:0;z-index:21;max-width:600px;margin:0 auto;height:min(78%,640px);background:var(--surface,var(--bg));border:1px solid var(--line);border-bottom:0;border-radius:24px 24px 0 0;transform:translateY(102%);transition:transform .5s var(--qz-ease),visibility 0s .5s;display:grid;grid-template-rows:auto minmax(0,1fr) auto;visibility:hidden}
.qz-sheet.on{transform:none;visibility:visible;transition:transform .5s var(--qz-ease)}
.qz-sheet header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 8px 24px}
.qz-sheet h2{font-size:20px;font-weight:700;letter-spacing:-.02em}
.qz-sheet .body{overflow-y:auto;padding:0 24px 16px;overscroll-behavior:contain}
.qz-sheet footer{padding:14px 24px 16px;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.qz-sheet footer b{font-size:22px;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.qz-sheet footer span{color:var(--muted);font-size:14px}
.qz-x{width:44px;height:44px;border-radius:50%;border:0;background:none;position:relative;flex:none;color:var(--muted)}
.qz-x::before,.qz-x::after{content:"";position:absolute;left:14px;top:21px;width:16px;height:1.5px;background:currentColor;transform:rotate(45deg)}
.qz-x::after{transform:rotate(-45deg)}
.qz-x:hover{color:var(--ink)}
.qz .ln{display:grid;grid-template-columns:minmax(0,1fr) auto 44px;align-items:center;gap:10px;padding:12px 0;border-bottom:1px solid var(--line);transition:opacity .3s,transform .3s}
.qz .ln:last-child{border-bottom:0}
.qz .ln.gone{opacity:0;transform:translateX(24px)}
.qz .ln span:first-child{font-size:16px;line-height:1.35}
.qz .ln span:nth-child(2){font-size:15px;color:var(--muted);text-align:right;font-variant-numeric:tabular-nums}
.qz .ln .nb{width:44px}
.qz .hint{margin-top:16px;padding:14px 16px;border-radius:14px;background:var(--qz-on);color:var(--ink);font-size:15px}
.qz .empty{padding:24px 0;color:var(--muted)}
.qz .care{display:flex;justify-content:space-between;gap:12px;padding-top:14px;color:var(--muted);font-size:15px}

/* summary */
.qz .sum{display:grid;gap:32px;padding-bottom:36px}
@media (min-width:900px){.qz .sum{grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:64px;align-items:start}}
.qz .eyebrow{color:var(--muted);font-size:16px}
.qz .big{font-size:clamp(34px,10vw,64px);font-weight:700;letter-spacing:-.05em;line-height:1.04;font-variant-numeric:tabular-nums;margin-top:8px}
.qz .big>span{display:block}
.qz .big .to{color:var(--muted);font-weight:500;font-size:.4em;letter-spacing:-.02em;margin-right:.5em}
.qz .note{margin-top:16px;color:var(--muted);max-width:46ch;font-size:16px}
.qz .ctas{margin-top:24px;display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.qz .perk{margin-top:28px;border:1px solid var(--accent);border-radius:var(--qz-r);padding:20px 20px 18px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 16%,transparent),color-mix(in srgb,var(--accent) 4%,transparent) 60%)}
.qz .perk h3{font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--accent);font-weight:600}
.qz .perk li{display:flex;justify-content:space-between;gap:12px;align-items:baseline;padding:10px 0;border-bottom:1px solid var(--line);font-size:17px;font-weight:600}
.qz .perk li:last-of-type{border-bottom:0}
.qz .perk li i{font-style:normal;font-weight:600;color:var(--accent);font-size:14px;white-space:nowrap}
.qz .perk li small{display:block;font-weight:400;color:var(--muted);font-size:14px}
.qz .perk p{margin-top:6px;color:var(--muted);font-size:14px}
.qz .nudge{margin-top:28px;padding:16px 18px;border:1px dashed var(--accent);border-radius:var(--qz-r);font-size:16px}
.qz .nudge b{color:var(--accent)}
.qz .sum h3.t{font-size:15px;color:var(--muted);font-weight:500;margin-bottom:6px;letter-spacing:0}
.qz .sum .ln{grid-template-columns:minmax(0,1fr) auto}
.qz-spin{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;transition:opacity .2s;background:linear-gradient(90deg,transparent,var(--qz-soft),transparent);background-size:200% 100%}
.qz-app.busy .qz-spin{opacity:1;animation:qz-sh 1s linear infinite}
@keyframes qz-sh{from{background-position:200% 0}to{background-position:-200% 0}}
@media (max-width:420px){.qz .col{padding-left:18px;padding-right:18px}.qz-bar button{padding:0 18px}.qz .btn{font-size:16px}}
@media (max-width:560px){.qz-bar .d span:first-child{display:none}.qz-sheet footer b{font-size:19px;white-space:nowrap}.qz-sheet footer span{white-space:nowrap}
  .qz .ln{grid-template-columns:minmax(0,1fr) 44px;grid-template-areas:"a x" "b x";row-gap:2px}.qz .ln span:first-child{grid-area:a}.qz .ln span:nth-child(2){grid-area:b;text-align:left}.qz .ln .nb{grid-area:x}
  .qz .sum .ln{grid-template-columns:minmax(0,1fr);grid-template-areas:"a" "b"}}
@media (prefers-reduced-motion:reduce){.qz *{transition:none!important;animation:none!important}}

/* /estimate page chrome: compact SEO block above the flow; without JS only the plain form shows */
[data-variant] .qz-hero{padding:20px 0 14px;text-align:left}
[data-variant] .qz-hero h1{max-width:none;margin:0;font-size:clamp(20px,2.6vw,28px);line-height:1.2;letter-spacing:-.025em;text-wrap:balance}
[data-variant] .qz-hero .lead{max-width:70ch;margin:6px 0 0;font-size:15px;line-height:1.45}
[data-variant=pro] .qz-hero{padding-top:28px;text-align:center}
[data-variant=pro] .qz-hero h1,[data-variant=pro] .qz-hero .lead{margin-inline:auto}
[data-variant] .qz-hero .crumbs{margin-bottom:8px}
#finder{padding-top:0}
#est-nojs{display:none}
#finder>.wrap{--col:1160px}
body:has(.qz) .bar{display:none}
@media (max-width:999px){body:has(.qz){padding-bottom:0}}

/* plain-words hints: one muted line under a question, a second muted line inside a card */
.qz .qh{margin-top:10px;max-width:60ch;color:var(--muted);font-size:15px;line-height:1.45;text-wrap:pretty}
.qz .qh+.sub{margin-top:8px}
.qz .card .tx{display:flex;flex-direction:column;gap:4px;min-width:0}
.qz .card .tx .lb{overflow-wrap:anywhere}
.qz .card .tx .ht{color:var(--muted);font-size:14px;font-weight:400;letter-spacing:0;line-height:1.4;overflow-wrap:anywhere}
.qz .card:has(.tx){align-items:flex-start}
@media (min-width:760px){.qz .card:has(.tx){align-items:flex-start;padding-top:20px}}
