/* Corrections d’affichage uniquement. Voir la table avant/après du README.
   Les largeurs tiennent compte des marges existantes, sans déplacer les bordures.
   Sélecteurs relevés sur les 183 vues de la source à 375, 768 et 1440 px. */
.elementor .elementor-element:is(
  .elementor-element-0801537,
  .elementor-element-128de974,
  .elementor-element-23045b58,
  .elementor-element-2d957bd4,
  .elementor-element-421abc5,
  .elementor-element-4e1784d9,
  .elementor-element-6dab0e5,
  .elementor-element-71a24b7b,
  .elementor-element-7a5fbb48,
  .elementor-element-7cb593f9,
  .elementor-element-8ae8047,
  .elementor-element-9663587,
  .elementor-element-986e8ff,
  .elementor-element-c5f1529,
  .elementor-element-f3300cb,
  .elementor-element-ffd41d3
) {
  max-width: calc(100% - var(--margin-left, 0px) - var(--margin-right, 0px));
  min-width: 0;
}

/* Accueils FR et DE : phrase « iYU est le premier robot masseur IA… » au-dessus
   des statistiques (80 %, 60 %, la technologie). Elementor lui donne une marge
   basse de -28px, compensée par un padding-top de 70px sur les statistiques
   seulement entre 1025 et 1919 px : à 1024 px et moins comme à 1920 px et plus,
   ce padding tombe à 0 et les statistiques remontent sur la phrase (constaté
   sous Firefox sur MacBook). On retire la marge négative et on fixe l'écart
   effectif de 42px (70 - 28) à toutes les largeurs : rendu inchangé entre 1025
   et 1919 px. Les deux blocs sont masqués sur mobile. */
.elementor-12711 .elementor-element.elementor-element-b47f69d > .elementor-widget-container,
.elementor-13392 .elementor-element.elementor-element-6dbc8c4c > .elementor-widget-container {
  margin-bottom: 0;
}
.elementor-12711 .elementor-element.elementor-element-6a762b0,
.elementor-13392 .elementor-element.elementor-element-12a4fa5d {
  --padding-top: 42px;
}

/* Contrastes (demande de David du 05/11/2026). Seuils WCAG AA : 4,5:1, 3:1 pour
   les grands textes. Mesures sur pixels réels : outils/audit-contrastes.cjs. */

/* Articles FR (modèle Elementor 12973) : le titre blanc est posé directement sur
   l'image à la une, sans voile. Sur les photos claires (« Optez pour une
   approche innovante de la QVT… », « Le rôle crucial… ») il tombait à 1,1:1, et
   sur mobile il chevauchait les zones de peau claire des autres articles. Voile
   brun de la charte (#382F2D), plus dense derrière le titre qu'aux bords. */
.elementor-12973 .elementor-element.elementor-element-63f14e56 {
  position: relative;
  isolation: isolate;
}
.elementor-12973 .elementor-element.elementor-element-63f14e56::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background:
    radial-gradient(ellipse 70% 60% at 50% 50%, rgba(56, 47, 45, .5), rgba(56, 47, 45, 0) 100%),
    rgba(56, 47, 45, .3);
}
.elementor-12973 .elementor-element.elementor-element-63f14e56 > * {
  position: relative;
  z-index: 1;
}

/* Bouton fixe « revenir en haut » du pied de page (FR/EN 9aa784f, DE 23338918) :
   icône rose #E2B7A6 à 1,8:1 sur les fonds blancs où elle flotte. Même teinte
   assombrie (#C5704E) : 3,6:1 sur blanc comme sur le brun du pied de page
   (WCAG 1.4.11, 3:1 pour une icône seule). */
.elementor .elementor-element.elementor-widget-icon:is(.elementor-element-9aa784f, .elementor-element-23338918) a.elementor-icon[href] {
  color: #C5704E;
  border-color: #C5704E;
}
.elementor .elementor-element.elementor-widget-icon:is(.elementor-element-9aa784f, .elementor-element-23338918) a.elementor-icon[href] svg {
  fill: #C5704E;
}

/* Accueils et pages « Expérience iYU » (FR, EN, DE) : textes blancs posés sur des
   vidéos et photos de peau. Lisibles sur les zones sombres, ils passaient sous
   4,5:1 (jusqu'à 2,5:1) sur les reflets clairs, surtout aux cadrages mobile et
   tablette. Halo sombre resserré autour des lettres plutôt qu'un voile sur toute
   l'image : les photos restent intactes. Widgets relevés par l'audit. */
.elementor .elementor-element:is(
  .elementor-element-17cd417d,
  .elementor-element-215b7986,
  .elementor-element-2ce40c2,
  .elementor-element-4367a274,
  .elementor-element-2eaab65,
  .elementor-element-311f812,
  .elementor-element-3229b9e,
  .elementor-element-3724f41,
  .elementor-element-376e28b6,
  .elementor-element-3785f64,
  .elementor-element-3d65d0ce,
  .elementor-element-428277c7,
  .elementor-element-46a4a574,
  .elementor-element-47b2911c,
  .elementor-element-504613f,
  .elementor-element-5738cc3e,
  .elementor-element-59d1a66,
  .elementor-element-5cf5fb6,
  .elementor-element-6477cef1,
  .elementor-element-648af13,
  .elementor-element-66805430,
  .elementor-element-6baa6071,
  .elementor-element-6d833aac,
  .elementor-element-7126b177,
  .elementor-element-7e389938,
  .elementor-element-800c69e,
  .elementor-element-8c260a5,
  .elementor-element-8c88a0b,
  .elementor-element-95a55df,
  .elementor-element-b3ab08d,
  .elementor-element-b4e2d5e,
  .elementor-element-bc7b5c8,
  .elementor-element-c44f75a,
  .elementor-element-d05d9af,
  .elementor-element-edcc6c7,
  .elementor-element-f7ef62d
) :is(p, span, div, h1, h2, h3, h4, i, b, strong, em, a) {
  text-shadow: 0 0 2px rgba(28, 20, 18, .75), 0 1px 5px rgba(28, 20, 18, .7), 0 0 12px rgba(28, 20, 18, .55), 0 0 28px rgba(28, 20, 18, .45);
}
/* Liens « unveil video » / « Video entdecken » : texte peint par son fond
   (background-clip: text), un text-shadow passerait au-dessus des lettres. */
.elementor .elementor-element:is(
  .elementor-element-275ee54e,
  .elementor-element-3189b76
) .elementor-heading-title {
  filter: drop-shadow(0 0 2px rgba(28, 20, 18, .8)) drop-shadow(0 1px 6px rgba(28, 20, 18, .7));
}

/* FAQ (FR, EN, DE) : lien « nous contacter » rouge #BC4B3B sur l'image grise du
   bas de page, 3,3:1. Même rouge assombri (#963524) : 4,8:1 sur la zone la plus
   claire de l'image, 7,4:1 sur blanc ; le survol noir d'origine est conservé. */
.elementor .elementor-element:is(.elementor-element-d380ec9, .elementor-element-5bdb5f20) .hover-button:not(:hover) {
  color: #963524;
  border-color: #963524;
  background: linear-gradient(90deg, #963524, #963524);
  -webkit-background-clip: text;
  background-clip: text;
}
/* Mots fins en surtitre (« (émotionnel) », « (soul) », « le », « der »…) : graisse
   légère, halo plus dense pour atteindre le même niveau que les paragraphes. */
.elementor .elementor-element.elementor-widget-heading:is(
  .elementor-element-c44f75a,
  .elementor-element-2ce40c2,
  .elementor-element-3d65d0ce,
  .elementor-element-17cd417d,
  .elementor-element-b3ab08d,
  .elementor-element-376e28b6,
  .elementor-element-bc7b5c8,
  .elementor-element-6d833aac
) :is(span, i, h2, h3, a) {
  text-shadow: 0 0 1px rgba(28, 20, 18, .9), 0 0 3px rgba(28, 20, 18, .85), 0 1px 6px rgba(28, 20, 18, .75), 0 0 16px rgba(28, 20, 18, .6), 0 0 30px rgba(28, 20, 18, .5);
}

/* Accueils (12711, 44, 13392) et « Expérience iYU » (12717, 10159, 13397) : toutes
   leurs sections à vidéo de fond portent du texte blanc, sans voile ; selon
   l'image de la vidéo, des mots passaient sur des reflets clairs. Voile brun
   léger sur la vidéo seule, limité à ces pages (le même conteneur 8287c47 porte
   du texte sombre sur « Business »). */
:is(.elementor-12711, .elementor-44, .elementor-13392, .elementor-12717, .elementor-10159, .elementor-13397) .elementor-background-video-container::after {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(28, 20, 18, .25);
  pointer-events: none;
}
/* « Expérience iYU » : cartes à photo (musculaire, relaxant, émotion) aux surtitres
   blancs fins. Même voile léger que sur les vidéos, sous le contenu. */
:is(.elementor-12717, .elementor-10159) .elementor-element-e831521 > .e-con,
.elementor-13397 .elementor-element-4fcb9dd6 > .e-con {
  isolation: isolate;
}
:is(.elementor-12717, .elementor-10159) .elementor-element-e831521 > .e-con::after,
.elementor-13397 .elementor-element-4fcb9dd6 > .e-con::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  background: rgba(28, 20, 18, .25);
  pointer-events: none;
}
:is(.elementor-12717, .elementor-10159) .elementor-element-e831521 > .e-con > *,
.elementor-13397 .elementor-element-4fcb9dd6 > .e-con > * {
  position: relative;
  z-index: 1;
}

/* Calculateur « ROI Capsix » (WP Estimation Form) : aucune animation et mise en
   page finale dès le premier rendu (demande de David du 05/11/2026, « le
   calculateur flappe »). Le plugin n'a qu'une étape (#finalSlide), qu'il
   affichait en fondu après son initialisation, avec un retrait de 188 px
   ramené ensuite à 70 px et des curseurs qui grandissaient de 18 px. La
   configuration (animationsSpeed 0, disableScroll 1) est posée par
   outils/calculateur.py. */
#lfb_form.lfb_bootstraped #lfb_mainPanel,
#lfb_form.lfb_bootstraped #finalSlide { display: block !important; opacity: 1 !important; }
#lfb_form.lfb_bootstraped .lfb_genSlide .lfb_genContent { padding-top: 70px !important; opacity: 1 !important; }
#lfb_form.lfb_bootstraped #lfb_loader { display: none !important; }
/* Le plugin masque puis réaffiche le bouton pendant son initialisation (48 px). */
#lfb_form.lfb_bootstraped #finalSlide .lfb_btnNextContainer { display: block !important; opacity: 1 !important; }
#lfb_form.lfb_bootstraped [data-type="slider"]:not(.ui-slider) { height: 6px; margin: 12px 0 18px; }
#calculator, #calculator *, #calculator *::before, #calculator *::after {
  transition: none !important;
  animation: none !important;
}
#lfb_form.lfb_bootstraped .lfb_shineCanvas { display: none !important; }
/* Défilement doux d'Elementor (html{scroll-behavior:smooth}) : coupé pendant le
   chargement des pages du calculateur, sinon l'arrivée sur /business-fr/#calculator
   glisse en animation ; capsix-staging.js le rend après le chargement. */
html:has(#lfb_form):not(.capsix-pret) { scroll-behavior: auto !important; }

/* Encadré du résultat (outils/calculateur.py) : une ligne par information.
   Les CSS de la page (post-12723) visaient l'ancien encadré par positions
   nth-child (tailles, décalages relatifs avec !important) : neutralisés ici,
   avec des id répétés pour l'emporter en spécificité. */
#lfb_form#lfb_form#lfb_form.lfb_bootstraped .lfb_richTextContent .revenue-text { position: static !important; inset: auto !important; margin: 0 !important; padding: 0 !important; text-align: center; color: #382f2d !important; font-style: normal !important; font-size: 15px !important; font-weight: 400 !important; line-height: 1.6 !important; white-space: nowrap; }
#lfb_form#lfb_form#lfb_form.lfb_bootstraped .lfb_richTextContent .revenue-text * { position: static !important; inset: auto !important; margin: 0 !important; padding: 0 !important; font-style: normal !important; font-size: inherit !important; font-weight: inherit !important; line-height: inherit !important; }
#lfb_form#lfb_form#lfb_form.lfb_bootstraped .lfb_richTextContent .revenue-text strong { font-weight: 700 !important; }
#lfb_form#lfb_form#lfb_form.lfb_bootstraped .lfb_richTextContent .capsix-roi-titre { font-size: 16px !important; font-weight: 600 !important; }
#lfb_form#lfb_form#lfb_form.lfb_bootstraped .lfb_richTextContent .capsix-roi-profit { margin: 0 0 8px !important; font-size: 30px !important; font-weight: 700 !important; line-height: 1.3 !important; }
#lfb_form#lfb_form#lfb_form.lfb_bootstraped .lfb_richTextContent .price-bis { margin-top: 4px !important; color: #6b5f5a !important; font-size: 12px !important; }
#lfb_form.lfb_bootstraped .capsix-roi-var:not(:has(.lfb_richVariable)) { font-size: 0 !important; }
#lfb_form.lfb_bootstraped .capsix-roi-var:not(:has(.lfb_richVariable))::before { content: "—"; font-size: 15px; }
#lfb_form.lfb_bootstraped .capsix-roi-profit .capsix-roi-var:not(:has(.lfb_richVariable))::before { font-size: 30px; }

/* Adresse, bouton, message et mention reCAPTCHA. */
#lfb_form.lfb_bootstraped [data-itemtype="textfield"] .form-group { max-width: 420px; margin: 0 auto 16px !important; padding: 0 16px; }
#lfb_form.lfb_bootstraped [data-itemtype="textfield"] .form-group > label { display: block; margin-bottom: 8px; color: #382f2d; font-size: 15px; font-weight: 600; }
#lfb_form.lfb_bootstraped [data-itemtype="textfield"] input.form-control { height: 48px; padding: 0 14px; border: 1px solid #cdbdb4 !important; border-radius: 6px; background: #fff !important; box-shadow: none !important; color: #382f2d !important; font-size: 16px; text-align: left; }
#lfb_form.lfb_bootstraped [data-itemtype="textfield"] input.form-control:focus { border-color: #aa3d2a !important; outline: 2px solid rgba(170, 61, 42, .25); outline-offset: 1px; }
#lfb_form.lfb_bootstraped [data-itemtype="textfield"] input.form-control[aria-invalid="true"] { border-color: #a12a1a !important; }
#lfb_form.lfb_bootstraped .lfb_btnNextContainer { margin: 0 auto; }
#lfb_form.lfb_bootstraped #lfb_btnOrder { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 28px; border: 0 !important; border-radius: 6px; background: #aa3d2a !important; background-image: none !important; color: #fff !important; -webkit-text-fill-color: #fff !important; background-clip: border-box !important; font-size: 16px !important; font-weight: 600 !important; letter-spacing: 0; line-height: 1.2; text-decoration: none !important; box-shadow: none !important; }
#lfb_form.lfb_bootstraped #lfb_btnOrder::after, #lfb_form.lfb_bootstraped #lfb_btnOrder::before { display: none !important; }
#lfb_form.lfb_bootstraped #lfb_btnOrder:hover { background: #8a2f1f !important; }
#lfb_form.lfb_bootstraped #lfb_btnOrder:focus-visible { outline: 3px solid #382f2d; outline-offset: 2px; }
#lfb_form.lfb_bootstraped #lfb_btnOrder[aria-disabled="true"] { opacity: .6; cursor: progress; }
#lfb_form.lfb_bootstraped #lfb_btnOrder .fa { display: none; }
#lfb_form.lfb_bootstraped .capsix-form-message { max-width: min(520px, calc(100% - 32px)); margin: 16px auto 0; padding: 12px 16px; border-radius: 6px; font-size: 15px; line-height: 1.5; text-align: center; }
#lfb_form.lfb_bootstraped .capsix-form-message.elementor-message-success { background: #eef4ee; color: #24502b; }
#lfb_form.lfb_bootstraped .capsix-form-message.elementor-message-danger { background: #f8ecea; color: #8a2214; }

/* Badge reCAPTCHA masqué, remplacé par la mention exigée par Google
   (FAQ reCAPTCHA de Google) : la protection reste active. */
.grecaptcha-badge { visibility: hidden !important; }
.capsix-g-recaptcha { position: absolute !important; width: 0; height: 0; overflow: hidden; }
.capsix-recaptcha-mention, #lfb_bootstraped.lfb_bootstraped p.capsix-recaptcha-mention { margin: 12px auto 0 !important; max-width: 520px; color: #6b5f5a !important; font-size: 12px !important; font-weight: 400 !important; line-height: 1.5 !important; text-align: center; }
.capsix-recaptcha-mention a { color: inherit !important; text-decoration: underline; }
.elementor-form p.capsix-recaptcha-mention { flex-basis: 100%; max-width: none; margin: 12px 0 0 !important; padding: 0 calc(var(--column-gap, 10px) / 2); text-align: left; }
/* Le plugin pose un min-height calculé sur le panneau après initialisation. */
#lfb_form.lfb_bootstraped #lfb_mainPanel { min-height: 0 !important; }
/* Message de retour des formulaires de contact : ligne entière sous le bouton. */
.elementor-form .capsix-form-message { flex-basis: 100%; padding: 0 calc(var(--column-gap, 10px) / 2); }
