@font-face {
	font-weight: normal;
	font-style: normal;
	font-family: "woodmart-font";
	src: url("//globalgroupsolution.com/wp-content/themes/woodmart/fonts/woodmart-font-1-400.woff2?v=8.0.6") format("woff2");
}

@font-face {
	font-family: "star";
	font-weight: 400;
	font-style: normal;
	src: url("//globalgroupsolution.com/wp-content/plugins/woocommerce/assets/fonts/star.eot?#iefix") format("embedded-opentype"), url("//globalgroupsolution.com/wp-content/plugins/woocommerce/assets/fonts/star.woff") format("woff"), url("//globalgroupsolution.com/wp-content/plugins/woocommerce/assets/fonts/star.ttf") format("truetype"), url("//globalgroupsolution.com/wp-content/plugins/woocommerce/assets/fonts/star.svg#star") format("svg");
}

@font-face {
	font-family: "WooCommerce";
	font-weight: 400;
	font-style: normal;
	src: url("//globalgroupsolution.com/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.eot?#iefix") format("embedded-opentype"), url("//globalgroupsolution.com/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.woff") format("woff"), url("//globalgroupsolution.com/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.ttf") format("truetype"), url("//globalgroupsolution.com/wp-content/plugins/woocommerce/assets/fonts/WooCommerce.svg#WooCommerce") format("svg");
}

:root {
	--wd-text-font: "Open Sans", Arial, Helvetica, sans-serif;
	--wd-text-font-weight: 400;
	--wd-text-color: #767676;
	--wd-text-font-size: 14px;
	--wd-title-font: "Quicksand", Arial, Helvetica, sans-serif;
	--wd-title-font-weight: 500;
	--wd-title-color: #242424;
	--wd-entities-title-font: "Poppins", Arial, Helvetica, sans-serif;
	--wd-entities-title-font-weight: 500;
	--wd-entities-title-color: #333333;
	--wd-entities-title-color-hover: rgb(51 51 51 / 65%);
	--wd-alternative-font: "Lato", Arial, Helvetica, sans-serif;
	--wd-widget-title-font: "Poppins", Arial, Helvetica, sans-serif;
	--wd-widget-title-font-weight: 600;
	--wd-widget-title-transform: uppercase;
	--wd-widget-title-color: #333;
	--wd-widget-title-font-size: 16px;
	--wd-header-el-font: "Lato", Arial, Helvetica, sans-serif;
	--wd-header-el-font-weight: 700;
	--wd-header-el-transform: uppercase;
	--wd-header-el-font-size: 13px;
	--wd-primary-color: rgb(15,145,227);
	--wd-alternative-color: #fbbc34;
	--wd-link-color: #333333;
	--wd-link-color-hover: #242424;
	--btn-default-bgcolor: #f7f7f7;
	--btn-default-bgcolor-hover: #efefef;
	--btn-accented-bgcolor: rgb(15,145,227);
	--btn-accented-bgcolor-hover: rgb(14,132,207);
	--wd-form-brd-width: 2px;
	--notices-success-bg: #459647;
	--notices-success-color: #fff;
	--notices-warning-bg: #E0B252;
	--notices-warning-color: #fff;
}
.wd-popup.wd-age-verify {
	--wd-popup-width: 500px;
}
.wd-popup.wd-promo-popup {
	background-color: rgb(255, 255, 255);
	background-image: url(https://globalgroupsolution.com/wp-content/uploads/2021/08/corporate-popup.jpg);
	background-repeat: no-repeat;
	background-size: cover;
	background-position: center center;
	--wd-popup-width: 800px;
}
.woodmart-woocommerce-layered-nav .wd-scroll-content {
	max-height: 223px;
}
.wd-page-title {
	background-color: rgb(23, 150, 229);
	background-image: url(https://globalgroupsolution.com/wp-content/uploads/2025/05/18-mai-2025-11_59_35.png);
}
.wd-footer {
	background-color: rgb(54, 46, 51);
	background-image: url(<pre>Array
(
    [0] => 37
)
</pre>);
}
.wd-load-additional-fonts {
	font-family: "Quicksand", Arial, Helvetica, sans-serif;
	font-weight: 600;
}
.wd-load-additional-fonts-700 {
	font-family: "Quicksand", Arial, Helvetica, sans-serif;
	font-weight: 700;
}
.wd-popup.popup-quick-view {
	--wd-popup-width: 920px;
}
:root{
--wd-container-w: 1222px;
--wd-form-brd-radius: 5px;
--btn-default-color: #333;
--btn-default-color-hover: #333;
--btn-accented-color: #fff;
--btn-accented-color-hover: #fff;
--btn-default-brd-radius: 5px;
--btn-default-box-shadow: none;
--btn-default-box-shadow-hover: none;
--btn-accented-brd-radius: 5px;
--btn-accented-box-shadow: none;
--btn-accented-box-shadow-hover: none;
--wd-brd-radius: 12px;
}

@media (min-width: 1222px) {
[data-vc-full-width]:not([data-vc-stretch-content]),
:is(.vc_section, .vc_row).wd-section-stretch {
padding-left: calc((100vw - 1222px - var(--wd-sticky-nav-w) - var(--wd-scroll-w)) / 2);
padding-right: calc((100vw - 1222px - var(--wd-sticky-nav-w) - var(--wd-scroll-w)) / 2);
}
}


:root {
    /* Couleurs Primaires et Secondaires */
    --primary-color: hsl(330, 85%, 55%); /* Rose Fuchsia */
    --primary-hover-color: hsl(330, 85%, 45%);
    --secondary-color: #e0e0e0; /* Gris Clair */
    --secondary-hover-color: #cccccc;
	
    --accent-gold-color: hsl(40, 90%, 55%);
    --accent-gold-hover-color: hsl(40, 90%, 45%);
    --transition-speed-normal: 0.3s;
    --transition-speed-fast: 0.2s;
    --shadow-subtle: rgba(0, 0, 0, 0.08);
    --shadow-medium: rgba(0, 0, 0, 0.15);
    --success-hover-color: hsl(140, 65%, 55%); /* Ajout si besoin */
    --form-background: #ffffff;
    --border-color: #dddddd
    --shadow-large: rgba(0, 0, 0, 0.20); /* Pour un effet plus prononcé */
	--step1-color: var(--info-color);        /* Bleu clair/Info */
    --step2-color: hsl(210, 60%, 55%);   /* Un bleu moyen */
    --step3-color: var(--primary-color);     /* Couleur primaire (Rose Fuchsia) */
    --step4-color: var(--success-color);     /* Vert Doux */
    --step5-color: var(--accent-gold-color); /* Or */
    --background-light: #f8f8f8; /* Fond de la section */
    --text-color-dark-rgb: 51,51,51; /* Pour l'ombre de la carte */
   

    /* Couleurs Sémantiques */
    --success-color: hsl(140, 65%, 65%); /* Vert Doux */
    --info-color: hsl(205, 70%, 60%); /* Bleu (pour icône Sécurité/Info) */
    --error-color: hsl(0, 80%, 60%); /* Rouge Vif */
    --google-star-yellow: #FFC107; /* Ajouté pour les étoiles Google */

    /* Couleurs de Texte */
    --text-color-dark: #333333; /* Gris Foncé */
    --text-color-gray: #555555; /* Gris Moyen */
    --section-text-color-light: #ffffff; /* Couleur de texte claire pour fond sombre */
    --section-text-color-light-transparent: rgba(255, 255, 255, 0.8); /* Texte légèrement transparent sur fond sombre */

    /* Couleurs de Fond */
    --background-light: #f8f8f8; /* Gris Très Clair/Blanc (arrière-plan de section) */
    --form-background: #ffffff; /* Blanc (arrière-plan de carte/formulaire) */
    --section-bg-color-dark: var(--text-color-dark); /* Couleur de fond de section sombre */

    /* Couleurs de Bordure */
    --border-color: #dddddd; /* Bordure Gris Clair */

    /* Couleurs d'Accentuation et Ombres */
    --accent-color: var(--primary-color); /* Utilise la couleur principale comme accent */
    --accent-color-dark: var(--primary-hover-color);
    --shadow-subtle: rgba(0, 0, 0, 0.08);
    --shadow-medium: rgba(0, 0, 0, 0.15);

    /* Dégradés */
    --gradient-bg: linear-gradient(to bottom, var(--form-background), var(--background-light)); /* Subtil dégradé */
    --gradient-panel: linear-gradient(135deg, #e0eeeb, var(--background-light)); /* #e0eeeb est un vert très pâle, proche d'un mélange de --secondary-color et --success-color avec plus de blanc. Pour l'instant, gardé tel quel car pas directement dérivable. */
    --gradient-simulation: linear-gradient(135deg, var(--background-light), var(--form-background)); /* Dégradé spécifique simulation, --simulation-bg remplacé par --background-light */

    /* Spécifiques à la section Innovator Financing (sur fond sombre) */
    --item-bg-color-dark: rgba(255, 255, 255, 0.08);
    --item-border-color-dark: rgba(255, 255, 255, 0.15);
    --item-icon-circle-size: 60px;
    --item-icon-bg-light: rgba(255, 255, 255, 0.2);
    --item-icon-color-default: var(--primary-color);
    --item-bullet-color: var(--success-color);
    --button-dark-bg: var(--section-text-color-light);
    --button-dark-text: var(--text-color-dark);
    --button-dark-hover-bg: var(--secondary-color);
    --button-dark-shadow: rgba(255, 255, 255, 0.1); /* Ombre bouton sur fond sombre */
 --slider-thumb-color: var(--primary-color);
    --slider-track-color: rgba(var(--text-color-light-rgb, 255,255,255), 0.2);
    --slider-track-active-color: var(--primary-color);
    /* Typographie */
    --font-family-base: sans-serif; /* Police commune */
    /* --font-family-accent: 'Georgia', serif; */ /* Police optionnelle pour les grands chiffres (commentée) */

    /* Espacements */
    --spacing-unit: 20px; /* Unité de base pour les espacements */

    /* Transitions & Animations */
    --transition-speed-fast: 0.2s;
    --transition-speed-normal: 0.3s;
    --transition-speed-slow: 0.5s;
    --animation-duration-pulse: 0.6s;
    --animation-slide-up-duration: 0.6s; /* Pour l'apparition de la section globale */
    --animation-slide-up-distance: 30px; /* Distance slide apparition section */
    --animation-item-duration: 0.5s; /* Animation pour les items */
    --animation-item-distance: 20px;
    --animation-delay-item: 100ms; /* Délai de cascade entre chaque item */
    /* Variables pour process-section (non-couleur/font, mais nécessaires si utilisées avec var()) */
    --animation-benefit-slide-in-duration: 0.5s; /* Doit être défini si var() est utilisé */
    --animation-benefit-slide-in-distance: 20px; /* Doit être défini si var() est utilisé */
	--clf-form-bg: var(--form-background, #fff);   /* Fond de la carte qla-card-wrapper */
    --clf-shadow-card: 0 12px 35px rgba(var(--text-color-dark-rgb, 51,51,51), 0.12);
	--shadow-card-qla: 0 5px 20px rgba(var(--text-color-dark-rgb, 51,51,51), 0.08);
    --shadow-card-qla-hover: 0 8px 25px rgba(var(--text-color-dark-rgb, 51,51,51), 0.12);
}

/* ... (Variables du root : --primary-color, --info-color, --success-color, --accent-gold-color, --text-color-dark, --text-color-gray, --background-light, --form-background, --border-color, --shadow-soft, --shadow-medium, etc. et versions -rgb) ... */
/* Assurez-vous que ces variables sont définies ou utilisez des valeurs par défaut :
:root {
    --wsn-speed-color: var(--primary-color, hsl(330, 85%, 55%));
    --wsn-speed-color-rgb: var(--primary-color-rgb, 230, 26, 108);
    --wsn-simplicity-color: var(--info-color, hsl(205, 70%, 60%));
    --wsn-simplicity-color-rgb: var(--info-color-rgb, 77, 158, 224);
    --wsn-security-color: var(--success-color, hsl(140, 65%, 65%));
    --wsn-security-color-rgb: var(--success-color-rgb, 105, 209, 143);
    --wsn-flexibility-color: var(--accent-gold-color, hsl(40, 90%, 55%));
    --wsn-flexibility-color-rgb: var(--accent-gold-color-rgb, 230, 172, 26);
    --background-light: #f8f9fa;
    --shadow-card-hover: 0 15px 35px rgba(var(--text-color-dark-rgb, 51,51,51), 0.12);
    --shadow-card-default: 0 8px 20px rgba(var(--text-color-dark-rgb, 51,51,51), 0.07);
}
*/
/* ... (Variables du root : --primary-color, --info-color, --success-color, --accent-gold-color, --text-color-dark, --text-color-gray, --background-light, --form-background, --border-color, --shadow-soft, --shadow-medium, etc. et versions -rgb) ... */
/* Assurez-vous que ces variables sont définies ou utilisez des valeurs par défaut :
:root {
    --qla-response-color: var(--primary-color, hsl(330, 85%, 55%));
    --qla-response-color-rgb: var(--primary-color-rgb, 230, 26, 108);

    --qla-security-color: var(--success-color, hsl(140, 65%, 65%));
    --qla-security-color-rgb: var(--success-color-rgb, 105, 209, 143);

    --qla-commitment-color: var(--info-color, hsl(205, 70%, 60%));
    --qla-commitment-color-rgb: var(--info-color-rgb, 77, 158, 224);

    --qla-payout-color: var(--accent-gold-color, hsl(40, 90%, 55%));
    --qla-payout-color-rgb: var(--accent-gold-color-rgb, 230, 172, 26);

    --background-light: #f8f9fa; /* Fond de la section */
    
}
*/
/* ... (Variables du root comme avant, notamment --background-light et les couleurs thématiques cfp-*) ... */
/* Assurez-vous que ces variables sont définies ou utilisez des valeurs par défaut :
:root {
    --background-light: #f8f9fa;
    --text-color-dark: #333;
    --text-color-dark-rgb: 51,51,51;
    --text-color-gray: #555;
    --text-color-light: #fff;
    --primary-color: hsl(330, 85%, 55%);
    --primary-color-rgb: 230, 26, 108;
    --primary-hover-color: hsl(330, 85%, 45%);

    --cfp-social-color: var(--success-color, hsl(140, 65%, 65%));
    --cfp-social-color-rgb: var(--success-color-rgb, 105, 209, 143);
    --cfp-immo-color: var(--info-color, hsl(205, 70%, 60%));
    --cfp-immo-color-rgb: var(--info-color-rgb, 77, 158, 224);
    --cfp-business-color: var(--primary-color); /* Ou une autre couleur comme accent-gold */
    --cfp-business-color-rgb: var(--primary-color-rgb);

    --cfp-tag-bg: rgba(var(--text-color-dark-rgb, 51,51,51), 0.7); /* Fond des tags sur image */
    --cfp-tag-text: var(--text-color-light, #fff);

    --shadow-card-cfp: 0 10px 25px rgba(var(--text-color-dark-rgb, 51,51,51), 0.08);
    --shadow-card-cfp-hover: 0 15px 35px rgba(var(--text-color-dark-rgb, 51,51,51), 0.12);
    --border-color: #e0e0e0;
    --font-family-base: sans-serif;
    --transition-speed-normal: 0.3s;
    --transition-speed-smooth: 0.5s;
}
*/
/* ... (Variables du root : --primary-color, --info-color, --success-color, --accent-gold-color, --text-color-dark, --text-color-gray, --background-light, --form-background, --border-color, --shadow-soft, --shadow-medium, etc. et versions -rgb) ... */
/* Couleurs spécifiques pour les étapes (à définir dans :root ou utiliser des valeurs par défaut)
:root {
    --lps-step1-color: var(--info-color, hsl(205, 70%, 60%));
    --lps-step2-color: var(--primary-color, hsl(330, 85%, 55%));
    --lps-step3-color: var(--accent-gold-color, hsl(40, 90%, 55%));
    --lps-step4-color: var(--success-color, hsl(140, 65%, 65%));
    --background-light: #f8f9fa;
    --shadow-card-lps: 0 8px 25px rgba(var(--text-color-dark-rgb, 51,51,51), 0.07);
    --shadow-card-lps-hover: 0 12px 30px rgba(var(--text-color-dark-rgb, 51,51,51), 0.1);
}
*/
/* ... (Variables du root : --primary-color, --text-color-dark, --text-color-gray, --background-light, --form-background, --border-color, --shadow-card-default, --shadow-card-hover, etc. et versions -rgb) ... */
/* S'assurer que ces variables sont définies ou utiliser des valeurs par défaut :
:root {
    --background-light: #f8f9fa;
    --pls-icon-overlay-bg: rgba(var(--primary-color-rgb, 230,26,108), 0.85);
    --pls-rate-highlight-color: var(--success-color, hsl(140, 65%, 65%));
    --pls-btn-bg: var(--primary-color);
    --pls-btn-hover-bg: var(--primary-hover-color);
    --pls-btn-text-color: var(--text-color-light, #fff);
    --shadow-card-default: 0 8px 20px rgba(var(--text-color-dark-rgb, 51,51,51), 0.06);
    --shadow-card-hover: 0 12px 30px rgba(var(--text-color-dark-rgb, 51,51,51), 0.1);
}
*/
/* ... (Variables du root : --section-bg-color-dark, --text-color-light, --text-color-light-transparent, --primary-color, --google-star-yellow, etc. et versions -rgb) ... */
/* S'assurer que ces variables sont définies ou utiliser des valeurs par défaut :
:root {
    --section-bg-color-dark: hsl(220, 25%, 10%); /* Fond très sombre, un peu bleuté */
    --revc-card-bg: hsl(220, 25%, 15%); /* Fond des cartes légèrement plus clair */
    --revc-card-border: hsla(var(--text-color-light-rgb, 255,255,255), 0.12);
    --revc-text-color: var(--text-color-light-transparent, rgba(255,255,255,0.8));
    --revc-author-name-color: var(--text-color-light, #fff);
    --revc-date-color: hsla(var(--text-color-light-rgb, 255,255,255), 0.65);
    --google-star-yellow: #FFC107;
    --primary-color: hsl(330, 85%, 55%);
    --shadow-card-revc: 0 10px 30px rgba(0,0,0, 0.25);
    --shadow-card-revc-hover: 0 15px 40px rgba(0,0,0, 0.35);
}
/* Styles généraux pour le wrapper du formulaire */
:root {
  /* Tes variables originales ici... (copie-colle ton :root complet) */
  /* Juste pour l'exemple, je vais en utiliser quelques-unes directement */
  --clf3s-primary-color: var(--primary-color, hsl(330, 85%, 55%));
  --clf3s-primary-hover-color: var(--primary-hover-color, hsl(330, 85%, 45%));
  --clf3s-primary-light-bg: hsla(330, 85%, 96%, 1); /* Ajusté si non défini dans ton root */
  --clf3s-primary-lighter-bg: hsla(330, 85%, 92%, 1); /* Ajusté si non défini */
  --clf3s-primary-rgb: 230, 26, 108; /* Correspondant à hsl(330, 85%, 55%) */

  --clf3s-secondary-color: var(--secondary-color, #e0e0e0);
  --clf3s-secondary-hover-color: var(--secondary-hover-color, #cccccc);

  --clf3s-success-color: var(--success-color, hsl(140, 65%, 65%));
  --clf3s-success-light-bg: hsla(140, 65%, 95%,1); /* Ajusté si non défini */

  --clf3s-error-color: var(--error-color, hsl(0, 80%, 60%));
  --clf3s-error-light-bg: hsla(0, 80%, 95%,1); /* Ajusté si non défini */

  --clf3s-info-color: var(--info-color, hsl(205, 70%, 60%));
  --clf3s-info-light-bg: hsla(205, 70%, 95%, 1); /* Ajusté si non défini */

  --clf3s-text-dark-color: var(--text-color-dark, #333);
  --clf3s-text-gray-color: var(--text-color-gray, #555);
  --clf3s-text-light-color: var(--section-text-color-light, #fff); /* Utilise section-text-color-light */
  --clf3s-border-color: var(--border-color, #ddd);
  --clf3s-form-background-color: var(--form-background, #fff);
  --clf3s-section-background-color: var(--background-light, #f8f8f8);

  --clf3s-transition-fast: var(--transition-speed-fast, 0.2s);
  --clf3s-transition-normal: var(--transition-speed-normal, 0.3s);
  --clf3s-transition-slow: var(--transition-speed-slow, 0.5s);
  --clf3s-card-shadow: var(--clf-shadow-card, 0 12px 35px rgba(51,51,51,0.12)); /* Utilise --clf-shadow-card de ton root */
}


/* CSS pour le formulaire clf3s - Inspiré par le style clf- et utilisant ses variables */

/* Assurez-vous que votre :root principal est chargé AVANT ce fichier CSS,
 ou que les variables --clf-... sont définies quelque part globalement. */

.clf3s-application-section {
  /* Utilise les variables de style de .clf-application-section */
  background-color: var(--clf-bg-light, var(--background-light, #f8f8f8)); /* Fallback sur root général */
  font-family: var(--clf-font-base, var(--font-family-base, sans-serif));
  color: var(--clf-text-dark, var(--text-color-dark, #333));
  line-height: 1.6;
}

.clf3s-form-container {
  max-width: 850px;
  margin: 0 auto;
  padding: 0 15px;
	margin-bottom: 20px;
}

/* Barre de progression - Inspiré de .clf-progress-bar-wrapper */
.clf3s-progress-bar-wrapper {
  max-width: 700px; /* Ajusté pour 3 étapes */
  margin: 0 auto 50px auto;
}
.clf3s-progress-container { margin-bottom: 15px; }
.clf3s-progress-track {
  height: 10px;
  background-color: var(--clf-secondary, var(--secondary-color, #e0e0e0));
  border-radius: 5px;
  overflow: hidden;
  position: relative;
}
.clf3s-progress-fill {
  position: absolute; top: 0; left: 0; height: 100%;
  /* Pour la couleur de remplissage, on peut utiliser --clf-primary ou la couleur de l'étape active */
  background-color: var(--clf-primary, var(--primary-color, hsl(330, 85%, 55%)));
  border-radius: 5px;
  transition: width var(--clf-transition-slow, var(--transition-speed-slow, 0.5s)) ease-out;
}
.clf3s-step-indicators {
  display: flex;
  justify-content: space-between;
 margin-top: -40px;
  padding-top: 10px
  font-size: 14px;
  font-weight: 600;
}
.clf3s-step-indicator-item {
  position: relative;
  text-align: center;
  flex: 1;
  padding-top: 35px;
  color: var(--clf-text-gray, var(--text-color-gray, #555));
  transition: color var(--clf-transition-normal, var(--transition-speed-normal, 0.3s)) ease;
  cursor: default;
}
.clf3s-indicator-icon { /* Similaire à .clf-indicator-circle */
  width: 36px; height: 36px;
  color: var(--clf-text-light, var(--section-text-color-light, #fff));
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 16px;
  position: absolute; top: -18px; left: 50%;
  transform: translateX(-50%);
  transition: background-color var(--clf-transition-normal, var(--transition-speed-normal, 0.3s)) ease,
              box-shadow var(--clf-transition-normal, var(--transition-speed-normal, 0.3s)) ease;
  border: 3px solid var(--clf-bg-light, var(--background-light, #f8f8f8));
  box-shadow: 0 2px 5px var(--shadow-subtle, rgba(0,0,0,0.08));
}

/* Couleurs spécifiques des icônes par étape (variables de ton :root principal) */
.clf3s-step-indicator-item.clf3s-step-nav-1 .clf3s-indicator-icon { background-color: var(--step1-color, var(--info-color)); }
.clf3s-step-indicator-item.clf3s-step-nav-2 .clf3s-indicator-icon { background-color: var(--step2-color, hsl(210, 60%, 55%)); }
.clf3s-step-indicator-item.clf3s-step-nav-3 .clf3s-indicator-icon { background-color: var(--step3-color, var(--primary-color)); }

/* État Actif - Inspiré de .clf-step-indicator-item.is-active */
.clf3s-step-indicator-item.is-active .clf3s-indicator-icon {
  /* La couleur est gérée par .clf3s-step-nav-X ci-dessus */
  /* Ombre peut être générique ou spécifique à la couleur primaire clf */
  box-shadow: 0 3px 10px hsla(var(--clf-primary-h,330), var(--clf-primary-s,85%), var(--clf-primary-l,50%), 0.4);
}
.clf3s-step-indicator-item.is-active.clf3s-step-nav-1 .clf3s-indicator-label { color: var(--step1-color, var(--info-color)); font-weight: bold; }
.clf3s-step-indicator-item.is-active.clf3s-step-nav-2 .clf3s-indicator-label { color: var(--step2-color, hsl(210, 60%, 55%)); font-weight: bold; }
.clf3s-step-indicator-item.is-active.clf3s-step-nav-3 .clf3s-indicator-label { color: var(--step3-color, var(--primary-color)); font-weight: bold; }


/* État Complété - Inspiré de .clf-step-indicator-item.is-completed */
.clf3s-step-indicator-item.is-completed .clf3s-indicator-icon {
  background-color: var(--clf-success, var(--success-color, hsl(140, 65%, 65%)));
  box-shadow: 0 2px 8px hsla(var(--clf-success-h,140), var(--clf-success-s,65%), var(--clf-success-l,60%), 0.3);
}
.clf3s-step-indicator-item.is-completed .clf3s-indicator-label {
   color: var(--clf-text-dark, var(--text-color-dark, #333));
   font-weight: 500;
}


/* Carte et Étapes du Formulaire - Inspiré de .clf-form-card */
.clf3s-form-card-content {
  background-color: var(--clf-form-bg, var(--form-background, #fff));
  border-radius: 16px;
  box-shadow: var(--clf-shadow-card, 0 12px 35px rgba(var(--text-color-dark-rgb, 51,51,51), 0.12));
  overflow: hidden;
  position: relative;
  min-height: 600px;
}
.clf3s-form-step { /* Similaire à .clf-form-step */
  padding: 30px 35px;
  box-sizing: border-box;
  position: absolute;
  top: 0; left: 0; width: 100%;
  opacity: 0;
  transform: translateX(var(--animation-item-distance, 30px)); /* Utilise variable du root principal si dispo */
  transition: opacity var(--animation-item-duration, 0.4s) ease-out, transform var(--animation-item-duration, 0.4s) ease-out;
  pointer-events: none;
}
.clf3s-form-step.is-active {
  opacity: 1;
  transform: translateX(0);
  pointer-events: auto;
  position: relative;
}
.clf3s-form-step.is-exiting {
  transform: translateX(calc(-1 * var(--animation-item-distance, 30px)));
}
.clf3s-form-step.clf3s-is-inactive {
  display: none !important;
}

.clf3s-step-title-area { /* Similaire à .clf-step-header */
  margin-bottom: 35px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--clf-border, var(--border-color, #ddd));
}
.clf3s-step-title-area h2 {
  font-size: 26px;
  font-weight: bold;
  color: var(--clf-text-dark, var(--text-color-dark, #333));
  margin: 0 0 10px 0;
  line-height: 1.3;
}
.clf3s-step-title-area p {
  font-size: 17px;
  color: var(--clf-text-gray, var(--text-color-gray, #555));
  margin: 0;
}

.clf3s-step-fields-area { /* Similaire à .clf-step-content */
  display: flex;
  flex-direction: column;
  gap: var(--spacing-unit, 35px); /* Utilise spacing-unit du root principal, fallback sur 35px */
}

.clf3s-loan-sim-layout { /* Similaire à .clf-loan-simulation-group */
  display: flex;
  flex-direction: column;
  gap: var(--spacing-unit, 30px);
}
@media (min-width: 768px) {
  .clf3s-loan-sim-layout {
      flex-direction: row;
      gap: calc(var(--spacing-unit, 20px) + 15px); /* 35px */
  }
  .clf3s-loan-details-block { flex: 2; min-width: 0; } /* .clf-section-loan-details */
  .clf3s-simulation-box { flex: 1; min-width: 0; margin-top: 0; } /* .clf-simulation-panel */
}

.clf3s-form-block { /* Similaire à .clf-form-section */
  padding-bottom: var(--spacing-unit, 30px);
  border-bottom: 1px dashed var(--clf-border, var(--border-color, #ddd));
}
.clf3s-step-fields-area > .clf3s-form-block:last-of-type {
   border-bottom: none;
   padding-bottom: 0;
}

.clf3s-form-block h3 {
  font-size: 20px;
  font-weight: 600;
  color: var(--clf-text-dark, var(--text-color-dark, #333));
  margin: 0 0 calc(var(--spacing-unit, 20px) + 5px) 0; /* 25px */
  display: flex;
  align-items: center;
}
.clf3s-form-block h3 .fas {
   margin-right: 12px;
   color: var(--clf-primary, var(--primary-color, hsl(330, 85%, 55%)));
   font-size: 1.1em;
}

.clf3s-block-content { /* Similaire à .clf-section-content */
  display: flex;
  flex-direction: column;
  gap: var(--spacing-unit, 20px);
}
@media (min-width: 768px) {
  .clf3s-block-content.clf3s-grid-inputs-layout { /* .clf-section-content.clf-form-inputs-grid */
      display: grid;
      grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
      gap: calc(var(--spacing-unit, 20px) + 5px); /* 25px */
  }
  .clf3s-block-content.clf3s-grid-inputs-layout .clf3s-input-unit.clf3s-full-width-item {
      grid-column: 1 / -1;
  }
  .clf3s-block-content.clf3s-grid-inputs-layout .clf3s-input-unit {
       margin-bottom: 0;
  }
}

/* Champs de Formulaire - Inspiré de .clf-input-group etc. */
.clf3s-input-unit { margin-bottom: 0; }
.clf3s-input-unit.clf3s-no-bottom-margin { margin-bottom: 0 !important; }

.clf3s-label-value-line { /* .clf-input-label-row */
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  margin-bottom: -15px;
}
.clf3s-field-label { /* .clf-input-label */
  display: block;
  font-size: 15px;
  font-weight: 500;
  color: var(--clf-text-dark, var(--text-color-dark, #333));
}
.clf3s-required-mark { /* .clf-required */
  color: var(--clf-error, var(--error-color, hsl(0, 80%, 60%)));
  margin-left: 3px;
  font-weight: bold;
}
.clf3s-field-value-display { /* .clf-input-value */
  font-size: 15px;
  font-weight: 600;
  color: var(--clf-primary, var(--primary-color, hsl(330, 85%, 55%)));
}
.clf3s-form-input { /* .clf-input-field */
  display: block;
  width: 100%;
  padding: 12px 15px;
  border: 1px solid var(--clf-border, var(--border-color, #ddd));
  border-radius: 8px;
  font-size: 16px;
  color: var(--clf-text-dark, var(--text-color-dark, #333));
  box-sizing: border-box;
  transition: border-color var(--clf-transition-normal, var(--transition-speed-normal, 0.3s)) ease,
              box-shadow var(--clf-transition-normal, var(--transition-speed-normal, 0.3s)) ease;
  background-color: var(--clf-form-bg, var(--form-background, #fff));
}
.clf3s-form-input::placeholder {
  color: var(--clf-text-gray, var(--text-color-gray, #aaa)); /* Utilise la version #aaa si #555 est trop foncé */
  opacity: 0.8;
}
.clf3s-form-input:focus {
  outline: none;
  border-color: var(--clf-primary, var(--primary-color, hsl(330, 85%, 55%)));
  box-shadow: 0 0 0 3px hsla(var(--clf-primary-h,330), var(--clf-primary-s,85%), var(--clf-primary-l,55%), 0.25);
}
select.clf3s-form-input {
  -webkit-appearance: none; -moz-appearance: none; appearance: none;
  background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22%23555555%22%3E%3Cpath%20d%3D%22M5%208l5%205%205-5z%22%2F%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat;
  background-position: right 15px center;
  padding-right: 40px;
  cursor: pointer;
}
.clf3s-field-limits-info { /* .clf-input-limits */
  display: flex !important;
  justify-content: space-between !important;
  font-size: 12px !important;
  color: var(--clf-text-gray, var(--text-color-gray, #555)) !important;
  margin-top: 6px !important;
}
.clf3s-validation-feedback { /* .clf-error-message */
  font-size: 13px;
  color: var(--clf-error, var(--error-color, hsl(0, 80%, 60%)));
  margin-top: 5px;
  font-weight: 500;
  display: block;
  padding: 3px 0;
  opacity: 0;
  max-height: 0;
  overflow: hidden;
  transition: opacity var(--transition-speed-fast, 0.2s) ease,
              max-height var(--transition-speed-fast, 0.2s) ease,
              margin-top var(--transition-speed-fast, 0.2s) ease;
}
.clf3s-validation-feedback:not(.clf3s-is-inactive) {
  opacity: 1;
  max-height: 50px;
}
.clf3s-validation-feedback.clf3s-is-inactive {
  display: none;
}


/* Panneau de Simulation - Inspiré de .clf-simulation-panel */
.clf3s-simulation-box {
  /* Utilise le dégradé spécifique de .clf-simulation-panel */
  background: linear-gradient(135deg, hsla(var(--clf-primary-h,330), var(--clf-primary-s,85%), var(--clf-primary-l,96%), 1) 0%, hsla(var(--clf-primary-h,330), var(--clf-primary-s,85%), var(--clf-primary-l,92%), 1) 100%);
  /* Fallback si les variables HSL ne sont pas dans --clf- : */
  /* background: var(--gradient-simulation, linear-gradient(135deg, #fdeaf2, #fbdced)); */
  border-radius: 12px;
  padding: calc(var(--spacing-unit, 20px) + 5px); /* 25px */
  box-shadow: inset 0 0 10px rgba(var(--clf-primary-rgb, 230,26,108), 0.05);
  display: flex; flex-direction: column; gap: var(--spacing-unit, 20px);
}
.clf3s-simulation-box h3 { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.clf3s-simulation-box h3 .fas { color: var(--clf-primary, var(--primary-color, hsl(330, 85%, 55%))); font-size: 1.1em; }

.clf3s-sim-result-main { text-align: center; } /* .clf-simulation-result */
.clf3s-sim-label-text { display: block; font-size: 14px; color: var(--clf-text-gray, var(--text-color-gray, #555)); margin-bottom: 8px; } /* .clf-simulation-label */
.clf3s-sim-amount-display { /* .clf-simulation-amount */
  font-size: 36px;
  font-weight: bold;
  color: var(--clf-primary, var(--primary-color, hsl(330, 85%, 55%)));
  margin-bottom: 10px;
  transition: color var(--clf-transition-fast, var(--transition-speed-fast, 0.2s)) ease, transform var(--clf-transition-fast, var(--transition-speed-fast, 0.2s)) ease;
  min-height: 40px;
}
.clf3s-sim-amount-display.is-updating {
  color: var(--clf-primary-hover, var(--primary-hover-color, hsl(330, 85%, 45%)));
  transform: scale(1.03);
  /* animation: pulseAmount var(--animation-duration-pulse, 0.6s) ease-in-out; */
}
/* @keyframes pulseAmount {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
} */
.clf3s-sim-rate-tag { /* .clf-simulation-tag */
  display: inline-block;
  background-color: hsla(var(--clf-primary-rgb, 230,26,108), 0.1);
  color: var(--clf-primary, var(--primary-color, hsl(330, 85%, 55%)));
  font-size: 13px; font-weight: 600;
  padding: 5px 12px; border-radius: 20px;
}
.clf3s-sim-breakdown { /* .clf-simulation-details */
  display: flex; flex-direction: column;
  gap: 10px;
  padding-top: 15px;
  border-top: 1px solid rgba(var(--clf-primary-rgb, 230,26,108), 0.2);
}
.clf3s-breakdown-line { /* .clf-detail-item */
  display: flex; justify-content: space-between;
  font-size: 14px;
  color: var(--clf-text-dark, var(--text-color-dark, #333));
}
.clf3s-breakdown-line .clf3s-line-label { color: var(--clf-text-gray, var(--text-color-gray, #555)); } /* .clf-item-label */
.clf3s-breakdown-line .clf3s-line-value { font-weight: 600; } /* .clf-item-value */

/* Info Block - Inspiré de .clf-info-block */
.clf3s-info-message-box { margin: var(--spacing-unit, 20px) 0 calc(var(--spacing-unit, 20px) + 10px) 0; } /* 20px 0 30px 0 */
.clf3s-info-content { /* .clf-info-text */
  font-size: 14px; color: var(--clf-text-gray, var(--text-color-gray, #555)); line-height: 1.6;
  position: relative; padding-left: 28px; display: flex; align-items: flex-start;
}
.clf3s-info-icon-wrapper { /* .clf-list-bullet */
  position: absolute; left: 0; top: 0.15em;
  width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;
  color: var(--clf-info, var(--info-color, hsl(205, 70%, 60%))); font-size: 1.1em;
}

/* Boutons - Inspiré de .clf-button-group, .clf-button-next, .clf-button-prev */
.clf3s-nav-buttons-group {
  display: flex;
  gap: var(--spacing-unit, 20px);
  margin-top: calc(var(--spacing-unit, 20px) + 10px); /* 30px */
}
.clf3s-nav-buttons-group.clf3s-single-button-layout { justify-content: flex-end; }
.clf3s-nav-buttons-group.clf3s-single-button-prev-layout { justify-content: flex-start; }
.clf3s-nav-buttons-group.clf3s-double-button-layout > * { flex: 1; }

.clf3s-action-button {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 14px 28px;
  font-size: 17px;
  font-weight: 600;
  border: none; border-radius: 8px; cursor: pointer;
  transition: background-color var(--clf-transition-normal, var(--transition-speed-normal, 0.3s)) ease,
              box-shadow var(--clf-transition-normal, var(--transition-speed-normal, 0.3s)) ease,
              transform var(--clf-transition-fast, var(--transition-speed-fast, 0.2s)) ease;
  text-decoration: none; text-align: center;
}
.clf3s-next-button {
  background-color: var(--clf-primary, var(--primary-color, hsl(330, 85%, 55%)));
  color: var(--clf-text-light, var(--section-text-color-light, #fff));
  box-shadow: 0 4px 12px hsla(var(--clf-primary-h,330),var(--clf-primary-s,85%),var(--clf-primary-l,50%), 0.25);
}
.clf3s-next-button:hover {
  background-color: var(--clf-primary-hover, var(--primary-hover-color, hsl(330, 85%, 45%)));
  box-shadow: 0 6px 18px hsla(var(--clf-primary-h,330),var(--clf-primary-s,85%),var(--clf-primary-l,45%), 0.3);
  transform: translateY(-2px);
}
.clf3s-next-button:active {
  transform: translateY(0);
  box-shadow: 0 3px 10px hsla(var(--clf-primary-h,330),var(--clf-primary-s,85%),var(--clf-primary-l,45%), 0.3);
}

.clf3s-prev-button {
  background-color: var(--clf-secondary, var(--secondary-color, #e0e0e0));
  color: var(--clf-text-dark, var(--text-color-dark, #333));
  border: 1px solid var(--clf-border, var(--border-color, #ccc));
}
.clf3s-prev-button:hover {
  background-color: var(--clf-secondary-hover, var(--secondary-hover-color, #cccccc));
  border-color: #bbb;
  transform: translateY(-2px);
}
.clf3s-prev-button:active { transform: translateY(0); }

.clf3s-button-spacer { visibility: hidden; flex: 1; } /* .clf-button-placeholder */
.clf3s-action-button i { margin: 0 10px; font-size: 0.9em; }

/* Panneau Récapitulatif (Étape 3) - Inspiré de .clf-summary-panel */
.clf3s-summary-display-box {
  background: var(--clf-bg-light, var(--background-light, #f8f8f8));
  border: 1px solid var(--clf-border, var(--border-color, #ddd));
  border-radius: 12px;
  padding: calc(var(--spacing-unit, 20px) + 5px); /* 25px */
  margin-bottom: calc(var(--spacing-unit, 20px) + 10px); /* 30px */
}
.clf3s-summary-display-box h3 {
  border-bottom: 1px solid var(--clf-border, var(--border-color, #ddd));
  padding-bottom: 15px;
  margin-bottom: var(--spacing-unit, 20px);
  font-size: 19px;
}
.clf3s-summary-display-box h3 .fas {
  font-size: 1em;
  /* La couleur de l'icône h3 dans summary peut être différente, par ex. text-dark */
  color: var(--clf-text-dark, var(--text-color-dark, #333));
}

.clf3s-summary-group { /* .clf-summary-details */
  display: flex; flex-direction: column;
  gap: 12px;
  margin-bottom: calc(var(--spacing-unit, 20px) + 5px); /* 25px */
}
.clf3s-summary-group:last-child { margin-bottom: 0; }
.clf3s-summary-line { /* .clf-summary-item */
  display: flex; justify-content: space-between; flex-wrap: wrap;
  font-size: 15px; color: var(--clf-text-dark, var(--text-color-dark, #333));
  border-bottom: 1px dotted var(--clf-border, var(--border-color, #eee)); /* #eee pour plus subtil */
  padding-bottom: 12px; margin-bottom: 12px;
}
.clf3s-summary-line:last-child { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
.clf3s-summary-line .clf3s-summary-label-text { /* .clf-item-label */
  color: var(--clf-text-gray, var(--text-color-gray, #555));
  flex-basis: 40%; padding-right: 10px;
}
.clf3s-summary-line .clf3s-summary-value-text { /* .clf-item-value */
  font-weight: 500; text-align: right; flex-basis: 58%; word-break: break-word;
}
.clf3s-summary-line.clf3s-address-line-recap .clf3s-summary-label-text { flex-basis: 100%; margin-bottom: 5px; }
.clf3s-summary-line.clf3s-address-line-recap .clf3s-summary-value-text { flex-basis: 100%; text-align: left; }

/* Bloc Message de Sécurité (Étape 3) - Inspiré de .clf-security-message-block */
.clf3s-security-info-panel {
  display: flex; align-items: flex-start;
  /* Utilise les var HSL de .clf-security-message-block */
  background-color: hsla(var(--clf-info-h,205), var(--clf-info-s,70%), var(--clf-info-l,95%), 1);
  border: 1px solid hsla(var(--clf-info-h,205), var(--clf-info-s,70%), var(--clf-info-l,80%), 1);
  /* Fallback si var HSL non dispo */
  /* background-color: var(--info-light-bg, #e6f3ff); */
  /* border: 1px solid var(--info-border-color, #b3d7ff); */
  border-radius: 10px;
  padding: calc(var(--spacing-unit, 20px) + 5px); /* 25px */
  margin-bottom: calc(var(--spacing-unit, 20px) + 10px); /* 30px */
  gap: var(--spacing-unit, 20px);
}
.clf3s-security-icon-area { /* .clf-security-icon */
  flex-shrink: 0; font-size: 36px;
  color: var(--clf-info, var(--info-color, hsl(205, 70%, 60%)));
  line-height: 1;
}
.clf3s-security-text-area h4 { /* .clf-security-text h4 */
  font-size: 18px; font-weight: 600;
  color: var(--clf-text-dark, var(--text-color-dark, #333));
  margin: 0 0 8px 0;
}
.clf3s-security-text-area p { /* .clf-security-text p */
  font-size: 14px;
  color: var(--clf-text-gray, var(--text-color-gray, #555));
  line-height: 1.6; margin: 0;
}

/* Styles Contact Form 7 (Étape 3) - Inspiré de .clf-contact-form-7-wrapper */
.clf3s-cf7-integration-area { margin-bottom: calc(var(--spacing-unit, 20px) + 5px); } /* 25px */
.clf3s-cf7-integration-area .wpcf7-form p { margin-bottom: 15px; }
.clf3s-cf7-integration-area .wpcf7-form-control-wrap { display: block; }
.clf3s-cf7-integration-area .wpcf7-list-item { margin: 0 0 8px 0; list-style: none; }
.clf3s-cf7-integration-area .wpcf7-list-item-label {
  margin-left: 8px; font-size: 14px;
  color: var(--clf-text-gray, var(--text-color-gray, #555));
  cursor: pointer;
}
.clf3s-cf7-integration-area input[type="checkbox"] {
  cursor: pointer; transform: scale(1.1); margin-right: 5px; vertical-align: middle;
}
.clf3s-cf7-integration-area .wpcf7-acceptance { margin-bottom: var(--spacing-unit, 20px); }

.clf3s-cf7-integration-area .wpcf7 input[type="submit"].clf-cf7-submit-button {
  display: inline-flex; align-items: center; justify-content: center;
  padding: 14px 28px; font-size: 17px; font-weight: 600;
  border: none; border-radius: 8px; cursor: pointer;
  background-color: var(--clf-primary, var(--primary-color, hsl(330, 85%, 55%)));
  color: var(--clf-text-light, var(--section-text-color-light, #fff));
  width: 100%; box-sizing: border-box;
  box-shadow: 0 4px 12px hsla(var(--clf-primary-h,330),var(--clf-primary-s,85%),var(--clf-primary-l,50%), 0.25);
  transition: background-color var(--clf-transition-normal, var(--transition-speed-normal, 0.3s)) ease,
              box-shadow var(--clf-transition-normal, var(--transition-speed-normal, 0.3s)) ease,
              transform var(--clf-transition-fast, var(--transition-speed-fast, 0.2s)) ease;
}
.clf3s-cf7-integration-area .wpcf7 input[type="submit"].clf-cf7-submit-button:hover {
  background-color: var(--clf-primary-hover, var(--primary-hover-color, hsl(330, 85%, 45%)));
  box-shadow: 0 6px 18px hsla(var(--clf-primary-h,330),var(--clf-primary-s,85%),var(--clf-primary-l,45%), 0.3);
  transform: translateY(-2px);
}
.clf3s-cf7-integration-area .wpcf7-response-output {
  margin-top: var(--spacing-unit, 20px); padding: 15px; border-radius: 8px;
  font-size: 14px; text-align: center; font-weight: 500; line-height: 1.5;
}
.clf3s-cf7-integration-area .wpcf7-mail-sent-ok {
  border: 1px solid var(--clf-success, var(--success-color, hsl(140,65%,65%)));
  color: var(--clf-success, var(--success-color, hsl(140,65%,65%)));
  background-color: hsla(var(--clf-success-h,140),var(--clf-success-s,65%),var(--clf-success-l,95%),1);
}
.clf3s-cf7-integration-area .wpcf7-mail-sent-ng,
.clf3s-cf7-integration-area .wpcf7-validation-errors {
  border: 1px solid var(--clf-error, var(--error-color, hsl(0,80%,60%)));
  color: var(--clf-error, var(--error-color, hsl(0,80%,60%)));
  background-color: hsla(var(--clf-error-h,0),var(--clf-error-s,80%),var(--clf-error-l,95%),1);
}
.clf3s-cf7-integration-area .wpcf7-spinner { display: none !important; }

.clf3s-confirmation-note { /* .clf-text-center-info */
  text-align: center; font-size: 13px;
  color: var(--clf-text-gray, var(--text-color-gray, #555));
  margin-bottom: var(--spacing-unit, 20px);
}

/* Responsive - Les valeurs d'espacement sont également adaptées */
@media (max-width: 767.98px) {
  .clf3s-application-section { padding: calc(var(--spacing-unit, 20px) * 2) 0; }
  .clf3s-form-container { padding: 0 10px; }
  .clf3s-form-step { padding: var(--spacing-unit, 20px); }
  .clf3s-step-title-area h2 { font-size: 22px; }
  .clf3s-step-title-area p { font-size: 15px; }
  .clf3s-step-fields-area { gap: calc(var(--spacing-unit, 20px) + 5px); }
  .clf3s-loan-sim-layout { flex-direction: column; gap: calc(var(--spacing-unit, 20px) + 5px); }
  .clf3s-block-content.clf3s-grid-inputs-layout { grid-template-columns: 1fr; gap: 18px; }
  .clf3s-form-block { padding-bottom: calc(var(--spacing-unit, 20px) + 5px); }
  .clf3s-form-block h3 { font-size: 18px; margin-bottom: var(--spacing-unit, 20px); }
  .clf3s-form-input { padding: 10px 12px; font-size: 15px; }
  .clf3s-field-label { font-size: 14px; }
  .clf3s-simulation-box { padding: var(--spacing-unit, 20px); }
  .clf3s-sim-amount-display { font-size: 30px; min-height: 34px;}
  .clf3s-nav-buttons-group { flex-direction: column; gap: 15px; margin-top: calc(var(--spacing-unit, 20px) + 5px); }
  .clf3s-nav-buttons-group.clf3s-double-button-layout > * { flex: auto; }
  .clf3s-button-spacer { display: none; }
  .clf3s-action-button, .clf3s-cf7-integration-area .wpcf7 input[type="submit"].clf-cf7-submit-button {
      width: 100%; padding: 12px 20px; font-size: 16px;
  }
  .clf3s-summary-display-box { padding: var(--spacing-unit, 20px); margin-bottom: calc(var(--spacing-unit, 20px) + 5px); }
  .clf3s-summary-display-box h3 { font-size: 17px; }
  .clf3s-summary-line { font-size: 14px; flex-direction: column; align-items: flex-start; }
  .clf3s-summary-line .clf3s-summary-label-text { margin-bottom: 3px; }
  .clf3s-summary-line .clf3s-summary-value-text { text-align: left; font-weight: 500; }
  .clf3s-security-info-panel {
      flex-direction: column; text-align: center;
      padding: var(--spacing-unit, 20px); gap: 15px;
      margin-bottom: calc(var(--spacing-unit, 20px) + 5px);
  }
  .clf3s-security-icon-area { font-size: 30px; }
  .clf3s-security-text-area h4 { font-size: 17px; }
  .clf3s-security-text-area p { font-size: 13px; }
}
/* COLler VOTRE CSS clf3s ICI */
/* ... (tout le CSS que vous avez fourni dans votre prompt précédent) ... */

/* AJOUTS / AJUSTEMENTS SPÉCIFIQUES POUR CF7 et ce formulaire */

/* Assurer que le .clf-form-wrapper (si toujours présent sur un parent) n'interfère pas trop */
/* VOTRE CSS clf3s EXISTANT (celui que vous avez fourni précédemment) VIENT ICI */
/* ... */

/* SUPPRESSION OU AJUSTEMENT DES STYLES LIÉS AUX ÉTAPES MULTIPLES */
.clf3s-progress-bar-wrapper {
  display: none; /* On ne l'affiche plus */
}

.clf3s-form-step.is-exiting,
.clf3s-form-step.clf3s-is-inactive {
  /* Ces classes ne sont plus nécessaires pour la transition, mais on les garde pour la compatibilité si vous les réutilisez */
  /* Assurez-vous que .is-active est bien appliqué à votre unique .clf3s-form-step */
}

/* Ajustement pour le titre de la page unique */
#single-step-content .clf3s-step-title-area h2 i {
    /* Assurez-vous que la couleur est bien appliquée si vous ne l'avez pas mise inline */
    color: var(--clf3s-primary-color, var(--primary-color));
}


/* NOUVEAUX STYLES POUR LE GROUPE DE BOUTONS (SINGLE SUBMIT) */
.clf3s-nav-buttons-group.clf3s-single-submit-layout {
  display: flex;
  justify-content: flex-end; /* Aligne le bouton submit à droite */
  margin-top: calc(var(--spacing-unit, 20px) + 10px); /* 30px, comme avant */
}

/* Le bouton submit de CF7 prendra les styles de clf3s-action-button et clf3s-next-button */
/* Assurez-vous que ces styles sont bien appliqués via les classes dans le shortcode [submit] */
.clf3s-nav-buttons-group.clf3s-single-submit-layout .wpcf7-submit.clf3s-action-button.clf3s-next-button {
  /* Pas besoin de flex: 1 ici, il prendra sa largeur naturelle */
  /* Les autres styles (couleur, padding, etc.) viennent de .clf3s-action-button et .clf3s-next-button */
}


/* Si vous aviez des styles spécifiques pour .clf3s-prev-button,
   ils ne sont plus nécessaires. */


/* RESPONSIVE POUR LE SINGLE SUBMIT LAYOUT */
@media (max-width: 767.98px) {
  .clf3s-nav-buttons-group.clf3s-single-submit-layout .wpcf7-submit.clf3s-action-button.clf3s-next-button {
    width: 100%; /* Le bouton prend toute la largeur sur mobile */
  }
}

/* AJOUTS / AJUSTEMENTS SPÉCIFIQUES POUR CF7 et ce formulaire (repris de la réponse précédente, toujours valides) */

/* Assurer que le .clf-form-wrapper (si toujours présent sur un parent) n'interfère pas trop */
.clf-form-wrapper {
    background-color: transparent !important;
    padding: 0 !important;
    box-shadow: none !important;
}

.clf3s-info-message-box .wpcf7-form-control-wrap {
    display: inline;
}
.clf3s-info-message-box .wpcf7-acceptance .wpcf7-list-item {
    margin-left: 0;
}
.clf3s-info-message-box .wpcf7-list-item-label {
    font-size: inherit;
    color: inherit;
}
.clf3s-info-message-box input[type="checkbox"].clf3s-acceptance {
    margin-right: 8px;
    vertical-align: middle;
    transform: scale(1.2);
    accent-color: var(--clf3s-primary-color, var(--primary-color));
}

.clf3s-input-unit span.wpcf7-not-valid-tip {
  font-size: 13px;
  color: var(--clf3s-error-color, var(--error-color));
  font-weight: 500;
  display: block;
  margin-top: 5px;
}

.wpcf7-spinner {
  display: none !important;
}

/* Styles pour le bouton submit CF7, déjà gérés par les classes .clf3s-action-button .clf3s-next-button */


/* Utilise le :root que tu as fourni précédemment */

/* Variables de Couleur et de Style Basées sur ton :root */


/* ... (Vos variables :root globales, notamment --primary-color, --text-color-light, --text-color-light-transparent) ... */

.footer-contact-info {
    /* Styles pour le conteneur du bloc contact si nécessaire */
}

.footer-widget-title { /* Si vous utilisez ce titre */
    font-size: 18px; /* Ajustez */
    font-weight: 600;
    color: var(--text-color-light, #fff);
    margin-bottom: 20px;
    padding-bottom: 10px;
    border-bottom: 1px solid hsla(var(--text-color-light-rgb, 255,255,255), 0.2); /* Ligne de séparation subtile */
    /* Si le titre est centré dans sa colonne sur mobile */
    /* text-align: center; */
}
/* @media (max-width: 767px) {
    .footer-widget-title {
        text-align: center;
    }
} */
.footer-contact-info address,
.footer-contact-info a {
    color: white !important;
}

.contact-details-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.contact-detail-item {
    display: flex;
    align-items: flex-start; /* Aligner en haut si le texte de l'adresse est long */
    margin-bottom: 18px;
}
.contact-detail-item:last-child {
    margin-bottom: 0;
}

.contact-icon-sticker {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    border-radius: 50%; /* Cercle parfait pour l'effet sticker */
    background-color: var(--primary-color); /* Couleur de fond du sticker */
    color: var(--text-color-light, #fff); /* Couleur de l'icône */
    display: flex;
    align-items: center;
    justify-content: center;
    margin-right: 15px;
    font-size: 16px; /* Taille de l'icône dans le sticker */
    box-shadow: 0 3px 8px rgba(0,0,0,0.2); /* Légère ombre pour l'effet de relief */
    transition: transform 0.2s ease-out, background-color 0.2s ease-out;
}
.contact-detail-item:hover .contact-icon-sticker {
    transform: scale(1.1) rotate(-5deg); /* Petite animation au survol de l'item */
    background-color: var(--primary-hover-color); /* Changement de couleur au survol */
}

.contact-text {
    font-size: 14px;
    line-height: 1.6;
}

.contact-label {
    display: block;
    font-weight: 500;
    color: hsla(var(--text-color-light-rgb, 255,255,255), 0.7); /* Label un peu plus discret */
    font-size: 13px;
    margin-bottom: 2px;
}

.contact-text address,
.contact-text a {
    color:#000000;
    text-decoration: none;
    font-style: normal; /* Pour <address> */
    transition: color 0.2s ease;
}

.contact-text a:hover {
    color: var(--primary-color); /* Couleur d'accent au survol */
    text-decoration: underline;
}

/* Responsive : si le footer passe en mode centré sur mobile */
@media (max-width: 767px) {
    /* .contact-detail-item {
        justify-content: center; /* Si le bloc parent est centré */
        /* text-align: center; /* Si le texte doit être centré aussi */
    /* } */
    /* .contact-icon-sticker {
        margin-right: 0;
        margin-bottom: 8px; /* Si l'icône passe au-dessus du texte */
    /* } */
    /* .contact-detail-item {
        flex-direction: column; /* Empiler icône et texte */
        /* align-items: center;
    /* } */
}
.revc-section {
    position: relative;
    padding: 80px 0;
    background-color: var(--section-bg-color-dark, hsl(220, 25%, 10%));
    color: var(--text-color-light, #fff);
    font-family: var(--font-family-base);
    overflow: hidden;
}

.revc-background-pattern { /* Optionnel: motif subtil */
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    /* Exemple de motif SVG ou CSS, ou image texturée en opacité faible */
    /* background-image: url('path/to/subtle-dark-pattern.png'); */
    /* opacity: 0.05; */
    z-index: 0;
}

.revc-container {
    position: relative;
    z-index: 1;
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

.revc-section-header {
    text-align: center;
    margin-bottom: 60px; /* Plus d'espace avant le carrousel */
    opacity: 0; transform: translateY(-20px) scale(0.98);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.revc-section-header.is-visible { opacity: 1; transform: translateY(0) scale(1); }

.revc-eyebrow {
    display: inline-block;
    font-size: 14px;
    font-weight: 600;
    color: var(--primary-color); /* Utilise la couleur primaire pour contraster */
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding: 5px 15px;
    background-color: hsla(var(--primary-color-h,330), var(--primary-color-s,85%), var(--primary-color-l,55%), 0.1);
    border-radius: 20px;
}
.revc-main-title {
    font-size: 36px; /* Titre plus grand */
    font-weight: bold;
    color: #ffffff;
    margin-bottom: 15px;
    line-height: 1.25;
}
.revc-main-subtitle {
    font-size: 18px;
    color:  #ffffff;
    line-height: 1.7;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

/* Carrousel Swiper */
.revc-swiper-container {
    width: 100%;
    padding-top: 20px;
    padding-bottom: 70px; /* Espace pour pagination et flèches si besoin */
    /* Pour les animations d'entrée des slides */
    opacity: 0;
    transform: translateY(30px);
    transition: opacity 0.8s ease-out 0.3s, transform 0.8s ease-out 0.3s; /* Délai après le header */
}
.revc-swiper-container.is-visible {
    opacity: 1;
    transform: translateY(0);
}


.swiper-slide {
    display: flex;
    justify-content: center;
    align-items: stretch;
    box-sizing: border-box;
    padding: 0 10px; /* Espace pour l'ombre et entre les slides */
    height: auto; /* Important pour que les cartes de hauteurs différentes s'affichent bien */
}

.revc-card {
    background-color: var(--revc-card-bg, hsl(220, 25%, 15%));
    border: 1px solid var(--revc-card-border, hsla(255,255,255,0.12));
    border-radius: 12px;
    padding: 30px 25px; /* Padding augmenté */
    box-shadow: var(--shadow-card-revc, 0 10px 30px rgba(0,0,0, 0.25));
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 370px; /* Limiter la largeur pour un meilleur affichage en grille */
    transition: transform 0.35s cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
    min-height: 280px; /* Hauteur minimale pour une certaine cohérence */
}
.revc-card:hover {
    transform: translateY(-8px) scale(1.02);
    box-shadow: var(--shadow-card-revc-hover, 0 15px 40px rgba(0,0,0, 0.35));
}

.revc-card-header { display: flex; align-items: center; margin-bottom: 18px; } /* Marge augmentée */
.revc-avatar {
    width: 50px; /* Avatar plus grand */
    height: 50px;
    border-radius: 50%;
    display: flex; justify-content: center; align-items: center;
    font-size: 20px; font-weight: bold;
    margin-right: 15px; flex-shrink: 0;
    color: var(--text-color-light);
    /* La couleur de fond est inline */
    border: 2px solid hsla(var(--text-color-light-rgb,255,255,255),0.3); /* Petite bordure sur l'avatar */
}
.revc-author-info { display: flex; flex-direction: column; flex-grow: 1; margin-right: 10px; }
.revc-author-name { font-weight: 600; color: var(--revc-author-name-color, #fff); font-size: 17px; }
.revc-date { font-size: 13px; color: var(--revc-date-color, hsla(255,255,255,0.65)); margin-top: 3px; }
.revc-source-logo { height: 22px; width: auto; object-fit: contain; flex-shrink: 0; filter: brightness(0) invert(1) opacity(0.8); }

.revc-rating { font-size: 17px; margin-bottom: 18px; color: var(--google-star-yellow, #FFC107); }
.revc-rating i { margin-right: 4px; }

.revc-text {
    font-size: 15px;
    color: var(--revc-text-color, rgba(255,255,255,0.8));
    line-height: 1.75; /* Plus d'interligne */
    margin-bottom: 0;
    flex-grow: 1;
    font-style: italic; /* Pour distinguer le texte de l'avis */
    position: relative;
    padding-left: 25px; /* Espace pour les guillemets */
}
.revc-text::before { /* Guillemets décoratifs */
    content: '\“'; /* Ou \201C pour “ */
    font-family: Georgia, serif; /* Police avec de beaux guillemets */
    font-size: 40px;
    color: var(--primary-color); /* Couleur des guillemets */
    opacity: 0.6;
    position: absolute;
    left: -5px;
    top: -10px;
}


/* Styles Swiper Pagination & Navigation */
.revc-swiper-pagination {
    bottom: 15px !important; /* Ajuster la position verticale */
}
.revc-swiper-pagination .swiper-pagination-bullet {
    background-color: #ffffff;
    opacity: 1; width: 10px; height: 10px; /* Plus gros */
    transition: background-color 0.3s ease, transform 0.3s ease;
}
.revc-swiper-pagination .swiper-pagination-bullet-active {
    background-color: var(--primary-color);
    transform: scale(1.3);
}

.revc-swiper-button-prev,
.revc-swiper-button-next {
    color: var(--text-color-light, #fff);
    width: 40px; /* Plus gros */
    height: 40px;
    background-color: rgba(var(--text-color-light-rgb, 255,255,255), 0.1);
    border-radius: 50%;
    transition: background-color 0.3s ease, transform 0.3s ease;
    top: 50%; /* Centrer verticalement par rapport au carrousel */
    transform: translateY(-calc(50% + 20px)); /* Ajuster pour être au niveau des cartes, +20px pour remonter un peu */
}
.revc-swiper-button-prev::after,
.revc-swiper-button-next::after {
    font-size: 18px; /* Flèches plus grandes */
    font-weight: bold;
}
.revc-swiper-button-prev:hover,
.revc-swiper-button-next:hover {
    background-color: rgba(var(--text-color-light-rgb, 255,255,255), 0.2);
    transform: translateY(-calc(50% + 20px)) scale(1.1);
}
.revc-swiper-button-prev { left: 10px; }
.revc-swiper-button-next { right: 10px; }

/* Responsive */
@media (max-width: 767px) {
    .revc-section { padding: 60px 0; }
    .revc-section-header { margin-bottom: 40px; }
    .revc-main-title { font-size: 28px; }
    .revc-main-subtitle { font-size: 16px; }
    .revc-card { padding: 25px 20px; min-height: 260px; }
    .revc-swiper-container { padding-bottom: 50px; }
    .revc-swiper-button-prev,
    .revc-swiper-button-next { display: none; } /* Cacher les flèches sur mobile */
}



.pls-section {
    padding: 80px 0;
    background-color:  #e0e0e0;
    font-family: var(--font-family-base);
    overflow: hidden;
}

.pls-container {
    max-width: 1200px; /* Conteneur large pour 4 cartes */
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

.pls-section-header {
    text-align: center;
    margin-bottom: 60px;
    opacity: 0; transform: translateY(-20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.pls-section-header.is-visible { opacity: 1; transform: translateY(0); }

.pls-eyebrow {
    display: inline-block;
    font-size: 14px;
    font-weight: 600;
    color: var(--primary-color);
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.pls-main-title {
    font-size: 34px;
    font-weight: bold;
    color: var(--text-color-dark, #333);
    margin-bottom: 15px;
    line-height: 1.3;
}
.pls-main-subtitle {
    font-size: 18px;
    color: var(--text-color-gray, #555);
    line-height: 1.7;
    max-width: 750px;
    margin-left: auto;
    margin-right: auto;
}

.pls-loans-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); /* S'adapte, 1 à 4 colonnes */
    gap: 30px;
}

.pls-loan-card {
    background-color: var(--form-background, #fff);
    border-radius: 12px;
    box-shadow: var(--shadow-card-default, 0 8px 20px rgba(51,51,51,0.06));
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.35s cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
    /* Animation d'entrée */
    opacity: 0;
    transform: translateY(40px) scale(0.95);
}
.pls-loan-card.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}
.pls-loan-card:hover {
    transform: translateY(-10px) scale(1.02);
    box-shadow: var(--shadow-card-hover, 0 12px 30px rgba(51,51,51,0.1));
}

.pls-card-image-wrapper {
    position: relative;
    height: 200px; /* Hauteur de l'image */
    overflow: hidden;
}
.pls-card-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.pls-loan-card:hover .pls-card-image-wrapper img {
    transform: scale(1.1) rotate(1deg);
}

/* Superposition pour l'icône sur l'image */
.pls-card-icon-overlay {
    position: absolute;
    top: 15px;
    right: 15px;
    width: 50px;
    height: 50px;
    background-color: var(--pls-icon-overlay-bg, rgba(var(--primary-color-rgb, 230,26,108), 0.85));
    color: var(--text-color-light, #fff);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    box-shadow: 0 3px 8px rgba(0,0,0,0.2);
    z-index: 1;
    opacity: 0;
    transform: scale(0.5) rotate(-45deg);
    transition: opacity 0.4s ease-out 0.2s, transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) 0.2s;
}
.pls-loan-card.is-visible .pls-card-icon-overlay { /* Apparaît avec la carte */
    opacity: 1;
    transform: scale(1) rotate(0deg);
}
.pls-loan-card:hover .pls-card-icon-overlay {
    transform: scale(1.15) rotate(5deg);
}


.pls-card-content {
    padding: 25px;
    display: flex;
    flex-direction: column;
    flex-grow: 1;
}
.pls-card-title {
    font-size: 20px;
    font-weight: bold;
    color: var(--text-color-dark, #333);
    margin-bottom: 10px;
    line-height: 1.3;
}
.pls-card-description {
    font-size: 15px;
    color: var(--text-color-gray, #555);
    line-height: 1.6;
    margin-bottom: 20px;
    flex-grow: 1; /* Pour pousser les détails et le bouton en bas */
}

.pls-card-details {
    display: flex;
    justify-content: space-between;
    align-items: center;
    font-size: 14px;
    color: var(--text-color-gray, #555);
    padding: 8px 0;
    border-bottom: 1px dashed var(--border-color, #eee);
}
.pls-card-details:first-of-type { /* Le premier détail (montant) */
    padding-top: 0;
}
.pls-card-details:last-of-type { /* Le dernier détail (TAEG) */
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 25px; /* Espace avant le bouton */
}

.pls-detail-label {
    font-weight: 500;
}
.pls-detail-value {
    font-weight: 600;
    color: var(--text-color-dark, #333);
}
.pls-detail-value.pls-rate-highlight {
    color: var(--pls-rate-highlight-color, var(--success-color)); /* Couleur pour le TAEG */
    font-weight: bold;
    padding: 3px 8px;
    background-color: rgba(var(--success-color-rgb, 105,209,143), 0.1);
    border-radius: 15px;
}

.btn.pls-btn-details {
    display: inline-flex;
    align-items: center;
    justify-content: center; /* Centrer le contenu du bouton */
    width: 100%; /* Bouton pleine largeur */
    padding: 12px 20px;
    font-size: 15px;
    font-weight: 600;
    border-radius: 8px;
    text-decoration: none;
    background-color: var(--pls-btn-bg, var(--primary-color));
    color: var(--pls-btn-text-color, #fff);
    border: none;
    margin-top: auto; /* Pousse le bouton en bas */
    transition: background-color var(--transition-speed-normal) ease, transform var(--transition-speed-fast) ease;
}
.btn.pls-btn-details:hover {
    background-color: var(--pls-btn-hover-bg, var(--primary-hover-color));
    transform: translateY(-2px);
}
.btn.pls-btn-details i {
    margin-left: 8px;
    transition: transform 0.2s ease-out;
}
.btn.pls-btn-details:hover i {
    transform: translateX(4px);
}

/* Responsive */
@media (max-width: 991px) {
    .pls-loans-grid {
        grid-template-columns: repeat(auto-fit, minmax(270px, 1fr)); /* Ajuster pour 2 colonnes sur tablette */
    }
}
@media (max-width: 767px) {
    .pls-section { padding: 60px 0; }
    .pls-section-header { margin-bottom: 40px; }
    .pls-main-title { font-size: 28px; }
    .pls-main-subtitle { font-size: 16px; }
    .pls-loans-grid {
        grid-template-columns: 1fr; /* Une colonne sur mobile */
        gap: 25px;
    }
    .pls-card-title { font-size: 18px; }
    .pls-card-description { font-size: 14px; min-height: auto; }
    .pls-card-details { font-size: 13px; }
}



.lps-section {
    padding: 80px 0;
    background-color: var(--background-light, #f8f9fa);
    font-family: var(--font-family-base);
    overflow: hidden; /* Pour les animations et la ligne de connexion */
}

.lps-container {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

.lps-section-header {
    text-align: center;
    margin-bottom: 70px;
    opacity: 0; transform: translateY(-20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.lps-section-header.is-visible { opacity: 1; transform: translateY(0); }

.lps-eyebrow {
    display: inline-block;
    font-size: 14px;
    font-weight: 600;
    color: var(--primary-color);
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.lps-main-title {
    font-size: 34px;
    font-weight: bold;
    color: var(--text-color-dark, #333);
    margin-bottom: 15px;
    line-height: 1.3;
}
.lps-main-subtitle {
    font-size: 18px;
    color: var(--text-color-gray, #555);
    line-height: 1.7;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

.lps-steps-wrapper {
    position: relative; /* Contexte pour la ligne de connexion */
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    gap: 30px; /* Espace entre les cartes d'étapes */
    padding: 20px 0; /* Espace pour la ligne et les ombres */
}

/* Ligne de connexion horizontale */
.lps-connecting-line {
    position: absolute;
    top: calc(35px + 1px); /* (Hauteur icone-wrapper / 2) - (hauteur ligne / 2) */
    left: 10%; /* Marge de chaque côté */
    right: 10%;
    height: 3px;
    background-color: var(--border-color, #e0e0e0);
    z-index: 0;
    border-radius: 3px;
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 1s cubic-bezier(0.645, 0.045, 0.355, 1) 0.3s; /* Apparaît après le header */
}
.js-lps-section.is-fully-visible .lps-connecting-line {
    transform: scaleX(1);
}


.lps-step-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    position: relative; /* Pour le positionnement de l'icône par rapport à la ligne */
    z-index: 1; /* Au-dessus de la ligne de connexion */
    /* Animation d'entrée */
    opacity: 0;
    transform: translateY(40px);
    transition-property: opacity, transform;
    transition-duration: 0.5s;
    transition-timing-function: cubic-bezier(0.215, 0.610, 0.355, 1);
}
.lps-step-item.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.lps-step-icon-wrapper {
    width: 70px;
    height: 70px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    color: #ffffff;
    font-size: 26px; /* Taille de l'icône dans le cercle */
    box-shadow: 0 5px 15px rgba(0,0,0,0.1);
    position: relative; /* Pour le numéro */
    background-color: var(--border-color); /* Couleur de fond par défaut avant coloration */
    transition: transform 0.3s ease, box-shadow 0.3s ease, background-color 0.3s ease;
}
.lps-step-item:hover .lps-step-icon-wrapper {
    transform: translateY(-5px) scale(1.1);
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

.lps-step-number {
    position: absolute;
    top: -8px;
    right: -8px;
    background-color: var(--text-color-dark);
    color: #ffffff;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    font-size: 13px;
    font-weight: bold;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 2px solid var(--background-light); /* Sépare du cercle principal */
    box-shadow: 0 1px 3px rgba(0,0,0,0.2);
}


/* Couleurs spécifiques pour chaque icône d'étape (à définir dans :root) */
.lps-icon-bg-step1 { background-color: var(--lps-step1-color, var(--info-color)); }
.lps-icon-bg-step2 { background-color: var(--lps-step2-color, var(--primary-color)); }
.lps-icon-bg-step3 { background-color: var(--lps-step3-color, var(--accent-gold-color)); }
.lps-icon-bg-step4 { background-color: var(--lps-step4-color, var(--success-color)); }


.lps-step-content {
    background-color: var(--form-background, #fff);
    padding: 25px 20px;
    border-radius: 10px;
    box-shadow: var(--shadow-card-lps, 0 8px 25px rgba(51,51,51,0.07));
    width: 100%;
    min-height: 160px; /* Hauteur minimale pour aligner les cartes */
    display: flex;
    flex-direction: column;
    justify-content: flex-start; /* Aligner le contenu en haut */
}
.lps-step-title {
    font-size: 19px;
    font-weight: bold;
    color: var(--text-color-dark, #333);
    margin-bottom: 10px;
}
.lps-step-description {
    font-size: 14px;
    color: var(--text-color-gray, #555);
    line-height: 1.6;
}

/* Section Call-to-Action Finale */
.lps-final-cta-wrapper {
    margin-top: 70px;
    background: linear-gradient(45deg, rgba(var(--primary-color-rgb, 230,26,108), 0.05) 0%, rgba(var(--info-color-rgb, 77,158,224), 0.05) 100%), var(--form-background, #fff);
    border-radius: 16px;
    padding: 40px;
    text-align: center;
    box-shadow: 0 10px 30px rgba(var(--text-color-dark-rgb,51,51,51), 0.05);
    border: 1px solid var(--border-color, #e0e0e0);
    /* Animation */
    opacity: 0; transform: translateY(30px) scale(0.98);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.lps-final-cta-wrapper.is-visible { opacity: 1; transform: translateY(0) scale(1); }

.lps-final-cta-title {
    font-size: 24px;
    font-weight: bold;
    color: var(--text-color-dark, #333);
    margin-bottom: 12px;
}
.lps-final-cta-subtitle {
    font-size: 16px;
    color: var(--text-color-gray, #555);
    line-height: 1.6;
    max-width: 550px;
    margin: 0 auto 25px auto;
}
.btn.lps-btn-main-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 35px;
    font-size: 17px;
    font-weight: 600;
    border-radius: 8px;
    text-decoration: none;
    background-color: var(--primary-color);
    color: var(--text-color-light);
    border: none;
    transition: background-color var(--transition-speed-normal) ease, transform var(--transition-speed-fast) ease, box-shadow 0.2s ease;
    box-shadow: 0 5px 15px rgba(var(--primary-color-rgb, 230,26,108), 0.2);
}
.btn.lps-btn-main-cta:hover {
    background-color: var(--primary-hover-color);
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 8px 20px rgba(var(--primary-color-rgb, 230,26,108), 0.3);
}

/* Responsive */
@media (max-width: 991px) { /* md (Tailwind) - passage à 2 colonnes */
    .lps-steps-wrapper {
        grid-template-columns: repeat(2, 1fr);
        gap: 30px 25px; /* Espace vertical et horizontal */
    }
    .lps-connecting-line { /* Ajuster la ligne pour 2 colonnes ou la cacher */
        left: 25%; right: 25%; /* Approximation, peut nécessiter JS si le nombre d'items par ligne varie */
        /* Alternative: la cacher sur tablette */
        /* display: none; */
    }
    .lps-step-item { max-width: none; } /* Prend la largeur de la colonne de grille */
}

@media (max-width: 767px) {
    .lps-section { padding: 60px 0; margin-left: 8px;
        margin-right: 8px;}
    .lps-section-header { margin-bottom: 50px; }
    .lps-main-title { font-size: 28px; }
    .lps-main-subtitle { font-size: 16px; }

    .lps-steps-wrapper {
        grid-template-columns: 1fr; /* Empiler verticalement */
        padding-top: 0; /* Pas besoin de padding si pas de ligne horizontale */
    }
    .lps-connecting-line { display: none; } /* Cacher la ligne sur mobile */
    .lps-step-item {
        margin-bottom: 25px; /* Espace entre les étapes empilées */
        padding: 0 10px; /* Moins de padding latéral pour l'item si pleine largeur */
    }
    .lps-step-item:last-child { margin-bottom: 0; }
    .lps-step-icon-wrapper { margin-bottom: 15px; width: 60px; height: 60px; font-size: 22px; }
    .lps-step-number { top:-6px; right: -6px; width: 20px; height: 20px; font-size: 12px;}
    .lps-step-content { padding: 20px 15px; min-height: auto; }
    .lps-step-title { font-size: 18px; }
    .lps-step-description { font-size: 14px; }

    .lps-final-cta-wrapper { padding: 30px 25px; margin-top: 50px; }
    .lps-final-cta-title { font-size: 22px; }
    .lps-final-cta-subtitle { font-size: 15px; }
}





.cfp-section {
    position: relative;
    padding: 80px 0;
    background-color: var(--background-light, #f8f9fa);
    font-family: var(--font-family-base);
    overflow: hidden;
}

.cfp-background-accent {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 350px; /* Hauteur augmentée */
    background: linear-gradient(to bottom, rgba(var(--primary-color-rgb, 230,26,108), 0.05), transparent);
    z-index: 0;
    pointer-events: none;
    clip-path: ellipse(150% 100% at 50% -50%); /* Forme de vague en haut */
}

.cfp-container {
    position: relative;
    z-index: 1;
    max-width: 1140px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

.cfp-section-header {
    text-align: center;
    margin-bottom: 60px;
    opacity: 0; transform: translateY(-20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.cfp-section-header.is-visible { opacity: 1; transform: translateY(0); }

.cfp-eyebrow {
    display: inline-block;
    font-size: 14px;
    font-weight: 600;
    color: var(--primary-color);
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.cfp-main-title {
    font-size: 34px;
    font-weight: bold;
    color: var(--text-color-dark, #333);
    margin-bottom: 15px;
    line-height: 1.3;
}
.cfp-main-subtitle {
    font-size: 18px;
    color: var(--text-color-gray, #555);
    line-height: 1.7;
    max-width: 750px;
    margin-left: auto;
    margin-right: auto;
}

.cfp-projects-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); /* Augmenté minmax */
    gap: 35px; /* Espace augmenté */
    margin-bottom: 70px;
}

.cfp-project-card {
    background-color: var(--form-background, #fff);
    border-radius: 16px; /* Plus arrondi */
    box-shadow: var(--shadow-card-cfp, 0 10px 25px rgba(51,51,51,0.08));
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform 0.35s cubic-bezier(0.25, 0.8, 0.25, 1), box-shadow 0.35s cubic-bezier(0.25, 0.8, 0.25, 1);
    opacity: 0;
    transform: perspective(1000px) rotateY(15deg) scale(0.95);
    transform-origin: left center;
}
.cfp-project-card.is-visible {
    opacity: 1;
    transform: perspective(1000px) rotateY(0deg) scale(1);
}
.cfp-project-card:hover {
    transform: translateY(-12px) scale(1.03) rotateY(0deg); /* Effet de survol plus prononcé */
    box-shadow: var(--shadow-card-cfp-hover, 0 15px 35px rgba(51,51,51,0.15));
}

.cfp-card-image-wrapper {
    position: relative;
    height: 220px; /* Hauteur de l'image */
    overflow: hidden;
}
.cfp-card-image-wrapper img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.5s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.cfp-project-card:hover .cfp-card-image-wrapper img {
    transform: scale(1.1);
}

.cfp-card-image-overlay {
    position: absolute;
    bottom: 0; /* L'overlay part du bas */
    left: 0;
    width: 100%;
    height: 70%; /* Couvre une partie de l'image */
    background: linear-gradient(to top, rgba(var(--text-color-dark-rgb, 30,30,30), 0.85) 0%, transparent 100%);
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: flex-end; /* Aligne le titre en bas de l'overlay */
    padding: 20px;
    box-sizing: border-box;
}
.cfp-card-title-on-image {
    font-size: 20px;
    font-weight: bold;
    color: var(--text-color-light, #fff);
    margin: 0;
    line-height: 1.2;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.5);
}

.cfp-card-tags {
    position: absolute;
    top: 15px;
    left: 15px;
    z-index: 2;
    display: flex;
    flex-direction: column; /* Tags empilés */
    gap: 8px;
}
.cfp-tag {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background-color: var(--cfp-tag-bg, rgba(30,30,30,0.7));
    color: var(--cfp-tag-text, #fff);
    font-size: 12px;
    font-weight: 500;
    padding: 5px 10px;
    border-radius: 20px;
    backdrop-filter: blur(3px); /* Effet verre dépoli sur les tags */
}
.cfp-tag i {
    font-size: 0.9em;
}

.cfp-card-content {
    padding: 25px;
    display: flex;
    flex-direction: column;
    flex-grow: 1; /* Pour que le footer soit en bas */
}
.cfp-card-description {
    font-size: 15px;
    color: var(--text-color-gray, #555);
    line-height: 1.6;
    margin-bottom: 20px;
    flex-grow: 1;
}

.cfp-card-footer {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-top: auto; /* Pousse le footer en bas */
    border-top: 1px solid var(--border-color, #e0e0e0);
    padding-top: 15px;
}
.cfp-footer-info {
    font-size: 13px;
    font-style: italic;
    color: var(--text-color-gray, #555);
}
.btn.cfp-btn-discover {
    display: inline-flex;
    align-items: center;
    padding: 8px 18px; /* Bouton plus petit */
    font-size: 14px;
    font-weight: 600;
    border-radius: 6px;
    text-decoration: none;
    color: #ffffff;
    border: none;
    transition: background-color var(--transition-speed-normal) ease, transform var(--transition-speed-fast) ease;
}
.btn.cfp-btn-discover i { margin-left: 8px; transition: transform 0.2s ease; }
.btn.cfp-btn-discover:hover i { transform: translateX(3px); }

/* Couleurs thématiques pour les boutons "Découvrir" */
.btn.cfp-btn-social   { background-color: var(--cfp-social-color, var(--success-color)); }
.btn.cfp-btn-social:hover { background-color: hsl(var(--success-h,140), var(--success-s,65%), calc(var(--success-l,65%) - 10%)); }

.btn.cfp-btn-immo     { background-color: var(--cfp-immo-color, var(--info-color)); }
.btn.cfp-btn-immo:hover { background-color: hsl(var(--info-h,205), var(--info-s,70%), calc(var(--info-l,60%) - 10%)); }

.btn.cfp-btn-business { background-color: var(--cfp-business-color, var(--primary-color)); }
.btn.cfp-btn-business:hover { background-color: hsl(var(--primary-h,330), var(--primary-s,85%), calc(var(--primary-l,55%) - 10%)); }


/* Section Call-to-Action Finale */
.cfp-final-cta-wrapper {
    margin-top: 70px;
    background: linear-gradient(135deg, hsl(330deg 2.39% 11.54%) 0%, var(--primary-hover-color) 100%);
    color: #ffffff;
    border-radius: 16px;
    padding: 50px 40px;
    text-align: center;
    position: relative;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(var(--primary-color-rgb, 230,26,108), 0.3);
    /* Animation */
    opacity: 0; transform: translateY(30px) scale(0.98);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.cfp-final-cta-wrapper.is-visible { opacity: 1; transform: translateY(0) scale(1); }

/* Éléments décoratifs pour le CTA final */
.cfp-final-cta-wrapper::before,
.cfp-final-cta-wrapper::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    background-color: rgba(var(--text-color-light-rgb, 255,255,255), 0.05);
    z-index: 0;
    animation: ctaPulse 10s infinite ease-in-out;
}
.cfp-final-cta-wrapper::before { width: 200px; height: 200px; top: -50px; left: -50px; }
.cfp-final-cta-wrapper::after { width: 150px; height: 150px; bottom: -40px; right: -40px; animation-delay: -5s; }

@keyframes ctaPulse {
    0%, 100% { transform: scale(1); opacity: 0.05; }
    50% { transform: scale(1.2); opacity: 0.1; }
}

.cfp-final-cta-content {
    position: relative; /* Au-dessus des éléments décoratifs */
    z-index: 1;
}
.cfp-cta-icon-accent {
    font-size: 36px;
    color: var(--text-color-light);
    margin-bottom: 20px;
    display: inline-block;
    padding: 15px;
    background-color: rgba(var(--text-color-light-rgb,255,255,255),0.1);
    border-radius: 50%;
}

.cfp-final-cta-title {
    font-size: 28px;
    font-weight: bold;
    margin-bottom: 15px;
	color: #ffffff;
}
.cfp-final-cta-subtitle {
    font-size: 17px;
    color: var(--text-color-light-transparent, rgba(255,255,255,0.85));
    line-height: 1.7;
    max-width: 600px;
    margin: 0 auto 30px auto;
}
.btn.cfp-btn-main-cta {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 14px 35px;
    font-size: 17px;
    font-weight: bold;
    border-radius: 8px;
    text-decoration: none;
    background-color: var(--accent-gold-color, hsl(40, 90%, 55%)); /* Bouton en or */
    color: #ffffff; /* Texte foncé sur or */
    border: none;
    transition: background-color var(--transition-speed-normal) ease, transform var(--transition-speed-fast) ease, box-shadow 0.2s ease;
    box-shadow: 0 5px 15px rgba(var(--accent-gold-color-rgb, 230,172,26), 0.3);
}
.btn.cfp-btn-main-cta:hover {
    background-color: var(--accent-gold-hover-color, hsl(40, 90%, 45%));
    transform: translateY(-3px) scale(1.02);
    box-shadow: 0 8px 20px rgba(var(--accent-gold-color-rgb, 230,172,26), 0.4);
}


/* Responsive */
@media (max-width: 991px) {
    .cfp-projects-grid { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 25px;}
}
@media (max-width: 767px) {
    .cfp-section { padding: 60px 0; }
    .cfp-section-header { margin-bottom: 40px; }
    .cfp-main-title { font-size: 28px; }
    .cfp-main-subtitle { font-size: 16px; }
    .cfp-card-title-on-image { font-size: 18px; }
    .cfp-tag { font-size: 11px; padding: 4px 8px; }
    .cfp-card-content { padding: 20px; }
    .cfp-card-description { font-size: 14px; }
    .cfp-card-footer { flex-direction: column; align-items: flex-start; gap: 10px; }
    .btn.cfp-btn-discover { width: 100%; justify-content: center; }
    .cfp-final-cta-wrapper { padding: 40px 25px; margin-top: 50px; }
    .cfp-final-cta-title { font-size: 22px; }
    .cfp-final-cta-subtitle { font-size: 15px; }
}

.qla-section-container { /* Anciennement qla-section */
    /* Padding vertical pour la section globale */
    background-color: var(--clf-bg-light, #f8f8f8); /* Fond de la page où la carte sera posée */
    font-family: var(--font-family-base);
    margin-top: -30px; /* Marge en haut pour séparer de la section précédente */
}

.qla-card-wrapper {
    background-color: var(--clf-form-bg, #fff); /* Fond blanc pour la carte */
    border-radius: 16px; /* Similaire à clf-form-card */
    box-shadow: var(--clf-shadow-card, 0 12px 35px rgba(51,51,51,0.12)); /* Ombre similaire */
    max-width: 800px; /* Largeur de la carte, peut être ajustée */
    margin-left: auto;
    margin-right: auto;
    padding: 40px 30px; /* Padding interne de la carte */
    overflow-x: hidden; /* Pour les animations internes */
}
@media (min-width: 768px) {
    .qla-card-wrapper {
        padding: 50px 40px;
    }
}


.qla-container { /* Conteneur interne, ne prend plus la largeur max */
    /* max-width: 700px; est maintenant sur qla-card-wrapper */
    padding-left: 0; /* Pas besoin de padding ici si qla-card-wrapper en a */
    padding-right: 0;
}

.qla-header {
    text-align: center;
    margin-bottom: 40px;
    opacity: 0; transform: translateY(-20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.qla-header.is-visible { opacity: 1; transform: translateY(0); }

.qla-eyebrow {
    display: inline-block;
    font-size: 13px;
    font-weight: 600;
    color: var(--primary-color);
    margin-bottom: 8px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.qla-main-title {
    font-size: 28px;
    font-weight: bold;
    color: var(--text-color-dark, #333);
    margin-bottom: 12px;
    line-height: 1.3;
}
.qla-main-subtitle {
    font-size: 16px;
    color: var(--text-color-gray, #555);
    line-height: 1.6;
    max-width: 550px;
    margin-left: auto;
    margin-right: auto;
}

.qla-keypoints-wrapper {
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px; /* Espace réduit entre les points clés car la carte a déjà du padding */
}

/* Les styles de .qla-keypoint-item peuvent rester similaires, mais ajuster le fond si besoin */
.qla-keypoint-item {
    display: flex;
    align-items: flex-start;
    gap: 18px; /* Espace ajusté */
    background-color: var(--clf-bg-light, #f8f8f8); /* Fond légèrement différent de la carte principale pour distinction */
    /* Ou garder var(--form-background) si on veut qu'ils se fondent plus */
    /* background-color: var(--form-background, #fff); */
    padding: 18px; /* Padding ajusté */
    border-radius: 8px; /* Coins arrondis */
    box-shadow: 0 3px 10px rgba(var(--text-color-dark-rgb, 51,51,51), 0.05); /* Ombre plus subtile pour ces items */
    border-left: 4px solid transparent;
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease;
    opacity: 0;
    transform: translateX(-20px) scale(0.98);
}
.qla-keypoint-item.is-visible {
    opacity: 1;
    transform: translateX(0) scale(1);
}
.qla-keypoint-item:hover {
    transform: translateY(-4px) scale(1.01); /* Effet de survol plus subtil */
    box-shadow: 0 6px 15px rgba(var(--text-color-dark-rgb, 51,51,51), 0.08);
}
.qla-keypoint-item:nth-child(1) { border-left-color: var(--qla-response-color, var(--primary-color)); }
.qla-keypoint-item:nth-child(2) { border-left-color: var(--qla-security-color, var(--success-color)); }
.qla-keypoint-item:nth-child(3) { border-left-color: var(--qla-commitment-color, var(--info-color)); }
.qla-keypoint-item:nth-child(4) { border-left-color: var(--qla-payout-color, var(--accent-gold-color)); }


.qla-keypoint-icon-wrapper {
    width: 45px; /* Taille ajustée */
    height: 45px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 18px; /* Taille icône ajustée */
    color: #ffffff;
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1);
}
.qla-keypoint-item:hover .qla-keypoint-icon-wrapper {
    transform: scale(1.15) rotate(-8deg);
}
.qla-icon-bg-response   { background-color: var(--qla-response-color, var(--primary-color)); }
.qla-icon-bg-security   { background-color: var(--qla-security-color, var(--success-color)); }
.qla-icon-bg-commitment { background-color: var(--qla-commitment-color, var(--info-color)); }
.qla-icon-bg-payout     { background-color: var(--qla-payout-color, var(--accent-gold-color)); }


.qla-keypoint-text {
    flex-grow: 1;
}
.qla-keypoint-title {
    font-size: 17px; /* Taille ajustée */
    font-weight: 600;
    color: var(--text-color-dark, #333);
    margin: 0 0 4px 0;
}
.qla-keypoint-text p {
    font-size: 14px; /* Taille ajustée */
    color: var(--text-color-gray, #555);
    line-height: 1.5;
    margin: 0;
}

/* Optionnel: Styles pour le bouton CTA si ajouté et décommenté dans le HTML */
.qla-cta-wrapper {
    text-align: center;
    margin-top: 35px; /* Espace ajusté */
    opacity: 0; transform: translateY(20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
.qla-cta-wrapper.is-visible { opacity: 1; transform: translateY(0); }

.btn.btn-qla-action {
    display: inline-block;
    padding: 12px 30px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 8px;
    text-decoration: none;
    background-color: var(--primary-color);
    color: var(--text-color-light);
    border: none;
    transition: background-color var(--transition-speed-normal) ease, transform var(--transition-speed-fast) ease;
}
.btn.btn-qla-action:hover {
    background-color: var(--primary-hover-color);
    transform: translateY(-3px);
}

/* Responsive */
@media (min-width: 576px) {
    /* Optionnel: pour une disposition en 2 colonnes des keypoints sur écrans un peu plus larges */
    .qla-keypoints-wrapper {
        /* grid-template-columns: repeat(2, 1fr); */
        /* gap: 20px 25px; */ /* Espace vertical et horizontal */
    }
}
@media (max-width: 767px) {
    .qla-section-container { padding: 30px 0; margin-top: 40px;padding-left: 5px;
        padding-right: 5px}
    .qla-card-wrapper { padding: 30px 20px; }
    .qla-header { margin-bottom: 30px; }
    .qla-main-title { font-size: 24px; }
    .qla-main-subtitle { font-size: 15px; }
    .qla-keypoint-item { padding: 15px; gap: 15px; }
    .qla-keypoint-icon-wrapper { width: 40px; height: 40px; font-size: 16px; }
    .qla-keypoint-title { font-size: 16px; }
    .qla-keypoint-text p { font-size: 13px; }
}



.wsn-choice-section {
    padding: 80px 0;
    background-color: #ffffff;
    font-family: var(--font-family-base);
    overflow-x: hidden;
}

.wsn-container {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

.wsn-section-header {
    text-align: center;
    margin-bottom: 60px;
    opacity: 0; transform: translateY(-20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.wsn-section-header.is-visible { opacity: 1; transform: translateY(0); }

.wsn-eyebrow {
    display: inline-block;
    font-size: 14px;
    font-weight: 600;
    color: var(--primary-color);
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.wsn-main-title {
    font-size: 34px;
    font-weight: bold;
    color: var(--text-color-dark, #333);
    margin-bottom: 15px;
    line-height: 1.3;
}
.wsn-main-subtitle {
    font-size: 18px;
    color: var(--text-color-gray, #555);
    line-height: 1.7;
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

.wsn-features-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 30px;
    margin-bottom: 70px;
}

.wsn-feature-card {
    background-color: var(--form-background, #fff);
    border-radius: 12px;
    padding: 30px 25px;
    text-align: center;
    box-shadow: var(--shadow-card-default, 0 8px 20px rgba(51,51,51,0.07));
    position: relative; /* Pour la ligne décorative */
    overflow: hidden; /* Pour que la ligne ne dépasse pas */
    /* Animation d'entrée */
    opacity: 0;
    transform: translateY(30px) scale(0.95);
    transition: opacity 0.5s ease-out, transform 0.5s cubic-bezier(0.215, 0.610, 0.355, 1), box-shadow 0.3s ease;
}
.wsn-feature-card.is-visible {
    opacity: 1;
    transform: translateY(0) scale(1);
}
.wsn-feature-card:hover {
    transform: translateY(-8px) scale(1.03);
    box-shadow: var(--shadow-card-hover, 0 15px 35px rgba(51,51,51,0.12));
}

.wsn-card-icon-wrapper {
    width: 70px;
    height: 70px;
    margin: 0 auto 25px auto;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 28px; /* Icône plus grande */
    color: #ffffff;
    position: relative;
    z-index: 1;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.3s ease;
}
.wsn-feature-card:hover .wsn-card-icon-wrapper {
    transform: scale(1.2) rotate(-10deg);
}
/* Couleurs de fond spécifiques pour chaque icône d'avantage */
.wsn-icon-bg-speed       { background-color: var(--wsn-speed-color, var(--primary-color)); }
.wsn-icon-bg-simplicity  { background-color: var(--wsn-simplicity-color, var(--info-color)); }
.wsn-icon-bg-security    { background-color: var(--wsn-security-color, var(--success-color)); }
.wsn-icon-bg-flexibility { background-color: var(--wsn-flexibility-color, var(--accent-gold-color)); }

.wsn-card-title {
    font-size: 20px;
    font-weight: bold;
    color: var(--text-color-dark, #333);
    margin-bottom: 10px;
}
.wsn-card-description {
    font-size: 15px;
    color: var(--text-color-gray, #555);
    line-height: 1.6;
    min-height: 65px; /* Pour aligner les bas des cartes si descriptions de longueurs différentes */
}

/* Ligne décorative en bas de la carte */
.wsn-card-deco-line {
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%);
    width: 0; /* Initialement cachée */
    height: 4px;
    border-radius: 2px;
    transition: width 0.4s ease-out 0.1s; /* Apparaît au survol avec délai */
}
.wsn-feature-card:hover .wsn-card-deco-line {
    width: 60px; /* Largeur de la ligne au survol */
}
/* Couleurs spécifiques pour chaque ligne décorative */
.wsn-feature-card:nth-child(1):hover .wsn-card-deco-line { background-color: var(--wsn-speed-color, var(--primary-color)); }
.wsn-feature-card:nth-child(2):hover .wsn-card-deco-line { background-color: var(--wsn-simplicity-color, var(--info-color)); }
.wsn-feature-card:nth-child(3):hover .wsn-card-deco-line { background-color: var(--wsn-security-color, var(--success-color)); }
.wsn-feature-card:nth-child(4):hover .wsn-card-deco-line { background-color: var(--wsn-flexibility-color, var(--accent-gold-color)); }


/* Bannière Confiance */
.wsn-trust-banner {
    margin-top: 70px;
    background-color: rgba(var(--primary-color-rgb, 230, 26, 108), 0.08); /* Fond subtil basé sur couleur primaire */
    border-radius: 16px;
    padding: 40px;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    border: 1px solid rgba(var(--primary-color-rgb, 230, 26, 108), 0.15);
    /* Animation */
    opacity: 0; transform: translateY(30px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.wsn-trust-banner.is-visible { opacity: 1; transform: translateY(0); }

@media (min-width: 768px) {
    .wsn-trust-banner {
        flex-direction: row;
        justify-content: space-between;
        text-align: left;
    }
}

.wsn-trust-content {
    margin-bottom: 30px;
}
@media (min-width: 768px) {
    .wsn-trust-content {
        margin-bottom: 0;
        margin-right: 30px;
        flex-basis: 60%; /* Plus d'espace pour le texte */
    }
}

.wsn-trust-title {
    font-size: 24px;
    font-weight: bold;
    color: var(--text-color-dark, #333);
    margin-bottom: 10px;
}
.wsn-trust-subtitle {
    font-size: 16px;
    color: var(--text-color-gray, #555);
    line-height: 1.6;
}

.wsn-trust-proof {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
}
@media (min-width: 768px) {
    .wsn-trust-proof {
        align-items: flex-end; /* Aligner à droite sur desktop */
        flex-basis: 40%;
    }
}


.wsn-rating-stars {
    display: flex;
    align-items: center;
    gap: 3px;
    font-size: 18px;
    color: var(--accent-gold-color, hsl(40, 90%, 55%)); /* Étoiles en or */
}
.wsn-rating-value {
    font-size: 16px;
    font-weight: 600;
    color: var(--text-color-dark, #333);
    margin-left: 8px;
}

.wsn-partner-logos {
    display: flex;
    align-items: center;
    gap: 10px;
}
.wsn-partner-logos span {
    font-size: 13px;
    color: var(--text-color-gray, #555);
    font-style: italic;
    margin-right: 5px;
}
.wsn-partner-logo {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    object-fit: contain;
    background-color: var(--form-background, #fff); /* Fond pour les logos si transparents */
    padding: 2px; /* Petite marge interne */
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
    opacity: 0; transform: scale(0.5);
    transition: opacity 0.4s ease, transform 0.4s ease;
}
/* Animation des logos partenaires */
.wsn-trust-banner.is-visible .wsn-partner-logo:nth-child(2) { transition-delay: 0.2s; } /* Le premier est le span */
.wsn-trust-banner.is-visible .wsn-partner-logo:nth-child(3) { transition-delay: 0.3s; }
.wsn-trust-banner.is-visible .wsn-partner-logo:nth-child(4) { transition-delay: 0.4s; }
.wsn-trust-banner.is-visible .wsn-partner-logo { opacity: 1; transform: scale(1); }


/* Responsive */
@media (max-width: 991px) { /* md (Tailwind) ou équivalent */
    .wsn-features-grid {
        grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); /* Ajuster pour 2 colonnes potentielles */
    }
}
@media (max-width: 767px) {
    .wsn-choice-section { padding: 60px 0; }
    .wsn-section-header { margin-bottom: 40px; }
    .wsn-main-title { font-size: 28px; }
    .wsn-main-subtitle { font-size: 16px; }
    .wsn-feature-card { padding: 25px 20px; }
    .wsn-card-title { font-size: 18px; }
    .wsn-card-description { font-size: 14px; min-height: auto; }
    .wsn-trust-banner { padding: 30px 25px; margin-top: 50px;}
    .wsn-trust-title { font-size: 20px; }
    .wsn-trust-subtitle { font-size: 15px; }
    .wsn-trust-proof { align-items: center; } /* Centrer la preuve sociale sur mobile */
}




.clf-application-section {
    padding: 60px 0;
    background-color: var(--clf-bg-light, #f8f8f8);
    font-family: var(--clf-font-base, sans-serif);
    color: var(--clf-text-dark, #333);
    line-height: 1.6;
}

.clf-form-container {
    max-width: 850px;
    margin: 0 auto;
    padding: 0 15px; /* Ajusté pour mobile */
}

/* Barre de progression */
.clf-progress-bar-wrapper {
    max-width: 600px; /* Élargi pour 3 étapes */
    margin: 0 auto 50px auto;
}
.clf-progress-container { margin-bottom: 15px; }
.clf-progress-track {
    height: 10px; /* Plus épaisse */
    background-color: var(--clf-secondary, #e0e0e0);
    border-radius: 5px;
    overflow: hidden;
    position: relative;
}
.clf-progress-fill {
    position: absolute; top: 0; left: 0; height: 100%;
    background-color: var(--clf-primary, hsl(330, 85%, 55%));
    border-radius: 5px;
    transition: width var(--clf-transition-slow, 0.5s) ease-out;
}
.clf-step-indicators {
    display: flex;
    justify-content: space-between;
    margin-top: 12px;
    font-size: 14px;
    font-weight: 600;
}
.clf-step-indicator-item {
    position: relative;
    text-align: center;
    flex: 1;
    padding-top: 30px; /* Plus d'espace pour l'icône */
    color: var(--clf-text-gray, #555);
    transition: color var(--clf-transition-normal, 0.3s) ease;
    cursor: default; /* Non cliquable par défaut */
}
.clf-indicator-circle {
    width: 32px; height: 32px; /* Plus grand */
    background-color: var(--clf-secondary, #e0e0e0);
    color: var(--clf-text-light, #fff);
    border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    font-size: 15px; /* Icône plus grande */
    position: absolute; top: -16px; left: 50%;
    transform: translateX(-50%);
    transition: background-color var(--clf-transition-normal, 0.3s) ease, box-shadow var(--clf-transition-normal, 0.3s) ease;
    border: 3px solid var(--clf-bg-light, #f8f8f8); /* Correspond au fond de la section */
    box-shadow: 0 2px 5px rgba(0,0,0,0.1);
}
.clf-step-indicator-item.is-active .clf-indicator-circle {
    background-color: var(--clf-primary, hsl(330, 85%, 55%));
    box-shadow: 0 3px 10px hsla(var(--clf-primary-h,330), var(--clf-primary-s,85%), var(--clf-primary-l,50%), 0.4);
}
.clf-step-indicator-item.is-active .clf-indicator-text {
    color: var(--clf-primary, hsl(330, 85%, 55%));
    font-weight: bold;
}
.clf-step-indicator-item.is-completed .clf-indicator-circle {
    background-color: var(--clf-success, hsl(140, 65%, 65%));
    box-shadow: 0 2px 8px hsla(var(--clf-success-h,140), var(--clf-success-s,65%), var(--clf-success-l,60%), 0.3);
}
.clf-step-indicator-item.is-completed .clf-indicator-text {
     color: var(--clf-text-dark, #333);
     font-weight: 500;
}


/* Carte et Étapes du Formulaire */
.clf-form-card {
    background-color: var(--clf-form-bg, #fff);
    border-radius: 16px; /* Plus arrondi */
    box-shadow: var(--clf-shadow-card, 0 12px 35px rgba(51,51,51,0.12));
    overflow: hidden; /* Pour les transitions d'étapes */
    position: relative;
    min-height: 550px; /* Hauteur min pour éviter sauts */
}
.clf-form-step {
    padding: 30px 35px; /* Padding ajusté */
    box-sizing: border-box;
    /* Animations d'étapes */
    position: absolute; /* Pour la superposition */
    top: 0; left: 0; width: 100%;
    opacity: 0;
    transform: translateX(30px); /* Vient de la droite */
    transition: opacity 0.4s ease-out, transform 0.4s ease-out;
    pointer-events: none;
}
.clf-form-step.is-active {
    opacity: 1;
    transform: translateX(0);
    pointer-events: auto;
    position: relative; /* Rétablir le flux normal */
}
.clf-form-step.is-exiting { /* Pour l'étape qui sort */
    transform: translateX(-30px); /* Sort par la gauche */
}
.clf-form-step.is-hidden { /* Classe utilitaire, plus forte que les transitions */
    display: none !important;
}


.clf-step-header {
    margin-bottom: 35px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--clf-border, #ddd);
}
.clf-step-header h2 {
    font-size: 26px; /* Plus grand */
    font-weight: bold;
    color: var(--clf-text-dark, #333);
    margin: 0 0 10px 0;
    line-height: 1.3;
}
.clf-step-header p {
    font-size: 17px; /* Plus grand */
    color: var(--clf-text-gray, #555);
    margin: 0;
}

.clf-step-content {
    display: flex;
    flex-direction: column;
    gap: 35px; /* Espace entre les sections du formulaire */
}

.clf-loan-simulation-group {
    display: flex;
    flex-direction: column;
    gap: 30px;
}
@media (min-width: 768px) {
    .clf-loan-simulation-group {
        flex-direction: row;
        gap: 35px;
    }
    .clf-section-loan-details { flex: 2; min-width: 0; }
    .clf-simulation-panel { flex: 1; min-width: 0; margin-top: 0; }
}

.clf-form-section {
    padding-bottom: 30px;
    border-bottom: 1px dashed var(--clf-border, #ddd);
}
.clf-step-content > .clf-form-section:last-of-type { /* La dernière section de contenu n'a pas de bordure */
     border-bottom: none;
     padding-bottom: 0;
}

.clf-form-section h3 {
    font-size: 20px; /* Ajusté */
    font-weight: 600;
    color: var(--clf-text-dark, #333);
    margin: 0 0 25px 0;
    display: flex;
    align-items: center;
}
.clf-form-section h3 .fas {
     margin-right: 12px;
     color: var(--clf-primary, hsl(330, 85%, 55%));
     font-size: 1.1em; /* Relatif au h3 */
}

.clf-section-content {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
@media (min-width: 768px) {
    .clf-section-content.clf-form-inputs-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); /* Ajusté */
        gap: 25px;
    }
    .clf-section-content.clf-form-inputs-grid .clf-input-group.clf-full-width {
        grid-column: 1 / -1;
    }
    .clf-section-content.clf-form-inputs-grid .clf-input-group {
         margin-bottom: 0; /* Géré par le gap de la grille */
    }
}

/* Champs de Formulaire */
.clf-input-group { margin-bottom: 0; } /* Géré par le gap du parent .clf-section-content */
.clf-input-group.clf-no-margin-bottom { margin-bottom: 0 !important; }

.clf-input-label-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 8px;
}
.clf-input-label {
    display: block;
    font-size: 15px; /* Ajusté */
    font-weight: 500; /* Ajusté */
    color: var(--clf-text-dark, #333);
}
.clf-required {
    color: var(--clf-error, hsl(0, 80%, 60%));
    margin-left: 3px;
    font-weight: bold;
}
.clf-input-value {
    font-size: 15px;
    font-weight: 600;
    color: var(--clf-primary, hsl(330, 85%, 55%));
}
.clf-input-field {
    display: block;
    width: 100%;
    padding: 12px 15px; /* Padding augmenté */
    border: 1px solid var(--clf-border, #ddd);
    border-radius: 8px;
    font-size: 16px;
    color: var(--clf-text-dark, #333);
    box-sizing: border-box;
    transition: border-color var(--clf-transition-normal, 0.3s) ease, box-shadow var(--clf-transition-normal, 0.3s) ease;
    background-color: var(--clf-form-bg, #fff);
}
.clf-input-field::placeholder {
    color: var(--clf-text-gray, #aaa);
    opacity: 0.8;
}
.clf-input-field:focus {
    outline: none;
    border-color: var(--clf-primary, hsl(330, 85%, 55%));
    box-shadow: 0 0 0 3px hsla(var(--clf-primary-h,330), var(--clf-primary-s,85%), var(--clf-primary-l,55%), 0.25);
}
select.clf-input-field { /* Style spécifique pour les selects */
    -webkit-appearance: none; -moz-appearance: none; appearance: none;
    background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22%23555555%22%3E%3Cpath%20d%3D%22M5%208l5%205%205-5z%22%2F%3E%3C%2Fsvg%3E');
    background-repeat: no-repeat;
    background-position: right 15px center;
    padding-right: 40px;
    cursor: pointer;
}
.clf-input-limits {
    display: flex;
    justify-content: space-between;
    font-size: 12px; /* Plus petit */
    color: var(--clf-text-gray, #555);
    margin-top: 6px;
}
.clf-error-message {
    font-size: 13px;
    color: var(--clf-error, hsl(0, 80%, 60%));
    margin-top: 5px;
    font-weight: 500;
}
.clf-error-message.is-hidden { display: none; }


/* Panneau de Simulation */
.clf-simulation-panel {
    background: linear-gradient(135deg, hsla(var(--clf-primary-h,330), var(--clf-primary-s,85%), var(--clf-primary-l,96%), 1) 0%, hsla(var(--clf-primary-h,330), var(--clf-primary-s,85%), var(--clf-primary-l,92%), 1) 100%); /* Dégradé subtil basé sur primaire */
    border-radius: 12px;
    padding: 25px; /* Ajusté */
    box-shadow: inset 0 0 10px rgba(var(--clf-primary-rgb, 230,26,108), 0.05);
    display: flex; flex-direction: column; gap: 20px;
}
.clf-simulation-panel h3 { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.clf-simulation-panel h3 .fas { color: var(--clf-primary, hsl(330, 85%, 55%)); font-size: 1.1em; }

.clf-simulation-result { text-align: center; }
.clf-simulation-label { display: block; font-size: 14px; color: var(--clf-text-gray, #555); margin-bottom: 8px; }
.clf-simulation-amount {
    font-size: 36px; /* Plus grand */
    font-weight: bold;
    color: var(--clf-primary, hsl(330, 85%, 55%));
    margin-bottom: 10px;
    transition: color var(--clf-transition-fast, 0.2s) ease, transform var(--clf-transition-fast, 0.2s) ease;
    min-height: 40px; /* Pour éviter saut de layout */
}
.clf-simulation-amount.is-updating { color: var(--clf-primary-hover, hsl(330, 85%, 45%)); transform: scale(1.03); }
.clf-simulation-tag {
    display: inline-block;
    background-color: hsla(var(--clf-primary-rgb, 230,26,108), 0.1);
    color: var(--clf-primary, hsl(330, 85%, 55%));
    font-size: 13px; font-weight: 600;
    padding: 5px 12px; border-radius: 20px;
}
.clf-simulation-details { display: flex; flex-direction: column; gap: 10px; padding-top: 15px; border-top: 1px solid rgba(var(--clf-primary-rgb, 230,26,108), 0.2); }
.clf-detail-item { display: flex; justify-content: space-between; font-size: 14px; color: var(--clf-text-dark, #333); }
.clf-detail-item .clf-item-label { color: var(--clf-text-gray, #555); }
.clf-detail-item .clf-item-value { font-weight: 600; }

/* Info Block */
.clf-info-block { margin: 20px 0 30px 0; }
.clf-info-text {
    font-size: 14px; color: var(--clf-text-gray, #555); line-height: 1.6;
    position: relative; padding-left: 28px; display: flex; align-items: flex-start;
}
.clf-list-bullet {
    position: absolute; left: 0; top: 0.15em; /* Ajustement vertical */
    width: 20px; height: 20px; display: flex; align-items: center; justify-content: center;
    color: var(--clf-info, hsl(205, 70%, 60%)); font-size: 1.1em;
}

/* Boutons */
.clf-button-group { display: flex; gap: 20px; margin-top: 30px; }
.clf-button-group.clf-single-button { justify-content: flex-end; } /* Bouton Suivant à droite */
.clf-button-group.clf-double-button > * { flex: 1; }

.clf-button-next, .clf-button-prev {
    display: inline-flex; align-items: center; justify-content: center;
    padding: 14px 28px; /* Padding ajusté */
    font-size: 17px; /* Plus grand */
    font-weight: 600; /* Moins gras que bold */
    border: none; border-radius: 8px; cursor: pointer;
    transition: background-color var(--clf-transition-normal, 0.3s) ease, box-shadow var(--clf-transition-normal, 0.3s) ease, transform var(--clf-transition-fast, 0.2s) ease;
    text-decoration: none; text-align: center;
}
.clf-button-next {
    background-color: var(--clf-primary, hsl(330, 85%, 55%)); color: var(--clf-text-light, #fff);
    box-shadow: 0 4px 12px hsla(var(--clf-primary-h,330),var(--clf-primary-s,85%),var(--clf-primary-l,50%), 0.25);
}
.clf-button-next:hover {
    background-color: var(--clf-primary-hover, hsl(330, 85%, 45%));
    box-shadow: 0 6px 18px hsla(var(--clf-primary-h,330),var(--clf-primary-s,85%),var(--clf-primary-l,45%), 0.3);
    transform: translateY(-2px);
}
.clf-button-next:active { transform: translateY(0); box-shadow: 0 3px 10px hsla(var(--clf-primary-h,330),var(--clf-primary-s,85%),var(--clf-primary-l,45%), 0.3); }

.clf-button-prev {
    background-color: var(--clf-secondary, #e0e0e0); color: var(--clf-text-dark, #333);
    border: 1px solid var(--clf-border, #ccc); /* Bordure pour le bouton précédent */
}
.clf-button-prev:hover {
    background-color: var(--clf-secondary-hover, #cccccc);
    border-color: #bbb;
    transform: translateY(-2px);
}
.clf-button-prev:active { transform: translateY(0); }

.clf-button-placeholder { visibility: hidden; flex: 1; } /* Pour aligner les boutons doubles */
.clf-button-next i, .clf-button-prev i { margin: 0 10px; font-size: 0.9em; }


/* Panneau Récapitulatif (Étape 3) */
.clf-summary-panel {
    background: var(--clf-bg-light, #f8f8f8); /* Fond plus clair pour le récap */
    border: 1px solid var(--clf-border, #ddd);
    border-radius: 12px; padding: 25px; margin-bottom: 30px;
}
.clf-summary-panel h3 {
    border-bottom: 1px solid var(--clf-border, #ddd);
    padding-bottom: 15px; margin-bottom: 20px;
    font-size: 19px; /* Ajusté */
}
.clf-summary-panel h3 .fas { font-size: 1em; } /* Relatif au h3 */

.clf-summary-details { display: flex; flex-direction: column; gap: 12px; margin-bottom: 25px; }
.clf-summary-details:last-child { margin-bottom: 0; }
.clf-summary-item {
    display: flex; justify-content: space-between; flex-wrap: wrap; /* Permet le retour à la ligne pour l'adresse */
    font-size: 15px; color: var(--clf-text-dark, #333);
    border-bottom: 1px dotted var(--clf-border, #eee);
    padding-bottom: 12px; margin-bottom: 12px;
}
.clf-summary-item:last-child { border-bottom: none; padding-bottom: 0; margin-bottom: 0; }
.clf-summary-item .clf-item-label { color: var(--clf-text-gray, #555); flex-basis: 40%; padding-right: 10px; }
.clf-summary-item .clf-item-value { font-weight: 500; text-align: right; flex-basis: 58%; word-break: break-word; }
/* Spécifique pour l'adresse pour qu'elle prenne plus de place si besoin */
.clf-summary-item.clf-summary-address-item .clf-item-label { flex-basis: 100%; margin-bottom: 5px; }
.clf-summary-item.clf-summary-address-item .clf-item-value { flex-basis: 100%; text-align: left; }


/* Bloc Message de Sécurité (Étape 3) */
.clf-security-message-block {
    display: flex; align-items: flex-start;
    background-color: hsla(var(--clf-info-h,205), var(--clf-info-s,70%), var(--clf-info-l,95%), 1); /* Fond info très clair */
    border: 1px solid hsla(var(--clf-info-h,205), var(--clf-info-s,70%), var(--clf-info-l,80%), 1);
    border-radius: 10px; padding: 25px; margin-bottom: 30px; gap: 20px;
}
.clf-security-icon { flex-shrink: 0; font-size: 36px; color: var(--clf-info, hsl(205, 70%, 60%)); line-height: 1; }
.clf-security-text h4 { font-size: 18px; font-weight: 600; color: var(--clf-text-dark, #333); margin: 0 0 8px 0; }
.clf-security-text p { font-size: 14px; color: var(--clf-text-gray, #555); line-height: 1.6; margin: 0; }

/* Styles Contact Form 7 (Étape 3) */
.clf-contact-form-7-wrapper { margin-bottom: 25px; }
/* Adaptez ces styles à votre thème CF7 si nécessaire */
.clf-contact-form-7-wrapper .wpcf7-form p { margin-bottom: 15px; }
.clf-contact-form-7-wrapper .wpcf7-form-control-wrap { display: block; }
.clf-contact-form-7-wrapper .wpcf7-list-item { margin: 0 0 8px 0; list-style: none; }
.clf-contact-form-7-wrapper .wpcf7-list-item-label { margin-left: 8px; font-size: 14px; color: var(--clf-text-gray, #555); cursor: pointer; }
.clf-contact-form-7-wrapper input[type="checkbox"] { cursor: pointer; transform: scale(1.1); margin-right: 5px; vertical-align: middle; }
.clf-contact-form-7-wrapper .wpcf7-acceptance { margin-bottom: 20px; }
.clf-contact-form-7-wrapper .wpcf7 input[type="submit"] { /* Style comme .clf-button-next */
    display: inline-flex; align-items: center; justify-content: center;
    padding: 14px 28px; font-size: 17px; font-weight: 600;
    border: none; border-radius: 8px; cursor: pointer;
    background-color: var(--clf-primary, hsl(330, 85%, 55%)); color: var(--clf-text-light, #fff);
    width: 100%; box-sizing: border-box;
    box-shadow: 0 4px 12px hsla(var(--clf-primary-h,330),var(--clf-primary-s,85%),var(--clf-primary-l,50%), 0.25);
    transition: background-color var(--clf-transition-normal, 0.3s) ease, box-shadow var(--clf-transition-normal, 0.3s) ease, transform var(--clf-transition-fast, 0.2s) ease;
}
.clf-contact-form-7-wrapper .wpcf7 input[type="submit"]:hover {
    background-color: var(--clf-primary-hover, hsl(330, 85%, 45%));
    box-shadow: 0 6px 18px hsla(var(--clf-primary-h,330),var(--clf-primary-s,85%),var(--clf-primary-l,45%), 0.3);
    transform: translateY(-2px);
}
.clf-contact-form-7-wrapper .wpcf7-response-output {
    margin-top: 20px; padding: 15px; border-radius: 8px; font-size: 14px; text-align: center; font-weight: 500; line-height: 1.5;
}
.clf-contact-form-7-wrapper .wpcf7-mail-sent-ok { border: 1px solid var(--clf-success, hsl(140,65%,65%)); color: var(--clf-success, hsl(140,65%,65%)); background-color: hsla(var(--clf-success-h,140),var(--clf-success-s,65%),var(--clf-success-l,95%),1); }
.clf-contact-form-7-wrapper .wpcf7-mail-sent-ng,
.clf-contact-form-7-wrapper .wpcf7-validation-errors { border: 1px solid var(--clf-error, hsl(0,80%,60%)); color: var(--clf-error, hsl(0,80%,60%)); background-color: hsla(var(--clf-error-h,0),var(--clf-error-s,80%),var(--clf-error-l,95%),1); }
.clf-contact-form-7-wrapper .wpcf7-spinner { display: none !important; } /* Cache le spinner par défaut de CF7 si vous avez le vôtre */

.clf-text-center-info { text-align: center; font-size: 13px; color: var(--clf-text-gray, #555); margin-bottom: 20px; }

/* Responsive */
@media (max-width: 767.98px) {
    .clf-application-section { padding: 40px 0; }
    .clf-form-container { padding: 0 10px; }
    .clf-form-step { padding: 20px; }
    .clf-step-header h2 { font-size: 22px; }
    .clf-step-header p { font-size: 15px; }
    .clf-step-content { gap: 25px; }
    .clf-loan-simulation-group { flex-direction: column; gap: 25px; }
    .clf-section-content.clf-form-inputs-grid { grid-template-columns: 1fr; gap: 18px; }
    .clf-form-section { padding-bottom: 25px; }
    .clf-form-section h3 { font-size: 18px; margin-bottom: 20px; }
    .clf-input-field { padding: 10px 12px; font-size: 15px; }
    .clf-input-label { font-size: 14px; }
    .clf-simulation-panel { padding: 20px; }
    .clf-simulation-amount { font-size: 30px; min-height: 34px;}
    .clf-button-group { flex-direction: column; gap: 15px; margin-top: 25px; }
    .clf-button-group.clf-double-button > * { flex: auto; }
    .clf-button-placeholder { display: none; }
    .clf-button-next, .clf-button-prev, .clf-contact-form-7-wrapper .wpcf7 input[type="submit"] { width: 100%; padding: 12px 20px; font-size: 16px; }
    .clf-summary-panel { padding: 20px; margin-bottom: 25px; }
    .clf-summary-panel h3 { font-size: 17px; }
    .clf-summary-item { font-size: 14px; flex-direction: column; align-items: flex-start; }
    .clf-summary-item .clf-item-label { margin-bottom: 3px; }
    .clf-summary-item .clf-item-value { text-align: left; font-weight: 500; }
    .clf-security-message-block { flex-direction: column; text-align: center; padding: 20px; gap: 15px; margin-bottom: 25px; }
    .clf-security-icon { font-size: 30px; }
    .clf-security-text h4 { font-size: 17px; }
    .clf-security-text p { font-size: 13px; }
}


/* ... (Variables du root comme avant) ... */

.scf-section {
    padding: 80px 0;
    background-color:#ffffff;
    font-family: var(--font-family-base);
}

.scf-container {
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

.scf-header {
    text-align: center;
    margin-bottom: 50px;
    opacity: 0; transform: translateY(-20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.scf-header.is-visible { opacity: 1; transform: translateY(0); }

.scf-title {
    font-size: 32px;
    font-weight: bold;
    color: var(--text-color-dark, #333);
    margin-bottom: 15px;
    line-height: 1.3;
}
.scf-subtitle {
    font-size: 18px;
    color: var(--text-color-gray, #555);
    line-height: 1.7;
    max-width: 650px;
    margin-left: auto;
    margin-right: auto;
}

.scf-accordion {
    display: flex;
    flex-direction: column;
    gap: 15px;
}

.scf-accordion-item {
    background-color: var(--form-background, #fff);
    border-radius: 10px;
    border: 1px solid var(--border-color, #ddd);
    box-shadow: 0 3px 10px var(--shadow-soft, rgba(0,0,0,0.05));
    overflow: hidden;
    opacity: 0;
    transform: scale(0.95) translateY(20px);
    transition: opacity 0.4s ease-out, transform 0.4s ease-out, box-shadow 0.3s ease;
}
.scf-accordion-item.is-visible {
    opacity: 1;
    transform: scale(1) translateY(0);
}
.scf-accordion-item:hover {
    box-shadow: 0 5px 15px rgba(var(--text-color-dark-rgb, 51,51,51), 0.1);
}

.scf-accordion-trigger {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    padding: 20px 25px;
    text-align: left;
    background-color: transparent;
    border: none;
    cursor: pointer;
    font-size: 16px;
    color: var(--text-color-dark, #333);
    transition: background-color 0.2s ease, color 0.2s ease;
}
.scf-accordion-trigger:hover,
.scf-accordion-trigger[aria-expanded="true"] {
    background-color: rgba(var(--primary-color-rgb, 230, 26, 108), 0.05);
    color: var(--primary-color, hsl(330, 85%, 55%));
}
.scf-question-text {
    margin-right: 15px;
    flex-grow: 1;
}

.scf-icon-toggler-wrapper {
    display: inline-flex; /* Pour que l'icône ne prenne pas toute la largeur restante */
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
}
.scf-icon-toggle {
    font-size: 16px;
    transition: transform 0.3s cubic-bezier(0.68, -0.55, 0.265, 1.55);
}
.scf-accordion-trigger[aria-expanded="true"] .scf-icon-toggle {
    transform: rotate(135deg); /* Transforme le "+" en "x" */
}

.scf-accordion-panel {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.5s cubic-bezier(0.25, 0.8, 0.25, 1),
                opacity 0.4s ease-out 0.1s;
    opacity: 0;
}
.scf-accordion-panel.is-open {
    /* max-height est défini par JS */
    opacity: 1;
}

.scf-answer-content { /* Ajout d'un wrapper pour le padding interne */
    padding: 0px 25px 20px 25px; /* 0 padding top car il est sur .scf-accordion-trigger */
}

.scf-answer-content p {
    font-size: 15px;
    color: var(--text-color-gray, #555);
    line-height: 1.7;
    margin: 0 0 10px 0;
}
.scf-answer-content p:last-child {
    margin-bottom: 0;
}
.scf-answer-content ul {
    list-style: disc;
    margin-left: 20px;
    padding-left: 5px;
    margin-bottom: 10px;
}
.scf-answer-content li {
    margin-bottom: 5px;
}
.scf-link {
    color: var(--primary-color, hsl(330, 85%, 55%));
    font-weight: 500;
    text-decoration: none;
    border-bottom: 1px solid transparent;
    transition: color 0.2s ease, border-color 0.2s ease;
}
.scf-link:hover {
    color: var(--primary-hover-color, hsl(330, 85%, 45%));
    border-bottom-color: var(--primary-hover-color, hsl(330, 85%, 45%));
}

/* Responsive */
@media (max-width: 767px) {
    .scf-section { padding: 60px 0;        margin-left: 8px;
        margin-right: 8px;}
    .scf-header { margin-bottom: 40px; }
    .scf-title { font-size: 26px; }
    .scf-subtitle { font-size: 16px; }
    .scf-accordion-trigger { font-size: 16px; padding: 15px 20px; }
    .scf-answer-content { padding: 0px 20px 15px 20px; }
    .scf-answer-content p { font-size: 14px; }
}


/* simulation */
.quick-loan-simulation-section {
    position: relative;
    padding: 50px 0;
    background: var(--section-bg-accent, linear-gradient(135deg, #2c3e50 0%, #1a252f 100%));
    color: #ffffff; /* Couleur de texte par défaut pour la section */
    font-family: var(--font-family-base);
    overflow: hidden;
}

/* Arrière-plan animé subtil */
.animated-background {
    position: absolute;
    top: 0; left: 0; width: 100%; height: 100%;
    overflow: hidden;
    z-index: 0;
}
.animated-background::before,
.animated-background::after {
    content: '';
    position: absolute;
    border-radius: 50%;
    opacity: 0.05;
    animation: pulseShape 20s infinite alternate ease-in-out;
}
.animated-background::before {
    width: 450px; height: 450px; /* Légèrement plus grand */
    background-color: var(--primary-color);
    top: 5%; left: 2%;
}
.animated-background::after {
    width: 350px; height: 350px;
    background-color: var(--info-color); /* Changé pour varier */
    bottom: 2%; right: 5%;
    animation-delay: -10s;
}
@keyframes pulseShape {
    0%, 100% { transform: scale(0.85) rotate(0deg); opacity: 0.02; }
    50% { transform: scale(1.05) rotate(20deg); opacity: 0.06; }
}

.quick-loan-simulation-section .container {
    position: relative;
    z-index: 1;
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

.simulation-layout-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px;
    align-items: center;
}
@media (min-width: 992px) {
    .simulation-layout-grid {
        grid-template-columns: 1fr 0.9fr;
    }
}

/* Colonne d'introduction */
.simulation-intro-column {
    opacity: 0; transform: translateX(-50px);
    transition: opacity 0.8s ease-out, transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1);
}
.simulation-intro-column.is-visible { opacity: 1; transform: translateX(0);
margin-top: -350px;}

.intro-eyebrow {
    display: inline-block;
    font-size: 15px;
    font-weight: 600;
    color: var(--primary-color);
    margin-bottom: 12px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.intro-title {
    font-size: 38px;
    font-weight: bold;
    color: var(--text-color-light);
    margin-bottom: 20px;
    line-height: 1.25;
}
.intro-description {
    font-size: 17px;
    color: var(--text-color-light-transparent, rgba(255,255,255,0.85));
    line-height: 1.7;
    margin-bottom: 35px;
    max-width: 550px;
}

.intro-key-benefits {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
}
.benefit-item {
    display: flex;
    align-items: center;
    gap: 10px;
    background-color: rgba(var(--text-color-light-rgb, 255,255,255), 0.1);
    padding: 10px 18px;
    border-radius: 25px;
    font-size: 14px;
    font-weight: 500;
    color: var(--text-color-light);
    opacity: 0; transform: translateY(10px);
    transition: opacity 0.4s ease-out, transform 0.4s ease-out;
}
/* Délais d'animation pour les avantages (gérés par JS ou directement en CSS si la classe parent est animée) */
.simulation-intro-column.is-visible .benefit-item { opacity: 1; transform: translateY(0); }
.simulation-intro-column.is-visible .benefit-item:nth-child(1) { transition-delay: 0.4s; }
.simulation-intro-column.is-visible .benefit-item:nth-child(2) { transition-delay: 0.5s; }
.simulation-intro-column.is-visible .benefit-item:nth-child(3) { transition-delay: 0.6s; }

.benefit-item i {
    color: var(--success-color);
    font-size: 1.1em;
}


/* Colonne Calculateur */
.simulation-calculator-column {
    opacity: 0; transform: scale(0.9) rotateY(15deg);
    transform-origin: left center;
    transition: opacity 0.8s ease-out 0.3s, transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1) 0.3s;
}
.simulation-calculator-column.is-visible { opacity: 1; transform: scale(1) rotateY(0deg); }

.calculator-card {
    background-color: var(--form-background);
    color: var(--text-color-dark);
    padding: 35px 40px; /* Padding augmenté */
    border-radius: 20px; /* Plus arrondi */
    box-shadow: 0 20px 50px rgba(0,0,0,0.25); /* Ombre plus forte */
}
.calculator-title {
    font-size: 26px; /* Titre plus grand */
    font-weight: bold;
    color: var(--text-color-dark);
    margin-bottom: 35px;
    text-align: center;
}
.slider-group {
    margin-bottom: 30px;
}
.slider-label {
    display: block;
    font-size: 15px;
    font-weight: 600;
    color: var(--text-color-gray);
    margin-bottom: 12px;
}
.slider-value-wrapper {
    display: flex;
    align-items: baseline;
    justify-content: center;
    margin-bottom: 10px; /* Plus d'espace */
    font-weight: bold;
}
.slider-value-wrapper .currency-symbol,
.slider-value-wrapper .unit-symbol {
    font-size: 18px;
    color: var(--text-color-gray);
    margin: 0 5px;
}
.slider-value-display {
    font-size: 30px; /* Valeur affichée plus grande */
    color: var(--primary-color);
    min-width: 90px;
    text-align: center;
    font-weight: 700; /* Plus gras */
}

/* Styles pour les sliders input range */
.styled-slider {
    -webkit-appearance: none;
    appearance: none;
    width: 100%;
    height: 10px;
    background: var(--slider-track-color, #e0e0e0); /* Couleur de la piste visible */
    border-radius: 5px;
    outline: none;
    cursor: pointer;
    transition: box-shadow 0.2s ease; /* Effet subtil au focus/hover */
}
.styled-slider:hover {
    box-shadow: 0 0 0 6px rgba(var(--primary-color-rgb), 0.1);
}
.styled-slider:focus-visible { /* Pour l'accessibilité au clavier */
    box-shadow: 0 0 0 8px rgba(var(--primary-color-rgb), 0.2);
}

.styled-slider::-webkit-slider-thumb {
    -webkit-appearance: none;
    appearance: none;
    width: 24px;
    height: 24px;
    background: var(--slider-thumb-color, var(--primary-color));
    border-radius: 50%;
    border: 3px solid var(--slider-thumb-border-color, var(--form-background));
    box-shadow: 0 2px 6px rgba(0,0,0,0.3); /* Ombre du pouce plus marquée */
    cursor: pointer;
    margin-top: -7px;
    transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}
.styled-slider:active::-webkit-slider-thumb {
    transform: scale(1.15);
    box-shadow: 0 3px 8px rgba(0,0,0,0.35);
}

.styled-slider::-moz-range-thumb {
    width: 24px;
    height: 24px;
    background: var(--slider-thumb-color, var(--primary-color));
    border-radius: 50%;
    border: 3px solid var(--slider-thumb-border-color, var(--form-background));
    box-shadow: 0 2px 6px rgba(0,0,0,0.3);
    cursor: pointer;
    transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}
.styled-slider:active::-moz-range-thumb {
    transform: scale(1.15);
    box-shadow: 0 3px 8px rgba(0,0,0,0.35);
}

.slider-limits {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: var(--text-color-gray);
    margin-top: 10px; /* Plus d'espace */
}

.simulation-result-box {
    background-color: rgba(var(--primary-color-rgb), 0.08);
    padding: 25px; /* Plus de padding */
    border-radius: 12px; /* Plus arrondi */
    text-align: center;
    margin-bottom: 30px;
    border: 1px solid rgba(var(--primary-color-rgb), 0.2);
}
.result-label {
    display: block;
    font-size: 15px; /* Plus grand */
    color: var(--text-color-gray);
    margin-bottom: 10px;
}
.result-amount-wrapper {
    display: flex;
    align-items: baseline;
    justify-content: center;
    font-weight: bold;
    color: var(--primary-color);
    margin-bottom: 8px;
}
.result-amount-wrapper .currency-symbol {
    font-size: 26px; /* Plus grand */
    margin-right: 5px;
}
#monthly-payment-value.result-amount {
    font-size: 42px; /* Résultat très grand */
    line-height: 1;
    min-height: 42px;
    font-weight: 700;
    transition: color 0.3s ease, transform 0.2s ease-out;
}
#monthly-payment-value.calculating {
    color: var(--text-color-gray);
    transform: scale(0.95); /* Léger effet pendant le calcul */
}

.result-apr {
    font-size: 14px; /* Plus grand */
    color: var(--text-color-gray);
    font-weight: 500;
}

.btn.btn-submit-simulation {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 16px 25px; /* Padding augmenté */
    font-size: 18px; /* Plus grand */
    font-weight: bold;
    border-radius: 10px; /* Plus arrondi */
    text-decoration: none;
    background-color: var(--primary-color);
    color: #ffffff;
    border: none;
    transition: background-color var(--transition-speed-normal) ease, transform var(--transition-speed-fast) ease, box-shadow 0.2s ease;
    box-shadow: 0 4px 10px rgba(var(--primary-color-rgb), 0.2);
}
.btn.btn-submit-simulation:hover {
    background-color: var(--primary-hover-color);
    transform: translateY(-3px) scale(1.01);
    box-shadow: 0 6px 15px rgba(var(--primary-color-rgb), 0.3);
}
.btn.btn-submit-simulation i {
    margin-left: 10px;
    transition: transform 0.3s ease;
}
.btn.btn-submit-simulation:hover i {
    transform: translateX(4px);
}

/* Mentions légales sous le bouton DANS la carte calculateur */
.calculator-fine-print {
    margin-top: 25px;
    padding-top: 20px;
    border-top: 1px solid var(--border-color);
    font-size: 11px;
    line-height: 1.5;
    color: var(--text-color-gray);
    text-align: left;
    /* Animation */
    opacity: 0;
    transform: translateY(10px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
    /* Le délai sera géré par JS une fois le calculateur visible */
}
.calculator-card.is-interactive .calculator-fine-print {
    opacity: 1;
    transform: translateY(0);
}

.calculator-fine-print p {
    margin-bottom: 8px;
}
.calculator-fine-print p:last-child {
    margin-bottom: 0;
}
.calculator-fine-print strong {
    font-weight: 600;
    color: var(--text-color-dark);
}

/* Responsive */
@media (max-width: 991px) {
    .simulation-intro-column { text-align: center; margin-bottom: 40px; }
    .intro-description { margin-left:auto; margin-right: auto; }
    .intro-key-benefits { justify-content: center; }
}
@media (max-width: 767px) {
    .quick-loan-simulation-section { padding: 370px 0; }
    .intro-title { font-size: 30px; }
    .intro-description { font-size: 16px; }
    .calculator-card { padding: 25px 20px;margin-left: 8px;
        margin-right: 8px; }
    .calculator-title { font-size: 22px; }
    .slider-value-display { font-size: 26px; }
    #monthly-payment-value.result-amount { font-size: 36px; min-height: 36px; }
    .calculator-fine-print { font-size: 10px; margin-top: 20px; padding-top: 15px; }
}


/* éligibilité */


.eligibility-section {
    padding: 80px 0;
    background-color: var(--section-bg-color-dark);
    color:#ffffff; /* Texte par défaut légèrement transparent */
    font-family: var(--font-family-base);
    overflow-x: hidden;
}

.eligibility-section .container {
    max-width: 1200px; /* Légèrement plus large */
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

/* Optionnel: En-tête global pour la section */
.eligibility-section .section-header-centered {
    text-align: center;
    margin-bottom: 60px;
    opacity: 0; transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.eligibility-section .section-header-centered.is-visible { opacity: 1; transform: translateY(0); }
.eligibility-section .section-main-title { font-size: 36px; font-weight: bold; color: var(--text-color-light); margin-bottom: 15px; line-height: 1.2; }
.eligibility-section .section-main-subtitle { font-size: 18px; color: var(--text-color-light-transparent); max-width: 800px; margin: 0 auto; line-height: 1.6; }


.eligibility-grid-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 60px; /* Espace plus grand entre les colonnes */
}

@media (min-width: 992px) {
    .eligibility-grid-layout {
        grid-template-columns: 1fr 1fr; /* Colonnes de taille égale */
    }
}

/* Style commun pour les en-têtes de colonne */
.column-header {
    margin-bottom: 35px;
    text-align: center; /* Centrer l'en-tête de colonne */
    opacity: 0; transform: translateY(20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
.column-header.is-visible { opacity: 1; transform: translateY(0); }

.column-header .header-icon {
    font-size: 32px;
    margin-bottom: 15px;
    display: inline-block; /* Pour centrer */
    padding: 15px;
    border-radius: 50%;
    background-color: rgba(255,255,255, 0.05); /* Fond subtil pour l'icône */
    transition: transform 0.3s ease-out;
}
.column-header:hover .header-icon {
    transform: scale(1.1) rotate(-5deg);
}
.column-header .icon-criteria { color: var(--info-color); } /* Bleu pour critères */
.column-header .icon-acceptance { color: var(--success-color); } /* Vert pour acceptation */


.column-header h3 {
    font-size: 26px; /* Taille du titre de colonne */
    font-weight: bold;
    color: var(--text-color-light);
    margin-bottom: 10px;
}
.column-header p {
    font-size: 16px;
    line-height: 1.6;
    max-width: 450px; /* Limiter la largeur du paragraphe */
    margin: 0 auto; /* Centrer le paragraphe */
}


/* Colonne Critères */
.criteria-column {
    /* Styles spécifiques à la colonne si besoin */
}
.criteria-cards-wrapper {
    display: grid;
    gap: 20px;
}

.criterion-card {
    display: flex;
    align-items: center;
    gap: 20px;
    background-color: rgba(255, 255, 255, 0.05); /* Fond carte plus subtil */
    padding: 20px;
    border-radius: 10px;
    border: 1px solid rgba(255, 255, 255, 0.1);
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
    /* Animation */
    opacity: 0;
    transform: scale(0.9) rotateX(-20deg);
    transform-origin: top center;
    transition: opacity 0.5s ease-out, transform 0.5s cubic-bezier(0.175, 0.885, 0.32, 1.275), box-shadow 0.3s ease;
}
.criterion-card.is-visible {
    opacity: 1;
    transform: scale(1) rotateX(0deg);
}
.criterion-card:hover {
    transform: translateY(-5px) scale(1.02) rotateX(0deg);
    box-shadow: 0 8px 25px rgba(0,0,0,0.15);
    background-color: rgba(255, 255, 255, 0.08);
}

.criterion-icon-wrapper {
    width: 45px;
    height: 45px;
    border-radius: 12px; /* Squircle */
    background-color: rgba(255,255,255,0.1); /* Fond icône plus clair */
    color: var(--primary-color); /* Couleur icône par défaut */
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 18px;
    transition: transform 0.3s ease, color 0.3s ease;
}
.criterion-card:hover .criterion-icon-wrapper {
    transform: scale(1.2) rotate(10deg);
}
/* Couleurs spécifiques pour icônes (optionnel, peut rester la couleur primaire) */
.criterion-card:nth-child(1) .criterion-icon-wrapper { color: var(--primary-color); }
.criterion-card:nth-child(2) .criterion-icon-wrapper { color: var(--info-color); }
.criterion-card:nth-child(3) .criterion-icon-wrapper { color: var(--success-color); }
.criterion-card:nth-child(4) .criterion-icon-wrapper { color: var(--accent-gold-color); }


.criterion-text h4 {
    font-size: 17px;
    font-weight: 600;
    color: var(--text-color-light);
    margin: 0 0 4px 0;
}
.criterion-text p {
    font-size: 14px;
    line-height: 1.5;
    margin: 0; /* color: var(--text-color-light-transparent) hérité */
}

.eligibility-note-block {
    margin-top: 30px;
    padding: 20px;
    background-color: rgba(var(--accent-gold-color-rgb, 230, 172, 26), 0.1);
    border-radius: 8px;
    display: flex;
    align-items: flex-start;
    gap: 15px;
    border: 1px solid rgba(var(--accent-gold-color-rgb, 230, 172, 26), 0.3);
    /* Animation */
    opacity: 0; transform: translateY(20px);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
.eligibility-note-block.is-visible { opacity: 1; transform: translateY(0); }

.eligibility-note-block .note-icon {
    font-size: 20px;
    color: var(--accent-gold-color);
    margin-top: 3px;
}
.eligibility-note-block p { font-size: 14px; line-height: 1.6; color: var(--text-color-light); } /* Texte plus visible */
.eligibility-note-block p strong { font-weight: 600; }


/* Colonne Taux d'Acceptation */
.acceptance-column {
    /* Styles spécifiques à la colonne si besoin */
}
.progress-bars-wrapper {
    display: grid;
    gap: 25px; /* Espace entre les barres */
    margin-bottom: 40px;
}

.progress-item {
    /* Animation */
    opacity: 0; transform: translateX(30px);
    transition: opacity 0.5s ease-out, transform 0.5s cubic-bezier(0.215, 0.610, 0.355, 1);
}
.progress-item.is-visible { opacity: 1; transform: translateX(0); }

.progress-label {
    display: flex;
    justify-content: space-between;
    margin-bottom: 8px;
    font-size: 15px;
}
.progress-label span:first-child { font-weight: 500; color: var(--text-color-light); }
.progress-label .progress-value { font-weight: bold; color: var(--success-color); }

.progress-bar-track {
    height: 10px; /* Hauteur barre augmentée */
    background-color: rgba(255,255,255, 0.15); /* Fond de piste plus visible */
    border-radius: 5px;
    overflow: hidden;
}
.progress-bar-fill {
    height: 100%;
    background-color: var(--success-color); /* Couleur de remplissage */
    border-radius: 5px;
    width: 0; /* Largeur initiale pour animation JS */
    transition: width 1.2s cubic-bezier(0.23, 1, 0.32, 1); /* Transition douce pour le remplissage */
}

.eligibility-cta-block {
    margin-top: 30px;
    padding: 25px;
    background-color: rgba(255,255,255,0.05);
    border-radius: 10px;
    text-align: center;
    border: 1px solid rgba(255,255,255,0.1);
    /* Animation */
    opacity: 0; transform: scale(0.95);
    transition: opacity 0.5s ease-out, transform 0.5s ease-out;
}
.eligibility-cta-block.is-visible { opacity: 1; transform: scale(1); }


.eligibility-cta-block .cta-icon {
    font-size: 28px;
    color: var(--primary-color);
    margin-bottom: 10px;
}
.eligibility-cta-block p {
    font-size: 16px;
    color: var(--text-color-light);
    margin-bottom: 20px;
}
.btn.btn-eligibility-check {
    display: inline-block;
    padding: 12px 30px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 8px;
    text-decoration: none;
    background-color: var(--primary-color);
    color: var(--text-color-light);
    border: none;
    transition: background-color var(--transition-speed-normal) ease, transform var(--transition-speed-fast) ease;
}
.btn.btn-eligibility-check:hover {
    background-color: var(--primary-hover-color);
    transform: translateY(-3px);
}


/* Responsive */
@media (max-width: 991px) { /* Avant que ça passe à 1 colonne */
    .column-header h3 { font-size: 24px; }
    .column-header p { font-size: 15px; }
}
@media (max-width: 767px) {
    .eligibility-section { padding: 60px 0;         margin-left: 8px;
        margin-right: 8px;}
    .eligibility-section .section-main-title { font-size: 28px; }
    .eligibility-section .section-main-subtitle { font-size: 16px; }
    .column-header h3 { font-size: 22px; }
    .column-header p { font-size: 15px; }
    .criterion-card { padding: 15px; gap: 15px; }
    .criterion-icon-wrapper { width: 40px; height: 40px; font-size: 16px; }
    .criterion-text h4 { font-size: 16px; }
    .criterion-text p { font-size: 13px; }
    .progress-label { font-size: 14px; }
}

/* ... document ... */

.documents-section {
    padding: 80px 0;
    background-color: var(--background-light);
    font-family: var(--font-family-base);
    overflow-x: hidden; /* Important pour éviter les barres de défilement dues aux animations */
}

.documents-section .container {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

/* --- En-tête Centré --- */
.section-header-docs-centered {
    text-align: center;
    margin-bottom: 60px;
    /* Styles initiaux pour l'animation */
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out;
}
.section-header-docs-centered.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.docs-eyebrow {
    display: inline-block;
    font-size: 14px;
    font-weight: 600;
    color: var(--primary-color);
    margin-bottom: 10px;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}
.docs-main-title {
    font-size: 34px; /* Ajusté pour un titre centré */
    font-weight: bold;
    color: var(--text-color-dark);
    margin-bottom: 15px;
    line-height: 1.3;
}
.docs-main-subtitle {
    font-size: 18px; /* Ajusté */
    color: var(--text-color-gray);
    line-height: 1.7;
    max-width: 700px; /* Limiter la largeur */
    margin-left: auto;
    margin-right: auto;
}

.documents-grid-layout {
    display: grid;
    grid-template-columns: 1fr;
    gap: 50px;
    align-items: flex-start; /* Changé pour flex-start pour un meilleur alignement si hauteurs différentes */
}

@media (min-width: 992px) {
    .documents-grid-layout {
        grid-template-columns: 1fr 0.8fr;
        align-items: center; /* Peut revenir à center si les hauteurs sont gérées */
    }
}

.documents-info-column {
    /* Potentiellement pour l'animation de la colonne entière */
}

.document-cards-wrapper {
    display: grid;
    gap: 20px;
    margin-bottom: 40px;
}

.document-card {
    display: flex;
    align-items: center; /* Centrer verticalement contenu carte */
    gap: 20px;
    background-color: var(--form-background);
    padding: 25px; /* Padding augmenté */
    border-radius: 12px; /* Plus arrondi */
    box-shadow: 0 6px 15px var(--shadow-soft);
    border: 1px solid var(--border-color);
    /* Styles initiaux pour l'animation */
    opacity: 0;
    transform: translateX(-30px) scale(0.95);
    transition: opacity 0.5s ease-out, transform 0.5s cubic-bezier(0.215, 0.610, 0.355, 1), box-shadow var(--transition-speed-normal) ease;
}
.document-card.is-visible {
    opacity: 1;
    transform: translateX(0) scale(1);
}
.document-card:hover {
    transform: translateY(-6px) scale(1.03); /* Ajusté pour ne pas interférer avec le translateX initial */
    box-shadow: 0 8px 25px var(--shadow-medium);
}


.document-card-icon-wrapper {
    width: 55px; /* Légèrement plus grand */
    height: 55px;
    border-radius: 16px; /* Squircle */
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 22px;
    transition: transform 0.4s cubic-bezier(0.34, 1.56, 0.64, 1), background-color 0.3s ease; /* Ajout transition background */
}
.document-card:hover .document-card-icon-wrapper {
    transform: rotate(-15deg) scale(1.2);
}
/* Effet de surbrillance sur l'icône au survol de la carte */
.document-card.icon-bg-primary:hover .document-card-icon-wrapper { background-color: rgba(var(--primary-color-rgb), 0.2); }
.document-card.icon-bg-info:hover .document-card-icon-wrapper    { background-color: rgba(var(--info-color-rgb), 0.2); }
.document-card.icon-bg-success:hover .document-card-icon-wrapper  { background-color: rgba(var(--success-color-rgb), 0.2); }

.document-card-icon-wrapper.icon-bg-primary { background-color: rgba(var(--primary-color-rgb), 0.1); color: var(--primary-color); }
.document-card-icon-wrapper.icon-bg-info    { background-color: rgba(var(--info-color-rgb), 0.1); color: var(--info-color); }
.document-card-icon-wrapper.icon-bg-success  { background-color: rgba(var(--success-color-rgb), 0.1); color: var(--success-color); }


.document-card-text h4 {
    font-size: 18px;
    font-weight: 600;
    color: var(--text-color-dark);
    margin: 0 0 5px 0;
}
.document-card-text p {
    font-size: 15px;
    color: var(--text-color-gray);
    line-height: 1.5;
    margin: 0;
}

.documents-note-block {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    padding: 20px;
    background-color: rgba(var(--accent-gold-color-rgb, 230, 172, 26), 0.07);
    border-left: 5px solid var(--accent-gold-color);
    border-radius: 0 8px 8px 0;
    /* Styles initiaux pour l'animation */
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease-out 0.3s, transform 0.5s ease-out 0.3s; /* Délai après les cartes */
}
.documents-note-block.is-visible {
    opacity: 1;
    transform: translateY(0);
}

.note-icon-wrapper { font-size: 22px; color: var(--accent-gold-color); margin-top: 2px; flex-shrink: 0; }
.note-text p { font-size: 14px; color: var(--text-color-gray); line-height: 1.6; margin: 0; }
.note-text p strong { color: var(--text-color-dark); font-weight: 600; }

/* Colonne Image */
.documents-image-column {
    position: relative;
    /* Styles initiaux pour l'animation */
    opacity: 0;
    transform: translateX(30px) scale(0.95);
    transition: opacity 0.6s ease-out 0.2s, transform 0.6s cubic-bezier(0.215, 0.610, 0.355, 1) 0.2s; /* Délai pour apparaître après le header */
}
.documents-image-column.is-visible {
    opacity: 1;
    transform: translateX(0) scale(1);
}

.image-container-styled {
    position: relative;
    border-radius: 16px; /* Plus arrondi */
    overflow: hidden;
    box-shadow: 0 20px 50px rgba(0,0,0,0.2); /* Ombre plus prononcée */
    min-height: 480px; /* Hauteur augmentée */
    display: flex;
    align-items: flex-end;
}
.image-container-styled img {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.8s cubic-bezier(0.165, 0.84, 0.44, 1); /* Transition plus longue et smooth */
    transform: scale(1.1); /* Image initialement zoomée pour effet de "révélation" */
}
.documents-image-column.is-visible .image-container-styled img {
    transform: scale(1);
}
/* Effet de parallaxe subtil au survol de la section (optionnel) */
.documents-section:hover .image-container-styled img {
    transform: scale(1.03) translateY(-5px);
}


.image-overlay-content {
    position: relative;
    z-index: 2;
    padding: 35px; /* Padding augmenté */
    width: 100%;
    background: linear-gradient(to top, rgba(var(--text-color-dark-rgb, 51, 51, 51), 0.9) 0%, rgba(var(--text-color-dark-rgb, 51, 51, 51), 0.6) 50%, transparent 100%);
    color: var(--text-color-light);
    text-align: center;
    /* Transition pour l'ensemble du bloc overlay si besoin */
}

/* Styles initiaux pour les éléments de l'overlay */
.image-overlay-content .overlay-icon-wrapper,
.image-overlay-content h3,
.image-overlay-content p,
.image-overlay-content .security-badge {
    opacity: 0;
    transform: translateY(15px);
    transition-property: opacity, transform;
    transition-duration: 0.5s;
    transition-timing-function: ease-out;
}

/* Styles finaux (déclenchés par JS) */
.documents-image-column.is-visible .image-overlay-content .overlay-icon-wrapper { opacity: 1; transform: translateY(0); transition-delay: 0.5s; }
.documents-image-column.is-visible .image-overlay-content h3 { opacity: 1; transform: translateY(0); transition-delay: 0.6s; }
.documents-image-column.is-visible .image-overlay-content p { opacity: 1; transform: translateY(0); transition-delay: 0.7s; }
.documents-image-column.is-visible .image-overlay-content .security-badge { opacity: 1; transform: translateY(0); transition-delay: 0.8s; }


.overlay-icon-wrapper {
    font-size: 40px; /* Plus grand */
    color: var(--accent-gold-color);
    margin-bottom: 15px;
}
.image-overlay-content h3 { font-size: 24px; font-weight: bold; margin-bottom: 12px; line-height: 1.3;color:#ffffff;}
.image-overlay-content p { font-size: 15px; color: var(--text-color-light-transparent, rgba(255,255,255,0.85)); line-height: 1.6; margin-bottom: 25px; }
.security-badge { display: inline-flex; align-items: center; gap: 8px; padding: 10px 18px; background-color: rgba(255,255,255,0.15); border-radius: 25px; font-size: 14px; font-weight: 500;color:#ffffff; }
.security-badge i { color: var(--success-color); }


/* Responsive */
@media (max-width: 991px) {
    .documents-image-column { margin-top: 40px; }
    .image-container-styled { min-height: 400px; }
}
@media (max-width: 767px) {
    .documents-section { padding: 60px 0;         margin-left: 8px;
        margin-right: 8px;}
    .section-header-docs-centered { margin-bottom: 40px; }
    .docs-main-title { font-size: 28px; }
    .docs-main-subtitle { font-size: 16px; }
    .document-card { flex-direction: column; align-items: center; text-align: center; padding: 20px; }
    .document-card-icon-wrapper { margin-bottom: 15px; width: 50px; height: 50px; font-size: 20px; }
    .document-card-text h4 { font-size: 17px; }
    .document-card-text p { font-size: 14px; }
    .documents-note-block { flex-direction: column; align-items: center; text-align: center; padding: 15px; }
    .note-icon-wrapper { margin-bottom: 10px; }
    .image-overlay-content { padding: 25px; }
    .image-overlay-content h3 { font-size: 20px; }
    .image-overlay-content p { font-size: 14px; }
    .security-badge { padding: 8px 15px; font-size: 13px;}
}


/* ... (Variables du root comme avant) ...banner */

.cta-banner-section {
    position: relative;
    min-height: 450px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 60px 0;
    overflow: hidden;
    color: var(--form-background);
    font-family: var(--font-family-base);
    opacity: 0; /* Initialement invisible pour l'animation d'entrée globale */
    transition: opacity 0.5s ease-out;
}
.cta-banner-section.is-visible {
    opacity: 1;
}


.cta-banner-background-image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 1;
    overflow: hidden; /* Important pour le scale de l'image */
}

.cta-banner-background-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
    filter: brightness(0.7) contrast(0.9);
    transform: scale(1.2) rotate(2deg); /* Zoom initial plus important et légère rotation */
    opacity: 0;
    transition: transform 1.5s cubic-bezier(0.25, 0.46, 0.45, 0.94), opacity 1s ease-out;
}
.cta-banner-section.is-visible .cta-banner-background-image img {
    transform: scale(1.05) rotate(0deg); /* Zoom final plus subtil et droit */
    opacity: 1;
}


.cta-banner-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(45deg, rgba(var(--primary-color-rgb, 230, 26, 108), 0.55) 0%, rgba(0,0,0,0.6) 70%);
    z-index: 2;
    opacity: 0;
    transition: opacity 1s ease-in-out 0.3s; /* Délai pour apparaître après l'image */
}
.cta-banner-section.is-visible .cta-banner-overlay {
    opacity: 1;
}

.cta-banner-content-wrapper {
    position: relative;
    z-index: 3;
    width: 100%;
}

.cta-banner-content {
    max-width: 700px;
    margin-left: auto;
    margin-right: auto;
}

/* Styles pour les éléments de contenu avant animation */
.js-banner-eyebrow,
.js-banner-title,
.js-banner-subtitle,
.js-banner-cta {
    opacity: 0;
    transform: translateY(30px); /* Départ un peu plus bas */
    transition-property: opacity, transform;
    transition-duration: 0.8s;
    transition-timing-function: cubic-bezier(0.23, 1, 0.32, 1); /* Easing avec rebond */
}

/* Styles pour les éléments de contenu après animation (définis par JS via classe) */
.cta-banner-section.is-visible .js-banner-eyebrow,
.cta-banner-section.is-visible .js-banner-title,
.cta-banner-section.is-visible .js-banner-subtitle,
.cta-banner-section.is-visible .js-banner-cta {
    opacity: 1;
    transform: translateY(0);
}

/* Délais de transition spécifiques pour l'apparition séquentielle */
.cta-banner-section.is-visible .js-banner-eyebrow { transition-delay: 0.5s; }
.cta-banner-section.is-visible .js-banner-title   { transition-delay: 0.7s; }
.cta-banner-section.is-visible .js-banner-subtitle{ transition-delay: 0.9s; }
.cta-banner-section.is-visible .js-banner-cta     { transition-delay: 1.1s; }


/* Styles de base pour eyebrow, title, subtitle, cta (identiques à avant, mais vérifiez les transitions) */
.cta-banner-eyebrow {
    display: inline-block;
    font-size: 15px;
    font-weight: 500;
    color: var(--text-color-light-transparent);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 15px;
    padding: 5px 15px;
    background-color: rgba(255,255,255,0.1);
    border-radius: 20px;
}

.cta-banner-title {
    font-size: 42px;
    font-weight: bold;
    color: var(--text-color-light);
    margin-bottom: 20px;
    line-height: 1.2;
    text-shadow: 1px 1px 3px rgba(0,0,0,0.3);
}

.cta-banner-subtitle {
    font-size: 18px;
    color: var(--text-color-light-transparent);
    line-height: 1.7;
    margin-bottom: 35px;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.btn.btn-cta-banner {
    display: inline-flex;
    align-items: center;
    padding: 16px 40px;
    font-size: 18px;
    font-weight: bold;
    border-radius: 8px;
    text-decoration: none;
    background-color: var(--accent-cta-color, var(--primary-color));
    color: var(--accent-cta-text-color, var(--text-color-light));
    border: none;
    /* La transition pour le hover est séparée de celle de l'apparition */
    transition: background-color var(--transition-speed-normal) ease,
                transform var(--transition-speed-fast) ease, /* Uniquement pour le hover scale/translateY */
                box-shadow var(--transition-speed-normal) ease;
    box-shadow: 0 5px 15px rgba(0,0,0, 0.2);
}

.btn.btn-cta-banner:hover {
    background-color: var(--accent-cta-hover-color, var(--primary-hover-color));
    transform: translateY(-4px) scale(1.03) !important; /* !important pour surcharger le translateY de l'animation d'entrée */
    box-shadow: 0 8px 25px rgba(0,0,0, 0.25);
}

.btn.btn-cta-banner i {
    margin-left: 12px;
    font-size: 1.1em;
    transition: transform var(--transition-speed-normal) cubic-bezier(0.175, 0.885, 0.32, 1.275);
}

.btn.btn-cta-banner:hover i {
    transform: translateX(6px) rotate(10deg);
}

/* Responsive (identique à avant) */
@media (max-width: 767px) {
    .cta-banner-section { min-height: 400px; padding: 40px 0; }
    .cta-banner-title { font-size: 32px; }
    .cta-banner-subtitle { font-size: 16px; margin-bottom: 30px; }
    .btn.btn-cta-banner { padding: 14px 30px; font-size: 16px; }
}
@media (max-width: 480px) {
    .cta-banner-title { font-size: 26px; }
    .cta-banner-eyebrow { font-size: 13px; padding: 4px 12px; }
}

.hypothecaire-feature-section {
    padding: 80px 0;
    background-color: var(--form-background);
    font-family: var(--font-family-base);
    overflow-x: hidden; /* Éviter les barres de défilement horizontales dues aux animations */
}

.hypothecaire-feature-section .container {
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

.hypothecaire-main-header {
    text-align: center;
    margin-bottom: 60px;
}

.hypothecaire-main-header .section-title {
    font-size: 36px;
    font-weight: bold;
    color: var(--text-color-dark);
    margin-bottom: 15px;
    line-height: 1.2;
}

.hypothecaire-main-header .section-subtitle {
    font-size: 18px;
    color: var(--text-color-gray);
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.6;
}

.hypothecaire-content-wrapper {
    display: flex;
    align-items: center;
    gap: 40px;
}

.hypothecaire-text-column {
    flex: 1 1 55%; /* Prend un peu plus de place */
    padding-right: 30px; /* Espace avant l'image */
}

.hypothecaire-image-column {
    flex: 1 1 45%;
    position: relative; /* Pour les formes décoratives */
}

.hypothecaire-intro-block {
    margin-bottom: 40px;
}

.hypothecaire-eyebrow {
    display: inline-block;
    font-size: 14px;
    font-weight: 600;
    color: var(--primary-color);
    text-transform: uppercase;
    letter-spacing: 0.5px;
    margin-bottom: 10px;
    position: relative;
    padding-left: 25px;
}
.hypothecaire-eyebrow::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 15px;
    height: 3px;
    background-color: var(--primary-color);
    border-radius: 3px;
}


.hypothecaire-main-heading {
    font-size: 32px;
    font-weight: bold;
    color: var(--text-color-dark);
    margin-bottom: 20px;
    line-height: 1.3;
}

.hypothecaire-main-description {
    font-size: 17px;
    color: var(--text-color-gray);
    line-height: 1.7;
    margin-bottom: 30px;
}

.hypothecaire-key-features {
    display: flex;
    flex-direction: column;
    gap: 25px;
    margin-bottom: 40px;
}

.feature-highlight-item {
    display: flex;
    align-items: flex-start;
    gap: 20px;
    background-color: var(--form-background);
    padding: 20px;
    border-radius: 10px;
    box-shadow: 0 5px 15px rgba(var(--primary-color-rgb, 230, 26, 108), 0.05); /* Ombre subtile colorée */
    transition: transform var(--transition-speed-normal) ease, box-shadow var(--transition-speed-normal) ease;
}
.feature-highlight-item:hover {
    transform: translateY(-5px) scale(1.02);
    box-shadow: 0 8px 25px rgba(var(--primary-color-rgb, 230, 26, 108), 0.1);
}

.feature-icon-accent {
    width: 50px;
    height: 50px;
    border-radius: 12px; /* Squircle */
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 20px;
    transition: transform 0.3s ease-out;
}
.feature-highlight-item:hover .feature-icon-accent {
    transform: rotate(-10deg) scale(1.1);
}


/* Utilisation de variables RGB pour hsla */
.feature-icon-accent.icon-bg-primary { background-color: rgba(var(--primary-color-rgb, 230, 26, 108), 0.1); color: var(--primary-color); }
.feature-icon-accent.icon-bg-info    { background-color: rgba(var(--info-color-rgb, 77, 158, 224), 0.1); color: var(--info-color); }
.feature-icon-accent.icon-bg-success  { background-color: rgba(var(--success-color-rgb, 105, 209, 143), 0.1); color: var(--success-color); }


.feature-details h4 {
    font-size: 18px;
    font-weight: 600;
    color: var(--text-color-dark);
    margin: 0 0 8px 0;
}

.feature-details p {
    font-size: 15px;
    color: var(--text-color-gray);
    line-height: 1.6;
    margin: 0;
}

.btn.btn-hypothecaire-main {
    display: inline-flex;
    align-items: center;
    padding: 15px 35px;
    font-size: 17px;
    font-weight: bold;
    border-radius: 8px;
    text-decoration: none;
    background-color: var(--primary-color);
    color: var(--form-background);
    border: none;
    transition: background-color var(--transition-speed-normal) ease, transform var(--transition-speed-normal) ease, box-shadow var(--transition-speed-normal) ease;
    box-shadow: 0 5px 15px rgba(var(--primary-color-rgb, 230, 26, 108), 0.25);
}

.btn.btn-hypothecaire-main:hover {
    background-color: var(--primary-hover-color);
    transform: translateY(-4px) scale(1.02);
    box-shadow: 0 8px 20px rgba(var(--primary-color-rgb, 230, 26, 108), 0.35);
}

.btn.btn-hypothecaire-main i {
    margin-left: 10px;
    transition: transform var(--transition-speed-normal) ease;
}
.btn.btn-hypothecaire-main:hover i {
    transform: translateX(5px);
}

/* Colonne Image */
.image-container-outer {
    position: relative;
    padding: 20px; /* Espace pour les formes décoratives */
}

.image-wrapper-inner {
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 15px 40px var(--shadow-medium);
    transform: perspective(1000px) rotateY(-5deg) rotateX(2deg); /* Légère perspective */
    transition: transform var(--transition-speed-long) cubic-bezier(0.165, 0.84, 0.44, 1);
}
.hypothecaire-content-wrapper:hover .image-wrapper-inner {
    transform: perspective(1200px) rotateY(0deg) rotateX(0deg) scale(1.03);
}


.image-wrapper-inner img {
    display: block;
    width: 100%;
    height: auto;
    max-height: 500px; /* Limiter la hauteur de l'image */
    object-fit: cover;
}

.image-decoration-shape {
    position: absolute;
    border-radius: 8px;
    opacity: 0.7;
    z-index: -1; /* Derrière l'image wrapper */
    transition: transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1); /* Effet élastique */
}

.image-decoration-shape.shape-1 {
    width: 150px;
    height: 150px;
    background-color: rgba(var(--primary-color-rgb, 230, 26, 108), 0.2);
    top: -30px;
    left: -40px;
    transform: rotate(-30deg);
}

.image-decoration-shape.shape-2 {
    width: 100px;
    height: 100px;
    background-color: rgba(var(--info-color-rgb, 77, 158, 224), 0.2);
    bottom: -20px;
    right: -30px;
    transform: rotate(20deg);
}
.hypothecaire-content-wrapper:hover .image-decoration-shape.shape-1 {
    transform: rotate(-40deg) scale(1.1) translateX(-10px);
}
.hypothecaire-content-wrapper:hover .image-decoration-shape.shape-2 {
    transform: rotate(30deg) scale(1.1) translateX(10px);
}


/* Responsive */
@media (max-width: 992px) {
    .hypothecaire-content-wrapper {
        flex-direction: column-reverse; /* Image en haut sur mobile/tablette */
        gap: 30px;
    }
    .hypothecaire-text-column {
        padding-right: 0;
        text-align: center;
    }
    .hypothecaire-eyebrow {
        margin-left: auto;
        margin-right: auto;
        padding-left: 0; /* Pas besoin de la ligne avant si centré */
    }
    .hypothecaire-eyebrow::before {
        display: none;
    }
    .feature-highlight-item {
        text-align: left; /* Garder le texte des features aligné à gauche */
        flex-direction: column; /* Empiler icône et texte sur mobile */
        align-items: center;
        text-align: center;
    }
    .feature-icon-accent {
        margin-bottom: 10px;
    }
    .btn.btn-hypothecaire-main {
        margin-left: auto;
        margin-right: auto;
    }
    .image-wrapper-inner {
         transform: perspective(800px) rotateY(0deg) rotateX(0deg); /* Moins de perspective sur mobile */
    }
}

@media (max-width: 767px) {
    .hypothecaire-feature-section { padding: 60px 0; }
    .hypothecaire-main-header { margin-bottom: 40px; }
    .hypothecaire-main-header .section-title { font-size: 28px; }
    .hypothecaire-main-header .section-subtitle { font-size: 16px; }

    .hypothecaire-main-heading { font-size: 26px; }
    .hypothecaire-main-description { font-size: 16px; }
    .feature-details h4 { font-size: 17px; }
    .feature-details p { font-size: 14px; }

    .image-container-outer { padding: 10px; }
    .image-decoration-shape.shape-1 { width: 100px; height: 100px; top: -20px; left: -20px;}
    .image-decoration-shape.shape-2 { width: 70px; height: 70px; bottom: -10px; right: -15px;}
}



/* --- Section Financement Innovateurs --- */
.innovators-financing-section {
    padding: 80px 0;
    background-color: var(--section-bg-color-dark); /* Fond sombre pour la section */
    color: var(--section-text-color-light);
    font-family: var(--font-family-base);
    overflow: hidden; /* Pour les effets de "slide-in" des cartes */
}

.innovators-financing-section .container {
    max-width: 1100px;
    margin-left: auto;
    margin-right: auto;
    padding-left: 15px;
    padding-right: 15px;
}

.innovators-header {
    text-align: center;
    margin-bottom: 60px;
}

.innovators-header .section-title {
    font-size: 34px;
    font-weight: bold;
    color: var(--section-text-color-light);
    margin-bottom: 20px;
    line-height: 1.3;
}

.innovators-header .section-subtitle {
    font-size: 18px;
    color: var(--section-text-color-light-transparent);
    max-width: 750px;
    margin-left: auto;
    margin-right: auto;
    line-height: 1.7;
}

.innovators-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
}

.innovator-card {
    background-color: rgba(255, 255, 255, 0.05); /* Fond de carte légèrement transparent */
    border: 1px solid rgba(255, 255, 255, 0.1);
    border-radius: 12px;
    padding: 30px;
    display: flex;
    flex-direction: column;
    text-align: left;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
    transition: transform var(--transition-speed-normal) ease-out,
                background-color var(--transition-speed-normal) ease-out,
                box-shadow var(--transition-speed-normal) ease-out;
    position: relative; /* Pour un éventuel pseudo-élément de surbrillance */
}

.innovator-card:hover {
    transform: translateY(-10px) scale(1.03);
    background-color: rgba(255, 255, 255, 0.08);
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.3);
}

/* Effet de surbrillance subtil au survol */
.innovator-card::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    border-radius: 12px;
    background: radial-gradient(circle at var(--mouse-x, 50%) var(--mouse-y, 50%), rgba(255,255,255,0.1) 0%, transparent 50%);
    opacity: 0;
    transition: opacity 0.4s ease-out;
    pointer-events: none; /* Important */
    z-index: 0;
}
.innovator-card:hover::before {
    opacity: 1;
}


.innovator-card-icon-wrapper {
    width: 70px;
    height: 70px;
    border-radius: 16px; /* Forme "squircle" */
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 25px;
    transition: transform 0.4s cubic-bezier(0.175, 0.885, 0.32, 1.275); /* Effet rebondissant */
}
.innovator-card:hover .innovator-card-icon-wrapper {
    transform: scale(1.15) rotate(-8deg);
}

.innovator-card-icon {
    font-size: 28px;
}

/* Couleurs spécifiques par carte */
.card-startup .innovator-card-icon-wrapper { background-color: hsla(var(--accent-gold-color), 0.2); }
.card-startup .innovator-card-icon { color: var(--accent-gold-color); }
.card-startup .feature-icon { color: var(--accent-gold-color); }
.card-startup .btn-innovator { background-color: var(--accent-gold-color); color: var(--text-color-dark); }
.card-startup .btn-innovator:hover { background-color: var(--accent-gold-hover-color); }


.card-agriculture .innovator-card-icon-wrapper { background-color: hsla(var(--success-color), 0.2); }
.card-agriculture .innovator-card-icon { color: var(--success-color); }
.card-agriculture .feature-icon { color: var(--success-color); }
.card-agriculture .btn-innovator { background-color: var(--success-color); color: var(--section-text-color-light); }
.card-agriculture .btn-innovator:hover { background-color: hsl(140, 65%, 55%); /* Un peu plus foncé */ }

.card-new-ventures .innovator-card-icon-wrapper { background-color: hsla(var(--info-color), 0.2); }
.card-new-ventures .innovator-card-icon { color: var(--info-color); }
.card-new-ventures .feature-icon { color: var(--info-color); }
.card-new-ventures .btn-innovator { background-color: var(--info-color); color: var(--section-text-color-light); }
.card-new-ventures .btn-innovator:hover { background-color: hsl(205, 70%, 50%); /* Un peu plus foncé */ }


.innovator-card-title {
    font-size: 24px;
    font-weight: bold;
    color: var(--section-text-color-light);
    margin-bottom: 15px;
    line-height: 1.3;
}

.innovator-card-description {
    font-size: 16px;
    color: var(--section-text-color-light-transparent);
    margin-bottom: 25px;
    line-height: 1.6;
    flex-grow: 1;
}

.innovator-card-features {
    list-style: none;
    padding: 0;
    margin: 0 0 30px 0;
    font-size: 15px;
    color: var(--section-text-color-light-transparent);
}

.innovator-card-features li {
    display: flex;
    align-items: flex-start; /* Pour les textes plus longs */
    gap: 12px;
    margin-bottom: 12px;
}
.innovator-card-features li:last-child {
    margin-bottom: 0;
}

.innovator-card-features .feature-icon {
    /* Couleur définie par carte ci-dessus */
    font-size: 16px;
    margin-top: 3px; /* Ajustement vertical */
    flex-shrink: 0;
}

.btn.btn-innovator {
    display: flex; /* Changé pour flex pour aligner l'icône */
    align-items: center;
    justify-content: center;
    width: 100%;
    padding: 14px 20px;
    font-size: 16px;
    font-weight: 600;
    border-radius: 8px;
    text-decoration: none;
    transition: background-color var(--transition-speed-normal) ease, transform var(--transition-speed-fast) ease, box-shadow var(--transition-speed-normal) ease;
    margin-top: auto;
    text-align: center;
    border: none;
}
.btn.btn-innovator:hover {
    transform: translateY(-3px);
    box-shadow: 0 6px 15px rgba(0,0,0,0.2);
}

.btn.btn-innovator i {
    margin-left: 10px;
    font-size: 1.1em; /* Légèrement plus grande */
    transition: transform var(--transition-speed-normal) cubic-bezier(0.175, 0.885, 0.32, 1.275);
}
.btn.btn-innovator:hover i {
    transform: translateX(5px) scale(1.1);
}


/* Bloc CTA Final */
.innovators-cta-block {
    margin-top: 80px;
    text-align: center;
    padding: 40px 20px;
    background-color: rgba(255, 255, 255, 0.03);
    border-radius: 12px;
    border: 1px solid rgba(255,255,255,0.08);
}

.cta-block-title {
    font-size: 28px;
    font-weight: bold;
    color: var(--section-text-color-light);
    margin-bottom: 20px;
}

.cta-block-description {
    font-size: 17px;
    color: var(--section-text-color-light-transparent);
    max-width: 650px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: 30px;
    line-height: 1.7;
}

.btn.btn-cta-main {
    display: inline-flex; /* Pour que l'icône soit à côté */
    align-items: center;
    gap: 10px;
    padding: 15px 35px;
    font-size: 17px;
    font-weight: bold;
    border-radius: 8px;
    text-decoration: none;
    background-color: var(--accent-gold-color);
    color: var(--text-color-dark); /* Texte foncé sur fond or */
    border: none;
    transition: background-color var(--transition-speed-normal) ease, transform var(--transition-speed-fast) ease, box-shadow var(--transition-speed-normal) ease;
    box-shadow: 0 5px 15px hsla(40, 90%, 55%, 0.25);
}

.btn.btn-cta-main:hover {
    background-color: var(--accent-gold-hover-color);
    transform: translateY(-4px) scale(1.03);
    box-shadow: 0 8px 20px hsla(40, 90%, 45%, 0.3);
}
.btn.btn-cta-main i {
    font-size: 1.1em;
    transition: transform var(--transition-speed-normal) ease;
}
.btn.btn-cta-main:hover i {
    transform: translateX(4px);
}

/* Responsive */
@media (max-width: 992px) {
    .innovators-grid {
        grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    }
     .innovators-header .section-title { font-size: 30px; }
     .innovators-header .section-subtitle { font-size: 17px; }
     .cta-block-title { font-size: 26px; }
}

@media (max-width: 767px) {
    .innovators-financing-section { padding: 60px 0; }
    .innovators-header { margin-bottom: 40px; }
    .innovators-header .section-title { font-size: 26px; }
    .innovators-header .section-subtitle { font-size: 16px; }
    .innovators-grid { gap: 25px; }
    .innovator-card { padding: 25px; }
    .innovator-card-title { font-size: 22px; }
    .innovator-card-description { font-size: 15px; }
    .innovator-card-features { font-size: 14px; }
    .innovators-cta-block { margin-top: 60px; padding: 30px 15px; }
    .cta-block-title { font-size: 22px; }
    .cta-block-description { font-size: 16px; }
    .btn.btn-cta-main { width: 100%; justify-content: center; padding: 14px 25px; font-size: 16px; }
}

/* --- Section Process --- */
.process-section {
    padding: 60px 0;
    background-color: var(--background-light); /* Remplacé var(--section-bg-color) */
    font-family: var(--font-family-base);
    color: var(--text-color-dark);
    box-sizing: border-box;
    line-height: 1.6;
    opacity: 0;
    transform: translateY(var(--animation-slide-up-distance));
    transition: opacity var(--animation-slide-up-duration) ease-out, transform var(--animation-slide-up-duration) ease-out;
}
.process-section.is-visible {
     opacity: 1;
     transform: translateY(0);
}
.process-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 15px;
    box-sizing: border-box;
}
.process-header {
    text-align: center;
    margin-bottom: 50px;
}
.process-title {
    font-size: 32px;
    font-weight: bold;
    color: var(--text-color-dark);
    margin: 0 0 10px 0;
}
.process-subtitle {
    font-size: 18px;
    color: var(--text-color-gray);
    max-width: 700px;
    margin: 0 auto;
}
.process-visual {
    width: 100%;
    max-width: 800px;
    margin: 0 auto 50px auto;
    border-radius: 12px;
    overflow: hidden;
    box-shadow: 0 10px 20px var(--shadow-subtle);
    position: relative;
}
.process-visual-image {
    display: block;
    width: 100%;
    height: auto;
}
.process-benefits-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 30px;
    margin-bottom: 40px;
}
.process-benefit-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-color); /* Remplacé var(--benefit-item-border-color) */
    opacity: 0;
    transform: translateY(var(--animation-benefit-slide-in-distance));
}
.process-benefits-grid .process-benefit-item:nth-last-child(-n + 2) {
    border-bottom: none;
    padding-bottom: 0;
}
@media (min-width: 768px) and (max-width: 999px) {
     .process-benefits-grid { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); }
     .process-benefits-grid .process-benefit-item { border-bottom: 1px solid var(--border-color); padding-bottom: 20px; }
     .process-benefits-grid .process-benefit-item:nth-last-child(-n + 3) { border-bottom: none; padding-bottom: 0; }
}
@media (min-width: 1000px) {
     .process-benefits-grid { grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); }
     .process-benefits-grid .process-benefit-item { border-bottom: 1px solid var(--border-color); padding-bottom: 20px; }
     .process-benefits-grid .process-benefit-item:nth-last-child(-n + 4) { border-bottom: none; padding-bottom: 0; }
}
.process-benefit-item.is-visible {
     opacity: 1;
     transform: translateY(0);
     transition: opacity var(--animation-benefit-slide-in-duration) ease-out, transform var(--animation-benefit-slide-in-duration) ease-out;
}
.benefit-icon-circle {
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background-color: hsla(330, 85%, 55%, 0.1); /* Remplacé var(--benefit-icon-bg) par primaire transparent */
    color: var(--primary-color); /* Remplacé var(--benefit-icon-color) */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    flex-shrink: 0;
}
.benefit-text-content {
    flex-grow: 1;
}
.benefit-title {
    font-size: 18px;
    font-weight: bold;
    color: var(--text-color-dark);
    margin: 0 0 5px 0;
}
.benefit-description {
    font-size: 15px;
    color: var(--text-color-gray);
    margin: 0;
}
 .process-cta {
    text-align: center;
    margin-top: 30px;
}
.process-cta .button {
    display: inline-flex;
    padding: 12px 25px;
    font-size: 16px;
    font-weight: bold;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    background-color: var(--primary-color);
    color: var(--section-text-color-light);
    text-decoration: none;
    transition: background-color var(--transition-speed-normal) ease;
}
.process-cta .button:hover {
    background-color: var(--primary-hover-color);
}
@media (max-width: 767.98px) {
    .process-section { padding: 40px 0; --animation-slide-up-distance: 20px;        margin-left: 8px;
        margin-right: 8px; }
    .process-header { margin-bottom: 40px; }
    .process-title { font-size: 28px; }
    .process-subtitle { font-size: 16px; }
    .process-visual { margin-bottom: 40px; }
    .process-benefits-grid { grid-template-columns: 1fr; gap: 20px; }
    .process-benefit-item { padding-bottom: 15px; border-bottom: 1px solid var(--border-color); --animation-benefit-slide-in-distance: 15px; }
    .process-benefits-grid .process-benefit-item:last-child { border-bottom: none; padding-bottom: 0; }
    .benefit-icon-circle { width: 40px; height: 40px; font-size: 18px; }
    .benefit-title { font-size: 16px; }
    .benefit-description { font-size: 14px; }
}

/* --- Section Loan Cards --- */
.loan-cards-section {
    padding: 60px 0;
    background-color: var(--background-light);
    font-family: var(--font-family-base);
    color: var(--text-color-dark);
    box-sizing: border-box;
    line-height: 1.6;
}
.loan-cards-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
    box-sizing: border-box;
}
.loan-cards-header {
    text-align: center;
    margin-bottom: 50px;
}
.loan-cards-title {
    font-size: 32px;
    font-weight: bold;
    color: var(--text-color-dark);
    margin: 0 0 10px 0;
}
.loan-cards-subtitle {
    font-size: 18px;
    color: var(--text-color-gray);
    max-width: 800px;
    margin: 0 auto;
}
.loan-cards-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 30px;
}
.loan-card {
    background-color: var(--form-background);
    border-radius: 12px;
    box-shadow: 0 8px 16px var(--shadow-medium); /* Remplacé var(--card-shadow) */
    overflow: hidden;
    display: flex;
    flex-direction: column;
    transition: transform var(--transition-speed-normal) ease, box-shadow var(--transition-speed-normal) ease;
    cursor: pointer;
    opacity: 0;
    transform: translateY(var(--animation-slide-up-distance));
}
.loan-card.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.loan-card:hover {
    transform: translateY(-8px);
    box-shadow: 0 12px 24px var(--shadow-medium); /* Remplacé var(--card-hover-shadow), utilisé medium, pourrait être un var(--shadow-large) si défini */
}
.loan-card-image {
    width: 100%;
    height: 180px;
    background-size: cover;
    background-position: center;
}
.loan-card-content {
    padding: 25px;
    flex-grow: 1;
    display: flex;
    flex-direction: column;
}
.loan-card-icon-circle {
    width: 50px;
    height: 50px;
    border-radius: 50%;
    background-color: var(--background-light); /* Remplacé var(--icon-circle-bg) */
    color: var(--primary-color); /* Remplacé var(--feature-icon-color) */
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 24px;
    margin-bottom: 15px;
    flex-shrink: 0;
}
.loan-cards-grid .loan-card:nth-child(2) .loan-card-icon-circle { color: var(--info-color); }
.loan-cards-grid .loan-card:nth-child(3) .loan-card-icon-circle { color: var(--success-color); }
.loan-cards-grid .loan-card:nth-child(4) .loan-card-icon-circle { color: var(--primary-color); }
.loan-cards-grid .loan-card:nth-child(5) .loan-card-icon-circle { color: var(--info-color); }
.loan-cards-grid .loan-card:nth-child(6) .loan-card-icon-circle { color: var(--text-color-dark); }
.loan-cards-grid .loan-card:nth-child(7) .loan-card-icon-circle { color: var(--info-color); }
.loan-cards-grid .loan-card:nth-child(8) .loan-card-icon-circle { color: var(--primary-color); }
.loan-cards-grid .loan-card:nth-child(9) .loan-card-icon-circle { color: var(--text-color-dark); }
.loan-card-title {
    font-size: 20px;
    font-weight: bold;
    color: var(--text-color-dark);
    margin: 0 0 8px 0;
}
.loan-card-description {
    font-size: 15px;
    color: var(--text-color-gray);
    margin: 0 0 20px 0;
    flex-grow: 1;
}
.loan-card-features-list {
    list-style: none;
    padding: 0;
    margin: 0 0 20px 0;
    flex-shrink: 0;
}
.loan-card-features-list li {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 15px;
    color: var(--text-color-gray);
    margin-bottom: 8px;
}
.loan-card-features-list li:last-child {
     margin-bottom: 0;
}
.loan-card-features-list li i {
    color: var(--success-color);
    font-size: 14px;
    flex-shrink: 0;
}
.loan-card-link {
    display: inline-flex;
    align-items: center;
    color: var(--primary-color); /* Remplacé var(--link-color) */
    font-weight: 600;
    text-decoration: none;
    transition: color var(--transition-speed-normal) ease;
    margin-top: auto;
}
.loan-card-link:hover {
    color: var(--primary-hover-color); /* Remplacé var(--link-hover-color) */
    text-decoration: underline;
}
.loan-card-link span {
    margin-right: 8px;
}
@media (max-width: 768px) {
    .loan-cards-section { padding: 40px 0; }
    .loan-cards-header { margin-bottom: 40px; }
    .loan-cards-title { font-size: 28px; }
    .loan-cards-subtitle { font-size: 16px; }
    .loan-cards-grid { grid-template-columns: 1fr; gap: 20px;margin-right: 5px;
        margin-left: 5px; }
    .loan-card-image { height: 160px; }
    .loan-card-content { padding: 20px; }
    .loan-card-icon-circle { width: 40px; height: 40px; font-size: 20px; margin-bottom: 10px; }
    .loan-card-title { font-size: 18px; margin-bottom: 5px; }
    .loan-card-description { font-size: 14px; margin-bottom: 15px; }
    .loan-card-features-list { margin-bottom: 15px; }
    .loan-card-features-list li { font-size: 14px; gap: 6px; margin-bottom: 6px; }
    .loan-card-features-list li i { font-size: 13px; }
    .loan-card-link { font-size: 15px; }
}
@keyframes slideUp {
    0% { opacity: 0; transform: translateY(var(--animation-slide-up-distance)); }
    100% { opacity: 1; transform: translateY(0); }
}
.loan-card.is-visible {
     transition: none;
    animation: slideUp var(--animation-slide-up-duration) ease-out forwards;
}
.features-list .feature-item:nth-child(2) .feature-meta p i {
    color: var(--info-color);
}
.features-list .feature-item:nth-child(3) .feature-meta p i {
    color: var(--success-color);
}

/* --- Section Loan Application --- */
.loan-application-section {
    padding: 60px 0;
    background-color: var(--background-light);
    font-family: var(--font-family-base); /* Remplacé var(--font-family-primary) */
    color: var(--text-color-dark);
    box-sizing: border-box;
    line-height: 1.6;
}
.form-container {
    max-width: 850px;
    margin: 0 auto;
    padding: 0 20px;
    box-sizing: border-box;
}
.progress-bar-wrapper {
    max-width: 500px;
    margin: 0 auto 50px auto;
}
.progress-container {
    margin-bottom: 15px;
}
.progress-track {
    height: 8px;
    background-color: var(--secondary-color);
    border-radius: 4px;
    overflow: hidden;
    position: relative;
}
.progress-fill {
    position: absolute;
    top: 0;
    left: 0;
    height: 100%;
    background-color: var(--primary-color);
    border-radius: 4px;
    transition: width var(--transition-speed-slow) ease-out;
}
.step-indicators {
    display: flex;
    justify-content: space-between;
    margin-top: -40px;
    font-size: 14px;
    font-weight: 600;
}
.step-indicator-item {
    position: relative;
    text-align: center;
    flex: 1;
    padding-top: 25px;
    color: var(--text-color-gray);
    transition: color var(--transition-speed-normal) ease;
}
.indicator-circle {
    width: 28px;
    height: 28px;
    background-color: var(--secondary-color);
    color: var(--section-text-color-light);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 14px;
    position: absolute;
    top: -14px;
    left: 50%;
    transform: translateX(-50%);
    transition: background-color var(--transition-speed-normal) ease, color var(--transition-speed-normal) ease, box-shadow var(--transition-speed-normal) ease;
    border: 3px solid var(--form-background);
    box-shadow: 0 2px 5px rgba(0,0,0,0.1); /* Gardé car spécifique */
}
.indicator-circle .fas {
    font-size: 14px;
}
.step-indicator-item.active .indicator-circle {
    background-color: var(--primary-color);
    color: var(--section-text-color-light);
    box-shadow: 0 2px 8px hsla(330, 85%, 55%, 0.5); /* Gardé car spécifique */
}
.step-indicator-item.active .indicator-text {
    color: var(--primary-color);
    font-weight: bold;
}
.step-indicator-item.completed .indicator-circle {
    background-color: var(--success-color);
    color: var(--section-text-color-light);
    box-shadow: 0 2px 5px hsla(140, 65%, 65%, 0.5); /* Gardé car spécifique */
}
.step-indicator-item.completed .indicator-text {
     color: var(--text-color-dark);
     font-weight: normal;
}
.form-card {
    background-color: var(--form-background);
    border-radius: 15px;
    box-shadow: 0 15px 40px var(--shadow-subtle);
    overflow: hidden;
    position: relative;
    min-height: 500px;
}
.form-step {
    padding: 40px;
    box-sizing: border-box;
    transition: opacity 0.4s ease-in-out, transform 0.4s ease-in-out;
    transform: translateY(20px);
    opacity: 0;
    pointer-events: none;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: auto;
}
.form-step:not(.hidden) {
    opacity: 1;
    transform: translateY(0);
    pointer-events: auto;
    position: relative;
}
.step-header {
    margin-bottom: 30px;
    padding-bottom: 20px;
    border-bottom: 1px solid var(--border-color);
}
.step-header h2 {
    font-size: 30px;
    font-weight: bold;
    color: var(--text-color-dark);
    margin: 0 0 10px 0;
    line-height: 1.3;
}
.step-header p {
    font-size: 18px;
    color: var(--text-color-gray);
    margin: 0;
}
.step-content {
    display: flex;
    flex-direction: column;
    gap: 40px;
}
.loan-simulation-group {
    display: flex;
    gap: 40px;
    flex-direction: column;
}
@media (min-width: 768px) {
    .loan-simulation-group { flex-direction: row; }
    .loan-simulation-group .form-section.section-loan-details { flex: 2; min-width: 0; }
    .loan-simulation-group .simulation-panel { flex: 1; min-width: 0; margin-top: 0; margin-bottom: 0; }
}
.form-section {
    padding-bottom: 30px;
    border-bottom: 1px dashed var(--border-color);
}
.step-content > .form-section:last-of-type {
     border-bottom: none;
     padding-bottom: 0;
}
.step-content > .form-section:last-of-type + .info-block,
.step-content > .form-section:last-of-type + .button-group {
     margin-bottom: 40px;
}
@media (max-width: 767px) {
     .loan-simulation-group .form-section.section-loan-details { margin-bottom: 30px; border-bottom: 1px dashed var(--border-color); }
     .loan-simulation-group .simulation-panel { margin-top: 0; }
}
.form-section h3 {
    font-size: 22px;
    font-weight: 600;
    color: var(--text-color-dark);
    margin: 0 0 20px 0;
    padding-bottom: 0;
    border-bottom: none;
    display: flex;
    align-items: center;
}
.form-section h3 .fas {
     margin-right: 10px;
     color: var(--accent-color);
     font-size: 20px;
}
.section-content {
    display: flex;
    flex-direction: column;
    gap: 20px;
}
@media (min-width: 768px) {
    .section-content.form-inputs-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 25px; }
    .section-content.form-inputs-grid .input-group.full-width { grid-column: 1 / -1; }
    .section-content.form-inputs-grid .input-group { margin-bottom: 0; }
}
.input-group {
    margin-bottom: 0;
}
.input-group.no-margin-bottom {
    margin-bottom: 0 !important;
}
.input-label-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-bottom: 8px;
}
.input-label {
    display: block;
    font-size: 16px;
    font-weight: 600;
    color: var(--text-color-dark);
}
.input-label .required {
    color: var(--error-color);
    margin-left: 4px;
    font-weight: bold;
}
.input-value {
    font-size: 16px;
    font-weight: 600;
    color: var(--accent-color);
}
.input-field {
    display: block;
    width: 100%;
    padding: 10px 10px;
    border: 1px solid var(--border-color);
    border-radius: 8px;
    font-size: 17px;
    color: var(--text-color-dark);
    box-sizing: border-box;
    transition: border-color var(--transition-speed-normal) ease, box-shadow var(--transition-speed-normal) ease;
    background-color: var(--form-background);
}
.input-field select {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
    background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%2220%22%20height%3D%2220%22%20fill%3D%22%23555555%22%3E%3Cpath%20d%3D%22M5%208l5%205%205-5z%22%2F%3E%3C%2Fsvg%3E'); /* Utilise --text-color-gray (#555555) */
    background-repeat: no-repeat;
    background-position: right 15px center;
    padding-right: 40px;
    cursor: pointer;
}
.input-field:focus {
    outline: none;
    border-color: var(--accent-color);
    box-shadow: 0 0 0 4px hsla(330, 85%, 55%, 0.2); /* Gardé car spécifique */
}
.input-limits {
    display: flex;
    justify-content: space-between;
    font-size: 13px;
    color: var(--text-color-gray);
    margin-top: 5px;
}
.error-message {
    font-size: 14px;
    color: var(--error-color);
    margin-top: 5px;
    margin-bottom: 0;
    font-weight: 500;
}
.error-message.hidden {
    display: none;
}
.simulation-panel {
    background: var(--gradient-simulation);
    border-radius: 10px;
    padding: 30px;
    margin-top: 0;
    margin-bottom: 0;
    box-shadow: inset 0 0 15px rgba(0,0,0,0.05); /* Gardé car spécifique */
    display: flex;
    flex-direction: column;
    gap: 20px;
}
.simulation-panel h3 {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}
.simulation-panel h3 .fas {
     color: var(--accent-color);
     margin-right: 10px;
     font-size: 20px;
}
.simulation-result {
    text-align: center;
    margin-bottom: 0;
}
.simulation-label {
    display: block;
    font-size: 16px;
    color: var(--text-color-gray);
    margin-bottom: 8px;
}
.simulation-amount {
    font-size: 44px;
    font-weight: bold;
    color: var(--primary-color);
    margin-bottom: 10px;
    transition: color var(--animation-duration-pulse) ease, transform var(--animation-duration-pulse) ease;
}
.simulation-amount.is-updating {
    color: var(--primary-hover-color);
    transform: scale(1.05);
}
.simulation-tag {
    display: inline-block;
    background-color: hsla(330, 85%, 45%, 0.1); /* Dérivé de --primary-hover-color */
    color: var(--primary-hover-color);
    font-size: 14px;
    font-weight: 600;
    padding: 6px 15px;
    border-radius: 20px;
}
.simulation-details {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 0;
    padding-top: 20px;
    border-top: 1px solid var(--border-color);
}
.detail-item {
    display: flex;
    justify-content: space-between;
    font-size: 16px;
    color: var(--text-color-dark);
}
.detail-item .item-label {
    color: var(--text-color-gray);
}
.detail-item .item-value {
    font-weight: 600;
    color: var(--text-color-dark);
}
.info-block {
    margin-top: 25px;
    margin-bottom: 35px;
}
.info-text {
    font-size: 15px;
    color: var(--text-color-gray);
    line-height: 1.6;
    position: relative;
    padding-left: 30px;
    display: flex;
    align-items: flex-start;
}
.info-text .list-bullet {
    position: absolute;
    left: 0;
    top: 0.2em;
    width: 20px;
    height: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--info-color);
    font-size: 18px;
}
.button-group {
    display: flex;
    gap: 20px;
    margin-top: 30px;
}
.button-group.single-button {
     justify-content: center;
}
.button-group.double-button > * {
    flex: 1;
}
.button-next,
.button-prev {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 15px 30px;
    font-size: 18px;
    font-weight: bold;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color var(--transition-speed-normal) ease, box-shadow var(--transition-speed-normal) ease, opacity var(--transition-speed-normal) ease, transform var(--transition-speed-fast) ease;
    text-decoration: none;
    text-align: center;
    width: auto;
}
.button-next {
    background-color: var(--primary-color);
    color: var(--section-text-color-light);
    box-shadow: 0 5px 15px hsla(330, 85%, 55%, 0.2); /* Gardé car spécifique */
}
.button-next:hover {
    background-color: var(--primary-hover-color);
    box-shadow: 0 8px 20px hsla(330, 85%, 45%, 0.3); /* Gardé car spécifique */
    transform: translateY(-3px);
}
.button-next:active {
     transform: translateY(0);
     box-shadow: 0 3px 10px hsla(330, 85%, 45%, 0.3); /* Gardé car spécifique */
}
.button-prev {
    background-color: var(--secondary-color);
    color: var(--text-color-dark);
    box-shadow: 0 5px 15px var(--shadow-subtle); /* Approx hsla(0, 0%, 88%, 0.2) */
}
.button-prev:hover {
    background-color: var(--secondary-hover-color);
    box-shadow: 0 8px 20px var(--shadow-medium); /* Approx hsla(0, 0%, 80%, 0.3) */
    transform: translateY(-3px);
}
.button-prev:active {
     transform: translateY(0);
     box-shadow: 0 3px 10px var(--shadow-medium); /* Approx hsla(0, 0%, 80%, 0.3) */
}
.contact-form-7-wrapper .wpcf7 input[type="submit"] {
     display: inline-flex;
     align-items: center;
     justify-content: center;
     padding: 15px 30px;
     font-size: 18px;
     font-weight: bold;
     border: none;
     border-radius: 8px;
     cursor: pointer;
     transition: background-color var(--transition-speed-normal) ease, box-shadow var(--transition-speed-normal) ease, opacity var(--transition-speed-normal) ease, transform var(--transition-speed-fast) ease;
     background-color: var(--primary-color);
     color: var(--section-text-color-light);
     width: 100%;
     box-sizing: border-box;
     box-shadow: 0 5px 15px hsla(330, 85%, 55%, 0.2); /* Gardé car spécifique */
}
.contact-form-7-wrapper .wpcf7 input[type="submit"]:hover {
     background-color: var(--primary-hover-color);
     box-shadow: 0 8px 20px hsla(330, 85%, 45%, 0.3); /* Gardé car spécifique */
     transform: translateY(-3px);
}
.contact-form-7-wrapper .wpcf7 input[type="submit"]:active {
     transform: translateY(0);
     box-shadow: 0 3px 10px hsla(330, 85%, 45%, 0.3); /* Gardé car spécifique */
}
.contact-form-7-wrapper .wpcf7 input[type="submit"][disabled] {
    opacity: 0.5;
    cursor: not-allowed;
    box-shadow: none;
    transform: none;
}
.button-placeholder {
    visibility: hidden;
}
.button-next i,
.button-prev i {
    margin: 0 10px;
    font-size: 16px;
}
.summary-panel {
    background: var(--gradient-panel);
    border-radius: 10px;
    padding: 30px;
    margin-bottom: 30px;
    box-shadow: inset 0 0 15px rgba(0,0,0,0.05); /* Gardé car spécifique */
}
.summary-panel h3 {
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 15px;
    margin-bottom: 20px;
    font-size: 20px;
    font-weight: 600;
    color: var(--text-color-dark);
    display: flex;
    align-items: center;
}
.summary-panel h3 .fas {
    color: var(--accent-color);
    margin-right: 10px;
    font-size: 18px;
}
.summary-details {
    display: flex;
    flex-direction: column;
    gap: 10px;
    margin-bottom: 30px;
}
.summary-details:last-child {
     margin-bottom: 0;
}
.summary-item {
    display: flex;
    justify-content: space-between;
    font-size: 16px;
    color: var(--text-color-dark);
    line-height: 1.5;
    border-bottom: 1px dotted var(--border-color);
    padding-bottom: 10px;
    margin-bottom: 10px;
}
.summary-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
    margin-bottom: 0;
}
.summary-item .item-label {
    color: var(--text-color-gray);
    flex-basis: 60%;
    padding-right: 15px;
    box-sizing: border-box;
}
.summary-item .item-value {
    font-weight: 600;
    text-align: right;
    flex-basis: 40%;
    word-break: break-word;
    color: var(--accent-color-dark);
}
.summary-item #summary-address {
     text-align: left;
     flex-basis: auto;
}
.security-message-block {
    display: flex;
    align-items: flex-start;
    background-color: hsla(205, 70%, 60%, 0.1); /* Dérivé de --info-color */
    border: 1px solid var(--info-color);
    border-radius: 10px;
    padding: 25px 30px;
    margin-bottom: 30px;
    gap: 25px;
    box-shadow: 0 5px 15px hsla(205, 70%, 60%, 0.15); /* Dérivé de --info-color */
}
.security-icon {
    flex-shrink: 0;
    font-size: 48px;
    color: var(--info-color);
    line-height: 1;
}
.security-text h4 {
    font-size: 19px;
    font-weight: bold;
    color: var(--text-color-dark);
    margin: 0 0 10px 0;
}
.security-text p {
    font-size: 15px;
    color: var(--text-color-gray);
    line-height: 1.6;
    margin: 0;
}
.contact-form-7-wrapper {
    margin-bottom: 30px;
}
.contact-form-7-wrapper .wpcf7-list-item-label {
    display: inline-block;
    margin-left: 8px;
    font-size: 15px;
    color: var(--text-color-gray);
    cursor: pointer;
    line-height: 1.5;
}
.contact-form-7-wrapper .wpcf7-list-item {
     margin: 0;
     padding: 0;
     list-style: none;
}
.contact-form-7-wrapper .wpcf7-acceptance {
    margin-bottom: 20px;
}
.contact-form-7-wrapper input[type="checkbox"] {
     cursor: pointer;
     transform: scale(1.1);
     margin-right: 5px;
     vertical-align: middle;
}
.contact-form-7-wrapper .wpcf7-response-output {
    margin-top: 20px;
    padding: 15px;
    border-radius: 8px;
    font-size: 15px;
    text-align: center;
    font-weight: 500;
    line-height: 1.5;
}
.contact-form-7-wrapper .wpcf7-mail-sent-ok {
    border-color: var(--success-color);
    color: var(--success-color);
    background-color: hsla(140, 65%, 65%, 0.1); /* Dérivé de --success-color */
}
.contact-form-7-wrapper .wpcf7-mail-sent-ng,
.contact-form-7-wrapper .wpcf7-validation-errors {
    border-color: var(--error-color);
    color: var(--error-color);
    background-color: hsla(0, 80%, 60%, 0.1); /* Dérivé de --error-color */
}
.contact-form-7-wrapper .wpcf7-spinner {
    visibility: hidden;
}
.text-center-info {
    text-align: center;
    font-size: 14px;
    color: var(--text-color-gray);
    margin-bottom: 20px;
}
@media (max-width: 767.98px) {
    .loan-application-section { padding-top: 50px;
        margin-left: 5px;
        margin-right: 5px; }
    .form-container { padding: 0 15px; }
    .form-step { padding: 25px; }
    .step-header h2 { font-size: 24px; }
    .step-header p { font-size: 16px; }
    .step-content { gap: 30px; }
    .loan-simulation-group { flex-direction: column; gap: 30px; }
    .loan-simulation-group .form-section.section-loan-details { border-bottom: 1px dashed var(--border-color); padding-bottom: 30px; margin-bottom: 0; }
    .loan-simulation-group .simulation-panel { margin-top: 0; margin-bottom: 0; }
    .section-content.form-inputs-grid { grid-template-columns: 1fr; gap: 15px; }
    .section-content.form-inputs-grid .input-group.full-width { grid-column: auto; }
    .section-content.form-inputs-grid .input-group { margin-bottom: 0; }
    .form-section { padding-bottom: 25px; }
    .step-content > .form-section:last-of-type { padding-bottom: 0; margin-bottom: 25px; }
    .step-content > .form-section:last-of-type + .info-block, .step-content > .form-section:last-of-type + .button-group { margin-top: 0; }
    .form-section h3 { font-size: 19px; margin-bottom: 15px; }
    .form-section h3 .fas { font-size: 17px; margin-right: 8px; }
    .section-content { gap: 15px; }
    .input-field { padding: 12px 15px; font-size: 16px; }
    .input-field select { background-position: right 10px center; padding-right: 30px; }
    .input-label, .input-value { font-size: 15px; }
    .simulation-panel { padding: 25px; }
    .simulation-amount { font-size: 36px; }
    .detail-item { font-size: 15px; }
    .info-text { font-size: 14px; padding-left: 25px; }
    .info-text .list-bullet { width: 18px; height: 18px; font-size: 16px; }
    .button-group { flex-direction: column; gap: 15px; margin-top: 25px; }
    .button-group.double-button > * { flex: auto; }
    .button-placeholder { display: none; }
    .button-next, .button-prev, .contact-form-7-wrapper .wpcf7 input[type="submit"] { width: 100%; padding: 14px 25px; font-size: 17px; }
    .button-next i, .button-prev i { margin: 0 8px; font-size: 15px; }
    .summary-panel { padding: 25px; margin-bottom: 25px; }
    .summary-panel h3 { font-size: 18px; padding-bottom: 12px; margin-bottom: 15px; }
    .summary-panel h3 .fas { font-size: 16px; margin-right: 8px; }
    .summary-details { gap: 8px; margin-bottom: 20px; }
    .summary-item { font-size: 15px; flex-direction: column; padding-bottom: 8px; margin-bottom: 8px; }
    .summary-item .item-label { flex-basis: auto; width: auto; padding-right: 0; }
    .summary-item .item-value { text-align: left; flex-basis: auto; margin-top: 2px; font-weight: normal; color: var(--text-color-dark); }
    .security-message-block { flex-direction: column; text-align: center; padding: 20px; gap: 20px; margin-bottom: 25px; }
    .security-icon { font-size: 40px; }
    .security-text h4 { font-size: 18px; margin-bottom: 8px; }
    .security-text p { font-size: 14px; }
    .contact-form-7-wrapper .wpcf7-list-item-label { font-size: 14px; }
    .contact-form-7-wrapper input[type="checkbox"] { transform: scale(1); }
    .text-center-info { font-size: 13px; margin-bottom: 15px; }
}
@keyframes pulse-color {
  0% { color: var(--primary-color); transform: scale(1); }
  50% { color: var(--primary-hover-color); transform: scale(1.05); }
  100% { color: var(--primary-color); transform: scale(1); }
}
.simulation-amount.is-updating {
  animation: pulse-color var(--animation-duration-pulse) ease;
}

/* --- Section Loan Reviews --- */
.loan-reviews-section {
    padding: 60px 0;
    background-color: var(--background-light);
    font-family: var(--font-family-base);
}
.loan-container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 15px;
}
.loan-reviews-header-block {
    text-align: center;
    margin-bottom: 40px;
}
.loan-subtitle {
    display: inline-flex;
    align-items: center;
    font-size: 16px;
    color: var(--primary-color);
    margin-bottom: 10px;
    font-weight: 600;
}
.loan-subtitle .loan-icon {
    margin-right: 8px;
    font-size: 18px;
}
.loan-title {
    font-size: 36px;
    color: var(--text-color-dark);
    margin-bottom: 20px;
}
.loan-description {
    font-size: 18px;
    color: var(--text-color-gray);
    max-width: 800px;
    margin: 0 auto 30px auto;
}
.loan-stats-block {
    margin-top: 30px;
}
.loan-progress-bars-wrapper {
    display: flex;
    justify-content: center;
    gap: 30px;
    flex-wrap: wrap;
}
.loan-progress-item {
    flex: 1;
    min-width: 250px;
    max-width: 350px;
    text-align: left;
}
.loan-skill-bar-content {
    margin-bottom: 8px;
    font-weight: 600;
    color: var(--text-color-dark);
}
.loan-skill-bar {
    background-color: var(--secondary-color);
    border-radius: 5px;
    height: 20px;
    overflow: hidden;
    position: relative;
}
.loan-skill-track {
    height: 100%;
    border-radius: 5px;
    display: flex;
    align-items: center;
    justify-content: flex-end;
    padding-right: 10px;
    box-sizing: border-box;
    transition: width 1.5s ease-out;
}
.loan-number-percentage-wrapper {
    color: var(--section-text-color-light);
    font-size: 12px;
    font-weight: bold;
}
.loan-reviews-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: 30px;
}
.loan-review-card {
    background-color: var(--form-background);
    border: 1px solid var(--border-color);
    border-radius: 8px;
    padding: 25px;
    box-shadow: 0 4px 8px var(--shadow-subtle); /* rgba(0,0,0,0.05) est proche de --shadow-subtle */
    display: flex;
    flex-direction: column;
    height: 100%;
    box-sizing: border-box;
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.6s ease-out, transform 0.6s ease-out, box-shadow 0.3s ease;
    cursor: pointer;
}
.loan-review-card.is-visible {
    opacity: 1;
    transform: translateY(0);
}
.loan-review-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 16px var(--shadow-medium); /* rgba(0,0,0,0.1) est entre --shadow-subtle et --shadow-medium */
}
.loan-review-header {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
}
.loan-review-avatar {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 18px;
    font-weight: bold;
    margin-right: 15px;
    flex-shrink: 0;
    /* Background et color de l'avatar à définir si besoin (ex: var(--primary-color) et var(--section-text-color-light)) */
}
.loan-review-author-info {
    display: flex;
    flex-direction: column;
    flex-grow: 1;
    margin-right: 10px;
}
.loan-review-author-name {
    font-weight: bold;
    color: var(--text-color-dark);
    font-size: 16px;
}
.loan-review-date {
    font-size: 13px;
    color: var(--text-color-gray);
    margin-top: 2px;
}
.loan-review-source-logo {
    height: 20px;
    object-fit: contain;
    flex-shrink: 0;
}
.loan-review-rating {
    font-size: 16px;
    margin-bottom: 15px;
}
.loan-review-rating i {
    color: var(--google-star-yellow);
    margin-right: 2px;
}
.loan-review-text {
    font-size: 15px;
    color: var(--text-color-dark);
    line-height: 1.6;
    margin-bottom: 0;
    flex-grow: 1;
}
@media (max-width: 768px) {
    .loan-reviews-section { padding: 40px 0;        margin-left: 8px;
        margin-right: 8px; }
    .loan-title { font-size: 28px; }
    .loan-description { font-size: 16px; margin-bottom: 20px; }
    .loan-progress-bars-wrapper { flex-direction: column; gap: 20px; align-items: center; }
    .loan-progress-item { width: 100%; max-width: 350px; }
    .loan-reviews-grid { grid-template-columns: 1fr; gap: 20px; }
    .loan-review-card { padding: 20px; }
    .loan-review-avatar { width: 35px; height: 35px; font-size: 16px; margin-right: 10px; }
    .loan-review-author-info { font-size: 15px; } /* Devrait être loan-review-author-name */
    .loan-review-date { font-size: 12px; }
    .loan-review-source-logo { height: 18px; }
    .loan-review-rating { font-size: 14px; margin-bottom: 10px; }
    .loan-review-text { font-size: 14px; }
}
@media (min-width: 769px) and (max-width: 992px) {
    .loan-reviews-grid { grid-template-columns: repeat(2, 1fr); }
}

/* --- Section FAQ --- */
.faq-section {
    padding: 80px 0;
    background-color: transparent;
    font-family: var(--font-family-base);
    color: var(--text-color-dark);
}
.faq-container {
    max-width: 1000px;
    margin-left: 10px;
    margin-right: 10px;
    padding: 0 20px;
}
.faq-main-title {
    font-size: 28px;
    font-weight: bold;
    color: var(--text-color-dark);
    text-align: center;
    margin-bottom: 50px;
}
.faq-layout-grid {
    display: grid;
    grid-template-columns: 1fr 2fr;
    gap: 40px;
    align-items: start;
}
@media (max-width: 850px) {
    .faq-layout-grid { grid-template-columns: 1fr; gap: 30px; }
}
.faq-menu-column {
    padding-right: 20px;
}
@media (max-width: 850px) {
     .faq-menu-column { padding-right: 0; }
}
.faq-menu-title {
    font-size: 18px;
    font-weight: bold;
    color: var(--text-color-dark);
    margin-bottom: 15px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border-color);
    text-align: left;
}
@media (max-width: 850px) {
    .faq-menu-title { text-align: center; border-bottom: none; padding-bottom: 0; margin-bottom: 20px; }
}
.faq-menu {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: 5px;
}
@media (max-width: 850px) {
    .faq-menu { flex-direction: row; flex-wrap: wrap; justify-content: center; gap: 10px 15px; margin-bottom: 20px; }
}
.faq-menu-item {
    margin: 0;
}
@media (min-width: 851px) { .faq-menu-item { border-bottom: 1px solid var(--secondary-color); } } /* #eee est proche de --secondary-color */
@media (min-width: 851px) { .faq-menu-item:last-child { border-bottom: none; } }
.faq-menu-button {
    display: flex;
    align-items: center;
    width: 100%;
    text-align: left;
    padding: 12px 0;
    border: none;
    background-color: transparent;
    cursor: pointer;
    font-size: 15px;
    font-weight: 500;
    color: var(--text-color-gray);
    transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease;
}
@media (max-width: 850px) {
    .faq-menu-button { width: auto; padding: 8px 12px; font-size: 14px; border: 1px solid var(--border-color); border-radius: 20px; }
}
.faq-menu-button:hover {
    color: var(--primary-color);
}
.faq-menu-button.active {
    color: var(--primary-color);
    font-weight: bold;
    position: relative;
}
@media (min-width: 851px) {
    .faq-menu-button.active::after { content: ''; display: block; width: 4px; background-color: var(--primary-color); position: absolute; top: 0; right: -20px; bottom: 0; border-radius: 2px; }
}
@media (max-width: 850px) {
    .faq-menu-button.active { background-color: var(--primary-color); color: var(--section-text-color-light); border-color: var(--primary-color); }
}
.faq-menu-button .menu-icon {
    margin-right: 10px;
    font-size: 16px;
    color: var(--text-color-gray);
    transition: color 0.2s ease;
}
.faq-menu-button:hover .menu-icon {
    color: var(--primary-color);
}
.faq-menu-button.active .menu-icon {
    color: var(--primary-color);
}
@media (max-width: 850px) {
     .faq-menu-button.active .menu-icon { color: var(--section-text-color-light); }
}
.faq-content-column {
    /* Styles for content column */
}
.faq-category-content {
    display: none;
}
.faq-category-content.active {
     display: block;
}
.faq-accordion {
    border: none;
    border-radius: 0;
    overflow: hidden;
}
.faq-accordion-item {
    border-bottom: 1px solid var(--border-color);
    margin-bottom: 15px;
    padding-bottom: 15px;
}
.faq-accordion-item:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}
.faq-question-button {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;
    text-align: left;
    padding: 0;
    border: none;
    background-color: transparent;
    cursor: pointer;
    font-size: 16px;
    font-weight: bold;
    color: var(--text-color-dark);
    transition: color 0.2s ease;
}
.faq-question-button:hover {
     color: var(--primary-color);
}
.faq-question-button[aria-expanded="true"] {
    color: var(--primary-color);
}
.faq-question-button .question-text {
    margin-right: 15px;
    flex-grow: 1;
}
.faq-question-button .accordion-icon {
    font-size: 18px;
    color: var(--text-color-gray);
    transition: transform 0.2s ease, color 0.2s ease;
    flex-shrink: 0;
}
.faq-question-button:hover .accordion-icon {
    color: var(--primary-color);
}
.faq-question-button[aria-expanded="true"] .accordion-icon {
    color: var(--primary-color);
    transform: rotate(45deg);
}
.faq-answer-content {
    display: none;
    padding: 0;
    padding-top: 15px;
    font-size: 15px;
    color: var(--text-color-gray);
    line-height: 1.6;
}
.faq-answer-content p,
.faq-answer-content ul {
    margin-bottom: 1em;
}
.faq-answer-content p:last-child,
.faq-answer-content ul:last-child {
    margin-bottom: 0;
}
.faq-answer-content ul {
    list-style: disc;
    margin-left: 20px;
}
.faq-answer-content li {
    margin-bottom: 0.5em;
}
.faq-answer-content strong {
    color: var(--text-color-dark);
}
.faq-answer-content a.faq-link {
    color: var(--primary-color);
    text-decoration: underline;
    font-weight: 600;
    transition: color 0.2s ease;
}
.faq-answer-content a.faq-link:hover {
    color: var(--primary-hover-color);
}
.faq-answer-content.active {
    display: block;
}
.sr-only { /* Assuming this class is defined elsewhere or you want to keep it */
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
    overflow: hidden; clip: rect(0, 0, 0, 0); border: 0;
}

/* --- Section Contact --- */
.contact-section {
    padding: 60px 0;
    position: relative;
    z-index: 1;
    background-color: var(--background-light);
    font-family: var(--font-family-base);
    color: var(--text-color-dark);
    line-height: 1.6;
}
.contact-container {
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px;
}
.contact-box {
    background-color: var(--form-background);
    border-radius: 8px;
    box-shadow: 0 4px 15px var(--shadow-subtle); /* rgba(0,0,0,0.1) est entre subtle et medium */
    padding: 30px;
}
.main-contact-grid {
    display: grid;
    grid-template-columns: 2fr 3fr;
    gap: 40px;
    align-items: start;
}
@media (max-width: 850px) {
    .main-contact-grid { grid-template-columns: 1fr; gap: 30px; }
    .contact-info-column { order: -1; }
}
@media (max-width: 576px) {
     .contact-section { padding: 40px 0; }
     .contact-box { padding: 20px; }
}
.contact-info-column {
     display: flex;
     flex-direction: column;
     gap: 30px;
}
.section-title { /* Local section title, not to be confused with page titles */
    font-size: 22px;
    font-weight: bold;
    color: var(--text-color-dark);
    margin-bottom: 15px;
}
.section-description { /* Local section description */
    font-size: 15px;
    color: var(--text-color-gray);
    line-height: 1.5;
}
.contact-methods {
    display: flex;
    flex-direction: column;
    gap: 25px;
}
.contact-method-item {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    transition: transform 0.3s ease;
}
.contact-method-item:hover {
     transform: translateY(-3px);
}
.icon-circle {
    background-color: hsla(330, 85%, 55%, 0.1); /* Dérivé de --primary-color */
    color: var(--primary-color);
    width: 50px;
    height: 50px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    font-size: 20px;
}
.contact-text {
     flex-grow: 1;
}
.item-title { /* Specific to contact item */
    font-size: 16px;
    font-weight: bold;
    color: var(--text-color-dark);
    margin-bottom: 4px;
}
.item-value-link,
.item-value-address {
    display: block;
    font-size: 15px;
    color: var(--text-color-gray);
    font-weight: 600;
    text-decoration: none;
    transition: color 0.2s ease;
}
.item-value-link:hover {
    color: var(--primary-color);
    text-decoration: underline;
}
.item-value-address {
     font-style: normal;
}
.item-description { /* Specific to contact item */
    font-size: 12px;
    color: var(--text-color-gray);
    margin-top: 5px;
}
.contact-form-column {
    /* Styles for form column */
}
/* Reused Form Element Styles (from Loan Form CSS but applied here) */
.contact-form-column .form-section { /* Scoping to contact form */
     margin-bottom: 30px;
}
.contact-form-column .form-section:last-child {
    margin-bottom: 0;
}
.section-heading {
    font-size: 18px;
    font-weight: bold;
    color: var(--text-color-dark);
    margin-bottom: 20px;
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--border-color);
    padding-bottom: 10px;
}
.heading-number {
    background-color: var(--primary-color);
    color: var(--section-text-color-light);
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 15px;
    font-weight: bold;
    margin-right: 10px;
    margin-bottom: -25px !important; /* Gardé car spécifique pour positionnement */
    flex-shrink: 0;
}
.form-group {
    margin-bottom: 15px;
    flex-grow: 1;
}
.form-group:last-child {
     margin-bottom: 0;
}
.form-group-row {
    display: flex;
    gap: 15px;
    margin-bottom: 15px;
}
.form-group-row:last-child {
    margin-bottom: 0;
}
@media (max-width: 500px) {
     .form-group-row { flex-direction: column; gap: 0; }
     .form-group-row .form-group { margin-bottom: 15px; }
     .form-group-row .form-group:last-child { margin-bottom: 0; }
}
.form-group label {
    display: block;
    margin-bottom: 6px;
    font-weight: 500;
    color: var(--text-color-gray);
    font-size: 14px;
}
.required {
    color: var(--error-color);
    margin-left: 4px;
    font-weight: bold;
}
.form-group input[type="text"],
.form-group input[type="number"],
.form-group input[type="email"],
.form-group input[type="tel"],
.form-group select,
.form-group textarea {
    width: 100%;
    padding: 10px 12px;
    border: 1px solid var(--border-color);
    border-radius: 4px;
    font-size: 15px;
    color: var(--text-color-dark);
    transition: border-color 0.2s ease, box-shadow 0.2s ease;
    box-sizing: border-box;
    background-color: var(--form-background); /* Était #fff */
    appearance: none;
    resize: vertical;
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
    border-color: var(--primary-color);
    outline: none;
    box-shadow: 0 0 0 0.2rem hsla(330, 85%, 55%, 0.2); /* Gardé car spécifique */
}
.form-submit-section {
    margin-top: 25px;
    text-align: right;
}
@media (max-width: 576px) {
    .form-submit-section { text-align: center; }
    .form-submit-section .btn { width: 100%; }
}
.btn {
    padding: 12px 25px;
    border: none;
    border-radius: 4px;
    font-size: 16px;
    font-weight: bold;
    cursor: pointer;
    transition: background-color 0.2s ease, opacity 0.2s ease, box-shadow 0.2s ease;
    text-align: center;
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
}
.btn-primary {
    background-color: var(--primary-color);
    color: var(--section-text-color-light); /* Était #fff */
}
.btn-primary:hover {
    background-color: var(--primary-hover-color);
    box-shadow: 0 3px 10px hsla(330, 85%, 55%, 0.3); /* Gardé car spécifique */
}
.btn .fas {
    margin-right: 8px;
}
/* Contact Form 7 Specific Styles (déjà bien liées, mais vérifions) */
.wpcf7-response-output {
    margin-top: 20px;
    padding: 15px;
    border-radius: 4px;
    font-size: 14px;
    line-height: 1.4;
    border: 1px solid var(--border-color); /* Était #ddd */
}
.wpcf7-response-output.wpcf7-mail-sent-ok {
    border-color: var(--success-color);
    background-color: hsla(140, 65%, 65%, 0.1); /* Dérivé de --success-color */
    color: var(--success-color); /* Était #155724, rendu plus clair */
}
.wpcf7-response-output.wpcf7-mail-sent-ng,
.wpcf7-response-output.wpcf7-validation-errors {
    border-color: var(--error-color);
    background-color: hsla(0, 80%, 60%, 0.1); /* Dérivé de --error-color */
    color: var(--error-color); /* Était #721c24, rendu plus clair */
}
.wpcf7-not-valid-tip {
    color: var(--error-color);
    font-size: 12px;
    margin-top: 4px;
    display: block;
}
input.wpcf7-not-valid,
textarea.wpcf7-not-valid,
select.wpcf7-not-valid {
    border-color: var(--error-color) !important;
}
.wpcf7-spinner {
    visibility: hidden;
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--section-text-color-light-transparent); /* Approx rgba(255,255,255,0.5) */
    border-top-color: var(--section-text-color-light); /* Était #fff */
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    margin-right: 8px;
    vertical-align: middle;
}
.wpcf7-submitting .wpcf7-spinner {
    visibility: visible;
}
@keyframes spin {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
.wpcf7-submitting .btn {
    justify-content: center;
}
/* --- Accessibility --- */

/* Visually hidden class for screen readers */

.sr-only {

    position: absolute;

    width: 1px;

    height: 1px;

    margin: -1px;

    padding: 0;

    overflow: hidden;

    clip: rect(0, 0, 0, 0);

    border: 0;

}
/* formulaire**/

/* Styles généraux */
.simulator-container {
    font-family: 'Montserrat', sans-serif;
    max-width: 1100px;
    margin: 0 auto;
    padding: 2rem;
    color: #333;
}

.simulator-title {
    font-size: 28px;
    font-weight: 700;
    color: #333;
    margin-bottom: 0.5rem;
}

.simulator-subtitle {
    font-size: 16px;
    color: #666;
    margin-bottom: 2rem;
}

.simulator-content {
    display: flex;
    flex-wrap: wrap;
    gap: 30px;
}

/* Styles pour le formulaire (partie gauche) */
.simulator-form {
    flex: 1;
    min-width: 300px;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    padding: 1.5rem;
    position: relative;
}

.simulator-steps {
    display: flex;
    margin-bottom: 1.5rem;
    gap: 10px;
}

.step-indicator {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    background-color: #e9e9e9;
    color: #999;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: bold;
    font-size: 14px;
}

.step-indicator.active {
    background-color: #ff4081;
    color: white;
}

.form-section-title {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 1.5rem;
    display: flex;
    align-items: center;
    gap: 10px;
}

.currency-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    background-color: #ff4081;
    color: white;
    border-radius: 50%;
    font-size: 14px;
}

.calculator-icon {
    font-size: 20px;
    margin-right: 8px;
}

.form-group {
    margin-bottom: 1.5rem;
}

.form-row {
    display: flex;
    gap: 20px;
    margin-bottom: 1.5rem;
}

.form-group.half {
    flex: 1;
}

label {
    display: block;
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 8px;
}

.required {
    color: #ff4081;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="number"],
select,
textarea {
    width: 100%;
    padding: 12px 15px;
    border: 1px solid #ddd;
    border-radius: 6px;
    font-size: 15px;
    transition: border-color 0.3s;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="tel"]:focus,
input[type="number"]:focus,
select:focus,
textarea:focus {
    border-color: #ff4081;
    outline: none;
    box-shadow: 0 0 0 2px rgba(255, 64, 129, 0.2);
}

.amount-display,
.duration-display {
    text-align: center;
    margin-bottom: 10px;
    font-size: 24px;
    font-weight: 700;
    color: #ff4081;
}

input[type="range"] {
    width: 100%;
    -webkit-appearance: none;
    height: 6px;
    background: #e9e9e9;
    border-radius: 3px;
    margin: 10px 0;
}

input[type="range"]::-webkit-slider-thumb {
    -webkit-appearance: none;
    width: 20px;
    height: 20px;
    background: #ff4081;
    border-radius: 50%;
    cursor: pointer;
}

.range-limits {
    display: flex;
    justify-content: space-between;
    font-size: 12px;
    color: #888;
    margin-top: 5px;
}

.form-actions {
    display: flex;
    justify-content: space-between;
    margin-top: 2rem;
}

.btn-next,
.btn-prev,
input[type="submit"] {
    padding: 12px 20px;
    border: none;
    border-radius: 6px;
    font-weight: 600;
    font-size: 14px;
    cursor: pointer;
    display: flex;
    align-items: center;
    gap: 8px;
    transition: all 0.3s;
}

.btn-next,
input[type="submit"] {
    background-color: #ff4081;
    color: white;
}

.btn-prev {
    background-color: #f0f0f0;
    color: #555;
}

.btn-next:hover,
input[type="submit"]:hover {
    background-color: #e03b75;
}

.btn-prev:hover {
    background-color: #e5e5e5;
}

.arrow-icon {
    font-size: 18px;
}

/* Styles pour le calculateur (partie droite) */
.simulator-result {
    flex: 0 0 350px;
}

.result-card {
    background-color: #fff5f8;
    border-radius: 8px;
    padding: 1.5rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.result-title {
    font-size: 20px;
    font-weight: 600;
    margin-bottom: 1.5rem;
    color: #333;
}

.result-monthly {
    text-align: center;
    margin-bottom: 1rem;
}

.monthly-label {
    font-size: 14px;
    color: #666;
    margin-bottom: 5px;
}

.monthly-amount {
    font-size: 36px;
    font-weight: 700;
    color: #ff4081;
}

.taeg-info {
    text-align: center;
    font-size: 14px;
    color: #666;
    margin-bottom: 1.5rem;
}

.loan-details {
    border-top: 1px solid #ffe0eb;
    padding-top: 1rem;
    margin-bottom: 1.5rem;
}

.detail-row {
    display: flex;
    justify-content: space-between;
    margin-bottom: 12px;
}

.detail-label {
    font-size: 14px;
    color: #666;
}

.detail-value {
    font-weight: 600;
    color: #333;
}

.dropdown-select {
    position: relative;
}

.dropdown-select select {
    width: 100%;
    padding: 8px 12px;
    border: 1px solid #ddd;
    border-radius: 6px;
    appearance: none;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'%3E%3C/polyline%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 10px center;
    background-size: 16px;
}

.toggle-table-btn {
    background-color: transparent;
    border: none;
    color: #ff4081;
    font-size: 14px;
    font-weight: 600;
    cursor: pointer;
    padding: 0;
    display: flex;
    align-items: center;
    gap: 5px;
}

.toggle-table-btn:hover {
    text-decoration: underline;
}

.amortization-table {
    margin-top: 1rem;
    max-height: 300px;
    overflow-y: auto;
    border: 1px solid #ffe0eb;
    border-radius: 6px;
}

.amortization-table table {
    width: 100%;
    border-collapse: collapse;
}

.amortization-table th, .amortization-table td {
    padding: 8px 12px;
    text-align: right;
    font-size: 13px;
    border-bottom: 1px solid #ffe0eb;
}

.amortization-table th {
    background-color: #fff5f8;
    font-weight: 600;
    text-align: center;
}

.amortization-table tr:last-child td {
    border-bottom: none;
}

.privacy-consent {
    background-color: #f9f9f9;
    padding: 15px;
    border-radius: 6px;
    font-size: 13px;
    color: #666;
}

/* Responsive */
@media (max-width: 768px) {
    .simulator-content {
        flex-direction: column;
    }
    
    .simulator-form,
    .simulator-result {
        width: 100%;
    }
    
    .form-row {
        flex-direction: column;
        gap: 10px;
    }
}
.form-card{
	padding:20px;
}
.input-group p{
	 margin-top:-10px;
}