:root {
  --rl-background: #090909;
  --rl-surface: #171717;
  --rl-silver: #b8b8b8;
  --rl-gold: #d4af37;
  --rl-gold-dark: #8d6b19;
  --rl-accent: #e74833;
  --rl-text: #f5f2f5;
  --rl-heading-color: #f5f2f5;
  --rl-link-color: #d4af37;
  --rl-link-hover-color: #e74833;
  --rl-nav-bg: #0d0d0d;
  --rl-nav-text: #f5f2f5;
  --rl-nav-text-hover: #d4af37;
  --rl-brand-title-color: #f5f2f5;
  --rl-brand-subtitle-color: #b8b8b8;
  --rl-menu-font-size: 12px;
  --rl-menu-gap: 14px;
  --rl-header-eyebrow-color: #d4af37;
  --rl-header-title-color: #f5f2f5;
  --rl-header-text-color: #f5f2f5;
  --rl-footer-text-color: #b8b8b8;
  --rl-footer-heading-color: #d4af37;
  --rl-footer-link-color: #d4af37;
  --rl-footer-link-hover: #e74833;
  --rl-search-text-color: #f5f2f5;
  --rl-header-title-size: 72px;
  --rl-header-text-size: 18px;
  --rl-header-overlay: rgba(9, 9, 9, .42);
  --rl-body-font: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  --rl-heading-font: Georgia, "Times New Roman", serif;
  --rl-content: 760px;
  --rl-wide: 1280px;
  --rl-radius: 18px;
  --rl-shadow: 0 24px 80px rgba(0, 0, 0, .48);

  /* Escala tipográfica fluida: 320px -> 1440px aprox. */
  --rl-type-xs: clamp(0.78rem, 0.75rem + 0.14vw, 0.875rem);
  --rl-type-sm: clamp(0.875rem, 0.84rem + 0.18vw, 1rem);
  --rl-type-base: clamp(1rem, 0.964rem + 0.18vw, 1.125rem);
  --rl-type-lg: clamp(1.125rem, 1.054rem + 0.36vw, 1.375rem);
  --rl-type-xl: clamp(1.35rem, 1.18rem + 0.85vw, 1.95rem);
  --rl-type-2xl: clamp(1.75rem, 1.39rem + 1.8vw, 3rem);
  --rl-type-3xl: clamp(2.15rem, 1.5rem + 3.25vw, 4.45rem);
  --rl-type-display: clamp(2.4rem, 1.35rem + 5.25vw, 6.1rem);
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; font-size: 100%; }
body {
  margin: 0;
  background-color: var(--rl-background);
  color: var(--rl-text);
  font-family: var(--rl-body-font);
  font-size: var(--rl-type-base);
  line-height: 1.7;
  text-rendering: optimizeLegibility;
  overflow-wrap: anywhere;
}
body.custom-background { background-size: cover; background-position: center; background-attachment: fixed; }
img, video, iframe { max-width: 100%; height: auto; }
a { color: var(--rl-link-color); text-decoration-thickness: .08em; text-underline-offset: .2em; }
a:hover, a:focus { color: var(--rl-link-hover-color); }
button, input, textarea, select { font: inherit; }
button, .button, .wp-element-button, .wp-block-button__link { cursor: pointer; }
/* Zero-specificity defaults: block-level Gutenberg colors can override these. */
:where(h1, h2, h3, h4, h5, h6) {
  margin: 0 0 .7em;
  color: var(--rl-heading-color);
  font-family: var(--rl-heading-font);
  font-weight: 600;
  line-height: 1.08;
  letter-spacing: -.025em;
}
h1 { font-size: var(--rl-type-display); }
h2 { font-size: var(--rl-type-3xl); }
h3 { font-size: var(--rl-type-2xl); }
h4 { font-size: var(--rl-type-xl); }
h5 { font-size: var(--rl-type-lg); }
h6 { font-size: var(--rl-type-base); }
p { margin: 0 0 1.25rem; }
hr { border: 0; border-top: 1px solid rgba(184, 184, 184, .25); }
::selection { background: var(--rl-accent); color: var(--rl-text); }

.screen-reader-text {
  position: absolute !important;
  width: 1px; height: 1px;
  padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0, 0, 0, 0);
  white-space: nowrap; border: 0;
}
.screen-reader-text:focus, .skip-link:focus {
  top: 1rem; left: 1rem;
  width: auto; height: auto;
  clip: auto !important;
  padding: .75rem 1rem;
  background: var(--rl-gold);
  color: #090909;
  z-index: 99999;
  border-radius: 8px;
}

.button, .wp-element-button, .wp-block-button__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  padding: .78rem 1.35rem;
  border: 1px solid transparent;
  border-radius: 999px;
  font-size: 0.95rem;
  font-weight: 750;
  line-height: 1.2;
  white-space: nowrap;
  text-decoration: none;
  transition: transform .22s ease, box-shadow .22s ease, background .22s ease, color .22s ease;
}
:where(.button:not(.has-background), .wp-element-button:not(.has-background), .wp-block-button__link:not(.has-background)) {
  background: linear-gradient(135deg, var(--rl-gold-dark), var(--rl-gold));
}
:where(.button:not(.has-text-color), .wp-element-button:not(.has-text-color), .wp-block-button__link:not(.has-text-color)) {
  color: #090909;
}
:where(.button:not(.has-background), .wp-element-button:not(.has-background), .wp-block-button__link:not(.has-background)):hover,
:where(.button:not(.has-background), .wp-element-button:not(.has-background), .wp-block-button__link:not(.has-background)):focus {
  background: var(--rl-accent);
}
:where(.button:not(.has-text-color), .wp-element-button:not(.has-text-color), .wp-block-button__link:not(.has-text-color)):hover,
:where(.button:not(.has-text-color), .wp-element-button:not(.has-text-color), .wp-block-button__link:not(.has-text-color)):focus {
  color: var(--rl-text);
}
.button:hover, .button:focus, .wp-element-button:hover, .wp-element-button:focus, .wp-block-button__link:hover, .wp-block-button__link:focus {
  transform: translateY(-2px);
  box-shadow: 0 14px 35px rgba(231, 72, 51, .22);
}

.site-navigation-shell {
  position: relative;
  width: 100%;
  background: color-mix(in srgb, var(--rl-nav-bg) 94%, transparent);
  color: var(--rl-nav-text);
  border-bottom: 1px solid rgba(212, 175, 55, .25);
  backdrop-filter: blur(18px);
  z-index: 1000;
}
.site-navigation-shell.is-sticky { position: sticky; top: 0; }
.admin-bar .site-navigation-shell.is-sticky { top: 32px; }
.secondary-navigation { width: min(100% - 2rem, 1500px); margin-inline: auto; padding-top: .38rem; }
.secondary-menu { display: flex; justify-content: flex-end; flex-wrap: wrap; gap: 1rem; list-style: none; margin: 0; padding: 0; }
.secondary-menu a { color: var(--rl-silver); font-size: var(--rl-type-xs); letter-spacing: .09em; text-decoration: none; text-transform: uppercase; }
.secondary-menu a:hover, .secondary-menu a:focus { color: var(--rl-nav-text-hover); }
.site-navigation-inner {
  width: min(100% - clamp(1rem, 3vw, 3rem), 1700px);
  min-height: 78px;
  margin-inline: auto;
  display: grid;
  grid-template-columns: minmax(140px, 320px) minmax(0, 1fr) auto;
  align-items: center;
  gap: clamp(.6rem, 1.2vw, 1.25rem);
}
.site-branding { min-width: 0; display: flex; align-items: center; gap: .75rem; }
.site-branding-copy { min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.custom-logo-link { display: inline-flex; flex: 0 1 auto; align-items: center; max-width: 100%; }
.custom-logo { width: auto; max-width: min(230px, 22vw); max-height: 58px; object-fit: contain; }
.site-branding.has-brand-copy .custom-logo { max-width: min(145px, 14vw); }
.site-title { display: block; color: var(--rl-brand-title-color); font-family: var(--rl-heading-font); font-size: clamp(1rem, .88rem + .6vw, 1.4rem); font-weight: 650; line-height: 1.08; text-decoration: none; text-wrap: balance; }
.site-description { color: var(--rl-brand-subtitle-color); font-size: var(--rl-type-xs); letter-spacing: .1em; text-transform: uppercase; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.main-navigation { min-width: 0; max-width: 100%; justify-self: stretch; }
.main-navigation ul { display: flex; align-items: center; justify-content: flex-end; gap: var(--rl-menu-gap); list-style: none; margin: 0; padding: 0; }
.main-navigation li { position: relative; flex: 0 0 auto; }
.main-navigation a { display: block; padding: 1rem .18rem; color: var(--rl-nav-text); font-size: clamp(10px, 9px + .22vw, var(--rl-menu-font-size)); font-weight: 650; letter-spacing: .045em; line-height: 1.25; text-decoration: none; text-transform: uppercase; white-space: nowrap; }
.main-navigation a:hover, .main-navigation a:focus, .main-navigation .current-menu-item > a { color: var(--rl-nav-text-hover); }
.main-navigation a::after { content: ""; position: absolute; left: .18rem; right: 100%; bottom: .65rem; height: 2px; background: linear-gradient(90deg, var(--rl-gold), var(--rl-accent)); transition: right .2s ease; }
.main-navigation a:hover::after, .main-navigation a:focus::after, .main-navigation .current-menu-item > a::after { right: .18rem; }
.main-navigation .sub-menu { display: none; position: absolute; top: 100%; left: 0; min-width: 250px; max-width: min(340px, 90vw); padding: .6rem; background: var(--rl-surface); border: 1px solid rgba(212, 175, 55, .25); box-shadow: var(--rl-shadow); }
.main-navigation li:hover > .sub-menu, .main-navigation li:focus-within > .sub-menu { display: block; }
.main-navigation .sub-menu a { padding: .7rem .8rem; white-space: normal; text-wrap: pretty; }
.menu-toggle, .search-toggle, .search-close, .carousel-control, .carousel-dots button {
  border: 0;
  background: transparent;
  color: inherit;
}
.menu-toggle { display: none; width: 44px; height: 44px; align-items: center; justify-content: center; }
.menu-toggle-lines { display: grid; gap: 5px; }
.menu-toggle-lines span { width: 24px; height: 2px; background: var(--rl-nav-text); transition: transform .2s ease, opacity .2s ease; }
.search-toggle { width: 44px; height: 44px; border: 1px solid rgba(212, 175, 55, .35); border-radius: 50%; color: var(--rl-gold); font-size: 1.65rem; line-height: 1; transition: border-color .2s ease, background .2s ease, color .2s ease; }
.search-toggle:hover, .search-toggle:focus { border-color: var(--rl-accent); background: var(--rl-accent); color: var(--rl-text); }


.site-navigation-shell.navigation-mode-dropdown .secondary-navigation { display: none; }
.site-navigation-shell.is-compact-navigation .site-navigation-inner { grid-template-columns: minmax(0, 1fr) auto auto; }
.site-navigation-shell.is-compact-navigation .menu-toggle { display: inline-flex; justify-self: end; }
.site-navigation-shell.is-compact-navigation .main-navigation {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  display: none;
  max-height: min(72vh, 680px);
  overflow-y: auto;
  padding: 1rem clamp(1rem, 4vw, 3rem) 1.3rem;
  background: color-mix(in srgb, var(--rl-nav-bg) 98%, transparent);
  border-bottom: 1px solid rgba(212, 175, 55, .25);
  box-shadow: var(--rl-shadow);
}
.site-navigation-shell.is-compact-navigation .main-navigation.is-open { display: block; }
.site-navigation-shell.is-compact-navigation .main-navigation ul { display: block; }
.site-navigation-shell.is-compact-navigation .main-navigation li { width: 100%; }
.site-navigation-shell.is-compact-navigation .main-navigation a { padding: .78rem 1rem; white-space: normal; text-wrap: pretty; }
.site-navigation-shell.is-compact-navigation .main-navigation a:hover,
.site-navigation-shell.is-compact-navigation .main-navigation a:focus,
.site-navigation-shell.is-compact-navigation .main-navigation .current-menu-item > a { color: var(--rl-nav-text-hover); }
.site-navigation-shell.is-compact-navigation .main-navigation a::after { left: 1rem; bottom: .5rem; }
.site-navigation-shell.is-compact-navigation .main-navigation .sub-menu { position: static; display: block; min-width: 0; max-width: none; margin-left: 1rem; padding: 0 0 0 .7rem; background: transparent; border: 0; box-shadow: none; }

.header-media { width: 100%; background: #050505; overflow: hidden; }
.header-carousel { position: relative; width: 100%; aspect-ratio: 16 / 9; min-height: 260px; max-height: calc(100vh - 78px); background: #050505; }
.header-carousel-track { position: relative; width: 100%; height: 100%; }
.header-slide { position: absolute; inset: 0; display: grid; opacity: 0; visibility: hidden; transition: opacity .7s ease, visibility .7s ease; }
.header-slide.is-active { opacity: 1; visibility: visible; z-index: 1; }
.header-slide-media, .header-slide-overlay { position: absolute; inset: 0; }
.header-slide-media { display: flex; align-items: center; justify-content: center; background: #050505; }
.header-slide-media.has-gradient-fallback { background: radial-gradient(circle at 75% 20%, rgba(212, 175, 55, .20), transparent 30%), linear-gradient(135deg, #090909 0%, #171717 55%, #2a2110 100%); }
.header-slide-media img, .header-slide-media video { width: 100%; height: 100%; object-fit: contain; object-position: center; background: #050505; }
.header-slide-overlay { background: linear-gradient(90deg, var(--rl-header-overlay), color-mix(in srgb, var(--rl-header-overlay) 38%, transparent), transparent 80%); z-index: 1; }
.header-slide-content {
  position: relative;
  z-index: 2;
  width: min(94%, 1500px);
  margin: clamp(1rem, 4vw, 4rem) auto;
  align-self: center;
  max-width: min(760px, 72vw);
  padding: clamp(1rem, 3vw, 2.4rem);
  border-left: 3px solid var(--rl-gold);
  background: linear-gradient(90deg, rgba(9, 9, 9, .72), rgba(9, 9, 9, .12));
  backdrop-filter: blur(3px);
}
.header-slide-eyebrow { margin-bottom: .7rem; color: var(--rl-slide-eyebrow-color, var(--rl-header-eyebrow-color)); font-size: var(--rl-type-xs); font-weight: 800; letter-spacing: .16em; line-height: 1.3; text-transform: uppercase; }
.header-slide-content h2 { color: var(--rl-slide-heading-color, var(--rl-header-title-color)); font-size: clamp(1.65rem, 4.4vw, var(--rl-header-title-size)); text-wrap: balance; }
.header-slide-text, .header-slide-secondary-text { max-width: 62ch; color: var(--rl-slide-text-color, var(--rl-header-text-color)); font-size: clamp(.9rem, .82rem + .42vw, var(--rl-header-text-size)); }
.header-slide-text p, .header-slide-secondary-text p { margin-bottom: .85rem; }
.header-slide-secondary-text { color: var(--rl-slide-secondary-text-color, var(--rl-header-text-color)); font-size: clamp(.82rem, .77rem + .28vw, calc(var(--rl-header-text-size) - 2px)); }
.header-slide-actions { display: flex; flex-wrap: wrap; gap: .7rem; margin-top: .3rem; }
.header-slide-actions .button { margin: 0; }
.header-action-button {
  background: var(--rl-button-bg, var(--rl-gold));
  border-color: var(--rl-button-border, var(--rl-gold));
  color: var(--rl-button-text, #090909);
}
.header-action-button:hover, .header-action-button:focus {
  background: var(--rl-button-hover-bg, var(--rl-accent));
  border-color: var(--rl-button-hover-bg, var(--rl-accent));
  color: var(--rl-button-hover-text, var(--rl-text));
}
.header-action-button.button-secondary { background: var(--rl-button-bg, rgba(9, 9, 9, .38)); border-color: var(--rl-button-border, var(--rl-gold)); color: var(--rl-button-text, var(--rl-text)); }
.header-action-button.button-secondary:hover, .header-action-button.button-secondary:focus { background: var(--rl-button-hover-bg, var(--rl-accent)); border-color: var(--rl-button-hover-bg, var(--rl-accent)); color: var(--rl-button-hover-text, var(--rl-text)); }
.text-left-top .header-slide-content, .text-center-top .header-slide-content, .text-right-top .header-slide-content { align-self: start; }
.text-left-bottom .header-slide-content, .text-center-bottom .header-slide-content, .text-right-bottom .header-slide-content { align-self: end; }
.text-left-top .header-slide-content, .text-left-center .header-slide-content, .text-left-bottom .header-slide-content { justify-self: start; margin-left: clamp(1rem, 4vw, 4rem); }
.text-right-top .header-slide-content, .text-right-center .header-slide-content, .text-right-bottom .header-slide-content { justify-self: end; margin-right: clamp(1rem, 4vw, 4rem); border-left: 0; border-right: 3px solid var(--rl-gold); text-align: right; background: linear-gradient(270deg, rgba(9, 9, 9, .72), rgba(9, 9, 9, .12)); }
.text-center-top .header-slide-content, .text-center-center .header-slide-content, .text-center-bottom .header-slide-content { justify-self: center; text-align: center; border-left: 0; border-top: 3px solid var(--rl-gold); background: rgba(9, 9, 9, .58); }
.carousel-control { position: absolute; top: 50%; z-index: 4; width: 48px; height: 64px; transform: translateY(-50%); background: rgba(9, 9, 9, .66); border: 1px solid rgba(212, 175, 55, .35); color: var(--rl-text); font-size: 2.2rem; }
.carousel-control:hover, .carousel-control:focus { background: var(--rl-accent); }
.carousel-prev { left: 1rem; }
.carousel-next { right: 1rem; }
.carousel-dots { position: absolute; z-index: 4; left: 50%; bottom: 1rem; display: flex; gap: .55rem; transform: translateX(-50%); }
.carousel-dots button { width: 28px; height: 4px; padding: 0; background: rgba(245, 242, 245, .45); }
.carousel-dots button.is-active { background: var(--rl-gold); }

.search-panel { position: fixed; inset: 0; z-index: 5000; padding: 1rem; background: rgba(5, 5, 5, .9); backdrop-filter: blur(22px); }
.search-panel:not([hidden]) { display: grid; place-items: center; }
.search-panel-inner { position: relative; width: min(760px, 94vw); padding: clamp(2rem, 6vw, 5rem); background: var(--rl-surface); color: var(--rl-search-text-color); border: 1px solid rgba(212, 175, 55, .38); box-shadow: var(--rl-shadow); }
.search-close { position: absolute; top: .75rem; right: 1rem; color: var(--rl-text); font-size: 2rem; }
.search-form { display: flex; gap: .7rem; width: 100%; }
.search-form label { flex: 1; }
.search-field { width: 100%; min-height: 48px; padding: .75rem 1rem; border: 1px solid rgba(184, 184, 184, .36); background: #0d0d0d; color: var(--rl-search-text-color); border-radius: 8px; }
.search-field:focus { outline: 2px solid var(--rl-gold); outline-offset: 2px; }
.search-submit { min-height: 48px; padding: .75rem 1.2rem; border: 0; border-radius: 8px; background: var(--rl-gold); color: #090909; font-weight: 750; }

.site-main { min-height: 50vh; background-color: var(--rl-background); background-size: cover; background-position: center; background-attachment: fixed; }
.content-shell { width: min(100% - 2rem, var(--rl-wide)); margin-inline: auto; padding-block: clamp(3rem, 7vw, 7rem); }
.content-narrow { max-width: 900px; }
.content-fullwidth { width: 100%; max-width: none; padding-inline: clamp(1rem, 4vw, 4rem); }
.entry-content > :where(:not(.alignleft):not(.alignright):not(.alignfull):not(.alignwide)), .page-entry > .entry-header, .single-entry > .entry-header, .single-entry > .entry-content, .single-entry > .entry-footer { width: min(100%, var(--rl-content)); margin-left: auto; margin-right: auto; }
.entry-content > .alignwide { width: min(100%, var(--rl-wide)); margin-left: auto; margin-right: auto; }
.entry-content > .alignfull { width: 100vw; margin-left: calc(50% - 50vw); }
.entry-header { margin-bottom: clamp(2rem, 5vw, 4rem); }
.entry-meta { color: var(--rl-link-color); font-size: .78rem; letter-spacing: .13em; text-transform: uppercase; }
.entry-content { font-size: clamp(1rem, 1.3vw, 1.08rem); }
.entry-content blockquote { margin: 2rem 0; padding: 1.25rem 1.5rem; border-left: 3px solid var(--rl-gold); background: var(--rl-surface); font-family: var(--rl-heading-font); font-size: 1.25em; }
.entry-content table { width: 100%; border-collapse: collapse; }
.entry-content th, .entry-content td { padding: .8rem; border: 1px solid rgba(184, 184, 184, .24); }
.entry-content th { background: var(--rl-surface); color: var(--rl-gold); }
.single-featured-image { margin: 0 auto 3rem; max-width: var(--rl-wide); }
.single-featured-image img { display: block; width: 100%; border-radius: var(--rl-radius); box-shadow: var(--rl-shadow); }

.archive-header { max-width: 950px; margin-bottom: 3rem; }
.archive-description { color: var(--rl-silver); font-size: 1.1rem; }
.posts-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.5rem; }
.post-card { overflow: hidden; background: linear-gradient(145deg, var(--rl-surface), #101010); border: 1px solid rgba(184, 184, 184, .16); border-radius: var(--rl-radius); transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease; }
.post-card:hover { transform: translateY(-6px); border-color: rgba(212, 175, 55, .55); box-shadow: 0 24px 60px rgba(0, 0, 0, .36); }
.post-card-image { display: block; aspect-ratio: 16 / 10; overflow: hidden; background: #050505; }
.post-card-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .35s ease; }
.post-card:hover .post-card-image img { transform: scale(1.04); }
.post-card-content { padding: 1.5rem; }
.post-card .entry-title { font-size: clamp(1.4rem, 2.3vw, 2rem); }
.post-card .entry-title a { color: var(--rl-text); text-decoration: none; }
.entry-summary { color: var(--rl-silver); }
.text-link { font-weight: 700; text-decoration: none; }

.eyebrow { color: var(--rl-gold); font-size: .78rem; font-weight: 750; letter-spacing: .16em; text-transform: uppercase; }
.starter-intro { padding: clamp(3rem, 7vw, 7rem) 0; max-width: 980px; }
.starter-intro p:last-child { max-width: 72ch; color: var(--rl-silver); font-size: 1.12rem; }
.starter-services { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; padding-block: 2rem 6rem; }
.starter-services article { padding: clamp(1.5rem, 3vw, 2.5rem); background: var(--rl-surface); border: 1px solid rgba(184, 184, 184, .17); border-radius: var(--rl-radius); }
.starter-services article > span { color: var(--rl-gold); font-weight: 800; }
.starter-services article p { color: var(--rl-silver); }
.starter-cta { display: flex; align-items: center; justify-content: space-between; gap: 2rem; padding: clamp(2rem, 5vw, 4rem); background: radial-gradient(circle at 90% 10%, rgba(231, 72, 51, .24), transparent 28%), linear-gradient(135deg, #161616, #090909); border: 1px solid rgba(212, 175, 55, .34); border-radius: 24px; }
.starter-cta h2 { max-width: 18ch; }

.no-results, .error-404 { min-height: 60vh; display: grid; place-content: center; justify-items: start; gap: 1rem; padding: clamp(2rem, 7vw, 7rem); background-size: cover; background-position: center; }
.no-results { max-width: var(--rl-wide); margin-inline: auto; }
.error-404 { position: relative; overflow: hidden; }
.error-code { position: absolute; right: 3vw; top: 50%; transform: translateY(-50%); color: rgba(212, 175, 55, .08); font-family: var(--rl-heading-font); font-size: clamp(10rem, 35vw, 38rem); font-weight: 700; line-height: .8; pointer-events: none; }
.error-404 > *:not(.error-code) { position: relative; z-index: 1; max-width: 760px; }
.error-actions { display: flex; flex-wrap: wrap; gap: 1rem; align-items: center; width: min(100%, 760px); }
.error-actions .search-form { flex: 1 1 340px; }

.navigation.pagination, .post-navigation { margin-top: 3rem; }
.nav-links { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.page-numbers { min-width: 42px; min-height: 42px; display: inline-grid; place-items: center; padding: .35rem .7rem; background: var(--rl-surface); border: 1px solid rgba(184, 184, 184, .16); color: var(--rl-text); text-decoration: none; }
.page-numbers.current, .page-numbers:hover { background: var(--rl-gold); color: #090909; }

.comments-area { margin-top: 4rem; padding-top: 3rem; border-top: 1px solid rgba(184, 184, 184, .2); }
.comment-list { padding-left: 1.5rem; }
.comment-body { margin-bottom: 1.5rem; padding: 1.25rem; background: var(--rl-surface); border-radius: 12px; }
.comment-form input:not([type="submit"]), .comment-form textarea { width: 100%; padding: .75rem; background: #0d0d0d; color: var(--rl-text); border: 1px solid rgba(184, 184, 184, .3); border-radius: 8px; }
.comment-form input[type="submit"] { border: 0; padding: .75rem 1.25rem; background: var(--rl-gold); color: #090909; font-weight: 700; border-radius: 999px; }

.site-footer { background: #070707; color: var(--rl-footer-text-color); border-top: 1px solid rgba(212, 175, 55, .28); }
.footer-widgets { width: min(100% - 2rem, var(--rl-wide)); margin-inline: auto; display: grid; gap: 2rem; padding-block: clamp(3rem, 7vw, 6rem); }
.footer-columns-1 { grid-template-columns: 1fr; }
.footer-columns-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.footer-columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.footer-columns-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.widget-title { font-size: var(--rl-type-lg); color: var(--rl-footer-heading-color); }
.widget ul { list-style: none; padding: 0; }
.widget li { margin-bottom: .55rem; }
.footer-meta { width: min(100% - 2rem, 1500px); margin-inline: auto; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 2rem; padding: 1.5rem 0 2rem; border-top: 1px solid rgba(184, 184, 184, .15); color: var(--rl-footer-text-color); font-size: var(--rl-type-sm); }
.footer-identity { display: flex; flex-direction: column; }
.footer-identity strong { color: var(--rl-footer-heading-color); }
.social-links { display: flex; flex-wrap: wrap; gap: .5rem; justify-content: center; }
.social-links a { width: 38px; height: 38px; display: inline-grid; place-items: center; border: 1px solid rgba(212, 175, 55, .36); border-radius: 50%; color: var(--rl-gold); font-size: .72rem; font-weight: 800; text-decoration: none; }
.social-links a:hover { background: var(--rl-accent); border-color: var(--rl-accent); color: var(--rl-text); }
.footer-legal { justify-self: end; text-align: right; }
.footer-menu { display: flex; justify-content: flex-end; gap: 1rem; list-style: none; margin: .4rem 0 0; padding: 0; }
.site-footer a { color: var(--rl-footer-link-color); }
.site-footer a:hover, .site-footer a:focus { color: var(--rl-footer-link-hover); }

.wp-block-group, .wp-block-columns, .wp-block-cover { color: inherit; }
.wp-block-cover { border-radius: var(--rl-radius); overflow: hidden; }
.wp-block-image img, .wp-block-gallery img { border-radius: 12px; }
.wp-block-button.is-style-outline .wp-block-button__link:not(.has-background) { background: transparent; }
.wp-block-button.is-style-outline .wp-block-button__link:not(.has-border-color) { border-color: var(--rl-gold); }
.wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color) { color: var(--rl-gold); }
.wp-block-button.is-style-outline .wp-block-button__link:not(.has-border-color):hover { border-color: var(--rl-accent); }
.wp-block-button.is-style-outline .wp-block-button__link:not(.has-text-color):hover { color: var(--rl-text); }


/* Palette fallbacks for block content. Custom HEX colors are stored inline by WordPress. */
.has-carbon-color { color: #090909; }
.has-graphite-color { color: #171717; }
.has-silver-color { color: #B8B8B8; }
.has-gold-color { color: #D4AF37; }
.has-dark-gold-color { color: #8D6B19; }
.has-accent-color { color: #E74833; }
.has-soft-text-color { color: #F5F2F5; }
.has-carbon-background-color { background-color: #090909; }
.has-graphite-background-color { background-color: #171717; }
.has-silver-background-color { background-color: #B8B8B8; }
.has-gold-background-color { background-color: #D4AF37; }
.has-dark-gold-background-color { background-color: #8D6B19; }
.has-accent-background-color { background-color: #E74833; }
.has-soft-text-background-color { background-color: #F5F2F5; }

@media (max-width: 1100px) {
  .secondary-navigation { display: none; }
  .posts-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer-columns-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
  .site-navigation-shell.navigation-mode-horizontal .site-navigation-inner { grid-template-columns: minmax(0, 1fr) auto auto; }
  .site-navigation-shell.navigation-mode-horizontal .menu-toggle { display: inline-flex; justify-self: end; }
  .site-navigation-shell.navigation-mode-horizontal .main-navigation {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    display: none;
    max-height: min(72vh, 680px);
    overflow-y: auto;
    padding: 1rem clamp(1rem, 4vw, 3rem) 1.3rem;
    background: color-mix(in srgb, var(--rl-nav-bg) 98%, transparent);
    border-bottom: 1px solid rgba(212, 175, 55, .25);
    box-shadow: var(--rl-shadow);
  }
  .site-navigation-shell.navigation-mode-horizontal .main-navigation.is-open { display: block; }
  .site-navigation-shell.navigation-mode-horizontal .main-navigation ul { display: block; }
  .site-navigation-shell.navigation-mode-horizontal .main-navigation li { width: 100%; }
  .site-navigation-shell.navigation-mode-horizontal .main-navigation a { padding: .78rem 1rem; white-space: normal; text-wrap: pretty; }
  .site-navigation-shell.navigation-mode-horizontal .main-navigation a:hover,
  .site-navigation-shell.navigation-mode-horizontal .main-navigation a:focus,
  .site-navigation-shell.navigation-mode-horizontal .main-navigation .current-menu-item > a { color: var(--rl-nav-text-hover); }
  .site-navigation-shell.navigation-mode-horizontal .main-navigation a::after { left: 1rem; bottom: .5rem; }
  .site-navigation-shell.navigation-mode-horizontal .main-navigation .sub-menu { position: static; display: block; min-width: 0; max-width: none; margin-left: 1rem; padding: 0 0 0 .7rem; background: transparent; border: 0; box-shadow: none; }
}

@media (max-width: 782px) {
  .admin-bar .site-navigation-shell.is-sticky { top: 46px; }
  .site-navigation-inner { min-height: 68px; }
  .main-navigation { top: 68px; }
  .custom-logo { max-height: 48px; }
  .header-carousel { min-height: 220px; max-height: none; }
  .header-slide-content { max-width: 76vw; padding: .85rem 1rem; margin: 1rem; }
  .header-slide-content h2 { margin-bottom: .35rem; }
  .header-slide-text, .header-slide-secondary-text { line-height: 1.45; }
  .header-slide-text p, .header-slide-secondary-text p { margin-bottom: .45rem; }
  .header-slide-eyebrow { margin-bottom: .35rem; }
  .header-slide-actions { gap: .45rem; }
  .carousel-prev { left: .35rem; }
  .carousel-next { right: .35rem; }
  .carousel-dots { bottom: .5rem; }
  .starter-services { grid-template-columns: 1fr; }
  .starter-cta { align-items: flex-start; flex-direction: column; }
  .footer-meta { grid-template-columns: 1fr; justify-items: start; }
  .social-links { justify-content: flex-start; }
  .footer-legal { justify-self: start; text-align: left; }
  .footer-menu { justify-content: flex-start; flex-wrap: wrap; }
}

@media (max-width: 620px) {
  .site-navigation-inner { width: min(100% - 1rem, 1500px); gap: .45rem; }
  .site-description { display: none; }
  .site-branding { gap: .45rem; }
  .site-branding.has-brand-copy .custom-logo { max-width: min(105px, 29vw); }
  .header-carousel { min-height: 190px; }
  .header-slide-content { max-width: 80vw; border-left-width: 2px; }
  .posts-grid { grid-template-columns: 1fr; }
  .footer-columns-2, .footer-columns-3, .footer-columns-4 { grid-template-columns: 1fr; }
  .search-form { flex-wrap: wrap; }
  .search-form label { min-width: min(100%, 180px); }
}

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

/* ================================================================
   Tamaño tipográfico automático (v1.7.1).
   Las clases de tamaño manual de v1.7.0 se conservan sólo para no invalidar
   contenido ya guardado; sus variables antiguas ya no cambian el tamaño.
   ================================================================ */
.rlx-responsive-font-size { /* compatibilidad heredada: tamaño automático */ }
.rlx-responsive-font-size.wp-block-button .wp-block-button__link { font-size: 0.95rem; }

/* ================================================================
   Responsive font families selected per block in Gutenberg.
   Tablet and mobile override only when an explicit family is selected.
   ================================================================ */
.rlx-responsive-font-family.rlx-family-desktop-system,
.rlx-responsive-font-family.rlx-family-desktop-system.wp-block-button .wp-block-button__link { font-family: var(--rl-font-system, Inter, ui-sans-serif, system-ui, sans-serif) !important; }
.rlx-responsive-font-family.rlx-family-desktop-serif,
.rlx-responsive-font-family.rlx-family-desktop-serif.wp-block-button .wp-block-button__link { font-family: var(--rl-font-serif, Georgia, "Times New Roman", serif) !important; }
.rlx-responsive-font-family.rlx-family-desktop-mono,
.rlx-responsive-font-family.rlx-family-desktop-mono.wp-block-button .wp-block-button__link { font-family: var(--rl-font-mono, "SFMono-Regular", Consolas, monospace) !important; }
.rlx-responsive-font-family.rlx-family-desktop-custom,
.rlx-responsive-font-family.rlx-family-desktop-custom.wp-block-button .wp-block-button__link { font-family: var(--rl-font-custom, "RenovaCustom", Inter, ui-sans-serif, system-ui, sans-serif) !important; }

@media (max-width: 1024px) {
  .rlx-responsive-font-family.rlx-family-tablet-system,
  .rlx-responsive-font-family.rlx-family-tablet-system.wp-block-button .wp-block-button__link { font-family: var(--rl-font-system, Inter, ui-sans-serif, system-ui, sans-serif) !important; }
  .rlx-responsive-font-family.rlx-family-tablet-serif,
  .rlx-responsive-font-family.rlx-family-tablet-serif.wp-block-button .wp-block-button__link { font-family: var(--rl-font-serif, Georgia, "Times New Roman", serif) !important; }
  .rlx-responsive-font-family.rlx-family-tablet-mono,
  .rlx-responsive-font-family.rlx-family-tablet-mono.wp-block-button .wp-block-button__link { font-family: var(--rl-font-mono, "SFMono-Regular", Consolas, monospace) !important; }
  .rlx-responsive-font-family.rlx-family-tablet-custom,
  .rlx-responsive-font-family.rlx-family-tablet-custom.wp-block-button .wp-block-button__link { font-family: var(--rl-font-custom, "RenovaCustom", Inter, ui-sans-serif, system-ui, sans-serif) !important; }
}

@media (max-width: 767px) {
  .rlx-responsive-font-family.rlx-family-mobile-system,
  .rlx-responsive-font-family.rlx-family-mobile-system.wp-block-button .wp-block-button__link { font-family: var(--rl-font-system, Inter, ui-sans-serif, system-ui, sans-serif) !important; }
  .rlx-responsive-font-family.rlx-family-mobile-serif,
  .rlx-responsive-font-family.rlx-family-mobile-serif.wp-block-button .wp-block-button__link { font-family: var(--rl-font-serif, Georgia, "Times New Roman", serif) !important; }
  .rlx-responsive-font-family.rlx-family-mobile-mono,
  .rlx-responsive-font-family.rlx-family-mobile-mono.wp-block-button .wp-block-button__link { font-family: var(--rl-font-mono, "SFMono-Regular", Consolas, monospace) !important; }
  .rlx-responsive-font-family.rlx-family-mobile-custom,
  .rlx-responsive-font-family.rlx-family-mobile-custom.wp-block-button .wp-block-button__link { font-family: var(--rl-font-custom, "RenovaCustom", Inter, ui-sans-serif, system-ui, sans-serif) !important; }
}


/* v1.7.1 — geometría estable de botones en todos los dispositivos. */
:where(.button, .wp-element-button, .wp-block-button__link, .search-submit) {
  min-height: 46px;
  padding-block: .78rem;
  padding-inline: 1.35rem;
  font-size: .95rem;
  line-height: 1.2;
  border-radius: 999px;
  width: auto;
  max-width: 100%;
}
:where(.menu-toggle, .search-toggle) { width: 44px; height: 44px; flex: 0 0 44px; }
:where(.carousel-control) { width: 48px; height: 64px; font-size: 2.2rem; }

/* ================================================================
   v1.7.2 — protección responsiva para bloques de contenido.
   En móvil las Columnas se apilan incluso si el bloque fue guardado con
   "no apilar en móvil". Evita tarjetas estrechas, texto cortado y overflow.
   La geometría de los botones permanece intacta.
   ================================================================ */
:where(.entry-content, .page-content, .post-content) :where(.wp-block-column, .wp-block-group, .wp-block-cover, .wp-block-media-text) {
  min-width: 0;
  max-width: 100%;
}

:where(.entry-content, .page-content, .post-content) :where(h1, h2, h3, h4, h5, h6, p, li, blockquote, figcaption) {
  max-width: 100%;
  overflow-wrap: break-word;
  word-break: normal;
}

@media (max-width: 781px) {
  :where(.entry-content, .page-content, .post-content) .wp-block-columns,
  :where(.entry-content, .page-content, .post-content) .wp-block-columns.is-not-stacked-on-mobile {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: clamp(1rem, 4vw, 1.5rem) !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  :where(.entry-content, .page-content, .post-content) .wp-block-columns > .wp-block-column,
  :where(.entry-content, .page-content, .post-content) .wp-block-columns.is-not-stacked-on-mobile > .wp-block-column {
    flex: 1 1 100% !important;
    flex-basis: 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Los grids editoriales/tarjetas pasan a una columna en móvil. */
  :where(.entry-content, .page-content, .post-content) .is-layout-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  /* Evita que padding fijo deje una columna sin espacio útil. */
  :where(.entry-content, .page-content, .post-content) .wp-block-column {
    box-sizing: border-box;
  }
}

@media (max-width: 480px) {
  :where(.entry-content, .page-content, .post-content) .wp-block-column {
    overflow: visible;
  }
}



/* ================================================================
   v1.7.3 — legibilidad móvil protegida.
   Mantiene el escalado automático pero evita tamaños microscópicos
   heredados de estilos de bloque, contenedores o contenido antiguo.
   Los botones conservan exactamente su geometría responsiva.
   ================================================================ */

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
}

@media (max-width: 767px) {
  /* Base web legible: nunca menos de 16px para texto de lectura. */
  body,
  .site-main,
  .entry-content,
  .page-content,
  .post-content {
    font-size: 1rem;
  }

  /* Los contenedores no pueden reducir la escala tipográfica de sus hijos. */
  :where(.entry-content, .page-content, .post-content)
  :where(.wp-block-group, .wp-block-column, .wp-block-cover, .wp-block-media-text,
         .wp-block-stack, .wp-block-details) {
    font-size: 1rem !important;
  }

  /* Texto de lectura y elementos habituales de tarjetas/listados. */
  :where(.entry-content, .page-content, .post-content)
  :where(p, li, dt, dd, figcaption, blockquote, cite, label, legend,
         .wp-block-post-excerpt__excerpt, .wp-block-latest-posts__post-excerpt) {
    font-size: clamp(1rem, 3.9vw, 1.125rem) !important;
    line-height: 1.55;
  }

  /* Texto deliberadamente pequeño: se conserva la jerarquía, pero sigue visible. */
  :where(.entry-content, .page-content, .post-content)
  :where(small, .has-small-font-size, .wp-block-footnotes, figcaption) {
    font-size: clamp(.875rem, 3.45vw, 1rem) !important;
    line-height: 1.5;
  }

  /* Escala estándar de encabezados en móvil. */
  :where(.entry-content, .page-content, .post-content) h1 {
    font-size: clamp(2rem, 8.5vw, 3rem) !important;
    line-height: 1.08;
  }
  :where(.entry-content, .page-content, .post-content) h2 {
    font-size: clamp(1.75rem, 7.2vw, 2.5rem) !important;
    line-height: 1.1;
  }
  :where(.entry-content, .page-content, .post-content) h3 {
    font-size: clamp(1.5rem, 6.2vw, 2rem) !important;
    line-height: 1.12;
  }
  :where(.entry-content, .page-content, .post-content) h4 {
    font-size: clamp(1.25rem, 5.2vw, 1.625rem) !important;
    line-height: 1.15;
  }
  :where(.entry-content, .page-content, .post-content) h5 {
    font-size: clamp(1.125rem, 4.5vw, 1.375rem) !important;
    line-height: 1.2;
  }
  :where(.entry-content, .page-content, .post-content) h6 {
    font-size: 1rem !important;
    line-height: 1.25;
  }

  /* Formularios: 16px evita texto ilegible y el auto-zoom de navegadores móviles. */
  input:not([type="checkbox"]):not([type="radio"]):not([type="range"]):not([type="color"]),
  textarea,
  select {
    font-size: 16px !important;
    line-height: 1.4;
  }
  input::placeholder,
  textarea::placeholder {
    font-size: 16px !important;
    opacity: .72;
  }

  /* Los botones no reciben reglas geométricas móviles: conservan exactamente
     la configuración de escritorio y cualquier ajuste definido en Gutenberg. */
}
