/* Layout responsivo da home. Cores, dados e consultas preservados do Polos. */
/* Adaptacoes da home do Afiliados sobre a folha atual do Polos.
   As medidas dos cards, fontes e botoes sao as da base do Polos. */
body.home-polo .container,
body.home-polo img {
    max-width: 100%;
}

/* O Hub usa um envoltorio extra; a grade interna segue o Bootstrap do Polos. */
body.home-polo .listaGraduacoes > .row > .xpt {
    display: block !important;
    width: 100%;
    max-width: none;
    overflow: visible !important;
}

body.home-polo .listaGraduacoes > .row > .xpt::after {
    display: table;
    clear: both;
    content: " ";
}

body.home-polo header .navbar {
    margin: 10px 0;
}

body.home-polo header .navbar-header {
    flex-shrink: 0;
}

body.home-polo header .wdLogo {
    width: 230px;
    height: auto;
}

body.home-polo header .navAlgn {
    top: auto;
    min-height: 0;
}

body.home-polo header .dropdown-menu {
    max-width: min(480px, calc(100vw - 32px));
}

body.home-polo header .dropdown-menu a {
    white-space: normal;
    overflow-wrap: anywhere;
}

body.home-polo .home-course-banners {
    padding: 0 16px;
}

body.home-polo .home-course-banners > .container {
    width: 100% !important;
    max-width: 1320px;
    padding: 0;
}

body.home-polo .home-course-banners .carousel-inner img {
    display: block;
    width: 100%;
    height: auto;
}

/* Busca superior: uma linha no tablet/desktop e respiro em ambos os lados. */
@media (min-width: 721px) {
    body.home-polo .busca-topo-polo {
        padding: 16px 0;
        min-height: 80px;
    }
    body.home-polo .busca-topo-polo > .container {
        width: 100%;
        max-width: 1170px;
        padding: 0 20px;
    }
    body.home-polo .bg-local2.busca-topo-polo > .container > .row.d-flex {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        gap: 20px;
        margin: 0;
    }
    body.home-polo .busca-topo-polo .row.d-flex::before,
    body.home-polo .busca-topo-polo .row.d-flex::after {
        display: none;
    }
    body.home-polo .busca-topo-polo .row.d-flex > .txtLocal {
        flex: 0 1 42%;
        width: auto;
        margin: 0;
        padding: 0 !important;
        font-size: clamp(12px, 1.3vw, 16px);
        text-align: left !important;
        justify-content: flex-start;
    }
    body.home-polo .busca-topo-polo .row.d-flex > .ocultabusca {
        flex: 1 1 0;
        min-width: 0;
        padding: 0;
    }
    body.home-polo .busca-topo-polo .row.d-flex > .txtLocalWhats {
        flex: 0 1 140px;
        min-width: 0;
        padding: 0;
    }
    body.home-polo .busca-topo-polo .row.d-flex > .txtLocalWhats img {
        max-width: 100%;
        height: auto;
    }
}
body.home-polo #formBusca2,
body.home-polo #formBusca4,
body.home-polo #formBusca5,
body.home-polo #formBusca6 {
    position: relative;
    width: 100%;
}

body.home-polo .autoBusca2,
body.home-polo .autoBusca4,
body.home-polo .autoBusca5,
body.home-polo .autoBusca6 {
    left: 0;
    width: 100% !important;
    max-height: 320px;
    overflow-y: auto;
    overflow-wrap: anywhere;
}

body.home-polo .listaTiposCursos .xpt {
    max-width: 100%;
    flex-wrap: wrap;
}

body.home-polo .listaTiposCursos .width-content {
    max-width: 100%;
}

body.home-polo footer .container > .row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 24px;
    margin: 0;
}

body.home-polo footer .container > .row::before,
body.home-polo footer .container > .row::after {
    content: none;
}

body.home-polo footer .container > .row > div {
    float: none;
    width: auto;
    min-width: 0;
}

body.home-polo footer a,
body.home-polo footer .txtrodape {
    overflow-wrap: anywhere;
}

body.home-polo .bgFoot {
    position: static;
}

body.home-polo #modalOverlay {
    padding: 16px;
}

body.home-polo #modalOverlay .modal-container {
    max-height: calc(100vh - 32px);
    max-height: calc(100dvh - 32px);
    overflow-y: auto;
}

body.home-polo #modalOverlay .row {
    max-height: none;
    margin: 0;
}

body.home-polo #modalOverlay .form-control-modal {
    font-size: 16px;
}

body.home-polo #modalLoginAluno .modal-title {
    
    font-size: 20px;
    text-align: left;
}

body.home-polo #modalLoginAluno .modal-dialog {
    max-width: calc(100% - 20px);
    margin-right: auto;
    margin-left: auto;
}

@media (min-width: 768px) {
    body.home-polo footer .container > .row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 1200px) {
    body.home-polo footer .container > .row {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

@media (max-width: 1199px) {
    body.home-polo header .navFlex {
        display: block;
    }

    body.home-polo header .navbar-header {
        display: flex;
        float: none;
        align-items: center;
        justify-content: space-between;
        width: 100%;
    }

    body.home-polo header .navbar-toggle {
        display: block;
        position: static;
        float: none;
        flex-shrink: 0;
        z-index: auto;
        margin: 8px 0 8px 16px;
    }

    body.home-polo header .navbar-collapse {
        position: static;
        float: none;
        width: 100%;
        max-height: none;
        margin: 0;
        padding: 0;
        border: 0;
        box-shadow: none;
        
    }

    body.home-polo header .navbar-collapse.collapse:not(.in) {
        display: none !important;
    }

    body.home-polo header .navbar-collapse.collapse.in {
        display: block !important;
        overflow: visible !important;
    }

    body.home-polo header .navAlgn {
        position: static;
        display: flex;
        float: none;
        align-items: stretch !important;
        flex-direction: column !important;
        margin: 12px 0;
    }

    body.home-polo header .navAlgn > li,
    body.home-polo header .dropdown-menu > li {
        float: none;
        width: 100%;
    }

    body.home-polo header .navAlgn a {
        text-align: left;
    }

    body.home-polo header .navAlgn > li > a {
        min-height: 44px;
    }

    body.home-polo header .dropdown-menu {
        position: static;
        float: none;
        width: 100%;
        max-width: 100%;
        border: 0;
        box-shadow: none;
    }

    body.home-polo header .areaAdmtxt {
        position: static;
        display: block !important;
        margin: 8px 0;
        padding: 10px 15px;
        text-align: left;
    }

    body.home-polo header .btnSouAluno {
        margin: 8px 0;
        text-align: center;
    }

    body.home-polo .bg-local2 > .container > .row.d-flex {
        flex-wrap: wrap;
    }

    body.home-polo .bg-local2 .txtLocal {
        justify-content: center;
        width: 100%;
        padding: 12px !important;
        text-align: center !important;
    }
}

@media (max-width: 991px) {
    body.home-polo .listaGraduacoes > .row > .xpt > .box {
        width: 100%;
    }
}

@media (max-width: 720px) {
    body.home-polo .home-course-banners {
        padding: 0 12px;
    }

    body.home-polo .home-course-banners > .container {
        max-width: 485px;
    }

    body.home-polo .home-course-banners #myCarouselMobile .item.active:not(.left):not(.right) {
        transform: none;
        perspective: none;
        backface-visibility: visible;
    }

    body.home-polo .listaTiposCursos hr {
        margin: 24px 0 !important;
    }

    body.home-polo .btnDuvidas {
        width: 100%;
        max-width: 360px;
        margin-right: 0;
    }
}

/* Nas telas medias, usa a disposicao interna que ja funciona no mobile. */
@media (min-width: 720px) and (max-width: 1199px) {
    body.home-polo .bgBoxCur .wdLatBox,
    body.home-polo .bgBoxCur .wdEadBox,
    body.home-polo .bgBoxCur .wdHorasBox,
    body.home-polo .bgBoxCur .wdMesesBox {
        float: left;
        width: 50% !important;
        height: 30px;
        margin-bottom: 10px !important;
    }

    body.home-polo .bgBoxCur .wdHorasBoxExt {
        float: left;
        width: 80% !important;
        height: 30px;
        margin-bottom: 10px !important;
    }

    body.home-polo .bgBoxCur .mt15 {
        float: none !important;
        margin-top: 15px;
    }

    body.home-polo .bgBoxCur .wdPrecBox,
    body.home-polo .bgBoxCur .wdPrecBox2 {
        float: left;
        width: 50% !important;
        height: 30px;
    }

    body.home-polo .bgBoxCur .btnInscBoxNew,
    body.home-polo .bgBoxCur .btnInscBoxNewExt {
        width: 50% !important;
        margin-top: 0 !important;
        margin-left: 20px;
    }

    body.home-polo .bgBoxCur .btnInscBoxNewExt {
        margin-top: 5px !important;
    }
}

/* Categorias de pos: espaco minimo e nova linha antes de ultrapassar a secao. */
@media (min-width: 769px) and (max-width: 992px) {
    body.home-polo .listaAreasCategoriasNew .flexDivSpacDesk {
        display: flex;
        flex-wrap: wrap;
        justify-content: flex-start;
        gap: 12px;
        padding-bottom: 10px;
    }

    body.home-polo .listaAreasCategoriasNew .colCat {
        flex: 0 0 130px;
        min-width: 0;
        margin: 0;
    }

    body.home-polo .listaAreasCategoriasNew .colCat > a {
        display: block;
        height: 100%;
    }

    body.home-polo .listaAreasCategoriasNew .colCat > a > div {
        width: 100%;
        min-width: 0;
        margin-bottom: 0;
    }
}

/* Blocos apos as categorias: mesmos respiros dos cards de Graduacao. */
body.home-polo .home-cursos-pos,
body.home-polo .home-cursos-livres,
body.home-polo .home-tipos-cursos {
    padding-right: 15px;
    padding-left: 15px;
}

body.home-polo .home-cursos-row,
body.home-polo .home-tipos-cursos > .row {
    width: 100%;
    margin-right: 0;
    margin-left: 0;
}

/* Evita somar a margem da linha com o respiro da secao de atendimento. */
body.home-polo .home-tipos-cursos > .row {
    margin-bottom: 0;
}

body.home-polo .home-tipos-cursos .listaTiposCursos hr {
    margin: 16px 0 !important;
}

body.home-polo .home-duvidas {
    padding: 24px 15px 30px;
}

body.home-polo .home-duvidas > .container {
    width: 100%;
    max-width: 1170px;
    padding: 0;
}

body.home-polo .home-duvidas > .container > .row {
    width: 100%;
    margin: 0;
}

body.home-polo .home-duvidas .listaDuvidas {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
}

body.home-polo .home-duvidas .listaDuvidas > br {
    display: none;
}

body.home-polo .home-duvidas .titListCurGrad {
    margin: 0 0 24px;
    padding: 0 !important;
    text-align: center;
}

body.home-polo .home-duvidas-banner {
    float: none;
    width: 100%;
    padding: 0;
}

body.home-polo .home-duvidas-banner > a {
    display: block;
    width: 100%;
}

body.home-polo .home-duvidas-banner img {
    width: 100%;
    max-width: 1140px;
    height: auto;
    margin: 0 auto;
}

body.home-polo .home-duvidas .home-duvidas-banner-mobile {
    display: none !important;
}

body.home-polo .home-duvidas .listaDuvidas > .mt-4 {
    float: none;
    width: 100%;
    margin-top: 24px;
    padding: 0;
}

body.home-polo .home-duvidas .listaDuvidas > .mt-4 > div {
    justify-content: center !important;
    flex-wrap: wrap;
    gap: 12px;
}

body.home-polo .home-duvidas .btnDuvidas {
    margin: 0;
}

@media (max-width: 720px) {
    body.home-polo .home-duvidas .home-duvidas-banner-desktop {
        display: none;
    }

    body.home-polo .home-duvidas .home-duvidas-banner-mobile {
        display: block !important;
    }

    body.home-polo .home-duvidas-banner .atendimentoImgMobile {
        max-width: 361px;
    }
}

/* A grade substitui o carrossel horizontal antigo apenas nestas duas listas. */
body.home-polo .home-cursos-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
    width: 100%;
    max-width: 100%;
    margin: 0;
    padding: 0;
    overflow: visible !important;
}

body.home-polo .home-cursos-grid::before,
body.home-polo .home-cursos-grid::after,
body.home-polo .home-cursos-grid .fundoBoxCursos::before,
body.home-polo .home-cursos-grid .fundoBoxCursos::after {
    display: none;
    content: none;
}

body.home-polo .home-cursos-grid > [class*="col-"] {
    float: none;
    width: auto !important;
    min-width: 0;
    max-width: 100%;
    margin: 0;
    padding: 0;
}

body.home-polo .home-cursos-grid .bgBoxCur,
body.home-polo .home-cursos-grid .bgBoxCurExt {
    display: flex;
    flex-direction: column;
    height: 100%;
    min-width: 0;
    min-height: 370px;
    margin-bottom: 0;
    
    border-radius: 10px;
}

body.home-polo .home-cursos-grid .imageCursBox {
    flex: 0 0 120px;
}

body.home-polo .home-cursos-grid .fundoBoxCursos {
    display: flex;
    flex: 1;
    flex-direction: column;
    min-width: 0;
}

body.home-polo .home-cursos-grid .fundoBoxCursos > .bgvideoAula {
    width: 100%;
    flex-shrink: 0;
}

body.home-polo .home-cursos-grid .wdtextTitCur {
    height: auto;
    min-height: 40px;
    overflow-wrap: break-word;
}

body.home-polo .home-cursos-grid .fundoBoxCursos > .col-lg-12 {
    float: none;
    width: 100%;
    min-width: 0;
}

body.home-polo .home-cursos-grid .fundoBoxCursos > .mt15 {
    margin-top: auto;
    padding-top: 15px;
}

body.home-polo .home-cursos-grid .wdPrecBox {
    float: none;
    width: 100% !important;
    height: auto;
}

/* O preco anterior fica acima do atual, como nos cards de Graduacao. */
body.home-polo .home-cursos-pos .wdPrecBox {
    flex-direction: column;
    align-items: flex-start !important;
    gap: 0 !important;
    white-space: normal !important;
}

body.home-polo .home-cursos-pos .detextValorBoxNew {
    order: 0;
}

body.home-polo .home-cursos-pos .detextValorBox2New {
    order: 1;
    font-size: 15px !important;
    line-height: 1.4 !important;
}

body.home-polo .home-cursos-pos .wdPrecBox > div {
    white-space: normal !important;
}

body.home-polo .home-cursos-grid .fundoBoxCursos > .d-flex,
body.home-polo .home-cursos-grid .fundoBoxCursos > .mt25 {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 20px;
}

body.home-polo .home-cursos-grid .textSaibaBoxNew,
body.home-polo .home-cursos-grid .textSaibaBoxNewExt {
    top: auto;
    bottom: auto;
    margin-right: 0;
}

body.home-polo .home-cursos-grid .btnInscBoxNew,
body.home-polo .home-cursos-grid .btnInscBoxNewExt {
    flex: 0 1 50%;
    width: 50% !important;
    min-width: 0;
    max-width: 130px;
    min-height: 40px;
    height: auto;
    margin-top: 0 !important;
    margin-left: 0;
    white-space: normal;
}

/* Acoes de Pos: o Saiba mais acompanha a altura e o alinhamento da inscricao. */
body.home-polo .home-cursos-pos .fundoBoxCursos > .d-flex {
    padding-bottom: 10px;
}

body.home-polo .home-cursos-pos .fundoBoxCursos > .d-flex > a.decorN {
    display: flex;
    flex: 1 1 0;
    align-items: center;
    min-width: 0;
    min-height: 40px;
}

body.home-polo .home-cursos-pos .textSaibaBoxNew {
    position: static;
    top: auto !important;
    bottom: auto !important;
    margin: 0;
}

body.home-polo .home-cursos-pos .btnInscBoxNew {
    margin-bottom: 0;
}

/* Tipos de cursos: imagens centralizadas, com tamanho legivel e limite. */
body.home-polo .home-tipos-grid {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    float: none;
    justify-content: center;
    gap: 24px;
    width: 100%;
    max-width: 360px;
    margin-right: auto !important;
    margin-left: auto !important;
    overflow: visible !important;
}

body.home-polo .home-tipos-grid > .width-content {
    float: none;
    width: 100% !important;
    min-width: 0;
    max-width: 100%;
}

body.home-polo .home-tipos-grid > .width-content > a {
    display: block;
    width: 100%;
    min-width: min(240px, 100%);
    max-width: 360px;
}

body.home-polo .home-tipos-grid img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0 auto;
    padding: 0;
}

@media (max-width: 767.98px) {
    body.home-polo .home-cursos-pos h3 {
        font-size: 20px;
        line-height: 1.1;
    }
}

@media (min-width: 768px) {
    body.home-polo .home-cursos-grid,
    body.home-polo .home-tipos-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    body.home-polo .home-tipos-grid {
        max-width: 744px;
    }
}

@media (min-width: 1200px) {
    body.home-polo .home-cursos-grid {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* Banner de Pos abaixo do titulo, com os mesmos arquivos usados em Polos. */
body.home-polo .home-banner-pos {
    width: 100%;
    max-width: 1170px;
    margin: 20px auto 30px;
    padding: 0 15px;
}

body.home-polo .home-banner-pos > a {
    display: block;
    width: 100%;
}

body.home-polo .home-banner-pos > a > img {
    display: block !important;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
}

body.home-polo .home-banner-pos-desktop {
    display: block !important;
}

body.home-polo .home-banner-pos-mobile {
    display: none !important;
}

@media (max-width: 720px) {
    body.home-polo .home-banner-pos-desktop {
        display: none !important;
    }

    body.home-polo .home-banner-pos-mobile {
        display: flex !important;
        justify-content: center;
    }
}

/* O carrossel do Polos possui uma camada container-fluid a mais. */
body.home-polo .home-course-banners > .container-fluid {
    padding: 0;
}
body.home-polo .home-course-banners .container {
    width: 100% !important;
    max-width: 1320px;
    margin: 0 auto;
    padding: 0;
}
body.home-polo .listaGraduacoes > .row {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 30px;
    margin: 0;
}
/* Os auxiliares do Bootstrap nao sao cards nem devem ocupar celulas. */
body.home-polo .listaGraduacoes > .row::before,
body.home-polo .listaGraduacoes > .row::after {
    display: none;
    content: none;
}
body.home-polo .listaGraduacoes > .row > .xpt {
    display: contents !important;
}
body.home-polo .listaGraduacoes > .row > .xpt::before,
body.home-polo .listaGraduacoes > .row > .xpt::after {
    display: none;
    content: none;
}
body.home-polo .listaGraduacoes > .row > .xpt > .box,
body.home-polo .listaGraduacoes > .row > .box {
    float: none;
    width: auto !important;
    min-width: 0;
    padding: 0;
}
body.home-polo .home-tipos-cursos .home-tipos-grid {
    max-width: 360px;
}
@media (max-width: 720px) {
    body.home-polo .home-course-banners .container { max-width: 485px; }
}
@media (min-width: 768px) {
    body.home-polo .listaGraduacoes > .row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    body.home-polo .home-tipos-cursos .home-tipos-grid { max-width: 744px; }
}
@media (min-width: 1200px) {
    body.home-polo .listaGraduacoes > .row { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
