/* Restore the layout rules missing from Elementor's optimized frontend CSS.
   The footer SVG's intrinsic 500px width must not become a flex item. */
.elementor .elementor-shape {
  position: absolute;
  inset-inline: 0;
  width: 100%;
  overflow: hidden;
  line-height: 0;
  pointer-events: none;
}
.elementor .elementor-shape-top { top: -1px; }
.elementor .elementor-shape-bottom { bottom: -1px; transform: rotate(180deg); }
.elementor .elementor-shape svg {
  display: block;
  width: 100%;
  max-width: 100%;
  position: relative;
}
.elementor .elementor-shape-fill { fill: #fff; }
#elementor-device-mode { display: none; }

/* Keep embedded videos and long contact details inside narrow columns. */
.elementor iframe { max-width: 100%; }
.elementor-widget-html { overflow-wrap: anywhere; }
.elementor-27 .elementor-element.elementor-element-9e53045 {
  max-width: calc(100% - 10px);
}
/* Replace the gallery's negative outer margin with an actual grid gap. */
.elementor .elementor-image-gallery .gallery {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 21px;
  margin: 0 !important;
}
.elementor .elementor-image-gallery .gallery .gallery-item {
  width: auto;
  max-width: none;
  padding: 0;
  margin: 0;
}
@media (max-width: 1200px) and (min-width: 601px) {
  .elementor .elementor-image-gallery .gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .elementor .elementor-image-gallery .gallery { grid-template-columns: minmax(0, 1fr); }
  .elementor-location-header .elementor-widget-html nav {
    flex-wrap: wrap;
  }
}
