/* ==========================================================================
   Ceuta Deportiva — Portadas
   Composiciones de noticias destacadas. Todo con CSS Grid/Flex.
   ========================================================================== */

/* Auto-protección: si algún CSS global oculta los widgets shortcode
   (p. ej. una regla .elementor-widget-shortcode{display:none}),
   forzamos que el widget que contiene la portada siga visible. */
.elementor-widget-shortcode:has(.cd-portada) { display: block !important; }

.cd-portada {
	--cd-gap: 0px;              /* separación entre fotos ("pegadas"). Sube a 4px si quieres un hilo */
	--cd-red: #d20a11;          /* rojo cabecera CD (ajústalo si tu tono es otro) */
	--cd-radius: 0;             /* esquinas rectas como en el diseño */
	max-width: none;           /* ocupa todo el ancho del contenedor (sin huecos laterales) */
	margin: 0;
	box-sizing: border-box;
}
.cd-portada *,
.cd-portada *::before,
.cd-portada *::after { box-sizing: border-box; }

/* ---------- Tarjeta base ---------- */
.cd-card { position: relative; margin: 0 !important; }
.cd-card__link { display: block; text-decoration: none; color: inherit; }
/* Quita el margen (p. ej. 30px) que el tema/Elementor añade a las imágenes dentro del contenido */
.cd-portada img { margin: 0 !important; }

.cd-card__media {
	position: relative;      /* <-- ancla para la etiqueta de categoría y el overlay */
	display: block;
	overflow: hidden;
	background: #e9e9e9;
	border-radius: var(--cd-radius);
	aspect-ratio: 16 / 9;
}
.cd-card--big .cd-card__media { aspect-ratio: 16 / 10; }

.cd-card__media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .35s ease;
}
.cd-card__link:hover .cd-card__media img { transform: scale(1.04); }

/* Oscurecido a negro al pasar el ratón (como el diseño original).
   Queda por encima de la foto pero por debajo del titular y la etiqueta,
   así la imagen se oscurece pero el texto sigue legible. */
.cd-card__media::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
	background: #000;
	opacity: 0;
	transition: opacity .3s ease;
	pointer-events: none;
}
.cd-card__link:hover .cd-card__media::after { opacity: .5; }

.cd-card__noimg { display: block; width: 100%; height: 100%; background: linear-gradient(135deg,#d0d0d0,#efefef); }

/* ---------- Etiqueta de categoría (EL AJUSTE QUE NO CONSEGUÍAS) ---------- */
.cd-card__cat {
	position: absolute;
	top: 0;
	right: 0;
	z-index: 3;
	background: var(--cd-red);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	line-height: 1;
	padding: 5px 8px;
}

/* ---------- Titular DENTRO de la foto ---------- */
.cd-card__overlay {
	position: absolute;
	left: 0; right: 0; bottom: 0;
	z-index: 2;
	padding: 28px 14px 12px;
	background: linear-gradient(to top, rgba(0,0,0,.82) 0%, rgba(0,0,0,.35) 55%, rgba(0,0,0,0) 100%);
}
.cd-card--inside .cd-card__title {
	color: #fff;
	margin: 0;
}

/* ---------- Titular FUERA de la foto ---------- */
.cd-card--outside .cd-card__title {
	color: #111;
	margin: 8px 0 0;
	padding: 0 2px;
}

/* Titular común */
.cd-card__title {
	font-family: "Roboto Condensed", "Titillium Web", sans-serif; /* tipografía condensada como el diseño */
	font-size: 17px;
	font-weight: 700;
	line-height: 1.15;
	/* Evita desbordes y "puntos suspensivos" feos: recorta a nº de líneas */
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.cd-card--big .cd-card__title { font-size: 24px; }
.cd-card--small .cd-card__title { font-size: 15px; -webkit-line-clamp: 2; }

/* Tamaños de titular en Desktop (>=1025px): grande 34px, pequeña 20px. */
@media (min-width: 1025px) {
	.cd-card__title { font-size: 20px; }
	.cd-card--big .cd-card__title { font-size: 34px; }
	.cd-card--small .cd-card__title { font-size: 20px; }
}

/* ==========================================================================
   Composición A y C: grande izquierda + columna de pequeñas a la derecha
   ========================================================================== */
.cd-portada--A,
.cd-portada--C {
	display: grid;
	grid-template-columns: 5fr 3fr;   /* ~62,5% / 37,5%, como el diseño (750/450) */
	gap: var(--cd-gap);
	align-items: start;
}
.cd-portada--A .cd-portada__main .cd-card,
.cd-portada--C .cd-portada__main .cd-card { width: 100%; }
/* Fallback por si el navegador no aplica las alturas fijas de Desktop */
.cd-portada--A .cd-portada__main .cd-card__media,
.cd-portada--C .cd-portada__main .cd-card__media { aspect-ratio: 3 / 2; }

.cd-portada--A .cd-portada__side,
.cd-portada--C .cd-portada__side {
	display: grid;
	gap: var(--cd-gap);
}
.cd-portada--A .cd-portada__side .cd-card__media,
.cd-portada--C .cd-portada__side .cd-card__media { aspect-ratio: 3 / 2; }

/* Alturas fijas en Desktop, calcadas del diseño: grande 500px, pequeñas 250px
   (dos apiladas = 500 → encajan justo con la grande). */
@media (min-width: 881px) {
	.cd-portada--A .cd-portada__main .cd-card__media,
	.cd-portada--C .cd-portada__main .cd-card__media { aspect-ratio: auto; height: 500px; }
	.cd-portada--A .cd-portada__side .cd-card__media,
	.cd-portada--C .cd-portada__side .cd-card__media { aspect-ratio: auto; height: 250px; }
}

/* ==========================================================================
   Composición D: grande arriba + fila de pequeñas debajo
   ========================================================================== */
.cd-portada--D .cd-portada__top { margin-bottom: var(--cd-gap); }
.cd-portada--D .cd-portada__top .cd-card__media { aspect-ratio: 16 / 8; }
.cd-portada--D .cd-portada__row {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: var(--cd-gap);
}

/* ==========================================================================
   Composición B: columna principal + barra lateral
   ========================================================================== */
.cd-portada--B {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 20px;
	align-items: start;
}
.cd-portada--B .cd-portada__big { margin-bottom: var(--cd-gap); }
.cd-portada--B .cd-portada__big .cd-card__media { aspect-ratio: 16 / 9; }
.cd-portada--B .cd-portada__row {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: var(--cd-gap);
}

/* Barra lateral: pestañas */
.cd-tabs { border: 1px solid #e3e3e3; background: #fff; }
.cd-tabs__nav { display: flex; background: #f5f5f5; border-bottom: 1px solid #e3e3e3; }
.cd-tabs__btn {
	flex: 1 1 auto;
	appearance: none;
	border: 0;
	background: transparent;
	padding: 10px 8px;
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .02em;
	color: #666;
	cursor: pointer;
	border-bottom: 3px solid transparent;
}
.cd-tabs__btn.is-active { color: var(--cd-red); border-bottom-color: var(--cd-red); background: #fff; }
.cd-tabs__panel { display: none; padding: 6px 10px; }
.cd-tabs__panel.is-active { display: block; }

/* Lista compacta de la barra lateral */
.cd-mini { list-style: none; margin: 0; padding: 0; }
.cd-mini__item { border-bottom: 1px solid #eee; }
.cd-mini__item:last-child { border-bottom: 0; }
.cd-mini__item > a {
	display: grid;
	grid-template-columns: 64px 1fr;
	gap: 10px;
	align-items: center;
	padding: 9px 0;
	text-decoration: none;
	color: #1a1a1a;
}
.cd-mini__thumb { width: 64px; height: 48px; overflow: hidden; border-radius: var(--cd-radius); background: #eee; }
.cd-mini__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.cd-mini__title {
	font-size: 13px; font-weight: 600; line-height: 1.25;
	display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.cd-mini__item > a:hover .cd-mini__title { color: var(--cd-red); }
.cd-empty { padding: 12px; color: #888; font-size: 13px; }

.cd-aside-ad { text-align: center; }
.cd-aside-ad img { max-width: 100%; height: auto; }

/* ==========================================================================
   Carrusel
   ========================================================================== */
.cd-portada--carrusel { position: relative; }
.cd-carousel__track {
	display: flex;
	gap: 0;                          /* foto a foto, sin huecos */
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
}
.cd-carousel__track::-webkit-scrollbar { display: none; }

/* Una foto COMPLETA por diapositiva (de borde a borde) */
.cd-carousel__slide { flex: 0 0 100%; scroll-snap-align: start; }
.cd-portada--carrusel .cd-card__media { aspect-ratio: 16 / 7; }   /* formato panorámico tipo hero */

/* Flechas DENTRO de la foto, superpuestas y centradas verticalmente */
.cd-carousel__nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 5;
	width: 44px; height: 44px;
	border: 0; border-radius: 50%;
	background: rgba(0,0,0,.5); color: #fff;
	font-size: 18px; line-height: 1; cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	transition: background .2s ease;
}
.cd-carousel__prev { left: 14px; }
.cd-carousel__next { right: 14px; }
.cd-carousel__nav:hover { background: var(--cd-red); }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 880px) {
	.cd-portada--A,
	.cd-portada--C,
	.cd-portada--B { grid-template-columns: 1fr; }
	.cd-portada--A .cd-portada__side,
	.cd-portada--C .cd-portada__side { grid-template-rows: none; grid-template-columns: 1fr 1fr; }
	.cd-portada--A .cd-portada__main .cd-card__media,
	.cd-portada--C .cd-portada__main .cd-card__media { min-height: 0; aspect-ratio: 16 / 9; }
	.cd-carousel__slide { flex-basis: 82%; }
}
@media (max-width: 520px) {
	.cd-portada--A .cd-portada__side,
	.cd-portada--C .cd-portada__side,
	.cd-portada--B .cd-portada__row,
	.cd-portada--D .cd-portada__row { grid-template-columns: 1fr; }
	.cd-card--big .cd-card__title { font-size: 20px; }
	.cd-carousel__slide { flex-basis: 90%; }
}
