/* LaRevista33 — estilos base. Mobile-first, accesible, texto grande, alto contraste. */

:root {
	--azul: #2f6da3;
	--azul-osc: #244f73;
	--header-bg: #ffcb05;     /* amarillo cromo */
	--header-texto: #1a1a1a;
	--tinta: #1a1a1a;
	--gris: #555;
	--fondo: #ffffff;
	--fondo-suave: #f2f4f7;
	--borde: #d8dde3;
	--max: 1100px;
	--radio: 10px;
}

* { box-sizing: border-box; }

html { font-size: 18px; }

body {
	margin: 0;
	font-family: Georgia, "Times New Roman", serif;
	color: var(--tinta);
	background: var(--fondo);
	line-height: 1.7;
}

.container {
	width: 100%;
	max-width: var(--max);
	margin: 0 auto;
	padding: 0 1rem;
}

a { color: var(--azul-osc); }
a:focus, button:focus { outline: 3px solid var(--azul); outline-offset: 2px; }

img { max-width: 100%; height: auto; }

/* Accesibilidad: skip link */
.skip-link {
	position: absolute;
	left: -9999px;
	background: var(--azul-osc);
	color: #fff;
	padding: .75rem 1rem;
	z-index: 1000;
}
.skip-link:focus { left: 1rem; top: 1rem; }
.screen-reader-text:not(:focus) {
	position: absolute !important;
	width: 1px; height: 1px;
	overflow: hidden; clip: rect(1px,1px,1px,1px);
}

/* Header */
.site-header {
	border-bottom: 4px solid var(--azul-osc);
	background: var(--header-bg);
	color: var(--header-texto);
	padding: .75rem 0;
}
.site-contacto { color: var(--header-texto); }
.site-nav__list a { color: var(--header-texto); }
.site-header__inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .5rem;
	text-align: center;
}
.site-logo img { width: auto; max-height: 90px; }
.site-contacto { font-size: .95rem; }
.site-nav__list {
	list-style: none;
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 1rem;
	margin: .5rem 0 0;
	padding: 0;
}
.site-nav__list a { text-decoration: none; font-weight: bold; }

/* Main + layout con lateral */
.site-main { padding: 1.5rem 0 3rem; }
.layout { display: flex; flex-wrap: wrap; gap: 2rem; align-items: flex-start; }
.layout__main { flex: 1 1 65%; min-width: 0; }
.layout__side { flex: 0 0 230px; max-width: 230px; }
@media (max-width: 767px) {
	.layout__side { flex-basis: 100%; max-width: none; display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; }
	.layout__side .pub { flex: 1 1 220px; max-width: 300px; margin-bottom: 0; }
}

/* Publicidad */
.pub { display: block; }
.pub img { display: block; width: 100%; height: auto; border-radius: 6px; }
.pub-band { background: var(--fondo-suave); border-top: 1px solid var(--borde); border-bottom: 1px solid var(--borde); padding: .9rem 0; }
.pub-band__inner { display: flex; flex-wrap: wrap; gap: 1rem; justify-content: center; align-items: center; }
.pub-band__inner .pub { flex: 1 1 220px; max-width: 360px; }
.pub-band--cabecera { margin-bottom: 0; }
.pub-band--pie { margin-top: 1.5rem; }
.layout__side .pub { margin-bottom: 1.25rem; }
.pub-inline { margin: 1.5rem auto; max-width: 480px; }
.seccion-titulo {
	font-size: 1.6rem;
	color: var(--azul-osc);
	border-bottom: 2px solid var(--borde);
	padding-bottom: .4rem;
	margin: 0 0 1.25rem;
}

/* Grilla de tapas */
.grilla-tapas {
	list-style: none;
	margin: 0; padding: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
	gap: 1.25rem;
}
.tapa a {
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: var(--tinta);
	border: 1px solid var(--borde);
	border-radius: var(--radio);
	overflow: hidden;
	background: var(--fondo-suave);
	transition: transform .15s, box-shadow .15s;
}
.tapa a:hover, .tapa a:focus {
	transform: translateY(-3px);
	box-shadow: 0 6px 18px rgba(0,0,0,.15);
}
.tapa img { width: 100%; display: block; aspect-ratio: 5/7; object-fit: cover; }
.tapa__sin-imagen {
	display: flex; align-items: center; justify-content: center;
	aspect-ratio: 5/7; padding: 1rem; text-align: center;
	background: var(--azul); color: #fff; font-weight: bold;
}
.tapa__titulo { padding: .6rem .75rem; font-weight: bold; }

.aviso-vacio {
	background: var(--fondo-suave);
	border: 1px dashed var(--borde);
	border-radius: var(--radio);
	padding: 1.25rem;
}

/* Lector de audio */
.btn-escuchar {
	display: inline-flex; align-items: center; gap: .5rem;
	background: var(--azul-osc); color: #fff;
	border: 0; border-radius: var(--radio);
	padding: .7rem 1.2rem; font-size: 1.05rem; cursor: pointer;
}
.btn-escuchar:hover { background: var(--azul); }

/* Edición individual */
.edicion__top { display: flex; flex-wrap: wrap; gap: 1.5rem; align-items: flex-start; margin-bottom: 1.5rem; }

.edicion__tapa { margin: 0; flex: 0 0 auto; }
.edicion__tapa-btn {
	display: block; position: relative; width: 240px; max-width: 100%; padding: 0; border: 0;
	background: none; cursor: zoom-in; border-radius: var(--radio); overflow: hidden;
}
.edicion__tapa-btn img { width: 100%; display: block; border: 1px solid var(--borde); border-radius: var(--radio); }
.edicion__zoom {
	position: absolute; bottom: .6rem; right: .6rem;
	background: rgba(0,0,0,.7); color: #fff; font-size: .85rem;
	padding: .3rem .65rem; border-radius: 999px;
}

.edicion__info { flex: 1 1 280px; }
.edicion__kicker { margin: 0 0 .35rem; color: var(--gris); font-size: 1rem; }
.edicion__titulo { margin: 0; font-size: 1.7rem; color: var(--azul-osc); line-height: 1.2; }
.edicion__subtitulo { margin: .4rem 0 0; font-size: 1.2rem; color: var(--gris); font-style: italic; }
.edicion__descargas { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1.25rem; }

.edicion__leer {
	font-size: 1.25rem; font-weight: bold; color: var(--azul-osc);
	border-top: 2px solid var(--borde); padding-top: 1rem; margin: 0 0 1.25rem;
}

/* Lightbox (tapa a pantalla completa) */
.lr-lightbox { border: 0; padding: 0; background: transparent; max-width: 100vw; max-height: 100vh; }
.lr-lightbox::backdrop { background: rgba(0,0,0,.85); }
.lr-lightbox img { display: block; max-width: 96vw; max-height: 96vh; margin: auto; cursor: zoom-out; }

.edicion__bloque { margin-bottom: 2rem; }
.edicion__bloque h2 { color: var(--azul-osc); margin: 0 0 .9rem; }

.pdf-fila {
	display: flex; align-items: center; flex-wrap: wrap; gap: .6rem;
	padding: .75rem 0; border-bottom: 1px solid var(--borde);
}
.pdf-fila__label { flex: 1 1 12rem; font-weight: bold; }
.btn-pdf {
	display: inline-flex; align-items: center; gap: .4rem;
	background: var(--azul-osc); color: #fff; text-decoration: none;
	padding: .55rem 1.1rem; border-radius: var(--radio); font-weight: bold;
}
.btn-pdf:hover { background: var(--azul); }
.btn-pdf--descarga { background: #fff; color: var(--azul-osc); border: 2px solid var(--azul-osc); }
.btn-pdf--descarga:hover { background: var(--fondo-suave); }

.lista-articulos { list-style: none; margin: 0; padding: 0; }
.lista-articulos__item { border-bottom: 1px solid var(--borde); }
.lista-articulos__item a {
	display: flex; align-items: center; gap: .9rem;
	padding: .7rem 0; text-decoration: none; color: var(--tinta);
}
.lista-articulos__item a:hover .lista-articulos__titulo { color: var(--azul-osc); text-decoration: underline; }
.lista-articulos__foto { width: 64px; height: 64px; object-fit: cover; border-radius: 6px; flex: 0 0 auto; }
.lista-articulos__titulo { font-weight: bold; }

.edicion__texto { margin-top: 2rem; }

@media (min-width: 768px) {
	.edicion__cuerpo { grid-template-columns: 300px 1fr; align-items: start; }
}

/* Sección de artículos (tipo diario) */
.filtros {
	display: flex; flex-wrap: wrap; gap: .9rem; align-items: end;
	background: var(--fondo-suave); border: 1px solid var(--borde);
	border-radius: var(--radio); padding: 1rem; margin-bottom: 1.5rem;
}
.filtros__campo { display: flex; flex-direction: column; flex: 1 1 140px; }
.filtros__campo--ancho { flex: 1 1 100%; }
.filtros__campo label { font-weight: bold; font-size: .9rem; margin-bottom: .25rem; }
.filtros__campo input, .filtros__campo select { padding: .5rem; border: 1px solid var(--borde); border-radius: 6px; font-size: 1rem; }
.filtros__acciones { display: flex; align-items: center; gap: 1rem; flex: 1 1 100%; }
.filtros__limpiar { font-size: .95rem; }

.lista-cards { display: flex; flex-direction: column; gap: 1.5rem; }
.card { display: flex; gap: 1.1rem; border-bottom: 1px solid var(--borde); padding-bottom: 1.5rem; }
.card__foto { flex: 0 0 200px; }
.card__foto img { width: 100%; height: 100%; object-fit: cover; border-radius: var(--radio); aspect-ratio: 4/3; }
.card__cuerpo { flex: 1 1 auto; min-width: 0; }
.card__meta { margin: 0 0 .35rem; font-size: .9rem; color: var(--gris); }
.card__meta a { text-decoration: none; }
.card__titulo { margin: 0 0 .4rem; font-size: 1.4rem; line-height: 1.25; }
.card__titulo a { text-decoration: none; color: var(--azul-osc); }
.card__titulo a:hover { text-decoration: underline; }
.card__resumen { margin: 0 0 .5rem; }
.card__edicion { font-size: .9rem; text-decoration: none; color: var(--azul-osc); font-weight: bold; }

@media (max-width: 560px) {
	.card { flex-direction: column; }
	.card__foto { flex-basis: auto; }
	.card__foto img { aspect-ratio: 16/9; }
}

/* Nota individual */
.nota { max-width: 760px; }
.nota__cat { margin: 0 0 .3rem; text-transform: uppercase; font-size: .85rem; letter-spacing: .03em; }
.nota__cat a { color: var(--azul); text-decoration: none; font-weight: bold; }
.nota__meta { color: var(--gris); margin: .25rem 0 1rem; }
.nota__meta a { color: var(--azul-osc); }
.nota__foto { margin: 0 0 1.5rem; }
.nota__foto img { width: 100%; border-radius: var(--radio); }
.nota__contenido img { height: auto; border-radius: 6px; }
.nota__edicion { margin-top: 2rem; padding: .9rem 1.1rem; background: var(--fondo-suave); border-radius: var(--radio); }

/* Paginación */
.paginacion { margin-top: 2rem; }
.paginacion .page-numbers {
	display: inline-block; padding: .45rem .8rem; margin: 0 .15rem;
	border: 1px solid var(--borde); border-radius: 6px; text-decoration: none; color: var(--azul-osc);
}
.paginacion .page-numbers.current { background: var(--azul-osc); color: #fff; border-color: var(--azul-osc); }

/* Footer */
.site-footer {
	border-top: 3px solid var(--azul);
	background: var(--fondo-suave);
	padding: 1.5rem 0;
	text-align: center;
	color: var(--gris);
}

/* Desktop */
@media (min-width: 768px) {
	.site-header__inner {
		flex-direction: row;
		justify-content: space-between;
		text-align: left;
	}
	.site-nav__list { margin-top: 0; }
}
