/* =====================================================================
   DCIP — /direction · L'ORGANIGRAMME ANIMÉ ET SON TIROIR
   ---------------------------------------------------------------------
   L'organigramme est celui de dgfsn.net (section #organigramme, moteur
   fsn-organigramme.js), recopié à l'identique : colonne centrale de
   cartes pleines, cellules rattachées en cartes blanches à icône, rangée
   du bas avec son menu « N bureaux », liens SVG qui s'écrivent puis
   qu'un point de lumière parcourt, halo, survol, adaptation mobile.
   Seul le vert du Fonds devient le bleu DCIP.
   Chaque case ouvre un tiroir (dp-tiroir-*) : c'est là que vivent les
   longs textes. Le tout est monté par public/js/direction-organigramme.js.
   ===================================================================== */

/* ── Jetons de la section (FSN → DCIP) ─────────────────────────────── */
.dp-og-sec{
  --og-acc:#1E4FB8;                 /* FSN --acc #15803d */
  --og-vif:#2F6FED;                 /* halo, point lumineux */
  --og-card:#FFFFFF;
  --og-bord:rgba(10,37,87,.14);     /* FSN --bord rgba(11,32,20,.13) */
  --og-txt:#0A1A33;
  --og-txt2:#4A4F6A;
  --og-txt3:#646989;
  --og-voile:#F1F5FC;               /* fond des bureaux (opaque : le lien passe dessous) */
  --og-ombre:rgba(10,26,51,.6);
  --og-majeur:linear-gradient(135deg,#1E4FB8,#143A8C);
  --og-tutelle:linear-gradient(135deg,#1B4594,#0B2A63);
  --og-clair:#BFD3FF;               /* FSN #bbf7d0 : détail des icônes sur fond plein */
  --ic-fond:rgba(30,79,184,.12);
  position:relative;
  background:
    radial-gradient(56% 46% at 50% 58%,rgba(30,79,184,.055),transparent 72%),
    var(--papier);
}
:root[data-theme="dark"] .dp-og-sec{
  --og-acc:#6FA2FF;
  --og-vif:#6FA2FF;
  --og-card:#111A2D;
  --og-bord:rgba(255,255,255,.12);
  --og-txt:#F2F4F9;
  --og-txt2:#B9C2D6;
  --og-txt3:#8A93AD;
  --og-voile:#16203A;
  --og-ombre:rgba(0,0,0,.85);
  --og-majeur:linear-gradient(135deg,#2C63D8,#1A46A6);
  --og-tutelle:linear-gradient(135deg,#1C3F86,#112B5E);
  --ic-fond:rgba(255,255,255,.14);
  background:
    radial-gradient(56% 46% at 50% 58%,rgba(47,111,237,.10),transparent 72%),
    var(--papier);
}

/* ── En-tête de section, comme sur dgfsn.net ───────────────────────── */
.dp-og-tete{text-align:center;max-width:780px;margin:0 auto 34px}
.dp-og-sur{display:inline-flex;align-items:center;gap:8px;margin-bottom:8px;
  font:700 10.5px/1.4 "Montserrat",sans-serif;letter-spacing:1.68px;text-transform:uppercase;
  color:color-mix(in srgb,var(--og-txt) 60%,transparent)}
.dp-og-sur svg{color:var(--og-acc)}
.dp-og-sur .ic-duo>*{stroke:currentColor}
.dp-og-h2{margin:0;font-family:"Quicksand",sans-serif;font-size:clamp(28px,4vw,48px);font-weight:700;
  line-height:1.08;letter-spacing:-1.44px;color:var(--og-txt);text-wrap:balance}
.dp-og-h2 em{font-style:italic;color:var(--og-acc)}
.dp-og-trait{display:block;width:78px;height:4px;border-radius:99px;margin:16px auto 0;
  background:linear-gradient(90deg,transparent,var(--og-acc),transparent)}
.dp-og-tete.dp-og-vu .dp-og-trait{animation:dpOgTiret .7s cubic-bezier(.22,1,.36,1) .18s backwards}
@keyframes dpOgTiret{from{transform:scaleX(0);opacity:0}}
.dp-og-p{margin:16px auto 0;max-width:620px;font-size:13.5px;line-height:1.6;color:var(--og-txt2)}
.dp-og-p strong{color:var(--og-txt);font-weight:700}
.dp-og-invite{display:inline-flex;align-items:center;gap:8px;margin:16px 0 0;padding:7px 14px 7px 10px;
  border-radius:99px;border:1px dashed color-mix(in srgb,var(--og-acc) 38%,transparent);
  font:700 11px/1.2 "Montserrat",sans-serif;letter-spacing:.3px;color:var(--og-acc);
  background:color-mix(in srgb,var(--og-acc) 6%,transparent)}
.dp-og-invite svg{flex:none}
.dp-og-invite .ic-duo>*{stroke:currentColor}
.dp-og-invite .ic-duo>:first-child:not(:only-child){fill:color-mix(in srgb,var(--og-acc) 16%,transparent)}
.dp-og-invite .dp-og-souris{display:none}
@media (hover:hover) and (pointer:fine){
  .dp-og-invite .dp-og-souris{display:inline}
  .dp-og-invite .dp-og-tactile{display:none}
}
.dp-og-invite i{width:6px;height:6px;border-radius:50%;background:var(--og-vif);flex:none;
  box-shadow:0 0 0 0 color-mix(in srgb,var(--og-vif) 50%,transparent);animation:dpOgBat 2.4s ease-out infinite}
@keyframes dpOgBat{to{box-shadow:0 0 0 9px transparent}}

/* ═══════ ORGANIGRAMME ANIMÉ (géométrie FSN) ═══════ */
.dp-og-hote{margin-top:6px}
.dp-og{position:relative;display:grid;grid-template-columns:minmax(0,1fr) minmax(280px,1.1fr) minmax(0,1fr);
  gap:26px 34px;align-items:start}
.dp-og-liens{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:visible;z-index:0}
.dp-og-liens path{fill:none;stroke:var(--og-bord);stroke-width:1.6;opacity:.9;
  transition:stroke .25s ease,stroke-width .25s ease}
.dp-og.dp-og-vu .dp-og-liens path{animation:dpOgTrait 1.1s ease forwards}
@keyframes dpOgTrait{to{stroke-dashoffset:0}}
.dp-og-liens path.dp-og-on{stroke:var(--og-acc);stroke-width:2.6}
/* Un point de lumière parcourt chaque lien, du haut vers le bas : l'organisation « respire ». */
.dp-og-liens .dp-og-flux{stroke:var(--og-vif);stroke-width:2.4;stroke-linecap:round;opacity:0;
  stroke-dasharray:8 9999;filter:drop-shadow(0 0 3px color-mix(in srgb,var(--og-vif) 70%,transparent))}
.dp-og.dp-og-vu .dp-og-liens .dp-og-flux{opacity:.85;animation:dpOgFlux 3.2s linear infinite}
@keyframes dpOgFlux{from{stroke-dashoffset:8px}to{stroke-dashoffset:calc(var(--l,300px) * -1)}}
.dp-og.dp-og-pause .dp-og-flux,.dp-og.dp-og-pause .dp-og-c.majeur::after{animation-play-state:paused}

.dp-og-tete-col{grid-column:2;display:grid;gap:26px;justify-items:center;z-index:1}
.dp-og-aile{display:grid;gap:10px;align-content:end;align-self:end;z-index:1}
.dp-og-aile.gauche{grid-column:1;grid-row:1;justify-items:end}
.dp-og-aile.droite{grid-column:3;grid-row:1;justify-items:start}
/* La rangée du bas descend assez bas pour que les liens y tombent en belles courbes (≈ 110 px, comme FSN). */
.dp-og-dirs{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:62px;z-index:1}

/* Les cases sont des boutons : on efface le style natif. */
.dp-og-c{display:flex;align-items:center;gap:10px;width:100%;max-width:330px;padding:11px 14px;border-radius:14px;
  background:var(--og-card);border:1px solid var(--og-bord);box-shadow:0 14px 28px -24px var(--og-ombre);
  font:inherit;color:inherit;text-align:left;cursor:pointer;-webkit-appearance:none;appearance:none;
  -webkit-tap-highlight-color:transparent;
  transition:transform .22s ease,border-color .22s ease,box-shadow .22s ease}
.dp-og:not(.dp-og-vu) .dp-og-c{opacity:0;transform:translateY(12px)}
.dp-og.dp-og-vu .dp-og-c{animation:dpOgEntree .5s cubic-bezier(.22,1,.36,1) backwards;animation-delay:calc(var(--i,0)*45ms)}
@keyframes dpOgEntree{from{opacity:0;transform:translateY(12px)}}
.dp-og-c:hover,.dp-og-c:focus-visible{transform:translateY(-3px);border-color:var(--og-acc);outline:none;
  box-shadow:0 20px 34px -22px color-mix(in srgb,var(--og-acc) 75%,transparent)}
.dp-og-c:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--og-vif) 45%,transparent),0 20px 34px -22px color-mix(in srgb,var(--og-acc) 75%,transparent)}
.dp-og-tx{display:block;min-width:0}
.dp-og-c b{display:block;font-family:"Montserrat",sans-serif;font-size:12.5px;font-weight:700;line-height:1.3;color:var(--og-txt)}
.dp-og-c .k{display:block;margin-bottom:4px;font:800 9.5px/1.2 "Montserrat",sans-serif;letter-spacing:.14em;
  text-transform:uppercase;color:var(--og-acc)}
/* Icônes DEUX COULEURS, sans fond. */
.dp-og-ic{flex-shrink:0;display:grid;place-items:center;width:22px;height:22px;background:none;color:var(--og-txt)}
.dp-og-c .ic-duo>*{stroke:currentColor}
.dp-og-c .ic-duo .v{stroke:var(--og-acc)}
.dp-og-c:hover .dp-og-ic,.dp-og-c:focus-visible .dp-og-ic{color:var(--og-acc)}

/* Cartes pleines de la colonne centrale. */
.dp-og-c.majeur{position:relative;max-width:360px;padding:14px 18px;background:var(--og-majeur);border-color:transparent;
  box-shadow:0 20px 36px -22px rgba(30,79,184,.95);--ic-fond:rgba(255,255,255,.16)}
.dp-og-c.majeur.tutelle{background:var(--og-tutelle);box-shadow:0 20px 36px -22px rgba(10,37,87,.95)}
.dp-og-c.majeur b{color:#fff;font-size:14.5px;letter-spacing:.02em}
.dp-og-c.majeur small{display:block;margin-top:3px;font:500 11px/1.4 "Montserrat",sans-serif;color:rgba(255,255,255,.8)}
.dp-og-c.majeur .dp-og-ic{color:#fff}
.dp-og-c.majeur .ic-duo .v{stroke:var(--og-clair)}
.dp-og-c.majeur:hover,.dp-og-c.majeur:focus-visible{border-color:transparent;
  box-shadow:0 26px 40px -22px rgba(30,79,184,1),0 0 0 1px rgba(255,255,255,.18) inset}
.dp-og-c.dg b{font-size:16px}
.dp-og-c.dg small{font-size:11.5px}
/* Halo discret sur les organes de direction. */
.dp-og-c.majeur::after{content:'';position:absolute;inset:-4px;border-radius:18px;pointer-events:none;
  box-shadow:0 0 0 0 rgba(47,111,237,.45);animation:dpOgHalo 3.6s ease-in-out infinite}
.dp-og-c.dg::after{animation-delay:1.2s}
@keyframes dpOgHalo{0%,100%{box-shadow:0 0 0 0 rgba(47,111,237,.35)}50%{box-shadow:0 0 0 10px rgba(47,111,237,0)}}
.dp-og-c.chef{max-width:none;background:var(--og-card)}
.dp-og-aile .dp-og-c{max-width:290px}

/* Rangée du bas : divisions et leur menu « N bureaux ». */
.dp-og-dir{display:flex;flex-direction:column;gap:8px}
.dp-og-plus{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:8px 13px;border-radius:99px;
  border:1px dashed var(--og-bord);background:none;color:var(--og-txt3);font:700 10.5px "Montserrat",sans-serif;
  letter-spacing:.6px;text-transform:uppercase;cursor:pointer;transition:all .2s;-webkit-tap-highlight-color:transparent}
.dp-og-plus:hover,.dp-og-plus:focus-visible{border-color:var(--og-acc);color:var(--og-acc);outline:none}
.dp-og-plus svg{transition:transform .25s ease}
.dp-og-dir.dp-og-ouvert .dp-og-plus svg{transform:rotate(180deg)}
.dp-og-bureaux{list-style:none;margin:0;padding:0;display:grid;gap:6px;max-height:0;overflow:hidden;opacity:0;visibility:hidden;
  transition:max-height .35s ease,opacity .3s ease,visibility 0s linear .35s}
.dp-og-dir.dp-og-ouvert .dp-og-bureaux{max-height:320px;opacity:1;visibility:visible;
  transition:max-height .35s ease,opacity .3s ease,visibility 0s}
.dp-og-bureau{display:flex;align-items:flex-start;gap:9px;width:100%;padding:8px 12px;border-radius:11px;
  border:1px solid transparent;background:var(--og-voile);font:500 11.5px/1.45 "Montserrat",sans-serif;color:var(--og-txt2);
  text-align:left;cursor:pointer;-webkit-appearance:none;appearance:none;-webkit-tap-highlight-color:transparent;
  transition:border-color .2s,color .2s,background .2s}
.dp-og-bureau i{flex-shrink:0;width:5px;height:5px;border-radius:50%;background:var(--og-acc);margin-top:6px}
.dp-og-bureau span{flex:1;min-width:0}
.dp-og-bureau svg{flex:none;margin-top:2px;opacity:0;transform:translateX(-4px);transition:opacity .2s,transform .2s}
.dp-og-bureau:hover,.dp-og-bureau:focus-visible{border-color:color-mix(in srgb,var(--og-acc) 55%,transparent);color:var(--og-acc);outline:none;
  background:color-mix(in srgb,var(--og-acc) 7%,var(--og-card))}
.dp-og-bureau:hover svg,.dp-og-bureau:focus-visible svg{opacity:1;transform:none}

/* Tablette : on garde l'organigramme en trois colonnes, resserré. */
@media(max-width:1000px){
  .dp-og{grid-template-columns:minmax(0,1fr) minmax(250px,1.35fr) minmax(0,1fr);gap:24px 22px}
  .dp-og-c.majeur{padding:13px 15px}
}
/* Téléphone : tout s'empile, une colonne vertébrale relie les cases (tracée par le moteur). */
@media(max-width:759px){
  .dp-og{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
  .dp-og-tete-col{grid-column:1/-1;gap:16px;justify-items:center}
  .dp-og-tete-col .dp-og-c{width:min(440px,100%);max-width:none}
  .dp-og-aile.gauche,.dp-og-aile.droite{grid-row:auto;justify-items:stretch;align-self:stretch}
  .dp-og-aile.gauche{grid-column:1}
  .dp-og-aile.droite{grid-column:2}
  .dp-og-aile .dp-og-c{max-width:none;height:100%}
  .dp-og-dirs{grid-column:1/-1;grid-template-columns:1fr;gap:16px;margin-top:0}
  .dp-og-plus{background:var(--og-card)}
  .dp-og-liens path{stroke-width:2}
  .dp-og-c{max-width:none}
}
@media(max-width:479px){
  .dp-og{grid-template-columns:1fr}
  .dp-og-aile.gauche,.dp-og-aile.droite{grid-column:1}
  .dp-og-tete-col .dp-og-c{width:100%}
}

/* ═══════ TIROIR DES FICHES ═══════ */
.dp-tiroir-racine{
  --dp-t-fond:#FFFFFF;--dp-t-carte:#FFFFFF;--dp-t-voile:#F2F5FB;--dp-t-pied:#F7F9FD;
  --dp-t-txt:#0A1A33;--dp-t-txt2:#4A4F6A;--dp-t-txt3:#7A809B;--dp-t-ligne:#E3E8F2;
  --dp-t-acc:#1E4FB8;--dp-t-acc-doux:#E7EEFC;--dp-t-ombre:rgba(10,26,51,.35);
  --dp-t-ease:cubic-bezier(.22,1,.36,1);
  position:fixed;inset:0;z-index:970;
}
:root[data-theme="dark"] .dp-tiroir-racine{
  --dp-t-fond:#0E1424;--dp-t-carte:#141C30;--dp-t-voile:#18213A;--dp-t-pied:#0B101D;
  --dp-t-txt:#F2F4F9;--dp-t-txt2:#B9C2D6;--dp-t-txt3:#8A93AD;--dp-t-ligne:rgba(255,255,255,.1);
  --dp-t-acc:#7EA6FF;--dp-t-acc-doux:rgba(126,166,255,.13);--dp-t-ombre:rgba(0,0,0,.7);
}
.dp-tiroir-racine[hidden]{display:none}
html.dp-tiroir-actif{overflow:hidden}
html.dp-tiroir-actif body{padding-right:var(--dp-sb,0px)}

.dp-tiroir-voile{position:absolute;inset:0;background:rgba(6,16,42,.46);
  -webkit-backdrop-filter:blur(8px) saturate(1.15);backdrop-filter:blur(8px) saturate(1.15);
  opacity:0;transition:opacity .45s ease;cursor:pointer}
:root[data-theme="dark"] .dp-tiroir-voile{background:rgba(2,6,18,.62)}
.dp-tiroir-racine.dp-tiroir-ouvert .dp-tiroir-voile{opacity:1}

.dp-tiroir{position:absolute;top:0;right:0;bottom:0;width:min(608px,100vw);display:flex;flex-direction:column;
  background:var(--dp-t-fond);color:var(--dp-t-txt);border-radius:28px 0 0 28px;overflow:hidden;overflow:clip;outline:none;
  box-shadow:-40px 0 90px -30px rgba(6,16,42,.6),-1px 0 0 rgba(255,255,255,.06);
  transform:translate3d(104%,0,0);transition:transform .62s var(--dp-t-ease);will-change:transform}
.dp-tiroir-racine.dp-tiroir-ouvert .dp-tiroir{transform:none}
.dp-tiroir-racine.dp-tiroir-sortie .dp-tiroir{transition-duration:.42s;transition-timing-function:cubic-bezier(.55,0,.75,.2)}

/* --- En-tête : le dégradé DCIP --- */
.dp-tiroir-tete{position:relative;flex:none;overflow:hidden;overflow:clip;isolation:isolate;color:#fff;
  padding:18px 26px 26px 28px;
  background:
    radial-gradient(90% 120% at 100% 0%,rgba(94,160,255,.42),transparent 58%),
    radial-gradient(60% 90% at 0% 100%,rgba(239,176,52,.16),transparent 62%),
    linear-gradient(140deg,#2A5FD6 0%,#1E4FB8 26%,#143A8C 62%,#0A2557 100%)}
:root[data-theme="dark"] .dp-tiroir-tete{
  background:
    radial-gradient(90% 120% at 100% 0%,rgba(94,160,255,.30),transparent 58%),
    radial-gradient(60% 90% at 0% 100%,rgba(239,176,52,.12),transparent 62%),
    linear-gradient(140deg,#2255C4 0%,#1A469F 30%,#102F70 64%,#071D46 100%)}
.dp-tiroir-tete::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:radial-gradient(rgba(255,255,255,.17) 1px,transparent 1.3px);background-size:16px 16px;
  -webkit-mask-image:linear-gradient(205deg,#000 10%,transparent 62%);mask-image:linear-gradient(205deg,#000 10%,transparent 62%)}
.dp-tiroir-tete::after{content:"";position:absolute;top:-40%;bottom:-40%;left:0;width:34%;z-index:-1;pointer-events:none;
  background:linear-gradient(100deg,transparent,rgba(255,255,255,.2),transparent);
  transform:translateX(-140%) skewX(-18deg);opacity:0}
.dp-tiroir-racine.dp-tiroir-ouvert .dp-tiroir-tete::after{animation:dpTiroirReflet 1.5s .32s cubic-bezier(.4,0,.2,1) both}
@keyframes dpTiroirReflet{0%{opacity:0;transform:translateX(-140%) skewX(-18deg)}15%{opacity:1}100%{opacity:0;transform:translateX(420%) skewX(-18deg)}}
.dp-tiroir-filigrane{position:absolute;right:-14px;bottom:-40px;z-index:-1;pointer-events:none;white-space:nowrap;
  font:700 150px/1 "Quicksand",sans-serif;letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px rgba(255,255,255,.12)}
.dp-tiroir-poignee{display:none}

.dp-tiroir-barre{display:flex;align-items:center;gap:10px;min-height:42px}
.dp-tiroir-retour{display:inline-flex;align-items:center;gap:6px;height:38px;max-width:62%;padding:0 15px 0 10px;border-radius:99px;
  border:1px solid rgba(255,255,255,.28);background:rgba(255,255,255,.1);color:#fff;cursor:pointer;
  font:700 12.5px "Montserrat",sans-serif;transition:background .2s,transform .2s}
.dp-tiroir-retour[hidden]{display:none}
.dp-tiroir-retour span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dp-tiroir-retour svg{flex:none;transition:transform .2s}
.dp-tiroir-retour:hover{background:rgba(255,255,255,.22)}
.dp-tiroir-retour:hover svg{transform:translateX(-3px)}
.dp-tiroir-x{margin-left:auto;flex:none;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;cursor:pointer;
  border:1px solid rgba(255,255,255,.3);background:rgba(255,255,255,.12);color:#fff;
  transition:background .2s,transform .3s cubic-bezier(.34,1.56,.64,1)}
.dp-tiroir-x:hover{background:rgba(255,255,255,.26);transform:rotate(90deg)}
.dp-tiroir-retour:focus-visible,.dp-tiroir-x:focus-visible,.dp-tiroir-fil button:focus-visible{outline:3px solid #FFD27A;outline-offset:2px}

/* Fil hiérarchique cliquable. */
.dp-tiroir-fil ol{list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;align-items:center;gap:6px 0}
.dp-tiroir-fil li{display:inline-flex;align-items:center;min-width:0;animation:dpTiroirMonte .5s var(--dp-t-ease) backwards;
  animation-delay:calc(var(--k,0)*55ms + var(--base,0ms))}
.dp-tiroir-fil li+li::before{content:"";width:6px;height:6px;margin:0 9px 0 7px;border-right:1.8px solid rgba(255,255,255,.55);
  border-top:1.8px solid rgba(255,255,255,.55);transform:rotate(45deg)}
.dp-tiroir-fil button{border:0;cursor:pointer;padding:6px 10px;border-radius:99px;background:rgba(255,255,255,.12);
  color:rgba(255,255,255,.9);font:700 11px/1 "Montserrat",sans-serif;letter-spacing:.06em;transition:background .2s,color .2s}
.dp-tiroir-fil button:hover{background:rgba(255,255,255,.26);color:#fff}
.dp-tiroir-fil [aria-current]{display:block;padding:6px 11px;border-radius:99px;background:#fff;color:#0A2557;
  font:800 11px/1.25 "Montserrat",sans-serif;letter-spacing:.04em;box-shadow:0 6px 16px -8px rgba(0,0,0,.5);
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}

/* Identité : grande icône, sigle, nom, mini-organigramme. */
.dp-tiroir-id{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:18px;align-items:center;margin-top:20px}
.dp-tiroir-em{width:78px;height:78px;border-radius:22px;display:grid;place-items:center;color:#fff;
  background:linear-gradient(150deg,rgba(255,255,255,.24),rgba(255,255,255,.06));border:1px solid rgba(255,255,255,.3);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 20px 34px -16px rgba(2,10,30,.6);
  -webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);--ic-fond:rgba(255,255,255,.18)}
.dp-tiroir-em svg{width:40px;height:40px}
.dp-tiroir-em .ic-duo>*{stroke:currentColor}
.dp-tiroir-em .ic-duo .v{stroke:#FFD27A}
.dp-tiroir-k{display:inline-flex;align-items:center;gap:8px;font:800 10.5px/1.2 "Montserrat",sans-serif;letter-spacing:.18em;
  text-transform:uppercase;color:#FFD27A}
.dp-tiroir-k::before{content:"";width:18px;height:2px;border-radius:2px;background:currentColor;flex:none}
.dp-tiroir-sigle{display:block;margin-top:8px;font:700 40px/1 "Quicksand",sans-serif;letter-spacing:-.03em;color:#fff}
.dp-tiroir-sigle:empty{display:none}
.dp-tiroir-titre{margin:7px 0 0;font:700 18.5px/1.28 "Quicksand",sans-serif;letter-spacing:-.01em;color:rgba(255,255,255,.9);
  outline:none;text-wrap:balance}
.dp-tiroir.dp-tiroir-sans-sigle .dp-tiroir-titre{margin-top:9px;font-size:25px;line-height:1.15;color:#fff}
.dp-tiroir-anime .dp-tiroir-em{animation:dpTiroirPop .7s cubic-bezier(.34,1.56,.64,1) backwards;animation-delay:var(--base,0ms)}
.dp-tiroir-anime .dp-tiroir-noms>*{animation:dpTiroirMonte .55s var(--dp-t-ease) backwards}
.dp-tiroir-anime .dp-tiroir-k{animation-delay:calc(var(--base,0ms) + 60ms)}
.dp-tiroir-anime .dp-tiroir-sigle{animation-delay:calc(var(--base,0ms) + 110ms)}
.dp-tiroir-anime .dp-tiroir-titre{animation-delay:calc(var(--base,0ms) + 160ms)}
.dp-tiroir-anime .dp-tiroir-filigrane{animation:dpTiroirFiligrane 1.1s var(--dp-t-ease) backwards;animation-delay:var(--base,0ms)}
@keyframes dpTiroirPop{from{opacity:0;transform:scale(.55) rotate(-10deg)}}
@keyframes dpTiroirMonte{from{opacity:0;transform:translate3d(var(--dx,0px),14px,0)}}
@keyframes dpTiroirFiligrane{from{opacity:0;transform:translate3d(60px,0,0)}}

/* Mini-organigramme : l'entité affichée s'y allume. */
.dp-tiroir-mm{width:178px;height:auto;flex:none;overflow:visible;display:block}
.dp-tiroir-mm .l{fill:none;stroke:rgba(255,255,255,.26);stroke-width:1.3;transition:stroke .35s,stroke-width .35s}
.dp-tiroir-mm .l.chemin{stroke:rgba(255,255,255,.95);stroke-width:1.8}
.dp-tiroir-mm g[data-mm]{cursor:pointer}
.dp-tiroir-mm g[data-mm] rect{fill:rgba(255,255,255,.13);stroke:rgba(255,255,255,.34);stroke-width:1;transition:fill .35s,stroke .35s}
.dp-tiroir-mm g[data-mm] text{fill:rgba(255,255,255,.78);font:800 6.4px "Montserrat",sans-serif;letter-spacing:.35px;
  text-anchor:middle;dominant-baseline:central;pointer-events:none;transition:fill .35s}
.dp-tiroir-mm g[data-mm] text.long{font-size:5.5px;letter-spacing:.3px;text-transform:uppercase}
.dp-tiroir-mm g[data-mm]:hover rect{fill:rgba(255,255,255,.3);stroke:#fff}
.dp-tiroir-mm g.chemin rect{fill:rgba(255,255,255,.28);stroke:rgba(255,255,255,.9)}
.dp-tiroir-mm g.ici rect{fill:#EFB034;stroke:#FFE3A3;filter:drop-shadow(0 0 5px rgba(239,176,52,.85))}
.dp-tiroir-mm g.ici text{fill:#0A2557}
.dp-tiroir-mm .curseur{transition:transform .6s var(--dp-t-ease)}
.dp-tiroir-mm .pouls{fill:none;stroke:#FFD27A;stroke-width:1.2;transform-box:fill-box;transform-origin:center;
  animation:dpTiroirPouls 2.2s ease-out infinite}
@keyframes dpTiroirPouls{0%{opacity:.9;transform:scale(.55)}100%{opacity:0;transform:scale(1.5)}}
.dp-tiroir-mm .trace{stroke-dasharray:var(--ml,60);stroke-dashoffset:var(--ml,60)}
.dp-tiroir-racine.dp-tiroir-ouvert .dp-tiroir-mm .trace{animation:dpTiroirTrace .9s .25s ease forwards}
@keyframes dpTiroirTrace{to{stroke-dashoffset:0}}

/* --- Corps --- */
.dp-tiroir-corps{position:relative;flex:1;overflow-y:auto;overscroll-behavior:contain;padding:28px 32px 38px;
  scrollbar-width:thin;scrollbar-color:var(--dp-t-ligne) transparent;-webkit-overflow-scrolling:touch}
.dp-tiroir-corps::-webkit-scrollbar{width:9px}
.dp-tiroir-corps::-webkit-scrollbar-thumb{background:var(--dp-t-ligne);border-radius:5px}
.dp-tiroir-bloc{animation:dpTiroirMonte .6s var(--dp-t-ease) backwards;animation-delay:calc(var(--k,0)*60ms + var(--base,0ms))}
.dp-tiroir-corps p{margin:0 0 16px;max-width:64ch;font-size:15px;line-height:1.75;color:var(--dp-t-txt2)}
.dp-tiroir-corps p.dp-tiroir-lead{font-size:17px;line-height:1.62;font-weight:500;color:var(--dp-t-txt);
  padding-left:16px;border-left:3px solid var(--dp-t-acc)}
.dp-tiroir-corps strong{color:var(--dp-t-txt);font-weight:700}
.dp-tiroir-cit{position:relative;margin:6px 0 22px;padding:24px 24px 20px 28px;border-radius:18px;color:#fff;
  background:linear-gradient(150deg,#15193A,#071D46 60%,#12326F);font:italic 500 16px/1.58 "Montserrat",sans-serif;
  box-shadow:0 20px 40px -26px rgba(7,29,70,.8)}
.dp-tiroir-cit::before{content:"\201C";position:absolute;left:12px;top:-22px;font:700 82px/1 "Quicksand",sans-serif;color:#EFB034}
.dp-tiroir-cit cite{display:block;margin-top:12px;font:700 12px/1.4 "Montserrat",sans-serif;font-style:normal;color:#F7D98A;letter-spacing:.04em}

.dp-tiroir-st{display:flex;align-items:center;gap:12px;margin:28px 0 14px;font:800 10.5px/1.2 "Montserrat",sans-serif;
  letter-spacing:.16em;text-transform:uppercase;color:var(--dp-t-txt3)}
.dp-tiroir-st::after{content:"";flex:1;height:1px;background:var(--dp-t-ligne)}
.dp-tiroir-st b{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:99px;
  background:var(--dp-t-acc-doux);color:var(--dp-t-acc);font-size:10.5px;letter-spacing:0}

.dp-tiroir-cartes{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:10px}
.dp-tiroir-carte{position:relative;display:flex;align-items:center;gap:14px;width:100%;padding:14px 14px 14px 16px;border-radius:16px;
  border:1px solid var(--dp-t-ligne);background:var(--dp-t-carte);color:inherit;font:inherit;text-align:left;cursor:pointer;
  -webkit-appearance:none;appearance:none;box-shadow:0 1px 2px rgba(10,26,51,.04),0 14px 28px -22px var(--dp-t-ombre);
  transition:transform .25s var(--dp-t-ease),border-color .25s,box-shadow .25s}
.dp-tiroir-carte:hover,.dp-tiroir-carte:focus-visible{transform:translateY(-2px);border-color:var(--dp-t-acc);outline:none;
  box-shadow:0 22px 36px -22px color-mix(in srgb,var(--dp-t-acc) 70%,transparent)}
.dp-tiroir-carte:focus-visible{box-shadow:0 0 0 3px color-mix(in srgb,var(--dp-t-acc) 40%,transparent)}
.dp-tiroir-carte-ic{width:44px;height:44px;flex:none;border-radius:13px;display:grid;place-items:center;
  background:var(--dp-t-acc-doux);color:var(--dp-t-acc);--ic-fond:color-mix(in srgb,var(--dp-t-acc) 16%,transparent)}
.dp-tiroir-carte-ic .ic-duo>*{stroke:currentColor}
.dp-tiroir-carte-ic .ic-duo .v{stroke:var(--dp-t-txt)}
.dp-tiroir-carte-tx{flex:1;min-width:0}
.dp-tiroir-carte-k{display:block;margin-bottom:5px;font:800 9.5px/1.2 "Montserrat",sans-serif;letter-spacing:.14em;
  text-transform:uppercase;color:var(--dp-t-acc)}
.dp-tiroir-carte-n{display:block;font:700 14.5px/1.3 "Quicksand",sans-serif;color:var(--dp-t-txt)}
.dp-tiroir-carte-x{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;margin-top:5px;
  font-size:12.5px;line-height:1.5;color:var(--dp-t-txt3)}
.dp-tiroir-carte-fl{flex:none;align-self:center;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;
  background:var(--dp-t-voile);color:var(--dp-t-acc);transition:transform .25s var(--dp-t-ease),background .25s,color .25s}
.dp-tiroir-carte:hover .dp-tiroir-carte-fl,.dp-tiroir-carte:focus-visible .dp-tiroir-carte-fl{transform:translateX(3px);background:var(--dp-t-acc);color:#fff}
.dp-tiroir-carte.large{grid-column:1/-1}

.dp-tiroir-missions{list-style:none;margin:0;padding:0;display:grid;gap:10px;counter-reset:m}
.dp-tiroir-missions li{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start;
  padding:14px 52px 14px 14px;border-radius:16px;background:var(--dp-t-voile);counter-increment:m}
.dp-tiroir-missions li::after{content:"0" counter(m);position:absolute;right:14px;top:12px;font:700 24px/1 "Quicksand",sans-serif;
  color:color-mix(in srgb,var(--dp-t-acc) 22%,transparent)}
.dp-tiroir-missions .mi{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:rgba(239,176,52,.16);color:#B8781A}
:root[data-theme="dark"] .dp-tiroir-missions .mi{color:#F7D98A}
.dp-tiroir-missions b{display:block;font:700 14.5px/1.3 "Quicksand",sans-serif;color:var(--dp-t-txt)}
.dp-tiroir-missions div>span{display:block;margin-top:4px;font-size:13px;line-height:1.55;color:var(--dp-t-txt2)}

.dp-tiroir-extraits{display:grid;gap:10px}
.dp-tiroir-extrait{display:block;width:100%;padding:14px 16px 13px 18px;border-radius:14px;border:1px solid var(--dp-t-ligne);
  border-left:3px solid var(--dp-t-acc);background:var(--dp-t-carte);color:inherit;font:inherit;text-align:left;cursor:pointer;
  -webkit-appearance:none;appearance:none;transition:border-color .2s,transform .25s var(--dp-t-ease),box-shadow .25s}
.dp-tiroir-extrait:hover,.dp-tiroir-extrait:focus-visible{transform:translateX(3px);outline:none;border-color:var(--dp-t-acc);
  box-shadow:0 16px 30px -24px color-mix(in srgb,var(--dp-t-acc) 70%,transparent)}
.dp-tiroir-extrait q{display:block;font:italic 500 13.5px/1.62 "Montserrat",sans-serif;color:var(--dp-t-txt2);quotes:"« " " »"}
.dp-tiroir-extrait span{display:flex;align-items:center;gap:7px;margin-top:9px;font:800 10px/1.2 "Montserrat",sans-serif;
  letter-spacing:.12em;text-transform:uppercase;color:var(--dp-t-acc)}

.dp-tiroir-chips{display:flex;flex-wrap:wrap;gap:8px}
.dp-tiroir-chip{display:inline-flex;align-items:center;gap:8px;padding:7px 14px 7px 8px;border-radius:99px;cursor:pointer;
  border:1px solid var(--dp-t-ligne);background:var(--dp-t-carte);color:var(--dp-t-txt);font:700 12.5px "Montserrat",sans-serif;
  transition:border-color .2s,color .2s}
.dp-tiroir-chip .ic{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--dp-t-acc-doux);color:var(--dp-t-acc)}
.dp-tiroir-chip .ic-duo>*{stroke:currentColor}
.dp-tiroir-chip:hover,.dp-tiroir-chip:focus-visible{border-color:var(--dp-t-acc);color:var(--dp-t-acc);outline:none}

.dp-tiroir-cta{display:inline-flex;align-items:center;gap:10px;margin-top:4px;padding:13px 20px;border-radius:99px;
  background:linear-gradient(135deg,#2F6FED,#1E4FB8);color:#fff;font:700 13.5px "Montserrat",sans-serif;text-decoration:none;
  box-shadow:0 14px 28px -14px rgba(30,79,184,.75);transition:transform .2s,box-shadow .2s}
.dp-tiroir-cta:hover{transform:translateY(-2px);box-shadow:0 18px 32px -14px rgba(30,79,184,.85)}
.dp-tiroir-cta:focus-visible{outline:3px solid color-mix(in srgb,var(--dp-t-acc) 50%,transparent);outline-offset:3px}

.dp-tiroir-note{display:flex;gap:9px;align-items:flex-start;margin-top:30px;padding-top:15px;border-top:1px solid var(--dp-t-ligne);
  font-size:11.5px;line-height:1.55;color:var(--dp-t-txt3)}
.dp-tiroir-note svg{flex:none;margin-top:1px;color:var(--dp-t-acc)}
.dp-tiroir-note .ic-duo>*{stroke:currentColor}

/* --- Pied : d'une fiche à l'autre --- */
.dp-tiroir-pied{flex:none;display:flex;align-items:center;gap:10px;padding:12px 18px calc(12px + env(safe-area-inset-bottom,0px));
  border-top:1px solid var(--dp-t-ligne);background:var(--dp-t-pied)}
.dp-tiroir-nav{display:inline-flex;align-items:center;gap:8px;min-height:42px;max-width:40%;padding:8px 14px;border-radius:99px;cursor:pointer;
  border:1px solid var(--dp-t-ligne);background:var(--dp-t-carte);color:var(--dp-t-txt);font:700 12.5px "Montserrat",sans-serif;
  transition:border-color .2s,color .2s,opacity .2s}
.dp-tiroir-nav span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dp-tiroir-nav svg{flex:none;transition:transform .2s}
.dp-tiroir-nav:hover:not(:disabled),.dp-tiroir-nav:focus-visible{border-color:var(--dp-t-acc);color:var(--dp-t-acc);outline:none}
.dp-tiroir-nav.prec:hover:not(:disabled) svg{transform:translateX(-3px)}
.dp-tiroir-nav.suiv:hover:not(:disabled) svg{transform:translateX(3px)}
.dp-tiroir-nav:disabled{opacity:.35;cursor:default}
.dp-tiroir-nav.suiv{margin-left:auto}
.dp-tiroir-pos{margin:0 auto;display:flex;align-items:center;gap:4px;flex:0 1 auto;min-width:0;overflow:hidden}
.dp-tiroir-pos i{flex:none;width:5px;height:5px;border-radius:99px;background:var(--dp-t-ligne);transition:width .35s var(--dp-t-ease),background .35s}
.dp-tiroir-pos i.on{width:18px;background:var(--dp-t-acc)}
:root[data-theme="dark"] .dp-tiroir-pos i:not(.on){background:rgba(255,255,255,.2)}
.dp-tiroir-compte{display:none;font:800 11.5px "Montserrat",sans-serif;letter-spacing:.4px;color:var(--dp-t-txt3);white-space:nowrap;
  font-variant-numeric:tabular-nums}

/* --- Téléphone : plein écran, monte du bas, se ferme d'un glissé vers le bas --- */
@media(max-width:640px){
  .dp-tiroir{width:100%;border-radius:0;transform:translate3d(0,100%,0)}
  .dp-tiroir-tete{padding:max(8px,env(safe-area-inset-top,0px)) 18px 20px;touch-action:pan-x;cursor:grab}
  .dp-tiroir-poignee{display:block;width:42px;height:5px;border-radius:99px;margin:0 auto 8px;background:rgba(255,255,255,.45)}
  .dp-tiroir-id{grid-template-columns:auto minmax(0,1fr);gap:14px;margin-top:16px}
  .dp-tiroir-em{width:60px;height:60px;border-radius:18px}
  .dp-tiroir-em svg{width:32px;height:32px}
  .dp-tiroir-sigle{font-size:32px}
  .dp-tiroir-titre{font-size:16.5px}
  .dp-tiroir.dp-tiroir-sans-sigle .dp-tiroir-titre{font-size:21px}
  /* La mini-carte monte dans la barre du haut, entre « Retour » et la croix. */
  .dp-tiroir-barre{min-height:92px;align-items:flex-start;transition:min-height .4s var(--dp-t-ease)}
  /* « Retour » devient un bouton rond, symétrique de la croix : la mini-carte garde le centre. */
  .dp-tiroir-retour{width:42px;height:42px;max-width:none;padding:0;justify-content:center;border-radius:50%}
  .dp-tiroir-retour span{display:none}
  .dp-tiroir-mm{position:absolute;top:calc(max(8px,env(safe-area-inset-top,0px)) + 12px);left:50%;width:140px;
    transform:translateX(-50%);transition:opacity .3s ease,transform .4s var(--dp-t-ease)}
  .dp-tiroir-fil ol{margin-top:6px}
  .dp-tiroir-filigrane{font-size:110px;bottom:-26px}
  /* En lisant, l'en-tête se compacte : la mini-carte s'efface, l'identité se resserre. */
  .dp-tiroir-compact .dp-tiroir-barre{min-height:42px}
  .dp-tiroir-compact .dp-tiroir-mm{opacity:0;transform:translateX(-50%) translateY(-24px) scale(.6);pointer-events:none}
  .dp-tiroir-compact .dp-tiroir-id{margin-top:12px}
  .dp-tiroir-em,.dp-tiroir-sigle,.dp-tiroir-titre,.dp-tiroir-id{transition:width .35s var(--dp-t-ease),height .35s var(--dp-t-ease),font-size .35s var(--dp-t-ease),margin .35s var(--dp-t-ease)}
  .dp-tiroir-compact .dp-tiroir-em{width:46px;height:46px;border-radius:14px}
  .dp-tiroir-compact .dp-tiroir-em svg{width:26px;height:26px}
  .dp-tiroir-compact .dp-tiroir-sigle{font-size:24px;margin-top:5px}
  .dp-tiroir-compact .dp-tiroir-titre{font-size:14px;margin-top:4px}
  .dp-tiroir.dp-tiroir-sans-sigle.dp-tiroir-compact .dp-tiroir-titre{font-size:17px}
  .dp-tiroir-corps{padding:22px 20px 30px}
  .dp-tiroir-corps p{font-size:14.5px}
  .dp-tiroir-corps p.dp-tiroir-lead{font-size:16px}
  .dp-tiroir-cartes{grid-template-columns:1fr}
  /* Pied : les points cèdent la place à un compteur posé sur le filet, les noms tiennent sur deux lignes. */
  .dp-tiroir-pied{position:relative;gap:8px;padding:14px 12px calc(12px + env(safe-area-inset-bottom,0px))}
  .dp-tiroir-nav{flex:0 1 auto;min-width:0;max-width:calc(50% - 4px);padding:7px 12px;border-radius:16px;gap:6px;
    font-size:11.5px;line-height:1.25}
  .dp-tiroir-nav span{white-space:normal;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;
    overflow-wrap:break-word;hyphens:auto}
  .dp-tiroir-nav span{text-align:left}
  .dp-tiroir-pos{position:absolute;left:50%;top:0;margin:0;padding:3px 10px;transform:translate(-50%,-50%);
    border:1px solid var(--dp-t-ligne);border-radius:99px;background:var(--dp-t-pied)}
  .dp-tiroir-pos i{display:none}
  .dp-tiroir-compte{display:block;font-size:10.5px}
}

/* --- Mouvement réduit : pas de tracés, pas de flux, pas de glissements --- */
@media(prefers-reduced-motion:reduce){
  .dp-og-liens .dp-og-flux{display:none}
  .dp-og.dp-og-vu .dp-og-liens path{animation:none;stroke-dashoffset:0!important}
  .dp-og:not(.dp-og-vu) .dp-og-c{opacity:1;transform:none}
  .dp-og.dp-og-vu .dp-og-c,.dp-og-c.majeur::after,.dp-og-tete.dp-og-vu .dp-og-trait,.dp-og-invite i{animation:none}
  .dp-og-c,.dp-og-bureaux,.dp-og-plus svg{transition:none}
  .dp-tiroir,.dp-tiroir-voile{transition:opacity .2s linear}
  .dp-tiroir,.dp-tiroir-racine.dp-tiroir-ouvert .dp-tiroir{transform:none}
  .dp-tiroir{opacity:0}
  .dp-tiroir-racine.dp-tiroir-ouvert .dp-tiroir{opacity:1}
  .dp-tiroir-bloc,.dp-tiroir-fil li,.dp-tiroir-anime .dp-tiroir-em,.dp-tiroir-anime .dp-tiroir-noms>*,
  .dp-tiroir-anime .dp-tiroir-filigrane,.dp-tiroir-racine.dp-tiroir-ouvert .dp-tiroir-tete::after,.dp-tiroir-mm .pouls{animation:none}
  .dp-tiroir-mm .trace{stroke-dashoffset:0;animation:none!important}
  .dp-tiroir-mm .curseur{transition:none}
  .dp-tiroir-em,.dp-tiroir-sigle,.dp-tiroir-titre,.dp-tiroir-id,.dp-tiroir-barre,.dp-tiroir-mm,.dp-tiroir-nav svg,.dp-tiroir-retour svg,.dp-tiroir-x{transition:none}
}
