.country-shortcuts { display: flex; flex-wrap: wrap; gap: .6rem; margin: 1.75rem 0; }
.country-shortcuts a { display: inline-flex; align-items: center; min-height: 44px; padding: .5rem 1rem; border: 1px solid var(--line); border-radius: 2px; font-size: .9375rem; }
.country-shortcuts a[aria-current="true"] { background: var(--green); border-color: var(--green); color: white; text-decoration: none; }
.country-group { margin-top: 2.5rem; scroll-margin-top: 1.5rem; }
.country-heading { display: flex; align-items: baseline; gap: 1rem; border-top: 1px solid var(--line); padding: 1.5rem 0; }
.country-heading h2 { font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.2; letter-spacing: -.035em; }
.country-heading > span { color: var(--muted); font-size: .875rem; }
.country-group .destination-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); align-items: stretch; gap: 2.5rem 1.5rem; margin: 0; }
.country-group .destination-card { display: flex; flex-direction: column; min-width: 0; }
.country-group .destination-card img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: contain; background: #f2f4f2; }
.country-group .guide-card-copy { display: flex; flex-direction: column; flex: 1; padding: 1.15rem 0 0; }
.country-group .destination-card h3 { font-size: clamp(1.25rem, 2vw, 1.6rem); line-height: 1.35; letter-spacing: -.025em; margin: .35rem 0 .65rem; }
.country-group .guide-summary { font-size: 1rem; line-height: 1.65; color: var(--muted); margin: 0 0 1rem; }
.country-group .guide-card-link { margin-top: auto; padding-top: .5rem; font-size: .9375rem; color: var(--green); }
.country-group .destination-card:hover { text-decoration: none; }
.country-group .destination-card:hover .guide-card-link { text-decoration: underline; text-underline-offset: 4px; }
.country-group .destination-card:focus-visible { outline: 3px solid #437e61; outline-offset: 7px; }
.guide-jump-links { position: sticky; top: 0; z-index: 5; display: flex; flex-wrap: wrap; background: #fff; padding: .5rem 0; border-bottom: 1px solid var(--line); gap: .2rem 1.25rem; }
.guide-jump-links a { min-height: 44px; display: inline-flex; align-items: center; white-space: nowrap; font-size: .9375rem; }
.destination-body [id] { scroll-margin-top: 6.5rem; }
.guide-practical { max-width: 74ch; margin: 2.5rem 0; }
.guide-practical section { padding: 1.5rem 0; border-top: 1px solid var(--line); }
.guide-practical h2 { font-size: 1.6rem; line-height: 1.3; margin-bottom: .75rem; }
.guide-practical p { margin: 0; }
.practical-sources { padding-left: 1.2rem; }
.practical-sources a { display: inline-block; padding: .35rem 0; text-decoration: underline; text-underline-offset: 3px; }
.connected-guides .related-guide-list { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1.5rem; padding: 0; list-style: none; }
.connected-guides .related-guide-list li { display: block; border-top: 1px solid var(--line); padding-top: 1rem; min-width: 0; }
.connected-guides .related-guide-list a { display: flex; flex-direction: column; align-items: flex-start; gap: .4rem; min-height: 44px; }
.related-guide-title { font-size: 1.1rem; font-weight: 600; line-height: 1.45; color: var(--green); }
.related-guide-duration { font-size: .875rem; color: var(--muted); }
.related-guide-list p { margin: .75rem 0 0; font-size: .9375rem; line-height: 1.65; }
@media(max-width:900px) {
 .country-group .destination-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
 .connected-guides .related-guide-list { grid-template-columns: 1fr; gap: 1rem; }
}
@media(max-width:550px) {
 .country-group .destination-grid { grid-template-columns: minmax(0,1fr); gap: 2rem; }
 .country-shortcuts { gap: .5rem; }
 .country-shortcuts a { padding: .45rem .8rem; }
 .guide-jump-links { flex-wrap: nowrap; overflow-x: auto; max-width: 100%; gap: 1rem; scrollbar-width: thin; }
 .destination-body [id] { scroll-margin-top: 5rem; }
 .country-heading { padding-top: 1.25rem; }
 .country-heading h2 { font-size: 1.75rem; }
 .guide-index .guide-filters { margin-bottom: 1.5rem; }
}

/* Editorial introduction: clear rhythm without pushing the routes too far down. */
.guide-index > h1.itinerary-title {
  font-size: clamp(2.6rem, 7vw, 6rem);
  line-height: 1.04;
  letter-spacing: -.055em;
  margin: 1.1rem 0 1.5rem;
  max-width: 14ch;
  text-wrap: balance;
}
.guide-index > h1.itinerary-title em {
  display: block;
  color: var(--green);
  font-family: Georgia, 'Times New Roman', serif;
  font-weight: 400;
  letter-spacing: -.045em;
}
.guide-index > h1.itinerary-title + .destination-intro {
  max-width: 45ch;
  margin: 0 0 2rem;
  font-size: clamp(1.0625rem, 1.6vw, 1.25rem);
  line-height: 1.65;
  color: var(--muted);
  text-wrap: pretty;
}
