/* CST contact lightbox - self-contained. Drop onto any page with cst-contact-lightbox.js.
   Colors/fields follow the rebuilt CST header (#2D2D2D / #B4C0CB) and cst-quote-forms.css. */
html.cstlb-lock,html.cstlb-lock body{overflow:hidden!important}
.cstlb-overlay{position:fixed;inset:0;z-index:2147483000;display:none;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.62);-webkit-overflow-scrolling:touch}
.cstlb-overlay.is-open{display:flex}
.cstlb-dialog{position:relative;box-sizing:border-box;width:100%;max-width:560px;max-height:calc(100vh - 32px);max-height:calc(100dvh - 32px);overflow:auto;background:#FFFFFF;color:#000000;border-radius:8px;box-shadow:0 12px 40px rgba(0,0,0,.45);font-family:Arial,Helvetica,sans-serif;font-size:14px;line-height:1.4;text-align:left}
.cstlb-dialog:focus{outline:0}
.cstlb-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;gap:12px;padding:14px 56px 14px 18px;background:#2D2D2D;border-radius:8px 8px 0 0}
.cstlb-title{margin:0;font:italic bold 20px/1.2 Arial,Helvetica,sans-serif;color:#B4C0CB}
.cstlb-sub{margin:2px 0 0;font:13px/1.3 Arial,Helvetica,sans-serif;color:#F5F5F5}
.cstlb-close{position:absolute;top:8px;right:8px;width:40px;height:40px;padding:0;border:1px solid transparent;border-radius:50%;background:transparent;color:#F5F5F5;font:28px/1 Arial,Helvetica,sans-serif;cursor:pointer}
.cstlb-close:hover{background:#4F4F4F}
.cstlb-close:focus-visible{outline:3px solid #66AFE9;outline-offset:1px}
.cstlb-body{padding:16px 18px 18px}
.cstlb-intro{margin:0 0 12px;color:#4F4F4F}
.cstlb-form .cstlb-row{margin:0 0 12px}
.cstlb-form .cstlb-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.cstlb-form label{display:block;margin:0 0 4px;font:bold 13px Arial,Helvetica,sans-serif;color:#000080}
.cstlb-form .cstlb-opt{font-weight:normal;color:#4F4F4F}
.cstlb-form .cstlb-req{color:#FF0000}
.cstlb-form input[type="text"],.cstlb-form input[type="email"],.cstlb-form input[type="tel"],.cstlb-form textarea{display:block;box-sizing:border-box;width:100%;min-height:40px;margin:0;padding:8px 10px;border:1px solid #6A5ACD;border-radius:4px;background:#FFFFFF;color:#000000;font:16px/1.3 Arial,Helvetica,sans-serif}
.cstlb-form textarea{min-height:130px;resize:vertical}
.cstlb-form input:focus,.cstlb-form textarea:focus{border-color:#66AFE9;outline:0;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}
.cstlb-form [aria-invalid="true"]{border-color:#FF0000}
.cstlb-err{display:block;min-height:0;margin:4px 0 0;font-size:12px;color:#C00000}
.cstlb-err:empty{display:none}
.cstlb-hp{position:absolute!important;left:-10000px!important;width:1px;height:1px;overflow:hidden}
.cstlb-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-top:4px}
.cstlb-submit{padding:10px 36px;border:1px solid #2E6DA4;border-radius:4px;background:#3370B7;color:#FFFFFF;font:15px Arial,Helvetica,sans-serif;cursor:pointer}
.cstlb-submit:hover{background:#286090}
.cstlb-submit:focus-visible,.cstlb-done button:focus-visible{outline:3px solid #66AFE9;outline-offset:2px}
.cstlb-submit[disabled]{opacity:.65;cursor:wait}
.cstlb-cancel{padding:9px 16px;border:1px solid #808080;border-radius:4px;background:#F5F5F5;color:#2D2D2D;font:14px Arial,Helvetica,sans-serif;cursor:pointer}
.cstlb-status{margin:12px 0 0;padding:10px 12px;border-radius:4px;font-size:13px}
.cstlb-status:empty{display:none}
.cstlb-status.is-error{background:#FDECEC;border:1px solid #F5C2C2;color:#842029}
.cstlb-status.is-info{background:#fff3cd;border:1px solid #ffecb5;color:#664d03}
.cstlb-legal{margin:12px 0 0;font-size:11px;color:#808080}
.cstlb-legal a{color:#3370B7}
.cstlb-phone{margin:10px 0 0;font-size:12px;color:#4F4F4F}
.cstlb-done{text-align:center;padding:10px 4px 6px}
.cstlb-done .cstlb-check{display:inline-flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:50%;background:#3370B7;color:#FFFFFF;font:bold 30px/1 Arial,Helvetica,sans-serif}
.cstlb-done h3{margin:12px 0 6px;font:italic bold 19px Arial,Helvetica,sans-serif;color:#4F4F4F}
.cstlb-done p{margin:0 0 14px;color:#000000}
.cstlb-done button{padding:10px 30px;border:1px solid #2E6DA4;border-radius:4px;background:#3370B7;color:#FFFFFF;font:15px Arial,Helvetica,sans-serif;cursor:pointer}
.cstlb-sandbox{margin:0 0 12px;padding:8px 10px;border:1px dashed #FFD700;background:#FFFBE6;color:#664d03;font-size:12px;border-radius:4px}
html.cstlb-lock .grecaptcha-badge{z-index:2147483001!important}
@media (max-width:540px){html.cstlb-lock .grecaptcha-badge{visibility:hidden!important}} /* Google allows hiding the badge when the reCAPTCHA notice text is shown, which the form does */
@media (max-width:540px){
 .cstlb-overlay{padding:0;align-items:stretch}
 .cstlb-dialog{max-width:none;max-height:none;height:100%;border-radius:0}
 .cstlb-head{border-radius:0}
 .cstlb-form .cstlb-two{grid-template-columns:1fr}
 .cstlb-submit{flex:1 1 100%}
 .cstlb-cancel{flex:1 1 100%}
}
@media (prefers-reduced-motion:no-preference){.cstlb-overlay.is-open .cstlb-dialog{animation:cstlb-in .16s ease-out}@keyframes cstlb-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}}
/* Opener links: look like the page's existing links. Buttons reset for inline use. */
button.cstlb-open{padding:0;border:0;background:none;font:inherit;color:inherit;text-decoration:underline;cursor:pointer}
