/* MasterSlate floating contact widgets (phone + quick quote), replaces .ms-float. Prefixed mcw-. */
.ms-float { display: none !important; }
/* Bottom-right stack: three equal 52px square buttons, 10px apart. Chat at 24px, phone above it, calculator on top (read by calc-widget.css). */
:root { --ms-fab: 52px; --ms-fab-sm: 48px; --ms-stack-right: 24px; --ms-stack-calc: 148px; --ms-stack-right-sm: 14px; --ms-stack-calc-sm: 126px; }

.mcw-root {
  --mcw-red: #E90117; --mcw-red-ink: #C10013; --mcw-red-deep: #8F000E;
  --mcw-black: #111111; --mcw-g700: #4A4A4A; --mcw-g500: #7A7A7A; --mcw-g300: #C9C9C9; --mcw-g200: #E4E4E4; --mcw-g100: #F2F2F2;
  --mcw-r: 4px; --mcw-ease: cubic-bezier(.22,.8,.24,1);
  --mcw-shadow-hi: 0 2px 4px rgba(0,0,0,.08), 0 16px 40px rgba(0,0,0,.18);
}
.mcw-root, .mcw-root *:not(svg):not(svg *):not(i), .mcw-root *::before, .mcw-root *::after { all: revert; box-sizing: border-box; }
.mcw-root { position: static; font: 400 15px/1.55 'Open Sans', Arial, sans-serif; color: var(--mcw-g700); -webkit-font-smoothing: antialiased; text-align: left; letter-spacing: normal; text-transform: none; }
.mcw-root svg { width: 1em; height: 1em; flex-shrink: 0; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.mcw-root [hidden] { display: none !important; }

/* Phone button: square, expands to the left to show the number */
.mcw-root .mcw-phone { position: fixed; right: 24px; bottom: 86px; z-index: 9000; display: flex; flex-direction: row-reverse; align-items: center; width: var(--ms-fab); height: var(--ms-fab); border-radius: var(--mcw-r); background: var(--mcw-black); color: #fff; text-decoration: none; overflow: hidden; box-shadow: var(--mcw-shadow-hi); transition: width .35s var(--mcw-ease), background .2s; }
.mcw-root .mcw-phone-ico { flex-shrink: 0; width: var(--ms-fab); height: var(--ms-fab); display: grid; place-items: center; }
.mcw-root .mcw-phone-ico i, .mcw-root .mcw-fab i { font-size: 24px; line-height: 1; }
.mcw-root .mcw-phone-txt { padding-left: 18px; white-space: nowrap; font: 700 15px/1 'Montserrat', Arial, sans-serif; color: #fff; opacity: 0; transition: opacity .2s; }
.mcw-root .mcw-phone:hover, .mcw-root .mcw-phone:focus-visible { width: 226px; background: var(--mcw-red); }
.mcw-root .mcw-phone:hover .mcw-phone-txt, .mcw-root .mcw-phone:focus-visible .mcw-phone-txt { opacity: 1; transition-delay: .12s; }
.mcw-root .mcw-phone:focus-visible { outline: 3px solid var(--mcw-red); outline-offset: 3px; }

/* Quick-quote button: square red button that opens the quick-quote window */
.mcw-root .mcw-fab { position: fixed; right: 24px; bottom: 24px; z-index: 9001; width: var(--ms-fab); height: var(--ms-fab); display: grid; place-items: center; padding: 0; margin: 0; border: 0; border-radius: var(--mcw-r); background: var(--mcw-red); color: #fff; font-size: 24px; cursor: pointer; box-shadow: var(--mcw-shadow-hi); transition: background .2s, transform .2s var(--mcw-ease); }
.mcw-root .mcw-fab:hover { background: var(--mcw-red-deep); transform: translateY(-2px); }
.mcw-root .mcw-fab:focus-visible { outline: 3px solid var(--mcw-black); outline-offset: 3px; }
.mcw-root .mcw-fab .mcw-ico-x { display: none; }
.mcw-root.mcw-open .mcw-fab { background: var(--mcw-black); }
.mcw-root.mcw-open .mcw-fab .mcw-ico-chat { display: none; }
.mcw-root.mcw-open .mcw-fab .mcw-ico-x { display: block; }

.mcw-root .mcw-win { position: fixed; right: calc(24px + var(--ms-fab) + 12px); bottom: 24px; z-index: 9002; width: 380px; max-width: calc(100vw - 32px); max-height: calc(100vh - 48px); display: flex; flex-direction: column; background: #fff; border: 1px solid var(--mcw-g200); border-radius: var(--mcw-r); box-shadow: 0 0 0 2px #fff, 0 0 0 3px var(--mcw-black), var(--mcw-shadow-hi); overflow: hidden; opacity: 0; transform: translateY(14px) scale(.98); transform-origin: bottom right; pointer-events: none; transition: opacity .25s var(--mcw-ease), transform .25s var(--mcw-ease); }
.mcw-root.mcw-open .mcw-win { opacity: 1; transform: none; pointer-events: auto; }
.mcw-root .mcw-head { flex-shrink: 0; padding: 18px 20px 16px; background: var(--mcw-black); color: #fff; border-bottom: 3px solid var(--mcw-red); }
.mcw-root .mcw-title { margin: 0 0 4px; font: 700 19px/1.25 'Montserrat', Arial, sans-serif; letter-spacing: -.01em; color: #fff; }
.mcw-root .mcw-sub { margin: 0; font-size: 13.5px; line-height: 1.5; color: rgba(255,255,255,.82); }
.mcw-root .mcw-sub a { color: #fff; font-weight: 700; text-decoration: underline; text-underline-offset: 2px; }
.mcw-root .mcw-body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 18px 20px 20px; display: flex; flex-direction: column; gap: 14px; margin: 0; }
.mcw-root .mcw-field { display: block; margin: 0; }
.mcw-root .mcw-label { display: block; margin: 0 0 6px; font: 700 13px/1.3 'Montserrat', Arial, sans-serif; color: var(--mcw-black); }
.mcw-root .mcw-opt { font: italic 400 12px 'Open Sans', Arial, sans-serif; color: var(--mcw-g500); }
.mcw-root .mcw-input { display: block; width: 100%; min-height: 44px; margin: 0; padding: 10px 12px; border: 1px solid var(--mcw-g200); border-radius: var(--mcw-r); background: var(--mcw-g100); color: var(--mcw-black); font: 400 15px/1.4 'Open Sans', Arial, sans-serif; }
.mcw-root textarea.mcw-input { min-height: 110px; resize: vertical; }
.mcw-root .mcw-input:focus { outline: none; border-color: var(--mcw-black); background: #fff; }
.mcw-root .mcw-input[aria-invalid="true"] { border-color: var(--mcw-red); }
.mcw-root .mcw-err { margin: 0; padding: 8px 10px; border-left: 3px solid var(--mcw-red); border-radius: var(--mcw-r); background: var(--mcw-g100); color: var(--mcw-black); font-size: 13px; font-weight: 600; }
.mcw-root .mcw-submit { display: flex; align-items: center; justify-content: center; gap: 8px; width: 100%; min-height: 48px; margin: 0; padding: 0 16px; border: 0; border-radius: var(--mcw-r); background: var(--mcw-red); color: #fff; font: 700 14.5px/1 'Montserrat', Arial, sans-serif; cursor: pointer; }
.mcw-root .mcw-submit:hover { background: var(--mcw-red-deep); }
.mcw-root .mcw-submit:focus-visible { outline: 3px solid var(--mcw-black); outline-offset: 2px; }
.mcw-root .mcw-note { margin: 0; font-size: 12px; line-height: 1.5; color: var(--mcw-g500); }

@media (max-width: 600px) {
  .mcw-root .mcw-fab { right: 14px; bottom: 14px; width: var(--ms-fab-sm); height: var(--ms-fab-sm); }
  .mcw-root .mcw-phone { right: 14px; bottom: 70px; width: var(--ms-fab-sm); height: var(--ms-fab-sm); }
  .mcw-root .mcw-phone-ico { width: var(--ms-fab-sm); height: var(--ms-fab-sm); }
  .mcw-root .mcw-win { right: 8px; left: 8px; bottom: 72px; width: auto; max-width: none; max-height: calc(100vh - 96px); }
}
@media (prefers-reduced-motion: reduce) {
  .mcw-root .mcw-phone, .mcw-root .mcw-phone-txt, .mcw-root .mcw-fab, .mcw-root .mcw-win { transition: none !important; }
  .mcw-root .mcw-fab:hover { transform: none; }
}

/* The visible quick form uses the same required notice acknowledgement as other lead forms. */
.mcw-root .mcw-consent { display: flex; align-items: flex-start; gap: 9px; font-size: 12px; line-height: 1.5; }
.mcw-root .mcw-consent input { flex: 0 0 auto; width: 17px; height: 17px; margin: 2px 0 0; accent-color: var(--mcw-red); }
.mcw-root .mcw-consent a { color: var(--mcw-red-ink); text-decoration: underline; }
.mcw-root .mcw-submit:disabled { opacity: .65; cursor: wait; }
