:root{
  --ep-bg:#131315; --ep-ink:#f3f3f1; --ep-muted:#cfcfcc; --ep-accent:#e6d9c7; --ep-outline:#d9d4c9;
  --container:min(1100px,92vw);
  --nav-gap:64px;
  --nav-cols:2;
  --btn-radius:999px; --btn-py:12px; --btn-px:18px;
  --underline-ms:600ms; --btn-fill-ms:900ms; --fade-ms:700ms;
}

.cta{ position:relative; color:var(--ep-ink); background:var(--ep-bg); padding-block:100px; overflow:hidden; }

/* Halo superior */
.cta::before{
  content:""; position:absolute; inset:-80px 0 auto 0; height:160px;
  background:radial-gradient(1200px 200px at 50% 0%, rgba(255,255,255,.06), transparent 60%);
  pointer-events:none; z-index:0;
}

/* Fondo */
.cta .cta-bg{ position:absolute; inset:0; z-index:0; }
.cta .cta-bg img, .cta .cta-bg video{
  width:100%; height:100%; object-fit:cover; object-position:50% 50%;
  display:block; filter: brightness(0.98) contrast(1.02) saturate(1.02);
}
.cta .cta-bg::after{ content:""; position:absolute; inset:0; z-index:1; background:transparent; opacity:0; pointer-events:none; }

/* Contenido */
.cta .ep-wrap{ width:var(--container); margin:0 auto; position:relative; z-index:2; }

/* Nav */
.cta .ep-nav{
  display:grid;
  grid-template-columns: repeat(var(--nav-cols), minmax(0,1fr));
  gap: var(--nav-gap);
  align-items:start;
}
.cta .ep-card{ display:flex; flex-direction:column; gap:12px; }

.cta .ep-link{
  display:inline-flex; align-items:center; gap:.6rem;
  font-weight:500; font-size:clamp(18px,2.2vw,22px); line-height:1.2;
  color: var(--ep-ink); text-decoration:none; letter-spacing:.2px;
}
.cta .ep-link .arrow{ opacity:.9; translate:-2px 0; transition: translate var(--underline-ms) ease, opacity var(--underline-ms) ease; }
.cta .ep-link .label{ position:relative; }
.cta .ep-link .label::after{
  content:""; position:absolute; left:0; bottom:-4px; width:0; height:1px; background:currentColor; opacity:.7;
  transition: width var(--underline-ms) ease;
}
.cta .ep-link:hover .label::after{ width:100% }
.cta .ep-link:hover .arrow{ translate:0 0; opacity:1 }

/* Botón fantasma */
.cta .ep-btn{
  display:inline-block; text-decoration:none; color:var(--ep-ink);
  border:1px solid color-mix(in oklab, var(--ep-outline) 88%, transparent);
  padding: var(--btn-py) var(--btn-px);
  border-radius: var(--btn-radius);
  font-weight:500; font-size:15px; letter-spacing:.2px;
  position:relative; overflow:hidden; isolation:isolate;
  transition: color var(--btn-fill-ms) ease, border-color var(--btn-fill-ms) ease;
}
.cta .ep-btn::before{
  content:""; position:absolute; inset:0; z-index:-1;
  background: color-mix(in oklab, var(--ep-accent) 14%, transparent);
  transform: scaleX(0); transform-origin:left;
  transition: transform var(--btn-fill-ms) ease;
}
.cta .ep-btn:hover::before{ transform: scaleX(1); }
.cta .ep-btn:hover{ border-color: color-mix(in oklab, var(--ep-accent) 70%, var(--ep-outline) 30%); }

/* Invitación inferior */
.cta .ep-invite{ margin: clamp(44px, 8vw, 100px) auto 0; text-align:center; max-width:44ch; }
.cta .ep-invite p{
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(22px, 3.2vw, 30px);
  margin: 0 0 18px;
}

/* Aparición */
.cta .ep-reveal{ opacity:0; transform: translateY(8px); transition: opacity var(--fade-ms) ease, transform var(--fade-ms) ease; will-change:opacity,transform; }
.cta .ep-reveal.is-in{ opacity:1; transform:none; }

/* Mostrar TODO dentro del editor de Elementor */
.elementor-editor-active .cta .ep-reveal{ opacity:1 !important; transform:none !important; }

/* Responsive */
@media (max-width: 860px){
  .cta .ep-nav{ --nav-cols: 1; text-align:center; }
  .cta .ep-link{ justify-content:center; }
}

/* Accesibilidad */
@media (prefers-reduced-motion: reduce){
  .cta .ep-link .label::after,
  .cta .ep-link .arrow,
  .cta .ep-btn, .cta .ep-btn::before,
  .cta .ep-reveal{ transition-duration: 0ms !important; transform:none !important; }
}

/* SR only */
.cta .sr-only{ position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
