/* Subscribe box (9 Oct 2026): email sign-up for new articles and the Room to Disagree newsletter. Tokens only.
   Loaded only by pages that show the box (article pages, /blog, Room to Disagree, the seeded-error audit, the oversight
   checklist), so the site-wide stylesheet and every other page stay as they are. Markup: tools/subscribe.py.
   Reuses .field, .field-error, .btn--primary and .form-status from styles.css. Centred, like every boxed call to action. */
.subscribe{border:var(--border-hairline) solid var(--line);border-radius:var(--radius-lg);padding:var(--space-8) var(--space-6);background:var(--surface-alt);text-align:center}
/* pinned so the box looks the same inside an article (whose h2 and p rules are larger) and on other pages */
.subscribe .subscribe__h{margin:0 0 var(--space-2);font-size:var(--size-2xl);line-height:var(--leading-snug);text-wrap:balance}
.subscribe .subscribe__lead{margin:0 auto var(--space-6);max-width:var(--measure-lead);color:var(--ink-soft);font-size:var(--size-md)}
.subscribe__form{max-width:30rem;margin-inline:auto;text-align:left}
.subscribe__form .field{margin:0}
.subscribe__consent{display:flex;gap:var(--space-3);align-items:flex-start;margin-top:var(--space-4);color:var(--ink-soft);font-size:var(--size-md);line-height:var(--leading-normal);cursor:pointer}
.subscribe__consent input[type="checkbox"]{appearance:none;-webkit-appearance:none;flex:0 0 auto;width:24px;height:24px;margin:0;border:2px solid var(--field-line);border-radius:var(--radius-sm);background:var(--surface);display:grid;place-content:center;cursor:pointer;transition:border-color var(--duration-fast),background var(--duration-fast)}
.subscribe__consent input[type="checkbox"]::after{content:"";width:11px;height:6px;border-left:2px solid var(--surface);border-bottom:2px solid var(--surface);transform:rotate(-45deg) scale(0);transition:transform var(--duration-fast) ease-in-out;margin-top:-2px}
.subscribe__consent input[type="checkbox"]:checked{background:var(--brand);border-color:var(--brand)}
.subscribe__consent input[type="checkbox"]:checked::after{transform:rotate(-45deg) scale(1)}
.subscribe__consent input[type="checkbox"]:focus-visible{outline:3px solid var(--focus-ring);outline-offset:2px}
.subscribe__consent input[aria-invalid="true"]{border-color:var(--error-ink)}
.subscribe__consent + .field-error{margin-left:calc(var(--space-6) + var(--space-3))}
.subscribe__form .btn{margin-top:var(--space-6);width:100%;justify-content:center}
.subscribe .subscribe__small{margin:var(--space-6) 0 0;color:var(--muted);font-size:var(--size-sm);line-height:var(--leading-normal);text-align:center}
.subscribe__small a{color:inherit;text-decoration:underline;text-underline-offset:3px}
.subscribe__alt{margin:var(--space-4) 0 0;text-align:center;font-size:var(--size-sm)}
.subscribe__alt a{font-weight:var(--weight-bold);color:var(--brand)}
/* where it sits: inside an article (after the author box), or as its own band before the footer */
.article-col .subscribe{margin-top:var(--space-10)}
.articles__grid + .subscribe{margin-top:var(--space-12)}
.subscribe-band{padding-block:var(--space-12) var(--space-16)}
.subscribe-band .subscribe{max-width:52rem;margin-inline:auto}
@media (max-width:640px){
  .subscribe{padding:var(--space-6) var(--space-4)}
  .subscribe .subscribe__h{font-size:var(--size-xl)}
}
