:root{--ink:#0b1020;--paper:#f4f1ea;--white:#fff;--blue:#155eef;--cyan:#21d4fd;--red:#fb3f4a;--muted:#6c7485;--line:#d9d7d1}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Manrope,Arial,sans-serif}.topbar{height:82px;display:flex;align-items:center;gap:42px;padding:0 max(5vw,24px);background:rgba(244,241,234,.92);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:20}.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:inherit}.brand-mark{display:grid;place-items:center;width:47px;height:47px;background:var(--blue);color:#fff;font:700 17px Space Grotesk}.brand strong,.brand small{display:block}.brand strong{font:700 16px Space Grotesk;letter-spacing:.12em}.brand small{font-size:9px;letter-spacing:.3em;color:var(--muted)}nav{display:flex;gap:28px;margin-left:auto}nav a{color:inherit;text-decoration:none;font-size:13px;font-weight:700}.live{font-size:11px;font-weight:800;letter-spacing:.08em}.live i{display:inline-block;width:8px;height:8px;background:#28c76f;border-radius:50%;box-shadow:0 0 0 5px #28c76f20;margin-right:7px}.hero{min-height:630px;padding:95px max(6vw,28px);display:grid;grid-template-columns:minmax(0,1.7fr) minmax(300px,.7fr);gap:7vw;align-items:center;background:radial-gradient(circle at 76% 30%,#155eef22,transparent 28%),linear-gradient(125deg,#f4f1ea 55%,#e8e5dd 55%)}.eyebrow,.section-title p{font-size:11px;font-weight:800;letter-spacing:.18em;color:var(--blue)}h1{font:700 clamp(42px,6vw,84px)/.98 Space Grotesk;margin:22px 0;letter-spacing:-.045em;max-width:1000px}h1 em{font-style:normal;color:var(--blue)}.lead{max-width:760px;font-size:18px;line-height:1.75;color:#4f586b}.primary{display:inline-flex;gap:30px;background:var(--ink);color:#fff;padding:17px 22px;text-decoration:none;font-weight:800;margin-top:20px}.primary span{color:var(--cyan)}.signal-card{background:var(--ink);color:#fff;padding:30px;box-shadow:18px 18px 0 var(--blue)}.signal-head{display:flex;justify-content:space-between;font-size:10px;font-weight:800;letter-spacing:.12em}.signal-head strong{color:var(--red)}.big-number{font:700 96px/1 Space Grotesk;margin:38px 0 8px}.signal-card>p:not(.big-number){color:#b7bed0;line-height:1.6}.meter{height:5px;background:#2b3347;margin:26px 0 14px}.meter span{display:block;width:98%;height:100%;background:linear-gradient(90deg,#ffba08,var(--red))}.signal-card small{color:#7f899f}.ticker{display:flex;gap:38px;align-items:center;overflow:hidden;white-space:nowrap;background:var(--blue);color:#fff;padding:14px max(5vw,24px);font-size:12px}.ticker strong{color:var(--cyan)}.ticker span:before{content:'◆';font-size:6px;margin-right:38px;color:#85aaff}.section{padding:105px max(6vw,28px)}.section-title{display:grid;grid-template-columns:220px 1fr;gap:30px;align-items:start;margin-bottom:55px}.section-title h2{font:700 clamp(30px,4vw,55px)/1.08 Space Grotesk;margin:0;letter-spacing:-.035em;max-width:920px}.featured-grid{display:grid;grid-template-columns:2fr 1fr;gap:26px}.feature{background:#fff;display:grid;grid-template-columns:1fr 1.15fr}.feature-visual{background:linear-gradient(145deg,#10182e,#155eef);color:#fff;position:relative;min-height:500px;padding:28px;overflow:hidden}.feature-visual>span{font-size:11px;letter-spacing:.16em}.feature-visual b{position:absolute;bottom:20px;left:26px;font:700 110px Space Grotesk;color:#ffffff18}.rings{position:absolute;width:360px;height:360px;border:1px solid #ffffff45;border-radius:50%;top:80px;left:20px;box-shadow:0 0 0 55px #ffffff0b,0 0 0 110px #ffffff08}.article-body,.side-story{padding:40px}.tags{display:flex;justify-content:space-between;font-size:10px;font-weight:800;letter-spacing:.12em;color:var(--muted)}.tag{color:var(--blue)}.tag.danger{color:var(--red)}h3{font:700 28px/1.2 Space Grotesk;margin:24px 0 16px}.article-body p,.side-story p,.cards p,.ranking p{color:#626b7b;line-height:1.7}.article-body li{margin:11px 0}.article-body a{display:inline-block;margin-top:20px;color:var(--blue);font-weight:800;text-decoration:none}.side-story{background:#e7e2d8}.lesson{border-top:1px solid #c8c1b4;margin-top:36px;padding-top:25px}.lesson strong{font-size:11px;color:var(--blue);letter-spacing:.15em}.dark{background:var(--ink);color:#fff}.dark .section-title p{color:var(--cyan)}.cards{display:grid;gap:2px}.cards.three{grid-template-columns:repeat(3,1fr)}.cards article{background:#141c30;padding:36px;min-height:350px;position:relative}.cards .index{font:700 64px Space Grotesk;color:#28324a}.kicker{color:var(--cyan)!important;font-size:10px;font-weight:800;letter-spacing:.15em}.cards article>small{position:absolute;bottom:30px;color:#778199;font-size:9px;letter-spacing:.13em}.cloud-layout{display:grid;grid-template-columns:.8fr 1.1fr 1fr;gap:22px}.cloud-layout>div{padding:36px;background:#fff;min-height:330px}.version{background:var(--blue)!important;color:#fff;display:flex;flex-direction:column;justify-content:center}.version span{font:700 40px Space Grotesk;color:var(--cyan)}.version strong{font:700 64px Space Grotesk}.version small{letter-spacing:.13em}.checklist label{display:block;padding:13px 0;border-bottom:1px solid #e5e5e5;font-size:13px}.checklist input{accent-color:var(--blue);margin-right:10px}.quote{display:flex;flex-direction:column;justify-content:flex-end;background:#dfe6f8!important}.quote p{font:700 26px/1.4 Space Grotesk}.quote span{font-size:10px;font-weight:800;color:var(--blue);letter-spacing:.14em}.top-three{background:#e7e2d8}.ranking{display:grid;gap:12px}.ranking article{display:grid;grid-template-columns:100px 1fr;background:#fff;padding:28px;align-items:center}.ranking b{font:700 60px Space Grotesk;color:var(--blue)}.ranking h3{margin:5px 0}.ranking span{font-size:9px;color:var(--red);font-weight:800;letter-spacing:.15em}footer{display:flex;align-items:center;gap:40px;padding:44px max(6vw,28px);background:#070b14;color:#fff}footer p{margin-left:auto;color:#8992a7;font-size:12px}footer>span{font-size:11px;color:#667086}@media(max-width:900px){nav{display:none}.hero,.featured-grid,.feature,.cloud-layout{grid-template-columns:1fr}.hero{padding-top:60px}.signal-card{box-shadow:8px 8px 0 var(--blue)}.section-title{grid-template-columns:1fr}.cards.three{grid-template-columns:1fr}.feature-visual{min-height:330px}.ranking article{grid-template-columns:65px 1fr}footer{align-items:flex-start;flex-direction:column}footer p{margin:0}}@media(max-width:540px){.live{display:none}.topbar{height:70px}.hero{min-height:auto;padding-bottom:70px}h1{font-size:43px}.section{padding:72px 22px}.article-body,.side-story{padding:28px}.ticker{gap:20px}.ticker span:before{margin-right:20px}}

/* ==========================================================
   AJL NETWORK NEWS V2 — CORRECTION CONTRASTE CARTES SOMBRES
   ========================================================== */

/* Toutes les sections sombres */
.section.dark {
    background: #151b31;
    color: #ffffff;
}

/* Cartes situées dans une section sombre */
.section.dark .news-card {
    color: #ffffff;
}

/* TITRES */
.section.dark .news-card h3,
.section.dark .news-card h2,
.section.dark .news-card h4 {
    color: #ffffff !important;
}

/* Texte */
.section.dark .news-card p {
    color: #c7cede !important;
}

/* Métadonnées */
.section.dark .news-card .card-meta,
.section.dark .news-card .card-meta span,
.section.dark .news-card small {
    color: #aeb8cc !important;
}

/* Constructeur */
.section.dark .news-card .vendor {
    color: #ffffff !important;
    font-weight: 800;
}

/* Liens */
.section.dark .news-card a {
    color: #8da2ff !important;
    font-weight: 700;
}

/* Badges technos */
.section.dark .tech-badge {
    color: #ffffff !important;
    border-color: rgba(255,255,255,.25) !important;
    background: rgba(255,255,255,.08) !important;
}

/* Titre de section */
.section.dark .section-title h2 {
    color: #ffffff !important;
}

.section.dark .section-title > p {
    color: #aeb8cc !important;
}

/* Séparateurs des cartes */
.section.dark .news-card {
    border-color: rgba(255,255,255,.16) !important;
}

/* Bottom */
.section.dark .card-bottom {
    border-color: rgba(255,255,255,.15) !important;
}


/* ==========================================================
   AJL NETWORK NEWS V2 — CORRECTION CONTRASTE CARTES SOMBRES
   ========================================================== */

/* Toutes les sections sombres */
.section.dark {
    background: #151b31;
    color: #ffffff;
}

/* Cartes situées dans une section sombre */
.section.dark .news-card {
    color: #ffffff;
}

/* TITRES */
.section.dark .news-card h3,
.section.dark .news-card h2,
.section.dark .news-card h4 {
    color: #ffffff !important;
}

/* Texte */
.section.dark .news-card p {
    color: #c7cede !important;
}

/* Métadonnées */
.section.dark .news-card .card-meta,
.section.dark .news-card .card-meta span,
.section.dark .news-card small {
    color: #aeb8cc !important;
}

/* Constructeur */
.section.dark .news-card .vendor {
    color: #ffffff !important;
    font-weight: 800;
}

/* Liens */
.section.dark .news-card a {
    color: #8da2ff !important;
    font-weight: 700;
}

/* Badges technos */
.section.dark .tech-badge {
    color: #ffffff !important;
    border-color: rgba(255,255,255,.25) !important;
    background: rgba(255,255,255,.08) !important;
}

/* Titre de section */
.section.dark .section-title h2 {
    color: #ffffff !important;
}

.section.dark .section-title > p {
    color: #aeb8cc !important;
}

/* Séparateurs des cartes */
.section.dark .news-card {
    border-color: rgba(255,255,255,.16) !important;
}

/* Bottom */
.section.dark .card-bottom {
    border-color: rgba(255,255,255,.15) !important;
}


/* ==========================================================
   AJL NETWORK NEWS V2 — CARTES COMPACTES
   ========================================================== */

.news-card {
    padding: 28px !important;
    min-height: 0 !important;
    display: flex;
    flex-direction: column;
    gap: 14px;
}

.news-card h3 {
    font-size: clamp(1.25rem, 1.6vw, 1.75rem) !important;
    line-height: 1.18 !important;
    margin: 4px 0 6px !important;
    letter-spacing: -0.025em;
}

.news-card p {
    font-size: 0.98rem !important;
    line-height: 1.65 !important;
    margin: 0 !important;
}

.card-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
    font-size: 0.78rem !important;
    text-transform: uppercase;
    letter-spacing: .08em;
}

.tech-list {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
}

.tech-badge {
    display: inline-flex;
    align-items: center;
    padding: 5px 9px;
    border: 1px solid rgba(20, 25, 40, .15);
    border-radius: 100px;
    font-size: 0.68rem !important;
    font-weight: 700;
    line-height: 1;
    letter-spacing: .04em;
}

.card-bottom {
    margin-top: auto;
    padding-top: 18px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 15px;
}

.cards.three {
    align-items: stretch;
}

/* Limite les résumés visuellement */
.news-card > p {
    display: -webkit-box;
    -webkit-line-clamp: 5;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

/* Responsive */
@media (max-width: 1100px) {
    .cards.three {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 720px) {
    .cards.three {
        grid-template-columns: 1fr !important;
    }

    .news-card {
        padding: 22px !important;
    }

    .news-card h3 {
        font-size: 1.3rem !important;
    }
}


/* ==========================================================
   AJL NEWS V2 - FIX DEFINITIF LISIBILITE
   ========================================================== */

/* CARTES SOMBRES V2 */
.news-card {
    background: #171d33 !important;
    color: #ffffff !important;
}

/* Constructeur + âge */
.news-card .card-meta,
.news-card .card-meta span,
.news-card .vendor {
    color: #aeb8cc !important;
}

.news-card .vendor {
    color: #ffffff !important;
    font-weight: 800 !important;
}

/* TITRE : blanc */
.news-card h3 {
    color: #ffffff !important;
}

/* Résumé */
.news-card > p {
    color: #b9c2d5 !important;
}

/* Score */
.news-card small,
.news-card .card-bottom small {
    color: #9da8bd !important;
}

/* Lien */
.news-card a,
.news-card .card-bottom a {
    color: #8fa2ff !important;
}

/* Badges */
.news-card .tech-badge {
    color: #dce3ff !important;
    background: rgba(78, 98, 255, .15) !important;
    border: 1px solid rgba(143, 162, 255, .35) !important;
}

/* Cartes lab sur fond clair */
.lab-card {
    color: #111827 !important;
}

.lab-card h3 {
    color: #111827 !important;
}

.lab-card p {
    color: #596174 !important;
}

