/* ==========================================================================
   Atelier WP — compositions pilotées par le contenu (compose.css, v1, 01/10/2026)
   Classes « ac-* » produites par scripts/atelier_compose.py. Génériques :
   uniquement des tokens de theme.json (couleurs ink / ink-soft / paper /
   surface / line / primary / accent, polices heading / body, espacements),
   donc réutilisables tels quels sur n'importe quel thème du moteur.
   Déploiement : CSS additionnel des styles globaux (API REST) tant que le
   FTP est indisponible, puis à intégrer au thème (style.css).
   ========================================================================== */

:root {
  --ac-accent-light: color-mix(in srgb, var(--wp--preset--color--accent) 62%, #fff);
  --ac-rule: var(--wp--preset--color--line);
  --ac-radius: 2px;
}

/* --- Socle : surtitres, titres, intros -------------------------------- */
.ac-kicker {
  margin: 0 0 var(--wp--preset--spacing--sm) !important;
  font-size: var(--ac-fs-1, 0.78rem);
  font-weight: 600;
  line-height: 1.7;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--atelier-accent-strong);
}
.ac-kicker::before {
  content: "";
  display: inline-block;
  vertical-align: middle;
  width: 1.75rem;
  height: 1px;
  margin: 0 0.75rem 0.15em 0;
  background: currentColor;
}
.ac-kicker a { color: inherit; text-decoration: none; border-bottom: 1px solid currentColor; }
.ac-kicker--light { color: var(--ac-accent-light); }
.ac-kicker:has(+ .has-text-align-center) { text-align: center; }
.ac-title { margin-top: 0 !important; text-wrap: balance; max-width: 22ch; }
.has-text-align-center.ac-title { margin-left: auto !important; margin-right: auto !important; }
.ac-intro {
  max-width: 60ch;
  margin-top: var(--wp--preset--spacing--sm) !important;
  font-size: var(--ac-fs-3, 1.125rem);
  line-height: 1.65;
  color: var(--wp--preset--color--ink-soft);
}
.ac-intro--light { color: rgba(255, 255, 255, 0.78); }
.ac-note {
  margin-top: var(--wp--preset--spacing--md) !important;
  font-size: var(--ac-fs-2, 0.92rem);
  color: var(--wp--preset--color--ink-soft);
  max-width: 62ch;
}
.ac-note--light { color: rgba(255, 255, 255, 0.7); }
.ac-note--center { margin-left: auto !important; margin-right: auto !important; text-align: center; }
.has-ink-background-color :is(h1, h2, h3, h4),
.has-primary-background-color :is(h1, h2, h3, h4) { color: var(--wp--preset--color--surface); }
.ac-cols { gap: var(--wp--preset--spacing--xl) !important; }
@media (min-width: 782px) {
  .ac-sticky { position: sticky; top: 110px; align-self: flex-start; }
  .ac-cols > .wp-block-column:has(> .ac-sticky) { align-self: stretch; }
}

/* Titres, intros et notes posés directement dans une section « constrained »
   (colonne de 1200px) : WordPress les centre (margin auto !important) et leur
   impose max-width:1200px. On veut une mesure de lecture plus courte ET
   alignée sur le bord gauche de la colonne. Sélecteurs plus spécifiques que
   ceux de WordPress (0,2,0 contre 0,1,0) : le rendu ne dépend plus de
   l'ordre de chargement des feuilles de style (CSS additionnel ou fichier du
   thème) — bug trouvé le 01/10/2026 en passant compose.css dans le thème. */
.is-layout-constrained > :is(.ac-kicker, .ac-title, .ac-intro, .ac-note):not(.has-text-align-center):not(.ac-note--center):not(.has-text-align-center ~ *) {
  margin-left: max(0px, calc((100% - 1200px) / 2)) !important;
  margin-right: auto !important;
}
.is-layout-constrained > .ac-title:not(.has-text-align-center) { max-width: min(22ch, 1200px); }
.is-layout-constrained > .ac-intro { max-width: min(60ch, 1200px); }
.is-layout-constrained > .ac-note { max-width: min(62ch, 1200px); }
.is-layout-constrained > .ac-kicker { margin-top: 0 !important; }
/* Blocs à marges propres posés directement dans une colonne « constrained » :
   on garde le centrage de WordPress (sinon ils sortent de la colonne). */
.is-layout-constrained > :is(.ac-rights, .ac-aside) { margin-left: auto !important; margin-right: auto !important; }

/* --- Heros ------------------------------------------------------------- */
.ac-hero { position: relative; overflow: hidden; isolation: isolate; }
.ac-hero-title { margin-top: 0 !important; text-wrap: balance; max-width: 16ch; line-height: 1.05; overflow-wrap: break-word; hyphens: manual; }
@media (max-width: 600px) {
  .ac-hero .ac-hero-title { font-size: var(--ac-fs-6, clamp(2.1rem, 1.2rem + 5.4vw, 2.8rem)) !important; max-width: none; }
  .ac-hero .ac-hero-title.ac-hero-title--long { font-size: clamp(1.7rem, 0.9rem + 4.4vw, 2.2rem) !important; }
  .ac-hero-split, .ac-hero-split-flip, .ac-hero-typo { min-height: 0; }
}
.ac-hero-lead {
  max-width: 54ch;
  margin-top: var(--wp--preset--spacing--md) !important;
  font-size: var(--ac-fs-3, 1.15rem);
  line-height: 1.65;
  color: var(--wp--preset--color--ink-soft);
}
.ac-hero-lead--light { color: rgba(255, 255, 255, 0.8); }
.ac-hero .wp-block-buttons { margin-top: var(--wp--preset--spacing--lg) !important; }

/* Split : texte + photo cadrée, numéro de domaine géant au trait derrière */
.ac-hero-split, .ac-hero-split-flip { min-height: 78vh; display: flex; align-items: center; }
.ac-hero-split > *, .ac-hero-split-flip > * { width: 100%; }
.ac-hero-cols { gap: var(--wp--preset--spacing--2-xl) !important; }
.ac-hero-figure { position: relative; }
.ac-hero-photo { margin: 0 !important; position: relative; z-index: 1; }
.ac-hero-photo img {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 5;
  height: auto;
  max-height: 68vh;
  object-fit: cover;
  filter: grayscale(0.2) contrast(1.04);
}
.ac-hero-numeral {
  position: absolute;
  z-index: 0;
  top: -0.32em;
  left: -0.34em;
  font-family: var(--wp--preset--font-family--heading);
  font-size: clamp(8rem, 5rem + 12vw, 17rem);
  font-weight: 400;
  line-height: 1;
  letter-spacing: -0.04em;
  color: transparent;
  -webkit-text-stroke: 1px var(--wp--preset--color--accent);
  opacity: 0.55;
  pointer-events: none;
  user-select: none;
}
.ac-hero-cols--flip .ac-hero-numeral { left: auto; right: -0.3em; }
.ac-hero-split-flip .ac-hero-photo img { aspect-ratio: 1 / 1; }

/* Typographique : fond encre, glyphe géant au trait, pas de photo */
.ac-hero-typo { min-height: 72vh; display: flex; flex-direction: column; justify-content: center; }
.ac-hero-typo > * { position: relative; z-index: 1; }
.ac-hero-glyph {
  position: absolute !important;
  z-index: 0 !important;
  right: max(-2vw, calc((100vw - 1200px) / 2 - 6rem));
  bottom: -0.2em;
  width: auto !important;
  font-family: var(--wp--preset--font-family--heading);
  font-size: clamp(14rem, 8rem + 26vw, 34rem);
  line-height: 0.8;
  letter-spacing: -0.06em;
  color: transparent;
  -webkit-text-stroke: 1px var(--atelier-outline, rgba(201, 180, 143, 0.55));
  pointer-events: none;
  user-select: none;
}
.ac-hero-typo .ac-hero-title { max-width: 20ch; }
/* 14/10/2026 : tout le contenu de l'en-tête « typo » part du même bord gauche
   que le fil d'Ariane (avant : titre et texte étroits centrés, décalés). */
.ac-hero-compact:not(.ac-post-hero) > *,
.ac-hero-typo > :not(.ac-hero-glyph) { margin-left: max(0px, calc((100% - 1200px) / 2)) !important; margin-right: auto !important; }

/* Compact : bandeau court pour les pages pratiques et légales */
.ac-hero-compact { padding-top: var(--wp--preset--spacing--2-xl) !important; padding-bottom: var(--wp--preset--spacing--xl) !important; }
.ac-hero-title--compact { max-width: 24ch; }
.ac-hero-compact .ac-hero-lead { margin-top: var(--wp--preset--spacing--sm) !important; }

/* --- Étapes : frise verticale ------------------------------------------- */
.ac-steps--rail { counter-reset: ac-step; position: relative; padding-left: 4.75rem; }
.ac-steps--rail::before {
  content: "";
  position: absolute;
  left: 1.55rem;
  top: 0.4rem;
  bottom: 1.4rem;
  width: 1px;
  background: var(--ac-rule);
  transform-origin: top;
}
.ac-steps--rail .ac-step { counter-increment: ac-step; position: relative; padding-bottom: var(--wp--preset--spacing--lg); }
.ac-steps--rail .ac-step:last-child { padding-bottom: 0; }
.ac-steps--rail .ac-step::before {
  content: counter(ac-step, decimal-leading-zero);
  position: absolute;
  left: -4.75rem;
  top: -0.35rem;
  width: 3.1rem;
  height: 3.1rem;
  display: grid;
  place-items: center;
  border: 1px solid var(--wp--preset--color--accent);
  border-radius: 50%;
  background: inherit;
  background-color: var(--wp--preset--color--surface);
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--ac-fs-3, 1rem);
  color: var(--wp--preset--color--primary);
}
.has-paper-background-color .ac-steps--rail .ac-step::before { background-color: var(--wp--preset--color--paper); }
.ac-step-title { margin: 0 !important; font-size: var(--ac-fs-4, 1.3rem); }
.ac-step-text { margin-top: 0.4rem !important; color: var(--wp--preset--color--ink-soft); max-width: 58ch; }

/* --- Étapes : en ligne (3 ou 4) ------------------------------------------ */
.ac-steps--row {
  counter-reset: ac-step;
  display: grid;
  grid-template-columns: repeat(var(--ac-cols, 3), minmax(0, 1fr));
  gap: var(--wp--preset--spacing--lg);
  margin-top: var(--wp--preset--spacing--xl) !important;
  position: relative;
}
.ac-steps--row.ac-n4 { --ac-cols: 4; }
.ac-steps--row::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 2.6rem;
  height: 1px;
  background: var(--ac-rule);
  transform-origin: left;
}
.ac-steps--row .ac-step { counter-increment: ac-step; position: relative; margin: 0 !important; }
.ac-steps--row .ac-step::before {
  content: counter(ac-step, decimal-leading-zero);
  display: inline-block;
  padding-right: 0.75rem;
  margin-bottom: var(--wp--preset--spacing--md);
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--ac-fs-7, 4.2rem);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px var(--wp--preset--color--accent);
  background-color: var(--wp--preset--color--surface);
  position: relative;
}
.has-paper-background-color .ac-steps--row .ac-step::before { background-color: var(--wp--preset--color--paper); }
@media (max-width: 781px) {
  .ac-steps--row { grid-template-columns: 1fr; }
  .ac-steps--row::before { display: none; }
  .ac-steps--row .ac-step::before { font-size: var(--ac-fs-6, 3rem); margin-bottom: 0.5rem; }
}

/* --- Chiffres : grande échelle sur fond encre --------------------------- */
.ac-figures--scale {
  display: grid;
  grid-template-columns: repeat(var(--ac-cols, 3), minmax(0, 1fr));
  margin-top: var(--wp--preset--spacing--xl) !important;
  border-top: 1px solid rgba(255, 255, 255, 0.16);
}
.ac-figures--scale.ac-n2 { --ac-cols: 2; }
.ac-figures--scale.ac-n4 { --ac-cols: 4; }
.ac-figures--scale .ac-figure {
  margin: 0 !important;
  padding: var(--wp--preset--spacing--lg) var(--wp--preset--spacing--md) 0 0;
  border-right: 1px solid rgba(255, 255, 255, 0.12);
}
.ac-figures--scale .ac-figure + .ac-figure { padding-left: var(--wp--preset--spacing--md); }
.ac-figures--scale .ac-figure:last-child { border-right: 0; }
.ac-figures--scale .ac-figure-value {
  margin: 0 !important;
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--ac-fs-7, clamp(3.6rem, 2rem + 6vw, 7.5rem));
  line-height: 0.95;
  letter-spacing: -0.03em;
  color: var(--ac-accent-light);
  white-space: nowrap;
}
.ac-figures--scale .ac-figure-label { margin-top: var(--wp--preset--spacing--sm) !important; color: rgba(255, 255, 255, 0.78); max-width: 32ch; }
@media (max-width: 781px) {
  .ac-figures--scale { grid-template-columns: 1fr; }
  .ac-figures--scale .ac-figure { border-right: 0; border-bottom: 1px solid rgba(255, 255, 255, 0.12); padding: var(--wp--preset--spacing--md) 0 !important; }
  .ac-figures--scale .ac-figure:last-child { border-bottom: 0; }
}

/* --- Chiffres : registre (lignes) ---------------------------------------- */
.ac-figures--ledger .ac-figure {
  display: grid;
  grid-template-columns: minmax(7.5rem, 30%) 1fr;
  gap: var(--wp--preset--spacing--md);
  align-items: baseline;
  margin: 0 !important;
  padding: var(--wp--preset--spacing--md) 0;
  border-top: 1px solid var(--ac-rule);
}
.ac-figures--ledger .ac-figure:last-child { border-bottom: 1px solid var(--ac-rule); }
.ac-figures--ledger .ac-figure-value {
  margin: 0 !important;
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--ac-fs-6, clamp(2.2rem, 1.6rem + 2vw, 3.2rem));
  line-height: 1;
  color: var(--wp--preset--color--primary);
  white-space: nowrap;
}
.ac-figures--ledger .ac-figure-label { margin: 0 !important; color: var(--wp--preset--color--ink-soft); }

/* --- Comparaison : face à face ------------------------------------------ */
.ac-duel { gap: 0 !important; margin-top: var(--wp--preset--spacing--xl) !important; align-items: stretch !important; }
.ac-duel > .wp-block-column { display: flex; }
.ac-duel > .wp-block-column:first-child { position: relative; }
.ac-duel > .wp-block-column:first-child::after {
  content: "ou";
  position: absolute;
  z-index: 2;
  top: 50%;
  right: 0;
  transform: translate(50%, -50%);
  width: 3.4rem;
  height: 3.4rem;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--wp--preset--color--ink);
  color: var(--wp--preset--color--surface);
  font-family: var(--wp--preset--font-family--heading);
  font-style: italic;
  font-size: var(--ac-fs-3, 1.15rem);
}
.ac-duel .ac-option {
  width: 100%;
  margin: 0 !important;
  padding: var(--wp--preset--spacing--lg) var(--wp--preset--spacing--xl);
  background: var(--wp--preset--color--surface);
  border: 1px solid var(--ac-rule);
}
.has-surface-background-color .ac-duel .ac-option { background: var(--wp--preset--color--paper); }
.ac-duel > .wp-block-column:last-child .ac-option { border-left: 0; }
.ac-option-name { margin: 0 !important; font-size: var(--ac-fs-5, 1.55rem); }
.ac-option-tag {
  margin-top: 0.35rem !important;
  font-size: var(--ac-fs-2, 0.82rem);
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--atelier-accent-strong);
}
.ac-option-points { list-style: none; padding: 0 !important; margin: var(--wp--preset--spacing--md) 0 0 !important; }
.ac-option-points li {
  position: relative;
  padding: 0.55rem 0 0.55rem 1.5rem;
  border-top: 1px solid var(--ac-rule);
  color: var(--wp--preset--color--ink-soft);
}
.ac-option-points li::before { content: "—"; position: absolute; left: 0; color: var(--wp--preset--color--accent); }
@media (max-width: 781px) {
  .ac-duel > .wp-block-column:first-child::after { top: auto; bottom: 0; right: 50%; transform: translate(50%, 50%); }
  .ac-duel > .wp-block-column:last-child .ac-option { border-left: 1px solid var(--ac-rule); border-top: 0; padding-top: var(--wp--preset--spacing--xl); }
  .ac-duel .ac-option { padding: var(--wp--preset--spacing--lg) var(--wp--preset--spacing--md); }
}

/* --- Comparaison : échelle graduée (gravité, coût, durée…) --------------- */
.ac-tiers { margin-top: var(--wp--preset--spacing--xl) !important; gap: var(--wp--preset--spacing--lg) !important; align-items: stretch !important; }
.ac-tier { height: 100%; margin: 0 !important; padding-top: var(--wp--preset--spacing--md); border-top: 2px solid var(--wp--preset--color--accent); }
.ac-tier-2 { border-top-width: 6px; }
.ac-tier-3 { border-top-width: 12px; border-top-color: var(--wp--preset--color--primary); }
.ac-tier-4 { border-top-width: 18px; border-top-color: var(--wp--preset--color--ink); }
.ac-tier .ac-option-points li:first-child { border-top: 0; }

/* --- Droits : panneau sur fond encre ------------------------------------- */
.ac-rights { list-style: none; padding: 0 !important; margin: var(--wp--preset--spacing--lg) 0 0 !important; }
.ac-rights li { position: relative; padding-left: 2.6rem; }
.ac-rights li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.1em;
  width: 1.6rem;
  height: 1.6rem;
  border-radius: 50%;
  border: 1px solid var(--wp--preset--color--accent);
  background: no-repeat center / 0.8rem url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 10'%3E%3Cpath d='M1 5.2 4.3 8.5 11 1.5' fill='none' stroke='%23C9A13B' stroke-width='1.6'/%3E%3C/svg%3E");
}
.ac-rights--panel {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--md) var(--wp--preset--spacing--xl);
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--ac-fs-5, clamp(1.2rem, 1rem + 0.8vw, 1.6rem));
  line-height: 1.3;
  color: var(--wp--preset--color--surface);
}
.ac-rights--panel li { padding-bottom: var(--wp--preset--spacing--md); border-bottom: 1px solid rgba(255, 255, 255, 0.14); }
.ac-frame { padding: var(--wp--preset--spacing--xl); border: 1px solid var(--wp--preset--color--accent); position: relative; }
.ac-frame::after {
  content: "";
  position: absolute;
  inset: 8px;
  border: 1px solid var(--ac-rule);
  pointer-events: none;
}
.ac-rights--frame { columns: 2; column-gap: var(--wp--preset--spacing--xl); }
.ac-rights--frame li { break-inside: avoid; padding-bottom: var(--wp--preset--spacing--sm); color: var(--wp--preset--color--ink-soft); }
@media (max-width: 781px) {
  .ac-rights--panel { grid-template-columns: 1fr; }
  .ac-rights--frame { columns: 1; }
  .ac-frame { padding: var(--wp--preset--spacing--lg) var(--wp--preset--spacing--md); }
}

/* --- Citation de texte de loi ------------------------------------------- */
.ac-quote-statute .ac-kicker { text-align: center; }
.ac-statute {
  position: relative;
  max-width: 920px;
  margin: var(--wp--preset--spacing--md) auto 0 !important;
  padding: var(--wp--preset--spacing--xl) 0 0 !important;
  border: 0 !important;
  text-align: center;
}
.ac-statute::before {
  content: "§";
  position: absolute;
  left: 50%;
  top: -0.25em;
  transform: translateX(-50%);
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--ac-fs-7, 7rem);
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px var(--wp--preset--color--accent);
}
.ac-statute p {
  font-family: var(--wp--preset--font-family--heading);
  font-style: italic;
  font-size: var(--ac-fs-6, clamp(1.5rem, 1.1rem + 1.5vw, 2.35rem));
  line-height: 1.35;
  color: var(--wp--preset--color--ink);
  text-wrap: balance;
}
@media (max-width: 600px) {
  .ac-statute { padding-top: 5.5rem !important; }
  .ac-statute::before { font-size: var(--ac-fs-7, 4.5rem); top: 0; }
}
.ac-statute cite {
  display: block;
  margin-top: var(--wp--preset--spacing--md);
  font-style: normal;
  font-size: var(--ac-fs-1, 0.8rem);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--atelier-accent-strong);
}

/* --- Situations : index (liste numérotée, titre collant) ---------------- */
.ac-index { counter-reset: ac-entry; }
.ac-entry {
  counter-increment: ac-entry;
  display: grid;
  grid-template-columns: 3rem 1fr;
  column-gap: var(--wp--preset--spacing--md);
  margin: 0 !important;
  padding: var(--wp--preset--spacing--md) 0;
  border-top: 1px solid var(--ac-rule);
}
.ac-entry:last-child { border-bottom: 1px solid var(--ac-rule); }
.ac-entry::before {
  content: counter(ac-entry, decimal-leading-zero);
  grid-row: span 2;
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--ac-fs-2, 0.95rem);
  color: var(--wp--preset--color--accent);
  padding-top: 0.2rem;
}
.ac-entry > * { grid-column: 2; }
.ac-entry-title { margin: 0 !important; font-size: var(--ac-fs-4, 1.25rem); }
.ac-entry-text { margin-top: 0.35rem !important; color: var(--wp--preset--color--ink-soft); }

/* --- Situations : mosaïque ----------------------------------------------- */
.ac-mosaic {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1px;
  margin-top: var(--wp--preset--spacing--xl) !important;
  background: var(--ac-rule);
  border: 1px solid var(--ac-rule);
  counter-reset: ac-tile;
}
.ac-mosaic.ac-n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ac-tile {
  counter-increment: ac-tile;
  position: relative;
  margin: 0 !important;
  padding: var(--wp--preset--spacing--lg) var(--wp--preset--spacing--md) var(--wp--preset--spacing--lg);
  background: var(--wp--preset--color--surface);
  transition: background-color 0.3s ease;
}
.has-surface-background-color .ac-tile { background: var(--wp--preset--color--surface); }
.has-paper-background-color .ac-tile { background: var(--wp--preset--color--paper); }
.ac-tile::before {
  content: counter(ac-tile, decimal-leading-zero);
  display: block;
  margin-bottom: var(--wp--preset--spacing--md);
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--ac-fs-2, 0.9rem);
  color: var(--wp--preset--color--accent);
}
.ac-tile::after {
  content: "";
  position: absolute;
  left: var(--wp--preset--spacing--md);
  top: calc(var(--wp--preset--spacing--lg) + 0.65rem);
  width: 0;
  height: 1px;
  margin-left: 2.2rem;
  background: var(--wp--preset--color--accent);
  transition: width 0.45s cubic-bezier(0.2, 0.7, 0.1, 1);
}
.ac-tile:hover::after { width: 3rem; }
.ac-tile-title { margin: 0 !important; font-size: var(--ac-fs-4, 1.25rem); }
.ac-tile-text { margin-top: 0.5rem !important; color: var(--wp--preset--color--ink-soft); font-size: var(--ac-fs-2, 0.97rem); }
@media (max-width: 960px) { .ac-mosaic { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) { .ac-mosaic, .ac-mosaic.ac-n4 { grid-template-columns: 1fr; } }

/* --- Explication : texte + notes en marge -------------------------------- */
.ac-prose { font-size: var(--ac-fs-3, 1.08rem); line-height: 1.75; max-width: 64ch; }
.ac-cols--prose .ac-prose { margin-top: var(--wp--preset--spacing--sm) !important; }
.ac-margin { padding-top: var(--wp--preset--spacing--sm); }
.ac-aside {
  margin: 0 0 var(--wp--preset--spacing--md) !important;
  padding: 0 0 0 var(--wp--preset--spacing--md);
  border-left: 2px solid var(--wp--preset--color--accent);
}
.ac-aside-title {
  margin: 0 !important;
  font-size: var(--ac-fs-1, 0.78rem);
  font-weight: 600;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--atelier-accent-strong);
}
.ac-aside-text { margin-top: 0.35rem !important; font-size: var(--ac-fs-2, 0.95rem); color: var(--wp--preset--color--ink-soft); }
.ac-reading .ac-prose { margin-top: var(--wp--preset--spacing--sm) !important; }
.ac-reading .ac-title { max-width: 720px; }
.ac-reading > .ac-prose { max-width: 720px; }
.ac-aside--inline {
  margin-top: var(--wp--preset--spacing--md) !important;
  padding: var(--wp--preset--spacing--md) var(--wp--preset--spacing--md) var(--wp--preset--spacing--md) var(--wp--preset--spacing--lg);
  background: var(--wp--preset--color--paper);
}
.has-paper-background-color .ac-aside--inline { background: var(--wp--preset--color--surface); }
.has-drop-cap:not(:focus)::first-letter {
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--ac-fs-7, 4.4em);
  line-height: 0.82;
  margin: 0.06em 0.12em 0 0;
  color: var(--wp--preset--color--primary);
}

/* --- FAQ empilée, numérotée ---------------------------------------------- */
.ac-faq-stack { counter-reset: ac-q; margin-top: var(--wp--preset--spacing--lg) !important; }
/* La section porte aussi la classe de la liste : pas de marge au-dessus de la
   section (bande blanche visible entre deux fonds, 13/10/2026). */
.ac-sec.ac-faq-stack { margin-top: 0 !important; }
.ac-faq-stack .faq-item { counter-increment: ac-q; }
.ac-faq-stack .faq-item summary::before {
  content: counter(ac-q, decimal-leading-zero);
  display: inline-block;
  min-width: 2.4rem;
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--ac-fs-2, 0.9rem);
  color: var(--wp--preset--color--accent);
}
.ac-faq-stack .faq-item summary { justify-content: flex-start; }
.ac-faq-stack .faq-item summary::after { margin-left: auto; }

/* --- Principes : mots en grand ------------------------------------------- */
.ac-principles {
  display: grid;
  grid-template-columns: repeat(var(--ac-cols, 4), minmax(0, 1fr));
  margin-top: var(--wp--preset--spacing--xl) !important;
  border-top: 1px solid var(--ac-rule);
}
.ac-principles.ac-n3 { --ac-cols: 3; }
.ac-principle { margin: 0 !important; padding: var(--wp--preset--spacing--lg) var(--wp--preset--spacing--md) 0 0; }
.ac-principle + .ac-principle { padding-left: var(--wp--preset--spacing--md); border-left: 1px solid var(--ac-rule); }
.ac-word {
  margin: 0 !important;
  font-style: italic;
  font-weight: 400;
  font-size: var(--ac-fs-6, clamp(2rem, 1.4rem + 1.8vw, 3rem));
  color: var(--wp--preset--color--primary);
}
.ac-word-text { margin-top: var(--wp--preset--spacing--sm) !important; color: var(--wp--preset--color--ink-soft); }
@media (max-width: 781px) {
  .ac-principles { grid-template-columns: 1fr 1fr; }
  .ac-principle + .ac-principle { border-left: 0; padding-left: 0; }
  .ac-principle { padding-right: var(--wp--preset--spacing--sm); }
}

/* --- Profil ---------------------------------------------------------------- */
.ac-portrait { margin: 0 !important; }
.ac-portrait img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 5; object-fit: cover; object-position: 50% 22%; }
.ac-caption { margin-top: 0.75rem !important; font-size: var(--ac-fs-1, 0.8rem); letter-spacing: 0.05em; color: var(--wp--preset--color--ink-soft); }
.ac-cols--profile .ac-prose { margin-top: var(--wp--preset--spacing--sm) !important; }

/* --- Visite ---------------------------------------------------------------- */
.ac-visit-photo { margin: 0 !important; }
.ac-visit-photo img { display: block; width: 100%; height: auto; aspect-ratio: 4 / 3; object-fit: cover; object-position: 50% 30%; }

/* --- Coordonnées ---------------------------------------------------------- */
.ac-cards {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--wp--preset--spacing--lg);
  margin-top: var(--wp--preset--spacing--xl) !important;
}
.ac-card { margin: 0 !important; padding-top: var(--wp--preset--spacing--md); border-top: 2px solid var(--wp--preset--color--accent); }
.ac-card-label { margin: 0 !important; font-size: var(--ac-fs-1, 0.78rem); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--atelier-accent-strong); }
.ac-card-value {
  margin-top: 0.5rem !important;
  font-family: var(--wp--preset--font-family--heading);
  font-size: var(--ac-fs-5, clamp(1.25rem, 1rem + 0.8vw, 1.6rem));
  line-height: 1.3;
  overflow-wrap: anywhere;
}
.ac-card-value a { color: inherit; text-decoration: none; border-bottom: 1px solid var(--ac-rule); }
.ac-card-value a:hover { border-bottom-color: var(--wp--preset--color--accent); }
.ac-card-hint { margin-top: 0.4rem !important; font-size: var(--ac-fs-2, 0.9rem); color: var(--wp--preset--color--ink-soft); }
@media (max-width: 781px) { .ac-cards { grid-template-columns: 1fr; } }

/* --- Domaines liés : pastilles ------------------------------------------- */
.ac-chips { display: flex; flex-wrap: wrap; gap: 0.75rem; margin-top: var(--wp--preset--spacing--lg); }
.ac-chip {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.7rem 1.1rem 0.7rem 0.85rem;
  border: 1px solid var(--ac-rule);
  border-radius: 999px;
  color: var(--wp--preset--color--ink);
  text-decoration: none;
  background: transparent;
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}
.ac-chip-icon { width: 26px; height: 26px; color: var(--wp--preset--color--accent); flex: 0 0 auto; }
.ac-chip-icon svg { display: block; width: 100%; height: 100%; }
.ac-chip-name { font-family: var(--wp--preset--font-family--heading); font-size: var(--ac-fs-3, 1.05rem); }
.ac-chip-arrow { color: var(--wp--preset--color--accent); transition: transform 0.25s ease; }
.ac-chip:hover, .ac-chip:focus-visible { background: var(--wp--preset--color--ink); border-color: var(--wp--preset--color--ink); color: var(--wp--preset--color--surface); }
.ac-chip:hover .ac-chip-arrow { transform: translateX(3px); }

/* --- Appel à l'action discret ------------------------------------------- */
.ac-cta-note {
  padding: var(--wp--preset--spacing--xl) var(--wp--preset--spacing--lg);
  border: 1px solid var(--ac-rule);
  text-align: center;
  background: var(--wp--preset--color--surface);
}
.has-surface-background-color .ac-cta-note { background: var(--wp--preset--color--paper); }
.ac-cta-note .ac-kicker { text-align: center; }
.ac-cta-note .ac-title { margin-left: auto !important; margin-right: auto !important; }
.ac-cta-note .ac-intro { margin-left: auto !important; margin-right: auto !important; }
.ac-cta-note .wp-block-buttons { justify-content: center; margin-top: var(--wp--preset--spacing--lg) !important; }

/* --- Document (pages légales) : sommaire collant ------------------------- */
.ac-toc { padding-top: 0.3rem; }
.ac-toc-title { margin: 0 0 0.75rem !important; font-size: var(--ac-fs-1, 0.78rem); font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; color: var(--atelier-accent-strong); }
.ac-toc ol { margin: 0; padding: 0; list-style: none; counter-reset: ac-toc; border-left: 1px solid var(--ac-rule); }
.ac-toc li { counter-increment: ac-toc; }
.ac-toc a {
  display: block;
  padding: 0.4rem 0 0.4rem 1rem;
  margin-left: -1px;
  border-left: 1px solid transparent;
  color: var(--wp--preset--color--ink-soft);
  text-decoration: none;
  font-size: var(--ac-fs-2, 0.93rem);
}
.ac-toc a::before { content: counter(ac-toc, decimal-leading-zero) "  "; color: var(--wp--preset--color--accent); font-family: var(--wp--preset--font-family--heading); }
.ac-toc a:hover { color: var(--wp--preset--color--ink); border-left-color: var(--wp--preset--color--accent); }
.ac-doc-h { scroll-margin-top: 100px; margin-top: var(--wp--preset--spacing--xl) !important; padding-top: var(--wp--preset--spacing--md); border-top: 1px solid var(--ac-rule); }
.ac-doc > .ac-doc-h:first-child { margin-top: 0 !important; padding-top: 0; border-top: 0; }
.ac-doc .ac-prose { margin-top: var(--wp--preset--spacing--sm) !important; }
@media (max-width: 781px) { .ac-toc { display: none; } }

/* --- Animations (activées par motion.js : html.motion-ready) ------------- */
@media (prefers-reduced-motion: no-preference) {
  html.motion-ready .ac-steps.draw-on-view .ac-step,
  html.motion-ready .ac-figures.draw-on-view .ac-figure {
    opacity: 0;
    transform: translateY(18px);
    transition: opacity 0.7s ease, transform 0.8s cubic-bezier(0.2, 0.7, 0.1, 1);
  }
  html.motion-ready .ac-steps.draw-on-view.is-inview .ac-step,
  html.motion-ready .ac-figures.draw-on-view.is-inview .ac-figure { opacity: 1; transform: none; }
  html.motion-ready .draw-on-view.is-inview > :nth-child(2) { transition-delay: 0.12s; }
  html.motion-ready .draw-on-view.is-inview > :nth-child(3) { transition-delay: 0.24s; }
  html.motion-ready .draw-on-view.is-inview > :nth-child(4) { transition-delay: 0.36s; }
  html.motion-ready .draw-on-view.is-inview > :nth-child(5) { transition-delay: 0.48s; }
  html.motion-ready .draw-on-view.is-inview > :nth-child(6) { transition-delay: 0.6s; }
  html.motion-ready .ac-steps.draw-on-view::before { transform: scaleY(0); transition: transform 1.4s cubic-bezier(0.65, 0, 0.35, 1); }
  html.motion-ready .ac-steps--row.draw-on-view::before { transform: scaleX(0); }
  html.motion-ready .ac-steps.draw-on-view.is-inview::before { transform: none; }
}

/* « Lire la suite » (round 39) : suite d'un texte long repliée dans un bloc
   Détails natif. Le résumé prend l'allure d'un lien ; une fois ouvert, il
   disparaît et le texte se lit d'un seul tenant. */
.ac-more { margin-top: var(--wp--preset--spacing--sm); }
.ac-more > summary { display: inline-flex; align-items: center; gap: 0.45em; list-style: none; cursor: pointer;
  font-size: var(--ac-fs-2, 0.95rem); font-weight: 500; color: var(--wp--preset--color--primary);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.ac-more > summary::-webkit-details-marker { display: none; }
.ac-more > summary::after { content: ""; width: 0.45em; height: 0.45em; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(-0.15em) rotate(45deg); }
.ac-more > summary:hover { text-decoration-thickness: 2px; }
.ac-more > summary:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 3px; }
.ac-more[open] > summary { font-size: 0; }
.ac-more[open] > summary::before { content: "Réduire"; font-size: var(--ac-fs-2, 0.95rem); }
.ac-more[open] > summary::after { transform: translateY(0.1em) rotate(-135deg); font-size: var(--ac-fs-2, 0.95rem); }
html.has-js .ac-more[open] > summary { display: none; }
.ac-more-close { display: inline-flex; align-items: center; gap: 0.45em; margin-top: var(--wp--preset--spacing--sm); padding: 0; border: 0; background: none; cursor: pointer;
  font: inherit; font-size: var(--ac-fs-2, 0.95rem); font-weight: 500; color: var(--wp--preset--color--primary);
  text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 4px; }
.ac-more-close::after { content: ""; width: 0.45em; height: 0.45em; border-right: 1.5px solid currentColor; border-bottom: 1.5px solid currentColor; transform: translateY(0.15em) rotate(-135deg); }
.ac-more-close:hover { text-decoration-thickness: 2px; }
.ac-more-close:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 3px; }
.has-ink-background-color .ac-more-close, .has-primary-background-color .ac-more-close { color: inherit; }
.ac-more > .ac-prose:first-of-type { margin-top: 0 !important; }
.has-ink-background-color .ac-more > summary, .has-primary-background-color .ac-more > summary { color: inherit; }
@media (prefers-reduced-motion: no-preference) {
  .ac-more[open] > :not(summary) { animation: ac-more-in 0.35s ease both; }
  @keyframes ac-more-in { from { opacity: 0; transform: translateY(4px); } to { opacity: 1; transform: none; } }
}

/* 14/10/2026 : titre des articles plus large (il tenait sur 4 ou 5 lignes étroites). */
.ac-hero .ac-hero-title.ac-post-title { max-width: 30ch; }
.ac-hero-compact:not(.ac-post-hero) .ac-hero-title { max-width: 24ch; }
