.booking-page { width: min(1380px, calc(100% - 40px)); margin: 0 auto; padding: 36px 0 64px; }
.booking-preset-note { margin: 0 0 14px; padding: 12px 16px; color: #173c60; background: #f0f5ed; border-radius: 7px; font: 500 16px/1.6 "Segoe UI", Arial, sans-serif; }
.booking-preset-note[hidden] { display: none !important; }
.booking-page__intro { margin: 0 0 24px; }
.booking-page__intro nav { color: #456078; font: 500 16px/1.6 "Segoe UI", Arial, sans-serif; }
.booking-page__intro nav a { color: #163e61; text-decoration: underline; }
.booking-page__intro h1 { margin: 20px 0 12px; font-size: clamp(30px, 4vw, 46px); }
.booking-page__intro p { max-width: 900px; color: #23384a; font: 500 18px/1.7 "Segoe UI", Arial, sans-serif; }
.booking-page__links { display: flex; flex-wrap: wrap; gap: 12px 24px; margin-top: 16px; }
.booking-page__widget { padding: 16px; background: #fff; border: 1px solid #d5e1e8; border-radius: 14px; }
.booking-page__widget .ticket-widget__frame { min-height: 360px; }
.booking-page--account .ticket-widget__frame { min-height: 180px; }
.booking-page--account { width: 100%; margin: 0; padding: 0; }
.account-hero h1 > b { font-weight: inherit; }
.account-hero .journey-page-hero__inner { gap: 60px; padding-bottom: 44px; }
.account-pass { padding: 26px 30px; border: 1px solid #8196a755; border-top: 3px solid #f8ce46; border-radius: 10px; background: #ffffff07; transform: rotate(-3deg); }
.account-pass__top { display: flex; justify-content: space-between; align-items: center; color: #f8ce46; }
.account-pass__top strong { font: 800 23px/1.4 Montserrat, sans-serif; letter-spacing: .08em; }
.account-pass__top .icon { width: 30px; height: 30px; }
.account-pass > p { margin: 16px 0 24px; color: #d9e4ec; font-size: 16px; }
.account-pass__route { display: flex; justify-content: space-between; align-items: center; gap: 12px; font: 750 19px/1.5 Montserrat, sans-serif; }
.account-pass__route i { font-style: normal; color: #f8ce46; }
.account-pass__bottom { display: flex; justify-content: space-between; gap: 16px; margin-top: 28px; padding-top: 18px; border-top: 1px dashed #829aaa80; color: #d1dfe9; font-size: 14px; }
.account-content { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .9fr); align-items: start; gap: 28px; width: min(1160px, calc(100% - 48px)); margin: 0 auto; padding: 48px 0 60px; }
.account-access, .account-guide { min-width: 0; padding: 32px; border: 1px solid #d9e2df; border-radius: 12px; background: #fff; }
.account-access { border-top: 3px solid #d8b349; box-shadow: 0 14px 36px #163c5f07; }
.account-content h2 { margin: 0 0 16px; color: #142f4b; font: 750 27px/1.25 Montserrat, sans-serif; letter-spacing: -.03em; }
.account-access__lead, .account-guide p { margin: 0; color: #23384a; font: 500 18px/1.7 "Segoe UI", Arial, sans-serif; }
.account-access__widget { margin-top: 24px; }
.account-access__widget .ticket-widget { padding: 0; }
.account-access__widget .ticket-widget__frame { min-height: 96px; }
.account-guide { background: #f0f4ed; }
.account-guide .journey-eyebrow { margin-bottom: 16px; color: #627c8c; font: 750 14px/1.6 Montserrat, sans-serif; }
.account-guide__item { display: flex; gap: 16px; padding: 22px 0; border-bottom: 1px solid #d4dfd4; }
.account-guide__item > .icon { width: 25px; height: 25px; flex-shrink: 0; margin-top: 4px; color: #5b705c; }
.account-guide h3 { margin: 0 0 7px; font-size: 18px; line-height: 1.5; }
.account-guide__help { display: grid; gap: 8px; margin-top: 24px; color: #354f63; font-size: 16px; }
.account-guide__help a { display: inline-flex; align-items: center; gap: 10px; width: fit-content; color: #173c60; font-size: 19px; font-weight: 750; }
.account-guide__help .icon { width: 19px; height: 19px; }
@media (max-width: 960px) { .account-pass { display: none; } .account-content { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 640px) { .account-content { width: calc(100% - 32px); padding: 30px 0 40px; gap: 20px; } .account-access, .account-guide { padding: 24px 20px; } .account-content h2 { font-size: 24px; } }
.ticket-widget__frame { scroll-margin-top: 100px; }
@media (max-width: 600px) { .booking-page:not(.booking-page--account) { width: calc(100% - 24px); padding-top: 24px; } .booking-page__widget { padding: 4px; } }
/* Keep the passenger account link in the native navigation at all sizes. */
@media (min-width: 1181px) and (max-width: 1380px) {
  .site-header__inner { grid-template-columns: auto 1fr auto; }
  .brand { grid-column: 1; grid-row: 1; }
  .header-ticket { grid-column: 2; grid-row: 1; justify-self: end; }
  .nav-toggle { display: grid; grid-column: 3; grid-row: 1; justify-self: end; }
  .main-nav { display: none; }
  .main-nav.is-open { display: grid; grid-column: 1 / -1; grid-row: 2; justify-content: stretch; padding-bottom: 14px; }
}
