/* ═══════════════════════════════════════════════
   Cappadocia Balloon Festival — palette override
   Sits on top of main.css from the travel-niche theme
   ═══════════════════════════════════════════════ */
:root {
  --sumi:         #1A0900;   /* deep volcanic dark */
  --washi:        #FAF5EC;   /* warm parchment background */
  --washi-warm:   #F5EDD8;   /* deeper parchment for alt sections */
  --washi-pure:   #FFFFFF;
  --accent:       #C4441B;   /* terracotta — fairy chimney red */
  --accent-2:     #3ABCC4;   /* Cappadocia morning sky blue */
  --accent-3:     #D4A032;   /* ochre — valley floor gold */
  --sand:         #E8D0A0;   /* soft border/divider */
  --section-num:  #C4441B;
  --link:         #C4441B;
  --link-hover:   #9A3212;
  /* map editorial theme vars */
  --canal-teal:   #3ABCC4;
  --gold:         #D4A032;
  --deep-canal:   #1A0900;
}

body { background: var(--washi); color: var(--sumi); }

a { color: var(--accent); }
a:hover { color: var(--link-hover); }

/* ── Logo ── */
.logo-primary { color: var(--washi-pure); font-family: 'IBM Plex Mono', monospace; }
.logo-tagline  { color: var(--accent); font-family: 'IBM Plex Mono', monospace; font-size: 0.6rem; letter-spacing: 0.2em; }

/* ── Hero overline pill ── */
.hero-overline {
  background: var(--accent);
  color: var(--washi-pure);
  padding: 0.25rem 0.75rem;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.7rem;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  display: inline-block;
  margin-bottom: 1.25rem;
}

/* ── Section structure ── */
.section-block {
  padding: 4rem 0;
  border-bottom: 1px solid var(--sand);
}
.section-block.section-alt { background: var(--washi-warm); }
.section-inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 2rem;
}
@media (max-width: 640px) { .section-inner { padding: 0 1.25rem; } }

.section-num {
  color: var(--accent);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.15em;
  text-transform: uppercase;
  margin-bottom: 0.75rem;
}

.section-block h2 {
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 800;
  color: var(--sumi);
  margin: 0 0 1.25rem;
  line-height: 1.25;
}
.section-block h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--sumi);
  margin: 2rem 0 0.75rem;
}
.section-block p {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--sumi);
  margin-bottom: 1rem;
}
.section-block ul {
  padding-left: 1.5rem;
  margin-bottom: 1rem;
}
.section-block li {
  margin-bottom: 0.4rem;
  line-height: 1.6;
  font-size: 0.95rem;
}

/* ── Stats band ── */
.stats-band {
  background: var(--sumi);
  color: var(--washi);
  padding: 2.5rem 0;
}
.stats-band-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 2rem;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  text-align: center;
}
@media (max-width: 768px) { .stats-band-inner { grid-template-columns: repeat(2, 1fr); gap: 1.5rem; } }
.stat-item .number {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 2rem;
  font-weight: 700;
  color: var(--accent);
  display: block;
  line-height: 1;
}
.stat-item .label {
  font-size: 0.75rem;
  opacity: 0.7;
  margin-top: 0.4rem;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

/* ── Notice box ── */
.notice-box {
  border: 2px solid var(--accent-2);
  padding: 1rem 1.25rem;
  background: rgba(58, 188, 196, 0.06);
  margin: 1.5rem 0;
  font-size: 0.9rem;
  line-height: 1.6;
}
.notice-box strong { color: var(--accent); }

/* ── Facts / comparison table ── */
.facts-table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.5rem 0;
  font-size: 0.875rem;
}
.facts-table th {
  background: var(--accent);
  color: var(--washi-pure);
  padding: 0.5rem 0.75rem;
  text-align: left;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.7rem;
  letter-spacing: 0.05em;
  vertical-align: top;
}
/* Key-value tables: first (label) column fixed at 38% */
.facts-table th:only-child,
.facts-table tbody th:first-child { width: 38%; }
/* Multi-column header tables: let browser auto-size all columns */
.facts-table--cols { min-width: 560px; table-layout: auto; }
.facts-table--cols th,
.facts-table--cols td { width: auto; white-space: normal; }
.facts-table td {
  padding: 0.5rem 0.75rem;
  border-bottom: 1px solid var(--sand);
  vertical-align: top;
}
.facts-table tr:nth-child(even) td { background: var(--washi-warm); }
/* Scrollable wrapper for column-header tables (edition history etc.) */
.table-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* Stacking only for key-value tables (th scope=row) inside .section-text */
@media (max-width: 540px) {
  .section-text .facts-table th,
  .section-text .facts-table td { display: block; width: 100%; box-sizing: border-box; }
  .section-text .facts-table th { border-bottom: none; }
  .section-text .facts-table tr { display: block; margin-bottom: 0.5rem; border-bottom: 2px solid var(--sand); }
}

/* ── Stat callout box ── */
.stat-box {
  border-left: 3px solid var(--accent);
  padding: 0.75rem 1rem;
  background: var(--washi-warm);
  margin: 1.5rem 0;
}
.stat-box .stat-number {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 2rem;
  font-weight: 700;
  color: var(--accent);
  line-height: 1;
}
.stat-box .stat-label {
  font-size: 0.85rem;
  color: var(--sumi);
  opacity: 0.7;
  margin-top: 0.25rem;
}

/* ── Viewpoints grid ── */
.viewpoint-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(270px, 1fr));
  gap: 1.25rem;
  margin: 1.5rem 0;
}
.viewpoint-card {
  border: 1px solid var(--sand);
  padding: 1.25rem;
  background: var(--washi-pure);
}
.viewpoint-card .vp-rank {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.65rem;
  color: var(--accent);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.4rem;
}
.viewpoint-card h3 { font-size: 0.95rem; margin: 0 0 0.4rem; color: var(--sumi); }
.viewpoint-card p { font-size: 0.82rem; color: var(--sumi); opacity: 0.85; margin: 0 0 0.3rem; line-height: 1.5; }

/* ── Shape tags ── */
.shape-grid { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1rem 0; }
.shape-tag {
  background: var(--washi-warm);
  border: 1px solid var(--sand);
  padding: 0.3rem 0.7rem;
  font-size: 0.8rem;
  font-family: 'IBM Plex Mono', monospace;
  color: var(--sumi);
}

/* ── Programme timeline ── */
.programme-row {
  display: grid;
  grid-template-columns: 120px 1fr;
  gap: 1rem;
  padding: 1.1rem 0;
  border-bottom: 1px solid var(--sand);
  align-items: start;
}
@media (max-width: 540px) { .programme-row { grid-template-columns: 1fr; } }
.programme-row .time-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.75rem;
  color: var(--accent);
  font-weight: 700;
  padding-top: 0.15rem;
}
.programme-row h3 { margin: 0 0 0.3rem; font-size: 1rem; }
.programme-row p  { margin: 0; font-size: 0.875rem; opacity: 0.8; line-height: 1.55; }

/* ── Hotels grid ── */
.hotels-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 1.25rem;
  margin: 1.5rem 0;
}
.hotel-card { border: 1px solid var(--sand); padding: 1.25rem; background: var(--washi-pure); }
.hotel-card .hotel-tier {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.65rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.4rem;
}
.hotel-card .hotel-tier.premium { color: var(--accent); }
.hotel-card .hotel-tier.midrange { color: var(--accent-3); }
.hotel-card .hotel-tier.budget { color: var(--accent-2); }
.hotel-card h3 { margin: 0 0 0.35rem; font-size: 0.95rem; }
.hotel-card p  { font-size: 0.82rem; opacity: 0.85; margin: 0 0 0.3rem; line-height: 1.5; }

/* ── Airport compare ── */
.airport-compare {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1.25rem;
  margin: 1.5rem 0;
}
@media (max-width: 600px) { .airport-compare { grid-template-columns: 1fr; } }
.airport-card { border: 2px solid var(--sand); padding: 1.25rem; background: var(--washi-pure); }
.airport-card.preferred { border-color: var(--accent); }
.airport-code { font-family: 'IBM Plex Mono', monospace; font-size: 1.5rem; font-weight: 700; color: var(--accent); margin-bottom: 0.2rem; }
.airport-name { font-size: 0.9rem; font-weight: 600; margin-bottom: 0.5rem; }
.airport-detail { font-size: 0.82rem; opacity: 0.85; line-height: 1.65; }

/* ── Cancellation bar chart (stale block removed — see updated block below) ── */

/* ── Edition hero meta ── */
.edition-hero-meta {
  display: flex;
  gap: 1.5rem 2.5rem;
  flex-wrap: wrap;
  margin: 1.5rem 0;
  padding: 1.25rem;
  background: var(--washi-warm);
  border-left: 3px solid var(--accent);
}
.edition-meta-item .meta-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.62rem;
  color: var(--accent);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.15rem;
}
.edition-meta-item .meta-value { font-size: 0.92rem; font-weight: 600; }

/* ── Past editions grid ── */
.editions-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: 1.5rem;
  margin: 1.5rem 0;
}
.edition-card { border: 1px solid var(--sand); overflow: hidden; background: var(--washi-pure); }
.edition-card img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.edition-card-body { padding: 1.25rem; }
.edition-card .year-badge {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.65rem;
  color: var(--accent);
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 0.4rem;
}
.edition-card h3 { margin: 0 0 0.45rem; font-size: 1.05rem; }
.edition-card p  { font-size: 0.85rem; opacity: 0.85; margin: 0 0 0.9rem; line-height: 1.55; }
.edition-card a {
  color: var(--accent);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-decoration: none;
  text-transform: uppercase;
}
.edition-card a:hover { text-decoration: underline; }

/* ── Section image ── */
.section-img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
  margin: 1.5rem 0;
}

/* ── Anchor nav ── */
.anchor-nav {
  position: sticky;
  top: 0; /* z-index 90 < header z-index 1000: header clips the top portion naturally — no gap at any viewport size */
  z-index: 90;
  background: var(--washi-pure);
  border-bottom: 1px solid var(--sand);
  overflow-x: auto;
  white-space: nowrap;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.anchor-nav::-webkit-scrollbar { display: none; }
.anchor-nav-inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 1.5rem;
  display: inline-flex;
  min-width: 100%;
}
.anchor-nav a {
  display: inline-block;
  padding: 0.55rem 0.85rem;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.62rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sumi);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: color 0.15s, border-color 0.15s;
  opacity: 0.65;
}
.anchor-nav a:hover { color: var(--accent); border-bottom-color: var(--accent); opacity: 1; }

/* ── Edition single page ── */
.edition-page { padding: 2rem 0 4rem; }
.edition-content h2 { font-size: 1.4rem; margin: 2rem 0 0.75rem; }
.edition-content h3 { font-size: 1.1rem; margin: 1.5rem 0 0.5rem; }
.edition-content p  { font-size: 0.95rem; line-height: 1.7; margin-bottom: 0.9rem; }
.edition-content table { width: 100%; border-collapse: collapse; margin: 1.25rem 0; font-size: 0.875rem; overflow-x: auto; display: block; }
.edition-content table th { background: var(--accent); color: white; padding: 0.4rem 0.6rem; text-align: left; font-size: 0.75rem; }
.edition-content table td { padding: 0.4rem 0.6rem; border-bottom: 1px solid var(--sand); }
.edition-content table tr:nth-child(even) td { background: var(--washi-warm); }
.read-more { color: var(--accent); font-weight: 600; }

/* ── Hero overrides ── */
.hero { position: relative; min-height: 80vh; display: flex; align-items: flex-end; }
@media (max-width: 768px) { .hero { min-height: 60vh; } }
.hero-img-wrap { position: absolute; inset: 0; overflow: hidden; }
.hero-img { width: 100%; height: 100%; object-fit: cover; }
.hero-overlay { position: absolute; inset: 0; background: linear-gradient(to top, rgba(26,9,0,0.85) 0%, rgba(26,9,0,0.35) 60%, rgba(26,9,0,0.1) 100%); }
.hero-content { position: relative; z-index: 2; padding: 3rem 2rem 3.5rem; max-width: 820px; color: var(--washi); }
.hero-content h1 { font-size: clamp(1.75rem, 5vw, 3rem); font-weight: 900; line-height: 1.15; margin: 0 0 1rem; color: var(--washi-pure); }
.hero-content .hero-subtitle { font-size: clamp(0.95rem, 1.8vw, 1.1rem); opacity: 0.9; line-height: 1.65; margin-bottom: 1.75rem; max-width: 640px; }
.hero-ctas { display: flex; gap: 0.75rem; flex-wrap: wrap; }
.btn-primary { background: var(--accent); color: white; padding: 0.7rem 1.5rem; font-weight: 700; text-decoration: none; display: inline-block; font-size: 0.875rem; letter-spacing: 0.02em; transition: background 0.15s; }
.btn-primary:hover { background: var(--link-hover); color: white; }
.btn-secondary { background: transparent; color: var(--washi-pure); padding: 0.7rem 1.5rem; font-weight: 600; text-decoration: none; display: inline-block; font-size: 0.875rem; border: 1.5px solid rgba(255,255,255,0.5); transition: border-color 0.15s; }
.btn-secondary:hover { border-color: white; color: white; }

/* ── Button override from theme ── */
.nav-cta { display: none !important; }

/* ═══════════════════════════════════════════════
   Anchor nav
   ═══════════════════════════════════════════════ */
.anchor-nav-list {
  display: inline-flex;
  list-style: none;
  margin: 0;
  padding: 0;
  min-width: 100%;
}
.anchor-nav-list li { flex-shrink: 0; }
.anchor-link {
  display: inline-block;
  padding: 0.55rem 0.85rem;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--sumi);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  transition: color 0.15s, border-color 0.15s;
  opacity: 0.6;
  white-space: nowrap;
}
.anchor-link:hover { color: var(--accent); border-bottom-color: var(--accent); opacity: 1; }

/* ═══════════════════════════════════════════════
   Section layout (two-column text + image)
   ═══════════════════════════════════════════════ */
.section-meta { margin-bottom: 1.5rem; }
.section-title { font-size: clamp(1.5rem, 3vw, 2rem); font-weight: 800; color: var(--sumi); margin: 0 0 0; line-height: 1.25; }
.section-lead { font-size: 1.05rem; line-height: 1.7; font-weight: 500; color: var(--sumi); margin-bottom: 1.25rem; }

.section-body {
  display: grid;
  grid-template-columns: 1fr 360px;
  gap: 2.5rem;
  align-items: start;
}
@media (max-width: 900px) { .section-body { grid-template-columns: 1fr; } }
.section-body-full { display: block; }
.section-text { min-width: 0; }

.section-img-wrap { margin: 0; }
.section-img-wrap figcaption {
  font-size: 0.75rem;
  opacity: 0.65;
  line-height: 1.5;
  margin-top: 0.4rem;
  font-style: italic;
}
@media (max-width: 900px) { .section-img-wrap { order: -1; } }
.section-img-wide { max-width: 100%; }
.section-tips { margin-top: 2rem; }
.table-note { font-size: 0.8rem; opacity: 0.65; font-style: italic; margin-top: 0.5rem; }

/* ═══════════════════════════════════════════════
   Hero overrides
   ═══════════════════════════════════════════════ */
.hero-actions { display: flex; gap: 0.75rem; flex-wrap: wrap; margin-top: 1.5rem; }
.hero-stats {
  display: flex;
  gap: 1.5rem 2.5rem;
  flex-wrap: wrap;
  margin: 1.5rem 0;
  padding: 1.25rem;
  background: rgba(26,9,0,0.5);
  border-left: 3px solid var(--accent);
}
.hero-stat { min-width: 100px; }
.hero-stat-num {
  display: block;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--accent-3);
  line-height: 1;
}
.hero-stat-label { font-size: 0.72rem; opacity: 0.8; margin-top: 0.25rem; letter-spacing: 0.03em; }
.hero-scroll-indicator {
  position: absolute;
  bottom: 1.5rem;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255,255,255,0.5);
  animation: bob 2s ease-in-out infinite;
  z-index: 2;
}
@keyframes bob { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(6px)} }

/* ═══════════════════════════════════════════════
   Stats band (programme section)
   ═══════════════════════════════════════════════ */
.stat-num {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 2rem;
  font-weight: 700;
  color: var(--accent);
  display: block;
  line-height: 1;
}
.stat-label { font-size: 0.75rem; opacity: 0.7; margin-top: 0.4rem; letter-spacing: 0.05em; text-transform: uppercase; }

/* ═══════════════════════════════════════════════
   Programme rows
   ═══════════════════════════════════════════════ */
.programme-rows { margin: 1.25rem 0; }
.programme-time {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.72rem;
  color: var(--accent);
  font-weight: 700;
  padding-top: 0.15rem;
  display: block;
  white-space: nowrap;
}
.programme-detail strong { display: block; font-size: 0.95rem; margin-bottom: 0.25rem; }
.programme-detail p { margin: 0; font-size: 0.85rem; opacity: 0.8; line-height: 1.55; }

/* ═══════════════════════════════════════════════
   Viewpoint cards (updated class names)
   ═══════════════════════════════════════════════ */
.viewpoint-card { display: flex; gap: 1rem; align-items: flex-start; }
.viewpoint-rank {
  flex-shrink: 0;
  width: 2rem;
  height: 2rem;
  background: var(--accent);
  color: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.85rem;
  font-weight: 700;
}
.viewpoint-body { flex: 1; min-width: 0; }
.viewpoint-name { font-size: 0.95rem; font-weight: 700; margin: 0 0 0.2rem; }
.viewpoint-location { font-family: 'IBM Plex Mono', monospace; font-size: 0.65rem; color: var(--accent); font-weight: 700; margin: 0 0 0.4rem; letter-spacing: 0.05em; }
.viewpoint-desc { font-size: 0.82rem; opacity: 0.85; margin: 0 0 0.4rem; line-height: 1.55; }
.viewpoint-meta { display: flex; gap: 0.5rem; flex-wrap: wrap; margin-bottom: 0.35rem; }
.viewpoint-tag { background: var(--washi-warm); border: 1px solid var(--sand); padding: 0.15rem 0.5rem; font-size: 0.7rem; font-family: 'IBM Plex Mono', monospace; }
.viewpoint-tip { font-size: 0.78rem; opacity: 0.7; font-style: italic; margin: 0; }

/* ═══════════════════════════════════════════════
   Shape roster grids
   ═══════════════════════════════════════════════ */
.shape-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.5rem; margin: 1.25rem 0; }
@media (max-width: 560px) { .shape-grid { grid-template-columns: 1fr; } }
.shape-year h4 { font-size: 0.85rem; font-weight: 700; margin: 0 0 0.6rem; }
.shape-tags { display: flex; flex-wrap: wrap; gap: 0.35rem; }

/* ═══════════════════════════════════════════════
   Hotel cards (updated class names)
   ═══════════════════════════════════════════════ */
.hotel-header { display: flex; align-items: baseline; justify-content: space-between; gap: 0.5rem; margin-bottom: 0.25rem; }
.hotel-name { font-size: 0.95rem; font-weight: 700; margin: 0; }
.hotel-tier-label {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--accent);
  flex-shrink: 0;
}
.hotel-tier-premium .hotel-tier-label,
.hotel-card.hotel-tier-premium .hotel-tier-label { color: var(--accent); }
.hotel-card.hotel-tier-midrange .hotel-tier-label { color: var(--accent-3); }
.hotel-card.hotel-tier-luxury .hotel-tier-label { color: var(--accent-2); }
.hotel-location { font-family: 'IBM Plex Mono', monospace; font-size: 0.65rem; opacity: 0.65; margin: 0 0 0.4rem; }
.hotel-desc { font-size: 0.82rem; opacity: 0.85; margin: 0 0 0.6rem; line-height: 1.5; }
.hotel-meta { display: flex; flex-direction: column; gap: 0.2rem; font-size: 0.78rem; }
.hotel-meta-item { opacity: 0.75; }

/* ═══════════════════════════════════════════════
   Airport cards (updated class names)
   ═══════════════════════════════════════════════ */
.airport-preferred { position: relative; }
.airport-badge {
  position: absolute;
  top: -1px;
  right: -1px;
  background: var(--accent);
  color: white;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.58rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.2rem 0.5rem;
}
.airport-header { display: flex; align-items: baseline; gap: 0.75rem; margin-bottom: 0.75rem; }
.airport-facts { display: grid; grid-template-columns: 1fr 1fr; gap: 0.4rem 1rem; margin-bottom: 0.75rem; }
.airport-fact { font-size: 0.8rem; }
.airport-fact-label { opacity: 0.6; font-size: 0.7rem; display: block; }
.airport-fact-val { font-weight: 600; font-family: 'IBM Plex Mono', monospace; font-size: 0.8rem; }
.airport-airlines { font-size: 0.8rem; margin: 0 0 0.3rem; }
.airport-routes { font-size: 0.78rem; opacity: 0.75; margin: 0 0 0.4rem; }
.airport-note { font-size: 0.75rem; opacity: 0.65; font-style: italic; margin: 0; border-top: 1px solid var(--sand); padding-top: 0.5rem; }

/* ═══════════════════════════════════════════════
   Cancellation bar chart
   bar-wrap is a flex row: [colored bar][label].
   Label sits inside the sand track, after the bar.
   ═══════════════════════════════════════════════ */
.cancel-chart { margin: 1.25rem 0; }
.cancel-bar-row {
  display: grid;
  grid-template-columns: 32px 1fr;
  gap: 0.4rem;
  align-items: center;
  margin-bottom: 0.3rem;
}
.cancel-month { font-family: 'IBM Plex Mono', monospace; font-size: 0.65rem; opacity: 0.65; font-weight: 600; }
.cancel-bar-wrap { background: var(--sand); height: 16px; overflow: hidden; display: flex; align-items: center; }
.cancel-bar { height: 100%; flex-shrink: 0; background: var(--accent); transition: width 0.4s ease; }
.cancel-label { padding-left: 5px; font-family: 'IBM Plex Mono', monospace; font-size: 0.6rem; font-weight: 700; white-space: nowrap; color: var(--sumi); opacity: 0.75; }
.cancel-label-best { color: var(--sumi); opacity: 1; font-weight: 800; }
.cancel-bar-best { background: var(--sumi); }
.cancel-bar-row-best .cancel-month { color: var(--sumi); font-weight: 700; opacity: 1; }

/* ═══════════════════════════════════════════════
   Edition cards (updated structure)
   ═══════════════════════════════════════════════ */
.edition-card-img-wrap { margin: 0; overflow: hidden; }
.edition-card-img { width: 100%; aspect-ratio: 16/9; object-fit: cover; display: block; }
.edition-card-meta { display: flex; align-items: center; gap: 0.5rem; margin-bottom: 0.5rem; }
.edition-year {
  font-family: 'IBM Plex Mono', monospace;
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--accent);
  line-height: 1;
}
.edition-tag {
  background: var(--washi-warm);
  border: 1px solid var(--sand);
  padding: 0.15rem 0.5rem;
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.6rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
  color: var(--sumi);
}
.edition-card-title { font-size: 1rem; font-weight: 700; margin: 0 0 0.5rem; line-height: 1.3; }
.edition-card-link {
  color: var(--accent);
  font-family: 'IBM Plex Mono', monospace;
  font-size: 0.72rem;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-decoration: none;
  text-transform: uppercase;
  display: inline-block;
  margin-top: 0.5rem;
}
.edition-card-link:hover { text-decoration: underline; }
.editions-history { margin-top: 2.5rem; }

/* ═══════════════════════════════════════════════
   Edition single page
   ═══════════════════════════════════════════════ */
.edition-breadcrumb {
  background: var(--washi-warm);
  border-bottom: 1px solid var(--sand);
  padding: 0.75rem 0;
}
.breadcrumb-list { display: flex; align-items: center; gap: 0.5rem; list-style: none; margin: 0; padding: 0; font-size: 0.8rem; }
.breadcrumb-link { color: var(--accent); text-decoration: none; }
.breadcrumb-link:hover { text-decoration: underline; }
.breadcrumb-sep { opacity: 0.4; }
.breadcrumb-current { opacity: 0.65; }
.edition-content { max-width: 720px; margin: 2.5rem auto 0; padding: 0 1.5rem; }
.edition-back { max-width: 720px; margin: 2.5rem auto; padding: 0 1.5rem; }
.edition-content > h2:first-of-type { margin-top: 0; }

/* On non-hero sections, btn-secondary is dark */
.section-block .btn-secondary,
.edition-back .btn-secondary {
  color: var(--sumi);
  border-color: var(--sand);
}
.section-block .btn-secondary:hover,
.edition-back .btn-secondary:hover {
  border-color: var(--accent);
  color: var(--accent);
}

/* ═══════════════════════════════════════════════
   Header transparency — page-type-aware
   ═══════════════════════════════════════════════ */

/* Homepage: subtle top-to-transparent gradient so nav reads over any
   photo brightness without covering the hero full-bleed aesthetic */
body.page-home .site-header:not(.scrolled) {
  background: linear-gradient(to bottom, rgba(26,9,0,0.5) 0%, transparent 100%);
}

/* Logo text contrast on transparent header — cappadocia.css sets
   .logo-primary to var(--sumi) (#1A0900, near-black) which is invisible
   over any dark photo. Switch to light text when header is translucent.
   nav-link and hamburger-line are already white in main.css. */
body.page-home .site-header:not(.scrolled) .logo-primary {
  color: var(--washi-pure);
  text-shadow: 0 1px 6px rgba(26,9,0,0.8);
}
body.page-home .site-header:not(.scrolled) .logo-tagline {
  color: var(--sand);
  text-shadow: 0 1px 4px rgba(26,9,0,0.7);
}

/* Inner pages: no hero, so header must be immediately opaque — don't
   wait for the 50px scroll threshold to avoid content/nav bleeding */
body.page-inner .site-header {
  background: rgba(26,9,0,0.95);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}

/* Push inner-page content below the fixed header so the topmost element
   is never permanently hidden behind it (homepage stays full-bleed) */
body.page-inner #main-content {
  padding-top: 70px;
}

/* Fix scrolled background on all pages: scaffold default is ocean-blue
   rgba(10,58,92,0.95) — override with Cappadocia volcanic dark */
.site-header.scrolled {
  background: rgba(26,9,0,0.95);
}

/* ── Mobile header height corrections ──────────────────────────────
   Mobile unscrolled: padding-block 12px + hamburger 36px = 60px
   Mobile scrolled:   padding-block  8px + hamburger 36px = 52px
   Desktop values (62–70px) are too tall and leave a gap or over-push.
   ──────────────────────────────────────────────────────────────── */
@media (max-width: 768px) {
  /* Inner-page top padding: push content below mobile header */
  body.page-inner #main-content {
    padding-top: 60px;
  }
}

/* ═══════════════════════════════════════════════
   Tour page — full cream retheme
   Scaffold uses --deep-canal (dark) as page bg;
   flip everything to washi (cream) palette.
   ═══════════════════════════════════════════════ */
.tour-page                          { background: var(--washi); }
.tour-breadcrumb                    { color: var(--sumi); opacity: 0.65; }
.tour-breadcrumb a                  { color: var(--accent); }
.tour-title                         { color: var(--sumi); }
.tour-rating-text                   { color: var(--sumi); opacity: 0.7; }
.tour-main-content                  { color: var(--sumi); }
.tour-section h2                    { color: var(--sumi); }
.tour-description                   { color: var(--sumi); opacity: 0.85; }
.tour-highlights li,
.tour-includes li                   { background: var(--washi-warm); color: var(--sumi); }
.tour-excludes li,
.tour-good-to-know li               { color: var(--sumi); opacity: 0.85; }
.tour-back-link                     { border-top-color: var(--sand); }
.tour-back-link a                   { color: var(--accent); }
.tour-price-amount                  { color: var(--sumi); }
.tour-detail-item svg               { color: var(--accent); }
.related-tours-title                { color: var(--sumi); }
.tour-page .related-tours           { border-top-color: var(--sand); }
.tour-page .related-tour-card       { background: var(--washi-warm); box-shadow: 0 1px 4px rgba(0,0,0,0.08); }
.tour-page .related-tour-card h3    { color: var(--sumi); }
.tour-page .related-tour-price      { color: var(--accent); }
.related-tour-body                  { padding: 0.75rem 1rem 1rem; }
.related-tour-body h3               { padding: 0; margin: 0 0 0.4rem; }
.related-tour-meta                  { display: flex; align-items: center; gap: 0.25rem; margin-bottom: 0.3rem; font-size: 0.8rem; }
.related-tour-rating                { color: var(--accent); font-weight: 700; }
.related-tour-reviews               { color: var(--sumi); opacity: 0.6; }
.related-tour-duration              { font-size: 0.8rem; color: var(--sumi); opacity: 0.65; margin-bottom: 0.5rem; }
.related-tour-body .related-tour-price { padding: 0; margin: 0; }

/* Editorial intro box — visible on cream bg */
.tour-editorial {
  border-left: 3px solid var(--accent);
  background: var(--washi-warm);
  padding: 1rem 1.25rem;
  margin-bottom: 1.5rem;
}
.tour-editorial-intro {
  font-size: 0.95rem;
  line-height: 1.75;
  color: var(--sumi);
  margin: 0;
  font-style: italic;
}

/* ── Transfer page tip box ── */
.transfer-tip {
  margin-top: var(--space-10);
  padding: 1rem 1.25rem;
  background: var(--washi-warm);
  border-left: 3px solid var(--accent);
  font-size: 0.9rem;
  color: var(--sumi);
  line-height: 1.6;
}

/* ═══════════════════════════════════════════════
   Header nav — "Book a Balloon" CTA pill
   ═══════════════════════════════════════════════ */
.nav-link-cta {
  background: var(--accent);
  color: var(--washi-pure) !important;
  padding: 0.35rem 0.9rem !important;
  font-weight: 700;
  letter-spacing: 0.02em;
  transition: background 0.15s;
}
.nav-link-cta:hover {
  background: var(--link-hover);
  color: var(--washi-pure) !important;
  border-bottom: none !important;
}
