/* =====================================================================
   Composants Smart Tech — charte « version E » (CDC §3, maquettes design/)
   Préfixe st-. Les conteneurs Elementor reçoivent ces classes (css_classes).
   ===================================================================== */

/* ---------- Mise en page ---------- */
.e-con.st-section, .e-con.st-wrap, .e-con.st-col, .e-con.st-row, .e-con.st-stack { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; --margin-top: 0; --margin-bottom: 0; }
.e-con.st-section { --container-max-width: none; max-width: none; width: 100%; padding: var(--st-section-y) var(--st-gouttiere); }
.e-con.st-section--serree { padding-top: 88px; padding-bottom: 88px; }
.e-con.st-section--plate { padding-top: 0; padding-bottom: 0; }
.e-con.st-section--haut-court { padding-top: 48px; }
.e-con.st-wrap { --container-max-width: var(--st-conteneur); max-width: var(--st-conteneur); width: 100%; margin-left: auto; margin-right: auto; }
.e-con.st-wrap--1240 { --container-max-width: 1240px; max-width: 1240px; }
.e-con.st-wrap--860 { --container-max-width: 860px; max-width: 860px; }
.e-con.st-wrap--820 { --container-max-width: 820px; max-width: 820px; }
.e-con.st-wrap--1040 { --container-max-width: 1040px; max-width: 1040px; }
.e-con.st-row { --flex-direction: row; --flex-wrap: wrap; }
.e-con.st-col { --flex-direction: column; }
.st-fond-nuit { background: var(--st-nuit); color: #fff; }
.st-fond-marine { background: var(--st-marine); color: #fff; }
.st-fond-brume { background: var(--st-brume); }
.st-fond-blanc { background: #fff; }
.st-trame-points { background-color: #fff; background-image: radial-gradient(#DCE4EF 1px, transparent 1px); background-size: 26px 26px; }
.st-trame-grille { background-color: var(--st-brume); background-image: linear-gradient(#E6ECF3 1px, transparent 1px), linear-gradient(90deg, #E6ECF3 1px, transparent 1px); background-size: 64px 64px; }
.st-ondes { position: relative; overflow: hidden; }
.st-ondes > .st-ondes__svg, .st-ondes__svg { position: absolute; inset: 0; width: 100%; height: 100%; pointer-events: none; }
.st-ondes__svg--10 { opacity: .10; } .st-ondes__svg--08 { opacity: .08; } .st-ondes__svg--60 { opacity: .6; }
.st-ondes > .e-con, .st-ondes > .elementor-element { position: relative; }
.st-fond-nuit h1, .st-fond-nuit h2, .st-fond-nuit h3, .st-fond-marine h1, .st-fond-marine h2, .st-fond-marine h3 { color: #fff; }
.st-fond-nuit p, .st-fond-marine p { color: var(--st-texte-inverse); }
.st-fond-nuit a:not(.st-btn), .st-fond-marine a:not(.st-btn) { color: #fff; }

/* ---------- Typographie utilitaire ---------- */
.st-surtitre, .st-surtitre .elementor-heading-title { font-family: var(--st-font-texte); font-size: 13px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--st-bleu); line-height: 1.3; display: flex; align-items: center; gap: 10px; }
.st-surtitre--inverse, .st-surtitre--inverse .elementor-heading-title { color: var(--st-bleu-clair); }
.st-surtitre--vert, .st-surtitre--vert .elementor-heading-title { color: var(--st-vert); letter-spacing: .12em; font-weight: 500; }
.st-fond-nuit .st-surtitre--vert, .st-fond-nuit .st-surtitre--vert .elementor-heading-title, .st-surtitre--vert-inverse .elementor-heading-title { color: var(--st-vert-sombre); }
.st-surtitre--point::before { content: ""; width: 8px; height: 8px; border-radius: 999px; background: var(--st-vert-sombre); box-shadow: 0 0 0 4px rgba(47,191,143,.18); flex: none; }
.st-titre-section .elementor-heading-title { font-size: 48px; line-height: 1.08; font-weight: 600; letter-spacing: -.03em; }
.st-titre-section--50 .elementor-heading-title { font-size: 50px; line-height: 1.06; }
.st-titre-section--38 .elementor-heading-title { font-size: 38px; line-height: 1.12; letter-spacing: -.02em; }
.st-titre-section--34 .elementor-heading-title { font-size: 34px; line-height: 1.2; letter-spacing: -.02em; }
.st-titre-section--30 .elementor-heading-title { font-size: 30px; line-height: 1.25; letter-spacing: -.015em; }
.st-titre-section--26 .elementor-heading-title { font-size: 26px; line-height: 1.25; }
.st-titre-section--24 .elementor-heading-title { font-size: 24px; line-height: 1.3; }
.st-h1 .elementor-heading-title { font-size: 48px; line-height: 1.1; letter-spacing: -.025em; font-weight: 600; max-width: 900px; }
.st-h1--accueil .elementor-heading-title { font-size: 68px; line-height: 1.02; letter-spacing: -.03em; max-width: none; }
.st-h1--44 .elementor-heading-title { font-size: 44px; line-height: 1.12; }
.st-h1--42 .elementor-heading-title { font-size: 42px; line-height: 1.15; }
.st-chapo, .st-chapo p { font-size: 19px; line-height: 1.6; color: #33465F; max-width: 820px; }
.st-chapo--inverse, .st-chapo--inverse p { color: var(--st-texte-inverse); line-height: 1.65; max-width: 580px; }
.st-chapo--20, .st-chapo--20 p { font-size: 20px; }
.st-intro-droite, .st-intro-droite p { font-size: 18px; line-height: 1.7; color: var(--st-texte-inverse); max-width: 460px; }
.st-intro-droite--17, .st-intro-droite--17 p { font-size: 17px; max-width: 420px; }
.st-texte-2, .st-texte-2 p { color: var(--st-texte-2); }
.st-max-720 { max-width: 720px; } .st-max-760 { max-width: 760px; } .st-max-700 { max-width: 700px; } .st-max-640 { max-width: 640px; } .st-max-820 { max-width: 820px; }
.st-lien-fleche, .st-lien-fleche a { color: var(--st-texte); font-weight: 600; font-size: 15px; text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; }
.st-lien-fleche a::after, .st-lien-fleche > span::after { content: " →"; }
.st-fil-ariane, .st-fil-ariane a, .rank-math-breadcrumb, .rank-math-breadcrumb a { font-size: 14px; color: var(--st-texte-2); text-decoration: none; }
.rank-math-breadcrumb .separator { margin: 0 6px; }
.st-fond-nuit .rank-math-breadcrumb, .st-fond-nuit .rank-math-breadcrumb a { color: var(--st-texte-inverse-2); }
.st-meta-page { display: flex; gap: 20px; flex-wrap: wrap; font-size: 14px; color: var(--st-texte-2); }
.st-sources { font-size: 14px; color: var(--st-texte-2); border-top: 1px solid var(--st-filet); padding-top: 20px; }
.st-sources ul { margin: 8px 0 0; padding-left: 18px; }

/* ---------- Boutons ---------- */
.st-btn, .st-btn .elementor-button, .st-btns a { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-family: var(--st-font-texte); font-weight: 600; font-size: 16px; line-height: 1.2; padding: 17px 28px; border-radius: var(--st-rayon-bouton); text-decoration: none; border: 1px solid transparent; min-height: 44px; cursor: pointer; transition: background-color .15s ease, color .15s ease, border-color .15s ease; }
.st-btn--principal, .st-btn--principal .elementor-button { background: var(--st-bleu); color: #fff; }
.st-btn--principal:hover, .st-btn--principal .elementor-button:hover { background: #1746A6; color: #fff; }
.st-btn--sombre, .st-btn--sombre .elementor-button { background: var(--st-nuit); color: #fff; }
.st-btn--sombre:hover, .st-btn--sombre .elementor-button:hover { background: var(--st-marine); color: #fff; }
.st-btn--contour, .st-btn--contour .elementor-button { background: #fff; color: var(--st-texte); border-color: var(--st-filet-3); }
.st-btn--contour:hover, .st-btn--contour .elementor-button:hover { border-color: var(--st-nuit); color: var(--st-texte); background: #fff; }
.st-btn--contour-marine, .st-btn--contour-marine .elementor-button { background: transparent; color: var(--st-marine); border: 1.5px solid var(--st-marine); }
.st-btn--blanc, .st-btn--blanc .elementor-button { background: #fff; color: var(--st-marine); }
.st-btn--blanc:hover, .st-btn--blanc .elementor-button:hover { background: var(--st-brume); color: var(--st-nuit); }
.st-btn--contour-inverse, .st-btn--contour-inverse .elementor-button { background: transparent; color: #fff; border-color: rgba(255,255,255,.55); }
.st-btn--contour-inverse:hover, .st-btn--contour-inverse .elementor-button:hover { border-color: #fff; background: rgba(255,255,255,.08); color: #fff; }
.st-btn--petit, .st-btn--petit .elementor-button { font-size: 15px; padding: 12px 20px; }
.st-btn--large, .st-btn--large .elementor-button { padding: 18px 30px; }
.st-btn--bloc, .st-btn--bloc .elementor-button { width: 100%; }
.st-btn .elementor-button-content-wrapper { display: contents; }
.st-btn .elementor-button-text { display: inline; }
.e-con.st-btns { --flex-direction: row; --flex-wrap: wrap; --gap: 14px; --row-gap: 14px; --column-gap: 14px; --align-items: center; }
.st-btns { display: flex; gap: 14px; flex-wrap: wrap; align-items: center; }
.st-reassurance, .st-reassurance p { font-size: 14px; color: var(--st-texte-inverse-2); }

/* ---------- Badges ---------- */
.st-badge { display: inline-flex; align-items: center; font-family: var(--st-font-texte); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; padding: 5px 9px; border-radius: var(--st-rayon-badge); line-height: 1.2; white-space: nowrap; }
.st-badge--bleu { background: var(--st-badge-bleu); color: var(--st-bleu); }
.st-badge--vert { background: var(--st-badge-vert); color: var(--st-vert); }
.st-badge--echeance { background: var(--st-badge-echeance); color: var(--st-echeance); }
.st-badge--neutre { background: #EEF2F6; color: var(--st-texte-2); }
.st-badge--marine { background: var(--st-badge-bleu); color: var(--st-marine); }
.st-badge--contour { border: 1px solid var(--st-filet-2); color: var(--st-texte); background: #fff; text-transform: none; letter-spacing: 0; font-weight: 600; padding: 6px 10px; }
.st-badge--contour-vert { border: 1px solid #BFE6D6; color: var(--st-vert); background: var(--st-badge-vert); text-transform: none; letter-spacing: 0; font-weight: 600; padding: 6px 10px; }
.st-badge--verre { background: rgba(255,255,255,.14); border: 1px solid rgba(255,255,255,.3); color: #fff; font-size: 11px; letter-spacing: .16em; }

/* ---------- En-tête (HFE) ---------- */
.st-header { position: relative; z-index: 20; }
.st-header--clair { background: #fff; border-bottom: 1px solid var(--st-filet); }
.st-header--sombre { background: var(--st-nuit); color: #fff; }
.st-header__barre { border-bottom: 1px solid rgba(255,255,255,.12); font-size: 13px; color: var(--st-texte-inverse-2); }
.st-header__barre-inner { max-width: var(--st-conteneur); margin: 0 auto; padding: 9px var(--st-gouttiere); display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.st-header__barre a { color: #fff; text-decoration: none; margin-left: 24px; }
.st-header__inner { max-width: var(--st-conteneur); margin: 0 auto; padding: 22px var(--st-gouttiere); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.st-logo { display: inline-flex; align-items: center; gap: 12px; text-decoration: none; color: var(--st-texte); }
.st-header--sombre .st-logo { color: #fff; }
.st-logo__symbole { width: 40px; height: 40px; flex: none; }
.st-logo__textes { display: flex; flex-direction: column; gap: 3px; }
.st-logo__nom { font-family: var(--st-font-titres); font-size: 22px; font-weight: 600; letter-spacing: -.01em; line-height: 1; }
.st-logo__base { font-family: var(--st-font-texte); font-size: 10.5px; font-weight: 500; letter-spacing: .18em; color: var(--st-texte-3); text-transform: uppercase; }
.st-header--sombre .st-logo__base { color: var(--st-texte-inverse-2); }
.st-nav { display: flex; align-items: center; gap: 36px; }
.st-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 32px; }
.st-nav li { position: relative; }
.st-nav a { font-size: 15px; font-weight: 500; color: var(--st-texte); text-decoration: none; padding: 10px 0; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; }
.st-header--sombre .st-nav a { color: #fff; }
.st-nav a:hover { color: var(--st-bleu); }
.st-header--sombre .st-nav a:hover { color: var(--st-bleu-clair); }
.st-nav .menu-item-has-children > a::after { content: ""; width: 6px; height: 6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-2px) rotate(45deg); }
.st-nav .sub-menu { position: absolute; top: 100%; left: -20px; min-width: 280px; background: #fff; border: 1px solid var(--st-filet); border-radius: var(--st-rayon-carte); box-shadow: 0 24px 60px rgba(6,30,63,.16); padding: 10px; display: none; flex-direction: column; gap: 0; z-index: 30; }
.st-nav li:hover > .sub-menu, .st-nav li:focus-within > .sub-menu { display: flex; }
.st-nav .sub-menu a { color: var(--st-texte); padding: 10px 14px; border-radius: 4px; font-weight: 500; width: 100%; }
.st-nav .sub-menu a:hover { background: var(--st-brume); color: var(--st-bleu); }
.st-nav .sub-menu .sub-menu { position: static; display: flex; box-shadow: none; border: 0; padding: 0 0 6px 14px; min-width: 0; }
.st-nav .sub-menu .menu-item-has-children > a { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--st-texte-2); pointer-events: none; }
.st-nav .sub-menu .menu-item-has-children > a::after { display: none; }
/* .st-nav .st-header__cta : plus spécifique que les liens de navigation (.st-nav a), qui annulaient le padding du bouton. */
.st-header__cta, .st-nav .st-header__cta { flex: none; padding: 12px 20px; font-size: 15px; white-space: nowrap; }
/* .st-header .st-burger : spécificité supérieure au style global des boutons du kit Elementor (.elementor-kit-N button), qui imposait fond bleu et padding 17px 28px et écrasait les trois traits. */
.st-burger, .st-header .st-burger { display: none; width: 44px; height: 44px; padding: 0; margin: 0; border: 1px solid var(--st-filet-3); border-radius: 4px; background: transparent; color: inherit; line-height: 1; cursor: pointer; align-items: center; justify-content: center; flex-direction: column; gap: 5px; box-shadow: none; }
.st-header .st-burger:hover, .st-header .st-burger:focus-visible { background: rgba(127,166,240,.15); color: inherit; }
.st-burger span { width: 20px; height: 2px; flex: 0 0 2px; background: currentColor; display: block; }
.st-header--sombre .st-burger { border-color: rgba(255,255,255,.4); color: #fff; }
.st-actu { background: var(--st-marine); color: #fff; font-size: 14px; }
.st-actu__inner { max-width: var(--st-conteneur); margin: 0 auto; padding: 10px var(--st-gouttiere); display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
.st-actu__pastille { font-size: 11px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; background: rgba(255,255,255,.12); padding: 4px 8px; border-radius: 3px; color: var(--st-bleu-clair); }
.st-actu a { color: #fff; font-weight: 600; }
.st-actu__fermer { margin-left: auto; background: none; border: 0; color: #fff; font-size: 20px; line-height: 1; cursor: pointer; min-width: 44px; min-height: 44px; }

/* ---------- Hero accueil ---------- */
.st-hero { position: relative; overflow: hidden; background: var(--st-nuit); color: #fff; }
.st-hero__photo { position: absolute; top: 0; right: 0; width: 58%; height: 100%; object-fit: cover; opacity: .32; pointer-events: none; }
.st-hero__voile { position: absolute; inset: 0; background: linear-gradient(90deg, #061E3F 0%, #061E3F 42%, rgba(6,30,63,.55) 70%, rgba(6,30,63,.25) 100%); pointer-events: none; }
.e-con.st-hero__inner { --padding-top: 80px; --padding-bottom: 176px; --padding-left: var(--st-gouttiere); --padding-right: var(--st-gouttiere); --container-max-width: var(--st-conteneur); max-width: var(--st-conteneur); margin: 0 auto; width: 100%; --flex-direction: row; --flex-wrap: wrap; --align-items: flex-end; --gap: 72px; --row-gap: 72px; --column-gap: 72px; position: relative; }
.e-con.st-hero__texte { --flex-direction: column; --gap: 30px; --row-gap: 30px; flex: 1 1 620px; min-width: 0; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; }
.e-con.st-hero__liste { flex: 1 1 380px; min-width: 0; --padding-top: 0; --padding-bottom: 0; --padding-left: 0; --padding-right: 0; --gap: 0; --row-gap: 0; }

/* ---------- Liste numérotée à filets ---------- */
.st-liste-filets { display: flex; flex-direction: column; border-top: 1px solid rgba(255,255,255,.25); margin: 0; padding: 0; list-style: none; }
.st-liste-filets__item { display: flex; gap: 20px; align-items: baseline; padding: 24px 0; border-bottom: 1px solid rgba(255,255,255,.25); color: #fff; text-decoration: none; }
.st-liste-filets__item:hover .st-liste-filets__titre { color: var(--st-bleu-clair); }
.st-liste-filets__num { font-family: var(--st-font-titres); font-size: 15px; color: var(--st-bleu-clair); width: 28px; flex: none; }
.st-liste-filets__corps { display: flex; flex-direction: column; gap: 6px; flex: 1; }
.st-liste-filets__titre { font-family: var(--st-font-titres); font-size: 21px; font-weight: 600; color: #fff; }
.st-liste-filets__desc { font-size: 15px; line-height: 1.55; color: var(--st-texte-inverse-2); }
.st-liste-filets__fleche { color: var(--st-bleu-clair); }
.st-liste-filets--grande .st-liste-filets__item { padding: 26px 0; gap: 24px; border-color: rgba(255,255,255,.22); }
.st-liste-filets--grande { border-top-color: rgba(255,255,255,.22); }
.st-liste-filets--grande .st-liste-filets__titre { font-size: 23px; }
.st-liste-filets--grande .st-liste-filets__desc { line-height: 1.6; }
.st-liste-filets--clair { border-top-color: var(--st-filet); }
.st-liste-filets--clair .st-liste-filets__item { border-bottom-color: var(--st-filet); color: var(--st-texte); }
.st-liste-filets--clair .st-liste-filets__num { color: var(--st-vert); font-family: var(--st-font-texte); letter-spacing: .06em; }
.st-liste-filets--clair .st-liste-filets__titre { color: var(--st-texte); }
.st-liste-filets--clair .st-liste-filets__desc { color: var(--st-texte-2); }
.st-liste-filets--clair .st-liste-filets__fleche { color: var(--st-bleu); }

/* ---------- Bandeau de chiffres ---------- */
.e-con.st-chiffres-section { --padding-top: 0; --padding-bottom: 0; --padding-left: var(--st-gouttiere); --padding-right: var(--st-gouttiere); margin-top: -96px; position: relative; z-index: 2; }
.st-chiffres { max-width: 1240px; margin: 0 auto; background: #fff; border-radius: var(--st-rayon-carte); box-shadow: var(--st-ombre-douce); padding: 52px 56px; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 0; }
.st-chiffre { display: flex; flex-direction: column; gap: 10px; padding: 0 32px; border-left: 1px solid var(--st-filet); }
.st-chiffre:first-child { padding-left: 0; border-left: 0; }
.st-chiffre:last-child { padding-right: 0; }
.st-chiffre__valeur { font-family: var(--st-font-titres); font-size: 54px; font-weight: 500; letter-spacing: -.03em; line-height: 1; color: var(--st-texte); }
.st-chiffre__valeur--vert { color: var(--st-vert); }
.st-chiffre__legende { font-size: 16px; color: var(--st-texte-2); }
.st-chiffres--mini { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; border-top: 1px solid var(--st-filet-2); border-bottom: 1px solid var(--st-filet-2); margin-top: 4px; }
.st-chiffres--mini .st-chiffre { padding: 18px 16px; gap: 4px; border-left-color: var(--st-filet-2); }
.st-chiffres--mini .st-chiffre:first-child { padding-left: 0; }
.st-chiffres--mini .st-chiffre__valeur { font-size: 26px; font-weight: 600; letter-spacing: -.01em; }
.st-chiffres--mini .st-chiffre__legende { font-size: 13px; color: var(--st-texte-3); }

/* ---------- Section approche (Marine) ---------- */
.e-con.st-approche { margin-top: 112px; }
.st-photo-haute, .st-photo-haute img { width: 100%; height: 560px; object-fit: cover; border-radius: 4px; display: block; }
.e-con.st-row--48 { --gap: 48px; --row-gap: 48px; --column-gap: 48px; --align-items: stretch; }
.e-con.st-row--72 { --gap: 72px; --row-gap: 72px; --column-gap: 72px; --align-items: center; }
.e-con.st-row--56 { --gap: 56px; --row-gap: 56px; --column-gap: 56px; --align-items: flex-start; }
.e-con.st-row--24 { --gap: 24px; --row-gap: 24px; --column-gap: 24px; --align-items: flex-start; }
.e-con.st-entete-section { --flex-direction: row; --flex-wrap: wrap; --justify-content: space-between; --align-items: flex-end; --gap: 32px; --row-gap: 32px; --column-gap: 32px; }
.e-con.st-stack { --flex-direction: column; --gap: 18px; --row-gap: 18px; }
.e-con.st-stack--24 { --gap: 24px; --row-gap: 24px; }
.e-con.st-stack--56 { --gap: 56px; --row-gap: 56px; }
.e-con.st-stack--64 { --gap: 64px; --row-gap: 64px; }
.e-con.st-stack--40 { --gap: 40px; --row-gap: 40px; }
.e-con.st-stack--28 { --gap: 28px; --row-gap: 28px; }
.e-con.st-stack--14 { --gap: 14px; --row-gap: 14px; }
.e-con.st-stack--10 { --gap: 10px; --row-gap: 10px; }
.e-con.st-flex-440 { flex: 1 1 440px; min-width: 0; }
.e-con.st-flex-460 { flex: 1 1 460px; min-width: 0; }
.e-con.st-flex-500 { flex: 1 1 500px; min-width: 0; }
.e-con.st-flex-520 { flex: 1 1 520px; min-width: 0; }
.e-con.st-flex-560 { flex: 1 1 560px; min-width: 0; }
.e-con.st-flex-600 { flex: 1 1 600px; min-width: 0; }
.e-con.st-flex-640 { flex: 999 1 640px; min-width: 0; }
.e-con.st-flex-420 { flex: 1 1 420px; min-width: 0; }
.e-con.st-flex-380 { flex: 0 1 380px; min-width: 0; }
.e-con.st-flex-300 { flex: 1 1 300px; min-width: 0; }
.e-con.st-flex-240 { flex: 1 1 240px; min-width: 0; }
.e-con.st-flex-auto { flex: 0 0 auto; }

/* ---------- Tableau de bord check-up ---------- */
.st-dashboard { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 0; border-radius: var(--st-rayon-bloc); overflow: hidden; box-shadow: 0 30px 70px rgba(6,30,63,.18); }
.st-dashboard__photo { position: relative; min-height: 460px; }
.st-dashboard__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.st-dashboard__voile { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(6,30,63,.05) 40%, rgba(6,30,63,.75) 100%); }
.st-reperes { position: relative; }
.st-reperes::before, .st-reperes::after, .st-reperes > .st-repere--bg, .st-reperes > .st-repere--bd { content: ""; position: absolute; width: 26px; height: 26px; pointer-events: none; }
.st-reperes::before { top: 18px; left: 18px; border-top: 2px solid #fff; border-left: 2px solid #fff; }
.st-reperes::after { top: 18px; right: 18px; border-top: 2px solid #fff; border-right: 2px solid #fff; }
.st-reperes > .st-repere--bg { bottom: 18px; left: 18px; border-bottom: 2px solid #fff; border-left: 2px solid #fff; }
.st-reperes > .st-repere--bd { bottom: 18px; right: 18px; border-bottom: 2px solid #fff; border-right: 2px solid #fff; }
.st-dashboard__etiquette { position: absolute; left: 32px; bottom: 34px; right: 32px; display: flex; flex-direction: column; gap: 6px; color: #fff; }
.st-dashboard__etiquette .st-badge { align-self: flex-start; }
.st-dashboard__etiquette-titre { font-family: var(--st-font-titres); font-size: 20px; font-weight: 600; }
.st-dashboard__etiquette-sous { font-size: 13px; color: var(--st-texte-inverse); }
.st-dashboard__panneau { background: var(--st-nuit); color: #fff; padding: 30px 30px 28px; display: flex; flex-direction: column; gap: 18px; }
.st-dashboard__entete { display: flex; justify-content: space-between; align-items: center; font-size: 12px; }
.st-dashboard__entete-titre { font-weight: 600; letter-spacing: .16em; color: var(--st-bleu-clair); text-transform: uppercase; }
.st-dashboard__statut { display: flex; align-items: center; gap: 6px; color: #9FE3C8; }
.st-dashboard__statut::before { content: ""; width: 7px; height: 7px; border-radius: 999px; background: var(--st-vert-sombre); }
.st-jauges { display: flex; flex-direction: column; gap: 14px; }
.st-jauge { display: flex; flex-direction: column; gap: 7px; }
.st-jauge__ligne { display: flex; justify-content: space-between; font-size: 14px; }
.st-jauge__valeur { font-weight: 600; }
.st-jauge__valeur--echeance { color: var(--st-echeance-sombre); }
.st-jauge__valeur--bleu { color: #8DB2FF; }
.st-jauge__valeur--vert { color: var(--st-vert-sombre-2); }
.st-jauge__barre { height: 4px; background: rgba(255,255,255,.12); border-radius: 2px; }
.st-jauge__barre > span { display: block; height: 4px; border-radius: 2px; background: var(--st-echeance-sombre); }
.st-jauge__barre--bleu > span { background: #5B8DEF; }
.st-jauge__barre--vert > span { background: var(--st-vert-sombre); }
.st-dashboard__pied { margin-top: auto; border-top: 1px solid rgba(255,255,255,.14); padding-top: 18px; display: flex; justify-content: space-between; align-items: flex-end; gap: 12px; }
.st-dashboard__gisement { display: flex; flex-direction: column; gap: 2px; }
.st-dashboard__gisement-legende { font-size: 13px; color: var(--st-texte-inverse-2); }
.st-dashboard__gisement-valeur { font-family: var(--st-font-titres); font-size: 46px; font-weight: 500; letter-spacing: -.03em; color: var(--st-vert-sombre-2); line-height: 1; }
.st-sparkline { width: 120px; height: 50px; }

/* ---------- Frise des échéances (shortcode [st_echeances]) ---------- */
.st-echeances { position: relative; }
.st-echeances__ligne { position: absolute; left: 0; right: 0; top: 11px; height: 2px; background: linear-gradient(90deg, var(--st-bleu) 0%, var(--st-bleu) var(--st-echeances-actif, 22%), var(--st-filet-3) var(--st-echeances-actif, 22%), var(--st-filet-3) 100%); }
.st-echeances__grille { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; }
.st-echeance { display: flex; flex-direction: column; gap: 18px; }
.st-echeance__pastille { width: 24px; height: 24px; border-radius: 999px; background: #fff; border: 2px solid #9AAAC2; box-sizing: border-box; display: block; }
.st-echeance--proche .st-echeance__pastille { border-color: var(--st-bleu); }
.st-echeance--active .st-echeance__pastille { background: var(--st-bleu); border-color: var(--st-bleu); box-shadow: 0 0 0 6px rgba(30,86,200,.18); }
.st-echeance__carte { background: #fff; border: 1px solid var(--st-filet-2); border-radius: var(--st-rayon-carte); padding: 26px; display: flex; flex-direction: column; gap: 12px; }
.st-echeance--active .st-echeance__carte { border-top: 3px solid var(--st-bleu); box-shadow: 0 14px 34px rgba(6,30,63,.08); }
.st-echeance__carte .st-badge { align-self: flex-start; }
.st-echeance__date { font-family: var(--st-font-titres); font-size: 32px; font-weight: 500; letter-spacing: -.02em; }
.st-echeance__titre { font-size: 17px; font-weight: 600; }
.st-echeance__desc { font-size: 15px; line-height: 1.6; color: var(--st-texte-2); }
.st-echeance--passee .st-echeance__date { color: var(--st-texte-3); }

/* ---------- Cartes secteurs ---------- */
.st-secteurs { display: grid; grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); gap: 16px; }
.st-carte-secteur { position: relative; display: block; height: 420px; border-radius: 4px; overflow: hidden; text-decoration: none; color: #fff; }
.st-carte-secteur img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.st-carte-secteur:hover img { transform: scale(1.03); }
.st-carte-secteur__texte { position: absolute; inset: auto 0 0 0; padding: 32px 26px 26px; background: linear-gradient(180deg, rgba(6,30,63,0), rgba(6,30,63,.88)); display: flex; flex-direction: column; gap: 6px; }
.st-carte-secteur__titre { font-family: var(--st-font-titres); font-size: 23px; font-weight: 600; color: #fff; }
.st-carte-secteur__sous { font-size: 14px; color: var(--st-texte-inverse); }
.st-secteurs--7 .st-carte-secteur { height: 340px; }

/* ---------- Grille simulateurs ---------- */
.st-grille-sim { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 0; border-top: 1px solid rgba(255,255,255,.22); border-left: 1px solid rgba(255,255,255,.22); }
.st-grille-sim__case { text-decoration: none; color: #fff; padding: 36px 32px; border-right: 1px solid rgba(255,255,255,.22); border-bottom: 1px solid rgba(255,255,255,.22); display: flex; flex-direction: column; gap: 16px; min-height: 220px; transition: background-color .15s ease; }
.st-grille-sim__case:hover { background: rgba(255,255,255,.06); }
.st-grille-sim__case--active, .st-grille-sim__case--active:hover { background: var(--st-bleu); }
.st-grille-sim__kicker { font-size: 12px; font-weight: 600; letter-spacing: .18em; text-transform: uppercase; color: var(--st-bleu-clair); }
.st-grille-sim__case--active .st-grille-sim__kicker { color: #D6E2FA; }
.st-grille-sim__titre { font-family: var(--st-font-titres); font-size: 24px; font-weight: 600; line-height: 1.25; color: #fff; }
.st-grille-sim__action { margin-top: auto; font-weight: 600; color: #fff; }
.st-grille-sim__action::after { content: " →"; }
.st-micro, .st-micro p { font-size: 14px; color: var(--st-texte-inverse-2); }

/* ---------- Frise méthode ---------- */
.st-methode { position: relative; }
.st-methode__ligne { position: absolute; left: 32px; right: 32px; top: 31px; height: 2px; background: linear-gradient(90deg, var(--st-nuit) 0%, var(--st-bleu) 66%, var(--st-vert-sombre) 100%); }
.st-methode__grille { position: relative; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 32px; }
.st-etape { display: flex; flex-direction: column; gap: 22px; }
.st-etape__pastille { width: 64px; height: 64px; border-radius: 999px; display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 8px #fff; background: var(--st-nuit); }
.st-etape__pastille svg { width: 28px; height: 28px; }
.st-etape--2 .st-etape__pastille { background: var(--st-marine); }
.st-etape--3 .st-etape__pastille { background: var(--st-bleu); }
.st-etape--4 .st-etape__pastille { background: var(--st-vert); }
.st-etape__corps { display: flex; flex-direction: column; gap: 10px; }
.st-etape__num { font-size: 12px; font-weight: 600; letter-spacing: .16em; color: var(--st-texte-3); text-transform: uppercase; }
.st-etape--4 .st-etape__num { color: var(--st-vert); }
.st-etape__titre { font-family: var(--st-font-titres); font-size: 24px; font-weight: 600; }
.st-etape__desc { font-size: 15px; line-height: 1.7; color: var(--st-texte-2); }
.st-etape__desc a { color: var(--st-bleu); }
.st-etape .st-badge { align-self: flex-start; }

/* ---------- Bloc livre blanc ---------- */
.st-livre-blanc { max-width: 1240px; margin: 0 auto; background: var(--st-marine); color: #fff; border-radius: var(--st-rayon-carte); overflow: hidden; display: flex; flex-wrap: wrap; }
.st-livre-blanc__photo { flex: 1 1 380px; min-width: 0; min-height: 380px; position: relative; }
.st-livre-blanc__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block; }
.st-livre-blanc__corps { flex: 1 1 520px; min-width: 0; padding: 64px; display: flex; flex-direction: column; gap: 20px; }
.st-livre-blanc__corps h2 { font-size: 38px; line-height: 1.12; letter-spacing: -.02em; color: #fff; margin: 0; }
.st-livre-blanc__corps p { font-size: 17px; line-height: 1.7; color: var(--st-texte-inverse); margin: 0; }
.st-livre-blanc__corps ul { margin: 0; padding-left: 18px; color: var(--st-texte-inverse); font-size: 16px; line-height: 1.7; }

/* ---------- Cartes articles ---------- */
.st-cartes-articles { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 32px; }
.st-carte-article { text-decoration: none; color: var(--st-texte); display: flex; flex-direction: column; gap: 18px; }
.st-carte-article img { width: 100%; height: 240px; object-fit: cover; border-radius: 4px; display: block; }
.st-carte-article__cat { font-size: 12px; font-weight: 600; letter-spacing: .16em; color: var(--st-bleu); text-transform: uppercase; }
.st-carte-article__titre { font-family: var(--st-font-titres); font-size: 22px; font-weight: 600; line-height: 1.3; }
.st-carte-article:hover .st-carte-article__titre { color: var(--st-bleu); }
.st-carte-article__meta { font-size: 14px; color: var(--st-texte-2); }

/* ---------- Pied de page (HFE) ---------- */
.st-footer { background: var(--st-nuit); color: var(--st-texte-inverse-2); }
.st-footer__inner { max-width: var(--st-conteneur); margin: 0 auto; padding: 104px var(--st-gouttiere) 40px; display: flex; flex-direction: column; gap: 64px; }
.st-footer__cta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 32px; padding-bottom: 64px; border-bottom: 1px solid rgba(255,255,255,.12); }
.st-footer__cta h2 { font-size: 48px; line-height: 1.08; color: #fff; margin: 0; max-width: 760px; }
.st-footer__colonnes { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 32px; font-size: 15px; line-height: 2.1; }
.st-footer__colonne { display: flex; flex-direction: column; }
.st-footer__colonne ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.st-footer__titre { color: #fff; font-weight: 600; }
.st-footer__marque { font-family: var(--st-font-titres); color: #fff; font-weight: 600; font-size: 20px; }
.st-footer__desc { line-height: 1.6; margin-top: 8px; }
.st-footer a { color: var(--st-texte-inverse-2); text-decoration: none; }
.st-footer a:hover { color: #fff; }
.st-footer__villes { font-size: 14px; display: flex; flex-wrap: wrap; gap: 6px 18px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.12); }
.st-footer__legal { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px; font-size: 13px; }
.st-footer__legal a { margin-left: 10px; }
.st-footer__smt { font-size: 13px; }

/* ---------- En-tête de page intérieure ---------- */
.e-con.st-entete-page { --padding-top: 40px; --padding-bottom: 72px; }
.e-con.st-entete-page--filet { --padding-top: 36px; --padding-bottom: 56px; border-bottom: 1px solid var(--st-filet); }
.st-essentiel { background: #fff; border: 1px solid var(--st-filet); border-radius: var(--st-rayon-carte); padding: 28px; display: flex; flex-direction: column; gap: 16px; }
.st-essentiel--brume { background: var(--st-brume); border: 0; }
.st-essentiel__titre { font-family: var(--st-font-texte); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--st-texte-2); }
.st-essentiel__ligne { display: flex; justify-content: space-between; gap: 12px; border-bottom: 1px solid #EDF1F5; padding-bottom: 12px; font-size: 15px; }
.st-essentiel__ligne:last-child { border-bottom: 0; padding-bottom: 0; }
.st-essentiel__cle { color: var(--st-texte-2); }
.st-essentiel__valeur { letter-spacing: .02em; text-align: right; color: var(--st-texte); font-weight: 500; }
.st-essentiel__valeur--echeance { color: #8A4A12; }
.st-essentiel__grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 10px 32px; font-size: 16px; }
.st-essentiel__grille strong { color: var(--st-texte); }
.st-essentiel ul { margin: 0; padding: 0; list-style: none; display: flex; flex-direction: column; }
.st-essentiel ul li { border-bottom: 1px solid #EDF1F5; padding: 10px 0; font-size: 16px; }
.st-essentiel ul li:last-child { border-bottom: 0; }
.st-essentiel ul li strong { color: var(--st-texte); }

/* ---------- Corps de page (prose) ---------- */
.st-prose, .st-prose .elementor-widget-text-editor { font-size: 18px; line-height: 1.7; color: #33465F; }
.st-prose--19, .st-prose--19 .elementor-widget-text-editor { font-size: 19px; line-height: 1.75; }
.st-prose h2, .st-prose .elementor-heading-title.st-h2 { font-size: 30px; line-height: 1.25; letter-spacing: -.015em; color: var(--st-texte); margin: 0; }
.st-prose h3 { font-size: 22px; line-height: 1.3; color: var(--st-texte); margin: 0; }
.st-prose p { margin: 0 0 1em; }
.st-prose p:last-child { margin-bottom: 0; }
.st-prose ul, .st-prose ol { margin: 0 0 1em; padding-left: 22px; }
.st-prose li { margin-bottom: .4em; }
.st-prose a { color: var(--st-bleu); text-decoration: underline; text-underline-offset: 3px; }
.st-prose strong { color: var(--st-texte); }
.e-con.st-prose { --gap: 20px; --row-gap: 20px; }
.e-con.st-prose--56 { --gap: 56px; --row-gap: 56px; }
.e-con.st-prose--36 { --gap: 36px; --row-gap: 36px; }
.e-con.st-prose--28 { --gap: 28px; --row-gap: 28px; }
.e-con.st-bloc { --gap: 16px; --row-gap: 16px; --flex-direction: column; }
.st-sommaire { display: flex; flex-direction: column; gap: 4px; font-size: 15px; border-left: 2px solid var(--st-filet); padding-left: 20px; position: sticky; top: 24px; }
.st-sommaire__titre { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--st-texte-2); margin-bottom: 10px; }
.st-sommaire a { color: var(--st-texte-2); text-decoration: none; padding: 6px 0; display: block; }
.st-sommaire a:hover, .st-sommaire a.est-actif { color: var(--st-marine); font-weight: 600; }
.st-encadre { border-radius: var(--st-rayon-carte); padding: 20px 24px; font-size: 16px; line-height: 1.6; }
.st-encadre--bon-a-savoir { background: var(--st-badge-bleu); color: var(--st-marine); }
.st-encadre--a-retenir { background: #E3F4F0; color: #0B3B33; border-left: 4px solid var(--st-vert); border-radius: 0 var(--st-rayon-carte) var(--st-rayon-carte) 0; padding: 24px 28px; display: flex; flex-direction: column; gap: 10px; font-size: 17px; }
.st-encadre--a-retenir .st-encadre__titre { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: #0A6B5D; }
.st-encadre--a-retenir ul { margin: 0; padding-left: 18px; }
.st-encadre--alerte { border-left: 4px solid #B5651D; background: #FBEFE3; color: #5E3410; border-radius: 0 10px 10px 0; padding: 18px 22px; }
.st-encadre--alerte strong { color: #5E3410; }
.st-encadre--alerte a { color: #8A4A12; }
.st-tableau-wrap { border: 1px solid var(--st-filet); border-radius: var(--st-rayon-carte); overflow-x: auto; }
.st-tableau-wrap table, .st-prose table { width: 100%; border-collapse: collapse; font-size: 16px; min-width: 460px; margin: 0; }
.st-tableau-wrap th, .st-prose th { padding: 14px 20px; background: var(--st-brume); font-weight: 600; color: var(--st-texte); text-align: left; }
.st-tableau-wrap td, .st-prose td { padding: 14px 20px; border-top: 1px solid var(--st-filet); vertical-align: top; }
.st-prose table { border: 1px solid var(--st-filet); border-radius: var(--st-rayon-carte); }
.st-cta-nuit { background: var(--st-nuit); color: #fff; border-radius: var(--st-rayon-bloc); padding: 36px; display: flex; flex-wrap: wrap; gap: 24px; justify-content: space-between; align-items: center; }
.st-cta-nuit__textes { display: flex; flex-direction: column; gap: 8px; max-width: 480px; }
.st-cta-nuit__titre { font-size: 22px; font-weight: 600; line-height: 1.3; color: #fff; }
.st-cta-nuit__desc { font-size: 16px; line-height: 1.55; color: var(--st-texte-inverse); }
.st-cta-brume { background: var(--st-brume); border-radius: var(--st-rayon-carte); padding: 24px 28px; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 16px; }
.st-cta-brume__titre { font-size: 18px; font-weight: 600; color: var(--st-texte); max-width: 420px; line-height: 1.4; }
.st-cta-marine { background: var(--st-marine); color: #fff; border-radius: var(--st-rayon-carte); padding: 28px; display: flex; flex-direction: column; gap: 14px; }
.st-cta-marine__titre { font-size: 20px; font-weight: 600; line-height: 1.3; color: #fff; }
.st-cta-marine__desc { font-size: 15px; line-height: 1.55; color: var(--st-texte-inverse); }
.st-dans-ce-guide { border: 1px solid var(--st-filet); border-radius: var(--st-rayon-carte); padding: 24px; display: flex; flex-direction: column; gap: 10px; font-size: 15px; }
.st-dans-ce-guide__titre { font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--st-texte-2); }
.st-dans-ce-guide a { color: var(--st-texte); text-decoration: none; }
.st-dans-ce-guide a:hover { color: var(--st-bleu); }
.e-con.st-aside { --gap: 20px; --row-gap: 20px; position: sticky; top: 24px; }
.st-chiffres-objectifs { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.st-chiffre-objectif { border: 1px solid var(--st-filet); border-radius: var(--st-rayon-carte); padding: 20px; display: flex; flex-direction: column; gap: 4px; }
.st-chiffre-objectif__valeur { font-size: 30px; color: var(--st-vert); letter-spacing: .02em; font-family: var(--st-font-titres); font-weight: 500; }
.st-chiffre-objectif__legende { font-size: 15px; color: var(--st-texte-2); }
.st-liste-tri { display: flex; flex-direction: column; border: 1px solid var(--st-filet); border-radius: var(--st-rayon-carte); background: #fff; }
.st-liste-tri__ligne { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 16px 20px; border-bottom: 1px solid var(--st-filet); }
.st-liste-tri__ligne:last-child { border-bottom: 0; }
.st-liste-tri__nom { font-weight: 600; color: var(--st-texte); }
.st-liste-tri__tag { font-size: 14px; letter-spacing: .06em; text-transform: uppercase; }
.st-liste-tri__tag--court { color: #0A6B5D; } .st-liste-tri__tag--moyen, .st-liste-tri__tag--long { color: #8A4A12; }
.st-liste-cartes { display: flex; flex-direction: column; gap: 12px; }
.st-liste-cartes__ligne { background: #fff; border-radius: var(--st-rayon-carte); padding: 18px 22px; display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; font-weight: 600; }

/* FAQ : widget Accordéon Elementor */
.st-faq .elementor-accordion .elementor-accordion-item { border: 0; border-bottom: 1px solid var(--st-filet); }
.st-faq .elementor-accordion .elementor-tab-title { padding: 16px 0; font-family: var(--st-font-texte); font-size: 18px; font-weight: 600; color: var(--st-texte); display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 44px; }
.st-faq .elementor-accordion .elementor-tab-title a { color: inherit; }
.st-faq .elementor-accordion .elementor-tab-title .elementor-accordion-icon { order: 2; color: var(--st-texte-2); font-size: 18px; }
.st-faq .elementor-accordion .elementor-tab-content { padding: 0 0 18px; border: 0; font-size: 17px; line-height: 1.7; color: #33465F; }
.st-faq .elementor-accordion .elementor-tab-content p:last-child { margin-bottom: 0; }

/* Pages liées */
.st-pages-liees { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.st-pages-liees a { text-decoration: none; color: var(--st-texte); background: #fff; border: 1px solid var(--st-filet); border-radius: var(--st-rayon-carte); padding: 22px; font-weight: 600; display: flex; justify-content: space-between; gap: 12px; align-items: center; transition: border-color .15s ease; }
.st-pages-liees a::after { content: "→"; color: var(--st-bleu); }
.st-pages-liees a:hover { border-color: var(--st-bleu); color: var(--st-bleu); }
.st-fond-brume .st-pages-liees a { border-color: transparent; }

/* ---------- Secteur ---------- */
.st-photo-hero-secteur, .st-photo-hero-secteur img { width: 100%; height: 340px; object-fit: cover; border-radius: var(--st-rayon-bloc); display: block; }
.st-enjeux { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.st-enjeu { border: 1px solid var(--st-filet); border-radius: var(--st-rayon-carte); padding: 28px; display: flex; flex-direction: column; gap: 10px; background: #fff; }
.st-enjeu__num { font-size: 14px; letter-spacing: .06em; color: var(--st-vert); }
.st-enjeu__titre { font-size: 20px; font-weight: 600; color: var(--st-texte); }
.st-enjeu__desc { font-size: 15px; line-height: 1.6; color: var(--st-texte-2); }
.st-obligations { background: #fff; border: 1px solid var(--st-filet); border-radius: var(--st-rayon-carte); }
.st-obligations__ligne { display: flex; justify-content: space-between; gap: 12px; padding: 18px 22px; border-bottom: 1px solid #EDF1F5; align-items: center; }
.st-obligations__ligne:last-child { border-bottom: 0; }
.st-obligations__nom { font-weight: 600; }
.st-etapes-4 { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); border-top: 1px solid var(--st-filet); }
.st-etapes-4__item { padding: 24px 24px 0 0; display: flex; flex-direction: column; gap: 10px; }
.st-etapes-4__num { letter-spacing: .06em; color: var(--st-vert); }
.st-etapes-4__titre { font-size: 19px; font-weight: 600; }
.st-etapes-4__desc { font-size: 15px; line-height: 1.6; color: var(--st-texte-2); }
.st-bandeau-cta { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 28px; }
.st-bandeau-cta h2 { font-size: 32px; line-height: 1.2; max-width: 640px; color: #fff; margin: 0; }

/* ---------- Ville ---------- */
.st-cartes-infos { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 16px; margin-top: 12px; }
.st-carte-info { background: #fff; border: 1px solid var(--st-filet); border-radius: var(--st-rayon-carte); padding: 22px; display: flex; flex-direction: column; gap: 6px; }
.st-carte-info__legende { font-size: 13px; color: var(--st-texte-2); }
.st-carte-info__valeur { font-family: var(--st-font-titres); font-size: 26px; font-weight: 500; color: var(--st-marine); letter-spacing: -.01em; }
.st-carte-info__valeur--texte { font-family: var(--st-font-texte); font-size: 18px; font-weight: 600; }
.st-carte-info__valeur--echeance { color: #B5651D; }
.st-carte-info__sous { font-size: 14px; color: var(--st-texte-2); }
.st-photo-300, .st-photo-300 img { width: 100%; height: 300px; object-fit: cover; border-radius: var(--st-rayon-carte); display: block; }
.st-photo-420, .st-photo-420 img { width: 100%; height: 420px; object-fit: cover; border-radius: var(--st-rayon-bloc); display: block; }

/* ---------- Article (single.php) ---------- */
.st-article-entete { max-width: 820px; margin: 0 auto; padding: 48px var(--st-gouttiere) 0; display: flex; flex-direction: column; gap: 20px; }
.st-article-entete h1 { font-size: 42px; line-height: 1.15; letter-spacing: -.025em; margin: 0; }
.st-article-entete .st-badge { align-self: flex-start; background: #E3F4F0; color: #0A6B5D; text-transform: uppercase; letter-spacing: .06em; padding: 6px 10px; }
.st-article-auteur { display: flex; align-items: center; gap: 12px; font-size: 14px; color: var(--st-texte-2); border-bottom: 1px solid var(--st-filet); padding-bottom: 24px; flex-wrap: wrap; }
.st-article-auteur strong { color: var(--st-texte); }
.st-article-auteur__avatar { width: 36px; height: 36px; border-radius: 999px; flex: none; }
.st-article-une { max-width: 1040px; margin: 0 auto; padding: 32px var(--st-gouttiere) 0; }
.st-article-une img { width: 100%; height: 420px; object-fit: cover; border-radius: var(--st-rayon-bloc); display: block; }
.st-article-corps { max-width: 820px; margin: 0 auto; padding: 48px var(--st-gouttiere) 80px; display: flex; flex-direction: column; gap: 28px; font-size: 19px; line-height: 1.75; color: #33465F; }
.st-article-corps > * { margin: 0; }
.st-article-corps h2 { font-size: 30px; line-height: 1.25; letter-spacing: -.015em; color: var(--st-texte); margin-top: 12px; }
.st-article-corps h3 { font-size: 22px; line-height: 1.3; color: var(--st-texte); }
.st-article-corps a { color: var(--st-bleu); text-decoration: underline; text-underline-offset: 3px; }
.st-article-corps ul, .st-article-corps ol { padding-left: 22px; }
.st-article-corps table { width: 100%; border-collapse: collapse; font-size: 16px; border: 1px solid var(--st-filet); }
.st-article-corps th { padding: 14px 20px; background: var(--st-brume); text-align: left; color: var(--st-texte); }
.st-article-corps td { padding: 14px 20px; border-top: 1px solid var(--st-filet); vertical-align: top; }
.st-article-corps details { border-bottom: 1px solid var(--st-filet); padding: 14px 0; }
.st-article-corps summary { font-weight: 600; color: var(--st-texte); cursor: pointer; font-size: 18px; }
.st-article-corps details p { margin: 10px 0 0; font-size: 17px; }
.st-a-lire-aussi { background: var(--st-brume); }
.st-a-lire-aussi__inner { max-width: var(--st-conteneur); margin: 0 auto; padding: 64px var(--st-gouttiere); display: flex; flex-direction: column; gap: 24px; }
.st-a-lire-aussi h2 { font-size: 24px; margin: 0; }
.st-a-lire-aussi__grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 16px; }
.st-a-lire-aussi__carte { text-decoration: none; color: var(--st-texte); background: #fff; border-radius: var(--st-rayon-carte); padding: 24px; display: flex; flex-direction: column; gap: 10px; }
.st-a-lire-aussi__cat { font-size: 12px; letter-spacing: .06em; color: var(--st-texte-2); text-transform: uppercase; }
.st-a-lire-aussi__titre { font-size: 18px; font-weight: 600; line-height: 1.35; }
.st-a-lire-aussi__carte:hover .st-a-lire-aussi__titre { color: var(--st-bleu); }

/* ---------- Contact et formulaires ---------- */
.st-carte-blanche { background: #fff; border: 1px solid var(--st-filet); border-radius: var(--st-rayon-bloc); padding: 32px; display: flex; flex-direction: column; gap: 18px; }
.st-carte-blanche__titre { font-size: 20px; font-weight: 600; }
.st-calendly { min-height: 640px; border-radius: var(--st-rayon-carte); overflow: hidden; }
.st-calendly__attente { height: 520px; border-radius: var(--st-rayon-carte); border: 1px dashed var(--st-texte-inverse-2); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 16px; font-size: 14px; color: var(--st-texte-2); text-align: center; padding: 16px; }
.st-agence { background: var(--st-nuit); color: #fff; border-radius: var(--st-rayon-bloc); padding: 28px; display: flex; flex-direction: column; gap: 10px; font-size: 15px; line-height: 1.6; }
.st-agence__titre { font-size: 12px; letter-spacing: .12em; text-transform: uppercase; color: var(--st-vert-sombre); }
.st-agence__tel { color: #fff; font-size: 20px; letter-spacing: .02em; text-decoration: underline; text-underline-offset: 4px; }
.st-agence__sous { color: var(--st-texte-inverse-2); }
.st-form { display: flex; flex-direction: column; gap: 16px; }
.st-form__grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 14px; }
.st-form label { display: flex; flex-direction: column; gap: 6px; font-size: 14px; font-weight: 500; color: var(--st-texte); }
.st-form input[type=text], .st-form input[type=email], .st-form input[type=tel], .st-form select, .st-form textarea { font-family: inherit; font-size: 16px; padding: 12px 14px; border: 1px solid var(--st-texte-inverse-2); border-radius: var(--st-rayon-bouton); background: #fff; color: var(--st-texte); min-height: 44px; width: 100%; }
.st-form input:focus, .st-form select:focus, .st-form textarea:focus { outline: 2px solid var(--st-bleu); outline-offset: 1px; border-color: var(--st-bleu); }
.st-form__consent { display: flex; gap: 10px; align-items: flex-start; font-size: 13px; line-height: 1.5; color: var(--st-texte-2); font-weight: 400; flex-direction: row; }
.st-form__consent input { margin-top: 3px; width: 18px; height: 18px; flex: none; }
.st-form__rgpd { font-size: 12px; line-height: 1.5; color: var(--st-texte-3); }
.st-form__erreur { color: #B42318; font-size: 13px; }
.st-form__avertissement { color: #8A4A12; font-size: 13px; }
.st-form--inline { flex-direction: row; flex-wrap: wrap; gap: 12px; align-items: flex-end; }
.st-form--inline label { flex: 1 1 260px; color: var(--st-texte-inverse); font-size: 13px; }
.st-form--inline input[type=email] { border: 0; padding: 15px 16px; }

/* ---------- Grille générique de cartes (expertises, simulateurs page parente) ---------- */
.st-cartes { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 20px; }
.st-carte { background: #fff; border: 1px solid var(--st-filet); border-radius: var(--st-rayon-carte); padding: 28px; display: flex; flex-direction: column; gap: 12px; text-decoration: none; color: var(--st-texte); }
.st-carte:hover { border-color: var(--st-bleu); }
.st-carte__titre { font-family: var(--st-font-titres); font-size: 22px; font-weight: 600; line-height: 1.25; }
.st-carte__desc { font-size: 15px; line-height: 1.6; color: var(--st-texte-2); }
.st-carte__action { margin-top: auto; font-weight: 600; color: var(--st-bleu); }
.st-carte__action::after { content: " →"; }

/* ---------- Accessibilité ---------- */
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--st-bleu); outline-offset: 2px; }
.st-fond-nuit a:focus-visible, .st-fond-marine a:focus-visible { outline-color: #fff; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(1px,1px,1px,1px); }

/* ---------- Tablette (< 1024) : menu burger ---------- */
@media (max-width: 1023px) {
  .st-nav { display: none; position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--st-filet); padding: 16px var(--st-gouttiere) 24px; flex-direction: column; align-items: stretch; gap: 0; box-shadow: 0 24px 60px rgba(6,30,63,.16); }
  .st-header.est-ouvert .st-nav { display: flex; }
  .st-nav ul { flex-direction: column; gap: 0; }
  /* Le panneau mobile est blanc quel que soit l'en-tête : on annule le blanc des liens hérité de .st-header--sombre. */
  .st-nav a, .st-header--sombre .st-nav a { color: var(--st-texte); padding: 12px 0; border-bottom: 1px solid var(--st-filet); width: 100%; }
  .st-nav a:hover, .st-header--sombre .st-nav a:hover { color: var(--st-bleu); }
  .st-nav .sub-menu { position: static; display: flex; box-shadow: none; border: 0; padding: 0 0 8px 16px; min-width: 0; }
  .st-nav .sub-menu a { padding: 10px 0; border-bottom: 0; }
  .st-nav .menu-item-has-children > a::after { display: none; }
  .st-burger, .st-header .st-burger { display: inline-flex; }
  .st-header__cta { display: none; }
  /* Le bouton dans le panneau mobile garde son style de bouton (les règles .st-nav a ci-dessus sont plus spécifiques que .st-btn). */
  .st-header.est-ouvert .st-header__cta, .st-header--sombre .st-nav .st-header__cta, .st-header--clair .st-nav .st-header__cta { display: block; margin-top: 16px; padding: 12px 20px; color: #fff; text-align: center; border-bottom: 0; }
  .st-header--sombre .st-nav .st-header__cta:hover, .st-header--clair .st-nav .st-header__cta:hover { color: #fff; }
  .st-header__barre { display: none; }
  .st-sommaire { position: static; }
  .e-con.st-aside { position: static; }
}

/* ---------- Mobile (< 768) ---------- */
@media (max-width: 767px) {
  .st-h1 .elementor-heading-title, .st-h1--44 .elementor-heading-title, .st-h1--42 .elementor-heading-title { font-size: 34px; }
  .st-h1--accueil .elementor-heading-title { font-size: 40px; }
  .st-titre-section .elementor-heading-title, .st-titre-section--50 .elementor-heading-title { font-size: 32px; }
  .st-titre-section--38 .elementor-heading-title, .st-titre-section--34 .elementor-heading-title { font-size: 28px; }
  .st-titre-section--30 .elementor-heading-title { font-size: 24px; }
  .st-chapo, .st-chapo p { font-size: 17px; }
  .e-con.st-hero__inner { --padding-top: 48px; --padding-bottom: 140px; --gap: 40px; --row-gap: 40px; }
  .st-hero__photo { display: none; }
  .st-chiffres { padding: 32px 24px; grid-template-columns: 1fr; }
  .st-chiffre { padding: 18px 0; border-left: 0; border-top: 1px solid var(--st-filet); }
  .st-chiffre:first-child { padding-top: 0; border-top: 0; }
  .st-chiffre__valeur { font-size: 44px; }
  .e-con.st-chiffres-section { margin-top: -72px; }
  .e-con.st-approche { margin-top: 72px; }
  .st-photo-haute, .st-photo-haute img { height: 360px; }
  .st-dashboard__photo { min-height: 360px; }
  .st-echeances__ligne { left: 11px; right: auto; top: 0; bottom: 0; width: 2px; height: auto; background: linear-gradient(180deg, var(--st-bleu) 0%, var(--st-bleu) var(--st-echeances-actif, 22%), var(--st-filet-3) var(--st-echeances-actif, 22%), var(--st-filet-3) 100%); }
  .st-echeances__grille { grid-template-columns: 1fr; gap: 24px; padding-left: 0; }
  .st-echeance { flex-direction: row; gap: 18px; align-items: flex-start; }
  .st-echeance__pastille { flex: none; }
  .st-echeance__carte { flex: 1; }
  .st-methode__ligne { left: 31px; right: auto; top: 32px; bottom: 32px; width: 2px; height: auto; background: linear-gradient(180deg, var(--st-nuit) 0%, var(--st-bleu) 66%, var(--st-vert-sombre) 100%); }
  .st-methode__grille { grid-template-columns: 1fr; gap: 36px; }
  .st-carte-secteur { height: 300px; }
  .st-grille-sim__case { min-height: 180px; padding: 28px 24px; }
  .st-livre-blanc__corps { padding: 32px 24px; }
  .st-livre-blanc__corps h2 { font-size: 28px; }
  .st-footer__inner { padding-top: 64px; }
  .st-footer__cta h2 { font-size: 32px; }
  .st-chiffres-objectifs { grid-template-columns: 1fr; }
  .st-cta-nuit { padding: 28px 24px; }
  .st-article-entete h1 { font-size: 32px; }
  .st-article-une img { height: 260px; }
  .st-article-corps { font-size: 18px; }
  .st-photo-420, .st-photo-420 img { height: 260px; }
  .st-etapes-4 { grid-template-columns: 1fr; }
  .e-con.st-row--72, .e-con.st-row--48, .e-con.st-row--56 { --gap: 32px; --row-gap: 32px; --column-gap: 32px; }
  .st-bandeau-cta h2 { font-size: 26px; }
  .st-sommaire { display: none; }
}

/* ---------- Priorité sur les couleurs globales du kit Elementor ---------- */
.st-fond-nuit .elementor-heading-title, .st-fond-marine .elementor-heading-title, .st-hero .elementor-heading-title, .st-fond-nuit .elementor-widget-heading .elementor-heading-title, .st-fond-marine .elementor-widget-heading .elementor-heading-title, .st-hero .elementor-widget-heading .elementor-heading-title { color: #fff; }
.st-hero .st-surtitre .elementor-heading-title, .st-fond-nuit .st-surtitre .elementor-heading-title, .st-fond-marine .st-surtitre .elementor-heading-title { color: var(--st-bleu-clair); }
.elementor-widget-heading .st-surtitre .elementor-heading-title, .st-surtitre.elementor-widget-heading .elementor-heading-title { font-family: var(--st-font-texte); font-size: 13px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase; color: var(--st-bleu); line-height: 1.3; }
.st-surtitre--vert.elementor-widget-heading .elementor-heading-title { color: var(--st-vert); letter-spacing: .12em; font-weight: 500; }
.st-fond-nuit .st-surtitre--vert.elementor-widget-heading .elementor-heading-title { color: var(--st-vert-sombre); }
.st-fond-nuit .elementor-widget-text-editor, .st-fond-marine .elementor-widget-text-editor, .st-hero .elementor-widget-text-editor { color: var(--st-texte-inverse); }
.st-chapo--inverse.elementor-widget-text-editor, .st-chapo--inverse.elementor-widget-text-editor p { color: var(--st-texte-inverse); font-size: 19px; line-height: 1.65; max-width: 580px; }
.st-reassurance.elementor-widget-text-editor, .st-reassurance.elementor-widget-text-editor p { font-size: 14px; color: var(--st-texte-inverse-2); }
.st-intro-droite.elementor-widget-text-editor, .st-intro-droite.elementor-widget-text-editor p { font-size: 18px; line-height: 1.7; color: var(--st-texte-inverse); }
.st-micro.elementor-widget-text-editor, .st-micro.elementor-widget-text-editor p { font-size: 14px; color: var(--st-texte-inverse-2); }
.st-texte-2.elementor-widget-text-editor, .st-texte-2.elementor-widget-text-editor p { color: var(--st-texte-2); }
.st-petit.elementor-widget-text-editor, .st-petit.elementor-widget-text-editor p { font-size: 15px; }
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-heading .elementor-heading-title { margin: 0; }
.st-lien-fleche.elementor-widget-text-editor a { color: var(--st-texte); font-weight: 600; font-size: 15px; }
.st-fond-nuit .st-lien-fleche.elementor-widget-text-editor a, .st-fond-marine .st-lien-fleche.elementor-widget-text-editor a { color: #fff; }
/* L'enveloppe du widget bouton Elementor porte aussi la classe .st-btn : on neutralise son propre cadre, son padding et son fond pour ne styler que le lien intérieur (sinon bordure et padding doublés). */
.elementor-widget-button.st-btn, .elementor-widget-button.st-btn:hover, .elementor-widget-button.st-btn:focus-within { width: auto; padding: 0; border: 0; background: transparent; box-shadow: none; transform: none; }
.elementor-widget-button.st-btn .elementor-button { border: 1px solid transparent; }
.elementor-widget-button.st-btn--contour .elementor-button { border-color: var(--st-filet-3); }
.elementor-widget-button.st-btn--contour-inverse .elementor-button { border-color: rgba(255,255,255,.55); background: transparent; }
.elementor-widget-button.st-btn--contour-inverse .elementor-button:hover { border-color: #fff; background: rgba(255,255,255,.08); }
.elementor-widget-button.st-btn--sombre .elementor-button { background: var(--st-nuit); }
.elementor-widget-button.st-btn--blanc .elementor-button { background: #fff; color: var(--st-marine); }
.elementor-widget-button.st-btn--large .elementor-button { padding: 18px 30px; }
.elementor-widget-button.st-btn .elementor-button { padding: 17px 28px; font-size: 16px; font-weight: 600; border-radius: 4px; line-height: 1.2; }
.e-con.st-btns > .elementor-widget-button { width: auto; flex: 0 0 auto; }
/* Widgets HTML purement décoratifs (photo en filigrane, ondes) : hors flux, positionnés sur la section. */
.elementor-widget.st-deco { position: static; width: 0; height: 0; margin: 0; overflow: visible; }
.elementor-widget.st-deco > .elementor-widget-container { position: static; }
.st-ondes > .e-con, .st-hero > .e-con { position: relative; z-index: 1; }
/* Priorité sur `.elementor img { height:auto }` pour les photos à hauteur fixe. */
.elementor img.st-photo-haute, img.st-photo-haute { height: 560px; width: 100%; object-fit: cover; border-radius: 4px; display: block; }
.elementor img.st-photo-300, img.st-photo-300 { height: 300px; width: 100%; object-fit: cover; border-radius: var(--st-rayon-carte); display: block; }
.elementor img.st-photo-420, img.st-photo-420 { height: 420px; width: 100%; object-fit: cover; border-radius: var(--st-rayon-bloc); display: block; }
.elementor img.st-photo-hero-secteur, img.st-photo-hero-secteur { height: 340px; width: 100%; object-fit: cover; border-radius: var(--st-rayon-bloc); display: block; }
.elementor .st-carte-secteur img { height: 100%; }
.elementor .st-dashboard__photo img, .elementor .st-livre-blanc__photo img { height: 100%; }
.elementor .st-carte-article img { height: 240px; }
.elementor img.st-hero__photo { height: 100%; }
@media (max-width: 767px) { .elementor img.st-photo-haute, img.st-photo-haute { height: 360px; } .elementor img.st-photo-420, img.st-photo-420 { height: 260px; } }
/* Hero : colonne texte large pour que les deux boutons tiennent sur une ligne */
.e-con.st-hero__texte { flex: 1 1 680px; }
.e-con.st-hero__liste { flex: 0 1 380px; }
/* Grille simulateurs : description sous le titre */
.st-grille-sim__desc { font-size: 15px; line-height: 1.6; color: var(--st-texte-inverse); }
.st-grille-sim__case--active .st-grille-sim__desc { color: #E3ECFB; }
.st-grille-sim { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); }
/* Accueil : la section CTA finale de la page remplace le grand CTA du pied de page. */
.home .st-footer__cta { display: none; }
.home .st-footer__inner { padding-top: 72px; }
/* Cartes blanches en conteneurs Elementor (contact, livre blanc) */
.e-con.st-carte-blanche { --padding-top: 32px; --padding-right: 32px; --padding-bottom: 32px; --padding-left: 32px; --gap: 18px; --row-gap: 18px; background: #fff; border: 1px solid var(--st-filet); border-radius: var(--st-rayon-bloc); }
.st-carte-blanche__titre .elementor-heading-title, .elementor-widget-heading.st-carte-blanche__titre .elementor-heading-title { font-family: var(--st-font-texte); font-size: 20px; font-weight: 600; letter-spacing: 0; }
.st-max-900 { max-width: 900px; }
.e-con.st-wrap--860, .e-con.st-wrap--820, .e-con.st-wrap--1040 { --container-max-width: var(--st-conteneur); width: 100%; margin-left: auto; margin-right: auto; --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; }
.e-con.st-wrap--860 { max-width: 860px; } .e-con.st-wrap--820 { max-width: 820px; } .e-con.st-wrap--1040 { max-width: 1040px; }
.e-con.st-simulateur-bloc { --padding-top: 0; --padding-right: 0; --padding-bottom: 0; --padding-left: 0; }
.st-h2.elementor-widget-heading .elementor-heading-title { font-size: 30px; line-height: 1.25; letter-spacing: -.015em; font-weight: 600; scroll-margin-top: 24px; }
.st-h1.elementor-widget-heading .elementor-heading-title { font-size: 48px; line-height: 1.1; letter-spacing: -.025em; font-weight: 600; max-width: 900px; }
.st-h1--44.elementor-widget-heading .elementor-heading-title { font-size: 44px; line-height: 1.12; }
.st-chapo.elementor-widget-text-editor, .st-chapo.elementor-widget-text-editor p { font-size: 19px; line-height: 1.6; color: #33465F; max-width: 820px; }
.st-fond-nuit .st-chapo.elementor-widget-text-editor p { color: var(--st-texte-inverse); }
/* Chapo inversé (hero, fonds nuit et marine) : doit passer après la règle générique ci-dessus, de même spécificité. */
.st-chapo--inverse.elementor-widget-text-editor, .st-chapo--inverse.elementor-widget-text-editor p, .st-hero .st-chapo.elementor-widget-text-editor p, .st-fond-marine .st-chapo.elementor-widget-text-editor p { color: var(--st-texte-inverse); max-width: 580px; }
.st-meta-page.elementor-widget-text-editor p { font-size: 14px; color: var(--st-texte-2); }
.e-con.st-prose > .elementor-widget-text-editor { font-size: 18px; line-height: 1.7; color: #33465F; }
.e-con.st-prose--28 > .elementor-widget-text-editor { font-size: 18px; }
.e-con.st-prose > .elementor-widget-heading + .elementor-widget-text-editor { margin-top: -16px; }
.e-con.st-prose > .elementor-widget-heading.st-h2 { margin-top: 20px; }
.e-con.st-prose > .elementor-widget-heading.st-h2:first-child { margin-top: 0; }
.e-con.st-prose .elementor-widget-heading h3.elementor-heading-title { font-size: 22px; line-height: 1.3; letter-spacing: -.01em; }
.e-con.st-prose .elementor-widget-heading h4.elementor-heading-title { font-size: 19px; font-family: var(--st-font-texte); }
.e-con.st-aside { --gap: 20px; --row-gap: 20px; align-self: flex-start; position: sticky; top: 24px; }
.st-surtitre--vert-inverse .elementor-heading-title { color: var(--st-vert-sombre) !important; }
.st-fond-nuit .st-chapo p, .st-fond-nuit .st-meta-page p { color: var(--st-texte-inverse); }
.st-cartes-infos { width: 100%; }
.st-essentiel__ligne { align-items: baseline; }
.st-essentiel__cle { flex: 0 0 34%; }
.st-essentiel__valeur { flex: 1; text-align: left; font-size: 15px; line-height: 1.5; }
.st-essentiel__texte { font-size: 15px; line-height: 1.5; }
.st-essentiel--brume .st-essentiel__ligne { border-bottom-color: #E2E8F0; }
.st-essentiel--empile .st-essentiel__ligne { flex-direction: column; gap: 3px; }
.st-essentiel--empile .st-essentiel__cle { flex: none; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-weight: 600; }
.e-con.st-flex-380 { flex: 0 1 440px; }
.st-sommaire a { font-size: 14px; line-height: 1.45; }

/* Liens-boutons (widgets HTML, simulateurs, en-tête) : la couleur de lien du kit Elementor (.elementor-kit-N a) et .st-nav a sont plus spécifiques que .st-btn--… ; on rétablit la couleur du texte de chaque variante. */
a.st-btn.st-btn--principal, a.st-btn.st-btn--principal:hover, .st-nav a.st-btn.st-btn--principal, .st-nav a.st-btn.st-btn--principal:hover, a.st-btn.st-btn--sombre, a.st-btn.st-btn--sombre:hover, a.st-btn.st-btn--contour-inverse, a.st-btn.st-btn--contour-inverse:hover { color: #fff; }
a.st-btn.st-btn--contour, a.st-btn.st-btn--contour:hover { color: var(--st-texte); }
a.st-btn.st-btn--contour-marine, a.st-btn.st-btn--contour-marine:hover { color: var(--st-marine); }
a.st-btn.st-btn--blanc { color: var(--st-marine); }
a.st-btn.st-btn--blanc:hover { color: var(--st-nuit); }

/* Archives de catégorie, page 404, plan du site */
.st-archive__entete .st-wrap, .st-404__inner { display: flex; flex-direction: column; align-items: flex-start; gap: 16px; }
.st-archive__entete h1, .st-404__inner h1 { margin: 0; max-width: 760px; }
.st-archive__retour { margin-top: 32px; }
.st-404__inner { padding-top: 24px; padding-bottom: 24px; }
.st-404__liens { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.st-404__liens a { color: var(--st-texte); text-decoration: none; border-bottom: 1px solid var(--st-filet-3); }
.st-404__liens a:hover { color: var(--st-bleu); border-color: var(--st-bleu); }
.st-plan-site { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; font-size: 15px; }
.st-plan-site h2 { font-size: 22px; margin: 0 0 12px; }
.st-plan-site h3 { font-size: 16px; margin: 20px 0 6px; }
.st-plan-site h3 a { color: var(--st-texte); text-decoration: none; }
.st-plan-site ul { list-style: none; margin: 0; padding: 0; }
.st-plan-site ul ul { padding-left: 18px; }
.st-plan-site li { padding: 5px 0; border-bottom: 1px solid var(--st-filet); }
.st-plan-site li li:last-child { border-bottom: 0; }
.st-plan-site a { color: var(--st-texte); text-decoration: none; }
.st-plan-site a:hover { color: var(--st-bleu); }
.st-footer__fiches { margin-top: 12px; }
@media (max-width: 767px) { .st-plan-site { grid-template-columns: 1fr; gap: 24px; } }
/* Gabarits PHP (archives, 404) : mêmes largeur et gouttières que les conteneurs Elementor .e-con.st-section / .e-con.st-wrap */
.st-archive .st-section, .st-404 .st-section { padding: 48px var(--st-gouttiere) 72px; }
.st-archive .st-section:not(.st-fond-brume) { padding-top: 64px; }
.st-archive .st-wrap, .st-404 .st-wrap { max-width: var(--st-conteneur); width: 100%; margin: 0 auto; }

/* Landing « décret tertiaire » : logos de références (typographiques), compteurs sur fond nuit, 4 cartes secteurs */
.st-logos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px 24px; }
.st-logos__item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 84px; padding: 14px 10px; border: 1px solid var(--st-filet); border-radius: var(--st-rayon-carte); background: #fff; text-align: center; }
.st-logos__nom { font-family: var(--st-font-titre, var(--st-font-texte)); font-size: 19px; font-weight: 700; letter-spacing: .02em; color: var(--st-marine); opacity: .85; line-height: 1.1; }
.st-logos__secteur { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--st-texte-3); }
.st-landing-hero .st-chiffres--mini .st-chiffre__valeur { color: #fff; }
.st-landing-hero .st-chiffres--mini .st-chiffre__valeur--vert { color: var(--st-vert-clair, #7FE0B8); }
.st-landing-hero .st-chiffres--mini .st-chiffre__legende { color: var(--st-texte-inverse); }
.st-landing-hero .st-fil-ariane, .st-landing-hero .st-fil-ariane a { color: var(--st-texte-inverse); }
.st-landing-carte .st-form__rgpd { color: var(--st-texte-3); }
.st-secteurs--4 .st-carte-secteur { height: 300px; }
@media (max-width: 1023px) { .st-logos { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .st-logos { grid-template-columns: repeat(2, minmax(0, 1fr)); } .st-logos__nom { font-size: 16px; } }
.st-landing-hero .st-chiffres--mini { background: transparent; box-shadow: none; padding: 0; border-radius: 0; border-top-color: rgba(255,255,255,.25); border-bottom-color: rgba(255,255,255,.25); }
.st-landing-hero .st-chiffres--mini .st-chiffre { border-left-color: rgba(255,255,255,.25); }
.st-landing-proposition .st-h3 .elementor-heading-title, .st-landing-proposition h3 { color: #fff; }

/* Formulaire court du guide (e-mail + bouton) */
.st-form--court { gap: 10px; }
.st-form__ligne { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; }
.st-form__ligne label { flex: 1 1 200px; min-width: 0; }
.st-form__ligne button { flex: 0 0 auto; min-height: 50px; }
.st-landing-expert .st-carte-blanche { max-width: 560px; }
/* Carte du guide dans le hero nuit : texte et liens de la carte restent sombres ; hero compact sur mobile pour garder le bouton visible */
.st-fond-nuit .st-landing-carte .elementor-heading-title, .st-landing-carte .st-carte-blanche__titre .elementor-heading-title { color: var(--st-texte); }
.st-fond-nuit .st-landing-carte a:not(.st-btn), .st-landing-carte .st-form__rgpd a { color: var(--st-bleu); }
.st-landing-carte .st-form__rgpd, .st-landing-carte .st-texte-2 { color: var(--st-texte-2); }
@media (max-width: 767px) {
  .st-landing-hero .st-fil-ariane, .st-landing-hero .st-chapo, .st-landing-hero .st-reassurance, .st-landing-hero .st-chiffres--mini { display: none; }
  .st-landing-hero .st-h1 .elementor-heading-title, .st-landing-hero h1 { font-size: 30px; line-height: 1.15; }
  .st-landing-hero .st-btns .elementor-widget-button:nth-child(2) { display: none; }
  .e-con.st-landing-hero { --padding-top: 24px; --padding-bottom: 32px; }
  .st-landing-carte { --padding-top: 20px; --padding-right: 20px; --padding-bottom: 20px; --padding-left: 20px; }
}
@media (max-width: 767px) {
  .e-con.st-landing-hero { padding-top: 16px; padding-bottom: 28px; }
  .st-landing-hero .st-surtitre, .st-landing-carte .st-texte-2 { display: none; }
  .st-landing-hero .st-row--56 { --gap: 20px; --row-gap: 20px; }
}
