/*
Theme Name: EFGN Soluciones
Theme URI: https://www.efgnsoluciones.com
Description: Tema corporativo premium para EFGN SOLUCIONES - Inteligencia que impulsa resultados
Author: EFGN Soluciones
Author URI: https://www.efgnsoluciones.com
Version: 1.3.6
Requires at least: 6.4
Requires PHP: 8.0
License: GNU General Public License v2 or later
Text Domain: efgn-soluciones
*/

/* ========== VARIABLES ========== */
:root {
  --efgn-primary: #0B0F19;      /* Azul Noche Profundo */
  --efgn-secondary: #0d1526;
  --efgn-accent: #06B6D4;       /* Cian Tecnológico */
  --efgn-accent-dark: #0891b2;
  --efgn-green: #10b981;
  --efgn-gray-light: #f0f4f8;
  --efgn-gray: #64748b;
  --efgn-gray-dark: #334155;
  --efgn-white: #ffffff;
  --efgn-text: #1e293b;
  --efgn-radius: 8px;
  --efgn-shadow: 0 4px 24px rgba(6,182,212,.08);
  --efgn-shadow-dark: 0 8px 32px rgba(0,0,0,.3);
  --efgn-transition: .3s ease;
  --efgn-max-width: 1200px;
  --efgn-font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
  --efgn-font-heading: 'Orbitron', 'Inter', sans-serif;
}

/* ========== FONDO OSCURO GLOBAL — todas las secciones ========== */
/* Secciones que antes eran blancas o gris claro ahora usan el fondo oscuro del tema */
.efgn-services,
.efgn-about,
.efgn-page-content,
.efgn-solution-section,
.efgn-problem-section,
.efgn-process-section,
.efgn-methodology-section,
.efgn-target-section,
.efgn-faq-section,
.efgn-solar-benefits,
.efgn-products-section,
.efgn-legal-alert,
.efgn-related-products,
.efgn-single,
.efgn-product-single,
.efgn-catalog-search-section,
.efgn-results-count {
  background: var(--efgn-primary);
}

/* Textos que eran oscuros ahora son claros sobre fondo oscuro */
.efgn-services h2,
.efgn-about h2,
.efgn-page-content h2,
.efgn-page-content h3,
.efgn-page-content h4,
.efgn-solution-section h2,
.efgn-solution-section h3,
.efgn-problem-section h2,
.efgn-process-section h2,
.efgn-methodology-section h2,
.efgn-target-section h2,
.efgn-faq-section h2,
.efgn-solar-benefits h2,
.efgn-products-section h2,
.efgn-single-content h2,
.efgn-single-content h3,
.efgn-product-info h1 {
  color: var(--efgn-white);
}

.efgn-section-title p,
.efgn-service-detail-lead,
.efgn-about p,
.efgn-page-content p {
  color: rgba(255,255,255,.7);
}

/* Cards sobre fondo oscuro */
.efgn-service-card,
.efgn-method-item,
.efgn-process-step,
.efgn-benefit-card,
.efgn-pain-item,
.efgn-blog-card,
.efgn-product-card {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.08);
  color: rgba(255,255,255,.85);
}

.efgn-service-card h3,
.efgn-method-item h4,
.efgn-process-step h4,
.efgn-blog-card h3,
.efgn-blog-card-title a,
.efgn-product-card-body h3 a {
  color: var(--efgn-white);
}

.efgn-service-card p,
.efgn-method-item p,
.efgn-process-step p,
.efgn-benefit-card span,
.efgn-blog-card p,
.efgn-product-desc,
.efgn-service-detail-lead,
.efgn-feature-item,
.efgn-pain-item p,
.efgn-single-content p,
.efgn-single-content li {
  color: rgba(255,255,255,.7);
}

/* Target cards sobre fondo oscuro */
.efgn-target-card {
  border-color: rgba(255,255,255,.1);
  background: rgba(255,255,255,.03);
}
.efgn-target-card h4 { color: var(--efgn-white); }
.efgn-target-card p   { color: rgba(255,255,255,.65); }

/* Stats sobre fondo oscuro */
.efgn-stat {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
}
.efgn-stat span { color: rgba(255,255,255,.6); }

/* Result box sobre fondo oscuro */
.efgn-result-box {
  background: rgba(6,182,212,.08);
  border-color: rgba(6,182,212,.2);
}
.efgn-result-box p { color: rgba(255,255,255,.75); }

/* Alert box sobre fondo oscuro */
.efgn-alert-box {
  background: rgba(6,182,212,.06);
  border-color: rgba(6,182,212,.2);
}
.efgn-alert-box strong { color: var(--efgn-white); }
.efgn-alert-box p      { color: rgba(255,255,255,.7); }

/* FAQ accordion sobre fondo oscuro */
.efgn-faq-question {
  background: rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.08);
  color: var(--efgn-white);
}
.efgn-faq-question:hover,
.efgn-faq-question[aria-expanded="true"] {
  background: rgba(6,182,212,.1);
}
.efgn-faq-answer {
  background: #ffffff;
  border-color: rgba(255,255,255,.06);
}

/* Formulario sobre fondo oscuro */
.efgn-form label { color: rgba(255,255,255,.85); }
.efgn-form input,
.efgn-form textarea,
.efgn-form select {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.12);
  color: var(--efgn-white);
}
.efgn-form input::placeholder,
.efgn-form textarea::placeholder { color: rgba(255,255,255,.35); }
.efgn-form input:focus,
.efgn-form textarea:focus,
.efgn-form select:focus {
  border-color: var(--efgn-accent);
  background: rgba(255,255,255,.08);
}
.efgn-form select option { background: var(--efgn-primary); color: var(--efgn-white); }

/* Contacto info cards sobre fondo oscuro */
.efgn-contact-info-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
}
.efgn-contact-info-card strong { color: var(--efgn-white); }
.efgn-contact-info-card span,
.efgn-contact-info-card a { color: rgba(255,255,255,.7); }

/* Breadcrumb sobre fondo oscuro */
.efgn-breadcrumb {
  background: rgba(255,255,255,.03);
  border-bottom-color: rgba(255,255,255,.06);
}
.efgn-breadcrumb ol { color: rgba(255,255,255,.5); }

/* Buscador catálogo sobre fondo oscuro */
#efgn-product-search,
.efgn-filters select {
  background: rgba(255,255,255,.06);
  border-color: rgba(255,255,255,.12);
  color: var(--efgn-white);
}
#efgn-product-search::placeholder { color: rgba(255,255,255,.35); }
.efgn-search-results {
  background: #0d1526;
  border-color: rgba(255,255,255,.1);
}
.efgn-search-result-item { border-bottom-color: rgba(255,255,255,.06); color: rgba(255,255,255,.8); }
.efgn-search-result-item:hover { background: rgba(6,182,212,.1); }
.efgn-search-result-item strong { color: var(--efgn-white); }

/* Paginación sobre fondo oscuro */
.efgn-pagination .page-numbers {
  border-color: rgba(255,255,255,.12);
  color: rgba(255,255,255,.7);
  background: rgba(255,255,255,.04);
}

/* Post nav sobre fondo oscuro */
.efgn-post-nav-link { background: rgba(255,255,255,.05); }
.efgn-post-nav-link:hover { background: rgba(6,182,212,.1); }
.efgn-post-nav-title { color: var(--efgn-white); }

/* Tags sobre fondo oscuro */
.efgn-tag-link { background: rgba(255,255,255,.06); color: rgba(255,255,255,.7); }

/* 404 links sobre fondo oscuro */
.efgn-404-link {
  background: rgba(255,255,255,.05);
  border-color: rgba(255,255,255,.08);
  color: var(--efgn-white);
}

/* Producto individual sobre fondo oscuro */
.efgn-product-brand-tag {
  background: rgba(255,255,255,.08);
  color: rgba(255,255,255,.85);
}
.efgn-product-note {
  background: rgba(255,255,255,.04);
  border-left-color: var(--efgn-accent);
  color: rgba(255,255,255,.6);
}
.efgn-gallery-main { background: rgba(255,255,255,.05); }

/* Páginas legales sobre fondo oscuro */
.efgn-legal-content h2,
.efgn-legal-content h3 { color: var(--efgn-white); }
.efgn-legal-content p,
.efgn-legal-content li { color: rgba(255,255,255,.7); }
.efgn-legal-content .efgn-legal-meta {
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.7);
}

/* Separadores sobre fondo oscuro */
.efgn-service-detail { border-bottom-color: rgba(255,255,255,.06); }
.efgn-post-tags,
.efgn-post-nav,
.efgn-related-posts { border-top-color: rgba(255,255,255,.06); }
.efgn-single-content blockquote { background: rgba(255,255,255,.05); color: rgba(255,255,255,.7); }
.efgn-single-content a { color: var(--efgn-accent); }

/* Impact stats ya era oscuro — mantener */
.efgn-impact-stats { background: rgba(255,255,255,.03); }

/* Mapa */
.efgn-map { box-shadow: 0 4px 24px rgba(0,0,0,.4); }

/* ========== FIN FONDO OSCURO GLOBAL ========== */


body {
  font-family: var(--efgn-font);
  color: rgba(255,255,255,.85);
  line-height: 1.7;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  background: var(--efgn-primary);
}

/* Contraste global: todos los textos legibles sobre fondo oscuro */
h1, h2, h3, h4, h5, h6 { color: var(--efgn-white); }
p { color: rgba(255,255,255,.78); }
strong, b { color: var(--efgn-white); }
label { color: rgba(255,255,255,.9); }
input, textarea, select {
  color: var(--efgn-white);
  background: rgba(255,255,255,.07);
  border-color: rgba(255,255,255,.15);
}
input::placeholder, textarea::placeholder { color: rgba(255,255,255,.35); }
select option { background: #0d1526; color: var(--efgn-white); }
.efgn-contact-info-card strong { color: var(--efgn-white); }
.efgn-contact-info-card span,
.efgn-contact-info-card a,
.efgn-contact-info-card address { color: rgba(255,255,255,.78); }

img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: inherit; transition: color var(--efgn-transition); }
ul { list-style: none; }

.efgn-container {
  max-width: var(--efgn-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
  width: 100%;
  box-sizing: border-box;
}

/* Secciones de contenido: limitar ancho y centrar */
.efgn-page-content .efgn-container,
.efgn-solution-section .efgn-container,
.efgn-problem-section .efgn-container,
.efgn-process-section .efgn-container,
.efgn-methodology-section .efgn-container,
.efgn-target-section .efgn-container,
.efgn-faq-section .efgn-container,
.efgn-solar-benefits .efgn-container,
.efgn-products-section .efgn-container,
.efgn-impact-stats .efgn-container,
.efgn-about .efgn-container,
.efgn-services .efgn-container,
.efgn-testimonials .efgn-container,
.efgn-related-products .efgn-container,
.efgn-catalog-search-section .efgn-container,
.efgn-single .efgn-container {
  max-width: var(--efgn-max-width);
  margin-left: auto;
  margin-right: auto;
}

/* Texto justificado en todo el contenido de párrafos */
p,
.efgn-service-card p,
.efgn-method-item p,
.efgn-process-step p,
.efgn-target-card p,
.efgn-testimonial p,
.efgn-result-box p,
.efgn-alert-box p,
.efgn-pain-item p,
.efgn-service-detail-lead,
.efgn-single-content p,
.efgn-product-description p,
.efgn-legal-content p,
.efgn-footer p,
.efgn-about p {
  text-align: justify;
  text-justify: inter-word;
  hyphens: auto;
}

/* Excepciones: elementos que NO deben justificarse */
.efgn-hero p,
.efgn-page-hero p,
.efgn-cta p,
.efgn-section-title p,
.efgn-hero-badge,
.efgn-blog-card-meta,
.efgn-post-nav-label,
.efgn-product-meta,
.efgn-product-sku,
.efgn-product-brand,
.efgn-contact-info-card span,
.efgn-contact-info-card a,
.efgn-footer-bottom,
.efgn-breadcrumb ol,
.efgn-stat span,
.efgn-impact-item span,
.efgn-testimonial-author span,
.efgn-testimonial-author strong {
  text-align: inherit;
  hyphens: none;
}

/* ========== TIPOGRAFÍA ========== */
h1, h2, h3, h4 { font-weight: 700; line-height: 1.2; color: var(--efgn-white); }
h1 { font-size: clamp(1.8rem, 4.5vw, 3rem); font-family: var(--efgn-font-heading); letter-spacing: -.5px; }
h2 { font-size: clamp(1.5rem, 3.5vw, 2.2rem); font-family: var(--efgn-font-heading); }
h3 { font-size: clamp(1.1rem, 2.5vw, 1.4rem); font-family: var(--efgn-font-heading); }

/* Orbitron solo en hero y section titles para no sobrecargar */
.efgn-hero h1,
.efgn-page-hero h1 { font-size: clamp(1.6rem, 4vw, 2.8rem); }

.efgn-section-title {
  text-align: center;
  margin-bottom: 48px;
}
.efgn-section-title h2 { margin-bottom: 12px; }
.efgn-section-title p { color: var(--efgn-gray); font-size: 1.1rem; max-width: 600px; margin: 0 auto; }
.efgn-section-title::after {
  content: '';
  display: block;
  width: 60px;
  height: 3px;
  background: linear-gradient(90deg, var(--efgn-accent), transparent);
  margin: 16px auto 0;
  border-radius: 2px;
}

/* ========== BOTONES ========== */
.efgn-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 14px 32px;
  border-radius: var(--efgn-radius);
  font-weight: 600;
  font-size: .95rem;
  border: none;
  cursor: pointer;
  transition: all var(--efgn-transition);
}
.efgn-btn-primary {
  background: var(--efgn-accent);
  color: var(--efgn-primary);
  font-family: var(--efgn-font-heading);
  font-size: .82rem;
  letter-spacing: .5px;
}
.efgn-btn-primary:hover { background: var(--efgn-accent-dark); transform: translateY(-2px); box-shadow: 0 8px 24px rgba(6,182,212,.35); }
.efgn-btn-secondary {
  background: transparent;
  color: var(--efgn-white);
  border: 2px solid var(--efgn-white);
}
.efgn-btn-secondary:hover { background: var(--efgn-white); color: var(--efgn-primary); }
.efgn-btn-whatsapp {
  background: #25d366;
  color: #fff;
}
.efgn-btn-whatsapp:hover { background: #1fb855; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(37,211,102,.3); }

/* ========== HEADER ========== */
.efgn-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: rgba(10,37,64,.95);
  backdrop-filter: blur(12px);
  transition: all var(--efgn-transition);
  border-bottom: 1px solid rgba(255,255,255,.05);
}
.efgn-header.scrolled { background: rgba(10,37,64,.98); box-shadow: 0 2px 20px rgba(0,0,0,.15); }
.efgn-header-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 24px;
  max-width: var(--efgn-max-width);
  margin: 0 auto;
}
.efgn-logo {
  display: flex;
  align-items: center;
  gap: 12px;
  color: var(--efgn-white);
  font-size: 1.4rem;
  font-weight: 800;
  letter-spacing: -.5px;
}
.efgn-logo span { color: var(--efgn-accent); }
.efgn-nav { display: flex; align-items: center; gap: 32px; }
.efgn-nav a {
  color: rgba(255,255,255,.8);
  font-size: .9rem;
  font-weight: 500;
  position: relative;
  padding: 4px 0;
}
.efgn-nav a::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 0;
  height: 2px;
  background: var(--efgn-accent);
  transition: width var(--efgn-transition);
}
.efgn-nav a:hover { color: #fff; }
.efgn-nav a:hover::after { width: 100%; }

/* Mobile menu */
.efgn-menu-toggle {
  display: none;
  flex-direction: column;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
}
.efgn-menu-toggle span {
  width: 24px;
  height: 2px;
  background: #fff;
  transition: all var(--efgn-transition);
  border-radius: 2px;
}
.efgn-menu-toggle.active span:nth-child(1) { transform: rotate(45deg) translate(5px,5px); }
.efgn-menu-toggle.active span:nth-child(2) { opacity: 0; }
.efgn-menu-toggle.active span:nth-child(3) { transform: rotate(-45deg) translate(5px,-5px); }

/* ========== CONTRASTE DE TEXTO GLOBAL ========== */
/* Sobre fondo oscuro (#0B0F19) todos los textos deben ser claros */
body { color: rgba(255,255,255,.85); }

h1, h2, h3, h4, h5, h6 { color: var(--efgn-white); }

p { color: rgba(255,255,255,.75); }

strong, b { color: var(--efgn-white); }

label { color: rgba(255,255,255,.9) !important; }

/* Inputs, textareas y selects: texto blanco sobre fondo semitransparente */
input, textarea, select {
  color: var(--efgn-white) !important;
  background: rgba(255,255,255,.07) !important;
  border-color: rgba(255,255,255,.15) !important;
}
input::placeholder, textarea::placeholder {
  color: rgba(255,255,255,.35) !important;
}
select option {
  background: #0d1526;
  color: var(--efgn-white);
}

/* Tarjetas de info de contacto */
.efgn-contact-info-card strong { color: var(--efgn-white) !important; }
.efgn-contact-info-card span,
.efgn-contact-info-card a,
.efgn-contact-info-card address { color: rgba(255,255,255,.75) !important; }

/* Títulos de secciones sobre fondo oscuro */
.efgn-page-content h2,
.efgn-page-content h3,
.efgn-page-content h4 { color: var(--efgn-white) !important; }

/* ========== HERO CENTRADO ========== */
.efgn-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, #060a12 0%, var(--efgn-primary) 50%, #0d1a2e 100%);
  overflow: hidden;
  width: 100%;
}
/* El contenido del hero siempre dentro de .efgn-container */
.efgn-hero > .efgn-container {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
}
.efgn-hero-layout {
  position: relative;
  z-index: 2;
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  gap: 48px;
  align-items: center;
  width: 100%;
}
.efgn-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 60% 50% at 80% 50%, rgba(6,182,212,.12) 0%, transparent 70%),
    url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100"><defs><pattern id="g" width="20" height="20" patternUnits="userSpaceOnUse"><circle cx="1" cy="1" r=".5" fill="rgba(6,182,212,.04)"/></pattern></defs><rect fill="url(%23g)" width="100" height="100"/></svg>');
}
.efgn-hero-content {
  position: relative;
  max-width: 720px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.efgn-hero-badge {
  display: inline-block;
  background: rgba(6,182,212,.1);
  color: var(--efgn-accent);
  padding: 6px 16px;
  border-radius: 20px;
  font-size: .82rem;
  font-weight: 600;
  margin-bottom: 24px;
  border: 1px solid rgba(6,182,212,.25);
  font-family: var(--efgn-font-heading);
  letter-spacing: .5px;
}
.efgn-hero h1 {
  color: var(--efgn-white);
  margin-bottom: 20px;
  text-align: left;
}
.efgn-hero p {
  color: rgba(255,255,255,.8);
  font-size: 1.15rem;
  margin-bottom: 36px;
  max-width: 640px;
  text-align: left;
}
.efgn-hero-buttons {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: flex-start;
}
.efgn-hero-proof {
  list-style: none;
  display: grid;
  gap: 10px;
  margin: 24px 0 0;
  padding: 0;
}
.efgn-hero-proof li {
  color: rgba(255,255,255,.78);
  position: relative;
  padding-left: 18px;
  line-height: 1.6;
}
.efgn-hero-proof li::before {
  content: '';
  position: absolute;
  top: 10px;
  left: 0;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: var(--efgn-accent);
}
.efgn-hero-media {
  position: relative;
  z-index: 2;
}
.efgn-hero-media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 24px;
  box-shadow: 0 24px 80px rgba(0,0,0,.28);
}
.efgn-page-hero-inner {
  max-width: 860px;
  margin: 0 auto;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.efgn-page-hero-inner .efgn-hero-buttons {
  justify-content: center;
}
.efgn-page-hero--digital,
.efgn-page-hero--business,
.efgn-page-hero--legal,
.efgn-page-hero--solar {
  position: relative;
  overflow: hidden;
}
.efgn-page-hero--digital::after,
.efgn-page-hero--business::after,
.efgn-page-hero--legal::after,
.efgn-page-hero--solar::after {
  content: '';
  display: block;
  width: min(100%, 720px);
  height: 300px;
  margin: 28px auto 0;
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  opacity: .95;
}
body.page-template-page-soluciones-digitales-php .efgn-page-hero--digital::after { background-image: url('assets/img/hero-digital.svg'); }
body.page-template-page-asesoria-empresarial-php .efgn-page-hero--business::after { background-image: url('assets/img/hero-business.svg'); }
body.page-template-page-asesoria-legal-php .efgn-page-hero--legal::after { background-image: url('assets/img/hero-legal.svg'); }
body.page-template-page-energia-solar-seguridad-php .efgn-page-hero--solar::after { background-image: url('assets/img/hero-energy.svg'); }
body.page-template-page-servicios-php .efgn-page-hero--digital::after { background-image: url('assets/img/hero-business.svg'); }
body.page-template-page-tienda-php .efgn-page-hero--digital::after { background-image: url('assets/img/hero-energy.svg'); }
body.page-template-page-catalogo-php .efgn-page-hero--digital::after { background-image: url('assets/img/hero-energy.svg'); }
body.page-template-page-efgn-erp-php .efgn-page-hero--digital::after { background-image: url('assets/img/erp-dashboard.svg'); }
.efgn-hero-shape {
  position: absolute;
  right: -5%;
  top: 50%;
  transform: translateY(-50%);
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(6,182,212,.1) 0%, rgba(6,182,212,.03) 40%, transparent 70%);
  z-index: 1;
  animation: efgn-glow-pulse 4s ease-in-out infinite;
}
@keyframes efgn-glow-pulse {
  0%, 100% { opacity: .7; transform: translateY(-50%) scale(1); }
  50% { opacity: 1; transform: translateY(-50%) scale(1.05); }
}

/* ========== SERVICIOS GRID ========== */
.efgn-services {
  padding: 100px 0;
  background: var(--efgn-gray-light);
}
.efgn-services-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 28px;
}
.efgn-service-card {
  background: var(--efgn-white);
  border-radius: 12px;
  padding: 36px 28px;
  box-shadow: var(--efgn-shadow);
  transition: all var(--efgn-transition);
  border: 1px solid rgba(0,0,0,.04);
  position: relative;
  overflow: hidden;
}
.efgn-service-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 3px;
  background: linear-gradient(90deg, var(--efgn-accent), transparent);
  transform: scaleX(0);
  transition: transform var(--efgn-transition);
}
.efgn-service-card:hover { transform: translateY(-6px); box-shadow: 0 12px 40px rgba(10,37,64,.12); }
.efgn-service-card:hover::before { transform: scaleX(1); }
.efgn-service-icon {
  width: 56px;
  height: 56px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--efgn-primary), #0d1a2e);
  border: 1px solid rgba(6,182,212,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 20px;
  color: var(--efgn-accent);
  font-size: 1.4rem;
}
.efgn-service-card h3 { margin-bottom: 12px; font-size: 1.15rem; }
.efgn-service-card p { color: var(--efgn-gray); font-size: .92rem; margin-bottom: 16px; }
.efgn-service-card a {
  color: var(--efgn-accent);
  font-weight: 600;
  font-size: .9rem;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.efgn-service-card a:hover { gap: 10px; }

/* ========== ABOUT / POR QUÉ ========== */
.efgn-about {
  padding: 100px 0;
}
.efgn-about-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.efgn-about-img {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--efgn-shadow);
}
.efgn-about-img img { width: 100%; height: 400px; object-fit: cover; }
.efgn-erp-promo {
  padding: 100px 0;
  background: linear-gradient(135deg, rgba(6,182,212,.08), rgba(11,15,25,.96));
}
.efgn-erp-promo-grid,
.efgn-erp-overview {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 48px;
  align-items: center;
}
.efgn-erp-promo-copy h2,
.efgn-erp-overview-copy h2 {
  margin-bottom: 16px;
}
.efgn-erp-promo-copy p,
.efgn-erp-overview-copy p,
.efgn-erp-overview-copy li {
  color: rgba(255,255,255,.78);
}
.efgn-erp-promo-list,
.efgn-erp-overview-copy ul {
  margin: 20px 0 28px;
  padding-left: 18px;
  display: grid;
  gap: 10px;
}
.efgn-erp-promo-media img,
.efgn-erp-overview-media img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 24px;
  box-shadow: 0 20px 70px rgba(0,0,0,.25);
}
.efgn-stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-top: 32px;
}
.efgn-stat {
  text-align: center;
  padding: 16px;
  background: var(--efgn-gray-light);
  border-radius: var(--efgn-radius);
}
.efgn-stat strong {
  display: block;
  font-size: 1.8rem;
  color: var(--efgn-accent);
  font-family: var(--efgn-font-heading);
}
.efgn-stat span { font-size: .85rem; color: var(--efgn-gray); }

/* ========== TESTIMONIOS ========== */
.efgn-testimonials {
  padding: 100px 0;
  background: var(--efgn-primary);
  color: var(--efgn-white);
  position: relative;
  overflow: hidden;
}
.efgn-testimonials::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 80% 60% at 50% 100%, rgba(6,182,212,.06) 0%, transparent 70%);
  pointer-events: none;
}
.efgn-testimonials .efgn-section-title h2 { color: #fff; }
.efgn-testimonials .efgn-section-title p { color: rgba(255,255,255,.6); }
.efgn-testimonials-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 28px;
}
.efgn-testimonial {
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  padding: 32px;
}
.efgn-testimonial-stars { color: var(--efgn-accent); margin-bottom: 16px; font-size: 1rem; }
.efgn-testimonial p { color: rgba(255,255,255,.8); font-size: .95rem; margin-bottom: 20px; font-style: italic; }
.efgn-testimonial-author { display: flex; align-items: center; gap: 12px; }
.efgn-testimonial-avatar {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: var(--efgn-accent);
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  color: var(--efgn-primary);
  font-size: .9rem;
}
.efgn-testimonial-author strong { display: block; font-size: .9rem; }
.efgn-testimonial-author span { font-size: .8rem; color: rgba(255,255,255,.5); }

/* ========== CTA CONTACTO ========== */
.efgn-cta {
  padding: 80px 0;
  background: linear-gradient(135deg, #060a12 0%, var(--efgn-primary) 50%, #060a12 100%);
  text-align: center;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.efgn-cta::before {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 60% 80% at 50% 50%, rgba(6,182,212,.08) 0%, transparent 70%);
  pointer-events: none;
}
.efgn-cta h2 { color: #fff; margin-bottom: 16px; }
.efgn-cta p { color: rgba(255,255,255,.8); margin-bottom: 32px; max-width: 500px; margin-left: auto; margin-right: auto; }
.efgn-cta-buttons { display: flex; justify-content: center; gap: 16px; flex-wrap: wrap; }

/* ========== FOOTER ========== */
.efgn-footer {
  background: #04070f;
  color: rgba(255,255,255,.7);
  padding: 60px 0 0;
  border-top: 1px solid rgba(6,182,212,.1);
}
.efgn-footer-grid {
  display: grid;
  grid-template-columns: 2fr 1fr 1fr 1fr;
  gap: 40px;
  padding-bottom: 40px;
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.efgn-footer h4 { color: #fff; margin-bottom: 20px; font-size: 1rem; }
.efgn-footer p { font-size: .9rem; line-height: 1.8; }
.efgn-footer a { color: rgba(255,255,255,.7); font-size: .9rem; }
.efgn-footer a:hover { color: var(--efgn-accent); }
.efgn-footer ul li { margin-bottom: 10px; }
.efgn-footer-contact li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 12px;
  font-size: .9rem;
}
.efgn-footer-contact i { color: var(--efgn-accent); margin-top: 4px; }
.efgn-footer-bottom {
  text-align: center;
  padding: 24px 0;
  font-size: .85rem;
  color: rgba(255,255,255,.4);
}

/* ========== PÁGINAS INTERNAS ========== */
.efgn-page-hero {
  padding: 160px 0 80px;
  background: linear-gradient(135deg, #060a12 0%, var(--efgn-primary) 100%);
  text-align: center;
  color: #fff;
  position: relative;
  overflow: hidden;
}
.efgn-page-hero::after {
  content: '';
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse 70% 60% at 50% 100%, rgba(6,182,212,.1) 0%, transparent 70%);
  pointer-events: none;
}
.efgn-page-hero h1 { color: #fff; margin-bottom: 12px; }
.efgn-page-hero p { color: rgba(255,255,255,.7); font-size: 1.1rem; }

.efgn-page-content {
  padding: 80px 0;
}

/* Sub-servicios */
.efgn-subservices {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 28px;
  margin-top: 48px;
}
.efgn-subservice {
  background: var(--efgn-white);
  border-radius: 12px;
  padding: 32px;
  box-shadow: var(--efgn-shadow);
  border: 1px solid rgba(0,0,0,.04);
  transition: all var(--efgn-transition);
}
.efgn-subservice:hover { transform: translateY(-4px); box-shadow: 0 12px 40px rgba(10,37,64,.12); }
.efgn-subservice-icon {
  width: 48px;
  height: 48px;
  border-radius: 10px;
  background: var(--efgn-gray-light);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 16px;
  color: var(--efgn-primary);
  font-size: 1.2rem;
}
.efgn-subservice h3 { margin-bottom: 10px; font-size: 1.1rem; }
.efgn-subservice p { color: var(--efgn-gray); font-size: .9rem; }

/* ========== CONTACTO ========== */
.efgn-contact-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 48px;
  margin-top: 48px;
}
.efgn-contact-info-card {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 20px;
  background: var(--efgn-gray-light);
  border-radius: var(--efgn-radius);
  margin-bottom: 16px;
}
.efgn-contact-info-card i {
  font-size: 1.2rem;
  color: var(--efgn-accent);
  margin-top: 2px;
}
.efgn-contact-info-card strong { display: block; margin-bottom: 4px; font-size: .95rem; }
.efgn-contact-info-card span, .efgn-contact-info-card a { font-size: .9rem; color: var(--efgn-gray); }

.efgn-form label {
  display: block;
  font-weight: 600;
  font-size: .9rem;
  margin-bottom: 6px;
  color: var(--efgn-primary);
}
.efgn-form input,
.efgn-form textarea,
.efgn-form select {
  width: 100%;
  padding: 12px 16px;
  border: 1px solid #dde3ea;
  border-radius: var(--efgn-radius);
  font-family: var(--efgn-font);
  font-size: .95rem;
  margin-bottom: 16px;
  transition: border-color var(--efgn-transition);
  background: #fff;
}
.efgn-form input:focus,
.efgn-form textarea:focus,
.efgn-form select:focus {
  outline: none;
  border-color: var(--efgn-accent);
  box-shadow: 0 0 0 3px rgba(200,169,81,.1);
}
.efgn-form textarea { min-height: 120px; resize: vertical; }
.efgn-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.efgn-form-msg {
  padding: 12px 16px;
  border-radius: var(--efgn-radius);
  margin-bottom: 16px;
  font-size: .9rem;
  display: none;
}
.efgn-form-msg.success { display: block; background: #d4edda; color: #155724; }
.efgn-form-msg.error { display: block; background: #f8d7da; color: #721c24; }

/* Mapa */
.efgn-map {
  border-radius: 12px;
  overflow: hidden;
  margin-top: 48px;
  box-shadow: var(--efgn-shadow);
}
.efgn-map iframe { width: 100%; height: 350px; border: 0; }

/* ========== BLOG ========== */
.efgn-blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 28px;
}
.efgn-blog-card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: var(--efgn-shadow);
  transition: all var(--efgn-transition);
  border: 1px solid rgba(0,0,0,.04);
}
.efgn-blog-card:hover { transform: translateY(-4px); }
.efgn-blog-card img { width: 100%; height: 200px; object-fit: cover; }
.efgn-blog-card-body { padding: 24px; }
.efgn-blog-card-meta { font-size: .8rem; color: var(--efgn-gray); margin-bottom: 8px; }
.efgn-blog-card h3 { font-size: 1.1rem; margin-bottom: 8px; }
.efgn-blog-card h3 a:hover { color: var(--efgn-accent); }
.efgn-blog-card p { font-size: .9rem; color: var(--efgn-gray); }

/* ========== SINGLE POST — contenido limpio sin sidebar ========== */
.efgn-single { padding: 60px 0 80px; }
.efgn-single-content {
  max-width: 780px;
  margin: 0 auto;
  padding: 0 24px;
}
.efgn-single-content h1,
.efgn-single-content h2,
.efgn-single-content h3,
.efgn-single-content h4 { color: var(--efgn-white); }
.efgn-single-content p  { color: rgba(255,255,255,.8); margin-bottom: 1.4em; line-height: 1.9; }
.efgn-single-content ul,
.efgn-single-content ol { padding-left: 24px; margin-bottom: 1.4em; }
.efgn-single-content li { color: rgba(255,255,255,.8); margin-bottom: .5em; }
.efgn-single-content blockquote {
  border-left: 4px solid var(--efgn-accent);
  padding: 16px 24px;
  background: rgba(255,255,255,.04);
  border-radius: 0 var(--efgn-radius) var(--efgn-radius) 0;
  margin: 1.5em 0;
  font-style: italic;
  color: rgba(255,255,255,.75);
}
.efgn-single-content a { color: var(--efgn-accent); text-decoration: underline; }
.efgn-single-content img { border-radius: var(--efgn-radius); margin: 1.5em auto; display: block; }
.efgn-single-content h2 { margin: 2em 0 .6em; }
.efgn-single-content h3 { margin: 1.6em 0 .5em; }

/* ========== WHATSAPP FLOTANTE ========== */
.efgn-whatsapp-float {
  position: fixed !important;
  bottom: 24px !important;
  left: 24px !important;
  right: auto !important;
  width: 60px;
  height: 60px;
  background: #25d366;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.7rem;
  box-shadow: 0 4px 20px rgba(37,211,102,.4);
  z-index: 999;
  transition: all var(--efgn-transition);
  animation: efgn-pulse 2s infinite;
}
.efgn-whatsapp-float:hover { transform: scale(1.1); }

@keyframes efgn-pulse {
  0%, 100% { box-shadow: 0 4px 20px rgba(37,211,102,.4); }
  50% { box-shadow: 0 4px 30px rgba(37,211,102,.6); }
}

/* ========== ANIMACIONES ========== */
.efgn-fade-up {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity .6s ease, transform .6s ease;
}
.efgn-fade-up.visible {
  opacity: 1;
  transform: translateY(0);
}

/* ========== RESPONSIVE ========== */
@media (max-width: 968px) {
  .efgn-about-grid,
  .efgn-contact-grid { grid-template-columns: 1fr; }
  .efgn-footer-grid { grid-template-columns: 1fr 1fr; }
  .efgn-hero-shape { display: none; }
}

@media (max-width: 600px) {
  .efgn-footer-grid { grid-template-columns: 1fr; }
  .efgn-form-row { grid-template-columns: 1fr; }
  .efgn-stats { grid-template-columns: 1fr; }
  .efgn-hero-buttons { flex-direction: column; }
}

/* ========== PÁGINAS DE SERVICIOS - LAYOUTS ========== */
.efgn-page-hero-inner { max-width: 760px; }

.efgn-label-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: .82rem;
  font-weight: 600;
  margin-bottom: 16px;
}
.efgn-label-danger { background: rgba(231,76,60,.1); color: #e74c3c; border: 1px solid rgba(231,76,60,.2); }
.efgn-label-success { background: rgba(46,204,113,.1); color: #27ae60; border: 1px solid rgba(46,204,113,.2); }

/* ========== PROBLEM SECTION ========== */
.efgn-problem-section { padding: 80px 0; background: var(--efgn-gray-light); }
.efgn-problem-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
}
.efgn-pain-list { display: flex; flex-direction: column; gap: 16px; margin-top: 24px; }
.efgn-pain-item {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  padding: 16px;
  background: #fff;
  border-radius: var(--efgn-radius);
  border-left: 3px solid #e74c3c;
}
.efgn-pain-item i { color: #e74c3c; margin-top: 3px; flex-shrink: 0; }
.efgn-pain-item p { font-size: .92rem; color: var(--efgn-gray-dark); margin: 0; }

/* ========== SOLUTION SECTION ========== */
.efgn-solution-section { padding: 80px 0; }

.efgn-service-detail {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  margin-bottom: 80px;
  padding-bottom: 80px;
  border-bottom: 1px solid #eef0f3;
}
.efgn-service-detail:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.efgn-service-detail--reverse .efgn-service-detail-img { order: 2; }
.efgn-service-detail--reverse .efgn-service-detail-content { order: 1; }

.efgn-service-detail-img img {
  width: 100%;
  height: 380px;
  object-fit: cover;
  border-radius: 16px;
  box-shadow: var(--efgn-shadow);
}
.efgn-service-detail-icon {
  width: 52px;
  height: 52px;
  border-radius: 12px;
  background: linear-gradient(135deg, var(--efgn-primary), #0d1a2e);
  border: 1px solid rgba(6,182,212,.2);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--efgn-accent);
  font-size: 1.3rem;
  margin-bottom: 16px;
}
.efgn-service-detail-content h3 { margin-bottom: 12px; }
.efgn-service-detail-lead {
  color: var(--efgn-gray);
  font-size: 1rem;
  margin-bottom: 24px;
  line-height: 1.7;
}
.efgn-feature-list { display: flex; flex-direction: column; gap: 10px; margin-bottom: 24px; }
.efgn-feature-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: .92rem;
}
.efgn-feature-item i { color: var(--efgn-green); margin-top: 3px; flex-shrink: 0; }

.efgn-result-box {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  background: linear-gradient(135deg, rgba(6,182,212,.04), rgba(6,182,212,.08));
  border: 1px solid rgba(6,182,212,.2);
  border-radius: var(--efgn-radius);
  padding: 16px;
  margin-bottom: 24px;
}
.efgn-result-box i { color: var(--efgn-accent); font-size: 1.1rem; margin-top: 2px; flex-shrink: 0; }
.efgn-result-box p { font-size: .88rem; color: var(--efgn-gray-dark); margin: 0; }

/* ========== PROCESS SECTION ========== */
.efgn-process-section { padding: 80px 0; background: var(--efgn-gray-light); }
.efgn-process-steps {
  display: flex;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
  justify-content: center;
  margin-top: 48px;
}
.efgn-process-step {
  flex: 1;
  min-width: 180px;
  max-width: 220px;
  text-align: center;
  padding: 28px 20px;
  background: #fff;
  border-radius: 12px;
  box-shadow: var(--efgn-shadow);
}
.efgn-process-num {
  font-size: 2rem;
  font-weight: 800;
  color: var(--efgn-accent);
  margin-bottom: 12px;
  line-height: 1;
  font-family: var(--efgn-font-heading);
}
.efgn-process-step h4 { font-size: 1rem; margin-bottom: 8px; }
.efgn-process-step p { font-size: .85rem; color: var(--efgn-gray); }
.efgn-process-arrow { color: var(--efgn-accent); font-size: 1.2rem; }

/* ========== FAQ SECTION ========== */
.efgn-faq-section { padding: 80px 0; }
.efgn-faq-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 24px;
  margin-top: 48px;
}
.efgn-faq-item {
  background: var(--efgn-gray-light);
  border-radius: var(--efgn-radius);
  padding: 24px;
  border-left: 3px solid var(--efgn-accent);
  transition: box-shadow var(--efgn-transition);
}
.efgn-faq-item:hover { box-shadow: 0 4px 20px rgba(6,182,212,.1); }
.efgn-faq-item h4 {
  font-size: .95rem;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--efgn-primary);
}
.efgn-faq-item h4 i { color: var(--efgn-accent); }
.efgn-faq-item p { font-size: .88rem; color: var(--efgn-gray); line-height: 1.7; }

/* ========== IMPACT STATS ========== */
.efgn-impact-stats { padding: 60px 0; background: var(--efgn-primary); border-top: 1px solid rgba(6,182,212,.1); border-bottom: 1px solid rgba(6,182,212,.1); }
.efgn-impact-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 32px;
  text-align: center;
}
.efgn-impact-item strong {
  display: block;
  font-size: 2.8rem;
  font-weight: 800;
  color: var(--efgn-accent);
  line-height: 1;
  margin-bottom: 8px;
  font-family: var(--efgn-font-heading);
}
.efgn-impact-item span { color: rgba(255,255,255,.7); font-size: .9rem; }

/* ========== METHODOLOGY ========== */
.efgn-methodology-section { padding: 80px 0; background: var(--efgn-secondary); }
.efgn-method-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 28px;
  margin-top: 48px;
}
.efgn-method-item {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  padding: 32px 24px;
  text-align: center;
  box-shadow: var(--efgn-shadow-dark);
  transition: transform var(--efgn-transition);
}
.efgn-method-item:hover { transform: translateY(-4px); }
.efgn-method-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, rgba(6,182,212,.15), rgba(6,182,212,.05));
  border: 1px solid rgba(6,182,212,.25);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--efgn-accent);
  font-size: 1.3rem;
  margin: 0 auto 16px;
}
.efgn-method-item h4 { margin-bottom: 10px; font-size: 1rem; color: var(--efgn-white); }
.efgn-method-item p { font-size: .88rem; color: rgba(255,255,255,.7); }

/* ========== TARGET SECTION ========== */
.efgn-target-section { padding: 80px 0; }
.efgn-target-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 24px;
  margin-top: 48px;
}
.efgn-target-card {
  border: 2px solid #eef0f3;
  border-radius: 12px;
  padding: 28px 24px;
  text-align: center;
  transition: all var(--efgn-transition);
}
.efgn-target-card:hover { border-color: var(--efgn-accent); transform: translateY(-4px); box-shadow: 0 8px 32px rgba(6,182,212,.1); }
.efgn-target-card i { font-size: 2rem; color: var(--efgn-accent); margin-bottom: 16px; display: block; }
.efgn-target-card h4 { margin-bottom: 10px; }
.efgn-target-card p { font-size: .88rem; color: var(--efgn-gray); }

/* ========== LEGAL ALERT ========== */
.efgn-legal-alert { padding: 32px 0; background: #fff; }
.efgn-alert-box {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  background: rgba(6,182,212,.06);
  border: 1px solid rgba(6,182,212,.25);
  border-radius: 12px;
  padding: 24px 28px;
}
.efgn-alert-box i { font-size: 2rem; color: var(--efgn-accent); flex-shrink: 0; margin-top: 2px; }
.efgn-alert-box strong { display: block; font-size: 1rem; color: var(--efgn-primary); margin-bottom: 6px; }
.efgn-alert-box p { font-size: .92rem; color: var(--efgn-gray-dark); margin: 0; }

/* ========== HERO VARIANTES ========== */
.efgn-page-hero--digital { background: linear-gradient(135deg, #060a12 0%, #0B0F19 50%, #071520 100%); }
.efgn-page-hero--business { background: linear-gradient(135deg, #060a12 0%, #0B0F19 50%, #071a14 100%); }
.efgn-page-hero--legal { background: linear-gradient(135deg, #0a0612 0%, #0B0F19 50%, #060a12 100%); }
.efgn-page-hero--solar { background: linear-gradient(135deg, #060a12 0%, #0B0F19 50%, #071a0a 100%); }
body.page-template-page-contacto-php .efgn-page-hero--digital::after { background-image: url('assets/img/hero-digital.svg'); }
body.page-template-page-nosotros-php .efgn-page-hero--business::after { background-image: url('assets/img/hero-business.svg'); }

/* ========== SOLAR/SEGURIDAD ESPECÍFICOS ========== */
.efgn-solar-benefits { padding: 80px 0; background: var(--efgn-secondary); }
.efgn-benefits-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 24px;
  margin-top: 48px;
}
.efgn-benefit-card {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  padding: 28px 20px;
  text-align: center;
  box-shadow: var(--efgn-shadow-dark);
}
.efgn-benefit-card i { font-size: 2rem; color: var(--efgn-green); margin-bottom: 12px; display: block; }
.efgn-benefit-card strong { display: block; font-size: 1.5rem; color: var(--efgn-accent); margin-bottom: 4px; }
.efgn-benefit-card span { font-size: .85rem; color: rgba(255,255,255,.7); }

.efgn-products-section { padding: 80px 0; }
.efgn-product-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--efgn-shadow);
  border: 1px solid rgba(0,0,0,.04);
  transition: all var(--efgn-transition);
}
.efgn-product-card:hover { transform: translateY(-6px); box-shadow: 0 16px 48px rgba(10,37,64,.14); }
.efgn-product-card-img { position: relative; overflow: hidden; }
.efgn-product-card-img img { width: 100%; height: 220px; object-fit: cover; transition: transform .4s ease; }
.efgn-product-card:hover .efgn-product-card-img img { transform: scale(1.05); }
.efgn-product-badge {
  position: absolute;
  top: 12px;
  left: 12px;
  background: var(--efgn-accent);
  color: var(--efgn-primary);
  font-size: .75rem;
  font-weight: 700;
  padding: 4px 10px;
  border-radius: 20px;
}
.efgn-product-card-body { padding: 24px; }
.efgn-product-card-body h3 { margin-bottom: 10px; font-size: 1.1rem; }
.efgn-product-card-body p { font-size: .88rem; color: var(--efgn-gray); margin-bottom: 16px; }
.efgn-product-specs { display: flex; flex-direction: column; gap: 6px; margin-bottom: 20px; }
.efgn-product-spec {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .85rem;
  color: var(--efgn-gray-dark);
}
.efgn-product-spec i { color: var(--efgn-accent); width: 14px; }

/* ========== RESPONSIVE SERVICIOS ========== */
@media (max-width: 968px) {
  .efgn-problem-grid,
  .efgn-service-detail { grid-template-columns: 1fr; gap: 32px; }
  .efgn-service-detail--reverse .efgn-service-detail-img,
  .efgn-service-detail--reverse .efgn-service-detail-content { order: unset; }
  .efgn-process-steps { flex-direction: column; }
  .efgn-process-arrow { transform: rotate(90deg); }
  .efgn-process-step { max-width: 100%; width: 100%; }
}

/* ========== LOGO ========== */
.efgn-logo img { height: 44px; width: auto; filter: brightness(0) invert(1); }

/* ========== CATÁLOGO DE COTIZACIÓN ========== */
.efgn-catalog-search-section {
  padding: 40px 0 0;
  background: var(--efgn-primary);
}
.efgn-catalog-toolbar {
  display: flex;
  gap: 16px;
  flex-wrap: wrap;
  align-items: center;
  padding-bottom: 24px;
}
.efgn-search-wrap {
  position: relative;
  flex: 1;
  min-width: 260px;
}
.efgn-search-icon {
  position: absolute;
  left: 14px;
  top: 50%;
  transform: translateY(-50%);
  color: rgba(255,255,255,.6);
  pointer-events: none;
}
#efgn-product-search {
  width: 100%;
  padding: 12px 16px 12px 42px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--efgn-radius);
  font-family: var(--efgn-font);
  font-size: .95rem;
  color: var(--efgn-white);
  background: rgba(255,255,255,.07);
  transition: border-color var(--efgn-transition), box-shadow var(--efgn-transition);
}
#efgn-product-search:focus {
  outline: none;
  border-color: var(--efgn-accent);
  box-shadow: 0 0 0 3px rgba(6,182,212,.12);
}
.efgn-search-results {
  position: absolute;
  top: calc(100% + 4px);
  left: 0;
  width: 100%;
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--efgn-radius);
  box-shadow: 0 8px 32px rgba(0,0,0,.1);
  z-index: 100;
  max-height: 280px;
  overflow-y: auto;
}
.efgn-search-result-item {
  padding: 12px 16px;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: .9rem;
  border-bottom: 1px solid #f0f4f8;
  transition: background var(--efgn-transition);
}
.efgn-search-result-item:last-child { border-bottom: none; }
.efgn-search-result-item:hover, .efgn-search-result-item[aria-selected="true"] { background: rgba(6,182,212,.06); }
.efgn-search-result-item strong { color: var(--efgn-primary); }
.efgn-search-result-item span { color: rgba(255,255,255,.6); font-size: .8rem; }

.efgn-filters {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  align-items: center;
}
.efgn-filters select {
  padding: 11px 16px;
  border: 1px solid rgba(255,255,255,.15);
  border-radius: var(--efgn-radius);
  font-family: var(--efgn-font);
  font-size: .9rem;
  background: rgba(255,255,255,.07);
  cursor: pointer;
  transition: border-color var(--efgn-transition);
}
.efgn-filters select:focus { outline: none; border-color: var(--efgn-accent); }

.efgn-results-count {
  font-size: .88rem;
  color: rgba(255,255,255,.6);
  padding: 0 0 16px;
  background: var(--efgn-primary);
}

/* Grid de productos — 4 columnas fijas, tarjetas igual altura */
.efgn-products-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  align-items: stretch;
}
.efgn-product-card {
  display: flex;
  flex-direction: column;
  height: 100%;
}
.efgn-product-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 24px;
}
.efgn-product-card-body h3 {
  flex: 1;
  margin-bottom: 8px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.efgn-product-card-body .efgn-btn-whatsapp {
  margin-top: auto;
}
@media (max-width: 1100px) {
  .efgn-products-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
  .efgn-products-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
  .efgn-products-grid { grid-template-columns: 1fr; }
}

/* Badges de stock */
.efgn-stock-badge {
  position: absolute;
  bottom: 12px;
  right: 12px;
  font-size: .75rem;
  font-weight: 600;
  padding: 4px 10px;
  border-radius: 20px;
  display: flex;
  align-items: center;
  gap: 5px;
}
.efgn-stock-in { background: rgba(16,185,129,.15); color: #059669; border: 1px solid rgba(16,185,129,.3); }
.efgn-stock-order { background: rgba(245,158,11,.12); color: #d97706; border: 1px solid rgba(245,158,11,.25); }

/* Meta del producto */
.efgn-product-meta {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.efgn-product-brand {
  font-size: .78rem;
  font-weight: 700;
  color: var(--efgn-accent);
  text-transform: uppercase;
  letter-spacing: .5px;
}
.efgn-product-sku { font-size: .75rem; color: var(--efgn-gray); font-family: monospace; }
.efgn-product-desc { font-size: .88rem; color: var(--efgn-gray); margin-bottom: 16px; line-height: 1.6; }

/* Sin resultados */
.efgn-no-results {
  text-align: center;
  padding: 80px 24px;
  color: var(--efgn-gray);
}
.efgn-no-results i { font-size: 3rem; margin-bottom: 16px; display: block; opacity: .4; }
.efgn-no-results p { margin-bottom: 24px; font-size: 1.05rem; }

/* Ocultar tarjetas filtradas */
.efgn-product-card[hidden] { display: none; }

/* ========== PÁGINAS LEGALES ========== */
.efgn-legal-content {
  padding: 80px 0;
  max-width: 860px;
  margin: 0 auto;
}
.efgn-legal-content h2 { margin: 2em 0 .6em; font-size: 1.3rem; }
.efgn-legal-content h3 { margin: 1.5em 0 .5em; font-size: 1.1rem; color: var(--efgn-gray-dark); }
.efgn-legal-content p, .efgn-legal-content li { color: var(--efgn-gray); font-size: .95rem; line-height: 1.8; margin-bottom: .8em; }
.efgn-legal-content ul { padding-left: 20px; list-style: disc; }
.efgn-legal-content .efgn-legal-meta {
  background: var(--efgn-gray-light);
  border-left: 3px solid var(--efgn-accent);
  padding: 16px 20px;
  border-radius: 0 var(--efgn-radius) var(--efgn-radius) 0;
  margin-bottom: 32px;
  font-size: .88rem;
  color: var(--efgn-gray-dark);
}

/* ========== RESPONSIVE CATÁLOGO ========== */
@media (max-width: 768px) {
  .efgn-catalog-toolbar { flex-direction: column; align-items: stretch; }
  .efgn-filters { flex-direction: column; }
  .efgn-filters select { width: 100%; }
  .efgn-products-grid { grid-template-columns: 1fr; }
  .efgn-hero-layout,
  .efgn-erp-promo-grid,
  .efgn-erp-overview { grid-template-columns: 1fr; }
}

/* ========== BREADCRUMB ========== */
.efgn-breadcrumb {
  background: rgba(255,255,255,.03);
  padding: 100px 0 0;
  border-bottom: 1px solid rgba(255,255,255,.06);
}
.efgn-breadcrumb ol {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding: 12px 0;
  font-size: .85rem;
  color: var(--efgn-gray);
}
.efgn-breadcrumb li { display: flex; align-items: center; gap: 8px; }
.efgn-breadcrumb li:not(:last-child)::after { content: '/'; color: #cbd5e1; }
.efgn-breadcrumb a { color: var(--efgn-accent); }
.efgn-breadcrumb a:hover { text-decoration: underline; }

/* ========== PRODUCTO INDIVIDUAL ========== */
.efgn-product-single { padding: 120px 0 80px; }
.efgn-product-single-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
}

/* Galería */
.efgn-gallery-main {
  border-radius: 16px;
  overflow: hidden;
  background: var(--efgn-gray-light);
  aspect-ratio: 4/3;
  display: flex;
  align-items: center;
  justify-content: center;
}
.efgn-gallery-main-img { width: 100%; height: 100%; object-fit: cover; transition: opacity .3s ease; }
.efgn-gallery-placeholder { font-size: 4rem; color: var(--efgn-gray); }
.efgn-gallery-thumbs {
  display: flex;
  gap: 10px;
  margin-top: 12px;
  flex-wrap: wrap;
}
.efgn-gallery-thumb {
  border: 2px solid transparent;
  border-radius: 8px;
  overflow: hidden;
  cursor: pointer;
  background: none;
  padding: 0;
  transition: border-color var(--efgn-transition);
  flex-shrink: 0;
}
.efgn-gallery-thumb img { width: 80px; height: 60px; object-fit: cover; display: block; }
.efgn-gallery-thumb.active,
.efgn-gallery-thumb:hover { border-color: var(--efgn-accent); }
.efgn-gallery-thumb:focus-visible { outline: 2px solid var(--efgn-accent); outline-offset: 2px; }

/* Info del producto */
.efgn-product-cat-label {
  font-size: .8rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: .8px;
  color: var(--efgn-accent);
  margin-bottom: 8px;
}
.efgn-product-info h1 { margin-bottom: 16px; font-size: clamp(1.4rem, 3vw, 2rem); }
.efgn-product-meta-row {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 24px;
}
.efgn-product-brand-tag {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-size: .82rem;
  font-weight: 700;
  color: var(--efgn-primary);
  background: var(--efgn-gray-light);
  padding: 4px 10px;
  border-radius: 20px;
}
.efgn-product-sku-tag {
  font-size: .82rem;
  color: var(--efgn-gray);
  font-family: monospace;
}
.efgn-product-description {
  color: var(--efgn-gray-dark);
  font-size: .95rem;
  line-height: 1.8;
  margin-bottom: 28px;
}
.efgn-product-description p { margin-bottom: .8em; }
.efgn-product-description ul { padding-left: 20px; list-style: disc; }
.efgn-product-description li { margin-bottom: .4em; }
.efgn-product-cta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}
.efgn-btn-lg { padding: 16px 36px; font-size: 1rem; }
.efgn-product-note {
  font-size: .82rem;
  color: var(--efgn-gray);
  display: flex;
  align-items: flex-start;
  gap: 8px;
  background: var(--efgn-gray-light);
  padding: 12px 16px;
  border-radius: var(--efgn-radius);
  border-left: 3px solid var(--efgn-accent);
}
.efgn-product-note i { color: var(--efgn-accent); margin-top: 2px; flex-shrink: 0; }

/* Productos relacionados */
.efgn-related-products { padding: 60px 0 80px; background: var(--efgn-primary); }

/* sr-only (accesibilidad) */
.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* ========== RESPONSIVE PRODUCTO INDIVIDUAL ========== */
@media (max-width: 768px) {
  .efgn-product-single-grid { grid-template-columns: 1fr; gap: 32px; }
  .efgn-product-cta { flex-direction: column; }
  .efgn-product-cta .efgn-btn { width: 100%; justify-content: center; }
}

/* ========== ACCESIBILIDAD: focus-visible (WCAG 2.4.7) ========== */
:focus-visible {
  outline: 2px solid var(--efgn-accent);
  outline-offset: 3px;
  border-radius: 4px;
}
/* Quitar outline en click (solo teclado) */
:focus:not(:focus-visible) { outline: none; }

.efgn-btn:focus-visible {
  outline: 2px solid var(--efgn-accent);
  outline-offset: 3px;
  box-shadow: 0 0 0 4px rgba(6,182,212,.25);
}

/* ========== MENÚ NAVEGACIÓN ========== */
.efgn-nav {
  display: flex;
  align-items: center;
}
.efgn-nav > ul {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
  flex-wrap: nowrap;
}
.efgn-nav > ul > li {
  position: relative;
}
.efgn-nav > ul > li > a {
  display: block;
  color: rgba(255,255,255,.85);
  font-size: .88rem;
  font-weight: 500;
  padding: 6px 12px;
  border-radius: 6px;
  white-space: nowrap;
  transition: color var(--efgn-transition), background var(--efgn-transition);
}
.efgn-nav > ul > li > a:hover,
.efgn-nav > ul > li.current-menu-item > a {
  color: var(--efgn-accent);
  background: rgba(6,182,212,.08);
}

/* Último item = botón CTA */
.efgn-nav > ul > li:last-child > a {
  background: var(--efgn-accent);
  color: var(--efgn-primary) !important;
  font-weight: 700;
  font-size: .82rem;
  padding: 8px 18px;
  border-radius: var(--efgn-radius);
  letter-spacing: .3px;
}
.efgn-nav > ul > li:last-child > a:hover {
  background: var(--efgn-accent-dark);
}

/* Submenús */
.efgn-nav > ul > li > ul {
  display: none;
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 200px;
  background: #0d1526;
  border: 1px solid rgba(6,182,212,.15);
  border-radius: var(--efgn-radius);
  box-shadow: 0 8px 32px rgba(0,0,0,.4);
  padding: 6px 0;
  z-index: 200;
  list-style: none;
}
.efgn-nav > ul > li:hover > ul,
.efgn-nav > ul > li:focus-within > ul { display: block; }
.efgn-nav > ul > li > ul > li > a {
  display: block;
  padding: 10px 18px;
  color: rgba(255,255,255,.8);
  font-size: .87rem;
  transition: background var(--efgn-transition), color var(--efgn-transition);
}
.efgn-nav > ul > li > ul > li > a:hover {
  background: rgba(6,182,212,.1);
  color: #fff;
}

/* Botón hamburguesa — oculto en desktop */
.efgn-menu-toggle {
  display: none;
  flex-direction: column;
  justify-content: center;
  gap: 5px;
  background: none;
  border: none;
  cursor: pointer;
  padding: 8px;
  z-index: 1100;
}
.efgn-menu-toggle span {
  display: block;
  width: 24px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transition: all var(--efgn-transition);
}
.efgn-menu-toggle.active span:nth-child(1) { transform: rotate(45deg) translate(5px, 5px); }
.efgn-menu-toggle.active span:nth-child(2) { opacity: 0; }
.efgn-menu-toggle.active span:nth-child(3) { transform: rotate(-45deg) translate(5px, -5px); }

/* ========== MENÚ MÓVIL ========== */
@media (max-width: 968px) {
  .efgn-menu-toggle { display: flex; }

  .efgn-nav {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    background: rgba(11,15,25,.98);
    backdrop-filter: blur(16px);
    z-index: 1000;
    align-items: center;
    justify-content: center;
  }
  .efgn-nav.active { display: flex; }

  .efgn-nav > ul {
    flex-direction: column;
    align-items: center;
    gap: 4px;
    width: 100%;
    padding: 0 32px;
  }
  .efgn-nav > ul > li { width: 100%; text-align: center; }
  .efgn-nav > ul > li > a {
    font-size: 1.1rem;
    padding: 14px 20px;
    display: block;
    width: 100%;
    border-radius: 8px;
  }
  .efgn-nav > ul > li:last-child > a {
    margin-top: 8px;
    font-size: 1rem;
    padding: 14px 20px;
  }
  /* Submenús en móvil */
  .efgn-nav > ul > li > ul {
    position: static;
    display: none;
    background: rgba(255,255,255,.04);
    border: none;
    box-shadow: none;
    border-radius: 8px;
    margin-top: 4px;
  }
  .efgn-nav > ul > li.open > ul { display: block; }
  .efgn-nav > ul > li > ul > li > a {
    font-size: .95rem;
    padding: 10px 20px;
    text-align: center;
  }
}

/* ========== DEFER SCRIPT ATTRIBUTE ========== */
/* WordPress no soporta defer nativo — se aplica via filter en functions.php */

/* ========== PRINT STYLES (básico) ========== */
@media print {
  .efgn-header,
  .efgn-whatsapp-float,
  .efgn-menu-toggle,
  .efgn-cta { display: none !important; }
  body { font-size: 12pt; color: #000; }
  a { color: #000; text-decoration: underline; }
  a[href]::after { content: ' (' attr(href) ')'; font-size: 10pt; }
}

/* ========== BLOG: CARD MEJORADA ========== */
.efgn-blog-card-title { font-size: 1.1rem; margin-bottom: 8px; }
.efgn-blog-card-title a:hover { color: var(--efgn-accent); }
.efgn-read-more {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  color: var(--efgn-accent);
  font-weight: 600;
  font-size: .88rem;
  margin-top: 8px;
  transition: gap var(--efgn-transition);
}
.efgn-read-more:hover { gap: 10px; }
.efgn-post-type-label {
  background: rgba(6,182,212,.1);
  color: var(--efgn-accent);
  padding: 2px 8px;
  border-radius: 20px;
  font-size: .75rem;
  font-weight: 600;
}

/* ========== PAGINACIÓN ========== */
.efgn-pagination { margin-top: 56px; text-align: center; }
.efgn-pagination .nav-links { display: flex; justify-content: center; gap: 8px; flex-wrap: wrap; }
.efgn-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--efgn-radius);
  border: 1px solid #dde3ea;
  font-size: .9rem;
  color: var(--efgn-gray-dark);
  transition: all var(--efgn-transition);
}
.efgn-pagination .page-numbers:hover,
.efgn-pagination .page-numbers.current {
  background: var(--efgn-accent);
  color: var(--efgn-primary);
  border-color: var(--efgn-accent);
  font-weight: 700;
}
.efgn-pagination .prev,
.efgn-pagination .next { width: auto; padding: 0 16px; gap: 6px; }

/* ========== SINGLE POST ========== */
.efgn-single-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 48px;
  align-items: start;
}
.efgn-single-content h2 { margin: 1.8em 0 .6em; }
.efgn-single-content h3 { margin: 1.4em 0 .5em; }
.efgn-single-content p  { margin-bottom: 1.2em; color: var(--efgn-gray-dark); line-height: 1.8; }
.efgn-single-content ul,
.efgn-single-content ol { padding-left: 24px; margin-bottom: 1.2em; }
.efgn-single-content li { margin-bottom: .4em; color: var(--efgn-gray-dark); }
.efgn-single-content blockquote {
  border-left: 4px solid var(--efgn-accent);
  padding: 16px 24px;
  background: var(--efgn-gray-light);
  border-radius: 0 var(--efgn-radius) var(--efgn-radius) 0;
  margin: 1.5em 0;
  font-style: italic;
  color: var(--efgn-gray-dark);
}
.efgn-single-content img { border-radius: var(--efgn-radius); margin: 1em 0; }
.efgn-single-content a { color: var(--efgn-accent); text-decoration: underline; }

/* Tags */
.efgn-post-tags {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 40px 0;
  padding-top: 24px;
  border-top: 1px solid #eef0f3;
  font-size: .85rem;
  color: var(--efgn-gray);
}
.efgn-tag-link {
  background: var(--efgn-gray-light);
  padding: 4px 12px;
  border-radius: 20px;
  font-size: .8rem;
  color: var(--efgn-gray-dark);
  transition: all var(--efgn-transition);
}
.efgn-tag-link:hover { background: var(--efgn-accent); color: var(--efgn-primary); }

/* Navegación prev/next */
.efgn-post-nav {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
  margin: 40px 0;
  padding-top: 24px;
  border-top: 1px solid #eef0f3;
}
.efgn-post-nav-link {
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding: 16px;
  background: var(--efgn-gray-light);
  border-radius: var(--efgn-radius);
  transition: all var(--efgn-transition);
}
.efgn-post-nav-link:hover { background: rgba(6,182,212,.08); }
.efgn-post-nav-next { text-align: right; }
.efgn-post-nav-label { font-size: .78rem; color: var(--efgn-accent); font-weight: 600; display: flex; align-items: center; gap: 6px; }
.efgn-post-nav-next .efgn-post-nav-label { justify-content: flex-end; }
.efgn-post-nav-title { font-size: .9rem; font-weight: 600; color: var(--efgn-primary); }

/* Posts relacionados */
.efgn-related-posts { margin-top: 56px; padding-top: 40px; border-top: 1px solid #eef0f3; }
.efgn-related-posts h3 { margin-bottom: 28px; font-size: 1.3rem; }

/* Sidebar */
.efgn-single-sidebar { position: sticky; top: 100px; }
.efgn-widget { margin-bottom: 32px; }
.efgn-widget-title { font-size: 1rem; margin-bottom: 16px; padding-bottom: 8px; border-bottom: 2px solid var(--efgn-accent); }

@media (max-width: 968px) {
  .efgn-single-layout { grid-template-columns: 1fr; }
  .efgn-post-nav { grid-template-columns: 1fr; }
}

/* ========== FAQ ACCORDION ========== */
.efgn-faq-accordion { display: flex; flex-direction: column; gap: 12px; margin-top: 48px; }
.efgn-faq-question {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  padding: 20px 24px;
  background: var(--efgn-gray-light);
  border: 1px solid #e8ecf0;
  border-radius: var(--efgn-radius);
  border-left: 3px solid var(--efgn-accent);
  font-family: var(--efgn-font);
  font-size: .95rem;
  font-weight: 600;
  color: var(--efgn-primary);
  cursor: pointer;
  text-align: left;
  transition: all var(--efgn-transition);
}
.efgn-faq-question:hover { background: rgba(6,182,212,.06); }
.efgn-faq-question[aria-expanded="true"] {
  background: rgba(6,182,212,.08);
  border-radius: var(--efgn-radius) var(--efgn-radius) 0 0;
}
.efgn-faq-icon { flex-shrink: 0; transition: transform var(--efgn-transition); color: var(--efgn-accent); }
.efgn-faq-question[aria-expanded="true"] .efgn-faq-icon { transform: rotate(180deg); }
.efgn-faq-answer {
  padding: 20px 24px;
  background: #fff;
  border: 1px solid #e8ecf0;
  border-top: none;
  border-radius: 0 0 var(--efgn-radius) var(--efgn-radius);
}
.efgn-faq-answer p { font-size: .92rem; color: #1e293b !important; -webkit-text-fill-color: #1e293b !important; line-height: 1.8; margin: 0; }

/* ========== 404 ========== */
.efgn-404-icon {
  font-size: 5rem;
  color: var(--efgn-accent);
  margin-bottom: 8px;
  opacity: .6;
}
.efgn-404-links {
  display: flex;
  justify-content: center;
  gap: 16px;
  flex-wrap: wrap;
  margin-top: 16px;
}
.efgn-404-link {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 20px 24px;
  background: var(--efgn-gray-light);
  border-radius: 12px;
  border: 1px solid #e8ecf0;
  min-width: 120px;
  transition: all var(--efgn-transition);
  font-size: .88rem;
  font-weight: 600;
  color: var(--efgn-primary);
}
.efgn-404-link i { font-size: 1.5rem; color: var(--efgn-accent); }
.efgn-404-link:hover { border-color: var(--efgn-accent); transform: translateY(-4px); box-shadow: 0 8px 24px rgba(6,182,212,.12); }

/* ========== SEARCH FORM ========== */
.efgn-search-form .efgn-search-wrap { position: relative; }
.efgn-search-form #efgn-site-search,
.efgn-search-form #efgn-404-search {
  width: 100%;
  padding: 14px 120px 14px 44px;
  border: 2px solid #dde3ea;
  border-radius: var(--efgn-radius);
  font-family: var(--efgn-font);
  font-size: 1rem;
  transition: border-color var(--efgn-transition);
}
.efgn-search-form input:focus {
  outline: none;
  border-color: var(--efgn-accent);
  box-shadow: 0 0 0 3px rgba(6,182,212,.12);
}

/* ========== EMPTY STATE ========== */
.efgn-empty-state {
  text-align: center;
  padding: 80px 24px;
  color: var(--efgn-gray);
}
.efgn-empty-state i { font-size: 3.5rem; margin-bottom: 20px; display: block; opacity: .4; }
.efgn-empty-state h3 { margin-bottom: 12px; color: var(--efgn-primary); }
.efgn-empty-state p { margin-bottom: 28px; }

/* ========== UI STATE: disabled (Design System §2) ========== */
.efgn-btn:disabled,
.efgn-btn[disabled],
.efgn-btn[aria-disabled="true"] {
  opacity: .45;
  cursor: not-allowed;
  pointer-events: none;
  transform: none !important;
  box-shadow: none !important;
}

/* ========== WEBP: picture helper (imágenes locales) ========== */
/* Las imágenes servidas por WordPress con add_image_size()
   se sirven como WebP automáticamente en WP 5.8+ si el servidor lo soporta.
   Para imágenes en /assets/img usar <picture> con source type="image/webp" */

/* ========== PAGINACIÓN CATÁLOGO JS ========== */
.efgn-catalog-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 48px;
  flex-wrap: wrap;
}
.efgn-catalog-page-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: var(--efgn-radius);
  border: 1px solid rgba(255,255,255,.15);
  background: rgba(255,255,255,.05);
  color: rgba(255,255,255,.7);
  font-size: .9rem;
  font-family: var(--efgn-font);
  cursor: pointer;
  transition: all var(--efgn-transition);
}
.efgn-catalog-page-btn:hover,
.efgn-catalog-page-btn.active {
  background: var(--efgn-accent);
  border-color: var(--efgn-accent);
  color: var(--efgn-primary);
  font-weight: 700;
}
.efgn-catalog-page-btn.prev,
.efgn-catalog-page-btn.next { width: auto; padding: 0 16px; gap: 6px; }
.efgn-catalog-page-btn:disabled { opacity: .3; cursor: not-allowed; pointer-events: none; }

/* ============================================================
   SISTEMA DE CONTRASTE INTELIGENTE
   Regla: fondo oscuro → texto claro | fondo claro → texto oscuro
   Se aplica por contexto de sección, no globalmente.
   ============================================================ */

/* --- ESQUEMA OSCURO (fondo #0B0F19 y similares) --- */
/* Aplica a: hero, page-hero, CTA, testimonios, footer, secciones de contenido */
.efgn-hero,
.efgn-page-hero,
.efgn-cta,
.efgn-testimonials,
.efgn-footer,
.efgn-impact-stats,
.efgn-services,
.efgn-about,
.efgn-page-content,
.efgn-solution-section,
.efgn-problem-section,
.efgn-process-section,
.efgn-methodology-section,
.efgn-target-section,
.efgn-faq-section,
.efgn-solar-benefits,
.efgn-products-section,
.efgn-catalog-search-section,
.efgn-single,
.efgn-product-single,
.efgn-related-products,
.efgn-breadcrumb {
    --text-primary:   #ffffff;
    --text-secondary: rgba(255,255,255,.75);
    --text-muted:     rgba(255,255,255,.5);
    --heading-color:  #ffffff;
    --link-color:     #06B6D4;
    --border-color:   rgba(255,255,255,.1);
    --card-bg:        rgba(255,255,255,.05);
    --card-border:    rgba(255,255,255,.08);
    --input-bg:       rgba(255,255,255,.07);
    --input-border:   rgba(255,255,255,.15);
    --input-text:     #ffffff;
    --label-color:    rgba(255,255,255,.9);
}

/* --- ESQUEMA CARDS (fondo oscuro semi-transparente) --- */
.efgn-service-card,
.efgn-method-item,
.efgn-process-step,
.efgn-benefit-card,
.efgn-blog-card,
.efgn-product-card,
.efgn-target-card,
.efgn-faq-item,
.efgn-contact-info-card,
.efgn-pain-item,
.efgn-subservice,
.efgn-404-link {
    --text-primary:   #ffffff;
    --text-secondary: rgba(255,255,255,.75);
    --text-muted:     rgba(255,255,255,.5);
    --heading-color:  #ffffff;
    --link-color:     #06B6D4;
    --border-color:   rgba(255,255,255,.08);
    --card-bg:        rgba(255,255,255,.05);
    --input-bg:       rgba(255,255,255,.07);
    --input-border:   rgba(255,255,255,.15);
    --input-text:     #ffffff;
    --label-color:    rgba(255,255,255,.9);
}

/* --- APLICAR VARIABLES A TODOS LOS ELEMENTOS --- */

/* Headings */
.efgn-hero h1, .efgn-hero h2, .efgn-hero h3,
.efgn-page-hero h1, .efgn-page-hero h2,
.efgn-cta h2,
.efgn-testimonials h2,
.efgn-footer h4,
.efgn-impact-stats strong,
.efgn-services h2, .efgn-services h3,
.efgn-about h2,
.efgn-page-content h2, .efgn-page-content h3, .efgn-page-content h4,
.efgn-solution-section h2, .efgn-solution-section h3,
.efgn-problem-section h2,
.efgn-process-section h2,
.efgn-methodology-section h2,
.efgn-target-section h2,
.efgn-faq-section h2,
.efgn-solar-benefits h2,
.efgn-products-section h2,
.efgn-single-content h1, .efgn-single-content h2, .efgn-single-content h3,
.efgn-product-info h1,
.efgn-section-title h2 {
    color: var(--heading-color, #ffffff);
}

/* Cards — headings */
.efgn-service-card h3,
.efgn-method-item h4,
.efgn-process-step h4,
.efgn-blog-card h3,
.efgn-blog-card-title a,
.efgn-product-card-body h3,
.efgn-product-card-body h3 a,
.efgn-target-card h4,
.efgn-faq-item h4,
.efgn-pain-item p strong {
    color: var(--efgn-white);
}

/* Párrafos en secciones oscuras */
.efgn-hero p,
.efgn-page-hero p,
.efgn-cta p,
.efgn-testimonials p,
.efgn-about p,
.efgn-page-content p,
.efgn-solution-section p,
.efgn-problem-section p,
.efgn-process-section p,
.efgn-methodology-section p,
.efgn-target-section p,
.efgn-faq-section p,
.efgn-solar-benefits p,
.efgn-products-section p,
.efgn-single-content p,
.efgn-section-title p,
.efgn-service-detail-lead,
.efgn-feature-item,
.efgn-result-box p,
.efgn-footer p {
    color: rgba(255,255,255,.78);
}

/* Párrafos en cards */
.efgn-service-card p,
.efgn-method-item p,
.efgn-process-step p,
.efgn-benefit-card span,
.efgn-blog-card p,
.efgn-product-desc,
.efgn-faq-item p,
.efgn-pain-item p,
.efgn-target-card p {
    color: rgba(255,255,255,.7);
}

/* Labels y inputs — contexto oscuro */
.efgn-page-content label,
.efgn-form label {
    color: rgba(255,255,255,.9);
}
.efgn-form input,
.efgn-form textarea,
.efgn-form select {
    background: rgba(255,255,255,.07);
    border-color: rgba(255,255,255,.15);
    color: #ffffff;
}
.efgn-form input::placeholder,
.efgn-form textarea::placeholder {
    color: rgba(255,255,255,.35);
}
.efgn-form select option {
    background: #0d1526;
    color: #ffffff;
}

/* Tarjetas de contacto — fondo semitransparente oscuro */
.efgn-contact-info-card {
    background: rgba(255,255,255,.06);
    border: 1px solid rgba(255,255,255,.1);
}
.efgn-contact-info-card strong { color: #ffffff; }
.efgn-contact-info-card span,
.efgn-contact-info-card a,
.efgn-contact-info-card address { color: rgba(255,255,255,.75); }

/* Títulos de sección de contacto */
.efgn-page-content h2 { color: #ffffff; }

/* Buscador catálogo — fondo oscuro */
#efgn-product-search,
.efgn-filters select {
    background: rgba(255,255,255,.07);
    border-color: rgba(255,255,255,.15);
    color: #ffffff;
}
#efgn-product-search::placeholder { color: rgba(255,255,255,.4); }
.efgn-filters select option { background: #0d1526; color: #ffffff; }

/* Cards de producto — fondo semitransparente oscuro */
.efgn-product-card {
    background: rgba(255,255,255,.05);
    border: 1px solid rgba(255,255,255,.08);
}
.efgn-product-card-body h3 a { color: #ffffff; }
.efgn-product-card-body h3 a:hover { color: #06B6D4; }
.efgn-product-desc { color: rgba(255,255,255,.7); }
.efgn-product-brand { color: #06B6D4; }
.efgn-product-sku { color: rgba(255,255,255,.5); }

/* FAQ accordion — fondo oscuro */
.efgn-faq-question {
    background: rgba(255,255,255,.05);
    border-color: rgba(255,255,255,.1);
    color: #ffffff;
}
.efgn-faq-question:hover,
.efgn-faq-question[aria-expanded="true"] { background: rgba(6,182,212,.1); }
.efgn-faq-answer {
    background: rgba(255,255,255,.03);
    border-color: rgba(255,255,255,.06);
}
.efgn-faq-answer p { color: #1e293b !important; -webkit-text-fill-color: #1e293b !important; }

/* Páginas legales — fondo oscuro */
.efgn-legal-content h2,
.efgn-legal-content h3 { color: #ffffff; }
.efgn-legal-content p,
.efgn-legal-content li { color: rgba(255,255,255,.75); }
.efgn-legal-content strong { color: #ffffff; }
.efgn-legal-content .efgn-legal-meta {
    background: rgba(255,255,255,.05);
    color: rgba(255,255,255,.7);
}

/* Paginación — fondo oscuro */
.efgn-pagination .page-numbers {
    background: rgba(255,255,255,.05);
    border-color: rgba(255,255,255,.12);
    color: rgba(255,255,255,.75);
}
.efgn-pagination .page-numbers.current,
.efgn-pagination .page-numbers:hover {
    background: #06B6D4;
    border-color: #06B6D4;
    color: #0B0F19;
}

/* Post nav — fondo oscuro */
.efgn-post-nav-link { background: rgba(255,255,255,.05); }
.efgn-post-nav-link:hover { background: rgba(6,182,212,.1); }
.efgn-post-nav-title { color: #ffffff; }
.efgn-post-nav-label { color: #06B6D4; }

/* Tags — fondo oscuro */
.efgn-post-tags { color: rgba(255,255,255,.5); border-top-color: rgba(255,255,255,.08); }
.efgn-tag-link { background: rgba(255,255,255,.07); color: rgba(255,255,255,.75); }
.efgn-tag-link:hover { background: #06B6D4; color: #0B0F19; }

/* Breadcrumb — fondo oscuro */
.efgn-breadcrumb { background: rgba(255,255,255,.03); border-bottom-color: rgba(255,255,255,.06); }
.efgn-breadcrumb ol { color: rgba(255,255,255,.5); }
.efgn-breadcrumb a { color: #06B6D4; }

/* Stats — fondo oscuro */
.efgn-stat { background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.08); }
.efgn-stat span { color: rgba(255,255,255,.6); }
.efgn-stat strong { color: #06B6D4; }

/* Result box — fondo oscuro */
.efgn-result-box { background: rgba(6,182,212,.07); border-color: rgba(6,182,212,.2); }

/* Alert box — fondo oscuro */
.efgn-alert-box { background: rgba(6,182,212,.06); border-color: rgba(6,182,212,.2); }
.efgn-alert-box strong { color: #ffffff; }
.efgn-alert-box p { color: rgba(255,255,255,.75); }

/* Empty state — fondo oscuro */
.efgn-empty-state h3 { color: #ffffff; }
.efgn-empty-state p  { color: rgba(255,255,255,.65); }

/* 404 links — fondo oscuro */
.efgn-404-link { background: rgba(255,255,255,.05); border-color: rgba(255,255,255,.1); color: #ffffff; }
.efgn-404-link i { color: #06B6D4; }
.efgn-404-link:hover { border-color: #06B6D4; }

/* Galería producto — fondo oscuro */
.efgn-gallery-main { background: rgba(255,255,255,.05); }
.efgn-product-brand-tag { background: rgba(255,255,255,.08); color: rgba(255,255,255,.85); }
.efgn-product-note { background: rgba(255,255,255,.04); color: rgba(255,255,255,.6); }
.efgn-product-description p { color: rgba(255,255,255,.78); }
.efgn-product-description li { color: rgba(255,255,255,.75); }

/* ============================================================
   FIN SISTEMA DE CONTRASTE INTELIGENTE
   ============================================================ */

/* ========== BLOG 4 COLUMNAS ========== */
.efgn-blog-4col {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
  margin-bottom: 48px;
}
@media (max-width: 1100px) { .efgn-blog-4col { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 768px)  { .efgn-blog-4col { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 480px)  { .efgn-blog-4col { grid-template-columns: 1fr; } }

.efgn-blog-item {
  background: rgba(255,255,255,.05);
  border: 1px solid rgba(255,255,255,.08);
  border-radius: 12px;
  overflow: hidden;
  transition: transform var(--efgn-transition), box-shadow var(--efgn-transition);
}
.efgn-blog-item:hover {
  transform: translateY(-4px);
  box-shadow: 0 12px 32px rgba(6,182,212,.15);
}
.efgn-blog-item-img-wrap { display: block; overflow: hidden; aspect-ratio: 3/2; }
.efgn-blog-item-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .4s ease;
  display: block;
}
.efgn-blog-item:hover .efgn-blog-item-img-wrap img { transform: scale(1.05); }

.efgn-blog-item-body { padding: 16px; }
.efgn-blog-item-meta {
  font-size: .78rem;
  color: rgba(255,255,255,.5);
  margin-bottom: 8px;
  text-align: left;
}
.efgn-blog-item-title {
  font-size: .95rem;
  font-family: var(--efgn-font);
  font-weight: 600;
  line-height: 1.4;
  margin: 0;
}
.efgn-blog-item-title a {
  color: #ffffff;
  text-decoration: none;
  transition: color var(--efgn-transition);
}
.efgn-blog-item-title a:hover { color: var(--efgn-accent); }
.efgn-blog-item-excerpt {
  margin-top: 12px;
  font-size: .88rem;
  line-height: 1.65;
  color: rgba(255,255,255,.72);
}
.efgn-blog-grid .efgn-blog-item { height: 100%; }
.efgn-product-meta {
  flex-wrap: wrap;
  gap: 8px;
}

/* ========== CONTRASTE INTELIGENTE (aplicado por JS) ========== */
/* Fondo oscuro detectado → texto blanco */
.efgn-dark-bg,
.efgn-dark-bg h1,
.efgn-dark-bg h2,
.efgn-dark-bg h3,
.efgn-dark-bg h4,
.efgn-dark-bg h5,
.efgn-dark-bg h6 {
  color: #ffffff !important;
}
.efgn-dark-bg p:not(.efgn-faq-answer p),
.efgn-dark-bg li,
.efgn-dark-bg span:not(.efgn-hero-badge):not(.efgn-post-type-label):not(.efgn-product-brand):not(.efgn-stock-badge) {
  color: rgba(255,255,255,.78) !important;
}
.efgn-dark-bg label { color: rgba(255,255,255,.9) !important; }
.efgn-dark-bg a:not(.efgn-btn) { color: #06B6D4 !important; }

/* FAQ answer: siempre texto oscuro sobre fondo blanco, sin importar el contexto */
.efgn-faq-answer { background: #ffffff !important; }
.efgn-faq-answer p,
.efgn-dark-bg .efgn-faq-answer p,
.efgn-light-bg .efgn-faq-answer p,
.efgn-faq-section .efgn-faq-answer p,
.efgn-faq-section.efgn-dark-bg .efgn-faq-answer p {
  color: #1e293b !important;
  -webkit-text-fill-color: #1e293b !important;
}

/* Fondo claro detectado → texto negro */
.efgn-light-bg,
.efgn-light-bg h1,
.efgn-light-bg h2,
.efgn-light-bg h3,
.efgn-light-bg h4,
.efgn-light-bg h5,
.efgn-light-bg h6 {
  color: #0B0F19 !important;
}
.efgn-light-bg p,
.efgn-light-bg li,
.efgn-light-bg span:not(.efgn-hero-badge):not(.efgn-post-type-label):not(.efgn-product-brand):not(.efgn-stock-badge) {
  color: #334155 !important;
}
.efgn-light-bg label { color: #1e293b !important; }
.efgn-light-bg a:not(.efgn-btn) { color: #0891b2 !important; }
/* ========== FIN CONTRASTE INTELIGENTE ========== */

/* ========== CONTENEDOR CENTRADO GLOBAL ========== */
/* Todas las secciones limitan su contenido al max-width */
.efgn-hero,
.efgn-page-hero,
.efgn-services,
.efgn-about,
.efgn-testimonials,
.efgn-cta,
.efgn-footer,
.efgn-page-content,
.efgn-solution-section,
.efgn-problem-section,
.efgn-process-section,
.efgn-methodology-section,
.efgn-target-section,
.efgn-faq-section,
.efgn-solar-benefits,
.efgn-products-section,
.efgn-catalog-search-section,
.efgn-single,
.efgn-product-single,
.efgn-related-products,
.efgn-impact-stats,
.efgn-breadcrumb,
.efgn-legal-alert {
  box-sizing: border-box;
}

/* El fondo puede ser full-width pero el contenido siempre centrado */
.efgn-hero > .efgn-container,
.efgn-page-hero > .efgn-container,
.efgn-cta > .efgn-container,
.efgn-testimonials > .efgn-container,
.efgn-impact-stats > .efgn-container {
  max-width: var(--efgn-max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: 40px;
  padding-right: 40px;
  width: 100%;
}

@media (max-width: 600px) {
  .efgn-container,
  .efgn-hero > .efgn-container,
  .efgn-page-hero > .efgn-container,
  .efgn-cta > .efgn-container {
    padding-left: 20px;
    padding-right: 20px;
  }
}
/* ========== FIN CONTENEDOR CENTRADO GLOBAL ========== */

/* ========== AI CHATBOT ========== */
.efgn-ai-chat {
  position: fixed;
  bottom: 100px;
  right: 24px;
  z-index: 9998;
  font-family: var(--efgn-font);
}
.efgn-ai-toggle {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  border: none;
  background: transparent;
  color: #06B6D4;
  cursor: pointer;
  transition: filter .2s;
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  animation: efgn-gapsy-float 3s ease-in-out infinite;
  filter: drop-shadow(0 0 12px rgba(6,182,212,.4));
}
.efgn-ai-toggle:hover {
  filter: drop-shadow(0 0 20px rgba(6,182,212,.6));
  animation: efgn-gapsy-bounce .5s ease;
}
.efgn-gapsy-icon {
  width: 52px;
  height: 52px;
  animation: efgn-gapsy-pulse 2.5s ease-in-out infinite;
}
@keyframes efgn-gapsy-float {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-6px); }
}
@keyframes efgn-gapsy-pulse {
  0%, 100% { filter: brightness(1); }
  50% { filter: brightness(1.2) drop-shadow(0 0 8px rgba(6,182,212,.5)); }
}
@keyframes efgn-gapsy-bounce {
  0% { transform: scale(1); }
  40% { transform: scale(1.15); }
  100% { transform: scale(1); }
}
.efgn-ai-toggle-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  background: #ef4444;
  color: #fff;
  font-size: .7rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}
.efgn-ai-panel {
  position: absolute;
  bottom: 68px;
  right: 0;
  width: 380px;
  max-height: 520px;
  background: #0d1526;
  border: 1px solid rgba(6,182,212,.2);
  border-radius: 16px;
  box-shadow: 0 12px 48px rgba(0,0,0,.5);
  display: flex;
  flex-direction: column;
  overflow: hidden;
}
.efgn-ai-panel { display: none; }
.efgn-ai-panel.efgn-ai-open { display: flex !important; }
.efgn-ai-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 16px;
  background: rgba(6,182,212,.08);
  border-bottom: 1px solid rgba(6,182,212,.15);
}
.efgn-ai-header-info {
  display: flex;
  align-items: center;
  gap: 10px;
}
.efgn-ai-header-info > i {
  font-size: 1.3rem;
  color: var(--efgn-accent);
}
.efgn-ai-header-info strong {
  display: block;
  color: #fff;
  font-size: .88rem;
}
.efgn-ai-header-info span {
  font-size: .72rem;
  color: #10b981;
}
.efgn-ai-header-actions {
  display: flex;
  gap: 6px;
}
.efgn-ai-header-actions button {
  background: none;
  border: none;
  color: rgba(255,255,255,.5);
  font-size: .85rem;
  cursor: pointer;
  padding: 4px 6px;
  border-radius: 4px;
  transition: color .2s, background .2s;
}
.efgn-ai-header-actions button:hover {
  color: #fff;
  background: rgba(255,255,255,.08);
}
.efgn-ai-messages {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 12px;
  max-height: 360px;
  scrollbar-width: thin;
  scrollbar-color: rgba(6,182,212,.3) transparent;
}
.efgn-ai-msg {
  max-width: 88%;
  padding: 10px 14px;
  border-radius: 12px;
  font-size: .85rem;
  line-height: 1.5;
  animation: efgn-msg-in .25s ease;
}
@keyframes efgn-msg-in {
  from { opacity: 0; transform: translateY(8px); }
  to   { opacity: 1; transform: translateY(0); }
}
.efgn-ai-msg p { margin: 0 0 6px; color: rgba(255,255,255,.85); }
.efgn-ai-msg p:last-child { margin-bottom: 0; }
.efgn-ai-msg--bot {
  align-self: flex-start;
  background: rgba(6,182,212,.1);
  border: 1px solid rgba(6,182,212,.15);
}
.efgn-ai-msg--user {
  align-self: flex-end;
  background: rgba(255,255,255,.08);
  border: 1px solid rgba(255,255,255,.1);
}
.efgn-ai-msg--user p { color: #fff; }
.efgn-ai-msg--typing {
  align-self: flex-start;
  background: rgba(6,182,212,.06);
  border: 1px solid rgba(6,182,212,.1);
  display: flex;
  gap: 5px;
  padding: 14px 18px;
}
.efgn-ai-dot {
  width: 7px;
  height: 7px;
  background: var(--efgn-accent);
  border-radius: 50%;
  animation: efgn-typing .8s ease-in-out infinite;
}
.efgn-ai-dot:nth-child(2) { animation-delay: .15s; }
.efgn-ai-dot:nth-child(3) { animation-delay: .3s; }
@keyframes efgn-typing {
  0%, 100% { opacity: .3; transform: scale(.8); }
  50%      { opacity: 1;  transform: scale(1); }
}
.efgn-ai-suggestions {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin-top: 10px;
}
.efgn-ai-suggestions button {
  background: rgba(6,182,212,.12);
  border: 1px solid rgba(6,182,212,.25);
  color: var(--efgn-accent);
  font-size: .76rem;
  font-weight: 500;
  padding: 5px 10px;
  border-radius: 20px;
  cursor: pointer;
  transition: background .2s, color .2s;
}
.efgn-ai-suggestions button:hover {
  background: var(--efgn-accent);
  color: var(--efgn-primary);
}
.efgn-ai-input {
  display: flex;
  padding: 10px 12px;
  gap: 8px;
  border-top: 1px solid rgba(255,255,255,.08);
  background: rgba(0,0,0,.2);
}
.efgn-ai-input input {
  flex: 1;
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.1);
  border-radius: 8px;
  padding: 10px 14px;
  color: #fff;
  font-size: .85rem;
  outline: none;
  font-family: var(--efgn-font);
}
.efgn-ai-input input:focus {
  border-color: var(--efgn-accent);
}
.efgn-ai-input input::placeholder { color: rgba(255,255,255,.35); }
.efgn-ai-input button {
  background: var(--efgn-accent);
  border: none;
  border-radius: 8px;
  padding: 0 14px;
  color: var(--efgn-primary);
  font-size: .95rem;
  cursor: pointer;
  transition: background .2s;
}
.efgn-ai-input button:hover { background: var(--efgn-accent-dark); }
.efgn-ai-msg a {
  color: var(--efgn-accent);
  text-decoration: underline;
}
.efgn-ai-msg strong { color: #fff; }

@media (max-width: 480px) {
  .efgn-ai-chat { right: 12px; bottom: 90px; }
  .efgn-ai-panel { width: calc(100vw - 24px); right: -12px; max-height: 440px; }
  .efgn-ai-toggle { width: 48px; height: 48px; font-size: 1.2rem; }
}

/* ========== BUSCADOR CATÁLOGO: placeholder y texto blanco ========== */
#efgn-product-search { color: var(--efgn-white) !important; }
#efgn-product-search::placeholder { color: rgba(255,255,255,.4) !important; }
.efgn-filters select { color: var(--efgn-white) !important; }
.efgn-search-icon { color: rgba(255,255,255,.4) !important; }

/* ========== GRID PRODUCTOS: 4 columnas, tarjetas igual altura ========== */
.efgn-products-grid {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr) !important;
  gap: 24px !important;
  align-items: stretch !important;
}
.efgn-products-grid .efgn-product-card {
  display: flex !important;
  flex-direction: column !important;
  height: 100% !important;
  min-height: 380px;
}
.efgn-products-grid .efgn-product-card-body {
  display: flex !important;
  flex-direction: column !important;
  flex: 1 !important;
  padding: 20px !important;
}
.efgn-products-grid .efgn-product-card-body h3 {
  flex-shrink: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.8em;
  margin-bottom: 8px;
}
.efgn-products-grid .efgn-product-card-body .efgn-product-desc {
  flex: 1;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.efgn-products-grid .efgn-product-card-body .efgn-btn-whatsapp {
  margin-top: auto !important;
  width: 100% !important;
  justify-content: center !important;
}
.efgn-products-grid .efgn-product-card-img img {
  width: 100% !important;
  height: 200px !important;
  object-fit: cover !important;
  display: block !important;
}
@media (max-width: 1100px) {
  .efgn-products-grid { grid-template-columns: repeat(3, 1fr) !important; }
}
@media (max-width: 768px) {
  .efgn-products-grid { grid-template-columns: repeat(2, 1fr) !important; }
}
@media (max-width: 480px) {
  .efgn-products-grid { grid-template-columns: 1fr !important; }
}
/* ========== FIN GRID PRODUCTOS ========== */

/* ========== BUSCADOR: texto y placeholder visibles ========== */
.efgn-catalog-search-section #efgn-product-search,
#efgn-product-search {
  color: #ffffff !important;
  background: rgba(255,255,255,.08) !important;
  border-color: rgba(255,255,255,.2) !important;
}
.efgn-catalog-search-section #efgn-product-search::placeholder,
#efgn-product-search::placeholder {
  color: rgba(255,255,255,.5) !important;
  opacity: 1 !important;
}
.efgn-catalog-search-section .efgn-filters select,
.efgn-filters select {
  color: #ffffff !important;
  background: rgba(255,255,255,.08) !important;
  border-color: rgba(255,255,255,.2) !important;
}
.efgn-catalog-search-section .efgn-search-icon {
  color: rgba(255,255,255,.5) !important;
}
.efgn-results-count {
  color: rgba(255,255,255,.7) !important;
}

/* ========== CHATBOT: panel controlado por JS via style.display ========== */
.efgn-ai-panel { display: none; }
.efgn-ai-panel[hidden] { display: none !important; }
.efgn-ai-panel.efgn-ai-open { display: flex !important; }

/* ========== BOTÓN WHATSAPP TARJETA PRODUCTO ========== */
.efgn-btn-wa-card {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  width: 100%;
  margin-top: auto;
  padding: 9px 16px;
  background: rgba(37,211,102,.12);
  color: #25d366;
  border: 1px solid rgba(37,211,102,.25);
  border-radius: 8px;
  font-size: .82rem;
  font-weight: 600;
  letter-spacing: .2px;
  transition: background var(--efgn-transition), color var(--efgn-transition), border-color var(--efgn-transition);
  text-decoration: none;
}
.efgn-btn-wa-card:hover {
  background: #25d366;
  color: #fff;
  border-color: #25d366;
}
.efgn-btn-wa-card i { font-size: .95rem; }

/* ========== PRODUCTO INDIVIDUAL: espacio para header fijo ========== */
.efgn-product-single { padding-top: 100px; }
.efgn-breadcrumb { padding-top: 76px; }
.efgn-product-single .efgn-gallery-main {
  background: #1a2035;
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 320px;
}
.efgn-product-single .efgn-gallery-main img {
  max-height: 420px;
  width: 100%;
  object-fit: contain;
}

/* ========== BUSCADOR: dropdown legible sobre fondo oscuro ========== */
#efgn-search-results {
  background: #0d1526 !important;
  border: 1px solid rgba(6,182,212,.3) !important;
  border-radius: 8px !important;
  box-shadow: 0 8px 32px rgba(0,0,0,.5) !important;
  z-index: 200;
}
#efgn-search-results .efgn-search-result-item {
  display: flex !important;
  align-items: center !important;
  gap: 10px !important;
  padding: 10px 14px !important;
  color: rgba(255,255,255,.9) !important;
  background: transparent !important;
  border-bottom: 1px solid rgba(255,255,255,.06) !important;
  text-decoration: none !important;
  transition: background .15s !important;
}
#efgn-search-results .efgn-search-result-item:hover {
  background: rgba(6,182,212,.12) !important;
}
#efgn-search-results .efgn-search-result-item strong {
  color: #ffffff !important;
  font-size: .88rem !important;
  display: block !important;
}
#efgn-search-results .efgn-search-result-item span {
  color: rgba(255,255,255,.5) !important;
  font-size: .76rem !important;
  display: block !important;
}
#efgn-search-results .efgn-search-result-item i {
  color: var(--efgn-accent) !important;
  font-size: 1rem !important;
  flex-shrink: 0 !important;
}
#efgn-search-results .efgn-search-result-item:last-child {
  border-bottom: none !important;
}

/* ========== BUSCADOR: forzar texto blanco en todos los navegadores ========== */
#efgn-product-search,
#efgn-product-search:focus,
#efgn-product-search:active {
  color: #ffffff !important;
  -webkit-text-fill-color: #ffffff !important;
  caret-color: #06B6D4 !important;
}
#efgn-product-search::placeholder {
  color: rgba(255,255,255,.5) !important;
  -webkit-text-fill-color: rgba(255,255,255,.5) !important;
  opacity: 1 !important;
}

/* ========== PERFORMANCE: optimizaciones de velocidad ========== */

/* backdrop-filter solo en desktop — muy costoso en móvil */
@media (max-width: 968px) {
  .efgn-header { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
}

/* Reducir repaints en animaciones */
.efgn-fade-up { will-change: transform, opacity; }
.efgn-fade-up.visible { will-change: auto; }

/* content-visibility para secciones fuera del viewport inicial */
.efgn-testimonials,
.efgn-faq-section,
.efgn-related-products,
.efgn-footer {
  content-visibility: auto;
  contain-intrinsic-size: 0 400px;
}

/* Optimizar imágenes de productos en catálogo */
.efgn-product-card-img img {
  will-change: transform;
}
.efgn-product-card:not(:hover) .efgn-product-card-img img {
  will-change: auto;
}

/* Reducir complejidad del blur en el chatbot en móvil */
@media (max-width: 480px) {
  .efgn-ai-panel {
    backdrop-filter: none !important;
  }
}

/* Evitar layout shift en imágenes de productos */
.efgn-product-card-img {
  aspect-ratio: 4/3;
  overflow: hidden;
}
.efgn-product-card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* Optimizar scroll en catálogo */
.efgn-products-grid {
  contain: layout style;
}
/* ========== FIN PERFORMANCE ========== */

/* ========== FAQ: respuestas con texto negro sobre fondo blanco ========== */
.efgn-faq-answer,
.efgn-faq-answer p,
.efgn-faq-answer p[itemprop="text"] {
  color: #1e293b !important;
  background: #ffffff !important;
}
.efgn-faq-question span[itemprop="name"] {
  color: #ffffff;
}

/* ========== FAQ RESPUESTAS: texto negro forzado con máxima especificidad ========== */
html body .efgn-faq-answer { background: #ffffff !important; }
html body .efgn-faq-answer p,
html body .efgn-faq-answer p[itemprop="text"],
html body .efgn-faq-section .efgn-faq-answer p,
html body .efgn-dark-bg .efgn-faq-answer p,
html body .efgn-light-bg .efgn-faq-answer p {
  color: #1e293b !important;
  -webkit-text-fill-color: #1e293b !important;
}
