/* ==========================================================================
   CineVault - Design tokens
   Paleta: fundo quase-preto de sala de projecao, dourado marquise para Filmes,
   ciano-petroleo para Series (o "tubo de TV"). Tipografia: Bebas Neue (marquise
   de cinema, condensada) para titulos + Inter para leitura + JetBrains Mono
   para metadados tecnicos (ano, duracao, nota).
   Assinatura visual: barra de "pelicula" com furos de sprocket no topo/rodape
   e nos cards, remetendo ao rolo de filme fisico.
   ========================================================================== */

:root {
	--cv-bg:        #0b0b0f;
	--cv-bg-alt:    #14141a;
	--cv-linha:     #24242e;
	--cv-texto:     #eceef1;
	--cv-texto-sec: #9294a1;
	--cv-ouro:      #d8a94a;
	--cv-ouro-forte:#f0c674;
	--cv-teal:      #3ea6a0;
	--cv-teal-forte:#5fc9c3;

	--cv-fonte-display: 'Bebas Neue', 'Arial Narrow', sans-serif;
	--cv-fonte-corpo:    'Inter', -apple-system, sans-serif;
	--cv-fonte-mono:     'JetBrains Mono', monospace;

	--cv-raio: 6px;
	--cv-sombra: 0 12px 30px rgba(0,0,0,.45);
}

* { box-sizing: border-box; }

body {
	margin: 0;
	background: var(--cv-bg);
	color: var(--cv-texto);
	font-family: var(--cv-fonte-corpo);
	line-height: 1.6;
}

a { color: inherit; text-decoration: none; }
img { max-width: 100%; display: block; }

.cv-container {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 24px;
}

/* -------------------- Assinatura: barra de pelicula -------------------- */
.cv-sprocket-bar {
	height: 14px;
	background-image:
		linear-gradient(90deg, var(--cv-bg-alt) 60%, transparent 0),
		repeating-linear-gradient(90deg, transparent 0 14px, var(--cv-bg) 14px 20px);
	background-color: #000;
	position: relative;
	overflow: hidden;
}
.cv-sprocket-bar::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: repeating-linear-gradient(90deg, var(--cv-bg) 0 8px, transparent 8px 22px);
	background-position: center;
	opacity: .9;
}

/* -------------------------------- Header -------------------------------- */
.cv-header {
	background: #000;
	border-bottom: 1px solid var(--cv-linha);
}
.cv-header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 24px;
	padding: 16px 24px;
	flex-wrap: wrap;
}
.cv-logo-text {
	font-family: var(--cv-fonte-display);
	font-size: 30px;
	letter-spacing: 2px;
	color: var(--cv-ouro-forte);
	text-transform: uppercase;
}
.cv-nav {
	display: flex;
	align-items: center;
	gap: 28px;
	flex-wrap: wrap;
}
.cv-nav ul, .cv-menu-fallback {
	list-style: none;
	display: flex;
	gap: 28px;
	margin: 0;
	padding: 0;
}
.cv-nav a, .cv-menu-fallback a {
	font-family: var(--cv-fonte-display);
	letter-spacing: 1px;
	font-size: 18px;
	color: var(--cv-texto-sec);
	transition: color .2s;
}
.cv-nav a:hover, .cv-menu-fallback a:hover { color: var(--cv-ouro-forte); }

/* Dropdown "Genero": lista todas as categorias da taxonomia genero e
   se atualiza sozinho quando novas categorias sao cadastradas. */
.cv-nav-genero {
	position: relative;
}
.cv-nav-genero-botao {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: 0;
	padding: 0;
	cursor: pointer;
	font-family: var(--cv-fonte-display);
	letter-spacing: 1px;
	font-size: 18px;
	color: var(--cv-texto-sec);
	transition: color .2s;
}
.cv-nav-genero-botao:hover,
.cv-nav-genero-botao:focus-visible,
.cv-nav-genero.is-aberto .cv-nav-genero-botao {
	color: var(--cv-ouro-forte);
}
.cv-nav-genero-seta {
	font-size: 12px;
	transition: transform .2s;
}
.cv-nav-genero.is-aberto .cv-nav-genero-seta {
	transform: rotate(180deg);
}
.cv-nav-genero-lista {
	list-style: none;
	margin: 0;
	padding: 10px 0;
	position: absolute;
	top: calc(100% + 14px);
	left: 0;
	z-index: 40;
	min-width: 200px;
	max-height: 340px;
	overflow-y: auto;
	background: var(--cv-bg-alt);
	border: 1px solid var(--cv-linha);
	border-radius: var(--cv-raio);
	box-shadow: var(--cv-sombra);
	display: flex;
	flex-direction: column;
	gap: 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(-6px);
	transition: opacity .18s, transform .18s, visibility .18s;
}
.cv-nav-genero.is-aberto .cv-nav-genero-lista,
.cv-nav-genero-botao:focus-visible + .cv-nav-genero-lista {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}
/* Abrir ao passar o mouse so em telas com mouse de verdade; em toque
   (Android/iOS) o :hover pode "grudar" depois de tocar e abrir o menu
   sozinho, entao ali o controle fica 100% pelo clique via JS. */
@media (hover: hover) and (pointer: fine) {
	.cv-nav-genero:hover .cv-nav-genero-lista {
		opacity: 1;
		visibility: visible;
		transform: translateY(0);
	}
}
.cv-nav-genero-lista a {
	display: block;
	padding: 8px 18px;
	font-family: var(--cv-fonte-corpo);
	letter-spacing: 0;
	font-size: 15px;
	color: var(--cv-texto-sec);
	white-space: nowrap;
}
.cv-nav-genero-lista a:hover {
	color: var(--cv-ouro-forte);
	background: var(--cv-bg);
}
@media (max-width: 860px) {
	.cv-nav {
		justify-content: center;
	}
}
/* No mobile o dropdown de "Genero" fica oculto no menu inicial (some com
   ele; os generos continuam acessiveis pelas paginas de filmes/series).
   Some abaixo de 860px, que cobre tablets em pe e celulares. */
@media (max-width: 860px) {
	.cv-nav-genero {
		display: none;
	}
}

.cv-busca input {
	background: var(--cv-bg-alt);
	border: 1px solid var(--cv-linha);
	color: var(--cv-texto);
	padding: 8px 14px;
	border-radius: var(--cv-raio);
	font-family: var(--cv-fonte-corpo);
	min-width: 220px;
}
.cv-busca input:focus {
	outline: 2px solid var(--cv-ouro);
	outline-offset: 1px;
}

/* --------------------------------- Hero ---------------------------------- */
.cv-hero {
	padding: 64px 24px 40px;
	text-align: center;
}
.cv-eyebrow {
	font-family: var(--cv-fonte-mono);
	font-size: 12px;
	letter-spacing: 3px;
	text-transform: uppercase;
	color: var(--cv-ouro);
}
.cv-hero h1 {
	font-family: var(--cv-fonte-display);
	font-weight: 400;
	font-size: 64px;
	letter-spacing: 1px;
	margin: 6px 0 12px;
	text-transform: uppercase;
}
.cv-hero--serie .cv-eyebrow { color: var(--cv-teal); }
.cv-hero p { color: var(--cv-texto-sec); max-width: 560px; margin: 0 auto; }

/* ------------------------------ Filtro generos ---------------------------- */
.cv-filtro-generos {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin: 24px 0 32px;
}
.cv-filtro-item {
	font-family: var(--cv-fonte-mono);
	font-size: 13px;
	padding: 6px 14px;
	border: 1px solid var(--cv-linha);
	border-radius: 999px;
	color: var(--cv-texto-sec);
}
.cv-filtro-item:hover, .cv-filtro-item--ativo {
	border-color: var(--cv-ouro);
	color: var(--cv-ouro-forte);
}

/* --------------------------------- Grid ---------------------------------- */
.cv-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 28px;
	padding: 20px 0 40px;
}

.cv-card {
	background: var(--cv-bg-alt);
	border-radius: var(--cv-raio);
	overflow: hidden;
	box-shadow: var(--cv-sombra);
	transition: transform .2s ease;
}
.cv-card:hover { transform: translateY(-4px); }

.cv-card-capa { position: relative; aspect-ratio: 2/3; overflow: hidden; }
.cv-card-capa img { width: 100%; object-fit: cover; }

.cv-badge {
	position: absolute;
	top: 10px;
	left: 10px;
	font-family: var(--cv-fonte-mono);
	font-size: 11px;
	letter-spacing: 1px;
	text-transform: uppercase;
	padding: 4px 8px;
	border-radius: 4px;
	background: rgba(0,0,0,.7);
}
.cv-badge--filme { color: var(--cv-ouro-forte); border: 1px solid var(--cv-ouro); }
.cv-badge--serie { color: var(--cv-teal-forte); border: 1px solid var(--cv-teal); }
.cv-badge--lancamento {
	left: auto;
	right: 10px;
	color: #ff8a8a;
	border: 1px solid #e14e4e;
}

.cv-card-corpo { padding: 14px 16px 18px; }
.cv-card-corpo h3 {
	font-family: var(--cv-fonte-display);
	font-weight: 400;
	font-size: 22px;
	letter-spacing: .5px;
	margin: 0 0 8px;
	text-transform: uppercase;
	line-height: 1.15;
}

.cv-meta-rapida {
	list-style: none;
	display: flex;
	gap: 12px;
	margin: 0;
	padding: 0;
	font-family: var(--cv-fonte-mono);
	font-size: 12.5px;
	color: var(--cv-texto-sec);
	flex-wrap: wrap;
}
.cv-meta-rapida .cv-nota { color: var(--cv-ouro-forte); }

/* ------------------------------ Pagina single ----------------------------- */
.cv-single-hero {
	position: relative;
	padding: 60px 0;
	background-color: var(--cv-bg-alt);
	background-image:
		linear-gradient(180deg, rgba(11,11,15,.55), rgba(11,11,15,.95)),
		var(--cv-backdrop);
	background-size: cover;
	background-position: center 20%;
}
.cv-single-hero-inner {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 40px;
	align-items: end;
}
.cv-single-capa img {
	width: 100%;
	height: auto;
	aspect-ratio: 2/3;
	object-fit: cover;
	border-radius: var(--cv-raio);
	box-shadow: var(--cv-sombra);
	border: 1px solid var(--cv-linha);
}
.cv-single-info h1 {
	font-family: var(--cv-fonte-display);
	font-weight: 400;
	font-size: 52px;
	text-transform: uppercase;
	letter-spacing: 1px;
	margin: 10px 0;
}
.cv-generos-lista { display: flex; gap: 8px; flex-wrap: wrap; margin: 14px 0; }
.cv-genero-tag {
	font-family: var(--cv-fonte-mono);
	font-size: 12px;
	padding: 5px 12px;
	border-radius: 999px;
	background: rgba(216,169,74,.12);
	color: var(--cv-ouro-forte);
	border: 1px solid rgba(216,169,74,.4);
}
.cv-single--serie .cv-genero-tag {
	background: rgba(62,166,160,.12);
	color: var(--cv-teal-forte);
	border-color: rgba(62,166,160,.4);
}
.cv-elenco { color: var(--cv-texto-sec); font-size: 14px; }

.cv-single-corpo { padding: 48px 24px; max-width: 900px; margin: 0 auto; }
.cv-single-corpo section { margin-bottom: 40px; }
.cv-single-corpo h2 {
	font-family: var(--cv-fonte-display);
	font-weight: 400;
	font-size: 28px;
	text-transform: uppercase;
	letter-spacing: .5px;
	border-left: 4px solid var(--cv-ouro);
	padding-left: 12px;
	margin-bottom: 16px;
}
.cv-single--serie h2 { border-color: var(--cv-teal); }

.cv-trailer-wrap { position: relative; padding-top: 56.25%; border-radius: var(--cv-raio); overflow: hidden; }
.cv-trailer-wrap iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }

.cv-links-assistir { display: flex; gap: 12px; flex-wrap: wrap; }
.cv-link-assistir, .cv-torrent-btn {
    font-family: var(--cv-fonte-mono);
    font-size: 13px;
    padding: 10px 18px;
    border-radius: var(--cv-raio);
    background: var(--cv-ouro);
    color: #1a1204;
    font-weight: 600;
    transition: background .2s;
}
.cv-link-assistir:hover { background: var(--cv-ouro-forte); }
.cv-single--serie .cv-link-assistir { background: var(--cv-teal); color: #04201e; }
.cv-single--serie .cv-link-assistir:hover { background: var(--cv-teal-forte); }

.cv-relacionados-titulo {
	font-family: var(--cv-fonte-display);
	font-weight: 400;
	font-size: 26px;
	text-transform: uppercase;
	letter-spacing: .5px;
	margin-top: 20px;
}

/* -------------------------------- Home (pagina inicial) -------------------------------- */
.cv-home-hero-carrossel {
	position: relative;
	display: grid;
	border-bottom: 1px solid var(--cv-linha);
}
.cv-home-hero-slide {
	grid-area: 1 / 1;
	padding: 110px 0 70px;
	background-color: var(--cv-bg-alt);
	background-image:
		linear-gradient(180deg, rgba(11,11,15,.35), rgba(11,11,15,.75) 55%, var(--cv-bg) 100%),
		var(--cv-backdrop);
	background-size: cover;
	background-position: center 20%;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .9s ease;
}
.cv-home-hero-slide.is-ativo {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.cv-home-hero-inner { max-width: 720px; padding: 0 24px; }
.cv-home-hero-slide .cv-badge {
	position: static;
	display: inline-block;
	margin: 10px 0 4px;
}
.cv-home-hero-slide h1 {
	font-family: var(--cv-fonte-display);
	font-weight: 400;
	font-size: 58px;
	line-height: 1.05;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin: 6px 0 12px;
}
.cv-home-hero-sinopse {
	color: var(--cv-texto-sec);
	max-width: 560px;
	margin: 16px 0 24px;
}
.cv-home-hero-cta { display: inline-block; }
.cv-home-hero-slide--serie .cv-eyebrow { color: var(--cv-teal); }
.cv-home-hero-slide--serie .cv-home-hero-cta { background: var(--cv-teal); color: #04201e; }
.cv-home-hero-slide--serie .cv-home-hero-cta:hover { background: var(--cv-teal-forte); }

.cv-home-hero-seta {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,.25);
	background: rgba(11,11,15,.45);
	color: #fff;
	font-size: 24px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.cv-home-hero-seta:hover { background: var(--cv-ouro); border-color: var(--cv-ouro); color: #1a1204; }
.cv-home-hero-seta--prev { left: 20px; }
.cv-home-hero-seta--next { right: 20px; }

.cv-home-hero-dots {
	position: absolute;
	left: 50%;
	bottom: 22px;
	transform: translateX(-50%);
	z-index: 2;
	display: flex;
	gap: 8px;
}
.cv-home-hero-dot {
	width: 9px;
	height: 9px;
	border-radius: 50%;
	border: 1px solid rgba(255,255,255,.5);
	background: rgba(255,255,255,.2);
	cursor: pointer;
	padding: 0;
	transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.cv-home-hero-dot:hover { border-color: var(--cv-ouro); }
.cv-home-hero-dot.is-ativo { background: var(--cv-ouro); border-color: var(--cv-ouro); transform: scale(1.15); }

.cv-home-section { padding: 44px 0 4px; border-top: 1px solid var(--cv-linha); }
.cv-home-section:first-of-type { border-top: 0; }
.cv-home-section-topo {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.cv-home-section-topo h2 {
	font-family: var(--cv-fonte-display);
	font-weight: 400;
	font-size: 30px;
	letter-spacing: .5px;
	text-transform: uppercase;
	margin: 0;
	border-left: 4px solid var(--cv-ouro);
	padding-left: 12px;
}
.cv-ver-todos {
	font-family: var(--cv-fonte-mono);
	font-size: 13px;
	color: var(--cv-ouro-forte);
	white-space: nowrap;
}
.cv-ver-todos:hover { color: var(--cv-ouro); }

.cv-genero-grid {
	display: flex;
	flex-wrap: wrap;
	gap: 12px;
	padding: 22px 0 40px;
}
.cv-genero-pill {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	border: 1px solid var(--cv-linha);
	border-radius: 999px;
	background: var(--cv-bg-alt);
	font-family: var(--cv-fonte-mono);
	font-size: 13px;
	color: var(--cv-texto);
	transition: border-color .2s, color .2s;
}
.cv-genero-pill:hover { border-color: var(--cv-ouro); color: var(--cv-ouro-forte); }
.cv-genero-pill-contagem {
	font-size: 11px;
	color: var(--cv-texto-sec);
	background: rgba(255,255,255,.06);
	border-radius: 999px;
	padding: 1px 8px;
}

.cv-home-cta {
	margin: 40px 0 60px;
	padding: 48px 32px;
	text-align: center;
	background: var(--cv-bg-alt);
	border: 1px solid var(--cv-linha);
	border-radius: var(--cv-raio);
}
.cv-home-cta h2 {
	font-family: var(--cv-fonte-display);
	font-weight: 400;
	font-size: 32px;
	text-transform: uppercase;
	letter-spacing: .5px;
	margin: 8px 0 24px;
}
.cv-home-cta-busca {
	display: flex;
	max-width: 480px;
	margin: 0 auto;
	gap: 10px;
}
.cv-home-cta-busca input { flex: 1; min-width: 0; }
.cv-home-cta-busca button {
	font-family: var(--cv-fonte-mono);
	font-size: 13px;
	font-weight: 600;
	padding: 10px 20px;
	border: 0;
	border-radius: var(--cv-raio);
	background: var(--cv-ouro);
	color: #1a1204;
	cursor: pointer;
	transition: background .2s;
}
.cv-home-cta-busca button:hover { background: var(--cv-ouro-forte); }

/* -------------------------------- Footer --------------------------------- */
.cv-footer { background: #000; margin-top: 60px; }
.cv-footer-inner { padding: 0 24px 32px; text-align: center; color: var(--cv-texto-sec); font-size: 13px; }
.cv-footer-tmdb { font-family: var(--cv-fonte-mono); font-size: 11px; opacity: .7; }

/* -------------------------------- Paginacao -------------------------------- */
.cv-paginacao { text-align: center; padding: 20px 0 60px; font-family: var(--cv-fonte-mono); }
.cv-paginacao .page-numbers {
	display: inline-block;
	margin: 0 4px;
	padding: 6px 12px;
	border: 1px solid var(--cv-linha);
	border-radius: var(--cv-raio);
}
.cv-paginacao .page-numbers.current { border-color: var(--cv-ouro); color: var(--cv-ouro-forte); }

/* -------------------------------- Slide de destaques -------------------------------- */
.cv-slider-wrap {
	position: relative;
	margin: 4px -4px 0;
	padding: 0 4px;
}
.cv-slider-track {
	display: flex;
	gap: 20px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding: 4px 4px 20px;
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.cv-slider-track::-webkit-scrollbar { display: none; }
.cv-slider-item {
	flex: 0 0 auto;
	width: 200px;
	scroll-snap-align: start;
}
.cv-slider-item .cv-card { height: 100%; }

.cv-slider-seta {
	position: absolute;
	top: 42%;
	transform: translateY(-50%);
	z-index: 2;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	border: 1px solid var(--cv-linha);
	background: rgba(11,11,15,.85);
	color: var(--cv-texto);
	font-size: 22px;
	line-height: 1;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .2s ease, border-color .2s ease, opacity .2s ease;
}
.cv-slider-seta:hover { background: var(--cv-ouro); border-color: var(--cv-ouro); color: #1a1204; }
.cv-slider-seta--prev { left: -8px; }
.cv-slider-seta--next { right: -8px; }
.cv-slider-seta[disabled] { opacity: 0; pointer-events: none; }

/* -------------------------------- Responsivo -------------------------------- */

/* Desktops grandes (acima de 1400px): respiro extra sem esticar demais o conteudo */
@media (min-width: 1400px) {
	.cv-container { max-width: 1280px; }
	.cv-grid { grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); }
}

/* Notebooks e desktops menores (ate 1024px) */
@media (max-width: 1024px) {
	.cv-container { padding: 0 20px; }
	.cv-grid { grid-template-columns: repeat(auto-fill, minmax(175px, 1fr)); gap: 20px; }
	.cv-hero h1 { font-size: 52px; }
	.cv-home-hero-slide h1 { font-size: 46px; }
	.cv-single-hero-inner { grid-template-columns: 220px 1fr; gap: 28px; }
	.cv-single-info h1 { font-size: 42px; }
	.cv-slider-item { width: 172px; }
}

/* Tablets (ate 860px) */
@media (max-width: 860px) {
	.cv-header-inner { justify-content: center; }
	.cv-nav ul, .cv-menu-fallback { gap: 18px; justify-content: center; }
	.cv-nav { gap: 12px; }
	.cv-busca { width: 100%; }
	.cv-busca input { width: 100%; min-width: 0; }
	.cv-single-corpo { padding: 36px 20px; max-width: 100%; }
	.cv-home-hero-inner { padding: 0 20px; }
}

/* Celulares grandes e tablets em pe (ate 720px) */
@media (max-width: 720px) {
	.cv-single-hero-inner { grid-template-columns: 1fr; text-align: center; }
	.cv-single-capa { max-width: 200px; margin: 0 auto; }
	.cv-generos-lista { justify-content: center; }
	.cv-hero h1 { font-size: 42px; }
	.cv-header-inner { justify-content: center; text-align: center; }
	.cv-home-hero-slide { padding: 80px 0 50px; text-align: center; }
	.cv-home-hero-inner { margin: 0 auto; }
	.cv-home-hero-slide h1 { font-size: 38px; }
	.cv-home-hero-slide .cv-generos-lista, .cv-home-hero-slide .cv-meta-rapida { justify-content: center; }
	.cv-home-hero-seta { display: none; }
	.cv-home-section-topo { justify-content: center; text-align: center; }
	.cv-home-cta-busca { flex-direction: column; }
	.cv-slider-seta { display: none; }
	.cv-slider-item { width: 144px; }

	.cv-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 16px; }
	.cv-card-corpo h3 { font-size: 18px; }
	.cv-single-corpo { padding: 32px 16px; }
	.cv-single-info h1 { font-size: 32px; }
	.cv-links-assistir, .cv-filtro-generos, .cv-genero-grid { justify-content: center; }
	.cv-relacionados-titulo { text-align: center; }
	.cv-home-cta { padding: 36px 20px; }
	.cv-home-cta h2 { font-size: 26px; }

	/* Botoes de download empilhados e ocupando a largura toda, mais faceis de tocar */
	.cv-torrent-qualidades { flex-direction: column; align-items: stretch; }
	.cv-torrent-qualidades .cv-torrent-btn--qualidade { justify-content: center; }
	.cv-single--serie .cv-torrent-lista { width: 100%; }
	.cv-single--serie .cv-torrent-btn--ep { justify-content: center; }
}

/* Celulares (ate 480px) */
@media (max-width: 480px) {
	.cv-container { padding: 0 16px; }
	.cv-logo-text { font-size: 22px; }
	.cv-header-inner { padding: 14px 16px; gap: 14px; }
	.cv-nav ul, .cv-menu-fallback { gap: 14px; }
	.cv-nav a, .cv-menu-fallback a { font-size: 15px; }
	.cv-nav { gap: 8px; }
	.cv-nav-genero-botao { font-size: 15px; }
	.cv-hero { padding: 48px 16px 32px; }
	.cv-hero h1 { font-size: 30px; }
	.cv-home-hero-slide { padding: 56px 0 36px; }
	.cv-home-hero-slide h1 { font-size: 28px; }
	.cv-home-hero-sinopse { font-size: 14px; }

	.cv-grid { grid-template-columns: repeat(auto-fill, minmax(128px, 1fr)); gap: 12px; }
	.cv-card-corpo { padding: 10px 12px 14px; }
	.cv-card-corpo h3 { font-size: 16px; }
	.cv-meta-rapida { font-size: 11px; gap: 8px; }

	.cv-single-info h1 { font-size: 26px; }
	.cv-single-corpo { padding: 28px 14px; }
	.cv-single-corpo h2 { font-size: 22px; }
	.cv-elenco { font-size: 13px; }

	.cv-torrent-btn { width: 100%; justify-content: center; }
	.cv-torrent-btn--qualidade,
	.cv-single--serie .cv-torrent-btn--ep {
		width: 100%;
		font-size: 15px;
		padding: 13px 16px 13px 38px;
	}
	.cv-single--serie .cv-torrent-lista { align-items: stretch; }

	.cv-slider-item { width: 126px; }
	.cv-home-cta { padding: 30px 16px; }
	.cv-home-cta h2 { font-size: 22px; }
}

/* -------------------------------- Acessibilidade -------------------------------- */
a:focus-visible, input:focus-visible, button:focus-visible {
	outline: 2px solid var(--cv-ouro-forte);
	outline-offset: 2px;
}
@media (prefers-reduced-motion: reduce) {
	.cv-card { transition: none; }
	.cv-slider-track { scroll-behavior: auto; }
}

/* -------------------------------- Baixar Torrent -------------------------------- */
.cv-torrent { margin: 40px 0; text-align: center; }
.cv-torrent h2 { margin-bottom: 16px; }
.cv-torrent-qualidades { justify-content: center; }
.cv-torrent-lista { justify-content: center; align-items: center; }
.cv-torrent > p { display: flex; justify-content: center; }

/* -------------------------------- Onde Assistir -------------------------------- */
.cv-onde-assistir { margin: 40px 0; }
.cv-onde-assistir h2 { margin-bottom: 16px; }
.cv-torrent-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
	background: var(--cv-ouro-forte, #c8a34a);
	color: #1a1204;
	transition: filter .2s ease, transform .2s ease;
}
.cv-torrent-btn:hover { filter: brightness(1.08); transform: translateY(-1px); }
.cv-single--serie .cv-torrent-btn { background: var(--cv-teal, #35c9bd); color: #04201e; }
.cv-torrent-lista { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 14px; }
.cv-torrent-btn--ep { padding: 9px 16px; font-size: 14px; }

/* Botoes de qualidade (720p / 1080p / 4K) nos filmes - visual chamativo */
.cv-torrent-qualidades {
	margin-bottom: 14px;
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

.cv-torrent-btn--qualidade {
	position: relative;
	overflow: hidden;
	padding: 16px 30px 16px 46px;
	font-family: var(--cv-fonte-display, inherit);
	font-weight: 400;
	font-size: 19px;
	letter-spacing: 1px;
	text-transform: uppercase;
	border-radius: 10px;
	border: 2px solid transparent;
	box-shadow: 0 6px 18px rgba(0,0,0,.35);
	transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
}

.cv-torrent-btn--qualidade::before {
	content: "\2b07";
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 16px;
	line-height: 1;
}

.cv-torrent-btn--qualidade::after {
	content: "";
	position: absolute;
	top: 0;
	left: -60%;
	width: 40%;
	height: 100%;
	background: linear-gradient(120deg, transparent, rgba(255,255,255,.55), transparent);
	transform: skewX(-20deg);
	animation: cv-brilho 2.6s ease-in-out infinite;
}

.cv-torrent-btn--qualidade:hover {
	transform: translateY(-3px) scale(1.04);
	filter: brightness(1.1);
}

/* 720p - verde vivo, indicando qualidade padrao */
.cv-torrent-btn--720p {
	background: linear-gradient(135deg, #1f9d55, #34d372);
	color: #05210f;
	box-shadow: 0 6px 18px rgba(31,157,85,.45);
}
.cv-torrent-btn--720p:hover { box-shadow: 0 8px 26px rgba(52,211,114,.6); }

/* 1080p - azul/roxo, indicando Full HD */
.cv-torrent-btn--1080p {
	background: linear-gradient(135deg, #2f6fed, #7a5cff);
	color: #fff;
	box-shadow: 0 6px 18px rgba(58,102,237,.45);
}
.cv-torrent-btn--1080p:hover { box-shadow: 0 8px 26px rgba(122,92,255,.6); }

/* 4K - dourado premium com brilho pulsante */
.cv-torrent-btn--4k {
	background: linear-gradient(135deg, #b8860b, #ffd75e 45%, #ff8a3d);
	color: #1a1204;
	border-color: #ffe9a8;
	box-shadow: 0 0 0 1px rgba(255,215,94,.5), 0 6px 22px rgba(255,138,61,.5);
	animation: cv-pulso-4k 1.8s ease-in-out infinite;
}
.cv-torrent-btn--4k:hover {
	box-shadow: 0 0 0 1px rgba(255,215,94,.8), 0 10px 30px rgba(255,138,61,.75);
}

@keyframes cv-brilho {
	0%   { left: -60%; }
	50%  { left: 120%; }
	100% { left: 120%; }
}

@keyframes cv-pulso-4k {
	0%, 100% { box-shadow: 0 0 0 1px rgba(255,215,94,.5), 0 6px 22px rgba(255,138,61,.5); }
	50%      { box-shadow: 0 0 0 3px rgba(255,215,94,.75), 0 8px 30px rgba(255,138,61,.85); }
}

@media (prefers-reduced-motion: reduce) {
	.cv-torrent-btn--qualidade::after,
	.cv-torrent-btn--4k { animation: none; }
}

/* Botoes de magnet (episodios) nas series - mesmo visual chamativo dos filmes, empilhados um embaixo do outro */
.cv-single--serie .cv-torrent-lista {
	flex-direction: column;
	align-items: center;
	gap: 14px;
}

.cv-single--serie .cv-torrent-btn--ep {
	position: relative;
	overflow: hidden;
	padding: 16px 30px 16px 46px;
	font-family: var(--cv-fonte-display, inherit);
	font-weight: 400;
	font-size: 19px;
	letter-spacing: 1px;
	text-transform: uppercase;
	border-radius: 10px;
	border: 2px solid transparent;
	box-shadow: 0 6px 18px rgba(0,0,0,.35);
	transition: transform .18s ease, box-shadow .18s ease, filter .18s ease;
	background: linear-gradient(135deg, #1f9d55, #34d372);
	color: #05210f;
}

.cv-single--serie .cv-torrent-btn--ep::before {
	content: "\2b07";
	position: absolute;
	left: 16px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 16px;
	line-height: 1;
}

.cv-single--serie .cv-torrent-btn--ep::after {
	content: "";
	position: absolute;
	top: 0;
	left: -60%;
	width: 40%;
	height: 100%;
	background: linear-gradient(120deg, transparent, rgba(255,255,255,.55), transparent);
	transform: skewX(-20deg);
	animation: cv-brilho 2.6s ease-in-out infinite;
}

.cv-single--serie .cv-torrent-btn--ep:hover {
	transform: translateY(-3px) scale(1.04);
	filter: brightness(1.1);
}

@media (prefers-reduced-motion: reduce) {
	.cv-single--serie .cv-torrent-btn--ep::after { animation: none; }
}

