/* SynthWeb Estimator. Colours come from wp-admin > Estimator > Launcher via CSS variables. */
.swes-fab,.swes-ov,.swes-ov *{font-family:"Plus Jakarta Sans",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;box-sizing:border-box}
.swes-fab{position:fixed;bottom:calc(var(--swes-y,22px) + env(safe-area-inset-bottom));z-index:var(--swes-z,999960);display:flex;align-items:center;gap:12px;height:60px;padding:0 22px 0 8px;margin:0;border:0;border-radius:999px;background:linear-gradient(135deg,var(--swes-accent),var(--swes-dark));color:#fff;cursor:pointer;box-shadow:0 10px 26px rgba(8,50,81,.35);opacity:0;transform:translateY(16px) scale(.96);transition:opacity .35s,transform .35s,box-shadow .25s,bottom .3s;-webkit-tap-highlight-color:transparent}
.swes-fab.swes-left{left:var(--swes-x,22px)}.swes-fab.swes-right{right:var(--swes-x,22px)}
.swes-fab.is-in{opacity:1;transform:none}
.swes-fab:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(8,50,81,.42)}
.swes-fab:focus-visible{outline:3px solid var(--swes-hi);outline-offset:3px}
.swes-fi{position:relative;flex:0 0 auto;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--swes-hi);color:var(--swes-dark)}
.swes-ft2{display:flex;flex-direction:column;align-items:flex-start;text-align:left;line-height:1.2}
.swes-ft2 b{font-size:15px;font-weight:700;color:#fff}.swes-ft2 small{font-size:12px;font-weight:500;color:rgba(255,255,255,.82);margin-top:2px}
.swes-pulse .swes-fi:after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--swes-hi);opacity:0;animation:swesPulse 2.4s ease-out infinite}
@keyframes swesPulse{0%{transform:scale(.8);opacity:.8}100%{transform:scale(1.35);opacity:0}}
.swes-round{width:60px;padding:0;justify-content:center}.swes-round .swes-ft2{display:none}.swes-round .swes-fi{width:46px;height:46px}
html.sw-sb-on .swes-fab{bottom:84px}
@media(max-width:700px){
.swes-fab{height:56px;bottom:calc(var(--swes-y,22px) + env(safe-area-inset-bottom))}
.swes-fab.swes-m-left{left:16px;right:auto}.swes-fab.swes-m-right{right:16px;left:auto}
.swes-ms-icon{width:56px;padding:0;justify-content:center}.swes-ms-icon .swes-ft2{display:none}.swes-ms-icon .swes-fi{width:44px;height:44px}
.swes-ms-pill .swes-ft2 small{display:none}.swes-ms-pill{padding-right:18px}
}
.swes-lock{overflow:hidden !important}
/* popup */
.swes-ov{position:fixed;inset:0;z-index:2147483000;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(8,50,81,.6);backdrop-filter:blur(3px);opacity:0;transition:opacity .2s}
.swes-ov[hidden]{display:none}.swes-ov.is-open{opacity:1}
.swes-md{display:flex;flex-direction:column;width:100%;max-width:760px;max-height:min(90vh,780px);background:#fff;border-radius:4px;box-shadow:0 24px 60px rgba(0,0,0,.35);overflow:hidden;transform:translateY(14px) scale(.98);transition:transform .25s;outline:0}
.swes-ov.is-open .swes-md{transform:none}
.swes-hd{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 20px;background:var(--swes-dark);color:#fff}
.swes-ov .swes-ttl{margin:0;font-size:20px;line-height:1.3;font-weight:600;color:#fff;letter-spacing:0;outline:0}
.swes-x{flex:0 0 auto;display:grid;place-items:center;width:40px;height:40px;margin:-6px -8px -6px 0;border:0;border-radius:4px;background:transparent;color:#fff;cursor:pointer}.swes-x:hover{background:rgba(255,255,255,.14)}.swes-x:focus-visible{outline:2px solid var(--swes-hi)}
.swes-pg{height:4px;background:#DCE8F2}.swes-pg span{display:block;height:100%;width:0;background:var(--swes-accent);transition:width .35s ease}
.swes-bd{flex:1;overflow-y:auto;padding:24px 22px;-webkit-overflow-scrolling:touch}
.swes-fo{display:flex;justify-content:space-between;gap:10px;padding:14px 20px;border-top:1px solid #E1EAF2;background:#F7FAFC}.swes-fo:empty{display:none}
.swes-ov p{margin:0}
.swes-lead{font-size:16px;line-height:1.6;color:#3F4A54;margin-bottom:18px !important}
.swes-ld{color:#5C636A}
.swes-b{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:0 22px;border:1.5px solid transparent;border-radius:4px;font:inherit;font-size:15px;font-weight:700;line-height:1.2;text-decoration:none !important;cursor:pointer;transition:background .2s,transform .2s,border-color .2s,color .2s}
.swes-b.swes-pri{background:var(--swes-accent);color:#fff !important;margin-left:auto}.swes-b.swes-pri:hover:not([disabled]){background:var(--swes-dark);transform:translateY(-1px)}
.swes-b.swes-ghost{background:#fff;color:var(--swes-dark) !important;border-color:#BFD3E4}.swes-b.swes-ghost:hover{border-color:var(--swes-accent)}
.swes-b[disabled]{opacity:.45;cursor:not-allowed}.swes-b:focus-visible{outline:3px solid var(--swes-hi);outline-offset:2px}
/* calculator cards */
.swes-cg{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.swes-cc{display:grid;grid-template-columns:48px 1fr 20px;gap:14px;align-items:center;padding:16px;text-align:left;background:#fff;border:1.5px solid #D5E3EF;border-radius:4px;font:inherit;cursor:pointer;transition:border-color .2s,transform .2s,box-shadow .2s,background .2s}
.swes-cc:hover{border-color:var(--swes-accent);transform:translateY(-2px);box-shadow:0 10px 22px rgba(8,50,81,.1);background:#F6FAFD}.swes-cc:focus-visible{outline:3px solid var(--swes-accent);outline-offset:2px}
.swes-ci{display:grid;place-items:center;width:48px;height:48px;border-radius:4px;background:#EAF3FB;color:var(--swes-accent);transition:background .2s,color .2s}
.swes-cc:hover .swes-ci{background:var(--swes-dark);color:var(--swes-hi)}
.swes-cx b{display:block;font-size:16px;font-weight:600;line-height:1.3;color:var(--swes-dark)}.swes-cx small{display:block;margin-top:3px;font-size:13.5px;line-height:1.45;color:#5C636A}
.swes-ca{color:var(--swes-accent);opacity:.5;transition:transform .2s,opacity .2s}.swes-cc:hover .swes-ca{opacity:1;transform:translateX(3px)}
/* questions */
.swes-sn{font-size:12.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--swes-accent);margin-bottom:8px !important}
.swes-fs{border:0;margin:0;padding:0;min-width:0}.swes-lg{padding:0;font-size:22px;font-weight:600;line-height:1.3;color:var(--swes-dark);margin-bottom:6px}
.swes-hint{font-size:14px;color:#5C636A;margin-bottom:14px !important}
.swes-ol{display:grid;gap:10px}
.swes-op{position:relative;display:flex;align-items:center;gap:14px;min-height:56px;padding:12px 16px;background:#fff;border:1.5px solid #D5E3EF;border-radius:4px;cursor:pointer;transition:border-color .2s,background .2s}
.swes-op:hover{border-color:var(--swes-accent)}
.swes-op input{position:absolute;opacity:0;width:1px;height:1px}
.swes-mk{flex:0 0 auto;width:22px;height:22px;border:2px solid #9DB8CF;border-radius:50%;background:#fff;transition:border-color .2s,background .2s,box-shadow .2s}
.swes-op input[type=checkbox]+.swes-mk{border-radius:4px}
.swes-op input:checked+.swes-mk{border-color:var(--swes-accent);background:var(--swes-accent);box-shadow:inset 0 0 0 4px #fff}
.swes-op input[type=checkbox]:checked+.swes-mk{box-shadow:none;background:var(--swes-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 8.3l2.6 2.6L12 5.4' fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/100% no-repeat}
.swes-op:has(input:checked){border-color:var(--swes-accent);background:#EAF3FB}
.swes-op:has(input:focus-visible){outline:3px solid var(--swes-accent);outline-offset:2px}
.swes-ot{font-size:16px;line-height:1.4;color:#242424}
/* form */
.swes-form{display:block}.swes-row{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.swes-fd{margin-bottom:12px}.swes-fd label{display:block;margin-bottom:5px;font-size:13.5px;font-weight:600;color:var(--swes-dark)}
.swes-fd input,.swes-fd textarea{display:block;width:100%;padding:0 13px;font:inherit;font-size:16px;color:#242424;background:#fff;border:1.5px solid #B7CFE3;border-radius:4px}
.swes-fd input{height:48px}.swes-fd textarea{padding:11px 13px;resize:vertical;min-height:80px}
.swes-fd input:focus,.swes-fd textarea:focus{outline:2px solid var(--swes-accent);outline-offset:1px}.swes-fd [aria-invalid=true]{border-color:#C0392B}
.swes-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.swes-co{display:flex;gap:10px;align-items:flex-start;font-size:13.5px;line-height:1.5;color:#4A5560;cursor:pointer}.swes-co input{flex:0 0 auto;width:18px;height:18px;margin-top:2px;accent-color:var(--swes-accent)}.swes-co a{color:var(--swes-accent);text-decoration:underline}
.swes-er{margin-top:10px !important;font-size:14px;color:#C0392B}
/* calculating */
.swes-calc{text-align:center;padding:10px 0}
.swes-big{font-size:56px;font-weight:600;line-height:1.1;color:var(--swes-dark);margin-bottom:14px}
.swes-bar{height:12px;border-radius:999px;background:#DCE8F2;overflow:hidden;max-width:460px;margin:0 auto 22px}.swes-bar span{display:block;height:100%;width:0;border-radius:999px;background:linear-gradient(90deg,var(--swes-accent),var(--swes-hi))}
.swes-ck{list-style:none;margin:0 auto 14px;padding:0;max-width:340px;text-align:left}
.swes-ck li{display:flex;align-items:center;gap:12px;padding:7px 0;font-size:15.5px;color:#8DA3B5;transition:color .3s}
.swes-ct{display:grid;place-items:center;flex:0 0 auto;width:22px;height:22px;border:2px solid #C7D8E6;border-radius:50%;color:transparent;transition:background .3s,border-color .3s,color .3s}
.swes-ck li.is-done{color:var(--swes-dark)}.swes-ck li.is-done .swes-ct{background:var(--swes-accent);border-color:var(--swes-accent);color:#fff}
/* result */
.swes-res{text-align:left}.swes-center{text-align:center;padding:10px 0}
.swes-rb{padding:22px 20px;border-radius:4px;background:var(--swes-dark);color:#fff;text-align:center;margin-bottom:14px}
.swes-rl{display:block;font-size:12.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--swes-hi);margin-bottom:6px}
.swes-rb strong{display:block;font-size:34px;font-weight:600;line-height:1.25;color:#fff}
.swes-tg{display:inline-flex;margin:0 0 14px;border:1.5px solid #BFD3E4;border-radius:4px;overflow:hidden}
.swes-tg button{min-height:38px;padding:0 16px;border:0;background:#fff;font:inherit;font-size:13.5px;font-weight:700;color:var(--swes-dark);cursor:pointer}.swes-tg .is-on{background:var(--swes-dark);color:#fff}
.swes-tl{font-size:16px;color:#242424;margin-bottom:16px !important}.swes-tl b{color:var(--swes-dark)}
.swes-sw{padding:14px 16px;border:1px solid #D5E3EF;border-radius:4px;background:#F7FAFC;margin-bottom:14px}.swes-sw h3{margin:0 0 8px;font-size:14px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5C636A}
.swes-sm{list-style:none;margin:0;padding:0}.swes-sm li{display:flex;flex-wrap:wrap;justify-content:space-between;gap:2px 14px;padding:7px 0;border-top:1px solid #E1EAF2;font-size:14.5px;color:#4A5560}.swes-sm li:first-child{border-top:0}.swes-sm b{font-weight:600;color:var(--swes-dark);text-align:right}
.swes-ds{font-size:13.5px;line-height:1.55;color:#5C636A;margin-bottom:10px !important}.swes-ok{font-size:14.5px;font-weight:600;color:var(--swes-dark)}
.swes-tick{display:inline-grid;place-items:center;width:64px;height:64px;border-radius:50%;background:var(--swes-accent);color:#fff;margin-bottom:14px;animation:swesPop .5s ease both}
@keyframes swesPop{from{transform:scale(.5);opacity:0}to{transform:none;opacity:1}}
.swes-center h3{margin:0 0 8px;font-size:22px;font-weight:600;color:var(--swes-dark)}
/* mobile: full-screen sheet */
@media(max-width:700px){
.swes-ov{padding:0;align-items:flex-end}
.swes-md{max-width:none;height:100%;max-height:100%;border-radius:0}
.swes-hd{padding:14px 16px}.swes-ov .swes-ttl{font-size:18px}
.swes-bd{padding:18px 16px}.swes-fo{padding:12px 16px calc(12px + env(safe-area-inset-bottom))}
.swes-cg{grid-template-columns:1fr}.swes-row{grid-template-columns:1fr;gap:0}
.swes-lg{font-size:20px}.swes-big{font-size:46px}.swes-rb strong{font-size:28px}
.swes-b{padding:0 16px;flex:1}.swes-fo .swes-b.swes-ghost{flex:0 0 auto}
}
@media(prefers-reduced-motion:reduce){.swes-fab,.swes-ov,.swes-md,.swes-pg span,.swes-b,.swes-cc{transition:none !important}.swes-pulse .swes-fi:after,.swes-tick{animation:none !important}}

/* ---- Theme-proofing: site themes restyle every <button> (colour, hover, text). Pin ours. ---- */
.swes-ov button.swes-cc,.swes-ov button.swes-cc:focus,.swes-ov button.swes-cc:active{background:#fff !important;color:var(--swes-dark,#083251) !important;border:1.5px solid #D5E3EF !important;border-radius:4px !important;box-shadow:none !important;text-transform:none !important;letter-spacing:normal !important;font-weight:400 !important;text-decoration:none !important;min-height:0;height:auto;width:100%}
.swes-ov button.swes-cc:hover,.swes-ov button.swes-cc:focus-visible{background:#F6FAFD !important;color:var(--swes-dark,#083251) !important;border-color:var(--swes-accent,#137CC8) !important;box-shadow:0 10px 22px rgba(8,50,81,.1) !important}
.swes-ov button.swes-cc .swes-cx b,.swes-ov button.swes-cc:hover .swes-cx b{color:var(--swes-dark,#083251) !important;background:none !important}
.swes-ov button.swes-cc .swes-cx small,.swes-ov button.swes-cc:hover .swes-cx small{color:#5C636A !important;background:none !important}
.swes-ov button.swes-cc .swes-ci{background:#EAF3FB !important;color:var(--swes-accent,#137CC8) !important}
.swes-ov button.swes-cc:hover .swes-ci{background:var(--swes-dark,#083251) !important;color:var(--swes-hi,#F5E68A) !important}
.swes-ov button.swes-cc .swes-ca{color:var(--swes-accent,#137CC8) !important;background:none !important}
.swes-ov button.swes-x,.swes-ov button.swes-x:focus{background:transparent !important;color:#fff !important;border:0 !important;box-shadow:none !important;border-radius:4px !important;padding:0 !important;min-height:0}
.swes-ov button.swes-x:hover{background:rgba(255,255,255,.14) !important;color:#fff !important}
.swes-ov button.swes-b{text-transform:none !important;letter-spacing:normal !important;box-shadow:none;border-radius:4px}
.swes-ov button.swes-b.swes-pri,.swes-ov button.swes-b.swes-pri:focus{background:var(--swes-accent,#137CC8) !important;color:#fff !important;border-color:transparent !important}
.swes-ov button.swes-b.swes-pri:hover:not([disabled]){background:var(--swes-dark,#083251) !important;color:#fff !important}
.swes-ov button.swes-b.swes-ghost,.swes-ov button.swes-b.swes-ghost:focus{background:#fff !important;color:var(--swes-dark,#083251) !important;border:1.5px solid #BFD3E4 !important}
.swes-ov button.swes-b.swes-ghost:hover{background:#F6FAFD !important;color:var(--swes-dark,#083251) !important;border-color:var(--swes-accent,#137CC8) !important}
.swes-ov .swes-md h3,.swes-ov .swes-md p,.swes-ov .swes-md label,.swes-ov .swes-md span{text-transform:none}
button.swes-fab,button.swes-fab:focus,button.swes-fab:active{background:linear-gradient(135deg,var(--swes-accent,#137CC8),var(--swes-dark,#083251)) !important;color:#fff !important;border:0 !important;border-radius:999px !important;text-transform:none !important;letter-spacing:normal !important}
button.swes-fab:hover{background:linear-gradient(135deg,var(--swes-accent,#137CC8),var(--swes-dark,#083251)) !important;color:#fff !important}
button.swes-fab .swes-ft2 b{color:#fff !important}
button.swes-fab .swes-ft2 small{color:rgba(255,255,255,.82) !important}
button.swes-fab .swes-fi{color:var(--swes-dark,#083251) !important;background:var(--swes-hi,#F5E68A) !important}
