/* ── PAGE HEADER ── */

.travel-header {
  padding: 9rem 2rem 6rem;
  text-align: center;
  background: var(--bark);
  position: relative;
  overflow: hidden;
}

.travel-header-ring {
  position: absolute;
  border-radius: 50%;
  border: 0.5px solid rgba(237,207,200,0.07);
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
}
.travel-header-ring-1 { width: 700px; height: 700px; }
.travel-header-ring-2 { width: 460px; height: 460px; }

.travel-header-inner { position: relative; z-index: 1; }

.travel-eyebrow {
  color: var(--dusty-rose);
  display: block;
  margin-bottom: 1.5rem;
}

.travel-title {
  color: var(--linen);
  display: block;
}

.travel-header-divider {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 14px;
  margin: 2rem 0 1.75rem;
}

.travel-header-line {
  width: 52px;
  height: 0.5px;
  background: rgba(237,207,200,0.25);
}

.travel-header-diamond {
  width: 5px;
  height: 5px;
  background: var(--dusty-rose);
  transform: rotate(45deg);
  flex-shrink: 0;
}

.travel-header-sub {
  color: rgba(242,235,224,0.45);
  display: block;
}

/* ── SHARED SECTION STRUCTURE ── */

.travel-section { background: var(--ivory); }
.travel-section.travel-alt { background: var(--white); }

.travel-two-col {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 5rem;
  align-items: center;
}

.travel-two-col--img-first .travel-text-col { order: 2; }
.travel-two-col--img-first .travel-img-col  { order: 1; }

.travel-text-col { min-width: 0; }

/* ── PHOTOS ── */

.travel-img-col {
  min-width: 0;
  position: relative;
}

.travel-photo {
  width: 100%;
  height: auto;
  display: block;
  border: 0.5px solid var(--parchment);
}

.travel-photo-missing { display: none; }

/* ── VENUE ── */

.travel-address-block {
  margin-top: 2rem;
  padding: 1.25rem 1.5rem;
  border-left: 2px solid var(--blush);
  background: var(--linen);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.travel-address-label { color: var(--dusty-rose); }

.travel-address-block .paragraph { color: var(--mist); line-height: var(--leading-normal); }

.travel-floorplan-block {
  margin-top: 4rem;
  text-align: center;
  border-top: 0.5px solid var(--parchment);
  padding-top: 3rem;
}

.travel-floorplan-img {
  max-width: 600px;
  width: 100%;
  display: block;
  margin: 0 auto 1.25rem;
}

.travel-floorplan-caption {
  color: var(--mist);
  max-width: 480px;
  margin: 0 auto;
}

/* ── MAP ── */

.travel-address-bar {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0.25rem;
  margin-bottom: 2.5rem;
  text-align: center;
}

.travel-address-bar-label { color: var(--dusty-rose); }
.travel-address-bar-value { color: var(--mist); }

.travel-map-frame {
  width: 100%;
  border: 0.5px solid var(--parchment);
  overflow: hidden;
}

/* ── FLYING IN SUB-SECTION ── */

.travel-flying-col .eyebrow,
.travel-flying-col .section-heading { text-align: left; }
.travel-flying-col .thin-rule { margin-left: 0; margin-right: auto; }

/* ── AIRPORTS ── */

.travel-flying-col { margin-top: 4rem; }

.travel-airports {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  margin-top: 2rem;
}

.travel-airport-row {
  display: flex;
  gap: 0.75rem;
}

.travel-airport-badge {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 0.25rem;
  padding: 1rem 1.25rem;
  border: 0.5px solid var(--blush);
  background: var(--ivory);
}

.travel-airport-badge--primary {
  border-color: var(--dusty-rose);
  background: var(--petal);
}

.travel-airport-code { color: var(--bark); }
.travel-airport-badge--primary .travel-airport-code { color: var(--deep-rose); }
.travel-airport-detail { color: var(--mist); }

/* ── ENTRANCE ── */

.travel-coordinates {
  margin: 1.5rem 0 1.5rem;
  padding: 1.5rem;
  border: 0.5px solid var(--blush);
  background: var(--linen);
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.travel-coord-label { color: var(--dusty-rose); }
.travel-coord-value { color: var(--bark); }

.travel-coord-btn {
  align-self: flex-start;
  margin-top: 0.75rem;
}

/* ── PARKING ── */

.travel-parking-note {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  margin-top: 2rem;
  padding: 1.25rem 1.5rem;
  background: var(--mist-green);
  border: 0.5px solid var(--sage);
}

.travel-parking-note-icon { font-size: 1.25rem; flex-shrink: 0; }
.travel-parking-note .paragraph { color: var(--garden); }

/* ── WHERE TO STAY ── */

.travel-stay-callout {
  margin-top: 2rem;
  padding: 1.5rem;
  border: 0.5px solid var(--blush);
  background: var(--petal);
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  align-items: flex-start;
}

.travel-stay-callout .paragraph { color: var(--mist); }

/* ── DRESS CODE ── */

.travel-dress-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.5rem;
  margin-top: 3rem;
}

.travel-dress-card {
  padding: 2.5rem 2rem;
  border: 0.5px solid var(--blush);
  background: var(--ivory);
  position: relative;
  overflow: hidden;
}

.travel-dress-card::before {
  content: '';
  position: absolute;
  top: 0; left: 0;
  width: 3px;
  height: 100%;
  background: var(--dusty-rose);
}

.travel-dress-card:nth-child(2)::before { background: var(--sage); }

.travel-dress-time {
  color: var(--dusty-rose);
  display: block;
  margin-bottom: 0.75rem;
}

.travel-dress-card:nth-child(2) .travel-dress-time { color: var(--garden); }

.travel-dress-label {
  color: var(--bark);
  margin-bottom: 1rem;
}

/* ═══════════════════════════════════════
   MOBILE — 768px
═══════════════════════════════════════ */

@media (max-width: 768px) {
  .travel-header { padding: 6rem 1.5rem 4rem; }
  .travel-header-ring { display: none; }

  /* All two-column layouts → single column */
  .travel-two-col {
    grid-template-columns: 1fr;
    gap: 2rem;
  }

  /* Text always appears before image on mobile */
  .travel-two-col--img-first .travel-text-col { order: -1; }
  .travel-two-col--img-first .travel-img-col  { order: unset; }

  /* Flying-in nested two-col */
  .travel-flying-col { margin-top: 2rem; }

  /* Map */
  .travel-map-frame iframe { height: 280px; }

  /* Address bar */
  .travel-address-bar { margin-bottom: 1.5rem; }

  /* Airport badges — wrap on very small screens */
  .travel-airport-row { flex-wrap: wrap; }

  /* Dress grid */
  .travel-dress-grid { grid-template-columns: 1fr; gap: 1rem; }

  /* Floorplan */
  .travel-floorplan-block { margin-top: 2.5rem; padding-top: 2rem; }
}
