:root {
  --ink: #082947;
  --ink-soft: #526c80;
  --dark-blue: #0b2f52;
  --royal: #1747df;
  --purple: #5522b0;
  --purple-dark: #36149b;
  --sky: #8edbff;
  --sky-strong: #8edbff;
  --sky-pale: #eaf8ff;
  --line: #c9d1d8;
  --paper: #ffffff;
  --warm: #fff1e8;
  --green: #edf9e9;
  --safe: #177548;
  --danger: #a52424;
  --content-width: min(92vw, 1520px);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  background: #fff;
  color: var(--ink);
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  font-size: 16px;
  line-height: 1.45;
}
button, input, select { font: inherit; }
button, select { cursor: pointer; }
a { color: inherit; }
img { display: block; max-width: 100%; }
button:focus-visible, input:focus-visible, select:focus-visible,
a:focus-visible, summary:focus-visible {
  outline: 3px solid #f4c542;
  outline-offset: 3px;
}
.sr-only {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}
.aw-page { min-width: 320px; overflow: hidden; }

/* =========================================================
   HEADER — REVIEW VARIANT #17
========================================================= */
.aw-header {
  width: 100%;
  height: 112px;
  min-height: 112px;
  padding: 0 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  border-bottom: 1px solid #d8dde3;
  background: #fff;
}
.aw-logo-link {
  width: var(--content-width);
  max-width: 100%;
  height: 100%;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: center;
  color: inherit;
  text-decoration: none;
  line-height: 0;
}
.aw-header-brand {
  width: 100%;
  height: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  column-gap: 0;
}
.aw-header-center {
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 0;
  padding-top: 0;
  transform: translateY(-10px);
}
.aw-header-tagline {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: #9a9a9a;
  font-size: 16px;
  font-weight: 400;
  line-height: .96;
  letter-spacing: .01em;
  text-align: center;
  white-space: nowrap;
}
.aw-header-icon-slot {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding-bottom: 22px;
}
.aw-header-side-icon {
  align-self: center;
  justify-self: center;
  object-fit: contain;
  object-position: center;
}
.aw-header-side-icon--layover {
  width: min(68%, 268px);
  max-width: 76.5%;
  height: 77px;
  transform: translate(1px, 9px);
}
.aw-header-side-icon--stories {
  width: min(59.5%, 85px);
  max-width: 80%;
  height: 60px;
  transform: translate(9px, 12px);
}
.aw-header-icon-caption {
  position: absolute;
  left: 50%;
  bottom: 5px;
  width: max-content;
  max-width: 100%;
  margin: 0;
  padding: 0;
  transform: translateX(-50%);
  font-size: 16px;
  font-weight: 400;
  line-height: 1;
  letter-spacing: 0;
  white-space: nowrap;
  text-align: center;
  text-transform: translateY(-7px);
}
.aw-header-icon-caption--wait {
  color: #8edbff;
  transform: translate(-75px, -3px);
}
.aw-header-icon-caption--wander {
  color: var(--purple);
  transform: translate(-10px, -3px);
}
.aw-wordmark {
  display: inline-flex;
  align-items: baseline;
  white-space: nowrap;
  font-family: "Allura", "Segoe Script", "Brush Script MT", cursive;
  font-weight: 400;
  font-style: normal;
  line-height: .82;
  letter-spacing: -.055em;
  text-rendering: geometricPrecision;
}
.aw-wordmark__wander { margin-left: -.055em; }
.aw-wordmark--header {
  display: inline-block;
  color: #9a9a9a;
  font-size: clamp(54px, 5vw, 78px);
  line-height: .9;
  letter-spacing: 0;
  transform: translateY(-7px);
}

/* =========================================================
   PAGE WIDTH + TOP COMPOSITION
========================================================= */
.aw-main {
  width: var(--content-width);
  margin: 0 auto;
  padding: 96px 0 88px;
}
.aw-combo-hero, .wanderplan-shell {
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}
.aw-combo-hero-inner {
  width: 100%;
  display: grid;
  gap: 0;
}
.aw-combo-copy {
  width: 100%;
  max-width: none;
}
.aw-combo-title {
  display: inline-flex;
  align-items: stretch;
  margin: 0 0 10px;
  font-size: clamp(49px, 4.41vw, 65px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.045em;
}
.aw-airport-code {
  display: inline-flex;
  align-items: center;
  padding: 8px 13px 10px;
  background: var(--purple);
  color: #fff;
  font-weight: 700;
}
.aw-guide-name {
  display: inline-flex;
  align-items: center;
  padding: 7px 13px 9px;
  border: 2px solid var(--purple);
  color: #83d4ff;
  font-style: italic;
  font-weight: 700;
}
.aw-combo-intro {
  max-width: 760px;
  margin: 0;
  color: #536b7e;
  font-size: 12px;
  line-height: 1.55;
}

/* Shared main-content edge: every major section begins and ends on the same container line. */
.aw-main > .aw-combo-hero,
.aw-main > .wanderplan-shell,
.aw-combo-hero-inner > .aw-combo-copy,
.aw-combo-hero-inner > .aw-magazine-article,
.aw-combo-hero-inner > .wander-zone-card,
.wanderplan-shell > .major-section-heading,
.wanderplan-shell > .plan-step,
.wanderplan-shell > .wonder-more-section {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

/* DCA magazine treatment from the approved composition. */
.aw-magazine-article {
  width: 100%;
  margin-top: 48px;
  color: #111;
}
.aw-magazine-layout {
  display: grid;
  grid-template-columns: minmax(280px, 30%) minmax(0, 1fr);
  gap: clamp(14px, 1.5vw, 28px);
  align-items: start;
}
.aw-magazine-photo {
  width: 100%;
  margin: 0;
  align-self: start;
  overflow: visible;
  background: transparent;
}
.aw-magazine-photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center center;
}
.aw-magazine-photo-caption {
  display: grid;
  gap: 1px;
  margin-top: 8px;
  color: #536b7e;
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-size: clamp(10px, .8vw, 13px);
  line-height: 1.35;
}
.aw-magazine-photo-caption span {
  display: block;
  font-style: normal;
}
.aw-magazine-photo-caption em {
  display: block;
  font-style: italic;
}
.aw-magazine-copy {
  min-width: 0;
}
.aw-magazine-header h2 {
  width: 100%;
  max-width: none;
  margin: 0 0 14px;
  color: var(--purple);
  font-size: clamp(30px, 3.15vw, 50px);
  font-weight: 650;
  line-height: .98;
  letter-spacing: -.045em;
}
.aw-magazine-body {
  column-count: 3;
  column-gap: clamp(20px, 2.3vw, 42px);
  column-fill: balance;
  width: 100%;
  max-width: none;
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-size: clamp(10px, .8vw, 13px);
  line-height: 1.38;
}
.aw-magazine-body p,
.aw-magazine-body h3,
.aw-magazine-body blockquote { break-inside: avoid; }
.aw-magazine-body p { margin: 0 0 .72em; }
.aw-magazine-body h3 {
  margin: .72em 0 .2em;
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  font-size: 1em;
  line-height: 1.2;
}
.aw-magazine-body blockquote {
  margin: .75em 0;
  padding: .34em 0 .34em 12px;
  border-left: 5px solid #8edbff;
  color: #666;
  font-size: calc(1em + 6.5px);
  line-height: 1.42;
  font-style: italic;
}
.aw-magazine-lead::first-letter {
  float: left;
  margin: .02em .08em 0 0;
  color: #8edbff;
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  font-size: 5.35em;
  font-weight: 800;
  line-height: .66;
}

/* =========================================================
   HOW FAR CAN YOU SAFELY WANDER
========================================================= */
.wander-zone-card {
  width: 100%;
  margin-top: 94px;
  margin-left: 0;
  margin-right: 0;
  padding: 0;
  border: 0;
  background: transparent;
}
.wander-zone-heading {
  display: block;
  margin: 0 0 20px;
}
.wander-zone-heading h2 {
  margin: 0;
  color: var(--purple);
  font-size: clamp(27px, 2.55vw, 41px);
  font-weight: 650;
  line-height: 1.05;
  letter-spacing: -.035em;
}
.wander-zone-heading p, .zone-live-window { display: none; }
.wander-zone-buttons {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 30%));
  justify-content: space-between;
  gap: 0;
}
.wander-zone-row {
  width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: clamp(14px, 1.3vw, 22px);
}
.wander-zone-button {
  width: 100%;
  min-height: 142px;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: flex-start;
  gap: 0;
  padding: 0 10px 13px;
  overflow: hidden;
  border: 2px solid #d2d2d2;
  border-top-color: var(--purple);
  border-radius: 0;
  background: #fff;
  color: #666;
  text-align: left;
  box-shadow: none;
}
.wander-zone-button strong {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  margin: -2px -12px 8px;
  padding: 8px 11px 7px;
  background: var(--purple);
  color: #fff;
  font-size: clamp(16px, 1.5vw, 24px);
  font-weight: 700;
  line-height: 1.1;
}
.wander-zone-label { min-width: 0; }
.wander-zone-icon {
  width: clamp(25px, 2.1vw, 36px);
  height: clamp(25px, 2.1vw, 36px);
  flex: 0 0 auto;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.wander-zone-button-body {
  flex: 1 1 auto;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  padding: 0;
}
.wander-zone-button .wander-zone-range {
  display: block;
  margin-bottom: 12px;
  color: var(--purple);
  font-size: clamp(11px, .88vw, 14px);
  font-weight: 700;
  line-height: 1.2;
}
.wander-zone-button .wander-zone-button-copy {
  display: block;
  color: #666;
  font-size: clamp(11px, .9vw, 14px);
  line-height: 1.35;
}
.wander-zone-photo {
  width: 100%;
  margin: 0;
  align-self: start;
  overflow: visible;
  background: transparent;
}
.wander-zone-photo img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  object-position: center center;
}
.wander-zone-photo-caption {
  display: grid;
  gap: 1px;
  margin-top: 8px;
  color: #536b7e;
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-size: clamp(10px, .8vw, 13px);
  line-height: 1.35;
}
.wander-zone-photo-caption span,
.wander-zone-photo-caption em {
  display: block;
}
.wander-zone-photo-caption span { font-style: normal; }
.wander-zone-photo-caption em { font-style: italic; }
.wander-zone-button:hover {
  background: var(--sky);
  border-color: var(--purple);
  box-shadow: none;
  transform: translateY(-7px);
}
.wander-zone-button.is-active {
  background: var(--sky);
  border-color: var(--purple);
  box-shadow: none;
  transform: translateY(-7px);
}
.wander-zone-button:hover .wander-zone-button-copy,
.wander-zone-button.is-active .wander-zone-button-copy {
  color: var(--dark-blue);
}
.wander-zone-button.is-active strong { background: var(--purple); }
.wander-zone-button:hover .wander-zone-icon,
.wander-zone-button.is-active .wander-zone-icon {
  filter: brightness(0) saturate(100%) invert(79%) sepia(33%) saturate(814%) hue-rotate(170deg) brightness(104%) contrast(101%);
}
.wander-zone-description { display: none; }

/* =========================================================
   WANDERPLAN SECTION
========================================================= */
.wanderplan-shell {
  width: 100%;
  margin-top: 104px;
  margin-left: 0;
  margin-right: 0;
}
.major-section-heading {
  width: 100%;
  margin: 0 0 30px;
}
.section-eyebrow, .major-section-heading p { display: none; }
.major-section-heading h2 {
  margin: 0;
  color: var(--purple);
  font-size: clamp(27px, 2.7vw, 43px);
  font-weight: 650;
  line-height: 1.05;
  letter-spacing: -.035em;
}
.plan-step {
  width: 100%;
  margin: 0;
  overflow: hidden;
  border: 1px solid #b9c5ce;
  border-top: 0;
  background: #fff;
  box-shadow: none;
}
.plan-step + .plan-step { margin-top: 78px; }
.step-heading,
.step-heading--map {
  min-height: 42px;
  display: flex;
  align-items: center;
  gap: 5px;
  width: calc(100% + 2px);
  margin: -1px -1px 0;
  padding: 6px 10px;
  border: 1px solid var(--purple);
  background: var(--purple);
  color: #fff;
}
.step-number {
  width: auto;
  height: auto;
  flex: 0 0 auto;
  display: inline;
  border-radius: 0;
  background: transparent;
  color: #fff;
  font-size: clamp(16px, 1.4vw, 22px);
  font-weight: 700;
}
.step-number::after { content: "."; }
.step-heading > div { min-width: 0; }
.step-heading h3 {
  margin: 0;
  color: #fff;
  font-size: clamp(16px, 1.4vw, 22px);
  font-weight: 700;
  line-height: 1.1;
}
.step-heading p, .plan-status { display: none; }

/* STEP 1 — FLIGHT INFORMATION */
.flight-ribbon {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(92px, 10vw, 150px) minmax(0, 1fr);
  min-height: 110px;
}
.flight-block { padding: 11px 10px 13px; }
.flight-block--inbound { background: #fff0f4; }
.flight-block--outbound { background: #fff0f4; }
.flight-block-title {
  margin: 0 0 7px;
  color: var(--dark-blue);
  font-size: clamp(7px, .55vw, 9px);
  font-weight: 900;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.flight-fields {
  display: grid;
  grid-template-columns: .78fr .85fr .94fr 1.15fr 1.18fr;
  gap: 7px;
}
.field, .assumption-control { display: grid; gap: 3px; }
.field > span, .assumption-control > span {
  color: #3a5268;
  font-size: clamp(8px, .6vw, 10px);
  font-weight: 900;
  line-height: 1;
  letter-spacing: .035em;
  text-transform: uppercase;
}
.field input, .assumption-control select {
  width: 100%;
  min-width: 0;
  min-height: 29px;
  padding: 4px 7px;
  border: 1px solid #b9c9d5;
  border-radius: 6px;
  background: rgba(255,255,255,.95);
  color: #071f36;
  font-size: clamp(8px, .65vw, 11px);
  font-weight: 750;
}
.connection-block, .wandersafe-summary {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 8px 6px;
  background: var(--royal);
  color: #fff;
  text-align: center;
}
.connection-label, .wandersafe-summary > span {
  font-size: clamp(6px, .5vw, 8px);
  font-weight: 900;
  line-height: 1.1;
  letter-spacing: .04em;
  text-transform: uppercase;
}
.connection-code { margin-top: 3px; font-size: clamp(20px, 2vw, 30px); line-height: 1; }
.connection-duration, .wandersafe-summary b {
  display: inline-block;
  margin-top: 5px;
  padding: 3px 6px;
  background: rgba(255,255,255,.13);
  font-size: clamp(7px, .58vw, 10px);
  font-weight: 850;
}
.connection-block small, .wandersafe-summary small {
  margin-top: 4px;
  font-size: clamp(6px, .52vw, 9px);
}

/* STEP 2 — WANDERSAFE */
.wandersafe-ribbon {
  display: grid;
  grid-template-columns: minmax(0, 1fr) clamp(92px, 10vw, 150px) minmax(0, 1fr);
  min-height: 110px;
}
.safety-controls {
  display: grid;
  align-content: center;
  gap: 8px;
  padding: 10px;
  background: #eaf7ff;
}
.safety-controls--left,
.safety-controls--right { grid-template-columns: minmax(0, 1.25fr) minmax(0, .9fr); }
.check-control {
  min-height: 29px;
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 4px 7px;
  border: 1px solid #b9c9d5;
  border-radius: 5px;
  background: #fff;
  color: #213a4f;
  font-size: clamp(8px, .62vw, 10px);
  font-weight: 700;
}
.check-control input { width: 14px; height: 14px; }
.wandersafe-summary strong {
  width: calc(100% + 12px);
  margin: 5px -6px 0;
  padding: 4px 5px;
  background: #0d32c9;
  font-size: clamp(12px, 1.15vw, 18px);
  line-height: 1.1;
}
.safe-breakdown {
  display: grid;
  align-content: center;
  gap: 5px;
  color: #52687b;
  font-size: clamp(7px, .58vw, 10px);
}
.safe-breakdown span {
  display: flex;
  justify-content: space-between;
  gap: 8px;
  border-bottom: 1px dotted #aabcc8;
}
.safe-breakdown strong { color: var(--dark-blue); }
.calculation-details { display: none; }

/* STEP 3 — WANDERMAP */
.wander-map-workspace {
  display: grid;
  grid-template-columns: minmax(285px, 33.5%) minmax(0, 66.5%);
  min-height: 575px;
}

.wanderplan-panel,
.map-panel {
  position: relative;
  min-width: 0;
  min-height: 575px;
  max-height: 575px;
  outline: none;
}

.wanderplan-panel {
  overflow-y: auto;
  overflow-x: hidden;
  border-right: 1px solid #86bdd6;
  background: #8edbff;
  scrollbar-width: thin;
  scrollbar-color: #c9b7ee #f1ebfb;
  overscroll-behavior: contain;
}

.wanderplan-panel::-webkit-scrollbar { width: 10px; }
.wanderplan-panel::-webkit-scrollbar-track { background: #f1ebfb; }
.wanderplan-panel::-webkit-scrollbar-thumb {
  min-height: 54px;
  border: 2px solid #f1ebfb;
  border-radius: 999px;
  background: #c9b7ee;
}
.wanderplan-panel::-webkit-scrollbar-thumb:hover { background: #b59ce6; }

.wanderplan-panel.is-panel-active,
.map-panel.is-panel-active {
  box-shadow: inset 0 0 0 1px rgba(82, 33, 199, .28);
}

.panel-interaction-note {
  position: sticky;
  z-index: 50;
  top: 7px;
  float: right;
  margin: 7px 8px -27px 0;
  padding: 4px 9px;
  border: .5px solid rgba(82, 33, 199, .18);
  border-radius: 999px;
  background: rgba(255, 255, 255, .76);
  color: rgba(54, 48, 66, .58);
  font-size: 8px;
  font-weight: 800;
  letter-spacing: .02em;
  pointer-events: none;
  transition: opacity 160ms ease;
}
.is-panel-active > .panel-interaction-note,
.map-panel.is-panel-active .panel-interaction-note { opacity: 0; }

.route-builder {
  padding: 8px 8px 9px;
  border-bottom: 1px solid rgba(8,41,71,.22);
  background: #8edbff;
}
.route-builder-heading { display: grid; gap: 6px; padding-right: 88px; }
.route-builder-heading h4 {
  margin: 0;
  color: var(--dark-blue);
  font-size: clamp(10px, .8vw, 13px);
  line-height: 1.25;
}

.map-platform-bar {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 5px;
  margin-top: 8px;
  padding: 6px;
  border: .5px solid rgba(82, 33, 199, .2);
  background: rgba(255, 255, 255, .45);
}
.map-platform-control { display: grid; gap: 3px; min-width: 0; }
.map-platform-control span {
  color: var(--purple);
  font-size: 7px;
  font-weight: 900;
  letter-spacing: .07em;
  text-transform: uppercase;
}
.map-platform-control select {
  width: 100%;
  min-width: 0;
  min-height: 27px;
  padding: 4px 18px 4px 6px;
  border: 1px solid #96b7ca;
  border-radius: 0;
  background: #fff;
  color: var(--dark-blue);
  font-size: clamp(7px, .55vw, 9px);
  font-weight: 750;
}
.map-platform-status {
  grid-column: 1 / -1;
  color: #48677d;
  font-size: 6.5px;
  line-height: 1.25;
}

.route-actions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 7px; }
.action-button {
  min-height: 24px;
  padding: 4px 8px;
  border: .5px solid var(--royal);
  background: #fff;
  color: var(--dark-blue);
  font-size: clamp(6px, .5vw, 8px);
  font-weight: 850;
}
.action-button--primary { background: var(--royal); color: #fff; }
.action-button:hover { background: #0f36bc; color: #fff; }
.add-stop-row {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 5px;
  margin-top: 7px;
}
.add-stop-row select {
  min-width: 0;
  min-height: 29px;
  padding: 4px 7px;
  border: 1px solid #9db8c8;
  border-radius: 4px;
  background: #fff;
  color: var(--dark-blue);
  font-size: clamp(8px, .62vw, 10px);
  font-weight: 700;
}

.route-list {
  margin: 0;
  padding: 6px;
  list-style: none;
  background: var(--sky);
}
.route-item {
  display: block;
  margin-bottom: 5px;
  padding: 0;
  border: 1px solid rgba(8,41,71,.14);
  background: #fff;
  color: var(--dark-blue);
  overflow: clip;
}
.route-item--fixed { background: #eaf8ff; }
.route-item--return { background: #eefcef; }
.route-item.is-over { border-color: #b32525; }

.route-summary {
  position: relative;
  width: 100%;
  display: grid;
  grid-template-columns: 28px minmax(0,1fr) 32px minmax(80px, auto);
  align-items: center;
  gap: 9px;
  min-height: 68px;
  padding: 10px 10px;
  border: 0;
  background: transparent;
  color: inherit;
  text-align: left;
}
.route-summary:hover { background: rgba(255,255,255,.52); }
.route-summary:focus-visible { outline: 2px solid var(--purple); outline-offset: -2px; }
.route-index {
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--purple);
  color: #fff;
  font-size: 10px;
  font-weight: 900;
}
.route-item--fixed .route-index { background: var(--dark-blue); }
.route-copy { min-width: 0; }
.route-copy strong {
  display: block;
  color: var(--dark-blue);
  font-size: clamp(12px, .9vw, 15px);
  font-weight: 850;
  line-height: 1.12;
}
.route-copy small {
  display: block;
  margin-top: 2px;
  color: #62788b;
  font-size: clamp(8px, .58vw, 10px);
  line-height: 1.25;
}
.route-accordion-arrow {
  width: 24px;
  height: 24px;
  display: grid;
  place-items: center;
  color: rgba(67, 65, 76, .38);
  font-size: 22px;
  font-weight: 500;
  line-height: 1;
  transform: rotate(0deg);
  transition: transform 240ms cubic-bezier(.2,.72,.2,1), color 180ms ease;
}
.route-item.is-open .route-accordion-arrow {
  color: rgba(67, 65, 76, .58);
  transform: rotate(180deg);
}
.route-time { min-width: 80px; text-align: right; }
.route-time strong {
  display: block;
  color: var(--dark-blue);
  font-size: clamp(8px, .6vw, 10px);
  line-height: 1;
}
.route-time b {
  display: block;
  margin-top: 3px;
  color: #001b59;
  font-size: clamp(14px, 1.05vw, 18px);
  line-height: 1;
}

.route-accordion-panel {
  display: grid;
  grid-template-rows: 0fr;
  border-top: 0 solid rgba(8,41,71,.15);
  background: rgba(255,255,255,.78);
  opacity: .35;
  transition:
    grid-template-rows 320ms cubic-bezier(.16,.8,.2,1),
    opacity 220ms ease,
    border-top-width 180ms ease;
}
.route-item.is-open .route-accordion-panel {
  grid-template-rows: 1fr;
  border-top-width: 1px;
  opacity: 1;
}
.route-accordion-inner {
  min-height: 0;
  overflow: hidden;
}
.route-detail-content { padding: 8px; }
.route-detail-media {
  margin: 0 0 7px;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #86afc4;
}
.route-detail-media img { width: 100%; height: 100%; object-fit: cover; }
.route-detail-content p {
  margin: 0 0 6px;
  color: #315570;
  font-size: clamp(6px, .5vw, 8px);
  line-height: 1.38;
}
.route-detail-contact {
  display: grid;
  grid-template-columns: auto minmax(0,1fr);
  gap: 3px 7px;
  margin-top: 6px;
  color: #315570;
  font-size: clamp(6px, .5vw, 8px);
}
.route-detail-contact dt { color: var(--purple); font-weight: 900; }
.route-detail-contact dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.route-detail-contact a { color: #27729b; font-style: italic; text-decoration: underline; }
.route-stop-tools {
  display: grid;
  grid-template-columns: minmax(0,1fr) auto;
  align-items: end;
  gap: 7px;
  margin-top: 8px;
  padding-top: 7px;
  border-top: 1px solid rgba(8,41,71,.14);
}
.route-stop-duration { display: grid; gap: 3px; }
.route-stop-duration span {
  color: var(--purple);
  font-size: 6.5px;
  font-weight: 900;
  text-transform: uppercase;
}
.route-stop-duration select {
  min-height: 26px;
  padding: 3px 6px;
  border: 1px solid #b7c6d0;
  background: #fff;
  color: var(--dark-blue);
  font-size: 8px;
}
.route-controls { display: flex; justify-content: flex-end; gap: 3px; }
.route-controls button {
  min-width: 24px;
  height: 24px;
  padding: 0 5px;
  border: 1px solid #b7c6d0;
  background: #fff;
  color: var(--purple);
  font-size: 9px;
  font-weight: 900;
}
.route-controls button:hover { background: var(--purple); color: #fff; }
.route-controls button:disabled { opacity: .35; cursor: not-allowed; }

.map-panel { overflow: hidden; background: #e8f3f8; }
.map-viewport {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 575px;
  overflow: hidden;
  background: #e4f1f5;
}
.leaflet-map {
  width: 100%;
  height: 100%;
  min-height: 575px;
  background: #e4f1f5;
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
}
.leaflet-container { background: #e4f1f5; }
.leaflet-control-attribution {
  background: rgba(255,255,255,.82) !important;
  color: #516b7d !important;
  font-size: 7px !important;
}
.leaflet-control-attribution a { color: #3f6681 !important; }
.leaflet-map[data-basemap="pencil"] .leaflet-tile-pane { filter: grayscale(1) contrast(1.25) brightness(1.08); }
.leaflet-map[data-basemap="artistic"] .leaflet-tile-pane { filter: saturate(.8) contrast(.95); }
.map-zone-options {
  position: absolute;
  z-index: 830;
  right: 10px;
  top: 10px;
  left: auto;
  width: 44px;
  display: grid;
  gap: 7px;
}
.map-zone-option {
  width: 44px;
  height: 44px;
  min-height: 44px;
  display: grid;
  place-items: center;
  padding: 7px;
  border: 1.5px solid var(--purple);
  border-radius: 50%;
  background: var(--purple);
  color: #fff;
  box-shadow: 0 3px 9px rgba(8,41,71,.13);
  transition: background 150ms ease, border-color 150ms ease, transform 150ms ease;
}
.map-zone-option:hover {
  background: var(--purple);
  border-color: var(--purple);
  transform: translateY(-1px);
}
.map-zone-option.is-active {
  background: var(--purple);
  border-color: var(--purple);
  transform: translateY(-7px);
}
.map-zone-option > img {
  width: 28px;
  height: 28px;
  padding: 0;
  border-radius: 0;
  background: transparent;
  object-fit: contain;
  filter: brightness(0) invert(1);
}
.map-zone-option:hover > img,
.map-zone-option.is-active > img {
  filter: brightness(0) saturate(100%) invert(79%) sepia(33%) saturate(814%) hue-rotate(170deg) brightness(104%) contrast(101%);
}
.map-zone-option > span { display: none; }

.map-controls {
  position: absolute;
  z-index: 825;
  right: 10px;
  top: auto;
  bottom: 10px;
  display: grid;
  gap: 8px;
}
.map-controls button {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  padding: 0;
  border: 1.5px solid var(--purple);
  border-radius: 50%;
  background: rgba(255,255,255,.96);
  color: var(--purple);
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  font-size: 25px;
  font-weight: 500;
  line-height: 1;
  box-shadow: 0 3px 9px rgba(8,41,71,.13);
}
.map-controls button:hover {
  background: var(--sky);
  border-color: var(--purple);
}
.map-controls button:focus-visible {
  outline: 3px solid rgba(85,34,176,.24);
  outline-offset: 2px;
}
.map-controls button img {
  width: 25px;
  height: 25px;
  object-fit: contain;
}
.map-legend {
  position: absolute;
  z-index: 840;
  left: var(--zone-icon-left, 50%);
  top: var(--zone-icon-top, 10px);
  width: 48px;
  height: 48px;
  padding: 0;
  display: grid;
  place-items: center;
  overflow: hidden;
  transform: translateX(-50%);
  border: 1.5px solid var(--purple);
  border-radius: 50%;
  background: var(--purple);
  box-shadow: 0 4px 12px rgba(8,41,71,.14);
}
.map-legend-title {
  margin: 0;
  padding: 0;
  display: grid;
  place-items: center;
  background: transparent;
}
.map-legend strong,
.map-legend > span { display: none; }
.map-legend-title img {
  width: 29px;
  height: 29px;
  flex: 0 0 auto;
  object-fit: contain;
  filter: brightness(0) saturate(100%) invert(79%) sepia(33%) saturate(814%) hue-rotate(170deg) brightness(104%) contrast(101%);
}
.location-status {
  position: absolute;
  z-index: 820;
  left: 10px;
  bottom: 10px;
  max-width: 310px;
  padding: 7px 9px;
  background: rgba(8,41,71,.91);
  color:#fff;
  font-size:8px;
}
.panel-interaction-note--map {
  position: absolute;
  z-index: 820;
  right: 50px;
  bottom: 10px;
  top: auto;
  float: none;
  margin: 0;
}
/* =========================================================
   FOOTER — REVIEW VARIANT #17, REBALANCED
========================================================= */
.site-footer.alt-footer {
  width: 100%;
  margin: 0;
  padding: 34px 0 18px;
  border-top: 1px solid #d8dde3;
  background: #fff;
  color: #111;
}
.site-footer.alt-footer .alt-footer-inner {
  width: var(--content-width);
  margin: 0 auto;
  padding: 0;
  position: relative;
  display: grid;
  grid-template-columns: minmax(205px,.9fr) 300px 300px max-content max-content;
  grid-template-rows: auto auto;
  column-gap: clamp(38px, 3.5vw, 64px);
  row-gap: 28px;
  align-items: start;
}
.site-footer.alt-footer .footer-left-panel {
  grid-column: 1;
  grid-row: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 15px;
}
.site-footer.alt-footer .footer-signup-stack { display: contents; }
.site-footer.alt-footer .footer-mark-link {
  height: 42px;
  align-self: start;
  justify-self: start;
  display: flex;
  align-items: flex-end;
  overflow: visible;
  text-decoration: none;
  line-height: 1;
}
.site-footer.alt-footer .footer-mark-link .aw-wordmark--footer {
  display: inline-block;
  color: #9a9a9a;
  font-family: "Allura", "Segoe Script", "Brush Script MT", cursive;
  font-size: clamp(48px,3.8vw,60px);
  font-weight: 400;
  font-style: normal;
  line-height: .82;
  letter-spacing: 0;
  transform-origin: left bottom;
}
.site-footer.alt-footer .aw-wordmark--footer .aw-wordmark__aero,
.site-footer.alt-footer .aw-wordmark--footer .aw-wordmark__wander { color:#9a9a9a; }
.footer-legal-terms {
  max-width: 245px;
  color: #888;
  font-size: 11px;
  line-height: 1.38;
}
.footer-legal-terms p { margin: 0 0 5px; }
.footer-legal-terms ul { margin: 0; padding: 0; list-style: none; }
.footer-legal-terms li { margin: 0; }
.site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) {
  grid-column: 2;
  grid-row: 1;
  transform: translateY(-7px);
}
.site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) {
  grid-column: 3;
  grid-row: 1;
  min-width: 0;
}
.site-footer.alt-footer .footer-mini-form {
  width:min(100%, 300px);
  min-width:0;
  justify-self:start;
  display:grid;
  gap:6px;
  align-content:start;
}
.site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) { gap: 4px; }
.site-footer.alt-footer .footer-mini-form h3,
.site-footer.alt-footer .footer-col h3 {
  margin:0 0 2px;
  color:#111;
  font-size:13px;
  line-height:1.25;
}
.site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) h3 {
  white-space: nowrap;
  margin-bottom: 0;
}
.site-footer.alt-footer .footer-mini-form input {
  width:100%;
  min-width:0;
  min-height:32px;
  padding:6px 10px;
  border:1px solid #d8dde3;
  background:#fff;
  color:#111;
  font-size:11px;
}
.site-footer.alt-footer .footer-mini-form button {
  justify-self:start;
  min-height:31px;
  padding:6px 16px;
  border:1px solid var(--purple);
  background:#fff;
  color:#111;
  font-size:10px;
  font-weight:700;
}
.site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) button,
#account-auth-fields > button { justify-self:center; }
.site-footer.alt-footer .footer-mini-form button:hover { background:var(--purple); color:#fff; }
.site-footer.alt-footer .footer-mini-form small {
  min-height:13px;
  color:#666;
  font-size:10px;
  line-height:1.35;
}
.site-footer.alt-footer .footer-columns {
  grid-column: 4 / 6;
  grid-row: 1;
  display:grid;
  grid-template-columns:max-content max-content;
  column-gap:clamp(34px,3vw,52px);
  justify-self:start;
  align-self:start;
}
.site-footer.alt-footer .footer-col {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
}
.site-footer.alt-footer .footer-col a {
  color:#777;
  font-size:12px;
  line-height:1.35;
  text-decoration:none;
}
.site-footer.alt-footer .footer-col a:hover { color:var(--purple); text-decoration:underline; }
.site-footer.alt-footer .footer-credits {
  grid-column:1 / -1;
  grid-row:2;
  align-self:end;
  margin-bottom:-9px;
  text-align:center;
  color:#888;
  font-size:11px;
}

/* =========================================================
   FINAL SEARCH / DISCOVERY SECTION
========================================================= */
.wonder-more-section {
  width: 100%;
  margin: 282px 0 48px;
  padding: 0;
  text-align: center;
}
.wonder-more-title {
  margin: 0 0 24px;
  color: var(--purple);
  font-size: clamp(29px, 2.95vw, 48px);
  font-weight: 650;
  line-height: .98;
  letter-spacing: -.045em;
  text-align: center;
}
.wonder-more-form {
  width: min(760px, 76%);
  margin: 0 auto;
  display: grid;
  grid-template-columns: minmax(0, 1.8fr) minmax(190px, 1fr);
  gap: 12px;
  align-items: center;
}
.wonder-more-form input,
.wonder-more-form select {
  width: 100%;
  min-width: 0;
  height: 44px;
  padding: 0 14px;
  border: 1px solid #ccd6df;
  border-radius: 9px;
  background: #fff;
  color: var(--dark-blue);
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  font-size: 13px;
  box-shadow: 0 1px 2px rgba(8, 41, 71, .03);
}
.wonder-more-form input[type="search"] {
  padding-right: 48px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%237b8792' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-4.2-4.2'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 15px center;
  background-size: 21px 21px;
}
.wonder-more-form input[type="search"]::-webkit-search-cancel-button { display: none; }
.wonder-more-form input::placeholder { color: #7b8792; opacity: 1; }
.wonder-more-form input:hover,
.wonder-more-form select:hover { border-color: #b8c7d3; }
.wonder-more-form input:focus,
.wonder-more-form select:focus {
  border-color: var(--purple);
  outline: 0;
  box-shadow: 0 0 0 3px rgba(85, 34, 176, .12);
}

/* =========================================================
   RESPONSIVE
========================================================= */
@media (max-width: 1100px) {
  .site-footer.alt-footer .alt-footer-inner { width:calc(100vw - 36px); column-gap:20px; }
  .wander-map-workspace { grid-template-columns:minmax(320px,40%) minmax(0,60%); }
  .flight-ribbon, .wandersafe-ribbon { grid-template-columns:1fr; }
  .connection-block, .wandersafe-summary { min-height:85px; }
  .flight-fields { grid-template-columns:repeat(5,minmax(90px,1fr)); }
}
@media (max-width: 820px) {
  .aw-header-brand { grid-template-columns:82px auto 82px; }
  .aw-header-side-icon--layover { width:63px; height:49px; transform:translate(0,6px); }
  .aw-header-side-icon--stories { width:43px; height:44px; transform:translate(0,8px); }
  .aw-header-icon-caption { font-size:11px; }
  .aw-header-icon-caption--wait,
  .aw-header-icon-caption--wander { transform:translateX(-50%); }
  .aw-wordmark--header { font-size:clamp(44px,7.5vw,60px); }
  .aw-header-tagline { font-size:11px; }
  .aw-magazine-layout { grid-template-columns:minmax(220px,36%) minmax(0,1fr); }
  .aw-magazine-body { column-count:2; font-size:11px; }
  .wander-zone-buttons { grid-template-columns:1fr; gap:42px; }
  .wander-zone-row { width:100%; gap:14px; }
  .wander-zone-button { min-height:142px; }
  .wander-zone-photo { width:100%; }
  .wander-zone-photo img { aspect-ratio:4 / 3; }
  .wander-map-workspace { grid-template-columns:1fr; }
  .wanderplan-panel { border-right:0; border-bottom:1px solid #86bdd6; }
  .wanderplan-panel, .map-panel { max-height:none; }
  .map-panel, .map-viewport, .leaflet-map { min-height:560px; }
  .site-footer.alt-footer .alt-footer-inner {
    grid-template-columns:1fr 1fr;
    grid-template-rows:auto auto auto auto;
    column-gap:28px;
  }
  .site-footer.alt-footer .footer-mark-link { grid-column:1 / -1; grid-row:1; }
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) { grid-column:1; grid-row:2; transform:none; }
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) { grid-column:2; grid-row:2; }
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) button { justify-self:start; }
  .site-footer.alt-footer .footer-columns { grid-column:1 / -1; grid-row:3; justify-self:stretch; grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr); }
  .site-footer.alt-footer .footer-credits { grid-row:4; }
}
@media (max-width: 620px) {
  .aw-header { height:96px; min-height:96px; padding:0 10px; }
  .aw-header-brand { grid-template-columns:52px auto 52px; }
  .aw-header-icon-slot { padding-bottom:16px; }
  .aw-header-side-icon--layover { width:39px; height:37px; }
  .aw-header-side-icon--stories { width:32px; height:36px; }
  .aw-header-icon-caption { font-size:8px; }
  .aw-header-tagline { font-size:8px; }
  .aw-wordmark--header { font-size:clamp(36px,10vw,52px); }
  .aw-main { width:calc(100vw - 20px); padding-top:30px; padding-bottom:64px; }
  .aw-magazine-layout { grid-template-columns:1fr; gap:18px; }
  .aw-magazine-photo img { aspect-ratio:4 / 3; }
  .aw-magazine-header h2 { font-size:30px; }
  .aw-magazine-body { column-count:1; }
  .wander-zone-card { padding:0; }
  .wander-zone-buttons { gap:38px; }
  .wander-zone-button { min-height:142px; }
  .wander-zone-button-body { padding:0; }
  .wander-zone-heading h2, .major-section-heading h2 { font-size:28px; }
  .flight-fields, .safety-controls--left, .safety-controls--right { grid-template-columns:1fr; }
  .plan-step + .plan-step { margin-top:52px; }
  .wanderplan-panel, .map-panel { min-height:520px; max-height:none; }
  .map-viewport, .leaflet-map { min-height:520px; }
  .route-summary { grid-template-columns:24px minmax(0,1fr) 24px minmax(62px,auto); }
  .map-platform-bar { grid-template-columns:1fr; }
  .map-platform-status { grid-column:1; }
  .site-footer.alt-footer .alt-footer-inner { width:calc(100vw - 28px); grid-template-columns:1fr; }
  .site-footer.alt-footer .footer-mark-link,
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1),
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2),
  .site-footer.alt-footer .footer-columns,
  .site-footer.alt-footer .footer-credits { grid-column:1; }
  .site-footer.alt-footer .footer-mark-link { grid-row:1; }
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) { grid-row:2; }
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) { grid-row:3; }
  .site-footer.alt-footer .footer-columns { grid-row:4; grid-template-columns:1fr 1.4fr; }
  .site-footer.alt-footer .footer-credits { grid-row:5; text-align:left; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior:auto !important;
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}


@media (max-width: 760px) {
  .wonder-more-section { margin-top: 76px; }
  .wonder-more-title { margin-bottom: 20px; }
  .wonder-more-form {
    width: 100%;
    grid-template-columns: 1fr;
    gap: 10px;
  }
}


@media (max-width: 1380px) {
  .site-footer.alt-footer .alt-footer-inner {
    grid-template-columns: minmax(185px,.8fr) minmax(0,300px) minmax(0,300px) max-content max-content;
    column-gap: clamp(24px, 2.4vw, 38px);
  }
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) { min-width: 0; }
  .site-footer.alt-footer .footer-columns { column-gap: 30px; }
}
@media (max-width: 1100px) {
  .site-footer.alt-footer .alt-footer-inner {
    width: calc(100vw - 36px);
    grid-template-columns: 1fr 1fr;
    grid-template-rows: auto auto auto auto;
    column-gap: 38px;
  }
  .site-footer.alt-footer .footer-left-panel { grid-column: 1 / -1; grid-row: 1; }
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) { grid-column:1; grid-row:2; }
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) { grid-column:2; grid-row:2; min-width:0; }
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) h3 { white-space: normal; }
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) button { justify-self:start; }
  .site-footer.alt-footer .footer-columns { grid-column:1 / -1; grid-row:3; justify-self:start; column-gap:52px; }
  .site-footer.alt-footer .footer-credits { grid-row:4; }
}
@media (max-width: 820px) {
  .map-zone-options { right: 8px; top: 8px; width: 42px; gap: 6px; }
  .map-zone-option { width: 42px; height: 42px; min-height: 42px; }
  .map-zone-option > img { width: 26px; height: 26px; }
  .map-controls { right: 8px; top: auto; bottom: 8px; gap: 7px; }
  .map-controls button { width: 42px; height: 42px; }
  .map-legend { width: 46px; height: 46px; transform: translateX(-50%); }
}
@media (max-width: 620px) {
  .site-footer.alt-footer .alt-footer-inner { width:calc(100vw - 28px); grid-template-columns:1fr; }
  .site-footer.alt-footer .footer-left-panel,
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1),
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2),
  .site-footer.alt-footer .footer-columns,
  .site-footer.alt-footer .footer-credits { grid-column:1; }
  .site-footer.alt-footer .footer-left-panel { grid-row:1; }
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) { grid-row:2; }
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) { grid-row:3; }
  .site-footer.alt-footer .footer-columns { grid-row:4; grid-template-columns:1fr 1.35fr; column-gap:28px; }
  .site-footer.alt-footer .footer-credits { grid-row:5; text-align:left; }
  .map-zone-options { right: 7px; top: 7px; width: 39px; gap: 5px; }
  .map-zone-option { width:39px; height:39px; min-height:39px; padding:6px; }
  .map-zone-option > img { width:24px; height:24px; }
  .map-controls { right:7px; top:auto; bottom:7px; gap:6px; }
  .map-controls button { width:39px; height:39px; font-size:22px; }
  .map-controls button img { width:23px; height:23px; }
  .map-legend { width: 42px; height: 42px; transform: translateX(-50%); }
}



/* =========================================================
   CLICK / FOCUS BORDER FEEDBACK
   Only the closest panel receives the active edge. The two
   Wandermap columns keep independent borders, preventing the
   inactive column and the outer Step 3 card from highlighting.
========================================================= */
.plan-step,
.wander-zone-button,
.wanderplan-panel,
.map-panel,
.wonder-more-form,
.footer-mini-form {
  transition: border-color 150ms ease, outline-color 150ms ease;
}

/* Steps 1 and 2 may highlight as complete sections. Step 3 is
   intentionally excluded because its left and right panels are
   independently interactive. */
.plan-step:not(.map-step).is-section-active,
.plan-step:not(.map-step):focus-within {
  border-color: var(--purple);
  box-shadow: inset 0 0 0 1px var(--purple);
}

.map-step,
.map-step:focus-within,
.map-step.is-section-active {
  border-color: #b9c5ce;
  box-shadow: none;
}

.wander-zone-button.is-section-active,
.wander-zone-button:focus-visible,
.wander-zone-button:hover {
  border-color: var(--purple);
}

/* Use a real one-pixel border instead of an inset outline. Leaflet's
   map layers can visually cover an outline, which made the selected map
   appear unhighlighted. These borders remain independent and crisp. */
.wanderplan-panel,
.map-panel {
  outline: 0;
  box-shadow: none;
  border: 1px solid #b9c5ce;
}

/* Avoid a doubled seam while both panels are inactive. */
.wanderplan-panel {
  border-right: 0;
}

/* Selecting the left planner highlights only that panel. Its right edge
   overlaps the shared seam by one pixel, so no thick double line appears. */
.wanderplan-panel.is-section-active,
.wanderplan-panel.is-panel-active {
  position: relative;
  z-index: 3;
  margin-right: -1px;
  border-color: var(--purple);
  border-right-width: 1px;
}

/* Selecting the map highlights all four edges of the map only. */
.map-panel.is-section-active,
.map-panel.is-panel-active {
  position: relative;
  z-index: 3;
  border-color: var(--purple);
}

.wonder-more-form.is-section-active,
.wonder-more-form:focus-within,
.footer-mini-form.is-section-active,
.footer-mini-form:focus-within {
  outline: 1px solid var(--purple);
  outline-offset: 6px;
}

/* =========================================================
   FINAL PANEL FRAME FIX
   The shared Step 3 heading is one shape. The planner and map below it
   are two independent rectangles, each with a complete four-sided frame.
========================================================= */
.wander-map-workspace {
  align-items: stretch;
}

.wanderplan-panel,
.map-panel {
  position: relative;
  z-index: 1;
  margin: 0 !important;
  border: 1px solid #b9c5ce !important;
  outline: 0 !important;
  box-shadow: none !important;
  background-clip: padding-box;
}

/* Keep a single neutral seam when neither side is active. */
.map-panel {
  margin-left: -1px !important;
}

/* The frame remains fixed while only the inside of the planner scrolls. */
.wanderplan-panel {
  overflow: hidden !important;
}

.wanderplan-panel-scroll {
  width: 100%;
  height: 100%;
  overflow-y: auto;
  overflow-x: hidden;
  overscroll-behavior: contain;
  scrollbar-width: thin;
  scrollbar-color: #c9b7ee #f1ebfb;
}

.wanderplan-panel-scroll::-webkit-scrollbar {
  width: 10px;
}

.wanderplan-panel-scroll::-webkit-scrollbar-track {
  background: #f1ebfb;
}

.wanderplan-panel-scroll::-webkit-scrollbar-thumb {
  min-height: 54px;
  border: 2px solid #f1ebfb;
  border-radius: 999px;
  background: #c9b7ee;
}

.wanderplan-panel-scroll::-webkit-scrollbar-thumb:hover {
  background: #b59ce6;
}

/* Only the selected lower rectangle turns purple. */
.wanderplan-panel.is-panel-active,
.wanderplan-panel.is-section-active,
.map-panel.is-panel-active,
.map-panel.is-section-active {
  z-index: 4;
  border-color: var(--purple) !important;
  box-shadow: none !important;
}

/* Remove the earlier overlap technique that hid the planner's right edge. */
.wanderplan-panel.is-panel-active,
.wanderplan-panel.is-section-active {
  margin-right: 0 !important;
  border-right-width: 1px !important;
}

@media (max-width: 820px) {
  .map-panel {
    margin-left: 0 !important;
    margin-top: -1px !important;
  }
}

/* =========================================================
   RESERVED TOP EDGE FOR STEP 3 PANELS
   Both lower rectangles always keep a one-pixel top border in the
   layout. It is transparent while inactive and changes to purple
   when that specific panel is selected, preventing any visual jump.
========================================================= */
.wanderplan-panel,
.map-panel {
  border-top: 1px solid transparent !important;
}

.wanderplan-panel.is-panel-active,
.wanderplan-panel.is-section-active,
.map-panel.is-panel-active,
.map-panel.is-section-active {
  border-top-color: var(--purple) !important;
}

/* =========================================================
   REAL USER PROFILE / ACCOUNT CONTROLS
========================================================= */
.footer-account-form {
  min-width: 0;
}

#account-auth-fields {
  display: grid;
  gap: 6px;
}

#account-auth-fields[hidden],
.account-signed-in[hidden],
.account-create-prompt[hidden],
.account-login-prompt[hidden] {
  display: none !important;
}

.account-create-prompt,
.account-login-prompt {
  margin: 8px 0 0;
  color: var(--purple);
  font-size: 10px;
  line-height: 1.4;
}

.account-text-link {
  min-height: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  color: var(--purple) !important;
  font: inherit !important;
  font-weight: 700 !important;
  text-decoration: underline;
  justify-self: auto !important;
}

.account-text-link:hover,
.account-text-link:focus-visible {
  color: var(--purple-dark) !important;
  background: transparent !important;
}

.account-actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 6px;
}

.account-actions button {
  min-height: 28px;
  border: 1px solid var(--purple);
  background: #fff;
  color: var(--purple);
  padding: 5px 10px;
  font-family: "Montserrat", Arial, sans-serif;
  font-size: 10px;
  font-weight: 700;
}

.account-actions button:hover,
.account-actions button:focus-visible,
.account-actions button:first-child {
  background: var(--purple);
  color: #fff;
}

.account-signed-in p {
  margin: 0 0 8px;
  color: #333;
  font-size: 11px;
  line-height: 1.35;
  text-align: center;
}

#footer-profile-status[data-type="success"] {
  color: #12643b;
}

#footer-profile-status[data-type="error"] {
  color: #9d1d1d;
}

@media (max-width: 1180px) {
  .account-actions {
    align-items: flex-start;
  }
}

/* =========================================================
   AW19B — JULY 30 LAYOUT REFINEMENTS
========================================================= */

/* Step 3 fills approximately one viewport and keeps the map at
   no less than 60% of the available width on tablet/desktop. */
@media (min-width: 821px) {
  .wander-map-workspace {
    grid-template-columns: minmax(300px, 34%) minmax(0, 66%);
    height: clamp(680px, calc(100vh - 86px), 1040px);
    min-height: 680px;
  }

  .wanderplan-panel,
  .map-panel,
  .map-viewport,
  .leaflet-map {
    height: 100%;
    min-height: 680px;
    max-height: none;
  }
}

/* Lighter planning-panel background requested for all visible
   blue planner surfaces in Step 3. */
.wanderplan-panel,
.route-builder,
.route-list {
  background: #CAEEFB;
}

/* Search/discovery content is vertically centered between the
   Wandermap and footer with equal space above and below. */
.wonder-more-section {
  min-height: 360px;
  margin: 0;
  padding: 36px 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

/* Compact, evenly padded footer. */
.site-footer.alt-footer {
  padding-top: 16px;
  padding-bottom: 10px;
}

.site-footer.alt-footer .footer-left-panel {
  gap: 8px;
}

.site-footer.alt-footer .footer-mark-link {
  transform: translateY(-5px);
}

.site-footer.alt-footer .footer-credits {
  margin-bottom: 0;
}

/* Increase the two footer link-group type sizes by about 30%. */
.site-footer.alt-footer .footer-col h3 {
  font-size: 17px;
}

.site-footer.alt-footer .footer-col a {
  font-size: 16px;
  line-height: 1.3;
}

.site-footer.alt-footer .footer-col {
  gap: 5px;
}

/* Desktop footer balance: profile/newsletter shift left, the two
   navigation groups shift right, and outside padding stays equal. */
@media (min-width: 1101px) {
  .site-footer.alt-footer .alt-footer-inner {
    grid-template-columns: 205px 300px 300px minmax(430px, 1fr);
    grid-template-rows: auto auto;
    column-gap: 34px;
    row-gap: 10px;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) {
    grid-column: 2;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) {
    grid-column: 3;
  }

  .site-footer.alt-footer .footer-columns {
    grid-column: 4;
    justify-self: end;
    column-gap: clamp(42px, 3vw, 64px);
  }
}

@media (max-width: 1100px) {
  .site-footer.alt-footer .alt-footer-inner {
    row-gap: 16px;
  }
}

@media (max-width: 760px) {
  .wonder-more-section {
    min-height: 300px;
    margin: 0;
    padding: 34px 0;
  }
}

/* =========================================================
   AW19B — FINAL TYPOGRAPHY, SPACING AND FOOTER ALIGNMENT
========================================================= */

/* Match the article and intro copy to the Montserrat sizing used
   throughout the Wander zone cards. */
.aw-magazine-body {
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  font-size: clamp(11px, .9vw, 14px);
  line-height: 1.35;
}

.aw-magazine-body blockquote {
  font-family: inherit;
  font-size: 1em;
  line-height: 1.35;
}

.aw-combo-intro {
  font-size: clamp(11px, .9vw, 14px);
  line-height: 1.35;
}

/* Double the breathing room before the zone guide and before
   the Wanderplan section. */
.wander-zone-card {
  margin-top: 188px;
}

.wanderplan-shell {
  margin-top: 208px;
}

/* Give the final search area equal space above and below. */
.wonder-more-section {
  min-height: 0;
  padding-top: clamp(120px, 9vw, 180px);
  padding-bottom: clamp(120px, 9vw, 180px);
}

/* Lower the footer wordmark and legal text together very slightly. */
.site-footer.alt-footer .footer-left-panel {
  transform: translateY(3px);
}

.site-footer.alt-footer .footer-mark-link {
  transform: translateY(-7px);
}

/* Match the right-side footer navigation typography to the
   compact newsletter/profile typography. */
.site-footer.alt-footer .footer-col h3 {
  font-size: 13px;
  line-height: 1.25;
}

.site-footer.alt-footer .footer-col a {
  font-size: 12px;
  line-height: 1.35;
}

/* On wide screens, center the newsletter form on the same vertical
   axis as the centered copyright line while retaining the profile
   form to its left and the navigation groups at the right edge. */
@media (min-width: 1101px) {
  .site-footer.alt-footer .alt-footer-inner {
    grid-template-columns: 205px 300px minmax(0, 1fr);
    grid-template-rows: auto auto;
    position: relative;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) {
    grid-column: 2;
    grid-row: 1;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) {
    position: absolute;
    top: 0;
    left: 50%;
    width: 300px;
    transform: translateX(-50%);
  }

  .site-footer.alt-footer .footer-columns {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
  }
}

@media (max-width: 820px) {
  .wander-zone-card {
    margin-top: 94px;
  }

  .wanderplan-shell {
    margin-top: 104px;
  }

  .wonder-more-section {
    padding-top: 80px;
    padding-bottom: 80px;
  }

  .site-footer.alt-footer .footer-left-panel {
    transform: none;
  }
}

/* =========================================================
   AW19B — HEADER, HERO, ZONE, SEARCH AND FOOTER REFINEMENTS
   July 30, 2026
========================================================= */

/* Triple the former white breathing room above and below the
   header artwork while keeping the full composition centered. */
.aw-header {
  height: 176px;
  min-height: 176px;
}

.aw-header-brand {
  padding-top: 26px;
  padding-bottom: 26px;
}

/* Place the descriptive byline to the right of the DCA title,
   align it with the title's lower edge, and retain a clear gap. */
.aw-combo-copy {
  display: flex;
  align-items: flex-end;
  gap: clamp(32px, 3.4vw, 64px);
}

.aw-combo-title {
  flex: 0 0 auto;
  margin: 0;
}

.aw-combo-intro {
  flex: 1 1 560px;
  max-width: 760px;
  margin: 0 0 7px;
}

/* Match the generous section rhythm used elsewhere on the page. */
.aw-magazine-article {
  margin-top: clamp(140px, 10vw, 188px);
}

/* Use the requested pale blue for selected/hovered zone surfaces,
   their outer border/focus outline, and the highlighted icon. */
.wander-zone-button:hover,
.wander-zone-button.is-active {
  background: #CAEEFB;
  border-color: #CAEEFB;
}

.wander-zone-button:focus-visible {
  outline-color: #CAEEFB;
}

.wander-zone-button:hover .wander-zone-icon,
.wander-zone-button.is-active .wander-zone-icon {
  filter: brightness(0) saturate(100%) invert(91%) sepia(15%) saturate(594%) hue-rotate(166deg) brightness(101%) contrast(97%);
}

/* Add more breathing room above the final search section while
   preserving its existing lower spacing. */
.wonder-more-section {
  padding-top: clamp(200px, 14vw, 300px);
}

/* Wide desktop: keep the newsletter centered on the footer's page
   axis and place the profile form immediately to its left. */
@media (min-width: 1450px) {
  .site-footer.alt-footer .alt-footer-inner {
    grid-template-columns: 205px minmax(0, 1fr);
    position: relative;
  }

  .site-footer.alt-footer .footer-signup-stack {
    display: contents;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) {
    position: absolute;
    top: 0;
    left: calc(50% - 474px);
    width: 300px;
    transform: none;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) {
    position: absolute;
    top: 0;
    left: 50%;
    width: 300px;
    transform: translateX(-50%);
  }

  .site-footer.alt-footer .footer-columns {
    grid-column: 2;
    grid-row: 1;
    justify-self: end;
  }
}

/* Mid-size desktop: keep the forms together in the middle without
   allowing them to collide with the logo or navigation columns. */
@media (min-width: 1101px) and (max-width: 1449px) {
  .site-footer.alt-footer .alt-footer-inner {
    grid-template-columns: 205px minmax(0, 1fr) max-content;
    column-gap: 20px;
  }

  .site-footer.alt-footer .footer-signup-stack {
    grid-column: 2;
    grid-row: 1;
    display: grid;
    grid-template-columns: repeat(2, minmax(250px, 300px));
    gap: 24px;
    justify-content: center;
    align-items: start;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1),
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) {
    position: static;
    width: 100%;
    transform: none;
  }

  .site-footer.alt-footer .footer-columns {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
  }
}

@media (max-width: 820px) {
  .aw-header {
    height: 142px;
    min-height: 142px;
  }

  .aw-header-brand {
    padding-top: 16px;
    padding-bottom: 16px;
  }

  .aw-combo-copy {
    display: grid;
    align-items: start;
    gap: 22px;
  }

  .aw-combo-intro {
    margin: 0;
  }

  .aw-magazine-article {
    margin-top: 94px;
  }

  .wonder-more-section {
    padding-top: 120px;
  }
}


/* =========================================================
   AW19B — FINAL MAP, TYPE AND CONTROL REFINEMENTS
   July 30, 2026
========================================================= */

:root {
  --aw-caption-font-size: clamp(11px, .9vw, 14px);
  --aw-caption-line-height: 1.35;
}

/* Bring the descriptive byline halfway closer to the title and
   halve the former gap before the magazine article. */
.aw-combo-copy {
  gap: clamp(16px, 1.7vw, 32px);
}

.aw-magazine-article {
  margin-top: clamp(70px, 5vw, 94px);
}

/* Make the pull quote more prominent while preserving the current
   article typeface. */
.aw-magazine-body blockquote {
  padding-left: 18px;
  border-left-width: 8px;
  font-size: 1.5em;
  line-height: 1.35;
}

/* Article and Wander-zone photo captions now use the same type
   family, size and spacing as the article body. */
.aw-magazine-photo-caption,
.wander-zone-photo-caption {
  gap: 1px;
  margin-top: 8px;
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  font-size: var(--aw-caption-font-size);
  line-height: var(--aw-caption-line-height);
}

.aw-magazine-photo-caption em,
.wander-zone-photo-caption em {
  font-style: italic;
}

/* Enlarge both header illustrations without shifting their captions. */
.aw-header-side-icon--layover {
  width: min(88%, 340px);
  max-width: 92%;
  height: 104px;
  transform: translate(1px, 9px);
}

.aw-header-side-icon--stories {
  width: min(78%, 112px);
  max-width: 88%;
  height: 82px;
  transform: translate(9px, 12px);
}

/* Neutral pale-blue frames; purple only when active, hovered or focused. */
.wander-zone-button {
  border-color: #CAEEFB;
  border-top-color: #CAEEFB;
}

.wander-zone-button:hover,
.wander-zone-button.is-active,
.wander-zone-button.is-section-active,
.wander-zone-button:focus-visible {
  border-color: var(--purple);
  background: #CAEEFB;
  outline: 0;
  box-shadow: none;
}

/* Step 1 and Step 2 field areas share caption typography. */
.flight-block,
.safety-controls,
.safe-breakdown,
.flight-block input,
.safety-controls select,
.safety-controls .check-control {
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  font-size: var(--aw-caption-font-size);
  line-height: var(--aw-caption-line-height);
}

.flight-block-title,
.field > span,
.assumption-control > span,
.safe-breakdown,
.safe-breakdown span,
.safe-breakdown strong {
  font-size: var(--aw-caption-font-size);
  line-height: var(--aw-caption-line-height);
  letter-spacing: 0;
}

.field > span,
.assumption-control > span {
  text-align: center;
}

.field input,
.assumption-control select,
.check-control {
  font-size: var(--aw-caption-font-size);
  font-weight: 500;
}

.field input {
  text-align: center;
}

.safety-controls .assumption-control select,
.safety-controls .check-control {
  width: 82%;
  justify-self: center;
}

.flight-block--inbound,
.safety-controls--left {
  background: #fff0f4;
}

.flight-block--outbound,
.safety-controls--right {
  background: #eefcef;
}

/* Use the same purple employed by footer controls. */
.action-button {
  border-color: var(--purple);
  color: var(--purple);
}

.action-button--primary,
.action-button:hover,
.action-button:focus-visible {
  border-color: var(--purple);
  background: var(--purple);
  color: #fff;
}

/* Very light neutral surface behind the map selector controls. */
.map-platform-bar {
  background: #f5f6f7;
}

/* Match all Step 3 planner type to the article/photo-caption system. */
.wanderplan-panel,
.route-builder-heading h4,
.map-platform-control span,
.map-platform-control select,
.map-platform-status,
.action-button,
.add-stop-row select,
.route-copy strong,
.route-copy small,
.route-time strong,
.route-time b,
.route-detail-content p,
.route-detail-contact,
.route-stop-duration span,
.route-stop-duration select,
.route-controls button,
.panel-interaction-note {
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  font-size: var(--aw-caption-font-size);
  line-height: var(--aw-caption-line-height);
  letter-spacing: 0;
}

.route-copy strong,
.route-copy small,
.route-time strong,
.route-time b {
  font-size: var(--aw-caption-font-size);
}

.action-button,
.add-stop-row select,
.map-platform-control select {
  min-height: 32px;
}

/* Route icons match the 44px map controls and use larger symbols. */
.route-summary {
  grid-template-columns: 48px minmax(0, 1fr) 32px minmax(80px, auto);
  min-height: 78px;
}

.route-index {
  width: 44px;
  height: 44px;
  font-size: 18px;
}

/* Fixed top-center zone icon: it no longer jumps during zoom, drag,
   mouse-wheel use or zone changes. */
.map-legend {
  left: 50% !important;
  top: 8px !important;
  width: 48px;
  height: 48px;
}

.map-zone-option:hover,
.map-zone-option.is-active {
  transform: translateY(-7px);
}

/* Full-screen control icon. */
.map-controls button svg {
  width: 25px;
  height: 25px;
  display: block;
}

#map-fullscreen.is-active {
  background: var(--purple);
  color: #fff;
}

/* Step 3 full-screen mode preserves the planner/map split and uses
   the entire available display. */
.map-step:fullscreen {
  width: 100vw;
  height: 100vh;
  margin: 0;
  display: flex;
  flex-direction: column;
  background: #fff;
  overflow: hidden;
}

.map-step:fullscreen .step-heading {
  flex: 0 0 auto;
}

.map-step:fullscreen .wander-map-workspace {
  flex: 1 1 auto;
  width: 100%;
  height: auto;
  min-height: 0;
  grid-template-columns: minmax(300px, 34%) minmax(0, 66%);
}

.map-step:fullscreen .wanderplan-panel,
.map-step:fullscreen .map-panel,
.map-step:fullscreen .map-viewport,
.map-step:fullscreen .leaflet-map {
  height: 100%;
  min-height: 0;
  max-height: none;
}

@media (max-width: 820px) {
  .aw-header-side-icon--layover {
    width: 76px;
    height: 60px;
  }

  .aw-header-side-icon--stories {
    width: 54px;
    height: 54px;
  }

  .aw-combo-copy {
    gap: 16px;
  }

  .aw-magazine-article {
    margin-top: 47px;
  }

  .safety-controls .assumption-control select,
  .safety-controls .check-control {
    width: 100%;
  }

  .map-step:fullscreen .wander-map-workspace {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   AW19B — GREY TYPE, UNIFORM FIELDS + ZONE-CENTERED MAP
   July 30, 2026
========================================================= */

:root {
  --aw-neutral-grey: #9a9a9a;
}

/* Page-title byline uses the same editorial face as the pull quote. */
.aw-combo-intro,
.aw-magazine-body blockquote {
  color: var(--aw-neutral-grey);
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-style: italic;
}

.aw-combo-intro {
  font-size: clamp(14px, 1.05vw, 18px);
  line-height: 1.38;
}

.aw-magazine-body blockquote {
  border-left-color: var(--sky);
}

/* Use one neutral grey for every editorial photo caption. */
.aw-magazine-photo-caption,
.wander-zone-photo-caption,
.aw-magazine-photo-caption span,
.aw-magazine-photo-caption em,
.wander-zone-photo-caption span,
.wander-zone-photo-caption em {
  color: var(--aw-neutral-grey);
}

/* Inactive Wander-zone frames are grey; active/hovered frames stay purple. */
.wander-zone-button {
  border-color: var(--aw-neutral-grey);
  border-top-color: var(--aw-neutral-grey);
}

.wander-zone-button:hover,
.wander-zone-button.is-active,
.wander-zone-button.is-section-active,
.wander-zone-button:focus-visible {
  border-color: var(--purple);
}

/* Step 1: five equal-width fields on each side and one uniform control height. */
.flight-fields {
  grid-template-columns: repeat(5, minmax(0, 1fr));
  align-items: end;
}

.field {
  grid-template-rows: minmax(32px, auto) 40px;
  align-content: end;
}

.field > span {
  min-height: 32px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  text-align: center;
}

.field input {
  width: 100%;
  min-width: 0;
  height: 40px;
  min-height: 40px;
  padding-top: 6px;
  padding-bottom: 6px;
}

/* Step 2: match the field height used above and keep all three bands equal. */
.wandersafe-ribbon {
  align-items: stretch;
}

.wandersafe-ribbon > * {
  min-height: 120px;
}

.assumption-control {
  grid-template-rows: minmax(32px, auto) 40px;
  align-content: center;
}

.assumption-control > span {
  min-height: 32px;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  text-align: center;
}

.safety-controls .assumption-control select,
.safety-controls .check-control {
  height: 40px;
  min-height: 40px;
}

/* Center the three Step 3 selector headings above their controls. */
.map-platform-control span {
  display: block;
  text-align: center;
}



/* =========================================================
   AW19B — STATIONARY ZONES, NEUTRAL FRAMES + FOOTER PAIRING
   July 30, 2026
========================================================= */

:root {
  --aw-section-border: #d8dde3;
}

/* Extend the hero byline through the remaining row and remove italics
   while retaining the editorial Playfair face and established grey. */
.aw-combo-intro {
  flex: 1 1 auto;
  width: auto;
  max-width: none;
  padding-right: 0;
  font-style: normal;
}

/* The pull quote keeps its current editorial size and grey treatment,
   but is no longer italic. */
.aw-magazine-body blockquote {
  font-style: normal;
}

/* Use the same quiet light-grey edge on every inactive content section. */
.wander-zone-button,
.plan-step,
.map-step,
.wanderplan-panel,
.map-panel {
  border-color: var(--aw-section-border) !important;
}

.wanderplan-panel,
.map-panel {
  border-top-color: var(--aw-section-border) !important;
}

/* Purple remains reserved for the section or panel that is actively used. */
.wander-zone-button:hover,
.wander-zone-button.is-active,
.wander-zone-button.is-section-active,
.wander-zone-button:focus-visible,
.plan-step:not(.map-step).is-section-active,
.plan-step:not(.map-step):focus-within,
.wanderplan-panel.is-panel-active,
.wanderplan-panel.is-section-active,
.map-panel.is-panel-active,
.map-panel.is-section-active {
  border-color: var(--purple) !important;
}

.wanderplan-panel.is-panel-active,
.wanderplan-panel.is-section-active,
.map-panel.is-panel-active,
.map-panel.is-section-active {
  border-top-color: var(--purple) !important;
}

/* Restore the compact profile layout and place the newsletter directly
   beside it without changing the profile column's established position. */
#account-auth-fields {
  display: grid;
  grid-template-columns: 1fr;
  gap: 6px;
}

#account-auth-fields > button {
  justify-self: center;
}

.account-create-prompt,
.account-login-prompt {
  display: block;
}

@media (min-width: 1101px) {
  .site-footer.alt-footer .alt-footer-inner {
    grid-template-columns: 205px minmax(520px, 624px) minmax(0, 1fr);
    grid-template-rows: auto auto;
    column-gap: clamp(24px, 2.4vw, 44px);
    position: relative;
  }

  .site-footer.alt-footer .footer-left-panel {
    grid-column: 1;
    grid-row: 1;
  }

  .site-footer.alt-footer .footer-signup-stack {
    position: static;
    grid-column: 2;
    grid-row: 1;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 300px));
    gap: 24px;
    justify-content: start;
    align-items: start;
    min-width: 0;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1),
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) {
    position: static;
    inset: auto;
    width: 100%;
    min-width: 0;
    transform: none;
  }

  .site-footer.alt-footer .footer-columns {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
  }

  .site-footer.alt-footer .footer-credits {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

@media (min-width: 1101px) and (max-width: 1240px) {
  .site-footer.alt-footer .alt-footer-inner {
    grid-template-columns: 205px minmax(0, 1fr);
  }

  .site-footer.alt-footer .footer-signup-stack {
    grid-column: 2;
    grid-row: 1;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .site-footer.alt-footer .footer-columns {
    grid-column: 2;
    grid-row: 2;
    justify-self: start;
    margin-top: 18px;
  }

  .site-footer.alt-footer .footer-credits {
    grid-row: 3;
  }
}

/* =========================================================
   AW19B — COMPACT FORM FIELDS, WIDER LAYOVER SUMMARIES,
   CENTERED NEWSLETTER
   July 30, 2026
========================================================= */

/* Give the two middle calculation summaries more room while the
   surrounding form controls become compact and content-proportioned. */
.flight-ribbon,
.wandersafe-ribbon {
  grid-template-columns: minmax(0, 1fr) clamp(190px, 12vw, 230px) minmax(0, 1fr);
}

/* Step 1: compact field widths with deliberate space between controls. */
.flight-fields {
  grid-template-columns:
    clamp(82px, 5.4vw, 108px)
    clamp(90px, 6vw, 120px)
    clamp(90px, 6vw, 120px)
    clamp(122px, 8.4vw, 158px)
    clamp(110px, 7.2vw, 142px);
  justify-content: space-between;
  column-gap: 8px;
}

.field input {
  width: 100%;
  max-width: 100%;
}

/* Step 2: keep its controls compact instead of stretching across
   the full pink and green panels. */
.safety-controls--left,
.safety-controls--right {
  grid-template-columns: minmax(230px, 330px) minmax(210px, 270px);
  justify-content: space-around;
  column-gap: clamp(18px, 2vw, 34px);
}

.safety-controls .assumption-control select,
.safety-controls .check-control,
.safe-breakdown {
  width: 100%;
  max-width: 100%;
  justify-self: stretch;
}

/* Both center summaries now use the same light-purple surface and
   larger purple typography. */
.connection-block,
.wandersafe-summary {
  min-width: 0;
  padding: 12px 10px;
  border-left: 1px solid #d9cdf8;
  border-right: 1px solid #d9cdf8;
  background: #eee8ff;
  color: var(--purple);
}

.connection-label,
.wandersafe-summary > span {
  color: var(--purple);
  font-size: clamp(11px, .72vw, 14px);
  font-weight: 800;
  line-height: 1.15;
  letter-spacing: .02em;
}

.connection-code {
  margin-top: 4px;
  color: var(--purple);
  font-size: clamp(30px, 2.35vw, 40px);
  font-weight: 800;
  line-height: .98;
}

.wandersafe-summary strong {
  width: auto;
  margin: 5px 0 0;
  padding: 0;
  background: transparent;
  color: var(--purple);
  font-size: clamp(20px, 1.55vw, 27px);
  font-weight: 800;
  line-height: .96;
}

.connection-duration,
.wandersafe-summary b {
  margin-top: 7px;
  padding: 4px 9px;
  background: rgba(85, 34, 176, .09);
  color: var(--purple);
  font-size: clamp(11px, .75vw, 14px);
  font-weight: 800;
}

.connection-block small,
.wandersafe-summary small {
  margin-top: 6px;
  color: var(--purple);
  font-size: clamp(10px, .68vw, 13px);
  font-weight: 650;
  line-height: 1.2;
}

/* Wide desktop footer: keep the account block in its existing area,
   widen it enough for one-line text, and place the newsletter exactly
   on the horizontal centerline of the page. */
@media (min-width: 1250px) {
  .site-footer.alt-footer .alt-footer-inner {
    grid-template-columns: 205px minmax(0, 1fr) max-content;
    grid-template-rows: auto auto;
    min-height: 176px;
    position: relative;
  }

  .site-footer.alt-footer .footer-signup-stack {
    position: static;
    display: contents;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) {
    position: absolute;
    top: 0;
    left: calc(50% - 372px);
    width: 340px;
    min-width: 340px;
    transform: none;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) h3,
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) .account-create-prompt,
  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) .account-login-prompt {
    white-space: nowrap;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) input {
    width: 300px;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) {
    position: absolute;
    top: 0;
    left: 50%;
    width: 300px;
    min-width: 300px;
    transform: translateX(-50%);
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) input {
    width: 300px;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) button {
    justify-self: center;
  }

  .site-footer.alt-footer .footer-columns {
    grid-column: 3;
    grid-row: 1;
    justify-self: end;
  }

  .site-footer.alt-footer .footer-credits {
    grid-column: 1 / -1;
    grid-row: 2;
  }
}

/* Preserve readable responsive behavior below the wide-desktop layout. */
@media (max-width: 1449px) and (min-width: 821px) {
  .flight-fields {
    grid-template-columns: repeat(5, minmax(78px, 1fr));
  }

  .safety-controls--left,
  .safety-controls--right {
    grid-template-columns: minmax(0, 1.2fr) minmax(0, .9fr);
  }
}

@media (max-width: 820px) {
  .flight-ribbon,
  .wandersafe-ribbon {
    grid-template-columns: 1fr;
  }

  .flight-fields,
  .safety-controls--left,
  .safety-controls--right {
    grid-template-columns: 1fr;
  }
}

/* =========================================================
   AW19B — EQUAL COMPACT FIELD WIDTHS + 25% WIDER SUMMARIES
   July 30, 2026
========================================================= */

/* Expand both center summary panels by roughly 25% while tightening
   the spacing between the surrounding form fields. */
@media (min-width: 821px) {
  .flight-ribbon,
  .wandersafe-ribbon {
    grid-template-columns: minmax(0, 1fr) clamp(240px, 15vw, 288px) minmax(0, 1fr);
  }

  .flight-fields {
    column-gap: 5px;
  }
}

/* Wide desktop: every ordinary Step 1 field matches the Destination
   field width. Only the two date fields are slightly wider so their
   headings remain on one line. */
@media (min-width: 1450px) {
  .flight-block--inbound .flight-fields {
    grid-template-columns:
      repeat(3, clamp(112px, 7vw, 138px))
      clamp(158px, 9vw, 176px)
      clamp(112px, 7vw, 138px);
    justify-content: center;
  }

  .flight-block--outbound .flight-fields {
    grid-template-columns:
      clamp(112px, 7vw, 138px)
      clamp(158px, 9vw, 176px)
      repeat(3, clamp(112px, 7vw, 138px));
    justify-content: center;
  }
}

/* Mid-size desktop: preserve equal ordinary field widths while letting
   the date column take only the extra space it needs. */
@media (min-width: 821px) and (max-width: 1449px) {
  .flight-block--inbound .flight-fields {
    grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(132px, 1.22fr) minmax(0, 1fr);
  }

  .flight-block--outbound .flight-fields {
    grid-template-columns: minmax(0, 1fr) minmax(132px, 1.22fr) repeat(3, minmax(0, 1fr));
  }
}

/* =========================================================
   AW19B — LIVE LAYOVER + WANDERSAFE RESULT SENTENCES
   July 30, 2026
========================================================= */

/* Each result uses a shared two-column grid: the sentence stays to the left,
   while the hour/minute boxes occupy fixed columns. This keeps every number,
   “hr,” and “min” vertically aligned across all rows. */
.plan-result-sentence {
  width: 100%;
  margin: 0;
  padding: clamp(24px, 2.55vw, 42px) clamp(14px, 1.2vw, 22px);
  display: grid;
  grid-template-columns: max-content max-content;
  justify-content: center;
  align-items: center;
  gap: clamp(8px, .72vw, 13px) .42em;
  border-top: 1px solid #d2d2d2;
  background: #fff;
  color: var(--purple);
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  font-size: clamp(21px, 2.05vw, 33px);
  font-weight: 650;
  line-height: 1.08;
  letter-spacing: -.03em;
}

.plan-result-row {
  display: contents;
}

.plan-result-label {
  min-width: 0;
  text-align: right;
  white-space: nowrap;
}

.plan-result-value {
  display: grid;
  grid-template-columns: 1.72em max-content 1.72em max-content;
  align-items: center;
  column-gap: .22em;
  white-space: nowrap;
}

.plan-result-number {
  width: 1.72em;
  height: 1.42em;
  display: inline-grid;
  place-items: center;
  margin: 0;
  padding: 0 .12em;
  border: 1px solid #d9cdf8;
  background: #eee8ff;
  color: var(--purple);
  font-variant-numeric: tabular-nums;
  line-height: 1;
}

.plan-result-unit {
  display: inline-flex;
  height: 1.42em;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

/* A missing or incomplete date/time leaves an obvious neutral placeholder.
   Its text is black while the requested light-purple surface remains. */
.plan-result-number.is-empty {
  color: #111;
}

@media (max-width: 820px) {
  .plan-result-sentence {
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 11px;
    padding: 22px 12px;
    font-size: clamp(19px, 6.4vw, 27px);
  }

  .plan-result-row {
    width: 100%;
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    justify-items: center;
    gap: 7px;
  }

  .plan-result-label {
    text-align: center;
    white-space: normal;
  }
}

/* =========================================================
   AW19B — FOOTER BALANCE + CENTERED RESULT VALUES
   July 30, 2026
========================================================= */

/* Keep each hour/minute value group on the exact horizontal centerline.
   The descriptive copy occupies the matching space to its left. */
.plan-result-sentence {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: clamp(8px, .72vw, 13px);
}

.plan-result-row {
  width: 100%;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
  align-items: center;
  column-gap: .42em;
}

.plan-result-label {
  grid-column: 1;
  justify-self: end;
  text-align: right;
}

.plan-result-value {
  grid-column: 2;
  justify-self: center;
}

/* Restore the balanced one-row desktop footer composition shown in the
   approved reference: brand left, profile and newsletter through the
   middle, navigation groups at the right, and copyright centered below. */
@media (min-width: 1101px) {
  .site-footer.alt-footer .alt-footer-inner {
    width: var(--content-width);
    min-height: 156px;
    display: grid;
    grid-template-columns: 20% 20% 20% minmax(24px, 1fr) max-content !important;
    grid-template-rows: auto auto !important;
    column-gap: 2.5% !important;
    row-gap: 22px;
    align-items: start;
  }

  .site-footer.alt-footer .footer-left-panel {
    position: static;
    grid-column: 1 !important;
    grid-row: 1 !important;
  }

  .site-footer.alt-footer .footer-signup-stack {
    position: static !important;
    display: contents !important;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(1) {
    position: static !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    width: min(100%, 300px) !important;
    min-width: 0 !important;
    transform: none !important;
    justify-self: start;
  }

  .site-footer.alt-footer .footer-signup-stack .footer-mini-form:nth-child(2) {
    position: static !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
    width: min(100%, 300px) !important;
    min-width: 0 !important;
    transform: none !important;
    justify-self: start;
  }

  .site-footer.alt-footer .footer-columns {
    position: static;
    grid-column: 5 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    align-self: start;
  }

  .site-footer.alt-footer .footer-credits {
    grid-column: 1 / -1 !important;
    grid-row: 2 !important;
    justify-self: stretch;
    text-align: center;
  }
}

@media (max-width: 820px) {
  .plan-result-sentence {
    display: flex;
    align-items: stretch;
  }

  .plan-result-row {
    grid-template-columns: 1fr;
    justify-items: center;
    row-gap: 7px;
  }

  .plan-result-label,
  .plan-result-value {
    grid-column: 1;
    justify-self: center;
  }
}

/* =========================================================
   AW19B — INBOUND HEADING ALIGNMENT + CLEAN WANDERSAFE PANEL
   July 30, 2026
========================================================= */

/* Place the inbound section heading against the center-summary side. */
.flight-block--inbound .flight-block-title {
  width: 100%;
  padding-right: 2px;
  text-align: right;
}

/* Remove the duplicate ready/return breakdown from inside Step 2. */
.safe-breakdown {
  display: none !important;
}

/* Let the remaining Before Departure control use the available green panel. */
.safety-controls--right {
  grid-template-columns: minmax(230px, 420px) !important;
  justify-content: center;
}

@media (max-width: 820px) {
  .flight-block--inbound .flight-block-title {
    text-align: left;
  }

  .safety-controls--right {
    grid-template-columns: 1fr !important;
  }
}

.aw-magazine-header h2,
.wander-zone-heading h2,
.major-section-heading h2,
.wonder-more-title {
  font-size: clamp(32px, 3.2vw, 52px);
}
/* =========================================================
   AW19B — WONDER SEARCH PROMPT + RESULTS PAGE
   July 31, 2026
========================================================= */
.wonder-more-form {
  align-items: start;
}

.wonder-search-column {
  min-width: 0;
  display: grid;
  gap: 11px;
}

.wonder-search-field {
  position: relative;
  width: 100%;
}

.wonder-more-form .wonder-search-field input[type="search"] {
  padding-right: 52px;
  background-image: none;
}

.wonder-search-submit {
  position: absolute;
  top: 50%;
  right: 7px;
  width: 36px;
  height: 36px;
  display: grid;
  place-items: center;
  padding: 0;
  transform: translateY(-50%);
  border: 0;
  border-radius: 7px;
  background: transparent;
  color: #7b8792;
}

.wonder-search-submit svg {
  width: 21px;
  height: 21px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
}

.wonder-search-field:focus-within .wonder-search-submit,
.wonder-search-submit:hover,
.wonder-search-submit:focus-visible {
  color: var(--purple);
}

.wonder-search-submit:hover {
  background: #f3efff;
}

.wonder-search-examples {
  display: grid;
  gap: 5px;
  padding-left: 14px;
  color: #a0a7ae;
  font-family: "Montserrat", Arial, Helvetica, sans-serif;
  font-size: 13px;
  line-height: 1.38;
  text-align: left;
}

.wonder-search-examples p {
  margin: 0;
}

/* Search results page */
.search-results-page {
  min-height: 100vh;
  background: #fff;
  color: var(--dark-blue);
}

.search-results-main {
  width: var(--content-width);
  margin: 0 auto;
  padding: clamp(64px, 7vw, 112px) 0 100px;
}

.search-results-back {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  margin-bottom: 34px;
  color: var(--purple);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
}

.search-results-heading {
  margin: 0;
  color: var(--purple);
  font-size: clamp(34px, 4vw, 60px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: -.045em;
}

.search-results-summary {
  max-width: 900px;
  margin: 18px 0 0;
  color: #7d858d;
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-size: clamp(15px, 1.15vw, 19px);
  line-height: 1.45;
}

.search-results-form {
  width: min(920px, 100%);
  display: grid;
  grid-template-columns: minmax(0, 1.65fr) minmax(220px, .8fr) auto;
  gap: 10px;
  margin-top: 36px;
}

.search-results-form input,
.search-results-form select,
.search-results-form button {
  min-height: 44px;
  border: 1px solid #ccd6df;
  border-radius: 8px;
  font: 13px "Montserrat", Arial, Helvetica, sans-serif;
}

.search-results-form input,
.search-results-form select {
  width: 100%;
  padding: 0 13px;
  background: #fff;
  color: var(--dark-blue);
}

.search-results-form button {
  padding: 0 22px;
  border-color: var(--purple);
  background: #fff;
  color: var(--purple);
  font-weight: 750;
}

.search-results-form button:hover {
  background: var(--purple);
  color: #fff;
}

.search-results-list {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(18px, 2vw, 30px);
  margin-top: 56px;
}

.search-result-card {
  overflow: hidden;
  border: 1px solid #d0d5da;
  background: #fff;
}

.search-result-card img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.search-result-copy {
  padding: 17px 18px 20px;
}

.search-result-copy h2 {
  margin: 0;
  color: var(--purple);
  font-size: 20px;
  line-height: 1.12;
}

.search-result-meta {
  margin: 7px 0 0;
  color: #8b9298;
  font-family: "Playfair Display", Georgia, "Times New Roman", serif;
  font-size: 13px;
  font-style: italic;
}

.search-result-copy p:not(.search-result-meta) {
  margin: 12px 0 0;
  color: #526c80;
  font-size: 13px;
  line-height: 1.48;
}

.search-result-copy a {
  display: inline-block;
  margin-top: 14px;
  color: var(--purple);
  font-size: 12px;
  font-weight: 750;
}

.search-results-empty {
  grid-column: 1 / -1;
  padding: 40px;
  border: 1px solid #d0d5da;
  color: #707982;
  text-align: center;
}

@media (max-width: 900px) {
  .wonder-search-examples {
    padding-left: 14px;
  }

  .search-results-form {
    grid-template-columns: 1fr;
  }

  .search-results-list {
    grid-template-columns: 1fr;
  }
}


/* =========================================================
   AW GLOBAL COMPACT HEADER — AUGUST 2026
   Crops the former 176px header to the user-marked 112px band.
========================================================= */
.aw-header {
  height: 112px;
  min-height: 112px;
}
.aw-header-brand {
  padding-top: 0;
  padding-bottom: 0;
  transform: translateY(-8px);
}
.aw-header-center {
  transform: translateY(4px);
}
.aw-header-side-icon--layover {
  width: min(88%, 340px);
  max-width: 92%;
  height: 104px;
  transform: translate(1px, 9px) scale(1.17);
  transform-origin: center center;
}
.aw-header-side-icon--stories {
  width: min(68%, 96px);
  max-width: 80%;
  height: 70px;
  transform: translate(9px, 8px);
}
.aw-header-icon-caption {
  bottom: 11px;
}
.updates-ticker {
  border-bottom-color: #d8dde3;
}

/* Landing page: keep the wordmark visible while the hero is in view.
   The supporting header artwork and text reveal once the hero is passed. */
body.home-page .aw-header {
  position: sticky;
  top: 0;
  z-index: 1000;
}
body.home-page .aw-header-icon-slot,
body.home-page .aw-header-tagline {
  transition:
    opacity 1.35s ease,
    transform 1.35s cubic-bezier(.2,.75,.2,1),
    filter 1.35s ease;
  will-change: opacity, transform;
}
body.home-page:not(.aw-home-header-expanded) .aw-header-icon-slot {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-7px) scale(.965);
  filter: blur(2px);
}
body.home-page:not(.aw-home-header-expanded) .aw-header-tagline {
  opacity: 0;
  visibility: hidden;
  transform: translateY(-5px);
  filter: blur(1.5px);
}
body.home-page.aw-home-header-expanded .aw-header-icon-slot,
body.home-page.aw-home-header-expanded .aw-header-tagline {
  opacity: 1;
  visibility: visible;
  transform: none;
  filter: none;
}

@media (max-width: 820px) {
  .aw-header { height: 112px; min-height: 112px; }
  .aw-header-brand { padding-top: 0; padding-bottom: 0; transform: translateY(-5px); }
  .aw-header-center { transform: translateY(3px); }
  .aw-header-side-icon--layover {
    width: 76px;
    height: 60px;
    transform: translate(0, 6px) scale(1.10);
  }
}

@media (max-width: 600px) {
  .aw-header { height: 96px; min-height: 96px; }
  .aw-header-brand { transform: translateY(-3px); }
  .aw-header-center { transform: translateY(2px); }
  .aw-header-side-icon--layover {
    width: 52px;
    height: 40px;
    transform: translate(0, 4px) scale(1.06);
  }
}

@media (prefers-reduced-motion: reduce) {
  body.home-page .aw-header-icon-slot,
  body.home-page .aw-header-tagline { transition-duration: .01ms; }
}

/* =========================================================
   AW GLOBAL RHYTHM + COMPACT TICKER — AUGUST 2026 REVISION
   Final shared overrides for every WanderPort page.
========================================================= */
:root {
  --content-width: min(92vw, 1420px);
  --aw-section-space: clamp(92px, 7vw, 140px);
  --aw-section-title-size: clamp(38px, 3.8vw, 62px);
}

.aw-header-tagline {
  position: relative;
  top: -7px;
}

/* Match the landing-page ticker palette and proportions. */
.updates-ticker {
  min-height: 30px;
  background: var(--sky);
  color: #286487;
  border-top: 1px solid #d8dde3;
  border-bottom: 1px solid #d8dde3;
}
.updates-ticker-set { min-height: 30px; }
.ticker-item {
  gap: 9px;
  padding: 4px 36px 4px 0;
  color: #286487;
  font-size: 10.5px;
  line-height: 1;
}
.ticker-pill {
  min-height: 18px;
  padding: 1px 9px;
  background: #fff;
  color: #747b82;
  font-size: 9px;
  line-height: 1;
  text-transform: none;
  letter-spacing: 0;
}

/* Narrower, proportional content frame. */
.aw-main,
.search-results-main {
  width: var(--content-width) !important;
}
.aw-main {
  padding-top: var(--aw-section-space) !important;
  padding-bottom: 0 !important;
}

/* One public section-heading system on every airport page. */
.aw-magazine-header h2,
.wander-zone-heading h2,
.major-section-heading h2,
.wonder-more-title,
.search-results-heading {
  color: var(--purple) !important;
  font-family: "Montserrat", Arial, Helvetica, sans-serif !important;
  font-size: var(--aw-section-title-size) !important;
  font-weight: 700 !important;
  line-height: .98 !important;
  letter-spacing: -.045em !important;
}

/* Consistent vertical rhythm between the airport-page sections. */
.aw-magazine-article,
.wander-zone-card,
.wanderplan-shell {
  margin-top: var(--aw-section-space) !important;
}
.plan-step + .plan-step {
  margin-top: var(--aw-section-space) !important;
}
.wonder-more-section {
  min-height: 0 !important;
  margin: 0 !important;
  padding-top: var(--aw-section-space) !important;
  padding-bottom: var(--aw-section-space) !important;
}
.search-results-main {
  padding-top: var(--aw-section-space) !important;
  padding-bottom: var(--aw-section-space) !important;
}

@media (max-width: 820px) {
  :root {
    --content-width: min(92vw, 760px);
    --aw-section-space: clamp(64px, 12vw, 92px);
    --aw-section-title-size: clamp(34px, 8vw, 50px);
  }
  .aw-header-tagline { top: -4px; }
  .updates-ticker,
  .updates-ticker-set { min-height: 28px; }
  .ticker-item { padding-top: 3px; padding-bottom: 3px; }
}

/* Pin the two-line statement to the header divider on every WanderPort page. */
.aw-header-center{
  position:relative;
  height:100%;
}
.aw-header-tagline{
  position:absolute;
  left:50%;
  top:auto;
  bottom:-2px;
  transform:translateX(-50%);
}
@media(max-width:820px){.aw-header-tagline{bottom:-1px}}
.aw-header-center{height:112px;max-height:112px}
@media(max-width:600px){.aw-header-center{height:96px;max-height:96px}}
.aw-header-tagline{bottom:4px}
@media(max-width:820px){.aw-header-tagline{bottom:3px}}

/* =========================================================
   AUGUST 11 2026 — DCA WANDERMAP ROUTE REFINEMENTS
   Route stop markers mirror the numbered purple circles in the planner.
========================================================= */
body.dca-wanderport-page .aw-leaflet-marker{
  display:grid !important;
  place-items:center !important;
  border:0 !important;
  background:transparent !important;
}
body.dca-wanderport-page .aw-leaflet-marker > span{
  width:100%;
  height:100%;
  display:grid;
  place-items:center;
  box-sizing:border-box;
  border:2px solid var(--purple);
  border-radius:50%;
  background:#ffffff;
  color:var(--purple);
  font-family:"Montserrat",Arial,Helvetica,sans-serif;
  font-size:13px;
  font-weight:700;
  line-height:1;
  box-shadow:0 2px 7px rgba(8,41,71,.14);
}
body.dca-wanderport-page .aw-leaflet-marker.is-in-route > span{
  border-color:#ffffff;
  background:var(--purple);
  color:#ffffff;
  font-size:13px;
  font-weight:700;
  box-shadow:0 2px 9px rgba(82,33,199,.28);
}
body.dca-wanderport-page .aw-leaflet-marker.is-selected > span{
  box-shadow:0 0 0 3px rgba(142,219,255,.9),0 2px 9px rgba(8,41,71,.18);
}

/* =========================================================
   AUGUST 14 2026 — MASTER ZOOM-SAFE FALLBACK
   Shared fallback for every page that loads wanderport-master.css.
========================================================= */
:root{
  --aw-zoom-frame-max:1840px;
  --aw-zoom-frame-gutter:clamp(12px,2vw,40px);
  --aw-zoom-site-frame:min(calc(100% - (2 * var(--aw-zoom-frame-gutter))),var(--aw-zoom-frame-max));
}

.aw-header .aw-logo-link,
.aw-logo-link,
.aw-main,
.wanderports-directory-main{
  width:var(--aw-zoom-site-frame) !important;
  max-width:var(--aw-zoom-frame-max) !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

@media(max-width:820px){
  :root{--aw-zoom-frame-gutter:20px;}
}
@media(max-width:600px){
  :root{--aw-zoom-frame-gutter:14px;}
}

