:root{--quote-purple:#85068e;--quote-ink:#171222;--quote-muted:#6f6878}
body.quote-modal-open{overflow:hidden}
.quote-modal{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:24px;visibility:hidden;opacity:0;transition:opacity .25s ease,visibility .25s ease}
.quote-modal.is-open{visibility:visible;opacity:1}.quote-modal__backdrop{position:absolute;inset:0;background:rgba(18,9,26,.76);backdrop-filter:blur(8px)}
.quote-modal__panel{position:relative;display:grid;grid-template-columns:minmax(260px,.82fr) minmax(420px,1.18fr);width:min(980px,100%);max-height:calc(100vh - 48px);overflow:auto;background:#fff;border-radius:28px;box-shadow:0 28px 80px rgba(25,5,36,.35)}
.quote-modal__intro{padding:56px 44px;color:#fff;background:linear-gradient(145deg,#4d0a70,#99068f);position:relative;overflow:hidden}.quote-modal__intro:after{content:"";position:absolute;width:260px;height:260px;border:48px solid rgba(255,255,255,.08);border-radius:50%;right:-110px;bottom:-100px}
.quote-modal__intro span{display:block;margin-bottom:16px;font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.quote-modal__intro h2{color:#fff;font:700 clamp(30px,3.1vw,46px)/1.08 "Jost",sans-serif;margin:0 0 20px}.quote-modal__intro p{color:rgba(255,255,255,.82);line-height:1.7}.quote-modal__intro ul{list-style:none;padding:18px 0 0;margin:0}.quote-modal__intro li{display:flex;gap:11px;align-items:center;margin:14px 0;font-weight:500}.quote-modal__intro i{display:grid;place-items:center;width:25px;height:25px;border-radius:50%;background:rgba(255,255,255,.16);font-size:11px}
.quote-modal__form{padding:46px 44px;display:grid;gap:16px}.quote-modal__form label{display:grid;gap:7px;margin:0;color:var(--quote-ink);font-size:13px;font-weight:600}.quote-modal__form input,.quote-modal__form select,.quote-modal__form textarea{width:100%;border:1px solid #e7e0eb;border-radius:12px;background:#fbf9fc;color:var(--quote-ink);padding:13px 15px;font:400 14px/1.4 "Poppins",sans-serif;outline:none;transition:.2s}.quote-modal__form textarea{resize:vertical;min-height:96px}.quote-modal__form input:focus,.quote-modal__form select:focus,.quote-modal__form textarea:focus{border-color:var(--quote-purple);box-shadow:0 0 0 3px rgba(133,6,142,.1);background:#fff}.quote-modal__row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.quote-modal__submit{border:0;border-radius:12px;padding:15px 20px;color:#fff;background:linear-gradient(90deg,#6d0c91,#a0068f);font-weight:700;cursor:pointer;box-shadow:0 10px 24px rgba(133,6,142,.2)}.quote-modal__submit i{margin-left:8px}.quote-modal__form small{text-align:center;color:var(--quote-muted)}
.quote-modal__close{position:absolute;right:16px;top:14px;z-index:2;width:38px;height:38px;border:0;border-radius:50%;background:#f3edf5;color:#3a2842;font-size:25px;line-height:1;cursor:pointer}
@media(max-width:767px){.quote-modal{padding:12px;align-items:end}.quote-modal__panel{grid-template-columns:1fr;max-height:calc(100vh - 24px);border-radius:22px}.quote-modal__intro{padding:32px 24px 24px}.quote-modal__intro h2{font-size:30px;padding-right:30px}.quote-modal__intro p{margin-bottom:0}.quote-modal__intro ul{display:none}.quote-modal__form{padding:26px 20px}.quote-modal__row{grid-template-columns:1fr}.quote-modal__close{background:rgba(255,255,255,.18);color:#fff}}
@media(max-width:390px){.quote-modal__intro{padding:26px 18px 18px}.quote-modal__form{padding:20px 16px;gap:12px}.quote-modal__form input,.quote-modal__form select,.quote-modal__form textarea{padding:11px 12px}}

/* Compact visitor form: a small, low-friction card instead of a full-screen sales panel. */
.quote-modal__panel{display:block;width:min(560px,100%);max-height:calc(100vh - 32px);border-radius:22px}
.quote-modal__intro{padding:25px 30px 21px}
.quote-modal__intro:after{width:150px;height:150px;border-width:30px;right:-70px;bottom:-85px}
.quote-modal__intro span{margin-bottom:7px;font-size:10px;letter-spacing:.13em}
.quote-modal__intro h2{max-width:440px;margin:0 38px 8px 0;font-size:clamp(24px,2.2vw,32px)}
.quote-modal__intro p{max-width:480px;margin:0;font-size:12px;line-height:1.5}
.quote-modal__intro ul{display:flex;flex-wrap:wrap;gap:5px 13px;padding:13px 0 0}
.quote-modal__intro li{gap:6px;margin:0;font-size:10px}
.quote-modal__intro i{width:16px;height:16px;font-size:7px}
.quote-modal__form{padding:22px 30px 24px;gap:11px}
.quote-modal__form label{gap:4px;font-size:11px}
.quote-modal__form input,.quote-modal__form select,.quote-modal__form textarea{padding:9px 11px;border-radius:9px;font-size:12px}
.quote-modal__form textarea{min-height:62px;max-height:110px}
.quote-modal__row{gap:10px}
.quote-modal__submit{padding:11px 17px;border-radius:10px;font-size:12px}
.quote-modal__form small{font-size:9px}
.quote-modal__close{right:13px;top:12px;width:31px;height:31px;background:rgba(255,255,255,.16);color:#fff;font-size:21px}
@media(max-width:767px){.quote-modal{padding:10px;align-items:center}.quote-modal__panel{max-height:calc(100vh - 20px);border-radius:18px}.quote-modal__intro{padding:22px 20px 18px}.quote-modal__intro h2{font-size:25px}.quote-modal__form{padding:19px 20px 21px}.quote-modal__close{right:10px;top:10px}}
@media(max-width:480px){.quote-modal__intro{padding:20px 17px 16px}.quote-modal__form{padding:17px 16px 19px;gap:9px}.quote-modal__row{grid-template-columns:1fr 1fr;gap:8px}.quote-modal__form input,.quote-modal__form select,.quote-modal__form textarea{padding:8px 9px}.quote-modal__intro p{font-size:11px}}
@media(max-width:350px){.quote-modal__row{grid-template-columns:1fr}.quote-modal__intro p{display:none}}

/* Separate first-visit offer. Manual CTAs continue to use the quote modal above. */
.visitor-offer{position:fixed;inset:0;z-index:10060;display:grid;place-items:center;padding:20px;visibility:hidden;opacity:0;transition:opacity .28s ease,visibility .28s ease}
.visitor-offer.is-open{visibility:visible;opacity:1}
.visitor-offer__backdrop{position:absolute;inset:0;background:rgba(13,5,20,.8);backdrop-filter:blur(9px)}
.visitor-offer__panel{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;width:min(860px,100%);max-height:calc(100vh - 40px);overflow:auto;border:1px solid rgba(255,255,255,.16);border-radius:25px;background:#fff;box-shadow:0 35px 100px rgba(12,0,21,.52)}
.visitor-offer__close{position:absolute;right:14px;top:13px;z-index:3;display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:#f2ebf4;color:#3d2744;font-size:23px;line-height:1;cursor:pointer}
.visitor-offer__deal{position:relative;overflow:hidden;padding:46px 42px;color:#fff;background:radial-gradient(circle at 15% 0,rgba(249,0,220,.28),transparent 34%),linear-gradient(145deg,#190c34,#4e075f)}
.visitor-offer__deal:after{content:"";position:absolute;right:-95px;bottom:-120px;width:280px;height:280px;border:50px solid rgba(255,255,255,.055);border-radius:50%}
.visitor-offer__eyebrow{display:inline-flex;padding:7px 12px;border-radius:999px;background:linear-gradient(90deg,#ff4e72,#ff7047);font:800 10px/1 Poppins,sans-serif;letter-spacing:.12em;text-transform:uppercase}
.visitor-offer__save{margin:27px 0 -12px;color:#f8a7f2;font:800 13px/1 Poppins,sans-serif;letter-spacing:.34em}
.visitor-offer__deal>strong{position:relative;z-index:1;display:flex;align-items:flex-start;color:#fff;font:900 96px/.9 Jost,sans-serif;letter-spacing:-.06em}
.visitor-offer__deal>strong sup{margin:8px 0 0 4px;font-size:37px;letter-spacing:0}
.visitor-offer__deal>strong small{align-self:flex-end;margin:0 0 10px -30px;padding:4px 8px;border-radius:6px;background:#ef0fcf;font:800 14px/1 Poppins,sans-serif;letter-spacing:.08em}
.visitor-offer__deal h2{position:relative;z-index:1;margin:14px 0 10px;color:#fff;font:800 28px/1.08 Jost,sans-serif;text-transform:uppercase}
.visitor-offer__deal>p:last-of-type{position:relative;z-index:1;margin:0;color:rgba(255,255,255,.76);font:400 12px/1.6 Poppins,sans-serif}
.visitor-offer__deal ul{position:relative;z-index:1;display:grid;gap:10px;margin:23px 0 0;padding:0;list-style:none;font:500 11px/1.35 Poppins,sans-serif}
.visitor-offer__deal li{display:flex;align-items:center;gap:9px}.visitor-offer__deal li i{color:#ffc229}
.visitor-offer__form-wrap{padding:43px 42px 34px}
.visitor-offer__form-wrap>span{color:#940596;font:800 10px/1 Poppins,sans-serif;letter-spacing:.13em;text-transform:uppercase}
.visitor-offer__form-wrap h2{margin:8px 36px 7px 0;color:#211929;font:800 31px/1.1 Jost,sans-serif}
.visitor-offer__form-wrap>p{margin:0 0 18px;color:#766e7e;font:400 12px/1.55 Poppins,sans-serif}
.visitor-offer__form{display:grid;gap:10px}
.visitor-offer__form input,.visitor-offer__form select,.visitor-offer__form textarea{width:100%;min-height:42px;padding:10px 13px;border:1px solid #e5deea;border-radius:10px;background:#f8f6fa;color:#211929;font:400 12px/1.35 Poppins,sans-serif;outline:none}
.visitor-offer__form textarea{min-height:55px;resize:vertical}.visitor-offer__form input:focus,.visitor-offer__form select:focus,.visitor-offer__form textarea:focus{border-color:#a0069c;box-shadow:0 0 0 3px rgba(160,6,156,.1);background:#fff}
.visitor-offer__form button{min-height:48px;border:0;border-radius:999px;background:linear-gradient(90deg,#e700c5,#8c00ec);box-shadow:0 12px 26px rgba(151,0,193,.25);color:#fff;font:800 13px Poppins,sans-serif;cursor:pointer}.visitor-offer__form button i{margin-left:7px}
.visitor-offer__form small{color:#8b8491;font:400 9px/1.45 Poppins,sans-serif;text-align:center}
@media(max-width:700px){.visitor-offer{padding:10px}.visitor-offer__panel{grid-template-columns:1fr;max-width:430px;max-height:calc(100vh - 20px);border-radius:19px}.visitor-offer__deal{padding:24px 23px 20px}.visitor-offer__eyebrow{padding:6px 9px}.visitor-offer__save{display:none}.visitor-offer__deal>strong{font-size:61px;margin-top:13px}.visitor-offer__deal>strong sup{font-size:25px}.visitor-offer__deal>strong small{margin-bottom:5px;font-size:10px}.visitor-offer__deal h2{position:absolute;left:155px;right:20px;top:59px;margin:0;font-size:20px}.visitor-offer__deal>p:last-of-type{display:none}.visitor-offer__deal ul{display:flex;flex-wrap:wrap;gap:5px 12px;margin-top:10px;font-size:9px}.visitor-offer__form-wrap{padding:22px 20px}.visitor-offer__form-wrap h2{font-size:26px}.visitor-offer__form-wrap>p{margin-bottom:13px}.visitor-offer__form textarea{display:none}}
@media(max-width:370px){.visitor-offer__deal h2{font-size:17px}.visitor-offer__form-wrap{padding:18px 15px}.visitor-offer__form{gap:8px}.visitor-offer__form input,.visitor-offer__form select{min-height:39px;padding:8px 10px}}
