/* Shared opening rhythm. Loaded after page styles by both page generators. */
:root {
  --page-entry-space: 28px;
  --page-entry-end: 48px;
  --page-title-gap: 16px;
}

.page-layout > .breadcrumb {
  min-height: 44px;
  padding-block: 0;
  flex-wrap: wrap;
}
.page-layout > .breadcrumb a { min-height: 44px; }
.page-layout > .back-link {
  display: flex;
  align-items: center;
  min-height: 44px;
  margin-top: 0;
  padding-block: 0;
}

.page-layout > :is(.hero, .subhero, .contact-layout, .content-hub-hero, .radar-report-hero, .inbound-intro) {
  padding-top: var(--page-entry-space);
  padding-bottom: var(--page-entry-end);
}
.page-layout > .hero {
  min-height: 0;
  align-items: start;
}
.page-layout .hero-copy { align-self: start; }
.page-layout :is(.hero-copy, .subhero, .contact-layout > div, .content-hub-hero > div, .radar-report-hero > div, .inbound-intro) > .eyebrow {
  display: block;
  line-height: 1.5;
}
.page-layout :is(.hero, .subhero, .contact-layout, .content-hub-hero, .radar-report-hero, .inbound-intro) h1 {
  margin-top: var(--page-title-gap);
  margin-bottom: 20px;
}
/* Product identity is useful content, with a deliberate extra row. */
.page-layout .pd-product-logo { margin-bottom: 12px; }

@media (max-width: 800px) {
  :root {
    --page-entry-space: 20px;
    --page-entry-end: 36px;
  }
  /* The narrow-screen header keeps two readable rows and touch targets. */
  .page-layout > .hero { align-items: stretch; }
  .page-layout .hero-copy { align-self: stretch; }
}
