.elementor-kit-6{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-6 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS *//* ================================================================
   SOCIAL LINK · Design System CSS para Elementor
   Agencia de Marketing Digital · Ecuador · v2.1
   ─────────────────────────────────────────────
   CÓMO PEGAR:
   Elementor → Configuración de Sitio → CSS Personalizado
   ó Apariencia → Personalizar → CSS Adicional
   ================================================================ */


/* ================================================================
   1. TOKENS / VARIABLES GLOBALES
      Se declaran en :root para que Elementor los herede en todos
      sus widgets. También se remapean a las variables nativas de
      Elementor (--e-global-color-*) para que el picker las recoja.
   ================================================================ */
:root {
  /* ── Marca ─────────────────────────────────────────────────── */
  --sl-magenta:         #E5097F;
  --sl-purple:          #6B1A8F;
  --sl-purple-mid:      #7B1FA2;
  --sl-ink:             #0F0518;
  --sl-ink-deep:        #1A0D2E;
  --sl-gray:            #9E9E9E;
  --sl-gray-light:      #E0E0E0;
  --sl-white:           #FFFFFF;
  --sl-pink-soft:       #FFF0F7;
  --sl-bg-light:        #FAFAFA;

  /* ── Degradados ─────────────────────────────────────────────── */
  --sl-grad-h:          linear-gradient(90deg,  #E5097F 0%, #6B1A8F 100%);
  --sl-grad-v:          linear-gradient(180deg, #6B1A8F 0%, #E5097F 100%);
  --sl-grad-diag:       linear-gradient(135deg, #6B1A8F 0%, #C4297A 50%, #E5097F 100%);

  /* ── Tipografía ─────────────────────────────────────────────── */
  --font-display:       'Montserrat', system-ui, sans-serif;
  --font-body:          'Poppins',    system-ui, sans-serif;

  /* ── Escala tipográfica (clamp = fluida entre móvil y desktop) ─ */
  --fs-hero:    clamp(40px, 7vw, 88px);
  --fs-h1:      clamp(28px, 5vw, 56px);
  --fs-h2:      clamp(22px, 4vw, 42px);
  --fs-h3:      clamp(18px, 3vw, 28px);
  --fs-h4:      clamp(16px, 2.5vw, 22px);
  --fs-lead:    clamp(15px, 2vw, 18px);
  --fs-body:    15px;
  --fs-small:   13px;
  --fs-caption: 11px;

  /* ── Espaciado (grid 4pt) ───────────────────────────────────── */
  --sp-1: 4px;   --sp-2: 8px;   --sp-3: 12px;  --sp-4: 16px;
  --sp-5: 24px;  --sp-6: 32px;  --sp-7: 48px;  --sp-8: 64px;
  --sp-9: 96px;  --sp-10: 128px;

  /* ── Border radius ──────────────────────────────────────────── */
  --r-xs:   4px;   --r-sm: 8px;   --r-md: 16px;
  --r-lg:   24px;  --r-xl: 32px;  --r-pill: 999px;

  /* ── Sombras ────────────────────────────────────────────────── */
  --shadow-sm:    0 1px 4px  rgba(15,5,24,.07);
  --shadow-md:    0 8px 24px rgba(15,5,24,.10);
  --shadow-lg:    0 24px 60px rgba(15,5,24,.18);
  --shadow-glow:  0 12px 40px rgba(229,9,127,.45);
  --shadow-glow-sm: 0 8px 24px rgba(229,9,127,.30);

  /* ── Bordes ─────────────────────────────────────────────────── */
  --border:         1px solid #E0E0E0;
  --border-dark:    1px solid rgba(255,255,255,.18);
  --border-brand:   1px solid rgba(229,9,127,.35);

  /* ── Transiciones ───────────────────────────────────────────── */
  --ease-out:    cubic-bezier(.22,.61,.36,1);
  --ease-spring: cubic-bezier(.34,1.56,.64,1);
  --dur-fast:  140ms;
  --dur-base:  220ms;
  --dur-slow:  380ms;

  /* ── Mapeo a variables nativas de Elementor ─────────────────── */
  --e-global-color-primary:    #E5097F;
  --e-global-color-secondary:  #6B1A8F;
  --e-global-color-text:       #0F0518;
  --e-global-color-accent:     #7B1FA2;
  --e-global-typography-primary-font-family:    'Montserrat';
  --e-global-typography-secondary-font-family:  'Poppins';
  --e-global-typography-primary-font-weight:    700;
}


/* ================================================================
   2. BASE GLOBAL (mínimo para no chocar con Elementor)
   ================================================================ */
body {
  font-family:     var(--font-body);
  font-size:       var(--fs-body);
  color:           var(--sl-ink);
  background:      var(--sl-white);
  -webkit-font-smoothing:  antialiased;
  -moz-osx-font-smoothing: grayscale;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--font-display);
  font-weight: 800;
  line-height: 1.1;
  color:       var(--sl-ink);
}

a { color: var(--sl-magenta); text-decoration: none; transition: color var(--dur-base) var(--ease-out); }
a:hover { color: var(--sl-purple); }

img { max-width: 100%; height: auto; display: block; }

/* Scrollbar de marca */
::-webkit-scrollbar              { width: 6px; height: 6px; }
::-webkit-scrollbar-track        { background: var(--sl-bg-light); }
::-webkit-scrollbar-thumb        { background: var(--sl-magenta); border-radius: var(--r-pill); }
::-webkit-scrollbar-thumb:hover  { background: var(--sl-purple); }

/* Selección de texto */
::selection { background: var(--sl-magenta); color: var(--sl-white); }


/* ================================================================
   3. TIPOGRAFÍA — Overrides directos sobre Elementor
   ================================================================ */
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--font-display) !important;
  line-height:  1.1;
}

/* Tamaños por clase de Elementor */
.elementor-widget-heading h1.elementor-heading-title { font-size: var(--fs-h1); font-weight: 900; }
.elementor-widget-heading h2.elementor-heading-title { font-size: var(--fs-h2); font-weight: 800; }
.elementor-widget-heading h3.elementor-heading-title { font-size: var(--fs-h3); font-weight: 700; }
.elementor-widget-heading h4.elementor-heading-title { font-size: var(--fs-h4); font-weight: 700; }

.elementor-widget-text-editor { font-family: var(--font-body); font-size: var(--fs-body); line-height: 1.75; color: var(--sl-ink-deep); }

/* Hero headline utilitaria */
.sl-hero-title                 { font-family: var(--font-display); font-size: var(--fs-hero); font-weight: 900; letter-spacing: -.03em; line-height: .95; }
.sl-lead                       { font-family: var(--font-body); font-size: var(--fs-lead); font-weight: 400; color: var(--sl-gray); line-height: 1.7; }
.sl-label                      { font-family: var(--font-display); font-size: var(--fs-caption); font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--sl-magenta); }
.sl-caption                    { font-size: var(--fs-caption); color: var(--sl-gray); }

/* Texto degradado de marca */
.sl-text-gradient {
  background: var(--sl-grad-h);
  -webkit-background-clip: text;
  -webkit-text-fill-color:  transparent;
  background-clip: text;
}


/* ================================================================
   4. BOTONES — Capa de marca sobre los botones de Elementor
   ================================================================ */

/* ── Botón Primario (fondo degradado) ──────────────────────────── */
.elementor-button.sl-btn-primary,
.sl-btn-primary {
  display:         inline-flex;
  align-items:     center;
  gap:             var(--sp-2);
  background:      var(--sl-grad-h);
  color:           var(--sl-white) !important;
  font-family:     var(--font-display);
  font-size:       var(--fs-small);
  font-weight:     700;
  letter-spacing:  .1em;
  text-transform:  uppercase;
  border:          none;
  border-radius:   var(--r-pill);
  padding:         14px 32px;
  box-shadow:      var(--shadow-glow-sm);
  transition:      transform var(--dur-base) var(--ease-spring),
                   box-shadow var(--dur-base) var(--ease-out);
  cursor:          pointer;
  position:        relative;
  overflow:        hidden;
}
.elementor-button.sl-btn-primary::after,
.sl-btn-primary::after {
  content:    '';
  position:   absolute;
  inset:      0;
  background: rgba(255,255,255,.12);
  opacity:    0;
  transition: opacity var(--dur-fast);
}
.elementor-button.sl-btn-primary:hover,
.sl-btn-primary:hover {
  transform:   translateY(-2px);
  box-shadow:  var(--shadow-glow);
  color:       var(--sl-white) !important;
}
.elementor-button.sl-btn-primary:hover::after,
.sl-btn-primary:hover::after { opacity: 1; }
.elementor-button.sl-btn-primary:active,
.sl-btn-primary:active        { transform: translateY(0); }

/* ── Botón Secundario (outline magenta) ────────────────────────── */
.elementor-button.sl-btn-outline,
.sl-btn-outline {
  display:        inline-flex;
  align-items:    center;
  gap:            var(--sp-2);
  background:     transparent;
  color:          var(--sl-magenta) !important;
  font-family:    var(--font-display);
  font-size:      var(--fs-small);
  font-weight:    700;
  letter-spacing: .1em;
  text-transform: uppercase;
  border:         2px solid var(--sl-magenta);
  border-radius:  var(--r-pill);
  padding:        12px 30px;
  transition:     background var(--dur-base) var(--ease-out),
                  color     var(--dur-base) var(--ease-out),
                  transform var(--dur-base) var(--ease-spring),
                  box-shadow var(--dur-base) var(--ease-out);
}
.elementor-button.sl-btn-outline:hover,
.sl-btn-outline:hover {
  background:  var(--sl-magenta);
  color:       var(--sl-white) !important;
  transform:   translateY(-2px);
  box-shadow:  var(--shadow-glow-sm);
}

/* ── Botón Fantasma (sobre fondos oscuros) ─────────────────────── */
.elementor-button.sl-btn-ghost,
.sl-btn-ghost {
  display:        inline-flex;
  align-items:    center;
  gap:            var(--sp-2);
  background:     rgba(255,255,255,.1);
  color:          var(--sl-white) !important;
  font-family:    var(--font-display);
  font-size:      var(--fs-small);
  font-weight:    700;
  letter-spacing: .1em;
  text-transform: uppercase;
  border:         1px solid rgba(255,255,255,.3);
  border-radius:  var(--r-pill);
  padding:        13px 30px;
  backdrop-filter: blur(8px);
  transition:     background var(--dur-base) var(--ease-out),
                  border-color var(--dur-base),
                  transform    var(--dur-base) var(--ease-spring);
}
.elementor-button.sl-btn-ghost:hover,
.sl-btn-ghost:hover {
  background:   rgba(255,255,255,.2);
  border-color: rgba(255,255,255,.6);
  transform:    translateY(-2px);
}

/* ── Botón Icono (círculo) ─────────────────────────────────────── */
.sl-btn-icon {
  display:        inline-flex;
  align-items:    center;
  justify-content: center;
  width:  48px;
  height: 48px;
  background:    var(--sl-grad-diag);
  border-radius: 50%;
  border:        none;
  box-shadow:    var(--shadow-glow-sm);
  transition:    transform var(--dur-base) var(--ease-spring),
                 box-shadow var(--dur-base) var(--ease-out);
  cursor:        pointer;
}
.sl-btn-icon:hover { transform: translateY(-2px) scale(1.08); box-shadow: var(--shadow-glow); }


/* ================================================================
   5. SECCIONES — Clases aplicables en "CSS ID / Clases CSS"
                  del panel de Elementor por sección
   ================================================================ */

/* ── Fondo oscuro profundo con blob decorativo ─────────────────── */
.sl-section-dark {
  background: var(--sl-ink);
  position:   relative;
  overflow:   hidden;
}
.sl-section-dark::before {
  content:       '';
  position:      absolute;
  top:    -200px;
  right:  -200px;
  width:   600px;
  height:  600px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(229,9,127,.18) 0%, transparent 70%);
  pointer-events: none;
}
.sl-section-dark::after {
  content:       '';
  position:      absolute;
  bottom: -180px;
  left:   -180px;
  width:   500px;
  height:  500px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(107,26,143,.15) 0%, transparent 70%);
  pointer-events: none;
}

/* ── Fondo degradado de marca ──────────────────────────────────── */
.sl-section-gradient {
  background: var(--sl-grad-diag);
  position:   relative;
  overflow:   hidden;
}
.sl-section-gradient::before {
  content: '';
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Ccircle cx='30' cy='30' r='1'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  pointer-events: none;
}

/* ── Fondo claro con sutil textura ─────────────────────────────── */
.sl-section-light {
  background:    var(--sl-bg-light);
  border-top:    1px solid var(--sl-gray-light);
  border-bottom: 1px solid var(--sl-gray-light);
}

/* ── Sección con barra superior de marca ───────────────────────── */
.sl-section-accent-top { border-top: 4px solid; border-image: var(--sl-grad-h) 1; }

/* ── Sección Hero ─────────────────────────────────────────────── */
.sl-section-hero {
  background: var(--sl-ink);
  position:   relative;
  overflow:   hidden;
  min-height: 100vh;
  display:    flex;
  align-items: center;
}
.sl-section-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 60% at 70% 40%, rgba(229,9,127,.22) 0%, transparent 65%),
    radial-gradient(ellipse 60% 50% at 20% 70%, rgba(107,26,143,.18) 0%, transparent 60%);
  pointer-events: none;
}


/* ================================================================
   6. CARDS — Clases para Image Box, Icon Box y contenedores custom
   ================================================================ */

/* ── Card base (fondo blanco, sombra sutil) ────────────────────── */
.sl-card {
  background:    var(--sl-white);
  border-radius: var(--r-lg);
  border:        var(--border);
  box-shadow:    var(--shadow-sm);
  padding:       var(--sp-7) var(--sp-6);
  transition:    transform var(--dur-base) var(--ease-out),
                 box-shadow var(--dur-base) var(--ease-out),
                 border-color var(--dur-base);
  position:      relative;
  overflow:      hidden;
}
.sl-card:hover {
  transform:    translateY(-6px);
  box-shadow:   var(--shadow-lg);
  border-color: rgba(229,9,127,.35);
}
/* Línea de acento top al hacer hover */
.sl-card::before {
  content:    '';
  position:   absolute;
  top: 0; left: 0; right: 0;
  height:     3px;
  background: var(--sl-grad-h);
  transform:  scaleX(0);
  transform-origin: left;
  transition: transform var(--dur-base) var(--ease-out);
}
.sl-card:hover::before { transform: scaleX(1); }

/* ── Card oscura ───────────────────────────────────────────────── */
.sl-card-dark {
  background:    var(--sl-ink-deep);
  border-radius: var(--r-lg);
  border:        1px solid rgba(255,255,255,.08);
  padding:       var(--sp-7) var(--sp-6);
  transition:    transform var(--dur-base) var(--ease-out),
                 box-shadow var(--dur-base) var(--ease-out),
                 border-color var(--dur-base);
}
.sl-card-dark:hover {
  transform:    translateY(-6px);
  box-shadow:   var(--shadow-glow);
  border-color: rgba(229,9,127,.45);
}

/* ── Card con degradado (servicio destacado) ───────────────────── */
.sl-card-gradient {
  background:    var(--sl-grad-diag);
  border-radius: var(--r-lg);
  padding:       var(--sp-7) var(--sp-6);
  position:      relative;
  overflow:      hidden;
  box-shadow:    var(--shadow-glow);
  transition:    transform var(--dur-base) var(--ease-out),
                 box-shadow var(--dur-base) var(--ease-out);
}
.sl-card-gradient:hover {
  transform:  translateY(-6px);
  box-shadow: 0 24px 60px rgba(229,9,127,.55);
}
.sl-card-gradient::after {
  content:    '';
  position:   absolute;
  top:  -60px; right: -60px;
  width:  200px; height: 200px;
  border-radius: 50%;
  background: rgba(255,255,255,.08);
  pointer-events: none;
}

/* ── Card estadística/número ───────────────────────────────────── */
.sl-stat-card {
  text-align:    center;
  padding:       var(--sp-7) var(--sp-5);
  border-radius: var(--r-lg);
  background:    var(--sl-white);
  border:        var(--border);
  box-shadow:    var(--shadow-sm);
}
.sl-stat-card .sl-stat-number {
  display:        block;
  font-family:    var(--font-display);
  font-size:      var(--fs-h1);
  font-weight:    900;
  line-height:    1;
  background:     var(--sl-grad-h);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  margin-bottom:  var(--sp-2);
}
.sl-stat-card .sl-stat-label {
  font-family:    var(--font-display);
  font-size:      var(--fs-small);
  font-weight:    600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color:          var(--sl-gray);
}


/* ================================================================
   7. ÍCONO / BADGE DE MARCA
   ================================================================ */
.sl-icon-wrap {
  width:          56px;
  height:         56px;
  border-radius:  var(--r-md);
  background:     var(--sl-grad-diag);
  display:        inline-flex;
  align-items:    center;
  justify-content: center;
  box-shadow:     var(--shadow-glow-sm);
  transition:     transform var(--dur-base) var(--ease-spring),
                  box-shadow var(--dur-base) var(--ease-out);
}
.sl-icon-wrap:hover { transform: scale(1.1) rotate(-4deg); box-shadow: var(--shadow-glow); }

.sl-icon-wrap.sl-icon-sm { width: 40px; height: 40px; border-radius: var(--r-sm); }
.sl-icon-wrap.sl-icon-lg { width: 72px; height: 72px; border-radius: var(--r-lg); }
.sl-icon-wrap.sl-icon-circle { border-radius: 50%; }
.sl-icon-wrap.sl-icon-ghost  { background: rgba(229,9,127,.1); box-shadow: none; border: 1px solid rgba(229,9,127,.25); }

/* Badge de tag */
.sl-badge {
  display:        inline-flex;
  align-items:    center;
  gap:            var(--sp-1);
  background:     rgba(229,9,127,.1);
  color:          var(--sl-magenta);
  border:         1px solid rgba(229,9,127,.3);
  border-radius:  var(--r-pill);
  padding:        4px 14px;
  font-family:    var(--font-display);
  font-size:      var(--fs-caption);
  font-weight:    700;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.sl-badge.sl-badge-dark {
  background:  rgba(229,9,127,.15);
  color:       #F06292;
  border-color: rgba(229,9,127,.25);
}
.sl-badge.sl-badge-solid { background: var(--sl-magenta); color: var(--sl-white); border-color: transparent; }


/* ================================================================
   8. FORMULARIOS — Override de WPForms / CF7 / Elementor Form
   ================================================================ */
.elementor-form input[type="text"],
.elementor-form input[type="email"],
.elementor-form input[type="tel"],
.elementor-form input[type="number"],
.elementor-form textarea,
.elementor-form select,
.wpcf7-form input[type="text"],
.wpcf7-form input[type="email"],
.wpcf7-form input[type="tel"],
.wpcf7-form textarea {
  font-family:   var(--font-body);
  font-size:     var(--fs-body);
  color:         var(--sl-ink);
  background:    var(--sl-white);
  border:        1.5px solid var(--sl-gray-light) !important;
  border-radius: var(--r-sm) !important;
  padding:       14px 18px !important;
  width:         100%;
  transition:    border-color var(--dur-fast),
                 box-shadow   var(--dur-fast);
  outline:       none;
}
.elementor-form input:focus,
.elementor-form textarea:focus,
.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
  border-color: var(--sl-magenta) !important;
  box-shadow:   0 0 0 3px rgba(229,9,127,.15) !important;
}
.elementor-form label,
.wpcf7-form label {
  font-family:    var(--font-display);
  font-size:      var(--fs-small);
  font-weight:    600;
  color:          var(--sl-ink);
  margin-bottom:  var(--sp-2);
  display:        block;
}
.elementor-form .elementor-button[type="submit"] {
  background:     var(--sl-grad-h);
  color:          var(--sl-white) !important;
  font-family:    var(--font-display) !important;
  font-weight:    700 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  border:         none !important;
  border-radius:  var(--r-pill) !important;
  padding:        14px 36px !important;
  box-shadow:     var(--shadow-glow-sm);
  transition:     transform var(--dur-base) var(--ease-spring),
                  box-shadow var(--dur-base) var(--ease-out);
}
.elementor-form .elementor-button[type="submit"]:hover {
  transform:  translateY(-2px);
  box-shadow: var(--shadow-glow);
}


/* ================================================================
   9. BARRA DE NAVEGACIÓN (compatible con Elementor Header Builder
      y con temas como Hello, Astra, GeneratePress)
   ================================================================ */
.site-header,
.elementor-location-header,
#masthead {
  background:    rgba(15,5,24,.95);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  border-bottom: 1px solid rgba(229,9,127,.2);
  transition:    background var(--dur-base), box-shadow var(--dur-base);
  position:      sticky;
  top: 0;
  z-index: 1000;
}
/* Cuando se hace scroll */
.site-header.scrolled,
.elementor-location-header.scrolled {
  box-shadow: 0 8px 32px rgba(15,5,24,.5);
}

/* Logo */
.site-logo img, .custom-logo-link img {
  max-height: 48px;
  width: auto;
  transition: transform var(--dur-base) var(--ease-spring);
}
.site-logo img:hover, .custom-logo-link img:hover { transform: scale(1.04); }

/* Links de nav */
.main-navigation a,
.elementor-nav-menu a {
  font-family:    var(--font-display);
  font-size:      var(--fs-small);
  font-weight:    600;
  letter-spacing: .08em;
  text-transform: uppercase;
  color:          rgba(255,255,255,.65) !important;
  transition:     color var(--dur-fast) !important;
  position:       relative;
}
.main-navigation a::after,
.elementor-nav-menu a::after {
  content:    '';
  position:   absolute;
  bottom:    -3px; left: 0;
  width:  0; height: 2px;
  background: var(--sl-grad-h);
  transition: width var(--dur-base) var(--ease-out);
  border-radius: var(--r-pill);
}
.main-navigation a:hover,
.elementor-nav-menu a:hover { color: var(--sl-white) !important; }
.main-navigation a:hover::after,
.elementor-nav-menu a:hover::after { width: 100%; }
.main-navigation .current-menu-item > a,
.elementor-nav-menu .current > a { color: var(--sl-magenta) !important; }

/* CTA en nav */
.nav-cta > a,
.elementor-nav-menu__item--cta > a {
  background:    var(--sl-grad-h) !important;
  color:         var(--sl-white) !important;
  border-radius: var(--r-pill) !important;
  padding:       8px 20px !important;
  box-shadow:    var(--shadow-glow-sm);
}
.nav-cta > a:hover,
.elementor-nav-menu__item--cta > a:hover {
  box-shadow: var(--shadow-glow);
  transform:  translateY(-1px);
}
.nav-cta > a::after,
.elementor-nav-menu__item--cta > a::after { display: none; }

/* Menú móvil */
@media (max-width: 1024px) {
  .elementor-nav-menu--dropdown .elementor-nav-menu,
  .elementor-nav-menu--mobile .elementor-nav-menu {
    background:    var(--sl-ink-deep);
    border-top:    1px solid rgba(229,9,127,.2);
    border-radius: 0 0 var(--r-lg) var(--r-lg);
  }
}


/* ================================================================
   10. SEPARADORES / DIVIDERS
   ================================================================ */
.elementor-divider-separator {
  border-top: none !important;
  height:     2px !important;
  background: var(--sl-grad-h) !important;
  opacity:    1 !important;
}
.sl-divider-dot {
  display:         flex;
  align-items:     center;
  justify-content: center;
  gap:             var(--sp-3);
  margin:          var(--sp-6) 0;
}
.sl-divider-dot::before,
.sl-divider-dot::after {
  content:    '';
  flex:       1;
  height:     1px;
  background: var(--sl-grad-h);
  opacity:    .35;
}
.sl-divider-dot span {
  width:         8px; height: 8px;
  border-radius: 50%;
  background:    var(--sl-magenta);
  box-shadow:    var(--shadow-glow-sm);
}


/* ================================================================
   11. UTILIDADES (añadir en campo CSS de cualquier widget)
   ================================================================ */

/* Colores de fondo */
.u-bg-dark      { background: var(--sl-ink); }
.u-bg-dark-deep { background: var(--sl-ink-deep); }
.u-bg-gradient  { background: var(--sl-grad-diag); }
.u-bg-light     { background: var(--sl-bg-light); }
.u-bg-pink-soft { background: var(--sl-pink-soft); }

/* Colores de texto */
.u-text-white    { color: var(--sl-white) !important; }
.u-text-magenta  { color: var(--sl-magenta) !important; }
.u-text-purple   { color: var(--sl-purple) !important; }
.u-text-gray     { color: var(--sl-gray) !important; }
.u-text-gradient {
  background: var(--sl-grad-h);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Radios */
.u-rounded-sm   { border-radius: var(--r-sm); }
.u-rounded-md   { border-radius: var(--r-md); }
.u-rounded-lg   { border-radius: var(--r-lg); }
.u-rounded-xl   { border-radius: var(--r-xl); }
.u-rounded-pill { border-radius: var(--r-pill); }
.u-rounded-full { border-radius: 50%; }

/* Sombras */
.u-shadow-sm   { box-shadow: var(--shadow-sm); }
.u-shadow-md   { box-shadow: var(--shadow-md); }
.u-shadow-lg   { box-shadow: var(--shadow-lg); }
.u-shadow-glow { box-shadow: var(--shadow-glow); }

/* Border de marca */
.u-border-brand { border: var(--border-brand); }
.u-border-dark  { border: var(--border-dark); }

/* Animaciones de entrada (add .animate al contenedor en Elementor) */
.sl-fade-up    { opacity: 0; transform: translateY(24px); transition: opacity var(--dur-slow) var(--ease-out), transform var(--dur-slow) var(--ease-out); }
.sl-fade-up.is-visible { opacity: 1; transform: translateY(0); }

/* Overflow hidden para secciones con efectos */
.u-overflow-hidden { overflow: hidden; }
.u-relative        { position: relative; }

/* Aspect ratios (para tarjetas de imagen) */
.u-ratio-1x1  { aspect-ratio: 1 / 1; }
.u-ratio-4x3  { aspect-ratio: 4 / 3; }
.u-ratio-16x9 { aspect-ratio: 16 / 9; }
.u-ratio-9x16 { aspect-ratio: 9 / 16; }

/* Object fit */
.u-object-cover   { object-fit: cover; width: 100%; height: 100%; }
.u-object-contain { object-fit: contain; width: 100%; height: 100%; }


/* ================================================================
   12. IMAGEN CON EFECTOS DE MARCA
   ================================================================ */
/* Imagen con borde degradado */
.sl-img-gradient-border {
  padding:       3px;
  background:    var(--sl-grad-diag);
  border-radius: var(--r-lg);
  display:       inline-block;
}
.sl-img-gradient-border img { border-radius: calc(var(--r-lg) - 3px); display: block; }

/* Imagen con overlay de color al hover */
.sl-img-hover {
  position:      relative;
  overflow:      hidden;
  border-radius: var(--r-lg);
}
.sl-img-hover img {
  transition: transform var(--dur-slow) var(--ease-out);
  width: 100%;
}
.sl-img-hover::after {
  content:    '';
  position:   absolute;
  inset:      0;
  background: var(--sl-grad-diag);
  opacity:    0;
  transition: opacity var(--dur-base) var(--ease-out);
}
.sl-img-hover:hover img       { transform: scale(1.06); }
.sl-img-hover:hover::after    { opacity: .35; }

/* Foto de perfil con anillo degradado */
.sl-avatar-ring {
  width:         80px; height: 80px;
  border-radius: 50%;
  padding:       3px;
  background:    var(--sl-grad-diag);
  display:       inline-block;
}
.sl-avatar-ring img { border-radius: 50%; width: 100%; height: 100%; object-fit: cover; }


/* ================================================================
   13. PRICING CARD (Precios / Planes)
   ================================================================ */
.sl-pricing-card {
  background:    var(--sl-white);
  border:        var(--border);
  border-radius: var(--r-xl);
  padding:       var(--sp-8) var(--sp-7);
  position:      relative;
  overflow:      hidden;
  text-align:    center;
  transition:    transform var(--dur-base) var(--ease-out),
                 box-shadow var(--dur-base) var(--ease-out),
                 border-color var(--dur-base);
}
.sl-pricing-card:hover {
  transform:    translateY(-8px);
  box-shadow:   var(--shadow-lg);
  border-color: rgba(229,9,127,.35);
}

/* Plan destacado */
.sl-pricing-card.sl-featured {
  background:   var(--sl-ink-deep);
  border-color: rgba(229,9,127,.45);
  box-shadow:   var(--shadow-glow);
  transform:    translateY(-8px) scale(1.02);
}
.sl-pricing-card.sl-featured:hover { transform: translateY(-14px) scale(1.02); }

.sl-pricing-badge {
  position:   absolute;
  top:  0; right: 0;
  background: var(--sl-grad-h);
  color:      var(--sl-white);
  font-family:    var(--font-display);
  font-size:      var(--fs-caption);
  font-weight:    700;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding:    6px 18px;
  border-radius: 0 var(--r-xl) 0 var(--r-md);
}
.sl-price-amount {
  font-family:    var(--font-display);
  font-size:      clamp(32px, 5vw, 52px);
  font-weight:    900;
  line-height:    1;
  background:     var(--sl-grad-h);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}
.sl-price-period {
  font-size:   var(--fs-small);
  color:       var(--sl-gray);
  font-weight: 400;
}
.sl-pricing-features {
  list-style: none;
  padding: 0; margin: 0;
  text-align: left;
}
.sl-pricing-features li {
  display:       flex;
  align-items:   center;
  gap:           var(--sp-3);
  padding:       var(--sp-3) 0;
  border-bottom: 1px solid var(--sl-gray-light);
  font-size:     var(--fs-body);
  color:         var(--sl-ink);
}
.sl-featured .sl-pricing-features li { border-color: rgba(255,255,255,.08); color: rgba(255,255,255,.8); }
.sl-pricing-features li::before {
  content:        '✓';
  flex-shrink:    0;
  width:  20px; height: 20px;
  border-radius:  50%;
  background:     rgba(229,9,127,.12);
  color:          var(--sl-magenta);
  font-size:      11px;
  font-weight:    700;
  display:        flex;
  align-items:    center;
  justify-content: center;
}


/* ================================================================
   14. TESTIMONIOS
   ================================================================ */
.sl-testimonial {
  background:    var(--sl-white);
  border:        var(--border);
  border-radius: var(--r-xl);
  padding:       var(--sp-7) var(--sp-6);
  position:      relative;
  box-shadow:    var(--shadow-sm);
  transition:    transform var(--dur-base) var(--ease-out),
                 box-shadow var(--dur-base);
}
.sl-testimonial:hover { transform: translateY(-4px); box-shadow: var(--shadow-md); }
.sl-testimonial::before {
  content:     '\201C';
  position:    absolute;
  top:  -8px; left: 20px;
  font-family: var(--font-display);
  font-size:   80px;
  font-weight: 900;
  line-height: 1;
  background:  var(--sl-grad-h);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  opacity: .4;
}
.sl-testimonial blockquote {
  margin:      0;
  padding:     0;
  font-size:   var(--fs-body);
  line-height: 1.75;
  color:       var(--sl-ink-deep);
  font-style:  italic;
}
.sl-testimonial-author {
  display:     flex;
  align-items: center;
  gap:         var(--sp-4);
  margin-top:  var(--sp-5);
}
.sl-testimonial-author img {
  width:         44px; height: 44px;
  border-radius: 50%;
  object-fit:    cover;
  border:        2px solid var(--sl-magenta);
}
.sl-testimonial-name  { font-family: var(--font-display); font-size: var(--fs-small); font-weight: 700; color: var(--sl-ink); display: block; }
.sl-testimonial-role  { font-size: var(--fs-caption); color: var(--sl-gray); display: block; margin-top: 2px; }

/* Estrellas */
.sl-stars { color: var(--sl-magenta); letter-spacing: 2px; font-size: 13px; margin-bottom: var(--sp-4); }


/* ================================================================
   15. PROGRESS BAR DE HABILIDADES
   ================================================================ */
.sl-skill-bar { margin-bottom: var(--sp-5); }
.sl-skill-header {
  display:         flex;
  justify-content: space-between;
  margin-bottom:   var(--sp-2);
}
.sl-skill-name  { font-family: var(--font-display); font-size: var(--fs-small); font-weight: 600; color: var(--sl-ink); }
.sl-skill-pct   { font-family: var(--font-display); font-size: var(--fs-small); font-weight: 700; color: var(--sl-magenta); }
.sl-skill-track {
  background:    var(--sl-gray-light);
  border-radius: var(--r-pill);
  height:        8px;
  overflow:      hidden;
}
.sl-skill-fill {
  height:        100%;
  border-radius: var(--r-pill);
  background:    var(--sl-grad-h);
  box-shadow:    var(--shadow-glow-sm);
  transition:    width 1s var(--ease-out);
}


/* ================================================================
   16. FOOTER
   ================================================================ */
.site-footer,
.elementor-location-footer {
  background:     var(--sl-ink);
  border-top:     3px solid;
  border-image:   var(--sl-grad-h) 1;
  color:          rgba(255,255,255,.55);
  font-family:    var(--font-body);
  font-size:      var(--fs-small);
}
.site-footer a, .elementor-location-footer a {
  color:       rgba(255,255,255,.55);
  transition:  color var(--dur-fast);
}
.site-footer a:hover, .elementor-location-footer a:hover { color: var(--sl-magenta); }

.site-footer h1, .site-footer h2, .site-footer h3, .site-footer h4,
.site-footer h5, .site-footer h6,
.elementor-location-footer h1, .elementor-location-footer h2,
.elementor-location-footer h3, .elementor-location-footer h4 {
  color: var(--sl-white);
  font-family: var(--font-display);
}
.footer-logo-brand {
  font-family:    var(--font-display);
  font-size:      24px;
  font-weight:    900;
  background:     var(--sl-grad-h);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
}

/* Iconos sociales del footer */
.sl-social-icon {
  display:         inline-flex;
  align-items:     center;
  justify-content: center;
  width:  40px; height: 40px;
  border-radius:   50%;
  background:      rgba(255,255,255,.06);
  border:          1px solid rgba(255,255,255,.12);
  color:           rgba(255,255,255,.6);
  font-size:       16px;
  transition:      background var(--dur-fast),
                   border-color var(--dur-fast),
                   color var(--dur-fast),
                   transform var(--dur-base) var(--ease-spring);
}
.sl-social-icon:hover {
  background:   var(--sl-magenta);
  border-color: var(--sl-magenta);
  color:        var(--sl-white);
  transform:    translateY(-3px) scale(1.1);
}


/* ================================================================
   17. MICRO-ANIMACIONES (scroll-triggered via IntersectionObserver)
   Se activan cuando Elementor añade la clase .animated al widget
   ================================================================ */
.elementor-invisible { opacity: 0; }
.elementor-animated  { opacity: 1; }

/* Efecto glow pulsante para CTAs importantes */
@keyframes sl-glow-pulse {
  0%, 100% { box-shadow: 0 8px 24px rgba(229,9,127,.35); }
  50%       { box-shadow: 0 12px 44px rgba(229,9,127,.65); }
}
.sl-pulse { animation: sl-glow-pulse 2.6s ease-in-out infinite; }

/* Flotante suave */
@keyframes sl-float {
  0%, 100% { transform: translateY(0); }
  50%       { transform: translateY(-10px); }
}
.sl-float { animation: sl-float 4s ease-in-out infinite; }

/* Girar icono decorativo */
@keyframes sl-spin-slow {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}
.sl-spin-slow { animation: sl-spin-slow 18s linear infinite; }

/* Gradient animado en texto */
@keyframes sl-grad-shift {
  0%   { background-position: 0% 50%; }
  50%  { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
.sl-text-gradient-animated {
  background: linear-gradient(270deg, #E5097F, #7B1FA2, #C4297A, #6B1A8F);
  background-size: 300% 300%;
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  animation: sl-grad-shift 5s ease infinite;
}


/* ================================================================
   18. RESPONSIVE — Ajustes para Elementor Mobile Breakpoints
   ================================================================ */

/* Tablet (≤ 1024px) */
@media (max-width: 1024px) {
  .sl-card, .sl-card-dark, .sl-card-gradient {
    padding: var(--sp-6) var(--sp-5);
  }
  .sl-pricing-card.sl-featured {
    transform: translateY(-4px) scale(1);
  }
}

/* Móvil (≤ 767px) */
@media (max-width: 767px) {
  :root {
    --fs-body:  14px;
    --sp-7:     32px;
    --sp-8:     48px;
    --sp-9:     64px;
    --sp-10:    80px;
  }
  .sl-card, .sl-card-dark, .sl-card-gradient, .sl-pricing-card {
    padding:       var(--sp-5) var(--sp-4);
    border-radius: var(--r-md);
  }
  .sl-btn-primary, .sl-btn-outline, .sl-btn-ghost,
  .elementor-button.sl-btn-primary,
  .elementor-button.sl-btn-outline {
    padding:   12px 24px;
    font-size: 11px;
  }
  .sl-pricing-card.sl-featured { transform: none; }
  .sl-section-hero { min-height: 85vh; }
  .sl-avatar-ring   { width: 60px; height: 60px; }
}

/* Móvil pequeño (≤ 480px) */
@media (max-width: 480px) {
  .sl-icon-wrap { width: 46px; height: 46px; }
  .sl-icon-wrap.sl-icon-lg { width: 56px; height: 56px; }
  .sl-testimonial { padding: var(--sp-5) var(--sp-4); }
}


/* ================================================================
   19. MODO OSCURO (por si el sitio implementa dark mode toggle)
   ================================================================ */
@media (prefers-color-scheme: dark) {
  :root {
    --sl-bg-light:    #1A0D2E;
    --sl-gray-light:  rgba(255,255,255,.1);
    --border:         1px solid rgba(255,255,255,.1);
  }
}


/* ================================================================
   20. PRINT
   ================================================================ */
@media print {
  * { background: transparent !important; color: #000 !important; box-shadow: none !important; }
  a::after { content: " (" attr(href) ")"; }
  .sl-section-hero, .sl-section-dark, .sl-section-gradient { background: #fff !important; }
}/* End custom CSS */