/* Restore the original black and yellow palette across desktop and mobile. */
body.home-page {
  background: radial-gradient(ellipse at 0 16%, #ffc40012, transparent 42%), var(--bg);
  color-scheme: dark;
}
body.home-page .hero-bg {
  background: radial-gradient(ellipse at 95% 5%, #282214, transparent 55%);
}
body.home-page .hero-copy {
  color: var(--text);
  background: var(--panel);
  border-color: var(--line);
}
body.home-page .hero-copy h1 { color: var(--text); }
body.home-page .desktop-hero-title em,
body.home-page .mobile-hero-title em { color: var(--yellow); background: none; }
body.home-page .hero-copy > p,
body.home-page .hero-copy .checks { color: #b6b7bf; }
body.home-page .hero-copy .pill { color: var(--yellow); border-color: #ffc40040; background: #ffc4000d; }
body.home-page .hero-copy .availability-dot { background: var(--yellow); box-shadow: 0 0 0 4px #ffc40020; animation: none; }
body.home-page .hero-fare-link { background: #ffc4000d; border-color: #ffc40040; color: var(--text); }
body.home-page .hero-fare-link strong { color: var(--yellow); }
body.home-page .hero-copy .hero-buttons .yellow,
body.home-page .floating-contact .float-call { background: var(--yellow); color: #050505; }
body.home-page .hero-copy .hero-buttons .whatsapp-main,
body.home-page .floating-contact .float-whatsapp { background: var(--green); color: #050505; }
body.home-page .hero-route .route-card,
body.home-page .fare-calculator { background: var(--panel); border-color: #ffc40040; }
body.home-page .hero-route .route-icon,
body.home-page .disclosure-icon { background: #ffc40012; color: var(--yellow); border-color: #ffc40040; }
body.home-page .mobile-disclosure { background: var(--panel); border-color: var(--line); }
body.home-page .mobile-disclosure[open] { border-color: #ffc40066; }
body.home-page .hero-scene { background: var(--panel); }
body.home-page .hero-scene::after { background: linear-gradient(180deg, transparent 65%, #05050555); }
body.home-page .hero-scene-caption { background: #121214ed; color: var(--yellow); border-color: #ffc40040; }
@media (min-width: 881px) {
  body.home-page .hero-copy { background: transparent; }
}

/* Compact reservation flow. */
.booking-shortcut { display: block; padding: 14px; margin-top: 10px; border: 1px solid #ffc40066; border-radius: 12px; color: var(--yellow); text-align: center; font-weight: 700; }
.price-disclaimer { color: #b6b7bf; font-size: 12px; line-height: 1.65; margin: 12px 0 0; }
.booking-steps { display: flex; flex-wrap: wrap; gap: 8px 24px; padding-left: 20px; color: var(--yellow); font-size: 12px; }
.booking-preview { border: 1px solid var(--line); border-radius: 12px; padding: 14px; min-width: 0; }
.booking-preview summary { color: var(--yellow); cursor: pointer; }
.booking-preview pre { white-space: pre-wrap; overflow-wrap: anywhere; font: inherit; font-size: 13px; line-height: 1.7; color: var(--text); }
.booking-form input, .booking-form select { min-height: 48px; font-size: 16px; color-scheme: dark; }
.booking-shortcut:focus-visible, .booking-preview summary:focus-visible { outline: 2px solid var(--yellow); outline-offset: 4px; }

.booking-summary { min-width: 0; padding: 18px; border: 1px solid #ffc40055; border-radius: 16px; background: linear-gradient(140deg, #ffc4000d, #121214 65%); }
.booking-summary-head { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; justify-content: space-between; }
.booking-summary h3 { margin: 0; color: var(--yellow); font-size: 18px; }
.booking-summary-head > span { font-size: 11px; color: #b6b7bf; }
.booking-summary-hint { font-size: 12px; line-height: 1.6; color: #b6b7bf; }
.booking-summary dl { margin: 16px 0; }
.booking-summary dl > div { display: grid; grid-template-columns: 110px minmax(0, 1fr); gap: 10px; padding: 10px 0; border-bottom: 1px solid var(--line); }
.booking-summary dl > div[hidden] { display: none; }
.booking-summary dt { color: #b6b7bf; font-size: 12px; }
.booking-summary dd { margin: 0; color: var(--text); font-size: 14px; line-height: 1.5; overflow-wrap: anywhere; }
.booking-summary-price { color: #b6b7bf; font-size: 12px; line-height: 1.7; }
.booking-summary > a { display: inline-block; padding: 10px 0; color: var(--yellow); font-size: 13px; line-height: 1.5; }
.booking-summary > a:focus-visible { outline: 2px solid var(--yellow); outline-offset: 3px; }
@media (max-width: 420px) {
  .booking-summary dl > div { grid-template-columns: minmax(0, 1fr); gap: 4px; }
}

/* Shorter mobile booking form, with comfortable touch targets. */
.booking-extras { min-width: 0; padding: 12px 14px; border: 1px solid var(--line); border-radius: 12px; }
.booking-extras > summary { min-height: 24px; color: var(--yellow); font-size: 14px; cursor: pointer; line-height: 1.6; }
.booking-extras > summary > span { color: var(--muted); font-size: 11px; }
.booking-extras[open] > label { margin-top: 12px; }
.booking-extras > summary:focus-visible { outline: 2px solid var(--yellow); outline-offset: 4px; }
.booking-form label small { font-size: 10px; font-weight: 400; text-transform: none; }
@media (max-width: 880px) {
  .home-page .booking-form { padding: 14px; gap: 12px; }
  .home-page .booking-two { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .home-page .booking-form label { min-width: 0; }
  .home-page .booking-form input, .home-page .booking-form select { width: 100%; min-width: 0; max-width: 100%; padding: 12px 8px; }
  .home-page .booking-form-head { flex-direction: row; align-items: center; gap: 8px; }
  .home-page .booking-form-head > span { font-size: 16px; }
  .home-page .booking-form-head > strong { flex-shrink: 0; font-size: 10px; padding: 8px; }
  .home-page .booking-steps { margin: 4px 0; gap: 6px 22px; font-size: 11px; }
  .home-page .booking-summary { padding: 12px; }
  .home-page .booking-summary h3 { font-size: 16px; }
  .home-page .booking-summary-head > span, .home-page .booking-summary-hint { display: none; }
  .home-page .booking-summary dl { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 12px; margin: 8px 0; }
  .home-page .booking-summary dl > div { grid-template-columns: minmax(0, 1fr); gap: 3px; padding: 8px 0; }
  .home-page .booking-summary dl > div:nth-child(-n+2), .home-page .booking-summary dl > div:nth-child(4), .home-page .booking-summary dl > div[data-booking-note] { grid-column: 1 / -1; }
  .home-page .booking-summary dl > div:nth-child(3) { grid-column: 1; grid-row: 3; }
  .home-page .booking-summary dl > div:nth-child(5) { grid-column: 2; grid-row: 3; }
  .home-page .booking-summary dt { font-size: 11px; }
  .home-page .booking-summary dd { font-size: 13px; }
  .home-page .booking-summary-price { margin: 8px 0 0; }
  .home-page .booking-summary > a { padding: 8px 0 0; font-size: 12px; }
}

@media (max-width: 379px) {
  .home-page .booking-schedule { grid-template-columns: minmax(0, 1fr); }
}

/* Journey refresh. */
.home-page .hero-route .route-card { border: 1px solid #ffc40050; box-shadow: 0 24px 70px #0005; background: linear-gradient(155deg, #201d13 0, #121214 30%); }
.route-eyebrow { display:block;color:var(--yellow);font-size:10px;letter-spacing:.16em;font-weight:700;margin-bottom:10px; }
.home-page .hero-route .route-head h2 { letter-spacing:-.04em;font-size:clamp(25px,3vw,34px); }
.home-page .hero-route .route-head p { font-size:12px;line-height:1.6; }
.home-page .hero-route .route-icon { border-radius:50%;width:48px;height:48px;flex-shrink:0; }
.home-page .route-stats .stat-box:last-child { background:#ffc4000c;border:1px solid #ffc40038; }
.home-page .route-stats #priceOutput { color:var(--yellow); }
.home-page .hero-fare-link { box-shadow:inset 3px 0 0 var(--yellow); }
.journey-hub { padding:62px 0;background:linear-gradient(180deg,#17160f80,transparent);border-top:1px solid #ffc40018; }
.journey-heading { display:flex;justify-content:space-between;align-items:end;gap:32px;margin-bottom:28px; }
.journey-heading h2 { margin:12px 0 0;font-size:clamp(27px,3.5vw,44px);line-height:1.17;letter-spacing:-.04em; }
.journey-heading h2 span { color:#a6a6ae; }
.journey-heading > p { max-width:310px;color:#b6b7bf;font-size:14px;line-height:1.8;margin:0; }
.journey-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px; }
.journey-card { min-width:0;padding:24px;border-radius:20px;border:1px solid #ffffff18;background:radial-gradient(ellipse at 100% 0,#ffc40010,transparent 60%),#151517; }
.journey-card-top { display:flex;align-items:center;gap:10px;color:#b6b7bf;font-size:10px;letter-spacing:.08em; }
.journey-symbol { display:grid;place-items:center;background:#ffc40015;color:var(--yellow);width:36px;height:36px;border-radius:50%;font-size:21px; }
.journey-number { margin-left:auto;color:#92929a;font-size:12px; }
.journey-card .journey-origin { font-size:11px;margin:28px 0 6px;color:#b6b7bf; }
.journey-card h3 { font-size:34px;letter-spacing:-.04em;margin:0 0 14px;color:#fff; }
.journey-card > p:not(.journey-origin) { color:#b6b7bf;font-size:13px;line-height:1.7;min-height:44px; }
.journey-cta { display:flex;align-items:center;justify-content:space-between;min-height:48px;border-top:1px solid #ffffff16;margin-top:22px;padding-top:14px;color:var(--yellow);font-size:13px;font-weight:700; }
.journey-cta span { font-size:22px; }
.journey-cta:focus-visible { outline:2px solid var(--yellow);outline-offset:5px;border-radius:4px; }
.journey-card:focus-within { border-color:#ffc40088; }
.journey-feedback { color:var(--yellow);font-size:13px;line-height:1.6; }
.journey-feedback:empty { display:none; }
.journey-process { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;border-top:1px solid #ffffff16;padding-top:26px;margin-top:32px; }
.journey-process > div { display:flex;align-items:start;gap:12px; }
.journey-process > div > span { font-size:12px;color:var(--yellow);padding-top:3px; }
.journey-process p { margin:0; }
.journey-process strong { display:block;font-size:13px;color:#f5f5f7; }
.journey-process small { display:block;color:#a6a6ae;margin-top:7px;line-height:1.6;font-size:12px; }
@media (hover:hover) { .journey-card:hover { border-color:#ffc40055; } .journey-cta:hover { color:#ffe58c; } }
@media (min-width:881px) {
 .home-page .hero-scene { display:block;position:relative;overflow:hidden;border-radius:22px;margin-bottom:26px;border:1px solid #ffc40030; }
 .home-page .hero-scene img { display:block;width:100%;height:240px;object-fit:cover; }
 .home-page .hero-scene-caption { position:absolute;right:16px;bottom:16px;padding:8px 12px;border:1px solid #ffc40040;border-radius:10px;font-size:12px; }
}
@media (max-width:880px) {
 .journey-hub { padding:36px 0; }
 .journey-heading { display:block;margin-bottom:20px; }
 .journey-heading > p { margin-top:16px;max-width:100%;font-size:13px; }
 .journey-grid { grid-template-columns:1fr;gap:12px; }
 .journey-card { padding:20px; }
 .journey-card .journey-origin { margin-top:18px; }
 .journey-card h3 { font-size:30px;margin-bottom:8px; }
 .journey-card > p:not(.journey-origin) { min-height:0;margin:0; }
 .journey-cta { margin-top:16px; }
 .journey-process { grid-template-columns:1fr;gap:20px; }
 .home-page .hero-route .route-head h2 { font-size:26px; }
 .home-page .hero-scene img { height:160px; }
}

.journey-detail { display:inline-flex;align-items:center;min-height:44px;color:#c2c2c9;font-size:12px;text-decoration:underline;text-underline-offset:4px; }
.journey-detail:focus-visible { outline:2px solid var(--yellow);outline-offset:3px; }

/* A quieter visual hierarchy with consistent spacing. */
body.home-page { background: #090a0c; }
.home-page .hero-copy h1 { font-weight: 700; letter-spacing: -.045em; line-height: 1.12; text-shadow: none; }
.home-page .hero-copy > p { color: #b5b7c0; line-height: 1.8; font-weight: 400; }
.home-page .hero-copy .hero-buttons .btn { box-shadow: none; border-radius: 12px; font-weight: 600; }
body.home-page .hero-route .route-card { border-color: #ffffff21; background: #131416; box-shadow: 0 16px 48px #0002; }
.home-page .hero-route .route-head h2 { font-weight: 600; letter-spacing: -.035em; }
.home-page .hero-route .route-head p { font-weight: 400; color: #adb0ba; }
.home-page .section h2 { letter-spacing: -.035em; font-weight: 700; }
.home-page .hero-copy .checks { font-weight: 500; letter-spacing: .03em; }
.home-page .faq { padding-bottom: 56px; }
.home-page .faq-list details { box-shadow: none; border-color: #ffffff16; background: #121315; }
.home-page .faq-list summary { font-weight: 600; line-height: 1.6; }
.home-page .faq-list p { font-weight: 400; line-height: 1.85; color: #b5b7c0; }
@media (min-width: 881px) {
  .home-page .hero { padding: 48px 0 56px; }
  .home-page .hero-inner { width: min(1160px,calc(100% - 64px)); grid-template-columns: minmax(0,1.15fr) minmax(0,1fr); gap: 64px; align-items: start; }
  .home-page .hero-copy { padding-top: 0; }
  .home-page .hero-copy h1 { font-size: clamp(36px,3.6vw,50px); }
  .home-page .hero-copy > p { font-size: 16px; }
  .home-page .hero-scene { margin-bottom: 26px; border-color: #ffffff16; border-radius: 16px; }
  .home-page .hero-scene img { height: 220px; }
  .home-page .hero-scene-caption { font-size: 11px; color: #f3f3f5; background: #0d0e10df; border-color: #ffffff25; }
  .home-page .hero-fare-link { margin-top: 24px; }
}
@media (max-width: 880px) {
  .home-page .faq { padding-bottom: 24px; }
  .home-page .hero-copy { border-color: #ffffff16; }
}

/* Mobile journey: one primary action, clear inputs and compact sections. */
.mobile-plan-button, .mobile-journey-nav, .mobile-field-caption { display: none; }
@media (max-width: 880px) {
  body.home-page { background: #0c0d0f; }
  .home-page .header { background: #0c0d0ff2; }
  .home-page .nav { min-height: 66px; padding-block: 10px; }
  .home-page .mobile-header-menu > summary { min-height: 44px; border-color: #ffffff20; background: #ffffff04; }
  .home-page .mobile-header-panel { border-color: #ffffff24; border-radius: 18px; background: #161719; box-shadow: 0 20px 60px #0008; }
  .home-page .mobile-header-links a { min-height: 48px; font-size: 14px; font-weight: 500; }
  .home-page .hero { padding: 16px 0 32px; }
  body.home-page .hero-bg { background: none; }
  .home-page .hero-inner { width: min(600px,calc(100% - 32px)); gap: 16px; }
  body.home-page .hero-copy { max-width: none; padding: 0 20px 20px; background: #17181b; border: 1px solid #ffffff12; border-radius: 22px; box-shadow: none; animation: none; }
  .home-page .hero-inner.reveal { opacity: 1; transform: none; transition: none; }
  .home-page .hero-scene { height: 164px; margin: 0 -20px 22px; }
  .home-page .hero-scene img { height: 100%; animation: none; object-position: center 48%; }
  body.home-page .hero-scene::after { background: linear-gradient(180deg,transparent 55%,#17181b80); }
  body.home-page .hero-scene-caption { bottom: 12px; right: 14px; padding: 6px 9px; border: 1px solid #ffffff25; background: #101114cc; color: #fff; font-weight: 400; font-size: 10px; backdrop-filter: blur(8px); }
  body.home-page .hero-copy .pill { background: none; color: #e7c564; font-size: 10px; letter-spacing: .12em; margin-bottom: 12px; }
  body.home-page .hero-copy h1 { font-size: clamp(26px,7.6vw,38px); font-weight: 600; line-height: 1.16; letter-spacing: -.045em; margin-bottom: 14px; }
  body.home-page .hero-copy > p { max-width: 460px; font-size: 13px; line-height: 1.75; color: #b9bbc4; }
  .home-page .mobile-plan-button { display: flex; justify-content: space-between; align-items: center; gap: 12px; min-height: 52px; margin-top: 22px; padding: 0 18px; border-radius: 12px; background: #ffd04a; color: #18150c; font-size: 14px; font-weight: 700; }
  .mobile-plan-button > span { font-size: 24px; font-weight: 400; }
  .home-page .hero-copy .hero-buttons { display: none; }
  body.home-page .hero-fare-link { min-height: 44px; margin-top: 8px; padding: 8px 0; border: 0; background: none; box-shadow: none; color: #b9bbc4; font-size: 11px; }
  body.home-page .hero-fare-link strong { font-size: 18px; color: #f4f4f6; font-weight: 600; }
  body.home-page .hero-copy .checks { margin-top: 8px; padding-top: 14px; border-top: 1px solid #ffffff12; font-size: 8px; letter-spacing: .02em; color: #a9abb5; gap: 6px; }
  .mobile-journey-nav { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 8px; margin: 0 0 12px; }
  .mobile-journey-nav a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; min-height: 88px; padding: 12px 4px; border: 1px solid #ffffff12; border-radius: 14px; background: #141518; color: #caccd3; font-size: 11px; }
  .mobile-journey-nav svg { width: 24px; height: 24px; color: #dfc679; }
  .home-page #rota { scroll-margin-top: 84px; }
  body.home-page .hero-route .route-card { padding: 22px 16px; border: 1px solid #ffffff1c; border-radius: 20px; background: #17181b; box-shadow: none; }
  .home-page .route-eyebrow { font-size: 9px; letter-spacing: .12em; color: #d7bd76; }
  .home-page .hero-route .route-head h2 { font-size: 27px; font-weight: 600; }
  .home-page .hero-route .route-head p { font-size: 12px; }
  body.home-page .hero-route .route-icon { width: 40px; height: 40px; font-size: 22px; border-color: #ffffff15; background: #ffffff04; color: #dfc679; }
  .home-page .hero-route .route-field { position: relative; padding: 27px 14px 9px; min-height: 68px; border: 1px solid #ffffff1c; border-radius: 12px; background: #0f1012; }
  .home-page .mobile-field-caption { display: block; position: absolute; top: 9px; left: 38px; font-size: 10px; font-weight: 500; color: #a9abb5; }
  .home-page .hero-route .route-field input { min-width: 0; font-size: 16px; font-weight: 400; }
  .home-page .hero-route .route-field:focus-within { border-color: #e1bc50; box-shadow: 0 0 0 3px #ffd04a12; }
  .home-page .route-tools button { min-height: 44px; font-size: 11px; }
  .home-page .road-choice { gap: 4px; padding: 4px; border: 1px solid #ffffff12; border-radius: 12px; background: #101113; }
  .home-page .road-choice button { min-height: 42px; border-radius: 8px; border: 0; box-shadow: none; font-weight: 600; }
  .home-page .road-choice button.is-active { background: #e9c76b; color: #17140c; }
  .home-page .map-card { height: 150px; border-radius: 12px; }
  .home-page .route-stats { gap: 10px; }
  .home-page .route-stats .stat-box { padding: 14px 10px; border-radius: 12px; background: #ffffff04; border: 1px solid #ffffff0c; }
  .home-page .route-stats .stat-box strong { font-size: 24px; }
  .home-page .route-submit { min-height: 50px; border-radius: 12px; box-shadow: none; font-weight: 600; }
  .home-page .booking-shortcut { display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 8px; border-color: #ffffff25; color: #e0e1e6; font-size: 12px; }
  .home-page .price-disclaimer, .home-page .route-note { font-size: 11px; font-weight: 400; line-height: 1.7; color: #a4a7b1; }
  .home-page .journey-hub { padding: 32px 0; background: #101113; border-color: #ffffff0c; }
  .home-page .journey-heading h2 { font-size: 27px; }
  .home-page .journey-heading > p { font-size: 13px; line-height: 1.7; }
  .home-page .journey-grid { gap: 12px; }
  .home-page .journey-card { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 0 12px; padding: 18px; border-radius: 16px; background: #191a1d; border-color: #ffffff12; }
  .home-page .journey-card-top { grid-column: 1 / -1; font-size: 9px; }
  .home-page .journey-symbol { width: 28px; height: 28px; font-size: 17px; }
  .home-page .journey-card .journey-origin { grid-column: 1 / -1; margin-top: 16px; font-size: 10px; }
  .home-page .journey-card h3 { grid-column: 1; font-size: 28px; margin-bottom: 8px; font-weight: 600; }
  .home-page .journey-card > p:not(.journey-origin) { grid-column: 1 / -1; font-size: 12px; line-height: 1.7; }
  .home-page .journey-cta { grid-column: 2; grid-row: 3; gap: 8px; padding: 0; margin: 0; min-height: 44px; border: 0; font-size: 11px; font-weight: 500; }
  .home-page .journey-detail { grid-column: 1 / -1; font-size: 11px; min-height: 44px; margin-top: 6px; }
  .home-page .journey-process { gap: 18px; margin-top: 24px; padding-top: 22px; }
  .home-page .journey-process > div > span { display: grid; place-items: center; width: 30px; height: 30px; flex-shrink: 0; border-radius: 10px; padding: 0; background: #ffffff06; color: #dfc679; }
  .home-page .fare-estimate { padding: 32px 0; }
  body.home-page .fare-calculator { border-radius: 20px; background: #191a1d; border-color: #ffffff1c; box-shadow: none; }
  .home-page .fare-copy p { font-size: 13px; }
  body.home-page .mobile-disclosure { width: min(600px,calc(100% - 32px)); border-radius: 16px; border-color: #ffffff14; background: #17181b; }
  body.home-page .mobile-disclosure[open] { border-color: #b69a504d; }
  .home-page .mobile-disclosure > summary { min-height: 84px; padding: 18px 16px; gap: 12px; }
  .home-page .mobile-disclosure > summary strong { font-size: 15px; font-weight: 600; }
  .home-page .mobile-disclosure > summary small { font-size: 11px; color: #a9abb5; }
  body.home-page .disclosure-icon { flex-basis: 26px; width: 26px; height: 26px; font-size: 18px; background: #ffffff04; border-color: #ffffff20; color: #d7bd76; }
  .home-page .mobile-disclosure-content { padding: 18px 12px; }
  .home-page .booking-copy .section-kicker, .home-page .booking-assurance { display: none; }
  .home-page .booking-copy h2 { font-size: 23px; margin-top: 0; }
  .home-page .booking-copy p { font-size: 12px; }
  .home-page .booking-grid { gap: 18px; }
  .home-page .booking-form { padding: 0; border: 0; background: none; box-shadow: none; gap: 16px; }
  .home-page .booking-form-head { align-items: flex-start; }
  .home-page .booking-form-head > span { font-size: 14px; line-height: 1.5; }
  .home-page .booking-form label > span { font-size: 10px; letter-spacing: .04em; font-weight: 500; color: #bfc1c9; }
  .home-page .booking-form input, .home-page .booking-form select { min-height: 50px; padding: 12px; border-radius: 10px; background: #0f1012; border: 1px solid #ffffff24; font-size: 16px; font-weight: 400; }
  .home-page .booking-summary { background: #ffffff03; border-color: #ffffff20; border-radius: 12px; }
  .home-page .booking-submit { min-height: 52px; font-weight: 600; font-size: 14px; box-shadow: none; border-radius: 12px; }
  .home-page .floating-contact { bottom: 0; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); gap: 10px; border-top: 1px solid #ffffff18; background: #101113f5; backdrop-filter: blur(16px); }
  body.home-page .floating-contact a { min-height: 48px; height: 48px; border-radius: 12px; font-size: 13px; font-weight: 600; box-shadow: none; }
  body.home-page .floating-contact .float-call { background: #ffd04a; }
  body.home-page .floating-contact .float-whatsapp { background: #1c3328; border: 1px solid #54cd883b; color: #a0edbd; }
  .home-page input, .home-page select, .home-page button, .home-page a { -webkit-tap-highlight-color: #ffd04a22; }
}
@media (max-width: 359px) {
  .home-page .hero-copy { padding-inline: 16px; }
  .home-page .hero-scene { margin-inline: -16px; height: 144px; }
  .home-page .hero-copy .checks { flex-wrap: wrap; justify-content: flex-start; gap: 8px 14px; }
  .home-page .journey-card { padding: 14px; gap: 0 8px; }
  .home-page .journey-cta { font-size: 10px; }
}
@media (max-width: 880px) {
  .home-page .mobile-journey-nav, .home-page .hero-route { width: 100%; justify-self: stretch; }
  .home-page .hero-route .route-stats { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .home-page .route-stats .stat-box { min-width: 0; }
  .home-page .route-stats .stat-box span { font-size: 9px; }
  .home-page .route-stats .stat-box small { font-size: 10px; line-height: 1.6; }
}

/* Vehicle selection and the three-step reservation flow. */
.home-page .fleet-grid { gap: 20px; align-items: stretch; }
.home-page .fleet-card { min-height: 0; padding: 24px; border: 1px solid #ffffff18; border-radius: 20px; background: #17181b; box-shadow: none; }
.home-page .fleet-card:hover { transform: none; background: #1b1c1f; border-color: #d3b45d80; box-shadow: none; }
.home-page .fleet-head { gap: 12px; margin-bottom: 20px; }
.home-page .fleet-head span { font-size: 9px; letter-spacing: .12em; font-weight: 500; color: #d4b96f; margin-bottom: 10px; }
.home-page .fleet-head h3 { font-size: 25px; line-height: 1.2; letter-spacing: -.04em; font-weight: 600; }
.home-page .fleet-head b { padding: 6px 10px; min-height: 30px; font-size: 10px; font-weight: 500; }
.home-page .vehicle-frame { height: auto; aspect-ratio: 4 / 3; min-height: 0; margin-bottom: 20px; border-radius: 14px; box-shadow: none; background: #222428; }
.home-page .vehicle-frame::before, .home-page .vehicle-frame::after { display: none; }
.home-page .fleet-photo { position: absolute; inset: 0; display: block; width: 100%; height: 100%; max-width: 100%; object-fit: contain; object-position: center 20%; transform: none; filter: none; }
.home-page .vehicle-brand { top: 10px; right: 10px; font-size: 8px; padding: 0 8px; min-height: 24px; letter-spacing: .06em; font-weight: 500; }
.home-page .vehicle-brand::before { box-shadow: none; width: 5px; height: 5px; }
.home-page .fleet-features { gap: 10px; margin: 0 0 22px; }
.home-page .fleet-features li { font-size: 13px; line-height: 1.6; font-weight: 400; color: #bfc1c9; }
.home-page .fleet-select { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; margin-top: auto; padding: 12px 14px; border: 1px solid #d3b45d55; border-radius: 12px; background: #ffd04a0a; color: #f0d17c; font-size: 13px; font-weight: 600; }
.fleet-select > span { font-size: 21px; }
.home-page .fleet-select:hover { background: #ffd04a; color: #16130b; }
.booking-step { min-width: 0; margin: 20px 0 0; padding: 0; border: 0; }
.booking-step[hidden], .booking-navigation[hidden], .booking-navigation button[hidden] { display: none; }
.booking-step legend { padding: 0 0 18px; font-size: 21px; line-height: 1.3; font-weight: 600; letter-spacing: -.03em; color: #f4f4f6; }
.booking-step legend:focus-visible { outline: 2px solid var(--yellow); outline-offset: 3px; }
.booking-progress { display: flex; justify-content: space-between; gap: 8px; margin: 0; padding: 0; list-style: none; }
.booking-progress li { display: flex; align-items: center; gap: 7px; color: #a8aab4; font-size: 11px; }
.booking-progress li > span { display: grid; place-items: center; width: 26px; height: 26px; border-radius: 50%; background: #ffffff07; border: 1px solid #ffffff20; font-size: 11px; }
.booking-progress [aria-current="step"] { color: #f6d679; }
.booking-progress [aria-current="step"] > span { background: #ffd04a; color: #18150b; border-color: #ffd04a; }
.booking-progress .is-complete > span { color: #f6d679; border-color: #d0b256; }
.booking-step-status { display: none; }
.has-booking-steps .booking-step-status { display: block; margin: 16px 0 0; font-size: 11px; color: #a8aab4; }
.booking-navigation { display: flex; gap: 10px; margin-top: 20px; }
.booking-navigation button { min-height: 48px; padding: 12px 16px; border: 1px solid #ffffff24; border-radius: 12px; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.booking-back { background: transparent; color: #c7c9d1; }
.booking-next { flex: 1; background: #ffd04a; color: #18150b; }
.booking-vehicle-note { font-size: 12px; line-height: 1.7; color: #a8aab4; }
.booking-step .booking-preview { margin: 14px 0; }
.home-page .booking-summary dl > div { grid-column: auto; grid-row: auto; }
@media (max-width: 880px) {
  .home-page .fleet-grid { margin-top: 20px; gap: 16px; }
  .home-page .fleet-card { padding: 18px; }
  .home-page .fleet-head h3 { font-size: 24px; }
  .home-page .vehicle-frame { height: auto; }
  .home-page .booking-step .booking-summary dl { display: block; }
  .home-page .booking-step .booking-summary dl > div { display: grid; grid-template-columns: minmax(0,1fr); gap: 3px; }
  .home-page .booking-step .booking-summary-hint { display: block; }
  .home-page .booking-copy { display: none; }
  .home-page .booking-step legend { font-size: 22px; }
  .home-page .booking-step .booking-vehicle-note { font-size: 11px; }
}
.booking-choice { margin: 0 0 18px; padding: 10px 12px; border: 1px solid #d3b45d40; border-radius: 10px; background: #ffd04a08; color: #ebcf88; font-size: 12px; line-height: 1.6; }
.booking-choice[hidden] { display: none; }

/* Quick route selection and direct edits keep the booking journey short. */
.booking-quick-routes { padding: 16px; border: 1px solid #d9e5df; border-radius: 14px; background: #f3f8f5; margin-bottom: 20px; }
.booking-quick-routes > span { display: block; font-size: 13px; font-weight: 600; color: #284c40; margin-bottom: 10px; }
.booking-quick-routes > div, .booking-summary-actions { display: flex; flex-wrap: wrap; gap: 8px; }
.booking-quick-routes button, .booking-summary-actions button { min-height: 44px; padding: 10px 14px; border: 1px solid #b9cec3; border-radius: 10px; background: #fff; color: #244e3d; font: inherit; font-size: 13px; font-weight: 600; cursor: pointer; }
.booking-quick-routes button:hover, .booking-summary-actions button:hover { background: #e6f0e9; }
.booking-quick-routes button:focus-visible, .booking-summary-actions button:focus-visible { outline: 3px solid #227c55; outline-offset: 3px; }
.booking-summary-actions { margin-top: 16px; }
.booking-quick-routes[hidden], .booking-summary-actions[hidden] { display: none; }
@media (max-width: 420px) { .booking-quick-routes button { flex: 1 1 100%; } }

.booking-return { margin: 18px 0; padding: 18px; border: 1px solid #d7e3db; border-radius: 14px; background: #f5f8f3; }
.booking-return h3 { margin: 0 0 10px; font-size: 17px; color: #244b37; }
.booking-return[hidden], .booking-child-details[hidden] { display: none; }
.booking-summary dd { overflow-wrap: anywhere; }
.booking-summary [data-summary-optional][hidden], .booking-summary [data-booking-note][hidden] { display: none; }
.booking-return { background: #19221c; border-color: #3b4c40; }
.booking-return h3 { color: #f0f5ef; }
.booking-return .booking-vehicle-note { color: #becbc1; }
.home-page .booking-step .booking-summary dl > div[hidden] { display: none; }

/* Reservation tools share the existing green and cream palette. */
.booking-save-actions { display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 8px; }
.booking-save-actions button { min-height:44px; padding:10px 16px; border:1px solid #b9cec3; border-radius:10px; background:#fff; color:#244e3d; font:inherit; font-size:14px; cursor:pointer; }
.booking-save-actions button:hover { background:#e6f0e9; }
.booking-save-actions button:focus-visible { outline:3px solid #227c55; outline-offset:3px; }
.reservation-support { display:grid; grid-template-columns:1fr 1fr; gap:36px; align-items:start; }
.reservation-support h2 { margin:12px 0; font-size:clamp(28px,4vw,44px); line-height:1.15; }
.reservation-support p { line-height:1.65; }
.reservation-support a { color:#24583f; text-decoration:underline; text-underline-offset:3px; }
.reservation-support textarea { width:100%; min-height:110px; resize:vertical; padding:12px; border:1px solid #b9cec3; border-radius:10px; background:#fff; color:#183c2c; font:inherit; }
.reservation-support > *, .reservation-support .booking-form { min-width:0; }
@media (max-width:760px) { .reservation-support { grid-template-columns:1fr; gap:20px; } }

.support-submit { min-height:48px; width:100%; border:0; border-radius:12px; padding:14px 18px; background:#24583f; color:white; font:inherit; font-weight:700; cursor:pointer; }
.support-submit:focus-visible { outline:3px solid #227c55; outline-offset:3px; }
/* Match the active dark home-page theme. */
.home-page .reservation-support a { color:var(--yellow, #ffd84d); }
.home-page .reservation-support textarea { background:#101112; color:#f5f5f5; border-color:#353535; }
.home-page .booking-save-actions button { background:#17191a; color:#f5f5f5; border-color:#454545; }
.home-page .booking-save-actions button:hover { background:#252829; }
.home-page .support-submit { background:var(--yellow, #ffd84d); color:#111; }
.home-page .support-submit:focus-visible, .home-page .booking-save-actions button:focus-visible, .home-page .reservation-support textarea:focus-visible { outline:3px solid var(--yellow, #ffd84d); outline-offset:3px; }
