  :root {
    --bg: #ffffff;
    --bg2: #f7f7f9;
    --bg3: #ffffff;
    --bg4: #f0f0f4;
    --bgH: #f4f4f8;
    --t1: #111118;
    --t2: #55556a;
    --t3: #9494aa;
    --red: #d6002a;
    --yellow: rgb(215, 230, 38);
    --bdr: #e4e4ec;
    --bdrH: #d0d0dc;
    --shadow: 0 1px 3px rgba(0,0,0,0.04), 0 1px 2px rgba(0,0,0,0.03);
    --shadowH: 0 4px 12px rgba(0,0,0,0.06);
  }
  * { margin:0; padding:0; box-sizing:border-box; }
  body, #root { background:var(--bg2); color:var(--t1); font-family:'DM Sans',sans-serif; -webkit-font-smoothing:antialiased; }
  a { color:inherit; text-decoration:none; }

  .w { max-width:1340px; margin:0 auto; padding:0 20px; }

  /* État de chargement (évite d'afficher les contenus exemples avant les vrais) */
  .content-loading { color: var(--t3); font-size: 13px; padding: 24px 16px; text-align: center; min-height: 80px; display: flex; align-items: center; justify-content: center; }
  .content-loading::after { content: ''; display: inline-block; width: 18px; height: 18px; margin-left: 8px; border: 2px solid var(--bdr); border-top-color: var(--red); border-radius: 50%; animation: content-load-spin 0.7s linear infinite; }
  @keyframes content-load-spin { to { transform: rotate(360deg); } }
  .shorts-grid .content-loading { min-width: 100%; }

  /* THUMB PLACEHOLDERS */
  .thumb, .thumb-md, .thumb-sm { display:flex; align-items:center; justify-content:center; position:relative; overflow:hidden; flex-shrink:0; }
  .thumb-md { width:96px; height:64px; border-radius:6px; }
  .thumb-sm { width:72px; height:48px; border-radius:6px; }
  .thumb-inner { position:absolute; inset:0; opacity:0.1; background-image:repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(0,0,0,0.08) 8px, rgba(0,0,0,0.08) 9px); }

  /* HEADER */
  .hdr { position:sticky; top:0; z-index:100; background:rgba(255,255,255,0.96); backdrop-filter:blur(14px); border-bottom:1px solid var(--bdr); }
  .hdr-in { display:flex; align-items:center; justify-content:space-between; height:54px; }
  .hdr-logo { display:flex; align-items:center; }
  .hdr-logo-box {
    height:36px; padding:0 6px; display:flex; align-items:center; justify-content:center; overflow:visible;
  }
  .hdr-logo-box .hdr-logo-img { height:28px; width:auto; max-width:220px; display:block; object-fit:contain; }
  .hdr-nav { display:flex; gap:2px; align-items:center; }
  .hdr-nav a {
    font-size:11px; font-weight:700; color:var(--t3); padding:6px 10px; border-radius:6px;
    transition:all .2s; letter-spacing:.6px; font-family:'JetBrains Mono',monospace;
  }
  .hdr-nav a:hover { color: var(--t1); background: rgba(215, 230, 38, 0.25); }
  .hdr-nav a.act { color: #000; background: rgb(215, 230, 38); }
  .hdr-nav .hdr-nav-home-icon { display: inline-flex; align-items: center; justify-content: center; }
  .hdr-nav .hdr-nav-home-icon svg { display: block; vertical-align: middle; }
  .hdr-nav .sep { width:1px; height:20px; background:var(--bdr); margin:0 6px; }
  .hdr-dropdown { position:relative; }
  .hdr-dropdown-toggle {
    display:inline-flex; align-items:center;
    font-size:11px; font-weight:700; color:var(--t3); padding:6px 10px; border-radius:6px;
    transition:all .2s; letter-spacing:.6px; font-family:'JetBrains Mono',monospace;
    cursor:default; text-decoration:none; pointer-events:none;
  }
  .hdr-dropdown:hover .hdr-dropdown-toggle { color: var(--t1); background: rgba(215, 230, 38, 0.25); }
  .hdr-dropdown-menu {
    position:absolute; top:100%; left:0; margin-top:0; min-width:180px;
    background:var(--bg3); border:1px solid var(--bdr); border-radius:8px; box-shadow:var(--shadowH);
    padding:10px 0 6px 0; display:none; z-index:200;
  }
  .hdr-dropdown:hover .hdr-dropdown-menu { display:block; }
  .hdr-dropdown-menu a {
    display:block; padding:8px 14px; font-size:11px; font-weight:600; color:var(--t1);
    text-transform:uppercase; letter-spacing:.6px; font-family:'JetBrains Mono',monospace;
    white-space:nowrap;
  }
  .hdr-dropdown-menu a:hover { background:var(--bg4); color:var(--red); }

  /* Menu mobile (hamburger + panneau) */
  .hdr-mobile-toggle {
    display: none;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    padding: 0;
    margin: 0 -6px 0 0;
    background: transparent;
    border: none;
    border-radius: 8px;
    color: var(--t1);
    cursor: pointer;
    transition: background .2s, color .2s;
  }
  .hdr-mobile-toggle:hover { background: rgba(215, 230, 38, 0.25); color: var(--t1); }
  .hdr-mobile-toggle svg { display: block; }
  .hdr-mobile-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,0.4);
    z-index: 150;
    opacity: 0;
    visibility: hidden;
    transition: opacity .25s ease, visibility .25s ease;
  }
  .hdr-mobile-overlay.is-open {
    opacity: 1;
    visibility: visible;
  }
  .hdr-mobile-menu {
    position: fixed;
    top: 0;
    right: 0;
    width: min(320px, 85vw);
    max-width: 100%;
    height: 100vh;
    background: var(--bg3);
    border-left: 1px solid var(--bdr);
    box-shadow: -4px 0 24px rgba(0,0,0,0.08);
    z-index: 160;
    padding: 60px 0 24px 0;
    overflow-y: auto;
    transform: translateX(100%);
    transition: transform .25s ease;
  }
  .hdr-mobile-menu.is-open { transform: translateX(0); }
  .hdr-mobile-menu-close {
    position: absolute;
    top: 12px;
    right: 12px;
    width: 40px;
    height: 40px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent;
    border: none;
    border-radius: 8px;
    color: var(--t2);
    cursor: pointer;
    font-size: 1.5rem;
    line-height: 1;
    transition: background .2s, color .2s;
  }
  .hdr-mobile-menu-close:hover { background: var(--bg4); color: var(--t1); }
  .hdr-mobile-menu a {
    display: block;
    padding: 12px 20px;
    font-size: 14px;
    font-weight: 600;
    color: var(--t1);
    font-family: 'JetBrains Mono', monospace;
    letter-spacing: .5px;
    border-bottom: 1px solid var(--bdr);
    transition: background .2s, color .2s;
  }
  .hdr-mobile-menu a:hover { background: rgba(215, 230, 38, 0.2); color: var(--t1); }
  .hdr-mobile-menu .hdr-mobile-group-label {
    display: block;
    padding: 14px 20px 8px;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 1px;
    color: var(--t3);
    font-family: 'JetBrains Mono', monospace;
  }
  .hdr-mobile-menu .hdr-mobile-group-label:first-of-type { padding-top: 8px; }

  /* Bandeau fil d'Ariane / AI War Room (même hauteur partout, bouton à droite) */
  .art-v2-breadcrumb-bar {
    background: #f5f5f7;
    border-bottom: 1px solid #e4e4ec;
  }
  .art-v2-breadcrumb-bar .w {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 16px;
    min-height: 44px;
  }
  .art-v2-breadcrumb {
    font-family: 'DM Sans', sans-serif;
    font-size: 13px;
    padding: 14px 0 12px;
    color: #7a7a7a;
  }
  .art-v2-breadcrumb-sep { margin: 0 8px; color: #7a7a7a; }
  .art-v2-breadcrumb-current { color: #31548e; font-weight: 500; }
  .art-v2-war-room-btn {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 14px;
    background: #fce4ec;
    color: #c62828;
    font-size: 12px;
    font-weight: 700;
    font-family: 'JetBrains Mono', monospace;
    text-decoration: none;
    border-radius: 8px;
    border: none;
    cursor: pointer;
    transition: background .2s, color .2s;
    white-space: nowrap;
  }
  .art-v2-war-room-btn:hover {
    background: #f8bbd0;
    color: #b71c1c;
  }

  /* SHORTS + BREAKING ROW */
  .top-row { display:grid; grid-template-columns:1fr 320px; gap:20px; padding:20px 0; }

  .sh { display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
  .stitle { font-family:'Space Mono',monospace; font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:2px; color:var(--t3); }
  .stitle b { color: var(--yellow); }
  .slink { font-size:10px; color:var(--t3); transition:color .2s; cursor:pointer; }
  .slink:hover { color:var(--red); }

  .shorts-footer {
    display:none;
  }

  .shorts-express-wrap {
    display: inline-block;
    width: fit-content;
    max-width: 100%;
  }

  .shorts-grid { display:flex; flex-wrap:wrap; align-content:flex-start; gap:14px; overflow-x:auto; scrollbar-width:none; }
  .shorts-grid::-webkit-scrollbar { display:none; }
  .short-c {
    flex-shrink:0; width:172px; height:258px; border-radius:10px;
    overflow:hidden; position:relative; cursor:pointer; transition:all .2s;
    box-shadow:var(--shadow);
  }
  .short-c:hover { transform:translateY(-3px); box-shadow:var(--shadowH); }
  .short-bg { position:absolute; inset:0; }
  .short-play {
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:30px; height:30px; background: rgba(214, 0, 42, 0.85); border-radius:50%;
    display:flex; align-items:center; justify-content:center;
  }
  .short-play::after { content:''; width:0; height:0; border-left:8px solid #fff; border-top:5px solid transparent; border-bottom:5px solid transparent; margin-left:2px; }
  .short-meta { position:absolute; bottom:0; left:0; right:0; padding:6px 8px; background:linear-gradient(transparent,rgba(0,0,0,.82)); }
  .short-tag { font-family:'JetBrains Mono',monospace; font-size:7px; font-weight:700; color:#ff6b82; text-transform:uppercase; letter-spacing:.7px; margin-bottom:2px; }
  .short-t { font-size:9px; font-weight:600; color:#fff; line-height:1.3; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .short-dur { position:absolute; top:6px; right:6px; background:rgba(0,0,0,.55); color:#fff; font-family:'JetBrains Mono',monospace; font-size:8px; padding:1px 5px; border-radius:3px; }

  .shorts-link-cell {
    display:flex;
    align-items:flex-end;
    margin-top:6px;
    margin-left:auto;
  }

  /* BREAKING */
  .brk { background:var(--bg3); border-radius:12px; border:1px solid var(--bdr); overflow:hidden; height:100%; display:flex; flex-direction:column; box-shadow:var(--shadow); }
  .brk-hdr { padding:10px 14px; border-bottom:1px solid var(--bdr); display:flex; align-items:center; gap:7px; flex-shrink:0; background:var(--bg2); }
  .brk-dot { width:7px; height:7px; background: var(--red); border-radius:50%; animation:pulse 1.4s infinite; }
  @keyframes pulse { 0%,100%{opacity:1} 50%{opacity:.25} }
  .brk-label { font-family:'Space Mono',monospace; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:1.2px; color: var(--red); }
  .brk-list { flex:1; overflow-y:auto; }
  .brk-item { padding:7px 14px; cursor:pointer; transition:background .15s; display:flex; gap:8px; align-items:flex-start; }
  .brk-item:hover { background:var(--bgH); }
  .brk-time { font-family:'JetBrains Mono',monospace; font-size:9px; color:var(--t3); min-width:32px; padding-top:1px; flex-shrink:0; }
  .brk-txt { font-size:11.5px; font-weight:500; color:var(--t1); line-height:1.35; }
  .brk-hot { display:inline-block; width:5px; height:5px; background: var(--red); border-radius:50%; margin-right:4px; vertical-align:middle; }

  /* HERO ROW */
  .hero-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; padding:0 0 24px; }
  .hero-card-link { display:block; color:inherit; text-decoration:none; }
  .hero-card {
    background:var(--bg3); border-radius:12px; overflow:hidden; border:1px solid var(--bdr);
    cursor:pointer; transition:all .3s; box-shadow:var(--shadow);
  }
  .hero-card:hover { box-shadow:var(--shadowH); }
  .hero-vis {
    height:180px; position:relative; display:flex; align-items:flex-end; padding:16px;
    background:linear-gradient(135deg,#1a365d 0%,#2d3748 40%,#c53030 100%);
  }
  .hero-vis::before {
    content:''; position:absolute; inset:0;
    background:url("data:image/svg+xml,%3Csvg width='40' height='40' viewBox='0 0 40 40' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M20 20h20v20H20z'/%3E%3C/g%3E%3C/svg%3E");
  }
  .hero-badge {
    font-family:'Space Mono',monospace; font-size:9px; font-weight:700; color:#fff;
    background:var(--red); padding:3px 8px; border-radius:3px; text-transform:uppercase; letter-spacing:.8px;
  }
  /* Badge GenAI Race aligné en bas à gauche dans le module */
  #genaiRaceSection .hero-vis,
  #genaiRaceSection .thumb { position:relative; }
  #genaiRaceSection .hero-badge {
    position:absolute;
    left:10px;
    bottom:10px;
    z-index:2;
  }
  .hero-body { padding:18px; }
  .hero-title { font-size:18px; font-weight:700; line-height:1.3; margin-bottom:8px; color:var(--t1); }
  .hero-exc { font-size:13px; line-height:1.5; color:var(--t2); margin-bottom:12px; }
  .hero-meta { display:flex; gap:8px; font-size:11px; color:var(--t3); }

  /* GenAI side */
  .genai-side { display:flex; flex-direction:column; gap:10px; }
  .genai-card {
    display:flex; gap:12px; align-items:center; background:var(--bg3); border:1px solid var(--bdr); color:inherit; text-decoration:none;
    border-radius:10px; padding:12px; cursor:pointer; transition:all .2s; flex:1; box-shadow:var(--shadow);
  }
  .genai-card:hover { box-shadow:var(--shadowH); border-color:var(--bdrH); }
  .genai-info { flex:1; min-width:0; }
  .genai-t { font-size:13px; font-weight:600; color:var(--t1); line-height:1.35; margin-bottom:4px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .genai-exc { font-size:12px; color:var(--t2); line-height:1.4; margin-bottom:4px; display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden; -webkit-line-clamp:2; }
  .genai-exc.genai-exc-1-line { -webkit-line-clamp:1; }
  .genai-time { font-family:'JetBrains Mono',monospace; font-size:9px; color:var(--t3); }

  /* NARRATIVES */
  .narr-sec { padding:24px 0; }
  .narr-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
  .narr-col { background:var(--bg3); border-radius:10px; border:1px solid var(--bdr); overflow:hidden; transition:all .3s; box-shadow:var(--shadow); }
  .narr-col:hover { box-shadow:var(--shadowH); }
  .narr-hd { padding:12px 14px; border-bottom:1px solid var(--bdr); display:flex; align-items:center; gap:6px; background:var(--bg2); }
  .narr-nm { font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.8px; }
  .narr-art-link { display:block; color:inherit; text-decoration:none; }
  .narr-art { padding:10px 14px; cursor:pointer; transition:background .15s; border-bottom:1px solid var(--bdr); display:flex; gap:10px; align-items:center; }
  .narr-art:last-child { border-bottom:none; }
  .narr-art:hover { background:var(--bgH); }
  .narr-art-info { flex:1; min-width:0; }
  .narr-art-tag { font-family:'JetBrains Mono',monospace; font-size:8px; font-weight:700; text-transform:uppercase; letter-spacing:.6px; margin-bottom:3px; }
  .narr-art-t { font-size:11.5px; font-weight:600; color:var(--t1); line-height:1.35; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .narr-art-amount { font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:700; color:var(--t2); margin-top:2px; }
  .narr-art-investors { font-size:10px; color:var(--t3); line-height:1.3; margin-top:3px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
  .narr-art-date { font-family:'JetBrains Mono',monospace; font-size:9px; color:var(--t3); margin-top:2px; }

  /* DOSSIER */
  .dossier-sec { padding:24px 0; }
  .dossier-card {
    background:var(--bg3); border:1px solid var(--red); border-radius:12px; padding:28px;
    box-shadow:var(--shadow);
  }
  .dossier-card-link { display:block; color:inherit; text-decoration:none; cursor:pointer; }
  .dossier-card-main {
    display:flex; gap:28px; align-items:flex-start;
    transition:opacity .2s;
  }
  .dossier-card-link:hover .dossier-card-main { opacity:.92; }
  .dossier-vis {
    width:200px; height:200px; flex-shrink:0; border-radius:10px;
    background:linear-gradient(135deg,hsl(350,30%,90%),hsl(350,35%,82%));
    display:flex; align-items:center; justify-content:center;
  }
  .dossier-vis svg { opacity:.2; }
  .dossier-body { flex:1; }
  .dossier-tag {
    font-family:'Space Mono',monospace; font-size:10px; font-weight:700; color:var(--red);
    text-transform:uppercase; letter-spacing:2px; margin-bottom:8px;
  }
  .dossier-title { font-size:20px; font-weight:700; line-height:1.3; margin-bottom:10px; color:var(--t1); }
  .dossier-exc { font-size:13px; line-height:1.55; color:var(--t2); margin-bottom:14px; }
  .dossier-parts { display:flex; flex-direction:column; gap:4px; }
  .dossier-part { font-size:11.5px; color:var(--t2); padding:5px 0; display:flex; align-items:center; gap:6px; }
  .dossier-part-arrow { color:var(--red); font-size:10px; }
  .dossier-rt { font-family:'JetBrains Mono',monospace; font-size:10px; color:var(--t3); margin-top:10px; }

  /* Accordéon analyse critique (Deep Dive) */
  .dossier-accordion { margin-top:14px; margin-bottom:0; border:1px solid var(--bdr); border-radius:8px; overflow:hidden; background:var(--bg2); }
  .dossier-accordion-item { border-bottom:1px solid var(--bdr); }
  .dossier-accordion-item:last-child { border-bottom:none; }
  .dossier-accordion-head {
    width:100%; display:flex; align-items:center; justify-content:space-between; gap:10px;
    padding:12px 14px; text-align:left; font-family:'DM Sans',sans-serif; font-size:13px; font-weight:600; color:var(--t1);
    background:var(--bg3); border:none; cursor:pointer; transition:background .2s;
  }
  .dossier-accordion-head:hover { background:var(--bg4); }
  .dossier-accordion-head.open { background:rgba(215,230,38,0.15); }
  .dossier-accordion-icon { flex-shrink:0; font-size:10px; color:var(--t3); transition:transform .2s; }
  .dossier-accordion-head.open .dossier-accordion-icon { transform:rotate(180deg); }
  .dossier-accordion-body {
    max-height:0; overflow:hidden; transition:max-height .25s ease-out;
    padding:0 14px; background:var(--bg3);
  }
  .dossier-accordion-body.open { max-height:400px; overflow-y:auto; padding:12px 14px 14px; }
  .dossier-accordion-body p { font-size:12px; line-height:1.55; color:var(--t2); margin:0 0 8px 0; }
  .dossier-accordion-body p:last-child { margin-bottom:0; }
  .dossier-accordion-text {
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
    font-size:12px; line-height:1.55; color:var(--t2);
  }
  .dossier-accordion-text p { margin:0 0 6px 0; }
  .dossier-accordion-text p:last-child { margin-bottom:0; }
  .dossier-accordion-text-link { cursor:pointer; transition:color .15s; }
  .dossier-accordion-text-link:hover { color:var(--t1); }
  .dossier-accordion-inner { font-size:12px; line-height:1.55; color:var(--t2); }
  .dossier-accordion-inner p { margin:0 0 8px 0; }
  .dossier-accordion-inner p:last-child { margin-bottom:0; }
  .dossier-accordion-empty { padding:12px 14px; font-size:12px; color:var(--t3); background:var(--bg2); }

  /* 4 Deep Dives intégrés au bloc (compact, comme Rubriques) */
  .dossier-more-row { margin-top:18px; padding-top:18px; border-top:1px solid var(--bdr); }
  .dossier-more-list {
    display:grid; grid-template-columns:repeat(4, 1fr); gap:12px;
  }
  .dossier-more-card {
    display:flex; gap:10px; align-items:center; color:inherit; text-decoration:none;
    background:var(--bg2); border:1px solid var(--bdr); border-radius:8px; padding:10px 12px;
    transition:all .2s; min-width:0;
  }
  .dossier-more-card:hover { border-color:var(--red); background:rgba(214,0,42,.04); }
  .dossier-more-card-thumb {
    width:72px; height:48px; flex-shrink:0; border-radius:6px;
    background:linear-gradient(135deg, hsl(350,30%,90%), hsl(350,35%,82%));
    background-size:cover; background-position:center;
  }
  .dossier-more-card-info { flex:1; min-width:0; }
  .dossier-more-card-tag {
    font-family:'JetBrains Mono',monospace; font-size:8px; font-weight:700; color:var(--red);
    text-transform:uppercase; letter-spacing:.6px; margin-bottom:3px;
  }
  .dossier-more-card-title {
    font-size:11.5px; font-weight:600; line-height:1.35; color:var(--t1);
    display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden;
  }

  /* LANDSCAPE */
  .land-sec { padding:24px 0; }
  .land-card-link { display:block; color:inherit; text-decoration:none; }
  .land-card {
    background:var(--bg3); border:1px solid #7c3aed; border-radius:12px; padding:24px 28px;
    display:flex; justify-content:space-between; align-items:center; cursor:pointer; transition:all .3s; box-shadow:var(--shadow);
  }
  .land-card:hover { box-shadow:0 4px 24px rgba(124,58,237,.1); }
  .land-badge { font-family:'Space Mono',monospace; font-size:9px; font-weight:700; color:#7c3aed; text-transform:uppercase; letter-spacing:1.5px; margin-bottom:6px; }
  .land-title { font-size:18px; font-weight:700; color:var(--t1); margin-bottom:10px; }
  .land-actors { display:flex; gap:6px; flex-wrap:wrap; }
  .land-actor { background:rgba(124,58,237,.08); color:#7c3aed; font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:600; padding:3px 9px; border-radius:5px; }
  .land-cta { background:#7c3aed; color:#fff; border:none; padding:10px 22px; border-radius:7px; font-family:'DM Sans',sans-serif; font-size:12px; font-weight:700; cursor:pointer; white-space:nowrap; transition:all .2s; }
  .land-cta:hover { filter:brightness(1.1); }

  /* TOOLS */
  .tools-sec { padding:24px 0; }
  .tools-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  .tool-c { display:block; background:var(--bg3); border:1px solid var(--bdr); border-radius:10px; padding:22px; transition:all .3s; cursor:pointer; box-shadow:var(--shadow); color:inherit; text-decoration:none; }
  .tool-c:hover { border-color:#047857; box-shadow:0 4px 20px rgba(4,120,87,.06); }
  .tool-icon { font-size:28px; margin-bottom:12px; color:#047857; font-family:'Space Mono',monospace; }
  .tool-nm { font-family:'JetBrains Mono',monospace; font-size:13px; font-weight:700; color:var(--t1); margin-bottom:6px; }
  .tool-desc { font-size:12px; color:var(--t2); line-height:1.5; margin-bottom:14px; }
  .tool-cta { background:transparent; color:#047857; border:1px solid #047857; padding:7px 16px; border-radius:5px; font-family:'DM Sans',sans-serif; font-size:11px; font-weight:700; cursor:pointer; transition:all .2s; }
  .tool-cta:hover { background:#047857; color:#fff; }

  /* NEWSLETTER */
  .nl-sec { padding:36px 0; text-align:center; }
  .nl-inner {
    max-width:none;
    width:100%;
    margin:0;
    background:var(--bg3);
    border:1px solid var(--bdr);
    border-radius:14px;
    padding:32px;
    box-shadow:var(--shadow);
  }
  .nl-title { font-family:'Space Mono',monospace; font-size:16px; font-weight:700; color:var(--t1); margin-bottom:6px; }
  .nl-sub { font-size:13px; color:var(--t2); margin-bottom:16px; line-height:1.5; }
  .nl-form { display:flex; gap:8px; justify-content:center; }
  .nl-input {
    flex:0 0 33%;
    max-width:420px;
    background:var(--bg2);
    border:1px solid var(--bdr);
    border-radius:7px;
    padding:10px 14px;
    color:var(--t1);
    font-family:'DM Sans',sans-serif;
    font-size:12px;
    outline:none;
    transition:border .2s;
  }
  .nl-input:focus { border-color:var(--red); }
  .nl-input::placeholder { color:var(--t3); }
  .nl-btn { background: var(--yellow); color: rgba(0, 0, 0, 0.5); border: none; padding: 10px 20px; border-radius: 7px; font-family: 'DM Sans', sans-serif; font-size: 12px; font-weight: 700; cursor: pointer; transition: all .2s; white-space: nowrap; }
  .nl-btn:hover { filter:brightness(1.1); }
  .nl-status { margin-top:10px; font-size:12px; }
  .nl-status.nl-status-error { color:#b91c1c; }
  .nl-status.nl-status-success { color:#047857; }

  /* FOOTER */
  .ftr { padding:40px 0 28px; background:#111118; margin-top:32px; }
  .ftr-grid { display:grid; grid-template-columns:1fr 1fr 1fr 1.5fr; gap:32px; padding-bottom:28px; border-bottom:1px solid rgba(255,255,255,.1); }
  .ftr-col-title { font-family:'JetBrains Mono',monospace; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:1.5px; color:rgba(255,255,255,.35); margin-bottom:14px; }
  .ftr-links { display:flex; flex-direction:column; gap:8px; }
  .ftr-links a { font-size:12.5px; color:rgba(255,255,255,.6); transition:color .2s; }
  .ftr-links a:hover { color:#ff6b82; }
  .ftr-brand { display:flex; flex-direction:column; align-items:flex-start; gap:12px; }
  .ftr-brand img, .ftr-logo-img { height:72px; width:auto; max-width:480px; display:block; object-fit:contain; }
  .ftr-tagline { font-size:12px; color:rgba(255,255,255,.5); line-height:1.6; }
  .ftr-bottom { padding-top:20px; display:flex; justify-content:space-between; align-items:center; }
  .ftr-copy { font-size:11px; color:rgba(255,255,255,.3); }
  .ftr-legal { display:flex; gap:16px; }
  .ftr-legal a { font-size:11px; color:rgba(255,255,255,.3); transition:color .2s; }
  .ftr-legal a:hover { color:rgba(255,255,255,.6); }

  /* RESPONSIVE */
  @media(max-width:1024px) {
    .narr-grid { grid-template-columns:repeat(2,1fr); }
    .tools-grid { grid-template-columns:repeat(2,1fr); }
    .dossier-more-list { grid-template-columns:repeat(2, 1fr); }
    .ftr-grid { grid-template-columns:repeat(2,1fr); }
  }
  @media(max-width:768px) {
    .top-row { grid-template-columns:1fr; }
    .hero-row { grid-template-columns:1fr; }
    .narr-grid { grid-template-columns:1fr; }
    .tools-grid { grid-template-columns:1fr; }
    .ftr-grid { grid-template-columns:1fr; }
    .hdr-nav { display:none; }
    .hdr-mobile-toggle { display: flex; }
  }
  @media(min-width:769px) {
    .hdr-mobile-overlay,
    .hdr-mobile-menu { display: none !important; }
  }
    .dossier-card-main { flex-direction:column; }
    .dossier-vis { width:100%; height:140px; }
    .dossier-more-list { grid-template-columns:1fr; }
    .land-card { flex-direction:column; align-items:flex-start; gap:16px; }
  }

  @keyframes fadeUp { from{opacity:0;transform:translateY(12px)} to{opacity:1;transform:translateY(0)} }
  .fu { animation:fadeUp .45s ease-out both; }
  .fu1{animation-delay:.04s} .fu2{animation-delay:.08s} .fu3{animation-delay:.12s}
  .fu4{animation-delay:.16s} .fu5{animation-delay:.2s} .fu6{animation-delay:.24s}

  .proto { position:fixed; bottom:14px; right:14px; background:var(--red); color:#fff; font-family:'Space Mono',monospace; font-size:9px; font-weight:700; padding:5px 12px; border-radius:16px; z-index:999; letter-spacing:1px; text-transform:uppercase; box-shadow:0 4px 14px rgba(214,0,42,.25); }

  /* Modal vidéo pour index-v2 (copié depuis styles.css) */
  .video-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 10000;
    display: flex;
    align-items: center;
    justify-content: center;
    animation: fadeIn 0.3s ease;
  }

  .video-modal-overlay {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.9);
    backdrop-filter: blur(10px);
  }

  .video-modal-content {
    position: relative;
    width: 90%;
    max-width: 1200px;
    max-height: 90vh;
    z-index: 10001;
    background: #1a1a1a;
    border-radius: 16px;
    overflow: hidden;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.8);
    animation: slideUp 0.3s ease;
  }

  .video-modal-close {
    position: absolute;
    top: 1rem;
    right: 1rem;
    width: 40px;
    height: 40px;
    background: rgba(0, 0, 0, 0.7);
    border: none;
    border-radius: 50%;
    color: #fff;
    font-size: 1.5rem;
    font-weight: bold;
    cursor: pointer;
    z-index: 10002;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all 0.3s ease;
  }

  .video-modal-close:hover {
    background: rgba(239, 68, 68, 0.9);
    transform: rotate(90deg);
  }

  .video-modal-player {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%;
    background: #000;
  }

  .video-modal-iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
  }

  body.light-theme .video-modal-content {
    background: #ffffff;
  }

  body.light-theme .video-modal-close {
    background: rgba(255, 255, 255, 0.9);
    color: #1a1a1a;
  }

  body.light-theme .video-modal-close:hover {
    background: rgba(239, 68, 68, 0.9);
    color: #fff;
  }

  @media (max-width: 768px) {
    .video-modal-content {
      width: 95%;
      max-height: 85vh;
    }

    .video-modal-close {
      top: 0.5rem;
      right: 0.5rem;
      width: 35px;
      height: 35px;
      font-size: 1.2rem;
    }
  }
