/* One compact campaign alongside the first route's details, directly below its map. */
.results-grid > .route-card.has-map-side-ad { grid-column: 1 / -1; }
.route-with-side-ad { display: grid; grid-template-columns: minmax(0, 1fr) 214px; gap: 18px; align-items: start; margin-top: 10px; }
.route-detail-copy { min-width: 0; }
.map-side-ad { width: 214px; min-width: 0; border: 1px solid #dce6e5; border-radius: 16px; overflow: hidden; background: #fff; box-shadow: 0 7px 20px #143b5314; }
.map-side-ad-label { display: block; padding: 7px 11px; color: #557083; background: #f5f8fa; font: 800 10px/1.2 Inter, Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.map-side-ad a { display: block; color: inherit; text-decoration: none; }
.map-side-ad a:focus-visible { outline: 3px solid #155eef; outline-offset: -3px; }
.map-side-ad img { display: block; width: 100%; height: auto; }
.map-side-ad-text { padding: 19px 16px 18px; min-height: 242px; display: flex; flex-direction: column; gap: 11px; background: linear-gradient(145deg, color-mix(in srgb, var(--map-ad-accent), white 89%), #fff 70%); }
.map-side-ad-text strong { font-size: 21px; line-height: 1.15; color: #203955; }
.map-side-ad-text span { color: #405670; font-size: 13px; line-height: 1.4; }
.map-side-ad-text em { font-style: normal; margin-top: auto; border-radius: 10px; padding: 10px 12px; text-align: center; font-weight: 800; font-size: 13px; background: var(--map-ad-accent); color: #fff; }
.carrier-source-note { margin: 10px 0 0; font-size: 12px; line-height: 1.5; color: #53677f; }
.carrier-source-note a { color: #1552bf; font-weight: 750; }
@media (max-width: 700px) {
  .route-with-side-ad { grid-template-columns: 1fr; gap: 10px; }
  .map-side-ad { width: 100%; grid-row: 1; }
  .route-detail-copy { grid-row: 2; }
  .map-side-ad img { width: 100%; max-height: 190px; object-fit: contain; background: #fff; }
  .map-side-ad-text { min-height: 150px; }
}
