/* =========================================================
   Data Disruption — CTA enhancements
   Sticky scroll CTA (offers) + inline newsletter widget
   ========================================================= */

/* ---------- Sticky scroll CTA (hidden until scrolled) ---------- */
.sticky-cta{
  position:fixed;
  right:clamp(16px,3vw,32px);
  bottom:clamp(16px,3vw,24px);
  z-index:150;
  display:flex;align-items:center;gap:10px;
  background:var(--ink);color:var(--bg);
  padding:12px 16px 12px 18px;
  border:1px solid var(--ink);
  border-radius:2px;
  font-family:var(--mono);font-size:12px;letter-spacing:.05em;
  text-transform:uppercase;
  text-decoration:none;
  box-shadow:0 8px 32px rgba(15,14,10,.22);
  opacity:0;transform:translateY(16px);
  pointer-events:none;
  transition:opacity .3s ease, transform .3s ease, background .15s, color .15s;
}
.sticky-cta.visible{opacity:1;transform:translateY(0);pointer-events:auto}
.sticky-cta:hover{background:var(--navy);border-color:var(--navy)}
.sticky-cta .arr{font-family:var(--serif);font-size:16px;line-height:1;text-transform:none}
.sticky-cta .close{
  all:unset;cursor:pointer;
  margin-left:8px;padding:0 4px;
  font-family:var(--sans);font-size:14px;
  opacity:.6;transition:opacity .15s;
}
.sticky-cta .close:hover{opacity:1}
.sticky-cta.dismissed{display:none}
@media (max-width:600px){
  .sticky-cta{font-size:11px;padding:10px 12px 10px 14px}
  .sticky-cta .close{margin-left:4px}
}

/* ---------- a11y helper ---------- */
.sr-only{
  position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;
  clip:rect(0,0,0,0);white-space:nowrap;border:0;
}

/* ---------- Inline newsletter widget ---------- */
.nl-widget{
  margin:clamp(48px,6vw,80px) auto clamp(24px,4vw,48px);
  padding:clamp(28px,4vw,44px);
  background:var(--paper);
  border:1px solid var(--line-dark);
  border-left:3px solid var(--navy);
  max-width:720px;
}
.nl-widget .eyebrow{
  font-family:var(--mono);font-size:11px;
  color:var(--navy);letter-spacing:.12em;
  text-transform:uppercase;margin-bottom:10px;
}
.nl-widget h3{
  font-family:var(--serif);font-size:clamp(22px,2.6vw,30px);
  font-style:italic;margin:0 0 8px;color:var(--ink);
  letter-spacing:-.01em;line-height:1.2;
}
.nl-widget p{
  font-size:14px;line-height:1.6;color:var(--ink-dim);
  margin:0 0 18px;
}
.nl-form{display:flex;gap:8px;flex-wrap:wrap;align-items:stretch}
.nl-form input[type=email]{
  flex:1 1 260px;
  padding:12px 14px;
  border:1px solid var(--line-dark);
  background:var(--bg);
  font-family:var(--sans);font-size:14px;
  color:var(--ink);
  border-radius:2px;
  min-width:0;
}
.nl-form input[type=email]:focus{
  outline:2px solid var(--navy);outline-offset:1px;
}
.nl-form button{
  padding:12px 18px;
  background:var(--ink);color:var(--bg);
  border:1px solid var(--ink);
  font-family:var(--mono);font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;cursor:pointer;border-radius:2px;
  transition:background .15s, color .15s;
}
.nl-form button:hover{background:var(--navy);border-color:var(--navy)}
.nl-form button[disabled]{opacity:.6;cursor:wait}
.nl-note{
  margin-top:12px;font-family:var(--mono);
  font-size:11px;color:var(--ink-muted);letter-spacing:.04em;
}
.nl-status{
  margin-top:14px;font-size:13px;
}
.nl-status[data-state=success]{color:var(--leaf)}
.nl-status[data-state=error]{color:var(--rust)}
