/*
Theme Name: Cine y Literatura
Theme URI: https://www.cineyliteratura.cl/
Author: Hector Abarca / Cine y Literatura
Author URI: https://www.cineyliteratura.cl/
Description: Tema standalone hecho a medida para cineyliteratura.cl. Consolida y moderniza los anteriores mh-newsdesk-lite (padre) y rennews-child (hijo) en un solo paquete: paleta, tipografía y layout idénticos al sitio actual, pero ~290 KB más liviano por carga (sin Font Awesome, sin polyfills IE9, sin SlickNav jQuery, reset moderno, variables CSS). Mantiene image-sizes, sidebar IDs, classes CSS y hooks que widgets/plugins existentes esperan.
Version: 1.0.0
Requires at least: 6.0
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cineyliteratura
Domain Path: /languages/
Tags: two-columns, right-sidebar, custom-background, custom-colors, custom-header, custom-menu, featured-images, theme-options, threaded-comments, full-width-template, translation-ready, blog, news
*/

/* ==========================================================================
   1. RESET MODERNO (basado en Andy Bell — modern-css-reset)
   Reemplaza el reset Eric Meyer 2010 (288 reglas) por 30 líneas que mantienen
   defaults útiles del browser y eliminan solo lo problemático.
   ========================================================================== */

*, *::before, *::after { box-sizing: border-box; }

* { margin: 0; }

html:focus-within { scroll-behavior: smooth; }

body {
  min-height: 100vh;
  /* `text-rendering: auto` (default del browser) — `optimizeSpeed` del reset
     moderno produce texto un 2-3 % más ancho y rompe el menú principal. */
  line-height: 1.6;
  word-wrap: break-word;
}

img, picture, svg, video, canvas {
  max-width: 100%;
  height: auto;
  display: block;
  vertical-align: middle;
}

input, button, textarea, select { font: inherit; }

p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }

ul[class], ol[class] { list-style: none; padding: 0; }

a { text-decoration: none; color: inherit; }

article, aside, details, figcaption, figure, footer, header, main, nav, section { display: block; }

blockquote, q { quotes: none; }
blockquote::before, blockquote::after, q::before, q::after { content: ''; }

table { border-collapse: collapse; border-spacing: 0; }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

/* ==========================================================================
   2. VARIABLES (paleta y tipografía del sitio)
   Extraídas del style.css del padre + overrides del hijo.
   ========================================================================== */

:root {
  /* Backgrounds */
  --cyl-bg-page: #efefef;
  --cyl-bg-content: #fff;
  --cyl-bg-section: #efefef;
  --cyl-bg-footer: #333;
  --cyl-bg-nav: #1f1e1e;
  --cyl-bg-nav-border: #424242;
  --cyl-bg-nav-hover: #005a8c;
  --cyl-bg-nav-submenu: #2a2a2a;
  --cyl-bg-widget-title: #ccdee8;
  --cyl-bg-widget-title-accent: #005a8c;
  --cyl-bg-code: #f7f7f7;

  /* Texto */
  --cyl-text: #1f1e1e;
  --cyl-text-muted: #9a9b97;
  --cyl-text-caption: #454545;
  --cyl-text-on-dark: #fff;

  /* Marca — color del logo "CINE Y LITERATURA" en el sitio en producción.
     El CSS del padre dice #005a8c (azul) pero algún override (no localizado
     en padre/hijo/Customizer) renderiza #e41609 en el sitio en vivo.
     Confirmado por el usuario el 2026-04-28. */
  --cyl-brand: #e41609;
  --cyl-button-bg: #FE0404;
  --cyl-link: #005a8c;
  --cyl-link-hover: #1f1e1e;
  --cyl-required: #be2844;

  /* Borders */
  --cyl-border-light: #ebebeb;
  --cyl-border-medium: #cdcdcd;
  --cyl-border-dotted: #dcdcdc;
  --cyl-border-input: #d7d8d8;

  /* Tipografía */
  --cyl-font-serif: "PT Serif", Georgia, "Times New Roman", serif;
  --cyl-font-sans: "Open Sans", "Oswald", Helvetica, Arial, sans-serif;
  --cyl-font-display: "Oswald", Helvetica, Arial, sans-serif;
  --cyl-font-mono: "Consolas", "Courier New", Courier, monospace;

  /* Layout */
  --cyl-container-max: 1180px;
  --cyl-container-pct: 90%;
  --cyl-gutter: 2.5%;
  --cyl-content-pct: 65.83%;
  --cyl-sidebar-pct: 31.66%;

  /* Transiciones */
  --cyl-transition: 0.2s ease;
}

/* ==========================================================================
   3. ESTRUCTURA
   ========================================================================== */

html { font-size: 100%; }

body {
  font-family: var(--cyl-font-serif);
  font-size: 1rem;
  color: var(--cyl-text);
  background: var(--cyl-bg-page);
}

body.custom-background { background-size: cover; }

#mh-wrapper {
  /* Override del reset moderno (border-box global): el padre usa content-box,
     donde el padding lateral se SUMA al width. Sin esto, el menú principal
     pierde 40px de espacio y "COMITÉ EDITORIAL" baja a una segunda línea. */
  box-sizing: content-box;
  width: var(--cyl-container-pct);
  max-width: var(--cyl-container-max);
  margin: 0 auto;
  padding: 0 20px 20px;
  overflow: hidden;
  background: var(--cyl-bg-content);
}

.wrapper-inner {
  width: var(--cyl-container-pct);
  max-width: var(--cyl-container-max);
  margin: 0 auto;
}

#main-content { display: block; width: var(--cyl-content-pct); overflow: hidden; }
.mh-sidebar, .home-sidebar { display: block; float: left; width: var(--cyl-sidebar-pct); }
.mh-right-sb #main-content { float: left; margin-right: var(--cyl-gutter); }
.mh-left-sb #main-content { float: right; margin-left: var(--cyl-gutter); }

.mh-section { clear: both; padding: 0; margin: 0; }
.mh-separator {
  margin-bottom: 20px;
  padding-bottom: 10px;
  border: 0;
  border-bottom: 1px dotted var(--cyl-border-medium);
}

.clear { clear: both; }
.clearfix, .mh-clearfix { display: block; }
.clearfix::after, .mh-clearfix::after {
  content: "";
  display: block;
  clear: both;
}

/* ==========================================================================
   4. TIPOGRAFÍA
   ========================================================================== */

h1 { font-size: 2.25rem; }
h2 { font-size: 1.75rem; }
h3 { font-size: 1.5rem; }
h4 { font-size: 1.25rem; }
h5 { font-size: 1rem; }
h6 { font-size: 0.875rem; }

h1, h2, h3, h4, h5, h6,
.mh-footer, .widget-list li, .cat-item, .page_item, .menu-item,
.button, .submit, .commentlist .vcard, .pagination {
  font-family: var(--cyl-font-display);
}

h1, h2, h3, h4, h5, h6 {
  line-height: 1.3;
  font-weight: 400;
  color: var(--cyl-text);
}

b, strong { font-weight: 700; }
i, em { font-style: italic; }

small { font-size: 0.75rem; }
big { font-size: 1.25rem; }

pre, code {
  font-family: var(--cyl-font-mono);
  background: var(--cyl-bg-code);
  border: 1px solid var(--cyl-border-light);
}
pre {
  padding: 1.25rem;
  margin-bottom: 1.875rem;
  white-space: pre-wrap;
}

kbd {
  padding: 0 0.375rem;
  background-color: var(--cyl-bg-code);
  border: 1px solid #aaa;
  border-radius: 0.1875em;
  box-shadow: 0 0.0625em 0 rgba(0, 0, 0, 0.2), 0 0 0 0.125em white inset;
  text-shadow: 0 0.0625em 0 #fff;
}

blockquote {
  font-size: 0.9375rem;
  line-height: 1.6;
  color: var(--cyl-link);
  margin: 10px 20px 20px 20px;
  padding: 1.25rem 1.25rem 0 1.25rem;
  border-left: 5px solid var(--cyl-link);
  display: inline-block;
}

sup { vertical-align: super; font-size: 0.625rem; }
sub { vertical-align: sub; font-size: 0.625rem; }
abbr, acronym { border-bottom: 1px dashed; cursor: help; }
cite { color: var(--cyl-text-muted); }
address { font-family: "Courier new"; line-height: 1.5; margin-bottom: 1.25rem; }

a {
  color: var(--cyl-text);
  transition: color var(--cyl-transition);
}
a:hover { color: var(--cyl-link); }

/* ==========================================================================
   5. ACCESIBILIDAD
   ========================================================================== */

.screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}

/* ==========================================================================
   6. COLUMNAS (homepage custom)
   ========================================================================== */

.mh-col { display: block; float: left; margin-left: var(--cyl-gutter); }
.mh-col:first-child { margin-left: 0; }
.mh-group::before, .mh-group::after { content: ""; display: table; }
.mh-group::after { clear: both; }
.mh-1-2 { width: 48.75%; }
.mh-2-3 { width: 65.83%; }
.mh-1-3 { width: 31.66%; }
.mh-3-4 { width: 74.375%; }
.mh-1-4 { width: 23.125%; }
.home-2, .home-3 { width: 48.07%; }
.home-3 { margin-left: 3.86%; }

/* ==========================================================================
   7. HEADER + LOGO
   ========================================================================== */

.mh-header { margin-bottom: 30px; }
.header-wrap { padding: 20px 0; }
.logo-wrap { text-align: center; }
/* Selector más específico (`h1.logo-title`) para vencer cualquier regla
   `h1 { color: ... }` posterior. !important final por si WP core o un plugin
   inyectan un `<style id="custom-header-styles">` con .site-title-style. */
h1.logo-title,
.logo-wrap h1.logo-title {
  font-size: 2.625rem;
  color: var(--cyl-brand) !important;
  font-weight: 700;
  text-transform: uppercase;
  text-align: center;
}
.logo-tagline {
  font-size: 1rem;
  text-transform: uppercase;
  text-align: center;
}

/* ==========================================================================
   8. NAVEGACIÓN PRINCIPAL (desktop) + MOBILE
   ========================================================================== */

.main-nav {
  background: var(--cyl-bg-nav);
  text-transform: uppercase;
}
.main-nav li {
  float: left;
  position: relative;
  border-left: 1px solid var(--cyl-bg-nav-border);
  transition: background var(--cyl-transition);
}
/* El child rennews-child sobrescribía Oswald del padre con Open Sans
   sobre el <a> interior — ése es el texto que se ve en el menú.
   Usamos `'Open Sans'` puro (sin la cadena de fallbacks de --cyl-font-sans)
   para reproducir EXACTAMENTE el ancho del original. */
.main-nav li a {
  font-family: 'Open Sans';
}
.main-nav li:first-child { border: none; }
.main-nav li:hover { background: var(--cyl-bg-nav-hover); }
.main-nav li a {
  display: block;
  color: var(--cyl-text-on-dark);
  padding: 0.625rem 0.9375rem;
}
.main-nav ul li:hover > ul {
  display: block;
  background: var(--cyl-bg-nav-submenu);
  z-index: 9999;
}
.main-nav ul ul {
  display: none;
  position: absolute;
  font-size: 0.75rem;
}
.main-nav ul ul li { width: 13em; border: none; }
.main-nav ul ul ul { left: 100%; top: 0; }

/* Mobile menu (vanilla, reemplaza SlickNav) */
.cyl-menu-toggle {
  display: none;
  background: var(--cyl-bg-nav-hover);
  color: var(--cyl-text-on-dark);
  border: 0;
  padding: 0.75rem 1.25rem;
  width: 100%;
  text-align: left;
  cursor: pointer;
  font-size: 1rem;
  font-weight: 700;
  text-transform: uppercase;
  font-family: var(--cyl-font-display);
}
.cyl-menu-toggle::after {
  content: "≡";
  float: right;
  font-size: 1.5rem;
  line-height: 1;
}
.cyl-menu-toggle[aria-expanded="true"]::after { content: "×"; }

/* ==========================================================================
   9. POSTS / PAGES (single + page content)
   ========================================================================== */

.entry-title, .page-title {
  font-size: 1.5rem;
  line-height: 1.75rem;
  /* Override del child rennews-child: Open Sans (no Oswald). */
  font-family: 'Open Sans';
  font-weight: 600;
  margin-bottom: 20px;
  text-transform: none;
}
.entry-content { font-size: 1.063rem; line-height: 1.4; }
.entry-content h1,
.entry-content h2,
.entry-content h3,
.entry-content h4,
.entry-content h5,
.entry-content h6,
.entry-content p,
.entry-content blockquote,
.entry-content table,
.entry-content .mh-video-container { margin-bottom: 1.25rem; }
.entry-content a {
  font-weight: 600;
  color: var(--cyl-link);
}
.entry-content a:hover { text-decoration: underline; }
.entry-thumbnail { margin-bottom: 20px; }

.entry-meta {
  font-size: 0.75rem;
  margin-bottom: 5px;
  text-transform: uppercase;
}
.entry-meta a:hover { text-decoration: underline; }
.entry-meta .entry-meta-author,
.entry-meta a {
  color: var(--cyl-link);
  font-weight: 700;
}
.entry-meta-cats, .entry-meta-author { margin-right: 10px; }

.entry-tags {
  display: block;
  overflow: hidden;
  font-size: 0.9375rem;
}
.entry-tags span {
  font-weight: 900;
  margin-right: 15px;
}
.entry-tags a {
  display: inline-block;
  margin: 0 15px 5px 0;
  text-transform: capitalize;
}
.entry-tags a:hover {
  text-decoration: underline;
  color: var(--cyl-text);
}

.no-content-found { margin-bottom: 30px; }

/* ==========================================================================
   10. LOOP / ARCHIVES / SEARCH
   ========================================================================== */

.content-lead-title {
  font-size: 22px;
  line-height: 26px;
  margin-bottom: 10px;
  text-transform: none;
}
.content-list-title {
  font-size: 1.5rem;
  line-height: 1.3;
  margin-bottom: 10px;
  text-transform: none;
}
.content-thumb { margin-bottom: 5px; }
.content-list { margin-top: 25px; }
.archive-list .content-list:first-child { margin-top: 10px; }
.content-list-thumb {
  float: left;
  max-width: 260px;
  margin: 0 20px 10px 0;
}
.content-list-excerpt { overflow: hidden; }

.cp-title-xl { font-size: 22px; line-height: 26px; }
.cp-title-small { font-size: 1rem; line-height: 1.3; }
.content-grid-title { line-height: 1.3; }

@media screen and (max-width: 700px) {
  .content-lead-title { font-size: 1.375rem; }
}

/* ==========================================================================
   11. AUTHOR BOX
   ========================================================================== */

.author-box {
  padding: 20px;
  margin-bottom: 1.875rem;
  background: var(--cyl-bg-section);
}
.author-box-avatar {
  float: left;
  width: 100px;
  height: 100px;
  margin-right: 20px;
}
.author-box-name {
  font-size: 1.125rem;
  margin-bottom: 10px;
}
.author-box-desc {
  font-size: 0.9375rem;
  overflow: hidden;
}

/* ==========================================================================
   12. LISTAS
   ========================================================================== */

.entry-content ul, .commentlist ul { list-style: square; }
.entry-content ol, .commentlist ol { list-style: decimal; }
.entry-content ul,
.commentlist ul,
.entry-content ol,
.commentlist ol { margin: 0 0 1.875rem 2.5rem; }
.entry-content ul ul,
.commentlist ul ul,
.entry-content ol ol,
.commentlist ol ol { margin: 0 0 0 2.5rem; }

dl { margin: 0 0 1.875rem 2.5rem; }
dt, dd { display: list-item; }
dt { list-style-type: square; font-weight: bold; }
dd { list-style-type: circle; margin-left: 1.875rem; }
select { max-width: 100%; }

/* ==========================================================================
   13. COMENTARIOS
   ========================================================================== */

.comment-section-title {
  display: block;
  font-size: 0.875rem;
  font-weight: 400;
  color: var(--cyl-text-on-dark);
  background: var(--cyl-bg-widget-title);
  padding: 0;
  margin-bottom: 1.25rem;
  text-transform: uppercase;
  overflow: hidden;
}
.comment-section-title span {
  padding: 20px;
  background: var(--cyl-bg-widget-title-accent);
}
.comment-section-title .comment-count { float: left; color: var(--cyl-text-on-dark); }
.comment-section-title .comment-count-more {
  float: left;
  color: var(--cyl-text);
  background: transparent;
}
.commentlist {
  padding: 20px 20px 5px 20px;
  margin-bottom: 20px;
  list-style: none;
  background: var(--cyl-bg-section);
}
.commentlist .depth-1 {
  padding: 20px 20px 10px 20px;
  margin-bottom: 20px;
  border-bottom: 5px solid var(--cyl-bg-widget-title);
  background: var(--cyl-bg-content);
}
.commentlist .children { list-style: none; margin: 0 0 10px 0; }
.commentlist .children li { padding: 0 20px; background: #fafafa; margin-top: 20px; }
.commentlist .children .depth-2 { padding: 20px; }
.commentlist .comment { padding-top: 1.25rem; }
.commentlist .comment .vcard { position: relative; margin-bottom: 1.25rem; }
.commentlist .comment .avatar { width: 70px; height: 70px; float: left; margin-right: 20px; }
.commentlist h1, .commentlist h2, .commentlist h3,
.commentlist h4, .commentlist h5, .commentlist h6 { margin-bottom: 1.25rem; }
.comment-text p, .comment-text blockquote { margin-bottom: 1.25rem; }
.comment-text blockquote p:last-child { margin: 0; }
.commentlist .bypostauthor .avatar { border: 5px solid var(--cyl-bg-widget-title); }
.comment-author { font-weight: 700; }
.comment-info {
  color: var(--cyl-link);
  margin: 1.25rem 0;
}
.comment-reply .comment-reply-link,
.comment-reply .comment-edit-link {
  font-size: 0.8125rem;
  background: #ccc;
  color: var(--cyl-text-on-dark);
  padding: 5px 10px;
}
.pinglist {
  background: var(--cyl-bg-section);
  padding: 20px;
  margin-bottom: 20px;
  list-style: none;
}
.pinglist .pings:first-child { border-top: 1px dotted var(--cyl-border-medium); }
.pinglist .pings {
  line-height: 2.5;
  padding: 0.3125rem 0;
  border-bottom: 1px dotted var(--cyl-border-medium);
}
.pinglist .cyl-icon-link {
  width: 1em;
  height: 1em;
  margin-right: 0.625rem;
  vertical-align: middle;
}
.no-comments {
  padding: 0.625rem;
  margin-bottom: 1.25rem;
  background: var(--cyl-bg-section);
}

/* ==========================================================================
   14. FORMULARIO COMENTARIO
   ========================================================================== */

#respond {
  padding: 1.25rem 1.25rem 0.625rem;
  margin-bottom: 1.875rem;
  background: var(--cyl-bg-section);
}
#respond h3 { margin-bottom: 1.25rem; }
#commentform p { margin-bottom: 0.625rem; }
#commentform .submit {
  font-size: 0.875rem;
  text-transform: uppercase;
}
#cancel-comment-reply-link {
  margin-left: 20px;
  font-size: 0.75rem;
  font-weight: 400;
  background: #ccc;
  padding: 0.3125rem;
  color: var(--cyl-text-on-dark);
}
#cancel-comment-reply-link:hover { background: var(--cyl-link); }
.required { color: var(--cyl-required); }

/* ==========================================================================
   15. FORMULARIOS
   ========================================================================== */

input {
  font-size: 0.75rem;
  padding: 0.3125rem;
  border: 1px solid var(--cyl-border-input);
  transition: border var(--cyl-transition);
}
input[type=text],
input[type=email],
input[type=tel],
input[type=url] { width: 60%; }
input[type=text]:hover,
input[type=email]:hover,
input[type=tel]:hover,
input[type=url]:hover,
textarea:hover { border: 1px solid var(--cyl-link); }
input[type=submit] {
  color: var(--cyl-text-on-dark);
  padding: 14px;
  cursor: pointer;
  background: var(--cyl-link);
  display: inline-block;
  border: 0;
  -webkit-appearance: none;
  border-radius: 0;
}
input[type=submit]:hover {
  background: var(--cyl-text);
  color: var(--cyl-text-on-dark);
  border: 0;
  padding: 14px;
}
textarea {
  width: 96%;
  line-height: 1.5;
  padding: 0.3125rem;
  border: 1px solid var(--cyl-border-input);
}

/* ==========================================================================
   16. PAGINACIÓN
   ========================================================================== */

.pagination { margin-bottom: 20px; overflow: hidden; }
.pagination .page-numbers {
  display: inline-block;
  padding: 10px 20px;
  background: var(--cyl-bg-section);
}
.pagination .current {
  color: var(--cyl-text-on-dark);
  background: var(--cyl-link);
}
.pagination a.page-numbers:hover, .dots:hover { background: var(--cyl-bg-widget-title); }
.pagination .pagelink {
  display: inline-block;
  color: var(--cyl-text-on-dark);
  padding: 10px 20px;
  background: var(--cyl-link);
}
.pagination a .pagelink {
  color: #000;
  font-weight: 400;
  background: var(--cyl-bg-section);
}
.pagination a:hover .pagelink {
  color: var(--cyl-link);
  background: var(--cyl-bg-widget-title);
}
.post-nav-wrap { text-align: center; margin: 20px auto 40px; }
.post-nav-wrap li {
  display: inline-block;
  font-weight: 900;
  margin: 0 20px;
}
.post-nav-wrap li .cyl-icon {
  width: 1em;
  height: 1em;
  margin: 0 10px;
  vertical-align: middle;
}

/* ==========================================================================
   17. IMÁGENES / VIDEO
   ========================================================================== */

img { vertical-align: bottom; }
iframe, embed, object, video { max-width: 100%; }
.mh-video-container {
  position: relative;
  padding-bottom: 56.25%;
  padding-top: 30px;
  height: 0;
  overflow: hidden;
}
.mh-video-container iframe,
.mh-video-container object,
.mh-video-container embed {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border: 0;
}
.alignnone { display: block; margin: 1.25rem 0; }
.aligncenter { display: block; margin: 1.25rem auto; }
.alignleft { display: inline; float: left; margin: 0.3125rem 1.25rem 1.25rem 0; }
.alignright { display: inline; float: right; margin: 0.3125rem 0 1.25rem 1.25rem; }
.wp-caption { max-width: 100%; }
.wp-caption-text {
  font-size: 0.875rem;
  color: var(--cyl-text-caption);
  line-height: 1.4;
  margin: 0.3125rem 0 1.25rem;
  display: block;
}
.alignnone .wp-caption-text,
.aligncenter .wp-caption-text,
.alignleft .wp-caption-text,
.alignright .wp-caption-text { margin-bottom: 0; }

/* ==========================================================================
   18. GALERÍA
   ========================================================================== */

.gallery { margin-bottom: 20px; }
.gallery-item {
  float: left;
  margin: 0 4px 4px 0;
  overflow: hidden;
  position: relative;
}
.gallery-columns-1 .gallery-item { max-width: 100%; }
.gallery-columns-2 .gallery-item { max-width: calc(50% - 4px); }
.gallery-columns-3 .gallery-item { max-width: calc(33.3% - 4px); }
.gallery-columns-4 .gallery-item { max-width: calc(25% - 4px); }
.gallery-columns-5 .gallery-item { max-width: calc(20% - 4px); }
.gallery-columns-6 .gallery-item { max-width: calc(16.7% - 4px); }
.gallery-columns-7 .gallery-item { max-width: calc(14.28% - 4px); }
.gallery-columns-8 .gallery-item { max-width: calc(12.5% - 4px); }
.gallery-columns-9 .gallery-item { max-width: calc(11.1% - 4px); }

.gallery-columns-1 .gallery-item:nth-of-type(1n),
.gallery-columns-2 .gallery-item:nth-of-type(2n),
.gallery-columns-3 .gallery-item:nth-of-type(3n),
.gallery-columns-4 .gallery-item:nth-of-type(4n),
.gallery-columns-5 .gallery-item:nth-of-type(5n),
.gallery-columns-6 .gallery-item:nth-of-type(6n),
.gallery-columns-7 .gallery-item:nth-of-type(7n),
.gallery-columns-8 .gallery-item:nth-of-type(8n),
.gallery-columns-9 .gallery-item:nth-of-type(9n) { margin-right: 0; }

.gallery-caption {
  background-color: rgba(0, 0, 0, 0.7);
  box-sizing: border-box;
  color: var(--cyl-text-on-dark);
  font-size: 0.75rem;
  line-height: 1.5;
  margin: 0;
  max-height: 50%;
  opacity: 0;
  padding: 6px 8px;
  position: absolute;
  bottom: 0;
  left: 0;
  text-align: left;
  width: 100%;
}
.gallery-item:hover .gallery-caption { opacity: 1; }
.gallery-columns-7 .gallery-caption,
.gallery-columns-8 .gallery-caption,
.gallery-columns-9 .gallery-caption { display: none; }

/* ==========================================================================
   19. TABLAS
   ========================================================================== */

table { width: 100%; }
table th {
  color: var(--cyl-text-on-dark);
  background: var(--cyl-link);
  padding: 0.625rem;
}
table tr:nth-child(odd) { background-color: #eae9e8; }
table tr:nth-child(even) { background-color: var(--cyl-bg-content); }
table td {
  font-size: 0.75rem;
  border: 1px solid var(--cyl-border-light);
  border-top: 0;
  text-align: center;
  vertical-align: middle;
  padding: 0.625rem;
}

/* ==========================================================================
   20. BUSCADOR
   ========================================================================== */

.search-form { float: right; }
.entry-content .search-form { float: left; }
.search-form input {
  min-width: 200px;
  font-size: 11px;
  line-height: 1;
  color: var(--cyl-text);
  text-transform: none;
  transition: min-width var(--cyl-transition);
}
.search-form input:hover { min-width: 240px; }
.search-form .search-submit { display: none; }
.search-form .search-field {
  background: var(--cyl-bg-content);
  border: 1px solid var(--cyl-border-medium);
  cursor: pointer;
  margin: 0;
  padding: 10px;
  position: relative;
  -webkit-appearance: none;
  border-radius: 0;
}
.search-form .search-field:active,
.search-form .search-field:focus { cursor: text; }
.sb-widget .search-form {
  margin: 0 auto;
  padding: 5%;
  background: var(--cyl-bg-section);
  width: 90%;
}
.sb-widget .search-form .search-field {
  max-width: none;
  width: 92%;
}

/* ==========================================================================
   21. CONTACT FORM 7
   ========================================================================== */

.wpcf7-form {
  font-size: 0.875rem;
  padding: 1.25rem;
  background: var(--cyl-bg-section);
}
.wpcf7-form input, .wpcf7-form textarea { font-size: 0.875rem; }
.wpcf7-form input[type="submit"] { min-width: 100px; }
.wpcf7-form p { margin-bottom: 0.625rem; }
.wpcf7-response-output { background: var(--cyl-bg-content); }

/* ==========================================================================
   22. BOTONES (Read More)
   ========================================================================== */

.button { display: block; }
.button span {
  font-size: 0.875rem;
  color: var(--cyl-text-on-dark);
  background: var(--cyl-button-bg);
  padding: 15px;
  margin: 15px 0 10px 0;
  text-transform: uppercase;
  display: inline-block;
  /* Override del child: Open Sans en `.button span`. */
  font-family: 'Open Sans';
  transition: background var(--cyl-transition);
}
.button span:hover { background: var(--cyl-text); }

/* ==========================================================================
   23. FOOTER
   ========================================================================== */

.mh-footer {
  font-size: 0.75rem;
  color: var(--cyl-text-on-dark);
  padding: 0.625rem 0;
  background: var(--cyl-bg-footer);
  text-transform: uppercase;
  overflow: hidden;
  font-family: var(--cyl-font-display);
}
.mh-footer a { color: var(--cyl-text-on-dark); }
.mh-footer a:hover { text-decoration: underline; }

/* ==========================================================================
   24. SIDEBARS / WIDGETS
   ========================================================================== */

.sb-widget {
  margin-bottom: 1.875rem;
  overflow: hidden;
}

.widget-title {
  font-size: 20px;
  font-weight: 400;
  color: #040404;
  background: var(--cyl-bg-widget-title);
  padding: 8px 0;
  margin-bottom: 20px;
  text-align: center;
  text-transform: uppercase;
  overflow: hidden;
  font-family: var(--cyl-font-display);
}
.widget-title a, .widget-title a:hover { color: #040404; }
.widget-title span {
  padding: 8px 0;
  background: transparent;
  text-align: center;
  color: #040404;
  font-family: var(--cyl-font-display);
  font-size: 20px;
}
.widget-title a:hover { display: none; }

/* `.widget-list li` lo cubre la regla compuesta de h1-h6+.menu-item (Oswald),
   pero el child rennews-child sobrescribe específicamente `.widget-list > li`
   con Open Sans — replica fiel del comportamiento previo. */
.widget-list li {
  list-style-type: none;
  display: block;
  font-style: normal;
  line-height: 1.4;
}
.widget-list > li {
  font-family: 'Open Sans';
  font-weight: 600;
}
.widget-list > li {
  padding: 10px 0;
  border-bottom: 1px dotted var(--cyl-border-dotted);
  transition: padding-left var(--cyl-transition), background var(--cyl-transition);
}
.widget-list li:hover {
  background: #fdfdfd;
  padding-left: 10px;
}
.widget-list .children li {
  margin-top: 10px;
  padding-top: 10px;
  border-top: 1px dotted var(--cyl-border-dotted);
}

/* ==========================================================================
   25. WIDGET CUSTOM (Recent Posts)
   ========================================================================== */

.cyl-recent-posts.widget-list {
  /* Mismo estilo que widget-list base */
}

/* ==========================================================================
   26. WP CORE WIDGETS
   ========================================================================== */

.sb-widget ul > .cat-item,
.sb-widget ul > .menu-item,
.sb-widget ul > .page_item {
  padding: 10px 0;
  border-bottom: 1px dotted var(--cyl-border-dotted);
  transition: padding-left var(--cyl-transition), background var(--cyl-transition);
}
.sb-widget ul .cat-item:hover,
.sb-widget ul .menu-item:hover,
.sb-widget ul .page_item:hover {
  background: #fdfdfd;
  padding-left: 10px;
}
.sb-widget ul .children .cat-item,
.sb-widget ul .sub-menu .menu-item,
.sb-widget ul .children .page_item {
  margin-top: 10px;
  padding-top: 10px;
  padding-bottom: 0;
  border-top: 1px dotted var(--cyl-border-dotted);
  border-bottom: none;
}

#wp-calendar caption {
  text-align: left;
  padding: 0.625rem;
  background: var(--cyl-bg-code);
}
#wp-calendar th, #wp-calendar td {
  padding: 0.3125rem 0.625rem;
  text-align: center;
}
#wp-calendar th { font-weight: 300; }
#wp-calendar #prev { text-align: left; }

/* ==========================================================================
   27. WP TEXT WIDGET
   ========================================================================== */

.textwidget p { margin-top: 20px; }
.textwidget p:first-child { margin-top: 0; }
.textwidget ul { list-style: square; }
.textwidget ol { list-style: decimal; }
.textwidget ul, .textwidget ol { margin: 0 0 20px 15px; }
.textwidget ul ul, .textwidget ol ol { margin: 0 0 0 15px; }

/* ==========================================================================
   28. ANUNCIOS
   ========================================================================== */

.ad-spot, .mh-info-spot {
  text-align: center;
  padding: 19px;
  background: var(--cyl-bg-section);
}

/* ==========================================================================
   29. GUTENBERG / BLOQUES CORE
   ========================================================================== */

.wp-block-image { display: block; margin: 1.25rem 0; }
.wp-block-image .aligncenter { text-align: center; }
.wp-block-image figcaption,
.wp-block-audio figcaption {
  color: var(--cyl-text-caption);
  margin: 0;
  display: block;
  font-size: 0.875rem;
  line-height: 1.4;
  margin-top: 5px;
}
.wp-block-audio audio { width: 100%; }
.wp-block-gallery,
.entry-content .wp-block-gallery {
  display: flex;
  flex-wrap: wrap;
  margin: 0 -8px 20px;
  list-style-type: none;
}

/* Soporte align-wide y full-width para Gutenberg */
.alignwide {
  margin-left: calc(50% - 50vw + (var(--cyl-container-max) / 2));
  margin-right: calc(50% - 50vw + (var(--cyl-container-max) / 2));
  max-width: calc(var(--cyl-container-max) - 40px);
  width: auto;
}
.alignfull {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  max-width: 100vw;
  width: auto;
}

/* ==========================================================================
   30. SOCIAL SHARE (AddToAny — nivelar estilo)
   ========================================================================== */

.a2a_kit {
  margin: 20px 0;
  text-align: center;
}
.a2a_title {
  display: block;
  font-size: 1rem;
  font-weight: 700;
  margin-bottom: 10px;
  font-family: var(--cyl-font-sans);
  text-transform: uppercase;
}

/* ==========================================================================
   31. RELATED POSTS (Contextual Related Posts — nivelar estilo)
   ========================================================================== */

.crp_related h3 {
  font-size: 1.5rem;
  font-family: var(--cyl-font-sans);
  margin: 30px 0 20px;
  color: var(--cyl-text);
  text-transform: none;
}

/* ==========================================================================
   32. MEDIA QUERIES
   ========================================================================== */

@media only screen and (max-width: 980px) {
  #mh-wrapper, .wrapper-inner { max-width: 777px; }
  .logo-wrap { text-align: center; }
  .mh-right-sb #main-content,
  .mh-left-sb #main-content,
  .mh-col { margin: 0; }
  #main-content,
  .mh-sidebar,
  .home-sidebar,
  .mh-1-2,
  .mh-2-3,
  .mh-1-3,
  .mh-3-4,
  .mh-1-4 { width: 100%; float: none; }
  .home-2, .home-3 { width: 48.07%; }
  .home-3 { margin-left: 3.86%; }
  .search-form input:hover { min-width: 200px; }

  /* Mobile menu activo */
  .main-nav > div > ul,
  .main-nav > ul { display: none; }
  .main-nav.is-open > div > ul,
  .main-nav.is-open > ul { display: block; }
  .main-nav.is-open li {
    float: none;
    border: none;
    border-bottom: 1px solid var(--cyl-bg-nav-border);
  }
  .main-nav.is-open ul ul {
    display: block;
    position: static;
    background: var(--cyl-bg-nav-submenu);
  }
  .cyl-menu-toggle { display: block; }
}

@media only screen and (max-width: 767px) {
  .hidden-sm { display: none; }
  .search-form {
    float: none;
    margin: 0 auto;
    text-align: center;
  }
  .search-form input { width: 90%; max-width: 300px; }
  .home-2, .home-3 { width: 100%; margin: 0; }
  .content-list-separator { padding: 0; }
  .content-list-thumb {
    float: none;
    width: 100%;
    max-width: 100%;
    text-align: center;
    background: var(--cyl-bg-section);
  }
  .content-list-thumb img { max-width: 180px; }
  .content-list-excerpt,
  .content-list-header .entry-meta-date { display: none; }
  .comment-section-title .comment-count-more { display: none; }
  .commentlist ul,
  .commentlist ol,
  dl { margin: 0 0 1.875rem 20px; }
  .commentlist ul ul, .commentlist ol ol { margin: 0; }
  .commentlist .children li,
  .commentlist .children .depth-2 {
    padding: 0;
    background: var(--cyl-bg-content);
  }
  .copyright-wrap { float: none; width: 100%; }
  .copyright { text-align: center; }
}

@media only screen and (max-width: 580px) {
  #mh-wrapper, .wrapper-inner { width: 85%; }
  .logo-title { font-size: 2rem; }
  .author-box { text-align: center; }
  .author-box-avatar {
    float: none;
    width: 100%;
    margin: 0 0 20px;
  }
  .commentlist .comment .avatar {
    float: none;
    display: block;
    margin: 0 0 10px;
  }
  .commentlist .comment .vcard { margin-bottom: 10px; }
}

@media only screen and (max-width: 420px) {
  #mh-wrapper, .wrapper-inner { min-width: 160px; }
  .logo-title { font-size: 1.75rem; }
  .logo-tagline {
    font-size: 0.75rem;
    margin-bottom: 10px;
  }
  .sb-widget .search-form .search-field { width: 86%; }
}

/* Powered by */
.mh-footer .powered-by {
  font-size: 0.65rem;
  margin: 0.25rem 0 0;
  opacity: 0.6;
  letter-spacing: 0.05em;
}
.mh-footer .powered-by a { text-decoration: none; }
.mh-footer .powered-by a:hover { text-decoration: underline; opacity: 1; }
