/* DBS Security: quote wizard, thank-you panel, cookie banner (conversion agent). Load on every page.
   Uses site.css tokens (--g950 --g800 --blue --blue2 --white --silver --muted --fd --fb --bevel --chf --pop) and .btn. Mobile first. */

.qw-sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.qw .ic,.ty .ic{width:20px;height:20px;flex:none;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

/* ---------- wizard shell: chamfered card, bevel top edge ---------- */
.qw{--c:20px;position:relative;isolation:isolate;padding:28px 16px 22px;color:var(--silver)}
.qw::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,#2E333A 50%,#262A30 50%);clip-path:var(--chf)}
.qw::after{content:"";position:absolute;top:0;left:var(--c);right:0;height:4px;background:var(--bevel)}
@media (min-width:640px){.qw{padding:40px 36px 32px}}
.qw-title{font-size:clamp(1.9rem,4.4vw,2.6rem);margin:0 0 18px}

/* progress */
.qw-prog{list-style:none;margin:0 0 24px;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;counter-reset:st}
.qw-prog li{counter-increment:st;display:flex;flex-direction:column;gap:8px;font:700 .98rem/1.1 var(--fd);text-transform:uppercase;letter-spacing:.04em;color:var(--muted)}
.qw-prog li::before{content:"";height:8px;background:#454C57;clip-path:polygon(4px 0,100% 0,calc(100% - 4px) 100%,0 100%);transition:background .35s}
.qw-prog li span::before{content:counter(st) ". "}
.qw-prog li.on,.qw-prog li.done{color:var(--white)}
.qw-prog li.on::before,.qw-prog li.done::before{background:var(--bevel)}

/* steps */
.qw-step[hidden]{display:none}
.qw-h{font-size:clamp(1.9rem,4.4vw,2.6rem);margin:0 0 8px;outline:none}
.qw-hint{color:var(--muted);margin:0 0 18px}
.qw-pre{margin:0 0 16px;padding:10px 14px;color:var(--white);background:#30353D;border-left:4px solid var(--blue)}
.qw-pre[hidden]{display:none}

/* chip groups (one fieldset per layer) */
.qw-group{border:0;margin:0 0 18px;padding:0;min-width:0}
.qw-group legend{display:flex;align-items:center;gap:10px;padding:0;margin-bottom:10px;font:800 1.15rem/1.1 var(--fd);text-transform:uppercase;letter-spacing:.03em;color:var(--blue)}
.qw-group legend b{display:inline-grid;place-items:center;min-width:30px;height:24px;padding:0 6px;font-size:.95rem;color:var(--g950);background:var(--bevel);clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px)}
.qw-chips{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.qw-chip{position:relative;display:block;cursor:pointer}
.qw-chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.qw-chip span{display:flex;align-items:center;gap:8px;height:100%;min-height:50px;padding:8px 12px;font-weight:600;font-size:1rem;line-height:1.2;color:var(--white);background:linear-gradient(90deg,#454C57 50%,#3A4049 50%);clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px);transition:background .2s,color .2s,transform .3s var(--pop)}
.qw-chip span::before{content:"";width:16px;height:16px;flex:none;border:2px solid var(--silver);transition:background .2s,border-color .2s}
.qw-chip input[type=radio]+span::before{border-radius:50%}
.qw-chip input:checked+span{background:var(--bevel);color:var(--g950)}
.qw-chip input:checked+span::before{background:var(--g950);border-color:var(--g950);box-shadow:inset 0 0 0 3px var(--blue)}
.qw-chip input:focus-visible+span{outline:3px solid var(--white);outline-offset:-3px}
.qw-chip:active span{transform:scale(.96)}
@media (min-width:521px){.qw-chips{display:flex;flex-wrap:wrap}.qw-chip span{height:auto;padding:0 16px;font-size:1.0625rem}}

/* "Add other services" fold (Ads LP variant) */
.qw-more{margin:0 0 18px}
.qw-more summary{display:flex;align-items:center;gap:10px;min-height:48px;cursor:pointer;list-style:none;font:800 1.08rem/1 var(--fd);text-transform:uppercase;letter-spacing:.04em;color:var(--blue)}
.qw-more summary::-webkit-details-marker{display:none}
.qw-more summary::before{content:"+";display:grid;place-items:center;width:26px;height:26px;color:var(--g950);background:var(--bevel);font-size:1.2rem;transition:transform .3s var(--pop)}
.qw-more[open] summary::before{content:"−"}
.qw-more summary:focus-visible{outline:3px solid var(--blue);outline-offset:3px}
.qw-more[open]>.qw-group:first-of-type{margin-top:8px}

/* fields */
.qw-field{display:grid;gap:8px;margin-bottom:18px}
.qw-field label{font:800 1.15rem/1.1 var(--fd);text-transform:uppercase;letter-spacing:.03em;color:var(--blue)}
.qw-field label small{font:500 .9rem/1.2 var(--fb);text-transform:none;letter-spacing:0;color:var(--muted)}
.qw-field input,.qw-field textarea{width:100%;min-height:54px;padding:12px 14px;font:500 1.0625rem/1.4 var(--fb);color:var(--white);background:var(--g950);border:2px solid #454C57;border-radius:0;transition:border-color .2s,box-shadow .2s}
.qw-field textarea{min-height:110px;resize:vertical}
.qw-field input:focus,.qw-field textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px rgba(134,200,240,.25)}
.qw-field input[aria-invalid=true]{border-color:var(--white);box-shadow:0 0 0 3px rgba(244,246,248,.25)}

/* errors: always in the DOM (live region), hidden while empty */
.qw-err{display:flex;align-items:center;gap:10px;margin:10px 0 0;padding:9px 12px;font-weight:600;font-size:.98rem;line-height:1.35;color:var(--g950);background:var(--white);clip-path:polygon(7px 0,100% 0,100% calc(100% - 7px),calc(100% - 7px) 100%,0 100%,0 7px)}
.qw-err::before{content:"!";display:grid;place-items:center;width:22px;height:22px;flex:none;font:800 1rem/1 var(--fd);color:var(--white);background:var(--g950)}
.qw-err:empty{display:none}
.qw-group+.qw-err{margin:-6px 0 18px}

/* honeypot */
.qw-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* nav: full-width Next on mobile, Back stays compact */
.qw-nav{display:flex;gap:10px;margin-top:22px}
.qw-nav .btn{min-height:54px}
.qw-nav .qw-next{flex:1 1 auto}
.qw-nav .qw-back{flex:0 0 auto}
@media (min-width:640px){.qw-nav .qw-next{flex:0 0 auto;min-width:220px}}
.qw-submit .ic{width:20px;height:20px}
.qw-submit.is-busy{cursor:progress;opacity:.9}
.qw-submit.is-busy .ic{animation:qw-spin .9s linear infinite}
.qw-submit[disabled]{pointer-events:none}
@keyframes qw-spin{to{transform:rotate(360deg)}}
.qw-note{margin:14px 0 0;font-size:.95rem;color:var(--muted)}
.qw-note a{color:var(--blue)}

/* step 3 summary */
.qw-sum{margin:0 0 18px;padding:14px 16px;background:var(--g950);font-size:.98rem}
.qw-sum dt{font:800 .98rem/1.1 var(--fd);text-transform:uppercase;letter-spacing:.04em;color:var(--blue)}
.qw-sum dd{margin:2px 0 10px;color:var(--white);overflow-wrap:anywhere}
.qw-sum dd:last-child{margin-bottom:0}
.qw-sum:empty{display:none}

/* no-JS: hide the controls that need JS, show the direct link */
.qw-nojs{margin:0 0 18px;padding:12px 14px;color:var(--white);background:#30353D;border-left:4px solid var(--blue)}
@media (scripting:none){.qw-js,.qw .qw-nav{display:none}}

/* compact Ads LP variant */
.qw--lp{padding:22px 14px 18px}
.qw--lp .qw-prog{margin-bottom:16px}
.qw--lp .qw-h{font-size:clamp(1.6rem,3.6vw,2.1rem)}
.qw--lp .qw-hint{margin-bottom:12px}
.qw--lp .qw-group{margin-bottom:12px}
.qw--lp .qw-nav{margin-top:14px}
@media (min-width:640px){.qw--lp{padding:30px 26px 24px}}

/* ---------- thank-you panel ---------- */
.ty{max-width:62ch}
.ty-lead[hidden],.ty-direct[hidden],.ty [hidden]{display:none}
.ty-greet{font:800 clamp(1.5rem,3vw,2rem)/1.1 var(--fd);text-transform:uppercase;color:var(--white)}
.ty-greet b{color:var(--blue);font-weight:800;letter-spacing:.02em}
.ty-acts{display:flex;flex-direction:column;gap:12px;margin:22px 0 14px}
.ty-acts .btn{width:100%}
@media (min-width:640px){.ty-acts{flex-direction:row;flex-wrap:wrap}.ty-acts .btn{width:auto}}
.ty-more a{display:inline-flex;align-items:center;min-height:44px;color:var(--blue)}

/* ---------- cookie banner: above the mobile bar, clear of the desktop WhatsApp button ---------- */
.cc{position:fixed;left:8px;right:8px;bottom:calc(84px + env(safe-area-inset-bottom,0px));z-index:70;padding:16px 16px 14px;color:var(--silver);font-size:.98rem;line-height:1.5;background:rgba(23,25,29,.97);box-shadow:0 10px 40px rgba(0,0,0,.45),inset 0 0 0 1px rgba(195,204,213,.14);clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px)}
.cc::after{content:"";position:absolute;top:0;left:12px;right:0;height:3px;background:var(--bevel)}
.cc-text{margin:0 0 12px}
.cc-text a{color:var(--blue)}
.cc-btns{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.cc-btn{min-height:48px;padding:0 16px;border:0;cursor:pointer;font:800 1.05rem/1 var(--fd);letter-spacing:.04em;text-transform:uppercase;color:var(--white);background:#454C57;clip-path:polygon(9px 0,100% 0,100% calc(100% - 9px),calc(100% - 9px) 100%,0 100%,0 9px)}
.cc-btn--ok{color:var(--g950);background:var(--bevel)}
.cc-btn:focus-visible{outline:3px solid var(--white);outline-offset:-3px}
@media (min-width:761px){.cc{left:24px;right:auto;bottom:24px;max-width:440px}}

@media (prefers-reduced-motion:reduce){.qw *,.cc *{transition:none!important;animation:none!important}}
