/* Wave 6.5.3: shared alignment rules layered over the recovered page styles. */

:root {
  --page-gutter: 1.5rem;
  --page-gutter-mobile: 1rem;
}

/* Discovery pages use one left-aligned heading, intro, controls and card grid. */
.collection-hero,
.collection-hero .container,
.collection-hero h1,
.collection-hero .collection-intro {
  text-align: left;
}

.collection-hero .container,
.collection-section .container {
  width: min(var(--page-width), calc(100% - 2 * var(--page-gutter)));
  max-width: var(--page-width);
  margin-inline: auto;
  padding-inline: 0;
}

.collection-hero h1 {
  margin: 0 0 1rem;
}

.collection-intro {
  margin: 0;
}

.section-heading,
.section-heading h2 {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}

/* Keep the homepage hero as the deliberate centered marketing composition. */
.home-hero,
.home-hero__inner {
  text-align: center;
}

.home-hero__inner {
  width: min(900px, calc(100% - 2 * var(--page-gutter)));
  margin-inline: auto;
}

.home-hero h1,
.home-hero__lede {
  margin-inline: auto;
}

.home-hero .hero-actions {
  justify-content: center;
}

/* Comparable detail pages share a single outer grid and left-aligned headers. */
body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page
  ) .container {
  width: min(var(--page-width), calc(100% - 2 * var(--page-gutter)));
  max-width: var(--page-width);
  margin-inline: auto;
  padding-inline: 0;
}

body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) > .hero,
body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) > header.hero {
  padding-block: clamp(2.75rem, 6vw, 5rem);
  text-align: left;
}

body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page
  ) > .hero .container,
body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page
  ) > header.hero .container {
  width: min(var(--page-width), calc(100% - 2 * var(--page-gutter)));
  max-width: var(--page-width);
  margin-inline: auto;
  padding-inline: 0;
  text-align: left;
}

body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) > .hero h1,
body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) > header.hero h1 {
  max-width: 24ch;
  margin: 0 0 1rem;
  text-align: left;
}

body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) > .hero :is(.lede, .tagline, .direction-note, .meta, .event-facts),
body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) > header.hero :is(.lede, .tagline, .direction-note, .meta, .event-facts) {
  max-width: 68ch;
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}

body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) > .hero .event-facts,
body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) > header.hero .event-facts,
body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) > .hero .meta,
body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) > header.hero .meta {
  justify-content: flex-start;
}

/* Article titles and long-form copy share a readable left-aligned column. */
body main#main > article.article > .hero .container,
body main#main > article.article > header.hero .container,
body main#main > article.article > section.container {
  width: min(var(--reading-width), calc(100% - 2 * var(--page-gutter)));
  max-width: var(--reading-width);
  margin-inline: auto;
  padding-inline: 0;
}

body main#main > article.article > .cta-band .container,
body main#main > article.article > section.cta-band .container {
  width: min(var(--page-width), calc(100% - 2 * var(--page-gutter)));
  max-width: var(--page-width);
}

body main#main > article:is(
    .route-page,
    .aircraft-page
  ) .body {
  width: min(var(--reading-width), calc(100% - 2 * var(--page-gutter)));
  max-width: var(--reading-width);
  margin-left: max(var(--page-gutter), calc((100% - var(--page-width)) / 2));
  margin-right: 0;
  text-align: left;
}

body main#main > article:is(.destination-page, .airport-page) .body {
  width: min(var(--reading-width), 100%);
  max-width: var(--reading-width);
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}

body main#main > article.article .body {
  width: min(var(--reading-width), 100%);
  max-width: var(--reading-width);
  margin-inline: auto;
  text-align: left;
}

body main#main > article.article .body p,
body main#main > article.article .body h2,
body main#main > article.article .body h3 {
  text-align: left;
}

/* The country directory predates the shared collection shell; bring its
   hero and card list onto the same page grid without changing its content. */
body main#main > section.hero .container.hero-content,
body main#main > section.container.list {
  width: min(var(--page-width), calc(100% - 2 * var(--page-gutter)));
  max-width: var(--page-width);
  margin-inline: auto;
  padding-inline: 0;
  text-align: left;
}

body main#main > section.container.list :is(.section-heading, .cards) {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  text-align: left;
}

/* Section headings, factual content and cards follow the same editorial edge. */
body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) :is(.section-head, .section-heading) {
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}

body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) :is(.section-head, .section-heading) h2,
body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) .section h2 {
  margin-left: 0;
  margin-right: 0;
  text-align: left;
}

body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) :is(.about, .intro, .intro-section, .dates-section, .note) {
  text-align: left;
}

body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) :is(.airport-card, .origin-card, .destination-card, .highlight-card, .card) {
  text-align: left;
}

body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) .airport-icon {
  margin-left: 0;
  margin-right: 0;
}

body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) .quick-facts > div {
  text-align: left;
}

/* Promotional calls to action and empty states are the deliberate exceptions. */
body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page,
    .article
  ) > .cta-band,
.home-final,
.empty-state {
  text-align: center;
}

/* Forms stay attached to the content grid; the homepage form remains centered. */
.route-enquiry .enquiry-intro,
.route-enquiry .enquiry-intro h2,
.route-enquiry .enquiry-intro > p:not(.eyebrow) {
  text-align: left;
}

.route-enquiry .reassurance {
  justify-content: flex-start;
}

body main#main > article:is(
    .route-page,
    .destination-page,
    .airport-page,
    .aircraft-page,
    .event-v1-page,
    .country-page
  ) .route-enquiry .enquiry-shell {
  margin-left: 0;
  margin-right: 0;
}

body main#main > article.route-page .route-enquiry .enquiry-shell {
  margin-left: max(0px, calc((100vw - var(--page-width)) / 2 - var(--page-gutter)));
}

/* Editorial enquiry cards share the article's readable title/body column. */
body main#main > article.article .route-enquiry {
  width: min(var(--reading-width), calc(100% - 2 * var(--page-gutter)));
  max-width: var(--reading-width);
  margin-inline: auto;
  padding-inline: 0;
}

body main#main > article.article .body .route-enquiry {
  width: 100%;
  max-width: 100%;
  margin-inline: 0;
}

body main#main > article.article .route-enquiry .enquiry-shell {
  width: 100%;
  max-width: var(--reading-width);
  margin-inline: 0;
}

.home-enquiry.route-enquiry {
  width: min(var(--page-width), calc(100% - 2 * var(--page-gutter)));
  max-width: var(--page-width);
  margin-inline: auto;
  margin-top: -1.25rem;
  padding-inline: 0;
}

.home-enquiry .enquiry-shell {
  margin-left: 0;
  margin-right: 0;
}

.route-enquiry .swap-direction {
  min-width: 3rem;
  transition: border-color .15s ease, background-color .15s ease;
}

.route-enquiry .swap-direction:hover {
  background: var(--surface-raised);
}

.route-enquiry .swap-direction:focus-visible {
  outline: 3px solid var(--focus);
  outline-offset: 3px;
}

@media (max-width: 600px) {
  .container,
  .collection-hero .container,
  .collection-section .container,
  body main#main > article:is(
      .route-page,
      .destination-page,
      .airport-page,
      .aircraft-page,
      .event-v1-page,
      .country-page
    ) .container {
    width: calc(100% - 2 * var(--page-gutter-mobile));
  }

  body main#main > article:is(
      .route-page,
      .destination-page,
      .airport-page,
      .aircraft-page,
      .event-v1-page,
      .country-page
    ) > .hero .container,
  body main#main > article:is(
      .route-page,
      .destination-page,
      .airport-page,
      .aircraft-page,
      .event-v1-page,
      .country-page
    ) > header.hero .container {
    width: calc(100% - 2 * var(--page-gutter-mobile));
  }

  body main#main > article:is(.route-page, .aircraft-page) .body {
    width: calc(100% - 2 * var(--page-gutter-mobile));
    margin-inline: var(--page-gutter-mobile);
  }

  body main#main > article:is(.destination-page, .airport-page) .body {
    width: min(var(--reading-width), 100%);
    margin-inline: 0;
  }

  body main#main > article:is(
      .route-page,
      .destination-page,
      .airport-page,
      .aircraft-page,
      .event-v1-page,
      .country-page
    ) .route-enquiry .enquiry-shell {
    margin-left: 0;
  }

  body main#main > article.article > .hero .container,
  body main#main > article.article > header.hero .container,
  body main#main > article.article > section.container {
    width: calc(100% - 2 * var(--page-gutter-mobile));
  }

  body main#main > section.hero .container.hero-content,
  body main#main > section.container.list {
    width: calc(100% - 2 * var(--page-gutter-mobile));
  }

  body main#main > article.article .route-enquiry {
    width: calc(100% - 2 * var(--page-gutter-mobile));
  }

  .home-hero__inner {
    width: calc(100% - 2 * var(--page-gutter-mobile));
  }

  .home-enquiry.route-enquiry {
    width: calc(100% - 2 * var(--page-gutter-mobile));
  }
}
/* wave6-5-4: contained World Cup Legends comparison table */
#world-cup-legends-aircraft-table{max-width:100%;width:100%;overflow-x:auto;overscroll-behavior-inline:contain;-webkit-overflow-scrolling:touch}
#world-cup-legends-aircraft-table:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
#world-cup-legends-aircraft-table>table{min-width:38rem}
