/* Source copy uses the existing type, palette and responsive page system. */
.inner-page .source-content { max-width: 1000px; }
.source-content > :first-child { margin-top: 0; }
.source-content > :last-child { margin-bottom: 0; }
.source-content :is(h2, h3, h4) { margin-top: 42px; margin-bottom: 20px; color: var(--navy); }
.source-content h2 { font-size: clamp(30px, 3vw, 43px); line-height: 1.18; }
.source-content h3 { font-size: clamp(26px, 2.5vw, 34px); line-height: 1.25; }
.source-content :is(p, li) { color: var(--muted); font-size: 17px; line-height: 1.85; }
.source-content p { margin-bottom: 22px; }
.source-content a { color: var(--gold-dark); text-underline-offset: 4px; overflow-wrap: anywhere; }
.source-content a.button { color: var(--white); }
.source-content img { max-width: 100%; height: auto; }
.source-content :is(iframe, video) { max-width: 100%; }
.source-content table { width: 100%; border-collapse: collapse; }
.source-content :is(td, th) { padding: 12px; border: 1px solid var(--border); text-align: left; }
.source-content blockquote { margin: 28px 0; padding: 24px 30px; border-left: 3px solid var(--gold); background: var(--cream); }
.source-feature-image { display: block; width: 100%; max-height: 640px; object-fit: cover; margin: 30px 0; }
.page-hero__media .source-hero-image { display: block; width: 100%; height: 100%; object-fit: cover; }
.source-content details { padding: 22px; border: 1px solid var(--border); margin-bottom: 16px; background: var(--cream); }
.source-content summary { cursor: pointer; color: var(--navy); font-weight: 600; }
.source-content details[open] summary { margin-bottom: 18px; }
.editorial-banner > img { display: block; width: 100%; height: auto; }
.editorial-banner--category > img { max-height: 360px; object-fit: cover; }
@media (max-width: 768px) {
  .source-content :is(p, li) { font-size: 16px; }
  .source-content :is(h2, h3, h4) { margin-top: 32px; }
  .source-content blockquote { padding: 20px; }
}
