/* ==========================================================================
   Rotario Torreón — estilos del tema
   Azul marino #212d45, dorado #ffc03d, Inter para texto y Outfit para portadas.
   Los colores vienen de variables (Personalizar > Tema Rotario Torreón > Colores).
   ========================================================================== */

:root {
	--rt-dorado: #ffc03d;
	--rt-dorado-2: #ffae00;
	--rt-marino: #212d45;
	--rt-texto: #4b4f58;
	--rt-titulo-sitio: #2b54a4;
	--rt-gris: #f5f5f5;
	--rt-linea: #e5e7ec;
	--rt-gutter: clamp(16px, 4vw, 40px);
	--rt-header-h: 84px;
	--rt-radius: 16px;
	--rt-shadow: 0 1px 2px rgba(18, 26, 44, .05), 0 12px 32px -18px rgba(18, 26, 44, .28);
	--rt-content: var(--wp--style--global--content-size, 1200px);
	--rt-wide: var(--wp--style--global--wide-size, 1340px);
	--rt-narrow: 760px;
	--rt-ease: cubic-bezier(.22, 1, .36, 1);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 20px; }
body { margin: 0; font-family: var(--wp--preset--font-family--inter, Inter, system-ui, sans-serif); color: var(--rt-texto); background: #fff; -webkit-font-smoothing: antialiased; overflow-wrap: break-word; }
body.rt-sticky-header { scroll-padding-top: calc(var(--rt-header-h) + 16px); }
img, video, iframe, svg { max-width: 100%; }
img { height: auto; }
figure { margin: 0 0 1.5em; }
a { text-underline-offset: .15em; }
a:focus-visible, button:focus-visible, input:focus-visible, select:focus-visible, textarea:focus-visible, [tabindex]:focus-visible {
	outline: 2px solid var(--rt-dorado-2); outline-offset: 2px;
}
.rt-icon { flex: none; vertical-align: middle; }
.screen-reader-text { border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute !important; width: 1px; word-wrap: normal !important; }
.rt-skip:focus { clip: auto; clip-path: none; width: auto; height: auto; z-index: 100000; left: 12px; top: 12px; padding: 12px 18px; background: var(--rt-marino); color: #fff; border-radius: 10px; font-weight: 700; text-decoration: none; }
.rt-wrap { width: min(var(--rt-content), 100% - 2 * var(--rt-gutter)); margin-inline: auto; }
.rt-wrap--narrow { width: min(var(--rt-narrow), 100% - 2 * var(--rt-gutter)); }
.rt-main { display: block; outline: 0; }
body.rt-gray .rt-main { background: var(--rt-gris); }

/* ---------- Buttons ---------- */
.rt-btn, .wp-block-button__link, .wp-element-button, button.wp-element-button, input[type="submit"].wp-element-button {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	font-family: inherit; font-size: 16px; font-weight: 700; line-height: 1; text-transform: uppercase; letter-spacing: .02em;
	padding: 17px 30px; border-radius: 50px; border: 0; cursor: pointer; text-decoration: none;
	background: var(--rt-dorado); color: var(--rt-marino);
	transition: background .2s, color .2s, box-shadow .2s, transform .2s var(--rt-ease);
}
.rt-btn:hover, .wp-block-button__link:hover, .wp-element-button:hover { background: var(--rt-dorado-2); color: var(--rt-marino); }
.rt-btn:active { transform: translateY(1px); }
.is-style-outline > .wp-block-button__link:not(.has-background), .wp-block-button__link.is-style-outline:not(.has-background) { background: transparent; box-shadow: inset 0 0 0 2px currentColor; color: var(--rt-marino); }
.is-style-outline > .wp-block-button__link:not(.has-background):hover { background: var(--rt-marino); color: #fff; }
.rt-btn--header {
	background: transparent; color: var(--rt-marino); box-shadow: inset 0 0 0 2px var(--rt-marino);
	font-size: 14px; padding: 14px 28px; white-space: nowrap;
}
.rt-btn--header:hover { background: var(--rt-marino); color: #fff; }
.rt-btn--block { width: 100%; }

/* ---------- Header ---------- */
.rt-header { position: relative; z-index: 50; background: #fff; border-bottom: 1px solid rgba(18, 26, 44, .06); }
.rt-sticky-header .rt-header { position: sticky; top: 0; }
.admin-bar.rt-sticky-header .rt-header { top: 32px; }
@media (max-width: 782px) { .admin-bar.rt-sticky-header .rt-header { top: 46px; } }
.rt-header__in {
	display: grid; align-items: center; column-gap: clamp(12px, 2vw, 32px);
	width: min(1240px, 100% - 2 * var(--rt-gutter)); margin-inline: auto; min-height: var(--rt-header-h);
}
.rt-brand { display: inline-flex; align-items: center; gap: 14px; text-decoration: none; min-width: 0; padding: 10px 0; }
.rt-brand__logo { display: block; width: auto; max-height: 44px; max-width: 180px; }
.rt-brand__name {
	color: var(--rt-titulo-sitio); font-weight: 700; font-size: 17px; line-height: 1.2;
	max-width: 7.5em; text-wrap: balance; overflow-wrap: normal; word-break: normal; hyphens: none;
}
@media (min-width: 1440px) { .rt-brand__name { max-width: none; white-space: nowrap; } }
.rt-actions { display: flex; align-items: center; gap: 12px; justify-self: end; }

/* Menu (phone layout by default; the desktop layout is added from the breakpoint up). */
.rt-menu, .rt-menu .sub-menu { list-style: none; margin: 0; padding: 0; }
.rt-menu a { color: var(--rt-marino); text-decoration: none; font-weight: 400; transition: color .15s; }
.rt-menu a:hover, .rt-menu .current-menu-item > a, .rt-menu .current-menu-ancestor > a, .rt-menu .current_page_item > a { color: var(--rt-dorado-2); }
.rt-menu > li > a { font-size: 16px; }
.rt-sub-toggle {
	display: inline-grid; place-items: center; padding: 0; border: 0; background: none; color: inherit; cursor: pointer;
	border-radius: 6px; transition: transform .2s;
}
.rt-sub-toggle .rt-icon { width: 16px; height: 16px; }
.rt-menu li.is-open > .rt-sub-toggle { transform: rotate(180deg); }

.rt-toggle {
	display: inline-grid; place-items: center; width: 48px; height: 48px; padding: 0; cursor: pointer;
	border: 1.5px solid var(--rt-dorado); border-radius: 10px; background: #fff; color: var(--rt-dorado-2);
}
.rt-toggle__close { display: none; }
.rt-header.is-open .rt-toggle__open { display: none; }
.rt-header.is-open .rt-toggle__close { display: block; }
.rt-toggle .rt-icon { width: 24px; height: 24px; }

/* The phone panel and the desktop bar are generated in inc/setup.php from the breakpoint setting. */
.rt-nav { display: none; }
@keyframes rt-drop { from { opacity: 0; transform: translateY(-8px); } }

/* ---------- Content layout ---------- */
.rt-content::after { content: ""; display: table; clear: both; }
.rt-content > * { max-width: min(var(--rt-content), 100% - 2 * var(--rt-gutter)); margin-left: auto; margin-right: auto; }
.rt-content > .alignwide { max-width: min(var(--rt-wide), 100% - 2 * var(--rt-gutter)); }
.rt-content > .alignfull { max-width: none; width: 100%; margin-left: 0; margin-right: 0; }
.rt-content > :first-child { margin-top: 0; }
.rt-content > .alignfull { margin-top: 0; margin-bottom: 0; }
.rt-content > p, .rt-content > ul, .rt-content > ol { margin-top: 0; margin-bottom: 1.4em; }
.rt-content > h1, .rt-content > h2, .rt-content > h3, .rt-content > h4, .rt-content > h5, .rt-content > h6 { margin-top: 1.4em; margin-bottom: .6em; }
.rt-page:not(.rt-page--blank) .rt-content > :last-child:not(.alignfull) { margin-bottom: clamp(40px, 6vw, 72px); }
.rt-page--narrow .rt-content > :not(.alignfull):not(.alignwide) { max-width: min(var(--rt-narrow), 100% - 2 * var(--rt-gutter)); }
.rt-page__head { width: min(var(--rt-content), 100% - 2 * var(--rt-gutter)); margin: clamp(32px, 5vw, 56px) auto clamp(20px, 3vw, 32px); }
.rt-page--narrow .rt-page__head { width: min(var(--rt-narrow), 100% - 2 * var(--rt-gutter)); }
.rt-page__title { margin: 0; font-size: clamp(32px, 4.4vw, 44px); line-height: 1.15; color: var(--rt-marino); }
.rt-content a:where(:not(.wp-element-button):not(.wp-block-button__link):not([class*="uagb"])) { text-decoration: underline; }
.rt-content img.alignleft, .rt-content .alignleft { float: left; margin: .3em 1.5em 1em 0; }
.rt-content img.alignright, .rt-content .alignright { float: right; margin: .3em 0 1em 1.5em; }
.rt-content .aligncenter { margin-left: auto; margin-right: auto; }
.rt-content table { border-collapse: collapse; width: 100%; }
.rt-content th, .rt-content td { border: 1px solid var(--rt-linea); padding: 10px 12px; text-align: left; }
.rt-content blockquote { margin-left: 0; padding-left: 1.2em; font-size: 1.1em; color: var(--rt-marino); }
.wp-caption-text, figcaption { font-size: 14px; color: #6b7180; }

/* ---------- Banner (boletines, categorías, búsqueda) ---------- */
.rt-banner {
	background: radial-gradient(90% 140% at 100% 0%, rgba(255, 192, 61, .12), transparent 55%), var(--rt-marino);
	color: rgba(255, 255, 255, .82); padding: clamp(48px, 8vw, 96px) 0 clamp(44px, 7vw, 84px);
}
.rt-banner__title {
	margin: 0; max-width: 18ch; color: #fff;
	font-family: var(--wp--preset--font-family--outfit, Outfit, sans-serif); font-weight: 500;
	font-size: clamp(34px, 5vw, 56px); line-height: 1.08; letter-spacing: -.01em;
}
.rt-banner__title::first-letter { text-transform: uppercase; }
.rt-banner__text { margin: 16px 0 0; max-width: 60ch; font-size: 18px; }
.rt-banner__search { margin-top: 24px; max-width: 520px; }

/* ---------- Cards grid ---------- */
.rt-listing { padding: clamp(32px, 5vw, 56px) 0 clamp(48px, 7vw, 88px); }
.rt-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: clamp(18px, 2.4vw, 28px); }
@media (min-width: 720px) { .rt-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1180px) { .rt-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } .rt-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.rt-card { display: flex; flex-direction: column; background: #fff; border-radius: var(--rt-radius); overflow: hidden; box-shadow: var(--rt-shadow); transition: transform .3s var(--rt-ease), box-shadow .3s; }
.rt-card:hover { transform: translateY(-3px); box-shadow: 0 1px 2px rgba(18, 26, 44, .05), 0 22px 44px -20px rgba(18, 26, 44, .4); }
.rt-card__img { display: block; aspect-ratio: 16 / 9.5; background: #e9ecf2; overflow: hidden; }
.rt-card__img img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .6s var(--rt-ease); }
.rt-card:hover .rt-card__img img { transform: scale(1.04); }
.rt-card__ph { display: grid; place-items: center; height: 100%; font-family: var(--wp--preset--font-family--outfit, Outfit, sans-serif); font-size: 64px; color: var(--rt-dorado); background: var(--rt-marino); }
.rt-card__body { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px 22px; flex: 1; }
.rt-card__meta { margin: 0; font-size: 13px; color: #7a7f8c; display: flex; flex-wrap: wrap; gap: 8px; align-items: center; }
.rt-card__cat { color: var(--rt-marino); background: #fff3d2; padding: 2px 9px; border-radius: 999px; font-weight: 600; font-size: 12px; }
.rt-card__title { margin: 0; font-size: 21px; font-weight: 600; line-height: 1.3; }
.rt-card__title a { color: var(--rt-marino); text-decoration: none; }
.rt-card__title a:hover { color: var(--rt-dorado-2); }
.rt-card__excerpt { margin: 0; font-size: 15px; line-height: 1.6; }
.rt-card__more { margin-top: auto; padding-top: 6px; display: inline-flex; align-items: center; gap: 4px; font-weight: 700; font-size: 14px; color: var(--rt-marino); text-decoration: none; }
.rt-card__more .rt-icon { width: 16px; height: 16px; color: var(--rt-dorado-2); transition: transform .25s var(--rt-ease); }
.rt-card__more:hover .rt-icon { transform: translateX(3px); }

/* Pagination */
.rt-pagination { margin-top: clamp(32px, 5vw, 48px); }
.rt-pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.rt-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 44px; height: 44px; padding: 0 12px; border-radius: 999px; background: #fff; color: var(--rt-marino); text-decoration: none; font-weight: 600; box-shadow: 0 0 0 1px var(--rt-linea); }
.rt-pagination .page-numbers.current { background: var(--rt-marino); color: #fff; box-shadow: none; }
.rt-pagination a.page-numbers:hover { box-shadow: 0 0 0 2px var(--rt-dorado); }
.rt-empty { text-align: center; padding: 40px 0; }
.rt-empty .rt-search { margin: 20px auto 0; max-width: 460px; }

/* ---------- Single post ---------- */
.rt-single-wrap { padding: clamp(28px, 5vw, 56px) 0 clamp(36px, 5vw, 56px); }
.rt-single {
	width: min(820px, 100% - 2 * var(--rt-gutter)); margin-inline: auto;
	background: #fff; border-radius: var(--rt-radius); box-shadow: var(--rt-shadow);
	padding: clamp(24px, 4vw, 48px);
}
.rt-single--comments { margin-top: 24px; }
.rt-single__meta { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0 0 12px; font-size: 14px; color: #7a7f8c; }
.rt-single__meta .rt-icon { width: 18px; height: 18px; color: var(--rt-dorado-2); }
.rt-chip { background: #fff3d2; color: var(--rt-marino); padding: 3px 10px; border-radius: 999px; font-size: 12px; font-weight: 600; text-decoration: none; }
.rt-chip:hover { background: var(--rt-dorado); color: var(--rt-marino); }
.rt-single__title { margin: 0 0 24px; font-size: clamp(28px, 3.6vw, 36px); font-weight: 600; line-height: 1.2; }
.rt-single__img { margin: 0 calc(-1 * clamp(24px, 4vw, 48px)) 28px; }
.rt-single__img img { display: block; width: 100%; max-height: 560px; object-fit: cover; }
.rt-content--single > * { max-width: 100%; }
.rt-content--single > .alignfull, .rt-content--single > .alignwide { width: auto; margin-left: calc(-1 * clamp(24px, 4vw, 48px)); margin-right: calc(-1 * clamp(24px, 4vw, 48px)); max-width: none; }
.rt-content--single > :last-child { margin-bottom: 0; }
.rt-single__tags { margin: 28px 0 0; display: flex; flex-wrap: wrap; gap: 6px; }
.rt-single__tags a { font-size: 13px; padding: 4px 12px; border-radius: 999px; background: var(--rt-gris); color: var(--rt-marino); text-decoration: none; }
.rt-postnav { margin-top: 36px; padding-top: 24px; border-top: 1px solid var(--rt-linea); }
.rt-postnav .nav-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.rt-postnav .nav-next { text-align: right; grid-column: 2; }
.rt-postnav a { display: flex; flex-direction: column; gap: 4px; text-decoration: none; }
.rt-postnav__k { font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--rt-dorado-2); }
.rt-postnav__t { color: var(--rt-marino); font-weight: 600; line-height: 1.35; }
.rt-related { padding: 8px 0 clamp(48px, 7vw, 80px); }
.rt-related__title { font-size: 24px; margin: 0 0 20px; }

/* ---------- Search form ---------- */
.rt-search { display: flex; background: #fff; border-radius: 999px; box-shadow: 0 0 0 1px var(--rt-linea); overflow: hidden; }
.rt-search input { flex: 1; min-width: 0; border: 0; padding: 14px 20px; font: inherit; font-size: 16px; color: var(--rt-marino); background: transparent; outline: 0; }
.rt-search button { border: 0; background: var(--rt-dorado); color: var(--rt-marino); width: 54px; cursor: pointer; display: grid; place-items: center; }
.rt-search button:hover { background: var(--rt-dorado-2); }
.rt-search:focus-within { box-shadow: 0 0 0 2px var(--rt-dorado-2); }

/* ---------- 404 ---------- */
.rt-404 { padding: clamp(64px, 10vw, 120px) 0; text-align: center; }
.rt-404__k { font-family: var(--wp--preset--font-family--outfit, Outfit, sans-serif); font-size: clamp(72px, 12vw, 128px); line-height: 1; margin: 0; color: var(--rt-dorado); }
.rt-404 h1 { font-size: clamp(26px, 3.4vw, 34px); margin: 12px 0; }
.rt-404 .rt-search { margin: 24px auto; max-width: 460px; }

/* ---------- Comments ---------- */
.rt-comments__list { list-style: none; padding: 0; }
.rt-comments .comment-body { padding: 16px 0; border-bottom: 1px solid var(--rt-linea); }
.rt-comments textarea, .rt-comments input[type="text"], .rt-comments input[type="email"], .rt-comments input[type="url"] { width: 100%; padding: 12px 14px; border: 1px solid #cfd4de; border-radius: 10px; font: inherit; }

/* ---------- Footer ---------- */
.rt-footer { background: #fff; border-top: 1px solid var(--rt-linea); color: var(--rt-marino); }
.rt-footer__widgets { padding: 48px 0 8px; }
.rt-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 28px; }
.rt-widget__title { font-size: 16px; margin: 0 0 10px; }
.rt-footer__bar { display: flex; align-items: center; justify-content: space-between; gap: 12px 32px; flex-wrap: wrap; padding: 26px 0; }
.rt-footer__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 18px; }
.rt-footer__menu a { color: var(--rt-marino); text-decoration: none; font-size: 14px; }
.rt-footer__menu a:hover, .rt-footer__menu .current-menu-item > a { color: var(--rt-dorado-2); }
.rt-footer__copy { margin: 0; font-size: 14px; }
.rt-top {
	position: fixed; right: 18px; bottom: 18px; z-index: 40; width: 44px; height: 44px; border-radius: 12px;
	display: grid; place-items: center; background: var(--rt-dorado); color: var(--rt-marino);
	box-shadow: 0 10px 24px -10px rgba(18, 26, 44, .5); transition: opacity .25s, transform .25s var(--rt-ease);
}
.rt-top[hidden] { display: grid; opacity: 0; pointer-events: none; transform: translateY(10px); }
.rt-top:hover { background: var(--rt-dorado-2); }
@media (max-width: 760px) {
	.rt-footer__bar { flex-direction: column; text-align: center; }
	.rt-footer__menu { justify-content: center; }
}

/* ---------- Club plugins inside regular pages ---------- */
.rt-content > .crp, .rt-content > .crtb, .rt-content > .crdr, .rt-content > .crar { max-width: none; }

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; scroll-behavior: auto !important; }
}

/* Comment form button */
.rt-comments .form-submit input[type="submit"], .rt-comments input#submit {
	font-family: inherit; font-size: 15px; font-weight: 700; text-transform: uppercase; letter-spacing: .02em;
	padding: 15px 28px; border-radius: 50px; border: 0; cursor: pointer; background: var(--rt-dorado); color: var(--rt-marino);
}
.rt-comments .form-submit input[type="submit"]:hover { background: var(--rt-dorado-2); }
.rt-comments label { display: block; font-weight: 600; color: var(--rt-marino); margin-bottom: 6px; font-size: 14px; }
.rt-comments .comment-form-cookies-consent label { display: inline; font-weight: 400; }
.rt-comments__title, .rt-comments .comment-reply-title { font-size: 20px; margin: 0 0 12px; }

/* Phones: lighter headings and room for the back-to-top button */
@media (max-width: 760px) {
	h1 { font-size: 32px; }
	h2 { font-size: 28px; }
	h3 { font-size: 20px; }
	.rt-footer__bar { padding-bottom: 76px; }
	.rt-postnav .nav-links { grid-template-columns: minmax(0, 1fr); }
	.rt-postnav .nav-next { grid-column: 1; text-align: left; }
}
