/* Newsletter : bandeau au-dessus du pied de page (toutes les pages) et fenêtre
   temporaire qui s'ouvre en haut de l'accueil après le splash.
   Feuille partagée (une seule source), chargée par chaque page statique et par le
   thème WordPress (voir functions.php). Les variables de la charte viennent de
   chaque page ; les valeurs de repli rendent le tout autonome.

   Le formulaire (.nl-form) est le même partout : ses couleurs passent par les
   variables --nl-* ci-dessous, claires sur le bandeau sombre, foncées dans la
   fenêtre claire. */

.nl-form{
  --nl-label:rgba(255,255,255,.85);
  --nl-text:rgba(255,255,255,.85);
  --nl-muted:rgba(255,255,255,.7);
  --nl-ok:var(--gold-lit, #dcbf83);
  --nl-err:#ffd9c9;
  --nl-focus:#fff;
  --nl-border:transparent;
  display:grid; grid-template-columns:1fr 1fr; gap:14px;
}
.nl-field{ display:block; min-width:0; }
.nl-field-wide{ grid-column:1 / -1; }
.nl-field span{
  display:block; margin-bottom:6px; font-size:.72rem; font-weight:600;
  letter-spacing:.1em; text-transform:uppercase; color:var(--nl-label);
}
.nl-field input{
  width:100%; padding:12px 14px; border-radius:12px;
  border:1px solid var(--nl-border); background:#fff; color:var(--ink, #1e2b2a);
  font-family:inherit; font-size:.95rem; min-height:48px;
}
.nl-field input:focus-visible{ outline:2px solid var(--nl-focus); outline-offset:2px; }

.nl-consent{
  grid-column:1 / -1; display:flex; gap:10px; align-items:flex-start;
  font-size:.85rem; line-height:1.5; color:var(--nl-text); cursor:pointer;
}
.nl-consent input{ flex:none; width:20px; height:20px; margin:2px 0 0; accent-color:var(--accent-warm, #c17a4d); }
.nl-consent input:focus-visible{ outline:2px solid var(--nl-focus); outline-offset:2px; }

.nl-submit{
  grid-column:1 / -1; display:inline-flex; align-items:center; justify-content:center;
  min-height:48px; padding:13px 26px; border:1px solid transparent; border-radius:999px;
  background:var(--accent-warm, #c17a4d); color:#fff;
  font-family:inherit; font-size:.92rem; font-weight:600; cursor:pointer;
  box-shadow:0 12px 24px -10px rgba(193,122,77,.7);
  transition:transform .18s ease, box-shadow .18s ease;
}
.nl-submit:hover{ transform:translateY(-2px); box-shadow:0 16px 30px -10px rgba(193,122,77,.8); }
.nl-submit:focus-visible{ outline:2px solid var(--nl-focus); outline-offset:3px; }
.nl-submit:disabled{ opacity:.65; cursor:progress; transform:none; }

.nl-status{ grid-column:1 / -1; margin:0; font-size:.92rem; line-height:1.5; }
.nl-status[hidden]{ display:none; }
.nl-status.is-ok{ color:var(--nl-ok); font-weight:600; }
.nl-status.is-error{ color:var(--nl-err); }
.nl-status.is-sending{ color:var(--nl-muted); }
.nl-status a{ color:inherit; font-weight:600; }

.nl-privacy{ grid-column:1 / -1; margin:0; font-size:.78rem; color:var(--nl-muted); }
.nl-privacy a{ color:inherit; text-decoration:underline; }

/* champ piège pour les robots : hors écran, jamais visible */
.nl-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }

.nl-eyebrow{
  display:inline-flex; align-items:center; gap:8px; margin:0 0 14px;
  font-size:.72rem; font-weight:600; letter-spacing:.18em; text-transform:uppercase;
}
.nl-eyebrow::before{ content:""; width:22px; height:1px; background:currentColor; }

/* ---------- bandeau au-dessus du pied de page ---------- */
.newsletter{
  padding:64px 0;
  background:linear-gradient(135deg, var(--accent-deep, #3f6b64), var(--ink, #1e2b2a) 78%);
  color:#fff;
  scroll-margin-top:150px;
}
.newsletter .nl-inner{
  display:grid; grid-template-columns:minmax(0, 1fr) minmax(0, 1.15fr);
  gap:clamp(28px, 5vw, 64px); align-items:center;
}
.newsletter .nl-eyebrow{ color:var(--gold-lit, #dcbf83); }
.newsletter h2{
  margin:0 0 12px; font-family:'Cormorant Garamond', Georgia, serif; font-weight:600;
  font-size:clamp(1.8rem, 3vw, 2.5rem); line-height:1.15; color:#fff; text-wrap:balance;
}
.newsletter .nl-lead{ margin:0; max-width:46ch; color:rgba(255,255,255,.82); font-size:1rem; }

/* ---------- fenêtre temporaire (accueil, après le splash) ---------- */
.nl-pop{
  width:min(480px, calc(100% - 32px)); max-height:calc(100dvh - 32px); overflow:auto;
  margin:clamp(16px, 7vh, 72px) auto auto; padding:0;
  border:1px solid rgba(198,161,91,.35); border-radius:20px;
  background:var(--paper, #faf7f2); color:var(--ink, #1e2b2a);
  box-shadow:0 34px 60px -30px rgba(0,0,0,.8);
}
.nl-pop::backdrop{ background:rgba(20,26,25,.55); backdrop-filter:blur(3px); }
.nl-pop-box{ position:relative; padding:30px 26px 26px; }
/* liseré d'or en haut de la carte */
.nl-pop-box::before{
  content:""; position:absolute; top:0; left:26px; right:26px; height:2px;
  background:linear-gradient(90deg, transparent, var(--gold, #c6a15b), transparent);
}
.nl-pop .nl-eyebrow{ color:var(--accent-deep, #3f6b64); }
.nl-pop h2{
  margin:0 0 8px; font-family:'Cormorant Garamond', Georgia, serif; font-weight:600;
  font-size:1.75rem; line-height:1.15; color:var(--ink, #1e2b2a); padding-right:36px;
}
.nl-pop .nl-lead{ margin:0 0 18px; font-size:.92rem; color:var(--ink-soft, #4a5957); }
.nl-pop .nl-form{
  --nl-label:var(--accent-deep, #3f6b64);
  --nl-text:var(--ink-soft, #4a5957);
  --nl-muted:var(--ink-soft, #4a5957);
  --nl-ok:var(--accent-deep, #3f6b64);
  --nl-err:#a4462c;
  --nl-focus:var(--accent-deep, #3f6b64);
  --nl-border:var(--line, rgba(30,43,42,.10));
}
.nl-pop-close{
  position:absolute; top:8px; right:8px; width:44px; height:44px; padding:0;
  display:flex; align-items:center; justify-content:center;
  border:0; border-radius:999px; background:transparent; cursor:pointer;
  font-size:1.7rem; line-height:1; color:var(--ink-soft, #4a5957);
}
.nl-pop-close:hover{ background:var(--paper-alt, #f1ece2); }
.nl-pop-close:focus-visible{ outline:2px solid var(--accent-deep, #3f6b64); outline-offset:2px; }

@media (prefers-reduced-motion:no-preference){
  .nl-pop[open]{ animation:nlPopIn .5s cubic-bezier(.16,.84,.34,1) both; }
  .nl-pop[open]::backdrop{ animation:nlPopFade .4s ease both; }
  @keyframes nlPopIn{ from{ opacity:0; transform:translateY(-24px); } to{ opacity:1; transform:none; } }
  @keyframes nlPopFade{ from{ opacity:0; } to{ opacity:1; } }
}
@media (prefers-reduced-motion:reduce){
  .nl-submit{ transition:none; }
}

@media (max-width:860px){
  .newsletter{ padding:52px 0; }
  .newsletter .nl-inner{ grid-template-columns:1fr; }
}
@media (max-width:520px){
  .nl-form{ grid-template-columns:1fr; }
  .nl-pop-box{ padding:26px 20px 22px; }
}
