/* Kimberly's Free Estimate Popup — all frontend selectors are prefixed */
:root { --kcsfe-accent: #139d8f; }
.kcsfe-overlay, .kcsfe-overlay *,.kcsfe-floating-trigger,.kcsfe-shortcode-trigger { box-sizing: border-box; }
.kcsfe-overlay[hidden], .kcsfe-overlay [hidden], .kcsfe-floating-trigger[hidden] { display: none !important; }
body.kcsfe-modal-open { overflow: hidden !important; }
.kcsfe-overlay { position: fixed !important; inset: 0 !important; z-index: 2147483000 !important; display: flex; align-items: center; justify-content: center; padding: 22px; background: rgba(5,17,21,.78); backdrop-filter: blur(7px); -webkit-backdrop-filter: blur(7px); overflow: auto; overscroll-behavior: contain; animation: kcsfeFade .24s ease; }
.kcsfe-overlay .kcsfe-modal { isolation: isolate; position: relative !important; display: grid; grid-template-columns: minmax(255px, .78fr) minmax(0, 1.22fr); width: min(100%, 960px); height: min(790px, calc(100dvh - 36px)); max-height: calc(100dvh - 36px); margin: auto; overflow: hidden; border-radius: 24px; background: #fff; box-shadow: 0 32px 95px rgba(0,0,0,.28); font-family: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif; color: #153239; line-height: 1.5; text-align: left; animation: kcsfePop .31s cubic-bezier(.2,.8,.2,1) both; }
.kcsfe-overlay .kcsfe-modal :is(button,input,select,textarea) { font-family: inherit; letter-spacing: normal; text-transform: none; }
.kcsfe-overlay .kcsfe-modal :is(button,input,select,textarea):focus-visible { outline: 3px solid color-mix(in srgb, var(--kcsfe-accent) 52%, white); outline-offset: 2px; }
.kcsfe-overlay .kcsfe-modal :is(h2,h3,p) { margin-top: 0; }
.kcsfe-close { position:absolute; z-index: 3; top: 17px; right: 18px; width: 39px; height: 39px; display:flex; align-items:center; justify-content:center; border: 1px solid #dce9e9 !important; border-radius: 50% !important; background: #fff !important; color: #28434a !important; cursor: pointer; font-size: 25px !important; font-weight: 400; box-shadow: 0 2px 10px rgba(0,0,0,.04); }
.kcsfe-close:hover { background: #e8f8f5 !important; }
.kcsfe-hero { min-width:0; display: flex; flex-direction: column; justify-content: center; padding: 40px 32px; background: radial-gradient(circle at 95% 10%,rgba(255,255,255,.14),transparent 38%),linear-gradient(150deg,#07464d 0%,#09353a 57%,#0c242c 100%); color:#fff; position:relative; overflow-y:auto; overscroll-behavior:contain; }
.kcsfe-hero:after { content:""; position:absolute; width:240px;height:240px; border:1px solid rgba(255,255,255,.10); border-radius:50%; bottom:-145px;left:-105px; pointer-events:none; }
.kcsfe-brand { display:flex; align-items:center; gap:9px; margin-bottom:32px; max-width:260px; color:#d7f5eb; font-weight: 750; font-size:11px; letter-spacing:1.45px; line-height:1.55; }
.kcsfe-brand-mark { flex:0 0 auto; display:flex; align-items:center; justify-content:center; width:32px;height:32px; border-radius:10px; background:rgba(255,255,255,.13); color:#a7f1c9; font-size:23px; }
.kcsfe-hero #kcsfe-heading { margin:0 0 15px; max-width:330px; font-size:clamp(27px, 2.8vw, 42px); font-weight:800; line-height:1.13; letter-spacing:-1.35px; color:white; }
.kcsfe-hero #kcsfe-description { font-size:15px; font-weight:400; line-height:1.7; color:#c9dfdd; max-width:310px; margin-bottom:0; }
.kcsfe-special { padding:21px 20px; margin-top:30px; background:linear-gradient(125deg,#e5ffed 0%,#f6fff9 100%); border:1px solid #b0e8ca; border-radius:16px; color:#17443b; }
.kcsfe-special-eyebrow { color:#26805c; font-size:10px; font-weight:800; letter-spacing:1.05px; margin-bottom:7px; }
.kcsfe-special-title { color:#113b34; line-height:1.2; letter-spacing:-.55px; font-size:clamp(19px, 2.2vw, 25px); font-weight:850; margin-bottom:7px; }
.kcsfe-special-subtitle { color:#17724b; font-size:13px; font-weight:750; }
.kcsfe-special small { display:block; color:#496d60; font-size:10px; margin-top:10px; line-height:1.5; }
.kcsfe-form-side { display:flex; flex-direction:column; padding:30px 33px 18px; min-width:0; min-height:0; overflow:hidden; background:#fff; }
.kcsfe-form { display:flex; flex:1 1 auto; min-height:0; min-width:0; flex-direction:column; margin:0; }
.kcsfe-form-actions { flex:0 0 auto; padding:11px 1px 0; margin-top:3px; background:#fff; border-top:1px solid #e6eff0; box-shadow:0 -7px 15px -16px #193e43; position:relative; z-index:1; }
.kcsfe-form .kcsfe-fields { flex:1 1 auto; min-height:0; overflow-y:auto; overflow-x:hidden; padding:4px 9px 12px 1px; align-content:start; scrollbar-width:thin; scrollbar-color:#aacbc8 transparent; overscroll-behavior:contain; }
.kcsfe-form .kcsfe-fields::-webkit-scrollbar { width:7px; }
.kcsfe-form .kcsfe-fields::-webkit-scrollbar-thumb { background:#bdd5d4; border-radius:10px; }
.kcsfe-form .kcsfe-fields::-webkit-scrollbar-track { background:transparent; }

.kcsfe-form-intro { flex:0 0 auto; display:flex; flex-direction:column; gap:4px; padding-right:45px; margin:0 0 17px; }
.kcsfe-form-intro strong { font-size:21px; font-weight:800; letter-spacing:-.5px; color:#17373e; line-height:1.3; }
.kcsfe-form-intro span { color:#73888d; font-size:12px; }
.kcsfe-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:12px; row-gap:12px; }
.kcsfe-field { display:flex; flex-direction:column; gap:5px; min-width:0; margin:0; font-size:12px; line-height:1.4; font-weight:650; color:#34535a; }
.kcsfe-field > span b { color:#db5d60; }
.kcsfe-wide { grid-column:1/-1; }
.kcsfe-field :is(input,select,textarea) { width:100%; min-width:0; max-width:none; height:43px; padding:0 12px; border:1px solid #d9e5e7 !important; border-radius:9px !important; background:#f7fafb !important; box-shadow:none !important; color:#153239 !important; font-weight:450; font-size:13px; line-height:1.4; appearance:auto; transition:border-color .15s,box-shadow .15s; margin:0 !important; }
.kcsfe-field :is(input,textarea)::placeholder { color:#92a3aa; opacity:1; }
.kcsfe-field :is(input,select,textarea):focus { border-color:var(--kcsfe-accent) !important; outline:0; box-shadow:0 0 0 3px rgba(19,157,143,.12) !important; }
.kcsfe-field textarea { height:auto; min-height:68px; padding:10px 12px; resize:vertical; }
.kcsfe-extras { padding:0; margin:2px 0 0; border:0; min-width:0; }
.kcsfe-extras legend { padding:0; margin-bottom:7px; color:#34535a; font-size:12px; font-weight:650; line-height:1.4; }
.kcsfe-extras-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.kcsfe-extras-grid label { display:flex; align-items:center; gap:6px; border:1px solid #dce8e9; border-radius:8px; padding:9px; color:#446167; font-size:11.5px; font-weight:500; background:#fafdfc; margin:0; cursor:pointer; }
.kcsfe-extras-grid input, .kcsfe-consent input { width:15px;height:15px; margin:0; flex:0 0 auto; accent-color:var(--kcsfe-accent); }
.kcsfe-consent { display:flex; align-items:flex-start; gap:9px; margin:0 0 10px; font-size:11px; font-weight:400; color:#617780; line-height:1.6; cursor:pointer; }
.kcsfe-consent input { margin-top:2px; }
.kcsfe-overlay .kcsfe-modal a { color:#087d73; text-decoration:underline; }
.kcsfe-overlay .kcsfe-submit { cursor:pointer; width:100%; height:48px; display:flex;align-items:center; justify-content:center; gap:12px; border:0 !important; border-radius:10px !important; background:var(--kcsfe-accent) !important; color:white !important; font-size:13px !important; font-weight:800 !important; line-height:1 !important; text-transform:none !important; letter-spacing:.1px !important; transition:transform .2s,filter .2s; }
.kcsfe-overlay .kcsfe-submit:hover { filter:brightness(.92); transform:translateY(-1px); }
.kcsfe-overlay .kcsfe-submit:disabled { opacity:.65; cursor:wait; transform:none; }
.kcsfe-form-bottom { text-align:center; font-size:10.5px; margin-top:11px; line-height:1.55; color:#71858a; }
.kcsfe-form-bottom a { white-space:nowrap; }
.kcsfe-status { padding:10px 12px; margin-bottom:12px; font-size:12px; line-height:1.5; border:1px solid #f0bbbb; background:#fff3f3; color:#903232; border-radius:9px; }
.kcsfe-hp { position:absolute !important; overflow:hidden !important; clip:rect(0,0,0,0) !important; clip-path:inset(50%) !important; width:1px !important; height:1px !important; white-space:nowrap !important; }
.kcsfe-success { text-align:center; flex:1 1 auto; min-height:0; overflow-y:auto; padding:52px 8px 25px; }
.kcsfe-success-icon { width:75px;height:75px; background:#ddf9e8; color:#167e4e; border-radius:50%; font-size:38px; display:flex;align-items:center;justify-content:center; margin:0 auto 20px; }
.kcsfe-success h3 { color:#153239; font-size:24px; font-weight:850; margin:0 0 10px; }
.kcsfe-success p { font-size:14px; line-height:1.75; color:#637980; max-width:360px; margin:0 auto 23px; }
.kcsfe-success-button { border:0 !important; border-radius:9px !important; color:white !important; background:var(--kcsfe-accent) !important; padding:12px 27px !important; font-size:13px !important; font-weight:750 !important; cursor:pointer; }
.kcsfe-floating-trigger { position:fixed !important; bottom:24px !important; right:24px !important; z-index:2147482000 !important; display:flex !important; align-items:center;justify-content:center;gap:9px; padding:15px 19px !important; color:#fff !important; background:var(--kcsfe-accent) !important; border:1px solid rgba(255,255,255,.3) !important; border-radius:100px !important; font:800 12px/1.1 Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif !important; letter-spacing:.65px !important; white-space:nowrap; box-shadow:0 8px 28px rgba(6,76,68,.25); cursor:pointer; text-transform:none !important; }
.kcsfe-floating-trigger:hover { filter:brightness(.94); transform:translateY(-2px); }
.kcsfe-floating-sparkle { font-size:17px; }
.kcsfe-overlay:not([hidden]) ~ .kcsfe-floating-trigger { visibility:hidden; }
.kcsfe-shortcode-trigger { background:var(--kcsfe-accent) !important; color:#fff !important; border:0 !important; border-radius:10px !important; padding:13px 21px !important; font-size:14px !important; font-weight:750 !important; cursor:pointer; }
@keyframes kcsfeFade { from { opacity:0; } to{opacity:1;} }
@keyframes kcsfePop { from { opacity:.6; transform:translateY(18px) scale(.985); } to { opacity:1; transform:translateY(0) scale(1); } }
@media (max-width: 760px) {
 .kcsfe-overlay { align-items:center; padding:8px; overflow:hidden; }
 .kcsfe-overlay .kcsfe-modal { width:min(100%,510px); height:calc(100dvh - 16px); max-height:780px; min-height:0; display:flex; flex-direction:column; border-radius:17px; overflow:hidden; margin:auto; }
 .kcsfe-hero { flex:0 0 auto; max-height:36dvh; padding:18px 19px 16px; border-radius:17px 17px 0 0; justify-content:flex-start; overflow-y:auto; }
 .kcsfe-form { flex:1 1 auto; min-height:0; }
 .kcsfe-form-actions { padding-top:9px; }
 .kcsfe-form .kcsfe-fields { padding-right:5px; }

 .kcsfe-brand { margin:0 45px 9px 0; font-size:9.5px; }
 .kcsfe-brand-mark { width:25px;height:25px;font-size:17px; }
 .kcsfe-hero #kcsfe-heading { font-size:27px; max-width:none; line-height:1.1; margin-bottom:5px; }
 .kcsfe-hero #kcsfe-description { font-size:12px; line-height:1.55; max-width:none; }
 .kcsfe-special { margin-top:10px; padding:10px 13px; border-radius:11px; }
 .kcsfe-special-title { font-size:19px; }
 .kcsfe-special-eyebrow { font-size:9px; margin-bottom:3px; }
 .kcsfe-special-subtitle { font-size:12px; }
 .kcsfe-special small { margin-top:5px; font-size:9px; }
 .kcsfe-form-side { flex:1 1 auto; min-height:0; padding:15px 17px 13px; overflow:hidden; border-radius:0 0 17px 17px; }
 .kcsfe-form-intro { margin-bottom:8px; }
 .kcsfe-form-intro strong { font-size:18px; }
 .kcsfe-fields { gap:10px; }
 .kcsfe-field { font-size:11px; }
 .kcsfe-field :is(input,select,textarea) { font-size:12px; height:41px; }
 .kcsfe-field textarea { height:auto; }
 .kcsfe-close { top:13px;right:13px;width:33px;height:33px;font-size:21px; }
 .kcsfe-floating-trigger { right:13px !important; bottom:14px !important; padding:13px 15px !important; font-size:11px !important; }
}
@media (max-width: 400px) { .kcsfe-overlay { padding:7px; } .kcsfe-hero { padding:20px 17px 16px; } .kcsfe-form-side { padding:17px 15px 20px; } .kcsfe-hero #kcsfe-heading { font-size:26px; } .kcsfe-extras-grid label { padding:7px; font-size:10px; } }
@media (prefers-reduced-motion: reduce) { .kcsfe-overlay,.kcsfe-overlay .kcsfe-modal {animation:none;} .kcsfe-submit,.kcsfe-floating-trigger { transition:none; } }

/* When the viewport is very short, preserve the action button and form controls. */
@media (max-height: 570px) and (max-width: 760px) {
 .kcsfe-hero { max-height:22dvh; padding:10px 15px; }
 .kcsfe-brand { margin-bottom:3px; }
 .kcsfe-hero #kcsfe-heading { font-size:21px; }
 .kcsfe-hero #kcsfe-description { display:none; }
 .kcsfe-form-side { padding-top:10px; }
 .kcsfe-form-intro { margin-bottom:5px; }
 .kcsfe-form-bottom { display:none; }
}
