/* Shared hierarchy for all cities, cards, notes and controls. */
body {
  font-family: var(--font-body);
  font-weight: 300;
  font-synthesis: none;
}
button, input, select, textarea { font-family: var(--font-body); font-weight: 300; }
b, strong, th { font-weight: 300; }
header nav a[aria-current], .eyebrow, .place-index, .place-index > span { font-weight: 300; }

h1 {
  font-family: var(--font-display);
  font-weight: 400;
}
h2, h3, h4, h5, h6 {
  font-family: var(--font-heading);
  font-weight: 400;
}
.home-discoveries-title, .home-destinations-title {
  font-family: var(--font-display);
  font-weight: 400;
  line-height: 1.18;
  overflow-wrap: anywhere;
}
[data-category="learn"] { --category-color: #a93124; }
[data-category="taste"] { --category-color: #4f6550; }
[data-category="remember"] { --category-color: #92713f; }
.direction[data-category] h2 { color: var(--category-color); }
.direction[data-category] h2 span { color: inherit; }
.page-head[data-category] h1 { color: var(--ink); }
.page-head[data-category] h1 em { color: var(--red); }
h1, .hero-copy h1, .page-head h1,
.detail h1, .not-found h1 {
  letter-spacing: 0;
  line-height: 1.18;
}
/* Leonov has wide marker strokes; scale it to the existing text columns. */
h1, .page-head h1{ font-size: clamp(44px, 5vw, 72px); }
.hero-copy h1 { font-size: clamp(40px, 4.6vw, 64px); }
.detail h1 { font-size: clamp(34px, 3.35vw, 44px); }
h2, h3, h4, h5, h6, .logo { letter-spacing: 0; }
h1 em, h2 em, h3 em, .logo,
.hand, .polaroid .caption, .journal-line b, .note-strip b,
.step > span, .direction .number, .map-top {
  font-style: normal;
}

.hand, .polaroid .caption, .journal-line b, .note-strip b,
.ticket strong, .saved-ticket b, .row-label a, .map-top,
.day-title h3 em, .route-day-advice strong, .vatican-planning-note strong,
.news-cutting b {
  font-family: var(--font-heading);
  font-weight: 400;
}
.logo, .logo .logo-wordmark {
  font-family: var(--font-display);
  font-weight: 400;
}
.hand, .polaroid .caption, .journal-line b, .note-strip b { line-height: 1.35; }
.city-card h2, .direction h2, .place h3, .country-copy h2,
.favorite-copy h2, .journal-card h3 { overflow-wrap: anywhere; }
.city-bottom > div { min-width: 0; }
.country-copy h2 { color: #a93124; }
.city-card h2 {
  font-family: var(--font-display);
  font-weight: 400;
  color: #a93124;
  line-height: 1.18;
}
.round-arrow { flex-shrink: 0; }
.hero-copy { min-width: 0; }
.hero-copy h1 { overflow-wrap: anywhere; }
.news-cutting { font-family: var(--font-body); }

/* SVG labels follow the same typography as the surrounding route page. */
.map svg text { font-family: var(--font-body); font-weight: 300; }
.map svg text.map-landmark-note { font-family: var(--font-heading); font-weight: 400; }

@media (max-width: 650px) {
  .hero-copy h1 { font-size: clamp(34px, 9.8vw, 48px); }
  .page-head h1{ font-size: clamp(34px, 9.5vw, 46px); max-width: 100%; }
  .detail h1 { font-size: clamp(32px, 9vw, 40px); }
}
