/* Tipografías locales (incluyen tildes, eñes y signos del español) */
@font-face { font-family: 'Jakarta'; src: url('/fonts/jakarta.woff2') format('woff2'); font-weight: 200 900; font-style: normal; font-display: block; }
@font-face { font-family: 'Jakarta'; src: url('/fonts/jakarta-italic.woff2') format('woff2'); font-weight: 200 900; font-style: italic; font-display: block; }
@font-face { font-family: 'Bricolage'; src: url('/fonts/bricolage.woff2') format('woff2'); font-weight: 200 800; font-stretch: 75% 100%; font-display: block; }
@font-face { font-family: 'Fraunces'; src: url('/fonts/fraunces.woff2') format('woff2'); font-weight: 100 900; font-style: normal; font-display: block; }
@font-face { font-family: 'Fraunces'; src: url('/fonts/fraunces-italic.woff2') format('woff2'); font-weight: 100 900; font-style: italic; font-display: block; }
@font-face { font-family: 'Mono'; src: url('/fonts/mono.woff2') format('woff2'); font-weight: 100 800; font-display: block; }

:root {
  --itb-blue: #07549A;
  --itb-green: #65A844;
  --itb-yellow: #D6C719;
  --itb-orange: #D85A1F;
  --ink: #0b2545;
  --ink-2: #34475f;
  --ink-3: #6b7c93;
  --paper: #f5f8fc;
  --font-body: 'Jakarta', system-ui, sans-serif;
  --font-display: 'Bricolage', 'Jakarta', system-ui, sans-serif;
  --font-serif: 'Fraunces', Georgia, serif;
  --font-mono: 'Mono', ui-monospace, monospace;
  --ease: cubic-bezier(.22, .8, .26, 1);
}

*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html, body { margin: 0; }
body { font-family: var(--font-body); color: var(--ink); -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; font-feature-settings: 'ss01' on; }
.ico { flex: none; display: inline-block; vertical-align: middle; }

/* ------------------------------------------------------------------
   Lienzo de piezas (compartido por cartelera y editor)
   ------------------------------------------------------------------ */
.slide {
  position: absolute; left: 0; top: 0;
  width: 1420px; height: 836px;
  transform-origin: 0 0;
  overflow: hidden;
  border-radius: 34px;
  isolation: isolate;
  contain: layout paint;
}
.slide-bg { position: absolute; inset: 0; z-index: 0; }
.slide-bg.glass {
  background: linear-gradient(145deg, rgba(255,255,255,.86), rgba(255,255,255,.66));
  backdrop-filter: blur(18px) saturate(1.2);
}
.slide-bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.slide-bg .veil { position: absolute; inset: 0; background: #fff; }
.slide-frame { position: absolute; inset: 0; border-radius: inherit; pointer-events: none; z-index: 9990; box-shadow: inset 0 0 0 1px rgba(255,255,255,.7), inset 0 0 0 2px rgba(7,84,154,.04); }

.el { position: absolute; transform-origin: 50% 50%; }
.el-inner { position: absolute; inset: 0; border-radius: inherit; overflow: hidden; }
.el.shadow-soft .el-inner { box-shadow: 0 18px 40px -22px rgba(11,37,69,.45), 0 2px 8px -4px rgba(11,37,69,.15); }
.el.shadow-lift .el-inner { box-shadow: 0 34px 70px -30px rgba(11,37,69,.55), 0 10px 22px -14px rgba(11,37,69,.25); }
.el.shadow-glow .el-inner { box-shadow: 0 0 0 1px rgba(255,255,255,.6), 0 20px 60px -18px rgba(7,84,154,.55); }
.el.is-hidden { display: none; }

.el-text .el-inner { display: flex; flex-direction: column; }
.el-text[data-valign="middle"] .el-inner { justify-content: center; }
.el-text[data-valign="bottom"] .el-inner { justify-content: flex-end; }
.el-text .el-inner.no-clip { overflow: visible; }
.rt { width: 100%; overflow-wrap: break-word; hyphens: manual; will-change: transform; }
.rt > :first-child { margin-top: 0; }
.rt > :last-child { margin-bottom: 0; }
.rt p { margin: 0 0 .6em; }
.rt h1, .rt h2, .rt h3, .rt h4 { font-family: var(--font-display); line-height: 1.1; margin: .2em 0 .45em; letter-spacing: -.01em; color: inherit; }
.rt h1 { font-size: 2.1em; font-weight: 800; }
.rt h2 { font-size: 1.6em; font-weight: 750; }
.rt h3 { font-size: 1.24em; font-weight: 700; color: var(--itb-blue); }
.rt h4 { font-size: 1.05em; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--itb-green); }
.rt ul, .rt ol { margin: 0 0 .7em; padding-left: 1.25em; }
.rt li { margin: .22em 0; padding-left: .2em; }
.rt ul li::marker { color: var(--itb-green); }
.rt ol li::marker { color: var(--itb-blue); font-weight: 700; }
.rt blockquote { margin: .6em 0 .9em; padding: .5em 0 .5em 1em; border-left: .18em solid var(--itb-orange); font-family: var(--font-serif); font-style: italic; font-size: 1.12em; color: var(--ink); }
.rt a { color: var(--itb-blue); text-decoration: underline; text-decoration-thickness: .08em; text-underline-offset: .15em; }
.rt img { max-width: 100%; height: auto; border-radius: .5em; display: block; margin: .4em 0 .8em; }
.rt img[style*="float: left"], .rt img[style*="float:left"] { margin: .2em 1em .6em 0; }
.rt img[style*="float: right"], .rt img[style*="float:right"] { margin: .2em 0 .6em 1em; }
.rt figure { margin: .5em 0 1em; }
.rt figcaption { font-size: .72em; color: var(--ink-3); margin-top: .3em; }
.rt mark { background: linear-gradient(transparent 55%, rgba(214,199,25,.45) 55%); color: inherit; padding: 0 .1em; }
.rt hr { border: 0; height: .12em; width: 3em; background: linear-gradient(90deg, var(--itb-green), var(--itb-yellow)); margin: 1em 0; border-radius: 1em; }
.rt table { border-collapse: collapse; width: 100%; margin: .4em 0 .9em; font-size: .86em; }
.rt th { text-align: left; font-weight: 700; color: var(--itb-blue); border-bottom: .1em solid rgba(7,84,154,.35); padding: .45em .6em; }
.rt td { border-bottom: 1px solid rgba(11,37,69,.1); padding: .45em .6em; }
.rt code { font-family: var(--font-mono); font-size: .86em; background: rgba(7,84,154,.08); padding: .08em .3em; border-radius: .3em; }
.rt::after { content: ''; display: table; clear: both; }

.el-image img, .el-video video, .el-video img.poster { width: 100%; height: 100%; display: block; }
.el-image img { transform-origin: var(--ox, 50%) var(--oy, 50%); }
.el-media-wrap { position: absolute; inset: 0; overflow: hidden; border-radius: inherit; }
.ken-burns img { animation: kenburns 22s ease-in-out infinite alternate; }
@keyframes kenburns { from { transform: scale(var(--z, 1)); } to { transform: scale(calc(var(--z, 1) * 1.12)) translate(-1.2%, -1%); } }
.el-caption {
  position: absolute; left: 18px; right: 18px; bottom: 18px; z-index: 2;
  padding: 12px 18px; border-radius: 16px; font-size: 20px; font-weight: 600; line-height: 1.35; color: var(--ink);
  background: rgba(255,255,255,.86); backdrop-filter: blur(10px); box-shadow: 0 10px 30px -18px rgba(11,37,69,.6);
}
.media-missing { position: absolute; inset: 0; display: grid; place-items: center; background: repeating-linear-gradient(135deg, #eef3f9 0 14px, #f6f9fc 14px 28px); color: var(--ink-3); font-size: 18px; font-weight: 600; text-align: center; }
.media-missing .ico { width: 42px; height: 42px; display: block; margin: 0 auto 8px; opacity: .6; }

.el-shape .el-inner.glass { background: rgba(255,255,255,.55) !important; backdrop-filter: blur(14px); box-shadow: inset 0 0 0 1px rgba(255,255,255,.7); }
.el-html iframe { width: 100%; height: 100%; border: 0; display: block; background: transparent; color-scheme: light; }
.el-html .el-inner.opaque { background: #fff; }

.slide-label {
  position: absolute; left: 28px; top: 24px; z-index: 9995;
  display: inline-flex; align-items: center; gap: 10px;
  padding: 9px 18px 9px 14px; border-radius: 999px;
  font-size: 17px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--ink);
  background: rgba(255,255,255,.9); backdrop-filter: blur(10px);
  box-shadow: 0 10px 26px -16px rgba(11,37,69,.55), inset 0 0 0 1px rgba(11,37,69,.05);
}
.slide-label i { width: 10px; height: 10px; border-radius: 50%; background: var(--dot, var(--itb-blue)); box-shadow: 0 0 0 4px color-mix(in srgb, var(--dot, var(--itb-blue)) 20%, transparent); }
