@import url('https://fonts.googleapis.com/css2?family=Righteous&family=Work+Sans:ital,wght@0,100..900;1,100..900&display=swap');

*{
    box-sizing: border-box;
    font-family: 'Work Sans';
    margin: 0;
    padding: 0;
}

html{
    scroll-behavior: smooth;
}

body, html{
   height: 100%;
}

/*MENU*/
.contenedor-header{
    background: #1e231e;
    position: fixed;
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 15px 20px;
    margin: auto;
    z-index: 20;
}

.contenedor-header .logo a{
   display: flex;
    font-family: Righteous;
    font-size: 36px;
    color: #1cb698;
    text-decoration: none;
    font-weight: bold;
}

.contenedor-header ul{
    display: flex;
    list-style: none;
}

.contenedor-header ul li a{
    text-align: none;
    text-decoration: none;
    color: #fff;
    margin: 0 15px;
    padding: 3px;
    transition: 1s;
}

.contenedor-header ul li a:hover{
    color: #237a69;
}

.nav-responsive{
    background-color: #1cb698;
    color: #fff;
    padding: 5px 10px;
    border-radius: 5px;
    cursor: pointer;
    display: none;
}

 .contenedor-header a{
   text-decoration: none;
   color: #fff;
 }

.retorno{
   background-color: #1cb698;
   color: #fff;
   padding: 5px 10px;
   border-radius: 5px;
   cursor: pointer;
}



/* SECCION INICIO */

.inicio{
    background: linear-gradient(to top, rgba(30,35,38,.8), rgba(30,35,38,1)),
    url(../images/fondo.jpg);
    background-size: cover;
    height: 100vh;
    color: #fff;
    display: flex;
    align-items: center;
}

.inicio .banner{
    padding: 20px;
    background-color: #1e2326;
    max-width: 330px;
    margin: auto;
    text-align: center;
    border-radius: 40px;
}

.inicio .banner img{
    margin: auto;
    width: 80%;
    border-radius: 50%;
    border: 10px solid #1cb698;
    display: block;
    margin-top: 40px;
}

.inicio .banner h1{
    margin-top: 32px;
    font-family: Righteous;
    font-size: 35px;
}

.inicio .banner h2{
    margin-top: 10px;
    font-size: 17px;
    font-weight: normal;
}

.inicio .banner .redes a{
    display: inline-block;
    margin: 30px 5px;
    color: #fff;
    text-decoration: none;
    border: 1px solid #fff;
    border-radius: 50%;
    width: 42px;
    height: 42px;
    font-size: 20px;
    line-height: 42px;
    transition: .5s;
}

.inicio .banner .redes a:hover{
    background-color: #1cb698;
}


/* SECCION SOBRE MI */

.sobremi{
    background-color: #1e2326;
    color: #fff;
    padding: 50px 20px;
}

.sobremi .contenedor-seccion{
    max-width: 1100px;
    margin: auto;
}

/* Título principal */
.sobremi h2{
    font-size: 48px;
    font-family: 'Righteous';
    text-align: center;
    padding: 20px 0;
}

/* Descripción profesional */
.sobremi .contenedor-seccion > p{
    font-size: 17px;
    line-height: 1.6;
    margin-bottom: 20px;
    text-align: justify;
}

/* Nombre destacado */
.sobremi .contenedor-seccion > p span{
    color: #1CB698;
    font-weight: bold;
}

/* SECCION DE INTERESES */

.sobremi .seccion-intereses{
    margin-top: 35px;
}

/* Título de intereses */
.sobremi .seccion-intereses h3{
    font-size: 28px;
    font-family: 'Righteous';
    margin-bottom: 25px;
    text-align: left;
}

/* Contenedor de tarjetas */
.sobremi .contenedor-intereses{
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 15px;
}

/* Tarjeta individual */
.sobremi .intereses{
    width: 100px;
    height: 100px;
    background-color: #252A2E;
    border-radius: 10px;

    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    font-size: 11px;
    font-weight: bold;
    text-align: center;

    transition: background-color .3s ease;
}

/* Efecto hover */
.sobremi .intereses:hover{
    background-color: #1CB698;
}

/* Iconos */
.sobremi .intereses i{
    font-size: 30px;
    margin-bottom: 10px;
}


/* SECCION HABILIDADES */

.habilidades{
    background-color: #252A2E;
    color: #fff;
    padding: 50px 20px;
}

.habilidades .contenedor-seccion{
    max-width: 1100px;
    margin: auto;
}

/* Título principal */
.habilidades h2{
    font-size: 48px;
    font-family: 'Righteous';
    text-align: center;
    padding: 20px 0;
}

/* Contenedor de categorías */
.habilidades .contenedor-habilidades{
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
}

/* Tarjeta de categoría */
.habilidades .categoria-habilidad{
    background-color: #1e2326;
    padding: 25px;
    border-left: 3px solid #1CB698;
    border-radius: 8px;
    transition: transform .3s ease, background-color .3s ease;
}

/* Efecto hover */
.habilidades .categoria-habilidad:hover{
    transform: translateY(-4px);
    background-color: #20272b;
}

/* Nombre de categoría */
.habilidades .categoria-habilidad h3{
    font-size: 21px;
    font-family: 'Righteous';
    color: #1CB698;
    margin-bottom: 12px;
}

/* Tecnologías */
.habilidades .categoria-habilidad p{
    font-size: 17px;
    line-height: 1.6;
    color: #fff;
}

/* RESPONSIVE HABILIDADES */
@media screen and (max-width:900px){

    .habilidades .contenedor-habilidades{
        grid-template-columns: repeat(2, 1fr);
    }
}

@media screen and (max-width:600px){

    .habilidades .contenedor-habilidades{
        grid-template-columns: 1fr;
    }
}


/* SECCION CURRICULUM */

.curriculum{
    background-color: #1e2326;
    color: #fff;
    padding: 50px 20px;
}

.curriculum .contenedor-seccion{
    max-width: 1100px;
    margin: auto;
}

/* Título principal */
.curriculum h2{
    font-size: 48px;
    font-family: 'Righteous';
    text-align: center;
    padding: 20px 0;
}

/* Dos columnas: educación y experiencia */
.curriculum .fila{
    display: flex;
    justify-content: space-between;
    gap: 30px;
}

.curriculum .fila .col{
    width: 50%;
}

/* Títulos de cada columna */
.curriculum .fila .col h3{
   font-size: 28px;
   font-family: 'Righteous';
   margin-bottom: 25px;
}

/* Tarjetas */
.curriculum .fila .item{
   background-color: #252A2E;
   padding: 25px;
   margin-bottom: 25px;
   border-radius: 8px;
   transition: transform .3s ease, background-color .3s ease;
}

/* Línea de Educación */
.curriculum .fila .izq{
   border-right: 3px solid #1CB698;
}

/* Línea de Experiencia */
.curriculum .fila .der{
   border-left: 3px solid #1CB698;
}

.curriculum .fila .item:hover{
   transform: translateY(-4px);
   background-color: #20272b;
}

/* Cargo o institución */
.curriculum .fila .item h4{
    font-size: 20px;
    margin-bottom: 10px;
}

/* Formación obtenida */
.curriculum .fila .item .logro{
    display: block;
    color: #1CB698;
    font-weight: bold;
    margin-bottom: 10px;
}

/* Empresa */
.curriculum .fila .item .casa{
    display: block;
    color: #1CB698;
    font-size: 20px;
    font-weight: bold;
    margin-bottom: 10px;
}

/* Fechas */
.curriculum .fila .item .fecha{
    display: block;
    font-size: 16px;
}

/* Enlace del CV */
.curriculum a{
    text-decoration: none;
}

/* Botón Descargar CV */
.curriculum button{
    cursor: pointer;
    background-color: transparent;
    border: 2px solid #fff;
    width: fit-content;
    display: block;
    margin: 30px auto 20px;
    padding: 10px 22px;
    font-size: 16px;
    color: #fff;
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.curriculum button .overlay{
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background-color: #1CB698;
    transition: width .4s ease;
    z-index: -1;
}

.curriculum button:hover .overlay{
    width: 100%;
}

/* RESPONSIVE CURRICULUM */
@media screen and (max-width:700px){

    .curriculum .fila{
        display: block;
    }

    .curriculum .fila .col{
        width: 100%;
    }

    .curriculum .fila .derecha{
        margin-top: 40px;
    }

    /* Educación conserva orientación hacia la derecha */
    .curriculum .fila .izq{
        border-right: 3px solid #1CB698;
        border-left: none;
    }

    /* Experiencia conserva orientación hacia la izquierda */
    .curriculum .fila .der{
        border-left: 3px solid #1CB698;
        border-right: none;
    }
}


 /* SECCION PORTFOLIO */
.portafolio{
    background-color: #252A2E;
    color: #fff;
    padding: 50px 20px;
 }
 .portafolio .contenedor-seccion{
    max-width: 1100px;
    margin: auto;
 }
 .portafolio h2{
    font-size: 48px;
    font-family: 'Righteous';
    text-align: center;
    padding: 20px 0;
 }
 .portafolio .galeria{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-around;
 }
 .portafolio .galeria .proyecto{
    position: relative;
    max-width: 340px;
    height: fit-content;
    margin: 10px;
    cursor: pointer;
 }
 .portafolio .galeria .proyecto img{
    width: 100%;
    display: block;
 }
 .portafolio .galeria .proyecto .overlay{
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    text-align: center;
    background: linear-gradient(rgba(28,182,152,.8), rgba(28,182,152,.8));
    display: flex;
    flex-direction: column;
    justify-content: center;
    transition: 1s;
    font-size: 18px;
    letter-spacing: 3px;
    opacity: 0;
 }
 .portafolio .galeria .proyecto .overlay a{
    text-decoration: none;
    color: #fff;
 }
 .portafolio .galeria .proyecto .overlay h3{
    margin-bottom: 20px;
    transition: 1s;
 }
 .portafolio .galeria .proyecto .overlay:hover{
    opacity: 1;
 }
 .portafolio .galeria .proyecto .overlay:hover h3{
    margin-bottom: 0px;
 }

 .portafolio a{
   text-decoration: none;
 }

/* Modal de detalle de proyecto */
.modal.oculto { display: none; }

.modal {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.7);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 999;
}

.modal-contenido {
  background: #fff;
  width: 90%;
  max-width: 1100px;
  height: 80vh;
  display: flex;
  border-radius: 10px;
  overflow: hidden;
  position: relative;
}

.modal-info {
  width: 50%;
  padding: 30px;
  overflow-y: auto;
  color: #333;
  text-align: left;
}

.modal-fechas {
  color: #333;
  font-size: 14px;
  margin-top: 5px;
  margin-bottom: 15px;
}

.modal-imagen {
  width: 100%;
  border-radius: 8px;
  margin-bottom: 10px;
  display: block;
}

.modal-info .etiqueta {
  font-weight: bold;
  color: #158f73;
}

.modal-info .dato {
  margin-bottom: 8px;
  line-height: 1.4;
}

.modal-info .titulo-descripcion {
  margin-top: 5px;
  margin-bottom: -5px;
  display: block;
}

#modal-titulo {
  font-family: 'Righteous';
  color: #1CB698;
  font-size: 28px;
  margin-bottom: 6px;
}

#modal-descripcion p {
  margin: 12px 0px;
  line-height: 1.5;
  text-align: justify;
  hyphens: auto;
}

#modal-descripcion ul {
  margin: 10px 0;
  padding-left: 20px;
}

#modal-descripcion li {
  margin-bottom: 6px;
  line-height: 1.4;
}

.modal-mapa { width: 50%; }
#mapa-detalle { width: 100%; height: 100%; }

.modal .cerrar {
  position: absolute;
  top: 10px;
  right: 15px;
  font-size: 28px;
  cursor: pointer;
  background: none;
  border: none;
  color: #333;
  z-index: 2000;
}

@media (max-width: 768px) {
  .modal-contenido { flex-direction: column; height: 90vh; }
  .modal-info { width: 100%; height: 50%; order: 2; }
  .modal-mapa { width: 100%; height: 50%; order: 1; }
}

.portafolio button {
  cursor: pointer;
  background-color: transparent;
  border: 2px solid #fff;
  display: block;
  margin: 20px auto 0;
  padding: 10px 22px;
  font-size: 16px;
  color: #fff;
  position: relative;
  z-index: 10;
}

.portafolio button .overlay{
   position: absolute;
   top: 0;
   left: 0;
   width: 0;
   height: 100%;
   background-color: #1CB698;
   z-index: -1;
   transition: 1s;
}
.portafolio button:hover .overlay{
   width: 100%;
}


/* SECCION CONTACTO */
.contacto{
    background-color: #1e2326;
    color: #fff;
    padding: 50px 20px;
}

.contacto .contenedor-seccion{
    max-width: 1100px;
    margin: auto;
}

.contacto h2{
    font-size: 48px;
    font-family: 'Righteous';
    text-align: center;
    padding: 20px 0;
}

/* Contenedor del formulario */
.contacto .fila{
    width: 100%;
}

.contacto .col{
    width: 100%;
}

/* Limita y centra el ancho del formulario */
.contacto form.col{
    max-width: 760px;
    margin: 0 auto;
}

/* Campos del formulario */
.contacto .col input,
.contacto .col textarea{
    display: block;
    width: 100%;
    padding: 18px;
    border: none;
    margin-bottom: 20px;
    background-color: #252A2E;
    color: #fff;
    font-size: 18px;
}

/* Permite redimensionar el mensaje solo verticalmente */
.contacto .col textarea{
    resize: none;
    min-height: 180px;
}



/* Botón y mensaje de estado */
.acciones-formulario{
    display: flex;
    align-items: center;
    gap: 15px;
    flex-wrap: wrap;
}

/* Botón enviar */
.contacto button{
    cursor: pointer;
    background-color: transparent;
    border: 2px solid #fff;
    width: fit-content;
    padding: 10px 22px;
    font-size: 16px;
    color: #fff;
    position: relative;
    overflow: hidden;
    z-index: 1;
}

.contacto button .overlay{
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background-color: #1CB698;
    transition: width .4s ease;
    z-index: -1;
}

.contacto button:hover .overlay{
    width: 100%;
}

/* Mensaje de estado del formulario */
.mensaje-formulario{
    color: #1CB698;
    font-size: 14px;
    font-weight: 600;
    opacity: 0;
    transition: opacity .3s ease;
}

.mensaje-formulario.visible{
    opacity: 1;
}


/* FOOTER */
footer{
   background-color: #252A2E;
   color: #fff;
   padding: 50px 0 30px 0;
   text-align: center;
   position: relative;
   width: 100%;
}

footer .redes a{
   color: #fff;
   display: inline-block;
   text-decoration: none;
   border: 1px solid #fff;
   border-radius: 100%;
   width: 42px;
   height: 42px;
   line-height: 42px;
   margin: 40px 5px;
   font-size: 20px;
   transition: .3s;
}

footer .arriba{
   display: block;
   width: 50px;
   height: 50px;
   background-color: #1CB698;
   color: #fff;
   position: absolute;
   left: 50%;
   transform: translate(-50%);
   top: -25px;
   border-radius: 50%;
   line-height: 50px;
   font-size: 18px;
}

/* SECCION DE MAPA*/

.contenedor-mapa{
    display: flex;
}
.map{
    height: calc(100vh - 74px);
    width: 100%;
    z-index: 5;
    margin-top: 74px;  
}


/* SECCION RESPONSIVE */
@media screen and (max-width:980px){
    nav{
        display: none;
    }
    .nav-responsive{
        display: block;
    }
    nav.responsive{
        display: block;
        position: absolute;
        right: 0;
        top: 75px;
        background-color: #252A2E;
        width: 180px;
    }
    nav.responsive ul{
        display: block !important;
    }
    nav.responsive ul li{
        border-bottom: 1px solid #fff;
        padding: 10px 0;
    }
 }

 @media screen and (max-width:700px){
    .sobremi .contenedor-seccion > p{
        text-align: left;
    }

    .sobremi .contenedor-intereses{
        justify-content: center;
    }

    .portafolio .galeria{
        display: block;
        width: 100%;
    }
    .portafolio .galeria .proyecto{
        max-width: 100%;
    }
    .portafolio .galeria .proyecto img{
        width: 100%;
    }

    .contacto .fila{
        display: block;
    }
    .contacto .fila .col{
        width: 100%;
    }
}
