/* Cards do blog: o padding-bottom do Elementor só funciona com a foto absoluta */
.elementor-posts-container .elementor-post__thumbnail {
    position: relative;
    overflow: hidden;
}
.elementor-posts-container .elementor-post__thumbnail img {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    max-width: none;
    object-fit: cover;
}
.elementor-posts-container .elementor-post__thumbnail noscript {
    display: none;
}

.elementor-invisible {
    visibility: visible !important;
}

/* Carrossel de clientes / depoimentos */
.elementor-testimonial-carousel .elementor-main-swiper,
.elementor-slides-wrapper.elementor-main-swiper {
    overflow: hidden;
}
.elementor-testimonial__image img {
    display: block;
    max-width: 100%;
    height: auto;
}
.elementor-swiper noscript {
    display: none;
}

/* A home usa controles leves e reserva o espaço dos banners antes do JS. */
body[data-native-home] .elementor-main-swiper .swiper-wrapper { display: flex; }
body[data-native-home] .elementor-main-swiper .swiper-slide { flex: 0 0 100%; width: 100%; }
body[data-native-home] .elementor-main-swiper { position: relative; }
body[data-native-home] .swiper-pagination {
    position: absolute;
    bottom: 12px;
    left: 0;
    width: 100%;
    line-height: 12px;
    z-index: 10;
}
body[data-native-home] .swiper-pagination-bullet {
    width: 9px;
    height: 9px;
    min-width: 0;
    margin: 0 4px;
    padding: 0;
    border: 0;
    background: #00154a;
}
body[data-native-home] .elementor-element-a825507 .elementor-main-swiper { aspect-ratio: 1 / 1; }
body[data-native-home] .elementor-element-a825507 .swiper-slide { height: 100% !important; }
body[data-native-home] .elementor-element-a825507 .swiper-slide-inner { padding-bottom: 30px; }
@media (max-width: 1024px) {
    body[data-native-home] .elementor-element-9917fb6 { display: none !important; }
}
@media (min-width: 1025px) {
    body[data-native-home] .elementor-element-f3f1298 { display: none !important; }
}
@media (min-width: 1025px) {
    .elementor-location-header .elementor-nav-menu--main .menu-item-has-children { position: relative; }
    .elementor-location-header .elementor-nav-menu--main .menu-item-has-children:hover > .sub-menu,
    .elementor-location-header .elementor-nav-menu--main .menu-item-has-children:focus-within > .sub-menu {
        display: block;
        position: absolute;
        top: 100%;
        left: 0;
        min-width: 210px;
        z-index: 100;
    }
}

/* Cabeçalho e navegação em celulares e tablets. */
@media (max-width: 1024px) {
    .elementor-location-header .elementor-element-59cdb6e1 { display: none; }
    .elementor-location-header .elementor-element-3eb8c2ee {
        position: relative;
        z-index: 100;
        padding: 12px 16px;
        background: #fff !important;
    }
    .elementor-location-header .elementor-element-3eb8c2ee > .elementor-container {
        position: static;
        min-height: 50px;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: space-between;
        gap: 16px;
    }
    .elementor-location-header .elementor-element-50ecee92 {
        flex: 1 1 auto;
        min-width: 0;
        width: auto !important;
    }
    .elementor-location-header .elementor-element-6fad7bf8 {
        position: static;
        flex: 0 0 44px;
        width: 44px !important;
    }
    .elementor-location-header .elementor-element-3eb8c2ee > .elementor-container > .elementor-column > .elementor-widget-wrap {
        position: static;
        padding: 0;
        margin: 0;
    }
    .elementor-location-header .elementor-element-5d1602a3 {
        width: 100%;
        max-width: 264px;
        margin: 0;
    }
    .elementor-location-header .elementor-element-5d1602a3 a,
    .elementor-location-header .elementor-element-5d1602a3 img {
        display: block;
        width: 100%;
        height: auto;
    }
    .elementor-location-header .elementor-widget-nav-menu,
    .elementor-location-header .elementor-widget-nav-menu > .elementor-widget-container {
        position: static;
        margin: 0;
    }
    .elementor-location-header .elementor-widget-nav-menu .elementor-menu-toggle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        padding: 0;
        margin: 0 !important;
        border-radius: 6px;
        background: #f0f4f8;
        color: #00154a !important;
        font-size: 24px;
        line-height: 1;
    }
    .elementor-location-header .elementor-menu-toggle:focus-visible,
    .elementor-location-header .mobile-submenu-toggle:focus-visible { outline: 2px solid #0395e9; outline-offset: 2px; }
    .elementor-location-header .elementor-widget-container > nav.elementor-nav-menu--dropdown {
        display: none !important;
        position: absolute;
        inset: 100% 0 auto;
        width: 100% !important;
        max-height: calc(100vh - 80px);
        max-height: calc(100dvh - 80px);
        margin: 0;
        padding: 8px 16px;
        overflow-y: auto;
        overscroll-behavior: contain;
        transform: none !important;
        background: #fff !important;
        box-shadow: 0 12px 20px rgba(0, 21, 74, .14);
    }
    .elementor-location-header .hidrogeron-menu-open > .elementor-widget-container > nav.elementor-nav-menu--dropdown { display: block !important; }
    .elementor-location-header nav.elementor-nav-menu--dropdown > ul { display: block; margin: 0; padding: 0; }
    .elementor-location-header nav.elementor-nav-menu--dropdown li { display: block; width: 100%; margin: 0; border: 0; }
    .elementor-location-header nav.elementor-nav-menu--dropdown li.menu-item-has-children {
        display: grid;
        grid-template-columns: minmax(0, 1fr) 44px;
    }
    .elementor-location-header nav.elementor-nav-menu--dropdown a {
        display: flex;
        align-items: center;
        min-height: 44px;
        padding: 12px 10px;
        color: #00154a;
        background: #fff;
        white-space: normal;
    }
    .elementor-location-header nav.elementor-nav-menu--dropdown .sub-menu {
        display: none !important;
        position: static !important;
        grid-column: 1 / -1;
        width: 100% !important;
        min-width: 0 !important;
        margin: 0 !important;
        padding: 0;
        border: 0;
        box-shadow: none;
    }
    .elementor-location-header nav.elementor-nav-menu--dropdown .is-submenu-open > .sub-menu { display: block !important; }
    .elementor-location-header nav.elementor-nav-menu--dropdown .sub-menu a { padding-left: 26px; background: #f5f8fb; }
    .elementor-location-header .mobile-submenu-toggle {
        display: grid;
        place-items: center;
        min-width: 44px;
        min-height: 44px;
        padding: 0;
        border: 0;
        background: transparent;
        color: #00154a;
        cursor: pointer;
    }
    .elementor-location-header .mobile-submenu-toggle::before {
        content: "";
        width: 8px;
        height: 8px;
        border-right: 2px solid currentColor;
        border-bottom: 2px solid currentColor;
        transform: rotate(45deg);
    }
    .elementor-location-header .mobile-submenu-toggle[aria-expanded="true"]::before { transform: rotate(225deg); }
}

/* Comparador de instalações, disponível sem aguardar os widgets do Elementor. */
.hidrogeron-image-comparison {
    --comparison-position: 50%;
    position: relative;
    isolation: isolate;
    width: 100%;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}
.hidrogeron-image-comparison > img {
    position: absolute;
    inset: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    user-select: none;
    pointer-events: none;
}
.hidrogeron-image-comparison .comparison-before {
    z-index: 2;
    clip-path: inset(0 calc(100% - var(--comparison-position)) 0 0);
}
.hidrogeron-image-comparison .comparison-range {
    position: absolute;
    inset: 0;
    z-index: 4;
    width: 100%;
    height: 100%;
    margin: 0;
    padding: 0;
    opacity: 0;
    cursor: ew-resize;
    touch-action: pan-y;
}
.hidrogeron-image-comparison .comparison-divider {
    position: absolute;
    z-index: 3;
    top: 0;
    bottom: 0;
    left: var(--comparison-position);
    width: 3px;
    transform: translateX(-50%);
    background: #fff;
    pointer-events: none;
}
.hidrogeron-image-comparison .comparison-handle {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: 44px;
    height: 44px;
    transform: translate(-50%, -50%);
    border-radius: 50%;
    background: #fff;
}
.hidrogeron-image-comparison .comparison-handle::before,
.hidrogeron-image-comparison .comparison-handle::after {
    content: "";
    border-top: 6px solid transparent;
    border-bottom: 6px solid transparent;
}
.hidrogeron-image-comparison .comparison-handle::before {
    border-right: 6px solid #252575;
}
.hidrogeron-image-comparison .comparison-handle::after {
    border-left: 6px solid #252575;
}
.hidrogeron-image-comparison .comparison-range:focus-visible ~ .comparison-divider .comparison-handle {
    outline: 3px solid #252575;
    outline-offset: 3px;
}
