/* Newsletters page: one section per source, covers in a card grid. */
.rt-nl { max-width: min(1200px, 94vw); margin: 0 auto; }
.rt-nl-source { margin: 0 0 2.5rem; }
.rt-nl-heading { font-family: var(--rt-font-display, "RT Display", "Arial Narrow", sans-serif); font-weight: var(--rt-font-display-weight, 700); letter-spacing: .05em; text-transform: uppercase; color: var(--rt-primary); font-size: clamp(1.5rem, 3vw, 2rem); margin: 0 0 .3rem; text-align: center; }
.rt-nl-note { text-align: center; margin: 0 0 1rem; opacity: .75; }
.rt-nl-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.2rem; justify-content: center; }
.rt-nl-grid--n1 { grid-template-columns: repeat(1, minmax(0, 360px)); }
.rt-nl-grid--n2 { grid-template-columns: repeat(2, minmax(0, 360px)); }
.rt-nl-grid--n3 { grid-template-columns: repeat(auto-fit, minmax(260px, 360px)); }
.rt-nl-card { border-radius: 16px; overflow: hidden; background: var(--rt-paper, #fff); box-shadow: 0 8px 26px rgba(0,0,0,.12); transition: transform .2s; }
.rt-nl-card:hover { transform: translateY(-4px); }
.rt-nl-link { display: block; color: inherit; text-decoration: none; }
.rt-nl-cover { position: relative; display: block; aspect-ratio: 4 / 3; background: var(--rt-black, #111) var(--rt-banner-logo) no-repeat right 16px center / auto 34px; overflow: hidden; }
.rt-nl-cover img { width: 100%; height: 100%; object-fit: cover; object-position: top; display: block; }
.rt-nl-cover i { position: absolute; inset: 0; display: grid; place-items: center; font-size: 3rem; color: rgba(255,255,255,.35); }
.rt-nl-latest { position: absolute; top: 10px; left: 10px; padding: .2em .7em; border-radius: 999px; background: var(--rt-primary); color: var(--rt-on-primary, #fff); font-size: .7rem; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; }
.rt-nl-body { display: grid; gap: .2rem; padding: .9rem 1rem 1.1rem; }
.rt-nl-body b { font-family: var(--rt-font-display, "RT Display", "Arial Narrow", sans-serif); font-size: 1.15rem; letter-spacing: .03em; text-transform: uppercase; line-height: 1.15; color: var(--rt-ink); }
.rt-nl-body span { font-size: .85rem; opacity: .75; }
.rt-nl-more { text-align: center; margin: 1rem 0 0; }
.rt-nl-empty { text-align: center; opacity: .7; }
