/* Flux Forward Newsletter / editorial split and protected opt-in form.
   Scoped to this public page. Consent and double opt-in remain existing. */
body.newsletter-page.ffnl-page {
  --ffnl-ink: #111215;
  --ffnl-muted: #5e646b;
  --ffnl-line: #dde1e5;
  --ffnl-red: #d32b25;
  --ffnl-width: 1250px;
  background: #fff;
  color: var(--ffnl-ink);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
.ffnl-page main.preferences-main.ffnl-main {
  width: 100%;
  max-width: none;
  min-height: min(880px, calc(100svh - 68px));
  margin: 0;
  padding: clamp(60px, 6.5vw, 100px) clamp(23px, 5vw, 82px) clamp(88px, 9vw, 138px);
  display: block;
  background: #fff;
}
.ffnl-page .preferences-shell.ffnl-shell {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(400px, .9fr);
  align-items: start;
  gap: clamp(58px, 7.2vw, 116px);
  width: min(100%, var(--ffnl-width));
  max-width: none;
  margin: 0 auto;
  text-align: left;
}
.ffnl-page .ffnl-editorial,
.ffnl-page .ffnl-subscribe { min-width: 0; }
.ffnl-page .ffnl-route {
  display: flex;
  align-items: center;
  gap: 11px;
  margin-bottom: clamp(50px, 7.3vw, 98px);
  color: #2c3138;
  font-size: 11px;
  line-height: 1.35;
  font-weight: 750;
  letter-spacing: .12em;
  white-space: normal;
}
.ffnl-page .ffnl-route-mark {
  width: 21px; height: 2px; background: var(--ffnl-red); flex: 0 0 auto;
}
.ffnl-page .ffnl-route-side {
  color: #777e86; font-weight: 500; letter-spacing: 0; margin-left: auto;
  text-align: right; font-size: 11px;
}
.ffnl-page .preferences-kicker {
  display: block; margin: 0 0 17px; color: var(--ffnl-red);
  font-size: 11px; line-height: 1.5; letter-spacing: .15em; font-weight: 760;
}
.ffnl-page .preferences-title {
  max-width: 710px; margin: 0; color: var(--ffnl-ink);
  font-size: clamp(54px, 5.6vw, 83px);
  letter-spacing: -.065em; line-height: 1.055; font-weight: 680; text-wrap: balance;
}
.ffnl-page .preferences-lead {
  max-width: 610px; margin: 25px 0 0; color: var(--ffnl-muted);
  font-size: clamp(16px, 1.3vw, 18px); line-height: 1.78; font-weight: 400;
}
.ffnl-page .ffnl-topics {
  display: grid; gap: 0; margin: clamp(49px, 5.4vw, 76px) 0 0;
  border-bottom: 1px solid var(--ffnl-line);
}
.ffnl-page .ffnl-topic {
  display: grid; grid-template-columns: 39px minmax(0, 1fr);
  align-items: start; gap: 17px; padding: 21px 0 24px;
  border-top: 1px solid var(--ffnl-line);
}
.ffnl-page .ffnl-index {
  display: block; margin: 5px 0 0; color: var(--ffnl-red);
  font-size: 11px; line-height: 1.4; font-weight: 800;
  letter-spacing: .08em; font-variant-numeric: tabular-nums;
}
.ffnl-page .ffnl-topic h2 {
  color: var(--ffnl-ink); margin: 0 0 8px;
  font-size: clamp(17px, 1.4vw, 21px);
  font-weight: 700; letter-spacing: -.035em; line-height: 1.24;
}
.ffnl-page .ffnl-topic p {
  max-width: 510px; margin: 0; color: var(--ffnl-muted); font-size: 14px; line-height: 1.7;
}
.ffnl-page .ffnl-how {
  display: grid; grid-template-columns: 29px minmax(0,1fr); gap: 13px;
  margin-top: 32px; padding: 23px 25px; border: 1px solid #eaedf0;
  border-left: 3px solid #c43a33; background: #f7f8f9; border-radius: 3px 9px 9px 3px;
}
.ffnl-page .ffnl-how-symbol {
  display: inline-flex; align-items: center; justify-content: center;
  width: 27px; height: 27px; margin-top: 1px; border-radius: 50%;
  background: #fff; border: 1px solid #e2e5e9;
  color: var(--ffnl-red); font-size: 17px; line-height: 1; font-weight: 750;
}
.ffnl-page .ffnl-how h2 {
  margin: 0 0 8px; color: #17191d; font-size: 16px;
  line-height: 1.3; letter-spacing: -.025em;
}
.ffnl-page .ffnl-how p {
  margin: 0; color: #555c64; font-size: 13px; line-height: 1.75;
}
.ffnl-page .ffnl-subscribe {
  position: relative; overflow: hidden; width: 100%;
  padding: clamp(29px, 3.7vw, 49px);
  border: 1px solid #d9dfe5;
  border-radius: 12px; background: #f7f8fa;
  box-shadow: none;
}
.ffnl-page .ffnl-subscribe-eyebrow {
  display: flex; flex-wrap: wrap; align-items: center; gap: 10px;
  color: #575f68; font-size: 10px; line-height: 1.5;
  font-weight: 820; letter-spacing: .13em;
}
.ffnl-page .ffnl-subscribe-dot {
  width: 6px; height: 6px; border-radius: 50%; background: var(--ffnl-red);
}
.ffnl-page .ffnl-form-number {
  margin-left: auto; color: #929aa2; font-size: 10px;
  font-weight: 550; letter-spacing: .04em;
}
.ffnl-page .ffnl-subscribe-header h2 {
  max-width: 490px; margin: 23px 0 14px; color: var(--ffnl-ink);
  font-size: clamp(29px, 3vw, 41px); font-weight: 685;
  letter-spacing: -.052em; line-height: 1.14; text-wrap: balance;
}
.ffnl-page .ffnl-subscribe-header p {
  margin: 0; color: #68717a; font-size: 14px; line-height: 1.73;
}
.ffnl-page .preferences-card {
  max-width: none; margin: 31px 0 0; padding: 0;
  border: 0; border-radius: 0; background: transparent;
  box-shadow: none; text-align: left;
}
.ffnl-page #newsletterConfirmed[hidden] { display: none!important; }
.ffnl-page .preferences-form { display: grid; gap: 20px; }
.ffnl-page .preferences-field-group { gap: 10px; }
.ffnl-page .preferences-field-label {
  color: #222830; font-size: 12px; font-weight: 720; letter-spacing: .005em;
}
.ffnl-page .preferences-input {
  min-height: 55px; border: 1px solid #ced5dc; border-radius: 7px;
  background: #fff; padding: 0 17px; color: #111; font-size: 16px;
  transition: border-color .14s ease, box-shadow .14s ease;
}
.ffnl-page .preferences-input::placeholder { color: #8b949e; }
.ffnl-page .preferences-input:focus,
.ffnl-page .preferences-input:focus-visible {
  outline: none;
  border: 2px solid #52606d;
  padding: 0 16px;
  background: #fff;
  box-shadow: none;
}
.ffnl-page .preferences-helper {
  margin: 0; color: #7d8790; font-size: 12px; line-height: 1.65;
}
.ffnl-page .newsletter-context-group { gap: 9px; margin-top: 0; }
.ffnl-page .newsletter-context-pill {
  min-height: 38px; border-radius: 6px; border-color: #e1e5e8;
  background: #f7f8f9; padding: 0 12px; color: #545c65;
  font-size: 12px; font-weight: 620; letter-spacing: 0;
  transition: border-color .14s ease, color .14s ease, background-color .14s ease;
}
.ffnl-page .newsletter-context-pill:hover {
  transform: none; background: #fff; color: #111; border-color: #abb4bc;
}
.ffnl-page .newsletter-context-pill.is-selected,
.ffnl-page .newsletter-context-pill[aria-pressed="true"] {
  color: #fff; background: #1c2228; border-color: #1c2228;
}
.ffnl-page .newsletter-context-pill:focus-visible,
.ffnl-page .preferences-submit:focus-visible {
  outline: 2px solid var(--ffnl-red); outline-offset: 3px; box-shadow: none;
}
.ffnl-page .preferences-submit {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 54px; border: 1px solid #c9241c; border-radius: 6px;
  background: #d32b25; color: #fff; font-size: 14px;
  font-weight: 730; letter-spacing: .005em;
  box-shadow: 0 4px 13px rgba(188, 36, 30, .13);
  transition: background-color .14s ease, box-shadow .14s ease;
}
.ffnl-page .preferences-submit:hover:not(:disabled) {
  transform: none; background: #b82019;
  box-shadow: 0 6px 16px rgba(188, 36, 30, .2);
}
.ffnl-page .preferences-submit:disabled { transform: none; cursor: wait; opacity: .68; }
.ffnl-page .preferences-note {
  text-align: center; color: #717a83; font-size: 12px; line-height: 1.65;
}
.ffnl-page .preferences-note a { color: #a8201a; text-underline-offset: 3px; }
.ffnl-page .preferences-status {
  min-height: 0; text-align: left; line-height: 1.6;
}
.ffnl-page .preferences-status:empty { margin: 0; }
.ffnl-page .preferences-status.error {
  border-left: 3px solid #cf2c24; padding: 10px 12px;
  color: #952219; background: #fff5f3; font-weight: 600;
}
.ffnl-page .preferences-status .preferences-result-box {
  margin: 0; padding: 20px 21px; border: 1px solid #d5e8da;
  border-radius: 8px; background: #f2faf4; box-shadow: none;
}
.ffnl-page .preferences-status .preferences-result-box strong { color: #1a5838; }
.ffnl-page .preferences-status .preferences-result-box p { color: #3e5d4c; }
.ffnl-page .ffnl-underform {
  margin: 24px 0 0; padding-top: 20px; border-top: 1px solid var(--ffnl-line);
  color: #7f8790; font-size: 11px; line-height: 1.7;
}
.ffnl-page main.preferences-main.ffnl-main :where(a,button):focus-visible {
  outline: 2px solid #b5231b; outline-offset: 3px;
}
@media (max-width: 1060px) {
  .ffnl-page .preferences-shell.ffnl-shell {
    grid-template-columns: minmax(0,1fr) minmax(365px,.91fr); gap: 42px;
  }
  .ffnl-page .preferences-title { font-size: clamp(50px, 6vw, 68px); }
  .ffnl-page .ffnl-subscribe { padding: 29px; }
}
@media (max-width: 880px) {
  .ffnl-page main.preferences-main.ffnl-main { padding: 55px 28px 95px; }
  .ffnl-page .preferences-shell.ffnl-shell {
    display: grid; grid-template-columns: 1fr; gap: 48px; max-width: 640px;
  }
  .ffnl-page .ffnl-route { margin-bottom: 52px; }
  .ffnl-page .preferences-title {
    max-width: 650px; font-size: clamp(46px, 7.8vw, 72px);
  }
  .ffnl-page .ffnl-topics { margin-top: 45px; }
  .ffnl-page .ffnl-how { margin-top: 30px; }
  .ffnl-page .ffnl-subscribe {
    margin-top: 0; padding: clamp(27px, 5vw, 43px);
  }
}
/* On narrow screens, put the form directly after the main promise so a
   visitor does not have to scroll through the full editorial inventory first.
   Source semantics and the original consent form remain unchanged. */
@media (max-width: 880px) {
  .ffnl-page .preferences-shell.ffnl-shell {
    display: flex; flex-direction: column; gap: 0;
  }
  .ffnl-page .ffnl-editorial { display: contents; }
  .ffnl-page .ffnl-route { order: 0; width: 100%; }
  .ffnl-page .preferences-kicker { order: 1; width: 100%; }
  .ffnl-page .preferences-title { order: 2; width: 100%; }
  .ffnl-page .preferences-lead { order: 3; width: 100%; }
  .ffnl-page .ffnl-subscribe { order: 4; width: 100%; margin-top: 45px; }
  .ffnl-page .ffnl-topics { order: 5; width: 100%; margin-top: 56px; }
  .ffnl-page .ffnl-how { order: 6; width: 100%; margin-top: 30px; }
}
@media (max-width: 540px) {
  .ffnl-page main.preferences-main.ffnl-main { padding: 40px 19px 77px; }
  .ffnl-page .preferences-shell.ffnl-shell { gap: 0; }
  .ffnl-page .ffnl-route {
    align-items: start; flex-wrap: wrap; margin-bottom: 43px; gap: 9px;
  }
  .ffnl-page .ffnl-route-side {
    width: 100%; margin: 0 0 0 31px; text-align: left;
  }
  .ffnl-page .preferences-title {
    font-size: clamp(43px, 11.4vw, 61px); line-height: 1.06;
  }
  .ffnl-page .preferences-lead { font-size: 16px; margin-top: 21px; }
  .ffnl-page .ffnl-topics { margin-top: 39px; }
  .ffnl-page .ffnl-topic {
    gap: 11px; grid-template-columns: 30px minmax(0,1fr);
    padding: 18px 0 20px;
  }
  .ffnl-page .ffnl-topic h2 { font-size: 18px; }
  .ffnl-page .ffnl-topic p { font-size: 13px; }
  .ffnl-page .ffnl-how {
    grid-template-columns: 22px minmax(0,1fr);
    gap: 12px; padding: 17px 16px;
  }
  .ffnl-page .ffnl-how-symbol {
    width: 22px; height: 22px; font-size: 15px;
  }
  .ffnl-page .ffnl-subscribe {
    padding: 26px 21px 22px; border-radius: 9px;
  }
  .ffnl-page .ffnl-subscribe-header h2 {
    margin-top: 16px; font-size: 32px;
  }
  .ffnl-page .preferences-card { margin-top: 25px; }
  .ffnl-page .newsletter-context-pill { min-height: 39px; font-size: 12px; }
}
@media (prefers-reduced-motion: reduce) {
  .ffnl-page .preferences-input,
  .ffnl-page .newsletter-context-pill,
  .ffnl-page .preferences-submit {
    scroll-behavior: auto!important; transition: none!important;
  }
}
@media (forced-colors: active) {
  .ffnl-page .ffnl-subscribe,
  .ffnl-page .newsletter-context-pill,
  .ffnl-page .preferences-input,
  .ffnl-page .preferences-submit { border: 1px solid CanvasText; }
  .ffnl-page .newsletter-context-pill.is-selected { border: 2px solid Highlight; }
  .ffnl-page .ffnl-route-mark { background: CanvasText; }
}
@media print {
  .ffnl-page main.preferences-main.ffnl-main { padding: 22px 0; }
  .ffnl-page .preferences-shell.ffnl-shell {
    display: block; width: 100%; max-width: 100%;
  }
  .ffnl-page .preferences-title { font-size: 45px; }
  .ffnl-page .ffnl-subscribe {
    margin-top: 34px; box-shadow: none; break-inside: avoid;
  }
  .ffnl-page .ffnl-how { background: #fff; }
  .ffnl-page .preferences-submit { box-shadow: none; }
}