/**
* Theme Name: Poolix Child
* Description: This is a child theme of Poolix, generated by Merlin WP.
* Author: <a href="http://themeforest.net/user/template_path">Template Path</a>
* Template: poolix
* Version: 1.1
*/
@media screen and (max-width: 767px) {
    footer .pt-250 {
        padding-top: 100px !important;
    }
}
@media screen and (max-width: 782px) {
    section.poolix-banner-section {
        height: calc(100vh - 75px) !important;
    }
    body.admin-bar section.poolix-banner-section {
        height: calc(100vh - 122px) !important;
    }
}
@media screen and (max-width: 1200px) {
    /* --- 1. Evitar parpadeo (FOUC) --- */
    .main-header.header-s2:not(.mobile-adapted) .header-s2-header-top { display: none !important; }
    .main-header.header-s2:not(.mobile-adapted) { opacity: 0; }
    .main-header.mobile-adapted { animation: fadeInHeader 0.2s ease-in forwards; }
    
    /* --- 2. Estructura del Sticky Header para Móviles --- */
    .main-header.mobile-adapted .sticky-header {
        position: fixed;
        top: 0;
        left: 0;
        width: 100%;
        z-index: 99999;
        background: #ffffff;
        box-shadow: 0 3px 15px rgba(0,0,0,0.08);
        display: none !important; /* Oculto mientras el usuario está arriba */
    }

    /* --- 3. Mostrar y animar el Sticky al hacer scroll --- */
    .main-header.mobile-adapted.is-sticky-active .sticky-header {
        display: block !important;
        animation: fadeInDownSticky 0.4s ease forwards;
    }
    
    /* --- 4. Ajustes estéticos (comprime el header para que no tape mucha pantalla) --- */
    .main-header.mobile-adapted .sticky-header .inner-container {
        padding: 0; 
    }
    .sticky-header .logo {
        width: 130px !important;
    }
    .main-menu .navigation > li.inspirate {
        margin-top: 15px; /* Separación del resto de enlaces */
        text-align: left;
    }
    
    .main-menu .navigation > li.inspirate > a {
        margin-left: 0;
        padding: 10px 30px !important;
        display: inline-block;
    }
}

/* Animaciones */
@keyframes fadeInHeader {
    from { opacity: 0; }
    to { opacity: 1; }
}

@keyframes fadeInDownSticky {
    from { opacity: 0; transform: translateY(-100%); }
    to { opacity: 1; transform: translateY(0); }
}

@media (min-width: 1201px) and (max-width: 1599px) {
    .header-upper .header-link-btn a.btn-1,
    .sticky-header .header-link-btn a.btn-1 {
        padding: 21px 40px 20px !important;
    }
}
@media screen and (max-width: 1599px) {
    .header-upper .header-link-btn,
    .sticky-header .header-link-btn {
        display: flex !important;
    }
    .header-upper .header-link-btn .btn-1,
    .sticky-header .header-link-btn .btn-1 {
        padding: 9px 16px 8px !important;
        font-size: 14px !important;
    }
    .main-header div.auto-container {
        padding: 0 20px !important;
    }
}
/* OCULTAR ELEMENTOS */
.scroll-to-top,
.bread-crumb,
.woocommerce-shop h1.woocommerce-products-header__title.page-title,
.xt_woofc-checkout .xt_woofc-dash, .xt_woofc-checkout .amount,
.xt_woofc-inner .xt_woofc-price,
.woocommerce div.product span.price,
.shop-details-content .content-box .rating-box {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
}
a {
    color: #003A58;
}
a:active, a:focus {
    color: #06b1e3 !important;
}
:root {
    --primary-color: #06b1e3 !important;
}
.main-header.header-s2 .logo {
    width: 245px !important;
}
.main-header.header-style-one .logo {
    width: 200px !important;
}
h1, .h1, h2, .h2, h3, .h3, h4, .h4, h5, .h5, h6, .h6 {
    font-family: "Yantramanav" !important;
    font-weight: 800 !important;
}
.contact-info-1-phone-tel {
    font-weight: 500;
}
.ff_oswald,
.service-widget ul li a {
    font-family: "Yantramanav" !important;
}
a.btn-1 {
    font-family: "Yantramanav" !important;
    font-size: 17px;
}
.main-header.header-s2 .header-upper .inner-container {
    background: #f7d916 !important;
}
.main-header.header-s2 .sticky-header, .main-header.header-style-three .sticky-header {
    background: #f7d916 !important;
}
.main-menu .navigation>li>a {
    color: #003A58 !important;
    font-family: "Yantramanav" !important;
    font-size: 19px !important;
}
.main-menu .navigation>li>a:hover,
.contact-info-1-phone-number a:hover,
.footer-widget.widget_nav_menu a:hover {
    color: #06b1e3 !important;
}
.contact-info-1-phone-number a {
    color: #003A58 !important;
}
.btn-1 span {
    background-color: #003A58 !important;
}
.service-widget ul li a:before {
    background: #003A58 !important;
}
.my-footer {
    display: flex;
    flex-direction: row;
    justify-content: space-between;
    align-items: stretch;
    flex-wrap: wrap;
    align-content: stretch;
    font-size: 14px;
  }
  .footer-bottom {
    padding: 10px 0 !important;
  }
.footer-widget.widget_poolix_contact_us a,
.footer-widget.widget_poolixx_about_company a {
    color: #00e7ff !important;
}
.footer-widget.widget_poolix_contact_us a:hover,
.footer-widget.widget_poolixx_about_company a:hover {
    color: #ffe53e !important;
}
.main-menu .navigation>li {
    margin-right: 40px !important;
}
.header-s2 .main-menu .navigation>li {
    padding: 6px 0px !important;
}
.header-s2 .btn-1 {
    padding: 20px 45px !important;
}
.main-menu .navigation>li {
    padding: 16px 0px !important;
}
.footer-widget.widget_poolixx_about_company .footer-social-icon a {
    color: #ffffff !important;
}
.footer-widget.widget_poolixx_about_company .footer-social-icon a:hover,
.woocommerce div.product .woocommerce-tabs ul.tabs li:hover a, 
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a,
.woocommerce .woocommerce-message::before,
.woocommerce table.shop_table th,
.woocommerce table.shop_table td a {
    color: #06b1e3 !important;
}
.woocommerce div.woocommerce-error, 
.woocommerce div.woocommerce-info, 
.woocommerce div.woocommerce-message {
    border-top: 2px solid #06b1e3 !important;
}
ul.footer-social-icon li a,
.banner-style-1 h4:before,
.woocommerce #respond input#submit, 
.woocommerce a.button, 
.woocommerce button.button, 
.woocommerce input.button, 
.woocommerce #place_order {
    background: #06b1e3 !important;
}
.btn-1.alt span {
    background-color: #06b1e3 !important;
}
ul.footer-social-icon li a:hover {
    background: #ffffff !important;
}
.direccion .info-block-one .inner-box {
    padding: 0 30px 11px 30px;
}

/* BURRBUJAS PREPARAR EL CONTENEDOR DEL SLIDER Y FOOTER */
.main-footer {
    position: relative;
    overflow: hidden; /* Evita que las burbujas expandan el tamaño del footer */
}

/* Asegurar que el contenido del footer quede por encima de las burbujas */
.main-footer .footer-1-middle,
.main-footer .footer-bottom {
    position: relative;
    z-index: 2;
}

/* Contenedor de las burbujas */
.piscilinda-bubbles {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 99;
    pointer-events: none; /* Permite hacer clic a través de las burbujas */
}

/* Estilo base de la burbuja usando tu imagen PNG */
.bubble {
    position: absolute;
    bottom: -100px;
    /* REEMPLAZA ESTA URL CON LA RUTA EXACTA DE TU IMAGEN EN LA LIBRERÍA DE MEDIOS */
    background-image: url('/wp-content/uploads/2026/07/bubble_1.png'); 
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    opacity: 0.3; /* Leve transparencia para integrarse con el fondo azul/oscuro */
    animation: floatUp 10s infinite ease-in;
}

/* Animación de flotación */
@keyframes floatUp {
    0% {
        transform: translateY(0) translateX(0) scale(0.3);
        opacity: 0;
    }
    20% {
        opacity: 0.5; /* Aparece gradualmente */
    }
    50% {
        transform: translateY(-400px) translateX(20px) scale(0.6);
    }
    85% {
        opacity: 0.4;
    }
    100% {
        transform: translateY(-800px) translateX(-20px) scale(1);
        opacity: 0; /* Desaparece suavemente arriba */
    }
}

/* Variaciones de tamaño, posición y velocidad para que se vea natural */
.bubble:nth-child(1) { left: 5%; width: 40px; height: 40px; animation-duration: 12s; animation-delay: 0s; }
.bubble:nth-child(2) { left: 25%; width: 60px; height: 60px; animation-duration: 18s; animation-delay: 2s; }
.bubble:nth-child(3) { left: 40%; width: 30px; height: 30px; animation-duration: 10s; animation-delay: 4s; }
.bubble:nth-child(4) { left: 60%; width: 50px; height: 50px; animation-duration: 15s; animation-delay: 1s; }
.bubble:nth-child(5) { left: 75%; width: 82px; height: 82px; animation-duration: 20s; animation-delay: 3s; }
.bubble:nth-child(6) { left: 95%; width: 45px; height: 45px; animation-duration: 14s; animation-delay: 5s; }
.bubble:nth-child(7) { left: 15%; width: 35px; height: 35px; animation-duration: 16s; animation-delay: 1s; }
.bubble:nth-child(8) { left: 50%; width: 25px; height: 25px; animation-duration: 11s; animation-delay: 6s; }
.bubble:nth-child(9) { left: 68%; width: 55px; height: 55px; animation-duration: 19s; animation-delay: 2.5s; }
.bubble:nth-child(10) { left: 85%; width: 70px; height: 70px; animation-duration: 22s; animation-delay: 4.5s; }
/* FIN BURRBUJAS */

/* OLAS DE PISCINA DESPUES DEL SLIDER */
/* Ocultar la imagen estática original de la forma del banner */
.banner-shape img {
    display: none !important;
}

/* Posicionar el contenedor al ras del slider */
.banner-shape {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    line-height: 0; /* Elimina espacios en blanco residuales */
    z-index: 10;
    transform: translateY(1px); /* Cierra cualquier brecha de 1px en ciertos navegadores */
}

/* Dimensiones fluidas del SVG de las olas */
.pool-waves {
    position: relative;
    width: 100%;
    height: 12vh;
    min-height: 80px;
    max-height: 150px;
}

/* Configuración de la animación de las capas de agua */
.parallax-waves > use {
    animation: move-forever 25s cubic-bezier(.55,.5,.45,.5) infinite;
}

/* Tiempos de retraso y velocidad para simular la profundidad de la piscina */
.parallax-waves > use:nth-child(1) { animation-delay: -2s; animation-duration: 7s; }
.parallax-waves > use:nth-child(2) { animation-delay: -3s; animation-duration: 10s; }
.parallax-waves > use:nth-child(3) { animation-delay: -4s; animation-duration: 13s; }
.parallax-waves > use:nth-child(4) { animation-delay: -5s; animation-duration: 20s; }

/* Movimiento infinito horizontal */
@keyframes move-forever {
    0% { transform: translate3d(-90px, 0, 0); }
    100% { transform: translate3d(85px, 0, 0); }
}

/* Ajuste de altura para dispositivos móviles */
@media (max-width: 768px) {
    .pool-waves {
        height: 50px;
        min-height: 50px;
    }
}
/* FIN OLAS DE PISCINA DESPUES DEL SLIDER */

/* 1. Forzar al contenedor del banner a ocupar exactamente el alto de la pantalla */
.poolix-banner-section {
    height: 100vh !important;
    position: relative;
    overflow: hidden;
}

/* 2. Forzar a la estructura de Swiper a heredar el 100% del alto disponible */
.poolix-banner-section .swiper-container,
.poolix-banner-section .swiper-wrapper,
.poolix-banner-section .swiper-slide {
    height: 100% !important;
    background-size: cover;
    background-position: center center;
}

/* 3. Centrar verticalmente el contenido (textos y botones) dentro del nuevo alto */
.poolix-banner-section .content-outer {
    height: 100%;
    display: flex;
    align-items: center;
    /* Añadimos un pequeño padding inferior para que el texto no choque con la ola animada */
    padding-bottom: 100px; 
}

/* 4. COMPENSACIÓN PARA LA BARRA DE WORDPRESS (Admin Bar)
   Esto evita que aparezca un scrollbar de pocos píxeles mientras estás logueado */
.poolix-banner-section {
    height: calc(100vh - 125px) !important;
}
body.admin-bar .poolix-banner-section {
    height: calc(100vh - 143px) !important;
}

.mobile-menu .close-btn {
    top: 55px !important;
}
/* 1. Convertir el enlace "Inspírate" en un botón corporativo */
.main-menu .navigation > li.inspirate > a {
    position: relative;
    display: inline-block;
    padding: 8px 24px !important;
    border-radius: 50px; /* Estilo píldora amigable */
    background-color: #003A58; /* Fondo base */
    color: #ffffff !important;
    font-weight: 600;
    overflow: hidden;
    top: 3px;
    transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    box-shadow: 0 4px 15px rgba(0, 55, 117, 0.2);
}

/* 2. Anular el subrayado (efecto hover) por defecto del tema para este ítem */
.main-menu .navigation > li.inspirate > a::before {
    display: none !important;
}

/* 3. Efecto Continuo: Barrido de brillo (Shimmer) */
.main-menu .navigation > li.inspirate > a::after {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 50%;
    height: 100%;
    background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.4) 50%, rgba(255,255,255,0) 100%);
    transform: skewX(-25deg);
    animation: shimmerSweep 4.5s infinite; /* Se repite cada 4.5 segundos */
}

@keyframes shimmerSweep {
    0% { left: -100%; }
    15% { left: 200%; }
    100% { left: 200%; }
}

/* 4. Efecto Hover: Transición de color, elevación física y sombra extendida */
.main-menu .navigation > li.inspirate > a:hover {
    background-color: #E52A2D; /* Cambio a color de acento */
    color: #ffffff !important;
    transform: translateY(-2px); /* Se levanta ligeramente */
    box-shadow: 0 6px 20px rgba(229, 42, 45, 0.35);
}

/* 5. Ajustes proporcionales para el Sticky Header (ligeramente más compacto) */
.sticky-header .main-menu .navigation > li.inspirate > a {
    padding: 6px 20px !important; 
    margin-top: 3px;
}
.banner-section .swiper-slide:before {
    opacity: 0.4 !important;
}
p.contact-info-1-phone-tel {
    color: #707070 !important;
}
.grecaptcha-badge {
    visibility: hidden !important;
}
.product-1-block {
    padding-top: 0 !important;
}
.xt_woofc-checkout em span {
    font-size: 19px;
    text-transform: uppercase;
}
.xt_woofc-cart-open .xt_woofc-checkout em {
    top: -11px;
}
.woocommerce a.remove {
    color: #E52A2D !important;
}
.woocommerce a.remove:hover {
    background: #E52A2D !important;
}
.xt_woofc-quantity .xt_woofc-quantity-col.xt_woofc-quantity-col-input input {
    border: 0 !important;
}
/* Preparamos el botón whatsapp para alojar el logo a la izquierda */
a.btn-1.alt {
    position: relative;
    padding-left: 45px !important; /* Espacio reservado para que el texto no toque el logo */
    text-align: left; /* Alineación ideal para textos de múltiples líneas */
    border-radius: 25px !important;
}

/* Insertamos el logo de WhatsApp verticalmente centrado */
a.btn-1.alt::before {
    content: "";
    position: absolute;
    left: 15px; /* Separación desde el borde izquierdo del botón */
    top: 50%;
    transform: translateY(-50%); /* Esto garantiza el centrado vertical perfecto */
    width: 24px;
    height: 24px;
    /* SVG de WhatsApp codificado en URL con relleno (fill) color verde #25D366 */
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%2325D366' d='M16.02 3.2A12.74 12.74 0 0 0 5.2 22.68L3.5 28.8l6.28-1.64a12.73 12.73 0 0 0 6.24 1.59h.01A12.78 12.78 0 0 0 28.8 16.01 12.77 12.77 0 0 0 16.02 3.2Zm0 23.39h-.01a10.6 10.6 0 0 1-5.4-1.48l-.39-.23-3.72.98.99-3.63-.25-.37a10.56 10.56 0 1 1 8.78 4.73Zm5.8-7.93c-.32-.16-1.88-.93-2.17-1.03-.29-.11-.5-.16-.72.16-.21.32-.82 1.03-1.01 1.24-.18.22-.37.24-.69.08-.32-.16-1.34-.49-2.55-1.57-.94-.84-1.58-1.88-1.76-2.2-.19-.32-.02-.49.14-.65.14-.14.32-.37.48-.56.16-.19.21-.32.32-.53.11-.21.05-.4-.03-.56-.08-.16-.72-1.73-.98-2.37-.26-.62-.52-.54-.72-.55h-.61c-.21 0-.56.08-.85.4-.29.32-1.11 1.09-1.11 2.65 0 1.56 1.14 3.07 1.3 3.28.16.21 2.24 3.42 5.43 4.8.76.33 1.35.52 1.81.67.76.24 1.45.21 2 .13.61-.09 1.88-.77 2.14-1.51.27-.74.27-1.38.19-1.51-.08-.14-.29-.22-.61-.38Z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
a.btn-1.alt:hover::before {
    filter: brightness(0) invert(1);
}
/* Preparamos el espacio dentro del botón de agregar al carrito (vista lista de productos) */
.addto-cart-box .btn-1 {
    position: relative;
    padding-left: 45px !important; /* Mueve el texto a la derecha para no chocar con el logo */
}

/* Insertamos el logo de WhatsApp en blanco y centrado verticalmente en la vista simple de producto */
.addto-cart-box .btn-1::before {
    content: "";
    position: absolute;
    left: 15px; /* Distancia desde el borde izquierdo */
    top: 50%;
    transform: translateY(-50%); /* Centrado vertical exacto */
    width: 24px;
    height: 24px;
    /* SVG de WhatsApp codificado con fill='%23FFFFFF' (blanco) */
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%23FFFFFF' d='M16.02 3.2A12.74 12.74 0 0 0 5.2 22.68L3.5 28.8l6.28-1.64a12.73 12.73 0 0 0 6.24 1.59h.01A12.78 12.78 0 0 0 28.8 16.01 12.77 12.77 0 0 0 16.02 3.2Zm0 23.39h-.01a10.6 10.6 0 0 1-5.4-1.48l-.39-.23-3.72.98.99-3.63-.25-.37a10.56 10.56 0 1 1 8.78 4.73Zm5.8-7.93c-.32-.16-1.88-.93-2.17-1.03-.29-.11-.5-.16-.72.16-.21.32-.82 1.03-1.01 1.24-.18.22-.37.24-.69.08-.32-.16-1.34-.49-2.55-1.57-.94-.84-1.58-1.88-1.76-2.2-.19-.32-.02-.49.14-.65.14-.14.32-.37.48-.56.16-.19.21-.32.32-.53.11-.21.05-.4-.03-.56-.08-.16-.72-1.73-.98-2.37-.26-.62-.52-.54-.72-.55h-.61c-.21 0-.56.08-.85.4-.29.32-1.11 1.09-1.11 2.65 0 1.56 1.14 3.07 1.3 3.28.16.21 2.24 3.42 5.43 4.8.76.33 1.35.52 1.81.67.76.24 1.45.21 2 .13.61-.09 1.88-.77 2.14-1.51.27-.74.27-1.38.19-1.51-.08-.14-.29-.22-.61-.38Z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}
.woocommerce-pagination ul li a:hover, 
.woocommerce-pagination ul li span, 
.woocommerce nav.woocommerce-pagination ul li a:focus, 
.woocommerce nav.woocommerce-pagination ul li a:hover, 
.woocommerce nav.woocommerce-pagination ul li span.current,
.woocommerce-pagination ul li a:hover, 
.woocommerce-pagination ul li span, 
.woocommerce nav.woocommerce-pagination ul li a:focus, 
.woocommerce nav.woocommerce-pagination ul li a:hover, 
.woocommerce nav.woocommerce-pagination ul li span.current {
    background: #06b1e3 !important;
    border-color: #06b1e3 !important;
}
h4.product-1-title {
    padding: 0 20px;
}
.send_agent_with_input img {
    max-width: 17px;
    margin-left: 4px;
    filter: brightness(0) invert(1);
}
.woocommerce-tabs div#tab-description li {
    list-style: square outside !important;
    margin: 12px 0 12px 17px;
}
/* Ocultar el dropdown de Nice Select generado por el tema Poolix */
.uacf7_product_dropdown-12 .nice-select {
    display: none !important;
}

/* Ocultar el contenedor duplicado fantasma de Select2 generado por el conflicto */
.uacf7_product_dropdown-12 .nice-select ~ .select2 {
    display: none !important;
}

/* Asegurar que el campo principal de Ultimate Addons sea el único visible */
.uacf7_product_dropdown-12 > span.wpcf7-form-control-wrap > .select2:first-of-type {
    display: block !important;
}
/* 1. Forzar el ancho del contenedor del dropdown al 100% */
.uacf7_product_dropdown-12 .select2-container {
    width: 100% !important;
}

/* 2. Ajustar la altura, los bordes y el relleno para que parezca un campo normal */
.uacf7_product_dropdown-12 .select2-selection--multiple {
    min-height: 30px !important; /* Altura estándar aproximada de los campos de Poolix */
    padding: 8px 15px !important;
    border: 1px solid #e1e1e1 !important;
    border-radius: 4px !important;
    display: flex !important;
    align-items: center;
    flex-wrap: wrap;
    background-color: #ffffff !important;
    margin-bottom: 15px;
}

/* 3. Evitar que el campo de texto interno de búsqueda colapse a 0.75em */
.uacf7_product_dropdown-12 .select2-search__field {
    min-width: 55px !important;
    height: auto !important;
    margin-top: 5px !important;
    border: none !important;
}

/* 4. Mejorar la apariencia y legibilidad de las opciones que se despliegan al hacer click */
.select2-container .select2-results__option {
    padding: 10px 15px !important;
    font-size: 15px !important;
}
.select2-container--classic .select2-search--inline .select2-search__field {
    height: 25px !important;
}
.uacf7-uacf7style-4043 textarea {
    margin-bottom: 5px !important
}
.uacf7-uacf7style-4043 label:nth-child(1) > p:nth-child(1) {
    display: none !important;
}
.uacf7-uacf7style-4043 input[type="submit"] {
    font-family: Yantramanav !important;
    font-weight: 700 !important;
}
.pswp--animated-in .pswp__bg {
    opacity: .8 !important;
}
.poolix-banner-section .swiper-wrapper {
    transition-property: transform !important;
}
/* Posicionamiento del nuevo fondo independiente */
.poolix-banner-section .slider-bg-kenburns {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    z-index: -1;
    transform: scale(1);
    backface-visibility: hidden;
    /* EL SECRETO: Retrasa el reinicio 3 segundos. Congela la imagen mientras se desvanece */
    transition: transform 0s 3s; 
}

/* Protección para que el texto siempre se mantenga al frente */
.poolix-banner-section .content-outer {
    position: relative;
    z-index: 1;
}

/* El zoom ahora se ejecuta como una transición */
.poolix-banner-section .swiper-slide-active .slider-bg-kenburns {
    transform: scale(1.05);
    transition: transform 8s linear; /* Tiempo que dura el zoom suave */
}

/* Variación 1: Zoom hacia arriba a la izquierda */
.poolix-banner-section .swiper-slide:nth-child(5n+1) .slider-bg-kenburns {
    transform-origin: top left;
}

/* Variación 2: Zoom hacia abajo a la derecha */
.poolix-banner-section .swiper-slide:nth-child(5n+2) .slider-bg-kenburns {
    transform-origin: bottom right;
}

/* Variación 3: Zoom hacia el centro arriba */
.poolix-banner-section .swiper-slide:nth-child(5n+3) .slider-bg-kenburns {
    transform-origin: top center;
}

/* Variación 4: Zoom hacia abajo a la izquierda */
.poolix-banner-section .swiper-slide:nth-child(5n+4) .slider-bg-kenburns {
    transform-origin: bottom left;
}

/* Variación 5: Zoom hacia el centro a la derecha */
.poolix-banner-section .swiper-slide:nth-child(5n+5) .slider-bg-kenburns {
    transform-origin: center right;
}

.des p {
    color: #fff !important;
}
.wpsp-slider-section #sp-woo-product-slider-pro4343.wpsp-product-section .wpsp-cart-button a:not(.sp-wqvpro-view-button):not(.sp-wqv-view-button), 
.wpsp-slider-section #sp-woo-product-slider-pro4343.wpsp-product-section .wpsp-cart-button a.button:not(.sp-wqvpro-view-button):not(.sp-wqv-view-button), 
.wpsp-slider-section #sp-woo-product-slider-pro4343.wpsp-product-section .wpsp-cart-button a.added_to_cart:not(.sp-wqvpro-view-button):not(.sp-wqv-view-button) {
    text-transform: uppercase !important;
    background-color: transparent !important;
    padding: 11px 21px 10px 44px !important;
}

.wpsp-slider-section #sp-woo-product-slider-pro4343.wpsp-product-section .wpsp-cart-button a:not(.sp-wqvpro-view-button):not(.sp-wqv-view-button)::before, 
.wpsp-slider-section #sp-woo-product-slider-pro4343.wpsp-product-section .wpsp-cart-button a.button:not(.sp-wqvpro-view-button):not(.sp-wqv-view-button)::before, 
.wpsp-slider-section #sp-woo-product-slider-pro4343.wpsp-product-section .wpsp-cart-button a.added_to_cart:not(.sp-wqvpro-view-button):not(.sp-wqv-view-button)::before {
    content: "";
    position: absolute;
    left: 15px; /* Separación desde el borde izquierdo del botón */
    top: 50%;
    transform: translateY(-50%); /* Esto garantiza el centrado vertical perfecto */
    width: 24px;
    height: 24px;
    /* SVG de WhatsApp codificado en URL con relleno (fill) color verde #25D366 */
    background-image: url("data:image/svg+xml;charset=UTF-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='%2325D366' d='M16.02 3.2A12.74 12.74 0 0 0 5.2 22.68L3.5 28.8l6.28-1.64a12.73 12.73 0 0 0 6.24 1.59h.01A12.78 12.78 0 0 0 28.8 16.01 12.77 12.77 0 0 0 16.02 3.2Zm0 23.39h-.01a10.6 10.6 0 0 1-5.4-1.48l-.39-.23-3.72.98.99-3.63-.25-.37a10.56 10.56 0 1 1 8.78 4.73Zm5.8-7.93c-.32-.16-1.88-.93-2.17-1.03-.29-.11-.5-.16-.72.16-.21.32-.82 1.03-1.01 1.24-.18.22-.37.24-.69.08-.32-.16-1.34-.49-2.55-1.57-.94-.84-1.58-1.88-1.76-2.2-.19-.32-.02-.49.14-.65.14-.14.32-.37.48-.56.16-.19.21-.32.32-.53.11-.21.05-.4-.03-.56-.08-.16-.72-1.73-.98-2.37-.26-.62-.52-.54-.72-.55h-.61c-.21 0-.56.08-.85.4-.29.32-1.11 1.09-1.11 2.65 0 1.56 1.14 3.07 1.3 3.28.16.21 2.24 3.42 5.43 4.8.76.33 1.35.52 1.81.67.76.24 1.45.21 2 .13.61-.09 1.88-.77 2.14-1.51.27-.74.27-1.38.19-1.51-.08-.14-.29-.22-.61-.38Z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
}

.wpsp-slider-section #sp-woo-product-slider-pro4343.wpsp-product-section .wpsp-cart-button a:not(.sp-wqvpro-view-button):not(.sp-wqv-view-button):hover, 
.wpsp-slider-section #sp-woo-product-slider-pro4343.wpsp-product-section .wpsp-cart-button a.button:not(.sp-wqvpro-view-button):not(.sp-wqv-view-button):hover, .wpsp-slider-section #sp-woo-product-slider-pro4343.wpsp-product-section .wpsp-cart-button a.added_to_cart:not(.sp-wqvpro-view-button):not(.sp-wqv-view-button):hover {
    background-color: #06b1e3 !important;
}

.wpsp-slider-section #sp-woo-product-slider-pro4343.wpsp-product-section .wpsp-cart-button a:not(.sp-wqvpro-view-button):not(.sp-wqv-view-button):hover::before, 
.wpsp-slider-section #sp-woo-product-slider-pro4343.wpsp-product-section .wpsp-cart-button a.button:not(.sp-wqvpro-view-button):not(.sp-wqv-view-button):hover::before, .wpsp-slider-section #sp-woo-product-slider-pro4343.wpsp-product-section .wpsp-cart-button a.added_to_cart:not(.sp-wqvpro-view-button):not(.sp-wqv-view-button):hover::before {
    filter: brightness(0) invert(1);
}
#wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .product-details {
    display: flex;
}
#wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .product-details-inner {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
}
#wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product-title a h3 {
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    min-height: 60px; /* 3 líneas × line-height 20px */
  }

  /* ============================================================
   Piscilinda · Tarjetas de producto Portada
   Paleta: #003a58 (azul profundo) · #06b1e3 (cian) · #dddddd
   ============================================================ */

/* --- 0. Aire dentro del carrusel -----------------------------------
   El contenedor de Swiper lleva overflow:hidden y su alto es el de la
   tarjeta: sin este respiro, la elevación y la sombra del hover se cortan. */
#wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product-section {
    padding: 16px 0;
  }
  
  /* --- 1. Superficie de la tarjeta ------------------------------------ */
  #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .wpspro-product-data {
    background: #fff;
    border-radius: 14px;
    /* anillo con box-shadow: no ocupa layout, no altera las alturas del plugin */
    box-shadow:
      inset 0 0 0 1px rgba(0, 58, 88, .12),
      0 2px 6px rgba(0, 58, 88, .06);
    transition: transform .35s cubic-bezier(.2, .7, .3, 1),
                box-shadow .35s cubic-bezier(.2, .7, .3, 1);
  }
  
  /* --- 2. Zona de imagen ---------------------------------------------- */
  #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .wpsp-product-image {
    background: #f4fafd;            /* fondo suave para PNG y placeholders */
    border: 0;                      /* el borde gris lo sustituye el anillo */
    border-radius: 14px 14px 0 0;
  }
  #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product img.wpsp-product-img {
    transition: transform .6s cubic-bezier(.2, .7, .3, 1);
  }
  
  /* --- 3. Bloque de texto: botón siempre a la misma altura ------------- */
  #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .product-details {
    display: flex;
    position: relative;
    padding: 0 14px;
  }
  #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .product-details-inner {
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100%;
  }
  #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .wpsp-cart-button {
    margin-top: -2px;               /* ancla el botón al fondo de la caja */
    padding-bottom: 15px;
  }
  
  /* filete de marca sobre el bloque de texto, entra al hacer hover */
  #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .product-details::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: linear-gradient(90deg, #003a58, #06b1e3);
    transform: scaleX(0);
    transform-origin: left center;
    transition: transform .45s cubic-bezier(.2, .7, .3, 1);
  }
  
  /* --- 4. Título ------------------------------------------------------- */
  #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .wpsp-product-title a h3 {
    transition: color .25s ease;
  }
  
  /* --- 5. Botón -------------------------------------------------------- */
  #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .wpsp-cart-button a.button:not(.sp-wqv-view-button):not(.sp-wqvpro-view-button) {
    letter-spacing: .2px;
    transition: background-color .3s ease, color .3s ease,
                border-color .3s ease, box-shadow .3s ease, transform .2s ease;
  }
  
  /* --- 6. Hover de la tarjeta (solo en dispositivos con puntero) -------- */
  @media (hover: hover) {
    #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product:hover .wpspro-product-data {
      transform: translateY(-6px);
      box-shadow:
        inset 0 0 0 1px rgba(6, 177, 227, .55),
        0 14px 28px -14px rgba(0, 58, 88, .45);
    }
    #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product:hover img.wpsp-product-img {
      transform: scale(1.06);
    }
    #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product:hover .product-details::before {
      transform: scaleX(1);
    }
    /* al pasar por la tarjeta, el botón se rellena de cian.
       El !important es necesario: el tema hijo fija
       background-color: transparent !important en este botón. */
    #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product:hover .wpsp-cart-button a.button:not(.sp-wqv-view-button):not(.sp-wqvpro-view-button) {
      color: #fff;
      background-color: #06b1e3 !important;
      border-color: transparent !important;
      box-shadow: 0 6px 14px -4px rgba(6, 177, 227, .5);
    }
    /* el icono de WhatsApp pasa a blanco, igual que en el hover del propio botón */
    #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product:hover .wpsp-cart-button a.button::before {
      filter: brightness(0) invert(1);
    }
    /* y al pasar por el botón, un empujón extra */
    #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .wpsp-cart-button a.button:not(.sp-wqv-view-button):not(.sp-wqvpro-view-button):hover {
      transform: translateY(-1px);
      box-shadow: 0 8px 18px -6px rgba(0, 58, 88, .55);
    }
  }
  
  /* --- 7. Accesibilidad ------------------------------------------------ */
  #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product a:focus-visible {
    outline: 2px solid #06b1e3;
    outline-offset: 3px;
    border-radius: 25px;
  }
  
  @media (prefers-reduced-motion: reduce) {
    #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .wpspro-product-data,
    #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product img.wpsp-product-img,
    #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .wpsp-cart-button a.button {
      transition: none !important;
      transform: none !important;
    }
    /* el filete sigue apareciendo solo en hover, pero sin animación */
    #wpsp-slider-section-wrapper.wpsp-slider-section .wpsp-product .product-details::before {
      transition: none !important;
    }
  }

  /* ==========================================================================
   Piscilinda — Vídeo mosaico
   ========================================================================== */

.elementor-widget.pisc-video-mosaico{
    --pisc-mosaico:url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCAzMTIyIDE3ODEiIHdpZHRoPSIzMTIyIiBoZWlnaHQ9IjE3ODEiPjxnIGZpbGw9IiNmZmZmZmYiPjxyZWN0IHg9IjAiIHk9IjQ0NSIgd2lkdGg9IjE4MSIgaGVpZ2h0PSI4NjgiLz48cmVjdCB4PSIxOTgiIHk9IjUyOCIgd2lkdGg9IjYwNiIgaGVpZ2h0PSIxMDc2Ii8+PHJlY3QgeD0iODIxIiB5PSIwIiB3aWR0aD0iODMwIiBoZWlnaHQ9IjEwNTAiLz48cmVjdCB4PSI4MjEiIHk9IjEwNjciIHdpZHRoPSI4MzAiIGhlaWdodD0iNzE0Ii8+PHJlY3QgeD0iMTY2OCIgeT0iMjIyIiB3aWR0aD0iMTAzMSIgaGVpZ2h0PSIxNDQxIi8+PHJlY3QgeD0iMjcxNiIgeT0iNDEzIiB3aWR0aD0iNDA2IiBoZWlnaHQ9Ijk3NCIvPjwvZz48L3N2Zz4=");
  
    -webkit-mask-image:var(--pisc-mosaico);
            mask-image:var(--pisc-mosaico);
    -webkit-mask-size:contain;            mask-size:contain;
    -webkit-mask-position:center center;  mask-position:center center;
    -webkit-mask-repeat:no-repeat;        mask-repeat:no-repeat;
  }
  
  /* El iframe entra con un fundido: durante ese segundo se ve la portada que
     lleva el widget como fondo, en vez del rectángulo negro de YouTube. */
  .elementor-widget.pisc-video-mosaico .elementor-wrapper{
    animation:pisc-video-in .8s ease 1.1s both;
  }
  @keyframes pisc-video-in{from{opacity:0}to{opacity:1}}
  
  /* Igual que el original: por debajo de 768 px el mosaico desaparece y el vídeo
     pasa a rectángulo completo, que es lo legible a ese ancho. */
  @media (max-width:767px){
    .elementor-widget.pisc-video-mosaico{
      -webkit-mask-image:none;
              mask-image:none;
    }
  }
  
  @media (prefers-reduced-motion:reduce){
    .elementor-widget.pisc-video-mosaico .elementor-wrapper{animation:none}
  }
  
  /* ==========================================================================
   Cintas de servicios — Piscilinda
   ========================================================================== */

.pisc-cinta {
	overflow: hidden;
}

/* La lista se convierte en una tira continua: una sola línea, ancho natural.
   Los términos van duplicados dentro del widget, así que trasladar -50 %
   deja la segunda copia exactamente donde empezaba la primera: el bucle no
   tiene salto ni hueco. */
.pisc-cinta .elementor-icon-list-items.elementor-inline-items {
	flex-wrap: nowrap;
	width: max-content;
	will-change: transform;
	animation: pisc-cinta-izq 45s linear infinite;
}

.pisc-cinta .elementor-icon-list-item {
	white-space: nowrap;
}

.pisc-cinta--der .elementor-icon-list-items.elementor-inline-items {
	animation-name: pisc-cinta-der;
}

@keyframes pisc-cinta-izq {
	from { transform: translate3d(0, 0, 0); }
	to   { transform: translate3d(-50%, 0, 0); }
}

@keyframes pisc-cinta-der {
	from { transform: translate3d(-50%, 0, 0); }
	to   { transform: translate3d(0, 0, 0); }
}

/* Accesibilidad: quien tenga activado "reducir movimiento" en su sistema
   ve las cintas quietas en lugar de en marcha. */
@media (prefers-reduced-motion: reduce) {
	.pisc-cinta .elementor-icon-list-items.elementor-inline-items {
		animation: none;
	}
}

.service-details-content .content-three {
    MARGIN-TOP: 50px;
}