*{
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

body, html{
    height: 100%;
    font-family: 'Lucida Sans Regular';
    user-select: none;
    -webkit-user-select: none;
    -moz-user-select: none;
    -ms-user-select: none;    
    -webkit-text-size-adjust: 100%; /* Para iOS WebView */
    text-size-adjust: 100%;         /* Para Android WebView */
}



/* ==============================================================  E S T I L O S  I N D E X  ============================================================================== */

/* E S T I L O S   P A R A   V I D E O */
#videofondo{
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: -1;
}

/* C A P A  E N C I M A  D E  V I D E O */

.principal{
    position: relative;
    z-index: 1;
    color: white;
    height: 100%;
    width: 100%;
}


/* N A V B A R   P R O Y E C T O S */

.navbar2{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1em 2em;
    background: rgba(18, 31, 43, 1);
    position: fixed;
    width: 100%;
    z-index: 1000;
}



/* N A V B A R */
.navbar{
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1em 2em;
    background: rgba(0, 0, 0, 0.5);
    position: fixed;
    width: 100%;
    z-index: 1000;
}



/* N O M B R E */
.logo{
    font-size: 2em;
    font-weight: bold;
    color: white;
}


/* P E S T A Ñ A S */

.nav-links{
    list-style: none;
    display: flex;
    gap: 2em;
}


/* L I N K S   D E   P E S T A Ñ A S */

.nav-links li a{
    color: white;
    text-decoration: none;
    font-weight: bold;
    font-size: 1.2em;
}


/* C H E C K B O X   M E N U   D E S P L E G A B L E   R E S P O N S I V O */
#menutrigger{
    display: none;
}


/* I C O N O   M E N U   D E S P L E G A B L E */
.menuicono{
    display: none;
    font-size: 2em;
    cursor: pointer;
    user-select: none;
}


/* C O N T E N I D O  C E N T R A L */
.contenido-central{
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    background: rgba(0, 0, 0, 0.5);
    padding: 1em 2em;
}

.contenido-central h1{
    font-size: 3rem;
    margin-bottom: .5em;
}


.contenido-central p{
    font-size: 1.5em;
}


.ver-servicios{
    position: absolute;
    top: 65%;
    left: 50%;
    transform: translateX(-50%);
    text-decoration: none;
    color: white;
    font-size: 20px;
    font-weight: bold;
    background: rgba(0, 140, 255, 0.5);
    padding: .8em .8em;
    border-radius: 10px;
    text-align: center;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    box-sizing: border-box;
}

.ver-servicios:hover{
    background: rgba(0, 140, 255, 1);
    font-size: 1.5em;
}


/* ==============================================================  E S T I L O S  A C E R C A  ============================================================================== */


/* V E N T A N A  C O M P L E T A */

body.pestañas{
    background: radial-gradient(#0a454e, #184257, #1A334A);
    min-height: 100vh;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
}

/* T I T U L O */

h2{
    color: white;
    text-align: center;
    margin-top: 2.5em;
    margin-bottom: 1em;
    font-size: 3em;
    text-shadow: 2px 2px 5px rgba(0,0,0,0.4);
}


/* C O N T E N E D O R  C E N T R A L  A C E R C A */

.boxAcerca{    
    display: flex;
    justify-content: center;
    align-items: center;
    
    flex-direction: row;
    gap: 2em;
    width: 100%;
    margin: 0 auto;
    background-color: rgba(18, 31, 43, .8);
    padding-left: 0em;    
    box-shadow: 0 0 20px rgba(0, 0, 0, 0.8);
    line-height: 1.6;
    box-sizing: border-box;      
}

/* I M A G E N*/

.boxAcerca img{
    max-width: 350px;        
    box-shadow: inset 0 0 40px 20px rgba(0, 0, 0, 0.6);
    animation: animaAparecer 2s ease forwards;    
}



/* P A R R A F O */

.boxAcerca p{
    color: white;
    font-family: 'Lucida Sans Regular';
    margin: 0;
    font-size: 1.2em;
    padding-left: 10px;
    padding-right: 10px;
    text-align: justify;        /* <- Esto es lo que te falta */
    word-break: break-word;     /* <- Previene desbordamiento por palabras largas */
    max-width: 1300px;           /* <- Evita que el párrafo sea demasiado ancho */
    animation: animaAparecer 2s ease forwards;
}


/* L E Y E N D A   D E   I C O N O S   D E   T E C N O L O G I A S */

.leyenda{
    margin-top: 1em;
    text-align: center;
    font-size: 1.5em;
    font-weight: bold;
    color: white;
}


/* I C O N O S  D E  T E C N O L O G I A S */

.iconos{
    margin-top: 1.5em;
    display: flex;
    align-items: center;
    justify-content: center;    
    animation: animaAparecer 2s ease forwards;
    gap: 3em;
}

.iconos li {
    list-style: none;
    display: flex;    
}

.iconos li a{
    text-decoration: none;    
}

.iconos li:hover{
    animation: pulse 0.6s ease-in-out;
}

.iconos li a img{
    width: 100px;
    height: 100px;
}

/* ===========================================================  E S T I L O S  P R O Y E C T O S  =========================================================================== */

.proyectos{
    padding: 0em 1em;
    text-align: center;
    flex: 1;
}

.proyectos h2{
    font-size: 2.5em;
    margin-bottom: .5em;
}


#Introduccion-Proyectos{
    color: white;
    font-size: 1.2em;
    text-align: center;   
}

.carrusel {
  max-width: 800px;
  margin: 2rem auto;
  position: relative;
  text-align: center;
  background-color: #fff;
  padding: 1rem;
  box-shadow: 0 2px 10px rgba(0,0,0,0.1);
  border-radius: 8px;
}

.carrusel iframe {
  width: 100%;
  height: 450px;
  background-color: #000;
  border-radius: 8px;
}

.carrusel .info {
  margin-top: 1rem;
}

.carrusel .info h3 {
  margin: 0.5rem 0;
  font-size: 1.4rem;
  color: #222;
}

.carrusel .info p {
  font-size: 1rem;
  color: #242424;
}

.carrusel .btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(255,255,255,0.8);
  border: none;
  font-size: 2rem;
  padding: 0.2rem 0.8rem;
  cursor: pointer;
  z-index: 10;
  border-radius: 50%;
  transition: background 0.3s;
}

.carrusel .btn:hover {
  background: rgba(255,255,255,1);
}

#prev { left: -1.5rem; }
#next { right: -1.5rem; }

@media (max-width: 600px) {
  .carrusel iframe {
    height: 240px;
  }
}


/* ==============================================================  E S T I L O S  S E R V I C I O S  ======================================================================= */

.servicios{
    padding: 4em 2em;
    text-align: center;
    flex: 1;    
}

.servicios h2{
    font-size: 2em;
    margin-bottom: 3em;
}


.servicios-cards{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 2em;
}

.card-individual{
    background: rgba(0, 0, 0, 0.5);
    border-radius: 1em;
    padding: 2.5em 1.5em;
    width: 23em;
    box-shadow: 0 4px 12px rgba(0,0,0,0.1);
    transition: transform 0.3s ease;
}

.card-individual:hover{
    transform: translateY(-2em);
}

.card-individual img{
    width: 100px;
    height: 100px;
    margin-bottom: 1em;
}


.card-individual h3{
    color: white;
    font-size: 1.5em;
    margin-bottom: 1em;
}

.card-individual p{
    color: white;
    font-size: 1em;
    text-align:left;
}


.card-individual #Imgcardindividual2{
    width: 100px;
    height: 90px;
    margin-bottom: 1.5em;
}





/* ==============================================================  E S T I L O S  C O N T A C T O  ======================================================================= */

.contenedor-formulario{
    max-width: 55em;
    margin: 0 auto;
    text-align: center;
}

.parrafos-formulario{
    margin: 10px 0;
    word-break: break-word;
    color: white;
    text-align: justify; 
    font-size: 1.2em;   
}

/* Estilo general del formulario */
form {
    background-color: #f9f9f9;
    border: 1px solid #ddd;
    padding: 1.5em;
    max-width: 32em;
    margin: 3em auto 3em auto;
    border-radius: 1em;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.05);
}

/* Etiquetas */
form label {
    display: block;
    margin-bottom: 6px;
    font-weight: bold;
    color: #000000;
}

/* Campos de texto y email */
form input[type="text"],
form input[type="email"],
form textarea {
    width: 100%;
    padding: 10px;
    border: 1px solid #ccc;
    border-radius: 8px;
    margin-bottom: 15px;
    font-size: 16px;
    box-sizing: border-box;
}

/* Botón de enviar */
form button[type="submit"] {
    background-color: #007bff;
    color: white;
    border: none;
    padding: 12px 25px;
    font-size: 16px;
    border-radius: 8px;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

form button[type="submit"]:hover {
    background-color: #0056b3;
}


.contacto-principal{
    margin-top: 3em;
    display: flex;
    justify-content: center;
    gap: 2.5em;
    flex-wrap: wrap;   
     
}

.tarjetas-contacto{
    width: 14em;
    border-radius: 1em;
    box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
    padding: 2em 0em;
    text-align: center;
    transition: transform 0.3s;
    background: rgba(0, 0, 0, 0.5);
}


.tarjetas-contacto:hover{
    transform: translateY(-15px);
}

.tarjetas-contacto img{
    width: 50px;
    height: 50px;
    margin-bottom: 1em;
}

.tarjetas-contacto a{
    text-decoration: none;
    color: white;
}

.tarjetas-contacto p {
    margin: 10px 0;
    word-break: break-word;
    color: white;
}

#seccionContacto {
  flex: 1;
}



/* ========================================================================= F O O T E R  L E G A L ======================================================================== */

.footer-legal {
  position: absolute;
  bottom: 0;
  width: 100%;
  text-align: center;
  padding: 10px;
  font-size: 0.8rem;
  background: rgba(0, 0, 0, 0.4); /* Semitransparente */
  color: white;
}

.footer-legal a {
  color: #a0d8ff; /* Azul claro o el que combine con tu diseño */
  text-decoration: none;
  margin: 0 5px;
}

.footer-legal a:hover {
  text-decoration: underline;
}


/* F O O T E R   P A R A  I N D E X  Y  S E R V I C I O S  D E B I D O   A  P A G I N A S  C O N  S C R O L L */

.footer{  
  width: 100%;
  text-align: center;
  padding: 10px;
  font-size: 0.8rem;
  background: rgba(0, 0, 0, 0.4); /* Semitransparente */
  color: white;
  margin-top: 3em;
}

.footer a {
  color: #a0d8ff; /* Azul claro o el que combine con tu diseño */
  text-decoration: none;
  margin: 0 5px;
}

.footer a:hover {
  text-decoration: underline;
}



/* ========================================================================= A N I M A C I O N E S ======================================================================== */


@keyframes animaAparecer {
    from{
        opacity: 0;
        transform: translateY(20px);
    }
    to{
        opacity: 1;
        transform: translateY(0);
    }
}


@keyframes pulse { 
    0% {transform: scale(1);}
    50% {transform: scale(1.5);}
    100% {transform: scale(1);}
}

/* ============================================================================== Responsivo ============================================================================== */

@media (max-width: 1600px){
    .ver-servicios{        
        top: 75%;
    }

    .servicios{
    padding: 0em 1em;    
    }

    .servicios h2{
        margin-bottom: 2em;
    }


    .servicios-cards{
        gap: 1.5em;
    }
    .card-individual{
        width: 17em;
    }

    .card-individual h3{
        font-size: 1.1em;
        margin-bottom: 1em;
    }

    .card-individual p{    
    font-size: .85em;    
    }

    
}



@media (max-width: 885px){


    /* I N D E X */

    .ver-servicios{        
        top: 80%;
    }

    /* A C E R C A  R E S P O N S I V O */
    .boxAcerca{
        flex-direction: column;
        padding: 1em;
    }

    .boxAcerca img{
        max-width: 80%;
        height: auto;
    }

    .boxAcerca p{
        font-size: 1em;
        padding: 0 1em;
    }

    .iconos{
        flex-wrap: wrap;
        gap: 1.5em;
        padding: 1em;
    }

    .iconos li a img{
        width: 70px;
        height: 70px;
    }

    .leyenda{
        font-size: 1.2em;
    }

    /* N A V B A R   R E S P O N S I V O */

    .nav-links{
        flex-direction: column;
        background: rgba(0, 0, 0, 0.9);
        position: absolute;
        top: 100%;
        left: 0;
        width: 100%;
        display: none;
        gap: 0em;
        
    }

    .nav-links li:hover{
        background: rgba(0, 140, 255, 1);
    }

    .nav-links li{
        padding: 1em 1em;
    }

    #menutrigger:checked ~ .nav-links{
        display: flex;
    }

    .menuicono{
        display: block;
        color: white;
    }

    .card img{    
    height: 150px;
    }

    .card3 img{
        height: 150px;    
    }

    .card4 img{
        height: 150px;    
    }

    .card5 img{
        width: 80px;
        height: 80px;    
    }

    .card6 img{
        width: 80px;
        height: 80px;    
    }

    .contenedor-formulario{
    max-width: 35em;
    }
}




@media (max-width: 640px) {
    .ver-servicios{
    top: 80%;   
    padding: .8em .8em;    
    }

    /* P R O Y E C T O S */

    .card img{    
    height: 200px;
    }

    .card3 img{
        height: 200px;    
    }

    .card4 img{
        height: 200px;    
    }

    .card5 img{
        width: 80px;
        height: 80px;    
    }

    .card6 img{
        width: 80px;
        height: 80px;    
    }

    .contenedor-formulario{
        max-width: 30em;
    }

    .parrafos-formulario{
        font-size: 1em;   
    }


    form {
        padding: 1.2em;
        max-width: 25em;
    }
}

@media (max-width: 480px) {

    /* I N D I E X*/
    .ver-servicios{
    top: 80%;   
    padding: .8em .8em;
    text-align: center;
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    box-sizing: border-box;    
    }

    /* P R O Y E C T O S */

    .card img{    
    height: 150px;
    }

    .card3 img{
        height: 150px;    
    }

    .card4 img{
        height: 150px;    
    }

    .card5 img{
        width: 80px;
        height: 80px;    
    }

    .card6 img{
        width: 80px;
        height: 80px;    
    }

    .contenedor-formulario{
        max-width: 25em;
    }

    .parrafos-formulario{
        font-size: 1em;   
    }


    form {
        padding: 1.1em;
        max-width: 25em;
    }
}

@media (max-width: 439px){

    .ver-servicios{
        position: absolute;
        top: 78%;
        left: 50%;
        transform: translateX(-50%);
        font-size: 18px;
        padding: .7em .7em;
        text-align: center;
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
        box-sizing: border-box;
    }

    .ver-servicios:hover{
        background: rgba(0, 140, 255, 1);
        font-size: 19px;
    }

    .contenedor-formulario{
        max-width: 20em;
    }

    .parrafos-formulario{
        font-size: 1em;   
    }


    form {
        padding: 1em;
        max-width: 20em;
    }
}