/* ==========================================================================
   Direction artistique « Lumière & trait d'or » — v2 (06/10/2026).
   Premier client : Maître El Khadraoui (ELK).

   v1 ne faisait que restyler les mises en page éditoriales du socle (celles de
   Dujancourt) : même silhouette, même site. v2 apporte la grammaire propre de
   la direction : ses variantes de sections (classes lo-*, rendues par
   scripts/directions/lumiere_or.py), son rythme (tout sur papier, filets d'or
   entre sections, pas de fonds alternés), son en-tête centré, son pied clair,
   et une ÉCHELLE TYPOGRAPHIQUE STRICTE à 7 degrés (jetons --ac-fs-1 à 7, que
   le socle utilise partout depuis scripts/_echelle_typo.py).

   Rôles des couleurs : paper = ivoire, surface = marbre, ink = nuit,
   primary = encre, accent = or (décor), --atelier-accent-strong = or profond
   (texte sur clair). Rien n'est caché sans JavaScript.
   ========================================================================== */

/* --- Échelle typographique : 7 tailles, pas une de plus -------------------- */
body.dir-lumiere-or {
  /* v4 (retour d'Aymeric) : texte courant ramené à 15 px ; titres d'éléments
     en Cormorant à 24 px (son œil est petit : à 21 px ils paraissaient plus
     petits que le texte en Montserrat qu'ils surmontent). */
  --ac-fs-1: 0.75rem;                                    /* 12 : surtitres, étiquettes, boutons */
  --ac-fs-2: 0.84375rem;                                 /* 13,5 : petit texte, notes */
  --ac-fs-3: 0.9375rem;                                  /* 15 : texte courant, chapeaux */
  --ac-fs-4: 1.5rem;                                     /* 24 : titres d'éléments (Cormorant) */
  --ac-fs-5: clamp(1.65rem, 1.4rem + 0.8vw, 2rem);       /* 32 : sous-titres, grandes entrées */
  --ac-fs-6: clamp(2.2rem, 1.6rem + 2.2vw, 3rem);        /* 48 : titres de section */
  --ac-fs-7: clamp(2.75rem, 1.8rem + 3.8vw, 4.5rem);     /* 72 : titre de page, grands chiffres */
  --wp--preset--font-size--small: var(--ac-fs-2);
  --wp--preset--font-size--medium: var(--ac-fs-3);
  --wp--preset--font-size--large: var(--ac-fs-5);
  --wp--preset--font-size--x-large: var(--ac-fs-6);
  --wp--preset--font-size--xx-large: var(--ac-fs-7);
  font-size: var(--ac-fs-3);
  line-height: 1.75;
}
body.dir-lumiere-or h1 { font-size: var(--ac-fs-7); }
body.dir-lumiere-or h2 { font-size: var(--ac-fs-6); }
body.dir-lumiere-or h3 { font-size: var(--ac-fs-4); }
body.dir-lumiere-or h4, body.dir-lumiere-or h5, body.dir-lumiere-or h6 { font-size: var(--ac-fs-3); }
body.dir-lumiere-or .has-xx-large-font-size { font-size: var(--ac-fs-7) !important; }
body.dir-lumiere-or .has-x-large-font-size { font-size: var(--ac-fs-6) !important; }
body.dir-lumiere-or .has-large-font-size { font-size: var(--ac-fs-5) !important; }
body.dir-lumiere-or .has-medium-font-size { font-size: var(--ac-fs-3) !important; }
body.dir-lumiere-or .has-small-font-size { font-size: var(--ac-fs-2) !important; }

:root {
  --dir-gold: var(--wp--preset--color--accent);
  --dir-gold-deep: var(--atelier-accent-strong);
  --dir-rule: color-mix(in srgb, var(--wp--preset--color--accent) 42%, transparent);
  --dir-arch: 999px 999px 0 0;
  --dir-diamond: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10'%3E%3Crect x='2.2' y='2.2' width='5.6' height='5.6' transform='rotate(45 5 5)' fill='%23C9A13B'/%3E%3C/svg%3E");
  --dir-arc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 400'%3E%3Ccircle cx='200' cy='200' r='196' fill='none' stroke='%23C9A13B' stroke-width='1' stroke-dasharray='760 472' transform='rotate(200 200 200)'/%3E%3C/svg%3E");
  --dir-filet:
    var(--dir-diamond) center / 10px 10px no-repeat,
    linear-gradient(var(--dir-gold), var(--dir-gold)) left center / 62px 1px no-repeat,
    linear-gradient(var(--dir-gold), var(--dir-gold)) right center / 62px 1px no-repeat;
  --ac-rule: var(--dir-rule);
}

/* --- Typographie ---------------------------------------------------------- */
h1, h2, h3, h4 { font-weight: 400; letter-spacing: -0.005em; }
.ac-title, .ac-hero-title { font-weight: 300; line-height: 1.08; }
.accent-word, .ac-title em, .ac-hero-title em { font-style: italic; color: var(--dir-gold-deep); }
.has-ink-background-color .accent-word, .has-ink-background-color .ac-title em,
.has-ink-background-color .ac-hero-title em { color: var(--dir-gold); }
.ink-underline { white-space: normal; }
.ink-underline::after { display: none; }
.ac-kicker { font-size: var(--ac-fs-1); font-weight: 500; letter-spacing: 0.32em; color: var(--dir-gold-deep); }
.ac-kicker::before { display: none; }
.ac-kicker--light { color: var(--dir-gold); }
.ac-kicker a { border-bottom-color: var(--dir-rule); }
.ac-note { font-size: var(--ac-fs-2); }

/* --- Têtes de section : toujours centrées --------------------------------- */
/* (classe répétée : passe devant la règle « constrained » de compose.css,
   spécificité 0,5,0, qui recale surtitres et titres à gauche) */
body.dir-lumiere-or .lo-sec.lo-sec.lo-sec.lo-sec :is(.ac-kicker, .ac-title, .lo-intro, .ac-note--center),
body.dir-lumiere-or .ac-sec.ac-sec.ac-sec.ac-sec > :is(.ac-kicker, .ac-title, .ac-intro, .ac-note) {
  margin-left: auto !important;
  margin-right: auto !important;
  text-align: center;
}
.lo-sec .ac-title { max-width: 24ch; }
.lo-intro { max-width: 58ch; color: var(--wp--preset--color--ink-soft); }
.ac-title.has-text-align-center::after,
.ac-sec > .ac-title::after {
  content: ""; display: block; width: 150px; height: 10px; margin: 1.1rem auto 0; background: var(--dir-filet);
}
.lo-sec .ac-title + * { margin-top: var(--wp--preset--spacing--md) !important; }

/* --- Rythme : tout sur papier, un filet d'or entre deux sections --------- */
.lo-sec, .lo-hero { position: relative; }
:is(.lo-sec, .lo-hero-sobre, .ac-hero-veil).has-paper-background-color + .lo-sec.has-paper-background-color::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  width: 190px;
  height: 10px;
  transform: translate(-50%, -50%);
  background:
    var(--dir-diamond) center / 10px 10px no-repeat,
    linear-gradient(var(--dir-gold), var(--dir-gold)) left center / 82px 1px no-repeat,
    linear-gradient(var(--dir-gold), var(--dir-gold)) right center / 82px 1px no-repeat;
}
.lo-sec > * + * { margin-top: var(--wp--preset--spacing--lg); }
.lo-centre { justify-content: center; }

/* Liens « voir la page » en fin de texte : capitales espacées, or profond */
:is(.lo-porte-texte, .lo-col-texte, .lo-ligne-texte) a:last-child:not([href^="tel:"]):not([href^="mailto:"]) {
  display: table;
  margin-top: 1rem;
  font-size: var(--ac-fs-1);
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  text-decoration: none;
  color: var(--dir-gold-deep);
  border-bottom: 1px solid var(--dir-rule);
}
:is(.lo-porte-texte, .lo-col-texte, .lo-ligne-texte) a:last-child:not([href^="tel:"]):not([href^="mailto:"])::after { content: " →"; }

/* --- Boutons : angles droits, capitales espacées ------------------------- */
.wp-block-button__link {
  border-radius: 0 !important;
  font-size: var(--ac-fs-1) !important;
  font-weight: 500;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  padding: 1.15em 2.2em !important;
}
.wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { transform: none; box-shadow: none; opacity: 0.88; }
.wp-block-button.is-style-outline .wp-block-button__link {
  border: 0 !important;
  border-bottom: 1px solid var(--dir-gold) !important;
  background: transparent !important;
  padding: 0.45em 0 !important;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover { transform: none; background: transparent !important; }
.link-arrow .arrow { color: var(--dir-gold); }
.wp-block-buttons { gap: 1.2rem 2.2rem; align-items: center; }
.lo-btn-label { color: var(--dir-gold-deep); margin-right: 0.6em; }
.lo-btn-light .wp-block-button__link { color: var(--wp--preset--color--paper) !important; }
.lo-btn-light .lo-btn-label { color: var(--dir-gold); }
.has-ink-background-color .wp-block-button:not(.is-style-outline) .wp-block-button__link {
  background: var(--dir-gold) !important; color: var(--wp--preset--color--ink) !important;
}

/* ==========================================================================
   EN-TÊTES DE PAGE
   ========================================================================== */
/* « Voile » : photo en fond, contenu centré, arc d'or (accueil) */
.ac-hero-veil { position: relative; overflow: hidden; isolation: isolate; min-height: 78vh; display: flex; align-items: center; }
.ac-hero-veil > .ac-hero-bgimg { position: absolute !important; inset: 0; z-index: -2; width: 100% !important; max-width: none !important; height: 100%; margin: 0 !important; }
.ac-hero-veil > .ac-hero-bgimg img { width: 100%; height: 100%; object-fit: cover; }
.ac-hero-veil::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--wp--preset--color--paper) 80%, transparent) 0%,
    color-mix(in srgb, var(--wp--preset--color--paper) 91%, transparent) 62%,
    var(--wp--preset--color--paper) 100%);
}
.ac-hero-veil-inner { position: relative; width: 100%; max-width: 900px; margin: 0 auto !important; text-align: center; }
.ac-hero-veil-inner::before {
  content: ""; position: absolute; left: 50%; top: 50%; width: min(92vw, 860px); aspect-ratio: 1;
  transform: translate(-50%, -50%); background: var(--dir-arc) center / contain no-repeat;
  opacity: 0.75; z-index: -1; pointer-events: none;
}
.ac-hero-veil :is(.ac-kicker, .ac-hero-lead, .ac-hero-title) { text-align: center; margin-left: auto !important; margin-right: auto !important; }
.ac-hero-veil .ac-hero-title { max-width: 18ch; }
.ac-hero-veil .ac-hero-title::after { content: ""; display: block; width: 150px; height: 10px; margin: 1.4rem auto 0; background: var(--dir-filet); }
.ac-hero-veil .ac-hero-lead { max-width: 40rem; font-size: var(--ac-fs-3); }
.ac-hero-veil .wp-block-buttons { justify-content: center; }
@media (prefers-reduced-motion: no-preference) {
  html.has-js .ac-hero-veil-inner::before { animation: dir-arc-in 2.2s 0.3s cubic-bezier(0.3, 0.6, 0.2, 1) both; }
  html.has-js .lo-anneau { animation: lo-ring-in 2.4s 0.2s cubic-bezier(0.3, 0.6, 0.2, 1) both; }
}
@keyframes dir-arc-in { from { opacity: 0; transform: translate(-50%, -50%) rotate(-24deg); } to { opacity: 0.75; transform: translate(-50%, -50%) rotate(0); } }
@keyframes lo-ring-in { from { opacity: 0; transform: rotate(-30deg); } to { opacity: 0.85; transform: rotate(0); } }

/* « Nuit » : bande encre, texte à gauche, image en arche, anneau d'or (domaines) */
.lo-hero-nuit { overflow: hidden; isolation: isolate; }
.lo-anneau {
  position: absolute; z-index: -1; right: -12%; top: -38%; width: min(64vw, 820px); height: auto;
  color: var(--dir-gold); opacity: 0.85; pointer-events: none;
}
.lo-anneau circle { stroke-dasharray: 0.62 0.38; transform: rotate(118deg); transform-origin: 50% 50%; }
.lo-hero-cols { gap: clamp(2rem, 6vw, 5rem) !important; }
.lo-hero-nuit .ac-hero-title { max-width: 16ch; margin-top: var(--wp--preset--spacing--sm) !important; }
.lo-hero-nuit .ac-hero-lead { max-width: 38rem; font-size: var(--ac-fs-3); color: color-mix(in srgb, var(--wp--preset--color--paper) 78%, transparent); }
.lo-hero-btns { margin-top: var(--wp--preset--spacing--md) !important; }
.lo-hero-image { padding: 10px; border: 1px solid var(--dir-rule); border-radius: var(--dir-arch); max-width: 430px; margin: 0 auto !important; }
.lo-arche { margin: 0 !important; }
.lo-arche img { display: block; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: var(--dir-arch); }

/* « Sobre » : bandeau centré sur papier, arc discret (pages utilitaires) */
.lo-hero-sobre { overflow: hidden; isolation: isolate; }
.lo-hero-sobre-inner { position: relative; max-width: 860px; margin: 0 auto !important; text-align: center; }
.lo-hero-sobre-inner::before {
  content: ""; position: absolute; z-index: -1; left: 50%; top: 58%; width: min(90vw, 640px); aspect-ratio: 1;
  transform: translate(-50%, -50%); background: var(--dir-arc) center / contain no-repeat; opacity: 0.5; pointer-events: none;
}
body.dir-lumiere-or .lo-hero-sobre.lo-hero-sobre .ac-kicker { text-align: center; margin-left: auto !important; margin-right: auto !important; }
.lo-hero-sobre .ac-hero-title { margin-left: auto !important; margin-right: auto !important; max-width: 20ch; }
.lo-hero-sobre .ac-hero-title::after { content: ""; display: block; width: 150px; height: 10px; margin: 1.3rem auto 0; background: var(--dir-filet); }
.lo-hero-sobre .lo-lead { max-width: 42rem; margin: var(--wp--preset--spacing--md) auto 0 !important; color: var(--wp--preset--color--ink-soft); }

/* ==========================================================================
   SECTIONS (lo-*)
   ========================================================================== */
/* Portes : deux ou quatre grandes entrées */
.lo-portes-grille { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 1100px; margin-left: auto !important; margin-right: auto !important; border: 1px solid var(--dir-rule); }
.lo-porte { display: flex; flex-direction: column; gap: 0.9rem; padding: clamp(2rem, 4vw, 3.2rem) clamp(1.5rem, 3.5vw, 3rem); }
.lo-porte + .lo-porte { border-left: 1px solid var(--dir-rule); }
.lo-n4 > .lo-porte:nth-child(n+3) { border-top: 1px solid var(--dir-rule); }
.lo-n4 > .lo-porte:nth-child(3) { border-left: 0; }
.lo-porte-titre { margin: 0 !important; font-size: var(--ac-fs-5); font-weight: 400; }
.lo-porte-texte { margin: 0 !important; color: var(--wp--preset--color--ink-soft); }

/* Colonnes à losange (3 ou 6) */
.lo-colonnes-grille { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: clamp(2.2rem, 4vw, 3.5rem) clamp(1.5rem, 3vw, 3rem); text-align: center; }
.lo-col::before { content: ""; display: block; width: 10px; height: 10px; margin: 0 auto 1.1rem; background: var(--dir-diamond) center / contain no-repeat; }
.lo-col-titre { margin: 0 !important; font-size: var(--ac-fs-4); }
.lo-col-texte { margin: 0.6rem 0 0 !important; color: var(--wp--preset--color--ink-soft); }

/* Liste à filets */
.lo-lignes { max-width: 1000px; margin-left: auto !important; margin-right: auto !important; border-bottom: 1px solid var(--dir-rule); }
.lo-ligne { display: grid; grid-template-columns: minmax(0, 0.42fr) minmax(0, 1fr); gap: 0.5rem 3rem; padding: 1.7rem 0; border-top: 1px solid var(--dir-rule); align-items: baseline; }
.lo-ligne-titre { margin: 0 !important; font-size: var(--ac-fs-5); }
.lo-ligne-texte { margin: 0 !important; color: var(--wp--preset--color--ink-soft); }

/* Frise horizontale */
.lo-frise-ligne { position: relative; display: grid; grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); gap: 1.6rem; text-align: center; }
.lo-frise-ligne.lo-n2 { --n: 2; } .lo-frise-ligne.lo-n3 { --n: 3; } .lo-frise-ligne.lo-n4 { --n: 4; }
.lo-frise-ligne::before { content: ""; position: absolute; top: 9px; left: 10%; right: 10%; height: 1px; background: var(--dir-gold); }
.lo-jalon { position: relative; }
.lo-jalon-point { display: block; width: 18px; height: 18px; margin: 0 auto 1.1rem; border: 1px solid var(--dir-gold); border-radius: 50%; background: var(--wp--preset--color--paper); }
.lo-jalon:last-child .lo-jalon-point { background: var(--dir-gold); }
.lo-jalon-titre { margin: 0 !important; font-size: var(--ac-fs-4); }
.lo-jalon-texte { margin: 0.5rem 0 0 !important; font-size: var(--ac-fs-2); line-height: 1.65; color: var(--wp--preset--color--ink-soft); }

/* Étapes centrées en chiffres romains */
.lo-etapes-liste { max-width: 720px; margin-left: auto !important; margin-right: auto !important; text-align: center; }
.lo-etape + .lo-etape::before { content: ""; display: block; width: 1px; height: 42px; margin: 1.4rem auto; background: var(--dir-gold); }
.lo-romain { margin: 0 !important; font-family: var(--wp--preset--font-family--heading); font-style: italic; font-size: var(--ac-fs-5); color: var(--dir-gold-deep); line-height: 1; }
.lo-etape-titre { margin: 0.5rem 0 0 !important; font-size: var(--ac-fs-4); }
.lo-etape-texte { margin: 0.5rem 0 0 !important; color: var(--wp--preset--color--ink-soft); }

/* Vis-à-vis */
.lo-vav { display: grid; grid-template-columns: repeat(var(--n, 2), minmax(0, 1fr)); max-width: 1100px; margin-left: auto !important; margin-right: auto !important; text-align: center; }
.lo-vav.lo-n3 { --n: 3; } .lo-vav.lo-n4 { --n: 4; }
.lo-vav-col { padding: 0.5rem clamp(1.2rem, 3vw, 2.6rem); }
.lo-vav-col + .lo-vav-col { border-left: 1px solid var(--dir-rule); }
.lo-vav-nom { margin: 0 !important; font-size: var(--ac-fs-5); }
.lo-vav-tag { margin: 0.4rem 0 1.2rem !important; font-family: var(--wp--preset--font-family--heading); font-style: italic; color: var(--dir-gold-deep); }
.lo-vav-points { list-style: none; margin: 0 !important; padding: 0 !important; }
.lo-vav-points li { padding: 0.75rem 0; font-size: var(--ac-fs-2); color: var(--wp--preset--color--ink-soft); }
.lo-vav-points li + li { border-top: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 22%, transparent); }

/* Colonne de lecture centrée, écrin à double filet */
.lo-lecture-col, .lo-ecrin-cadre { max-width: 760px; margin-left: auto !important; margin-right: auto !important; }
.lo-prose { max-width: none; }
.lo-sec .ac-more > summary { margin-left: 0; }
.lo-ecrin-cadre {
  max-width: 920px;
  padding: clamp(2rem, 5vw, 3.6rem) clamp(1.25rem, 5vw, 4rem);
  background: var(--wp--preset--color--surface);
  border: 1px solid var(--dir-rule);
  box-shadow: 0 0 0 6px var(--wp--preset--color--paper), 0 0 0 7px var(--dir-rule);
}
.lo-apartes { display: grid; grid-template-columns: repeat(var(--n, 2), minmax(0, 1fr)); gap: 1.6rem; }
.lo-apartes.lo-n1 { --n: 1; } .lo-apartes.lo-n3 { --n: 3; }
.lo-aparte { padding-top: 1rem; border-top: 1px solid var(--dir-gold); }
.lo-aparte-titre { margin: 0 !important; font-size: var(--ac-fs-1); font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--dir-gold-deep); }
.lo-aparte-texte { margin: 0.45rem 0 0 !important; font-size: var(--ac-fs-2); color: var(--wp--preset--color--ink-soft); }

/* Droits : liste à losanges */
.lo-droits-liste { max-width: 920px; margin-left: auto !important; margin-right: auto !important; padding: 0 !important; list-style: none; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.4rem 3rem; }
.lo-droits-liste li { position: relative; padding: 0.8rem 0 0.8rem 1.8rem; border-bottom: 1px solid color-mix(in srgb, var(--wp--preset--color--accent) 22%, transparent); }
.lo-droits-liste li::before { content: ""; position: absolute; left: 0; top: 1.3rem; width: 10px; height: 10px; background: var(--dir-diamond) center / contain no-repeat; }

/* Chiffres en or */
.lo-chiffres-ligne { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); max-width: 1100px; margin-left: auto !important; margin-right: auto !important; text-align: center; }
.lo-chiffres-ligne.lo-n2 { --n: 2; } .lo-chiffres-ligne.lo-n4 { --n: 4; }
.lo-chiffre { padding: 0.5rem 1.5rem; }
.lo-chiffre + .lo-chiffre { border-left: 1px solid var(--dir-rule); }
.lo-chiffre-valeur { margin: 0 !important; font-family: var(--wp--preset--font-family--heading); font-weight: 300; font-size: var(--ac-fs-7); line-height: 1.05; color: var(--dir-gold-deep); white-space: nowrap; }
.lo-chiffre-libelle { margin: 0.8rem auto 0 !important; max-width: 28ch; font-size: var(--ac-fs-2); color: var(--wp--preset--color--ink-soft); }

/* Questions centrées */
.lo-faq-liste { max-width: 820px; margin-left: auto !important; margin-right: auto !important; border-top: 1px solid var(--dir-rule); }
.lo-faq-liste .faq-item { border: 0; border-bottom: 1px solid var(--dir-rule); margin: 0 !important; padding: 0; background: none; }
.lo-faq-liste .faq-item summary { position: relative; padding: 1.35rem 2.6rem 1.35rem 0; font-family: var(--wp--preset--font-family--heading); font-size: var(--ac-fs-4); font-weight: 400; list-style: none; cursor: pointer; text-wrap: pretty; }
.lo-faq-liste .faq-item summary::-webkit-details-marker { display: none; }
.lo-faq-liste .faq-item summary::after { content: "+"; position: absolute; right: 0.4rem; top: 50%; transform: translateY(-50%); color: var(--dir-gold); font-weight: 300; font-size: var(--ac-fs-5); }
.lo-faq-liste .faq-item[open] summary::after { content: "–"; }
.lo-faq-liste .faq-item p { margin: 0 0 1.35rem !important; }

/* Domaines en liste */
.lo-domaines-liste { max-width: 980px; margin-left: auto !important; margin-right: auto !important; border-bottom: 1px solid var(--dir-rule); }
.lo-domaine { position: relative; display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.2fr) auto; gap: 0.3rem 2.4rem; align-items: baseline; padding: 1.35rem 0.25rem; border-top: 1px solid var(--dir-rule); transition: background 0.3s ease; }
.lo-domaine-nom { margin: 0 !important; font-size: var(--ac-fs-5); }
.lo-domaine-nom a { color: inherit; text-decoration: none; }
.lo-domaine-nom a::after { content: ""; position: absolute; inset: 0; }
.lo-domaine-resume { margin: 0 !important; font-size: var(--ac-fs-2); color: var(--wp--preset--color--ink-soft); }
.lo-domaine-fleche { color: var(--dir-gold); transition: transform 0.3s ease; }
.lo-domaine:hover .lo-domaine-nom a { color: var(--dir-gold-deep); }
.lo-domaine:hover .lo-domaine-fleche { transform: translateX(4px); }
.lo-domaine:focus-within { outline: 2px solid var(--dir-gold); outline-offset: 4px; }

/* Bande nuit (appel final) */
.lo-nuit-inner { max-width: 820px; margin-left: auto !important; margin-right: auto !important; text-align: center; }
.lo-nuit.has-ink-background-color { background-image: var(--dir-arc); background-repeat: no-repeat; background-size: min(80vw, 640px); background-position: 50% 30%; }
.lo-nuit .lo-intro { color: color-mix(in srgb, var(--wp--preset--color--paper) 76%, transparent); }
.lo-nuit:not(.has-ink-background-color) .lo-intro { color: var(--wp--preset--color--ink-soft); }

/* Citation entre filets */
.lo-citation-bloc { max-width: 860px; margin-left: auto !important; margin-right: auto !important; padding: 0 !important; border: 0 !important; text-align: center; }
.lo-citation-bloc::before, .lo-citation-bloc::after { content: ""; display: block; width: 190px; height: 10px; margin: 0 auto 1.8rem; background: var(--dir-filet); }
.lo-citation-bloc::after { margin: 1.8rem auto 0; }
.lo-citation-bloc p { font-family: var(--wp--preset--font-family--heading); font-style: italic; font-weight: 300; font-size: var(--ac-fs-5); line-height: 1.45; }
.lo-citation-bloc cite { display: block; margin-top: 1.1rem; font-style: normal; font-size: var(--ac-fs-1); letter-spacing: 0.24em; text-transform: uppercase; color: var(--dir-gold-deep); }

/* Portrait en médaillon */
.lo-medaillon-cadre { width: min(300px, 70vw); margin-left: auto !important; margin-right: auto !important; text-align: center; }
.lo-medaillon { margin: 0 !important; padding: 10px; border: 1px solid var(--dir-rule); border-radius: var(--dir-arch); }
.lo-medaillon img { display: block; width: 100%; aspect-ratio: 3 / 4; object-fit: cover; object-position: 50% 20%; border-radius: var(--dir-arch); }
.lo-legende { margin: 0.9rem 0 0 !important; font-size: var(--ac-fs-1); letter-spacing: 0.24em; text-transform: uppercase; color: var(--dir-gold-deep); }
.lo-portrait-texte { max-width: 700px; margin-left: auto !important; margin-right: auto !important; }

/* Qualités en italique */
.lo-qualites-ligne { display: grid; grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr)); text-align: center; }
.lo-qualites-ligne.lo-n3 { --n: 3; }
.lo-qualites-ligne.lo-n5 { --n: 5; }
.lo-qualites-ligne.lo-n5 .lo-qualite { padding: 0.5rem 1rem; }
.lo-qualite { padding: 0.5rem 1.4rem; }
.lo-qualite + .lo-qualite { border-left: 1px solid var(--dir-rule); }
.lo-qualite-mot { margin: 0 !important; font-family: var(--wp--preset--font-family--heading); font-style: italic; font-size: var(--ac-fs-5); color: var(--dir-gold-deep); }
.lo-qualite-texte { margin: 0.7rem 0 0 !important; font-size: var(--ac-fs-2); color: var(--wp--preset--color--ink-soft); }

/* Adresse sur photo (fond nuit) */
.lo-adresse { overflow: hidden; isolation: isolate; min-height: min(560px, 80vh); display: flex; align-items: center; }
.lo-adresse > .lo-adresse-fond { position: absolute !important; inset: 0; z-index: -2; width: 100% !important; max-width: none !important; height: 100%; margin: 0 !important; }
.lo-adresse > .lo-adresse-fond img { width: 100%; height: 100%; object-fit: cover; }
.lo-adresse::after {
  content: ""; position: absolute; inset: 0; z-index: -1;
  background: linear-gradient(90deg, color-mix(in srgb, var(--wp--preset--color--ink) 90%, transparent) 0%,
    color-mix(in srgb, var(--wp--preset--color--ink) 62%, transparent) 55%, color-mix(in srgb, var(--wp--preset--color--ink) 20%, transparent) 100%);
}
.lo-adresse-inner { width: 100%; max-width: 1200px; margin: 0 auto !important; }
.lo-adresse-inner > * { max-width: 34rem; }
body.dir-lumiere-or .lo-sec.lo-sec.lo-sec.lo-sec.lo-adresse :is(.ac-kicker, .ac-title) { text-align: left; margin-left: 0 !important; }
.lo-adresse .ac-title::after { margin-left: 0; }
.lo-adresse-texte { color: color-mix(in srgb, var(--wp--preset--color--paper) 82%, transparent); }
.lo-adresse-texte a { color: inherit; }
.lo-adresse .lo-btn-light .wp-block-button__link { color: var(--wp--preset--color--paper) !important; }

/* Coordonnées en ligne */
.lo-coords { display: grid; grid-template-columns: repeat(var(--n, 3), minmax(0, 1fr)); max-width: 1100px; margin-left: auto !important; margin-right: auto !important; text-align: center; }
.lo-coords.lo-n2 { --n: 2; } .lo-coords.lo-n4 { --n: 4; }
.lo-coord { padding: 0.5rem 1.2rem; }
.lo-coord + .lo-coord { border-left: 1px solid var(--dir-rule); }
.lo-coord-libelle { margin: 0 !important; font-size: var(--ac-fs-1); font-weight: 600; letter-spacing: 0.24em; text-transform: uppercase; color: var(--dir-gold-deep); }
.lo-coord-valeur { margin: 0.6rem 0 0 !important; font-family: var(--wp--preset--font-family--heading); font-size: var(--ac-fs-4); }
.lo-coord-valeur a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--dir-rule); }
.lo-coord-aide { margin: 0.4rem 0 0 !important; font-size: var(--ac-fs-2); color: var(--wp--preset--color--ink-soft); }

/* Formulaire et document : têtes centrées */
.contact-section .contact-head { text-align: center; }
.contact-section .contact-head .ac-kicker, .contact-section .contact-head h2 { margin-left: auto !important; margin-right: auto !important; text-align: center; }
.contact-section .contact-head h2::after { content: ""; display: block; width: 150px; height: 10px; margin: 1.1rem auto 0; background: var(--dir-filet); }
.ac-doc-h { font-size: var(--ac-fs-5) !important; }
.ac-toc-title { font-size: var(--ac-fs-1); }

/* ==========================================================================
   EN-TÊTE DU SITE (centré) ET PIED (clair)
   ========================================================================== */
.dir-topbar { font-size: var(--ac-fs-2); letter-spacing: 0.02em; }
.dir-topbar a { text-decoration: none; color: inherit; }
.dir-topbar p { margin: 0 !important; }
.dir-topbar .dir-urgence a:last-child { color: var(--dir-gold); font-weight: 600; letter-spacing: 0.04em; margin-left: 1.6rem; }
.dir-topbar .dir-urgence a:last-child::before { content: "Urgence pénale · "; font-weight: 500; letter-spacing: 0.24em; text-transform: uppercase; font-size: var(--ac-fs-1); }
/* Libellé propre au client (13/10/2026) : data-label sur le lien ; data-label="" = sans libellé */
.dir-topbar .dir-urgence a:last-child[data-label]::before { content: attr(data-label) " · "; }
.dir-topbar .dir-urgence a:last-child[data-label=""]::before { content: none; }
.dir-topbar .dir-urgence a { white-space: nowrap; }
.dir-brand-name { font-family: var(--wp--preset--font-family--heading); font-size: var(--ac-fs-4); line-height: 1.1; letter-spacing: 0.03em; margin: 0 !important; }
.dir-brand-name a { color: inherit; text-decoration: none; }
.dir-brand-sub { font-size: var(--ac-fs-1); letter-spacing: 0.34em; text-transform: uppercase; color: var(--dir-gold-deep); margin: 0.25rem 0 0 !important; }
.site-header .nav-links a { font-size: var(--ac-fs-2); }
@media (min-width: 1080px) {
  /* Bureau : écusson centré, menu sur sa propre ligne entre deux filets ;
     l'en-tête n'est pas collant (il serait trop haut), seul le bouton d'appel suit. */
  body.dir-lumiere-or .site-header-part { position: relative; }
  html:has(body.dir-lumiere-or) { scroll-padding-top: 0; }
  .dir-head-centre .dir-head { flex-direction: column !important; align-items: center !important; gap: 0.9rem !important; flex-wrap: nowrap !important; }
  .dir-head-centre .dir-brand { flex-direction: column !important; align-items: center !important; gap: 0.5rem !important; text-align: center; }
  .dir-head-centre .brand-mark-logo img { width: 52px; height: 52px; }
  .dir-head-centre .dir-brand-name { font-size: var(--ac-fs-5); }
  .dir-head-centre .nav-links {
    justify-content: center; gap: 0.4rem 2.4rem !important; width: 100%;
    padding: 0.85rem 0; border-top: 1px solid var(--dir-rule);
  }
  .dir-head-centre .nav-links a { letter-spacing: 0.14em; text-transform: uppercase; font-size: var(--ac-fs-1); color: var(--wp--preset--color--ink) !important; }
}
@media (max-width: 1079px) {
  .dir-head-centre { padding-bottom: var(--wp--preset--spacing--xs) !important; }
  .dir-head-centre .dir-head { flex-direction: row !important; justify-content: space-between !important; align-items: center !important; flex-wrap: nowrap !important; }
  .dir-head-centre .dir-brand { flex-direction: row !important; align-items: center !important; gap: 0.7rem !important; }
  .dir-head-centre .dir-brand > .wp-block-paragraph, .dir-head-centre .dir-brand > p { margin: 0 !important; }
  .dir-head-centre .dir-brand-sub { display: none; }
}

/* Pied clair sur marbre, centré, sans « rideau » */
body.dir-lumiere-or .site-footer-part { position: static !important; }
body.dir-lumiere-or .wp-site-blocks > main { background: transparent; }
.dir-footer { text-align: center; border-top: 1px solid var(--dir-rule); }
.dir-footer p { margin-left: auto !important; margin-right: auto !important; }
.dir-footer a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--dir-rule); }
.dir-footer .dir-footer-name { font-family: var(--wp--preset--font-family--heading); font-size: var(--ac-fs-5); letter-spacing: 0.04em; }
.dir-footer .dir-footer-name::before { content: ""; display: block; width: 190px; height: 10px; margin: 0 auto 1.4rem; background: var(--dir-filet); }
.dir-footer .dir-footer-ligne { margin-top: 0.6rem !important; font-size: var(--ac-fs-2); color: var(--wp--preset--color--ink-soft); }
.dir-footer .dir-footer-nav { margin-top: var(--wp--preset--spacing--lg) !important; font-size: var(--ac-fs-1); letter-spacing: 0.16em; text-transform: uppercase; line-height: 2.4; }
.dir-footer .dir-footer-nav a { border-bottom: 0; }
.dir-footer .dir-footer-nav a:hover { color: var(--dir-gold-deep); }
.dir-footer .dir-footer-legal { margin-top: var(--wp--preset--spacing--lg) !important; padding-top: var(--wp--preset--spacing--sm); border-top: 1px solid var(--dir-rule); max-width: 1200px; font-size: var(--ac-fs-1); color: var(--wp--preset--color--ink-soft); }

/* ==========================================================================
   MOBILE
   ========================================================================== */
@media (max-width: 781px) {
  .lo-portes-grille, .lo-colonnes-grille, .lo-vav, .lo-chiffres-ligne, .lo-coords, .lo-apartes, .lo-droits-liste { grid-template-columns: minmax(0, 1fr); }
  .lo-porte + .lo-porte, .lo-n4 > .lo-porte:nth-child(3) { border-left: 0; border-top: 1px solid var(--dir-rule); }
  .lo-vav-col + .lo-vav-col, .lo-chiffre + .lo-chiffre, .lo-coord + .lo-coord { border-left: 0; border-top: 1px solid var(--dir-rule); padding-top: 1.6rem; margin-top: 1.2rem; }
  .lo-ligne { grid-template-columns: minmax(0, 1fr); }
  .lo-domaine { grid-template-columns: minmax(0, 1fr) auto; }
  .lo-domaine-resume { grid-column: 1; }
  .lo-domaine-fleche { grid-row: 1; grid-column: 2; }
  .lo-qualites-ligne { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.6rem 0; }
  .lo-qualite:nth-child(odd) { border-left: 0; }
  .lo-qualite:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .lo-qualite { padding: 0.5rem 0.8rem; }
  .lo-qualite-mot { font-size: var(--ac-fs-4); }
  .lo-frise-ligne { grid-template-columns: minmax(0, 1fr); gap: 1.6rem; text-align: left; padding-left: 2.4rem; }
  .lo-frise-ligne::before { top: 0; bottom: 0; left: 8px; right: auto; width: 1px; height: auto; }
  .lo-jalon-point { position: absolute; left: -2.4rem; top: 0.25rem; margin: 0; }
  .lo-hero-nuit .lo-hero-image { max-width: 260px; }
  .lo-anneau { width: 140vw; right: -70vw; top: -20%; }
  .ac-hero-veil { min-height: 70vh; }
  .ac-title.has-text-align-center::after { width: 110px; background-size: 10px 10px, 44px 1px, 44px 1px; }
}

/* Bouton d'urgence fixe sur mobile (pénal) */
.dir-urgence-mobile { display: none; }
@media (max-width: 781px) {
  .dir-urgence-mobile {
    display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 60;
    justify-content: space-between; align-items: center; padding: 0.85rem 1.25rem;
    background: var(--wp--preset--color--ink); color: var(--wp--preset--color--paper);
    border-top: 2px solid var(--dir-gold); text-decoration: none; font-weight: 600;
  }
  .dir-urgence-mobile span { font-size: var(--ac-fs-1); letter-spacing: 0.3em; text-transform: uppercase; color: var(--dir-gold); font-weight: 600; }
  body { padding-bottom: 3.4rem; }
}

/* --- Ajustements après rendu (06/10/2026) --------------------------------- */
.lo-prose + .lo-prose, .lo-portrait-texte > p + p, .lo-adresse-texte + .lo-adresse-texte { margin-top: 1.1em !important; }
.lo-col-texte a:last-child:not([href^="tel:"]):not([href^="mailto:"]) { margin: 1rem auto 0; }
.lo-medaillon-cadre + .ac-kicker { margin-top: var(--wp--preset--spacing--xl) !important; }
.lo-nuit-inner > .wp-block-buttons, .lo-hero-sobre-inner > .wp-block-buttons { margin-top: var(--wp--preset--spacing--md) !important; }

/* ==========================================================================
   v3 (06/10/2026, retour d'Aymeric : « trop sobre, fond trop similaire ») :
   fonds variés (marbre, nuit, encre chaude, photo voilée), nouvelles sections.
   ========================================================================== */
/* En-tête : sans position collante, le décalage de la barre d'admin laissait
   une bande vide au-dessus du bandeau (connecté uniquement). */
@media (min-width: 1080px) { body.dir-lumiere-or .site-header-part { top: auto !important; } }

/* Fond marbre : texture claire du client, à peine voilée */
.lo-fond-marbre.has-surface-background-color {
  background-image:
    linear-gradient(color-mix(in srgb, var(--wp--preset--color--surface) 72%, transparent), color-mix(in srgb, var(--wp--preset--color--surface) 72%, transparent)),
    var(--atelier-texture-light, none);
  background-size: cover;
  background-position: center;
}
/* Fonds sombres (nuit, encre chaude) : textes clairs, filets or */
.lo-sec:is(.has-ink-background-color, .has-primary-background-color) { color: var(--wp--preset--color--paper); }
.lo-sec.has-primary-background-color { background-image: radial-gradient(ellipse at 50% 0%, color-mix(in srgb, var(--wp--preset--color--accent) 14%, transparent), transparent 62%); }
.lo-sec:is(.has-ink-background-color, .has-primary-background-color) :is(.lo-intro, .lo-jalon-texte, .lo-etape-texte, .lo-chiffre-libelle, .lo-vav-points li, .lo-col-texte, .lo-ligne-texte, .lo-porte-texte, .lo-qualite-texte, .lo-coord-aide, .lo-domaine-resume, .lo-carte-resume, .lo-aparte-texte, .ac-note, .ac-prose) {
  color: color-mix(in srgb, var(--wp--preset--color--paper) 76%, transparent);
}
.lo-sec:is(.has-ink-background-color, .has-primary-background-color) :is(.lo-chiffre-valeur, .lo-romain, .lo-vav-tag, .lo-qualite-mot, .lo-coord-libelle, .lo-aparte-titre, .lo-citation-bloc cite) { color: var(--dir-gold); }
.lo-sec:is(.has-ink-background-color, .has-primary-background-color) :is(h2, h3, .lo-citation-bloc p) { color: var(--wp--preset--color--paper); }
.lo-sec:is(.has-ink-background-color, .has-primary-background-color) .lo-jalon-point { background: var(--wp--preset--color--ink); }
.lo-sec.has-primary-background-color .lo-jalon-point { background: var(--wp--preset--color--primary); }
.lo-sec:is(.has-ink-background-color, .has-primary-background-color) .lo-jalon:last-child .lo-jalon-point { background: var(--dir-gold); }
.lo-sec:is(.has-ink-background-color, .has-primary-background-color) a { color: inherit; }
.lo-sec:is(.has-ink-background-color, .has-primary-background-color) .faq-item summary { color: var(--wp--preset--color--paper); }
.lo-sec:is(.has-ink-background-color, .has-primary-background-color) .ac-more > summary { color: var(--dir-gold); }
.lo-frise.has-ink-background-color { background-image: var(--dir-arc); background-repeat: no-repeat; background-size: min(56vw, 600px); background-position: calc(100% + 260px) -260px; }
.lo-sec.lo-fond-marbre .lo-ecrin-cadre, .lo-sec.has-surface-background-color .lo-ecrin-cadre { background: var(--wp--preset--color--paper); box-shadow: 0 0 0 6px var(--wp--preset--color--surface), 0 0 0 7px var(--dir-rule); }

/* Texte + image en arche */
.lo-it-cols { gap: clamp(2rem, 6vw, 5.5rem) !important; max-width: 1100px; margin-left: auto !important; margin-right: auto !important; }
.lo-it-image { max-width: 400px; }
body.dir-lumiere-or .lo-sec.lo-sec.lo-sec.lo-sec.lo-image-texte :is(.ac-kicker, .ac-title) { text-align: left; margin-left: 0 !important; }
.lo-image-texte .ac-title::after { margin-left: 0; }
.lo-image-texte .ac-title { max-width: 18ch; }
.lo-image-texte .lo-apartes { margin-top: var(--wp--preset--spacing--md) !important; }
.lo-image-texte .lo-aparte + .lo-aparte { margin-top: 1rem; }

/* Questions sur deux colonnes */
.lo-faq-cols { gap: 0 3rem !important; max-width: 1100px; margin-left: auto !important; margin-right: auto !important; }
.lo-faq-cols .lo-faq-liste { max-width: none; }
.lo-faq-cols .wp-block-column + .wp-block-column .lo-faq-liste { border-top: 1px solid var(--dir-rule); }

/* Domaines en cartes */
.lo-cartes { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.2rem; max-width: 1150px; margin-left: auto !important; margin-right: auto !important; }
.lo-carte { position: relative; display: flex; flex-direction: column; gap: 0.6rem; padding: 2rem 1.8rem 1.6rem; background: var(--wp--preset--color--paper); border: 1px solid var(--dir-rule); transition: border-color 0.3s ease, transform 0.3s ease; }
.lo-carte::before { content: ""; position: absolute; top: -1px; left: 50%; width: 46px; height: 2px; transform: translateX(-50%); background: var(--dir-gold); }
.lo-carte-nom { margin: 0 !important; font-size: var(--ac-fs-5); text-align: center; }
.lo-carte-nom a { color: inherit; text-decoration: none; }
.lo-carte-nom a::after { content: ""; position: absolute; inset: 0; }
.lo-carte-resume { margin: 0 !important; flex: 1; font-size: var(--ac-fs-2); text-align: center; color: var(--wp--preset--color--ink-soft); }
.lo-carte .lo-domaine-fleche { text-align: center; }
.lo-carte:hover { border-color: var(--dir-gold); transform: translateY(-2px); }
.lo-carte:focus-within { outline: 2px solid var(--dir-gold); outline-offset: 4px; }
@media (prefers-reduced-motion: reduce) { .lo-carte:hover { transform: none; } }

/* Bande sur photo voilée */
.lo-nuit-photo { overflow: hidden; isolation: isolate; min-height: min(480px, 75vh); display: flex; align-items: center; }
.lo-nuit-photo > .lo-adresse-fond { position: absolute !important; inset: 0; z-index: -2; width: 100% !important; max-width: none !important; height: 100%; margin: 0 !important; }
.lo-nuit-photo > .lo-adresse-fond img { width: 100%; height: 100%; object-fit: cover; }
.lo-nuit-photo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: radial-gradient(ellipse at 50% 50%, color-mix(in srgb, var(--wp--preset--color--ink) 72%, transparent), color-mix(in srgb, var(--wp--preset--color--ink) 90%, transparent)); }
.lo-nuit-photo .lo-intro { color: color-mix(in srgb, var(--wp--preset--color--paper) 80%, transparent); }

@media (max-width: 781px) {
  .lo-it-image { max-width: 260px; margin: 0 auto !important; }
  .lo-faq-cols .wp-block-column + .wp-block-column .lo-faq-liste { border-top: 0; }
}
.lo-nuit.has-ink-background-color, .lo-nuit.has-primary-background-color { background-image: var(--dir-arc); background-repeat: no-repeat; background-size: min(56vw, 600px); background-position: calc(100% + 240px) -240px; }
.lo-nuit.lo-fond-marbre .lo-intro { color: var(--wp--preset--color--ink-soft); }

/* ==========================================================================
   v4 (06/10/2026, après-midi) : titres d'éléments plus présents, liste + image
   ========================================================================== */
:is(.lo-porte-titre, .lo-col-titre, .lo-ligne-titre, .lo-jalon-titre, .lo-etape-titre, .lo-vav-nom,
    .lo-domaine-nom, .lo-carte-nom, .lo-coord-valeur, .dir-brand-name) { font-weight: 500; line-height: 1.2; }
.lo-faq-liste .faq-item summary { font-weight: 500; line-height: 1.3; }
.lo-jalon-titre { margin-top: 0.2rem !important; }
.lo-medaillon-cadre { width: min(340px, 74vw); }
.lo-il-intro { max-width: 46ch; color: var(--wp--preset--color--ink-soft); }
.lo-il-lignes { border-bottom: 1px solid var(--dir-rule); }
.lo-il-ligne { padding: 1.1rem 0; border-top: 1px solid var(--dir-rule); }
.lo-il-ligne .lo-ligne-titre { font-size: var(--ac-fs-4); }
.lo-il-ligne .lo-ligne-texte { margin-top: 0.35rem !important; }
.lo-il-image { position: sticky; top: 2rem; }
.lo-sec:is(.has-ink-background-color, .has-primary-background-color) :is(.lo-il-intro) { color: color-mix(in srgb, var(--wp--preset--color--paper) 76%, transparent); }
@media (max-width: 781px) { .lo-il-image { position: static; } }

/* --- v5 (07/10/2026) : « liste + image » compacte ----------------------------
   Retour d'Aymeric : six entrées empilées faisaient une colonne bien plus haute
   que l'image. Entrées sur deux colonnes dès 4, texte des entrées en petit,
   image en arche étirée sur toute la hauteur du bloc de texte. */
.lo-il-cols { align-items: stretch !important; max-width: 1180px; }
/* 07/10 : l'image ne doit jamais dicter la hauteur (une photo verticale
   faisait une arche démesurée) : elle remplit en absolu la colonne, dont la
   hauteur est celle du texte (au moins 420 px). */
.lo-il-cols > .wp-block-column:has(.lo-il-image) { position: relative; min-height: 420px; }
.lo-il-image { position: absolute !important; inset: 0; max-width: none; margin: 0 !important; display: flex; }
.lo-il-image .lo-arche { flex: 1; display: block; height: 100%; }
.lo-il-image .lo-arche img { width: 100%; height: 100%; min-height: 0; aspect-ratio: auto; object-fit: cover; }
.lo-il-lignes:is(.lo-n4, .lo-n5, .lo-n6) { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 2.4rem; border-bottom: 0; }
.lo-il-lignes:is(.lo-n4, .lo-n5, .lo-n6) .lo-il-ligne { padding: 1rem 0 1.1rem; }
.lo-il-ligne .lo-ligne-texte { font-size: var(--ac-fs-2); line-height: 1.65; }
.lo-il-ligne .lo-ligne-texte a:last-child:not([href^="tel:"]):not([href^="mailto:"]) { margin-top: 0.6rem; }
@media (max-width: 781px) {
  .lo-il-lignes:is(.lo-n4, .lo-n5, .lo-n6) { grid-template-columns: minmax(0, 1fr); }
  .lo-il-cols > .wp-block-column:has(.lo-il-image) { min-height: 0; }
  .lo-il-image { position: static !important; max-width: 260px; margin: 0 auto !important; display: block; }
  .lo-il-image .lo-arche img { height: auto; aspect-ratio: 4 / 5; }
}
.lo-il-intro { margin-bottom: 1.2rem !important; }

/* --- Tour de toutes les pages (07/10/2026) ---------------------------------- */
/* Étapes en chiffres romains : en quinconce de part et d'autre d'un filet
   central (une étape sur deux décalée), deux fois moins haut qu'en colonne. */
@media (min-width: 782px) {
  .lo-etapes-liste:has(> .lo-etape:nth-child(3)) {
    position: relative; max-width: 980px; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 5.5rem; row-gap: 0.5rem; align-items: start;
  }
  .lo-etapes-liste:has(> .lo-etape:nth-child(3))::before {
    content: ""; position: absolute; top: 0.4rem; bottom: 0.4rem; left: 50%; width: 1px; background: var(--dir-rule);
  }
  .lo-etapes-liste:has(> .lo-etape:nth-child(3)) > .lo-etape + .lo-etape::before { display: none; }
  .lo-etapes-liste:has(> .lo-etape:nth-child(3)) > .lo-etape { position: relative; }
  .lo-etapes-liste:has(> .lo-etape:nth-child(3)) > .lo-etape:nth-child(odd) { grid-column: 1; text-align: right; }
  .lo-etapes-liste:has(> .lo-etape:nth-child(3)) > .lo-etape:nth-child(even) { grid-column: 2; text-align: left; margin-top: 4.5rem; }
  .lo-etapes-liste:has(> .lo-etape:nth-child(3)) > .lo-etape::after {
    content: ""; position: absolute; top: 0.35rem; width: 10px; height: 10px; background: var(--dir-diamond) center / contain no-repeat;
  }
  .lo-etapes-liste:has(> .lo-etape:nth-child(3)) > .lo-etape:nth-child(odd)::after { right: calc(-2.75rem - 5px); }
  .lo-etapes-liste:has(> .lo-etape:nth-child(3)) > .lo-etape:nth-child(even)::after { left: calc(-2.75rem - 5px); }
}
/* Domaines en cartes : la dernière rangée est centrée, pas calée à gauche */
.lo-cartes { display: flex; flex-wrap: wrap; justify-content: center; }
.lo-carte { flex: 0 1 252px; }
@media (max-width: 781px) { .lo-carte { flex-basis: 100%; } }

/* ==========================================================================
   v6 — Articles (retour d'Aymeric, 06/10/2026) : la page d'article suit la
   grammaire de la direction (en-tête centré, filet d'or) et l'échelle à 7
   tailles avec les bons rôles : intertitres à 32, chapeau et questions de
   FAQ en Cormorant à 24 (à 15 px, Cormorant paraissait minuscule), texte à 15.
   ========================================================================== */
body.dir-lumiere-or .ac-post-hero { text-align: center; }
body.dir-lumiere-or .ac-post-hero .ac-post-kicker,
body.dir-lumiere-or .ac-post-hero .ac-post-meta { justify-content: center; }
body.dir-lumiere-or .ac-post-head > .ac-post-title { margin-left: auto; margin-right: auto; max-width: 24ch; font-size: var(--ac-fs-6); }
body.dir-lumiere-or .ac-post-head > .ac-post-title::after { content: ""; display: block; width: 150px; height: 10px; margin: 1.3rem auto 0; background: var(--dir-filet); }
body.dir-lumiere-or .ac-article > h2 { font-size: var(--ac-fs-5); line-height: 1.2; margin-top: 2em; }
body.dir-lumiere-or .ac-article > h3 { font-size: var(--ac-fs-4); }
body.dir-lumiere-or .ac-article > p:first-child { font-family: var(--wp--preset--font-family--heading); font-size: var(--ac-fs-4); line-height: 1.45; font-weight: 400; }
body.dir-lumiere-or .ac-article > p:first-child a { text-decoration-thickness: 1px; }
body.dir-lumiere-or .ac-article > h2.ac-faq-title { text-align: center; }
body.dir-lumiere-or .ac-article > h2.ac-faq-title::after { content: ""; display: block; width: 150px; height: 10px; margin: 1rem auto 0; background: var(--dir-filet); }
body.dir-lumiere-or .ac-article .faq-item summary { font-family: var(--wp--preset--font-family--heading); font-size: var(--ac-fs-4); font-weight: 500; line-height: 1.3; padding-top: 1.1rem; padding-bottom: 1.1rem; }
body.dir-lumiere-or .ac-article .faq-item p { font-size: var(--ac-fs-3); }
body.dir-lumiere-or .ac-article .ac-callout { background: var(--wp--preset--color--surface); border-top: 0; border-left: 1px solid var(--dir-gold); }
body.dir-lumiere-or .ac-article .ac-sources { margin-top: 2.4em; padding-top: 1.2em; border-top: 1px solid var(--dir-rule); }
/* Seconde image, dans le fil du texte */
body.dir-lumiere-or .ac-article > .ac-figure { margin: 2.6em 0; }
body.dir-lumiere-or .ac-article > .ac-figure img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 2px; }
/* Bas d'article : appel et « À lire aussi » centrés, comme les sections */
body.dir-lumiere-or .ac-post-cta-inner { text-align: center; }
body.dir-lumiere-or .ac-post-cta .ac-post-cta-text { margin-left: auto; margin-right: auto; }
body.dir-lumiere-or .ac-post-cta .wp-block-buttons { justify-content: center; }
body.dir-lumiere-or .ac-related > .ac-title { text-align: center; max-width: none; }
/* Page Actualités : même en-tête centré que les autres pages */
body.dir-lumiere-or .ac-blog > .ac-hero { text-align: center; }
body.dir-lumiere-or .ac-blog > .ac-hero > * { margin-left: auto !important; margin-right: auto !important; }
body.dir-lumiere-or .ac-blog > .ac-hero .ac-hero-title::after { content: ""; display: block; width: 150px; height: 10px; margin: 1.1rem auto 0; background: var(--dir-filet); }
body.dir-lumiere-or .ac-blog > .ac-hero .ac-hero-lead { max-width: 42rem; }
body.dir-lumiere-or .ac-related > .ac-title + .ac-post-cards, body.dir-lumiere-or .ac-related .ac-post-cards { margin-top: var(--wp--preset--spacing--lg) !important; }
body.dir-lumiere-or :is(.ac-related, .ac-posts) .ac-post-cards { grid-template-columns: repeat(auto-fit, minmax(240px, 340px)) !important; justify-content: center; }
body.dir-lumiere-or .ac-card-title.ac-card-title { font-size: var(--ac-fs-4) !important; line-height: 1.25; }

/* --- Bandeau du haut en icônes sur mobile (13/10/2026) -------------------
   Opt-in : classe dir-topbar-icones sur le groupe .dir-topbar de l'en-tête du
   client, liens marqués dir-ico + dir-ico-lieu / -mail / -tel. Sur mobile :
   une seule ligne, adresse et e-mail en icônes, téléphone en clair. */
.dir-ico-lieu { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11.5a7 7 0 0 1 14 0C19 14.8 12 21 12 21z'/%3E%3Ccircle cx='12' cy='9.5' r='2.5'/%3E%3C/svg%3E"); }
.dir-ico-mail { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='5' width='18' height='14' rx='1.5'/%3E%3Cpath d='M3.5 6l8.5 7 8.5-7'/%3E%3C/svg%3E"); }
.dir-ico-tel { --ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 3.5h3.2l1.6 4.2-2.1 1.3a11 11 0 0 0 5.3 5.3l1.3-2.1 4.2 1.6V17a2.5 2.5 0 0 1-2.7 2.5A16 16 0 0 1 2.5 6.2 2.5 2.5 0 0 1 5 3.5z'/%3E%3C/svg%3E"); }
@media (max-width: 781px) {
  .dir-topbar.dir-topbar-icones { padding-top: 0.45rem !important; padding-bottom: 0.45rem !important; }
  .dir-topbar.dir-topbar-icones > .wp-block-group { flex-wrap: nowrap !important; justify-content: center !important; align-items: center; gap: 0.4rem !important; }
  .dir-topbar.dir-topbar-icones p { display: flex; align-items: center; gap: 0.4rem; }
  .dir-topbar.dir-topbar-icones .dir-topbar-extra { display: none; }
  .dir-topbar.dir-topbar-icones a.dir-ico { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; min-width: 40px; min-height: 40px; margin: 0 !important; font-size: 0; letter-spacing: 0; }
  .dir-topbar.dir-topbar-icones .dir-urgence a.dir-ico::before,
  .dir-topbar.dir-topbar-icones a.dir-ico::before { content: "" !important; display: block; flex: none; width: 19px; height: 19px; background: currentColor; -webkit-mask: var(--ico) center / contain no-repeat; mask: var(--ico) center / contain no-repeat; }
  .dir-topbar.dir-topbar-icones a.dir-ico-tel { font-size: var(--ac-fs-2); padding-left: 0.6rem; border-left: 1px solid rgba(255,255,255,0.18); }
}

/* --- Hero à voile allégé (13/10/2026) : contenus › hero › "veil": "leger" ---
   La photo reste lisible (ex. AICMP, Assemblée nationale) ; voile plus dense
   sur mobile, où le texte couvre toute l'image. */
.ac-hero-veil--leger > .ac-hero-bgimg img { object-position: 50% 38%; }
.ac-hero-veil.ac-hero-veil--leger::after {
  background: linear-gradient(180deg,
    color-mix(in srgb, var(--wp--preset--color--paper) 62%, transparent) 0%,
    color-mix(in srgb, var(--wp--preset--color--paper) 78%, transparent) 70%,
    var(--wp--preset--color--paper) 100%);
}
@media (max-width: 781px) {
  .ac-hero-veil.ac-hero-veil--leger::after {
    background: linear-gradient(180deg,
      color-mix(in srgb, var(--wp--preset--color--paper) 74%, transparent) 0%,
      color-mix(in srgb, var(--wp--preset--color--paper) 86%, transparent) 60%,
      var(--wp--preset--color--paper) 100%);
  }
}
