@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;800&display=swap');

*,
*::before,
*::after {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
  outline: 0;
}

:root {
  --blanco: #fff;
  --fondo_claro: #f5f5f5;
  --gris_333: #333;
  --negro: #000;
  --fuente_color: var(--gris_333);
}

html {
  height: 100%;
  background-color: #282828;
  scroll-behavior: smooth;
}

body {
  display: flex;
  position: relative;
  font-family: 'Roboto', sans-serif;
  background-color: var(--fondo_claro);
  color: var(--fuente_color);
  font-size: 16px;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  /* height: 100%; */
  flex-wrap: nowrap;
}

main,
footer {
  position: relative;
  margin: 0 auto;
  width: 100%;
}


header {
  display: flex;
  position: sticky;
  top: 0;
  min-height: 60px;
  left: 0;
  width: 100%;
  background-color: var(--fondo_oscuro);
  z-index: 1000;
  user-select: none;
  flex: 0 auto;
  flex-direction: row;
  justify-content: flex-start;
  align-content: center;
  align-items: center;
  flex-wrap: wrap;
  text-align: left;
}


main {
  display: flex;
  align-items: center;
  flex-direction: column;
  flex: 1 0 0;
  justify-content: flex-start;
  flex-wrap: nowrap;
}

footer {
  height: 100px;
  width: 100%;
  box-shadow: 0 -2px 5px rgba(0, 0, 0, 0.1);
  flex: 0 0 auto;
  background-color: #353535;
  color: #f4f4f4;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
}

h1,
h2 {
  font-family: 'Poppins', sans-serif;
  font-weight: 800;
  font-style: normal;
}

h1 {
  font-size: 2.5rem;
  font-weight: 800;
  margin: 20px 0;
}

p {
  font-size: 1.1rem;
  line-height: 1.6rem;
  margin: 20px 0;
  font-style: normal;
  text-align: left;
}

.centrado {
  text-align: center;
}

/* finaliza base */

#menuPrincipal {
  position: absolute;
  top: 0;
  right: 34%;
  margin: 0 auto;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  height: 80px;
  z-index: 1000;
  user-select: none;
  flex-wrap: wrap;
  flex-direction: row;
  color: #ffffff;
}

div#menu-Top-Container {
  position: relative;
  margin: 0 auto;
  max-width: 2000px;
  width: 100%;
  height: 80px;
  transition: all 0.5s;
}

@media (min-width: 800px) {
  #menu-Top-Container {
    max-width: 1000px !important;
  }
}

@media (min-width: 1100px) {
  #menu-Top-Container {
    max-width: 1050px !important;
  }
}

@media (min-width: 1250px) {
  #menu-Top-Container {
    max-width: 1150px !important;
  }
}


@media (min-width: 1400px) {
  #menu-Top-Container {
    max-width: 1280px !important;
  }
}

@media (min-width: 1610px) {
  #menu-Top-Container {
    max-width: 1370px !important;
  }
}


@media (min-width: 1720px) {
  #menu-Top-Container {
    max-width: 1460px !important;
  }
}

@media (min-width: 1908px) {
  #menu-Top-Container {
    max-width: 1550px !important;
  }
}

.toggleIcon {
  display: none;
  font-size: 2.2rem;
  margin-right: 20px;
  margin-top: -3px;
  color: #20324e;
  cursor: pointer;
}

input,
select {
  background-color: var(--camposFondo);
}

.menu-toggle {
  display: none;
}

nav {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  list-style: none;
  height: 64px;
  flex-direction: row;
  z-index: 1;
}

nav ul {
  list-style-type: none;
  margin: 0;
  padding: 0;
  display: flex;
  height: 64px;
  align-items: center;
  justify-content: flex-start;
  flex-direction: row;
}

nav ul li {
  position: relative;
  height: 64px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: row;
}

nav ul li a {
  text-decoration: none;
  color: #ffffff;
  transition: background-color 0.3s;
  background-color: transparent;
  -webkit-tap-highlight-color: transparent;
  height: 60px;
  padding: 0 10px;
  margin: 0 10px;
  display: flex;
  align-items: center;
  font-family: "Poppins", serif;
  font-weight: 500;
  font-style: normal
}

nav ul li a {
  position: relative;
  text-decoration: none;
  /* Quitamos el subrayado por defecto */
}

nav ul li a::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 15px;
  /* Ajusta la distancia del subrayado */
  width: 100%;
  height: 1.3px;
  /* Grosor del subrayado */
  background: currentColor;
  opacity: 0;
  transition: opacity 0.3s ease-in-out;
}

nav ul li a:hover::after {
  opacity: 1;
}

nav ul li .active {
  color: #aabcec;
  font-weight: 600;
}

.homeIcon {
  display: none;
}

@media(max-width: 880px) {
  .item {
    max-width: 100% !important;
  }
}


@media (max-width: 829px) {
  .toggleIcon {
    display: block;
    -webkit-tap-highlight-color: transparent;
    color: #ffffff;
    z-index: 999;
  }

  nav {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    opacity: 1;
    height: auto;
    background-color: #f0f0f0;
    transition: all 0.5s ease;
    transform: translateY(-100%);
    pointer-events: none;
  }

  #menuPrincipal {
    right: 47%;
  }

  nav ul {
    flex-direction: column;
    width: 100%;
    height: 100%;
  }

  .menu-toggle:checked+nav {
    transform: translateY(0);
    pointer-events: auto;
    top: 80px;
  }

  nav ul li {
    width: 100%;
  }

  nav ul li a {
    color: #333;
    width: 100%;
    -webkit-tap-highlight-color: transparent;
  }
}

/* * AquÃ­ voy ahorita 5:35pm * */
#identidad {
  position: fixed;
  top: 0;
  left: 0;
  display: flex;
  flex-flow: column;
  flex: 0 80px;
  width: 100%;
  height: 80px;
  background-color: #a5a5a58a;
  align-items: center;
  z-index: 6;
  color: #363636;
  backdrop-filter: blur(5px);
  /* Para mejor compatibilidad con Safari/iOS */
  -webkit-backdrop-filter: blur(5px);
  flex-direction: row;
}

#topLogo {
  position: relative;
  margin-left: 10px;
  margin-right: 10px;
  width: 80px;
  height: 80px;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-content: center;
  justify-content: center;
  z-index: 3333;
}

#topLogo img {
  width: 60px;
  height: 60px;
}

span.slogan2 {
  color: #ffffff;
  font-size: 18px;
  font-family: "Poppins", serif;
  font-weight: 500;
  font-style: normal;
  user-select: none;
  z-index: 99999999999;
  width: 197px;
}

/* Main Banner */

.banner {
  position: relative;
  width: 100vw;
  height: 100vh;
  overflow: hidden;
  background: #000;
}

/* Contenedor de texto */
.banner-content {
  position: absolute;
  top: 30%;
  left: 25%;
  transform: translate(-30%, -25%);
  text-align: left;
  color: #fff;
  z-index: 5;
  width: max-content;
  /* Por encima de las imÃƒÆ’Ã‚Â¡genes y del canvas */
}

.banner-content h1 {
  font-size: 8rem;
  line-height: 8rem;
  font-style: normal;
  font-weight: 800;
  text-align: left;
  transition: all 0.5s;
}

.banner-content p {
  font-size: 1.2rem;
  margin-bottom: 1.5rem;
  margin-top: 20px;
  text-align: left;
}

.banner-content h1,
.banner-content p {
  font-family: "Poppins", serif;
  /* font-style: normal; */
  margin-top: 33px;
}

@media (max-width: 1680px) {
  .banner-content h1 {
    font-size: 6rem;
    line-height: 6rem;
  }

  .banner-content p {
    font-size: 1.2rem;
    /* margin-top: 21px; */
  }
}


@media (max-width: 980px) {
  .banner-content {
    top: 30%;
    left: 25%;
    transform: translate(-30%, -25%);
  }

  .banner-content h1 {
    font-size: 5rem;
    line-height: 5rem;
  }

  .banner-content p {
    font-size: 1rem;
    margin-top: 15px;
  }
}

@media (max-width: 660px) {
  .banner-content {
    top: 30%;
    left: 25%;
    transform: translate(-30%, -25%);
  }

  .banner-content h1 {
    font-size: 3rem;
    line-height: 3rem;
  }

  .banner-content p {
    font-size: 1rem;
    margin-top: 15px;
  }
}

@media (max-width: 430px) {
  .banner-content {
    top: 30%;
    left: 30%;
    transform: translate(-30%, -30%);
  }

  .banner-content h1 {
    font-size: 2.5rem;
    line-height: 2.5rem;
  }

  .banner-content p {
    font-size: 0.9rem;
    margin-top: 10px;
  }
}


.banner-content button {
  padding: 0.8rem 1.2rem;
  font-size: 1rem;
  background-color: #fff;
  color: #000;
  border: none;
  cursor: pointer;
  border-radius: 3px;
}

.banner img {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  height: 100vh;
  width: auto;
  object-fit: cover;
}

/* Canvas de WebGL para film grain */
#glCanvas {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 4;
}

/* AnimaciÃƒÆ’Ã‚Â³n para revelar la imagen de izquierda a derecha */
.wipe-in {
  clip-path: inset(0 100% 0 0);
  animation: wipeIn .6s linear forwards;
}

@keyframes wipeIn {
  from {
    clip-path: inset(0 100% 0 0);
  }

  to {
    clip-path: inset(0 0 0 0);
  }
}

#filtro-oscuro {
  position: absolute;
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background-color: #00000078;
  z-index: 4;
  mix-blend-mode: normal;
}

/* Fin del banner */
/* Estilo Home */

.width_1200 {
  min-width: 360px;
  max-width: 1200px;
  width: 100%;
}

.contenedor_2 {
  display: flex;
  grid-gap: 1em;
  margin: 1em;
  justify-content: space-between;
  justify-items: center;
  align-items: center;
  flex-direction: row;
  flex-wrap: wrap;
}

.contenedor_2 div {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  flex-direction: column;
  padding: 20px;
}

.text_block_1 {
  flex: 1 0 40%;
}

.text_block_2 {
  flex: 1 0 20%;
}

.contenedor_2 figure {
  width: 100%;
}

.contenedor_2 img {
  min-width: 100px;
  max-width: 330px;
  width: 100%;
  height: auto;
  /* Ensuring the images maintain their aspect ratio */
}

.teaser_heder {
  font-size: 4.5em;
  line-height: 4.6rem;
  color: #333;
  font-weight: 800;
}

.margin-top-20 {
  margin-top: 25px;
}

.margin-top-40 {
  margin-top: 45px;
  /* Adjusting to maintain consistent spacing */
}

.margin-top-60 {
  margin-top: 60px;
}

.liga-siple {
  line-height: 1.5;
  text-decoration: none;
  font-family: 'Poppins', sans-serif;
  font-weight: 800;
  font-style: normal;
  color: #1c7b91;
  transition: all 0.3s;
}

.liga-siple:hover {
  color: rgb(11, 81, 97);
  letter-spacing: 1px;
}

a.liga-boton {
  display: inline-block;
  width: fit-content;
  margin: 10px 0 40px 0;
  padding: 20px 30px;
  text-decoration: none;
  background-color: #1b7b91;
  color: #ffffff;
  border-radius: 4px;
  transition: background-color 0.3s;
}

a.liga-boton:hover {
  background-color: #155a68;
  /* Darker shade for hover effect */
}

a.boton_blanco {
  position: absolute;
  padding: 10px 40px;
  margin-top: 2px;
  font-size: 1.2rem !important;
  font-family: Poppins, sans-serif;
  font-weight: 300 !important;
  text-decoration: none;
  /* background-color: #ffffffc9; */
  color: rgb(255, 255, 255);
  border-radius: 2px;
  border: 1px solid #ffffff;
  transition: background-color 0.3s;
  width: fit-content;
}

a.boton_blanco:hover {
  background-color: #ffffff28;
  /* Darker shade for hover effect */
}

/* Inicia columa de 4 */
.boton_universal {
  display: inline-block;
  width: fit-content;
  margin: 10px 0 40px 0;
  padding: 20px 30px;
  font-size: 1.2rem !important;
  text-decoration: none;
  background-color: #1b7b91;
  color: #ffffff;
  border-radius: 4px;
  transition: background-color 0.3s;
  border: 0;
  cursor: pointer;
}

.boton_universal:hover {
  background-color: #5db7cb;
  /* Darker shade for hover effect */
}

.contenedor_4 {
  display: flex;
  gap: 20px;
  max-width: 1200px;
  margin: auto;
  padding: 40px;
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: center;
}

.columna {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.texto {
  padding-right: 20px;
}

.texto h2 {
  font-size: 32px;
  font-weight: bold;
}

.texto button {
  background-color: #0073e6;
  color: white;
  border: none;
  padding: 10px 15px;
  cursor: pointer;
  font-size: 16px;
  margin-top: 15px;
}

.texto button:hover {
  background-color: #005bb5;
}

.imagenes {
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.item {
  display: flex;
  min-width: 310px;
  max-width: 48%;
  width: 100%;
  gap: 15px;
  align-items: center;
  border-bottom: 1px solid #ddd;
  padding-bottom: 15px;
  flex-direction: column;
  flex-wrap: nowrap;
  justify-content: flex-start;
  /* flex: 1; */
}

.item img {
  width: 100%;
  height: auto;
  object-fit: cover;
  border-radius: 4px;
}

/* Responsivo para mÃ³viles */
@media (max-width: 768px) {
  .contenedor_4 {
    display: flex;
    flex-direction: column;
  }

  .imagenes {
    flex-direction: column;
  }

  .item {
    flex-direction: column;
    text-align: center;
  }

}

/* Fin de columna de 4 */
/* Inicia bloque de Proyectos */
#projects_section {
  position: relative;
  margin: auto;
  max-width: 1200px;
  width: 100%;
  padding: 40px;
}

#projects_section h2 {
  font-size: 2.5rem;
  font-weight: 800;
  margin-bottom: 0px;
  padding: 20px;
}

.projects-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 2rem;
  padding: 2rem;
  max-width: 1200px;
  margin: 0 auto;
}

.project-item {
  position: relative;
  overflow: hidden;
  border-radius: 6px;
  aspect-ratio: 20/30;
}

.project-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}

.project-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: rgba(0, 0, 0, 0.7);
  color: white;
  padding: 1rem;
  transform: translateY(100%);
  transition: transform 0.3s ease;
}

.project-item:hover .project-overlay {
  transform: translateY(0);
}

.project-item:hover img {
  transform: scale(1.05);
}

.project-overlay h3 {
  margin: 0 0 0.5rem 0;
  font-size: 1.2rem;
}

.project-overlay p {
  margin: 0;
  font-size: 0.9rem;
}

@media (max-width: 768px) {
  .projects-grid {
    grid-template-columns: 1fr;
    padding: 1rem;
  }
}



/* Inicia bloque de Services */

.separadorUniversal {
  border: 0;
  position: relative;
  height: 1px;
  max-width: 1200px;
  width: 100%;
  background-color: #ffffff;
  box-shadow: 0 1px 0 0 #e2e2e2;
}

.services-container {
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 20px;
  text-align: center;
}

.services-container .grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
  gap: 20px;
  margin-top: 20px;
}

.services-container .grid .service {
  padding: 20px;
  border-radius: 8px;
  text-align: left;
}

.service h2 {
  font-size: 1.5rem;
  margin-bottom: 10px;
}

.services-container .grid .service p {
  font-size: 1rem;
  color: #333;
}

.services-container .grid .icon-container {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 10px;
}

#mainBanner_container {
  position: relative;
  width: 100%;
  height: max-content;
}

#logosProductoras {
  position: absolute;
  margin-left: 60px;
  bottom: 10px;
  right: 10px;
  min-width: 200px;
  max-width: 800px;
  width: 100%;
  z-index: 99999;
}

.bv_block {
  margin-top: -65px;
  text-align: center;
  border-bottom: 1px solid #b8c1c9;
  width: 100%;
  background-color: #fff;
  padding: 40px 0;
}

.bv_title {
  font-size: 3.4rem;
  text-align: center;
  margin-top: 20px;
  font-family: 'Poppins', 'sans-serif';
  font-weight: 300;
  color: #6a7887;
  line-height: 3.6rem;
}

.bv_description {
  font-size: 1.2em;
  text-align: center;
  margin: 30px 0 30px 0;
  font-family: 'Poppins', 'sans-serif';
  font-weight: 300;
  color: #6a7887;
}

/* SecciÃ³n de contacto */
#contact {
  display: flex;
  max-width: 1200px;
  width: 100%;
  margin: 0 auto;
  padding: 40px 20px;
  font-family: Poppins, sans-serif;
  flex-direction: row;
  align-items: flex-start;
  flex-wrap: wrap;
}

#contact .item_2 {
  min-width: 340px;
  max-width: 1200px;
  width: 100%;
  flex: 1 0 48%;
  padding: 0 20px;
}

/* Formulario */
form {
  display: flex;
  flex-direction: column;
  gap: 3px;
}

#contact label {
  font-size: 1.3em;
  font-weight: 300;
  color: #a2a2a2;
}

input[type="text"],
input[type="email"],
textarea {
  width: 100%;
  padding: 10px;
  font-size: 16px;
  background-color: #e7e8e9;
  border: 1px solid #dbdbdb;
  border-radius: 4px;
  margin: 0 0 20px 0;
}

textarea {
  resize: vertical;
  /* Permite al usuario ajustar la altura */
}

input[type="submit"] {
  all: unset;
  width: 100px;
  padding: 10px 5px;
  border: 1px solid #888;
  text-align: center;
  cursor: pointer;
}

input[type="submit"]:hover {
  color: #666;
  /* Change the color on hover for submit button */
}

.small_text {
  font-size: 0.5em;
  color: #999;
}


/* Nodal Style starts here */

#videoModal {
  display: none;
  /* Se muestra desde el script */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgb(0 0 0 / 88%);
  z-index: 1000000000;
  /* blure backfafing content */
  backdrop-filter: blur(7px);
  /* Para mejor compatibilidad con Safari/iOS */
  -webkit-backdrop-filter: blur(7px);
}

.modal-content {
  position: relative;
  margin: auto;
  padding: 20px;
  background: #1b7b91;
  min-width: 300px;
  max-width: 1080px;
  width: 100%;
  border-radius: 5px;
}

.modal-content video {
  min-width: 300px;
  max-width: 1080px;
  width: 100%;
  margin: 0 auto;
  border-radius: 4px;
}

.close {
  position: absolute;
  top: -5px;
  right: 5px;
  cursor: pointer;
  font-size: 2rem;
  color: #ffffff;
}

/* SecciÃ³n de proyectos */

#projects_display {
  position: relative;
  margin: auto;
  max-width: 1200px;
  width: 100%;
  padding: 40px;
  text-align: center;
}

.projects-flex {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 30px;
}

.projects-item {
  flex: 1 1 200px;
  /* Ocupa 240px de base si hay espacio */
  max-width: 200px;
  /* No crezca mÃ¡s de 240px */
  min-width: 200px;
  /* No reduzca menos de 240px */
  transition: transform 0.3s ease-in-out;
}

.projects-item img {
  width: 100%;
  height: auto;
  transition: all 0.3s ease-in-out;
  border-radius: 6px;
  cursor: pointer;
}


.projects-item:hover {
  transform: scale(1.05);
}

/* Modal Container de Proyectos */
#projects_data_nodal_container {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  width: 100vw;
  height: 100vh;
  background: rgba(0, 0, 0, 0.8);
  z-index: 9999;
  overflow-y: auto;
  box-sizing: border-box;
  backdrop-filter: blur(5px);
}

/* Contenido inyectado */
#projects_dsp {
  position: relative;
  margin: 0 auto;
  max-width: 1200px;
  background: rgba(255, 255, 255, 0.8);
  z-index: 100000000;
  display: flex;
  flex-direction: column;
  align-content: center;
  flex-wrap: wrap;
  align-items: center;
  text-align: center;
  color: #666;
  box-shadow: 0 31px 80px #000000d4;
  padding: 20px;
  border-radius: 6px;
}

/* BotÃ³n de cierre */
#close-nodal {
  display: block;
  text-decoration: none;
  color: #454545;
  padding: 2px 12px;
  border-radius: 5px;
  position: absolute;
  top: 10px;
  font-weight: 600;
  font-size: 1.7rem;
  right: 10px;
  z-index: 100000001;
  border: 1px solid #777;
  transition: all 0.3s ease;
  cursor: pointer;
}

#close-nodal:hover {
  background: #f4f4f4;
}

#close-nodal:active {
  transform: scale(0.95);
}

ul.development {
  display: flex;
  font-size: 1.1rem;
  list-style: none;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

ul.development li {
  padding: 15px 20px;
}

ul.development li:nth-last-child(odd) {
  border-left: 10px solid #cacaca;
}

ul.development li:nth-last-child(even) {
  background-color: #ffffff;
  border-left: 10px solid #1093b0;
}

#video_cont_proj,
#img_cont {
  position: relative;
  padding: 20px;
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 1000px;
  width: 100%;
  margin: 10px auto 40px auto;
  background-color: #000000;
  border-radius: 4px;
  box-shadow: 0 2px 10px rgba(0, 0, 0, 0.5);
  flex-direction: column;
  flex-wrap: wrap;
  gap: 20px;
}

#video_cont_proj video {
  width: 100%;
  height: auto;
  border-radius: 4px;
}

#img_cont img {
  min-width: 194px;
  max-width: 1000px;
  width: 100%;
  height: auto;
  border-radius: 4px;
}

.video-container-concepts {
  display: flex;
  width: 100%;
  position: relative;
  height: auto;
  justify-content: center;
  border-radius: 4px;
  overflow: hidden;
}

.video-container-concepts video {
  width: 100%;
  height: auto;
  transform: scale(1.05);
  object-fit: cover;
  border-radius: 5px;
  /* Added for styling */
  transition: transform 0.3s ease;
}