.com-virtualairline.va-airport-story-page,
.com-virtualairline.va-airport-story-page * { box-sizing: border-box; }

.com-virtualairline.va-airport-story-page {
  width: 100%;
  max-width: 1480px;
  margin: 0 auto 72px;
  padding: 0 16px;
  color: var(--va-text, #eef4fb);
}

.va-airport-story-hero {
  position: relative;
  min-height: 560px;
  overflow: hidden;
  border-radius: var(--va-radius-lg, 22px);
  border: 1px solid var(--va-border, rgba(255,255,255,.08));
  background: #08111f;
  box-shadow: var(--va-shadow-lg, 0 28px 70px rgba(0,0,0,.38));
}

.va-airport-story-hero__image {
  position: absolute;
  inset: 0;
  overflow: hidden;
  background:
    radial-gradient(circle at 72% 28%, rgba(105,174,230,.28), transparent 24%),
    radial-gradient(circle at 46% 60%, rgba(47,180,134,.18), transparent 27%),
    linear-gradient(180deg, rgba(16,35,64,.15), rgba(8,17,31,.88)),
    linear-gradient(115deg, #17345c 0%, #0d1d35 42%, #07101f 100%);
}

.va-airport-story-hero__image::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.14) 0 1px, transparent 1px),
    linear-gradient(90deg, rgba(255,255,255,.10) 0 1px, transparent 1px);
  background-size: 100% 42px, 42px 100%;
  opacity: .13;
  transform: perspective(800px) rotateX(62deg) translateY(90px) scale(1.35);
  transform-origin: 50% 100%;
}

.va-airport-story-hero__image::after {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse at 70% 72%, rgba(255,177,90,.30), transparent 16%),
    radial-gradient(ellipse at 68% 72%, rgba(255,255,255,.16), transparent 7%),
    linear-gradient(16deg, transparent 0 57%, rgba(255,255,255,.11) 58%, transparent 60%),
    linear-gradient(-10deg, transparent 0 62%, rgba(255,255,255,.08) 63%, transparent 64%);
  opacity: .78;
}

.va-airport-story-hero__tower {
  position: absolute;
  right: 28%;
  top: 16%;
  width: 34px;
  height: 190px;
  border-radius: 14px 14px 4px 4px;
  background: linear-gradient(180deg, rgba(238,244,251,.22), rgba(238,244,251,.06));
  box-shadow: 0 0 60px rgba(105,174,230,.20);
  opacity: .58;
}

.va-airport-story-hero__tower::before {
  content: '';
  position: absolute;
  left: -24px;
  right: -24px;
  top: -22px;
  height: 34px;
  border-radius: 18px;
  background: rgba(238,244,251,.18);
}

.va-airport-story-hero__terminal {
  position: absolute;
  right: 6%;
  bottom: 21%;
  width: 52%;
  height: 104px;
  border-radius: 44px 44px 8px 8px;
  background: linear-gradient(180deg, rgba(238,244,251,.18), rgba(238,244,251,.055));
  border: 1px solid rgba(255,255,255,.08);
  transform: skewX(-10deg);
  opacity: .64;
}

.va-airport-story-hero__runway {
  position: absolute;
  right: -12%;
  bottom: -16%;
  width: 86%;
  height: 230px;
  background: linear-gradient(82deg, transparent 0 33%, rgba(255,255,255,.14) 34%, rgba(255,255,255,.02) 36%, transparent 72%);
  transform: rotate(-4deg);
  opacity: .55;
}

.va-airport-story-hero__shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgba(8,17,31,.96) 0%, rgba(8,17,31,.66) 45%, rgba(8,17,31,.20) 100%),
    linear-gradient(180deg, rgba(8,17,31,.10), rgba(8,17,31,.72));
  pointer-events: none;
}

.va-airport-story-hero__content {
  position: relative;
  z-index: 3;
  width: min(720px, 62%);
  min-height: 560px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  gap: 14px;
  padding: clamp(28px, 5vw, 72px);
}

.va-airport-story-back {
  color: var(--va-text-muted, #9fb0c3);
  text-decoration: none;
  font-size: .9rem;
  font-weight: 700;
}

.va-airport-story-code {
  display: inline-flex;
  min-height: 32px;
  align-items: center;
  padding: 0 12px;
  border-radius: 10px;
  background: color-mix(in srgb, var(--va-accent, #69aee6) 22%, transparent);
  color: var(--va-text, #eef4fb);
  font-weight: 800;
  letter-spacing: .08em;
}

.va-airport-story-hero h1 {
  margin: 0;
  max-width: 12ch;
  font-size: clamp(2.6rem, 6vw, 5.6rem);
  line-height: .9;
  letter-spacing: -.055em;
  color: #fff;
  text-wrap: balance;
}

.va-airport-story-location,
.va-airport-story-lead {
  margin: 0;
  color: var(--va-text-muted, #9fb0c3);
}

.va-airport-story-location {
  font-size: 1.12rem;
  font-weight: 700;
}

.va-airport-story-lead {
  max-width: 58ch;
  line-height: 1.6;
}

.va-airport-story-badges { margin-top: 4px; }

.va-airport-story-stats {
  position: absolute;
  z-index: 4;
  left: clamp(24px, 5vw, 72px);
  right: clamp(24px, 5vw, 72px);
  bottom: 28px;
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 12px;
}

.va-airport-story-stat {
  padding: 18px 18px;
  min-height: 108px;
  border-radius: var(--va-radius-md, 16px);
  border: 1px solid var(--va-border, rgba(255,255,255,.08));
  background: rgba(15,25,45,.62);
  backdrop-filter: blur(14px);
  display: grid;
  place-items: center;
  text-align: center;
}

.va-airport-story-stat strong {
  display: block;
  font-size: clamp(1.7rem, 3vw, 2.4rem);
  line-height: 1;
  color: #fff;
}

.va-airport-story-stat span {
  margin-top: 8px;
  color: var(--va-text-muted, #9fb0c3);
  font-weight: 700;
}

.va-airport-story-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 14px;
  margin: 18px 0 30px;
}

.va-airport-story-actions .va-btn { width: 100%; }

.va-airport-story-section,
.va-airport-story-grid {
  margin-top: 28px;
}

.va-airport-story-section__head {
  display: flex;
  align-items: end;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 16px;
}

.va-airport-story-section__head h2 {
  margin: 6px 0 0;
}

.va-airport-story-link {
  color: var(--va-accent, #69aee6);
  text-decoration: none;
  font-weight: 800;
}

.va-airport-story-routes {
  display: grid;
  gap: 12px;
}

.va-airport-story-route {
  display: grid;
  grid-template-columns: minmax(130px, 220px) minmax(0, 1fr) 150px 170px 28px;
  align-items: center;
  gap: 16px;
  min-height: 94px;
  padding: 12px 16px 12px 12px;
  border-radius: var(--va-radius-md, 16px);
  border: 1px solid var(--va-border, rgba(255,255,255,.08));
  background: linear-gradient(180deg, rgba(15,25,45,.72), rgba(10,19,35,.82));
  text-decoration: none;
  color: var(--va-text, #eef4fb);
  transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease;
}

.va-airport-story-route:hover,
.va-airport-story-route:focus-visible {
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--va-primary, #2fb486) 42%, var(--va-border, rgba(255,255,255,.08)));
  box-shadow: 0 18px 44px rgba(0,0,0,.28);
}

.va-airport-story-route__photo {
  align-self: stretch;
  min-height: 76px;
  border-radius: 12px;
  overflow: hidden;
  background:
    radial-gradient(circle at 30% 30%, rgba(105,174,230,.36), transparent 26%),
    radial-gradient(circle at 72% 72%, rgba(47,180,134,.22), transparent 30%),
    linear-gradient(135deg, rgba(40,81,131,.8), rgba(8,17,31,.96));
  display: flex;
  align-items: end;
  padding: 12px;
}

.va-airport-story-route__photo span {
  font-size: 1.45rem;
  font-weight: 900;
  letter-spacing: -.04em;
  color: #fff;
}

.va-airport-story-route__codes {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: clamp(1.2rem, 2vw, 1.8rem);
  line-height: 1;
  letter-spacing: -.04em;
}

.va-airport-story-route__codes span {
  color: var(--va-primary, #2fb486);
}

.va-airport-story-route__meta,
.va-airport-story-route__time span,
.va-airport-story-route__badge small {
  color: var(--va-text-muted, #9fb0c3);
}

.va-airport-story-route__time {
  display: grid;
  gap: 5px;
  text-align: center;
}

.va-airport-story-route__time strong {
  color: #fff;
}

.va-airport-story-route__badge {
  display: grid;
  gap: 6px;
  justify-items: start;
}

.va-airport-story-route__arrow {
  font-size: 2rem;
  color: var(--va-text-muted, #9fb0c3);
}

.va-airport-story-empty {
  padding: 24px;
  color: var(--va-text-muted, #9fb0c3);
}

.va-airport-story-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}

.va-airport-story-info,
.va-airport-story-facilities {
  background: rgba(15,25,45,.62);
}

.va-airport-story-info__grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.va-airport-story-info__grid div,
.va-airport-story-facility-grid span {
  min-height: 74px;
  padding: 14px;
  border-radius: 14px;
  border: 1px solid var(--va-border, rgba(255,255,255,.08));
  background: rgba(255,255,255,.035);
}

.va-airport-story-info__grid span {
  display: block;
  color: var(--va-text-muted, #9fb0c3);
  font-size: .78rem;
  text-transform: uppercase;
  letter-spacing: .12em;
  font-weight: 800;
  margin-bottom: 8px;
}

.va-airport-story-info__grid strong {
  color: #fff;
}

.va-airport-story-facility-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 16px;
}

.va-airport-story-facility-grid span {
  display: flex;
  align-items: center;
  color: var(--va-text-muted, #9fb0c3);
  font-weight: 800;
}

.va-airport-story-facility-grid span.is-on {
  color: #fff;
  background: color-mix(in srgb, var(--va-primary, #2fb486) 14%, rgba(255,255,255,.035));
  border-color: color-mix(in srgb, var(--va-primary, #2fb486) 28%, var(--va-border, rgba(255,255,255,.08)));
}

@media (max-width: 1100px) {
  .va-airport-story-hero__content { width: 100%; min-height: 620px; justify-content: flex-start; }
  .va-airport-story-hero__shade { background: linear-gradient(180deg, rgba(8,17,31,.92), rgba(8,17,31,.40) 48%, rgba(8,17,31,.82)); }
  .va-airport-story-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .va-airport-story-route { grid-template-columns: 128px minmax(0, 1fr) 110px; }
  .va-airport-story-route__badge, .va-airport-story-route__arrow { display: none; }
  .va-airport-story-grid { grid-template-columns: 1fr; }
}

@media (max-width: 720px) {
  .com-virtualairline.va-airport-story-page { padding: 0 10px; }
  .va-airport-story-hero { min-height: 760px; }
  .va-airport-story-hero__content { min-height: 520px; padding: 24px; }
  .va-airport-story-stats { left: 18px; right: 18px; bottom: 18px; grid-template-columns: 1fr 1fr; }
  .va-airport-story-actions { grid-template-columns: 1fr; }
  .va-airport-story-section__head { align-items: flex-start; flex-direction: column; }
  .va-airport-story-route { grid-template-columns: 1fr; padding: 14px; }
  .va-airport-story-route__photo { min-height: 120px; }
  .va-airport-story-route__time { text-align: left; justify-items: start; }
  .va-airport-story-info__grid, .va-airport-story-facility-grid { grid-template-columns: 1fr 1fr; }
}

/* v0.09.4 airport story: real image, METAR and operators */
.va-airport-story-hero__image {
  background-image:
    linear-gradient(90deg, rgba(8,17,31,.24), rgba(8,17,31,.62)),
    var(--airport-hero-image),
    radial-gradient(circle at 20% 20%, rgba(47,180,134,.22), transparent 42%),
    linear-gradient(135deg, rgba(21,35,58,.92), rgba(8,17,31,.98));
  background-size: cover, cover, auto, auto;
  background-position: center, center, center, center;
}
.va-airport-story-metar {
  margin-block: var(--va-section-gap, 32px);
}
.va-airport-story-metar__raw {
  margin-top: 14px;
  padding: 16px 18px;
  border-radius: var(--va-radius-md, 16px);
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(8,17,31,.48);
  color: var(--va-text, #eef4fb);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.va-airport-story-metar__grid,
.va-airport-story-operator-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
  margin-top: 14px;
}
.va-airport-story-metar__grid div,
.va-airport-story-operator {
  padding: 15px;
  border-radius: var(--va-radius-md, 16px);
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.035);
}
.va-airport-story-metar__grid span,
.va-airport-story-operator small {
  display: block;
  color: var(--va-text-muted, #9fb0c3);
  font-size: .78rem;
  font-weight: 760;
  text-transform: uppercase;
  letter-spacing: .08em;
}
.va-airport-story-metar__grid strong,
.va-airport-story-operator strong {
  display: block;
  margin-top: 6px;
  color: var(--va-text, #eef4fb);
  font-size: 1.05rem;
}
.va-airport-story-operator span {
  display: block;
  margin-top: 6px;
  color: var(--va-text, #eef4fb);
  font-weight: 820;
}
.va-airport-story-empty-inline {
  margin: 14px 0 0;
  color: var(--va-text-muted, #9fb0c3);
}
@media (max-width: 900px) {
  .va-airport-story-metar__grid,
  .va-airport-story-operator-grid { grid-template-columns: 1fr; }
}


/* v0.09.8 – Hero intelligence layer
   Airport image sits behind content, toned down by overlay and vignette.
   Local/code image fallback remains active when no fetched image_url exists. */
.va-airport-story-hero__image {
  background-image:
    linear-gradient(90deg, rgba(8,17,31,.28), rgba(8,17,31,.64)),
    var(--airport-hero-image),
    radial-gradient(circle at 20% 20%, rgba(47,180,134,.18), transparent 42%),
    linear-gradient(135deg, rgba(21,35,58,.92), rgba(8,17,31,.98));
  background-size: cover, cover, auto, auto;
  background-position: center, center, center, center;
  filter: saturate(.9) contrast(1.05);
}

.va-airport-story-hero__image::before {
  opacity: .08;
}

.va-airport-story-hero__image::after {
  background:
    radial-gradient(circle at 70% 40%, transparent 0%, rgba(8,17,31,.40) 60%, rgba(8,17,31,.74) 100%),
    linear-gradient(90deg, rgba(8,17,31,.58) 0%, rgba(8,17,31,.28) 48%, rgba(8,17,31,.10) 100%);
  opacity: 1;
}

.va-airport-story-hero__shade {
  background:
    linear-gradient(90deg, rgba(8,17,31,.96) 0%, rgba(8,17,31,.72) 42%, rgba(8,17,31,.26) 100%),
    linear-gradient(180deg, rgba(8,17,31,.08), rgba(8,17,31,.76));
}

.va-airport-story-hero {
  animation: vaAirportHeroIn .32s ease-out both;
}

@keyframes vaAirportHeroIn {
  from { opacity: .86; transform: translateY(4px); }
  to { opacity: 1; transform: translateY(0); }
}


/* v0.09.8.2 – frontend airport hero photo layer */
.va-airport-story-hero__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  opacity: .42;
  filter: saturate(.9) contrast(1.06);
  transform: scale(1.01);
  animation: vaAirportHeroPhotoIn .38s ease-out both;
}
.va-airport-story-hero.has-airport-photo .va-airport-story-hero__tower,
.va-airport-story-hero.has-airport-photo .va-airport-story-hero__terminal,
.va-airport-story-hero.has-airport-photo .va-airport-story-hero__runway {
  display: none;
}
.va-airport-story-hero.has-airport-photo .va-airport-story-hero__image::before {
  opacity: 0;
}
.va-airport-story-hero.has-airport-photo .va-airport-story-hero__image::after {
  background:
    radial-gradient(circle at 70% 40%, transparent 0%, rgba(8,17,31,.38) 58%, rgba(8,17,31,.74) 100%),
    linear-gradient(90deg, rgba(8,17,31,.70) 0%, rgba(8,17,31,.36) 48%, rgba(8,17,31,.14) 100%);
  opacity: 1;
}
.va-airport-story-hero.has-airport-photo .va-airport-story-hero__shade {
  background:
    linear-gradient(90deg, rgba(8,17,31,.96) 0%, rgba(8,17,31,.68) 42%, rgba(8,17,31,.22) 100%),
    linear-gradient(180deg, rgba(8,17,31,.08), rgba(8,17,31,.78));
}
@keyframes vaAirportHeroPhotoIn {
  from { opacity: 0; transform: scale(1.025); }
  to { opacity: .42; transform: scale(1.01); }
}

/* v0.09.8.3 – prevent long airport hero copy from sitting behind stat cards */
.va-airport-story-hero {
  min-height: clamp(640px, 72vh, 760px);
}

.va-airport-story-hero__content {
  min-height: clamp(640px, 72vh, 760px);
  justify-content: center;
  padding-bottom: clamp(180px, 18vh, 220px);
}

.va-airport-story-hero h1 {
  font-size: clamp(2.45rem, 5.25vw, 5rem);
  line-height: .94;
}

.va-airport-story-lead {
  max-width: 52ch;
}

.va-airport-story-stats {
  bottom: 34px;
}

@media (max-width: 900px) {
  .va-airport-story-hero,
  .va-airport-story-hero__content {
    min-height: auto;
  }

  .va-airport-story-hero__content {
    width: 100%;
    padding-bottom: 28px;
  }

  .va-airport-story-stats {
    position: relative;
    left: auto;
    right: auto;
    bottom: auto;
    margin: 0 24px 24px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 560px) {
  .va-airport-story-stats {
    grid-template-columns: 1fr;
  }
}

/* v0.09.8.4 – keep airport intro text clear of stat cards */
.va-airport-story-hero {
  min-height: 720px;
}

.va-airport-story-hero__content {
  min-height: 720px;
  padding-bottom: clamp(190px, 16vw, 230px);
  justify-content: center;
}

.va-airport-story-lead {
  position: relative;
  z-index: 5;
  margin-bottom: 8px;
}

.va-airport-story-stats {
  z-index: 6;
}

@media (max-width: 960px) {
  .va-airport-story-hero {
    min-height: 860px;
  }
  .va-airport-story-hero__content {
    min-height: auto;
    width: 100%;
    padding-bottom: 260px;
    justify-content: flex-start;
  }
}

@media (max-width: 640px) {
  .va-airport-story-hero {
    min-height: 940px;
  }
  .va-airport-story-hero__content {
    padding-bottom: 390px;
  }
}

/* v0.09.8.5 - Airport hero text/stat clearance: keep lead text and stat cards in normal flow */
.va-airport-story-hero {
  display: flex;
  flex-direction: column;
  min-height: 0;
  padding: clamp(28px, 5vw, 72px);
}

.va-airport-story-hero__content {
  width: min(760px, 64%);
  min-height: 0;
  padding: 0;
  justify-content: flex-start;
  margin-bottom: 26px;
}

.va-airport-story-lead {
  position: relative;
  z-index: 5;
  display: block;
  max-width: 64ch;
  margin-bottom: 0;
}

.va-airport-story-stats {
  position: relative;
  z-index: 4;
  left: auto;
  right: auto;
  bottom: auto;
  width: 100%;
  margin: 0;
}

@media (max-width: 960px) {
  .va-airport-story-hero {
    min-height: 0;
    padding: 24px;
  }

  .va-airport-story-hero__content {
    width: 100%;
    min-height: 0;
    margin-bottom: 24px;
  }

  .va-airport-story-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .va-airport-story-hero {
    padding: 22px;
  }

  .va-airport-story-stats {
    grid-template-columns: 1fr;
  }
}

/* v0.09.8.6 – Airport hero stable flow: no overlap, aligned stat grid */
.va-airport-story-hero {
  display: grid;
  grid-template-rows: auto auto;
  min-height: 0 !important;
  padding: clamp(34px, 5vw, 72px) !important;
  gap: clamp(24px, 3vw, 34px);
}

.va-airport-story-hero__content {
  width: min(780px, 66%) !important;
  min-height: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  justify-content: flex-start !important;
  gap: 16px;
}

.va-airport-story-lead {
  display: block !important;
  position: static !important;
  max-width: 66ch !important;
  margin: 2px 0 0 !important;
  line-height: 1.75 !important;
  overflow: visible !important;
}

.va-airport-story-stats {
  position: relative !important;
  inset: auto !important;
  left: auto !important;
  right: auto !important;
  bottom: auto !important;
  z-index: 4;
  width: 100% !important;
  margin: 0 !important;
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  align-items: stretch;
}

.va-airport-story-stat {
  min-width: 0;
  min-height: 118px;
}

@media (max-width: 1100px) {
  .va-airport-story-hero__content {
    width: 100% !important;
  }

  .va-airport-story-stats {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 640px) {
  .va-airport-story-hero {
    padding: 22px !important;
    gap: 20px;
  }

  .va-airport-story-stats {
    grid-template-columns: 1fr;
  }
}

/* v0.09.9 – Weather overlay + slightly clearer airport photo */
.va-airport-story-hero__photo {
  opacity: .50 !important;
  filter: saturate(1.05) contrast(1.08) !important;
}
@keyframes vaAirportHeroPhotoIn {
  from { opacity: 0; transform: scale(1.025); }
  to { opacity: .50; transform: scale(1.01); }
}
.va-airport-story-hero.has-airport-photo .va-airport-story-hero__image::after {
  background:
    radial-gradient(circle at 70% 40%, transparent 0%, rgba(8,17,31,.34) 58%, rgba(8,17,31,.68) 100%),
    linear-gradient(90deg, rgba(8,17,31,.64) 0%, rgba(8,17,31,.31) 48%, rgba(8,17,31,.10) 100%);
}
.va-airport-story-hero.has-airport-photo .va-airport-story-hero__shade {
  background:
    linear-gradient(90deg, rgba(8,17,31,.92) 0%, rgba(8,17,31,.62) 42%, rgba(8,17,31,.18) 100%),
    linear-gradient(180deg, rgba(8,17,31,.05), rgba(8,17,31,.72));
}
.va-airport-story-weather {
  position: relative;
  z-index: 8;
  display: inline-flex;
  align-items: center;
  gap: 12px;
  width: fit-content;
  min-height: 52px;
  padding: 7px 14px 7px 7px;
  border-radius: 999px;
  border: 1px solid rgba(105,174,230,.30);
  background: rgba(9,22,42,.56);
  box-shadow: 0 16px 42px rgba(0,0,0,.28), inset 0 0 0 1px rgba(255,255,255,.035);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
}
.va-airport-story-weather__ring {
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: #fff;
  background: radial-gradient(circle at 35% 30%, rgba(105,174,230,.38), rgba(31,143,106,.12));
  border: 1px solid rgba(105,174,230,.46);
  box-shadow: 0 0 0 6px rgba(105,174,230,.09);
  font-size: 1.05rem;
}
.va-airport-story-weather__body {
  display: grid;
  gap: 2px;
}
.va-airport-story-weather__body strong {
  color: #fff;
  font-size: .98rem;
  line-height: 1;
  font-weight: 850;
}
.va-airport-story-weather__body small {
  display: flex;
  gap: 10px;
  color: var(--va-text-muted, #9fb0c3);
  font-size: .76rem;
  line-height: 1.2;
  font-weight: 760;
  white-space: nowrap;
}
@media (max-width: 720px) {
  .va-airport-story-weather__body small { flex-direction: column; gap: 1px; }
}

/* v0.09.9.1 – Weather overlay position fix: pin hero weather top-right */
.va-airport-story-hero .va-airport-story-weather {
  position: absolute !important;
  top: clamp(22px, 3vw, 34px) !important;
  right: clamp(22px, 3vw, 34px) !important;
  left: auto !important;
  bottom: auto !important;
  z-index: 9 !important;
  margin: 0 !important;
}

.va-airport-story-hero .va-airport-story-weather::before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(255,255,255,.08), transparent 58%);
  pointer-events: none;
}

@media (max-width: 760px) {
  .va-airport-story-hero .va-airport-story-weather {
    top: auto !important;
    right: 16px !important;
    bottom: 16px !important;
    max-width: calc(100% - 32px);
  }
}

/* v0.09.10 - Weather polish + live feel */
.va-airport-story-hero.has-airport-photo .va-airport-story-hero__photo { opacity: .52; filter: saturate(1.08) contrast(1.08); animation: vaAirportHeroPhotoIn .7s ease both; }
.va-airport-story-hero .va-airport-story-weather { min-height: 66px; padding: 10px 18px 10px 14px; gap: 14px; background: rgba(9,22,42,.68); border-color: rgba(105,174,230,.34); box-shadow: 0 18px 48px rgba(0,0,0,.32), inset 0 0 0 1px rgba(255,255,255,.045); animation: vaAirportWeatherIn .55s ease both .12s; }
.va-airport-story-weather__live { position: absolute; top: -8px; right: 18px; display: inline-flex; align-items: center; gap: 5px; padding: 3px 8px; border-radius: 999px; background: rgba(15,25,45,.82); border: 1px solid rgba(47,180,134,.26); color: rgba(238,244,251,.86); font-size: .58rem; line-height: 1; font-weight: 850; letter-spacing: .12em; }
.va-airport-story-weather__live span { width: 6px; height: 6px; border-radius: 50%; background: #2fb486; box-shadow: 0 0 0 0 rgba(47,180,134,.7); animation: vaLivePulse 1.8s ease-out infinite; }
.va-airport-story-weather__icon { position: relative; width: 46px; height: 46px; flex: 0 0 46px; border-radius: 50%; background: radial-gradient(circle at 35% 28%, rgba(105,174,230,.42), rgba(31,143,106,.10)); border: 1px solid rgba(105,174,230,.42); box-shadow: 0 0 0 7px rgba(105,174,230,.08), inset 0 0 18px rgba(105,174,230,.12); }
.va-airport-story-weather__icon::before,.va-airport-story-weather__icon::after{content:"";position:absolute;display:block;}
.va-weather-icon--sun::before{width:18px;height:18px;border-radius:50%;background:#f4d35e;left:13px;top:10px;box-shadow:0 0 18px rgba(244,211,94,.45)}
.va-weather-icon--sun::after{width:24px;height:10px;border-radius:999px;background:rgba(238,244,251,.92);left:11px;top:25px;box-shadow:-8px 2px 0 -3px rgba(238,244,251,.85),8px 2px 0 -3px rgba(238,244,251,.85)}
.va-weather-icon--cloud::before,.va-weather-icon--mist::before,.va-weather-icon--unknown::before{width:28px;height:12px;border-radius:999px;background:rgba(238,244,251,.90);left:9px;top:23px;box-shadow:6px -7px 0 -2px rgba(238,244,251,.90),-5px -5px 0 -3px rgba(238,244,251,.90)}
.va-weather-icon--rain::before{width:28px;height:12px;border-radius:999px;background:rgba(238,244,251,.88);left:9px;top:17px;box-shadow:6px -6px 0 -2px rgba(238,244,251,.88),-5px -4px 0 -3px rgba(238,244,251,.88)}
.va-weather-icon--rain::after{width:3px;height:9px;border-radius:999px;background:#69aee6;left:16px;top:31px;box-shadow:8px 0 0 #69aee6,16px 0 0 #69aee6;transform:skewX(-16deg)}
.va-weather-icon--snow::before{content:"✦";color:rgba(238,244,251,.95);font-size:22px;line-height:1;left:13px;top:12px}
.va-weather-icon--storm::before{width:28px;height:12px;border-radius:999px;background:rgba(238,244,251,.86);left:9px;top:15px;box-shadow:6px -6px 0 -2px rgba(238,244,251,.86),-5px -4px 0 -3px rgba(238,244,251,.86)}
.va-weather-icon--storm::after{width:0;height:0;left:20px;top:27px;border-left:5px solid transparent;border-right:3px solid transparent;border-top:14px solid #d7a94a;transform:skewX(-12deg)}
.va-weather-icon--mist::after{width:24px;height:2px;border-radius:999px;background:rgba(105,174,230,.80);left:11px;top:31px;box-shadow:5px 5px 0 rgba(105,174,230,.58),-3px 10px 0 rgba(105,174,230,.38)}
.va-airport-story-weather__body strong{font-size:1.15rem}.va-airport-story-weather__body small{align-items:center;gap:12px}.va-airport-story-weather__body small span:not(:first-child){padding-left:12px;border-left:1px solid rgba(255,255,255,.12)}
@keyframes vaLivePulse{0%{box-shadow:0 0 0 0 rgba(47,180,134,.65)}70%{box-shadow:0 0 0 7px rgba(47,180,134,0)}100%{box-shadow:0 0 0 0 rgba(47,180,134,0)}}
@keyframes vaAirportWeatherIn{from{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}
@keyframes vaAirportHeroPhotoIn{from{opacity:.38;transform:scale(1.015)}to{opacity:.52;transform:scale(1)}}
@media (max-width:760px){.va-airport-story-hero .va-airport-story-weather{min-height:58px;padding:9px 12px}.va-airport-story-weather__icon{width:40px;height:40px;flex-basis:40px}.va-airport-story-weather__body small span:not(:first-child){padding-left:0;border-left:0}}

/* v0.10.0 - Live system layer */
.va-airport-live-layer{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(180px,240px) minmax(160px,1fr) auto;align-items:center;gap:18px;margin:18px 0 32px;padding:16px 18px;background:linear-gradient(135deg,rgba(15,25,45,.76),rgba(9,22,42,.52));border-color:rgba(105,174,230,.16);box-shadow:0 18px 48px rgba(0,0,0,.22),inset 0 0 0 1px rgba(255,255,255,.03);animation:vaAirportLiveLayerIn .55s ease both .18s}.va-airport-live-layer::before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 88% 20%,rgba(47,180,134,.16),transparent 34%),radial-gradient(circle at 12% 0%,rgba(105,174,230,.11),transparent 32%);pointer-events:none}.va-airport-live-layer>*{position:relative;z-index:1}.va-airport-live-layer__status{display:grid;grid-template-columns:auto 1fr;align-items:center;column-gap:10px;row-gap:2px;min-width:0}.va-airport-live-layer__status span:not(.va-airport-live-layer__pulse){color:var(--va-text-muted,#9fb0c3);font-size:.72rem;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.va-airport-live-layer__status strong{grid-column:2;color:#fff;font-size:1rem;line-height:1.1}.va-airport-live-layer__pulse{grid-row:1/span 2;width:12px;height:12px;border-radius:50%;background:#2fb486;box-shadow:0 0 0 0 rgba(47,180,134,.65);animation:vaLivePulse 1.8s ease-out infinite}.va-airport-live-layer__meter{height:10px;border-radius:999px;overflow:hidden;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.07)}.va-airport-live-layer__meter span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--va-primary,#2fb486),var(--va-accent,#69aee6));box-shadow:0 0 18px rgba(47,180,134,.34);transition:width .85s cubic-bezier(.2,.8,.2,1)}.va-airport-live-layer__items{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;color:var(--va-text-muted,#9fb0c3);font-size:.82rem;font-weight:700}.va-airport-live-layer__items span{display:inline-flex;align-items:center;min-height:30px;padding:0 11px;border-radius:999px;background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.065);white-space:nowrap}.va-airport-live-layer__items strong{color:#fff;margin-right:4px}.va-airport-story-stat{position:relative;overflow:hidden}.va-airport-story-stat::after{content:"";position:absolute;inset:auto 18px 0 18px;height:2px;border-radius:999px;background:linear-gradient(90deg,transparent,rgba(47,180,134,.44),transparent);opacity:.7}@keyframes vaAirportLiveLayerIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (max-width:960px){.va-airport-live-layer{grid-template-columns:1fr;align-items:stretch}.va-airport-live-layer__items{justify-content:flex-start}}@media (max-width:620px){.va-airport-live-layer{padding:14px}.va-airport-live-layer__items span{width:100%;justify-content:space-between}}
