/*
Theme Name: CADRENS
Theme URI: https://cadrens.com
Author: CADRENS
Description: Thème du cabinet CADRENS, conseil en gestion de patrimoine. Charte vert sapin, crème et or. Polices auto-hébergées, aucune ressource tierce, aucun cookie visiteur. Installe les pages du site à l'activation. Deux sections : « Le cabinet » et « Les fiches » (avec l'extension CADRENS Fiches).
Version: 1.3.4
Requires at least: 6.4
Tested up to: 7.1
Requires PHP: 7.4
License: Propriétaire, tous droits réservés (polices : SIL Open Font License 1.1)
Text Domain: cadrens
*/

/* ============================================================
   1. Polices (servies par le site lui-même, aucun appel extérieur)
   ============================================================ */
@font-face{
  font-family:"Source Serif CADRENS"; font-style:normal; font-display:swap; font-weight:200 900;
  src:url("assets/fonts/source-serif-4.woff2") format("woff2-variations"), url("assets/fonts/source-serif-4.woff2") format("woff2");
}
@font-face{
  font-family:"Instrument Sans CADRENS"; font-style:normal; font-display:swap; font-weight:400 700;
  src:url("assets/fonts/instrument-sans.woff2") format("woff2-variations"), url("assets/fonts/instrument-sans.woff2") format("woff2");
}

/* ============================================================
   2. Fondations
   ============================================================ */
:root{
  --sapin:#1E3A32; --sapin-2:#2A4C40; --sapin-nuit:#152A24; --sapin-pale:#B9C9C1;
  --or:#C9A84C; --or-fonce:#A8862F; --or-pale:rgba(201,168,76,.28);
  --creme:#FAF7F2; --creme-2:#F3EEE6; --rose:#EFE3DE; --blanc:#FFFFFF;
  --encre:#2C3A4A; --gris:#5A6875; --gris-clair:#8A97A3; --bord:#E6E1D8;
  --serif:"Source Serif CADRENS", Georgia, "Times New Roman", serif;
  --sans:"Instrument Sans CADRENS", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --largeur:1200px; --gouttiere:clamp(20px,4vw,48px);
  --t-h1:clamp(2.6rem,5.6vw,5rem);
  --t-h2:clamp(2rem,3.6vw,3.15rem);
  --t-h3:clamp(1.35rem,1.8vw,1.6rem);
  --ease:cubic-bezier(.22,1,.36,1);
  --h-haut:76px; --h-sous:46px; --h-total:calc(var(--h-haut) + var(--h-sous));
}
*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body{ margin:0; background:var(--creme); color:var(--encre); font-family:var(--sans); font-size:18px; line-height:1.7; -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility; }
img,svg{ max-width:100%; }
h1,h2,h3,h4{ font-family:var(--serif); color:var(--sapin); font-weight:400; margin:0 0 .5em; font-optical-sizing:auto; }
h1{ font-size:var(--t-h1); line-height:1.04; letter-spacing:-.025em; }
h2{ font-size:var(--t-h2); line-height:1.1; letter-spacing:-.02em; }
h3{ font-size:var(--t-h3); line-height:1.25; letter-spacing:-.01em; }
h4{ font-size:1.2rem; line-height:1.3; }
p{ margin:0 0 1.1em; }
a{ color:var(--sapin); text-underline-offset:.2em; text-decoration-thickness:1px; }
a:hover{ color:var(--or-fonce); }
strong{ font-weight:600; }
:focus-visible{ outline:2px solid var(--or); outline-offset:3px; }
::selection{ background:var(--or); color:var(--sapin); }
section, [id]{ scroll-margin-top:calc(var(--h-total) + 12px); }
.screen-reader-text{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.c-wrap{ max-width:var(--largeur); margin:0 auto; padding:0 var(--gouttiere); }
.c-section{ padding:clamp(80px,11vw,152px) 0; position:relative; }
.c-prose p, .c-just{ text-align:justify; -webkit-hyphens:none; hyphens:none; }
.c-intro{ font-size:clamp(1.1rem,1.4vw,1.25rem); line-height:1.6; color:var(--gris); max-width:38em; }
.c-reperes{ font-size:15px; color:var(--or-fonce); margin:0 0 22px; letter-spacing:.01em; }
.c-sombre .c-reperes{ color:var(--or); }

/* Lien d'évitement */
.c-evitement{ position:absolute; left:-9999px; top:8px; z-index:100; background:var(--sapin); color:var(--blanc); padding:10px 16px; }
.c-evitement:focus{ left:8px; color:var(--blanc); }

/* Boutons */
.c-btn{ display:inline-flex; align-items:center; gap:12px; background:var(--or); color:var(--sapin-nuit); font-family:var(--sans); font-weight:600; font-size:16px; line-height:1.2; text-decoration:none; padding:17px 28px; border:0; border-radius:2px; cursor:pointer; position:relative; overflow:hidden; isolation:isolate; box-shadow:0 0 0 0 rgba(21,42,36,0); transition:background-color .35s var(--ease), box-shadow .45s var(--ease), transform .45s var(--ease); }
/* Survol : le bouton reste doré, un reflet de lumière le traverse et il se soulève légèrement */
.c-btn::before{ content:""; position:absolute; top:0; bottom:0; left:-60%; width:45%; background:linear-gradient(100deg, rgba(255,255,255,0) 0%, rgba(255,250,235,.55) 50%, rgba(255,255,255,0) 100%); transform:skewX(-20deg) translateX(0); z-index:-1; pointer-events:none; }
.c-btn:hover, .c-btn:focus-visible{ background-color:#D2B259; color:var(--sapin-nuit); transform:translateY(-2px); box-shadow:0 8px 18px -12px rgba(21,42,36,.5); }
.c-btn:hover::before, .c-btn:focus-visible::before{ animation:c-reflet .85s var(--ease) forwards; }
.c-btn:active{ transform:translateY(0); box-shadow:0 4px 10px -8px rgba(21,42,36,.5); }
.c-sombre .c-btn:hover, .c-sombre .c-btn:focus-visible{ box-shadow:0 10px 26px -10px rgba(0,0,0,.55); }
@keyframes c-reflet{ from{ transform:skewX(-20deg) translateX(0); } to{ transform:skewX(-20deg) translateX(420%); } }
.c-lien{ font-weight:600; color:var(--sapin); text-decoration:none; background:linear-gradient(currentColor,currentColor) 0 100%/100% 1px no-repeat; padding-bottom:3px; transition:background-size .4s var(--ease), color .3s; }
.c-lien:hover{ background-size:0 1px; background-position:100% 100%; color:var(--or-fonce); }
.c-sombre .c-lien{ color:var(--creme); }

/* ============================================================
   3. En-tête : deux lignes, toujours visible sur ordinateur
   Ligne 1 : logo, « Le cabinet » / « Les fiches », recherche, contact.
   Ligne 2 : les liens de la section en cours.
   ============================================================ */
.h{ position:fixed; top:0; left:0; right:0; z-index:60; padding-top:env(safe-area-inset-top,0px); color:var(--sapin); background:rgba(250,247,242,.94); -webkit-backdrop-filter:blur(14px) saturate(1.2); backdrop-filter:blur(14px) saturate(1.2); box-shadow:0 1px 0 var(--bord); transition:background .4s var(--ease), color .4s, box-shadow .4s, transform .45s var(--ease); }
.admin-bar .h{ top:32px; }
.h-in{ max-width:var(--largeur); margin:0 auto; height:var(--h-haut); padding-left:max(var(--gouttiere), env(safe-area-inset-left,0px)); padding-right:max(var(--gouttiere), env(safe-area-inset-right,0px)); display:flex; align-items:center; gap:28px; transition:height .4s var(--ease); }
.h-logo{ display:grid; flex:none; width:168px; line-height:0; transition:width .4s var(--ease); }
.h-logo > span{ grid-area:1/1; transition:opacity .4s; line-height:0; }
.h-logo svg{ width:100%; height:auto; display:block; }
.h-logo .clair{ opacity:0; }
.h-univers{ display:flex; gap:4px; margin-left:12px; }
.h-univers a{ font-size:15.5px; font-weight:500; text-decoration:none; padding:8px 14px; position:relative; color:inherit; border-radius:2px; white-space:nowrap; }
.h-univers a::after{ content:""; position:absolute; left:14px; right:14px; bottom:2px; height:1.5px; background:var(--or); transform:scaleX(0); transform-origin:left; transition:transform .4s var(--ease); }
.h-univers a:hover{ color:inherit; }
.h-univers a:hover::after, .h-univers a[aria-current="true"]::after{ transform:scaleX(1); }
.h-univers a[aria-current="true"]{ font-weight:600; }
.h-compte{ font-size:11px; font-weight:600; background:var(--or-pale); color:var(--sapin); border-radius:9px; padding:1px 7px; margin-left:6px; vertical-align:2px; }
.h-droite{ margin-left:auto; display:flex; align-items:center; gap:14px; }
.h-cherche{ display:flex; align-items:center; gap:10px; height:42px; padding:0 14px; min-width:230px; border:1px solid var(--bord); background:var(--blanc); border-radius:2px; cursor:pointer; color:var(--gris); font-size:14.5px; text-decoration:none; transition:border-color .3s, background .3s, color .3s; }
.h-cherche:hover{ border-color:var(--or); color:var(--gris); }
.h-cherche kbd{ margin-left:auto; font-family:var(--sans); font-size:12px; border:1px solid var(--bord); border-radius:3px; padding:0 6px; color:var(--gris-clair); }
.h-cherche svg{ flex:none; }
.h-cta{ padding:12px 18px; font-size:14.5px; white-space:nowrap; }
.h-burger{ display:none; width:44px; height:44px; background:none; border:1px solid currentColor; border-radius:2px; cursor:pointer; padding:0; flex-direction:column; align-items:center; justify-content:center; gap:5px; color:inherit; }
.h-burger span{ display:block; width:19px; height:1.5px; background:currentColor; transition:transform .3s var(--ease), opacity .3s; }
.h-burger[aria-expanded="true"] span:nth-child(1){ transform:translateY(6.5px) rotate(45deg); }
.h-burger[aria-expanded="true"] span:nth-child(2){ opacity:0; }
.h-burger[aria-expanded="true"] span:nth-child(3){ transform:translateY(-6.5px) rotate(-45deg); }
.h-loupe-mob{ display:none; color:inherit; }

/* Seconde ligne, selon la section */
.h-sous{ border-top:1px solid var(--bord); height:var(--h-sous); transition:border-color .4s; overflow:hidden; }
.h-sous-in{ max-width:var(--largeur); margin:0 auto; height:100%; padding-left:max(var(--gouttiere), env(safe-area-inset-left,0px)); padding-right:max(var(--gouttiere), env(safe-area-inset-right,0px)); display:flex; align-items:center; gap:22px; }
.h-sous-titre{ flex:none; font-family:var(--serif); font-size:15px; color:var(--or-fonce); text-decoration:none; display:flex; align-items:center; gap:10px; }
.h-sous-titre::after{ content:""; width:7px; height:7px; border:1px solid var(--or); transform:rotate(45deg); }
.h-sous-liens{ display:flex; gap:20px; overflow-x:auto; scrollbar-width:none; min-width:0; -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent); mask-image:linear-gradient(90deg,#000 92%,transparent); padding-right:30px; }
.h-sous-liens::-webkit-scrollbar{ display:none; }
.h-sous-liens a{ flex:none; font-size:14px; text-decoration:none; color:var(--gris); padding:4px 0; border-bottom:1.5px solid transparent; transition:color .25s, border-color .25s, background .25s; white-space:nowrap; }
.h-sous-liens a:hover{ color:var(--sapin); }
.h-sous-liens a.actif{ color:var(--sapin); border-bottom-color:var(--or); font-weight:600; }

/* Section « Les fiches » : « Toutes les fiches » et « Par thème » restent fixes,
   les thèmes défilent à côté, avec des flèches quand ils ne tiennent pas */
.h-sous-liens--fiches{ overflow:visible; -webkit-mask-image:none; mask-image:none; padding-right:0; gap:0; align-items:center; flex:1; min-width:0; }
.h-fixes{ flex:none; display:flex; gap:20px; padding-right:18px; margin-right:4px; border-right:1px solid var(--bord); }
.h-themes-zone{ position:relative; flex:1; min-width:0; display:flex; align-items:center; }
.h-themes{ display:flex; gap:17px; overflow-x:auto; scrollbar-width:none; scroll-behavior:smooth; min-width:0; padding:0 14px; scroll-padding:0 40px; }
.h-themes::-webkit-scrollbar{ display:none; }
.h-sous-liens--fiches a{ font-size:13.5px; }
.h-themes-zone.deb-g .h-themes{ -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 48px); mask-image:linear-gradient(90deg,transparent 0,#000 48px); }
.h-themes-zone.deb-d .h-themes{ -webkit-mask-image:linear-gradient(90deg,#000 calc(100% - 48px),transparent 100%); mask-image:linear-gradient(90deg,#000 calc(100% - 48px),transparent 100%); }
.h-themes-zone.deb-g.deb-d .h-themes{ -webkit-mask-image:linear-gradient(90deg,transparent 0,#000 48px,#000 calc(100% - 48px),transparent 100%); mask-image:linear-gradient(90deg,transparent 0,#000 48px,#000 calc(100% - 48px),transparent 100%); }
.h-defile{ position:absolute; top:50%; z-index:2; width:28px; height:28px; margin-top:-14px; display:none; align-items:center; justify-content:center; padding:0; border:1px solid var(--bord); border-radius:50%; background:var(--blanc); color:var(--sapin); cursor:pointer; transition:border-color .25s, color .25s, background .25s; }
.h-defile:hover{ border-color:var(--or); color:var(--or-fonce); }
.h-defile--g{ left:6px; } .h-defile--d{ right:0; }
.h-themes-zone.deb-g .h-defile--g, .h-themes-zone.deb-d .h-defile--d{ display:flex; }
.js .h.peut-sombre:not(.passe) .h-fixes{ border-right-color:rgba(201,168,76,.25); }
.js .h.peut-sombre:not(.passe) .h-defile{ background:var(--sapin); border-color:rgba(250,247,242,.3); color:var(--creme); }
@media (max-width:781px){
  .h-fixes{ gap:8px; padding-right:10px; margin-right:0; }
  .h-themes{ gap:8px; padding:0 10px; }
  .h-defile{ display:none!important; }
  .h-mob-cache{ display:none; }
}
/* Au-dessus d'une ouverture sombre (accueil, pages intérieures) : en-tête transparent */
.js .h.peut-sombre:not(.passe):not(.menu-ouvert){ background:transparent; box-shadow:none; -webkit-backdrop-filter:none; backdrop-filter:none; color:var(--creme); }
.js .h.peut-sombre:not(.passe):not(.menu-ouvert) .h-logo .sombre{ opacity:0; }
.js .h.peut-sombre:not(.passe):not(.menu-ouvert) .h-logo .clair{ opacity:1; }
.js .h.peut-sombre:not(.passe) .h-sous{ border-top-color:rgba(201,168,76,.25); }
.js .h.peut-sombre:not(.passe) .h-sous-liens a{ color:var(--sapin-pale); }
.js .h.peut-sombre:not(.passe) .h-sous-liens a:hover, .js .h.peut-sombre:not(.passe) .h-sous-liens a.actif{ color:var(--creme); }
.js .h.peut-sombre:not(.passe) .h-sous-titre{ color:var(--or); }
.js .h.peut-sombre:not(.passe) .h-cherche{ background:rgba(250,247,242,.06); border-color:rgba(250,247,242,.25); color:var(--sapin-pale); }
.js .h.peut-sombre:not(.passe) .h-cherche kbd{ border-color:rgba(250,247,242,.25); color:var(--sapin-pale); }
.js .h.peut-sombre:not(.passe) .h-compte{ color:var(--creme); }
/* Au défilement : la ligne haute se resserre, rien ne disparaît */
.h.compact{ --h-haut:62px; }
.h.compact .h-logo{ width:150px; }

@media (max-width:1060px){
  .h-cherche{ min-width:0; padding:0 12px; } .h-cherche span, .h-cherche kbd{ display:none; }
  .h-univers{ margin-left:0; } .h-univers a{ padding:8px 10px; } .h-univers a::after{ left:10px; right:10px; }
  .h-in{ gap:18px; }
}
/* Téléphone : barre de 60 px, repliée en descendant, revenue dès qu'on remonte */
@media (max-width:781px){
  :root{ --h-haut:60px; --h-sous:42px; }
  .h.compact{ --h-haut:60px; }
  .h-logo, .h.compact .h-logo{ width:132px; }
  .h-univers, .h-cta, .h-cherche{ display:none; }
  .h-loupe-mob{ display:flex; width:44px; height:44px; align-items:center; justify-content:center; }
  .h-burger{ display:flex; }
  .h-droite{ gap:6px; }
  .h.est-cache{ transform:translateY(-100%); }
  .h-sous-titre{ display:none; }
  .h-sous-liens{ gap:8px; padding-right:24px; }
  .h-sous-liens a{ border:1px solid var(--bord); border-radius:16px; padding:3px 12px; font-size:13.5px; background:var(--blanc); }
  .h-sous-liens a.actif{ border-color:var(--or); background:var(--or-pale); font-weight:500; }
  .js .h.peut-sombre:not(.passe) .h-sous-liens a{ background:transparent; border-color:rgba(250,247,242,.22); }
  .js .h.peut-sombre:not(.passe) .h-sous-liens a.actif{ background:rgba(201,168,76,.22); border-color:var(--or); }
  /* Sans script : pas de menu à ouvrir, les deux sections restent visibles. */
  html:not(.js) .h-burger{ display:none; }
  html:not(.js) .h-in{ gap:8px; } html:not(.js) .h-logo{ width:112px; }
  html:not(.js) .h-univers{ display:flex; margin-left:auto; } html:not(.js) .h-univers a{ padding:6px 8px; font-size:14px; } html:not(.js) .h-compte{ display:none; }
}
@media (max-width:380px){ .h-logo, .h.compact .h-logo{ width:116px; } }

/* Menu du téléphone : les deux sections */
.m-panneau{ position:fixed; inset:0; z-index:59; background:var(--sapin); color:var(--creme); padding:calc(var(--h-total) + 20px + env(safe-area-inset-top,0px)) max(var(--gouttiere), env(safe-area-inset-right,0px)) 40px max(var(--gouttiere), env(safe-area-inset-left,0px)); overflow-y:auto; opacity:0; visibility:hidden; transition:opacity .3s var(--ease), visibility .3s; }
.m-panneau.ouvert{ opacity:1; visibility:visible; }
.m-groupe{ margin-bottom:30px; }
.m-groupe p{ font-size:13px; color:var(--or); letter-spacing:.06em; text-transform:uppercase; margin:0 0 10px; }
.m-groupe a{ display:block; font-family:var(--serif); font-size:1.6rem; line-height:1.3; color:var(--creme); text-decoration:none; padding:5px 0; }
.m-groupe a:hover{ color:var(--or); }
.m-groupe a small{ font-family:var(--sans); font-size:13px; color:var(--sapin-pale); margin-left:8px; }
.h.menu-ouvert{ background:transparent; box-shadow:none; color:var(--creme); -webkit-backdrop-filter:none; backdrop-filter:none; transform:none!important; }
.h.menu-ouvert .h-logo .sombre{ opacity:0; } .h.menu-ouvert .h-logo .clair{ opacity:1; }
.h.menu-ouvert .h-sous{ visibility:hidden; }

/* Les pages des fiches commencent sous l'en-tête */
.decale{ padding-top:calc(var(--h-total) + env(safe-area-inset-top,0px)); }
main:focus{ outline:none; }

/* ============================================================
   4. Accueil · ouverture
   ============================================================ */
.c-sombre{ background:var(--sapin); color:var(--sapin-pale); }
.c-sombre h1, .c-sombre h2, .c-sombre h3{ color:var(--creme); }
.c-hero{ min-height:100svh; display:flex; flex-direction:column; justify-content:flex-end; padding:150px 0 0; overflow:hidden; background:radial-gradient(120% 90% at 85% 10%, #2A4C40 0%, #1E3A32 45%, #152A24 100%); }
.c-hero-grain{ position:absolute; inset:0; pointer-events:none; opacity:.5; background-image:radial-gradient(rgba(250,247,242,.035) 1px, transparent 1px); background-size:4px 4px; }
.c-hero-corps{ position:relative; flex:1; display:flex; align-items:center; justify-content:flex-start; width:100%; }
.c-hero-cadre{ position:relative; padding:clamp(40px,6vw,88px) clamp(28px,5vw,80px); width:min(100%,1040px); }
.c-hero-cadre svg.c-trace{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.c-trace path{ fill:none; stroke:var(--or); stroke-width:1.5; vector-effect:non-scaling-stroke; stroke-linecap:square; }
.c-hero h1{ color:var(--creme); margin-bottom:.45em; }
@media (min-width:782px){ .c-hero h1 .ligne{ white-space:nowrap; } }
.c-hero h1 .ligne{ display:block; overflow:hidden; padding-bottom:.06em; }
.c-hero h1 .ligne > span{ display:block; }
.c-hero-sous{ font-size:clamp(1.05rem,1.35vw,1.2rem); line-height:1.65; max-width:34em; color:var(--sapin-pale); margin-bottom:34px; }
.c-hero-actions{ display:flex; flex-wrap:wrap; align-items:center; gap:18px 30px; }
.c-hero-actions .c-mention{ font-size:14px; color:var(--sapin-pale); }
.c-statuts{ position:relative; margin-top:clamp(48px,7vw,96px); }
.c-statuts::before{ content:""; position:absolute; top:0; left:50%; transform:translateX(-50%); width:min(calc(100% - 2 * var(--gouttiere)), calc(var(--largeur) - 2 * var(--gouttiere))); height:1px; background:linear-gradient(90deg, transparent, rgba(201,168,76,.35) 20%, rgba(201,168,76,.35) 80%, transparent); }
.c-statuts ul{ list-style:none; margin:0 auto; padding:22px var(--gouttiere); max-width:var(--largeur); display:flex; flex-wrap:wrap; gap:10px 40px; font-size:14px; color:var(--sapin-pale); }
.c-statuts li{ display:flex; align-items:center; gap:10px; }
.c-statuts li::before{ content:""; width:7px; height:7px; border:1px solid var(--or); transform:rotate(45deg); flex:none; }
.c-statuts a{ color:var(--creme); }

/* Animation d'ouverture : le cadre se trace, le titre monte */
.js .c-trace path{ stroke-dasharray:var(--longueur,4000); stroke-dashoffset:var(--longueur,4000); }
.js .c-hero.est-pret .c-trace path{ animation:c-tracer 1.9s var(--ease) .25s forwards; }
.js .c-hero h1 .ligne > span{ transform:translateY(105%); }
.js .c-hero.est-pret h1 .ligne > span{ animation:c-monter 1.1s var(--ease) forwards; }
.js .c-hero.est-pret h1 .ligne:nth-child(2) > span{ animation-delay:.12s; }
.js .c-hero.est-pret h1 .ligne:nth-child(3) > span{ animation-delay:.24s; }
.js .c-hero .c-apparait{ opacity:0; transform:translateY(14px); }
.js .c-hero.est-pret .c-apparait{ animation:c-fondu .9s var(--ease) .65s forwards; }
.js .c-hero.est-pret .c-apparait + .c-apparait{ animation-delay:.8s; }
@keyframes c-tracer{ to{ stroke-dashoffset:0; } }
@keyframes c-monter{ to{ transform:translateY(0); } }
@keyframes c-fondu{ to{ opacity:1; transform:none; } }

/* ============================================================
   5. Accueil · les questions, du cadre et du sens
   ============================================================ */
.c-questions{ display:grid; grid-template-columns:5fr 7fr; gap:clamp(40px,6vw,96px); align-items:start; }
.c-questions-titre{ position:sticky; top:calc(var(--h-total) + 30px); }
.c-questions-titre h2{ margin-bottom:.35em; }
.c-q-liste{ list-style:none; margin:0; padding:0; }
.c-q-liste li{ font-family:var(--serif); font-size:clamp(1.3rem,2vw,1.75rem); line-height:1.35; color:var(--sapin); padding:30px 0 30px 54px; border-top:1px solid var(--bord); position:relative; letter-spacing:-.01em; }
.c-q-liste li:last-child{ border-bottom:1px solid var(--bord); }
.c-q-liste li::before{ content:"«"; position:absolute; left:0; top:22px; font-size:2.6rem; line-height:1; color:var(--or); }
.c-cadre-sens{ display:grid; grid-template-columns:1fr 1fr; gap:0; margin-top:clamp(72px,9vw,128px); border-top:1px solid var(--sapin); }
.c-cs{ padding:42px clamp(0px,3vw,48px) 0 0; }
.c-cs + .c-cs{ padding:42px 0 0 clamp(24px,3vw,48px); border-left:1px solid var(--bord); }
.c-cs-mot{ font-family:var(--serif); font-size:clamp(3rem,7vw,6.2rem); line-height:.95; letter-spacing:-.04em; color:var(--sapin); margin:0 0 22px; display:flex; align-items:baseline; gap:.18em; }
.c-cs-mot small{ font-size:.28em; letter-spacing:0; color:var(--or-fonce); font-family:var(--sans); }
.c-cs p{ max-width:30em; text-align:justify; hyphens:none; }
.c-nom{ margin-top:40px; font-size:15px; color:var(--gris); }
.c-nom b{ font-family:var(--serif); font-weight:400; font-size:1.6em; color:var(--sapin); letter-spacing:-.01em; }
.c-nom b i{ font-style:normal; color:var(--or-fonce); }

/* ============================================================
   6. Accueil · la méthode
   ============================================================ */
.c-methode{ background:var(--blanc); }
.c-methode-tete{ display:flex; justify-content:space-between; align-items:end; gap:40px; margin-bottom:clamp(48px,6vw,80px); }
.c-methode-tete h2{ margin:0; max-width:12ch; }
.c-methode-tete .c-intro{ margin:0; max-width:30em; }
.c-etapes{ position:relative; display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(24px,3vw,48px); padding-top:46px; }
.c-etapes-rail{ position:absolute; top:0; left:0; right:0; height:1px; background:var(--bord); }
.c-etapes-rail span{ position:absolute; inset:0; background:var(--or); transform-origin:left; transform:scaleX(var(--progression,1)); }
.c-etape{ position:relative; }
.c-etape::before{ content:""; position:absolute; top:-52px; left:0; width:11px; height:11px; background:var(--blanc); border:1px solid var(--or); transform:rotate(45deg); transition:background .4s; }
.c-etape.est-atteinte::before{ background:var(--or); }
.c-etape-num{ font-family:var(--serif); font-size:clamp(3.4rem,5vw,4.6rem); line-height:1; color:transparent; -webkit-text-stroke:1px var(--or); letter-spacing:-.03em; display:block; margin-bottom:18px; }
.c-etape-verbe{ font-size:15px; font-weight:600; color:var(--or-fonce); display:block; margin-bottom:8px; }
.c-etape h3{ margin-bottom:14px; }
.c-etape p{ font-size:16.5px; color:var(--gris); text-align:justify; hyphens:none; }
.c-ensuite{ margin-top:clamp(40px,5vw,64px); display:grid; grid-template-columns:auto 1fr; gap:20px 32px; align-items:start; padding:30px 34px; border:1px dashed var(--or); }
.c-ensuite strong{ font-family:var(--serif); font-weight:400; font-size:1.5rem; color:var(--sapin); white-space:nowrap; }
.c-ensuite p{ margin:0; text-align:justify; hyphens:none; }

/* ============================================================
   7. Accueil · les sept thèmes (diagramme interactif)
   ============================================================ */
.c-themes{ overflow:hidden; background:radial-gradient(90% 70% at 20% 100%, #2A4C40 0%, #1E3A32 55%, #18312A 100%); }
.c-themes-tete{ max-width:46em; margin-bottom:clamp(40px,5vw,64px); }
.c-themes-tete .c-intro{ color:var(--sapin-pale); }
.c-orbite-zone{ display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:clamp(32px,5vw,72px); align-items:center; }
.c-orbite{ position:relative; width:100%; max-width:600px; aspect-ratio:1; margin:0 auto; }
.c-orbite > svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.c-orbite .anneau-temps{ fill:none; stroke:var(--or); stroke-width:1; stroke-dasharray:3 7; opacity:.55; transform-origin:300px 300px; transition:opacity .4s, stroke-width .4s; }
.js .c-orbite .anneau-temps{ animation:c-tourne 120s linear infinite; }
.c-orbite .anneau-themes{ fill:none; stroke:rgba(185,201,193,.22); stroke-width:1; }
.c-orbite .rayon{ stroke:rgba(185,201,193,.16); stroke-width:1; transition:stroke .4s, opacity .4s; }
.c-orbite .lien{ stroke:var(--or); stroke-width:1.2; fill:none; opacity:0; stroke-dasharray:500; stroke-dashoffset:500; transition:opacity .3s; }
.c-orbite .lien.visible{ opacity:.85; animation:c-tracer .9s var(--ease) forwards; }
.c-orbite-centre{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:31%; aspect-ratio:1; border-radius:50%; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; background:radial-gradient(circle, rgba(250,247,242,.08), rgba(250,247,242,.02)); border:1px solid rgba(201,168,76,.4); color:var(--creme); font-family:var(--serif); font-size:clamp(.95rem,1.5vw,1.25rem); line-height:1.25; padding:10px; }
.c-orbite-centre small{ font-family:var(--sans); font-size:.6em; color:var(--sapin-pale); margin-top:6px; }
.c-noeud{ position:absolute; transform:translate(-50%,-50%); display:flex; flex-direction:column; align-items:center; gap:8px; background:none; border:0; padding:6px; cursor:pointer; color:var(--sapin-pale); font:inherit; width:9.5em; }
.c-noeud-pt{ width:46px; height:46px; border-radius:50%; display:grid; place-items:center; background:var(--sapin); border:1px solid rgba(185,201,193,.35); color:var(--creme); transition:background .35s var(--ease), border-color .35s, transform .45s var(--ease), color .35s; }
.c-noeud-pt svg{ width:21px; height:21px; stroke:currentColor; fill:none; stroke-width:1.4; stroke-linecap:round; stroke-linejoin:round; }
.c-noeud-nom{ font-size:14.5px; line-height:1.25; text-align:center; transition:color .3s; }
.c-noeud:hover .c-noeud-pt{ border-color:var(--or); transform:scale(1.08); }
.c-noeud.est-lie .c-noeud-pt{ border-color:var(--or); color:var(--or); }
.c-noeud.est-lie .c-noeud-nom{ color:var(--creme); }
.c-noeud[aria-pressed="true"] .c-noeud-pt{ background:var(--or); border-color:var(--or); color:var(--sapin-nuit); transform:scale(1.15); }
.c-noeud[aria-pressed="true"] .c-noeud-nom{ color:var(--creme); font-weight:600; }
.c-noeud--temps{ width:auto; flex-direction:column; gap:6px; transform:translate(-50%,0); }
.c-orbite{ margin-bottom:76px; }
.c-noeud--temps .c-noeud-pt{ width:34px; height:34px; border-style:dashed; border-color:var(--or); color:var(--or); }
.c-noeud--temps .c-noeud-nom{ color:var(--or); }
.c-orbite.temps-actif .anneau-temps{ opacity:1; stroke-width:2; }
.c-fiche{ position:relative; padding:clamp(28px,3vw,44px); border:1px solid rgba(201,168,76,.35); background:rgba(21,42,36,.45); }
.c-fiche::before, .c-fiche::after{ content:""; position:absolute; width:18px; height:18px; border-color:var(--or); border-style:solid; }
.c-fiche::before{ top:-1px; left:-1px; border-width:2px 0 0 2px; }
.c-fiche::after{ bottom:-1px; right:-1px; border-width:0 2px 2px 0; }
.c-fiche-num{ font-size:14px; color:var(--or); margin-bottom:8px; display:block; }
.c-fiche h3{ font-size:clamp(1.6rem,2.4vw,2.1rem); margin-bottom:16px; }
.c-fiche p{ color:var(--sapin-pale); text-align:justify; hyphens:none; }
.c-fiche .c-obj{ color:var(--creme); border-left:2px solid var(--or); padding-left:16px; margin-top:18px; text-align:left; }
.c-fiche .c-lies{ font-size:14.5px; color:var(--sapin-pale); margin:22px 0 0; text-align:left; }
.c-fiche .c-lies b{ color:var(--or); font-weight:600; }
.c-fiche-contenu{ display:grid; }
/* Tous les thèmes occupent la même case : le cadre prend la hauteur du plus long et ne bouge plus */
.c-fiche-panneau{ grid-area:1 / 1; opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .4s var(--ease), transform .4s var(--ease), visibility 0s linear .4s; }
.c-fiche-panneau.actif{ opacity:1; visibility:visible; transform:none; transition:opacity .45s var(--ease) .1s, transform .45s var(--ease) .1s, visibility 0s; }
/* Sans script : la liste des thèmes s'affiche en clair */
.c-themes-liste{ display:grid; grid-template-columns:1fr 1fr; gap:24px 48px; margin-top:48px; }
.c-themes-liste h3{ font-size:1.3rem; margin-bottom:6px; }
.c-themes-liste p{ font-size:16px; color:var(--sapin-pale); }
.js .c-themes-liste{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); margin:0; }
.c-themes-pied{ margin:clamp(40px,5vw,64px) 0 0; max-width:40em; color:var(--sapin-pale); }
@keyframes c-tourne{ to{ transform:rotate(360deg); } }

/* ============================================================
   8. Accueil · rémunération
   ============================================================ */
.c-remu{ background:var(--rose); }
.c-remu-grille{ display:grid; grid-template-columns:5fr 7fr; gap:clamp(40px,6vw,96px); align-items:start; }
.c-remu-grille > div:first-child{ position:sticky; top:calc(var(--h-total) + 30px); }
.c-remu-liste{ list-style:none; margin:0; padding:0; counter-reset:remu; }
.c-remu-liste li{ padding:34px 0; border-top:1px solid rgba(30,58,50,.18); display:grid; grid-template-columns:minmax(0,1fr); }
.c-remu-liste li:last-child{ border-bottom:1px solid rgba(30,58,50,.18); }
.c-remu-liste h3{ margin-bottom:10px; }
.c-remu-liste p{ margin:0; text-align:justify; hyphens:none; }
.c-remu-chute{ margin-top:34px; font-family:var(--serif); font-size:clamp(1.3rem,2vw,1.65rem); line-height:1.4; color:var(--sapin); }

/* ============================================================
   9. Accueil · le cabinet
   ============================================================ */
.c-cabinet{ display:grid; grid-template-columns:5fr 7fr; gap:clamp(40px,6vw,96px); align-items:center; }
.c-monogramme{ position:relative; aspect-ratio:1; max-width:420px; width:100%; display:grid; place-items:center; background:var(--creme-2); }
.c-monogramme svg{ width:46%; height:auto; }
.c-monogramme figcaption{ position:absolute; left:0; right:0; bottom:-34px; font-size:14px; color:var(--gris-clair); text-align:center; }
.c-titres{ list-style:none; padding:0; margin:30px 0 32px; border-top:1px solid var(--bord); }
.c-titres li{ display:grid; grid-template-columns:150px 1fr; gap:20px; padding:14px 0; border-bottom:1px solid var(--bord); font-size:16px; }
.c-titres li span:first-child{ color:var(--gris-clair); }
.c-signature{ font-family:var(--serif); font-size:1.5rem; color:var(--sapin); margin:0; }
.c-signature small{ font-family:var(--sans); font-size:15px; color:var(--gris-clair); }

/* ============================================================
   10. Accueil · couverture et cadre réglementaire
   ============================================================ */
.c-couv-section{ background:var(--creme-2); }
.c-couv{ display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--bord); border-left:1px solid var(--bord); margin-top:clamp(40px,5vw,64px); }
.c-couv article{ padding:34px 32px 38px; border-right:1px solid var(--bord); border-bottom:1px solid var(--bord); background:var(--creme); position:relative; transition:background .45s var(--ease); }
.c-couv article::after{ content:""; position:absolute; left:0; top:0; width:100%; height:2px; background:var(--or); transform:scaleX(0); transform-origin:left; transition:transform .5s var(--ease); }
.c-couv article:hover{ background:var(--blanc); }
.c-couv article:hover::after{ transform:scaleX(1); }
.c-couv svg{ width:30px; height:30px; stroke:var(--or-fonce); fill:none; stroke-width:1.3; stroke-linecap:round; stroke-linejoin:round; margin-bottom:22px; }
.c-couv h3{ font-size:1.35rem; margin-bottom:10px; }
.c-couv p{ font-size:16px; color:var(--gris); margin:0; }
.c-regle{ margin-top:clamp(56px,7vw,88px); display:grid; grid-template-columns:4fr 8fr; gap:clamp(28px,5vw,72px); }
.c-regle h3{ font-size:1.45rem; }
.c-regle p{ font-size:14.5px; line-height:1.7; color:var(--gris); text-align:justify; hyphens:none; }
.c-regle a{ color:var(--sapin); }

/* ============================================================
   11. Accueil · appel final
   ============================================================ */
.c-final{ text-align:center; }
.c-final-cadre{ position:relative; max-width:860px; margin:0 auto; padding:clamp(56px,7vw,96px) clamp(24px,5vw,72px); }
.c-final-cadre svg.c-trace{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; pointer-events:none; }
.c-final h2{ font-size:clamp(2.4rem,5vw,4.2rem); margin-bottom:.35em; }
.c-final p{ max-width:34em; margin:0 auto 34px; color:var(--gris); }
.c-final .c-mention{ display:block; margin-top:20px; font-size:14px; color:var(--gris-clair); }
.js .c-final .c-trace path{ stroke-dasharray:var(--longueur,4000); stroke-dashoffset:var(--longueur,4000); transition:stroke-dashoffset 2s var(--ease); }
.js .c-final.est-visible .c-trace path{ stroke-dashoffset:0; }

/* ============================================================
   12. Pages intérieures
   ============================================================ */
.c-bandeau{ padding:clamp(140px,16vw,200px) 0 clamp(48px,6vw,80px); background:radial-gradient(110% 120% at 90% 0%, #2A4C40 0%, #1E3A32 50%, #152A24 100%); position:relative; overflow:hidden; }
.c-bandeau::after{ content:""; position:absolute; right:calc(var(--gouttiere) + 2vw); bottom:-60px; width:clamp(160px,22vw,300px); aspect-ratio:1; border:1.5px solid rgba(201,168,76,.45); border-right-color:transparent; }
.c-bandeau h1{ color:var(--creme); font-size:clamp(2.4rem,5vw,4.2rem); margin:0; max-width:18ch; position:relative; }
.c-bandeau .c-reperes{ color:var(--or); }
.c-page-corps{ padding:clamp(56px,7vw,96px) 0 clamp(80px,10vw,140px); }

/* Pages légales : sommaire collant + colonne de lecture */
.c-legal{ display:grid; grid-template-columns:240px minmax(0,760px); gap:clamp(32px,6vw,96px); align-items:start; }
.c-sommaire{ position:sticky; top:calc(var(--h-total) + 24px); font-size:14.5px; }
.c-sommaire p{ font-weight:600; color:var(--sapin); margin-bottom:12px; }
.c-sommaire ol{ list-style:none; margin:0; padding:0; border-left:1px solid var(--bord); }
.c-sommaire a{ display:block; padding:6px 0 6px 16px; margin-left:-1px; border-left:1px solid transparent; color:var(--gris); text-decoration:none; line-height:1.4; transition:color .25s, border-color .25s; }
.c-sommaire a:hover, .c-sommaire a.actif{ color:var(--sapin); border-left-color:var(--or); }
.c-texte-legal{ min-width:0; }
.c-texte-legal p, .c-texte-legal li{ text-align:justify; hyphens:none; }
.c-texte-legal h2{ font-size:clamp(1.55rem,2.2vw,1.9rem); margin:2.2em 0 .6em; padding-top:.9em; border-top:1px solid var(--bord); scroll-margin-top:calc(var(--h-total) + 20px); }
.c-texte-legal h2:first-of-type{ margin-top:1.2em; }
.c-texte-legal h3{ font-size:1.25rem; margin:1.6em 0 .5em; }
.c-texte-legal ul{ padding-left:20px; margin:0 0 1.1em; }
.c-texte-legal li{ margin-bottom:.5em; }
.c-texte-legal li::marker{ color:var(--or-fonce); }
.c-texte-legal a{ color:var(--sapin); }
.cad-maj{ display:inline-block; font-size:14px; color:var(--gris); background:var(--creme-2); padding:6px 12px; border-left:2px solid var(--or); }
.cad-adresse{ background:var(--blanc); border:1px solid var(--bord); padding:18px 22px; margin:0 0 14px; text-align:left!important; line-height:1.65; }
.cad-adresse strong{ color:var(--sapin); }
.wp-block-table{ margin:0 0 1.6em; overflow-x:auto; }
.c-texte-legal table, .c-texte-page table{ width:100%; border-collapse:collapse; font-size:15.5px; line-height:1.55; background:var(--blanc); }
.c-texte-legal th, .c-texte-page th{ background:var(--sapin); color:var(--creme); font-weight:600; text-align:left; padding:12px 14px; font-size:14.5px; }
.c-texte-legal td, .c-texte-page td{ padding:12px 14px; border-bottom:1px solid var(--bord); vertical-align:top; text-align:left; }
.c-texte-legal tbody tr:nth-child(even) td{ background:var(--creme); }
.wp-block-table.has-fixed-layout table, table.has-fixed-layout{ table-layout:auto; }
.wp-block-table thead{ border-bottom:0; }
.wp-block-table td, .wp-block-table th{ border-left:0; border-right:0; border-top:0; }

/* Page contact */
.c-contact{ display:grid; grid-template-columns:minmax(0,7fr) minmax(0,5fr); gap:clamp(36px,6vw,88px); align-items:start; }
.c-contact-intro{ font-family:var(--serif); font-size:clamp(1.4rem,2.2vw,1.85rem); line-height:1.35; color:var(--sapin); margin-bottom:36px; letter-spacing:-.01em; }
.c-contact-aside{ background:var(--sapin); color:var(--sapin-pale); padding:clamp(28px,3vw,44px); position:sticky; top:calc(var(--h-total) + 24px); }
.c-contact-aside h2{ color:var(--creme); font-size:1.5rem; margin-bottom:14px; }
.c-contact-aside p{ font-size:16px; }
.c-contact-aside a{ color:var(--creme); }
.c-contact-aside .c-coord{ font-family:var(--serif); font-size:1.35rem; line-height:1.5; color:var(--creme); margin-bottom:24px; }
.c-contact-aside .c-coord a{ text-decoration:none; background:linear-gradient(var(--or),var(--or)) 0 100%/100% 1px no-repeat; }
.c-contact-aside hr{ border:0; border-top:1px solid rgba(201,168,76,.3); margin:26px 0; }

/* Formulaire */
.cad-form{ margin:0; }
.cad-champ{ margin-bottom:22px; position:relative; }
.cad-champ label{ display:block; font-size:15px; font-weight:600; color:var(--sapin); margin-bottom:8px; }
.cad-oblig, .cad-facult{ font-weight:400; color:var(--gris-clair); font-size:13.5px; }
.cad-form input[type=text], .cad-form input[type=email], .cad-form input[type=tel], .cad-form textarea{ width:100%; background:transparent; border:0; border-bottom:1px solid #BFC7C3; border-radius:0; padding:12px 2px; font:inherit; font-size:17px; color:var(--encre); transition:border-color .3s, background .3s; }
.cad-form textarea{ border:1px solid #BFC7C3; padding:14px; background:var(--blanc); }
.cad-form input:focus, .cad-form textarea:focus{ outline:none; border-color:var(--or-fonce); background:rgba(255,255,255,.6); }
.cad-champs-2{ display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.cad-case{ display:flex; gap:12px; align-items:flex-start; margin-bottom:12px; font-size:15px; line-height:1.55; }
.cad-case input{ width:19px; height:19px; margin-top:2px; accent-color:var(--sapin); flex:none; }
.cad-form button{ margin:18px 0 26px; }
.cad-form-mention{ font-size:13px!important; line-height:1.65!important; color:var(--gris); text-align:justify; hyphens:none; }
.cad-form-mention a{ color:var(--sapin); }
.cad-piege{ position:absolute!important; left:-10000px!important; width:1px; height:1px; overflow:hidden; }
.cad-form-retour{ padding:20px 24px; margin-bottom:24px; border:1px solid var(--bord); border-left:3px solid var(--sapin); background:var(--blanc); }
.cad-form-retour--erreur{ border-left-color:var(--or-fonce); }
.cad-form-retour p{ margin:0; }

/* Page générique */
.c-texte-page{ max-width:760px; }
.c-texte-page p{ text-align:justify; hyphens:none; }

/* ============================================================
   13. Pied de page
   ============================================================ */
.c-footer{ background:var(--sapin-nuit); color:var(--sapin-pale); padding:clamp(64px,8vw,104px) 0 34px; font-size:15px; position:relative; overflow:hidden; }
.c-footer-haut{ display:grid; grid-template-columns:1.6fr 1fr 1fr; gap:40px; padding-bottom:clamp(48px,6vw,72px); }
.c-footer-haut--4{ grid-template-columns:1.5fr 1fr 1fr 1fr; gap:32px; }
.c-footer-logo{ display:inline-block; line-height:0; margin-bottom:22px; }
.c-footer-logo svg{ height:34px; width:auto; }
.c-footer-accroche{ font-family:var(--serif); font-size:1.45rem; line-height:1.35; color:var(--creme); max-width:16em; margin:0; }
.c-footer-titre{ color:var(--or); font-size:14px; margin:6px 0 16px; }
.c-footer a, .c-footer-col span{ color:var(--sapin-pale); text-decoration:none; display:block; margin-bottom:10px; }
.c-footer a:hover{ color:var(--creme); }
.c-footer-bas{ border-top:1px solid rgba(201,168,76,.22); padding-top:28px; font-size:13px; line-height:1.75; color:#9FB2A9; }
.c-footer-bas p{ margin:0 0 10px; }
.c-footer-bas strong{ color:var(--creme); font-weight:600; }
.c-footer-bas a{ display:inline; color:#D3DED9; text-decoration:underline; text-underline-offset:3px; }
.c-footer-liens a{ white-space:nowrap; }

/* ============================================================
   14. Apparitions discrètes au défilement (titres de section seulement)
   ============================================================ */
.js .c-revele{ opacity:0; transform:translateY(22px); transition:opacity .9s var(--ease), transform .9s var(--ease); }
.js .c-revele.est-visible{ opacity:1; transform:none; }

/* ============================================================
   15. Écrans étroits
   ============================================================ */
@media (max-width:980px){
  .c-orbite-zone{ grid-template-columns:1fr; }
  .c-fiche{ min-height:0; }
  .c-legal{ grid-template-columns:1fr; }
  .c-sommaire{ position:static; background:var(--blanc); border:1px solid var(--bord); padding:18px 20px; }
  .c-contact{ grid-template-columns:1fr; }
  .c-contact-aside{ position:static; }
  .c-footer-haut--4{ grid-template-columns:1fr 1fr; }
}
@media (max-width:781px){
  body{ font-size:17px; }
  .c-hero{ padding-top:calc(var(--h-total) + 24px); min-height:92svh; }
  .c-hero-cadre{ padding:40px 26px; }
  .c-questions, .c-remu-grille, .c-cabinet, .c-regle{ grid-template-columns:1fr; }
  .c-questions-titre, .c-remu-grille > div:first-child{ position:static; }
  .c-cadre-sens{ grid-template-columns:1fr; }
  .c-cs + .c-cs{ border-left:0; border-top:1px solid var(--bord); padding:36px 0 0; margin-top:36px; }
  .c-q-liste li{ padding-left:42px; }
  .c-methode-tete{ flex-direction:column; align-items:flex-start; }
  .c-etapes{ grid-template-columns:1fr; padding-top:0; padding-left:34px; gap:40px; }
  .c-etapes-rail{ top:0; bottom:0; left:5px; right:auto; width:1px; height:auto; }
  .c-etapes-rail span{ transform-origin:top; transform:scaleY(var(--progression,1)); }
  .c-etape::before{ top:10px; left:-34px; }
  .c-ensuite{ grid-template-columns:1fr; padding:24px; }
  .c-hero h1{ font-size:2.3rem; }
  .c-noeud{ width:7em; }
  .c-noeud .c-noeud-nom{ opacity:0; transition:opacity .3s; }
  .c-noeud[aria-pressed="true"] .c-noeud-nom, .c-noeud--temps .c-noeud-nom{ opacity:1; }
  .c-etape p, .c-fiche p, .c-ensuite p, .c-remu-liste p, .c-cs p{ text-align:left; }
  .c-noeud-pt{ width:38px; height:38px; }
  .c-noeud-pt svg{ width:18px; height:18px; }
  .c-noeud-nom{ font-size:12.5px; }
  .c-orbite-centre{ font-size:.85rem; }
  .c-themes-liste{ grid-template-columns:1fr; }
  .c-couv{ grid-template-columns:1fr; }
  .c-titres li{ grid-template-columns:1fr; gap:2px; }
  .c-monogramme{ max-width:260px; }
  .c-footer-haut, .c-footer-haut--4{ grid-template-columns:1fr; }
  .cad-champs-2{ grid-template-columns:1fr; gap:0; }
}
@media (max-width:782px){ .admin-bar .h{ top:46px; } .admin-bar .m-panneau{ top:46px; } }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none!important; transition:none!important; }
  .js .c-trace path{ stroke-dashoffset:0!important; }
  .js .c-hero h1 .ligne > span, .js .c-hero .c-apparait, .js .c-revele{ transform:none!important; opacity:1!important; }
  .c-orbite .lien.visible{ stroke-dashoffset:0; }
}
@media print{
  .h, .m-panneau, .r-voile, .c-footer-haut, .c-sommaire, .p-sommaire, .p-niv-barre, .p-liees, .f-outils{ display:none!important; }
  .decale{ padding-top:0!important; }
  .p-niveau{ display:block!important; }
  body{ background:#fff; font-size:11pt; }
  .c-bandeau{ padding:12pt 0; background:none; } .c-bandeau h1{ color:#000; } .c-bandeau::after{ display:none; }
  .c-legal{ display:block; }
  .c-footer{ background:none; color:#000; padding:12pt 0 0; } .c-footer-bas, .c-footer-bas a{ color:#000; }
}

/* ============================================================
   16. Photographies
   ============================================================ */
.c-photo{ margin:36px 0 0; overflow:hidden; position:relative; }
.c-photo img{ display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; transition:transform 1.2s var(--ease); }
.c-photo:hover img{ transform:scale(1.03); }
.c-photo--calculs::after{ content:""; position:absolute; left:14px; top:14px; right:-1px; bottom:-1px; border:1px solid var(--or); border-left:0; border-top:0; pointer-events:none; }
.c-photo--carnet img{ aspect-ratio:5/4; }
.c-photo--calculs img{ object-position:0% 100%; transform-origin:0% 100%; transform:scale(1.45); }
.c-photo--calculs:hover img{ transform:scale(1.5); }

/* Ouverture : toits de Paris fondus dans le vert */
.c-hero-photo{ position:absolute; inset:0; z-index:0; overflow:hidden; }
.c-hero-photo img{ position:relative; top:-13%; width:100%; height:118%; object-fit:cover; object-position:center 100%; filter:grayscale(1) contrast(1.15); mix-blend-mode:luminosity; opacity:.46; will-change:transform; }
.c-hero-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(95deg, rgba(21,42,36,.95) 0%, rgba(30,58,50,.72) 45%, rgba(30,58,50,.2) 100%), linear-gradient(0deg, #152A24 0%, rgba(21,42,36,.92) 8%, rgba(21,42,36,.6) 22%, rgba(21,42,36,.25) 38%, rgba(21,42,36,0) 55%); }
.c-hero .c-hero-grain, .c-hero .c-hero-corps, .c-hero .c-statuts{ z-index:1; }
.c-hero .c-hero-grain{ position:absolute; }

/* Bande photo pleine largeur (le chêne) */
.c-bande-photo{ position:relative; height:clamp(340px,52vw,620px); overflow:hidden; display:flex; align-items:flex-end; background:var(--sapin-nuit); }
.c-bande-photo img{ position:absolute; left:0; top:-12%; width:100%; height:124%; object-fit:cover; object-position:center 35%; will-change:transform; }
.c-bande-photo::after{ content:""; position:absolute; inset:0; background:linear-gradient(90deg, rgba(21,42,36,.78) 0%, rgba(21,42,36,.35) 45%, rgba(21,42,36,0) 70%), linear-gradient(0deg, rgba(21,42,36,.8) 0%, rgba(21,42,36,.15) 50%, rgba(21,42,36,0) 75%); }
.c-bande-photo .c-wrap{ position:relative; z-index:1; width:100%; padding-bottom:clamp(36px,5vw,64px); }
.c-bande-texte{ font-family:var(--serif); font-size:clamp(1.6rem,3.2vw,2.7rem); line-height:1.2; letter-spacing:-.015em; color:var(--creme); max-width:22ch; margin:0; }

/* Paris, Rennes */
.c-lieux{ background:var(--blanc); }
.c-lieux-tete{ display:flex; justify-content:space-between; align-items:end; gap:32px; margin-bottom:clamp(36px,5vw,56px); }
.c-lieux-tete h2{ margin:0; max-width:14ch; }
.c-lieux-tete .c-intro{ margin:0; max-width:26em; }
.c-lieux-grille{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(16px,2vw,28px); align-items:end; }
.c-lieux-grille figure{ margin:0; position:relative; overflow:hidden; }
.c-lieux-grille img{ height:clamp(300px,36vw,500px)!important; }
.c-lieux-grille img{ display:block; width:100%; height:auto; object-fit:cover; transition:transform 1.4s var(--ease); }
.c-lieux-grille figure:hover img{ transform:scale(1.04); }
.c-lieux-grille figcaption{ position:absolute; left:0; bottom:0; padding:14px 22px 14px 18px; background:var(--sapin); color:var(--creme); font-family:var(--serif); font-size:1.35rem; }

/* Bandeau des pages intérieures */
.c-bandeau-photo{ position:absolute; inset:0; background-size:cover; background-position:center 30%; filter:grayscale(1); mix-blend-mode:luminosity; opacity:.22; }
.c-bandeau > .c-wrap{ position:relative; z-index:1; }

/* Contact */
.c-contact-photo{ margin:calc(-1 * clamp(28px,3vw,44px)) calc(-1 * clamp(28px,3vw,44px)) 28px; }
.c-contact-photo img{ display:block; width:100%; height:auto; aspect-ratio:16/10; object-fit:cover; }

@media (max-width:781px){
  .c-lieux-tete{ flex-direction:column; align-items:flex-start; }
  .c-lieux-grille{ grid-template-columns:1fr; }
  .c-lieux-grille img{ height:auto!important; aspect-ratio:4/3; }
  .c-hero-photo img{ opacity:.26; }
}
@media (prefers-reduced-motion:reduce){ .c-parallaxe, .c-hero-photo img{ transform:none!important; } }

/* ============================================================
   17. Les fiches (extension CADRENS Fiches)
   ============================================================ */

/* Accueil : passerelles vers les fiches */
.c-hero-actions .c-hero-fiches{ font-size:15.5px; }
.c-fiche .c-fiches-lien, .c-themes-liste .c-fiches-lien{ margin:20px 0 0; padding-top:14px; border-top:1px solid rgba(201,168,76,.25); font-size:15px; display:flex; gap:12px; align-items:baseline; text-align:left; }
.c-fiches-lien a{ color:var(--creme); font-weight:600; text-decoration:none; background:linear-gradient(var(--or),var(--or)) 0 100%/100% 1px no-repeat; padding-bottom:2px; }
.c-fiches-lien a:hover{ color:var(--or); }
.c-fiches-lien em{ font-style:normal; color:var(--or); font-size:13.5px; margin-left:auto; white-space:nowrap; }
.a-comprendre{ background:var(--blanc); border-top:1px solid var(--bord); border-bottom:1px solid var(--bord); }
.a-comprendre-tete{ display:flex; justify-content:space-between; align-items:end; gap:30px; flex-wrap:wrap; margin-bottom:34px; }
.a-comprendre-tete h2{ margin:0; max-width:20ch; }
.a-comprendre-tete .c-intro{ margin:0; max-width:30em; }
.a-comprendre-pied{ margin:8px 0 0; }

/* Bandeau des pages des fiches */
.f-bandeau{ background:var(--creme-2); border-bottom:1px solid var(--bord); padding-bottom:clamp(30px,4vw,48px); }
.f-bandeau > .c-wrap{ padding-top:clamp(36px,5vw,64px); }
.f-bandeau h1{ font-size:clamp(2.3rem,5vw,4.4rem); max-width:15ch; }
.f-bandeau-grille{ display:grid; grid-template-columns:7fr 5fr; gap:clamp(24px,5vw,72px); align-items:end; }
.f-bandeau-grille > *{ min-width:0; }
.f-chiffres{ display:flex; flex-wrap:wrap; gap:6px 28px; margin:0; }
.f-chiffres div{ display:flex; flex-direction:column; }
.f-chiffres dt{ font-size:13px; color:var(--gris); order:2; }
.f-chiffres dd{ margin:0; font-family:var(--serif); font-size:2.2rem; line-height:1; color:var(--sapin); font-variant-numeric:tabular-nums; }
.f-recherche{ position:relative; margin:30px 0 0; max-width:760px; }
.f-recherche input[type=search]{ width:100%; height:62px; border:1px solid var(--sapin); background:var(--blanc); border-radius:2px; padding:0 52px 0 56px; font:inherit; font-size:17px; color:var(--encre); -webkit-appearance:none; appearance:none; }
.f-recherche input::placeholder{ color:var(--gris-clair); }
.f-recherche input::-webkit-search-cancel-button, .r-champ input::-webkit-search-cancel-button{ -webkit-appearance:none; display:none; }
.f-recherche input:focus{ outline:2px solid var(--or); outline-offset:0; }
.f-recherche > svg{ position:absolute; left:20px; top:50%; transform:translateY(-50%); color:var(--sapin); pointer-events:none; }
.f-effacer{ position:absolute; right:10px; top:50%; transform:translateY(-50%); width:38px; height:38px; border:0; background:none; cursor:pointer; color:var(--gris); font-size:22px; line-height:1; }
.f-suggestions{ display:flex; flex-wrap:wrap; gap:6px 14px; margin-top:12px; font-size:14px; color:var(--gris); align-items:center; }
.f-suggestions button{ background:none; border:0; padding:0; cursor:pointer; color:var(--sapin); text-decoration:underline; text-underline-offset:.2em; text-decoration-color:var(--or); font:inherit; font-size:14px; }
.f-suggestions[hidden]{ display:none; }

/* Barre d'outils : vues, thème, situation */
.f-outils{ position:sticky; top:calc(var(--h-total) + env(safe-area-inset-top,0px)); z-index:20; background:rgba(250,247,242,.96); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px); border-bottom:1px solid var(--bord); transition:top .45s var(--ease); }
.admin-bar .f-outils{ top:calc(var(--h-total) + 32px); }
.f-outils-in{ display:flex; align-items:center; gap:14px 24px; flex-wrap:wrap; padding-block:12px; }
.f-vues{ display:inline-flex; border:1px solid var(--sapin); border-radius:2px; flex:none; }
.f-vues a, .f-vues button{ border:0; background:none; padding:8px 16px; font-size:14px; font-weight:500; cursor:pointer; color:var(--sapin); display:flex; gap:8px; align-items:center; text-decoration:none; font-family:var(--sans); }
.f-vues [aria-pressed="true"]{ background:var(--sapin); color:var(--creme); }
.f-filtre{ display:flex; align-items:center; gap:8px; font-size:14px; color:var(--gris); min-width:0; }
.f-filtre select{ font:inherit; font-size:14px; height:36px; border:1px solid var(--bord); background:var(--blanc); border-radius:2px; padding:0 30px 0 10px; color:var(--encre); max-width:220px; }
.f-situations{ display:flex; gap:6px; flex-wrap:nowrap; align-items:center; overflow-x:auto; scrollbar-width:none; padding-bottom:12px; margin-top:-2px; -webkit-mask-image:linear-gradient(90deg,#000 94%,transparent); mask-image:linear-gradient(90deg,#000 94%,transparent); padding-right:30px; }
.f-situations::-webkit-scrollbar{ display:none; }
.f-puce{ flex:none; border:1px solid var(--bord); background:var(--blanc); border-radius:16px; padding:3px 12px; font-family:var(--sans); font-size:13.5px; line-height:1.6; cursor:pointer; color:var(--encre); text-decoration:none; transition:border-color .2s, background .2s; }
.f-puce:hover{ border-color:var(--or); color:var(--encre); }
.f-puce[aria-pressed="true"]{ background:var(--sapin); border-color:var(--sapin); color:var(--creme); }
.f-puce-titre{ font-size:13px; color:var(--gris); margin-right:4px; flex:none; }
html:not(.js) .js-seul{ display:none!important; }

.f-resultats{ padding-bottom:80px; min-height:40vh; }
.f-resultat-tete{ display:flex; justify-content:space-between; align-items:baseline; gap:16px; flex-wrap:wrap; margin:34px 0 18px; }
.f-resultat-tete p{ margin:0; color:var(--gris); font-size:15px; }
.f-resultat-tete strong{ color:var(--sapin); }

/* Vue « Par thème » : menus déroulants */
.f-acc{ border-top:1px solid var(--sapin); margin-top:34px; }
.f-acc details{ border-bottom:1px solid var(--bord); }
.f-acc summary{ list-style:none; cursor:pointer; display:grid; grid-template-columns:1fr auto 28px; gap:6px 24px; align-items:center; padding:22px 4px; }
.f-acc summary::-webkit-details-marker{ display:none; }
.f-acc summary h2{ font-size:clamp(1.25rem,2vw,1.6rem); margin:0; transition:color .25s; }
.f-acc summary:hover h2{ color:var(--or-fonce); }
.f-acc summary p{ grid-column:1/2; margin:0; font-size:14.5px; color:var(--gris); }
.f-acc-compte{ grid-row:1/3; grid-column:2; text-align:right; font-size:13.5px; color:var(--gris); white-space:nowrap; font-variant-numeric:tabular-nums; }
.f-acc-compte b{ font-family:var(--serif); font-weight:400; font-size:1.6rem; color:var(--sapin); display:block; line-height:1.1; }
.f-acc-signe{ grid-row:1/3; grid-column:3; width:28px; height:28px; border:1px solid var(--or); border-radius:50%; position:relative; }
.f-acc-signe::before, .f-acc-signe::after{ content:""; position:absolute; left:50%; top:50%; width:11px; height:1.5px; background:var(--sapin); transform:translate(-50%,-50%); transition:transform .3s var(--ease); }
.f-acc-signe::after{ transform:translate(-50%,-50%) rotate(90deg); }
.f-acc details[open] .f-acc-signe::after{ transform:translate(-50%,-50%) rotate(0); }
.f-acc-corps{ padding:0 4px 26px; }
.f-acc-corps h3{ font-family:var(--sans); font-size:12.5px; font-weight:600; letter-spacing:.06em; text-transform:uppercase; color:var(--or-fonce); margin:18px 0 6px; }
.f-acc-pied{ display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-top:16px; font-size:14px; }
.f-acc-vide{ color:var(--gris); font-size:15px; margin:6px 0 0; }
.f-acc details.est-vide summary{ opacity:.6; }

/* Lignes de fiches */
.f-lignes{ list-style:none; margin:0; padding:0; }
.f-ligne{ border-top:1px solid var(--bord); }
.f-ligne:first-child{ border-top:0; }
.f-ligne > a{ display:grid; grid-template-columns:1fr auto; gap:2px 24px; padding:13px 0; text-decoration:none; color:inherit; }
.f-ligne > a:hover .f-l-titre{ color:var(--or-fonce); }
.f-l-titre{ font-family:var(--serif); font-size:1.13rem; color:var(--sapin); transition:color .2s; }
.f-l-q{ grid-column:1; font-size:14.5px; color:var(--gris); font-style:italic; }
.f-l-meta{ grid-row:1/3; grid-column:2; display:flex; gap:6px; align-items:center; justify-content:flex-end; flex-wrap:wrap; }

.f-badge{ font-size:12px; line-height:1.3; border-radius:2px; padding:3px 8px; white-space:nowrap; font-family:var(--sans); }
.f-badge--d{ background:var(--rose); color:var(--sapin); }
.f-badge--a{ background:var(--sapin); color:var(--creme); }
.f-badge--theme{ border:1px solid var(--or); color:var(--or-fonce); text-decoration:none; }
.f-badge--theme:hover{ background:var(--or-pale); color:var(--sapin); }
.f-badge--aussi{ opacity:.8; }

/* Cartes */
.f-cartes{ display:grid; grid-template-columns:repeat(auto-fill,minmax(min(290px,100%),1fr)); gap:18px; margin-bottom:40px; }
.f-carte{ background:var(--blanc); border:1px solid var(--bord); padding:22px 22px 18px; display:flex; flex-direction:column; gap:8px; text-decoration:none; color:inherit; position:relative; transition:border-color .3s, transform .4s var(--ease), box-shadow .4s; min-width:0; }
.f-carte:hover{ border-color:var(--or); transform:translateY(-2px); box-shadow:0 12px 30px -18px rgba(30,58,50,.35); color:inherit; }
.f-carte::after{ content:""; position:absolute; top:-1px; right:-1px; width:22px; height:22px; border-top:1.5px solid var(--or); border-right:1.5px solid var(--or); opacity:0; transition:opacity .3s; }
.f-carte:hover::after{ opacity:1; }
.f-c-theme{ font-size:12.5px; color:var(--or-fonce); }
.f-c-titre{ font-family:var(--serif); font-weight:400; font-size:1.3rem; line-height:1.25; color:var(--sapin); margin:0; letter-spacing:-.01em; }
.f-c-q{ font-family:var(--serif); font-style:italic; font-size:1rem; line-height:1.5; color:var(--gris); margin:0; flex:1; }
.f-c-meta{ display:flex; flex-wrap:wrap; gap:6px; align-items:center; margin-top:8px; padding-top:12px; border-top:1px solid var(--bord); font-size:12.5px; color:var(--gris); }
.f-c-meta time{ margin-left:auto; font-variant-numeric:tabular-nums; }
mark{ background:var(--or-pale); color:inherit; padding:0 1px; border-radius:2px; }
.f-extrait{ font-size:13.5px; line-height:1.55; color:var(--gris); margin:0; }
.f-vide{ border:1px dashed var(--or); padding:28px; margin:30px 0 60px; }
.f-vide h2, .f-vide h3{ font-size:1.4rem; margin-bottom:8px; }
.f-vide p{ margin:0; }

/* Page d'un thème */
.t-bandeau .f-bandeau-grille{ align-items:center; }
.t-bandeau h1{ max-width:18ch; }
.t-bandeau .f-chiffres{ margin-top:22px; }
.t-image{ margin:0; position:relative; }
.t-image img{ display:block; width:100%; height:auto; aspect-ratio:4/3; object-fit:cover; }
.t-image::after{ content:""; position:absolute; left:14px; top:14px; right:-1px; bottom:-1px; border:1px solid var(--or); border-left:0; border-top:0; pointer-events:none; }
.t-corps{ padding-block:40px 80px; }
.t-titre{ font-size:1.6rem; margin-top:10px; }
.t-autres-titre{ margin-top:30px; }
.t-autres{ display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }

/* Page d'une fiche */
.p-tete{ background:var(--creme-2); padding-bottom:26px; }
.p-tete > .c-wrap{ padding-top:clamp(28px,4vw,48px); }
.p-niv-barre{ background:var(--creme-2); border-bottom:1px solid var(--bord); }
.p-ariane{ font-size:13.5px; color:var(--gris); display:flex; flex-wrap:wrap; gap:4px 8px; margin-bottom:22px; }
.p-ariane a{ color:var(--gris); }
.p-ariane span[aria-hidden]{ color:var(--or); }
.p-tete h1{ font-size:clamp(2.1rem,4.4vw,3.6rem); max-width:20ch; }
.p-question{ font-family:var(--serif); font-style:italic; font-size:clamp(1.15rem,1.8vw,1.45rem); line-height:1.5; color:var(--gris); max-width:36em; position:relative; padding-left:34px; }
.p-question::before{ content:"«"; position:absolute; left:0; top:-.15em; font-size:2.2em; line-height:1; color:var(--or); font-style:normal; }
.p-meta{ display:flex; flex-wrap:wrap; gap:8px 22px; align-items:center; font-size:13.5px; color:var(--gris); margin:22px 0 0; }
.p-meta-themes{ display:flex; flex-wrap:wrap; gap:6px; }
.p-meta b{ color:var(--sapin); font-weight:600; }
.p-niveaux{ display:flex; }
.p-niveaux a{ border:1px solid var(--bord); border-bottom:0; background:transparent; padding:14px 22px 12px; cursor:pointer; text-align:left; display:flex; flex-direction:column; margin-right:-1px; position:relative; top:1px; text-decoration:none; color:inherit; }
.p-niveaux a b{ font-family:var(--serif); font-weight:400; font-size:1.15rem; color:var(--sapin); }
.p-niveaux a span{ font-size:12.5px; color:var(--gris); }
.p-niveaux a[aria-selected="true"]{ background:var(--creme); border-top:2px solid var(--or); }
.p-niveaux a:hover b{ color:var(--or-fonce); }
.p-corps{ display:grid; grid-template-columns:minmax(0,1fr) 250px; gap:clamp(30px,5vw,72px); padding-block:clamp(36px,5vw,60px); align-items:start; }
.p-sommaire{ position:sticky; top:calc(var(--h-total) + 24px + env(safe-area-inset-top,0px)); font-size:14px; order:2; }
.admin-bar .p-sommaire{ top:calc(var(--h-total) + 56px); }
.p-sommaire p{ font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; color:var(--or-fonce); margin:0 0 10px; }
.p-sommaire ol{ list-style:none; margin:0 0 24px; padding:0; border-left:1px solid var(--bord); }
.p-sommaire li a{ display:block; padding:5px 0 5px 14px; margin-left:-1px; border-left:1.5px solid transparent; color:var(--gris); text-decoration:none; line-height:1.4; }
.p-sommaire li a:hover{ color:var(--sapin); }
.p-sommaire li a.actif{ border-left-color:var(--or); color:var(--sapin); font-weight:600; }
.p-sommaire-actions{ display:flex; flex-direction:column; gap:12px; align-items:flex-start; }
.p-sommaire-actions .c-btn{ width:100%; justify-content:center; font-size:14.5px; padding:13px 16px; }
.p-sommaire-actions .c-lien{ font-size:14px; }
.p-sommaire [hidden]{ display:none!important; }
.js .p-sommaire:not(.niv-a) .p-sommaire-niv[data-niv="a"], .js .p-sommaire.niv-a .p-sommaire-niv[data-niv="d"]{ display:none; }
html:not(.js) .p-sommaire-actions .p-vers{ display:none; }
.p-texte{ max-width:720px; min-width:0; }
html:not(.js) .p-niveau + .p-niveau{ margin-top:3em; padding-top:2em; border-top:1px solid var(--sapin); }
.p-niveau-titre{ font-size:1rem!important; font-family:var(--sans)!important; font-weight:600!important; letter-spacing:.06em; text-transform:uppercase; color:var(--or-fonce)!important; margin:0 0 1.6em!important; }
.p-niveau-titre small{ font-size:1em; font-weight:400; text-transform:none; letter-spacing:0; color:var(--gris); }
.js .p-texte:not(.niv-a) .p-niveau[data-niv="a"], .js .p-texte.niv-a .p-niveau[data-niv="d"]{ display:none; }
.js .p-niveau-titre{ position:absolute!important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; margin:0!important; }
.p-texte h2{ font-size:clamp(1.45rem,2.4vw,1.9rem); margin-top:1.8em; }
.p-niveau-titre + h2, .p-texte > section > h2:first-of-type{ margin-top:0; }
.p-texte h3{ font-size:1.22rem; margin-top:1.6em; }
.p-texte p, .p-texte li{ text-align:justify; -webkit-hyphens:none; hyphens:none; }
.p-texte ul, .p-texte ol{ padding-left:1.2em; margin:0 0 1.1em; }
.p-texte li{ margin-bottom:.45em; }
.p-texte li::marker{ color:var(--or-fonce); }
.p-texte li ul, .p-texte li ol{ margin:.45em 0 0; }
.p-texte h2 + p > strong:only-child{ font-family:var(--serif); font-weight:400; font-size:1.35rem; line-height:1.4; color:var(--sapin); }
.f-ref{ font-size:.72em; color:var(--gris); white-space:nowrap; vertical-align:.25em; line-height:1; }
.f-table{ overflow-x:auto; margin:1.2em 0 1.6em; -webkit-overflow-scrolling:touch; }
.p-texte table{ border-collapse:collapse; width:100%; font-size:15px; line-height:1.5; min-width:520px; }
.p-texte th, .p-texte td{ text-align:left!important; padding:10px 12px; border-bottom:1px solid var(--bord); vertical-align:top; hyphens:none; }
.p-texte thead th{ border-bottom:1.5px solid var(--sapin); font-weight:600; color:var(--sapin); }
.p-texte td:first-child{ color:var(--sapin); }
.f-encadre{ background:var(--blanc); border:1px solid var(--bord); border-left:3px solid var(--or); padding:20px 24px 6px; margin:1.6em 0; }
.f-encadre-titre{ font-family:var(--serif); font-size:1.15rem; color:var(--sapin); margin-bottom:.5em!important; text-align:left!important; }
.f-encadre-note{ font-size:14.5px; color:var(--gris); }
.f-encadre .f-table{ margin-top:.6em; }
.f-aplacer{ margin:1.6em 0; border:1px dashed var(--or); background:repeating-linear-gradient(135deg, transparent 0 12px, rgba(201,168,76,.06) 12px 24px); padding:22px 24px; display:flex; flex-direction:column; gap:6px; font-size:14.5px; color:var(--gris); }
.f-aplacer-type{ font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--or-fonce); font-weight:600; }
.f-aplacer-type::after{ content:" · visible en relecture seulement"; text-transform:none; letter-spacing:0; font-weight:400; color:var(--gris); }
.f-cta{ background:var(--sapin); color:var(--sapin-pale); padding:28px 30px; margin:2em 0; }
.f-cta p{ text-align:left!important; margin:0 0 .6em; }
.f-cta .f-cta-titre{ font-family:var(--serif); font-size:1.5rem; line-height:1.3; color:var(--creme); margin-bottom:8px; }
.f-cta .f-cta-action{ margin:18px 0 0; display:flex; flex-wrap:wrap; gap:12px 18px; align-items:center; }

.f-cta-mail{ font-size:14.5px; } .f-cta-mail a{ color:var(--creme); }
.f-cta a.f-renvoi{ color:var(--creme); }
.f-mention{ font-size:13.5px; color:var(--gris); }
.f-sources{ margin-top:2em; padding-top:16px; border-top:1px solid var(--bord); font-size:12.5px; color:var(--gris); line-height:1.55; }
.f-sources-titre{ font-weight:600; color:var(--sapin); margin-bottom:6px!important; text-align:left!important; }
.p-texte .f-sources-liste{ list-style:none; padding-left:0; }
.p-texte .f-sources-liste li{ text-align:left; overflow-wrap:anywhere; margin-bottom:.3em; padding-left:2.4em; text-indent:-2.4em; }
.f-src-num{ display:inline-block; min-width:2.4em; text-indent:0; color:var(--sapin); }
.f-sources a{ color:var(--gris); }
.f-renvoi{ font-weight:500; }
span.f-renvoi{ font-weight:400; }
.p-liees{ background:var(--blanc); border-top:1px solid var(--bord); padding-block:clamp(44px,6vw,76px); }
.p-liees h2{ font-size:clamp(1.5rem,2.6vw,2.1rem); }

/* Panneau de recherche (en-tête, toutes les pages) */
.r-voile{ position:fixed; inset:0; z-index:80; background:rgba(21,42,36,.55); display:flex; justify-content:center; align-items:flex-start; padding:calc(70px + env(safe-area-inset-top,0px)) max(16px, env(safe-area-inset-right,0px)) 20px max(16px, env(safe-area-inset-left,0px)); }
.r-voile[hidden]{ display:none!important; }
.r-boite{ width:min(680px,100%); background:var(--creme); border:1px solid var(--bord); box-shadow:0 30px 80px -30px rgba(0,0,0,.5); max-height:calc(100vh - 110px); max-height:calc(100dvh - 110px); display:flex; flex-direction:column; }
.r-champ{ display:flex; align-items:center; gap:12px; padding:0 18px; border-bottom:1px solid var(--bord); color:var(--sapin); }
.r-champ input{ flex:1; height:60px; border:0; background:none; font:inherit; font-size:17px; color:var(--encre); min-width:0; -webkit-appearance:none; appearance:none; }
.r-champ input:focus{ outline:none; }
.r-champ button{ border:1px solid var(--bord); background:var(--blanc); font-size:12px; padding:2px 8px; cursor:pointer; color:var(--gris); font-family:var(--sans); }
.r-liste{ overflow-y:auto; padding:8px 0; overscroll-behavior:contain; }
.r-liste a{ display:block; padding:10px 18px; text-decoration:none; color:inherit; border-left:2px solid transparent; }
.r-liste a.sel, .r-liste a:hover{ background:var(--blanc); border-left-color:var(--or); }
.r-liste a b{ font-family:var(--serif); font-weight:400; font-size:1.08rem; color:var(--sapin); display:block; }
.r-liste a span{ font-size:13px; line-height:1.5; color:var(--gris); display:block; }
.r-pied{ border-top:1px solid var(--bord); padding:10px 18px; font-size:13.5px; display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; color:var(--gris); }
.r-groupe{ font-size:12px; letter-spacing:.06em; text-transform:uppercase; color:var(--or-fonce); padding:10px 18px 4px; margin:0; }
.r-vide{ padding:10px 18px; margin:0; font-size:14.5px; color:var(--gris); }

@media (max-width:980px){
  .p-corps{ grid-template-columns:minmax(0,1fr); }
  .p-sommaire{ position:static; order:0; border:1px solid var(--bord); background:var(--blanc); padding:14px 16px 6px; }
  .p-sommaire ol{ margin-bottom:12px; }
  .p-sommaire-actions .c-btn{ display:none; }
  .p-sommaire-actions{ margin-bottom:8px; }
}
@media (max-width:781px){
  .f-bandeau-grille, .a-comprendre-tete{ grid-template-columns:1fr; }
  .f-bandeau-grille{ gap:24px; }
  .f-chiffres dd{ font-size:1.8rem; }
  .f-recherche input[type=search]{ height:54px; font-size:16px; padding-left:50px; }
  .f-recherche > svg{ left:16px; }
  .f-outils{ position:static; }
  .f-outils-in{ gap:10px 14px; }
  .f-puce-titre{ display:none; }
  .f-ligne > a{ grid-template-columns:1fr; }
  .f-l-meta{ grid-row:auto; grid-column:1; justify-content:flex-start; margin-top:4px; }
  .f-acc summary{ grid-template-columns:1fr 28px; }
  .f-acc-compte{ grid-row:auto; grid-column:1; text-align:left; } .f-acc-compte b{ display:inline; font-size:1.1rem; margin-right:4px; }
  .f-acc-signe{ grid-row:1/4; grid-column:2; }
  .p-niv-barre{ position:sticky; top:calc(var(--h-total) + env(safe-area-inset-top,0px)); z-index:15; transition:top .45s var(--ease); }
  .h.est-cache ~ main .p-niv-barre{ top:env(safe-area-inset-top,0px); }
  .admin-bar .p-niv-barre{ top:calc(var(--h-total) + 46px); }
  .p-niveaux a{ flex:1; padding:12px 14px 10px; }
  .p-texte p, .p-texte li{ text-align:left; }
  .p-texte table{ min-width:0; }
  .p-texte table:has(tr > :nth-child(3)){ min-width:520px; }
  .f-cta{ padding:24px 22px; }
  .t-image{ order:-1; }
  .t-bandeau .f-bandeau-grille{ align-items:start; }
  .r-voile{ padding-top:calc(12px + env(safe-area-inset-top,0px)); }
  .r-boite{ max-height:calc(100dvh - 24px); }
}
