.elo-home-hero-video,
.elementor-element-5247338 {
    position: relative;
    isolation: isolate;
    overflow: hidden;
}

.elo-home-hero-video > .elo-home-hero-video__media,
.elementor-element-5247338 > .elo-home-hero-video__media {
    position: absolute;
    inset: 0;
    z-index: 0;
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    pointer-events: none;
}

.elo-home-hero-video::before,
.elementor-element-5247338::before {
    z-index: 1 !important;
    pointer-events: none;
}

.elo-home-hero-video > .e-con-inner,
.elementor-element-5247338 > .e-con-inner {
    position: relative;
    z-index: 2;
}

/* Mantém a navegação principal disponível durante toda a rolagem. */
body {
    overflow-x: clip !important;
    overflow-y: visible !important;
}

.elementor-location-header {
    position: sticky;
    top: 0;
    z-index: 1000;
    background: #fff;
    transition: box-shadow 180ms ease;
}

.elementor-location-header.elo-header-is-scrolled {
    box-shadow: 0 8px 24px rgb(17 24 39 / 12%);
}

html {
    scroll-padding-top: var(--elo-sticky-header-height, 0px);
}

#servicos {
    scroll-margin-top: 0;
}

/* Textos corridos da Home alinhados pelas duas margens. */
body.home main .elementor-widget-text-editor p,
body.home main .elementor-image-box-description,
body.home #servicos p {
    text-align: justify;
    text-justify: inter-word;
    hyphens: auto;
}

/* Interação básica dos cards: elevação e sombra, sem poeira ou alvenaria. */
.elo-impact-card {
    position: relative !important;
    will-change: transform, box-shadow;
    transition:
        transform 250ms cubic-bezier(0.2, 0.75, 0.25, 1),
        box-shadow 250ms ease !important;
}

.elo-impact-card:hover,
.elo-impact-card:focus-within {
    transform: translateY(-10px) !important;
    box-shadow: 0 18px 34px rgb(15 20 48 / 20%) !important;
}

/* Faixa contínua com os principais clientes da Elo. */
.elo-client-marquee {
    --elo-client-card-width: clamp(190px, 16vw, 280px);
    --elo-client-card-height: 138px;
    --min-height: var(--elo-client-card-height) !important;
    display: block !important;
    width: 100%;
    max-width: none !important;
    height: var(--elo-client-card-height) !important;
    min-height: var(--elo-client-card-height) !important;
    overflow: hidden;
    padding: 0 !important;
    background: #fff;
    border-block: 1px solid #d4d6dd;
    -webkit-mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent);
    mask-image: linear-gradient(to right, transparent, #000 4%, #000 96%, transparent);
}

.elo-client-marquee__track {
    display: flex;
    width: max-content;
    will-change: transform;
    animation: elo-client-marquee 36s linear infinite;
}

.elo-client-marquee:hover .elo-client-marquee__track,
.elo-client-marquee:focus-within .elo-client-marquee__track {
    animation-play-state: paused;
}

.elo-client-marquee__track > .e-con {
    flex: 0 0 var(--elo-client-card-width) !important;
    width: var(--elo-client-card-width) !important;
    min-width: var(--elo-client-card-width) !important;
    min-height: var(--elo-client-card-height) !important;
    height: var(--elo-client-card-height) !important;
    padding: 24px 34px !important;
    border: 0 !important;
    border-inline-end: 1px solid #d4d6dd !important;
    background: #fff !important;
}

.elo-client-marquee__track .elementor-widget-image,
.elo-client-marquee__track .elementor-widget-container {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
}

.elo-client-marquee__track img {
    display: block;
    width: auto !important;
    max-width: 100% !important;
    height: auto !important;
    max-height: 74px !important;
    opacity: 0.62;
    filter: grayscale(1);
    transition: opacity 180ms ease, filter 180ms ease, transform 180ms ease;
}

.elo-client-marquee__track > .e-con:hover img {
    opacity: 1;
    filter: grayscale(0);
    transform: scale(1.04);
}

@keyframes elo-client-marquee {
    to {
        transform: translateX(-50%);
    }
}

@media (max-width: 767px) {
    .elo-client-marquee {
        --elo-client-card-width: 172px;
        --elo-client-card-height: 112px;
    }

    .elo-client-marquee__track > .e-con {
        padding: 20px 26px !important;
    }

    .elo-client-marquee__track img {
        max-height: 58px !important;
    }
}

@media (hover: none), (pointer: coarse) {
    .elo-impact-card:hover,
    .elo-impact-card:focus-within {
        transform: none !important;
        box-shadow: none !important;
    }
}

body.admin-bar .elementor-location-header {
    top: 32px;
}

@media (max-width: 782px) {
    body.admin-bar .elementor-location-header {
        top: 46px;
    }
}
