/* Estilos para botões responsivos */
.button-container-responsive {
    display: flex;
    flex-wrap: wrap;
    gap: 5%;
    justify-content: center;
    margin-top: 2rem;
    margin-bottom: 2rem;
}

/* Botões maiores por padrão */
.button-container-responsive .btn {
    padding: 0.5rem 1rem;
    font-size: 1rem;
    min-width: 130px;
    margin-bottom: 8px;
    font-weight: bold;
}

/* Em telas médias, mantém um tamanho razoável */
@media (max-width: 992px) {
    .button-container-responsive .btn {
        padding: 0.4rem 0.8rem;
        font-size: 0.95rem;
        min-width: 120px;
    }

    .background {
        background-position: 25% center !important;
    }
}

/* Em telas pequenas, ajusta para tamanhos menores mas ainda bem visíveis */
@media (max-width: 576px) {
    .button-container-responsive .btn {
        padding: 0.35rem 0.7rem;
        font-size: 0.9rem;
        min-width: 100px;
    }

    .button-container-responsive .btn i {
        margin-right: 4px !important;
    }

    /* Em telas muito pequenas, esconde o texto e deixa só o ícone */
    @media (max-width: 400px) {
        .button-container-responsive .btn span {
            display: none;
        }

        /* Aumenta o ícone para compensar a ausência de texto */
        .button-container-responsive .btn i {
            font-size: 1.4rem;
            margin-right: 0 !important;
        }
    }

    .background {
        background-position: 25% center !important;
    }
}

/* Espaçamento adicional após o card */
.card {
    margin-bottom: 3rem !important;
    /* Espaçamento grande entre o card e o footer */
}

/* Ajustes gerais de responsividade */
.card-body {
    padding: 1.25rem;
    /* Aumentado um pouco */
}

@media (max-width: 768px) {
    .card-body {
        padding: 1rem;
    }

    .form-control,
    .form-select,
    .input-group {
        font-size: 0.9rem;
    }

    /* Ajusta os containers das bolsas, matriculas, etc */
    .bolsas-bg,
    .matricula-bg,
    #contratante-bg {
        padding: 0.35rem 0.5rem;
        width: 100%;
        margin-bottom: 10px;
    }

    /* Torna linhas responsivas */
    .row {
        margin-left: -5px;
        margin-right: -5px;
    }

    .col,
    .col-md-1,
    .col-md-2,
    .col-md-3,
    .col-md-4,
    .col-md-5,
    .col-md-6,
    .col-md-7,
    .col-md-8,
    .col-md-9,
    .col-md-10,
    .col-md-11,
    .col-md-12 {
        padding-left: 5px;
        padding-right: 5px;
    }
}

/* Ajuste para tabelas responsivas em telas pequenas */
.table-responsive {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* Ajustes para os modais em telas pequenas */
@media (max-width: 576px) {
    .modal-dialog {
        margin: 0.5rem;
    }

    .modal-header {
        padding: 0.5rem 1rem;
    }

    .modal-body {
        padding: 1rem;
    }

    .modal-footer {
        padding: 0.5rem;
    }
}

/* Ajuste para campos de entrada em telas pequenas */
@media (max-width: 576px) {

    /* Faz com que os inputs ocupem toda a largura disponível em telas pequenas */
    #aulasPrevistas,
    #plantaoPrevisto,
    #aulasExtras,
    #totalPrevisto,
    #vagasPrevistas,
    #periodo,
    #tempoAula,
    #inicioAulas,
    #fimAulas,
    #limiteBolsas,
    #valorIntegral,
    #mensalidade,
    #parcelas,
    #matricula,
    #sexo,
    #nacionalidade,
    #cpf,
    #rg,
    #cep,
    #dataNascimento,
    #estadoCivil,
    #profissao,
    #numero,
    #uf {
        max-width: none;
        width: 100%;
    }

    /* Especialmente para campos de texto */
    #cidade,
    #bairro,
    #endereco,
    #nomeAluno,
    #nomeContratante,
    #nomeContratante_visivel,
    #identificador_visivel,
    #dataCadastro,
    #tituloCurso,
    #razaoSocial,
    #prestacaoServico {
        max-width: none;
        width: 100%;
    }
}

/* Faz com que todos os containeres ocupem a largura total em telas pequenas */
@media (max-width: 768px) {

    .d-flex.col-md-4,
    .d-flex.col-md-5,
    .col-md-3 {
        flex: 0 0 100%;
        max-width: 100%;
        margin-bottom: 10px;
    }

    /* Força a quebra de linha em telas pequenas */
    .row {
        flex-wrap: wrap;
    }
}

/* Ajuste específico para o footer */
footer {
    margin-top: 4rem !important;
    padding: 1.5rem 0;
}