/*
Theme Name: Ekkotech
Theme URI: https://ekkotech.fr/
Author: Ekkotech
Author URI: https://ekkotech.fr/
Description: Thème sur mesure d’Ekkotech, média de prospective technologique : fond quasi noir, dégradé violet→cyan, Space Grotesk et Newsreader, hero plein écran, liste éditoriale asymétrique numérotée, dossier long format, chiffre de la semaine et glossaire filtrable.
Version: 1.0.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: ekkotech
Tags: dark, news, blog, one-column, custom-menu, featured-images, threaded-comments, translation-ready
*/

/* =========================================================
   Polices auto-hébergées (latin + latin-ext)
   ========================================================= */
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;src:url("assets/fonts/space-grotesk-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Space Grotesk";font-style:normal;font-weight:300 700;font-display:swap;src:url("assets/fonts/space-grotesk-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:300 600;font-display:swap;src:url("assets/fonts/newsreader-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Newsreader";font-style:normal;font-weight:300 600;font-display:swap;src:url("assets/fonts/newsreader-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:"Newsreader";font-style:italic;font-weight:300 600;font-display:swap;src:url("assets/fonts/newsreader-italic-latin-ext.woff2") format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C4,U+2113,U+2C60-2C7F,U+A720-A7FF}
@font-face{font-family:"Newsreader";font-style:italic;font-weight:300 600;font-display:swap;src:url("assets/fonts/newsreader-italic-latin.woff2") format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* =========================================================
   Jetons
   ========================================================= */
:root{
  --ekk-bg:#07070A;
  --ekk-bg-2:#0C0C11;
  --ekk-bg-3:#121219;
  --ekk-fg:#ECE9E2;
  --ekk-fg-2:#BDB9B1;
  --ekk-muted:#7F7D88;
  --ekk-line:rgba(236,233,226,.10);
  --ekk-line-2:rgba(236,233,226,.20);
  --ekk-violet:#7C3AED;
  --ekk-violet-txt:#A788F6;
  --ekk-cyan:#22D3EE;
  --ekk-grad:linear-gradient(90deg,#7C3AED 0%,#22D3EE 100%);
  --ekk-sans:"Space Grotesk",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --ekk-serif:"Newsreader",Georgia,"Times New Roman",serif;
  --ekk-mono:ui-monospace,SFMono-Regular,Menlo,Consolas,"Liberation Mono",monospace;
  --ekk-gutter:clamp(16px,4.2vw,64px);
  --ekk-maxw:1440px;
  --ekk-header-h:72px;
  --ekk-adminbar:0px;
}
.admin-bar{--ekk-adminbar:32px}
@media (max-width:782px){.admin-bar{--ekk-adminbar:46px}}

/* =========================================================
   Base
   ========================================================= */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;background:var(--ekk-bg)}
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}
body{
  margin:0;background:var(--ekk-bg);color:var(--ekk-fg);
  font-family:var(--ekk-sans);font-size:16px;line-height:1.5;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  overflow-x:clip;overflow-wrap:break-word;
}
img,svg,video{max-width:100%}
img{display:block;height:auto}
a{color:inherit;text-decoration:none}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:rgba(124,58,237,.55);color:#fff}
:focus-visible{outline:2px solid var(--ekk-cyan);outline-offset:3px}
[id]{scroll-margin-top:calc(var(--ekk-header-h) + var(--ekk-adminbar) + 16px)}
.ekk-wrap{max-width:var(--ekk-maxw);margin:0 auto;padding:0 var(--ekk-gutter)}
.screen-reader-text{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);white-space:nowrap;border:0}
.ekk-skip{position:fixed;left:16px;top:-80px;z-index:100;padding:12px 18px;background:var(--ekk-fg);color:var(--ekk-bg);font-size:14px;font-weight:500;border-radius:999px;transition:top .2s}
.ekk-skip:focus{top:calc(var(--ekk-adminbar) + 12px)}
.ekk-main:focus{outline:none}
.ekk-grad{background:var(--ekk-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}

/* =========================================================
   En-tête
   ========================================================= */
.ekk-top{
  position:fixed;left:0;right:0;top:var(--ekk-adminbar);z-index:50;height:var(--ekk-header-h);
  display:flex;align-items:center;
  border-bottom:1px solid transparent;
  transition:background .4s ease,border-color .4s ease;
}
.ekk-top--scrolled,.ekk-menu-open .ekk-top{background:rgba(7,7,10,.86);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom-color:var(--ekk-line)}
.ekk-top__in{display:flex;align-items:center;gap:32px;width:100%;max-width:var(--ekk-maxw);margin:0 auto;padding:0 var(--ekk-gutter)}
.ekk-brand{display:inline-flex;align-items:center;gap:14px;flex-shrink:0}
.ekk-brand svg{width:34px;height:34px;flex-shrink:0}
.ekk-brand__word{font-weight:500;font-size:14px;letter-spacing:.46em;margin-right:-.46em;white-space:nowrap}
.ekk-brand__word span{color:var(--ekk-muted)}
.ekk-nav{margin-left:auto}
.ekk-nav__list{display:flex;gap:26px;list-style:none;margin:0;padding:0;font-size:13.5px;letter-spacing:.02em;color:var(--ekk-fg-2)}
.ekk-nav__list a{position:relative;display:block;padding:6px 0;transition:color .2s}
.ekk-nav__list a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:var(--ekk-grad);transform:scaleX(0);transform-origin:left;transition:transform .35s ease}
.ekk-nav__list a:hover,.ekk-nav__list .current-menu-item>a,.ekk-nav__list .current-cat>a,.ekk-nav__list .current-post-ancestor>a{color:var(--ekk-fg)}
.ekk-nav__list a:hover::after,.ekk-nav__list .current-menu-item>a::after,.ekk-nav__list .current-cat>a::after,.ekk-nav__list .current-post-ancestor>a::after{transform:scaleX(1)}
.ekk-top__tools{display:flex;align-items:center;gap:18px;margin-left:8px}
.ekk-top__date{font-size:12px;color:var(--ekk-muted);letter-spacing:.06em;white-space:nowrap}
.ekk-btn{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;height:36px;padding:0 16px;
  border:1px solid var(--ekk-line-2);border-radius:999px;font-size:13px;letter-spacing:.02em;white-space:nowrap;
  background:transparent;color:var(--ekk-fg);cursor:pointer;transition:border-color .25s,background .25s;
}
.ekk-btn:hover{border-color:rgba(34,211,238,.6);background:rgba(34,211,238,.06)}
.ekk-burger{display:none;width:40px;height:40px;border:1px solid var(--ekk-line-2);border-radius:50%;background:none;cursor:pointer;align-items:center;justify-content:center;padding:0}
.ekk-burger span{display:block;width:16px;height:1px;background:var(--ekk-fg);position:relative}
.ekk-burger span::before,.ekk-burger span::after{content:"";position:absolute;left:0;width:16px;height:1px;background:var(--ekk-fg);transition:transform .3s}
.ekk-burger span::before{top:-5px}.ekk-burger span::after{top:5px}
.ekk-menu-open .ekk-burger span{background:transparent}
.ekk-menu-open .ekk-burger span::before{transform:translateY(5px) rotate(45deg)}
.ekk-menu-open .ekk-burger span::after{transform:translateY(-5px) rotate(-45deg)}

/* =========================================================
   Hero
   ========================================================= */
.ekk-hero{position:relative;min-height:100vh;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--ekk-header-h) + var(--ekk-adminbar) + 40px) 0 48px;overflow:hidden;isolation:isolate}
.ekk-hero__viz{position:absolute;z-index:-1;top:50%;right:-6vw;width:min(78vh,62vw);aspect-ratio:1;transform:translateY(-56%);pointer-events:none}
.ekk-hero__viz svg{width:100%;height:100%;overflow:visible}
.ekk-hero::after{content:"";position:absolute;inset:auto 0 0 0;height:30%;background:linear-gradient(180deg,rgba(7,7,10,0),var(--ekk-bg));z-index:-1}
.ekk-kicker{display:inline-flex;align-items:center;gap:12px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--ekk-fg-2);margin:0 0 28px}
.ekk-kicker a:hover{color:var(--ekk-fg)}
.ekk-kicker__pulse{width:8px;height:8px;border-radius:50%;background:var(--ekk-cyan);box-shadow:0 0 0 0 rgba(34,211,238,.6);animation:ekk-pulse 2.6s infinite;flex-shrink:0}
@keyframes ekk-pulse{0%{box-shadow:0 0 0 0 rgba(34,211,238,.55)}70%{box-shadow:0 0 0 12px rgba(34,211,238,0)}100%{box-shadow:0 0 0 0 rgba(34,211,238,0)}}
.ekk-hero__title{font-weight:500;font-size:clamp(3.1rem,10.6vw,11.5rem);line-height:.9;letter-spacing:-.05em;margin:0;max-width:11ch;hyphens:auto}
.ekk-hero__title--m{font-size:clamp(2.6rem,6.8vw,7.2rem);line-height:.94;letter-spacing:-.045em;max-width:16ch}
.ekk-hero__title--l{font-size:clamp(2.2rem,5vw,5.2rem);line-height:.98;letter-spacing:-.04em;max-width:22ch}
.ekk-hero__title a{display:block}
.ekk-hero__title em{font-style:normal;font-weight:400}
.ekk-hero__foot{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);gap:48px;align-items:end;margin-top:clamp(36px,6vh,72px);padding-top:28px;border-top:1px solid var(--ekk-line)}
.ekk-dek{font-family:var(--ekk-serif);font-weight:300;font-size:clamp(1.15rem,1.55vw,1.42rem);line-height:1.45;color:var(--ekk-fg-2);margin:0;max-width:56ch}
.ekk-dek strong{font-weight:500;color:var(--ekk-fg)}
.ekk-byline{display:flex;flex-wrap:wrap;align-items:center;gap:8px 18px;margin-top:22px;font-size:13px;color:var(--ekk-muted);letter-spacing:.02em}
.ekk-byline b{font-weight:500;color:var(--ekk-fg)}
.ekk-byline a:hover b{color:var(--ekk-cyan)}
.ekk-cta{display:inline-flex;align-items:center;gap:12px;font-size:14px;letter-spacing:.04em;color:var(--ekk-fg)}
.ekk-cta i{display:inline-block;width:34px;height:1px;background:var(--ekk-grad);position:relative;transition:width .35s}
.ekk-cta i::after{content:"";position:absolute;right:0;top:-3px;width:7px;height:7px;border-top:1px solid var(--ekk-cyan);border-right:1px solid var(--ekk-cyan);transform:rotate(45deg)}
.ekk-cta:hover i{width:54px}
.ekk-hero__data{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin:0;border-left:1px solid var(--ekk-line)}
.ekk-hero__data div{padding:4px 18px 0;border-right:1px solid var(--ekk-line);display:flex;flex-direction:column-reverse;justify-content:flex-end}
.ekk-hero__data dd{margin:0;font-size:clamp(1.6rem,2.6vw,2.6rem);font-weight:400;letter-spacing:-.03em;line-height:1}
.ekk-hero__data dt{font-size:11.5px;color:var(--ekk-muted);letter-spacing:.04em;margin-top:10px;line-height:1.35}
.ekk-hero__src{font-size:11px;color:var(--ekk-muted);letter-spacing:.05em;margin:14px 0 0}

/* Visualisation (onde / sphère de Bloch) */
.ekk-ring{fill:none;stroke:url(#ekk-vg);stroke-width:1;transform-box:view-box;transform-origin:320px 320px;opacity:0;animation:ekk-echo 9s cubic-bezier(.15,.55,.25,1) infinite}
.ekk-ring:nth-child(2){animation-delay:2.25s}
.ekk-ring:nth-child(3){animation-delay:4.5s}
.ekk-ring:nth-child(4){animation-delay:6.75s}
@keyframes ekk-echo{0%{transform:scale(.55);opacity:0}8%{opacity:.6}100%{transform:scale(4.3);opacity:0}}
.ekk-meridian{transform-box:view-box;transform-origin:320px 320px;animation:ekk-spin3d 10s ease-in-out infinite alternate}
@keyframes ekk-spin3d{0%{transform:scaleX(1)}100%{transform:scaleX(.04)}}
.ekk-state{transform-box:view-box;transform-origin:320px 320px;animation:ekk-precess 22s linear infinite}
@keyframes ekk-precess{to{transform:rotate(360deg)}}
.ekk-atom{fill:rgba(236,233,226,.22)}
.ekk-atom--on{fill:#22D3EE;animation:ekk-blink 3.4s ease-in-out infinite}
.ekk-atom--v{fill:#9B6CF5}
@keyframes ekk-blink{0%,100%{opacity:.15}50%{opacity:1}}
.ekk-wave{fill:none;stroke-width:1;animation:ekk-flow 6s linear infinite}
.ekk-wave--2{animation-duration:9s;animation-direction:reverse}
.ekk-wave--3{animation-duration:13s}
@keyframes ekk-flow{to{transform:translateX(-80px)}}

/* =========================================================
   Libellés de section
   ========================================================= */
.ekk-section{padding:clamp(80px,12vw,168px) 0 0}
.ekk-label{display:flex;align-items:baseline;gap:18px;font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--ekk-fg-2);margin:0 0 clamp(40px,6vw,80px)}
.ekk-label h2,.ekk-label h1{font:inherit;margin:0}
.ekk-label__num{color:var(--ekk-muted);letter-spacing:.1em}
.ekk-label__rule{flex:1;height:1px;background:var(--ekk-line);align-self:center;min-width:24px}
.ekk-label__aside{letter-spacing:.04em;text-transform:none;font-family:var(--ekk-serif);font-style:italic;font-size:15px;color:var(--ekk-muted)}

/* =========================================================
   Liste éditoriale asymétrique
   ========================================================= */
.ekk-stories{display:flex;flex-direction:column;gap:clamp(88px,11vw,170px)}
.ekk-story{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.4vw,40px);align-items:end}
.ekk-story__media{grid-column:1 / span 7;position:relative;overflow:hidden;display:block;background:var(--ekk-bg-3)}
.ekk-story__media img,.ekk-story__ph{width:100%;aspect-ratio:var(--ekk-ar,4/3);object-fit:cover}
.ekk-story__media img{filter:saturate(.62) brightness(.86) contrast(1.04);transform:scale(1.001);transition:filter .7s ease,transform 1.2s cubic-bezier(.2,.7,.2,1)}
.ekk-story__media::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:var(--ekk-grad);z-index:2;transform:scaleX(0);transform-origin:left;transition:transform .8s ease}
.ekk-story__media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(7,7,10,0) 55%,rgba(7,7,10,.45));pointer-events:none}
.ekk-story:hover .ekk-story__media img{filter:saturate(1) brightness(.95) contrast(1.04);transform:scale(1.025)}
.ekk-story:hover .ekk-story__media::before{transform:scaleX(1)}
.ekk-story__ph{display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 28% 38%,rgba(124,58,237,.34),transparent 55%),radial-gradient(circle at 78% 72%,rgba(34,211,238,.2),transparent 52%),var(--ekk-bg-3)}
.ekk-story__ph svg{width:22%;max-width:120px;height:auto;opacity:.55}
.ekk-story__body{grid-column:9 / span 4;padding-bottom:6px;min-width:0}
.ekk-story--r .ekk-story__media{grid-column:6 / span 7;grid-row:1}
.ekk-story--r .ekk-story__body{grid-column:1 / span 4;grid-row:1}
.ekk-story--top{align-items:start}
.ekk-story--wide .ekk-story__media{grid-column:1 / span 8}
.ekk-story--wide .ekk-story__body{grid-column:9 / span 4}
.ekk-story--narrow.ekk-story--r .ekk-story__media{grid-column:7 / span 6}
.ekk-story--narrow.ekk-story--r .ekk-story__body{grid-column:1 / span 5}
.ekk-story__num{display:flex;align-items:baseline;gap:10px;font-weight:300;line-height:.8;margin-bottom:28px}
.ekk-story__num b{font-weight:300;font-size:clamp(4.2rem,7.4vw,7.6rem);letter-spacing:-.06em;color:transparent;-webkit-text-stroke:1px rgba(236,233,226,.42);transition:-webkit-text-stroke-color .4s}
.ekk-story:hover .ekk-story__num b{-webkit-text-stroke-color:var(--ekk-cyan)}
.ekk-story__num span{font-size:13px;color:var(--ekk-muted);letter-spacing:.12em}
.ekk-rubric{display:inline-block;font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ekk-cyan);margin:0 0 14px}
.ekk-rubric--v{color:var(--ekk-violet-txt)}
.ekk-rubric a:hover{color:var(--ekk-fg)}
.ekk-story__title{font-weight:500;font-size:clamp(1.55rem,2.55vw,2.6rem);line-height:1.04;letter-spacing:-.025em;margin:0 0 18px;hyphens:auto}
.ekk-story__title a,.ekk-echo h3 a,.ekk-related__title a{background-image:var(--ekk-grad);background-size:0 1px;background-repeat:no-repeat;background-position:0 100%;transition:background-size .5s ease}
.ekk-story__title a:hover,.ekk-story__title a:focus-visible,.ekk-echo h3 a:hover,.ekk-related__title a:hover{background-size:100% 1px}
.ekk-story__dek{font-family:var(--ekk-serif);font-weight:300;font-size:1.13rem;line-height:1.5;color:var(--ekk-fg-2);margin:0}
.ekk-story__meta{font-size:12.5px;color:var(--ekk-muted);margin:20px 0 0;letter-spacing:.02em}
.ekk-story__meta b{color:var(--ekk-fg);font-weight:500}
.ekk-caption{font-size:11.5px;color:var(--ekk-muted);letter-spacing:.03em;margin-top:10px;line-height:1.45}

/* =========================================================
   Emplacements publicitaires (rendus seulement si une action est branchée)
   ========================================================= */
.ekk-pub{display:flex;flex-direction:column;align-items:center;gap:8px;margin:0 auto;max-width:100%}
.ekk-pub__label{font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--ekk-muted)}
.ekk-pub__slot{display:flex;align-items:center;justify-content:center;max-width:100%;overflow:hidden}
.ekk-pub--leader .ekk-pub__slot{width:728px;min-height:90px}
.ekk-pub--box .ekk-pub__slot{width:300px;min-height:250px}
.ekk-pub--inarticle{margin:2.2em auto}
.ekk-pub--top{padding:0 var(--ekk-gutter);margin:clamp(28px,4vw,48px) auto 0}
.ekk-pub--solo{padding:clamp(64px,8vw,110px) var(--ekk-gutter) 0}

/* =========================================================
   Dossier
   ========================================================= */
.ekk-dossier{position:relative;margin-top:clamp(110px,14vw,200px);background:var(--ekk-bg-2);border-top:1px solid var(--ekk-line);border-bottom:1px solid var(--ekk-line)}
.ekk-dossier__head{position:relative;min-height:min(86vh,760px);display:flex;align-items:flex-end;overflow:hidden;isolation:isolate}
.ekk-dossier__head--void{min-height:min(70vh,620px);background:radial-gradient(ellipse at 78% 20%,rgba(124,58,237,.28),transparent 60%),radial-gradient(ellipse at 95% 80%,rgba(34,211,238,.14),transparent 55%)}
.ekk-dossier__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:saturate(.8) brightness(.62)}
.ekk-dossier__head::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(12,12,17,.25) 0%,rgba(12,12,17,.55) 45%,var(--ekk-bg-2) 100%),linear-gradient(90deg,rgba(12,12,17,.7),rgba(12,12,17,0) 70%)}
.ekk-dossier__head .ekk-wrap{width:100%;padding-bottom:clamp(40px,6vw,80px)}
.ekk-dossier__head .ekk-label{margin-bottom:36px}
.ekk-tags{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 28px;padding:0;list-style:none}
.ekk-tag{display:inline-block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;padding:7px 12px;border:1px solid var(--ekk-line-2);border-radius:999px;color:var(--ekk-fg-2);background:rgba(7,7,10,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
a.ekk-tag:hover{color:var(--ekk-fg);border-color:rgba(236,233,226,.4)}
.ekk-tag--grad{border-color:transparent;background:linear-gradient(var(--ekk-bg-2),var(--ekk-bg-2)) padding-box,var(--ekk-grad) border-box;color:var(--ekk-fg)}
.ekk-dossier__title{font-weight:500;font-size:clamp(2.6rem,7.2vw,7.4rem);line-height:.92;letter-spacing:-.045em;margin:0;max-width:13ch;hyphens:auto}
.ekk-dossier__title--l{font-size:clamp(2.2rem,5vw,5.2rem);max-width:20ch;line-height:.98}
.ekk-dossier__title a:hover{color:#fff}
.ekk-dossier__dek{margin-top:32px;max-width:62ch}
.ekk-dossier__body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.4vw,40px);padding:clamp(56px,7vw,100px) 0 clamp(80px,10vw,140px)}
.ekk-longread{grid-column:2 / span 7;min-width:0}
.ekk-longread--teaser>p:first-of-type::first-letter{float:left;font-family:var(--ekk-sans);font-weight:400;font-size:4.9em;line-height:.78;margin:.06em .1em 0 -.03em;background:var(--ekk-grad);-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.ekk-longread .ekk-readmore{margin-top:2.4em;font-family:var(--ekk-sans)}
.ekk-aside{grid-column:10 / span 3;min-width:0}
.ekk-aside__sticky{position:sticky;top:calc(var(--ekk-header-h) + var(--ekk-adminbar) + 24px);display:flex;flex-direction:column;gap:48px}
.ekk-marks h3,.ekk-toc h3,.ekk-widget__title,.ekk-share__title{font-size:11.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--ekk-fg-2);font-weight:400;margin:0 0 18px;padding-bottom:14px;border-bottom:1px solid var(--ekk-line)}
.ekk-marks dl{margin:0}
.ekk-marks div{padding:16px 0;border-bottom:1px solid var(--ekk-line);display:flex;flex-direction:column-reverse}
.ekk-marks dd{margin:0;font-size:2rem;font-weight:400;letter-spacing:-.03em;line-height:1}
.ekk-marks dt{font-family:var(--ekk-serif);font-size:.98rem;color:var(--ekk-fg-2);margin-top:8px;line-height:1.4}
.ekk-marks small{display:block;font-family:var(--ekk-sans);font-size:11px;color:var(--ekk-muted);margin-top:6px;letter-spacing:.03em}
.ekk-toc{font-size:13.5px;color:var(--ekk-fg-2)}
.ekk-toc ol{list-style:none;padding:0;margin:0;counter-reset:ekk-t}
.ekk-toc li{counter-increment:ekk-t;padding:10px 0;border-bottom:1px solid var(--ekk-line);display:flex;gap:14px;line-height:1.4}
.ekk-toc li::before{content:counter(ekk-t,upper-roman);color:var(--ekk-muted);font-size:11px;letter-spacing:.1em;min-width:22px;padding-top:2px}
.ekk-toc a:hover{color:var(--ekk-fg)}

/* =========================================================
   Texte long (dossier, articles, pages)
   ========================================================= */
.ekk-prose{font-family:var(--ekk-serif);font-size:clamp(1.12rem,1.3vw,1.27rem);line-height:1.68;color:#D9D5CD;font-weight:350}
.ekk-prose>*{margin-top:0;margin-bottom:1.25em}
.ekk-prose>:last-child{margin-bottom:0}
.ekk-prose h2,.ekk-prose h3,.ekk-prose h4,.ekk-prose h5,.ekk-prose h6{font-family:var(--ekk-sans);font-weight:500;color:var(--ekk-fg);letter-spacing:-.02em;line-height:1.15}
.ekk-prose h2{font-size:clamp(1.45rem,2.1vw,1.95rem);margin:2.2em 0 .8em}
.ekk-prose h3{font-size:clamp(1.25rem,1.7vw,1.55rem);margin:2em 0 .7em}
.ekk-prose h4{font-size:12px;letter-spacing:.22em;text-transform:uppercase;color:var(--ekk-fg-2);font-weight:500;margin:2em 0 .8em}
.ekk-prose h5,.ekk-prose h6{font-size:1rem;margin:1.8em 0 .6em}
.ekk-prose a{color:var(--ekk-fg);text-decoration:underline;text-decoration-color:rgba(34,211,238,.55);text-decoration-thickness:1px;text-underline-offset:.18em;transition:text-decoration-color .2s}
.ekk-prose a:hover{text-decoration-color:var(--ekk-cyan)}
.ekk-prose a.ekk-cta{text-decoration:none}
.ekk-prose strong,.ekk-prose b{font-weight:600;color:var(--ekk-fg)}
.ekk-prose ul{padding:0;list-style:none}
.ekk-prose ul li{position:relative;padding-left:26px;margin-bottom:.6em}
.ekk-prose ul li::before{content:"";position:absolute;left:0;top:.8em;width:14px;height:1px;background:var(--ekk-grad)}
.ekk-prose ol{padding-left:1.6em}
.ekk-prose ol li{margin-bottom:.6em;padding-left:.3em}
.ekk-prose ol li::marker{color:var(--ekk-muted);font-family:var(--ekk-sans);font-size:.85em}
.ekk-prose li>ul,.ekk-prose li>ol{margin-top:.6em}
.ekk-prose blockquote,.ekk-pull{margin:2em 0;padding:0 0 0 28px;border-left:1px solid;border-image:linear-gradient(180deg,#7C3AED,#22D3EE) 1;font-family:var(--ekk-serif);font-style:italic;font-weight:300;font-size:clamp(1.4rem,2.2vw,2rem);line-height:1.3;color:var(--ekk-fg)}
.ekk-prose blockquote p{margin:0 0 .6em}
.ekk-prose blockquote p:last-of-type{margin-bottom:0}
.ekk-prose blockquote cite,.ekk-prose .wp-block-quote cite,.ekk-prose .wp-block-pullquote cite{display:block;margin-top:14px;font-family:var(--ekk-sans);font-style:normal;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ekk-muted)}
.ekk-prose .wp-block-pullquote{border:0;padding:0;margin:2.4em 0;text-align:left}
.ekk-prose .wp-block-pullquote blockquote{margin:0}
.ekk-prose figure{margin:2.2em 0}
.ekk-prose figure img{margin:0 auto}
.ekk-prose figcaption,.ekk-prose .wp-caption-text,.ekk-prose .wp-element-caption{font-family:var(--ekk-sans);font-size:12px;line-height:1.5;color:var(--ekk-muted);letter-spacing:.03em;margin-top:10px;text-align:left}
.ekk-prose img{height:auto}
.ekk-prose .wp-caption{max-width:100%}
.ekk-prose .alignleft{float:left;margin:.3em 1.6em 1em 0;max-width:50%}
.ekk-prose .alignright{float:right;margin:.3em 0 1em 1.6em;max-width:50%}
.ekk-prose .aligncenter{margin-left:auto;margin-right:auto}
.ekk-prose .alignwide,.ekk-prose .alignfull{max-width:none}
.ekk-prose::after{content:"";display:table;clear:both}
.ekk-prose table{width:100%;border-collapse:collapse;font-family:var(--ekk-sans);font-size:.88rem;line-height:1.45;font-weight:400}
.ekk-prose th,.ekk-prose td{padding:12px 14px;border-bottom:1px solid var(--ekk-line);text-align:left;vertical-align:top}
.ekk-prose th{color:var(--ekk-fg);font-weight:500;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase}
.ekk-prose thead th{border-bottom-color:var(--ekk-line-2)}
.ekk-prose tbody tr:hover{background:rgba(236,233,226,.02)}
.ekk-prose .wp-block-table{overflow-x:auto}
.ekk-prose .wp-block-table table{min-width:480px}
.ekk-prose code,.ekk-prose kbd{font-family:var(--ekk-mono);font-size:.8em;background:rgba(236,233,226,.06);padding:.15em .4em;border-radius:4px;color:var(--ekk-cyan)}
.ekk-prose pre{font-family:var(--ekk-mono);background:var(--ekk-bg-3);border:1px solid var(--ekk-line);border-top:1px solid transparent;border-image:none;padding:20px 22px;overflow-x:auto;font-size:.84rem;line-height:1.6;color:var(--ekk-fg-2);position:relative}
.ekk-prose pre::before{content:"";position:absolute;inset:-1px -1px auto -1px;height:1px;background:var(--ekk-grad)}
.ekk-prose pre code{background:none;padding:0;color:inherit;font-size:inherit}
.ekk-prose hr{border:0;height:1px;background:var(--ekk-line-2);margin:3em 0}
.ekk-prose .wp-block-separator{opacity:1}
.ekk-prose .wp-block-embed__wrapper iframe,.ekk-prose iframe{max-width:100%}
.ekk-prose .wp-block-button__link{display:inline-flex;align-items:center;height:42px;padding:0 20px;border:1px solid var(--ekk-line-2);border-radius:999px;background:transparent;color:var(--ekk-fg);font-family:var(--ekk-sans);font-size:14px;text-decoration:none}
.ekk-prose .wp-block-button__link:hover{border-color:rgba(34,211,238,.6);background:rgba(34,211,238,.06)}
.ekk-prose mark{background:rgba(124,58,237,.35);color:var(--ekk-fg);padding:0 .15em}
.ekk-prose sup,.ekk-prose sub{line-height:0}
.ekk-prose dl dt{font-family:var(--ekk-sans);font-weight:500;color:var(--ekk-fg)}
.ekk-prose dl dd{margin:0 0 1em}

/* =========================================================
   Chiffre de la semaine
   ========================================================= */
.ekk-figure{position:relative;overflow:hidden;isolation:isolate;padding:clamp(90px,12vw,170px) 0}
.ekk-figure__bg{position:absolute;inset:0;z-index:-2;opacity:.9;pointer-events:none;background:radial-gradient(ellipse at 72% 38%,rgba(124,58,237,.22),transparent 52%),radial-gradient(ellipse at 88% 72%,rgba(34,211,238,.12),transparent 48%)}
.ekk-figure__bg svg{position:absolute;right:-4%;top:50%;width:min(1100px,90vw);height:auto;transform:translateY(-50%);opacity:.5}
.ekk-figure::after{content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 70% 40%,rgba(7,7,10,.15),var(--ekk-bg) 74%)}
.ekk-figure__grid{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:end}
.ekk-figure__num{font-weight:300;font-size:clamp(7rem,25vw,23rem);line-height:.78;letter-spacing:-.07em;margin:0;white-space:nowrap}
.ekk-figure__num small{font-size:.42em;letter-spacing:-.02em;margin-left:.06em}
.ekk-figure__text p{font-family:var(--ekk-serif);font-weight:300;font-size:clamp(1.15rem,1.5vw,1.38rem);line-height:1.5;color:var(--ekk-fg-2);margin:0 0 1em}
.ekk-figure__text p strong{color:var(--ekk-fg);font-weight:500}
.ekk-bars{margin:30px 0 22px;display:flex;flex-direction:column;gap:16px}
.ekk-bar{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 14px;font-size:12.5px;color:var(--ekk-fg-2);letter-spacing:.02em}
.ekk-bar__track{grid-column:1/-1;height:6px;background:rgba(236,233,226,.06);position:relative;overflow:hidden}
.ekk-bar__fill{position:absolute;inset:0 auto 0 0;width:var(--ekk-w);background:var(--ekk-grad);transform-origin:left;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.ekk-bar__fill--muted{background:rgba(236,233,226,.4)}
.ekk-js .ekk-figure:not(.is-in) .ekk-bar__fill{transform:scaleX(0)}
.ekk-figure__text .ekk-source,.ekk-source{font-family:var(--ekk-sans);font-size:11.5px;color:var(--ekk-muted);letter-spacing:.03em;line-height:1.5;border-top:1px solid var(--ekk-line);padding-top:14px}

/* =========================================================
   Glossaire
   ========================================================= */
.ekk-gloss__head{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:end;margin-bottom:48px}
.ekk-gloss__title{font-weight:500;font-size:clamp(2.4rem,6vw,5.6rem);line-height:.92;letter-spacing:-.045em;margin:0}
.ekk-gloss__intro{font-family:var(--ekk-serif);font-style:italic;font-weight:300;color:var(--ekk-muted);font-size:1.1rem;margin:16px 0 0;max-width:48ch}
.ekk-filters{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}
.ekk-chip{height:34px;padding:0 15px;border-radius:999px;border:1px solid var(--ekk-line-2);background:transparent;font-size:12.5px;letter-spacing:.04em;color:var(--ekk-fg-2);cursor:pointer;transition:color .25s,background .25s,border-color .25s}
.ekk-chip:hover{color:var(--ekk-fg);border-color:rgba(236,233,226,.4)}
.ekk-chip[aria-pressed="true"]{color:var(--ekk-bg);background:var(--ekk-fg);border-color:var(--ekk-fg)}
.ekk-terms{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--ekk-line);border-left:1px solid var(--ekk-line)}
.ekk-term{padding:30px 28px 34px;border-right:1px solid var(--ekk-line);border-bottom:1px solid var(--ekk-line);position:relative;transition:background .3s;min-width:0}
.ekk-term:hover{background:rgba(236,233,226,.02)}
.ekk-term[hidden]{display:none}
.ekk-term__top{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:18px}
.ekk-term h3{font-weight:500;font-size:1.55rem;letter-spacing:-.02em;margin:0;line-height:1.1;hyphens:auto}
.ekk-term__cat{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--ekk-muted);white-space:nowrap}
.ekk-term p{font-family:var(--ekk-serif);font-weight:350;font-size:1.04rem;line-height:1.55;color:var(--ekk-fg-2);margin:0}
.ekk-term code{display:inline-block;font-family:var(--ekk-sans);font-size:.92rem;color:var(--ekk-cyan);margin-top:14px;letter-spacing:.02em}
.ekk-term__lit{position:absolute;left:-1px;top:-1px;width:42px;height:1px;background:var(--ekk-grad)}

/* =========================================================
   Échos (brèves) et résultats de recherche
   ========================================================= */
.ekk-echoes{border-top:1px solid var(--ekk-line)}
.ekk-echo{display:grid;grid-template-columns:140px 160px minmax(0,1fr) minmax(0,1.25fr);gap:clamp(16px,2.4vw,40px);padding:30px 0;border-bottom:1px solid var(--ekk-line);align-items:baseline}
.ekk-echo time{font-size:12.5px;color:var(--ekk-muted);letter-spacing:.06em}
.ekk-echo .ekk-rubric{margin:0}
.ekk-echo h3{font-weight:500;font-size:clamp(1.15rem,1.6vw,1.45rem);letter-spacing:-.015em;line-height:1.2;margin:0}
.ekk-echo__txt{font-family:var(--ekk-serif);font-weight:300;font-size:1.04rem;line-height:1.5;color:var(--ekk-fg-2);margin:0}

/* =========================================================
   Lettre
   ========================================================= */
.ekk-letter{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:end;padding:clamp(48px,6vw,80px) 0;border-top:1px solid var(--ekk-line);border-bottom:1px solid var(--ekk-line)}
.ekk-letter h2{font-weight:500;font-size:clamp(1.8rem,3.4vw,3.2rem);letter-spacing:-.035em;line-height:1;margin:0}
.ekk-letter p{font-family:var(--ekk-serif);font-weight:300;color:var(--ekk-fg-2);font-size:1.1rem;margin:14px 0 0}
.ekk-letter form{display:flex;gap:10px;border-bottom:1px solid var(--ekk-line-2);padding-bottom:10px}
.ekk-letter input{flex:1;min-width:0;background:none;border:0;color:var(--ekk-fg);font-size:15px;padding:10px 0}
.ekk-letter input::placeholder{color:var(--ekk-muted)}
.ekk-letter input:focus{outline:none}
.ekk-letter form:focus-within{border-bottom-color:var(--ekk-cyan)}
.ekk-letter .ekk-letter__msg{grid-column:2;font-family:var(--ekk-sans);font-size:13px;color:var(--ekk-cyan);margin:-24px 0 0;min-height:1.2em}

/* =========================================================
   Pied de page
   ========================================================= */
.ekk-foot{padding:64px 0 40px;margin-top:clamp(80px,10vw,140px)}
.ekk-foot__grid{display:flex;flex-wrap:wrap;justify-content:space-between;gap:28px 48px;align-items:flex-start}
.ekk-foot__tag{font-family:var(--ekk-serif);font-style:italic;font-weight:300;color:var(--ekk-muted);margin:16px 0 0;font-size:1.02rem}
.ekk-foot__side{display:flex;flex-direction:column;align-items:flex-end;gap:24px}
.ekk-foot__nav ul{display:flex;flex-wrap:wrap;gap:12px 28px;font-size:13px;color:var(--ekk-fg-2);list-style:none;margin:0;padding:0}
.ekk-foot__nav a:hover{color:var(--ekk-fg)}
.ekk-foot__legal{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin-top:56px;padding-top:22px;border-top:1px solid var(--ekk-line);font-size:11.5px;color:var(--ekk-muted);letter-spacing:.03em}
.ekk-foot__legal a:hover{color:var(--ekk-fg)}

/* Formulaire de recherche */
.ekk-search{display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--ekk-line-2);padding-bottom:8px;width:100%;max-width:420px}
.ekk-search:focus-within{border-bottom-color:var(--ekk-cyan)}
.ekk-search input{flex:1;min-width:0;background:none;border:0;color:var(--ekk-fg);font-size:15px;padding:8px 0;-webkit-appearance:none;appearance:none}
.ekk-search input::placeholder{color:var(--ekk-muted)}
.ekk-search input:focus{outline:none}
.ekk-search input::-webkit-search-cancel-button{filter:invert(1) opacity(.5)}
.ekk-search--big{max-width:760px}
.ekk-search--big input{font-size:clamp(1.2rem,2.2vw,1.6rem);padding:12px 0}

/* =========================================================
   Gabarits intérieurs (archives, recherche, pages, 404)
   ========================================================= */
.ekk-pagehead{padding:calc(var(--ekk-header-h) + var(--ekk-adminbar) + clamp(56px,9vw,130px)) 0 clamp(56px,7vw,100px);position:relative;overflow:hidden;isolation:isolate}
.ekk-pagehead::before{content:"";position:absolute;z-index:-1;right:-10vw;top:-20vw;width:min(70vw,900px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(124,58,237,.2),rgba(34,211,238,.04) 55%,transparent 70%)}
.ekk-pagehead .ekk-label{margin-bottom:clamp(28px,4vw,48px)}
.ekk-pagehead__title{font-weight:500;font-size:clamp(2.6rem,8vw,8rem);line-height:.92;letter-spacing:-.05em;margin:0;max-width:16ch;hyphens:auto}
.ekk-pagehead__title--s{font-size:clamp(2.2rem,5.4vw,5.2rem);max-width:22ch;line-height:.98}
.ekk-pagehead__desc{margin-top:28px}
.ekk-pagehead__desc p{margin:0 0 .6em}
.ekk-pagehead .ekk-search{margin-top:36px}
.ekk-count{font-size:12.5px;color:var(--ekk-muted);letter-spacing:.04em;margin:22px 0 0}

.ekk-empty{padding:clamp(40px,6vw,80px) 0;max-width:62ch}
.ekk-empty h2{font-weight:500;font-size:clamp(1.6rem,3vw,2.6rem);letter-spacing:-.03em;line-height:1.05;margin:0 0 16px}
.ekk-empty p{font-family:var(--ekk-serif);font-weight:300;font-size:1.15rem;line-height:1.55;color:var(--ekk-fg-2);margin:0 0 1em}
.ekk-rubrics{display:flex;flex-wrap:wrap;gap:10px;list-style:none;margin:28px 0 0;padding:0}

.ekk-pagination{margin-top:clamp(72px,9vw,130px);border-top:1px solid var(--ekk-line);padding-top:28px}
.ekk-pagination .nav-links{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.ekk-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:40px;padding:0 14px;border:1px solid var(--ekk-line-2);border-radius:999px;font-size:13px;color:var(--ekk-fg-2);transition:border-color .25s,color .25s}
.ekk-pagination a.page-numbers:hover{color:var(--ekk-fg);border-color:rgba(34,211,238,.6)}
.ekk-pagination .page-numbers.current{background:var(--ekk-fg);border-color:var(--ekk-fg);color:var(--ekk-bg)}
.ekk-pagination .page-numbers.dots{border-color:transparent}
.ekk-pagination .next{margin-left:auto}

/* =========================================================
   Article
   ========================================================= */
.ekk-article__head{padding:calc(var(--ekk-header-h) + var(--ekk-adminbar) + clamp(48px,8vw,120px)) 0 clamp(36px,5vw,64px);position:relative;isolation:isolate;overflow:hidden}
.ekk-article__head::before{content:"";position:absolute;z-index:-1;right:-14vw;top:-18vw;width:min(70vw,880px);aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(124,58,237,.18),rgba(34,211,238,.04) 55%,transparent 70%);pointer-events:none}
.ekk-article__head .ekk-kicker{margin-bottom:24px}
.ekk-article__title{font-weight:500;font-size:clamp(2.3rem,5.6vw,5.4rem);line-height:.98;letter-spacing:-.04em;margin:0;max-width:20ch;hyphens:auto}
.ekk-article__dek{margin-top:28px;max-width:62ch}
.ekk-article__head .ekk-byline{margin-top:28px;padding-top:22px;border-top:1px solid var(--ekk-line);max-width:880px}
.ekk-cover{margin:0}
.ekk-cover__img{position:relative;background:var(--ekk-bg-3);overflow:hidden}
.ekk-cover__img::before{content:"";position:absolute;inset:0 0 auto 0;height:1px;background:var(--ekk-grad);z-index:1}
.ekk-cover img{width:100%;max-height:82vh;object-fit:cover}
.ekk-cover figcaption{display:flex;flex-wrap:wrap;gap:4px 14px}
.ekk-article__body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:clamp(16px,2.4vw,40px);padding:clamp(48px,6vw,88px) 0 0}
.ekk-article__main{grid-column:2 / span 7;min-width:0}
.ekk-article__body--page .ekk-article__main{grid-column:3 / span 8}
.ekk-article__foot{margin-top:clamp(48px,6vw,72px);display:flex;flex-direction:column;gap:32px}
.ekk-share ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.ekk-share a,.ekk-share button{display:inline-flex;align-items:center;height:34px;padding:0 15px;border-radius:999px;border:1px solid var(--ekk-line-2);background:transparent;font-size:12.5px;letter-spacing:.04em;color:var(--ekk-fg-2);cursor:pointer;transition:color .25s,border-color .25s,background .25s}
.ekk-share a:hover,.ekk-share button:hover{color:var(--ekk-fg);border-color:rgba(34,211,238,.6);background:rgba(34,211,238,.06)}
.ekk-share__status{font-size:12px;color:var(--ekk-cyan);margin:10px 0 0;min-height:1.2em}
.ekk-article__tags{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.ekk-postnav{display:grid;grid-template-columns:1fr 1fr;gap:24px;border-top:1px solid var(--ekk-line);padding-top:28px}
.ekk-postnav a{display:block;font-weight:500;font-size:1.05rem;line-height:1.3;letter-spacing:-.01em}
.ekk-postnav span{display:block;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ekk-muted);margin-bottom:8px;font-weight:400}
.ekk-postnav a:hover{color:var(--ekk-cyan)}
.ekk-postnav__next{text-align:right}
.ekk-widget{font-size:14px;color:var(--ekk-fg-2)}
.ekk-widget ul{list-style:none;margin:0;padding:0}
.ekk-widget li{padding:9px 0;border-bottom:1px solid var(--ekk-line)}
.ekk-widget a:hover{color:var(--ekk-fg)}

/* Articles liés */
.ekk-related{padding-top:clamp(80px,10vw,140px)}
.ekk-related__grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(20px,2.4vw,40px)}
.ekk-related__card{min-width:0}
.ekk-related__card .ekk-story__media{margin-bottom:22px}
.ekk-related__card .ekk-story__media img,.ekk-related__card .ekk-story__ph{aspect-ratio:3/2}
.ekk-related__card:hover .ekk-story__media img{filter:saturate(1) brightness(.95) contrast(1.04);transform:scale(1.025)}
.ekk-related__card:hover .ekk-story__media::before{transform:scaleX(1)}
.ekk-related__title{font-weight:500;font-size:clamp(1.2rem,1.6vw,1.45rem);line-height:1.15;letter-spacing:-.02em;margin:0}

/* Commentaires */
.ekk-comments{padding-top:clamp(72px,9vw,120px)}
.ekk-comments__inner{max-width:760px}
.ekk-comments__list{list-style:none;margin:0 0 56px;padding:0;border-top:1px solid var(--ekk-line)}
.ekk-comments__list .children{list-style:none;margin:0;padding:0 0 0 clamp(16px,4vw,48px);border-left:1px solid var(--ekk-line)}
.ekk-comments__list .comment-body{padding:26px 0;border-bottom:1px solid var(--ekk-line)}
.ekk-comments__list .comment-meta{display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:12.5px;color:var(--ekk-muted);margin-bottom:12px}
.ekk-comments__list .comment-author{display:flex;align-items:center;gap:12px;color:var(--ekk-fg);font-size:14px}
.ekk-comments__list .comment-author .says{display:none}
.ekk-comments__list .avatar{border-radius:50%;filter:grayscale(.4)}
.ekk-comments__list .comment-metadata a:hover{color:var(--ekk-fg)}
.ekk-comments__list .comment-content{font-family:var(--ekk-serif);font-size:1.05rem;line-height:1.6;color:var(--ekk-fg-2)}
.ekk-comments__list .comment-content p{margin:0 0 .8em}
.ekk-comments__list .reply a,.ekk-comments__list .comment-edit-link{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ekk-cyan)}
.ekk-comments__list .bypostauthor>.comment-body .fn::after{content:" · Ekkotech";color:var(--ekk-muted);font-size:12px}
.ekk-comments .comment-awaiting-moderation{font-size:12.5px;color:var(--ekk-cyan)}
.comment-respond{margin-top:24px}
.comment-reply-title{font-weight:500;font-size:clamp(1.4rem,2.4vw,2rem);letter-spacing:-.03em;margin:0 0 18px}
.comment-reply-title small{margin-left:12px;font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.comment-reply-title small a{color:var(--ekk-cyan)}
.comment-form{display:grid;gap:18px}
.comment-form p{margin:0}
.comment-notes,.logged-in-as{font-size:13px;color:var(--ekk-muted)}
.comment-form label{display:block;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ekk-fg-2);margin-bottom:8px}
.comment-form input[type="text"],.comment-form input[type="email"],.comment-form input[type="url"],.comment-form textarea{width:100%;background:var(--ekk-bg-2);border:1px solid var(--ekk-line-2);border-radius:2px;padding:12px 14px;color:var(--ekk-fg);font-size:15px}
.comment-form input:focus,.comment-form textarea:focus{outline:none;border-color:var(--ekk-cyan)}
.comment-form .comment-form-cookies-consent{display:flex;gap:10px;align-items:flex-start}
.comment-form .comment-form-cookies-consent label{text-transform:none;letter-spacing:0;font-size:13px;color:var(--ekk-muted);margin:0}
.comment-form .submit{display:inline-flex;align-items:center;height:42px;padding:0 22px;border-radius:999px;border:1px solid var(--ekk-line-2);background:transparent;color:var(--ekk-fg);font-size:14px;letter-spacing:.02em;cursor:pointer;transition:border-color .25s,background .25s}
.comment-form .submit:hover{border-color:rgba(34,211,238,.6);background:rgba(34,211,238,.06)}
.ekk-comments__closed{font-size:13px;color:var(--ekk-muted)}
.ekk-comments .comment-navigation .nav-links{display:flex;justify-content:space-between;gap:16px;margin:-32px 0 48px;font-size:13px;color:var(--ekk-fg-2)}
.ekk-comments .comment-navigation a:hover{color:var(--ekk-cyan)}

/* 404 */
.ekk-lost{position:relative;min-height:100vh;min-height:100svh;display:flex;align-items:flex-end;padding:calc(var(--ekk-header-h) + var(--ekk-adminbar) + 40px) 0 clamp(48px,7vw,96px);overflow:hidden;isolation:isolate}
.ekk-lost .ekk-hero__viz{opacity:.85}
.ekk-lost__code{font-weight:300;font-size:clamp(7rem,26vw,22rem);line-height:.78;letter-spacing:-.07em;margin:0 0 clamp(24px,4vw,40px)}
.ekk-lost__title{font-weight:500;font-size:clamp(2rem,4.6vw,4.2rem);line-height:1;letter-spacing:-.04em;margin:0 0 20px}
.ekk-lost .ekk-search{margin-top:36px}

/* =========================================================
   Apparitions au défilement
   ========================================================= */
.ekk-js .ekk-reveal{opacity:0;transform:translateY(28px);transition:opacity 1s ease,transform 1.1s cubic-bezier(.2,.7,.2,1)}
.ekk-js .ekk-reveal.is-in{opacity:1;transform:none}

/* =========================================================
   Responsive
   ========================================================= */
@media (max-width:1340px){
  .ekk-top__date{display:none}
}
@media (max-width:1180px){
  .ekk-top__in{gap:24px}
  .ekk-nav__list{gap:16px;font-size:13px}
}
@media (max-width:1020px){
  .ekk-nav{position:fixed;left:0;right:0;top:calc(var(--ekk-header-h) + var(--ekk-adminbar));max-height:calc(100vh - var(--ekk-header-h) - var(--ekk-adminbar));overflow-y:auto;padding:12px var(--ekk-gutter) 28px;background:rgba(7,7,10,.97);border-bottom:1px solid var(--ekk-line);transform:translateY(-8px);opacity:0;visibility:hidden;transition:opacity .3s,transform .3s,visibility .3s;margin:0}
  .ekk-nav__list{flex-direction:column;gap:0;font-size:20px}
  .ekk-nav__list a{padding:14px 0;border-bottom:1px solid var(--ekk-line)}
  .ekk-nav__list a::after{display:none}
  .ekk-menu-open .ekk-nav{opacity:1;visibility:visible;transform:none}
  .ekk-burger{display:inline-flex}
  .ekk-top__tools{margin-left:auto}
  .ekk-hero__foot{grid-template-columns:1fr;gap:36px}
  .ekk-hero__viz{width:min(92vw,640px);right:-18vw;top:38%}
  .ekk-story,.ekk-story--r,.ekk-story--wide,.ekk-story--narrow.ekk-story--r{row-gap:28px}
  .ekk-story .ekk-story__media,.ekk-story--r .ekk-story__media,.ekk-story--wide .ekk-story__media,.ekk-story--narrow.ekk-story--r .ekk-story__media{grid-column:1 / -1;grid-row:1}
  .ekk-story .ekk-story__body,.ekk-story--wide .ekk-story__body{grid-column:1 / span 10;grid-row:2}
  .ekk-story--r .ekk-story__body,.ekk-story--narrow.ekk-story--r .ekk-story__body{grid-column:3 / -1;grid-row:2}
  .ekk-longread,.ekk-article__main,.ekk-article__body--page .ekk-article__main{grid-column:1 / -1}
  .ekk-aside{grid-column:1 / -1;margin-top:48px}
  .ekk-aside__sticky{position:static;display:grid;grid-template-columns:1fr 1fr;align-items:start}
  .ekk-figure__grid{grid-template-columns:1fr}
  .ekk-terms{grid-template-columns:repeat(2,minmax(0,1fr))}
  .ekk-echo{grid-template-columns:110px minmax(0,1fr);row-gap:10px}
  .ekk-echo h3,.ekk-echo__txt{grid-column:2}
  .ekk-related__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  :root{--ekk-header-h:64px}
  .ekk-brand__word{font-size:12.5px;letter-spacing:.38em;margin-right:-.38em}
  .ekk-brand svg{width:30px;height:30px}
  .ekk-top__in{gap:16px}
  .ekk-top__tools .ekk-btn{display:none}
  .ekk-hero{padding-bottom:36px}
  .ekk-hero__viz{width:118vw;right:-46vw;top:24%;opacity:.5}
  .ekk-kicker{font-size:10.5px;letter-spacing:.18em;margin-bottom:22px}
  .ekk-hero__data{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:22px;border-left:0}
  .ekk-hero__data div{padding-left:0;border-right:0}
  .ekk-hero__data div:nth-child(2n){padding-left:18px;border-left:1px solid var(--ekk-line)}
  .ekk-label{flex-wrap:wrap;row-gap:8px}
  .ekk-label__aside{flex-basis:100%;order:4}
  .ekk-story__media img,.ekk-story__ph{aspect-ratio:4/3}
  .ekk-story .ekk-story__body,.ekk-story--r .ekk-story__body,.ekk-story--wide .ekk-story__body,.ekk-story--narrow.ekk-story--r .ekk-story__body{grid-column:1 / -1}
  .ekk-story__num{margin-bottom:18px}
  .ekk-aside__sticky{grid-template-columns:1fr}
  .ekk-aside .ekk-pub{align-items:flex-start}
  .ekk-gloss__head{grid-template-columns:1fr}
  .ekk-filters{justify-content:flex-start}
  .ekk-terms{grid-template-columns:1fr}
  .ekk-term{padding:26px 20px 30px}
  .ekk-echo{grid-template-columns:1fr;row-gap:8px}
  .ekk-echo h3,.ekk-echo__txt{grid-column:1}
  .ekk-letter{grid-template-columns:1fr}
  .ekk-letter .ekk-letter__msg{grid-column:1;margin-top:-28px}
  .ekk-longread--teaser>p:first-of-type::first-letter{font-size:4.2em}
  .ekk-prose blockquote,.ekk-pull{padding-left:18px}
  .ekk-prose .alignleft,.ekk-prose .alignright{float:none;margin:1.6em 0;max-width:100%}
  .ekk-prose table:not(.wp-block-table table){display:block;overflow-x:auto}
  .ekk-related__grid{grid-template-columns:1fr}
  .ekk-postnav{grid-template-columns:1fr}
  .ekk-postnav__next{text-align:left}
  .ekk-foot__side{align-items:flex-start;width:100%}
  .ekk-pagination .next{margin-left:0}
}
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .ekk-ring{opacity:.18}
  .ekk-ring:nth-child(2){transform:scale(1.8)}
  .ekk-ring:nth-child(3){transform:scale(2.8)}
  .ekk-ring:nth-child(4){transform:scale(3.8)}
  .ekk-atom--on{opacity:.8}
  .ekk-js .ekk-reveal{opacity:1;transform:none}
  .ekk-js .ekk-figure:not(.is-in) .ekk-bar__fill{transform:none}
}
@media print{
  .ekk-top,.ekk-foot,.ekk-pub,.ekk-share,.ekk-related,.ekk-comments,.ekk-hero__viz,.ekk-aside{display:none!important}
  body,html{background:#fff;color:#000}
  .ekk-js .ekk-reveal{opacity:1;transform:none}
}
