/* Newsletter-specific media and controls; page spacing and type use the shared resource system. */
.resources-jump-links { display: flex; gap: 12px; flex-wrap: wrap; padding: 24px var(--pad); border-bottom: 1px solid rgba(var(--color-primary-rgb), .18); }
.resources-jump-links a { display: inline-flex; align-items: center; gap: 28px; min-height: 44px; padding: 10px 20px; border: 1px solid rgba(var(--color-primary-rgb), .3); border-radius: var(--radius-pill); text-decoration: none; font: 600 var(--type-action-size)/1 var(--font-role-ui); }
.resources-jump-links a:hover { background: var(--color-highlight); }
#newsletters, #latest-insights { scroll-margin-top: calc(var(--nav-height) + 24px); }
.newsletters-section { padding-inline: var(--pad); border-bottom: 1px solid var(--section-divider); background: var(--color-highlight); }
.newsletter-grid, .newsletter-year-filter, .newsletter-count { width: 100%; margin-inline: auto; }
.newsletter-count { margin-bottom: 24px; color: var(--color-text-muted); }
.newsletter-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--card-gap); }
.newsletter-card { display: flex; flex-direction: column; overflow: hidden; border: var(--surface-border); border-radius: var(--radius-card); background: var(--color-background); color: var(--color-primary); text-decoration: none; box-shadow: var(--elevation-card); transition: transform .25s ease, box-shadow .25s ease; }
.newsletter-card:hover { transform: translateY(-4px); box-shadow: 0 14px 38px rgba(var(--color-primary-rgb), .12); }
.newsletter-card-cover { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 4.7; padding: 24px; background: rgba(var(--color-primary-rgb), .045); border-bottom: 1px solid rgba(var(--color-primary-rgb), .12); }
.newsletter-card-cover img { display: block; width: 100%; height: 100%; min-height: 0; object-fit: contain; filter: drop-shadow(0 4px 10px #0002); }
.newsletter-latest { position: absolute; top: 14px; left: 14px; padding: 8px 12px; border-radius: var(--radius-pill); background: var(--color-primary); color: var(--color-background); font: var(--type-label-weight) var(--type-metadata-compact-size)/var(--type-micro-leading) var(--font-role-label); letter-spacing: .1em; text-transform: uppercase; box-shadow: 0 2px 8px #0002; }
.newsletter-card-body { display: flex; flex: 1; flex-direction: column; padding: var(--card-padding); }
.newsletter-card h3 { margin: 14px 0 18px; }
.newsletter-card-body p { margin: 0 0 20px; color: var(--color-text-muted); }
.newsletter-card-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; margin-top: auto; color: var(--color-text-muted); }
.newsletter-card-cta { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 24px; padding-top: 18px; border-top: 1px solid rgba(var(--color-primary-rgb), .18); }
.newsletter-card-cta > span { font-size: 24px; line-height: 1; }
.newsletter-year-filter { display: flex; align-items: center; gap: 14px; margin-bottom: 22px; font: 600 var(--type-action-size)/1.4 var(--font-role-ui); }
.newsletter-year-filter select { min-height: var(--control-min-height); padding: 8px 32px 8px 14px; color: var(--color-primary); background: var(--color-background); border: 1px solid currentColor; border-radius: var(--radius-compact); font: inherit; }

/* The hero and closing sections intentionally use the existing article classes. */
.newsletter-reader-page { background: var(--color-background); color: var(--color-primary); }
.newsletter-reader-section { padding-inline: var(--pad); border-bottom: 1px solid var(--section-divider); background: var(--color-background); }
.newsletter-reader-shell { width: 100%; margin: auto; }
.newsletter-reader { position: relative; display: flex; flex-direction: column; height: min(880px, calc(100dvh - var(--nav-height) - 32px)); min-height: 0; border: 1px solid rgba(var(--color-primary-rgb), .25); border-radius: var(--radius-card); overflow: hidden; background: #e4e5e2; color: var(--color-primary); }
.newsletter-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 8px 16px; flex-shrink: 0; padding: 12px 16px; background: var(--color-background); border-bottom: 1px solid rgba(var(--color-primary-rgb), .2); z-index: 2; }
.newsletter-page-controls, .newsletter-zoom-controls, .newsletter-toolbar-actions { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; font: 500 var(--type-action-size)/1.4 var(--font-role-ui); }
.newsletter-reader button, .newsletter-reader input, .newsletter-download { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-width: var(--control-min-height); min-height: var(--control-min-height); border: 1px solid rgba(var(--color-primary-rgb), .25); border-radius: var(--radius-compact); padding: 8px 12px; color: var(--color-primary); background: var(--color-background); font: 600 var(--type-action-compact)/1.2 var(--font-role-ui); cursor: pointer; white-space: nowrap; }
.newsletter-download { text-decoration: none; }
.newsletter-reader button:hover:enabled, .newsletter-download:hover { background: var(--color-highlight); }
.newsletter-reader button[aria-pressed="true"] { border-color: var(--color-primary); background: var(--color-highlight); }
.newsletter-reader button:disabled { opacity: .4; cursor: default; }
.newsletter-reader input { width: 58px; padding: 8px; text-align: center; cursor: text; appearance: textfield; }
.newsletter-reader input::-webkit-inner-spin-button { appearance: none; }
.newsletter-zoom-controls output { min-width: 48px; text-align: center; }
.newsletter-reader-status { display: flex; flex-wrap: wrap; flex-shrink: 0; align-items: center; justify-content: center; gap: 10px 20px; padding: 12px 20px; color: var(--color-primary); background: var(--color-background); font-size: var(--type-action-size); z-index: 2; }
.newsletter-reader-status progress { width: 130px; max-width: 100%; accent-color: var(--color-primary); }
.newsletter-reader-status.has-error { border-bottom: 1px solid currentColor; }
.newsletter-reader:has(.has-error), .newsletter-reader:has(.newsletter-noscript) { height: auto; min-height: 0; }
.newsletter-reader:has(.has-error) .newsletter-viewport-wrap, .newsletter-reader:has(.newsletter-noscript) .newsletter-viewport-wrap { display: none; }
.newsletter-viewport-wrap { position: relative; min-height: 0; flex: 1; }
.newsletter-viewport { position: absolute; inset: 0; overflow: auto; overscroll-behavior: contain; touch-action: pan-x pan-y pinch-zoom; }
/* No top padding: PDF.js page-fit reserves the full page height inside this viewport. */
.newsletter-reader .pdfViewer { --page-margin: 0 auto 16px; --page-border: 0; --spreadHorizontalWrapped-margin-LR: 0; padding: 0; }
.newsletter-reader .pdfViewer .page { box-sizing: content-box; background: #fff; box-shadow: 0 2px 14px #0002; }
.newsletter-reader .pdfViewer .page canvas { border-radius: 0; }
.newsletter-reader:fullscreen { width: 100%; height: 100dvh; min-height: 0; border: 0; border-radius: 0; }
.newsletter-noscript { padding: 20px; margin: 0; background: var(--color-background); line-height: 1.6; }
.newsletter-reader:has(.newsletter-noscript) .newsletter-page-controls, .newsletter-reader:has(.newsletter-noscript) .newsletter-zoom-controls, .newsletter-reader:has(.newsletter-noscript) .newsletter-reader-status { display: none; }
.newsletter-page-announcement { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.newsletter-reader-page .newsletter-reader, .newsletter-reader-page .newsletter-reader * { cursor: auto; }
.newsletter-reader-page .newsletter-reader button, .newsletter-reader-page .newsletter-reader a { cursor: pointer; }
.newsletter-related-cover { display: block; width: 100%; height: 180px; margin-bottom: 24px; object-fit: contain; background: rgba(var(--color-primary-rgb), .045); }
.newsletter-related-card .resource-card-meta { margin-top: 20px; }
.resources-jump-links a:focus-visible, .newsletter-card:focus-visible, .newsletter-year-filter select:focus-visible, .newsletter-reader button:focus-visible, .newsletter-reader input:focus-visible, .newsletter-viewport:focus-visible, .newsletter-download:focus-visible, .newsletter-card[hidden], .newsletter-year-filter[hidden], .newsletter-reader [hidden] { display: none !important; }
@media (max-width: 1100px) { .newsletter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 767px) {
  .newsletter-grid { grid-template-columns: 1fr; }
  .newsletter-card-cover { aspect-ratio: 4 / 4.4; padding: 22px; }
  .newsletter-card-body { padding: 20px; }
  .newsletter-reader { border-radius: var(--radius-compact); }
  .newsletter-toolbar { padding: 8px; gap: 6px; justify-content: center; }
  .newsletter-page-controls, .newsletter-zoom-controls, .newsletter-toolbar-actions { gap: 4px; justify-content: center; }
  .newsletter-reader button, .newsletter-download { padding-inline: 8px; }
}
@media (prefers-reduced-motion: reduce) { .newsletter-card { transition: none; } .newsletter-card:hover { transform: none; } }
