/* ═══════════════════════════════════════════════════════════
   REDESIGN v2.3 — Ciné-Club des Raclures — FINAL
   ═══════════════════════════════════════════════════════════ */


/* ══════════════════════════════════════════════════════════
   0. RESET GLOBAL
   ══════════════════════════════════════════════════════════ */

body {
  background: #080810 !important;
  background-image: none !important;
}

button {
  color: inherit !important;
  background: transparent !important;
  border: none !important;
  opacity: 1 !important;
  filter: none !important;
}

/* Pastilles thème */

/* Boutons UI */
#search-btn   { background: linear-gradient(145deg,#d4a017,#8a560a) !important; color:#1a0800 !important; }
#random-btn   { background: linear-gradient(145deg,#ffe9a3 0%,#d4a017 55%,#8a560a 100%) !important; color:#1a0800 !important; }
#scroll-top-btn, #scroll-bottom-btn { background: linear-gradient(135deg,#d4a017,#8a560a) !important; color:#051020 !important; }
#ideasBtn     { background: #d4a017 !important; color:#120900 !important; }
.resume-actions button { background:#1f2440 !important; color:#fff !important; }
#sendIdea  { background:#eee !important; color:#111 !important; border:1px solid #333 !important; }
#closeIdea { background:#ddd !important; color:#111 !important; }

/* Fixes layout */
header, .hero-header { min-height:0 !important; }
.filters, #filters, .controls, #controls { min-height:0 !important; }
main#films-container { contain:none !important; }
.film-card { content-visibility:auto !important; contain-intrinsic-size:185px 295px !important; }


/* ══════════════════════════════════════════════════════════
   1. HEADER — TEXTE CSS PUR
   ══════════════════════════════════════════════════════════ */

.hero-header {
  background: rgba(6,6,14,0.98) !important;
  background-image: none !important;
  border-bottom: 1px solid rgba(212,160,23,0.15) !important;
  padding: 0 !important;
  min-height: 0 !important;
  overflow: visible !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  position: relative !important;
}

/* Tuer les pseudo-éléments flou de fond */
.hero-header::before,
.hero-header::after,
header.hero-header::before,
header.hero-header::after {
  display: none !important;
  opacity: 0 !important;
  content: none !important;
  animation: none !important;
  background: none !important;
}

/* Masquer l'image bannière */
.hero-banner,
.hero-banner img,
.hero-sign--image picture,
header img[src*="ccr_header_banner"] {
  display: none !important;
}

.hero-inner {
  transform: none !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 14px 20px 10px !important;
  gap: 0 !important;
  width: 100% !important;
  position: relative !important;
  z-index: 1 !important;
}

.hero-sign,
.hero-sign.hero-sign--image {
  background: none !important;
  box-shadow: none !important;
  border: none !important;
  padding: 0 !important;
  display: block !important;
  width: 100% !important;
  text-align: center !important;
}
.hero-sign::before,
.hero-sign::after {
  display: none !important;
  opacity: 0 !important;
  animation: none !important;
  content: none !important;
}

/* Titre principal — dégradé doré */
.hero-sign--image h1.sr-only {
  position: static !important;
  width: auto !important;
  height: auto !important;
  clip: auto !important;
  overflow: visible !important;
  margin: 0 !important;
  padding: 0 !important;

  font-family: "Oxanium", "Segoe UI", system-ui, sans-serif !important;
  font-size: clamp(1.6rem, 3.5vw, 2.8rem) !important;
  font-weight: 900 !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;

  background: linear-gradient(
    180deg,
    #fff8ee 0%,
    #f5d97a 30%,
    #d4a017 65%,
    #8a5a0a 100%
  ) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  filter: drop-shadow(0 0 18px rgba(212,160,23,0.35)) !important;
  line-height: 1.1 !important;
  text-shadow: none !important;
}

/* Tagline — orange vif */
.hero-tagline.sr-only,
.hero-tagline {
  position: static !important;
  width: auto !important;
  height: auto !important;
  clip: auto !important;
  overflow: visible !important;

  font-size: clamp(0.62rem, 1.1vw, 0.78rem) !important;
  font-weight: 400 !important;
  font-style: italic !important;
  letter-spacing: 0.18em !important;
  text-transform: uppercase !important;
  color: #ff8a00 !important;
  -webkit-text-fill-color: #ff8a00 !important;
  text-shadow: 0 0 16px rgba(255,138,0,0.30) !important;
  margin: 4px 0 0 !important;
  padding: 0 !important;
  display: block !important;
  text-align: center !important;
  background: none !important;
  animation: none !important;
}

/* Compteur inline — caché, remplacé par le widget */
.hero-counter { display: none !important; }

/* ── BANNIÈRE DON — barre fixe en bas ────────────────────── */
#ccr-donate-bar {
  display: none !important;
}

/* Réutilise #ccr-donate-mobile comme barre fixe en bas */
#ccr-donate-mobile {
  display: flex !important;
  position: fixed !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  z-index: 8000 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
  border-radius: 0 !important;
  padding: 9px 24px !important;
  background:
    linear-gradient(90deg,
      rgba(10,6,1,0.97) 0%,
      rgba(24,15,2,0.98) 50%,
      rgba(10,6,1,0.97) 100%) !important;
  border-top: 1px solid rgba(212,160,23,0.28) !important;
  border-bottom: none !important;
  box-shadow: 0 -6px 32px rgba(212,160,23,0.10) !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 20px !important;
  box-sizing: border-box !important;
  overflow: visible !important;
}

/* Cacher le pseudo-élément radial gradient du HTML inline */
#ccr-donate-mobile > div:first-child {
  display: none !important;
}

/* Le div z-index:1 qui contient texte + bouton */
#ccr-donate-mobile > div:last-child {
  display: flex !important;
  align-items: center !important;
  gap: 20px !important;
  width: 100% !important;
  max-width: 860px !important;
  justify-content: center !important;
  position: static !important;
  z-index: auto !important;
}

#ccr-donate-mobile p {
  color: rgba(245,232,200,0.82) !important;
  font-size: 0.78rem !important;
  line-height: 1.3 !important;
  margin: 0 !important;
  text-align: left !important;
  flex: 1 !important;
}

#ccr-donate-mobile p br { display: none !important; }

#ccr-donate-mobile p strong {
  color: #f5d97a !important;
}

#ccr-donate-mobile a {
  flex-shrink: 0 !important;
  text-decoration: none !important;
}

#ccr-donate-mobile button {
  background: linear-gradient(145deg, #ffe9a3 0%, #d4a017 55%, #8a560a 100%) !important;
  color: #120900 !important;
  border: none !important;
  padding: 8px 20px !important;
  font-size: 0.82rem !important;
  font-weight: 900 !important;
  border-radius: 999px !important;
  cursor: pointer !important;
  width: auto !important;
  white-space: nowrap !important;
  box-shadow: 0 0 18px rgba(212,160,23,0.45) !important;
  transition: transform 0.15s ease, box-shadow 0.15s ease !important;
}

#ccr-donate-mobile button:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 0 30px rgba(212,160,23,0.70) !important;
}

/* Laisser de l'espace en bas pour ne pas cacher les cartes */
#films-container {
  padding-bottom: 52px !important;
}

@media (max-width: 640px) {
  #ccr-donate-mobile {
    flex-direction: column !important;
    padding: 10px 16px !important;
    gap: 8px !important;
  }
  #ccr-donate-mobile > div:last-child {
    flex-direction: column !important;
    gap: 8px !important;
  }
  #ccr-donate-mobile p {
    text-align: center !important;
    font-size: 0.74rem !important;
  }
}

/* Film du jour — caché uniquement sur mobile */
@media (max-width: 1099.98px) {
  .featured-film,
  #featured-film,
  section.featured-film { display: none !important; }
}

@media (max-width: 640px) {
  .hero-inner { padding: 10px 12px 8px !important; }
  .hero-sign--image h1.sr-only {
    font-size: clamp(1.2rem, 6vw, 1.8rem) !important;
    letter-spacing: 0.08em !important;
  }
}


/* ══════════════════════════════════════════════════════════
   2. WIDGET COMPTEUR (hero-counter.js)
   ══════════════════════════════════════════════════════════ */

.hero-counter-slot {
  position: fixed !important;
  top: 160px !important;
  right: 20px !important;
  z-index: 2147483000 !important;
  pointer-events: none !important;
  max-width: 230px !important;
  min-width: 200px !important;
}

.hero-counter-box {
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  gap: 3px !important;
  background:
    radial-gradient(ellipse at 50% 0%, rgba(255,200,60,0.18) 0%, transparent 65%),
    linear-gradient(160deg, rgba(22,14,2,0.97) 0%, rgba(10,6,1,0.98) 100%) !important;
  border: 1px solid rgba(212,160,23,0.50) !important;
  border-radius: 14px !important;
  padding: 12px 20px !important;
  box-sizing: border-box !important;
  width: 100% !important;
  position: relative !important;
  overflow: hidden !important;
  box-shadow:
    0 0 0 1px rgba(212,160,23,0.08) inset,
    0 8px 32px rgba(0,0,0,0.70),
    0 0 40px rgba(212,160,23,0.20),
    0 0 80px rgba(212,160,23,0.08) !important;
  animation: counterPulse 3s ease-in-out infinite !important;
}

/* Liseré doré en haut */
.hero-counter-box::before {
  content: "" !important;
  position: absolute !important;
  top: 0 !important; left: 0 !important; right: 0 !important;
  height: 1px !important;
  background: linear-gradient(90deg, transparent, rgba(212,160,23,0.90), transparent) !important;
}

@keyframes counterPulse {
  0%, 100% {
    box-shadow:
      0 0 0 1px rgba(212,160,23,0.08) inset,
      0 8px 32px rgba(0,0,0,0.70),
      0 0 30px rgba(212,160,23,0.15),
      0 0 60px rgba(212,160,23,0.06);
  }
  50% {
    box-shadow:
      0 0 0 1px rgba(212,160,23,0.12) inset,
      0 8px 32px rgba(0,0,0,0.70),
      0 0 55px rgba(212,160,23,0.35),
      0 0 100px rgba(212,160,23,0.14);
  }
}

.hero-counter-number {
  font-family: "Oxanium", system-ui, sans-serif !important;
  font-size: 2.8rem !important;
  font-weight: 900 !important;
  background: linear-gradient(180deg, #fff8ee 0%, #f5d97a 40%, #d4a017 100%) !important;
  -webkit-background-clip: text !important;
  background-clip: text !important;
  -webkit-text-fill-color: transparent !important;
  letter-spacing: 0.02em !important;
  line-height: 1 !important;
  filter: drop-shadow(0 0 12px rgba(212,160,23,0.55)) !important;
}

.hero-counter-label {
  font-size: 0.72rem !important;
  letter-spacing: 0.12em !important;
  text-transform: uppercase !important;
  color: rgba(255,220,120,0.92) !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  text-align: center !important;
  text-shadow: 0 0 8px rgba(212,160,23,0.60) !important;
  filter: none !important;
}

@media (max-width: 1100px) {
  .hero-counter-slot { display: none !important; }
}


/* ══════════════════════════════════════════════════════════
   3. FIX OMBRE / SHIMMER SUR LES CARTES
   ══════════════════════════════════════════════════════════ */

/* Liseré animé du style inline — tué */
.film-card::before {
  display: none !important;
  content: none !important;
  opacity: 0 !important;
  animation: none !important;
  background: none !important;
}

.film-card::after {
  display: none !important;
  content: none !important;
  opacity: 0 !important;
  animation: none !important;
  background: none !important;
}

/* Shimmer de chargement — tué */
.film-poster.loading::after {
  display: none !important;
  content: none !important;
  animation: none !important;
  opacity: 0 !important;
}

@keyframes ccrShimmer { 0%,100%{ transform: none; opacity: 0; } }


/* ══════════════════════════════════════════════════════════
   4. FILTRES
   ══════════════════════════════════════════════════════════ */

.filters,
section.filters {
  background: rgba(6,6,14,0.94) !important;
  border-top: none !important;
  border-bottom: 1px solid rgba(255,255,255,0.05) !important;
  padding: 8px 16px !important;
  gap: 8px !important;
  min-height: 0 !important;
  box-shadow: none !important;
  justify-content: center !important;
}

.search-steampunk-wrap {
  max-width: 560px !important;
  margin: 0 auto 6px auto !important;
}

.filters select#genre-filter {
  background: rgba(20,20,35,0.9) !important;
  border: 1px solid rgba(255,255,255,0.08) !important;
  color: rgba(255,255,255,0.75) !important;
  border-radius: 8px !important;
  padding: 5px 8px !important;
  font-size: 0.85rem !important;
}

.filters .group label {
  font-size: 0.82rem !important;
  opacity: 0.6 !important;
}

#results-bar {
  padding: 4px 16px 2px !important;
  font-size: 0.72rem !important;
  opacity: 0.55 !important;
}


/* ══════════════════════════════════════════════════════════
   5. GRILLE
   ══════════════════════════════════════════════════════════ */

#films-container {
  display: grid !important;
  grid-template-columns: repeat(auto-fill, minmax(168px, 1fr)) !important;
  gap: 8px !important;
  padding: 10px 14px !important;
  max-width: 100% !important;
  margin: 0 auto !important;
  align-items: start !important;
  background: transparent !important;
  contain: none !important;
}

@media (min-width: 768px) {
  #films-container {
    grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)) !important;
    gap: 10px !important;
    padding: 12px 16px !important;
  }
}

@media (min-width: 1100px) {
  #films-container {
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)) !important;
    gap: 12px !important;
    padding: 14px 20px !important;
  }
}

@media (min-width: 1500px) {
  #films-container {
    grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)) !important;
    gap: 14px !important;
  }
}

@media (max-width: 480px) {
  #films-container {
    grid-template-columns: repeat(2, 1fr) !important;
    gap: 6px !important;
    padding: 6px 8px !important;
  }
}

#films-container.ccr-search-active {
  grid-template-columns: repeat(auto-fill, minmax(175px, 220px)) !important;
  justify-content: start !important;
}

@media (max-width: 640px) {
  #films-container.ccr-search-active {
    grid-template-columns: repeat(2, 1fr) !important;
  }
}


/* ══════════════════════════════════════════════════════════
   6. CARTES
   ══════════════════════════════════════════════════════════ */

.film-card {
  padding: 0 !important;
  border-radius: 8px !important;
  overflow: hidden !important;
  position: relative !important;
  background: #0c0c18 !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  box-shadow:
    0 2px 14px rgba(0,0,0,0.75),
    0 0 0 1px rgba(255,255,255,0.06) inset !important;
  cursor: pointer !important;
  transition: transform 0.16s ease, box-shadow 0.16s ease, border-color 0.16s ease !important;
  display: flex !important;
  flex-direction: column !important;
  height: auto !important;
  min-height: 0 !important;
}

/* Affiche */
.film-poster {
  width: 100% !important;
  aspect-ratio: 2 / 3 !important;
  overflow: hidden !important;
  border-radius: 0 !important;
  flex-shrink: 0 !important;
  position: relative !important;
  background: #0d0d1a !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

.film-poster img,
.film-poster img.poster-thumb {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  transition: transform 0.25s ease, filter 0.25s ease !important;
  filter: brightness(0.90) !important;
  max-width: none !important;
  max-height: none !important;
  aspect-ratio: auto !important;
  border-radius: 0 !important;
}

/* Fondu bas de l'affiche */
.film-poster::after {
  content: "" !important;
  position: absolute !important;
  bottom: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 30% !important;
  background: linear-gradient(
    to top,
    rgba(8,8,18,1) 0%,
    rgba(8,8,18,0.3) 55%,
    transparent 100%
  ) !important;
  pointer-events: none !important;
  z-index: 1 !important;
  animation: none !important;
}

/* Titre — blanc pur, lisible */
.film-card h3 {
  font-size: 0.82rem !important;
  font-weight: 700 !important;
  line-height: 1.25 !important;
  color: #ffffff !important;
  text-shadow: 0 1px 3px rgba(0,0,0,0.8) !important;
  margin: 0 !important;
  padding: 7px 8px 2px !important;
  display: -webkit-box !important;
  -webkit-line-clamp: 2 !important;
  -webkit-box-orient: vertical !important;
  overflow: hidden !important;
}

/* Réalisateur */
.film-director {
  font-size: 0.74rem !important;
  font-style: normal !important;
  color: rgba(212,160,23,0.92) !important;
  margin: 0 !important;
  padding: 0 8px 3px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

/* Badges */
.film-meta {
  display: flex !important;
  flex-wrap: nowrap !important;
  gap: 3px !important;
  margin: 0 !important;
  padding: 0 7px 7px !important;
  overflow: hidden !important;
}

.badge-year {
  font-size: 0.64rem !important;
  font-weight: 700 !important;
  padding: 2px 5px !important;
  border-radius: 3px !important;
  line-height: 1.5 !important;
  white-space: nowrap !important;
  background: rgba(212,160,23,0.12) !important;
  color: #ffd37a !important;
  border: 1px solid rgba(212,160,23,0.18) !important;
}

.badge-genre {
  font-size: 0.64rem !important;
  font-weight: 600 !important;
  padding: 2px 5px !important;
  border-radius: 3px !important;
  line-height: 1.5 !important;
  white-space: nowrap !important;
  background: rgba(255,255,255,0.07) !important;
  color: rgba(255,255,255,0.72) !important;
  border: 1px solid rgba(255,255,255,0.14) !important;
  max-width: 65px !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}

.badge-decade { display: none !important; }

/* Bouton favori */
.fav-btn {
  position: absolute !important;
  top: 5px !important;
  right: 5px !important;
  z-index: 3 !important;
  font-size: 0.85rem !important;
  background: rgba(0,0,0,0.55) !important;
  border-radius: 50% !important;
  width: 22px !important;
  height: 22px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  backdrop-filter: blur(4px) !important;
  border: none !important;
  color: rgba(255,255,255,0.65) !important;
}


/* ══════════════════════════════════════════════════════════
   7. HOVER
   ══════════════════════════════════════════════════════════ */

@media (hover: hover) and (pointer: fine) {
  .film-card:hover {
    transform: translateY(-4px) !important;
    border-color: rgba(212,160,23,0.50) !important;
    box-shadow:
      0 12px 28px rgba(0,0,0,0.85),
      0 0 0 1px rgba(212,160,23,0.22) !important;
  }

  .film-card:hover .film-poster img,
  .film-card:hover img.poster-thumb {
    transform: scale(1.05) !important;
    filter: brightness(1.0) !important;
  }
}

@media (hover: none), (pointer: coarse) {
  .film-card:hover {
    transform: none !important;
    box-shadow: 0 2px 14px rgba(0,0,0,0.75) !important;
    border-color: rgba(255,255,255,0.14) !important;
  }
}

.film-card:focus-visible {
  outline: 2px solid rgba(212,160,23,0.70) !important;
  outline-offset: 2px !important;
}


/* ══════════════════════════════════════════════════════════
   8. FOOTER
   ══════════════════════════════════════════════════════════ */

footer {
  padding: 10px !important;
  font-size: 0.75rem !important;
  background: rgba(4,4,10,0.90) !important;
  border-top: 1px solid rgba(255,255,255,0.04) !important;
  color: rgba(255,255,255,0.30) !important;
}

.ccr-footer-links a {
  color: rgba(255,255,255,0.40) !important;
  border-bottom: none !important;
}
.ccr-footer-links a:hover {
  color: rgba(212,160,23,0.80) !important;
}

.version,
.sw-footer {
  font-size: 0.65rem !important;
  opacity: 0.25 !important;
}


/* ══════════════════════════════════════════════════════════
   9. SCROLLBARS
   ══════════════════════════════════════════════════════════ */

/* Sélecteur de thème — caché */

/* Repositionner pour ne pas chevaucher le compteur bobines */

/* Pastille active */

/* Tooltip nom au hover */

/* Cacher sur mobile — pas assez de place */

::-webkit-scrollbar { width: 4px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: rgba(212,160,23,0.18); border-radius: 2px; }
::-webkit-scrollbar-thumb:hover { background: rgba(212,160,23,0.38); }


/* ══════════════════════════════════════════════════════════
   SYSTÈME DE NOTATION — ÉTOILES v3
   ══════════════════════════════════════════════════════════ */

/* Étoiles lecture seule sur les cartes */
.ccr-stars-card { padding: 0 7px 5px !important; line-height:1 !important; }

.ccr-sd { display:inline-flex !important; align-items:center !important; gap:1px !important; }
.ccr-sd-sm .ccr-s { font-size:0.65rem !important; }
.ccr-sd-lg .ccr-s { font-size:1.1rem !important; }
.ccr-s.f  { color:#f5d97a !important; }
.ccr-s.e  { color:rgba(255,255,255,0.14) !important; }
.ccr-s.h  { position:relative !important; color:rgba(255,255,255,0.14) !important; display:inline-block !important; }
.ccr-s.h::before { content:'★' !important; position:absolute !important; left:0 !important; top:0 !important; color:#f5d97a !important; width:50% !important; overflow:hidden !important; display:block !important; }
.ccr-sv { font-size:0.60rem !important; color:rgba(212,160,23,0.65) !important; font-weight:700 !important; margin-left:3px !important; }

/* Widget vote popup */
.ccr-vote-wrap { padding:12px 0 8px !important; border-top:1px solid rgba(212,160,23,0.12) !important; margin-top:10px !important; }
.ccr-avg-line { display:flex !important; align-items:center !important; gap:8px !important; margin-bottom:10px !important; }
.ccr-avg-label { font-size:0.68rem !important; color:rgba(255,255,255,0.36) !important; letter-spacing:0.05em !important; text-transform:uppercase !important; }
.ccr-vote-label { font-size:0.72rem !important; color:rgba(212,160,23,0.65) !important; margin-bottom:8px !important; }
.ccr-your-score { font-size:0.67rem !important; color:rgba(212,160,23,0.55) !important; margin-top:4px !important; }

/* Étoiles interactives */
.ccr-si { display:flex !important; gap:2px !important; user-select:none !important; margin-bottom:6px !important; }

.ccr-si-star {
  position:relative !important;
  width:30px !important;
  height:34px !important;
  display:inline-block !important;
}

/* Étoile grise de fond */
.ccr-si-star::before {
  content:'★' !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  font-size:1.55rem !important;
  color:rgba(255,255,255,0.12) !important;
  pointer-events:none !important;
  transition:color 0.07s !important;
}

/* Zone gauche = demi étoile */
.ccr-si-l {
  position:absolute !important;
  left:0 !important; top:0 !important;
  width:50% !important; height:100% !important;
  cursor:pointer !important;
  z-index:1 !important;
}

/* Zone droite = étoile pleine */
.ccr-si-r {
  position:absolute !important;
  right:0 !important; top:0 !important;
  width:50% !important; height:100% !important;
  cursor:pointer !important;
  z-index:1 !important;
}

/* Remplissage interactif propre : demi-étoile réelle et étoile pleine réelle */
.ccr-si-star::after {
  content:'★' !important;
  position:absolute !important;
  left:50% !important;
  top:50% !important;
  transform:translate(-50%,-50%) !important;
  font-size:1.55rem !important;
  color:#f5d97a !important;
  pointer-events:none !important;
  display:block !important;
  width:0 !important;
  overflow:hidden !important;
  white-space:nowrap !important;
  text-shadow:0 0 10px rgba(212,160,23,0.55) !important;
  transition:width 0.07s ease !important;
}

.ccr-si-star.full-on::after {
  width:100% !important;
}

.ccr-si-star.half-on::after {
  width:50% !important;
}

/* On garde toujours la base grise en dessous */
.ccr-si-star.half-on::before,
.ccr-si-star.full-on::before,
.ccr-si-star:has(.ccr-si-l.on)::before,
.ccr-si-star:has(.ccr-si-r.on)::before {
  color:rgba(255,255,255,0.12) !important;
  text-shadow:none !important;
}

/* Hover très léger sans mentir sur la valeur */
.ccr-si-star:hover::before {
  color:rgba(255,255,255,0.18) !important;
}

/* ── FIX FERMETURE POPUP ─────────────────────────────────── */
.resume-overlay {
  pointer-events: auto !important;
}
.resume-overlay .close,
.resume-overlay button.close {
  pointer-events: auto !important;
  position: relative !important;
  z-index: 9999 !important;
  cursor: pointer !important;
  color: var(--text, #e6e9ff) !important;
  background: rgba(255,255,255,0.08) !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
}
.resume-box, .neon-box {
  pointer-events: auto !important;
  position: relative !important;
  z-index: 10 !important;
}
.ccr-vote-wrap {
  pointer-events: auto !important;
  position: relative !important;
  z-index: 5 !important;
}

/* ── FIX FERMETURE POPUP RAPIDE ─────────────────────────── */
.resume-overlay {
  transition: opacity 0.15s ease !important;
}
.resume-overlay:not(.is-visible) {
  opacity: 0 !important;
  pointer-events: none !important;
}

/* ══════════════════════════════════════════════════════════
   BANDEAU NOUVEAUTÉS — ccr-newfilms v2
   ══════════════════════════════════════════════════════════ */

#ccr-newfilms-wrap {
  display: flex !important;
  align-items: stretch !important;
  width: 100% !important;
  overflow: hidden !important;
  background: rgba(5,3,0,0.88) !important;
  border-top: 1px solid rgba(212,160,23,0.20) !important;
  border-bottom: 1px solid rgba(212,160,23,0.20) !important;
  height: 72px !important;
  position: relative !important;
  z-index: 50 !important;
  margin: 0 !important;
  /* Perf mobile */
  -webkit-transform: translateZ(0) !important;
  transform: translateZ(0) !important;
}

/* Label fixe gauche */
.ccr-nf-label {
  flex-shrink: 0 !important;
  display: flex !important;
  align-items: center !important;
  padding: 0 18px !important;
  font-size: 0.72rem !important;
  font-weight: 800 !important;
  letter-spacing: 0.10em !important;
  text-transform: uppercase !important;
  color: #f5d97a !important;
  white-space: nowrap !important;
  border-right: 1px solid rgba(212,160,23,0.30) !important;
  background: rgba(8,5,0,1) !important;
  position: relative !important;
  z-index: 6 !important;
  text-shadow: 0 0 12px rgba(212,160,23,0.55) !important;
}

/* Viewport scrollable */
.ccr-nf-viewport {
  flex: 1 !important;
  overflow: hidden !important;
  position: relative !important;
  /* Fondu droite */
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, black 4%, black 92%, transparent 100%) !important;
  mask-image: linear-gradient(90deg, transparent 0%, black 4%, black 92%, transparent 100%) !important;
}

/* Track animé — durée fixe CSS pure */
.ccr-nf-track {
  display: flex !important;
  align-items: center !important;
  gap: 6px !important;
  height: 100% !important;
  padding: 0 8px !important;
  /* Animation CSS pure — 90s pour ~40 films */
  -webkit-animation: ccrNfScroll 90s linear infinite !important;
  animation: ccrNfScroll 90s linear infinite !important;
  -webkit-transform: translateZ(0) !important;
  transform: translateZ(0) !important;
}

.ccr-nf-viewport:hover .ccr-nf-track {
  -webkit-animation-play-state: paused !important;
  animation-play-state: paused !important;
}

@-webkit-keyframes ccrNfScroll {
  0%   { -webkit-transform: translateX(0); transform: translateX(0); }
  100% { -webkit-transform: translateX(-50%); transform: translateX(-50%); }
}
@keyframes ccrNfScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  .ccr-nf-track {
    -webkit-animation: none !important;
    animation: none !important;
  }
}

/* Item film */
.ccr-nf-item {
  display: inline-flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: 3px !important;
  flex-shrink: 0 !important;
  padding: 8px 14px !important;
  border-radius: 8px !important;
  cursor: pointer !important;
  background: rgba(255,255,255,0.03) !important;
  border: 1px solid rgba(212,160,23,0.12) !important;
  color: rgba(240,232,216,0.88) !important;
  text-align: left !important;
  min-width: 140px !important;
  max-width: 200px !important;
  transition: background 0.15s, border-color 0.15s !important;
  /* Touch target iOS */
  -webkit-tap-highlight-color: transparent !important;
}

.ccr-nf-item:hover,
.ccr-nf-item:active {
  background: rgba(212,160,23,0.12) !important;
  border-color: rgba(212,160,23,0.40) !important;
  color: #f5d97a !important;
}

.ccr-nf-titre {
  font-size: 0.75rem !important;
  font-weight: 700 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  max-width: 180px !important;
  display: block !important;
}

.ccr-nf-meta {
  font-size: 0.62rem !important;
  color: rgba(212,160,23,0.60) !important;
  white-space: nowrap !important;
  display: block !important;
}

/* Séparateur entre les deux copies */
.ccr-nf-sep {
  display: inline-block !important;
  width: 40px !important;
  flex-shrink: 0 !important;
}

/* Mobile : plus compact */
@media (max-width: 640px) {
  #ccr-newfilms-wrap { height: 60px !important; }
  .ccr-nf-label { padding: 0 10px !important; font-size: 0.62rem !important; }
  .ccr-nf-item { padding: 6px 10px !important; min-width: 110px !important; }
  .ccr-nf-titre { font-size: 0.68rem !important; max-width: 130px !important; }
  .ccr-nf-meta { display: none !important; }
}

/* ══════════════════════════════════════════════════════════
   NOUVELLES FEATURES — ccr-features.js
   ══════════════════════════════════════════════════════════ */

/* Badge favoris */
#ccr-fav-badge {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: #ff4466 !important;
  color: #fff !important;
  font-size: 0.60rem !important;
  font-weight: 800 !important;
  min-width: 16px !important;
  height: 16px !important;
  border-radius: 999px !important;
  padding: 0 4px !important;
  margin-left: 5px !important;
  vertical-align: middle !important;
  line-height: 1 !important;
}

/* Bouton Vu/Pas vu sur les cartes */
.ccr-watched-btn {
  position: absolute !important;
  bottom: 6px !important;
  left: 6px !important;
  width: 22px !important;
  height: 22px !important;
  border-radius: 50% !important;
  background: rgba(0,0,0,0.65) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  font-size: 0.65rem !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  z-index: 10 !important;
  opacity: 0 !important;
  transition: opacity 0.15s ease !important;
  padding: 0 !important;
  line-height: 1 !important;
}

.film-card:hover .ccr-watched-btn,
.film-card .ccr-watched-btn[data-watched="true"] {
  opacity: 1 !important;
}

/* Bouton filtre Vus */
.ccr-watched-filter-btn {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
  color: rgba(240,232,216,0.80) !important;
  border-radius: 999px !important;
  padding: 6px 14px !important;
  font-size: 0.78rem !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  transition: background 0.15s, border-color 0.15s !important;
}

.ccr-watched-filter-btn.active,
.ccr-watched-filter-btn:hover {
  background: rgba(80,200,80,0.18) !important;
  border-color: rgba(80,200,80,0.45) !important;
  color: #90ee90 !important;
}

/* Modal Surprends-moi */
#ccr-random-modal {
  display: none !important;
  position: fixed !important;
  inset: 0 !important;
  background: rgba(0,0,0,0.75) !important;
  z-index: 9000 !important;
  align-items: center !important;
  justify-content: center !important;
  backdrop-filter: blur(3px) !important;
}

#ccr-random-modal[style*="flex"] {
  display: flex !important;
}

.ccr-rm-box {
  background: linear-gradient(160deg, rgba(22,14,2,0.98), rgba(10,6,0,0.99)) !important;
  border: 1px solid rgba(212,160,23,0.45) !important;
  border-radius: 16px !important;
  padding: 28px 32px !important;
  min-width: 300px !important;
  max-width: 90vw !important;
  box-shadow: 0 0 60px rgba(212,160,23,0.15), 0 20px 60px rgba(0,0,0,0.70) !important;
}

.ccr-rm-title {
  font-size: 1.1rem !important;
  font-weight: 800 !important;
  color: #f5d97a !important;
  margin-bottom: 20px !important;
  text-align: center !important;
  letter-spacing: 0.05em !important;
}

.ccr-rm-row {
  display: flex !important;
  flex-direction: column !important;
  gap: 6px !important;
  margin-bottom: 16px !important;
}

.ccr-rm-row label {
  font-size: 0.72rem !important;
  color: rgba(212,160,23,0.70) !important;
  font-weight: 700 !important;
  text-transform: uppercase !important;
  letter-spacing: 0.08em !important;
}

.ccr-rm-row select {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(212,160,23,0.30) !important;
  border-radius: 8px !important;
  color: #f0e8d8 !important;
  padding: 8px 12px !important;
  font-size: 0.85rem !important;
  width: 100% !important;
}

.ccr-rm-btns {
  display: flex !important;
  gap: 10px !important;
  margin-top: 8px !important;
}

#ccr-rm-go {
  flex: 1 !important;
  background: linear-gradient(145deg, #ffe9a3, #d4a017, #8a560a) !important;
  color: #120900 !important;
  border: none !important;
  border-radius: 999px !important;
  padding: 10px !important;
  font-weight: 900 !important;
  font-size: 0.90rem !important;
  cursor: pointer !important;
}

#ccr-rm-close {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
  color: rgba(255,255,255,0.60) !important;
  border-radius: 999px !important;
  padding: 10px 16px !important;
  font-size: 0.85rem !important;
  cursor: pointer !important;
}

/* ── FIX BOUTON SUGGÉRER + FLÈCHES SCROLL ────────────────── */

/* Bouton Suggérer : déplacé à gauche pour ne pas gêner les flèches */
#ideasBtn {
  right: auto !important;
  left: 16px !important;
  bottom: 70px !important; /* au-dessus de la bannière don */
  font-size: 0.80rem !important;
  padding: 10px 14px !important;
  border-radius: 20px !important;
  z-index: 7999 !important;
}

/* Flèches scroll — bien espacées à droite */
#scroll-top-btn,
#scroll-bottom-btn {
  right: 14px !important;
  z-index: 7999 !important;
}
#scroll-top-btn    { bottom: 120px !important; }
#scroll-bottom-btn { bottom: 70px !important; }

/* iOS : tap highlight transparent sur tous les boutons interactifs */
#ideasBtn,
#scroll-top-btn,
#scroll-bottom-btn,
.film-card,
.ccr-wb,
.fav-btn,
.ccr-nf-item {
  -webkit-tap-highlight-color: transparent !important;
}

/* iOS : éviter le zoom sur les inputs */
#search-input,
select,
.ccr-rm-row select {
  font-size: 16px !important; /* < 16px → zoom iOS Safari */
}

/* Android : éviter les ombres natives sur les boutons */
button, [role="button"] {
  -webkit-appearance: none !important;
  appearance: none !important;
}

/* Performance mobile : désactiver les animations lourdes sur petit écran */
@media (max-width: 768px) {
  .hero-counter-box {
    animation: none !important;
  }
  .film-card {
    will-change: auto !important;
  }
}



/* ══════════════════════════════════════════════════════════
   UPGRADES v1.0 — Pagination, Share, Swipe, Tooltip
   ══════════════════════════════════════════════════════════ */

/* Barre de pagination */
#ccr-pages-bar {
  display: none;
  align-items: center !important;
  justify-content: center !important;
  gap: 12px !important;
  padding: 8px 0 4px !important;
  margin: 0 !important;
}

#ccr-pages-bar button {
  background: rgba(212,160,23,0.12) !important;
  border: 1px solid rgba(212,160,23,0.30) !important;
  color: #f5d97a !important;
  border-radius: 8px !important;
  width: 36px !important;
  height: 36px !important;
  font-size: 1rem !important;
  cursor: pointer !important;
  transition: background 0.15s !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
}

#ccr-pages-bar button:hover:not(:disabled) {
  background: rgba(212,160,23,0.28) !important;
}

#ccr-pages-bar button:disabled {
  opacity: 0.30 !important;
  cursor: default !important;
}

#ccr-pg-info {
  font-size: 0.78rem !important;
  color: rgba(240,232,216,0.65) !important;
  font-weight: 600 !important;
  min-width: 90px !important;
  text-align: center !important;
  letter-spacing: 0.04em !important;
}

/* Bouton partage mobile */
.ccr-share-btn {
  background: rgba(255,255,255,0.06) !important;
  border: 1px solid rgba(255,255,255,0.15) !important;
  color: rgba(240,232,216,0.80) !important;
  border-radius: 8px !important;
  padding: 8px 14px !important;
  font-size: 0.82rem !important;
  cursor: pointer !important;
  -webkit-tap-highlight-color: transparent !important;
}

/* Bouton ↑ — visible sur mobile après scroll */
#scroll-top-btn {
  display: none;
}
@media (max-width: 768px) {
  #scroll-top-btn {
    display: none; /* géré par JS scroll */
    position: fixed !important;
    bottom: 70px !important;
    right: 14px !important;
    z-index: 7999 !important;
  }
}

/* Tooltip raccourcis clavier */
#ccr-shortcuts-tip {
  position: fixed !important;
  bottom: 80px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  background: rgba(10,6,0,0.95) !important;
  border: 1px solid rgba(212,160,23,0.35) !important;
  border-radius: 10px !important;
  padding: 10px 16px !important;
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  font-size: 0.75rem !important;
  color: rgba(240,232,216,0.80) !important;
  z-index: 8500 !important;
  white-space: nowrap !important;
  box-shadow: 0 4px 24px rgba(0,0,0,0.55) !important;
  animation: ccrFadeIn 0.3s ease !important;
}

#ccr-shortcuts-tip strong { color: #f5d97a !important; }

#ccr-tip-close {
  background: transparent !important;
  border: none !important;
  color: rgba(255,255,255,0.40) !important;
  cursor: pointer !important;
  font-size: 0.75rem !important;
  padding: 0 !important;
}

@keyframes ccrFadeIn {
  from { opacity: 0; transform: translateX(-50%) translateY(8px); }
  to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}

/* Masquer tooltip sur mobile (trop petit) */
@media (max-width: 640px) {
  #ccr-shortcuts-tip { display: none !important; }
}

/* ── Fix Android : popup non-visible ne bloque plus les taps ── */
.resume-overlay:not(.is-visible) {
  pointer-events: none !important;
}

/* === Footer links visibility fix v9.1.3 === */
footer {
  position: relative !important;
  z-index: 25 !important;
  padding-bottom: 96px !important;
}
.ccr-footer-links {
  display: flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  align-items: center !important;
  gap: 8px !important;
  margin-top: 14px !important;
  line-height: 1.7 !important;
  color: rgba(255,255,255,0.72) !important;
  position: relative !important;
  z-index: 25 !important;
}
.ccr-footer-links a {
  color: rgba(255,255,255,0.82) !important;
  border-bottom: 1px dotted rgba(255,255,255,0.28) !important;
}
.ccr-footer-links span {
  color: rgba(255,255,255,0.30) !important;
}
@media (min-width: 1100px) {
  footer {
    padding-bottom: 44px !important;
  }
}


/* v9.1.5 mobile donate dock — compact bottom chip to free Suggest/Scroll buttons */
@media (max-width: 768px) {
  body {
    padding-bottom: 132px !important;
  }

  #ccr-donate-mobile {
    left: 50% !important;
    right: auto !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 66px) !important;
    transform: translateX(-50%) !important;
    width: auto !important;
    max-width: min(290px, calc(100vw - 28px)) !important;
    padding: 6px 8px !important;
    border-radius: 999px !important;
    border: 1px solid rgba(212,160,23,0.34) !important;
    box-shadow: 0 10px 26px rgba(0,0,0,0.42), 0 0 18px rgba(212,160,23,0.12) !important;
    background: linear-gradient(90deg, rgba(12,8,2,0.94) 0%, rgba(28,18,3,0.96) 50%, rgba(12,8,2,0.94) 100%) !important;
    backdrop-filter: blur(10px) !important;
    -webkit-backdrop-filter: blur(10px) !important;
  }

  #ccr-donate-mobile > div,
  #ccr-donate-mobile > div:last-child {
    width: auto !important;
    max-width: none !important;
    flex-direction: row !important;
    justify-content: center !important;
    gap: 0 !important;
  }

  #ccr-donate-mobile p {
    display: none !important;
  }

  #ccr-donate-mobile a {
    display: block !important;
  }

  #ccr-donate-mobile button {
    padding: 10px 16px !important;
    font-size: 0.78rem !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }

  #ideasBtn {
    left: 12px !important;
    right: auto !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 12px) !important;
    padding: 10px 12px !important;
    font-size: 0.76rem !important;
    border-radius: 999px !important;
    z-index: 8001 !important;
  }

  #scroll-bottom-btn {
    right: 12px !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 12px) !important;
    z-index: 8001 !important;
  }

  #scroll-top-btn {
    right: 12px !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 64px) !important;
    z-index: 8001 !important;
  }

  #films-container {
    padding-bottom: 128px !important;
  }
}


/* v9.1.6 mobile donate inline card — no fixed bottom bar on phones */
@media (max-width: 768px) {
  body {
    padding-bottom: 24px !important;
  }

  #ccr-donate-mobile,
  #ccr-donate-mobile.ccr-donate-mobile-inline {
    position: relative !important;
    left: auto !important;
    right: auto !important;
    bottom: auto !important;
    transform: none !important;
    width: fit-content !important;
    max-width: calc(100vw - 24px) !important;
    margin: 10px auto 12px !important;
    padding: 8px 10px !important;
    border-radius: 16px !important;
    display: flex !important;
    z-index: 20 !important;
    box-shadow: 0 8px 22px rgba(0,0,0,0.34), 0 0 14px rgba(212,160,23,0.10) !important;
  }

  #ccr-donate-mobile > div,
  #ccr-donate-mobile > div:last-child {
    width: auto !important;
    max-width: none !important;
    flex-direction: row !important;
    justify-content: center !important;
    gap: 0 !important;
  }

  #ccr-donate-mobile p {
    display: none !important;
  }

  #ccr-donate-mobile a {
    display: block !important;
  }

  #ccr-donate-mobile button {
    padding: 10px 16px !important;
    font-size: 0.78rem !important;
    line-height: 1.1 !important;
    white-space: nowrap !important;
  }

  #ideasBtn {
    left: 12px !important;
    right: auto !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 12px) !important;
    z-index: 10001 !important;
  }

  #scroll-bottom-btn {
    right: 12px !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 12px) !important;
    z-index: 10001 !important;
  }

  #scroll-top-btn {
    right: 12px !important;
    bottom: calc(env(safe-area-inset-bottom, 0px) + 64px) !important;
    z-index: 10001 !important;
  }

  #films-container {
    padding-bottom: 40px !important;
  }

  footer {
    padding-bottom: 40px !important;
  }
}


@media (min-width: 1100px) {
  .featured-summary { display: none !important; }
  .featured-tg-badge { white-space: nowrap !important; }
}


/* v9.2.7 counter position fix */
@media (min-width: 900px) {
  .hero-counter-slot {
    position: fixed !important;
    top: 194px !important;
    right: 24px !important;
    transform: none !important;
    z-index: 2147483647 !important;
  }
}


/* v9.4.20 counter fixed — évite le conflit absolute/overflow avec featured-search-row */
@media (min-width: 1100px) {
  .hero-counter-slot {
    position: fixed !important;
    top: 180px !important;
    right: 24px !important;
    transform: none !important;
    z-index: 2147483000 !important;
    pointer-events: none !important;
    width: 220px !important;
    max-width: 220px !important;
    min-width: 200px !important;
    display: block !important;
  }
}
@media (min-width: 900px) and (max-width: 1099px) {
  .hero-counter-slot {
    position: static !important;
    display: none !important;
  }
}


/* v9.4.21 — Fix compteur passe sous les affiches au scroll.
   content-visibility:auto crée un contexte de rendu qui ignore z-index:fixed. */
.card, .film-card {
  content-visibility: visible !important;
}


/* v9.4.34 — final counter layout fix
   Le compteur reste ANCRÉ dans la hero row desktop.
   On neutralise définitivement les anciens fixed injectés plus haut. */
@media (min-width: 1100px) {
  .featured-search-row {
    position: relative !important;
    min-height: 210px !important;
    padding-right: 268px !important;
    overflow: visible !important;
  }

  .hero-counter-slot {
    position: absolute !important;
    top: 18px !important;
    right: 20px !important;
    left: auto !important;
    bottom: auto !important;
    transform: none !important;
    z-index: 40 !important;
    pointer-events: none !important;
    width: 220px !important;
    max-width: 220px !important;
    min-width: 200px !important;
    display: block !important;
  }
}
