/* ==========================================================
   SITE INSTITUCIONAL - CONSTRUTOR / POSICIONAMENTO
   ========================================================== */

/* Reduz o excesso de espaço padrão entre os blocos. */
.site-section{
    padding:48px 0;
}

.site-hero{
    padding-top:56px;
    padding-bottom:48px;
}

/*
 * Cada bloco pode ter:
 * - espaço superior/inferior;
 * - largura;
 * - alinhamento;
 * - deslocamento horizontal.
 */
[data-builder-block]{
    padding-top:var(--block-top,28px)!important;
    padding-bottom:var(--block-bottom,28px)!important;
}

[data-builder-block] > .site-wrap{
    width:min(var(--block-width,100%),calc(100% - 36px));
    max-width:var(--site-max);
    transform:translateX(var(--block-x,0%));
    transition:
        width .18s ease,
        transform .18s ease,
        padding .18s ease;
}

[data-builder-block][data-block-align="left"] > .site-wrap{
    margin-left:18px;
    margin-right:auto;
}

[data-builder-block][data-block-align="center"] > .site-wrap{
    margin-left:auto;
    margin-right:auto;
}

[data-builder-block][data-block-align="right"] > .site-wrap{
    margin-left:auto;
    margin-right:18px;
}

/* Componentes adicionados pelo construtor. */
.site-builder-component{
    position:relative;
    background:transparent;
}

.site-builder-component__inner{
    min-height:1px;
}

.site-builder-component--titulo h2{
    margin:0;
    font-size:clamp(30px,4vw,56px);
    line-height:1.05;
    letter-spacing:-.035em;
}

.site-builder-text{
    font-size:clamp(16px,1.8vw,20px);
    line-height:1.72;
    color:var(--site-text);
}

.site-builder-component--imagem img{
    display:block;
    width:100%;
    height:auto;
    border-radius:var(--site-radius);
    object-fit:cover;
}

.site-builder-video{
    overflow:hidden;
    aspect-ratio:16/9;
    border-radius:var(--site-radius);
    background:#020617;
}

.site-builder-video video,
.site-builder-video iframe,
.site-video__player iframe{
    display:block;
    width:100%;
    height:100%;
    min-height:320px;
    border:0;
    background:#020617;
}

.site-builder-component--botao .site-builder-component__inner{
    display:flex;
}

.site-builder-component--botao[data-block-align="left"] .site-builder-component__inner{
    justify-content:flex-start;
}

.site-builder-component--botao[data-block-align="center"] .site-builder-component__inner{
    justify-content:center;
}

.site-builder-component--botao[data-block-align="right"] .site-builder-component__inner{
    justify-content:flex-end;
}

.site-builder-separator{
    width:100%;
    height:1px;
    margin:0;
    border:0;
    background:color-mix(in srgb,var(--site-text) 18%,transparent);
}

.site-builder-placeholder{
    display:grid;
    min-height:180px;
    place-items:center;
    padding:24px;
    border:2px dashed color-mix(in srgb,var(--site-primary) 36%,transparent);
    border-radius:var(--site-radius);
    background:color-mix(in srgb,var(--site-primary) 6%,var(--site-surface));
    color:var(--site-muted);
    font-weight:800;
    text-align:center;
}

@media (max-width:780px){
    [data-builder-block] > .site-wrap{
        width:calc(100% - 24px)!important;
        max-width:none!important;
        margin-left:auto!important;
        margin-right:auto!important;
        transform:none!important;
    }

    .site-builder-video video,
    .site-builder-video iframe,
    .site-video__player iframe{
        min-height:220px;
    }
}


/* ==========================================================
   V169 - GRID / CONTAINERS NO ESTILO DE CONSTRUTOR
   ========================================================== */

.site-builder-component[data-builder-parent]:not([data-builder-parent=""]){
    width:100%;
    min-width:0;
    padding-left:0!important;
    padding-right:0!important;
}

.site-builder-component[data-builder-parent]:not([data-builder-parent=""]) > .site-builder-component__inner{
    width:100%;
    max-width:none;
    margin:0;
    transform:translateX(var(--block-x,0%));
}

.site-builder-grid{
    display:grid;
    grid-template-columns:repeat(var(--grid-columns,2),minmax(0,1fr));
    gap:var(--grid-gap,18px);
    width:100%;
    min-width:0;
}

.site-builder-grid-column{
    min-width:0;
}

.site-builder-grid-column > [data-builder-node]{
    width:100%;
    min-width:0;
}

.site-builder-grid-column .site-builder-component{
    padding-top:var(--block-top,12px)!important;
    padding-bottom:var(--block-bottom,12px)!important;
}

.site-builder-grid-column .site-builder-component__inner{
    width:min(var(--block-width,100%),100%);
    margin-left:auto;
    margin-right:auto;
}

.site-builder-component--grid > .site-builder-component__inner{
    width:min(var(--block-width,100%),calc(100% - 36px));
}

.site-builder-component--grid[data-builder-parent]:not([data-builder-parent=""]) > .site-builder-component__inner{
    width:100%;
}

@media (max-width:900px){
    .site-builder-grid{
        grid-template-columns:1fr!important;
    }

    .site-builder-grid-column{
        grid-column:auto!important;
    }
}


/* ==========================================================
   V173 - MARGENS HORIZONTAIS UNIFORMES
   ========================================================== */

:root{
    --site-uniform-gutter:12px;
}

/*
 * O slide deixa de ocupar 100% da largura da tela.
 * Mantém exatamente a mesma margem pequena dos blocos.
 */
.site-slider{
    width:calc(100% - (var(--site-uniform-gutter) * 2));
    margin-left:var(--site-uniform-gutter);
    margin-right:var(--site-uniform-gutter);
    box-sizing:border-box;
    border-radius:12px;
}

/* Setas próximas da borda real do slide, sem o recuo antigo do site-max. */
.site-slider__arrow--prev{
    left:14px;
}

.site-slider__arrow--next{
    right:14px;
}

/*
 * Remove o limite de largura global (site-max) dos blocos principais.
 * Em largura 100%, todos passam a usar praticamente toda a página,
 * deixando apenas 12px de cada lado.
 *
 * Se o administrador escolher 75%, 50% etc. no editor, a largura
 * personalizada continua funcionando normalmente.
 */
main > [data-builder-node] > .site-wrap{
    width:min(
        var(--block-width,100%),
        calc(100% - (var(--site-uniform-gutter) * 2))
    );
    max-width:none;
}

/* Margem igual nos dois lados quando o bloco está centralizado. */
main > [data-builder-node][data-block-align="center"] > .site-wrap{
    margin-left:auto;
    margin-right:auto;
}

/* Alinhado à esquerda: mantém somente a margem pequena padrão. */
main > [data-builder-node][data-block-align="left"] > .site-wrap{
    margin-left:var(--site-uniform-gutter);
    margin-right:auto;
}

/* Alinhado à direita: mantém somente a margem pequena padrão. */
main > [data-builder-node][data-block-align="right"] > .site-wrap{
    margin-left:auto;
    margin-right:var(--site-uniform-gutter);
}

/*
 * Grids de nível principal seguem exatamente a mesma largura.
 */
main > .site-builder-component--grid > .site-builder-component__inner{
    width:min(
        var(--block-width,100%),
        calc(100% - (var(--site-uniform-gutter) * 2))
    );
    max-width:none;
}

/*
 * Tema com menu lateral:
 * o slide respeita a largura restante da página e continua
 * com 12px de margem em ambos os lados da área útil.
 */
.site-header--sidebar + .site-slider{
    width:calc(
        100% - 230px - (var(--site-uniform-gutter) * 2)
    );
    margin-left:calc(230px + var(--site-uniform-gutter));
    margin-right:var(--site-uniform-gutter);
}

/* No celular a margem fica ainda menor, mas continua igual dos dois lados. */
@media (max-width:780px){
    :root{
        --site-uniform-gutter:8px;
    }

    .site-slider{
        border-radius:8px;
    }

    .site-slider__arrow--prev{
        left:8px;
    }

    .site-slider__arrow--next{
        right:8px;
    }

    .site-header--sidebar + .site-slider{
        width:calc(100% - (var(--site-uniform-gutter) * 2));
        margin-left:var(--site-uniform-gutter);
        margin-right:var(--site-uniform-gutter);
    }
}


/* ==========================================================
   V174 - MENU, SLIDE E VÍDEOS COM PROPORÇÃO CORRETA
   ========================================================== */

/*
 * 1) MENU
 * O contorno do menu usa a mesma margem pequena do slide.
 * Remove o site-max que deixava o menu muito mais estreito.
 */
.site-header:not(.site-header--sidebar):not(.site-header--floating) .site-wrap{
    width:calc(100% - (var(--site-uniform-gutter) * 2));
    max-width:none;
    margin-left:var(--site-uniform-gutter);
    margin-right:var(--site-uniform-gutter);
}

.site-header--floating:not(.site-header--sidebar){
    width:calc(100% - (var(--site-uniform-gutter) * 2));
    max-width:none;
    margin-left:var(--site-uniform-gutter);
    margin-right:var(--site-uniform-gutter);
}

.site-header--floating:not(.site-header--sidebar) .site-wrap{
    width:100%;
    max-width:none;
    margin:0;
    padding-left:12px;
    padding-right:12px;
    box-sizing:border-box;
}

/*
 * 2) SLIDE
 * As imagens padrão foram criadas em formato próximo de 3:1.
 * O antigo object-fit:cover cortava as laterais e fazia parte
 * dos textos desaparecer. Agora o slide preserva a imagem inteira.
 */
.site-slider__viewport{
    width:100%;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:3 / 1;
    overflow:hidden;
}

.site-slide img{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain!important;
    object-position:center center!important;
}

/*
 * Mantém o fundo preenchido mesmo quando alguma imagem enviada
 * pelo administrador tiver uma proporção diferente de 3:1.
 */
.site-slider,
.site-slider__viewport{
    background:color-mix(
        in srgb,
        var(--site-primary) 5%,
        var(--site-surface)
    );
}

/*
 * 3) VÍDEOS
 * Nunca força uma altura mínima que possa cortar o player.
 * Qualquer vídeo/iframe usa a proporção 16:9 completa.
 */
.site-builder-video,
.site-video__player{
    width:100%;
    max-width:100%;
    aspect-ratio:16 / 9;
    overflow:hidden;
    box-sizing:border-box;
}

.site-builder-video video,
.site-builder-video iframe,
.site-video__player video,
.site-video__player iframe{
    display:block;
    width:100%!important;
    max-width:100%!important;
    height:100%!important;
    min-height:0!important;
    aspect-ratio:16 / 9;
    border:0;
    object-fit:contain!important;
    box-sizing:border-box;
}

/*
 * Vídeo dentro de uma grid grande ocupa toda a largura disponível
 * sem ser recortado por altura fixa.
 */
.site-builder-grid-column .site-builder-video,
.site-builder-grid-column .site-video__player{
    width:100%;
    min-width:0;
    max-width:none;
}

.site-builder-grid-column .site-builder-component--video{
    width:100%;
    min-width:0;
    overflow:visible;
}

/*
 * A seção de vídeo nativa também respeita a largura real do bloco.
 */
.site-video__grid{
    min-width:0;
}

.site-video__player{
    min-width:0;
}

/* Mobile: mantém a imagem inteira e as mesmas margens. */
@media (max-width:780px){
    .site-header--floating:not(.site-header--sidebar){
        width:calc(100% - (var(--site-uniform-gutter) * 2));
        margin-left:var(--site-uniform-gutter);
        margin-right:var(--site-uniform-gutter);
    }

    .site-header--floating:not(.site-header--sidebar) .site-wrap{
        padding-left:8px;
        padding-right:8px;
    }

    .site-slider__viewport{
        height:auto!important;
        min-height:0!important;
        aspect-ratio:3 / 1;
    }

    .site-builder-video video,
    .site-builder-video iframe,
    .site-video__player video,
    .site-video__player iframe{
        min-height:0!important;
    }
}



/* ==========================================================
   V175 - WHATSAPP FIXO
   ========================================================== */

.site-whatsapp-float{
    position:fixed;
    z-index:9997;
    right:18px;
    bottom:18px;
    display:flex;
    align-items:center;
    gap:9px;
    min-width:64px;
    height:64px;
    padding:0 16px 0 8px;
    border-radius:999px;
    background:#25d366;
    color:#fff;
    text-decoration:none;
    box-shadow:0 12px 32px rgba(15,23,42,.28);
    transition:
        transform .18s ease,
        box-shadow .18s ease;
}

.site-whatsapp-float:hover{
    transform:translateY(-3px);
    box-shadow:0 16px 38px rgba(15,23,42,.34);
}

.site-whatsapp-float svg{
    flex:0 0 auto;
    width:50px;
    height:50px;
    color:#fff;
}

.site-whatsapp-float svg circle{
    fill:#25d366;
}

.site-whatsapp-float svg path{
    fill:currentColor;
}

.site-whatsapp-float span{
    color:#fff;
    font-size:13px;
    font-weight:900;
    white-space:nowrap;
}

@media (max-width:780px){
    .site-whatsapp-float{
        right:10px;
        bottom:10px;
        width:58px;
        min-width:58px;
        height:58px;
        padding:4px;
        justify-content:center;
    }

    .site-whatsapp-float svg{
        width:48px;
        height:48px;
    }

    .site-whatsapp-float span{
        position:absolute;
        width:1px;
        height:1px;
        overflow:hidden;
        clip:rect(0,0,0,0);
        white-space:nowrap;
    }
}
