/* --- Header navigation recovery ------------------------------------------------
   The header nav-menu widget (elementor-element-7c7ddb6) ships with
   elementor-hidden-desktop / -tablet / -mobile, so on the live site the header
   shows only the logo and there is no navigation anywhere. Force the whole
   nav subtree visible at every width. The menu is short (Who We Are, Companies,
   Contact Us) so the horizontal list fits; the mobile hamburger — whose dropdown
   JS is not running on this static port — is left off.
   --------------------------------------------------------------------------- */
.elementor-location-header .elementor-element-7c7ddb6,
.elementor-location-header .elementor-element-7c7ddb6 .elementor-widget-container,
.elementor-location-header .elementor-element-7c7ddb6 nav.elementor-nav-menu--main {
  display: block !important;
}
.elementor-location-header .elementor-element-7c7ddb6 .elementor-nav-menu {
  display: flex !important;
  flex-wrap: wrap;
  gap: 6px 26px;
  align-items: center;
  justify-content: flex-end;
}
.elementor-location-header .elementor-element-7c7ddb6 .elementor-nav-menu > li {
  display: block !important;
}
.elementor-location-header .elementor-element-7c7ddb6 .elementor-menu-toggle,
.elementor-location-header .elementor-element-7c7ddb6 .elementor-nav-menu--dropdown {
  display: none !important;
}

/* --- Mobile/tablet header (<=1024px): hamburger + dropdown ------------------
   Below tablet width the inline nav stacked vertically beside the logo.
   Show the theme's own toggle instead and drive its dropdown with
   vgg-header.js (the original Elementor script does not run on this port). */
@media (max-width: 1024px) {
  .elementor-location-header .elementor-element-7c7ddb6 nav.elementor-nav-menu--main {
    display: none !important;
  }
  .elementor-location-header .elementor-element-7c7ddb6 .elementor-menu-toggle {
    display: flex !important;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin-left: auto;
    cursor: pointer;
    font-size: 26px;
    color: #0b1b26;
    background: transparent;
  }
  .elementor-location-header .elementor-menu-toggle .elementor-menu-toggle__icon--close { display: none; }
  .vgg-nav-open .elementor-menu-toggle .elementor-menu-toggle__icon--open { display: none; }
  .vgg-nav-open .elementor-menu-toggle .elementor-menu-toggle__icon--close { display: inline-block; }
  .elementor-location-header .e-con-inner { position: relative; align-items: center; }
  .elementor-location-header .elementor-element-7c7ddb6 { width: auto !important; }
  .vgg-nav-open .elementor-element-7c7ddb6 .elementor-nav-menu--dropdown {
    display: block !important;
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    z-index: 9999;
    background: #fff;
    border-top: 1px solid rgba(0,0,0,.08);
    box-shadow: 0 12px 24px rgba(0,0,0,.08);
    padding: 8px 20px 16px;
    max-height: none !important;
    transform: none !important;
  }
  .vgg-nav-open .elementor-nav-menu--dropdown .elementor-nav-menu { display: block !important; }
  .vgg-nav-open .elementor-nav-menu--dropdown li { display: block !important; }
  .vgg-nav-open .elementor-nav-menu--dropdown a {
    display: block !important;
    padding: 14px 4px !important;
    font-size: 17px;
    color: #0b1b26 !important;
    background: transparent !important;
    border-bottom: 1px solid rgba(0,0,0,.06);
  }
}

@media (max-width: 1024px) {
  /* keep the header (and its open menu) above the page content */
  .elementor-location-header { position: relative; z-index: 1000; }
  /* anchor the dropdown to the full-width header row, not the narrow nav column */
  .elementor-location-header .elementor-element-7c7ddb6,
  .elementor-location-header .elementor-element-7c7ddb6 .elementor-widget-container,
  .elementor-location-header .elementor-element-1fb869a { position: static !important; }
  .elementor-location-header .e-con-inner { padding-left: 16px !important; padding-right: 16px !important; }
  .vgg-nav-open .elementor-element-7c7ddb6 .elementor-nav-menu--dropdown { overflow: visible !important; }
}

/* Footer contact cards must contain long email addresses at every breakpoint. */
.elementor-119 .vgg-service-photo {
  width: 100%;
  height: 340px;
  object-fit: cover;
  border-radius: 16px;
}
.elementor-119 .elementor-element-ef33b23 img,
.elementor-119 .elementor-element-2ead03a img,
.elementor-119 .elementor-element-ae0c4d1 img {
  aspect-ratio: 417 / 448;
  width: 100%;
  object-fit: cover;
  object-position: center top;
}
@media (max-width: 767px) {
  .elementor-119 .vgg-service-photo { height: 260px; }
}
.elementor-location-footer .elementor-icon-list-item,
.elementor-location-footer .elementor-icon-list-text {
  min-width: 0;
}
.elementor-location-footer .elementor-icon-list-icon {
  flex-shrink: 0;
}
.elementor-location-footer .elementor-icon-list-text a {
  overflow-wrap: anywhere;
  white-space: normal;
}
.elementor-location-footer .elementor-element-1b8b330 .elementor-icon-list-item:last-child {
  display: flex;
}
.elementor-location-footer .elementor-element-1b8b330 .elementor-icon-list-item:last-child .elementor-icon-list-text {
  flex: 1;
  container-type: inline-size;
}
.elementor-location-footer .elementor-element-1b8b330 .elementor-icon-list-item:last-child a {
  display: inline-block;
  white-space: nowrap;
  overflow-wrap: normal;
  font-size: 13px !important;
  font-size: min(18px, 6.7cqi) !important;
}
@media (max-width: 1300px) {
  .elementor-location-footer .elementor-element-8690a64 > .e-con-inner {
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 32px;
    padding-left: 20px;
    padding-right: 20px;
  }
  .elementor-location-footer .elementor-element-8690a64 > .e-con-inner > .e-con {
    width: 100% !important;
  }
  .elementor-location-footer .elementor-element-840cc10 > .e-con-inner {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  .elementor-location-footer .elementor-element-840cc10 > .e-con-inner > .e-con {
    width: 100% !important;
    min-width: 0;
  }
}
@media (max-width: 767px) {
  .elementor-location-footer .elementor-element-8690a64 > .e-con-inner {
    padding-left: 0;
    padding-right: 0;
  }
  .elementor-location-footer .elementor-element-840cc10 > .e-con-inner {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}
.elementor-location-footer .elementor-social-icon {
  width: 44px !important;
  height: 44px !important;
  font-size: 21px !important;
  padding: 0 !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
}
.elementor-location-footer .elementor-social-icons-wrapper {
  --grid-column-gap: 10px;
}

/* The legacy fourth logo could not be recovered; do not leave an empty slot. */
.elementor-219 .elementor-element-49d0519 > .elementor-container {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 32px 40px;
  align-items: center;
}
.elementor-219 .elementor-element-49d0519 > .elementor-container > .elementor-column {
  width: 100% !important;
  min-width: 0;
}
.elementor-219 .elementor-element-49d0519 > .elementor-container > .elementor-column:has(.elementor-element-056ec9f) {
  display: none;
}
.elementor-219 .elementor-element-49d0519 img {
  width: 180px;
  max-width: 100%;
  height: 64px;
  object-fit: contain;
}
@media (max-width: 767px) {
  .elementor-219 .elementor-element-49d0519 > .elementor-container {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px 16px;
    padding: 0 16px;
  }
  .elementor-219 .elementor-element-49d0519 img { height: 48px; }
}

/* Map markers scale with the map, rather than obscuring its country flags. */
.elementor-element.animated {
  animation: none !important;
  opacity: 1 !important;
  transform: none !important;
}
.elementor-widget-hotspot {
  --hotspot-size: 24px !important;
}
.elementor-widget-hotspot .e-hotspot__button {
  width: var(--hotspot-size) !important;
  height: var(--hotspot-size) !important;
}
.elementor-widget-hotspot .e-hotspot__inner-circle {
  padding: 0 !important;
  width: 16px !important;
  height: 16px !important;
}
@media (max-width: 767px) {
  .elementor-252 .elementor-element-30dbd30 > .e-con-inner {
    padding: 48px 20px 28px !important;
  }
  .elementor-widget-hotspot { --hotspot-size: 14px !important; }
  .elementor-widget-hotspot .e-hotspot__inner-circle {
    width: 9px !important;
    height: 9px !important;
  }
  .elementor-widget-hotspot .e-hotspot__button::after {
    content: "";
    position: absolute;
    inset: -8px;
  }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .e-hotspot__outer-circle { animation: none !important; }
}

/* --- Stop sideways scrolling on phones -------------------------------------
   The "Our Footprint" map hotspot tooltips are wider than a phone screen,
   which let the whole page shift sideways. */
@media (max-width: 767px) {
  html, body { overflow-x: clip !important; }
  .e-hotspot__tooltip {
    width: auto !important;
    max-width: min(260px, calc(100vw - 48px)) !important;
    white-space: normal !important;
  }
}
