:root {
    --project-yellow: #fcbb03;
    --project-yellow-soft: #fff4cf;
    --project-yellow-deep: #efb600;
    --project-ink: #111827;
    --project-line: rgba(252, 187, 3, 0.12);
    --project-line-strong: rgba(252, 187, 3, 0.24);
    --project-shadow-soft: 0 10px 26px rgba(17, 24, 39, 0.055);
    --project-shadow-hover: 0 16px 34px rgba(17, 24, 39, 0.085);
    --project-ease: cubic-bezier(0.22, 1, 0.36, 1);
    --project-header-layer: 30000;
    --project-user-menu-layer: 30000;
    --project-user-dropdown-layer: 30010;
}

body {
    background-image: linear-gradient(180deg, #fffefa 0%, #f8f9fa 46%, #f4f6f9 100%);
}

html {
    min-height: 0;
    scroll-behavior: smooth;
}

body:has(> .company-info-footer) {
    min-height: 0 !important;
    height: auto !important;
    display: block !important;
    justify-content: flex-start !important;
    align-items: stretch;
    overflow-x: clip;
    overflow-y: visible;
    padding-bottom: 0 !important;
    margin-bottom: 0 !important;
}

body:has(> .company-info-footer) > .company-info-footer {
    margin-top: 30px !important;
    margin-bottom: 0 !important;
    flex-shrink: 0;
    padding: 14px 24px !important;
    min-height: 0 !important;
    gap: 12px !important;
}

body.mobile-modal-open {
    overflow: hidden !important;
    overscroll-behavior: contain;
}

body:has(> .company-info-footer) > .company-info-footer .company-info-footer__logo {
    max-height: 24px !important;
}

body:has(> .company-info-footer) > .company-info-footer .company-info-footer__name {
    font-size: 0.82rem !important;
    line-height: 1.2 !important;
}

body:has(> .company-info-footer) > .company-info-footer .company-info-footer__address {
    font-size: 0.75rem !important;
    line-height: 1.25 !important;
    margin-top: 2px !important;
}

body:has(> .company-info-footer) > .modal-card,
body:has(> .company-info-footer) > .auth-shell {
    margin-left: auto;
    margin-right: auto;
    margin-top: clamp(18px, 4vh, 48px);
    margin-bottom: clamp(18px, 4vh, 48px);
}

header {
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(255, 254, 250, 0.96));
    border-bottom: 1px solid rgba(252, 187, 3, 0.09);
}

body > header {
    position: sticky !important;
    top: 0 !important;
    z-index: var(--project-header-layer) !important;
}

body.user-menu-open > header {
    z-index: var(--project-user-menu-layer) !important;
}

body > header:has(.user-dropdown[style*="display: flex"]) {
    z-index: var(--project-user-menu-layer) !important;
}

@media (max-width: 1024px) {
    html,
    body {
        width: 100%;
        max-width: 100%;
        min-height: 0 !important;
        height: auto !important;
        overflow-x: hidden !important;
    }

    body > * {
        max-width: 100%;
    }

    .top-search-container,
    .search-widget {
        transform: none !important;
    }

    .results-mobile-search-backdrop,
    .mobile-search-backdrop {
        position: fixed !important;
        inset: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: 100vh !important;
        height: 100dvh !important;
    }

    .results-mobile-search-sheet,
    .mobile-search-sheet {
        position: fixed !important;
        top: auto !important;
        right: 0 !important;
        bottom: 0 !important;
        left: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        max-height: min(82vh, 680px) !important;
        max-height: min(82dvh, 680px) !important;
        margin: 0 !important;
        border-bottom-right-radius: 0 !important;
        border-bottom-left-radius: 0 !important;
        box-sizing: border-box !important;
        overscroll-behavior: contain;
        opacity: 0 !important;
        visibility: hidden !important;
        transform: translate3d(0, 110%, 0) !important;
        transition:
            transform 0.34s cubic-bezier(0.22, 1, 0.36, 1),
            opacity 0.24s ease,
            visibility 0s linear 0.34s !important;
        will-change: transform;
    }

    .top-search-container.mobile-search-open .results-mobile-search-sheet,
    body.results-mobile-search-open .results-mobile-search-sheet,
    body.home-mobile-search-open .mobile-search-sheet,
    #form-passagens.mobile-search-open .mobile-search-sheet {
        transform: translate3d(0, 0, 0) !important;
        opacity: 1 !important;
        visibility: visible !important;
        transition:
            transform 0.34s cubic-bezier(0.22, 1, 0.36, 1),
            opacity 0.24s ease,
            visibility 0s !important;
    }

    body.results-mobile-search-closing .results-mobile-search-sheet,
    body.home-mobile-search-closing .mobile-search-sheet {
        transform: translate3d(0, 110%, 0) !important;
        opacity: 0 !important;
        visibility: visible !important;
        transition:
            transform 0.28s cubic-bezier(0.55, 0, 0.45, 1),
            opacity 0.22s ease,
            visibility 0s !important;
    }

    body.results-mobile-search-open .results-mobile-search-backdrop,
    body.results-mobile-search-closing .results-mobile-search-backdrop,
    body.home-mobile-search-open .mobile-search-backdrop,
    body.home-mobile-search-closing .mobile-search-backdrop {
        display: block !important;
    }

    .main-container,
    .search-widget-wrapper,
    .search-history,
    .best-offers-bar,
    .flight-card,
    .top-search-container,
    .hero,
    .company-info-footer {
        max-width: 100% !important;
    }

    .leg-box,
    .price-breakdown,
    .passenger-summary-line,
    .mobile-route-field,
    .mobile-results-search-bar,
    .input-box,
    .dropdown-trigger {
        min-width: 0 !important;
    }

    .popover {
        width: min(340px, calc(100% - 24px)) !important;
        max-width: calc(100% - 24px) !important;
    }

    body.home-mobile-search-open > #popover-passagens,
    body.results-mobile-search-open > #popover-passagens-top {
        position: fixed !important;
        top: 50% !important;
        right: auto !important;
        bottom: auto !important;
        left: 50% !important;
        width: min(360px, calc(100% - 32px)) !important;
        max-width: calc(100% - 32px) !important;
        max-height: min(70vh, 430px) !important;
        max-height: min(70dvh, 430px) !important;
        margin: 0 !important;
        overflow-y: auto !important;
        transform: translate3d(-50%, -50%, 0) !important;
        z-index: 29990 !important;
    }

    .user-dropdown {
        max-width: calc(100vw - 24px) !important;
    }

    .company-info-footer,
    .company-info-footer__right,
    .company-info-footer__name,
    .company-info-footer__address {
        max-width: 100% !important;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 740px) {
    body:has(> .company-info-footer) {
        display: block !important;
        min-height: 0 !important;
        height: auto !important;
        overflow-y: visible !important;
    }

    body:has(> .company-info-footer) > .company-info-footer {
        margin-top: 0 !important;
        margin-bottom: 0 !important;
        padding-right: 18px !important;
        padding-top: 28px !important;
        padding-left: 18px !important;
        padding-bottom: 0 !important;
        width: 100% !important;
        align-items: center !important;
        text-align: center !important;
    }

    body > .main-container {
        padding-bottom: clamp(72px, 14vw, 96px) !important;
    }

    body > .search-history:not([hidden]) {
        margin-bottom: clamp(56px, 12vw, 80px) !important;
    }

    body.home-search-history-empty > .search-widget-wrapper {
        margin-bottom: clamp(84px, 16vw, 116px) !important;
    }

    body:has(> .company-info-footer) > .company-info-footer .company-info-footer__left {
        width: 100%;
        display: flex;
        justify-content: center;
    }

    body:has(> .company-info-footer) > .company-info-footer .company-info-footer__right {
        min-width: 0 !important;
        width: 100% !important;
        text-align: center !important;
    }
}

body.user-menu-open .user-actions {
    z-index: var(--project-user-dropdown-layer) !important;
}

.user-actions:has(.user-dropdown[style*="display: flex"]) {
    z-index: var(--project-user-dropdown-layer) !important;
}

.user-dropdown {
    z-index: var(--project-user-dropdown-layer) !important;
}

.auth-shell,
.modal-card,
.search-widget,
.top-search-container,
.flight-card,
.card,
.trip-card,
.stat-card,
.admin-config-card,
.payment-fallback,
.checkout-timeline,
.user-profile-card {
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(255, 253, 248, 0.58));
    border-color: var(--project-line);
    box-shadow: var(--project-shadow-soft);
}

.auth-shell:hover,
.modal-card:hover,
.search-widget:hover,
.flight-card:hover,
.card:hover,
.trip-card:hover,
.stat-card:hover,
.user-profile-card:hover {
    border-color: var(--project-line-strong);
    box-shadow: var(--project-shadow-hover);
}

.btn,
.btn-primary,
.btn-primary-login,
.btn-continuar,
.btn-action,
.btn-buscar,
.btn-comprar,
.btn-modal-comprar,
.btn-cupom,
.btn-copy,
.btn-success-home,
.btn-accept,
.confirm-email-action,
.auth-shell button {
    background-image: linear-gradient(135deg, var(--project-yellow) 0%, #f8c94a 100%);
    color: var(--project-ink);
    box-shadow: 0 8px 18px rgba(252, 187, 3, 0.20);
}

.btn:hover,
.btn-primary:hover,
.btn-primary-login:hover,
.btn-continuar:hover,
.btn-action:hover,
.btn-buscar:hover,
.btn-comprar:hover,
.btn-modal-comprar:hover,
.btn-cupom:hover,
.btn-copy:hover,
.btn-success-home:hover,
.btn-accept:hover,
.confirm-email-action:hover,
.auth-shell button:hover {
    box-shadow: 0 12px 24px rgba(252, 187, 3, 0.26);
    transform: translateY(-1px);
}

.user-menu,
.btn-outline,
.f-tab,
.card-selector,
.payment-option,
.dropdown-trigger,
.input-wrapper,
.login-input-wrapper,
input,
select,
textarea {
    transition: border-color 0.22s var(--project-ease), box-shadow 0.22s var(--project-ease), background-color 0.22s var(--project-ease), transform 0.22s var(--project-ease);
}

.user-menu:hover,
.btn-outline:hover,
.f-tab:hover,
.card-selector:hover,
.payment-option:hover,
.dropdown-trigger:hover {
    border-color: var(--project-line-strong);
    box-shadow: 0 10px 24px rgba(17, 24, 39, 0.06);
}

input:focus,
select:focus,
textarea:focus,
.dropdown-trigger.active,
.card-selector.active,
.payment-option.active {
    border-color: var(--project-yellow);
    box-shadow: 0 0 0 3px rgba(252, 187, 3, 0.14);
}

.filter-group,
.offer-item,
.search-history-card,
.user-dropdown a,
.dropdown-item,
.menu-item,
.side-menu a,
.nav-link {
    transition: transform 0.24s var(--project-ease), border-color 0.24s var(--project-ease), box-shadow 0.24s var(--project-ease), background-color 0.24s var(--project-ease), color 0.24s var(--project-ease);
}

.filter-group:hover,
.offer-item:hover,
.search-history-card:hover {
    transform: translateY(-1px);
}

.icon,
.card-title .icon-bg,
.avatar-circle,
.step-circle.active,
.step.active .step-circle {
    background-image: linear-gradient(135deg, rgba(252, 187, 3, 0.18), rgba(255, 217, 114, 0.22));
}

.badge-em-breve {
    background-image: linear-gradient(135deg, #e8f5ff, #fff8dd);
    color: #075985;
}

.toast,
.user-dropdown,
.login-modal-content,
.flight-modal-content,
.modal-content {
    background-image: linear-gradient(180deg, rgba(255, 255, 255, 0.99), rgba(255, 253, 248, 0.72));
    border-color: var(--project-line);
    box-shadow: var(--project-shadow-soft);
}

.btn-close-login,
.btn-close-icon,
.btn-close-modal,
.btn-fechar,
.mobile-sheet-close,
.results-mobile-sheet-close {
    width: 34px;
    height: 34px;
    min-width: 34px;
    min-height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    border: 1px solid rgba(17, 24, 39, 0.08);
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.92);
    color: #6c757d;
    box-shadow: 0 8px 18px rgba(17, 24, 39, 0.06);
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.22s var(--project-ease), border-color 0.22s var(--project-ease), color 0.22s var(--project-ease), box-shadow 0.22s var(--project-ease), transform 0.22s var(--project-ease);
}

.btn-close-login:hover,
.btn-close-icon:hover,
.btn-close-modal:hover,
.btn-fechar:hover,
.mobile-sheet-close:hover,
.results-mobile-sheet-close:hover {
    background: #fff8dd;
    border-color: rgba(252, 187, 3, 0.35);
    color: var(--project-ink);
    box-shadow: 0 10px 22px rgba(17, 24, 39, 0.08);
    transform: translateY(-1px);
}

.btn-close-login i,
.btn-close-icon i,
.btn-close-modal i,
.btn-fechar i,
.mobile-sheet-close i,
.results-mobile-sheet-close i {
    color: currentColor;
    font-size: 15px;
    line-height: 1;
}

@keyframes projectSoftEnter {
    from {
        opacity: 0.92;
        transform: translateY(6px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

@keyframes projectFadeScale {
    from {
        opacity: 0;
        transform: translateY(8px) scale(0.985);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@media (prefers-reduced-motion: no-preference) {
    .auth-shell,
    .modal-card,
    .search-widget,
    .top-search-container,
    .flight-card,
    .card,
    .trip-card,
    .stat-card,
    .stepper-wrapper {
        animation: projectSoftEnter 0.42s var(--project-ease) both;
    }

    .popover.active,
    .user-dropdown.show,
    .user-dropdown.active,
    .modal-overlay .modal-content,
    .login-overlay.active .login-content,
    .toast,
    .search-history-card {
        animation: projectFadeScale 0.28s var(--project-ease) both;
    }
}

@media (prefers-reduced-motion: reduce) {
    *,
    *::before,
    *::after {
        animation-duration: 0.01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: 0.01ms !important;
    }
}
