/* Gabarit commun des pages : menu déroulant complet, ouverture de page, blocs de contenu, démo intégrée, pied.
   Comme dans vitrine.css, toute règle à classe porte :where(:not(.demo-zone *)) pour ne pas toucher les démos. */

/* Menu déroulant */
.barre .cadre:where(:not(.demo-zone *)) { gap: 20px }
.marque-lien:where(:not(.demo-zone *)) { display: flex; flex: none }
.barre .logo-petit:where(:not(.demo-zone *)) { opacity: 1 }
.mm-liste:where(:not(.demo-zone *)) { list-style: none; display: flex; gap: 4px; margin: 0 0 0 auto; padding: 0 }
.mm:where(:not(.demo-zone *)) { position: static }
.mm-bouton:where(:not(.demo-zone *)) { background: none; border: 0; color: #D6D8DE; font: 500 14.5px/1 var(--f-texte); padding: 12px 12px; border-radius: 8px; cursor: pointer }
.mm-bouton:where(:not(.demo-zone *))::after { content: ""; display: inline-block; width: 6px; height: 6px; margin-left: 8px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-3px) rotate(45deg); transition: transform 160ms var(--ease-out) }
.mm-bouton[aria-expanded="true"]:where(:not(.demo-zone *)) { color: var(--blanc); background: rgba(255, 255, 255, .08) }
.mm-bouton[aria-expanded="true"]:where(:not(.demo-zone *))::after { transform: translateY(0) rotate(-135deg) }
.mm-panneau:where(:not(.demo-zone *)) { position: absolute; left: 0; right: 0; top: 100%; background: var(--nuit); border-top: 1px solid rgba(255, 255, 255, .08); border-bottom: 1px solid rgba(255, 255, 255, .08); box-shadow: 0 30px 60px -20px rgba(0, 0, 0, .6); opacity: 0; transform: translateY(-6px); pointer-events: none; transition: opacity 180ms ease, transform 220ms var(--ease-out) }
.mm.ouvert .mm-panneau:where(:not(.demo-zone *)) { opacity: 1; transform: none; pointer-events: auto }
.mm-grille:where(:not(.demo-zone *)) { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 28px; padding-block: 28px 32px }
.mm-col:where(:not(.demo-zone *)) { display: grid; gap: 2px; align-content: start }
.mm-titre:where(:not(.demo-zone *)) { display: block; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--jaune); margin-bottom: 8px }
.mm-col a:where(:not(.demo-zone *)) { color: #D6D8DE; text-decoration: none; padding: 7px 0; font-size: 15px }
.mm-col a:hover:where(:not(.demo-zone *)), .mm-col a[aria-current="page"]:where(:not(.demo-zone *)) { color: var(--blanc) }
.menu-mobile:where(:not(.demo-zone *)) { display: none; background: none; border: 1px solid rgba(255, 255, 255, .3); color: var(--blanc); border-radius: 8px; padding: 9px 12px; font: 600 14px/1 var(--f-texte) }
.tiroir:where(:not(.demo-zone *)) { position: fixed; inset: 68px 0 0; z-index: 39; background: var(--nuit); overflow-y: auto; padding: 20px max(16px, 4vw) 60px; display: grid; gap: 24px 32px; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); align-content: start }
.tiroir a:where(:not(.demo-zone *)) { display: block; color: #D6D8DE; text-decoration: none; padding: 8px 0; font-size: 16px }
@media (max-width: 1100px) {
  .mm-liste:where(:not(.demo-zone *)) { display: none }
  .menu-mobile:where(:not(.demo-zone *)) { display: block; margin-left: auto }
  .barre .btn-jaune:where(:not(.demo-zone *)) { display: none }
}

/* Ouverture d'une page */
.p-ouverture:where(:not(.demo-zone *)) { background: var(--nuit); color: var(--blanc); padding-block: calc(68px + clamp(56px, 8vw, 110px)) clamp(48px, 6vw, 80px); position: relative; overflow: hidden }
.p-ouverture.avec-photo:where(:not(.demo-zone *)) { background: linear-gradient(90deg, rgba(22, 24, 29, .95) 0%, rgba(22, 24, 29, .88) 50%, rgba(22, 24, 29, .45) 100%), linear-gradient(0deg, rgba(22, 24, 29, .6), transparent 45%), var(--photo) center / cover no-repeat, var(--nuit); min-height: min(60vh, 620px); display: grid; align-content: end }
.p-surtitre:where(:not(.demo-zone *)) { font-size: 13px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--jaune) }
.p-ouverture h1:where(:not(.demo-zone *)) { font-size: clamp(32px, 3.8vw, 52px); max-width: 22ch; margin-top: 14px; line-height: 1.08 }
.p-chapeau:where(:not(.demo-zone *)) { color: #E4E6EB; font-size: clamp(18px, 1.5vw, 21px); max-width: 52ch; margin-top: 20px; line-height: 1.6 }
.avec-photo .p-chapeau:where(:not(.demo-zone *)), .avec-photo h1:where(:not(.demo-zone *)) { text-shadow: 0 1px 18px rgba(22, 24, 29, .55) }

/* Le besoin du dirigeant */
.p-besoin:where(:not(.demo-zone *)) { background: var(--jaune); color: var(--noir) }
.p-besoin .cadre:where(:not(.demo-zone *)) { display: grid; grid-template-columns: 200px minmax(0, 1fr); gap: 24px; align-items: baseline; padding-block: 30px }
.p-besoin span:where(:not(.demo-zone *)) { font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase }
.p-besoin p:where(:not(.demo-zone *)) { font: 600 clamp(20px, 2.2vw, 28px)/1.3 var(--f-titre); letter-spacing: var(--ls-titre) }
@media (max-width: 700px) { .p-besoin .cadre:where(:not(.demo-zone *)) { grid-template-columns: 1fr; gap: 8px } }

/* Ce que la communauté va vivre */
.p-vivre:where(:not(.demo-zone *)) { padding-block: clamp(64px, 8vw, 110px) }
.p-vivre h2:where(:not(.demo-zone *)), .p-details h2:where(:not(.demo-zone *)), .p-questions h2:where(:not(.demo-zone *)), .p-liees h2:where(:not(.demo-zone *)) { font-size: clamp(26px, 3.2vw, 42px); max-width: 22ch }
.moments:where(:not(.demo-zone *)) { margin-top: 36px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px }
.moment:where(:not(.demo-zone *)) { padding: 26px 0; border-top: 1px solid var(--ligne); display: grid; gap: 8px; align-content: start }
.moment h3:where(:not(.demo-zone *)) { font: 600 20px/1.3 var(--f-texte); letter-spacing: -.01em }
.moment p:where(:not(.demo-zone *)) { color: var(--gris); font-size: 16.5px }
.moment.premier:where(:not(.demo-zone *)) { grid-column: 1 / -1; border-top: 2px solid var(--noir) }
.moment.premier h3:where(:not(.demo-zone *)) { font: 600 clamp(22px, 2.4vw, 30px)/1.25 var(--f-titre); letter-spacing: var(--ls-titre) }
.moment.premier p:where(:not(.demo-zone *)) { font-size: 18px; max-width: 70ch }
@media (max-width: 760px) { .moments:where(:not(.demo-zone *)) { grid-template-columns: 1fr } }

/* Démo intégrée */
.p-demo:where(:not(.demo-zone *)) { background: var(--papier); padding-block: clamp(56px, 7vw, 96px); border-block: 1px solid var(--ligne) }
.p-demo-tete:where(:not(.demo-zone *)) { display: flex; flex-wrap: wrap; align-items: baseline; gap: 10px 24px; margin-bottom: 22px }
.p-demo-tete h2:where(:not(.demo-zone *)) { font-size: clamp(24px, 3vw, 36px) }
.p-demo-tete p:where(:not(.demo-zone *)) { color: var(--gris); flex: 1 1 320px }
.p-styles:where(:not(.demo-zone *)) { display: inline-flex; background: var(--blanc); border: 1px solid var(--ligne); border-radius: 10px; padding: 4px; gap: 4px }
.p-styles button:where(:not(.demo-zone *)) { border: 0; background: none; padding: 8px 12px; border-radius: 7px; font: 600 13.5px/1 var(--f-texte); cursor: pointer; color: var(--gris) }
.p-styles button[aria-pressed="true"]:where(:not(.demo-zone *)) { background: var(--noir); color: var(--blanc) }
.p-demo-ecran:where(:not(.demo-zone *)) { border-radius: 18px; overflow: clip; border: 1px solid var(--ligne); padding: 22px; box-shadow: 0 30px 60px -30px rgba(27, 29, 35, .3); min-height: 320px }
@media (max-width: 600px) { .p-demo-ecran:where(:not(.demo-zone *)) { padding: 12px; border-radius: 14px } }
.p-demo-ecran .attente:where(:not(.demo-zone *)) { color: var(--r-texte-2); text-align: center; padding: 60px 0 }

/* Détails, chiffres, questions, pages liées */
.p-details:where(:not(.demo-zone *)) { padding-block: clamp(64px, 8vw, 110px) }
.chiffres:where(:not(.demo-zone *)) { margin-top: 32px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px }
.chiffres div:where(:not(.demo-zone *)) { border-left: 3px solid var(--jaune); padding: 6px 0 6px 16px; display: grid; gap: 4px }
.chiffres b:where(:not(.demo-zone *)) { font: 700 clamp(22px, 2.4vw, 30px)/1.1 var(--f-titre); letter-spacing: var(--ls-titre) }
.chiffres span:where(:not(.demo-zone *)) { color: var(--gris); font-size: 15px }
/* « Toutes les possibilités » : une carte par groupe, une ligne par point, une coche lisible. */
.details:where(:not(.demo-zone *)) { margin-top: 32px; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 330px), 1fr)); gap: 18px; align-items: start }
.detail:where(:not(.demo-zone *)) { background: var(--papier); border-radius: 16px; padding: 22px 24px }
.detail h3:where(:not(.demo-zone *)) { font: 700 18px/1.3 var(--f-titre); letter-spacing: var(--ls-titre) }
.detail ul:where(:not(.demo-zone *)) { margin: 10px 0 0; padding: 0; list-style: none; display: grid }
.detail li:where(:not(.demo-zone *)) { display: flex; gap: 12px; padding: 11px 0; border-top: 1px solid var(--ligne); color: var(--noir); font-size: 15.5px; line-height: 1.45 }
.detail li:first-child:where(:not(.demo-zone *)) { border-top: 0; padding-top: 4px }
.detail li b:where(:not(.demo-zone *)) { display: block; font-weight: 700 }
.detail li small:where(:not(.demo-zone *)) { display: block; margin-top: 3px; color: var(--gris); font-size: 13.5px }
.detail li:where(:not(.demo-zone *))::before { content: "✓"; display: grid; place-items: center; width: 20px; height: 20px; margin-top: 1px; border-radius: 50%; background: var(--jaune); color: var(--noir); font: 800 11px/1 var(--f-texte); flex: none }
.p-questions:where(:not(.demo-zone *)) { background: var(--papier); padding-block: clamp(56px, 7vw, 96px) }
.question:where(:not(.demo-zone *)) { border-bottom: 1px solid var(--ligne); max-width: 820px }
.question:first-of-type:where(:not(.demo-zone *)) { margin-top: 28px; border-top: 1px solid var(--ligne) }
.question summary:where(:not(.demo-zone *)) { cursor: pointer; padding: 18px 0; font-weight: 600; font-size: 17px; list-style: none; display: flex; justify-content: space-between; gap: 16px }
.question summary:where(:not(.demo-zone *))::after { content: "+"; font: 400 22px/1 var(--f-texte); transition: transform 200ms var(--ease-out) }
.question[open] summary:where(:not(.demo-zone *))::after { transform: rotate(45deg) }
.question p:where(:not(.demo-zone *)) { color: var(--gris); padding-bottom: 18px; max-width: 70ch }
.p-liees:where(:not(.demo-zone *)) { padding-block: clamp(56px, 7vw, 96px) }
.liees:where(:not(.demo-zone *)) { margin-top: 28px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px }
@media (max-width: 760px) { .liees:where(:not(.demo-zone *)) { grid-template-columns: 1fr } }
.liee:where(:not(.demo-zone *)) { display: grid; gap: 8px; padding: 22px; border-radius: 14px; border: 1px solid var(--ligne); text-decoration: none; transition: border-color 200ms ease, transform 160ms var(--ease-out) }
.liee:active:where(:not(.demo-zone *)) { transform: scale(.98) }
@media (hover: hover) and (pointer: fine) { .liee:hover:where(:not(.demo-zone *)) { border-color: var(--noir) } }
.liee span:where(:not(.demo-zone *)) { font-size: 12.5px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--gris) }
.liee b:where(:not(.demo-zone *)) { font: 600 19px/1.3 var(--f-titre); letter-spacing: var(--ls-titre) }
.p-rdv:where(:not(.demo-zone *)) { background: var(--jaune); color: var(--noir); padding-block: 64px }
.p-rdv .cadre:where(:not(.demo-zone *)) { display: grid; gap: 12px; justify-items: start }
.p-rdv h2:where(:not(.demo-zone *)) { font-size: clamp(26px, 3.2vw, 40px) }
.p-rdv .btn:where(:not(.demo-zone *)) { background: var(--noir); color: var(--blanc); margin-top: 8px }

/* Pied complet */
.pied-complet:where(:not(.demo-zone *)) { background: var(--nuit); color: #A9ACB5; padding-block: 56px 40px; font-size: 14px }
.pied-haut:where(:not(.demo-zone *)) { display: flex; flex-wrap: wrap; gap: 16px 40px; align-items: center; padding-bottom: 32px; border-bottom: 1px solid rgba(255, 255, 255, .08) }
.pied-haut img:where(:not(.demo-zone *)) { height: 40px; width: auto }
.pied-haut p:where(:not(.demo-zone *)) { max-width: 60ch }
.pied-grille:where(:not(.demo-zone *)) { margin-top: 32px; display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); gap: 28px }
.pied-grille b:where(:not(.demo-zone *)) { display: block; color: var(--blanc); margin-bottom: 10px; font-size: 13.5px }
.pied-grille a:where(:not(.demo-zone *)) { display: block; color: #A9ACB5; text-decoration: none; padding: 4px 0 }
.pied-grille a:hover:where(:not(.demo-zone *)) { color: var(--blanc) }

/* Pages « Votre réseau », « Nous connaître » et « Légal » (corps libres, préfixe pv-) */
.pv-section:where(:not(.demo-zone *)) { padding-block: clamp(56px, 7vw, 100px) }
.pv-papier:where(:not(.demo-zone *)) { background: var(--papier) }
.pv-h2:where(:not(.demo-zone *)) { font-size: clamp(26px, 3.2vw, 42px); max-width: 22ch }
.pv-intro:where(:not(.demo-zone *)) { color: var(--gris); margin-top: 14px; max-width: 60ch; font-size: 18px }
.pv-deux:where(:not(.demo-zone *)) { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 24px 56px; align-items: start }
@media (max-width: 860px) { .pv-deux:where(:not(.demo-zone *)) { grid-template-columns: 1fr } }
.pv-prose:where(:not(.demo-zone *)) { display: grid; gap: 14px; max-width: 66ch; font-size: 17.5px }
.pv-prose p:where(:not(.demo-zone *)) { color: inherit }
.pv-prose a:not(.btn):where(:not(.demo-zone *)) { font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--jaune) }
.pv-surtitre-sombre:where(:not(.demo-zone *)) { color: var(--gris); display: block; margin-bottom: 12px }
.pv-btn-noir:where(:not(.demo-zone *)) { background: var(--noir); color: var(--blanc) }
.a-valider:where(:not(.demo-zone *)) { background: #FFF3B0; color: var(--noir); padding: 1px 5px; border-radius: 4px; font-size: .86em; font-weight: 600; white-space: normal }

/* À vos couleurs */
.config.pv-haut:where(:not(.demo-zone *)) { padding-top: clamp(56px, 7vw, 96px) }
.pv-lab-style:where(:not(.demo-zone *)) { font-size: 13.5px; font-weight: 600; color: #D6D8DE; display: block; margin-bottom: 12px }
.pv-salle-courte:where(:not(.demo-zone *)) { padding-block: 24px clamp(64px, 8vw, 110px) }
.pv-salle-courte .ecran-corps:where(:not(.demo-zone *)) { min-height: 560px }
.pv-suite:where(:not(.demo-zone *)) { margin-top: 22px }
.pv-suite a:where(:not(.demo-zone *)) { color: inherit; font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--jaune) }
.pv-form .pv-suite:where(:not(.demo-zone *)) { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 14px; font-size: 16px }
.pv-form .pv-suite a:where(:not(.demo-zone *)) { display: inline-flex; align-items: center; min-height: 44px; padding: 0 20px; border: 1.5px solid var(--noir); border-radius: 10px; color: var(--noir); font-weight: 700; transition: background-color .2s, color .2s }
.pv-form .pv-suite a:hover:where(:not(.demo-zone *)), .pv-form .pv-suite a:focus-visible:where(:not(.demo-zone *)) { background: var(--noir); color: var(--blanc) }
.pv-trio:where(:not(.demo-zone *)) { list-style: none; margin: 40px 0 0; padding: 0; display: grid; gap: 0 }
.pv-trio li:where(:not(.demo-zone *)) { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 32px; align-items: center; padding-block: 26px; border-top: 1px solid var(--ligne) }
.pv-trio li:first-child:where(:not(.demo-zone *)) { border-top: 2px solid var(--noir) }
.pv-trio .mini:where(:not(.demo-zone *)) { box-shadow: 0 18px 40px -24px rgba(27, 29, 35, .5) }
.pv-trio h3:where(:not(.demo-zone *)) { font-size: clamp(22px, 2.4vw, 30px) }
.pv-trio p:where(:not(.demo-zone *)) { color: var(--gris); margin-top: 8px; max-width: 58ch }
@media (max-width: 640px) { .pv-trio li:where(:not(.demo-zone *)) { grid-template-columns: 1fr; gap: 16px } .pv-trio .mini:where(:not(.demo-zone *)) { max-width: 260px } }

/* La démo complète */
.pv-salle:where(:not(.demo-zone *)) { padding-top: clamp(48px, 6vw, 80px) }
.pv-salle-tete:where(:not(.demo-zone *)) { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: end; gap: 20px 32px }
.pv-salle-tete .intro a:where(:not(.demo-zone *)) { color: var(--blanc); font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--jaune) }

/* Tarifs */
.pv-tarifs h2:where(:not(.demo-zone *)) { font-size: clamp(26px, 3.2vw, 42px) }
.pv-saisie:where(:not(.demo-zone *)) { margin-top: 18px; font-size: 14px !important }
.pv-saisie input:where(:not(.demo-zone *)) { font: 600 17px/1.2 var(--f-texte); padding: 11px 13px; border-radius: 10px; border: 1.5px solid var(--ligne); width: 160px }
.pv-saisie input:focus:where(:not(.demo-zone *)) { outline: none; border-color: var(--noir) }
.pv-echelle:where(:not(.demo-zone *)) { list-style: none; margin: 22px 0 0; padding: 0; display: grid; border-top: 1px solid var(--ligne) }
.pv-echelle li:where(:not(.demo-zone *)) { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 2px 16px; padding: 12px 10px; border-bottom: 1px solid var(--ligne); transition: background-color 200ms ease }
.pv-echelle b:where(:not(.demo-zone *)) { font-size: 15.5px }
.pv-echelle span:where(:not(.demo-zone *)) { grid-column: 1; color: var(--gris); font-size: 14px }
.pv-echelle em:where(:not(.demo-zone *)) { grid-column: 2; grid-row: 1 / span 2; align-self: center; font-style: normal; font-weight: 600; font-size: 14.5px }
.pv-echelle li.actuelle:where(:not(.demo-zone *)) { background: var(--jaune) }
.pv-echelle li.actuelle span:where(:not(.demo-zone *)) { color: var(--noir) }
.pv-actions:where(:not(.demo-zone *)) { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 12px }
.pv-souverain:where(:not(.demo-zone *)) { background: var(--nuit); color: var(--blanc); padding-block: clamp(64px, 8vw, 110px) }
.pv-souverain h2:where(:not(.demo-zone *)) { font-size: clamp(30px, 4vw, 54px); max-width: 14ch }
.pv-souverain .pv-prose:where(:not(.demo-zone *)) { color: #D6D8DE; font-size: 19px }
.pv-souverain .pv-prose p:first-child:where(:not(.demo-zone *)) { color: var(--blanc); font: 600 clamp(20px, 2.2vw, 26px)/1.35 var(--f-titre); letter-spacing: var(--ls-titre) }
.pv-options:where(:not(.demo-zone *)) { margin-top: 32px; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 0 48px }
@media (max-width: 760px) { .pv-options:where(:not(.demo-zone *)) { grid-template-columns: 1fr } }
.pv-options > div:where(:not(.demo-zone *)) { border-top: 2px solid var(--noir); padding-top: 20px; display: grid; gap: 10px; align-content: start; padding-bottom: 24px }
.pv-options h3:where(:not(.demo-zone *)) { font-size: clamp(20px, 2.2vw, 26px) }
.pv-options p:where(:not(.demo-zone *)) { color: var(--gris) }
.pv-options a:where(:not(.demo-zone *)) { justify-self: start; font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--jaune) }
.pv-net:where(:not(.demo-zone *)) { margin-top: 12px; font-weight: 600 }

/* Partenaires */
.pv-partenaire .cadre:where(:not(.demo-zone *)) { padding-block: clamp(48px, 6vw, 80px) }
.pv-partenaire img:where(:not(.demo-zone *)) { width: 160px }
.pv-partenaire h2:where(:not(.demo-zone *)) { font-size: clamp(22px, 2.6vw, 30px) }
.pv-partenaire p:where(:not(.demo-zone *)) { font-size: 18px }

/* Rendez-vous */
.pv-rdv:where(:not(.demo-zone *)) { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); gap: 32px 64px; align-items: start }
@media (max-width: 900px) { .pv-rdv:where(:not(.demo-zone *)) { grid-template-columns: 1fr } }
.pv-etapes:where(:not(.demo-zone *)) { list-style: none; margin: 28px 0 0; padding: 0; display: grid; gap: 18px; counter-reset: e }
.pv-etapes li:where(:not(.demo-zone *)) { display: grid; gap: 4px; padding-left: 46px; position: relative; counter-increment: e }
.pv-etapes li:where(:not(.demo-zone *))::before { content: counter(e); position: absolute; left: 0; top: -2px; width: 32px; height: 32px; border-radius: 50%; background: var(--jaune); display: grid; place-items: center; font: 700 14px/1 var(--f-titre) }
.pv-etapes span:where(:not(.demo-zone *)) { color: var(--gris); font-size: 15.5px }
.pv-form:where(:not(.demo-zone *)) { display: grid; gap: 20px; background: var(--papier); border: 1px solid var(--ligne); border-radius: 20px; padding: clamp(20px, 3vw, 36px) }
.pv-champs:where(:not(.demo-zone *)) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px }
@media (max-width: 620px) { .pv-champs:where(:not(.demo-zone *)) { grid-template-columns: 1fr } }
.pv-form label:where(:not(.demo-zone *)) { display: grid; gap: 7px; font-size: 14px; font-weight: 600 }
.pv-form small:where(:not(.demo-zone *)) { font-weight: 500; color: var(--gris) }
.pv-form input:not([type="checkbox"]):where(:not(.demo-zone *)), .pv-form select:where(:not(.demo-zone *)), .pv-form textarea:where(:not(.demo-zone *)) { font: 500 16px/1.3 var(--f-texte); color: var(--noir); padding: 12px 13px; border-radius: 10px; border: 1.5px solid var(--ligne); background: var(--blanc); width: 100% }
.pv-form input:focus:where(:not(.demo-zone *)), .pv-form select:focus:where(:not(.demo-zone *)), .pv-form textarea:focus:where(:not(.demo-zone *)) { outline: none; border-color: var(--noir) }
.pv-form textarea:where(:not(.demo-zone *)) { resize: vertical }
.pv-cases:where(:not(.demo-zone *)) { border: 0; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 8px }
.pv-cases legend:where(:not(.demo-zone *)) { font-size: 14px; font-weight: 600; margin-bottom: 10px; padding: 0 }
.pv-case:where(:not(.demo-zone *)) { display: flex !important; align-items: center; gap: 10px !important; font-weight: 500 !important; font-size: 15px !important; background: var(--blanc); border: 1.5px solid var(--ligne); border-radius: 10px; padding: 10px 12px; cursor: pointer }
.pv-case input:where(:not(.demo-zone *)) { width: 18px; height: 18px; accent-color: var(--noir); flex: none }
.pv-case:has(input:checked):where(:not(.demo-zone *)) { border-color: var(--noir) }
.pv-form .btn:where(:not(.demo-zone *)) { justify-self: start }
.pv-form .merci:where(:not(.demo-zone *)) { font-weight: 600; background: var(--jaune); padding: 12px 14px; border-radius: 10px }
.pv-form .note:where(:not(.demo-zone *)) { margin: 0 }

/* Mentions légales et accessibilité */
.pv-legal:where(:not(.demo-zone *)) { display: grid; gap: 0; max-width: 860px }
.pv-legal-bloc:where(:not(.demo-zone *)) { display: grid; gap: 12px; padding-block: 28px; border-top: 1px solid var(--ligne) }
.pv-legal-bloc:first-child:where(:not(.demo-zone *)) { border-top: 2px solid var(--noir) }
.pv-legal-bloc h2:where(:not(.demo-zone *)) { font-size: clamp(20px, 2.2vw, 26px) }
.pv-legal-bloc p:where(:not(.demo-zone *)), .pv-legal-bloc li:where(:not(.demo-zone *)) { color: var(--gris); max-width: 70ch }
.pv-legal-bloc ul:where(:not(.demo-zone *)) { margin: 0; padding-left: 20px; display: grid; gap: 6px }
.pv-etat:where(:not(.demo-zone *)) { font: 700 clamp(22px, 2.4vw, 30px)/1.1 var(--f-titre) !important; color: var(--noir) !important; letter-spacing: var(--ls-titre) }

.tiroir[hidden]:where(:not(.demo-zone *)) { display: none }

/* Simulateur : trois formules et le devis, au choix */
.s-question:where(:not(.demo-zone *)) { display: block; font-weight: 600; font-size: 16px; margin-bottom: 14px }
.choix-formule:where(:not(.demo-zone *)) { display: grid; gap: 10px }
.choix-formule button:where(:not(.demo-zone *)) { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; text-align: left; padding: 16px 18px; border-radius: 12px; border: 1.5px solid var(--ligne); background: var(--blanc); cursor: pointer; font: inherit; color: var(--noir); transition: border-color 160ms ease, transform 160ms var(--ease-out) }
.choix-formule button:active:where(:not(.demo-zone *)) { transform: scale(.98) }
.choix-formule button[aria-checked="true"]:where(:not(.demo-zone *)) { border-color: var(--noir); box-shadow: inset 0 0 0 1px var(--noir); background: #FFFBE6 }
.choix-formule b:where(:not(.demo-zone *)) { font-size: 16px }
.choix-formule span:where(:not(.demo-zone *)) { color: var(--gris); font-size: 15px; white-space: nowrap }
@media (max-width: 560px) { .choix-formule button:where(:not(.demo-zone *)) { flex-direction: column; gap: 4px } }

/* Le panneau du menu ne doit pas hériter de la mise en page de la barre */
.barre .mm-panneau .cadre:where(:not(.demo-zone *)) { display: grid; height: auto; align-items: start }

/* Messages des formulaires de compte */
.ov-erreur:where(:not(.demo-zone *)) { margin: 0; font-weight: 600; color: #A3122B }
.ov-pret h3:where(:not(.demo-zone *)) { font: 700 clamp(22px, 2.4vw, 28px)/1.1 var(--f-titre); letter-spacing: var(--ls-titre) }
.ov-pret:focus:where(:not(.demo-zone *)) { outline: none }
.pv-form .btn:disabled:where(:not(.demo-zone *)) { opacity: .6; cursor: progress }

/* Partenaires : captures des sites, chacune avec son lien */
.pv-captures:where(:not(.demo-zone *)) { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 420px), 1fr)); gap: 24px; margin-top: 40px }
.pv-capture:where(:not(.demo-zone *)) { display: grid; gap: 12px; text-decoration: none; color: inherit }
.pv-capture img:where(:not(.demo-zone *)) { width: 100%; height: auto; border-radius: 14px; border: 1px solid var(--ligne); box-shadow: 0 24px 48px -30px rgba(27, 29, 35, .4); transition: transform .25s var(--ease-out) }
.pv-capture span:where(:not(.demo-zone *)) { display: grid; font-size: 14.5px; color: var(--gris) }
.pv-capture b:where(:not(.demo-zone *)) { color: var(--noir); font-size: 17px }
@media (hover: hover) and (pointer: fine) { .pv-capture:hover img:where(:not(.demo-zone *)) { transform: translateY(-3px) } }
.partenaire .pv-captures:where(:not(.demo-zone *)) { display: grid; align-items: start; margin-top: 0; padding-block: 0 56px }

/* Créer un compte d'abord, se connecter ensuite, le rendez-vous en petit pour les grands établissements */
.pv-btn-trait:where(:not(.demo-zone *)) { background: transparent; color: var(--noir); border: 1.5px solid var(--noir) }
.pv-btn-trait:hover:where(:not(.demo-zone *)) { background: var(--noir); color: var(--blanc) }
.p-rdv-actions:where(:not(.demo-zone *)) { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 8px }
.p-rdv .p-rdv-actions .btn:where(:not(.demo-zone *)) { margin-top: 0 }
.p-rdv .btn-trait-noir:where(:not(.demo-zone *)) { background: transparent; color: var(--noir); border: 1.5px solid var(--noir) }
.p-rdv .btn-trait-noir:hover:where(:not(.demo-zone *)) { background: var(--noir); color: var(--blanc) }
.p-rdv-note:where(:not(.demo-zone *)) { font-size: 15px; margin-top: 4px }
.p-rdv-note a:where(:not(.demo-zone *)) { color: inherit; font-weight: 700 }

/* Entrée directe du menu (Connecteurs) et texte d'un groupe de détails */
.mm-lien:where(:not(.demo-zone *)) { display: inline-flex; align-items: center; color: #D6D8DE; font: 500 14.5px/1 var(--f-texte); padding: 12px; border-radius: 8px; text-decoration: none }
.mm-lien:hover:where(:not(.demo-zone *)), .mm-lien[aria-current="page"]:where(:not(.demo-zone *)) { color: var(--blanc); background: rgba(255, 255, 255, .08) }
.detail-texte:where(:not(.demo-zone *)) { color: var(--gris); font-size: 15px; margin: 6px 0 10px }

/* Page Connecteurs : une ligne par catégorie, les logiciels en colonnes à droite */
.details-larges:where(:not(.demo-zone *)) { grid-template-columns: 1fr }
.details-larges .detail:where(:not(.demo-zone *)) { display: grid; grid-template-columns: minmax(220px, 300px) minmax(0, 1fr); gap: 8px 32px; align-items: start }
.details-larges .detail ul:where(:not(.demo-zone *)) { grid-row: 1 / span 2; grid-column: 2; margin: 0; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); gap: 0 28px }
.details-larges .detail li:where(:not(.demo-zone *)) { border-top: 1px solid var(--ligne); padding: 11px 0 }
.details-larges .detail li:first-child:where(:not(.demo-zone *)) { border-top: 1px solid var(--ligne); padding-top: 11px }
@media (max-width: 800px) { .details-larges .detail:where(:not(.demo-zone *)) { grid-template-columns: 1fr } .details-larges .detail ul:where(:not(.demo-zone *)) { grid-row: auto; grid-column: 1 } }

/* Bande du menu : chaque entrée sur une seule ligne */
.mm-bouton:where(:not(.demo-zone *)), .mm-lien:where(:not(.demo-zone *)) { white-space: nowrap; padding-inline: 10px }
.barre .mm-liste:where(:not(.demo-zone *)) { gap: 0 }
.details-larges .detail:where(:not(.demo-zone *)) { grid-template-rows: auto 1fr }
.details-larges .detail-texte:where(:not(.demo-zone *)) { align-self: start; margin: 0 }
/* Quatre groupes : deux colonnes, jamais un groupe seul sur sa ligne */
@media (min-width: 760px) { .details:not(.details-larges):has(> .detail:nth-child(4):last-child):where(:not(.demo-zone *)) { grid-template-columns: repeat(2, minmax(0, 1fr)) } }
