/* Bloques del CMS (páginas nuevas y bloques agregados). Mismo lenguaje visual del diseño. */
.cmsb { --bg: #FFFFFF; --alt: #F1F5F9; --text: #333333; --muted: #6B7280; --accent: #2563EB; --border: #E5E7EB; --card: #F9FAFB;
  background: var(--bg); color: var(--text); font-family: Inter, system-ui, sans-serif; padding: 96px 0; position: relative; }
html.dark .cmsb { --bg: #171717; --alt: #1F1F1F; --text: #E5E5E5; --muted: #A3A3A3; --accent: #60A5FA; --border: #404040; --card: #262626; }
.cmsb-in { max-width: 1440px; margin: 0 auto; padding: 0 48px; box-sizing: border-box; position: relative; }
.cmsb h1, .cmsb h2, .cmsb h3 { margin: 0; letter-spacing: -0.02em; }
.cmsb h2 { font-size: 44px; line-height: 1.12; font-weight: 700; margin-bottom: 20px; }
.cmsb-eyebrow { display: block; font: 600 13px 'JetBrains Mono', monospace; letter-spacing: .14em; color: var(--accent); margin-bottom: 14px; text-transform: uppercase; }
.cmsb-lead { font-size: 19px; line-height: 1.6; max-width: 900px; margin: 18px 0 0; }
.cmsb-row { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 28px; }
.cmsb-btn { display: inline-flex; align-items: center; min-height: 48px; padding: 0 24px; border-radius: 999px; font-weight: 600; font-size: 15.5px; text-decoration: none; }
.cmsb-btn.light { background: #FFFFFF; color: #0A0F1C; }
.cmsb-btn.ghost { border: 1px solid rgba(255,255,255,.55); color: #FFFFFF; backdrop-filter: blur(6px); }
/* Portada */
.cmsb-hero { background: #0A0F1C; color: #FFFFFF; padding: 120px 0 104px; min-height: 520px; display: flex; align-items: center; overflow: hidden; }
.cmsb-hero .cmsb-in { width: 100%; }
.cmsb-hero h1 { font-size: 54px; line-height: 1.08; font-weight: 700; max-width: 1060px; }
.cmsb-hero .cmsb-lead { color: rgba(255,255,255,.82); }
.cmsb-hero .cmsb-eyebrow { color: #93C5FD; }
.cmsb-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.cmsb-shade { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(5,7,13,.92) 0%, rgba(5,7,13,.7) 45%, rgba(5,7,13,.3) 100%); }
/* Texto */
.cmsb-texto.alt { background: var(--alt); }
.cmsb-texto.center .cmsb-in { text-align: center; }
.cmsb-texto.center .cmsb-body { margin: 0 auto; }
.cmsb-body { max-width: 860px; font-size: 17.5px; line-height: 1.7; color: var(--text); }
.cmsb-body p { margin: 0 0 16px; }
/* Imagen y video */
.cmsb-imagen, .cmsb-video { padding: 64px 0; }
.cmsb-imagen figure { margin: 0 auto; }
.cmsb-imagen img, .cmsb-video video { width: 100%; height: auto; display: block; border-radius: 16px; }
.cmsb-imagen.full { padding: 0; }
.cmsb-imagen.full .cmsb-in { max-width: none; padding: 0; }
.cmsb-imagen.full img { border-radius: 0; }
.cmsb figcaption, .cmsb-cap { margin-top: 12px; font-size: 14px; color: var(--muted); }
.cmsb-ratio { position: relative; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; background: #000; }
.cmsb-ratio iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* Tarjetas */
.cmsb-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; margin-top: 12px; }
.cmsb-card { display: flex; flex-direction: column; gap: 10px; padding: 28px; border: 1px solid var(--border); border-radius: 16px; background: var(--card); color: var(--text); text-decoration: none; transition: border-color .2s, transform .14s; }
a.cmsb-card:hover { border-color: var(--accent); }
a.cmsb-card:active { transform: scale(.98); }
.cmsb-card img { width: 100%; aspect-ratio: 16 / 10; object-fit: cover; border-radius: 10px; }
.cmsb-card h3 { font-size: 20px; }
.cmsb-card p { margin: 0; color: var(--muted); line-height: 1.6; font-size: 15.5px; }
.cmsb-more { color: var(--accent); font-weight: 600; font-size: 14.5px; margin-top: auto; }
/* Llamada a la acción */
.cmsb-cta { background: #0A0F1C; color: #FFFFFF; text-align: center; background-image: radial-gradient(circle at 50% 0%, rgba(37,99,235,.35), transparent 60%); }
.cmsb-cta h2 { max-width: 980px; margin: 0 auto; }
.cmsb-cta .cmsb-lead { margin: 18px auto 0; color: rgba(255,255,255,.8); }
.cmsb-cta .cmsb-row { justify-content: center; }
/* Responsive (tablet ≤1024, celular ≤640) */
@media (max-width: 1024px) {
  .cmsb-in { padding: 0 20px; }
  .cmsb-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cmsb { padding: 72px 0; }
}
@media (max-width: 640px) {
  .cmsb { padding: 48px 0; }
  .cmsb-hero { padding: 88px 0 64px; min-height: 0; }
  .cmsb-hero h1 { font-size: 32px; }
  .cmsb h2 { font-size: 28px; }
  .cmsb-lead { font-size: 17px; }
  .cmsb-grid { grid-template-columns: minmax(0, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .cmsb-bg[autoplay] { display: none; } }
.cms-empty { max-width: 720px; margin: 80px auto; padding: 40px; border: 2px dashed #93C5FD; border-radius: 16px; text-align: center; color: #2563EB; font: 500 16px Inter, sans-serif; }
/* Página nueva: la plantilla del inicio trae una altura mínima del lienzo de diseño */
div:has(> main.cms-page) { min-height: 0 !important; }
main.cms-page { display: block; }
