/* Final usability refinements — 19 October 2026.
   Extends the approved bright rail-family theme without changing the logo. */
:root { --reading-ink: #203b55; --focus-ring: #075ecf; }
html { scroll-padding-top: 124px; }
body { overflow-wrap: break-word; }
main, .body-grid > *, .page-head > *, .container > * { min-width: 0; }
main :is(h2,h3,h4,[id]) { scroll-margin-top: 124px; }
.section.article-section { padding-block: 0; }
.article { line-height: 1.75; }
.article p { max-width: 78ch; }
.article h2 { margin-top: 1.55em; margin-bottom: .6em; }
.article h2:first-child { margin-top: 0; }
.article a:not(.btn), .source-links a { text-underline-offset: .18em; }
.article :is(p,li) a:not(.btn):hover { text-decoration: underline; }
.source-note { border-top: 1px solid #dbe7f2; padding-top: 16px; margin-top: 28px; color: #4c6277; font-size: .875rem; }
.page-contents { gap: 7px 12px; padding: 13px 15px; margin-bottom: 22px; }
.page-contents a { font-size: .83rem; line-height: 1.45; }
.contents-label { flex-basis: 100%; font-size: .74rem; font-weight: 750; text-transform: uppercase; letter-spacing: .08em; color: #355875; }
.highlight-list { display: flex; flex-wrap: wrap; gap: 8px 14px; list-style: none; padding: 0; margin: 12px 0 14px; }
.highlight-list li { border: 1px solid #dce8f2; background: #f5faff; border-radius: 9px; padding: 7px 12px; font-weight: 650; }
.checklist li { padding-left: 4px; margin-block: 8px; }
.country-jumps { display: flex; flex-wrap: wrap; gap: 8px; margin: 16px 0 24px; }
.country-jumps a { border: 1px solid #d5e2ef; border-radius: 999px; background: #fff; color: #164d84; padding: 7px 12px; font-size: .84rem; line-height: 1.4; }
.country-jumps a:hover { border-color: #0c64c9; background: #f0f7ff; }
.country-jumps .strong { background: #e8f3ff; font-weight: 750; }
.destination-country-heading { flex-wrap: wrap; align-items: center; }
.destination-country-heading h3 { overflow-wrap: anywhere; }
.city-tile h4 { margin: 0 0 8px; color: #193b5a; font-size: 1.2rem; line-height: 1.35; }
.linked-tile { position: relative; }
.linked-tile .tile-link::after { content: ''; position: absolute; inset: 0; border-radius: 14px; }
.linked-tile:hover { box-shadow: 0 9px 24px rgba(28,64,104,.12); }
.linked-tile:focus-within { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.linked-tile a:focus-visible { outline: none; }
[hidden] { display: none !important; }
.destination-search :is(input,select,button) { min-height: 44px; }
.destination-search input { min-width: 0; }
.table-wrap { max-width: 100%; overflow-x: auto; border-radius: 10px; }
.table-wrap table { min-width: 540px; }
.table-wrap caption { padding: 12px; text-align: left; font-weight: 700; background: #f4f9ff; }
.table-wrap th[scope=row] { min-width: 165px; vertical-align: top; font-weight: 650; }
.table-wrap td { vertical-align: top; }
.hotel-search-fallback { margin-top: 8px; white-space: normal; text-align: center; }
.desktop-nav a[aria-current=location], .mobile-nav a[aria-current=location] { color: #0658ad; background: #eaf4ff; }
.network-links span[aria-current=page] { color: #294b69; }
:where(a,button,input,select,summary,[tabindex]):focus-visible { outline: 3px solid var(--focus-ring); outline-offset: 3px; }
.itinerary-route-row h3 { max-width: 100%; overflow-x: auto; padding-bottom: 6px; }
@media (max-width: 720px) {
  html { scroll-padding-top: 102px; }
  main :is(h2,h3,h4,[id]) { scroll-margin-top: 102px; }
  .article h2 { font-size: 1.45rem; }
  .page-contents { padding: 12px; gap: 7px 10px; }
  .country-jumps { gap: 7px; }
  .country-jumps a { font-size: .8rem; }
  .destination-country-heading { gap: 8px; }
  .highlight-list { display: block; }
  .highlight-list li { margin-bottom: 8px; }
  .table-wrap:focus-visible { outline-offset: -3px; }
  .hotel-search-fallback { width: 100%; }
  .photo-credits, .source-links { padding-left: 20px; }
  .photo-credits a, .source-links a { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  *, *::before, *::after { animation: none !important; transition: none !important; }
}
@media print {
  .country-jumps, .page-contents, .source-note a::after { display: none !important; }
  .article { color: #000; }
  .table-wrap { overflow: visible; }
  .table-wrap table { min-width: 0; }
}
