/* Contrast corrections verified against the 2026-09-30 live PageSpeed audit. */
html body #main .bvg-btn:not(.bvg-btn--ghost),
html body .bvg-header .bvg-nav-cta,
html body a.bvg-stickycall,
html body .bvg-stickycall span,
html body #main .bvg-chips a {
  color: #0b2432 !important;
}
html body #main .bvg-hero-cta .bvg-btn:not(.bvg-btn--ghost) {
  background: #ed833c !important;
}
html body #main .bvg-btn--ghost {
  background: #fff !important;
  color: #0b2432 !important;
}
html body #main .bvg-card-body a.bvg-more,
html body #main .bvg-awardline-in a {
  color: #a64f18 !important;
}
html body #main .bvg-sec--navy .bvg-figure figcaption {
  color: #d9e3eb !important;
}
html body #main .bvg-review-card .bvg-review-src {
  color: #52616e !important;
}
html body #main .bb-dir-maps .bvg-dir-card h3 {
  color: #0b2432 !important;
}
html body .fs-review-selection {
  margin: 12px auto 18px;
  max-width: 1120px;
  color: #374956;
  font-size: 14px;
  line-height: 1.6;
}
html body .fs-quote-tab {
  position: fixed;
  z-index: 900;
  right: 0;
  bottom: 40%;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: 14px 10px;
  writing-mode: vertical-rl;
  border: 1px solid #fff;
  border-radius: var(--r-sm,10px) 0 0 var(--r-sm,10px);
  background: #0b2432;
  color: #fff !important;
  box-shadow: 0 3px 12px #0b243233;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  text-decoration: none;
}
html body .fs-quote-tab:focus-visible {
  outline: 3px solid #ed833c;
  outline-offset: 3px;
}
body:has(dialog[open]) .fs-quote-tab { display: none !important; }
@media (max-width: 767px) {
  html body .bvg-header {
    position: static;
  }
  html body .fs-quote-tab {
    right: 12px;
    bottom: calc(72px + env(safe-area-inset-bottom, 0px));
    border-radius: var(--r-sm,10px);
    padding: 10px 14px;
    writing-mode: horizontal-tb;
  }
}

/* Mobile photo/copy rows: copy first, with desktop alternation unchanged. */
@media (max-width: 860px) {
  html body .bb-page .bb-row:has(> .bb-media) > .bb-card {
    order: 0;
    border-radius: var(--r-md,16px) var(--r-md,16px) 0 0;
  }
  html body .bb-page .bb-row > .bb-media {
    order: 1;
    border-radius: 0 0 var(--r-md,16px) var(--r-md,16px);
  }
  html body .bb-page .bb-row:has(> .bb-media) > .bb-card-plain {
    padding: 0 4px 22px;
  }
  html body .bb-page .bb-row:has(> .bb-card-plain) > .bb-media {
    border-radius: var(--r-md,16px);
  }
  /* Existing legacy photo splits already put copy first in the DOM. Keep
     that order, including any following CTA, when their columns collapse. */
  html body .bvg-body .bvg-split:has(> figure.bvg-figure, > div > figure.bvg-figure) > * {
    order: 0;
  }
}

/* Open disclosure and coverage-table geometry, audited 2026-09-30. */
/* Keep closed layout identical; open disclosures use the full row below its photo. */
@media (min-width: 861px) {
  html body .bb-page .bb-row:has(> .bb-card .bb-more[open]) {
    display: flow-root;
  }
  html body .bb-page .bb-row:has(> .bb-card .bb-more[open]) > .bb-media {
    float: left;
    width: calc((100% - 34px) * .46);
    height: clamp(440px, 42vw, 600px);
    margin: 0 34px 24px 0;
  }
  html body .bb-page .bb-row-rev:has(> .bb-card .bb-more[open]) > .bb-media {
    float: right;
    margin: 0 0 24px 34px;
  }
  html body .bb-page .bb-row > .bb-card .bb-more[open] {
    clear: both;
  }
}
/* Allow ordinary whole-word wrapping in coverage tables. */
@media (max-width: 600px) {
  html body main table.bvg-cover-table { table-layout: auto !important; }
  html body main table.bvg-cover-table th,
  html body main table.bvg-cover-table td {
    overflow-wrap: normal;
    word-break: normal;
    padding-left: 6px !important;
    padding-right: 6px !important;
  }
  html body main table.bvg-cover-table tbody th { min-width: 8.5em; }
}

/* A flex card isolates its children from the adjacent photo float.
   Only an expanded disclosure needs normal block flow and clearing. */
@media (min-width: 861px) {
  html body .bb-page .bb-row > .bb-card-dark:has(.bb-more[open]) {
    display: block;
  }
  html body .bb-page .bb-row > .bb-card-dark:has(.bb-more[open]) > p {
    max-width: none;
  }
}

/* Keep full coverage-table columns visible without breaking words. */
@media (max-width: 600px) {
  html body main table.bvg-cover-table th,
  html body main table.bvg-cover-table td {
    padding-left: 2px !important;
    padding-right: 2px !important;
  }
  html body main table.bvg-cover-table tbody th { min-width: 0; }
  /* Use the existing town-panel inset for this table only. */
  html body .bb-town-panel table.bvg-cover-table {
    width: calc(100% + 34px);
    max-width: none;
    margin-left: -17px;
    margin-right: -17px;
  }
}
@media (max-width: 360px) {
  html body .bb-town-panel table.bvg-cover-table th,
  html body .bb-town-panel table.bvg-cover-table td {
    font-size: .75rem !important;
    line-height: 1.5;
  }
}
