/* ===========================================================================
   SEÇÕES QUE SÓ APARECEM COM CADASTRO NO PAINEL: TÍTULO DE SEÇÃO, DESTAQUES,
   EQUIPE, DEPOIMENTOS, PERGUNTAS FREQUENTES, ÍNDICES, FEED DAS REDES E UNIDADES.
   SEM CADASTRO, O HTML DELAS NEM CHEGA AO NAVEGADOR.
   =========================================================================== */

/* ---- TÍTULO DE SEÇÃO ---------------------------------------------------------------
   O MESMO DAS SEÇÕES DE TEXTO DA HOME: ALINHADO À ESQUERDA, NA FONTE DE TÍTULO. */

.titulo-bloco {
    padding: 30px 0;
}

.titulo-bloco__titulo {
    margin: 0;
    font-family: var(--fonte-titulo);
    font-size: 30px;
    font-weight: 500;
    line-height: 1.1;
}

.titulo-bloco__subtitulo {
    display: block;
    margin-top: 10px;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
}

@media (max-width: 991px) {
    .titulo-bloco { padding: 22px 0; }
}

@media (max-width: 767px) {
    .titulo-bloco__titulo { font-size: 24px; }
    .titulo-bloco__subtitulo { font-size: 14px; line-height: 20px; }
}

/* ---- CARTÃO DAS SEÇÕES DO PAINEL -----------------------------------------------------
   O MESMO DOS BLOCOS DE SERVIÇO: BRANCO, RETO, SOMBRA LEVE; AO PASSAR O MOUSE SOBE 10px. */

.depoimento,
.indice,
.cartao {
    position: relative;
    background: #fff;
    box-shadow: 0 0 3px rgba(0, 0, 0, .15);
    transition: all .2s ease-out 0s;
}

.depoimento:hover,
.indice:hover,
.cartao:hover {
    z-index: 2;
    box-shadow: 4px 4px 10px #ccc;
    transform: translate(0, -10px);
}

/* ---- DEPOIMENTOS -------------------------------------------------------------------
   NUMA FAIXA LARANJA, COMO A DA HOME: TÍTULO BRANCO E CARTÕES BRANCOS EM GRADE. */

.depoimentos-secao {
    margin-top: 20px;
    padding: 25px 0 55px;
    background-color: var(--laranja);
}

.depoimentos-secao .titulo-bloco__titulo {
    color: #fff;
}

/* COLUNAS DE ATÉ 360px, CENTRADAS: UM DEPOIMENTO SOZINHO NÃO ESTICA NA FAIXA TODA. */
.depoimentos {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 360px));
    justify-content: center;
    gap: 30px;
}

.depoimento {
    display: flex;
    flex-direction: column;
    padding: 30px;
    border-radius: 4px;
}

.depoimento__nota {
    display: flex;
    gap: 3px;
    margin-bottom: 12px;
    font-size: 14px;
}

.depoimento__nota .cheia { color: var(--laranja); }
.depoimento__nota .vazia { color: #ddd; }

/* TEXTO CORTADO EM 6 LINHAS; O RESTO FICA NO MODAL. */
.depoimento__texto {
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 6;
    overflow: hidden;
    color: #636363;
    font-size: 16px;
    font-style: italic;
    font-weight: 300;
    line-height: 24px;
}

.depoimento__ler {
    align-self: flex-start;
    margin-top: 8px;
    color: var(--laranja);
    font-size: 14px;
    font-weight: 500;
    text-decoration: underline;
    text-underline-offset: 3px;
}

.depoimento__ler:hover {
    color: #c9701a;
}

.depoimento__foto--inicial {
    display: inline-flex;
    flex: none;
    align-items: center;
    justify-content: center;
    background: var(--laranja);
    color: #fff;
    font-size: 22px;
    font-style: normal;
    font-weight: 500;
}

/* ---- MODAL DO DEPOIMENTO COMPLETO --------------------------------------------------- */

.depoimento-modal {
    width: calc(100% - 30px);
    max-width: 640px;
    margin: auto;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: #fff;
    box-shadow: 4px 4px 10px rgba(0, 0, 0, .3);
}

.depoimento-modal::backdrop {
    background: rgba(0, 0, 0, .6);
}

html:has(.depoimento-modal[open]) {
    overflow: hidden;
}

.depoimento-modal__fechar {
    position: absolute;
    top: 10px;
    right: 10px;
    z-index: 1;
    width: 36px;
    height: 36px;
    border-radius: 4px;
    background: var(--laranja);
    color: #fff;
    font-size: 16px;
    line-height: 36px;
}

.depoimento-modal__fechar:hover {
    background: #c9701a;
}

/* O CARTÃO DENTRO DO MODAL: SEM CORTE, SEM SOMBRA E COM ROLAGEM PRÓPRIA. */
.depoimento--completo {
    max-height: calc(100vh - 80px);
    overflow-y: auto;
    padding: 45px 30px 30px;
    box-shadow: none;
}

.depoimento--completo:hover {
    box-shadow: none;
    transform: none;
}

.depoimento--completo .depoimento__texto {
    display: block;
    overflow: visible;
}

.depoimento__autor {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: auto;
    padding-top: 15px;
    border-top: 1px solid #eee;
    color: #727272;
    font-size: 14px;
    line-height: 20px;
}

.depoimento__autor strong {
    color: #000;
    font-weight: 500;
}

.depoimento__foto {
    width: 56px;
    height: 56px;
    border-radius: 50%;
    object-fit: cover;
}

.depoimentos__convite {
    margin-top: 30px;
    color: #fff;
    font-size: 18px;
    font-weight: 300;
    line-height: 26px;
    text-align: center;
}

.depoimentos__convite p {
    margin-bottom: 15px;
}

@media (max-width: 767px) {
    .depoimentos-secao { padding: 15px 0 35px; }
    .depoimentos { grid-template-columns: minmax(0, 1fr); }
    .depoimentos__convite .botao-branco { display: block; }
    .depoimento { padding: 20px; }
}

/* ---- DESTAQUES (TABELA `Sliders`) ----------------------------------------------
   UMA IMAGEM POR VEZ; QUEM ROLA É O NAVEGADOR (`scroll-snap`), AS SETAS SÓ EMPURRAM.
   ⚠ `mandatory`, NÃO `proximity`: SENÃO O ARRASTO PARA NO MEIO DE DUAS IMAGENS.
   ⚠ PROPORÇÃO FIXA (3:1 NO DESKTOP, 16:9 NO CELULAR): ARTES DE TAMANHOS DIFERENTES
   NÃO MUDAM A ALTURA DA FAIXA. TAMANHO DA ARTE: 1170x390 E 768x432.
   NA PONTA A SETA FICA APAGADA, NÃO SOME (O RESTO NÃO PULA). */

.sliders-secao {
    margin-top: 20px;
    padding-bottom: 40px;
}

.sliders__palco {
    position: relative;
}

.sliders__pista {
    display: flex;
    overflow-x: auto;
    
    scroll-snap-type: x mandatory;
    
    scrollbar-width: none;
}

.sliders__pista::-webkit-scrollbar {
    display: none;
}

.sliders__item {
    flex: 0 0 100%;
    min-width: 0;
    scroll-snap-align: start;
}

.sliders__link {
    display: block;
}

.sliders__imagem {
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 3 / 1;
    object-fit: cover;
}

.sliders__palco--unico .sliders__pista {
    overflow-x: visible;
}

.sliders__seta {
    position: absolute;
    top: 50%;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: var(--laranja);
    color: #fff;
    box-shadow: none;
    cursor: pointer;
    transform: translateY(-50%);
    transition: background .25s ease, color .25s ease;
}

.sliders__seta:hover,
.sliders__seta:focus-visible {
    background: #c9701a;
}

.sliders__seta svg {
    height: 16px;
    width: auto;
}

.sliders__seta:disabled {
    opacity: .5;
    box-shadow: none;
    cursor: default;
}

.sliders__seta:disabled:hover {
    background: var(--laranja);
}

.sliders__seta--anterior {
    left: 16px;
}

.sliders__seta--proxima {
    right: 16px;
}

.sliders__pontos {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 20px;
}

.sliders__ponto {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: #ddd;
    cursor: pointer;
    transition: width .25s ease, background .25s ease;
}

.sliders__ponto.ativo {
    width: 26px;
    background: var(--laranja);
}

@media (max-width: 767px) {

    .sliders__imagem {
        aspect-ratio: 16 / 9;
    }

    .sliders__seta {
        width: 36px;
        height: 36px;
    }

    .sliders__seta svg {
        height: 13px;
    }

    .sliders__seta--anterior {
        left: 8px;
    }

    .sliders__seta--proxima {
        right: 8px;
    }

    .sliders__pontos {
        margin-top: 16px;
    }
}

/* ---- EQUIPE -------------------------------------------------------------------- */
.equipe-secao {
    margin-top: 20px;
    padding-bottom: 40px;
}

.equipe__grupo {
    margin: 0 0 25px;
    font-size: 20px;
    font-weight: 400;
    line-height: 24px;
    text-align: center;
    text-transform: uppercase;
}

.equipe {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 270px));
    justify-content: center;
    gap: 40px 30px;
    margin-bottom: 50px;
}

.pessoa {
    text-align: center;
}

.pessoa__foto {
    display: block;
    width: 100%;
    max-width: 270px;
    height: auto;
    margin: 0 auto 18px;
    aspect-ratio: 1;
    object-fit: cover;
}

.pessoa__foto--vazia {
    display: flex;
    align-items: center;
    justify-content: center;
    background: #f5f5f5;
    color: #ccc;
}

.pessoa__foto--vazia svg {
    height: 64px;
    width: auto;
}

.pessoa__nome {
    margin: 0;
    font-size: 18px;
    font-weight: 500;
    line-height: 24px;
}

.pessoa__cargo {
    margin: 4px 0 0;
    color: #636363;
    font-size: 15px;
    font-weight: 300;
}

.pessoa__creci {
    margin: 2px 0 0;
    color: #727272;
    font-size: 13px;
}

.pessoa__contatos {
    display: flex;
    gap: 14px;
    justify-content: center;
    margin: 12px 0 0;
}

.pessoa__contato {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 4px;
    background: #f5f5f5;
    color: var(--laranja);
    transition: background .25s ease, color .25s ease;
}

.pessoa__contato svg {
    height: 16px;
    width: auto;
}

.pessoa__contato:hover {
    background: var(--laranja);
    color: #fff;
}

/* ---- PERGUNTAS FREQUENTES ------------------------------------------------------ */
.faq-secao {
    margin-top: 20px;
    padding-bottom: 40px;
}

.faq {
    margin: 0;
}

.faq__item {
    border: 1px solid #e5e5e5;
    margin-bottom: 12px;
    background: #fff;
}

.faq__pergunta {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 14px 20px;
    font-size: 16px;
    font-weight: 500;
    line-height: 28px;
    cursor: pointer;
    list-style: none;
}

.faq__pergunta::-webkit-details-marker {
    display: none;
}

.faq__icone svg {
    height: 18px;
    width: auto;
    color: var(--laranja);
}

.faq__seta {
    margin-left: auto;
    line-height: 0;
    transition: transform .25s ease;
}

.faq__seta svg {
    height: 18px;
    width: auto;
    color: #959595;
}

.faq__item[open] .faq__seta {
    transform: rotate(180deg);
}

.faq__resposta {
    padding: 0 20px 18px 50px;
    color: #636363;
    font-size: 16px;
    font-weight: 300;
    line-height: 24px;
}

.faq__item[open] {
    border-top: 2px solid var(--laranja);
}

/* ---- ÍNDICES ECONÔMICOS -------------------------------------------------------- */

.indices-secao {
    margin-top: 20px;
    padding-bottom: 40px;
}

.indices {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 30px;
}

.indice {
    padding: 30px;
    text-align: center;
}

.indice__icone {
    display: block;
    margin-bottom: 12px;
    line-height: 0;
    color: var(--laranja);
}

.indice__icone svg {
    height: 34px;
    width: auto;
}

.indice__nome {
    margin: 0;
    font-size: 20px;
    font-weight: 400;
    line-height: 24px;
    text-transform: uppercase;
}

.indice__ref {
    display: block;
    margin-top: 2px;
    color: #727272;
    font-size: 12px;
}

.indice__desc {
    margin: 10px 0 0;
    color: #636363;
    font-size: 14px;
    font-weight: 300;
    line-height: 20px;
}

.indice__valor {
    margin: 14px 0 0;
    color: var(--laranja);
    font-size: 26px;
    font-weight: 500;
}

.indice__numeros {
    display: flex;
    justify-content: center;
    gap: 6%;
    margin: 18px 0 0;
}

.indice__numeros dt {
    color: #727272;
    font-size: 12px;
    text-transform: uppercase;
}

.indice__numeros dd {
    margin: 4px 0 0;
    color: #000;
    font-size: 17px;
    font-weight: 500;
    font-variant-numeric: tabular-nums;
}

.indice__numeros dd.is-positivo {
    color: #1c7c3f;
}

.indice__numeros dd.is-negativo {
    color: #b3261e;
}

/* ---- FEED DE INSTAGRAM E FACEBOOK ----------------------------------------------
   ATÉ 3 POSTS EM GRADE; 4 OU MAIS EM CARROSSEL (public/js/redes-feed.js).
   ⚠ CADA POST NASCE COM ALTURA RESERVADA E SPINNER, PARA A PÁGINA NÃO PULAR. */

.feed-secao {
    margin-top: 20px;
    padding-bottom: 40px;
}

.feed-secao + .feed-secao {
    padding-top: 0;
}

.feed {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 380px));
    justify-content: center;
    align-items: start;
    gap: 30px;
    margin-bottom: 20px;
}

.feed__palco {
    position: relative;
    max-width: 1170px;
    margin: 0 auto 20px;
}

.feed__pista {
    display: flex;
    align-items: flex-start;   
    gap: 30px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
}

.feed__pista::-webkit-scrollbar {
    display: none;
}

.feed__slide {
    flex: 0 0 calc((100% - 60px) / 3);
    min-width: 0;
    scroll-snap-align: start;
}

.feed__item {
    position: relative;
    container-type: inline-size;
    min-width: 0;
}

.feed__post {
    height: calc(125cqw + 150px);
    overflow: hidden;
    background: #fff;
    box-shadow: 0 0 3px rgba(0, 0, 0, .15);
}

.feed__post iframe {
    display: block;
    border: 0 !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.feed__post > *,
.feed__post iframe {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
}

.feed__item[data-carregando] {
    min-height: 460px;
    background: #f5f5f5;
}

.feed__item[data-carregando] > * {
    visibility: hidden;
}

.feed__item[data-carregando]::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 40px;
    height: 40px;
    margin: -20px 0 0 -20px;
    border: 3px solid #e5e5e5;
    border-top-color: var(--laranja);
    border-radius: 50%;
    animation: feed-girar .8s linear infinite;
    
    animation-delay: calc(var(--ordem, 0) * -.2s);
}

@keyframes feed-girar {
    to { transform: rotate(360deg); }
}

.feed__seta {
    position: absolute;
    top: calc(50% - 26px);
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: var(--laranja);
    color: #fff;
    box-shadow: none;
    cursor: pointer;
    transition: background .25s ease, color .25s ease;
}

.feed__seta:hover,
.feed__seta:focus-visible {
    background: #c9701a;
}

.feed__seta svg {
    height: 16px;
    width: auto;
}

.feed__seta:disabled {
    opacity: .45;
    box-shadow: none;
    cursor: default;
}

.feed__seta:disabled:hover {
    background: var(--laranja);
}

.feed__seta--anterior {
    left: -60px;
}

.feed__seta--proxima {
    right: -60px;
}

.feed__pontos {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    margin-top: 24px;
}

.feed__pontos[hidden] {
    display: none;
}

.feed__ponto {
    width: 8px;
    height: 8px;
    padding: 0;
    border: 0;
    border-radius: 4px;
    background: #ddd;
    cursor: pointer;
    transition: width .25s ease, background .25s ease;
}

.feed__ponto.ativo {
    width: 26px;
    background: var(--laranja);
}

.feed__link {
    margin: 0;
    text-align: center;
}

.feed__link a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: var(--laranja);
    font-size: 15px;
    font-weight: 500;
}

.feed__link svg {
    height: 16px;
    width: auto;
}

@media (max-width: 1300px) {
    .feed__seta--anterior {
        left: 6px;
    }

    .feed__seta--proxima {
        right: 6px;
    }
}

@media (max-width: 1024px) {
    .feed__slide {
        flex-basis: calc((100% - 30px) / 2);
    }
}

@media (max-width: 767px) {
    .feed__slide {
        flex-basis: 100%;
    }

    .feed {
        grid-template-columns: minmax(0, 380px);
        gap: 20px;
    }
}

/* ---- UNIDADES ------------------------------------------------------------------
   FILEIRA CENTRADA: UMA UNIDADE SÓ NÃO FICA ENCOSTADA À ESQUERDA. */

.cartoes--unidades {
    justify-content: center;
}

.unidades__titulo {
    margin: 10px 0 0;
    color: #727272;
    font-size: 20px;
    font-weight: 400;
    line-height: 24px;
    text-align: center;
    text-transform: uppercase;
}

/* CARTÃO DE UNIDADE: ÍCONE NO TOPO, NOME E ENDEREÇO. A FILEIRA FICA CENTRADA. */
.unidades {
    padding: 40px 0 10px;
}

.cartoes {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
    margin-top: 30px;
}

.cartao {
    flex: 0 1 calc((100% - 60px) / 3);
    padding: 30px;
    text-align: center;
}

.cartao__icone {
    display: inline-block;
    width: 66px;
    margin-bottom: 15px;
    padding-bottom: 20px;
    border-bottom: 2px solid var(--laranja);
    color: var(--laranja);
    font-size: 30px;
    line-height: 1;
}

.cartao__titulo {
    margin: 0 0 8px;
    font-size: 18px;
    font-weight: 400;
    line-height: 24px;
    text-transform: uppercase;
}

.cartao__linhas {
    display: block;
    color: #727272;
    font-size: 16px;
    font-weight: 300;
    line-height: 22px;
}

.cartao__linhas a {
    color: #727272;
}

.cartao__linhas a:hover {
    color: var(--laranja);
}

@media (max-width: 991px) {
    .cartao { flex-basis: calc((100% - 30px) / 2); }
}

@media (max-width: 767px) {
    .cartao { flex-basis: 100%; }
}
