/* Ajustements de l'accueil sur la base graphique de Claude. */
.accueil-heros{background:#fff;color:var(--texte);overflow:hidden}
.accueil-heros::after{display:none}
.accueil-heros__grille{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center;padding-top:64px;padding-bottom:70px}
.accueil-heros h1{color:var(--nuit);max-width:18ch;font-size:clamp(44px,3.9vw,62px);line-height:1.06;letter-spacing:-.025em;margin-bottom:24px}
.accueil-heros h1 span{display:block;color:var(--accent);margin-top:6px}
.accueil-heros .heros__texte{color:var(--texte);font-size:17px;line-height:1.8;max-width:49ch}
.accueil-reassurance{list-style:none;margin:24px 0;padding:0;display:grid;gap:10px;font-size:14px}
.accueil-reassurance li::before{content:'✓';display:inline-grid;place-items:center;width:21px;height:21px;background:var(--accent-050);color:var(--accent);border-radius:50%;margin-right:11px;font-weight:700}
.accueil-heros .heros__actions{margin:28px 0 25px}
.accueil-heros .bouton{gap:15px}
.accueil-bouton-devis{background:white;border:1px solid var(--accent);color:var(--accent)}
.accueil-bouton-devis:hover{background:var(--accent-050)}
.accueil-certificat{display:flex;align-items:center;gap:22px;border:1px solid var(--bord);border-radius:8px;padding:18px 22px;width:fit-content;background:white}
.accueil-certificat>div:first-child{padding-right:22px;border-right:1px solid var(--bord)}
.accueil-certificat strong{font-size:25px;letter-spacing:-1px;color:var(--nuit);display:block;line-height:1.2}
.accueil-certificat small{display:block;font-size:10px;margin-top:4px}
.accueil-certificat span{font-size:11px}
.accueil-certificat a{display:block;color:var(--accent);font-size:12px;font-weight:600;margin-top:4px;text-underline-offset:4px}
.accueil-heros__image{position:relative;align-self:stretch;min-height:530px;padding-bottom:24px}
.accueil-heros__image>img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover;object-position:53% center;border-radius:10px 70px 10px 10px}
.accueil-photo-note{position:absolute;bottom:28px;left:-25px;background:var(--accent);border-radius:8px;padding:22px 27px;color:#fff;box-shadow:var(--ombre-haute)}
.accueil-photo-note span{font-size:10px;letter-spacing:.09em;text-transform:uppercase;color:#c8cce5;display:block;margin-bottom:9px}
.accueil-photo-note strong{font-family:var(--titre);font-size:24px;line-height:1.25;display:block}
.accueil-rncp{font-size:11px!important;color:var(--accent);font-weight:600;letter-spacing:.025em}
.marquee:hover .marquee__piste{animation-play-state:paused}
@media(min-width:1100px){.accueil-heros__texte{padding:10px 0}.accueil-heros .heros__actions .bouton{font-size:14px}}
@media(max-width:900px){.accueil-heros__grille{grid-template-columns:1fr;gap:35px}.accueil-heros__image{min-height:400px}.accueil-photo-note{left:20px}.accueil-certificat{max-width:100%}}

/* Deuxième moitié de la page : même identité IVS, hiérarchie plus éditoriale. */
#formations{padding-top:96px;padding-bottom:104px}
#formations .section__entete{align-items:end;margin-bottom:34px}
#formations h2,.accueil-difference h2,.accueil-etapes h2,.accueil-centre h2,.accueil-financement h2,.accueil-opco h2,.accueil-entreprises h2,.accueil-faq h2{font-size:clamp(34px,3vw,48px);line-height:1.08;letter-spacing:-.035em}
#formations .grille-formations{gap:18px}

.accueil-difference{background:#f6f3ff;position:relative;overflow:hidden}
.accueil-difference::before{content:"";position:absolute;width:560px;height:560px;left:-310px;top:-280px;border:1px solid #dfe3f6;border-radius:50%;box-shadow:0 0 0 90px rgba(255,255,255,.26),0 0 0 180px rgba(255,255,255,.18)}
.accueil-difference__grille{display:grid;grid-template-columns:.78fr 1.22fr;gap:clamp(50px,7vw,110px);align-items:center;position:relative}
.accueil-difference__intro h2{max-width:11ch;margin-bottom:26px}
.accueil-difference__intro .chapo{font-size:17px;max-width:37ch;line-height:1.75;margin-bottom:25px}
.accueil-difference__liste{border-top:1px solid #d9deed}
.accueil-difference__item{display:grid;grid-template-columns:56px 1fr 28px;gap:19px;padding:28px 0;border-bottom:1px solid #d9deed;align-items:start;transition:padding-left .35s cubic-bezier(.22,1,.36,1)}
.accueil-difference__item:hover{padding-left:12px}
.accueil-difference__numero{font-family:var(--titre);font-size:31px;font-weight:800;color:var(--accent);line-height:1}
.accueil-difference__item h3{font-size:21px;margin:0 0 8px;color:var(--nuit)}
.accueil-difference__item p{font-size:14px;line-height:1.65;margin:0;max-width:49ch}
.accueil-difference__etoile{font-size:22px;color:var(--accent);transition:transform .35s}
.accueil-difference__item:hover .accueil-difference__etoile{transform:translate(4px,-4px)}

.accueil-etapes{background:#1b0a6b;color:#fff;position:relative;overflow:hidden}
.accueil-etapes::before{content:"";position:absolute;inset:-12%;pointer-events:none;animation:derive 26s ease-in-out infinite alternate;background:radial-gradient(120% 90% at 88% 12%,rgba(86,44,224,.55),transparent 62%)}
.accueil-etapes::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.13;background-image:radial-gradient(#a69fff 1px,transparent 1px),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='.32'/%3E%3C/svg%3E");background-size:23px 23px,180px 180px;mask-image:radial-gradient(75% 110% at 100% 0%,#000 25%,transparent 72%)}
.accueil-etapes__grille{position:relative;z-index:1;display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(45px,6vw,90px);align-items:center}
.accueil-etapes h2{color:#fff;max-width:12ch}
.accueil-etapes .chapo{color:#c8cce1;max-width:37ch;font-size:16px;line-height:1.7}
.accueil-etapes .bouton{margin-top:18px}
.accueil-etapes__liste{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.accueil-etapes__carte{position:relative;background:#fff;color:var(--texte);min-height:310px;padding:30px 21px 26px;border-radius:12px;transition:transform .35s cubic-bezier(.22,1,.36,1),background .35s}
.accueil-etapes__carte:hover{transform:translateY(-9px);background:#f5f3ff}
.accueil-etapes__haut{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:47px}
.accueil-etapes__icone{width:52px;height:52px;display:grid;place-items:center;border-radius:13px;background:var(--accent-050);color:var(--accent);transition:transform .35s cubic-bezier(.22,1,.36,1),background .35s}
.accueil-etapes__icone svg{width:27px;height:27px}
.accueil-etapes__carte:hover .accueil-etapes__icone{transform:rotate(-6deg) scale(1.08);background:#e7e0ff}
.accueil-etapes__numero{display:block;font:800 43px/1 var(--titre);letter-spacing:-.05em;color:#e5e2fa}
.accueil-etapes__carte h3{font-size:19px;line-height:1.25;color:var(--nuit);margin-bottom:12px}
.accueil-etapes__carte p{font-size:13px;line-height:1.65;margin:0}

.accueil-centre .duo{gap:clamp(55px,7vw,110px)}
.accueil-centre .duo__texte{max-width:54ch}
.accueil-centre .duo__texte h2{max-width:13ch}
.accueil-centre .duo__texte p:not(.eyebrow){font-size:16px;line-height:1.75}
.accueil-centre .duo__image{position:relative}
.accueil-centre .duo__image img{aspect-ratio:6/5;object-fit:cover;border-radius:12px 60px 12px 12px}
.accueil-centre .duo__image::before{content:"";position:absolute;inset:20px -20px -20px 20px;border:1px solid var(--accent-200);border-radius:12px 60px 12px 12px;z-index:-1}

.accueil-financement{background:#1d0f7d;color:#fff;position:relative;overflow:hidden}
.accueil-financement::before{content:"";position:absolute;inset:-12%;pointer-events:none;animation:derive 26s ease-in-out infinite alternate;background:radial-gradient(110% 85% at 96% 100%,rgba(96,52,236,.5),transparent 60%),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='.32'/%3E%3C/svg%3E");background-size:auto,180px 180px;opacity:.9}
.accueil-financement__grille{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(65px,7vw,115px);align-items:center}
.accueil-financement h2{color:#fff;max-width:13ch}
.accueil-financement__intro p:not(.eyebrow){color:#d9dbef;font-size:16px;line-height:1.7;max-width:50ch}
.accueil-financement__intro .bouton{margin-top:18px}
.accueil-financement__visuel{position:relative;padding:0 0 25px 25px}
.accueil-financement__visuel::before{content:"";position:absolute;inset:28px 28px 0 0;border:1px solid rgba(255,255,255,.34);border-radius:12px;z-index:0}
.accueil-financement__visuel img{position:relative;width:100%;height:390px;object-fit:cover;border-radius:12px 55px 12px 12px}
.accueil-financement__note{position:absolute;left:-25px;bottom:0;max-width:280px;background:#fff;color:var(--nuit);font-size:13px;line-height:1.5;font-weight:650;padding:19px 22px;border-radius:8px;box-shadow:var(--ombre-haute)}

.accueil-opco{text-align:center}
.accueil-opco__entete{max-width:670px;margin:0 auto 38px}
.accueil-opco__entete p:last-child{line-height:1.7}
.accueil-opco__grille{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
.accueil-opco__logo{display:grid;place-items:center;min-height:92px;padding:17px;background:#fff;border:1px solid var(--bord);border-radius:10px;transition:border-color .3s,transform .3s,box-shadow .3s}
.accueil-opco__logo:hover{border-color:var(--accent-200);transform:translateY(-5px);box-shadow:var(--ombre-survol)}
.accueil-opco__logo img{display:block;max-width:100%;max-height:48px;width:auto;height:auto;object-fit:contain}
.accueil-opco__logo--sombre{background:var(--nuit)}
.accueil-opco__logo:nth-child(2),.accueil-opco__logo:nth-child(3),.accueil-opco__logo:nth-child(7){background:var(--nuit)}
.accueil-opco__reserve{font-size:12px;color:var(--texte-doux);margin:24px auto 0;max-width:85ch;line-height:1.6}

.accueil-entreprises{background:#f7f4ff}
.accueil-entreprises__grille{display:grid;grid-template-columns:1fr 1fr;gap:clamp(55px,7vw,115px);align-items:center}
.accueil-entreprises__image{min-height:380px;position:relative}
.accueil-entreprises__image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:55px 12px 12px 12px}
.accueil-entreprises__texte h2{max-width:13ch}
.accueil-entreprises__texte p:not(.eyebrow){font-size:17px;line-height:1.75;max-width:44ch;margin-bottom:30px}

.accueil-faq__grille{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(50px,7vw,110px)}
.accueil-faq h2{max-width:14ch}
.accueil-faq__grille>div:first-child>p:not(.eyebrow){line-height:1.7;max-width:37ch}
.accueil-faq .accordeon{align-content:start}
.accueil-faq .accordeon__item{background:#fff}

@media(max-width:1000px){.accueil-difference__grille,.accueil-etapes__grille,.accueil-financement__grille,.accueil-entreprises__grille,.accueil-faq__grille{grid-template-columns:1fr;gap:34px}.accueil-opco__grille{grid-template-columns:repeat(4,1fr)}.accueil-etapes__carte{min-height:250px}}
@media(max-width:640px){#formations{padding-top:60px;padding-bottom:65px}.accueil-etapes__liste{grid-template-columns:1fr}.accueil-etapes__carte{min-height:0}.accueil-etapes__haut{margin-bottom:20px}.accueil-opco__grille{grid-template-columns:repeat(2,1fr)}.accueil-financement__note{left:0}.accueil-entreprises__image{min-height:300px}}
@media(prefers-reduced-motion:reduce){#formations .carte-formation,.accueil-difference__item,.accueil-difference__etoile,.accueil-etapes__carte,.accueil-opco__logo{transition:none!important;transform:none!important}}

/* Affinage typographique et blocs de conversion de l'accueil. */
body:has(.accueil-heros){--titre:"Inter",system-ui,sans-serif}
body:has(.accueil-heros) h2{font-weight:800;text-transform:none;letter-spacing:-.048em;line-height:1.12}
body:has(.accueil-heros) h3{font-weight:750;letter-spacing:-.028em}
body:has(.accueil-heros) .eyebrow{font-family:var(--corps);font-weight:800;letter-spacing:.17em}
.accueil-heros h1{font-weight:850;letter-spacing:-.055em;line-height:1.02}
.accueil-certificat{gap:17px;padding:14px 18px;border-color:#d8daf0;box-shadow:0 16px 30px -26px rgba(14,18,51,.35)}
.accueil-certificat img{width:126px;height:auto;flex:none}
.accueil-certificat>div{border-left:1px solid var(--bord);padding-left:17px}
.accueil-certificat>div span{font-size:11px;line-height:1.45;display:block;color:var(--texte)}
.accueil-certificat>div a{font-size:12px;margin-top:6px;white-space:nowrap}
.accueil-certificat>div a span{display:inline;font-size:inherit}

#formations{background:#fff}
#formations .section__entete{margin-bottom:38px}
#formations h2{max-width:22ch}

.accueil-rappel{position:relative;overflow:hidden;background:#1a0b63;color:#fff;padding:94px 0}
.accueil-rappel::before{content:"";position:absolute;width:690px;height:690px;border-radius:50%;right:-210px;top:-290px;background:radial-gradient(circle,rgba(68,48,207,.46),transparent 69%);pointer-events:none}
.accueil-rappel::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.34;background-image:radial-gradient(rgba(160,153,255,.28) 1px,transparent 1px),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)' opacity='.32'/%3E%3C/svg%3E");background-size:21px 21px,180px 180px;mask-image:radial-gradient(70% 105% at 100% 0%,#000 22%,transparent 70%)}
.accueil-rappel__grille{display:grid;grid-template-columns:.83fr 1.17fr;gap:clamp(50px,6vw,90px);align-items:center;position:relative;z-index:1}
.accueil-rappel h2{color:#fff;font-size:clamp(37px,3.5vw,55px);max-width:12ch;margin-bottom:18px}
.accueil-rappel__texte>p:not(.eyebrow){color:#c9cde4;font-size:16px;line-height:1.7;max-width:43ch}
.accueil-rappel__appel{margin-top:34px;padding-top:26px;border-top:1px solid #ffffff30;display:grid;gap:3px}
.accueil-rappel__appel>span{color:#aeb6d5;font-size:12px;text-transform:uppercase;letter-spacing:.13em;font-weight:750}
.accueil-rappel__appel>a{color:#fff;text-decoration:none;font:800 clamp(28px,2.6vw,39px)/1.25 var(--titre);letter-spacing:-.04em;width:max-content;transition:color .25s,transform .25s}
.accueil-rappel__appel>a span{display:inline-grid;place-items:center;vertical-align:middle;width:38px;height:38px;border-radius:50%;background:#fff;color:var(--accent);font-size:24px;letter-spacing:0;margin-right:10px}
.accueil-rappel__appel>a:hover{color:#aca2ff;transform:translateX(4px)}
.accueil-rappel__formulaire{background:#ffffff0c;border:1px solid #ffffff35;border-radius:17px;padding:clamp(26px,3vw,40px);box-shadow:0 25px 75px -45px #090532;backdrop-filter:blur(5px)}
.accueil-rappel__form-title{font:750 18px/1.3 var(--titre);color:#fff;margin:0 0 21px}
.accueil-rappel .formulaire{grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.accueil-rappel .champ{min-width:0}
.accueil-rappel .champ label{color:#eef0ff;font-size:12px;font-weight:650}
.accueil-rappel .champ input:not([type="checkbox"]){background:#ffffff13;color:#fff;border-color:#ffffff55;border-radius:7px;min-height:49px;padding:11px 12px}
.accueil-rappel .champ input:not([type="checkbox"]):focus{border-color:#fff;box-shadow:0 0 0 3px #9d96ff55}
.accueil-rappel .champ--case,.accueil-rappel .formulaire__erreurs,.accueil-rappel .formulaire__replis{grid-column:1/-1}
.accueil-rappel .champ--case{margin:7px 0 2px}
.accueil-rappel .champ--case span{color:#ced1e8;font-size:12px;line-height:1.5}
.accueil-rappel .champ--case a{color:#fff}
.accueil-rappel .formulaire .bouton{grid-column:1/-1;justify-self:start;background:#fff;color:var(--nuit);padding:13px 22px;border-radius:7px;margin-top:1px}
.accueil-rappel .formulaire .bouton:hover{background:#eeeaff;color:var(--nuit)}
.accueil-rappel .formulaire__replis{color:#fff}
.accueil-rappel .formulaire__replis a{color:#fff}
body:has(.accueil-heros) .pied__tel{font-size:24px;letter-spacing:-.035em;display:inline-block;margin:10px 0 9px}
body:has(.accueil-heros) .pied__tel:hover{color:#c0baff}
body:has(.accueil-heros) .bandeau-haut{background:#160b55}
body:has(.accueil-heros) .pied{background:#120b3d}
.accueil-heros__image::after{content:"";position:absolute;inset:-13px -13px 11px 13px;border:1px solid rgba(94,30,214,.32);border-radius:11px 78px 11px 11px;z-index:-1;pointer-events:none}
.accueil-certificat{border-color:#d9d0f5;box-shadow:0 19px 35px -27px rgba(44,16,143,.4)}
.accueil-rappel .formulaire .bouton{background:#e7e1ff;color:#1b0c62;transition:background .3s,transform .3s,box-shadow .3s}
.accueil-rappel .formulaire .bouton:hover{background:#fff;color:#1b0c62;transform:translateY(-3px);box-shadow:0 14px 24px -18px #fff}
@media(prefers-reduced-motion:reduce){#formations .carte-formation:hover .carte-formation__image img,#formations .carte-formation:hover .carte-formation__icone,.accueil-etapes__carte:hover .accueil-etapes__icone,.accueil-rappel .formulaire .bouton:hover{transform:none}}

@media(max-width:1000px){.accueil-rappel__grille{grid-template-columns:1fr}.accueil-rappel .formulaire{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:650px){.accueil-rappel{padding:65px 0}.accueil-rappel .formulaire{grid-template-columns:1fr}.accueil-rappel .champ--case,.accueil-rappel .formulaire__erreurs,.accueil-rappel .formulaire__replis,.accueil-rappel .formulaire .bouton{grid-column:1}.accueil-certificat img{width:95px}#formations .carte-formation__corps{min-height:0}}

/* --- Les trois parcours : une seule definition, carte blanche sobre -------- */
#formations .grille-formations{gap:20px}
#formations .carte-formation{
  background:#fff;border:1px solid var(--bord);border-radius:14px;overflow:hidden;
  box-shadow:0 1px 2px rgba(14,18,51,.04);
  transition:transform .42s cubic-bezier(.22,1,.36,1),box-shadow .42s ease,border-color .42s ease}
#formations .carte-formation:hover{
  transform:translateY(-6px);border-color:var(--accent-200);
  box-shadow:0 22px 44px -26px rgba(14,18,51,.34)}
#formations .carte-formation__image{position:relative;aspect-ratio:16/10;overflow:visible}
#formations .carte-formation__image img{
  width:100%;height:100%;object-fit:cover;
  transition:transform .8s cubic-bezier(.22,1,.36,1)}
#formations .carte-formation:hover .carte-formation__image img{transform:scale(1.04)}
#formations .carte-formation__icone{
  position:absolute;z-index:2;bottom:-24px;left:26px;
  display:grid;place-items:center;width:48px;height:48px;
  background:#fff;color:var(--accent);
  border:1px solid var(--bord);border-radius:12px;
  box-shadow:0 10px 22px -14px rgba(14,18,51,.45);
  transition:transform .35s cubic-bezier(.22,1,.36,1),border-color .35s ease}
#formations .carte-formation__icone svg{width:23px;height:23px}
#formations .carte-formation:hover .carte-formation__icone{
  transform:translateY(-3px);border-color:var(--accent-200)}
#formations .carte-formation__corps{
  display:flex;flex-direction:column;padding:40px 26px 26px}
#formations .carte-formation .etiquette{margin-bottom:14px}
#formations .carte-formation h3{
  font-size:22px;line-height:1.2;max-width:20ch;margin-bottom:12px;color:var(--nuit)}
#formations .carte-formation h3 a{color:inherit;text-decoration:none}
#formations .carte-formation__corps>p:not(.etiquette):not(.accueil-rncp):not(.carte-formation__lien){
  color:var(--texte);font-size:14.5px;line-height:1.65;min-height:72px;margin-bottom:0}
#formations .accueil-rncp{
  margin-top:auto;padding-top:16px;border-top:1px solid var(--bord);
  font-size:12px!important;color:var(--texte-doux);letter-spacing:0}
#formations .accueil-rncp span{
  margin-left:6px;padding:3px 8px;border-radius:5px;
  background:var(--accent-050);color:var(--accent);font-weight:700}
#formations .carte-formation__lien{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:14px;padding-top:15px;border-top:1px solid var(--bord);
  color:var(--accent);font-size:14px;font-weight:600}
#formations .carte-formation__lien::after{font-size:18px;margin-left:12px;transition:transform .3s ease}
#formations .carte-formation:hover .carte-formation__lien::after{transform:translateX(5px)}

/* Voile violet tres leger a l'entree de la section des parcours */
#formations{background:linear-gradient(180deg,#f7f5ff 0%,#fff 46%)}
/* Le titre du hero monte ligne par ligne */
.accueil-heros h1 span{animation-delay:120ms}
@media(prefers-reduced-motion:reduce){
  .accueil-etapes::before,.accueil-financement::before{animation:none!important}
}

/* Les cartes de l'accueil reprennent exactement la presentation du catalogue. */
#formations.accueil-parcours{padding:112px 0 124px;background:#fff}
#formations .catalogue-parcours__entete{margin-bottom:42px}
#formations .catalogue-parcours__entete h2{font-size:clamp(39px,3.9vw,59px);font-weight:820;line-height:1.08;letter-spacing:-.045em;max-width:12ch}
.accueil-parcours__suite{display:grid;justify-items:start;gap:17px}
.accueil-parcours__suite p{font-size:17px;line-height:1.75;max-width:41ch;margin:0}
body:has(.accueil-heros) #formations .catalogue-carte h3{font-size:29px;font-weight:800;line-height:1.12;letter-spacing:-.045em}
@media(max-width:760px){#formations.accueil-parcours{padding:75px 0}}
