/* ==========================================================================
   Lúmina Nexo — estilos del tema (v2)
   Todos los colores y tipografías son variables. Los valores de abajo son los
   de la marca; el Personalizador los reemplaza (Apariencia → Personalizar).
   ========================================================================== */

:root{
  /* Colores de marca (editables) */
  --c-bg:#F5FAFD;            /* Fondo claro */
  --c-bg-alt:#EAF4FA;        /* Fondo claro alterno */
  --c-ink:#0E395F;           /* Texto principal */
  --c-ink-soft:#3D6A8C;      /* Texto secundario */
  --c-accent:#02CCD3;        /* Acento: botones */
  --c-accent-2:#0F7397;      /* Acento sobre claro: antetítulos, enlaces */
  --c-highlight:#8ADBE2;     /* Destacado sobre oscuro */
  --c-dark-1:#064E88;        /* Oscuro — inicio del degradado */
  --c-dark-2:#0E395F;        /* Oscuro — medio */
  --c-dark-3:#071E33;        /* Oscuro — profundo (barra, pie) */
  --c-on-dark:#CBEAF5;       /* Texto sobre oscuro */
  --c-on-dark-soft:#98D6EC;  /* Texto secundario sobre oscuro */

  /* Derivados (se recalculan solos) */
  --c-surface:#ffffff;
  --c-line:color-mix(in srgb, var(--c-accent-2) 15%, var(--c-bg));
  --c-tint:color-mix(in srgb, var(--c-highlight) 35%, var(--c-bg));
  --c-on-accent:var(--c-dark-3);

  /* Tipografías (editables) */
  --f-display:"Cormorant Garamond", Georgia, serif;
  --f-body:"PT Sans", system-ui, sans-serif;
  --f-accent:"Forum", Georgia, serif;
  --fs-base:16px;

  --nav-h:64px;
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; font-size:var(--fs-base); }
body{
  margin:0; background:var(--c-bg); color:var(--c-ink);
  font-family:var(--f-body); font-size:1rem; line-height:1.62; overflow-x:hidden;
}
.display, h1, h2{ font-family:var(--f-display); text-wrap:balance; }
h2{ text-wrap:pretty; }
a{ color:inherit; }
img, svg, video{ max-width:100%; }
::selection{ background:var(--c-accent); color:var(--c-on-accent); }
:focus-visible{ outline:2px solid var(--c-accent); outline-offset:3px; }
h1, h2, h3{ font-weight:500; }
.wrap{ max-width:var(--wrap, 1320px); margin:0 auto; padding:0 clamp(22px, 4vw, 48px); }
@media (max-width:640px){ .wrap{ padding:0 22px; } }

/* Accesibilidad */
.screen-reader-text{ position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.skip-link:focus{ position:fixed; top:8px; left:8px; z-index:100; width:auto; height:auto; clip:auto; padding:10px 16px; background:var(--c-accent); color:var(--c-on-accent); border-radius:6px; font-family:var(--f-accent); }

/* Animación de entrada (solo CSS) */
@keyframes fadeUp{ from{ opacity:0; transform:translateY(20px); } to{ opacity:1; transform:none; } }
.reveal{ animation:fadeUp .7s ease both; }
.reveal.d1{ animation-delay:.08s; } .reveal.d2{ animation-delay:.16s; } .reveal.d3{ animation-delay:.24s; } .reveal.d4{ animation-delay:.32s; }
@media (prefers-reduced-motion:reduce){ .reveal{ animation:none; } html{ scroll-behavior:auto; } }

/* ==========================================================================
   Barra de navegación (menú de WordPress)
   ========================================================================== */
.nav{ position:sticky; top:0; z-index:40; background:color-mix(in srgb, var(--c-dark-3) 88%, transparent); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); border-bottom:1px solid rgba(255,255,255,0.08); }
.admin-bar .nav{ top:32px; }
@media (max-width:782px){ .admin-bar .nav{ top:46px; } }
@media (max-width:600px){ .admin-bar .nav{ top:0; } }
.nav .wrap{ display:flex; align-items:center; justify-content:space-between; height:var(--nav-h); }
.nav-logo{ display:flex; align-items:center; gap:9px; color:#fff; text-decoration:none; flex-shrink:0; }
.nav-logo svg{ width:20px; height:20px; }
.nav-logo span{ font-family:var(--f-accent); font-size:0.98rem; letter-spacing:0.04em; }
.nav-logo .custom-logo{ height:var(--logo-h, 36px); width:auto; max-width:min(320px, 60vw); display:block; object-fit:contain; }

.nav-links{ display:flex; align-items:center; }
.nav-links ul{ list-style:none; margin:0; padding:0; display:flex; align-items:center; gap:26px; }
.nav-links li{ margin:0; position:relative; }
.nav-links a{ color:var(--c-on-dark); font-size:0.85rem; text-decoration:none; letter-spacing:0.02em; opacity:0.88; transition:opacity .2s, color .2s; }
.nav-links a:hover, .nav-links .current-menu-item > a:not(.nav-cta){ opacity:1; color:#fff; }
.nav-cta{ display:inline-block; background:var(--c-accent); color:var(--c-on-accent) !important; padding:9px 18px; border-radius:30px; font-family:var(--f-accent); font-size:0.78rem; letter-spacing:0.04em; opacity:1 !important; }
.nav-cta:hover{ background:var(--c-highlight); }
.nav-fallback{ display:flex; align-items:center; gap:26px; }

/* Submenús (escritorio) */
.nav-links .sub-menu{ position:absolute; top:calc(100% + 14px); left:-16px; min-width:220px; display:none; flex-direction:column; align-items:stretch; gap:0; padding:8px 0; background:var(--c-dark-3); border:1px solid rgba(255,255,255,0.1); border-radius:10px; box-shadow:0 16px 40px rgba(0,0,0,0.3); }
.nav-links .sub-menu::before{ content:''; position:absolute; top:-15px; left:0; right:0; height:15px; }
.nav-links .sub-menu a{ display:block; padding:9px 16px; }
.nav-links li:hover > .sub-menu, .nav-links li:focus-within > .sub-menu{ display:flex; }
.nav-links .menu-item-has-children > a::after{ content:'▾'; font-size:0.7em; margin-left:5px; opacity:0.7; }

/* Botón de menú (móvil) */
.nav-toggle{ display:none; background:none; border:0; padding:10px; margin-right:-10px; cursor:pointer; color:#fff; }
.nav-toggle-bars{ display:block; width:22px; height:14px; position:relative; }
.nav-toggle-bars span{ position:absolute; left:0; right:0; height:2px; background:currentColor; border-radius:2px; transition:transform .25s, opacity .2s, top .25s; }
.nav-toggle-bars span:nth-child(1){ top:0; } .nav-toggle-bars span:nth-child(2){ top:6px; } .nav-toggle-bars span:nth-child(3){ top:12px; }
.nav.is-open .nav-toggle-bars span:nth-child(1){ top:6px; transform:rotate(45deg); }
.nav.is-open .nav-toggle-bars span:nth-child(2){ opacity:0; }
.nav.is-open .nav-toggle-bars span:nth-child(3){ top:6px; transform:rotate(-45deg); }

@media (max-width:940px){
  .nav-toggle{ display:block; }
  .nav-links{ display:none; position:absolute; top:var(--nav-h); left:0; right:0; background:var(--c-dark-3); border-bottom:1px solid rgba(255,255,255,0.1); padding:10px 22px 26px; max-height:calc(100vh - var(--nav-h)); overflow:auto; }
  .nav.is-open .nav-links{ display:block; }
  .nav-links ul, .nav-fallback{ flex-direction:column; align-items:stretch; gap:0; }
  .nav-links a{ display:block; padding:13px 0; font-size:1rem; border-bottom:1px solid rgba(255,255,255,0.07); }
  .nav-links .nav-cta{ display:inline-block; margin-top:18px; padding:12px 22px; border:0; font-size:0.9rem; }
  .nav-links .sub-menu{ position:static; display:flex; background:none; border:0; box-shadow:none; padding:0 0 0 16px; min-width:0; }
  .nav-links .sub-menu::before{ display:none; }
  .nav-links .menu-item-has-children > a::after{ display:none; }
}

/* ==========================================================================
   Portada (hero) con imagen o video opcional
   ========================================================================== */
.hero{ position:relative; color:#fff; overflow:hidden; background:var(--c-dark-3); }
.hero--full{ min-height:calc(100svh - var(--nav-h)); display:flex; align-items:center; }
.hero--full > .wrap{ width:100%; }
.hero-bg{ position:absolute; inset:0; z-index:0; }
.hero-media{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; object-position:var(--focal, center); max-width:none; }
.hero-overlay{
  position:absolute; inset:0; opacity:var(--ov, 1);
  background:
    radial-gradient(130% 100% at 12% -10%, var(--c-dark-1) 0%, transparent 55%),
    radial-gradient(140% 120% at 92% 110%, var(--c-dark-3) 0%, transparent 60%),
    linear-gradient(160deg, var(--c-dark-1) 0%, var(--c-dark-2) 55%, var(--c-dark-3) 100%);
}
.hero.has-media .hero-overlay{
  background:
    linear-gradient(100deg,
      color-mix(in srgb, var(--c-dark-3) 94%, transparent) 0%,
      color-mix(in srgb, var(--c-dark-2) 80%, transparent) 45%,
      color-mix(in srgb, var(--c-dark-1) 35%, transparent) 100%);
}
.hero-stars, .mod--stars::before{
  position:absolute; inset:0; pointer-events:none;
  background:
    radial-gradient(1.5px 1.5px at 8% 22%, rgba(255,255,255,.55) 50%, transparent 52%),
    radial-gradient(1.5px 1.5px at 18% 68%, rgba(255,255,255,.35) 50%, transparent 52%),
    radial-gradient(1px 1px at 27% 40%, rgba(255,255,255,.5) 50%, transparent 52%),
    radial-gradient(1.5px 1.5px at 40% 15%, rgba(255,255,255,.3) 50%, transparent 52%),
    radial-gradient(1px 1px at 52% 55%, rgba(255,255,255,.45) 50%, transparent 52%),
    radial-gradient(1.5px 1.5px at 63% 30%, rgba(255,255,255,.3) 50%, transparent 52%),
    radial-gradient(1px 1px at 72% 72%, rgba(255,255,255,.4) 50%, transparent 52%),
    radial-gradient(1.5px 1.5px at 84% 20%, rgba(255,255,255,.35) 50%, transparent 52%),
    radial-gradient(1px 1px at 91% 60%, rgba(255,255,255,.5) 50%, transparent 52%),
    radial-gradient(1.5px 1.5px at 96% 38%, rgba(255,255,255,.3) 50%, transparent 52%);
}
@media (prefers-reduced-motion:reduce){ .hero video.hero-media{ display:none; } }

.hero > .wrap{ padding-top:92px; padding-bottom:80px; position:relative; z-index:1; }
.hero-eyebrow{ font-family:var(--f-accent); font-size:0.82rem; letter-spacing:0.16em; text-transform:uppercase; color:var(--c-highlight); margin:0 0 22px; display:flex; align-items:center; gap:10px; }
.hero-eyebrow svg{ width:14px; height:14px; flex-shrink:0; }
.hero h1{ font-size:clamp(2.4rem,5.2vw,4.1rem); line-height:1.08; margin:0 0 26px; max-width:22ch; }
.hero h1 em{ font-style:italic; color:var(--c-highlight); }
.hero .lede{ font-size:1.16rem; color:var(--c-on-dark); max-width:72ch; margin:0 0 36px; }
.hero-ctas{ display:flex; flex-wrap:wrap; gap:16px; margin-bottom:58px; }
.hero-stats{ display:flex; gap:44px; flex-wrap:wrap; border-top:1px solid rgba(255,255,255,0.18); padding-top:26px; }
.hero-stat{ flex:1 1 220px; max-width:36ch; }
.hero-stat .v{ font-family:var(--f-display); font-style:italic; font-size:1.42rem; display:block; color:#fff; line-height:1.25; }
.hero-stat .l{ font-size:0.76rem; color:var(--c-on-dark-soft); text-transform:uppercase; letter-spacing:0.05em; }
.hero .btn-ghost{ border-color:rgba(255,255,255,0.35); color:#fff; }
.hero .btn-ghost:hover{ border-color:var(--c-highlight); color:var(--c-highlight); }

/* Franja de segmentos */
.segmentos{ background:var(--c-dark-3); border-top:1px solid rgba(255,255,255,0.1); padding:18px 0; position:relative; z-index:1; }
.segmentos .wrap{ display:flex; flex-wrap:wrap; gap:10px 30px; justify-content:center; }
.segmentos span{ font-family:var(--f-accent); font-size:0.76rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--c-on-dark-soft); }
.segmentos span b{ color:var(--c-highlight); font-weight:400; margin-right:6px; }

/* Botones */
.btn{ display:inline-flex; align-items:center; gap:8px; font-family:var(--f-accent); font-size:0.86rem; letter-spacing:0.03em; padding:14px 26px; border-radius:34px; text-decoration:none; border:1px solid transparent; cursor:pointer; transition:transform .2s, background .2s, border-color .2s, color .2s; }
.btn-primary{ background:var(--c-accent); color:var(--c-on-accent); }
.btn-primary:hover{ background:var(--c-highlight); transform:translateY(-2px); }
.btn-ghost{ border-color:color-mix(in srgb, var(--c-ink) 35%, transparent); color:var(--c-ink); background:transparent; }
.btn-ghost:hover{ border-color:var(--c-accent-2); color:var(--c-accent-2); transform:translateY(-2px); }

/* ==========================================================================
   Módulos: contenedor, fondos y encabezado común
   ========================================================================== */
.mod{ position:relative; padding:96px 0; background:var(--c-bg); scroll-margin-top:calc(var(--nav-h) + 8px); }
@media (max-width:640px){ .mod{ padding:64px 0; } }
.mod > .wrap{ position:relative; z-index:1; }
.mod--alt{ background:var(--c-bg-alt); }

/* Fondos oscuros: se redefinen los colores para que todo lo de adentro se adapte solo */
.mod--dark, .mod--stars{
  --c-ink:#ffffff;
  --c-ink-soft:var(--c-on-dark);
  --c-accent-2:var(--c-highlight);
  --c-surface:rgba(255,255,255,0.05);
  --c-line:rgba(255,255,255,0.14);
  --c-tint:rgba(255,255,255,0.09);
  color:#fff;
}
.mod--dark{ background:linear-gradient(160deg, var(--c-dark-2) 0%, var(--c-dark-3) 100%); }
.mod--stars{ background:var(--c-dark-3); overflow:hidden; }
.mod--stars::before{ content:''; opacity:0.6; }

.section-head{ margin-bottom:52px; }
.section-head.has-note{ display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:start; gap:18px clamp(32px, 6vw, 88px); }
.section-head.has-note > div{ grid-column:1 / -1; }
.section-head.has-note .section-note{ grid-column:2; }
@media (max-width:860px){ .section-head.has-note{ grid-template-columns:1fr; } .section-head.has-note .section-note{ grid-column:1; } }
.kicker{ font-family:var(--f-accent); font-size:0.8rem; letter-spacing:0.13em; text-transform:uppercase; color:var(--c-accent-2); margin:0 0 14px; display:flex; align-items:center; gap:9px; }
.kicker svg{ width:13px; height:13px; flex-shrink:0; }
h2{ font-weight:500; font-size:clamp(1.7rem,3.4vw,2.5rem); line-height:1.18; margin:0; color:var(--c-ink); }
h2 em{ font-style:italic; color:var(--c-accent-2); }
.section-note{ color:var(--c-ink-soft); font-size:1.02rem; margin:0; }
.mod-intro{ font-size:1.08rem; color:var(--c-ink-soft); margin:-28px 0 44px; }
.mod-cierre{ margin:34px 0 0; font-size:1.04rem; color:var(--c-ink-soft); }
.mod-cierre b, .mod-cierre strong{ color:var(--c-ink); font-family:var(--f-display); font-style:italic; font-weight:500; font-size:1.12em; }
.mod-cierre--rule{ margin-top:46px; padding-top:28px; border-top:1px solid var(--c-line); }

/* Grilla de tarjetas compartida (situaciones, principios, niveles) */
.card-grid{ display:grid; grid-template-columns:repeat(var(--cols, 3), 1fr); gap:1px; background:var(--c-line); border:1px solid var(--c-line); border-radius:10px; overflow:hidden; }
@media (max-width:940px){ .card-grid{ grid-template-columns:repeat(min(var(--cols, 3), 2), 1fr); } }
@media (max-width:640px){ .card-grid{ grid-template-columns:1fr; } }
.card-grid > *{ background:var(--c-bg); transition:background .25s; }
.card-grid > *:hover{ background:var(--c-tint); }
.mod:not(.mod--dark):not(.mod--stars) .card-grid > *{ background:var(--c-surface); }
.mod:not(.mod--dark):not(.mod--stars) .card-grid > *:hover{ background:var(--c-tint); }
.mod--dark .card-grid > *, .mod--stars .card-grid > *{ background:color-mix(in srgb, var(--c-dark-3) 70%, transparent); }
.mod--dark .card-grid > *:hover, .mod--stars .card-grid > *:hover{ background:color-mix(in srgb, var(--c-dark-1) 30%, var(--c-dark-3)); }

/* --- Situaciones --- */
.situacion{ padding:30px 28px; display:flex; flex-direction:column; justify-content:space-between; gap:18px; }
.situacion p{ font-family:var(--f-display); font-style:italic; font-size:1.14rem; line-height:1.45; color:var(--c-ink); margin:0; }
.situacion span{ font-family:var(--f-accent); font-size:0.7rem; letter-spacing:0.09em; text-transform:uppercase; color:var(--c-accent-2); }

/* --- Comparativa --- */
.vs-grid{ display:grid; grid-template-columns:repeat(var(--cols, 3), 1fr); gap:18px; }
@media (max-width:860px){ .vs-grid{ grid-template-columns:1fr; } }
.vs-item{ border:1px solid var(--c-line); border-radius:10px; padding:24px 22px; }
.vs-item h3{ font-family:var(--f-accent); font-size:0.8rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--c-ink-soft); margin:0 0 10px; font-weight:400; }
.vs-item p{ font-size:0.92rem; color:var(--c-ink-soft); margin:0; opacity:0.8; }
.vs-lumina{ margin-top:18px; border:1px solid var(--c-accent-2); border-radius:10px; padding:32px 30px; background:color-mix(in srgb, var(--c-accent) 8%, transparent); display:flex; gap:22px; align-items:flex-start; }
.vs-lumina > svg{ width:26px; height:26px; flex-shrink:0; margin-top:4px; }
.vs-lumina h3{ font-family:var(--f-accent); font-size:0.8rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--c-accent-2); margin:0 0 10px; font-weight:400; }
.vs-lumina p{ font-size:1.02rem; color:var(--c-ink); margin:0; }
@media (max-width:640px){ .vs-lumina{ flex-direction:column; gap:14px; } }

/* --- Principios --- */
.principio{ padding:40px 32px 36px; position:relative; overflow:hidden; }
.principio .ghost{ position:absolute; top:16px; right:24px; font-family:var(--f-display); font-style:italic; font-weight:500; font-size:4.4rem; color:var(--c-line); line-height:1; user-select:none; pointer-events:none; }
.principio h3, .principio p{ position:relative; z-index:1; }
.principio h3{ font-family:var(--f-display); font-weight:500; font-size:1.32rem; margin:52px 0 12px; color:var(--c-ink); padding-right:12px; }
.principio p{ color:var(--c-ink-soft); font-size:0.95rem; margin:0; }

/* --- Áreas (filas alternadas) --- */
.lineas{ display:flex; flex-direction:column; }
.linea{ border-top:1px solid var(--c-line); padding:52px 0; display:grid; grid-template-columns:0.55fr 1.45fr; gap:40px; align-items:center; }
.lineas .linea:last-child{ border-bottom:1px solid var(--c-line); }
.linea:nth-child(even){ direction:rtl; }
.linea:nth-child(even) > *{ direction:ltr; }
.linea-num{ font-family:var(--f-display); font-style:italic; font-size:6.5rem; line-height:1; color:var(--c-tint); margin:0; }
.linea-icon{ display:inline-flex; width:34px; height:34px; margin-bottom:16px; color:var(--c-accent-2); }
.linea-icon svg{ width:100%; height:100%; }
.linea-title h3{ font-family:var(--f-display); font-weight:500; font-size:1.7rem; margin:0 0 8px; color:var(--c-ink); }
.linea-title .hook{ font-family:var(--f-display); font-style:italic; color:var(--c-accent-2); font-size:1.05rem; margin:0 0 14px; }
.linea-title .tag{ display:inline-block; font-family:var(--f-accent); font-size:0.74rem; letter-spacing:0.09em; text-transform:uppercase; color:var(--c-accent-2); border:1px solid var(--c-line); padding:4px 12px; border-radius:20px; margin-bottom:14px; }
.linea-body p{ color:var(--c-ink-soft); margin:0 0 16px; font-size:0.99rem; }
.linea-body ul{ margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:8px 12px; }
.linea-body li{ font-size:0.85rem; color:var(--c-ink); padding:6px 13px 6px 11px; border:1px solid var(--c-line); border-radius:20px; background:var(--c-surface); }
@media (max-width:860px){
  .linea{ grid-template-columns:1fr; gap:10px; }
  .linea:nth-child(even){ direction:ltr; }
  .linea-num{ font-size:3.6rem; }
}

/* --- Método (constelación) --- */
.metodo-name{ font-style:italic; color:var(--c-accent-2); }
.constelacion{ position:relative; margin-top:8px; }
.constelacion-line{ position:absolute; top:27px; left:5%; right:5%; height:1px; background:repeating-linear-gradient(to right, var(--c-accent-2) 0 6px, transparent 6px 13px); opacity:0.55; }
.constelacion-row{ display:flex; justify-content:space-between; position:relative; z-index:1; list-style:none; margin:0; padding:0; }
.constelacion-node{ display:flex; flex-direction:column; align-items:center; text-align:center; flex:1; padding:0 12px; }
.constelacion-star{ width:54px; height:54px; border-radius:50%; background:var(--c-surface); border:1px solid color-mix(in srgb, var(--c-accent-2) 45%, transparent); display:flex; align-items:center; justify-content:center; margin-bottom:18px; color:var(--c-accent-2); transition:transform .3s, border-color .3s, background .3s; }
.constelacion-node.is-highlight .constelacion-star{ color:var(--c-accent); }
.mod--dark .constelacion-star, .mod--stars .constelacion-star{ background:rgba(255,255,255,0.05); }
.constelacion-node:hover .constelacion-star{ transform:translateY(-4px) scale(1.06); border-color:var(--c-accent); background:color-mix(in srgb, var(--c-accent) 12%, transparent); }
.constelacion-star svg{ width:22px; height:22px; }
.constelacion-tag{ font-family:var(--f-accent); font-size:0.85rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--c-ink); margin:0 0 6px; }
.constelacion-area{ font-size:0.85rem; color:var(--c-ink-soft); margin:0; max-width:17ch; }
@media (max-width:860px){
  .constelacion-row{ flex-direction:column; gap:28px; }
  .constelacion-line{ display:none; }
  .constelacion-node{ flex-direction:row; text-align:left; gap:16px; }
  .constelacion-star{ margin-bottom:0; flex-shrink:0; }
  .constelacion-area{ max-width:none; }
}
.mod--metodo .mod-cierre{ margin-top:56px; }
.mod--metodo .mod-cierre b, .mod--metodo .mod-cierre strong{ font-family:inherit; font-style:normal; font-weight:700; font-size:1em; color:var(--c-accent-2); }

/* --- Niveles --- */
.tier{ padding:28px 24px; display:flex; flex-direction:column; }
.tier.is-highlight{ box-shadow:inset 0 3px 0 var(--c-accent-2); }
.tier .n{ font-size:0.74rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--c-accent-2); }
.tier h3{ font-family:var(--f-display); font-weight:500; font-size:1.28rem; margin:8px 0 12px; color:var(--c-ink); }
.tier p{ font-size:0.88rem; color:var(--c-ink-soft); margin:0; flex-grow:1; }
.mod--niveles .mod-cierre{ font-size:0.96rem; margin-top:26px; }

/* --- Casos --- */
.casos-list{ display:grid; gap:46px; }
.caso + .caso{ padding-top:40px; border-top:1px solid var(--c-line); }
.caso-tag{ font-size:0.78rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--c-accent-2); }
.caso-quote{ font-family:var(--f-display); font-style:italic; font-size:clamp(1.4rem,2.6vw,2rem); line-height:1.5; margin:18px 0 20px; max-width:60ch; color:var(--c-ink); }
.caso-attr{ color:var(--c-ink-soft); font-size:0.95rem; margin:0; }
.caso-attr strong{ color:var(--c-ink); }
.mod--casos .mod-cierre b, .mod--casos .mod-cierre strong{ font-family:inherit; font-style:normal; font-weight:400; font-size:1em; }

/* --- Llamado a la acción --- */
.cta-box{ text-align:center; max-width:920px; margin:0 auto; }
.cta-box .kicker{ justify-content:center; }
.cta-box h2{ margin:0 auto 18px; }
.cta-box p{ color:var(--c-ink-soft); font-size:1.06rem; margin:0 0 30px; }

/* --- Texto libre --- */
.mod-texto .entry-content{ padding:0; }

/* --- Contacto --- */
.no-se-que-necesito{ background:var(--c-tint); border-radius:10px; padding:32px 34px; margin-bottom:46px; }
.no-se-que-necesito h3{ font-family:var(--f-display); font-weight:500; font-size:1.42rem; margin:0 0 10px; color:var(--c-ink); }
.no-se-que-necesito p{ color:var(--c-ink-soft); margin:0; font-size:0.99rem; }
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:56px; }
@media (max-width:860px){ .contact-grid{ grid-template-columns:1fr; gap:32px; } }
.contact-grid .lede{ color:var(--c-ink-soft); max-width:60ch; margin:26px 0 22px; }
.contact-info{ list-style:none; margin:0; padding:0; font-size:0.98rem; }
.contact-info li{ margin-bottom:8px; }
.contact-info b{ color:var(--c-ink-soft); font-weight:400; display:inline-block; width:76px; }
.contact-info a{ text-decoration:none; }
.contact-info a:hover{ color:var(--c-accent-2); }
.contact-panel{ background:var(--c-surface); border:1px solid var(--c-line); border-radius:10px; padding:32px 30px; }
.contact-panel h4{ font-family:var(--f-accent); font-weight:400; font-size:0.92rem; margin:0 0 18px; color:var(--c-ink); }
.contact-panel ol{ margin:0; padding-left:18px; color:var(--c-ink-soft); font-size:0.92rem; }
.contact-panel ol li{ margin-bottom:12px; }

.contact-form{ display:grid; gap:14px; margin-top:6px; }
.contact-form .row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
@media (max-width:640px){ .contact-form .row{ grid-template-columns:1fr; } }
.contact-form label{ display:block; font-family:var(--f-accent); font-size:0.74rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--c-ink-soft); margin-bottom:6px; }
.contact-form input, .contact-form textarea{ width:100%; font:inherit; font-size:0.96rem; color:var(--c-ink); background:var(--c-surface); border:1px solid var(--c-line); border-radius:8px; padding:12px 14px; transition:border-color .2s, box-shadow .2s; }
.contact-form textarea{ min-height:130px; resize:vertical; }
.contact-form input:focus, .contact-form textarea:focus{ outline:none; border-color:var(--c-accent-2); box-shadow:0 0 0 3px color-mix(in srgb, var(--c-accent-2) 18%, transparent); }
.contact-form .hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
.contact-form .privacy{ font-size:0.8rem; color:var(--c-ink-soft); margin:0; }
.contact-form .privacy a{ color:var(--c-accent-2); }
.contact-form button{ justify-self:start; }
.form-notice{ border-radius:8px; padding:14px 18px; font-size:0.95rem; margin:0 0 18px; }
.form-notice.ok{ background:color-mix(in srgb, var(--c-accent) 12%, transparent); color:var(--c-ink); border:1px solid var(--c-accent); }
.form-notice.error{ background:#fdecec; color:#8a1f1f; border:1px solid #e5a0a0; }

/* ==========================================================================
   Pie de página con widgets y menú
   ========================================================================== */
.site-footer{ background:var(--c-dark-3); color:var(--c-on-dark-soft); }
.footer-widgets{ display:grid; grid-template-columns:repeat(var(--cols, 3), 1fr); gap:40px; padding-top:64px; padding-bottom:48px; border-bottom:1px solid rgba(255,255,255,0.1); }
@media (max-width:860px){ .footer-widgets{ grid-template-columns:1fr; gap:32px; } }
.footer-widgets .widget{ margin:0 0 24px; font-size:0.92rem; }
.footer-widgets .widget:last-child{ margin-bottom:0; }
.footer-widgets h2, .footer-widgets h3, .footer-widgets .widget-title, .footer-widgets .wp-block-heading{ font-family:var(--f-accent); font-weight:400; font-size:0.8rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--c-highlight); margin:0 0 14px; max-width:none; }
.footer-widgets p{ margin:0 0 10px; color:var(--c-on-dark); }
.footer-widgets ul{ list-style:none; margin:0; padding:0; }
.footer-widgets li{ margin:0 0 8px; }
.footer-widgets a{ color:var(--c-on-dark); text-decoration:none; }
.footer-widgets a:hover{ color:#fff; text-decoration:underline; }
.footer-widgets img{ height:auto; }
.footer-bottom{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:14px 28px; padding-top:34px; padding-bottom:34px; }
.foot-logo{ display:flex; align-items:center; gap:8px; color:#fff; text-decoration:none; }
.foot-logo svg{ width:16px; height:16px; }
.foot-logo span{ font-family:var(--f-accent); font-size:0.85rem; }
.foot-logo .custom-logo{ height:var(--logo-h-foot, 40px); width:auto; max-width:min(360px, 80vw); display:block; object-fit:contain; }
.footer-menu ul{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:6px 22px; }
.footer-menu a{ color:var(--c-on-dark); text-decoration:none; font-size:0.82rem; }
.footer-menu a:hover{ color:#fff; }
.site-footer small{ font-size:0.78rem; letter-spacing:0.02em; }

/* ==========================================================================
   Páginas internas
   ========================================================================== */
.entry-content{ max-width:84ch; padding:64px 0 96px; }
.entry-content h2{ font-size:1.7rem; margin:2em 0 .6em; }
.entry-content h3{ font-family:var(--f-display); font-size:1.3rem; margin:1.6em 0 .5em; }
.entry-content p, .entry-content li{ color:var(--c-ink-soft); }
.entry-content a{ color:var(--c-accent-2); }
.entry-content img{ height:auto; border-radius:8px; }
.post-list article{ border-top:1px solid var(--c-line); padding:32px 0; }
.post-list h2 a{ text-decoration:none; }

/* ==========================================================================
   v3: quiénes somos y constelación del método
   ========================================================================== */
/* Quiénes somos */
.equipo-intro{ display:grid; grid-template-columns:1.4fr 1fr; gap:48px; align-items:start; margin:-12px 0 52px; }
@media (max-width:860px){ .equipo-intro{ grid-template-columns:1fr; gap:24px; } }
.equipo-texto{ font-size:1.12rem; line-height:1.7; color:var(--c-ink-soft); margin:0; }
.equipo-areas{ list-style:none; margin:0; padding:0; display:flex; flex-wrap:wrap; gap:10px; }
.equipo-areas li{ display:inline-flex; align-items:center; gap:8px; font-family:var(--f-accent); font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--c-ink); background:var(--c-surface); border:1px solid var(--c-line); border-radius:30px; padding:8px 14px; }
.equipo-areas svg{ width:11px; height:11px; color:var(--c-accent-2); }
.equipo-grid{ display:grid; grid-template-columns:repeat(var(--cols, 2), 1fr); gap:24px; }
@media (max-width:860px){ .equipo-grid{ grid-template-columns:1fr; } }
.persona{ display:flex; gap:24px; align-items:flex-start; background:var(--c-surface); border:1px solid var(--c-line); border-radius:12px; padding:28px; }
@media (max-width:520px){ .persona{ flex-direction:column; } }
.persona-foto{ width:112px; height:112px; flex-shrink:0; border-radius:50%; overflow:hidden; background:var(--c-tint); display:flex; align-items:center; justify-content:center; }
.persona-foto img{ width:100%; height:100%; object-fit:cover; }
.persona-inicial{ font-family:var(--f-display); font-style:italic; font-size:2.6rem; color:var(--c-accent-2); }
.persona h3{ font-family:var(--f-display); font-weight:500; font-size:1.45rem; margin:0 0 2px; color:var(--c-ink); }
.persona-cargo{ font-family:var(--f-accent); font-size:0.74rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--c-accent-2); margin:0 0 12px; }
.persona-bio{ color:var(--c-ink-soft); font-size:0.95rem; margin:0 0 12px; }
.persona-bio.is-placeholder{ border:1px dashed #d9a441; background:#fff8e8; color:#7a5a12; padding:8px 10px; border-radius:6px; font-size:0.85rem; }
.persona-trayectoria{ list-style:none; margin:0; padding:0; border-top:1px solid var(--c-line); }
.persona-trayectoria li{ font-size:0.86rem; color:var(--c-ink); padding:7px 0; border-bottom:1px solid var(--c-line); }

/* Constelación del método */
.constelacion{ margin-top:4px; }
.constelacion-mapa{ position:relative; padding-bottom:88px; }
.constelacion-svg{ display:block; width:100%; height:auto; overflow:visible; }
.cst-fondo circle{ fill:currentColor; opacity:0.35; }
.cst-lineas line{ stroke:var(--c-accent-2); stroke-width:1.4; opacity:0.6; stroke-dasharray:2 7; stroke-linecap:round; }
.cst-estrella{ color:var(--c-accent-2); }
.cst-estrella.is-main{ color:var(--c-accent); }
.constelacion-etiquetas{ list-style:none; margin:0; padding:0; position:absolute; inset:0 0 88px 0; }
.cst-etiqueta{ position:absolute; left:var(--x); top:var(--y); transform:translate(-50%, 34px); text-align:center; width:max-content; max-width:17em; }
.cst-etiqueta.is-main{ transform:translate(-50%, 42px); }
.cst-num{ display:block; font-family:var(--f-display); font-style:italic; font-size:0.95rem; color:var(--c-accent-2); margin-bottom:2px; }
.constelacion-tag{ font-family:var(--f-accent); font-size:0.9rem; letter-spacing:0.08em; text-transform:uppercase; color:var(--c-ink); margin:0 0 4px; }
.constelacion-area{ font-size:0.86rem; color:var(--c-ink-soft); margin:0; }
@media (max-width:860px){
  .constelacion-mapa{ padding-bottom:0; }
  .constelacion-etiquetas{ position:static; display:grid; gap:18px; margin-top:22px; counter-reset:none; }
  .cst-etiqueta, .cst-etiqueta.is-main{ position:static; transform:none; text-align:left; width:auto; max-width:none; padding-left:16px; border-left:2px solid var(--c-line); }
  .cst-etiqueta.is-main{ border-left-color:var(--c-accent); }
}
.mod--metodo .mod-cierre{ margin-top:40px; }

/* ==========================================================================
   v4: fondos de portada (color y carrusel), página Acerca de nosotros
   ========================================================================== */
.hero--color{ background:var(--hero-color, var(--c-dark-2)); }
.hero--color .hero-bg{ background:var(--hero-color, var(--c-dark-2)); }

/* Carrusel */
.hero-slides{ position:absolute; inset:0; }
.hero-slide{ opacity:0; transition:opacity 1.4s ease; }
.hero-slide.is-active{ opacity:1; }
.hero--kenburns .hero-bg .hero-media{ animation:ln-kenburns 16s ease-out both; }
.hero--kenburns .hero-slide{ animation:none; }
.hero--kenburns .hero-slide.is-active{ animation:ln-kenburns 16s ease-out both; }
@keyframes ln-kenburns{ from{ transform:scale(1.001); } to{ transform:scale(1.07); } }
.hero-dots{ position:absolute; z-index:2; left:0; right:0; bottom:22px; display:flex; justify-content:center; gap:10px; }
.hero-dot{ width:30px; height:4px; padding:0; border:0; border-radius:4px; background:rgba(255,255,255,0.35); cursor:pointer; transition:background .3s, width .3s; }
.hero-dot:hover{ background:rgba(255,255,255,0.7); }
.hero-dot.is-active{ background:var(--c-highlight); width:46px; }
.hero-dot:focus-visible{ outline:2px solid #fff; outline-offset:4px; }
.hero-poster{ z-index:0; }
.hero video.hero-media{ z-index:0; }
@media (prefers-reduced-motion:reduce){
  .hero-slide{ transition:none; }
  .hero--kenburns .hero-bg .hero-media, .hero--kenburns .hero-slide.is-active{ animation:none; }
}

/* Encabezado de páginas internas */
.page-hero{ position:relative; overflow:hidden; background:linear-gradient(160deg, var(--c-dark-1) 0%, var(--c-dark-2) 55%, var(--c-dark-3) 100%); color:#fff; }
.page-hero::before{ content:''; position:absolute; inset:0; opacity:.55; pointer-events:none;
  background:
    radial-gradient(1.5px 1.5px at 12% 30%, rgba(255,255,255,.55) 50%, transparent 52%),
    radial-gradient(1px 1px at 34% 70%, rgba(255,255,255,.45) 50%, transparent 52%),
    radial-gradient(1.5px 1.5px at 58% 22%, rgba(255,255,255,.35) 50%, transparent 52%),
    radial-gradient(1px 1px at 76% 64%, rgba(255,255,255,.5) 50%, transparent 52%),
    radial-gradient(1.5px 1.5px at 90% 28%, rgba(255,255,255,.35) 50%, transparent 52%); }
.page-hero .wrap{ position:relative; padding-top:88px; padding-bottom:72px; }
.page-hero .kicker{ color:var(--c-highlight); }
.page-hero h1{ font-weight:500; font-size:clamp(2.3rem,4.8vw,3.7rem); line-height:1.1; margin:0; color:#fff; max-width:24ch; }
.page-hero h1 em{ font-style:italic; color:var(--c-highlight); }
.page-hero .page-lede{ font-size:1.16rem; color:var(--c-on-dark); max-width:72ch; margin:22px 0 0; }
.page-acerca .entry-content:empty{ display:none; }

/* Módulo: presentación (historia) */
.historia-grid{ display:grid; grid-template-columns:minmax(0,1.35fr) minmax(0,1fr); gap:clamp(32px, 6vw, 88px); align-items:start; }
@media (max-width:900px){ .historia-grid{ grid-template-columns:1fr; } }
.historia-texto{ font-size:1.1rem; line-height:1.75; color:var(--c-ink-soft); }
.historia-texto p{ margin:0 0 1.1em; }
.historia-texto p:first-child{ font-family:var(--f-display); font-size:1.45em; line-height:1.45; color:var(--c-ink); }
.historia-destacado{ position:relative; background:var(--c-dark-3); color:var(--c-on-dark); border-radius:14px; padding:40px 34px 36px; overflow:hidden; }
.historia-destacado::after{ content:''; position:absolute; right:-40px; bottom:-40px; width:180px; height:180px; border-radius:50%; background:radial-gradient(circle, color-mix(in srgb, var(--c-accent) 35%, transparent) 0%, transparent 70%); }
.historia-destacado > svg{ width:34px; height:34px; margin-bottom:18px; }
.historia-destacado h3{ font-family:var(--f-display); font-weight:500; font-size:1.55rem; line-height:1.3; color:#fff; margin:0 0 12px; }
.historia-destacado p{ margin:0; font-size:1rem; position:relative; z-index:1; }
.pilares{ display:grid; grid-template-columns:repeat(var(--cols, 3), minmax(0,1fr)); gap:24px; margin-top:64px; }
@media (max-width:860px){ .pilares{ grid-template-columns:1fr; } }
.pilar{ border-top:2px solid var(--c-accent); padding-top:22px; }
.pilar-head{ display:flex; align-items:center; gap:12px; margin:0 0 10px; }
.pilar-head svg{ width:20px; height:20px; color:var(--c-accent-2); flex-shrink:0; }
.pilar h3{ font-family:var(--f-display); font-weight:500; font-size:1.45rem; margin:0; color:var(--c-ink); }
.pilar p{ margin:0; color:var(--c-ink-soft); font-size:0.98rem; }

/* Módulo: perfiles en detalle */
.perfiles{ display:grid; gap:clamp(56px, 8vw, 96px); }
.perfil{ display:grid; grid-template-columns:minmax(220px, 0.8fr) minmax(0, 1.6fr); gap:clamp(28px, 5vw, 72px); align-items:start; }
.perfil:nth-child(even){ grid-template-columns:minmax(0, 1.6fr) minmax(220px, 0.8fr); }
.perfil:nth-child(even) .perfil-foto{ order:2; }
@media (max-width:820px){
  .perfil, .perfil:nth-child(even){ grid-template-columns:1fr; }
  .perfil:nth-child(even) .perfil-foto{ order:0; }
  .perfil-foto{ max-width:340px; }
}
.perfil-foto{ position:relative; aspect-ratio:4 / 5; border-radius:14px; overflow:hidden; background:linear-gradient(160deg, var(--c-tint), var(--c-surface)); border:1px solid var(--c-line); display:flex; align-items:center; justify-content:center; }
.perfil-foto img{ width:100%; height:100%; object-fit:cover; display:block; }
.perfil-foto .persona-inicial{ font-size:6rem; }
.perfil-cargo{ font-family:var(--f-accent); font-size:0.8rem; letter-spacing:0.12em; text-transform:uppercase; color:var(--c-accent-2); margin:0 0 8px; }
.perfil h3{ font-family:var(--f-display); font-weight:500; font-size:clamp(2rem,3.4vw,2.7rem); line-height:1.1; margin:0 0 22px; color:var(--c-ink); }
.perfil-bio{ font-size:1.06rem; line-height:1.75; color:var(--c-ink-soft); }
.perfil-bio p{ margin:0 0 1em; }
.perfil-bio.is-placeholder{ border:1px dashed #d9a441; background:#fff8e8; color:#7a5a12; padding:12px 14px; border-radius:8px; font-size:0.92rem; }
.perfil-trayectoria{ list-style:none; margin:26px 0 0; padding:0; display:grid; grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); gap:0 28px; border-top:1px solid var(--c-line); }
.perfil-trayectoria li{ display:flex; gap:10px; align-items:baseline; font-size:0.93rem; color:var(--c-ink); padding:10px 0; border-bottom:1px solid var(--c-line); }
.perfil-trayectoria svg{ width:10px; height:10px; color:var(--c-accent-2); flex-shrink:0; }
.perfil-link{ display:inline-flex; align-items:center; gap:8px; margin-top:22px; font-family:var(--f-accent); font-size:0.82rem; letter-spacing:0.1em; text-transform:uppercase; color:var(--c-accent-2); text-decoration:none; border-bottom:1px solid currentColor; padding-bottom:2px; }
.perfil-link:hover{ color:var(--c-ink); }

/* Enlace a la página Acerca de nosotros desde el módulo Quiénes somos */
.equipo-mas{ margin:36px 0 0; }

/* v4.0.2: portada en celular (imagen vertical opcional y punto de enfoque propio) */
.hero-picture{ display:contents; }
@media (max-width:700px){
  .hero-media{ object-position:var(--focal-m, var(--focal, center)); }
}
