/* Newsletter pages. Reuses tokens, header, buttons, and footer from ../css/main.css */

#site-header {
  background: rgba(11, 19, 43, 0.82);
  -webkit-backdrop-filter: blur(12px);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(253, 251, 247, 0.08);
}

.nl-main {
  max-width: 50rem;
  margin-inline: auto;
  padding: clamp(7rem, 16vh, 10rem) clamp(1.2rem, 5vw, 3rem) clamp(4rem, 9vh, 6rem);
}

.nl-eyebrow {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.95rem;
  letter-spacing: 0.34em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.9rem;
}

.nl-hero h1 {
  font-size: clamp(2.4rem, 6vw, 4.2rem);
  max-width: 18ch;
}

.nl-lead {
  font-size: 1.08rem;
  line-height: 1.75;
  max-width: 56ch;
  margin: 1.4rem 0 1.8rem;
  opacity: 0.92;
}

.nl-actions { margin-bottom: 0.7rem; }

.nl-note {
  font-size: 0.82rem;
  letter-spacing: 0.06em;
  opacity: 0.72;
}

.nl-section { margin-top: clamp(3.6rem, 8vh, 5.5rem); }

.nl-section > h2 {
  font-size: clamp(1.9rem, 4.2vw, 2.9rem);
  margin-bottom: 1.4rem;
}

.nl-card {
  background: var(--card-bg);
  border: 1px solid rgba(253, 251, 247, 0.09);
  border-radius: 8px;
  padding: clamp(1.4rem, 3.5vw, 2.1rem);
  margin-bottom: 1.4rem;
}

.nl-date {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 0.85rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--gold);
  margin-bottom: 0.5rem;
}

.nl-card h3 {
  font-family: var(--font-display);
  font-weight: 740;
  font-size: 1.45rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  margin-bottom: 0.4rem;
}

.nl-card h3 a { color: var(--cream); text-decoration: none; }
.nl-card h3 a:hover { color: var(--gold); }

.nl-excerpt { font-size: 0.97rem; line-height: 1.75; opacity: 0.9; margin-bottom: 0.9rem; }

.nl-more a { color: var(--gold); text-decoration-color: rgba(212, 175, 55, 0.4); font-size: 0.95rem; }

.nl-empty { font-size: 0.97rem; line-height: 1.75; opacity: 0.85; }
.nl-empty a { color: var(--gold); text-decoration-color: rgba(212, 175, 55, 0.4); }

.nl-topics { list-style: none; margin: 0; display: grid; gap: 0.9rem; }
.nl-topics li { font-size: 0.97rem; line-height: 1.7; opacity: 0.9; padding-left: 1.1rem; position: relative; }
.nl-topics li::before { content: "\25B8"; position: absolute; left: 0; color: var(--gold); }
.nl-topics strong { color: var(--gold); }

.nl-close {
  margin-top: clamp(3.5rem, 8vh, 5rem);
  text-align: center;
}
.nl-close .headline { font-size: clamp(1.6rem, 3.8vw, 2.6rem); max-width: 26ch; margin: 0 auto 1.6rem; }

/* ---------- Article pages ---------- */

.nl-article { max-width: 44rem; margin-inline: auto; }

.nl-article-header { margin-bottom: clamp(2rem, 5vh, 3rem); }

.nl-article-header h1 {
  font-size: clamp(2.1rem, 5.2vw, 3.4rem);
  max-width: 22ch;
}

.nl-byline {
  margin-top: 1rem;
  font-size: 0.9rem;
  letter-spacing: 0.05em;
  opacity: 0.75;
}

.nl-body { font-size: 1.04rem; line-height: 1.8; }
.nl-body p { margin-bottom: 1.2rem; opacity: 0.92; }
.nl-body h2 {
  font-family: var(--font-display);
  font-weight: 740;
  font-size: 1.5rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  margin: 2.2rem 0 0.9rem;
}
.nl-body h3 {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  margin: 1.8rem 0 0.7rem;
  color: var(--gold);
}
.nl-body a { color: var(--gold); text-decoration-color: rgba(212, 175, 55, 0.4); }
.nl-body strong { color: var(--cream); }
.nl-body ul, .nl-body ol { margin: 0 0 1.2rem 1.3rem; display: grid; gap: 0.5rem; }
.nl-body li { line-height: 1.7; opacity: 0.92; }
.nl-body blockquote {
  border-left: 2px solid var(--gold);
  padding-left: 1.1rem;
  margin: 1.4rem 0;
  font-style: italic;
  opacity: 0.88;
}
.nl-body hr {
  border: none;
  border-top: 1px solid rgba(253, 251, 247, 0.14);
  margin: 2.4rem 0;
}

.nl-article-footer {
  margin-top: clamp(2.5rem, 6vh, 4rem);
  padding-top: 1.6rem;
  border-top: 1px solid rgba(253, 251, 247, 0.1);
}
.nl-article-footer p { font-size: 0.95rem; line-height: 1.7; opacity: 0.85; margin-bottom: 1.2rem; }
.nl-article-footer a { color: var(--gold); text-decoration-color: rgba(212, 175, 55, 0.4); }

@media (max-width: 640px) {
  .nl-main { padding-top: 6rem; }
}
