/* Newsletters – sign-up popup (list styles are in listing.css) */
/* ══════════════════════════════════════════
   SIGNUP POPUP — same visual content as before, now a scroll-triggered modal
══════════════════════════════════════════ */
.nl-modal-overlay{position:fixed;inset:0;background:rgba(10,10,10,.65);z-index:999;display:flex;align-items:center;justify-content:center;padding:20px;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}
.nl-modal-overlay.show{opacity:1;visibility:visible}
.nl-promo{display:grid;grid-template-columns:auto 1fr;max-width:900px;width:100%;max-height:90vh;overflow-y:auto;background:#fff;position:relative;box-shadow:0 30px 80px rgba(0,0,0,.35);transform:translateY(24px);transition:transform .35s ease}
.nl-modal-overlay.show .nl-promo{transform:translateY(0)}
.nl-modal-close{position:absolute;top:14px;right:14px;width:32px;height:32px;border:none;border-radius:50%;background:rgba(0,0,0,.06);color:var(--text-2);font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,color .2s;z-index:3}
.nl-modal-close:hover{background:rgba(0,0,0,.12);color:var(--ink)}
.nl-promo-img{background:var(--ink);width:clamp(220px,28vw,340px);position:relative;overflow:hidden;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}
.nl-promo-img img{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.nl-promo-body{background:#fff;padding:48px 5vw;display:flex;flex-direction:column;justify-content:center}
.nl-promo-title{font-family:var(--font-display);font-size:clamp(1.44rem,2.7vw,2.16rem);font-weight:600;color:var(--ink);letter-spacing:-0.012em;line-height:1.15;margin-bottom:8px}
.nl-promo-tag{font-family:var(--font-body);font-size:var(--eyebrow-size);letter-spacing:.18em;text-transform:uppercase;color:var(--text-3);margin-bottom:14px}
.nl-promo-desc{font-family:var(--font-body);font-size:15px;line-height:1.8;color:var(--text-2);margin-bottom:6px}
.nl-promo-sub{font-family:var(--font-body);font-size:.86rem;color:var(--ink);font-weight:600;margin-bottom:4px}
.nl-promo-hashtag{font-family:var(--font-body);font-size:.76rem;color:var(--muted-2);letter-spacing:.1em;margin-bottom:22px}
.nl-form{display:flex;flex-direction:column;gap:10px;max-width:380px}
.nl-form input{padding:.85rem 1rem;border:1px solid var(--line);font-family:var(--font-body);font-size:.86rem;outline:none;color:var(--ink);transition:border-color .2s}
.nl-form input:focus{border-color:var(--ink)}
.nl-form button{padding:.9rem 1.4rem;background:var(--ink);color:#fff;border:none;font-family:var(--font-body);font-size:var(--eyebrow-size);letter-spacing:.18em;text-transform:uppercase;cursor:pointer;transition:background .2s}
.nl-form button:hover{background:var(--ink-2)}

@media(max-width:768px){
  .nl-promo{grid-template-columns:1fr;max-height:85vh}
  .nl-promo-img{width:100%;min-height:160px}
  .nl-promo-body{padding:36px 24px}
}
.nl-msg{font-size:.78rem;margin-top:8px}
.nl-msg.ok{color:green}.nl-msg.err{color:#c0392b}
