/* SPI Core · UI de conversión (servicios, industrias, archivos, barra móvil).
   Colores y tipografías desde las globales del kit 5 de Elementor. */
:root {
	--spi-chispa-texto: var(--e-global-color-chispa_texto, #b84a0c);
	--spi-cv-h3: var(--e-global-typography-h3-font-family, "Archivo"), sans-serif;
	--spi-cv-radio: 2px;
	--spi-cv-sombra: 0 24px 48px -24px rgb(18 20 24 / 0.45);
}

/* ---------- Utilidades de sección ---------- */
.spi-cv-claro { color: var(--spi-tinta); }
.spi-cv-oscuro { color: var(--spi-hueso); }
.spi-cv-claro + .spi-cv-claro { border-top: 1px solid var(--spi-plata); }
.spi-cv-claro .spi-cv-eyebrow .elementor-heading-title { color: var(--spi-chispa-texto) !important; }
.spi-cv-lead { max-width: 640px; }
.spi-cv-lead p { margin: 0; }

/* Botones propios (en HTML de shortcodes) */
.spi-cv-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 48px; padding: 12px 24px; font-family: var(--e-global-typography-boton-font-family, "Archivo"), sans-serif; font-weight: 700; font-size: var(--e-global-typography-boton-font-size, 14px); letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; border: 1px solid transparent; transition: background-color 0.2s, color 0.2s, border-color 0.2s; }
.spi-cv-btn .spi-cv-svg { width: 18px; height: 18px; flex: none; }
a.spi-cv-btn--primario { background: var(--spi-chispa); color: var(--spi-carbon); }
a.spi-cv-btn--primario:hover, a.spi-cv-btn--primario:focus-visible { background: var(--spi-carbon); color: var(--spi-hueso); }
a.spi-cv-btn--linea { border-color: currentColor; color: var(--spi-tinta); }
a.spi-cv-btn--linea:hover, a.spi-cv-btn--linea:focus-visible { background: var(--spi-tinta); color: var(--spi-hueso); border-color: var(--spi-tinta); }
.spi-cv-btn:focus-visible { outline: 3px solid var(--spi-chispa-texto); outline-offset: 3px; }

/* Foco visible en todos los enlaces de los bloques de conversión */
.spi-cv-sec a:focus-visible, .spi-cv-hero a:focus-visible, .spi-cv-form-card a:focus-visible { outline: 3px solid var(--spi-chispa); outline-offset: 3px; }
.spi-cv-claro a:focus-visible { outline-color: var(--spi-chispa-texto); }

/* ---------- Hero ---------- */
.spi-cv-hero .spi-migas { margin-bottom: 4px; }
.spi-cv-hero__texto { min-width: 0; }
.spi-cv-hero__texto .elementor-heading-title { overflow-wrap: break-word; hyphens: manual; }
.spi-cv-hero .elementor-widget-text-editor p { margin: 0; }
.spi-cv-bullets { list-style: none; margin: 8px 0 0; padding: 0; display: grid; gap: 12px; }
.spi-cv-bullets li { display: flex; align-items: flex-start; gap: 12px; color: var(--spi-hueso); font-size: var(--e-global-typography-cuerpo-font-size, 17px); line-height: 1.45; }
.spi-cv-bullets .spi-cv-svg { flex: none; width: 22px; height: 22px; padding: 3px; margin-top: 0; border-radius: 50%; background: var(--spi-chispa); color: var(--spi-carbon); stroke-width: 2.5; }
.spi-cv-hero__ctas .elementor-button { min-height: 52px; }

/* Columna del formulario: en escritorio vive en el hero; en móvil el JS lo mueve al CTA final */
@media (max-width: 1024px) {
	.spi-cv-hero .spi-cv-hero__form:not(.is-movido) { display: none; }
}

/* ---------- Tarjeta del formulario (bloque reutilizable) ---------- */
.spi-cv-form-card { scroll-margin-top: 112px; box-shadow: var(--spi-cv-sombra); border-top: 4px solid var(--spi-chispa); }
.admin-bar .spi-cv-form-card { scroll-margin-top: 144px; }
.spi-cv-form-card .elementor-heading-title { margin: 0; }
.spi-cv-form-card .elementor-widget-text-editor p { margin: 0; }
.spi-cv-form-card .elementor-field-group { margin-bottom: 0; }
.spi-cv-form-card .elementor-field-textual, .spi-cv-form-card select.elementor-field { min-height: 46px; }
.spi-cv-form-card textarea.elementor-field { min-height: 0; resize: vertical; }
.spi-cv-form-card .elementor-field:focus { outline: 3px solid var(--spi-chispa-texto); outline-offset: 0; border-color: var(--spi-tinta) !important; }
.spi-cv-form-card .elementor-field-type-acceptance label { font-family: var(--e-global-typography-cuerpo-font-family, "Inter"), sans-serif; font-size: 0.8125rem; text-transform: none; letter-spacing: 0; font-weight: 400; line-height: 1.45; }
.spi-cv-form-card .elementor-field-type-acceptance a { color: var(--spi-chispa-texto); text-decoration: underline; }
.spi-cv-form-card .elementor-field-type-acceptance input { width: 20px; height: 20px; accent-color: var(--spi-chispa-texto); flex: none; margin-top: 1px; }
.spi-cv-form-card .elementor-field-subgroup .elementor-field-option { display: flex; gap: 10px; align-items: flex-start; }
.spi-cv-form-card .elementor-field-type-upload input[type="file"] { padding: 10px; font-size: 0.875rem; border-style: dashed !important; cursor: pointer; }
.spi-cv-form-card .elementor-field-type-upload input[type="file"]::file-selector-button { margin-right: 12px; padding: 8px 14px; border: 0; background: var(--spi-tinta); color: var(--spi-hueso); font-family: var(--e-global-typography-boton-font-family, "Archivo"), sans-serif; font-weight: 700; font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.06em; cursor: pointer; }
.spi-cv-form-card .elementor-button[type="submit"] { min-height: 56px; }
.spi-cv-form-card .elementor-button[type="submit"]:focus-visible { outline: 3px solid var(--spi-chispa-texto); outline-offset: 3px; }
.spi-cv-form-card .elementor-message { font-size: 0.9375rem; }
.spi-cv-form-card .spi-cv-form-nota { font-size: 0.8125rem; }
.spi-cv-form-card .spi-cv-form-nota p a { color: var(--spi-tinta); font-weight: 600; }

/* ---------- Franja de confianza ---------- */
.spi-cv-confianza { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 24px; }
.spi-cv-confianza li { display: flex; align-items: center; gap: 14px; color: var(--spi-plata); font-size: 0.9375rem; line-height: 1.35; }
.spi-cv-confianza .spi-cv-svg { flex: none; width: 32px; height: 32px; color: var(--spi-chispa); }
.spi-cv-confianza strong { display: block; color: var(--spi-hueso); font-family: var(--spi-cv-h3); font-weight: 800; text-transform: uppercase; font-size: 1rem; letter-spacing: 0.02em; }
@media (max-width: 1024px) { .spi-cv-confianza { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px 16px; } }
@media (max-width: 420px) { .spi-cv-confianza li { gap: 10px; font-size: 0.8125rem; } .spi-cv-confianza .spi-cv-svg { width: 26px; height: 26px; } .spi-cv-confianza strong { font-size: 0.875rem; } }

/* ---------- En resumen ---------- */
.spi-cv-resumen { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 64px; align-items: start; }
.spi-cv-resumen--solo { grid-template-columns: minmax(0, 860px); }
.spi-cv-resumen__caja { position: relative; padding: 40px 40px 40px 44px; background: var(--spi-carbon); color: var(--spi-hueso); border-left: 4px solid var(--spi-chispa); }
.spi-cv-resumen__titulo { margin: 0 0 16px; font-family: var(--spi-cv-h3); font-weight: 700; font-size: 0.75rem !important; letter-spacing: 0.12em; text-transform: uppercase; color: var(--spi-chispa) !important; line-height: 1.2; }
.spi-cv-resumen__texto { margin: 0; font-size: var(--e-global-typography-cuerpo_grande-font-size, 20px); line-height: 1.5; color: var(--spi-hueso); }
.spi-cv-resumen__intro { max-width: 640px; font-size: var(--e-global-typography-cuerpo-font-size, 17px); line-height: 1.7; color: var(--spi-tinta); }
.spi-cv-resumen__intro p { margin: 0 0 16px; }
.spi-cv-resumen__intro p:last-child { margin-bottom: 0; }
@media (max-width: 1024px) { .spi-cv-resumen { grid-template-columns: 1fr; gap: 32px; } .spi-cv-resumen__caja { padding: 28px 24px 28px 28px; } }

/* ---------- Beneficios (tarjetas con ícono, grilla de 6 columnas) ---------- */
.spi-cv-beneficios { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 24px; }
.spi-cv-beneficio { grid-column: span 2; display: flex; flex-direction: column; gap: 12px; padding: 32px; background: var(--spi-grafito); border: 1px solid rgb(138 146 155 / 0.25); transition: border-color 0.2s; }
.spi-cv-beneficio:hover { border-color: var(--spi-chispa); }
.spi-cv-n4 > .spi-cv-beneficio, .spi-cv-n2 > .spi-cv-beneficio { grid-column: span 3; }
.spi-cv-n5 > .spi-cv-beneficio:nth-child(n+4), .spi-cv-n8 > .spi-cv-beneficio:nth-child(n+7) { grid-column: span 3; }
.spi-cv-n7 > .spi-cv-beneficio:nth-child(7) { grid-column: span 6; }
.spi-cv-n1 > .spi-cv-beneficio { grid-column: span 6; }
.spi-cv-beneficio__icono { display: inline-flex; width: 48px; height: 48px; align-items: center; justify-content: center; border: 1px solid var(--spi-chispa); color: var(--spi-chispa); margin-bottom: 8px; }
.spi-cv-beneficio__icono .spi-cv-svg { width: 26px; height: 26px; }
.spi-cv-beneficio__titulo { margin: 0; font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; font-size: var(--e-global-typography-cuerpo_grande-font-size, 20px); line-height: 1.2; color: var(--spi-hueso); }
.spi-cv-beneficio__texto { margin: 0; color: var(--spi-plata); font-size: var(--e-global-typography-cuerpo-font-size, 17px); line-height: 1.6; }
@media (max-width: 1024px) { .spi-cv-beneficios { grid-template-columns: repeat(2, minmax(0, 1fr)); } .spi-cv-beneficios > .spi-cv-beneficio { grid-column: span 1 !important; } .spi-cv-n5 > .spi-cv-beneficio:last-child, .spi-cv-n3 > .spi-cv-beneficio:last-child, .spi-cv-n7 > .spi-cv-beneficio:last-child { grid-column: span 2 !important; } }
@media (max-width: 640px) { .spi-cv-beneficios { grid-template-columns: 1fr; gap: 16px; } .spi-cv-beneficios.spi-cv-beneficios > .spi-cv-beneficio:nth-child(n) { grid-column: auto !important; padding: 24px; } }

/* ---------- Aplicaciones ---------- */
.spi-cv-aplicaciones { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 0; border-top: 2px solid var(--spi-tinta); }
.spi-cv-aplicacion { display: grid; grid-template-columns: 48px 1fr; gap: 4px 12px; align-content: start; padding: 28px 24px 28px 0; border-bottom: 1px solid var(--spi-plata); }
.spi-cv-aplicacion__num { grid-row: span 2; font-family: var(--spi-cv-h3); font-weight: 800; font-size: 1rem; color: var(--spi-chispa-texto); padding-top: 2px; }
.spi-cv-aplicacion__titulo { margin: 0; font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; font-size: var(--e-global-typography-cuerpo_grande-font-size, 20px); line-height: 1.2; color: var(--spi-tinta); }
.spi-cv-aplicacion__texto { margin: 0; color: var(--spi-tinta); line-height: 1.6; }

/* ---------- Proceso (stepper) ---------- */
.spi-cv-pasos { list-style: none; margin: 0; padding: 0; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(0, 1fr); gap: 24px; counter-reset: paso; }
.spi-cv-paso { position: relative; display: flex; flex-direction: column; gap: 10px; padding-top: 72px; }
.spi-cv-paso::before { content: ""; position: absolute; top: 27px; left: 56px; right: -24px; height: 2px; background: var(--spi-plata); }
.spi-cv-paso:last-child::before { display: none; }
.spi-cv-paso__num { position: absolute; top: 0; left: 0; display: inline-flex; width: 56px; height: 56px; align-items: center; justify-content: center; border: 2px solid var(--spi-tinta); background: var(--spi-hueso); font-family: var(--spi-cv-h3); font-weight: 800; font-size: 1.125rem; color: var(--spi-tinta); }
.spi-cv-paso:first-child .spi-cv-paso__num { background: var(--spi-chispa); border-color: var(--spi-chispa); color: var(--spi-carbon); }
.spi-cv-paso__titulo { margin: 0; font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; font-size: var(--e-global-typography-cuerpo_grande-font-size, 20px); line-height: 1.2; }
.spi-cv-paso__texto { margin: 0; font-size: 0.9375rem; line-height: 1.6; }
.spi-cv-oscuro .spi-cv-paso::before { background: var(--spi-grafito); }
.spi-cv-oscuro .spi-cv-paso__num { background: var(--spi-carbon); border-color: var(--spi-acero); color: var(--spi-hueso); }
.spi-cv-oscuro .spi-cv-paso:first-child .spi-cv-paso__num { background: var(--spi-chispa); border-color: var(--spi-chispa); color: var(--spi-carbon); }
.spi-cv-oscuro .spi-cv-paso__titulo { color: var(--spi-hueso); }
.spi-cv-oscuro .spi-cv-paso__texto { color: var(--spi-plata); }
@media (max-width: 1024px) {
	.spi-cv-pasos { grid-auto-flow: row; grid-auto-columns: auto; gap: 0; }
	.spi-cv-paso { padding: 0 0 32px 76px; min-height: 88px; }
	.spi-cv-paso::before { top: 56px; bottom: 0; left: 27px; right: auto; width: 2px; height: auto; }
	.spi-cv-paso:last-child { padding-bottom: 0; }
}

/* ---------- Retos del sector ---------- */
.spi-cv-retos { display: grid; gap: 16px; }
.spi-cv-reto { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); background: var(--spi-grafito); border: 1px solid rgb(138 146 155 / 0.25); }
.spi-cv-reto__problema { padding: 32px; border-right: 1px solid rgb(138 146 155 / 0.25); }
.spi-cv-reto__solucion { padding: 32px; background: rgb(242 107 29 / 0.06); }
.spi-cv-reto__etiqueta { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-family: var(--spi-cv-h3); font-weight: 700; font-size: 0.75rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--spi-acero); }
.spi-cv-reto__solucion .spi-cv-reto__etiqueta { color: var(--spi-chispa); }
.spi-cv-reto__etiqueta .spi-cv-svg { width: 16px; height: 16px; }
.spi-cv-reto__titulo { margin: 0; font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; font-size: var(--e-global-typography-cuerpo_grande-font-size, 20px); line-height: 1.25; color: var(--spi-hueso); }
.spi-cv-reto__texto { margin: 0; color: var(--spi-plata); line-height: 1.6; }
@media (max-width: 767px) { .spi-cv-reto { grid-template-columns: 1fr; } .spi-cv-reto__problema { border-right: 0; border-bottom: 1px solid rgb(138 146 155 / 0.25); } .spi-cv-reto__problema, .spi-cv-reto__solucion { padding: 24px; } }

/* ---------- Ficha técnica (acordeón) ---------- */
.spi-cv-ficha { display: grid; gap: 0; max-width: 960px; }
.spi-cv-ficha__lead { margin-bottom: 24px; max-width: 720px; line-height: 1.7; }
.spi-cv-acordeon { border-top: 1px solid var(--spi-plata); }
.spi-cv-acordeon:last-of-type { border-bottom: 1px solid var(--spi-plata); }
.spi-cv-acordeon > summary { display: flex; align-items: center; gap: 20px; min-height: 64px; padding: 20px 0; cursor: pointer; list-style: none; }
.spi-cv-acordeon > summary::-webkit-details-marker { display: none; }
.spi-cv-acordeon > summary:focus-visible { outline: 3px solid var(--spi-chispa-texto); outline-offset: 2px; }
.spi-cv-acordeon__num { flex: none; width: 32px; font-family: var(--spi-cv-h3); font-weight: 800; color: var(--spi-chispa-texto); }
.spi-cv-acordeon__titulo { flex: 1; margin: 0; font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; font-size: var(--e-global-typography-cuerpo_grande-font-size, 20px) !important; line-height: 1.25; color: var(--spi-tinta); }
.spi-cv-acordeon__icono { position: relative; flex: none; width: 40px; height: 40px; border: 1px solid var(--spi-tinta); transition: background-color 0.2s; }
.spi-cv-acordeon__icono::before, .spi-cv-acordeon__icono::after { content: ""; position: absolute; top: 50%; left: 50%; width: 14px; height: 2px; background: currentColor; transform: translate(-50%, -50%); transition: transform 0.2s; }
.spi-cv-acordeon__icono::after { transform: translate(-50%, -50%) rotate(90deg); }
.spi-cv-acordeon[open] .spi-cv-acordeon__icono { background: var(--spi-tinta); color: var(--spi-hueso); }
.spi-cv-acordeon[open] .spi-cv-acordeon__icono::after { transform: translate(-50%, -50%) rotate(0deg); }
.spi-cv-acordeon > summary:hover .spi-cv-acordeon__titulo { color: var(--spi-chispa-texto); }
.spi-cv-acordeon__cuerpo { max-width: 720px; padding: 0 0 32px 52px; line-height: 1.7; }
.spi-cv-acordeon__cuerpo > *:first-child { margin-top: 0; }
.spi-cv-acordeon__cuerpo h4 { margin: 24px 0 8px; font-family: var(--spi-cv-h3); font-weight: 700; font-size: 1.0625rem; text-transform: uppercase; }
.spi-cv-acordeon__cuerpo a, .spi-cv-ficha__lead a { color: var(--spi-chispa-texto); text-decoration: underline; text-underline-offset: 2px; }
.spi-cv-acordeon__cuerpo ul li::marker, .spi-cv-acordeon__cuerpo ol li::marker { color: var(--spi-chispa-texto); }
a.spi-cv-descarga { display: inline-flex; align-items: center; gap: 12px; justify-self: start; margin-top: 32px; min-height: 48px; padding: 12px 20px; border: 1px solid var(--spi-tinta); color: var(--spi-tinta); font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; font-size: 0.8125rem; letter-spacing: 0.06em; text-decoration: none; }
a.spi-cv-descarga:hover, a.spi-cv-descarga:focus-visible { background: var(--spi-tinta); color: var(--spi-hueso); }
@media (max-width: 767px) { .spi-cv-acordeon__cuerpo { padding-left: 0; } .spi-cv-acordeon > summary { gap: 12px; } .spi-cv-acordeon__num { width: 24px; } }

/* ---------- Tarjetas de servicio / industria ---------- */
.spi-cv-tarjetas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; }
.spi-cv-tarjetas.spi-cv-n1 { grid-template-columns: minmax(0, 560px); }
.spi-cv-tarjetas.spi-cv-n2, .spi-cv-tarjetas.spi-cv-n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.spi-cv-tarjeta { position: relative; display: flex; flex-direction: column; background: var(--spi-hueso); border: 1px solid var(--spi-plata); transition: border-color 0.2s, transform 0.25s ease, box-shadow 0.25s; }
.spi-cv-tarjeta:hover { border-color: var(--spi-tinta); transform: translateY(-4px); box-shadow: var(--spi-cv-sombra); }
.spi-cv-tarjeta:focus-within { outline: 3px solid var(--spi-chispa-texto); outline-offset: 3px; }
.spi-cv-tarjeta__media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--spi-grafito); }
.spi-cv-tarjeta__media img { display: block; width: 100%; height: 100%; object-fit: cover; }
.spi-cv-tarjeta__cuerpo { display: flex; flex-direction: column; gap: 14px; flex: 1; padding: 32px; }
.spi-cv-tarjeta__top { display: flex; align-items: center; justify-content: space-between; }
.spi-cv-tarjeta__icono { display: inline-flex; color: var(--spi-chispa-texto); }
.spi-cv-tarjeta__icono svg { width: 36px; height: 36px; }
.spi-cv-tarjeta--foto .spi-cv-tarjeta__icono { display: none; }
.spi-cv-tarjeta__num { font-family: var(--spi-cv-h3); font-weight: 800; color: var(--spi-acero); font-size: 0.875rem; letter-spacing: 0.08em; }
.spi-cv-tarjeta__titulo { margin: 0; font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; font-size: var(--e-global-typography-cuerpo_grande-font-size, 20px) !important; line-height: 1.2; }
.spi-cv-tarjeta__titulo a { color: var(--spi-tinta) !important; text-decoration: none; }
.spi-cv-tarjeta__titulo a::after { content: ""; position: absolute; inset: 0; }
.spi-cv-tarjeta__titulo a:focus-visible { outline: none; }
.spi-cv-tarjeta__texto { margin: 0; color: var(--spi-tinta); line-height: 1.6; }
.spi-cv-tarjeta__cta { display: inline-flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 8px; font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; font-size: 0.8125rem; letter-spacing: 0.08em; color: var(--spi-chispa-texto); }
.spi-cv-tarjeta__cta .spi-cv-svg { width: 18px; height: 18px; transition: transform 0.2s; }
.spi-cv-tarjeta:hover .spi-cv-tarjeta__cta .spi-cv-svg { transform: translateX(4px); }
.spi-cv-oscuro .spi-cv-tarjeta { background: var(--spi-grafito); border-color: rgb(138 146 155 / 0.25); }
.spi-cv-oscuro .spi-cv-tarjeta:hover { border-color: var(--spi-chispa); }
.spi-cv-oscuro .spi-cv-tarjeta:focus-within { outline-color: var(--spi-chispa); }
.spi-cv-oscuro .spi-cv-tarjeta__icono, .spi-cv-oscuro .spi-cv-tarjeta__cta { color: var(--spi-chispa); }
.spi-cv-oscuro .spi-cv-tarjeta__titulo a { color: var(--spi-hueso) !important; }
.spi-cv-oscuro .spi-cv-tarjeta__texto { color: var(--spi-plata); }
@media (max-width: 1024px) { .spi-cv-tarjetas, .spi-cv-tarjetas.spi-cv-n4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .spi-cv-tarjetas, .spi-cv-tarjetas.spi-cv-n2, .spi-cv-tarjetas.spi-cv-n4 { grid-template-columns: 1fr; gap: 16px; } .spi-cv-tarjeta__cuerpo { padding: 24px; } }

/* ---------- Grados de granallado sobre fondo oscuro ---------- */
.spi-cv-oscuro .spi-tabla th, .spi-cv-oscuro .spi-tabla td { border-color: var(--spi-grafito); color: var(--spi-plata); }
.spi-cv-oscuro .spi-tabla tbody th { color: var(--spi-hueso); font-family: var(--spi-cv-h3); text-transform: uppercase; }
.spi-cv-oscuro .spi-tabla thead th { color: var(--spi-chispa); }
.spi-cv-oscuro .spi-tabla tbody tr:hover { background: var(--spi-grafito); }
.spi-cv-oscuro .spi-grados__item { border: 1px solid rgb(138 146 155 / 0.25); }
.spi-tabla-wrap:focus-visible { outline: 3px solid var(--spi-chispa); }

/* ---------- Banda CTA intermedia ---------- */
.spi-cv-banda .elementor-heading-title { text-wrap: balance; }
.spi-cv-banda .elementor-widget-text-editor p { margin: 0; }
.spi-cv-banda .elementor-button:focus-visible { outline: 3px solid var(--spi-carbon); outline-offset: 3px; }

/* ---------- FAQ (sobre el acordeón de spi-core) ---------- */
.spi-cv-faq .spi-faq { border-top: 2px solid var(--spi-tinta); }
.spi-cv-faq .spi-faq__q { display: flex; align-items: center; min-height: 64px; padding: 20px 56px 20px 0; font-size: 1.0625rem; line-height: 1.35; color: var(--spi-tinta); }
.spi-cv-faq .spi-faq__q::after { top: 50%; transform: translateY(-50%); right: 0; width: 40px; height: 40px; display: flex; align-items: center; justify-content: center; border: 1px solid var(--spi-tinta); color: var(--spi-tinta); font-size: 1.25rem; line-height: 1; }
.spi-cv-faq .spi-faq__item[open] .spi-faq__q::after { background: var(--spi-tinta); color: var(--spi-hueso); }
.spi-cv-faq .spi-faq__q:hover { color: var(--spi-chispa-texto); }
.spi-cv-faq .spi-faq__q:focus-visible { outline-color: var(--spi-chispa-texto); }
.spi-cv-faq .spi-faq__a { max-width: 720px; line-height: 1.7; }
.spi-cv-faq .spi-faq__a p { margin: 0 0 12px; }

/* ---------- Guía larga (industrias) ---------- */
.spi-cv-guia { display: grid; gap: 48px; justify-items: center; }
.spi-cv-guia__cuerpo { width: 100%; max-width: 720px; font-size: var(--e-global-typography-cuerpo-font-size, 17px); line-height: 1.75; color: var(--spi-tinta); }
.spi-cv-guia__cuerpo > *:first-child { margin-top: 0; }
.spi-cv-guia__cuerpo > p:first-child, .spi-cv-guia__cuerpo > p:first-child + p { font-size: var(--e-global-typography-cuerpo_grande-font-size, 20px); line-height: 1.6; }
.spi-cv-guia__cuerpo h2 { margin: 64px 0 16px; padding-top: 24px; border-top: 1px solid var(--spi-plata); scroll-margin-top: 128px; font-family: var(--e-global-typography-h2-font-family, "Archivo"), sans-serif; font-weight: 800; text-transform: uppercase; font-size: clamp(1.625rem, 1.2rem + 1.4vw, 2.25rem); line-height: 1.1; color: var(--spi-tinta); }
.spi-cv-guia__cuerpo h3 { margin: 32px 0 8px; font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; font-size: var(--e-global-typography-cuerpo_grande-font-size, 20px); line-height: 1.25; }
.spi-cv-guia__cuerpo p { margin: 0 0 20px; }
.spi-cv-guia__cuerpo a { color: var(--spi-chispa-texto); text-decoration: underline; text-underline-offset: 2px; }
.spi-cv-guia__cuerpo a:hover { color: var(--spi-tinta); }
.spi-cv-guia__cuerpo ul, .spi-cv-guia__cuerpo ol { margin: 0 0 20px; padding-left: 1.25em; }
.spi-cv-guia__cuerpo li { margin-bottom: 8px; }
.spi-cv-guia__cuerpo li::marker { color: var(--spi-chispa-texto); }
.spi-cv-guia__cuerpo table { width: 100%; border-collapse: collapse; margin: 0 0 24px; font-size: 0.9375rem; }
.spi-cv-guia__cuerpo th, .spi-cv-guia__cuerpo td { padding: 10px 12px; border-bottom: 1px solid var(--spi-plata); text-align: left; }
.admin-bar .spi-cv-guia__cuerpo h2 { scroll-margin-top: 160px; }

.spi-cv-toc { width: 100%; max-width: 1040px; }
.spi-cv-toc__det { border: 1px solid var(--spi-plata); background: var(--spi-hueso); }
.spi-cv-toc__sum { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 56px; padding: 16px 24px; cursor: pointer; list-style: none; font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.8125rem; color: var(--spi-tinta); }
.spi-cv-toc__sum::-webkit-details-marker { display: none; }
.spi-cv-toc__sum::after { content: ""; width: 10px; height: 10px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-top: -4px; transition: transform 0.2s; }
.spi-cv-toc__det[open] .spi-cv-toc__sum::after { transform: rotate(225deg); margin-top: 4px; }
.spi-cv-toc__n { margin-left: auto; color: var(--spi-tinta); font-weight: 400; letter-spacing: 0; text-transform: none; font-family: var(--e-global-typography-cuerpo-font-family, "Inter"), sans-serif; }
.spi-cv-toc__sum:focus-visible { outline: 3px solid var(--spi-chispa-texto); outline-offset: -3px; }
.spi-cv-toc__lista { counter-reset: toc; list-style: none; margin: 0; padding: 0 24px 24px; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; }
.spi-cv-toc__lista li { counter-increment: toc; border-top: 1px solid var(--spi-plata); }
.spi-cv-toc .spi-cv-toc__lista a { display: flex; gap: 12px; min-height: 44px; padding: 10px 0; color: var(--spi-tinta); text-decoration: none; font-size: 0.9375rem; line-height: 1.4; }
.spi-cv-toc__lista a::before { content: counter(toc, decimal-leading-zero); flex: none; font-family: var(--spi-cv-h3); font-weight: 800; color: var(--spi-chispa-texto); }
.spi-cv-toc .spi-cv-toc__lista a:hover { color: var(--spi-chispa-texto); text-decoration: underline; }
.spi-cv-toc__lista a:focus-visible { outline: 3px solid var(--spi-chispa-texto); outline-offset: 2px; }
@media (max-width: 1024px) { .spi-cv-toc__lista { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) { .spi-cv-toc__lista { grid-template-columns: 1fr; padding: 0 16px 16px; } .spi-cv-toc__sum { padding: 14px 16px; } }

/* CTA dentro de la guía */
.spi-cv-callout { margin: 48px 0; padding: 32px; background: var(--spi-carbon); color: var(--spi-hueso); border-left: 4px solid var(--spi-chispa); }
.spi-cv-callout__titulo { margin: 0 0 8px !important; font-family: var(--e-global-typography-h2-font-family, "Archivo"), sans-serif; font-weight: 800; text-transform: uppercase; font-size: 1.5rem; line-height: 1.15; color: var(--spi-hueso); }
.spi-cv-callout__texto { margin: 0 0 24px !important; color: var(--spi-plata); font-size: 1rem; line-height: 1.6; }
.spi-cv-callout__acciones { display: flex; flex-wrap: wrap; gap: 12px; }
.spi-cv-callout .spi-cv-btn { text-decoration: none !important; }
.spi-cv-callout .spi-cv-btn--primario { color: var(--spi-carbon) !important; }
.spi-cv-callout .spi-cv-btn--primario:hover, .spi-cv-callout .spi-cv-btn--primario:focus-visible { background: var(--spi-hueso); color: var(--spi-carbon) !important; }
.spi-cv-callout .spi-cv-btn--linea { color: var(--spi-hueso) !important; }
.spi-cv-callout .spi-cv-btn--linea:hover, .spi-cv-callout .spi-cv-btn--linea:focus-visible { background: var(--spi-hueso); color: var(--spi-carbon) !important; border-color: var(--spi-hueso); }
.spi-cv-callout .spi-cv-btn:focus-visible { outline-color: var(--spi-chispa); }
@media (max-width: 640px) { .spi-cv-callout { padding: 24px; } .spi-cv-callout .spi-cv-btn { flex: 1 1 100%; } }

/* ---------- CTA final (bloque 172) y lugar del formulario en móvil ---------- */
.spi-cv-cta-final .elementor-widget-text-editor p { margin: 0; }
.spi-cv-cta-final .ui-home-datos a, .spi-cv-cta-final .ui-home-datos li { color: var(--spi-plata); }
.spi-cv-slot:empty { display: none; }
.spi-cv-slot { width: 100%; }
.elementor-widget-shortcode:has(> .elementor-shortcode > .spi-cv-slot:empty), .elementor-widget-shortcode:has(> .elementor-widget-container > .elementor-shortcode > .spi-cv-slot:empty) { display: none; }
.spi-cv-cta-final:has(.spi-cv-slot:not(:empty)) .spi-cv-cta-cotizar { display: none; }

/* ---------- Header: botón Cotizar ---------- */
.elementor-location-header .ui-home-mainbar .elementor-widget-button:not(.ui-home-wa-movil) .elementor-button { min-height: 44px; transition: background-color 0.2s, color 0.2s; }
.elementor-location-header .ui-home-mainbar .elementor-widget-button:not(.ui-home-wa-movil) .elementor-button:focus-visible { outline: 3px solid var(--spi-hueso); outline-offset: 3px; }

/* ---------- Barra fija móvil ---------- */
.spi-cv-barra { display: none; }
@media (max-width: 1024px) {
	.spi-cv-barra { position: fixed; left: 0; right: 0; bottom: 0; z-index: 998; display: grid; grid-template-columns: 1fr 1fr; gap: 1px; padding-bottom: env(safe-area-inset-bottom, 0px); background: var(--spi-carbon); box-shadow: 0 -8px 24px rgb(18 20 24 / 0.3); transform: translateY(110%); visibility: hidden; transition: transform 0.25s ease, visibility 0s linear 0.25s; }
	.spi-cv-barra.is-visible { transform: none; visibility: visible; transition: transform 0.25s ease, visibility 0s; }
	.spi-cv-barra__btn { display: flex; align-items: center; justify-content: center; gap: 10px; height: 56px; font-family: var(--e-global-typography-boton-font-family, "Archivo"), sans-serif; font-weight: 700; font-size: 0.9375rem; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; }
	.spi-cv-barra__btn .spi-cv-svg { width: 22px; height: 22px; }
	.spi-cv-barra a.spi-cv-barra__btn--cotizar { background: var(--spi-chispa); color: var(--spi-carbon); }
	.spi-cv-barra a.spi-cv-barra__btn--wa { background: var(--spi-grafito); color: var(--spi-hueso); }
	.spi-cv-barra__btn--wa .spi-cv-svg { color: #25d366; }
	.spi-cv-barra__btn:focus-visible { outline: 3px solid var(--spi-hueso); outline-offset: -5px; }
	.spi-cv-barra__btn--cotizar:focus-visible { outline-color: var(--spi-carbon); }
	.spi-cv-barra:only-child, .spi-cv-barra:not(:has(.spi-cv-barra__btn--wa)) { grid-template-columns: 1fr; }
	body.spi-cv-con-barra { padding-bottom: calc(56px + env(safe-area-inset-bottom, 0px)); }
	body.spi-cv-con-barra .spi-flotante--arriba { bottom: calc(72px + env(safe-area-inset-bottom, 0px)); right: 16px; }
	body.ui-home-menu-abierto .spi-cv-barra { visibility: hidden; transform: translateY(110%); }
}

@media (prefers-reduced-motion: reduce) {
	.spi-cv-barra, .spi-cv-barra.is-visible, .spi-cv-tarjeta, .spi-cv-tarjeta:hover, .spi-cv-acordeon__icono::before, .spi-cv-acordeon__icono::after { transition: none !important; }
	.spi-cv-tarjeta:hover, .spi-cv-tarjeta:hover .spi-cv-tarjeta__cta .spi-cv-svg { transform: none; }
}

/* "Seguir leyendo" de la introducción */
.spi-cv-mas { margin-top: 0; }
.spi-cv-mas > summary { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; cursor: pointer; list-style: none; font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; font-size: 0.8125rem; letter-spacing: 0.08em; color: var(--spi-chispa-texto); }
.spi-cv-mas > summary::-webkit-details-marker { display: none; }
.spi-cv-mas > summary::after { content: ""; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin-top: -4px; }
.spi-cv-mas[open] > summary::after { transform: rotate(225deg); margin-top: 4px; }
.spi-cv-mas[open] > summary { order: 2; }
.spi-cv-mas > summary:focus-visible { outline: 3px solid var(--spi-chispa-texto); outline-offset: 2px; }
.spi-cv-mas__cerrar, .spi-cv-mas[open] .spi-cv-mas__abrir { display: none; }
.spi-cv-mas[open] .spi-cv-mas__cerrar { display: inline; }
.spi-cv-mas > p { margin: 0 0 8px; }
.spi-cv-form-card .elementor-field-label { line-height: 1.4; }
@media (min-width: 1025px) { .e-con.spi-cv-banda__acciones { --width: auto; width: auto; flex: 0 0 auto; } }

/* ---------- Guía técnica plegada (industrias) ---------- */
.spi-cv-guia { display: block; }
.spi-cv-guia__panel { max-width: 960px; border: 1px solid var(--spi-tinta); background: var(--spi-hueso); }
.spi-cv-guia__sum { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 72px; padding: 20px 24px; cursor: pointer; list-style: none; }
.spi-cv-guia__sum::-webkit-details-marker { display: none; }
.spi-cv-guia__sum:focus-visible { outline: 3px solid var(--spi-chispa-texto); outline-offset: 2px; }
.spi-cv-guia__sum-texto { display: flex; flex-direction: column; gap: 4px; }
.spi-cv-guia__abrir, .spi-cv-guia__cerrar { font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; letter-spacing: 0.04em; font-size: var(--e-global-typography-cuerpo_grande-font-size, 20px); color: var(--spi-tinta); }
.spi-cv-guia__cerrar, .spi-cv-guia__panel[open] .spi-cv-guia__abrir { display: none; }
.spi-cv-guia__panel[open] .spi-cv-guia__cerrar { display: inline; }
.spi-cv-guia__meta { font-size: 0.9375rem; color: var(--spi-tinta); }
.spi-cv-guia__panel[open] .spi-cv-acordeon__icono { background: var(--spi-tinta); color: var(--spi-hueso); }
.spi-cv-guia__panel[open] .spi-cv-acordeon__icono::after { transform: translate(-50%, -50%) rotate(0deg); }
.spi-cv-guia__sum:hover .spi-cv-guia__abrir { color: var(--spi-chispa-texto); }
.spi-cv-guia__inner { display: grid; gap: 40px; padding: 8px 24px 48px; border-top: 1px solid var(--spi-plata); }
.spi-cv-guia__inner .spi-cv-guia__cuerpo { max-width: 720px; justify-self: center; }
.spi-cv-guia__inner .spi-cv-guia__cuerpo > p:first-child, .spi-cv-guia__inner .spi-cv-guia__cuerpo > p:first-child + p { font-size: inherit; line-height: inherit; }
.spi-cv-guia__inner .spi-cv-guia__cuerpo h2 { font-size: clamp(1.375rem, 1.1rem + 0.9vw, 1.75rem); margin-top: 48px; }
.spi-cv-guia__inner .spi-cv-toc { max-width: none; padding-top: 24px; }
.spi-cv-toc__titulo { margin: 0 0 8px; font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.8125rem; color: var(--spi-tinta); }
.spi-cv-guia__inner .spi-cv-toc__lista { padding: 0; }
@media (max-width: 640px) { .spi-cv-guia__sum { padding: 16px; gap: 16px; } .spi-cv-guia__inner { padding: 0 16px 32px; } }

/* ---------- Normas del sector ---------- */
.spi-cv-normas { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 12px; }
.spi-cv-normas li { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 16px; border: 1px solid rgb(138 146 155 / 0.45); background: var(--spi-grafito); color: var(--spi-hueso); font-family: var(--spi-cv-h3); font-weight: 700; font-size: 0.9375rem; letter-spacing: 0.02em; }
.spi-cv-normas .spi-cv-svg { width: 18px; height: 18px; color: var(--spi-chispa); }
@media (min-width: 1025px) { .e-con.spi-cv-banda__texto { --width: auto; width: auto; flex: 1 1 0; min-width: 0; } }
.spi-cv-guia__panel { width: 100%; }
/* Tablas y palabras largas dentro de acordeones y guía: sin desbordar en móvil */
.spi-cv-ficha > *, .spi-cv-guia__inner > * { min-width: 0; }
.spi-cv-acordeon__cuerpo, .spi-cv-guia__cuerpo { overflow-wrap: break-word; }
.spi-cv-acordeon__cuerpo table, .spi-cv-guia__cuerpo table { display: block; max-width: 100%; overflow-x: auto; border-collapse: collapse; margin: 0 0 24px; font-size: 0.9375rem; }
.spi-cv-acordeon__cuerpo th, .spi-cv-acordeon__cuerpo td { padding: 10px 12px; border-bottom: 1px solid var(--spi-plata); text-align: left; vertical-align: top; }
.spi-cv-acordeon__cuerpo thead th { font-family: var(--spi-cv-h3); text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.08em; }
.spi-cv-form-card select.elementor-field { padding-right: 36px; text-overflow: ellipsis; }

/* Introducción (servicios: junto a la ficha técnica; industrias: dentro de la guía) */
.spi-cv-intro { max-width: 720px; margin-bottom: 32px; font-size: var(--e-global-typography-cuerpo_grande-font-size, 20px); line-height: 1.6; color: var(--spi-tinta); }
.spi-cv-intro p { margin: 0 0 16px; }
.spi-cv-intro p:last-child { margin-bottom: 0; }
.spi-cv-guia__intro { justify-self: center; width: 100%; margin: 24px 0 0; font-size: var(--e-global-typography-cuerpo-font-size, 17px); }

/* Tablas comparativas: cabecera marcada y esquina superior izquierda vacía como esquina en blanco */
.spi-cv-acordeon__cuerpo thead th, .spi-cv-guia__cuerpo thead th { background: var(--spi-tinta); color: var(--spi-hueso); border-bottom: 0; }
.spi-cv-acordeon__cuerpo thead th:empty, .spi-cv-guia__cuerpo thead th:empty, .spi-cv-acordeon__cuerpo thead td:empty, .spi-cv-guia__cuerpo thead td:empty { background: transparent; border: 0; }
.spi-cv-acordeon__cuerpo tbody th, .spi-cv-guia__cuerpo tbody th { font-family: var(--spi-cv-h3); font-weight: 700; text-transform: uppercase; font-size: 0.8125rem; letter-spacing: 0.04em; }
.spi-cv-guia__cuerpo th, .spi-cv-guia__cuerpo td { vertical-align: top; }

/* Vista previa del cliente: el header de la portada (absoluto) baja bajo el aviso */
body.home:has(.spi-preview-aviso) .elementor-location-header { top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--spi-aviso-h, 37px)); }
/* "En resumen" sin intro al lado: caja ancha y protagonista */
.spi-cv-resumen--solo { grid-template-columns: minmax(0, 1fr); }
.spi-cv-resumen--solo .spi-cv-resumen__caja { max-width: 1040px; padding: 48px 56px 48px 60px; }
.spi-cv-resumen--solo .spi-cv-resumen__texto { font-size: clamp(1.125rem, 1rem + 0.6vw, 1.5rem); line-height: 1.5; }
@media (max-width: 767px) { .spi-cv-resumen--solo .spi-cv-resumen__caja { padding: 28px 24px 28px 28px; } }
