/* ============ Loading placeholder ============ */
.loading-placeholder {
  position: fixed; inset: 0;
  display: flex; align-items: center; justify-content: center;
  background: var(--bg);
  z-index: 50;
  font-size: .9rem; letter-spacing: .12em; text-transform: uppercase;
  color: var(--muted);
}

/* ============ Sections ============ */
section {
  max-width: 1000px;
  margin: 0 auto;
  padding: 6rem 1.5rem 2rem;
}
.section-header { text-align: center; margin-bottom: 4rem; }
.section-header h2 {
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3rem);
  font-weight: 300; letter-spacing: -.02em;
  color: var(--ink); margin-bottom: .5rem;
}
.section-header h2 .line-accent {
  display: block;
  width: 48px; height: 2px;
  background: var(--accent);
  margin: 1.2rem auto 0;
  border-radius: 2px;
}
.section-header p.sub { color: var(--muted); font-size: 1.05rem; font-weight: 300; }

/* ============ Footer ============ */
footer {
  max-width: 1000px;
  margin: 0 auto;
  padding: 2rem 1.5rem 3rem;
  text-align: center;
  color: var(--muted);
  font-size: .82rem; letter-spacing: .03em;
  display: flex;
  align-items: center;
  gap: 16px;
  justify-content: center;
}
.route-code-footer {
  font-family: var(--font-body);
  letter-spacing: .12em;
  text-transform: uppercase;
}