/* Shared region hero flow; the CTA follows any length of editable description. */
[data-page="region"] .page-hero-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  min-width: 0;
}
[data-page="region"] .page-hero-copy > .eyebrow { margin-block: 0 18px; }
[data-page="region"] .page-hero-copy > .primary-button {
  align-self: flex-start;
  max-width: 100%;
  margin-block: 28px 0;
}

/* Native rich-text rhythm, isolated from cards, navigation and the shared shell. */
.detail-main {
  --tour-paragraph-gap: 16px;
  --tour-subsection-gap: 28px;
  --tour-section-gap: 48px;
}
.detail-main > :is(section, article) + :is(section, article) {
  margin-block-start: var(--tour-section-gap);
}
.detail-main h2 { margin-block: 36px 20px; }
.detail-main h3 { margin-block: var(--tour-subsection-gap) 12px; }
.detail-main h4 {
  margin-block: 20px 8px;
  color: var(--site-ink);
  font-size: 16px;
  font-weight: 600;
  line-height: 1.45;
}
.detail-main :is(section, article, details) > :is(h2, h3, h4):first-child {
  margin-block-start: 0;
}
.detail-main p { margin-block: 0; }
.detail-main p + p { margin-block-start: var(--tour-paragraph-gap); }
.detail-main :is(ul, ol):not(.route-strip) {
  margin-block: 14px 20px;
  padding-inline-start: 22px;
}
.detail-main :is(ul, ol):not(.route-strip) > li + li { margin-block-start: 7px; }
.detail-main li > :is(ul, ol) { margin-block: 10px 0; }
.detail-main :is(ul, ol) + p,
.detail-main section > :is(div, article, details) + p {
  margin-block-start: var(--tour-paragraph-gap);
}
.detail-main section > article + article { margin-block-start: 20px; }

/* Keep compact internal itinerary spacing and the existing schematic route layout. */
.detail-main .itinerary-day > summary + :is(p, ul, ol) { margin-block-start: 18px; }
.detail-main .itinerary-day p + p { margin-block-start: 12px; }
.detail-main .route-strip { margin-block: 20px; }
.detail-main .route-strip > li + li { margin-block-start: 0; }

/* All three FAQ contexts retain one existing component, without decorative rules. */
.faq-list details,
.faq-list details:last-child { border: 0; box-shadow: none; }
.faq-list details + details { margin-block-start: 2px; }
.detail-main .faq-list > p { margin-block-end: 20px; }

@media (max-width: 900px) {
  [data-page="region"] .page-hero-copy > .primary-button { margin-block-start: 24px; }
  .detail-main {
    --tour-paragraph-gap: 14px;
    --tour-subsection-gap: 26px;
    --tour-section-gap: 36px;
  }
  .detail-main h2 { margin-block: 30px 18px; }
  .detail-main h4 { margin-block-start: 18px; }
}
