/* ==========================================================================
   EV FRAMEWORK v1.11 · Erik Vidal · Consultor en Gestión Estratégica
   Bricks Builder 2.x · WordPress · JetEngine · HostGator
   --------------------------------------------------------------------------
   INSTALACIÓN RECOMENDADA: plugin "EV Framework" (ev-framework.zip).
   Alternativa: Bricks › Settings › Custom code › Custom CSS.
   ⚠ NO pegar este CSS en el canvas del builder.
   Especificidad: todas las reglas de componentes llevan el prefijo :root
   (0,2,0) para ganar a clases globales, Theme Styles y estilos base de Bricks.
   Metodología: BEM · prefijo ev- · tokens CSS · light/dark
   Breakpoints (Bricks): 991px tablet · 767px móvil horizontal · 478px móvil
   ========================================================================== */

/* 1. TOKENS: viven en assets/ev-tokens.css (se carga antes que este archivo) */

/* 2. BASE ================================================================== */
*, *::before, *::after{ box-sizing: border-box; }
body{ margin: 0; }
[hidden]{ display: none !important; }
html{ scroll-behavior: smooth; -webkit-text-size-adjust: 100%; scroll-padding-top: calc(var(--ev-header-h) + 1rem); }
body{
  font-family: var(--ev-font-main);
  font-size: var(--ev-text-base);
  line-height: var(--ev-leading-normal);
  color: var(--ev-text);
  background-color: var(--ev-bg);
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  font-feature-settings: "cv11", "ss01", "ss03";
  transition: background-color 0.3s ease, color 0.3s ease;
}
/* Blindaje frente a Theme Styles de Bricks (body/headings con color fijo) */
:root{ background-color: var(--ev-bg); }
html body{ background-color: var(--ev-bg); color: var(--ev-text); }
:root :is(h1, h2, h3, h4, h5, h6){ color: var(--ev-heading); }
h1, h2, h3, h4, h5, h6{
  font-family: var(--ev-font-main);
  color: var(--ev-heading);
  font-weight: 800;
  line-height: var(--ev-leading-tight);
  letter-spacing: var(--ev-tracking-tight);
  text-wrap: balance;
  margin: 0;
}
p{ margin: 0; text-wrap: pretty; }
a{ color: var(--ev-link); text-decoration: none; transition: color 0.2s ease; }
a:hover{ color: var(--ev-link-hover); }
img{ max-width: 100%; height: auto; }
strong{ color: var(--ev-heading); font-weight: 700; }
::selection{ background: var(--ev-color-primary); color: #fff; }
:focus-visible{ outline: 2px solid var(--ev-color-cyan-bright); outline-offset: 3px; }
#brx-header:has(.ev-header){ position: sticky; top: 0; z-index: 999; }

/* 3. LAYOUT ================================================================ */
:root .ev-section{ position: relative; padding-top: var(--ev-section-space); padding-bottom: var(--ev-section-space); }
:root .ev-section--alt{ background-color: var(--ev-bg-alt); }
:root .ev-section--tint{ background-color: var(--ev-tint); }
:root .ev-section--tight{ padding-top: var(--ev-space-xl); padding-bottom: var(--ev-space-xl); }
:root .ev-section--flush-top{ padding-top: 0; }
:root .ev-section--dark{
  background: radial-gradient(70% 60% at 85% 0%, rgba(2, 132, 199, 0.22), transparent 70%),
              linear-gradient(135deg, var(--ev-dark-from) 0%, var(--ev-dark-to) 100%);
}
:root[data-theme="dark"] .ev-section--dark{ box-shadow: inset 0 1px 0 rgba(255,255,255,.05), inset 0 -1px 0 rgba(255,255,255,.05); }

:root .ev-container{
  display: block;
  width: 100%;
  max-width: calc(var(--ev-container-max) + var(--ev-gutter) * 2);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--ev-gutter);
  padding-right: var(--ev-gutter);
  position: relative;
}
:root .ev-container--narrow{ max-width: calc(var(--ev-container-narrow) + var(--ev-gutter) * 2); }

:root .ev-grid{ display: grid; gap: var(--ev-space-m); grid-template-columns: minmax(0, 1fr); }
:root .ev-grid--2{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
:root .ev-grid--3{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
:root .ev-grid--4{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
:root .ev-grid--auto{ grid-template-columns: repeat(auto-fill, minmax(min(100%, 18rem), 1fr)); }
:root .ev-grid--tight{ gap: var(--ev-space-s); }
:root ul.ev-grid, :root ol.ev-grid{ list-style: none; margin: 0; padding: 0; }

:root .ev-stack{ display: flex; flex-direction: column; gap: var(--ev-space-s); }
:root .ev-stack--xs{ gap: var(--ev-space-2xs); }
:root .ev-stack--l{ gap: var(--ev-space-l); }
:root .ev-cluster{ display: flex; flex-wrap: wrap; align-items: center; gap: var(--ev-space-xs); }

:root .ev-split{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ev-space-xl); align-items: center; }
:root .ev-split--top{ align-items: start; }
:root .ev-split--reverse > :first-child{ order: 2; }

:root .ev-layout{ display: grid; grid-template-columns: minmax(0, 1fr) 21rem; gap: var(--ev-space-xl); align-items: start; }
:root .ev-layout--left{ grid-template-columns: 16rem minmax(0, 1fr); }
:root .ev-layout__main{ display: flex; flex-direction: column; gap: var(--ev-space-xl); min-width: 0; }

/* 4. TIPOGRAFÍA ============================================================ */
:root .ev-heading--display{ font-size: var(--ev-text-6xl); letter-spacing: -0.045em; line-height: 1; }
:root .ev-heading--xl{ font-size: var(--ev-text-5xl); letter-spacing: -0.04em; }
:root .ev-heading--l{ font-size: var(--ev-text-4xl); }
:root .ev-heading--m{ font-size: var(--ev-text-3xl); }
:root .ev-heading--s{ font-size: var(--ev-text-2xl); letter-spacing: -0.02em; line-height: var(--ev-leading-snug); }
:root .ev-lead{ font-size: var(--ev-text-lg); color: var(--ev-text); line-height: 1.6; max-width: 62ch; }
:root .ev-text{ font-size: var(--ev-text-base); color: var(--ev-text); max-width: 68ch; }
:root .ev-text--muted{ color: var(--ev-muted); }
:root .ev-text--sm{ font-size: var(--ev-text-sm); }
:root .ev-eyebrow{ font-size: var(--ev-text-xs); font-weight: 800; letter-spacing: var(--ev-tracking-wide); text-transform: uppercase; color: var(--ev-accent-text); }
:root .ev-gradient-text{
  background: linear-gradient(90deg, #0369a1 0%, #0284c7 45%, #0369a1 100%); /* v1.5: sin cian sobre claro (Manual 4.8) */
  background-size: 200% auto;
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  animation: ev-shimmer 9s linear infinite;
}
:root[data-theme="dark"] .ev-gradient-text, :root .ev-section--dark .ev-gradient-text, :root .ev-cta .ev-gradient-text{
  background-image: linear-gradient(90deg, #38bdf8 0%, #7dd3fc 35%, #22d3ee 65%, #38bdf8 100%);
}

/* Contenido enriquecido (Post Content / Rich Text) */
:root .ev-prose{ font-size: clamp(1.0625rem, 1.01rem + 0.23vw, 1.1875rem); line-height: 1.75; color: var(--ev-text); max-width: 72ch; }
:root .ev-prose > * + *{ margin-top: 1.25em; }
:root .ev-prose h2{ font-size: var(--ev-text-3xl); margin-top: 2em; }
:root .ev-prose h3{ font-size: var(--ev-text-2xl); margin-top: 1.6em; letter-spacing: -0.02em; }
:root .ev-prose h4{ font-size: var(--ev-text-xl); margin-top: 1.4em; }
:root .ev-prose h2 + *, :root .ev-prose h3 + *, :root .ev-prose h4 + *{ margin-top: 0.75em; }
:root .ev-prose a{ text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
:root .ev-prose ul, :root .ev-prose ol{ padding-left: 1.25em; margin-bottom: 0; }
:root .ev-prose li + li{ margin-top: 0.5em; }
:root .ev-prose li::marker{ color: var(--ev-color-primary); font-weight: 700; }
:root .ev-prose blockquote{
  margin-left: 0; margin-right: 0;
  padding: var(--ev-space-m);
  border-radius: var(--ev-radius-card);
  background: var(--ev-tint);
  border: 1px solid var(--ev-badge-border);
  font-size: var(--ev-text-xl);
  font-weight: 600;
  line-height: 1.5;
  color: var(--ev-heading);
}
:root .ev-prose blockquote p{ margin: 0; }
:root .ev-prose figure{ margin-left: 0; margin-right: 0; margin-top: 2em; }
:root .ev-prose figure img{ width: 100%; border-radius: var(--ev-radius-card); display: block; }
:root .ev-prose figcaption{ font-size: var(--ev-text-sm); color: var(--ev-muted); margin-top: 0.75rem; text-align: center; }
:root .ev-prose hr{ border: 0; height: 1px; background: var(--ev-border); margin-block: 2.5em; }
:root .ev-prose code{ font-size: 0.875em; padding: 0.15em 0.4em; border-radius: 6px; background: var(--ev-surface-2); color: var(--ev-heading); }
:root .ev-prose table{ width: 100%; border-collapse: collapse; font-size: var(--ev-text-sm); }
:root .ev-prose th, :root .ev-prose td{ padding: 0.75rem 1rem; border-bottom: 1px solid var(--ev-border); text-align: left; }
:root .ev-prose th{ color: var(--ev-heading); font-weight: 700; background: var(--ev-surface-2); }
:root .ev-prose h2, :root .ev-prose h3{ scroll-margin-top: calc(var(--ev-header-h) + 1.5rem); }

/* 5. HEADER ================================================================ */
:root .ev-announce{ position: relative; z-index: 1000; background-color: var(--ev-color-dark); color: #e2e8f0; font-size: var(--ev-text-xs); font-weight: 600; }
:root[data-theme="dark"] .ev-announce{ background-color: #020617; border-bottom: 1px solid rgba(255, 255, 255, 0.06); }
:root .ev-announce__inner{ display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 0.25rem 0.75rem; min-height: 2.5rem; padding-top: 0.5rem; padding-bottom: 0.5rem; text-align: center; }
:root .ev-announce__link{ display: inline-flex; align-items: center; gap: 0.35rem; color: #7dd3fc; font-weight: 700; }
:root .ev-announce__link:hover{ color: #ffffff; }
:root .ev-skip-link{
  position: absolute; left: 1rem; top: -100px; z-index: 2000;
  padding: 0.75rem 1.25rem; border-radius: var(--ev-radius-btn);
  background: var(--ev-color-dark); color: #fff; font-weight: 700;
}
:root .ev-skip-link:focus{ top: 1rem; color: #fff; }
:root .ev-header{
  position: sticky; top: 0; z-index: 999;
  background-color: var(--ev-header-bg);
  -webkit-backdrop-filter: saturate(1.6) blur(14px);
  backdrop-filter: saturate(1.6) blur(14px);
  border-bottom: 1px solid var(--ev-border);
  transition: box-shadow 0.3s ease, background-color 0.3s ease;
}
#brx-header .ev-header{ position: relative; }
:root .ev-header--scrolled{ box-shadow: 0 10px 30px -14px rgba(15, 23, 42, 0.18); }
:root .ev-header__inner{ display: flex; align-items: center; justify-content: space-between; gap: var(--ev-space-m); min-height: var(--ev-header-h); }
:root .ev-header__actions{ display: flex; align-items: center; gap: 0.5rem; }

:root .ev-logo{ display: inline-flex; align-items: center; gap: 0.75rem; color: var(--ev-heading); flex: none; }
:root .ev-logo:hover{ color: var(--ev-heading); }
:root .ev-logo__mark{
  width: 2.5rem; height: 2.5rem; flex: none;
  display: grid; place-items: center;
  border-radius: 12px;
  background: linear-gradient(45deg, #0284c7, #38bdf8);
  color: #fff; font-weight: 800; font-size: 1.05rem; letter-spacing: -0.03em;
  box-shadow: 0 8px 18px -8px rgba(2, 132, 199, 0.7);
}
:root .ev-logo__text{ display: flex; flex-direction: column; line-height: 1.15; }
:root .ev-logo__name{ font-weight: 800; font-size: 1.0625rem; color: var(--ev-heading); letter-spacing: -0.02em; }
:root .ev-logo__tagline{ font-size: 0.75rem; font-weight: 500; color: var(--ev-muted); }

/* LOGOTIPO en imagen · Manual de Identidad Visual 3.4–3.8 (v1.5)
   Dos <img> dentro de .ev-logo: --light (color) y --dark (negativo). El CSS muestra la correcta según el tema o el bloque. */
:root .ev-logo__img{ display: block; height: var(--ev-logo-h, 2.25rem); width: auto; max-width: none; }
:root .ev-logo__img--dark{ display: none; }
:root[data-theme="dark"] .ev-logo__img--light,
:root :is(.ev-footer, .ev-section--dark, .ev-cta, .ev-status--dark, .ev-card--dark) .ev-logo__img--light{ display: none; }
:root[data-theme="dark"] .ev-logo__img--dark,
:root :is(.ev-footer, .ev-section--dark, .ev-cta, .ev-status--dark, .ev-card--dark) .ev-logo__img--dark{ display: block; }
:root .ev-footer .ev-logo, :root .ev-status .ev-logo{ --ev-logo-h: 2.5rem; }
@media (max-width: 991px){ :root .ev-header .ev-logo{ --ev-logo-h: 2rem; } }

:root .ev-nav__list{ display: flex; align-items: center; gap: 0.125rem; list-style: none; margin: 0; padding: 0; }
:root .ev-nav__link{
  display: inline-flex; align-items: center;
  padding: 0.5rem 0.875rem; border-radius: var(--ev-radius-pill);
  font-size: var(--ev-text-sm); font-weight: 600; color: var(--ev-text);
}
:root .ev-nav__link:hover{ color: var(--ev-heading); background-color: var(--ev-surface-2); }
:root .ev-nav__link[aria-current="page"], :root .ev-nav__link.is-active{ color: var(--ev-accent-text); background-color: var(--ev-tint); }

:root .ev-icon-btn{
  width: 2.75rem; height: 2.75rem; flex: none;
  display: inline-grid; place-items: center;
  padding: 0; border-radius: 12px;
  border: 1px solid var(--ev-border);
  background-color: var(--ev-surface);
  color: var(--ev-heading); font-size: 1rem;
  cursor: pointer; transition: var(--ev-transition);
}
:root .ev-icon-btn:hover{ border-color: var(--ev-color-border-glow); color: var(--ev-accent-text); transform: translateY(-1px); }
:root .ev-theme-toggle__sun{ display: none; }
:root[data-theme="dark"] .ev-theme-toggle__sun{ display: inline-block; }
:root[data-theme="dark"] .ev-theme-toggle__moon{ display: none; }

/* 6. APP BAR MÓVIL ========================================================= */
/* :is(#brx-footer, body) aporta especificidad de ID (1,1,0): gana a estilos que Bricks
   haya mapeado en la clase global o en el ID del elemento, incluso con !important. */
:root .ev-appbar{ display: none; }
:is(#brx-footer, body) .ev-appbar{ display: none !important; }
:is(#brx-footer, body) .ev-appbar__list{ display: grid !important; grid-template-columns: repeat(5, minmax(0, 1fr)) !important; gap: 0 !important; width: 100%; max-width: 40rem; margin: 0 auto; padding: 0; list-style: none; }
:is(#brx-footer, body) .ev-appbar__link{ display: flex !important; flex-direction: column !important; text-decoration: none; }
:root .ev-appbar__link{
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.25rem;
  min-height: 56px; padding: 0.25rem 0;
  font-size: 0.6875rem; font-weight: 600; letter-spacing: 0.01em;
  color: var(--ev-muted); -webkit-tap-highlight-color: transparent;
}
:root .ev-appbar__icon{
  display: grid; place-items: center;
  width: 3.5rem; height: 2rem; border-radius: var(--ev-radius-pill);
  font-size: 1.0625rem; transition: var(--ev-transition);
}
:root .ev-appbar__link:hover{ color: var(--ev-heading); }
:root .ev-appbar__link[aria-current="page"], :root .ev-appbar__link.is-active{ color: var(--ev-heading); font-weight: 700; }
:root .ev-appbar__link[aria-current="page"] .ev-appbar__icon,
:root .ev-appbar__link.is-active .ev-appbar__icon{ background-color: var(--ev-tint); color: var(--ev-accent-text); }

/* App bar: tokens propios (no hereda los de .ev-footer / bloques oscuros si queda dentro de ellos) */
:is(#brx-footer, body) .ev-appbar{
  --ev-heading: #0f172a; --ev-muted: #64748b; --ev-border: #e2e8f0;
  --ev-tint: #f0f9ff; --ev-accent-text: #0369a1; --ev-header-bg: rgba(255, 255, 255, 0.84);
  color: var(--ev-muted); opacity: 1 !important; filter: none !important;
}
:root[data-theme="dark"] :is(#brx-footer, body) .ev-appbar{
  --ev-heading: #f1f5f9; --ev-muted: #94a3b8; --ev-border: rgba(148, 163, 184, 0.16);
  --ev-tint: rgba(56, 189, 248, 0.14); --ev-accent-text: #38bdf8; --ev-header-bg: rgba(11, 17, 32, 0.8);
}
:is(#brx-footer, body) .ev-appbar :is(.ev-appbar__link, .ev-appbar__icon, .ev-appbar__label){ opacity: 1 !important; filter: none !important; animation: none !important; }
:is(#brx-footer, body) .ev-appbar .ev-appbar__link{ color: var(--ev-muted) !important; font-size: 0.6875rem; font-weight: 600; }
:is(#brx-footer, body) .ev-appbar .ev-appbar__link:is([aria-current="page"], .is-active){ color: var(--ev-heading) !important; font-weight: 700; }

/* 7. BOTONES / BADGES / PILLS ============================================= */
:root .ev-btn{
  display: inline-flex; align-items: center; justify-content: center; gap: 0.625rem;
  padding: 0.875rem 1.75rem;
  border-radius: var(--ev-radius-btn);
  border: 1px solid transparent;
  font-family: var(--ev-font-main); font-weight: 700; font-size: 0.95rem; line-height: 1.2;
  text-align: center; text-decoration: none;
  cursor: pointer; transition: var(--ev-transition);
}
:root .ev-btn i{ font-size: 0.875em; transition: transform 0.3s var(--ev-ease-out); }
:root .ev-btn:hover .fa-arrow-right{ transform: translateX(3px); }
:root .ev-btn--primary{ background-color: var(--ev-color-primary); color: #ffffff; box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.35); }
:root .ev-btn--primary:hover{ background-color: var(--ev-color-primary-hover); color: #ffffff; box-shadow: 0 15px 30px -5px rgba(2, 132, 199, 0.45); transform: translateY(-2px); }
:root .ev-btn--dark{ background-color: var(--ev-btn-dark-bg); border-color: var(--ev-btn-dark-border); color: #ffffff; box-shadow: 0 10px 20px -5px rgba(15, 23, 42, 0.2); }
:root .ev-btn--dark:hover{ background-color: var(--ev-btn-dark-hover); color: #ffffff; transform: translateY(-2px); }
:root .ev-btn--accent{ background-color: var(--ev-color-cyan-bright); color: var(--ev-color-dark); box-shadow: 0 10px 25px -5px rgba(0, 168, 232, 0.4); }
:root .ev-btn--accent:hover{ background-color: #38bdf8; color: var(--ev-color-dark); transform: translateY(-2px); }
:root .ev-btn--ghost{ background-color: transparent; border-color: var(--ev-border-strong); color: var(--ev-heading); }
:root .ev-btn--ghost:hover{ background-color: var(--ev-surface); border-color: var(--ev-color-border-glow); color: var(--ev-accent-text); transform: translateY(-2px); }
:root .ev-btn--sm{ padding: 0.625rem 1.125rem; font-size: 0.875rem; border-radius: 12px; }
:root .ev-btn--lg{ padding: 1.0625rem 2rem; font-size: 1rem; }
:root .ev-btn--block{ width: 100%; }

:root .ev-link-arrow{ display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 800; font-size: var(--ev-text-sm); color: var(--ev-accent-text); }
:root .ev-link-arrow i{ font-size: 0.75em; transition: transform 0.3s var(--ev-ease-out); }
:root .ev-link-arrow:hover i{ transform: translateX(4px); }

:root .ev-badge{
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.375rem 1rem;
  border-radius: var(--ev-radius-pill);
  background-color: var(--ev-tint);
  border: 1px solid var(--ev-badge-border);
  color: var(--ev-accent-text);
  font-size: 0.8rem; font-weight: 700; line-height: 1.4;
}
:root .ev-badge__dot{ width: 0.5rem; height: 0.5rem; border-radius: 50%; background-color: #0ea5e9; flex: none; animation: ev-pulse 2.2s ease-out infinite; }

:root .ev-pill{
  display: inline-flex; align-items: center; gap: 0.375rem;
  padding: 0.3rem 0.75rem; border-radius: var(--ev-radius-pill);
  font-size: 0.7rem; font-weight: 800; letter-spacing: 0.06em; text-transform: uppercase; line-height: 1.3;
  white-space: nowrap;
  background-color: var(--ev-tint-sky); color: var(--ev-sky);
  border: 1px solid color-mix(in srgb, var(--ev-sky) 28%, transparent);
}
:root .ev-pill--danger{ background-color: var(--ev-tint-rose); color: var(--ev-rose); border-color: color-mix(in srgb, var(--ev-rose) 28%, transparent); }
:root .ev-pill--success{ background-color: var(--ev-tint-emerald); color: var(--ev-emerald); border-color: color-mix(in srgb, var(--ev-emerald) 28%, transparent); }
:root .ev-pill--amber{ background-color: var(--ev-tint-amber); color: var(--ev-amber); border-color: color-mix(in srgb, var(--ev-amber) 28%, transparent); }
:root .ev-pill--indigo{ background-color: var(--ev-tint-indigo); color: var(--ev-indigo); border-color: color-mix(in srgb, var(--ev-indigo) 28%, transparent); }
:root .ev-pill--neutral{ background-color: var(--ev-surface-2); color: var(--ev-heading); border-color: var(--ev-border); }

:root .ev-tag{ display: inline-flex; align-items: center; gap: 0.375rem; padding: 0.3rem 0.7rem; border-radius: 8px; font-size: var(--ev-text-xs); font-weight: 700; background-color: var(--ev-surface-2); color: var(--ev-heading); }
:root a.ev-tag:hover{ background-color: var(--ev-tint); color: var(--ev-accent-text); }
:root .ev-tag--success{ background-color: var(--ev-tint-emerald); color: var(--ev-emerald); }
:root .ev-tags{ display: flex; flex-wrap: wrap; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }

/* 8. SECTION HEAD ========================================================== */
:root .ev-section-head{ display: flex; flex-direction: column; align-items: flex-start; gap: var(--ev-space-xs); max-width: 48rem; margin-bottom: var(--ev-space-xl); }
:root .ev-section-head--center{ align-items: center; text-align: center; margin-left: auto; margin-right: auto; }
:root .ev-section-head--split{ max-width: none; flex-direction: row; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--ev-space-m); }
:root .ev-section-head__group{ display: flex; flex-direction: column; align-items: flex-start; gap: var(--ev-space-xs); max-width: 44rem; }
:root .ev-section-head__title{ font-size: var(--ev-text-4xl); }
:root .ev-section-head__lead{ font-size: var(--ev-text-lg); color: var(--ev-text); line-height: 1.6; }
:root .ev-section-foot{ display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ev-space-xs); margin-top: var(--ev-space-l); }

/* 9. CARD ================================================================== */
:root .ev-card{
  position: relative;
  display: flex; flex-direction: column; gap: var(--ev-space-xs);
  background-color: var(--ev-surface);
  border-radius: var(--ev-radius-card);
  border: 1px solid var(--ev-border);
  box-shadow: var(--ev-shadow-card);
  padding: var(--ev-space-m);
  transition: var(--ev-transition);
}
:root .ev-card:hover{ border-color: var(--ev-color-border-glow); box-shadow: var(--ev-shadow-hover); transform: translateY(-3px); }
:root .ev-card--static:hover{ transform: none; box-shadow: var(--ev-shadow-card); border-color: var(--ev-border); }
:root .ev-card--flat{ box-shadow: none; }
:root .ev-card--tint{ background-color: var(--ev-tint); border-color: var(--ev-badge-border); box-shadow: none; }
:root .ev-card--lg{ padding: var(--ev-space-l); border-radius: var(--ev-radius-lg); }
:root .ev-card--dark{
  background: radial-gradient(80% 60% at 100% 0%, rgba(2, 132, 199, 0.25), transparent 60%),
              linear-gradient(135deg, var(--ev-color-dark) 0%, var(--ev-color-navy) 100%);
  border-color: rgba(255, 255, 255, 0.1);
}
:root .ev-card--dark:hover{ border-color: rgba(56, 189, 248, 0.45); }
:root .ev-card__top{ display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: var(--ev-space-3xs); }
:root .ev-card__icon{
  width: 3rem; height: 3rem; flex: none;
  display: grid; place-items: center;
  border-radius: 16px; font-size: 1.2rem;
  background-color: var(--ev-tint-sky); color: var(--ev-sky);
}
:root .ev-card__icon--sm{ width: 2.5rem; height: 2.5rem; border-radius: 12px; font-size: 1rem; }
:root .ev-card__icon--lg{ width: 3.5rem; height: 3.5rem; border-radius: 18px; font-size: 1.4rem; }
:root .ev-card__icon--solid{ background-color: var(--ev-color-primary); color: #fff; box-shadow: 0 12px 24px -10px rgba(2, 132, 199, 0.55); }
:root .ev-card__icon--amber{ background-color: var(--ev-tint-amber); color: var(--ev-amber); }
:root .ev-card__icon--emerald{ background-color: var(--ev-tint-emerald); color: var(--ev-emerald); }
:root .ev-card__icon--indigo{ background-color: var(--ev-tint-indigo); color: var(--ev-indigo); }
:root .ev-card__icon--rose{ background-color: var(--ev-tint-rose); color: var(--ev-rose); }
:root .ev-card__icon--sky{ background-color: var(--ev-tint-sky); color: var(--ev-sky); }
/* 7b. ACENTO DINÁMICO GENÉRICO · v1.7 ===================================
   data-ev-color="{je_servicios_cf_color_icono_servicio}" en cualquier elemento → el JS escribe data-ev-accent
   (sky · amber · emerald · indigo · rose · solid). También sirve data-ev-accent="amber" fijo, sin JS.
   Variables disponibles en el elemento y sus hijos (úsalas en Bricks: var(--ev-accent)):
   --ev-accent (color) · --ev-accent-tint (fondo suave) · --ev-accent-text (texto ≥ 4,5:1)
   --ev-accent-solid (relleno) · --ev-accent-on (texto sobre el relleno). Cambian solas en modo oscuro.
   Clases: .ev-accent--text · --bg · --solid · --border · --line (en el mismo elemento)
           .ev-accent__text · __bg · __solid · __border · __line (en hijos de un .ev-accent) */
:root :is(.ev-accent, [data-ev-accent]){ --ev-accent: var(--ev-sky); --ev-accent-tint: var(--ev-tint-sky); --ev-accent-text: #0369a1; --ev-accent-solid: #0369a1; --ev-accent-on: #ffffff; }
:root [data-ev-accent="amber"]{ --ev-accent: var(--ev-amber); --ev-accent-tint: var(--ev-tint-amber); --ev-accent-text: var(--ev-amber); --ev-accent-solid: var(--ev-amber); }
:root [data-ev-accent="emerald"]{ --ev-accent: var(--ev-emerald); --ev-accent-tint: var(--ev-tint-emerald); --ev-accent-text: var(--ev-emerald); --ev-accent-solid: var(--ev-emerald); }
:root [data-ev-accent="indigo"]{ --ev-accent: var(--ev-indigo); --ev-accent-tint: var(--ev-tint-indigo); --ev-accent-text: var(--ev-indigo); --ev-accent-solid: var(--ev-indigo); }
:root [data-ev-accent="rose"]{ --ev-accent: var(--ev-rose); --ev-accent-tint: var(--ev-tint-rose); --ev-accent-text: var(--ev-rose); --ev-accent-solid: var(--ev-rose); }
:root[data-theme="dark"] :is(.ev-accent, [data-ev-accent]),
:root :is(.ev-section--dark, .ev-card--dark, .ev-cta, .ev-footer, .ev-status--dark, .ev-widget--dark) :is(.ev-accent, [data-ev-accent]){ --ev-accent-text: var(--ev-accent); --ev-accent-solid: var(--ev-accent); --ev-accent-on: #0f172a; }
:root .ev-accent--text, :root .ev-accent .ev-accent__text{ color: var(--ev-accent-text) !important; }
:root .ev-accent--bg, :root .ev-accent .ev-accent__bg{ background-color: var(--ev-accent-tint) !important; color: var(--ev-accent-text); }
:root .ev-accent--solid, :root .ev-accent .ev-accent__solid{ background-color: var(--ev-accent-solid) !important; color: var(--ev-accent-on) !important; border-color: transparent; }
:root .ev-accent--border, :root .ev-accent .ev-accent__border{ border-color: var(--ev-accent) !important; }
:root .ev-accent--line, :root .ev-accent .ev-accent__line{ box-shadow: inset 0 3px 0 var(--ev-accent); }
:root :is(.ev-accent--text, .ev-accent__text, .ev-accent--solid, .ev-accent__solid) svg{ fill: currentColor; }
/* v1.6.1 · El color del ícono manda sobre el color propio del Icon de Bricks (hijo <i>/<svg>). */
:root .ev-card__icon[data-ev-accent] > :is(i, svg, span, .brxe-icon),
:root .ev-card__icon[data-ev-accent] :is(i, svg){ color: inherit !important; fill: currentColor !important; }
:root .ev-card__icon[data-ev-accent] svg :is(path, circle, rect, polygon){ fill: currentColor !important; }
/* v1.6 · Color del ícono desde JetEngine (Colorpicker cf_color_icono_servicio):
   atributo data-ev-color="{je_servicios_cf_color_icono_servicio}" en .ev-card__icon o en la tarjeta. El JS lo ajusta
   al acento del sistema más cercano y aplica la clase ev-card__icon--{sky|amber|emerald|indigo|rose|solid}. */
:root .ev-card__index{ position: absolute; top: var(--ev-space-m); right: var(--ev-space-m); font-size: var(--ev-text-3xl); font-weight: 800; letter-spacing: -0.04em; line-height: 1; color: var(--ev-border-strong); font-variant-numeric: tabular-nums; }
:root .ev-card__title{ font-size: var(--ev-text-xl); font-weight: 800; letter-spacing: -0.02em; line-height: var(--ev-leading-snug); }
:root .ev-card__title--s{ font-size: var(--ev-text-lg); }
:root .ev-card__title a{ color: inherit; }
:root .ev-card__title a::after{ content: ""; position: absolute; inset: 0; border-radius: inherit; }
:root .ev-card__text{ font-size: var(--ev-text-sm); color: var(--ev-text); line-height: 1.65; }
:root .ev-card__footer{
  display: flex; align-items: center; justify-content: space-between; gap: 0.5rem;
  margin-top: auto; padding-top: var(--ev-space-xs);
  border-top: 1px solid var(--ev-border);
  font-size: var(--ev-text-sm); font-weight: 700; color: var(--ev-accent-text);
}
:root .ev-card__footer--start{ justify-content: flex-start; }
:root a.ev-card__footer:hover{ color: var(--ev-link-hover); }
:root a.ev-card__footer i{ transition: transform 0.3s var(--ev-ease-out); }
:root a.ev-card__footer:hover i{ transform: translateX(4px); }
:root .ev-card__footer--danger{ color: var(--ev-rose); justify-content: flex-start; }
:root .ev-card__body{ display: flex; flex-direction: column; gap: var(--ev-space-xs); }

/* Hero grid (identidad visual del framework) */
:root .ev-hero-grid{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1.25rem; }
:root .ev-hero-grid__tall{ grid-column: span 1; grid-row: span 2; justify-content: space-between; }
:root .ev-hero-grid .ev-card{ padding: 1.25rem; gap: 0.5rem; }
:root .ev-hero-grid .ev-card__title{ font-size: 1rem; }
:root .ev-hero-grid .ev-card__text{ font-size: 0.8125rem; line-height: 1.55; color: var(--ev-muted); }

/* Callout / Checklist */
:root .ev-callout{ display: flex; flex-direction: column; gap: 0.625rem; padding: var(--ev-space-s); border-radius: 14px; background-color: var(--ev-surface-2); border: 1px solid var(--ev-border); font-size: var(--ev-text-sm); }
:root .ev-callout--danger{ background-color: var(--ev-tint-rose); border-color: color-mix(in srgb, var(--ev-rose) 20%, transparent); }
:root .ev-callout__title{ font-weight: 800; color: var(--ev-heading); font-size: var(--ev-text-sm); }
:root .ev-checklist{ list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 0.625rem; }
:root .ev-checklist--2col{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.875rem var(--ev-space-m); }
:root .ev-checklist__item{ display: flex; align-items: flex-start; gap: 0.625rem; font-size: var(--ev-text-sm); color: var(--ev-text); line-height: 1.55; }
:root .ev-checklist__item > i{ flex: none; margin-top: 0.22em; color: var(--ev-accent-text); }
:root .ev-checklist--x .ev-checklist__item > i{ color: var(--ev-rose); }

/* 10. HERO ================================================================= */
:root .ev-hero{
  overflow: hidden;
  padding-top: clamp(2.5rem, 1.2rem + 5vw, 6rem);
  background: radial-gradient(55% 55% at 85% 10%, rgba(0, 168, 232, 0.14), transparent 70%),
              linear-gradient(to bottom, var(--ev-tint), var(--ev-bg) 75%);
}
:root .ev-hero::before, :root .ev-page-hero::before, :root .ev-cta::before, :root .ev-status::before{
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background-image: radial-gradient(var(--ev-grid-dot) 1.2px, transparent 1.2px);
  background-size: 26px 26px;
  -webkit-mask-image: linear-gradient(to bottom, #000 10%, transparent 85%);
  mask-image: linear-gradient(to bottom, #000 10%, transparent 85%);
}
:root .ev-hero__grid{ display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: var(--ev-space-xl); align-items: center; }
:root .ev-hero__content{ display: flex; flex-direction: column; align-items: flex-start; gap: var(--ev-space-m); }
:root .ev-hero__title{ font-size: var(--ev-text-5xl); line-height: 1.04; letter-spacing: -0.04em; }
:root .ev-hero__quote{
  font-size: var(--ev-text-lg); font-weight: 700; font-style: italic; color: var(--ev-heading);
  padding: 0.375rem 1rem; border-left: 4px solid var(--ev-color-primary);
  background: linear-gradient(90deg, var(--ev-tint), transparent);
  border-radius: 0 10px 10px 0;
}
:root .ev-hero__lead{ font-size: var(--ev-text-lg); color: var(--ev-text); line-height: 1.6; max-width: 58ch; }
:root .ev-hero__actions{ display: flex; flex-wrap: wrap; gap: var(--ev-space-xs); }
:root .ev-hero__trust{
  display: flex; flex-wrap: wrap; gap: 0.75rem 1.5rem;
  width: 100%; margin: 0; padding: var(--ev-space-s) 0 0;
  list-style: none; border-top: 1px solid var(--ev-border);
  font-size: var(--ev-text-sm); font-weight: 600; color: var(--ev-muted);
}
:root .ev-hero__trust li{ display: inline-flex; align-items: center; gap: 0.5rem; }
:root .ev-hero__trust i{ color: var(--ev-accent-text); }
:root .ev-hero__visual{ position: relative; padding-top: 1.75rem; padding-bottom: 3rem; }

:root .ev-kpi{
  position: absolute; z-index: 2;
  display: flex; align-items: center; gap: 0.75rem;
  padding: 0.75rem 1rem 0.75rem 0.75rem;
  border-radius: 16px;
  background-color: var(--ev-surface);
  border: 1px solid var(--ev-border);
  box-shadow: 0 24px 48px -16px rgba(15, 23, 42, 0.25);
}
:root[data-theme="dark"] .ev-kpi{ background-color: #1a2740; }
:root .ev-kpi--top{ top: 0; right: -1rem; }
:root .ev-kpi--bottom{ bottom: 0; left: -1.5rem; }
:root .ev-kpi__icon{ width: 2.5rem; height: 2.5rem; border-radius: 12px; display: grid; place-items: center; background-color: var(--ev-tint-emerald); color: var(--ev-emerald); flex: none; }
:root .ev-kpi__icon--sky{ background-color: var(--ev-tint-sky); color: var(--ev-sky); }
:root .ev-kpi__body{ display: flex; flex-direction: column; line-height: 1.2; }
:root .ev-kpi__value{ font-weight: 800; font-size: 1.125rem; color: var(--ev-heading); font-variant-numeric: tabular-nums; letter-spacing: -0.02em; }
:root .ev-kpi__label{ font-size: 0.75rem; color: var(--ev-muted); font-weight: 500; }

/* Page hero (interiores / archives / singles) */
:root .ev-page-hero{
  position: relative; overflow: hidden;
  padding-top: clamp(2.25rem, 1.2rem + 4vw, 5rem);
  padding-bottom: clamp(2.25rem, 1.2rem + 3.5vw, 4.5rem);
  background: radial-gradient(50% 70% at 90% 0%, rgba(0, 168, 232, 0.12), transparent 70%),
              linear-gradient(to bottom, var(--ev-tint), var(--ev-bg));
}
:root .ev-page-hero__inner{ position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: var(--ev-space-s); max-width: 54rem; }
:root .ev-page-hero--center .ev-page-hero__inner{ align-items: center; text-align: center; margin-left: auto; margin-right: auto; }
:root .ev-page-hero__grid{ position: relative; display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr); gap: var(--ev-space-xl); align-items: center; }
:root .ev-page-hero__grid .ev-page-hero__inner{ max-width: none; }
:root .ev-page-hero__title{ font-size: var(--ev-text-5xl); letter-spacing: -0.04em; line-height: 1.05; }
:root .ev-page-hero__lead{ font-size: var(--ev-text-lg); color: var(--ev-text); line-height: 1.6; max-width: 46rem; }
:root .ev-page-hero__actions{ display: flex; flex-wrap: wrap; gap: var(--ev-space-xs); margin-top: var(--ev-space-3xs); }

:root .ev-breadcrumb__list{ display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; list-style: none; margin: 0; padding: 0; font-size: var(--ev-text-xs); font-weight: 600; color: var(--ev-muted); }
:root .ev-breadcrumb__item + .ev-breadcrumb__item::before{ content: "/"; margin-right: 0.5rem; color: var(--ev-border-strong); }
:root .ev-breadcrumb__link{ color: var(--ev-muted); }
:root .ev-breadcrumb__link:hover{ color: var(--ev-accent-text); }
:root .ev-breadcrumb__item[aria-current="page"]{ color: var(--ev-heading); }

:root .ev-meta{ display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1.25rem; list-style: none; margin: 0; padding: 0; font-size: var(--ev-text-sm); color: var(--ev-muted); font-weight: 500; }
:root .ev-meta__item{ display: inline-flex; align-items: center; gap: 0.45rem; }
:root .ev-meta__item i{ color: var(--ev-accent-text); font-size: 0.875em; }
:root .ev-meta__avatar{ width: 2rem; height: 2rem; border-radius: 50%; object-fit: cover; }

/* 11. MÓDULOS DE CONTENIDO ================================================ */
/* Confianza · muro de organizaciones (grilla estática con divisores finos, sin animación continua) */
:root .ev-trust{ display: flex; flex-direction: column; align-items: center; gap: var(--ev-space-m); margin-bottom: var(--ev-space-l); }
:root .ev-trust__title{ font-size: var(--ev-text-sm); font-weight: 700; color: var(--ev-muted); letter-spacing: 0; text-align: center; text-wrap: pretty; }
:root .ev-clients{
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1px; width: 100%;
  list-style: none; margin: 0; padding: 0;
  background-color: var(--ev-border); border: 1px solid var(--ev-border); border-radius: var(--ev-radius-card); overflow: hidden;
}
:root .ev-clients__item{ display: flex; align-items: center; gap: 0.875rem; min-width: 0; margin: 0; padding: 1.125rem 1.25rem; background-color: var(--ev-surface); transition: var(--ev-transition); }
:root .ev-clients__item:hover{ background-color: var(--ev-surface-2); }
:root .ev-clients__icon{ width: 2.5rem; height: 2.5rem; flex: none; border-radius: 12px; background-color: var(--ev-tint); color: var(--ev-accent-text); font-size: 1rem; }
:root .ev-clients__text{ display: flex; flex-direction: column; gap: 0.125rem; min-width: 0; }
:root .ev-clients__name{ font-size: var(--ev-text-sm); font-weight: 700; line-height: 1.3; color: var(--ev-heading); text-wrap: pretty; }
:root .ev-clients__sector{ font-size: var(--ev-text-xs); font-weight: 600; color: var(--ev-muted); }
@media (max-width: 991px){ :root .ev-clients{ grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px){ :root .ev-clients{ grid-template-columns: repeat(2, minmax(0, 1fr)); } :root .ev-clients__item{ padding: 0.875rem; gap: 0.625rem; } :root .ev-clients__icon{ width: 2.125rem; height: 2.125rem; font-size: 0.875rem; border-radius: 10px; } }
@media (max-width: 380px){ :root .ev-clients{ grid-template-columns: minmax(0, 1fr); } }

/* Stats */
:root .ev-stats{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--ev-space-s); margin: 0; }
:root .ev-stat{ display: flex; flex-direction: column; gap: 0.375rem; padding: var(--ev-space-m); border-radius: var(--ev-radius-card); background-color: var(--ev-surface); border: 1px solid var(--ev-border); }
:root .ev-stat__value{ font-size: var(--ev-text-4xl); font-weight: 800; letter-spacing: -0.045em; line-height: 1; color: var(--ev-heading); font-variant-numeric: tabular-nums; margin: 0; }
:root .ev-stat__suffix{ color: var(--ev-accent-text); }
:root .ev-stat__label{ font-size: var(--ev-text-sm); color: var(--ev-muted); font-weight: 500; margin: 0; }

/* Comparativa Antes / Después */
:root .ev-compare{ position: relative; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ev-space-m); align-items: stretch; }
:root .ev-compare__vs{
  position: absolute; left: 50%; top: 50%; z-index: 2;
  width: 3.25rem; height: 3.25rem; margin: -1.625rem 0 0 -1.625rem;
  display: grid; place-items: center; border-radius: 50%;
  background-color: var(--ev-color-primary); color: #fff;
  box-shadow: 0 0 0 6px var(--ev-bg-alt), var(--ev-shadow-glow);
}
:root .ev-compare .ev-card{ gap: var(--ev-space-s); }

/* Pasos / metodología */
:root .ev-steps{ display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--ev-space-s); list-style: none; margin: 0; padding: 0; }
:root .ev-steps--3{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
:root .ev-step{ position: relative; display: flex; flex-direction: column; gap: 0.5rem; padding: var(--ev-space-m) var(--ev-space-s); border-radius: var(--ev-radius-card); background-color: var(--ev-surface); border: 1px solid var(--ev-border); transition: var(--ev-transition); }
:root .ev-step:hover{ border-color: var(--ev-color-border-glow); transform: translateY(-3px); }
:root .ev-step__num{ font-size: var(--ev-text-3xl); font-weight: 800; letter-spacing: -0.05em; line-height: 1; color: var(--ev-accent-text); font-variant-numeric: tabular-nums; }
:root .ev-step__title{ font-size: var(--ev-text-lg); font-weight: 700; letter-spacing: -0.01em; }
:root .ev-step__text{ font-size: var(--ev-text-sm); color: var(--ev-muted); line-height: 1.55; }

/* Modelo de trabajo (Informe de Identidad Corporativa §09): gestión estratégica al centro → personas · procesos · recursos */
:root .ev-model{ max-width: 64rem; margin: 0 auto; padding: var(--ev-space-l) var(--ev-space-m) var(--ev-space-m); border-radius: var(--ev-radius-lg); background-color: var(--ev-surface-2); border: 1px solid var(--ev-border); }
:root .ev-model__hub{ display: flex; flex-direction: column; align-items: center; gap: 0.25rem; width: fit-content; max-width: 100%; margin: 0 auto; padding: 1rem 2rem; border-radius: 20px; background-color: var(--ev-color-dark); text-align: center; box-shadow: 0 14px 30px -16px rgba(2, 132, 199, 0.55); }
:root .ev-model__hub-icon{ color: #00a8e8; font-size: 1.25rem; line-height: 1; }
:root .ev-model__hub-title{ margin: 0; font-size: var(--ev-text-xl); font-weight: 800; letter-spacing: -0.02em; line-height: 1.2; color: #f8fafc; }
:root .ev-model__hub-text{ margin: 0; font-size: var(--ev-text-sm); line-height: 1.45; color: #cbd5e1; text-wrap: pretty; }
:root[data-theme="dark"] .ev-model__hub, :root :is(.ev-section--dark, .ev-card--dark, .ev-cta) .ev-model__hub{ background-color: var(--ev-color-primary-hover); }
:root[data-theme="dark"] .ev-model__hub-icon, :root :is(.ev-section--dark, .ev-card--dark, .ev-cta) .ev-model__hub-icon{ color: #fff; }
:root[data-theme="dark"] .ev-model__hub-text, :root :is(.ev-section--dark, .ev-card--dark, .ev-cta) .ev-model__hub-text{ color: #e0f2fe; }
:root .ev-model__links{ position: relative; height: 2rem; margin: 0 16.66%; }
:root .ev-model__links::before{ content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1rem; border: 2px solid var(--ev-color-primary); border-bottom: 0; border-radius: 12px 12px 0 0; }
:root .ev-model__links::after{ content: ""; position: absolute; left: 50%; top: 0; bottom: 1rem; border-left: 2px solid var(--ev-color-primary); transform: translateX(-1px); }
:root .ev-model__items{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ev-space-s); list-style: none; margin: 0; padding: 0; }
:root .ev-model__item{ display: flex; flex-direction: column; gap: 0.375rem; margin: 0; padding: 1.125rem 1.25rem; border-radius: var(--ev-radius-card); background-color: var(--ev-surface); border: 1px solid var(--ev-border); transition: var(--ev-transition); }
:root .ev-model__item:hover{ border-color: var(--ev-color-border-glow); transform: translateY(-3px); }
:root .ev-model__title{ display: flex; align-items: center; gap: 0.625rem; margin: 0; font-size: var(--ev-text-lg); font-weight: 800; letter-spacing: -0.01em; color: var(--ev-heading); }
:root .ev-model__icon{ width: 2.25rem; height: 2.25rem; flex: none; border-radius: 10px; background-color: var(--ev-accent-tint, var(--ev-tint)); color: var(--ev-accent-text); font-size: 0.95rem; }
:root .ev-model__text{ margin: 0; font-size: var(--ev-text-sm); line-height: 1.55; color: var(--ev-text); text-wrap: pretty; }
:root .ev-model__caption{ margin: var(--ev-space-s) 0 0; font-size: var(--ev-text-xs); line-height: 1.5; color: var(--ev-muted); text-align: center; text-wrap: pretty; }
@media (max-width: 767px){
  :root .ev-model{ padding: var(--ev-space-m) var(--ev-space-s) var(--ev-space-s); }
  :root .ev-model__hub{ width: 100%; padding: 0.875rem 1.25rem; }
  :root .ev-model__links{ height: 1.25rem; margin: 0; }
  :root .ev-model__links::before{ display: none; }
  :root .ev-model__links::after{ bottom: 0; }
  :root .ev-model__items{ grid-template-columns: minmax(0, 1fr); }
}

/* Tabs */
:root .ev-tabs__head{ display: flex; justify-content: center; margin-bottom: var(--ev-space-l); }
:root .ev-tabs__list{ display: inline-flex; gap: 0.375rem; padding: 0.375rem; border-radius: 18px; background-color: var(--ev-surface-2); border: 1px solid var(--ev-border); max-width: 100%; overflow-x: auto; scrollbar-width: none; }
:root .ev-tabs__tab{
  padding: 0.7rem 1.25rem; border: 0; border-radius: 12px;
  background: transparent; color: var(--ev-muted);
  font-family: var(--ev-font-main); font-size: var(--ev-text-sm); font-weight: 700; line-height: 1.2;
  white-space: nowrap; cursor: pointer; transition: var(--ev-transition);
}
:root .ev-tabs__tab:hover{ color: var(--ev-heading); }
:root .ev-tabs__tab[aria-selected="true"]{ background-color: var(--ev-color-primary); color: #fff; box-shadow: 0 8px 18px -8px rgba(2, 132, 199, 0.7); }
:root .ev-tabs__panel[hidden]{ display: none; }

/* Caso / proyecto de ejemplo */
:root .ev-case{ gap: var(--ev-space-m); padding: var(--ev-space-l); }
:root .ev-case__head{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ev-space-s); padding-bottom: var(--ev-space-m); border-bottom: 1px solid var(--ev-border); }
:root .ev-case__heading{ display: flex; flex-direction: column; gap: 0.375rem; }
:root .ev-case__title{ font-size: var(--ev-text-2xl); letter-spacing: -0.025em; }
:root .ev-case__grid{ display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--ev-space-s); }
:root .ev-case__box{ display: flex; flex-direction: column; gap: 0.75rem; padding: var(--ev-space-m); border-radius: 16px; background-color: var(--ev-surface-2); border: 1px solid var(--ev-border); }
:root .ev-case__box--solution{ background-color: var(--ev-tint-sky); border-color: color-mix(in srgb, var(--ev-sky) 20%, transparent); }
:root .ev-case__box--result{ background-color: var(--ev-tint-emerald); border-color: color-mix(in srgb, var(--ev-emerald) 25%, transparent); }
:root .ev-case__box-head{ display: flex; align-items: center; gap: 0.75rem; }
:root .ev-case__box-title{ font-size: var(--ev-text-lg); font-weight: 800; letter-spacing: -0.01em; }
:root .ev-case__foot{ display: flex; justify-content: flex-end; padding-top: var(--ev-space-s); border-top: 1px solid var(--ev-border); }

/* Facts (ficha de proyecto / servicio) */
:root .ev-facts{ display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; border: 1px solid var(--ev-border); border-radius: var(--ev-radius-card); background-color: var(--ev-surface); overflow: hidden; }
:root .ev-facts__item{ display: flex; flex-direction: column; gap: 0.25rem; padding: var(--ev-space-s) var(--ev-space-m); border-right: 1px solid var(--ev-border); }
:root .ev-facts__item:last-child{ border-right: 0; }
:root .ev-facts__label{ font-size: var(--ev-text-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ev-muted); }
:root .ev-facts__value{ margin: 0; font-weight: 700; color: var(--ev-heading); font-size: var(--ev-text-base); }

/* Lista de definición (resumen de servicio) */
:root .ev-dl{ display: flex; flex-direction: column; margin: 0; }
:root .ev-dl__row{ display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; padding: 0.75rem 0; border-bottom: 1px dashed var(--ev-border-strong); font-size: var(--ev-text-sm); }
:root .ev-dl__term{ color: var(--ev-muted); font-weight: 500; }
:root .ev-dl__desc{ margin: 0; color: var(--ev-heading); font-weight: 700; text-align: right; }

/* Timeline */
:root .ev-timeline{ position: relative; display: flex; flex-direction: column; gap: var(--ev-space-m); list-style: none; margin: 0; padding: 0; }
:root .ev-timeline::before{ content: ""; position: absolute; left: 0.6875rem; top: 0.5rem; bottom: 0.5rem; width: 2px; background: linear-gradient(var(--ev-color-primary), transparent); }
:root .ev-timeline__item{ position: relative; display: flex; flex-direction: column; gap: 0.375rem; padding-left: 3rem; }
:root .ev-timeline__item::before{ content: ""; position: absolute; left: 0; top: 0.1rem; width: 1.5rem; height: 1.5rem; border-radius: 50%; background-color: var(--ev-bg); border: 4px solid var(--ev-color-primary); box-sizing: border-box; }
:root .ev-timeline__year{ font-size: var(--ev-text-xs); font-weight: 800; letter-spacing: var(--ev-tracking-wide); color: var(--ev-accent-text); }
:root .ev-timeline__title{ font-size: var(--ev-text-xl); letter-spacing: -0.02em; }
:root .ev-timeline__text{ font-size: var(--ev-text-sm); color: var(--ev-text); max-width: 60ch; }

/* 12. LISTADOS (JetEngine Listing Grid) =================================== */
:root .ev-post-card{
  position: relative; display: flex; flex-direction: column;
  background-color: var(--ev-surface);
  border: 1px solid var(--ev-border); border-radius: var(--ev-radius-card);
  box-shadow: var(--ev-shadow-card); overflow: hidden;
  transition: var(--ev-transition);
}
:root .ev-post-card:hover{ border-color: var(--ev-color-border-glow); box-shadow: var(--ev-shadow-hover); transform: translateY(-3px); }
:root .ev-post-card__media{ position: relative; aspect-ratio: 16 / 10; overflow: hidden; margin: 0; background: repeating-linear-gradient(135deg, var(--ev-surface-2) 0 10px, var(--ev-surface) 10px 20px); }
:root .ev-post-card__media img{ width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.7s var(--ev-ease-out); }
:root .ev-post-card:hover .ev-post-card__media img{ transform: scale(1.045); }
:root .ev-post-card__body{ display: flex; flex-direction: column; gap: 0.75rem; padding: var(--ev-space-m); flex: 1; }
:root .ev-post-card__meta{ display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem 0.9rem; font-size: var(--ev-text-xs); font-weight: 600; color: var(--ev-muted); }
:root .ev-post-card__title{ font-size: var(--ev-text-xl); letter-spacing: -0.02em; line-height: 1.25; }
:root .ev-post-card__title a{ color: inherit; }
:root .ev-post-card__title a::after{ content: ""; position: absolute; inset: 0; }
:root .ev-post-card__title a:hover{ color: var(--ev-accent-text); }
:root .ev-post-card__excerpt{ font-size: var(--ev-text-sm); color: var(--ev-text); line-height: 1.6; }
:root .ev-post-card__footer{ display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; margin-top: auto; padding-top: var(--ev-space-xs); border-top: 1px solid var(--ev-border); font-size: var(--ev-text-xs); color: var(--ev-muted); font-weight: 600; }
:root .ev-post-card__badge{ position: absolute; top: 1rem; left: 1rem; z-index: 1; }
:root .ev-post-card--featured{ display: grid; grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); }
:root .ev-post-card--featured .ev-post-card__media{ aspect-ratio: auto; min-height: 100%; }
:root .ev-post-card--featured .ev-post-card__body{ padding: var(--ev-space-l); justify-content: center; }
:root .ev-post-card--featured .ev-post-card__title{ font-size: var(--ev-text-3xl); }

:root .ev-project-card{ position: relative; display: flex; flex-direction: column; gap: var(--ev-space-xs); }
:root .ev-project-card__media{ position: relative; aspect-ratio: 4 / 3; margin: 0; border-radius: var(--ev-radius-card); overflow: hidden; border: 1px solid var(--ev-border); background: repeating-linear-gradient(135deg, var(--ev-surface-2) 0 10px, var(--ev-surface) 10px 20px); }
:root .ev-project-card__media img{ width: 100%; height: 100%; object-fit: cover; display: block; transition: transform 0.8s var(--ev-ease-out); }
:root .ev-project-card__media::after{ content: ""; position: absolute; inset: 0; background: linear-gradient(to top, rgba(15, 23, 42, 0.55), transparent 55%); opacity: 0; transition: opacity 0.4s ease; }
:root .ev-project-card:hover .ev-project-card__media img{ transform: scale(1.05); }
:root .ev-project-card:hover .ev-project-card__media::after{ opacity: 1; }
:root .ev-project-card__metric{
  position: absolute; left: 1rem; bottom: 1rem; z-index: 1;
  display: inline-flex; align-items: center; gap: 0.5rem;
  padding: 0.5rem 0.875rem; border-radius: 12px;
  background-color: rgba(255, 255, 255, 0.94); color: #0f172a;
  font-size: var(--ev-text-sm); font-weight: 800;
  box-shadow: 0 10px 24px -10px rgba(15, 23, 42, 0.4);
}
:root .ev-project-card__metric i{ color: #059669; }
:root .ev-project-card__body{ display: flex; flex-direction: column; gap: 0.5rem; padding: 0 0.25rem; }
:root .ev-project-card__title{ font-size: var(--ev-text-xl); letter-spacing: -0.02em; line-height: 1.25; }
:root .ev-project-card__title a{ color: inherit; }
:root .ev-project-card__title a::after{ content: ""; position: absolute; inset: 0; }
:root .ev-project-card:hover .ev-project-card__title{ color: var(--ev-accent-text); }
:root .ev-project-card__text{ font-size: var(--ev-text-sm); color: var(--ev-text); }

/* Testimonios */
:root .ev-testimonial{ margin: 0; display: flex; flex-direction: column; gap: var(--ev-space-s); padding: var(--ev-space-m); border-radius: var(--ev-radius-card); background-color: var(--ev-surface); border: 1px solid var(--ev-border); box-shadow: var(--ev-shadow-card); }
:root .ev-testimonial__icon{ font-size: 1.75rem; color: var(--ev-color-cyan-bright); line-height: 1; }
:root .ev-testimonial__quote{ margin: 0; font-size: var(--ev-text-lg); font-weight: 500; line-height: 1.55; color: var(--ev-heading); }
:root .ev-testimonial__quote p{ margin: 0; }
:root .ev-testimonial__author{ display: flex; align-items: center; gap: 0.875rem; margin-top: auto; padding-top: var(--ev-space-s); border-top: 1px solid var(--ev-border); }
:root .ev-testimonial__avatar{ width: 3rem; height: 3rem; border-radius: 50%; object-fit: cover; flex: none; }
:root .ev-testimonial__person{ display: flex; flex-direction: column; line-height: 1.3; }
:root .ev-testimonial__name{ font-size: var(--ev-text-sm); font-weight: 800; color: var(--ev-heading); font-style: normal; }
:root .ev-testimonial__role{ font-size: var(--ev-text-xs); color: var(--ev-muted); }
:root .ev-testimonial--feature{ align-items: center; text-align: center; padding: var(--ev-space-xl) var(--ev-space-l); border-radius: var(--ev-radius-lg); }
:root .ev-testimonial--feature .ev-testimonial__quote{ font-size: var(--ev-text-2xl); font-weight: 600; letter-spacing: -0.015em; max-width: 46rem; }
:root .ev-testimonial--feature .ev-testimonial__author{ border-top: 0; padding-top: 0; }

/* Recursos */
:root .ev-resource__meta{ display: flex; flex-wrap: wrap; gap: 0.5rem 1rem; font-size: var(--ev-text-xs); font-weight: 600; color: var(--ev-muted); }

/* Resultados de búsqueda */
:root .ev-results{ display: flex; flex-direction: column; gap: var(--ev-space-s); list-style: none; margin: 0; padding: 0; }
:root .ev-result{ position: relative; display: grid; grid-template-columns: 8.5rem minmax(0, 1fr); gap: var(--ev-space-m); align-items: center; padding: var(--ev-space-s); border-radius: var(--ev-radius-card); border: 1px solid var(--ev-border); background-color: var(--ev-surface); transition: var(--ev-transition); }
:root .ev-result:hover{ border-color: var(--ev-color-border-glow); box-shadow: var(--ev-shadow-hover); transform: translateY(-2px); }
:root .ev-result__media{ aspect-ratio: 1; margin: 0; border-radius: 14px; overflow: hidden; background-color: var(--ev-surface-2); }
:root .ev-result__media img{ width: 100%; height: 100%; object-fit: cover; display: block; }
:root .ev-result__body{ display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; }
:root .ev-result__title{ font-size: var(--ev-text-xl); letter-spacing: -0.02em; line-height: 1.25; }
:root .ev-result__title a{ color: inherit; }
:root .ev-result__title a::after{ content: ""; position: absolute; inset: 0; }
:root .ev-result__excerpt{ font-size: var(--ev-text-sm); color: var(--ev-text); }
:root .ev-result__url{ font-size: var(--ev-text-xs); color: var(--ev-muted); font-weight: 500; }
:root .ev-results mark, :root .ev-mark{ background-color: rgba(0, 168, 232, 0.2); color: inherit; border-radius: 4px; padding: 0 0.15em; }

/* Filtros */
:root .ev-filters{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ev-space-xs); padding: 0.5rem; margin: 0 0 var(--ev-space-l); border-radius: 18px; background-color: var(--ev-surface); border: 1px solid var(--ev-border); }
:root .ev-filters__chips{ display: flex; flex-wrap: wrap; gap: 0.375rem; list-style: none; margin: 0; padding: 0; }
:root .ev-chip{
  display: inline-flex; align-items: center; gap: 0.4rem;
  padding: 0.6rem 1rem; border-radius: var(--ev-radius-pill);
  border: 1px solid transparent; background: transparent; color: var(--ev-text);
  font-family: var(--ev-font-main); font-size: var(--ev-text-sm); font-weight: 600; line-height: 1.2;
  white-space: nowrap; cursor: pointer; transition: var(--ev-transition);
}
:root .ev-chip:hover{ background-color: var(--ev-surface-2); color: var(--ev-heading); }
:root .ev-chip.is-active, :root .ev-chip[aria-pressed="true"]{ background-color: var(--ev-heading); color: var(--ev-bg); }
:root .ev-chip__count{ font-size: 0.75em; opacity: 0.7; font-variant-numeric: tabular-nums; }

:root .ev-search{ position: relative; display: flex; align-items: center; flex: 1 1 15rem; max-width: 22rem; margin: 0; }
:root .ev-search__icon{ position: absolute; left: 1rem; color: var(--ev-muted); pointer-events: none; font-size: 0.9rem; }
:root .ev-search__input{
  width: 100%; padding: 0.75rem 1rem 0.75rem 2.6rem;
  border-radius: var(--ev-radius-pill); border: 1px solid var(--ev-border);
  background-color: var(--ev-surface-2); color: var(--ev-heading);
  font-family: var(--ev-font-main); font-size: 1rem; line-height: 1.2;
  transition: var(--ev-transition);
}
:root .ev-search__input::placeholder{ color: var(--ev-muted); }
:root .ev-search__input:focus{ outline: none; border-color: var(--ev-color-primary); box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.15); background-color: var(--ev-surface); }
:root .ev-search--lg{ max-width: 40rem; width: 100%; flex: none; }
:root .ev-search--lg .ev-search__input{ padding: 1.125rem 9rem 1.125rem 3rem; font-size: 1.0625rem; background-color: var(--ev-surface); box-shadow: var(--ev-shadow-card); }
:root .ev-search--lg .ev-search__icon{ left: 1.25rem; }
:root .ev-search__btn{ position: absolute; right: 0.4rem; }

/* Paginación */
:root .ev-pagination{ display: flex; justify-content: center; margin-top: var(--ev-space-xl); }
:root .ev-pagination__list{ display: flex; flex-wrap: wrap; gap: 0.375rem; list-style: none; margin: 0; padding: 0; }
:root .ev-pagination__link{
  min-width: 2.75rem; height: 2.75rem; padding: 0 0.875rem;
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem;
  border-radius: 12px; border: 1px solid var(--ev-border);
  background-color: var(--ev-surface); color: var(--ev-heading);
  font-size: var(--ev-text-sm); font-weight: 700;
}
:root .ev-pagination__link:hover{ border-color: var(--ev-color-border-glow); color: var(--ev-accent-text); }
:root .ev-pagination__link[aria-current="page"]{ background-color: var(--ev-color-primary); border-color: var(--ev-color-primary); color: #fff; }

/* 13. ARTÍCULO (single post) ============================================== */
:root .ev-read-progress{ position: fixed; top: 0; left: 0; right: 0; z-index: 1001; height: 3px; background: linear-gradient(90deg, var(--ev-color-primary), var(--ev-color-cyan-bright)); transform-origin: 0 50%; transform: scaleX(0); pointer-events: none; }
@supports (animation-timeline: scroll()) {
  :root .ev-read-progress{ animation: ev-grow linear both; animation-timeline: scroll(root); }
}
:root .ev-cover{ margin: 0; border-radius: var(--ev-radius-lg); overflow: hidden; aspect-ratio: 21 / 9; border: 1px solid var(--ev-border); background: repeating-linear-gradient(135deg, var(--ev-surface-2) 0 10px, var(--ev-surface) 10px 20px); }
:root .ev-cover img{ width: 100%; height: 100%; object-fit: cover; display: block; }
:root .ev-aside{ position: sticky; top: calc(var(--ev-header-h) + 1.5rem); display: flex; flex-direction: column; gap: var(--ev-space-s); }
:root .ev-widget{ display: flex; flex-direction: column; gap: 0.875rem; padding: var(--ev-space-m); border-radius: var(--ev-radius-card); background-color: var(--ev-surface); border: 1px solid var(--ev-border); }
:root .ev-widget--dark{ background: radial-gradient(100% 80% at 100% 0%, rgba(2, 132, 199, 0.35), transparent 60%), linear-gradient(135deg, #0f172a, #1e293b); border-color: rgba(255, 255, 255, 0.08); }
:root .ev-widget--center{ align-items: center; text-align: center; }
:root .ev-widget--center .ev-tags{ justify-content: center; }
:root .ev-widget__title{ font-size: var(--ev-text-xs); font-weight: 800; letter-spacing: var(--ev-tracking-wide); text-transform: uppercase; color: var(--ev-muted); }
:root .ev-widget__heading{ font-size: var(--ev-text-xl); letter-spacing: -0.02em; }
:root .ev-widget__price{ font-size: var(--ev-text-3xl); font-weight: 800; letter-spacing: -0.04em; color: var(--ev-heading); line-height: 1; }
:root .ev-widget__price small{ font-size: var(--ev-text-sm); font-weight: 600; color: var(--ev-muted); letter-spacing: 0; }
:root .ev-toc__list{ display: flex; flex-direction: column; list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--ev-border); }
:root .ev-toc__link{ display: block; padding: 0.4rem 0.875rem; margin-left: -2px; border-left: 2px solid transparent; font-size: var(--ev-text-sm); font-weight: 500; color: var(--ev-text); line-height: 1.45; }
:root .ev-toc__link:hover, :root .ev-toc__link.is-active{ color: var(--ev-accent-text); border-left-color: var(--ev-color-primary); }
:root .ev-list-links{ display: flex; flex-direction: column; list-style: none; margin: 0; padding: 0; }
:root .ev-list-links__link{ display: flex; justify-content: space-between; align-items: center; padding: 0.625rem 0; border-bottom: 1px solid var(--ev-border); font-size: var(--ev-text-sm); font-weight: 600; color: var(--ev-heading); }
:root .ev-list-links__link:hover{ color: var(--ev-accent-text); }
:root .ev-share{ display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
:root .ev-share__label{ font-size: var(--ev-text-sm); font-weight: 700; color: var(--ev-heading); margin-right: 0.25rem; }
:root .ev-article-foot{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ev-space-s); padding-top: var(--ev-space-m); border-top: 1px solid var(--ev-border); }
:root .ev-author{ display: grid; grid-template-columns: auto minmax(0, 1fr); gap: var(--ev-space-m); align-items: start; padding: var(--ev-space-m); border-radius: var(--ev-radius-card); background-color: var(--ev-surface); border: 1px solid var(--ev-border); }
:root .ev-author__avatar{ width: 5rem; height: 5rem; border-radius: 50%; object-fit: cover; }
:root .ev-author__body{ display: flex; flex-direction: column; gap: 0.5rem; }
:root .ev-author__name{ font-size: var(--ev-text-xl); }
:root .ev-author__bio{ font-size: var(--ev-text-sm); color: var(--ev-text); }
:root .ev-post-nav{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ev-space-s); }
:root .ev-post-nav__link{ display: flex; flex-direction: column; gap: 0.375rem; padding: var(--ev-space-m); border-radius: var(--ev-radius-card); border: 1px solid var(--ev-border); background-color: var(--ev-surface); color: var(--ev-heading); transition: var(--ev-transition); }
:root .ev-post-nav__link:hover{ border-color: var(--ev-color-border-glow); color: var(--ev-accent-text); transform: translateY(-2px); }
:root .ev-post-nav__link--next{ align-items: flex-end; text-align: right; }
:root .ev-post-nav__label{ font-size: var(--ev-text-xs); font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ev-muted); }
:root .ev-post-nav__title{ font-size: var(--ev-text-lg); font-weight: 800; letter-spacing: -0.015em; line-height: 1.3; }

/* Media / placeholders */
:root .ev-media{ position: relative; margin: 0; overflow: hidden; border-radius: var(--ev-radius-card); border: 1px solid var(--ev-border); aspect-ratio: 16 / 10; background: repeating-linear-gradient(135deg, var(--ev-surface-2) 0 10px, var(--ev-surface) 10px 20px); }
:root .ev-media img, :root .ev-media iframe{ width: 100%; height: 100%; object-fit: cover; display: block; border: 0; }
:root .ev-media--16x9{ aspect-ratio: 16 / 9; }
:root .ev-media--4x3{ aspect-ratio: 4 / 3; }
:root .ev-media--1x1{ aspect-ratio: 1; }
:root .ev-media--portrait{ aspect-ratio: 4 / 5; }
:root .ev-media--lg{ border-radius: var(--ev-radius-lg); }
:root[data-theme="dark"] .ev-media img, :root[data-theme="dark"] .ev-cover img, :root[data-theme="dark"] .ev-post-card__media img, :root[data-theme="dark"] .ev-project-card__media img{ filter: brightness(0.88) saturate(0.95); }

/* 14. FAQ / ACORDEÓN (divs + JS · compatible con el conversor de Bricks) ==== */
:root .ev-accordion{ display: flex; flex-direction: column; gap: 0.875rem; }
:root .ev-accordion__item{ display: flex; flex-direction: column; background-color: var(--ev-surface); border: 1px solid var(--ev-border); border-radius: 16px; overflow: hidden; transition: var(--ev-transition); }
:root .ev-accordion__item.is-open{ border-color: var(--ev-color-border-glow); box-shadow: var(--ev-shadow-card); }
:root .ev-accordion__header{
  width: 100%; margin: 0; padding: 1.25rem 1.5rem;
  display: flex; flex-direction: row; align-items: center; justify-content: space-between; gap: 1rem;
  border: 0; border-radius: 0; background: transparent; box-shadow: none;
  font-family: var(--ev-font-main); font-weight: 800; font-size: var(--ev-text-base); line-height: 1.4; letter-spacing: 0; text-transform: none; color: var(--ev-heading);
  text-align: left; cursor: pointer; user-select: none; -webkit-tap-highlight-color: transparent;
}
:root .ev-accordion__header::after{
  content: ""; flex: none; width: 0.55rem; height: 0.55rem; margin-right: 0.25rem;
  border-right: 2px solid var(--ev-accent-text); border-bottom: 2px solid var(--ev-accent-text);
  transform: translateY(-25%) rotate(45deg); transition: transform 0.3s var(--ev-ease-out);
}
:root .ev-accordion__item.is-open .ev-accordion__header::after{ transform: translateY(25%) rotate(-135deg); }
:root .ev-accordion__header:hover{ color: var(--ev-accent-text); background: transparent; }
:root .ev-accordion__header:focus-visible{ outline: 2px solid var(--ev-color-cyan-bright); outline-offset: -2px; }
:root .ev-accordion__content{ display: flex; flex-direction: column; gap: 0.625rem; padding: 1rem 1.5rem 1.25rem; border-top: 1px solid var(--ev-border); color: var(--ev-text); font-size: var(--ev-text-base); line-height: 1.65; }
:root.ev-js .ev-accordion__item:not(.is-open) .ev-accordion__content{ display: none; }

/* 15. CTA ================================================================== */
:root .ev-cta{
  position: relative; overflow: hidden; text-align: center;
  background: radial-gradient(60% 80% at 50% 0%, rgba(2, 132, 199, 0.4), transparent 70%),
              linear-gradient(135deg, #0f172a 0%, #082f49 50%, #0f172a 100%);
}
:root .ev-cta__inner{ position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--ev-space-m); max-width: 54rem; margin-left: auto; margin-right: auto; }
:root .ev-cta__title{ font-size: var(--ev-text-5xl); letter-spacing: -0.04em; line-height: 1.06; }
:root .ev-cta__text{ font-size: var(--ev-text-lg); color: var(--ev-text); max-width: 42rem; line-height: 1.6; }
:root .ev-cta__actions{ display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ev-space-xs); padding-top: var(--ev-space-3xs); }
:root .ev-cta--inset{ border-radius: var(--ev-radius-lg); padding: var(--ev-space-2xl) var(--ev-space-l); }
:root .ev-cta--inset .ev-cta__title{ font-size: var(--ev-text-4xl); }

/* 16. FORMULARIOS ========================================================== */
:root .ev-form{ display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ev-space-s); margin: 0; }
:root .ev-form__full{ grid-column: 1 / -1; }
:root .ev-field{ display: flex; flex-direction: column; gap: 0.5rem; }
:root .ev-field__label{ font-size: var(--ev-text-sm); font-weight: 700; color: var(--ev-heading); }
:root .ev-field__input, :root .ev-field__select, :root .ev-field__textarea,
:root .brxe-form.ev-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
:root .brxe-form.ev-form select, :root .brxe-form.ev-form textarea{
  width: 100%; padding: 0.875rem 1rem;
  border-radius: 12px; border: 1px solid var(--ev-border-strong);
  background-color: var(--ev-surface); color: var(--ev-heading);
  font-family: var(--ev-font-main); font-size: 1rem; line-height: 1.4;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
:root .ev-field__input::placeholder, :root .ev-field__textarea::placeholder{ color: var(--ev-muted); }
:root .ev-field__input:focus, :root .ev-field__select:focus, :root .ev-field__textarea:focus,
:root .brxe-form.ev-form input:focus, :root .brxe-form.ev-form select:focus, :root .brxe-form.ev-form textarea:focus{
  outline: none; border-color: var(--ev-color-primary); box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.15);
}
:root .ev-field__textarea{ min-height: 9rem; resize: vertical; }
:root .ev-field__select{
  appearance: none; -webkit-appearance: none; padding-right: 2.75rem; cursor: pointer;
  background-image: linear-gradient(45deg, transparent 50%, var(--ev-muted) 50%), linear-gradient(135deg, var(--ev-muted) 50%, transparent 50%);
  background-position: calc(100% - 1.3rem) 55%, calc(100% - 0.95rem) 55%;
  background-size: 0.35rem 0.35rem; background-repeat: no-repeat;
}
:root .ev-check{ display: flex; align-items: flex-start; gap: 0.625rem; font-size: var(--ev-text-sm); color: var(--ev-text); line-height: 1.5; cursor: pointer; }
:root .ev-check input{ width: 1.125rem; height: 1.125rem; margin-top: 0.15rem; accent-color: var(--ev-color-primary); flex: none; }
:root .ev-form__note{ font-size: var(--ev-text-xs); color: var(--ev-muted); }
:root .ev-form__actions{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ev-space-xs); }
:root .brxe-form.ev-form .form-group label{ font-size: var(--ev-text-sm); font-weight: 700; color: var(--ev-heading); }

:root .ev-newsletter{ display: flex; flex-direction: row; flex-wrap: wrap; align-items: stretch; gap: 0.375rem; padding: 0.375rem; margin: 0; border-radius: 16px; background-color: var(--ev-surface-2); border: 1px solid var(--ev-border); transition: var(--ev-transition); }
:root .ev-newsletter:focus-within{ border-color: var(--ev-color-primary); box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.15); }
:root .ev-newsletter__input{ flex: 999 1 10rem; min-width: 0; padding: 0.75rem 0.875rem; border: 0; background: transparent; color: var(--ev-heading); font-family: var(--ev-font-main); font-size: 1rem; }
:root .ev-newsletter__input::placeholder{ color: var(--ev-muted); }
:root .ev-newsletter__input:focus{ outline: none; }
:root .ev-newsletter > .ev-btn{ flex: 1 0 auto; }
:root .ev-cta__inner .ev-newsletter{ width: 100%; max-width: 30rem; }

/* Contacto */
:root .ev-contact-list{ display: flex; flex-direction: column; gap: 0.75rem; list-style: none; margin: 0; padding: 0; }
:root .ev-contact-item{ display: flex; align-items: center; gap: 1rem; padding: 1rem; border-radius: 16px; background-color: var(--ev-surface); border: 1px solid var(--ev-border); color: var(--ev-heading); transition: var(--ev-transition); }
:root a.ev-contact-item:hover{ border-color: var(--ev-color-border-glow); color: var(--ev-heading); transform: translateX(3px); }
:root .ev-contact-item__body{ display: flex; flex-direction: column; line-height: 1.35; min-width: 0; }
:root .ev-contact-item__label{ font-size: var(--ev-text-xs); color: var(--ev-muted); font-weight: 600; }
:root .ev-contact-item__value{ font-weight: 700; font-size: var(--ev-text-sm); overflow-wrap: anywhere; }

/* 17. FOOTER =============================================================== */
:root .ev-footer{ background-color: #020617; padding-top: var(--ev-space-2xl); padding-bottom: var(--ev-space-m); font-size: var(--ev-text-sm); overflow: hidden; }
:root .ev-footer__grid{ display: grid; grid-template-columns: minmax(0, 1.5fr) repeat(2, minmax(0, 0.8fr)) minmax(0, 1.3fr); gap: var(--ev-space-l); }
:root .ev-footer__brand{ display: flex; flex-direction: column; align-items: flex-start; gap: var(--ev-space-s); }
:root .ev-footer__brand .ev-logo__name{ color: #fff; }
:root .ev-footer__about{ color: var(--ev-muted); max-width: 34ch; line-height: 1.6; }
:root .ev-footer__col{ display: flex; flex-direction: column; gap: var(--ev-space-xs); }
:root .ev-footer__title{ font-size: var(--ev-text-xs); font-weight: 800; letter-spacing: var(--ev-tracking-wide); text-transform: uppercase; color: #fff; }
:root .ev-footer__list{ display: flex; flex-direction: column; gap: 0.625rem; list-style: none; margin: 0; padding: 0; }
:root .ev-footer__link{ color: var(--ev-muted); font-weight: 500; }
:root .ev-footer__link:hover{ color: #fff; }
:root .ev-footer__bottom{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ev-space-xs); margin-top: var(--ev-space-xl); padding-top: var(--ev-space-m); border-top: 1px solid var(--ev-border); font-size: var(--ev-text-xs); color: var(--ev-muted); }
:root .ev-footer__legal{ display: flex; flex-wrap: wrap; gap: 1.25rem; list-style: none; margin: 0; padding: 0; }
:root .ev-social{ display: flex; gap: 0.5rem; list-style: none; margin: 0; padding: 0; }
:root .ev-social__link{ width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: 12px; background-color: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.08); color: #cbd5e1; transition: var(--ev-transition); }
:root .ev-social__link:hover{ background-color: var(--ev-color-primary); border-color: var(--ev-color-primary); color: #fff; transform: translateY(-2px); }

/* 18. PÁGINAS DE ESTADO (404 · Gracias · Mantenimiento) =================== */
:root .ev-status{ position: relative; overflow: hidden; display: grid; place-items: center; min-height: calc(100svh - var(--ev-header-h)); padding: var(--ev-space-2xl) 0; text-align: center; background: radial-gradient(50% 50% at 50% 30%, rgba(0, 168, 232, 0.12), transparent 70%), var(--ev-bg); }
:root .ev-status--full{ min-height: 100svh; }
:root .ev-status--dark{ background: radial-gradient(60% 60% at 50% 20%, rgba(2, 132, 199, 0.35), transparent 70%), linear-gradient(160deg, #0f172a, #020617); }
:root .ev-status__inner{ position: relative; display: flex; flex-direction: column; align-items: center; gap: var(--ev-space-s); max-width: 44rem; margin-left: auto; margin-right: auto; }
:root .ev-status__code{
  font-size: clamp(6.5rem, 3rem + 15vw, 15rem); font-weight: 800; letter-spacing: -0.07em; line-height: 0.82;
  background: linear-gradient(180deg, var(--ev-color-primary), var(--ev-color-cyan-bright) 60%, transparent 120%);
  -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; color: transparent;
}
:root .ev-status__icon{ width: 5rem; height: 5rem; display: grid; place-items: center; border-radius: 26px; font-size: 2rem; background-color: var(--ev-tint-emerald); color: var(--ev-emerald); box-shadow: 0 0 0 10px color-mix(in srgb, var(--ev-emerald) 8%, transparent); }
:root .ev-status__title{ font-size: var(--ev-text-4xl); letter-spacing: -0.035em; }
:root .ev-status__text{ font-size: var(--ev-text-lg); color: var(--ev-text); max-width: 36rem; line-height: 1.6; }
:root .ev-status__actions{ display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ev-space-xs); }
:root .ev-status__wide{ width: 100%; max-width: 64rem; margin-top: var(--ev-space-l); text-align: left; }
:root .ev-progress{ width: 100%; max-width: 26rem; height: 0.5rem; border-radius: var(--ev-radius-pill); background-color: var(--ev-surface-2); overflow: hidden; }
:root .ev-progress__bar{ position: relative; height: 100%; width: 72%; border-radius: inherit; background: linear-gradient(90deg, var(--ev-color-primary), var(--ev-color-cyan-bright)); overflow: hidden; }
:root .ev-progress__bar::after{ content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.55), transparent); transform: translateX(-100%); animation: ev-sweep 2.2s ease-in-out infinite; }

/* 19. UTILIDADES =========================================================== */
:root .ev-visually-hidden{ position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
:root .ev-text-center{ text-align: center; }
:root .ev-mx-auto{ margin-left: auto; margin-right: auto; }
:root .ev-full{ width: 100%; }
:root .ev-mt-m{ margin-top: var(--ev-space-m); }
:root .ev-mt-l{ margin-top: var(--ev-space-xl); }
:root .ev-show-mobile{ display: none; }
:root .ev-divider{ height: 1px; border: 0; margin: 0; background-color: var(--ev-border); }

/* 20. ANIMACIONES ========================================================== */
@keyframes ev-pulse { 0% { box-shadow: 0 0 0 0 rgba(14, 165, 233, 0.55); } 70% { box-shadow: 0 0 0 8px rgba(14, 165, 233, 0); } 100% { box-shadow: 0 0 0 0 rgba(14, 165, 233, 0); } }
@keyframes ev-float { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-10px); } }
@keyframes ev-shimmer { to { background-position: 200% center; } }
@keyframes ev-grow { to { transform: scaleX(1); } }
@keyframes ev-sweep { to { transform: translateX(100%); } }
@keyframes ev-fade-up { from { opacity: 0; translate: 0 26px; } to { opacity: 1; translate: 0 0; } }
@keyframes ev-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes ev-scale-in { from { opacity: 0; scale: 0.94; } to { opacity: 1; scale: 1; } }

:root .ev-float{ animation: ev-float 6s ease-in-out infinite; }
:root .ev-float--delay{ animation-delay: -3s; }

/* Reveal al hacer scroll (requiere ev-framework.js; sin JS el contenido se ve normal) */
:root.ev-js .ev-reveal:not(.is-visible), :root.ev-js .ev-stagger:not(.is-visible) > *{ opacity: 0; }
:root.ev-js .ev-reveal.is-visible{ animation: ev-fade-up 0.9s var(--ev-ease-out) backwards; animation-delay: var(--ev-delay, 0s); }
:root.ev-js .ev-reveal--scale.is-visible{ animation-name: ev-scale-in; }
:root.ev-js .ev-reveal--fade.is-visible{ animation-name: ev-fade-in; }
:root .ev-reveal--d1{ --ev-delay: 0.08s; }
:root .ev-reveal--d2{ --ev-delay: 0.16s; }
:root .ev-reveal--d3{ --ev-delay: 0.24s; }
:root .ev-reveal--d4{ --ev-delay: 0.32s; }
:root.ev-js .ev-stagger.is-visible > *{ animation: ev-fade-up 0.8s var(--ev-ease-out) backwards; }
:root.ev-js .ev-stagger.is-visible > *:nth-child(2){ animation-delay: 0.08s; }
:root.ev-js .ev-stagger.is-visible > *:nth-child(3){ animation-delay: 0.16s; }
:root.ev-js .ev-stagger.is-visible > *:nth-child(4){ animation-delay: 0.24s; }
:root.ev-js .ev-stagger.is-visible > *:nth-child(5){ animation-delay: 0.32s; }
:root.ev-js .ev-stagger.is-visible > *:nth-child(6){ animation-delay: 0.4s; }
:root.ev-js .ev-stagger.is-visible > *:nth-child(n+7){ animation-delay: 0.48s; }

@media (prefers-reduced-motion: reduce) {
  html{ scroll-behavior: auto; }
  *, *::before, *::after{ animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; }
  :root.ev-js .ev-reveal:not(.is-visible), :root.ev-js .ev-stagger:not(.is-visible) > *{ opacity: 1; }
}

/* 20b. PROYECTOS · un solo JetEngine Listing Grid con clase ev-cases · v1.4
   1.er ítem (el más reciente) = destacado a ancho completo · 2.º y 3.º = compactos en 2 columnas · 4+ ocultos */
:root .ev-cases, :root .ev-cases .jet-listing-grid__items{ display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--ev-space-m); margin: 0 !important; }
:root .ev-cases:has(.jet-listing-grid__items){ display: block !important; }
:root .ev-cases .jet-listing-grid__item{ max-width: none !important; width: auto !important; flex: none !important; padding: 0 !important; margin: 0 !important; display: flex; }
:root .ev-cases .jet-listing-grid__item > *{ flex: 1 1 auto; min-width: 0; }
:root :is(.ev-cases > :first-child, .ev-cases .jet-listing-grid__items > :first-child){ grid-column: 1 / -1; }
:root :is(.ev-cases > :nth-child(n+4), .ev-cases .jet-listing-grid__items > :nth-child(n+4)){ display: none !important; }
:root .ev-cases .ev-case{ height: 100%; }
:root .ev-case__title a{ color: inherit; }
:root .ev-cases .ev-case__title a::after{ content: ""; position: absolute; inset: 0; border-radius: inherit; }
:root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact):is(.ev-case), :root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact) .ev-case{ gap: var(--ev-space-s); padding: var(--ev-space-m); }
:root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact) .ev-case__head{ flex-direction: column; align-items: flex-start; justify-content: flex-start; gap: 0.625rem; padding-bottom: var(--ev-space-s); }
:root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact) .ev-case__head > .ev-pill{ order: -1; }
:root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact) .ev-case__title{ font-size: var(--ev-text-lg); line-height: 1.3; letter-spacing: -0.015em; }
:root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact) .ev-case__grid{ grid-template-columns: minmax(0, 1fr); gap: 0.5rem; }
:root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact) .ev-case__box{ gap: 0.375rem; padding: 0.75rem 0.875rem; border-radius: 12px; }
:root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact) .ev-case__box-head{ gap: 0.5rem; }
:root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact) .ev-case__box-title{ font-size: var(--ev-text-sm); }
:root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact) .ev-card__icon--sm{ width: 1.75rem; height: 1.75rem; border-radius: 8px; font-size: 0.75rem; box-shadow: none; }
:root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact) .ev-case__box .ev-card__text{ font-size: var(--ev-text-xs); line-height: 1.55; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 3; overflow: hidden; }
:root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact) .ev-cluster{ gap: 0.375rem; }
:root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact) .ev-tag{ padding: 0.2rem 0.5rem; font-size: 0.6875rem; }
:root :is(.ev-cases > :nth-child(n+2), .ev-cases .jet-listing-grid__items > :nth-child(n+2), .ev-case--compact) .ev-case__foot{ margin-top: auto; justify-content: flex-start; padding-top: var(--ev-space-xs); }
:root .ev-section-actions{ display: flex; flex-wrap: wrap; justify-content: center; gap: var(--ev-space-xs); margin-top: var(--ev-space-l); }
@media (max-width: 991px) {
  :root .ev-cases, :root .ev-cases .jet-listing-grid__items{ grid-template-columns: minmax(0, 1fr); }
}

/* ev-grid--fill (con ev-grid--3): escritorio 2 en la primera fila y luego 1, 2 o 3 según contenido.
   Tablet 2 columnas · móvil 1 columna. Funciona con HTML estático y con JetEngine Listing Grid. */
:root .ev-grid--fill > *{ min-width: 0; }
:root .ev-grid--fill:has(.jet-listing-grid__items){ display: block !important; }
:root .ev-grid--fill:has(.jet-listing-grid__items) > *{ width: 100%; max-width: none; flex: none; }
:root .ev-grid--fill .jet-listing-grid{ width: 100%; min-width: 0; }
:root .ev-grid--fill .jet-listing-grid__items{ display: grid !important; grid-template-columns: minmax(0, 1fr); gap: var(--ev-space-m); margin: 0 !important; width: 100% !important; }
:root .ev-grid--fill .jet-listing-grid__item{ max-width: none !important; width: auto !important; flex: none !important; padding: 0 !important; margin: 0 !important; display: flex; min-width: 0; }
:root .ev-grid--fill .jet-listing-grid__item > *{ flex: 1 1 auto; min-width: 0; max-width: 100%; }
@media (min-width: 768px) and (max-width: 991px) {
  :root .ev-grid--fill .jet-listing-grid__items{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 992px) {
  :root .ev-grid--fill, :root .ev-grid--fill .jet-listing-grid__items{ display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: var(--ev-space-m); margin: 0; }
  :root .ev-grid--fill > *, :root .ev-grid--fill .jet-listing-grid__items > *{ grid-column: span 2; }
  :root .ev-grid--fill > :nth-child(-n+2), :root .ev-grid--fill .jet-listing-grid__items > :nth-child(-n+2){ grid-column: span 3; }
  :root .ev-grid--fill > :nth-child(3n):nth-last-child(2),
  :root .ev-grid--fill > :nth-child(3n):nth-last-child(2) + *,
  :root .ev-grid--fill .jet-listing-grid__items > :nth-child(3n):nth-last-child(2),
  :root .ev-grid--fill .jet-listing-grid__items > :nth-child(3n):nth-last-child(2) + *{ grid-column: span 3; }
  :root .ev-grid--fill > :nth-child(3n):last-child, :root .ev-grid--fill > :only-child,
  :root .ev-grid--fill .jet-listing-grid__items > :nth-child(3n):last-child,
  :root .ev-grid--fill .jet-listing-grid__items > :only-child{ grid-column: 1 / -1; }
  :root .ev-grid--fill:has(.jet-listing-grid__items) > *{ grid-column: auto; }
}
:root .ev-cases .jet-listing-grid__item, :root .ev-cases > *{ min-width: 0; }

/* Móvil/tablet: sin desborde horizontal y app bar siempre fija y visible */
@media (max-width: 991px) {
  html, body{ overflow-x: clip !important; max-width: 100%; }
  :root :is(.ev-card, .ev-card__footer, .ev-card__title, .ev-card__text){ min-width: 0; overflow-wrap: anywhere; }
  :is(#brx-footer, body) .ev-appbar{ opacity: 1 !important; visibility: visible !important; translate: none !important; animation: none !important; transition: none !important; -webkit-backface-visibility: hidden; backface-visibility: hidden; }
}

/* 21. RESPONSIVE =========================================================== */
@media (max-width: 1199px) {
  :root .ev-header__cta{ display: none; }
  :root .ev-steps{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}


/* Tablet ≤ 991px — navegación tipo app */
@media (max-width: 991px) {
  :root{ --ev-header-h: 64px; }
  :root .ev-nav{ display: none; }
  :root .ev-logo__mark{ width: 2.25rem; height: 2.25rem; font-size: 0.95rem; border-radius: 11px; }
  :root .ev-icon-btn{ width: 2.625rem; height: 2.625rem; }
  :is(#brx-footer, body) .ev-appbar{
    display: block !important; position: fixed !important; top: auto !important; left: 0 !important; right: 0 !important; bottom: 0 !important;
    width: 100% !important; margin: 0 !important; z-index: 1000 !important; transform: none !important;
    padding: 0.375rem 0.5rem calc(0.375rem + env(safe-area-inset-bottom));
    background-color: var(--ev-header-bg);
    -webkit-backdrop-filter: saturate(1.6) blur(16px);
    backdrop-filter: saturate(1.6) blur(16px);
    border-top: 1px solid var(--ev-border);
    box-shadow: 0 -12px 30px -16px rgba(15, 23, 42, 0.2);
  }
  :root .ev-footer{ padding-bottom: calc(var(--ev-space-m) + var(--ev-appbar-h) + env(safe-area-inset-bottom)); }
  /* Si la app bar quedó dentro del header: liberar ancestros que atrapan position:fixed */
  #brx-header:has(.ev-appbar), :root .ev-header:has(.ev-appbar){ transform: none !important; filter: none !important; will-change: auto !important; contain: none !important; }
  :root .ev-header:has(.ev-appbar){ -webkit-backdrop-filter: none; backdrop-filter: none; background-color: var(--ev-bg); }

  /* Carrusel horizontal tipo app (añadir ev-grid--rail a una grilla) */
  :root .ev-grid--rail{
    display: flex; overflow-x: auto; overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory; scroll-padding-inline: var(--ev-gutter);
    gap: var(--ev-space-xs);
    margin-left: calc(var(--ev-gutter) * -1); margin-right: calc(var(--ev-gutter) * -1);
    padding: 0.25rem var(--ev-gutter) 1.25rem;
    scrollbar-width: none;
  }
  :root .ev-grid--rail::-webkit-scrollbar{ display: none; }
  :root .ev-grid--rail > *{ flex: 0 0 46%; scroll-snap-align: start; }
  :root .ev-hero__grid, :root .ev-page-hero__grid, :root .ev-split, :root .ev-layout, :root .ev-layout--left{ grid-template-columns: minmax(0, 1fr); }
  :root .ev-split--reverse > :first-child{ order: 0; }
  :root .ev-hero__visual{ max-width: 34rem; width: 100%; margin: var(--ev-space-s) auto 0; }
  :root .ev-grid--3, :root .ev-grid--4{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :root .ev-aside{ position: static; }
  :root .ev-case__grid{ grid-template-columns: minmax(0, 1fr); }
  :root .ev-footer__grid{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :root .ev-footer__brand{ grid-column: 1 / -1; }
  :root .ev-post-card--featured{ grid-template-columns: minmax(0, 1fr); }
  :root .ev-post-card--featured .ev-post-card__media{ aspect-ratio: 16 / 9; min-height: 0; }
  :root .ev-stats{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :root .ev-facts{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :root .ev-facts__item{ border-bottom: 1px solid var(--ev-border); }
  :root .ev-facts__item:nth-child(2n){ border-right: 0; }
  :root .ev-facts__item:nth-last-child(-n+2){ border-bottom: 0; }
  :root .ev-status{ min-height: calc(100svh - var(--ev-header-h) - var(--ev-appbar-h)); }
  :root .ev-status--full{ min-height: 100svh; }
}

/* Móvil ≤ 767px — experiencia app */
@media (max-width: 767px) {
  :root{ --ev-radius-card: 18px; --ev-radius-lg: 24px; }
  :root .ev-show-mobile{ display: initial; }
  :root .ev-hide-mobile{ display: none; }
  :root .ev-header{ border-bottom-color: transparent; }
  :root .ev-header--scrolled{ border-bottom-color: var(--ev-border); }
  :root .ev-logo__tagline{ display: none; }
  :root .ev-grid--2, :root .ev-grid--3, :root .ev-grid--4, :root .ev-compare, :root .ev-form, :root .ev-post-nav{ grid-template-columns: minmax(0, 1fr); }
  :root .ev-compare__vs{ transform: rotate(90deg); }
  :root .ev-checklist--2col{ grid-template-columns: minmax(0, 1fr); }
  :root .ev-steps{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
  :root .ev-steps--3{ grid-template-columns: minmax(0, 1fr); }
  :root .ev-section-head{ margin-bottom: var(--ev-space-l); }
  :root .ev-section-head--split{ flex-direction: column; align-items: flex-start; }
  :root .ev-hero__actions, :root .ev-page-hero__actions, :root .ev-cta__actions, :root .ev-status__actions{ width: 100%; flex-direction: column; align-items: stretch; }
  :root .ev-hero__actions .ev-btn, :root .ev-page-hero__actions .ev-btn, :root .ev-cta__actions .ev-btn, :root .ev-status__actions .ev-btn{ width: 100%; }
  :root .ev-hero__visual{ padding-top: 4.5rem; padding-bottom: 4.5rem; }
  :root .ev-kpi--top{ right: 0.25rem; }
  :root .ev-kpi--bottom{ left: 0.25rem; }
  :root .ev-case{ padding: var(--ev-space-m); }
  :root .ev-cta--inset{ padding: var(--ev-space-xl) var(--ev-space-m); }
  :root .ev-testimonial--feature{ padding: var(--ev-space-l) var(--ev-space-m); }
  :root .ev-post-nav__link--next{ align-items: flex-start; text-align: left; }

  :root .ev-grid--rail > *{ flex-basis: 84%; }

  /* Filtros: barra de chips deslizable y fija bajo el header */
  :root .ev-filters{ position: sticky; top: calc(var(--ev-header-h) + 0.5rem); z-index: 20; flex-wrap: nowrap; flex-direction: column; align-items: stretch; padding: 0.375rem; background-color: var(--ev-header-bg); -webkit-backdrop-filter: blur(14px); backdrop-filter: blur(14px); }
  :root .ev-filters__chips{ flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; }
  :root .ev-filters__chips::-webkit-scrollbar{ display: none; }
  :root .ev-search{ max-width: none; flex: 1 1 auto; }
  :root .ev-search--lg .ev-search__input{ padding-right: 1rem; }
  :root .ev-search--lg .ev-search__btn{ position: static; margin-top: 0.625rem; width: 100%; }
  :root .ev-search--lg{ flex-direction: column; }
  :root .ev-search--lg .ev-search__icon{ top: 1.2rem; }

  :root .ev-result{ grid-template-columns: 5.5rem minmax(0, 1fr); gap: var(--ev-space-s); align-items: start; }
  :root .ev-author{ grid-template-columns: minmax(0, 1fr); }
  :root .ev-cover{ aspect-ratio: 16 / 10; }
}

@media (max-width: 478px) {
  :root .ev-tabs__list{ display: flex; width: 100%; }
  :root .ev-tabs__tab{ flex: 1 1 0; white-space: normal; text-align: center; padding: 0.7rem 0.625rem; }
  :root .ev-footer__grid{ grid-template-columns: minmax(0, 1fr); }
  :root .ev-hero-grid{ gap: 0.75rem; }
  :root .ev-hero-grid .ev-card{ padding: 1rem; }
  :root .ev-steps{ grid-template-columns: minmax(0, 1fr); }
  :root .ev-stat{ padding: var(--ev-space-s); }
}

/* 22. COMPATIBILIDAD BRICKS ================================================
   El conversor HTML → Bricks transforma <button>, <form>, <i>, <ul>/<li> en
   elementos nativos con estilos propios. Este bloque normaliza esos casos. */

/* Listas del framework sin viñetas */
:root :is(ul, ol)[class*="ev-"] { list-style: none; padding-left: 0; margin-top: 0; margin-bottom: 0; }
:root :is(ul, ol)[class*="ev-"] > li, :root li[class*="ev-"] { list-style: none; }
:root :is(ul, ol)[class*="ev-"] > li::marker, :root li[class*="ev-"]::marker { content: none; }

/* Secciones: sin padding lateral de Theme Styles */
:root section:is(.ev-section, .ev-page-hero, .ev-status, .ev-hero) { padding-left: 0; padding-right: 0; }

/* Botones convertidos en elemento Button de Bricks */
:root :is(.ev-btn, .ev-chip, .ev-tabs__tab, .ev-icon-btn, .ev-accordion__header) { text-transform: none; letter-spacing: normal; text-decoration: none; min-height: 0; }

/* Contenedores de íconos: siempre centrados (icon font o SVG) */
:root :is(.ev-card__icon, .ev-kpi__icon, .ev-status__icon, .ev-compare__vs, .ev-appbar__icon, .ev-social__link, .ev-icon-btn, .ev-clients__icon, .ev-model__icon) { display: grid; place-items: center; place-content: center; text-align: center; line-height: 1; padding: 0; }
:root .ev-icon-btn { display: inline-grid; }
:root :is(.ev-card__icon, .ev-kpi__icon, .ev-status__icon, .ev-compare__vs, .ev-appbar__icon, .ev-social__link, .ev-icon-btn, .ev-clients__icon, .ev-model__icon) > * { margin: 0; width: auto; height: auto; line-height: 1; font-size: inherit; color: inherit; position: static; }
:root :is(.ev-card__icon, .ev-kpi__icon, .ev-status__icon, .ev-compare__vs, .ev-appbar__icon, .ev-social__link, .ev-icon-btn) svg { width: 1em; height: 1em; fill: currentColor; }

/* Íconos dibujados por CSS (no dependen del conversor ni de Font Awesome) */
:root :is(.ev-theme-toggle, .ev-icon-btn--search) { font-size: 0 !important; line-height: 0; color: var(--ev-heading); }
:root :is(.ev-theme-toggle, .ev-icon-btn--search) > * { display: none !important; }
:root :is(.ev-theme-toggle, .ev-icon-btn--search, .ev-search)::before {
  content: ""; display: block; flex: none; width: 1.125rem; height: 1.125rem; background-color: currentColor;
  -webkit-mask: var(--ev-ico) center / contain no-repeat; mask: var(--ev-ico) center / contain no-repeat;
}
:root .ev-theme-toggle { --ev-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3a6 6 0 0 0 9 9 9 9 0 1 1-9-9Z'/%3E%3C/svg%3E"); }
:root[data-theme="dark"] .ev-theme-toggle { --ev-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='4'/%3E%3Cpath d='M12 2v2M12 20v2M4.93 4.93l1.41 1.41M17.66 17.66l1.41 1.41M2 12h2M20 12h2M6.34 17.66l-1.41 1.41M19.07 4.93l-1.41 1.41'/%3E%3C/svg%3E"); }
:root :is(.ev-icon-btn--search, .ev-search) { --ev-ico: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5'/%3E%3C/svg%3E"); }
/* Íconos de búsqueda y tema: centrado absoluto (ignora el texto oculto, el padding y los spans que agrega Bricks) */
:root :is(.ev-theme-toggle, .ev-icon-btn--search){ position: relative !important; padding: 0 !important; overflow: hidden; text-indent: 0; }
:root :is(.ev-theme-toggle, .ev-icon-btn--search)::before{ position: absolute !important; inset: 0 !important; margin: auto !important; width: 1.125rem; height: 1.125rem; }
:root .ev-search::before { position: absolute; left: 1rem; top: 50%; z-index: 1; width: 1rem; height: 1rem; margin-top: -0.5rem; color: var(--ev-muted); pointer-events: none; }
:root .ev-search--lg::before { left: 1.25rem; width: 1.125rem; height: 1.125rem; margin-top: -0.5625rem; }
:root .ev-search__icon { display: none; }

/* Búsqueda: elemento Search / Filter-Search / Form de Bricks dentro de .ev-search */
:root .ev-search :is(form, .bricks-search-form, .form-group) { display: flex; align-items: center; position: relative; width: 100%; margin: 0; padding: 0; gap: 0; }
:root .ev-search :is(input[type="search"], input[type="text"]) {
  width: 100%; margin: 0; padding: 0.75rem 1rem 0.75rem 2.6rem; border-radius: var(--ev-radius-pill); border: 1px solid var(--ev-border);
  background-color: var(--ev-surface-2); color: var(--ev-heading); font-family: var(--ev-font-main); font-size: 1rem; line-height: 1.2; box-shadow: none; transition: var(--ev-transition);
}
:root .ev-search :is(input[type="search"], input[type="text"]):focus { outline: none; border-color: var(--ev-color-primary); box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.15); background-color: var(--ev-surface); }
:root .ev-search--lg :is(input[type="search"], input[type="text"]) { padding: 1.125rem 9rem 1.125rem 3rem; font-size: 1.0625rem; background-color: var(--ev-surface); box-shadow: var(--ev-shadow-card); }
:root .ev-search label:not(.ev-visually-hidden), :root .ev-search .screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
:root .ev-search:not(.ev-search--lg) :is(button, .bricks-button, .submit-button-wrapper) { display: none; }
:root .ev-search--lg .submit-button-wrapper { position: absolute; right: 0.4rem; top: 50%; transform: translateY(-50%); width: auto; margin: 0; padding: 0; }
:root .ev-search--lg :is(button[type="submit"], .bricks-button):not(.ev-btn) {
  position: absolute; right: 0.4rem; top: 50%; transform: translateY(-50%); width: auto; height: auto;
  display: inline-flex; align-items: center; justify-content: center; padding: 0.75rem 1.5rem; border: 0; border-radius: var(--ev-radius-btn);
  background-color: var(--ev-color-primary); color: #fff; font-family: var(--ev-font-main); font-weight: 700; font-size: 0.95rem; line-height: 1.2; cursor: pointer;
}
:root .ev-search--lg .submit-button-wrapper :is(button, .bricks-button) { position: static; transform: none; }

/* Formularios convertidos en elemento Form de Bricks (.form-group) */
:root :is(.ev-form, .ev-newsletter) .form-group { margin: 0; padding: 0; width: auto; min-width: 0; }
:root .ev-form .form-group { display: flex; flex-direction: column; gap: 0.5rem; }
:root .ev-form .form-group:is(:has(textarea), :has(select), :has(input[type="checkbox"]), :has(input[type="radio"]), .submit-button-wrapper) { grid-column: 1 / -1; }
:root .ev-form label { font-size: var(--ev-text-sm); font-weight: 700; color: var(--ev-heading); }
:root .ev-form :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]):not([type="button"]), select, textarea) {
  width: 100%; margin: 0; padding: 0.875rem 1rem; border-radius: 12px; border: 1px solid var(--ev-border-strong);
  background-color: var(--ev-surface); color: var(--ev-heading); font-family: var(--ev-font-main); font-size: 1rem; line-height: 1.4; box-shadow: none;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
:root .ev-form textarea { min-height: 9rem; resize: vertical; }
:root .ev-form :is(input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="hidden"]):not([type="button"]), select, textarea):focus { outline: none; border-color: var(--ev-color-primary); box-shadow: 0 0 0 4px rgba(2, 132, 199, 0.15); }
:root :is(.ev-form, .ev-newsletter) ::placeholder { color: var(--ev-muted); opacity: 1; }
:root .ev-form input[type="checkbox"], :root .ev-form input[type="radio"] { width: 1.125rem; height: 1.125rem; accent-color: var(--ev-color-primary); }
:root .ev-form .options-wrapper { display: flex; flex-direction: column; gap: 0.5rem; font-size: var(--ev-text-sm); color: var(--ev-text); }
:root .ev-form .submit-button-wrapper { flex-direction: row; justify-content: flex-end; }
:root :is(.ev-form, .ev-newsletter) :is(button[type="submit"], .bricks-button):not(.ev-btn) {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; width: auto; margin: 0;
  padding: 0.875rem 1.5rem; border: 0; border-radius: var(--ev-radius-btn);
  background-color: var(--ev-color-primary); color: #fff; font-family: var(--ev-font-main); font-weight: 700; font-size: 0.95rem; line-height: 1.2;
  text-transform: none; letter-spacing: normal; cursor: pointer; box-shadow: 0 10px 25px -5px rgba(2, 132, 199, 0.35); transition: var(--ev-transition);
}
:root :is(.ev-form, .ev-newsletter) :is(button[type="submit"], .bricks-button):not(.ev-btn):hover { background-color: var(--ev-color-primary-hover); transform: translateY(-1px); }

/* Newsletter: input + botón en una fila (se apilan solo si no caben) */
:root .ev-newsletter { flex-direction: row; flex-wrap: wrap; align-items: stretch; }
:root .ev-newsletter .form-group:not(.submit-button-wrapper) { flex: 999 1 10rem; }
:root .ev-newsletter .submit-button-wrapper { flex: 1 0 auto; display: flex; }
:root .ev-newsletter .submit-button-wrapper :is(button, .bricks-button) { width: 100%; padding: 0.75rem 1.125rem; border-radius: 12px; box-shadow: none; }
:root .ev-newsletter label:not(.ev-check) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
:root .ev-newsletter :is(input[type="email"], input[type="text"]) {
  width: 100%; height: 100%; min-width: 0; margin: 0; padding: 0.75rem 0.875rem; border: 0; border-radius: 10px;
  background: transparent; color: var(--ev-heading); font-family: var(--ev-font-main); font-size: 1rem; box-shadow: none;
}
:root .ev-newsletter :is(input[type="email"], input[type="text"]):focus { outline: none; }

/* Pasos / tarjetas: neutraliza fondos, centrados y sombras de texto heredados */
:root .ev-step { text-align: left; align-items: stretch; background: var(--ev-surface); }
:root .ev-step > * { margin: 0; }
:root :is(.ev-step__num, .ev-card__index, .ev-stat__value) { background: none; text-shadow: none; -webkit-text-fill-color: currentColor; }
:root :is(.ev-step__num, .ev-card__index, .ev-stat__value)::before { content: none; }

/* Spotlight (sigue al cursor) en una capa propia */
:root .ev-spotlight { position: relative; isolation: isolate; }
:root .ev-spotlight::before {
  content: ""; position: absolute; inset: 0; z-index: -1; border-radius: inherit; pointer-events: none;
  background: radial-gradient(360px circle at var(--ev-mx, 50%) var(--ev-my, -100%), rgba(56, 189, 248, 0.16), transparent 45%);
  opacity: 0; transition: opacity 0.3s ease;
}
:root .ev-spotlight:hover::before { opacity: 1; }

@media (max-width: 767px) {
  :root .ev-search--lg::before { top: 1.75rem; }
  :root .ev-search--lg :is(input[type="search"], input[type="text"]) { padding-right: 1rem; }
  :root .ev-search--lg :is(.submit-button-wrapper, button[type="submit"]:not(.ev-btn)) { position: static; transform: none; margin-top: 0.625rem; width: 100%; }
  :root .ev-search--lg :is(form, .bricks-search-form) { flex-direction: column; align-items: stretch; }
}

/* ==========================================================================
   1.8.0 · Etiqueta de servicio previo (Requiere · Recomendado · Se complementa con)
   Uso: <span class="ev-prereq" data-ev-prereq="requiere|recomendado|complementa">
          <span class="ev-prereq__type">Requiere</span> Servicio previo</span>
   En Bricks: Listing Item "Etiqueta de servicio previo" (relación JetEngine, campo "Tipo de vínculo").
   ========================================================================== */
:root .ev-prereq{ display: inline-flex; align-items: center; flex-wrap: wrap; gap: 0.45rem; font-size: var(--ev-text-sm, 0.875rem); line-height: 1.35; color: var(--ev-text); }
:root .ev-prereq__type{ display: inline-flex; align-items: center; padding: 0.15rem 0.55rem; border-radius: 999px; font-size: 0.72rem; font-weight: 800; letter-spacing: 0.02em; background: var(--ev-sky, #0284c7); color: #ffffff; white-space: nowrap; }
:root .ev-prereq[data-ev-prereq="recomendado"] .ev-prereq__type{ background: var(--ev-tint-sky, #f0f9ff); color: var(--ev-sky-strong, #0369a1); }
:root .ev-prereq[data-ev-prereq="complementa"] .ev-prereq__type{ background: var(--ev-tint-indigo, #eef2ff); color: var(--ev-indigo, #4f46e5); }
:root .ev-prereq__link{ color: var(--ev-heading); font-weight: 700; text-decoration: none; }
:root .ev-prereq__link:hover{ color: var(--ev-sky, #0284c7); text-decoration: underline; }
:root .ev-widget__note{ margin-top: var(--ev-space-2xs, 0.5rem); font-size: var(--ev-text-xs, 0.8rem); line-height: 1.5; color: var(--ev-muted); }

/* ==========================================================================
   23. MENÚS DE WORDPRESS (1.9.0)
   Apariencia › Menús → elemento Nav Menu de Bricks (o wp_nav_menu) con la clase ev-nav
   en el header, o dentro de .ev-footer__col / .ev-footer__bottom en el footer.
   Clases WP soportadas: menu, menu-item, menu-item-has-children, sub-menu,
   current-menu-item, current_page_item, current-menu-ancestor, current-menu-parent,
   current_page_parent, current-page-ancestor · Bricks: bricks-nav-menu, brx-submenu-toggle.
   ========================================================================== */
:root .ev-nav ul{ list-style: none; margin: 0; padding: 0; }
:root .ev-nav :is(.menu, .bricks-nav-menu, .ev-nav__list){ display: flex; flex-direction: row; align-items: center; gap: 0.125rem; }
:root .ev-nav li{ position: relative; list-style: none; margin: 0; }
:root .ev-nav li::marker{ content: none; }
:root .ev-nav :is(.menu, .bricks-nav-menu, .ev-nav__list) > li > a,
:root .ev-nav :is(.menu, .bricks-nav-menu, .ev-nav__list) > li > .brx-submenu-toggle > a{
  display: inline-flex; align-items: center; padding: 0.5rem 0.875rem; border-radius: var(--ev-radius-pill);
  font-size: var(--ev-text-sm); font-weight: 600; line-height: 1.4; color: var(--ev-text); text-decoration: none; white-space: nowrap; transition: var(--ev-transition);
}
:root .ev-nav :is(.menu, .bricks-nav-menu, .ev-nav__list) > li:hover > a,
:root .ev-nav :is(.menu, .bricks-nav-menu, .ev-nav__list) > li:hover > .brx-submenu-toggle > a{ color: var(--ev-heading); background-color: var(--ev-surface-2); }
:root .ev-nav :is(.current-menu-item, .current_page_item, .current-menu-ancestor, .current-menu-parent, .current_page_parent, .current-page-ancestor) > :is(a, .brx-submenu-toggle > a),
:root .ev-nav :is(.menu, .bricks-nav-menu, .ev-nav__list) > li > a[aria-current="page"]{ color: var(--ev-accent-text); background-color: var(--ev-tint); }
/* Flecha de submenú: CSS para wp_nav_menu y HTML del kit; Bricks usa su propio botón */
:root .ev-nav .menu-item-has-children > a::after{
  content: ""; width: 0.4em; height: 0.4em; margin-left: 0.5rem; flex: none;
  border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: translateY(-0.15em) rotate(45deg); opacity: 0.6;
}
:root .ev-nav .brx-submenu-toggle{ display: inline-flex; align-items: center; }
:root .ev-nav .brx-submenu-toggle > button{ display: inline-grid; place-items: center; width: 1.25rem; height: 1.25rem; margin: 0 0.25rem 0 -0.625rem; padding: 0; border: 0; background: none; color: var(--ev-muted); cursor: pointer; font-size: 0.75rem; }
:root .ev-nav .brx-submenu-toggle > button svg{ width: 0.75em; height: 0.75em; fill: currentColor; }
/* Desplegable */
:root .ev-nav .sub-menu{
  position: absolute; top: 100%; left: 0; z-index: 1001; min-width: 17rem; margin: 0.5rem 0 0; padding: 0.5rem;
  display: flex; flex-direction: column; gap: 2px;
  background-color: var(--ev-surface); border: 1px solid var(--ev-border); border-radius: var(--ev-radius-lg); box-shadow: var(--ev-shadow-card);
  opacity: 0; visibility: hidden; transform: translateY(6px); transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
}
:root .ev-nav .sub-menu::before{ content: ""; position: absolute; left: 0; right: 0; top: -0.75rem; height: 0.75rem; }
:root .ev-nav li:is(:hover, :focus-within, .open, .ev-open) > .sub-menu{ opacity: 1; visibility: visible; transform: none; }
:root .ev-nav .sub-menu .sub-menu{ top: -0.5rem; left: 100%; margin: 0 0 0 0.5rem; }
:root .ev-nav .sub-menu a{ display: flex; width: 100%; padding: 0.625rem 0.875rem; border-radius: 10px; font-size: var(--ev-text-sm); font-weight: 600; line-height: 1.35; color: var(--ev-text); text-decoration: none; white-space: normal; background: none; }
:root .ev-nav .sub-menu a:hover{ color: var(--ev-heading); background-color: var(--ev-surface-2); }
:root .ev-nav .sub-menu :is(.current-menu-item, .current_page_item) > a, :root .ev-nav .sub-menu a[aria-current="page"]{ color: var(--ev-accent-text); background-color: var(--ev-tint); }
/* Bricks Nav Menu: sin menú móvil propio (la app bar cubre ≤ 991 px) */
:root :is(.ev-nav, .ev-footer) :is(.bricks-mobile-menu-toggle, .bricks-mobile-menu-wrapper, .bricks-mobile-menu-overlay){ display: none !important; }
:root :is(.ev-nav, .ev-footer) .bricks-nav-menu-wrapper{ display: block !important; }
:root :is(.ev-nav, .ev-footer) .bricks-nav-menu > li{ margin: 0; }

/* Footer: menús verticales en columnas y horizontal en la franja legal */
:root .ev-footer :is(.ev-footer__col, .ev-footer__bottom) ul{ list-style: none; margin: 0; padding: 0; }
:root .ev-footer__col :is(.menu, .bricks-nav-menu){ display: flex; flex-direction: column; align-items: flex-start; gap: 0.625rem; }
:root .ev-footer__bottom :is(.menu, .bricks-nav-menu){ display: flex; flex-direction: row; flex-wrap: wrap; gap: 1.25rem; }
:root .ev-footer :is(.ev-footer__col, .ev-footer__bottom) li{ margin: 0; list-style: none; }
:root .ev-footer :is(.ev-footer__col, .ev-footer__bottom) .menu-item > a,
:root .ev-footer :is(.ev-footer__col, .ev-footer__bottom) .brx-submenu-toggle > a{ padding: 0; background: none; color: var(--ev-muted); font-weight: 500; text-decoration: none; white-space: normal; }
:root .ev-footer :is(.ev-footer__col, .ev-footer__bottom) .menu-item > a:hover{ color: #fff; }
:root .ev-footer :is(.current-menu-item, .current_page_item) > a, :root .ev-footer .menu-item > a[aria-current="page"]{ color: #fff; }
:root .ev-footer .sub-menu, :root .ev-footer .brx-submenu-toggle > button{ display: none; }

/* 30. Complementos 1.13 (plantillas Bricks) =================================== */
.admin-bar #brx-header:has(.ev-header){ top: var(--wp-admin--admin-bar--height, 32px); }
:root .ev-muted{ color: var(--ev-muted); font-size: var(--ev-text-sm); }
:root .ev-text-center.ev-muted{ margin-top: var(--ev-space-s); }
:root .ev-cluster--center{ justify-content: center; }
:root .ev-card__note{ font-size: var(--ev-text-sm); color: var(--ev-muted); padding-top: 0.75rem; border-top: 1px dashed var(--ev-border-strong); }
:root .ev-card__eyebrow{ margin: 0; }
:root .ev-badge--light{ background-color: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.18); color: #e0f2fe; }
:root .ev-btn--ghost-light{ background-color: transparent; border-color: rgba(255, 255, 255, 0.3); color: #ffffff; }
:root .ev-btn--ghost-light:hover{ background-color: rgba(255, 255, 255, 0.08); border-color: rgba(255, 255, 255, 0.6); color: #ffffff; transform: translateY(-2px); }
:root .ev-checklist--inline{ display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; }
:root .ev-price{ font-size: var(--ev-text-3xl); font-weight: 800; letter-spacing: -0.04em; line-height: 1; color: var(--ev-heading); margin: 0; }
:root .ev-widget__note{ font-size: var(--ev-text-xs); color: var(--ev-muted); line-height: 1.5; margin: 0; }
:root .ev-widget__title{ font-size: var(--ev-text-lg); font-weight: 800; color: var(--ev-heading); margin: 0; }
:root .ev-card--dark .ev-widget__title{ color: #ffffff; }
:root .ev-card--dark .ev-widget__note{ color: #cbd5e1; }
:root .ev-quote{ position: relative; margin: 0; padding: var(--ev-space-l); border-radius: var(--ev-radius-card); background-color: var(--ev-surface); border: 1px solid var(--ev-border); border-left: 4px solid var(--ev-accent-text); }
:root .ev-quote p{ font-size: var(--ev-text-2xl); font-weight: 700; letter-spacing: -0.02em; line-height: 1.3; color: var(--ev-heading); margin: 0 0 0.75rem; }
:root .ev-quote cite{ font-style: normal; font-weight: 700; font-size: var(--ev-text-sm); color: var(--ev-accent-text); }
:root .ev-toolbar{ display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--ev-space-xs); margin: 0 0 var(--ev-space-l); }
:root .ev-toolbar > .brxe-shortcode{ flex: 1 1 32rem; min-width: 0; }
:root .ev-toolbar .ev-filters{ margin: 0; }
:root .ev-toolbar > .ev-search, :root .ev-toolbar > .brxe-search{ flex: 0 1 22rem; }
:root .brxe-search.ev-search form{ display: flex; gap: 0.5rem; width: 100%; }
:root .brxe-search.ev-search input[type="search"]{ flex: 1; min-width: 0; padding: 0.75rem 1rem; border-radius: 12px; border: 1px solid var(--ev-border-strong); background-color: var(--ev-surface); color: var(--ev-heading); font: inherit; }
:root .brxe-search.ev-search button{ padding: 0.75rem 1rem; border: 0; border-radius: 12px; background-color: var(--ev-color-primary); color: #ffffff; cursor: pointer; }
:root .ev-search--lg.brxe-search input[type="search"]{ padding: 1rem 1.25rem; font-size: var(--ev-text-lg); }
:root .ev-footer__note{ font-size: var(--ev-text-xs); color: #94a3b8; margin: 0.5rem 0 0; }
:root .ev-footer__note a{ color: #e0f2fe; text-decoration: underline; }
:root .ev-badge__term{ font-weight: 700; }
:root .ev-badge__term + .ev-badge__term::before{ content: "· "; }
:root .ev-study__question{ font-style: italic; }
:root .ev-study__viz:empty{ display: none; }
:root .ev-kpi__unit{ font-size: 0.5em; font-weight: 700; letter-spacing: 0; color: var(--ev-muted); }
:root .ev-card__kpi{ margin: 0; font-size: var(--ev-text-sm); color: var(--ev-text); }
:root .ev-card__kpi strong{ display: block; font-size: var(--ev-text-2xl); font-weight: 800; letter-spacing: -0.03em; color: var(--ev-accent-text); }
:root .ev-list{ display: flex; flex-direction: column; gap: 0.5rem; margin: 0; padding: 0 0 0 1.1rem; font-size: var(--ev-text-sm); }
:root .ev-list a{ color: var(--ev-accent-text); font-weight: 600; }
:root .ev-meta__note{ color: var(--ev-muted); font-size: var(--ev-text-xs); }
:root .ev-prereq__item{ font-size: var(--ev-text-xs); }
:root .ev-project-card__client{ font-size: var(--ev-text-xs); font-weight: 700; color: var(--ev-muted); margin: 0; }
:root .ev-resource__type .ev-pill{ font-size: var(--ev-text-xs); }
:root .ev-timeline__body{ display: flex; flex-direction: column; gap: 0.25rem; }
:root .ev-contact-item__value{ font-weight: 700; color: var(--ev-heading); }
:root a.ev-contact-item__value:hover{ color: var(--ev-accent-text); }
:root .ev-step__num{ display: block; margin-bottom: 0.5rem; }
:root .ev-result__url{ margin: 0; font-size: var(--ev-text-xs); color: var(--ev-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
:root .ev-result__media:has(img:not([src])), :root .ev-result__media:empty{ background: linear-gradient(135deg, var(--ev-surface-2), var(--ev-tint)); }
@media (max-width: 767px){
  :root .ev-result{ grid-template-columns: 5rem minmax(0, 1fr); }
  :root .ev-toolbar > .ev-search, :root .ev-toolbar > .brxe-search{ flex: 1 1 100%; }
}

:root .ev-kpis{ grid-template-columns: repeat(auto-fit, minmax(14rem, 1fr)); }
:root .ev-kpis .ev-kpi{ position: static; z-index: auto; display: flex; flex-direction: column; align-items: flex-start; gap: 0.5rem; padding: var(--ev-space-m); border-radius: var(--ev-radius-card); box-shadow: none; }
:root .ev-kpis .ev-kpi__value{ font-size: var(--ev-text-4xl); line-height: 1; letter-spacing: -0.04em; margin: 0; }

/* Secciones de relacionados: se ocultan si su Listing Grid viene vacío */
:is(#proyecto, #testimonios, #testimonio, #otros, #mas-proyectos, #estudios, #blog, #destacado).brxe-section:not(:has(.jet-listing-grid__item)){ display: none; }
