/* SSM LEADS · shared styles for the quote engine, enquiry form and hours calculator. Uses the page tokens (--acc, --bg2, --rule...). */
.qz{border:1px solid var(--rule);background:var(--bg2);padding:clamp(1.4rem,3vw,2.4rem);max-width:720px}
.qz__prog{display:flex;gap:.4rem;margin-bottom:1.4rem}
.qz__prog i{flex:1;height:2px;background:var(--hair)}
.qz__prog i.done{background:var(--acc)}.qz__prog i.now{background:var(--acc2)}
.qz__top{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.6rem;font-size:.74rem;color:var(--mut);letter-spacing:.08em;text-transform:uppercase;font-variant-numeric:tabular-nums}
.qz__back{background:none;border:0;color:var(--mut);font:inherit;cursor:pointer;padding:0;letter-spacing:.06em;text-transform:uppercase}
.qz__back:hover{color:var(--txt)}
.qz__q{font-family:var(--display);font-variation-settings:'wdth' 100,'wght' 760;text-transform:uppercase;font-size:clamp(1.4rem,2.6vw,2.1rem);letter-spacing:-.02em;line-height:1;margin:0 0 1.4rem}
.qz__opts{display:grid;gap:.5rem}
.qz__opt{text-align:left;font:inherit;font-size:.98rem;font-weight:500;color:var(--txt);background:transparent;border:1px solid var(--rule);
  padding:1rem 1.1rem;cursor:pointer;position:relative;transition:border-color .2s,padding-left .25s var(--ease)}
.qz__opt::before{content:"";position:absolute;left:0;top:0;bottom:0;width:0;background:var(--acc);transition:width .25s var(--ease)}
.qz__opt:hover{border-color:var(--rule2);padding-left:1.4rem}.qz__opt:hover::before{width:3px}
.qz__opt.on{border-color:var(--acc)}.qz__opt.on::before{width:3px}
.qz__inc{list-style:none;margin:0 0 1.4rem;padding:0;display:grid;gap:.5rem}
.qz__inc li{padding-left:1.4rem;position:relative;color:var(--txt);font-size:.95rem}
.qz__inc li::before{content:"";position:absolute;left:0;top:.6em;width:10px;height:1px;background:var(--acc)}
.qz__picked{display:grid;grid-template-columns:repeat(2,1fr);gap:.8rem 1.4rem;border-top:1px solid var(--hair);padding-top:1.2rem;margin-bottom:1.6rem;font-size:.9rem}
.qz__picked span{display:block}.qz__picked small{display:block;font-size:.68rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);margin-bottom:.15rem}
.qz__go{margin-top:.2rem}
.qz__form{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem 1.2rem}
.qz__form label{display:grid;gap:.4rem;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.qz__form label span{text-transform:none;letter-spacing:0;color:var(--mut2,rgba(255,255,255,.5));margin-left:.4rem}
.qz__form input,.qz__form textarea{font:inherit;font-size:1rem;color:var(--txt);background:transparent;border:0;border-bottom:1px solid var(--rule);padding:.6rem 0;outline:none;letter-spacing:0;text-transform:none}
.qz__form input:focus,.qz__form textarea:focus{border-color:var(--acc)}
.qz__wide{grid-column:1/3}
.qz__chk{grid-column:1/3;display:flex!important;gap:.7rem;align-items:flex-start;text-transform:none!important;letter-spacing:0!important;font-size:.84rem!important;color:var(--mut)}
.qz__chk input{accent-color:var(--acc);margin-top:.2rem}
.qz__form .qz__go{grid-column:1/3;justify-self:start}
.qz__err{grid-column:1/3;color:#F27A7A;font-size:.84rem;margin:0}
.qz__lbl{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--acc);margin:0 0 .6rem}
.qz__price{font-family:var(--display);font-variation-settings:'wdth' 100,'wght' 800;font-size:clamp(2.4rem,5.5vw,4.4rem);letter-spacing:0;line-height:1;font-variant-numeric:tabular-nums}
.qz__price span{font-size:.4em;color:var(--mut);font-variation-settings:'wdth' 100,'wght' 500;letter-spacing:0;margin:0 .2em}
.qz__sub{color:var(--mut);font-size:.92rem;margin:1rem 0 1.6rem;max-width:48ch}
.qz__lines{border-top:1px solid var(--rule);margin-bottom:1.6rem}
.qz__lines div{display:flex;justify-content:space-between;gap:1rem;padding:.75rem 0;border-bottom:1px solid var(--hair);font-size:.92rem}
.qz__lines b{font-weight:600;font-variant-numeric:tabular-nums}
.qz__acts{display:flex;gap:.8rem;flex-wrap:wrap}
.qz__fine{font-size:.74rem;color:var(--mut2,rgba(255,255,255,.5));margin:1.4rem 0 0;max-width:56ch}
.qz-beat{border-top:1px solid var(--rule)}
.qz-side{font-size:.92rem;color:var(--mut)}
.qz-side b{display:block;color:var(--txt);font-family:var(--display);font-variation-settings:'wdth' 100,'wght' 780;text-transform:uppercase;font-size:1.4rem;letter-spacing:-.02em;margin-bottom:.8rem}
@media(max-width:700px){.qz__form{grid-template-columns:1fr}.qz__wide,.qz__chk,.qz__form .qz__go,.qz__err{grid-column:1/2}.qz__picked{grid-template-columns:1fr}}
.qz__hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;opacity:0}
.qz__price span{font-size:.36em}
.qz__sub a,.enq__done a,.hc__sent a{color:var(--acc)}

/* enquiry form, used in every page's close */
.enq{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem 1.2rem;max-width:680px;margin:2.2rem auto 0;text-align:left}
.enq label{display:grid;gap:.4rem;font-size:.74rem;letter-spacing:.08em;text-transform:uppercase;color:var(--mut)}
.enq input,.enq textarea,.enq select{font:inherit;font-size:1rem;color:var(--txt);background:transparent;border:0;border-bottom:1px solid var(--rule);padding:.6rem 0;outline:none;letter-spacing:0;text-transform:none;border-radius:0}
.enq select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--mut) 50%),linear-gradient(135deg,var(--mut) 50%,transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 7px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:1.4rem}
.enq select option{background:var(--bg2);color:var(--txt)}
.enq input:focus,.enq textarea:focus,.enq select:focus{border-color:var(--acc)}
.enq .enq__wide{grid-column:1/-1}
.enq .qz__err{grid-column:1/-1}
.enq__row{grid-column:1/-1;display:flex;gap:1rem 1.4rem;align-items:center;flex-wrap:wrap;margin-top:.4rem}
.enq__row .note{margin:0}
.enq__done{max-width:560px;margin:2.2rem auto 0;border:1px solid var(--acc);padding:1.4rem 1.6rem;text-align:left}
.enq__done b{display:block;font-family:var(--display);font-variation-settings:'wdth' 100,'wght' 780;text-transform:uppercase;font-size:1.4rem;letter-spacing:-.02em;margin-bottom:.4rem}
.enq__done p{margin:0;color:var(--mut)}
@media(max-width:700px){.enq{grid-template-columns:1fr}}

/* hours calculator */
.hc{display:grid;gap:1.6rem;border:1px solid var(--rule);background:var(--bg2);padding:clamp(1.2rem,2.6vw,2rem)}
@media(min-width:900px){.hc{grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);align-items:start}}
.hc__in{display:grid;gap:1.1rem}
.hc__l{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--mut);margin-bottom:.45rem}
.hc__seg{display:flex;flex-wrap:wrap;gap:.35rem}
.hc__seg button{min-width:2.6rem;font:inherit;font-size:.92rem;font-weight:600;color:var(--txt);background:transparent;border:1px solid var(--rule);padding:.5rem .7rem;cursor:pointer;font-variant-numeric:tabular-nums;transition:border-color .2s,background .2s}
.hc__seg button:hover{border-color:var(--rule2)}
.hc__seg button.on{border-color:var(--acc);background:rgba(47,178,218,.12)}
.hc__seg button:focus-visible,.hc__gate input:focus-visible{outline:2px solid var(--acc2);outline-offset:2px}
.hc__big b{display:block;font-family:var(--display);font-variation-settings:'wdth' 100,'wght' 820;font-size:clamp(2.6rem,6vw,4.4rem);letter-spacing:0;line-height:.95;font-variant-numeric:tabular-nums}
.hc__big span{display:block;color:var(--mut);font-size:.9rem;margin-top:.35rem}
.hc__bar{display:flex;height:30px;margin:1.1rem 0 1rem;gap:2px}
.hc__bar i{display:block;background:var(--acc);opacity:.9;min-width:4px;position:relative;overflow:hidden}
.hc__bar i:nth-child(2){opacity:.65}.hc__bar i:nth-child(3){opacity:.45}.hc__bar i:nth-child(4){background:var(--mut2,rgba(255,255,255,.5));opacity:1}
.hc__bar i span{position:absolute;left:.45rem;top:50%;transform:translateY(-50%);font-size:.68rem;font-weight:600;color:var(--bg);white-space:nowrap;letter-spacing:.02em}
.hc__save{margin:0 0 1.2rem;color:var(--mut);max-width:48ch}
.hc__save b{color:var(--txt);font-weight:600;font-variant-numeric:tabular-nums}
.hc__gate label{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;color:var(--acc);margin-bottom:.5rem}
.hc__gate div{display:flex;gap:.6rem;flex-wrap:wrap}
.hc__gate input{flex:1 1 200px;min-width:0;font:inherit;font-size:1rem;color:var(--txt);background:transparent;border:0;border-bottom:1px solid var(--rule);padding:.6rem 0;outline:none}
.hc__gate input:focus{border-color:var(--acc)}
.hc__gate .qz__err{margin-top:.5rem}
.hc__sent{margin:0;border-left:2px solid var(--acc);padding-left:.9rem;color:var(--txt)}
.hc__fine{font-size:.74rem;color:var(--mut2,rgba(255,255,255,.5));margin:1rem 0 0}
/* hours bar: labels live in a legend, never inside the segments */
.hc__bar{height:14px;margin:1.1rem 0 .7rem}
.hc__bar i span{display:none}
.hc__legend{list-style:none;margin:0 0 1.1rem;padding:0;display:flex;flex-wrap:wrap;gap:.35rem 1.1rem;font-size:.8rem;color:var(--mut)}
.hc__legend li{display:flex;align-items:center;gap:.4rem}
.hc__legend b{color:var(--txt);font-weight:600;font-variant-numeric:tabular-nums}
.hc__legend i{display:block;width:10px;height:10px;background:var(--acc)}
.hc__legend .k1{opacity:.65}.hc__legend .k2{opacity:.45}.hc__legend .k3{background:var(--mut2,rgba(255,255,255,.5))}

/* Turnstile, only ever visible if Cloudflare asks the visitor to click (see ssm-leads.js) */
.ssm-ts{position:fixed;right:16px;bottom:16px;z-index:80}
.ssm-ts:empty{display:none}
