/**
 * Mode télé / leanback (10-foot) — grands écrans & Smart TV.
 * Activé via html.tv-leanback (JS) ou media query large.
 */
html.tv-leanback {
  --header-h: 84px;
  --tv-scale: 1.18;
  font-size: 18px;
}

@media (min-width: 1600px) and (min-height: 800px) {
  html:not(.tv-leanback-off) {
    --header-h: 80px;
  }
}

html.tv-leanback .nav__link,
html.tv-leanback .mobile-nav-tile {
  font-size: 1.05rem;
  padding: 0.55em 0.9em;
}

html.tv-leanback .logo__img {
  width: 190px;
  height: auto;
}

html.tv-leanback .poster-card,
html.tv-leanback .card,
html.tv-leanback [class*="poster"] {
  border-radius: 14px;
}

html.tv-leanback .row-title,
html.tv-leanback .section-title,
html.tv-leanback .catalogue-glow-title,
html.tv-leanback .faq-hero-title,
html.tv-leanback .reviews-hero-title {
  font-size: clamp(1.6rem, 2.2vw, 2.4rem);
}

html.tv-leanback .row-posters,
html.tv-leanback .catalogue-grid,
html.tv-leanback .home-row {
  gap: 1.1rem;
}

/* Focus télécommande / clavier — très visible partout */
html.tv-leanback :is(a, button, [role="button"], input, select, textarea, .poster-card, .cast-card-pro, .person-credit-card, .person-tab, .film-modal-tab):focus-visible {
  outline: 3px solid var(--accent-bright, #b8aaf9) !important;
  outline-offset: 4px !important;
}

html.tv-leanback .modal,
html.tv-leanback #modalBox.modal,
html.tv-leanback .person-profile-card {
  font-size: 1.05rem;
}

html.tv-leanback .person-profile-card {
  width: min(1360px, 96vw);
  padding: 36px;
  padding-top: 64px;
}

html.tv-leanback .person-hero {
  grid-template-columns: minmax(240px, 320px) 1fr;
  gap: 40px;
}

html.tv-leanback .person-hero-name {
  font-size: clamp(2.2rem, 3vw, 3.2rem);
}

html.tv-leanback .person-chip,
html.tv-leanback .person-tab {
  font-size: 15px;
  padding: 12px 18px;
}

html.tv-leanback .person-credit-grid,
html.tv-leanback .person-photo-grid {
  grid-template-columns: repeat(auto-fill, minmax(168px, 1fr));
  gap: 18px;
}

html.tv-leanback .cast-card-pro {
  min-width: 120px;
}

html.tv-leanback .cast-photo-pro {
  width: 110px;
  height: 110px;
}

html.tv-leanback .film-title-big,
html.tv-leanback .film-overview-text {
  font-size: 1.15em;
}

html.tv-leanback .film-modal-tab,
html.tv-leanback .btn,
html.tv-leanback button.primary,
html.tv-leanback .ticket-send-btn,
html.tv-leanback #ticketSendBtn {
  min-height: 48px;
  font-size: 1.05rem;
  padding-left: 1.2em;
  padding-right: 1.2em;
}

/* Catalogue plus lisible sur grand écran TV */
html.tv-leanback .catalogue-grid {
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 1.25rem !important;
}

@media (min-width: 1800px) {
  html.tv-leanback .catalogue-grid {
    grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
  }
}

/* Contenu moins « collé » aux bords TV */
html.tv-leanback .rows,
html.tv-leanback .catalogue-page,
html.tv-leanback .faq-page,
html.tv-leanback .reviews-page,
html.tv-leanback .demandes-page,
html.tv-leanback #tvView {
  padding-left: max(2.5vw, 28px);
  padding-right: max(2.5vw, 28px);
}

html.tv-leanback .demandes-list--grid {
  grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)) !important;
  gap: 1.15rem 1rem !important;
}
html.tv-leanback .demandes-podium-track {
  max-width: 820px;
  gap: 1rem;
}
html.tv-leanback .dem-vote-up {
  width: 40px;
  height: 40px;
}
html.tv-leanback .dem-vote-num {
  font-size: 1.05rem;
}
html.tv-leanback .demandes-filter-btn,
html.tv-leanback .demandes-sort-btn,
html.tv-leanback .demandes-cta-btn {
  font-size: 0.95rem !important;
  padding: 0.55rem 1rem !important;
}
html.tv-leanback .dem-poster-card-wrap:focus-within .card-clip {
  outline: 3px solid rgba(59, 130, 246, 0.75);
  outline-offset: 3px;
}

html.tv-leanback .hero__title {
  font-size: clamp(2.4rem, 4vw, 4rem);
}

html.tv-leanback .search-input,
html.tv-leanback input[type="search"],
html.tv-leanback .faq-search-input {
  min-height: 52px;
  font-size: 1.1rem;
}

/* Tickets un peu plus grands pour lire de loin */
html.tv-leanback .ticket-msg-bubble {
  font-size: 1.05rem;
  line-height: 1.55;
  padding: 14px 16px;
}

html.tv-leanback .ticket-msg-avatar {
  width: 44px;
  height: 44px;
}
