/* Optima Ingeniería · estilos del sitio (diseño aprobado 27/10/2026) · v1.0.7 */

:root {
	--optima-azul: #1B6FA8;
	--optima-azul-hover: #145785;
	--optima-coral: #C8412B;
	--optima-coral-hover: #A93522;
	--optima-noche: #0F1B2D;
	--optima-noche-2: #17263D;
	--optima-texto-2: #3E4A5C;
	--optima-texto-3: #5A6678;
	--optima-gris: #F5F7FA;
	--optima-borde: #E3E7EE;
	--optima-celeste-suave: #E6F1F9;
	--optima-radio: 14px;
	/* Tipografías del sitio (variables que usa Neve) */
	--bodyfontfamily: Inter, system-ui, -apple-system, "Segoe UI", sans-serif;
	--headingsfontfamily: Sora, Inter, system-ui, sans-serif;
}

body { font-family: var(--bodyfontfamily); }
h1, h2, h3, h4, h5, h6 { font-family: var(--headingsfontfamily); }

/* ---------- Portada: ancho completo y sin título ---------- */
.optima-front .nv-page-title-wrap,
.optima-front .entry-header { display: none; }
.optima-front .neve-main > .container,
.optima-front .nv-single-page-wrap,
.optima-front .nv-content-wrap { max-width: none; padding: 0; margin: 0; }

.optima-home { color: var(--optima-noche); font-size: 16px; line-height: 1.5; }
.optima-home > * { margin-top: 0 !important; margin-bottom: 0 !important; }
.optima-home a { text-decoration: none; }
.optima-home p { margin: 0; }
.optima-wrap { max-width: 1240px; margin: 0 auto !important; padding: 0 24px; box-sizing: border-box; }
.optima-sec { padding: 80px 0; }
.optima-sec--gris { background: var(--optima-gris); }
.optima-sec--noche { background: var(--optima-noche); color: #fff; }
.optima-sec--sinabajo { padding-bottom: 40px; }
.optima-sec--sinarriba { padding-top: 0; }

.optima-kicker { font-size: 14px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--optima-azul-hover); margin-bottom: 16px !important; }
.optima-sec--noche .optima-kicker { color: #7CCBF0; }
.optima-h1 { font-size: clamp(34px, 4.2vw, 52px) !important; line-height: 1.08 !important; letter-spacing: -.02em; font-weight: 700 !important; margin: 0 0 20px !important; }
.optima-h2 { font-size: clamp(26px, 3vw, 34px) !important; line-height: 1.15 !important; letter-spacing: -.01em; font-weight: 700 !important; margin: 0 0 8px !important; }
.optima-sub { color: var(--optima-texto-2); font-size: 17px; }
.optima-sec--noche .optima-sub, .optima-sec--noche p { color: #C9D3E0; }
.optima-lead { font-size: 19px; color: var(--optima-texto-2); max-width: 560px; margin-bottom: 32px !important; }

.optima-cabecera { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 32px !important; }
.optima-vermas a { font-weight: 600; color: var(--optima-azul); }
.optima-vermas a:hover { color: var(--optima-azul-hover); }

/* ---------- Hero ---------- */
.optima-hero { background: var(--optima-gris); overflow: hidden; }
.optima-hero .optima-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 56px; padding-top: 72px; padding-bottom: 80px; }
.optima-hero__texto { flex: 1 1 520px; min-width: 0; }
.optima-hero__visual { flex: 1 1 400px; min-width: 0; }
.optima-buscador { display: flex; flex-wrap: wrap; gap: 8px; max-width: 600px; margin: 0 0 20px; }
.optima-buscador input[type=search] { flex: 1 1 320px; min-width: 0; height: 52px; padding: 0 18px; font: inherit; font-size: 16px; color: var(--optima-noche); background: #fff; border: 1px solid #C9D2DE; border-radius: 10px; }
.optima-buscador button { height: 52px; padding: 0 24px; font: inherit; font-weight: 600; color: #fff; background: var(--optima-azul); border: 0; border-radius: 10px; cursor: pointer; }
.optima-buscador button:hover { background: var(--optima-azul-hover); }
.optima-populares { display: flex; flex-wrap: wrap; gap: 8px 20px; font-size: 14px; color: var(--optima-texto-2); }
.optima-populares a { color: var(--optima-azul); }

.optima-hero-visual { position: relative; min-height: 400px; display: flex; align-items: center; justify-content: center; }
.optima-arcos { position: absolute; inset: 0; width: 100%; height: 100%; opacity: .9; }
.optima-hero-card { position: relative; width: 300px; background: #fff; border-radius: 16px; box-shadow: 0 20px 48px rgba(15, 27, 45, .16); padding: 20px; }
.optima-hero-card__nombre { font-size: 18px !important; font-weight: 600 !important; line-height: 1.3 !important; margin: 0 0 12px !important; }
.optima-hero-card__nombre a, .optima-prod__nombre a { color: var(--optima-noche); }
.optima-hero-card__fila { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; }
.optima-stock { font-size: 13px; font-weight: 600; color: #1E6B3A; }
.optima-stock--no { color: var(--optima-texto-3); }
.optima-nota { font-size: 12px; color: var(--optima-texto-3); margin-top: 4px !important; }

/* ---------- Beneficios ---------- */
.optima-beneficios { border-bottom: 1px solid var(--optima-borde); }
.optima-beneficios .optima-wrap { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; padding-top: 28px; padding-bottom: 28px; }
.optima-beneficio { display: flex; gap: 14px; align-items: flex-start; }
.optima-beneficio strong { display: block; font-weight: 600; }
.optima-beneficio span { font-size: 14px; color: var(--optima-texto-3); }

/* ---------- Tarjetas ---------- */
.optima-grilla { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 20px; }
.optima-grilla--soluciones { grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); }
.optima-grilla--marcas { grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; }
.optima-grilla--kh { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); }
.optima-tarjeta { display: block; padding: 28px; border: 1px solid var(--optima-borde); border-radius: var(--optima-radio); background: #fff; color: var(--optima-noche) !important; transition: border-color .15s, box-shadow .15s; }
.optima-tarjeta { position: relative; }
.optima-tarjeta h3 a { color: inherit; }
.optima-tarjeta h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.optima-tarjeta h3 a:focus-visible { outline: none; }
.optima-tarjeta:focus-within { outline: 2px solid var(--optima-azul); outline-offset: 2px; }
.optima-espacio { margin-bottom: 40px !important; }
.optima-tarjeta:hover { border-color: #B8C6D8; box-shadow: 0 8px 24px rgba(15, 27, 45, .08); }
.optima-tarjeta h3 { font-size: 20px; font-weight: 600; margin: 16px 0 6px; }
.optima-tarjeta p { color: var(--optima-texto-2); font-size: 15px; margin-bottom: 14px; }
.optima-tarjeta .optima-cuenta { font-size: 14px; font-weight: 600; color: var(--optima-azul); }
.optima-sec--gris .optima-tarjeta { border-color: transparent; }
.optima-tarjeta--fila { display: flex; gap: 18px; }
.optima-tarjeta--fila h3 { margin-top: 0; font-size: 19px; }
.optima-tarjeta--fila p { margin-bottom: 0; }
.optima-tarjeta--fila svg { flex: none; }
.optima-marca { height: 96px; border: 1px solid var(--optima-borde); border-radius: 12px; display: flex; align-items: center; justify-content: center; color: var(--optima-noche) !important; font-family: var(--headingsfontfamily); font-weight: 600; font-size: 17px; text-align: center; padding: 0 12px; }
.optima-marca:hover { border-color: #B8C6D8; }
.optima-etiqueta { display: inline-block; font-size: 12px; font-weight: 600; color: var(--optima-azul-hover); background: var(--optima-celeste-suave); padding: 4px 10px; border-radius: 999px; }
.optima-grilla--kh h3 { line-height: 1.3; }

/* ---------- Productos destacados ---------- */
.optima-destacados { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; }
.optima-prod { border: 1px solid var(--optima-borde); border-radius: var(--optima-radio); padding: 18px; display: flex; flex-direction: column; gap: 10px; background: #fff; }
.optima-prod__img { display: flex; align-items: center; justify-content: center; height: 180px; border-radius: 10px; background: #fff; overflow: hidden; }
.optima-prod__img img { max-height: 180px; width: auto; object-fit: contain; }
.optima-hero-card .optima-prod__img { height: 160px; margin-bottom: 16px; }
.optima-sinfoto { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: #EEF2F7; color: var(--optima-texto-3); font-size: 13px; border-radius: 10px; }
.optima-prod__meta { font-size: 13px; color: var(--optima-texto-3); margin-bottom: 4px !important; }
.optima-prod__nombre { font-size: 16px !important; font-weight: 600 !important; line-height: 1.35 !important; margin: 0 !important; font-family: var(--bodyfontfamily) !important; }
.optima-prod__pn { font-size: 12px; color: var(--optima-texto-3); }
.optima-prod__pie { margin-top: auto; display: flex; flex-direction: column; gap: 10px; }
.optima-prod__precio, .optima-prod__precio .amount { font-family: var(--headingsfontfamily); font-size: 22px; font-weight: 700; color: var(--optima-noche); }

/* ---------- Botones ---------- */
.optima-btn, .optima-home .wp-block-button__link { display: inline-block; text-align: center; font-weight: 600; padding: 13px 22px; border-radius: 8px; line-height: 1.3; }
.optima-btn--comprar { background: var(--optima-coral); color: #fff !important; padding: 12px; }
.optima-btn--comprar:hover { background: var(--optima-coral-hover); }
.optima-home .is-style-optima-primario .wp-block-button__link, .optima-home .optima-btn-primario .wp-block-button__link { background: var(--optima-azul); color: #fff; }
.optima-home .optima-btn-primario .wp-block-button__link:hover { background: var(--optima-azul-hover); }
.optima-home .optima-btn-blanco .wp-block-button__link { background: #fff; color: var(--optima-noche); }
.optima-home .optima-btn-borde .wp-block-button__link { background: transparent; color: #fff; border: 1px solid #5A6B83; }

/* ---------- Soporte ---------- */
.optima-soporte .optima-wrap { display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.optima-soporte__texto, .optima-soporte__grilla { flex: 1 1 440px; min-width: 0; }
.optima-soporte__grilla { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 16px; }
.optima-caja-oscura { background: var(--optima-noche-2); border-radius: var(--optima-radio); padding: 22px; }
.optima-caja-oscura h3 { color: #fff; font-size: 18px; font-weight: 600; margin: 0 0 6px; }
.optima-caja-oscura p { font-size: 15px; }
.optima-soporte h2 { color: #fff; }

/* ---------- Presupuesto ---------- */
.optima-cta { background: var(--optima-celeste-suave); border-radius: 20px; padding: 48px; display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; }
.optima-cta__texto { flex: 1 1 480px; min-width: 0; }

@media (max-width: 600px) {
	.optima-sec { padding: 56px 0; }
	.optima-hero .optima-wrap { padding-top: 48px; padding-bottom: 56px; gap: 32px; }
	.optima-hero-visual { min-height: 340px; }
	.optima-cta { padding: 28px; }
}

/* Temas clásicos (como Neve) envuelven el contenido de cada grupo en un contenedor interno:
   se lo hace "transparente" para que filas y grillas funcionen igual que en el diseño. */
.optima-home .wp-block-group__inner-container { display: contents; }

/* Algunos temas agregan márgenes entre bloques: dentro de grillas y filas se anulan */
.optima-home :is(.optima-grilla, .optima-soporte__grilla, .optima-cabecera, .optima-cta, .optima-tarjeta--fila) > *,
.optima-home :is(.optima-grilla, .optima-soporte__grilla, .optima-cabecera, .optima-cta, .optima-tarjeta--fila) > .wp-block-group__inner-container > *,
.optima-home .optima-hero .optima-wrap > *,
.optima-home .optima-hero .optima-wrap > .wp-block-group__inner-container > *,
.optima-home .optima-soporte .optima-wrap > *,
.optima-home .optima-soporte .optima-wrap > .wp-block-group__inner-container > * { margin-block: 0 !important; }
.optima-home .optima-tarjeta > :first-child,
.optima-home .optima-tarjeta > .wp-block-group__inner-container > :first-child { margin-top: 0 !important; }

/* ---------- Encabezado de Neve: botón "Pedir presupuesto" (v1.0.2) ---------- */
.header .builder-item--button_base .button,
.header .builder-item--button_base .button.button-primary {
	border-radius: 8px !important;
	padding: 12px 22px !important;
	font-family: var(--bodyfontfamily);
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.2;
	letter-spacing: .01em;
	background: var(--optima-azul) !important;
	color: #fff !important;
	border: 0 !important;
	box-shadow: 0 1px 2px rgba(15, 27, 45, .12);
	transition: background-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.header .builder-item--button_base .button:hover,
.header .builder-item--button_base .button:focus-visible {
	background: var(--optima-azul-hover) !important;
	box-shadow: 0 4px 12px rgba(27, 111, 168, .28);
	transform: translateY(-1px);
}
.header .builder-item--button_base .button:focus-visible { outline: 2px solid var(--optima-azul); outline-offset: 3px; }

/* Botones de WooCommerce con el mismo redondeado del diseño */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce #respond input#submit, .wc-block-components-button, .single_add_to_cart_button {
	border-radius: 8px !important;
	font-weight: 600 !important;
}

/* ---------- Pie de página (patrón "Pie de página Optima") · v1.0.3 ---------- */
.optima-footer-site { background: var(--optima-noche); color: #C9D3E0; font-family: var(--bodyfontfamily); font-size: 15px; line-height: 1.6; }
.optima-footer-site .wp-block-group__inner-container { display: contents; }
.optima-footer-site p, .optima-footer-site ul, .optima-footer-site figure { margin: 0; }
.optima-footer-site a { color: #C9D3E0; text-decoration: none; }
.optima-footer-site a:hover { color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.optima-pie__columnas { display: grid !important; grid-template-columns: minmax(240px, 1.6fr) repeat(4, minmax(150px, 1fr)); gap: 32px; padding-top: 64px !important; padding-bottom: 40px !important; }
.optima-pie__marca { display: flex; flex-direction: column; gap: 10px; max-width: 340px; }
.optima-pie__logo img { height: 40px; width: auto; display: block; margin-bottom: 6px; }
.optima-pie__dato a, .optima-pie__dato { color: #fff; font-weight: 500; }
.optima-pie__redes { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 6px !important; }
.optima-pie__redes a { color: #7CCBF0; font-weight: 600; }
.optima-pie__col h3 { color: #fff; font-family: var(--bodyfontfamily); font-size: 15px; font-weight: 600; margin: 0 0 14px; letter-spacing: .01em; }
.optima-pie__col ul { list-style: none; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.optima-pie__base { display: flex !important; flex-wrap: wrap; gap: 20px 32px; justify-content: space-between; align-items: center; padding-top: 24px !important; padding-bottom: 32px !important; border-top: 1px solid #24354F; font-size: 13px; }
.optima-pie__legal { display: flex; flex-direction: column; gap: 8px; }
.optima-pie__enlaces { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.optima-pie__acciones { display: flex; flex-wrap: wrap; align-items: center; gap: 16px; }
.optima-footer-site .wp-block-buttons { margin: 0; }
.optima-footer-site .optima-btn-borde .wp-block-button__link { background: transparent; color: #fff; border: 1px solid #5A6B83; border-radius: 8px; padding: 10px 16px; font-weight: 600; font-size: 14px; }
.optima-footer-site .optima-btn-borde .wp-block-button__link:hover { border-color: #fff; text-decoration: none; }
.optima-pie__datafiscal img { display: block; height: 64px; width: auto; border-radius: 4px; background: #fff; }
@media (max-width: 900px) {
	.optima-pie__columnas { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.optima-pie__marca { grid-column: 1 / -1; max-width: none; }
}

/* ---------- Know-How: buscador propio (v1.0.4) ---------- */
.optima-kh-buscador { margin-bottom: 24px !important; }
.optima-kh-buscador .wp-block-search__inside-wrapper { border: 1px solid var(--optima-borde) !important; border-radius: 999px; background: #fff; padding: 4px !important; }
.optima-kh-buscador .wp-block-search__inside-wrapper:focus-within { border-color: var(--optima-azul) !important; box-shadow: 0 0 0 3px rgba(27, 111, 168, .15); }
.optima-kh-buscador .wp-block-search__input { border: 0 !important; box-shadow: none !important; background: transparent !important; padding: 10px 16px !important; font-size: 15px; outline: none; }
.optima-kh-buscador .wp-block-search__button { border: 0 !important; border-radius: 999px !important; background: var(--optima-azul) !important; color: #fff !important; margin-left: 4px; }
.optima-kh-buscador .wp-block-search__button:hover { background: var(--optima-azul-hover) !important; }

/* ---------- Bloques de código: texto legible sobre fondo oscuro (v1.0.4) ---------- */
.wp-block-code code { color: inherit; background: none; border: 0; padding: 0; font-family: ui-monospace, SFMono-Regular, Consolas, "Liberation Mono", Menlo, monospace; }

/* ---------- Know-How: categorías y resultados del buscador (v1.0.5) ---------- */
.optima-kh-archivo .optima-kicker a { color: inherit; text-decoration: none; }
.optima-kh-archivo .optima-kicker a:hover { text-decoration: underline; text-underline-offset: 3px; }
.optima-kh-archivo .optima-hero .optima-wrap { display: block; }
.optima-kh-archivo .optima-hero__texto { max-width: 760px; }
.optima-kh-archivo .optima-lead { margin-bottom: 24px !important; }
.optima-kh-archivo .optima-kh-buscador { max-width: 600px; }
.optima-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.optima-chip { display: inline-block; border: 1px solid var(--optima-azul); border-radius: 999px; color: var(--optima-azul) !important; background: #fff; padding: 8px 18px; font-size: 15px; font-weight: 500; line-height: 1.2; text-decoration: none; transition: background-color .15s, color .15s; }
.optima-chip:hover { background: var(--optima-celeste-suave); }
.optima-chip.is-activo { background: var(--optima-azul); color: #fff !important; }
.optima-kh-archivo__cuenta { font-size: 14px; font-weight: 600; color: var(--optima-texto-3); margin-bottom: 20px !important; }
.optima-kh-archivo .optima-tarjeta h3 { margin-top: 0; }
.optima-kh-archivo .optima-tarjeta .optima-etiqueta + h3 { margin-top: 14px; }
.optima-kh-archivo .optima-tarjeta p { margin-bottom: 0; }
.optima-kh-vacio { max-width: 640px; }
.optima-paginacion { margin-top: 40px; }
.optima-paginacion .nav-links { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.optima-paginacion .page-numbers { display: inline-block; min-width: 40px; padding: 8px 14px; border: 1px solid var(--optima-borde); border-radius: 999px; color: var(--optima-azul); text-align: center; text-decoration: none; }
.optima-paginacion .page-numbers.current { background: var(--optima-azul); border-color: var(--optima-azul); color: #fff; }
.optima-paginacion .screen-reader-text { position: absolute; clip: rect(1px, 1px, 1px, 1px); width: 1px; height: 1px; overflow: hidden; }

/* ---------- v1.0.6: buscador en píldora en cualquier página y botones de las secciones oscuras ---------- */
.optima-kh-buscador .wp-block-search__inside-wrapper { border-radius: 999px !important; }
.optima-kh-buscador .wp-block-search__input,
.optima-kh-buscador .wp-block-search__button { border-radius: 999px !important; }
/* Botones comunes del bloque Botones en secciones oscuras (no afecta a los optima-btn-* de la portada) */
.optima-sec--noche .wp-block-button:not([class*="optima-btn"]) .wp-block-button__link { border-radius: 8px !important; font-weight: 600; transition: background-color .15s, border-color .15s, color .15s; }
.optima-sec--noche .wp-block-button:not([class*="optima-btn"]):not(.is-style-outline) .wp-block-button__link { background: var(--optima-azul) !important; color: #fff !important; }
.optima-sec--noche .wp-block-button:not([class*="optima-btn"]):not(.is-style-outline) .wp-block-button__link:hover { background: var(--optima-azul-hover) !important; }
.optima-sec--noche .wp-block-button.is-style-outline:not([class*="optima-btn"]) .wp-block-button__link { background: transparent !important; color: #fff !important; border: 1px solid #5A6B83 !important; }
.optima-sec--noche .wp-block-button.is-style-outline:not([class*="optima-btn"]) .wp-block-button__link:hover { border-color: #fff !important; }

/* ------------------------------------------------------------------ */
/* Modo catálogo (v1.0.7): sin precios, stock y botón de presupuesto     */
/* ------------------------------------------------------------------ */
.optima-catalogo .optima-card .oc-precio,
.optima-catalogo .optima-card .oc-iva,
.optima-catalogo .nv-nav-cart,
.optima-catalogo .menu-item-nav-cart,
.optima-catalogo .header-menu-sidebar .nv-nav-cart,
.optima-catalogo .widget_shopping_cart,
.optima-catalogo.single-product .product .price:empty { display: none !important; }
.optima-cat-stock { margin: 0; font-size: 14px; font-weight: 600; color: #1E6B3A; }
.optima-cat-stock--pocas { color: #B45309; }
.optima-cat-stock--sin { color: var(--optima-coral); }
.optima-presupuesto { display: inline-flex; align-items: center; justify-content: center; text-align: center; }
a.optima-presupuesto.optima-btn { background: var(--optima-azul); color: #fff !important; padding: 12px 18px; border-radius: 8px; font-weight: 600; text-decoration: none; }
a.optima-presupuesto.optima-btn:hover { background: var(--optima-azul-hover); }
.optima-card .oc-pie a.optima-presupuesto--agotado,
a.optima-presupuesto--agotado.optima-btn { background: #fff !important; color: var(--optima-azul) !important; border: 1px solid var(--optima-azul) !important; }
.optima-card .oc-pie a.optima-presupuesto--agotado:hover,
a.optima-presupuesto--agotado.optima-btn:hover { background: var(--optima-celeste-suave) !important; }
.optima-hero-card__fila .optima-presupuesto { padding: 10px 16px; }
.optima-cat-ficha { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; margin: 8px 0 24px; }
.optima-cat-ficha .optima-cat-stock { font-size: 16px; }
.optima-cat-ficha .optima-presupuesto { min-height: 48px; padding: 0 28px; font-size: 16px; }
.optima-cat-leyenda { margin: 0; font-size: 13px; color: var(--optima-texto-3); }
