/* ==========================================================================
   Composants partagés : fil d'Ariane, en-tête de fiche, caractéristiques,
   contenu rédactionnel (blocs), galerie et lightbox, cartes, filtres,
   domaines, article, 404. Chargé sur toutes les pages sauf l'accueil.
   ========================================================================== */

/* ---------- fil d'Ariane ---------- */
.c-fil { padding: 14px 0; font-family: var(--sol-etroit); font-size: 14px; letter-spacing: 0; color: var(--sol-gris); }
.c-fil__liste { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; }
.c-fil__item + .c-fil__item::before { content: "/"; padding: 0 8px; }
.c-fil a { text-decoration: none; }
.c-fil [aria-current] { color: var(--sol-encre); }

/* ---------- en-tête de fiche / d'index ---------- */
.c-fiche__tete { padding-bottom: 40px; display: flex; flex-wrap: wrap; gap: 24px 56px; align-items: flex-end; animation: lever 280ms var(--sol-ease) both; }
@keyframes lever { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
.c-fiche__titres { flex: 1 1 620px; min-width: 0; }
.c-fiche__surtitre { margin: 0 0 20px; }
/* 11/09/2026, Satoshi : ces valeurs (7,4 et 8,4 vw, soit 107 et 121 px sur un écran de 1440)
   étaient calibrées pour Instrument Serif, étroite. En sans-serif, un titre de fiche prenait
   cinq lignes. Les fiches, prestations et articles descendent ; les index gardent de l'ampleur,
   leurs titres tenant en deux ou trois mots. */
.c-fiche__h1 { font-size: clamp(36px, 4.4vw, 66px); line-height: 0.98; letter-spacing: -0.035em; }
.c-fiche__h1--index { font-size: clamp(42px, 6vw, 92px); line-height: 0.94; }
.c-fiche__note { flex: 1 1 280px; min-width: 0; margin: 0; padding-bottom: 8px; font-family: var(--sol-etroit); font-size: 14px; color: oklch(0.44 0.008 260); }
.c-fiche__intro { flex: 1 1 320px; min-width: 0; margin: 0; padding-bottom: 8px; font-size: 18px; line-height: 1.5; color: oklch(0.34 0.008 260); }
.c-fiche__une { padding-bottom: 40px; }
.c-fiche__img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; background: oklch(0.88 0.006 160); }
@media (prefers-reduced-motion: reduce) { .c-fiche__tete { animation: none; } }

/* ---------- caractéristiques ---------- */
.c-carac { border-bottom: 1px solid var(--sol-filet); padding: 40px 0; }
.c-carac__dl { margin: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 26px 40px; font-family: var(--sol-etroit); }
.c-carac__dl dt { font-size: 13px; letter-spacing: 0; color: var(--sol-gris-clair); margin-bottom: 5px; }
.c-carac__dl dd { margin: 0; font-family: var(--sol-sans); font-size: 18px; font-variant-numeric: tabular-nums; }

/* ---------- récit ---------- */
.c-recit { padding-top: 72px; }
.c-recit .c-surtitre { margin-bottom: 44px; }

/* ---------- contenu rédactionnel (blocs) ---------- */
.c-prose { max-width: 100%; }
.c-prose > * { max-width: 44em; }
.c-prose > .wp-block-image, .c-prose > .wp-block-gallery, .c-prose > .alignwide, .c-prose > .alignfull { max-width: none; }
.c-prose h2 { font-family: var(--sol-serif); font-size: clamp(30px, 3vw, 44px); line-height: 1.08; letter-spacing: -0.015em; margin: 56px 0 18px; }
.c-prose h3 { font-family: var(--sol-serif); font-size: clamp(26px, 2.4vw, 36px); line-height: 1.05; letter-spacing: -0.015em; margin: 44px 0 18px; }
.c-prose h4 { font-family: var(--sol-etroit); font-size: 15px; font-weight: 600; letter-spacing: 0; margin: 32px 0 12px; }
.c-prose h2:first-child, .c-prose h3:first-child { margin-top: 0; }
.c-prose p { margin: 0 0 16px; color: var(--sol-encre-douce); }
.c-prose ul, .c-prose ol { margin: 0 0 20px; padding-left: 1.3em; color: var(--sol-encre-douce); }
.c-prose li { margin-bottom: 6px; }
.c-prose .wp-block-image { margin: 40px 0; }
.c-prose .wp-block-image img { width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; background: oklch(0.88 0.006 160); }
.c-prose figcaption { margin-top: 10px; font-family: var(--sol-etroit); font-size: 13px; color: oklch(0.46 0.008 260); }
/* FAQ : bloc Détails */
.c-prose .wp-block-details { border-top: 1px solid var(--sol-filet); padding: 0; margin: 0; max-width: 44em; }
.c-prose .wp-block-details:last-of-type { border-bottom: 1px solid var(--sol-filet); }
.c-prose .wp-block-details summary { cursor: pointer; padding: 18px 0; font-family: var(--sol-serif); font-size: 24px; line-height: 1.2; letter-spacing: -0.01em; list-style: none; display: flex; justify-content: space-between; gap: 20px; }
.c-prose .wp-block-details summary::-webkit-details-marker { display: none; }
.c-prose .wp-block-details summary::after { content: "+"; font-family: var(--sol-etroit); font-size: 22px; color: var(--sol-accent); flex: 0 0 auto; transition: transform var(--sol-vite) var(--sol-ease); }
.c-prose .wp-block-details[open] summary::after { transform: rotate(45deg); }
.c-prose .wp-block-details > :not(summary) { padding-bottom: 18px; }
/* Galerie */
.c-prose .wp-block-gallery { margin: 64px 0 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.c-prose .wp-block-gallery .wp-block-image { margin: 0; cursor: zoom-in; outline-offset: 4px; }
.c-prose .wp-block-gallery .wp-block-image img { aspect-ratio: 3 / 2; transition: opacity 220ms var(--sol-ease); }
@media (hover: hover) and (pointer: fine) { .c-prose .wp-block-gallery .wp-block-image:hover img { opacity: 0.86; } }
.c-prose .wp-block-gallery .wp-block-image:nth-child(7n + 1) { grid-column: span 2; }
.c-prose .wp-block-gallery .wp-block-image:nth-child(7n + 1) img { aspect-ratio: 21 / 9; }
@media (max-width: 720px) { .c-prose .wp-block-gallery .wp-block-image:nth-child(7n + 1) { grid-column: auto; } .c-prose .wp-block-gallery .wp-block-image:nth-child(7n + 1) img { aspect-ratio: 3 / 2; } }

/* ---------- lightbox ---------- */
.c-lightbox { border: 0; padding: 0; max-width: 100vw; max-height: 100vh; width: 100vw; height: 100vh; background: oklch(0.18 0.010 260); color: var(--sol-blanc); }
.c-lightbox::backdrop { background: oklch(0.18 0.010 260 / 0.94); }
.c-lightbox__fig { margin: 0; height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 56px 72px 40px; }
.c-lightbox__img { max-width: 100%; max-height: calc(100vh - 140px); width: auto; height: auto; object-fit: contain; }
.c-lightbox__legende { margin-top: 14px; font-family: var(--sol-etroit); font-size: 14px; color: var(--sol-sur-sombre); text-align: center; max-width: 60em; }
.c-lightbox__fermer, .c-lightbox__nav { position: absolute; background: transparent; border: 1px solid oklch(0.99 0.005 80 / 0.35); color: var(--sol-blanc); cursor: pointer; font-family: var(--sol-etroit); letter-spacing: 0; transition: border-color var(--sol-vite) var(--sol-ease); }
.c-lightbox__fermer { top: 16px; right: 16px; padding: 10px 14px; font-size: 12px; }
.c-lightbox__nav { top: 50%; transform: translateY(-50%); width: 48px; height: 48px; font-size: 28px; line-height: 1; font-family: var(--sol-serif); }
.c-lightbox__nav--prec { left: 16px; }
.c-lightbox__nav--suiv { right: 16px; }
@media (hover: hover) and (pointer: fine) { .c-lightbox__fermer:hover, .c-lightbox__nav:hover { border-color: var(--sol-blanc); } }
.c-lightbox__compteur { position: absolute; left: 16px; top: 22px; margin: 0; font-family: var(--sol-etroit); font-size: 12px; letter-spacing: 0.12em; color: var(--sol-sur-sombre); font-variant-numeric: tabular-nums; }
@media (max-width: 720px) { .c-lightbox__fig { padding: 64px 12px 24px; } .c-lightbox__nav { top: auto; bottom: 16px; transform: none; } }

/* ---------- cartes : mosaïque (15/09/2026) ----------
   Retours de la cliente : des photos plus grandes, jointives, trois par rangée, le texte posé
   sur l'image. Toute la carte est cliquable : le lien du titre s'étend sur la carte entière.
   Image et texte partagent la même case de grille, sans position absolue, pour que ce lien
   étendu se cale bien sur la carte et non sur le bloc de texte. */
.c-carte { position: relative; display: grid; margin: 0; overflow: hidden; background: var(--sol-encre); color: var(--sol-blanc); }
.c-carte[hidden] { display: none; }
.c-carte > * { grid-area: 1 / 1; min-width: 0; }
.c-carte__lien-img { display: block; margin: 0; }
.c-carte__img { width: 100%; height: 100%; aspect-ratio: 1 / 1; object-fit: cover; background: oklch(0.30 0.008 260); transition: transform 700ms var(--sol-ease), opacity 300ms var(--sol-ease); }
/* 30/09/2026 : même écriture légère que le mur de l'accueil (graisse fine, taille modérée, voile discret). */
.c-carte__txt { align-self: end; padding: 60px 22px 18px; background: linear-gradient(to top, oklch(0.18 0.010 260 / 0.66) 0%, oklch(0.18 0.010 260 / 0.24) 60%, transparent 100%); pointer-events: none; text-shadow: 0 1px 14px oklch(0.15 0.01 260 / 0.45); }
.c-carte .c-etiquette { margin: 0; font-size: 12px; letter-spacing: 0.02em; color: oklch(0.94 0.006 70 / 0.88); }
.c-carte__meta { color: oklch(0.90 0.006 70 / 0.88); }
.c-carte__titre { margin: 4px 0; font-family: var(--sol-serif); font-weight: var(--sol-second-poids); font-size: clamp(18px, 1.45vw, 24px); line-height: 1.15; letter-spacing: -0.01em; color: var(--sol-blanc); }
.c-carte__titre a { color: inherit; text-decoration: none; pointer-events: auto; }
.c-carte__titre a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.c-carte__titre a:focus-visible { outline: none; }
.c-carte:focus-within { outline: 2px solid var(--sol-accent); outline-offset: -2px; }
.c-carte__sous { margin: 0; font-family: var(--sol-etroit); font-size: 15px; line-height: 1.35; color: oklch(0.90 0.008 70); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* Survol : la photo ne bouge plus (le zoom faisait redessiner une photo de 1200 px sous un texte
   ombré : saccades) ; seul le titre se souligne (30/09/2026). */
.c-carte__titre a { text-decoration-line: underline; text-decoration-color: transparent; text-decoration-thickness: 1px; text-underline-offset: 0.2em; transition: text-decoration-color 200ms ease; }
@media (hover: hover) and (pointer: fine) { .c-carte:hover .c-carte__titre a { color: inherit; text-decoration-line: underline; text-decoration-color: currentColor; } }
.c-carte .c-carte__titre a:focus-visible { text-decoration-line: underline; text-decoration-color: currentColor; }
.c-index__grille, .c-sf__grille, .c-voisins__grille, .c-types__grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0; align-items: stretch; }
@media (max-width: 1040px) { .c-index__grille, .c-sf__grille, .c-voisins__grille, .c-types__grille { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 620px) { .c-index__grille, .c-sf__grille, .c-voisins__grille, .c-types__grille { grid-template-columns: minmax(0, 1fr); } .c-carte__img { aspect-ratio: 4 / 3; } }
.c-voisins__tete { display: flex; justify-content: space-between; align-items: baseline; gap: 24px; border-bottom: 1px solid var(--sol-encre); padding-bottom: 12px; margin-bottom: 36px; }
.c-voisins--fin { padding-bottom: var(--sol-section); }

/* ---------- filtres et index ---------- */
.c-filtres { border-bottom: 1px solid var(--sol-filet); }
.c-filtres__inner { padding-top: 22px; padding-bottom: 22px; display: flex; flex-wrap: wrap; gap: 24px 56px; }
.c-filtres__groupe { flex: 1 1 420px; min-width: 0; }
.c-filtres__lbl { margin: 0 0 10px; font-family: var(--sol-etroit); font-size: 13px; letter-spacing: 0; color: var(--sol-gris-clair); }
.c-filtres__boutons { display: flex; flex-wrap: wrap; gap: 8px; }
.c-filtres__f { display: inline-block; padding: 8px 14px; border: 1px solid var(--sol-filet); text-decoration: none; font-family: var(--sol-etroit); font-size: 13px; letter-spacing: 0.04em; transition: opacity var(--sol-vite) var(--sol-ease), background-color var(--sol-vite) var(--sol-ease), color var(--sol-vite) var(--sol-ease); }
.c-filtres__f[aria-pressed="true"] { background: var(--sol-encre); color: var(--sol-blanc); border-color: var(--sol-encre); }
@media (hover: hover) and (pointer: fine) { .c-filtres__f:hover { opacity: 0.7; color: inherit; } .c-filtres__f[aria-pressed="true"]:hover { color: var(--sol-blanc); } }
.c-filtres__n { color: var(--sol-gris); font-variant-numeric: tabular-nums; }
/* Téléphone (30/09/2026) : deux boutons déroulants côte à côte à la place des rangées de filtres
   qui défilaient à l'horizontale. N'existe que si le script a posé .js-filtres-deroulants. */
.c-filtres__deroulant { display: none; }
@media (max-width: 720px) {
	.js-filtres-deroulants .c-filtres__inner { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; }
	.js-filtres-deroulants .c-filtres__groupe { position: relative; flex: none; }
	.js-filtres-deroulants .c-filtres__lbl { display: none; }
	.js-filtres-deroulants .c-filtres__deroulant { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; width: 100%; min-height: 52px; margin: 0; padding: 8px 34px 8px 12px; border: 1px solid var(--sol-encre); background: transparent; color: var(--sol-encre); text-align: left; cursor: pointer; font-family: var(--sol-etroit); }
	.js-filtres-deroulants .c-filtres__deroulant::after { content: ""; position: absolute; right: 14px; top: 50%; width: 7px; height: 7px; margin-top: -6px; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transition: transform 200ms ease; }
	.js-filtres-deroulants .is-ouvert .c-filtres__deroulant::after { transform: translateY(4px) rotate(-135deg); }
	.c-filtres__deroulant-lbl { font-size: 11px; letter-spacing: 0.02em; color: var(--sol-gris); }
	.c-filtres__deroulant-val { max-width: 100%; font-size: 15px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
	.js-filtres-deroulants .c-filtres__boutons { display: none; }
	.js-filtres-deroulants .is-ouvert .c-filtres__boutons { position: absolute; top: calc(100% + 4px); left: 0; z-index: 20; display: flex; flex-direction: column; flex-wrap: nowrap; gap: 0; width: max-content; min-width: 100%; max-width: calc(100vw - 2 * var(--sol-gouttiere)); max-height: 60vh; margin: 0; padding: 4px; overflow-y: auto; background: var(--sol-fond); border: 1px solid var(--sol-encre); box-shadow: 0 12px 32px oklch(0.2 0.01 260 / 0.14); }
	.js-filtres-deroulants .c-filtres__groupe + .c-filtres__groupe.is-ouvert .c-filtres__boutons { left: auto; right: 0; }
	.js-filtres-deroulants .is-ouvert .c-filtres__f { width: 100%; padding: 12px; border: 0; white-space: normal; font-size: 15px; letter-spacing: 0; }
}
.c-index__resume { padding-top: 18px; margin: 0; font-family: var(--sol-etroit); font-size: 15px; letter-spacing: 0; color: var(--sol-gris); }
.c-index__resume:empty { padding: 0; }
.c-index__grille { padding-top: 24px; padding-bottom: 76px; }
.c-index__vide { grid-column: 1 / -1; color: var(--sol-gris); }

/* ---------- domaines (fond sombre) ---------- */
.c-domaines { padding: 64px 0; }
.c-domaines__inner { display: flex; flex-wrap: wrap; gap: 56px; }
.c-domaines__intro { flex: 1 1 320px; min-width: 0; }
.c-domaines__intro p { margin: 0; color: var(--sol-sur-sombre); }
.c-domaines__liste { list-style: none; margin: 0; padding: 0; flex: 2 1 460px; min-width: 0; border-top: 1px solid var(--sol-filet-sombre); }
.c-domaines__liste li { border-bottom: 1px solid var(--sol-filet-sombre); }
.c-domaines__liste a { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; padding: 15px 0; text-decoration: none; color: inherit; transition: opacity 200ms var(--sol-ease); }
@media (hover: hover) and (pointer: fine) { .c-domaines__liste a:hover { opacity: 0.65; color: inherit; } }
.c-domaines__nom { font-family: var(--sol-serif); font-size: 28px; color: var(--sol-blanc); }
.c-domaines__vues { font-family: var(--sol-etroit); font-size: 13px; color: oklch(0.72 0.008 260); font-variant-numeric: tabular-nums; }

/* ---------- article ---------- */
.c-article__tete { padding-top: 8px; padding-bottom: 32px; max-width: calc(var(--sol-conteneur)); }
.c-article__h1 { font-size: clamp(36px, 5.2vw, 76px); line-height: 0.98; max-width: 16em; margin-top: 12px; }
.c-article__meta { margin: 18px 0 0; font-family: var(--sol-etroit); font-size: 13px; color: var(--sol-gris); }
.c-article__une { padding-bottom: 40px; }
.c-article__img { width: 100%; height: auto; aspect-ratio: 21 / 9; object-fit: cover; background: oklch(0.88 0.006 160); }
.c-article__corps { display: flex; flex-wrap: wrap; gap: 64px; align-items: flex-start; padding-bottom: var(--sol-section); }
.c-prose--article { flex: 1 1 560px; min-width: 0; font-size: 18px; }
.c-prose--article p { line-height: 1.65; }
.c-article__aside { flex: 0 1 300px; min-width: 0; position: sticky; top: 32px; border-top: 1px solid var(--sol-encre); padding-top: 18px; font-family: var(--sol-etroit); font-size: 15px; color: var(--sol-encre-douce); }
.c-article__aside-titre { margin: 0 0 10px; font-size: 13px; font-weight: 600; letter-spacing: 0; color: var(--sol-gris); }
.c-article__cta { display: inline-flex; margin-top: 18px; }
.c-journal__date { display: block; margin-top: 8px; font-family: var(--sol-etroit); font-size: 12px; color: var(--sol-gris); }
.c-journal--index { padding-top: 36px; padding-bottom: var(--sol-section); }
.c-journal--fin { padding-top: 0; }
.c-pagination { margin-top: 48px; font-family: var(--sol-etroit); font-size: 15px; letter-spacing: 0; }
.c-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 16px; }
.c-pagination .page-numbers { text-decoration: none; padding: 6px 0; color: var(--sol-gris); }
.c-pagination .page-numbers.current { color: var(--sol-encre); font-weight: 600; }

/* ---------- page générique ---------- */
.c-page .c-prose--page > .wp-block-image:first-child { margin-top: 0; }

/* ---------- 404 ---------- */
.c-404 .c-titre__it { display: block; font-style: var(--sol-second-style); font-weight: var(--sol-second-poids); }
.c-404__liens { list-style: none; margin: 32px 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px 28px; font-family: var(--sol-etroit); font-size: 15px; letter-spacing: 0; }
.c-404__liens a { text-decoration: none; }
.c-404__recherche { display: flex; flex-wrap: wrap; gap: 12px; max-width: 32em; }
.c-404__recherche input { flex: 1 1 200px; padding: 14px 16px; border: 1px solid var(--sol-encre); background: var(--sol-fond-clair); font: inherit; }

/* ---------- le cabinet ---------- */
.c-cabinet--page { display: flex; flex-wrap: wrap; gap: 72px; align-items: flex-start; }
.c-cabinet--page .c-cabinet__texte { flex: 1 1 520px; min-width: 0; }
.c-cabinet--page .c-cabinet__accroche { font-family: var(--sol-serif); font-size: clamp(34px, 3.4vw, 52px); line-height: 1.08; letter-spacing: -0.02em; margin: 0 0 26px; max-width: 15em; }
.c-cabinet--page .c-cabinet__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 32px; max-width: 44em; }
.c-cabinet--page .c-cabinet__cols p { margin: 0; color: var(--sol-encre-douce); }
.c-cabinet--page .c-cabinet__dl { margin: 30px 0 0; border-top: 1px solid var(--sol-encre); }
.c-cabinet--page .c-cabinet__dl > div { display: flex; gap: 20px; padding: 12px 0; border-bottom: 1px solid var(--sol-filet); align-items: baseline; flex-wrap: wrap; }
.c-cabinet--page .c-cabinet__dl dt { font-family: var(--sol-etroit); font-size: 14px; letter-spacing: 0; color: var(--sol-gris); flex: 0 0 190px; }
.c-cabinet--page .c-cabinet__dl dd { margin: 0; font-family: var(--sol-etroit); font-size: 17px; font-variant-numeric: tabular-nums; }
.c-cabinet__portrait { flex: 0 1 360px; min-width: 0; max-width: 360px; margin: 0; }
.c-portrait__img { width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: center 10%; }
.c-portrait__legende { margin-top: 12px; font-family: var(--sol-etroit); font-size: 14px; letter-spacing: 0; color: var(--sol-gris-clair); }
.c-methode__liste { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--sol-filet-sombre); counter-reset: none; }
.c-methode__liste li { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 6px 24px; padding: 24px 0; border-bottom: 1px solid var(--sol-filet-sombre); }
.c-methode__num { font-family: var(--sol-etroit); font-size: 12px; color: oklch(0.72 0.008 260); font-variant-numeric: tabular-nums; grid-row: span 2; padding-top: 8px; }
.c-methode__nom { font-family: var(--sol-serif); font-size: 30px; line-height: 1.1; color: var(--sol-blanc); }
.c-methode__txt { color: var(--sol-sur-sombre); max-width: 44em; }

/* ---------- contact ---------- */
.c-contact-page { display: flex; flex-wrap: wrap; gap: 72px; align-items: flex-start; }
.c-contact-page__form { flex: 2 1 520px; min-width: 0; }
.c-contact-page__amorce { margin: 0 0 26px; max-width: 46em; font-size: 17px; line-height: 1.6; color: var(--sol-encre-douce); }
.c-contact-page__coord { flex: 1 1 300px; min-width: 0; }
.c-contact__adresse--page { border-top: 0; padding-top: 0; }
.c-contact-page__metro { color: var(--sol-gris); }
.c-contact__adresse strong { font-family: var(--sol-sans); font-weight: 600; display: block; font-size: 15px; letter-spacing: 0; color: var(--sol-gris-clair); margin-bottom: 4px; }
.c-contact__adresse { font-style: normal; font-family: var(--sol-etroit); font-size: 15px; line-height: 1.7; color: oklch(0.34 0.008 260); }
.c-contact__adresse p { margin: 0 0 14px; }
.c-contact__adresse a { text-decoration: none; }
.c-contact__plan { padding-bottom: 68px; }
.c-contact__plan-tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 10px 24px; border-top: 1px solid var(--sol-filet); padding-top: 16px; margin-bottom: 18px; }
.c-contact__plan-titre { margin: 0; font-family: var(--sol-etroit); font-size: 14px; letter-spacing: 0; color: var(--sol-gris-clair); }
.c-contact__iframe { display: block; width: 100%; height: auto; aspect-ratio: 3 / 1; border: 1px solid var(--sol-filet); background: oklch(0.93 0.010 70); }
.c-contact__inner { display: flex; flex-wrap: wrap; gap: 72px; align-items: flex-start; }
.c-contact__texte { flex: 1 1 480px; min-width: 0; }
.c-contact__titre { font-family: var(--sol-serif); font-size: clamp(40px, 5vw, 76px); line-height: 0.95; letter-spacing: -0.025em; margin: 0 0 22px; }
.c-contact__it { display: block; font-style: var(--sol-second-style); font-weight: var(--sol-second-poids); }
.c-contact__p { font-size: 19px; max-width: 30em; margin: 0 0 30px; color: oklch(0.34 0.008 260); }
.c-contact__adresse:not(.c-contact__adresse--page) { flex: 1 1 280px; min-width: 0; border-top: 1px solid var(--sol-filet); padding-top: 18px; }

/* ---------- formulaire ---------- */
.c-form { max-width: 44em; }
.c-form__etat { padding: 14px 18px; margin: 0 0 24px; font-family: var(--sol-etroit); font-size: 15px; border-left: 3px solid var(--sol-accent); background: var(--sol-fond-clair); }
.c-form__etat--ok { border-left-color: oklch(0.55 0.12 150); }
.c-form__etat--ko { border-left-color: oklch(0.55 0.16 25); }
.c-form__miel { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.c-form__grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 0 24px; }
.c-form__champ { display: flex; flex-direction: column; gap: 6px; margin: 0 0 18px; }
.c-form__champ label { font-family: var(--sol-etroit); font-size: 14px; letter-spacing: 0; color: var(--sol-gris); }
.c-form__champ input, .c-form__champ select, .c-form__champ textarea { font: inherit; padding: 13px 14px; border: 1px solid var(--sol-encre); background: var(--sol-fond-clair); color: var(--sol-encre); border-radius: 0; width: 100%; }
.c-form__champ textarea { resize: vertical; min-height: 160px; }
.c-form__accord { font-family: var(--sol-etroit); font-size: 14px; color: var(--sol-encre-douce); margin: 4px 0 22px; }
.c-form__accord input { margin-right: 8px; }
.c-form__envoi { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin: 0; }
.c-form__note { font-family: var(--sol-etroit); font-size: 13px; color: var(--sol-gris); }

/* ---------- plan du site ---------- */
.c-plan .c-surtitre { margin-top: 40px; }
.c-plan .c-surtitre:first-child { margin-top: 0; }
.c-plan__n { color: var(--sol-gris); font-weight: 400; margin-left: 8px; }
.c-plan__liste { list-style: none; margin: 0; padding: 0; columns: 3 20em; column-gap: 40px; }
.c-plan__liste li { break-inside: avoid; padding: 6px 0; border-bottom: 1px solid var(--sol-filet); }
.c-plan__liste a { text-decoration: none; }

/* ---------- galerie : neutraliser toute largeur héritée ---------- */
.c-prose .wp-block-gallery .wp-block-image { width: auto !important; flex: none; max-width: none; }
.c-prose .wp-block-gallery .wp-block-image img { width: 100%; height: auto; }

/* ---------- galerie repliée : 12 vues, puis un bouton ---------- */
.c-prose .wp-block-gallery.is-repliee .wp-block-image:nth-child(n + 13) { display: none; }
.c-galerie-plus { display: flex; justify-content: center; margin: 28px 0 0; }

/* ---------- prestation ---------- */
.c-fiche__h1-it { font-style: var(--sol-second-style); font-weight: var(--sol-second-poids); letter-spacing: -0.03em; }
.c-fiche__img--large { aspect-ratio: 21 / 9; }
.c-presta { padding-top: 72px; }
.c-presta__corps { display: flex; flex-wrap: wrap; gap: 64px; align-items: flex-start; }
.c-prose--prestation { flex: 1 1 560px; min-width: 0; }
.c-prose--prestation > p:first-of-type { font-size: clamp(19px, 1.6vw, 22px); line-height: 1.45; color: oklch(0.30 0.008 260); }
.c-prose--prestation h2 { font-family: var(--sol-etroit); font-size: 15px; font-weight: 600; letter-spacing: 0; margin: 56px 0 22px; padding-bottom: 12px; border-bottom: 1px solid var(--sol-encre); }
.c-prose--prestation h3 { font-family: var(--sol-serif); font-size: clamp(26px, 2.4vw, 34px); line-height: 1.08; margin: 36px 0 12px; }
.c-prose--prestation h4 { font-family: var(--sol-serif); font-size: 22px; letter-spacing: 0; text-transform: none; font-weight: 400; margin: 28px 0 8px; }
.c-prose--prestation .wp-block-image { margin: 36px 0; }
.c-prose--prestation .wp-block-details { max-width: none; }
.c-presta__aside { flex: 0 1 340px; min-width: 0; position: sticky; top: 32px; display: grid; gap: 24px; }
.c-encart { background: var(--sol-fond-clair); border: 1px solid var(--sol-filet); padding: 28px 30px; }
.c-encart__titre { font-family: var(--sol-etroit); font-size: 14px; font-weight: 600; letter-spacing: 0; margin: 0 0 18px; color: var(--sol-gris); }
.c-encart__liste { list-style: none; margin: 0; padding: 0; }
.c-encart__liste li { border-top: 1px solid oklch(0.88 0.006 160); }
.c-encart__liste li:last-child { border-bottom: 1px solid oklch(0.88 0.006 160); }
.c-encart__liste a { display: block; padding: 12px 0; text-decoration: none; font-size: 17px; }
.c-encart--sombre { background: var(--sol-encre); color: var(--sol-sur-sombre); border-color: var(--sol-encre); }
.c-encart--sombre .c-encart__titre { color: var(--sol-blanc); }
.c-encart--sombre p { margin: 0 0 18px; }
.c-btn--clair { border-color: var(--sol-blanc); color: var(--sol-blanc); }
@media (hover: hover) and (pointer: fine) { .c-btn--clair:hover { color: var(--sol-blanc); } }
.c-encart__tel { margin: 16px 0 0 !important; font-family: var(--sol-etroit); font-size: 15px; }
.c-encart__tel a { text-decoration: none; color: var(--sol-blanc); }
@media (max-width: 1040px) { .c-presta__aside { position: static; flex-basis: 100%; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); } }
.c-etudie__tete { display: flex; flex-wrap: wrap; gap: 24px 56px; align-items: baseline; border-bottom: 1px solid var(--sol-filet-sombre); padding-bottom: 12px; margin-bottom: 40px; }
.c-etudie__tete .c-surtitre { margin: 0; }
.c-etudie__note { margin: 0; font-family: var(--sol-etroit); font-size: 13px; color: oklch(0.72 0.008 260); }
.c-etudie__grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 40px; }
.c-etudie__grille h3 { font-family: var(--sol-serif); font-size: 30px; line-height: 1.05; margin: 0 0 12px; color: var(--sol-blanc); }
.c-etudie__grille p { margin: 0; color: var(--sol-sur-sombre); }
.c-pourquoi { display: flex; flex-wrap: wrap; gap: 56px; align-items: flex-start; }
.c-pourquoi__texte { flex: 1 1 520px; min-width: 0; }
.c-pourquoi__texte p { color: var(--sol-encre-douce); max-width: 44em; }
.c-pourquoi__dl { flex: 1 1 320px; min-width: 0; margin: 0; border-top: 1px solid var(--sol-encre); }
.c-pourquoi__dl > div { display: flex; gap: 20px; padding: 12px 0; border-bottom: 1px solid var(--sol-filet); align-items: baseline; flex-wrap: wrap; }
.c-pourquoi__dl dt { font-family: var(--sol-etroit); font-size: 14px; letter-spacing: 0; color: var(--sol-gris); flex: 0 0 170px; }
.c-pourquoi__dl dd { margin: 0; font-family: var(--sol-etroit); font-size: 17px; }
/* avis, partagés avec l'accueil */
.c-avis__tete { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 12px 24px; border-bottom: 1px solid var(--sol-encre); padding-bottom: 12px; margin-bottom: 36px; }
.c-avis__meta { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px 24px; }
.c-avis__note { margin: 0; font-family: ui-monospace, Menlo, monospace; font-size: 12px; color: var(--sol-accent); }
.c-avis__grille { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 32px; }
.c-avis__carte { margin: 0; background: var(--sol-fond); border: 1px solid var(--sol-filet); padding: 26px 28px; display: flex; flex-direction: column; gap: 18px; min-height: 220px; }
.c-avis__etoiles { margin: 0; font-size: 17px; letter-spacing: 0.22em; color: oklch(0.80 0.16 85); }
.c-avis__texte { margin: 0; flex: 1 1 auto; font-family: var(--sol-serif); font-size: 24px; line-height: 1.25; }
.c-avis__auteur { font-family: var(--sol-etroit); font-size: 14px; letter-spacing: 0; color: var(--sol-gris-clair); }
.c-avis__pied { margin: 24px 0 0; max-width: 46em; font-family: var(--sol-etroit); font-size: 14px; color: oklch(0.46 0.008 260); }

/* ==========================================================================
   Passe mobile
   ========================================================================== */
@media (max-width: 720px) {
	/* fil d'Ariane : on garde le chemin, pas la page courante (elle est sous le H1) */
	.c-fil { padding: 10px 0; }
	.c-fil__item:has([aria-current]) { display: none; }
	.c-fiche__tete { padding-bottom: 28px; gap: 16px; }
	.c-fiche__h1 { font-size: clamp(32px, 8.4vw, 66px); }
	.c-fiche__h1--index { font-size: clamp(36px, 10vw, 92px); }
	.c-fiche__surtitre { margin-bottom: 14px; }
	.c-fiche__intro { font-size: 17px; }
	.c-fiche__une, .c-article__une { padding-bottom: 28px; }
	.c-fiche__img, .c-fiche__img--large, .c-article__img { aspect-ratio: 4 / 3; }
	.c-carac { padding: 28px 0; }
	.c-carac__dl { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 24px; }
	.c-carac__dl dd { font-size: 16px; }
	.c-recit, .c-presta { padding-top: 48px; }
	.c-recit .c-surtitre { margin-bottom: 28px; }
	.c-prose h2 { margin-top: 40px; }
	.c-prose .wp-block-image { margin: 28px 0; }
	.c-prose .wp-block-details summary { font-size: 20px; padding: 14px 0; }
	.c-prose .wp-block-gallery { margin-top: 40px; gap: 12px; grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.c-prose .wp-block-gallery .wp-block-image:nth-child(7n + 1) { grid-column: 1 / -1; }
	.c-prose .wp-block-gallery .wp-block-image:nth-child(7n + 1) img { aspect-ratio: 3 / 2; }
	/* filtres : une rangée qui défile, au lieu de dix lignes de boutons */
	.c-filtres__inner { padding-top: 16px; padding-bottom: 16px; gap: 16px; }
	.c-filtres__groupe { flex-basis: 100%; }
	.c-filtres__boutons { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; margin: 0 calc(-1 * var(--sol-gouttiere)); padding: 0 var(--sol-gouttiere) 4px; scroll-padding-left: var(--sol-gouttiere); }
	.c-filtres__boutons::-webkit-scrollbar { display: none; }
	.c-filtres__f { flex: 0 0 auto; white-space: nowrap; }
	.c-index__grille { padding-bottom: 56px; }
	.c-carte__titre { font-size: 20px; }
	.c-voisins__tete { flex-wrap: wrap; gap: 8px 24px; }
	.c-domaines { padding: 48px 0; }
	.c-domaines__inner { gap: 32px; }
	.c-domaines__nom { font-size: 23px; }
	.c-methode__liste li { grid-template-columns: 36px minmax(0, 1fr); gap: 4px 16px; padding: 18px 0; }
	.c-methode__nom { font-size: 24px; }
	/* fiches d'identité : libellé au-dessus de la valeur, toujours */
	.c-cabinet__dl > div, .c-cabinet--page .c-cabinet__dl > div, .c-pourquoi__dl > div { flex-direction: column; gap: 4px; align-items: flex-start; }
	.c-cabinet__dl dt, .c-cabinet--page .c-cabinet__dl dt, .c-pourquoi__dl dt { flex-basis: auto; }
	.c-cabinet--page, .c-pourquoi, .c-contact-page, .c-contact__inner, .c-article__corps, .c-presta__corps { gap: 40px; }
	.c-cabinet__portrait { flex-basis: 100%; max-width: 100%; }
	.c-article__h1 { font-size: clamp(32px, 9vw, 76px); }
	.c-article__aside { position: static; }
	.c-prose--article { font-size: 17px; }
	.c-encart { padding: 22px; }
	.c-etudie__grille { gap: 28px; }
	.c-etudie__grille h3 { font-size: 26px; }
	.c-contact__plan { padding-bottom: 48px; }
	.c-contact__iframe { aspect-ratio: 4 / 3; }
	.c-form__champ input, .c-form__champ select, .c-form__champ textarea { font-size: 16px; }
	.c-form__envoi .c-btn { width: 100%; justify-content: center; }
	.c-plan__liste { columns: 1; }
	.c-avis__grille { gap: 16px; }
	.c-avis__carte { min-height: 0; padding: 22px; gap: 14px; }
	.c-avis__texte { font-size: 21px; }
	.c-avis__tete { margin-bottom: 24px; }
	.c-lightbox__fermer { top: 12px; right: 12px; }
	.c-lightbox__img { max-height: calc(100svh - 170px); }
}

/* ---------- reportage d'une réalisation : mosaïque jointive (15/09/2026) ----------
   « Coller les images après avoir cliqué sur projet pour en avoir un max » : grille de six
   colonnes, chaque vue en occupe deux (trois par rangée), la première toute la largeur. Une
   rangée incomplète en fin de galerie s'élargit pour ne laisser aucun trou. */
.c-reportage { padding-bottom: 8px; }
.c-reportage .wp-block-gallery { margin: 0; display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 0; }
.c-reportage .wp-block-gallery .wp-block-image { margin: 0; grid-column: span 2; overflow: hidden; cursor: zoom-in; width: auto !important; max-width: none; }
.c-reportage .wp-block-gallery .wp-block-image img { display: block; width: 100%; height: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: oklch(0.88 0.006 160); transition: transform 700ms var(--sol-ease); }
@media (hover: hover) and (pointer: fine) { .c-reportage .wp-block-gallery .wp-block-image:hover img { transform: scale(1.03); } }
/* 30/09/2026 (retours de la cliente : « on ne voit qu'un bout dilaté ») : plus aucune vue en
   pleine largeur au format 21/9. La première vue est en grand sur les deux tiers, au même 4/3
   que les autres, les deux suivantes empilées à sa droite ; ensuite trois par rangée. Une rangée
   finale de deux vues s'élargit (3/2) ; une vue seule est centrée, jamais étirée. */
.c-reportage .wp-block-gallery .wp-block-image:first-child { grid-column: span 4; grid-row: span 2; }
.c-reportage .wp-block-gallery .wp-block-image:last-child:nth-child(3n + 4) { grid-column: 3 / span 2; }
.c-reportage .wp-block-gallery .wp-block-image:last-child:nth-child(3n + 5),
.c-reportage .wp-block-gallery .wp-block-image:nth-last-child(2):nth-child(3n + 4) { grid-column: span 3; }
.c-reportage .wp-block-gallery .wp-block-image:last-child:nth-child(3n + 5) img,
.c-reportage .wp-block-gallery .wp-block-image:nth-last-child(2):nth-child(3n + 4) img { aspect-ratio: 3 / 2; }
/* Galeries d'une ou deux vues : pas de grande vue sur deux rangées. */
.c-reportage .wp-block-gallery .wp-block-image:first-child:last-child { grid-column: 2 / span 4; grid-row: auto; }
.c-reportage .wp-block-gallery .wp-block-image:first-child:nth-last-child(2),
.c-reportage .wp-block-gallery .wp-block-image:first-child:nth-last-child(2) + .wp-block-image { grid-column: span 3; grid-row: auto; }
.c-reportage .wp-block-gallery figcaption { display: none; }
/* Image d'ouverture (30/09/2026) : seule, entière (aucun recadrage), centrée, jamais plus haute que
   l'écran ; puis la galerie en vues égales, trois par rangée, séparées d'un filet de 6 px. */
.c-ouverture { margin: 0 0 6px; background: var(--sol-fond); }
.c-ouverture__img { display: block; width: auto; max-width: 100%; height: auto; max-height: calc(100svh - 40px); margin: 0 auto; }
.c-reportage--ouverture .wp-block-gallery { gap: 6px; }
.c-reportage--ouverture .wp-block-gallery .wp-block-image,
.c-reportage--ouverture .wp-block-gallery .wp-block-image:first-child,
.c-reportage--ouverture .wp-block-gallery .wp-block-image:first-child:last-child,
.c-reportage--ouverture .wp-block-gallery .wp-block-image:first-child:nth-last-child(2),
.c-reportage--ouverture .wp-block-gallery .wp-block-image:first-child:nth-last-child(2) + .wp-block-image,
.c-reportage--ouverture .wp-block-gallery .wp-block-image:last-child:nth-child(3n + 4),
.c-reportage--ouverture .wp-block-gallery .wp-block-image:last-child:nth-child(3n + 5),
.c-reportage--ouverture .wp-block-gallery .wp-block-image:nth-last-child(2):nth-child(3n + 4) { grid-column: span 2; grid-row: auto; }
.c-reportage--ouverture .wp-block-gallery .wp-block-image img,
.c-reportage--ouverture .wp-block-gallery .wp-block-image:last-child:nth-child(3n + 5) img,
.c-reportage--ouverture .wp-block-gallery .wp-block-image:nth-last-child(2):nth-child(3n + 4) img { aspect-ratio: 4 / 3; }
/* Rangée finale incomplète : une vue seule est centrée, deux vues se partagent la largeur. */
.c-reportage--ouverture .wp-block-gallery .wp-block-image:last-child:nth-child(3n + 1) { grid-column: 3 / span 2; }
.c-reportage--ouverture .wp-block-gallery .wp-block-image:last-child:nth-child(3n + 2),
.c-reportage--ouverture .wp-block-gallery .wp-block-image:nth-last-child(2):nth-child(3n + 1) { grid-column: span 3; }
.c-reportage--ouverture .wp-block-gallery .wp-block-image:first-child:last-child { grid-column: 2 / span 4; }
.c-reportage__texte { padding-top: 56px; padding-bottom: 28px; }
@media (max-width: 720px) {
	.c-reportage .wp-block-gallery { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.c-reportage .wp-block-gallery .wp-block-image,
	.c-reportage .wp-block-gallery .wp-block-image:first-child,
	.c-reportage .wp-block-gallery .wp-block-image:last-child:nth-child(3n + 4),
	.c-reportage .wp-block-gallery .wp-block-image:last-child:nth-child(3n + 5),
	.c-reportage .wp-block-gallery .wp-block-image:nth-last-child(2):nth-child(3n + 4),
	.c-reportage .wp-block-gallery .wp-block-image:first-child:last-child,
	.c-reportage .wp-block-gallery .wp-block-image:first-child:nth-last-child(2),
	.c-reportage .wp-block-gallery .wp-block-image:first-child:nth-last-child(2) + .wp-block-image { grid-column: auto; grid-row: auto; }
	.c-reportage .wp-block-gallery .wp-block-image img,
	.c-reportage .wp-block-gallery .wp-block-image:last-child:nth-child(3n + 5) img,
	.c-reportage .wp-block-gallery .wp-block-image:nth-last-child(2):nth-child(3n + 4) img { aspect-ratio: 1 / 1; }
	.c-reportage .wp-block-gallery .wp-block-image:first-child,
	.c-reportage .wp-block-gallery .wp-block-image:last-child:nth-child(2n) { grid-column: 1 / -1; }
	.c-reportage .wp-block-gallery .wp-block-image:first-child img,
	.c-reportage .wp-block-gallery .wp-block-image:last-child:nth-child(2n) img { aspect-ratio: 4 / 3; }
	.c-reportage__texte { padding-top: 40px; }
}

/* ---------- liens des contenus, sans soulignement (15/09/2026) ---------- */
.c-prose a { color: var(--sol-encre); font-weight: 500; text-decoration: none; }
.c-prose a:hover, .c-prose a:focus-visible { color: var(--sol-accent); text-decoration: underline; }

/* ---------- barre « menu » des tablettes : les encarts collants passent dessous ---------- */
@media (max-width: 1040px) { .c-article__aside { top: 88px; } }

/* Fiche avec image d'ouverture, téléphone (30/09/2026) : deux colonnes de vues carrées égales. */
@media (max-width: 720px) {
	.c-reportage--ouverture .wp-block-gallery { gap: 4px; }
	.c-reportage--ouverture .wp-block-gallery .wp-block-image,
	.c-reportage--ouverture .wp-block-gallery .wp-block-image:first-child,
	.c-reportage--ouverture .wp-block-gallery .wp-block-image:last-child:nth-child(3n + 1),
	.c-reportage--ouverture .wp-block-gallery .wp-block-image:last-child:nth-child(3n + 2),
	.c-reportage--ouverture .wp-block-gallery .wp-block-image:nth-last-child(2):nth-child(3n + 1),
	.c-reportage--ouverture .wp-block-gallery .wp-block-image:first-child:last-child { grid-column: auto; }
	.c-reportage--ouverture .wp-block-gallery .wp-block-image img,
	.c-reportage--ouverture .wp-block-gallery .wp-block-image:first-child img { aspect-ratio: 1 / 1; }
	.c-reportage--ouverture .wp-block-gallery .wp-block-image:last-child:nth-child(2n + 1) { grid-column: 1 / -1; }
	.c-reportage--ouverture .wp-block-gallery .wp-block-image:last-child:nth-child(2n + 1) img { aspect-ratio: 3 / 2; }
	.c-ouverture { margin-bottom: 4px; }
}

/* ---------- corrections de la relecture visuelle (05/10/2026) ---------- */
/* « Ce qui est étudié » : 5 cartes. auto-fit à 240 px en mettait 4 + 1 seule sur sa ligne. */
.c-etudie__grille { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (min-width: 1280px) {
	.c-etudie__grille { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 32px; }
	.c-etudie__grille h3 { font-size: 24px; }
}
@media (max-width: 720px) { .c-etudie__grille { grid-template-columns: minmax(0, 1fr); } }
/* Galeries des contenus : une vue sur sept prend 2 colonnes ; sans « dense » elle laissait un trou. */
.c-prose .wp-block-gallery { grid-auto-flow: dense; }
/* Bouton « Afficher les N autres photos » : sa marge était écrasée par la règle des blocs de .c-prose. */
.c-prose .c-galerie-plus { margin-top: 32px; }
