:root {
  --evergreen: #064834;
  --evergreen-deep: #003d2d;
  --lime: #ddee9a;
  --ivory: #fdfcf6;
  --panel: #fffefa;
  --line: #d8ded4;
  --muted: #5e746a;
}

* { box-sizing: border-box; }
html, body { min-height: 100%; }
body { margin: 0; background: var(--ivory); color: var(--evergreen); font-family: Manrope, sans-serif; }
.shell { width: min(100% - 52px, 1400px); margin: 0 auto; }

.site-header { position: sticky; top: 0; z-index: 50; height: 74px; background: rgba(255, 254, 250, .96); transition: box-shadow .2s ease, background-color .2s ease; }
.site-header.is-scrolled { box-shadow: 0 6px 20px rgba(11, 63, 43, .09); }
.header-content { display: flex; align-items: center; height: 100%; gap: 32px; }
.brand { display: inline-flex; align-items: center; height: 36px; }
.brand img { display: block; width: 174px; height: auto; mix-blend-mode: multiply; }
.primary-nav { display: flex; align-self: stretch; align-items: stretch; gap: 29px; margin-left: auto; margin-right: 42px; }
.primary-nav a { display: flex; align-items: center; padding: 0 0 1px; border-bottom: 3px solid transparent; color: var(--evergreen); font-size: 13px; font-weight: 700; text-decoration: none; white-space: nowrap; transition: color .18s ease, border-color .18s ease; }
.primary-nav a:hover, .primary-nav a:focus-visible { color: #07523b; outline: 0; }
.primary-nav a[aria-current="page"] { border-bottom-color: #2d765d; color: #07523b; }
.currency-picker { position: relative; }
.currency-select { display: inline-flex; align-items: center; justify-content: center; gap: 7px; border: 1px solid #cbd4c9; border-radius: 18px; background: transparent; color: var(--evergreen); padding: 8px 12px; font: 700 13px Manrope, sans-serif; line-height: 1; }
.currency-select i { display: block; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); }
.currency-select[aria-expanded="true"] i { transform: translateY(1px) rotate(225deg); }
.currency-menu { position: absolute; top: calc(100% + 8px); right: 0; z-index: 30; width: 190px; overflow: hidden; padding: 5px; border: 1px solid #d2ddd2; border-radius: 10px; background: var(--panel); box-shadow: 0 14px 28px rgba(11, 63, 43, .16); }
.currency-menu[hidden] { display: none; }
.currency-menu button { display: flex; align-items: center; justify-content: space-between; width: 100%; padding: 10px 11px; border: 0; border-radius: 6px; background: transparent; color: var(--evergreen); font: 700 13px Manrope, sans-serif; text-align: left; }
.currency-menu button span { color: var(--muted); font-weight: 500; }
.currency-menu button[aria-current="true"], .currency-menu button:hover, .currency-menu button:focus-visible { background: #eef4e3; outline: 0; }
.menu-toggle, .mobile-nav { display: none; }

.page-content { min-height: calc(100vh - 74px - 290px); }

.route-page { padding-bottom: 58px; }
.route-breadcrumbs { display: flex; gap: 9px; padding-top: 17px; color: var(--muted); font-size: 13px; }
.route-breadcrumbs a { color: var(--evergreen); text-decoration: none; }
.route-hero { display: grid; grid-template-columns: minmax(330px, .95fr) minmax(0, 1.05fr); min-height: 270px; padding: 28px 0 16px; }
.route-hero-copy h1 { margin: 0 0 4px; font: 600 clamp(48px, 5.1vw, 70px)/.95 Newsreader, serif; letter-spacing: -.04em; }
.route-hero-copy h1 span { color: #41795e; }
.route-hero-lead { margin: 0 0 14px; font: 600 23px/1.1 Newsreader, serif; }
.route-hero-description { max-width: 520px; margin: 0 0 17px; font-size: 13px; font-weight: 700; line-height: 1.42; }
.route-mode-tabs { display: flex; gap: 8px; margin-bottom: 10px; }
.route-mode-tabs button { min-height: 37px; padding: 7px 16px; border: 1px solid #dbe3d7; border-radius: 7px; background: #f5f7f0; color: var(--evergreen); font: 700 13px Manrope, sans-serif; }
.route-mode-tabs .is-active { border-color: #07523b; background: #07523b; color: #fff; }
.route-signal-card { display: grid; grid-template-columns: 175px minmax(0, 1fr); max-width: 600px; overflow: hidden; border: 1px solid #e0e5da; border-radius: 7px; background: var(--panel); }
.route-signal-card > div { display: flex; flex-direction: column; padding: 11px 13px; border-right: 1px solid #e0e5da; }
.route-signal-card span, .route-signal-card small, .route-signal-card p { color: var(--muted); font-size: 13px; line-height: 1.35; }
.route-signal-card strong { margin: 6px 0 3px; color: #447557; font: 600 27px Newsreader, serif; white-space: nowrap; }
.route-signal-card > div span, .route-signal-card > div small { white-space: nowrap; }
.route-signal-card p { margin: 0; padding: 11px 13px; }
.route-signal-card p b { display: block; margin-top: 6px; color: #608a55; font-size: 13px; }
.route-hero-map { position: relative; min-height: 255px; overflow: hidden; background: transparent; }
.route-hero-map i { position: absolute; top: 88px; right: 19%; left: 21%; height: 112px; border-top: 2px dashed #4d8964; border-radius: 50%; transform: rotate(13deg); }
.route-map-place { position: absolute; z-index: 1; display: grid; place-items: center; width: 15px; height: 15px; border: 3px solid #d9e66f; border-radius: 50%; background: #07523b; }
.route-map-place b { position: absolute; top: 21px; color: var(--evergreen); font-size: 13px; white-space: nowrap; }
.route-map-place--origin { top: 73px; left: 23%; }.route-map-place--destination { right: 20%; bottom: 49px; }.route-map-place--destination b { top: 21px; }
.route-hero-map > span { position: absolute; z-index: 5; bottom: 4px; left: 28%; padding: 8px 13px; border: 1px solid #e0e5da; border-radius: 7px; background: rgba(255,254,250,.9); color: var(--muted); font-size: 13px; }.route-hero-map > span em { font-style: normal; }.route-hero-map > span strong { display: inline; margin-left: 5px; color: var(--evergreen); font-size: 15px; }.route-hero-map > span small { display: block; margin-top: 3px; color: var(--muted); font-size: 13px; }.route-hero-map > span small b { color: var(--evergreen); font-weight: 700; }
.route-hero-map--geographic { background: transparent; }.route-map-geo-canvas { position: absolute; inset: 7% 6% 18%; }.route-flight-path { position: absolute; inset: 0; z-index: 2; width: 100%; height: 100%; overflow: visible; }.route-flight-path path { fill: none; stroke: #4d8964; stroke-dasharray: 5 5; stroke-width: 1.2; vector-effect: non-scaling-stroke; }.route-map-country { position: absolute; z-index: 1; width: 58%; height: 70%; }.route-map-country--origin { top: -19%; left: -15%; }.route-map-country--destination { right: -15%; bottom: -19%; }.route-country-contour { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; opacity: .94; transform: scale(1.6); transform-origin: center; }.route-map-city-art { position: absolute; z-index: 3; width: 84px; height: 84px; object-fit: contain; pointer-events: none; }.route-map-country--origin .route-map-city-art { top: auto; right: calc(27% + 16px); bottom: calc(17% - 14px); left: auto; }.route-map-country--destination .route-map-city-art { top: calc(43% - 56px); left: calc(28% + 16px); }.route-hero-map--geographic .route-map-place { position: absolute; z-index: 4; width: 10px; height: 10px; border: 2px solid #d8e45b; border-radius: 50%; background: var(--evergreen); box-shadow: 0 0 0 3px rgba(255,254,250,.78); }.route-hero-map--geographic .route-map-place b { position: absolute; top: 17px; left: 50%; transform: translateX(-50%); color: var(--evergreen); font-size: 13px; white-space: nowrap; }.route-map-country--origin .route-map-place { right: 27%; bottom: 17%; }.route-map-country--destination .route-map-place { left: 28%; top: 43%; }.route-hero-map--geographic > span { left: 50%; transform: translateX(-50%); }
.route-facts { display: grid; grid-template-columns: repeat(4, 1fr); margin-top: 14px; margin-bottom: 42px; padding: 15px 12px; border-radius: 7px; background: #f7f7f1; }.route-facts article { display: flex; align-items: center; gap: 10px; padding: 3px 16px; border-right: 1px solid #dde4d9; }.route-facts article:last-child { border: 0; }.route-fact-icon { display: block; flex: 0 0 44px; width: 44px; height: 44px; object-fit: contain; }.route-facts strong, .route-facts article > div > span { display: block; }.route-facts strong { font-size: 13px; }.route-facts article > div > span { margin-top: 2px; color: var(--muted); font-size: 13px; }
.route-calendar { margin-bottom: 49px; }.route-calendar .section-heading { align-items: end; }.route-calendar .section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }.route-tag { padding: 6px 11px; border: 1px solid #c3d1c5; border-radius: 15px; color: var(--evergreen); font-size: 13px; font-weight: 700; }.route-date-grid { display: grid; grid-template-columns: repeat(10, minmax(0, 1fr)); overflow: hidden; border: 1px solid #e0e5da; border-radius: 7px; }.route-date-grid article { min-height: 101px; padding: 0; border-right: 1px solid #e0e5da; text-align: center; }.route-date-grid article:last-child { border: 0; }.route-date-grid article > a { display: flex; min-height: 101px; flex-direction: column; align-items: center; justify-content: center; padding: 12px 8px; color: inherit; text-decoration: none; }.route-date-grid article > a:hover,.route-date-grid article > a:focus-visible { background: #f2f5ec; outline: 0; }.route-date-grid span, .route-date-grid small, .route-date-grid em { display: block; color: var(--muted); font-size: 13px; font-style: normal; }.route-date-grid span { color: var(--evergreen); font-weight: 700; }.route-date-grid strong { display: block; margin: 7px 0 3px; color: var(--evergreen); font: 600 23px Newsreader, serif; }.route-date-grid .is-best { margin: 4px 0; border: 1px solid #8ea78e; border-radius: 6px; }.route-date-grid .is-best > a { min-height: 93px; }
.route-calendar-note { margin: 10px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.home-hero { display: grid; grid-template-columns: 40% 60%; min-height: 405px; align-items: center; overflow: hidden; }
.hero-copy { position: relative; z-index: 1; padding-left: 4px; }
.hero-copy h1 { margin: 0 0 20px; color: var(--evergreen); font: 600 clamp(54px, 5vw, 78px)/.94 Newsreader, serif; letter-spacing: -.035em; }
.hero-kicker { margin: 0 0 18px; color: #254d3d; font-size: 13px; font-weight: 800; letter-spacing: .015em; line-height: 1.42; text-transform: uppercase; }
.hero-description { max-width: 410px; margin: 0; color: #50675d; font-size: 14px; line-height: 1.55; }
.hero-map { align-self: stretch; display: flex; align-items: center; margin-right: -120px; }
.hero-map img { display: block; width: 108%; min-width: 720px; height: auto; max-width: none; }

.search-section { position: relative; z-index: 10; margin-bottom: 46px; }
.route-search-section { margin-bottom: 14px; }
.search-module { position: relative; overflow: visible; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); box-shadow: 0 8px 18px rgba(14, 61, 42, .04); }
.search-tabs { display: flex; align-items: end; min-height: 52px; padding: 8px 12px 0; border-bottom: 1px solid var(--line); background: var(--panel); }
.search-tab { display: inline-flex; align-items: center; gap: 9px; min-width: 194px; min-height: 44px; padding: 11px 22px; border: 0; border-radius: 7px 7px 0 0; background: linear-gradient(110deg, #00422f, #0b6343); color: #fff; font: 700 13px Manrope, sans-serif; text-transform: uppercase; }
.plane-icon { display: inline-block; font-size: 17px; line-height: 1; transform: rotate(-12deg); }
/* Native widget dropdowns must be allowed to escape the decorative frame. */
.flight-widget { position: relative; z-index: 2; min-height: 176px; padding: 12px; background: var(--panel); overflow: visible; }

.popular-routes { margin: 0 auto 50px; }
.section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 16px; }
.section-heading h2 { margin: 0; color: var(--evergreen); font: 600 25px Newsreader, serif; }
.section-heading > a { display: inline-flex; align-items: center; gap: 8px; border: 1px solid #bfcfc2; border-radius: 18px; color: var(--evergreen); padding: 7px 12px; font-size: 13px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.section-heading > a span, .route-more span { color: #6e9c56; font-size: 17px; line-height: .8; }
.route-groups { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.route-groups--flights-only { grid-template-columns: 1fr; }
.route-group { min-width: 0; }
.route-group--rail { padding-left: 28px; border-left: 1px solid var(--line); }
.route-group h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 11px; color: var(--evergreen); font-size: 13px; font-weight: 800; text-transform: uppercase; }
.route-group h3 span { color: #287057; font-size: 17px; line-height: 1; }
.route-mode-icon { width: 18px; height: 18px; fill: none; stroke: #287057; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.8; }
.route-card-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.route-groups--flights-only .route-card-grid { grid-template-columns: repeat(8, minmax(0, 1fr)); }
.route-card-grid--six { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.route-card { display: flex; min-height: 126px; flex-direction: column; padding: 12px 11px; border: 1px solid #e0e5dc; border-radius: 6px; background: var(--panel); color: var(--evergreen); text-decoration: none; transition: border-color .18s ease, transform .18s ease; }
.route-card:hover, .route-card:focus-visible { border-color: #96ae9a; outline: 0; transform: translateY(-2px); }
.route-card strong { font-size: 13px; line-height: 1.25; }
.route-card small { min-height: 19px; margin-top: 2px; color: var(--muted); font-size: 13px; line-height: 1.2; }
.route-card > span { margin-top: auto; color: var(--muted); font-size: 13px; }
.route-card b { margin-top: 1px; font: 600 23px Newsreader, serif; }
.route-card em { color: var(--muted); font-size: 13px; font-style: normal; }
.route-card-empty { grid-column: 1 / -1; margin: 0; padding: 16px; border: 1px solid #e0e5dc; border-radius: 6px; background: var(--panel); color: var(--muted); font-size: 13px; line-height: 1.45; }
.route-more { display: inline-flex; align-items: center; gap: 7px; margin-top: 13px; color: var(--evergreen); font-size: 13px; font-weight: 700; text-decoration: none; }

.fare-pulse { margin: 0 auto 52px; }
.pulse-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.pulse-card { position: relative; display: block; min-height: 142px; overflow: hidden; padding: 13px 13px 10px; border: 1px solid #e0e5dc; border-radius: 6px; background: var(--panel); color: var(--evergreen); text-decoration: none; transition: border-color .18s ease, transform .18s ease; }
.pulse-card:hover, .pulse-card:focus-visible { border-color: #96ae9a; outline: 0; transform: translateY(-2px); }
.pulse-card h3 { margin: 0; color: var(--evergreen); font-size: 13px; line-height: 1.32; }
.pulse-card > p { margin: 4px 0 8px; color: var(--muted); font-size: 13px; }
.pulse-card > div { display: flex; align-items: end; justify-content: space-between; gap: 6px; }
.pulse-card strong { font: 600 26px Newsreader, serif; }
.price-drop { color: #5d9149; font-size: 13px; font-weight: 700; text-align: right; }
.price-rise { color: #a76c42; font-size: 13px; font-weight: 700; text-align: right; }
.price-current { color: #3e785d; font-size: 13px; font-weight: 700; text-align: right; }
.price-drop small, .price-rise small { display: block; margin-top: 2px; color: var(--muted); font-size: 13px; font-weight: 500; white-space: nowrap; }
.price-current small { display: block; margin-top: 2px; color: var(--muted); font-size: 13px; font-weight: 500; white-space: nowrap; }
.signal-label { position: absolute; bottom: 9px; left: 13px; color: #65874b; font-size: 13px; }
.signal-label--rise { color: #a76c42; }
.pulse-empty { grid-column: 1 / -1; margin: 0; padding: 16px; border: 1px solid #e0e5dc; border-radius: 6px; background: var(--panel); color: var(--muted); font-size: 13px; line-height: 1.45; }
.pulse-note { margin: 11px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }

.trip-purpose { margin: 0 auto 52px; }
.purpose-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.purpose-grid--flights-only { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.purpose-card { position: relative; display: flex; min-height: 132px; overflow: hidden; padding: 16px 18px; border: 1px solid #e0e5dc; border-radius: 6px; background: var(--panel); color: var(--evergreen); text-decoration: none; }
.purpose-card > div { position: relative; z-index: 1; max-width: 52%; }
.purpose-card h3 { margin: 0 0 6px; font: 600 23px Newsreader, serif; line-height: 1.05; }
.purpose-card p { margin: 0 0 10px; color: var(--muted); font-size: 13px; line-height: 1.42; }
.purpose-card span { font-size: 13px; font-weight: 800; }
.purpose-card span b { margin-left: 5px; color: #6e9c56; font-size: 17px; }
.purpose-card img { position: absolute; right: 0; bottom: 10px; width: 57%; height: 105%; object-fit: cover; object-position: right bottom; }
.purpose-card:focus-visible { outline: 2px solid #88a783; outline-offset: 3px; }

.country-explorer { margin: 0 auto 52px; }
.country-grid { display: grid; grid-template-columns: repeat(9, minmax(0, 1fr)); gap: 8px; }
.country-card { display: flex; min-height: 104px; flex-direction: column; align-items: center; justify-content: center; gap: 6px; padding: 10px 6px; border: 1px solid #e0e5dc; border-radius: 6px; background: var(--panel); color: var(--evergreen); text-align: center; text-decoration: none; transition: border-color .18s ease, transform .18s ease; }
.country-card:hover, .country-card:focus-visible { border-color: #96ae9a; outline: 0; transform: translateY(-2px); }
.country-illustration { display: block; width: 68px; height: 58px; object-fit: contain; }
.country-card strong { font-size: 13px; line-height: 1.25; }
.country-empty { grid-column: 1 / -1; margin: 0; padding: 16px; border: 1px solid #e0e5dc; border-radius: 6px; background: var(--panel); color: var(--muted); font-size: 13px; }
.cheapest-dates { margin: 0 auto 52px; padding: 20px 22px; border: 1px solid #e0e5dc; border-radius: 8px; background: #f5f7ed; }
.cheapest-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 13px; }
.cheapest-heading h2 { margin: 0; color: var(--evergreen); font: 600 25px Newsreader, serif; }
.cheapest-heading p, .cheapest-heading small { margin: 6px 0 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.cheapest-heading small { max-width: 250px; text-align: right; }
.date-calendar { display: grid; grid-template-columns: minmax(160px, 1.3fr) 24px minmax(0, 5fr) 24px; align-items: stretch; border: 1px solid #e0e5dc; border-radius: 6px; background: var(--panel); overflow: hidden; }
.calendar-note { margin: 10px 0 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.calendar-route { display: flex; flex-direction: column; justify-content: center; padding: 13px 16px; color: var(--evergreen); }
.calendar-route strong { font: 600 17px Newsreader, serif; line-height: 1.15; }
.calendar-route span { margin-top: 5px; color: var(--muted); font-size: 13px; }
.calendar-arrow { display: grid; place-items: center; border: 0; background: transparent; color: #6e9c56; font-size: 24px; cursor: pointer; }
.date-price-grid { display: grid; grid-auto-columns: minmax(112px, 1fr); grid-auto-flow: column; overflow-x: auto; scrollbar-width: none; border-right: 1px solid #e0e5dc; border-left: 1px solid #e0e5dc; scroll-behavior: smooth; }
.date-price-grid::-webkit-scrollbar { display: none; }
.date-price-card { min-height: 105px; padding: 0; border-right: 1px solid #e0e5dc; text-align: center; }
.date-price-card:last-child { border-right: 0; }
.date-price-card > a { display: flex; min-height: 105px; flex-direction: column; align-items: center; justify-content: center; padding: 12px 10px; color: inherit; text-decoration: none; }
.date-price-card > a:hover, .date-price-card > a:focus-visible { background: #f2f5ec; outline: 0; }
.date-price-card.is-best { margin: 5px 0; border: 1px solid #8aa38e; border-radius: 5px; }
.date-price-card span, .date-price-card small, .date-price-card em { display: block; color: var(--muted); font-size: 13px; font-style: normal; }
.date-price-card span { color: var(--evergreen); font-weight: 800; }
.date-price-card strong { display: block; margin: 8px 0 3px; color: var(--evergreen); font: 600 24px Newsreader, serif; }
.footer-cookie-settings { display: block; margin: 8px 0 0; padding: 0; border: 0; background: transparent; color: inherit; font: inherit; text-align: left; text-decoration: underline; cursor: pointer; }
.cookie-consent { position: fixed; z-index: 100; right: 18px; bottom: 18px; left: 18px; display: flex; justify-content: center; pointer-events: none; }
.cookie-consent[hidden] { display: none; }
.cookie-consent__panel { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 18px 28px; width: min(100%, 980px); padding: 20px 22px; border: 1px solid #cbd8c9; border-radius: 10px; background: #fffefa; box-shadow: 0 12px 34px rgba(17, 55, 39, .18); pointer-events: auto; }
.cookie-consent__copy h2 { margin: 0; color: var(--evergreen); font: 600 25px/1.1 Newsreader, serif; }.cookie-consent__copy p:not(.eyebrow) { max-width: 720px; margin: 8px 0; color: var(--muted); font-size: 13px; line-height: 1.55; }.cookie-consent__copy a { color: var(--evergreen); font-size: 13px; font-weight: 700; }
.cookie-consent__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 8px; }.cookie-consent__button { min-height: 38px; padding: 8px 13px; border: 1px solid #b9cdbd; border-radius: 5px; background: #fffefa; color: var(--evergreen); font: 700 13px Manrope, sans-serif; cursor: pointer; }.cookie-consent__button--primary { border-color: var(--evergreen); background: var(--evergreen); color: #fffefa; }.cookie-consent__button:focus-visible,.footer-cookie-settings:focus-visible { outline: 2px solid #6d9a59; outline-offset: 3px; }
.cookie-consent__settings { grid-column: 1 / -1; display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; padding-top: 14px; border-top: 1px solid #dfe5db; }.cookie-consent__settings label { color: var(--evergreen); font-size: 13px; font-weight: 700; }.cookie-consent__settings input { accent-color: var(--evergreen); }.cookie-consent__settings small { display: block; margin: 5px 0 0 24px; color: var(--muted); font-size: 12px; font-weight: 400; line-height: 1.4; }.cookie-consent__settings .cookie-consent__button { grid-column: 1 / -1; justify-self: end; }.consent-placeholder { margin: 18px; padding: 14px; border: 1px solid #dfe5db; border-radius: 6px; color: var(--muted); font-size: 13px; line-height: 1.5; }.consent-placeholder p { margin: 0 0 9px; }.consent-placeholder button { padding: 9px 12px; border: 0; border-radius: 5px; background: var(--evergreen); color: #fffefa; font: 700 13px Manrope, sans-serif; cursor: pointer; }.consent-placeholder button:hover,.consent-placeholder button:focus-visible { background: #174b39; outline: 0; }
@media (max-width: 800px) { .cookie-consent { right: 10px; bottom: 10px; left: 10px; }.cookie-consent__panel { grid-template-columns: 1fr; gap: 14px; padding: 17px; }.cookie-consent__actions { justify-content: flex-start; }.cookie-consent__settings { grid-template-columns: 1fr; }.cookie-consent__settings .cookie-consent__button { grid-column: auto; justify-self: start; } }
.departure-hubs { margin: 0 auto 52px; }
.hub-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.hub-card { display: flex; min-height: 138px; flex-direction: column; padding: 15px; border: 1px solid #e0e5dc; border-radius: 6px; background: var(--panel); color: var(--evergreen); text-decoration: none; transition: border-color .18s ease, transform .18s ease; }
.hub-card:hover, .hub-card:focus-visible { border-color: #96ae9a; outline: 0; transform: translateY(-2px); }
.hub-card strong { font: 600 22px Newsreader, serif; }
.hub-card > span, .hub-card small { margin-top: 3px; color: var(--muted); font-size: 13px; }
.hub-card b { margin-top: auto; font-size: 13px; }
.hub-card i { margin-left: 5px; color: #6e9c56; font-size: 17px; font-style: normal; }
.hub-card--illustrated { position: relative; min-height: 154px; overflow: hidden; padding-right: 45%; }
.hub-card--illustrated img { position: absolute; top: 8px; right: 4px; width: 53%; height: calc(100% - 16px); object-fit: contain; object-position: right center; pointer-events: none; }
.hub-card--illustrated small { margin-top: auto; }

.route-preview { margin: 0 auto 52px; }
.route-preview-card { display: grid; grid-template-columns: minmax(250px, .85fr) minmax(0, 1.55fr); overflow: hidden; border: 1px solid #dce4d7; border-radius: 8px; background: var(--panel); }
.route-preview-summary { display: flex; min-height: 290px; flex-direction: column; padding: 28px; background: linear-gradient(145deg, #063f2f, #075138); color: #f7faed; }
.route-preview-kicker { color: #cfe77a; font-size: 13px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase; }
.route-preview-summary h3 { margin: 9px 0 6px; font: 600 35px/1.02 Newsreader, serif; }
.route-preview-summary h3 span { color: #d7ec79; }
.route-preview-summary p { margin: 0; color: #d4e4d7; font-size: 13px; line-height: 1.45; }
.route-preview-summary .route-preview-countries { margin-top: 2px; color: #d6e866; font-weight: 700; }
.route-preview-summary .route-preview-status { margin-top: 7px; }
.route-preview-summary dl { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin: auto 0 18px; }
.route-preview-summary dt { margin-bottom: 3px; color: #b8d1bd; font-size: 13px; }
.route-preview-summary dd { margin: 0; color: #fffef5; font: 600 22px Newsreader, serif; }
.route-preview-summary a { display: inline-flex; align-items: center; justify-content: center; min-height: 42px; border-radius: 5px; background: #d6e866; color: #123e2d; font-size: 13px; font-weight: 800; text-decoration: none; }
.route-preview-summary a span { margin-left: 6px; font-size: 17px; }
.route-preview-details { position: relative; display: grid; grid-template-columns: 1fr 130px 1fr; align-items: center; gap: 14px; min-height: 290px; padding: 38px 28px 48px; }
.route-preview-line { position: absolute; top: 76px; right: 18%; left: 18%; display: flex; align-items: center; color: #17684b; }
.route-preview-line span { display: grid; place-items: center; width: 28px; height: 28px; border: 1px solid #8ba48d; border-radius: 50%; background: #f6f8ee; font-size: 14px; }
.route-preview-line i { flex: 1; border-top: 2px dashed #8caf72; }
.route-preview-line b { width: 12px; height: 12px; border: 3px solid #d4e866; border-radius: 50%; background: #17684b; }
.airport-point { position: relative; z-index: 1; display: flex; flex-direction: column; min-width: 0; padding-top: 72px; color: var(--evergreen); }
.airport-point--arrival { text-align: right; }
.airport-point small, .airport-point span, .route-preview-time span, .route-preview-details > p { color: var(--muted); font-size: 13px; line-height: 1.35; }
.airport-point strong { margin: 4px 0; font: 600 20px Newsreader, serif; }
.route-preview-time { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; text-align: center; color: var(--evergreen); }
.route-preview-time strong { font: 600 25px Newsreader, serif; }
.route-preview-details > p { position: absolute; right: 28px; bottom: 16px; left: 28px; margin: 0; text-align: center; }

.why-goviaway, .travel-notes, .faq-section { margin: 0 auto 52px; }
.benefit-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.benefit-card { display: grid; grid-template-columns: 58px 1fr; gap: 12px; min-height: 112px; padding: 15px; border: 1px solid #e0e5dc; border-radius: 6px; background: var(--panel); }
.benefit-card img { width: 54px; height: 54px; object-fit: contain; }
.benefit-card h3 { margin: 1px 0 5px; font: 600 19px Newsreader, serif; }
.benefit-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.42; }

.guide-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.guide-card { display: flex; min-height: 292px; flex-direction: column; gap: 11px; padding: 10px; border: 1px solid #e0e5dc; border-radius: 6px; background: var(--panel); color: var(--evergreen); text-decoration: none; transition: border-color .18s ease, transform .18s ease; }
.guide-card:hover, .guide-card:focus-visible { border-color: #96ae9a; outline: 0; transform: translateY(-2px); }
.guide-icon { width: 100%; height: 142px; object-fit: cover; object-position: center; border-radius: 4px; }
.guide-card h3 { margin: 0 0 5px; font: 600 16px/1.1 Newsreader, serif; }
.guide-card p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.35; }

.faq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 12px; }
.faq-grid details { border: 1px solid #e0e5dc; border-radius: 6px; background: var(--panel); }
.faq-grid summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 44px; padding: 10px 13px; color: var(--evergreen); cursor: pointer; font-size: 13px; font-weight: 700; list-style: none; }
.faq-grid summary::-webkit-details-marker { display: none; }
.faq-grid summary::after { content: '+'; color: #6e9c56; font-size: 19px; font-weight: 400; }
.faq-grid details[open] summary::after { content: '−'; }
.faq-grid details p { margin: -1px 13px 13px; color: var(--muted); font-size: 13px; line-height: 1.45; }

.seo-closing { margin: 0 auto 30px; padding: 21px 22px 18px; border: 1px solid #e0e5dc; border-radius: 8px; background: #f5f7ed; }
.seo-closing h2 { margin: 0 0 7px; color: var(--evergreen); font: 600 26px Newsreader, serif; }
.seo-copy { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 38px; margin-bottom: 15px; }
.seo-copy p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.5; }
.seo-closing nav { display: flex; flex-wrap: wrap; gap: 9px 27px; }
.seo-closing a { color: var(--evergreen); font-size: 13px; font-weight: 800; text-decoration: none; }
.seo-closing a:hover, .seo-closing a:focus-visible { color: #6a9454; outline: 0; }

.site-footer { background: linear-gradient(115deg, var(--evergreen-deep), #075b40); color: #e3eee4; padding-top: 24px; }
.footer-grid { display: grid; grid-template-columns: 1.45fr repeat(4, 1fr) 1.35fr; gap: 26px; padding-bottom: 22px; }
.footer-grid h2 { margin: 3px 0 11px; color: #d7e9aa; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.footer-grid a { display: block; margin-bottom: 7px; color: #e3eee4; font-size: 13px; line-height: 1.35; text-decoration: none; }
.footer-grid > div > span { display: block; margin-bottom: 7px; color: #a9c0b2; font-size: 13px; line-height: 1.35; }
.footer-grid > div > span { display: block; margin-bottom: 7px; color: #a9c0b2; font-size: 13px; line-height: 1.35; }
.footer-brand p, .disclosure p { margin: 14px 0; color: #c2d2c4; font-size: 13px; line-height: 1.45; }
.brand--footer img { width: 164px; filter: brightness(0) invert(1); opacity: .95; mix-blend-mode: screen; }
.social-links { display: flex; gap: 9px; }
.social-links a { width: 22px; height: 22px; margin: 0; overflow: hidden; border: 1px solid #b8d0bc; border-radius: 50%; color: transparent; }
.social-links span { display: grid; place-items: center; width: 22px; height: 22px; overflow: hidden; border: 1px solid #b8d0bc; border-radius: 50%; color: #b8d0bc; font-size: 0; }
.social-links span { display: grid; place-items: center; width: 22px; height: 22px; overflow: hidden; border: 1px solid #b8d0bc; border-radius: 50%; color: #b8d0bc; font-size: 0; }
.footer-bottom { display: grid; grid-template-columns: 180px 1fr auto; gap: 16px; border-top: 1px solid rgba(207, 229, 206, .26); padding: 13px 0 15px; color: #c7d8cf; font-size: 13px; }

.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }
.site-search { position: relative; z-index: 60; flex: 0 1 270px; margin-left: auto; }
.site-search-toggle { display: none; }
.site-search__field { display: flex; align-items: center; min-height: 38px; border: 1px solid #cbd4c9; border-radius: 20px; background: var(--panel); }
.site-search__field:focus-within { border-color: #6e9c7a; box-shadow: 0 0 0 3px rgba(110, 156, 122, .13); }
.site-search__field input { min-width: 0; flex: 1 1 auto; padding: 8px 5px 8px 14px; border: 0; outline: 0; background: transparent; color: var(--evergreen); font: 500 13px Manrope, sans-serif; }
.site-search__field input::placeholder { color: #789087; }
.site-search__field button { display: flex; flex: 0 0 34px; align-items: center; justify-content: center; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 50%; background: transparent; color: var(--evergreen); font-size: 21px; line-height: 1; cursor: pointer; }
.site-search__field button span { display: block; line-height: 1; transform: translateY(-1px); }
.site-search__suggestions { position: absolute; top: calc(100% + 8px); right: 0; left: 0; overflow: hidden; border: 1px solid #d2ddd2; border-radius: 10px; background: var(--panel); box-shadow: 0 14px 28px rgba(11, 63, 43, .16); }
.site-search__suggestions[hidden] { display: none; }
.site-search__suggestions a { display: block; padding: 10px 13px; color: var(--evergreen); text-decoration: none; }
.site-search__suggestions a:hover, .site-search__suggestions a:focus-visible { background: #eef4e3; outline: 0; }
.site-search__suggestions span, .site-search__suggestions small { display: block; color: var(--muted); font-size: 11px; line-height: 1.3; }
.site-search__suggestions strong { display: block; margin: 2px 0; font-size: 13px; line-height: 1.3; }
.site-search__suggestions .site-search__all { border-top: 1px solid #dfe5db; font-weight: 700; }
.site-search__all b { float: right; color: #6e9c56; font-size: 17px; }
.site-search__empty { margin: 0; padding: 13px; color: var(--muted); font-size: 13px; }
.site-search-page { padding: 42px 0 70px; }
.site-search-page__hero { padding-bottom: 27px; }
.site-search-page__hero h1 { max-width: 680px; margin: 0 0 22px; color: var(--evergreen); font: 600 clamp(44px, 5vw, 68px)/.96 Newsreader, serif; letter-spacing: -.035em; }
.site-search-page__form { max-width: 760px; }
.site-search-page__form > label { display: block; margin-bottom: 7px; color: var(--evergreen); font-size: 13px; font-weight: 800; }
.site-search-page__form > div { display: flex; gap: 9px; }
.site-search-page__form input { min-width: 0; flex: 1; padding: 12px 14px; border: 1px solid #cbd8c9; border-radius: 6px; background: var(--panel); color: var(--evergreen); font: 500 14px Manrope, sans-serif; }
.site-search-page__form button { padding: 10px 19px; border: 1px solid var(--evergreen); border-radius: 6px; background: var(--evergreen); color: #fffefa; font: 700 13px Manrope, sans-serif; cursor: pointer; }
.site-search-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 16px; border-bottom: 1px solid var(--line); }
.site-search-tabs a { display: inline-flex; min-height: 39px; align-items: center; padding: 8px 14px; border-bottom: 3px solid transparent; color: var(--muted); font-size: 13px; font-weight: 700; text-decoration: none; }
.site-search-tabs a:hover, .site-search-tabs a:focus-visible { color: var(--evergreen); outline: 0; }
.site-search-tabs a[aria-current="page"] { border-bottom-color: #2d765d; color: var(--evergreen); }
.site-search-results { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; }
.site-search-result { min-height: 145px; padding: 15px; border: 1px solid #e0e5dc; border-radius: 8px; background: var(--panel); color: inherit; text-decoration: none; transition: border-color .18s ease, transform .18s ease; }
.site-search-result:hover, .site-search-result:focus-visible { border-color: #96ae9a; outline: 0; transform: translateY(-2px); }
.site-search-result > span { color: #598062; font-size: 12px; font-weight: 800; text-transform: uppercase; }
.site-search-result h3 { margin: 8px 0 5px; color: var(--evergreen); font: 600 19px/1.12 Newsreader, serif; }
.site-search-result p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.site-search-empty { padding: 18px; border: 1px solid #e0e5dc; border-radius: 8px; background: var(--panel); color: var(--muted); font-size: 14px; }
@media (max-width: 900px) { .site-search { flex: 1 1 180px; margin-left: 0; }.site-search-page { padding-top: 30px; }.site-search-results { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .site-search { flex-basis: 100px; }.site-search__field input { padding-left: 10px; }.site-search__field input::placeholder { font-size: 11px; }.site-search-page { padding-top: 24px; }.site-search-page__form > div { display: grid; grid-template-columns: 1fr; }.site-search-results { grid-template-columns: 1fr; }.site-search-tabs { overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }.site-search-tabs::-webkit-scrollbar { display: none; } }

@media (max-width: 900px) {
  .shell { width: min(100% - 32px, 1400px); }
  .site-header { height: auto; min-height: 70px; border-bottom: 1px solid #e0e5da; }
  .route-hero { grid-template-columns: minmax(290px, .9fr) minmax(310px, 1.1fr); min-height: 290px; padding-top: 23px; }.route-hero-copy h1 { font-size: clamp(43px, 6.6vw, 59px); }.route-facts article { padding: 3px 10px; }.route-facts b { font-size: 20px; }.route-date-grid { overflow-x: auto; grid-template-columns: none; grid-auto-columns: 110px; grid-auto-flow: column; }.route-date-grid article { border-right: 1px solid #e0e5da; }
  .header-content { min-height: 70px; gap: 8px; }
  .site-search { flex: 0 0 auto; margin-left: auto; }
  .site-search-toggle { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 0; border: 1px solid #cbd4c9; border-radius: 50%; background: transparent; color: var(--evergreen); font-size: 21px; line-height: 1; cursor: pointer; }
  .site-search-toggle span { display: block; line-height: 1; transform: translateY(-1px); }
  .site-search__field { display: none; position: fixed; top: 70px; right: 0; left: 0; width: 100vw; min-height: 42px; border-radius: 0; box-shadow: 0 10px 22px rgba(11, 63, 43, .12); }
  .site-search.is-open .site-search__field { display: flex; }
  .site-search__suggestions { position: fixed; top: 112px; right: 0; left: 0; width: 100vw; border-radius: 0; }
  .brand img { width: 154px; }
  .primary-nav { display: none; }
  .currency-picker { flex: 0 0 auto; margin-left: auto; }
  .menu-toggle { flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 84px; height: 38px; border: 1px solid #cbd4c9; border-radius: 19px; background: transparent; color: var(--evergreen); font: 700 13px Manrope, sans-serif; line-height: 1; }
  .menu-icon { display: grid; gap: 5px; width: 17px; }
  .menu-icon i { display: block; width: 17px; height: 1px; background: var(--evergreen); transition: transform .18s ease; }
  .menu-toggle[aria-expanded="true"] .menu-icon i:first-child { transform: translateY(3px) rotate(45deg); }
  .menu-toggle[aria-expanded="true"] .menu-icon i:last-child { transform: translateY(-3px) rotate(-45deg); }
  .mobile-nav { position: absolute; top: 70px; left: 0; display: grid; grid-template-columns: 1fr; width: 100%; min-height: calc(100vh - 70px); padding: 10px 16px 18px; border-bottom: 1px solid #d4ded2; background: rgba(253, 252, 246, .99); box-shadow: 0 18px 30px rgba(11, 63, 43, .13); }
  .mobile-nav[hidden] { display: none; }
  .mobile-nav a { display: flex; align-items: center; justify-content: space-between; min-height: 49px; padding: 13px 9px; border-bottom: 1px solid #e0e5da; color: var(--evergreen); font-size: 15px; font-weight: 700; text-decoration: none; }
  .mobile-nav a::after { content: '→'; color: #7a9f61; font-size: 18px; font-weight: 500; }
  .mobile-nav a[aria-current="page"] { background: #eef4e3; color: #07523b; }
  .mobile-nav a:last-child { border-bottom: 0; }
  .home-hero { position: relative; display: block; min-height: 385px; padding-top: 44px; padding-bottom: 30px; overflow: hidden; }
  .hero-copy { position: relative; z-index: 1; max-width: 340px; padding-left: 0; }
  .hero-copy h1 { font-size: clamp(48px, 13vw, 65px); }
  .hero-map { position: absolute; top: 56px; right: -150px; z-index: 0; display: block; width: 575px; min-height: 0; margin: 0; opacity: .3; pointer-events: none; }
  .hero-map img { width: 100%; min-width: 0; }
  .search-section { margin-top: 5px; margin-bottom: 32px; }
  .search-tabs { min-height: 49px; padding-left: 8px; }
  .search-tab { min-width: 156px; min-height: 41px; padding: 10px 17px; }
  .flight-widget { min-height: 250px; padding: 9px; }
  .popular-routes { margin-bottom: 38px; }
  .route-groups { grid-template-columns: 1fr; gap: 28px; }
  .route-group--rail { padding-top: 28px; padding-left: 0; border-top: 1px solid var(--line); border-left: 0; }
  .route-groups--flights-only .route-card-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .route-card-grid--six { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .pulse-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .purpose-card { min-height: 132px; }
  .country-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
  .hub-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .route-preview-card { grid-template-columns: minmax(220px, .8fr) minmax(0, 1.25fr); }
  .route-preview-summary { min-height: 270px; padding: 22px; }
  .route-preview-summary h3 { font-size: 30px; }
  .route-preview-details { grid-template-columns: 1fr; gap: 8px; min-height: 270px; padding: 25px 22px 48px; }
  .route-preview-line, .route-preview-time { display: none; }
  .airport-point, .airport-point--arrival { padding-top: 0; text-align: left; }
  .guide-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .date-price-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .date-price-card:nth-child(4) { border-right: 0; }
  .footer-grid { grid-template-columns: repeat(2, 1fr); }
  .footer-bottom { grid-template-columns: 1fr; }
}

@media (min-width: 601px) and (max-width: 900px) {
  .home-hero { display: grid; grid-template-columns: 44% 56%; min-height: 390px; padding: 0; overflow: hidden; }
  .hero-copy { max-width: none; padding-left: 2px; }
  .hero-copy h1 { font-size: clamp(54px, 7vw, 68px); }
  .hero-map { position: static; display: flex; align-items: center; width: auto; min-height: 0; margin: 0 -90px 0 0; opacity: 1; }
  .hero-map img { width: 112%; min-width: 580px; }
}

@media (max-width: 600px) {
  .route-page { padding-bottom: 35px; }.route-breadcrumbs { overflow: hidden; padding-top: 13px; white-space: nowrap; }.route-hero { display: flex; flex-direction: column; min-height: 0; padding: 26px 0 12px; }.route-hero-copy h1 { font-size: clamp(45px, 13vw, 61px); }.route-hero-lead { font-size: 21px; }.route-hero-map { order: -1; min-height: 168px; margin-bottom: 8px; opacity: .72; }.route-hero-map i { top: 45px; right: 9%; left: 16%; height: 86px; }.route-map-place--origin { top: 38px; left: 17%; }.route-map-place--destination { right: 13%; bottom: 33px; }.route-hero-map > span, .route-hero-map--geographic > span { bottom: 2px; left: 4%; transform: scale(.83); transform-origin: left bottom; }.route-signal-card { grid-template-columns: 108px 1fr; }.route-search { border-radius: 6px; }.route-search-label { padding-left: 13px; }.route-search-tabs > span { display: none; }.route-search .flight-widget { margin: 0 7px 7px; }.route-facts { grid-template-columns: 1fr 1fr; gap: 11px 0; margin-bottom: 34px; }.route-facts article { border-right: 1px solid #dde4d9; }.route-facts article:nth-child(2n) { border-right: 0; }.route-calendar { margin-bottom: 36px; }.route-calendar .section-heading { align-items: start; }.route-calendar .section-heading h2 { font-size: 25px; }.route-tag { display: none; }.route-date-grid { scroll-snap-type: x mandatory; }.route-date-grid article { scroll-snap-align: start; }
  .section-heading h2 { font-size: 24px; }
  .section-heading > a { padding: 6px 9px; }
  .cheapest-dates { display: flex; flex-direction: column; }
  .cheapest-heading { display: contents; }
  .cheapest-heading > div { order: 1; }
  .date-calendar { order: 2; margin-top: 13px; }
  .cheapest-heading small { align-self: stretch; order: 3; width: 100%; max-width: none; margin: 10px 0 0; text-align: left; }
  .route-card-grid, .route-groups--flights-only .route-card-grid, .route-card-grid--six { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .route-card { min-height: 120px; }
  .pulse-grid { grid-template-columns: 1fr; }
  .pulse-card { min-height: 166px; }
  .purpose-grid { grid-template-columns: 1fr; }
  .purpose-card { min-height: 132px; }
  .country-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .country-card { min-height: 96px; }
  .hub-grid { grid-template-columns: 1fr; }
  .hub-card--illustrated { min-height: 142px; padding-right: 43%; }
  .hub-card--illustrated img { top: 5px; right: 2px; width: 52%; height: calc(100% - 10px); }
  .route-preview-card { grid-template-columns: 1fr; }
  .route-preview-summary { min-height: 255px; padding: 22px; }
  .route-preview-summary h3 { font-size: 33px; }
  .route-preview-details { min-height: 218px; }
  .benefit-grid, .guide-grid, .faq-grid { grid-template-columns: 1fr; }
  .benefit-card { min-height: 0; }
  .guide-card { min-height: 0; }
  .faq-grid { gap: 8px; }
  .seo-closing { padding: 19px 16px; }
  .seo-closing h2 { font-size: 25px; }
  .seo-copy { grid-template-columns: 1fr; gap: 12px; }
  .date-price-grid { grid-template-columns: none; grid-auto-columns: 100%; scroll-snap-type: x mandatory; }
  .date-price-card { border-bottom: 0; scroll-snap-align: start; }.date-price-card > a { min-height: 105px; }
}

@media (max-width: 820px) {
  .route-signal-card { grid-template-columns: 1fr; }
  .route-signal-card > div { border-right: 0; border-bottom: 1px solid #e0e5da; }
}

.route-country-contour { transform: scale(1.92); }
.route-map-country--origin .route-map-place,
.route-map-country--destination .route-map-place { top: 50%; right: auto; bottom: auto; left: 50%; }
.route-map-country--origin .route-map-city-art { top: calc(50% - 63px); right: auto; bottom: auto; left: calc(50% - 100px); }
.route-map-country--destination .route-map-city-art { top: calc(50% - 63px); left: calc(50% + 16px); }
.route-map-country--origin .route-map-place,
.route-map-country--destination .route-map-place { top: var(--map-point-y); left: var(--map-point-x); }
.route-map-country--origin .route-map-city-art { top: calc(var(--map-point-y) - 63px); left: calc(var(--map-point-x) - 100px); }
.route-map-country--destination .route-map-city-art { top: calc(var(--map-point-y) - 63px); left: calc(var(--map-point-x) + 16px); }
.route-context { margin-bottom: 46px; }
.route-context .section-heading { margin-bottom: 14px; }
.route-context .section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.route-context-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(220px, .78fr); gap: 12px; }
.route-airport-card, .route-journey-note { min-height: 170px; padding: 17px; border: 1px solid #e0e5da; border-radius: 8px; background: #fffefa; }
.route-airport-card h3, .route-journey-note h3 { margin: 0; color: var(--evergreen); font: 600 17px Newsreader, serif; }
.route-airport-card > p { margin: 5px 0 13px; color: var(--muted); font-size: 13px; }
.route-airport-card ul { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.route-airport-card li { display: flex; align-items: start; gap: 9px; }
.route-airport-card li > i { display: block; flex: 0 0 11px; width: 11px; height: 11px; margin-top: 3px; border: 1.5px solid #8aa58f; border-radius: 50%; }
.route-airport-card b, .route-airport-card small { display: block; }
.route-airport-card b { color: var(--evergreen); font-size: 13px; }
.route-airport-card a { color: inherit; text-decoration: none; }
.route-airport-card a:hover, .route-airport-card a:focus-visible { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 2px; }
.route-airport-card small, .route-context-empty { margin-top: 2px; color: var(--muted); font-size: 13px; }
.route-airport-more { margin-top: 12px; }
.route-airport-more summary { cursor: pointer; color: var(--evergreen); font-size: 13px; font-weight: 700; }
.route-airport-more ul { margin-top: 12px; }
.route-journey-note { display: flex; gap: 12px; background: #f4f6ed; }
.route-journey-note svg { flex: 0 0 47px; width: 47px; height: 47px; fill: none; stroke: #6e9a85; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.6; }
.route-journey-note p { margin: 7px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.route-journey-note ul { display: grid; gap: 5px; margin: 8px 0 0; padding: 0; list-style: none; }
.route-journey-note li { display: flex; justify-content: space-between; gap: 9px; color: var(--muted); font-size: 13px; }
.route-journey-note li b { color: var(--evergreen); font-weight: 700; text-align: right; }
.practical-arrival { margin-bottom: 46px; }
.practical-arrival .section-heading { margin-bottom: 14px; }
.practical-arrival .section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.practical-arrival-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.arrival-guide-card { display: block; min-height: 206px; padding: 18px; border: 1px solid #e0e5da; border-radius: 8px; background: #fffefa; color: inherit; text-decoration: none; }
.arrival-guide-card[href]:hover, .arrival-guide-card[href]:focus-visible { border-color: #8ea78e; background: #f4f6ed; outline: 0; }
.arrival-guide-card svg { display: block; width: 100%; height: 75px; margin: 0 0 12px; fill: none; stroke: #c4c9b3; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4; }
.arrival-guide-card__art { display: block; width: 100%; height: 84px; margin: 0 0 10px; object-fit: contain; object-position: left center; }
.arrival-guide-card h3 { margin: 0; color: var(--evergreen); font: 600 17px Newsreader, serif; }
.arrival-guide-card p { margin: 5px 0 11px; color: var(--muted); font-size: 13px; }
.arrival-guide-card span { color: var(--muted); font-size: 13px; line-height: 1.4; }
.arrival-guide-card--city { background: #f4f6ed; }
@media (max-width: 820px) { .route-context-grid { grid-template-columns: 1fr; }.route-airport-card, .route-journey-note { min-height: 0; } }
@media (max-width: 820px) { .practical-arrival-grid { grid-template-columns: 1fr; } }
.route-about { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(250px, .7fr); gap: 28px; margin-bottom: 46px; }.route-about h2, .related-routes h2, .route-feedback h2, .route-faq h2 { margin: 0; color: var(--evergreen); font: 600 26px Newsreader, serif; }.route-about p, .related-routes p, .route-feedback p { color: var(--muted); font-size: 13px; line-height: 1.5; }.route-about-tips { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin-top: 16px; }.route-about-tips span { color: var(--muted); font-size: 13px; }.route-about-tips b { display: block; margin-bottom: 3px; color: var(--evergreen); }.route-about aside { padding: 18px; border-radius: 8px; background: #f4f6ed; }.route-about aside h3 { margin: 0; color: var(--evergreen); font: 600 18px Newsreader, serif; }.route-about aside p { margin-bottom: 0; }.related-routes, .route-feedback, .route-faq { margin-bottom: 42px; }.related-routes .section-heading { margin-bottom: 14px; }.related-routes .section-heading p { margin: 4px 0 0; }.related-route-grid { display: grid; grid-template-columns: repeat(6, 1fr); gap: 10px; }.related-route-grid a { min-height: 86px; padding: 14px; border: 1px solid #e0e5da; border-radius: 8px; color: var(--evergreen); text-decoration: none; }.related-route-grid b, .related-route-grid span { display: block; font-size: 13px; }.related-route-grid span { margin-top: 10px; color: var(--muted); }.route-feedback { display: flex; align-items: center; justify-content: space-between; gap: 22px; padding: 20px; border-radius: 8px; background: #f4f6ed; }.route-feedback p { margin: 5px 0 0; }.route-feedback > span { max-width: 310px; color: var(--muted); font-size: 13px; }.route-faq > div { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 14px; margin-top: 14px; }.route-faq details { padding: 12px 14px; border: 1px solid #e0e5da; border-radius: 7px; }.route-faq summary { cursor: pointer; color: var(--evergreen); font-size: 13px; font-weight: 700; }.route-faq p { margin: 9px 0 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
@media (max-width: 820px) { .route-about, .route-about-tips, .related-route-grid, .route-faq > div { grid-template-columns: 1fr; }.route-feedback { display: block; }.route-feedback > span { display: block; margin-top: 10px; } }
.related-route-grid a { display: flex; align-items: end; justify-content: space-between; padding: 14px 10px 12px 14px; overflow: hidden; }
.related-route-grid a > div { align-self: stretch; display: flex; flex-direction: column; justify-content: space-between; }
.related-route-grid a img { flex: 0 0 82px; width: 82px; height: 62px; object-fit: contain; object-position: right bottom; }
.related-route-grid a img { flex-basis: 104px; width: 104px; height: 76px; }

/* City guide hero mirrors the route page palette while keeping the city illustration prominent. */
.city-page { padding-bottom: 54px; }.city-breadcrumbs { display: flex; gap: 9px; padding-top: 17px; color: var(--muted); font-size: 13px; }.city-breadcrumbs a { color: var(--evergreen); text-decoration: none; }.city-hero { display: grid; grid-template-columns: minmax(320px, .95fr) minmax(440px, 1.05fr); min-height: 320px; padding: 20px 0 14px; }.city-hero-copy { position: relative; z-index: 2; }.city-hero-copy h1 { max-width: 530px; margin: 0 0 12px; color: var(--evergreen); font: 600 clamp(48px, 5vw, 70px)/.96 Newsreader, serif; letter-spacing: -.04em; }.city-hero-copy > p { max-width: 390px; margin: 0; color: var(--muted); font-size: 14px; font-weight: 700; line-height: 1.45; }.city-hero-tags { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }.city-hero-tags span { padding: 6px 10px; border: 1px solid #d4dfcd; border-radius: 16px; background: #f5f7ef; color: #547b55; font-size: 13px; font-weight: 700; }.city-signal-card { display: grid; grid-template-columns: 145px minmax(0, 1fr); max-width: 510px; margin-top: 16px; overflow: hidden; border: 1px solid #e0e5da; border-radius: 7px; background: var(--panel); }.city-signal-card > div { display: flex; flex-direction: column; padding: 11px 13px; border-right: 1px solid #e0e5da; }.city-signal-card span, .city-signal-card small { color: var(--muted); font-size: 13px; line-height: 1.35; }.city-signal-card strong { margin: 4px 0; color: #41795e; font: 600 28px Newsreader, serif; }.city-signal-card p { margin: 0; padding: 12px 13px; color: var(--muted); font-size: 13px; line-height: 1.38; }.city-signal-card b { display: block; margin-top: 7px; color: #5b8b58; font-size: 13px; }.city-hero-map { position: relative; min-height: 300px; overflow: hidden; }.city-hero-contour { position: absolute; top: 0; left: 3%; width: 72%; height: 96%; object-fit: contain; opacity: .82; }.city-hero-art { position: absolute; z-index: 2; top: 6%; right: 3%; width: auto; max-width: none; height: 88%; object-fit: contain; }
@media (max-width: 820px) { .city-hero { grid-template-columns: minmax(300px, .9fr) minmax(330px, 1.1fr); }.city-hero-copy h1 { font-size: clamp(45px, 6.5vw, 61px); }.city-hero-art { right: -10%; width: 53%; } }
@media (max-width: 600px) { .city-page { padding-bottom: 30px; }.city-breadcrumbs { overflow: hidden; padding-top: 13px; white-space: nowrap; }.city-hero { display: flex; flex-direction: column; min-height: 0; padding-top: 20px; }.city-hero-map { order: -1; min-height: 190px; margin-bottom: 8px; opacity: .78; }.city-hero-copy h1 { font-size: clamp(45px, 13vw, 61px); }.city-hero-copy > p { max-width: 370px; }.city-signal-card { grid-template-columns: 130px minmax(0, 1fr); max-width: none; }.city-hero-art { top: 0; right: 2%; width: auto; height: 90%; }.city-hero-contour { top: -4%; left: 4%; width: 77%; } }
.city-popular-routes { margin-bottom: 34px; }.city-popular-routes .section-heading { margin-bottom: 13px; }.city-popular-routes .section-heading h2 { margin: 0; color: var(--evergreen); font: 600 26px Newsreader, serif; }.city-popular-routes .section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }.city-popular-route-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }.city-popular-route-card { display: flex; flex-direction: column; min-height: 230px; padding: 10px; overflow: hidden; border: 1px solid #e0e5da; border-radius: 8px; color: var(--evergreen); text-decoration: none; }.city-popular-route-title { display: block; min-height: 34px; color: var(--evergreen); font: 600 13px/1.34 Newsreader, serif; }.city-popular-route-bottom { display: flex; align-items: end; flex: 1 1 auto; gap: 4px; min-width: 0; }.city-popular-route-bottom > div { display: flex; flex: 1 1 auto; flex-direction: column; padding-bottom: 2px; }.city-popular-route-card span { display: block; color: var(--muted); font-size: 13px; white-space: nowrap; }.city-popular-route-card strong { display: block; margin-top: 2px; color: #41795e; font: 600 22px Newsreader, serif; }.city-popular-route-card small { margin-top: 4px; color: #5b8b58; font-size: 13px; white-space: nowrap; }.city-popular-route-card img { flex: 0 0 144px; width: 144px; height: 172px; object-fit: contain; object-position: left bottom; }@media (max-width: 820px) { .city-popular-route-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }@media (max-width: 600px) { .city-popular-routes { margin-bottom: 28px; }.city-popular-route-grid { grid-template-columns: 1fr; }.city-popular-route-card { min-height: 205px; }.city-popular-route-card img { flex-basis: 144px; width: 144px; height: 172px; } }
.city-popular-routes { margin-bottom: 34px; }.city-popular-routes .section-heading { margin-bottom: 13px; }.city-popular-routes .section-heading h2 { margin: 0; color: var(--evergreen); font: 600 26px Newsreader, serif; }.city-popular-routes .section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }.city-popular-route-grid { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; }.city-popular-route-card { display: flex; flex-direction: column; min-height: 145px; padding: 10px; overflow: hidden; border: 1px solid #e0e5da; border-radius: 8px; color: var(--evergreen); text-decoration: none; }.city-popular-route-title { display: block; min-height: 34px; color: var(--evergreen); font: 600 13px/1.34 Newsreader, serif; }.city-popular-route-bottom { display: flex; align-items: end; flex: 1 1 auto; gap: 4px; min-width: 0; overflow: visible; }.city-popular-route-bottom > div { position: relative; z-index: 2; display: flex; flex: 1 1 auto; flex-direction: column; padding-bottom: 2px; }.city-popular-route-card span { display: block; color: var(--muted); font-size: 13px; white-space: nowrap; }.city-popular-route-card strong { display: block; margin-top: 2px; color: #41795e; font: 600 22px Newsreader, serif; }.city-popular-route-card small { margin-top: 4px; color: #5b8b58; font-size: 13px; white-space: nowrap; }.city-popular-route-card img { position: relative; z-index: 1; flex: 0 0 72px; width: 72px; height: 86px; object-fit: contain; object-position: left bottom; transform: scale(2); transform-origin: left bottom; }@media (max-width: 820px) { .city-popular-route-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }@media (max-width: 600px) { .city-popular-routes { margin-bottom: 28px; }.city-popular-route-grid { grid-template-columns: 1fr; }.city-popular-route-card { min-height: 145px; }.city-popular-route-card img { flex-basis: 72px; width: 72px; height: 86px; transform: scale(2); } }
.city-popular-route-grid { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.city-popular-route-card { min-height: 160px; }
.city-popular-route-bottom { overflow: hidden; }
.city-popular-route-card img { flex: 0 0 145px; width: 145px; height: 98px; transform: none; object-fit: cover; object-position: center bottom; }
.city-popular-route-card span { display: flex; align-items: baseline; gap: 4px; }
.city-popular-route-card strong { display: inline; margin-top: 0; }
.city-airports { margin-bottom: 42px; }
.city-airports .section-heading { margin-bottom: 13px; }
.city-airports h2 { margin: 0; color: var(--evergreen); font: 600 26px Newsreader, serif; }
.city-airports .section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }
.city-airport-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.city-airport-card { min-height: 345px; padding: 14px; border: 1px solid #e0e5da; border-radius: 8px; background: #fffefa; }
.city-airport-card img { display: block; width: 100%; height: 118px; margin: 2px 0 9px; object-fit: contain; object-position: left center; }
.city-airport-card__body { min-width: 0; }
.city-airport-card h3 { margin: 0; color: var(--evergreen); font: 600 17px/1.2 Newsreader, serif; }
.city-airport-card h3 span { color: #598062; font-family: inherit; font-size: .82em; white-space: nowrap; }
.city-airport-card__role { margin: 5px 0 10px; color: var(--muted); font-size: 13px; }
.city-airport-card ul { display: grid; gap: 5px; margin: 0; padding: 0; list-style: none; color: var(--muted); font-size: 13px; line-height: 1.35; }
.city-airport-card li { position: relative; padding-left: 10px; }.city-airport-card li::before { position: absolute; left: 0; color: #5b8b58; content: '•'; }
.city-airport-card a { display: inline-block; margin-top: 13px; padding: 7px 10px; border: 1px solid #cbdacd; border-radius: 6px; color: var(--evergreen); font-size: 13px; font-weight: 700; text-decoration: none; }
.city-inspiration { margin-bottom: 42px; }.city-inspiration .section-heading { margin-bottom: 13px; }.city-inspiration h2 { margin: 0; color: var(--evergreen); font: 600 26px Newsreader, serif; }.city-inspiration .section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }.city-inspiration-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }.city-inspiration-grid a { display: grid; grid-template-columns: 70px minmax(0, 1fr); gap: 9px; min-height: 132px; padding: 15px; border: 1px solid #e0e5da; border-radius: 8px; background: #fffefa; color: inherit; text-decoration: none; transition: border-color .18s ease, transform .18s ease; }.city-inspiration-grid a:hover, .city-inspiration-grid a:focus-visible { border-color: #91ad91; outline: 0; transform: translateY(-2px); }.city-inspiration-grid svg { width: 70px; height: 67px; margin-top: 3px; fill: none; stroke: #78947b; stroke-linecap: round; stroke-linejoin: round; stroke-width: 1.4; }.city-inspiration-grid h3 { margin: 0; color: var(--evergreen); font: 600 16px/1.16 Newsreader, serif; }.city-inspiration-grid p { margin: 5px 0 10px; color: var(--muted); font-size: 13px; line-height: 1.38; }.city-inspiration-grid span { color: #4d7d57; font-size: 13px; font-weight: 700; }
.city-airport-comparison { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 16px; margin-top: 18px; padding: 17px; border: 1px solid #e0e5da; border-radius: 8px; background: #fffefa; }
.city-airport-comparison h3 { margin: 0; color: var(--evergreen); font: 600 20px Newsreader, serif; }.city-airport-comparison p { margin: 5px 0 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.city-airport-comparison__table { overflow-x: auto; }.city-airport-comparison__row { display: grid; grid-template-columns: 150px repeat(3, minmax(130px, 1fr)); border-top: 1px solid #e0e5da; }.city-airport-comparison__row:first-child { border-top: 0; }.city-airport-comparison__row > * { padding: 9px 10px; color: var(--muted); font-size: 13px; line-height: 1.35; }.city-airport-comparison__row > b { border-left: 1px solid #e0e5da; color: var(--evergreen); font-weight: 600; }.city-airport-comparison__row--head b { font-family: Newsreader, serif; font-size: 14px; }.city-airport-comparison__row small { color: #598062; font-size: 13px; }
@media (max-width: 820px) { .city-airport-grid { grid-template-columns: 1fr; }.city-airport-card { min-height: 0; }.city-airport-card img { width: 180px; height: 96px; }.city-airport-comparison { grid-template-columns: 1fr; }.city-airport-comparison__row { min-width: 540px; } }
@media (max-width: 820px) { .city-inspiration-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .city-inspiration { margin-bottom: 30px; }.city-inspiration-grid { grid-template-columns: 1fr; }.city-inspiration-grid a { min-height: 108px; }.city-inspiration-grid svg { width: 62px; height: 58px; } }
@media (max-width: 600px) { .city-popular-route-card img { flex-basis: 145px; } }
.city-inspiration-grid a { grid-template-columns: 140px minmax(0, 1fr); min-height: 168px; }.city-inspiration-grid img { width: 140px; height: 134px; margin-top: 3px; object-fit: contain; object-position: center; }
@media (max-width: 600px) { .city-inspiration-grid a { grid-template-columns: 124px minmax(0, 1fr); min-height: 142px; }.city-inspiration-grid img { width: 124px; height: 116px; } }
.city-popular-routes .section-heading { align-items: center; }
.city-route-slider-controls { display: flex; gap: 7px; }
.city-route-slider-controls button { display: grid; width: 34px; height: 34px; place-items: center; border: 1px solid #cddacf; border-radius: 50%; background: var(--panel); color: var(--evergreen); cursor: pointer; font-size: 19px; line-height: 1; }
.city-route-slider-controls button:hover, .city-route-slider-controls button:focus-visible { border-color: #6d9477; background: #f3f7ef; outline: 0; }
.city-popular-route-grid { display: flex; grid-template-columns: none; gap: 12px; overflow-x: auto; padding: 2px 1px 10px; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #b8cdb9 transparent; }
.city-popular-route-card { flex: 0 0 calc((100% - 48px) / 5); min-width: 0; scroll-snap-align: start; }
@media (max-width: 820px) { .city-popular-route-card { flex-basis: calc((100% - 12px) / 2); } }
@media (max-width: 600px) { .city-popular-route-card { flex-basis: 84%; }.city-route-slider-controls { display: none; } }
.city-fare-signals { display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(290px, .85fr); gap: 12px; margin-bottom: 42px; border: 1px solid #e0e5da; border-radius: 8px; background: var(--panel); overflow: hidden; }
.city-fare-chart { padding: 18px 18px 14px; }.city-fare-chart .section-heading { margin-bottom: 12px; }.city-fare-chart h2 { margin: 0; color: var(--evergreen); font: 600 23px Newsreader, serif; }.city-fare-chart p { max-width: 475px; margin: 4px 0 0; color: var(--muted); font-size: 13px; line-height: 1.4; }
.city-fare-bars { display: flex; align-items: end; height: 150px; gap: 9px; padding: 23px 7px 0; border-bottom: 1px solid #e0e5da; }.city-fare-bars article { display: flex; flex: 1 1 0; min-width: 32px; height: 100%; flex-direction: column; justify-content: end; align-items: center; }.city-fare-bar { position: relative; display: block; width: 100%; min-height: 8px; border-radius: 3px 3px 0 0; background: #bed2b9; }.city-fare-bar.is-empty { min-height: 0; height: 0; background: transparent; }.city-fare-bar b { position: absolute; bottom: calc(100% + 4px); left: 50%; color: var(--evergreen); font: 600 13px Newsreader, serif; transform: translateX(-50%); white-space: nowrap; }.city-fare-bars time { display: block; padding-top: 7px; color: var(--muted); font-size: 13px; }
.city-fare-tips { padding: 20px; background: #f4f6ed; }.city-fare-tips h3 { margin: 0 0 12px; color: var(--evergreen); font: 600 21px Newsreader, serif; }.city-fare-tips p { margin: 0 0 12px; color: var(--muted); font-size: 13px; line-height: 1.4; }.city-fare-tips p:last-child { margin-bottom: 0; }.city-fare-tips b { display: block; color: var(--evergreen); font-size: 13px; }
@media (max-width: 820px) { .city-fare-signals { grid-template-columns: 1fr; }.city-fare-tips { border-top: 1px solid #e0e5da; } }
@media (max-width: 600px) { .city-fare-signals { margin-bottom: 30px; }.city-fare-chart { padding: 16px 12px 12px; }.city-fare-bars { gap: 6px; padding-right: 3px; padding-left: 3px; overflow-x: auto; }.city-fare-bars article { flex-basis: 39px; }.city-fare-tips { padding: 16px; } }
.city-seo { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(250px, .7fr); gap: 30px; margin-bottom: 44px; padding: 22px; border: 1px solid #e0e5da; border-radius: 8px; background: #fffefa; }.city-seo h2 { margin: 0 0 11px; color: var(--evergreen); font: 600 26px/1.08 Newsreader, serif; }.city-seo p { margin: 0 0 13px; color: var(--muted); font-size: 13px; line-height: 1.55; }.city-seo aside { align-self: start; padding: 16px; border-radius: 7px; background: #f4f6ed; }.city-seo aside h3 { margin: 0; color: var(--evergreen); font: 600 18px Newsreader, serif; }.city-seo aside p { margin: 7px 0 13px; font-size: 13px; }.city-seo aside a { color: #41795e; font-size: 13px; font-weight: 700; text-decoration: none; }@media (max-width: 820px) { .city-seo { grid-template-columns: 1fr; gap: 16px; } }@media (max-width: 600px) { .city-seo { margin-bottom: 30px; padding: 17px; }.city-seo h2 { font-size: 23px; } }
.city-related-routes { margin-bottom: 42px; }.city-related-routes .section-heading { align-items: center; margin-bottom: 13px; }.city-related-routes h2 { margin: 0; color: var(--evergreen); font: 600 26px Newsreader, serif; }.city-related-routes .section-heading p { margin: 4px 0 0; color: var(--muted); font-size: 13px; }.city-related-route-grid { display: flex; gap: 12px; overflow-x: auto; padding: 2px 1px 10px; scroll-behavior: smooth; scroll-snap-type: x mandatory; scrollbar-width: thin; scrollbar-color: #b8cdb9 transparent; }.city-related-route-grid a { display: flex; flex: 0 0 calc((100% - 48px) / 5); align-items: end; justify-content: space-between; min-height: 118px; padding: 13px 10px 12px 14px; overflow: hidden; border: 1px solid #e0e5da; border-radius: 8px; color: var(--evergreen); text-decoration: none; scroll-snap-align: start; }.city-related-route-grid a > div { position: relative; z-index: 2; align-self: stretch; display: flex; flex: 1 1 auto; flex-direction: column; justify-content: space-between; min-width: 0; }.city-related-route-grid b { display: block; font: 600 13px/1.3 Newsreader, serif; }.city-related-route-grid b span { color: #598062; }.city-related-route-grid small { display: block; margin-top: 8px; color: #41795e; font: 600 20px Newsreader, serif; }.city-related-route-grid em { color: var(--muted); font-size: 13px; font-style: normal; }.city-related-route-grid img { flex: 0 0 92px; width: 92px; height: 82px; object-fit: contain; object-position: right bottom; }.city-related-route-grid a:hover, .city-related-route-grid a:focus-visible { border-color: #91ad91; background: #f9fbf5; outline: 0; }@media (max-width: 820px) { .city-related-route-grid a { flex-basis: calc((100% - 12px) / 2); } }@media (max-width: 600px) { .city-related-routes { margin-bottom: 30px; }.city-related-route-grid a { flex-basis: 84%; }.city-related-routes .city-route-slider-controls { display: none; } }
.city-faq { margin: 0 auto 52px; }.city-faq .section-heading { margin-bottom: 14px; }.city-faq h2 { margin: 0; color: var(--evergreen); font: 600 28px Newsreader, serif; }.city-faq .section-heading p { margin: 5px 0 0; color: var(--muted); font-size: 13px; }.city-faq-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 14px; }.city-faq details { border: 1px solid #dce4d6; border-radius: 8px; background: #fffefa; }.city-faq summary { padding: 15px 42px 15px 17px; color: var(--evergreen); cursor: pointer; font: 600 17px/1.3 Newsreader, serif; list-style: none; position: relative; }.city-faq summary::-webkit-details-marker { display: none; }.city-faq summary::after { content: '+'; position: absolute; right: 16px; top: 50%; transform: translateY(-50%); color: #4e8565; font: 400 24px/1 Arial, sans-serif; }.city-faq details[open] summary::after { content: '−'; }.city-faq details p { margin: -2px 17px 17px; color: var(--muted); font-size: 14px; line-height: 1.55; }.city-faq details[open] { background: #fbfcf7; border-color: #b8cdb9; }@media (max-width: 700px) { .city-faq { margin-bottom: 36px; }.city-faq h2 { font-size: 25px; }.city-faq-grid { grid-template-columns: 1fr; }.city-faq summary { font-size: 16px; } }
