/* ==========================================================================
   AFR Financement La Rochelle — charte graphique (extension AFR Outils)
   Conçue pour Elementor Pro + Hello Elementor.
   Les classes ci-dessous s'appliquent aux sections, colonnes et widgets
   via le champ « Avancé > Classes CSS » d'Elementor.
   ========================================================================== */

:root{
  --afr-marine:#16385C;
  --afr-marine-700:#1E4772;
  --afr-marine-500:#2A5D8F;
  --afr-accent:#2F80C9;
  --afr-accent-d:#1F5F96;
  --afr-sable:#F6F3EE;
  --afr-encre:#12202E;
  --afr-gris:#5A6B7B;
  --afr-ligne:#E2E8EE;
  --afr-err:#D64545;
  --afr-r:14px;
  --afr-r-sm:9px;
  --afr-ombre-s:0 1px 2px rgba(22,56,92,.06),0 2px 8px rgba(22,56,92,.06);
  --afr-ombre-m:0 6px 24px rgba(22,56,92,.10);
  --afr-ombre-l:0 18px 50px rgba(22,56,92,.16);
}

body{color:var(--afr-encre);-webkit-font-smoothing:antialiased;}
:focus-visible{outline:3px solid var(--afr-accent);outline-offset:2px;border-radius:4px;}

/* --------------------------------------------------------------------------
   1. Sections
   -------------------------------------------------------------------------- */
.afr-section--sable{background:var(--afr-sable);}
.afr-section--marine{background:var(--afr-marine);color:#D9E3EC;}
.afr-section--marine h1,.afr-section--marine h2,.afr-section--marine h3,
.afr-section--marine h4,
.afr-section--marine .elementor-heading-title,
.afr-section--marine .elementor-widget-heading .elementor-heading-title{color:#fff!important;}
.afr-page-head{background:var(--afr-sable);border-bottom:1px solid var(--afr-ligne);}

.afr-eyebrow,.afr-eyebrow .elementor-heading-title{
  font-size:.78rem!important;font-weight:700;letter-spacing:.13em;
  text-transform:uppercase;color:var(--afr-accent-d)!important;margin-bottom:.4rem;
}
.afr-section--marine .afr-eyebrow .elementor-heading-title,
.afr-hero .afr-eyebrow .elementor-heading-title,
.afr-hero .elementor-widget-heading.afr-eyebrow .elementor-heading-title{color:#8FC2EC!important;}

.afr-lead,.afr-lead p{font-size:1.12rem;color:var(--afr-gris);}
.afr-note,.afr-note p{font-size:.78rem;color:var(--afr-gris);line-height:1.55;}
.afr-delai,.afr-delai p{
  font-size:.74rem;font-weight:800;letter-spacing:.06em;text-transform:uppercase;
  color:var(--afr-accent-d);margin:0 0 8px;
}
.afr-fil,.afr-fil p{font-size:.86rem;color:var(--afr-gris);}
.afr-fil a{color:var(--afr-gris);}

/* Séparateur en vagues */
.afr-vagues{color:#fff;line-height:0;}
.afr-vagues svg{display:block;width:100%;height:auto;}

/* --------------------------------------------------------------------------
   2. Boutons
   -------------------------------------------------------------------------- */
.elementor-button{
  border-radius:999px;font-weight:700;padding:15px 30px;
  transition:transform .15s ease,background .15s ease,box-shadow .15s ease;
  border:2px solid transparent;
}
.elementor-button:hover{transform:translateY(-2px);}

.afr-b-accent .elementor-button{background:var(--afr-accent);color:#fff;box-shadow:0 6px 18px rgba(47,128,201,.32);}
.afr-b-accent .elementor-button:hover{background:var(--afr-accent-d);color:#fff;}
.afr-b-marine .elementor-button{background:var(--afr-marine);color:#fff;}
.afr-b-marine .elementor-button:hover{background:var(--afr-marine-700);color:#fff;}
.afr-b-fantome .elementor-button{background:transparent;color:#fff;border-color:rgba(255,255,255,.55);}
.afr-b-fantome .elementor-button:hover{background:rgba(255,255,255,.12);color:#fff;}
.afr-b-contour .elementor-button{background:transparent;color:var(--afr-marine);border-color:var(--afr-marine);}
.afr-b-contour .elementor-button:hover{background:var(--afr-marine);color:#fff;}

/* Boutons rendus par l'extension (simulateur, formulaire) */
.afr-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:.55em;
  padding:15px 30px;border-radius:999px;font-weight:700;font-size:1rem;
  border:2px solid transparent;cursor:pointer;text-decoration:none;line-height:1.2;
  transition:transform .15s ease,background .15s ease;text-align:center;
}
.afr-btn:hover{transform:translateY(-2px);text-decoration:none;}
.afr-btn--accent{background:var(--afr-accent);color:#fff;box-shadow:0 6px 18px rgba(47,128,201,.32);}
.afr-btn--accent:hover{background:var(--afr-accent-d);color:#fff;}
.afr-btn--marine{background:var(--afr-marine);color:#fff;}
.afr-btn--marine:hover{background:var(--afr-marine-700);color:#fff;}
.afr-btn--bloc{width:100%;}
.afr-btn--grand{padding:17px 34px;font-size:1.06rem;}

/* --------------------------------------------------------------------------
   3. En-tête
   -------------------------------------------------------------------------- */
.afr-entete{
  position:relative;z-index:60;   /* le sous-menu doit passer au-dessus des sections suivantes */
  background:rgba(255,255,255,.94)!important;
  backdrop-filter:saturate(180%) blur(10px);
  border-bottom:1px solid var(--afr-ligne);
}
.afr-tel{
  display:inline-flex;align-items:center;gap:8px;font-weight:800;color:var(--afr-marine);
  white-space:nowrap;text-decoration:none;font-size:1.02rem;
}
.afr-tel:hover{color:var(--afr-accent-d);text-decoration:none;}
.afr-tel svg{flex:0 0 18px;}
.afr-entete .elementor-button{white-space:nowrap;padding:13px 24px;}
.afr-entete .elementor-widget-wrap{justify-content:center;}

/* Le logo ne doit jamais s'afficher à sa taille naturelle (512 px) : certaines
   versions d'Elementor n'appliquent pas la largeur réglée dans le modèle. */
.afr-entete img,
.afr-entete .elementor-widget-theme-site-logo img,
.afr-entete .elementor-widget-image img{max-height:48px!important;width:auto!important;}

/* Garde-fou : si l'en-tête du thème Hello s'affiche malgré le Theme Builder,
   on neutralise son logo géant et sa phrase d'accroche. */
.site-header .site-description,
.site-header .site-branding__description,
.afr-entete .site-description{display:none!important;}
.site-header img,
.site-header .custom-logo,
.site-header .site-logo img{max-height:48px!important;width:auto!important;}
body.afr-entete-elementor .site-header{display:none!important;}

/* Bloc de marque : lion + nom commercial */
.afr-logo{
  display:inline-flex;align-items:center;gap:11px;text-decoration:none;
  line-height:1.15;color:var(--afr-marine);
}
.afr-logo:hover{text-decoration:none;}
.afr-logo img{width:52px;height:52px;max-height:52px!important;flex:0 0 52px;object-fit:contain;}
.afr-logo__texte{display:flex;flex-direction:column;}
.afr-logo__texte strong{
  font-size:1.12rem;font-weight:800;letter-spacing:-.015em;color:var(--afr-marine);
  white-space:nowrap;
}
.afr-logo__texte span{
  font-size:.74rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;
  color:var(--afr-accent-d);white-space:nowrap;
}
.afr-col-logo .elementor-widget-wrap{justify-content:flex-start!important;}
/* Le nom commercial et la mention restent visibles à toutes les tailles :
   ils sont l'essentiel de l'identité, le lion seul ne se lit pas. */
@media (max-width:1100px){
  .afr-logo__texte strong{font-size:1.02rem;}
}
@media (max-width:520px){
  .afr-logo{gap:9px;}
  .afr-logo img{width:44px;height:44px;flex:0 0 44px;}
  .afr-logo__texte strong{font-size:.95rem;}
  .afr-logo__texte span{font-size:.63rem;letter-spacing:.04em;}
}
@media (max-width:360px){
  .afr-logo img{width:38px;height:38px;flex:0 0 38px;}
  .afr-logo__texte strong{font-size:.88rem;}
  .afr-logo__texte span{font-size:.58rem;}
}

/* Répartition de l'en-tête : les colonnes se dimensionnent sur leur contenu
   plutôt que sur un pourcentage fixe, sinon le menu passe à la ligne dès qu'une
   entrée est ajoutée. */
@media (min-width:1025px){
  .afr-entete > .elementor-container{max-width:1240px!important;flex-wrap:nowrap!important;}
  .afr-entete .afr-col-logo,
  .afr-entete .afr-col-actions{width:auto!important;flex:0 0 auto!important;}
  .afr-entete .afr-col-menu{width:auto!important;flex:1 1 auto!important;}
  .afr-menu .elementor-nav-menu{flex-wrap:nowrap!important;}
  .afr-menu .elementor-nav-menu > li > a.elementor-item{
    padding-left:11px!important;padding-right:11px!important;font-size:.98rem;
  }
}
@media (min-width:1025px) and (max-width:1300px){
  .afr-menu .elementor-nav-menu > li > a.elementor-item{
    padding-left:8px!important;padding-right:8px!important;font-size:.93rem;
  }
  .afr-entete .elementor-button{padding:12px 18px;font-size:.94rem;}
  /* Le numéro passe en icône seule : le lien d'appel reste, la place est rendue au menu. */
  .afr-entete .afr-tel span{display:none;}
  .afr-entete .afr-tel svg{width:22px;height:22px;flex:0 0 22px;}
}
/* Sous 1160 px, la place manque pour tenir le numéro, le menu et le bouton sur
   une seule ligne. On retire le numéro : le bouton reste, et la barre d'appel
   fixe en bas d'écran prend le relais sur mobile. */
@media (max-width:1160px){
  .afr-entete .elementor-widget-shortcode .afr-tel{display:none;}
}

/* Menu principal */
.afr-menu .elementor-item{font-weight:600;color:var(--afr-marine);white-space:nowrap;}
.afr-menu .elementor-item:hover,
.afr-menu .elementor-item.elementor-item-active{color:var(--afr-accent-d);}
.afr-menu .sub-menu{
  border-radius:var(--afr-r);box-shadow:var(--afr-ombre-m);
  border:1px solid var(--afr-ligne);padding:8px;
  z-index:70;background:#fff;
}
.afr-menu .sub-menu .elementor-sub-item{border-radius:9px;font-weight:600;}

/* Sous-menu « Financements » sur deux colonnes : par besoin / par métier.
   Si la grille n'est pas appliquée, la liste reste lisible en une colonne. */
@media (min-width:1025px){
  .afr-menu .sub-menu{
    columns:2;column-gap:26px;padding:14px 18px 10px;
    width:max-content!important;max-width:600px;
  }
  .afr-menu .sub-menu > li{break-inside:avoid;width:100%;}
  .afr-menu .sub-menu > li.afr-groupe ~ li.afr-groupe{break-before:column;}
  .afr-menu .sub-menu > li.afr-groupe:first-child{margin-top:0;}
}
/* Intitulé de groupe : repère visuel, pas un lien */
.afr-menu .sub-menu > li.afr-groupe > a{
  pointer-events:none;cursor:default;
  font-size:.72rem!important;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  color:var(--afr-gris)!important;padding-bottom:2px!important;
  border-bottom:1px solid var(--afr-ligne);margin-bottom:4px;
}
.afr-menu .sub-menu > li.afr-groupe > a:hover{background:transparent!important;}

/* --------------------------------------------------------------------------
   3 bis. Illustrations de page
   -------------------------------------------------------------------------- */
.afr-illustration{background:#fff;}
.afr-illus{margin:0;}
.afr-illus__img{
  display:block;width:100%;height:auto;max-height:400px;object-fit:cover;
  border-radius:var(--afr-r);box-shadow:var(--afr-ombre-m);
}
.afr-legende,.afr-legende p{
  font-size:.82rem;color:var(--afr-gris);margin:10px 0 0;font-style:italic;
}
@media (max-width:781px){
  .afr-illus__img{max-height:230px;}
}

/* Note d'astérisque sur fond marine */
.afr-asterisque,.afr-asterisque p{
  font-size:.78rem;line-height:1.5;color:rgba(255,255,255,.62);
  margin:18px 0 0;max-width:78ch;
}
.afr-stat sup{font-size:.62em;top:-.5em;position:relative;}

/* --------------------------------------------------------------------------
   3 ter. Articles (rubrique Actualités)
   -------------------------------------------------------------------------- */
.afr-chapo,p.afr-chapo{
  font-size:1.14rem;line-height:1.65;color:var(--afr-gris);
  border-left:4px solid var(--afr-accent);padding-left:18px;margin-bottom:26px;
}
.afr-encadre{
  background:var(--afr-sable);border:1px solid var(--afr-ligne);
  border-radius:var(--afr-r);padding:22px 26px;margin:30px 0;
}
.afr-encadre h3{margin-top:0;color:var(--afr-marine);}
.afr-encadre ul{margin-bottom:0;}
.afr-article-cta{
  background:linear-gradient(135deg,var(--afr-marine) 0%,var(--afr-marine-500) 100%);
  color:#E7EFF6;border-radius:var(--afr-r);padding:26px 30px;margin:34px 0 0;
}
.afr-article-cta h3{margin-top:0;color:#fff;}
.afr-article-cta a{color:#8FC2EC;font-weight:700;}
.afr-article-cta a:hover{color:#fff;}

/* --------------------------------------------------------------------------
   4. Bandeau d'accueil
   -------------------------------------------------------------------------- */
.afr-hero{
  position:relative;overflow:hidden;color:#E7EFF6;
  background:
    radial-gradient(900px 520px at 78% -10%,rgba(47,128,201,.30),transparent 62%),
    radial-gradient(760px 460px at 6% 100%,rgba(29,78,130,.50),transparent 62%),
    linear-gradient(158deg,#061A2E 0%,var(--afr-marine) 48%,#003A6E 100%);
}
.afr-hero::before{
  content:"";position:absolute;inset:auto 0 0 0;height:300px;
  background:url("../img/tours-la-rochelle.svg") no-repeat bottom left 24px;
  background-size:auto 260px;opacity:.10;pointer-events:none;
}
.afr-hero > .elementor-container,
.afr-hero > .e-con-inner{position:relative;z-index:1;}
.afr-hero h1,.afr-hero h2,.afr-hero h3,
.afr-hero .elementor-heading-title,
.afr-hero .elementor-widget-heading .elementor-heading-title{color:#fff!important;}
.afr-hero em,.afr-hero .elementor-heading-title em{font-style:normal;color:#8FC2EC!important;}
.afr-hero .afr-lead,.afr-hero .afr-lead p,
.afr-hero .elementor-widget-text-editor.afr-lead p{color:#C3D3E1!important;font-size:1.16rem;}

/* Portrait + carte conseiller */
.afr-hero-portrait{position:relative;}
.afr-hero-portrait img{border-radius:22px;box-shadow:0 26px 60px rgba(3,14,26,.45);display:block;width:100%;}
.afr-carte-conseiller{
  position:relative;z-index:2;
  margin:-78px 18px 0!important;
  background:rgba(255,255,255,.96);backdrop-filter:blur(6px);
  border-radius:14px;padding:14px 18px;color:var(--afr-encre);
  box-shadow:0 8px 26px rgba(3,14,26,.28);
}
.afr-carte-conseiller p{margin:0;}
.afr-carte-conseiller .nom{display:block;font-weight:800;color:var(--afr-marine);font-size:1.05rem;line-height:1.25;}
.afr-carte-conseiller .role{display:block;font-size:.82rem;color:var(--afr-gris);margin-bottom:6px;}
.afr-carte-conseiller .tel{font-weight:800;color:var(--afr-accent-d);text-decoration:none;font-size:.98rem;}

/* Points de réassurance */
.afr-badges{display:flex;flex-wrap:wrap;gap:10px 22px;font-size:.9rem;color:#A9C0D3;margin:0;padding:0;list-style:none;}
.afr-badges li{display:inline-flex;align-items:center;gap:7px;margin:0;}
.afr-badges svg{flex:0 0 16px;color:#8FC2EC;}

/* --------------------------------------------------------------------------
   5. Cartes, étapes, listes
   -------------------------------------------------------------------------- */
.afr-carte > .elementor-widget-wrap,
.afr-carte > .elementor-element-populated{
  background:#fff;border:1px solid var(--afr-ligne);border-radius:var(--afr-r);
  padding:28px!important;box-shadow:var(--afr-ombre-s);
  transition:transform .18s ease,box-shadow .18s ease;
}
.afr-carte:hover > .elementor-widget-wrap,
.afr-carte:hover > .elementor-element-populated{transform:translateY(-4px);box-shadow:var(--afr-ombre-m);}
.afr-carte p,.afr-carte li{color:var(--afr-gris);font-size:.97rem;}

.afr-picto img,.afr-picto svg{width:52px;height:52px;padding:13px;border-radius:13px;
  background:linear-gradient(135deg,rgba(47,128,201,.15),rgba(29,78,130,.14));box-sizing:border-box;}

/* Liste à puces cochées */
.afr-checks ul{list-style:none;padding-left:0;margin-left:0;}
.afr-checks li{position:relative;padding-left:32px;margin-bottom:12px;list-style:none;}
.afr-checks li::before{
  content:"";position:absolute;left:0;top:.3em;width:20px;height:20px;border-radius:50%;
  background:rgba(47,128,201,.16)
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%231F5F96' stroke-width='3.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")
    no-repeat center / 13px;
}

/* Étapes numérotées */
.afr-etape > .elementor-widget-wrap{position:relative;padding-top:56px!important;}
.afr-etape > .elementor-widget-wrap::before{
  position:absolute;top:0;left:0;width:40px;height:40px;border-radius:50%;
  background:var(--afr-marine);color:#fff;display:grid;place-items:center;font-weight:800;
}
.afr-etape--1 > .elementor-widget-wrap::before{content:"1";}
.afr-etape--2 > .elementor-widget-wrap::before{content:"2";}
.afr-etape--3 > .elementor-widget-wrap::before{content:"3";}
.afr-etape--4 > .elementor-widget-wrap::before{content:"4";}

/* Chiffres clés */
.afr-stat .elementor-heading-title,
.afr-stat .elementor-widget-heading .elementor-heading-title{
  font-size:2.4rem!important;font-weight:800;color:#fff!important;line-height:1.1;}
.afr-stat p,.afr-stat .elementor-widget-text-editor p{font-size:.92rem;color:#A9C0D3!important;margin:0;}

/* Communes desservies */
.afr-tags ul{display:flex;flex-wrap:wrap;gap:9px;justify-content:center;list-style:none;padding:0;margin:0;}
.afr-tags li{
  background:#fff;border:1px solid var(--afr-ligne);border-radius:999px;padding:7px 16px;
  font-size:.9rem;color:var(--afr-marine);font-weight:600;margin:0;
}

/* Pastille de confirmation (page « merci ») */
.afr-picto-ok{width:74px;height:74px;border-radius:20px;display:grid;place-items:center;margin:0 auto 22px;
  background:linear-gradient(135deg,rgba(47,128,201,.15),rgba(29,78,130,.14));}

/* Citation du conseiller */
.afr-citation{border-left:4px solid var(--afr-accent);padding-left:18px;}
.afr-citation p{font-size:1.06rem;font-style:italic;color:var(--afr-encre);}
.afr-citation cite{display:block;font-style:normal;font-weight:700;color:var(--afr-marine);font-size:.95rem;}

/* Bandeau d'appel à l'action */
.afr-cta{border-radius:20px;overflow:hidden;}
.afr-cta h1,.afr-cta h2,.afr-cta h3,
.afr-cta .elementor-heading-title,
.afr-cta .elementor-widget-heading .elementor-heading-title{color:#fff!important;}
.afr-cta p,.afr-cta .elementor-widget-text-editor p{color:#C3D3E1!important;}
.afr-cta .elementor-widget-wrap{align-items:center;}
.afr-cta .elementor-button{white-space:nowrap;}

/* --------------------------------------------------------------------------
   6. FAQ (accordéon Elementor)
   -------------------------------------------------------------------------- */
.afr-faq .elementor-accordion-item{
  background:#fff;border:1px solid var(--afr-ligne)!important;border-radius:var(--afr-r);
  margin-bottom:12px;box-shadow:var(--afr-ombre-s);overflow:hidden;
}
.afr-faq .elementor-tab-title{padding:18px 22px;font-weight:700;color:var(--afr-marine);}
.afr-faq .elementor-tab-title.elementor-active{color:var(--afr-accent-d);}
.afr-faq .elementor-tab-content{padding:0 22px 20px;color:var(--afr-gris);border:0!important;}

/* --------------------------------------------------------------------------
   7. Simulateur
   -------------------------------------------------------------------------- */
.afr-sim{background:#fff;border-radius:20px;padding:28px;box-shadow:var(--afr-ombre-l);color:var(--afr-encre);}
.afr-sim .afr-sim__titre{font-size:1.28rem;margin:0 0 .25em;color:var(--afr-marine);font-weight:700;}
.afr-sim__hint{font-size:.87rem;color:var(--afr-gris);margin-bottom:1.2em;}
.afr-champ{margin-bottom:16px;}
.afr-champ label{display:block;font-weight:700;font-size:.9rem;margin-bottom:6px;color:var(--afr-marine);}
.afr-champ .afr-val{float:right;font-weight:800;color:var(--afr-accent-d);}
.afr-sim input[type=range]{width:100%;accent-color:var(--afr-accent);height:26px;cursor:pointer;}
.afr-sim__res{background:var(--afr-sable);border:1px solid var(--afr-ligne);border-radius:var(--afr-r);
  padding:18px;text-align:center;margin:6px 0 16px;}
.afr-sim__res .k{font-size:.82rem;color:var(--afr-gris);text-transform:uppercase;letter-spacing:.09em;font-weight:700;}
.afr-sim__res .v{font-size:2.3rem;font-weight:800;color:var(--afr-marine);line-height:1.1;}
.afr-sim__res .v span{font-size:1rem;font-weight:600;color:var(--afr-gris);}
.afr-sim__detail{display:flex;justify-content:space-between;gap:12px;font-size:.86rem;color:var(--afr-gris);margin-top:10px;}
.afr-sim__detail b{color:var(--afr-encre);display:block;}
.legal-note{font-size:.75rem;color:var(--afr-gris);line-height:1.5;}

/* --------------------------------------------------------------------------
   8. Formulaire
   -------------------------------------------------------------------------- */
.afr-form-wrap{background:#fff;border:1px solid var(--afr-ligne);border-radius:20px;padding:34px;box-shadow:var(--afr-ombre-m);}
.afr-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;}
.afr-form-grid .afr-full{grid-column:1/-1;}
.afr-form-wrap input[type=text],.afr-form-wrap input[type=email],
.afr-form-wrap input[type=tel],.afr-form-wrap input[type=number],
.afr-form-wrap select,.afr-form-wrap textarea{
  width:100%;padding:13px 15px;border:1.5px solid var(--afr-ligne);border-radius:var(--afr-r-sm);
  font-family:inherit;font-size:1rem;color:var(--afr-encre);background:#fff;
  transition:border-color .15s,box-shadow .15s;
}
.afr-form-wrap input:focus,.afr-form-wrap select:focus,.afr-form-wrap textarea:focus{
  border-color:var(--afr-accent);box-shadow:0 0 0 3px rgba(47,128,201,.15);outline:none;
}
.afr-form-wrap textarea{min-height:110px;resize:vertical;}
.afr-form-wrap select{appearance:none;padding-right:40px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%235A6B7B' stroke-width='2.5' stroke-linecap='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 14px center;background-size:16px;}
.afr-req{color:var(--afr-err);}
.afr-consent{display:flex;gap:11px;align-items:flex-start;font-size:.85rem;color:var(--afr-gris);margin:6px 0 18px;}
.afr-consent input{margin-top:4px;width:18px;height:18px;accent-color:var(--afr-accent);flex:0 0 18px;}
.afr-hp{position:absolute!important;left:-9999px!important;}
.afr-msg{padding:14px 18px;border-radius:var(--afr-r-sm);margin-bottom:20px;font-weight:600;font-size:.95rem;}
.afr-msg--ok{background:rgba(14,159,110,.12);color:#0A7A54;border:1px solid rgba(14,159,110,.3);}
.afr-msg--err{background:rgba(214,69,69,.1);color:#A83232;border:1px solid rgba(214,69,69,.28);}

/* Formulaire Elementor Pro, si vous préférez l'utiliser */
.afr-form-elementor .elementor-field-group > label{font-weight:700;font-size:.9rem;color:var(--afr-marine);margin-bottom:6px;}
.afr-form-elementor .elementor-field{border:1.5px solid var(--afr-ligne)!important;border-radius:var(--afr-r-sm)!important;padding:13px 15px!important;}
.afr-form-elementor .elementor-button{border-radius:999px;}

/* --------------------------------------------------------------------------
   9. Contenu long (pages légales)
   -------------------------------------------------------------------------- */
.afr-prose h2{font-size:1.45rem;margin-top:2em;color:var(--afr-marine);}
.afr-prose h3{font-size:1.08rem;margin-top:1.6em;color:var(--afr-marine);}
.afr-prose p,.afr-prose li{color:var(--afr-gris);}

/* --------------------------------------------------------------------------
   10. Pied de page
   -------------------------------------------------------------------------- */
.afr-pied{background:#07192C;color:#93A9BC;font-size:.93rem;}
.afr-pied h2,.afr-pied h3,.afr-pied h4,
.afr-pied .elementor-heading-title,
.afr-pied .elementor-widget-heading .elementor-heading-title{color:#fff!important;font-size:.95rem;}
.afr-pied p,.afr-pied .elementor-widget-text-editor p{color:#93A9BC;}
.afr-pied a{color:#B7C8D8;}
.afr-pied a:hover{color:#fff;}
.afr-pied ul{list-style:none;padding:0;margin:0;}
.afr-pied li{margin-bottom:9px;}
.afr-pied img{background:#fff;border-radius:50%;padding:3px;}
.afr-pied-legal,.afr-pied-legal p{font-size:.8rem;color:#6E8399;line-height:1.6;}
.afr-pied-bas,.afr-pied-bas p{font-size:.84rem;margin:0;}

/* --------------------------------------------------------------------------
   11. Barre d'action mobile
   -------------------------------------------------------------------------- */
.afr-mobile-bar{
  display:none;position:fixed;left:0;right:0;bottom:0;z-index:9999;
  background:#fff;border-top:1px solid var(--afr-ligne);padding:9px 12px;gap:9px;
  box-shadow:0 -4px 20px rgba(22,56,92,.12);
}
.afr-mobile-bar .afr-btn{flex:1;padding:13px 10px;font-size:.95rem;}

/* --------------------------------------------------------------------------
   12. Adaptations mobile
   -------------------------------------------------------------------------- */
@media (max-width:767px){
  body{padding-bottom:66px;}
  .afr-mobile-bar{display:flex;}
  .afr-form-grid{grid-template-columns:1fr;}
  .afr-form-wrap{padding:24px;}
  .afr-sim{padding:22px;}
  .afr-hero::before{height:150px;background-size:auto 150px;background-position:bottom left -20px;opacity:.14;}
  .afr-carte-conseiller{margin:-64px 12px 0!important;padding:12px 14px;}
  .afr-badges{gap:8px 16px;font-size:.85rem;}
  .afr-etape > .elementor-widget-wrap{padding-top:0!important;padding-left:56px!important;}
  .afr-etape > .elementor-widget-wrap::before{top:2px;}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important;}
}
@media print{
  .afr-entete,.afr-pied,.afr-mobile-bar,.elementor-button{display:none!important;}
}
