/* =============================================================================
   FINASSURIA — Thème enfant Divi
   Sommaire
   1. Polices auto-hébergées        6. Colonnes (cartes)
   2. Variables de charte           7. Chiffres, dossiers, FAQ
   3. Base typographique            8. Boutons
   4. Sections                      9. Pied de page
   5. Modules Texte                10. Méga-menu      11. Formulaire      12. Responsive
   ============================================================================= */

/* 1. Polices ------------------------------------------------------------------ */
@font-face { font-family: "Manrope"; src: url("../fonts/manrope-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Manrope"; src: url("../fonts/manrope-500.woff2") format("woff2"); font-weight: 500; font-style: normal; font-display: swap; }
@font-face { font-family: "Manrope"; src: url("../fonts/manrope-600.woff2") format("woff2"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "Manrope"; src: url("../fonts/manrope-700.woff2") format("woff2"); font-weight: 700; font-style: normal; font-display: swap; }
@font-face { font-family: "Schibsted Grotesk"; src: url("../fonts/schibsted-grotesk-var.woff2") format("woff2"); font-weight: 400 900; font-style: normal; font-display: swap; }
@font-face { font-family: "Schibsted Grotesk"; src: url("../fonts/schibsted-grotesk-var-italic.woff2") format("woff2"); font-weight: 400 900; font-style: italic; font-display: swap; }
@font-face { font-family: "Libre Baskerville"; src: url("../fonts/libre-baskerville-400.woff2") format("woff2"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "Libre Baskerville"; src: url("../fonts/libre-baskerville-400-italic.woff2") format("woff2"); font-weight: 400; font-style: italic; font-display: swap; }

/* 2. Variables ---------------------------------------------------------------- */
:root {
  --fin-marine: #061A4F;
  --fin-bleu: #0F3C8C;
  --fin-bleu-hover: #2458BE;
  --fin-bleu-halo: rgba(36, 88, 190, .20);
  --fin-bleu-voile: #EAF1FF;
  --fin-vert: #1F6F4A;
  --fin-menthe: #93D6B2;
  --fin-ink: #0B1734;
  --fin-text: #28324C;
  --fin-muted: #5A657E;
  --fin-line: #DFE4EE;
  --fin-line-strong: #C6CEDD;
  --fin-brume: #F4F6FA;
  --fin-on-deep: #BCC6DE;
  --fin-deep-line: rgba(255, 255, 255, 0.14);
  --fin-serif: "Schibsted Grotesk", "Manrope", "Helvetica Neue", Arial, sans-serif;
  --fin-sans: "Manrope", "Helvetica Neue", Arial, sans-serif;
  --fin-max: 1240px;
}
@media (min-width: 1440px) { :root { --fin-max: min(90vw, 1600px); } }
@media (min-width: 2200px) { :root { --fin-max: min(86vw, 1840px); } html body { font-size: 17px; } }

/* 3. Base --------------------------------------------------------------------- */
html body { font-family: var(--fin-sans); font-size: 16px; line-height: 1.65; color: var(--fin-text); -webkit-font-smoothing: antialiased; }
html body h1, html body h2, html body h3, html body h4,
html body .et_pb_module_header { font-family: var(--fin-serif); font-weight: 600; color: var(--fin-ink); line-height: 1.2; letter-spacing: -0.02em; }
html body h2 { font-size: clamp(28px, 3vw, 38px); line-height: 1.22; }
html body h3 { font-size: 21px; line-height: 1.3; }
html body a { color: var(--fin-bleu); }
html body a:hover { text-decoration: underline; text-underline-offset: 3px; }
:focus-visible { outline: 2px solid #2F6FE0; outline-offset: 3px; }

/* 4. Sections (classe sur la SECTION) ----------------------------------------- */
/* fin-hero : bandeau d'ouverture marine + motif guilloché */
.fin-hero.et_pb_section {
  background-color: var(--fin-marine) !important;
  background-image: url("../img/hero-guilloche.svg"),
                    radial-gradient(1100px 700px at 82% 42%, rgba(15, 60, 140, .55), transparent 62%),
                    radial-gradient(800px 500px at 0% 110%, rgba(31, 111, 74, .28), transparent 60%) !important;
  background-repeat: no-repeat !important;
  background-position: right -300px center, center, center !important;
  background-size: 1180px 1180px, auto, auto !important;
  padding: 92px 0 104px;
}
/* fin-deep : section marine (Cession & acquisition) */
.fin-deep.et_pb_section { background-color: var(--fin-marine) !important; padding: 104px 0; }
/* fin-soft : section gris-bleu (chiffres, prescripteurs) */
.fin-soft.et_pb_section { background-color: var(--fin-brume) !important; }
/* fin-section : espacement standard d'une section claire */
.fin-section.et_pb_section { padding: 104px 0; }

.fin-hero h1, .fin-hero h2, .fin-hero h3, .fin-deep h2, .fin-deep h3 { color: #FFFFFF; }
.fin-hero p, .fin-deep p { color: var(--fin-on-deep); }

/* 5. Modules Texte (classe sur le MODULE) ------------------------------------- */
/* Sur-titre : contient le H1 de la page */
.fin-eyebrow h1, .fin-eyebrow p {
  display: flex; align-items: center; gap: 14px;
  font-family: var(--fin-sans) !important; font-weight: 600 !important; font-size: 12.5px !important; line-height: 1.5 !important;
  letter-spacing: .16em; text-transform: uppercase; color: var(--fin-on-deep) !important; padding-bottom: 0;
}
.fin-eyebrow h1::before, .fin-eyebrow p::before { content: ""; width: 32px; height: 1px; background: var(--fin-menthe); flex-shrink: 0; }
.fin-section .fin-eyebrow h1, .fin-section .fin-eyebrow p { color: var(--fin-vert) !important; }
.fin-section .fin-eyebrow h1::before, .fin-section .fin-eyebrow p::before { background: var(--fin-vert); }

/* Grande phrase d'accroche en romaine ; mettre le mot fort en italique */
.fin-display p, .fin-display h2 {
  font-family: var(--fin-serif) !important; font-size: clamp(32px, 3.7vw, 50px) !important; line-height: 1.17 !important;
  letter-spacing: -0.012em; color: #FFFFFF !important; padding-bottom: 0; font-weight: 600;}
.fin-display em { font-style: italic; color: var(--fin-menthe); }
.fin-section .fin-display p, .fin-section .fin-display h2 { color: var(--fin-ink) !important; }
.fin-section .fin-display em { color: var(--fin-vert); }

/* Chapeau */
.fin-lead p { font-size: 17px; line-height: 1.65; color: var(--fin-muted); }
.fin-hero .fin-lead p, .fin-deep .fin-lead p { color: var(--fin-on-deep); font-size: 17.5px; }

/* Liste à coches (sur fond marine) */
.fin-checks ul { list-style: none !important; margin: 34px 0 0 !important; padding: 28px 0 0 !important; border-top: 1px solid var(--fin-deep-line); }
.fin-checks li { position: relative; padding-left: 30px; margin-bottom: 12px; font-size: 15.5px; line-height: 1.5; color: #E3E9F5; }
.fin-checks li::before { content: ""; position: absolute; left: 0; top: 3px; width: 18px; height: 18px; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M4 12.5l5 5L20 6.5' fill='none' stroke='%2393D6B2' stroke-width='2'/%3E%3C/svg%3E") no-repeat center / contain; }

/* Citation avec filet menthe */
.fin-quote p { margin: 0; padding: 0 0 0 26px !important; border-left: 2px solid var(--fin-menthe); font-family: var(--fin-serif); font-size: 22px; line-height: 1.5; color: #FFFFFF !important; font-weight: 600;}

/* Petite note de bas de section */
.fin-note p { font-size: 14px; line-height: 1.65; color: #9FAECB !important; max-width: 800px; }

/* 6. Colonnes (classe sur la COLONNE) ----------------------------------------- */
.fin-card.et_pb_column { background: #FFFFFF; border: 1px solid var(--fin-line); border-radius: 6px; padding: 30px 28px 26px; transition: border-color .2s, box-shadow .2s; }
.fin-card.et_pb_column:hover { border-color: #B9CCF2; background-color: var(--fin-bleu-voile); box-shadow: 0 0 0 4px var(--fin-bleu-halo), 0 18px 40px -24px rgba(15, 60, 140, .35); transform: translateY(-2px); }
.fin-card h3 a { color: var(--fin-ink); }
.fin-card p { font-size: 15px; color: var(--fin-muted); }
.fin-card ul { list-style: none !important; margin: 14px 0 0 !important; padding: 16px 0 0 !important; border-top: 1px solid var(--fin-line); }
.fin-card li { margin-bottom: 9px; font-size: 15px; line-height: 1.5; }

.fin-deep-card.et_pb_column { background: rgba(255, 255, 255, .035); border: 1px solid var(--fin-deep-line); border-radius: 6px; padding: 32px 30px; transition: background .2s, border-color .2s; }
.fin-deep-card.et_pb_column:hover { background: rgba(74, 127, 224, .16); border-color: rgba(147, 190, 255, .55); box-shadow: 0 0 0 4px rgba(74, 127, 224, .18); transform: translateY(-2px); }
.fin-deep-card h3 { color: #FFFFFF !important; font-size: 23px; }
.fin-deep-card p { font-size: 15px; color: var(--fin-on-deep) !important; }
.fin-deep-card strong { color: var(--fin-menthe); font-weight: 600; }

.fin-form-card.et_pb_column { background: #FFFFFF; border-radius: 6px; padding: 34px 34px 28px; box-shadow: 0 40px 80px -36px rgba(3, 12, 40, .55); }
.fin-form-card h2, .fin-form-card h3 { color: var(--fin-ink) !important; font-size: 24px !important; }
.fin-form-card p { color: var(--fin-text); }

/* 7a. Chiffres clés : [fin_chiffres] -------------------------------------------- */
.fin-chiffres { list-style: none !important; margin: 0 !important; padding: 0 !important; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px 40px; }
.fin-chiffres li { display: grid; gap: 4px; }
.fin-chiffres strong { font-family: var(--fin-serif); font-weight: 600; font-size: 32px; line-height: 1.2; color: var(--fin-ink); }
.fin-chiffres span { font-size: 14px; color: var(--fin-muted); }
.fin-chiffres .fin-asof { display: block; align-self: end; padding-left: 24px; border-left: 1px solid var(--fin-line-strong); font-size: 13px; line-height: 1.55; color: var(--fin-muted); }

/* 7b. Dossier financé (classe sur la COLONNE) ----------------------------------- */
.fin-case.et_pb_column { border: 1px solid var(--fin-line); border-radius: 6px; padding: 30px 28px; }
.fin-case ul { list-style: none !important; display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 20px !important; padding: 0 !important; }
.fin-case ul li { font-size: 12.5px; font-weight: 500; line-height: 1.4; padding: 5px 10px; border-radius: 3px; background: var(--fin-brume); }
.fin-case p { font-size: 15px; line-height: 1.6; padding-bottom: 14px; }
.fin-case p strong { display: block; margin-bottom: 3px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--fin-muted); }
.fin-case p:last-of-type { padding-top: 14px; border-top: 1px solid var(--fin-line); }
.fin-case p:last-of-type strong { color: var(--fin-vert); }

/* 7c. FAQ (classe sur la SECTION, la LIGNE ou la COLONNE contenant les bascules) */
.fin-faq .et_pb_toggle { margin: 0 !important; padding: 24px 0 !important; background: transparent !important; border: 0 !important; border-top: 1px solid var(--fin-line) !important; border-radius: 0 !important; }
.fin-faq .et_pb_toggle:last-of-type { border-bottom: 1px solid var(--fin-line) !important; }
.fin-faq .et_pb_toggle_title { font-family: var(--fin-serif) !important; font-size: 19px !important; font-weight: 600 !important; line-height: 1.45 !important; color: var(--fin-ink) !important; padding-right: 44px; }
.fin-faq .et_pb_toggle_title::before {
  content: "" !important; right: 0 !important; left: auto !important; width: 14px; height: 14px; margin-top: -7px; top: 50%;
  background: linear-gradient(var(--fin-bleu), var(--fin-bleu)) center / 14px 1.5px no-repeat,
              linear-gradient(var(--fin-bleu), var(--fin-bleu)) center / 1.5px 14px no-repeat;
  transition: transform .25s;
}
.fin-faq .et_pb_toggle_open .et_pb_toggle_title::before { transform: rotate(45deg); }
.fin-faq .et_pb_toggle_content { padding-top: 14px; font-size: 16px; line-height: 1.7; color: var(--fin-text); max-width: 720px; }

/* 8. Boutons (classe sur le module Bouton) ------------------------------------- */
body .fin-btn.et_pb_button, body .fin-btn .et_pb_button,
body .fin-btn-light.et_pb_button, body .fin-btn-light .et_pb_button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 48px;
  padding: 0 24px !important; border: 0 !important; border-radius: 4px !important;
  font-family: var(--fin-sans) !important; font-weight: 600 !important; font-size: 15px !important; line-height: 1.2 !important;
  letter-spacing: 0 !important; text-decoration: none !important; transition: background .2s;
}
body .fin-btn.et_pb_button, body .fin-btn .et_pb_button { background: var(--fin-bleu) !important; color: #FFFFFF !important; }
body .fin-btn.et_pb_button:hover, body .fin-btn .et_pb_button:hover { background: var(--fin-bleu-hover) !important; }
body .fin-btn-light.et_pb_button, body .fin-btn-light .et_pb_button { background: #FFFFFF !important; color: var(--fin-marine) !important; }
body .fin-btn-light.et_pb_button:hover, body .fin-btn-light .et_pb_button:hover { background: #E8EDF7 !important; }
body .fin-btn.et_pb_button::after, body .fin-btn .et_pb_button::after,
body .fin-btn-light.et_pb_button::after, body .fin-btn-light .et_pb_button::after { display: none !important; }

/* 9. Pied de page (classe fin-footer sur la section du pied de page global) ---- */
.fin-footer.et_pb_section { background-color: var(--fin-marine) !important; padding: 72px 0 40px !important; }
.fin-footer, .fin-footer p, .fin-footer li { color: var(--fin-on-deep); font-size: 14px; }
.fin-footer h4, .fin-footer h3 { font-family: var(--fin-sans) !important; font-weight: 700 !important; font-size: 14px !important; color: #FFFFFF !important; padding-bottom: 12px; }
.fin-footer ul { list-style: none !important; margin: 0 !important; padding: 0 !important; }
.fin-footer li { margin-bottom: 10px; line-height: 1.5; }
.fin-footer a { color: var(--fin-on-deep) !important; }
.fin-footer a:hover { color: #FFFFFF !important; }
.fin-reglementaire { padding-top: 28px; border-top: 1px solid var(--fin-deep-line); }
.fin-reglementaire p { font-size: 12.5px !important; line-height: 1.75; color: #93A1BF !important; max-width: 1080px; padding-bottom: 12px; }
.fin-reglementaire strong { color: #D8DEEC; font-weight: 500; }
.fin-reglementaire a { color: #D0D9EC !important; text-decoration: underline; }
.fin-seuil { margin-top: 18px; padding: 14px 0 0 !important; border-top: 1px solid var(--fin-line); font-size: 12.5px !important; line-height: 1.55 !important; color: var(--fin-muted) !important; }

/* 10. Méga-menu (classe fin-header sur le module Menu de l'en-tête global) ----- */

.fin-header {
  --fin-marine: #061A4F;
  --fin-bleu: #0F3C8C;
  --fin-bleu-hover: #2458BE;
  --fin-vert: #1F6F4A;
  --fin-ink: #0B1734;
  --fin-muted: #5A657E;
  --fin-line: #DFE4EE;
  --fin-surface: #F4F6FA;
}

/* ---------- Premier niveau ---------- */
.fin-header .et-menu > li > a {
  font-family: "Manrope", sans-serif !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  color: var(--fin-ink) !important;
  letter-spacing: 0;
}
.fin-header .et-menu > li > a:hover,
.fin-header .et-menu > li.current-menu-item > a,
.fin-header .et-menu > li.current-menu-ancestor > a {
  color: var(--fin-bleu) !important;
  opacity: 1 !important;
}

/* ---------- Barre d'en-tête : fond blanc, hauteur fixe, éléments centrés ---------- */
.et_pb_section:has(.fin-header) { background-color: #FFFFFF !important; border-bottom: 1px solid var(--fin-line); padding-top: 0 !important; padding-bottom: 0 !important; z-index: 99; }
.et_pb_section:has(.fin-header) { width: 100% !important; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; left: 0; right: 0; }
.et_pb_row:has(.fin-header) { width: 100% !important; max-width: none !important; margin-left: 0 !important; margin-right: 0 !important; padding: 0 clamp(20px, 3vw, 56px) !important; border: 0 !important; }
.fin-header.et_pb_menu { border: 0 !important; }
/* Logo à gauche, menu et bouton poussés à droite (Divi 4 et Divi 5) */
.fin-header :has(> .et_pb_menu__logo-wrap) { display: flex !important; align-items: center !important; width: 100% !important; }
.fin-header .et_pb_menu__logo-wrap { flex: 0 0 auto !important; margin-right: 0 !important; }
.fin-header .et_pb_menu__logo-wrap + * { flex: 1 1 auto !important; margin-left: auto !important; display: flex !important; justify-content: flex-end !important; }
.fin-header .et_pb_menu__menu, .fin-header .et_pb_menu__menu > nav, .fin-header .et-menu-nav { margin-left: auto !important; }
.fin-header .et-menu { justify-content: flex-end !important; }
.fin-header.et_pb_menu, .fin-header .et_pb_menu_inner_container { background: transparent !important; }
.fin-header .et_pb_menu__logo img { max-height: 34px; width: auto; }
.fin-header .et-menu { display: flex !important; align-items: stretch; }
.fin-header .et-menu > li { display: flex !important; align-items: center; padding-top: 0 !important; }
.fin-header .et-menu > li > a { padding-top: 30px !important; padding-bottom: 30px !important; }

/* Flèches des rubriques centrées verticalement sur le libellé */
.fin-header .et-menu > li.menu-item-has-children > a { position: relative; padding-right: 22px !important; }
.fin-header .et-menu > li.menu-item-has-children > a::after {
  top: 50% !important; bottom: auto !important; margin-top: 0 !important; transform: translateY(-50%); line-height: 1 !important;
}

/* ---------- Bouton « Étudier mon dossier » (classe menu-cta) ---------- */
.fin-header .et-menu > li.menu-cta { padding-left: 18px !important; align-items: center !important; height: auto; align-self: center; }
.fin-header .et-menu > li.menu-cta > a {
  background: var(--fin-bleu);
  color: #FFFFFF !important;
  font-weight: 600 !important;
  display: inline-flex !important;
  align-items: center;
  align-self: center !important;
  height: auto !important;
  min-height: 0 !important;
  padding: 13px 22px !important;
  margin: 0 !important;
  border-radius: 4px;
  line-height: 1.2 !important;
  transition: background .2s;
}
.fin-header .et-menu > li.menu-cta > a:hover { background: var(--fin-bleu-hover); color: #FFFFFF !important; }
.fin-header .et-menu > li.menu-cta > a:after { display: none !important; }

/* ---------- Panneau du méga-menu ---------- */
.fin-header .et-menu li.mega-menu > ul.sub-menu {
  background: #FFFFFF !important;
  border-top: 1px solid var(--fin-line) !important;
  border-bottom: 1px solid var(--fin-line);
  box-shadow: 0 28px 40px -28px rgba(6, 26, 79, .28) !important;
  padding: 36px 28px 32px !important;
}

/* Colonnes : titres */
.fin-header .et-menu li.mega-menu > ul > li { padding: 0 18px !important; }
.fin-header .et-menu li.mega-menu > ul > li > a {
  font-family: var(--fin-serif) !important;
  font-weight: 600 !important;
  font-size: 17px !important;
  line-height: 1.4 !important;
  color: var(--fin-ink) !important;
  width: 100% !important;
  padding: 0 0 12px !important;
  margin-bottom: 10px;
  border-bottom: 1px solid var(--fin-line);
  background: none !important;
}
.fin-header .et-menu li.mega-menu > ul > li > a:hover { color: var(--fin-bleu) !important; }

/* Titres de colonne non cliquables (classe mm-titre) */
.fin-header .et-menu li.mm-titre > a { pointer-events: none; cursor: default; }

/* Liens des colonnes */
.fin-header .et-menu li.mega-menu > ul > li > ul.sub-menu {
  position: static !important;
  box-shadow: none !important;
  border: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  background: none !important;
}
.fin-header .et-menu li.mega-menu > ul > li > ul > li { padding: 0 !important; }
.fin-header .et-menu li.mega-menu > ul > li > ul > li > a {
  font-family: "Manrope", sans-serif !important;
  font-size: 14.5px !important;
  line-height: 1.5 !important;
  color: var(--fin-bleu) !important;
  padding: 6px 0 !important;
  width: 100% !important;
  background: none !important;
}
.fin-header .et-menu li.mega-menu > ul > li > ul > li > a:hover {
  text-decoration: underline;
  text-underline-offset: 3px;
  opacity: 1 !important;
}

/* Ouverture pilotée par le script (délai d'intention) : on neutralise l'ouverture instantanée de Divi */
@media (min-width: 981px) {
  .fin-mm-js .fin-header .et-menu > li.mega-menu > ul.sub-menu,
  .fin-mm-js .fin-header .et-menu > li.mega-menu:hover > ul.sub-menu,
  .fin-mm-js .fin-header .et-menu > li.mega-menu.et-show-dropdown > ul.sub-menu {
    opacity: 0 !important; visibility: hidden !important; pointer-events: none !important;
    transition: opacity .15s ease, visibility 0s linear .15s !important;
  }
  .fin-mm-js .fin-header .et-menu > li.mega-menu.fin-mm-open > ul.sub-menu,
  .fin-mm-js .fin-header .et-menu > li.mega-menu.fin-mm-open:hover > ul.sub-menu {
    opacity: 1 !important; visibility: visible !important; pointer-events: auto !important;
    transition: opacity .15s ease, visibility 0s linear 0s !important;
  }
  .fin-mm-js .fin-header .et-menu > li.mega-menu.fin-mm-open > a { color: var(--fin-bleu) !important; }
}

/* Liens des colonnes : un par ligne */
.fin-header .et-menu li.mega-menu > ul > li > ul.sub-menu { display: block !important; }
.fin-header .et-menu li.mega-menu > ul > li > ul > li {
  display: block !important; float: none !important; width: 100% !important; max-width: none !important; margin: 0 !important;
}
.fin-header .et-menu li.mega-menu > ul > li > ul > li > a { display: block !important; white-space: normal !important; }

/* Pas de flèches à l'intérieur du panneau */
.fin-header .et-menu li.mega-menu li > a:after { display: none !important; }

/* ---------- Menu mobile ---------- */
.fin-header .et_mobile_menu {
  border-top: 2px solid var(--fin-bleu) !important;
  padding: 8px 20px 24px !important;
}
.fin-header .et_mobile_menu li a {
  font-family: "Manrope", sans-serif !important;
  color: var(--fin-ink) !important;
  border-bottom: 1px solid var(--fin-line) !important;
  padding: 14px 4% !important;
}
.fin-header .et_mobile_menu li.mm-titre > a {
  font-family: var(--fin-serif) !important;
  font-size: 14px !important;
  color: var(--fin-muted) !important;
  pointer-events: none;
}
.fin-header .et_mobile_menu li li a { font-size: 14.5px !important; color: var(--fin-bleu) !important; }
.fin-header .et_mobile_menu li.menu-cta > a {
  margin-top: 16px;
  background: var(--fin-bleu);
  color: #FFFFFF !important;
  text-align: center;
  border-radius: 4px;
  font-weight: 600;
}

/* Accordéon mobile (fonctionne avec le script fourni) */
.fin-header .et_mobile_menu > li.menu-item-has-children > ul.sub-menu { display: none !important; }
.fin-header .et_mobile_menu > li.fin-open > ul.sub-menu { display: block !important; }
.fin-header .et_mobile_menu > li.menu-item-has-children > a { position: relative; }
.fin-header .et_mobile_menu > li.menu-item-has-children > a::after {
  content: "+";
  position: absolute; right: 4%; top: 50%; transform: translateY(-50%);
  font-size: 20px; color: var(--fin-bleu);
}
.fin-header .et_mobile_menu > li.fin-open > a::after { content: "–"; }

/* 11. Formulaire Fluent Forms (classe fin-form sur la colonne du formulaire) --- */
.fin-form .fluentform .ff-el-input--label label {
  font-family: "Manrope", sans-serif; font-weight: 600; font-size: 13.5px; color: #0B1734;
}
.fin-form .fluentform .ff-el-form-control {
  width: 100%; height: 48px; padding: 0 14px; border: 1px solid #C6CEDD; border-radius: 4px;
  font-family: "Manrope", sans-serif; font-size: 15px; color: #0B1734; background: #FFFFFF;
}
.fin-form .fluentform select.ff-el-form-control { padding-right: 36px; }
.fin-form .fluentform .ff-el-form-control:focus {
  border-color: #0F3C8C; box-shadow: 0 0 0 3px rgba(15, 60, 140, .18); outline: none;
}
.fin-form .fluentform .ff-el-group { margin-bottom: 16px; }
.fin-form .fluentform .ff-btn,
.fin-form .fluentform .ff-btn-submit {
  width: 100%; min-height: 50px; border: 0; border-radius: 4px; background: #0F3C8C !important;
  color: #FFFFFF !important; font-family: "Manrope", sans-serif; font-weight: 600; font-size: 15px;
}
.fin-form .fluentform .ff-btn:hover { background: #2458BE !important; }
.fin-form .fluentform .ff-btn-prev {
  background: #FFFFFF !important; color: #0B1734 !important; border: 1px solid #C6CEDD; width: auto; padding: 0 22px;
}
/* Barre de progression des étapes (version Pro) */
.fin-form .fluentform .ff-step-titles li { font-family: "Manrope", sans-serif; font-size: 13px; color: #5A657E; }
.fin-form .fluentform .ff-el-progress-bar { background: #0F3C8C; }
.fin-form .fluentform .ff-el-progress { background: #DFE4EE; height: 3px; border-radius: 2px; }

/* 11b. Formulaire : listes déroulantes, titres de blocs, messages */
.fin-form .fluentform select.ff-el-form-control,
.fin-form .fluentform select {
  height: 48px !important; min-height: 48px; padding: 0 36px 0 14px !important; border: 1px solid #C6CEDD !important; border-radius: 4px !important;
  background-color: #FFFFFF; font-family: var(--fin-sans); font-size: 15px !important; line-height: 46px; color: var(--fin-ink);
}
.fin-form .fluentform .ff-el-section-break { margin: 26px 0 6px; }
.fin-form .fluentform .ff-el-section-break .ff-el-section-title {
  font-family: var(--fin-sans) !important; font-size: 13px !important; font-weight: 700 !important; letter-spacing: .08em;
  text-transform: uppercase; color: var(--fin-vert) !important; margin: 0 0 4px !important; padding: 0 !important;
}
.fin-form .fluentform .ff-el-section-break hr { border: 0; border-top: 1px solid var(--fin-line); margin: 8px 0 0; }
.fin-form .fluentform .ff-custom_html { font-size: 14.5px; line-height: 1.6; color: var(--fin-muted); }
.fin-form .fluentform .fin-note-form {
  margin: 4px 0 18px; padding: 12px 14px; border-left: 3px solid var(--fin-bleu); background: var(--fin-brume);
  font-size: 13.5px !important; line-height: 1.55 !important; color: var(--fin-text) !important;
}

/* 11c. Formulaire en étapes (script du thème) */
.fin-form .fluentform fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.fin-form .fin-stepped .ff-el-section-break { display: none !important; }
.fin-form .fin-steps-head { margin: 2px 0 22px; }
.fin-form .fin-steps-count { font-size: 13px; color: var(--fin-muted); }
.fin-form .fin-steps-bar { display: grid; gap: 6px; margin-top: 10px; }
.fin-form .fin-steps-bar span { height: 3px; border-radius: 2px; background: var(--fin-line); transition: background .3s; }
.fin-form .fin-steps-bar span.on { background: var(--fin-bleu); }
.fin-form .fin-steps-labels { display: grid; gap: 6px; margin-top: 8px; }
.fin-form .fin-steps-labels span { font-size: 11.5px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; color: #9AA3B5; }
.fin-form .fin-steps-labels span.on { color: var(--fin-vert); }
.fin-form .fin-step[hidden] { display: none !important; }
.fin-form .fin-step-actions { display: flex; gap: 12px; margin-top: 6px; align-items: stretch; }
.fin-form .fin-step-actions .ff_submit_btn_wrapper { flex: 1; margin: 0 !important; }
.fin-form .fin-step-actions .ff_submit_btn_wrapper button { width: 100%; }
.fin-form .fin-next, .fin-form .fin-prev {
  min-height: 50px; padding: 0 22px; border-radius: 4px; cursor: pointer;
  font-family: var(--fin-sans); font-weight: 600; font-size: 15px; transition: background .2s;
}
.fin-form .fin-next { flex: 1; border: 0; background: var(--fin-bleu); color: #FFFFFF; }
.fin-form .fin-next:hover { background: var(--fin-bleu-hover); }
.fin-form .fin-prev { border: 1px solid var(--fin-line-strong); background: #FFFFFF; color: var(--fin-ink); }
.fin-form .fin-prev:hover { background: var(--fin-brume); }
.fin-form .fin-err { margin-top: 6px; font-size: 13px; color: #B3261E; }
.fin-form .ff-el-is-error .ff-el-form-control { border-color: #B3261E !important; }

/* 11d. Survol des boutons : bleu plus clair + léger halo */
.fin-header .et-menu > li.menu-cta > a,
body .fin-btn.et_pb_button, body .fin-btn .et_pb_button,
body .fin-btn-light.et_pb_button, body .fin-btn-light .et_pb_button,
.fin-accueil .fa-btn,
.fin-form .fin-next, .fin-form .fin-prev,
.fin-form .fluentform .ff-btn {
  transition: background-color .2s ease, box-shadow .2s ease, transform .2s ease, border-color .2s ease !important;
}
.fin-header .et-menu > li.menu-cta > a:hover,
body .fin-btn.et_pb_button:hover, body .fin-btn .et_pb_button:hover,
.fin-accueil .fa-btn:hover,
.fin-form .fin-next:hover,
.fin-form .fluentform .ff-btn-submit:hover {
  background: var(--fin-bleu-hover) !important;
  box-shadow: 0 0 0 4px var(--fin-bleu-halo), 0 10px 22px -12px rgba(15, 60, 140, .55) !important;
  transform: translateY(-1px);
  text-decoration: none !important;
}
body .fin-btn-light.et_pb_button:hover, body .fin-btn-light .et_pb_button:hover,
.fin-form .fin-prev:hover {
  background: var(--fin-bleu-voile) !important;
  border-color: #B9CCF2 !important;
  box-shadow: 0 0 0 4px var(--fin-bleu-halo) !important;
}
.fin-header .et-menu > li.menu-cta > a:active,
.fin-accueil .fa-btn:active, .fin-form .fin-next:active, .fin-form .fluentform .ff-btn-submit:active { transform: translateY(0); }
@media (prefers-reduced-motion: reduce) {
  .fin-header .et-menu > li.menu-cta > a:hover, .fin-accueil .fa-btn:hover, .fin-form .fin-next:hover { transform: none; }
}

/* 11e. Pages codées (accueil et pages intérieures) : pleine largeur quelle que soit la section Divi */
.et_pb_section:has(.fin-page), .et_pb_section:has(.fin-accueil) { padding-top: 0 !important; padding-bottom: 0 !important; background: transparent; }
.et_pb_row:has(.fin-page), .et_pb_row:has(.fin-accueil) { width: 100% !important; max-width: none !important; padding: 0 !important; margin: 0 !important; }
.et_pb_row:has(.fin-page) > .et_pb_column, .et_pb_row:has(.fin-accueil) > .et_pb_column { width: 100% !important; margin: 0 !important; padding: 0 !important; }
.et_pb_module:has(.fin-page), .et_pb_module:has(.fin-accueil) { margin: 0 !important; padding: 0 !important; }
.fin-page, .fin-accueil { width: 100%; }
#main-content .container:has(.fin-page), #main-content .container:has(.fin-accueil) { width: 100% !important; max-width: none !important; padding-top: 0 !important; }
#main-content .container:has(.fin-page)::before, #main-content .container:has(.fin-accueil)::before { display: none !important; }

/* 12. Responsive -------------------------------------------------------------- */
@media (max-width: 980px) {
  .fin-hero.et_pb_section { background-position: right -420px top 30%, center, center !important; background-size: 900px 900px, auto, auto !important; padding: 64px 0 72px; }
  .fin-deep.et_pb_section, .fin-section.et_pb_section { padding: 72px 0; }
  .fin-chiffres { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px; }
  .fin-chiffres .fin-asof { grid-column: 1 / -1; padding-left: 0; border-left: 0; }
  .fin-card.et_pb_column, .fin-deep-card.et_pb_column, .fin-case.et_pb_column { margin-bottom: 20px !important; }
  .fin-form-card.et_pb_column { padding: 26px 22px 22px; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; } }
