/* ===================================================================
   MENTION DE FRAICHEUR + FENETRE DE SIGNALEMENT
   Compagnon de includes/mention-fraicheur.php et assets/js/signalement.js.

   La mention est volontairement discrete : elle se lit, elle ne se met
   pas en scene. Une mention rassurante mise en avant a cote d'un prix
   produit l'effet inverse de celui recherche, elle attire l'attention
   sur le doute au lieu de le dissiper.

   Comme le bloc d'appel vers l'assistant, ses variables retombent
   d'abord sur les tokens de la page qui l'accueille (la fiche definit
   son propre vocabulaire), sinon sur ceux du design system global.
   =================================================================== */

.bdsig-mention,
.bdsig-modal {
  --bdsig-accent: var(--indigo, var(--color-primary, #0EA5E9));
  --bdsig-ink:    var(--ink, var(--navy-900, #0F172A));
  --bdsig-ink-70: var(--ink-70, var(--navy-600, #475569));
  --bdsig-line:   var(--line-c, var(--border-default, #E2E8F0));
  --bdsig-paper:  var(--paper, var(--navy-50, #F8FAFC));
  --bdsig-card:   #FFFFFF;
}

/* ── La ligne de mention ─────────────────────────────────────────── */
.bdsig-mention {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 18px 0 0;
  padding: 0;
  font-size: 13px;
  line-height: 1.55;
  /* Contraste tenu : un gris trop pale donne l'impression qu'on cache
     quelque chose, exactement l'inverse de ce que la phrase dit. */
  color: var(--bdsig-ink-70);
}
.bdsig-mention__ic {
  flex: none;
  margin-top: 1px;
  color: var(--bdsig-accent);
}
.bdsig-mention__txt { min-width: 0; }

.bdsig-lien {
  padding: 0;
  border: 0;
  background: none;
  font: inherit;
  color: var(--bdsig-accent);
  font-weight: 700;
  text-decoration: underline;
  text-underline-offset: 2px;
  cursor: pointer;
}
.bdsig-lien:hover { text-decoration-thickness: 2px; }
.bdsig-lien:focus-visible {
  outline: 2px solid var(--bdsig-accent);
  outline-offset: 2px;
  border-radius: 3px;
}

/* ── La fenetre ──────────────────────────────────────────────────── */
/* Un conteneur en flex ou grid reste VISIBLE malgre l'attribut hidden :
   la regle ci-dessous est ce qui garde la fenetre fermee au chargement. */
.bdsig-modal[hidden] { display: none !important; }

.bdsig-modal {
  position: fixed;
  inset: 0;
  z-index: 9000;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 20px;
  /* Hauteur REELLEMENT visible : sur telephone, 100vh inclut la barre
     d'adresse retractable, et le bas de la fenetre passe alors sous l'ecran.
     La ligne vh reste en premier comme repli pour les navigateurs sans dvh. */
  height: 100vh;
  height: 100dvh;
  overflow-y: auto;
}
/* Fixe, pas absolu : la fenetre peut defiler au telephone, et un voile
   absolu resterait accroche en haut du contenu au lieu de couvrir l'ecran. */
.bdsig-modal__voile {
  position: fixed;
  inset: 0;
  background: rgba(15, 23, 42, 0.55);
}
.bdsig-modal__box {
  position: relative;
  width: 100%;
  max-width: 520px;
  max-height: calc(100dvh - 40px);
  overflow-y: auto;
  padding: 26px 26px 22px;
  border-radius: 18px;
  background: var(--bdsig-card);
  color: var(--bdsig-ink);
  box-shadow: 0 24px 60px -20px rgba(15, 23, 42, 0.5);
}
.bdsig-modal__x {
  position: absolute;
  top: 12px;
  right: 12px;
  display: grid;
  place-items: center;
  width: 34px;
  height: 34px;
  border: 0;
  border-radius: 50%;
  background: var(--bdsig-paper);
  color: var(--bdsig-ink-70);
  cursor: pointer;
}
.bdsig-modal__x:hover { color: var(--bdsig-ink); }

.bdsig-noscroll { overflow: hidden; }

/* ── Le formulaire ───────────────────────────────────────────────── */
.bdsig-form__t {
  margin: 0 30px 0 0;
  font-size: 20px;
  font-weight: 800;
  line-height: 1.25;
  letter-spacing: -0.01em;
}
.bdsig-form__sub {
  margin: 7px 0 0;
  font-size: 13.5px;
  line-height: 1.55;
  color: var(--bdsig-ink-70);
}
.bdsig-form__note {
  margin: 12px 0 0;
  font-size: 12.5px;
  line-height: 1.5;
  color: var(--bdsig-ink-70);
}

.bdsig-field { margin-top: 16px; }
/* Meme piege que la fenetre : un champ masque dans une grille resterait
   visible sans cette regle. */
.bdsig-field[hidden] { display: none !important; }

.bdsig-label {
  display: block;
  margin-bottom: 6px;
  font-size: 12.5px;
  font-weight: 700;
  color: var(--bdsig-ink);
}
.bdsig-opt {
  font-weight: 500;
  color: var(--bdsig-ink-70);
}

.bdsig-input {
  width: 100%;
  padding: 11px 13px;
  border: 1px solid var(--bdsig-line);
  border-radius: 11px;
  background: #fff;
  color: var(--bdsig-ink);
  font-family: inherit;
  font-size: 14.5px;
  line-height: 1.4;
}
.bdsig-input:focus {
  outline: none;
  border-color: var(--bdsig-accent);
  box-shadow: 0 0 0 3px rgba(14, 165, 233, 0.16);
}
.bdsig-textarea {
  resize: vertical;
  min-height: 74px;
}

.bdsig-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  align-items: end;
}
.bdsig-row .bdsig-field { margin-top: 16px; }

.bdsig-actuel {
  margin: 0;
  padding: 11px 13px;
  border: 1px dashed var(--bdsig-line);
  border-radius: 11px;
  background: var(--bdsig-paper);
  font-size: 15px;
  font-weight: 700;
  color: var(--bdsig-ink-70);
}

.bdsig-euro { position: relative; }
.bdsig-euro .bdsig-input { padding-right: 32px; }
.bdsig-euro__sig {
  position: absolute;
  top: 50%;
  right: 13px;
  transform: translateY(-50%);
  font-size: 14.5px;
  font-weight: 700;
  color: var(--bdsig-ink-70);
  pointer-events: none;
}

.bdsig-cible {
  /* La marge haute est portee par le .bdsig-field qui l'enveloppe. */
  margin: 0;
  padding: 10px 13px;
  border-radius: 11px;
  background: var(--bdsig-paper);
  font-size: 14px;
  font-weight: 700;
}
.bdsig-cible[hidden] { display: none !important; }

/* Champ leurre : hors de l'ecran, jamais display:none (certains robots
   ignorent les champs non rendus, et un lecteur d'ecran doit pouvoir le
   sauter, ce que fait aria-hidden pose cote HTML). */
.bdsig-hp {
  position: absolute;
  left: -9999px;
  width: 1px;
  height: 1px;
  overflow: hidden;
}

.bdsig-err {
  margin: 14px 0 0;
  padding: 10px 12px;
  border-radius: 10px;
  background: var(--color-danger-light, #FEE2E2);
  color: var(--color-danger-dark, #991B1B);
  font-size: 13px;
  line-height: 1.5;
}
.bdsig-err[hidden] { display: none !important; }

.bdsig-actions {
  display: flex;
  justify-content: flex-end;
  gap: 10px;
  margin-top: 20px;
}
.bdsig-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 11px 18px;
  border: 1px solid transparent;
  border-radius: 999px;
  font-family: inherit;
  font-size: 14px;
  font-weight: 700;
  line-height: 1.2;
  cursor: pointer;
}
/* Deux classes, jamais une seule : les pages qui posent un
   « a { color: inherit } » de page (la fiche) l'emporteraient sinon sur
   une classe simple et le libelle prendrait la couleur du bloc. */
.bdsig-modal .bdsig-btn--primary {
  background: var(--brand-gradient, linear-gradient(120deg, #0EA5E9, #38BDF8 30%, #F472B6 65%, #FB923C));
  color: #fff;
}
.bdsig-modal .bdsig-btn--ghost {
  background: #fff;
  border-color: var(--bdsig-line);
  color: var(--bdsig-ink-70);
}
.bdsig-btn:disabled { opacity: 0.6; cursor: default; }

/* ── L'ecran de confirmation ─────────────────────────────────────── */
.bdsig-ok { text-align: center; padding: 8px 0 4px; }
.bdsig-ok[hidden] { display: none !important; }
.bdsig-ok__ic {
  display: grid;
  place-items: center;
  width: 54px;
  height: 54px;
  margin: 0 auto 14px;
  border-radius: 50%;
  background: var(--color-success-light, #D1FAE5);
  color: var(--color-success-dark, #065F46);
}
.bdsig-ok__t {
  margin: 0;
  font-size: 19px;
  font-weight: 800;
}
.bdsig-ok__s {
  margin: 7px 0 18px;
  font-size: 14px;
  line-height: 1.55;
  color: var(--bdsig-ink-70);
}

@media (max-width: 560px) {
  .bdsig-modal { padding: 12px; align-items: flex-start; }
  .bdsig-modal__box { padding: 22px 18px 18px; max-height: none; }
  .bdsig-row { grid-template-columns: 1fr; }
  .bdsig-actions { flex-direction: column-reverse; }
  .bdsig-btn { width: 100%; }
}

/* Cible sans tarif connu (l'assistant et le comparateur ne transmettent pas de
   grille) : la ligne perd sa colonne de comparaison et repasse sur une seule
   colonne, plutot que de laisser un vide a droite du champ. */
.bdsig-row--seule { grid-template-columns: 1fr; }
