/*--------------------------------------------------*/
/* 0. GERAL */
/*--------------------------------------------------*/

main#lp > section:not(#banner) {
    overflow: visible;
}

/* Garante que imagens não estourem containers */
img {
    max-width: 100%;
    height: auto;
}

/*--------------------------------------------------*/
/* 1. BANNER */
/*--------------------------------------------------*/

#banner {
    /* Altura dinâmica para mobile (evita cortar em telas pequenas) */
    min-height: 50vh; 
    height: auto;
    width: 100%;
    background: no-repeat center;
    background-size: cover;
    background-position-x: center;
    display: flex;
    align-items: center;
}

#banner .container {
    height: 100%;
    width: 100%;
    display: flex;
    justify-content: center;
}

#banner .container-banner {
    display: flex;
    text-align: center;
    flex-direction: column;
    gap: 15px;
    justify-content: center;
    align-items: center;
    max-width: 800px;
    width: 100%;
    padding: 60px 20px;
    margin: auto;
    color: white;
    border-radius: 15px;
}

#banner h1 {
    font-size: 2.5rem;
    line-height: 1.2;
}

.container-header {
    max-width: 600px;
    width: 100%;
    padding-bottom: 30px;
    margin: auto;
    text-align: center;
}

.container-header p {
    margin-bottom: 15px;
}

/* Responsividade Banner */
@media (max-width: 999px) {
    #banner {
        min-height: 40vh;
    }

    #banner h1 {
        font-size: 1.8rem;
        line-height: 1.3;
    }

    #banner .container-banner {
        padding: 40px 20px;
    }
}

/*--------------------------------------------------*/
/* 2. SEARCH PROCEDURES (BOX FLUTUANTE) */
/*--------------------------------------------------*/

.search-procedures {
    position: relative;
    width: 90%;
    max-width: 1200px;
    min-height: 120px;
    margin: -60px auto 0; /* Margem negativa para "flutuar" sobre o banner */
    padding: 30px 40px;
    background-color: var(--blue);
    color: white;
    border-radius: 15px;
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    gap: 20px;
    z-index: 10;
}

.search-procedures span.filter-name {
    font-size: 18px;
    font-weight: 500;
    text-align: center;
}

.search-procedures form#filter-form {
    display: flex;
    gap: 15px;
    align-items: center;
    flex-wrap: wrap;
    justify-content: center;
    width: 100%;
}

/* Ajustes Select2 dentro da busca */
.search-procedures .select2-container {
    min-width: 200px;
    width: 100% !important;
}

/* Responsividade Search Box */
@media (max-width: 999px) {
    .search-procedures {
        width: 100%;
        margin: 0; /* Remove flutuação no mobile */
        border-radius: 0;
        padding: 40px 20px;
        box-shadow: none;
    }
    
    .search-procedures form#filter-form {
        flex-direction: column;
        align-items: stretch;
    }

    .search-procedures form#filter-form > div,
    .search-procedures form#filter-form > button {
        width: 100%;
    }
}

/* Estilo base do botão */
.button, button:not(.select2-selection__clear) {
    padding: 15px 25px;
    border-radius: 10px;
    height: 48px;
    box-sizing: border-box;
    cursor: pointer;
    border: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/*--------------------------------------------------*/
/* 3. TOP PROCEDURES */
/*--------------------------------------------------*/

/*--------------------------------------------------*/
/* 3. TOP PROCEDURES (ACCORDION GRID) */
/*--------------------------------------------------*/

#procedures {
    text-align: center;
    padding: 60px 0;
    background-color: #fff;
}

/* Container Principal */
.custom-accordion {
    max-width: 1100px; /* Aumentei para caber 2 colunas confortavelmente */
    margin: 0 auto;
    text-align: left;
    display: grid; /* Mágica do Grid */
    grid-template-columns: 1fr; /* Padrão Mobile: 1 coluna */
    gap: 20px; /* Espaço entre os itens */
}

/* Regra para Telas Grandes (Tablet e Desktop) */
@media (min-width: 768px) {
    .custom-accordion {
        grid-template-columns: repeat(2, 1fr); /* 2 Colunas de tamanhos iguais */
        align-items: start; /* Importante: Impede que o item vizinho estique quando um abre */
    }
}

/* Item Wrapper (A Caixa) */
.procedure-item-wrapper {
    background-color: #fff;
    border: 1px solid rgba(0, 27, 64, 0.15);
    border-radius: 10px;
    overflow: hidden;
    transition: all 0.3s ease;
    height: fit-content; /* Garante que a caixa tenha o tamanho do conteúdo */
}

.procedure-item-wrapper:hover {
    box-shadow: 0 8px 20px rgba(0, 27, 64, 0.1); /* Sombra um pouco mais forte no hover */
    border-color: var(--blue);
}

/* --- TÍTULO CLICÁVEL (.question) --- */
#procedures .question {
    font-size: 1.1rem;
    font-weight: 700;
    padding: 20px 25px;
    margin: 0;
    color: var(--blue);
    background-color: #fff;
    cursor: pointer;
    position: relative;
    transition: all 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

/* Estado Ativo */
#procedures .question.active {
    background-color: var(--blue);
    color: #fff;
}

/* --- SETA --- */
#procedures .question::after {
    content: "";
    display: block;
    width: 1.2rem;
    height: 1.2rem;
    /* Ícone Chevron Azul */
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23001B40'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
    background-size: contain;
    background-repeat: no-repeat;
    transition: transform 0.3s ease, filter 0.3s ease;
    flex-shrink: 0;
}

/* Seta Branca quando ativo */
#procedures .question.active::after {
    transform: rotate(180deg);
    filter: brightness(0) invert(1);
}

/* --- CONTEÚDO (.answercont / .answer) --- */
#procedures .answercont {
    background-color: #f8f9fa;
    border-top: 1px solid transparent;
}

#procedures .answer {
    padding: 25px;
    color: #555;
    font-size: 1rem;
    line-height: 1.6;
}

/* Botão Interno */
.procedure-action {
    margin-top: 15px;
    text-align: right;
}

#procedures .button-simple {
    color: var(--blue);
    font-weight: 700;
    text-decoration: none;
    font-size: 14px;
    border-bottom: 2px solid transparent;
    transition: all 0.2s;
    display: inline-block;
}

#procedures .button-simple:hover {
    border-bottom-color: var(--blue);
    opacity: 0.8;
}

/*--------------------------------------------------*/
/* 4. HOW IT WORKS */
/*--------------------------------------------------*/

#how {
    background-color: #f4f5ff;
    display: flex;
    box-shadow: 1px 1px 10px rgba(55, 128, 196, 0.2);
    padding: 60px 0; 
}

#how ul.steps {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: center;
    gap: 30px; /* Gap Desktop */
    padding: 0;
    margin: 0;
    list-style: none;
}

#how ul.steps li {
    display: flex;
    align-items: center;
    flex-direction: column;
    justify-content: center;
    text-align: center;
    gap: 15px;
    width: 200px; /* Largura Desktop */
}

/* Container da Imagem (Bolinha) */
#how ul.steps li .img-container {
    background-color: var(--blue);
    border-radius: 50%;
    padding: 20px;
    width: 100px;
    height: 100px;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: transform 0.3s ease;
}

#how ul.steps li:hover .img-container {
    transform: translateY(-5px);
}

#how ul.steps li .img-container img {
    width: 45px;
    height: 45px;
    object-fit: contain;
}

#how ul.steps li p {
    margin: 0;
    line-height: 1.4;
}

#how ul.steps li p:first-of-type {
    font-weight: 700;
    color: var(--blue);
    text-transform: uppercase;
    font-size: 14px;
}

/* Mobile: 2 itens por linha */
@media (max-width: 768px) {
    #how ul.steps {
        gap: 15px;
    }

    #how ul.steps li {
        /* 50% menos metade do gap */
        width: calc(50% - 7.5px); 
    }

    #how ul.steps li .img-container {
        width: 80px;
        height: 80px;
        padding: 15px;
    }

    #how ul.steps li .img-container img {
        width: 35px;
        height: 35px;
    }

    #how ul.steps li p {
        font-size: 14px;
        padding: 0 5px;
    }
}

/*--------------------------------------------------*/
/* 5. DESTINATIONS */
/*--------------------------------------------------*/

#front-page .destinations-box {
    display: grid;
    /* Grid responsivo automático */
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 20px;
    justify-content: center;
    padding: 0 20px;
}

#front-page .destinations-box .destination {
    height: 400px;
    width: 100%;
    border-radius: 10px;
    overflow: hidden;
    position: relative;
    max-width: 100%;
}

/*--------------------------------------------------*/
/* 6. CONTACT & FORM */
/*--------------------------------------------------*/

#contact {
    padding: 60px 0;
}

#contact .container-header {
    text-align: left;
    margin-bottom: 30px;
}

/* Formulário */
#contact-form {
    display: flex;
    width: 100%;
    flex-direction: column !important;
    min-width: 0;
}

#contact-form .button {
    width: 100%;
    max-width: 250px; /* Limite no desktop */
}

/* Inputs e Labels */
#contact-form label {
    margin: 10px 0 5px 0;
    color: var(--blue);
    font-size: 14px;
}

#contact-form input,
#contact-form textarea {
    background-color: #E9E1CA;
    padding: 12px;
    border: 1px solid transparent; /* Borda transparente evita pulo no focus */
    border-radius: 5px;
    width: 100%;
    display: block;
    font-size: 16px; /* Tamanho seguro para mobile */
}

#contact-form input::placeholder, 
#contact-form textarea::placeholder {
    color: var(--blue);
    opacity: 0.5;
}

#contact-form .obs {
    font-size: 12px;
    color: #a49561;
    margin: 15px 0;
    line-height: 1.4;
}

/* Mobile Contact */
@media (max-width: 768px) {
    #contact .container-header {
        text-align: center;
    }
    
    #contact .container-buttons {
        display: flex;
        flex-direction: column;
        align-items: center;
        gap: 15px;
        margin-bottom: 40px;
    }

    #contact-form .button {
        max-width: 100%; /* Botão full width no mobile */
    }
}

/*--------------------------------------------------*/
/* 7. FEEDBACKS */
/*--------------------------------------------------*/

#feedbacks {
    background-color: #f4f5ff;
    padding: 60px 0;
}

#feedbacks .container {
    max-width: 1200px;
    margin: 0 auto;
    text-align: center;
    padding: 0 20px;
}

#feedbacks .container-header {
    margin-bottom: 40px;
}

#feedbacks .feedbacks-box {
    display: flex;
    justify-content: center;
    gap: 20px;
    flex-wrap: wrap;
}

#feedbacks .feedback {
    position: relative;
    background: rgba(219, 195, 75, 0.2);
    padding: 25px;
    border-radius: 10px;
    /* Responsividade via Flexbox */
    flex: 1 1 300px; /* Base 300px, cresce e encolhe */
    max-width: 400px;
    box-shadow: 4px 0px 5px rgba(97, 88, 37, 0.1);
    text-align: left;
}

/* Triângulo do balão */
#feedbacks .feedback::after {
    content: "";
    position: absolute;
    bottom: -15px;
    left: 20px;
    width: 0;
    height: 0;
    border-left: 15px solid transparent;
    border-right: 15px solid transparent;
    border-top: 15px solid rgba(219, 195, 75, 0.2);
}

#feedbacks .feedback span {
    font-weight: bold;
    display: block;
    color: var(--blue);
}

#feedbacks .stars {
    color: var(--golden);
    margin: 5px 0 15px;
    font-size: 1.5rem;
}

/* Ajustes Finais Mobile */
@media (max-width: 768px) {
    #feedbacks .feedbacks-box {
        flex-direction: column;
        align-items: center;
    }
    
    #feedbacks .feedback {
        width: 100%;
        max-width: 100%;
    }
}