/* Only explicit user customizations and local functionality. Reference CSS is vendored unchanged apart from asset URLs. */
[hidden] { display: none !important; }
.reference-copy { padding-bottom: 0; }
a[href^="tel:"] .fa-phone { transform: scaleX(-1); }
.headerCall { background: #1c7bc8; }
.hero h1, .subHero h1 { overflow-wrap: anywhere; }
.form-result { margin-top: 16px; font-size: 14px; line-height: 1.5; }
.contact-form button:disabled { cursor: wait; opacity: .7; }
.skip-link { position: fixed; top: -100px; left: 16px; z-index: 200; background: white; color: #253041; padding: 12px; }
.skip-link:focus { top: 10px; }
#page-content { display: block; height: 0; }
.locationGroup a { overflow-wrap: anywhere; }
.serviceTown .subHero h1 { font-size: clamp(2rem, 4.5vw, 4.5rem); }
@media (prefers-reduced-motion: reduce) {
  .locationTabList button { transition: none; }
}
.notFoundContent { overflow-wrap: anywhere; }
.referenceSitemap { overflow-wrap: anywhere; }
.referenceSitemap ul { columns: 3 260px; column-gap: 40px; }
.referenceSitemap li { break-inside: avoid; margin-bottom: 12px; }
.referenceSitemap a { text-decoration: underline; text-underline-offset: 3px; }

/* Mobile contact bar requested by the user; retain room for the footer and device safe area. */
@media (max-width: 620px) {
  .grecaptcha-badge { bottom: calc(88px + env(safe-area-inset-bottom, 0px)) !important; }
  .reference-copy { padding-bottom: calc(76px + env(safe-area-inset-bottom, 0px)); }
  .mobileBar { height: calc(76px + env(safe-area-inset-bottom, 0px)); padding-bottom: calc(10px + env(safe-area-inset-bottom, 0px)); }
  .mobileBar > .mobileCall { background: #1c7bc8; }
  .mobileBar > .mobileWhatsapp { background: #20b85a; }
  .cookieSettingsButton { bottom: calc(88px + env(safe-area-inset-bottom, 0px)); }
}

/* Tablet footer: company, services, and combined contact/legal columns. */
.footerContactLegal { display: contents; }
.footerColumn .footerEmailAddress, .subFooter .footerEmailAddress { font: inherit; color: inherit; min-width: 0; }
.footerColumn > strong .tabletLegalLabel { display: none; }
@media (min-width: 621px) and (max-width: 1199px) {
  .footerMain, .subFooter {
    grid-template-columns: minmax(0, 1.7fr) minmax(0, 1fr) minmax(0, 1fr);
    column-gap: clamp(20px, 5.4vw, 64px);
    align-items: center;
    padding: 54px clamp(24px, 5.4vw, 64px);
  }
  .footerMain > *, .subFooter > div { min-width: 0; grid-column: auto; }
  .footerAbout { max-width: none; }
  .footerMain .footerBrand { justify-content: flex-start; }
  .footerContactLegal { display: flex; flex-direction: column; gap: 16px; }
  .footerContactLegal .footerColumn { grid-column: auto; }
  .footerLegal > strong { display: none; }
  .footerColumn > strong .tabletLegalLabel { display: inline; font: inherit; color: inherit; }
  .footerContact > a[href^="mailto:"] { order: 1; }
  .footerContact > a[href^="tel:"] { order: 2; }
  .footerAbout p, .subFooter p, .footerColumn a, .subFooter a {
    font-size: clamp(14px, 1.61vw, 17px);
    overflow-wrap: anywhere;
  }
  .footerColumn > strong, .subFooter strong { font-size: clamp(12px, 1.42vw, 15px); }
  .footerColumn a, .subFooter a { line-height: 1.45; }
  .footerAbout p, .subFooter p { line-height: 1.65; }
  .footerAbout img, .subFooter img { width: 220px; max-width: 100%; }
  .footerColumn a[href^="mailto:"], .footerColumn a[href^="tel:"],
  .subFooter a[href^="mailto:"], .subFooter a[href^="tel:"] { display: flex; align-items: baseline; gap: 8px; }
  .footerColumn a i, .subFooter a i { flex: 0 0 19px; margin-right: 0; }
}
