/* The newsletter sign-up (public/newsletter.js): footer, inline and card variants in the site's colors (plum, gold, ivory). Uses the site's
   tokens when the page has them (public/site.css), with the same values as fallbacks. One column on phones, no sideways scroll. */
.nl{--nl-plum:var(--plum,#3E1F47);--nl-gold:var(--accent,#C8791A);--nl-ink:var(--ink,#1E1B18);--nl-body:var(--body,#3D3832);--nl-mute:var(--mute,#736B64);--nl-line:var(--line,#EBE3D8);--nl-bad:var(--bad,#A23B2C);
  box-sizing:border-box;max-width:100%;color:var(--nl-body);font:inherit}
.nl *{box-sizing:border-box}
.nl-h{margin:0 0 6px;font:400 1.5rem/1.2 Newsreader,Georgia,'Times New Roman',serif;color:var(--nl-ink)}
.nl-lead{margin:0 0 14px;color:var(--nl-mute);font-size:.95rem;line-height:1.5}
.nl-form{margin:0}
.nl-fields{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end}
.nl-f{display:flex;flex-direction:column;gap:4px;flex:1 1 140px;min-width:0;font-size:.85rem;font-weight:600;color:var(--nl-ink)}
.nl-f.nl-email{flex:2 1 220px}
.nl-f select{width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--field,#968B80);border-radius:12px;background:#fff;color:var(--nl-ink);font:16px/1.3 inherit}
.nl-f input{width:100%;min-height:46px;padding:10px 14px;border:1px solid var(--field,#968B80);border-radius:12px;background:#fff;color:var(--nl-ink);font:16px/1.3 inherit}
.nl-f select:focus-visible,.nl-f input:focus-visible,.nl-consent input:focus-visible,.nl-btn:focus-visible{outline:3px solid var(--nl-gold);outline-offset:2px}
.nl-f input[aria-invalid=true],.nl-consent input[aria-invalid=true]{border-color:var(--nl-bad);box-shadow:0 0 0 1px var(--nl-bad)}
.nl-btn{min-height:46px;padding:0 24px;border:0;border-radius:999px;background:var(--nl-plum);color:#fff;font:600 15px/1 inherit;cursor:pointer;flex:0 0 auto}
.nl-btn:hover{background:var(--plum-2,#5A3366)}.nl-btn[disabled]{opacity:.7;cursor:wait}
.nl-consent{display:flex;gap:10px;align-items:flex-start;min-height:44px;margin:12px 0 0;font-size:.85rem;line-height:1.45;color:var(--nl-body);cursor:pointer}
.nl-consent input{width:20px;height:20px;margin:1px 0 0;flex:0 0 auto;accent-color:var(--nl-plum)}
.nl-consent a{color:var(--nl-plum);text-decoration:underline}
.nl-err{margin:4px 0 0;font-size:.85rem;color:var(--nl-bad);min-height:0}.nl-err:empty{display:none}
.nl-msg{margin:8px 0 0;font-size:.9rem}.nl-msg:empty{display:none}.nl-msg.nl-bad{color:var(--nl-bad)}
.nl-trap{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}
.nl-done{padding:4px 0;border-left:3px solid var(--nl-gold);padding-left:14px}.nl-done:focus{outline:none}.nl-done .nl-h{font-size:1.25rem}
/* variants */
.nl-plain{margin-top:24px}.nl-plain .nl-f.nl-role{flex:1 1 180px}
.nl-card{padding:28px 24px;background:var(--surface,#fff);border:1px solid var(--nl-line);border-radius:20px;box-shadow:0 1px 2px rgba(30,27,24,.05)}
.nl-card .nl-h{font-size:1.75rem}
.nl-inline{padding:20px 0;border-top:1px solid var(--nl-line);border-bottom:1px solid var(--nl-line)}
.nl-footer{--nl-ink:#fff;--nl-body:var(--on-plum,#D9CCDF);--nl-mute:var(--on-plum,#D9CCDF);--nl-bad:#FFB4A6}
.nl-footer .nl-h{font-size:1.15rem}.nl-footer .nl-f input{border-color:rgba(255,255,255,.35)}
.nl-footer .nl-btn{background:var(--gold,#F2C98A);color:var(--plum-3,#2B1433)}.nl-footer .nl-btn:hover{background:var(--gold-2,#E9B56A)}
.nl-footer .nl-consent a{color:var(--gold,#F2C98A)}.nl-footer .nl-consent input{accent-color:var(--gold,#F2C98A)}
@media (max-width:480px){.nl-fields{flex-direction:column;align-items:stretch}.nl-f,.nl-f.nl-email{flex:1 1 auto}.nl-btn{width:100%}.nl-card{padding:22px 16px}}
:root[data-theme=dark] .nl-consent a{color:#D9B8E2}
:root[data-theme=dark] .nl-f input,:root[data-theme=dark] .nl-f select{background:var(--surface,#211A24);color:var(--ink,#F6EFE6)}
