:root {
    --tmv-layout-gap-x: 18px;
    --tmv-layout-gap-y: 28px;
    --tmv-layout-radius: 14px;
}

/* =========================================================
   TMV LAYOUT GLOBAL
   Padrão oficial baseado na Home:
   - Retrato: 7 cards completos no desktop
   - Paisagem: 5 cards completos no desktop
   - Nunca exibir metade de um card
   - Não atuar dentro do player nem em páginas individuais
   ========================================================= */

body.tmv-layout-catalogo {
    overflow-x: hidden !important;
}

body.tmv-layout-catalogo #contenedor,
body.tmv-layout-catalogo #dt_contenedor,
body.tmv-layout-catalogo .module,
body.tmv-layout-catalogo .module > .content,
body.tmv-layout-catalogo .module > .content.full,
body.tmv-layout-catalogo .module > .content.normal,
body.tmv-layout-catalogo .module > .content.full_width_layout {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

/* Remove qualquer reserva antiga de sidebar somente nas páginas de catálogo. */
body.tmv-layout-catalogo .module > .content.left,
body.tmv-layout-catalogo .module > .content.right {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
}

/* Grade comum. */
body.tmv-layout-catalogo .tmv-layout-grade {
    display: grid !important;
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;

    grid-auto-flow: row !important;
    grid-auto-columns: unset !important;

    gap: var(--tmv-layout-gap-y) var(--tmv-layout-gap-x) !important;
    align-items: start !important;
    justify-content: stretch !important;

    margin: 0 !important;
    padding: 12px 0 18px !important;

    overflow: visible !important;
    box-sizing: border-box !important;
}

/* Sete pôsteres completos. */
body.tmv-layout-catalogo .tmv-layout-grade-portrait {
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
}

/* Cinco cards paisagem completos. */
body.tmv-layout-catalogo .tmv-layout-grade-landscape {
    grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
}

/* Neutraliza larguras antigas do DooPlay e dos plugins. */
body.tmv-layout-catalogo .tmv-layout-grade > article.item,
body.tmv-layout-catalogo .tmv-layout-grade > .item,
body.tmv-layout-catalogo .tmv-layout-grade > .result-item,
body.tmv-layout-catalogo .tmv-layout-grade > .tmv-carousel-card,
body.tmv-layout-catalogo .tmv-layout-grade > .tmv-card-auto {
    display: block !important;
    float: none !important;
    clear: none !important;
    flex: none !important;

    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    height: auto !important;

    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
}

/* Pôster retrato oficial 2:3. */
body.tmv-layout-catalogo .tmv-layout-poster-vertical .poster,
body.tmv-layout-catalogo .tmv-layout-poster-vertical .image,
body.tmv-layout-catalogo .tmv-layout-poster-vertical .thumbnail,
body.tmv-layout-catalogo .tmv-layout-poster-vertical .poster-container,
body.tmv-layout-catalogo .tmv-layout-poster-vertical .poster-wrapper,
body.tmv-layout-catalogo .tmv-layout-poster-vertical .tmv-card-media-host {
    position: relative !important;
    display: block !important;

    width: 100% !important;
    height: auto !important;
    aspect-ratio: 2 / 3 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;
    border-radius: var(--tmv-layout-radius) !important;
    box-sizing: border-box !important;
}

/* Card paisagem oficial 16:9. */
body.tmv-layout-catalogo .tmv-layout-poster-landscape .poster,
body.tmv-layout-catalogo .tmv-layout-poster-landscape .image,
body.tmv-layout-catalogo .tmv-layout-poster-landscape .thumbnail,
body.tmv-layout-catalogo .tmv-layout-poster-landscape .poster-container,
body.tmv-layout-catalogo .tmv-layout-poster-landscape .poster-wrapper,
body.tmv-layout-catalogo .tmv-layout-poster-landscape .tmv-card-media-host {
    position: relative !important;
    display: block !important;

    width: 100% !important;
    height: auto !important;
    aspect-ratio: 16 / 9 !important;

    margin: 0 !important;
    padding: 0 !important;

    overflow: hidden !important;
    border-radius: var(--tmv-layout-radius) !important;
    box-sizing: border-box !important;
}

/* Imagens sempre preenchem a caixa sem distorção. */
body.tmv-layout-catalogo .tmv-layout-poster-vertical .poster img,
body.tmv-layout-catalogo .tmv-layout-poster-vertical .image img,
body.tmv-layout-catalogo .tmv-layout-poster-vertical .thumbnail img,
body.tmv-layout-catalogo .tmv-layout-poster-vertical .poster-container img,
body.tmv-layout-catalogo .tmv-layout-poster-vertical .poster-wrapper img,
body.tmv-layout-catalogo .tmv-layout-poster-vertical .tmv-card-media-host > img,
body.tmv-layout-catalogo .tmv-layout-poster-landscape .poster img,
body.tmv-layout-catalogo .tmv-layout-poster-landscape .image img,
body.tmv-layout-catalogo .tmv-layout-poster-landscape .thumbnail img,
body.tmv-layout-catalogo .tmv-layout-poster-landscape .poster-container img,
body.tmv-layout-catalogo .tmv-layout-poster-landscape .poster-wrapper img,
body.tmv-layout-catalogo .tmv-layout-poster-landscape .tmv-card-media-host > img {
    position: absolute !important;
    inset: 0 !important;

    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: 100% !important;
    max-height: none !important;

    margin: 0 !important;
    padding: 0 !important;

    object-fit: cover !important;
    object-position: center center !important;
}

/* Owl: largura calculada pelo JS; nunca deixar conteúdo escapar lateralmente. */
body.tmv-layout-catalogo .tmv-layout-owl {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
}

body.tmv-layout-catalogo .tmv-layout-owl .owl-wrapper-outer {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
}

body.tmv-layout-catalogo .tmv-layout-owl .owl-item {
    box-sizing: border-box !important;
}

body.tmv-layout-catalogo .tmv-layout-owl .owl-item > article.item,
body.tmv-layout-catalogo .tmv-layout-owl .owl-item > .item {
    width: 100% !important;
    max-width: none !important;
    min-width: 0 !important;
    padding-left: 9px !important;
    padding-right: 9px !important;
    box-sizing: border-box !important;
}

/* Títulos abaixo das capas. */
body.tmv-layout-catalogo .tmv-layout-grade .data,
body.tmv-layout-catalogo .tmv-layout-owl .data {
    width: 100% !important;
    padding-top: 10px !important;
    box-sizing: border-box !important;
}

body.tmv-layout-catalogo .tmv-layout-grade .data h3,
body.tmv-layout-catalogo .tmv-layout-owl .data h3 {
    margin: 0 0 4px !important;
    min-height: 37px !important;

    font-size: 14px !important;
    line-height: 1.32 !important;

    white-space: normal !important;
    overflow: hidden !important;

    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
}

/* Responsividade das grades. */
@media (max-width: 1280px) {
    body.tmv-layout-catalogo .tmv-layout-grade-portrait {
        grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
    }

    body.tmv-layout-catalogo .tmv-layout-grade-landscape {
        grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 1024px) {
    body.tmv-layout-catalogo .tmv-layout-grade-portrait {
        grid-template-columns: repeat(5, minmax(0, 1fr)) !important;
    }

    body.tmv-layout-catalogo .tmv-layout-grade-landscape {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 760px) {
    body.tmv-layout-catalogo .tmv-layout-grade {
        gap: 20px 12px !important;
    }

    body.tmv-layout-catalogo .tmv-layout-grade-portrait {
        grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    }

    body.tmv-layout-catalogo .tmv-layout-grade-landscape {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 480px) {
    body.tmv-layout-catalogo .tmv-layout-grade-portrait,
    body.tmv-layout-catalogo .tmv-layout-grade-landscape {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

/* =========================================================
   SMART TV FALLBACK 1.0.5
   Replica a estrutura estável usada nas páginas de gêneros.
   ========================================================= */

/* TVs antigas sem suporte confiável a aspect-ratio. */
@supports not (aspect-ratio: 2 / 3) {
    body.tmv-layout-catalogo .tmv-layout-poster-vertical .poster,
    body.tmv-layout-catalogo .tmv-layout-poster-vertical .image,
    body.tmv-layout-catalogo .tmv-layout-poster-vertical .thumbnail,
    body.tmv-layout-catalogo .tmv-layout-poster-vertical .poster-container,
    body.tmv-layout-catalogo .tmv-layout-poster-vertical .poster-wrapper,
    body.tmv-layout-catalogo .tmv-layout-poster-vertical .tmv-card-media-host {
        height: 0 !important;
        padding-top: 150% !important;
    }

    body.tmv-layout-catalogo .tmv-layout-poster-landscape .poster,
    body.tmv-layout-catalogo .tmv-layout-poster-landscape .image,
    body.tmv-layout-catalogo .tmv-layout-poster-landscape .thumbnail,
    body.tmv-layout-catalogo .tmv-layout-poster-landscape .poster-container,
    body.tmv-layout-catalogo .tmv-layout-poster-landscape .poster-wrapper,
    body.tmv-layout-catalogo .tmv-layout-poster-landscape .tmv-card-media-host {
        height: 0 !important;
        padding-top: 56.25% !important;
    }
}

/* Fallback para navegadores de TV sem CSS Grid completo. */
@supports not (display: grid) {
    body.tmv-layout-catalogo .tmv-layout-grade {
        display: flex !important;
        flex-wrap: wrap !important;
        margin-left: -9px !important;
        margin-right: -9px !important;
        gap: 0 !important;
    }

    body.tmv-layout-catalogo .tmv-layout-grade > article.item,
    body.tmv-layout-catalogo .tmv-layout-grade > .result-item,
    body.tmv-layout-catalogo .tmv-layout-grade > .tmv-carousel-card,
    body.tmv-layout-catalogo .tmv-layout-grade > .tmv-card-auto {
        padding: 12px 9px 18px !important;
    }

    body.tmv-layout-catalogo .tmv-layout-grade-portrait > article.item,
    body.tmv-layout-catalogo .tmv-layout-grade-portrait > .result-item,
    body.tmv-layout-catalogo .tmv-layout-grade-portrait > .tmv-carousel-card,
    body.tmv-layout-catalogo .tmv-layout-grade-portrait > .tmv-card-auto {
        flex: 0 0 14.285714% !important;
        width: 14.285714% !important;
        max-width: 14.285714% !important;
    }

    body.tmv-layout-catalogo .tmv-layout-grade-landscape > article.item,
    body.tmv-layout-catalogo .tmv-layout-grade-landscape > .result-item,
    body.tmv-layout-catalogo .tmv-layout-grade-landscape > .tmv-carousel-card,
    body.tmv-layout-catalogo .tmv-layout-grade-landscape > .tmv-card-auto {
        flex: 0 0 20% !important;
        width: 20% !important;
        max-width: 20% !important;
    }

    @media (max-width: 1280px) {
        body.tmv-layout-catalogo .tmv-layout-grade-portrait > article.item,
        body.tmv-layout-catalogo .tmv-layout-grade-portrait > .result-item { flex-basis: 16.666667% !important; width: 16.666667% !important; max-width: 16.666667% !important; }
        body.tmv-layout-catalogo .tmv-layout-grade-landscape > article.item,
        body.tmv-layout-catalogo .tmv-layout-grade-landscape > .result-item { flex-basis: 25% !important; width: 25% !important; max-width: 25% !important; }
    }

    @media (max-width: 1024px) {
        body.tmv-layout-catalogo .tmv-layout-grade-portrait > article.item,
        body.tmv-layout-catalogo .tmv-layout-grade-portrait > .result-item { flex-basis: 20% !important; width: 20% !important; max-width: 20% !important; }
        body.tmv-layout-catalogo .tmv-layout-grade-landscape > article.item,
        body.tmv-layout-catalogo .tmv-layout-grade-landscape > .result-item { flex-basis: 33.333333% !important; width: 33.333333% !important; max-width: 33.333333% !important; }
    }

    @media (max-width: 760px) {
        body.tmv-layout-catalogo .tmv-layout-grade-portrait > article.item,
        body.tmv-layout-catalogo .tmv-layout-grade-portrait > .result-item { flex-basis: 33.333333% !important; width: 33.333333% !important; max-width: 33.333333% !important; }
        body.tmv-layout-catalogo .tmv-layout-grade-landscape > article.item,
        body.tmv-layout-catalogo .tmv-layout-grade-landscape > .result-item { flex-basis: 50% !important; width: 50% !important; max-width: 50% !important; }
    }

    @media (max-width: 480px) {
        body.tmv-layout-catalogo .tmv-layout-grade-portrait > article.item,
        body.tmv-layout-catalogo .tmv-layout-grade-portrait > .result-item,
        body.tmv-layout-catalogo .tmv-layout-grade-landscape > article.item,
        body.tmv-layout-catalogo .tmv-layout-grade-landscape > .result-item { flex-basis: 50% !important; width: 50% !important; max-width: 50% !important; }
    }
}


/* =========================================================
   RESTAURAÇÃO FILMES E SÉRIES 1.0.7
   Essas páginas voltam ao layout original do DooPlay com sidebar.
   Mesmo que uma classe antiga permaneça em cache, não são convertidas
   em grade TMV nem têm a coluna lateral removida.
   ========================================================= */
body.post-type-archive-movies.tmv-layout-catalogo .tmv-layout-grade,
body.post-type-archive-tvshows.tmv-layout-catalogo .tmv-layout-grade,
body.page-filmes.tmv-layout-catalogo .tmv-layout-grade,
body.page-series.tmv-layout-catalogo .tmv-layout-grade {
    display: initial !important;
    width: initial !important;
    max-width: initial !important;
    overflow: initial !important;
    grid-template-columns: none !important;
    gap: initial !important;
}

body.post-type-archive-movies.tmv-layout-catalogo .tmv-layout-grade > article.item,
body.post-type-archive-tvshows.tmv-layout-catalogo .tmv-layout-grade > article.item,
body.page-filmes.tmv-layout-catalogo .tmv-layout-grade > article.item,
body.page-series.tmv-layout-catalogo .tmv-layout-grade > article.item {
    width: initial !important;
    min-width: initial !important;
    max-width: initial !important;
    float: initial !important;
    margin: initial !important;
}
