
    :root {
      --bg: #00031C;
      --surface: rgba(255,255,255,.05);
      --border: rgba(98,178,255,.14);
      --text: #f4f7fb;
      --muted: #b8c6dc;
      --blue-1: #012f5f;
      --blue-2: #388dd9;
      --blue-3: #62b2ff;
      --shadow: 0 24px 70px rgba(0,0,0,.34);
      --max: 1380px;
      --header-h: 76px;
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; }
    body {
      margin: 0;
      font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
      color: var(--text);
      background: #00031C;
      line-height: 1.5;
    }

    a { color: inherit; text-decoration: none; }
    img { display: block; max-width: 100%; }
    .container { width: min(100%, var(--max)); margin: 0 auto; padding-left: 14px; padding-right: 14px; }

    .topbar {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 90;
      background: transparent;
      border-bottom: 1px solid transparent;
      transition: background .2s ease, border-color .2s ease, box-shadow .2s ease;
    }

    .topbar.is-scrolled {
      background: #00031C;
      border-bottom: 1px solid rgba(255,255,255,.05);
      box-shadow: 0 10px 30px rgba(0,0,0,.18);
    }

    .topbar-inner {
      min-height: var(--header-h);
      display: flex;
      align-items: center;
      justify-content: space-between;
      gap: 16px;
    }

    .brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
    .brand img { height: 60px; width: auto; object-fit: contain; }

    .nav {
      display: flex;
      align-items: center;
      gap: 22px;
      color: #e5efff;
      font-weight: 700;
      font-size: .95rem;
    }

    .nav a { opacity: .92; }
    .nav a:hover { opacity: 1; }

    .top-actions {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-shrink: 0;
    }

    .pill-btn {
      min-height: 42px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 8px;
      border-radius: 999px;
      padding: 0 14px;
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.07);
      color: #f2f7ff;
      font-weight: 700;
      font-size: .92rem;
    }

    .mobile-menu-btn {
      display: none;
      min-height: 42px;
      min-width: 42px;
      align-items: center;
      justify-content: center;
      border-radius: 12px;
      background: rgba(255,255,255,.05);
      border: 1px solid rgba(255,255,255,.07);
      color: #f2f7ff;
      font-size: 1.1rem;
      font-weight: 800;
    }

    .mobile-menu {
      display: none;
      margin: 10px auto 0;
      width: min(100%, var(--max));
      background: rgba(5,16,31,.96);
      border: 1px solid rgba(255,255,255,.06);
      border-radius: 18px;
      box-shadow: var(--shadow);
      overflow: hidden;
    }

    .mobile-menu a {
      display: block;
      padding: 14px 16px;
      color: #eef5ff;
      font-weight: 700;
      border-bottom: 1px solid rgba(255,255,255,.05);
    }

    .mobile-menu a:last-child { border-bottom: 0; }

    .hero {
      padding: 0 0 8px;
      margin-top: calc(var(--header-h) * -1);
    }

    .hero-shell {
      position: relative;
      min-height: 620px;
      width: 100%;
      overflow: hidden;
      border: 0;
      border-radius: 0;
      box-shadow: none;
      background: #00031C;
    }

    .hero-shell::before {
      content: "";
      position: absolute;
      inset: 0;
      background:
        linear-gradient(90deg, rgba(0,3,28,.43) 0%, rgba(0,3,28,.29) 24%, rgba(0,3,28,.15) 38%, rgba(0,3,28,.28) 55%, rgba(0,3,28,.36) 71%, rgba(0,3,28,0) 100%),
        linear-gradient(180deg, rgba(0,3,28,.18) 0%, rgba(0,3,28,0) 18%, rgba(0,3,28,0) 74%, rgba(0,3,28,.62) 88%, rgb(0,3,28) 100%);
      z-index: 1;
      pointer-events: none;
    }

    .hero-media {
      position: absolute;
      inset: 0 0 0 auto;
      width: min(72vw, calc(100% - 360px));
      min-width: 52%;
      background:
        linear-gradient(90deg, rgba(0,3,28,0) 0%, rgba(0,3,28,.06) 100%),
        /* Chemin relatif (commence par /) → fonctionne automatiquement sur
           mescastings.fr ET touslescastings.fr. Image à uploader dans la
           médiathèque WP de chaque domaine sous ce même chemin. */
        url('/wp-content/uploads/2026/03/plus-fort-quelle-sonia-rolland.jpg') center center / cover no-repeat;
      -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 18%, #000 100%);
      mask-image: linear-gradient(90deg, transparent 0, #000 18%, #000 100%);
    }

    .hero-overlay {
      position: absolute;
      inset: 0;
      background:
        linear-gradient(180deg, rgba(0,3,28,.08) 0%, rgba(0,3,28,0) 14%, rgba(0,3,28,0) 72%, rgba(0,3,28,.44) 88%, rgba(0,3,28,.92) 100%);
      z-index: 1;
      pointer-events: none;
    }

    .hero-content-wrap {
      position: relative;
      z-index: 2;
    }

    .hero-content {
      position: relative;
      z-index: 2;
      width: min(100%, 700px);
      padding: 150px 0 78px;
      margin: 0;
    }

    .eyebrow {
      display: inline-flex;
      align-items: center;
      padding: 8px 13px;
      border-radius: 999px;
      background: rgba(56,141,217,.12);
      border: 1px solid rgba(98,178,255,.2);
      color: var(--blue-3);
      font-weight: 800;
      font-size: .82rem;
      letter-spacing: .02em;
    }

    h1 {
      margin: 14px 0 10px;
      font-size: clamp(2rem, 4.2vw, 3.9rem);
      line-height: .94;
      letter-spacing: -.05em;
      max-width: 680px;
    }

    .hero-meta {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-bottom: 12px;
    }

    .hero-meta span {
      padding: 7px 11px;
      border-radius: 999px;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.08);
      font-size: .82rem;
      color: #eef5ff;
      font-weight: 700;
    }

    .hero-text {
      max-width: 620px;
      color: var(--muted);
      font-size: .98rem;
      margin: 0 0 16px;
    }

    .hero-cta {
      display: flex;
      flex-wrap: wrap;
      gap: 12px;
      margin-bottom: 12px;
    }

    .btn {
      min-height: 48px;
      display: inline-flex;
      align-items: center;
      justify-content: center;
      padding: 0 18px;
      border-radius: 14px;
      font-weight: 800;
      transition: transform .18s ease;
    }

    .btn:hover { transform: translateY(-1px); }

    .btn-primary {
      background: linear-gradient(90.2deg, rgb(1,47,95) -0.4%, rgb(56,141,217) 106.1%);
      color: #fff;
      box-shadow: 0 14px 34px rgba(56,141,217,.28);
    }

    .btn-secondary {
      color: #fff;
      background: rgba(255,255,255,.08);
      border: 1px solid rgba(255,255,255,.12);
    }

    .hero-note {
      color: #d8e6fa;
      font-size: .88rem;
      max-width: 620px;
    }

    .section { padding: 16px 0 10px; }

    .section-head {
      display: flex;
      align-items: end;
      justify-content: space-between;
      gap: 16px;
      margin-bottom: 12px;
    }

    .section-head h2 {
      margin: 0;
      font-size: clamp(1.22rem, 2vw, 1.75rem);
      letter-spacing: -.03em;
      color: #3283cc;
      text-transform: uppercase;
    }

    .section-head p {
      display: none;
    }

    .section-head a {
      color: var(--blue-3);
      font-weight: 800;
      font-size: .9rem;
      white-space: nowrap;
    }

    .rail {
      display: grid;
      grid-auto-flow: column;
      /* 4.5 cards visibles : (100% - 4 gaps) / 4.5 */
      grid-auto-columns: calc((100% - 4 * 16px) / 4.5);
      gap: 16px;
      overflow-x: auto;
      padding-bottom: 10px;
      padding-right: 20px; /* laisse respirer la 5ème card */
      scroll-snap-type: x proximity;
      scrollbar-width: thin;
      scrollbar-color: rgba(98, 178, 255, 0) transparent;
    }

    .rail::-webkit-scrollbar { height: 10px; }
    .rail::-webkit-scrollbar-thumb { background: rgba(98,178,255,0); border-radius: 999px; }


    .card {
      background: transparent;
      border: 0;
      border-radius: 0;
      overflow: visible;
      box-shadow: none;
      min-height: 100%;
      position: relative;
      scroll-snap-align: start;
    }

    .thumb {
      display: block;
      aspect-ratio: 16 / 11.5;
      overflow: hidden;
      border-radius: 18px;
      background: linear-gradient(135deg, rgba(56,141,217,.18), rgba(255,255,255,.06));
      box-shadow: var(--shadow);
      position: relative;
    }

    .thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      transition: transform .35s ease;
    }

    .card:hover .thumb img { transform: scale(1.05); }
    .body { padding: 12px 4px 0; }

    .tag {
      display: inline-flex;
      align-items: center;
      min-height: 28px;
      padding: 0 10px;
      border-radius: 999px;
      background: rgba(56,141,217,.1);
      border: 1px solid rgba(98,178,255,.14);
      color: var(--blue-3);
      font-size: .78rem;
      font-weight: 800;
      margin-bottom: 10px;
    }

    .title {
      font-weight: 800;
      font-size: .95rem;
      line-height: 1.35;
      margin-bottom: 7px;
    }

    .copy {
      color: var(--muted);
      font-size: .86rem;
      line-height: 1.45;
    }

    /* ── Cinéma carousel — mêmes dimensions que TV ──────────────────────── */
    .section--cinema .rail {
      grid-auto-columns: calc((100% - 4 * 16px) / 4.5);
    }
    .section--cinema .thumb {
      aspect-ratio: 16 / 11.5;
      overflow: hidden;
      border-radius: 18px;
    }
    .section--cinema .thumb img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      object-position: center top;
    }
    .section--cinema .card {
      background: transparent;
      border: 0;
      border-radius: 0;
      box-shadow: none;
    }

    .match-badge {
      position: absolute;
      top: 10px;
      right: 10px;
      width: 58px;
      height: 58px;
      border-radius: 50%;
      display: grid;
      place-items: center;
      background: conic-gradient(var(--blue-2) calc(var(--p) * 1%), rgba(255,255,255,.18) 0);
      box-shadow: 0 10px 30px rgba(0,0,0,.28);
    }

    .match-badge::before {
      content: "";
      width: 42px;
      height: 42px;
      border-radius: 50%;
      background: rgba(3,17,33,.92);
      position: absolute;
    }

    .match-badge span {
      position: relative;
      z-index: 2;
      font-size: .78rem;
      font-weight: 900;
      color: #fff;
    }

    .match-reason {
      margin-top: 8px;
      color: #dce8fa;
      font-size: .82rem;
    }

    .split {
      display: grid;
      grid-template-columns: 1.15fr .85fr;
      gap: 18px;
      margin-top: 8px;
    }

    .premium-card,
    .side-card {
      border-radius: 24px;
      border: 1px solid rgba(98,178,255,.14);
      box-shadow: var(--shadow);
      overflow: hidden;
      background: rgba(255,255,255,.05);
    }

    .premium-card {
      position: relative;
      min-height: 280px;
      /* Auparavant, image Unsplash externe : fragile (CDN tiers, cookies bloqués
         par certains navigateurs/extensions, dépendance réseau). Remplacé par
         un dégradé bleu marine cohérent avec la DA du site. Si tu veux remettre
         une image, upload-la dans /wp-content/uploads/ et utilise un chemin
         relatif comme pour le hero. */
      background:
        linear-gradient(135deg, #04162d 0%, #0a1f3d 45%, #143667 100%);
    }

    .premium-content { padding: 28px; max-width: 560px; }
    .premium-content h2 {
      margin: 0 0 10px;
      font-size: clamp(1.6rem, 3vw, 2.6rem);
      line-height: .98;
      letter-spacing: -.04em;
    }

    .premium-content p { margin: 0 0 14px; color: var(--muted); }
    .side-card { padding: 20px; }
    .side-card h3 { margin: 0 0 10px; font-size: 1.02rem; }
    .side-card p { margin: 0; color: var(--muted); }

    .pill-list {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 14px;
    }

    .pill {
      min-height: 34px;
      padding: 0 12px;
      display: inline-flex;
      align-items: center;
      border-radius: 999px;
      background: rgba(255,255,255,.06);
      border: 1px solid rgba(255,255,255,.08);
      color: #e8f2ff;
      font-size: .84rem;
      font-weight: 700;
    }

    .cta-panel {
      margin: 22px 0 46px;
      padding: 28px;
      border-radius: 28px;
      background: linear-gradient(180deg, rgba(1,47,95,.24), rgba(56,141,217,.08));
      border: 1px solid rgba(98,178,255,.18);
      box-shadow: var(--shadow);
      text-align: center;
    }

    .cta-panel h2 {
      margin: 0 0 10px;
      font-size: clamp(1.8rem, 4vw, 2.8rem);
      line-height: .98;
      letter-spacing: -.04em;
    }

    .cta-panel p {
      max-width: 760px;
      margin: 0 auto 16px;
      color: var(--muted);
      font-size: .95rem;
    }

    footer {
      padding: 22px 0 34px;
      color: #b8c5d8;
      border-top: 1px solid rgba(255,255,255,.04);
    }

    .footer-grid {
      display: grid;
      grid-template-columns: 1.2fr .8fr .8fr .8fr;
      gap: 22px;
    }

    .footer-grid h4 { margin: 0 0 12px; font-size: 1rem; }
    .footer-grid p,
    .footer-grid a {
      color: var(--muted);
      font-size: .92rem;
      display: block;
      margin: 0 0 8px;
    }

    @media (max-width: 1100px) {
      .split,
      .footer-grid,
      .hero-grid { grid-template-columns: 1fr; }
      .side-card { display: none; }
      .hero-shell { min-height: 560px; }
      .hero-media { width: min(70vw, 58%); min-width: 0; }
      .hero-content { width: min(100%, 620px); padding: 136px 0 64px; }
    }

    @media (max-width: 760px) {
      .container { width: 100%; padding-left: 12px; padding-right: 12px; }
      .nav { display: none; }
      .topbar-inner { min-height: 62px; }
      .brand img { height: 60px; }
      .top-actions { gap: 8px; }
      .pill-btn { min-height: 38px; padding: 0 12px; font-size: .88rem; }
      .hero { margin-top: -62px; }
      .hero-shell { min-height: 500px; }
      .hero-media {
        width: 100%;
        min-width: 0;
        background-position: 62% center;
        -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 34%, #000 100%);
        mask-image: linear-gradient(90deg, transparent 0, #000 34%, #000 100%);
      }
      .hero-content { width: min(100%, 100%); padding: 104px 0 42px; }
      h1 { font-size: clamp(2rem, 9vw, 3.1rem); }
      .hero-cta .btn { width: 100%; }
      .top10-num { font-size: 5.3rem; }
      .rail {
        grid-auto-columns: calc(100% / 1.5 - 16px);
        padding-right: 0;
        gap: 12px;
      }
      /* Forcer le même comportement mobile sur le rail cinéma (spécificité plus haute) */
      .section--cinema .rail {
        grid-auto-columns: calc(100% / 1.5 - 16px);
      }
      .cta-panel { padding: 22px 16px; }
    }
  

/* ── Adaptation PHP : hero-media background dynamique ───────────────────────
   La référence utilise un background shorthand avec URL codée en dur.
   Notre implémentation injecte background-image via style inline depuis PHP.
   On conserve toutes les autres propriétés (mask-image, inset, width) intactes
   et on ajoute le gradient interne via ::after. ──────────────────────────── */

.hero-media {
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
}

.hero-media::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(0,3,28,0) 0%, rgba(0,3,28,.06) 100%);
  pointer-events: none;
}

/* Cap 4 pills max dans le hero */
.hero-meta span:nth-child(n+5) { display: none; }

/* ── Top 10 — style référence exact ─────────────────────────────────────── */
    .top10-rail {
      display: flex;
      flex-direction: row;
      align-items: center;
      gap: 31px;
      overflow-x: auto;
      padding: 8px 4px 14px;
      scroll-snap-type: x proximity;
      scrollbar-width: thin;
      scrollbar-color: rgba(98, 178, 255, 0) transparent;
    }
    .top10-rail::-webkit-scrollbar { display: none; }

    .top10-item {
      position: relative;
      flex: 0 0 auto;
      display: flex;
      align-items: center;
      text-decoration: none;
    }

    /* Chiffre — grande typographie en outline */
    .top10-num {
      position: relative;
      flex: 0 0 auto;
      font-family: Arial, 'Arial Black', ui-sans-serif, sans-serif;
      font-size: clamp(5rem, 9vw, 8.5rem);
      font-weight: 900;
      line-height: 1;
      color: rgba(180, 210, 255, 0);
      -webkit-text-stroke: 2px rgba(180, 210, 255, 0.6);
      text-stroke: 2px rgba(180, 210, 255, 0.6);
      text-shadow: none;
      width: clamp(60px, 8vw, 95px);
      text-align: center;
      user-select: none;
      z-index: 1;
    }

    /* Wrapper image + titre */
    .top10-card {
      display: flex;
      flex-direction: column;
      gap: 8px;
      position: relative;
      z-index: 2;
      margin-left: -17px;
    }

    .top10-item img,
    .top10-placeholder {
      flex: 0 0 auto;
      width: 200px;
      height: 180px;
      object-fit: cover;
      border-radius: 10px;
      display: block;
      position: relative;
      z-index: 1;
      box-shadow: -8px 0 20px rgba(0,0,0,.45);
      transition: transform .2s ease, box-shadow .2s ease;
    }

    .top10-title {
      font-size: .82rem;
      font-weight: 700;
      color: #b8c6dc;
      line-height: 1.3;
      max-width: 200px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      padding: 0 2px;
    }

    .top10-item:hover .top10-title { color: #f4f7fb; }

    .top10-placeholder { background: rgba(255,255,255,.06); }

    .top10-item:hover img { transform: scale(1.04); box-shadow: -8px 0 30px rgba(0,0,0,.6); }

    @media (max-width: 600px) {
      .top10-rail {
        gap: 16px;
        padding: 8px 8px 14px;
      }
      .top10-item {
        width: auto;
      }
      .top10-num {
        font-size: 100px;
        width: clamp(44px, 12vw, 60px);
        -webkit-text-stroke: 2px rgba(180, 210, 255, 0.6);
      }
      .top10-item img,
      .top10-placeholder {
        width: clamp(100px, 28vw, 140px);
        height: clamp(140px, 40vw, 200px);
        margin-left: 14px;
      }
      .top10-item::before {
        left: 29px;
      }
      .top10-title {
        max-width: clamp(100px, 28vw, 140px);
        font-size: .75rem;
      }
    }
