@import url('https://fonts.googleapis.com/css2?family=Caveat:wght@400..700&family=Libre+Baskerville:ital,wght@0,400;0,700;1,400&family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap');

:root{
    --nav-buttons-color: rgb(228, 252, 250);
    --nav-background-color: rgb(48, 48, 184);
    --body-background-color: rgb(32, 32, 39);
}

.gradient-background {
  background: linear-gradient(300deg, var(--body-background-color),rgb(92, 94, 93));
  background-size: 180% 180%;
  animation: gradient-animation 18s ease infinite;
}

@keyframes gradient-animation {
  0% {
    background-position: 0% 50%;
  }
  50% {
    background-position: 100% 50%;
  }
  100% {
    background-position: 0% 50%;
  }
}

.grid{
  display:grid;
  grid-template-columns: auto 1fr auto;
  grid-template-rows: auto 1fr auto;
  grid-template-areas:
  "navBar navBar navBar"
  ". content ."
  "footer footer footer";
  min-height:100%;
  min-width:100%;
}

.coverAll{
  border-top:solid 1px white;
  grid-area: content;
  min-height:100%;
}

*{
    margin:0;
    padding:0;
}

html{
  height:100%;
}

body{
    height:100%;
    width:100%;
    font-family: Poppins, Arial, Helvetica, sans-serif;
    background-color:var(--body-background-color);
}

/* 

Inicio

*/

.switch {
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 34px;
  }
  
  /* Hide default HTML checkbox */
  .switch input {
    opacity: 0;
    width: 0;
    height: 0;
  }
  
  /* The slider */
  .slider {
    position: absolute;
    cursor: pointer;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-color: #ccc;
    box-shadow: 0px 0px 10px black;
    -webkit-transition: .4s;
    transition: .4s;
  }
  
  .slider::before {
    position: absolute;
    content: "";
    height: 26px;
    width: 26px;
    left: 4px;
    bottom: 4px;
    background-color: white;
    background-image:url('../img/united_kingdom_2626.png');
    background-position:center;
    background-size:cover;
    box-shadow: 0px 0px 10px black;
    -webkit-transition: .4s;
    transition: .4s;
  }

  input:checked + .slider {
    background-color: #ccc;
  }

  input + .slider{
    background-color: #ccc;
  }
  
  input:focus + .slider {
    box-shadow: 0 0 1px #2196F3;
    box-shadow: 0px 0px 10px black;
  }
  
  input:checked + .slider:before {
    -webkit-transform: translateX(26px);
    -ms-transform: translateX(26px);
    transform: translateX(26px);
    background-image:url('../img/spain_2626.png');
    background-position:center;
    background-size:cover;
    box-shadow: 0px 0px 10px black;
  }
  
  /* Rounded sliders */
  .slider.round {
    border-radius: 34px;
    box-shadow: 0px 0px 10px black;
  }
  
  .slider.round:before {
    border-radius: 50%;
    box-shadow: 0px 0px 10px black;
  }

nav a{
    display:flex;
    justify-content: center;
    align-items: center;
    width:150px;
    height:50px;
    text-decoration:none;
    color: white;
    background-color: var(--body-background-color);
    border-radius:10px;
    /* box-shadow: 0px 0px 10px black; */
    position:relative;
}

.active{
  background-color:var(--body-background-color);
}

a.shinyBorder:not(.active):hover{
    z-index:10;
    scale:1.1;  
    background-color:var(--body-background-color);
}

@property --angle{
syntax: "<angle>";
initial-value:0deg;
inherits: false;
}

.active::after, .active::before{
    --angle:0deg;
    content:'';
    position:absolute;
    height:100%;
    width:100%;
    background-color:white;
    border-radius:10px;
    top:50%;
    left:50%;
    translate: -50% -50%;
    z-index:-1;
    padding:1px;
    background-image:conic-gradient(from var(--angle),var(--body-background-color),white);
    animation: 3s spin linear infinite;
}

@keyframes spin{
    from{
        --angle:0deg;
    }
    to{
        --angle:360deg;
    }
}

.active::before{
    filter:blur(1.5rem);
    opacity:0.5;
}

#noStyle{
    text-decoration:none;
    display: flex;
    justify-content: center;
    align-items: center;
    width: 60px;
    height: 34px;
    border-radius: 50%;
    background-color: var(--nav-background-color);
    z-index:11;
}

nav {
  height:100px;
  background-color:var(--body-background-color);
  display:flex;
  justify-content: center;
  align-items:center;
  position:relative;
  grid-area: navBar;
}

.links-container{
  display:flex;
  justify-content: center;
  align-items: center;
  height:100px;
  width: 75%;
  z-index:12;
  gap:10px;
}

#sidebar-active{
  display:none;
}

.open-sidebar-button, .close-sidebar-button{
  display:none;
}

.indexContainer{
  display:flex;
  flex-direction: column;
}

.photo{
  background-image:url('../img/FOTO.jpg');
  border-radius:50%;
  height:300px;
  width:300px;
  background-position:top;
  background-size:cover;
  display:flex;
  justify-content: center;
  align-items: center;
  pointer-events: none;
}

.mainWrapper{
  min-height:100%;
  min-width:100%;
  display:grid;
  grid-template-columns: 0.8fr 1fr 0.8fr;
  grid-template-rows: auto;
}

.mainContainer{
  margin-top:50px;
  margin-bottom:50px;
  grid-column-start: 2;
  grid-column-end: 3;
  display:flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align:center;
  gap:20px;
  color:white;
}

.mainContainer > h1{
  font-size:2.5rem
}


footer{
  background-color:#ccc;
  width:100%;
  height:50px;
  border-top:solid 1px white;
  border-bottom:solid 1px white;
  display:flex;
  justify-content: center;
  align-items: center;
  bottom:0px;
  left:0px;
  grid-area:footer;
}

#linkedIn{
  height:40px;
  width:40px;
  background-image:url('../img/social.png');
  background-size:cover;
  background-position:center;
}

/* 

EXPERIENCE / EXPERIENCIA

*/

.expWrapper{
  min-width:100%;
  min-height:100%;
  display:grid;
  grid-template-columns: 1fr 1fr 1fr;
  margin-bottom:50px;
}

.expContainer{
  grid-column-start:2;
  grid-column-end: 3;
  display:grid;
  grid-template-columns: 1fr;
  grid-template-rows: repeat(5,0.2fr);
  /* border-left: solid 1px white; */
  padding: 0px 20px;
  margin:0px;
  color:white;
  row-gap:-100px;
}

.downloadCV{
  display:flex;
  flex-direction: row;
  grid-column-start: 3;
  grid-column-end: 4;
  justify-content: center;
  align-items: center;
}

.downloadCV a{
  text-decoration: none;
  color: white;
}

.downloadCV a:hover{
  text-decoration: underline;
}

.card{
  border-left:solid white 1px;
}

.boxExp{
  content: '';
  position:absolute;
  width:15px;
  height:15px;
  border:solid 1px white;
  background-color:white;
  box-shadow: 0px 0px 10px black;
  transform: rotateZ(45deg);
  left:-9px;
  top:3.9px;
  display:flex;
  justify-content: center;
  align-items: center;
}

.boxExp:hover{
  animation-name: boxExpSpin;
  animation-duration: 3s;
  animation-timing-function: ease-in-out;
  animation-play-state: running;
}

.card:hover > .boxExp {
  animation-name: boxExpSpin;
  animation-duration: 3s;
  animation-timing-function: ease-in-out;
  animation-play-state: running;
  animation-iteration-count: infinite;
}

.card:hover{
  background-color:var(--body-background-color);
  border-top-right-radius: 10px;
  border-bottom-right-radius: 10px;
}

.card:hover > .date {
  text-decoration:underline;
  
} 

.innerBox{
  position:relative;
  z-index:1;
  width:5px;
  height:5px;
  background-color:var(--body-background-color);
  transform: rotateZ(90deg);
}

@keyframes boxExpSpin{
  0%{
    transform: rotateX(0) rotateY(0) rotateZ(45deg);
}
33%{
    transform: rotateX(180deg) rotateY(0) rotateZ(0);
}
67%{
    transform: rotateX(180deg) rotateY(180deg) rotateZ(0);
}
100%{
    transform: rotateX(180deg) rotateY(180deg) rotateZ(225deg);
}

}


#exp1{
  grid-row-start:1;
  grid-row-end:2;
  display:flex;
  flex-direction:column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 15px;
  margin: 0px;
  position:relative;
}

#exp2{
  grid-row-start:2;
  grid-row-end:3;
  display:flex;
  flex-direction:column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 15px;
  margin: 0px;
  position:relative;
}

#exp3{
  grid-row-start:3;
  grid-row-end:4;
  display:flex;
  flex-direction:column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 15px;
  margin: 0px;
  position:relative;
}

#exp4{
  grid-row-start:4;
  grid-row-end:5;
  display:flex;
  flex-direction:column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 15px;
  margin: 0px;
  position:relative;
}



/* #exp5{
  grid-row-start:5;
  grid-row-end:6;
  display:flex;
  flex-direction:column;
  justify-content: flex-start;
  align-items: flex-start;
  padding: 15px;
  margin: 0px;
  position:relative;
} */

/* 

EDUCATION / EDUCACIÓN

*/

.eduWrapper{
  min-width:100%;
  min-height:100%;
  display:flex;
  justify-content: center;
  align-items: flex-start;
}

.eduContainer{
  margin:50px;
  display:flex;
  flex-direction:column;
  justify-content: center;
  align-items: flex-start;
  line-height: 4rem;
  position:relative;
}

.eduContainer h2{
  color:white;
}

.eduContainer > ol > li {
  list-style:none;
}

.eduContainer > ol > li::before{
  content: "";
  height:10px;
  width:10px;
  border-radius:50%;
  background-color:white;
  color:black;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:0.7em;
  font-weight:bold;
  position:absolute;
  left:-25px;
  margin-top:1.55rem;
  border:solid 2px black;
  box-shadow: 0px 0px 10px black;
}


/* 

CERTIFICACIONES / CERTIFICATIONS!

*/

.certWrapper{
  min-height:100%;
  min-width:100%;
  display:flex;
  justify-content: center;
  align-items: flex-start;
  align-content:center;
}

.certContainer{
  display:flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
  line-height: 4rem;
  margin: 50px;
  position:relative;
}

.certContainer h2{
  color:white;
}

.certContainer > ol > li{
  list-style:none;
  counter-increment:numbers;
}

.certContainer > ol > li::before{
  content: "";
  height:10px;
  width:10px;
  border-radius:50%;
  background-color:white;
  color:black;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:0.7em;
  font-weight:bold;
  position:absolute;
  left:-25px;
  margin-top:1.55rem;
  border:solid 2px black;
  box-shadow: 0px 0px 10px black;
}

/* 

CONTACTO / CONTACT

*/

.contactInfoWrapper{
  min-height:100%;
  min-width:100%;
  display:grid;
  grid-template-columns: 1fr 1fr 1fr;
  grid-template-rows: 1fr 1fr 1fr;
}

.contactInfoContainer{
  grid-column-start: 2;
  grid-column-end: 3;
  grid-row-start: 1;
  grid-row-end: 2;
  display:flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  color:white;
  margin-top:50px;
  text-align:left;
}

.contactInfo{
  position:relative;
  top:0%;
  left:50%;
  translate: -50% -0%;
}

.contactInfo a {
  text-decoration: none;
  color:white;
}





@media(max-width:540px){

  .grid{
    grid-template-columns:1fr;
    grid-template-rows: auto 1fr auto;
    grid-template-areas:
    "navBar"
    "content"
    "footer";
    height:100%;
    width:100%;
  }

  .links-container{
    background-color:transparent;
    flex-direction:column;
    justify-content:flex-start;
    align-items:flex-start;
    position:fixed;
    top:0;
    right:-150%;
    z-index:12;
    width:210px;
    transition: 0.75s ease-out;
  }
  nav{
    height:60px;
    width:100%;
    display:flex;
    flex-direction: row;
    justify-content: flex-end;
    align-items: center;
    border-bottom: solid 1px white;
  }

  nav .open-sidebar-button{
    margin-right:40px;
  }

  nav .close-sidebar-button{
   position:relative; 
   top:25px;
   right:13%;
  }

  nav .open-sidebar-button, .close-sidebar-button:hover{
    cursor:pointer;
  }

  nav a:not(#noStyle){
    box-sizing:border-box;
    height:auto;
    width:100%;
    padding: 20px 30px;
    justify-content:flex-start;
  }
  #noStyle{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    order:1;
    position:relative;
    left:20%;
    top:0%;
    translate: -50% -0%;
  }

  .open-sidebar-button, .close-sidebar-button{
    display:block;
  }

  #sidebar-active:checked ~ .links-container{
    right:0;
  }

  #sidebar-active:checked ~ #overlay{
    height:100%;
    width:100%;
    position:fixed;
    top:0;
    left:0;
    z-index:9;
  }

  /* 

  Main

  */

  .photo{
    background-image:url('../img/FOTO.jpg');
    border-radius:50%;
    height:150px;
    width:150px;
    background-position:top;
    background-size: cover;
    display:flex;
    justify-content: center;
    align-items: center;
  }

  .mainWrapper{
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: 0.5fr;
  }

  .mainContainer{
    margin-top:15px;
    grid-column-start: 2;
    grid-column-end: 6;
    gap:12px;
  }
  
  .mainContainer > h1,h2,h4{
    font-size:1rem;
  }

  .mainContainer > p{
    font-size: 0.9rem;
  }

  /* 

  Experience

  */

  .expWrapper{
    min-width:100%;
    min-height:100%;
    display:grid;
    grid-template-columns: 1fr;
    margin-top:25px;
    margin-bottom:25px;
  }

  .expContainer{
    grid-column-start:1;
    grid-column-end: 1;
  }

  .expContainer > .card{
    font-size:0.8rem;
  }

  .downloadCV{
    display:flex;
    flex-direction: row;
    grid-column-start: 1;
    grid-column-end: 1;
    justify-content: center;
    align-items: center;
  }
  
  /* EDUCATION */

  .eduContainer{
    margin:50px;
    display:flex;
    flex-direction:column;
    justify-content: center;
    align-items: flex-start;
    line-height: 2rem;
    position:relative;
  }
  
  .eduContainer h2{
    color:white;
    font-size:1rem
  }

  .eduContainer > ol > li::before{
    content: "";
    height:8px;
    width:8px;
    border-radius:50%;
    background-color:white;
    color:black;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:0.7em;
    font-weight:bold;
    position:absolute;
    left:-20px;
    margin-top:0.58rem;
    border:solid 2px black;
    box-shadow: 0px 0px 10px black;
  }
  

  /*

    CERTIFICATIONS

  */

  .certContainer{
    display:flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    line-height: 2rem;
    margin: 50px;
    position:relative;
    }

  .certContainer h2{
    font-size:1rem;
    color:white;

  }

  .certContainer > ol > li::before{
    content: "";
    height:8px;
    width:8px;
    border-radius:50%;
    background-color:white;
    color:black;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:0.7em;
    font-weight:bold;
    position:absolute;
    left:-20px;
    margin-top:0.58rem;
    border:solid 2px black;
    box-shadow: 0px 0px 10px black;
  }
}
