/* Site-wide fixes from the 2026-10-28 website audit (vault: resco/website-audit-2026-10-28).
   Loaded last on every page so it overrides the mirrored WordPress theme CSS. */

/* Readable text: theme dropped the root size to 14px on phones */
@media (max-width: 767px) {
  html { font-size: 16px; }
}

/* Contrast (WCAG AA 4.5:1): theme gray #8E9DAE and link blue #03A9F4 fail on white */
body, .footer, .footer .fa, .copyright { color: #5d6b7c; }
a, a.color1:not(.button), .read-more, .card .link { color: #0277bd; }
blockquote, blockquote p, blockquote strong { color: #5d6b7c; }
.white-text a:not(.button) { color: #fff; }
figcaption, .wp-element-caption { opacity: 1 !important; }
.footer .copyright, .page-content p, figcaption, .wp-element-caption, .tags-list a, .post-tags a { color: #5d6b7c !important; }
.page-content .white-text .section-title-col p { color: #fff !important; }
.wpcf7-submit, .page-content form button[type="submit"] { background-color: #0277bd !important; color: #fff !important; }

/* Visible keyboard focus */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible,
select:focus-visible, [tabindex]:focus-visible {
  outline: 3px solid #0277bd !important;
  outline-offset: 2px;
}

/* Phone + email in the header bar, tappable; on phones show only those two */
.header-top-bar .top-bar-field a { color: inherit; text-decoration: none; }
@media (max-width: 767px) {
  .header-top-bar { display: block; height: auto; min-height: 0; }
  .header-top-bar .header-top-bar-inner { justify-content: center; min-height: 0; }
  .header-top-bar .area-left { display: flex; flex-wrap: nowrap; justify-content: center; gap: 0 1rem; height: auto; padding: 0 8px; }
  .header-top-bar .area-left::before, .header-top-bar .area-left::after { content: none; }
  .header-top-bar .top-bar-field { display: flex; align-items: center; gap: 6px; height: auto;
    line-height: 1.2; margin: 0; padding: 0; font-size: 14px; }
  .header-top-bar .top-bar-field i { margin: 0; line-height: 1; }
  .header-top-bar .top-bar-field.top-bar-address,
  .header-top-bar .area-right { display: none; }
  .header-top-bar .top-bar-field a { display: inline-block; padding: 10px 0; }
}

/* Wide data tables scroll inside their own box instead of the page */
.table-scroll { overflow-x: auto; max-width: 100%; }
.table-scroll > table { min-width: 100%; }
@media (max-width: 379px) {
  .header-top-bar .area-left { gap: 0 .75rem; padding: 0 4px; }
  .header-top-bar .top-bar-field { font-size: 13px; }
}

/* Gallery lightbox: captions are only the photo file names */
#envirabox-title { display: none !important; }
