:root {
    --rebbify-ink: #111111;
    --rebbify-muted: #5b5b5b;
    --rebbify-soft: #f3f3f3;
    --rebbify-line: #dedede;
    --rebbify-purple: #6d28d9;
    --rebbify-purple-dark: #5420aa;
    --rebbify-lavender: #eee7ff;
}

html { scroll-behavior: smooth; }
body { background: #fff; color: var(--rebbify-ink); }

/* Header — compacto, preto e fixo visualmente como a referência enviada. */
.header.home-header,
.header.home-header.fixed-header {
    background: #000 !important;
    backdrop-filter: none !important;
    box-shadow: none !important;
}
.header.home-header .navbar-brand.logo img { max-width: 128px; max-height: 32px; }
.header.home-header .nav-menu .nav-item .nav-link,
.header.home-header .custom--dropdown__selected,
.header.home-header .header-button,
.header.home-header .header-right__lang { color: #fff !important; }
.header.home-header .nav-menu .nav-item .nav-link { font-size: 13px; font-weight: 600; }
.header.home-header .app-download-btn {
    background: #fff !important;
    color: #000 !important;
    border-color: #fff !important;
    border-radius: 999px !important;
    height: 38px !important;
    padding: 8px 16px !important;
    font-size: 13px;
}
.header.home-header .btn--white { color: #fff !important; border-color: transparent !important; background: transparent !important; }

.rebbify-hero {
    padding: 150px 0 72px;
    background: #fff;
    position: relative;
    overflow: visible;
}
.rebbify-hero__grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(420px, .92fr);
    gap: 76px;
    align-items: center;
}
.rebbify-hero__content { max-width: 610px; position: relative; z-index: 3; }
.rebbify-location-label {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-size: 13px;
    font-weight: 700;
    margin-bottom: 10px;
}
.rebbify-location-label i { font-size: 15px; }
.rebbify-hero h1 {
    font-size: clamp(44px, 5.2vw, 72px);
    line-height: .98;
    letter-spacing: -3.8px;
    max-width: 640px;
    margin: 0 0 18px;
    color: var(--rebbify-ink);
}
.rebbify-hero__lead {
    color: var(--rebbify-muted);
    font-size: 16px;
    line-height: 1.55;
    max-width: 560px;
    margin-bottom: 22px;
}
.rebbify-booking-time {
    position: relative;
    width: min(290px, 100%);
    margin-bottom: 14px;
    z-index: 40;
}
.rebbify-booking-time__summary {
    width: 100%;
    min-height: 52px;
    border: 1px solid #e5e7eb;
    background: #fff;
    border-radius: 14px;
    padding: 9px 12px;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) 22px;
    align-items: center;
    gap: 9px;
    color: #111827;
    text-align: left;
    box-shadow: 0 4px 16px rgba(15, 23, 42, .06);
    transition: border-color .18s ease, box-shadow .18s ease, background .18s ease;
}
.rebbify-booking-time__summary:hover,
.rebbify-booking-time__summary[aria-expanded="true"] {
    border-color: rgba(124, 77, 255, .5);
    box-shadow: 0 8px 24px rgba(124, 77, 255, .12);
    background: #fff;
}
.rebbify-booking-time__icon,
.rebbify-booking-time__option-icon {
    width: 34px;
    height: 34px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: #7C4DFF;
    background: rgba(124, 77, 255, .09);
    flex: 0 0 auto;
}
.rebbify-booking-time__copy,
.rebbify-booking-time__option > span:last-child {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 1px;
}
.rebbify-booking-time__copy strong,
.rebbify-booking-time__option strong {
    color: #111827;
    font-size: 13px;
    line-height: 1.25;
    font-weight: 800;
}
.rebbify-booking-time__copy small,
.rebbify-booking-time__option small {
    color: #64748b;
    font-size: 11px;
    line-height: 1.3;
}
.rebbify-booking-time__chevron {
    color: #7C4DFF;
    font-size: 19px;
    line-height: 1;
    text-align: center;
    transition: transform .18s ease;
}
.rebbify-booking-time__summary[aria-expanded="true"] .rebbify-booking-time__chevron { transform: rotate(180deg); }
.rebbify-booking-time__menu {
    position: absolute;
    top: calc(100% + 7px);
    left: 0;
    width: 100%;
    padding: 6px;
    border: 1px solid #e5e7eb;
    background: #fff;
    border-radius: 14px;
    box-shadow: 0 18px 42px rgba(15, 23, 42, .16);
    z-index: 10020;
}
.rebbify-booking-time__menu[hidden] { display: none !important; }
.rebbify-booking-time__option {
    position: relative;
    width: 100%;
    border: 0;
    border-radius: 10px;
    background: transparent;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr);
    align-items: center;
    gap: 9px;
    padding: 9px 34px 9px 9px;
    text-align: left;
}
.rebbify-booking-time__option:hover,
.rebbify-booking-time__option.is-active { background: #f7f5ff; }
.rebbify-booking-time__option.is-active::after {
    content: '✓';
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #7C4DFF;
    font-weight: 900;
}

.rebbify-booking-card { max-width: 520px; }
.rebbify-route-fields { position: relative; display: grid; gap: 8px; }
.rebbify-route-line { display: none !important; }
.rebbify-location-field.input-group-custom {
    position: relative;
    display: flex;
    align-items: center;
    width: 100%;
    min-height: 64px;
    height: auto;
    background: #f2f2f2;
    color: #111 !important;
    border: 1px solid transparent;
    border-radius: 5px;
    padding: 8px 46px 8px 48px;
    overflow: visible !important;
    box-shadow: none;
    z-index: 6;
}
.rebbify-location-field:focus-within { border-color: rgba(124, 77, 255, .7); background: #fff; box-shadow: 0 0 0 3px rgba(124,77,255,.08); }
.pickup-area.rebbify-location-field { padding-right: 82px; }
.rebbify-route-icon {
    position: absolute;
    left: 13px;
    top: 50%;
    transform: translateY(-50%);
    width: 20px;
    height: 20px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    z-index: 7;
}
.rebbify-route-icon img { width: 20px; height: 20px; display: block; object-fit: contain; }
.rebbify-location-field__input { width: 100%; min-width: 0; }
.rebbify-location-field__input label {
    display: block;
    font-size: 10px;
    text-transform: uppercase;
    letter-spacing: .05em;
    font-weight: 800;
    color: #777;
    margin: 0 0 1px;
}
.rebbify-location-field .input-group-custom__input,
.rebbify-location-field .input-group-custom__input:focus,
.rebbify-location-field .input-group-custom__input:active {
    width: 100%;
    height: 28px;
    min-height: 28px;
    border: 0 !important;
    padding: 0 !important;
    background: transparent !important;
    color: #111 !important;
    font-size: 15px;
    font-weight: 500;
    box-shadow: none !important;
}
.rebbify-location-field .input-group-custom__input::placeholder { color: #818181 !important; opacity: 1; }
.rebbify-location-action {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    color: #7C4DFF;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    z-index: 8;
}
.rebbify-current-location-btn {
    width: 34px;
    height: 34px;
    border: 0;
    border-radius: 50%;
    background: rgba(124, 77, 255, .08);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
    transition: background .18s ease, transform .18s ease;
}
.rebbify-current-location-btn:hover { background: rgba(124, 77, 255, .15); transform: scale(1.03); }
.rebbify-current-location-btn img { width: 18px; height: 18px; display: block; }
.rebbify-location-action .icon-clear { color: #64748b; cursor: pointer; }
.rebbify-location-dropdown.search-input-dropdown__wrapper {
    top: calc(100% + 5px);
    left: 0;
    width: 100%;
    margin: 0;
    padding: 7px 0;
    background: #fff;
    color: #111;
    border: 1px solid #dedede;
    border-radius: 8px;
    max-height: 330px;
    z-index: 9999;
    box-shadow: 0 14px 38px rgba(0,0,0,.16);
}
.rebbify-location-dropdown .search-input-dropdown__item {
    min-height: 54px;
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 9px 13px;
    color: #111;
    background: #fff;
}
.rebbify-location-dropdown .search-input-dropdown__item:hover,
.rebbify-location-dropdown .search-input-dropdown__item.active { background: #f3f3f3; }
.rebbify-location-dropdown .location__icon img { width: 22px; height: 22px; object-fit: contain; }
.rebbify-booking-actions { display: flex; align-items: center; gap: 18px; margin-top: 14px; flex-wrap: wrap; }
.rebbify-primary-btn,
.rebbify-dark-btn {
    border: 0;
    background: #7C4DFF !important;
    color: #fff !important;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    gap: 8px;
    min-height: 48px;
    padding: 12px 22px !important;
    border-radius: 5px !important;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
}
.rebbify-primary-btn:hover,
.rebbify-dark-btn:hover { background: #6A3FEA !important; color: #fff !important; }
.rebbify-primary-btn.disabled,
.rebbify-primary-btn:disabled { opacity: .45; cursor: not-allowed; }
.rebbify-text-link { color: #333; font-size: 12px; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.rebbify-text-link:hover { color: #000; }

.rebbify-hero__visual { min-width: 0; }
.rebbify-hero-art {
    position: relative;
    min-height: 500px;
    background: var(--rebbify-lavender);
    border-radius: 10px;
    overflow: hidden;
}
.rebbify-hero-art__photo {
    position: absolute;
    inset: 0 0 auto 0;
    height: 46%;
    background: #111;
    overflow: hidden;
}
.rebbify-hero-art__photo img { width: 100%; height: 100%; object-fit: cover; }
.rebbify-hero-art__phone {
    position: absolute;
    width: 48%;
    right: 6%;
    bottom: -5%;
    z-index: 2;
}
.rebbify-hero-art__phone img { width: 100%; display: block; filter: drop-shadow(0 22px 30px rgba(0,0,0,.16)); }
.rebbify-hero-art::before {
    content: "";
    position: absolute;
    width: 190px;
    height: 190px;
    border-radius: 50%;
    left: 8%;
    bottom: 14%;
    background: var(--rebbify-purple);
    opacity: .95;
}
.rebbify-hero-art__status {
    position: absolute;
    left: 6%;
    bottom: 7%;
    width: 46%;
    background: #fff;
    padding: 14px 16px;
    border-radius: 9px;
    box-shadow: 0 12px 28px rgba(0,0,0,.12);
    z-index: 3;
}
.rebbify-hero-art__status span { display: block; color: #666; font-size: 11px; margin-bottom: 2px; }
.rebbify-hero-art__status strong { font-size: 14px; color: #111; }

.rebbify-home-section { padding: 70px 0; background: #fff; }
.rebbify-home-section h2 {
    font-size: clamp(32px, 4vw, 52px);
    letter-spacing: -2.1px;
    line-height: 1.02;
    color: var(--rebbify-ink);
    margin-bottom: 28px;
}
.rebbify-service-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.rebbify-service-card {
    min-height: 220px;
    background: #f3f3f3;
    color: #111;
    padding: 22px;
    border-radius: 7px;
    display: flex;
    justify-content: space-between;
    gap: 12px;
    overflow: hidden;
    text-decoration: none;
    transition: transform .2s ease, background .2s ease;
}
.rebbify-service-card:hover { transform: translateY(-2px); color: #111; background: #ececec; }
.rebbify-service-card > div:first-child { flex: 1 1 auto; min-width: 0; position: relative; z-index: 2; }
.rebbify-service-card img { width: 118px; align-self: flex-end; object-fit: contain; margin: 0 -18px -12px 0; }
.rebbify-service-card h3 { font-size: 19px; line-height: 1.15; margin: 10px 0 8px; }
.rebbify-service-card p { font-size: 13px; line-height: 1.45; color: #585858; margin-bottom: 14px; }
.rebbify-service-card strong { font-size: 12px; text-decoration: underline; text-underline-offset: 3px; }
.rebbify-service-icon { font-size: 58px; align-self: flex-end; color: var(--rebbify-purple); }
.rebbify-eyebrow { display: inline-block; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: #555; }

.rebbify-account-section { padding-top: 82px; }
.rebbify-split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 56px; }
.rebbify-account-card { min-height: 420px; }
.rebbify-split__copy { max-width: 520px; }
.rebbify-split__copy p { font-size: 15px; color: #555; line-height: 1.6; margin-bottom: 22px; }
.rebbify-account-card__visual {
    height: 420px;
    background: #f3f3f3;
    border-radius: 7px;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    overflow: hidden;
}
.rebbify-account-card__visual img { width: min(78%, 430px); display: block; }

.rebbify-plan-card { display: grid; grid-template-columns: 1.35fr .75fr; gap: 0; align-items: stretch; }
.rebbify-plan-card__main {
    min-height: 430px;
    padding: 44px;
    background: #dff6fa;
    border-radius: 8px 0 0 8px;
    position: relative;
    overflow: hidden;
}
.rebbify-plan-card__main::after {
    content: "";
    position: absolute;
    right: -46px;
    bottom: -90px;
    width: 290px;
    height: 290px;
    border: 50px solid #111;
    border-radius: 50%;
    opacity: .07;
}
.rebbify-plan-card__main h3 { font-size: clamp(30px, 3.5vw, 46px); line-height: 1.03; max-width: 590px; margin: 12px 0 14px; }
.rebbify-plan-card__main p { max-width: 560px; color: #3f5356; line-height: 1.55; }
.rebbify-plan-controls { display: flex; gap: 10px; margin: 24px 0 18px; position: relative; z-index: 2; }
.rebbify-plan-controls > div { min-width: 170px; background: #fff; padding: 12px 14px; border-radius: 4px; display: flex; gap: 8px; align-items: center; font-size: 13px; font-weight: 700; }
.rebbify-plan-card__benefits { border: 1px solid #e6e6e6; border-left: 0; border-radius: 0 8px 8px 0; padding: 36px 30px; background: #fff; }
.rebbify-plan-card__benefits h4 { font-size: 16px; margin-bottom: 20px; }
.rebbify-plan-card__benefits ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 18px; }
.rebbify-plan-card__benefits li { display: flex; gap: 9px; font-size: 13px; line-height: 1.45; color: #444; }
.rebbify-plan-card__benefits i { font-size: 18px; color: #111; margin-top: 1px; }

.rebbify-editorial-row { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 70px; padding: 68px 0; }
.rebbify-editorial-row--reverse .rebbify-editorial-row__copy { order: 2; }
.rebbify-editorial-row--reverse .rebbify-editorial-row__media { order: 1; }
.rebbify-editorial-row__copy { max-width: 520px; }
.rebbify-editorial-row__copy h2 { margin: 10px 0 16px; }
.rebbify-editorial-row__copy p { color: #555; line-height: 1.62; margin-bottom: 22px; }
.rebbify-editorial-row__media { height: 450px; border-radius: 7px; overflow: hidden; background: #f2f2f2; }
.rebbify-editorial-row__media img { width: 100%; height: 100%; object-fit: cover; }
.rebbify-editorial-row__media--soft { background: var(--rebbify-lavender); display: flex; align-items: center; justify-content: center; }
.rebbify-editorial-row__media--soft img { width: 74%; height: auto; object-fit: contain; }
.rebbify-editorial-row__media--wide { height: 390px; }

.rebbify-download-section { background: #f3f3f3; padding: 56px 0 70px; }
.rebbify-download-section h2 { margin-bottom: 24px; }
.rebbify-download-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.rebbify-download-card {
    min-height: 136px;
    background: #fff;
    color: #111;
    padding: 22px 24px;
    display: grid;
    grid-template-columns: 72px 1fr auto;
    align-items: center;
    gap: 18px;
    text-decoration: none;
}
.rebbify-download-card:hover { color: #111; }
.rebbify-download-card__icon { width: 68px; height: 68px; background: #000; color: #fff; display: grid; place-items: center; font-size: 32px; border-radius: 6px; }
.rebbify-download-card h3 { font-size: 18px; margin: 0 0 5px; }
.rebbify-download-card p { margin: 0; color: #666; font-size: 13px; line-height: 1.4; }
.rebbify-download-card > i { font-size: 24px; }

/* Rodapé: reduz o bloco de newsletter e aproxima a hierarquia do print. */
body:has(.rebbify-hero) .footer-area { margin-top: 0; padding-top: 58px; background: #000; }
body:has(.rebbify-hero) .newslatter { display: none; }
body:has(.rebbify-hero) .bottom-footer { background: #000; border-color: #222; }
body:has(.rebbify-hero) .footer-item__title::after { display: none; }

@media (min-width: 992px) {
    .header.home-header .navbar { min-height: 72px !important; }
    .header.home-header .navbar-brand,
    .header.home-header .navbar-collapse,
    .header.home-header .nav-menu,
    .header.home-header .header-right { min-height: 72px !important; }
    .header.home-header .nav-menu .nav-item .nav-link { min-height: 72px !important; }
}

@media (max-width: 1199px) {
    .rebbify-hero__grid { grid-template-columns: 1fr 1fr; gap: 42px; }
    .rebbify-hero h1 { letter-spacing: -3px; }
    .rebbify-service-grid { grid-template-columns: 1fr 1fr; }
    .rebbify-service-card:last-child { grid-column: 1 / -1; }
}

@media (max-width: 991px) {
    .header.home-header { position: absolute !important; }
    .header.home-header .navbar-collapse { background: #000; padding: 14px 0 20px; }
    .header.home-header .nav-menu .nav-item .nav-link { color: #fff !important; }
    .header.home-header .app-download-btn { width: fit-content; }
    .rebbify-hero { padding: 118px 0 52px; }
    .rebbify-hero__grid { grid-template-columns: 1fr; gap: 34px; }
    .rebbify-hero__content { max-width: 680px; }
    .rebbify-hero h1 { font-size: clamp(42px, 9vw, 66px); }
    .rebbify-booking-card { max-width: 620px; }
    .rebbify-hero-art { min-height: 420px; }
    .rebbify-split,
    .rebbify-plan-card,
    .rebbify-editorial-row { grid-template-columns: 1fr; gap: 28px; }
    .rebbify-plan-card__main { border-radius: 8px 8px 0 0; }
    .rebbify-plan-card__benefits { border-left: 1px solid #e6e6e6; border-top: 0; border-radius: 0 0 8px 8px; }
    .rebbify-editorial-row--reverse .rebbify-editorial-row__copy,
    .rebbify-editorial-row--reverse .rebbify-editorial-row__media { order: initial; }
    .rebbify-editorial-row { padding: 44px 0; }
    .rebbify-editorial-row__copy { max-width: 650px; }
}

@media (max-width: 767px) {
    .rebbify-hero { padding-top: 105px; }
    .rebbify-hero h1 { font-size: 44px; letter-spacing: -2.4px; }
    .rebbify-hero__lead { font-size: 14px; }
    .rebbify-booking-time { width: 100%; max-width: 100%; }
    .rebbify-booking-time__summary { min-height: 50px; }
    .rebbify-location-field.input-group-custom { min-height: 62px; padding-left: 44px; }
    .pickup-area.rebbify-location-field { padding-right: 78px; }
    .rebbify-route-icon { left: 11px; }
    .rebbify-booking-actions { align-items: stretch; flex-direction: column; gap: 10px; }
    .rebbify-primary-btn { width: 100%; }
    .rebbify-hero-art { min-height: 350px; }
    .rebbify-hero-art__phone { width: 52%; right: 3%; }
    .rebbify-hero-art__status { left: 4%; width: 54%; padding: 11px 12px; }
    .rebbify-home-section { padding: 52px 0; }
    .rebbify-home-section h2 { font-size: 34px; letter-spacing: -1.5px; }
    .rebbify-service-grid { grid-template-columns: 1fr; }
    .rebbify-service-card:last-child { grid-column: auto; }
    .rebbify-split { gap: 22px; }
    .rebbify-account-card__visual { height: 330px; }
    .rebbify-plan-card__main { padding: 28px 22px; min-height: 380px; }
    .rebbify-plan-controls { flex-direction: column; }
    .rebbify-plan-controls > div { min-width: 0; width: 100%; }
    .rebbify-plan-card__benefits { padding: 28px 22px; }
    .rebbify-editorial-row__media { height: 330px; }
    .rebbify-download-grid { grid-template-columns: 1fr; }
    .rebbify-download-card { grid-template-columns: 58px 1fr auto; padding: 18px; }
    .rebbify-download-card__icon { width: 56px; height: 56px; font-size: 27px; }
}

@media (max-width: 480px) {
    .rebbify-hero h1 { font-size: 39px; }
    .rebbify-hero-art { min-height: 305px; }
    .rebbify-hero-art__photo { height: 43%; }
    .rebbify-hero-art__phone { width: 56%; }
    .rebbify-hero-art__status { width: 58%; bottom: 5%; }
    .rebbify-service-card { min-height: 205px; padding: 18px; }
    .rebbify-service-card img { width: 100px; }
    .rebbify-account-card__visual { height: 285px; }
    .rebbify-editorial-row__media { height: 280px; }
}


/* Rebbify typography normalization */
.rebbify-booking-card, .rebbify-booking-card button, .rebbify-booking-card input,
.rebbify-booking-card label, .rebbify-booking-time, .rebbify-location-dropdown {
    font-family: var(--rebbify-font, "Inter", ui-sans-serif, sans-serif);
}
.rebbify-location-field__input label { font-weight: 600; letter-spacing: -0.01em; }
.rebbify-location-field__input input { font-weight: 500; letter-spacing: -0.01em; }

/* 2026-09-02: home autenticada — reduz somente o espaço entre a faixa da conta e o conteúdo inicial. */
@media (min-width: 992px) {
    .rebbify-member-strip + .rebbify-hero {
        padding-top: 72px;
    }
}

/* FIX 2026-09-02: na home, o autocomplete pertence ao campo ativo.
   O dropdown de partida deve sobrepor completamente o campo de chegada. */
.rebbify-booking-card .pickup-area.rebbify-location-field {
    z-index: 30;
}

.rebbify-booking-card .destination-area.rebbify-location-field {
    z-index: 10;
}

.rebbify-booking-card .pickup-area.rebbify-location-field:focus-within {
    z-index: 50;
}

.rebbify-booking-card .destination-area.rebbify-location-field:focus-within {
    z-index: 60;
}

.rebbify-booking-card .pickup-area #pickup_suggestions,
.rebbify-booking-card .destination-area #destination_suggestions {
    position: absolute;
    z-index: 70;
}

/* FIX final: enquanto o autocomplete da home estiver aberto, o campo ativo
   inteiro fica acima do campo irmão. O destino nunca atravessa o dropdown
   de partida; quando o destino abre, ele recebe a prioridade equivalente. */
.rebbify-booking-card .pickup-area.rebbify-location-field.is-search-open {
    z-index: 100 !important;
}

.rebbify-booking-card .destination-area.rebbify-location-field.is-search-open {
    z-index: 100 !important;
}

.rebbify-booking-card .pickup-area.is-search-open + .destination-area {
    z-index: 1 !important;
}

.rebbify-booking-card .pickup-area.is-search-open #pickup_suggestions,
.rebbify-booking-card .destination-area.is-search-open #destination_suggestions {
    z-index: 110 !important;
}
