/* Site refinements: retain all footer content and existing menu destinations. */
body footer { padding: 3.5rem 0 1.5rem; }
footer .footer-grid {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.35fr) minmax(0, 1fr);
  grid-template-areas: "brand questions links" "contact questions links";
  gap: 1.75rem 3rem;
  text-align: left !important;
}
footer .footer-grid > .col { width: auto; padding: 0; min-width: 0; }
footer .footer__logo { grid-area: brand; }
footer .footer__contact { grid-area: contact; }
footer .footer__socials { grid-area: questions; }
footer .footer__franchise { grid-area: links; }
footer .footer__logo img { display: block; max-width: 100%; height: auto; margin: 0 !important; }
footer .logo_container { margin: 0 !important; }
footer h5 { font-size: 1.125rem; line-height: 1.4; margin-bottom: 1rem; }
footer p, footer li { font-size: .95rem; line-height: 1.75; }
footer .contact__info a { overflow-wrap: anywhere; }
footer .contact__desc p { margin-bottom: .75rem; }
footer ul.socials__info { display: flex; flex-wrap: wrap; gap: .65rem; margin: 0; }
footer ul.socials__info li.social__info { margin: 0; }
footer .socials__info a { display: inline-flex; align-items: center; justify-content: center; width: 42px; height: 42px; border: 1px solid #ffffff40; border-radius: 50%; }
footer .socials__info a:hover, footer .socials__info a:focus-visible { background: #ffffff18; border-color: #ffb400; }
footer .information__title { margin-top: 1.75rem !important; }
footer .information__menu li + li { margin-top: .3rem; }
footer hr { margin: 2.5rem 0 1.25rem; opacity: .2; }
footer .footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding-right: 72px; }
footer .copyright__row { margin: 0; }
footer .copyright__row > .col-auto { padding: 0; }
footer .copyright__row p { margin: 0; }
footer .madebypo { margin-left: 0; }
footer .po-tm { display: block; height: auto; }
footer .arrow-up a { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border: 1px solid #ffffff40; border-radius: 50%; }
footer a:focus-visible { outline: 2px solid #ffb400; outline-offset: 4px; }
/* A leaf link has no submenu. Keep the normal toggle on actual parent links. */
.dropdown-menu .dropdown-item:not(.dropdown-toggle):hover::after { content: none; }
/* Obsolete Social Chat instruction, not the chat launcher or contacts. */
.qlwapp > .qlwapp-footer { display: none !important; }
/* Existing Pro style selections use the matching Free solid glyph. */
.fa-duotone, .fad, .fa-light, .fal, .fa-thin, .fat, .fa-sharp:not(.fa-brands) {
  font-family: "Font Awesome 6 Free" !important;
  font-style: normal;
  font-weight: 900 !important;
}
.fa-duotone::before, .fad::before { position: static; opacity: 1; }
.fa-duotone::after, .fad::after { display: none !important; content: none !important; }
@media (max-width: 991.98px) {
  footer .footer-grid { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "brand links" "contact links" "questions questions"; gap: 1.5rem 2rem; }
}
@media (max-width: 575.98px) {
  body footer { padding-top: 2.5rem; }
  footer > .container { padding-inline: 24px; }
  footer .footer-grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "brand" "contact" "questions" "links"; margin: 0; gap: 1.75rem; }
  footer .footer__logo img { max-width: 210px; }
  footer .footer__socials, footer .footer__franchise { border-top: 1px solid #ffffff26; padding-top: 1.5rem !important; }
}

/* Legacy Pro style choices need the Free glyph content as well as its font. */
.fa-duotone, .fad, .fa-light, .fal, .fa-thin, .fat, .fa-sharp:not(.fa-brands) {
  display: inline-block;
  font-variant: normal;
  line-height: 1;
  text-rendering: auto;
  -webkit-font-smoothing: antialiased;
}
.fa-duotone::before, .fad::before, .fa-light::before, .fal::before,
.fa-thin::before, .fat::before, .fa-sharp:not(.fa-brands)::before { content: var(--fa); }
/* Free icons have one colour; use the site's blue and yellow explicitly. */
.usp i { color: #12204d; }
i[style*="--fa-primary-color"] { color: var(--fa-primary-color); }
.text-highlight .service_icon i, .service-wait .service_icon i { color: #ffb400; }
.locations-overview-map { max-width: 463px; margin-inline: auto; }
.locations-overview-map .map-container { width: 100%; }
.locations-overview-map .map-container > #map { width: 100%; }

/* Shared location labels: mouse hover and keyboard focus, without moving pins. */
.map-container .marker[aria-label]::after {
  content: attr(aria-label);
  position: absolute;
  bottom: calc(100% + 8px);
  left: 50%;
  transform: translateX(-50%);
  padding: 6px 10px;
  border-radius: 5px;
  background: #12204d;
  color: #fff;
  font: 600 14px/1.3 Arial, sans-serif;
  white-space: nowrap;
  box-shadow: 0 2px 7px #0003;
  pointer-events: none;
  visibility: hidden;
  opacity: 0;
}
.map-container .marker[aria-label]:hover,
.map-container .marker[aria-label]:focus-visible { z-index: 20; animation: none; }
.map-container .marker[aria-label]:hover::after,
.map-container .marker[aria-label]:focus-visible::after { visibility: visible; opacity: 1; }
.map-container .marker[aria-label]:focus-visible { outline: 2px solid #ffb400; outline-offset: 3px; }
