/**
 * Manneva clean-preview layout guard.
 *
 * This stylesheet intentionally targets stable Elementor element IDs from the
 * sanitized Manneva templates. It keeps fixes outside Rodio/Elementor vendor
 * code so theme and plugin updates do not overwrite them.
 */

:root {
  --manneva-content-width: 1140px;
  --manneva-gutter: clamp(24px, 4vw, 48px);
  --manneva-touch-target: 44px;
}

html,
body,
.os-host,
.os-padding,
.os-viewport,
.os-content,
.main-wrapper {
  max-width: 100%;
}

html,
body,
.os-viewport {
  overflow-x: hidden !important;
}

/* Rodio's circular loader remains in the scroll layer and can cover content. */
.preloader {
  display: none !important;
}

/* Off-screen slides must not expand the document beyond the viewport. */
.swiper,
.swiper-container,
[class*="swiper-container"] {
  max-width: 100%;
  overflow: hidden !important;
}

.swiper-container {
  position: relative;
  z-index: 1;
  margin-inline: auto;
  padding: 0;
  list-style: none;
}

/* Clip intentionally oversized decorative bleeds at their section edge. */
.elementor-element-5cff85c,
.elementor-element-31093bc {
  overflow: hidden !important;
}

/* Replace the imported 550px/-347px Services overlap with normal flow. */
.elementor-element-5fb6baf {
  margin: 96px 0 0 !important;
  padding: 0 24px 96px !important;
}

.elementor-element-5fb6baf .elementor-element-6be5c63 {
  margin: 0 !important;
}

/* Desktop header: one rail, contained logo, and a professional 96px height. */
.elementor-element-4240d6c.sticky-nav {
  min-height: 92px;
  padding: 0 var(--manneva-gutter) !important;
}

.elementor-element-4240d6c.sticky-nav > .elementor-container {
  width: 100%;
  max-width: var(--manneva-content-width) !important;
  margin-inline: auto !important;
  align-items: center;
}

.elementor-element-a699510 img {
  display: block;
  width: 84px !important;
  height: 84px !important;
  object-fit: contain;
}

.elementor-element-4240d6c.sticky-nav.scrolled {
  min-height: 70px;
}

.elementor-element-4240d6c.sticky-nav.scrolled .elementor-element-a699510 img {
  width: 62px !important;
  height: 62px !important;
}

/* Current Elementor emits SVG close icons; Rodio's original CSS sized only <i>. */
.elementor-4811 .elementor-element.elementor-element-f78ef7d,
.elementor-4811 .elementor-element.elementor-element-f78ef7d .elementor-widget-container {
  width: var(--manneva-touch-target) !important;
  max-width: var(--manneva-touch-target) !important;
  height: var(--manneva-touch-target) !important;
  flex: 0 0 var(--manneva-touch-target) !important;
}

.elementor-4811 .elementor-element.elementor-element-f78ef7d .hamburger-close {
  display: flex !important;
  width: var(--manneva-touch-target) !important;
  height: var(--manneva-touch-target) !important;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.elementor-4811 .elementor-element.elementor-element-f78ef7d .hamburger-close svg,
.elementor-4811 .elementor-element.elementor-element-f78ef7d .hamburger-close svg.icon,
.elementor-4811 .elementor-element.elementor-element-f78ef7d svg.e-fas-times,
.elementor-4811 .elementor-element.elementor-element-f78ef7d svg.e-font-icon-svg {
  display: block !important;
  width: 22px !important;
  height: 22px !important;
  max-width: 22px !important;
  max-height: 22px !important;
  flex: 0 0 22px !important;
}

/* Footer contact list: Elementor 4 otherwise stretches these SVGs to 240-440px. */
.elementor-element-704926d .elementor-icon-list-items {
  display: grid;
  gap: 14px;
  margin: 0;
  padding: 0;
}

.elementor-element-704926d .elementor-icon-list-item {
  display: grid !important;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  min-height: 44px;
  margin: 0 !important;
  padding: 0 !important;
}

.elementor-element-704926d .elementor-icon-list-icon {
  display: flex !important;
  width: 32px !important;
  height: 32px !important;
  align-items: center;
  justify-content: center;
}

.elementor-element-704926d .elementor-icon-list-icon svg {
  display: block !important;
  width: 26px !important;
  height: 26px !important;
  max-width: 26px !important;
  max-height: 26px !important;
  flex: 0 0 26px;
}

.elementor-element-704926d .elementor-icon-list-text,
.elementor-element-704926d a {
  min-width: 0;
  overflow-wrap: anywhere;
}

.elementor-element-704926d .elementor-icon-list-text {
  display: block !important;
  width: 100% !important;
  max-width: 100%;
  white-space: normal !important;
}

.elementor-element-704926d .elementor-icon-list-item > a {
  display: grid !important;
  grid-column: 1 / -1;
  grid-template-columns: 32px minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  width: 100% !important;
}

/* Contact form: keep the inherited narrow column centered on an explicit rail. */
body.page-id-5009 .elementor-element-2697ee6 {
  width: min(100%, 800px) !important;
  max-width: 800px;
  margin-inline: auto;
  flex: 0 1 800px;
}

body.page-id-5009 .elementor-element-9a014d9,
body.page-id-5009 .elementor-element-9a014d9 .wpcf7,
body.page-id-5009 .elementor-element-9a014d9 form {
  width: 100% !important;
  max-width: 100%;
}

body.page-id-5009 .elementor-element-9a014d9 input,
body.page-id-5009 .elementor-element-9a014d9 textarea,
body.page-id-5009 .elementor-element-9a014d9 select {
  max-width: 100%;
}

/* Replace removed external HTTP demo icons with reviewed local static SVGs. */
body.page-id-5009 .elementor-element-e432904 .icon-svg,
body.page-id-5009 .elementor-element-935af6e .icon-svg {
  display: block;
  width: 34px;
  height: 34px;
  flex: 0 0 34px;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
}

body.page-id-5009 .elementor-element-e432904 .icon-svg {
  background-image: url("icons/phone.svg");
}

body.page-id-5009 .elementor-element-935af6e .icon-svg {
  background-image: url("icons/envelope.svg");
}

/* Homepage lead form: visible controls and an accessible, readable submit. */
body.home .elementor-element-a6484c5 input:not([type="hidden"]),
body.home .elementor-element-a6484c5 textarea {
  color: #ffffff !important;
  border-bottom-color: rgba(255, 255, 255, 0.72) !important;
}

body.home .elementor-element-a6484c5 input:not([type="hidden"])::placeholder,
body.home .elementor-element-a6484c5 textarea::placeholder {
  color: rgba(255, 255, 255, 0.86) !important;
  opacity: 1;
}

body.home .elementor-element-a6484c5 button.icon-submit {
  display: inline-flex;
  width: 208px !important;
  min-width: 208px;
  height: 52px !important;
  padding: 0 24px !important;
  align-items: center;
  justify-content: center;
  border: 2px solid #ffffff !important;
  border-radius: 8px;
  background: #ffffff !important;
  color: #1f4085 !important;
  font-size: 12px !important;
  font-weight: 700;
  line-height: 1 !important;
  letter-spacing: 1.5px;
}

body.home .elementor-element-a6484c5 button.icon-submit:hover,
body.home .elementor-element-a6484c5 button.icon-submit:focus-visible {
  background: #1f4085 !important;
  color: #ffffff !important;
  outline: 2px solid #ffffff;
  outline-offset: 3px;
}

@media (max-width: 1024px) {
  /* Use a single breakpoint through the Rodio/Elementor 991-1024px conflict. */
  .header-wrapper.desktop {
    display: none !important;
  }

  .header-wrapper.mobile {
    display: block !important;
  }

  .elementor-element-4240d6c.sticky-nav {
    display: none !important;
  }

  .elementor-element-51b36f4.sticky-nav {
    display: block !important;
    width: 100%;
    min-height: 70px;
    height: 70px !important;
    padding-inline: 24px !important;
    box-sizing: border-box !important;
  }

  .elementor-element-51b36f4.sticky-nav > .elementor-container {
    width: 100% !important;
    max-width: 100% !important;
    height: 100%;
    align-items: center;
    box-sizing: border-box !important;
  }

  .elementor-element-d05680d,
  .elementor-element-d05680d .elementor-widget-container {
    display: flex;
    height: 60px !important;
    align-items: center;
  }

  .elementor-element-d05680d img {
    display: block;
    width: 60px !important;
    height: 60px !important;
    max-width: 60px !important;
    max-height: 60px !important;
    object-fit: contain;
  }

  .elementor-element-51b36f4.sticky-nav.scrolled {
    min-height: 56px;
    height: 56px !important;
  }

  .elementor-element-51b36f4.sticky-nav.scrolled .elementor-element-d05680d,
  .elementor-element-51b36f4.sticky-nav.scrolled .elementor-element-d05680d .elementor-widget-container {
    height: 46px !important;
  }

  .elementor-element-51b36f4.sticky-nav.scrolled .elementor-element-d05680d img {
    width: 46px !important;
    height: 46px !important;
    max-width: 46px !important;
    max-height: 46px !important;
  }

  /* Mobile drawer logo and close control. */
  .elementor-element-4bdd6ec img {
    display: block;
    width: 64px !important;
    height: 64px !important;
    max-width: 64px !important;
    max-height: 64px !important;
    object-fit: contain;
  }

  .elementor-2612 .elementor-element.elementor-element-8ee4fca,
  .elementor-2612 .elementor-element.elementor-element-8ee4fca .elementor-widget-container {
    width: var(--manneva-touch-target) !important;
    max-width: var(--manneva-touch-target) !important;
    height: var(--manneva-touch-target) !important;
    flex: 0 0 var(--manneva-touch-target) !important;
  }

  .elementor-2612 .elementor-element.elementor-element-8ee4fca .hamburger-close {
    display: flex !important;
    width: var(--manneva-touch-target) !important;
    height: var(--manneva-touch-target) !important;
    align-items: center;
    justify-content: center;
    line-height: 1;
  }

  .elementor-2612 .elementor-element.elementor-element-8ee4fca .hamburger-close svg,
  .elementor-2612 .elementor-element.elementor-element-8ee4fca .hamburger-close svg.icon,
  .elementor-2612 .elementor-element.elementor-element-8ee4fca svg.e-fas-times,
  .elementor-2612 .elementor-element.elementor-element-8ee4fca svg.e-font-icon-svg,
  .hamburger-content .hamburger-close svg {
    display: block !important;
    width: 22px !important;
    height: 22px !important;
    max-width: 22px !important;
    max-height: 22px !important;
    flex: 0 0 22px !important;
  }

  .hamburger-content,
  .hamburger-overlay {
    width: 100vw !important;
    max-width: 100vw;
    overflow-x: hidden !important;
  }

  body.page-id-5009 .elementor-element-761400c > .elementor-container {
    width: calc(100% - 40px) !important;
    max-width: 800px !important;
    margin-inline: auto !important;
  }

  body.page-id-5009 .elementor-element-2697ee6 {
    width: 100% !important;
    max-width: 100%;
    flex-basis: 100%;
  }

  body.page-id-5009 .elementor-element-e432904,
  body.page-id-5009 .elementor-element-935af6e {
    width: 100% !important;
    max-width: 100% !important;
    --container-widget-width: 100% !important;
  }

  body.home .elementor-element-a6484c5 button.icon-submit {
    width: 100% !important;
    min-width: 100%;
  }
}

@media (max-width: 767px) {
  :root {
    --manneva-gutter: 20px;
  }

  .elementor-element-51b36f4.sticky-nav {
    padding-inline: 20px !important;
  }

  /* Elementor retained the tablet 4rem hero type at phone widths. Keep every
     carousel slide readable inside the accepted 390px mobile rail. */
  body.home .hs1-content .content,
  body.home .hs1-content .elementor-container,
  body.home .hs1-content .elementor-column,
  body.home .hs1-content .elementor-widget-wrap {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    box-sizing: border-box !important;
  }

  .elementor-1370 .elementor-element.elementor-element-8603347 .elementor-heading-title,
  .elementor-6516 .elementor-element.elementor-element-beaacd3 .elementor-heading-title,
  .elementor-6525 .elementor-element.elementor-element-fb48d56 .elementor-heading-title,
  .elementor-7174 .elementor-element.elementor-element-fb48d56 .elementor-heading-title {
    font-size: 18px !important;
    line-height: 1.25 !important;
    overflow-wrap: anywhere;
  }

  .elementor-1370 .elementor-element.elementor-element-cff5e98 .elementor-heading-title,
  .elementor-6516 .elementor-element.elementor-element-336f5e4 .elementor-heading-title,
  .elementor-6525 .elementor-element.elementor-element-b1c3416 .elementor-heading-title,
  .elementor-7174 .elementor-element.elementor-element-b1c3416 .elementor-heading-title {
    max-width: 100%;
    font-size: clamp(32px, 10.5vw, 42px) !important;
    line-height: 1.15 !important;
    overflow-wrap: break-word;
  }

  body.home .hs1-content .button {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  .elementor-element-5fb6baf {
    margin-top: 72px !important;
    padding: 0 20px 64px !important;
  }

  .elementor-element-704926d .elementor-icon-list-items {
    gap: 12px;
  }

  .elementor-element-704926d .elementor-icon-list-item {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px;
  }

  .elementor-element-704926d .elementor-icon-list-item > a {
    grid-template-columns: 30px minmax(0, 1fr);
    gap: 10px;
  }

  .elementor-element-704926d .elementor-icon-list-icon {
    width: 30px !important;
    height: 30px !important;
  }

  .elementor-element-704926d .elementor-icon-list-icon svg {
    width: 24px !important;
    height: 24px !important;
    max-width: 24px !important;
    max-height: 24px !important;
  }
}
