/* Monluca — nuances de blanc froides, dégradé violet→bleu de la marque.
   Une seule bande sombre : le pied. */
:root {
  --violet: #6A56FA;
  --bleu: #3882FB;
  --degrade: linear-gradient(135deg, #6A56FA 0%, #3882FB 100%);
  --encre: #17163A;
  --texte: #3F3E5A;
  --papier: #FFFFFF;
  --brume: #F7F7FB;
  --gris: #EFEFF6;
  --ombre: 0 10px 30px rgba(23, 22, 58, .08);
  --rayon: 16px;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-family: 'Barlow', sans-serif; color: var(--texte); background: var(--papier);
       font-size: 17px; line-height: 1.65; }
h1, h2, h3, h4, .btn, .chiffre { font-family: 'Poppins', sans-serif; color: var(--encre); }
h1 { font-size: clamp(30px, 4.2vw, 52px); line-height: 1.15; font-weight: 700; }
h1, h2, h3 { text-wrap: balance; }
h2 { font-size: clamp(24px, 3vw, 36px); line-height: 1.2; font-weight: 600; }
h3 { font-size: 20px; font-weight: 600; }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--violet); text-decoration: none; }
ul { list-style: none; }
.boite { max-width: 1160px; margin: 0 auto; padding: 0 24px; }
.bloc { padding: 88px 0; }
.bloc-brume { background: var(--brume); }
.bloc-gris { background: var(--gris); }
.surtitre { color: var(--violet); font-weight: 600; text-transform: uppercase;
            letter-spacing: .08em; font-size: 14px; margin-bottom: 10px; }
.chapo { max-width: 640px; margin-top: 14px; font-size: 18px; }
.tete-section { margin-bottom: 44px; }
.btn { display: inline-block; padding: 13px 26px; border-radius: 999px; font-weight: 600;
       font-size: 15px; background: var(--degrade); color: #fff; transition: opacity .2s,
       transform .2s; }
.btn:hover { opacity: .9; transform: translateY(-1px); }
.btn-contour { background: none; color: var(--violet); border: 2px solid var(--violet); }
.btn-blanc { background: #fff; color: var(--encre); }
.btn-contour-blanc { background: none; color: #fff; border: 2px solid rgba(255,255,255,.7); }
.grille { display: grid; gap: 24px; }
.g2 { grid-template-columns: repeat(2, 1fr); }
.g3 { grid-template-columns: repeat(3, 1fr); }
.g4 { grid-template-columns: repeat(4, 1fr); }
.carte { background: var(--papier); border-radius: var(--rayon); box-shadow: var(--ombre);
         padding: 32px 28px; }
.carte h3 { margin-bottom: 10px; }
.chip { display: inline-flex; align-items: center; gap: 8px; background: var(--papier);
        border-radius: 999px; padding: 12px 22px; box-shadow: var(--ombre);
        font-weight: 600; color: var(--encre); }
.chip svg { width: 18px; height: 18px; }
/* Entête */
.entete { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.94);
          backdrop-filter: blur(8px); border-bottom: 1px solid var(--gris); }
.entete .boite { display: flex; align-items: center; gap: 32px; height: 72px; }
.entete nav { margin-left: auto; }
.entete nav ul { display: flex; gap: 28px; }
.entete nav a { color: var(--encre); font-weight: 500; font-size: 15px; }
.entete nav .courante a { color: var(--violet); }
.burger { display: none; background: none; border: 0; cursor: pointer; min-width: 44px;
          min-height: 44px; padding: 8px 11px; }
.burger span { display: block; width: 22px; height: 2px; background: var(--encre); margin: 5px 0; }
/* Pied — la bande sombre du site */
.pied { background: var(--encre); color: rgba(255,255,255,.75); padding: 64px 0 32px;
        margin-top: 0; }
.pied a { color: #fff; }
.pied h4 { color: #fff; margin-bottom: 12px; font-size: 15px; }
.pied-colonnes { display: grid; grid-template-columns: 2fr 1fr 1fr; gap: 40px;
                 padding-bottom: 40px; border-bottom: 1px solid rgba(255,255,255,.15); }
.pied-colonnes li { margin-bottom: 8px; }
.pied-colonnes img { margin-bottom: 16px; }
.pied-bas { display: flex; justify-content: space-between; padding-top: 24px; font-size: 14px; }
/* Animations : l'état initial n'est posé QUE si main.js a marqué <html class="js">,
   pour que le site reste lisible sans JavaScript. */
html.js .reveal { opacity: 0; transform: translateY(18px);
                  transition: opacity .6s ease, transform .6s ease; }
html.js .reveal.visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  html.js .reveal { opacity: 1; transform: none; transition: none; }
  html { scroll-behavior: auto; }
}
@media (max-width: 900px) {
  .g3, .g4 { grid-template-columns: repeat(2, 1fr); }
  .pied-colonnes { grid-template-columns: 1fr; }
  .entete nav { position: fixed; inset: 72px 0 auto 0; background: #fff;
                box-shadow: var(--ombre); display: none; padding: 16px 24px; }
  .entete nav.ouverte { display: block; }
  .entete nav ul { flex-direction: column; gap: 12px; }
  .entete .btn { display: none; }
  .burger { display: block; margin-left: auto; }
}
@media (max-width: 600px) {
  .g2, .g3, .g4 { grid-template-columns: 1fr; }
  .bloc { padding: 56px 0; }
  .pied-bas { flex-direction: column; gap: 8px; }
}
/* Hero : panneau dégradé quasi pleine largeur, coins arrondis, texte blanc */
.heros { padding: 24px clamp(12px, 2vw, 28px) 0; }
.heros .boite { max-width: none; padding: 0; }
.heros-panneau { background: var(--degrade); border-radius: 28px;
                 padding: 88px clamp(32px, 6vw, 96px);
                 display: grid; grid-template-columns: 7fr 5fr; gap: clamp(32px, 5vw, 72px);
                 align-items: center; }
.heros-texte h1, .heros-texte p { color: #fff; }
.heros-hashtag { display: inline-block; border: 1.5px solid rgba(255,255,255,.55);
                 border-radius: 999px; padding: 5px 16px; font-size: 14px;
                 font-weight: 600; margin-bottom: 20px; }
.heros-sous { font-family: 'Poppins', sans-serif; font-weight: 600; font-size: 20px;
              margin: 18px 0 12px; max-width: 560px; }
.heros-desc { opacity: .9; margin-bottom: 28px; font-size: 17px; }
.heros-actions { display: flex; gap: 14px; flex-wrap: wrap; }
.heros-visuel { align-self: end; transform: translateY(46px); }
.heros-visuel img { border-radius: 20px; border: 6px solid #fff; width: 100%;
                    box-shadow: 0 18px 44px rgba(23,22,58,.28);
                    aspect-ratio: 1 / 1; object-fit: cover; }
/* Bande de chiffres */
.bloc-chiffres { padding: 92px 0 56px; }
.chiffre-tuile { display: flex; gap: 18px; align-items: flex-start; }
.chiffre { flex: none; width: 168px; font-size: 26px; font-weight: 700;
           line-height: 1.15; color: var(--encre); }
.chiffre-desc { font-size: 15px; line-height: 1.55; }
/* Duo photo + carte */
.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; }
.duo-photo { border-radius: var(--rayon); box-shadow: var(--ombre);
             aspect-ratio: 4 / 3; object-fit: cover; }
/* À-propos : grande carte unique, photo intégrée à gauche */
.apropos { display: grid; grid-template-columns: 5fr 6fr; padding: 0;
           overflow: hidden; align-items: stretch; }
.apropos-visuel img { width: 100%; height: 100%; object-fit: cover; }
.apropos-contenu { padding: 48px 44px; }
.apropos-sous { display: flex; align-items: center; gap: 12px; color: var(--violet);
                font-size: 18px; margin: 16px 0 14px; }
.apropos-sous img { width: 34px; height: 34px; flex: none; }
@media (max-width: 900px) {
  .heros-panneau { grid-template-columns: 1fr; padding: 48px 28px; }
  .heros-visuel { transform: translateY(24px); }
  .bloc-chiffres { padding-top: 64px; }
  .duo { grid-template-columns: 1fr; }
  .apropos { grid-template-columns: 1fr; }
  .apropos-visuel img { aspect-ratio: 16 / 9; height: auto; }
}
/* Diagramme à trois colonnes */
.diag-carte ul li { padding-left: 18px; position: relative; margin-bottom: 8px; font-size: 15px; }
.diag-carte ul li::before { content: ''; position: absolute; left: 0; top: 10px;
  width: 7px; height: 7px; border-radius: 50%; background: var(--degrade); }
.diag .diag-carte:nth-child(2) { background: var(--brume); border: 1px solid var(--gris); }
/* Étapes du processus */
.etapes { max-width: 760px; list-style: none; }
.etape { border-left: 3px solid var(--gris); padding: 0 0 28px 24px; position: relative; }
.etape::before { content: ''; position: absolute; left: -8px; top: 4px; width: 13px;
  height: 13px; border-radius: 50%; background: var(--degrade); }
.etape:last-child { padding-bottom: 0; }
/* Cartes photo des profils */
.carte-photo { padding: 0; overflow: hidden; }
.carte-photo img { aspect-ratio: 16 / 10; object-fit: cover; width: 100%; }
.carte-photo-corps { padding: 24px 24px 28px; }
/* Valeurs et points forts */
.chips { display: flex; gap: 12px; flex-wrap: wrap; margin-bottom: 32px; }
.points-forts li { background: var(--brume); border-radius: var(--rayon);
  padding: 18px 22px; font-weight: 500; color: var(--encre); }
/* Bandeau final */
.bloc-final { padding-bottom: 96px; }
.final { display: flex; justify-content: space-between; align-items: center; gap: 32px;
  padding: 44px 48px; border: 1px solid var(--gris); }
.coches { margin-top: 14px; }
.coches li { padding-left: 26px; position: relative; margin-bottom: 6px; }
.coches li::before { content: ''; position: absolute; left: 0; top: 7px; width: 14px;
  height: 8px; border-left: 2.5px solid var(--violet); border-bottom: 2.5px solid var(--violet);
  transform: rotate(-45deg); }
.final-actions { display: flex; gap: 14px; flex-wrap: wrap; }
@media (max-width: 900px) { .final { flex-direction: column; align-items: flex-start; } }
/* Pages intérieures */
.engagement h3 { font-size: 17px; }
.engagement p { font-size: 15px; }
/* Contact */
.contact-duo { display: grid; grid-template-columns: 3fr 2fr; gap: 40px; align-items: start; }
.contact-infos { display: grid; gap: 20px; }
.carte-action { margin-top: 14px; }
.formulaire .champ { margin-bottom: 18px; }
.formulaire label { display: block; font-weight: 600; color: var(--encre); margin-bottom: 6px; }
.formulaire input, .formulaire textarea { width: 100%; border: 1px solid var(--gris);
  border-radius: 10px; padding: 12px 14px; font: inherit; background: var(--brume); }
.formulaire input:focus, .formulaire textarea:focus { outline: 2px solid var(--violet);
  background: #fff; }
.formulaire button { margin-top: 8px; }
.form-etat.ok { color: #1a7f4e; } .form-etat.ko { color: #b3261e; }
/* Prose (pages légales) */
.prose { max-width: 760px; }
.prose h2 { margin: 32px 0 12px; }
.prose p, .prose li { margin-bottom: 12px; }
.prose ul { list-style: disc; padding-left: 22px; }
@media (max-width: 900px) { .contact-duo { grid-template-columns: 1fr; } }
/* Consentement RGPD : case alignée au début du libellé */
.consent { display: flex; align-items: flex-start; gap: 10px; margin-bottom: 4px; }
.consent input { margin-top: 5px; flex: none; width: auto; accent-color: var(--violet); }
.consent label { font-size: 14px; line-height: 1.5; }
/* En-tête de section avec symbole + tuile-question des profils */
.tete-icone { display: flex; gap: 16px; align-items: flex-start; margin-bottom: 40px; }
.tete-icone img { flex: none; margin-top: 4px; }
.tete-icone p { margin-top: 4px; }
.profils-info { background: var(--gris); border-radius: var(--rayon); padding: 28px 24px;
  display: flex; flex-direction: column; justify-content: center; gap: 8px; }
.profils-info-titre { font-family: 'Poppins', sans-serif; font-weight: 600;
  color: var(--violet); font-size: 18px; }
.profils-info p:not(.profils-info-titre) { font-size: 15px; }
.carte-photo h3 { font-size: 17px; margin-bottom: 0; }
/* Cartes à pictogramme : pastille en dégradé, relief au survol */
.carte-icone .icone { display: flex; width: 46px; height: 46px; border-radius: 14px;
  background: var(--degrade); align-items: center; justify-content: center;
  margin-bottom: 18px; box-shadow: 0 6px 14px rgba(106, 86, 250, .28); }
.carte-icone { transition: transform .25s ease, box-shadow .25s ease; }
.carte-icone:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(23, 22, 58, .13); }
/* Processus : liste d'étapes + dessin filaire, explication dessous */
.etapes-scene { display: grid; grid-template-columns: 4fr 7fr; gap: 40px;
  align-items: center; }
.etapes-liste { list-style: none; display: grid; gap: 6px; }
.etape-bouton { display: flex; align-items: baseline; gap: 14px; width: 100%;
  background: none; border: 0; cursor: pointer; text-align: left; padding: 10px 12px;
  border-radius: 10px; font-family: 'Poppins', sans-serif; font-size: 17px;
  font-weight: 500; color: #9a99b0; transition: color .2s, background .2s; }
.etape-bouton:hover { color: var(--encre); background: var(--brume); }
.etape-num { font-size: 14px; font-weight: 600; letter-spacing: .04em; flex: none; }
.etape-bouton.active { color: var(--encre); font-weight: 600; position: relative; }
.etape-bouton.active::before { content: ''; position: absolute; left: -6px; top: 50%;
  width: 0; height: 0; transform: translateY(-50%);
  border-left: 7px solid var(--violet); border-top: 5px solid transparent;
  border-bottom: 5px solid transparent; }
.etape-bouton.active .etape-num { color: var(--violet); }
.etapes-visuel img { width: 100%; }
.etapes-details { max-width: 760px; min-height: 130px; margin-top: 28px;
  border-top: 1px solid var(--gris); padding-top: 22px; }
.etape-detail h3 { margin-bottom: 8px; }
html.js .etape-detail { display: none; }
html.js .etape-detail.visible { display: block; animation: detail-entre .35s ease; }
@keyframes detail-entre { from { opacity: 0; transform: translateY(8px); }
  to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) {
  html.js .etape-detail.visible { animation: none; }
}
@media (max-width: 900px) {
  .etapes-scene { grid-template-columns: 1fr; gap: 24px; }
}
/* Processus : panneau clair quasi pleine largeur, comme le hero */
.processus-large { padding: 32px clamp(12px, 2vw, 28px); }
.processus-panneau { background: var(--brume); border-radius: 28px;
  padding: 72px clamp(32px, 6vw, 96px) 64px; }
.processus-panneau .etapes-details { border-top: 1px solid rgba(23, 22, 58, .08); }
@media (max-width: 600px) {
  .processus-panneau { padding: 48px 24px 40px; }
}
/* Héros commun : le panneau de l'accueil sur toutes les pages. La section qui suit
   laisse de la place au visuel qui déborde. */
.heros + .bloc, .heros + .processus-large { padding-top: 128px; }
.heros-texte h1 { font-size: clamp(28px, 3.6vw, 46px); }
.heros-visuel img { width: 100%; height: auto; }
@media (max-width: 900px) {
  .heros + .bloc, .heros + .processus-large { padding-top: 88px; }
  .heros-visuel img { max-width: 420px; margin: 0 auto; }
}
/* Cartes cliquables et listes */
.carte-lien { display: block; color: inherit; transition: transform .25s ease, box-shadow .25s ease; }
.carte-lien:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(23, 22, 58, .13); }
.carte-lien h3 { color: var(--encre); }
.lien-suite { display: inline-block; margin-top: 14px; color: var(--violet); font-weight: 600;
  font-family: 'Poppins', sans-serif; font-size: 15px; }
.lien-suite::after { content: ' \2192'; }
.carte-sobre { background: var(--brume); border: 1px solid var(--gris); box-shadow: none; }
.points li { padding-left: 18px; position: relative; margin-bottom: 8px; }
.points li::before { content: ''; position: absolute; left: 0; top: 10px; width: 7px; height: 7px;
  border-radius: 50%; background: var(--degrade); }
.sous-titre { margin: 40px 0 18px; }
.centre { text-align: center; margin-top: 32px; }
.tarif-niveau { color: var(--violet); font-weight: 600; text-transform: uppercase;
  letter-spacing: .08em; font-size: 14px; margin-bottom: 8px; }
.admission h3 { font-size: 18px; }
/* Tableaux */
.tableau-defile { overflow-x: auto; }
.tableau { width: 100%; border-collapse: collapse; font-size: 15px; margin: 24px 0 8px;
  background: var(--papier); border-radius: var(--rayon); overflow: hidden; box-shadow: var(--ombre); }
.tableau th, .tableau td { text-align: left; vertical-align: top; padding: 14px 16px;
  border-bottom: 1px solid var(--gris); }
.tableau th { background: var(--brume); color: var(--encre); font-family: 'Poppins', sans-serif;
  font-weight: 600; font-size: 14px; }
.tableau tr:last-child td { border-bottom: 0; }
.tableau td:first-child { font-weight: 500; color: var(--encre); }
.prose .tableau-defile { margin: 24px 0 8px; }
.prose .tableau { margin: 0; min-width: 640px; }
.etiquette { display: inline-block; border-radius: 999px; padding: 4px 12px; font-size: 14px;
  font-weight: 600; white-space: nowrap; }
.etiquette-oui { background: #e9f7ef; color: #1a7f4e; }
.etiquette-non { background: var(--gris); color: var(--encre); }
/* FAQ */
.faq { max-width: 820px; display: grid; gap: 12px; }
.faq-item { background: var(--papier); border-radius: var(--rayon); box-shadow: var(--ombre);
  padding: 0 24px; }
.faq-item summary { cursor: pointer; list-style: none; padding: 20px 32px 20px 0; position: relative;
  font-family: 'Poppins', sans-serif; font-weight: 600; color: var(--encre); font-size: 17px; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary::after { content: '+'; position: absolute; right: 0; top: 16px; font-size: 24px;
  color: var(--violet); transition: transform .2s; }
.faq-item[open] summary::after { transform: rotate(45deg); }
.faq-reponse { padding: 0 0 22px; }
.faq-reponse p { margin-bottom: 10px; }
/* Tarifs */
.tarifs .tarif { display: flex; flex-direction: column; }
.tarif h3 { font-size: 19px; }
.tarif-profil { font-size: 14px; color: var(--texte); margin-bottom: 14px; min-height: 42px; }
.tarif .coches { flex: 1; font-size: 15px; margin-top: 0; }
.tarif-prix { margin-top: 22px; padding-top: 18px; border-top: 1px solid var(--gris); font-size: 14px; }
.tarif-prix strong { display: block; font-family: 'Poppins', sans-serif; font-size: 26px;
  color: var(--encre); line-height: 1.2; }
.tarif-mis-en-avant { outline: 2px solid var(--violet); outline-offset: -2px; }
.tarif-note { font-size: 14px; margin: 22px 0 40px; max-width: 760px; }
/* Calculateur */
.calc { padding: 36px 32px; }
.calc-grille { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; }
.calc-colonne h3 { margin-bottom: 18px; }
.calc-champ { display: block; margin-bottom: 14px; font-size: 15px; }
.calc-champ > span:first-child { display: block; font-weight: 500; color: var(--encre); margin-bottom: 6px; }
.calc-saisie { display: flex; align-items: center; gap: 10px; }
.calc-saisie em { font-style: normal; font-size: 14px; color: var(--texte); white-space: nowrap; }
.calc input, .calc select { width: 100%; max-width: 220px; border: 1px solid var(--gris);
  border-radius: 10px; padding: 11px 14px; font: inherit; background: var(--brume); color: var(--encre); }
.calc select { max-width: 100%; }
.calc input:focus, .calc select:focus { outline: 2px solid var(--violet); background: #fff; }
.calc-note { font-size: 14px; margin-top: 8px; }
.calc-resultats { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 18px; margin-top: 32px;
  padding-top: 28px; border-top: 1px solid var(--gris); }
.calc-resultat { background: var(--brume); border-radius: var(--rayon); padding: 22px 22px 20px; }
.calc-resultat > span { display: block; font-size: 14px; margin-bottom: 8px; }
.calc-resultat strong { display: block; font-family: 'Poppins', sans-serif; font-size: 28px;
  font-variant-numeric: tabular-nums;
  color: var(--encre); line-height: 1.15; }
.calc-resultat small { display: block; margin-top: 8px; font-size: 14px; }
.calc-gain { background: var(--degrade); color: #fff; }
.calc-gain > span, .calc-gain small, .calc-gain strong { color: #fff; }
.calc-hypotheses { font-size: 14px; margin-top: 18px; }
@media (max-width: 900px) {
  .calc { padding: 28px 22px; }
  .calc-grille, .calc-resultats { grid-template-columns: 1fr; }
}
/* Fiche à recevoir */
.telechargement { display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: center;
  padding: 40px 44px; }
.formulaire-ligne { padding: 0; box-shadow: none; background: none; }
.formulaire-ligne .champ { margin-bottom: 12px; }
@media (max-width: 900px) { .telechargement { grid-template-columns: 1fr; padding: 28px 24px; } }
/* Prise de rendez-vous */
.agenda h2 { font-size: 24px; margin-bottom: 8px; }
.agenda .coches { margin: 18px 0 6px; }
.agenda .calc-note { margin-top: 16px; }
#ecrire .tete-section { margin-bottom: 20px; }
.rdv-duo { grid-template-columns: 1fr 1fr; }
.rdv-duo .contact-infos { margin-top: 20px; grid-template-columns: 1fr 1fr; }
.rdv-duo .contact-infos .carte:first-child { grid-column: 1 / -1; }
@media (max-width: 600px) { .rdv-duo .contact-infos { grid-template-columns: 1fr; } }
.rendez-vous .contact-duo { grid-template-columns: 3fr 2fr; }
/* Accessibilité et interaction : focus visible, ancres sous l'en-tête collant, tactile */
a, button, summary, input, select, textarea { touch-action: manipulation;
  -webkit-tap-highlight-color: rgba(106, 86, 250, .18); }
.btn:focus-visible, a:focus-visible, button:focus-visible, summary:focus-visible {
  outline: 3px solid var(--violet); outline-offset: 3px; border-radius: 6px; }
.btn:focus-visible { border-radius: 999px; }
.heros :focus-visible, .calc-gain :focus-visible { outline-color: #fff; }
[id] { scroll-margin-top: 96px; }
.chiffre, .tarif-prix strong { font-variant-numeric: tabular-nums; }
.evitement { position: absolute; left: 16px; top: -60px; z-index: 60; background: var(--encre);
  color: #fff; padding: 10px 16px; border-radius: 0 0 10px 10px; font-weight: 600; }
.evitement:focus { top: 0; }
/* Matrice de compétences */
.matrice th small { display: block; font-weight: 400; color: var(--texte); font-family: 'Barlow', sans-serif; }
.matrice th .tarif-niveau { display: block; margin-bottom: 2px; }
.matrice th { vertical-align: top; }
.matrice td { text-align: center; }
.matrice td:first-child { text-align: left; }
.matrice td.oui .coche { color: #1a7f4e; font-weight: 700; font-size: 18px; }
.matrice td.non { background: repeating-linear-gradient(45deg, transparent 0 6px, rgba(23,22,58,.03) 6px 7px); }
.matrice th:not(:first-child), .matrice td:not(:first-child) { min-width: 128px; }
/* Appels à l'action : bandeau compact, boutons de la grille tarifs, devis du calculateur */
.cta-ligne-bloc { padding: 0 clamp(12px, 2vw, 28px) 24px; }
.cta-ligne-bloc .boite { max-width: none; padding: 0; }
.cta-ligne { background: var(--degrade); border-radius: 24px; padding: 40px clamp(28px, 5vw, 72px);
  display: flex; align-items: center; justify-content: space-between; gap: 32px; }
.cta-ligne h2, .cta-ligne p { color: #fff; }
.cta-ligne h2 { font-size: clamp(22px, 2.4vw, 28px); margin-bottom: 6px; }
.cta-ligne p { opacity: .9; max-width: 560px; }
.cta-ligne .heros-actions { flex: none; }
.bloc + .cta-ligne-bloc, .processus-large + .cta-ligne-bloc { margin-top: -32px; }
.cta-ligne-bloc + .bloc { padding-top: 64px; }
.tarif-actions { display: flex; gap: 14px; flex-wrap: wrap; margin: -16px 0 40px; }
.calc-devis { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 24px; }
.calc-devis span { font-size: 15px; }
/* Bouton rendez-vous fixé en bas sur mobile (celui de l'en-tête est masqué) */
.cta-mobile { display: none; }
@media (max-width: 900px) {
  .cta-ligne { flex-direction: column; align-items: flex-start; padding: 32px 24px; }
  .cta-mobile { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40;
    padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(255,255,255,.94);
    backdrop-filter: blur(8px); border-top: 1px solid var(--gris); }
  .cta-mobile .btn { display: block; text-align: center; }
  body { padding-bottom: 72px; }
}

/* Envoi en cours : champs grisés et figés, bouton avec roue de chargement.
   Bloc commun à tous les sites du groupe (même code dans chaque style.css). */
form[aria-busy="true"] { cursor: progress; }
form[aria-busy="true"] label { opacity: .6; }
form[aria-busy="true"] :is(input, select, textarea):disabled {
  background: #eef1f5; border-color: #dde2ea; color: #6b7280; opacity: 1; cursor: progress;
}
form button[type="submit"]:disabled { opacity: .7; cursor: progress; transform: none; }
.spinner {
  display: inline-block; width: .85em; height: .85em; margin-right: .55em; vertical-align: -.1em;
  border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%;
  animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .spinner { animation: none; border-right-color: currentColor; opacity: .6; } }
