/* ============================================================
   ADSGI · ADS GLOBAL INVEST — WEBSITE V2
   master-form.css — Formulaire maître ADSGI unique (WEB-033)
   SSOT : 107_ADSGI_CONTACT_FORM_IMPLEMENTATION_EXECUTION_V2_FINAL_REV1
          WEB-032_IMPLEMENTATION_REPORT_V2_FINAL (§5.1 bis charte menu)
   Tokens constitutionnels VERROUILLÉS hérités de variables.css :
     Navy #0A1F44 · Gold #C8A75D · blanc · gris #5B6678 · Georgia/Calibri
   Aucune redéfinition de token. Mobile-first. Chargée après reconcile.css.
   Règle absolue (107 §U3/§U4 · WEB-032 §5.1 bis) :
     aucun texte blanc sur fond blanc · contraste suffisant sur tous états.
   ============================================================ */

.adsgi-mform {
  --mf-grey:   #5B6678;            /* gris gouverné 107 */
  --mf-border: #c9cedb;
  --mf-bg:     #ffffff;
  --mf-ink:    var(--navy, #0A1F44);
  display: block;
}

.adsgi-mform .mf-grid {
  display: grid;
  grid-template-columns: 1fr;     /* mobile-first : une colonne */
  gap: var(--sp-md, 16px);
}
@media (min-width: 640px) {
  .adsgi-mform .mf-grid { grid-template-columns: 1fr 1fr; }
  .adsgi-mform .mf-full { grid-column: 1 / -1; }
}

.adsgi-mform .mf-field { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.adsgi-mform .mf-field > label {
  font-family: var(--font-body, sans-serif);
  font-size: .9rem;
  font-weight: 600;
  color: var(--mf-ink);
}
.adsgi-mform .mf-req { color: var(--gold-deep, #a8863f); }

.adsgi-mform input[type="text"],
.adsgi-mform input[type="email"],
.adsgi-mform input[type="tel"],
.adsgi-mform input[type="file"],
.adsgi-mform select,
.adsgi-mform textarea {
  width: 100%;
  box-sizing: border-box;
  font-family: var(--font-body, sans-serif);
  font-size: 1rem;
  color: var(--mf-ink);                 /* texte navy — jamais blanc */
  background: var(--mf-bg);             /* fond blanc — bordure contrastée */
  border: 1px solid var(--mf-border);
  border-radius: var(--radius, 4px);
  padding: 11px 12px;
  min-height: 44px;                     /* zone tactile mobile */
  -webkit-appearance: none;
  appearance: none;
}
.adsgi-mform textarea { min-height: 132px; resize: vertical; line-height: 1.5; }

.adsgi-mform input:focus,
.adsgi-mform select:focus,
.adsgi-mform textarea:focus {
  outline: none;
  border-color: var(--gold, #C8A75D);
  box-shadow: 0 0 0 3px rgba(200,167,93,.25);
}

/* Menu déroulant — charte 4 états opposable (WEB-032 §5.1 bis) */
.adsgi-mform select {
  background-image:
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path fill='%230A1F44' d='M1 1l5 5 5-5'/></svg>");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 34px;
  cursor: pointer;
}
.adsgi-mform select option { color: var(--mf-ink); background: #fff; }       /* fermé/ouvert */
.adsgi-mform select option:hover { background: #FBF6E8; }                    /* survol gold clair */
.adsgi-mform select option:checked { background: var(--navy,#0A1F44); color:#fff; } /* sélectionné */
.adsgi-mform select:invalid,
.adsgi-mform select[data-placeholder="true"] { color: var(--mf-grey); }      /* placeholder lisible */

/* Téléphone international : drapeau + indicatif + numéro */
.adsgi-mform .mf-phone { display: flex; gap: 8px; align-items: stretch; }
.adsgi-mform .mf-phone .mf-dial {
  flex: 0 0 auto;
  max-width: 46%;
  font-size: .95rem;
}
.adsgi-mform .mf-phone .mf-number { flex: 1 1 auto; }
.adsgi-mform .mf-hint { font-size: .8rem; color: var(--mf-grey); }

/* Compteur message */
.adsgi-mform .mf-counter { font-size: .8rem; color: var(--mf-grey); align-self: flex-end; }
.adsgi-mform .mf-counter.is-warn { color: var(--gold-deep, #a8863f); }
.adsgi-mform .mf-counter.is-over { color: #b3261e; font-weight: 700; }

/* Consentement RGPD */
.adsgi-mform .mf-consent {
  display: flex; gap: 10px; align-items: flex-start;
  font-size: .9rem; color: var(--mf-ink); line-height: 1.5;
}
.adsgi-mform .mf-consent input[type="checkbox"] { width: 18px; height: 18px; margin-top: 2px; flex: 0 0 auto; }
.adsgi-mform .mf-consent a { color: var(--gold-deep, #a8863f); }

/* Pièce jointe */
.adsgi-mform .mf-file-note { font-size: .8rem; color: var(--mf-grey); }

/* Erreurs par champ (107 §U5) */
.adsgi-mform .mf-error { font-size: .82rem; color: #b3261e; display: none; }
.adsgi-mform .mf-field.is-invalid .mf-error { display: block; }
.adsgi-mform .mf-field.is-invalid input,
.adsgi-mform .mf-field.is-invalid select,
.adsgi-mform .mf-field.is-invalid textarea { border-color: #b3261e; }

/* Bloc canaux alternatifs (repliable) */
.adsgi-mform .mf-channels-toggle {
  background: none; border: 1px dashed var(--mf-border); color: var(--mf-ink);
  font-family: var(--font-body, sans-serif); font-size: .9rem; font-weight: 600;
  padding: 10px 12px; border-radius: var(--radius,4px); cursor: pointer; width: 100%;
  text-align: left;
}
.adsgi-mform .mf-channels-toggle:focus { outline: none; box-shadow: 0 0 0 3px rgba(200,167,93,.25); }
.adsgi-mform .mf-channels[hidden] { display: none; }

/* Honeypot */
.adsgi-mform .mf-hp { position: absolute; left: -5000px; height: 0; width: 0; overflow: hidden; }

/* Statut soumission (accusé conditionné — 107 §U1/§S6) */
.adsgi-mform .mf-status { display: none; padding: 12px 14px; border-radius: var(--radius,4px); font-size: .92rem; margin-top: var(--sp-md,16px); }
.adsgi-mform .mf-status.is-ok    { display:block; background: rgba(200,167,93,.12); border:1px solid rgba(200,167,93,.4); color: var(--mf-ink); }
.adsgi-mform .mf-status.is-error { display:block; background: rgba(179,38,30,.08);  border:1px solid rgba(179,38,30,.35); color:#7a1c16; }

/* Turnstile widget */
.adsgi-mform .cf-turnstile { margin: var(--sp-sm,8px) 0; }

/* Sur fond Navy (formulaire d'accueil) : libellés lisibles, champs clairs */
.section--navy .adsgi-mform .mf-field > label,
.section--navy .adsgi-mform .mf-consent { color: rgba(255,255,255,.9); }
.section--navy .adsgi-mform .mf-hint,
.section--navy .adsgi-mform .mf-counter,
.section--navy .adsgi-mform .mf-file-note { color: rgba(255,255,255,.62); }
.section--navy .adsgi-mform input,
.section--navy .adsgi-mform select,
.section--navy .adsgi-mform textarea { background:#fff; color: var(--navy,#0A1F44); border-color: rgba(255,255,255,.35); }
