.elementor-kit-103{--e-global-color-primary:#6D28D9;--e-global-color-secondary:#0891B2;--e-global-color-text:#22D3EE;--e-global-color-accent:#0B1E3F;--e-global-color-e080c9b:#0A0F1F;--e-global-color-2384e8c:#131A2C;--e-global-color-b173a9b:#F4F6FA;--e-global-color-52e0f78:#111418;--e-global-color-266ed4e:#5C6470;--e-global-color-5ca0474:#E6EAF1;--e-global-typography-primary-font-family:"Inter";--e-global-typography-primary-font-size:56px;--e-global-typography-primary-font-weight:700;--e-global-typography-primary-letter-spacing:0.022em;--e-global-typography-secondary-font-family:"Inter";--e-global-typography-secondary-font-size:32px;--e-global-typography-secondary-font-weight:500;--e-global-typography-secondary-letter-spacing:0.022em;--e-global-typography-text-font-family:"Inter";--e-global-typography-text-font-size:16px;--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"JetBrains Mono";--e-global-typography-accent-font-size:11px;--e-global-typography-accent-font-weight:500;}.elementor-kit-103 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1440px;}.e-con{--container-max-width:1440px;}.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 *//* =====================================================================
   PULSO 2026  ·  Elementor Custom CSS  ·  v4 (icon-box + pill + layout helpers)
   ---------------------------------------------------------------------
   Pegar entero en: Pages → Home → Edit con Elementor → Site Settings
                    → Settings → Custom CSS  →  Update
 
   v3 fixes:
   - Body-level defaults (font, color) overriding Hello Theme + Global Colors
   - Default heading colors explicit (no longer dependent on Elementor's
     "Primary" Global Color cascade)
   - Default text-editor paragraph colors in light sections
   - Card text colors explicit (titles dark, bodies muted)
   - Hello Theme styles neutralized at body level
   - No more need to replace `.elementor-kit-1` — all rules work via :root
     and body-level .elementor-kit-103s. The kit-scoped rules stay as bonus but
     are not required.
   ===================================================================== */
 
/* ─────────────────────────────────────────────────────────────────
   1. DESIGN TOKENS
   ───────────────────────────────────────────────────────────────── */
:root {
  --pulso-violet:#6D28D9;
  --pulso-violet-light:#A78BFA;
  --pulso-violet-deep:#4C1D95;
  --pulso-teal:#0891B2;
  --pulso-teal-light:#22D3EE;
  --pulso-teal-deep:#0E7490;
  --pulso-mint:#34D399;
  --pulso-mint-soft:#6EE7B7;
 
  --pulso-bg:#FFFFFF;
  --pulso-bg-subtle:#F4F6FA;
  --pulso-bg-dark:#0A0F1F;
  --pulso-bg-darker:#06091A;
  --pulso-surface-dark:#131A2C;
  --pulso-surface-deep:#0F1424;
 
  --pulso-ink:#111418;
  --pulso-ink-2:#3A424E;
  --pulso-ink-3:#5C6470;
  --pulso-ink-inv:#FFFFFF;
  --pulso-ink-inv-2:#CBD5E1;
  --pulso-ink-inv-3:#94A3B8;
 
  --pulso-line:#E6EAF1;
  --pulso-line-strong:#D9DEE6;
  --pulso-line-dark:#2A3450;
 
  --pulso-alert:#F87171;
  --pulso-warning:#FCD34D;
  --pulso-success:#34D399;
 
  --pulso-grad-brand:linear-gradient(135deg,#6D28D9 0%,#0891B2 100%);
  --pulso-grad-brand-hover:linear-gradient(135deg,#7C3AED 0%,#06B6D4 100%);
  --pulso-grad-text:linear-gradient(135deg,#A78BFA 0%,#22D3EE 100%);
  --pulso-grad-hero:
    radial-gradient(ellipse 70% 90% at 0% 0%, rgba(91,33,182,.85) 0%, transparent 55%),
    radial-gradient(ellipse 80% 70% at 100% 100%, rgba(8,145,178,.55) 0%, transparent 55%),
    linear-gradient(135deg,#1A0E3D 0%,#0A0F1F 50%,#06141B 100%);
 
  --pulso-f-display:"Inter","Inter Display",-apple-system,BlinkMacSystemFont,sans-serif;
  --pulso-f-body:"Inter",-apple-system,BlinkMacSystemFont,sans-serif;
  --pulso-f-mono:"JetBrains Mono","SF Mono",Menlo,monospace;
 
  --pulso-ease:cubic-bezier(.2,.8,.2,1);
  --pulso-dur:300ms;
 
  --pulso-shadow:0 8px 24px rgba(11,16,36,.10);
  --pulso-shadow-cta:0 8px 24px rgba(109,40,217,.35);
  --pulso-shadow-cta-hover:0 12px 32px rgba(109,40,217,.5);
}
 
/* ─────────────────────────────────────────────────────────────────
   2. BODY-LEVEL DEFAULTS  (override Hello Theme + Global Colors)
   ───────────────────────────────────────────────────────────────── */
body,
body.elementor-default,
body.elementor-default *:not(i):not(.elementor-icon):not(.fa) {
  font-family: var(--pulso-f-body);
}
 
body,
body.elementor-default {
  color: var(--pulso-ink) !important;
  background: var(--pulso-bg) !important;
  font-family: var(--pulso-f-body) !important;
  font-size: 16px !important;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
}
 
/* Hide Hello Theme header + footer */
.elementor-default header.site-header,
.elementor-default footer.site-footer,
.elementor-default .site-header,
.elementor-default .site-footer,
body > .site-header,
body > .site-footer {
  display: none !important;
}
.elementor-default .site-main,
.elementor-default main.site-main {
  margin: 0 !important;
  padding: 0 !important;
}
 
/* Neutralize Hello Theme typography defaults */
body.elementor-default h1,
body.elementor-default h2,
body.elementor-default h3,
body.elementor-default h4,
body.elementor-default h5,
body.elementor-default h6 {
  font-family: var(--pulso-f-display) !important;
  letter-spacing: -.022em !important;
  line-height: 1.1 !important;
  margin: 0 !important;
  color: var(--pulso-ink);
}
 
/* ─────────────────────────────────────────────────────────────────
   3. HEADING WIDGET  (Elementor) — colors + sizes by tag
   ───────────────────────────────────────────────────────────────── */
.elementor-widget-heading .elementor-heading-title {
  font-family: var(--pulso-f-display) !important;
  letter-spacing: -.022em !important;
  line-height: 1.1 !important;
  margin: 0 !important;
  color: var(--pulso-ink) !important;
}
 
h1.elementor-heading-title {
  font-size: clamp(38px, 5.5vw, 68px) !important;
  font-weight: 700 !important;
  letter-spacing: -.028em !important;
  line-height: 1.05 !important;
}
h2.elementor-heading-title {
  font-size: clamp(28px, 3.5vw, 44px) !important;
  font-weight: 700 !important;
}
h3.elementor-heading-title {
  font-size: 20px !important;
  font-weight: 600 !important;
}
h4.elementor-heading-title {
  font-size: 18px !important;
  font-weight: 600 !important;
}
h5.elementor-heading-title {
  font-size: 16px !important;
  font-weight: 600 !important;
}
h6.elementor-heading-title {
  font-size: 14px !important;
  font-weight: 600 !important;
}
 
/* Headings inside dark / hero sections — invert color */
.pulso-section-hero .elementor-widget-heading .elementor-heading-title,
.pulso-section-dark .elementor-widget-heading .elementor-heading-title,
.pulso-section-hero h1,
.pulso-section-hero h2,
.pulso-section-hero h3,
.pulso-section-dark h1,
.pulso-section-dark h2,
.pulso-section-dark h3 {
  color: #ffffff !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   4. EYEBROW  — tiny mono cyan uppercase  (HIGHEST PRIORITY)
   Order matters: this rule must come AFTER section-color rules so
   it wins in dark sections too.
   ───────────────────────────────────────────────────────────────── */
.elementor-widget-heading.pulso-eyebrow .elementor-heading-title,
.pulso-eyebrow .elementor-heading-title,
.pulso-section-hero .pulso-eyebrow .elementor-heading-title,
.pulso-section-dark .pulso-eyebrow .elementor-heading-title,
.pulso-section-subtle .pulso-eyebrow .elementor-heading-title {
  font-family: var(--pulso-f-mono) !important;
  font-size: 11px !important;
  font-weight: 600 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  color: var(--pulso-teal-deep) !important;
  line-height: 1.4 !important;
}
.pulso-eyebrow--on-dark .elementor-heading-title,
.elementor-widget-heading.pulso-eyebrow--on-dark .elementor-heading-title,
.pulso-section-hero .pulso-eyebrow--on-dark .elementor-heading-title,
.pulso-section-dark .pulso-eyebrow--on-dark .elementor-heading-title {
  color: var(--pulso-teal-light) !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   5. TEXT EDITOR WIDGET — body paragraphs
   ───────────────────────────────────────────────────────────────── */
.elementor-widget-text-editor,
.elementor-widget-text-editor p {
  font-family: var(--pulso-f-body) !important;
  color: var(--pulso-ink-2) !important;
  font-size: 16px;
  line-height: 1.55 !important;
}
.elementor-widget-text-editor p {
  margin: 0 0 12px !important;
}
.elementor-widget-text-editor p:last-child { margin-bottom: 0 !important; }
 
/* Text in dark sections — light gray */
.pulso-section-hero .elementor-widget-text-editor,
.pulso-section-hero .elementor-widget-text-editor p,
.pulso-section-dark .elementor-widget-text-editor,
.pulso-section-dark .elementor-widget-text-editor p {
  color: var(--pulso-ink-inv-2) !important;
}
 
/* Lede (subheadline) — bigger */
.pulso-lede,
.pulso-lede p,
.elementor-widget-text-editor.pulso-lede,
.elementor-widget-text-editor.pulso-lede p {
  font-size: 18px !important;
  line-height: 1.55 !important;
}
 
/* Inline bold + cyan highlight inside paragraphs */
.elementor-widget-text-editor strong,
.elementor-widget-text-editor b {
  color: var(--pulso-ink) !important;
  font-weight: 600 !important;
}
.pulso-section-hero .elementor-widget-text-editor strong,
.pulso-section-hero .elementor-widget-text-editor b,
.pulso-section-dark .elementor-widget-text-editor strong,
.pulso-section-dark .elementor-widget-text-editor b {
  color: #ffffff !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   6. GRADIENT TEXT  inline span
   ───────────────────────────────────────────────────────────────── */
.pulso-grad-text {
  background: var(--pulso-grad-text);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  display: inline-block;
}
 
/* ─────────────────────────────────────────────────────────────────
   7. SECTION TREATMENTS  Containers
   ───────────────────────────────────────────────────────────────── */
.pulso-section-hero {
  background: var(--pulso-bg-dark) !important;
  background-image: var(--pulso-grad-hero) !important;
  color: #ffffff !important;
  position: relative;
  overflow: hidden;
}
.pulso-section-dark {
  background-color: var(--pulso-bg-dark) !important;
  color: #ffffff !important;
}
.pulso-section-subtle {
  background-color: var(--pulso-bg-subtle) !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   8. BUTTONS — gradient violet → teal  (CRITICAL)
   Target every Elementor button DOM permutation.
   ───────────────────────────────────────────────────────────────── */
.elementor-widget-button.pulso-btn-primary .elementor-button,
.elementor-widget-button.pulso-btn-primary .elementor-button-link,
.elementor-widget-button.pulso-btn-primary a.elementor-button,
.pulso-btn-primary .elementor-button,
.pulso-btn-primary .elementor-button-link,
.pulso-btn-primary a.elementor-button-link {
  background: var(--pulso-grad-brand) !important;
  background-image: var(--pulso-grad-brand) !important;
  background-color: var(--pulso-violet) !important;
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  box-shadow: var(--pulso-shadow-cta) !important;
  border-radius: 10px !important;
  padding: 14px 24px !important;
  font-family: var(--pulso-f-body) !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  letter-spacing: 0 !important;
  position: relative !important;
  overflow: hidden !important;
  transition: all var(--pulso-dur) var(--pulso-ease) !important;
  text-decoration: none !important;
}
.pulso-btn-primary .elementor-button:hover,
.pulso-btn-primary .elementor-button-link:hover,
.pulso-btn-primary a.elementor-button:hover {
  background: var(--pulso-grad-brand-hover) !important;
  background-image: var(--pulso-grad-brand-hover) !important;
  box-shadow: var(--pulso-shadow-cta-hover) !important;
  transform: translateY(-1px);
  color: #ffffff !important;
}
 
.elementor-widget-button.pulso-btn-ghost .elementor-button,
.pulso-btn-ghost .elementor-button,
.pulso-btn-ghost .elementor-button-link,
.pulso-btn-ghost a.elementor-button {
  background: #ffffff !important;
  background-image: none !important;
  background-color: #ffffff !important;
  color: var(--pulso-ink) !important;
  border: 1px solid var(--pulso-line) !important;
  border-radius: 10px !important;
  padding: 14px 24px !important;
  font-family: var(--pulso-f-body) !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  text-decoration: none !important;
  transition: all var(--pulso-dur) var(--pulso-ease) !important;
}
.pulso-btn-ghost .elementor-button:hover { border-color: var(--pulso-ink) !important; }
 
.elementor-widget-button.pulso-btn-ghost-dark .elementor-button,
.pulso-btn-ghost-dark .elementor-button,
.pulso-btn-ghost-dark .elementor-button-link,
.pulso-btn-ghost-dark a.elementor-button {
  background: transparent !important;
  background-image: none !important;
  background-color: transparent !important;
  color: #ffffff !important;
  border: 1px solid rgba(255,255,255,.2) !important;
  border-radius: 10px !important;
  padding: 14px 24px !important;
  font-family: var(--pulso-f-body) !important;
  font-weight: 600 !important;
  font-size: 15px !important;
  text-decoration: none !important;
  transition: all var(--pulso-dur) var(--pulso-ease) !important;
}
.pulso-btn-ghost-dark .elementor-button:hover {
  border-color: rgba(255,255,255,.5) !important;
  background: rgba(255,255,255,.04) !important;
  color: #ffffff !important;
}
 
.api-badge .elementor-button,
.api-badge .elementor-button-link {
  background: linear-gradient(135deg, rgba(109,40,217,.08), rgba(8,145,178,.08)) !important;
  color: var(--pulso-violet-deep) !important;
  border: 1px solid rgba(109,40,217,.2) !important;
  border-radius: 999px !important;
  padding: 8px 14px !important;
  font-family: var(--pulso-f-mono) !important;
  font-weight: 600 !important;
  font-size: 11px !important;
  letter-spacing: .06em !important;
  text-transform: uppercase !important;
  box-shadow: none !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   9. CARDS — light and dark
   ───────────────────────────────────────────────────────────────── */
.pulso-card,
.elementor-element.pulso-card {
  background: #ffffff !important;
  border: 1px solid var(--pulso-line) !important;
  border-radius: 12px !important;
  padding: 32px !important;
  transition: all var(--pulso-dur) var(--pulso-ease) !important;
}
.pulso-card:hover {
  border-color: var(--pulso-violet-light) !important;
  box-shadow: 0 8px 24px rgba(11,16,36,.06) !important;
  transform: translateY(-2px);
}
.pulso-card .elementor-heading-title,
.pulso-card h3.elementor-heading-title {
  color: var(--pulso-ink) !important;
  font-size: 18px !important;
  margin-bottom: 8px !important;
}
.pulso-card .elementor-widget-text-editor,
.pulso-card .elementor-widget-text-editor p {
  font-size: 14.5px !important;
  line-height: 1.55 !important;
  color: var(--pulso-ink-3) !important;
}
.pulso-card .elementor-icon-box-icon { margin-bottom: 18px !important; }
 
.pulso-card-dark,
.elementor-element.pulso-card-dark {
  background: rgba(255,255,255,.02) !important;
  border: 1px solid var(--pulso-line-dark) !important;
  border-radius: 14px !important;
  padding: 24px !important;
  transition: all var(--pulso-dur) var(--pulso-ease) !important;
}
.pulso-card-dark:hover {
  border-color: var(--pulso-teal-light) !important;
  background: rgba(34,211,238,.04) !important;
}
.pulso-card-dark .elementor-heading-title,
.pulso-card-dark h3.elementor-heading-title {
  color: #ffffff !important;
  font-size: 16px !important;
  margin-bottom: 6px !important;
}
.pulso-card-dark .elementor-widget-text-editor,
.pulso-card-dark .elementor-widget-text-editor p {
  font-size: 13.5px !important;
  color: var(--pulso-ink-inv-2) !important;
}
 
/* Icon box icon defaults */
.elementor-widget-icon-box .elementor-icon i,
.elementor-widget-icon-box .elementor-icon svg {
  color: var(--pulso-violet) !important;
  fill: var(--pulso-violet) !important;
  font-size: 22px !important;
}
.pulso-section-hero .elementor-widget-icon-box .elementor-icon i,
.pulso-section-hero .elementor-widget-icon-box .elementor-icon svg,
.pulso-section-dark .elementor-widget-icon-box .elementor-icon i,
.pulso-section-dark .elementor-widget-icon-box .elementor-icon svg,
.pulso-card-dark .elementor-widget-icon-box .elementor-icon i,
.pulso-card-dark .elementor-widget-icon-box .elementor-icon svg {
  color: var(--pulso-teal-light) !important;
  fill: var(--pulso-teal-light) !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   10. STEP BADGES  numeric chips
   ───────────────────────────────────────────────────────────────── */
.pulso-step {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 10px;
  font-family: var(--pulso-f-mono); font-size: 13px; font-weight: 600;
  background: rgba(167,139,250,.15); color: var(--pulso-violet-light);
  border: 1px solid rgba(167,139,250,.3); flex: none;
}
.pulso-step--teal    { background: rgba(34,211,238,.12); color: var(--pulso-teal-light); border-color: rgba(34,211,238,.3); }
.pulso-step--mint    { background: rgba(52,211,153,.12); color: var(--pulso-mint-soft); border-color: rgba(52,211,153,.3); }
.pulso-step--warning { background: rgba(252,211,77,.12); color: var(--pulso-warning); border-color: rgba(252,211,77,.3); }
 
/* ─────────────────────────────────────────────────────────────────
   11. STATUS PILLS  compliance strip
   ───────────────────────────────────────────────────────────────── */
.pulso-pill .elementor-widget-container,
.pulso-pill .elementor-widget-container p {
  display: inline-flex !important;
  align-items: center !important;
  gap: 6px !important;
  padding: 6px 14px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.04) !important;
  border: 1px solid var(--pulso-line-dark) !important;
  margin: 0 !important;
  font-family: var(--pulso-f-mono) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: var(--pulso-ink-inv-3) !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   12. ANIMATIONS
   ───────────────────────────────────────────────────────────────── */
@keyframes pulso-beat {
  0%, 100% { transform: scale(1); opacity: 1; }
  50%      { transform: scale(1.45); opacity: .4; }
}
@keyframes pulso-flow {
  from { background-position: 200% 0; }
  to   { background-position: -200% 0; }
}
.pulso-live-dot {
  display: inline-block; width: 7px; height: 7px; border-radius: 50%;
  background: var(--pulso-teal-light); box-shadow: 0 0 12px var(--pulso-teal-light);
  animation: pulso-beat 1.4s var(--pulso-ease) infinite;
}
 
/* ─────────────────────────────────────────────────────────────────
   13. FORM  Elementor Pro
   ───────────────────────────────────────────────────────────────── */
.pulso-form .elementor-field-textual,
.pulso-form input[type="text"],
.pulso-form input[type="email"],
.pulso-form select,
.pulso-form textarea {
  background: #fff !important;
  border: 1px solid var(--pulso-line-strong) !important;
  border-radius: 10px !important;
  padding: 12px 16px !important;
  font-size: 15px !important;
  font-family: var(--pulso-f-body) !important;
  color: var(--pulso-ink) !important;
  transition: all var(--pulso-dur) var(--pulso-ease) !important;
}
.pulso-form .elementor-field-textual:focus,
.pulso-form input:focus,
.pulso-form select:focus,
.pulso-form textarea:focus {
  border-color: var(--pulso-teal-light) !important;
  box-shadow: 0 0 0 4px rgba(34,211,238,.18) !important;
  outline: 0 !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   14. CONTAINER PADDING  vertical rhythm
   ───────────────────────────────────────────────────────────────── */
.pulso-section-hero,
.pulso-section-dark,
.pulso-section-subtle {
  padding-top: 96px !important;
  padding-bottom: 96px !important;
}
@media (max-width: 1024px) {
  .pulso-section-hero,
  .pulso-section-dark,
  .pulso-section-subtle {
    padding-top: 72px !important;
    padding-bottom: 72px !important;
  }
}
@media (max-width: 480px) {
  .pulso-section-hero,
  .pulso-section-dark,
  .pulso-section-subtle {
    padding-top: 48px !important;
    padding-bottom: 48px !important;
  }
}
.pulso-section-hero {
  padding-top: 100px !important;
  padding-bottom: 80px !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   15. ACCESSIBILITY
   ───────────────────────────────────────────────────────────────── */
.pulso-btn-primary .elementor-button:focus-visible,
.pulso-btn-ghost .elementor-button:focus-visible,
.pulso-btn-ghost-dark .elementor-button:focus-visible {
  outline: 0 !important;
  box-shadow: 0 0 0 4px rgba(34,211,238,.4) !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   16. REDUCED MOTION
   ───────────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0ms !important;
    transition-duration: 0ms !important;
  }
}
 
/* =====================================================================
   v4 PATCHES — Icon Box widget styling + box-sizing + pill fix + layout helpers
   ===================================================================== */
 
/* ─────────────────────────────────────────────────────────────────
   17. ICON BOX WIDGET — inside pulso-card and pulso-card-dark
   The Icon Box widget has its own internal title (.elementor-icon-box-title)
   and description (.elementor-icon-box-description). Standalone Heading
   widget styles don't reach inside it. We target it explicitly here.
   ───────────────────────────────────────────────────────────────── */
 
/* Light cards (pulso-card) */
.pulso-card .elementor-icon-box-title,
.pulso-card .elementor-icon-box-title a,
.pulso-card .elementor-icon-box-title span {
  font-family: var(--pulso-f-display) !important;
  font-size: 18px !important;
  font-weight: 600 !important;
  letter-spacing: -.012em !important;
  line-height: 1.3 !important;
  color: var(--pulso-ink) !important;
  margin: 0 0 8px !important;
  text-align: left !important;
}
.pulso-card .elementor-icon-box-description {
  font-family: var(--pulso-f-body) !important;
  font-size: 14.5px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  color: var(--pulso-ink-3) !important;
  margin: 0 !important;
  text-align: left !important;
}
.pulso-card .elementor-icon-box-content {
  text-align: left !important;
}
.pulso-card .elementor-icon-box-icon {
  margin-bottom: 16px !important;
  text-align: left !important;
}
.pulso-card .elementor-icon-box-icon .elementor-icon,
.pulso-card .elementor-icon-box-icon i,
.pulso-card .elementor-icon-box-icon svg {
  font-size: 22px !important;
  color: var(--pulso-violet) !important;
  fill: var(--pulso-violet) !important;
  width: auto !important;
  height: auto !important;
}
 
/* Dark cards (pulso-card-dark) */
.pulso-card-dark .elementor-icon-box-title,
.pulso-card-dark .elementor-icon-box-title a,
.pulso-card-dark .elementor-icon-box-title span {
  font-family: var(--pulso-f-display) !important;
  font-size: 16px !important;
  font-weight: 600 !important;
  letter-spacing: -.01em !important;
  line-height: 1.3 !important;
  color: #ffffff !important;
  margin: 0 0 6px !important;
  text-align: left !important;
}
.pulso-card-dark .elementor-icon-box-description {
  font-family: var(--pulso-f-body) !important;
  font-size: 13.5px !important;
  font-weight: 400 !important;
  line-height: 1.55 !important;
  color: var(--pulso-ink-inv-2) !important;
  margin: 0 !important;
  text-align: left !important;
}
.pulso-card-dark .elementor-icon-box-content {
  text-align: left !important;
}
.pulso-card-dark .elementor-icon-box-icon .elementor-icon,
.pulso-card-dark .elementor-icon-box-icon i,
.pulso-card-dark .elementor-icon-box-icon svg {
  font-size: 22px !important;
  color: var(--pulso-teal-light) !important;
  fill: var(--pulso-teal-light) !important;
  width: auto !important;
  height: auto !important;
}
 
/* Make sure the icon box wrapper aligns content to start (not center) */
.pulso-card .elementor-icon-box-wrapper,
.pulso-card-dark .elementor-icon-box-wrapper {
  text-align: left !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   18. CARD BOX-SIZING  — so width % math works
   ───────────────────────────────────────────────────────────────── */
.pulso-card,
.pulso-card-dark,
.elementor-element.pulso-card,
.elementor-element.pulso-card-dark {
  box-sizing: border-box !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   19. PILLS  — compliance strip badges
   Use direct .elementor-kit-103 on the <p> tag inside text-editor widget.
   ───────────────────────────────────────────────────────────────── */
.pulso-pill .elementor-widget-container {
  display: inline-block !important;
  margin: 0 4px !important;
}
.pulso-pill .elementor-widget-container p {
  display: inline-block !important;
  padding: 6px 14px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.04) !important;
  border: 1px solid var(--pulso-line-dark) !important;
  margin: 0 !important;
  font-family: var(--pulso-f-mono) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: .08em !important;
  text-transform: uppercase !important;
  color: var(--pulso-ink-inv-3) !important;
  line-height: 1.4 !important;
}
.pulso-pill .elementor-widget-text-editor,
.pulso-pill {
  width: auto !important;
  display: inline-block !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   20. LAYOUT HELPER CLASSES  — force flex row on containers
   v4.1 — defensive version handles BOTH cases:
     · direct children (.pulso-row-X > .e-con)
     · children via .e-con-inner wrapper (Elementor 4.x boxed containers)
   The display:contents trick neutralizes any inner wrapper.
   ───────────────────────────────────────────────────────────────── */
 
/* Neutralize Elementor's .e-con-inner wrapper inside our layout helpers
   so the actual child containers become flex children of the row */
.pulso-row-60-40 > .e-con-inner,
.pulso-row-45-55 > .e-con-inner,
.pulso-row-3col > .e-con-inner,
.pulso-row-4col > .e-con-inner,
.pulso-row-inline > .e-con-inner,
.pulso-row-inline-left > .e-con-inner,
.pulso-row-flex > .e-con-inner {
  display: contents !important;
}
 
/* Generic horizontal row with wrap */
.pulso-row-flex,
.elementor-element.pulso-row-flex {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
}
 
/* 2-column 60/40 (Hero) */
.pulso-row-60-40,
.elementor-element.pulso-row-60-40 {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 64px !important;
  width: 100% !important;
}
.pulso-row-60-40 > .e-con,
.pulso-row-60-40 > .e-con-inner > .e-con,
.pulso-row-60-40 > .elementor-element,
.pulso-row-60-40 > .e-con-inner > .elementor-element {
  flex: 1 1 100% !important;
  max-width: 100% !important;
  width: 100% !important;
}
@media (min-width: 1024px) {
  .pulso-row-60-40 > .e-con:nth-child(1),
  .pulso-row-60-40 > .e-con-inner > .e-con:nth-child(1),
  .pulso-row-60-40 > .elementor-element:nth-child(1),
  .pulso-row-60-40 > .e-con-inner > .elementor-element:nth-child(1) {
    flex: 0 1 calc(60% - 32px) !important;
    max-width: calc(60% - 32px) !important;
    width: calc(60% - 32px) !important;
  }
  .pulso-row-60-40 > .e-con:nth-child(2),
  .pulso-row-60-40 > .e-con-inner > .e-con:nth-child(2),
  .pulso-row-60-40 > .elementor-element:nth-child(2),
  .pulso-row-60-40 > .e-con-inner > .elementor-element:nth-child(2) {
    flex: 0 1 calc(40% - 32px) !important;
    max-width: calc(40% - 32px) !important;
    width: calc(40% - 32px) !important;
  }
}
 
/* 2-column 45/55 (Alerts, AI, Integrations) */
.pulso-row-45-55,
.elementor-element.pulso-row-45-55 {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 56px !important;
  width: 100% !important;
}
.pulso-row-45-55 > .e-con,
.pulso-row-45-55 > .e-con-inner > .e-con,
.pulso-row-45-55 > .elementor-element,
.pulso-row-45-55 > .e-con-inner > .elementor-element {
  flex: 1 1 100% !important;
  max-width: 100% !important;
  width: 100% !important;
}
@media (min-width: 1024px) {
  .pulso-row-45-55 > .e-con:nth-child(1),
  .pulso-row-45-55 > .e-con-inner > .e-con:nth-child(1),
  .pulso-row-45-55 > .elementor-element:nth-child(1),
  .pulso-row-45-55 > .e-con-inner > .elementor-element:nth-child(1) {
    flex: 0 1 calc(45% - 28px) !important;
    max-width: calc(45% - 28px) !important;
    width: calc(45% - 28px) !important;
  }
  .pulso-row-45-55 > .e-con:nth-child(2),
  .pulso-row-45-55 > .e-con-inner > .e-con:nth-child(2),
  .pulso-row-45-55 > .elementor-element:nth-child(2),
  .pulso-row-45-55 > .e-con-inner > .elementor-element:nth-child(2) {
    flex: 0 1 calc(55% - 28px) !important;
    max-width: calc(55% - 28px) !important;
    width: calc(55% - 28px) !important;
  }
}
 
/* 3-column grid (Problem cards, Security cards 2 rows, Logos 3 rows) */
.pulso-row-3col,
.elementor-element.pulso-row-3col {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  gap: 20px !important;
  width: 100% !important;
}
.pulso-row-3col > .e-con,
.pulso-row-3col > .e-con-inner > .e-con,
.pulso-row-3col > .elementor-element,
.pulso-row-3col > .e-con-inner > .elementor-element {
  flex: 1 1 100% !important;
  max-width: 100% !important;
  width: 100% !important;
}
@media (min-width: 1024px) {
  .pulso-row-3col > .e-con,
  .pulso-row-3col > .e-con-inner > .e-con,
  .pulso-row-3col > .elementor-element,
  .pulso-row-3col > .e-con-inner > .elementor-element {
    flex: 0 1 calc(33.333% - 14px) !important;
    max-width: calc(33.333% - 14px) !important;
    width: calc(33.333% - 14px) !important;
  }
}
@media (min-width: 768px) and (max-width: 1023px) {
  .pulso-row-3col > .e-con,
  .pulso-row-3col > .e-con-inner > .e-con,
  .pulso-row-3col > .elementor-element,
  .pulso-row-3col > .e-con-inner > .elementor-element {
    flex: 0 1 calc(50% - 10px) !important;
    max-width: calc(50% - 10px) !important;
    width: calc(50% - 10px) !important;
  }
}
 
/* 4-column row (rarely used) */
.pulso-row-4col,
.elementor-element.pulso-row-4col {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: stretch !important;
  gap: 16px !important;
  width: 100% !important;
}
.pulso-row-4col > .e-con,
.pulso-row-4col > .e-con-inner > .e-con,
.pulso-row-4col > .elementor-element,
.pulso-row-4col > .e-con-inner > .elementor-element {
  flex: 1 1 100% !important;
  max-width: 100% !important;
  width: 100% !important;
}
@media (min-width: 1024px) {
  .pulso-row-4col > .e-con,
  .pulso-row-4col > .e-con-inner > .e-con,
  .pulso-row-4col > .elementor-element,
  .pulso-row-4col > .e-con-inner > .elementor-element {
    flex: 0 1 calc(25% - 12px) !important;
    max-width: calc(25% - 12px) !important;
    width: calc(25% - 12px) !important;
  }
}
 
/* Inline row centered (compliance strip, Final CTA buttons) */
.pulso-row-inline,
.elementor-element.pulso-row-inline {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 16px !important;
  width: 100% !important;
}
.pulso-row-inline > .e-con,
.pulso-row-inline > .e-con-inner > .e-con,
.pulso-row-inline > .elementor-element,
.pulso-row-inline > .e-con-inner > .elementor-element,
.pulso-row-inline > .elementor-widget {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
}
 
/* Inline row left-aligned (Hero CTAs, Hero trust tags) */
.pulso-row-inline-left,
.elementor-element.pulso-row-inline-left {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  justify-content: flex-start !important;
  gap: 16px !important;
  width: 100% !important;
}
.pulso-row-inline-left > .e-con,
.pulso-row-inline-left > .e-con-inner > .e-con,
.pulso-row-inline-left > .elementor-element,
.pulso-row-inline-left > .e-con-inner > .elementor-element,
.pulso-row-inline-left > .elementor-widget {
  flex: 0 0 auto !important;
  width: auto !important;
  max-width: none !important;
}
 
/* 2-column 50/50 (Solutions tab inner content: image + text) */
.pulso-row-50-50,
.elementor-element.pulso-row-50-50 {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: wrap !important;
  align-items: center !important;
  gap: 40px !important;
  width: 100% !important;
}
.pulso-row-50-50 > .e-con,
.pulso-row-50-50 > .e-con-inner > .e-con,
.pulso-row-50-50 > .elementor-element,
.pulso-row-50-50 > .e-con-inner > .elementor-element {
  flex: 1 1 100% !important;
  max-width: 100% !important;
  width: 100% !important;
}
@media (min-width: 1024px) {
  .pulso-row-50-50 > .e-con,
  .pulso-row-50-50 > .e-con-inner > .e-con,
  .pulso-row-50-50 > .elementor-element,
  .pulso-row-50-50 > .e-con-inner > .elementor-element {
    flex: 0 1 calc(50% - 20px) !important;
    max-width: calc(50% - 20px) !important;
    width: calc(50% - 20px) !important;
  }
}
 
/* ─────────────────────────────────────────────────────────────────
   21. TABS WIDGET — pill bar with gradient active tab
   Apply class `pulso-tabs` to the Elementor Tabs widget itself.
   ───────────────────────────────────────────────────────────────── */
 
.pulso-tabs .elementor-tabs {
  text-align: center !important;
  border: none !important;
  background: transparent !important;
}
 
/* The horizontal bar of tab titles */
.pulso-tabs .elementor-tabs-wrapper {
  display: inline-flex !important;
  flex-wrap: wrap !important;
  justify-content: center !important;
  gap: 6px !important;
  padding: 6px !important;
  background: #ffffff !important;
  border: 1px solid var(--pulso-line, #E6EAF1) !important;
  border-radius: 999px !important;
  margin-bottom: 40px !important;
  width: auto !important;
}
 
/* Individual tab title (pill button) */
.pulso-tabs .elementor-tab-title {
  padding: 9px 18px !important;
  border-radius: 999px !important;
  font-family: var(--pulso-f-body, "Inter", sans-serif) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: var(--pulso-ink-2, #3A424E) !important;
  background: transparent !important;
  border: none !important;
  cursor: pointer !important;
  transition: all 250ms cubic-bezier(0.2, 0.8, 0.2, 1) !important;
  letter-spacing: 0 !important;
  line-height: 1.4 !important;
  white-space: nowrap !important;
}
.pulso-tabs .elementor-tab-title:hover {
  color: var(--pulso-ink, #111418) !important;
  background: var(--pulso-bg-subtle, #F4F6FA) !important;
}
 
/* Active tab — gradient bg + white text + shadow */
.pulso-tabs .elementor-tab-title.elementor-active,
.pulso-tabs .elementor-tab-title.elementor-active:hover {
  background: var(--pulso-grad-brand, linear-gradient(135deg, #6D28D9 0%, #0891B2 100%)) !important;
  background-image: var(--pulso-grad-brand, linear-gradient(135deg, #6D28D9 0%, #0891B2 100%)) !important;
  color: #ffffff !important;
  box-shadow: 0 8px 24px rgba(109, 40, 217, 0.35) !important;
}
 
/* Content area below tabs — strip Elementor's default borders */
.pulso-tabs .elementor-tabs-content-wrapper {
  border: none !important;
  background: transparent !important;
}
.pulso-tabs .elementor-tab-content {
  padding: 0 !important;
  border: none !important;
  background: transparent !important;
}
 
/* ─────────────────────────────────────────────────────────────────
   21b. HERO SHADER MOUNT — force HTML widget to absolute fill the Section
   El widget HTML de Elementor (.elementor-widget-html) tiene su propio
   wrapper que NO tiene size cuando todo su contenido es absolute. Eso
   colapsa el canvas a 0x0. Esta class hace al widget completo absolute
   relativo al Section padre, así el canvas puede medirse en 100%/100%.
 
   Aplicar class `pulso-hero-shader-mount` a:
     - HTML widget del Hero shader (sección 01)
     - HTML widget del Final CTA shader (sección 10, además de `pulso-hero-shader--dim`)
   ───────────────────────────────────────────────────────────────── */
.elementor-element.pulso-hero-shader-mount,
.elementor-widget.pulso-hero-shader-mount,
.elementor-widget-html.pulso-hero-shader-mount {
  position: absolute !important;
  inset: 0 !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  pointer-events: none !important;
  z-index: 0 !important;
}
.pulso-hero-shader-mount .elementor-widget-container {
  position: relative !important;
  width: 100% !important;
  height: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  background: transparent !important;
}
.pulso-hero-shader-mount .pulso-hero-shader,
.pulso-hero-shader-mount .pulso-hero-shader-canvas {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
}
 
/* Mobile accordion-style titles (used below 768px) */
.pulso-tabs .elementor-tab-mobile-title {
  padding: 12px 18px !important;
  font-family: var(--pulso-f-body, "Inter", sans-serif) !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  background: #ffffff !important;
  border: 1px solid var(--pulso-line, #E6EAF1) !important;
  border-radius: 12px !important;
  margin-bottom: 8px !important;
  color: var(--pulso-ink-2, #3A424E) !important;
  cursor: pointer !important;
  transition: all 250ms cubic-bezier(0.2, 0.8, 0.2, 1) !important;
}
.pulso-tabs .elementor-tab-mobile-title.elementor-active {
  background: var(--pulso-grad-brand, linear-gradient(135deg, #6D28D9, #0891B2)) !important;
  background-image: var(--pulso-grad-brand, linear-gradient(135deg, #6D28D9, #0891B2)) !important;
  color: #ffffff !important;
  border-color: transparent !important;
}

/* =====================================================================
   22. "PRÓXIMAMENTE" — draft pages en nav menu
   ---------------------------------------------------------------------
   Aplicado por WordPress como class `is-soon` en menu items que apuntan
   a páginas Draft (el snippet pulso-bulk-create-menu.php lo configura).
   Visual: punto ámbar sutil + opacidad reducida + tooltip al hover.
   ===================================================================== */

/* Base: dim el link y prep para tooltip */
.elementor-nav-menu li.menu-item.is-soon > a,
.elementor-nav-menu--dropdown li.menu-item.is-soon > a,
ul.elementor-nav-menu li.menu-item.is-soon > a {
  position: relative !important;
  opacity: 0.72 !important;
  transition: opacity 250ms var(--pulso-ease) !important;
}

/* Punto ámbar (siempre visible) */
.elementor-nav-menu li.menu-item.is-soon > a::before {
  content: "" !important;
  display: inline-block !important;
  width: 6px !important;
  height: 6px !important;
  border-radius: 50% !important;
  background: #F0C97C !important;
  box-shadow: 0 0 8px rgba(240, 201, 124, 0.6) !important;
  margin-right: 7px !important;
  vertical-align: middle !important;
  flex: none !important;
}

/* Hover: restaurar opacidad */
.elementor-nav-menu li.menu-item.is-soon > a:hover {
  opacity: 1 !important;
}

/* Tooltip "Próximamente" — aparece abajo del item al hover */
.elementor-nav-menu li.menu-item.is-soon > a::after {
  content: "Próximamente" !important;
  position: absolute !important;
  top: calc(100% + 8px) !important;
  left: 50% !important;
  transform: translateX(-50%) translateY(-4px) !important;
  background: var(--pulso-bg-dark, #0A0F1F) !important;
  color: #ffffff !important;
  font-family: var(--pulso-f-mono) !important;
  font-size: 10px !important;
  font-weight: 600 !important;
  letter-spacing: 0.06em !important;
  text-transform: uppercase !important;
  padding: 5px 10px !important;
  border-radius: 6px !important;
  border: 1px solid rgba(167, 139, 250, 0.30) !important;
  white-space: nowrap !important;
  z-index: 100 !important;
  pointer-events: none !important;
  opacity: 0 !important;
  visibility: hidden !important;
  transition: all 200ms var(--pulso-ease) !important;
  text-align: center !important;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.30) !important;
}

.elementor-nav-menu li.menu-item.is-soon > a:hover::after {
  opacity: 1 !important;
  visibility: visible !important;
  transform: translateX(-50%) translateY(0) !important;
}

/* Dropdown items: tooltip aparece a la derecha en vez de abajo
   (para no quedar tapado por el mismo dropdown) */
.elementor-nav-menu--dropdown li.menu-item.is-soon > a::after,
.elementor-nav-menu .sub-menu li.menu-item.is-soon > a::after {
  top: 50% !important;
  left: calc(100% + 8px) !important;
  transform: translateY(-50%) translateX(-4px) !important;
}

.elementor-nav-menu--dropdown li.menu-item.is-soon > a:hover::after,
.elementor-nav-menu .sub-menu li.menu-item.is-soon > a:hover::after {
  transform: translateY(-50%) translateX(0) !important;
}

/* Variante: CTA Button con class `is-soon-btn` (para el botón de Agendar demo
   en footer si aplica). Aplica el dim sin punto ámbar. */
.pulso-btn-primary.is-soon-btn .elementor-button,
.pulso-btn-ghost.is-soon-btn .elementor-button {
  opacity: 0.72 !important;
  position: relative !important;
}
.pulso-btn-primary.is-soon-btn .elementor-button:hover,
.pulso-btn-ghost.is-soon-btn .elementor-button:hover {
  opacity: 1 !important;
}/* End custom CSS */