/* NOTA v1.5.0: todos los selectores van prefijados con `.vlp ` para
   superar en especificidad al reset `.vlp * { margin:0; padding:0 }`
   del CSS critico inline, que se imprime despues de esta hoja y, a
   igualdad de especificidad (0,1,0), ganaba la cascada. */

/* ==========================================================================
   Valupe Blog — Shortcode [valupe_blog]
   Sistema de diseño: Narratias / Valupe
   ========================================================================== */

.vlp .vlp-blog {
	--blue:           #4f6bed;
	--blue-hover:     #4159d8;
	--blue-subtle:    #eef1fe;
	--blue-border:    #dfe4fc;
	--ink:            #1e2537;
	--ink-2:          #5b6478;
	--ink-3:          #6b7488;
	--bg:             #ffffff;
	--bg-alt:         #f6f8fb;
	--border:         #e7ebf2;
	--border-subtle:  #eef1f6;
	--shadow-sm:      0 1px 2px rgba(30, 37, 55, .04);
	--shadow-md:      0 10px 30px rgba(30, 37, 55, .07);
	--radius-sm:      10px;
	--radius-md:      16px;
	--radius-lg:      22px;
	--radius-pill:    100px;
	--ease:           cubic-bezier(.22, .61, .36, 1);
	--vlp-font:       'Inter', system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;

	font-family: var(--vlp-font) !important;
	color: var(--ink);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

.vlp .vlp-blog *,
.vlp .vlp-blog *::before,
.vlp .vlp-blog *::after {
	box-sizing: border-box;
	font-family: var(--vlp-font) !important;
}

/* Reset defensivo: temas suelen inyectar estilos en h1-h6 y a dentro de .entry-content */
.vlp .vlp-blog h1,
.vlp .vlp-blog h2,
.vlp .vlp-blog h3,
.vlp .vlp-blog h4,
.vlp .vlp-blog h5,
.vlp .vlp-blog h6,
.vlp .vlp-blog p,
.vlp .vlp-blog a,
.vlp .vlp-blog span,
.vlp .vlp-blog time,
.vlp .vlp-blog time * {
	font-family: var(--vlp-font) !important;
	text-transform: none;
	font-style: normal;
}

.vlp .vlp-blog-inner {
	max-width: 1180px;
	margin: 0 auto;
	padding: 64px 24px;
}

/* ── GRID ─────────────────────────────────────────────────────────── */
.vlp .vlp-blog-grid {
	display: grid;
	gap: 28px;
	grid-template-columns: repeat(3, 1fr);
}
.vlp .vlp-blog--cols-2 .vlp-blog-grid { grid-template-columns: repeat(2, 1fr); }
.vlp .vlp-blog--cols-4 .vlp-blog-grid { grid-template-columns: repeat(4, 1fr); gap: 20px; }

@media (max-width: 960px) {
	.vlp .vlp-blog-grid,
.vlp .vlp-blog--cols-2 .vlp-blog-grid,
.vlp .vlp-blog--cols-4 .vlp-blog-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}
@media (max-width: 600px) {
	.vlp .vlp-blog-grid,
.vlp .vlp-blog--cols-2 .vlp-blog-grid,
.vlp .vlp-blog--cols-4 .vlp-blog-grid {
		grid-template-columns: 1fr;
	}
	.vlp .vlp-blog-inner { padding: 40px 20px; }
}

/* ── TARJETA ──────────────────────────────────────────────────────── */
.vlp .vlp-blog-card {
	background: var(--bg);
	border: 1px solid var(--border);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-sm);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform .25s var(--ease), box-shadow .25s var(--ease), border-color .25s var(--ease);
}
.vlp .vlp-blog-card:hover {
	box-shadow: var(--shadow-md);
	transform: translateY(-3px);
	border-color: var(--blue-border);
}

.vlp .vlp-blog-card-media {
	display: block;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: var(--bg-alt);
	position: relative;
}
.vlp .vlp-blog-card-media img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .5s var(--ease);
}
.vlp .vlp-blog-card:hover .vlp-blog-card-media img {
	transform: scale(1.04);
}

.vlp .vlp-blog-card-placeholder {
	width: 100%;
	height: 100%;
	display: grid;
	place-items: center;
	background: linear-gradient(135deg, var(--blue-subtle), var(--blue-border));
	color: var(--blue);
	opacity: .7;
}

.vlp .vlp-blog-card-body {
	padding: 24px 24px 22px;
	display: flex;
	flex-direction: column;
	gap: 12px;
	flex: 1;
}

.vlp .vlp-blog-chip {
	align-self: flex-start;
	display: inline-block;
	padding: 4px 12px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: var(--blue);
	background: var(--blue-subtle);
	border: 1px solid var(--blue-border);
	border-radius: var(--radius-pill);
	text-decoration: none;
	transition: background .2s var(--ease), color .2s var(--ease), border-color .2s var(--ease);
}
.vlp .vlp-blog-chip:hover {
	background: var(--blue);
	color: #fff;
	border-color: var(--blue);
}

.vlp .vlp-blog-card-title {
	font-size: 20px !important;
	font-weight: 700 !important;
	letter-spacing: -.02em !important;
	line-height: 1.3 !important;
	margin: 0 !important;
	padding: 0 !important;
	color: var(--ink) !important;
}
.vlp .vlp-blog--cols-4 .vlp-blog-card-title { font-size: 17px !important; }

.vlp .vlp-blog-card-title a {
	color: var(--ink) !important;
	text-decoration: none !important;
	transition: color .2s var(--ease);
	background: transparent !important;
	box-shadow: none !important;
}
.vlp .vlp-blog-card-title a:hover {
	color: var(--blue) !important;
}

.vlp .vlp-blog-card-excerpt {
	font-size: 15px;
	line-height: 1.6;
	color: var(--ink-2);
	margin: 0;
	flex: 1;
}
.vlp .vlp-blog--cols-4 .vlp-blog-card-excerpt { font-size: 14px; }

.vlp .vlp-blog-card-footer {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-top: 14px;
	margin-top: auto;
	border-top: 1px solid var(--border-subtle);
	gap: 12px;
}

.vlp .vlp-blog-date {
	font-size: 13px;
	color: var(--ink-3);
	font-weight: 500;
}

.vlp .vlp-blog-more {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 14px;
	font-weight: 600;
	color: var(--blue);
	text-decoration: none;
	white-space: nowrap;
	transition: gap .2s var(--ease), color .2s var(--ease);
}
.vlp .vlp-blog-more:hover {
	gap: 10px;
	color: var(--blue-hover);
}
.vlp .vlp-blog-more svg { flex-shrink: 0; }

/* ── VACÍO ────────────────────────────────────────────────────────── */
.vlp .vlp-blog-empty {
	text-align: center;
	padding: 80px 24px;
	color: var(--ink-2);
	font-size: 16px;
	border: 1px dashed var(--border);
	border-radius: var(--radius-lg);
	background: var(--bg-alt);
}

/* ── PAGINACIÓN ───────────────────────────────────────────────────── */
.vlp .vlp-blog-pagination {
	margin-top: 56px;
	display: flex;
	justify-content: center;
}
.vlp .vlp-blog-pagination ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
}
.vlp .vlp-blog-pagination li { line-height: 1; }
.vlp .vlp-blog-pagination a,
.vlp .vlp-blog-pagination span {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	min-width: 40px;
	height: 40px;
	padding: 0 14px;
	font-size: 14px;
	font-weight: 600;
	color: var(--ink);
	background: var(--bg);
	border: 1px solid var(--border);
	border-radius: var(--radius-sm);
	text-decoration: none;
	justify-content: center;
	transition: color .2s var(--ease), background .2s var(--ease), border-color .2s var(--ease);
}
.vlp .vlp-blog-pagination a:hover {
	color: var(--blue);
	border-color: var(--blue-border);
	background: var(--blue-subtle);
}
.vlp .vlp-blog-pagination .current {
	background: var(--blue);
	color: #fff;
	border-color: var(--blue);
	cursor: default;
}
.vlp .vlp-blog-pagination .dots {
	border: none;
	background: transparent;
	color: var(--ink-3);
	min-width: auto;
	padding: 0 4px;
}
.vlp .vlp-blog-pagination svg { flex-shrink: 0; }
