
/*
Theme Name: FilmesFree Theme
Author: FilmesFree
Version: 1.7.21
Description: Tema estilo Netflix para filmes e séries (home + archives + singles com hero cinematográfico).
Text Domain: filmesfree
*/

:root { --ff-red:#e50914; --ff-bg:#0b0b0b; --ff-card:#141414; --ff-muted:#b3b3b3; --ff-line:rgba(255,255,255,.08); }

/* Fontes locais (Inter) — carregamento direto para performance */
@font-face{
  font-family:'FF Inter';
  src:url('assets/fonts/Inter-Regular.woff2') format('woff2');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'FF Inter';
  src:url('assets/fonts/Inter-Bold.woff2') format('woff2');
  font-weight:700;
  font-style:normal;
  font-display:swap;
}

/* Fonte “Display” (títulos) — self-hosted */
@font-face{
  font-family:'Playfair Display';
  src:url('assets/fonts/FFDisplay-Regular.woff') format('woff');
  font-weight:400;
  font-style:normal;
  font-display:swap;
}
@font-face{
  font-family:'Playfair Display';
  src:url('assets/fonts/FFDisplay-Bold.woff') format('woff');
  font-weight:700;
  font-style:normal;
  font-display:swap;
}

* { box-sizing:border-box; }
html { scroll-behavior: smooth; }
body { background:var(--ff-bg); color:#fff; font-family: "FF Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; margin:0; }
a { color:var(--ff-red); text-decoration:none; }

/* Header (clean + alinhado) */
.ff-skip{
  position:absolute;
  left:-9999px;
  top:10px;
  z-index:9999;
  background:#fff;
  color:#000;
  padding:10px 12px;
  border-radius: 12px;
  font-weight: 800;
}
.ff-skip:focus{ left:12px; }

.ff-header{
  position:sticky;
  top:0;
  z-index:60;
  background: rgba(11,11,11,.78);
  backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.ff-header-inner{
  max-width:1200px;
  margin:0 auto;
  padding: 12px 18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 16px;
  min-height: 60px;
}

.ff-header-right{
  display:flex;
  align-items:center;
  gap: 12px;
}

.ff-brand{ display:flex; align-items:center; gap:10px; }
.ff-logo{ height:34px; width:auto; display:block; }
.ff-logo--desktop{ transform: none; }
.ff-logo--mobile{ display:none; }
.ff-brand{ color:#fff; }
.ff-brand--wp .custom-logo-link{ display:block; }
.ff-brand--wp .custom-logo{ height:36px; width:auto; display:block; }

.ff-nav{
  display:flex;
  align-items:center;
  gap: 10px;
}

/* ===================== Search (streaming-style) ===================== */
.ff-search{
  position: relative;
  display:flex;
  align-items:center;
}
.ff-search-btn{
  width: 38px;
  height: 38px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.04);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  transition: background .12s ease, border-color .12s ease;
}
.ff-search-btn:hover{ background: rgba(255,255,255,.07); border-color: rgba(255,255,255,.16); }

/* ===================== SEO Footer (Home) ===================== */
.ff-seo-footer{ margin: 26px 0 70px; }
.ff-seo-card{
  background: rgba(255,255,255,.04);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 22px;
  padding: 26px;
  box-shadow: 0 18px 60px rgba(0,0,0,.28);
}
.ff-seo-title{
  margin: 0 0 12px;
  font-size: 34px;
  letter-spacing: -0.8px;
}
.ff-seo-text{ color: rgba(255,255,255,.82); max-width: 980px; }
.ff-seo-text p{ margin: 0 0 12px; line-height: 1.55; }

.ff-faq{ margin-top: 16px; border-top: 1px solid rgba(255,255,255,.08); }
.ff-faq details{ border-bottom: 1px solid rgba(255,255,255,.08); padding: 14px 0; }
.ff-faq summary{
  cursor: pointer;
  list-style: none;
  font-weight: 800;
  letter-spacing: -0.2px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 14px;
}
.ff-faq summary::-webkit-details-marker{ display:none; }
.ff-faq summary::after{
  content: '+';
  width: 26px;
  height: 26px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color: rgba(255,255,255,.9);
  flex: 0 0 auto;
}
.ff-faq details[open] summary::after{ content: '×'; }
.ff-faq p{ margin: 10px 0 0; color: rgba(255,255,255,.78); line-height: 1.55; max-width: 980px; }

@media (max-width: 767px){
  .ff-seo-card{ padding: 18px; border-radius: 18px; }
  .ff-seo-title{ font-size: 26px; }
}
.ff-search-ico{
  width: 18px;
  height: 18px;
  display:block;
  background-repeat:no-repeat;
  background-position:center;
  background-size: 18px 18px;
  filter: drop-shadow(0 1px 0 rgba(0,0,0,.2));
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E");
}

.ff-search-panel{
  position:absolute;
  right: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 0;
  opacity: 0;
  pointer-events: none;
  transition: width .16s ease, opacity .12s ease;
}
.ff-search.is-open .ff-search-panel{
  width: 340px;
  opacity: 1;
  pointer-events:auto;
}
.ff-search-input{
  width:100%;
  height: 38px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(13,13,13,.86);
  color:#fff;
  padding: 0 14px 0 40px;
  outline:none;
  font-weight: 800;
  font-size: 14px;
}
.ff-search.is-open .ff-search-input{
  padding-left: 40px;
}
.ff-search.is-open .ff-search-input:focus{
  border-color: rgba(229,9,20,.65);
  box-shadow: 0 0 0 4px rgba(229,9,20,.12);
}
.ff-search-panel:before{
  content:'';
  position:absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  width: 16px;
  height: 16px;
  background-repeat:no-repeat;
  background-position:center;
  background-size: 16px 16px;
  opacity: .92;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M21 21l-4.3-4.3'/%3E%3C/svg%3E");
}
.ff-search-results{
  position:absolute;
  left: 0;
  right: 0;
  top: 44px;
  background: rgba(12,12,12,.96);
  border: 1px solid rgba(255,255,255,.10);
  border-radius: 14px;
  overflow:hidden;
  box-shadow: 0 18px 46px rgba(0,0,0,.55);
  display:none;
}
.ff-search.has-results .ff-search-results{ display:block; }
.ff-sr-item{
  display:flex;
  gap: 10px;
  padding: 10px 12px;
  align-items:center;
  text-decoration:none;
  color:#fff;
}
.ff-sr-item:hover{ background: rgba(255,255,255,.06); }
.ff-sr-poster{
  width: 32px;
  height: 48px;
  border-radius: 8px;
  background: rgba(255,255,255,.06);
  overflow:hidden;
  flex: 0 0 auto;
}
.ff-sr-poster img{ width:100%; height:100%; object-fit:cover; display:block; }
.ff-sr-main{ min-width:0; }
.ff-sr-title{ font-weight: 900; font-size: 13px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.ff-sr-meta{ font-size: 12px; color: rgba(255,255,255,.72); margin-top: 2px; }
.ff-sr-empty{
  padding: 12px;
  color: rgba(255,255,255,.72);
  font-size: 13px;
}
.ff-nav-link{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding: 9px 12px;
  border-radius: 999px;
  border: 1px solid transparent;
  color: rgba(255,255,255,.88);
  font-weight: 900;
  font-size: 14px;
  letter-spacing: .2px;
  text-decoration:none;
  transition: background .12s ease, filter .12s ease, border-color .12s ease, color .12s ease;
}
.ff-nav-link:hover{ background: rgba(255,255,255,.06); color:#fff; }
.ff-nav-link.is-active{
  background: rgba(229,9,20,.18);
  border-color: rgba(229,9,20,.55);
  color:#fff;
}
@media (max-width:520px){
  .ff-header-inner{ padding: 10px 14px; min-height: 54px; }
  .ff-logo, .ff-brand--wp .custom-logo{ height:22px; }
  /* On small screens, show monogram 'FF' only */
  .ff-logo--desktop{ display:none; }
  .ff-logo--mobile{ display:block; height:22px; }
  .ff-nav-link{ padding: 8px 10px; font-size: 13px; }

  .ff-search.is-open .ff-search-panel{ width: 240px; }
}
/* Títulos com fonte Display */
h1, h2, h3, .ff-title, .ff-row h2 {
  font-family: "Playfair Display", "FF Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}
.container { max-width:1200px; margin:0 auto; padding:22px 18px; }
.ff-home{ padding-top: 8px; }
.hero { padding:26px 18px; background:linear-gradient(90deg, rgba(0,0,0,.88), rgba(0,0,0,.2)); border-bottom:1px solid rgba(255,255,255,.06); }

/* Hero (base) */
.ff-hero {
  position: relative;
  min-height: 520px;
  border-bottom: 1px solid rgba(255,255,255,.06);
  overflow: hidden;
}
.ff-hero .ff-hero-bg {
  position:absolute; inset:0;
  background-size: cover;
  background-position: center;
  transform: scale(1.05);
  filter: blur(2px) saturate(1.1);
  opacity: .9;
}
.ff-hero .ff-hero-overlay {
  position:absolute; inset:0;
  background:
    linear-gradient(90deg, rgba(11,11,11,.92) 0%, rgba(11,11,11,.65) 42%, rgba(11,11,11,.35) 70%, rgba(11,11,11,.9) 100%),
    linear-gradient(180deg, rgba(11,11,11,.25) 0%, rgba(11,11,11,.9) 92%);
}
.ff-hero .ff-hero-inner {
  position:relative;
  max-width: 1200px;
  margin:0 auto;
  padding: 34px 18px 26px;
  display:grid;
  grid-template-columns: 320px 1fr;
  gap: 22px;
  align-items: end;
}

/* Portal hero (menos "Netflix", mais editorial) */
.ff-hero--portal{ min-height: 380px; }
.ff-hero--portal .ff-hero-bg{
  transform: scale(1.08);
  filter: blur(10px) saturate(1.05);
  opacity: .82;
}
.ff-hero--portal .ff-hero-overlay{
  background:
    linear-gradient(90deg, rgba(11,11,11,.94) 0%, rgba(11,11,11,.78) 48%, rgba(11,11,11,.70) 62%, rgba(11,11,11,.94) 100%),
    linear-gradient(180deg, rgba(11,11,11,.10) 0%, rgba(11,11,11,.92) 92%);
}
.ff-hero--portal .ff-hero-inner{
  grid-template-columns: 1fr 220px;
  align-items: center;
  padding: 22px 18px 18px;
}
.ff-hero-copy{ max-width: 760px; }
.ff-kicker{
  display:inline-flex;
  padding: 7px 10px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  color: rgba(255,255,255,.92);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .8px;
  text-transform: uppercase;
}
.ff-hero--portal .ff-title{ font-size: 38px; margin-top: 10px; }
.ff-sinopse--portal{ font-size: 15px; max-width: 680px; color: rgba(255,255,255,.88); }
.ff-hero-media{ display:flex; justify-content:flex-end; }
.ff-hero-poster{
  width: 200px;
  border-radius: 16px;
  overflow:hidden;
  border: 1px solid rgba(255,255,255,.10);
  background: rgba(255,255,255,.05);
  box-shadow: 0 16px 40px rgba(0,0,0,.55);
}
.ff-hero-poster img{ width:100%; height:auto; display:block; }
.ff-poster {
  width: 100%;
  border-radius: 14px;
  overflow:hidden;
  box-shadow: 0 22px 60px rgba(0,0,0,.55);
  border: 1px solid rgba(255,255,255,.08);
  background: rgba(255,255,255,.06);
}
.ff-poster img { width:100%; height:auto; display:block; }
.ff-title { font-family:var(--ff-serif); font-size: 44px; line-height:1.05; margin:0 0 10px; font-weight: 700; letter-spacing: -.2px; }
.ff-submeta { color: var(--ff-muted); font-size: 14px; margin-bottom: 12px; }
.ff-sinopse {
  max-width: 780px;
  color: rgba(255,255,255,.92);
  font-size: 15px;
  line-height: 1.55;
  margin-top: 10px;
}
.ff-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top: 14px; }
.ff-btn {
  display:inline-flex; align-items:center; justify-content:center;
  padding: 11px 16px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.08);
  color:#fff;
  font-weight: 700;
  font-size: 13px;
}
.ff-btn.primary { background: rgba(229,9,20,.92); border-color: rgba(229,9,20,.92); }
.ff-btn:hover { filter: brightness(1.07); }


/* Scroll controls (carrosséis) */
.ff-row-actions{ display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.ff-scroll-controls{ display:flex; gap:8px; align-items:center; }
.ff-scroll-btn{
  width:34px;
  height:34px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color:#fff;
  font-weight:900;
  line-height:1;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  user-select:none;
  transition: transform .12s ease, filter .12s ease, background .12s ease;
}
.ff-scroll-btn:hover{ transform: translateY(-1px); filter:brightness(1.08); background: rgba(255,255,255,.10); }
.ff-scroll-btn:active{ transform: translateY(0px) scale(.98); }
.ff-scrollwrap{ position:relative; }

@media (max-width: 720px){
  .ff-scroll-controls{ display:none; }
}

/* Home rows */
.ff-row { margin: 12px 0 8px; }
.ff-row-head { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap; }
.ff-row h2 { font-family:var(--ff-serif); margin: 0; font-size: 18px; letter-spacing: -.3px; }

.ff-link{ color: rgba(255,255,255,.82); font-weight:800; font-size:13px; text-decoration:none; }
.ff-link:hover{ text-decoration:underline; color:#fff; }

.ff-block{ margin: 18px 0 12px; }

/* Relacionados (single) */
.ff-related{ margin-top: 16px; }
.ff-related .ff-row-head{ padding: 0 4px; }
.ff-grid{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(170px, 1fr));
  gap: 14px;
  padding: 12px 4px 6px;
}
.ff-grid .ff-tile{ flex: initial; }

/* Explorar por gênero */
.ff-genres{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
  padding: 10px 4px 2px;
}
.ff-genre-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding: 9px 12px;
  border-radius: 999px;
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.10);
  color: rgba(255,255,255,.90);
  font-weight: 900;
  font-size: 12px;
  text-decoration:none;
  transition: transform .12s ease, filter .12s ease, background .12s ease;
}
.ff-genre-chip:hover{ transform: translateY(-1px); filter: brightness(1.08); }
.ff-genre-chip.active{
  background: rgba(229,9,20,.18);
  border-color: rgba(229,9,20,.55);
  color:#fff;
}

.ff-scroll {
  display:flex;
  gap: 12px;
  overflow-x:auto;
  padding: 12px 4px 10px;
  scroll-snap-type: x mandatory;
}
.ff-scroll::-webkit-scrollbar { height: 10px; }
.ff-scroll::-webkit-scrollbar-thumb { background: rgba(255,255,255,.14); border-radius: 999px; }

.ff-tile {
  flex: 0 0 165px;
  scroll-snap-align: start;
  background: var(--ff-card);
  border: 1px solid rgba(255,255,255,.06);
  border-radius: 12px;
  overflow:hidden;
  transition: transform .15s ease, filter .15s ease;
}
.ff-tile:hover { transform: translateY(-3px); filter: brightness(1.05); }
.ff-tile-media img { width:100%; height:auto; display:block; }
.ff-tile .thumb { border-radius:0; }
.ff-tile-meta { display:flex; gap:6px; flex-wrap:wrap; padding: 8px 10px 0; }
.ff-pill {
  display:inline-flex;
  padding: 5px 9px;
  border-radius: 999px;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  font-size: 11px;
  color:#fff;
  font-weight: 800;
}
.ff-tile-title {
  padding: 8px 10px 12px;
  font-size: 13px;
  color:#fff;
  line-height:1.25;
  font-weight: 700;
}

/* (removido da home) tabs de navegação no hero */

.grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(170px, 1fr)); gap:16px; }
.card { background:var(--ff-card); border-radius:10px; overflow:hidden; border:1px solid rgba(255,255,255,.06); transition:transform .15s ease; }
.card:hover { transform: translateY(-3px); }
.thumb { width:100%; aspect-ratio: 2/3; background:rgba(255,255,255,.06); display:flex; align-items:center; justify-content:center; color:rgba(255,255,255,.55); font-size:12px; }
.card img { width:100%; height:auto; display:block; }
.card h3 { font-size:14px; margin:10px 10px 12px; color:#fff; line-height:1.25; }
.meta { color:var(--ff-muted); font-size:13px; margin-top:10px; }

.badges { display:flex; gap:8px; flex-wrap:wrap; margin:10px 0 0; }
.badge { background:rgba(229,9,20,.15); border:1px solid rgba(229,9,20,.35); color:#fff; padding:6px 10px; border-radius:999px; font-size:12px; }

.providers { margin-top:16px; padding:14px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.10); border-radius:12px; }
.providers ul { margin:10px 0 0; padding-left:18px; }
.providers h3 { margin:0 0 6px; font-size: 16px; }
.providers .ff-provider-top { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; }
.providers .ff-provider-top .ff-btn { padding:9px 12px; font-weight:800; }

/* Onde assistir (definitivo): skeleton discreto */
.ff-provider-skel{margin-top:12px}
.ff-skel-row{height:12px;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);width:220px;max-width:70%}
.ff-skel-grid{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}
.ff-skel-pill{width:54px;height:54px;border-radius:14px;background:linear-gradient(90deg, rgba(255,255,255,.04), rgba(255,255,255,.09), rgba(255,255,255,.04));border:1px solid rgba(255,255,255,.08);background-size:200% 100%;animation:ffShimmer 1.2s ease-in-out infinite}
@keyframes ffShimmer{0%{background-position:0% 0}100%{background-position:200% 0}}

.ff-body { max-width: 1200px; margin: 0 auto; padding: 22px 18px 8px; }
.ff-body-grid { display:grid; grid-template-columns: 1fr 360px; gap: 18px; }
@media (max-width: 980px){ .ff-body-grid { grid-template-columns:1fr; } }

.ff-cardbox { background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.08); border-radius: 16px; padding: 16px; }
.ff-cardbox .meta { margin:0 0 10px; }

/* Detalhes v2 (preenche a caixa com pares chave/valor) */
.ff-details-table{ margin-top:12px; display:grid; grid-template-columns: 1fr 1fr; gap:10px 14px; }
.ff-details-item{ display:flex; align-items:baseline; justify-content:space-between; gap:10px; padding:10px 12px; border-radius: 12px; background: rgba(255,255,255,.03); border: 1px solid rgba(255,255,255,.06); }
.ff-details-item.wide{ grid-column: 1 / -1; }
.ff-details-item .k{ color: rgba(255,255,255,.65); font-size: 12px; white-space:nowrap; }
.ff-details-item .v{ color: rgba(255,255,255,.92); font-size: 13px; text-align:right; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ff-details-item.wide .v{ text-align:left; white-space:normal; }
.ff-details-item a{ color: rgba(255,255,255,.95); text-decoration:underline; text-decoration-color: rgba(255,255,255,.25); }
.ff-details-item a:hover{ text-decoration-color: rgba(255,255,255,.6); }
@media (max-width: 900px){
  .ff-details-table{ grid-template-columns: 1fr; }
  .ff-details-item .v{ text-align:left; }
}

footer { padding:30px 18px; border-top:1px solid rgba(255,255,255,.06); color:var(--ff-muted); }
.notice-box { margin:16px 0; padding:14px; border-radius:12px; background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.08); }
.pager { margin-top:18px; display:flex; gap:10px; justify-content:center; flex-wrap:wrap; }
.pager a, .pager span { padding:8px 12px; border-radius:10px; background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.10); color:#fff; }

/* anchor highlight */
.ff-flash { animation: ffFlash 1.3s ease; }
@keyframes ffFlash { 0%{ box-shadow:0 0 0 rgba(229,9,20,0);} 20%{ box-shadow:0 0 0 4px rgba(229,9,20,.25);} 100%{ box-shadow:0 0 0 rgba(229,9,20,0);} }

@media (max-width: 860px){
  .ff-hero { min-height: 520px; }
  .ff-hero .ff-hero-inner { grid-template-columns: 1fr; align-items:start; padding-top: 24px; }
  .ff-hero--portal{ min-height: 420px; }
  .ff-hero--portal .ff-hero-inner{ grid-template-columns: 1fr; }
  .ff-hero-media{ justify-content:flex-start; margin-top: 14px; }
  .ff-hero-poster{ width: 180px; }
  .ff-title { font-size: 34px; }
  .ff-poster { max-width: 320px; }
}

/* ==================== Séries: Temporadas + Episódios ==================== */

.ff-tabs { display:flex; gap:10px; flex-wrap:wrap; margin: 10px 0 14px; }
.ff-tab {
  appearance:none; border:1px solid rgba(255,255,255,.12);
  background: rgba(255,255,255,.06);
  color:#fff; font-weight:800; font-size: 13px;
  padding: 9px 12px; border-radius: 999px; cursor:pointer;
}
.ff-tab.active { background: rgba(229,9,20,.18); border-color: rgba(229,9,20,.40); }
.ff-tab:hover { filter: brightness(1.07); }

.ff-season-head { display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap; margin: 10px 0 12px; }

.ff-ep-list { display:grid; grid-template-columns: 1fr; gap: 12px; }
.ff-ep {
  display:grid;
  grid-template-columns: 160px 1fr;
  gap: 12px;
  padding: 12px;
  border-radius: 14px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
}
.ff-ep-media { width:160px; border-radius: 10px; overflow:hidden; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.10); aspect-ratio: 16 / 9; }
.ff-ep-media img { width:100%; height:100%; display:block; object-fit:cover; }
.ff-ep-ph { width:100%; height: 90px; display:flex; align-items:center; justify-content:center; color: rgba(255,255,255,.55); font-size:12px; }
.ff-ep-title { font-size: 15px; font-weight: 900; }
.ff-ep-meta { margin-top: 6px; color: var(--ff-muted); font-size: 12px; }
.ff-ep-overview { margin-top: 10px; color: rgba(255,255,255,.90); font-size: 14px; line-height: 1.5; }
.ff-ep-overview.muted { color: rgba(255,255,255,.55); }

.ff-trailer { margin: 12px 0 18px; padding: 14px; background: rgba(255,255,255,.04); border: 1px solid rgba(255,255,255,.10); border-radius: 14px; }
.ff-trailer-top { display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; margin-bottom: 10px; }
.ff-trailer h3 { margin:0; font-size: 16px; }
.ff-video { position: relative; padding-top: 56.25%; border-radius: 12px; overflow:hidden; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.10); }
.ff-video iframe { position:absolute; inset:0; width:100%; height:100%; }

/* Comentários (WP nativo) dentro do estilo do tema */
.ff-comments h3 { margin: 0 0 10px; font-size: 16px; }
.ff-comments .comment-respond,
.ff-comments .comment-list,
.ff-comments .comments-title { background: rgba(255,255,255,.02); border: 1px solid rgba(255,255,255,.08); border-radius: 14px; padding: 12px; }
.ff-comments input[type="text"],
.ff-comments input[type="email"],
.ff-comments input[type="url"],
.ff-comments textarea {
  width:100%; max-width:100%;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(0,0,0,.35);
  color:#fff;
  padding: 10px 12px;
}
.ff-comments .submit {
  display:inline-flex; align-items:center; justify-content:center;
  padding: 11px 16px;
  border-radius: 999px;
  border: 1px solid rgba(229,9,20,.92);
  background: rgba(229,9,20,.92);
  color:#fff; font-weight: 900;
  cursor:pointer;
}
.ff-comments .submit:hover { filter: brightness(1.07); }

/* ==============================
   Extras (Elenco / Fotos)
   ============================== */
.ff-extras-skel{opacity:.85;}
.ff-body-grid > .ff-extras-lazy{ grid-column: 1 / -1; }
.ff-cast-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px;}
.ff-cast-card{
  display:flex; flex-direction:column; gap:8px;
  padding: 10px;
  border-radius: 14px;
  background: rgba(255,255,255,.03);
  border: 1px solid rgba(255,255,255,.08);
  min-width:0;
}
.ff-cast-pic{
  width:100%;
  aspect-ratio: 1 / 1;
  border-radius: 12px;
  overflow:hidden;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.10);
  display:flex; align-items:center; justify-content:center;
}
.ff-cast-pic img{width:100%;height:100%;object-fit:cover;display:block;}
.ff-cast-ph{width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-weight:900;color:rgba(255,255,255,.75);}
.ff-cast-name{font-weight:900;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ff-cast-role{font-size:12px;color:rgba(255,255,255,.72);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

.ff-media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.ff-media-grid a{display:block;border-radius:14px;overflow:hidden;border:1px solid rgba(255,255,255,.10);background:rgba(255,255,255,.04);}
.ff-media-grid img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio: 16/9;}

.ff-trailer-embed iframe{width:100%;aspect-ratio:16/9;height:auto;display:block;border-radius:14px;}

@media (max-width: 700px){
  .ff-ep { grid-template-columns: 1fr; }
  .ff-ep-media { width:100%; }
  .ff-cast-grid{grid-template-columns:repeat(2,1fr)}
  .ff-media-grid{grid-template-columns:repeat(2,1fr)}
  .ff-trailer iframe{height:220px}
}

/* Extras tabs (Trailer / Elenco / Fotos) */
.ff-tabpanels .ff-panel{ display:none; }
.ff-tabpanels .ff-panel.is-active{ display:block; }
.ff-tabs .ff-tab{ cursor:pointer; }
.ff-tabs .ff-tab.is-active{ border-color: rgba(255,255,255,.25); background: rgba(255,255,255,.10); }


.ff-ep-actions{ margin-top: 10px; }
.ff-ep-btn{
  display:inline-flex; align-items:center; justify-content:center;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.14);
  background: rgba(255,255,255,.06);
  color:#fff; font-weight:900; font-size: 12px;
  text-decoration:none;
}
.ff-ep-btn:hover{ filter: brightness(1.08); }

.ff-ep.is-current{
  border-color: rgba(229,9,20,.55);
  box-shadow: 0 0 0 1px rgba(229,9,20,.25) inset;
}

.ff-breadcrumb{
  color: rgba(255,255,255,.88);
  text-decoration: none;
  font-weight: 800;
}
.ff-breadcrumb:hover{ text-decoration: underline; }


/* Episódio: card clicável */
.ff-ep-link{ text-decoration:none; color:inherit; cursor:pointer; }
.ff-ep-link:hover{ border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.045); }


/* Onde assistir (providers) */
.ff-providers-grid{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px}
.ff-provider{width:54px;height:54px;border-radius:14px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.10);display:flex;align-items:center;justify-content:center;overflow:hidden;transition:transform .12s ease,border-color .12s ease}
.ff-provider:hover{transform:translateY(-1px);border-color:rgba(229,9,20,.55)}
.ff-provider img{width:36px;height:36px;object-fit:contain;filter:drop-shadow(0 2px 10px rgba(0,0,0,.35))}
.ff-provider-fallback{font-size:10px;line-height:1.1;text-align:center;padding:6px;color:rgba(255,255,255,.85)}


/* Relacionados (refinado) */


/* Premium relacionados (v2) */
.ff-related-scroll,
.ff-scroll-related{
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  padding-bottom:6px;
  cursor: grab;
}

.ff-related-scroll:active,
.ff-scroll-related:active{ cursor: grabbing; }

.ff-related-scroll,
.ff-scroll-related{ scrollbar-width:none; -ms-overflow-style:none; }

/* container de múltiplos trilhos */
.ff-related-rails{ margin-top: 16px; }
.ff-related-rails .ff-rail-wrap{ margin-top: 22px; }
.ff-related-rails .ff-rail-wrap:first-child{ margin-top: 0; }
.ff-related-scroll::-webkit-scrollbar,
.ff-scroll-related::-webkit-scrollbar{display:none}
.ff-related-scroll::-webkit-scrollbar-thumb,
.ff-scroll-related::-webkit-scrollbar-thumb{background:rgba(255,255,255,.10);border-radius:999px}
.ff-related-scroll::-webkit-scrollbar-track,
.ff-scroll-related::-webkit-scrollbar-track{background:transparent}

/* v1.7.4 — Relacionados sem rolagem (grid, sem cortar à direita)
   Quando removemos setas/scroll, o layout deve quebrar em grade e mostrar
   o último card inteiro também. */
.ff-related-rails .ff-scrollwrap{ overflow: visible; }
.ff-related-rails .ff-scroll.ff-related-scroll.ff-scroll-related{
  display:grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 16px;
  overflow: visible;
  padding: 12px 4px 6px;
  scroll-snap-type: none;
  cursor: default;
}
.ff-related-rails .ff-rcard{
  width: auto;
  flex: initial;
}

@media (max-width: 520px){
  .ff-related-rails .ff-scroll.ff-related-scroll.ff-scroll-related{
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
  }
}

.ff-tile{
  width:190px;
  scroll-snap-align:start;
  transform:translateZ(0);
}
@media (max-width:980px){ .ff-tile{ width:160px; } }

.ff-tile-media{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 14px 34px rgba(0,0,0,.35);
  background:#151515;
  aspect-ratio: 2 / 3;
}
.ff-tile-media:before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(to top, rgba(0,0,0,.75) 0%, rgba(0,0,0,.25) 42%, rgba(0,0,0,0) 70%);
  opacity:.85;
  pointer-events:none;
}
.ff-tile-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.02);
  transition:transform .18s ease, filter .18s ease;
}
@media (max-width:980px){ .ff-tile{ width: 160px; } }

.ff-tile:hover .ff-tile-media img{
  transform:scale(1.06);
  filter:saturate(1.05) contrast(1.02);
}

.ff-tile-overlay{
  position:absolute;
  left:12px; right:12px; bottom:10px;
  z-index:2;
}
.ff-tile-title{
  font-weight:800;
  font-size:14px;
  line-height:1.15;
  margin:0 0 4px 0;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.ff-tile-sub{
  font-size:12px;
  color:rgba(255,255,255,.72);
}
.ff-tile .ff-badge{
  position:absolute;
  top:10px; left:10px;
  z-index:3;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.18);
  backdrop-filter:blur(10px);
  font-size:12px;
}

/* Related title below cover (home style) */
.ff-tile-media:before{ display:none; }
.ff-tile-overlay{ position:static; left:auto; right:auto; bottom:auto; padding:10px 6px 0 6px; }
.ff-tile-title{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:rgba(255,255,255,.92); }
.ff-tile-sub{ display:none; }
.ff-tile-meta{ display:block !important; }
/* Lightbox (fotos) */
.ff-lightbox{
  position:fixed;
  inset:0;
  background:rgba(0,0,0,.86);
  z-index:999999;
  display:none;
  align-items:center;
  justify-content:center;
  padding:22px;
}
.ff-lightbox.is-open{ display:flex; }
.ff-lightbox-inner{
  position:relative;
  max-width:min(1100px, 96vw);
  max-height:86vh;
  width:100%;
}
.ff-lightbox-img{
  width:100%;
  height:86vh;
  object-fit:contain;
  border-radius:18px;
  background:#0d0d0d;
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 18px 50px rgba(0,0,0,.55);
}
.ff-lightbox-close{
  position:absolute;
  top:-14px; right:-14px;
  width:44px; height:44px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.18);
  background:rgba(0,0,0,.55);
  color:#fff;
  font-size:22px;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  backdrop-filter:blur(10px);
}
.ff-lightbox-close:hover{ background:rgba(0,0,0,.72); }

/* Related cards: título abaixo da capa (estilo Home) */
.ff-related-scroll .ff-tile-media:before,
.ff-scroll-related .ff-tile-media:before{ display:none !important; }
.ff-related-scroll .ff-tile-overlay,
.ff-scroll-related .ff-tile-overlay{ position:static !important; inset:auto !important; padding:10px 6px 0 6px !important; background:transparent !important; }
.ff-related-scroll .ff-tile-title,
.ff-scroll-related .ff-tile-title{ white-space:nowrap !important; overflow:hidden !important; text-overflow:ellipsis !important; color:rgba(255,255,255,.92) !important; }
.ff-related-scroll .ff-tile-sub,
.ff-scroll-related .ff-tile-sub{ display:none !important; }
.ff-related-scroll .ff-tile-meta,
.ff-scroll-related .ff-tile-meta{ display:block !important; }

/* v1.7.1 — Força Playfair em headings (corrige casos remanescentes/caches) */
.ff-title, .ff-row h2, .ff-episode-title, h1, h2, h3{ font-family:var(--ff-serif) !important; }


/* Relacionados (premium): título abaixo da capa (v1.7.2) */
.ff-rcard{
  flex:0 0 190px;
  width:190px;
  scroll-snap-align:start;
  transform:translateZ(0);
  text-decoration:none;
  color:inherit;
  display:block;
}
@media (max-width:980px){ .ff-rcard{ width:160px; flex-basis:160px; } }

.ff-rcard-media{
  position:relative;
  border-radius:18px;
  overflow:hidden;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:0 14px 34px rgba(0,0,0,.35);
  background:#151515;
  aspect-ratio: 2 / 3;
  display:block;
}
.ff-rcard-media img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transform:scale(1.02);
  transition:transform .18s ease, filter .18s ease;
}
.ff-rcard:hover .ff-rcard-media img{
  transform:scale(1.06);
  filter:saturate(1.05) contrast(1.02);
}

.ff-rcard-badge{
  position:absolute;
  top:10px; left:10px;
  z-index:3;
  padding:5px 10px;
  border-radius:999px;
  background:rgba(0,0,0,.55);
  border:1px solid rgba(255,255,255,.16);
  font-size:12px;
  font-weight:800;
  letter-spacing:.2px;
}

.ff-rcard-ph{
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:rgba(255,255,255,.72);
  font-size:12px;
  padding:12px;
  text-align:center;
}

.ff-rcard-meta{
  display:block;
  padding:8px 2px 0;
}
.ff-rcard-title{
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  font-weight:800;
  font-size:14px;
  line-height:1.15;
}
.ff-rcard-sub{
  display:block;
  margin-top:4px;
  font-size:12px;
  color:rgba(255,255,255,.72);
}



/* ==================== Footer ==================== */
.ff-footer{
  border-top:1px solid var(--ff-line);
  background:linear-gradient(180deg, rgba(255,255,255,.02), rgba(0,0,0,0));
}
.ff-footer .container{ padding:20px 0; }
.ff-footer-inner{ display:flex; align-items:center; justify-content:space-between; gap:14px; flex-wrap:wrap; }
.ff-footer-left{ color:rgba(255,255,255,.80); font-weight:700; font-size:13px; }
.ff-footer-nav{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.ff-footer-nav a{ color:rgba(255,255,255,.82); font-weight:800; font-size:13px; text-decoration:none; }
.ff-footer-nav a:hover{ color:#fff; text-decoration:underline; }
.ff-footer-nav .dot{ color:rgba(255,255,255,.28); }

@media (max-width: 720px){
  .ff-footer .container{ padding:18px 0; }
}
