/* SPI Core: plantillas internas (agente D). Colores y fuentes desde las globales del kit de Elementor. */

/* Ocultar secciones cuyo contenido dinámico está vacío (Loop Grid sin resultados, shortcode vacío). */
.spi-si-hay:not(:has(.spi-fuente .elementor-shortcode > *, .spi-fuente .e-loop-item, .spi-fuente.elementor-widget-text-editor)) { display: none !important; }

/* Barra lateral fija */
@media (min-width: 1025px) {
	.spi-sticky { position: sticky; top: 120px; align-self: flex-start; }
	.admin-bar .spi-sticky { top: 152px; }
}

/* Migas de pan */
.spi-migas ol, .spi-migas p { display: flex; flex-wrap: wrap; gap: 4px 8px; margin: 0; padding: 0; list-style: none; font-size: 0.875rem; }
.spi-migas li + li::before { content: "/"; margin-right: 8px; color: var(--spi-chispa); }
.spi-migas a { color: var(--spi-plata); text-decoration: none; }
.spi-migas a:hover, .spi-migas a:focus-visible { color: var(--spi-hueso); text-decoration: underline; }
.spi-migas [aria-current], .spi-migas .last { color: var(--spi-acero); }
.spi-migas .separator { color: var(--spi-chispa); }
.spi-migas--claro a { color: var(--spi-tinta); }

/* Lista de servicios en la barra lateral */
.spi-servicios-lista ul { margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--spi-plata); }
.spi-servicios-lista li { border-bottom: 1px solid var(--spi-plata); }
.spi-servicios-lista a { display: flex; gap: 16px; align-items: center; min-height: 48px; padding: 12px 16px 12px 0; font-family: var(--spi-titulos); font-weight: 700; text-transform: uppercase; font-size: 0.9375rem; color: var(--spi-tinta); text-decoration: none; position: relative; transition: color 0.2s, padding 0.2s; }
.spi-servicios-lista a::after { content: ""; position: absolute; right: 4px; width: 8px; height: 8px; border-top: 2px solid currentColor; border-right: 2px solid currentColor; transform: rotate(45deg); opacity: 0.4; }
.spi-servicios-lista a:hover, .spi-servicios-lista a:focus-visible { color: var(--spi-carbon); padding-left: 8px; }
.spi-servicios-lista a.is-actual { color: var(--spi-carbon); background: var(--spi-chispa); padding-left: 16px; }
.spi-servicios-lista a.is-actual::after { opacity: 1; }
.spi-servicios-lista__num { color: var(--spi-acero); font-weight: 800; min-width: 24px; }
.spi-servicios-lista a.is-actual .spi-servicios-lista__num { color: var(--spi-carbon); }

/* Botón de contorno con caja separada para la flecha */
.spi-btn-flecha .elementor-button { padding: 0 !important; background: transparent !important; border: 1px solid currentColor !important; color: var(--spi-hueso) !important; }
.spi-btn-flecha .elementor-button-content-wrapper { align-items: stretch; gap: 0 !important; }
.spi-btn-flecha .elementor-button-text { padding: 17px 24px; }
.spi-btn-flecha .elementor-button-icon { display: flex; align-items: center; justify-content: center; padding: 0 18px; border-left: 1px solid currentColor; margin: 0 !important; transition: background 0.2s, color 0.2s; }
.spi-btn-flecha .elementor-button-icon svg { width: 14px; height: 14px; fill: currentColor; }
.spi-btn-flecha .elementor-button:hover .elementor-button-icon, .spi-btn-flecha .elementor-button:focus-visible .elementor-button-icon { background: var(--spi-chispa); color: var(--spi-carbon); border-color: var(--spi-chispa); }
.spi-btn-flecha--oscuro .elementor-button { color: var(--spi-tinta) !important; }
.elementor-button:focus-visible { outline: 3px solid var(--spi-chispa); outline-offset: 3px; }

/* Botón de ficha técnica */
.spi-ficha { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 12px 16px; border: 1px solid var(--spi-acero); color: var(--spi-hueso); font-family: var(--spi-titulos); font-weight: 700; text-transform: uppercase; font-size: 0.8125rem; letter-spacing: 0.06em; text-decoration: none; }
.spi-ficha svg { color: var(--spi-chispa); flex: none; }
.spi-ficha:hover, .spi-ficha:focus-visible { border-color: var(--spi-chispa); color: var(--spi-hueso); }

/* Ficha del proyecto */
.spi-proyecto-ficha { margin: 0; display: grid; gap: 0; border-top: 1px solid var(--spi-grafito); }
.spi-proyecto-ficha > div { display: grid; grid-template-columns: 110px 1fr; gap: 12px; padding: 14px 0; border-bottom: 1px solid var(--spi-grafito); }
.spi-proyecto-ficha dt { font-family: var(--spi-titulos); font-weight: 700; text-transform: uppercase; font-size: 0.75rem; letter-spacing: 0.08em; color: var(--spi-chispa); }
.spi-proyecto-ficha dd { margin: 0; color: var(--spi-hueso); }
.spi-proyecto-ficha a { color: var(--spi-hueso); }
.spi-proyecto-ficha a:hover { color: var(--spi-chispa); }

/* Tarjeta de proyecto (loop item 130) */
.spi-card-proyecto { transition: transform 0.25s ease; }
.spi-card-proyecto:hover { transform: translateY(-4px); }
.spi-card-proyecto:focus-visible { outline: 3px solid var(--spi-chispa); outline-offset: 3px; }
.spi-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.spi-media .elementor-widget-theme-post-featured-image, .spi-media .elementor-widget-image { width: 100%; height: 100%; }
.spi-media .elementor-widget-theme-post-featured-image a { display: block; height: 100%; }

/* Galería principal del proyecto: imagen destacada grande */
.spi-media--grande { aspect-ratio: 16 / 10; }

/* Filtros de portafolio */
.spi-filtros .e-filter { gap: 8px; }
.spi-filtros .e-filter-item { min-height: 44px; border: 1px solid var(--spi-plata) !important; }
.spi-filtros .e-filter-item[aria-pressed="true"] { background: var(--spi-chispa) !important; border-color: var(--spi-chispa) !important; color: var(--spi-carbon) !important; }
.spi-filtros .e-filter-item:focus-visible { outline: 3px solid var(--spi-chispa); outline-offset: 2px; }

/* Contenido largo (industrias, páginas): ancho de lectura */
.spi-prosa { max-width: 760px; }
.spi-prosa h2 { margin: 48px 0 16px; scroll-margin-top: 140px; font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem); line-height: 1.1; text-transform: uppercase; }
.spi-prosa h3 { margin: 32px 0 12px; }
.spi-prosa ul li::marker, .spi-prosa ol li::marker { color: var(--spi-chispa); }
.spi-prosa > *:first-child, .spi-prosa .elementor-widget-container > *:first-child { margin-top: 0; }

/* Línea de tiempo (Nosotros) */
.spi-linea-tiempo > .e-con { border-top: 2px solid var(--spi-chispa); }

/* Marcador de foto pendiente */
.spi-foto-pendiente { position: relative; }

/* Formulario de cotización */
.spi-form .elementor-field-type-acceptance label, .spi-form .elementor-field-type-acceptance a { font-size: 0.875rem; }
.spi-form .elementor-field-type-acceptance a { color: var(--spi-chispa); }
.spi-form .elementor-field:focus { outline: 2px solid var(--spi-chispa); outline-offset: 1px; }
.spi-form .elementor-field-type-upload input[type="file"] { padding: 10px; }

/* Tabla de contenidos */
.spi-toc .elementor-toc__list-item-text:focus-visible { outline: 2px solid var(--spi-chispa); }

@media (prefers-reduced-motion: reduce) {
	.spi-card-proyecto, .spi-card-proyecto:hover { transform: none; transition: none; }
}

/* Ajustes tras revisión visual */
.spi-media img[src*="placeholder.png"] { display: none; }
.elementor .spi-prosa h2 { margin: 48px 0 16px; font-size: clamp(1.75rem, 1.2rem + 1.6vw, 2.5rem); line-height: 1.1; }
.elementor .spi-prosa h3 { font-size: 1.25rem; }
.elementor .spi-tarjeta__titulo a, .elementor .spi-tarjeta__titulo a:hover { color: var(--spi-hueso); }
.elementor .spi-tarjeta:hover .spi-tarjeta__titulo a { color: var(--spi-chispa); }
.spi-btn-flecha.elementor-align-justify .elementor-button-text, .spi-btn-flecha .elementor-align-justify .elementor-button-text { flex: 1; text-align: left; }

/* Volver arriba: oculto con el menú móvil abierto; sin heredar el estilo global de botones del kit */
body.ui-home-menu-abierto .spi-flotante--arriba { display: none !important; }
button.spi-flotante--arriba { padding: 0; min-height: 0; background: var(--spi-grafito); color: var(--spi-hueso); border: 1px solid var(--spi-acero); }
button.spi-flotante--arriba:hover { background: var(--spi-chispa); color: var(--spi-carbon); }

/* Tarjeta de proyecto legible también sobre fondo carbon (home, sección 9) */
.spi-card-proyecto { box-shadow: inset 0 0 0 1px rgb(138 146 155 / 0.22); }
.spi-card-proyecto:hover { box-shadow: inset 0 0 0 1px var(--spi-chispa); }
