/*
Theme Name: Texicor
Theme URI: https://industriastexicor.co/
Author: Boost Crew
Description: Tema de bloques de Industrias Texicor. Sustituye a Elementor, Elementor Pro, ooohboi y hello-elementor. Movil primero, sin JavaScript de maquetacion.
Version: 1.1.0
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: texicor
*/

/* ---------- Base (movil primero) ---------- */
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 5rem; }
body { overflow-x: clip; }
img, video, iframe { max-width: 100%; height: auto; }
iframe { border: 0; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
.tx-main > .wp-block-post-content > * { margin-block-start: 0; }
:focus-visible { outline: 3px solid var(--wp--preset--color--texicolor); outline-offset: 2px; }
a, button { -webkit-tap-highlight-color: transparent; }

/* ---------- Cabecera ---------- */
.tx-cabecera { position: sticky; top: 0; z-index: 50; }
.admin-bar .tx-cabecera { top: var(--wp-admin--admin-bar--height, 0); }
.tx-logo img { display: block; width: 130px !important; height: auto; }
.tx-menu .wp-block-navigation__responsive-container-open,
.tx-menu .wp-block-navigation__responsive-container-close { padding: 10px; }
.tx-menu .wp-block-navigation__responsive-container-open svg { width: 30px; height: 30px; }
.tx-menu .wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem max(1rem, 5vw); }
.tx-menu .is-menu-open .wp-block-navigation__container { gap: 0.25rem; font-size: 1.15rem; }
.tx-menu .is-menu-open .wp-block-navigation-item__content { padding: 0.55rem 0 !important; }
.tx-menu .is-menu-open .wp-block-navigation__submenu-container { padding-left: 1rem !important; font-size: 1rem; }
.tx-menu .wp-block-navigation__submenu-container { color: var(--wp--preset--color--texicolor); }
/* Menu movil: todo a la izquierda, padres en negrita, hijos con guia a la izquierda, por encima de WhatsApp */
.tx-menu .wp-block-navigation__responsive-container.is-menu-open { z-index: 100001; }
.tx-menu .is-menu-open .wp-block-navigation__responsive-container-content,
.tx-menu .is-menu-open .wp-block-navigation__container,
.tx-menu .is-menu-open .wp-block-navigation-item { align-items: flex-start !important; text-align: left; }
.tx-menu .is-menu-open .wp-block-navigation__container > .wp-block-navigation-item > .wp-block-navigation-item__content { font-weight: 700; }
.tx-menu .is-menu-open .wp-block-navigation__submenu-container { border-left: 2px solid rgba(255, 255, 255, 0.35); margin-left: 0.25rem !important; font-weight: 400; }
.tx-menu .is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { font-size: 0.95rem; }
.tx-menu .is-menu-open .tx-menu-cta { margin-top: 1rem; }
.tx-menu .tx-menu-cta > a { background: #fff; color: var(--wp--preset--color--texicolor) !important; border-radius: 6px; padding: 0.55rem 1.1rem !important; font-weight: 700; }
@media (min-width: 600px) { .tx-logo img { width: 150px !important; } }
/* Tableta (600-1099 px): el menu completo no cabe en una fila; se queda la hamburguesa como en movil. */
@media (min-width: 600px) and (max-width: 1099px) {
	.tx-menu .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.tx-menu .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.tx-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
}
/* Escritorio: logo y boton a los extremos, menu centrado en el espacio entre ambos. */
@media (min-width: 1100px) {
	.tx-cabecera > .alignwide { max-width: none !important; gap: 1.5rem; }
	.tx-cabecera .tx-menu,
	.tx-menu .wp-block-navigation__responsive-container:not(.is-menu-open),
	.tx-menu .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-close,
	.tx-menu .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-dialog,
	.tx-menu .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__responsive-container-content,
	.tx-menu .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container { flex: 1; width: 100%; max-width: none; }
	.tx-menu .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > :first-child,
	.tx-menu .wp-block-navigation__responsive-container:not(.is-menu-open) .wp-block-navigation__container > .tx-menu-cta { margin-left: auto; }
}
/* Escritorio: submenus desplegables blancos. */
@media (min-width: 1100px) {
	.tx-menu .wp-block-navigation__submenu-container { background: #fff !important; border: 0 !important; border-radius: 8px; box-shadow: var(--wp--preset--shadow--suave); padding: 0.4rem 0; min-width: 15rem !important; }
	/* El menu lleva has-blanco-color (!important de WordPress): sin esto el texto del submenu sale blanco sobre blanco. */
	.tx-menu .wp-block-navigation__submenu-container, .tx-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content { color: var(--wp--preset--color--texicolor) !important; }
	/* El menu nacio alineado a la derecha y WordPress abre el 2.o nivel hacia la izquierda; centrado, se abre a la derecha. */
	.tx-menu .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { left: 100% !important; right: auto !important; top: -0.4rem; }
	.tx-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: 0.45rem 1rem; }
	.tx-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: #C8DEF4; }
}

.tx-titulo-pagina { padding-top: var(--wp--preset--spacing--50); }
.tx-titulo-pagina:not(:has(h1)) { display: none; }
/* Sin titulo visible, el contenido arranca pegado a la cabecera (si no, hereda el blockGap del titulo oculto). */
.tx-titulo-pagina:not(:has(h1)) + .wp-block-post-content { margin-block-start: 0; }
/* Enlaces de texto sobre fondos oscuros: el color del enlace (azul) desaparecia sobre el azul. */
.tx-main .has-blanco-color a:not(.wp-element-button) { color: inherit; }

/* ---------- Secciones ---------- */
.tx-seccion { padding-block: var(--wp--preset--spacing--50); }
.tx-seccion.has-background, .tx-seccion.wp-block-cover { padding-inline: max(1rem, 4vw); }
.tx-seccion + .tx-seccion:not(.has-background):not(.wp-block-cover) { padding-top: 0; }
.tx-seccion.has-background + .tx-seccion:not(.has-background):not(.wp-block-cover) { padding-top: var(--wp--preset--spacing--50); }
.wp-block-columns { gap: var(--wp--preset--spacing--40); }
.wp-block-column.has-background { padding: var(--wp--preset--spacing--30); border-radius: 8px; }
.wp-block-cover { border-radius: 0; }
.wp-block-image img { border-radius: 6px; }
.wp-block-image.tx-logo img, .tx-pie .wp-block-image img { border-radius: 0; }
.wp-block-separator { border-top-width: 1px; opacity: 1; }

/* Titulos de seccion: «Somos ———» */
.tx-titulo-linea { display: flex; align-items: center; gap: 1.25rem; }
.tx-titulo-linea::after { content: ""; flex: 1; height: 1px; background: currentColor; opacity: 0.6; }

/* ---------- Caja con icono ---------- */
.tx-icono { display: inline-flex; width: 3rem; height: 3rem; color: var(--wp--preset--color--texicolor); }
.tx-icono svg { width: 100%; height: 100%; fill: currentColor; }
.tx-caja-icono { text-align: center; align-items: center; height: auto; }
.wp-block-column > .tx-caja-icono:only-child, .tx-rejilla > .tx-caja-icono { height: 100%; }
.tx-caja-icono p { overflow-wrap: anywhere; }
.wp-block-image.aligncenter img[src$=".svg"]:not([width]):not([style*="width"]) { width: 150px; }
.tx-caja-icono.has-background { padding: var(--wp--preset--spacing--30); border-radius: 10px; }

/* ---------- Tarjetas (sustituyen a los flip box: todo visible, tambien en movil) ---------- */
.tx-tarjeta { background: #fff; border-radius: 10px; overflow: hidden; box-shadow: var(--wp--preset--shadow--suave); height: 100%; display: flex; flex-direction: column; }
.tx-tarjeta > .wp-block-image { margin: 0; overflow: hidden; }
.tx-tarjeta > .wp-block-image img { border-radius: 0; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform 0.4s ease; }
.tx-tarjeta > .tx-tarjeta-cuerpo { padding: var(--wp--preset--spacing--30); display: flex; flex-direction: column; gap: 0.6rem; flex: 1; }
.tx-tarjeta .wp-block-buttons { margin-top: auto; }
.tx-tarjeta-cuerpo > * { margin-block-start: 0 !important; }
.tx-tarjeta-cuerpo > .wp-block-buttons { margin-top: auto !important; }
.tx-main .txf { margin-top: 1rem; }
@media (hover: hover) { .tx-tarjeta:hover > .wp-block-image img { transform: scale(1.05); } }

/* ---------- CTA con imagen (sustituye al call-to-action de Pro) ---------- */
.tx-cta { border-radius: 10px; overflow: hidden; min-height: 260px !important; isolation: isolate; }
.tx-cta .wp-block-cover__image-background { transition: transform 0.6s ease; }
@media (hover: hover) { .tx-cta:hover .wp-block-cover__image-background { transform: scale(1.06); } }
.tx-cta .tx-cinta { position: absolute; top: 0.9rem; right: 0.9rem; z-index: 2; margin: 0; background: var(--wp--preset--color--texicolor); color: #fff; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.06em; padding: 0.25rem 0.6rem; border-radius: 4px; }
.tx-cta .tx-cta-enlace a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.tx-cta :where(h1, h2, h3, p) { color: #fff; }

/* ---------- Tarjetas de producto (columna con imagen de fondo) ---------- */
.tx-columna-imagen { border-radius: 10px; overflow: hidden; color: #fff; padding: var(--wp--preset--spacing--40) !important; }
.tx-columna-imagen :where(h1, h2, h3, h4, p) { color: #fff; }
.tx-columna-imagen .wp-block-cover__image-background { transition: transform 0.6s ease; }
@media (hover: hover) { .tx-columna-imagen:hover .wp-block-cover__image-background { transform: scale(1.05); } }
.tx-carrusel > .wp-block-group.has-background { border-radius: 10px; padding: var(--wp--preset--spacing--40); }

/* ---------- Portada con video ---------- */
.tx-portada-video { min-height: 70vh !important; }
@media (min-width: 782px) { .tx-portada-video { min-height: 80vh !important; } }
.tx-portada-video .wp-block-cover__inner-container { display: flex; flex-direction: column; justify-content: flex-end; align-self: stretch; }
.tx-portada-video .wp-block-button__link { font-size: 1.25rem; box-shadow: var(--wp--preset--shadow--suave); }

/* ---------- Rejilla de tarjetas (CTA y cajas con icono): 2 por fila en movil, 3 en escritorio ---------- */
.tx-rejilla { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem; }
.tx-rejilla > * { margin: 0 !important; }
@media (max-width: 781px) { .tx-rejilla > :last-child:nth-child(odd) { grid-column: 1 / -1; } }
@media (min-width: 782px) { .tx-rejilla { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--wp--preset--spacing--30); } }
@media (max-width: 781px) {
	.tx-rejilla .tx-cta { min-height: 170px !important; padding: 0.75rem !important; }
	.tx-rejilla .tx-cta :where(h2, h3) { font-size: 1.05rem !important; }
	.tx-rejilla .tx-cta .wp-block-button__link { padding: 0.5rem 0.9rem; font-size: 0.85rem; }
	.tx-rejilla .tx-cta .tx-cinta { top: 0.5rem; right: 0.5rem; font-size: 0.65rem; }
	.tx-rejilla .tx-caja-icono.has-background { padding: 0.9rem 0.6rem; }
	.tx-rejilla .tx-caja-icono :where(h2, h3, h4) { font-size: 0.95rem !important; }
	.tx-rejilla .tx-icono { width: 2.25rem; height: 2.25rem; }
}

/* ---------- Carrusel solo CSS (scroll-snap): se desliza con el dedo, sin JS ---------- */
.tx-carrusel { display: grid !important; grid-auto-flow: column; grid-auto-columns: 82%; gap: var(--wp--preset--spacing--30); overflow-x: auto; overscroll-behavior-x: contain; scroll-snap-type: x mandatory; padding-bottom: 0.75rem; scrollbar-width: thin; }
.tx-carrusel > * { scroll-snap-align: start; margin: 0 !important; }
@media (min-width: 700px) { .tx-carrusel { grid-auto-columns: calc((100% - var(--wp--preset--spacing--30)) / 2); } }
@media (min-width: 1000px) { .tx-carrusel { grid-auto-columns: calc((100% - 2 * var(--wp--preset--spacing--30)) / 3); } }
.tx-carrusel-nav { display: none; justify-content: flex-end; gap: 0.5rem; margin-top: 0.5rem !important; }
@media (hover: hover) and (min-width: 700px) { .tx-carrusel-nav { display: flex; } }
.tx-carrusel-nav button { width: 44px; height: 44px; border-radius: 6px; border: 1px solid var(--wp--preset--color--texicolor); background: #fff; color: var(--wp--preset--color--texicolor); font-size: 1.2rem; cursor: pointer; }
.tx-testimonio { background: #fff; border-radius: 10px; padding: var(--wp--preset--spacing--30); box-shadow: var(--wp--preset--shadow--suave); text-align: center; }
.tx-testimonio img { border-radius: 8px; margin-inline: auto; }

/* ---------- Titular con circulo dibujado (sustituye a animated-headline) ---------- */
.tx-marca { position: relative; display: inline-block; z-index: 0; color: inherit; background: none; padding: 0 0.15em; }
.tx-marca svg { position: absolute; left: -6%; top: -18%; width: 112%; height: 136%; z-index: -1; overflow: visible; pointer-events: none; }
.tx-marca path { fill: none; stroke: var(--wp--preset--color--texicolor); stroke-width: 7; stroke-linecap: round; stroke-dasharray: 1500; stroke-dashoffset: 0; }
@supports (animation-timeline: view()) {
	.tx-marca path { stroke-dashoffset: 1500; animation: tx-trazo linear forwards; animation-timeline: view(); animation-range: entry 20% cover 45%; }
}
@keyframes tx-trazo { to { stroke-dashoffset: 0; } }

/* ---------- Contadores: la cifra real esta en el HTML ---------- */
.tx-contador { text-align: center; }
.tx-contador .tx-cifra { font-size: var(--wp--preset--font-size--xx-large); font-weight: 900; color: var(--wp--preset--color--texicolor); line-height: 1; margin: 0; }

/* ---------- Indice de contenidos ---------- */
.tx-indice { background: var(--wp--preset--color--celeste-claro); border-radius: 8px; padding: var(--wp--preset--spacing--30) var(--wp--preset--spacing--40); }
.tx-indice ol { margin: 0.5rem 0 0; padding-left: 1.25rem; }
.tx-indice li { margin: 0.3rem 0; }

/* ---------- Entradas y archivo ---------- */
.tx-articulo > :where(h2) { margin-block-start: 2.2rem; }
.tx-articulo > :where(h3) { margin-block-start: 1.6rem; }
.tx-entrada .wp-block-post-featured-image img { border-radius: 8px; }
.tx-categoria a { font-size: 0.85rem; font-weight: 700; text-transform: uppercase; letter-spacing: 0.05em; text-decoration: none; }
.tx-fecha { color: var(--wp--preset--color--gris-texto); }
.tx-tarjeta-entrada { background: #fff; border-radius: 10px; overflow: hidden; box-shadow: var(--wp--preset--shadow--suave); gap: 0.5rem; height: 100%; }
.tx-tarjeta-entrada > :not(.wp-block-post-featured-image) { padding-inline: 1.1rem; }
.tx-tarjeta-entrada > :last-child { padding-bottom: 1.1rem; }
.tx-tarjeta-entrada .wp-block-post-title a { text-decoration: none; }
.tx-tarjeta-entrada .wp-block-post-featured-image img { border-radius: 0; }

/* ---------- Pie ---------- */
.tx-lista-pie { list-style: none; padding: 0; }
.tx-lista-pie li { padding: 0.3rem 0; }
.tx-lista-pie a { text-decoration: none; }
.tx-lista-pie a:hover { text-decoration: underline; }
.tx-boton-claro .wp-block-button__link { color: #fff !important; border-color: #fff !important; }

/* ---------- Formularios (texicor-leads): campos comodos en movil ---------- */
.tx-main input:not([type=checkbox]):not([type=radio]), .tx-main select, .tx-main textarea { font-size: 16px; min-height: 44px; }

/* ---------- Movimiento: aparicion suave al hacer scroll, solo donde el navegador lo soporta ---------- */
@supports (animation-timeline: view()) {
	.tx-revelar { animation: tx-aparecer linear both; animation-timeline: view(); animation-range: entry 0% entry 35%; }
}
@keyframes tx-aparecer { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
@view-transition { navigation: auto; }

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
	@view-transition { navigation: none; }
}

/* ---------- Preguntas frecuentes (bloques Detalles en .tx-faq; tambien salen como FAQPage en el JSON-LD) ---------- */
.tx-faq .wp-block-details { border-bottom: 1px solid var(--wp--preset--color--gris); margin: 0; padding: 0; }
.tx-faq .wp-block-details summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 1rem; padding: 1rem 0; min-height: 44px; font-size: 1.0625rem; font-weight: 700; color: var(--wp--preset--color--azul); }
.tx-faq .wp-block-details summary::-webkit-details-marker { display: none; }
.tx-faq .wp-block-details summary::after { content: "+"; flex: none; font-size: 1.5rem; line-height: 1; color: var(--wp--preset--color--texicolor); transition: transform 0.2s; }
.tx-faq .wp-block-details[open] summary::after { transform: rotate(45deg); }
.tx-faq .wp-block-details > :not(summary) { margin: 0 0 1rem; }
@media (prefers-reduced-motion: reduce) { .tx-faq .wp-block-details summary::after { transition: none; } }

/* ---------- Textos legales (politica de datos) ---------- */
.tx-legal h2 { margin-block-start: 2.4rem; font-size: var(--wp--preset--font-size--large); }
.tx-legal h3 { margin-block-start: 1.6rem; font-size: var(--wp--preset--font-size--medium); }
.tx-legal .tx-legal-indice { background: var(--wp--preset--color--celeste-claro); border-radius: 10px; padding: 1.25rem 1.5rem; }
.tx-legal .tx-legal-indice ol { margin: 0.5rem 0 0; padding-left: 1.2rem; columns: 2 16rem; column-gap: 2rem; }
.tx-legal .tx-legal-indice li { margin-bottom: 0.3rem; break-inside: avoid; }
.tx-legal .tx-legal-ficha { border-left: 4px solid var(--wp--preset--color--texicolor); padding: 0.25rem 0 0.25rem 1.25rem; }
.tx-legal table { font-size: 0.95rem; }
.tx-legal .wp-block-table { overflow-x: auto; }
