/* ---------- Responsive Mobile carrousel---------- */

@media (max-width: 600px) {
    .dn {
        margin-top: 40px;
    }
    body {
        padding-top: 17%;
    }
    /* menu  */
    .bgc-purple-light {
        background-color: var(--color-purple);
    }
    .menu-mb {
        height: 11%;
        padding: 0%;
        margin: 0%;
    }
    /* imagen disfruta.php */
    .imgDisfruta {
        width: 80%;
        margin-top: 0%;
    }
    /* menu hamburguesa  */
    .navbar-toggler-icon {
        background-image: url("data:image/svg+xml;charset=UTF8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30' width='30' height='30'%3E%3Cpath stroke='white' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E");
    }
    /* Ajustar la altura del carrusel para pantallas pequeñas */
    .carousel-item {
        height: 200px;
        background-size: cover;
        background-position: center;
    }
    /*-----------  que necesitas ----------  */
    .d-flex.justify-content-lg-center {
        flex-direction: column;
        /* Cambia la dirección a columna */
        align-items: center;
        /* Centra los elementos */
    }
    .width-icons {
        width: 30px;
        margin-bottom: 0.5rem;
        /* Añade un margen inferior a las imágenes */
    }
    .fsResponsive {
        font-size: 15px;
    }
    /* ---------------- nuestros servicios -------------  */
    .imgBg2 {
        width: 100%;
        height: 100%;
    }
    /* ------------- nuestro equipo -------------  */
    h2 {
        font-size: 1.5rem;
        /* Reduce el tamaño del título en dispositivos móviles */
    }
    .color-green.fs-80 {
        font-size: 3rem;
    }
    p.fs-80 {
        font-size: 1.2rem;
        /* Reduce el tamaño del texto "EQUIPO" en dispositivos móviles */
    }
    .text p {
        font-size: 0.9rem;
        /* Reduce el tamaño del texto en las tarjetas en dispositivos móviles */
    }
    /*----------- mantente informado --------  */
    .cntInfo {
        padding-top: 15%;
    }
    .ptMi {
        padding-top: 15%;
    }
    /* -------- contactanos --------   */
    .containerContactInfo h1 {
        font-size: 2rem;
    }
    .containerContactInfo .ms-1 {
        font-size: 0.8rem;
    }
    .icon {
        font-size: 1.25rem;
        /* Ajusta el tamaño del icono para móvil */
    }
    /* ------------- estilos de landing page -------------  */
    .formGana {
        padding: 0 0%;
    }
    .imgFormRef {
        top: 11%;
        right: 3%;
        width: 50%;
    }
    .paddingCarrousel2 {
        padding-left: 7%;
        padding-top: 38%;
    }
    .imgBgLanding {
        height: 119vh;
    }
    /* consultar referidos  */
    .img-ref {
        width: 30%;
        height: 30%;
    }
    .py-ref {
        padding: 0% 0%;
    }
    .pl-frm {
        padding-left: 8%;
        padding-bottom: 10%;
    }
    .pr-login {
        padding-right: 7%;
    }
}

@media (min-width: 992px) {
    /* A partir de pantallas grandes (lg) */
    .custom-vh {
        height: 100vh;
    }
    /* --------- nuestros servicios -------------   */

    #nuestros_servicios .row {
      gap: 0;
    }

    .col-md-2 {
        margin-bottom: 15px !important;
    }
    .vh-100 {
        height: auto !important;
    }
}

/* =============== MENU RESPONSIVE FIXES =============== */

/* General */
.navbar {
  transition: background-color 0.3s ease, box-shadow 0.3s ease;
}

/* Fondo del menú fijo */
.navbar.fixed-top {
  background-color: var(--color-purple-light);
  z-index: 9999;
}

/* Hamburguesa blanca */
.navbar-toggler {
  border: none;
}
.navbar-toggler:focus {
  box-shadow: none;
}
.navbar-toggler-icon {
  background-size: 70%;
}

/* Fondo y organización del menú abierto */
.navbar-collapse.show {
  background-color: var(--color-purple);
  padding: 1rem 0;
}

/* Centrar elementos del menú */
.navbar-nav {
  gap: 0.5rem;
}

/* Asegurar legibilidad en móvil */
.navbar-nav .nav-link {
  color: white !important;
  font-size: 1rem;
  padding: 0.75rem;
}
.navbar-nav .nav-link.active {
  font-weight: 600;
}

/* Submenús */
.dropdown-menu {
  border: none;
  border-radius: 0;
  background: rgba(0, 0, 0, 0.7);
  margin-top: 0;
}
.dropdown-item {
  color: #fff !important;
  font-size: 0.95rem;
}
.dropdown-item:hover {
  background: rgba(255, 255, 255, 0.1);
}

/* Submenús anidados (dropdown-submenu) */
.dropdown-submenu {
  position: relative;
}
.dropdown-submenu > .dropdown-menu {
  left: 100%;
  top: 0;
  margin-left: 0.5rem;
}

/* ---- Ajustes específicos para pantallas pequeñas ---- */
@media (max-width: 992px) {
  /* Asegura que el menú colapsado cubra todo el ancho */
  .navbar-collapse {
    width: 100%;
  }

  /* Los dropdowns deben mostrarse al hacer clic */
  .dropdown-menu {
    position: static !important;
    background-color: rgba(0, 0, 0, 0.7);
    margin-top: 0;
  }

  /* Submenús anidados: apilados verticalmente */
  .dropdown-submenu > .dropdown-menu {
    display: none;
    margin-left: 1rem;
  }
  .dropdown-submenu.show > .dropdown-menu {
    display: block;
  }

  /* Alinear botones de la derecha debajo del menú */
  .navbar .d-flex.align-items-center {
    flex-direction: column;
    gap: 0.75rem;
    padding: 0.5rem 0;
  }

  .btn-lang {
    background: rgba(255, 255, 255, 0.1);
    color: white;
    border: none;
  }
}

/* ======= NAVBAR MÓVIL OPTIMIZADO ======= */
@media (max-width: 992px) {
  .navbar {
    background-color: var(--color-purple) !important;
    padding: 0.5rem 1rem;
    border: none;
  }

  .navbar .container {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  /* Logo más pequeño */
  .navbar-brand img {
    width: 80px;
    height: auto;
  }

  /* Botón hamburguesa a la derecha */
  .navbar-toggler {
    margin-left: auto;
    background: rgba(255, 255, 255, 0.2);
    border: none;
    border-radius: 8px;
    padding: 0.3rem 0.6rem;
  }

  .navbar-toggler-icon {
    filter: invert(1);
    background-size: 60%;
  }

  /* Ocultar botones externos en móvil */
  .d-lg-flex {
    display: none !important;
  }

  /* Estilo del menú desplegado */
  .navbar-collapse.show {
    background-color: var(--color-purple);
    text-align: center;
    padding: 1rem 0;
  }

  .navbar-nav .nav-link {
    color: #fff !important;
    padding: 0.7rem 0;
    font-size: 1rem;
  }

  /* Botones adicionales dentro del menú */
  .mobile-extra-buttons {
    background-color: var(--color-purple);
    padding: 1rem 0;
  }

  .mobile-extra-buttons .btn {
    display: block;
    margin: 0.5rem auto;
    border-radius: 8px;
  }

  .mobile-extra-buttons .btn-lang {
    background: rgba(255, 255, 255, 0.15);
    color: #fff;
  }
}


/* ================== FIX BANNER FLOTANTE ================== */

/* 🔸 Versión para pantallas pequeñas */
@media (max-width: 991px) {
  .banner-flotante {
    position: relative !important;   /* Se integra al flujo normal */
    bottom: 0 !important;
    left: 0 !important;
    transform: none !important;
    z-index: 1 !important;
    width: 100% !important;          /* Ocupa todo el ancho */
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Asegura que el contenido interno no se salga del borde */
  .banner-flotante header,
  .banner-flotante .container-fluid {
    width: 100%;
    margin: 0;
    padding: 0;
  }
}


/* ================== FIX DESBORDAMIENTO HORIZONTAL SOLO EN MÓVIL ================== */

@media (max-width: 991px) {
  /* Evita desplazamiento lateral */
  html, body {
    overflow-x: hidden !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* Asegura que los contenedores no se desborden */
  .container, .container-fluid, .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  /* Corrige posibles desbordes del navbar y banner flotante */
  .navbar, .navbar-collapse, .banner-flotante {
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  /* Asegura que imágenes y videos no rompan el ancho */
  img, video {
    max-width: 100% !important;
    height: auto !important;
    display: block;
  }
}