/* RESET GENERAL */
*{
  margin:0;
  padding:0;
  box-sizing:border-box;
  font-family:Poppins;
  scroll-behavior:smooth;
}

body{
  background:#000;
  color:white;
  overflow-x:hidden;
}

/* CANVAS DE PARTÍCULAS */
#network{
  position:fixed;
  top:0;
  left:0;
  width:100%;
  height:100%;
  z-index:-1;
}

/* HEADER */
header{
  position:fixed;
  top:0;
  width:100%;
  display:flex;
  justify-content:space-between;
  align-items:center;
  padding:20px 10%;
  background:rgba(0,0,0,0.6);
  backdrop-filter:blur(10px);
  z-index:10;
}

.logo img{
  height:50px;
}

nav a{
  margin-left:30px;
  text-decoration:none;
  color:white;
  position:relative;
}

nav a::after{
  content:"";
  position:absolute;
  bottom:-5px;
  left:0;
  width:0;
  height:2px;
  background:red;
  transition:0.3s;
}

nav a:hover::after{
  width:100%;
}

/* HERO */
.hero{
  height:100vh;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}

.hero-content{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:20px;
  width:100%;
  height:100%;
}

/* HERO IMAGEN GRANDE Y RESPONSIVE */
.hero-content .hero-img {
  width:80%;
  max-width:1000px;
  height:auto;
  display:block;
  margin:0 auto;
  opacity:0;
  transform:translateY(-30px);
  animation:fadeInHero 1s ease forwards;
}

@keyframes fadeInHero {
  0% {
    opacity:0;
    transform:translateY(-30px);
  }
  100% {
    opacity:1;
    transform:translateY(0);
  }
}

/* BOTÓN HERO */
.hero-content .btn{
  padding:15px 35px;
  font-size:1.2rem;
  color:white;
  background:#111;
  border:2px solid red;
  border-radius:15px;
  transform-style:preserve-3d;
  transition:0.3s;
  animation:fadeInUp 2s ease forwards;
  opacity:0;
}

.hero-content .btn:hover{
  transform:scale(1.05) translateZ(5px);
  box-shadow:0 0 20px red;
}

@keyframes fadeInDown{
  0%{opacity:0; transform:translateY(-50px);}
  100%{opacity:1; transform:translateY(0);}
}

@keyframes fadeInUp{
  0%{opacity:0; transform:translateY(50px);}
  100%{opacity:1; transform:translateY(0);}
}

/* SECCIONES */
.section{
  padding:120px 10%;
  text-align:center;
}

/* QUIENES SOMOS */
#somos h2{
  color:#ff0033;
  font-size:2.5rem;
  text-transform:uppercase;
  letter-spacing:2px;
  text-shadow:0 0 10px red;
  animation:glowText 2s ease infinite alternate;
}

@keyframes glowText{
  0%{text-shadow:0 0 5px red, 0 0 10px red;}
  50%{text-shadow:0 0 10px red, 0 0 20px red;}
  100%{text-shadow:0 0 5px red, 0 0 10px red;}
}

.misionvision{
  display:flex;
  gap:40px;
  margin-top:40px;
  justify-content:center;
  flex-wrap:wrap;
}

.cardmv{
  background:#111;
  padding:30px;
  border-radius:20px;
  transition:0.5s;
  transform-style:preserve-3d;
}

.cardmv:hover{
  transform:rotateY(10deg) rotateX(10deg) scale(1.05);
  box-shadow:0 0 25px red;
}

/* PLANES */
.planes-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:30px;
}

.plan{
  background:#111;
  padding:40px;
  border-radius:20px;
  transition:0.5s;
}

.plan:hover{
  transform:scale(1.05);
  box-shadow:0 0 30px red;
}

.destacado{
  border:2px solid red;
}

/* PLAN ADULTO MAYOR */
.tercera{
  margin-top:40px;
  background:red;
  padding:30px;
  border-radius:20px;
  transition:0.4s;
}

.tercera:hover{
  background:#7a0015;
  transform:scale(1.07);
  box-shadow:0 0 30px #ff0033;
}

/* VENTAJAS */
.ventajas-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
  gap: 15px; 
  margin-top: 40px;
}

.ventaja {
  background: #111;
  padding: 20px;
  border-radius: 10px;
  transition: 0.4s;
  text-align: center;
}

.ventaja:hover {
  transform: translateY(-10px);
  box-shadow: 0 0 15px red;
}

/* GALERÍA */
.galeria-grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(250px,1fr));
  gap:20px;
}

.galeria-grid img{
  width:100%;
  cursor:pointer;
  transition:0.3s;
  border-radius:10px;
}

.galeria-grid img:hover{
  transform:scale(1.1);
}

/* CÁMARAS */
.camaras-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 20px;
}

.camara {
  background: #111;
  padding: 15px;
  border-radius: 15px;
  transform-style: preserve-3d;
  transition: transform 0.5s, box-shadow 0.5s;
  text-align: center;
}

.camara:hover {
  transform: rotateY(10deg) scale(1.05);
  box-shadow: 0 0 20px red;
}

.camara img {
  width: 100%;
  max-width: 200px;
  height: auto;
  cursor: pointer;
  border-radius: 10px;
  margin: 0 auto;
}

/* MAPA */
.mapa-container {
  position: relative;
  width: 85%;
  padding-bottom: 48%;
  height: 0;
  overflow: hidden;
  border-radius: 10px;
  margin-top: 20px;
  margin-left:auto;
  margin-right:auto;
}

.mapa-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

/* SPEEDTEST */
.speedtest-container{
  margin-top:30px;
  display:flex;
  justify-content:center;
  align-items:center;
}

/* REDES */
.redes img{
  width:50px;
  margin:20px;
  transition:0.3s;
}

.redes img:hover{
  transform:scale(1.2);
}

/* MASCOTA */
.mascota{
  position:fixed;
  bottom:120px;
  left:30px;
  animation:flotar 3s infinite ease-in-out;
}

.mascota img{
  width:120px;
}

/* WHATSAPP */
.whatsapp{
  position:fixed;
  bottom:30px;
  right:30px;
}

.whatsapp img{
  width:60px;
}

/* FOOTER */
.footer{
  background:#050505;
  padding:80px 10%;
}

/* MODAL */
.modal{
  display:none;
  position:fixed;
  z-index:999;
  left:0;
  top:0;
  width:100%;
  height:100%;
  background:rgba(0,0,0,0.9);
  justify-content:center;
  align-items:center;
}

/* MENU MÓVIL CORREGIDO */

.menu-toggle{
  display:none;
  cursor:pointer;
}

.menu-circle{
  width:35px;
  height:35px;
  border-radius:50%;
  border:2px solid red;
  position:relative;
  transition:0.4s;
}

/* líneas internas tecnológicas */

.menu-circle::before,
.menu-circle::after{
  content:"";
  position:absolute;
  width:16px;
  height:2px;
  background:red;
  left:50%;
  transform:translateX(-50%);
  transition:0.4s;
}

.menu-circle::before{
  top:11px;
}

.menu-circle::after{
  bottom:11px;
}

.menu-toggle.activo .menu-circle{
  transform:rotate(180deg);
  box-shadow:0 0 15px red;
}

@media(max-width:768px){

nav{
  display:none;
  flex-direction:column;
  background:black;
  position:absolute;
  top:80px;
  right:0;
  width:220px;
  padding:20px;
  border-radius:10px;
}

nav.activo{
  display:flex;
}

nav a{
  margin:10px 0;
}

.menu-toggle{
  display:block;
}

}

/* SEPARACIÓN ENTRE TÍTULOS */
#planes h2, #ventajas h2, #galeria h2, #camaras h2, #mapa h2{
  margin-bottom:50px;
}

/* FOOTER GRID */

.footer-grid{
display:grid;
grid-template-columns:repeat(4,1fr);
gap:40px;
max-width:1200px;
margin:auto;
}

.footer-grid ul{
list-style:none;
}

.footer-grid li{
margin-bottom:10px;
}

.footer-grid a{
color:white;
text-decoration:none;
opacity:0.8;
transition:0.3s;
}

.footer-grid a:hover{
opacity:1;
color:red;
}

.copy{
text-align:center;
margin-top:40px;
opacity:0.6;
font-size:14px;
}

/* RESPONSIVE FOOTER */

@media(max-width:768px){

.footer-grid{
grid-template-columns:1fr 1fr;
gap:25px;
}

}

@media(max-width:480px){

.footer-grid{
grid-template-columns:1fr;
}

}

/* ANIMACION FLOTAR QUE FALTABA */

@keyframes flotar{

0%{
transform:translateY(0px);
}

50%{
transform:translateY(-12px);
}

100%{
transform:translateY(0px);
}

}

/* WHATSAPP TAMBIÉN FLOTA */

.whatsapp{
animation:flotar 3s infinite ease-in-out;
}

/* ============================= */
/* ANIMACION FOOTER */
/* ============================= */

.footer-grid div{
opacity:0;
transform:translateY(30px);
animation:footerFade 1s ease forwards;
}

/* retraso entre columnas */

.footer-grid div:nth-child(1){animation-delay:0.2s;}
.footer-grid div:nth-child(2){animation-delay:0.4s;}
.footer-grid div:nth-child(3){animation-delay:0.6s;}
.footer-grid div:nth-child(4){animation-delay:0.8s;}

@keyframes footerFade{

0%{
opacity:0;
transform:translateY(30px);
}

100%{
opacity:1;
transform:translateY(0);
}

}

/* EFECTO HOVER LINKS */

.footer a{
transition:0.3s;
}

.footer a:hover{
color:red;
text-shadow:0 0 10px red;
}

/* ============================= */
/* ARREGLO TAMAÑO MODAL IMAGENES */
/* ============================= */

.modal-contenido{
  max-width:70%;
  max-height:70vh;
  width:auto;
  height:auto;
  object-fit:contain;
  border-radius:10px;
}

/* botón cerrar del modal */

.modal .cerrar{
  position:absolute;
  top:25px;
  right:40px;
  font-size:40px;
  color:white;
  cursor:pointer;
  transition:0.3s;
}

.modal .cerrar:hover{
  color:red;
}

/* ============================= */
/* CENTRAR TITULO SPEEDTEST */
/* ============================= */

#speedtest h2{
text-align:center;
margin-bottom:40px;
}

/* SPEEDTEST */

.speedtest{
  padding:120px 10%;
  text-align:center;
}

.speedtest-title{
  color:#ffffff;
  font-size:2rem;
  margin-bottom:30px;
  letter-spacing:1px;
  font-weight:600;
}

.speedtest-container{
  display:flex;
  justify-content:center;
  align-items:center;
}

.speedtest-box{
  display:block;
  width:860px;
  margin:0 auto;
  background:#000;
  border-radius:18px;
  overflow:hidden;
}

.speedtest-box iframe{
  display:block;
  width:860px;
  height:300px;
  border:none;
  border-radius:18px;
  background:#000;
}

/* ============================= */
/* ANIMACION BOTON VER PLANES */
/* ============================= */

.hero-content .btn{
opacity:0;
animation:fadeInUp 2s ease forwards;
animation-delay:1s;
}

/* ============================= */
/* TRANSICION LINKS FOOTER */
/* ============================= */

.footer ul li a{
display:inline-block;
transition:all 0.35s ease;
position:relative;
}

.footer ul li a:hover{
color:#ff0033;
transform:translateX(6px);
text-shadow:0 0 8px red;
}

/* linea tecnológica */

.footer ul li a::after{
content:"";
position:absolute;
left:0;
bottom:-2px;
width:0%;
height:2px;
background:red;
transition:0.35s;
}

.footer ul li a:hover::after{
width:100%;
}

/* ============================= */
/* EFECTO 3D BOTON VER PLANES */
/* ============================= */

.hero-content{
perspective:1000px;
}

.hero-content .btn{
transition:transform 0.35s, box-shadow 0.35s;
}

.hero-content .btn:hover{
transform:rotateX(12deg) rotateY(-12deg) scale(1.05);
box-shadow:0 10px 25px rgba(255,0,0,0.6);
}

/* ============================= */
/* ANIMACION MENU HAMBURGUESA */
/* ============================= */

@media(max-width:768px){

nav{
display:flex;
flex-direction:column;
background:black;
position:absolute;
top:80px;
right:0;
width:220px;
padding:20px;
border-radius:10px;

/* estado oculto */

opacity:0;
transform:translateY(-20px);
pointer-events:none;

transition:opacity 0.35s ease, transform 0.35s ease;
}

nav.activo{
opacity:1;
transform:translateY(0);
pointer-events:auto;
}

}

/* ============================= */
/* EFECTO ILUMINADO REDES SOCIALES */
/* ============================= */

.redes img{
transition:all 0.35s ease;
}

.redes img:hover{
transform:scale(1.2);
filter:drop-shadow(0 0 6px #ff0033)
       drop-shadow(0 0 12px #ff0033)
       drop-shadow(0 0 20px #ff0033);
}

/* ============================= */
/* SPEEDTEST RESPONSIVE */
/* ============================= */

@media (max-width: 992px){
  .speedtest-box{
    width:720px;
  }

  .speedtest-box iframe{
    width:720px;
    height:260px;
  }
}

@media (max-width: 768px){
  .speedtest-title{
    font-size:1.8rem;
    margin-bottom:20px;
  }

  .speedtest-box{
    width:520px;
    border-radius:16px;
  }

  .speedtest-box iframe{
    width:520px;
    height:250px;
    border-radius:16px;
  }
}

@media (max-width: 560px){
  .speedtest-box{
    width:92vw;
    border-radius:16px;
  }

  .speedtest-box iframe{
    width:92vw;
    height:230px;
    border-radius:16px;
  }
}

@media (max-width: 420px){
  .speedtest-box{
    width:92vw;
    border-radius:14px;
  }

  .speedtest-box iframe{
    width:92vw;
    height:210px;
    border-radius:14px;
  }
}