/* ============================================================
   DUEL CAMP — Blog
   DA héritée de l'index (sombre, type Netflix). Étape 2 : interface.
   ============================================================ */
:root{
  --bg:#070707; --bg-2:#0d0d0d; --surface:#141414; --surface-2:#1a1a1a;
  --line:rgba(255,255,255,.08); --txt:#fff; --txt-2:rgba(255,255,255,.72); --txt-3:rgba(255,255,255,.45);
  --red:#e50914; --red-dark:#b81d24; --red-glow:rgba(229,9,20,.35);
  --m-or:#f5c542;
  --font-display:'Bebas Neue','Arial Narrow',sans-serif;
  --font-body:'Inter',-apple-system,BlinkMacSystemFont,sans-serif;
  --r-sm:6px; --r-md:12px; --r-lg:18px; --r-full:999px;
  --ease:cubic-bezier(.16,1,.3,1); --container:1200px;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--txt);font-family:var(--font-body);line-height:1.6;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{max-width:var(--container);margin:0 auto;padding:0 24px}

/* ---------- HEADER ---------- */
.header{position:sticky;top:0;z-index:50;background:rgba(7,7,7,.82);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.header__in{max-width:var(--container);margin:0 auto;padding:14px 24px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.header__logo img{height:34px;width:auto}
.header__nav{display:flex;align-items:center;gap:24px;font-size:.86rem;color:var(--txt-2)}
.header__nav a:hover{color:var(--txt)}
.header__nav a.active{color:var(--txt);font-weight:600}
.header__nav .login-link{display:inline-flex;align-items:center;gap:7px}
.header__nav .login-link svg{width:16px;height:16px}
.btn-reserver{background:var(--red);color:#fff!important;padding:9px 20px;border-radius:var(--r-full);font-weight:600;font-size:.84rem;transition:.25s var(--ease)}
.btn-reserver:hover{background:var(--red-dark);transform:translateY(-1px)}
.header__burger{display:none;background:none;border:0;cursor:pointer;flex-direction:column;gap:5px}
.header__burger span{width:24px;height:2px;background:var(--txt);border-radius:2px}

/* ---------- PAGE HEAD ---------- */
.pagehead{padding:64px 0 24px;text-align:center}
.eyebrow{display:inline-block;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;color:var(--red);font-weight:600;margin-bottom:16px}
.pagehead h1{font-family:var(--font-display);font-size:clamp(3rem,7vw,5rem);line-height:.92;letter-spacing:.01em}
.pagehead h1 .accent{color:var(--red)}
.pagehead p{max-width:580px;margin:18px auto 0;color:var(--txt-2);font-size:1.02rem}

/* ---------- FILTRES ---------- */
.filters{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;padding:26px 0 40px}
.chip{border:1px solid var(--line);color:var(--txt-2);padding:8px 18px;border-radius:var(--r-full);font-size:.82rem;cursor:pointer;transition:.2s var(--ease);font-family:inherit;background:none}
.chip.active{background:var(--txt);color:#000;border-color:var(--txt);font-weight:600}
.chip:not(.active):hover{border-color:rgba(255,255,255,.3);color:var(--txt)}

/* ---------- GRILLE ---------- */
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:26px;padding-bottom:90px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;transition:.3s var(--ease);display:flex;flex-direction:column}
.card:hover{transform:translateY(-5px);border-color:var(--red-glow);box-shadow:0 18px 50px -20px rgba(0,0,0,.8)}
.card__media{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--surface-2)}
.card__media img{width:100%;height:100%;object-fit:cover;transition:.5s var(--ease)}
.card:hover .card__media img{transform:scale(1.05)}
.card__tag{position:absolute;top:12px;left:12px;background:rgba(0,0,0,.55);backdrop-filter:blur(6px);border:1px solid var(--line);color:var(--txt);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;padding:5px 11px;border-radius:var(--r-full);font-weight:600}
.card__time{position:absolute;bottom:12px;right:12px;background:rgba(0,0,0,.55);color:var(--txt-2);font-size:.72rem;padding:4px 10px;border-radius:var(--r-full)}
.card__body{padding:20px 22px 24px;display:flex;flex-direction:column;flex:1}
.card__title{font-family:var(--font-display);font-size:1.55rem;line-height:1.04;letter-spacing:.01em;margin-bottom:10px}
.card__excerpt{color:var(--txt-2);font-size:.92rem;flex:1}
.card__more{margin-top:16px;color:var(--red);font-weight:600;font-size:.86rem;display:inline-flex;align-items:center;gap:7px}
.card__more svg{width:15px;height:15px;transition:.25s var(--ease)}
.card:hover .card__more svg{transform:translateX(4px)}
.empty-msg{grid-column:1/-1;text-align:center;color:var(--txt-3);padding:40px 0}

/* ---------- ARTICLE ---------- */
.article{max-width:760px;margin:0 auto;padding:34px 24px 60px}
.backlink{display:flex;width:fit-content;align-items:center;gap:8px;color:var(--txt-2);font-size:.86rem;font-weight:600;margin-bottom:22px}
.backlink:hover{color:var(--txt)}
.backlink svg{width:16px;height:16px}
.article__cat{font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--red);font-weight:600}
.article h1{font-family:var(--font-display);font-size:clamp(2.6rem,6vw,4rem);line-height:.95;letter-spacing:.01em;margin:14px 0 18px}
.article__meta{display:flex;flex-wrap:wrap;gap:14px;align-items:center;color:var(--txt-3);font-size:.82rem;border-bottom:1px solid var(--line);padding-bottom:24px;margin-bottom:30px}
.article__meta .dot{width:4px;height:4px;border-radius:50%;background:var(--txt-3)}
.article__hero{aspect-ratio:16/9;border-radius:var(--r-lg);overflow:hidden;margin-bottom:36px;background:var(--surface-2)}
.article__hero img{width:100%;height:100%;object-fit:cover}
.prose p{color:var(--txt-2);font-size:1.06rem;line-height:1.85;margin-bottom:22px}
.prose p strong{color:var(--txt);font-weight:600}
.prose h3{font-family:var(--font-display);font-size:1.7rem;letter-spacing:.01em;margin:36px 0 12px;line-height:1}
.prose ul{margin:0 0 22px;padding-left:4px;list-style:none}
.prose li{color:var(--txt-2);font-size:1.04rem;line-height:1.7;padding-left:26px;position:relative;margin-bottom:12px}
.prose li::before{content:"";position:absolute;left:4px;top:11px;width:7px;height:7px;border-radius:50%;background:var(--red)}
.prose blockquote{border-left:3px solid var(--red);padding:6px 0 6px 24px;margin:30px 0;font-size:1.25rem;color:var(--txt);font-weight:500;line-height:1.5;font-style:italic}

/* CTA fin d'article */
.cta-box{margin:50px 0 10px;background:linear-gradient(135deg,#1a0708,#141414);border:1px solid var(--red-glow);border-radius:var(--r-lg);padding:36px 30px;text-align:center}
.cta-box h2{font-family:var(--font-display);font-size:2.2rem;letter-spacing:.01em;line-height:1;margin-bottom:8px}
.cta-box h2 .accent{color:var(--red)}
.cta-box p{color:var(--txt-2);font-size:.95rem;margin-bottom:24px}
.btn-primary{display:inline-flex;align-items:center;gap:9px;background:var(--red);color:#fff;padding:15px 30px;border-radius:var(--r-full);font-weight:600;font-size:.96rem;transition:.25s var(--ease)}
.btn-primary:hover{background:var(--red-dark);transform:translateY(-2px);box-shadow:0 12px 30px -10px var(--red-glow)}
.btn-primary svg{width:16px;height:16px}

/* À lire ensuite */
.related{max-width:760px;margin:0 auto;padding:14px 24px 90px}
.related__h{font-family:var(--font-display);font-size:1.5rem;letter-spacing:.04em;color:var(--txt-2);margin-bottom:18px}
.related__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}
.related__item{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;transition:.25s var(--ease)}
.related__item:hover{border-color:var(--red-glow)}
.related__item img{width:100%;aspect-ratio:16/9;object-fit:cover}
.related__item .ri-body{padding:14px 16px}
.related__item .c{font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;color:var(--red);font-weight:600}
.related__item .t{font-family:var(--font-display);font-size:1.18rem;line-height:1.05;margin-top:6px}

/* ---------- FOOTER ---------- */
.footer{border-top:1px solid var(--line);background:var(--bg-2);padding:48px 0 30px}
.footer__grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:30px}
.footer__brand img{height:36px;margin-bottom:14px}
.footer__brand p{color:var(--txt-3);font-size:.88rem;max-width:320px}
.footer h4{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--txt-3);margin-bottom:14px}
.footer ul{list-style:none}
.footer li{margin-bottom:9px}
.footer li a{color:var(--txt-2);font-size:.9rem}
.footer li a:hover{color:var(--txt)}
.footer__bottom{border-top:1px solid var(--line);margin-top:36px;padding-top:20px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;color:var(--txt-3);font-size:.8rem}

/* Menu mobile (tiroir) */
.mobile-menu{position:fixed;top:0;right:0;bottom:0;width:min(80vw,320px);background:var(--bg-2);border-left:1px solid var(--line);transform:translateX(100%);transition:transform .35s var(--ease);z-index:60;display:flex;flex-direction:column;padding:88px 28px 28px}
.mobile-menu.open{transform:translateX(0)}
.mobile-menu a{color:var(--txt-2);font-size:1.05rem;padding:15px 0;border-bottom:1px solid var(--line)}
.mobile-menu a:hover{color:var(--txt)}
.mobile-menu__back{color:var(--txt-3)!important;font-size:.9rem!important;border-bottom:0!important;margin-top:14px}
.header__burger span{transition:.3s var(--ease)}
.header__burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.header__burger.open span:nth-child(2){opacity:0}
.header__burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

@media(max-width:1024px){
  .header__nav{display:none}
  .header__burger{display:flex}
}
@media(max-width:760px){
  .footer__grid{grid-template-columns:1fr}
}
