/* Mercury-inspired visual layer: tailored for clear, high-trust travel booking. */
:root {
    --mercury-onyx: #171721;
    --mercury-graphite: #1e1e2a;
    --mercury-raised: #272735;
    --mercury-cobalt: #5266eb;
    --mercury-ice: #f5f6fa;
    --mercury-ivory: #ededf3;
    --mercury-ash: #a7a7b4;
    --mercury-line: #dfe1ea;
    --mercury-success: #16856f;
    --mercury-warning: #bd7a18;
    --mercury-danger: #c84c58;
    --ink: #171721;
    --muted: #686978;
    --line: #dfe1ea;
    --paper: #f5f6fa;
    --white: #ffffff;
    --teal: #5266eb;
    --teal-dark: #3d4ec4;
    --coral: #5266eb;
    --yellow: #9da7ff;
    --blue-soft: #eef0ff;
    --shadow: 0 18px 42px rgba(23, 23, 33, .10);
}

body, .public-page-shell { font-family: "Inter", "DM Sans", sans-serif; }
body { background: var(--mercury-ice); }
.container, .public-container { width: min(1200px, calc(100% - 48px)); }

/* Shared brand and home navigation */
.site-shell { background: var(--mercury-ice); }
.topbar { height: 80px; }
.brand, .public-brand { color: var(--mercury-ivory); font-family: "Inter", sans-serif; font-size: 19px; font-weight: 700; letter-spacing: -.055em; }
.brand > span:last-child > span, .public-brand > span:last-child > span { color: #9da7ff; }
.brand-mark, .public-brand-mark { transform: none; }
.brand-mark span, .public-brand-mark i { width: 5px; border-radius: 99px; background: #9da7ff; }
.brand-mark span:nth-child(2), .public-brand-mark i:nth-child(2) { background: #737ff0; }
.brand-mark span:nth-child(3), .public-brand-mark i:nth-child(3) { background: var(--mercury-cobalt); }
.main-nav { gap: 25px; color: #aeb0be; font-size: 12px; }
.main-nav a:hover, .language-switch:hover, .footer-links a:hover { color: #fff; }
.top-actions { color: var(--mercury-ivory); font-size: 12px; }
.language-switch { color: #b9bbc8; }
.globe-icon { border-color: #565766; color: #d7d8e1; }
.user-button { padding: 8px 12px 8px 8px; border: 1px solid #444553; border-radius: 99px; color: var(--mercury-ivory); background: rgba(255,255,255,.03); }
.user-icon { width: 25px; height: 25px; color: #fff; background: var(--mercury-cobalt); font-size: 14px; }
.language-switcher { display: inline-flex; overflow: hidden; border: 1px solid #454654; border-radius: 999px; background: rgba(255,255,255,.03); }.language-switcher a { min-width: 29px; padding: 6px 7px; color: #afb1bf; font-size: 10px; font-weight: 700; line-height: 1; text-align: center; }.language-switcher a:hover { color: #fff; background: rgba(255,255,255,.08); }.language-switcher a.active { color: #fff; background: var(--mercury-cobalt); }
.site-shell > .topbar { position: relative; z-index: 2; background: var(--mercury-onyx); }

/* Landing page */
.hero { min-height: 460px; grid-template-columns: 52% 48%; color: var(--mercury-ivory); background: var(--mercury-onyx); }
.hero:before { position: absolute; inset: 0 0 0 -100vw; z-index: 0; background: var(--mercury-onyx); content: ""; }
.hero-copy, .hero-art { z-index: 1; }
.hero-copy { padding: 62px 0 92px; }
.eyebrow, .section-kicker { color: var(--mercury-cobalt); font-size: 10px; letter-spacing: .16em; }
.eyebrow-dot { background: var(--mercury-cobalt); box-shadow: 0 0 0 5px rgba(82,102,235,.15); }
.hero h1 { max-width: 560px; margin-bottom: 20px; font-family: "Inter", sans-serif; font-size: clamp(44px, 5.5vw, 70px); font-weight: 500; letter-spacing: -.065em; }
.hero-text { color: #bfc0ca; font-size: 16px; line-height: 1.65; }
.trust-line { color: #aaaebc; }.trust-line strong { color: #fff; }
.avatar-stack i { border-color: var(--mercury-onyx); background: #55576b; }.avatar-stack i:nth-child(2) { background: #737ff0; }.avatar-stack i:nth-child(3) { background: #9da7ff; }
.hero-art { height: 400px; opacity: .88; }.sun-orbit { border-color: rgba(157,167,255,.24); }.sun-orbit:before { background: var(--mercury-cobalt); box-shadow: 0 0 0 11px rgba(82,102,235,.12); }
.mountain-back { border-bottom-color: #373848; }.mountain-back:after { border-bottom-color: #4b4c5c; }.mountain-front { border-bottom-color: #292a39; }.mountain-front:before { border-bottom-color: #353647; }.road-line { border-top-color: rgba(157,167,255,.30); }.bus-illustration { background: var(--mercury-cobalt); box-shadow: 10px 12px 0 rgba(0,0,0,.18); }.bus-illustration:before { background: #d4d7ff; }.bus-window { background: #292b4b; }.bus-wheel { border-color: #0f1016; background: #d9dbe5; }.art-label { border: 1px solid rgba(255,255,255,.12); color: var(--mercury-ivory); background: rgba(39,39,53,.85); box-shadow: none; }.label-one, .label-two { color: var(--mercury-ivory); }

.search-card { margin-top: -46px; border: 1px solid #343544; border-radius: 14px; background: var(--mercury-graphite); box-shadow: 0 22px 40px rgba(12,12,19,.25); }
.form-tabs { border-color: #3b3c4b; }.form-tabs button { color: #a6a8b6; }.form-tabs button.active { color: #fff; }.form-tabs button.active:after { background: var(--mercury-cobalt); }.form-hint { color: #9698a6; }
.field { border-color: #454654; border-radius: 8px; background: var(--mercury-raised); }.field:focus-within { border-color: #8995ff; box-shadow: 0 0 0 3px rgba(82,102,235,.18); }.field-icon, .from-icon, .to-icon { color: #9da7ff; }.field-content small { color: #a6a8b6; }.field-content input, .field-content select { color: #f4f4f7; }.field-content input::-webkit-calendar-picker-indicator { filter: invert(1); }.field-arrow { color: #b9bbc8; }.swap-button { border-color: #565766; color: #fff; background: #393a4a; }.search-button, .trip-button, .primary-action { border-radius: 8px; background: var(--mercury-cobalt); box-shadow: none; }.search-button:hover, .trip-button:hover, .primary-action:hover { background: #6978f2; }

.section { padding-top: 96px; }.section-heading h2, .experience-copy h2, .voices-intro h2, .home-faq-grid h2 { color: var(--mercury-onyx); font-family: "Inter", sans-serif; font-weight: 500; letter-spacing: -.055em; }.section-heading p:not(.section-kicker), .experience-copy > p, .voices-intro > p { color: #707180; }.text-link { color: #4758d5; }.text-link span { color: var(--mercury-cobalt); }
.route-card { border: 1px solid var(--mercury-line); border-radius: 12px; box-shadow: none; }.route-card:hover { border-color: #aeb7ff; box-shadow: var(--shadow); }.route-image { background: #303142; }.image-coast { background: linear-gradient(130deg, #767fc8, #313650 62%, #616779); }.image-lantern { background: linear-gradient(135deg, #222535, #6f75ac); }.image-bay { background: linear-gradient(150deg, #8995c4, #32384f); }.route-image:after { background: linear-gradient(180deg, transparent 25%, rgba(16,17,29,.6)); }.route-card-body strong { color: var(--mercury-onyx); }.route-card-body strong span, .route-card-body small { color: #626475; }
.why-section, .journal-home-section { background: #ebecf3; }.benefit { border-color: var(--mercury-line); background: #fff; box-shadow: none; }.benefit-number { color: var(--mercury-cobalt); }.benefit-icon { color: #fff; background: var(--mercury-cobalt); }.benefit h3 { color: var(--mercury-onyx); }.benefit p { color: #707180; }
.home-ticker-section { color: #dfe2ff; background: var(--mercury-onyx); }.home-ticker-track b { color: #8290ff; }
.experience-visual { background: linear-gradient(145deg, #232534, #5b65af); box-shadow: none; }.experience-visual:after { background: #303248; }.experience-sun { background: #8d99ff; box-shadow: 0 0 0 14px rgba(157,167,255,.15); }.experience-hill.one { border-bottom-color: #4b4e68; }.experience-hill.two { border-bottom-color: #252738; }.experience-bus { background: var(--mercury-cobalt); box-shadow: none; }.experience-bus:before { background: #1f2133; }.experience-copy h2 em { color: #5365e6; }.experience-points { border-color: var(--mercury-line); }.experience-points b { color: var(--mercury-cobalt); }.green-home-button { border-radius: 8px; color: #fff; background: var(--mercury-cobalt); box-shadow: none; }.green-home-button:hover { background: #6978f2; }
.home-story, .voice-card { border-color: var(--mercury-line); border-radius: 12px; box-shadow: none; }.home-story:hover { box-shadow: var(--shadow); }.home-story-art { background: linear-gradient(135deg, #6e78ba, #2b3047); }.home-story-art.art-lantern { background: linear-gradient(135deg, #222638, #6d75aa); }.home-story-art.art-mountain { background: linear-gradient(135deg, #7a85b0, #434963); }.home-story small { color: #5365e6; }.home-story strong, .voice-card blockquote { color: var(--mercury-onyx); }.home-story i, .voice-card footer b { color: #4b5bd8; }.voice-metrics { border-color: var(--mercury-line); }.voice-metrics strong { color: var(--mercury-onyx); }.home-faq-section { background: #ebecf3; }.home-faq-list details { border-color: var(--mercury-line); }.home-faq-list summary { color: var(--mercury-onyx); }.home-faq-list summary span { color: var(--mercury-cobalt); }.home-newsletter-section { background: var(--mercury-onyx); }.home-newsletter h2 { color: #fff; font-family: "Inter", sans-serif; font-weight: 500; }.home-newsletter p { color: #bfc0ca; }.home-newsletter form { border-color: #454654; background: var(--mercury-raised); }.home-newsletter input { color: #fff; }.home-newsletter button { border-radius: 7px; background: var(--mercury-cobalt); }
.footer { color: #aeb0be; background: var(--mercury-onyx); }.footer:before { position: absolute; inset: 0 -100vw; z-index: -1; background: var(--mercury-onyx); content: ""; }.footer p, .footer-end small { color: #aeb0be; }.footer-links a { color: #c4c6d1; }

/* Search results */
.results-toolbar { border-color: var(--mercury-line); }.back-link, .edit-search { color: #4c5cdc; }.edit-search { border-color: #c9ceff; border-radius: 8px; }.results-route { color: var(--mercury-onyx); }.results-route b { color: var(--mercury-cobalt); }.filter-heading, .filter-panel fieldset { border-color: var(--mercury-line); }.clear-filters { color: #5365e6; }.filter-panel label { color: #666877; }.filter-panel label input { accent-color: var(--mercury-cobalt); }.filter-note { color: #3c4bbb; background: #eef0ff; }.results-heading h1 { color: var(--mercury-onyx); }.sort-control select { border-color: var(--mercury-line); border-radius: 7px; }.trip-card { border-color: var(--mercury-line); border-radius: 12px; box-shadow: none; }.trip-card:hover { border-color: #b7beff; box-shadow: var(--shadow); }.operator-logo { color: #fff; background: var(--mercury-cobalt); }.rating { color: #4e5edc; }.trip-times strong { color: var(--mercury-onyx); }.trip-line i { background: #b8c0fa; }.trip-meta { color: #696a79; }.trip-price { border-color: var(--mercury-line); background: #fafaff; }.trip-price > strong { color: var(--mercury-onyx); }.trip-badge { color: #3f4db9; background: #e8ebff; }.seats-left { color: var(--mercury-success); }.trip-expand { border-color: var(--mercury-line); background: #f7f7fb; }.seat-link { color: #4b5bd8; }

/* Public pages */
.public-page-shell { color: var(--mercury-onyx); background: var(--mercury-ice); }.public-header { background: var(--mercury-onyx); box-shadow: none; }.public-header-inner { min-height: 78px; }.public-nav { gap: 6px; }.public-nav a { border-radius: 99px; color: #bfc0ca; }.public-nav a:hover { color: #fff; background: #303142; }.public-language { color: #c6c8d3; }.public-book-button, .gold-button { border-radius: 99px; color: #fff; background: var(--mercury-cobalt); box-shadow: none; }.public-book-button:hover, .gold-button:hover { background: #6978f2; filter: none; }.public-hero, .public-hero-routes, .public-hero-schedule, .public-hero-about, .public-hero-guide, .public-hero-offers { background: var(--mercury-onyx); }.public-hero:before { border-color: rgba(157,167,255,.2); box-shadow: 0 0 0 35px rgba(157,167,255,.04), 0 0 0 70px rgba(157,167,255,.025); }.public-hero:after { background: rgba(82,102,235,.24); }.public-eyebrow { color: #9da7ff; }.public-eyebrow.dark { color: #4e5edc; }.public-hero h1, .route-detail-content h1 { font-family: "Inter", sans-serif; font-weight: 500; }.public-hero p, .route-detail-content p { color: #c1c3cf; }.public-content { padding: 82px 0 96px; }.public-section-heading h2, .public-band h2, .about-intro h2, .detail-columns h2, .faq-section h2, .schedule-toolbar h2, .contact-info h2, .guide-steps h2 { color: var(--mercury-onyx); font-family: "Inter", sans-serif; font-weight: 500; }.public-text-link { color: #4e5edc; }.catalog-card, .values-grid article, .guide-steps article, .contact-form { border-color: var(--mercury-line); border-radius: 12px; box-shadow: none; }.catalog-card:hover { border-color: #b7beff; box-shadow: var(--shadow); }.catalog-art { background: linear-gradient(135deg, #6b75b4, #2d3247); }.catalog-art:after { background: #8b97ff; box-shadow: 0 22px 0 -6px #25273a; }.catalog-card h2, .values-grid h3, .guide-steps h2 { color: var(--mercury-onyx); }.catalog-card p, .values-grid p, .guide-steps p, .about-intro > p, .contact-info > p { color: #686978; }.catalog-card a, .contact-info > a { color: #4e5edc; }.route-detail-hero, .route-detail-hero.route-coast, .route-detail-hero.route-bay, .route-detail-hero.route-lantern, .route-detail-hero.route-mountain, .route-detail-hero.route-dunes { background: var(--mercury-onyx); }.route-detail-hero:after { background: rgba(82,102,235,.24); }.route-fact-card { border-color: rgba(255,255,255,.16); border-radius: 12px; background: rgba(39,39,53,.82); }.route-fact-card div b { color: #9da7ff; }.detail-card, .route-timetable, .public-band, .schedule-row { border-color: var(--mercury-line); box-shadow: none; }.detail-card h3, .route-timetable h3 { color: var(--mercury-onyx); }.schedule-head { color: #494a59; background: #e9ebf6; }.schedule-row strong, .schedule-row a { color: #4e5edc; }.schedule-row i { color: #7684ef; }.schedule-filters button { border-color: var(--mercury-line); }.schedule-filters button.active, .schedule-filters button:hover { border-color: var(--mercury-cobalt); background: var(--mercury-cobalt); }.schedule-note { color: #3f4db9; background: #eef0ff; }.stats-strip, .stats-strip div { border-color: var(--mercury-line); }.stats-strip strong, .story-timeline span { color: #4e5edc; }.story-timeline div { border-color: var(--mercury-cobalt); }.offer-card { border-radius: 14px; background: linear-gradient(145deg, #202130, #4b57ae); box-shadow: none; }.offer-card:nth-child(2) { color: #fff; background: linear-gradient(145deg, #5266eb, #727ff2); }.offer-card:nth-child(3) { background: linear-gradient(145deg, #303142, #6973b6); }.offer-card > span { color: #2d355f; background: #dce0ff; }.offer-card:nth-child(2) > span { color: #3e4baa; background: #fff; }.contact-form input, .contact-form textarea { border-color: var(--mercury-line); border-radius: 7px; }.contact-form input:focus, .contact-form textarea:focus { border-color: var(--mercury-cobalt); box-shadow: 0 0 0 3px rgba(82,102,235,.12); }.public-footer { background: var(--mercury-onyx); }.public-footer strong { color: #9da7ff; }.public-footer a:hover { color: #fff; }.footer-cta a { border-radius: 99px; color: #fff; background: var(--mercury-cobalt); }

/* Booking flow: neutral and high contrast for fares, seats and payment. */
.booking-body { background: var(--mercury-ice); }.booking-topbar { display: flex; align-items: center; border-color: var(--mercury-line); }.booking-topbar .brand { color: var(--mercury-onyx); }.booking-topbar .booking-back { color: #4e5edc; }.booking-steps { color: #9698a6; }.booking-steps span:first-child, .booking-steps .done { color: #4e5edc; }.booking-steps span b { font-weight: 600; }.booking-steps i { background: #d6d9e9; }.booking-page { padding-top: 66px; }.booking-heading h1, .confirmation-card h1 { color: var(--mercury-onyx); font-family: "Inter", sans-serif; font-weight: 500; }.availability-pill { border-radius: 99px; color: #3f4db9; background: #e8ebff; }.seat-panel, .form-panel, .trip-summary, .confirmation-card { border-color: var(--mercury-line); border-radius: 12px; box-shadow: none; }.seat-panel-head, .form-panel-title, .summary-list { border-color: var(--mercury-line); }.seat-panel-head strong, .form-panel-title strong { font-family: "Inter", sans-serif; }.deck-block { border-color: var(--mercury-line); border-radius: 10px; background: #fafaff; }.deck-title { color: #4e5edc; }.deck-title span { background: var(--mercury-cobalt); }.seat-shape { border-color: #c9ceff; color: #4656cf; background: #eff1ff; }.seat input:checked + .seat-shape { border-color: var(--mercury-cobalt); background: var(--mercury-cobalt); box-shadow: 0 5px 12px rgba(82,102,235,.22); }.seat.unavailable .seat-shape { border-color: #e5e6ed; color: #afb0bb; background: #f1f2f6; }.seat-legend .selected-seat { background: var(--mercury-cobalt); }.seat-legend i { background: #eff1ff; }.seat-legend .sold-seat { background: #e5e6ed; }.summary-route span, .summary-time { color: #4e5edc; }.summary-time i { background: #cbd1ff; }.summary-total strong { color: #3d4ec4; }.form-panel input, .form-panel textarea, .form-panel select { border-color: var(--mercury-line); border-radius: 7px; background: #fafaff; }.form-panel input:focus, .form-panel textarea:focus { border-color: var(--mercury-cobalt); box-shadow: 0 0 0 3px rgba(82,102,235,.12); }.passenger-fields label b, .payment-icon { color: #4353ce; background: #e8ebff; }.payment-options label { border-color: var(--mercury-line); border-radius: 9px; }.payment-options label:has(input:checked) { border-color: #8d98fa; background: #f4f5ff; }.payment-options input { accent-color: var(--mercury-cobalt); }.payment-options i { color: #4e5edc; }.payment-notice { color: #3e4cb1; background: #eef0ff; }.confirmation-mark { background: var(--mercury-cobalt); }.reference-code { background: #eef0ff; }.reference-code strong { color: #3d4ec4; }.confirmation-info, .confirmation-info div { border-color: var(--mercury-line); }.pending-status { color: var(--mercury-warning); }.inline-action { max-width: 260px; margin: 0 auto; }

@media (max-width: 900px) {
    .main-nav.mobile-open { border-color: #444553; background: var(--mercury-graphite); }.main-nav.mobile-open a { color: var(--mercury-ivory); }
    .hero { grid-template-columns: 1fr; }.hero-copy { padding: 56px 0 0; }.search-card { margin-top: -12px; }
}

@media (max-width: 560px) {
    .container, .public-container { width: calc(100% - 30px); }.topbar { height: 72px; }.brand, .public-brand { font-size: 18px; }.hero-copy { padding-top: 44px; }.hero h1, .public-hero h1 { font-size: 45px; }.hero-art { height: 230px; }.search-card { border-radius: 11px; }.section { padding-top: 70px; }.public-hero-content { padding-top: 72px; }.public-header-inner { min-height: 70px; }.public-nav.mobile-open { background: var(--mercury-graphite); }.booking-page { padding-top: 42px; }.booking-topbar { background: var(--mercury-ice); }
}

.booking-steps .active { color: #4e5edc; }
