/* Suite E-KO, site vitrine. Polices hébergées ici (OFL), aucune ressource externe, aucun cookie. */
@font-face { font-family: Montserrat; src: url("/assets/fonts/Montserrat.woff2") format("woff2"); font-weight: 100 900; font-display: swap; }
@font-face { font-family: "Source Sans 3"; src: url("/assets/fonts/SourceSans3.woff2") format("woff2"); font-weight: 200 900; font-display: swap; }

/* Mise en page : en-tête de verre, héros avec fenêtre d'app, bandes alternées pleine largeur, contenu dans 1180 px. */
:root {
  --bleu: #1B679F;
  --bleu-fonce: #134B74;
  --bleu-pale: #E8F1F8;
  --cyan: #00AEEF; --magenta: #EC008C; --jaune: #FFD500;
  --fond: #F5F7FA;
  --fond-2: #FFFFFF;
  --fond-3: #EBEFF4;
  --texte: #101828;
  --texte-2: #475467;
  --texte-3: #667085;
  --trait: #E4E7EC;
  --verre: rgba(255,255,255,.78);
  --ombre: 0 1px 2px rgba(16,24,40,.06), 0 16px 40px -12px rgba(16,24,40,.22);
  --ok: #067647; --ok-fond: #ECFDF3;
  --attente: #B54708; --attente-fond: #FFFAEB;
  --info: #175CD3; --info-fond: #EFF8FF;
  --violet: #6941C6; --violet-fond: #F4F3FF;
  --titre: Montserrat, "Segoe UI", system-ui, sans-serif;
  --corps: "Source Sans 3", "Segoe UI", system-ui, sans-serif;
  --large: 1180px;
  --logo: Montserrat, "Segoe UI", sans-serif;
  --logo-bleu: #22679f;
  --encre: #283540;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --bleu: #4A9BD6; --bleu-fonce: #8CC3EA; --bleu-pale: #12283A;
  --fond: #0B0F14; --fond-2: #131920; --fond-3: #1B232C;
  --texte: #EEF2F6; --texte-2: #B3BDC9; --texte-3: #8D98A6; --trait: #26303B;
  --verre: rgba(19,25,32,.8); --encre: #FFFFFF; --logo-bleu: #4A9BD6; --ombre: 0 1px 2px rgba(0,0,0,.4), 0 16px 40px -12px rgba(0,0,0,.7);
  --ok: #47CD89; --ok-fond: #0F2A1E; --attente: #FDB022; --attente-fond: #2E2210;
  --info: #84ADFF; --info-fond: #142340; --violet: #BDB4FE; --violet-fond: #231C3D;
  color-scheme: dark; } }
:root[data-theme="dark"] {
  --bleu: #4A9BD6; --bleu-fonce: #8CC3EA; --bleu-pale: #12283A;
  --fond: #0B0F14; --fond-2: #131920; --fond-3: #1B232C;
  --texte: #EEF2F6; --texte-2: #B3BDC9; --texte-3: #8D98A6; --trait: #26303B;
  --verre: rgba(19,25,32,.8); --encre: #FFFFFF; --logo-bleu: #4A9BD6; --ombre: 0 1px 2px rgba(0,0,0,.4), 0 16px 40px -12px rgba(0,0,0,.7);
  --ok: #47CD89; --ok-fond: #0F2A1E; --attente: #FDB022; --attente-fond: #2E2210;
  --info: #84ADFF; --info-fond: #142340; --violet: #BDB4FE; --violet-fond: #231C3D;
  color-scheme: dark; }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--fond); color: var(--texte); font: 17px/1.6 var(--corps); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
h1, h2, h3, h4 { font-family: var(--titre); letter-spacing: -.02em; text-wrap: balance; margin: 0; line-height: 1.15; }
p { margin: 0; }
a { color: var(--bleu); text-decoration: none; }
a:hover { text-decoration: underline; }
:focus-visible { outline: 3px solid var(--bleu); outline-offset: 3px; border-radius: 6px; }
.conteneur { width: 100%; max-width: calc(var(--large) + 32px); margin-inline: auto; padding-left: max(16px, env(safe-area-inset-left, 0px)); padding-right: max(16px, env(safe-area-inset-right, 0px)); }

/* En-tête */
body::before { content: ""; position: fixed; inset: 0 0 auto; height: env(safe-area-inset-top, 0px); z-index: 60; background: var(--fond-2); }
.entete { position: sticky; top: env(safe-area-inset-top, 0px); z-index: 50; background: var(--verre); backdrop-filter: saturate(180%) blur(18px); -webkit-backdrop-filter: saturate(180%) blur(18px); border-bottom: 1px solid var(--trait); }
.entete .conteneur { display: flex; align-items: center; gap: 20px; min-height: 64px; flex-wrap: wrap; }
.marque { display: flex; align-items: center; gap: 10px; font: 700 21px var(--titre); color: var(--texte); letter-spacing: -.02em; }
.marque:hover { text-decoration: none; }
.marque { color: var(--encre); }
.logo-complet { height: 40px; width: auto; display: block; }
.nav { display: flex; gap: 2px; margin-left: auto; font-size: 15.5px; flex-wrap: wrap; }
.nav a { color: var(--texte-2); padding: 8px 12px; border-radius: 10px; }
.nav a:hover { background: var(--fond-3); color: var(--texte); text-decoration: none; }
.actions { display: flex; gap: 8px; align-items: center; }
@media (max-width: 980px) { .nav { display: none; } .actions { margin-left: auto; } .actions .bouton-clair { display: none; } }

.bouton { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 0 20px; border-radius: 12px; font: 600 15.5px var(--corps); border: 1px solid transparent; cursor: pointer; transition: transform .15s, background .15s; }
.bouton:hover { text-decoration: none; transform: translateY(-1px); }
.bouton-plein { background: var(--bleu); color: #fff; }
.bouton-plein:hover { background: var(--bleu-fonce); }
:root[data-theme="dark"] .bouton-plein { color: #0B0F14; }
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .bouton-plein { color: #0B0F14; } }
.bouton-clair { background: var(--fond-2); color: var(--texte); border-color: var(--trait); }

/* Héros */
.heros { padding-block: 72px 32px; position: relative; overflow: hidden; }
.heros .conteneur { display: grid; gap: 48px; }
.heros-texte { max-width: 760px; display: grid; gap: 22px; }
.surtitre { display: inline-flex; align-items: center; gap: 10px; font: 600 13px var(--titre); text-transform: uppercase; letter-spacing: .08em; color: var(--bleu); }
.cmjn { display: inline-flex; gap: 4px; }
.cmjn i { width: 9px; height: 9px; border-radius: 50%; display: block; }
.cmjn i:nth-child(1) { background: var(--cyan); } .cmjn i:nth-child(2) { background: var(--magenta); } .cmjn i:nth-child(3) { background: var(--jaune); } .cmjn i:nth-child(4) { background: var(--texte); }
.heros h1 { font-size: clamp(38px, 6vw, 66px); font-weight: 700; }
.heros h1 em { font-style: normal; color: var(--bleu); }
.heros .chapo { font-size: clamp(18px, 2.2vw, 21px); color: var(--texte-2); max-width: 640px; }
.heros .boutons { display: flex; flex-wrap: wrap; gap: 12px; }
.preuves { display: flex; flex-wrap: wrap; gap: 8px 22px; color: var(--texte-3); font-size: 15px; }
.preuves span::before { content: "✓"; color: var(--ok); font-weight: 700; margin-right: 6px; }

/* Fenêtre d'application (capture remplaçable) */
.fenetre { background: var(--fond-2); border: 1px solid var(--trait); border-radius: 16px; box-shadow: var(--ombre); overflow: hidden; position: relative; max-width: 100%; }
.fenetre-barre { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--trait); background: var(--fond-3); font-size: 13px; color: var(--texte-3); }
.fenetre-barre i { width: 11px; height: 11px; border-radius: 50%; background: var(--trait); display: block; }
.fenetre-barre span { margin-left: 10px; background: var(--fond-2); border-radius: 8px; padding: 2px 12px; flex: 0 1 320px; min-width: 0; overflow: hidden; white-space: nowrap; text-overflow: ellipsis; }
.capture-etiquette { display: none;  position: absolute; top: 52px; right: 12px; z-index: 2; font: 600 12px var(--corps); color: var(--texte-2); background: var(--fond-2); border: 1px dashed var(--texte-3); border-radius: 999px; padding: 3px 10px; }
.app { display: grid; grid-template-columns: 210px 1fr; min-height: 420px; font-size: 13.5px; }
.app-menu { border-right: 1px solid var(--trait); padding: 14px 10px; display: grid; align-content: start; gap: 2px; }
.app-menu b { font: 600 10.5px var(--titre); text-transform: uppercase; letter-spacing: .07em; color: var(--texte-3); padding: 10px 10px 4px; }
.app-menu span { padding: 7px 10px; border-radius: 8px; color: var(--texte-2); display: flex; align-items: center; gap: 9px; }
.app-menu span::before { content: ""; width: 7px; height: 7px; border-radius: 2px; background: var(--trait); }
.app-menu span.actif { background: var(--bleu-pale); color: var(--bleu-fonce); font-weight: 600; }
.app-menu span.actif::before { background: var(--bleu); }
.app-corps { padding: 18px 20px; display: grid; gap: 16px; align-content: start; min-width: 0; }
.app-titre { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.app-titre h4 { font-size: 19px; }
.app-titre em { font-style: normal; background: var(--bleu); color: #fff; border-radius: 8px; padding: 6px 12px; font-weight: 600; font-size: 13px; }
.tuiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; }
.tuile { border: 1px solid var(--trait); border-radius: 12px; padding: 10px 12px; display: grid; gap: 2px; }
.tuile small { color: var(--texte-3); font-size: 12px; }
.tuile strong { font: 600 19px var(--titre); font-variant-numeric: tabular-nums; }
.tableau { overflow-x: auto; border: 1px solid var(--trait); border-radius: 12px; }
.tableau table { width: 100%; border-collapse: collapse; min-width: 520px; }
.tableau th { text-align: left; font-weight: 500; color: var(--texte-3); font-size: 12px; padding: 9px 12px; background: var(--fond-3); }
.tableau td { padding: 9px 12px; border-top: 1px solid var(--trait); white-space: nowrap; }
.tableau td.num { text-align: right; font-variant-numeric: tabular-nums; }
.statut { display: inline-flex; align-items: center; gap: 6px; padding: 2px 9px; border-radius: 999px; font-size: 12px; font-weight: 600; }
.statut::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.s-ok { color: var(--ok); background: var(--ok-fond); } .s-att { color: var(--attente); background: var(--attente-fond); } .s-info { color: var(--info); background: var(--info-fond); } .s-vio { color: var(--violet); background: var(--violet-fond); }
@media (max-width: 760px) { .app { grid-template-columns: 1fr; } .app-menu { display: none; } .tuiles { grid-template-columns: repeat(2, 1fr); } }

/* Bandes */
.bande { padding-block: 88px; }
.bande-alt { background: var(--fond-2); border-block: 1px solid var(--trait); }
.entete-section { display: grid; gap: 14px; max-width: 720px; margin-bottom: 44px; }
.entete-section h2 { font-size: clamp(30px, 4vw, 44px); }
.entete-section p { color: var(--texte-2); font-size: 18.5px; }

/* Bandeau des métiers */
.metiers { padding-block: 28px; border-block: 1px solid var(--trait); background: var(--fond-2); }
.metiers .conteneur { display: flex; flex-wrap: wrap; gap: 10px 28px; align-items: center; justify-content: center; color: var(--texte-2); font: 500 15.5px var(--titre); }
.metiers strong { color: var(--texte); }

/* Domaines fonctionnels */
.domaines { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; }
.domaine { background: var(--fond-2); border: 1px solid var(--trait); border-radius: 18px; padding: 26px; display: grid; gap: 12px; align-content: start; }
.bande-alt .domaine { background: var(--fond); }
.domaine-icone { width: 44px; height: 44px; border-radius: 12px; background: var(--bleu-pale); color: var(--bleu); display: grid; place-items: center; }
.domaine h3 { font-size: 21px; }
.domaine p { color: var(--texte-2); font-size: 16px; }
.domaine ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 6px; font-size: 15.5px; }
.domaine li { padding-left: 20px; position: relative; }
.domaine li::before { content: ""; position: absolute; left: 2px; top: .62em; width: 8px; height: 8px; border-radius: 2px; background: var(--bleu); opacity: .55; }
@media (max-width: 980px) { .domaines { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 640px) { .domaines { grid-template-columns: 1fr; } }

/* Zoom imprimerie */
.duo { display: grid; grid-template-columns: 1fr 1.1fr; gap: 56px; align-items: center; }
.duo.inverse > :first-child { order: 2; }
.duo-texte { display: grid; gap: 18px; min-width: 0; }
.duo-texte h2 { font-size: clamp(30px, 4vw, 42px); }
.duo-texte > p { color: var(--texte-2); font-size: 18px; }
.etapes { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; counter-reset: e; }
.etapes li { display: grid; grid-template-columns: 34px 1fr; gap: 12px; align-items: start; counter-increment: e; }
.etapes li::before { content: counter(e); width: 30px; height: 30px; border-radius: 50%; display: grid; place-items: center; background: var(--bleu-pale); color: var(--bleu-fonce); font: 700 14px var(--titre); }
.etapes strong { display: block; font-family: var(--titre); font-weight: 600; }
.etapes span { color: var(--texte-2); font-size: 15.5px; }
@media (max-width: 900px) { .duo { grid-template-columns: 1fr; gap: 36px; } .duo.inverse > :first-child { order: 0; } }

/* Calculateur (capture) */
.calc { padding: 18px; display: grid; gap: 14px; font-size: 14px; }
.calc-ligne { display: grid; grid-template-columns: 1fr auto; gap: 10px; padding: 9px 12px; border: 1px solid var(--trait); border-radius: 10px; }
.calc-ligne small { color: var(--texte-3); display: block; font-size: 12px; }
.calc-ligne b { font-variant-numeric: tabular-nums; align-self: center; }
.calc-total { display: flex; justify-content: space-between; align-items: baseline; padding: 14px; border-radius: 12px; background: var(--bleu-pale); color: var(--bleu-fonce); }
.calc-total strong { font: 700 24px var(--titre); font-variant-numeric: tabular-nums; }
.pastilles { display: flex; flex-wrap: wrap; gap: 6px; }
.pastilles span { font-size: 12px; font-weight: 600; padding: 3px 10px; border-radius: 999px; background: var(--fond-3); color: var(--texte-2); }

/* E-mailing */
.emailing { background: #0E2233; color: #E8F1F8; }
.emailing .entete-section p, .emailing .duo-texte > p { color: #B9CCDC; }
.emailing .surtitre { color: #8CC3EA; }
.emailing .fenetre { color: var(--texte); }
.emailing .etapes li::before { background: #1B3A55; color: #CFE4F4; }
.emailing .etapes span { color: #B9CCDC; }
.chiffres-mail { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.chiffres-mail div { border: 1px solid #23435E; border-radius: 14px; padding: 14px; display: grid; gap: 2px; }
.chiffres-mail strong { font: 700 22px var(--titre); color: #fff; }
.chiffres-mail span { color: #B9CCDC; font-size: 14px; }
.envoi { padding: 18px; display: grid; gap: 12px; font-size: 14px; }
.envoi-champ { display: grid; gap: 4px; }
.envoi-champ label { font-size: 12px; color: var(--texte-3); font-weight: 600; }
.envoi-champ div { border: 1px solid var(--trait); border-radius: 10px; padding: 8px 12px; background: var(--fond); }
.filtres { display: flex; flex-wrap: wrap; gap: 6px; }
.filtres span { border: 1px solid var(--trait); border-radius: 8px; padding: 4px 10px; font-size: 13px; background: var(--fond-2); }
.envoi-compte { display: flex; justify-content: space-between; align-items: center; gap: 10px; flex-wrap: wrap; padding: 12px 14px; border-radius: 12px; background: var(--ok-fond); color: var(--ok); font-weight: 600; }
.envoi-compte em { font-style: normal; background: var(--bleu); color: #fff; padding: 6px 12px; border-radius: 8px; }

/* Intégrations */
.integrations { display: flex; flex-wrap: wrap; gap: 10px; }
.integrations span { background: var(--fond-2); border: 1px solid var(--trait); border-radius: 12px; padding: 10px 16px; font: 500 15px var(--titre); }
.bande-alt .integrations span { background: var(--fond); }
.integrations-groupes { display: grid; grid-template-columns: repeat(2, 1fr); gap: 28px 40px; }
.integrations-groupes h3 { font-size: 15px; text-transform: uppercase; letter-spacing: .07em; color: var(--texte-3); margin-bottom: 12px; font-weight: 600; }
@media (max-width: 760px) { .integrations-groupes { grid-template-columns: 1fr; } }

/* Tarifs */
.bascule { display: inline-flex; background: var(--fond-3); border-radius: 12px; padding: 4px; gap: 4px; margin-bottom: 28px; }
.bascule button { all: unset; cursor: pointer; padding: 8px 16px; border-radius: 9px; font-weight: 600; font-size: 15px; color: var(--texte-2); min-height: 28px; }
.bascule button[aria-pressed="true"] { background: var(--fond-2); color: var(--texte); box-shadow: 0 1px 2px rgba(16,24,40,.1); }
.bascule button:focus-visible { outline: 3px solid var(--bleu); }
.offres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 18px; align-items: stretch; }
.offre { background: var(--fond-2); border: 1px solid var(--trait); border-radius: 20px; padding: 28px; display: grid; gap: 18px; align-content: start; position: relative; }
.offre.vedette { border: 2px solid var(--bleu); }
.offre .ruban { position: absolute; top: -13px; left: 28px; background: var(--bleu); color: #fff; font: 600 12.5px var(--titre); padding: 4px 12px; border-radius: 999px; }
.offre h3 { font-size: 22px; }
.offre .pour { color: var(--texte-2); font-size: 15.5px; min-height: 3.2em; }
.prix { display: flex; align-items: baseline; gap: 6px; flex-wrap: wrap; }
.prix strong { font: 700 44px var(--titre); letter-spacing: -.03em; font-variant-numeric: tabular-nums; }
.prix span { color: var(--texte-3); font-size: 15px; }
.prix-a-valider { font-size: 12.5px; font-weight: 600; color: var(--attente); background: var(--attente-fond); border-radius: 999px; padding: 2px 10px; justify-self: start; }
.offre ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 9px; font-size: 15.5px; }
.offre li { display: grid; grid-template-columns: 20px 1fr; gap: 8px; }
.offre li::before { content: "✓"; color: var(--ok); font-weight: 700; }
.offre .bouton { width: 100%; }
@media (max-width: 960px) { .offres { grid-template-columns: 1fr; max-width: 520px; } }
.options { margin-top: 16px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.option { border: 1px dashed var(--texte-3); border-radius: 14px; padding: 16px 18px; display: grid; gap: 4px; }
.option strong { font-family: var(--titre); }
.titre-options { font-size: 20px; margin: 40px 0 0; }
.option span { color: var(--texte-2); font-size: 15px; }
@media (max-width: 760px) { .options { grid-template-columns: 1fr; } }

/* Conditions, FAQ */
.conditions { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin-bottom: 48px; }
.condition { background: var(--fond); border-radius: 14px; padding: 18px; display: grid; gap: 6px; }
.condition strong { font: 600 17px var(--titre); }
.condition span { color: var(--texte-2); font-size: 15px; }
.faq { display: grid; gap: 10px; max-width: 820px; }
.faq details { background: var(--fond); border: 1px solid var(--trait); border-radius: 14px; padding: 4px 20px; }
.faq summary { cursor: pointer; font: 600 17px var(--titre); padding-block: 14px; min-height: 44px; }
.faq details p { color: var(--texte-2); padding-bottom: 16px; }

/* Appel final, pied */
.appel { text-align: center; display: grid; gap: 18px; justify-items: center; }
.appel h2 { font-size: clamp(30px, 4.5vw, 48px); max-width: 760px; }
.appel p { color: var(--texte-2); max-width: 620px; font-size: 18px; }
.appel .boutons { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.pied { border-top: 1px solid var(--trait); padding-block: 48px 40px; font-size: 15px; color: var(--texte-2); background: var(--fond-2); }
.pied .colonnes { display: grid; grid-template-columns: 1.4fr repeat(3, 1fr); gap: 32px; }
.pied h4 { font-size: 14px; text-transform: uppercase; letter-spacing: .07em; color: var(--texte-3); margin-bottom: 10px; }
.pied ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.pied a { color: var(--texte-2); }
.pied .legal { margin-top: 36px; padding-top: 18px; border-top: 1px solid var(--trait); font-size: 13.5px; color: var(--texte-3); }
@media (max-width: 760px) { .pied .colonnes { grid-template-columns: 1fr 1fr; } }

.cache { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .bouton { transition: none; } }

/* Lien d'évitement (accessibilité) */
.lien-evitement { position: absolute; left: -9999px; top: 0; z-index: 100; padding: 10px 16px; background: var(--bleu, #1B679F); color: #fff; border-radius: 0 0 8px 0; }
.lien-evitement:focus { left: 0; }

/* Pages secondaires : contact, mentions légales, 404 */
.page-entete { padding: 72px 0 40px; background: linear-gradient(180deg, var(--bleu-pale), var(--fond)); }
.page-entete h1 { font-size: clamp(32px, 5vw, 50px); margin-top: 8px; }
.page-entete .chapo { max-width: 720px; margin-top: 16px; font-size: 19px; color: var(--texte-2); }
.page-404 { padding: 120px 0; text-align: center; }
.page-404 .chapo { margin-inline: auto; }
.actions-404 { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; margin-top: 28px; }
.texte { max-width: 820px; }
.texte h2 { font-size: 22px; margin: 32px 0 10px; }
.texte h2:first-child { margin-top: 0; }
.texte p { margin: 0 0 12px; color: var(--texte-2); }
.texte strong { color: var(--texte); }

.contact-grille { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: start; }
@media (max-width: 900px) { .contact-grille { grid-template-columns: 1fr; } }
.contact-cote { display: grid; gap: 16px; }
.contact-cote .tuile { padding: 20px 22px; border: 1px solid var(--trait); border-radius: 16px; background: var(--fond-2); display: grid; gap: 8px; }
.contact-cote h2 { font-size: 17px; }
.contact-cote p { color: var(--texte-2); font-size: 15.5px; }

.formulaire { display: grid; gap: 20px; }
.formulaire fieldset { margin: 0; padding: 22px 24px; border: 1px solid var(--trait); border-radius: 16px; background: var(--fond-2); display: grid; gap: 16px; min-width: 0; }
.formulaire legend { font-family: var(--titre); font-weight: 700; padding: 0 8px; }
.champs.deux { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
@media (max-width: 640px) { .champs.deux { grid-template-columns: 1fr; } .formulaire fieldset { padding: 18px 16px; } }
.formulaire label { display: grid; gap: 6px; font-size: 14px; font-weight: 600; color: var(--texte-2); }
.formulaire input:not([type="checkbox"]), .formulaire select, .formulaire textarea { font: inherit; font-weight: 400; font-size: 16px; padding: 10px 14px; border-radius: 10px; border: 1px solid var(--trait); background: var(--fond); color: var(--texte); width: 100%; }
.formulaire textarea { resize: vertical; min-height: 120px; }
.formulaire label.case { display: flex; gap: 10px; align-items: flex-start; font-weight: 400; }
.formulaire label.case input { margin-top: 4px; width: 18px; height: 18px; flex: none; accent-color: var(--bleu); }
.requis { color: var(--magenta); }
.cache-pot { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.mentions-form { font-size: 14px; color: var(--texte-3); }
.actions-form { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; }
.actions-form .message { font-weight: 600; }
.actions-form .message.ok { color: var(--ok); }
.actions-form .message.erreur { color: var(--magenta); }
.retour-demande { display: none; margin: 0 0 20px; padding: 16px 20px; border-radius: 14px; font-weight: 600; scroll-margin-top: 90px; }
.retour-demande:target { display: block; }
.retour-demande.ok { background: var(--ok-fond); color: var(--ok); }
.retour-demande.erreur { background: var(--attente-fond); color: var(--attente); }
.page-entete + .bande { padding-top: 24px; }
