/* South Impact 2026 — extras del tema WP
 * Estilos para los bloques que no están en la maqueta original:
 *   · banner-top (early-bird global)
 *   · single-si_speaker (ficha de ponente)
 *   · single-si_news (artículo)
 *   · filtros del Programa, Ponentes y Showcase archive
 *   · template-aliados, template-contacto extras
 *   · pequeñas utilidades de prosa para el bloque WYSIWYG (.si-prose)
 *
 * Reusa al 100% los tokens de core.css. Bicromía estricta.
 */

/* ─── Modelo de caja ─────────────────────────────────────────
   Las siete hojas de página antiguas abren con esta misma línea,
   pero core.css / modern.css / interior.css no la tienen. Como una
   página migrada carga el sistema nuevo Y DEJA de cargar su hoja
   antigua (si_is_modern), se quedaba sin el reset: los campos con
   width:100% + padding + border medían 31px de más y se salían. */
*, *::before, *::after { box-sizing: border-box; }


/* ─── Override @font-face Oswald (path fix) ──────────────────
   core.css declara los @font-face con `url("./fonts/...")`, que
   relativo a /assets/css/ resuelve a /assets/css/fonts/ → 404.
   Los ficheros reales están en /assets/fonts/. No podemos tocar
   core.css (es la maqueta verbatim) así que redeclaramos las dos
   variantes con el path correcto `../fonts/...` desde aquí (este
   fichero también está en /assets/css/). El navegador, ante dos
   @font-face con la misma family+weight+unicode-range, usa la
   declaración con el src que pueda cargar exitosamente.
   IMPORTANTE: mantener idénticos los descriptors (family, weight,
   font-style, font-display, unicode-range) que en core.css. */
@font-face {
	font-family: Oswald;
	font-style: normal;
	font-weight: 200 700;
	font-display: swap;
	src: url("../fonts/oswald-variable.woff2") format("woff2");
	unicode-range: U+0-FF, U+131, U+152-153, U+2BB-2BC, U+2C6, U+2DA, U+2DC, U+304, U+308, U+329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: Oswald;
	font-style: normal;
	font-weight: 200 700;
	font-display: swap;
	src: url("../fonts/oswald-variable-latin-ext.woff2") format("woff2");
	unicode-range: U+100-2BA, U+2BD-2C5, U+2C7-2CC, U+2CE-2D7, U+2DD-2FF, U+304, U+308, U+329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}

/* ─── Override @font-face Inter (path fix) ───────────────────
   Mismo caso que Oswald, justo arriba: core.css declara Inter con
   `url("./fonts/...")` → /assets/css/fonts/ → 404, y el texto de
   lectura de todo el sitio caía a la fuente del sistema. Inter se
   añadió el 24-ago, después de aquel parche, y quedó fuera.
   Los descriptors son IDÉNTICOS a los de core.css (family, style,
   weight, display y unicode-range): si no lo son, esta declaración
   no sustituye a la rota, convive con ella y la carga falla. */
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('../fonts/inter-variable.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Inter';
	font-style: normal;
	font-weight: 400 700;
	font-display: swap;
	src: url('../fonts/inter-variable-latin-ext.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}


/* ─── Guardarraíl tipográfico (regla canónica del audit) ─────
   Fuerza Oswald en elementos que en muchos navegadores NO heredan
   font-family por defecto (form controls, SVG text). Sin esto, los
   <input>, <select>, <button>, <textarea> caerían a system-ui en
   Chrome/Safari/Firefox, violando la regla de "todo texto regular
   usa Oswald". El SVG <text> hereda en Chrome pero no en Safari.
   Mantén la cascada limpia: solo redeclara la familia, NO los pesos
   (cada componente fija su propio peso). */
button, input, select, textarea, optgroup, option, fieldset, legend {
	font-family: var(--ff-body);
}
svg text {
	font-family: var(--ff-display);
}

/* ─── Banner top ───────────────────────────────────────────── */
.si-banner-top {
	background: var(--si-azul-impact);
	color: #fff;
	font-family: var(--ff-display);
	font-weight: 600;
	font-size: 12px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}
.si-banner-top-inner {
	max-width: 1440px; margin: 0 auto;
	padding: 10px 24px;
	display: flex; align-items: center; gap: 16px; flex-wrap: wrap;
}
.si-banner-top .text { flex: 1; min-width: 200px; }
.si-banner-top .cd { opacity: 0.85; font-variant-numeric: tabular-nums; }
.si-banner-top .cta {
	background: #fff; color: var(--si-azul-impact);
	padding: 6px 12px;
	clip-path: var(--chamfer-sm);
	display: inline-flex; align-items: center; gap: 6px;
	text-decoration: none;
	transition: opacity .2s;
}
.si-banner-top .cta:hover { opacity: .85; }

/* ─── Prose · bloque WYSIWYG en single y bases legales ──── */
.si-prose {
	font-family: var(--ff-display);
	font-weight: 400;
	font-size: 18px;
	line-height: 1.55;
	color: var(--si-azul-impact);
	max-width: 760px;
}
.si-prose h2, .si-prose h3, .si-prose h4 {
	font-family: var(--ff-display);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin: 1.6em 0 0.6em;
}
.si-prose h2 { font-size: 28px; line-height: 1.1; }
.si-prose h3 { font-size: 22px; line-height: 1.2; }
.si-prose h4 { font-size: 18px; line-height: 1.2; }
.si-prose p, .si-prose ul, .si-prose ol, .si-prose blockquote { margin: 0 0 1em; }
.si-prose ul, .si-prose ol { padding-left: 1.4em; }
.si-prose ul li, .si-prose ol li { margin-bottom: 0.4em; }
.si-prose a { color: var(--si-azul-impact); text-decoration: underline; text-underline-offset: 3px; }
.si-prose a:hover { background: var(--si-azul-impact); color: #fff; }
.si-prose blockquote {
	padding: 16px 20px;
	border-left: 3px solid var(--si-azul-impact);
	background: #F2F4FF;
	font-style: italic;
}
.si-prose code {
	background: #F2F4FF;
	padding: 2px 6px;
	font-size: 0.9em;
	/* Regla canónica del audit tipográfico: todo texto regular usa Oswald.
	   Mantenemos un fallback monospace para escenarios donde Oswald no carga. */
	font-family: var(--ff-body), ui-monospace, monospace;
}

/* ─── Single ponente ──────────────────────────────────── */
.si-speaker-single { padding-top: 80px; background: #fff; color: var(--si-azul-impact); }
.si-speaker-single .si-wrap { max-width: 1280px; margin: 0 auto; padding: 0 48px; }
.si-spk-hero { padding: 80px 0 48px; }
.si-spk-hero-grid {
	display: grid; grid-template-columns: 380px 1fr; gap: 56px;
	align-items: end;
}
.si-spk-hero-grid .photo {
	aspect-ratio: 4/5;
	overflow: hidden;
	clip-path: var(--chamfer-md);
	background: var(--si-azul-impact);
	color: #fff;
	display: grid; place-items: center;
}
.si-spk-hero-grid .photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.si-spk-hero-grid .photo .initials {
	font-family: var(--ff-display); font-weight: 600;
	font-size: clamp(80px, 8vw, 140px);
	letter-spacing: 0.06em;
}
.si-spk-hero-grid .info .back {
	font-family: var(--ff-display); font-size: 12px; letter-spacing: 0.18em;
	text-transform: uppercase; opacity: 0.6;
	color: var(--si-azul-impact); text-decoration: none;
	display: inline-block; margin-bottom: 24px;
}
.si-spk-hero-grid .info .back:hover { opacity: 1; }
.si-spk-hero-grid .info .track-badge {
	display: inline-block;
	background: var(--si-azul-impact); color: #fff;
	padding: 6px 12px; font-size: 11px; letter-spacing: 0.18em;
	font-weight: 600; text-transform: uppercase;
	clip-path: var(--chamfer-sm);
	margin-bottom: 16px;
}
.si-spk-hero-grid .info h1 { margin-bottom: 12px; }
.si-spk-hero-grid .info .role {
	font-family: var(--ff-display); font-size: 18px;
	letter-spacing: 0.04em;
	font-weight: 500;
	margin-bottom: 24px;
}
.si-spk-hero-grid .info .role a { color: var(--si-azul-impact); text-decoration: underline; text-underline-offset: 3px; }
.si-spk-hero-grid .info .links { display: flex; gap: 18px; flex-wrap: wrap; }
.si-spk-hero-grid .info .links a {
	color: var(--si-azul-impact);
	font-family: var(--ff-display);
	font-size: 13px; letter-spacing: 0.12em;
	text-transform: uppercase; font-weight: 600;
	text-decoration: none;
	border-bottom: 1.5px solid var(--si-azul-impact);
	padding-bottom: 4px;
}
.si-spk-hero-grid .info .links a:hover { background: var(--si-azul-impact); color: #fff; padding: 4px 8px; border-bottom: 0; }

.si-spk-bio, .si-spk-sessions, .si-spk-related { padding: 48px 0; border-top: 1.5px solid rgba(0,19,255,0.2); }

@media (max-width: 760px) {
	.si-spk-hero-grid { grid-template-columns: 1fr; gap: 32px; }
	.si-speaker-single .si-wrap { padding: 0 24px; }
	.si-spk-hero-grid .photo { max-width: 280px; }
}

/* ─── Single noticia ─────────────────────────────────── */
.si-news-single { background: #fff; color: var(--si-azul-impact); padding-top: 80px; }
.si-news-single-hero { padding: 80px 0 32px; }
.si-news-single-wrap { max-width: 760px; margin: 0 auto; padding: 0 24px; }
.si-news-single .back {
	font-family: var(--ff-display); font-size: 12px; letter-spacing: 0.18em;
	text-transform: uppercase; opacity: 0.6;
	color: var(--si-azul-impact); text-decoration: none;
	margin-bottom: 24px; display: inline-block;
}
.si-news-single .back:hover { opacity: 1; }
.si-news-single .cat {
	display: inline-block;
	background: var(--si-azul-impact); color: #fff;
	padding: 4px 10px; font-size: 11px; letter-spacing: 0.18em;
	font-weight: 600; text-transform: uppercase;
	clip-path: var(--chamfer-sm); text-decoration: none;
	margin-bottom: 18px;
}
.si-news-single .sub {
	font-family: var(--ff-display); font-size: 14px;
	letter-spacing: 0.18em; opacity: 0.6; text-transform: uppercase;
	margin-bottom: 8px;
}
.si-news-single h1 {
	font-family: var(--ff-display); font-weight: 600;
	text-transform: uppercase; letter-spacing: 0.04em;
	font-size: clamp(36px, 5vw, 60px); line-height: 1; margin-bottom: 20px;
}
.si-news-single .meta {
	font-family: var(--ff-display); font-size: 12px;
	letter-spacing: 0.18em; opacity: 0.7; text-transform: uppercase;
	display: flex; gap: 12px;
}
.si-news-cover { max-width: 1280px; margin: 32px auto 56px; padding: 0 24px; }
.si-news-cover img { width: 100%; height: auto; display: block; clip-path: var(--chamfer-md); }
.si-news-body { padding: 0 0 80px; }
.si-news-body .si-wrap { max-width: 760px; padding: 0 24px; margin: 0 auto; }

/* ─── Filtros / chips compartidos ─────────────────────── */
.filter-group {
	display: flex; flex-wrap: wrap; align-items: center; gap: 8px;
	padding: 16px 0;
}
.filter-group .lbl {
	font-family: var(--ff-display); font-size: 11px;
	letter-spacing: 0.18em; opacity: 0.6;
	text-transform: uppercase;
	margin-right: 4px;
}
.si-chip {
	background: transparent;
	border: 1.5px solid var(--si-azul-impact);
	color: var(--si-azul-impact);
	font-family: var(--ff-display); font-size: 12px;
	font-weight: 600; letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 7px 12px;
	clip-path: var(--chamfer-sm);
	cursor: pointer; user-select: none;
	transition: background .2s, color .2s;
	text-decoration: none; display: inline-block;
}
.si-chip:hover, .si-chip.is-on { background: var(--si-azul-impact); color: #fff; }

/* ─── Page-templates basics ───────────────────────────── */
.si-prog, .si-spk-page, .si-show, .si-aw, .si-spo, .si-tk, .si-lg, .si-aliados, .si-cta, .si-news {
	background: #fff; color: var(--si-azul-impact);
	padding-top: 80px;
}
.si-wrap { max-width: 1440px; margin: 0 auto; padding: 0 48px; }

.si-prog-hero, .si-spk-hero-page, .si-show-hero, .si-aw-hero, .si-spo-hero, .si-tk-hero, .si-lg-hero, .si-aliados-hero, .si-cta-hero, .si-news-hero {
	padding: 80px 0 48px;
}
.si-prog-hero .back, .si-spk-hero-page .back, .si-show-hero .back, .si-aw-hero .back,
.si-spo-hero .back, .si-tk-hero .back, .si-lg-hero .back, .si-aliados-hero .back,
.si-cta-hero .back, .si-news-hero .back {
	font-family: var(--ff-display); font-size: 12px;
	letter-spacing: 0.18em; opacity: 0.6;
	text-transform: uppercase;
	color: var(--si-azul-impact); text-decoration: none;
	margin-bottom: 24px; display: inline-block;
}
.si-prog-hero h1, .si-spk-hero-page h1, .si-show-hero h1, .si-aw-hero h1,
.si-spo-hero h1, .si-tk-hero h1, .si-lg-hero h1, .si-aliados-hero h1,
.si-cta-hero h1, .si-news-hero h1 {
	margin-bottom: 16px;
}
.si-prog-hero .lede, .si-spk-hero-page .lede, .si-show-hero .lede, .si-aw-hero .lede,
.si-spo-hero .lede, .si-tk-hero .lede, .si-lg-hero .lede, .si-aliados-hero .lede,
.si-cta-hero .lede, .si-news-hero .lede {
	font-family: var(--ff-display); font-size: 20px;
	letter-spacing: 0.04em; max-width: 720px;
	font-weight: 400; line-height: 1.4;
}

/* Section heads para todas las pages */
.si-section-head {
	display: grid; grid-template-columns: 60px 1fr auto;
	align-items: baseline; gap: 24px;
	padding: 32px 0 20px;
	border-top: 1.5px solid rgba(0,19,255,0.25);
	margin-top: 48px;
}
.si-section-head .n {
	font-family: var(--ff-display); font-weight: 600;
	font-size: 36px; line-height: 1;
}
.si-section-head h2 {
	font-family: var(--ff-display); font-weight: 600;
	text-transform: uppercase; letter-spacing: 0.04em;
	font-size: clamp(24px, 2.6vw, 36px); line-height: 1.05;
}
.si-section-head .tail {
	font-family: var(--ff-display); font-size: 12px;
	letter-spacing: 0.18em; opacity: 0.6;
	text-transform: uppercase; align-self: end;
}
.si-section-head .tail a { color: var(--si-azul-impact); text-decoration: none; border-bottom: 1.5px solid; }

/* ─── Grid speakers genérico ──────────────────────────── */
.si-spk-grid {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
	margin: 32px 0 64px;
}
@media (max-width: 1100px) { .si-spk-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 800px)  { .si-spk-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .si-spk-grid { grid-template-columns: 1fr; } }

.si-spk-card {
	display: block; text-decoration: none; color: var(--si-azul-impact);
	background: #fff;
	transition: transform .25s var(--ease-atlantic);
}
.si-spk-card .meta { padding: 14px 16px 18px; }
.si-spk-card:hover { transform: translateY(-4px); }
.si-spk-card .photo {
	aspect-ratio: 4/5;
	overflow: hidden;
	background: var(--si-azul-impact);
	clip-path: var(--chamfer-md);
	margin-bottom: 14px;
	color: #fff;
}
.si-spk-card .photo img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s var(--ease-atlantic); }
.si-spk-card:hover .photo img { transform: scale(1.04); }
.si-spk-card .photo--initials { display: grid; place-items: center; font-family: var(--ff-display); font-weight: 600; font-size: 64px; letter-spacing: 0.06em; }
.si-spk-card .meta .track {
	font-family: var(--ff-display); font-size: 10px;
	letter-spacing: 0.22em; opacity: 0.6;
	text-transform: uppercase; margin-bottom: 6px;
}
.si-spk-card .meta .name {
	font-family: var(--ff-display); font-weight: 600;
	font-size: 18px; letter-spacing: 0.02em;
	margin-bottom: 4px;
}
.si-spk-card .meta .role {
	font-family: var(--ff-display); font-size: 13px;
	letter-spacing: 0.04em; opacity: 0.7;
}

/* Keynote larger card */
.si-spk-keynotes-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin: 32px 0 64px; }
@media (max-width: 900px) { .si-spk-keynotes-grid { grid-template-columns: 1fr; } }
.si-spk-key {
	display: grid; grid-template-columns: 1fr; gap: 16px;
	text-decoration: none; color: inherit;
}
.si-spk-key .photo { aspect-ratio: 1/1; overflow: hidden; clip-path: var(--chamfer-md); background: var(--si-azul-impact); color: #fff; display: grid; place-items: center; }
.si-spk-key .photo img { width: 100%; height: 100%; object-fit: cover; }
.si-spk-key .badge { display: inline-block; padding: 4px 8px; background: var(--si-azul-impact); color: #fff; font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; clip-path: var(--chamfer-sm); margin-bottom: 10px; }
.si-spk-key .name { font-family: var(--ff-display); font-weight: 600; text-transform: uppercase; font-size: 26px; letter-spacing: 0.04em; line-height: 1; margin-bottom: 8px; }
.si-spk-key .role { font-family: var(--ff-display); font-size: 14px; letter-spacing: 0.04em; opacity: 0.7; margin-bottom: 8px; }
.si-spk-key .bio { font-family: var(--ff-display); font-size: 14px; line-height: 1.5; }

/* ─── Sessions list ──────────────────────────────────── */
.si-prog-list, .si-prog-preview { display: flex; flex-direction: column; gap: 16px; margin: 24px 0 56px; }
.si-session {
	display: grid; grid-template-columns: 100px 1fr; gap: 24px;
	padding: 18px 22px;
	border: 1.5px solid var(--si-azul-impact);
	clip-path: var(--chamfer-md);
	background: #fff;
}
.si-session.is-keynote { background: var(--si-azul-impact); color: #fff; }
.si-session.is-keynote .speakers .speaker { color: #fff; }
.si-session.is-break { opacity: 0.65; background: #F2F4FF; }
.si-session .time {
	font-family: var(--ff-display); font-weight: 600;
	font-size: 22px; letter-spacing: 0.04em;
	font-variant-numeric: tabular-nums;
}
.si-session .time .end { display: block; font-size: 12px; opacity: 0.6; margin-top: 4px; }
.si-session .body .hd {
	display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 8px;
	font-family: var(--ff-display); font-size: 11px;
	letter-spacing: 0.18em; text-transform: uppercase;
}
.si-session .body .hd .kind, .si-session .body .hd .track, .si-session .body .hd .stage {
	padding: 2px 8px; clip-path: var(--chamfer-sm); border: 1.5px solid currentColor;
	font-weight: 600;
}
.si-session.is-keynote .body .hd .kind, .si-session.is-keynote .body .hd .track, .si-session.is-keynote .body .hd .stage { border-color: rgba(255,255,255,0.5); }
.si-session .body .title {
	font-family: var(--ff-display); font-weight: 600;
	text-transform: uppercase; letter-spacing: 0.02em;
	font-size: 20px; line-height: 1.2; margin-bottom: 8px;
}
.si-session .body .lede {
	font-family: var(--ff-display); font-size: 14px; line-height: 1.5;
	margin-bottom: 12px;
}
.si-session .speakers { display: flex; gap: 12px; flex-wrap: wrap; }
.si-session .speakers .speaker {
	display: inline-flex; align-items: center; gap: 8px;
	color: inherit; text-decoration: none;
	font-family: var(--ff-display); font-size: 12px;
	letter-spacing: 0.04em;
}
.si-session .speakers .speaker .ini {
	width: 28px; height: 28px; border-radius: 50%;
	display: grid; place-items: center;
	background: rgba(0,19,255,0.1); color: var(--si-azul-impact);
	font-weight: 600; font-size: 11px;
}
.si-session.is-keynote .speakers .speaker .ini { background: rgba(255,255,255,0.2); color: #fff; }

@media (max-width: 600px) {
	.si-session { grid-template-columns: 1fr; gap: 8px; padding: 16px; }
}

/* ─── Programa tabs ──────────────────────────────────── */
.si-prog-tabs { display: flex; gap: 0; padding: 24px 0; flex-wrap: wrap; }
.si-prog-tab {
	background: transparent; border: 1.5px solid var(--si-azul-impact);
	color: var(--si-azul-impact);
	font-family: var(--ff-display); font-weight: 600;
	font-size: 16px; letter-spacing: 0.06em;
	text-transform: uppercase;
	padding: 14px 24px;
	clip-path: var(--chamfer-md);
	cursor: pointer;
	margin-right: 12px;
	transition: background .2s, color .2s;
}
.si-prog-tab[aria-selected="true"] { background: var(--si-azul-impact); color: #fff; }
.si-prog-tab:hover { background: rgba(0,19,255,0.08); }
.si-prog-tab[aria-selected="true"]:hover { background: var(--si-azul-impact); }
.si-prog-controls { padding-bottom: 32px; border-bottom: 1.5px solid rgba(0,19,255,0.25); margin-bottom: 32px; }
.si-prog-day[hidden] { display: none; }

/* ─── Showcase / Awards extras ───────────────────────── */
.si-show-hero, .si-aw-hero { background: var(--si-azul-impact); color: #fff; padding: 100px 0 64px; }
.si-show-hero .back, .si-aw-hero .back { color: #fff; opacity: 0.7; }
.si-show-hero .lede, .si-aw-hero .lede { opacity: 0.85; }
.si-show-hero .deadline, .si-aw-hero .deadline { font-family: var(--ff-display); font-weight: 600; font-size: 14px; letter-spacing: 0.16em; text-transform: uppercase; padding: 12px 16px; background: rgba(255,255,255,0.1); display: inline-block; margin: 24px 0; clip-path: var(--chamfer-sm); }
.si-show-hero .status { display: inline-flex; align-items: center; gap: 8px; font-family: var(--ff-display); font-size: 12px; letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.85; margin-bottom: 20px; }
.si-show-hero .status .dot { width: 8px; height: 8px; border-radius: 50%; background: #fff; animation: si-pulse 2s ease-in-out infinite; }
.si-show-hero .status--closed .dot { animation: none; opacity: 0.5; }
@keyframes si-pulse { 0%, 100% { opacity: 1; transform: scale(1); } 50% { opacity: 0.4; transform: scale(0.8); } }

.si-show-benefits { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 32px 0 64px; }
@media (max-width: 800px) { .si-show-benefits { grid-template-columns: 1fr; } }
.si-show-benefits .ben { padding: 24px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); }
.si-show-benefits .ben h3 { font-family: var(--ff-display); font-weight: 600; text-transform: uppercase; font-size: 22px; margin-bottom: 12px; letter-spacing: 0.04em; }
.si-show-benefits .ben p { font-family: var(--ff-display); font-size: 14px; line-height: 1.5; }

.si-show-rules-list { padding: 0 0 0 24px; margin: 24px 0 64px; }
.si-show-rules-list li { font-family: var(--ff-display); font-size: 16px; line-height: 1.6; margin-bottom: 14px; }

.si-show-timeline { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; padding: 0; list-style: none; margin: 24px 0 64px; }
@media (max-width: 900px) { .si-show-timeline { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .si-show-timeline { grid-template-columns: 1fr; } }
.si-show-timeline li { padding: 20px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); }
.si-show-timeline .step { font-family: var(--ff-display); font-weight: 600; font-size: 32px; line-height: 1; margin-bottom: 8px; }
.si-show-timeline h3 { font-family: var(--ff-display); font-weight: 600; text-transform: uppercase; font-size: 16px; letter-spacing: 0.04em; margin-bottom: 8px; }
.si-show-timeline p { font-family: var(--ff-display); font-size: 13px; line-height: 1.5; }

/* NOTE: .si-show-jury-card layout vive en assets/css/showcase.css (maqueta). El bloque
   anterior referenciaba clases obsoletas (.ini/.nm/.rl) e imponia align-items:center
   que colapsaba .photo a width:0 / height:0. Si en el futuro se necesita override
   responsive del grid, hacerlo respetando que las cards hijas usan .photo + .meta
   (ver template-showcase.php L222-228). */

/* Showcase form */
.si-show-form-grid, .si-spo-form-grid, .si-cta-form-grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 18px;
	margin: 32px 0 24px; max-width: 760px;
}
.si-show-form-grid label, .si-spo-form-grid label, .si-cta-form-grid label {
	display: flex; flex-direction: column; gap: 6px;
	font-family: var(--ff-display); font-size: 11px;
	letter-spacing: 0.18em; text-transform: uppercase;
	font-weight: 600; opacity: 0.8;
}
.si-show-form-grid label.full, .si-spo-form-grid label.full, .si-cta-form-grid label.full,
.si-show-form-grid button.full, .si-spo-form-grid button.full, .si-cta-form-grid button.full { grid-column: 1 / -1; }
.si-show-form-grid input, .si-show-form-grid select, .si-show-form-grid textarea,
.si-spo-form-grid input, .si-spo-form-grid select, .si-spo-form-grid textarea,
.si-cta-form-grid input, .si-cta-form-grid select, .si-cta-form-grid textarea {
	background: transparent;
	border: 1.5px solid var(--si-azul-impact);
	color: var(--si-azul-impact);
	font-family: var(--ff-display); font-size: 14px; font-weight: 400;
	letter-spacing: 0.02em;
	padding: 12px 14px;
	clip-path: var(--chamfer-sm);
	outline: none;
	text-transform: none;
}
.si-show-form-grid textarea, .si-spo-form-grid textarea, .si-cta-form-grid textarea { resize: vertical; }

/* Showcase archive */
.si-show-archive-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 24px 0 64px; }
@media (max-width: 900px) { .si-show-archive-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .si-show-archive-grid { grid-template-columns: 1fr; } }
.si-show-proj { padding: 18px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); }
.si-show-proj .hd { display: flex; gap: 12px; font-family: var(--ff-display); font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.7; margin-bottom: 12px; }
.si-show-proj .pitch { font-family: var(--ff-display); font-size: 14px; line-height: 1.5; margin: 8px 0; }
.si-show-proj .status { font-family: var(--ff-display); font-size: 12px; opacity: 0.6; padding-top: 8px; border-top: 1px solid rgba(0,19,255,0.2); margin-top: 12px; }

/* ─── Awards categorías ──────────────────────────────── */
.si-aw-cats-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 24px 0 56px; }
@media (max-width: 900px) { .si-aw-cats-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px) { .si-aw-cats-grid { grid-template-columns: 1fr; } }
.si-aw-cat { padding: 24px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); }
.si-aw-cat .num { font-family: var(--ff-display); font-weight: 600; font-size: 11px; letter-spacing: 0.18em; opacity: 0.6; margin-bottom: 12px; }
.si-aw-cat h3 { margin-bottom: 8px; }

.si-aw-year { padding: 24px 0; border-top: 1px solid rgba(0,19,255,0.2); }
.si-aw-year .yr { font-family: var(--ff-display); font-weight: 600; font-size: 32px; letter-spacing: 0.04em; margin-bottom: 16px; }
.si-aw-year-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; }
@media (max-width: 700px) { .si-aw-year-grid { grid-template-columns: 1fr; } }
.si-aw-card { padding: 18px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); }
.si-aw-card .cat { font-family: var(--ff-display); font-size: 10px; letter-spacing: 0.22em; opacity: 0.6; text-transform: uppercase; margin-bottom: 10px; }
.si-aw-card .winner { font-family: var(--ff-display); font-size: 14px; opacity: 0.8; margin-top: 8px; }
.si-aw-card .quote { padding: 12px 14px; background: #F2F4FF; clip-path: var(--chamfer-sm); margin-top: 12px; font-family: var(--ff-display); font-size: 13px; font-style: italic; line-height: 1.5; }

/* ─── Sponsors page ─────────────────────────────────── */
.si-spo-hero { background: var(--si-azul-impact); color: #fff; padding: 100px 0 64px; }
.si-spo-hero .back { color: #fff; opacity: 0.7; }
.si-spo-tiers-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 24px 0 64px; }
@media (max-width: 900px) { .si-spo-tiers-grid { grid-template-columns: 1fr; } }
.si-spo-tier-card { padding: 28px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); display: flex; flex-direction: column; gap: 16px; }
.si-spo-tier-card.is-featured { background: var(--si-azul-impact); color: #fff; }
.si-spo-tier-card .hd { display: flex; justify-content: space-between; align-items: center; }
.si-spo-tier-card .lv { font-family: var(--ff-display); font-weight: 600; font-size: 22px; letter-spacing: 0.04em; opacity: 0.6; }
.si-spo-tier-card .badge { padding: 4px 10px; background: #fff; color: var(--si-azul-impact); font-size: 10px; letter-spacing: 0.2em; text-transform: uppercase; font-weight: 700; clip-path: var(--chamfer-sm); }
.si-spo-tier-card .price { font-family: var(--ff-display); font-weight: 600; font-size: 20px; letter-spacing: 0.04em; padding: 12px 0; border-top: 1px solid currentColor; border-bottom: 1px solid currentColor; opacity: 0.85; }
.si-spo-tier-card ul { padding: 0; list-style: none; flex: 1; }
.si-spo-tier-card ul li { padding: 6px 0; font-family: var(--ff-display); font-size: 13px; letter-spacing: 0.02em; line-height: 1.4; padding-left: 18px; position: relative; }
.si-spo-tier-card ul li::before { content: '▸'; position: absolute; left: 0; opacity: 0.5; }

.si-spo-strip { display: flex; flex-wrap: wrap; gap: 24px 32px; align-items: center; padding: 24px 0; }
.si-spo-logo { display: inline-flex; align-items: center; padding: 12px 16px; min-height: 60px; opacity: 0.85; transition: opacity .2s; }
.si-spo-logo:hover { opacity: 1; }
.si-spo-logo img { max-height: 40px; width: auto; max-width: 140px; }
.si-spo-logo .text { font-family: var(--ff-display); font-weight: 600; font-size: 16px; letter-spacing: 0.04em; }

.si-spo-tier { padding: 24px 0; border-top: 1px solid rgba(0,19,255,0.2); }
.si-spo-tier .si-eyebrow { margin-bottom: 8px; }

.si-spo-why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 24px 0 56px; }
@media (max-width: 900px) { .si-spo-why-grid { grid-template-columns: repeat(2, 1fr); } }
.si-spo-why-grid .num-cell { padding: 24px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); }
.si-spo-why-grid .big { font-family: var(--ff-display); font-weight: 600; font-size: 64px; line-height: 1; }
.si-spo-why-grid .lbl { font-family: var(--ff-display); font-size: 12px; letter-spacing: 0.06em; margin-top: 8px; opacity: 0.7; }

/* ─── Tickets page ──────────────────────────────────── */
.si-tk-hero { background: var(--si-azul-impact); color: #fff; padding: 100px 0 64px; }
.si-tk-hero .back { color: #fff; opacity: 0.7; }
.si-tk-hero .early { font-family: var(--ff-display); font-weight: 600; font-size: 14px; letter-spacing: 0.16em; text-transform: uppercase; padding: 12px 18px; background: rgba(255,255,255,0.1); display: inline-flex; gap: 12px; align-items: center; margin-top: 24px; clip-path: var(--chamfer-sm); }
.si-tk-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 24px 0 64px; }
@media (max-width: 1100px) { .si-tk-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .si-tk-grid { grid-template-columns: 1fr; } }
.si-tk-card { padding: 24px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); display: flex; flex-direction: column; gap: 14px; }
.si-tk-card.is-vip { background: var(--si-azul-impact); color: #fff; }
.si-tk-card .hd { display: flex; justify-content: space-between; font-family: var(--ff-display); font-weight: 600; font-size: 11px; letter-spacing: 0.18em; text-transform: uppercase; opacity: 0.7; }
.si-tk-card .price { display: flex; align-items: baseline; gap: 8px; }
.si-tk-card .price .now { font-family: var(--ff-display); font-weight: 600; font-size: 36px; letter-spacing: 0.02em; }
.si-tk-card .price .old { font-family: var(--ff-display); font-size: 16px; opacity: 0.5; text-decoration: line-through; }
.si-tk-card ul { padding: 0; list-style: none; }
.si-tk-card ul li { padding: 6px 0; font-family: var(--ff-display); font-size: 13px; line-height: 1.4; padding-left: 18px; position: relative; }
.si-tk-card ul li::before { content: '▸'; position: absolute; left: 0; opacity: 0.5; }

.si-faq-list { display: flex; flex-direction: column; gap: 12px; max-width: 800px; margin: 24px 0 64px; }
.si-faq-list details { padding: 16px 20px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); }
.si-faq-list summary { font-family: var(--ff-display); font-weight: 600; font-size: 16px; letter-spacing: 0.02em; cursor: pointer; }
.si-faq-list .ans { padding-top: 12px; font-family: var(--ff-display); font-size: 14px; line-height: 1.55; }

/* ─── Lugar ─────────────────────────────────────────── */
.si-lg-hero .venue-img { margin-top: 32px; }
.si-lg-hero .venue-img img { width: 100%; height: auto; max-height: 480px; object-fit: cover; clip-path: var(--chamfer-md); }
.si-lg-modes { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 24px 0 56px; }
@media (max-width: 900px) { .si-lg-modes { grid-template-columns: 1fr; } }
.si-lg-modes .mode { padding: 20px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); }
.si-lg-modes .mode h3 { font-family: var(--ff-display); font-weight: 600; text-transform: uppercase; font-size: 18px; letter-spacing: 0.04em; margin-bottom: 12px; }
.si-lg-modes .mode p { font-family: var(--ff-display); font-size: 14px; line-height: 1.5; }
.si-lg-hotels-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 24px 0 56px; }
@media (max-width: 900px) { .si-lg-hotels-grid { grid-template-columns: 1fr; } }
.si-lg-hotels-grid .hotel { padding: 20px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); display: flex; flex-direction: column; gap: 8px; }
.si-lg-hotels-grid .hotel .dist, .si-lg-hotels-grid .hotel .disc { font-family: var(--ff-display); font-size: 12px; letter-spacing: 0.06em; opacity: 0.7; }
.si-lg-hotels-grid .hotel .disc .code { background: var(--si-azul-impact); color: #fff; padding: 2px 8px; clip-path: var(--chamfer-sm); font-weight: 600; }
.si-lg-hotels-grid .hotel a { margin-top: auto; align-self: flex-start; }

/* ─── Aliados ───────────────────────────────────────── */
.si-aliados-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin: 24px 0 56px; }
@media (max-width: 900px) { .si-aliados-grid { grid-template-columns: repeat(2, 1fr); } }
.si-aliado-card { padding: 20px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); display: flex; flex-direction: column; align-items: center; gap: 12px; text-decoration: none; color: inherit; transition: transform .2s; }
.si-aliado-card:hover { transform: translateY(-3px); }
.si-aliado-card .logo { display: flex; align-items: center; justify-content: center; height: 60px; }
.si-aliado-card .logo img { max-height: 50px; max-width: 150px; }
.si-aliado-card .text { font-family: var(--ff-display); font-weight: 600; font-size: 18px; letter-spacing: 0.02em; }
.si-aliado-card .nm { font-family: var(--ff-display); font-size: 13px; letter-spacing: 0.06em; opacity: 0.8; text-align: center; }

/* ─── Contacto ──────────────────────────────────────── */
.si-cta-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px; margin: 24px 0 56px; }
@media (max-width: 700px) { .si-cta-grid { grid-template-columns: 1fr; } }
.si-cta-card { padding: 20px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); }
.si-cta-card h3 { font-family: var(--ff-display); font-weight: 600; text-transform: uppercase; font-size: 18px; letter-spacing: 0.04em; margin-bottom: 8px; }
.si-cta-card p { font-family: var(--ff-display); font-size: 13px; line-height: 1.5; opacity: 0.85; margin-bottom: 12px; }
.si-cta-card .mail { font-family: var(--ff-display); font-weight: 600; font-size: 14px; letter-spacing: 0.04em; color: var(--si-azul-impact); text-decoration: underline; text-underline-offset: 4px; }

.si-cta-venue .venue { padding: 24px; border: 1.5px solid var(--si-azul-impact); clip-path: var(--chamfer-md); margin-top: 16px; }
.si-cta-venue address { font-style: normal; font-family: var(--ff-display); font-size: 14px; line-height: 1.6; margin: 8px 0 16px; }

/* ─── Noticias ──────────────────────────────────────── */
.si-news-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; margin: 24px 0 56px; }
@media (max-width: 1000px) { .si-news-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .si-news-grid { grid-template-columns: 1fr; } }
.si-news-card { display: flex; flex-direction: column; gap: 8px; }
.si-news-card .cover { display: block; }
.si-news-card .cover img { width: 100%; height: 220px; object-fit: cover; clip-path: var(--chamfer-md); }
.si-news-card .cat { display: inline-block; font-family: var(--ff-display); font-size: 10px; letter-spacing: 0.22em; opacity: 0.6; text-transform: uppercase; }
.si-news-card .meta { font-family: var(--ff-display); font-size: 11px; letter-spacing: 0.18em; opacity: 0.6; text-transform: uppercase; }
.si-news-card h2 { font-size: 22px; line-height: 1.15; }
.si-news-card h2 a { color: var(--si-azul-impact); text-decoration: none; }
.si-news-card h2 a:hover { text-decoration: underline; text-underline-offset: 4px; }
.si-news-card p { font-family: var(--ff-display); font-size: 14px; line-height: 1.5; opacity: 0.85; }

/* ─── CTA Final Home ────────────────────────────────── */
.si-cta-final { background: var(--si-azul-impact); color: #fff; padding: 80px 0; }
.si-cta-final .band { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; padding: 56px; border: 1.5px solid rgba(255,255,255,0.4); clip-path: var(--chamfer-lg); }
@media (max-width: 900px) { .si-cta-final .band { grid-template-columns: 1fr; padding: 32px; } }
.si-cta-final .eyebrow { font-family: var(--ff-display); font-weight: 600; font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase; opacity: 0.7; margin-bottom: 16px; }
.si-cta-final .meta { font-family: var(--ff-display); font-size: 14px; letter-spacing: 0.06em; opacity: 0.85; margin-top: 16px; }

/* ─── Buttons reusables (si la maqueta no los aporta) ── */
.si-btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px; clip-path: var(--chamfer-sm); font-family: var(--ff-display); font-weight: 600; font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase; text-decoration: none; cursor: pointer; transition: opacity .2s, background .2s, color .2s; border: 1.5px solid currentColor; background: var(--si-azul-impact); color: #fff; }
.si-btn:hover { opacity: 0.9; }
.si-btn--white { background: #fff; color: var(--si-azul-impact); border-color: #fff; }
.si-btn--blue { background: var(--si-azul-impact); color: #fff; border-color: var(--si-azul-impact); }
.si-btn--ghost-blue { background: transparent; color: var(--si-azul-impact); border-color: var(--si-azul-impact); }
.si-btn--ghost-white { background: transparent; color: #fff; border-color: #fff; }

/* ─── Aliases para clases usadas en templates pero no en patrocinadores.css ──
   .si-spons-contact-grid / .si-spons-contact-side son usadas por
   template-patrocinadores.php y template-contacto.php pero el CSS solo define
   .si-spons-contact-inner. Sin estas reglas, el layout grid no se aplica y
   el form queda apilado a full-width sin diferenciacion visual.
*/
.si-spons-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.1fr;
  gap: 64px;
  align-items: stretch;
}
@media (max-width: 900px) {
  .si-spons-contact-grid { grid-template-columns: 1fr; gap: 32px; }
}
.si-spons-contact-side {
  border: 1.5px solid currentColor;
  padding: 40px 40px 32px;
  clip-path: var(--chamfer-lg);
  background: var(--si-azul-horizon);
  display: flex; flex-direction: column; gap: 16px;
}
.si-spons-contact-side h3 {
  font-family: var(--ff-display); font-weight: 600;
  font-size: clamp(28px, 2.6vw, 36px); line-height: 1;
  letter-spacing: 0.04em; text-transform: uppercase;
  margin: 0;
}
.si-spons-contact-side p {
  font-family: var(--ff-body); font-size: 15px; line-height: 1.55; margin: 0;
}

/* ═══════════════════════════════════════════════════════════
   HOME · Secciones añadidas que no estaban en la maqueta original.
   .si-pillars y .si-echo establecieron el lenguaje (padding 140px,
   bg azul/blanco alternados). Estas secciones siguen ese patrón.
   ═══════════════════════════════════════════════════════════ */

/* ─── 05 Speakers preview ──────────────────────────────── */
.si-home-spk { background: var(--si-azul-impact); color: #fff; padding: 140px 0; }
.si-home-spk .si-section-head { color: #fff; }
.si-home-spk .si-spk-grid { margin-top: 24px; }

/* ─── 06 Programa preview ──────────────────────────────── */
.si-home-prog { background: #fff; color: var(--si-azul-impact); padding: 140px 0; }
.si-home-prog .si-section-head { color: var(--si-azul-impact); }
.si-home-prog .si-prog-preview { margin-top: 24px; }

/* ─── 07 Inversores strip ──────────────────────────────── */
.si-inv { background: var(--si-azul-impact); color: #fff; padding: 100px 0; }
.si-inv .si-section-head { color: #fff; }
.si-inv-strip {
  display: flex; flex-wrap: wrap; gap: 28px 40px; align-items: center;
  margin-top: 32px; padding: 32px 0;
  border-top: 1px solid rgba(255,255,255,0.2);
  border-bottom: 1px solid rgba(255,255,255,0.2);
}
.si-inv-strip .logo {
  display: inline-flex; align-items: center; min-height: 56px;
  padding: 8px 12px; opacity: 0.85; transition: opacity .2s;
  font-family: var(--ff-display); font-weight: 600;
  font-size: 15px; letter-spacing: 0.04em; color: #fff;
  text-decoration: none;
}
.si-inv-strip .logo:hover { opacity: 1; }
.si-inv-strip .logo img { max-height: 40px; width: auto; max-width: 160px; filter: brightness(0) invert(1); }

/* ─── 08 Números ────────────────────────────────────────── */
.si-numeros { background: #fff; color: var(--si-azul-impact); padding: 140px 0; }
.si-numeros .si-section-head { color: var(--si-azul-impact); }
.si-numeros-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px;
  margin-top: 32px;
}
@media (max-width: 1100px) { .si-numeros-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px)  { .si-numeros-grid { grid-template-columns: 1fr; } }
.si-numeros .num-cell {
  padding: 32px 24px;
  border-top: 1.5px solid currentColor;
  display: flex; flex-direction: column; gap: 12px;
}
.si-numeros .num-cell .big {
  font-family: var(--ff-display); font-weight: 600;
  font-size: clamp(64px, 7vw, 110px); line-height: 0.9;
  letter-spacing: 0.02em;
}
.si-numeros .num-cell .lbl {
  font-family: var(--ff-display); font-weight: 500;
  font-size: 12px; letter-spacing: 0.22em; text-transform: uppercase;
  opacity: 0.8;
}

/* ─── 09 / 10 Teasers (Showcase + Awards) ────────────────── */
.si-teaser { padding: 120px 0; }
.si-teaser--showcase { background: var(--si-azul-impact); color: #fff; }
.si-teaser--awards   { background: #fff; color: var(--si-azul-impact); }
.si-teaser .si-section-head { color: inherit; }
.si-teaser-body {
  display: grid; grid-template-columns: 1.5fr 1fr; gap: 40px;
  align-items: end; margin-top: 32px;
  padding-top: 40px; border-top: 1px solid currentColor;
}
@media (max-width: 900px) { .si-teaser-body { grid-template-columns: 1fr; gap: 24px; align-items: start; } }
.si-teaser-body .lede {
  font-family: var(--ff-display); font-weight: 500;
  font-size: clamp(22px, 2.2vw, 30px); line-height: 1.3;
  letter-spacing: 0.01em; max-width: 720px; margin: 0;
}
.si-teaser-body .deadline {
  font-family: var(--ff-display); font-weight: 600;
  font-size: 13px; letter-spacing: 0.18em; text-transform: uppercase;
  opacity: 0.8; margin-top: 16px;
}
.si-teaser-body .deadline .lbl { opacity: 0.7; }
.si-teaser-body .si-btn { justify-self: end; align-self: end; }
@media (max-width: 900px) { .si-teaser-body .si-btn { justify-self: start; } }

/* ─── 11 Patrocinadores en home ────────────────────────── */
.si-spo-home { background: var(--si-azul-impact); color: #fff; padding: 140px 0; }
.si-spo-home .si-section-head { color: #fff; }
.si-spo-home .si-spo-tier {
  border-top-color: rgba(255,255,255,0.25);
  margin-top: 24px;
}
.si-spo-home .si-spo-tier .si-eyebrow {
  font-family: var(--ff-display); font-weight: 600;
  font-size: 11px; letter-spacing: 0.24em; text-transform: uppercase;
  opacity: 0.7; padding: 8px 0;
}
.si-spo-home .si-spo-strip { padding: 16px 0 8px; }
.si-spo-home .si-spo-logo {
  font-family: var(--ff-display); font-weight: 600;
  font-size: 15px; letter-spacing: 0.04em; color: #fff;
  text-decoration: none;
}
.si-spo-home .si-spo-logo .text { color: #fff; }
.si-spo-home .si-spo-logo img { filter: brightness(0) invert(1); max-height: 40px; }

/* ─── Section-head: garantizar contraste sobre fondo azul ─── */
.si-home-spk .si-section-head .tail a,
.si-home-prog .si-section-head .tail a,
.si-inv .si-section-head .tail a,
.si-numeros .si-section-head .tail a,
.si-teaser .si-section-head .tail a,
.si-spo-home .si-section-head .tail a { color: inherit; text-decoration: none; opacity: 0.85; }
.si-home-spk .si-section-head .tail a:hover,
.si-home-prog .si-section-head .tail a:hover,
.si-inv .si-section-head .tail a:hover,
.si-numeros .si-section-head .tail a:hover,
.si-teaser .si-section-head .tail a:hover,
.si-spo-home .si-section-head .tail a:hover { opacity: 1; }

/* ─── Responsive padding global home secciones añadidas ──── */
@media (max-width: 720px) {
  .si-home-spk, .si-home-prog, .si-numeros, .si-spo-home { padding: 80px 0; }
  .si-inv, .si-teaser { padding: 64px 0; }
}

/* ─── Tablas anchas del contenido editorial ──────────────────
   La tabla de la política de cookies mide 486px dentro de un
   contenedor de 327 y arrastraba la página entera de lado en
   móvil. Se desplaza sola en lugar de mover el documento. */
.si-page-body table {
	display: block;
	width: 100%;
	max-width: 100%;
	overflow-x: auto;
}
