/* =========================================================
   MOD CASESOCB – CASES (LISTAGEM / VEJA MAIS)
   Regras:
   - Grid 2 colunas (bloco)
   - Cada item (card): imagem esquerda 50% + conteúdo direita 50%
   - Imagem com tamanho visual padrão: 255x178 (desktop)
   - Imagem sempre com a mesma altura (preenche com cover)
   - Mobile: card vira vertical e imagem com 200px de altura
   - Line-clamp por variáveis
   - Badge "Premiado" (pill) por variáveis
   ========================================================= */

.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;
}

/* 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 16px/22px "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-size: 1.15rem;
    }

    .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: #d8ecff;
    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;
}