*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: 'Barlow', system-ui, sans-serif; color: #1B1C1E; background: #FFFFFF; }
img, video { max-width: 100%; }
a { color: #24479B; }
a:hover { color: #16306B; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, summary:focus-visible {
  outline: 3px solid #24479B; outline-offset: 2px;
}
details > summary { list-style: none; }
details > summary::-webkit-details-marker { display: none; }
details > summary::after { content: "+"; float: right; font-size: 24px; line-height: 1; color: #24479B; }
details[open] > summary::after { content: "–"; }

/* Sticky call / quote bar on phones */
.mobile-bar { display: none; }
@media (max-width: 760px) {
  .mobile-bar {
    display: grid; grid-template-columns: 1fr 1fr; gap: 10px;
    position: fixed; left: 0; right: 0; bottom: 0; z-index: 50;
    background: #FFFFFF; border-top: 1px solid #D5D8DD; padding: 10px 14px 16px;
  }
  .mobile-bar a {
    min-height: 50px; border-radius: 4px; font-weight: 700; font-size: 17px; text-decoration: none;
    display: flex; align-items: center; justify-content: center; gap: 8px;
  }
  .mb-call { border: 2px solid #24479B; color: #24479B; }
  .mb-quote { background: #C8102E; color: #FFFFFF; }
  body { padding-bottom: 80px; }
}

/* Quote form (rendered from the Wix Forms schema by /js/quote-form.js) */
.qf { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px 20px; }
.qf-field { display: flex; flex-direction: column; gap: 6px; }
.qf-wide { grid-column: 1 / -1; }
.qf-label { font-weight: 600; font-size: 15px; }
.qf-req { color: #C8102E; }
.qf input:not([type=checkbox]):not([type=radio]):not([type=file]), .qf select, .qf textarea {
  font: inherit; font-size: 16px; padding: 12px; border: 1px solid #B9BEC6; border-radius: 4px; min-height: 44px; width: 100%; background: #FFFFFF; color: #1B1C1E;
}
.qf textarea { min-height: 120px; resize: vertical; }
.qf [aria-invalid="true"] { border-color: #C8102E !important; }
.qf-help { font-size: 14px; color: #4A4F57; margin: 0; }
.qf-error { font-size: 14px; color: #B00E27; margin: 0; min-height: 0; }
.qf-choice { display: flex; align-items: center; gap: 8px; min-height: 32px; }
.qf-actions { grid-column: 1 / -1; display: flex; flex-direction: column; gap: 10px; padding-top: 4px; }
.qf-submit {
  align-self: flex-start; font: inherit; font-weight: 700; font-size: 18px; background: #C8102E; color: #FFFFFF; border: none; border-radius: 4px;
  padding: 14px 28px; min-height: 48px; cursor: pointer;
}
.qf-submit[disabled] { opacity: 0.6; cursor: progress; }
.qf-thanks { display: flex; flex-direction: column; gap: 10px; }
.qf-thanks h3 { margin: 0; font-family: 'Barlow Condensed', sans-serif; font-weight: 800; font-size: 30px; text-transform: uppercase; }
.qf-thanks p { margin: 0; color: #3A3E45; }
