/*!
 * Psaumes 115:1 (Louis Segond 1910) : Non pas à nous, Éternel, non pas à nous, Mais à ton nom donne gloire, À cause de ta bonté, à cause de ta fidélité !
 * Colossiens 3:17 (Louis Segond 1910) : Et quoi que vous fassiez, en parole ou en œuvre, faites tout au nom du Seigneur Jésus, en rendant par lui des actions de grâces à Dieu le Père.
 * Colossiens 3:23 (Louis Segond 1910) : Tout ce que vous faites, faites-le de bon cœur, comme pour le Seigneur et non pour des hommes,
 * Apocalypse 4:11 (Louis Segond 1910) : Tu es digne, notre Seigneur et notre Dieu, de recevoir la gloire et l’honneur et la puissance ; car tu as créé toutes choses, et c’est par ta volonté qu’elles existent et qu’elles ont été créées.
 * Psaumes 118:21-23 (Louis Segond 1910) : Je te loue, parce que tu m’as exaucé, Parce que tu m’as sauvé. La pierre qu’ont rejetée ceux qui bâtissaient Est devenue la principale de l’angle. C’est de l’Éternel que cela est venu : C’est un prodige à nos yeux.
 */

/* ==========================================================================
   Novam Consulting : feuille de style principale
   Charte graphique v2, maquette de l'accueil v9.
   Échelle : tout est multiple de --u (environ 15 px à 1440 px de large).
   ========================================================================== */

/* Polices auto-hébergées, sous-ensemble latin, licence OFL (public/fonts) */
@font-face { font-family: 'Unbounded'; font-weight: 300; font-style: normal; font-display: swap; src: url('/fonts/unbounded-latin-300-normal.woff2') format('woff2'); }
@font-face { font-family: 'Unbounded'; font-weight: 400; font-style: normal; font-display: swap; src: url('/fonts/unbounded-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Unbounded'; font-weight: 500; font-style: normal; font-display: swap; src: url('/fonts/unbounded-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'Unbounded'; font-weight: 600; font-style: normal; font-display: swap; src: url('/fonts/unbounded-latin-600-normal.woff2') format('woff2'); }
@font-face { font-family: 'JetBrains Mono'; font-weight: 200; font-style: normal; font-display: swap; src: url('/fonts/jetbrains-mono-latin-200-normal.woff2') format('woff2'); }
@font-face { font-family: 'JetBrains Mono'; font-weight: 300; font-style: normal; font-display: swap; src: url('/fonts/jetbrains-mono-latin-300-normal.woff2') format('woff2'); }
@font-face { font-family: 'JetBrains Mono'; font-weight: 400; font-style: normal; font-display: swap; src: url('/fonts/jetbrains-mono-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'JetBrains Mono'; font-weight: 500; font-style: normal; font-display: swap; src: url('/fonts/jetbrains-mono-latin-500-normal.woff2') format('woff2'); }
@font-face { font-family: 'JetBrains Mono'; font-weight: 300; font-style: italic; font-display: swap; src: url('/fonts/jetbrains-mono-latin-300-italic.woff2') format('woff2'); }
@font-face { font-family: 'Doto'; font-weight: 400; font-style: normal; font-display: swap; src: url('/fonts/doto-latin-400-normal.woff2') format('woff2'); }
@font-face { font-family: 'Doto'; font-weight: 700; font-style: normal; font-display: swap; src: url('/fonts/doto-latin-700-normal.woff2') format('woff2'); }

/* --------------------------------------------------------------------------
   Charte
   -------------------------------------------------------------------------- */
:root {
  --u: max(13px, 1.0375vw);
  --px: 7vw;

  --encre: #17171a;
  --fond: #fffdfd;
  --bleu: #2e5a8f;          /* accent unique : liens, filets, boutons, pierre animée */
  --bleu-f: #29507f;        /* bandeau chiffres, pied de page */
  --nuit: #172940;
  --noir: #08080c;
  --gris: #6a6a72;
  --gris-libelle: #616162;
  --clair: #f2f3f6;         /* FAQ, formulaire */
  --bleu-clair: #7d98b9;    /* texte et filets sur fond sombre */

  /* Filet pointillé dessiné : plus net et plus présent que le « dashed » du navigateur */
  --tirets: repeating-linear-gradient(90deg, var(--bleu) 0 4px, transparent 4px 7px);
  --tirets-v: repeating-linear-gradient(180deg, var(--bleu) 0 4px, transparent 4px 7px);

  --display: 'Unbounded', Arial, sans-serif;
  --mono: 'JetBrains Mono', Menlo, monospace;
  --dot: 'Doto', monospace;
}

/* --------------------------------------------------------------------------
   Base
   -------------------------------------------------------------------------- */
*,
*::before,
*::after { box-sizing: border-box; margin: 0; }

html { background: var(--fond); -webkit-text-size-adjust: 100%; text-size-adjust: 100%; }

body {
  position: relative;
  overflow-x: hidden;
  color: var(--encre);
  font: 400 var(--u)/1.2 var(--mono);
  -webkit-font-smoothing: antialiased;
}

a { color: inherit; }
/* Les ancres (#methode, #faq, #contact) ne passent pas sous l'en-tête fixe */
[id] { scroll-margin-top: 6rem; }
img, svg, canvas { display: block; max-width: 100%; }
h1, h2, h3, h4 { font-weight: inherit; }

:focus-visible { outline: 2px solid var(--bleu); outline-offset: 3px; }

.sr {
  position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden;
  clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0;
}

.lien-evitement {
  position: fixed; left: var(--px); top: -4rem; z-index: 40;
  padding: .6em 1em; background: var(--bleu); color: #fff;
  text-decoration: none; text-transform: uppercase; letter-spacing: .04em;
}
.lien-evitement:focus { top: .75rem; }

.w { position: relative; z-index: 1; padding: 0 var(--px); }
section, header, footer, .hero { position: relative; }

/* --------------------------------------------------------------------------
   Halo : tache bleue floue avec trame de points, un seul par écran
   -------------------------------------------------------------------------- */
.halo {
  position: fixed; left: 0; top: 0; z-index: 0;
  width: 58vw; height: 44vw;
  border-radius: 50%;
  pointer-events: none;
  background: radial-gradient(closest-side, rgba(46, 90, 143, .17), transparent);
  transform: translate(21vw, 20vh);
  will-change: transform;
}
.halo::after {
  content: ''; position: absolute; inset: 0; opacity: .45;
  background-image: radial-gradient(var(--bleu) 1px, transparent 1.5px);
  background-size: 13px 13px;
  -webkit-mask-image: radial-gradient(closest-side, #000 10%, transparent 80%);
  mask-image: radial-gradient(closest-side, #000 10%, transparent 80%);
}

/* --------------------------------------------------------------------------
   En-tête fixe
   -------------------------------------------------------------------------- */
.entete {
  position: fixed; inset: 0 0 auto 0; z-index: 20;
  background: rgba(255, 253, 253, .9);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}
.entete .w {
  display: grid;
  grid-template-columns: 43vw 15.7vw 1fr auto;
  align-items: start;
  padding-top: 1.1vw; padding-bottom: 1.1vw;
  font-size: var(--u); line-height: 1.3;
  text-transform: uppercase;
}
.entete nav { display: flex; flex-direction: column; }
.entete nav a { text-decoration: none; }
.entete nav a:hover,
.entete nav a[aria-current='page'] { color: var(--bleu); }
.entete__nav { display: contents; }
.menu-bouton { display: none; }

/* Logo N pierre : le SVG contient sa zone de protection (60 % de la hauteur du N).
   Les marges négatives alignent le dessin sur la grille sans réduire cette zone. */
.logo { display: block; width: calc(var(--u) * 10.9); text-decoration: none; }
.logo img { width: 100%; height: auto; }
.entete .logo { margin: calc(var(--u) * -.96) 0 calc(var(--u) * -.96) calc(var(--u) * -.96); }

/* --------------------------------------------------------------------------
   Boutons et liens
   -------------------------------------------------------------------------- */
.btn {
  display: inline-flex; align-items: center; gap: .9em;
  padding: .62em 1.55em;
  border: 1px solid var(--bleu);
  background: var(--bleu); color: #fff;
  font: 400 var(--u)/1.3 var(--mono);
  letter-spacing: .04em; text-transform: uppercase; text-decoration: none;
  cursor: pointer;
  transition: background-color .2s, color .2s;
}
.btn:hover { background: var(--bleu-f); border-color: var(--bleu-f); }
.btn.o { background: transparent; color: var(--bleu); }
.btn.o:hover { background: var(--bleu); color: #fff; }

.lien {
  color: var(--bleu); text-decoration: none; text-transform: uppercase;
  letter-spacing: .04em; border-bottom: 1px solid var(--bleu); padding-bottom: .2em;
}

.row { display: flex; flex-wrap: wrap; gap: 1vw; }

/* --------------------------------------------------------------------------
   Typographie commune
   -------------------------------------------------------------------------- */
.h2 { font: 400 calc(var(--u) * 4)/1 var(--display); text-wrap: balance; }
.h3l { font: 300 calc(var(--u) * 2)/1 var(--display); }
.h3m { font: 500 calc(var(--u) * 2)/.95 var(--display); }
.txt { font-weight: 400; line-height: 1.2; }
.txt p + p { margin-top: 1.2em; }

/* Filet : 1 px pointillé bleu, point plein au centre (.c) ou au départ (.g) */
.trait { position: relative; height: 1px; }
.trait::before {
  content: ''; position: absolute; inset: 0;
  background: var(--tirets);
  transform-origin: left center;
  transition: transform 1.4s cubic-bezier(.2, .7, .2, 1);
}
.trait.c::before { transform-origin: center; }
.trait.c::after,
.trait.g::after {
  content: ''; position: absolute; top: -3px;
  width: 7px; height: 7px; border-radius: 50%; background: var(--bleu);
}
.trait.c::after { left: calc(50% - 3.5px); }
.trait.g::after { left: 0; }
/* Éclat : le filet se trace depuis son point, qui s'allume une fois */
.js .trait.trace::before { transform: scaleX(0); }
.js .trait.trace.in::before { transform: none; }
.js .trait.trace.in::after { animation: eclat 1.4s ease-out; }
@keyframes eclat {
  0% { transform: scale(1); background: var(--bleu); }
  25% { transform: scale(2.2); background: var(--bleu-clair); }
  100% { transform: scale(1); background: var(--bleu); }
}
/* Séparateurs pointillés : mêmes tirets que les filets */

/* Encadré à barre bleue, avec mot qui s'écrit à la machine */
.tick {
  border-left: 3px solid var(--bleu);
  padding: .2vw 0 .2vw .8vw;
  line-height: 1.05; white-space: nowrap;
}
.tick .tw { color: var(--bleu); font: 500 1em/1 var(--display); }
.tick .cur {
  display: none; width: .55ch; height: 1.05em; margin-left: 1px;
  background: var(--bleu); vertical-align: -.15em;
  animation: clignote 1s steps(1) infinite;
}
.js .tick .cur { display: inline-block; }
@keyframes clignote { 50% { opacity: 0; } }

.doto { font-family: var(--dot); font-weight: 400; color: var(--bleu); }

/* --------------------------------------------------------------------------
   Hero
   -------------------------------------------------------------------------- */
.hero {
  min-height: 100vh;
  display: flex; flex-direction: column; justify-content: flex-end;
  padding: 7rem 0 4.2vw;
}
.hero__inner { position: relative; }
.hero h1 { max-width: 46vw; font: 500 calc(var(--u) * 5)/.9 var(--display); }
/* Ligne « Novam Consulting » dans le H1 (référencement), en libellé mono au-dessus de la devise */
.hero__marque {
  display: block; margin-bottom: 1.4vw;
  font: 400 calc(var(--u) * .85)/1.3 var(--mono); letter-spacing: .04em; text-transform: uppercase;
  color: var(--gris);
}
.hero__devise { display: block; }
.hero .chapo { max-width: 44vw; margin: 1.6vw 0 1.3vw; font-weight: 300; line-height: 1; }
.hero .tick { position: absolute; left: 58vw; bottom: .4vw; }

/* --------------------------------------------------------------------------
   Ce qui freine le plus souvent
   -------------------------------------------------------------------------- */
.fr { padding: 6vw 0 8vw; }
.reveal {
  max-width: 80vw; margin-top: 3.4vw;
  font: 200 calc(var(--u) * 4)/1 var(--mono);
  letter-spacing: -.06em;
}
.reveal span { color: #cdcdd6; transition: color .3s; }
.reveal span.on { color: var(--encre); }

.frg { display: grid; grid-template-columns: 43vw 1fr; margin-top: 9vw; }
.frg .gauche {
  position: sticky; top: 7rem; align-self: start;
  height: calc(100vh - 9rem);
  display: flex; flex-direction: column; justify-content: space-between;
}
.rs { list-style: none; padding: 0; border-top: 1px solid var(--bleu); border-image: var(--tirets) 1; }
.r {
  display: grid; grid-template-columns: 9vw 1fr; gap: 4.6vw;
  padding: 1.5vw 0;
  border-bottom: 1px solid var(--bleu); border-image: var(--tirets) 1;
}
.ico {
  display: grid; place-items: center;
  width: 9vw; height: 9vw;
  border: 1px dashed var(--bleu);
  transition: background .4s;
}
.ico svg {
  width: 45%; fill: none;
  stroke: var(--bleu); stroke-width: 1; stroke-dasharray: 2 2.5;
  transition: stroke .3s;
}
.r.on .ico { background: var(--bleu); border-style: solid; }
.r.on .ico svg { stroke: #fff; }
.r .h3l { margin: .2vw 0 1.4vw; }

/* --------------------------------------------------------------------------
   Plusieurs experts. Une seule société.
   Dégradé noir, bleu, blanc piloté par le défilement (une seule fois par page).
   -------------------------------------------------------------------------- */
.gr { padding: 0 0 7vw; overflow: clip; }
.grbg {
  position: sticky; top: 0; z-index: -1;
  height: 100vh; margin-bottom: -100vh;
  pointer-events: none;
  background: linear-gradient(180deg, #08080c 0%, #08080c 11%, #172940 24%, #2e5a8f 36%, #7d98b9 47%, #b8c6d8 58%, #e2e6ee 72%, #fffdfd 88%);
  background-size: 100% 300%;
  background-position: 0 0;
}
.gr .ctr { padding-top: 34vh; text-align: center; color: #fff; }
.gr .h2 { max-width: 70vw; margin: 0 auto; }
.gr .ctr p { max-width: 40vw; margin: 4.2vw auto 0; font-weight: 300; line-height: 1.2; }

/* Version statique (sans JavaScript ou animations réduites) : le dégradé est posé
   sur toute la section, sans mouvement. */
html:not(.js) .grbg { display: none; }
html:not(.js) .gr {
  background: linear-gradient(180deg, #08080c 0%, #172940 14%, #2e5a8f 30%, #7d98b9 42%, #b8c6d8 50%, #e2e6ee 58%, #fffdfd 66%);
}

.cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5vw; margin-top: 13vw; }
.cols .doto { margin-bottom: .6vw; font-size: calc(var(--u) * 2.4); line-height: 1; }
.cols .trait { margin-bottom: 1.3vw; }
.cols .h3m { min-height: 4.4vw; margin-bottom: 3.4vw; }
.cols .h3m a { text-decoration: none; }
.cols .h3m a:hover { color: var(--bleu); }
.cols .lead { margin-bottom: 1.2em; }
.cols .txt { max-width: 30vw; }

.appel { margin-top: 7vw; text-align: center; }
.appel .trait { margin-bottom: 4.4vw; }
.appel p { max-width: 58vw; margin: 0 auto 2.4vw; font-size: calc(var(--u) * 1.6); line-height: 1.2; }

/* --------------------------------------------------------------------------
   Vous vous reconnaissez ? (accordéon)
   -------------------------------------------------------------------------- */
.ac { padding: 9vw 0; }
.acg { display: grid; grid-template-columns: 43vw 1fr; }
.acg .h2 { position: sticky; top: 8rem; align-self: start; }
.it { border-bottom: 1px solid var(--bleu); border-image: var(--tirets) 1; }
.it:first-child { border-top: 1px solid var(--bleu); }
.it > h3 { font: inherit; }
.it button {
  all: unset; box-sizing: border-box; cursor: pointer;
  display: grid; grid-template-columns: 7.4vw 1fr 3vw; align-items: center;
  width: 100%; padding: 2.2vw 0;
}
.it button:focus-visible,
.q button:focus-visible { outline: 2px solid var(--bleu); outline-offset: 2px; }
.num { display: flex; align-items: center; gap: .6vw; }
.num .doto { font-size: calc(var(--u) * 2.6); line-height: 1; }
.num i { width: .5vw; height: 4vw; border: 1px solid var(--bleu); border-left: 0; opacity: .6; }
.it .h3l { padding-right: 1vw; }
.pm { font: 200 calc(var(--u) * 2.6)/1 var(--mono); color: var(--bleu); text-align: right; }
.pm::before { content: '+'; }
.it.open .pm::before { content: '\2212'; }

.bd { display: grid; grid-template-rows: 1fr; transition: grid-template-rows .5s; }
.js .bd { grid-template-rows: 0fr; }
.js .it.open .bd,
.js .q.open .bd { grid-template-rows: 1fr; }
.bd > div { overflow: hidden; padding-left: 20vw; }
.bd p { max-width: 30vw; }
.bd .alt { margin-bottom: 1.2em; color: var(--gris); }
.bd .btn { margin: 2.2vw 0 2.4vw; }

/* --------------------------------------------------------------------------
   La méthode Novam
   -------------------------------------------------------------------------- */
.me { padding: 8vw 0 4vw; }
.proc { display: grid; grid-template-columns: 43vw 1fr; }
.stick { position: sticky; top: 7rem; align-self: start; }
.etiq { margin-bottom: 1vw; color: var(--gris); }
.pierre { display: block; width: 30vw; aspect-ratio: 1; margin-top: 2vw; }
.cap { color: var(--gris); text-transform: uppercase; }
.tl { position: relative; padding-left: 4.6vw; }
.etapes { list-style: none; padding: 0; }
.tl::before {
  content: ''; position: absolute; left: 5px; top: .6rem; bottom: 4vw;
  width: 1px; background: #cbd4e2;
}
.tl .fill { position: absolute; left: 5px; top: .6rem; width: 1px; height: 0; background: var(--bleu); }
.st { position: relative; padding: 0 0 12vw; transition: opacity .4s; }
.js .st { opacity: .35; }
.js .st.on { opacity: 1; }
.js .st.done { opacity: .75; }
.st::before {
  content: '+';
  position: absolute; left: calc(-4.6vw - 6px); top: -.1em;
  width: 24px; height: 24px; margin-left: -6px;
  border-radius: 50%; border: 1px solid #96acc6;
  background: var(--fond); color: #96acc6;
  font: 300 18px/22px var(--mono); text-align: center;
  transition: all .3s;
}
.st.on::before,
.st.done::before { background: var(--bleu); border-color: var(--bleu); color: #fff; }
.st:last-child { padding-bottom: 45vh; }
.st .k { color: var(--bleu); }
.st .h3m { margin: 2.8vw 0 2vw; }
.st .txt { max-width: 30vw; }
.urg {
  max-width: 30vw; margin: 0 0 0 4.6vw; padding-left: .8vw;
  border-left: 3px solid var(--bleu); color: var(--gris);
}

/* --------------------------------------------------------------------------
   Le terrain en chiffres
   -------------------------------------------------------------------------- */
.ch { padding: 6vw 0 8vw; }
.ban {
  position: relative; overflow: hidden;
  display: flex; align-items: center; justify-content: space-between;
  height: 26vw; padding: 0 2.4vw;
  background: var(--bleu-f); color: #fff;
}
.ban .titre { position: relative; z-index: 2; font: 700 calc(var(--u) * 5.5)/.9 var(--dot); }
.ban .grand { position: relative; z-index: 2; text-align: right; }
.ban .grand b { display: block; font: 500 calc(var(--u) * 9)/1 var(--display); }
.ban .grand span { font: 300 calc(var(--u) * 2.3)/1 var(--mono); text-transform: uppercase; letter-spacing: .06em; }
.ban .fantome {
  position: absolute; right: -3vw; bottom: -9vw; z-index: 1;
  font: 500 32vw/1 var(--display); color: rgba(255, 255, 255, .05);
}
.ban svg.hud { position: absolute; inset: 0; z-index: 1; width: 100%; height: 100%; }

.cards {
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 4vw;
  margin-top: 1.6vw; padding: 0 2.2vw; list-style: none;
}
.card {
  position: relative;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  height: 21vw; text-align: center;
}
/* Coins de repère : quatre angles seulement */
.card i,
.coins > i { position: absolute; width: 1.2vw; height: 1.2vw; border: 0 solid var(--bleu); opacity: .8; }
.card i:nth-child(1),
.coins > i:nth-child(1) { top: 0; left: 0; border-top-width: 1px; border-left-width: 1px; }
.card i:nth-child(2),
.coins > i:nth-child(2) { top: 0; right: 0; border-top-width: 1px; border-right-width: 1px; }
.card i:nth-child(3),
.coins > i:nth-child(3) { bottom: 0; left: 0; border-bottom-width: 1px; border-left-width: 1px; }
.card i:nth-child(4),
.coins > i:nth-child(4) { bottom: 0; right: 0; border-bottom-width: 1px; border-right-width: 1px; }
.card b {
  font: 500 calc(var(--u) * 4.6)/1 var(--display);
  color: var(--bleu); white-space: nowrap;
}
.card span {
  margin-top: 2.6vw;
  font: 300 calc(var(--u) * 1.7)/1 var(--mono);
  text-transform: uppercase; letter-spacing: .06em; color: #5a5a64;
}
.note {
  margin-top: 1.4vw; padding: 0 2.2vw;
  color: var(--gris); font-size: calc(var(--u) * .85); text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   Questions fréquentes
   -------------------------------------------------------------------------- */
.fq {
  padding: calc(var(--u) * 10) 0; overflow: clip;
  background: linear-gradient(224deg, rgba(46, 90, 143, .2) 0%, rgba(255, 255, 255, .2) 100%);
}
.fq .titre { margin-bottom: calc(var(--u) * 5); font: 400 calc(var(--u) * 4)/1 var(--display); text-align: center; }
.fqg { display: grid; grid-template-columns: 43vw 1fr; align-items: start; }
.fqg .gauche {
  position: relative;
  min-height: calc(var(--u) * 30);
  padding: var(--u) calc(var(--u) * 11) 0 calc(var(--u) * 2);
}
.boite {
  display: grid; place-items: center; flex: none;
  width: calc(var(--u) * 5); height: calc(var(--u) * 5);
  border: 1px dashed var(--bleu); background: transparent;
}
.boite svg { width: 65%; height: 65%; fill: none; stroke: var(--bleu); stroke-width: 1.2; }
.fqg .haut { position: relative; z-index: 1; display: flex; gap: calc(var(--u) * 2); align-items: flex-start; }
.fqg .haut h3 {
  max-width: calc(var(--u) * 24); padding-top: calc(var(--u) * .4);
  font: 300 calc(var(--u) * 2)/1 var(--display); color: var(--bleu);
}
.fqg .bloc { position: relative; z-index: 1; width: calc(var(--u) * 27); margin: calc(var(--u) * 1.4) 0 0 calc(var(--u) * 7); }
.fqg .bloc p { font: 300 calc(var(--u) * 1.2)/1.1 var(--mono); }
.fqg .bloc .btn { margin-top: calc(var(--u) * 3); }
/* Règles graduées fines, en fond, à très faible opacité */
.regle { position: absolute; top: var(--u); bottom: 0; width: calc(var(--u) * 4.2); pointer-events: none; }
.regle.g { left: calc(var(--u) * 2.2); }
.regle.d { right: calc(var(--u) * 2); }
.regle svg { width: 100%; height: 100%; stroke: var(--bleu); fill: none; opacity: .32; }
.qs { list-style: none; padding: 0; }
.q { border-bottom: 1px solid var(--bleu); border-image: var(--tirets) 1; }
.q > h3 { font: inherit; }
.q button {
  all: unset; box-sizing: border-box; cursor: pointer;
  display: grid; grid-template-columns: calc(var(--u) * 5) 1fr calc(var(--u) * 2.5);
  gap: calc(var(--u) * 2); align-items: center;
  width: 100%; padding: var(--u) 0;
}
.q .h3l { max-width: calc(var(--u) * 35.5); font: 300 calc(var(--u) * 2)/1 var(--display); }
.plus { position: relative; width: calc(var(--u) * 2.5); height: calc(var(--u) * 2.5); }
.plus i {
  position: absolute; left: 50%; top: 50%;
  width: calc(var(--u) * 1.47); height: 1px; background: var(--bleu);
  transform: translate(-50%, -50%); transition: transform .35s;
}
.plus i + i { transform: translate(-50%, -50%) rotate(90deg); }
.q.open .plus i + i { transform: translate(-50%, -50%) rotate(0deg); }
.q .bd > div { padding-left: calc(var(--u) * 7); }
.q .bd p { max-width: calc(var(--u) * 40); padding-top: calc(var(--u) * .8); font: 300 var(--u)/1.1 var(--mono); }
.q .bd .btn { margin: calc(var(--u) * 2) 0 calc(var(--u) * 1.2); }
.fqg .bas { margin-top: calc(var(--u) * 2); }

/* --------------------------------------------------------------------------
   Contact (bloc partagé avec la page /contact)
   -------------------------------------------------------------------------- */
.co { padding: 0 0 calc(var(--u) * 10); }
.co .trait.c { margin: 0; }
.cog { display: grid; grid-template-columns: 43vw 1fr; align-items: center; margin-top: calc(var(--u) * 7.5); }
.cog > div:first-child { max-width: calc(var(--u) * 35); padding: calc(var(--u) * 2) 0; }
.co .titre-contact { max-width: calc(var(--u) * 30); font: 500 calc(var(--u) * 2.2)/1 var(--display); color: var(--bleu); }
.co .lead { margin: calc(var(--u) * 4) 0 calc(var(--u) * 1.33); font: 500 calc(var(--u) * 1.2)/1.1 var(--mono); }
.co .txt p { max-width: calc(var(--u) * 31); font: 400 calc(var(--u) * .95)/1.1 var(--mono); }
.co .lien { display: inline-block; margin-top: calc(var(--u) * 1.2); padding-bottom: .2em; font-size: calc(var(--u) * .9); }
.ligne { margin-top: calc(var(--u) * 1.6); font: 500 calc(var(--u) * 1.2)/1.1 var(--mono); }
.ligne a { text-decoration: none; }
.pref { margin: calc(var(--u) * 2) 0 calc(var(--u) * 1.2); font: 500 calc(var(--u) * 1.2)/1.1 var(--mono); }
.co .row { gap: var(--u); }
.co .btn { height: calc(var(--u) * 2.2); padding: 0 calc(var(--u) * 1.5); font-size: calc(var(--u) * .9); line-height: 1; }
.co .btn.o { background: var(--fond); }
.co .btn.o:hover { background: var(--bleu); }

.form { padding: calc(var(--u) * 2); border: 1px dashed var(--bleu); background: var(--clair); }
.form .tete { margin-bottom: calc(var(--u) * 2.9); font: 500 calc(var(--u) * 1.2)/1.1 var(--mono); color: var(--bleu); }
.champs { display: grid; grid-template-columns: 1fr 1fr; gap: calc(var(--u) * 1.1) var(--u); }
.champs label {
  display: block; margin-bottom: calc(var(--u) * .33);
  color: var(--gris-libelle); font-size: calc(var(--u) * .8); line-height: 1.1;
}
.champs input,
.champs textarea {
  width: 100%; height: calc(var(--u) * 3); padding: 0 calc(var(--u) * .6);
  border: 1px solid var(--gris-libelle); border-radius: 0;
  background: transparent; color: var(--encre);
  font: italic 300 calc(var(--u) * .8) var(--mono);
}
.champs input:focus,
.champs textarea:focus { outline: 2px solid var(--bleu); outline-offset: 0; border-color: var(--bleu); }
.champs .plein { grid-column: 1 / -1; }
.champs textarea { height: calc(var(--u) * 5.2); padding-top: calc(var(--u) * .4); resize: vertical; }
.ok {
  display: flex; gap: calc(var(--u) * .8); align-items: center;
  margin: calc(var(--u) * 1.2) 0 calc(var(--u) * 2.8);
  font: 500 calc(var(--u) * .8)/1.1 var(--mono);
}
.ok input { flex: none; width: 15px; height: 15px; margin: 0; accent-color: var(--bleu); }
.ok a { color: var(--bleu); }
/* Piège anti-robot : champ hors écran, ignoré par les personnes */
.piege { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }

/* --------------------------------------------------------------------------
   Pied de page (bleu foncé)
   -------------------------------------------------------------------------- */
.pied { position: relative; z-index: 1; padding: 5vw 0 2.4vw; background: var(--bleu-f); color: #fff; }
.fg {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 2vw;
  padding-top: 2.4vw; border-top: 1px dashed rgba(255, 255, 255, .45);
}
.fg h2 { margin-bottom: 2vw; font: 400 calc(var(--u) * 1.15) var(--mono); }
.fg ul { list-style: none; padding: 0; }
.fg a,
.fg span { display: block; font-size: calc(var(--u) * .85); line-height: 1.6; text-decoration: none; text-transform: uppercase; }
.fg a:hover { text-decoration: underline; }
.fg .sans-capitales { text-transform: none; }
.fb {
  display: flex; justify-content: space-between;
  margin-top: 7vw; padding-top: 1.6vw;
  border-top: 1px dashed rgba(255, 255, 255, .45);
  font-size: calc(var(--u) * .85); text-transform: uppercase;
}

/* --------------------------------------------------------------------------
   Pages intérieures (même échelle que l'accueil)
   -------------------------------------------------------------------------- */
.page-tete { padding: calc(7rem + 7vw) 0 6vw; }
.page-tete h1 { max-width: 60vw; font: 500 calc(var(--u) * 5)/.9 var(--display); }
.page-tete .chapo { max-width: 44vw; margin-top: 2.4vw; font-weight: 300; line-height: 1.2; }
.page-tete .chapo p + p { margin-top: 1.2em; }
.page-contact { padding-top: calc(7rem + 4vw); }

.me__suite { max-width: 30vw; margin: 4vw 0 0 4.6vw; }

/* Comment ça commence : lignes numérotées, séparées par des tirets */
.lignes { list-style: none; padding: 0; }
.ligne-m {
  display: grid; grid-template-columns: 7.4vw 1fr; align-items: start;
  padding: 2.2vw 0;
  border-bottom: 1px solid var(--bleu); border-image: var(--tirets) 1;
}
.ligne-m:first-child { border-top: 1px solid var(--bleu); }
.ligne-m .h3l { margin-bottom: 1.2vw; }
.ligne-m p { max-width: 30vw; }

/* Trois façons de collaborer : cartes à coins de repère */
.mo { padding: 4vw 0 9vw; }
.centre { text-align: center; }
.mo .h2 { margin-top: 6vw; }
.modeles { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5vw; margin-top: 6vw; padding: 0; list-style: none; }
.modele { position: relative; padding: 2.4vw 2.2vw 3vw; }
.modele .doto { display: block; font-size: calc(var(--u) * 2.4); line-height: 1; }
.modele .h3m { margin: 2.4vw 0 1.2vw; }
.pour-qui { margin-bottom: 1.2em; color: var(--gris); text-transform: uppercase; letter-spacing: .04em; }
.mo__note { margin-top: 3vw; text-align: center; color: var(--gris); }

/* Ce que nous ne faisons pas */
.nf .frg { margin-top: 0; }
.nf .frg .gauche { height: auto; }
.nf .r { align-items: center; }

.appel-page { padding: 2vw 0 9vw; }
.appel-page .appel { margin-top: 0; }

/* Pages leviers : un service = une section, titre fixe à gauche */
.sv { padding: 6vw 0; }
.svg { display: grid; grid-template-columns: 43vw 1fr; }
.sv__tete { position: sticky; top: 7rem; align-self: start; padding-right: 6vw; }
.sv__tete .doto { display: block; margin-bottom: .6vw; font-size: calc(var(--u) * 2.4); line-height: 1; }
.sv__tete .trait { margin-bottom: 1.6vw; }
.sv__tete .h3m { margin-bottom: 1.4vw; }
.sv__accroche { max-width: 28em; font-weight: 300; line-height: 1.2; color: var(--gris); }
.sv__corps { max-width: 40vw; }
.sv__texte { line-height: 1.3; }
.sv__label { margin-bottom: .6em; color: var(--gris); text-transform: uppercase; letter-spacing: .04em; }
.sv__pour { margin-top: 2.4vw; padding: .2vw 0 .2vw .8vw; border-left: 3px solid var(--bleu); }
.sv__bloc { margin-top: 2.4vw; }
.sv__liste { padding: 0; list-style: none; border-top: 1px solid var(--bleu); border-image: var(--tirets) 1; }
.sv__liste li {
  position: relative; padding: .7em 0 .7em 1.4em;
  border-bottom: 1px solid var(--bleu); border-image: var(--tirets) 1;
}
.sv__liste li::before {
  content: ''; position: absolute; left: 0; top: 1.05em;
  width: 6px; height: 6px; background: var(--bleu);
}
.sv__recu { position: relative; margin-top: 2.4vw; padding: 1.6vw 1.8vw; }
.sv__avant { margin-top: 2.4vw; color: var(--gris); }
.sv__liens { margin-top: 2vw; }
.sv + .sv .w > .svg { padding-top: 0; }

.apres { padding: 4vw 0 2vw; }
.apres__inner { max-width: 44vw; margin-left: 43vw; }
.apres__inner p + p { margin-top: 1em; }
.apres__inner .row { margin-top: 2vw; }

/* Section simple à deux colonnes */
.sec { padding: 6vw 0; }
.sec__grille { display: grid; grid-template-columns: 43vw 1fr; margin-top: 3vw; }
.sec__corps { max-width: 40vw; }
.sec__corps .tick { margin-bottom: 2.4vw; white-space: normal; }
.sec__texte { line-height: 1.3; }

.acg__intro { max-width: 30vw; margin-top: 2vw; color: var(--gris); line-height: 1.3; }
.acg__tete { position: sticky; top: 8rem; align-self: start; }
.acg__tete .h2 { position: static; }
.lignes__suite { max-width: 30vw; margin: 2.4vw 0 0 7.4vw; color: var(--gris); }

/* Lignes à carré numéroté */
.lc .frg { margin-top: 0; }
.lc .frg .gauche { height: auto; }
.ico .doto { font-size: calc(var(--u) * 2.4); line-height: 1; transition: color .3s; }
.r.on .ico .doto { color: #fff; }

.phrase { padding: 6vw 0 0; }

.liens-page { padding: 2vw 0 4vw; }

.equipe-appel { padding: 4vw 0 6vw; text-align: center; }
.equipe-appel .h2 { margin-top: 6vw; }
.equipe-appel__texte { max-width: 40vw; margin: 3vw auto; font-weight: 300; line-height: 1.2; }
.centre-row { justify-content: center; }

/* Constats */
.ch--page { padding-top: 2vw; }
.ch__titre { margin: 3vw 0 4vw; }
.cards--long .card { height: auto; min-height: 21vw; padding: 3vw 2vw; }
.cards--long .card span { margin-top: 1.6vw; font-size: var(--u); line-height: 1.3; text-transform: none; letter-spacing: 0; }
.card__source { margin-top: 1vw; font: 400 calc(var(--u) * .85)/1 var(--mono); color: var(--gris); text-transform: uppercase; letter-spacing: .04em; }
.ch__texte { max-width: 44vw; margin: 4vw auto 0; text-align: center; line-height: 1.3; }

/* À propos : la pierre d'angle (niveau 2, seul verset visible du site) */
.pierre-angle { padding: 4vw 0 8vw; }
.pierre-angle .etiq { margin-top: 5vw; text-transform: uppercase; letter-spacing: .04em; }
.verset { margin: 3vw auto 0; max-width: 88vw; text-align: center; }
.verset blockquote p { font: 200 calc(var(--u) * 2.9)/1.15 var(--mono); letter-spacing: -.06em; }
.verset figcaption { margin-top: 2.4vw; color: var(--gris); text-transform: uppercase; letter-spacing: .04em; }
.pierre-angle__texte { max-width: 44vw; margin: 4vw auto 0; line-height: 1.3; }
.equipe .equipe__intro { margin: 2vw auto 0; max-width: 40vw; }
.equipe .modele .h3m { margin-top: 0; }

/* À propos : petite page, échelle réduite (environ deux tiers des autres pages) */
.ap-hero { position: relative; z-index: 1; padding: calc(7rem + 5vw) 0 3vw; }
.ap-hero h1 { max-width: 40vw; font: 500 calc(var(--u) * 3)/1 var(--display); }
.ap-hero__chapo { max-width: 36vw; margin-top: 1.4vw; font-weight: 300; line-height: 1.3; }

.ap-sec { padding: 3.6vw 0; }
.ap-titre { font: 400 calc(var(--u) * 1.8)/1.05 var(--display); text-wrap: balance; }
.ap-intro { max-width: 34vw; margin-top: .8vw; font-size: calc(var(--u) * .9); color: var(--gris); line-height: 1.3; }

.ap-cartes { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1vw; margin-top: 1.8vw; padding: 0; list-style: none; }
.ap-carte {
  position: relative; display: flex; flex-direction: column;
  padding: 1.2vw 1.1vw 1.4vw;
  transition: background-color .35s, color .35s;
}
.ap-carte:focus-visible { outline: 2px solid var(--bleu); outline-offset: 3px; }
.ap-carte .doto { font-size: calc(var(--u) * 1.5); line-height: 1; }
.ap-carte h3 { margin: 1.2vw 0 .5vw; font: 500 var(--u)/1.1 var(--display); }
.ap-carte p { font-size: calc(var(--u) * .8); line-height: 1.3; color: var(--gris); transition: color .35s; }
.ap-carte.est-active { background: var(--bleu); color: #fff; }
.ap-carte.est-active .doto { color: #fff; }
.ap-carte.est-active p { color: #e2e6ee; }
.ap-carte.est-active > i { border-color: #fff; }

/* Pierre d'angle : encadré compact, N pierre du logo à gauche */
.ap-pierre {
  display: grid; grid-template-columns: auto 1fr; gap: 2.4vw; align-items: center;
  padding: 2vw 2.2vw; border: 1px dashed var(--bleu); background: var(--clair);
}
.pierre-3d { display: block; width: max(180px, 17vw); aspect-ratio: 1; }
.ap-pierre .etiq { margin-bottom: .8vw; text-transform: uppercase; letter-spacing: .04em; font-size: calc(var(--u) * .8); }
.ap-verset { margin: 0; }
.ap-verset blockquote p { font: 300 calc(var(--u) * 1.25)/1.3 var(--mono); }
.ap-verset figcaption { margin-top: .6vw; color: var(--gris); text-transform: uppercase; letter-spacing: .04em; font-size: calc(var(--u) * .72); }
.ap-pierre__texte { max-width: 52vw; margin-top: 1.2vw; font-size: calc(var(--u) * .85); line-height: 1.4; }

/* Équipe : cartes avec photo */
.ap-equipe { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1vw; margin-top: 1.8vw; padding: 0; list-style: none; }
.ap-photo { position: relative; aspect-ratio: 1; background: var(--clair); }
.ap-photo img { width: 100%; height: 100%; object-fit: cover; }
.ap-photo > i { z-index: 1; }
.ap-membre h3 { margin-top: .9vw; font: 500 var(--u)/1.1 var(--display); }
.ap-role { margin-top: .3vw; color: var(--gris); text-transform: uppercase; letter-spacing: .04em; font-size: calc(var(--u) * .7); line-height: 1.3; }
.ap-domaines { margin-top: .6vw; font-size: calc(var(--u) * .8); line-height: 1.3; }

/* Réponse sans bouton (page Méthode) */
.q .bd p:last-child { padding-bottom: calc(var(--u) * 1.6); }

/* --------------------------------------------------------------------------
   Apparitions par le bas
   -------------------------------------------------------------------------- */
.rv { opacity: 0; transform: translateY(36px); transition: opacity .9s ease, transform 1s cubic-bezier(.2, .7, .2, 1); }
.rv.in { opacity: 1; transform: none; }

/* --------------------------------------------------------------------------
   Mobile et tablette
   -------------------------------------------------------------------------- */
@media (max-width: 860px) {
  :root { --u: 14px; --px: 6vw; }

  .entete .w { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; padding-top: 14px; padding-bottom: 14px; }
  .entete .logo { width: 126px; margin: -11px 0 -11px -11px; }
  .menu-bouton {
    display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px;
    border: 1px solid var(--bleu); background: transparent; color: var(--bleu);
    font: 400 13px/1 var(--mono); letter-spacing: .04em; text-transform: uppercase; cursor: pointer;
  }
  .entete__nav { display: none; width: 100%; padding: 14px 0 6px; }
  .entete__nav.est-ouvert { display: block; }
  .entete__nav nav a { padding: 10px 0; border-bottom: 1px dashed var(--bleu); }
  .entete__nav .btn { display: inline-flex; margin-top: 16px; }
  html:not(.js) .entete__nav { display: block; }
  html:not(.js) .menu-bouton { display: none; }

  .hero h1 { max-width: none; font-size: 12.5vw; }
  .hero .chapo { max-width: none; line-height: 1.35; }
  .hero .tick { position: static; margin-top: 2rem; white-space: normal; }
  .row { gap: 12px; }

  .h2 { font-size: 9vw; -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
  .h3l, .h3m { font-size: 6vw; }
  .reveal { font-size: 8.5vw; }

  .frg, .acg, .proc, .cog { grid-template-columns: 1fr; gap: 2rem; }
  .frg .gauche, .acg .h2, .stick { position: static; height: auto; }
  .frg .gauche .tick { white-space: normal; }
  .r { grid-template-columns: 1fr; gap: 1.2rem; padding: 6vw 0; }
  .ico { width: 24vw; height: 24vw; }

  .gr .ctr p, .cols .txt, .bd p, .st .txt, .urg, .co .txt p, .co .titre-contact { max-width: none; }
  .cols { grid-template-columns: 1fr; gap: 12vw; margin-top: 24vw; }
  .cols .h3m { min-height: 0; margin-bottom: 1.2rem; }
  .appel p { max-width: none; }
  .bd > div { padding-left: 0; }
  .it button { grid-template-columns: 18vw 1fr 8vw; padding: 6vw 0; }
  .num i { display: none; }
  .bd .btn { margin: 5vw 0 6vw; }

  .pierre { width: 70vw; }
  .st { padding-bottom: 22vw; }
  .st:last-child { padding-bottom: 10vw; }
  .st .h3m { margin: 3vw 0 3vw; }

  .ban { flex-direction: column; align-items: flex-start; gap: 8vw; height: auto; padding: 10vw 6vw; }
  .ban .grand { text-align: left; }
  .ban .grand b { font-size: 22vw; }
  .ban .titre { font-size: 12vw; }
  .cards { grid-template-columns: 1fr; gap: 6vw; }
  .card { height: 52vw; }
  .card i { width: 5vw; height: 5vw; }
  .card b { font-size: 12vw; }
  .card span { font-size: 5vw; }
  .note { margin-top: 5vw; }

  .fq { padding: 20vw 0; }
  .fq .titre { margin-bottom: 12vw; font-size: 10vw; }
  .fqg { grid-template-columns: 1fr; gap: 12vw; }
  .fqg .gauche { min-height: 0; padding: 0; }
  .boite { width: 16vw; height: 16vw; }
  .fqg .haut h3 { max-width: none; font-size: 6.5vw; }
  .fqg .bloc { width: auto; margin-left: 0; }
  .fqg .bloc p { font-size: 15px; line-height: 1.35; }
  .regle { display: none; }
  .q button { grid-template-columns: 16vw 1fr 8vw; padding: 4vw 0; }
  .q .h3l { font-size: 5.5vw; }
  .q .bd > div { padding-left: 0; }
  .q .bd p { max-width: none; font-size: 15px; line-height: 1.35; }

  .cog { gap: 10vw; }
  .cog > div:first-child { max-width: none; }
  .co .titre-contact { font-size: 7vw; }
  .co .txt p { font-size: 15px; line-height: 1.35; }
  .champs { grid-template-columns: 1fr; }
  .champs input { height: 46px; font-size: 15px; }
  .champs textarea { height: 110px; font-size: 15px; }
  .form { padding: 6vw; }
  .co .btn { height: 40px; font-size: 13px; }

  .pied { padding: 12vw 0 6vw; }
  .fg { grid-template-columns: 1fr 1fr; gap: 8vw; padding-top: 6vw; }
  .fg > div:last-child { grid-column: 1 / -1; }
  .fg a { overflow-wrap: anywhere; }
  .fg h2 { margin-bottom: 3vw; }
  .fb { flex-direction: column; gap: 1rem; margin-top: 12vw; padding-top: 5vw; }

  .halo { width: 110vw; height: 90vw; }

  .page-tete { padding: calc(6rem + 10vw) 0 12vw; }
  .page-tete h1 { max-width: none; font-size: 12.5vw; -webkit-hyphens: auto; hyphens: auto; overflow-wrap: break-word; }
  .page-tete .chapo { max-width: none; margin-top: 6vw; line-height: 1.35; }
  .page-contact { padding-top: calc(5rem + 8vw); }
  .me__suite { max-width: none; margin: 8vw 0 0; }
  .ligne-m { grid-template-columns: 18vw 1fr; padding: 6vw 0; }
  .ligne-m p { max-width: none; }
  .modeles { grid-template-columns: 1fr; gap: 6vw; }
  .modele { padding: 7vw 6vw; }
  .modele .h3m { margin: 5vw 0 3vw; }
  .mo__note { margin-top: 8vw; }
  .nf .r { grid-template-columns: 1fr; }

  .ap-hero { padding: calc(5rem + 10vw) 0 6vw; }
  .ap-hero h1 { max-width: none; font-size: 7.5vw; }
  .ap-hero__chapo { max-width: none; margin-top: 4vw; font-size: 14px; line-height: 1.35; }
  .ap-sec { padding: 9vw 0; }
  .ap-titre { font-size: 6vw; }
  .ap-intro { max-width: none; margin-top: 3vw; font-size: 13px; }
  .ap-cartes { grid-template-columns: 1fr 1fr; gap: 3vw; margin-top: 5vw; }
  .ap-carte { padding: 4vw; }
  .ap-carte .doto { font-size: 22px; }
  .ap-carte h3 { margin: 4vw 0 2vw; font-size: 14px; }
  .ap-carte p { font-size: 12px; }
  .ap-pierre { grid-template-columns: 1fr; gap: 5vw; padding: 6vw 5vw; }
  .pierre-3d { width: 60vw; margin: 0 auto; }
  .ap-pierre .etiq { margin-bottom: 3vw; font-size: 11px; }
  .ap-verset blockquote p { font-size: 15px; }
  .ap-verset figcaption { margin-top: 2vw; font-size: 10px; }
  .ap-pierre__texte { max-width: none; margin-top: 4vw; font-size: 13px; }
  .ap-equipe { grid-template-columns: 1fr 1fr; gap: 4vw 3vw; margin-top: 5vw; }
  .ap-membre h3 { margin-top: 2.5vw; font-size: 14px; }
  .ap-role { margin-top: 1vw; font-size: 10px; }
  .ap-domaines { margin-top: 1.5vw; font-size: 12px; }

  .sv { padding: 12vw 0; }
  .svg, .sec__grille { grid-template-columns: 1fr; gap: 6vw; }
  .sv__tete { position: static; padding-right: 0; }
  .sv__tete .trait { margin-bottom: 4vw; }
  .sv__tete .h3m { margin-bottom: 3vw; }
  .sv__corps, .sec__corps, .apres__inner, .acg__intro, .lignes__suite, .equipe-appel__texte, .ch__texte, .pierre-angle__texte, .equipe .equipe__intro { max-width: none; }
  .sv__pour, .sv__bloc, .sv__recu, .sv__avant, .sv__liens { margin-top: 6vw; }
  .sv__recu { padding: 6vw; }
  .apres__inner { margin-left: 0; }
  .apres__inner .row { margin-top: 6vw; }
  .acg__tete { position: static; }
  .acg__intro { margin-top: 4vw; }
  .lignes__suite { margin: 6vw 0 0; }
  .sec { padding: 12vw 0; }
  .sec__grille { margin-top: 6vw; }
  .sec__corps .tick { margin-bottom: 6vw; }
  .ico .doto { font-size: 9vw; }
  .phrase { padding: 12vw 0 0; }
  .liens-page { padding: 4vw 0 8vw; }
  .equipe-appel__texte { margin: 6vw auto; }
  .ch__titre { margin: 6vw 0; }
  .cards--long .card { min-height: 0; padding: 10vw 6vw; }
  .cards--long .card span { margin-top: 4vw; font-size: 15px; }
  .card__source { margin-top: 3vw; }
  .verset blockquote p { font-size: 7vw; }
  .verset figcaption { margin-top: 6vw; }
  .pierre-angle__texte { margin-top: 8vw; }
}

/* --------------------------------------------------------------------------
   Animations réduites : tout est coupé, la version statique porte toute l'information
   -------------------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
  .rv { opacity: 1; transform: none; }
  .tick .cur, .js .tick .cur { display: none; }
  .reveal span { color: var(--encre); }
  .grbg, .js .grbg { display: none; }
  .gr, .js .gr {
    background: linear-gradient(180deg, #08080c 0%, #172940 14%, #2e5a8f 30%, #7d98b9 42%, #b8c6d8 50%, #e2e6ee 58%, #fffdfd 66%);
  }
}

.page-404__liens { margin-top: 2.4vw; }
@media (max-width: 860px) { .page-404__liens { margin-top: 8vw; } }

/* Message après envoi du formulaire */
.form__etat { margin-top: calc(var(--u) * 1.2); padding-left: .8vw; border-left: 3px solid var(--bleu); font-size: calc(var(--u) * .85); line-height: 1.3; }
.form__etat--erreur { border-left-color: var(--encre); }
@media (max-width: 860px) { .form__etat { padding-left: 3vw; font-size: 14px; } }

/* Pages légales : sobres, lisibles */
.page-tete--legale { padding-bottom: 3vw; }
.page-tete--legale h1 { font-size: calc(var(--u) * 3); }
.legal { padding: 0 0 6vw; }
.legal__corps { max-width: 48vw; }
.legal section { padding: 2vw 0; border-top: 1px solid var(--bleu); border-image: var(--tirets) 1; }
.legal h2 { margin-bottom: 1vw; font: 400 calc(var(--u) * 1.4)/1.1 var(--display); }
.legal p, .legal li { line-height: 1.45; }
.legal p + p, .legal p + ul, .legal ul + p { margin-top: .8em; }
.legal ul { padding-left: 1.2em; }
.legal li + li { margin-top: .3em; }
.legal a { color: var(--bleu); }
@media (max-width: 860px) {
  .page-tete--legale { padding-bottom: 6vw; }
  .page-tete--legale h1 { font-size: 9vw; }
  .legal__corps { max-width: none; }
  .legal section { padding: 6vw 0; }
  .legal h2 { margin-bottom: 3vw; font-size: 18px; }
  .legal p, .legal li { font-size: 15px; }
}

.ap-verset__mention { display: block; margin-top: .4em; text-transform: none; letter-spacing: 0; }

.fb__reseaux { display: flex; gap: 1.6vw; list-style: none; padding: 0; }
.fb__reseaux a { text-decoration: none; }
.fb__reseaux a:hover { text-decoration: underline; }

/*!
 * Psaumes 128:1-2 (Louis Segond 1910) : Cantique des degrés. Heureux tout homme qui craint l’Éternel, Qui marche dans ses voies ! Tu jouis alors du travail de tes mains, Tu es heureux, tu prospères.
 * Psaumes 121:7-8 (Louis Segond 1910) : L’Éternel te gardera de tout mal, Il gardera ton âme ; L’Éternel gardera ton départ et ton arrivée, Dès maintenant et à jamais.
 * Proverbes 18:10 (Louis Segond 1910) : Le nom de l’Éternel est une tour forte ; Le juste s’y réfugie, et se trouve en sûreté.
 * Proverbes 16:3 (Louis Segond 1910) : Recommande à l’Éternel tes œuvres, Et tes projets réussiront.
 * Nombres 6:24-26 (Louis Segond 1910) : Que l’Éternel te bénisse, et qu’il te garde ! Que l’Éternel fasse luire sa face sur toi, et qu’il t’accorde sa grâce ! Que l’Éternel tourne sa face vers toi, et qu’il te donne la paix !
 * Psaumes 119:33-36 (Louis Segond 1910) : Enseigne-moi, Éternel, la voie de tes statuts, Pour que je la retienne jusqu’à la fin ! Donne-moi l’intelligence, pour que je garde ta loi Et que je l’observe de tout mon cœur ! Conduis-moi dans le sentier de tes commandements ! Car je l’aime. Incline mon cœur vers tes préceptes, Et non vers le gain !
 */
