/* Reset mínimo */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--rbl-font-body);
	font-size: var(--rbl-size-base);
	line-height: 1.6;
	color: var(--rbl-text);
	background: var(--rbl-bg);
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--rbl-primary); text-decoration: none; transition: color var(--rbl-transition); }
a:hover { color: var(--rbl-primary-dark); }
h1, h2, h3, h4, h5, h6 {
	font-family: var(--rbl-font-heading);
	font-weight: var(--rbl-weight-bold);
	line-height: 1.25;
	margin: 0 0 var(--rbl-space-md);
	color: var(--rbl-text);
}
h1 { font-size: var(--rbl-size-4xl); }
h2 { font-size: var(--rbl-size-3xl); }
h3 { font-size: var(--rbl-size-2xl); }
p { margin: 0 0 var(--rbl-space-md); }

.screen-reader-text {
	position: absolute !important;
	clip: rect(1px, 1px, 1px, 1px);
	overflow: hidden;
	height: 1px;
	width: 1px;
}

/* Contenedor */
.rbl-container {
	max-width: var(--rbl-container);
	margin-inline: auto;
	padding-inline: var(--rbl-space-lg);
}

/*
 * Header: hasta 3 franjas (.rbl-hband--top / --main / --bottom) adentro de
 * #masthead. El color del texto de cada franja sale de --rbl-hfg (por defecto
 * --rbl-text) para poder cambiarlo de una vez en el modo transparente.
 */
.rbl-header { position: relative; z-index: 100; }
.rbl-hband {
	--rbl-hfg: var(--rbl-text);
	position: relative;
	background: var(--rbl-bg);
	color: var(--rbl-hfg);
	border-bottom: 1px solid var(--rbl-border);
	transition: background var(--rbl-transition-md), box-shadow var(--rbl-transition-md), border-color var(--rbl-transition-md);
}
/* Los menús desplegables de una franja tienen que quedar por encima de la de abajo. */
.rbl-hband--top { z-index: 103; background: var(--rbl-bg-alt); font-size: var(--rbl-size-sm); }
.rbl-hband--main { z-index: 102; }
.rbl-hband--bottom { z-index: 101; }

.rbl-header__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--rbl-space-lg); padding-block: var(--rbl-space-md); }
.rbl-header__site-title { font-family: var(--rbl-font-heading); font-weight: var(--rbl-weight-bold); font-size: var(--rbl-size-xl); color: var(--rbl-hfg); }

/* Franja superior */
.rbl-hband--top .rbl-hband__inner { display: flex; align-items: center; justify-content: space-between; gap: var(--rbl-space-lg); padding-block: var(--rbl-space-xs); }
.rbl-hband__end { display: flex; align-items: center; gap: var(--rbl-space-lg); margin-left: auto; }
.rbl-hband__list { display: flex; gap: var(--rbl-space-md); list-style: none; margin: 0; padding: 0; }
.rbl-hband--top a, .rbl-hband__list a { color: var(--rbl-hfg); }
.rbl-hband--top p { margin: 0; }

/* Franja inferior */
.rbl-hband--bottom .rbl-hband__inner { padding-block: var(--rbl-space-sm); }

/* Sticky y transparente: solo cuando el JS del theme ya midió el header (html.rbl-header-ready). */
html.rbl-header-ready { scroll-padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--rbl-sticky-h, 0px)); }
/* display: contents saca la caja de #masthead: sus franjas pasan a ser hijas directas
   de <body>, y así cada una puede quedar fija (position: sticky) todo el largo de la
   página — un sticky nunca sale de la caja de su padre. */
html.rbl-header-ready .rbl-header { display: contents; }
html.rbl-header-ready .rbl-hband.is-sticky { position: sticky; top: var(--rbl-hband-top, 0px); }
.rbl-hband.is-stuck { box-shadow: var(--rbl-shadow); }

/*
 * Header transparente: se dibuja SOBRE el contenido. Antes de que cargue el JS
 * es un header absoluto (no ocupa lugar, sin salto de layout); ya con el JS
 * pasa a estar en el flujo y el <main> se sube su alto (--rbl-header-h), para
 * quedar exactamente en el mismo lugar.
 */
body.rbl-header-transparent .rbl-header { position: absolute; top: var(--wp-admin--admin-bar--height, 0px); left: 0; right: 0; }
html.rbl-header-ready body.rbl-header-transparent .rbl-header { position: static; }
html.rbl-header-ready body.rbl-header-transparent #masthead ~ main { margin-top: calc(var(--rbl-header-h, 0px) * -1); }
body.rbl-header-transparent .rbl-hband:not(.is-stuck) { background: transparent; border-color: transparent; }
body.rbl-hfg-light .rbl-hband:not(.is-stuck) { --rbl-hfg: var(--rbl-bg); }
body.rbl-hfg-dark .rbl-hband:not(.is-stuck) { --rbl-hfg: var(--rbl-text); }
body.rbl-header-transparent .rbl-hband:not(.is-stuck) .rbl-nav__list a:hover { color: var(--rbl-hfg); opacity: .75; }

/* Logo por estado: cada <img> lleva rbl-logo-for-{estado}; se muestra el del estado actual. */
.rbl-header .rbl-logo[class*="rbl-logo-for-"] { display: none; }
.rbl-header[data-rbl-state="normal"] .rbl-logo-for-normal,
.rbl-header[data-rbl-state="sticky"] .rbl-logo-for-sticky,
.rbl-header[data-rbl-state="transparent"] .rbl-logo-for-transparent { display: block; }

.rbl-nav-toggle {
	display: none;
	flex-direction: column;
	gap: 4px;
	background: none;
	border: none;
	cursor: pointer;
	padding: var(--rbl-space-sm);
}
.rbl-nav-toggle__bar { width: 22px; height: 2px; background: var(--rbl-hfg, var(--rbl-text)); }

.rbl-nav__list { display: flex; gap: var(--rbl-space-lg); list-style: none; margin: 0; padding: 0; }
.rbl-nav__list a { color: var(--rbl-hfg, var(--rbl-text)); font-weight: var(--rbl-weight-medium); }
.rbl-nav__list a:hover { color: var(--rbl-primary); }

@media (max-width: 768px) {
	.rbl-nav-toggle { display: flex; }
	.rbl-nav { display: none; width: 100%; }
	.rbl-nav.is-open { display: block; }
	.rbl-nav__list { flex-direction: column; gap: var(--rbl-space-sm); }
	.rbl-header__inner { flex-wrap: wrap; }

	/* Top header opcionalmente oculto en celulares; el bottom pasa a ser una tira con scroll horizontal. */
	.rbl-hband.is-hide-mobile { display: none; }
	.rbl-hband--bottom .rbl-nav__list { flex-direction: row; gap: var(--rbl-space-lg); overflow-x: auto; white-space: nowrap; }
	/* "También fijo en celulares" destildado: el header fijo se apaga en pantallas chicas. */
	html.rbl-header-ready body.rbl-sticky-mobile-off .rbl-hband.is-sticky { position: relative; top: auto; }
}

/* Layout principal */
.rbl-main { padding-block: var(--rbl-space-2xl); }
.rbl-front-page .rbl-main { padding-block: 0; }

/* Breadcrumbs (clases genéricas — el plugin decide el HTML final) */
.rbl-breadcrumbs { font-size: var(--rbl-size-sm); color: var(--rbl-text-muted); margin-bottom: var(--rbl-space-lg); }
.rbl-breadcrumbs a { color: var(--rbl-text-muted); }

/* Artículo (single/page) */
.rbl-article__thumbnail { margin-bottom: var(--rbl-space-lg); border-radius: var(--rbl-radius-lg); overflow: hidden; }
.rbl-article__title { margin-bottom: var(--rbl-space-lg); }
.rbl-article__content { max-width: var(--rbl-container-sm); }
.rbl-article__content > * + * { margin-top: var(--rbl-space-md); }

/* Archive header */
.rbl-archive__header { margin-bottom: var(--rbl-space-2xl); }
.rbl-archive__hero { border-radius: var(--rbl-radius-lg); overflow: hidden; margin-bottom: var(--rbl-space-lg); }
.rbl-archive__desc { color: var(--rbl-text-muted); }

/* Grid de cards */
.rbl-archive__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: var(--rbl-space-xl);
}
.rbl-card {
	background: var(--rbl-bg-alt);
	border: 1px solid var(--rbl-border);
	border-radius: var(--rbl-radius-lg);
	overflow: hidden;
	transition: box-shadow var(--rbl-transition-md), transform var(--rbl-transition-md);
}
.rbl-card:hover { box-shadow: var(--rbl-shadow-lg); transform: translateY(-2px); }
.rbl-card__image { display: block; aspect-ratio: 16 / 10; overflow: hidden; }
.rbl-card__image img { width: 100%; height: 100%; object-fit: cover; }
.rbl-card__body { padding: var(--rbl-space-lg); }
.rbl-card__title { font-size: var(--rbl-size-lg); margin-bottom: var(--rbl-space-sm); }
.rbl-card__title a { color: var(--rbl-text); }
.rbl-card__excerpt { color: var(--rbl-text-muted); font-size: var(--rbl-size-sm); margin: 0; }

.rbl-no-results { text-align: center; padding: var(--rbl-space-3xl) 0; color: var(--rbl-text-muted); }

/* Paginación (the_posts_pagination / the_comments_pagination) */
.pagination, .navigation.pagination {
	display: flex;
	flex-wrap: wrap;
	gap: var(--rbl-space-sm);
	margin-top: var(--rbl-space-2xl);
	list-style: none;
	padding: 0;
}
.pagination .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding-inline: var(--rbl-space-sm);
	border: 1px solid var(--rbl-border);
	border-radius: var(--rbl-radius);
	color: var(--rbl-text);
}
.pagination .page-numbers.current { background: var(--rbl-primary); border-color: var(--rbl-primary); color: #fff; }

/* Sidebar / widgets */
.rbl-sidebar { margin-top: var(--rbl-space-2xl); }
.rbl-widget { margin-bottom: var(--rbl-space-xl); }
.rbl-widget__title { font-size: var(--rbl-size-lg); margin-bottom: var(--rbl-space-md); }

/* Comentarios */
.rbl-comments { margin-top: var(--rbl-space-3xl); max-width: var(--rbl-container-sm); }
.rbl-comments__list { list-style: none; padding: 0; }
.rbl-comments__list .comment { padding: var(--rbl-space-lg) 0; border-bottom: 1px solid var(--rbl-border); }

/* Footer */
.rbl-footer { border-top: 1px solid var(--rbl-border); background: var(--rbl-bg-alt); margin-top: var(--rbl-space-3xl); }
.rbl-footer__inner { padding-block: var(--rbl-space-xl); display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--rbl-space-md); }
.rbl-header__logo, .rbl-footer__logo { display: inline-flex; align-items: center; }
.rbl-header__logo img, .rbl-footer__logo img { display: block; width: auto; height: auto; max-height: var(--rbl-space-2xl); }
.rbl-footer__list { display: flex; gap: var(--rbl-space-lg); list-style: none; margin: 0; padding: 0; }
.rbl-footer__copy { color: var(--rbl-text-muted); font-size: var(--rbl-size-sm); margin: 0; }
.rbl-footer__social { margin-left: auto; }

/* Barra inferior de dos lados: copyright a la izquierda, crédito a la derecha (uno debajo del otro en celulares). */
.rbl-footer__bottom { border-top: 1px solid var(--rbl-border); }
.rbl-footer__bottom-inner { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--rbl-space-sm) var(--rbl-space-lg); padding-block: var(--rbl-space-md); }
.rbl-footer__credit { color: var(--rbl-text-muted); font-size: var(--rbl-size-sm); margin: 0; }
.rbl-footer__credit a { color: var(--rbl-text); font-weight: var(--rbl-weight-medium); }
@media (max-width: 768px) {
	.rbl-footer__bottom-inner { flex-direction: column; align-items: flex-start; }
}

/* Botón de acción del header (Opciones de Web → Botón del header). */
/* Solo en escritorio: en celulares .rbl-nav es el menú plegable (display: none / .is-open). */
@media (min-width: 769px) {
	.rbl-nav { display: flex; align-items: center; gap: var(--rbl-space-lg); }
}
@media (max-width: 768px) {
	.rbl-nav .rbl-cta { margin-top: var(--rbl-space-sm); }
}
.rbl-cta {
	display: inline-flex;
	align-items: center;
	padding: var(--rbl-space-sm) var(--rbl-space-lg);
	border: 1px solid var(--rbl-primary);
	border-radius: var(--rbl-radius);
	background: var(--rbl-primary);
	color: var(--rbl-bg);
	font-weight: var(--rbl-weight-medium);
	white-space: nowrap;
	transition: background var(--rbl-transition), color var(--rbl-transition), border-color var(--rbl-transition);
}
.rbl-cta:hover { background: var(--rbl-primary-dark); border-color: var(--rbl-primary-dark); color: var(--rbl-bg); }
.rbl-cta--outline { background: transparent; color: var(--rbl-hfg, var(--rbl-primary)); border-color: currentColor; }
.rbl-cta--outline:hover { background: var(--rbl-primary); border-color: var(--rbl-primary); color: var(--rbl-bg); }

/* 404 */
.rbl-404 { text-align: center; padding-block: var(--rbl-space-3xl); }
