/* =========================================================
   MOD CASESOCB – CSS BASE / ESTRUTURAL
   Objetivo:
   - espaçamentos consistentes
   - hierarquia visual clara
   - fácil manutenção
   ========================================================= */

/* Wrapper principal do módulo */
.mod-casesocb {
    width: 100%;
    box-sizing: border-box;
}

/* Garante box-sizing consistente */
.mod-casesocb *,
.mod-casesocb *::before,
.mod-casesocb *::after {
    box-sizing: inherit;
}

/* Container das seções */
.mod-casesocb__sections {
    display: flex;
    flex-direction: column;
    gap: 64px; /* espaçamento padrão entre blocos */
}

/* Bloco genérico */
.mod-casesocb__section {
    width: 100%;
}

/* =========================================================
   ✅ CONTAINER GLOBAL (1110px) PARA TODAS AS SEÇÕES
   - Sem mudar o HTML
   - Centraliza e limita a largura em 1110px
   - Mantém respiro lateral em telas menores
   IMPORTANTE:
   - Não aplica na HISTÓRIA, porque história precisa fundo full-width
   ========================================================= */

.mod-casesocb__sections > .mod-casesocb__section:not(.mod-casesocb__section--historia) {
    max-width: 1110px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

/* =========================================================
   ESPAÇAMENTOS POR TIPO DE BLOCO
   ========================================================= */

/* Categorias – geralmente topo */
.mod-casesocb__section--categorias {
    margin-top: 8px;
}

/* Destaques – dá mais respiro */
.mod-casesocb__section--destaques {
    margin-top: 24px;
}

/* Filtros – separação visual */
.mod-casesocb__section--filtros {
    padding: 24px 0px 0px 0px;
}

/* Cases – área principal */
.mod-casesocb__section--cases {
    margin-top: 16px;
}

/* =========================================================
   TITULAÇÕES (caso use depois)
   ========================================================= */

.mod-casesocb__title {
    margin: 0 0 24px;
    font-size: 1.5rem;
    font-weight: 600;
    line-height: 1.2;
}

/* =========================================================
   UTILITÁRIOS DO MÓDULO
   ========================================================= */

/* Esconder sem quebrar layout */
.mod-casesocb--hidden {
    display: none !important;
}

/* Centralização rápida */
.mod-casesocb--center {
    display: flex;
    justify-content: center;
    align-items: center;
}

/* =========================================================
   HISTÓRIA / CTA FINAL (FUNDO FULL-WIDTH + CONTEÚDO 1110px)
   ========================================================= */

.mod-casesocb__section--historia {
    width: 100%;
    background: var(--casesocb-historia-bg, #FFFFFF);
    margin-top: 32px; /* mantém seu respiro antes do bloco */
    padding: 0; /* importante: padding fica no inner */
}

/* Conteúdo centralizado dentro da história */
.mod-casesocb__historia-inner {
    max-width: 1110px;
    margin: 0 auto;
    padding: 64px 15px;

    display: flex;
    flex-direction: column;
    gap: 24px;
}

.casesocb-loading {
    position: absolute;
    inset: 0;
    display: none;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, .25);
    z-index: 5;
}

.casesocb-loading__box {
    display: flex;
    gap: .75rem;
    align-items: center;
    padding: .75rem 1rem;
    border-radius: .75rem;
    background: rgba(0, 0, 0, .65);
    color: #fff;
    font-size: .95rem;
}

.casesocb-loading__spinner {
    width: 18px;
    height: 18px;
    border-radius: 50%;
    border: 2px solid rgba(255, 255, 255, .35);
    border-top-color: #fff;
    animation: casesocbSpin .8s linear infinite;
}

@keyframes casesocbSpin {
    to {
        transform: rotate(360deg);
    }
}

/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 991px) {
    .mod-casesocb__sections {
        gap: 48px;
    }

    .mod-casesocb__section--filtros {
        padding: 20px 0;
    }
}

@media (max-width: 767px) {
    .mod-casesocb__sections {
        gap: 40px;
    }

    .mod-casesocb__section--historia {
        margin-top: 24px;
    }

    /* garante respiro lateral nas seções "normais" */
    .mod-casesocb__sections > .mod-casesocb__section:not(.mod-casesocb__section--historia) {
        padding-left: 15px;
        padding-right: 15px;
    }

    /* história já tem inner com padding lateral */
    .mod-casesocb__historia-inner {
        padding: 48px 15px;
    }
}

/* CSS lista de cases paginados */
.mod-casesocb__section--filtro-lateral {
    padding: 15px;
    border-radius: 10px;
    border: 1px solid #e0e0e0;
    background: #fff;
    margin: 24px 0px 0px 0px;
}

.mod-casesocb__section--categorias{
    padding: 30px;
    border-radius:10px;
    border:1px solid #e0e0e0;
    background:#fff;
}

.mod-casesocb__header{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    margin-bottom:20px;
}

.mod-casesocb__header-info{
    display:flex;
    align-items:flex-start;
    gap:12px;
}

.mod-casesocb__icon{
    font-size:22px;
    color: #171C66;
    margin-top: 6px;
}

.mod-casesocb__header h4{
    margin:0 0 4px;
    font: normal normal 600 16px/18px "Intro Regular";
    letter-spacing: 0px;
    color: #171C66;
}

.mod-casesocb__header p{
    margin:0;
    color: #171C66;
    font: normal normal normal 12px/15px 'Inter';
}

#btn-limpar-filtro-categoria{
    display:flex;
    align-items:center;
    gap:6px;
    text-decoration:none;
    white-space:nowrap;
    font: normal normal normal 12px/15px 'Inter';
    letter-spacing: 0px;
    color: #5883D0;
}

.mod-casesocb__section--paginacao-cases .mod-pagination {
    padding: 10px;
    font: normal normal 500 14px / 20px "Intro Regular";
    letter-spacing: 0;
    color: #000000;
    width: 100%;
    max-width: 1110px;
    display: flex;
    gap: 30px;
    justify-content: center;
    align-items: center;
}
.mod-casesocb__section--paginacao-cases .mod-pagination .mod-pagination-inicio,
.mod-casesocb__section--paginacao-cases .mod-pagination .mod-pagination-anterior,
.mod-casesocb__section--paginacao-cases .mod-pagination .mod-pagination-nummenor,
.mod-casesocb__section--paginacao-cases .mod-pagination .mod-pagination-nummenor,
.mod-casesocb__section--paginacao-cases .mod-pagination .mod-pagination-proximo,
.mod-casesocb__section--paginacao-cases .mod-pagination .mod-pagination-final {
    font-weight: bold !important;
}
.mod-casesocb__section--paginacao-cases .mod-pagination .mod-pagination-inicio,
.mod-casesocb__section--paginacao-cases .mod-pagination .mod-pagination-anterior,
.mod-casesocb__section--paginacao-cases .mod-pagination .mod-pagination-proximo,
.mod-casesocb__section--paginacao-cases .mod-pagination .mod-pagination-final {
    color: #171c66 !important;
    cursor: pointer !important;
}
.mod-casesocb__section--paginacao-cases .mod-pagination .mod-pagination-atual {
    color: #ffffff !important;
    cursor: pointer !important;
    background-color: #171c66;
    padding: 3px;
    border-radius: 50%;
    width: 24px;
    height: 24px;
    text-align: center;
}

/* =========================================================
HISTÓRIA - RESPONSIVO
========================================================= */

.casesocb-stories__col--left {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
}

.casesocb-stories__title {
    width: 100%;
    text-align: left;
    font-family: "Intro Regular", sans-serif;
}

.casesocb-stories__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Fundo atravessando o container pai */
.casesocb-storiesWrap {
    position: relative;
    width: 100vw;
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background: var(--casesocb-stories-bg-color, #fff);
}

/* Mantém o conteúdo alinhado ao grid original */
.casesocb-stories {
    width: 100%;
}

@media (max-width: 991.98px) {

    .casesocb-stories__inner {
        display: flex;
        justify-content: center;
    }

    .casesocb-stories__col--left {
        width: 100%;
        align-items: center;
        justify-content: center;
        text-align: center;
    }

    .casesocb-stories__title {
        width: 100%;
        text-align: center;
    }

    .casesocb-stories__btn {
        margin-left: auto;
        margin-right: auto;
    }

    .casesocb-stories__col--right {
        display: none;
    }
}

@media (max-width: 575.98px) {

    .casesocb-storiesWrap {
        padding-left: 20px;
        padding-right: 20px;
    }

    .casesocb-stories__inner {
        padding-top: 40px;
        padding-bottom: 40px;
    }

    .casesocb-stories__title {
        font-size: 28px;
        line-height: 36px;
        text-align: center;
    }

    .casesocb-stories__btn {
        margin-top: 20px;
        width: auto;
    }
}

.casesocb-cases {
    width: 100%;
}

/* Grid: 2 colunas no desktop */
.casesocb-cases__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    column-gap: 15px;
    row-gap: 44px;
    width: 100%;
}

/* Card horizontal */
.casesocb-cases__card {
    width: 100%;
    display: flex;
    align-items: stretch;
    gap: 22px;
    min-height: 178px;
}

/* Media ocupa 50% do card */
.casesocb-cases__media {
    flex: 0 0 50%;
    max-width: 50%;
}

/* Link da imagem */
.casesocb-cases__mediaLink {
    display: block;
    width: 100%;
    text-decoration: none;
}

/* Imagem */
.casesocb-cases__img {
    display: block;
    width: 100%;
    height: 178px;
    object-fit: cover;
    object-position: center;
    border-radius: 18px;
}

/* Conteúdo */
.casesocb-cases__content {
    flex: 1 1 50%;
    min-width: 0;
    padding-top: 2px;
    height: 178px;
}

/* Categoria */
.casesocb-cases__cat {
    font: normal normal 600 10px/12px "Inter";
    margin: 0 0 8px;
    color: #7C38F5;
}

/* Título */
.casesocb-cases__itemTitle {
    /*margin: 0 0 12px;*/
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--casesocb-title-lines, 2);
    overflow: hidden;
    margin: 12px 0 !important;
    min-height: 46px;
    font: normal normal 700 18px/23px "Intro Regular";
    color: #171C66;
}

.casesocb-cases__titleLink {
    text-decoration: none;
}

/* Resumo */
.casesocb-cases__intro {
    margin: 0 0 14px;
    font: normal normal normal 12px/15px "Inter";
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: var(--casesocb-intro-lines, 3);
    overflow: hidden;
    min-height: 45px;
}

/* Badge premiado */
.casesocb-cases__badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 5px;
    padding: 8px 12px;
    border-radius: 999px;
    background: var(--casesocb-premiado-bg, #5A7BD9);
    color: var(--casesocb-premiado-text, #FFFFFF);
}

.casesocb-cases__badgeIcon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

.casesocb-cases__badgeText {
    font-size: 12px;
    line-height: 1;
    font-weight: 400;
}

/* =========================================================
   BOTÃO – CARREGAR MAIS (parametrizável via XML → CSS vars)
   ========================================================= */

.casesocb-cases__loadmore {
    width: 100%;
    display: flex;
    justify-content: center;
    margin-top: 48px;
}

.casesocb-cases__loadmoreBtn {
    min-width: 220px;
    height: 56px;
    padding: 0 28px;

    border-radius: 999px;
    border: 1px solid var(--casesocb-loadmore-border, #171C66);

    background: var(--casesocb-loadmore-bg, #FFFFFF);
    color: var(--casesocb-loadmore-text, #171C66);

    font-size: 1rem;
    font-weight: 600;

    cursor: pointer;
    transition: all 0.25s ease;
}

.casesocb-cases__loadmoreBtn:hover {
    background: var(--casesocb-loadmore-bg-hover, #171C66);
    color: var(--casesocb-loadmore-text-hover, #FFFFFF);
}


/* =========================================================
   RESPONSIVO
   ========================================================= */

@media (max-width: 1199px) {
    .casesocb-cases__grid {
        column-gap: 40px;
        row-gap: 36px;
    }
}

@media (max-width: 991px) {
    .casesocb-cases__grid {
        grid-template-columns: 1fr;
        row-gap: 34px;
    }
}

/* Mobile */
@media (max-width: 767px) {
    .casesocb-cases__card {
        flex-direction: column;
        gap: 14px;
    }

    .casesocb-cases__media {
        max-width: 100%;
    }

    .casesocb-cases__img {
        height: 200px;
        border-radius: 16px;
        object-position: top;
    }

    .casesocb-cases__itemTitle {
        font: normal normal 700 16px/20px "Intro Regular";
    }

    .casesocb-cases__loadmore {
        margin-top: 36px;
    }

    .casesocb-cases__loadmoreBtn {
        width: 100%;
        max-width: 320px;
    }
}

.casesocb-card-case {
    border: 0;
}

.casesocb-card-case .casesocb-card-image {
    position: relative;
}

.casesocb-card-case .casesocb-card-image img {
    width: 100%;
    max-height: 178px;
    height: 178px;
    object-fit: cover;
    display: block;
}

.casesocb-card-case .casesocb-categoria {
    position: absolute;
    left: 50%;
    bottom: -18px;
    transform: translateX(-50%);
    background: #CFB4FF;
    padding: 8px 12px;
    border-radius: 2px;
    white-space: nowrap;
}

.casesocb-card-case .casesocb-card-body {
    padding-top: 2rem;
}

.casesocb-card-case .casesocb-card-title {
    font-size: 1.15rem;
    font-weight: 700;
    margin-bottom: .75rem;
}

.casesocb-card-case .casesocb-card-text {
    color: #6c757d;
    font-size: .95rem;
    line-height: 1.5;
}

.casesocb-card-case .casesocb-card-footer {
    background: transparent;
    border-top: 0;
    padding-top: 0;
}

.casesocb-card-case .casesocb-info {
    display: flex;
    justify-content: space-between;
    align-items: center;
    color: #171c66;
    font: normal normal normal 12px / 15px "Inter";
}

.casesocb-card-case .casesocb-info span {
    display: flex;
    align-items: center;
    gap: .35rem;
    display: -webkit-box;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 1;
    overflow: hidden;
}

.casesocb-card-case .casesocb-info .casesocb-info-localizacao {
    max-width: 80%;
}

.casesocb-card-case .casesocb-info .casesocb-info-ano {

}

.botao-filtro-cases,
.total-resultado-item-cases {
    padding-left: 16px;
}

/* Mobile */
/* Apenas no mobile */
@media (max-width: 767px) {
    .row-filtros-mobile {
        display: flex;
        align-items: center; /* Alinha verticalmente ao centro */
    }

    .row-filtros-mobile > div:first-child {
        flex: 0 0 30%;
        max-width: 30%;
    }

    .row-filtros-mobile > div:last-child {
        flex: 0 0 70%;
        max-width: 70%;
        display: flex;
        align-items: center;
        justify-content: flex-end; /* Alinha o texto à direita */
    }

    .botao-filtro-cases {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 8px;

        width: 100%;
        height: 40px;

        border: 1px solid #e0e0e0;
        border-radius: 5px;
        background: #fff;

        color: #171c66;
        font-size: 14px;
        font-weight: 500;
        cursor: pointer;
    }
}

.offcanvas-bottom {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    height: 85vh;
    background: #fff;
    border-radius: 20px 20px 0 0;
    transform: translateY(100%);
    transition: transform .3s ease;
    z-index: 9999;
    padding: 10px 30px 30px 30px;
}

.offcanvas-bottom.active {
    transform: translateY(0);
}

.offcanvas-backdrop {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.4);
    display: none;
    z-index: 9998;
}

.offcanvas-backdrop.active {
    display: block;
}

.offcanvas-body {
    padding: 0px;
}

/* Esconde por padrão (desktop) */
.fechar-filtro-mobile {
    display: none;
}

/* Exibe apenas no mobile */
@media (max-width: 767px) {
    .fechar-filtro-mobile {
        display: block;
    }
}
@media (max-width: 767px) {
    #filtroLateral {
        display: none;
    }
}
@media (max-width: 767px) {
    .offcanvas-body .mod-casesocb__section--filtro-lateral {
        border: none;
        background: #fff;
    }
}

.offcanvas-handle {
    width: 50px;
    height: 7px;
    background: #e0e0e0;
    border-radius: 10px;
    margin: 12px auto 8px;
    cursor: grab;
}

/* Melhora o comportamento no mobile */
@media (max-width: 767px) {
    .offcanvas-bottom {
        touch-action: none;
        transition: transform .3s ease;
    }
}

#loading-busca {
    text-align: center !important;
    font-style: normal !important;
    font-variant: normal !important;
    font-weight: normal !important;
    font-size: 18px !important;
    line-height: 16px !important;
    font-family: "Inter" !important;
    letter-spacing: 0;
    color: #00166B;
    opacity: 1;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center;
    align-items: center;
    padding: 30px;
    background-color: #ffffff;
    border-radius: 20px;
}

#loading-busca img {
    width: 150px !important;
    margin-bottom: 50px;
}

#loading-busca #loading-text {
    flex: 100% !important;
}

.mod-casesocb__filtros .casesocb-itens-selecionadas {
    margin-left: 5px;
    background: #171c66;
    padding: 2px 6px;
    border-radius: 50%;
    color: #ffffff;
}

.mod-casesocb__accordion-item button {
    font: normal normal bold 16px/20px "Intro Regular";
    letter-spacing: 0px;
    color: #171C66;
}

.casesocb-featured__cat .titulo-categoria-slide {
    color: #7C38F5!important;
    background: #CFB4FF!important;
}