/* Wave 6.6: focused consistency refinements over the established page system. */

:root {
  --text-subtle: #b8c5c9;
  --ui-content-width: var(--page-width, 1200px);
  --ui-gutter: var(--page-gutter, 24px);
}

/* Preserve the desktop navigation as one unclipped, balanced row. */
@media (min-width: 861px) and (max-width: 1199px) {
  body .site-header .container.site-header__inner { gap: .7rem; }
  body .site-header .brand-logo { width: 126px; }
  .desktop-nav { margin-left: auto; }
  .desktop-nav > ul { gap: .48rem; }
  .desktop-nav a, .desktop-nav summary { font-size: .77rem; }
  .site-header .nav-cta { min-height: 42px; padding: .55rem .68rem; font-size: .74rem; }
}

/* Homepage-only composition fixes. */
.home-hero__inner > .eyebrow {
  display: block;
  width: 100%;
  margin-inline: auto;
  text-align: center;
}
.home-enquiry.route-enquiry {
  width: min(var(--ui-content-width), calc(100% - 2 * var(--ui-gutter)));
  margin-inline: auto;
}
.home-enquiry .enquiry-shell {
  width: min(840px, 100%);
  margin-inline: auto;
}
.home-enquiry .reassurance {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: .45rem 1rem;
  color: var(--text-muted, #c1cbcf);
}
.home-enquiry .reassurance span::before {
  content: "•";
  margin-right: .45rem;
  color: var(--accent, #8fe0df);
}
.home-destination-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.home-three-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.home-insights-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.home-insights-grid .discover-card { min-height: 200px; }

@media (min-width: 601px) and (max-width: 1100px) {
  .home-destination-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 601px) and (max-width: 860px) {
  .home-three-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .home-three-grid > :last-child:nth-child(odd) { grid-column: 1 / -1; width: min(50% - .5rem, 24rem); justify-self: center; }
}
@media (max-width: 600px) {
  .home-destination-grid, .home-three-grid, .home-insights-grid { grid-template-columns: minmax(0, 1fr); }
  .home-three-grid > :last-child:nth-child(odd) { grid-column: auto; width: auto; }
  .home-insights-grid .discover-card { min-height: 160px; }
  .home-enquiry.route-enquiry { width: calc(100% - 2rem); }
}

/* Shared form layout: stable airport rows, intentional variants and neutral untouched fields. */
.route-enquiry .airport-direction-fields {
  grid-template-columns: minmax(0, 1fr) 5.25rem minmax(0, 1fr);
  align-items: start;
  gap: .7rem;
  overflow: visible;
}
.route-enquiry .airport-direction-fields > .field { position: relative; z-index: 1; }
.route-enquiry .airport-direction-fields > .field:focus-within { z-index: 8; }
.route-enquiry .airport-picker { position: relative; min-width: 0; }
.route-enquiry .airport-results[hidden] { display: none !important; }
.route-enquiry .airport-results {
  position: absolute;
  inset: calc(100% + .3rem) 0 auto;
  z-index: 12;
  width: 100%;
  min-width: 0;
  max-height: min(18rem, 48vh);
  overflow: auto;
  overscroll-behavior: contain;
  padding: .25rem;
  background: #202c32;
  color: var(--text, #f4f7f7);
  border: 1px solid #52636a;
  border-radius: var(--radius-sm, 8px);
  box-shadow: 0 14px 34px rgba(0, 0, 0, .42);
}
.route-enquiry .airport-results .airport-option,
.route-enquiry .airport-results [role="option"] {
  display: block;
  width: 100%;
  min-height: 3.2rem;
  margin: 0;
  padding: .62rem .7rem;
  border: 0;
  border-radius: 5px;
  background: transparent;
  color: var(--text, #f4f7f7);
  font: inherit;
  font-size: .9rem;
  line-height: 1.35;
  text-align: left;
  white-space: normal;
  cursor: pointer;
}
.route-enquiry .airport-results .airport-option:hover,
.route-enquiry .airport-results .airport-option:focus-visible,
.route-enquiry .airport-results .airport-option[aria-selected="true"],
.route-enquiry .airport-results .airport-option.is-active {
  outline: none;
  background: #30454c;
  color: #fff;
}
.route-enquiry .airport-option-label { display: block; font-weight: 650; line-height: 1.4; }
.route-enquiry .airport-option-source { display: block; margin-top: .18rem; color: var(--text-subtle); font-size: .74rem; line-height: 1.35; }
.route-enquiry .airport-help { margin: .38rem 0 0; color: var(--text-subtle); line-height: 1.45; }
.route-enquiry .swap-direction {
  width: 5.25rem;
  min-height: 3rem;
  align-self: start;
  margin-top: 1.48rem;
  padding: .4rem .35rem;
  white-space: normal;
  font-size: .75rem;
  line-height: 1.15;
  text-align: center;
}
.route-enquiry .swap-direction > span { display: block; }
.route-enquiry .swap-direction > span:first-child { font-size: 1.1rem; line-height: 1; }
.route-enquiry .field-grid { align-items: start; }
.route-enquiry .form-step[data-step="1"] { display: grid; gap: .8rem; }
.route-enquiry .form-step[hidden], .route-enquiry [hidden] { display: none !important; }
.route-enquiry .form-next,
.route-enquiry button[type="submit"] { font-family: inherit; font-size: .96rem; font-weight: 700; line-height: 1.25; }
.route-enquiry .form-next { margin-top: .45rem; }
.route-enquiry :is(input, select, textarea):invalid:not([aria-invalid="true"]):not(.is-invalid):not(:focus) {
  border-color: #52636a;
  box-shadow: none;
}
.route-enquiry :is(input, select, textarea)[aria-invalid="true"],
.route-enquiry :is(input, select, textarea).is-invalid {
  border-color: #ff9b8e;
  box-shadow: 0 0 0 1px rgba(255, 155, 142, .28);
}
.route-enquiry input[type="date"], .route-enquiry input[type="time"] { color-scheme: dark; }
.route-enquiry input[type="date"]::-webkit-calendar-picker-indicator,
.route-enquiry input[type="time"]::-webkit-calendar-picker-indicator { filter: invert(.86); opacity: .82; }
.route-enquiry fieldset:has(input[name="trip_type"]) .choice-row,
.route-enquiry fieldset:has(input[name="preferred_contact_method"]) .choice-row {
  width: max-content;
  max-width: 100%;
  align-items: stretch;
}
.route-enquiry fieldset:has(input[name="trip_type"]) .choice-card,
.route-enquiry fieldset:has(input[name="preferred_contact_method"]) .choice-card { flex: 0 0 auto; }

@media (max-width: 600px) {
  .route-enquiry .airport-direction-fields { grid-template-columns: minmax(0, 1fr); gap: .55rem; margin-bottom: .8rem; }
  .route-enquiry .swap-direction {
    grid-column: 1;
    justify-self: center;
    width: 2.65rem;
    min-height: 2.65rem;
    margin: -.1rem 0;
    padding: .3rem;
    border-radius: 50%;
  }
  .route-enquiry .swap-direction > span:last-child { display: none; }
  .route-enquiry .swap-direction > span:first-child { font-size: 1.2rem; }
  .route-enquiry .form-step[data-step="1"] { gap: .72rem; }
  .route-enquiry .field-grid { gap: .72rem; }
}

/* One breadcrumb rhythm, with decorative separators kept out of the reading flow. */
.breadcrumb-nav { min-width: 0; }
.breadcrumb-nav .container {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .28rem .58rem;
  line-height: 1.5;
}
.breadcrumb-nav .breadcrumb-separator { flex: 0 0 auto; color: var(--text-subtle); opacity: .8; }
.breadcrumb-nav .container > a,
.breadcrumb-nav .container > span:not(.breadcrumb-separator) { min-width: 0; overflow-wrap: anywhere; }

/* Shared heading roles without flattening editorial hierarchy. */
.section-title { margin: 0 0 1rem; font-size: clamp(1.55rem, 2.2vw, 1.9rem); line-height: 1.2; }
.route-facts-heading { margin: 0 0 1rem; font-size: 1.4rem; line-height: 1.25; }
body main#main > article.article :is(.body, .container) > h2,
body main#main > article.article .body h2 { margin-block: 2.1rem .8rem; font-size: clamp(1.6rem, 2.5vw, 1.9rem); line-height: 1.28; }
body main#main > article.article .body h3 { margin-block: 1.55rem .6rem; font-size: clamp(1.18rem, 1.8vw, 1.38rem); line-height: 1.35; }
body main#main > article.reference-editorial-page > .hero h1,
body main#main > article.ai-reference-page > .hero h1 {
  max-width: 24ch;
  font-size: clamp(2rem, 3.3vw, 2.85rem);
  line-height: 1.16;
}

/* FAQ disclosures retain native semantics and gain one shared visual pattern. */
.faq-list { display: grid; gap: .65rem; }
.faq-item { border-color: var(--border, #34434a); border-radius: 10px; background: #1b252b; }
.faq-item > summary {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 1rem;
  padding: .35rem .15rem;
  list-style: none;
  cursor: pointer;
  font-size: 1rem;
  line-height: 1.5;
}
.faq-item > summary::-webkit-details-marker { display: none; }
.faq-item > summary::after { flex: 0 0 auto; content: "+"; color: var(--accent); font-size: 1.25rem; font-weight: 500; line-height: 1.2; }
.faq-item[open] > summary::after { content: "−"; }
.faq-item > summary:focus-visible { border-radius: 5px; outline: 2px solid var(--focus); outline-offset: 3px; }
.faq-item .a { padding: .55rem .15rem .1rem; color: var(--text-muted); }

/* Route diagrams regain a restrained, legible schematic palette. */
.route-page .route-map { width: min(100%, 700px); margin: .75rem 0 0; }
.route-page .route-map .map-ocean { fill: #172a31 !important; }
.route-page .route-map .map-land { fill: #30454c !important; stroke: #496067; stroke-width: .8; }
.route-page .route-map .route-line { fill: none !important; stroke: var(--accent) !important; stroke-width: 3; stroke-linecap: round; stroke-dasharray: 7 5; }
.route-page .route-map .map-marker circle { fill: var(--accent) !important; stroke: #102024; stroke-width: 2; }
.route-page .route-map .map-marker text { fill: #f4f7f7 !important; font-size: 12px; font-weight: 650; paint-order: stroke; stroke: #172a31; stroke-width: 3px; stroke-linejoin: round; }

/* Route cards keep their label, title and explanation as separate reading units. */
.route-page .related .cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); align-items: stretch; gap: .9rem; }
.route-page .related .card {
  min-width: 0;
  min-height: 11rem;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: .42rem;
  padding: 1.1rem 1.15rem;
  border-color: var(--border);
  border-radius: var(--radius-md);
  background: linear-gradient(150deg, #202c32, #182126);
  color: var(--text);
  line-height: 1.45;
}
.route-page .related .card .label { display: block; color: var(--accent); font-size: .72rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.route-page .related .card strong { display: block; margin: 0; font-size: 1.02rem; line-height: 1.35; }
.route-page .related .card .description { display: block; color: var(--text-muted); font-size: .88rem; line-height: 1.5; }
.route-page [data-wave6-generated="route-related"] .cards { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }

/* Network facts and airport comparison cards distinguish short values from explanatory notes. */
.route-network-facts { align-items: stretch; }
.route-network-fact--note { grid-column: 1 / -1; padding-top: .8rem; border-top: 1px solid rgba(180, 192, 196, .14); }
.route-network-fact--note dd { max-width: 78ch; color: var(--text-muted); font-weight: 400; line-height: 1.55; }
.airport-comparison-grid { align-items: stretch; }
.airport-comparison-card { min-width: 0; height: 100%; display: flex; flex-direction: column; }
.airport-comparison-grid:has(> .airport-comparison-card:only-child) { grid-template-columns: minmax(0, 1fr); max-width: 48rem; }
.airport-page .network-section:has(> .destination-card) > .destination-card { width: min(840px, 100%); margin-inline: 0; }
.route-network-card { min-width: 0; height: 100%; display: flex; flex-direction: column; }
.route-network-card > a:last-child { margin-top: auto; }
.reference-network-section { width: min(var(--ui-content-width), calc(100% - 2 * var(--ui-gutter))) !important; max-width: var(--ui-content-width) !important; margin-inline: auto !important; padding-inline: 0 !important; }
.airport-page :is(section, div):has(> h2.section-title) { min-width: 0; }

/* Airport/FBO services read as discrete offerings instead of a run-on label row. */
.airport-page .services-grid.v2-services { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); align-items: stretch; gap: .8rem; }
.airport-page .services-grid.v2-services .service-card { min-width: 0; min-height: 5rem; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: .3rem; padding: .85rem 1rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: var(--surface); line-height: 1.45; }
.airport-page .fbo-services { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); gap: .55rem .85rem; padding-left: 0; list-style: none; }
.airport-page .fbo-services li { min-width: 0; padding: .65rem .8rem; border-left: 2px solid var(--accent); background: rgba(32, 44, 50, .55); overflow-wrap: anywhere; }

/* Article metadata stays in readable complete units; table width is contained locally. */
.article .meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-start; gap: .28rem .58rem; line-height: 1.5; }
.article .meta-unit { flex: 0 1 auto; min-width: 0; white-space: nowrap; }
.article .meta-separator { display: none; }
.article > .hero .meta + .hero-actions { margin-top: 1.25rem; }
.responsive-table { max-width: 100%; margin-block: 1.25rem; overflow-x: auto; overscroll-behavior-inline: contain; -webkit-overflow-scrolling: touch; scrollbar-color: #60767d #192126; }
.responsive-table:focus-visible { outline: 3px solid var(--focus); outline-offset: 3px; }
.responsive-table > table { min-width: 42rem; max-width: none; }

/* Event facts wrap on their labels, and the detail status uses the same date state as the index. */
.event-v1-page .event-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 12.5rem), 1fr)); align-items: stretch; gap: .75rem; }
.event-v1-page .event-facts .event-fact { min-width: 0; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; gap: .25rem; padding: .85rem 1rem; border: 1px solid var(--border); border-radius: var(--radius-sm); background: rgba(32, 44, 50, .62); overflow-wrap: anywhere; }
.event-v1-page .event-facts .event-fact small { color: var(--text-subtle); line-height: 1.4; }
.event-v1-page .event-status strong { color: var(--accent); }
.event-v1-page[data-event-status="past"] .event-status strong { color: var(--text-subtle); }

/* Clear CTA variants and modestly tighten closing boundaries. */
.destination-page > .hero .hero-actions { justify-content: flex-start; }
.lineaum-quote-cta { margin-block: clamp(2rem, 4vw, 3.5rem); }
.lineaum-quote-cta__inner { width: min(var(--ui-content-width), calc(100% - 2 * var(--ui-gutter))); margin-inline: auto; }
.lineaum-quote-cta__inner > :is(h2, p) { max-width: 68ch; }
.lineaum-quote-cta__inner .btn-primary { width: fit-content; }
.mobile-nav .mobile-quote { min-height: 48px; border: 1px solid var(--accent); border-radius: 999px; background: var(--accent); color: #102024; font-weight: 700; }
.mobile-nav .mobile-quote:hover { background: var(--accent-strong); color: #102024; }
.event-v1-page > .hero .hero-actions { justify-content: flex-start; }
.event-v1-page > .hero .hero-actions .btn-secondary { border-radius: 999px; }
body .site-footer { padding-block-start: clamp(2rem, 4vw, 2.75rem); }

/* Detail-page closing CTAs use one shared, centred content axis. The generic
   paragraph max-width otherwise anchors eyebrow/copy to the container's left. */
body main#main > article:is(.route-page, .destination-page, .airport-page, .aircraft-page, .event-v1-page) > .cta-band > .container {
  display: flex;
  flex-direction: column;
  align-items: center;
  width: min(var(--ui-content-width), calc(100% - 2 * var(--ui-gutter)));
  max-width: var(--ui-content-width);
  margin-inline: auto;
  padding-inline: 0;
  text-align: center;
}
body main#main > article:is(.route-page, .destination-page, .airport-page, .aircraft-page, .event-v1-page) > .cta-band > .container > .eyebrow {
  width: 100%;
  max-width: none;
  margin: 0 auto .65rem;
  text-align: center;
}
body main#main > article:is(.route-page, .destination-page, .airport-page, .aircraft-page, .event-v1-page) > .cta-band > .container > h2 {
  width: 100%;
  max-width: 58ch;
  margin: 0 auto .8rem;
  text-align: center;
}
body main#main > article:is(.route-page, .destination-page, .airport-page, .aircraft-page, .event-v1-page) > .cta-band > .container > p:not(.eyebrow) {
  width: min(100%, 60ch);
  max-width: 60ch;
  margin: 0 auto 1.5rem;
  text-align: center;
}
body main#main > article:is(.route-page, .destination-page, .airport-page, .aircraft-page, .event-v1-page) > .cta-band > .container > .btn-primary,
body main#main > article:is(.route-page, .destination-page, .airport-page, .aircraft-page, .event-v1-page) > .cta-band > .container > .cta-row {
  align-self: center;
  margin-inline: auto;
}
body main#main > article:is(.route-page, .destination-page, .airport-page, .aircraft-page, .event-v1-page) > .cta-band > .container > .cta-row {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: .75rem;
}
.route-page > .cta-band:last-child,
.destination-page > .cta-band:last-child,
.airport-page > .cta-band:last-child,
.event-v1-page > .cta-band:last-child { margin-block-end: 0; }
.airport-page > section.section:last-of-type { padding-block-end: clamp(2.5rem, 5vw, 4rem); }

/* Slightly lift small labels while keeping the graphite/aqua palette intact. */
.card-kicker, .editorial-meta, .route-page .route-facts-heading + p,
.route-enquiry .airport-help, .route-enquiry .summary-label,
.footer-legal, .event-v1-page .event-facts small { color: var(--text-subtle); }

@media (max-width: 860px) {
  .route-page .related .cards,
  .route-page [data-wave6-generated="route-related"] .cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .route-page .related .card { min-height: 10rem; }
  .route-network-fact--note { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
  .breadcrumb-nav .container { gap: .22rem .42rem; font-size: .86rem; }
  .route-page .related .cards,
  .route-page [data-wave6-generated="route-related"] .cards { grid-template-columns: minmax(0, 1fr); }
  .event-v1-page .event-facts { grid-template-columns: minmax(0, 1fr); }
  .responsive-table > table { min-width: 40rem; }
  .route-enquiry .enquiry-shell { padding: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .route-page .related .card, .discover-card { transition-duration: .01ms; }
}
