/* =============================================================================
 * README — solimut-ui.css : DESIGN SYSTEM GLOBAL et partagé des formulaires solimut.
 * Reproduit la charte Solimut (titre/labels bleu marine, champs arrondis, CTA vert,
 * mentions légales grises en rollover). BASE réutilisée par TOUS les formulaires.
 *
 * NB : Elementor/thème injectent des styles agressifs → on met des !important sur les
 * propriétés clés pour garantir NOTRE design. La police « Neo » (de marque, en gras)
 * n'est appliquée qu'aux éléments volontairement gras (titre, labels, CTA) ; le texte
 * courant reste en Arial pour s'afficher en graisse normale.
 * Tokens : bleu marine #002e5e, vert #09953f, rayon 10px.
 * ========================================================================== */

.sol-ui {
  /* Tokens — colorimétrie officielle Solimut (couleurs globales Elementor) */
  --sol-navy: #002E5E;     /* System #6 — titres / labels */
  --sol-green: #09953F;    /* Principal — CTA */
  --sol-green-d: #077a33;  /* vert survol */
  --sol-red: #ED1C24;      /* Secondaire */
  --sol-text: #7A7A7A;     /* Texte */
  --sol-muted: #7A7A7A;
  --sol-border: #E6EAEF;   /* Gris formulaire */
  --sol-success: #328D45;  /* Alerte */
  --sol-error: #BC020A;    /* Alerte #2 */
  --sol-warning: #FFDE00;  /* Alerte #3 */
  --sol-radius: 10px;       /* champs, CTA */
  --sol-radius-img: 20px;   /* RÉFÉRENCE arrondi des images / cartes (2× les champs) */
  --sol-fill: rgba(0, 46, 94, .10); /* fond doux des champs (variante --soft) */
  --sol-band-end: #F3F8F7;  /* bas du dégradé léger des bandes (.sol-band) */
  color: var(--sol-navy);
  font-family: Arial, sans-serif;   /* texte courant en graisse normale */
  width: 100%;                      /* plus de contrainte de largeur */
}
.sol-ui * { box-sizing: border-box; }

.sol-title {
  color: var(--sol-navy) !important; font-size: 24px; margin: 0 0 22px;
  font-family: 'Neo', Arial, sans-serif; font-weight: 700 !important;
}

.sol-form { display: flex; flex-direction: column; gap: 18px; }

.sol-field { display: flex; flex-direction: column; gap: 8px; }
.sol-label {
  font-size: 16px; color: var(--sol-navy) !important;
  font-family: 'Neo', Arial, sans-serif; font-weight: 700 !important;
}

.sol-input,
.sol-select {
  width: 100% !important;
  padding: 14px !important;
  font-size: 16px;
  font-family: Arial, sans-serif;
  font-weight: 400 !important;
  color: var(--sol-navy) !important;
  background: #fff !important;
  border: 1px solid var(--sol-border) !important;
  border-radius: var(--sol-radius) !important;
}
.sol-input::placeholder { color: #9aa4b2; }
.sol-input:focus,
.sol-select:focus { outline: none; border-color: var(--sol-navy) !important; box-shadow: 0 0 0 3px rgba(0,46,94,.12); }

.sol-row { display: flex; gap: 16px; flex-wrap: wrap; }
.sol-row > .sol-field { flex: 1 1 220px; }

.sol-btn {
  display: block; width: 100% !important; cursor: pointer; text-align: center;
  padding: 15px 24px !important; font-size: 18px !important;
  font-family: 'Neo', Arial, sans-serif !important; font-weight: 500 !important;  /* Neo 18 medium */
  color: #fff !important; background: var(--sol-green) !important;
  border: 1px solid var(--sol-green) !important; border-radius: var(--sol-radius) !important;
  text-decoration: none !important;   /* un bouton n'est jamais souligné (y compris en <a>) */
  transition: background .15s ease;
}
.sol-btn:hover { background: var(--sol-green-d) !important; border-color: var(--sol-green-d) !important; text-decoration: none !important; }
.sol-btn[disabled] { opacity: .55; cursor: not-allowed; }

/* Ligne d'info (téléphone) */
.sol-info { font-size: 14px; color: var(--sol-navy) !important; font-family: Arial, sans-serif; font-weight: 400 !important; }
.sol-info strong { font-weight: 700 !important; }

/* Consentement RGPD (case obligatoire, explicite) — texte bleu Solimut */
.sol-consent { display: flex; align-items: flex-start; gap: 10px; font-size: 14px; line-height: 1.45; color: var(--sol-navy) !important; font-weight: 400 !important; cursor: pointer; }
.sol-consent input {
  appearance: none !important; -webkit-appearance: none !important; -moz-appearance: none !important;
  flex: 0 0 auto; width: 20px !important; height: 20px !important; margin: 1px 0 0 !important;
  border: 1px solid var(--sol-border) !important; border-radius: 5px !important; /* coins arrondis */
  background: #fff !important; cursor: pointer; position: relative;
}
.sol-consent input:checked { background: var(--sol-green) !important; border-color: var(--sol-green) !important; } /* vert quand coché */
.sol-consent input:checked::after {
  content: ""; position: absolute; left: 6px; top: 2px; width: 5px; height: 10px;
  border: solid #fff; border-width: 0 2px 2px 0; transform: rotate(45deg);
}
.sol-consent span { color: var(--sol-navy) !important; }

/* Mentions légales : gris, NON gras, avec rollover */
.sol-legal { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-top: 6px; flex-wrap: wrap; }
.sol-tip { position: relative; cursor: pointer; font-size: 13px; font-family: Arial, sans-serif !important; font-weight: 400 !important; color: #7a7a7a !important; }
.sol-tip__label { border-bottom: 1px dotted currentColor; font-weight: 400 !important; }
/* Lien dans les mentions légales : bleu Solimut souligné */
.sol-link { color: var(--sol-navy) !important; text-decoration: underline !important; }
.sol-link:hover { color: var(--sol-navy) !important; }
.sol-tip__content {
  position: absolute; bottom: 130%; left: 0; z-index: 50;
  width: 320px; max-width: 80vw; padding: 12px 14px;
  background: #fff; color: #7a7a7a !important; font-size: 12.5px;
  font-family: Arial, sans-serif !important; font-weight: 400 !important; line-height: 1.5;
  border: 1px solid var(--sol-border); border-radius: 8px;
  box-shadow: 0 12px 30px rgba(0,0,0,.18);
  opacity: 0; visibility: hidden; transition: opacity .12s ease;
}
.sol-tip--right .sol-tip__content { left: auto; right: 0; }
.sol-tip__content p { margin: 0 0 8px; }            /* sauts de ligne / paragraphes dans le popup */
.sol-tip__content p:last-child { margin-bottom: 0; }
.sol-tip:hover .sol-tip__content,
.sol-tip:focus-within .sol-tip__content { opacity: 1; visibility: visible; }

/* Mobile : le rollover devient une barre en bas, pleine largeur (plus de débordement hors écran) */
@media (max-width: 600px) {
  .sol-ui .sol-tip .sol-tip__content {
    position: fixed !important; left: 12px !important; right: 12px !important;
    bottom: 12px !important; top: auto !important;
    width: auto !important; max-width: none !important;
  }
}

/* Messages */
.sol-msg { padding: 12px 14px; border-radius: var(--sol-radius); font-size: 14px; font-family: Arial, sans-serif; }
.sol-msg--ok   { background: #eaf6ee; color: var(--sol-success); border: 1px solid var(--sol-success); }
.sol-msg--err  { background: #fdecec; color: var(--sol-error); border: 1px solid var(--sol-error); }
.sol-msg--info { background: #eef5fb; color: var(--sol-navy); border: 1px solid #cfe0f0; }

/* Popup / petite fenêtre */
.sol-popup { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0,46,94,.45); z-index: 99999; }
.sol-popup__box { background: #fff; border-radius: 14px; padding: 28px 26px; max-width: 380px; width: calc(100% - 40px); text-align: center; box-shadow: 0 20px 50px rgba(0,0,0,.25); }
.sol-popup__box h3 { margin: 0 0 10px; font-size: 18px; color: var(--sol-navy); font-family: 'Neo', Arial, sans-serif; }
.sol-popup__box p { margin: 0; color: var(--sol-muted); }

/* RÈGLE : toutes les images de contenu ont des coins arrondis (réf. --sol-radius-img = 20px) */
.sol-img { border-radius: var(--sol-radius-img); display: block; max-width: 100%; }

/* Layout call-back : logo en haut à droite, formulaire à gauche, image à droite */
.sol-cb { padding: 48px 5% 40px; }   /* haut + 5% latéral */
.sol-cb__head { display: flex; justify-content: flex-end; margin-bottom: 24px; }
.sol-cb__logo { height: 104px; width: auto; }   /* logo ×2 ; non arrondi */
.sol-cb__body { display: flex; gap: 64px; align-items: stretch; }   /* espace image/form doublé */
.sol-cb__media { flex: 0 0 33%; max-width: 33%; }   /* image à gauche, 1/3 */
.sol-cb__form { flex: 1 1 0; min-width: 0; }          /* formulaire à droite, 2/3 */

/* Message de remerciement (remplace le formulaire après envoi) — centré en hauteur */
.sol-cb__merci { display: flex; flex-direction: column; justify-content: center; height: 100%; min-height: 280px; text-align: center; }
.sol-cb__merci p { color: var(--sol-navy) !important; font-size: 16px; line-height: 1.6; margin-top: 8px; }
.sol-cb__media .sol-img { width: 100%; height: 100%; object-fit: cover; }
.sol-img--placeholder { display: flex; align-items: center; justify-content: center; min-height: 320px; background: #E6EAEF; color: #9aa4b2; font-size: 14px; }
@media (max-width: 768px) {
  .sol-cb__body { flex-direction: column; }
  .sol-cb__media { display: none; }              /* image masquée → on arrive direct au formulaire */
  .sol-cb__head { justify-content: flex-start; } /* logo à gauche */
  .sol-cb__logo { height: 52px; }                /* logo réduit de moitié */
}

/* =============================================================================
 * PRIMITIVES réutilisables (trame identitaire commune) — à composer dans les formulaires
 * plutôt que de recréer du CSS ad hoc. Toutes basées sur les tokens ci-dessus.
 * ========================================================================== */
.sol-card { background: #fff; border-radius: var(--sol-radius-img); padding: 30px; }       /* carte blanche arrondie */
.sol-band { background: linear-gradient(180deg, #fff 0%, var(--sol-band-end) 100%) !important; } /* bande à dégradé léger (Elementor écrase sinon) */
.sol-title--lg { font-size: 30px; line-height: 1.15; margin: 0 0 16px; }                    /* variante grande du titre */
.sol-input--soft { background: var(--sol-fill) !important; border-color: transparent !important; } /* champ à fond doux */
.sol-btn--inline { display: inline-block; width: auto !important; }                          /* CTA largeur auto */
.sol-btn--ghost { background: #fff !important; color: var(--sol-green) !important; border-color: var(--sol-green) !important; font-weight: 700 !important; } /* CTA contour : fond blanc, vert, bold */
.sol-btn--ghost:hover { background: var(--sol-green) !important; color: #fff !important; border-color: var(--sol-green) !important; }
.sol-btn--soft { background: var(--sol-border) !important; color: var(--sol-navy) !important; border-color: var(--sol-border) !important; font-weight: 700 !important; } /* bouton doux : fond gris, texte bleu (options/filtres) */
.sol-btn--soft:hover { background: #d7dde6 !important; color: var(--sol-navy) !important; border-color: #d7dde6 !important; }

/* Newsletter — composée des primitives + tokens (aucune valeur en dur hors layout) */
/* bande dégradé PLEINE LARGEUR écran (full-bleed), carte centrée au milieu */
.sol-nl__bloc { width: 100vw; margin-left: calc(50% - 50vw); padding: 56px 24px; }
/* variante sans bande (placements en colonne) : carte visible via une bordure légère */
.sol-nl__plain .sol-card { border: 1px solid var(--sol-border); }
.sol-nl__card { display: flex; align-items: center; gap: 28px; max-width: 1100px; margin: 0 auto; }
.sol-nl__media { flex: 0 0 auto; width: 160px; }          /* icône à la taille d'origine */
.sol-nl__icon { width: 100%; height: auto; display: block; }
.sol-nl__main { flex: 1 1 auto; min-width: 0; }
.sol-nl__row { display: flex; gap: 12px; flex-wrap: wrap; }
.sol-nl__row .sol-input { flex: 1 1 240px; }
/* texte SAISI en bleu marine + bold. -webkit-text-fill-color : le thème/autofill force
   sinon la couleur du texte par-dessus `color` (même !important) → on le neutralise. */
.sol-nl .sol-input {
  color: var(--sol-navy) !important;
  -webkit-text-fill-color: var(--sol-navy) !important;
  font-weight: 700 !important;
}
.sol-nl .sol-input:-webkit-autofill { -webkit-text-fill-color: var(--sol-navy) !important; }
.sol-nl .sol-input::placeholder { color: rgba(0,46,94,.5); -webkit-text-fill-color: rgba(0,46,94,.5); font-weight: 400; }
.sol-nl__rgpd { display: inline-block; margin-top: 12px; color: var(--sol-muted) !important; font-size: 13px; text-decoration: none !important; }
.sol-nl__rgpd:hover { text-decoration: underline !important; }
.sol-nl__merci { color: var(--sol-navy) !important; font-family: 'Neo', Arial, sans-serif; font-weight: 700; margin: 0; font-size: 18px; text-align: center; width: 100%; }
@media (max-width: 900px) { .sol-nl__bloc { padding: 40px 16px; } }
@media (max-width: 600px) {
  .sol-nl__bloc { padding: 28px 12px; }
  .sol-nl__card { flex-direction: column; text-align: center; padding: 24px; }
  .sol-nl__media { width: 120px; }
  .sol-nl__row { flex-direction: column; }
  /* En colonne, flex:1 1 240px ferait 240px de HAUTEUR (input carré) → on remet une hauteur auto, pleine largeur. */
  .sol-nl__row .sol-input { flex: 0 0 auto !important; width: 100%; }
  .sol-nl__row .sol-btn { width: 100% !important; }
}

/* =============================================================================
 * FORMULAIRES D'ORIENTATION (partagé : [form_particulier] + [form_sante])
 * Card blanche + rangée de champs horizontale + radios verts + autocomplétion
 * Google Places restylée. Extrait de l'inline de form-particulier pour éviter
 * toute duplication de CSS (réutilisé tel quel par form-sante). Voir
 * [[solimut-form-particulier]], [[solimut-form-sante]].
 * ========================================================================== */
.sol-fp__radios{display:flex;flex-wrap:wrap;gap:8px 32px;align-items:center;}
.sol-fp__radios .sol-fp__radio{display:inline-flex;align-items:center;gap:8px;margin:0;cursor:pointer;}
/* Selects du formulaire en gras (situation/personae/ccn/collectivité…) */
.sol-ui.sol-fp select.sol-select{font-weight:700 !important;}
.sol-ui.sol-fp select.sol-select option{font-weight:700;}
/* Champ adresse : typo un peu plus grande, coins arrondis */
.sol-ui.sol-fp .sol-fp__commune .sol-input{font-size:16px !important;border-radius:14px !important;padding:12px 16px !important;}
/* Liste de suggestions Google Places restylée Solimut (arrondie, épurée) */
.pac-container{border:1px solid #E6EAEF;border-radius:12px;margin-top:6px;padding:4px 0;
  box-shadow:0 10px 28px rgba(0,46,94,.12);font-family:inherit;background:#fff;overflow:hidden;}
.pac-container:after{display:none;} /* retire le logo "powered by Google" en pied */
.pac-item{border:0;padding:10px 16px;font-size:15px;color:#002E5E;cursor:pointer;line-height:1.4;}
.pac-item:hover,.pac-item-selected{background:#E6EAEF;}
.pac-item-query{font-size:15px;font-weight:700;color:#002E5E;}
.pac-matched{color:#09953F;}
.pac-icon{display:none;}
/* Cases/radios en vert Solimut */
.sol-ui.sol-fp input[type="radio"],.sol-ui.sol-fp input[type="checkbox"]{accent-color:#09953F !important;width:18px;height:18px;}
/* Respiration */
.sol-fp .sol-field{margin-bottom:22px;}
.sol-fp .sol-label{display:block;margin-bottom:10px;}
.sol-fp__contrat .sol-label{margin-bottom:14px;}
.sol-fp__radios{margin-top:4px;}
/* Card Solimut : fond blanc, arrondi, légère ombre ; alignée à gauche, large. */
.sol-fp{ display:block; }
.elementor-widget-shortcode:has(.sol-fp){ width:100%; }
.sol-fp__card{
  background:#fff;
  border:1px solid var(--sol-border, #E6EAEF);
  border-radius:var(--sol-radius-img, 20px);
  box-shadow:0 6px 22px rgba(0,46,94,.10);
  padding:26px 24px;
  width:100%; max-width:760px; margin:0 auto 0 0;
  transition:box-shadow .25s ease, transform .25s ease, border-color .25s ease;
}
.sol-fp__card:hover{ transform:translateY(-6px); box-shadow:0 24px 54px rgba(0,46,94,.26); }
@media (max-width:600px){ .sol-fp__card{ padding:22px 18px; } }
@media (prefers-reduced-motion:reduce){ .sol-fp__card{ transition:none; } .sol-fp__card:hover{ transform:none; } }
/* Rangée de champs horizontale qui rétrécit ; CTA pleine largeur dessous. */
.sol-fp__fields{ display:flex; flex-wrap:wrap; gap:12px 16px; align-items:flex-end; }
.sol-fp__fields .sol-field{ margin-bottom:0; }
.sol-fp__fields .sol-label{ margin-bottom:8px; }
.sol-fp__fields .sol-select, .sol-fp__fields .sol-input{ width:100%; }
.sol-fp__f-situation,.sol-fp__f-personae{ flex:1 1 0; min-width:120px; }
.sol-fp__commune{ flex:2 1 0; min-width:190px; }
.sol-fp__f-ccn,.sol-fp__f-collectivite,.sol-fp__f-asso{ flex:1 1 0; min-width:160px; }
.sol-fp__contrat{ flex:0 0 auto; }
.sol-fp__contrat .sol-fp__radios{ min-height:46px; }
.sol-fp .sol-btn{ width:100%; margin-top:18px; }
@media (max-width:600px){
  .sol-fp__fields{ row-gap:24px; }
  .sol-fp__fields .sol-field{ flex:1 1 100%; }
  .sol-fp__contrat .sol-label{ margin-bottom:2px; }
  .sol-fp__contrat .sol-fp__radios{ min-height:0; margin-top:0; }
}

/* =============================================================================
 * VARIANTE SANTÉ — [form_sante] (.sol-fs) : rose Solimut #d6007e (santé = rose).
 * CTA + accents (radios) en rose ; mise en page 2 colonnes (Je suis + Ma situation
 * en ligne 1 ; commune + contrat en ligne 2). Voir [[solimut-form-sante]], [[solimut-palette]].
 * ========================================================================== */
.sol-fs { --sol-sante: #d6007e; --sol-sante-d: #b3006a; }
.sol-fs .sol-btn { background: var(--sol-sante) !important; border-color: var(--sol-sante) !important; }
.sol-fs .sol-btn:hover { background: var(--sol-sante-d) !important; border-color: var(--sol-sante-d) !important; }
.sol-ui.sol-fp.sol-fs input[type="radio"], .sol-ui.sol-fp.sol-fs input[type="checkbox"] { accent-color: var(--sol-sante) !important; }
/* 2 colonnes : « Je suis » + « Ma situation » (ligne 1), commune + contrat (ligne 2).
 * row-gap large = les 2 lignes respirent et se distinguent nettement. */
.sol-fs .sol-fp__fields { row-gap: 28px !important; }
.sol-fs .sol-fp__fields > .sol-field { flex: 1 1 calc(50% - 8px) !important; min-width: 200px; }
@media (max-width:600px){ .sol-fs .sol-fp__fields > .sol-field { flex: 1 1 100% !important; } }

/* Thème de l'autocomplétion Google (.pac-container est dans <body>, hors du formulaire).
 * Le texte « matché » suit le formulaire au focus (data-pac-theme posé par google-places.php) :
 * défaut = vert (générique/particulier) ; santé = rose ; prévoyance = bleu. */
.pac-matched { color: #09953F; } /* défaut générique (vert), cf [form_particulier] */
body[data-pac-theme="sante"] .pac-matched { color: #d6007e; }
body[data-pac-theme="sante"] .pac-item:hover .pac-item-query,
body[data-pac-theme="sante"] .pac-item-selected .pac-item-query { color: #d6007e; }
body[data-pac-theme="prevoyance"] .pac-matched { color: #0060AF; } /* bleu prévoyance (à confirmer) */

/* =============================================================================
 * FORM HP (entonnoir d'accueil, .sol-hp) : « Je suis » et « Mon besoin ? » à 50/50
 * sur la 1re ligne ; les sous-champs (ccn/collectivité/asso) passent dessous. Voir [[solimut-form-sante]].
 * ========================================================================== */
.sol-hp .sol-fp__fields { row-gap: 22px !important; }
.sol-hp .sol-fp__fields > .sol-field { flex: 1 1 calc(50% - 8px) !important; min-width: 200px; }
@media (max-width:600px){ .sol-hp .sol-fp__fields > .sol-field { flex: 1 1 100% !important; } }

/* =============================================================================
 * FORM LP (lead Landing Page, .sol-lp) : champs en 2 colonnes (adresse pleine
 * largeur) ; 2 boutons d'action côte à côte — « Être recontacté » (secondaire,
 * contour vert) et « Faire une estimation » (principal, vert plein). Réutilise
 * le design system .sol-fp / le vert global. Voir [[solimut-lp-forms]].
 * ========================================================================== */
/* Card [form_lp] : plus de respiration interne (scopé .sol-lp). */
.sol-lp .sol-fp__card { padding: 40px 38px; }
@media (max-width:600px){ .sol-lp .sol-fp__card { padding: 26px 22px; } }
.sol-lp .sol-fp__fields { row-gap: 24px !important; }
.sol-lp .sol-fp__fields > .sol-field { flex: 1 1 calc(50% - 8px); min-width: 200px; }
/* Aligne les champs par le HAUT : l'apparition d'un message sous un champ n'aligne plus le pair
 * par le bas (plus de décalage des inputs). Le champ en erreur grandit vers le bas, c'est tout. */
.sol-lp .sol-fp__fields { align-items: flex-start !important; }
/* Bouton en cours de redirection (devis) */
.sol-btn.is-loading { opacity: .8; cursor: progress; }
.sol-lp .sol-fp__f-full { flex: 1 1 100% !important; }
@media (max-width:600px){ .sol-lp .sol-fp__fields > .sol-field { flex: 1 1 100% !important; } }

/* Date de naissance = 3 menus Jour/Mois/Année compacts, tiennent dans la colonne 50%.
 * appearance:none = on retire la flèche native (gain de ~18px) → les libellés ne sont plus
 * rognés ; on remet une petite flèche en background. */
/* Date de naissance (3 menus compacts) + commune sur LA MÊME ligne :
 * la date prend juste la largeur de ses menus, la commune occupe le reste. */
.sol-lp .sol-fp__fields > .sol-lp__naissance { flex: 0 1 auto !important; min-width: 0 !important; }
.sol-lp .sol-fp__fields > .sol-fp__commune   { flex: 1 1 190px !important; min-width: 0 !important; }
.sol-lp__dob { display: flex; gap: 8px; }
.sol-lp__dob .sol-select {
  min-width: 0; font-size: 15px;
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  padding-left: 8px !important; padding-right: 20px !important;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'><path d='M1 1l4 4 4-4' fill='none' stroke='%23002E5E' stroke-width='1.6'/></svg>") !important;
  background-repeat: no-repeat !important; background-position: right 7px center !important;
}
.sol-lp__dob-d { flex: 0 0 62px; }    /* Jour (réduit) */
.sol-lp__dob-m { flex: 0 0 104px; }   /* Mois (réduit, tient « Septembre ») */
.sol-lp__dob-y { flex: 0 0 88px; }    /* Année */
@media (max-width:600px){
  .sol-lp .sol-fp__fields > .sol-lp__naissance,
  .sol-lp .sol-fp__fields > .sol-fp__commune { flex: 1 1 100% !important; }
}

/* --- Étape 2 : RDV (jour/heure en chips) -------------------------------- */
.sol-lp__step-title { font-size: 20px; margin: 4px 0 18px; }
.sol-lp__back {
  background: none !important; border: 0 !important; padding: 0 !important; cursor: pointer;
  color: var(--sol-green) !important; font-family: 'Neo', Arial, sans-serif; font-weight: 700;
  font-size: 15px; margin-bottom: 10px;
}
.sol-lp__back:hover { text-decoration: underline; }
.sol-lp__slots-label { margin-top: 18px; }
.sol-lp__chips { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 10px; }
.sol-lp__chip {
  cursor: pointer; border: 1px solid var(--sol-border) !important; background: #fff !important;
  color: var(--sol-navy) !important; border-radius: 16px !important; padding: 10px 18px;
  font-family: Arial, sans-serif; font-size: 15px; transition: all .15s ease;
}
.sol-lp__chip:hover { border-color: var(--sol-green) !important; }
.sol-lp__chip.is-selected {
  background: var(--sol-green) !important; border-color: var(--sol-green) !important; color: #fff !important;
}
.sol-lp__hint { color: var(--sol-muted); font-size: 14px; font-style: italic; }
/* Message d'aide léger sous un champ : petite bulle douce, petit, non gras (pas un message dur). */
.sol-fp__hint {
  display: inline-block; margin-top: 7px; padding: 4px 11px;
  font-family: Arial, sans-serif; font-size: 12.5px; font-weight: 400 !important; line-height: 1.35;
  color: #9b1c24; background: #fbeaec; border-radius: 9px;
}
.sol-input--err { border-color: #e6a6ac !important; box-shadow: 0 0 0 3px rgba(188,2,10,.06) !important; }
/* Bloc créneau révélé seulement après le choix d'un jour. */
.sol-lp__slots-block { margin-top: 4px; }
.sol-lp__msg { color: var(--sol-error, #BC020A); font-weight: 700; margin: 14px 0 0; font-size: 15px; }
/* Ligne « 0800 » placée SOUS le CTA, séparée du message principal (filet + padding, ton discret). */
.sol-lp__phone-info {
  margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--sol-border);
  color: var(--sol-muted) !important; font-size: 13.5px;
}
.sol-lp__step--2 .sol-consent { margin-top: 16px; }
.sol-lp__step--2 .sol-btn { width: 100% !important; margin-top: 18px; }

/* PILOTE étudiant (post 32157) : le form #37995 était dans une card Elementor (fond blanc,
 * ombre, radius 20px, padding 40px) portée par le widget-container. Comme [form_lp] a DÉJÀ sa
 * propre card (.sol-fp__card), on neutralise la card legacy ICI uniquement → une seule card.
 * Ciblé sur l'élément du form (38e09af) + scopé postid-32157 → aucun impact sur les autres LP. */
body.postid-32157 .elementor-element-38e09af > .elementor-widget-container {
  background: transparent !important;
  box-shadow: none !important;
  border-radius: 0 !important;
  padding: 0 !important;
}

/* Message d'erreur de validation (renvoyé via ?lp_err=…). */
.sol-fp__error {
  background: #fdecef; color: var(--sol-error, #BC020A);
  border: 1px solid rgba(188,2,10,.25); border-radius: 12px;
  padding: 12px 16px; margin: 0 0 18px; font-size: 15px; font-weight: 700;
}

/* Zone des 2 boutons d'action : côte à côte ; repassent en colonne en mobile.
 * Annule la règle .sol-fp .sol-btn{width:100%} pour cette zone. */
.sol-fp__actions { display: flex; gap: 14px; flex-wrap: wrap; margin-top: 22px; }
.sol-fp__actions .sol-btn { flex: 1 1 220px; width: auto !important; margin-top: 0; }
@media (max-width:600px){ .sol-fp__actions .sol-btn { flex: 1 1 100%; } }

/* Bouton secondaire (« Être recontacté ») : contour vert, fond blanc, inverse au survol. */
.sol-btn--secondary {
  background: #fff !important; color: var(--sol-green) !important;
  border: 1px solid var(--sol-green) !important;
}
.sol-btn--secondary:hover {
  background: var(--sol-green) !important; color: #fff !important;
  border-color: var(--sol-green) !important;
}

/* Animation d'arrivée de la card du Form HP (gérée par NOTRE CSS, pas Elementor) — bounceIn. */
@keyframes solBounceIn {
  0%   { opacity:0; transform: scale(.3); }
  50%  { opacity:1; transform: scale(1.05); }
  70%  { transform: scale(.95); }
  100% { transform: scale(1); }
}
.sol-hp .sol-fp__card { animation: solBounceIn .85s cubic-bezier(.215,.61,.355,1) both; }
@media (prefers-reduced-motion: reduce){ .sol-hp .sol-fp__card { animation: none; } }

/* Form HP : posé SUR l image du header (reproduit le positionnement d origine du widget 18294 : marge top -7%, z-index 5). */
.sol-hp { margin-top: -7%; position: relative; z-index: 5; }
.elementor-widget-shortcode:has(.sol-hp){ position: relative; z-index: 5; }
@media (max-width:1024px){ .sol-hp { margin-top: -90px; } }
@media (max-width:600px){ .sol-hp { margin-top: -60px; } }

/* ── Teinte PRÉVOYANCE (.sol-fpv) : bleu prévoyance #0093d2 ──────────────────────────
 * La couleur dédiée à l'univers prévoyance sur le site (archive /nos-offres-prevoyance/
 * + pages offres) est #0093d2 — couleur dominante mesurée (66→104 occ./page), ton clair
 * compagnon #cceaf5. Analogue au rose santé #d6007e (cf [[solimut-palette]]). PAS le navy
 * #002E5E (titres/labels génériques), qui lui reste appliqué partout ailleurs. */
.sol-fpv { --sol-prev: #0093d2; --sol-prev-d: #0078ac; }
.sol-fpv .sol-btn { background: var(--sol-prev) !important; border-color: var(--sol-prev) !important; }
.sol-fpv .sol-btn:hover { background: var(--sol-prev-d) !important; border-color: var(--sol-prev-d) !important; }
.sol-ui.sol-fp.sol-fpv input[type="radio"], .sol-ui.sol-fp.sol-fpv input[type="checkbox"] { accent-color: var(--sol-prev) !important; }
/* 2 colonnes : « Je suis » + « Je souhaite me protéger contre » sur la même ligne.
 * Quand « protection » est masqué (non-particulier), « Je suis » remplit la rangée tout seul
 * (flex-grow). Empilement sur mobile. CTA pleine largeur dessous (règle .sol-fp .sol-btn). */
.sol-fpv .sol-fp__fields > .sol-field { flex: 1 1 calc(50% - 8px); min-width: 200px; }
@media (max-width:600px){ .sol-fpv .sol-fp__fields > .sol-field { flex: 1 1 100%; } }
