.elementor-kit-9{--e-global-color-primary:#0A3B57;--e-global-color-secondary:#42B8CD;--e-global-color-text:#283239;--e-global-color-accent:#E63746;--e-global-color-bg:#F8FAFC;--e-global-color-card:#FFFFFF;--e-global-color-red:#EF4343;--e-global-color-muted:#F1F5F9;--e-global-color-mutedfg:#728792;--e-global-color-border:#E1E7EF;--e-global-color-border50:#E1E7EF80;--e-global-color-text80:#283239CC;--e-global-color-text90:#283239E6;--e-global-color-primary10:#0A3B571A;--e-global-color-primary5:#0A3B570D;--e-global-color-secondary20:#42B8CD33;--e-global-color-primary20:#0A3B5733;--e-global-color-secondary5:#42B8CD0D;--e-global-color-primary50:#0A3B5780;--e-global-color-bg50:#F8FAFC80;--e-global-color-card60:#FFFFFF99;--e-global-color-card50:#FFFFFF80;--e-global-color-herobtn:#42B8CD;--e-global-color-bgnav:#F8FAFCCC;--e-global-color-navy:#0A2540;--e-global-color-ctabg:#1A3644;--e-global-color-ctacircle:#244A59;--e-global-color-teal:#13B5B1;--e-global-color-ctared:#FF3B49;--e-global-color-methred:#FF3344;--e-global-color-methnavy:#1B3145;--e-global-color-white:#FFFFFF;--e-global-color-slate800:#1E293B;--e-global-color-slate700:#334155;--e-global-color-slate500:#64748B;--e-global-color-slate200:#E2E8F0;--e-global-color-gray500:#6B7280;--e-global-color-gray600:#4B5563;--e-global-color-gray800:#1F2937;--e-global-color-whatsapp:#25D366;--e-global-color-linkedin:#0A66C2;background-color:var( --e-global-color-bg );}.elementor-kit-9 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1200px;}.e-con{--container-max-width:1200px;--container-default-padding-top:0px;--container-default-padding-right:0px;--container-default-padding-bottom:0px;--container-default-padding-left:0px;}.elementor-widget:not(:last-child){--kit-widget-spacing:0px;}.elementor-element{--widgets-spacing:0px 0px;--widgets-spacing-row:0px;--widgets-spacing-column:0px;}{}h1.entry-title{display:var(--page-title-display);}@media(max-width:1023px){.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 *//* ==========================================================================
   AI-Coach: CSS global del kit de Elementor.
   Aquí va solo lo que los controles de Elementor no permiten hacer. Todo lo demás
   (colores, tipografía, espaciados, bordes, sombras, fondos) se edita en el panel.
   Cada bloque explica qué hace; si una regla deja de funcionar tras una actualización,
   el efecto es solo visual (nada se rompe).
   ========================================================================== */

/* ---------- Tipografía base (igual al sitio original: fuente del sistema) ---------- */
html { scroll-behavior: smooth; }
body {
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
  background-color: var(--e-global-color-bg);
  color: var(--e-global-color-text);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
body ::selection { background: rgba(10, 59, 87, .3); color: var(--e-global-color-text); }
a { color: inherit; }
.elementor-widget-text-editor p { margin: 0; }
.elementor-widget-text-editor p + p { margin-top: 1em; }
.elementor a:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; }

/* ---------- Modo oscuro: redefine los colores globales ---------- */
html.ac-dark body {
  --e-global-color-bg: #151A1E;
  --e-global-color-text: #F8FAFC;
  --e-global-color-card: #1C2227;
  --e-global-color-primary: #105D89;
  --e-global-color-red: #7F1D1D;
  --e-global-color-muted: #283239;
  --e-global-color-mutedfg: #A9B5BC;
  --e-global-color-border: #283239;
  --e-global-color-text80: #F8FAFCCC;
  --e-global-color-text90: #F8FAFCE6;
  --e-global-color-primary10: #105D891A;
  --e-global-color-primary5: #105D890D;
  --e-global-color-primary20: #105D8933;
  --e-global-color-primary50: #105D8980;
  --e-global-color-bg50: #151A1E80;
  --e-global-color-card60: #1C222799;
  --e-global-color-card50: #1C222780;
  --e-global-color-border50: #28323980;
  --e-global-color-herobtn: #105D89;
  --e-global-color-bgnav: #151A1ECC;
  --e-global-color-slate700: #CBD5E1;
  color-scheme: dark;
}
.ac-dark-only { display: none !important; }
html.ac-dark .ac-dark-only { display: block !important; }
html.ac-dark .ac-light-only { display: none !important; }

/* ---------- Íconos lucide (SVG de trazo) ---------- */
/* Solo los íconos escritos a mano en widgets HTML (sol/luna, compartir, redes) usan trazo.
   Los íconos subidos a la biblioteca son de relleno y toman el color de los controles de Elementor. */
svg.lucide { fill: none !important; stroke: currentColor; }

/* ---------- Utilidades ---------- */
/* Para resaltar parte de un título: en el texto del título se escribe <span class="ac-accent">palabra</span>. */
.ac-accent { color: var(--e-global-color-secondary); }
.ac-primary { color: var(--e-global-color-primary); }
.ac-teal { color: var(--e-global-color-teal); }
.ac-muted { color: var(--e-global-color-mutedfg); }
.ac-strong { color: var(--e-global-color-text); font-weight: 800; }
.ac-thin { font-weight: 300; }
.ac-regular { font-weight: 400; }
.ac-upright { font-style: normal; }
.ac-gradient-text .elementor-heading-title span,
.ac-gradient-text span.ac-grad {
  background-image: linear-gradient(to right, var(--e-global-color-primary), var(--e-global-color-secondary));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.ac-bounce .elementor-icon { animation: ac-bounce 1s infinite; }
@keyframes ac-bounce {
  0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(.8, 0, 1, 1); }
  50% { transform: none; animation-timing-function: cubic-bezier(0, 0, .2, 1); }
}
.ac-hover-lift { transition: transform .3s; }
.ac-hover-lift:hover { transform: translateY(-4px); }
.ac-hover-scale { transition: transform .3s; }
.ac-hover-scale:hover { transform: scale(1.05); }
.ac-hover-scale-sm { transition: transform .3s; }
.ac-hover-scale-sm:hover { transform: scale(1.02); }
.ac-btn-arrow .elementor-button:hover .elementor-button-icon { transform: translateX(4px); }
.ac-btn-arrow .elementor-button-icon { transition: transform .2s; }

/* ---------- Marquee de logos de clientes ---------- */
.ac-marquee { overflow: hidden; position: relative; }
.ac-marquee-track { width: max-content !important; flex-wrap: nowrap !important; animation: ac-marquee 41s linear infinite; }
.ac-marquee:hover .ac-marquee-track { animation-play-state: paused; }
@keyframes ac-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.ac-marquee::before, .ac-marquee::after {
  content: ""; position: absolute; top: 0; bottom: 0; width: 16.66%; z-index: 2; pointer-events: none;
}
.ac-marquee::before { left: 0; background: linear-gradient(to right, var(--e-global-color-bg), transparent); }
.ac-marquee::after { right: 0; background: linear-gradient(to left, var(--e-global-color-bg), transparent); }
.ac-logo img { filter: grayscale(1); transition: all .3s; }
.ac-logo img:hover { filter: none; transform: scale(1.1); }
html.ac-dark .ac-logo img { filter: brightness(0) invert(1); }
html.ac-dark .ac-logo img:hover { filter: none; }

/* ---------- Header ---------- */
.ac-header { transition: background-color .3s, padding .3s; }
.ac-header.ac-scrolled {
  background-color: var(--e-global-color-bgnav) !important;
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  padding-top: 8px !important; padding-bottom: 8px !important;
}
html.ac-dark .ac-header { border-color: rgba(248,250,252,.05) !important; }
.ac-nav .elementor-nav-menu--main .ac-menu-cta { display: none !important; }
.ac-nav .elementor-nav-menu--main .elementor-item-active,
.ac-nav .elementor-nav-menu--main .current-menu-item > a { font-weight: 600; }
.ac-nav .elementor-menu-toggle { width: 40px; height: 40px; }
.ac-nav { position: relative; }
.ac-nav .elementor-nav-menu--dropdown.elementor-nav-menu__container { position: absolute !important; top: 100%; z-index: 60; }
.ac-nav .elementor-nav-menu--dropdown {
  background: color-mix(in srgb, var(--e-global-color-bg) 95%, transparent) !important;
  -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px);
  border-bottom: 1px solid rgba(40,50,57,.05); box-shadow: 0 20px 25px -5px rgba(0,0,0,.1);
  padding: 20px 24px 32px;
}
.ac-nav .elementor-nav-menu--dropdown a { justify-content: center !important; background: transparent !important; }
.ac-nav .elementor-nav-menu--dropdown .current-menu-item > a { font-weight: 600; }
.ac-nav .elementor-nav-menu--dropdown .ac-menu-cta {
  margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(40,50,57,.1); display: flex; justify-content: center;
}
.ac-nav .elementor-nav-menu--dropdown .ac-menu-cta > a {
  width: 100%; max-width: 320px; border-radius: 9999px !important; padding: 10px 32px !important;
  background: var(--e-global-color-red) !important; color: #fff !important; font-size: 14px !important; font-weight: 600;
  box-shadow: 0 0 15px rgba(0,212,255,.3);
}
.ac-theme-toggle {
  position: relative; width: 40px; height: 40px; border: 0; border-radius: 9999px; padding: 0;
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; color: var(--e-global-color-text); cursor: pointer; transition: background-color .2s;
}
.ac-theme-toggle:hover { background: var(--e-global-color-muted); }
.ac-theme-toggle svg { width: 20px; height: 20px; transition: transform .3s, opacity .3s; }
.ac-theme-toggle .ac-moon { position: absolute; transform: rotate(90deg) scale(0); opacity: 0; }
html.ac-dark .ac-theme-toggle .ac-sun { transform: rotate(-90deg) scale(0); opacity: 0; }
html.ac-dark .ac-theme-toggle .ac-moon { transform: rotate(0) scale(1); opacity: 1; }
.ac-header .elementor-button { white-space: nowrap; }
/* Con la barra de administración de WordPress (solo usuarios conectados), el header fijo baja para no quedar tapado. */
body.admin-bar .ac-header { top: 32px !important; }
@media (max-width: 782px) { body.admin-bar .ac-header { top: 46px !important; } }
/* Entre 1024 y 1199 px el menú + botón no cabían: "Nosotros" bajaba de línea y el botón se partía en dos. */
@media (min-width: 1024px) and (max-width: 1199px) {
  .elementor-widget-nav-menu.ac-nav { --e-nav-menu-horizontal-menu-item-margin: 8px !important; margin-right: 0 !important; }
  /* El logo usa margin-left:-32px (sobresale del contenedor en pantallas anchas); aquí lo cortaba 8px por la izquierda. */
  .ac-header > .e-con-inner > .e-con:first-child { margin-left: 0 !important; }
}

/* ---------- Botón flotante de WhatsApp ---------- */
@media (max-width: 767px) {
  .ac-wa { right: 16px !important; bottom: 16px !important; }
  .ac-wa .elementor-icon { padding: 12px !important; }
  .ac-wa .elementor-icon svg { width: 24px !important; height: 24px !important; }
}
/* Ocultarlo mientras hay un popup abierto (tapaba botones del formulario). */
body:has(.elementor-popup-modal:not([style*="none"])) .ac-wa { display: none !important; }

/* ---------- Saltos de línea responsivos (equivalen a hidden md:block / lg:block) ---------- */
@media (max-width: 767px) { .ac-br-md { display: none; } }
@media (max-width: 1023px) { .ac-br-lg { display: none; } }

/* ---------- Línea de tiempo "Nuestra propuesta" ---------- */
/* Al pasar el mouse por un paso, el número y el título se destacan (efecto opcional: si falla, no se rompe nada). */
.ac-step-line { transition: background-color .2s; }
.ac-step:hover .ac-step-line { background-color: var(--e-global-color-primary10) !important; }
.ac-step:hover .ac-step-num { border-color: var(--e-global-color-primary) !important; }
.ac-step:hover .ac-step-num .elementor-heading-title,
.ac-step:hover .ac-step-head .elementor-heading-title { color: var(--e-global-color-primary) !important; }
@media (min-width: 1024px) { .ac-sticky-logo { position: sticky !important; top: 128px; } }

/* ---------- Reset tipo Tailwind preflight (Hello agrega márgenes a h1-h6 y p) ---------- */
.elementor :is(h1, h2, h3, h4, h5, h6, p).elementor-heading-title,
.elementor .elementor-icon-box-title,
.elementor .elementor-icon-box-description,
.elementor .elementor-widget-text-editor p { margin-block: 0; }
/* El reset anterior le gana a "p + p" de arriba: repetir el espaciado entre párrafos con la misma especificidad. */
.elementor .elementor-widget-text-editor p + p { margin-top: 1em; }

/* ---------- Contacto: íconos sociales dentro del formulario ---------- */
.ac-social-row { display: flex; gap: 16px; }
.ac-social-square {
  width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center;
  background: var(--e-global-color-bg50); border: 1px solid var(--e-global-color-border50); color: var(--e-global-color-mutedfg); transition: all .2s;
}
.ac-social-square:hover { background: var(--e-global-color-bg); color: var(--e-global-color-text); }
.ac-social-square svg { width: 20px; height: 20px; }

/* ---------- Blog ---------- */
.ac-clamp-2 .elementor-heading-title { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
/* Elementor fuerza display:flow-root y el color en .elementor-widget-container (que ya no existe): subir especificidad. */
.elementor-widget.ac-clamp-3 {
  display: -webkit-box !important; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
  color: var(--e-global-color-mutedfg); line-height: 24px; align-self: stretch;
}
.ac-clamp-3 p { margin: 0; display: inline; }
/* Ícono de etiqueta incrustado (no depende de un archivo de la biblioteca de medios). */
.ac-badges { --ac-tag-icon: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z'/%3E%3Ccircle cx='7.5' cy='7.5' r='.5' fill='currentColor'/%3E%3C/svg%3E"); }
/* Las comas entre términos son nodos de texto (font-size 0) y cuentan como ítems flex: el gap se duplicaba. Separar con margen. */
.ac-badges .elementor-post-info__terms-list { font-size: 0; display: inline-flex !important; flex-wrap: wrap; gap: 8px 0; }
.ac-badges .elementor-post-info__terms-list-item:not(:last-child) { margin-right: 8px; }
/* La lista inline de Elementor usa margin-inline:-8px: los badges quedaban 8px a la izquierda del título. */
.ac-badges .elementor-icon-list-items.elementor-inline-items { margin-inline: 0 !important; }
.ac-badges .elementor-post-info__terms-list-item {
  display: inline-flex; align-items: center; border-radius: 9999px; padding: 2px 10px; font-size: 12px; line-height: 16px; font-weight: 600;
  background: var(--e-global-color-primary10); color: var(--e-global-color-primary) !important; transition: background-color .2s;
}
.ac-badges .elementor-post-info__terms-list-item:hover { background: rgba(10,59,87,.2); }
.ac-badges-icon .elementor-post-info__terms-list-item::before {
  content: ""; display: inline-block; flex: 0 0 12px; width: 12px; height: 12px; margin-right: 4px;
  background-color: var(--e-global-color-primary);
  -webkit-mask-image: var(--ac-tag-icon); mask-image: var(--ac-tag-icon);
  -webkit-mask-size: contain; mask-size: contain; -webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
}
.ac-badges .elementor-icon-list-item { margin: 0 !important; }
.ac-share {
  display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 12px; border-radius: 12px; font-size: 14px; font-weight: 500;
  border: 1px solid rgba(255,255,255,.1); color: var(--e-global-color-text); text-decoration: none; transition: background-color .2s;
}
.ac-share:hover { background: rgba(255,255,255,.05); }
.ac-share svg { width: 16px; height: 16px; }
.ac-prose { color: var(--e-global-color-mutedfg); font-size: 18px; line-height: 1.625; }
.ac-prose p { margin: 0 0 24px; }
/* Igual que el original: h2 = text-2xl md:text-3xl font-bold mt-10; h3 = text-xl md:text-2xl font-semibold mt-8. */
.ac-prose h2, .ac-prose h3 { color: var(--e-global-color-text); font-size: 24px; line-height: 32px; font-weight: 600; margin: 32px 0 16px; }
.ac-prose h2 { font-size: 30px; line-height: 36px; font-weight: 700; margin-top: 40px; }
@media (max-width: 767px) {
  .ac-prose h2 { font-size: 24px; line-height: 32px; }
  .ac-prose h3 { font-size: 20px; line-height: 28px; }
}
.ac-prose p.ac-lead { color: var(--e-global-color-text); font-size: 20px; line-height: 28px; font-weight: 600; margin-bottom: 16px; }
.ac-prose ul, .ac-prose ol { padding-left: 24px; margin: 0 0 24px; list-style: disc; }
.ac-prose ol { list-style: decimal; }
.ac-prose li + li { margin-top: 8px; }
.ac-prose strong { color: var(--e-global-color-text); font-weight: 600; }
.ac-prose a { color: var(--e-global-color-primary); text-decoration: underline; }

/* ---------- Políticas de privacidad ---------- */
.ac-legal ul { list-style: disc; padding-left: 24px; margin: 16px 0 0; }
.ac-legal li + li { margin-top: 8px; }
.ac-legal strong { font-weight: 700; }
.ac-legal a { color: var(--e-global-color-primary); }
.ac-legal a:hover { text-decoration: underline; }

/* "Blog" aparece activo en el menú también dentro de una entrada (por el enlace, no por el ID del ítem de menú). */
body.single-post .ac-nav .elementor-nav-menu--main a[href$="/blog/"] { color: var(--e-global-color-primary) !important; font-weight: 600; }

/* Amelia (agenda): colores de marca y campos obligatorios se configuran en Amelia → Personalizar → Paso a paso. */

/* ---------- Popups ---------- */
/* Si el contenido del popup es más alto que la pantalla (formularios largos en celulares), se desplaza dentro del popup. */
.elementor-popup-modal .dialog-message { max-height: 90vh; overflow-y: auto; }/* End custom CSS */