/**
 * Widget "Cards com Imagem Lateral" (widgets/pagina-cards-midia.php)
 *
 * Valores conferidos contra `.equipment-title`, `.equipment-grid`,
 * `.equipment-item`, `.equipment-body` e `.spec` do mockup de Serviços
 * Audiovisuais.
 */

.fjpn-cards-midia {
	background: var(--fjpn-cards-midia-secao-bg, transparent);
	padding-block: var(--fjpn-space-section-py-md);
}

/* ==========================================================================
   1. CABEÇALHO
   ========================================================================== */

.fjpn-cards-midia__cabecalho {
	max-width: 780px; /* medida do modelo */
	margin: 0 auto 32px; /* centralizado, com o respiro do modelo */
}

.fjpn-cards-midia__eyebrow {
	display: block;
	margin-bottom: var(--fjpn-gap-icon-text);
	font-family: var(--fjpn-font-sans);
	font-size: var(--fjpn-text-eyebrow);
	font-weight: var(--fjpn-weight-bold);
	text-transform: uppercase;
	letter-spacing: 0.02em;
	color: var(--fjpn-cards-midia-eyebrow, var(--fjpn-orange-primary));
}

.fjpn-cards-midia__titulo {
	margin: 0 0 var(--fjpn-gap-medium);
	font-family: var(--fjpn-font-sans);
	font-size: var(--fjpn-text-heading-lg);
	font-weight: var(--fjpn-weight-bold);
	line-height: var(--fjpn-leading-snug);
	color: var(--fjpn-cards-midia-titulo, var(--fjpn-text-primary));
}

.fjpn-cards-midia__texto {
	margin: 0;
	font-family: var(--fjpn-font-sans);
	font-size: var(--fjpn-text-body);
	line-height: var(--fjpn-leading-relaxed);
	color: var(--fjpn-cards-midia-texto, var(--fjpn-text-muted));
}

/* ==========================================================================
   2. GRADE
   O número de colunas vem do painel (2 no desktop, 1 no tablet e no celular,
   como no modelo). Aqui fica só o valor de partida e a calha.
   ========================================================================== */

.fjpn-cards-midia__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px; /* valor do modelo */
}

@media (max-width: 899px) {
	.fjpn-cards-midia__grid {
		grid-template-columns: minmax(0, 1fr);
	}
}

/* ==========================================================================
   3. CARD
   Duas faixas: imagem à esquerda com largura fixa, texto ocupando o resto.
   ========================================================================== */

.fjpn-cards-midia__card {
	display: grid;
	grid-template-columns: 170px minmax(0, 1fr); /* valor do modelo */
	min-height: 150px;
	overflow: hidden;
	border: var(--fjpn-border-width-default) solid var(--fjpn-cards-midia-card-borda, var(--fjpn-slate-200));
	border-radius: var(--fjpn-radius-lg);
	background: var(--fjpn-cards-midia-card-bg, var(--fjpn-white));
	box-shadow: var(--fjpn-shadow-card);
	text-decoration: none;
}

/* Só o card com link ganha reação ao passar o cursor — num card estático a
   elevação prometeria um clique que não existe. */
.fjpn-cards-midia__card--link {
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

.fjpn-cards-midia__card--link:hover {
	transform: translateY(-2px);
	box-shadow: var(--fjpn-shadow-card-hover);
}

.fjpn-cards-midia__card--link:focus-visible {
	outline: var(--fjpn-border-width-outline) solid var(--fjpn-orange-focus);
	outline-offset: 2px;
}

/* `.elementor` no início é obrigatório: `.elementor img { height: auto }` tem
   especificidade (0,1,1) e descartaria a altura declarada aqui, deixando a
   imagem com a proporção original e quebrando a faixa lateral. */
.elementor .fjpn-cards-midia__imagem {
	display: block;
	width: 170px;
	height: 100%;
	min-height: 150px;
	object-fit: cover;
}

.fjpn-cards-midia__corpo {
	padding: 20px 22px; /* valores do modelo */
	min-width: 0; /* deixa o texto quebrar em vez de esticar a faixa */
}

.fjpn-cards-midia__card-titulo {
	margin: 0 0 8px;
	font-family: var(--fjpn-font-sans);
	font-size: var(--fjpn-text-card-title);
	font-weight: var(--fjpn-weight-bold);
	line-height: 1.3;
	color: var(--fjpn-cards-midia-card-titulo, var(--fjpn-blue-primary));
}

.fjpn-cards-midia__card-texto {
	margin: 0;
	font-family: var(--fjpn-font-sans);
	font-size: var(--fjpn-text-small);
	line-height: 1.55; /* valor do modelo */
	color: var(--fjpn-cards-midia-card-texto, var(--fjpn-text-muted));
}

/* A linha de especificação é o dado técnico (marca e modelo): mais escura e
   em negrito, para se separar da descrição sem precisar de outro tamanho. */
.fjpn-cards-midia__spec {
	display: block;
	margin-top: 9px; /* valor do modelo */
	font-family: var(--fjpn-font-sans);
	font-size: var(--fjpn-text-small);
	font-weight: var(--fjpn-weight-bold);
	line-height: 1.45;
	color: var(--fjpn-cards-midia-spec, var(--fjpn-slate-700));
}

/* ==========================================================================
   4. RESPONSIVO
   A imagem ENCOLHE, nunca some — imagem oculta no celular é anti-padrão
   registrado no CLAUDE.md do projeto. As larguras vêm do painel; estes são
   os valores de partida do modelo.
   ========================================================================== */

@media (max-width: 899px) {
	.fjpn-cards-midia__card {
		grid-template-columns: 145px minmax(0, 1fr);
	}

	.elementor .fjpn-cards-midia__imagem {
		width: 145px;
	}
}

@media (max-width: 520px) {
	.fjpn-cards-midia__card {
		grid-template-columns: 112px minmax(0, 1fr);
	}

	.elementor .fjpn-cards-midia__imagem {
		width: 112px;
	}

	.fjpn-cards-midia__corpo {
		padding: 16px;
	}
}
