@layer socle, modele;
@layer socle {
@font-face {
 font-family: 'Fraunces';
 font-style: normal;
 font-weight: 400;
 font-display: swap;
 src: url('fonts/fraunces-400-latin-ext.woff2') format('woff2');
 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
 font-family: 'Fraunces';
 font-style: normal;
 font-weight: 400;
 font-display: swap;
 src: url('fonts/fraunces-400-latin.woff2') format('woff2');
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
 font-family: 'Fraunces';
 font-style: normal;
 font-weight: 700;
 font-display: swap;
 src: url('fonts/fraunces-700-latin-ext.woff2') format('woff2');
 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
 font-family: 'Fraunces';
 font-style: normal;
 font-weight: 700;
 font-display: swap;
 src: url('fonts/fraunces-700-latin.woff2') format('woff2');
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
 font-family: 'Nunito Sans';
 font-style: normal;
 font-weight: 400;
 font-display: swap;
 src: url('fonts/nunito-sans-400-latin-ext.woff2') format('woff2');
 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
 font-family: 'Nunito Sans';
 font-style: normal;
 font-weight: 400;
 font-display: swap;
 src: url('fonts/nunito-sans-400-latin.woff2') format('woff2');
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
 font-family: 'Nunito Sans';
 font-style: normal;
 font-weight: 700;
 font-display: swap;
 src: url('fonts/nunito-sans-700-latin-ext.woff2') format('woff2');
 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
 font-family: 'Nunito Sans';
 font-style: normal;
 font-weight: 700;
 font-display: swap;
 src: url('fonts/nunito-sans-700-latin.woff2') format('woff2');
 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
:root {
 --fond: #16110d;
 --surface: #211a14;
 --texte: #f5efe6;
 --texte-faible: #ada291;
 --primaire: #c9992e;
 --accent: #c07a52;
 --bordure: #2f251c;
 --primaire-appui: #d3ac56;
 --accent-appui: #cc9473;
 --primaire-texte: #c9992e;
 --primaire-texte-appui: #d3ac56;
 --primaire-voile: #241c10;
 --primaire-voile-fort: #332712;
 --accent-voile: #271c14;
 --surface-appui: #2b241d;
 --surface-creuse: #1f1a16;
 --bordure-douce: #211a14;
 --bordure-forte: #746c63;
 --sur-primaire: #16110d;
 --sur-accent: #16110d;
 --sur-primaire-appui: #16110d;
 --sur-accent-appui: #16110d;
 --encre: #e3ddd5;
 --sur-encre: #16110d;
 --police-titres: 'Fraunces', Palatino, 'Palatino Linotype', 'Book Antiqua', Georgia, serif;
 --police-corps: 'Nunito Sans', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
 --corps: 1.000rem;
 --h1: clamp(2.520rem, 1.800rem + 3.600vw, 5.040rem);
 --h2: clamp(1.920rem, 1.577rem + 1.714vw, 3.120rem);
 --h3: clamp(1.440rem, 1.337rem + 0.514vw, 1.800rem);
 --petit: clamp(0.820rem, 0.804rem + 0.079vw, 0.875rem);
 --surtitre: clamp(0.720rem, 0.703rem + 0.086vw, 0.780rem);
 --poids-corps: 400;
 --poids-appui: 700;
 --poids-titre: 700;
 --lettrage-titre: -0.005em;
 --casse-titres: none;
 --casse-menu: none;
 --casse-bouton: none;
 --rayon-bouton: var(--rayon-l);
 --ico-echelle: 1.25;
 --lettrage-surtitre: 0.1em;
 --entete-max: 6.5rem;
 --interligne-corps: 1.65;
 --interligne-titre: 1.15;
 --interligne-h1: 1.05;
 --mesure: 58ch;
 --mesure-courte: 48ch;
 --espace-3xs: 0.297rem;
 --espace-2xs: 0.445rem;
 --espace-xs: 0.594rem;
 --espace-s: clamp(0.802rem, 0.776rem + 0.127vw, 0.891rem);
 --espace-m: clamp(0.891rem, 0.806rem + 0.424vw, 1.188rem);
 --espace-l: clamp(1.247rem, 1.094rem + 0.763vw, 1.781rem);
 --espace-xl: clamp(1.472rem, 1.215rem + 1.289vw, 2.375rem);
 --espace-2xl: clamp(1.853rem, 1.364rem + 2.443vw, 3.563rem);
 --espace-3xl: clamp(2.138rem, 1.391rem + 3.732vw, 4.750rem);
 --espace-4xl: clamp(2.708rem, 1.445rem + 6.311vw, 7.125rem);
 --espace: clamp(0.891rem, 0.806rem + 0.424vw, 1.188rem);
 --rayon-xs: 7px;
 --rayon: 13px;
 --rayon-l: 23px;
 --rayon-xl: 36px;
 --rayon-rond: 999px;
 --ombre-1: 0 1px 2px rgba(245, 239, 230, 0.030), 0 1px 3px rgba(245, 239, 230, 0.048);
 --ombre-2: 0 2px 4px rgba(245, 239, 230, 0.024), 0 10px 24px rgba(245, 239, 230, 0.054);
 --ombre-3: 0 6px 12px rgba(245, 239, 230, 0.030), 0 24px 56px rgba(245, 239, 230, 0.078);
 --duree-vive: 120ms;
 --duree: 220ms;
 --duree-ample: 420ms;
 --courbe: cubic-bezier(0.22, 0.7, 0.3, 1);
 --plan-decor: 0;
 --plan-media: 1;
 --plan-voile: 2;
 --plan-contenu: 3;
 --plan-flottant: 10;
 --plan-entete: 100;
 --voile: #f5efe6;
 --voile-opacite: 0.72;
 --sur-voile: #16110d;
 --largeur-site: 81rem;
 --rythme: 5;
 --grille-min: 25rem;
 --galerie-min: 18rem;
 --titre-echelle: 1.45;
 --largeur: var(--largeur-site);
}
*, *::before, *::after { box-sizing: border-box; }
@view-transition { navigation: auto; }
header { view-transition-name: entete; }
main { view-transition-name: contenu; }
::view-transition-old(contenu) {
 animation: sortie-page var(--duree-vive) var(--courbe) both;
}
::view-transition-new(contenu) {
 animation: entree-page var(--duree) var(--courbe) both;
}
@keyframes sortie-page { to { opacity: 0; transform: translateY(-8px); } }
@keyframes entree-page { from { opacity: 0; transform: translateY(12px); } }
html { scroll-behavior: smooth; overflow-x: clip; }
body { overflow-x: clip; }
body {
 margin: 0;
 background: var(--fond);
 color: var(--texte);
 font: var(--poids-corps) var(--corps)/var(--interligne-corps) var(--police-corps);
 -webkit-font-smoothing: antialiased;
}
h1, h2, h3 {
 font-family: var(--police-titres); font-weight: var(--poids-titre);
 line-height: var(--interligne-titre); letter-spacing: var(--lettrage-titre);
 text-transform: var(--casse-titres);
 text-wrap: balance; margin: 0 0 .45em;
}
h1 { font-size: var(--h1); line-height: var(--interligne-h1); }
h2 { font-size: var(--h2); }
h3 { font-size: var(--h3); letter-spacing: normal; }
p { text-wrap: pretty; }
a { color: var(--primaire-texte); text-underline-offset: .18em; text-decoration-thickness: .07em;
 transition: color var(--duree-vive) var(--courbe); }
a:where(:not(.bouton)):hover { color: var(--primaire-texte-appui); }
.banniere {
 position: fixed; z-index: var(--plan-flottant);
 left: var(--espace-s); bottom: var(--espace-s);
 max-width: min(32rem, calc(100vw - var(--espace-l)));
 margin: 0; padding: var(--espace-2xs) var(--espace-s);
 border: 1px solid var(--bordure-douce); border-radius: var(--rayon-rond);
 background: color-mix(in srgb, var(--surface) 88%, transparent);
 backdrop-filter: blur(10px);
 box-shadow: var(--ombre-2);
 color: var(--texte-faible); font-size: var(--surtitre); line-height: 1.45;
}
header {
 position: sticky; top: 0; z-index: var(--plan-entete);
 background: color-mix(in srgb, var(--fond) 82%, transparent);
 backdrop-filter: blur(14px) saturate(140%);
 border-bottom: 1px solid var(--bordure-douce);
}
.entete {
 max-width: max(var(--largeur-site), min(88rem, 100%));
 margin: 0 auto;
 display: flex; flex-wrap: nowrap; align-items: center; gap: var(--espace-m);
 padding: var(--espace-s) max(var(--espace), env(safe-area-inset-left));
}
.entete > .marque { flex: none; white-space: nowrap; }
.entete > .nav-action { flex: none; }
.entete > .entete-tel { flex: none; white-space: nowrap;
 display: inline-flex; align-items: center; gap: .4em;
 font-weight: var(--poids-appui); color: var(--texte); }
.entete > .entete-tel:hover { color: var(--primaire-texte); }
a[href^="tel:"] { white-space: nowrap; }
nav[aria-label="Navigation principale"] {
 display: flex; flex-wrap: nowrap; align-items: center;
 gap: var(--espace-2xs) var(--espace-xs); margin-left: auto;
 min-width: 0; overflow-x: auto; scrollbar-width: none;
 font-size: var(--petit); white-space: nowrap;
}
nav[aria-label="Navigation principale"]::-webkit-scrollbar { display: none; }
nav a { font-weight: var(--poids-corps); text-transform: var(--casse-menu); }
.nav-action { font-weight: var(--poids-appui); }
nav[aria-label="Navigation principale"] a {
 position: relative; color: var(--texte); padding-block: var(--espace-3xs);
 transition: color var(--duree-vive) var(--courbe);
}
nav[aria-label="Navigation principale"] a::after {
 content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
 border-radius: 2px; background: var(--primaire);
 transform: scaleX(0); transform-origin: left;
 transition: transform var(--duree) var(--courbe);
}
nav[aria-label="Navigation principale"] a:hover { color: var(--primaire-texte); }
nav[aria-label="Navigation principale"] a[aria-current="page"] { color: var(--primaire-texte); }
nav[aria-label="Navigation principale"] a:hover::after,
nav[aria-label="Navigation principale"] a[aria-current="page"]::after { transform: scaleX(1); }
.entete .nav-action { margin-top: 0; padding: .45em 1.05em; }
.nav-action::after { display: none; }
[id] { scroll-margin-top: 5.5rem; }
:root { --retrait-colonne: max(var(--espace), calc(50vw - 50%)); }
main { max-width: var(--largeur); margin: 0 auto; padding: calc(var(--espace) * 2) var(--espace);
 padding-left: max(var(--espace), env(safe-area-inset-left));
 padding-right: max(var(--espace), env(safe-area-inset-right)); }
section { padding-block: calc(var(--espace) * var(--rythme) / 2); }
h1 { font-size: calc(var(--h1) * var(--titre-echelle));
 letter-spacing: max(-0.04em, calc(var(--lettrage-titre) * 2.5)); }
h2 { font-size: calc(var(--h2) * var(--titre-echelle));
 letter-spacing: max(-0.03em, calc(var(--lettrage-titre) * 1.6)); }
.fil { font-size: var(--petit); color: var(--texte-faible); }
.fil a { color: var(--texte-faible); }
.fil a:hover { color: var(--primaire-texte); }
.chapeau { font-size: calc(var(--corps) * 1.2); line-height: 1.5;
 color: var(--texte-faible); max-width: var(--mesure); }
p { max-width: min(var(--mesure), 100%); }
img { max-width: 100%; height: auto; }
.marque { display: inline-flex; align-items: center; gap: .55em; margin: 0;
 text-decoration: none; color: var(--texte); font-family: var(--police-titres);
 font-weight: var(--poids-titre); font-size: calc(var(--corps) * 1.15);
 letter-spacing: var(--lettrage-titre); line-height: 1.2;
 transition: opacity var(--duree-vive) var(--courbe); }
.marque:hover { opacity: .72; }
.marque img { max-height: 2.4rem; width: auto; }
.marque-plaque img { background: #fff; padding: .3em .45em; border-radius: var(--rayon-xs); }
.hero { position: relative; isolation: isolate;
 padding: calc(var(--espace) * 2) 0; border-bottom: 1px solid var(--bordure);
 display: grid; gap: calc(var(--espace) * 1.5); align-items: center; }
.hero:has(.hero-image) { grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); }
.hero-texte { position: relative; z-index: var(--plan-contenu); }
.hero-image { position: relative; z-index: var(--plan-media);
 width: 100%; border-radius: var(--rayon-xl); object-fit: cover;
 box-shadow: var(--ombre-2); }
.hero-couverture { grid-template-columns: 1fr !important;
 margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
 padding: calc(var(--espace) * 6) var(--retrait-colonne);
 border-bottom: 0; min-height: 60svh; align-content: end; color: var(--sur-voile); }
.hero-couverture .hero-image { position: absolute; inset: 0; z-index: var(--plan-media);
 width: 100%; height: 100%; border-radius: 0; object-fit: cover; }
.hero-couverture::before { content: ""; position: absolute; inset: 0;
 z-index: var(--plan-voile); opacity: var(--voile-opacite);
 background: linear-gradient(to top, var(--voile) 30%, transparent 100%), var(--voile); }
.hero-couverture::after { content: ""; position: absolute; z-index: var(--plan-voile);
 left: 0; bottom: 0; width: min(28rem, 45%); height: 45%;
 background: var(--primaire); opacity: .35;
 clip-path: polygon(0 0, 100% 22%, 100% 100%, 0 100%); }
main:has(> .hero-couverture:first-child) { padding-top: 0; }
.hero-couverture .hero-texte { color: var(--sur-voile); }
.hero-couverture .chapeau { color: var(--sur-voile); opacity: .92; }
.hero-couverture .bouton { background: var(--sur-voile); color: var(--voile); }
.hero-couverture .bouton:hover { background: var(--sur-voile); color: var(--voile);
 filter: brightness(.92); }
.bouton {
 display: inline-flex; align-items: center; gap: .5em; margin-top: var(--espace);
 padding: .75em 1.5em; border-radius: var(--rayon-bouton);
 background: var(--primaire); color: var(--sur-primaire);
 text-decoration: none; font: inherit; font-weight: var(--poids-appui);
 text-transform: var(--casse-bouton);
 border: 0; cursor: pointer; box-shadow: var(--ombre-1);
 transition: background var(--duree-vive) var(--courbe),
 box-shadow var(--duree) var(--courbe),
 transform var(--duree-vive) var(--courbe);
}
.bouton:hover { background: var(--primaire-appui); color: var(--sur-primaire-appui);
 box-shadow: var(--ombre-2); transform: translateY(-1px); }
.bouton:active { transform: translateY(0); box-shadow: var(--ombre-1); }
section { container-type: inline-size; }
.grille { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--espace);
 --colonnes-grille: 99;
 grid-template-columns: repeat(auto-fit, minmax(min(max(var(--grille-min),
 (100% - (var(--colonnes-grille) - 1) * var(--espace)) / var(--colonnes-grille)),
 100%), 1fr)); }
.grille:has(> :nth-child(2):last-child) { --colonnes-grille: 2; }
.grille:has(> :nth-child(3):last-child) { --colonnes-grille: 3; }
.grille:has(> :nth-child(4):last-child) { --colonnes-grille: 4; }
.grille:has(> :nth-child(5):last-child) { --colonnes-grille: 3; }
.grille:has(> :nth-child(6):last-child) { --colonnes-grille: 3; }
.grille:has(> :nth-child(7):last-child) { --colonnes-grille: 4; }
.grille:has(> :nth-child(8):last-child) { --colonnes-grille: 4; }
.grille:has(> :nth-child(9):last-child) { --colonnes-grille: 3; }
.grille:has(> :nth-child(10):last-child) { --colonnes-grille: 4; }
.grille:has(> :nth-child(11):last-child) { --colonnes-grille: 4; }
.grille:has(> :nth-child(12):last-child) { --colonnes-grille: 4; }
@container (max-width: 32rem) {
 .grille { grid-template-columns: 1fr; }
 .chiffres { grid-template-columns: repeat(2, 1fr); }
 .citations { grid-template-columns: 1fr; }
}
@container (max-width: 20rem) {
 .chiffres { grid-template-columns: 1fr; }
}
@container (max-width: 79rem) { .grille:has(> :nth-child(3):last-child) { grid-template-columns: 1fr; } }
@container (max-width: 79rem) { .grille:has(> :nth-child(5):last-child) { grid-template-columns: 1fr; } }
@container (max-width: 79rem) { .grille:has(> :nth-child(9):last-child) { grid-template-columns: 1fr; } }
@container (max-width: 79rem) { .grille:has(> :nth-child(11):last-child) { grid-template-columns: 1fr; } }
.carte { padding: var(--espace); border: 0;
 border-radius: var(--rayon-l); background: var(--surface); overflow: hidden;
 transition: transform var(--duree) var(--courbe),
 box-shadow var(--duree) var(--courbe),
 border-color var(--duree) var(--courbe); }
.carte:hover { transform: translateY(-3px); box-shadow: var(--ombre-2);
 border-color: var(--bordure); }
.carte p { display: -webkit-box; -webkit-box-orient: vertical;
 -webkit-line-clamp: 4; line-clamp: 4; overflow: hidden; }
.carte { display: flex; flex-direction: column; }
.carte > :last-child { margin-bottom: 0; }
.reprise-matiere { display: grid; gap: var(--espace-l);
 padding-top: var(--espace-l); border-top: 1px solid var(--bordure-douce); }
.reprise-entree { max-width: var(--mesure); }
.reprise-entree h3 { margin: 0 0 var(--espace-2xs); font-size: var(--h3); }
.reprise-entree p { margin: 0; }
.document { display: inline-flex; align-items: center; gap: var(--espace-2xs);
 text-decoration: none; font-weight: var(--poids-appui); }
.document-format { padding: .12em .5em; border-radius: var(--rayon-xs);
 background: var(--primaire-voile); color: var(--primaire-texte);
 font-size: var(--surtitre); letter-spacing: var(--lettrage-surtitre);
 text-transform: uppercase; }
.document-poids { color: var(--texte-faible); font-weight: var(--poids-corps);
 font-size: var(--petit); }
.nav-document .document-format { background: var(--surface-creuse); }
.liste-documents { list-style: none; padding: 0; display: grid;
 gap: var(--espace-s); }
.image-absente {
 display: grid; place-items: center;
 width: 100%; margin: 0 0 var(--espace);
 border: 1px solid var(--bordure); border-radius: var(--rayon-l);
 background:
 linear-gradient(160deg,
 color-mix(in srgb, var(--primaire) 8%, var(--surface)) 0%,
 var(--surface-creuse) 70%);
 color: var(--texte-faible);
}
.image-absente--4-3 { aspect-ratio: 4 / 3; }
.image-absente--16-10 { aspect-ratio: 16 / 10; }
.image-absente--1-1 { aspect-ratio: 1 / 1; }
.image-absente--3-4 { aspect-ratio: 3 / 4; }
.carte .image-absente { width: calc(100% + 2 * var(--espace));
 margin: calc(-1 * var(--espace)) calc(-1 * var(--espace)) var(--espace); }
.image-absente-mention {
 padding: .3em .8em; border-radius: var(--rayon-rond);
 background: var(--fond);
 font-size: var(--petit); font-weight: var(--poids-appui);
 letter-spacing: var(--lettrage-surtitre); text-transform: uppercase;
}
.duo { display: grid; gap: var(--espace-l); align-items: center; }
.duo-image, .duo .image-absente { width: 100%; border-radius: var(--rayon-l); }
.duo-image { display: block; height: auto; aspect-ratio: 4 / 3; object-fit: cover; }
@media (min-width: 60rem) {
 .duo { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
 .duo.duo-inverse .duo-image, .duo.duo-inverse .image-absente { order: -1; }
}
.carte { --carte-rapport: 4 / 3; }
.carte img { display: block; width: calc(100% + 2 * var(--espace));
 margin: calc(-1 * var(--espace)) calc(-1 * var(--espace)) var(--espace);
 aspect-ratio: var(--carte-rapport); max-height: 14rem; object-fit: cover;
 transition: transform var(--duree-ample) var(--courbe); }
.carte:hover img { transform: scale(1.035); }
.galerie { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--espace);
 grid-template-columns: repeat(6, minmax(0, 1fr));
 container-type: inline-size; }
.galerie > li { grid-column: span 6; }
@container (min-width: 37.5rem) { .galerie > li { grid-column: span 3; grid-row: auto; } }
@container (min-width: 57rem) { .galerie > li { grid-column: span 2; grid-row: auto; } }
@container (min-width: 115.5rem) { .galerie > li { grid-column: span 1; grid-row: auto; } }
.galerie > li { overflow: hidden; border-radius: var(--rayon-l); }
.galerie img { display: block; width: 100%; aspect-ratio: 4 / 3;
 object-fit: cover; border-radius: var(--rayon-l);
 transition: transform var(--duree-ample) var(--courbe); }
.galerie > li:hover img { transform: scale(1.05); }
.pleine-largeur { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
 padding-inline: var(--retrait-colonne); }
.cadre { aspect-ratio: 4 / 3; border: 0; border-radius: var(--rayon-l);
 background: linear-gradient(135deg, var(--primaire-voile), var(--surface-creuse)); }
.appel, .avis { margin-block: var(--espace-l); }
.appel { padding: var(--espace-xl) var(--espace-l); border-radius: var(--rayon-xl);
 border: 1px solid var(--bordure-douce); background: var(--primaire-voile);
 display: grid; justify-items: center; text-align: center; gap: var(--espace-s); }
.appel h2 { margin: 0; max-width: 34ch; text-wrap: balance;
 font-size: clamp(calc(var(--h2) * var(--titre-echelle)), 7cqi,
 calc(var(--h2) * var(--titre-echelle) * 1.25)); }
.appel p { margin: 0; max-width: var(--mesure-courte);
 font-size: calc(var(--corps) * 1.15); line-height: 1.55; text-wrap: pretty; }
@container (min-width: 30rem) {
 .appel p { text-align: justify; text-align-last: center; hyphens: auto; }
}
.appel .bouton { margin-top: var(--espace-xs);
 font-size: calc(var(--corps) * 1.05); padding: .85em 1.9em; }
.avis { display: grid; justify-items: center; text-align: center;
 gap: var(--espace-2xs);
 padding: var(--espace-xl) var(--espace-l); border-radius: var(--rayon-xl);
 border: 1px solid var(--bordure-douce); background: var(--surface); }
.avis h2 { margin: 0 0 var(--espace-2xs); }
.avis-note { margin: 0; display: flex; align-items: baseline; gap: .35em; }
.avis-note strong { font-family: var(--police-titres); line-height: 1;
 font-size: calc(var(--h1) * var(--titre-echelle));
 letter-spacing: var(--lettrage-titre); color: var(--primaire); }
.avis-sur { font-size: var(--petit); color: var(--texte-faible);
 text-transform: uppercase; letter-spacing: var(--lettrage-surtitre); }
.avis-etoiles { margin: 0; display: flex; gap: .18em; }
.avis-etoiles i { width: 1.1em; height: 1.1em; background: var(--bordure-forte);
 clip-path: polygon(50% 0%, 61% 35%, 98% 35%, 68% 57%, 79% 91%,
 50% 70%, 21% 91%, 32% 57%, 2% 35%, 39% 35%); }
.avis-etoiles[data-pleines="1"] i:nth-child(-n+1),
.avis-etoiles[data-pleines="2"] i:nth-child(-n+2),
.avis-etoiles[data-pleines="3"] i:nth-child(-n+3),
.avis-etoiles[data-pleines="4"] i:nth-child(-n+4),
.avis-etoiles[data-pleines="5"] i:nth-child(-n+5) { background: var(--primaire); }
.avis-compte { margin: 0; font-size: var(--petit); color: var(--texte-faible); }
.urgence { display: grid; gap: var(--espace-s); justify-items: center;
 text-align: center;
 padding: var(--espace-xl) var(--espace-l); border-radius: var(--rayon-xl);
 border: 1px solid var(--bordure-douce); background: var(--primaire-voile); }
.urgence h2 { margin: 0; display: flex; align-items: center; justify-content: center;
 gap: .5em; font-size: calc(var(--h2) * var(--titre-echelle)); }
.urgence p { margin: 0; max-width: var(--mesure-courte); }
.urgence .bouton { margin-top: 0; font-size: calc(var(--corps) * 1.1);
 padding: .9em 2em; }
@media (max-width: 30rem) {
 .urgence { justify-items: stretch; }
 .urgence .bouton { text-align: center; justify-content: center; }
}
.manifeste { container-type: inline-size;
 padding-block: calc(var(--espace) * 3); }
.manifeste-phrase { max-width: 24ch; margin: 0;
 font-size: min(calc(var(--h1) * .92), 8cqi); line-height: 1.08;
 letter-spacing: var(--lettrage-titre); text-wrap: balance; }
.manifeste p { margin-top: var(--espace-l); color: var(--texte-faible); }
.fiche { padding: var(--espace-l);
 background: var(--surface-creuse); border-radius: var(--rayon-l); }
.fiche h2 { display: flex; align-items: center; gap: .5em; }
.coordonnees { list-style: none; margin: var(--espace) 0 0; padding: 0;
 display: flex; flex-wrap: wrap; gap: var(--espace); font-weight: var(--poids-appui); }
.coordonnees a { text-decoration: none; }
.coordonnees a:hover { text-decoration: underline; }
.chiffres { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--espace);
 grid-template-columns: repeat(auto-fit, minmax(9rem, 1fr)); text-align: center; }
.chiffres li { padding: var(--espace-l) var(--espace); border: 0;
 border-radius: var(--rayon-l); background: var(--primaire-voile);
 transition: transform var(--duree) var(--courbe); }
.chiffres li:hover { transform: translateY(-2px); }
.chiffres strong { display: block; font-family: var(--police-titres);
 font-size: calc(var(--h2) * var(--titre-echelle)); line-height: 1.05;
 letter-spacing: var(--lettrage-titre); color: var(--primaire); }
.chiffres span { display: block; margin-top: .3em; font-size: var(--surtitre);
 text-transform: uppercase; letter-spacing: var(--lettrage-surtitre);
 font-weight: var(--poids-appui); color: var(--texte-faible); }
.citations { display: grid; gap: var(--espace);
 grid-template-columns: repeat(auto-fit, minmax(18rem, 1fr)); }
.citations figure { margin: 0; }
.citations blockquote { margin: 0; padding: var(--espace-l);
 border: 0; border-radius: var(--rayon-l); background: var(--surface);
 box-shadow: var(--ombre-1); font-size: calc(var(--corps) * 1.05);
 line-height: 1.55; }
.partenaires { list-style: none; margin: 0; padding: 0; display: flex;
 flex-wrap: wrap; align-items: center; gap: calc(var(--espace) * 1.5); }
.partenaires img { max-height: 3.5rem; width: auto;
 transition: transform var(--duree) var(--courbe); }
.partenaires li:hover img { transform: scale(1.06); }
.requis { color: var(--primaire-texte); font-weight: var(--poids-appui); }
.consentement { margin: 0; padding-top: var(--espace-2xs);
 border-top: 1px solid var(--bordure-douce); }
.consentement label { display: flex; gap: var(--espace-xs); align-items: flex-start;
 font-weight: var(--poids-corps); font-size: var(--petit); line-height: 1.5;
 color: var(--texte-faible); cursor: pointer; }
.consentement input { width: 1.15em; height: 1.15em; margin: .15em 0 0; flex: none;
 accent-color: var(--primaire); cursor: pointer; }
.consentement label:hover { color: var(--texte); }
.formulaire { display: grid; gap: var(--espace-s) var(--espace);
 grid-template-columns: 1fr; max-width: min(100%, 44rem); margin-inline: auto; }
@container (min-width: 34rem) {
 .formulaire { grid-template-columns: 1fr 1fr; }
}
.champ { display: grid; gap: .35em; align-content: start; }
.champ-large, .formulaire .consentement, .formulaire .bouton,
.formulaire .mention { grid-column: 1 / -1; }
.formulaire label { display: block; font-size: var(--petit);
 font-weight: var(--poids-appui); }
.formulaire input, .formulaire textarea {
 padding: .7em .8em; border: 1px solid var(--bordure-forte); border-radius: var(--rayon);
 background: var(--surface); color: var(--texte); font: inherit;
 transition: border-color var(--duree-vive) var(--courbe),
 box-shadow var(--duree-vive) var(--courbe);
}
.formulaire input:hover, .formulaire textarea:hover { border-color: var(--bordure-forte); }
.formulaire input:focus, .formulaire textarea:focus {
 outline: 0; border-color: var(--primaire);
 box-shadow: 0 0 0 3px var(--primaire-voile-fort);
}
.formulaire .bouton { justify-self: start; }
details { border-bottom: 1px solid var(--bordure-douce); padding: var(--espace-s) 0; }
summary { cursor: pointer; font-weight: var(--poids-appui); padding: var(--espace-2xs) 0;
 transition: color var(--duree-vive) var(--courbe); }
summary:hover, details[open] summary { color: var(--primaire-texte); }
.suite ul { list-style: none; margin: 0; padding: 0; display: grid;
 gap: var(--espace-s);
 --colonnes-suite: 99;
 grid-template-columns: repeat(auto-fit, minmax(min(max(15rem,
 (100% - (var(--colonnes-suite) - 1) * var(--espace-s)) / var(--colonnes-suite)),
 100%), 1fr)); }
.suite a { display: flex; align-items: center; justify-content: space-between;
 gap: var(--espace-s); height: 100%;
 padding: var(--espace-s) var(--espace);
 border: 0; border-radius: var(--rayon-l);
 background: var(--surface); color: var(--texte); text-decoration: none;
 font-weight: var(--poids-appui); box-shadow: var(--ombre-1);
 transition: background var(--duree-vive) var(--courbe),
 box-shadow var(--duree) var(--courbe),
 transform var(--duree-vive) var(--courbe),
 color var(--duree-vive) var(--courbe); }
.suite a::after { content: ""; flex: none; width: .45em; height: .45em;
 border-top: 2px solid currentColor; border-right: 2px solid currentColor;
 transform: rotate(45deg);
 transition: transform var(--duree-vive) var(--courbe); }
.suite a:hover { background: var(--primaire-voile); color: var(--primaire-texte);
 box-shadow: var(--ombre-2); transform: translateY(-2px); }
.suite a:hover::after { transform: rotate(45deg) translate(.15em, -.15em); }
.suite ul:has(> :nth-child(2):last-child) { --colonnes-suite: 2; }
.suite ul:has(> :nth-child(3):last-child) { --colonnes-suite: 3; }
.suite ul:has(> :nth-child(4):last-child) { --colonnes-suite: 4; }
.suite ul:has(> :nth-child(5):last-child) { --colonnes-suite: 3; }
.suite ul:has(> :nth-child(6):last-child) { --colonnes-suite: 3; }
.suite ul:has(> :nth-child(7):last-child) { --colonnes-suite: 4; }
.suite ul:has(> :nth-child(8):last-child) { --colonnes-suite: 4; }
.suite ul:has(> :nth-child(9):last-child) { --colonnes-suite: 3; }
.suite ul:has(> :nth-child(10):last-child) { --colonnes-suite: 4; }
.suite ul:has(> :nth-child(11):last-child) { --colonnes-suite: 4; }
.suite ul:has(> :nth-child(12):last-child) { --colonnes-suite: 4; }
@container (max-width: 30rem) {
 .suite ul { grid-template-columns: 1fr; }
}
footer { border-top: 1px solid var(--bordure-douce); background: var(--surface-creuse);
 padding: var(--espace-2xl) var(--espace);
 padding-bottom: calc(var(--espace-2xl) + 2.5rem); }
.pied { max-width: var(--largeur-site); margin: 0 auto; display: grid;
 gap: var(--espace-l) var(--espace-xl);
 grid-template-columns: repeat(auto-fit, minmax(min(14rem, 100%), 1fr));
 align-items: start; }
.pied-marque { display: grid; gap: var(--espace-xs); justify-items: start; }
footer nav { display: grid; gap: var(--espace-2xs); margin: 0; }
footer nav a { color: var(--texte-faible); font-weight: var(--poids-corps); }
footer nav a:hover { color: var(--primaire-texte); }
.pied-titre { margin: 0 0 var(--espace-xs); font-size: var(--surtitre);
 text-transform: uppercase; letter-spacing: var(--lettrage-surtitre);
 font-weight: var(--poids-appui); color: var(--texte-faible); }
.pied-bas { grid-column: 1 / -1; margin: var(--espace-s) 0 0;
 padding-top: var(--espace); border-top: 1px solid var(--bordure-douce); }
.pied .coordonnees { display: grid; gap: var(--espace-2xs); }
@media (max-width: 46rem) { .pied { grid-template-columns: 1fr; } }
.mention { color: var(--texte-faible); font-size: var(--petit); }
[data-remplissage]::after {
 content: "à rédiger"; display: inline-block; margin-left: .5em;
 padding: .1em .65em; border-radius: var(--rayon-rond);
 background: var(--accent-voile); color: var(--accent-appui);
 font-family: var(--police-corps); font-size: var(--surtitre);
 font-weight: var(--poids-appui); font-style: normal;
 letter-spacing: .02em; vertical-align: .1em;
}
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; border-radius: 2px; }
.evitement { position: absolute; left: -9999px; top: 0;
 z-index: var(--plan-entete); padding: .6em 1em; border-radius: 0 0 var(--rayon) 0;
 background: var(--primaire); color: var(--sur-primaire);
 text-decoration: none; font-weight: var(--poids-appui); }
.evitement:focus { left: 0; }
@supports (animation-timeline: view()) {
 @media (prefers-reduced-motion: no-preference) {
 main > section:not(.hero) {
 animation: apparait linear both;
 animation-timeline: view();
 animation-range: entry 0% entry 40%;
 }
 }
}
@keyframes apparait {
 from { opacity: 0; transform: translateY(16px); }
 to { opacity: 1; transform: none; }
}
@media (prefers-reduced-motion: reduce) {
 *, *::before, *::after {
 animation-duration: .01ms !important; animation-iteration-count: 1 !important;
 transition-duration: .01ms !important; scroll-behavior: auto !important;
 }
 ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) {
 animation: none !important;
 }
}
@media (min-width: 60rem) {
 .hero.v-hero-plein-ecran:not(.hero-couverture) {
 grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
 .hero.v-hero-plein-ecran { min-block-size: calc(100svh - var(--entete-max));
 align-content: center; }
 .hero.v-hero-plein-ecran .hero-image { max-height: none; max-block-size: 52svh;
 block-size: 100%; object-fit: cover; }
}
@media (min-width: 60rem) {
 .hero.v-hero-image-a-gauche:not(.hero-couverture) {
 grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: center; }
 .hero.v-hero-image-a-gauche:not(.hero-couverture) .hero-image { order: -1; }
}
.v-hero-chevauchement .hero-image { max-height: none; aspect-ratio: 4 / 5;
 border-radius: var(--rayon-l); }
@media (min-width: 60rem) {
 .v-hero-chevauchement { align-items: center; }
 .v-hero-chevauchement .hero-texte { position: relative; z-index: var(--plan-contenu);
 margin-inline-start: calc(var(--espace-2xl) * -1);
 padding: var(--espace-xl); border-radius: var(--rayon-xl);
 background: var(--fond); color: var(--texte); box-shadow: var(--ombre-2); }
}
@media (min-width: 60rem) {
 .v-duo-texte-large { grid-template-columns: minmax(0, 1.62fr) minmax(0, 1fr); }
 .v-duo-texte-large.duo-inverse { grid-template-columns: minmax(0, 1fr) minmax(0, 1.62fr); }
}
@media (min-width: 60rem) {
 .v-duo-image-large { grid-template-columns: minmax(0, 1fr) minmax(0, 1.62fr); }
 .v-duo-image-large.duo-inverse { grid-template-columns: minmax(0, 1.62fr) minmax(0, 1fr); }
}
@media (min-width: 60rem) {
 .v-duo-superpose { align-items: center; }
 .v-duo-superpose .duo-texte { position: relative; z-index: var(--plan-contenu);
 margin-inline-end: calc(var(--espace-2xl) * -1);
 padding: var(--espace-l); border-radius: var(--rayon-xl);
 background: var(--fond); color: var(--texte); box-shadow: var(--ombre-2); }
 .v-duo-superpose.duo-inverse .duo-texte { margin-inline-end: 0;
 margin-inline-start: calc(var(--espace-2xl) * -1); }
 .v-duo-superpose .duo-image { aspect-ratio: 4 / 5; }
}
.v-texte-colonnes p { max-width: none; }
@media (min-width: 60rem) {
 .v-texte-colonnes { columns: 2; column-gap: calc(var(--espace) * 2); }
 .v-texte-colonnes h2 { column-span: all; }
}
.v-texte-encadre { padding: var(--espace); background: var(--surface);
 border: 1px solid var(--bordure); border-radius: var(--rayon); }
.v-cartes-bordee .carte { border: 1px solid var(--bordure-douce); }
.v-cartes-bordee .carte:hover { border-color: var(--bordure); }
@media (min-width: 60rem) {
 .v-cartes-decalees .grille > .carte:nth-child(even) { margin-block-start: var(--espace-3xl); }
 .v-cartes-decalees .grille > .carte:first-child { grid-column: auto; }
 .v-cartes-decalees .grille > .carte:first-child img { aspect-ratio: var(--carte-rapport); }
}
.v-cartes-liste .grille { grid-template-columns: 1fr; }
@media (min-width: 40rem) {
 .v-cartes-liste .carte { display: block; overflow: hidden;
 max-width: calc(12rem + var(--espace) + var(--mesure)); }
 .v-cartes-liste .carte img { float: left; width: 12rem; aspect-ratio: 4 / 3;
 margin: 0 var(--espace) var(--espace-2xs) 0; }
 .v-cartes-liste .carte .image-absente { float: left; width: 12rem;
 margin: 0 var(--espace) var(--espace-2xs) 0; }
 .v-cartes-liste .carte > h3 { margin-top: 0; }
}
.v-cartes-mosaique .grille { grid-template-columns: repeat(auto-fit, minmax(11rem, 1fr)); }
.v-cartes-mosaique .carte { padding: calc(var(--espace) * .6); }
.v-cartes-mosaique .carte h3 { font-size: var(--petit); }
.v-galerie-bande .galerie { grid-auto-flow: column;
 grid-auto-columns: minmax(var(--galerie-min), 18rem); grid-template-columns: none;
 overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: var(--espace); }
.v-galerie-bande .galerie > li { scroll-snap-align: start; grid-column: auto; }
.v-galerie-mosaique .galerie > li { grid-column: span 6; }
@container (min-width: 15.5rem) { .v-galerie-mosaique .galerie > li { grid-column: span 3; } }
@container (min-width: 24rem) { .v-galerie-mosaique .galerie > li { grid-column: span 2; } }
@container (min-width: 49.5rem) { .v-galerie-mosaique .galerie > li { grid-column: span 1; } }
.v-listage-liste .grille { grid-template-columns: 1fr; }
@media (min-width: 40rem) {
 .v-listage-liste .carte { display: block; overflow: hidden;
 max-width: calc(12rem + var(--espace) + var(--mesure)); }
 .v-listage-liste .carte img { float: left; width: 12rem; aspect-ratio: 4 / 3;
 margin: 0 var(--espace) var(--espace-2xs) 0; }
 .v-listage-liste .carte .image-absente { float: left; width: 12rem;
 margin: 0 var(--espace) var(--espace-2xs) 0; }
 .v-listage-liste .carte > h3 { margin-top: 0; }
}
.v-cta-bandeau { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
 padding: calc(var(--espace) * 3) var(--retrait-colonne);
 border-radius: 0; background: var(--primaire); color: var(--sur-primaire); }
.v-cta-bandeau .bouton { background: var(--fond); color: var(--primaire-texte); }
.v-cta-bandeau .bouton:hover { background: var(--surface); color: var(--primaire-texte-appui); }
.v-cta-chevauchant { position: relative; z-index: var(--plan-contenu);
 background: var(--surface); color: var(--texte);
 border: 0; border-radius: var(--rayon-xl); box-shadow: var(--ombre-2);
 padding: calc(var(--espace) * 2);
 max-inline-size: 44rem; margin-inline: auto; }
@media (min-width: 60rem) {
 .v-cta-chevauchant { margin-block-start: calc(var(--espace) * -2); }
}
.v-avis-bandeau { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
 padding: calc(var(--espace) * 2) var(--retrait-colonne);
 border: 0; border-radius: 0;
 background: var(--primaire-voile); color: var(--texte); }
.v-urgence-bandeau { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
 padding: calc(var(--espace) * 2) var(--retrait-colonne);
 border: 0; border-radius: 0;
 background: var(--primaire); color: var(--sur-primaire); }
.v-manifeste-encre { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
 padding: calc(var(--espace) * 4) var(--retrait-colonne);
 background: var(--encre); color: var(--sur-encre); }
.v-manifeste-encre .manifeste-phrase { color: inherit; }
.v-horaires-simple { border: 0; background: transparent; padding: 0; }
.v-tarifs-simple { border: 0; background: transparent; padding: 0; }
.v-acces-simple { border: 0; background: transparent; padding: 0; }
.v-chiffres-ligne .chiffres li { border: 0; padding: 0; }
.v-chiffres-ligne .chiffres { gap: calc(var(--espace) * 2); }
.agenda { list-style: none; padding: 0; display: grid; gap: 0; }
.agenda li { display: grid; grid-template-columns: minmax(6rem, auto) 1fr;
 gap: var(--espace); align-items: baseline;
 padding: var(--espace-s) 0; border-top: 1px solid var(--bordure-douce); }
.agenda li:last-child { border-bottom: 1px solid var(--bordure-douce); }
.agenda time { font-weight: var(--poids-appui); color: var(--primaire-texte);
 font-variant-numeric: tabular-nums; }
@media (max-width: 30em) { .agenda li { grid-template-columns: 1fr; gap: var(--espace-3xs); } }
.v-agenda-fiches .agenda { grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr));
 gap: var(--espace); }
.v-agenda-fiches .agenda li { display: block; border: 1px solid var(--bordure);
 border-radius: var(--rayon-l); padding: var(--espace); background: var(--surface); }
.v-agenda-fiches .agenda li:last-child { border-bottom-width: 1px; }
.v-agenda-fiches .agenda time { display: block; margin-bottom: var(--espace-3xs); }
.annonce { display: grid; gap: var(--espace-3xs);
 padding: var(--espace-s) var(--espace); border-left: 2px solid var(--accent);
 background: var(--accent-voile); }
.annonce .annonce-date { font-size: var(--petit); font-weight: var(--poids-appui);
 letter-spacing: var(--lettrage-surtitre); text-transform: uppercase; }
.annonce.v-annonce-bandeau {
 margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
 padding: var(--espace-l) var(--retrait-colonne); border-left: 0;
 background: var(--accent-voile); color: var(--texte); }
.v-temoignages-bandeau .citations { grid-template-columns: 1fr; }
.v-temoignages-bandeau blockquote { font-size: calc(var(--corps) * 1.25);
 border: 0; background: transparent; text-align: center; padding-inline: 0; }
.v-partenaires-bandeau { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
 padding: calc(var(--espace) * 2) var(--retrait-colonne);
 background: var(--surface); }
.v-partenaires-bandeau .partenaires { justify-content: center; }
body.mode-editorial {
 --rythme: 4;
}
body.mode-institutionnel {
 --rythme: 3;
}
body.mode-institutionnel section + section {
 border-top: 1px solid var(--bordure); padding-top: calc(var(--espace) * 2); }
body.mode-institutionnel .carte { box-shadow: none; }
body.mode-listage {
 --rythme: 2;
 --grille-min: 13rem;
 --galerie-min: 10rem;
}
body.mode-listage .hero { padding-block: var(--espace); }
body.mode-listage .carte h3 { font-size: var(--corps); }
body.mode-conversion {
 --rythme: 3;
}
body.mode-conversion .appel { padding: calc(var(--espace) * 3); }
body.mode-conversion .appel .bouton { font-size: calc(var(--corps) * 1.1); }
body.mode-conversion .formulaire { max-width: min(100%, 46rem); }
body.mode-conversion .bouton { padding: .85em 1.8em; }
body.mode-produit {
 --rythme: 3;
}
@media (min-width: 52rem) {
 body.mode-produit .hero:has(.hero-image) {
 grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); }
}
body.mode-documentation {
 --rythme: 2;
 --titre-echelle: .9;
}
body.mode-documentation section[id] { scroll-margin-top: var(--espace); }
body.mode-documentation h2 { border-bottom: 1px solid var(--bordure);
 padding-bottom: .3em; }
body.mode-documentation details { padding-block: calc(var(--espace) * .5); }
body.mode-recit {
 --rythme: 5;
}
body.mode-recit .chapeau { font-size: calc(var(--corps) * 1.3); max-width: 34rem; }
body.mode-recit .galerie, body.mode-recit .hero-image { border-radius: var(--rayon); }
body.mode-recit .galerie { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
 padding-inline: var(--retrait-colonne); }
body.mode-campagne {
 --rythme: 5;
 --titre-echelle: 1.3;
}
body.mode-campagne main { text-align: center; }
body.mode-campagne p, body.mode-campagne .chapeau { margin-inline: auto; }
body.mode-campagne .grille, body.mode-campagne .formulaire { text-align: left; }
.etat-vide, .etat-erreur, .etat-succes, .etat-substitut {
 padding: var(--espace-xl); border-radius: var(--rayon-xl);
 border: 1px solid var(--bordure-douce); background: var(--surface);
}
.etat-vide { border: 0; background: var(--primaire-voile); text-align: center; }
.etat-vide .mention { max-width: var(--mesure-courte); margin-inline: auto; }
.etat-titre { font-family: var(--police-titres); font-weight: var(--poids-titre);
 font-size: calc(var(--corps) * 1.1); letter-spacing: var(--lettrage-titre);
 margin: 0 0 .4em; }
.etat-erreur { border-left: 4px solid var(--accent); background: var(--accent-voile); }
.etat-succes { border-left: 4px solid var(--primaire); background: var(--primaire-voile); }
.etat-substitut { border-style: dashed; text-align: center; background: var(--surface-creuse); }
.champ-erreur input[aria-invalid="true"] { border-color: var(--accent); border-width: 2px; }
.etat-squelette { display: grid; gap: .6em; }
.etat-squelette span { display: block; height: 1em; border-radius: var(--rayon-xs);
 background: var(--bordure); }
.etat-squelette span:nth-child(2) { width: 80%; }
.etat-squelette span:nth-child(3) { width: 55%; }
.etats-liste { display: grid; gap: var(--espace-xl); list-style: none;
 margin: 0; padding: 0; }
.etats-liste > li { border-top: 1px solid var(--bordure-douce); padding-top: var(--espace); }
.etats-quand { color: var(--texte-faible); font-size: var(--petit); margin: 0 0 var(--espace); }
.sprite { display: none; }
.ico { width: 1.15em; height: 1.15em; flex: none; vertical-align: -.17em;
 fill: currentColor; }
.ico-etat { width: 4rem; height: 4rem; display: block; margin: 0 auto var(--espace-s);
 fill: currentColor; color: var(--primaire); opacity: .5; }
.ico-vignette { width: 2.4rem; height: 2.4rem; display: block; margin: 0 auto .6em;
 fill: currentColor; color: var(--primaire); opacity: .35; }
.coordonnees li { display: flex; align-items: baseline; gap: .5em; }
.coordonnees .ico { color: var(--primaire); }
.cadre { display: grid; place-content: center; }
.cadre .ico-vignette { margin: 0; }
main { max-width: var(--largeur); margin-inline: auto;
 padding-inline: max(var(--espace), env(safe-area-inset-left)); }
header { position: sticky; top: 0; z-index: var(--plan-entete); }
.entete { max-width: max(var(--largeur-site), min(88rem, 100%)); margin-inline: auto;
 padding-inline: max(var(--espace), env(safe-area-inset-left)); }
.hero-couverture { grid-template-columns: 1fr;
 margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
 padding: calc(var(--espace) * 6) var(--retrait-colonne);
 min-height: 60svh; align-content: end; }
.pleine-largeur { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
 padding-inline: var(--retrait-colonne); }
.hero { padding: calc(var(--espace) * 5) 0; border-bottom: 0; text-align: center; }
.hero-couverture { min-height: 78svh; align-content: center; text-align: center;
 padding-block: calc(var(--espace) * 8); }
.hero-couverture::after { left: 50%; transform: translateX(-50%); width: min(34rem, 60%);
 clip-path: polygon(12% 0, 88% 0, 100% 100%, 0 100%); }
.hero .chapeau, .hero p { margin-inline: auto; }
h2 { max-width: 20ch; }
.carte { border: 0; background: transparent; padding: 0; }
.carte img { width: 100%; margin: 0 0 var(--espace); border-radius: var(--rayon-xl); }
.carte:hover { transform: none; box-shadow: none; }
.appel { text-align: center; padding: calc(var(--espace) * 3); }
.appel p { margin-inline: auto; }
.entete { flex-direction: column; gap: var(--espace-xs); }
.entete .bouton { margin-top: var(--espace-2xs); }
nav[aria-label="Navigation principale"] { justify-content: center; margin-left: 0;
 letter-spacing: var(--lettrage-surtitre); font-size: var(--surtitre);
 text-transform: uppercase; }
@media (max-width: 40rem) {
 .marque { flex: none; }
 .marque span { white-space: nowrap; }
 nav[aria-label="Navigation principale"] a { white-space: nowrap; }
 .banniere { max-width: calc(100vw - var(--espace-l)); font-size: .68rem;
 padding: var(--espace-3xs) var(--espace-xs); }
 .grille > .carte:first-child { grid-column: auto; grid-row: auto; }
 h1 { font-size: calc(var(--h1) * var(--titre-echelle)); }
}
}
html { overflow-x: clip; }
body { overflow-x: clip; margin: 0; padding: 0; max-width: none; width: auto; }
picture { display: contents; }
picture > source { display: none; }
.hero-couverture .hero-image { position: absolute; inset: 0;
 width: 100%; height: 100%; border-radius: 0; object-fit: cover; }
.hero-texte { position: relative; z-index: var(--plan-contenu); }
.hero-couverture::before { content: ""; position: absolute; inset: 0;
 z-index: var(--plan-voile); opacity: var(--voile-opacite);
 background: linear-gradient(to top, var(--voile) 30%, transparent 100%), var(--voile); }
.hero-couverture, .hero-couverture .hero-texte, .hero-couverture .hero-texte *,
.hero-couverture .chapeau { color: var(--sur-voile); }
.hero-couverture .bouton { background: var(--sur-voile); color: var(--voile); }
h1 > .ico, h2 > .ico, h3 > .ico {
 width: calc(1.15em * var(--ico-echelle, 1)); height: calc(1.15em * var(--ico-echelle, 1));
 vertical-align: -.19em; margin-right: .12em; }
.galerie img { max-height: 15rem; }
.galerie { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.hero-couverture { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
 max-width: none; }
.pleine-largeur { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw);
 padding-inline: var(--retrait-colonne); }
[id] { scroll-margin-top: 5.5rem; }
:focus-visible { outline: 3px solid var(--accent); outline-offset: 2px; }
@media (min-width: 60rem) { .v-hero-chevauchement .hero-texte, .v-hero-chevauchement .hero-texte :where(p, h2, h3, h4, li, dt, dd, blockquote, strong, em, span) { color: var(--texte); } }
@media (min-width: 60rem) { .v-duo-superpose .duo-texte, .v-duo-superpose .duo-texte :where(p, h2, h3, h4, li, dt, dd, blockquote, strong, em, span) { color: var(--texte); } }
.v-cta-bandeau, .v-cta-bandeau :where(p, h2, h3, h4, li, dt, dd, blockquote, strong, em, span) { color: var(--sur-primaire); }
.v-cta-bandeau .bouton, .v-cta-bandeau .bouton :where(p, h2, h3, h4, li, dt, dd, blockquote, strong, em, span) { color: var(--primaire-texte); }
.v-cta-bandeau .bouton:hover, .v-cta-bandeau .bouton:hover :where(p, h2, h3, h4, li, dt, dd, blockquote, strong, em, span) { color: var(--primaire-texte-appui); }
.v-cta-chevauchant, .v-cta-chevauchant :where(p, h2, h3, h4, li, dt, dd, blockquote, strong, em, span) { color: var(--texte); }
.v-avis-bandeau, .v-avis-bandeau :where(p, h2, h3, h4, li, dt, dd, blockquote, strong, em, span) { color: var(--texte); }
.v-urgence-bandeau, .v-urgence-bandeau :where(p, h2, h3, h4, li, dt, dd, blockquote, strong, em, span) { color: var(--sur-primaire); }
.v-manifeste-encre, .v-manifeste-encre :where(p, h2, h3, h4, li, dt, dd, blockquote, strong, em, span) { color: var(--sur-encre); }
.annonce.v-annonce-bandeau, .annonce.v-annonce-bandeau :where(p, h2, h3, h4, li, dt, dd, blockquote, strong, em, span) { color: var(--texte); }
.v-cta-bandeau, .v-cta-chevauchant, .v-avis-bandeau, .v-urgence-bandeau, .v-manifeste-encre { padding-inline: var(--retrait-colonne); }
.v-cta-bandeau, .v-avis-bandeau, .v-urgence-bandeau, .v-manifeste-encre, .v-annonce-bandeau, .v-partenaires-bandeau { margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); max-width: none; }
nav[aria-label="Navigation principale"] a, .nav-action, .marque, .entete-tel { text-decoration: none; }
.marque { color: var(--texte); }
header > .entete { background: none; backdrop-filter: none; }
header { max-block-size: var(--entete-max); overflow: visible; }
header > .entete { flex-direction: row; }
.grille, .galerie, .cartes { max-inline-size: none; }
@media (max-width: 46rem) { header { max-block-size: 5rem; } }
.nav-action { padding-inline: max(1.05em, var(--espace-s)); padding-block: .45em; }
.entete > .nav-action { margin-block: 0; }
.hero:not(:has(.hero-image, .image-absente)) { grid-template-columns: 1fr; }
.hero { container-type: inline-size; }
@container (min-width: 48rem) {
 .hero-texte h1 { font-size: min(var(--h1), 4.4cqi); }
}
@container (max-width: 48rem) {
 .hero-texte h1 { font-size: min(var(--h1), 7cqi); text-wrap: pretty; }
}
.evitement { position: absolute; left: -9999px; top: 0; z-index: var(--plan-entete); }
.evitement:focus { left: 0; }
.hors-ecran { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
 overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
@media (prefers-reduced-motion: reduce) {
 *, *::before, *::after {
 animation-duration: .01ms !important; animation-iteration-count: 1 !important;
 transition-duration: .01ms !important; scroll-behavior: auto !important;
 }
 ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) {
 animation: none !important;
 }
}
.menu-bouton { display: none; }
@media (max-width: 60rem) {
 html[data-comportements] .menu-bouton {
 display: inline-flex; align-items: center; gap: .5em; flex: none;
 margin-left: auto; padding: .5em .9em;
 border: 1px solid var(--bordure); border-radius: var(--rayon-l);
 background: var(--surface); color: var(--texte);
 font: inherit; font-size: var(--petit); font-weight: var(--poids-appui);
 cursor: pointer;
 }
 @media (max-width: 26rem) {
 html[data-comportements] .menu-libelle {
 position: absolute; width: 1px; height: 1px;
 padding: 0; margin: -1px; overflow: hidden;
 clip-path: inset(50%); white-space: nowrap;
 }
 html[data-comportements] .menu-bouton { gap: 0; padding: .5em .7em; }
 }
 html[data-comportements] .menu-barres {
 width: 1.1em; height: .7em;
 background: linear-gradient(currentColor 0 2px, transparent 2px calc(50% - 1px),
 currentColor calc(50% - 1px) calc(50% + 1px), transparent calc(50% + 1px) calc(100% - 2px),
 currentColor calc(100% - 2px) 100%);
 }
 html[data-comportements] nav[aria-label="Navigation principale"] {
 position: absolute; left: 0; right: 0; top: 100%;
 flex-direction: column; align-items: stretch; overflow: visible;
 gap: 0; margin: 0; padding: var(--espace-xs);
 background: var(--fond); border-bottom: 1px solid var(--bordure-douce);
 box-shadow: var(--ombre-2);
 display: none;
 }
 html[data-comportements] nav[aria-label="Navigation principale"][data-ouvert] {
 display: flex;
 }
 html[data-comportements] nav[aria-label="Navigation principale"] a {
 padding: var(--espace-xs) var(--espace-2xs); white-space: normal;
 }
 html[data-comportements] nav[aria-label="Navigation principale"] a::after { display: none; }
 html[data-comportements] .nav-action { text-align: center; margin-top: var(--espace-2xs); }
 html[data-comportements] .entete { position: relative; }
}
.rail-controles { display: none; }
html[data-comportements] .rail-controles {
 display: flex; gap: var(--espace-2xs); justify-content: flex-end;
 margin-top: var(--espace-xs);
}
html[data-comportements] .rail-bouton {
 width: 2.4em; height: 2.4em; display: grid; place-content: center;
 border: 1px solid var(--bordure); border-radius: var(--rayon-rond);
 background: var(--surface); color: var(--texte);
 font: inherit; cursor: pointer;
 transition: background var(--duree-vive) var(--courbe),
 border-color var(--duree-vive) var(--courbe);
}
html[data-comportements] .rail-bouton:hover:not(:disabled) {
 background: var(--primaire-voile); border-color: var(--primaire);
}
html[data-comportements] .rail-bouton:disabled { opacity: .38; cursor: default; }
.cookies, .cookies-rappel { display: none; }
html[data-comportements] .cookies {
 display: grid; gap: var(--espace-xs);
 position: fixed; z-index: var(--plan-flottant);
 right: var(--espace-s); bottom: var(--espace-s);
 max-width: min(26rem, calc(100vw - var(--espace-l)));
 padding: var(--espace);
 border-radius: var(--rayon-xl); background: var(--surface);
 box-shadow: var(--ombre-3);
}
html[data-comportements] .cookies-texte {
 margin: 0; font-size: var(--petit); color: var(--texte-faible); max-width: none;
}
html[data-comportements] .cookies-actions { display: flex; gap: var(--espace-xs); }
html[data-comportements] .cookies .bouton { margin-top: 0; flex: 1; justify-content: center; }
html[data-comportements] .cookies .bouton[data-choix="rien"] {
 background: var(--surface); color: var(--texte); border: 1px solid var(--bordure-forte);
 box-shadow: none;
}
html[data-comportements] .cookies-rappel {
 display: inline-block; position: fixed; z-index: var(--plan-flottant);
 right: var(--espace-s); bottom: var(--espace-s);
 padding: var(--espace-3xs) var(--espace-xs);
 border: 1px solid var(--bordure-douce); border-radius: var(--rayon-rond);
 background: color-mix(in srgb, var(--surface) 88%, transparent);
 backdrop-filter: blur(10px);
 color: var(--texte-faible); font: inherit; font-size: var(--surtitre); cursor: pointer;
}
html[data-comportements] .etat-substitut[data-autorise] { border-style: solid; }
.masque-ligne { display: block; overflow: hidden;
 padding-bottom: .2em; margin-bottom: -.2em; }
.masque-ligne > .ligne-titre { display: block; }
.titre-decoupe { display: block; }
.carrousel { overflow: hidden; }
.carrousel-piste { list-style: none; margin: 0; padding: 0; }
.carrousel-vue { overflow: hidden; border-radius: var(--rayon-l); height: auto; }
.carrousel-vue img { display: block; width: 100%; max-height: 15rem;
 aspect-ratio: 4 / 3; object-fit: cover; border-radius: var(--rayon-l);
 transition: transform var(--duree-ample) var(--courbe); }
.carrousel-vue:hover img { transform: scale(1.05); }
.carrousel-vue.cadre { aspect-ratio: 4 / 3;
 background: linear-gradient(135deg, var(--primaire-voile), var(--surface-creuse)); }
.carrousel-controles { display: flex; align-items: center; justify-content: center;
 gap: var(--espace-s); margin-top: var(--espace-s); }
.carrousel-bouton { display: inline-flex; align-items: center; justify-content: center;
 inline-size: 2.75rem; block-size: 2.75rem; padding: 0;
 border: 0; border-radius: 50%; cursor: pointer;
 background: var(--primaire); color: var(--sur-primaire);
 font: inherit; font-size: 1.5rem; line-height: 1;
 box-shadow: var(--ombre-1);
 transition: background var(--duree-vive) var(--courbe); }
.carrousel-bouton:hover { background: var(--primaire-appui); color: var(--sur-primaire-appui); }
.carrousel-bouton[aria-disabled="true"], .carrousel-bouton.swiper-button-disabled {
 opacity: .45; cursor: default; }
.carrousel-pagination { display: flex; align-items: center; gap: var(--espace-3xs); }
.carrousel-pagination .swiper-pagination-bullet {
 inline-size: .55rem; block-size: .55rem; border-radius: 50%;
 background: var(--bordure-forte); border: 0; padding: 0; cursor: pointer;
 transition: background var(--duree-vive) var(--courbe); }
.carrousel-pagination .swiper-pagination-bullet-active { background: var(--primaire); }
.carrousel-bouton:focus-visible, .carrousel-pagination .swiper-pagination-bullet:focus-visible {
 outline: 2px solid var(--primaire); outline-offset: 3px; }
@media (max-width: 60rem) {
 .entete { gap: var(--espace-xs); }
 .entete > .marque { flex: 0 1 auto; min-width: 0; overflow: hidden; }
 .entete > .marque > span { overflow: hidden; text-overflow: ellipsis; }
 html[data-comportements] .entete { flex-wrap: nowrap; }
 html:not([data-comportements]) .entete { flex-wrap: wrap; }
 html:not([data-comportements]) .entete > .nav-action {
 order: 3; flex: 1 0 100%; text-align: center; }
 html:not([data-comportements]) header { max-block-size: none; }
 .entete > .entete-tel {
 font-size: var(--petit);
 background: none; border: 0; padding-inline: 0;
 width: auto; flex-basis: auto; max-inline-size: max-content;
 display: inline-flex;
 }
}
@media (max-width: 40rem) {
 main { padding-inline: var(--espace); }
 nav[aria-label="Navigation principale"] {
 flex: 1 1 auto; min-width: 0; flex-wrap: nowrap;
 overflow-x: auto; scrollbar-width: thin; }
 .hero, .hero:has(.hero-image) { grid-template-columns: 1fr; }
 main > section:nth-of-type(even) { margin-inline: 0; padding-inline: var(--espace); }
}