:root {
    --public-navy: #0f2b5c;
    --public-dark: #071838;
    --public-orange: #ff6b00;
    --public-teal: #00a896;
    --public-bg: #f8fafc;
    --public-line: #e2e8f0
}

/* Theme-safe modify-journey dialog (authoritative overrides). */
.modify-journey-dialog,.modify-actions{color:var(--text,#172033)}
.modify-grid input{background:#fff;color:#172033;border-color:#cbd5e1;color-scheme:light}
.modify-grid input::placeholder{color:#64748b}
html[data-ab-theme="dark"] .modify-search-panel>.modify-journey-dialog{background:#111827;border-color:#334155;color:#f8fafc}
html[data-ab-theme="dark"] .modify-heading h2,html[data-ab-theme="dark"] .modify-grid label,html[data-ab-theme="dark"] .modify-grid label>span{color:#f8fafc}
html[data-ab-theme="dark"] .modify-heading p{color:#cbd5e1}
html[data-ab-theme="dark"] .modify-grid input{background:#0f172a;color:#fff;border-color:#475569;color-scheme:dark}
html[data-ab-theme="dark"] .modify-grid input::placeholder{color:#94a3b8}
html[data-ab-theme="dark"] .modify-actions{background:#111827;border-color:#334155}

/* Public day/night theme coverage. The html attribute makes these selectors
   more specific than the light presentation rules in this stylesheet. */
html[data-ab-theme="dark"] {
    --public-navy: #8fb7ff;
    --public-dark: #071225;
    --public-bg: #0b111b;
    --public-line: #2b374a
}

    html[data-ab-theme="dark"] body,
    html[data-ab-theme="dark"] .site-main,
    html[data-ab-theme="dark"] .public-section,
    html[data-ab-theme="dark"] .soft-section,
    html[data-ab-theme="dark"] .modern-routes-section {
        background-color: #0b111b;
        color: #e7edf7
    }

    html[data-ab-theme="dark"] .public-header,
    html[data-ab-theme="dark"] .public-header .navbar {
        background: #121925;
        border-color: #2b374a;
        color: #e7edf7
    }

        html[data-ab-theme="dark"] .navbar-brand,
        html[data-ab-theme="dark"] .public-header .nav-link,
        html[data-ab-theme="dark"] .public-profile {
            color: #e7edf7 !important
        }

    html[data-ab-theme="dark"] .page-hero,
    html[data-ab-theme="dark"] .modern-home-hero {
        background: radial-gradient(circle at 82% 10%,rgba(255,107,0,.15),transparent 31%),linear-gradient(135deg,#0b1c3a,#161925);
        color: #f8fafc
    }

    html[data-ab-theme="dark"] .modern-search-card,
    html[data-ab-theme="dark"] .modern-stat-strip,
    html[data-ab-theme="dark"] .modern-deal-card,
    html[data-ab-theme="dark"] .modern-route-grid a,
    html[data-ab-theme="dark"] .modern-feature-grid article,
    html[data-ab-theme="dark"] .date-strip,
    html[data-ab-theme="dark"] .date-stepper,
    html[data-ab-theme="dark"] .search-route-summary,
    html[data-ab-theme="dark"] .result-sort,
    html[data-ab-theme="dark"] .result-count-banner,
    html[data-ab-theme="dark"] .search-filters,
    html[data-ab-theme="dark"] .bus-result-card,
    html[data-ab-theme="dark"] .connection-card,
    html[data-ab-theme="dark"] .seat-map-card,
    html[data-ab-theme="dark"] .seat-selection-summary,
    html[data-ab-theme="dark"] .booking-step-tabs,
    html[data-ab-theme="dark"] .journey-point-step,
    html[data-ab-theme="dark"] .journey-point-card,
    html[data-ab-theme="dark"] .booking-section-card,
    html[data-ab-theme="dark"] .fare-summary-card,
    html[data-ab-theme="dark"] .auth-card,
    html[data-ab-theme="dark"] .info-panel,
    html[data-ab-theme="dark"] .contact-card,
    html[data-ab-theme="dark"] .contact-note,
    html[data-ab-theme="dark"] .manage-grid article,
    html[data-ab-theme="dark"] .legal-copy,
    html[data-ab-theme="dark"] .faq-list details,
    html[data-ab-theme="dark"] .policy-links a {
        background: #151d2a;
        border-color: #2b374a;
        color: #e7edf7
    }

    html[data-ab-theme="dark"] .modern-field,
    html[data-ab-theme="dark"] .modern-field:focus-within,
    html[data-ab-theme="dark"] .form-control,
    html[data-ab-theme="dark"] .form-select,
    html[data-ab-theme="dark"] .location-suggestions,
    html[data-ab-theme="dark"] .location-option,
    html[data-ab-theme="dark"] .selected-seat-row select {
        background-color: #101824;
        border-color: #344158;
        color: #e7edf7
    }

        html[data-ab-theme="dark"] .modern-field input,
        html[data-ab-theme="dark"] .modern-field input::placeholder,
        html[data-ab-theme="dark"] .form-control::placeholder {
            color: #95a3b7
        }

    html[data-ab-theme="dark"] .modern-search-head,
    html[data-ab-theme="dark"] .modern-stat-strip > div,
    html[data-ab-theme="dark"] .date-strip > *,
    html[data-ab-theme="dark"] .bus-result-card > *,
    html[data-ab-theme="dark"] .journey-point-card > header,
    html[data-ab-theme="dark"] .journey-point-option,
    html[data-ab-theme="dark"] .passenger-detail-row,
    html[data-ab-theme="dark"] .review-passengers > div {
        border-color: #2b374a
    }

    html[data-ab-theme="dark"] .date-strip a,
    html[data-ab-theme="dark"] .date-strip button,
    html[data-ab-theme="dark"] .date-stepper a,
    html[data-ab-theme="dark"] .date-stepper strong,
    html[data-ab-theme="dark"] .result-sort button,
    html[data-ab-theme="dark"] .search-filters button {
        background: inherit;
        border-color: #344158;
        color: #d9e3f0
    }

    html[data-ab-theme="dark"] .journey-point-option:hover,
    html[data-ab-theme="dark"] .location-option:hover,
    html[data-ab-theme="dark"] .location-option[aria-selected="true"] {
        background: #202c3d
    }

    html[data-ab-theme="dark"] .journey-point-option.selected {
        background: #302518;
        color: #f8fafc
    }

    html[data-ab-theme="dark"] .inline-saved-passengers {
        background: #111b2b;
        border-color: #29466d
    }

    html[data-ab-theme="dark"] .saved-passenger {
        background: #302318;
        border-color: #9a5b2b;
        color: #ffd8b5
    }

        html[data-ab-theme="dark"] .saved-passenger span,
        html[data-ab-theme="dark"] .section-heading p,
        html[data-ab-theme="dark"] .modern-route-grid p,
        html[data-ab-theme="dark"] .modern-feature-grid p,
        html[data-ab-theme="dark"] .journey-review p,
        html[data-ab-theme="dark"] .hold-note {
            color: #aab5c5
        }

    html[data-ab-theme="dark"] .terms-acceptance,
    html[data-ab-theme="dark"] .hold-countdown {
        background: #302719;
        color: #f7c98b
    }

    html[data-ab-theme="dark"] .review-notice,
    html[data-ab-theme="dark"] .result-count-banner {
        background: #10243d;
        color: #b9d7ff
    }

    html[data-ab-theme="dark"] .navbar-toggler {
        border-color: #536078
    }

    html[data-ab-theme="dark"] .navbar-toggler-icon {
        filter: invert(1) grayscale(1) brightness(1.7)
    }

    /* Screenshot-driven contrast corrections. */
    html[data-ab-theme="dark"] .bus-results-hero {
        background: linear-gradient(135deg,#102d5b,#17233a) !important;
        color: #f8fafc !important
    }

        html[data-ab-theme="dark"] .bus-results-hero h1,
        html[data-ab-theme="dark"] .bus-results-hero p {
            color: #f8fafc !important
        }

    html[data-ab-theme="dark"] .modern-routes {
        background: #0b111b !important;
        border-color: #2b374a !important
    }

        html[data-ab-theme="dark"] .modern-routes .modern-section-title h2,
        html[data-ab-theme="dark"] .modern-route-grid h3,
        html[data-ab-theme="dark"] .modern-route-grid b {
            color: #e7edf7 !important
        }

        html[data-ab-theme="dark"] .modern-routes .modern-section-title p,
        html[data-ab-theme="dark"] .modern-route-grid p,
        html[data-ab-theme="dark"] .modern-route-grid .route-card-meta small {
            color: #aab5c5 !important
        }

    html[data-ab-theme="dark"] .location-suggestions-heading {
        color: #aebbd0
    }

    html[data-ab-theme="dark"] .location-option strong {
        color: #e7edf7 !important
    }

    html[data-ab-theme="dark"] .location-option small,
    html[data-ab-theme="dark"] .location-option-type {
        color: #aab5c5 !important
    }

    html[data-ab-theme="dark"] .location-option-icon {
        background: #eaf2ff;
        color: #124b91
    }

    html[data-ab-theme="dark"] .location-option.point .location-option-icon {
        background: #fff2e8;
        color: #d95700
    }

    html[data-ab-theme="dark"] .location-option.route .location-option-type {
        color: #7eb2ff !important
    }

    html[data-ab-theme="dark"] .route-modifier-pill {
        background: #151d2a;
        border-color: #344158;
        color: #e7edf7
    }

        html[data-ab-theme="dark"] .route-modifier-pill strong {
            color: #a9caff
        }

        html[data-ab-theme="dark"] .route-modifier-pill > span {
            color: #b2bed0
        }

        html[data-ab-theme="dark"] .route-modifier-pill > i {
            background: #46536a
        }

        html[data-ab-theme="dark"] .route-modifier-pill > button {
            background: #27558f;
            color: #fff
        }

body {
    background: var(--public-bg);
    font-family: "Plus Jakarta Sans","Segoe UI",Arial,sans-serif
}

.public-header {
    position: sticky;
    top: 0
}

.public-topbar {
    background: var(--public-dark);
    padding: .55rem 0
}

    .public-topbar a {
        color: #cbd5e1;
        text-decoration: none
    }

.public-header .navbar {
    min-height: 76px
}

.navbar-brand {
    color: var(--public-navy) !important
}

    .navbar-brand img {
        background: var(--public-navy);
        border-radius: 12px;
        padding: 6px
    }

.public-header .nav-link {
    font-weight: bold;
    color: #334155
}

    .public-header .nav-link:hover {
        color: var(--public-orange)
    }

.public-header .btn-brand, .modern-search-button {
    background: var(--public-navy);
    border-color: var(--public-navy)
}

.modern-home-hero {
    padding: 3.5rem 0 7.2rem;
    color: #fff;
    background: radial-gradient(circle at 80% 10%,rgba(255,107,0,.17),transparent 30%),linear-gradient(135deg,rgba(15,43,92,.98),rgba(7,24,56,.97))
}

.modern-hero-copy {
    text-align: center;
    max-width: 820px;
    margin: 0 auto 2.2rem
}

.hero-kicker {
    display: inline-block;
    padding: .45rem .9rem;
    border: 1px solid rgba(255,255,255,.18);
    border-radius: 999px;
    background: rgba(255,255,255,.1);
    color: #fdba74;
    font-size: .74rem;
    font-weight: bold
}

.modern-hero-copy h1 {
    font-size: clamp(2.2rem,5vw,3rem);
    font-weight: bold;
    letter-spacing: -.045em;
    margin: .9rem 0
}

    .modern-hero-copy h1 em {
        font-style: normal;
        color: #fb923c
    }

.modern-hero-copy p {
    max-width: 680px;
    margin: auto;
    color: #d7e0ed;
    font-size: 1rem
}

.modern-search-card {
    position: relative;
    z-index: 3;
    background: #fff;
    color: #1e293b;
    border: 1px solid #eef2f7;
    border-radius: 24px;
    padding: 1.45rem 1.55rem;
    box-shadow: 0 30px 65px rgba(0,0,0,.3)
}

.modern-search-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid #edf1f5
}

    .modern-search-head .trip-options {
        margin: 0;
        font-size: .8rem;
        font-weight: bold
    }

        .modern-search-head .trip-options input {
            accent-color: var(--public-orange)
        }

.assurance-pill {
    padding: .38rem .75rem;
    border-radius: 999px;
    background: #ecfdf5;
    border: 1px solid #a7f3d0;
    color: #047857;
    font-size: .68rem;
    font-weight: bold
}

.modern-search-grid {
    display: grid;
    grid-template-columns: minmax(190px,1.5fr) auto minmax(190px,1.5fr) minmax(165px,.8fr) minmax(170px,.8fr);
    align-items: center;
    gap: .65rem
}

.modern-field {
    position: relative;
    min-height: 64px;
    display: flex;
    align-items: center;
    gap: .75rem;
    padding: .68rem .85rem;
    background: #f8fafc;
    border: 1px solid var(--public-line);
    border-radius: 16px
}

    .modern-field:focus-within {
        background: #fff;
        border-color: var(--public-navy);
        box-shadow: 0 0 0 3px rgba(15,43,92,.1)
    }

    .modern-field > div {
        min-width: 0;
        flex: 1
    }

    .modern-field label {
        display: block;
        color: #94a3b8;
        font-size: .59rem;
        font-weight: bold;
        text-transform: uppercase;
        letter-spacing: .08em
    }

    .modern-field input {
        width: 100%;
        border: 0;
        outline: 0;
        background: transparent;
        color: #1e293b;
        font-size: 12px;
        font-weight: bold;
        padding: .15rem 0
    }

.field-icon {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: #eff6ff;
    color: var(--public-navy);
    font-size: .7rem
}

.destination-icon {
    background: #fff7ed;
    color: var(--public-orange)
}

.date-icon {
    background: #ecfdf5;
    color: var(--public-teal)
}

.modern-swap {
    position: relative;
    z-index: 4;
    width: 34px;
    height: 34px;
    margin: 0 -17px;
    border: 1px solid #cbd5e1;
    border-radius: 50%;
    background: #fff;
    color: var(--public-orange);
    box-shadow: 0 4px 12px rgba(15,23,42,.14)
}

.modern-search-button {
    grid-column: 5;
    min-height: 64px;
    border: 0;
    border-radius: 16px;
    background: var(--public-orange);
    color: #fff;
    font-weight: bold;
    box-shadow: 0 10px 22px rgba(255,107,0,.25)
}

.modern-search-grid .return-date:not([hidden]) {
    grid-column: 4
}

    .modern-search-grid .return-date:not([hidden]) ~ .modern-search-button {
        grid-column: 5
    }

.quick-picks {
    display: flex;
    align-items: center;
    gap: .55rem;
    flex-wrap: wrap;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #eef2f7;
    font-size: .66rem;
    color: #64748b
}

    .quick-picks b {
        padding: .35rem .65rem;
        border-radius: 999px;
        background: #f1f5f9;
        color: #475569
    }

    .quick-picks strong {
        margin-left: auto;
        color: #334155
    }

.search-error {
    margin-top: .75rem
}

.modern-stats {
    position: relative;
    z-index: 4;
    margin: -3.2rem auto 0;
    padding: 0 1rem
}

    .modern-stats .container {
        display: grid;
        grid-template-columns: repeat(4,1fr);
        background: #fff;
        border: 1px solid #edf0f4;
        border-radius: 18px;
        box-shadow: 0 12px 30px rgba(15,23,42,.09)
    }

        .modern-stats .container > div {
            text-align: center;
            padding: 1.25rem;
            border-right: 1px solid #eef2f7
        }

            .modern-stats .container > div:last-child {
                border: 0
            }

    .modern-stats strong {
        display: block;
        color: var(--public-navy);
        font-size: 1.5rem;
        font-weight: bold
    }

    .modern-stats div:nth-child(2) strong {
        color: var(--public-orange)
    }

    .modern-stats div:nth-child(3) strong {
        color: var(--public-teal)
    }

    .modern-stats span {
        color: #64748b;
        font-size: .62rem;
        font-weight: bold;
        text-transform: uppercase;
        letter-spacing: .06em
    }

.modern-section {
    padding-top: 4.5rem;
    padding-bottom: 4.5rem
}

.modern-section-title {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1.7rem
}

    .modern-section-title span, .offers-hero span {
        color: var(--public-orange);
        font-size: .68rem;
        font-weight: bold;
        text-transform: uppercase;
        letter-spacing: .1em
    }

    .modern-section-title h2 {
        color: var(--public-navy);
        font-size: clamp(1.7rem,3vw,2.35rem);
        font-weight: bold;
        letter-spacing: -.035em;
        margin: .3rem 0 0
    }

    .modern-section-title p {
        color: #64748b;
        margin: .5rem 0 0
    }

    .modern-section-title > a {
        color: var(--public-orange);
        font-size: .75rem;
        font-weight: bold;
        text-decoration: none
    }

    .modern-section-title.centered {
        justify-content: center;
        text-align: center
    }

.modern-offer-grid, .coupon-grid {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 1.2rem
}

.deal {
    min-height: 210px;
    padding: 1.5rem;
    border-radius: 24px;
    color: #fff;
    box-shadow: 0 12px 24px rgba(15,23,42,.12)
}

    .deal.navy {
        background: linear-gradient(135deg,#1e3a8a,var(--public-navy))
    }

    .deal.teal {
        background: linear-gradient(135deg,#115e59,#0f766e)
    }

    .deal.orange {
        background: linear-gradient(135deg,#d97706,var(--public-orange))
    }

    .deal small {
        font-size: .58rem;
        font-weight: bold
    }

    .deal h3 {
        font-size: 1.25rem;
        font-weight: bold;
        margin: 1rem 0 .4rem
    }

    .deal p {
        font-size: .72rem;
        opacity: .85;
        min-height: 48px
    }

    .deal b {
        display: inline-block;
        padding: .36rem .6rem;
        border: 1px dashed rgba(255,255,255,.45);
        border-radius: 8px;
        background: rgba(255,255,255,.1);
        font-size: .65rem
    }

.modern-routes {
    background: #fff;
    border-block: 1px solid #eef2f7
}

.modern-route-grid {
    display: grid;
    grid-template-columns: repeat(4,1fr);
    gap: 1rem
}

    .modern-route-grid a {
        display: block;
        padding: 1.2rem;
        background: #f8fafc;
        border: 1px solid var(--public-line);
        border-radius: 17px;
        color: #334155;
        text-decoration: none;
        transition: .2s
    }

        .modern-route-grid a:hover {
            transform: translateY(-3px);
            border-color: #fdba74;
            box-shadow: 0 14px 30px rgba(15,23,42,.09)
        }

    .modern-route-grid small {
        color: var(--public-teal);
        font-weight: bold
    }

    .modern-route-grid h3 {
        color: var(--public-navy);
        font-size: .9rem;
        font-weight: bold;
        margin: .55rem 0
    }

    .modern-route-grid p {
        font-size: .68rem;
        color: #64748b
    }

    .modern-route-grid b {
        font-size: .68rem;
        color: var(--public-orange)
    }

.modern-benefits {
    display: grid;
    grid-template-columns: repeat(3,1fr);
    gap: 1.4rem
}

    .modern-benefits article {
        text-align: center;
        padding: 1.6rem;
        background: #fff;
        border: 1px solid #eef2f7;
        border-radius: 22px
    }

    .modern-benefits i {
        width: 56px;
        height: 56px;
        margin: auto;
        display: grid;
        place-items: center;
        border-radius: 16px;
        background: #eff6ff;
        color: var(--public-navy);
        font-size: 1.4rem;
        font-style: normal
    }

    .modern-benefits h3 {
        color: var(--public-navy);
        font-size: 1rem;
        font-weight: bold;
        margin: 1rem 0 .4rem
    }

    .modern-benefits p {
        font-size: .74rem;
        color: #64748b;
        margin: 0
    }

.offers-hero {
    text-align: center;
    padding: 3.4rem 1rem;
    background: var(--public-navy);
    color: #fff
}

    .offers-hero span {
        display: inline-block;
        color: #fff;
        background: var(--public-orange);
        border-radius: 999px;
        padding: .35rem .7rem
    }

    .offers-hero h1 {
        font-size: clamp(2rem,4vw,3.2rem);
        font-weight: bold;
        letter-spacing: -.04em;
        margin: .8rem 0 .4rem
    }

    .offers-hero p {
        color: #cbd5e1;
        margin: 0
    }

.offer-tabs {
    display: flex;
    gap: .65rem;
    overflow: auto;
    margin-bottom: 1.8rem
}

    .offer-tabs button {
        white-space: nowrap;
        border: 1px solid var(--public-line);
        border-radius: 12px;
        background: #fff;
        padding: .7rem 1rem;
        color: #475569;
        font-size: .7rem;
        font-weight: bold
    }

    .offer-tabs .active {
        background: var(--public-navy);
        border-color: var(--public-navy);
        color: #fff
    }

.coupon-grid article {
    display: flex;
    flex-direction: column;
    padding: 1.45rem;
    background: #fff;
    border: 1px solid var(--public-line);
    border-radius: 22px;
    box-shadow: 0 6px 15px rgba(15,23,42,.04)
}

    .coupon-grid article > div {
        display: flex;
        justify-content: space-between;
        gap: .5rem;
        align-items: center
    }

        .coupon-grid article > div > small {
            font-size: .6rem;
            color: #94a3b8
        }

.coupon-tag {
    padding: .3rem .55rem;
    border-radius: 999px;
    font-size: .56rem;
    font-weight: bold
}

    .coupon-tag.orange {
        background: #fff7ed;
        color: var(--public-orange)
    }

    .coupon-tag.teal {
        background: #ecfdf5;
        color: #047857
    }

    .coupon-tag.navy {
        background: #eff6ff;
        color: var(--public-navy)
    }

.coupon-grid h2 {
    color: var(--public-navy);
    font-size: 1.12rem;
    font-weight: bold;
    margin: 1rem 0 .45rem
}

.coupon-grid p {
    font-size: .72rem;
    color: #64748b;
    min-height: 48px
}

.coupon-grid footer {
    display: flex;
    align-items: end;
    justify-content: space-between;
    gap: .5rem;
    padding-top: 1rem;
    margin-top: auto;
    border-top: 1px solid #eef2f7
}

    .coupon-grid footer small {
        display: block;
        color: #94a3b8;
        font-size: .55rem;
        font-weight: bold
    }

    .coupon-grid footer strong {
        display: inline-block;
        padding: .25rem .45rem;
        border: 1px dashed #cbd5e1;
        border-radius: 6px;
        background: #f8fafc;
        color: var(--public-navy);
        font-size: .67rem
    }

    .coupon-grid footer a {
        padding: .52rem .75rem;
        border-radius: 10px;
        background: var(--public-orange);
        color: #fff;
        text-decoration: none;
        font-size: .65rem;
        font-weight: bold
    }

.offer-note {
    margin-top: 1.4rem;
    padding: 1.4rem;
    background: #fff;
    border: 1px solid var(--public-line);
    border-radius: 18px
}

    .offer-note h2 {
        color: var(--public-navy);
        font-size: 1rem;
        font-weight: bold
    }

    .offer-note p {
        font-size: .74rem;
        color: #64748b;
        margin: 0
    }

.location-picker {
    position: relative
}

.location-suggestions {
    position: absolute;
    top: calc(100% + 8px);
    left: 0;
    right: 0;
    z-index: 2100;
    max-height: 360px;
    overflow: auto;
    background: #fff;
    border: 1px solid #dbe3ec;
    border-radius: 16px;
    box-shadow: 0 22px 50px rgba(15,23,42,.2);
    padding: .45rem
}

    .location-suggestions[hidden] {
        display: none
    }

.location-suggestions-heading {
    padding: .55rem .7rem .25rem;
    color: #94a3b8;
    font-size: .56rem;
    font-weight: bold;
    text-transform: uppercase;
    letter-spacing: .1em
}

.location-option {
    width: 100%;
    display: grid;
    grid-template-columns: 38px 1fr auto;
    align-items: center;
    gap: .7rem;
    border: 0;
    border-radius: 11px;
    background: transparent;
    padding: .65rem;
    text-align: left
}

    .location-option:hover, .location-option.active {
        background: #f1f5f9
    }

.location-option-icon {
    width: 36px;
    height: 36px;
    display: grid;
    place-items: center;
    border-radius: 11px;
    background: #eff6ff;
    color: var(--public-navy);
    font-weight: bold
}

.location-option.point .location-option-icon {
    background: #fff7ed;
    color: var(--public-orange)
}

.location-option strong, .location-option small {
    display: block
}

.location-option strong {
    color: #1e293b;
    font-size: .75rem
}

.location-option small {
    margin-top: .12rem;
    color: #64748b;
    font-size: .61rem
}

.location-option-type {
    color: #94a3b8;
    font-size: .56rem;
    font-weight: bold;
    text-transform: uppercase
}

.location-empty {
    padding: 1rem;
    text-align: center;
    color: #64748b;
    font-size: .7rem
}

.bus-results-hero {
    padding: 1.35rem 0 !important;
    background: var(--public-navy) !important;
    color: #fff
}

    .bus-results-hero .eyebrow {
        color: #fdba74
    }

    .bus-results-hero h1 {
        font-size: 1.45rem !important;
        margin: .35rem 0 !important;
        max-width: none
    }

    .bus-results-hero p {
        color: #cbd5e1;
        margin: 0;
        font-size: .76rem
    }

    .bus-results-hero h1 b {
        color: var(--public-orange)
    }

.bus-search-page {
    padding-top: 1.7rem
}

.result-layout {
    grid-template-columns: 260px minmax(0,1fr);
    gap: 1.35rem
}

.search-filters, .bus-result-card {
    border-color: var(--public-line);
    border-radius: 18px
}

.filter-heading h2, .bus-identity h2 {
    color: var(--public-navy);
    font-weight: bold
}

.filter-heading button, .journey-points summary {
    color: var(--public-orange)
}

.bus-type-pill {
    background: #ecfdf5;
    color: #047857
}

.bus-result-card {
    box-shadow: 0 5px 16px rgba(15,23,42,.05)
}

    .bus-result-card:hover {
        border-color: #fdba74;
        box-shadow: 0 14px 30px rgba(15,23,42,.08)
    }

.bus-result-footer .btn-brand {
    background: var(--public-orange);
    border-color: var(--public-orange)
}

.result-toolbar .btn {
    border-color: var(--public-navy);
    color: var(--public-navy)
}

.result-sort {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: .25rem .5rem;
    background: #fff;
    border: 1px solid var(--public-line);
    border-radius: 16px;
    font-size: .68rem
}

    .result-sort span {
        color: #64748b;
        font-weight: bold
    }

    .result-sort div {
        display: flex;
        gap: .45rem
    }

    .result-sort button {
        border: 0;
        border-radius: 9px;
        background: #f1f5f9;
        color: #475569;
        padding: .45rem .7rem;
        font-weight: bold
    }

        .result-sort button.active {
            background: var(--public-navy);
            color: #fff
        }

@media(max-width:991.98px) {
    .modern-search-grid {
        grid-template-columns: 1fr 1fr
    }

    .modern-swap {
        display: none
    }

    .modern-search-button {
        grid-column: 1/-1
    }

    .modern-search-grid .return-date:not([hidden]), .modern-search-grid .return-date:not([hidden]) ~ .modern-search-button {
        grid-column: auto
    }

    .modern-offer-grid, .coupon-grid, .modern-benefits {
        grid-template-columns: repeat(2,1fr)
    }

    .modern-route-grid {
        grid-template-columns: repeat(2,1fr)
    }

    .result-layout {
        grid-template-columns: 1fr
    }
}

@media(max-width:575.98px) {
    .public-topbar .container > span:first-child {
        display: none
    }

    .modern-home-hero {
        padding: 2.5rem 0 5.8rem
    }

    .modern-search-card {
        padding: 1rem;
        border-radius: 20px
    }

    .modern-search-head {
        align-items: start;
        flex-direction: column
    }

        .modern-search-head .trip-options {
            gap: .65rem;
            flex-wrap: wrap
        }

    .modern-search-grid {
        grid-template-columns: 1fr
    }

        .modern-search-grid .return-date:not([hidden]), .modern-search-grid .return-date:not([hidden]) ~ .modern-search-button {
            grid-column: auto
        }

    .modern-search-button {
        grid-column: auto
    }

    .quick-picks strong {
        margin-left: 0
    }

    .modern-stats .container {
        grid-template-columns: 1fr 1fr
    }

        .modern-stats .container > div {
            border-bottom: 1px solid #eef2f7
        }

    .modern-offer-grid, .coupon-grid, .modern-benefits, .modern-route-grid {
        grid-template-columns: 1fr
    }

    .modern-section {
        padding-top: 3rem;
        padding-bottom: 3rem
    }

    .modern-section-title {
        align-items: start;
        flex-direction: column
    }

    .coupon-grid p {
        min-height: 0
    }

    .result-sort {
        align-items: start;
        flex-direction: column
    }

        .result-sort div {
            overflow: auto;
            width: 100%
        }

    .location-suggestions {
        position: fixed;
        max-height: 360px
    }
}

.modern-search-grid.has-return {
    grid-template-columns: minmax(170px,1.35fr) auto minmax(170px,1.35fr) minmax(145px,.75fr) minmax(145px,.75fr) minmax(150px,.75fr)
}

    .modern-search-grid.has-return .return-date:not([hidden]) {
        grid-column: 5 !important
    }

    .modern-search-grid.has-return .modern-search-button {
        grid-column: 6 !important
    }

@media(max-width:991.98px) {
    .modern-search-grid.has-return {
        grid-template-columns: 1fr 1fr
    }

        .modern-search-grid.has-return .return-date:not([hidden]) {
            grid-column: auto !important
        }

        .modern-search-grid.has-return .modern-search-button {
            grid-column: 1/-1 !important
        }
}

@media(max-width:575.98px) {
    .modern-search-grid.has-return {
        grid-template-columns: 1fr
    }

        .modern-search-grid.has-return .modern-search-button {
            grid-column: auto !important
        }
}

.modern-search-card {
    z-index: 30
}

.modern-home-hero {
    z-index: 5;
    overflow: visible
}

.modern-stats {
    z-index: 5
}

.location-suggestions {
    z-index: 5000
}

.modify-search-panel {
    z-index: 6000;
    padding: 1.25rem;
    backdrop-filter: blur(7px);
    background: rgba(7,24,56,.72)
}

    .modify-search-panel > .modify-journey-dialog {
        width: min(100%,760px);
        border: 1px solid rgba(255,255,255,.25);
        border-radius: 24px;
        padding: 1.6rem;
        box-shadow: 0 30px 80px rgba(7,24,56,.35)
    }

.modify-heading {
    display: flex;
    align-items: center;
    gap: .9rem;
    padding-right: 2.2rem;
    margin-bottom: 1.35rem
}

    .modify-heading > span {
        width: 48px;
        height: 48px;
        display: grid;
        place-items: center;
        border-radius: 15px;
        background: #eff6ff;
        color: var(--public-navy);
        font-size: 1.2rem;
        font-weight: bold
    }

    .modify-heading small {
        color: var(--public-orange);
        font-size: .58rem;
        font-weight: bold;
        letter-spacing: .12em
    }

    .modify-heading h2 {
        color: var(--public-navy);
        font-size: 1.35rem;
        margin: .1rem 0
    }

    .modify-heading p {
        color: #64748b;
        font-size: .7rem;
        margin: 0
    }

.modify-grid {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: end;
    gap: .8rem
}

    .modify-grid label {
        margin: 0;
        color: #334155;
        font-size: .68rem;
        font-weight: bold
    }

        .modify-grid label > span {
            display: block;
            margin-bottom: .38rem
        }

    .modify-grid input {
        margin: 0;
        min-height: 54px;
        border-color: #dbe3ec;
        border-radius: 13px;
        padding: .75rem
    }

    .modify-grid .ab-floating-field {
        display: block
    }

        .modify-grid .ab-floating-field label {
            color: var(--public-orange);
            font-size: .57rem
        }

.modify-swap {
    width: 38px;
    height: 38px;
    margin-bottom: 8px;
    border: 1px solid #cbd5e1;
    border-radius: 50%;
    background: #fff;
    color: var(--public-orange)
}

.modify-date {
    grid-column: 1/-1
}

.modify-actions {
    display: flex;
    justify-content: flex-end;
    gap: .7rem;
    padding-top: 1.2rem;
    margin-top: 1.2rem;
    border-top: 1px solid #eef2f7
}

    .modify-actions .btn {
        min-width: 140px;
        min-height: 46px;
        border-radius: 12px;
        font-size: 12px;
        font-weight: bold
    }

    .modify-actions .btn-brand {
        background: var(--public-orange);
        border-color: var(--public-orange)
    }

.modify-error {
    margin-top: .8rem;
    padding: .65rem .8rem;
    border-radius: 10px;
    background: #fff1f2;
    color: #be123c;
    font-size: .7rem;
    font-weight: bold
}

.modify-open {
    overflow: hidden
}

.modify-search-panel .location-suggestions {
    top: calc(100% + 7px);
    bottom: auto
}

.modern-route-grid:has(>span:only-child) {
    grid-template-columns: 1fr
}

.modern-route-grid > span {
    display: contents
}

@media(max-width:575.98px) {
    .modify-search-panel {
        align-items: end;
        padding: 0
    }

        .modify-search-panel > .modify-journey-dialog {
            border-radius: 24px 24px 0 0;
            padding: 1.2rem
        }

    .modify-heading {
        margin-bottom: 1rem
    }

    .modify-grid {
        grid-template-columns: 1fr
    }

    .modify-swap {
        display: grid;
        place-items: center;
        justify-self: center;
        margin: -.15rem 0;
        transform: rotate(90deg)
    }

    .modify-date {
        grid-column: auto
    }

    .modify-actions .btn {
        min-width: 0;
        flex: 1
    }

    .modify-search-panel .location-suggestions {
        position: fixed;
        top: auto;
        bottom: .75rem
    }

    .modern-search-card {
        z-index: 30
    }
}

.modern-home-hero {
    position: relative
}

.location-suggestions-portal {
    position: fixed !important;
    z-index: 10000 !important;
    right: auto
}

.route-card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .5rem
}

.modern-route-grid .route-card-meta small {
    color: #94a3b8;
    font-size: .63rem
}

.route-card-meta strong {
    color: var(--public-teal);
    font-size: .62rem
}

.modern-route-grid a > p {
    min-height: 34px
}

.modern-route-grid a > footer {
    display: flex;
    align-items: end;
    justify-content: space-between;
    margin-top: 1rem;
    padding-top: .8rem;
    border-top: 1px solid #e8edf3
}

.modern-route-grid a:hover > footer {
    border-top-color: #2563eb
}

.modern-route-grid a > footer span small {
    display: block;
    color: #94a3b8;
    font-size: .55rem
}

.modern-route-grid a > footer span b {
    display: block;
    margin-top: .15rem;
    color: var(--public-navy);
    font-size: 1.05rem
}

.modern-route-grid a > footer i {
    width: 34px;
    height: 34px;
    display: grid;
    place-items: center;
    border-radius: 50%;
    background: #eef2f7;
    color: var(--public-navy);
    font-style: normal;
    font-weight: bold
}

.modern-route-grid a:hover > footer i {
    background: var(--public-orange);
    color: #fff
}

.search-summary-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1.5rem
}

.hero-result-count {
    display: inline-flex;
    margin-left: .7rem;
    padding: .25rem .5rem;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    color: #dbeafe;
    font-size: .62rem;
    font-weight: bold;
    vertical-align: middle;
    letter-spacing: 0
}

.date-stepper {
    display: flex;
    align-items: center;
    gap: .45rem;
    white-space: nowrap
}

    .date-stepper a, .date-stepper strong {
        padding: .5rem .75rem;
        border-radius: 10px;
        font-size: .67rem;
        font-weight: bold
    }

    .date-stepper a {
        background: rgba(255,255,255,.12);
        color: #fff;
        text-decoration: none
    }

        .date-stepper a:hover {
            background: rgba(255,255,255,.2)
        }

        .date-stepper a.disabled {
            opacity: .45;
            pointer-events: none
        }

    .date-stepper strong {
        background: #fff;
        color: var(--public-navy)
    }

.route-modifier-pill {
    width: max-content;
    max-width: 100%;
    display: flex;
    align-items: center;
    gap: .65rem;
    margin: 0 auto 1.4rem;
    padding: .45rem .55rem .45rem .9rem;
    border: 1px solid #dbe3ec;
    border-radius: 999px;
    background: #fff;
    box-shadow: 0 4px 12px rgba(15,23,42,.04);
    font-size: .67rem
}

    .route-modifier-pill strong {
        color: var(--public-navy)
    }

    .route-modifier-pill > b {
        color: var(--public-orange)
    }

    .route-modifier-pill > i {
        height: 18px;
        width: 1px;
        background: #cbd5e1
    }

    .route-modifier-pill > span {
        color: #64748b;
        font-weight: bold
    }

    .route-modifier-pill > button {
        border: 0;
        border-radius: 999px;
        background: var(--public-navy);
        color: #fff;
        padding: .45rem .75rem;
        font-size: .63rem;
        font-weight: bold
    }

.result-toolbar {
    margin-bottom: .75rem
}

.result-count-banner {
    display: grid;
    grid-template-columns: auto auto 1fr;
    align-items: center;
    gap: .5rem;
    padding: .78rem 1rem;
    border: 1px solid #bfdbfe;
    border-radius: 14px;
    background: linear-gradient(100deg,#eff6ff 0%,#ecfeff 100%);
    color: var(--public-navy);
    box-shadow: 0 6px 18px rgba(15,43,91,.06)
}

    .result-count-banner > span {
        color: var(--public-orange);
        font-size: 1rem
    }

    .result-count-banner strong {
        font-size: .86rem
    }

    .result-count-banner small {
        color: #64748b;
        font-size: .67rem
    }

@media(max-width:767.98px) {
    .result-count-banner {
        grid-template-columns: auto 1fr
    }

        .result-count-banner small {
            grid-column: 2
        }

    .search-summary-row {
        align-items: flex-start;
        flex-direction: column
    }

    .date-stepper {
        width: 100%;
        justify-content: space-between
    }

    .route-modifier-pill {
        width: 100%;
        overflow: auto;
        justify-content: flex-start
    }

        .route-modifier-pill strong, .route-modifier-pill span {
            white-space: nowrap
        }

    .hero-result-count {
        display: none
    }
}

@media(max-width:575.98px) {
    .location-suggestions-portal {
        right: auto !important;
        bottom: auto !important;
        border-radius: 12px
    }

    .modern-route-grid a > p {
        min-height: 0
    }
}

.search-filters {
    align-self: start;
    overflow: hidden;
    padding: 1.1rem;
    background: #fff;
    box-shadow: 0 8px 24px rgba(15,23,42,.06)
}

    .search-filters .filter-heading {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding-bottom: .9rem;
        border-bottom: 1px solid #edf1f5
    }

        .search-filters .filter-heading h2 {
            display: flex;
            align-items: center;
            gap: .45rem;
            margin: 0;
            font-size: .9rem;
            text-transform: uppercase
        }

            .search-filters .filter-heading h2 span {
                color: var(--public-orange);
                font-size: 1.15rem
            }

        .search-filters .filter-heading button {
            border: 0;
            background: transparent;
            font-size: .65rem;
            font-weight: bold
        }

.filter-section {
    margin: 0;
    padding: 1rem 0;
    border: 0;
    border-bottom: 1px solid #edf1f5
}

    .filter-section h3, .filter-section legend {
        width: auto;
        margin: 0 0 .7rem;
        color: #334155;
        font-size: .67rem;
        font-weight: bold;
        text-transform: uppercase;
        letter-spacing: .02em
    }

.departure-filter-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: .45rem
}

    .departure-filter-grid button {
        min-width: 0;
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        padding: .65rem;
        border: 1px solid #dbe3ec;
        border-radius: 12px;
        background: #fff;
        color: #334155;
        text-align: left
    }

        .departure-filter-grid button i {
            color: var(--public-orange);
            font-style: normal
        }

        .departure-filter-grid button strong {
            margin: .18rem 0;
            font-size: .64rem
        }

        .departure-filter-grid button small {
            color: #747577;
            font-size: .54rem
        }

        .departure-filter-grid button.active {
            border-color: var(--public-navy);
            background: #f8fbff;
            box-shadow: inset 0 0 0 1px var(--public-navy)
        }

.bus-type-filters {
    display: grid;
    gap: .5rem
}

    .bus-type-filters button {
        display: flex;
        align-items: center;
        gap: .5rem;
        border: 0;
        background: transparent;
        padding: 0;
        color: var(--ab-ink) !important;
        text-align: left;
        font-size: .67rem;
        font-weight: bold;
    }

        .bus-type-filters button span {
            width: 15px;
            height: 15px;
            display: grid;
            place-items: center;
            border: 1px solid #a8b3c4;
            border-radius: 3px;
            color: transparent;
            font-size: .55rem
        }

        .bus-type-filters button.active span {
            border-color: var(--public-orange);
            background: var(--public-orange);
            color: #fff
        }

.search-filters .amenity-check {
    font-size: .67rem
}

.fare-range-filter > div, .fare-range-filter p {
    display: flex;
    align-items: center;
    justify-content: space-between
}

.fare-range-filter output {
    color: var(--public-orange);
    font-size: .67rem;
    font-weight: bold
}

.fare-range-filter input[type=range] {
    width: 100%;
    accent-color: var(--public-orange)
}

.fare-range-filter p {
    margin: .25rem 0 0;
    color: #94a3b8;
    font-size: .56rem
}

.search-filters > [data-apply-filters] {
    margin-top: 1rem;
    background: var(--public-orange);
    border-color: var(--public-orange)
}

@media(max-width:991.98px) {
    .search-filters {
        width: 100%
    }

    .departure-filter-grid {
        grid-template-columns: repeat(4,1fr)
    }

    .bus-type-filters {
        grid-template-columns: repeat(4,1fr)
    }
}

@media(max-width:767.98px) {
    .modify-search-panel {
        align-items: flex-end;
        padding: .5rem
    }

        .modify-search-panel > .modify-journey-dialog {
            width: 100%;
            max-height: calc(100dvh - 1rem);
            overflow-y: auto;
            border-radius: 22px;
            padding: 1rem
        }

    .modify-heading {
        align-items: flex-start;
        margin-bottom: .9rem;
        padding-right: 1.75rem
    }

        .modify-heading > span {
            width: 40px;
            height: 40px;
            flex: 0 0 40px
        }

        .modify-heading h2 {
            font-size: 1.12rem
        }

        .modify-heading p {
            font-size: .64rem
        }

    .modify-grid {
        grid-template-columns: 1fr;
        gap: .7rem
    }

        .modify-grid input {
            min-height: 50px
        }

    .modify-swap {
        display: grid;
        place-items: center;
        justify-self: center;
        margin: -.15rem 0;
        transform: rotate(90deg)
    }

    .modify-date {
        grid-column: auto
    }

    .modify-actions {
        position: sticky;
        bottom: -1rem;
        z-index: 2;
        margin: 1rem -1rem -1rem;
        padding: 1rem;
        background: #fff
    }

        .modify-actions .btn {
            min-width: 0;
            flex: 1
        }

    .modify-search-panel .location-suggestions {
        position: fixed;
        top: auto !important;
        bottom: .75rem !important;
        max-height: 48dvh
    }
}

@media(max-width:575.98px) {
    .departure-filter-grid {
        grid-template-columns: 1fr 1fr
    }

    .bus-type-filters {
        grid-template-columns: 1fr 1fr
    }

    .modify-heading p {
        display: none
    }

    .modify-actions {
        gap: .45rem
    }

        .modify-actions .btn {
            padding: .7rem .45rem
        }

    .search-filters {
        padding: 1rem
    }
}

html, body {
    max-width: 100%;
    overflow-x: hidden
}

.mixed-connection-section {
    margin-top: 1.25rem
}

.mixed-result-heading {
    margin: 0 0 .8rem;
    padding: .9rem 1rem;
    border: 1px solid #dbe3ec;
    border-radius: 14px;
    background: #fff
}

    .mixed-result-heading > span {
        color: var(--public-orange);
        font-size: .62rem;
        font-weight: bold;
        letter-spacing: .1em;
        text-transform: uppercase
    }

    .mixed-result-heading h2 {
        margin: .15rem 0;
        color: var(--public-navy);
        font-size: 1rem
    }

    .mixed-result-heading p {
        margin: 0;
        color: #64748b;
        font-size: .72rem
    }

.result-layout, .bus-results, .bus-result-card, .bus-result-main, .bus-result-footer, .journey-timeline, .modify-grid, .modify-grid label {
    min-width: 0
}

.bus-identity {
    min-width: 0
}

    .bus-identity p, .amenity-line {
        overflow-wrap: anywhere
    }

@media(max-width:575.98px) {
    .bus-search-page {
        padding-left: .65rem;
        padding-right: .65rem
    }

    .bus-results-hero .container {
        padding-left: .65rem;
        padding-right: .65rem
    }

    .date-stepper {
        gap: .25rem
    }

        .date-stepper a, .date-stepper strong {
            min-width: 0;
            padding: .48rem .5rem;
            font-size: .6rem
        }

    .route-modifier-pill {
        max-width: 100%;
        padding-left: .55rem;
        gap: .4rem
    }

        .route-modifier-pill strong {
            max-width: 29%;
            overflow: hidden;
            text-overflow: ellipsis
        }

        .route-modifier-pill > span {
            flex: 0 0 auto
        }

        .route-modifier-pill > button {
            margin-left: auto;
            flex: 0 0 auto
        }

    .journey-timeline {
        grid-template-columns: minmax(0,1fr) 54px minmax(0,1fr);
        gap: .3rem;
        padding: 1rem .75rem
    }

        .journey-timeline strong {
            font-size: .95rem
        }

        .journey-timeline span, .journey-timeline small {
            font-size: .70rem
        }

    .bus-result-main, .bus-result-footer {
        padding: 1rem .75rem
    }

    .amenity-line, .journey-points summary {
        padding-left: .75rem;
        padding-right: .75rem
    }

    .result-sort {
        max-width: 100%;
        padding: .7rem
    }

        .result-sort div {
            max-width: 100%
        }

    .modify-search-panel {
        align-items: flex-start !important;
        padding: .3rem !important;
        overflow: hidden
    }

        .modify-search-panel > .modify-journey-dialog {
            width: calc(100% - .1rem);
            max-width: calc(100% - .1rem);
            max-height: calc(100dvh - .6rem);
            margin: 0 auto;
            border-radius: 16px;
            padding: .85rem;
            overflow-x: hidden
        }

    .modify-heading {
        gap: .6rem;
        padding-right: 1.6rem
    }

        .modify-heading > span {
            width: 36px;
            height: 36px;
            flex-basis: 36px
        }

    .modify-grid, .modify-grid label, .modify-grid input {
        width: 100%;
        max-width: 100%
    }

    .modify-actions {
        bottom: -.85rem;
        margin: 1rem -.85rem -.85rem;
        padding: .85rem
    }

    .location-suggestions-portal {
        max-width: calc(100vw - 1rem) !important
    }
}

@media(max-width:359.98px) {
    .public-header .navbar > .container {
        padding-left: .45rem;
        padding-right: .45rem
    }

    .public-header .navbar-brand {
        gap: .35rem !important;
        margin-right: .35rem;
        font-size: .88rem
    }

        .public-header .navbar-brand img {
            width: 36px;
            height: 36px;
            padding: 5px
        }

        .public-header .navbar-brand small {
            display: none
        }

    .public-header .icon-button {
        width: 36px;
        height: 36px
    }

    .public-header .navbar-toggler {
        padding: .35rem .45rem
    }

    .date-stepper a, .date-stepper strong {
        padding: .45rem .38rem;
        font-size: .56rem
    }
}

.filter-heading-actions {
    display: flex;
    align-items: center;
    gap: .55rem
}

.filter-mobile-toggle {
    display: none !important
}

.filter-collapsible {
    display: block
}

.amenity-filter-category {
    margin: .75rem 0 .35rem;
    padding-top: .55rem;
    border-top: 1px dashed #d9e0ea;
    color: #64748b;
    font-size: .62rem;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: .05em
}

    .amenity-filter-category:first-child {
        margin-top: .2rem;
        border-top: 0
    }

.connection-card-heading, .connection-card-footer {
    padding: .8rem 1rem
}

.connection-legs > section {
    padding: .75rem 1rem
}

.connection-change {
    padding: .65rem
}

.connection-experience {
    margin: .55rem 1rem 0
}

.connection-card-footer {
    padding-top: .7rem
}

.bus-result-main {
    padding: .85rem 1rem
}

.journey-timeline {
    padding: .75rem 1rem
}

.bus-result-footer {
    padding: .75rem 1rem
}

.result-experience-tabs {
    padding: .45rem 0
}

.search-result-rating.compact {
    margin-top: .25rem
}

    .search-result-rating.compact strong {
        font-size: .68rem;
        padding: .18rem .35rem
    }

    .search-result-rating.compact span {
        font-size: .65rem
    }

/* Compact search cards: high information density without sacrificing touch targets. */
.bus-results {
    gap: .75rem
}

.bus-result-card, .connection-card {
    border-radius: 14px
}

.bus-result-main {
    padding: .7rem .85rem
}

.bus-identity h2 {
    margin: .28rem 0 .12rem;
    font-size: .95rem
}

.journey-timeline {
    padding: .55rem .85rem
}

    .journey-timeline .duration i {
        height: 1px;
        border: 0;
        background: var(--ab-border);
        box-shadow: none
    }

        .journey-timeline .duration i:after {
            display: none
        }

.result-experience-tabs {
    border-top: 1px solid var(--ab-border);
    gap: 0;
    padding: .25rem 0
}

    .result-experience-tabs a {
        padding: .42rem .65rem;
        font-size: .69rem;
        font-weight: bold
    }

.bus-result-footer {
    align-items: center;
    padding: .55rem .85rem
}

    .bus-result-footer > div:first-child strong {
        font-size: 1.05rem
    }

.connection-card-heading, .connection-card-footer {
    padding: .6rem .8rem
}

    .connection-card-heading h2 {
        margin: .25rem 0 .1rem;
        font-size: 1rem
    }

.connection-legs > section {
    padding: .55rem .7rem;
    gap: .55rem
}

.connection-change {
    padding: .45rem
}

.connection-card-footer {
    padding: .5rem .8rem
}

.seat-badge {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    flex: none;
    white-space: nowrap;
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    padding: 2px 8px;
    border-radius: 9999px;
    font-family: system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif
}

.seat-svg {
    width: 16px;
    height: 16px;
    color: #16a34a;
    flex-shrink: 0
}

.seat-text {
    font-size: 11px;
    color: #166534;
    line-height: 1
}

    .seat-text strong {
        font-weight: 700;
        color: #15803d
    }

.search-bus-chips {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: .3rem;
    align-items: center;
    min-width: 0
}

.search-bus-chip {
    display: inline-flex;
    padding: .24rem .48rem;
    border-radius: 999px;
    background: #eef2f7;
    color: #334155;
    font-size: .62rem;
    font-weight: 500;
    white-space: nowrap
}

.connection-legs > section > .search-bus-chips {
    grid-column: 2/-1
}

html[data-ab-theme="dark"] .search-bus-chip {
    background: #263244;
    color: #dbeafe
}

.is-hidden {
    display: none !important
}

.connection-legs > section > .seat-badge {
    grid-column: 3;
    grid-row: 1;
    justify-self: end
}

.connection-legs > section > .connection-time {
    grid-column: 2/-1;
    grid-row: 2;
    flex-direction: row;
    flex-wrap: wrap;
    gap: .25rem;
    text-align: left
}

.connection-legs > section > .search-bus-chips {
    grid-column: 2/-1;
    grid-row: 3
}

.connection-legs > section > .connection-time span {
    align-self: center
}

@media(max-width:767px) {
    .connection-legs > section > .seat-badge {
        grid-column: 3;
        grid-row: 1
    }

    .connection-legs > section > .search-bus-chips {
        grid-column: 2/-1;
        grid-row: 3
    }
}

@media(max-width:400px) {
    .connection-legs > section > .seat-badge {
        grid-column: 2;
        grid-row: 2;
        justify-self: start
    }

    .connection-legs > section > .connection-time {
        grid-column: 2;
        grid-row: 3
    }

    .connection-legs > section > .search-bus-chips {
        grid-column: 2;
        grid-row: 4
    }
}


.result-seat-meta {
    display: flex;
    flex: none;
    flex-direction: column;
    align-items: flex-start;
    align-self: flex-start;
    max-width: 100%;
    min-width: 0
}

    .result-seat-meta .seat-badge {
        width: max-content;
        max-width: 100%;
        height: auto;
        min-height: 27px;
        align-self: flex-start;
        flex: 0 0 auto;
        border-radius: 9999px;
        aspect-ratio: auto
    }

    .result-seat-meta .seat-text {
        white-space: nowrap
    }

    .result-seat-meta .mobile-rating {
        display: none
    }

.connection-legs > section > .result-seat-meta {
    grid-column: 3;
    grid-row: 1;
    justify-self: end
}

@media(max-width:767.98px) {
    .bus-result-main {
        align-items: flex-start
    }

    .bus-identity {
        flex: 1 1 0;
        min-width: 0
    }

        .bus-identity > .search-result-rating, .connection-legs > section > div:nth-child(2) > .search-result-rating {
            display: none
        }

    .result-seat-meta {
        flex: 0 0 auto;
        align-self: flex-start;
        align-items: flex-start;
        max-width: min(48%,155px)
    }

        .result-seat-meta .mobile-rating {
            display: inline-flex;
            align-items: center;
            flex-wrap: wrap;
            gap: .22rem;
            margin-top: .38rem;
            max-width: 100%;
            white-space: normal
        }

            .result-seat-meta .mobile-rating strong {
                font-size: .67rem;
                padding: .18rem .36rem
            }

            .result-seat-meta .mobile-rating span {
                font-size: .65rem
            }

    .connection-legs > section > .result-seat-meta {
        grid-column: 3;
        grid-row: 1;
        max-width: 145px
    }

    .connection-legs > section > .search-bus-chips {
        grid-column: 2/-1;
        grid-row: 3
    }
}

@media(max-width:400px) {
    .result-seat-meta {
        max-width: 48%
    }

        .result-seat-meta .seat-badge {
            padding: 4px 6px
        }

        .result-seat-meta .seat-text {
            font-size: 10px
        }

    .connection-legs > section > .result-seat-meta {
        grid-column: 2;
        grid-row: 2;
        justify-self: start;
        max-width: 100%
    }

    .connection-legs > section > .connection-time {
        grid-column: 2;
        grid-row: 3
    }

    .connection-legs > section > .search-bus-chips {
        grid-column: 2;
        grid-row: 4
    }
}

@media(max-width:767px) {
    .connection-legs > section > .search-bus-chips {
        grid-column: 1/-1
    }

    .result-experience-tabs a {
        padding: .4rem .55rem
    }

    .bus-result-main, .journey-timeline, .bus-result-footer {
        padding-left: .65rem;
        padding-right: .65rem
    }
}

/* Search result density and the straight left-to-right journey arrow. */
.bus-result-footer {
    display: grid;
    grid-template-columns: auto minmax(0,1fr) auto;
    gap: .6rem;
    align-items: center
}

    .bus-result-footer > .search-bus-chips {
        display: flex;
        flex-direction: row;
        flex-wrap: wrap;
        gap: .3rem
    }

.journey-timeline .duration i {
    height: 1px;
    background: var(--ab-border);
    position: relative
}

    .journey-timeline .duration i:after {
        display: block;
        content: "";
        position: absolute;
        right: 0;
        top: -3px;
        border-left: 6px solid var(--ab-border);
        border-top: 3px solid transparent;
        border-bottom: 3px solid transparent
    }

.connection-legs > section {
    grid-template-columns: 24px minmax(0,1fr) auto;
    column-gap: .5rem;
    row-gap: .35rem
}

    .connection-legs > section > .seat-badge {
        grid-column: 2/-1;
        justify-self: start
    }

    .connection-legs > section > .search-bus-chips {
        grid-column: 2/-1
    }

.connection-legs h3 {
    margin: .1rem 0
}

.connection-card-heading, .connection-card-footer {
    padding: .5rem .7rem
}

.connection-legs > section {
    padding: .45rem .6rem
}

.connection-change {
    padding: .4rem
}

.bus-result-main, .journey-timeline, .bus-result-footer {
    padding-block: .45rem
}

.bus-results {
    gap: .55rem
}

.result-count-banner {
    padding-block: .5rem
}

html[data-ab-theme="dark"] .seat-badge {
    background: #123325;
    border-color: #28764a
}

html[data-ab-theme="dark"] .seat-text {
    color: #bbf7d0
}

    html[data-ab-theme="dark"] .seat-text strong, html[data-ab-theme="dark"] .seat-svg {
        color: #4ade80
    }

@media(max-width:991.98px) {
    .connection-legs {
        grid-template-columns: 1fr
    }

        .connection-legs > section {
            grid-template-columns: 24px minmax(0,1fr) auto
        }

    .connection-change {
        padding: .4rem .65rem
    }
}

@media(max-width:767px) {
    .bus-result-footer {
        grid-template-columns: minmax(0,1fr) auto
    }

        .bus-result-footer > .search-bus-chips {
            grid-column: 1/-1;
            grid-row: 2
        }

        .bus-result-footer > .d-flex {
            grid-column: 2;
            grid-row: 1
        }

    .connection-legs > section > .seat-badge {
        grid-column: 2/-1
    }

    .connection-legs > section > .search-bus-chips {
        grid-column: 2/-1
    }

    .connection-card-heading, .connection-card-footer {
        flex-direction: row;
        align-items: center
    }

        .connection-card-footer .btn {
            width: auto
        }

    .journey-timeline {
        gap: .4rem
    }

    .seat-badge {
        padding: 4px 8px;
        gap: 5px
    }

    .seat-text {
        font-size: 11px
    }
}

@media(max-width:400px) {
    .connection-legs > section {
        grid-template-columns: 22px minmax(0,1fr)
    }

    .connection-time {
        grid-column: 2;
        text-align: left;
        flex-direction: row;
        gap: .35rem;
        flex-wrap: wrap
    }

    .bus-result-main {
        gap: .4rem
    }

    .seat-badge {
        padding: 4px 6px
    }

    .seat-svg {
        width: 14px;
        height: 14px
    }
}

@media(max-width:767.98px) {
    .filter-mobile-toggle {
        display: inline-flex !important;
        align-items: center;
        gap: .25rem
    }

    .search-filters .filter-heading {
        padding-bottom: 0;
        border-bottom: 0
    }

    .search-filters.filters-expanded .filter-heading {
        padding-bottom: .75rem;
        border-bottom: 1px solid #edf1f5
    }

    .search-filters .filter-collapsible {
        display: none
    }

    .search-filters.filters-expanded .filter-collapsible {
        display: block
    }

    .filter-heading-actions > [data-clear-filters] {
        display: none
    }

    .search-filters.filters-expanded .filter-heading-actions > [data-clear-filters] {
        display: inline-block
    }

    .departure-filter-grid, .bus-type-filters {
        grid-template-columns: 1fr 1fr
    }

    .amenity-filter-category {
        margin-top: .55rem
    }
}

html[data-ab-theme="dark"] .amenity-filter-category {
    border-color: #344158;
    color: #aab7ca
}

html[data-ab-theme="dark"] .search-filters.filters-expanded .filter-heading {
    border-color: #344158
}
/* Final per-leg placement follows the mobile rules above. */
.connection-legs > section > .seat-badge {
    grid-column: 3;
    grid-row: 1;
    justify-self: end
}

.connection-legs > section > .connection-time {
    grid-column: 2/-1;
    grid-row: 2;
    flex-direction: row;
    flex-wrap: wrap;
    gap: .25rem;
    text-align: left
}

.connection-legs > section > .search-bus-chips {
    grid-column: 2/-1;
    grid-row: 3
}

@media(max-width:400px) {
    .connection-legs > section > .seat-badge {
        grid-column: 2;
        grid-row: 2;
        justify-self: start
    }

    .connection-legs > section > .connection-time {
        grid-column: 2;
        grid-row: 3
    }

    .connection-legs > section > .search-bus-chips {
        grid-column: 2;
        grid-row: 4
    }
}

/* Search card emphasis and aligned, stacked connection details. */
.journey-kind-badge {
    border: 1px solid #a8e4bd;
}

html[data-ab-theme="dark"] .journey-kind-badge {
    border-color: #28764a;
}

.bus-result-card, .connection-card {
    transition: border-color .2s ease, box-shadow .2s ease;
}

    .bus-result-card:hover, .bus-result-card:focus-within,
    .connection-card:hover, .connection-card:focus-within {
        border-color: #7093f2;
        box-shadow: 0 0 0 2px rgb(87, 169, 230, 0.20), 0 10px 26px rgb(92, 174, 243, 0.18);
    }

.result-seat-meta .seat-badge {
    background: #e7f8ed;
    border: 1px solid #a8e4bd;
    color: #08783d;
}

html[data-ab-theme="dark"] .result-seat-meta .seat-badge {
    background: #123c2b;
    border-color: #28764a;
}

.connection-legs > section {
    grid-template-columns: 24px minmax(0,1fr) auto;
    align-items: start;
    column-gap: .5rem;
}

    .connection-legs > section > .connection-leg-details {
        grid-column: 2;
        grid-row: 1;
        min-width: 0;
    }

    .connection-legs > section > .result-seat-meta {
        grid-column: 3;
        grid-row: 1;
        justify-self: end;
        align-items: flex-end;
        max-width: none;
    }

        .connection-legs > section > .result-seat-meta .mobile-rating {
            display: inline-flex;
            align-items: center;
            gap: .3rem;
            margin-top: .28rem;
            white-space: nowrap;
        }

    .connection-legs > section > .connection-leg-details .connection-time {
        display: flex;
        flex-direction: column;
        align-items: flex-start;
        gap: .18rem;
        margin-top: .3rem;
        text-align: left;
    }

.connection-leg-details .connection-time > div {
    display: flex;
    align-items: baseline;
    flex-wrap: wrap;
    column-gap: .35rem;
    line-height: 1.25;
}

.connection-leg-details .connection-time span {
    color: var(--ab-muted);
    min-width: 3.3rem;
}

.connection-leg-details .connection-time strong {
    font-weight: 500;
}

.connection-legs > section > .search-bus-chips {
    grid-column: 2/-1;
    grid-row: 2;
}

@media(max-width:767.98px) {
    .connection-legs > section {
        grid-template-columns: 22px minmax(0,1fr) auto;
    }

        .connection-legs > section > .result-seat-meta {
            max-width: min(42vw,145px);
        }

            .connection-legs > section > .result-seat-meta .mobile-rating {
                flex-wrap: wrap;
                justify-content: flex-end;
                white-space: normal;
            }

    .connection-leg-details .connection-time > div {
        display: block;
    }

    .connection-leg-details .connection-time span {
        display: block;
    }

    .connection-legs > section > .search-bus-chips {
        grid-column: 2/-1;
        grid-row: 2;
    }
}

@media(max-width:400px) {
    .connection-legs > section > .result-seat-meta {
        grid-column: 3;
        grid-row: 1;
        max-width: 125px;
    }

    .connection-legs > section > .search-bus-chips {
        grid-column: 2/-1;
        grid-row: 2;
    }
}

/* Compact two-part rating badge with score-range colours. */
.rating-badge.search-result-rating {
    --rating-score: #64748b;
    --rating-surface: #f1f5f9;
    --rating-count: #334155;
    display: inline-flex;
    flex-direction: column;
    align-items: stretch;
    gap: 0;
    width: max-content;
    min-width: 40px;
    margin: 0;
    overflow: hidden;
    border: 1px solid color-mix(in srgb,var(--rating-score) 28%,transparent);
    border-radius: 8px;
    background: var(--rating-surface);
    text-align: center;
    text-decoration: none;
}

.result-seat-meta .rating-badge.mobile-rating {
    display: none;
}

.rating-badge .rating-score {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 3px;
    width: 100%;
    padding: 3px 6px;
    background: var(--rating-score);
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.1;
}

    .rating-badge .rating-score > span {
        color: #fff;
        font-size: inherit;
        font-weight: 500;
        line-height: inherit;
    }

.rating-badge .rating-count {
    display: block;
    padding: 2px 4px;
    background: var(--rating-surface);
    color: var(--rating-count);
    font-size: 11px;
    font-weight: 500;
    line-height: 1.15;
}

.rating-badge.rating-0-1 {
    --rating-score: #dc2626;
    --rating-surface: #fee2e2;
    --rating-count: #991b1b;
}

.rating-badge.rating-1-2 {
    --rating-score: #ea580c;
    --rating-surface: #ffedd5;
    --rating-count: #9a3412;
}

.rating-badge.rating-2-3 {
    --rating-score: #d97706;
    --rating-surface: #fef3c7;
    --rating-count: #92400e;
}

.rating-badge.rating-3-4 {
    --rating-score: #ca8a04;
    --rating-surface: #fef9c3;
    --rating-count: #854d0e;
}

.rating-badge.rating-4-5 {
    --rating-score: #07883f;
    --rating-surface: #dcfce7;
    --rating-count: #166534;
}

.rating-badge.rating-new {
    --rating-score: #64748b;
    --rating-surface: #f1f5f9;
    --rating-count: #475569;
}

.rating-badge.search-result-rating:hover .rating-score,
.rating-badge.search-result-rating:focus-visible .rating-score {
    background: var(--rating-score);
    filter: brightness(.9);
}

html[data-ab-theme="dark"] .rating-badge.search-result-rating {
    border-color: color-mix(in srgb,var(--rating-score) 55%,#334155);
    background: color-mix(in srgb,var(--rating-score) 20%,#111827);
}

html[data-ab-theme="dark"] .rating-badge .rating-count {
    background: color-mix(in srgb,var(--rating-score) 20%,#111827);
    color: #f8fafc;
}

.experience-rating-badge.rating-badge {
    border-color: color-mix(in srgb,var(--rating-score) 32%,transparent);
    background: var(--rating-surface);
    color: var(--rating-count)
}

    .experience-rating-badge.rating-badge .rating-score {
        background: var(--rating-score);
        color: #fff
    }

.review-score.rating-0-1 {
    background: #dc2626
}

.review-score.rating-1-2 {
    background: #ea580c
}

.review-score.rating-2-3 {
    background: #d97706
}

.review-score.rating-3-4 {
    background: #ca8a04
}

.review-score.rating-4-5 {
    background: #07883f
}

.review-owner-reply {
    margin-top: .65rem;
    padding: .7rem .8rem;
    border-left: 3px solid #07883f;
    border-radius: .45rem;
    background: var(--experience-muted,#f5f7fb);
    text-align: left
}

    .review-owner-reply strong, .review-owner-reply p, .review-owner-reply small {
        display: block;
        text-align: left
    }

    .review-owner-reply p {
        margin: .25rem 0
    }

.experience-section-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .75rem
}

    .experience-section-heading h2 {
        margin: 0
    }

.experience-section-rating {
    --rating-score: #64748b;
    --rating-surface: #f1f5f9;
    --rating-count: #475569;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    min-width: 3.3rem;
    overflow: hidden;
    border: 1px solid color-mix(in srgb,var(--rating-score) 35%,transparent);
    border-radius: .55rem;
    background: var(--rating-surface);
    text-decoration: none
}

    .experience-section-rating.rating-0-1 {
        --rating-score: #dc2626;
        --rating-surface: #fee2e2;
        --rating-count: #991b1b
    }

    .experience-section-rating.rating-1-2 {
        --rating-score: #ea580c;
        --rating-surface: #ffedd5;
        --rating-count: #9a3412
    }

    .experience-section-rating.rating-2-3 {
        --rating-score: #d97706;
        --rating-surface: #fef3c7;
        --rating-count: #92400e
    }

    .experience-section-rating.rating-3-4 {
        --rating-score: #ca8a04;
        --rating-surface: #fef9c3;
        --rating-count: #854d0e
    }

    .experience-section-rating.rating-4-5 {
        --rating-score: #07883f;
        --rating-surface: #dcfce7;
        --rating-count: #166534
    }

    .experience-section-rating span {
        width: 100%;
        padding: .18rem .45rem;
        background: var(--rating-score);
        color: #fff;
        text-align: center;
        font-size: .75rem;
        font-weight: 500
    }

    .experience-section-rating small {
        padding: .12rem .35rem;
        color: var(--rating-count);
        font-size: .62rem
    }

.review-passenger-name {
    font-size: .85rem
}

.review-sentiment {
    display: block;
    margin-top: .55rem;
    font-size: .75rem
}

.review-item-topics {
    display: flex;
    flex-wrap: wrap;
    gap: .3rem;
    margin-top: .3rem
}

.review-topic {
    display: inline-flex;
    padding: .25rem .5rem;
    border-radius: .42rem;
    background: #e5e7eb;
    color: #334155;
    font-size: .68rem
}

    .review-topic.liked {
        background: #bbf7d0;
        color: #166534
    }

    .review-topic.improve {
        background: #e5e7eb;
        color: #334155
    }

html[data-ab-theme="dark"] .experience-section-rating {
    border-color: color-mix(in srgb,var(--rating-score) 55%,#334155);
    background: color-mix(in srgb,var(--rating-score) 20%,#111827)
}

    html[data-ab-theme="dark"] .experience-section-rating small {
        color: #f8fafc
    }

html[data-ab-theme="dark"] .review-topic.liked {
    background: #174f32;
    color: #d1fae5
}

html[data-ab-theme="dark"] .review-topic.improve {
    background: #273244;
    color: #e2e8f0
}

@media(min-width:768px) {
    .bus-result-main {
        display: grid;
        grid-template-columns: minmax(0,1fr) auto minmax(0,1fr);
        align-items: start;
    }

        .bus-result-main > .desktop-rating {
            grid-column: 2;
            justify-self: center;
            align-self: start;
        }

        .bus-result-main > .result-seat-meta {
            grid-column: 3;
            justify-self: end;
        }
}

@media(max-width:767.98px) {
    .bus-result-main > .desktop-rating {
        display: none;
    }

    .result-seat-meta .rating-badge.mobile-rating {
        display: inline-flex;
        flex-direction: column;
        align-items: stretch;
        flex-wrap: nowrap;
        margin-top: .38rem;
    }
}

/* Geometrically centred chevrons for gallery and lightbox navigation. */
.gallery-arrow, .lightbox-arrow {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    font-size: 0;
    line-height: 1;
}

    .gallery-arrow::before, .lightbox-arrow::before {
        content: "";
        display: block;
        width: .58rem;
        height: .58rem;
        border-top: 2px solid currentColor;
        border-right: 2px solid currentColor;
        transform-origin: center;
    }

    .gallery-arrow.previous::before, .lightbox-arrow.previous::before {
        transform: rotate(-135deg);
    }

    .gallery-arrow.next::before, .lightbox-arrow.next::before {
        transform: rotate(45deg);
    }

/* Three full photos in the desktop gallery viewport. */
.experience-photo-gallery {
    grid-auto-columns: calc((100% - 1.5rem)/3);
}

@media(max-width:767.98px) {
    .experience-photo-gallery {
        grid-auto-columns: 82%;
    }
}

/* Inline amenity SVGs replace generic text/check symbols. */
.amenity-symbol::before {
    content: none !important;
}

.amenity-symbol svg {
    display: block;
    width: 1.15rem;
    height: 1.15rem;
    color: currentColor;
}
/* Rating palette shared by search results and seat-selection details. */
.rating-badge.rating-4-5, .experience-section-rating.rating-4-5 {
    --rating-score: #16a34a;
    --rating-surface: #dcfce7;
    --rating-count: #166534
}

.rating-badge.rating-5, .experience-section-rating.rating-5 {
    --rating-score: #047857;
    --rating-surface: #d1fae5;
    --rating-count: #065f46
}

.review-score.rating-3-4 {
    background: #d97706
}

.review-score.rating-4-5 {
    background: #16a34a
}

.review-score.rating-5 {
    background: #047857
}

.review-topic.improve {
    background: #ffe4e6;
    color: #9f1239
}

.review-topic.neutral {
    background: #fef3c7;
    color: #92400e
}

html[data-ab-theme="dark"] .review-topic.improve {
    background: #881337;
    color: #ffe4e6
}

html[data-ab-theme="dark"] .review-topic.neutral {
    background: #78350f;
    color: #fef3c7
}

/* Compact review preview and an in-place, filterable all-reviews view. */
.all-reviews-button {
    display: flex;
    justify-content: center;
    width: min(30rem,100%);
    margin: .9rem auto 0;
    padding: .65rem 1rem;
    border: 1px solid #f2a5a5;
    border-radius: .75rem;
    background: #fee2e2;
    color: #991b1b;
    font-weight: 500
}

    .all-reviews-button:hover, .all-reviews-button:focus-visible {
        border-color: #dc2626;
        background: #fecaca;
        box-shadow: 0 0 0 .18rem rgba(220,38,38,.12)
    }

.all-reviews-panel {
    height: min(72vh,46rem);
    overflow-y: auto;
    border: 1px solid var(--experience-border,#dbe2ea);
    border-radius: 1rem;
    background: var(--experience-panel,#fff);
    color: var(--experience-ink,#172033);
    scrollbar-gutter: stable
}

    .all-reviews-panel:focus {
        outline: none
    }

.all-reviews-header {
    position: sticky;
    top: 0;
    z-index: 3;
    display: grid;
    grid-template-columns: auto 1fr auto;
    align-items: center;
    gap: .65rem;
    padding: .75rem 1rem;
    border-bottom: 1px solid var(--experience-border,#dbe2ea);
    background: var(--experience-panel,#fff)
}

.all-reviews-back {
    display: grid;
    place-items: center;
    width: 2rem;
    height: 2rem;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    color: inherit;
    font-size: 1.25rem;
    line-height: 1
}

.all-reviews-header .review-score {
    min-width: 2.65rem;
    text-align: center
}

.all-reviews-filters {
    display: grid;
    gap: .55rem;
    padding: .9rem 1rem;
    border-bottom: 1px solid var(--experience-border,#dbe2ea)
}

    .all-reviews-filters > strong {
        font-size: .75rem
    }

.all-reviews-filter-row {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem
}

    .all-reviews-filter-row button {
        padding: .38rem .65rem;
        border: 1px solid var(--experience-border,#cbd5e1);
        border-radius: .45rem;
        background: var(--experience-panel,#fff);
        color: inherit;
        font-size: .75rem
    }

        .all-reviews-filter-row button.active {
            border-color: #dc3545;
            background: #dc3545;
            color: #fff
        }

.all-reviews-panel > .verified-review-title {
    margin: .9rem 1rem
}

.all-reviews-list {
    padding: 0 1rem
}

    .all-reviews-list .review-row {
        margin: 0;
        padding: 1rem 0;
        border-bottom: 1px solid var(--experience-border,#e2e8f0)
    }

.all-reviews-empty {
    margin: 1rem
}

.experience-sections[hidden], .experience-tab-shell[hidden], .all-reviews-panel[hidden] {
    display: none !important
}

html[data-ab-theme="dark"] .all-reviews-button {
    border-color: #7f1d1d;
    background: #451a1a;
    color: #fecaca
}

    html[data-ab-theme="dark"] .all-reviews-button:hover, html[data-ab-theme="dark"] .all-reviews-button:focus-visible {
        border-color: #ef4444;
        background: #7f1d1d
    }

html[data-ab-theme="dark"] .all-reviews-panel, html[data-ab-theme="dark"] .all-reviews-header {
    --experience-panel: #111827;
    --experience-border: #334155;
    --experience-ink: #e5e7eb
}

html[data-ab-theme="dark"] .all-reviews-filter-row button {
    background: #1e293b;
    border-color: #475569;
    color: #e2e8f0
}

    html[data-ab-theme="dark"] .all-reviews-filter-row button.active {
        border-color: #ef4444;
        background: #b91c1c;
        color: #fff
    }

@media(max-width:767.98px) {
    .all-reviews-panel {
        height: 75vh;
        border-radius: .8rem
    }

    .all-reviews-header, .all-reviews-filters {
        padding: .7rem
    }

    .all-reviews-list {
        padding: 0 .7rem
    }

    .all-reviews-filter-row {
        gap: .35rem
    }

        .all-reviews-filter-row button {
            padding: .34rem .52rem;
            font-size: .7rem
        }

    .all-reviews-list .review-row {
        grid-template-columns: auto 1fr;
        gap: .65rem
    }
}

/* Show the exact quoted fare directly on every selectable seat and sleeper berth. */
.seat-map-card .layout-item[data-seat-id] {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1px;
    overflow: visible;
    line-height: 1
}

.seat-map-card .layout-item .seat-number {
    font-size: .55rem;
    font-weight: bold;
}

.seat-map-card .layout-item .seat-price {
    display: block;
    font-size: .47rem;
    font-weight: 500;
    line-height: 1;
    color: inherit;
    white-space: nowrap
}

.seat-map-card .layout-item.item-sleeper .seat-price {
    font-size: .5rem
}

.seat-price-note {
    margin-left: auto;
    padding: .28rem .5rem;
    border: 1px solid #bbf7d0;
    border-radius: 999px;
    background: #f0fdf4;
    color: #166534;
    font-size: .62rem;
    font-weight: 500
}

.seat-map-card .layout-item[disabled] .seat-price {
    opacity: .72
}

html[data-ab-theme="dark"] .seat-price-note {
    border-color: #166534;
    background: #123524;
    color: #bbf7d0
}

@media(max-width:575.98px) {
    .seat-price-note {
        width: 100%;
        margin-left: 0;
        border-radius: .5rem;
        text-align: center
    }

    .seat-map-card .layout-item .seat-number {
        font-size: .55rem
    }

    .seat-map-card .layout-item .seat-price {
        font-size: .44rem
    }
}

/* Night-theme contrast for public rating badges and operator replies. */
html[data-ab-theme="dark"] .experience-rating-badge.rating-badge {
    border-color: color-mix(in srgb,var(--rating-score) 65%,#334155);
    background: color-mix(in srgb,var(--rating-score) 18%,#111827);
    color: #f8fafc
}

    html[data-ab-theme="dark"] .experience-rating-badge.rating-badge .rating-score {
        color: #fff
    }

    html[data-ab-theme="dark"] .experience-rating-badge.rating-badge small {
        color: #f8fafc;
        background: transparent
    }

html[data-ab-theme="dark"] .review-owner-reply {
    border-left-color: #22c55e;
    background: #1e293b;
    color: #e5e7eb
}

    html[data-ab-theme="dark"] .review-owner-reply strong {
        color: #f8fafc
    }

    html[data-ab-theme="dark"] .review-owner-reply p, html[data-ab-theme="dark"] .review-owner-reply small {
        color: #cbd5e1
    }

/* Final theme overrides for the journey editor. */
.modify-grid input{background:#fff;color:#172033;border-color:#cbd5e1;color-scheme:light}
html[data-ab-theme="dark"] .modify-search-panel>.modify-journey-dialog{background:#111827!important;border-color:#334155;color:#f8fafc}
html[data-ab-theme="dark"] .modify-heading h2,html[data-ab-theme="dark"] .modify-grid label,html[data-ab-theme="dark"] .modify-grid label>span{color:#f8fafc}
html[data-ab-theme="dark"] .modify-heading p{color:#cbd5e1}
html[data-ab-theme="dark"] .modify-grid input{background:#0f172a;color:#fff;border-color:#475569;color-scheme:dark}
html[data-ab-theme="dark"] .modify-actions{background:#111827!important;border-color:#334155}

/* Trip radios match the journey-point orange ring. */
.modern-search-head .trip-options label { display: inline-flex; align-items: center; gap: .5rem; cursor: pointer; }
.modern-search-head .trip-options input[type="radio"] { appearance: none; -webkit-appearance: none; width: 20px; height: 20px; flex: 0 0 20px; margin: 0; border: 2px solid #64748b; border-radius: 50%; background: #fff; cursor: pointer; }
.modern-search-head .trip-options input[type="radio"]:checked { border: 6px solid #ff6900; background: #fff; }
.modern-search-head .trip-options input[type="radio"]:focus-visible { outline: 3px solid #ffb47a; outline-offset: 3px; }
[data-ab-theme="dark"] .modern-search-head .trip-options input[type="radio"]:not(:checked) { background: #151c28; border-color: #94a3b8; }
