/* ShiftNav Modern Design — MadridPsicoterapia · Rediseño Premium 2026
   Paleta: navy gradient + gold accents
   ============================================ */

/* -------------------------------------------------------
   GOOGLE FONT: Plus Jakarta Sans — fuente moderna 2026
   Reemplaza Harabara (que no soporta acentos en móvil).
   Peso 800 para headings, 600 para subheadings.
   ------------------------------------------------------- */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@600;700;800&display=swap');

/* Panel principal - oculto por defecto */
.shiftnav.shiftnav-shiftnav-main,
#shiftnav-main {
    background: linear-gradient(180deg, #0d1b2a 0%, #142233 100%) !important;
    width: 320px !important;
    max-width: 85vw !important;
    box-shadow: 8px 0 40px rgba(0, 0, 0, 0.4) !important;
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    bottom: 0 !important;
    z-index: 600000 !important;
    overflow-y: auto !important;
    transform: translateX(-320px) !important;
    visibility: hidden !important;
    opacity: 0 !important;
}

/* Panel visible cuando abierto */
body.shiftnav-open .shiftnav.shiftnav-shiftnav-main,
body.shiftnav-open #shiftnav-main {
    transform: translateX(0) !important;
    visibility: visible !important;
    opacity: 1 !important;
}
.shiftnav-inner {
    padding: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    min-height: 100vh !important;
}

/* Logo */
.shiftnav .shiftnav-panel-image {
    padding: 32px 28px 24px !important;
    border-bottom: 1px solid rgba(255, 255, 255, 0.08) !important;
    text-align: left !important;
}
.shiftnav .shiftnav-panel-image img,
.shiftnav .shiftnav-inner > div > img,
.shiftnav-inner > div:first-child img,
#shiftnav-main img,
.shiftnav img {
    max-width: 180px !important;
    height: auto !important;
    filter: brightness(0) invert(1) !important;
}

/* Close panel button */
.shiftnav .shiftnav-panel-close,
#shiftnav-main .shiftnav-panel-close {
    background: rgba(255, 255, 255, 0.1) !important;
    color: #fff !important;
    border: none !important;
    padding: 12px !important;
    font-family: Manrope, -apple-system, sans-serif !important;
    font-size: 14px !important;
    cursor: pointer !important;
}

/* Menu items */
.shiftnav .shiftnav-nav,
#shiftnav-main .shiftnav-nav,
#shiftnav-main ul {
    padding: 16px 0 !important;
    flex-grow: 1 !important;
    list-style: none !important;
    margin: 0 !important;
}
.shiftnav .shiftnav-nav li.menu-item,
#shiftnav-main li {
    border: none !important;
    margin: 0 !important;
    list-style: none !important;
    list-style-type: none !important;
}
.shiftnav .shiftnav-nav li.menu-item > a,
#shiftnav-main li > a,
#shiftnav-main .menu-item > a {
    padding: 16px 28px !important;
    font-family: Manrope, -apple-system, sans-serif !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    letter-spacing: 0.3px !important;
    color: rgba(255, 255, 255, 0.75) !important;
    background: transparent !important;
    border-left: 3px solid transparent !important;
    transition: all 0.3s ease !important;
    text-transform: none !important;
    text-decoration: none !important;
    display: block !important;
}
.shiftnav .shiftnav-nav li.menu-item > a:hover,
.shiftnav .shiftnav-nav li.menu-item > a:focus {
    color: #fff !important;
    background: rgba(255, 255, 255, 0.06) !important;
    border-left-color: #e8a020 !important;
    padding-left: 32px !important;
}
.shiftnav .shiftnav-nav li.current-menu-item > a,
#shiftnav-main li.current-menu-item > a,
#shiftnav-main .current-menu-item > a,
.shiftnav li.current-menu-item > a,
li.current-menu-item > a {
    color: #e8a020 !important;
    border-left-color: #e8a020 !important;
    font-weight: 600 !important;
    background: rgba(232, 160, 32, 0.08) !important;
}

/* Info contacto */
.shiftnav-contact-info {
    margin-top: auto !important;
    padding: 24px 28px 32px !important;
    border-top: 1px solid rgba(255, 255, 255, 0.08) !important;
    background: rgba(0, 0, 0, 0.15) !important;
}
.shiftnav-contact-info .shiftnav-info-item {
    display: flex !important;
    align-items: center !important;
    gap: 12px !important;
    padding: 10px 0 !important;
    font-family: Manrope, -apple-system, sans-serif !important;
    font-size: 13.5px !important;
    color: rgba(255, 255, 255, 0.6) !important;
    letter-spacing: 0.2px !important;
    line-height: 1.4 !important;
}
.shiftnav-contact-info .shiftnav-info-icon {
    font-size: 0 !important;
    flex-shrink: 0 !important;
    width: 20px !important;
    text-align: center !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
}
/* Ocultar emojis y mostrar FontAwesome */
.shiftnav-contact-info .shiftnav-info-icon::after {
    font-family: FontAwesome !important;
    font-size: 14px !important;
    color: #e8a020 !important;
    display: inline-block !important;
}
/* Horario: icono reloj */
.shiftnav-contact-info .shiftnav-info-item:nth-child(1) .shiftnav-info-icon::after {
    content: "\f017" !important;
}
/* Telefono: icono phone */
.shiftnav-contact-info .shiftnav-info-item:nth-child(2) .shiftnav-info-icon::after {
    content: "\f095" !important;
}
/* Ubicacion: icono map-marker */
.shiftnav-contact-info .shiftnav-info-item:nth-child(3) .shiftnav-info-icon::after {
    content: "\f041" !important;
}
.shiftnav-contact-info a {
    color: rgba(255, 255, 255, 0.6) !important;
    text-decoration: none !important;
    transition: color 0.2s ease !important;
}
.shiftnav-contact-info a:hover {
    color: #e8a020 !important;
}

/* Overlay */
body.shiftnav-open .shiftnav-overlay {
    background: rgba(13, 27, 42, 0.5) !important;
}

/* Toggle bar */
#shiftnav-toggle-main,
.shiftnav-toggle {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 500000 !important;
    display: block !important;
    background: #0d1b2a !important;
    color: #fff !important;
    height: 48px !important;
    line-height: 48px !important;
}
#shiftnav-toggle-main .shiftnav-toggle-content,
#shiftnav-toggle-main .shiftnav-main-toggle-content {
    color: #fff !important;
    font-family: Manrope, -apple-system, sans-serif !important;
    font-size: 14px !important;
    letter-spacing: 0.3px !important;
}
#shiftnav-toggle-main .shiftnav-icon,
#shiftnav-toggle-main i,
.shiftnav-toggle .shiftnav-icon {
    color: #fff !important;
}

/* Ocultar ShiftNav en escritorio (>1024px) */
@media (min-width: 1025px) {
    #shiftnav-toggle-main,
    .shiftnav-toggle,
    #shiftnav-main,
    .shiftnav {
        display: none !important;
        visibility: hidden !important;
    }
}

/* Ocultar titulo */
.shiftnav .shiftnav-panel-title {
    display: none !important;
}

/* Transicion suave */
.shiftnav.shiftnav-transition-standard {
    transition: transform 0.4s ease !important;
}

/* ============================================
   VISUAL POLISH - Acabado profesional
   ============================================ */

/* --- Botones: hover suave, sombra y SHIMMER --- */
.elementor-button,
a.e-button {
    transition: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    position: relative !important;
    overflow: hidden !important;
    border-radius: 50px !important;
    font-weight: 700 !important;
}
.elementor-button:hover,
a.e-button:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15) !important;
    filter: brightness(1.08) !important;
}
.elementor-button:active,
a.e-button:active {
    transform: translateY(0) !important;
}

/* SHIMMER sweep en todos los CTA — efecto rayo de luz visible */
.elementor-button::after,
a.e-button::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: -100% !important;
    width: 50% !important;
    height: 100% !important;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255,255,255,0.15) 25%,
        rgba(255,255,255,0.5) 50%,
        rgba(255,255,255,0.15) 75%,
        transparent 100%
    ) !important;
    animation: shimmerCTA 3.5s ease-in-out infinite !important;
    pointer-events: none !important;
    z-index: 1 !important;
}
@keyframes shimmerCTA {
    0%   { left: -100%; opacity: 0; }
    10%  { opacity: 1; }
    40%  { left: 200%; opacity: 1; }
    50%  { left: 200%; opacity: 0; }
    100% { left: 200%; opacity: 0; }
}

/* Sombra verde en botones con fondo verde */
.elementor-button[style*="background-color: #2D7A5E"],
.elementor-button[style*="background-color: #2d7a5e"],
.elementor-button[style*="background-color:#2D7A5E"],
.elementor-button[style*="background-color:#2d7a5e"],
.elementor-button.elementor-button-success,
.elementor-element .elementor-button[style*="059669"],
.elementor-element .elementor-button[style*="2d7a5e"] {
    box-shadow: 0 4px 20px rgba(45,122,94,0.4) !important;
}

/* --- Cards y contenedores: sombras suaves --- */
.elementor-widget-container .e-con,
.elementor-column .elementor-widget-wrap {
    transition: box-shadow 0.3s ease, transform 0.3s ease !important;
}

/* --- FAQ accordion: bordes y espaciado refinados --- */
.elementor-accordion .elementor-accordion-item {
    border: 1px solid rgba(0, 0, 0, 0.04) !important;
    border-radius: 12px !important;
    margin-bottom: 10px !important;
    overflow: hidden !important;
    transition: all 0.3s ease !important;
    box-shadow: 0 2px 12px rgba(0,0,0,0.04) !important;
    background: #fff !important;
}
.elementor-accordion .elementor-accordion-item:hover {
    border-color: rgba(45, 122, 94, 0.2) !important;
    box-shadow: 0 4px 16px rgba(45, 122, 94, 0.08) !important;
}
.elementor-accordion .elementor-tab-title {
    padding: 20px 24px !important;
    font-weight: 600 !important;
}
.elementor-accordion .elementor-tab-title .elementor-accordion-icon {
    color: #2d7a5e !important;
}
.elementor-accordion .elementor-tab-content {
    padding: 0 24px 20px !important;
    line-height: 1.7 !important;
    color: #6b7280 !important;
}

/* --- Tablas de precios: hover elegante --- */
.elementor-price-table {
    border-radius: 16px !important;
    overflow: hidden !important;
    transition: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06) !important;
}
.elementor-price-table:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12) !important;
}
.elementor-price-table__header {
    border-radius: 0 !important;
}

/* --- Testimonials cards: sombra y bordes --- */
.swiper-slide .e-con,
.swiper-slide > div {
    border-radius: 16px !important;
    box-shadow: 0 4px 24px rgba(0, 0, 0, 0.06) !important;
    transition: box-shadow 0.3s ease, transform 0.3s ease !important;
}
.swiper-slide .e-con:hover,
.swiper-slide > div:hover {
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1) !important;
    transform: translateY(-4px) !important;
}

/* --- Imagenes: bordes redondeados consistentes --- */
.elementor-widget-image img {
    border-radius: 16px !important;
}

/* --- Links en texto: transicion suave --- */
.elementor-widget-text-editor a {
    color: #1e5c46 !important;
    text-decoration-color: rgba(45, 122, 94, 0.3) !important;
    text-underline-offset: 3px !important;
    transition: all 0.2s ease !important;
}
.elementor-widget-text-editor a:hover {
    text-decoration-color: #e8a020 !important;
    color: #0d1b2a !important;
}

/* --- Categorias (Depresion, Ansiedad, etc.): hover refinado --- */
.elementor-widget-container a .e-con,
a.e-con {
    transition: all 0.3s ease !important;
}
.elementor-widget-container a .e-con:hover,
a.e-con:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1) !important;
}

/* --- Scroll to top: coherente con la marca --- */
#scrollUp,
.scroll-top,
[class*="scroll-to-top"],
.elementor-element [class*="scroll-to-top"] {
    background: #0d1b2a !important;
    border-radius: 12px !important;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15) !important;
    transition: all 0.3s ease !important;
}
#scrollUp:hover,
.scroll-top:hover {
    background: #2d7a5e !important;
    transform: translateY(-3px) !important;
}

/* --- Separadores de seccion: mas suaves --- */
.elementor-shape-bottom svg,
.elementor-shape-top svg {
    opacity: 0.85 !important;
}

/* --- Seleccion de texto con color de marca --- */
::selection {
    background: rgba(45, 122, 94, 0.2) !important;
    color: #0d1b2a !important;
}

/* --- Focus visible para accesibilidad --- */
a:focus-visible,
button:focus-visible,
.elementor-button:focus-visible {
    outline: 2px solid #2d7a5e !important;
    outline-offset: 3px !important;
    border-radius: 4px !important;
}

/* --- Smooth scroll global --- */
html {
    scroll-behavior: smooth !important;
}

/* --- Footer links hover --- */
.elementor-element[data-id="5c356b63"] a {
    transition: color 0.2s ease !important;
    color: rgba(255, 255, 255, 0.6) !important;
}
.elementor-element[data-id="5c356b63"] a:hover {
    color: #fff !important;
}
/* Footer list items and text */
.elementor-element[data-id="5c356b63"] li,
.elementor-element[data-id="5c356b63"] .elementor-icon-list-text {
    color: rgba(255, 255, 255, 0.6) !important;
}

/* --- Tags verdes (Preguntas frecuentes, etc.) --- */
.elementor-widget-heading .elementor-heading-title span[style*="background"] {
    box-shadow: 0 2px 8px rgba(45, 122, 94, 0.15) !important;
}

/* ============================================
   DESIGN ENHANCEMENTS - Detalles premium
   ============================================ */

/* --- 1. Contadores hero: fade-in suave --- */
.elementor-widget-counter {
    opacity: 0;
    animation: fadeInCounter 0.8s ease forwards;
}
.elementor-widget-counter:nth-child(1) { animation-delay: 0.3s; }
.elementor-widget-counter:nth-child(2) { animation-delay: 0.5s; }
.elementor-widget-counter:nth-child(3) { animation-delay: 0.7s; }
.elementor-widget-counter:nth-child(4) { animation-delay: 0.9s; }

@keyframes fadeInCounter {
    from {
        opacity: 0;
        transform: translateY(15px);
    }
    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.elementor-counter-number-wrapper {
    font-weight: 900 !important;
    letter-spacing: -1px !important;
    background: linear-gradient(135deg, #f0c060 0%, #e8a020 100%) !important;
    -webkit-background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    background-clip: text !important;
}
.elementor-counter-title {
    letter-spacing: 1.5px !important;
    font-size: 11px !important;
    color: rgba(255,255,255,0.45) !important;
    margin-top: 8px !important;
    text-transform: uppercase !important;
}

/* --- 2. Cards proceso (1,2,3,4): glass sobre beige --- */
.elementor-element[data-id="1885cab9"] .e-con.e-child {
    background: rgba(255,255,255,0.8) !important;
    backdrop-filter: blur(12px) !important;
    border: 1px solid rgba(255,255,255,0.9) !important;
    border-radius: 16px !important;
    box-shadow: 0 4px 24px rgba(0,0,0,0.06) !important;
    transition: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
}
.elementor-element[data-id="1885cab9"] .e-con.e-child:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 12px 40px rgba(0,0,0,0.1) !important;
}

/* Numeros del proceso mas elegantes */
.elementor-element[data-id="1885cab9"] .elementor-icon-box-icon {
    transition: transform 0.3s ease !important;
}
.elementor-element[data-id="1885cab9"] .e-con:hover .elementor-icon-box-icon {
    transform: scale(1.1) !important;
}

/* --- 3. Cards de valor: sombra suave sin borde grueso --- */
.elementor-element[data-id="64118e94"] .e-con.e-child {
    border-top: none !important;
    border: none !important;
    border-radius: 16px !important;
    box-shadow: 0 2px 16px rgba(0,0,0,0.06), 0 0 0 1px rgba(0,0,0,0.04) !important;
    transition: all 0.35s cubic-bezier(0.25, 0.8, 0.25, 1) !important;
    overflow: hidden !important;
}
.elementor-element[data-id="64118e94"] .e-con.e-child:hover {
    transform: translateY(-4px) !important;
    box-shadow: 0 8px 32px rgba(45,122,94,0.12), 0 0 0 1px rgba(45,122,94,0.1) !important;
}

/* Iconos de valor con gradient green */
.elementor-element[data-id="2d818c95"] .elementor-icon-list-icon svg[fill="currentColor"],
.elementor-element[data-id="2d818c95"] .elementor-widget-icon {
    color: #2d7a5e !important;
    fill: #2d7a5e !important;
}

/* --- 4. Social icons: todos blancos, hover green --- */
.elementor-social-icon {
    background-color: rgba(255, 255, 255, 0.07) !important;
    border: none !important;
    border-radius: 8px !important;
    transition: all 0.3s ease !important;
}
.elementor-social-icon i,
.elementor-social-icon svg {
    color: rgba(255,255,255,0.6) !important;
    fill: rgba(255,255,255,0.6) !important;
}
.elementor-social-icon:hover {
    background-color: rgba(255,255,255,0.15) !important;
    transform: translateY(-2px) !important;
}
.elementor-social-icon:hover i,
.elementor-social-icon:hover svg {
    color: #fff !important;
    fill: #fff !important;
}

/* --- Texto del footer: mas legible --- */
.elementor-element[data-id="5c356b63"] {
    font-size: 14px !important;
    line-height: 1.7 !important;
}
.elementor-element[data-id="5c356b63"] .elementor-heading-title {
    letter-spacing: 1.5px !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    color: rgba(255,255,255,0.35) !important;
    text-transform: uppercase !important;
    margin-bottom: 16px !important;
}
.elementor-element[data-id="5c356b63"] li {
    padding: 5px 0 !important;
}

/* --- Banner primera cita: integrado --- */
.elementor-element[data-id="38936667"] .e-con:first-child,
header .elementor-element .e-con {
    letter-spacing: 0.2px !important;
}

/* ============================================
   CLS FIX: Hero section
   ============================================ */

/* Hero section - reservar altura minima en movil */
@media (max-width: 767px) {
    .elementor-element[data-id="4a977ef7"] {
        min-height: 800px !important;
        contain: layout style !important;
    }
    .elementor-element[data-id="4a977ef7"] .elementor-background-overlay {
        contain: strict !important;
    }
}

/* Banner cookies - reservar espacio y evitar CLS */
#cmplz-cookiebanner-container {
    min-height: 0 !important;
    contain: layout !important;
}

/* Evitar CLS por font swap */
.elementor-element[data-id="4a977ef7"],
.elementor-element[data-id="4a977ef7"] * {
    font-display: optional !important;
}

/* ============================================
   FADE-IN GLOBAL para secciones Elementor
   ============================================ */
.elementor-section.fade-in-section {
    opacity: 0;
    transform: translateY(28px);
    transition: opacity 0.65s ease, transform 0.65s ease;
}
.elementor-section.fade-in-section.visible {
    opacity: 1;
    transform: translateY(0);
}

/* ============================================
   FOOTER PREMIUM — estilo preview 2026
   Línea accent verde · tipografía refinada
   ============================================ */

/* Línea gradient verde en el borde superior del footer */
.elementor-element[data-id="5c356b63"]::before {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 1px !important;
    background: linear-gradient(90deg, transparent, rgba(45,122,94,0.5), transparent) !important;
    z-index: 2 !important;
}
.elementor-element[data-id="5c356b63"] {
    position: relative !important;
    font-size: 14px !important;
    line-height: 1.7 !important;
    padding: 70px 60px 40px !important;
    overflow: hidden !important;
}

/* Logo del footer: más grande y con acento verde */
.elementor-element[data-id="5c356b63"] .elementor-widget-heading:first-of-type .elementor-heading-title,
.elementor-element[data-id="22400848"] .elementor-heading-title {
    font-size: 18px !important;
    font-weight: 900 !important;
    color: #fff !important;
    letter-spacing: -0.5px !important;
    text-transform: none !important;
    margin-bottom: 14px !important;
}

/* Títulos columnas: Enlaces, Políticas legales */
.elementor-element[data-id="4446302e"] .elementor-heading-title,
.elementor-element[data-id="dd73d33"] .elementor-heading-title {
    font-size: 12px !important;
    font-weight: 700 !important;
    color: rgba(255,255,255,0.35) !important;
    text-transform: uppercase !important;
    letter-spacing: 1.5px !important;
    margin-bottom: 16px !important;
}

/* Texto descripción footer */
.elementor-element[data-id="5e2b536b"] {
    color: rgba(255,255,255,0.4) !important;
    font-size: 13px !important;
    line-height: 1.7 !important;
    max-width: 280px !important;
}

/* Links del footer */
.elementor-element[data-id="5c356b63"] a {
    color: rgba(255,255,255,0.6) !important;
    transition: color 0.2s ease !important;
    text-decoration: none !important;
}
.elementor-element[data-id="5c356b63"] a:hover {
    color: #fff !important;
}

/* Footer bottom: separador y copyright */
.elementor-element[data-id="5c356b63"] .elementor-widget-text-editor:last-of-type {
    font-size: 12px !important;
    color: rgba(255,255,255,0.25) !important;
}

/* Social icons en footer: glass style */
.elementor-element[data-id="5c356b63"] .elementor-social-icon {
    width: 36px !important;
    height: 36px !important;
    border-radius: 8px !important;
    background: rgba(255,255,255,0.07) !important;
    transition: background 0.2s ease, transform 0.2s ease !important;
}
.elementor-element[data-id="5c356b63"] .elementor-social-icon:hover {
    background: rgba(255,255,255,0.15) !important;
    transform: translateY(-2px) !important;
}

/* ============================================
   NAV DESKTOP — estilo moderno preview 2026
   Sticky con shadow · hover backgrounds · CTA pill
   ============================================ */

/* Hacer el header sticky con shadow */
.elementor-location-header,
header.site-header {
    position: sticky !important;
    top: 0 !important;
    z-index: 1000 !important;
    background: #fff !important;
    box-shadow: 0 2px 20px rgba(0,0,0,0.06) !important;
}

/* Nav links: hover con fondo suave */
.ubermenu .ubermenu-item-level-0 > .ubermenu-target {
    border-radius: 8px !important;
    transition: background 0.2s ease, color 0.2s ease !important;
    padding: 8px 14px !important;
}
.ubermenu .ubermenu-item-level-0 > .ubermenu-target:hover {
    background: rgba(0,0,0,0.04) !important;
}

/* Nav CTA button: pill verde + shimmer */
.ubermenu .ubermenu-item-level-0.ubermenu-highlight > .ubermenu-target,
.ubermenu .ubermenu-item-level-0:last-child > .ubermenu-target {
    background: #2d7a5e !important;
    color: #fff !important;
    border-radius: 50px !important;
    padding: 11px 24px !important;
    font-weight: 700 !important;
    transition: background 0.2s ease, transform 0.2s ease !important;
    position: relative !important;
    overflow: hidden !important;
}
.ubermenu .ubermenu-item-level-0.ubermenu-highlight > .ubermenu-target::after,
.ubermenu .ubermenu-item-level-0:last-child > .ubermenu-target::after {
    content: '' !important;
    position: absolute !important;
    top: 0 !important;
    left: -100% !important;
    width: 50% !important;
    height: 100% !important;
    background: linear-gradient(
        90deg,
        transparent 0%,
        rgba(255,255,255,0.2) 25%,
        rgba(255,255,255,0.55) 50%,
        rgba(255,255,255,0.2) 75%,
        transparent 100%
    ) !important;
    animation: shimmerCTA 3.5s ease-in-out infinite !important;
    pointer-events: none !important;
    z-index: 1 !important;
    border-radius: 50px !important;
}
.ubermenu .ubermenu-item-level-0.ubermenu-highlight > .ubermenu-target:hover,
.ubermenu .ubermenu-item-level-0:last-child > .ubermenu-target:hover {
    background: #1e5c46 !important;
    transform: translateY(-1px) !important;
}

/* Sub-menus: bordes redondeados modernos */
.ubermenu .ubermenu-submenu {
    border-radius: 12px !important;
    box-shadow: 0 8px 30px rgba(0,0,0,0.12) !important;
    border: 1px solid rgba(0,0,0,0.06) !important;
    overflow: hidden !important;
}

/* ============================================
   MOBILE RESPONSIVE — estilo "2026 mejorado"
   Sticky CTA bar · glass stats · hero CTA visible
   ============================================ */
@media (max-width: 767px) {

    /* --- OCULTAR top bar "Llámanos" en mobile (ya está en barra sticky) --- */
    #mt-phone-bar {
        display: none !important;
    }

    /* --- ShiftNav SIEMPRE visible — anular hide-scroll-down --- */
    #shiftnav-toggle-main,
    #shiftnav-toggle-main.shiftnav--hide-scroll-down {
        transform: translateY(0) !important;
        opacity: 1 !important;
        visibility: visible !important;
    }

    /* --- Hero: CTA visible sin scroll --- */
    .elementor-element[data-id="4a977ef7"] {
        min-height: auto !important;
        padding-bottom: 32px !important;
    }
    .elementor-element[data-id="4a977ef7"] .elementor-heading-title {
        font-size: 26px !important;
        line-height: 1.15 !important;
        letter-spacing: -0.5px !important;
    }
    .elementor-element[data-id="4a977ef7"] .elementor-button {
        width: 100% !important;
        justify-content: center !important;
        padding: 15px 28px !important;
        font-size: 14px !important;
        box-shadow: 0 4px 20px rgba(45,122,94,0.5) !important;
    }

    /* --- Stats: 2x2 bento glass --- */
    .elementor-element[data-id="4a977ef7"] .elementor-widget-counter {
        border-radius: 14px !important;
        padding: 20px 16px !important;
    }
    .elementor-element[data-id="4a977ef7"] .elementor-counter-number-wrapper {
        font-size: 32px !important;
        letter-spacing: -1.5px !important;
    }
    .elementor-element[data-id="4a977ef7"] .elementor-counter-title {
        font-size: 9px !important;
        letter-spacing: 1px !important;
    }

    /* --- Proceso cards: más compactas --- */
    .elementor-element[data-id="1885cab9"] .e-con.e-child {
        padding: 22px 18px !important;
        margin-bottom: 10px !important;
    }
    .elementor-element[data-id="1885cab9"] .e-con.e-child h3,
    .elementor-element[data-id="1885cab9"] .elementor-heading-title {
        font-size: 14px !important;
    }
    .elementor-element[data-id="1885cab9"] .elementor-widget-text-editor {
        font-size: 12px !important;
    }

    /* --- Valor cards: sin borde, sombra suave --- */
    .elementor-element[data-id="64118e94"] .e-con.e-child {
        margin-bottom: 10px !important;
    }

    /* --- Section pills: modernos --- */
    .elementor-widget-heading .elementor-heading-title span[style*="background"] {
        display: inline-flex !important;
        border-radius: 50px !important;
        padding: 5px 14px !important;
        font-size: 10px !important;
        font-weight: 700 !important;
        letter-spacing: 0.5px !important;
        text-transform: uppercase !important;
    }

    /* --- Testimonios: scroll horizontal --- */
    .swiper-wrapper {
        scroll-snap-type: x mandatory !important;
        -webkit-overflow-scrolling: touch !important;
    }
    .swiper-slide {
        scroll-snap-align: start !important;
        flex-shrink: 0 !important;
        min-width: 280px !important;
    }
    .swiper-slide .e-con,
    .swiper-slide > div {
        border-radius: 16px !important;
        padding: 22px 20px !important;
    }

    /* --- Footer mobile: stack vertical --- */
    .elementor-element[data-id="5c356b63"] {
        padding: 40px 20px 24px !important;
    }
    .elementor-element[data-id="5c356b63"] .elementor-container,
    .elementor-element[data-id="5c356b63"] > .e-con {
        flex-direction: column !important;
    }

    /* --- Secciones: menos padding --- */
    .elementor-section {
        padding-left: 18px !important;
        padding-right: 18px !important;
    }

    /* --- Botones: full width en móvil --- */
    .elementor-button {
        width: 100% !important;
        justify-content: center !important;
        text-align: center !important;
    }

    /* --- FAQ: más compacto --- */
    .elementor-accordion .elementor-accordion-item {
        margin-bottom: 8px !important;
    }
    .elementor-accordion .elementor-tab-title {
        padding: 16px 18px !important;
        font-size: 14px !important;
    }
    .elementor-accordion .elementor-tab-content {
        padding: 0 18px 16px !important;
        font-size: 13px !important;
    }

    /* --- Nav mobile (ShiftNav): logo + CTA visible --- */
    #shiftnav-toggle-main,
    .shiftnav-toggle {
        height: 56px !important;
        line-height: 56px !important;
        background: rgba(255,255,255,0.95) !important;
        backdrop-filter: blur(12px) !important;
        border-bottom: 1px solid rgba(0,0,0,0.06) !important;
    }
    #shiftnav-toggle-main .shiftnav-toggle-content,
    #shiftnav-toggle-main .shiftnav-main-toggle-content {
        color: #333 !important;
        font-size: 13px !important;
        font-weight: 800 !important;
    }
    #shiftnav-toggle-main .shiftnav-icon,
    #shiftnav-toggle-main i,
    .shiftnav-toggle .shiftnav-icon {
        color: #333 !important;
    }

    /* --- Imágenes: radios más pequeños en móvil --- */
    .elementor-widget-image img {
        border-radius: 12px !important;
    }
}

/* Ocultar sticky CTA en desktop */
.mobile-sticky-cta {
    display: none !important;
}

/* ============================================
   MOBILE: Sticky CTA bar (bottom)
   Requiere JS en functions.php para inyectar el HTML
   ============================================ */
@media (max-width: 767px) {
    .mobile-sticky-cta {
        display: flex !important;
        position: fixed !important;
        bottom: 0 !important;
        left: 0 !important;
        right: 0 !important;
        background: rgba(255,255,255,0.97) !important;
        backdrop-filter: blur(16px) !important;
        border-top: 1px solid rgba(0,0,0,0.08) !important;
        padding: 12px 16px 16px !important;
        display: flex !important;
        gap: 10px !important;
        align-items: center !important;
        z-index: 99999 !important;
        box-shadow: 0 -4px 24px rgba(0,0,0,0.08) !important;
    }
    .mobile-sticky-cta .sticky-phone {
        flex: 1 !important;
        text-decoration: none !important;
        display: block !important;
    }
    .mobile-sticky-cta .sticky-phone-num {
        font-size: 13px !important;
        font-weight: 800 !important;
        color: #111 !important;
    }
    .mobile-sticky-cta .sticky-phone-hours {
        font-size: 9px !important;
        color: #9ca3af !important;
    }

    /* WhatsApp icon integrado en la barra */
    .mobile-sticky-cta .sticky-wa {
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
        width: 44px !important;
        height: 44px !important;
        border-radius: 50% !important;
        background: rgba(37,211,102,0.1) !important;
        flex-shrink: 0 !important;
        text-decoration: none !important;
        transition: background 0.2s ease !important;
    }
    .mobile-sticky-cta .sticky-wa:active {
        background: rgba(37,211,102,0.25) !important;
    }
    .mobile-sticky-cta .sticky-wa svg {
        display: block !important;
    }

    .mobile-sticky-cta .sticky-btn {
        background: #2d7a5e !important;
        color: #fff !important;
        padding: 12px 18px !important;
        border-radius: 50px !important;
        font-size: 12px !important;
        font-weight: 800 !important;
        white-space: nowrap !important;
        box-shadow: 0 4px 16px rgba(45,122,94,0.35) !important;
        text-decoration: none !important;
        position: relative !important;
        overflow: hidden !important;
    }
    .mobile-sticky-cta .sticky-btn::after {
        content: '' !important;
        position: absolute !important;
        top: -50% !important;
        left: -100% !important;
        width: 80% !important;
        height: 200% !important;
        background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.2) 25%, rgba(255,255,255,0.55) 50%, rgba(255,255,255,0.2) 75%, transparent 100%) !important;
        animation: shimmerCTA 3.5s ease-in-out infinite !important;
        pointer-events: none !important;
        transform: skewX(-20deg) !important;
    }
    .mobile-sticky-cta .sticky-btn {
        animation: ctaGlow 2.5s ease-in-out infinite alternate !important;
    }
    @keyframes ctaGlow {
        0%   { box-shadow: 0 4px 16px rgba(45,122,94,0.3); }
        100% { box-shadow: 0 6px 28px rgba(45,122,94,0.6), 0 0 10px rgba(45,122,94,0.2); }
    }

    /* Ajustar body padding para no tapar contenido */
    body {
        padding-bottom: 80px !important;
    }

    /* OCULTAR el botón flotante de WhatsApp en mobile (ya está en la barra sticky) */
    body #ht-ctc-chat,
    body .ht-ctc-chat,
    body .ht-ctc,
    body .whatsapp-btn,
    body .joinchat,
    body .click-to-chat-main {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
        width: 0 !important;
        height: 0 !important;
        overflow: hidden !important;
    }
}

/* ======================================================
   FIXES DESKTOP — SUBPÁGINAS (coherencia de diseño)
   Selectores GENÉRICOS — funcionan en TODAS las páginas
   sin depender de data-id de Elementor.
   Cubre: terapia-individual, terapia-de-pareja,
          ansiedad-madrid/*, depresion-madrid/*,
          y cualquier subpágina futura.
   ====================================================== */

@media (min-width: 768px) {

    /* -------------------------------------------------------
       FIX 1: H1 gradient menta — GENÉRICO para TODOS los H1
       Aplica a cualquier página que no sea la home.
       Incluye font-size, weight y letter-spacing coherentes.
       ------------------------------------------------------- */
    body:not(.home) h1.elementor-heading-title {
        font-family: 'Plus Jakarta Sans', sans-serif !important;
        background: linear-gradient(135deg, #ffffff 0%, #b8ddd0 60%, #7fc4aa 100%) !important;
        -webkit-background-clip: text !important;
        -webkit-text-fill-color: transparent !important;
        background-clip: text !important;
        font-size: clamp(36px, 3.5vw, 52px) !important;
        font-weight: 800 !important;
        letter-spacing: -1.5px !important;
        line-height: 1.08 !important;
    }

    /* -------------------------------------------------------
       FIX 2: Hero H1 — separación del badge Google Reviews
       :has() selector (Chrome 105+) — genérico sin data-id.
       El badge está en posición absoluta top ~185px,
       empujamos el widget H1 hacia abajo para que no solape.
       ------------------------------------------------------- */
    body:not(.home) .elementor-widget-heading:has(h1) {
        margin-top: 100px !important;
    }
    /* Fallback para navegadores sin soporte :has() — IDs conocidos */
    body:not(.home) .elementor-element-16b97eba,
    body:not(.home) .elementor-element-cd6eae28 {
        margin-top: 100px !important;
    }

    /* -------------------------------------------------------
       FIX 3: UberMenu overflow — GENÉRICO
       UberMenu tiene ancho fijo ~1420px que desborda el viewport.
       Forzamos que respete el ancho de su contenedor en todas las páginas.
       ------------------------------------------------------- */
    body:not(.home) .ubermenu-nav.ubermenu-main {
        width: 100% !important;
        max-width: 100% !important;
        box-sizing: border-box !important;
    }
    body:not(.home) .elementor-shortcode:has(.ubermenu) {
        width: 100% !important;
        max-width: 100% !important;
        overflow: visible !important;
    }

    /* -------------------------------------------------------
       FIX 4: Container nav — GENÉRICO con :has(.ubermenu)
       Fuerza max-width 100% en CUALQUIER .elementor-container
       que contenga el UberMenu, independientemente del data-id.
       Cubre: contacto (a6abaa3), fobias (1a6e5e08),
              terapia-individual/blog (4dbe742), y cualquier
              página futura que use un template diferente.
       ------------------------------------------------------- */
    body:not(.home) .elementor-section:has(.ubermenu) > .elementor-container {
        max-width: 100% !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    body:not(.home) .elementor-section:has(.ubermenu) .elementor-col-100 {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }
    /* Fallback para e-con (Elementor Flexbox containers) */
    body:not(.home) .e-con:has(.ubermenu) > .e-con-inner {
        max-width: 100% !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }
    /* Fallback IDs para navegadores sin :has() */
    body:not(.home) .elementor-element-fa62326 > .elementor-container,
    body:not(.home) .elementor-element-7c95a9e7 > .elementor-container,
    body:not(.home) .elementor-element-1a6e5e08 > .elementor-container,
    body:not(.home) .elementor-element-a6abaa3 > .elementor-container,
    body:not(.home) .elementor-element-4dbe742 > .elementor-container,
    body:not(.home) .elementor-element-64dd4fc8 > .elementor-container {
        max-width: 100% !important;
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    /* -------------------------------------------------------
       FIX 5: Badge Google Reviews — mover a margen DERECHO
       Aplica en TODAS las páginas (home + subpáginas).
       El WP Customizer CSS (#wp-custom-css) pone left:52px !important
       con selector .mt-badge-hero (especificidad 0,1,0).
       Usamos html body .mt-badge-hero (0,1,2) para ganar la cascada.
       ------------------------------------------------------- */
    html body .mt-badge-hero {
        left: auto !important;
        right: 20px !important;
    }
}

/* ======================================================
   MEJORAS VISUALES GLOBALES — SUBPÁGINAS MODERNAS
   Aplica a TODAS las páginas no-home (ansiedad, depresión,
   fobias, distimia, episodio-depresivo, etc.)
   ====================================================== */

/* -------------------------------------------------------
   1. NAV CARDS (Síntomas, Tipos, Tratamiento, etc.)
   Cards con borde dorado — añadir hover lift, sombra,
   icono de flecha, y transición suave.
   Selector genérico: cualquier heading dentro de un
   container con borde visible en sección beige.
   ------------------------------------------------------- */

/* Hover lift + sombra en cards de navegación */
body:not(.home) .e-con[data-settings] > .e-con-inner > .e-con {
    transition: transform 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94),
                box-shadow 0.3s ease !important;
}
body:not(.home) .e-con[data-settings] > .e-con-inner > .e-con:hover {
    transform: translateY(-6px) !important;
    box-shadow: 0 12px 32px rgba(45, 122, 94, 0.15) !important;
}

/* Cards con borde — mejorar el borde con transición de color */
body:not(.home) .e-con[style*="border"] {
    transition: transform 0.3s ease, box-shadow 0.3s ease, border-color 0.3s ease !important;
}
body:not(.home) .e-con[style*="border"]:hover {
    transform: translateY(-5px) !important;
    box-shadow: 0 10px 30px rgba(45, 122, 94, 0.12) !important;
    border-color: #2d7a5e !important;
}

/* -------------------------------------------------------
   2. STAT CARDS HERO — Efecto glass mejorado
   Los contadores del hero necesitan más contraste y
   mejor legibilidad del glass effect.
   ------------------------------------------------------- */
body:not(.home) .elementor-widget-counter .elementor-counter {
    backdrop-filter: blur(12px) !important;
    -webkit-backdrop-filter: blur(12px) !important;
    background: rgba(255, 255, 255, 0.08) !important;
    border: 1px solid rgba(255, 255, 255, 0.15) !important;
    border-radius: 16px !important;
    padding: 20px 16px !important;
    transition: transform 0.3s ease, background 0.3s ease !important;
}
body:not(.home) .elementor-widget-counter .elementor-counter:hover {
    transform: translateY(-4px) !important;
    background: rgba(255, 255, 255, 0.14) !important;
}
body:not(.home) .elementor-counter-number-wrapper {
    font-weight: 800 !important;
    letter-spacing: -1px !important;
}

/* -------------------------------------------------------
   3. "POR QUÉ ELEGIRNOS" CARDS — glassmorphism suave
   Cards con checkmark verde — añadir hover y mejor polish
   ------------------------------------------------------- */
body:not(.home) .elementor-icon-list-icon .fas.fa-check,
body:not(.home) .elementor-icon-list-icon svg {
    transition: transform 0.3s ease !important;
}
body:not(.home) .elementor-icon-list-item:hover .fas.fa-check,
body:not(.home) .elementor-icon-list-item:hover svg {
    transform: scale(1.15) !important;
}

/* -------------------------------------------------------
   4. FAQ / ACORDEONES — Modernizar
   Borde izquierdo verde al item activo,
   transición suave en apertura,
   hover sutil en items cerrados.
   ------------------------------------------------------- */
body:not(.home) .elementor-accordion-item,
body:not(.home) .elementor-toggle-item {
    border-left: 3px solid transparent !important;
    transition: border-color 0.3s ease, background 0.3s ease !important;
    border-radius: 8px !important;
    margin-bottom: 8px !important;
    overflow: hidden !important;
}
body:not(.home) .elementor-accordion-item:hover,
body:not(.home) .elementor-toggle-item:hover {
    background: rgba(45, 122, 94, 0.04) !important;
}
body:not(.home) .elementor-accordion-item .elementor-active,
body:not(.home) .elementor-toggle-item .elementor-active {
    border-left-color: #2d7a5e !important;
}
/* Icono de acordeón — rotación suave */
body:not(.home) .elementor-accordion-icon {
    transition: transform 0.3s ease !important;
}
body:not(.home) .elementor-active .elementor-accordion-icon {
    transform: rotate(45deg) !important;
}

/* -------------------------------------------------------
   5. PRICING CARDS — Mejorar hover y destacar "Popular"
   ------------------------------------------------------- */
body:not(.home) .elementor-price-table {
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
    border-radius: 16px !important;
    overflow: hidden !important;
}
body:not(.home) .elementor-price-table:hover {
    transform: translateY(-8px) !important;
    box-shadow: 0 20px 40px rgba(0, 0, 0, 0.2) !important;
}
/* Badge "Popular" — animación sutil pulse */
body:not(.home) .elementor-price-table__ribbon {
    animation: priceBadgePulse 3s ease-in-out infinite !important;
}
@keyframes priceBadgePulse {
    0%, 100% { transform: rotate(45deg) scale(1); }
    50% { transform: rotate(45deg) scale(1.05); }
}

/* -------------------------------------------------------
   6. CTA BUTTONS — Shimmer ya aplicado, reforzar hover
   ------------------------------------------------------- */
body:not(.home) .elementor-button {
    transition: transform 0.2s ease, box-shadow 0.2s ease !important;
}
body:not(.home) .elementor-button:hover {
    transform: translateY(-2px) !important;
    box-shadow: 0 6px 20px rgba(45, 122, 94, 0.3) !important;
}

/* -------------------------------------------------------
   7. SECCIONES DE TEXTO — Mejorar legibilidad
   Párrafos largos necesitan más line-height y límite de ancho
   para mejorar legibilidad en pantallas anchas.
   ------------------------------------------------------- */
body:not(.home) .elementor-widget-text-editor .elementor-widget-container {
    max-width: 900px !important;
}
body:not(.home) .elementor-widget-text-editor p {
    line-height: 1.8 !important;
    letter-spacing: 0.01em !important;
}

/* -------------------------------------------------------
   8. IMÁGENES — Bordes redondeados coherentes
   ------------------------------------------------------- */
body:not(.home) .elementor-widget-image img {
    border-radius: 12px !important;
    transition: transform 0.4s ease !important;
}
body:not(.home) .elementor-widget-image:hover img {
    transform: scale(1.02) !important;
}

/* -------------------------------------------------------
   9. SECCIÓN TESTIMONIOS — Fix gap vacío
   El carousel puede no cargar → mostrar sección solo si
   tiene contenido visible. También reducir padding excesivo.
   ------------------------------------------------------- */
body:not(.home) .elementor-widget-testimonial-carousel:empty,
body:not(.home) .elementor-widget-reviews:empty {
    display: none !important;
}
body:not(.home) [class*="testimonial"] .swiper-wrapper:empty {
    display: none !important;
}

/* -------------------------------------------------------
   10. SEPARADORES WAVE — Coherencia entre secciones
   Asegurar que los SVG separadores tengan la misma altura
   y colores que la home.
   ------------------------------------------------------- */
body:not(.home) .elementor-shape svg {
    height: 60px !important;
}
@media (max-width: 767px) {
    body:not(.home) .elementor-shape svg {
        height: 30px !important;
    }
}

/* -------------------------------------------------------
   11. LINKS INTERNOS — Estilo moderno
   Links dentro del contenido de texto con underline animado.
   ------------------------------------------------------- */
body:not(.home) .elementor-widget-text-editor a:not(.elementor-button) {
    color: #2d7a5e !important;
    text-decoration: none !important;
    background-image: linear-gradient(#2d7a5e, #2d7a5e) !important;
    background-size: 0% 2px !important;
    background-position: 0 100% !important;
    background-repeat: no-repeat !important;
    transition: background-size 0.3s ease !important;
}
body:not(.home) .elementor-widget-text-editor a:not(.elementor-button):hover {
    background-size: 100% 2px !important;
}

/* -------------------------------------------------------
   12. SECCIÓN "¿QUÉ ES...?" — H2 coherentes
   Los H2 de secciones principales con estilo uniforme.
   ------------------------------------------------------- */
body:not(.home) h2.elementor-heading-title {
    letter-spacing: -0.5px !important;
    line-height: 1.15 !important;
}

/* -------------------------------------------------------
   13. SCROLL-TO-TOP BUTTON — Modernizar
   ------------------------------------------------------- */
body:not(.home) .e-scroll-to-top,
body:not(.home) [class*="scroll-to-top"] {
    border-radius: 50% !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15) !important;
    transition: transform 0.3s ease, box-shadow 0.3s ease !important;
}
body:not(.home) .e-scroll-to-top:hover,
body:not(.home) [class*="scroll-to-top"]:hover {
    transform: translateY(-3px) !important;
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.2) !important;
}

/* -------------------------------------------------------
   14. MOBILE RESPONSIVE — Ajustes subpáginas
   ------------------------------------------------------- */
@media (max-width: 767px) {
    /* H1 gradient más pequeño en móvil + fuente moderna */
    body:not(.home) h1.elementor-heading-title {
        font-family: 'Plus Jakarta Sans', sans-serif !important;
        font-size: clamp(26px, 7vw, 36px) !important;
        font-weight: 800 !important;
        letter-spacing: -0.5px !important;
        line-height: 1.15 !important;
    }

    /* Badge overlap fix móvil */
    body:not(.home) .elementor-widget-heading:has(h1) {
        margin-top: 60px !important;
    }

    /* Cards sin hover en táctil */
    body:not(.home) .e-con[style*="border"]:hover {
        transform: none !important;
    }

    /* Texto full width en móvil */
    body:not(.home) .elementor-widget-text-editor .elementor-widget-container {
        max-width: 100% !important;
    }

    /* Pricing cards sin lift excesivo */
    body:not(.home) .elementor-price-table:hover {
        transform: translateY(-4px) !important;
    }

    /* -------------------------------------------------------
       MINI-BADGE Google Reviews — solo móvil
       HTML inyectado por PHP (wp_footer). Pill glass navy
       fijo arriba-derecha del hero, no tapa texto.
       ------------------------------------------------------- */
    .mt-mini-badge {
        position: fixed !important;
        top: 108px !important;
        right: 10px !important;
        z-index: 99999 !important;
        display: inline-flex !important;
        align-items: center !important;
        gap: 5px !important;
        background: rgba(13, 27, 42, 0.78) !important;
        backdrop-filter: blur(20px) !important;
        -webkit-backdrop-filter: blur(20px) !important;
        border-radius: 16px !important;
        padding: 6px 10px 6px 7px !important;
        border: 1px solid rgba(255, 255, 255, 0.1) !important;
        box-shadow: 0 2px 12px rgba(0, 0, 0, 0.28) !important;
        font-family: 'Plus Jakarta Sans', sans-serif !important;
        text-decoration: none !important;
        transition: opacity 0.3s ease !important;
    }
    .mt-mini-badge__icon {
        width: 18px !important;
        height: 18px !important;
        flex-shrink: 0 !important;
    }
    .mt-mini-badge__score {
        font-weight: 700 !important;
        color: #fff !important;
        font-size: 12px !important;
        line-height: 1 !important;
    }
    .mt-mini-badge__stars {
        color: #FFD700 !important;
        font-size: 9px !important;
        line-height: 1 !important;
        letter-spacing: -0.5px !important;
    }
}

/* Ocultar mini-badge en desktop (el badge grande ya es visible) */
@media (min-width: 768px) {
    .mt-mini-badge {
        display: none !important;
    }
}

/* -------------------------------------------------------
   14. MODERNIZACIÓN TIPOGRÁFICA — Harabara → Plus Jakarta Sans
   Headings más limpios y geométricos. Plus Jakarta Sans 800
   sustituye a Harabara en todos los títulos del sitio.
   ------------------------------------------------------- */
h1.elementor-heading-title,
h2.elementor-heading-title,
h3.elementor-heading-title,
h4.elementor-heading-title,
.elementor-heading-title {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
}
h1.elementor-heading-title {
    font-weight: 800 !important;
    letter-spacing: -1px !important;
}
h2.elementor-heading-title {
    font-weight: 800 !important;
    letter-spacing: -0.5px !important;
}
h3.elementor-heading-title {
    font-weight: 700 !important;
}

/* -------------------------------------------------------
   15. ETIQUETAS DE SECCIÓN — Pill verde gradient
   Las etiquetas inline de Elementor (<strong><span style="background-color:#d4a843">)
   se convierten en pills verdes redondeadas con texto blanco.
   Funciona sobre fondos claros y oscuros sin variante extra.
   ------------------------------------------------------- */
strong > span[style*="background-color"] {
    background: linear-gradient(135deg, #2d7a5e 0%, #3a9d78 100%) !important;
    color: #fff !important;
    font-size: 15px !important;
    padding: 8px 22px !important;
    border-radius: 24px !important;
    display: inline-block !important;
    text-transform: uppercase !important;
    letter-spacing: 2.5px !important;
    font-family: 'Plus Jakarta Sans', sans-serif !important;
    font-weight: 700 !important;
    border: none !important;
    box-shadow: 0 2px 8px rgba(45, 122, 94, 0.25) !important;
}

/* -------------------------------------------------------
   16. FIX HAMBURGUESA MÓVIL — Color visible
   El icono ☰ (::before) era blanco sobre fondo blanco.
   Ahora es navy para máximo contraste.
   ------------------------------------------------------- */
.shiftnav-toggle::before {
    color: #0d1b2a !important;
}

/* -------------------------------------------------------
   17. OCULTAR DIVISORES WAVE/CURVE SVG
   Las formas onduladas entre secciones (.elementor-shape)
   se eliminan para un look más limpio y moderno.
   ------------------------------------------------------- */
.elementor-shape {
    display: none !important;
}

/* -------------------------------------------------------
   18. REFINAR CHECK ICONS — Rounded square con gradiente
   Los ✓ son widgets text-editor con un div hijo directo.
   Se cambian de círculo plano a cuadrado redondeado con
   gradiente verde y sombra sutil.
   ------------------------------------------------------- */
[data-id="50cdcfcd"] > div,
[data-id="2a4a91f1"] > div,
[data-id="6a3167a5"] > div,
[data-id="5a4a5bc6"] > div,
[data-id="3f22ba73"] > div {
    background: linear-gradient(135deg, #2d7a5e 0%, #3a9d78 100%) !important;
    color: #fff !important;
    width: 38px !important;
    height: 38px !important;
    font-size: 20px !important;
    border-radius: 10px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    box-shadow: 0 2px 8px rgba(45, 122, 94, 0.3) !important;
    line-height: 1 !important;
    padding: 0 !important;
}

/* -------------------------------------------------------
   19. REDUCIR PADDING EXCESIVO DE SECCIONES
   Las secciones tenían demasiado espacio vertical (120px+).
   Se usa clamp() para un spacing responsive y compacto.
   Secciones que tenían wave dividers necesitan menos padding
   porque el wave ya no ocupa espacio visual.
   EXCEPCIONES genéricas (sin data-id):
   - Secciones con UberMenu (nav) → padding: 0
   - Primera sección tras el nav (hero) → padding: 0
   - Secciones sticky → padding: 0
   ------------------------------------------------------- */
.elementor-top-section {
    padding-top: clamp(30px, 4vw, 60px) !important;
    padding-bottom: clamp(30px, 4vw, 60px) !important;
}
/* Secciones que tenían wave-bottom: menos padding inferior */
.elementor-top-section:has(.elementor-shape-bottom) {
    padding-bottom: clamp(10px, 2vw, 20px) !important;
}
/* Secciones que tenían wave-top: menos padding superior */
.elementor-top-section:has(.elementor-shape-top) {
    padding-top: clamp(10px, 2vw, 20px) !important;
}
/* Nav sticky y hero: restaurar padding original */
.elementor-top-section.elementor-sticky,
.elementor-top-section.elementor-sticky--active,
.elementor-sticky__spacer {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}
/* Hero (primera sección visible tras el nav) mantiene su padding original */
.elementor-sticky__spacer + .elementor-top-section {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
}

/* -------------------------------------------------------
   20. BODY TEXT → Plus Jakarta Sans
   Todo el texto de cuerpo ahora usa Plus Jakarta Sans
   para coherencia tipográfica con los headings.
   ------------------------------------------------------- */
body,
.elementor-widget-text-editor,
.elementor-widget-text-editor p,
.elementor-widget-text-editor span,
.elementor-widget-text-editor li,
.elementor-accordion .elementor-tab-content,
.elementor-accordion .elementor-tab-title,
.elementor-accordion .elementor-tab-title a,
p, li, span, a {
    font-family: 'Plus Jakarta Sans', sans-serif !important;
}

/* -------------------------------------------------------
   21. FIX CARDS CON CHECK — Overflow visible
   Las cards (e-con) con border-radius y overflow:hidden
   cortaban los iconos ✓. Selector genérico: cualquier
   e-con hijo de una sección que contenga widgets de
   texto con ✓ (check) encima de headings.
   Esto afecta a las cards con checks en homepage.
   Los data-ids se mantienen porque son de elementos
   internos del homepage (no de secciones/template).
   ------------------------------------------------------- */
[data-id="59df1547"],
[data-id="26d81e58"],
[data-id="36bb652"],
[data-id="36400497"],
[data-id="62b7f0e9"] {
    overflow: visible !important;
    padding-top: 30px !important;
}

/* -------------------------------------------------------
   22. UBERMENU STICKY — Fijo al hacer scroll (desktop)
   Selector genérico: .elementor-sticky--active aplica a
   CUALQUIER sección sticky en cualquier página/subpágina.
   Se usa position:fixed porque body tiene overflow:hidden
   que rompe position:sticky nativo.
   Solo desktop (min-width: 1025px) — en móvil/tablet
   la sección ya está oculta por Elementor.
   ------------------------------------------------------- */
@media (min-width: 1025px) {
    .elementor-section.elementor-sticky--active {
        position: fixed !important;
        top: 32px !important;
        left: 0 !important;
        right: 0 !important;
        width: 100% !important;
        z-index: 99998 !important;
        background: rgba(255, 255, 255, 0.97) !important;
        backdrop-filter: blur(10px) !important;
        -webkit-backdrop-filter: blur(10px) !important;
        box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08) !important;
    }
    /* El spacer que Elementor crea compensa la altura del nav */
    .elementor-sticky__spacer {
        display: block !important;
    }
}

/* -------------------------------------------------------
   23. FIX SOLAPAMIENTOS — Márgenes negativos genéricos
   Muchas secciones y elementos internos tenían margin-top
   negativo (-60px, -140px, etc.) para compensar la altura
   de los wave dividers SVG y crear transiciones visuales.
   Al ocultar los waves (Sección 17), esos márgenes negativos
   causan solapamientos (ej: banner "PSICOTERAPIA ONLINE"
   tapaba la tarjeta "Cierre y devolución").

   Se resetean márgenes en 4 niveles:
   1. Secciones top-level
   2. Contenedores internos (elementor-container)
   3. Columnas y widget-wraps
   4. Primer widget de cada widget-wrap (tenían margin-top
      positivo grande como compensación del negativo del wrap)

   Selectores genéricos → aplica a TODAS las páginas.
   ------------------------------------------------------- */
.elementor-top-section {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
}
.elementor-top-section > .elementor-container,
.elementor-top-section > .elementor-container > .elementor-column,
.elementor-top-section > .elementor-container > .elementor-column > .elementor-widget-wrap,
.elementor-top-section > .elementor-container > .e-con {
    margin-top: 0 !important;
}
/* Primer widget en cada widget-wrap: resetear márgenes compensatorios */
.elementor-top-section .elementor-widget-wrap > .elementor-widget:first-child {
    margin-top: 0 !important;
}