/* Wesworth lead quiz v1.1.0. Everything is scoped to .wq-root.
   Form controls and links use :not(#wq) to out-rank Elementor kit and theme styles.
   Theme it by overriding the --wq-* variables on .wq-root. */
.wq-root{--wq-accent:#FF5E15;--wq-tint:#FFF3EC;--wq-fg:#111;--wq-muted:#4d4d4d;--wq-line:#d6d6d6;--wq-edge:#767676;--wq-bg:#fff;--wq-err:#B42318;--wq-r:10px;--wq-font:Montserrat,system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  position:relative;display:block;box-sizing:border-box;max-width:560px;min-height:560px;margin:0 auto;padding:20px 16px;border-radius:var(--wq-root-r,8px);background:var(--wq-bg);color:var(--wq-fg);font:400 16px/1.45 var(--wq-font);text-align:left;text-transform:none;letter-spacing:normal;scroll-margin-top:var(--wq-offset,90px)}
.wq-root *,.wq-root *::before,.wq-root *::after{box-sizing:border-box}
/* Elementor kits style every label (e.g. text-transform:capitalize, their own font). Option cards are labels. */
.wq-root label:not(#wq){font-family:var(--wq-font);text-transform:none;letter-spacing:normal}
.wq-root [hidden]{display:none!important}
.wq-root .wq-form{margin:0}
.wq-root p{margin:0}

/* Progress */
.wq-root .wq-prog{margin:0 0 8px;font-size:14px;font-weight:300;color:var(--wq-muted)}
.wq-root .wq-bar{height:6px;margin:0 0 20px;border-radius:3px;background:#ececec;overflow:hidden}
.wq-root .wq-bar span{display:block;width:20%;height:100%;background:var(--wq-accent);transition:width .3s ease}

/* Headings and questions */
.wq-root .wq-h{margin:0 0 16px;padding:0;font:700 24px/1.2 var(--wq-font);color:var(--wq-fg);letter-spacing:0;text-transform:none}
.wq-root .wq-h:focus{outline:none}
.wq-root .wq-fs{min-width:0;margin:0 0 24px;padding:0;border:0}
.wq-root .wq-q{display:block;width:100%;margin:0 0 12px;padding:0;font:700 17px/1.3 var(--wq-font);color:var(--wq-fg)}
.wq-root .wq-q .wq-h{margin:0 0 4px}

/* Option cards: real radio inputs, visually hidden, styling the span that follows */
.wq-root .wq-opts{display:grid;gap:10px}
.wq-root .wq-opts.wq-2{grid-template-columns:1fr 1fr}
.wq-root .wq-opt{position:relative;display:block;margin:0;padding:0;font-weight:400;cursor:pointer}
.wq-root .wq-opt input{position:absolute;top:0;left:0;width:1px;height:1px;margin:0;opacity:0}
.wq-root .wq-card{display:flex;align-items:center;gap:12px;min-height:56px;padding:12px 16px;border:2px solid var(--wq-line);border-radius:var(--wq-r);background:var(--wq-bg);color:var(--wq-fg);font-size:16px;line-height:1.3;transition:border-color .15s,background-color .15s}
.wq-root .wq-card::before{content:"";flex:none;width:20px;height:20px;border:2px solid var(--wq-edge);border-radius:50%;background:#fff}
.wq-root .wq-opt input:checked+.wq-card{border-color:var(--wq-accent);background:var(--wq-tint)}
.wq-root .wq-opt input:checked+.wq-card::before{border-color:var(--wq-accent);background:var(--wq-accent);box-shadow:inset 0 0 0 3px #fff}
.wq-root .wq-opt input:focus-visible+.wq-card{outline:3px solid var(--wq-fg);outline-offset:2px}
.wq-root .wq-opt input[type=checkbox]+.wq-card::before{border-radius:4px}
.wq-root .wq-fs .wq-f{margin:12px 0 0}
@media (hover:hover){.wq-root .wq-opt:hover input:not(:checked)+.wq-card{border-color:var(--wq-edge)}}

/* Property type tiles with icons */
.wq-root .wq-opts.wq-ico{grid-template-columns:1fr 1fr}
.wq-root .wq-ico .wq-card{position:relative;height:100%;flex-direction:column;justify-content:center;gap:8px;min-height:120px;padding:18px 10px 14px;font-size:15px;text-align:center}
.wq-root .wq-ico .wq-card::before{position:absolute;top:10px;right:10px;width:18px;height:18px}
.wq-root .wq-card svg{display:block;flex:none;width:44px;height:44px;fill:var(--wq-accent)}

/* Text fields */
.wq-root .wq-f{margin:0 0 20px}
.wq-root .wq-l{display:block;margin:0 0 6px;padding:0;font:700 15px/1.35 var(--wq-font);color:var(--wq-fg)}
.wq-root .wq-o{font-weight:400;color:var(--wq-muted)}
.wq-root .wq-in:not(#wq){display:block;width:100%;max-width:none;height:auto;min-height:52px;margin:0;padding:12px 14px;border:2px solid var(--wq-edge);border-radius:var(--wq-r);background:#fff;color:var(--wq-fg);font:400 16px/1.35 var(--wq-font);letter-spacing:0;box-shadow:none;outline:none;-webkit-appearance:none;appearance:none}
.wq-root textarea.wq-in:not(#wq){min-height:96px;resize:vertical}
.wq-root .wq-sel:not(#wq){padding-right:44px;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6' fill='none' stroke='%23111' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 14px center/20px no-repeat;cursor:pointer;text-overflow:ellipsis}
.wq-root .wq-in:not(#wq):focus{border-color:var(--wq-fg);outline:3px solid var(--wq-fg);outline-offset:1px}
.wq-root .wq-bad .wq-in:not(#wq){border-color:var(--wq-err)}
.wq-root .wq-err{margin:6px 0 0;color:var(--wq-err);font-size:14px;font-weight:700}
.wq-root .wq-hint{margin:6px 0 0;color:var(--wq-muted);font-size:14px}
.wq-root .wq-err:empty,.wq-root .wq-hint:empty,.wq-root .wq-phs:empty{display:none}
.wq-root .wq-small{margin:16px 0 0;color:var(--wq-muted);font-size:13px}
.wq-root .wq-a:not(#wq),.wq-root .wq-cl a:not(#wq),.wq-root .wq-rc a:not(#wq){color:var(--wq-fg);font-weight:700;text-decoration:underline;text-underline-offset:2px}
.wq-root .wq-a:not(#wq):focus-visible,.wq-root .wq-cl a:not(#wq):focus-visible,.wq-root .wq-rc a:not(#wq):focus-visible{outline:3px solid var(--wq-fg);outline-offset:2px}

/* Buttons: white text on orange. At 19px bold it counts as large text, where WCAG AA asks for 3:1 (this is 3.1:1; hover 4.1:1) */
.wq-root .wq-btn:not(#wq){display:inline-flex;align-items:center;justify-content:center;gap:10px;width:auto;min-height:52px;margin:0;padding:12px 22px;border:2px solid var(--wq-accent);border-radius:var(--wq-r);background:var(--wq-accent);color:#fff;font:700 19px/1.2 var(--wq-font);letter-spacing:0;text-align:center;text-decoration:none;text-transform:none;box-shadow:none;cursor:pointer;-webkit-tap-highlight-color:transparent}
.wq-root .wq-btn2:not(#wq){border-color:var(--wq-fg);background:#fff;color:var(--wq-fg);font-size:17px}
@media (hover:hover){
  .wq-root .wq-btn:not(#wq):hover{border-color:#E04A0C;background:#E04A0C;color:#fff}
  .wq-root .wq-btn2:not(#wq):hover{border-color:var(--wq-fg);background:#f2f2f2;color:var(--wq-fg)}
}
.wq-root .wq-btn:not(#wq):focus-visible,.wq-root .wq-link:not(#wq):focus-visible,.wq-root .wq-rm:not(#wq):focus-visible,.wq-root .wq-file:focus-visible+label{outline:3px solid var(--wq-fg);outline-offset:2px}
.wq-root .wq-btn:not(#wq):disabled{opacity:.75;cursor:progress}
.wq-root .wq-nav{display:flex;gap:12px;margin:8px 0 0}
.wq-root .wq-next:not(#wq){flex:1}

/* Emergency panel */
.wq-root .wq-emg{margin:16px 0 0;padding:16px;border:2px solid var(--wq-accent);border-radius:var(--wq-r);background:var(--wq-tint)}
.wq-root .wq-emg-t{margin:0 0 12px;font-size:17px;font-weight:700}
.wq-root .wq-call:not(#wq){display:flex;width:100%;min-height:56px;font-size:19px}
.wq-root .wq-link:not(#wq){display:block;width:100%;min-height:48px;margin:8px 0 0;padding:12px;border:0;border-radius:var(--wq-r);background:none;color:var(--wq-fg);font:400 16px/1.3 var(--wq-font);text-decoration:underline;text-underline-offset:2px;text-transform:none;box-shadow:none;cursor:pointer}

/* Pricing notice (empty until CONFIG.pricing_notice is set) */
.wq-root .wq-price{margin:0 0 20px;padding:14px 16px;border-radius:var(--wq-r);background:#f5f5f5;font-size:15px;white-space:pre-line}

/* Photos */
.wq-root .wq-phs{display:grid;grid-template-columns:repeat(auto-fill,minmax(96px,1fr));gap:10px;margin:0 0 10px;padding:0;list-style:none}
.wq-root .wq-file+label:not(#wq){margin:0 10px 10px 0}
/* "Take a photo" only on touch devices; desktop has no camera picker */
.wq-root .wq-cam:not(#wq){display:none}
@media (pointer:coarse){.wq-root .wq-cam:not(#wq){display:inline-flex}}
.wq-root .wq-phs li{margin:0;padding:0;list-style:none}
.wq-root .wq-phs img{display:block;width:100%;height:auto;aspect-ratio:1;object-fit:cover;border:1px solid var(--wq-line);border-radius:var(--wq-r) var(--wq-r) 0 0}
.wq-root .wq-rm:not(#wq){display:block;width:100%;min-height:48px;margin:0;padding:8px;border:1px solid var(--wq-line);border-top:0;border-radius:0 0 var(--wq-r) var(--wq-r);background:#fff;color:var(--wq-fg);font:400 14px/1 var(--wq-font);text-decoration:underline;text-transform:none;box-shadow:none;cursor:pointer}

/* Consent */
.wq-root .wq-consent{display:grid;grid-template-columns:auto 1fr;gap:4px 12px;margin:0 0 20px;padding:14px;border:1px solid var(--wq-line);border-radius:var(--wq-r)}
.wq-root .wq-cb:not(#wq){width:24px;height:24px;min-height:0;margin:1px 0 0;padding:0;border:0;accent-color:var(--wq-accent);-webkit-appearance:checkbox;appearance:auto;cursor:pointer}
.wq-root .wq-cl:not(#wq){display:block;margin:0;font:400 14px/1.45 var(--wq-font);color:var(--wq-fg);cursor:pointer}
.wq-root .wq-consent .wq-hint{grid-column:2;margin:4px 0 0}
.wq-root .wq-consent .wq-pref{grid-column:1/-1;margin:10px 0 0;padding:10px 12px;border-left:4px solid var(--wq-accent);border-radius:4px;background:var(--wq-tint);color:var(--wq-fg);font-size:15px;font-weight:700}
.wq-root .wq-rc{margin:0 0 20px}
/* The one rule outside .wq-root: Google's floating badge, hidden only on pages showing the quiz's reCAPTCHA note (Google allows that) */
body:has(.wq-rc) .grecaptcha-badge{visibility:hidden}

/* Errors, confirmation */
.wq-root .wq-alert{margin:0 0 16px;padding:12px 14px;border-left:4px solid var(--wq-err);border-radius:4px;background:#FEF3F2;font-size:15px}
.wq-root .wq-done{padding:16px 0}
.wq-root .wq-tick{display:block;width:72px;height:72px;margin:0 0 16px;overflow:visible}
.wq-root .wq-tick-ring{fill:var(--wq-accent);stroke:none}
.wq-root .wq-tick-wave{fill:none;stroke:var(--wq-accent);stroke-width:3;opacity:0}
.wq-root .wq-tick-mark{fill:none;stroke:#fff;stroke-width:4;stroke-linecap:round;stroke-linejoin:round}
.wq-root .wq-p{font-size:17px}
.wq-root .wq-done .wq-a:not(#wq){display:inline-block;padding:12px 0}

/* Screen-reader only, honeypot */
.wq-root .wq-sr,.wq-root .wq-hp{position:absolute!important;width:1px!important;height:1px!important;min-height:0!important;margin:-1px!important;padding:0!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important;border:0!important}
.wq-root .wq-hp{left:-9999px!important}

/* Spinner and motion */
.wq-root .wq-spin{flex:none;width:18px;height:18px;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:wq-spin .8s linear infinite}
@keyframes wq-spin{to{transform:rotate(360deg)}}
@keyframes wq-in{from{opacity:0;transform:translateY(6px)}}
@media (prefers-reduced-motion:no-preference){.wq-root .wq-step,.wq-root .wq-done{animation:wq-in .25s ease-out}}
@keyframes wq-pop{0%{transform:scale(.4);opacity:0}60%{transform:scale(1.12);opacity:1}100%{transform:scale(1)}}
@keyframes wq-draw{to{stroke-dashoffset:0}}
@keyframes wq-ripple{from{opacity:.5;transform:scale(1)}to{opacity:0;transform:scale(1.6)}}
@keyframes wq-rise{from{opacity:0;transform:translateY(10px)}}
@media (prefers-reduced-motion:no-preference){
.wq-root .wq-tick{animation:wq-pop .5s cubic-bezier(.2,.9,.3,1.2) both}
.wq-root .wq-tick-wave{transform-box:fill-box;transform-origin:center;animation:wq-ripple .9s .35s ease-out both}
.wq-root .wq-tick-mark{stroke-dasharray:40;stroke-dashoffset:40;animation:wq-draw .45s .3s ease-out forwards}
.wq-root .wq-done h2,.wq-root .wq-done .wq-p{animation:wq-rise .5s .55s ease-out both}
}
@media (prefers-reduced-motion:reduce){.wq-root .wq-tick-mark{stroke-dasharray:none}.wq-root .wq-bar span,.wq-root .wq-card{transition:none}.wq-root .wq-spin{animation-duration:2s}}
@media (forced-colors:active){.wq-root .wq-opt input:checked+.wq-card{outline:3px solid Highlight}.wq-root .wq-opt input:checked+.wq-card::before{background:Highlight}}
@media (min-width:600px){.wq-root{padding:28px}}
