/* Identidade compartilhada do site publico, aprovada na pagina inicial. */
:root {
    --primary: #86B817;
    --dark: #2C3E50;
    --tropical-hover: #98C33A;
    --tropical-lime: #86B817;
    --tropical-soft: #F0FDF4;
    --tropical-sand: #FAF9F6;
    --cards-section-background: #F1F4F6;
}

body {
    color: #59666F;
    background-color: #FFFFFF;
}
.site-page { font-family: 'Heebo', sans-serif; }
.site-page h1, .site-page h2, .site-page h3,
.site-page h4, .site-page h5, .site-page h6 {
    font-family: 'Nunito', sans-serif;
    font-weight: 800;
}
::-webkit-scrollbar { width: 8px; }
::-webkit-scrollbar-thumb { background: #4275A9; border-radius: 10px; }
::-webkit-scrollbar-thumb:hover { background: #2F547F; }

h1, h2, h3, h4, h5, h6 { color: var(--dark); }
a { color: var(--primary); }
.text-primary { color: var(--primary) !important; }
a:hover { color: var(--tropical-hover); }
.bg-primary { background-color: var(--primary) !important; }
.btn-primary { background-color: var(--tropical-lime) !important; }
.border-primary, .btn-primary { border-color: var(--primary) !important; }
.btn-primary, a.btn-primary { color: #FFFFFF !important; }
.btn-primary:hover, .btn-primary:active {
    color: #FFFFFF !important;
    background-color: var(--tropical-hover) !important;
    border-color: var(--tropical-hover) !important;
}
.btn-outline-primary {
    color: var(--primary);
    border-color: var(--primary);
}
.btn-outline-primary:hover {
    color: #FFFFFF !important;
    background-color: var(--primary);
    border-color: var(--primary);
}

/* Componentes comuns: preserva estados de erro, foco e controles de icones. */
.btn-primary:not(.btn-square):not(.btn-sm-square):not(.btn-lg-square),
.btn-outline-primary { border-radius: 999px; }
.form-control, .form-select { border-radius: 10px; }
#buscarPontos, #buscarParceiros { border-radius: 10px; }
#paginacao .btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border-radius: 50%;
    line-height: 1;
    vertical-align: middle;
}
.input-group > .form-control:not(:last-child),
.input-group > .form-select:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group > .btn:last-child { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.form-check-input:checked { background-color: var(--primary); border-color: var(--primary); }
.page-link { color: #567500; }
.page-item.active .page-link { background-color: var(--primary); border-color: var(--primary); }
.hero-header .breadcrumb a { color: #B8E34A; }
.hero-header .breadcrumb a:hover { color: #FFFFFF; }
.site-listing main { background-color: var(--cards-section-background); }
.site-listing .section-title.bg-white { background-color: var(--cards-section-background) !important; }
.info-card, .wizard-content, .service-item, .team-item, .testimonial-item {
    border: 1px solid #E1E8DF;
    border-radius: 16px;
    box-shadow: 0 4px 16px rgba(36, 51, 45, .06);
}
.team-item { overflow: hidden; }
.partner-info-panel { border-radius: 16px; }
.partner-contact-actions .btn {
    width: 40px;
    height: 40px;
    border: 0;
    border-radius: 50%;
    background-color: #EDF4DA;
    color: #567500;
}
.partner-contact-actions .btn:hover {
    background-color: var(--primary);
    color: #FFFFFF;
}
.info-value, .descricao-card { color: #59666F; }
.info-label { color: var(--dark); }
.image-wrapper { border-radius: 16px; }
.site-about main > .container-xxl:first-child img { border-radius: 20px; }
.site-partner-registration .wizard-steps li.active,
.site-partner-registration .wizard-steps li.completed { color: #567500; }
.site-partner-registration .wizard-steps li.active::before,
.site-partner-registration .wizard-steps li.completed::before,
.site-partner-registration .nav-pills .nav-link.active,
.site-partner-registration #seg-tab.active {
    background-color: var(--primary);
    border-color: var(--primary);
    color: #FFFFFF;
}
.site-partner-registration .upload-area { border-color: #86B817; color: #59666F; border-radius: 12px; }
.site-partner-registration .upload-area:hover { background-color: #F3F7E9; }
.site-partner-registration .wizard-step-aside { background-color: #F1F4F6; color: #59666F; }
.site-partner-registration .wizard-step-aside h3 { color: var(--dark); }
.site-partner-registration .wizard-step-aside > i { color: var(--primary); }

/* Login e cadastro mantem sua estrutura e passam a usar a mesma identidade. */
.site-auth { height: auto; min-height: 100vh; }
.site-auth .limiter { height: auto; min-height: 100vh; min-height: 100svh; padding: 32px 20px; overflow: visible; }
.site-auth .wrap-login {
    max-width: 440px;
    padding: clamp(24px, 5vw, 40px);
    border: 1px solid #E1E8DF;
    border-radius: 20px;
    box-shadow: 0 8px 24px rgba(20, 20, 31, .15);
}
.site-auth .logo img { max-width: 100%; height: auto; max-height: 100px; }
.site-auth input:not([type="checkbox"]):not([type="radio"]) {
    width: 100%;
    min-width: 0;
    color: var(--dark);
    border: 1px solid #68737D;
    border-radius: 10px;
    font-family: inherit;
}
.site-auth input[type="checkbox"] { accent-color: var(--primary); }
.site-auth form button[type="submit"] {
    background-color: var(--primary);
    color: #FFFFFF;
    border-radius: 999px;
    min-height: 48px;
    font-family: 'Nunito', sans-serif;
    font-weight: 700;
}
.site-auth form button[type="submit"]:hover { background-color: var(--tropical-hover); }
.site-auth .form-footer { color: #59666F; }
.site-auth form a { color: #567500; }

/* Documentos: leitura confortavel, sem alterar o conteudo legal. */
.site-document { max-width: 900px; margin: auto; padding: clamp(20px, 4vw, 48px); line-height: 1.7; }
.site-document nav { display: flex; flex-wrap: wrap; gap: 12px 24px; padding-bottom: 24px; border-bottom: 1px solid #E1E8DF; margin-bottom: 32px; }
.site-document nav a { margin: 0; }
.site-document a { color: #567500; overflow-wrap: anywhere; }
.site-document h1 { font-size: clamp(1.75rem, 4vw, 2.5rem); }
.site-document h2 { font-size: 1.375rem; }
.site-document .box { background-color: #F1F4F6; border: 1px solid #E1E8DF; border-radius: 16px; padding: 24px; }
.site-document main button {
    background-color: var(--primary);
    color: #FFFFFF;
    border: 0;
    border-radius: 999px;
    min-height: 44px;
    padding: 12px 20px;
    font: inherit;
    cursor: pointer;
}
.site-document main button:hover { background-color: var(--tropical-hover); }

/* O banner preserva a fotografia e a sobreposicao original de style.css. */
.hero-header h1, .hero-header p { text-shadow: 0 2px 12px rgba(0, 0, 0, .35); }
.hero-header #campoCidade { padding-right: 7.5rem !important; }
#campoCidade, #fiquePorDentro { color: var(--dark); }
.hero-header .position-relative.w-75 { max-width: 720px; }

.navbar-light .navbar-nav .nav-link.active,
.navbar-light .navbar-nav .nav-link:hover { color: #B8E34A !important; }
.navbar-light .navbar-nav .nav-link.active::before,
.navbar-light .navbar-nav .nav-link:hover::before { background-color: #B8E34A; }
.sticky-top.navbar-light .navbar-nav .nav-link.active,
.sticky-top.navbar-light .navbar-nav .nav-link:hover { color: var(--primary) !important; }
.sticky-top.navbar-light .navbar-nav .nav-link.active::before,
.sticky-top.navbar-light .navbar-nav .nav-link:hover::before { background-color: var(--primary); }

.site-home main > .container-xxl:first-child img { border-radius: 20px; }
.site-home main > .container-xxl:first-child .btn { border-radius: 999px; }
.destination img { border-radius: 12px; }
.home-routes-section {
    background-color: var(--cards-section-background);
    border-radius: 0;
}
.section-heading {
    text-align: center;
    margin-bottom: 3rem;
}
.section-heading h2 { margin: 0; }
.section-more-action {
    justify-content: flex-end;
    margin-top: .75rem;
}
#roteiros-container > :last-child > .mb-4 {
    margin-bottom: 0 !important;
}
.section-more-link {
    width: auto;
    max-width: 100%;
    height: auto;
    min-height: 44px;
    padding: .5rem 0;
    gap: .5rem;
    flex-shrink: 0;
    color: #526879 !important;
    background-color: transparent;
    border: 0;
    border-radius: 0;
    font-size: .9375rem;
    font-weight: 600;
    text-align: center;
    text-decoration: none;
}
.section-more-link:hover {
    color: #2C3E50 !important;
    background-color: transparent;
    text-decoration: none;
}
.home-partners-section {
    background-color: var(--cards-section-background);
    border-radius: 0;
    padding-bottom: 3rem !important;
}
.section-title.bg-white { background-color: #FFFFFF !important; }
.home-routes-section .section-title.bg-white,
.home-partners-section .section-title.bg-white { background-color: var(--cards-section-background) !important; }
.package-item {
    overflow: hidden;
    border: 1px solid #E1E8DF;
    border-radius: 16px;
    box-shadow: 0 4px 16px rgba(36, 51, 45, .06);
}
.package-item > .border-bottom {
    color: #59666F;
    background-color: #FFFFFF;
    border-color: #DEE2E6 !important;
}
.package-item > .border-bottom .border-end {
    border-color: #DEE2E6 !important;
}
.package-item > .border-bottom small:last-child { border-right: 0 !important; }
.package-item .limitar-linhas { text-align: left; }
.package-item .btn-primary {
    color: #FFFFFF !important;
    background-color: #86B817 !important;
    border: 1px solid #86B817 !important;
    padding-top: .6rem;
    padding-bottom: .6rem;
    font-size: .875rem;
    min-height: 44px;
}
.package-item .btn-primary:hover,
.package-item .btn-primary:active {
    color: #FFFFFF !important;
    background-color: #98C33A !important;
    border-color: #92BF2E !important;
}

/* Fotografia e sobreposicao originais herdadas de style.css. */
.site-home .booking {
    border: 0;
    border-radius: 0;
    display: flex;
    align-items: center;
    min-height: 0;
    padding-block: clamp(48px, 6.75vw, 92px) !important;
    background-size: cover;
    background-position: center;
}
.booking .text-white { color: #FFFFFF !important; }
.booking .form-floating > label { color: var(--dark) !important; }
.booking .form-control,
.booking .form-control:focus,
.booking #mensagem,
.booking #mensagem:focus {
    color: var(--dark);
    background-color: #FFFFFF !important;
    border-color: #687D6D;
    border-radius: 10px;
}
.booking .btn-outline-light {
    color: #FFFFFF;
    background-color: var(--tropical-lime);
    border-color: var(--primary);
    border-radius: 999px;
}
.booking .btn-outline-light:hover,
.booking .btn-outline-light:active {
    color: #FFFFFF;
    background-color: var(--tropical-hover);
    border-color: var(--tropical-hover);
}

.footer.bg-dark {
    color: #F5F5F5 !important;
    background-color: #14141F !important;
    border-top: 0;
    margin-top: 0 !important;
    padding-top: 1.5rem !important;
}
.footer .text-white,
.footer .btn.btn-link,
.footer .copyright a { color: #FFFFFF !important; }
.footer .btn.btn-link:hover, .footer .copyright a:hover {
    color: var(--tropical-hover) !important;
    text-decoration: none;
    letter-spacing: normal;
}
.footer .btn.btn-social {
    color: #F5F5F5 !important;
    border-color: #FFFFFF;
    width: 44px;
    height: 44px;
}
.footer .btn.btn-social:hover {
    color: var(--primary) !important;
    background-color: #F5F5F5;
}
.footer .copyright, .footer .footer-menu a { border-color: rgba(255, 255, 255, .1); }
.footer .form-control { border-radius: 12px; padding-right: 8rem !important; }
.footer .btn-primary { border-radius: 8px; }

.back-to-top { border-radius: 50%; }
.skip-link, .skip-link:focus { color: #FFFFFF !important; }

@media (max-width: 991.98px) {
    .navbar-light { background-color: #FFFFFF; }
    .navbar-light .navbar-nav .nav-link.active,
    .navbar-light .navbar-nav .nav-link:hover { color: var(--primary) !important; }
}
@media (max-width: 575.98px) {
    .site-partner-registration .wizard-steps {
        display: grid;
        grid-template-columns: repeat(4, minmax(0, 1fr));
        gap: 16px 8px;
    }
    .site-partner-registration .wizard-steps::before { display: none; }
    .site-partner-registration .wizard-steps li { min-width: 0; overflow-wrap: anywhere; }
    .section-heading { margin-bottom: 2rem; }
    .hero-header .position-relative.w-75 { width: 100% !important; }
    .back-to-top { right: 16px; bottom: 20px; }
}
