/* -------------------------------------------------------------------------- */
/* Popin newsletter (js/newsletter.js)                                        */
/* -------------------------------------------------------------------------- */
/* Le formulaire Brevo (shortcode [sibwp_form id=2]) est rendu dans le pied de */
/* page HORS de .smooth-content : il survit donc aux navigations sans          */
/* rechargement, et le JS du plugin (délégué sur `document`) reste branché.    */
/* Habillage repris des cartes du site : pilule blanche, filet noir 1 px,      */
/* grands rayons, et le bouton d'envoi dans le langage des boutons du site.    */
/* -------------------------------------------------------------------------- */

.ac-nl {
  position: fixed;
  inset: 0;
  z-index: 2147481500;                 /* au-dessus de la bannière cookies, sous l'intro */
  display: grid;
  place-items: center;
  padding: 20px;
  background: rgba(29, 29, 27, .45);
  opacity: 0;
  visibility: hidden;
  transition: opacity .35s ease-out, visibility 0s .35s;
}
.ac-nl.is-open {
  opacity: 1;
  visibility: visible;
  transition: opacity .3s ease-out, visibility 0s;
}

.ac-nl__panel {
  position: relative;
  /* le thème ne pose pas box-sizing partout : sans ça, les 32 px de padding
     s'ajoutent à la largeur et le panneau dépasse de l'écran sur téléphone. */
  box-sizing: border-box;
  width: min(520px, 100%);
  max-height: calc(100dvh - 40px);
  overflow: auto;
  padding: 34px 32px 28px;
  background: #fff;
  color: #1d1d1b;
  border: 1px solid #000;
  border-radius: 28px;
  box-shadow: 0 24px 60px -24px rgba(0, 0, 0, .45);
  transform: translateY(18px) scale(.98);
  transition: transform .5s cubic-bezier(.16, 1, .3, 1);
}
.ac-nl.is-open .ac-nl__panel { transform: none; }

.ac-nl__title {
  margin: 0 0 8px;
  font-size: clamp(1.4rem, 4.4vw, 1.75rem);
  font-weight: 700;
  line-height: 1.15;
}
.ac-nl__intro {
  margin: 0 0 22px;
  font-size: 15px;
  line-height: 1.5;
}

/* Fermeture : même pastille que les boutons du site */
.ac-nl__close {
  position: absolute;
  top: 18px;
  right: 18px;
  width: 38px;
  height: 38px;
  display: grid;
  place-items: center;
  padding: 0;
  background: transparent;
  border: 1px solid #000;
  border-radius: 50%;
  color: #1d1d1b;
  cursor: pointer;
  transition: background-color .25s ease-out, color .25s ease-out;
}
.ac-nl__close:hover,
.ac-nl__close:focus-visible { background: #ffd5d2; }
.ac-nl__close svg { width: 15px; height: 15px; display: block; }

/* --- Le formulaire Brevo -------------------------------------------------- */
.ac-nl form.sib_signup_form p { margin: 0 0 14px; }
.ac-nl form.sib_signup_form label {
  display: block;
  margin-bottom: 5px;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: .01em;
}
.ac-nl form.sib_signup_form input[type="email"],
.ac-nl form.sib_signup_form input[type="text"] {
  box-sizing: border-box;
  width: 100%;
  margin: 0;
  padding: 11px 16px;
  font: inherit;
  font-size: 15px;
  color: #1d1d1b;
  background: #fff;
  border: 1px solid #000;
  border-radius: 14px;
  transition: box-shadow .2s ease-out;
}
.ac-nl form.sib_signup_form input[type="email"]:focus,
.ac-nl form.sib_signup_form input[type="text"]:focus {
  outline: none;
  box-shadow: 0 0 0 3px #ffd5d2;
}
.ac-nl form.sib_signup_form input::placeholder { color: #9b9b99; }

.ac-nl form.sib_signup_form .sib-default-btn {
  width: auto;
  margin: 6px 0 0;
  padding: 13px 30px;
  font: inherit;
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  background: #1d1d1b;
  border: 1px solid #1d1d1b;
  border-radius: 1000px;
  cursor: pointer;
  transition: background-color .3s ease-out, color .3s ease-out;
}
.ac-nl form.sib_signup_form .sib-default-btn:hover,
.ac-nl form.sib_signup_form .sib-default-btn:focus-visible {
  color: #1d1d1b;
  background: #ffd5d2;
}

/* Messages du plugin (succès, erreur, champ requis) */
.ac-nl .sib_msg_disp p,
.ac-nl form.sib_signup_form p.sib-alert-message {
  margin: 0 0 14px;
  padding: 10px 14px;
  font-size: 14px;
  border-radius: 14px;
  border: 1px solid currentColor;
}

@media (max-width: 599.98px) {
  .ac-nl { padding: 14px; }
  .ac-nl__panel { padding: 28px 20px 22px; border-radius: 22px; }
  .ac-nl__close { top: 12px; right: 12px; }
}

@media (prefers-reduced-motion: reduce) {
  .ac-nl, .ac-nl__panel { transition: none; }
}
