/* ============================================================
   ASESOR DE NEGOCIOS — Consultoría Financiera
   Sistema de diseño nativo (sin frameworks). Los colores y la
   tipografía de títulos provienen del Customizer vía variables
   CSS (ver inc/customizer-club.php → efc_customizer_css()).
   Prefijo de clases: .efc-
   ============================================================ */

/* ─── 1. TOKENS ─────────────────────────────────────────── */
:root {
  --efc-accent:       #C8F33C;
  --efc-accent-h:     #B5E132;
  --efc-dark:         #1D191D;
  --efc-header:       #181518;
  --efc-ink:          #222222;
  --efc-body:         #666666;
  --efc-soft:         #F3F3F3;
  --efc-border:       #E8E8E8;
  --efc-white:        #FFFFFF;
  --efc-ondark:       #FFFFFF;   /* títulos y texto sobre fondos oscuros */
  --efc-font-display: "Bebas Neue", "Arial Narrow", sans-serif;
  --efc-font-body:    "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;

  --efc-container:    1120px;
  --efc-section-y:    120px;
  --efc-radius:       8px;
  --efc-radius-lg:    14px;
  --efc-nav-h:        78px;
  --efc-shadow:       0 4px 24px rgba(29,25,29,.08);
  --efc-shadow-lg:    0 18px 48px rgba(29,25,29,.14);
  --efc-ease:         cubic-bezier(.22,.61,.36,1);
}

/* Alinea la paleta de las plantillas base (blog, entradas, páginas
   sueltas) con la identidad de consultoría. */
:root {
  --nx-primary:      #1D191D;
  --nx-primary-h:    #000000;
  --nx-primary-bg:   #F3F3F3;
  --nx-ink:          #222222;
  --nx-medium:       #444444;
  --nx-muted:        #666666;
  --nx-xmuted:       #999999;
  --nx-bg-gray:      #F3F3F3;
  --nx-border:       #E8E8E8;
  --nx-border-light: #F1F1F1;
  --nx-white:        #FFFFFF;
  --nx-radius-sm:    8px;
  --nx-radius-md:    10px;
  --nx-radius-lg:    14px;
  --nx-nav-h:        78px;
}

/* ─── 2. BASE ───────────────────────────────────────────── */
body.efc-mode {
  font-family: var(--efc-font-body);
  color: var(--efc-body);
  background: var(--efc-white);
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
  overflow-x: hidden;
}

:where(body.efc-mode) :where(h1, h2, h3, h4) {
  font-family: var(--efc-font-display);
  color: var(--efc-ink);
  font-weight: 400;
  letter-spacing: 1px;
  line-height: 1.08;
  text-transform: uppercase;
  margin: 0 0 18px;
}

body.efc-mode p { margin: 0 0 18px; }
body.efc-mode img { max-width: 100%; height: auto; display: block; }
body.efc-mode a { color: inherit; text-decoration: none; }
body.efc-mode ul { list-style: none; margin: 0; padding: 0; }
body.efc-mode strong { color: var(--efc-ink); font-weight: 700; }
body.efc-mode ::selection { background: var(--efc-accent); color: var(--efc-dark); }

/* Páginas sin hero propio: deja aire bajo el header fijo. */
body.efc-mode.efc-flat { padding-top: var(--efc-nav-h); }

.efc-icon { width: 20px; height: 20px; flex: none; }

/* ─── 3. LAYOUT ─────────────────────────────────────────── */
.efc-container {
  width: 100%;
  max-width: var(--efc-container);
  margin: 0 auto;
  padding: 0 24px;
}
.efc-container--mid    { max-width: 900px; }
.efc-container--narrow { max-width: 760px; }

.efc-section          { padding: var(--efc-section-y) 0; position: relative; }
.efc-section--white   { background: var(--efc-white); }
.efc-section--soft    { background: var(--efc-soft); }

.efc-head             { margin-bottom: 56px; max-width: 720px; }
.efc-head--center     { margin-left: auto; margin-right: auto; text-align: center; }
.efc-head--left       { margin-right: auto; text-align: left; }
.efc-head .efc-lead   { margin-bottom: 0; }

.efc-h2 {
  font-size: clamp(34px, 5vw, 52px);
  margin-bottom: 18px;
}
.efc-lead {
  font-size: 17px;
  line-height: 1.8;
  color: var(--efc-body);
}

.efc-eyebrow {
  display: inline-block;
  font-family: var(--efc-font-body);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 2.4px;
  text-transform: uppercase;
  color: var(--efc-body);
  margin-bottom: 16px;
}
.efc-eyebrow--accent { color: var(--efc-accent); }

.efc-center-cta { text-align: center; margin-top: 52px; }

/* ─── 4. BOTONES ────────────────────────────────────────── */
.efc-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  font-family: var(--efc-font-body);
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .3px;
  padding: 15px 32px;
  border-radius: var(--efc-radius);
  border: 2px solid transparent;
  cursor: pointer;
  transition: all .25s var(--efc-ease);
  text-align: center;
  line-height: 1.2;
}
.efc-btn--primary {
  background: var(--efc-accent);
  color: var(--efc-dark);
  border-color: var(--efc-accent);
}
.efc-btn--primary:hover {
  background: var(--efc-accent-h);
  border-color: var(--efc-accent-h);
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(200,243,60,.32);
}
.efc-btn--ghost {
  background: transparent;
  color: var(--efc-white);
  border-color: rgba(255,255,255,.34);
}
.efc-btn--ghost:hover {
  background: rgba(255,255,255,.1);
  border-color: var(--efc-white);
}
.efc-section--white .efc-btn--ghost,
.efc-section--soft .efc-btn--ghost {
  color: var(--efc-ink);
  border-color: var(--efc-border);
}
.efc-btn--sm    { padding: 11px 22px; font-size: 13px; }
.efc-btn--hero  { padding: 17px 40px; font-size: 15px; }
.efc-btn--block { width: 100%; }

/* ─── 5. HEADER / NAVEGACIÓN ────────────────────────────── */
.efc-nav {
  position: fixed;
  inset: 0 0 auto 0;
  z-index: 900;
  height: var(--efc-nav-h);
  display: flex;
  align-items: center;
  background: var(--efc-header);
  transition: box-shadow .3s var(--efc-ease), height .3s var(--efc-ease);
}
.efc-nav.is-scrolled {
  height: 68px;
  box-shadow: 0 6px 26px rgba(0,0,0,.28);
}
.admin-bar .efc-nav { top: 32px; }

.efc-nav-inner {
  display: flex;
  align-items: center;
  gap: 32px;
  width: 100%;
}

.efc-brand { display: inline-flex; align-items: center; gap: 11px; flex: none; }
.efc-brand-logo { max-height: 46px; width: auto; transition: max-height .3s var(--efc-ease); }
.efc-nav.is-scrolled .efc-brand-logo { max-height: 40px; }
.efc-brand-mark { width: 28px; height: 28px; color: var(--efc-accent); }
.efc-brand-name {
  font-family: var(--efc-font-display);
  font-size: 22px;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--efc-white);
}
.efc-brand--dark .efc-brand-name { color: var(--efc-ink); }
.efc-brand--dark .efc-brand-mark { color: var(--efc-ink); }

.efc-nav-links {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-left: auto;
}
.efc-nav-links li { position: relative; }
.efc-nav-links a {
  font-size: 13.5px;
  font-weight: 600;
  letter-spacing: .4px;
  color: rgba(255,255,255,.82);
  transition: color .2s;
  white-space: nowrap;
}
.efc-nav-links a:hover,
.efc-nav-links .current-menu-item > a { color: var(--efc-accent); }

.efc-nav-cta { flex: none; }
.efc-nav-links + .efc-nav-cta { margin-left: 0; }
.efc-nav-inner > .efc-nav-cta:not(.efc-nav-links + *) { margin-left: auto; }

.efc-nav-burger {
  display: none;
  background: none;
  border: 0;
  color: var(--efc-white);
  padding: 6px;
  margin-left: auto;
  cursor: pointer;
}
.efc-nav-burger .efc-icon { width: 26px; height: 26px; }

.efc-mobile-menu {
  position: fixed;
  inset: var(--efc-nav-h) 0 auto 0;
  background: var(--efc-header);
  padding: 20px 24px 30px;
  display: none;
  flex-direction: column;
  gap: 4px;
  border-top: 1px solid rgba(255,255,255,.1);
  box-shadow: 0 22px 40px rgba(0,0,0,.34);
  max-height: calc(100vh - var(--efc-nav-h));
  overflow-y: auto;
}
.admin-bar .efc-mobile-menu { top: calc(var(--efc-nav-h) + 32px); }
.efc-mobile-menu.is-open { display: flex; }
.efc-mobile-menu ul { display: flex; flex-direction: column; }
.efc-mobile-menu a {
  display: block;
  padding: 13px 0;
  font-size: 15px;
  font-weight: 600;
  color: rgba(255,255,255,.9);
  border-bottom: 1px solid rgba(255,255,255,.08);
}
.efc-mobile-menu a:hover { color: var(--efc-accent); }
.efc-mobile-cta { margin-top: 18px; }

/* Salvaguarda: todo título dentro de una zona oscura usa el color "sobre oscuro",
   aunque se añadan secciones nuevas más adelante. */
.efc-hero :where(h1, h2, h3, h4),
.efc-page-hero :where(h1, h2, h3, h4),
.efc-cta-final :where(h1, h2, h3, h4),
.efc-contact-info :where(h1, h2, h3, h4),
.efc-step--dark :where(h1, h2, h3, h4) { color: var(--efc-ondark); }
.efc-cta-final .efc-cta-subtitle { color: var(--efc-accent); }

/* ── Submenús del header: desplegable, no apilados ── */
.efc-nav-links li { position: relative; }
.efc-nav-links .menu-item-has-children > a::after {
  content: "";
  display: inline-block;
  width: 6px;
  height: 6px;
  margin-left: 7px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-2px) rotate(45deg);
  transition: transform .25s var(--efc-ease);
}
.efc-nav-links .menu-item-has-children:hover > a::after { transform: translateY(1px) rotate(225deg); }

.efc-nav-links .sub-menu {
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translate(-50%, 8px);
  min-width: 250px;
  padding: 10px 0;
  margin-top: 14px;
  background: var(--efc-header);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: var(--efc-radius);
  box-shadow: 0 18px 40px rgba(0,0,0,.4);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .22s var(--efc-ease), transform .22s var(--efc-ease);
  z-index: 20;
  display: block;
}
/* Puente invisible para que el ratón pueda bajar sin que se cierre. */
.efc-nav-links .menu-item-has-children::after {
  content: "";
  position: absolute;
  left: 0;
  top: 100%;
  width: 100%;
  height: 20px;
}
.efc-nav-links .menu-item-has-children:hover > .sub-menu,
.efc-nav-links .menu-item-has-children:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translate(-50%, 0);
}
.efc-nav-links .sub-menu li { display: block; width: 100%; }
.efc-nav-links .sub-menu a {
  display: block;
  padding: 11px 22px;
  font-size: 13.5px;
  line-height: 1.45;
  white-space: normal;
  color: rgba(255,255,255,.82);
}
.efc-nav-links .sub-menu a:hover { background: rgba(255,255,255,.07); color: var(--efc-accent); }

/* ── Submenús en el menú móvil: indentados bajo su padre ── */
.efc-mobile-menu .sub-menu { padding: 0 0 6px 16px; border-left: 2px solid rgba(255,255,255,.14); margin: 0 0 6px; }
.efc-mobile-menu .sub-menu a { font-size: 14px; opacity: .82; padding: 10px 0; border-bottom: 0; }

/* ── Submenús del footer: cuelgan de su categoría, sin amontonarse ── */
.efc-footer-col .sub-menu {
  display: grid;
  gap: 9px;
  margin: 10px 0 4px;
  padding-left: 14px;
  border-left: 2px solid var(--efc-border);
}
.efc-footer-col .sub-menu a { font-size: 13.5px; opacity: .88; }
.efc-footer-col .menu-item-has-children > a { font-weight: 600; color: var(--efc-ink); }

/* ─── 6. HERO PORTADA ───────────────────────────────────── */
.efc-hero {
  background: var(--efc-dark);
  color: var(--efc-white);
  padding: calc(var(--efc-nav-h) + 120px) 0 130px;
  position: relative;
  overflow: hidden;
}
.efc-hero::after {
  content: "";
  position: absolute;
  right: -180px;
  top: -140px;
  width: 520px;
  height: 520px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,243,60,.16), transparent 68%);
  pointer-events: none;
}
.efc-hero-inner { max-width: 780px; position: relative; z-index: 1; }
.efc-hero-title {
  font-size: clamp(46px, 7.4vw, 88px);
  color: var(--efc-ondark);
  margin-bottom: 24px;
}
.efc-hero-title em,
.efc-hero-title span { color: var(--efc-accent); font-style: normal; }
.efc-hero-sub {
  font-size: 18px;
  line-height: 1.8;
  color: rgba(255,255,255,.76);
  max-width: 620px;
  margin-bottom: 38px;
}

/* ─── 7. HERO PÁGINAS INTERIORES ────────────────────────── */
.efc-page-hero {
  background: var(--efc-dark);
  color: var(--efc-white);
  padding: calc(var(--efc-nav-h) + 96px) 0 96px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.efc-page-hero::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -260px;
  transform: translateX(-50%);
  width: 720px;
  height: 460px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,243,60,.13), transparent 70%);
  pointer-events: none;
}
.efc-page-hero-inner { max-width: 760px; margin: 0 auto; position: relative; z-index: 1; }
.efc-page-hero-title {
  font-size: clamp(40px, 6vw, 68px);
  color: var(--efc-ondark);
  margin-bottom: 20px;
}
.efc-page-hero-sub {
  font-size: 17px;
  line-height: 1.8;
  color: rgba(255,255,255,.74);
  margin-bottom: 34px;
}
.efc-page-hero-ctas { display: flex; gap: 14px; justify-content: center; flex-wrap: wrap; }

/* ─── 8. BLOQUE DIVIDIDO (texto + imagen) ───────────────── */
.efc-split {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
}
.efc-split-body > :last-child { margin-bottom: 0; }
.efc-split-media img {
  width: 100%;
  border-radius: var(--efc-radius-lg);
  object-fit: cover;
  aspect-ratio: 4 / 3;
}
.efc-split--media-first .efc-split-media { order: -1; }

.efc-why-frame { position: relative; }
.efc-why-frame::before {
  content: "";
  position: absolute;
  inset: 22px -22px -22px 22px;
  border: 2px solid var(--efc-accent);
  border-radius: var(--efc-radius-lg);
  z-index: 0;
}
.efc-why-frame img { position: relative; z-index: 1; }
.efc-why-frame--flat::before { display: none; }

/* ─── 9. ¿TE PASA ALGO DE ESTO? ─────────────────────────── */
.efc-pain-list { margin: 0 0 28px; display: grid; gap: 14px; }
.efc-pain-list li {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  font-size: 16.5px;
  font-style: italic;
  color: var(--efc-ink);
  font-weight: 500;
  line-height: 1.6;
  padding: 14px 18px;
  background: var(--efc-soft);
  border-left: 3px solid var(--efc-accent);
  border-radius: 0 var(--efc-radius) var(--efc-radius) 0;
}
.efc-section--soft .efc-pain-list li { background: var(--efc-white); }
.efc-pain-ico { color: var(--efc-ink); display: flex; margin-top: 3px; }
.efc-pain-ico .efc-icon { width: 17px; height: 17px; }

/* ─── 10. QUÉ INCLUYE (2 tarjetas) ──────────────────────── */
.efc-cards-2 {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 28px;
}
.efc-inc-card {
  background: var(--efc-white);
  border: 1px solid var(--efc-border);
  border-radius: var(--efc-radius-lg);
  padding: 42px 36px;
  transition: transform .3s var(--efc-ease), box-shadow .3s var(--efc-ease);
}
.efc-section--white .efc-inc-card { background: var(--efc-soft); border-color: transparent; }
.efc-inc-card:hover { transform: translateY(-5px); box-shadow: var(--efc-shadow-lg); }
.efc-inc-card h3 { font-size: 27px; margin-bottom: 22px; }
.efc-inc-list { display: grid; gap: 14px; }
.efc-inc-list li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  font-size: 15px;
  line-height: 1.65;
}
.efc-check-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 22px;
  height: 22px;
  flex: none;
  margin-top: 2px;
  border-radius: 50%;
  background: var(--efc-dark);
  color: var(--efc-accent);
}
.efc-check-ico .efc-icon { width: 13px; height: 13px; stroke-width: 3; }
.efc-check-ico--accent { background: var(--efc-accent); color: var(--efc-dark); }

/* ─── 11. OBJETIVOS ─────────────────────────────────────── */
.efc-goals-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 52px;
}
.efc-goals-tag {
  display: inline-block;
  font-family: var(--efc-font-display);
  font-size: 23px;
  letter-spacing: 1.4px;
  text-transform: uppercase;
  color: var(--efc-ink);
  padding-bottom: 12px;
  margin-bottom: 24px;
  border-bottom: 3px solid var(--efc-accent);
}
.efc-goals-list { display: grid; gap: 17px; }
.efc-goals-list li {
  display: flex;
  align-items: flex-start;
  gap: 13px;
  font-size: 15.5px;
  line-height: 1.7;
}

/* ─── 12. PROCESO (4 pasos) ─────────────────────────────── */
.efc-steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 22px;
}
.efc-step {
  background: var(--efc-white);
  border: 1px solid var(--efc-border);
  border-radius: var(--efc-radius-lg);
  padding: 34px 28px 30px;
  transition: transform .3s var(--efc-ease), box-shadow .3s var(--efc-ease);
}
.efc-step:hover { transform: translateY(-6px); box-shadow: var(--efc-shadow-lg); }
.efc-step-num {
  display: block;
  font-family: var(--efc-font-display);
  font-size: 46px;
  line-height: 1;
  letter-spacing: 1px;
  color: var(--efc-border);
  margin-bottom: 18px;
}
.efc-step h4 { font-size: 21px; margin-bottom: 11px; }
.efc-step p { font-size: 14.5px; line-height: 1.7; margin: 0; }

.efc-step--dark {
  background: var(--efc-dark);
  border-color: var(--efc-dark);
}
.efc-step--dark h4 { color: var(--efc-ondark); }
.efc-step--dark p  { color: rgba(255,255,255,.72); }
.efc-step--dark .efc-step-num { color: rgba(255,255,255,.28); }

.efc-step--accent {
  background: var(--efc-accent);
  border-color: var(--efc-accent);
}
.efc-step--accent h4 { color: var(--efc-dark); }
.efc-step--accent p  { color: rgba(29,25,29,.78); }
.efc-step--accent .efc-step-num { color: rgba(29,25,29,.34); }

/* ─── 13. POR QUÉ TRABAJAR CONMIGO ──────────────────────── */
.efc-why-lead {
  font-size: 19px;
  font-weight: 600;
  color: var(--efc-ink);
  line-height: 1.6;
  margin-bottom: 22px;
}
.efc-why-p { font-size: 15.5px; line-height: 1.85; }
.efc-why-bullets { display: grid; gap: 12px; margin: 0 0 30px; }
.efc-why-bullets li {
  position: relative;
  padding-left: 26px;
  font-size: 15.5px;
  line-height: 1.7;
}
.efc-why-bullets li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 10px;
  width: 11px;
  height: 11px;
  border-radius: 3px;
  background: var(--efc-accent);
}

/* ─── 14. FAQ ───────────────────────────────────────────── */
.efc-faq { display: grid; gap: 12px; }
.efc-faq-item {
  background: var(--efc-white);
  border: 1px solid var(--efc-border);
  border-radius: var(--efc-radius);
  overflow: hidden;
  transition: border-color .25s, box-shadow .25s;
}
.efc-faq-item:hover { border-color: #d4d4d4; }
.efc-faq-item.is-open { border-color: var(--efc-accent); box-shadow: var(--efc-shadow); }
.efc-faq-q {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  background: none;
  border: 0;
  padding: 22px 26px;
  cursor: pointer;
  text-align: left;
  font-family: var(--efc-font-body);
  font-size: 16px;
  font-weight: 600;
  color: var(--efc-ink);
  line-height: 1.5;
}
.efc-faq-ico {
  flex: none;
  color: var(--efc-ink);
  transition: transform .3s var(--efc-ease), color .25s;
}
.efc-faq-item.is-open .efc-faq-ico { transform: rotate(45deg); color: var(--efc-accent); }
.efc-faq-a {
  max-height: 0;
  overflow: hidden;
  transition: max-height .35s var(--efc-ease);
}
.efc-faq-a p {
  padding: 0 26px 24px;
  margin: 0;
  font-size: 15px;
  line-height: 1.8;
}

/* ─── 15. CTA FINAL / REGALO ────────────────────────────── */
.efc-cta-final {
  background: var(--efc-dark);
  color: var(--efc-white);
  text-align: center;
  position: relative;
  overflow: hidden;
}
.efc-cta-final::after {
  content: "";
  position: absolute;
  left: 50%;
  top: -220px;
  transform: translateX(-50%);
  width: 760px;
  height: 480px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,243,60,.14), transparent 70%);
  pointer-events: none;
}
.efc-cta-inner { position: relative; z-index: 1; }
.efc-cta-title {
  font-size: clamp(34px, 5vw, 54px);
  color: var(--efc-ondark);
  margin-bottom: 10px;
}
.efc-cta-subtitle {
  font-size: clamp(26px, 3.6vw, 38px);
  color: var(--efc-accent);
  margin-bottom: 20px;
}
.efc-cta-text {
  font-size: 16.5px;
  line-height: 1.8;
  color: rgba(255,255,255,.76);
  max-width: 620px;
  margin: 0 auto 36px;
}

.efc-gift-form {
  max-width: 560px;
  margin-inline: auto;
  text-align: left;
}
/* La casilla y el aviso se centran con el resto del bloque. */
.efc-gift-form .efc-check { justify-content: center; margin-bottom: 0; }
.efc-gift-form .efc-form-msg { text-align: center; }
.efc-gift-fields {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 14px;
  margin-bottom: 16px;
}
.efc-gift-form input[type="text"],
.efc-gift-form input[type="email"] {
  width: 100%;
  padding: 15px 18px;
  font-family: var(--efc-font-body);
  font-size: 15px;
  color: var(--efc-white);
  background: rgba(255,255,255,.07);
  border: 1px solid rgba(255,255,255,.16);
  border-radius: var(--efc-radius);
  transition: border-color .2s, background .2s;
}
.efc-gift-form input::placeholder { color: rgba(255,255,255,.44); }
.efc-gift-form input:focus {
  outline: none;
  border-color: var(--efc-accent);
  background: rgba(255,255,255,.1);
}
.efc-gift-form .efc-btn { width: 100%; margin-top: 18px; }

/* ─── 16. FORMULARIOS ───────────────────────────────────── */
.efc-form {
  background: var(--efc-white);
  border: 1px solid var(--efc-border);
  border-radius: var(--efc-radius-lg);
  padding: 38px 34px;
  box-shadow: var(--efc-shadow);
}
.efc-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
}
.efc-field { margin-bottom: 18px; }
.efc-field label {
  display: block;
  font-size: 12.5px;
  font-weight: 700;
  letter-spacing: .6px;
  text-transform: uppercase;
  color: var(--efc-ink);
  margin-bottom: 8px;
}
.efc-field input,
.efc-field textarea {
  width: 100%;
  padding: 14px 16px;
  font-family: var(--efc-font-body);
  font-size: 15px;
  color: var(--efc-ink);
  background: var(--efc-white);
  border: 1px solid var(--efc-border);
  border-radius: var(--efc-radius);
  transition: border-color .2s, box-shadow .2s;
}
.efc-field textarea { resize: vertical; min-height: 118px; }
.efc-field input:focus,
.efc-field textarea:focus {
  outline: none;
  border-color: var(--efc-ink);
  box-shadow: 0 0 0 3px rgba(200,243,60,.35);
}

.efc-check {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  font-size: 13.5px;
  line-height: 1.6;
  margin-bottom: 22px;
  cursor: pointer;
}
.efc-check input { margin-top: 3px; accent-color: var(--efc-accent); flex: none; }
.efc-check--light span { color: rgba(255,255,255,.72); }

.efc-form-msg {
  margin: 14px 0 0;
  font-size: 14px;
  font-weight: 600;
  min-height: 20px;
}
.efc-form-msg.is-ok    { color: #1f8f3a; }
.efc-form-msg.is-err   { color: #d13333; }
.efc-cta-final .efc-form-msg.is-ok { color: var(--efc-accent); }

/* ─── 17. PÁGINA DE SERVICIO — QUÉ INCLUYE ──────────────── */
.efc-serv-incl { display: grid; gap: 16px; }
.efc-serv-incl li {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  background: var(--efc-white);
  border: 1px solid var(--efc-border);
  border-radius: var(--efc-radius);
  padding: 22px 26px;
  font-size: 15.5px;
  line-height: 1.7;
  transition: transform .25s var(--efc-ease), box-shadow .25s var(--efc-ease);
}
.efc-serv-incl li:hover { transform: translateX(4px); box-shadow: var(--efc-shadow); }

/* ─── 18. PILARES (QUIÉN SOY) ───────────────────────────── */
.efc-pillars {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 26px;
}
.efc-pillar {
  background: var(--efc-white);
  border: 1px solid var(--efc-border);
  border-radius: var(--efc-radius-lg);
  padding: 40px 32px;
  transition: transform .3s var(--efc-ease), box-shadow .3s var(--efc-ease);
}
.efc-pillar:hover { transform: translateY(-6px); box-shadow: var(--efc-shadow-lg); }
.efc-pillar-num {
  display: inline-block;
  font-family: var(--efc-font-display);
  font-size: 40px;
  line-height: 1;
  color: var(--efc-accent);
  margin-bottom: 16px;
}
.efc-pillar h3 { font-size: 24px; margin-bottom: 12px; }
.efc-pillar p  { font-size: 15px; line-height: 1.75; margin: 0; }

/* ─── 19. PÁGINA DE CONTACTO ────────────────────────────── */
.efc-contact-grid {
  display: grid;
  grid-template-columns: 1.35fr 1fr;
  gap: 52px;
  align-items: start;
}
.efc-contact-form-col .efc-h2 { margin-bottom: 26px; }

.efc-contact-info {
  background: var(--efc-dark);
  color: var(--efc-white);
  border-radius: var(--efc-radius-lg);
  padding: 40px 34px;
}
.efc-contact-info h3 { color: var(--efc-ondark); font-size: 26px; margin-bottom: 26px; }
.efc-contact-list { display: grid; gap: 24px; }
.efc-contact-list li { display: flex; align-items: flex-start; gap: 15px; }
.efc-contact-list strong {
  display: block;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 1.6px;
  text-transform: uppercase;
  color: var(--efc-accent);
  margin-bottom: 4px;
}
.efc-contact-list a,
.efc-contact-list span:not(.efc-contact-ico) {
  font-size: 15px;
  line-height: 1.6;
  color: rgba(255,255,255,.82);
  transition: color .2s;
}
.efc-contact-list a:hover { color: var(--efc-accent); }
.efc-contact-ico {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex: none;
  border-radius: 10px;
  background: rgba(255,255,255,.08);
  color: var(--efc-accent);
}

/* ─── 20. FOOTER ────────────────────────────────────────── */
.efc-footer {
  background: var(--efc-soft);
  color: var(--efc-body);
  padding: 84px 0 0;
  border-top: 1px solid var(--efc-border);
}
.efc-footer-grid {
  display: grid;
  grid-template-columns: 1.7fr 1fr 1fr 1.2fr;
  gap: 44px;
  padding-bottom: 56px;
}
.efc-footer-brand-col .efc-brand { margin-bottom: 18px; }
.efc-footer-about {
  font-size: 14.5px;
  line-height: 1.8;
  max-width: 320px;
  margin-bottom: 22px;
}
.efc-footer-social { display: flex; gap: 10px; }
.efc-footer-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 10px;
  background: var(--efc-white);
  border: 1px solid var(--efc-border);
  color: var(--efc-ink);
  transition: all .25s var(--efc-ease);
}
.efc-footer-social a:hover {
  background: var(--efc-accent);
  border-color: var(--efc-accent);
  color: var(--efc-dark);
  transform: translateY(-3px);
}

.efc-footer-col h4 {
  font-size: 19px;
  letter-spacing: 1.4px;
  margin-bottom: 20px;
}
.efc-footer-col ul { display: grid; gap: 11px; }
.efc-footer-col a {
  font-size: 14.5px;
  transition: color .2s, padding-left .2s;
}
.efc-footer-col a:hover { color: var(--efc-ink); padding-left: 4px; }
.efc-footer-contact li {
  display: flex;
  align-items: flex-start;
  gap: 11px;
  font-size: 14.5px;
  line-height: 1.6;
}
.efc-footer-ico { color: var(--efc-ink); display: flex; margin-top: 2px; }
.efc-footer-ico .efc-icon { width: 17px; height: 17px; }

.efc-footer-bottom {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  flex-wrap: wrap;
  padding: 24px 0 30px;
  border-top: 1px solid var(--efc-border);
}
.efc-footer-bottom p { margin: 0; font-size: 13.5px; }
.efc-footer-legal { display: flex; gap: 24px; flex-wrap: wrap; }
.efc-footer-legal a { font-size: 13.5px; transition: color .2s; }
.efc-footer-legal a:hover { color: var(--efc-ink); }

/* ─── 21. BOTÓN FLOTANTE DE WHATSAPP ────────────────────── */
.efc-wa-fab {
  position: fixed;
  right: 22px;
  bottom: 22px;
  z-index: 850;
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: #25D366;
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 10px 28px rgba(37,211,102,.4);
  transition: transform .25s var(--efc-ease);
}
.efc-wa-fab:hover { transform: scale(1.08); }
.efc-wa-fab svg { width: 30px; height: 30px; }

/* ─── 22. ANIMACIONES DE ENTRADA ────────────────────────── */
.efc-reveal {
  opacity: 0;
  transform: translateY(26px);
  transition: opacity .7s var(--efc-ease), transform .7s var(--efc-ease);
}
.efc-reveal--left  { transform: translateX(-28px); }
.efc-reveal--right { transform: translateX(28px); }
.efc-reveal.is-visible { opacity: 1; transform: none; }

@media (prefers-reduced-motion: reduce) {
  .efc-reveal { opacity: 1 !important; transform: none !important; transition: none; }
  .efc-btn:hover, .efc-step:hover, .efc-pillar:hover,
  .efc-inc-card:hover, .efc-serv-incl li:hover { transform: none; }
}

/* ─── 23. PÁGINAS BASE (blog, entrada, página suelta) ───── */
body.efc-mode .page-hero,
body.efc-mode .nx-page-hero {
  background: var(--efc-dark);
  color: var(--efc-white);
  padding: 92px 0;
  text-align: center;
}
body.efc-mode .page-hero h1,
body.efc-mode .nx-page-hero h1 { color: var(--efc-ondark); }
body.efc-mode .page-hero p,
body.efc-mode .nx-page-hero p { color: rgba(255,255,255,.74); }

body.efc-mode .blog-card,
body.efc-mode .nx-card {
  border-radius: var(--efc-radius-lg);
  border: 1px solid var(--efc-border);
  box-shadow: none;
  transition: transform .3s var(--efc-ease), box-shadow .3s var(--efc-ease);
}
body.efc-mode .blog-card:hover,
body.efc-mode .nx-card:hover { transform: translateY(-5px); box-shadow: var(--efc-shadow-lg); }

body.efc-mode .nx-prose h2,
body.efc-mode .nx-prose h3,
body.efc-mode .entry-content h2,
body.efc-mode .entry-content h3 { color: var(--efc-ink); }
body.efc-mode .nx-prose a,
body.efc-mode .entry-content a {
  color: var(--efc-ink);
  box-shadow: inset 0 -7px 0 var(--efc-accent);
  transition: box-shadow .2s;
}
body.efc-mode .nx-prose a:hover,
body.efc-mode .entry-content a:hover { box-shadow: inset 0 -14px 0 var(--efc-accent); }

body.efc-mode .widget-title { font-family: var(--efc-font-display); letter-spacing: 1.2px; }

/* ─── 24. RESPONSIVE ────────────────────────────────────── */
@media (max-width: 1024px) {
  :root { --efc-section-y: 88px; }
  .efc-split { gap: 46px; }
  .efc-steps { grid-template-columns: repeat(2, 1fr); }
  .efc-footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
  .efc-contact-grid { grid-template-columns: 1fr; gap: 36px; }
}

@media (max-width: 900px) {
  .efc-nav-links { display: none; }
  .efc-nav-cta   { display: none; }
  .efc-nav-burger { display: inline-flex; }
  .efc-nav-inner { gap: 16px; }
}

@media (max-width: 782px) {
  .admin-bar .efc-nav { top: 46px; }
  .admin-bar .efc-mobile-menu { top: calc(var(--efc-nav-h) + 46px); }
}

@media (max-width: 768px) {
  :root { --efc-section-y: 72px; --efc-nav-h: 68px; }
  .efc-container { padding: 0 20px; }

  .efc-hero { padding: calc(var(--efc-nav-h) + 78px) 0 84px; }
  .efc-page-hero { padding: calc(var(--efc-nav-h) + 40px) 0 52px; }
  .efc-page-hero-title { font-size: clamp(30px, 8.4vw, 44px); }
  .efc-crumbs { font-size: 12.5px; margin-bottom: 14px; }

  .efc-split,
  .efc-goals-grid,
  .efc-cards-2,
  .efc-pillars,
  .efc-steps,
  .efc-form-row,
  .efc-gift-fields { grid-template-columns: 1fr; }

  .efc-split--media-first .efc-split-media { order: 0; }
  .efc-split-media { order: -1; }
  .efc-why-frame::before { display: none; }

  .efc-head { margin-bottom: 40px; }
  .efc-center-cta { margin-top: 36px; }

  .efc-inc-card { padding: 32px 26px; }
  .efc-form { padding: 28px 22px; }
  .efc-contact-info { padding: 32px 26px; }

  .efc-footer-grid { grid-template-columns: 1fr; gap: 34px; padding-bottom: 40px; }
  .efc-footer-about { max-width: none; }
  .efc-footer-bottom { flex-direction: column; align-items: flex-start; }

  .efc-btn { width: auto; }
  .efc-page-hero-ctas .efc-btn { flex: 1 1 auto; }
}

@media (max-width: 480px) {
  .efc-hero-title { font-size: 40px; }
  .efc-h2 { font-size: 30px; }
  .efc-btn { padding: 14px 26px; font-size: 13.5px; }
  .efc-faq-q { padding: 18px 20px; font-size: 15px; }
  .efc-faq-a p { padding: 0 20px 20px; }
  .efc-wa-fab { right: 16px; bottom: 16px; width: 52px; height: 52px; }
}

/* ─── 25. SERVICIOS RELACIONADOS (enlazado interno) ─────── */
.efc-related-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
  gap: 24px;
}
.efc-related-card {
  display: block;
  background: var(--efc-white);
  border: 1px solid var(--efc-border);
  border-radius: var(--efc-radius-lg);
  padding: 30px 28px;
  transition: transform .3s var(--efc-ease), box-shadow .3s var(--efc-ease), border-color .3s;
}
.efc-related-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--efc-shadow-lg);
  border-color: var(--efc-accent);
}
.efc-related-card h3 { font-size: 23px; margin-bottom: 10px; }
.efc-related-card p  { font-size: 14.5px; color: var(--efc-body); line-height: 1.7; margin-bottom: 16px; }
.efc-related-go {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .4px;
  color: var(--efc-ink);
}
.efc-related-go .efc-icon { width: 15px; height: 15px; }

/* Migas de pan de páginas interiores */
.efc-crumbs {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 8px;
  font-size: 13px;
  color: rgba(255,255,255,.55);
  margin-bottom: 18px;
}
.efc-crumbs a:hover { color: var(--efc-accent); }
.efc-crumbs .efc-icon { width: 13px; height: 13px; }
.efc-crumbs-current { color: var(--efc-accent); }

/* ═══════════════════════════════════════════════════════════
   CORRECCIONES DE PÁGINAS BASE Y MENÚ MÓVIL
   ═══════════════════════════════════════════════════════════ */

/* 1. Red de seguridad: los bloques animados solo se ocultan si el JS está vivo
      para volver a mostrarlos. Sin JS, el contenido se ve siempre. */
html:not(.efc-js) .fade-up,
html:not(.efc-js) .nx-fade-up,
html:not(.efc-js) .efc-reveal {
  opacity: 1 !important;
  transform: none !important;
}
/* Y aunque el JS falle a media carga, nada queda invisible más de un instante. */
body.efc-mode .fade-up,
body.efc-mode .nx-fade-up { transition: opacity .5s ease, transform .5s ease; }
body.efc-mode .fade-up.is-visible,
body.efc-mode .nx-fade-up.visible { opacity: 1; transform: none; }

/* 2. Franja clara bajo la cabecera.
      El <body> lleva un relleno superior igual a la altura del header fijo. Si
      ambos valores no coinciden al píxel (por ejemplo, con el header encogido
      al hacer scroll), ese relleno asoma como una banda del color del fondo.
      Solución: el hero se sube por debajo del header y recupera esa altura como
      relleno propio, de modo que no queda ninguna junta que pueda desalinearse.
      Las plantillas sin hero (entradas del blog, 404) mantienen el relleno del
      <body> intacto. */
body.efc-mode.efc-flat .page-hero {
  margin-top: calc(var(--efc-nav-h) * -1);
  padding-top: calc(var(--efc-nav-h) + 64px);
}

/* 3. Submenús plegables dentro del menú móvil */
.efc-mobile-menu .menu-item-has-children { position: relative; }
.efc-mobile-menu .efc-sub-toggle {
  position: absolute;
  top: 4px;
  right: 0;
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: none;
  border: 0;
  cursor: pointer;
  padding: 0;
}
.efc-mobile-menu .efc-sub-toggle span {
  width: 9px;
  height: 9px;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-3px) rotate(45deg);
  transition: transform .25s ease;
  opacity: .75;
}
.efc-mobile-menu .is-sub-open > .efc-sub-toggle span { transform: translateY(2px) rotate(225deg); opacity: 1; }

/* Plegado por defecto: el menú cabe en una pantalla.
   Se usa max-height y NO grid-template-rows: con varios <li>, el truco de
   0fr→1fr define una sola fila y todos los elementos caen encima del mismo
   renglón, que es justo lo que se veía superpuesto. */
.efc-mobile-menu .menu-item-has-children > .sub-menu {
  display: block;
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transition: max-height .32s ease, opacity .22s ease, padding .32s ease;
  padding-top: 0;
  padding-bottom: 0;
}
.efc-mobile-menu .menu-item-has-children.is-sub-open > .sub-menu {
  max-height: 640px;
  opacity: 1;
  padding-bottom: 6px;
}
.efc-mobile-menu .menu-item-has-children > .sub-menu > li { display: block; width: 100%; }

.efc-mobile-menu .efc-sub-toggle { color: var(--efc-accent); }
.efc-mobile-menu .menu-item-has-children > a { padding-right: 48px; }
/* Título del hero de páginas base, sobre el fondo oscuro. */
body.efc-mode .page-hero-inner h1 { color: var(--efc-ondark); }
body.efc-mode .page-hero-inner p  { color: rgba(255,255,255,.74); }

/* ═══ Sin resquicios bajo la cabecera fija ═══
   Cuando el primer bloque de la página es oscuro, el lienzo también lo es.
   Así, cualquier desajuste de un par de píxeles entre la altura del header y
   lo que haya debajo se ve del mismo color en vez de como una franja clara. */
body.efc-mode.efc-dark-top { background: var(--efc-dark); }

/* Salvaguarda: si por lo que sea coinciden el relleno del <body> y un hero
   propio, se anula el primero para que no se sumen. */
body.efc-mode.efc-flat:has(.efc-page-hero),
body.efc-mode.efc-flat:has(.exe-page-hero) { padding-top: 0; }

/* ═══════════════════════════════════════════════════════════
   PORTADA — DISEÑO NUEVO (mockup Asesor de Negocios)
   ═══════════════════════════════════════════════════════════ */

/* ── Hero centrado ── */
.efc-hero--center { text-align: center; }
.efc-hero--center .efc-hero-inner { max-width: 900px; margin: 0 auto; }
.efc-hero--center .efc-hero-sub { margin-left: auto; margin-right: auto; max-width: 720px; }
.efc-hero--center .efc-hero-title { letter-spacing: 1.5px; }

/* ── La gasolina del negocio ── */
.efc-split--tight { gap: 48px; align-items: center; }
.efc-fuel .efc-h2 { font-size: clamp(28px, 3.6vw, 42px); margin-bottom: 26px; }

.efc-fuel-row {
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 14px;
  align-items: start;
  margin-bottom: 22px;
}
.efc-fuel-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  color: var(--efc-accent);
  margin-top: 2px;
}
.efc-fuel-check .efc-icon { width: 30px; height: 30px; stroke-width: 3.5; }
.efc-fuel-text p { font-size: 14.5px; line-height: 1.65; margin: 0 0 4px; color: var(--efc-body); }
.efc-fuel-text p:last-child { margin-bottom: 0; }
.efc-fuel-text strong { color: var(--efc-ink); }
.efc-fuel-item { padding-left: 2px; }
.efc-fuel-img { width: 100%; max-width: 460px; margin-left: auto; }

/* ── Estas son las soluciones ── */
.efc-sol { background: var(--efc-dark); }
.efc-sol-title {
  color: var(--efc-ondark);
  text-align: center;
  font-size: clamp(26px, 3.4vw, 38px);
  margin-bottom: 48px;
}
.efc-sol-grid {
  display: grid;
  gap: 30px;
  max-width: 1000px;
  margin: 0 auto;
}
.efc-sol-grid--1 { grid-template-columns: minmax(0, 380px); justify-content: center; }
.efc-sol-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 780px; }
.efc-sol-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }

/* Marco lima con halo, como en el diseño */
.efc-sol-card {
  background: var(--efc-accent);
  border-radius: 10px;
  padding: 7px;
  box-shadow: 0 0 26px rgba(200, 243, 60, .38);
  transition: transform .3s var(--efc-ease), box-shadow .3s var(--efc-ease);
}
.efc-sol-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 0 38px rgba(200, 243, 60, .55);
}
.efc-sol-card-in {
  background: var(--efc-white);
  border-radius: 5px;
  padding: 30px 24px 26px;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}
.efc-sol-card-in h3 {
  font-size: 22px;
  line-height: 1.15;
  margin-bottom: 16px;
}
.efc-sol-card-in p {
  font-size: 13.5px;
  line-height: 1.6;
  font-weight: 600;
  color: var(--efc-ink);
  margin-bottom: 22px;
  flex: 1 1 auto;
}
.efc-sol-btn {
  display: inline-block;
  background: #8A8A8A;
  color: var(--efc-white);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .6px;
  padding: 8px 18px;
  border-radius: 4px;
  transition: background .25s var(--efc-ease);
}
.efc-sol-btn:hover { background: var(--efc-ink); }

/* ── Clientes ── */
.efc-clients { background: var(--efc-white); padding: 54px 0 44px; }
.efc-clients-title {
  font-family: var(--efc-font-display);
  font-size: clamp(16px, 2vw, 21px);
  letter-spacing: 1px;
  text-transform: uppercase;
  text-align: center;
  color: var(--efc-ink);
  margin-bottom: 34px;
}
.efc-clients-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 26px 42px;
}
.efc-clients-row img {
  height: 46px;
  width: auto;
  max-width: 150px;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .62;
  transition: opacity .25s var(--efc-ease), filter .25s var(--efc-ease);
}
.efc-clients-row img:hover { opacity: 1; filter: grayscale(0); }

/* ── Presentación ── */
.efc-me-name {
  font-size: clamp(30px, 4.4vw, 46px);
  line-height: 1;
  margin-bottom: 22px;
}
.efc-me-pre {
  display: inline-block;
  font-size: .52em;
  letter-spacing: 2px;
  color: var(--efc-body);
  margin-right: 10px;
  vertical-align: baseline;
}
.efc-me p { font-size: 14.5px; line-height: 1.7; margin-bottom: 14px; }
.efc-me .efc-btn { margin-top: 10px; }
.efc-me-img { width: 100%; max-width: 330px; margin: 0 auto; }

/* ── Por qué nuestra ayuda ── */
.efc-best-head { text-align: center; margin-bottom: 38px; }
.efc-best-pre,
.efc-best-post {
  display: block;
  font-family: var(--efc-font-display);
  letter-spacing: 1px;
  text-transform: uppercase;
  color: var(--efc-ink);
  line-height: 1.1;
}
.efc-best-pre  { font-size: clamp(20px, 2.6vw, 28px); }
.efc-best-post { font-size: clamp(17px, 2.2vw, 24px); color: var(--efc-body); }
.efc-best-mid {
  font-size: clamp(30px, 4.6vw, 50px);
  line-height: 1.05;
  margin: 2px 0;
}
.efc-best-body p { font-size: 14.5px; line-height: 1.75; margin-bottom: 18px; }
.efc-best-quote {
  border: 0;
  margin: 26px 0;
  padding: 0;
  font-family: var(--efc-font-display);
  font-size: clamp(19px, 2.4vw, 26px);
  line-height: 1.25;
  letter-spacing: .6px;
  color: var(--efc-ink);
}
.efc-best-close { font-weight: 700; color: var(--efc-ink); margin-bottom: 20px; }

@media (max-width: 900px) {
  .efc-sol-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 720px; }
}
@media (max-width: 768px) {
  .efc-split--tight { gap: 34px; }
  .efc-fuel-img { max-width: 320px; margin: 0 auto; }
  .efc-me-img   { max-width: 260px; }
  .efc-sol-grid--2,
  .efc-sol-grid--3 { grid-template-columns: minmax(0, 1fr); max-width: 380px; }
  .efc-clients-row { gap: 20px 28px; }
  .efc-clients-row img { height: 34px; max-width: 110px; }
  .efc-best-head { margin-bottom: 28px; }
}

/* ═══ Clientes: marquesina automática (una sola fila) ═══ */
.efc-marquee {
  position: relative;
  overflow: hidden;
  width: 100%;
  -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
          mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);
}
.efc-marquee-track {
  display: flex;
  align-items: center;
  gap: 56px;
  width: max-content;
  animation: efc-marquee 42s linear infinite;
}
.efc-marquee:hover .efc-marquee-track { animation-play-state: paused; }
.efc-marquee img {
  height: 46px;
  width: auto;
  max-width: none;
  flex: 0 0 auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .6;
  transition: opacity .25s var(--efc-ease), filter .25s var(--efc-ease);
}
.efc-marquee img:hover { opacity: 1; filter: grayscale(0); }

/* Se recorre la mitad de la pista: como está duplicada, el salto es invisible. */
@keyframes efc-marquee {
  from { transform: translateX(0); }
  to   { transform: translateX(calc(-50% - 28px)); }
}
@keyframes efc-marquee-sm {
  from { transform: translateX(0); }
  to   { transform: translateX(calc(-50% - 14px)); }
}
@media (prefers-reduced-motion: reduce) {
  .efc-marquee-track { animation: none; flex-wrap: wrap; justify-content: center; width: 100%; }
}
@media (max-width: 768px) {
  .efc-marquee-track { animation-name: efc-marquee-sm; animation-duration: 26s; }
}

/* ═══ Páginas de servicio ═══ */
.efc-pain-list li {
  font-style: italic;
  font-weight: 700;
  text-transform: uppercase;
  font-size: 14.5px;
}
.efc-pain-foot { max-width: 860px; margin: 34px auto 0; text-align: center; }
.efc-pain-foot p { font-size: 14.5px; line-height: 1.75; margin-bottom: 18px; }

.efc-inc-grid { display: grid; gap: 28px; }
.efc-inc-grid--1 { grid-template-columns: minmax(0, 720px); justify-content: center; }
.efc-inc-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 900px; margin: 0 auto; }

/* Tarjeta con marco lima, igual que las de la portada */
.efc-frame-card {
  background: var(--efc-accent);
  border-radius: 10px;
  padding: 7px;
  box-shadow: 0 0 24px rgba(200, 243, 60, .3);
}
.efc-frame-card-in {
  background: var(--efc-white);
  border-radius: 5px;
  padding: 30px 28px;
  height: 100%;
}
.efc-frame-card-in h3 { font-size: 23px; text-align: center; margin-bottom: 20px; }
.efc-frame-card-in ul { display: grid; gap: 12px; }
.efc-frame-card-in li {
  font-size: 13.5px;
  line-height: 1.6;
  padding-left: 16px;
  position: relative;
  color: var(--efc-body);
}
.efc-frame-card-in li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 8px;
  width: 7px;
  height: 7px;
  border-radius: 2px;
  background: var(--efc-accent);
}

.efc-goal-col { min-width: 0; }
.efc-why-btn { margin-top: 18px; }

/* ═══ Quién soy ═══ */
.efc-band {
  background: var(--efc-dark);
  color: var(--efc-ondark);
  padding: 30px 0;
  text-align: center;
}
.efc-band p {
  margin: 0;
  font-family: var(--efc-font-display);
  font-size: clamp(16px, 2.2vw, 23px);
  line-height: 1.3;
  letter-spacing: .8px;
  text-transform: uppercase;
  color: var(--efc-ondark);
}

.efc-cred-head {
  display: flex;
  align-items: center;
  gap: 30px;
  margin-bottom: 30px;
}
.efc-cred-list { flex: 1 1 auto; min-width: 0; }
.efc-cred-badges { flex: 0 0 auto; }
.efc-cred-list { display: grid; gap: 7px; }
.efc-cred-list li { font-size: 15.5px; line-height: 1.55; }
.efc-cred-badges { display: flex; align-items: center; gap: 12px; }
.efc-cred-badges img { height: 56px; width: auto; }
.efc-cred-body p { font-size: 14.5px; line-height: 1.8; margin-bottom: 16px; }

.efc-opts-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 26px; }
.efc-opt {
  border-radius: 12px;
  padding: 30px 28px;
  border: 3px solid var(--efc-accent);
  box-shadow: 0 8px 26px rgba(29, 25, 29, .12);
}
.efc-opt h3 { font-size: 27px; margin-bottom: 16px; }
.efc-opt ul { display: grid; gap: 8px; }
.efc-opt li { font-size: 13.5px; line-height: 1.55; }
.efc-opt--1 { background: var(--efc-dark); }
.efc-opt--1 h3 { color: var(--efc-accent); }
.efc-opt--1 li { color: rgba(255, 255, 255, .82); }
.efc-opt--2 { background: var(--efc-accent); border-color: var(--efc-accent); }
.efc-opt--2 h3,
.efc-opt--2 li { color: var(--efc-dark); }

.efc-gift-embed { max-width: 560px; margin: 0 auto; text-align: left; }

@media (max-width: 768px) {
  .efc-inc-grid--2,
  .efc-opts-grid { grid-template-columns: minmax(0, 1fr); }
  .efc-cred-head { flex-direction: column; }
  .efc-cred-badges img { height: 38px; }
}

/* ═══════════════════════════════════════════════════════════
   AJUSTES v3.4 — menú, marquesina y páginas de servicio
   ═══════════════════════════════════════════════════════════ */

/* ── 1. MENÚ: pegado a la derecha y en blanco ── */
.efc-nav-links {
  margin-left: auto !important;
  justify-content: flex-end;
}
.efc-nav-links > li > a,
.efc-nav-links .sub-menu a,
.efc-mobile-menu a {
  color: #fff;
}
.efc-nav-links > li > a:hover,
.efc-nav-links .sub-menu a:hover,
.efc-mobile-menu a:hover,
.efc-nav-links .current-menu-item > a { color: var(--efc-accent); }
.efc-mobile-menu a { opacity: 1; }
.efc-mobile-menu .sub-menu a { color: #fff; opacity: .92; }

/* ── 2. MARQUESINA DE CLIENTES ──
   Red de seguridad: si la caché sirve el HTML antiguo (.efc-clients-row),
   los logos siguen saliendo pequeños y en fila en vez de gigantes. */
.efc-clients-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 22px 40px;
}
.efc-clients-row img,
.efc-marquee img {
  height: 38px;
  width: auto;
  max-width: 140px;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .6;
}
.efc-marquee img { max-width: none; flex: 0 0 auto; }
.efc-marquee-track { gap: 48px; }

/* ── 3. HERO DE PÁGINA: titular en dos líneas ── */
.efc-page-hero-inner { max-width: 1040px; }
.efc-page-hero-title { font-size: clamp(30px, 4.4vw, 50px); }

/* ── 4. ¿TE PASA ALGO DE ESTO?: la imagen no se desborda ── */
.efc-pain .efc-split-media { display: flex; justify-content: center; }
.efc-pain .efc-split-media img {
  width: auto;
  max-width: 100%;
  max-height: 440px;
  object-fit: contain;
  margin: 0 auto;
}

/* ── 5. OBJETIVOS: bloque centrado y botón bajo la 2ª columna ── */
.efc-goals-grid {
  max-width: 880px;
  margin: 0 auto;
  gap: 40px 56px;
  align-items: start;
}
.efc-goal-col { display: flex; flex-direction: column; }
.efc-goal-btn { align-self: flex-start; margin-top: 26px; }

/* ── 6. ENCABEZADOS DE SECCIÓN A DOS LÍNEAS ── */
.efc-head--center { max-width: 940px; }
.efc-head--center .efc-h2 { text-wrap: balance; }

/* ── 7. QUÉ INCLUYE: más ancho, centrado y botón grande ── */
.efc-inc-grid--1 {
  grid-template-columns: minmax(0, 1fr);
  max-width: 900px;
  margin-inline: auto;
}
.efc-inc-grid--2 { max-width: 980px; margin-inline: auto; }
/* Doble red: si por lo que sea el grid no centrase, la tarjeta se centra sola. */
.efc-inc-grid { justify-items: center; }
.efc-inc-grid > .efc-frame-card { width: 100%; max-width: 900px; margin-inline: auto; }
.efc-frame-card-in { padding: 36px 40px; }
.efc-frame-card-in h3 { font-size: 26px; }
.efc-frame-card-in li { font-size: 14.5px; }

.efc-btn--wide {
  padding: 17px 44px;
  font-size: 15px;
}

/* ── 8. POR QUÉ TRABAJAR CONMIGO: botón bajo la foto ── */
.efc-why .efc-split-media {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 20px;
}
.efc-why .efc-me-img { margin: 0; }
.efc-why-btn { margin-top: 0; }

/* ── 9. SELLOS DE TITULACIÓN (Quién soy) ── */
.efc-cred-badges img { height: 46px; width: auto; object-fit: contain; }

@media (max-width: 768px) {
  /* Logos de clientes bastante más pequeños en móvil */
  .efc-clients-row img,
  .efc-marquee img { height: 24px; max-width: 92px; }
  .efc-marquee img { max-width: none; }
  .efc-marquee-track { gap: 28px; }
  .efc-clients-row { gap: 16px 24px; }

  .efc-pain .efc-split-media img { max-height: 300px; }
  .efc-goals-grid { gap: 30px; }
  .efc-goal-btn { align-self: center; }
  .efc-frame-card-in { padding: 26px 22px; }
  .efc-btn--wide { padding: 15px 30px; font-size: 14px; }
  .efc-cred-badges img { height: 38px; }
}

/* ═══ Lista de la sección "¿Te pasa algo de esto?" ═══ */
/* Variante con comillas (Consultoría Financiera) */
.efc-pain-list--quote li::before { content: "“"; }
.efc-pain-list--quote li::after  { content: "”"; }

/* Variante con checks verdes (Consultoría de Procesos) */
.efc-pain-list--check li {
  font-style: normal;
  background: none;
  border-left: 0;
  border-radius: 0;
  padding: 6px 0;
  align-items: center;
  gap: 14px;
}
.efc-pain-list--check li::before,
.efc-pain-list--check li::after { content: none; }
.efc-pain-check {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: none;
  color: var(--efc-accent);
}
.efc-pain-check .efc-icon { width: 24px; height: 24px; stroke-width: 3.5; }

/* ═══════════════════════════════════════════════════════════
   v3.8 — Tarjetas de soluciones, verde suave y tamaños de texto
   ═══════════════════════════════════════════════════════════ */

/* ── Tamaño del texto: base + ajuste por sección ── */
:root { --efc-fs-base: 15px; }

.efc-fuel-text p          { font-size: var(--efc-fs-fuel,  var(--efc-fs-base)); }
.efc-sol-card-in p        { font-size: var(--efc-fs-sol,   14px); }
.efc-me p                 { font-size: var(--efc-fs-me,    var(--efc-fs-base)); }
.efc-best-body p          { font-size: var(--efc-fs-best,  var(--efc-fs-base)); }
.efc-pain-list li,
.efc-pain-foot p          { font-size: var(--efc-fs-pain,  var(--efc-fs-base)); }
.efc-frame-card-in li     { font-size: var(--efc-fs-inc,   var(--efc-fs-base)); }
.efc-goals-list li        { font-size: var(--efc-fs-goals, var(--efc-fs-base)); }
.efc-step p               { font-size: var(--efc-fs-proc,  14px); }
.efc-why-p,
.efc-why-bullets li       { font-size: var(--efc-fs-why,   var(--efc-fs-base)); }
.efc-faq-a p              { font-size: var(--efc-fs-faq,   var(--efc-fs-base)); }
.efc-cred-body p,
.efc-cred-list li         { font-size: var(--efc-fs-cred,  var(--efc-fs-base)); }

/* ── Soluciones: tres tarjetas fieles al diseño ── */
.efc-sol-grid--3 { grid-template-columns: repeat(3, minmax(0, 1fr)); max-width: 1020px; }

.efc-sol-card {
  /* Marco en verde suave; el verde intenso queda para los botones. */
  background: var(--efc-accent-soft, #DEFFA8);
  border-radius: 4px;
  padding: 10px;
  box-shadow: 0 0 22px rgba(200, 243, 60, .28);
}
.efc-sol-card:hover { box-shadow: 0 0 30px rgba(200, 243, 60, .42); }
.efc-sol-card-in {
  background: var(--efc-white);
  border-radius: 2px;
  padding: 34px 26px 30px;
}
.efc-sol-card-in h3 {
  font-family: var(--efc-font-display);
  font-size: 25px;
  line-height: 1.1;
  letter-spacing: .5px;
  margin-bottom: 18px;
}
.efc-sol-card-in p {
  font-weight: 700;
  line-height: 1.55;
  margin-bottom: 26px;
}
.efc-sol-btn {
  background: #6E6E6E;
  color: var(--efc-btn-text, #fff) !important;
  border-radius: 3px;
  padding: 7px 20px;
  font-size: 10.5px;
  letter-spacing: .8px;
}
.efc-sol-btn:hover { background: var(--efc-ink); color: var(--efc-btn-text, #fff) !important; }

/* ── El verde intenso, solo en botones de acción ── */
.efc-step--accent { background: var(--efc-accent-soft, #DEFFA8); border-color: var(--efc-accent-soft, #DEFFA8); }
.efc-step--accent h4, .efc-step--accent p { color: var(--efc-ink); }
.efc-step--accent .efc-step-num { color: rgba(29, 25, 29, .38); }
.efc-frame-card { background: var(--efc-accent-soft, #DEFFA8); }
.efc-opt { border-color: var(--efc-accent-soft, #DEFFA8); }
.efc-opt--2 { background: var(--efc-accent-soft, #DEFFA8); border-color: var(--efc-accent-soft, #DEFFA8); }

@media (max-width: 900px) {
  .efc-sol-grid--3 { grid-template-columns: repeat(2, minmax(0, 1fr)); max-width: 720px; }
}
@media (max-width: 768px) {
  .efc-sol-grid--3 { grid-template-columns: minmax(0, 1fr); max-width: 380px; }
  .efc-sol-card-in { padding: 28px 22px 26px; }
}

/* ═══════════════════════════════════════════════════════════
   v3.9.4 — CORRECCIONES DEL CLIENTE
   Bloque explicativo a la izquierda, logos de clientes a un
   tamaño uniforme, números del proceso legibles, subtítulos en
   negrita, ilustración de "la gasolina" a la proporción del
   diseño y bloque de objetivos más destacado.
   ═══════════════════════════════════════════════════════════ */

/* ── 1. BLOQUE EXPLICATIVO ALINEADO A LA IZQUIERDA ──
   El texto largo se lee mucho mejor en bandera izquierda; el botón
   sigue centrado bajo el párrafo, como en el diseño original. */
.efc-pain-foot {
  max-width: 880px;
  margin: 34px 0 0;
  text-align: left;
}
.efc-pain-foot p { text-align: left; }
.efc-pain-foot .efc-btn {
  display: block;
  width: fit-content;
  margin: 6px auto 0;
}

/* ── 2. LOGOS DE CLIENTES ──
   Los PNG vienen con lienzo uniforme (600×200), así que basta con
   fijar la altura para que TODOS ocupen exactamente el mismo hueco
   y nunca queden dos pegados. */
.efc-marquee img,
.efc-clients-row img {
  height: 46px;
  width: auto;
  max-width: none;
  object-fit: contain;
  opacity: .72;
}
.efc-marquee-track { gap: 44px; }
.efc-clients-row   { gap: 18px 30px; }

/* ── 3. NÚMEROS DEL PROCESO LEGIBLES ── */
.efc-step-num { color: #6E6E6E; }
.efc-step--dark .efc-step-num { color: rgba(255, 255, 255, .70); }
.efc-step--accent .efc-step-num,
.efc-step--accent.efc-step .efc-step-num { color: rgba(29, 25, 29, .62); }

/* ── 4. SUBTÍTULOS EN NEGRITA ──
   Tienen que distinguirse de los textos explicativos. */
.efc-hero-sub,
.efc-page-hero-sub,
.efc-lead,
.efc-head .efc-lead {
  font-weight: 700;
}
.efc-hero-sub      { color: rgba(255, 255, 255, .90); }
.efc-page-hero-sub { color: rgba(255, 255, 255, .90); }
.efc-lead          { color: var(--efc-ink); }

/* ── 5. "LA GASOLINA DEL NEGOCIO": ilustración a escala ──
   En el diseño original la imagen es bastante menor que el bloque
   de texto; aquí salía casi al mismo tamaño. */
.efc-fuel .efc-split { grid-template-columns: 1.25fr 1fr; align-items: center; }
.efc-fuel .efc-split-media { display: flex; justify-content: center; }
.efc-fuel-img {
  width: auto;
  max-width: 340px;
  max-height: 260px;
  aspect-ratio: auto;
  object-fit: contain;
  margin: 0 auto;
}

/* ── 6. OBJETIVOS: títulos de columna más grandes ── */
.efc-goals-tag {
  font-size: clamp(24px, 2.6vw, 32px);
  letter-spacing: 1px;
  padding-bottom: 10px;
  margin-bottom: 22px;
  display: block;
  width: 100%;
}

/* ── 7. Checks de "Objetivos personales": gris oscuro y check blanco ── */
.efc-check-ico--gris {
  background: #4A4A4A;
  color: #fff;
}

@media (max-width: 768px) {
  .efc-marquee img,
  .efc-clients-row img { height: 30px; }
  .efc-marquee-track   { gap: 26px; }

  .efc-fuel .efc-split { grid-template-columns: 1fr; }
  .efc-fuel-img { max-width: 250px; max-height: 200px; }

  .efc-pain-foot .efc-btn { width: 100%; text-align: center; }
}

/* ═══════════════════════════════════════════════════════════
   v3.9.5 — LOGOS DE CLIENTES: más grandes, separados y sin repetir
   Se pintan una sola vez en una fila centrada que se parte sola
   (6 + 5). Cada PNG lleva lienzo uniforme de 600×200, así que
   con la altura fija todos ocupan el mismo hueco.
   ═══════════════════════════════════════════════════════════ */
.efc-clients { padding: 60px 0 52px; }

.efc-clients-row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 26px 20px;
  max-width: 1160px;
  margin: 0 auto;
}
.efc-clients-row img,
.efc-marquee img {
  height: 54px;
  width: auto;
  max-width: none;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .78;
  transition: opacity .25s var(--efc-ease), filter .25s var(--efc-ease);
}
.efc-clients-row img:hover,
.efc-marquee img:hover { opacity: 1; filter: grayscale(0); }

.efc-marquee-track { gap: 40px; }

@media (max-width: 900px) {
  .efc-clients-row img,
  .efc-marquee img { height: 46px; }
  .efc-clients-row { gap: 22px 16px; }
}
@media (max-width: 768px) {
  .efc-clients-row img,
  .efc-marquee img { height: 38px; }
  .efc-clients-row { gap: 20px 14px; }
  .efc-marquee-track { gap: 26px; }
}
