
/* ── Police d'affichage — Metropolitano (chiffres TOP 10) ───────────────── */
/* Fichier à placer : /wp-content/themes/touslescastings-theme/assets/fonts/metropolitano-900.woff2 */
/* Subset recommandé : chiffres 0-9 uniquement → ≈ 8 Ko max                                        */
@font-face {
  font-family: 'Metropolitano';
  src: url('../fonts/metropolitano-900.woff2') format('woff2');
  font-weight: 900;
  font-style: normal;
  font-display: swap;           /* pas de blocage du rendu */
  unicode-range: U+0030-0039;   /* chiffres 0–9 uniquement */
}

/* ── Overflow horizontal global — anti-débordement mobile ───────────────── */
/* Anti-overflow horizontal — robuste iOS Safari + tous navigateurs */
html {
    overflow-x: clip;          /* plus fiable que hidden sur iOS */
    max-width: 100%;
}
body {
    overflow-x: hidden;
    max-width: 100%;
    width: 100%;
}
.container { max-width: 100%; }
/* ── TousLesCastings — main.css ─────────────────────────────────────────────
   Variables + reset + container définis ici.
   CSS homepage : homepage.css (chargé uniquement sur is_front_page())
   CSS pages internes : ci-dessous.
   ─────────────────────────────────────────────────────────────────────────── */

    :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;
      color-scheme: dark;
    }

    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; color-scheme: dark; }

/* ── Selects natifs — couleur uniforme sur toutes les pages ──────────── */
/* Force #0e1f3a sur toutes les options/optgroups pour éviter la couleur
   system dark-mode du navigateur qui varie selon l'OS. */
select option,
select optgroup {
    background-color: #0e1f3a;
    color: #f4f7fb;
}
    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 / Header ────────────────────────────────────────────────────── */
    .topbar {
      position: fixed;
      top: 0;
      left: 0;
      right: 0;
      z-index: 90;
      background: transparent;
      border-bottom: 1px solid transparent;
      transition: background .3s ease, border-color .3s ease, box-shadow .3s 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 — ancien style dropdown remplacé par overlay fixe */

    .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 → fonctionne sur les 2 domaines mescastings.fr/touslescastings.fr */
        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);
    }

    .btn-external {
      background: linear-gradient(90deg, #c0392b, #e74c3c);
      color: #fff;
      box-shadow: 0 14px 34px rgba(192,57,43,.35);
      border: none;
    }

    .btn-external:hover {
      background: linear-gradient(90deg, #a93226, #cb4335);
    }

    .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;
    }

    .section-head p {
      margin: 4px 0 0;
      color: var(--muted);
      font-size: .9rem;
    }

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

    .rail {
      display: grid;
      grid-auto-flow: column;
      grid-auto-columns: minmax(220px, 1fr);
      gap: 16px;
      overflow-x: auto;
      padding-bottom: 6px;
      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; }

    /* ── Top 10 Rail ─────────────────────────────────────────────────────── */
    .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 { height: 8px; }
    .top10-rail::-webkit-scrollbar-thumb { background: rgba(98,178,255,0); border-radius: 999px; }

    /* Chaque item = [numéro | image] flex row */
    .top10-item {
      display: flex;
      flex-direction: row;
      align-items: center;
      flex-shrink: 0;
      scroll-snap-align: start;
      text-decoration: none;
      background: none;
      border: none;
      padding: 0;
      position: relative;
    }

    /* Glow flou derrière le numéro */
    .top10-item::before {
      content: "";
      position: absolute;
      width: 78px;
      height: 117px;
      left: 43px;
      top: 50%;
      margin-top: -62px;
      background: #2f90e7a3;
      filter: blur(25px);
      pointer-events: none;
      z-index: 0;
    }

    .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;
      background: linear-gradient(135deg, rgba(56,141,217,.18), rgba(255,255,255,.06));
    }

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

    .top10-item:hover .top10-title { color: var(--text); }
    .top10-item:hover img { transform: scale(1.03); box-shadow: 0 12px 32px rgba(0,0,0,.65); }

    .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;
    }

    .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;
      /* Dégradé bleu marine cohérent DA — remplace une dépendance Unsplash
         fragile (voir homepage.css pour le détail). */
      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; }
      .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: 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-item { padding: 0; }
      .cta-panel { padding: 22px 16px; }
    }

/* ── Detail page ─────────────────────────────────────────────────────────── */
.tlc-detail { padding-bottom: 0; }

/* ── Pages internes ─────────────────────────────────────────────────────── */
.main-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr) 380px;
    gap: 28px;
    padding: 8px 0 0;
    align-items: start;
    overflow-x: clip;
}
.content-col {
    display: flex;
    flex-direction: column;
    gap: 10px;
    min-width: 0;
    width: 100%;
    overflow: hidden;
}
.aside-col {
    min-width: 0;
}
.detail-roles { margin-bottom: 28px; }
.detail-description { margin-bottom: 28px; }
.description-body { color: var(--muted); line-height: 1.7; }
.description-gate-hint { font-size: .84rem; color: var(--blue-3); margin-top: 10px; }
.detail-credits { font-size: .88rem; color: var(--muted); margin-bottom: 24px; }
.detail-credits p { margin: 4px 0; }
.detail-apply { margin-top: 28px; padding-top: 24px; border-top: 1px solid rgba(255,255,255,.06); }
.detail-apply-btn { font-size: 1rem; min-height: 52px; padding: 0 28px; }

/* Apply — déjà candidaté */
.apply-already {
    display: flex; align-items: flex-start; gap: 12px;
    padding: 16px 20px;
    background: rgba(110,212,154,.06);
    border: 1px solid rgba(110,212,154,.2);
    border-radius: 14px;
}
.apply-already__icon { font-size: 1.2rem; color: #6ed49a; margin-top: 2px; flex-shrink: 0; }
.apply-already__label { display: block; font-weight: 700; color: #6ed49a; margin-bottom: 4px; }
.apply-already__sub { font-size: .86rem; color: var(--muted); margin: 0; }
.apply-already__sub a { color: var(--blue-3); }

/* Access block states */
.access-block { padding: 18px 20px; border-radius: 14px; margin-bottom: 20px; }
.access-block--expired {
    background: rgba(255,255,255,.04);
    border: 1px solid rgba(255,255,255,.08);
}
.access-block--locked {
    background: rgba(56,141,217,.06);
    border: 1px solid rgba(98,178,255,.18);
}
.access-block--login-required {
    background: rgba(1,47,95,.12);
    border: 1px solid rgba(98,178,255,.14);
}
.access-status { display: block; font-weight: 700; margin-bottom: 6px; }
.access-sub, .access-message { font-size: .88rem; color: var(--muted); margin: 0 0 10px; }
.access-header { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.access-countdown { font-size: .82rem; color: var(--blue-3); }
.access-free-date { font-size: .82rem; color: var(--muted); margin: 6px 0 10px; }
.access-cta-btn { margin-top: 6px; }
.access-cta-btn--secondary { margin-top: 6px; margin-left: 8px; }
.access-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 12px; }

/* Role card */
.role-card { padding: 16px; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; margin-bottom: 12px; }
.role-card--preview .role-criteria { opacity: .7; }
.role-header { display: flex; align-items: baseline; gap: 10px; margin-bottom: 10px; flex-wrap: wrap; }
.role-type-badge { font-size: .74rem; font-weight: 700; padding: 3px 8px; background: rgba(56,141,217,.14); color: var(--blue-3); border-radius: 999px; }
.role-label { font-weight: 700; font-size: .95rem; margin: 0; }
.role-criteria { display: flex; flex-wrap: wrap; gap: 6px; }
.criterion { font-size: .80rem; padding: 3px 8px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); }
.role-notes { margin-top: 10px; font-size: .84rem; color: var(--muted); }
.role-gate { margin-top: 10px; font-size: .82rem; color: var(--blue-3); }

/* Compat block in detail */
.detail-compat { margin-bottom: 20px; padding: 14px 16px; background: rgba(56,141,217,.06); border: 1px solid rgba(98,178,255,.12); border-radius: 12px; }
.compat-score-value { font-size: 1.4rem; font-weight: 900; color: var(--blue-3); margin-right: 8px; }
.compat-basis { font-size: .82rem; color: var(--muted); }

/* Listing layout */
.tlc-listing { padding: 24px 0 60px; }
.listing-head { margin-bottom: 20px; }
.listing-title { font-size: clamp(1.6rem, 3vw, 2.4rem); font-weight: 800; letter-spacing: -.04em; margin: 0 0 6px; }
.listing-count { color: var(--muted); font-size: .90rem; margin: 0 0 16px; }
.listing-layout { display: grid; grid-template-columns: 220px 1fr; gap: 28px; }
.listing-results {}
.listing-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; }
.listing-empty { padding: 40px 0; text-align: center; color: var(--muted); }
.listing-empty p { margin-bottom: 16px; }

/* Card in listing grid */
.tlc-card { background: var(--surface); border: 1px solid var(--border); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; }
.tlc-card--expired { opacity: .75; }
.card-media { display: block; aspect-ratio: 16/10.5; overflow: hidden; position: relative; }
.card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform .3s ease; }
.tlc-card:hover .card-media img { transform: scale(1.03); }
.card-media .card-compat-badge { position: absolute; top: 10px; right: 10px; }
.card-body { padding: 14px; flex: 1; display: flex; flex-direction: column; gap: 8px; }
.card-title { font-size: .95rem; font-weight: 700; margin: 0; line-height: 1.3; }
.card-title a:hover { color: var(--blue-3); }
.card-meta { display: flex; flex-wrap: wrap; gap: 6px; }
.meta-item { font-size: .76rem; color: var(--muted); }
.meta-item + .meta-item::before { content: '·'; margin-right: 4px; }
.card-status { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.status-badge--priority { background: rgba(56,141,217,.14); color: var(--blue-3); }
.status-badge--delayed  { background: rgba(255,200,80,.1);  color: #f5c842; }
.status-badge--expired  { background: rgba(255,255,255,.05); color: #7a8fa8; }
.status-badge--new      { background: rgba(110,212,154,.1); color: #6ed49a; }
.status-badge--urgent   { background: rgba(255,120,60,.1);  color: #ff8c5a; }
.status-sub { font-size: .74rem; color: var(--muted); }
.card-compat { font-size: .80rem; }
.card-compat--score .compat-score { font-weight: 800; color: var(--blue-3); margin-right: 5px; }
.card-compat--hard_block, .card-compat--incomplete, .card-compat--guest { color: var(--muted); }
.card-compat--guest a, .card-compat--incomplete a { color: var(--blue-3); }
.card-summary { font-size: .84rem; color: var(--muted); line-height: 1.45; margin: 0; }
.card-footer { display: flex; align-items: center; justify-content: space-between; margin-top: auto; padding-top: 6px; }
.footer-pay { font-size: .82rem; font-weight: 700; color: #6ed49a; }
.card-cta-link { font-size: .82rem; color: var(--blue-3); font-weight: 600; }

/* Filters sidebar */
.listing-filters { position: sticky; top: calc(var(--header-h) + 16px); }
.filters-form {}
.filters-row { display: flex; flex-direction: column; gap: 10px; }
.filter-select {
    width: 100%;
    padding: 9px 32px 9px 12px;
    background: #0a1628;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 10px;
    color: var(--text);
    font-size: .88rem;
    font-family: inherit;
    appearance: none;
    -webkit-appearance: none;
    color-scheme: dark;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2362b2ff' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    cursor: pointer;
}
.filter-select:focus {
    outline: none;
    border-color: var(--blue-3);
    box-shadow: 0 0 0 2px rgba(98,178,255,.15);
}
.filter-submit { width: 100%; }
.filter-reset { font-size: .82rem; color: var(--muted); text-align: center; display: block; margin-top: 4px; }
.filter-reset:hover { color: var(--blue-3); }

/* Sidebar detail */
.sidebar-card { padding: 18px; background: var(--surface); border: 1px solid var(--border); border-radius: 14px; margin-bottom: 16px; }

/* ── Sidebar detail — info-list (dl/dt/dd) ──────────────────────────────── */
.info-list { margin: 0; padding: 0; }
.info-row {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 12px;
    padding: 7px 0;
    border-bottom: 1px solid rgba(255,255,255,.04);
}
.info-row:last-child { border-bottom: none; padding-bottom: 0; }
.info-row dt {
    font-size: .78rem;
    color: var(--muted);
    white-space: nowrap;
    flex-shrink: 0;
    font-weight: 500;
}
.info-row dd {
    font-size: .86rem;
    font-weight: 600;
    color: var(--text);
    text-align: right;
    margin: 0;
}
.info-row--deadline dd { display: flex; align-items: center; gap: 6px; justify-content: flex-end; flex-wrap: wrap; }
.info-row--pay dd { color: #6ed49a; }

.deadline-badge {
    display: inline-block;
    background: rgba(255,100,50,.14);
    color: #ff8c5a;
    border: 1px solid rgba(255,100,50,.22);
    border-radius: 999px;
    font-size: .70rem;
    font-weight: 800;
    padding: 1px 7px;
    white-space: nowrap;
}

.sidebar-card--notes { font-size: .86rem; color: var(--muted); }
.sidebar-card--notes p { margin: 0; line-height: 1.6; }

/* ── Card listing — champs sous-exploités ───────────────────────────────── */
.card-cast {
    font-size: .78rem;
    color: var(--muted);
    font-style: italic;
    margin: 0;
    line-height: 1.4;
}

.footer-pay {
    font-size: .84rem;
    font-weight: 700;
    color: #6ed49a;
}

.card-cta-link {
    font-size: .82rem;
    font-weight: 700;
    color: var(--blue-3);
    white-space: nowrap;
}
.card-cta-link:hover { text-decoration: underline; }

/* Badge deadline discret sur la card listing */
.card-deadline {
    font-size: .74rem;
    font-weight: 700;
    color: #ff8c5a;
    background: rgba(255,100,50,.10);
    border: 1px solid rgba(255,100,50,.18);
    border-radius: 999px;
    padding: 2px 8px;
    display: inline-block;
}

/* Broadcaster méta secondaire */
.meta-broadcaster {
    color: var(--muted);
    font-size: .76rem;
}

/* ── Detail hero — --hero-bg CSS var ────────────────────────────────────── */
/* ── Detail hero — architecture split identique à la cible ─────────────── */
.detail-hero {
    position: relative;
    padding: 0 0 18px;
    margin-top: calc(var(--header-h) * -1);
    background: var(--bg);
    overflow: hidden;
}

/* hero-shell : conteneur relatif avec min-height */
.detail-hero-shell {
    position: relative;
    width: 100%;
    min-height: 480px;
    overflow: hidden;
    background: var(--bg);
}

/* Double gradient overlay gauche + bas — identique cible split */
.detail-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 : image positionnée DROITE avec mask — fidèle à la cible */
.detail-hero-media {
    position: absolute;
    inset: 0 0 0 auto;
    width: min(70vw, calc(100% - 380px));
    min-width: 50%;
    background-size: cover;
    background-position: center top;
    -webkit-mask-image: linear-gradient(90deg, transparent 0, #000 18%, #000 100%);
    mask-image: linear-gradient(90deg, transparent 0, #000 18%, #000 100%);
}

/* overlay final bas de page */
.detail-hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(0,3,28,.04) 0%, rgba(0,3,28,0) 14%, rgba(0,3,28,0) 72%, rgba(0,3,28,.42) 88%, rgba(0,3,28,.92) 100%);
    z-index: 1;
    pointer-events: none;
}

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

.hero-inner {
    position: relative;
    z-index: 2;
    padding: 200px 0 58px;
    max-width: min(700px, 100%);
    word-break: break-word;
    overflow-wrap: break-word;
}

.hero-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

.hero-title {
    font-size: clamp(1.8rem, 3.5vw, 3.1rem);
    line-height: 1.08;
    letter-spacing: -.03em;
    margin: 0 0 14px;
    color: var(--text);
    word-break: break-word;
    overflow-wrap: break-word;
}

.hero-meta { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 16px; }

.hero-meta-item {
    padding: 5px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.08);
    font-size: .78rem;
    color: #eef5ff;
    font-weight: 600;
}

.hero-cta { margin-top: 4px; }
.hero-expired-notice { font-size: .86rem; color: var(--muted); margin-top: 10px; display: block; }

/* ── Detail credits ─────────────────────────────────────────────────────── */
.detail-credits {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 12px;
    padding: 14px 18px;
    margin-bottom: 24px;
}
.detail-credits p { margin: 5px 0; font-size: .86rem; color: var(--muted); line-height: 1.5; }
.detail-credits strong { color: var(--text); font-weight: 600; }

/* ── Role card ──────────────────────────────────────────────────────────── */
.role-card {
    background: linear-gradient(135deg, rgba(1,47,95,.98) 0%, rgba(56,141,217,.94) 100%);
    border: 1px solid rgba(98,178,255,.28);
    border-radius: 18px;
    padding: 18px;
    margin-bottom: 0;
    box-shadow: 0 18px 40px rgba(1,47,95,.28);
    color: white;
    display: flex;
    flex-direction: column;
}
/* Grille 2 colonnes pour les role-cards */
.detail-roles-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
}
.role-header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }
.role-type-badge {
    font-size: .72rem;
    font-weight: 800;
    background: rgba(255,255,255,.15);
    color: #fff;
    border: 1px solid rgba(255,255,255,.25);
    border-radius: 999px;
    padding: 3px 9px;
    white-space: nowrap;
}
.role-label { font-size: .96rem; font-weight: 700; margin: 0; color: #fff; }
.role-criteria { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 8px; }
.criterion {
    font-size: .78rem;
    font-weight: 600;
    padding: 4px 10px;
    border-radius: 999px;
    background: rgba(255,255,255,.12);
    border: 1px solid rgba(255,255,255,.18);
    color: #fff;
}
.criterion--region { background: rgba(255,255,255,.18); color: #fff; border-color: rgba(255,255,255,.28); }
.role-details { border-top: none; padding-top: 10px; margin-top: 6px; flex: 1; display: flex; flex-direction: column; }
.role-detail-item { font-size: .84rem; color: rgba(255,255,255,.88); margin: 5px 0; line-height: 1.5; }
.role-detail-item strong { color: #fff; }

/* Contenu physique brut — affiché directement sans label */
.role-physical-content {
    font-size: .90rem;
    color: rgba(255,255,255,.92);
    line-height: 1.6;
    margin-bottom: 8px;
}
.role-physical-content p {
    margin: 4px 0;
    color: rgba(255,255,255,.92);
}
.role-physical-content ul,
.role-physical-content ol {
    margin: 6px 0 6px 16px;
    padding: 0;
}
.role-physical-content li {
    margin-bottom: 4px;
    color: rgba(255,255,255,.92);
}
.role-physical-content strong {
    color: #fff;
    font-weight: 700;
}
.role-notice {
    font-size: .80rem;
    font-weight: 700;
    color: #f5c842;
    background: rgba(245,200,66,.12);
    border: 1px solid rgba(245,200,66,.22);
    border-radius: 8px;
    padding: 5px 10px;
    margin-top: 8px;
    display: inline-block;
}
/* Preview mode (non connecté) */
.role-card--preview .role-details { display: none; }
.role-preview-hint {
    font-size: .78rem;
    color: rgba(255,255,255,.7);
    font-style: italic;
    margin-top: 6px;
}

@media (max-width: 860px) {
    .detail-roles-grid { grid-template-columns: 1fr; }
}

@media (max-width: 760px) {
    .detail-hero { min-height: 280px; }
    .hero-inner { padding: 36px 0 28px; max-width: 100%; }
    .hero-title { font-size: clamp(1.25rem, 5vw, 1.8rem); }
}

.sidebar-title { font-weight: 700; font-size: .90rem; margin: 0 0 10px; }
.sidebar-row { display: flex; justify-content: space-between; font-size: .84rem; margin-bottom: 6px; }
.sidebar-label { color: var(--muted); }
.sidebar-value { font-weight: 600; }

/* Brand text fallback (no logo) */
.brand-text { font-size: 1rem; font-weight: 800; color: var(--text); }

/* pill-btn primary variant */
.pill-btn--primary {
    background: linear-gradient(90.2deg, #012f5f -0.4%, #388dd9 106.1%);
    border-color: transparent;
}

/* Responsive */
@media (max-width: 1180px) {
    .main-grid { grid-template-columns: 1fr; }
    .aside-col { display: none; }
    .listing-layout { grid-template-columns: 1fr; }
    .listing-filters { position: static; }
    .filters-row { flex-direction: row; flex-wrap: wrap; }
    .filter-select { width: auto; flex: 1; min-width: 140px; }
    .filter-submit { width: auto; }
}
@media (max-width: 760px) {
    .nav { display: none; }
    .mobile-menu-btn { display: inline-flex; }
    .listing-grid { grid-template-columns: 1fr; }
    .access-actions { flex-direction: column; }
    .access-cta-btn--secondary { margin-left: 0; }
}

/* ── Hero homepage — image background technique + référence exacte ─────────
   Scope : .tlc-homepage .hero — ne touche pas le détail ni les autres pages.
   Valeurs calées sur la référence Accueil.html pixel pour pixel.
   ─────────────────────────────────────────────────────────────────────────── */

/* Sécurité si un <img> résiduel reste dans .hero-media */
.hero-media img { display: none; }

/* 1. hero-media — background dynamique via inline style (background-image)
      + gradient interne subtil via ::after (reproduit le layer rgba de la référence)
      Les autres propriétés (mask-image, inset, width) sont déjà correctes en base. */
.tlc-homepage .hero-media {
    background-size: cover;
    background-position: center center;
    background-repeat: no-repeat;
}

/* Gradient interne hero-media : rgba(0,3,28,0)→rgba(0,3,28,.06) de la référence
   Perdu quand background-image inline écrase le background shorthand.
   Reconstitué via ::after sur hero-media. */
.tlc-homepage .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;
}

/* 2. Bloc contenu — référence exacte : min(100%, 700px) */
.tlc-homepage .hero-content {
    width: min(100%, 700px);
    /* padding : identique à la base, pas d'override */
}

/* 3. h1 — référence exacte */
.tlc-homepage .hero h1 {
  font-size: clamp(1.8rem, 3.5vw, 3.1rem);
  line-height: 1.08;
  letter-spacing: -.03em;
  max-width: 680px;
  margin: 14px 0 10px;
  text-shadow: 0px 0px 5px #000;
}

/* 4. Pills — référence exacte : 7px 11px / .82rem + cap 4 */
.tlc-homepage .hero-meta span {
    padding: 7px 11px;
    font-size: .82rem;
    font-weight: 700;
    color: #eef5ff;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.08);
    border-radius: 999px;
}

/* Cap strict : jamais plus de 4 pills dans le hero */
.tlc-homepage .hero-meta span:nth-child(n+5) {
    display: none;
}

/* 5. hero-meta gap + marge basse — référence exacte */
.tlc-homepage .hero-meta {
    gap: 8px;
    margin-bottom: 40px;
}

/* 6. hero-text — masqué */
.tlc-homepage .hero-text { display: none; }

/* 7. hero-cta — référence exacte */
.tlc-homepage .hero-cta {
    gap: 12px;
    margin-bottom: 12px;
}

/* 8. hero-note — référence exacte : pas de border-top, couleur précise */
.tlc-homepage .hero-note {
    color: #d8e6fa;
    font-size: .88rem;
    max-width: 620px;
    border-top: none;   /* annule le border-top ajouté en passe précédente */
    padding-top: 0;
}

/* 9. Responsive ≤ 1100px — référence exacte */
@media (max-width: 1100px) {
    .tlc-homepage .hero-content {
        width: min(100%, 620px);
        padding: 136px 0 64px;
    }
    .tlc-homepage .hero h1 {
        font-size: clamp(2rem, 4.2vw, 3.9rem);
        max-width: 620px;
        text-shadow: 0px 0px 5px #000;
    }
}

/* 10. Responsive ≤ 760px — référence exacte */
@media (max-width: 760px) {
    .tlc-homepage .hero-content {
        width: 100%;
        padding: 200px 0 42px;
    }
    .tlc-homepage .hero h1 {
        font-size: 30px;
        max-width: 100%;
        letter-spacing: -.04em;
        text-shadow: 0px 0px 5px #000;
    }
    .tlc-homepage .hero-text,
    .tlc-homepage .hero-note {
        max-width: 100%;
    }
    .tlc-homepage .hero-cta .btn {
        width: 100%;
    }
}



/* ── Page Premium ────────────────────────────────────────────────────────── */
.tlc-premium-page { padding-bottom: 80px; }

.premium-hero {
    padding: 80px 0 64px;
    border-bottom: 1px solid var(--border);
}

.premium-hero-inner { max-width: 680px; }

.premium-hero .eyebrow {
    display: inline-flex;
    align-items: center;
    padding: 6px 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;
    margin-bottom: 18px;
}

.premium-hero h1 {
    font-size: clamp(1.7rem, 3.2vw, 2.8rem);
    line-height: 1.08;
    letter-spacing: -.04em;
    margin: 0 0 18px;
}

.premium-lead {
    font-size: 1rem;
    color: var(--muted);
    max-width: 580px;
    margin: 0 0 28px;
    line-height: 1.6;
}

.premium-cta-group { display: flex; flex-wrap: wrap; gap: 12px; }

.premium-already {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    background: rgba(110,212,154,.08);
    border: 1px solid rgba(110,212,154,.18);
    border-radius: 14px;
    padding: 16px 20px;
    margin-bottom: 20px;
}
.premium-already-icon { font-size: 1.2rem; color: #6ed49a; flex-shrink: 0; margin-top: 2px; }
.premium-already strong { display: block; font-size: .95rem; color: var(--text); margin-bottom: 4px; }
.premium-already p { margin: 0; font-size: .86rem; color: var(--muted); }

.premium-section { padding: 48px 0 0; }

.premium-split {
    display: grid;
    grid-template-columns: 1fr 1.1fr;
    gap: 20px;
    align-items: start;
}

.premium-block {
    background: var(--surface);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 28px;
}

.premium-block--premium {
    background: linear-gradient(160deg, rgba(1,47,95,.3) 0%, rgba(0,3,28,.8) 100%);
    border-color: rgba(98,178,255,.22);
    box-shadow: 0 20px 50px rgba(0,0,0,.3);
}

.premium-block-head { margin-bottom: 22px; }
.premium-block-head h2 {
    font-size: 1.2rem;
    letter-spacing: -.025em;
    margin: 6px 0 0;
    line-height: 1.25;
}

.premium-tier-label {
    display: inline-block;
    font-size: .72rem;
    font-weight: 800;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--muted);
}
.premium-tier-label--gold { color: #f5c842; }

.benefit-list {
    list-style: none;
    padding: 0;
    margin: 0 0 20px;
    display: flex;
    flex-direction: column;
    gap: 10px;
}
.benefit-list li {
    font-size: .88rem;
    color: var(--muted);
    padding-left: 20px;
    position: relative;
    line-height: 1.5;
}
.benefit-list li::before {
    content: "✓";
    position: absolute;
    left: 0;
    color: rgba(98,178,255,.5);
    font-weight: 700;
}
.benefit-list .benefit--highlight { color: var(--text); }
.benefit-list .benefit--highlight::before { color: var(--blue-3); }

.premium-cta-block { margin-top: 24px; border-top: 1px solid rgba(255,255,255,.06); padding-top: 20px; }
.premium-price-note { font-size: .82rem; color: var(--muted); margin: 0 0 14px; }

.premium-note-panel {
    background: linear-gradient(180deg, rgba(1,47,95,.16), rgba(56,141,217,.06));
    border: 1px solid rgba(98,178,255,.14);
    border-radius: 20px;
    padding: 36px;
    text-align: center;
    max-width: 760px;
    margin: 0 auto;
}
.premium-note-panel h2 {
    font-size: clamp(1.3rem, 2.5vw, 1.9rem);
    letter-spacing: -.03em;
    margin: 0 0 14px;
}
.premium-note-panel p {
    color: var(--muted);
    font-size: .95rem;
    line-height: 1.65;
    max-width: 580px;
    margin: 0 auto 22px;
}

@media (max-width: 760px) {
    .premium-hero { padding: 48px 0 40px; }
    .premium-split { grid-template-columns: 1fr; }
    .premium-note-panel { padding: 24px 16px; }
}

/* ── TMDB Cast block ────────────────────────────────────────────────────── */

/* Titre de section — commun aux sections detail (Profils, Aperçu, Acteurs) */
.detail-main .section-title {
    font-size: 1rem;
    font-weight: 700;
    color: var(--text);
    margin: 0 0 14px;
    letter-spacing: -.01em;
}

/* Bloc cast — espacement cohérent avec detail-compat (margin-bottom: 20px) */
.detail-cast {
    margin-bottom: 28px;
    padding-top: 4px;
}

.cast-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(120px, 120px));
    justify-content: start;
    gap: 20px;
    margin-top: 12px;
    max-width: 100%;
}

.cast-person { text-align: center; }

.cast-photo {
    width: 100%;
    aspect-ratio: 2 / 3;
    border-radius: 8px;
    object-fit: cover;
    object-position: top center;
    background: var(--surface);
    border: 1px solid var(--border);
    display: block;
}

.cast-photo--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    aspect-ratio: 2 / 3;
    border-radius: 8px;
    background: var(--surface);
    border: 1px solid var(--border);
}

.cast-photo--placeholder svg {
    width: 36%;
    opacity: .28;
}

.cast-name {
    font-size: .72rem;
    font-weight: 600;
    color: var(--muted);
    margin-top: 7px;
    line-height: 1.3;
    word-break: break-word;
}

/* Responsive */
@media (max-width: 900px) {
    .cast-grid {
        grid-template-columns: repeat(6, 76px);
        overflow-x: auto;
        gap: 10px;
        padding-bottom: 6px;
        scrollbar-width: none;
    }
    .cast-grid::-webkit-scrollbar { display: none; }
}

@media (max-width: 600px) {
    .cast-grid {
        grid-template-columns: repeat(auto-fill, 72px);
        grid-auto-flow: column;
        grid-auto-columns: 72px;
        grid-template-rows: 1fr;
        overflow-x: auto;
        gap: 10px;
        padding-bottom: 6px;
        scrollbar-width: none;
        /* force une seule ligne */
        flex-wrap: nowrap;
    }
    .cast-grid::-webkit-scrollbar { display: none; }
    .cast-name { font-size: .68rem; }
}

/* ── Lien externe annonce (membres connectés) ───────────────────────────── */
.detail-external-link {
    margin-bottom: 28px;
    padding: 20px 22px;
    background: rgba(56,141,217,.06);
    border: 1px solid rgba(98,178,255,.16);
    border-radius: 14px;
}
.detail-external-link .section-title { margin-bottom: 8px; }
.external-link-note {
    font-size: .88rem;
    color: var(--muted);
    margin: 0 0 16px;
    line-height: 1.6;
}

/* ═══════════════════════════════════════════════════════════════════════════
   LOT 1 — Fiche annonce : layout split, aside sticky, facts-grid,
   similar-fullwidth, sticky-cta-bar, eyebrow, hero-actions
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Section panel — conteneur universel content-col ────────────────────── */
.section-panel {
    background: none;
    border: none;
    border-radius: 0;
    box-shadow: none;
    padding: 0;
}
.section-panel h2 {
    margin: 0 0 14px;
    font-size: 19px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: uppercase;
    color: #3283cc;
}

/* ── Aside sticky — apply-card ───────────────────────────────────────────── */
.apply-card {
    position: sticky;
    top: 94px;
    padding: 20px;
    background: linear-gradient(180deg, rgba(56,141,217,.10), rgba(255,255,255,.04));
    border: 1px solid rgba(98,178,255,.18);
    border-radius: 22px;
    backdrop-filter: blur(10px);
    box-shadow: 0 8px 24px rgba(0,0,0,.28);
}
.apply-card-title {
    font-size: 1.1rem;
    font-weight: 800;
    margin: 0 0 6px;
    letter-spacing: -.02em;
}
.apply-card-sub {
    font-size: .82rem;
    color: var(--muted);
    margin: 0 0 16px;
    line-height: 1.5;
}
.apply-card-meta {
    display: grid;
    gap: 7px;
    margin-bottom: 18px;
    padding-bottom: 16px;
    border-bottom: 1px solid rgba(255,255,255,.07);
}
.apply-card-meta-row {
    display: flex;
    justify-content: space-between;
    font-size: .83rem;
}
.apply-card-meta-row span:first-child { color: var(--muted); }
.apply-card-meta-row span:last-child { font-weight: 600; }
.apply-card .btn { width: 100%; justify-content: center; }
.apply-card .btn + .btn { margin-top: 8px; }
.apply-card-already {
    display: flex;
    align-items: center;
    gap: 20px;
    padding: 28px 32px;
    background: linear-gradient(135deg, rgba(110,212,154,.10) 0%, rgba(98,178,255,.08) 100%);
    border: 1px solid rgba(110,212,154,.35);
    border-radius: 18px;
    width: 100%;
    box-sizing: border-box;
}
.apply-card-already__icon {
    flex-shrink: 0;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: rgba(110,212,154,.15);
    border: 2px solid rgba(110,212,154,.4);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.4rem;
    color: #6ed49a;
}
.apply-card-already__text { flex: 1; }
.apply-card-already__text strong {
    display: block;
    color: #6ed49a;
    font-weight: 800;
    font-size: 1.1rem;
    margin-bottom: 6px;
}
.apply-card-already__text span {
    display: block;
    color: var(--muted);
    font-size: .88rem;
    line-height: 1.5;
    margin-bottom: 14px;
}
.apply-card-already__text a {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--blue-3);
    font-weight: 600;
    font-size: .88rem;
    text-decoration: none;
}
.apply-card-already__text a:hover { text-decoration: underline; }

/* ── Eyebrow hero ────────────────────────────────────────────────────────── */
.eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 7px 12px;
    border-radius: 999px;
    background: rgba(56,141,217,.14);
    border: 1px solid rgba(98,178,255,.22);
    color: var(--blue-3);
    font-size: .82rem;
    font-weight: 800;
    width: fit-content;
    margin-bottom: 14px;
}

/* ── Hero actions — 2 CTAs ───────────────────────────────────────────────── */
.hero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-top: 14px;
}

/* ── Intro section ───────────────────────────────────────────────────────── */
.detail-intro { }
.detail-intro .description-body {
    color: #fff;
    line-height: 1.7;
    margin-bottom: 14px;
}
.detail-intro .description-body p {
    color: #fff;
}
.detail-intro .detail-credits {
    margin-bottom: 0;
    margin-top: 14px;
    background: rgba(255,255,255,.03);
    border-color: rgba(255,255,255,.06);
    box-shadow: none;
}

/* ── Facts grid → liste simple LABEL : Valeur ────────────────────────────── */
.facts-grid {
    display: flex;
    flex-direction: column;
    gap: 8px;
}
.fact-box {
    display: flex;
    align-items: baseline;
    gap: 6px;
    background: none;
    border: none;
    border-radius: 0;
    padding: 0;
}
.fact-box__key {
    font-size: .90rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    color: var(--text);
    font-weight: 800;
    white-space: nowrap;
    margin-bottom: 0;
}
.fact-box__key::after {
    content: ' :';
}
.fact-box__val {
    color: #fff;
    font-weight: 400;
    line-height: 1.35;
    font-size: 16px;
}

/* ── Similar fullwidth ───────────────────────────────────────────────────── */
.similar-fullwidth {
    padding: 6px 0 56px;
    overflow: visible;
}
.similar-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}
.similar-head h2 {
    margin: 0;
    font-size: 1.5rem;
    letter-spacing: -.02em;
}

/* Carousel suggestions sous l'annonce — titre aligné sur les titres de section */
.detail-suggestions .section-head h2 {
    font-size: 19px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: uppercase;
    color: #3283cc;
    margin: 0;
}
.similar-track {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 18px;
    scrollbar-width: none;
}
.similar-track::-webkit-scrollbar { display: none; }
.similar-slide {
    display: block;
    min-width: 0;
    text-decoration: none;
}
.similar-slide img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 18px;
    margin-bottom: 10px;
    display: block;
}
.similar-slide-body { padding-right: 6px; }
.similar-tagline {
    color: var(--blue-3);
    font-size: .74rem;
    font-weight: 800;
    margin-bottom: 4px;
}
.similar-slide-body strong {
    display: block;
    font-size: .9rem;
    line-height: 1.3;
    font-weight: 700;
    color: var(--text);
}

/* ── Sticky CTA bar ──────────────────────────────────────────────────────── */
.sticky-cta-bar { display: none !important; }
.sticky-cta-inner {
    width: 100%;
    padding: 10px 20px;
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    background: rgba(9,18,35,.88);
    border-top: 1px solid rgba(255,255,255,.07);
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    box-shadow: 0 8px 24px rgba(0,0,0,.28);
    pointer-events: auto;
}
.sticky-cta-copy {
    margin-right: auto;
    display: flex;
    flex-direction: column;
}
.sticky-cta-copy strong {
    font-size: .92rem;
    line-height: 1.2;
    margin-bottom: 2px;
}
.sticky-cta-copy span {
    color: var(--muted);
    font-size: .78rem;
}
.sticky-cta-alert {
    display: none;
    flex: 1 1 auto;
    margin-right: 12px;
    padding: 10px 14px;
    border-radius: 14px;
    background: rgba(255,107,107,.12);
    border: 1px solid rgba(255,107,107,.38);
    color: #ffdede;
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.35;
}
.sticky-cta-alert.is-visible { display: block; }
.sticky-cta-actions {
    display: flex;
    align-items: center;
    gap: 10px;
}
.sticky-cta-btn {
    min-width: 160px;
    white-space: nowrap;
    min-height: 46px;
}

/* ── Responsive lot 1 ────────────────────────────────────────────────────── */
@media (max-width: 860px) {
    .facts-grid { grid-template-columns: 1fr; }

    .similar-track {
        display: flex;
        gap: 12px;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        padding-bottom: 8px;
        padding-right: 14px;
    }
    .similar-track::-webkit-scrollbar { display: none; }
    .similar-slide {
        flex: 0 0 72vw;
        max-width: 280px;
        scroll-snap-align: start;
    }
    .similar-slide img { height: 180px; }
    .sticky-cta-inner { padding-left: 14px; padding-right: 14px; }
    .sticky-cta-btn { min-width: 0; }
}

@media (max-width: 700px) {
    .sticky-cta-actions {
        width: 100%;
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 8px;
    }
    .sticky-cta-btn { width: 100%; min-width: 0; }
}

@media (max-width: 560px) {
    .sticky-cta-inner { padding: 8px 10px; flex-wrap: wrap; }
    .sticky-cta-copy { display: none; }
    .sticky-cta-alert { order: -1; width: 100%; margin: 0 0 8px; }
    .sticky-cta-actions {
        width: 100%;
        grid-template-columns: 1fr 1fr;
    }
    .similar-track { margin-right: -12px; }
    .similar-slide { flex: 0 0 calc(50% + 28px); }
    .similar-slide img { height: 160px; }
}

@media (max-width: 760px) {
    .hero-inner { padding: 102px 0 36px; }
}

/* ═══════════════════════════════════════════════════════════════════════════
   SOUS-LOT 2A — Formulaire inline fiche annonce
   Classes issues du template split validé
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── Formulaire réaliste ─────────────────────────────────────────────────── */
.realistic-form {
    display: grid;
    gap: 14px;
}

@media (max-width: 760px) {
    /* wide-form sur mobile : pas de double padding — les form-card ont leur propre style */
    .wide-form.realistic-form {
        background: none;
        border-radius: 0;
        padding: 0;
    }
    /* Formulaire sidebar/mobile (hors wide-form) : garde le fond card */
    .realistic-form:not(.wide-form) {
        background: linear-gradient(180deg, rgba(56,141,217,.10), rgba(255,255,255,.04));
        border-radius: 20px;
        padding: 16px;
    }
}

/* ── form-card ───────────────────────────────────────────────────────────── */
.form-card {
    border-radius: 20px;
    background: linear-gradient(90.2deg, rgb(1,47,95) -0.4%, rgb(56,141,217) 106.1%) !important;
    border: 1px solid rgba(255,255,255,.07);
    padding: 16px;
}
.form-card h3 {
    margin: 0 0 12px;
    font-size: .98rem;
    font-weight: 800;
}

/* ── field / field-grid ──────────────────────────────────────────────────── */
.field {
    display: flex;
    flex-direction: column;
    gap: 6px;
    margin: 0;
    padding-bottom: 0;
    min-width: 0;
}
.field label {
    display: block;
    font-size: .73rem;
    font-weight: 800;
    color: var(--muted);
    text-transform: uppercase;
    letter-spacing: .04em;
    line-height: 1.15;
}
.field input,
.field select,
.field textarea {
    display: block;
    width: 100%;
    border: 1px solid rgba(255,255,255,.10);
    background: rgba(255,255,255,.06);
    color: var(--text);
    border-radius: 14px;
    min-height: 44px;
    padding: 11px 13px;
    font: inherit;
    font-size: .88rem;
    color-scheme: dark;
    transition: border-color .15s;
}

/* Placeholder uniformisé — blanc semi-transparent, identique sur Chrome et Firefox */
.field input::placeholder,
.field textarea::placeholder {
    color: rgba(255,255,255,.55);
    opacity: 1; /* Firefox réduit l'opacité par défaut */
}
.field input::-webkit-input-placeholder,
.field textarea::-webkit-input-placeholder {
    color: rgba(255,255,255,.55);
}
.field input:-ms-input-placeholder,
.field textarea:-ms-input-placeholder {
    color: rgba(255,255,255,.55);
}

/* Option par défaut (vide) des selects — même couleur que les placeholders */
.field select:invalid,
.field select option[value=""],
.field select option:first-child:not(:checked) {
    color: rgba(255,255,255,.55);
}
/* Chrome : la valeur par défaut sélectionnée */
.field select.placeholder-shown,
.field select[data-placeholder] {
    color: rgba(255,255,255,.55);
}
/* Select sans valeur → grisé */
.field select.is-empty {
    color: rgba(255,255,255,.55) !important;
}
/* Select avec valeur → texte plein blanc */
.field select:not(.is-empty),
.field select option:checked {
    color: var(--text) !important;
    opacity: 1;
}
.field textarea {
    min-height: 100px;
    resize: vertical;
}

.field select option { background: #0e1f3a; color: var(--text); }
.field select optgroup { background: #0e1f3a; color: var(--muted); font-style: normal; font-weight: 800; }
.field input:focus,
.field select:focus,
.field textarea:focus {
    outline: none;
    border-color: rgba(98,178,255,.45);
    box-shadow: 0 0 0 2px rgba(98,178,255,.12);
}
.detail-field-err {
    margin: 4px 0 0;
    font-size: .74rem;
    font-weight: 700;
    color: #ff6b6b;
}

.field input.error,
.field select.error,
.field textarea.error {
    border-color: #ff6b6b;
    box-shadow: 0 0 0 2px rgba(255,107,107,.18);
}

.field-grid {
    display: grid;
    grid-template-columns: 1fr;
    column-gap: 12px;
    row-gap: 14px;
    margin-bottom: 14px;
}
.field-grid:last-child { margin-bottom: 0; }
.field-grid.field-grid-1 { grid-template-columns: 1fr; }
.field-grid.field-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.field-grid.field-grid-3 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

/* ── Photo grid ──────────────────────────────────────────────────────────── */
.photo-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 10px;
}
.photo-box {
    min-height: 140px;
    border-radius: 16px;
    border: 1px solid rgba(98,178,255,.25);
    background: linear-gradient(135deg, rgba(1,47,95,.35), rgba(56,141,217,.18));
    position: relative;
    overflow: hidden;
    display: block;
}
.photo-box img {
    width: 100%;
    height: 100%;
    min-height: 140px;
    object-fit: cover;
    border-radius: 14px;
    display: block;
}

/* ── Slots photos supplémentaires (3 colonnes serrées) ───────────────────
   On force un format carré stable via aspect-ratio pour que la box ne soit
   jamais déformée par l'image qu'on y dépose. L'image elle-même est en
   object-fit: cover : elle remplit le container sans le déformer, en
   recadrant si besoin. Cas typique : photo iPhone 4:3 ou 3:4 → carré
   sans distorsion.
*/
.photo-box.js-extra-slot {
    /* Carré strict, pas de min-height qui pourrait gonfler la box */
    min-height: 0;
    aspect-ratio: 1 / 1;
    border-radius: 10px;
}
.photo-box.js-extra-slot > img {
    /* Override de la règle .photo-box img qui force min-height: 140px */
    min-height: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: inherit;
    display: block;
}
.photo-box.js-extra-slot > label,
.photo-box.js-extra-slot > .extra-premium-gate {
    /* Le placeholder + et le gate Premium suivent le container parent */
    min-height: 0;
    width: 100%;
    height: 100%;
}

.photo-box--preview {
    border-color: rgba(98,178,255,.4);
}
.photo-edit-btn {
    position: absolute;
    right: 8px;
    bottom: 8px;
    min-height: 32px;
    padding: 0 12px;
    border-radius: 999px;
    background: rgba(1,47,95,.9);
    border: 1px solid rgba(255,255,255,.2);
    backdrop-filter: blur(8px);
    color: #fff;
    font-size: .78rem;
    font-weight: 800;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    box-shadow: 0 6px 18px rgba(0,0,0,.3);
    z-index: 2;
    white-space: nowrap;
}
.photo-edit-btn:hover { background: rgba(56,141,217,.92); }
.photo-box.error {
    border: 2px solid #ff6b6b !important;
    box-shadow: 0 0 0 3px rgba(255,107,107,.22);
}
.photo-slot-error {
    display: none;
    margin: 6px 0 0;
    padding: 6px 10px;
    border-radius: 8px;
    background: rgba(255,107,107,.12);
    border: 1px solid rgba(255,107,107,.35);
    color: #ffdede;
    font-size: .78rem;
    font-weight: 700;
    line-height: 1.3;
    text-align: center;
}
.photo-slot-error.is-visible { display: block; }
/* label + error sous le slot (wide) */
.wide-photo-box .photo-slot-error {
    text-align: left;
}

/* ── DOB wrapper (date de naissance) ────────────────────────────────────── */
.dob-wrap {
    position: relative;
    display: flex;
    align-items: center;
}
.dob-wrap input[data-dob] {
    flex: 1;
    padding-right: 40px; /* room for button */
}
.dob-cal-btn {
    position: absolute;
    right: 10px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--muted, #b8c6dc);
    cursor: pointer;
    padding: 4px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 6px;
    transition: color .15s;
    z-index: 2;
}
.dob-cal-btn:hover { color: var(--blue-3, #62b2ff); }
.dob-native {
    position: absolute;
    opacity: 0;
    pointer-events: none; /* JS réactive temporairement au clic */
    width: 0;
    height: 0;
    right: 0;
    bottom: 0;
    border: 0;
    padding: 0;
}

/* ── Accordion ───────────────────────────────────────────────────────────── */
.accordion-card {
    border-radius: 20px;
    background: linear-gradient(90.2deg, rgb(1,47,95) -0.4%, rgb(56,141,217) 106.1%) !important;
    border: 1px solid rgba(255,255,255,.07);
    overflow: hidden;
}
.accordion-toggle {
    width: 100%;
    min-height: 52px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 14px 16px;
    background: linear-gradient(90.2deg, rgb(1,47,95) -0.4%, rgb(56,141,217) 106.1%) !important;
    border: 0;
    color: #fff;
    cursor: pointer;
    font-weight: 800;
    font: inherit;
    font-weight: 800;
    text-align: left;
}
/* Variante non-cliquable — utilisée pour "Mes informations" qui doit
   toujours rester ouverte. Garde le même look mais retire le cursor pointer
   et l'événement click. */
.accordion-toggle--static {
    cursor: default;
}
.accordion-toggle span:last-child {
    font-size: 1.1rem;
    transition: transform .2s ease;
    flex-shrink: 0;
}
.accordion-toggle[aria-expanded="true"] span:last-child {
    transform: rotate(180deg);
}

/* Hint optionnel dans le toggle — inline, pas de retour à la ligne */
.accordion-toggle__hint {
    font-size: .78rem;
    font-weight: 400;
    color: rgba(255,255,255,.60);
    margin-left: auto;
    margin-right: 10px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex-shrink: 1;
    min-width: 0;
}
.accordion-content {
    display: none;
    padding: 0 16px 16px;
}
.accordion-card.is-open .accordion-content {
    display: block;
}
.accordion-hint {
    margin: -2px 0 12px;
    color: var(--muted);
    font-size: .8rem;
    line-height: 1.45;
}

/* ── Form error ──────────────────────────────────────────────────────────── */
.form-error-message {
    display: none;
    margin: 0 0 12px;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255,107,107,.12);
    border: 1px solid rgba(255,107,107,.38);
    color: #ffdede;
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.4;
}
.form-error-message.is-visible { display: block; }

/* Erreur de validation près du bouton submit */
.form-error-submit {
    display: none;
    margin: 0 0 12px;
    padding: 12px 14px;
    border-radius: 14px;
    background: rgba(255,107,107,.12);
    border: 1px solid rgba(255,107,107,.38);
    color: #ffdede;
    font-size: .88rem;
    font-weight: 700;
    line-height: 1.4;
}
.form-error-submit.is-visible { display: block; }

/* ── Consent ─────────────────────────────────────────────────────────────── */
.consent {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    color: var(--muted);
    font-size: .82rem;
    cursor: pointer;
}
.consent input[type="checkbox"].error {
    outline: 2px solid rgba(255,107,107,.45);
    outline-offset: 2px;
}

/* ── apply-card avec formulaire ──────────────────────────────────────────── */
.apply-card--with-form {
    padding: 20px 18px;
}
.apply-card-form-title {
    font-size: 19px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: uppercase;
    color: #3283cc;
    margin: 0 0 16px;
}

/* ── Section mobile formulaire ───────────────────────────────────────────── */
.mobile-apply-section {
    display: none;
    padding: 28px 0 40px;
}
.mobile-apply-title {
    font-size: 19px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: uppercase;
    color: #3283cc;
    margin: 0 0 18px;
}

/* Upload area ────────────────────────────────────────────────────────────── */
.photo-upload-area { margin-top: 4px; }

/* ── Responsive 2A ───────────────────────────────────────────────────────── */
@media (max-width: 1180px) {
    .mobile-apply-section { display: block; }
}

@media (max-width: 560px) {
    .field-grid.field-grid-2,
    .field-grid.field-grid-3 { grid-template-columns: 1fr; }
    .field { gap: 6px; }
    .field-grid { row-gap: 12px; }
    .field label { font-size: .70rem; }
    .field input,
    .field select,
    .field textarea { padding: 10px 12px; font-size: .84rem; }
    .photo-box { min-height: 90px; }
}

/* ── Hero détail — responsive ─────────────────────────────────────────────── */
@media (max-width: 860px) {
    .detail-hero-shell { min-height: 520px; }
    .detail-hero-media {
        width: 100%;
        min-width: 0;
        background-position: 64% 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-inner { padding: 110px 0 42px; max-width: 100%; }
}

@media (max-width: 560px) {
    .detail-hero-shell { min-height: 460px; }
    .hero-inner { padding: 200px 0 36px; }
    .hero-title { font-size: 30px; text-shadow: 0px 0px 5px #000; }
    /* Badge compatibilité en bas à droite sur mobile (ne pas le mettre en haut
       pour éviter le chevauchement avec le menu burger fixe). On garde la même
       position relative qu'en desktop (bottom-right), juste un peu plus
       compact pour économiser l'espace écran. */
    .hero-compat-badge {
        bottom: 16px;
        right: 16px;
        top: auto;
        width: 54px;
        height: 54px;
    }
    .hero-compat-badge::before { width: 40px; height: 40px; }
    .hero-compat-badge span { font-size: .72rem; }
}

/* ── Scroll-margin pour ancres masquées par le header fixe ─────────────────
   La topbar est en position:fixed (76px desktop, ~62px mobile). Sans
   scroll-margin-top, un saut vers #formulaire-candidature place le titre
   "Candidature envoyée !" sous la topbar — partiellement caché.
   
   Solution : décaler le point de scroll de la hauteur du header + marge
   confort. Marche pour tous les saut vers cette ancre (post-apply redirect,
   clic CTA "Postuler" depuis le hero, etc.). */
#formulaire-candidature {
    scroll-margin-top: calc(var(--header-h) + 20px);
}
@media (max-width: 768px) {
    /* Sur mobile la topbar est plus compacte (62px) et l'effet "is-scrolled"
       est plus visible — on ajoute un peu plus de marge pour être sûr que
       le bandeau "Candidature envoyée" soit bien visible et pas collé. */
    #formulaire-candidature {
        scroll-margin-top: calc(var(--header-h) + 32px);
    }
}

/* ── Intro cast panel (dans section-panel intro) ─────────────────────────── */
.intro-cast-panel {
    margin-top: 18px;
    padding: 16px;
    background: rgba(255,255,255,.03);
    border-radius: 14px;
    border: 1px solid rgba(255,255,255,.06);
}
.intro-cast-title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 14px;
    color: var(--text);
}

/* ── Grille rémunération — icône aide + modal ──────────────────────────────── */
.fact-help-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: rgba(98,178,255,.2);
    border: 1px solid rgba(98,178,255,.35);
    color: var(--blue-3);
    font-size: .68rem;
    font-weight: 800;
    cursor: pointer;
    margin-left: 5px;
    vertical-align: middle;
    flex-shrink: 0;
    line-height: 1;
    font-family: inherit;
}
.fact-help-btn:hover { background: rgba(98,178,255,.35); }

.remun-modal-overlay {
    display: none;
    position: fixed;
    inset: 0;
    background: rgba(0,3,28,.78);
    z-index: 200;
    backdrop-filter: blur(4px);
    align-items: center;
    justify-content: center;
    padding: 20px;
}
.remun-modal-overlay.is-open { display: flex; }
.remun-modal {
    background: #071830;
    border: 1px solid rgba(98,178,255,.2);
    border-radius: 22px;
    padding: 28px;
    max-width: 760px;
    width: 100%;
    max-height: 88vh;
    overflow-y: auto;
    position: relative;
}
.remun-modal-close {
    position: absolute;
    top: 16px;
    right: 16px;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(255,255,255,.08);
    border: 0;
    color: #fff;
    font-size: 1.2rem;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-family: inherit;
}
.remun-modal-close:hover { background: rgba(255,255,255,.16); }
.remun-modal h3 {
    font-size: 1.1rem;
    font-weight: 800;
    margin: 0 0 6px;
    padding-right: 40px;
}
.remun-modal-date {
    font-size: .78rem;
    color: var(--muted);
    margin: 0 0 20px;
}
.remun-modal { overflow-x: hidden; }
.remun-table-wrap { overflow-x: auto; -webkit-overflow-scrolling: touch; }
.remun-table {
    width: 100%;
    min-width: 0;
    border-collapse: collapse;
    font-size: .8rem;
}
.remun-table th {
    background: rgba(98,178,255,.12);
    color: var(--blue-3);
    font-weight: 800;
    font-size: .74rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    padding: 10px 12px;
    text-align: left;
    white-space: nowrap;
}
.remun-table td {
    padding: 9px 12px;
    color: var(--text);
    border-bottom: 1px solid rgba(255,255,255,.05);
    vertical-align: top;
    line-height: 1.4;
}
.remun-table tr:last-child td { border-bottom: 0; }
.remun-table tbody tr:hover td { background: rgba(255,255,255,.03); }
.remun-table td:first-child { font-weight: 600; }
.remun-modal-note {
    margin-top: 16px;
    padding: 12px 14px;
    background: rgba(56,141,217,.06);
    border: 1px solid rgba(98,178,255,.14);
    border-radius: 12px;
    font-size: .76rem;
    color: var(--muted);
    line-height: 1.55;
}

/* ── Role card — redesign visual ─────────────────────────────────────────── */
.role-headline {
    font-size: 1.12rem;
    font-weight: 800;
    color: #fff;
    margin: 10px 0 8px;
    line-height: 1.2;
    letter-spacing: .01em;
}
.role-pills {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
}
/* Le badge type reste petit en tête */
.role-card .role-type-badge {
    display: inline-flex;
    margin-bottom: 4px;
}

/* ── Modal rémunération — responsive mobile ──────────────────────────────── */
@media (max-width: 640px) {
    .remun-modal { padding: 20px 14px; border-radius: 16px; }
    .remun-modal h3 { font-size: .96rem; padding-right: 36px; }
    .remun-table { font-size: .72rem; }
    .remun-table th {
        font-size: .66rem;
        padding: 7px 8px;
        white-space: normal;
    }
    .remun-table td { padding: 7px 8px; }
    /* Colonne rôle : peut se casser sur plusieurs lignes */
    .remun-table td:first-child { width: 55%; }
    .remun-table td:last-child  { width: 45%; }
}

/* ── Anti-overflow mobile — éléments spécifiques ──────────────────────────── */
.access-block,
.detail-compat,
.section-panel,
.apply-card,
.form-card,
.accordion-card,
.role-card,
.fact-box,
.facts-grid,
.detail-roles-grid,
.intro-cast-panel {
    max-width: 100%;
    box-sizing: border-box;
}
.similar-track { max-width: 100%; }

/* page-content wrapper — contient tout, ne doit jamais déborder */
#page-content {
    overflow-x: hidden;
    max-width: 100%;
    padding-top: var(--header-h);
}

/* Les pages avec hero qui remonte sous le header n'ont pas besoin du padding */
#page-content:has(.detail-hero),
#page-content:has(.tlc-homepage),
#page-content:has(.support-hero) {
    padding-top: 0;
}
.tlc-detail { overflow-x: hidden; max-width: 100%; }

/* ── Cercle compatibilité dans le hero ───────────────────────────────────── */
.hero-compat-badge {
    position: absolute;
    bottom: 24px;
    right: 0;
    width: 62px;
    height: 62px;
    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,.32);
    z-index: 3;
}
.hero-compat-badge::before {
    content: "";
    position: absolute;
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: rgba(3,17,33,.92);
}
.hero-compat-badge span {
    position: relative;
    z-index: 2;
    font-size: .78rem;
    font-weight: 900;
    color: #fff;
}

/* ── card-compat-badge — cercle compatibilité dans les cards listing ──────── */
.card-compat-badge {
    width: 52px;
    height: 52px;
    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 6px 18px rgba(0,0,0,.3);
    position: relative;
    flex-shrink: 0;
}
.card-compat-badge::before {
    content: "";
    position: absolute;
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(3,17,33,.92);
}
.card-compat-badge span {
    position: relative;
    z-index: 2;
    font-size: .68rem;
    font-weight: 900;
    color: #fff;
}

/* ── detail-roles-grid : pleine largeur si un seul rôle ─────────────────── */
.detail-roles-grid:has(> :only-child) {
    grid-template-columns: 1fr;
}

/* ── Overlay countdown premium ───────────────────────────────────────────── */
.premium-form-wrapper {
    position: relative;
}
.premium-form-blur {
    filter: blur(1px);
    pointer-events: none;
    user-select: none;
    opacity: .45;
}
.premium-countdown-overlay {
    position: absolute;
    inset: 0;
    z-index: 10;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 24px 16px;
}
@media (min-width: 768px) {
    .premium-countdown-overlay {
        align-items: center;
    }
}
.premium-countdown-inner {
    background: rgba(3, 10, 28, 0);
    border: 1px solid rgba(98,178,255,.22);
    border-radius: 24px;
    backdrop-filter: blur(18px);
    padding: 32px 24px 28px;
    text-align: center;
    max-width: 420px;
    width: 100%;
    box-shadow: 0 24px 60px rgba(0,0,0,.5);
}
.countdown-icon {
    font-size: 2rem;
    margin-bottom: 10px;
}
.countdown-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 6px 14px;
    border-radius: 999px;
    background: linear-gradient(90deg, #c0392b, #e74c3c);
    color: #fff;
    font-size: .82rem;
    font-weight: 700;
    margin-bottom: 18px;
}
.countdown-title {
    font-size: 1.15rem;
    font-weight: 800;
    margin: 0 0 12px;
    line-height: 1.3;
    color: #fff;
}
.countdown-subtitle {
    font-size: .84rem;
    color: var(--muted);
    line-height: 1.55;
    margin: 0 0 20px;
}
.countdown-subtitle strong { color: var(--text); }
.countdown-timer {
    display: flex;
    justify-content: center;
    gap: 10px;
    margin-bottom: 22px;
}
.countdown-unit {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.1);
    border-radius: 14px;
    padding: 12px 16px;
    min-width: 72px;
}
.countdown-num {
    font-size: 2rem;
    font-weight: 900;
    color: #fff;
    line-height: 1;
}
.countdown-label {
    font-size: .62rem;
    font-weight: 800;
    color: var(--muted);
    letter-spacing: .08em;
    text-transform: uppercase;
}
.btn-premium-cta {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    min-height: 52px;
    border-radius: 16px;
    background: linear-gradient(90deg, #c0392b, #e74c3c);
    color: #fff;
    font-weight: 800;
    font-size: .96rem;
    margin-bottom: 14px;
    border: 0;
    text-decoration: none;
    transition: opacity .18s;
}
.btn-premium-cta:hover { opacity: .88; }
.countdown-links {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    flex-wrap: wrap;
    font-size: .78rem;
    color: var(--muted);
}
.countdown-links a { color: var(--blue-3); }
.countdown-links span { opacity: .4; }

@media (max-width: 400px) {
    .countdown-unit { min-width: 56px; padding: 10px 10px; }
    .countdown-num  { font-size: 1.6rem; }
}

/* ── Mobile detail page — ajustements spécifiques (≤ 760px) ─────────────── */
@media (max-width: 760px) {

    /* Titres de sections */
    .tlc-detail .section-panel h2 {
        font-size: 19px;
        font-weight: 600;
        letter-spacing: 0;
        text-transform: uppercase;
        color: #3283cc;
        margin: 0 0 14px;
    }

    /* Roles grid : colonne unique */
    .tlc-detail .detail-roles-grid {
        grid-template-columns: 1fr;
    }

    /* Espacements entre sections */
    .tlc-detail .section-panel + .section-panel {
        margin-top: 28px;
    }
}

/* ── Mode formulaire "below content" ────────────────────────────────────── */
.below-form-section {
    padding: 32px 0 56px;
}
.below-form-title {
    font-size: 19px;
    font-weight: 600;
    letter-spacing: 0;
    text-transform: uppercase;
    color: #3283cc;
    margin: 0 0 24px;
}

/* Grille 2 colonnes : photos | champs */
.wide-form-grid {
    display: grid;
    grid-template-columns: 340px 1fr;
    gap: 20px;
    align-items: start;
}

.wide-form-col--fields {
    display: flex;
    flex-direction: column;
    gap: 16px;
}

/* Grille photos portrait + plein-pied */
.wide-photo-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}
.wide-photo-btn {
    display: block;
    width: 100%;
    text-align: center;
    margin-top: 8px;
    padding: 8px;
    background: rgba(0,0,0,.28);
    border: 1px solid rgba(255,255,255,.14);
    border-radius: 8px;
    color: #fff;
    font-size: .80rem;
    font-weight: 700;
    cursor: pointer;
}

/* Grille champs 4 colonnes */
.wide-fields-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}
.wide-fields-grid .field label {
    font-size: .68rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #fff;
    display: block;
    margin-bottom: 5px;
}

/* Sidebar mode below_content */
.sidebar-below-panel {
    padding: 16px;
    background: linear-gradient(180deg, rgba(56,141,217,.10), rgba(255,255,255,.04));
    border: 1px solid rgba(98,178,255,.18);
    border-radius: 22px;
}
.sidebar-below-title {
    font-size: 19px;
    font-weight: 600;
    text-transform: uppercase;
    color: #3283cc;
    margin: 0 0 16px;
}
.sidebar-below-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.sidebar-below-card {
    display: flex;
    gap: 12px;
    align-items: center;
    text-decoration: none;
    color: var(--text);
    padding: 8px;
    border-radius: 12px;
    transition: background .2s ease;
}
.sidebar-below-card:hover {
    background: rgba(255,255,255,.05);
}
.sidebar-below-thumb {
    flex-shrink: 0;
    width: 64px;
    height: 44px;
    border-radius: 8px;
    overflow: hidden;
}
.sidebar-below-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}
.sidebar-below-name {
    font-size: .84rem;
    font-weight: 700;
    line-height: 1.3;
}
.sidebar-below-meta {
    font-size: .76rem;
    color: var(--muted);
    margin-top: 2px;
}

/* Responsive wide form */
@media (max-width: 1100px) {
    .wide-form-grid {
        grid-template-columns: 280px 1fr;
    }
    .wide-fields-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 760px) {
    .wide-form-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
    .wide-fields-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}
@media (max-width: 480px) {
    .wide-fields-grid {
        grid-template-columns: 1fr;
    }
}

/* Espacement uniforme entre grandes sections du contenu annonce */
.detail-facts      { margin-top: 28px; }
.detail-submission { margin-top: 28px; }
.detail-submission .submission-body {
    color: #fff;
    font-size: .96rem;
    line-height: 1.7;
}
.detail-submission .submission-body p {
    color: #fff;
    margin: 4px 0;
}
.detail-submission .submission-body ul,
.detail-submission .submission-body ol {
    margin: 6px 0 6px 18px;
    padding: 0;
}
.detail-submission .submission-body li {
    color: #fff;
    margin-bottom: 4px;
}

/* Référence — objet du mail */
.submission-reference-wrap {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 12px;
    font-size: .96rem;
}
.submission-reference-single {
    display: inline-block;
    padding: 5px 14px;
    background: rgba(98,178,255,.12);
    border: 1px solid rgba(98,178,255,.28);
    border-radius: 8px;
    color: #62b2ff;
    font-weight: 700;
    letter-spacing: .03em;
    font-size: .9rem;
}
.submission-reference-select {
    appearance: none;
    -webkit-appearance: none;
    background: rgba(255,255,255,.06) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='rgba(255,255,255,.6)' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center;
    border: 1px solid rgba(98,178,255,.28);
    border-radius: 8px;
    color: #fff;
    padding: 6px 36px 6px 14px;
    font-size: .9rem;
    font-weight: 600;
    color-scheme: dark;
    cursor: pointer;
    min-width: 200px;
}
.submission-reference-select:focus {
    outline: none;
    border-color: rgba(98,178,255,.5);
}
.submission-reference-select option { background: #0e1f3a; }

/* Étoile champs requis (form candidature) */
.mb-req { color: #ff6b6b; font-weight: 900; margin-left: 3px; font-size: .85em; }

/* ============================================================
   NAV DROPDOWN — A Propos
   ============================================================ */
/* Dropdown hover — ouverture au survol */
.nav-dropdown:hover .nav-dropdown__panel { display: block; }
.nav-dropdown:hover .nav-dropdown__chevron { transform: rotate(180deg); }
.nav-dropdown__panel { display: none; }

.nav-dropdown {
    position: relative;
}

.nav-dropdown__trigger {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    background: none;
    border: none;
    color: inherit;
    font: inherit;
    font-size: inherit;
    font-weight: 700;
    text-transform: uppercase;
    opacity: .92;
    cursor: pointer;
    padding: 0;
    letter-spacing: inherit;
}
.nav-dropdown__trigger:hover { opacity: 1; }

.nav-dropdown__chevron {
    transition: transform .18s ease;
    flex-shrink: 0;
}

.nav-dropdown__panel {
    position: absolute;
    top: 100%;           /* flush sous le trigger — pas de gap */
    left: 50%;
    transform: translateX(-50%);
    min-width: 220px;
    background: rgba(8, 18, 38, 0.97);
    border: 1px solid rgba(56, 141, 217, 0.30);
    border-radius: 12px;
    box-shadow: 0 8px 32px rgba(0,0,0,.45);
    z-index: 200;
    padding: 14px 0 6px; /* padding-top = espace visuel sans briser le hover */
    backdrop-filter: blur(12px);
}

.nav-dropdown__panel a {
    display: block;
    padding: 13px 20px;
    color: #e5efff;
    font-size: 17px;
    font-weight: 600;
    opacity: 1;
    text-decoration: none;
    border-bottom: 1px solid rgba(255,255,255,.07);
    transition: background .12s;
}
.nav-dropdown__panel a:last-child { border-bottom: none; }
.nav-dropdown__panel a:hover { background: rgba(56,141,217,.12); }

/* Ligne "Accès BOOST" */
.nav-dropdown__boost-row {
    display: flex !important;
    align-items: center;
    gap: 10px;
}

.nav-boost-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #1a73e8;
    color: #fff;
    font-size: .72rem;
    font-weight: 900;
    letter-spacing: .06em;
    padding: 3px 10px;
    border-radius: 20px;
    text-transform: uppercase;
}





/* ============================================================
   NAV — BOOST pill desktop
   ============================================================ */
.nav-boost-link {
    background: linear-gradient(90.2deg, rgb(1,47,95) -0.4%, rgb(56,141,217) 106.1%);
    color: #fff !important;
    padding: 5px 16px;
    border-radius: 20px;
    font-weight: 800;
    opacity: 1 !important;
    transition: opacity .15s;
}
.nav-boost-link:hover { opacity: .85 !important; }

/* Nav override */
.nav a,
.nav-dropdown__trigger {
    opacity: 1;
    text-transform: uppercase;
    font-size: 16px;
}

/* ============================================================
   MOBILE MENU BTN — burger animé
   ============================================================ */
.header-account-icon { display: none; } /* masqué desktop — pill-btn suffit */

.mobile-menu-btn {
    display: none;
    flex-direction: column;
    justify-content: center;
    gap: 5px;
    background: none;
    border: none;
    cursor: pointer;
    padding: 6px;
    width: 38px;
    height: 38px;
}
.mobile-menu-btn__bar {
    display: block;
    width: 24px;
    height: 2px;
    background: #fff;
    border-radius: 2px;
    transition: transform .2s ease, opacity .2s ease;
    transform-origin: center;
}
.mobile-menu-btn.is-active .mobile-menu-btn__bar:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.mobile-menu-btn.is-active .mobile-menu-btn__bar:nth-child(2) { opacity: 0; }
.mobile-menu-btn.is-active .mobile-menu-btn__bar:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* ============================================================
   MOBILE MENU — restructuré
   ============================================================ */
.mobile-menu {
    display: none; /* caché par défaut — ouvert via .is-open */
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(4, 14, 30, 0.98);
    backdrop-filter: blur(14px);
    z-index: 150;
    overflow-y: auto;
    padding-top: 80px;
}
.mobile-menu.is-open {
    display: block !important;
}
.mobile-menu__inner {
    display: flex;
    flex-direction: column;
    min-height: calc(100% - 80px);
    padding: 0 0 40px;
}
.mobile-menu__nav {
    display: flex;
    flex-direction: column;
    border-bottom: 1px solid rgba(255,255,255,.08);
    padding-bottom: 8px;
    margin-bottom: 8px;
}
.mobile-menu__link {
    display: block;
    padding: 16px 28px;
    font-size: 18px;
    font-weight: 700;
    color: #e5efff;
    text-transform: uppercase;
    letter-spacing: .03em;
    text-decoration: none;
    transition: color .12s;
}
.mobile-menu__link:hover { color: #62b2ff; }

.mobile-menu__link--boost {
    color: #62b2ff;
}
.mobile-menu__link--boost:hover { color: #90cbff; }

.mobile-menu__section {
    padding-bottom: 8px;
    border-bottom: 1px solid rgba(255,255,255,.08);
    margin-bottom: 8px;
}
.mobile-menu__section-label {
    padding: 16px 28px 6px;
    font-size: 11px;
    font-weight: 800;
    color: rgba(255,255,255,.35);
    text-transform: uppercase;
    letter-spacing: .12em;
}
.mobile-menu__section .mobile-menu__link {
    font-size: 17px;
    font-weight: 600;
    text-transform: none;
    padding: 13px 28px;
}

.mobile-menu__cta {
    margin-top: auto;
    padding: 24px 28px 0;
    display: flex;
    flex-direction: column;
    gap: 12px;
}
.mobile-menu__cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: linear-gradient(90.2deg, rgb(1,47,95) -0.4%, rgb(56,141,217) 106.1%);
    color: #fff;
    font-size: 16px;
    font-weight: 800;
    padding: 14px 24px;
    border-radius: 10px;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .04em;
    transition: opacity .15s;
}
.mobile-menu__cta-btn:hover { opacity: .85; }
.mobile-menu__cta-btn--secondary {
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.14);
    color: #e8f2ff;
}
.mobile-menu__cta-logout {
    text-align: center;
    color: rgba(255,255,255,.45);
    font-size: 14px;
    text-decoration: none;
    padding: 4px 0;
}
.mobile-menu__cta-logout:hover { color: rgba(255,255,255,.7); }

/* Empêcher le scroll body quand mobile menu ouvert */
body.mobile-menu-open { overflow: hidden; }

/* ── Header mobile : logo gauche + burger droit uniquement ── */
@media (max-width: 760px) {
    /* Nav desktop masquée */
    .nav { display: none !important; }

    /* Burger visible */
    .mobile-menu-btn { display: flex !important; }

    /* Dans top-actions : masquer pill-btn sur mobile, garder l'icône compte et le burger */
    .top-actions .pill-btn { display: none !important; }
    .header-account-icon {
        display: inline-flex !important;
        align-items: center;
        justify-content: center;
        width: 44px;
        height: 44px;
        color: #f2f7ff;
        border-radius: 8px;
        background: rgba(255,255,255,.06);
        flex-shrink: 0;
    }
    .header-account-icon:hover { background: rgba(255,255,255,.12); }

    /* topbar-inner — logo à gauche, burger à droite */
    .topbar-inner {
        display: flex;
        align-items: center;
        justify-content: space-between;
        min-height: 62px;
        padding: 0 16px;
    }
    .brand img { height: 44px; }

    /* Burger — taille suffisante pour le touch */
    .mobile-menu-btn {
        width: 44px;
        height: 44px;
        padding: 10px;
        border-radius: 8px;
        background: rgba(255,255,255,.06);
    }

    /* Menu mobile — commence sous le header */
    .mobile-menu { padding-top: 70px; }
}

/* ── Page connexion — padding-top réduit ─────────────────────────────────── */
#page-content:has(.auth-page) {
    padding-top: 30px;
}

/* ============================================================
   AUTH PAGE — Connexion / Inscription
   ============================================================ */
.auth-page {
    min-height: 100vh;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: calc(var(--header-h) + 16px) 16px 48px;
    background:
        radial-gradient(ellipse 80% 50% at 50% -10%, rgba(56,141,217,.18) 0%, transparent 60%),
        var(--bg);
}

.auth-card {
    width: 100%;
    max-width: 480px;
    background: rgba(255,255,255,.04);
    border: 1px solid var(--border);
    border-radius: 20px;
    padding: 36px 40px 40px;
    box-shadow: 0 32px 80px rgba(0,0,0,.5);
    backdrop-filter: blur(12px);
}

/* Logo */
.auth-logo {
    text-align: center;
    margin-bottom: 28px;
}
.auth-logo img { height: 44px; width: auto; display: inline-block; }

/* Onglets */
.auth-tabs {
    display: flex;
    border-radius: 12px;
    background: rgba(255,255,255,.06);
    padding: 4px;
    margin-bottom: 28px;
    gap: 4px;
}
.auth-tab {
    flex: 1;
    background: none;
    border: none;
    color: var(--muted);
    font-family: inherit;
    font-size: .9rem;
    font-weight: 600;
    padding: 10px 8px;
    border-radius: 9px;
    cursor: pointer;
    transition: background .15s, color .15s;
    white-space: nowrap;
}
.auth-tab:hover { color: var(--text); }
.auth-tab.is-active {
    background: linear-gradient(90.2deg, rgb(1,47,95) -0.4%, rgb(56,141,217) 106.1%);
    color: #fff;
}

/* Panneau */
.auth-panel { display: none; }
.auth-panel.is-active { display: block; }

/* Intro */
.auth-intro {
    font-size: .88rem;
    color: var(--muted);
    margin: 0 0 22px;
    line-height: 1.55;
}

/* Champs */
.auth-form { display: flex; flex-direction: column; gap: 16px; }
.auth-field { display: flex; flex-direction: column; gap: 5px; }

.auth-label {
    font-size: .82rem;
    font-weight: 600;
    color: var(--muted);
    letter-spacing: .02em;
}
.auth-req { color: #ff6b7a; font-weight: 700; margin-left: 1px; }

.auth-input-wrap { position: relative; }
.auth-input-wrap .auth-input { padding-right: 42px; }

.auth-input {
    width: 100%;
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(98,178,255,.2);
    border-radius: 10px;
    color: var(--text);
    font-family: inherit;
    font-size: .95rem;
    padding: 11px 14px;
    outline: none;
    transition: border-color .15s, box-shadow .15s;
}
.auth-input::placeholder { color: rgba(184,198,220,.35); }
.auth-input:focus {
    border-color: var(--blue-3);
    box-shadow: 0 0 0 3px rgba(98,178,255,.12);
}
.auth-input.has-error {
    border-color: #ff6b7a;
    box-shadow: 0 0 0 3px rgba(255,107,122,.1);
}

.auth-toggle-pwd {
    position: absolute;
    right: 12px;
    top: 50%;
    transform: translateY(-50%);
    background: none;
    border: none;
    color: var(--muted);
    cursor: pointer;
    padding: 2px;
    opacity: .55;
    display: flex;
    align-items: center;
}
.auth-toggle-pwd:hover { opacity: 1; }

/* Le SVG (et ses enfants path/circle) ne doit JAMAIS recevoir le clic
   directement — sinon e.target est un node SVG interne et le handler de
   délégation peut rater le bouton parent dans certains contextes
   (extensions navigateur, ré-ordonnancement Cloudflare, vieux Safari).
   Avec pointer-events:none le bouton reste le target effectif des clics. */
.auth-toggle-pwd > svg,
.auth-toggle-pwd > svg * { pointer-events: none; }

.auth-field-error {
    font-size: .78rem;
    color: #ff6b7a;
    min-height: 1.1em;
}
.auth-hint {
    font-size: .76rem;
    color: var(--muted);
    opacity: .7;
}

/* Ligne remember + lost pwd */
.auth-row-between {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 8px;
    flex-wrap: wrap;
}
.auth-checkbox {
    display: flex;
    align-items: center;
    gap: 7px;
    font-size: .83rem;
    color: var(--muted);
    cursor: pointer;
}
.auth-checkbox input { accent-color: var(--blue-3); width: 15px; height: 15px; }

/* Grille 2 colonnes prénom/nom */
.auth-row-half {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
}

/* Erreur globale */
.auth-global-error {
    background: rgba(255,107,122,.1);
    border: 1px solid rgba(255,107,122,.3);
    border-radius: 8px;
    color: #ff6b7a;
    font-size: .85rem;
    padding: 10px 14px;
}

/* Bouton submit */
.auth-submit {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    width: 100%;
    background: linear-gradient(90.2deg, rgb(1,47,95) -0.4%, rgb(56,141,217) 106.1%);
    color: #fff;
    border: none;
    border-radius: 12px;
    font-family: inherit;
    font-size: 1rem;
    font-weight: 800;
    padding: 14px;
    cursor: pointer;
    letter-spacing: .03em;
    transition: opacity .15s, transform .1s;
    margin-top: 4px;
}
.auth-submit:hover:not(:disabled) { opacity: .9; transform: translateY(-1px); }
.auth-submit:disabled { opacity: .6; cursor: not-allowed; transform: none; }
.auth-submit__loader svg { animation: tlc-spin .8s linear infinite; }

@keyframes tlc-spin { to { transform: rotate(360deg); } }

/* Liens */
.auth-link {
    color: var(--blue-3);
    text-decoration: none;
    font-size: .83rem;
    font-weight: 500;
    transition: opacity .12s;
}
.auth-link:hover { opacity: .75; }
.auth-link--btn {
    background: none;
    border: none;
    font-family: inherit;
    cursor: pointer;
    padding: 0;
}

/* Switch + légal */
.auth-switch {
    text-align: center;
    font-size: .84rem;
    color: var(--muted);
    margin: 20px 0 0;
}
.auth-legal {
    font-size: .76rem;
    color: var(--muted);
    text-align: center;
    margin: 4px 0 0;
    opacity: .7;
}

/* Mobile */
@media (max-width: 520px) {
    .auth-card { padding: 28px 20px 32px; border-radius: 16px; }
    .auth-row-half { grid-template-columns: 1fr; }
}

/* ── Bouton fermer menu mobile ───────────────────────────────────────────── */
.mobile-menu__close {
    position: absolute;
    top: 16px;
    right: 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    background: rgba(255,255,255,.08);
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 10px;
    color: #fff;
    cursor: pointer;
    transition: background .15s;
    z-index: 10;
}
.mobile-menu__close:hover { background: rgba(255,255,255,.14); }

/* Le menu doit être position:relative pour que absolute fonctionne */
.mobile-menu { position: fixed; } /* déjà défini, confirmé */

/* ── Boost pill dans le menu mobile ─────────────────────────────────────── */
.mobile-menu__link--boost {
    /* Pill autour du mot uniquement — pas pleine largeur.
       Le padding-left est réduit (8px au lieu des 28px standards) pour
       compenser le padding-left:20px du span.mobile-boost-pill interne :
       8 + 20 = 28 → le texte "PREMIUM" s'aligne visuellement avec les
       autres liens (CINÉMA, TÉLÉVISION, etc.). */
    display: block !important;
    padding: 16px 28px 16px 8px !important;
    background: none !important;
    color: #62b2ff !important;
}
.mobile-menu__link--boost .mobile-boost-pill {
    display: inline-flex;
    align-items: center;
    background: linear-gradient(90.2deg, rgb(1,47,95) -0.4%, rgb(56,141,217) 106.1%);
    border-radius: 24px;
    padding: 6px 20px;
    font-size: 18px;
    font-weight: 800;
    color: #fff;
    text-transform: uppercase;
    letter-spacing: .04em;
}
.mobile-menu__link--boost:hover { opacity: .85; }

/* ── Bannière succès candidature ──────────────────────────────────────────── */
.tlc-success-banner {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    background: rgba(46, 186, 122, .08);
    border: 1px solid rgba(46, 186, 122, .3);
    border-radius: 14px;
    padding: 18px 20px;
    color: #2fba7a;
    font-size: .92rem;
    margin-bottom: 8px;
}
.tlc-success-banner__icon {
    width: 38px;
    height: 38px;
    border-radius: 50%;
    background: rgba(46,186,122,.15);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    margin-top: 1px;
}
.tlc-success-banner__body {
    display: flex;
    flex-direction: column;
    gap: 5px;
}
.tlc-success-banner strong {
    font-weight: 700;
    font-size: 1rem;
    color: #2fba7a;
}
.tlc-success-banner span {
    color: rgba(255,255,255,.65);
    font-size: .86rem;
    line-height: 1.55;
}

/* Bloc aside — déjà candidaté */
.apply-card-already__text span {
    display: block;
    font-size: .82rem;
    color: rgba(255,255,255,.55);
    font-weight: 400;
    margin-top: 3px;
    line-height: 1.45;
}
.apply-card-already__text a {
    display: inline-block;
    margin-top: 6px;
    font-size: .82rem;
    color: var(--blue-3);
    font-weight: 600;
}

/* ============================================================
   MOBILE DETAIL — réduction espaces entre sections
   ============================================================ */
@media (max-width: 760px) {

    /* Réduire l'espace sous le panel intro (photos acteurs) */
    .tlc-detail .detail-intro {
        margin-bottom: 8px;
    }

    /* Espace entre sections consécutives → réduit */
    .tlc-detail .section-panel + .section-panel {
        margin-top: 16px;
    }

    /* facts-grid (Infos pratiques) : espace avant réduit */
    .tlc-detail .facts-grid,
    .tlc-detail section.section-panel:has(.facts-grid) {
        margin-top: 12px;
    }

    /* Submission (Merci d'ajouter) : espace avant réduit */
    .tlc-detail .detail-submission {
        margin-top: 12px;
        padding-top: 0;
    }

    /* Si "Merci d'ajouter" est vide (caché par PHP), supprimer son espace */
    .tlc-detail .detail-submission:empty {
        display: none;
        margin: 0;
    }

    /* Espace au-dessus du formulaire mobile — réduit */
    .mobile-apply-section {
        padding-top: 14px !important;
        padding-bottom: 28px !important;
    }

    /* intro-cast-panel (photos acteurs) : réduire margin-bottom */
    .intro-cast-panel {
        margin-bottom: 4px;
    }
}



/* ── Référence rôle (objet du mail) ──────────────────────────────────────── */
.role-ref {
    display: flex;
    align-items: center;
    gap: 6px;
    margin-top: auto;      /* pousse la ref en bas de la card */
    padding-top: 10px;
    border-top: 1px solid rgba(255,255,255,.1);
    font-size: .82rem;
}
.role-ref__label {
    font-weight: 700;
    color: rgba(255,255,255,.55);
    text-transform: uppercase;
    letter-spacing: .05em;
    font-size: .72rem;
    flex-shrink: 0;
}
.role-ref__value {
    font-weight: 700;
    color: #fff;
    letter-spacing: .05em;
    text-transform: uppercase;
}

/* ── Compétences : grille select + sous-champs inline ───────────────────── */
.tlc-skills-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    align-items: start;
}
.tlc-skill-unit {
    display: flex;
    flex-direction: column;
    gap: 0;
}
/* Sur mobile : une colonne — les sous-champs s'affichent directement sous leur select */
@media (max-width: 640px) {
    .tlc-skills-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }
}
