/* =========================================================
   Base acquéreurs — pages « Déposer ma recherche », « Ma recherche »,
   confirmations, « Vos données » et formulaire acquéreur de l'admin.
   Reprend la maquette docs-acquereurs/maquettes/ (couleurs, tailles, espacements)
   avec les polices du site (Cormorant Garamond + Work Sans).
   ========================================================= */

:root {
  --acq-marine: #0B1B33;
  --acq-or: #C9A24B;
  --acq-or-fonce: #8A6A1F;
  --acq-fond: #F7F5F0;
  --acq-bordure: #E2DDD0;
  --acq-texte: #2E3645;
  --acq-texte-secondaire: #4A5261;
  --acq-bordure-champ: #AEB4BF;
  --acq-obligatoire: #9A3412;
  --acq-erreur: #9A3412;
  --acq-erreur-fond: #FDF1EC;
  --acq-a-completer: #FBF6EA;
}

.acq-page {
  background: var(--acq-fond);
  color: var(--acq-marine);
  font-family: var(--police-texte);
  padding-bottom: 64px;
}
.acq-page a { color: var(--acq-marine); text-decoration: underline; text-underline-offset: 2px; }
.acq-page a:hover { color: var(--acq-or-fonce); }
.acq-page a:focus-visible,
.acq-page button:focus-visible,
.acq-page select:focus-visible,
.acq-page textarea:focus-visible,
.acq-page input:focus-visible {
  outline: 3px solid var(--acq-or);
  outline-offset: 2px;
}

.acq-conteneur { max-width: 1280px; margin: 0 auto; padding: 0 64px; }
/* L'en-tête du site est collant : les ancres et la mise au point ne doivent pas passer dessous */
.acq-page [data-champ], .acq-page .acq-etape, .acq-page .acq-alerte { scroll-margin-top: 160px; }
@media (max-width: 767px) { .acq-page [data-champ], .acq-page .acq-etape, .acq-page .acq-alerte { scroll-margin-top: 96px; } }

/* --- Introduction --- */
.acq-intro { padding-top: 56px; padding-bottom: 48px; display: flex; flex-direction: column; gap: 20px; }
.acq-fil-ariane { font-size: 14px; color: var(--acq-texte-secondaire); }
.acq-page .acq-fil-ariane a { color: var(--acq-texte-secondaire); text-decoration: none; }
.acq-page .acq-fil-ariane a:hover { color: var(--acq-or-fonce); text-decoration: underline; }
.acq-titre-page {
  margin: 0;
  font-family: var(--police-titres);
  font-size: 60px;
  font-weight: 600;
  line-height: 1.05;
  color: var(--acq-marine);
}
.acq-filet { width: 72px; height: 3px; background: var(--acq-or); }
.acq-chapo { margin: 0; max-width: 760px; font-size: 20px; line-height: 1.55; color: var(--acq-texte); }

.acq-engagements { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 16px; }
.acq-engagement {
  display: flex; gap: 16px; align-items: flex-start;
  padding: 20px; background: #FFFFFF; border: 1px solid var(--acq-bordure); border-radius: 12px;
}
.acq-engagement svg { flex-shrink: 0; fill: none; stroke: var(--acq-or-fonce); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.acq-engagement__coche { display: none; }
.acq-engagement div { display: flex; flex-direction: column; gap: 4px; }
.acq-engagement strong { font-size: 17px; font-weight: 700; color: var(--acq-marine); }
.acq-engagement span { font-size: 15px; line-height: 1.5; color: var(--acq-texte-secondaire); }

/* --- Colonnes --- */
.acq-colonnes { display: flex; gap: 32px; align-items: flex-start; }
.acq-principal { flex: 1 1 800px; min-width: 0; max-width: 800px; display: flex; flex-direction: column; gap: 24px; }
.acq-formulaire { display: flex; flex-direction: column; gap: 24px; }
.acq-lateral { flex: 0 0 320px; display: flex; flex-direction: column; gap: 24px; }

/* --- Cartes et étapes --- */
.acq-carte {
  background: #FFFFFF;
  border: 1px solid var(--acq-bordure);
  border-radius: 14px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
section.acq-carte { padding: 32px; } /* annule le padding générique des <section> du site */

.acq-etape__entete { display: flex; align-items: center; gap: 16px; }
.acq-etape__numero {
  width: 40px; height: 40px; flex-shrink: 0; border-radius: 999px;
  background: var(--acq-or); color: var(--acq-marine);
  display: flex; align-items: center; justify-content: center;
  font-family: var(--police-titres); font-size: 22px; font-weight: 700;
}
.acq-etape__titre {
  margin: 0;
  font-family: var(--police-titres);
  font-size: 30px;
  font-weight: 600;
  line-height: 1.2;
  color: var(--acq-marine);
}
.acq-etape__titre .acq-facultatif { font-family: var(--police-texte); font-size: 16px; }

/* --- Champs --- */
.acq-grille-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
.acq-groupe { border: 0; margin: 0; padding: 0; min-width: 0; }
.acq-champ { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.acq-libelle { padding: 0; font-size: 15px; font-weight: 600; color: var(--acq-marine); line-height: 1.4; }
legend.acq-libelle { margin-bottom: 10px; }
.acq-obligatoire { color: var(--acq-obligatoire); }
.acq-facultatif { font-weight: 400; color: var(--acq-texte-secondaire); }
.acq-aide { margin: 0; font-size: 14px; line-height: 1.45; color: var(--acq-texte-secondaire); }
.acq-aide--compteur { display: flex; justify-content: space-between; gap: 16px; }
.acq-compteur { flex-shrink: 0; font-variant-numeric: tabular-nums; }
.acq-compteur--limite { color: var(--acq-erreur); font-weight: 600; }

.acq-page input[type="text"],
.acq-page input[type="email"],
.acq-page input[type="tel"],
.acq-page select,
.acq-page textarea,
.acq-admin .acq-formulaire input[type="text"],
.acq-admin .acq-formulaire input[type="email"],
.acq-admin .acq-formulaire input[type="tel"],
.acq-admin .acq-formulaire select,
.acq-admin .acq-formulaire textarea {
  width: 100%;
  height: 48px;
  box-sizing: border-box;
  padding: 0 14px;
  border: 1px solid var(--acq-bordure-champ);
  border-radius: 8px;
  background: #FFFFFF;
  font-family: inherit;
  font-size: 16px;
  color: var(--acq-marine);
}
.acq-page textarea,
.acq-admin .acq-formulaire textarea { height: auto; min-height: 0; padding: 12px 14px; line-height: 1.5; resize: vertical; }
.acq-page select,
.acq-admin .acq-formulaire select { padding: 0 12px; }
.acq-champ--dpe { max-width: 360px; }
.acq-communes-autres { margin-top: 14px; max-width: 520px; }
.acq-communes-autres[hidden] { display: none; }
.acq-page [aria-invalid="true"],
.acq-admin .acq-formulaire [aria-invalid="true"] { border-color: var(--acq-erreur); }

.acq-saisie-suffixe {
  display: flex; align-items: center; height: 48px; box-sizing: border-box;
  border: 1px solid var(--acq-bordure-champ); border-radius: 8px; background: #FFFFFF; overflow: hidden;
}
.acq-saisie-suffixe:focus-within { outline: 3px solid var(--acq-or); outline-offset: 2px; }
.acq-page .acq-saisie-suffixe input,
.acq-admin .acq-formulaire .acq-saisie-suffixe input { flex: 1 1 auto; min-width: 0; height: 46px; border: 0; border-radius: 0; outline: none; background: transparent; }
.acq-saisie-suffixe span { padding: 0 14px; font-size: 15px; color: var(--acq-texte-secondaire); }
.acq-saisie-suffixe:has([aria-invalid="true"]) { border-color: var(--acq-erreur); }

/* --- Pastilles (vrais boutons radio / cases à cocher, masqués visuellement mais focusables) --- */
.acq-pastilles { display: flex; flex-wrap: wrap; gap: 10px; }
.acq-pastilles--carrees { gap: 8px; }
.acq-pastille { position: relative; display: inline-flex; cursor: pointer; }
.acq-pastille input {
  position: absolute; inset: 0; width: 100%; height: 100%;
  margin: 0; opacity: 0; cursor: pointer;
}
.acq-pastille span {
  display: inline-flex; align-items: center; gap: 8px;
  min-height: 44px; box-sizing: border-box; padding: 0 18px;
  border: 1px solid var(--acq-bordure-champ); border-radius: 999px;
  background: #FFFFFF; color: var(--acq-marine);
  font-size: 15px; font-weight: 600; line-height: 1.2;
  transition: background-color 0.15s, border-color 0.15s, color 0.15s;
}
.acq-pastilles--carrees .acq-pastille span {
  justify-content: center; min-width: 52px; padding: 0 14px; border-radius: 8px; font-size: 16px; font-weight: 700;
}
.acq-coche { display: none; fill: none; stroke: currentColor; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
.acq-pastille:hover span { border-color: var(--acq-marine); }
.acq-pastille input:checked + span { background: var(--acq-marine); border-color: var(--acq-marine); color: #FFFFFF; }
.acq-pastille input:checked + span .acq-coche { display: block; }
.acq-pastille input:focus-visible + span { outline: 3px solid var(--acq-or); outline-offset: 2px; }
.acq-groupe[aria-invalid="true"] .acq-pastille span { border-color: var(--acq-erreur); }

/* --- Encadrés --- */
.acq-a-completer {
  margin: 0; padding: 12px 16px;
  background: var(--acq-a-completer); border: 1px dashed var(--acq-or); border-radius: 8px;
  font-size: 14px; color: #5A4513;
}
.acq-rgpd {
  margin: 0; padding: 16px; background: var(--acq-fond); border-radius: 8px;
  font-size: 14px; line-height: 1.55; color: #3A4252;
}
.acq-page .acq-rgpd a { font-weight: 600; }

.acq-erreur { margin: 6px 0 0; font-size: 14px; font-weight: 600; color: var(--acq-erreur); }
.acq-champ .acq-erreur { margin-top: 0; }

.acq-alerte { padding: 16px 20px; border-radius: 10px; font-size: 15px; line-height: 1.5; }
.acq-alerte p { margin: 0 0 6px; }
.acq-alerte p:last-child { margin-bottom: 0; }
.acq-alerte ul { margin: 6px 0 0; padding-left: 20px; list-style: disc; }
.acq-alerte--erreur { background: var(--acq-erreur-fond); border: 1px solid #E8C2B2; color: var(--acq-erreur); }
.acq-page .acq-alerte--erreur a { color: var(--acq-erreur); }
.acq-alerte--succes { background: #EEF6EF; border: 1px solid #BCDCC2; color: #245232; }
.acq-alerte--info { background: #FFFFFF; border: 1px solid var(--acq-bordure); color: var(--acq-texte); }
.acq-alerte:focus { outline: 3px solid var(--acq-or); outline-offset: 2px; }

/* --- Validation et bouton principal --- */
.acq-etape-finale { gap: 20px; }
.acq-consentement { display: flex; gap: 14px; align-items: flex-start; }
.acq-consentement input { width: 22px; height: 22px; margin: 2px 0 0; flex-shrink: 0; accent-color: var(--acq-marine); cursor: pointer; }
.acq-consentement label { font-size: 16px; line-height: 1.5; color: var(--acq-marine); cursor: pointer; }
.acq-envoi { display: flex; align-items: center; gap: 24px; }
.acq-envoi .acq-aide { max-width: 420px; }

.acq-bouton {
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 56px; padding: 0 32px; border: 0; border-radius: 10px;
  background: var(--acq-marine); color: #FFFFFF;
  font-family: inherit; font-size: 17px; font-weight: 700; line-height: 1.2;
  cursor: pointer; text-decoration: none; flex-shrink: 0;
}
.acq-page a.acq-bouton { color: #FFFFFF; text-decoration: none; }
.acq-bouton:hover { background: #16294a; }
.acq-bouton--secondaire { background: #FFFFFF; color: var(--acq-marine); border: 1px solid var(--acq-marine); }
.acq-page a.acq-bouton--secondaire { color: var(--acq-marine); }
.acq-bouton--secondaire:hover { background: var(--acq-fond); }
.acq-bouton--danger { background: #FFFFFF; color: var(--acq-erreur); border: 1px solid var(--acq-erreur); }
.acq-bouton--danger:hover { background: var(--acq-erreur-fond); }
.acq-page a.acq-bouton--danger, .acq-page a.acq-bouton--danger:hover { color: var(--acq-erreur); }
.acq-bouton--danger-plein { background: var(--acq-erreur); color: #FFFFFF; }
.acq-bouton--danger-plein:hover { background: #7C2A0E; }
.acq-lien-bouton {
  align-self: flex-start; min-height: 44px; padding: 0; border: 0; background: transparent;
  color: var(--acq-marine); font-family: inherit; font-size: 15px; font-weight: 600;
  text-decoration: underline; cursor: pointer;
}

/* Piège anti-spam : hors écran, ignoré des lecteurs d'écran */
.acq-piege { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* --- Message de remerciement / pages de confirmation --- */
.acq-merci { flex-direction: row; gap: 20px; align-items: flex-start; }
.acq-merci__icone {
  width: 52px; height: 52px; flex-shrink: 0; border-radius: 999px; background: var(--acq-marine);
  display: flex; align-items: center; justify-content: center;
}
.acq-merci__icone svg { fill: none; stroke: var(--acq-or); stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.acq-merci__titre {
  margin: 0 0 8px; font-family: var(--police-titres); font-size: 30px; font-weight: 600; line-height: 1.2; color: var(--acq-marine);
}
.acq-merci__titre:focus { outline: none; }
.acq-merci p { margin: 0 0 10px; font-size: 16px; line-height: 1.55; color: var(--acq-texte); }
.acq-merci p:last-child { margin-bottom: 0; }
.acq-merci .acq-aide { font-size: 14px; color: var(--acq-texte-secondaire); }
.acq-actions { display: flex; flex-wrap: wrap; gap: 12px 16px; align-items: center; margin-top: 8px; }

.acq-page-etroite { max-width: 760px; }

/* --- Colonne latérale --- */
.acq-lateral__etapes {
  background: var(--acq-marine); border-radius: 14px; padding: 28px; color: #FFFFFF;
}
.acq-lateral__etapes h2 { margin: 0 0 20px; font-family: var(--police-titres); font-size: 26px; font-weight: 600; color: #FFFFFF; }
.acq-lateral__etapes ol { margin: 0; padding: 0; list-style: none; counter-reset: acq-etapes; display: flex; flex-direction: column; gap: 20px; }
.acq-lateral__etapes li {
  counter-increment: acq-etapes; position: relative; padding-left: 42px;
  font-size: 15px; line-height: 1.5; color: #E6E9EF;
}
.acq-lateral__etapes li::before {
  content: counter(acq-etapes);
  position: absolute; left: 0; top: 0;
  width: 28px; height: 28px; box-sizing: border-box; border: 1px solid var(--acq-or); border-radius: 999px;
  display: flex; align-items: center; justify-content: center;
  font-size: 14px; font-weight: 700; color: var(--acq-or);
}
.acq-lateral__carte { padding: 24px; gap: 10px; }
.acq-lateral__carte h2 { margin: 0; font-family: var(--police-texte); font-size: 17px; font-weight: 700; color: var(--acq-marine); }
.acq-lateral__carte p { margin: 0; font-size: 15px; line-height: 1.5; color: var(--acq-texte-secondaire); }
.acq-page .acq-lien-fort { font-size: 15px; font-weight: 700; }
.acq-page .acq-lateral__telephone {
  font-family: var(--police-titres); font-size: 26px; font-weight: 700; text-decoration: none;
}

/* --- Page « Vos données » --- */
.acq-texte h2 { margin: 8px 0 0; font-family: var(--police-titres); font-size: 26px; font-weight: 600; color: var(--acq-marine); }
.acq-texte p, .acq-texte li { margin: 0; font-size: 16px; line-height: 1.6; color: var(--acq-texte); }
.acq-texte ul { margin: 0; padding-left: 20px; list-style: disc; display: flex; flex-direction: column; gap: 6px; }

/* --- Mode étapes (mobile, ajouté par acquereurs.js) --- */
.acq-progression { display: flex; flex-direction: column; gap: 10px; }
.acq-progression__texte { display: flex; justify-content: space-between; gap: 12px; font-size: 13px; font-weight: 600; color: var(--acq-texte-secondaire); }
.acq-progression__barre { height: 6px; background: var(--acq-bordure); border-radius: 999px; overflow: hidden; }
.acq-progression__remplissage { height: 6px; background: var(--acq-or); transition: width 0.2s; }
/* L'attribut hidden doit toujours l'emporter sur les display définis ci-dessous */
.acq-page [hidden], .acq-barre-actions[hidden], .acq-barre-actions [hidden] { display: none !important; }
.acq-barre-actions {
  position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
  display: flex; gap: 10px;
  padding: 12px 20px calc(20px + env(safe-area-inset-bottom, 0px));
  background: var(--acq-fond); border-top: 1px solid var(--acq-bordure);
}
.acq-barre-actions .acq-bouton { flex: 1 1 auto; min-height: 52px; padding: 0 16px; }
.acq-barre-actions .acq-bouton--secondaire { flex: 0 0 auto; }
.acq-formulaire.acq-mode-etapes .acq-etape:not(.acq-etape--active),
.acq-formulaire.acq-mode-etapes .acq-etape-finale:not(.acq-etape--active) { display: none; }
.acq-formulaire.acq-mode-etapes .acq-envoi .acq-bouton { display: none; }
.acq-page.acq-avec-barre { padding-bottom: 120px; }

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width: 1100px) {
  .acq-conteneur { padding: 0 32px; }
  .acq-colonnes { flex-direction: column; }
  .acq-principal { max-width: none; width: 100%; flex-basis: auto; }
  .acq-lateral { flex-basis: auto; width: 100%; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
}

@media (max-width: 767px) {
  .acq-conteneur { padding: 0 20px; }
  .acq-intro { padding-top: 28px; padding-bottom: 20px; gap: 14px; }
  .acq-fil-ariane { display: none; }
  .acq-titre-page { font-size: 38px; }
  .acq-filet { width: 56px; }
  .acq-chapo { font-size: 16px; line-height: 1.5; }

  .acq-engagements {
    grid-template-columns: 1fr; gap: 8px; margin-top: 0;
    padding: 14px 16px; background: #FFFFFF; border: 1px solid var(--acq-bordure); border-radius: 12px;
  }
  .acq-engagement { padding: 0; border: 0; border-radius: 0; gap: 10px; align-items: center; }
  .acq-engagement__icone { display: none; }
  .acq-engagement__coche { display: block; stroke-width: 2.2; }
  .acq-engagement strong { font-size: 14px; font-weight: 400; color: var(--acq-texte); }
  .acq-engagement span { display: none; }

  .acq-principal, .acq-formulaire { gap: 16px; }
  .acq-carte, section.acq-carte { padding: 20px; gap: 16px; }
  .acq-etape__titre { font-size: 26px; }
  .acq-grille-2 { grid-template-columns: 1fr; gap: 16px; }
  .acq-pastilles { gap: 8px; }
  .acq-pastille span { padding: 0 16px; }
  .acq-champ--dpe { max-width: none; }
  .acq-envoi { flex-direction: column; align-items: stretch; gap: 12px; }
  .acq-merci { flex-direction: column; }
  .acq-merci__titre { font-size: 26px; }
  .acq-lateral { display: flex; }
}

@media (prefers-reduced-motion: reduce) {
  .acq-pastille span, .acq-progression__remplissage { transition: none; }
}

/* =========================================================
   Administration (onglet Acquéreurs)
   ========================================================= */
.acq-admin { color: var(--acq-marine); }
.acq-admin-filtres {
  display: flex; flex-wrap: wrap; gap: 1rem; align-items: flex-end;
  padding: 1.2rem; margin-bottom: 1rem;
  background: #FFFFFF; border: 1px solid var(--gris-bordure); border-radius: var(--rayon);
}
.acq-admin-filtres label { display: block; font-size: 0.8rem; font-weight: 600; margin-bottom: 0.3em; }
.acq-admin-filtres input, .acq-admin-filtres select {
  height: 38px; padding: 0 0.7em; border: 1px solid var(--acq-bordure-champ); border-radius: 6px;
  font-family: inherit; font-size: 0.9rem; background: #FFFFFF;
}
.acq-admin-filtres input[inputmode="numeric"] { width: 7.5em; }
.acq-admin-filtres__actions { display: flex; gap: 1rem; align-items: center; }
.acq-admin-compte { font-size: 0.9rem; color: var(--acq-texte-secondaire); }
.acq-admin-tableau { overflow-x: auto; }
.acq-admin-nombre { white-space: nowrap; text-align: right; }
.acq-admin-fiche { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 1.5rem; align-items: start; }
.acq-admin .acq-etape__titre { font-size: 1.6rem; }
.acq-admin-dl { display: grid; grid-template-columns: max-content 1fr; gap: 0.5rem 1.2rem; margin: 0; font-size: 0.95rem; }
.acq-admin-dl dt { color: var(--acq-texte-secondaire); }
.acq-admin-dl dd { margin: 0; color: var(--acq-marine); overflow-wrap: anywhere; }
.acq-admin-formulaire { max-width: 800px; }
.acq-admin-confirmation { max-width: 760px; }
.acq-admin-confirmation p { margin: 0; }
