/* ------------------------------------------------------------------
   Minddex, socle du theme
   Charge sur tout le site. Volontairement court : les pages Elementor
   ne doivent recevoir que l'entete, le pied de page et les variables.
------------------------------------------------------------------ */

@font-face{font-family:'FK Grotesk';src:url('../fonts/FKGrotesk-Regular.woff2') format('woff2');font-weight:400;font-display:swap}
@font-face{font-family:'FK Grotesk';src:url('../fonts/FKGrotesk-Medium.woff2') format('woff2');font-weight:500;font-display:swap}
@font-face{font-family:'FK Grotesk';src:url('../fonts/FKGrotesk-Bold.woff2') format('woff2');font-weight:700;font-display:swap}

:root{
  --noir:#04050F;
  --encre:#0A0C1E;
  --trait:rgba(238,240,255,.14);
  --blanc:#FFFFFF;
  --txt:#E8EAF7;
  --txt2:#9AA0BF;
  --txt3:#6E7496;
  --violet:#7C3AED;
  --fuchsia:#DF7AFE;
  --cyan:#22D3EE;
  --degrade:linear-gradient(135deg,#05060F 0%,#161C55 48%,#4A1C96 100%);
  --wrap:1320px;
  --pad:48px;
  --entete:96px;
  --f:'FK Grotesk','Archivo',system-ui,-apple-system,'Segoe UI',sans-serif;
  --fs:'Instrument Serif',Georgia,serif;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;font-family:var(--f);line-height:1.5;-webkit-font-smoothing:antialiased;overflow-x:hidden}
/* le fond sombre ne s'applique qu'aux gabarits du theme, jamais aux pages Elementor */
body.mx-theme{background:var(--noir);color:var(--txt);padding-top:env(safe-area-inset-top,0px)}
img{max-width:100%;height:auto}
.mx-saut{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden}
.mx-saut:focus{left:16px;top:16px;width:auto;height:auto;padding:12px 18px;background:var(--blanc);color:var(--noir);z-index:99;border-radius:6px}
.mx-wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding-inline:var(--pad)}

/* boutons partages */
.mx-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:clamp(48px,6.4vh,56px);padding:0 26px;border:0;border-radius:6px;
  font-family:var(--f);font-size:16px;font-weight:600;cursor:pointer;text-decoration:none;
  transition:background-color .18s,color .18s,border-color .18s}
.mx-btn--p{background:var(--blanc);color:var(--noir)}
.mx-btn--p:hover{background:var(--fuchsia);color:var(--noir)}
.mx-btn--f{background:transparent;color:var(--blanc);border:1px solid rgba(238,240,255,.35);font-weight:500}
.mx-btn--f:hover{border-color:var(--blanc);background:rgba(238,240,255,.06)}
.mx-btn--sm{height:46px;padding:0 18px;font-size:14px;border-radius:5px}

/* entete */
.mx-header{position:fixed;top:0;left:0;right:0;z-index:40;display:block;
  background:var(--noir);border-bottom:1px solid var(--trait)}
@supports ((-webkit-backdrop-filter:blur(2px)) or (backdrop-filter:blur(2px))){
  .mx-header{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);
    background:linear-gradient(180deg,rgba(4,5,15,.94),rgba(4,5,15,.6))}
}
.mx-header .in{width:100%;min-height:var(--entete);display:flex;align-items:center;justify-content:space-between;gap:24px;max-width:var(--wrap);margin:0 auto;padding:12px var(--pad)}
body.admin-bar{--entete:96px}
body.admin-bar .mx-header{top:32px}
@media screen and (max-width:782px){body.admin-bar .mx-header{top:46px}}
.mx-secours{list-style:none;display:flex;gap:28px;margin:0;padding:0}
.mx-menu-mobile .mx-secours{flex-direction:column;gap:0;padding:12px var(--pad) 24px}
.mx-menu-mobile .mx-secours a{display:block;padding:12px 0;font-size:18px;color:var(--txt);border-bottom:1px solid var(--trait)}
.mx-logo img{height:52px;width:auto;display:block}
.mx-nav{display:flex;align-items:center;gap:28px}
.mx-nav ul{list-style:none;display:flex;gap:28px;margin:0;padding:0}
.mx-nav a{color:var(--txt2);text-decoration:none;font-size:15px;transition:color .18s}
.mx-nav a::first-letter,.mx-menu-mobile a::first-letter{text-transform:uppercase}
.mx-nav a:hover,.mx-nav .current-menu-item>a,.mx-nav .current-menu-ancestor>a{color:var(--blanc)}
/* le selecteur de langue du menu est masque : on garde le notre, compact */
.mx-nav .pll-parent-menu-item,.mx-nav .lang-item,.mx-menu-mobile .pll-parent-menu-item,.mx-menu-mobile .lang-item{display:none}
.mx-nav li{position:relative}
.mx-nav .sub-menu{position:absolute;top:calc(100% + 10px);left:-12px;min-width:170px;flex-direction:column;gap:2px;
  padding:8px;margin:0;list-style:none;border-radius:8px;background:var(--encre);border:1px solid var(--trait);
  box-shadow:0 24px 50px -20px rgba(0,0,0,.8);display:none;z-index:5}
.mx-nav li:hover>.sub-menu,.mx-nav li:focus-within>.sub-menu{display:flex}
.mx-nav .sub-menu a{display:block;padding:9px 12px;border-radius:5px;font-size:14px}
.mx-nav .sub-menu a:hover{background:rgba(238,240,255,.07);color:var(--blanc)}
.mx-nav .menu-item-has-children>a::after,.mx-nav .pll-parent-menu-item>a::after{content:"";display:inline-block;width:5px;height:5px;margin-left:8px;
  border-right:1.4px solid currentColor;border-bottom:1.4px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.mx-nav img,.mx-menu-mobile img{height:11px;width:auto;margin-right:7px;display:inline-block;vertical-align:baseline}
.mx-menu-mobile .sub-menu{list-style:none;margin:0;padding:0 0 0 16px}
.mx-menu-mobile .sub-menu a{font-size:16px;color:var(--txt2)}
.mx-droite{display:flex;align-items:center;gap:18px}
.mx-langues{display:flex;gap:10px;list-style:none;margin:0;padding:0;font-size:13px}
.mx-langues a{color:var(--txt3);text-decoration:none}
.mx-langues .current-lang a,.mx-langues a:hover{color:var(--blanc)}
.mx-burger{display:none;width:46px;height:46px;align-items:center;justify-content:center;border:1px solid var(--trait);
  border-radius:5px;background:transparent;color:var(--blanc);cursor:pointer}
.mx-menu-mobile{display:none;width:100%;border-top:1px solid var(--trait);background:var(--noir);
  max-height:calc(100vh - var(--entete));overflow-y:auto;-webkit-overflow-scrolling:touch}
.mx-menu-mobile.on{display:block}
.mx-menu-mobile ul{list-style:none;margin:0;padding:12px var(--pad) 24px;display:flex;flex-direction:column;gap:6px}
.mx-menu-mobile a{display:block;padding:12px 0;color:var(--txt);text-decoration:none;font-size:18px;border-bottom:1px solid var(--trait)}

/* pied de page */
.mx-footer{background:var(--noir);color:var(--txt2);border-top:1px solid var(--trait)}
.mx-footer a{color:var(--txt2);text-decoration:none}
.mx-footer a:hover{color:var(--blanc)}
.mx-footer .cols{display:grid;grid-template-columns:minmax(0,4fr) repeat(3,minmax(0,2fr));gap:32px;padding-block:56px 40px}
.mx-footer h2{margin:0 0 14px;font-size:14px;font-weight:600;color:var(--blanc)}
.mx-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px;font-size:14px}
.mx-footer .pitch{margin:16px 0 0;max-width:320px;font-size:14px;line-height:1.6}
.mx-footer .bas{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-block:22px 36px;border-top:1px solid var(--trait);font-size:13px;color:var(--txt3)}

/* contenu editorial : pages et articles */
.mx-main{padding-top:calc(var(--entete) + clamp(16px,4vh,48px))}
.mx-entete-page{padding-block:clamp(40px,7vw,90px) clamp(24px,4vw,48px);border-bottom:1px solid var(--trait)}
.mx-entete-page h1{margin:0;font-size:clamp(34px,5.4vw,76px);font-weight:500;letter-spacing:-.04em;line-height:.98;color:var(--blanc)}
.mx-fil{margin:0 0 20px;font-size:13px;color:var(--txt3);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.mx-fil a{color:var(--txt2);text-decoration:none}
.mx-fil a:hover{color:var(--blanc)}
.mx-fil span[aria-current]{color:var(--txt3)}
.mx-proches{max-width:var(--wrap);padding-top:clamp(40px,5vw,64px);border-top:1px solid var(--trait)}
.mx-proches h2{margin:0;font-size:clamp(22px,2.4vw,30px);font-weight:500;letter-spacing:-.03em;color:var(--blanc)}
.mx-proches .mx-grille{padding-block:28px clamp(48px,6vw,80px)}
.mx-meta{margin-top:18px;display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--txt3)}
.mx-prose{max-width:74ch;padding-block:clamp(32px,5vw,64px);font-size:17px;line-height:1.75;color:var(--txt2)}
.mx-prose h2{margin:52px 0 16px;font-size:clamp(24px,3vw,38px);font-weight:500;letter-spacing:-.03em;line-height:1.1;color:var(--blanc)}
.mx-prose h3{margin:36px 0 12px;font-size:21px;font-weight:600;color:var(--blanc)}
.mx-prose p{margin:0 0 20px}
.mx-prose a{color:var(--blanc);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--fuchsia)}
.mx-prose ul,.mx-prose ol{margin:0 0 22px;padding-left:20px}
.mx-prose li{margin-bottom:8px}
.mx-prose img,.mx-prose figure{border-radius:8px;margin:28px 0}
.mx-prose blockquote{margin:28px 0;padding-left:22px;border-left:2px solid var(--fuchsia);font-family:var(--fs);font-size:24px;line-height:1.2;color:var(--blanc)}
.mx-prose code{background:var(--encre);padding:2px 6px;border-radius:4px;font-size:15px}
.mx-prose table{width:100%;border-collapse:collapse;margin:28px 0;font-size:15px}
.mx-prose th,.mx-prose td{border-bottom:1px solid var(--trait);padding:12px 10px;text-align:left}

/* auteur, pour la credibilite lue par les IA */
.mx-auteur{display:flex;gap:18px;align-items:flex-start;padding:26px 0;border-top:1px solid var(--trait);border-bottom:1px solid var(--trait);max-width:74ch}
.mx-auteur img{border-radius:999px;width:56px;height:56px;object-fit:cover}
.mx-auteur .nom{color:var(--blanc);font-weight:600}
.mx-auteur p{margin:6px 0 0;font-size:14px;line-height:1.6;color:var(--txt2)}

/* listes d'articles */
.mx-chapo{margin:20px 0 0;max-width:58ch;font-size:clamp(16px,1.6vw,19px);line-height:1.6;color:var(--txt2)}
.mx-grille{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(40px,4vw,56px) 32px;padding-block:clamp(36px,5vw,72px)}
.mx-carte{display:flex;flex-direction:column;gap:12px;text-decoration:none}
.mx-carte .vignette{aspect-ratio:16/10;border-radius:8px;overflow:hidden;background:var(--encre);display:block}
.mx-carte .vignette img{width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.mx-carte:hover .vignette img{transform:scale(1.03)}
.mx-carte .cat{font-size:12px;letter-spacing:.01em;color:var(--txt3);transition:color .2s}
.mx-carte:hover .cat{color:var(--fuchsia)}
.mx-carte .titre{font-size:18px;font-weight:500;line-height:1.3;letter-spacing:-.02em;color:var(--blanc)}
/* les extraits alourdissent la grille : reserves a l'article en une */
.mx-carte .extrait{display:none}
.mx-carte--une .extrait{display:block;font-size:17px;line-height:1.65;color:var(--txt2);max-width:52ch}
.mx-carte .date{margin-top:auto;font-size:13px;color:var(--txt3)}
/* le premier article passe en pleine largeur */
.mx-carte--une{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:40px;align-items:center;
  padding-bottom:44px;border-bottom:1px solid var(--trait)}
.mx-carte--une .vignette{grid-row:1 / 5;aspect-ratio:16/9}
.mx-carte--une .titre{font-size:clamp(24px,2.6vw,36px);font-weight:500;line-height:1.08;letter-spacing:-.03em}
.mx-carte--une .date{margin-top:0}
.mx-pagination{padding-bottom:clamp(56px,8vw,96px)}
.mx-pagination ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.mx-pagination li{list-style:none}
.mx-pagination a,.mx-pagination span{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;padding:0 14px;
  border:1px solid var(--trait);border-radius:6px;font-size:14px;color:var(--txt2);text-decoration:none;transition:border-color .2s,color .2s}
.mx-pagination a:hover{border-color:var(--blanc);color:var(--blanc)}
.mx-pagination .current{background:var(--blanc);color:var(--noir);border-color:var(--blanc)}
.mx-pagination .dots{border-color:transparent}

/* apparitions communes */
.anim{opacity:0;transform:translateY(22px);transition:opacity .75s cubic-bezier(.2,.75,.2,1),transform .75s cubic-bezier(.2,.75,.2,1);transition-delay:var(--d,0s)}
.anim.vu{opacity:1;transform:none}

@media (max-width:1080px){
  .mx-footer .cols{grid-template-columns:1fr 1fr}
  .mx-grille{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mx-carte--une{grid-template-columns:1fr;gap:18px}
  .mx-carte--une .vignette{grid-row:auto}
}
@media (max-width:860px){
  :root{--pad:20px;--entete:72px}
  .mx-header .in{padding:8px var(--pad);gap:12px}
  .mx-menu-mobile ul,.mx-menu-mobile .mx-secours{padding:8px var(--pad) 20px}
  .mx-droite{gap:12px}
  .mx-langues{font-size:12px}
  h1,h2,h3{overflow-wrap:anywhere}
  .mx-nav,.mx-droite .mx-btn{display:none}
  .mx-burger{display:inline-flex}
  .mx-logo img{height:40px}
  .mx-grille{grid-template-columns:1fr}
  .mx-footer .cols{grid-template-columns:1fr;gap:28px}
}
@media (prefers-reduced-motion:reduce){
  .anim{opacity:1;transform:none;transition:none}
}
