/* ============================================================
   BLG — pages institutionnelles (refonte L6, piste B « Clair & direct ») :
   investir, legroupe, avis, contact, promoteurs, careers, mention_legale, politique_de_confidentialite.
   Chargé après blg-ds.css ($extra_css). En-tête de page blanc .ins-hero (fin des .page-header verts/marine
   forcés en !important par style.css), fil .ds-breadcrumb, formulaires en .ds-input (focus visible).
   Les sections historiques gardent leur contenu ; leurs variables (--navy, --gold…) sont déjà remappées
   sur la piste B dans style.css.
   ============================================================ */

body:has(.ins-page) { background: var(--ds-surface); }
.ins-page { padding-top: var(--nav-h); font-family: var(--ds-font); color: var(--ds-text); }
.ins-wrap { width: min(100% - 2 * var(--ds-sp-4), var(--ds-container)); margin-inline: auto; }
.ins-page .container { max-width: calc(var(--ds-container) + 48px); }
.ins-crumbs { padding: var(--ds-sp-4) 0 0; }
.ins-crumbs li { min-width: 0; overflow-wrap: anywhere; }

/* En-tête de page */
.ins-hero { padding: var(--ds-sp-2) 0 var(--ds-sp-6); background: var(--ds-surface); border-bottom: 1px solid var(--ds-border); }
.ins-eyebrow {
  display: inline-flex; align-items: center; gap: var(--ds-sp-2); margin: var(--ds-sp-4) 0 var(--ds-sp-2);
  font-size: var(--ds-fs-xs); font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--ds-accent-text);
}
.ins-eyebrow::before { content: ""; width: 18px; height: 3px; border-radius: 2px; background: var(--ds-accent); }
.ins-h1 {
  margin: 0 0 var(--ds-sp-3); max-width: 900px; font-size: clamp(1.875rem, 4.6vw, 2.75rem); font-weight: 800;
  line-height: var(--ds-lh-tight); letter-spacing: -.02em; color: var(--ds-primary); overflow-wrap: anywhere;
}
.ins-lead { margin: 0 0 var(--ds-sp-4); max-width: var(--ds-measure); font-size: var(--ds-fs-md); line-height: var(--ds-lh-body); color: var(--ds-text); }
@media (min-width: 720px) { .ins-lead { font-size: var(--ds-fs-lg); } }
.ins-lead strong { color: var(--ds-primary); }
.ins-actions { display: flex; flex-wrap: wrap; gap: var(--ds-sp-3); margin: 0 0 var(--ds-sp-3); }
.ins-note { margin: 0; max-width: var(--ds-measure); font-size: var(--ds-fs-sm); color: var(--ds-text-muted); }
.ins-note a { color: var(--ds-link); font-weight: 600; }
.ins-date { margin: var(--ds-sp-2) 0 0; font-size: var(--ds-fs-xs); color: var(--ds-text-muted); }

/* Boutons hérités (.btn de style.css) : casse normale, pilule, focus visible */
.ins-page .btn { text-transform: none; letter-spacing: 0; font-weight: 700; border-radius: var(--ds-radius-pill); }
.ins-page .btn:focus-visible, .ins-page a:focus-visible, .ins-page summary:focus-visible { outline: 3px solid var(--ds-focus); outline-offset: 2px; }
.ins-page .btn-outline { border-color: var(--ds-border-strong); color: var(--ds-primary); background: var(--ds-surface); }
.ins-page .btn-outline:hover { border-color: var(--ds-primary); background: var(--ds-surface-alt); color: var(--ds-primary); }
.ins-dark .btn-outline { background: transparent; color: #fff; border-color: rgba(255,255,255,.5); }
.ins-dark .btn-outline:hover { background: rgba(255,255,255,.1); color: #fff; border-color: #fff; }
.ins-dark a:focus-visible, .ins-dark .btn:focus-visible { outline-color: var(--ds-accent-on-dark); }
.ins-dark .btn-gold { background: var(--ds-accent); color: var(--ds-on-accent); }
.ins-dark .btn-gold:hover { background: #FF9A2E; color: var(--ds-on-accent); }

/* Titres hérités dans les sections */
.ins-page .section-title { color: var(--ds-primary); font-weight: 800; letter-spacing: -.02em; padding-left: 0; border-left: 0; } /* filet gauche de style.css retiré */
.ins-page .section-eyebrow { color: var(--ds-accent-text); }
.ins-page .ins-dark .section-eyebrow { color: var(--ds-accent-on-dark); }

/* FAQ <details> héritée */
.ins-page .faq-list { display: grid; gap: var(--ds-sp-2); }
.ins-page .faq-item { border-radius: var(--ds-radius); background: var(--ds-surface); box-shadow: var(--ds-shadow-sm); border: 0; }

/* ============ CONTACT : mise en page dans la feuille initiale (CLS : l'ancien <style> arrivait après le formulaire) ============ */
.ins-contact { padding: var(--ds-sp-6) 0 var(--ds-sp-7); background: var(--ds-surface-alt); scroll-margin-top: calc(var(--nav-h) + 16px); }
.ins-contact__grid { display: grid; gap: var(--ds-sp-5); grid-template-columns: minmax(0, 1fr); align-items: start; }
@media (min-width: 900px) { .ins-contact__grid { grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr); gap: var(--ds-sp-6); } }
.ins-anchor { display: block; position: relative; top: calc(-1 * var(--nav-h) - 16px); }
.ins-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 0; min-width: 0; padding: var(--ds-sp-5); border-radius: var(--ds-radius-lg); background: var(--ds-surface); box-shadow: var(--ds-shadow); }
.ins-form__title { margin: 0 0 var(--ds-sp-1); font-size: var(--ds-fs-xl); font-weight: 800; color: var(--ds-primary); }
.ins-form__sub { margin: 0 0 var(--ds-sp-4); font-size: var(--ds-fs-sm); color: var(--ds-text-muted); }
.ins-form .ds-form-row { grid-template-columns: minmax(0, 1fr); gap: 0 var(--ds-sp-3); }
@media (min-width: 560px) { .ins-form .ds-form-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); } }
.ins-form .ds-form-note { text-align: center; }
/* style.css impose ses champs aux formulaires .lead-form (promoteurs) : le composant reprend la main */
.ins-form .ds-input { min-height: var(--ds-tap); border: 1.5px solid var(--ds-border-strong); border-radius: var(--ds-radius); background: var(--ds-surface); }
.ins-form textarea.ds-input { min-height: 104px; }
.ins-form .ds-input:focus { border-color: var(--ds-primary); outline: 3px solid var(--ds-focus); outline-offset: 1px; box-shadow: none; }
.ins-form .ds-btn { margin-top: var(--ds-sp-2); }
.ins-aside { padding: var(--ds-sp-5); border-radius: var(--ds-radius-lg); }
.ins-aside h2 { margin: 0 0 var(--ds-sp-3); font-size: var(--ds-fs-xl); font-weight: 800; line-height: var(--ds-lh-snug); }
.ins-aside p { margin: 0 0 var(--ds-sp-4); line-height: var(--ds-lh-body); color: var(--ds-text-on-dark-muted); }
.ins-aside a { color: var(--ds-accent-on-dark); font-weight: 700; }
.ins-checks { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--ds-sp-2); }
.ins-checks li { position: relative; padding-left: 28px; line-height: 1.5; }
.ins-checks li::before { content: "✓"; position: absolute; left: 0; top: 0; font-weight: 800; color: var(--ds-accent-on-dark); }
.ins-status { margin: var(--ds-sp-5) 0 0; }

/* Sections simples (contact : villes et FAQ) */
.ins-sec { padding: var(--ds-sp-7) 0; }
.ins-sec--alt { background: var(--ds-surface-alt); }
.ins-h2 { margin: 0 0 var(--ds-sp-3); font-size: clamp(1.375rem, 3vw, var(--ds-fs-2xl)); font-weight: 800; line-height: var(--ds-lh-snug); letter-spacing: -.02em; color: var(--ds-primary); }
.ins-qa { border-top: 1px solid var(--ds-border); padding: var(--ds-sp-4) 0; }
.ins-qa h3 { margin: 0 0 6px; font-size: var(--ds-fs-md); font-weight: 700; color: var(--ds-primary); }
.ins-qa p { margin: 0; line-height: var(--ds-lh-body); color: var(--ds-text-muted); }
.ins-links { display: flex; flex-wrap: wrap; gap: var(--ds-sp-2); }

/* Textes juridiques : colonne de lecture (contenu non modifié) */
.ins-legal { padding: var(--ds-sp-6) 0 var(--ds-sp-7); }
.ins-legal .container { max-width: calc(var(--ds-measure) + 160px) !important; }
