.erro-campo {
    color: red;
}

@media(max-width:768px) {
    .swiper-slide {
        padding: 60px 0 20px 0;
    }
}

@media (min-width: 992px) {
    .swiper {
        height: 100vh !important;
    }

    .swiper p {
        max-width: 600px;
    }

}

/* Padrão Mobile: Gradiente de cima para baixo */
.overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(180deg,
            rgba(10, 20, 36, 0.98) 0%,
            rgba(10, 20, 36, 0.85) 60%,
            rgba(10, 20, 36, 0.2) 100%);
    z-index: 1;
}

/* Desktop: Gradiente da esquerda para a direita (Exatamente igual à imagem) */
@media (min-width: 992px) {
    .overlay {
        background: linear-gradient(90deg,
                rgba(10, 20, 36, 0.98) 0%,
                rgba(10, 20, 36, 0.95) 45%,
                rgba(10, 20, 36, 0.4) 80%,
                rgba(10, 20, 36, 0.1) 100%);
    }
}









/* Configurações Gerais / Reset de escopo para o componente */
.process-section {
    padding: 60px 20px;
    background-color: #ffffff;
    font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
}

.process-container {
    display: flex;
    flex-direction: column;
    gap: 40px;
    max-width: 100%;
    margin: 0 auto;
}

.process-step {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    flex: 1;
    position: relative;
}

/* Container do Ícone e Número */
.icon-wrapper {
    position: relative;
    margin-bottom: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* Círculo Azul */
.icon-circle {
    width: 70px;
    height: 70px;
    /*background-color: #0056b3;  Tom de azul aproximado da imagem */
    background-color: #fff;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 2;
}

.icon-circle img {
    width: 70px;
    height: 70px;
}

.step-icon {
    width: 32px;
    height: 32px;
    object-fit: contain;
}

/* Número da Etapa (Resolve o bug de alinhamento) */
.step-number {
    position: absolute;
    left: -35px;
    /* Joga o número para a esquerda sem afetar o centro do círculo */
    font-size: 24px;
    font-weight: bold;
    color: #adcbeb;
    /* Azul bem claro da imagem */
    user-select: none;
}

/* Textos */
.step-title {
    font-size: 16px;
    font-weight: 700;
    color: #0b1a30;
    /* Azul escuro/Preto do título */
    margin: 0 0 12px 0;
    line-height: 1.3;
    min-height: 42px;
    /* Garante alinhamento vertical se o título quebrar linha */
    display: flex;
    align-items: center;
    justify-content: center;
}

.step-description {
    font-size: 14px;
    color: #4a5568;
    /* Cinza da descrição */
    margin: 0;
    line-height: 1.5;
    max-width: 240px;
}

/* --- Layout Desktop (Telas acima de 992px) --- */
@media (min-width: 992px) {
    .process-container {
        flex-direction: row;
        justify-content: space-between;
        align-items: flex-start;
        gap: 20px;
    }

    /* Linhas pontilhadas ajustadas para não encavalar nos números */
    .process-step:not(:last-child)::after {
        content: '';
        position: absolute;
        top: 35px;
        /* Alinhado no meio vertical do círculo */
        left: calc(50% + 45px);
        /* Começa logo após o círculo azul atual */
        width: calc(100% - 105px);
        /* Encurta a linha para que termine antes do número da próxima etapa */
        height: 1px;
        border-top: 2px dashed #adcbeb;
        z-index: 1;
    }

    .process-step {

        padding: 0 28px;
    }


}















 /* Escopo da Seção */


                    /* Container do Grid */
                    .cards-grid-container {
                        display: grid;
                        grid-template-columns: repeat(1, 1fr);
                        /* 1 coluna no mobile */
                        gap: 15px;
                        max-width: 100%;
                        margin: 0 auto;
                    }

                    /* O Wrapper do Card */
                    .grid-card {
                        width: 100%;
                        overflow: hidden;
                        /* Garante que nada saia do limite do card */
                        position: relative;
                        /* Força o comportamento quadrado perfeito na própria div */
                        aspect-ratio: 1 / 1;
                    }

                    /* Configuração da Imagem dentro da Div */
                    .grid-card-img {
                        width: 100%;
                        height: 100%;
                        object-fit: cover;
                        display: block;
                    }

                    /* --- Breakpoints Responsivos --- */

                    /* Tablets (3 colunas) */
                    @media (min-width: 600px) {
                        .cards-grid-container {
                            grid-template-columns: repeat(3, 1fr);
                        }
                    }

                    /* Desktop (5 colunas) */
                    @media (min-width: 992px) {
                        .cards-grid-container {
                            grid-template-columns: repeat(5, 1fr);
                            gap: 18px;
                        }
                    }
















                     /* Customizações finas complementares ao Bootstrap */

    /* Estilização do Título e a barra azul abaixo dele */
    .advantages-main-title {
        color: #0b1a30;
        /* Azul escuro da imagem */
        font-size: 1.65rem;
        line-height: 1.3;
    }

    .advantages-main-title::after {
        content: '';
        position: absolute;
        bottom: 0;
        left: 50%;
        transform: translateX(-50%);
        width: 45px;
        height: 3px;
        background-color: #0056b3;
        /* Traço azul idêntico ao da imagem */
    }

    /* Alinha a barra à esquerda apenas no desktop */
    @media (min-width: 992px) {
        .advantages-main-title::after {
            left: 0;
            transform: none;
        }
    }

    /* Container fixo para as imagens/ícones não quebrarem o alinhamento vertical */
    .advantage-img-wrapper {
        height: 55px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .advantage-img-wrapper img {
        max-height: 100%;
        object-fit: contain;
    }

    /* Texto das Vantagens */
    .advantage-text {
        color: #0b1a30;
        font-size: 0.85rem;
        line-height: 1.4;
    }

    /* Divisórias verticais sutis entre os itens (Apenas de telas médias para cima) */
    @media (min-width: 768px) {
        .advantage-item.border-end-sm {
            border-right: 1px solid #e9ecef;
            /* Cinza bem suave */
        }
    }