/* =========================
   RESET
========================= */

* {
    margin: 0;
    padding: 0;

    box-sizing: border-box;
}


html {
    scroll-behavior: smooth;
}


body {
    font-family: Arial, Helvetica, sans-serif;

    background: #111111;

    color: #ffffff;
}



/* =========================
   INTRO
========================= */

.cursos-intro {

    padding: 100px 20px 70px;

    text-align: center;

    background:
        radial-gradient(
            circle at center,
            #272727 0%,
            #111111 55%
        );
}


.cursos-intro span {

    display: block;

    margin-bottom: 20px;

    color: #f5bd3d;

    font-size: 11px;

    font-weight: 600;

    letter-spacing: 4px;
}


.cursos-intro h1 {

    margin-bottom: 18px;

    font-size: clamp(
        45px,
        7vw,
        75px
    );

    line-height: 1;

    letter-spacing: -4px;
}


.cursos-intro p {

    max-width: 600px;

    margin: 0 auto;

    color: #999999;

    font-size: 17px;

    line-height: 1.6;
}



/* =========================
   CURSOS
========================= */

.cursos {

    max-width: 1250px;

    margin: 0 auto;

    padding: 50px 30px 110px;
}



/* =========================
   TÍTULO
========================= */

.titulo-cursos {

    display: flex;

    align-items: flex-end;

    justify-content: space-between;

    gap: 30px;

    margin-bottom: 45px;
}


.titulo-cursos span {

    display: block;

    margin-bottom: 10px;

    color: #f5bd3d;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 3px;
}


.titulo-cursos h2 {

    font-size: 34px;

    letter-spacing: -1.5px;
}


.titulo-cursos > p {

    max-width: 380px;

    color: #7f7f7f;

    font-size: 14px;

    line-height: 1.6;

    text-align: right;
}



/* =========================
   LISTA
========================= */

.lista-cursos {

    width: 100%;

    display: grid;

    /* min(100%, ...) impede que a coluna fique maior
       que o container em telas estreitas */
    grid-template-columns:
        repeat(
            auto-fit,
            minmax(min(100%, 280px), 1fr)
        );

    gap: 22px;

    justify-content: center;
}


/* Desktop: 6 colunas, cada card ocupa 2
   = 3 cards por linha, com os 2 últimos centralizados.
   Fica só aqui: fora desse intervalo o span e as
   posições fixas criavam colunas implícitas e
   estouravam a largura da página. */

@media (min-width: 1101px) {

    .lista-cursos {

        grid-template-columns:
            repeat(
                6,
                minmax(0, 1fr)
            );
    }


    .card-curso {
        grid-column: span 2;
    }


    .card-curso:nth-last-child(2) {
        grid-column: 2 / span 2;
    }


    .card-curso:last-child {
        grid-column: 4 / span 2;
    }

}



/* =========================
   CARD
========================= */

.card-curso {
    position: relative;

    min-width: 0;

    display: flex;

    flex-direction: column;

    overflow: hidden;

    background:
        linear-gradient(
            145deg,
            #1a2027,
            #12171c
        );

    border: 1px solid #343c46;

    border-radius: 16px;

    box-shadow:
        0 14px 35px rgba(0, 0, 0, 0.24);

    transition:
        transform 0.25s ease,
        border-color 0.25s ease,
        box-shadow 0.25s ease;
}


.card-curso::before {

    content: "";

    position: absolute;

    top: 0;
    left: 10%;

    width: 80%;
    height: 2px;

    background:
        linear-gradient(
            90deg,
            transparent,
            rgba(0, 217, 130, 0.8),
            rgba(245, 189, 61, 0.85),
            transparent
        );

    z-index: 2;

    opacity: 0.85;
}


.card-curso:hover {

    transform: translateY(-6px);

    border-color: rgba(245, 189, 61, 0.5);

    box-shadow:
        0 22px 45px rgba(0, 0, 0, 0.35);
}



/* =========================
   CABEÇALHO DO CURSO
========================= */

.cabecalho-curso {

    position: relative;

    height: 155px;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

    background: #0d1217;
}


.imagem-curso {

    width: 100%;

    height: 100%;

    display: block;

    object-fit: contain;

    object-position: center;

    padding: 10px 14px;

    background: #0d1217;

    opacity: 0.96;

    transition:
        transform 0.35s ease,
        opacity 0.35s ease;
}


.card-curso:hover .imagem-curso {

    transform: scale(1.04);

    opacity: 1;
}



/* =========================
   STATUS
========================= */

.status-curso {

    position: absolute;

    top: 12px;
    right: 12px;

    padding: 7px 10px;

    color: #ffffff;

    background:
        rgba(8, 12, 16, 0.86);

    border: 1px solid
        rgba(255, 255, 255, 0.14);

    border-radius: 20px;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 1px;

    text-transform: uppercase;

    backdrop-filter: blur(8px);

    -webkit-backdrop-filter: blur(8px);
}



/* =========================
   CONTEÚDO
========================= */

.conteudo-curso {

    flex: 1;

    display: flex;

    flex-direction: column;

    padding: 20px;
}


.conteudo-curso h3 {

    margin-bottom: 9px;

    color: #ffffff;

    font-size: 20px;

    font-weight: 700;

    line-height: 1.3;

    letter-spacing: -0.45px;
}


.descricao-curso {

    display: -webkit-box;

    margin: 0;

    color: #a2a8ae;

    font-size: 14px;

    line-height: 1.6;

    overflow: hidden;

    line-clamp: 2;
    -webkit-line-clamp: 2;

    -webkit-box-orient: vertical;
}



/* =========================
   INFORMAÇÕES
========================= */

/* =========================
   INFORMAÇÕES DO CURSO
========================= */

.informacoes-curso {

    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );

    gap: 10px;

    margin-top: 20px;
}


.info-item {

    min-width: 0;

    padding: 12px 11px;

    display: flex;

    align-items: flex-start;

    gap: 8px;

    background:
        rgba(255, 255, 255, 0.035);

    border: 1px solid
        rgba(255, 255, 255, 0.08);

    border-radius: 10px;
}


.icone-info {

    flex-shrink: 0;

    color: #f5bd3d;

    font-size: 17px;

    line-height: 1.2;

    margin-top: 1px;
}


.info-item small {

    display: block;

    margin-bottom: 4px;

    color: #7f8790;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 0.9px;
}


.info-item strong {

    display: block;

    overflow: hidden;

    color: #ffffff;

    font-size: 14px;

    font-weight: 600;

    line-height: 1.2;

    text-overflow: ellipsis;

    white-space: nowrap;
}



/* =========================
   INSTRUTORES
========================= */

.instrutores-curso {

    margin-top: 17px;

    padding-top: 14px;

    border-top: 1px solid #293039;
}


.titulo-instrutores {

    margin-bottom: 9px;
}


.titulo-instrutores span {

    color: #7b838b;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: 1.1px;
}


.lista-instrutores {

    display: flex;

    align-items: center;

    justify-content: space-between;

    gap: 10px;
}


.avatares-instrutores {

    display: flex;

    align-items: center;
}


.instrutor-avatar {

    width: 31px;

    height: 31px;

    margin-left: -7px;

    display: flex;

    align-items: center;

    justify-content: center;

    overflow: hidden;

    color: #ffffff;

    background: #171d24;

    border: 2px solid #11161b;

    border-radius: 50%;

    font-size: 9px;

    font-weight: 700;
}


.instrutor-avatar:first-child {

    margin-left: 0;
}


.imagem-instrutor {

    width: 100%;

    height: 100%;

    display: block;

    object-fit: cover;
}


.instrutores-restantes {

    color: #f5bd3d;

    background: #20272e;
}


.quantidade-instrutores {

    overflow: hidden;

    color: #858d95;

    font-size: 10px;

    text-align: right;

    text-overflow: ellipsis;

    white-space: nowrap;
}



/* =========================
   RODAPÉ DO CARD
========================= */

.rodape-curso {

    padding: 0 20px 20px;
}



/* =========================
   BOTÃO
========================= */

.botao-curso {

    width: 100%;

    min-height: 40px;

    padding: 11px 14px;

    display: flex;

    align-items: center;

    justify-content: center;

    color: #111111;

    background: #f5bd3d;

    border-radius: 9px;

    font-size: 12px;

    font-weight: 700;

    letter-spacing: 0.3px;

    text-decoration: none;

    transition:
        background 0.2s ease,
        transform 0.2s ease,
        box-shadow 0.2s ease;
}


.botao-curso:hover {

    background: #ffffff;

    transform: translateY(-2px);

    box-shadow:
        0 7px 18px rgba(245, 189, 61, 0.15);
}



/* =========================
   ESTADOS
========================= */

.vagas-esgotadas,
.curso-matriculado {

    width: 100%;

    min-height: 40px;

    padding: 10px 12px;

    display: flex;

    align-items: center;

    justify-content: center;

    border-radius: 9px;

    font-size: 11px;

    font-weight: 600;

    text-align: center;
}


.vagas-esgotadas {

    color: #999999;

    background: #222830;

    border: 1px solid #353d47;
}


.curso-matriculado {

    color: #111111;

    background: #f5bd3d;
}



/* =========================
   CARREGANDO
========================= */

.estado-cursos {

    grid-column: 1 / -1;

    min-height: 240px;

    display: flex;

    flex-direction: column;

    align-items: center;

    justify-content: center;

    gap: 15px;

    color: #777777;

    border: 1px solid #292f36;

    border-radius: 12px;
}


.carregando {

    width: 25px;

    height: 25px;

    border: 2px solid #353d47;

    border-top-color: #f5bd3d;

    border-radius: 50%;

    animation: carregando 0.8s linear infinite;
}


@keyframes carregando {

    to {
        transform: rotate(360deg);
    }

}



/* =========================
   INFORMAÇÕES
========================= */

.informacoes-cursos {

    padding: 100px 7%;

    border-top: 1px solid #292929;

    background: #0d0d0d;
}


.informacoes-titulo {

    max-width: 700px;

    margin: 0 auto 45px;

    text-align: center;
}


.informacoes-titulo span {

    display: block;

    margin-bottom: 15px;

    color: #f5bd3d;

    font-size: 10px;

    font-weight: 600;

    letter-spacing: 3px;
}


.informacoes-titulo h2 {

    margin-bottom: 15px;

    font-size: clamp(
        30px,
        5vw,
        45px
    );

    letter-spacing: -2px;
}


.informacoes-titulo p {

    color: #888888;

    font-size: 14px;

    line-height: 1.7;
}



/* =========================
   LISTA DE INFORMAÇÕES
========================= */

.lista-informacoes {

    max-width: 1000px;

    margin: 0 auto;

    display: grid;

    grid-template-columns:
        repeat(
            2,
            1fr
        );

    gap: 15px;
}


.info-card {

    padding: 25px;

    display: flex;

    gap: 20px;

    background: #171d24;

    border: 1px solid #353d47;

    border-radius: 12px;

    transition:
        border-color 0.2s ease,
        transform 0.2s ease;
}


.info-card:hover {

    border-color: #f5bd3d;

    transform: translateY(-2px);
}


.info-numero {

    flex-shrink: 0;

    color: #f5bd3d;

    font-size: 11px;

    font-weight: 600;

    letter-spacing: 1px;
}


.info-card h3 {

    margin-bottom: 8px;

    font-size: 16px;
}


.info-card p {

    color: #888888;

    font-size: 13px;

    line-height: 1.6;
}



/* =========================
   CTA
========================= */

.cta {

    padding: 100px 20px;

    text-align: center;

    border-top: 1px solid #292929;

    background:
        radial-gradient(
            circle at center,
            #202020 0%,
            #111111 60%
        );
}


.cta > span {

    display: block;

    margin-bottom: 18px;

    color: #f5bd3d;

    font-size: 11px;

    font-weight: 600;

    letter-spacing: 4px;
}


.cta h2 {

    margin-bottom: 15px;

    font-size: clamp(
        32px,
        5vw,
        50px
    );

    letter-spacing: -2px;
}


.cta p {

    max-width: 550px;

    margin: 0 auto 30px;

    color: #999999;

    font-size: 15px;

    line-height: 1.7;
}


.cta-botoes {

    display: flex;

    align-items: center;

    justify-content: center;

    gap: 12px;
}


.botao-principal,
.botao-secundario {

    padding: 13px 22px;

    border-radius: 25px;

    font-size: 13px;

    font-weight: 600;

    text-decoration: none;

    transition:
        background 0.2s ease,
        border-color 0.2s ease,
        transform 0.2s ease;
}


.botao-principal {

    color: #111111;

    background: #f5bd3d;
}


.botao-principal:hover {

    background: #ffffff;

    transform: translateY(-2px);
}


.botao-secundario {

    color: #ffffff;

    border: 1px solid #555555;
}


.botao-secundario:hover {

    border-color: #ffffff;

    transform: translateY(-2px);
}



/* =========================
   RESPONSIVO
========================= */

@media (max-width: 800px) {

    .cursos-intro {

        padding: 80px 5% 55px;
    }


    .cursos {

        padding: 35px 5% 80px;
    }


    .titulo-cursos {

        align-items: flex-start;

        flex-direction: column;

        margin-bottom: 35px;
    }


    .titulo-cursos > p {

        max-width: 500px;

        text-align: left;
    }


    .lista-cursos {

        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );

        justify-content: center;
    }


    .informacoes-cursos {

        padding: 80px 5%;
    }


    .lista-informacoes {

        grid-template-columns: 1fr;
    }


    .cta {

        padding: 80px 5%;
    }

}


@media (max-width: 600px) {

    .lista-cursos {

        grid-template-columns: 1fr;

        justify-content: center;
    }


    .card-curso {

        width: 100%;

        max-width: 360px;

        margin: 0 auto;
    }


    .cabecalho-curso {

        height: 175px;
    }


    .conteudo-curso {

        padding: 19px;
    }


    .rodape-curso {

        padding: 0 19px 19px;
    }


    .cta-botoes {

        flex-direction: column;
    }


    .botao-principal,
    .botao-secundario {

        width: 100%;

        max-width: 300px;

        text-align: center;
    }

}


@media (max-width: 480px) {

    .cursos-intro {

        padding-top: 65px;
    }


    .cursos-intro h1 {

        font-size: 42px;

        letter-spacing: -2px;
    }


    .cursos-intro p {

        font-size: 15px;
    }


    .titulo-cursos h2 {

        font-size: 29px;
    }


    .informacoes-titulo h2 {

        letter-spacing: -1px;
    }


    .info-card {

        padding: 20px;

        gap: 15px;
    }


    .informacoes-curso {

        gap: 6px;
    }


    .info-item {

        padding: 8px 6px;
    }


    .info-item small {

        font-size: 7.5px;
    }


    .info-item strong {

        font-size: 10.5px;
    }

}