@import url('https://fonts.googleapis.com/css2?family=Literata:opsz,wght@7..72,400;7..72,600;7..72,800&family=Atkinson+Hyperlegible:wght@400;700&display=swap');

:root {
  --bleu: #5B7B8C;
  --blanc: #FFFFFF;
  --encre: #1F2428;
  --sable: #EDE6DA;
  --alerte: #B3453C;
  --max: 1280px;
  --marge: clamp(1.25rem,4vw,4rem);
  --titre: 'Literata', serif;
  --texte: 'Atkinson Hyperlegible', sans-serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--blanc); color: var(--encre); font-family: var(--texte); font-size: 19px; line-height: 1.62; overflow-x: hidden; }
img { display: block; max-width: 100%; }
a { color: inherit; text-underline-offset: .25em; text-decoration-thickness: 1px; }
button,input,select,textarea { font: inherit; }
.saut { position: fixed; z-index: 100; top: -5rem; left: 1rem; padding: .8rem 1rem; background: var(--blanc); color: var(--encre); border: 1px solid var(--encre); transition: top .2s ease, background .2s ease; }
.saut:focus { top: 1rem; background: var(--sable); }

.entete { position: fixed; inset: 0 0 auto; z-index: 50; color: var(--blanc); border-bottom: 1px solid rgba(255,255,255,.55); transition: background .3s ease, color .3s ease; }
.entete.defile { background: rgba(255,255,255,.96); color: var(--encre); border-color: var(--encre); backdrop-filter: blur(14px); }
.entete-ligne { width: min(100%,var(--max)); min-height: 92px; margin: auto; padding: .75rem var(--marge); display: grid; grid-template-columns: auto 1fr auto; gap: clamp(1rem,3vw,3rem); align-items: center; }
.marque { font-family: var(--titre); font-size: clamp(1.4rem,2.2vw,2rem); font-weight: 800; line-height: 1; letter-spacing: -.03em; text-decoration: none; transition: color .2s ease, transform .2s ease; }
.marque small { display: block; margin-top: .35rem; font-family: var(--texte); font-size: .65rem; font-weight: 400; letter-spacing: .15em; text-transform: uppercase; }
.marque:hover { color: var(--sable); transform: translateY(-2px); }
.entete.defile .marque:hover { color: var(--bleu); }
.nav ul { margin: 0; padding: 0; list-style: none; display: flex; justify-content: flex-end; gap: clamp(.7rem,1.8vw,1.6rem); }
.nav a { min-height: 48px; display: flex; align-items: center; font-size: .83rem; font-weight: 700; letter-spacing: .09em; text-decoration: none; text-transform: uppercase; border-bottom: 1px solid transparent; transition: color .2s ease, border-color .2s ease; }
.nav a:hover,.nav a[aria-current='page'] { color: var(--sable); border-color: currentColor; }
.entete.defile .nav a:hover,.entete.defile .nav a[aria-current='page'] { color: var(--alerte); }
.appel-entete { min-height: 52px; padding: .7rem 1rem; border: 1px solid currentColor; display: flex; align-items: center; font-weight: 700; text-decoration: none; transition: background .2s ease, color .2s ease; }
.appel-entete:hover { background: var(--blanc); color: var(--encre); }
.entete.defile .appel-entete:hover { background: var(--alerte); color: var(--blanc); }
.menu-bouton { display: none; }

.hero-signature { position: relative; min-height: 100vh; min-height: 100svh; color: var(--blanc); overflow: hidden; isolation: isolate; border-bottom: 1px solid var(--encre); }
.hero-media { position: absolute; z-index: -3; inset: 0; overflow: hidden; background: var(--encre); }
.hero-media picture,.hero-media img { width: 100%; height: 100%; }
.hero-media img { object-fit: cover; object-position: 65% center; animation: ken 22s ease-in-out infinite alternate; }
.hero-signature::before { content: ''; position: absolute; z-index: -2; inset: 0; background: linear-gradient(90deg,rgba(31,36,40,.98) 0%,rgba(31,36,40,.9) 26%,rgba(31,36,40,.48) 48%,rgba(31,36,40,.08) 66%,transparent 78%); }
.hero-signature::after { content: ''; position: absolute; z-index: -1; inset: auto 0 0; height: 28%; background: linear-gradient(0deg,rgba(31,36,40,.7),transparent); }
.hero-grille { width: min(100%,var(--max)); min-height: 100svh; margin: auto; padding: clamp(9rem,16vh,13rem) var(--marge) clamp(3rem,8vh,6rem); display: grid; grid-template-columns: repeat(12,1fr); gap: 1rem; align-content: end; }
.hero-contenu { grid-column: 1/9; animation: entreeHero .9s cubic-bezier(.2,.7,.2,1) both; }
.sur { margin: 0 0 1.2rem; color: var(--sable); font-size: .78rem; font-weight: 700; letter-spacing: .2em; text-transform: uppercase; }
.hero-contenu h1 { margin: 0; font-family: var(--titre); font-size: clamp(3.8rem,8vw,9rem); font-weight: 800; line-height: .91; letter-spacing: -.035em; }
.hero-contenu h1 em { color: var(--sable); font-style: normal; }
.hero-intro { max-width: 720px; margin: 1.6rem 0; font-size: clamp(1.25rem,2vw,1.55rem); line-height: 1.45; }
.hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; }
.bouton,.bouton-clair { min-height: 54px; padding: .8rem 1.2rem; border: 1px solid currentColor; display: inline-flex; align-items: center; justify-content: center; font-size: .84rem; font-weight: 700; letter-spacing: .13em; text-decoration: none; text-transform: uppercase; cursor: pointer; transition: background .2s ease, color .2s ease; }
.bouton { background: var(--encre); color: var(--blanc); }
.bouton:hover { background: var(--bleu); color: var(--blanc); transform: translateY(-2px); }
.bouton-clair { background: transparent; color: currentColor; }
.bouton-clair:hover { background: var(--blanc); color: var(--encre); transform: translateY(-2px); }
.hero-aides { grid-column: 9/13; align-self: end; border: 1px solid var(--blanc); background: rgba(31,36,40,.72); backdrop-filter: blur(8px); }
.hero-aides h2 { margin: 0; padding: .9rem; font-family: var(--titre); font-size: 1.3rem; border-bottom: 1px solid var(--blanc); }
.hero-aides a { min-height: 48px; padding: .55rem .9rem; display: flex; justify-content: space-between; align-items: center; text-decoration: none; border-bottom: 1px solid rgba(255,255,255,.5); transition: background .2s ease, color .2s ease; }
.hero-aides a:last-child { border-bottom: 0; }
.hero-aides a:hover { background: var(--sable); color: var(--encre); }
.defile-indice { position: absolute; left: 50%; bottom: 1.2rem; transform: translateX(-50%); font-size: .75rem; letter-spacing: .15em; text-transform: uppercase; animation: descente 2s ease-in-out infinite; }

.env { width: min(100%,var(--max)); margin-inline: auto; padding-inline: var(--marge); }
.section { padding-block: clamp(5rem,9vw,9rem); border-bottom: 1px solid var(--encre); }
.tete-section { display: grid; grid-template-columns: repeat(12,1fr); gap: 1rem; align-items: end; margin-bottom: clamp(2.5rem,5vw,5rem); }
.tete-section h2,.titre-grand,.page-haute h1 { grid-column: 1/9; margin: 0; font-family: var(--titre); font-size: clamp(3rem,6.2vw,7rem); font-weight: 800; line-height: .98; letter-spacing: -.03em; }
.tete-section > p { grid-column: 10/13; margin: 0; }
.bleu { color: var(--bleu); }
.instruction { margin: 0 0 1.2rem; color: var(--alerte); font-weight: 700; }

.essentiel-bande { padding: 0; background: var(--blanc); border-bottom: 1px solid var(--encre); }
.essentiel-grille { display: grid; grid-template-columns: 1.2fr .85fr .75fr 1.2fr; border-left: 1px solid var(--encre); }
.essentiel-grille > div { min-height: 180px; padding: 1.3rem; border-right: 1px solid var(--encre); display: flex; flex-direction: column; justify-content: space-between; }
.essentiel-grille > div:nth-child(2) { background: var(--bleu); color: var(--blanc); }
.essentiel-grille small { font-size: .72rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.essentiel-grille strong { font-family: var(--titre); font-size: clamp(1.5rem,2.5vw,2.35rem); line-height: 1.15; }
.essentiel-grille a { color: var(--alerte); font-weight: 700; transition: color .2s ease, transform .2s ease; }
.essentiel-grille a:hover { color: var(--encre); transform: translateX(3px); }

.aides-tableau { background: var(--sable); }
.accordeon { border-top: 1px solid var(--encre); }
.accordeon-item { border-bottom: 1px solid var(--encre); }
.accordeon-bouton { width: 100%; min-height: 96px; padding: 1rem 0; border: 0; background: transparent; color: var(--encre); display: grid; grid-template-columns: 90px 1fr 180px auto; gap: 1rem; align-items: center; text-align: left; transition: background .2s ease, color .2s ease; }
.accordeon-bouton:hover,.accordeon-bouton[aria-expanded='true'] { background: var(--blanc); color: var(--alerte); }
.accordeon-bouton span:first-child { font-family: var(--titre); font-size: 2.2rem; color: var(--bleu); }
.accordeon-bouton b { font-family: var(--titre); font-size: clamp(1.5rem,2.8vw,2.4rem); }
.accordeon-bouton small { font-size: .9rem; font-weight: 700; }
.accordeon-bouton::after { content: '+'; font-family: var(--titre); font-size: 2.8rem; transition: transform .2s ease, color .2s ease; }
.accordeon-bouton[aria-expanded='true']::after { transform: rotate(45deg); color: var(--alerte); }
.accordeon-contenu { padding: 1.4rem 8rem 2.2rem 6.6rem; border-top: 1px solid var(--encre); background: var(--blanc); }
.aide-lignes { display: grid; grid-template-columns: 1.05fr .85fr .8fr 1.15fr; border: 1px solid var(--encre); }
.aide-lignes div { padding: 1rem; border-right: 1px solid var(--encre); }
.aide-lignes div:last-child { border-right: 0; }
.aide-lignes strong { display: block; color: var(--bleu); }
.note-aides-delais { margin: 1.2rem 0 0; padding: 1rem; border-left: 6px solid var(--alerte); background: var(--blanc); font-size: .92rem; }

.situations { background: var(--blanc); }
.liste-situations { border-top: 1px solid var(--encre); counter-reset: situation; }
.situation { counter-increment: situation; min-height: 160px; padding: 1.3rem 0; border-bottom: 1px solid var(--encre); display: grid; grid-template-columns: 110px minmax(0,1.3fr) minmax(260px,.7fr) auto; gap: 1rem; align-items: center; transition: background .22s ease, padding-left .22s ease; }
.situation:hover { background: var(--sable); padding-left: 1rem; }
.situation::before { content: counter(situation,decimal-leading-zero); font-family: var(--titre); font-size: 3.4rem; color: var(--bleu); }
.situation h3 { margin: 0; font-family: var(--titre); font-size: clamp(1.8rem,3.2vw,2.9rem); line-height: 1.1; }
.situation a { min-height: 48px; padding: .6rem; display: flex; align-items: center; font-weight: 700; transition: color .2s ease, transform .2s ease; }
.situation a:hover { color: var(--alerte); transform: translateX(4px); }
.note-situations { margin-top: 3rem; padding: clamp(1.4rem,3vw,2.5rem); border: 1px solid var(--encre); border-left: 9px solid var(--bleu); background: var(--sable); display: grid; grid-template-columns: minmax(240px,.55fr) minmax(0,1.45fr); gap: clamp(1.5rem,4vw,4rem); align-items: start; }
.note-situations h3 { margin: 0; font-family: var(--titre); font-size: clamp(2rem,3.4vw,3.4rem); line-height: 1.05; }
.note-situations p { margin: 0; }

.diptyque { min-height: 92svh; display: grid; grid-template-columns: 1.15fr .85fr; border-bottom: 1px solid var(--encre); }
.diptyque-photo { overflow: hidden; background: var(--sable); }
.diptyque-photo img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.8); transition: filter .55s ease, transform .75s ease; }
.diptyque-photo:hover img { filter: saturate(1); transform: scale(1.03); }
.diptyque-texte { padding: clamp(3rem,7vw,8rem); border-left: 1px solid var(--encre); background: var(--blanc); display: flex; flex-direction: column; justify-content: center; }
.diptyque-texte h2 { margin: 0 0 1.5rem; font-family: var(--titre); font-size: clamp(3rem,6vw,6.5rem); line-height: 1; }
.limite-soins { padding: 1rem; border: 1px solid var(--alerte); color: var(--alerte); font-weight: 700; }

.simulateur { background: var(--bleu); color: var(--blanc); }
.simulateur .sur { color: var(--blanc); }
.calculateur { display: grid; grid-template-columns: 1.1fr .9fr; border: 1px solid var(--encre); background: var(--blanc); color: var(--encre); }
.calcul-champs { padding: clamp(1.5rem,4vw,4rem); border-right: 1px solid var(--encre); }
.groupe-champ { display: grid; gap: .45rem; margin-bottom: 1.2rem; }
.groupe-champ label { font-weight: 700; }
.groupe-champ input,.groupe-champ select,.groupe-champ textarea { width: 100%; min-height: 54px; padding: .7rem; border: 1px solid var(--encre); border-radius: 0; background: var(--blanc); color: var(--encre); transition: background .2s ease, outline-color .2s ease; }
.groupe-champ input:focus,.groupe-champ select:focus,.groupe-champ textarea:focus { outline: 3px solid var(--bleu); outline-offset: 2px; background: var(--sable); }
.calcul-resultat { padding: clamp(1.5rem,4vw,4rem); background: var(--sable); display: flex; flex-direction: column; justify-content: center; }
.calcul-resultat small { font-size: .76rem; font-weight: 700; letter-spacing: .15em; text-transform: uppercase; }
.reste-geant { margin: .6rem 0; color: var(--bleu); font-family: var(--titre); font-size: clamp(4.8rem,9vw,9rem); font-weight: 800; line-height: .82; transition: transform .25s ease, color .25s ease; }
.reste-geant.change { transform: scale(1.035); color: var(--alerte); }
.detail-calcul { width: 100%; margin: 1rem 0; border-collapse: collapse; }
.detail-calcul td { padding: .55rem 0; border-bottom: 1px solid var(--encre); }
.detail-calcul td:last-child { text-align: right; font-weight: 700; }
.alerte-info { padding: .8rem; border: 1px solid var(--alerte); background: var(--blanc); color: var(--alerte); font-weight: 700; }

.mosa-portraits { background: var(--blanc); }
.mosa { display: grid; grid-template-columns: 1.2fr .8fr 1fr; grid-template-rows: 360px 280px; gap: 1px; background: var(--encre); border: 1px solid var(--encre); }
.mosa figure { margin: 0; position: relative; overflow: hidden; background: var(--sable); }
.mosa figure:first-child { grid-row: 1/3; }
.mosa figure:nth-child(4) { grid-column: 2/4; }
.mosa img { width: 100%; height: 100%; object-fit: cover; filter: saturate(.75); transition: filter .4s ease, transform .5s ease; }
.mosa figure:hover img { filter: saturate(1); transform: scale(1.025); }
.mosa figcaption { position: absolute; inset: auto 0 0; padding: .7rem; background: var(--blanc); border-top: 1px solid var(--encre); font-weight: 700; }

.chiffres { background: var(--sable); }
.ligne-chiffres { display: grid; grid-template-columns: repeat(4,1fr); border-top: 1px solid var(--encre); border-left: 1px solid var(--encre); }
.chiffre { min-height: 230px; padding: 1.3rem; border-right: 1px solid var(--encre); border-bottom: 1px solid var(--encre); }
.chiffre b { display: block; margin-bottom: 1rem; color: var(--bleu); font-family: var(--titre); font-size: clamp(3rem,5vw,5.3rem); line-height: .9; }

.negatif { min-height: 72svh; padding: var(--marge); background: var(--encre); color: var(--blanc); border-bottom: 7px solid var(--bleu); display: grid; place-items: center; }
.negatif-interieur { width: min(100%,var(--max)); }
.negatif h2 { max-width: 1100px; margin: 0 0 2rem; font-family: var(--titre); font-size: clamp(3.5rem,7.5vw,8rem); line-height: .97; }
.negatif h2 em { color: var(--sable); font-style: normal; }
.negatif p { max-width: 760px; font-size: 1.25rem; }

.zone { background: var(--blanc); }
.zone-grille { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(2rem,5vw,5rem); align-items: center; }
.zone-carte { min-height: 660px; position: relative; border: 1px solid var(--encre); background: var(--sable); overflow: hidden; }
.zone-carte::before { content: ''; position: absolute; width: 70%; height: 80%; top: 10%; left: 15%; border: 1px solid var(--encre); background: var(--blanc); transform: rotate(8deg); }
.zone-carte::after { content: ''; position: absolute; width: 24%; height: 30%; top: 34%; left: 38%; background: var(--bleu); animation: carte 3s ease-in-out infinite; }
.zone-liens { position: relative; z-index: 2; padding: 2rem; display: grid; gap: 1rem; }
.zone-liens a { min-height: 54px; padding: .8rem; border: 1px solid var(--encre); background: var(--blanc); display: flex; justify-content: space-between; align-items: center; font-weight: 700; text-decoration: none; transition: background .2s ease, color .2s ease; }
.zone-liens a:hover { background: var(--bleu); color: var(--blanc); }

.page-haute { padding: clamp(8rem,14vw,12rem) var(--marge) clamp(4rem,8vw,7rem); border-bottom: 1px solid var(--encre); background: var(--sable); }
.page-haute > * { width: min(100%,var(--max)); margin-left: auto; margin-right: auto; }
.page-haute p { max-width: 820px; font-size: 1.25rem; }
.contenu-page { padding-block: clamp(4rem,8vw,8rem); }
.grille-page { display: grid; grid-template-columns: repeat(12,1fr); gap: 1rem; align-items: start; }
.article { grid-column: 1/9; }
.article h2 { margin: 3rem 0 1rem; font-family: var(--titre); font-size: clamp(2.4rem,4.5vw,4.7rem); line-height: 1.05; }
.article h3 { margin: 2rem 0 .6rem; font-family: var(--titre); font-size: 1.85rem; line-height: 1.2; }
.encadre { grid-column: 10/13; position: sticky; top: 120px; padding: 1.25rem; border: 1px solid var(--encre); background: var(--sable); }
.encadre h2,.encadre h3 { margin-top: 0; font-family: var(--titre); }
.tableau { width: 100%; border-collapse: collapse; border: 1px solid var(--encre); }
.tableau th,.tableau td { padding: .9rem; border: 1px solid var(--encre); text-align: left; vertical-align: top; }
.tableau th { background: var(--encre); color: var(--blanc); font-family: var(--titre); font-size: 1.2rem; }
.tableau tr:nth-child(even) { background: var(--sable); }
.equipe { display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; background: var(--encre); border: 1px solid var(--encre); }
.personne { background: var(--blanc); }
.personne img { width: 100%; aspect-ratio: 4/5; object-fit: cover; filter: saturate(.75); transition: filter .4s ease, transform .4s ease; }
.personne:hover img { filter: saturate(1); transform: scale(1.012); }
.personne div { padding: 1.2rem; }
.personne h3 { margin: 0; font-family: var(--titre); font-size: 1.85rem; }
.formulaire { display: grid; grid-template-columns: repeat(2,1fr); gap: 1rem; }
.formulaire .large { grid-column: 1/-1; }
.etapes-form { display: flex; gap: .5rem; margin-bottom: 1.5rem; }
.etapes-form span { flex: 1; height: 10px; border: 1px solid var(--encre); }
.etapes-form span.actif { background: var(--bleu); }
.form-etape[hidden] { display: none; }
.nav-form { display: flex; justify-content: space-between; gap: 1rem; margin-top: 1rem; }
.espace { display: grid; grid-template-columns: 270px 1fr; min-height: 650px; border: 1px solid var(--encre); }
.espace-nav { padding: 1rem; background: var(--encre); color: var(--blanc); border-right: 1px solid var(--encre); }
.espace-nav button { width: 100%; min-height: 52px; margin-bottom: .5rem; border: 1px solid var(--blanc); background: transparent; color: var(--blanc); text-align: left; transition: background .2s ease, color .2s ease; }
.espace-nav button:hover,.espace-nav button.actif { background: var(--sable); color: var(--encre); }
.espace-contenu { padding: clamp(1.4rem,4vw,3.2rem); }
.historique { border-top: 1px solid var(--encre); }
.historique li { padding: 1rem 0; border-bottom: 1px solid var(--encre); display: grid; grid-template-columns: 130px 1fr auto; gap: 1rem; }

.pied { padding: clamp(4rem,7vw,7rem) var(--marge) 2rem; background: var(--encre); color: var(--blanc); }
.pied-grille { width: min(100%,var(--max)); margin: auto; display: grid; grid-template-columns: 1.4fr repeat(3,1fr); gap: 2.5rem; }
.pied h2,.pied h3 { margin-top: 0; font-family: var(--titre); }
.pied h2 { font-size: 3.2rem; line-height: 1; }
.pied ul { margin: 0; padding: 0; list-style: none; }
.pied li { margin-bottom: .55rem; }
.pied a { display: inline-block; transition: color .2s ease, transform .2s ease; }
.pied a:hover { color: var(--sable); transform: translateX(3px); }
.pied-fin { width: min(100%,var(--max)); margin: 3rem auto 0; padding-top: 1rem; border-top: 1px solid var(--bleu); display: flex; justify-content: space-between; gap: 1rem; font-size: .86rem; }
.contact-mobile { display: none; }
.rv { opacity: 0; transform: translateY(24px); transition: opacity .68s ease, transform .68s ease; }
.rv.visible { opacity: 1; transform: translateY(0); }
.rv:nth-child(2) { transition-delay: .07s; }
.rv:nth-child(3) { transition-delay: .14s; }
.rv:nth-child(4) { transition-delay: .21s; }
.rv:nth-child(5) { transition-delay: .28s; }

@keyframes ken { from { transform: scale(1); } to { transform: scale(1.06); } }
@keyframes entreeHero { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes descente { 0%,100% { transform: translate(-50%,0); } 50% { transform: translate(-50%,8px); } }
@keyframes carte { 0%,100% { transform: scale(1); } 50% { transform: scale(1.08); } }
@keyframes respiration { from { opacity: .55; } to { opacity: 1; } }
@keyframes ligne { from { transform: scaleX(0); } to { transform: scaleX(1); } }
@keyframes clignement { 0%,88%,100% { opacity: 1; } 92% { opacity: .55; } }
@keyframes entree { from { clip-path: inset(0 100% 0 0); } to { clip-path: inset(0); } }
@keyframes oscillation { from { translate: 0 -2px; } to { translate: 0 2px; } }

@media (max-width:1120px) {
  .nav li:nth-child(4),.nav li:nth-child(5) { display:none; }
  .hero-contenu { grid-column:1/9; }
  .hero-aides { grid-column:9/13; }
  .essentiel-grille,.ligne-chiffres { grid-template-columns:repeat(2,1fr); }
  .aide-lignes { grid-template-columns:repeat(2,1fr); }
  .aide-lignes div:nth-child(2) { border-right:0; }
  .aide-lignes div:nth-child(-n+2) { border-bottom:1px solid var(--encre); }
  .situation { grid-template-columns:90px 1fr auto; }
  .situation p { grid-column:2/4; }
  .pied-grille { grid-template-columns:1.4fr 1fr 1fr; }
  .pied-grille > :last-child { grid-column:2/4; }
}
@media (max-width:900px) {
  body { font-size:18px; }
  .entete { color:var(--encre); background:rgba(255,255,255,.97); }
  .entete-ligne { grid-template-columns:1fr auto auto; min-height:82px; }
  .nav { position:fixed; inset:82px 0 auto; padding:1rem var(--marge); background:var(--blanc); border-bottom:1px solid var(--encre); transform:translateY(-140%); visibility:hidden; transition:transform .3s ease,visibility .3s ease; }
  .nav.ouvert { transform:translateY(0); visibility:visible; }
  .nav ul { display:grid; grid-template-columns:repeat(2,1fr); }
  .nav li:nth-child(4),.nav li:nth-child(5) { display:list-item; }
  .nav a { min-height:50px; padding:.5rem; border:1px solid var(--encre); }
  .menu-bouton { min-width:56px; min-height:50px; border:1px solid var(--encre); background:var(--blanc); display:flex; align-items:center; justify-content:center; font-weight:700; transition:background .2s ease,color .2s ease; }
  .menu-bouton:hover { background:var(--bleu); color:var(--blanc); }
  .appel-entete { min-width:52px; padding:0; justify-content:center; font-size:0; }
  .appel-entete::after { content:'☎'; font-size:1.25rem; }
  .hero-grille { padding-top:9rem; }
  .hero-contenu { grid-column:1/10; }
  .hero-aides { grid-column:8/13; margin-top:2rem; }
  .tete-section h2 { grid-column:1/10; }
  .tete-section > p { grid-column:10/13; }
  .accordeon-bouton { grid-template-columns:70px 1fr auto; }
  .accordeon-bouton small { grid-column:2; }
  .situation { grid-template-columns:80px 1fr; }
  .situation p,.situation a { grid-column:2; }
  .diptyque { grid-template-columns:1fr; min-height:auto; }
  .diptyque-photo { min-height:620px; }
  .diptyque-texte { border-left:0; border-top:1px solid var(--encre); }
  .calculateur { grid-template-columns:1fr; }
  .calcul-champs { border-right:0; border-bottom:1px solid var(--encre); }
  .mosa { grid-template-rows:300px 240px; }
  .zone-grille { grid-template-columns:1fr; }
  .article { grid-column:1/9; }
  .encadre { grid-column:9/13; }
  .equipe { grid-template-columns:repeat(2,1fr); }
  .contact-mobile { position:fixed; z-index:55; display:flex; right:1rem; bottom:1rem; min-height:58px; padding:.75rem 1rem; align-items:center; background:var(--alerte); color:var(--blanc); border:1px solid var(--encre); font-weight:700; text-decoration:none; transition:background .2s ease,transform .2s ease; }
  .contact-mobile:hover { background:var(--encre); transform:translateY(-2px); }
}
@media (max-width:650px) {
  :root { --marge:1rem; }
  .entete-ligne { min-height:78px; }
  .nav { inset-block-start:78px; }
  .nav ul { grid-template-columns:1fr; }
  .hero-signature { min-height:88svh; }
  .hero-media img { object-position:68% center; }
  .hero-signature::before { background:linear-gradient(90deg,rgba(31,36,40,.98) 0%,rgba(31,36,40,.88) 48%,rgba(31,36,40,.22) 78%,transparent); }
  .hero-grille { min-height:88svh; padding-top:7rem; padding-bottom:3rem; }
  .hero-contenu { grid-column:1/13; }
  .hero-contenu h1,.page-haute h1 { max-width:100%; font-size:clamp(3.35rem,16vw,5.8rem); overflow-wrap:anywhere; hyphens:auto; }
  .hero-intro { max-width:92%; }
  .hero-actions { display:grid; max-width:92%; }
  .bouton,.bouton-clair { width:100%; }
  .hero-aides { display:none; }
  .defile-indice { display:none; }
  .section { padding-block:4.2rem; }
  .tete-section h2,.tete-section > p { grid-column:1/13; }
  .tete-section h2,.titre-grand { font-size:clamp(3rem,14vw,5rem); }
  .essentiel-grille,.ligne-chiffres { grid-template-columns:1fr; }
  .essentiel-grille > div { min-height:150px; }
  .accordeon-bouton { grid-template-columns:50px 1fr auto; }
  .accordeon-contenu { padding:1rem; }
  .aide-lignes { grid-template-columns:1fr; }
  .aide-lignes div { border-right:0; border-bottom:1px solid var(--encre); }
  .aide-lignes div:last-child { border-bottom:0; }
  .situation { grid-template-columns:55px 1fr; }
  .note-situations { grid-template-columns:1fr; }
  .diptyque-photo { min-height:500px; }
  .mosa { grid-template-columns:1fr 1fr; grid-template-rows:330px 250px 250px; }
  .mosa figure:first-child { grid-row:1/2; grid-column:1/3; }
  .mosa figure:nth-child(4) { grid-column:1/3; }
  .article,.encadre { grid-column:1/13; }
  .encadre { position:static; margin-top:2rem; }
  .equipe,.formulaire { grid-template-columns:1fr; }
  .formulaire .large { grid-column:auto; }
  .espace { grid-template-columns:1fr; }
  .espace-nav { border-right:0; border-bottom:1px solid var(--encre); }
  .historique li { grid-template-columns:1fr; }
  .pied-grille { grid-template-columns:1fr; }
  .pied-grille > :last-child { grid-column:auto; }
  .pied-fin { flex-direction:column; }
  main,.page-haute,.contenu-page,.zone-carte { max-width:100%; overflow-x:hidden; }
  .tableau { table-layout:fixed; font-size:.88rem; }
  .tableau th,.tableau td { padding:.55rem; overflow-wrap:anywhere; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.001ms !important; } .rv { opacity:1; transform:none; } .hero-media img { transform:none !important; } }

/* Pages éditoriales et modules de suivi */
.page-interne .entete {
  color: var(--encre);
  background: rgba(255,255,255,.97);
  border-bottom-color: var(--encre);
  backdrop-filter: blur(14px);
}
.page-interne .marque:hover { color: var(--bleu); }
.page-interne .nav a:hover,
.page-interne .nav a[aria-current='page'] { color: var(--alerte); border-color: var(--alerte); }
.page-interne .appel-entete:hover { background: var(--alerte); color: var(--blanc); }
.image-page { margin: 0 0 clamp(2.5rem,6vw,5rem); border: 1px solid var(--encre); overflow: hidden; background: var(--sable); }
.image-page img { width: 100%; min-height: 520px; max-height: 760px; object-fit: cover; filter: saturate(.78); transition: filter .5s ease, transform .75s ease; }
.image-page:hover img { filter: saturate(1); transform: scale(1.025); }
.triptyque-conseils { margin: 3rem 0; display: grid; grid-template-columns: repeat(3,1fr); gap: 1px; border: 1px solid var(--encre); background: var(--encre); }
.triptyque-conseils figure { margin: 0; background: var(--blanc); overflow: hidden; }
.triptyque-conseils img { width: 100%; aspect-ratio: 4/5; object-fit: cover; filter: saturate(.75); transition: filter .4s ease, scale .55s ease; }
.triptyque-conseils figure:hover img { filter: saturate(1); scale: 1.025; }
.triptyque-conseils figcaption { min-height: 110px; padding: 1rem; border-top: 1px solid var(--encre); font-weight: 700; }
#espace { margin-top: clamp(5rem,10vw,9rem); padding-top: clamp(4rem,7vw,6rem); border-top: 7px solid var(--bleu); scroll-margin-top: 110px; }
#espace > h2 { max-width: 850px; }
.espace-nav h3 { margin: 0 0 1rem; font-family: var(--titre); font-size: 1.5rem; }
.espace-contenu h3 { margin: 0 0 1rem; font-family: var(--titre); font-size: clamp(2.2rem,4vw,4.3rem); line-height: 1; }
.espace-nav button { padding: .65rem; cursor: pointer; }
.historique { margin: 2rem 0; padding: 0; list-style: none; }
.form-etape h2 { margin-top: 0; }
.nav-form .bouton,
.nav-form .bouton-clair { min-width: 190px; }
.appel-entete,.bouton,.bouton-clair,.contact-mobile,.zone-liens a,.situation a { min-height: 52px; }
.nav a,.menu-bouton,.accordeon-bouton,.espace-nav button { min-height: 48px; }
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible {
  outline: 3px solid var(--alerte);
  outline-offset: 3px;
}
.article > p { max-width: 780px; }
.article > ul,.article > ol { max-width: 760px; }
.article > ul li,.article > ol li { margin-bottom: .55rem; }
.article a:not(.bouton):not(.bouton-clair) { color: var(--alerte); font-weight: 700; transition: color .2s ease, text-decoration-thickness .2s ease; }
.article a:not(.bouton):not(.bouton-clair):hover { color: var(--bleu); text-decoration-thickness: 2px; }
.tableau tbody tr { transition: background .2s ease, color .2s ease; }
.tableau tbody tr:hover { background: var(--bleu); color: var(--blanc); }
.page-haute .sur { color: var(--bleu); }
.page-haute::after { content: ''; display: block; width: min(100%,var(--max)); height: 1px; margin: 3rem auto 0; background: var(--encre); transform-origin: left; animation: ligne 1s ease both; }
.encadre .bouton { width: 100%; margin-top: .8rem; }
.encadre ul { padding-left: 1.1rem; }
.encadre li { margin-bottom: .6rem; }
.alerte-info { transition: background .2s ease, color .2s ease; }
.alerte-info:hover { background: var(--sable); color: var(--encre); }
.form-etape { animation: apparitionEtape .35s ease both; }
.espace-contenu { animation: apparitionEspace .5s ease both; }
.triptyque-conseils figure:nth-child(2) { transform: translateY(1.5rem); }
.triptyque-conseils figure:nth-child(3) { transform: translateY(3rem); }
@keyframes apparitionEtape { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: translateX(0); } }
@keyframes apparitionEspace { from { opacity: .4; } to { opacity: 1; } }
@keyframes soulevement { from { transform: translateY(0); } to { transform: translateY(-3px); } }
@media (max-width:900px) {
  .image-page img { min-height: 420px; }
  .triptyque-conseils { grid-template-columns: 1fr 1fr; }
  .triptyque-conseils figure:nth-child(3) { grid-column: 1/3; transform: none; }
  .triptyque-conseils figure:nth-child(2) { transform: none; }
}
@media (max-width:650px) {
  .image-page img { min-height: 310px; }
  .triptyque-conseils { grid-template-columns: 1fr; }
  .triptyque-conseils figure:nth-child(3) { grid-column: auto; }
  .triptyque-conseils figcaption { min-height: auto; }
  .nav-form { display: grid; }
  .nav-form .bouton,.nav-form .bouton-clair { width: 100%; min-width: 0; }
  .page-interne .page-haute { padding-top: 8.5rem; }
}
