/* ========================= */
/* RESET */
/* ========================= */

*{
  margin:0;
  padding:0;
  box-sizing:border-box;
}

body{
  font-family:"Segoe UI", sans-serif;

  margin:0;
  overflow-x:hidden;

  background:
    linear-gradient(
      rgba(0,0,0,0.35),
      rgba(0,0,0,0.35)
    ),
    url("fondo.png");

  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  background-attachment:fixed;

  color:#102a43;
}


/* ========================= */
/* CONTENEDOR */
/* ========================= */

.contenedor{
  width:95%;
  max-width:1400px;
  margin:auto;
  padding:20px;
}


/* ========================= */
/* HEADER */
/* ========================= */

.header{
  text-align:center;
  margin-bottom:25px;
}

.header h1{
  font-size:60px;
  font-weight:900;
  color:#ffffff;
}

.header h2{
  color:#cc1818;
  font-size:24px;
  margin-top:10px;
}


/* ========================= */
/* FILAS */
/* ========================= */

.fila-superior,
.fila-inferior{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
  margin-bottom:20px;
}


/* ========================= */
/* BLOQUES */
/* ========================= */

.bloque{
  background:rgb(222, 245, 255);
  border-radius:22px;
  box-shadow:0 8px 18px rgba(0,0,0,.10);
  overflow:hidden;
}

/* Línea lateral tipo institucional */

.entrada{
  border-left:8px solid #0f385f;
}

.estrategico{
  border-left:8px solid #003366;
}

.apoyo{
  border-left:8px solid #2e7d32;
}

.control{
  border-left:8px solid #d9a400;
}

.impacto{
  border-left:8px solid #b00020;
}


/* ========================= */
/* TITULO BLOQUES */
/* ========================= */

.titulo-bloque{
  padding:20px 25px;
  display:flex;
  justify-content:space-between;
  align-items:center;
}

.titulo-bloque h3{
  font-size:28px;
  font-weight:800;
}


/* ========================= */
/* BOTÓN + */
/* ========================= */

.btn-info{
  width:55px;
  height:55px;
  border:none;
  border-radius:50%;
  cursor:pointer;
  font-size:30px;
  font-weight:bold;
  color:white;
  background:#0d3b75;
  transition:.3s;
}

.btn-info:hover{
  transform:scale(1.1);
}


/* ========================= */
/* CAMIÓN */
/* ========================= */

.camion-box{
  background:#7c4e2941;
  border-radius:25px;
  padding:50px;
  margin-bottom:25px;
  box-shadow:0 8px 20px rgba(0,0,0,.08);
}

.camion-container{
  position:relative;
  width:100%;
}

.camion{
  width:100%;
  max-width:1000px;
  display:block;
  margin:auto;

  animation:entradaCamion 1.8s ease forwards;
}


/* ========================= */
/* ANIMACIÓN CAMIÓN */
/* ========================= */

@keyframes entradaCamion{

  from{
    transform:translateX(100vw);
    opacity:0;
  }

  to{
    transform:translateX(0);
    opacity:1;
  }

}


/* ========================= */
/* BOTONES VEHÍCULO */
/* ========================= */

/* ========================= */
/* BOTONES VEHÍCULO */
/* ========================= */

.punto{
  position:absolute;

  top:0;
  left:0;

  transform:translate(-50%, -50%);

  width:55px;
  height:55px;

  border:none;
  border-radius:50%;

  color:#fff;
  font-size:30px;
  font-weight:bold;

  cursor:pointer;

  display:flex;
  align-items:center;
  justify-content:center;

  z-index:100;

  transition:.3s;

  overflow:visible;
}

/* hover */
.punto:hover{
  transform:translate(-50%, -50%) scale(1.12);
}

/* colores */

.punto.misional{
  background:#d62828;
}

.punto.apoyo{
  background:#2e7d32;
}

.punto.control{
  background:#d9a400;
}

.punto.entrada{
  background:#5c5c5c;
}

.punto.impacto{
  background:#7b1fa2;
}

/* pulso */

/* ========================= */
/* ONDA BOTÓN */
/* ========================= */

.punto::after{
  content:"";

  position:absolute;

  top:50%;
  left:50%;

  width:100%;
  height:100%;

  border-radius:50%;

  transform:translate(-50%, -50%);

  border:3px solid rgba(255,255,255,.55);

  animation:pulso 2s infinite;

  pointer-events:none;
}

/* animación */

@keyframes pulso{

  0%{
    transform:
      translate(-50%, -50%)
      scale(1);

    opacity:1;
  }

  100%{
    transform:
      translate(-50%, -50%)
      scale(1.9);

    opacity:0;
  }

}


/* ========================= */
/* CARDS */
/* ========================= */

.card{
  position:fixed;
  top:50%;
  left:50%;
  transform:translate(-50%,-50%);
  width:420px;
  max-width:92%;
  background:white;
  border-radius:22px;
  padding:30px;
  box-shadow:0 20px 60px rgba(0,0,0,.25);
  display:none;
  z-index:999;
}

.card.active{
  display:block;
  animation:cardEntrada .3s ease;
}

@keyframes cardEntrada{

  from{
    opacity:0;
    transform:
      translate(-50%,-45%)
      scale(.95);
  }

  to{
    opacity:1;
    transform:
      translate(-50%,-50%)
      scale(1);
  }

}

.card h3{
  margin-bottom:20px;
  font-size:28px;
}

.card ul{
  padding-left:20px;
}

.card li{
  margin-bottom:12px;
  font-size:20px;
  line-height:1.5;
}


/* ========================= */
/* RESPONSIVE */
/* ========================= */

@media(max-width:900px){

  .fila-superior,
  .fila-inferior{
    grid-template-columns:1fr;
  }

  .header h1{
    font-size:42px;
  }

  .header h2{
    font-size:18px;
  }

  .camion-box{
    padding:20px;
  }

  .titulo-bloque h3{
    font-size:20px;
  }

  .btn-info{
    width:45px;
    height:45px;
    font-size:25px;
  }

  .punto{
    width:42px;
    height:42px;
    font-size:24px;
  }

}