/* ===== L'Almanach du Mytho — design « C » (almanach éditorial moderne) ===== */
:root{
  --paper:#faf9f7; --paper-2:#f2efe8; --rail:#f4f1ea; --card:#fff;
  --ink:#1a1916; --ink-2:#403c34; --muted:#8a8377; --line:#e9e6df; --line-2:#ddd8cd;
  --gold:#b08a3e; --gold-2:#c79a45;
  --feature-bg:#1a1916; --feature-fg:#efe9dd; --feature-line:#39342a; --feature-muted:#a39a8a;
  --sans:'Inter',system-ui,sans-serif; --serif:'Newsreader',Georgia,serif; --display:'Fraunces',Georgia,serif;
}
[data-theme="dark"]{
  --paper:#16140f; --paper-2:#201d17; --rail:#211e18; --card:#1c1a14;
  --ink:#ece6d8; --ink-2:#c9c2b2; --muted:#8f8675; --line:#2e2a22; --line-2:#39342a;
  --gold:#cba659; --gold-2:#d9b76b;
  --feature-bg:#0f0d09; --feature-fg:#ece6d8; --feature-line:#2a2620; --feature-muted:#998f7d;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--serif);font-size:19px;line-height:1.6;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;transition:background .2s,color .2s}
a{color:inherit;text-decoration:none}
img{max-width:100%}
.wrap{max-width:1240px;margin:0 auto;padding:0 44px}
.wrap-wide{max-width:1300px;margin:0 auto;padding:0 40px}
.kick{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}

/* ── Header ── */
.util{display:flex;justify-content:space-between;align-items:center;padding:13px 0;font-family:var(--sans);
  font-size:11.5px;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--line)}
.util a{margin-left:18px;cursor:pointer}.util a:hover{color:var(--ink)}
.masthead{display:flex;align-items:baseline;justify-content:space-between;gap:24px;padding:26px 0 22px;flex-wrap:wrap}
.masthead .wordmark{font-family:var(--display);font-weight:600;font-size:clamp(28px,4.2vw,44px);letter-spacing:-.02em;line-height:1}
.masthead .wordmark em{font-style:italic;font-weight:500}
.masthead .tag{font-family:var(--display);font-style:italic;font-size:16px;color:var(--ink-2);margin-top:7px}
.masthead .ia{font-family:var(--sans);font-size:11.5px;color:var(--muted);text-align:right;max-width:330px;line-height:1.55}
.masthead .ia b{color:var(--ink-2);font-weight:600}
.nav{display:flex;gap:28px;font-family:var(--sans);font-size:13.5px;font-weight:500;color:var(--ink-2);flex-wrap:wrap;
  align-items:center;padding:13px 0;border-top:1px solid var(--ink);border-bottom:1px solid var(--line)}
.nav a{padding-bottom:3px;border-bottom:2px solid transparent}
.nav a:hover,.nav a.active{border-color:var(--gold);color:var(--ink)}
.nav .sp{flex:1}
.nav .srch{cursor:pointer}

/* mini-masthead (pages intérieures) */
.mast{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid var(--ink);gap:14px 24px;flex-wrap:wrap}
.mast .wm{font-family:var(--display);font-weight:600;font-size:23px;letter-spacing:-.02em}
.mast .wm em{font-style:italic;font-weight:500}
.brand{display:flex;flex-direction:column;justify-content:center;gap:1px}
.baseline{font-family:var(--display);font-style:italic;font-size:13px;color:var(--ink-2);line-height:1.2}
.mast .nav{border:none;padding:0;margin:0;gap:24px;font-size:13.5px;flex:1;justify-content:flex-end}
.mast .nav .som-link{color:var(--muted)}
.theme-toggle{font-size:14px;line-height:1;color:var(--ink-2);background:none;border:1px solid var(--line-2);border-radius:8px;
  width:34px;height:30px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:.15s;padding:0}
.theme-toggle:hover{border-color:var(--gold);color:var(--gold)}
.nav-burger{display:none}  /* visible uniquement en mobile (cf. media query) */

/* ── Hero / flagship (accueil) ── */
.hero{text-align:center;max-width:920px;margin:0 auto;padding:60px 0 50px}
.hero h1{font-family:var(--display);font-weight:500;font-size:clamp(38px,5.6vw,70px);line-height:1.03;letter-spacing:-.02em;margin:14px 0 20px}
.hero h1 a:hover{color:var(--gold)}
.hero .dek{font-size:clamp(19px,2.3vw,23px);line-height:1.5;color:var(--ink-2);max-width:700px;margin:0 auto}
.hero .dek em{font-family:var(--display);font-style:italic;font-weight:500;color:var(--ink)}
.hero .more{display:inline-block;margin-top:26px;font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.04em;
  text-transform:uppercase;border-bottom:2px solid var(--gold);padding-bottom:5px}
.hero .more:hover{color:var(--gold)}
.piliers{display:grid;grid-template-columns:repeat(4,1fr);gap:32px;max-width:880px;margin:46px auto 0;padding-top:28px;border-top:1px solid var(--line);text-align:left}
.piliers .n{font-family:var(--display);font-weight:400;font-size:30px;color:var(--gold);line-height:1}
.piliers .t{font-size:16px;font-weight:500;margin-top:7px;line-height:1.3}
.piliers .t span{display:block;font-size:13.5px;color:var(--muted);font-style:italic;margin-top:3px}

/* ── Section header ── */
.section-h{display:flex;align-items:center;gap:16px;padding:8px 0 26px}
.section-h .ln{flex:1;height:1px;background:var(--line-2)}
.section-h .all{font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--ink-2)}
.section-h .all:hover{color:var(--gold)}

/* ── Grille de sujets ── */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:46px}
.card .kick{display:block;margin-bottom:10px}
.card h3{font-family:var(--display);font-weight:500;font-size:24px;line-height:1.12;letter-spacing:-.01em;margin-bottom:10px}
.card h3 a:hover{color:var(--gold)}
.card p{font-size:16.5px;color:var(--ink-2);line-height:1.5}
.card .meta{font-family:var(--sans);font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin-top:14px}

/* ── Feature sombre (transversaux) ── */
.feature{background:var(--feature-bg);color:var(--feature-fg);margin:76px 0 0;padding:78px 0}
.feature .head{max-width:720px;margin:0 auto 50px;text-align:center}
.feature .kick{color:var(--gold-2)}
.feature h2{font-family:var(--display);font-weight:500;font-size:clamp(28px,4.2vw,46px);margin:.26em 0 .18em;color:var(--feature-fg);letter-spacing:-.01em}
.feature .head p{font-family:var(--display);font-style:italic;font-size:18px;color:var(--feature-muted)}
.tr-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:34px 40px}
.tr-cell{border-top:1px solid var(--feature-line);padding-top:17px}
.tr-cell .idx{font-family:var(--display);font-weight:400;font-size:25px;color:var(--gold-2);line-height:1}
.tr-cell h4{font-family:var(--display);font-weight:500;font-size:20px;line-height:1.14;margin:.32em 0 .34em;color:var(--feature-fg)}
.tr-cell:hover h4{color:var(--gold-2)}
.tr-cell p{font-family:var(--serif);font-size:14.5px;color:var(--feature-muted);line-height:1.45}
.tr-all{grid-column:1/-1;text-align:center;margin-top:6px}
.tr-all a{font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--gold-2);border-bottom:2px solid var(--feature-line);padding-bottom:5px}

/* ── Liste grandes parties ── */
.parts{display:grid;grid-template-columns:repeat(2,1fr);gap:0 56px}
.part{display:flex;gap:18px;padding:22px 0;border-top:1px solid var(--line)}
.part .pn{font-family:var(--display);font-weight:400;font-size:20px;color:var(--gold);min-width:34px}
.part h4{font-family:var(--display);font-weight:500;font-size:20px;line-height:1.15;margin-bottom:5px}
.part h4 a:hover{color:var(--gold)}
.part p{font-size:15px;color:var(--muted);line-height:1.45}

/* ── Footer ── */
.site-footer{padding:64px 0;text-align:center;margin-top:24px}
.fstats{display:flex;justify-content:center;flex-wrap:wrap;gap:54px;padding-bottom:36px}
.fstats .num{font-family:var(--display);font-weight:400;font-size:38px;color:var(--ink);line-height:1}
.fstats .lab{font-family:var(--sans);font-size:11px;letter-spacing:.11em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.fnote{font-family:var(--sans);font-size:12.5px;color:var(--muted);line-height:1.8;max-width:700px;margin:0 auto;padding-top:32px;border-top:1px solid var(--line)}
.fnote b{color:var(--ink-2)}

/* ── Page-synthèse : layout article + rail frise ── */
.synth{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:56px;align-items:start;padding:14px 0 0;
  transition:grid-template-columns .42s cubic-bezier(.4,0,.2,1)}
.synth.closed{grid-template-columns:minmax(0,1fr) 0}
.synth.no-frise{grid-template-columns:minmax(0,1fr)}
.main{min-width:0;max-width:720px;margin:0 auto}
.synth.no-frise .main{max-width:760px}

.art-head{padding:40px 0 30px;border-bottom:1px solid var(--line)}
.art-head .bc{font-family:var(--sans);font-size:12px;color:var(--muted);margin-bottom:16px}
.art-head .bc a{color:var(--gold);font-weight:600}
.art-head h1{font-family:var(--display);font-weight:500;font-size:clamp(33px,4.4vw,52px);line-height:1.05;letter-spacing:-.02em;margin-bottom:18px}
.art-head .sf{font-family:var(--display);font-style:italic;font-size:21px;line-height:1.45;color:var(--ink-2)}
.art-head .meta{font-family:var(--sans);font-size:12px;letter-spacing:.04em;text-transform:uppercase;color:var(--muted);margin-top:22px}
.art-head .meta b{color:var(--ink-2)}

.prose{padding:30px 0 8px;font-size:20px;line-height:1.68}
.prose h2{font-family:var(--display);font-weight:600;font-size:26px;line-height:1.15;letter-spacing:-.01em;margin:42px 0 4px}
.prose p{margin-top:18px;color:var(--ink)}
.prose p strong:first-child{font-weight:600}     /* phrase-synthèse en tête */
.prose p.first::first-letter{font-family:var(--display);font-weight:600;float:left;font-size:60px;line-height:.82;padding:6px 12px 0 0}
.prose em{font-style:italic}
.prose .cit{font-style:italic}
.prose sup a{font-family:var(--sans);font-size:.6em;font-weight:600;color:var(--gold);padding:0 1px}
.prose a.wl{border-bottom:1px solid var(--line-2)}
.prose a.wl:hover{color:var(--gold);border-color:var(--gold)}
.pull{font-family:var(--display);font-weight:500;font-size:26px;line-height:1.3;margin:36px 0;padding:4px 0 4px 26px;border-left:3px solid var(--gold);color:var(--ink)}

.notes{margin-top:40px;padding-top:22px;border-top:1px solid var(--line)}
.notes h3{font-family:var(--sans);font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}
.notes ol{list-style:none;counter-reset:fn;font-family:var(--sans);font-size:13.5px;color:var(--ink-2);line-height:1.7}
.notes li{counter-increment:fn;padding-left:28px;position:relative}
.notes li::before{content:counter(fn);position:absolute;left:0;color:var(--gold);font-weight:600}
.notes li a{color:var(--ink-2);border-bottom:1px solid var(--line-2)}
.notes li a:hover{color:var(--gold);border-color:var(--gold)}

.connex{margin-top:38px;padding-top:22px;border-top:1px solid var(--line)}
.connex .kick{display:block;margin-bottom:12px}
.connex a{display:inline-block;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--ink-2);
  border:1px solid var(--line-2);border-radius:100px;padding:6px 15px;margin:0 7px 7px 0}
.connex a:hover{border-color:var(--gold);color:var(--gold)}

/* rail frise */
.rail{position:sticky;top:16px;align-self:start;max-height:calc(100vh - 32px);background:var(--rail);
  border:1px solid var(--line-2);border-radius:14px;display:flex;flex-direction:column;overflow:hidden;min-width:0;
  transition:opacity .3s ease,transform .42s cubic-bezier(.4,0,.2,1)}
.synth.closed .rail{opacity:0;transform:translateX(20px);pointer-events:none}
.rail-head{display:flex;align-items:center;justify-content:space-between;padding:15px 18px;border-bottom:1px solid var(--line-2);flex-shrink:0}
.rail-head .t{font-family:var(--display);font-weight:600;font-size:17px}
.rail-head .t span{font-family:var(--sans);font-size:11px;font-weight:500;color:var(--muted);letter-spacing:.04em;display:block;text-transform:uppercase;margin-top:1px}
.rail-head button{border:0;background:none;cursor:pointer;color:var(--muted);font-size:18px;line-height:1;padding:4px 6px;border-radius:6px}
.rail-head button:hover{color:var(--ink);background:var(--paper-2)}
.rail-list{overflow-y:auto;padding:6px 18px 16px}
.rail-list .e{padding:13px 0;border-top:1px solid var(--line-2)}
.rail-list .e:first-child{border-top:0}
.rail-list .yr{font-family:var(--display);font-weight:600;font-size:14px;color:var(--gold);letter-spacing:.02em}
.rail-list .q{font-size:14.5px;line-height:1.46;color:var(--ink-2);margin-top:3px}
.rail-list .src{font-size:11.5px;color:var(--muted);margin-top:6px;display:block;line-height:1.4}
.rail-list .src a{color:var(--muted);border-bottom:1px solid transparent}
.rail-list .src a:hover{color:var(--gold);border-color:var(--gold)}

.reopen{position:fixed;right:0;top:42%;display:none;align-items:center;background:var(--ink);color:var(--paper);
  font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;writing-mode:vertical-rl;
  padding:16px 9px;border-radius:10px 0 0 10px;cursor:pointer;box-shadow:-3px 0 14px rgba(0,0,0,.12);z-index:20}

/* ── Grande partie ── */
.gp-head{padding:50px 0 30px;border-bottom:1px solid var(--line);text-align:center;max-width:820px;margin:0 auto}
.gp-head h1{font-family:var(--display);font-weight:500;font-size:clamp(34px,5vw,56px);letter-spacing:-.02em;margin:14px 0 16px;line-height:1.05}
.gp-head p{font-size:19px;color:var(--ink-2);line-height:1.5}
.gp-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 56px;padding:30px 0}
.gp-item{padding:24px 0;border-top:1px solid var(--line)}
.gp-item h3{font-family:var(--display);font-weight:500;font-size:23px;line-height:1.12;margin-bottom:8px}
.gp-item h3 a:hover{color:var(--gold)}
.gp-item p{font-size:15.5px;color:var(--ink-2);line-height:1.5}

/* ── Recherche ── */
.search-box{max-width:680px;margin:40px auto;text-align:center}
.search-box input{width:100%;font-family:var(--display);font-size:26px;padding:16px 4px;border:0;border-bottom:2px solid var(--ink);
  background:none;color:var(--ink);outline:none}
.search-box input::placeholder{color:var(--muted);font-style:italic}
#results{max-width:760px;margin:0 auto;padding-bottom:60px}
.res{padding:18px 0;border-top:1px solid var(--line)}
.res .kick{display:block;margin-bottom:5px}
.res h3{font-family:var(--display);font-weight:500;font-size:21px}
.res h3 a:hover{color:var(--gold)}
.res p{font-size:15px;color:var(--muted);margin-top:4px}

/* ── Menu déroulé Domaines ── */
.drop{position:relative;display:inline-block}
.drop-t{cursor:pointer}
.drop-menu{position:absolute;left:0;top:100%;margin-top:10px;z-index:30;display:none;
  background:var(--card);border:1px solid var(--line-2);border-radius:12px;padding:12px 0;min-width:310px;
  box-shadow:0 16px 44px rgba(0,0,0,.13)}
.drop:hover .drop-menu,.drop:focus-within .drop-menu{display:block}
.drop-menu a{display:block;padding:7px 20px;font-size:14px;font-weight:500;color:var(--ink-2);border:0}
.drop-menu a:hover{color:var(--gold);background:var(--paper-2)}
.drop-grp{display:block;padding:6px 20px 4px;font-family:var(--sans);font-size:10.5px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.drop-grp:not(:first-child){margin-top:6px;border-top:1px solid var(--line);padding-top:12px}

/* ── Accueil : blocs domaine ── */
.doms{display:grid;grid-template-columns:repeat(3,1fr);gap:46px 40px;padding:8px 0 10px}
.dom h3{font-family:var(--display);font-weight:500;font-size:23px;line-height:1.1;letter-spacing:-.01em;margin-bottom:9px}
.dom h3 a:hover{color:var(--gold)}
.dom-dek{font-size:15.5px;color:var(--ink-2);line-height:1.5;margin-bottom:13px}
.dom-sujets{list-style:none;margin:0 0 12px;padding:0}
.dom-sujets li{padding:6px 0;border-top:1px solid var(--line);font-size:15px}
.dom-sujets li a:hover{color:var(--gold)}
.dom-more{font-family:var(--sans);font-size:12.5px;font-weight:600;color:var(--gold)}
.dom-more:hover{text-decoration:underline}

/* ── Sommaire (table des matières) ── */
.som-flag{display:flex;align-items:baseline;gap:18px;margin:30px 0 6px;padding:18px 22px;border:1px solid var(--line-2);border-radius:12px;background:var(--card)}
.som-flag .t{font-family:var(--display);font-weight:500;font-size:22px}
.som-flag:hover .t{color:var(--gold)}
.som-dom{padding:26px 0;border-top:1px solid var(--line)}
.som-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:10px}
.som-head h2{font-family:var(--display);font-weight:500;font-size:26px;letter-spacing:-.01em}
.som-head h2 a:hover{color:var(--gold)}
.som-pano{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gold);white-space:nowrap}
.som-list{list-style:none;margin:0;padding:0;columns:2;column-gap:48px}
.som-list li{break-inside:avoid;padding:5px 0;font-size:16px}
.som-list li a{color:var(--ink-2)}
.som-list li a:hover{color:var(--gold)}

/* ── Page domaine : bandeau métriques ── */
.dom-metrics{display:flex;justify-content:center;flex-wrap:wrap;gap:46px;margin-top:26px}
.dom-metrics .dm{display:flex;flex-direction:column;align-items:center}
.dom-metrics .dm .v{font-family:var(--display);font-weight:400;font-size:33px;color:var(--gold);line-height:1}
.dom-metrics .dm .l{font-family:var(--sans);font-size:10.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:7px}

/* ── Accueil : bandeau métriques ── */
.home-metrics{display:flex;flex-wrap:wrap;justify-content:center;align-items:flex-start;gap:14px 44px;padding:24px 0 8px}
.hm-item{display:flex;flex-direction:column;align-items:center;text-align:center}
.hm-item b{font-family:var(--display);font-weight:500;font-size:clamp(22px,2.8vw,31px);color:var(--ink);line-height:1;letter-spacing:-.01em}
.hm-item span{font-family:var(--sans);font-size:10px;font-weight:500;letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin-top:6px}
.hm-hi b{color:var(--gold)}
.hm-item .hm-sub{font-family:var(--display);font-style:italic;font-size:11.5px;font-weight:500;letter-spacing:0;text-transform:none;color:var(--gold);margin-top:3px}

/* ── Accueil : constellation orbitale (phare au centre, 15 domaines en orbite) ── */
.orbit-intro{text-align:center;max-width:680px;margin:34px auto 0}
.orbit-intro .kick{display:block;margin-bottom:11px}
.orbit-intro p{font-family:var(--display);font-style:italic;font-size:19px;line-height:1.5;color:var(--ink-2)}
.orbit-intro b{font-style:normal;font-weight:600;color:var(--ink)}
.orbit-intro .ia-line{font-family:var(--sans);font-style:normal;font-size:12.5px;line-height:1.55;color:var(--muted);
  max-width:560px;margin:13px auto 16px;padding-bottom:15px;border-bottom:1px solid var(--line)}
.orbit-intro .ia-line b{color:var(--gold);font-weight:600}

.orbit-full{padding:8px 9% 6px}
.orbit-stage{position:relative;max-width:1180px;height:clamp(640px,64vw,900px);margin:0 auto;overflow:visible}
.oring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid var(--line-2);border-radius:50%;pointer-events:none}
.or-out{width:84%;height:88%}
.or-in{width:52%;height:60%;border-style:dashed;opacity:.7}
.orbit-stage::before{content:"";position:absolute;left:50%;top:50%;width:50%;height:56%;transform:translate(-50%,-50%);
  border-radius:50%;background:radial-gradient(ellipse at center,color-mix(in srgb,var(--gold) 14%,transparent),transparent 70%);pointer-events:none}

.ocore{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:clamp(250px,32%,330px);
  background:var(--card);border:1px solid var(--gold);border-radius:18px;padding:26px 26px 24px;text-align:center;z-index:5;
  box-shadow:0 18px 50px -18px rgba(0,0,0,.32);display:flex;flex-direction:column;align-items:center}
.ocore .kick{margin-bottom:11px}
.ocore .ot{font-family:var(--display);font-weight:500;font-size:24px;line-height:1.1;letter-spacing:-.01em;color:var(--ink)}
.ocore .od{font-family:var(--display);font-style:italic;font-size:14.5px;line-height:1.42;color:var(--ink-2);margin-top:11px}
.ocore .octa{font-family:var(--sans);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--gold);margin-top:16px}
.ocore:hover{border-color:var(--gold-2);box-shadow:0 22px 60px -18px rgba(0,0,0,.4)}
.ocore:hover .ot{color:var(--gold)}

.onode{position:absolute;display:flex;align-items:center;gap:9px;width:max-content;max-width:188px;z-index:3}
.onode .bubble{position:absolute;left:6px;top:50%;width:52px;height:52px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(176,138,62,.16),rgba(176,138,62,0) 70%);pointer-events:none;z-index:-1;transition:.18s}
.onode:hover .bubble{background:radial-gradient(circle,rgba(176,138,62,.30),rgba(176,138,62,0) 72%)}
[data-theme="dark"] .onode .bubble{background:radial-gradient(circle,rgba(203,166,89,.18),rgba(203,166,89,0) 70%)}
.onode .dot{width:11px;height:11px;border-radius:50%;background:var(--gold);flex-shrink:0;box-shadow:0 0 0 4px var(--paper);transition:transform .18s}
.onode .lbl{display:flex;flex-direction:column;max-width:152px}
.onode .nt{font-family:var(--display);font-weight:500;font-size:15.5px;line-height:1.13;color:var(--ink)}
.onode .nm{font-family:var(--sans);font-size:10.5px;letter-spacing:.04em;color:var(--muted);margin-top:3px}
.onode:hover .nt{color:var(--gold)}
.onode:hover .dot{transform:scale(1.3)}
.ring-out .dot{background:var(--ink-2)}
.ring-in .dot{width:13px;height:13px}
.side-r{flex-direction:row;text-align:left;transform:translateY(-50%)}
.side-l{flex-direction:row-reverse;text-align:right;transform:translate(-100%,-50%)}
.side-t{flex-direction:column-reverse;text-align:center;transform:translate(-50%,-100%)}
.side-b{flex-direction:column;text-align:center;transform:translate(-50%,0)}
.side-t .lbl,.side-b .lbl{align-items:center}

.orbit-fallback{display:none}

@media(max-width:980px){
  .synth{grid-template-columns:1fr;gap:0}.synth.closed{grid-template-columns:1fr}
  .rail{position:static;max-height:none;margin-top:40px}.synth.closed .rail{opacity:1;transform:none;pointer-events:auto}
  .reopen,.rail-head button{display:none}
}
@media(max-width:900px){
  .orbit-stage{display:none}
  .orbit-fallback{display:block;max-width:560px;margin:8px auto 0}
  .of-flag{display:block;padding:18px 20px;border:1px solid var(--gold);border-radius:14px;background:var(--card);margin-bottom:24px}
  .of-flag .kick{display:block;margin-bottom:6px}
  .of-flag .t{font-family:var(--display);font-weight:500;font-size:20px;line-height:1.15}
  .of-flag:hover .t{color:var(--gold)}
  .of-grp{font-family:var(--sans);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:18px 0 2px}
  .of-list{list-style:none}
  .of-list li a{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:11px 0;border-top:1px solid var(--line)}
  .of-list li a span{font-family:var(--display);font-size:18px;font-weight:500}
  .of-list li a em{font-family:var(--sans);font-style:normal;font-size:11px;letter-spacing:.04em;color:var(--muted);white-space:nowrap}
  .of-list li a:hover span{color:var(--gold)}
}
@media(max-width:860px){
  .wrap,.wrap-wide{padding:0 22px}
  .masthead .ia{text-align:left;max-width:none}
  .grid,.piliers,.parts,.gp-list,.doms{grid-template-columns:1fr;gap:30px}
  .tr-grid{grid-template-columns:1fr 1fr}
  .mast nav,.nav{font-size:12.5px;gap:14px}
  .som-list{columns:1}
  .drop-menu{min-width:240px}
}

/* ── Explorateur de sujets ── */
.expo{padding:22px 0 60px}
.expo-top{display:flex;align-items:flex-end;justify-content:space-between;gap:26px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid var(--line)}
.expo-titre .kick{display:block;margin-bottom:9px}
.expo-titre h1{font-family:var(--display);font-weight:600;font-size:clamp(28px,3.6vw,40px);letter-spacing:-.02em;line-height:1.02}
.expo-tag{font-family:var(--display);font-style:italic;font-size:16px;color:var(--ink-2);margin-top:8px}
.expo-controls{display:flex;gap:12px;flex:1;min-width:300px;max-width:540px}
.expo-controls #q{flex:1;min-width:0;font-family:var(--serif);font-size:17px;color:var(--ink);
  background:var(--card);border:1px solid var(--line-2);border-radius:11px;padding:12px 16px;outline:none}
.expo-controls #q:focus{border-color:var(--gold)}
.surprise{font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.03em;color:var(--ink);cursor:pointer;white-space:nowrap;
  background:var(--paper-2);border:1px solid var(--line-2);border-radius:11px;padding:0 16px;transition:.15s}
.surprise:hover{border-color:var(--gold);color:var(--gold)}

.band-fr{text-align:center;padding:22px 0 24px;border-bottom:1px solid var(--line)}
.fr-head{margin-bottom:15px}
.fr-head .fr-k{font-family:var(--sans);font-size:12px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--gold);margin-right:11px}
.fr-head .fr-s{font-family:var(--display);font-style:italic;font-size:14.5px;color:var(--muted)}
.fr-items{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}
.frpill{font-family:var(--display);font-style:italic;font-size:16.5px;background:var(--feature-bg);color:var(--feature-fg);
  border:1px solid var(--feature-line);border-radius:999px;padding:9px 20px;transition:.14s}
.frpill:hover{border-color:var(--gold);color:var(--gold-2)}

.expo-body{display:flex;gap:30px;align-items:flex-start;padding-top:22px}
.expo-rail{flex:0 0 244px;position:sticky;top:14px;background:var(--paper-2);border:1px solid var(--line);border-radius:14px;
  padding:16px 16px 18px;display:flex;flex-direction:column;gap:14px}
.rail-t{font-family:var(--sans);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.expo-main{flex:1;min-width:0}
.fgroup{display:block;border-top:1px solid var(--line);padding-top:13px}
.fgroup.fg-first{border-top:none;padding-top:0}
.fglabel{display:flex;align-items:baseline;gap:6px;font-family:var(--sans);font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);margin-bottom:10px}
.fglabel .cn{font-weight:500;color:var(--muted);letter-spacing:.04em}
.chips{display:flex;flex-wrap:wrap;gap:7px}
.chips-scroll{max-height:264px;overflow-y:auto;padding:2px 6px 6px 2px}
.chip{font-family:var(--sans);font-size:12.5px;font-weight:500;color:var(--ink-2);cursor:pointer;
  background:var(--card);border:1px solid var(--line-2);border-radius:8px;padding:6px 11px;transition:.13s;line-height:1.2}
.chip:hover{border-color:var(--gold);color:var(--gold)}
.chip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.chip.poids-business{border-left:3px solid var(--gold)}
.chip.poids-transversal{border-left:3px solid var(--gold-2);font-style:italic}

.expo-bar{display:flex;align-items:center;gap:16px;padding:2px 0 14px}
#count{font-family:var(--sans);font-size:13px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--muted)}
.reset{font-family:var(--sans);font-size:12px;font-weight:500;color:var(--gold);cursor:pointer;background:none;border:none;padding:0}
.reset:hover{text-decoration:underline}

.expo-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:18px;padding-bottom:60px}
.ecard{background:var(--card);border:1px solid var(--line);border-top:3px solid var(--line-2);border-radius:12px;
  padding:18px 19px 16px;display:flex;flex-direction:column;transition:.16s}
.ecard:hover{border-color:var(--line-2);box-shadow:0 6px 26px rgba(0,0,0,.07);transform:translateY(-2px)}
.ecard.poids-business{border-top-color:var(--gold)}
.ecard.poids-transversal{border-top-color:var(--gold-2)}
.ecard.flash{animation:flash 1.4s ease}
@keyframes flash{0%,100%{box-shadow:0 0 0 0 rgba(176,138,62,0)}25%{box-shadow:0 0 0 3px var(--gold);transform:translateY(-2px)}}
.ec-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:9px}
.ec-dom{font-family:var(--sans);font-size:10.5px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--gold)}
.ec-dom:hover{text-decoration:underline}
.ec-niv{font-family:var(--sans);font-size:10px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--muted);
  border:1px solid var(--line-2);border-radius:999px;padding:2px 9px;white-space:nowrap}
.ecard h3{font-family:var(--display);font-weight:600;font-size:21px;letter-spacing:-.01em;line-height:1.12;margin-bottom:8px}
.ecard h3 a:hover{color:var(--gold)}
.ec-resume{font-family:var(--serif);font-size:15.5px;line-height:1.5;color:var(--ink-2);margin-bottom:10px}
.ec-cit{font-family:var(--serif);font-style:italic;font-size:14.5px;line-height:1.5;color:var(--ink);
  border-left:2px solid var(--gold);padding-left:12px;margin-bottom:11px}
.ec-meta{font-family:var(--sans);font-size:11px;letter-spacing:.04em;color:var(--muted);margin-top:auto;padding-top:4px}
.ec-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:11px}
.tag{font-family:var(--sans);font-size:11px;font-weight:500;color:var(--ink-2);cursor:pointer;
  background:var(--paper-2);border:1px solid var(--line);border-radius:999px;padding:3px 10px;transition:.12s}
.tag:hover{border-color:var(--gold);color:var(--gold)}
.tag-c{background:transparent;color:var(--muted)}
.ec-conn{display:flex;flex-direction:column;gap:4px;margin-top:13px;padding-top:11px;border-top:1px solid var(--line)}
.ec-conn a{font-family:var(--sans);font-size:12px;color:var(--ink-2)}
.ec-conn a:hover{color:var(--gold)}
.ec-conn .ct{font-size:9.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-right:5px}
.expo-empty{font-family:var(--serif);font-size:17px;color:var(--muted);padding:40px 0 80px;text-align:center}

@media(max-width:860px){
  .expo-body{flex-direction:column;gap:18px}
  .expo-rail{position:static;flex:none;width:100%}
  .chips-scroll{max-height:none}
  .expo-grid{grid-template-columns:1fr}
}

/* ===== Passe mobile : tablette / téléphone ===== */

/* Tablette : grilles larges → 2 colonnes avant le passage 1 colonne */
@media(max-width:1024px){
  .tr-grid{grid-template-columns:repeat(2,1fr)}
}

/* Téléphone large / petite tablette : header en menu hamburger (drawer) */
@media(max-width:640px){
  .mast{flex-wrap:wrap;gap:0 14px;padding:12px 0}
  .nav-burger{display:flex;flex-direction:column;justify-content:center;gap:5px;
    width:40px;height:34px;padding:0 8px;cursor:pointer;border:1px solid var(--line-2);border-radius:9px;flex:0 0 auto}
  .nav-burger span{display:block;width:20px;height:2px;background:var(--ink-2);border-radius:2px;transition:.2s}
  .nav-burger:hover span{background:var(--gold)}
  .nav-cb:checked ~ .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav-cb:checked ~ .nav-burger span:nth-child(2){opacity:0}
  .nav-cb:checked ~ .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .mast .nav{display:none;flex-basis:100%;width:100%;flex-direction:column;align-items:stretch;
    justify-content:flex-start;gap:0;margin-top:12px;padding:6px 0 2px;border-top:1px solid var(--line)}
  .nav-cb:checked ~ .nav{display:flex}
  .mast .nav a{padding:13px 2px;font-size:16px;width:100%;border-bottom:1px solid var(--line);border-bottom-width:1px}
  .mast .nav a.active{border-bottom-color:var(--gold)}
  .mast .nav .sp{display:none}
  .mast .nav .som-link{color:var(--ink-2)}
  .mast .nav .theme-toggle{align-self:flex-start;margin-top:12px;width:38px;height:34px}
}

/* Téléphone : densité, gouttières et grilles */
@media(max-width:600px){
  .tr-grid{grid-template-columns:1fr;gap:24px}
  .home-metrics{gap:16px 26px;padding:18px 0 4px}
  .fstats{gap:28px 38px}
  .dom-metrics{gap:22px 34px}
  .feature{margin-top:54px;padding:54px 0}
  .site-footer{padding:48px 0}
  .gp-list{gap:0}
  .som-flag{flex-direction:column;gap:6px}
}

/* ── Bandeau de consentement (RGPD / Consent Mode v2) ── */
.consent{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:60;
  display:flex;align-items:center;gap:18px 22px;flex-wrap:wrap;justify-content:center;
  width:calc(100% - 36px);max-width:760px;background:var(--card);border:1px solid var(--line-2);
  border-radius:14px;padding:16px 20px;box-shadow:0 14px 44px rgba(0,0,0,.16)}
.consent[hidden]{display:none}
.consent-txt{font-family:var(--sans);font-size:13px;line-height:1.5;color:var(--ink-2);flex:1;min-width:230px}
.consent-txt b{color:var(--ink);font-weight:600}
.consent-act{display:flex;gap:10px;flex-shrink:0}
.consent-act button{font-family:var(--sans);font-size:12.5px;font-weight:600;letter-spacing:.02em;cursor:pointer;
  border-radius:9px;padding:9px 18px;transition:.15s;border:1px solid var(--line-2)}
.cs-no{background:none;color:var(--ink-2)}
.cs-no:hover{border-color:var(--ink-2)}
.cs-yes{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.cs-yes:hover{background:var(--gold);border-color:var(--gold)}
@media(max-width:600px){
  .consent{bottom:0;border-radius:14px 14px 0 0;width:100%;gap:12px}
  .consent-act{width:100%}
  .consent-act button{flex:1}
}

/* Petit téléphone : conteneurs, fallback orbital, lettrine */
@media(max-width:480px){
  .wrap,.wrap-wide{padding:0 16px}
  .orbit-full{padding:8px 0 6px}
  .orbit-fallback{max-width:100%}
  .of-list li a span{font-size:16px}
  .prose{font-size:18px}
  .prose p.first::first-letter{font-size:44px;padding:4px 9px 0 0}
  .pull{font-size:21px}
  .art-head .sf{font-size:18px}
  .fstats .num{font-size:32px}
  .hm-item span{font-size:9.5px}
}
