@font-face{font-family:"Montserrat";src:url(/fonts/montserrat.woff2) format("woff2");font-weight:400 800;font-display:swap}
:root{--navy:#2C3690;--pink:#CA1A7C;--ink:#1d2140;--mute:#5a5f7a;--line:#d7dae8;--bg:#f4f5fa}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:"Montserrat",system-ui,-apple-system,"Segoe UI",Arial,sans-serif;color:var(--ink);background:var(--bg);font-size:16px;line-height:1.45}
.brand{background:#FCFEFF;border-bottom:1px solid var(--line)}
.brand-in{max-width:760px;margin:0 auto;padding:12px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px 20px;flex-wrap:wrap}
.brand img{height:auto;width:200px;max-width:70vw;display:block}
.brand .addr{margin:6px 0 0;font-size:.78rem;font-weight:600;color:var(--mute);letter-spacing:.01em}
.brand .lic{margin:2px 0 0;font-size:.7rem;font-weight:500;color:var(--mute);letter-spacing:.01em}
.foot .lic{font-size:.74rem;margin-top:4px}
.brand .local{margin:0;padding-left:14px;border-left:3px solid var(--pink);font-size:.86rem;line-height:1.35;color:var(--ink);max-width:300px}
.brand .local strong{display:block;color:var(--navy);font-weight:800;font-size:1.02rem}
.band{background:linear-gradient(100deg,var(--navy) 0%,#5a2a88 55%,var(--pink) 100%);color:#fff}
.band-in{max-width:760px;margin:0 auto;padding:18px 16px 20px}
.band h1{margin:0 0 4px;font-size:1.55rem;line-height:1.2;font-weight:800;letter-spacing:-.01em}
.band p{margin:0;font-size:.95rem;opacity:.95}
main{max-width:760px;margin:0 auto;padding:14px 12px 8px}
.card{background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 14px 12px}
.fld{display:block;margin:0 0 11px;border:0;padding:0;min-width:0}
.fld>span,.fld legend{display:block;font-weight:700;font-size:.86rem;margin:0 0 4px;color:var(--navy);padding:0}
.fld em{font-style:normal;font-weight:500;color:var(--mute)}
input,select{font:inherit;color:inherit}
.fld input,.other{width:100%;height:44px;border:1px solid #c3c7da;border-radius:8px;padding:0 12px;background:#fff;font-size:16px}
.fld input:focus,.other:focus,select:focus{outline:3px solid rgba(44,54,144,.25);border-color:var(--navy)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.row2.tz{grid-template-columns:1fr 112px}
@media (max-width:520px){.row2{grid-template-columns:1fr}.row2.tz{grid-template-columns:1fr 104px}}
.sizes{display:grid;grid-template-columns:repeat(10,1fr);gap:6px}
@media (max-width:560px){.sizes{grid-template-columns:repeat(5,1fr)}}
.sz,.chip,.pk{position:relative;cursor:pointer}
.sz input,.chip input,.pk input{position:absolute;opacity:0;width:1px;height:1px}
.sz span{display:flex;align-items:center;justify-content:center;height:42px;border:1px solid #c3c7da;border-radius:8px;font-weight:700;background:#fff;color:var(--navy)}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chip span{display:inline-flex;align-items:center;min-height:40px;padding:6px 13px;border:1px solid #c3c7da;border-radius:999px;font-size:.9rem;font-weight:600;background:#fff;color:var(--ink)}
.sz input:checked+span,.chip input:checked+span,.pk input:checked+span{background:var(--navy);border-color:var(--navy);color:#fff}
.sz input:focus-visible+span,.chip input:focus-visible+span,.pk input:focus-visible+span{outline:3px solid rgba(202,26,124,.45);outline-offset:2px}
.other{margin-top:8px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.err{color:#b0124f;font-weight:600;font-size:.9rem;margin:2px 0 8px}
.go{display:block;width:100%;min-height:54px;border:0;border-radius:10px;background:var(--pink);color:#fff;font:inherit;font-size:1.1rem;font-weight:800;cursor:pointer;letter-spacing:.01em}
.go:hover{background:#b3156c}.go:focus-visible{outline:3px solid var(--navy);outline-offset:2px}
.go[disabled]{opacity:.6;cursor:default}
.consent{margin:8px 0 0;font-size:.78rem;color:var(--mute);text-align:center}
.foot{max-width:760px;margin:0 auto;padding:6px 16px 24px;text-align:center;font-size:.8rem;color:var(--mute)}
.foot p{margin:2px 0}.foot a{color:var(--navy)}
.foot .fine{font-size:.72rem;margin-top:6px}
.ov{position:fixed;inset:0;background:rgba(20,24,60,.55);display:flex;align-items:flex-end;justify-content:center;z-index:10}
.ov[hidden]{display:none}
.sheet{background:#fff;width:100%;max-width:620px;max-height:100%;overflow:auto;border-radius:14px 14px 0 0;padding:0 0 16px;-webkit-overflow-scrolling:touch}
@media (min-width:640px){.ov{align-items:center;padding:20px}.sheet{border-radius:14px;max-height:94vh}}
.sheet-top{background:linear-gradient(100deg,var(--navy),#5a2a88 55%,var(--pink));color:#fff;padding:16px 16px 14px}
.sheet h2{margin:0;font-size:1.3rem;font-weight:800}
.sheet .sub{margin:3px 0 0;font-size:.92rem}
.tap{margin:12px 16px 0;font-size:.88rem;font-weight:700;color:var(--navy)}
.tiers{list-style:none;margin:8px 16px 6px;padding:0}
.tb{display:block;width:100%;text-align:left;font:inherit;color:inherit;background:#fff;border:1px solid #c3c7da;border-left:8px solid var(--navy);border-radius:10px;padding:12px 14px;margin:0 0 9px;cursor:pointer;min-height:64px}
.tb.t2{border-left-color:#7a2a8a}.tb.t3{border-left-color:var(--pink)}
.tb:hover{background:#f7f8fd}.tb:active{background:#eef0fb}
.tb:focus-visible{outline:3px solid rgba(202,26,124,.45);outline-offset:2px}
.tb .cta{display:block;margin-top:5px;font-size:.84rem;font-weight:800;color:var(--pink)}
.ov2{z-index:11}
.qrb{text-align:center;padding:14px 16px 0}
.qr{display:block;width:260px;height:260px;max-width:70vw;max-height:70vw;margin:0 auto;border:1px solid var(--line);border-radius:8px;background:#fff}
.qrcap{margin:12px 0 0;font-size:1.2rem;font-weight:800;color:var(--navy)}
.qrurl{margin:2px 0 0;font-size:.82rem;color:var(--mute)}
.choose.q{margin:10px 0 4px}
.over{margin:16px 16px 0;font-size:1.05rem;font-weight:600;color:var(--ink);text-align:center}
.go.alt{display:block;margin:14px 16px 0;width:calc(100% - 32px);background:var(--navy)}
.go.alt:hover{background:#232b78}
.go.alt[hidden]{display:none}
#qsheet .done{margin-top:14px}
.tiers li{border:1px solid var(--line);border-left:6px solid var(--navy);border-radius:8px;padding:10px 12px;margin:0 0 8px}
.tiers li.t2{border-left-color:#7a2a8a}.tiers li.t3{border-left-color:var(--pink)}
.tiers .amt{display:block;font-weight:800;font-size:1.08rem;color:var(--navy)}
.tiers .msg{display:block;font-size:.95rem;margin-top:2px}
.note{margin:4px 16px;font-size:.82rem;color:var(--mute)}
.cty{margin:8px 0 0;font-size:.95rem;font-weight:700;color:var(--navy);display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.cty label{display:inline-flex;align-items:center;gap:8px}
.cty select{border:1.5px solid var(--navy);border-radius:8px;padding:6px 10px;min-height:40px;font:inherit;font-weight:700;color:var(--navy);background:#f6f7fc}
.ctyHint{font-weight:500;font-size:.85rem;color:rgba(255,255,255,.85)}
.sheet-top .cty{color:#fff}
.sched{margin:14px 16px 0;border-top:1px solid var(--line);padding-top:12px}
.sched h3{margin:0;font-size:1.08rem;color:var(--navy);font-weight:800}
.sub2{margin:2px 0 8px;font-size:.9rem}
.pick{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
.pk span{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;min-width:64px;min-height:44px;padding:4px 10px;border:1px solid #c3c7da;border-radius:8px;font-size:.84rem;font-weight:700;background:#fff;color:var(--navy);line-height:1.15}
.pk small{font-weight:500;font-size:.72rem}
.pk input:disabled+span{opacity:.35;cursor:default}
.ok{margin:8px 0 0;padding:10px 12px;border-radius:8px;background:#eef0fb;color:var(--navy);font-weight:700;font-size:.92rem}
.choose{margin:14px 16px 2px;font-size:1rem;font-weight:600;text-align:center}
.contact{margin:0 16px 10px;font-size:.84rem;color:var(--mute);text-align:center}
.done{display:block;margin:0 16px;width:calc(100% - 32px);min-height:46px;border:1px solid var(--navy);border-radius:10px;background:#fff;color:var(--navy);font:inherit;font-weight:800;cursor:pointer}
.done:focus-visible{outline:3px solid rgba(202,26,124,.45)}
.startover{display:block;margin:10px auto 0;background:none;border:0;color:var(--navy);font:inherit;font-weight:700;font-size:.9rem;text-decoration:underline;cursor:pointer;min-height:40px;padding:0 12px}
.sched .go{margin-top:4px}
/* Tablet (booth kiosk): bigger type and touch targets */
@media (min-width:700px){
 body{font-size:18px}
 .brand-in,.band-in,main,.foot{max-width:900px}
 .brand-in{padding:16px 24px}.brand img{width:270px}.brand .addr{font-size:.9rem}.brand .local{font-size:1rem;max-width:440px;padding-left:16px}.brand .local strong{font-size:1.2rem}
 .band-in{padding:26px 24px 28px}.band h1{font-size:2.3rem}.band p{font-size:1.15rem}
 main{padding:20px 24px 10px}
 .card{padding:22px 22px 18px;border-radius:14px}
 .fld{margin-bottom:16px}
 .fld>span,.fld legend{font-size:1rem;margin-bottom:6px}
 .fld input,.other{height:56px;font-size:19px;border-radius:10px}
 .row2{gap:16px}.row2.tz{grid-template-columns:1fr 150px}
 .sizes{gap:8px}.sz span{height:58px;font-size:1.25rem;border-radius:10px}
 .chips{gap:10px}.chip span{min-height:54px;padding:8px 20px;font-size:1.05rem}
 .go{min-height:66px;font-size:1.35rem;border-radius:12px}
 .consent{font-size:.9rem}.startover{font-size:1.05rem;min-height:48px}
 .foot{font-size:.95rem}.foot .fine{font-size:.82rem}
 .sheet{max-width:760px}.sheet h2{font-size:1.7rem}.sheet .sub{font-size:1.1rem}.sheet-top{padding:22px 24px 18px}
 .tap{margin:16px 24px 0;font-size:1.02rem}.tiers{margin:10px 24px 8px}.tb{padding:16px 20px;min-height:92px;border-radius:12px;margin-bottom:12px}.tiers .amt{font-size:1.45rem}.tiers .msg{font-size:1.12rem}.tb .cta{font-size:.98rem}
 .qrb{padding:20px 24px 0}.qr{width:340px;height:340px}.qrcap{font-size:1.5rem}.qrurl{font-size:.95rem}.over{margin:22px 24px 0;font-size:1.25rem}.go.alt{margin:18px 24px 0;width:calc(100% - 48px)}
 .brand .lic{font-size:.8rem}.foot .lic{font-size:.85rem}
 .note{margin-left:24px;margin-right:24px;font-size:.95rem}.cty{font-size:1.1rem}.cty select{min-height:48px}
 .sched{margin:18px 24px 0;padding-top:16px}.sched h3{font-size:1.35rem}.sub2{font-size:1.05rem}
 .pick{gap:10px}.pk span{min-width:96px;min-height:64px;font-size:1.05rem;border-radius:10px}.pk small{font-size:.85rem}
 .ok{font-size:1.1rem;padding:14px 16px}
 .choose{font-size:1.2rem;margin:18px 24px 6px}
 .done{margin:8px 24px 0;width:calc(100% - 48px);min-height:58px;font-size:1.1rem}
}
@media (min-width:700px) and (orientation:landscape){.sizes{grid-template-columns:repeat(10,1fr)}}
@media (min-width:700px) and (max-height:900px){.sheet-top{padding:14px 24px 12px}.tiers{margin-top:12px}.tb{padding:11px 16px;min-height:76px;margin-bottom:8px}.tiers .amt{font-size:1.25rem}.tiers .msg{font-size:1rem}.qr{width:280px;height:280px}.sched{margin-top:12px;padding-top:10px}.pk span{min-height:56px}}

.ac{position:relative}
.ac>label{display:block}
.sugg{position:absolute;left:0;right:0;top:100%;margin:4px 0 0;padding:4px 0;list-style:none;background:#fff;border:1px solid #c3c7da;border-radius:8px;box-shadow:0 6px 18px rgba(20,24,60,.14);z-index:5;max-height:300px;overflow:auto}
.sugg[hidden]{display:none}
.sugg li{padding:10px 12px;cursor:pointer;line-height:1.25;border-bottom:1px solid #eef0f6}
.sugg li:last-child{border-bottom:0}
.sugg li b{display:block;font-weight:700;color:var(--navy)}
.sugg li small{display:block;color:var(--mute);font-size:.82rem}
.sugg li[aria-selected=true],.sugg li:hover{background:#f1f2fa}
.cty1 select{width:100%;height:44px;border:1px solid #c3c7da;border-radius:8px;padding:0 10px;background:#fff;font-size:16px}
.cty1.auto select{border-color:var(--navy);background:#f6f7fc}
@media (min-width:700px){.sugg li{padding:14px 16px;font-size:1.05rem}.sugg li small{font-size:.92rem}.cty1 select{height:56px;font-size:19px;border-radius:10px}}
.foot a.teamlink{display:inline-flex;align-items:center;gap:6px;margin-top:14px;padding:6px 12px;border:1px solid var(--line);border-radius:999px;font-size:.74rem;font-weight:700;color:var(--mute);background:#fff;text-decoration:none}

/* v1.12 another-date calendar */
#cdateWrap{flex-basis:100%;width:100%;margin-top:6px}
#cdateWrap[hidden]{display:none}
#cdate{display:block;width:100%;box-sizing:border-box;font:inherit;font-size:20px;padding:12px 14px;border:2px solid #2C3690;border-radius:12px;background:#fff;color:#1d2140;min-height:54px}
#cdateMsg{margin:6px 0 0;color:#CA1A7C;font-weight:700}
#cdateMsg[hidden]{display:none}

/* OWN-HOSTING: inside the supersealinsulation.com iframe his own site header shows the logo, so hide ours */
.in-frame .brand{display:none}
/* OWN-HOSTING v1.15: on his website (iframe) customers do not see the team link; direct load keeps it */
.in-frame .foot a.teamlink{display:none}
/* v1.16 OWN-HOSTING: tappable application button (mailer visitors are already on their phone). Phone: button first, QR smaller below. */
.qrb{display:flex;flex-direction:column}.qrb[hidden]{display:none}
.apl{order:1}.qrw{order:2;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.apply{display:block;width:100%;box-sizing:border-box;min-height:58px;padding:16px 14px;border-radius:12px;background:linear-gradient(100deg,var(--navy) 0%,#5a2a88 55%,var(--pink) 100%);color:#fff;font:inherit;font-size:1.15rem;font-weight:800;line-height:1.25;text-align:center;text-decoration:none;letter-spacing:.01em;box-shadow:0 3px 10px rgba(44,54,144,.25)}
.apply:hover,.apply:active{filter:brightness(1.08)}.apply:focus-visible{outline:3px solid var(--pink);outline-offset:3px}
.apply .nw{white-space:nowrap}
.apl .choose.q{margin:12px 0 2px}
.apl .qrurl{margin:6px 0 0;font-size:.9rem}.qrurl a{color:var(--navy);font-weight:700;text-decoration:underline;word-break:break-all}
.qrw .qr{width:170px;height:170px}.qrw .qrcap{font-size:.95rem;font-weight:700;margin-top:8px}
@media (min-width:700px){
 .apl{order:2;margin-top:18px}.qrw{order:1;margin-top:0;padding-top:0;border-top:0}
 .qrw .qr{width:300px;height:300px}.qrw .qrcap{font-size:1.4rem;font-weight:800;margin-top:12px}
 .apply{font-size:1.3rem;min-height:64px}.apl .qrurl{font-size:1rem}
}
@media (min-width:700px) and (max-height:900px){.qrw .qr{width:240px;height:240px}}
/* v1.16.3 OWN-HOSTING: Yudah - opposite of v1.16.2: QR FIRST on every screen (normal size, caption "Scan to get a link for our application"),
   ~20px space, then the button centered under the QR, then the contractor line. No divider. Button styling kept from v1.16.2. */
.qrb .qrw{order:1;margin:0 auto;padding:0;border-top:0;width:100%}
.qrb .qrw .qr{width:240px;height:240px;max-width:100%}.qrb .qrw .qrcap{font-size:1.15rem;font-weight:800;margin-top:10px;color:var(--navy)}
.qrb .apl{order:2;padding:20px 0 6px;margin:0}
.qrb .apply{font-size:1.2rem;min-height:60px;margin:0 auto}
.qrb .apl .choose.q{margin:12px auto 0;max-width:460px}
@media (min-width:700px){
 .qrb .qrw .qr{width:300px;height:300px}.qrb .qrw .qrcap{font-size:1.4rem;font-weight:800;margin-top:12px}
 .qrb .apl{order:2;padding:20px 0 10px}
 .qrb .apply{width:fit-content;min-width:340px;max-width:520px;display:block;font-size:1.35rem;min-height:66px;padding:20px 32px}
}
@media (min-width:700px) and (max-height:900px){.qrb .qrw .qr{width:240px;height:240px}}

/* v1.17: booked confirmation card. Once a call is booked the picker, its heading and the Book button are hidden
   (before this, .go{display:block} beat the [hidden] attribute, so "Book my call" stayed on screen after booking). */
.booked[hidden]{display:none}
.sched.is-booked>h3,.sched.is-booked>.sub2,.sched.is-booked>.pick,.sched.is-booked>#schedBtn{display:none!important}
.sched.is-booked>#schedOk{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.sched.is-booked{border-top:0;padding-top:4px}
.booked{text-align:center;background:#f2faf5;border:2px solid #1f9d55;border-radius:14px;padding:20px 16px 16px;margin:4px 0 0}
.bk-check{display:flex;justify-content:center;margin:0 0 8px}.bk-check svg{display:block;width:64px;height:64px}
.booked .bk-h{margin:0 0 10px;font-size:1.6rem;line-height:1.15;font-weight:800;color:var(--navy);letter-spacing:-.01em}
.bk-when{margin:0 0 10px}
.bk-when span{display:block}
#bkDay{font-size:1.25rem;font-weight:800;color:var(--ink)}
.bk-time{display:inline-block!important;margin-top:6px;padding:5px 14px;border-radius:999px;background:var(--navy);color:#fff;font-weight:800;font-size:1.05rem}
.bk-phone{margin:0 0 12px;font-size:1rem;color:var(--ink)}.bk-phone strong{color:var(--navy);white-space:nowrap}
.bk-chg{margin:0;padding-top:10px;border-top:1px solid #cfe8d9;font-size:.85rem;color:var(--mute)}
.bk-chg .bk-num{color:var(--pink);font-weight:800;text-decoration:none;white-space:nowrap}
@media (min-width:700px){
 .booked{padding:28px 24px 20px;max-width:560px;margin:4px auto 0}
 .bk-check svg{width:76px;height:76px}
 .booked .bk-h{font-size:2rem}#bkDay{font-size:1.45rem}.bk-time{font-size:1.15rem}.bk-phone{font-size:1.1rem}.bk-chg{font-size:.95rem}
}

/* v1.18 (OWN-HOSTING): address suggestions on phones - bigger tap rows, "Looking up..." row, no grey tap flash */
.sugg li{min-height:44px;-webkit-tap-highlight-color:rgba(44,54,144,.08);touch-action:manipulation}
.sugg li.sg-wait{cursor:default;min-height:0;color:var(--mute)}
.sugg li.sg-wait small{font-style:italic}

/* v1.19 OWN-HOSTING: (a) QR removed from the result popup on every size (markup gone from index.html) - the apply button is the main action,
   centered, contractor line under it. (b) On his website (iframe) the popups are a "next page": sheet at the TOP of the frame on a plain page
   background, no dimmed backdrop. Before, the sheet sat at the BOTTOM of a frame sized to the (taller) form, so the top of the frame was a big
   empty dimmed (gray) area. frame.js now also sizes the frame to the open popup, not the form behind it. */
.qrb .apl{padding:22px 0 8px}
@media (min-width:700px){.qrb .apl{padding:28px 0 14px}}
.in-frame .ov{align-items:flex-start;background:var(--bg);padding:0}
.in-frame .sheet{border-radius:0 0 14px 14px;box-shadow:0 4px 18px rgba(20,24,60,.12)}
@media (min-width:640px){.in-frame .ov{padding:12px 20px}.in-frame .sheet{border-radius:14px;max-height:100%}}
