/*===== GOOGLE FONTS =====*/
@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap");

/*===== VARIABLES CSS =====*/
:root {
  --header-height: 3rem;

  /*========== Colors ==========*/
  --first-color: #069C54;
  --first-color-alt: #048654;
  --title-color: #393939;
  --subtitle-color: rgb(0, 0, 255);
  --text-color: #707070;
  --text-color-light: #A6A6A6;
  --body-color: #FBFEFD;
  --container-color: #FFFFFF;
  --second-color: #0E2431;

  /*========== Font and typography ==========*/
  --body-font: 'Poppins', sans-serif;
  --biggest-font-size: 2.25rem;
  --h1-font-size: 1.5rem;
  --h2-font-size: 1.25rem;
  --h3-font-size: 1rem;
  --normal-font-size: .938rem;
  --small-font-size: .813rem;
  --smaller-font-size: .75rem;

  /*========== Font weight ==========*/
  --font-medium: 500;
  --font-semi-bold: 600;

  /*========== Margenes ==========*/
  --mb-1: .5rem;
  --mb-2: 1rem;
  --mb-3: 1.5rem;
  --mb-4: 2rem;
  --mb-5: 2.5rem;
  --mb-6: 3rem;

  /*========== z index ==========*/
  --z-back: -10;
  --z-normal: 1;
  --z-tooltip: 10;
  --z-fixed: 100;
}

@media screen and (min-width: 768px){
  :root{
    --biggest-font-size: 4rem;
    --h1-font-size: 2.25rem;
    --h2-font-size: 2rem;
    --h3-font-size: 1.25rem;
    --normal-font-size: 1rem;
    --small-font-size: .875rem;
    --smaller-font-size: .813rem;
  }
}
/*========== BASE ==========*/
*,::before,::after{
  box-sizing: border-box;
}

html{
  scroll-behavior: smooth;
}

/*========== Variables Dark theme ==========*/
body.dark-theme{
  --title-color: #F1F3F2;
  --text-color: #C7D1CC;
  --body-color: #1D2521;
  --container-color: #27302C;
}

/*========== Button Dark/Light ==========*/
.change-theme{
  position: absolute;
  right: 1rem;
  top: 1.8rem;
  color: var(--text-color);
  font-size: 1rem;
  cursor: pointer;
}

body{
  margin: var(--header-height) 0 0 0;
  font-family: var(--body-font);
  font-size: var(--normal-font-size);
  background-color: var(--body-color);
  color: var(--text-color);
  line-height: 1.6;
}

h1,h2,h3,p,ul{
  margin: 0;
}

ul{
  padding: 0;
  list-style: none;
}

a{
  text-decoration: none;
}

img{
  max-width: 100%;
  height: auto;
}

/*========== CLASS CSS ==========*/
.section{
  padding: 4rem 0 2rem;
}

.section-title, .section-subtitle{
  text-align: center;
}

.section-title{
  position: relative;
  font-size: var(--h1-font-size);
  color: var(--subtitle-color);
  margin-bottom: var(--mb-3);
  /* margin-bottom: var(--mb-4); */
  text-align: center;
}


.section-subtitle{
  display: block;
  color: var(--first-color);
  font-weight: var(--font-medium);
  margin-bottom: var(--mb-1);
}

/*========== LAYOUT ==========*/
.bd-container{
  max-width: 960px;
  width: calc(100% - 2rem);
  margin-left: var(--mb-2);
  margin-right: var(--mb-2);
}

.bd-grid{
  display: grid;
  gap: 1.5rem;
}

.l-header{
  width: 100%;
  position: fixed;
  top: 0;
  left: 0;
  z-index: var(--z-fixed);
  background-color: var(--body-color);
  box-shadow: 0 1px 4px rgba(146,161,176,.15);
}

/*========== NAV ==========*/
.nav{
  max-width: 1024px;
  height: var(--header-height);
  display: flex;
  justify-content: space-between;
  align-items: center;
}

@media screen and (max-width: 768px){
  .nav__menu{
    position: fixed;
    top: -100%;
    left: 0;
    width: 100%;
    padding: 1.5rem 0 1rem;
    text-align: center;
    background-color: var(--body-color);
    transition: .4s;
    box-shadow: 0 4px 4px rgba(0,0,0,.1);
    border-radius: 0 0 1rem 1rem;
    z-index: var(--z-fixed);
  }
}

.nav__item{
  margin-bottom: var(--mb-2);
}

.nav__link, .nav__logo, .nav__toggle{
  color: var(--text-color);
  font-weight: var(--font-medium);
}

.nav__logo:hover{
  color: var(--first-color);
}

.nav__link{
  transition: .3s;
}

.nav__link:hover{
  color: var(--first-color);
}

.nav__toggle{
  font-size: 1.3rem;
  cursor: pointer;
}

/* Show menu */
.show-menu{
  top: var(--header-height);
}

/* Active menu */
.active-link{
  color: var(--first-color);
}

/* Change background header */
.scroll-header{
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
}

/* Scroll top */
.scrolltop{
  position: fixed;
  right: 1rem;
  bottom: -20%;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: .3rem;
  background: rgba(6,156,84,.5);
  border-radius: .4rem;
  z-index: var(--z-tooltip);
  transition: .4s;
  visibility: hidden;
}

.scrolltop:hover{
  background-color: var(--first-color-alt);
}

.scrolltop__icon{
  font-size: 1.8rem;
  color: var(--body-color);
}

/* Show scrolltop */
.show-scroll{
  visibility: visible;
  bottom: 1.5rem;
}


/*========== HOME ==========*/
.home__container{
  margin-top:20vh;
  height: calc(100vh - var(--header-height));
  align-content: center;
  /* display: flex;
	justify-content: center;
	align-content: center; */
}


.home__title{
  font-size: var(--biggest-font-size);
  color: var(--first-color);
  margin-bottom: var(--mb-1);
}

.home__subtitle{
  font-size: var(--h1-font-size);
  color: var(--title-color);
  margin-bottom: var(--mb-4);
}

.home__img{
  width: 300px;
  justify-self: center;
}

/*========== BUTTONS ==========*/
.button{
  display: inline-block;
  background-color: var(--first-color);
  color: #FFF;
  padding: .75rem 1rem;
  font-weight: var(--font-semi);
  border-radius: .5rem;
  transition: .3s;
}

.button:hover{
  background-color: var(--first-color-alt);
  box-shadow: 0 10px 36px rgba(0,0,0,.15);
}

/*========== ABOUT ==========*/
.about__data{
  text-align: center;
}

.about__description{
  margin-bottom: var(--mb-3);
  color:black;
}

.about__img{
  width: 280px;
  border-radius: .5rem;
  justify-self: center;
}

/* ========== SKILLS ==============*/
.skills__container{
  /* row-gap: 2rem; */
  text-align: center;
  /* margin-top:-rem; */
  padding-right: 6rem;
  padding-left: 6rem;
}
.skills__subtitle{
  margin-bottom: var(--mb-2);
}
.skills__text{
  margin-bottom: var(--mb-4);
}
.skills__data{
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
  font-weight: var(--font-semi);
  padding: .5rem 1rem;
  margin-bottom: var(--mb-4);
  border-radius: .5rem;
  box-shadow: 0 4px 25px rgba(14,36,49,.15);
}
.skills__icon{
  font-size: 2rem;
  margin-right: var(--mb-2);
  color: var(--first-color);
}
.skills__names{
  display: flex;
  align-items: center;
}
.skills__bar{
  position: absolute;
  left: 0;
  bottom: 0;
  background-color: var(--first-color);
  height: .25rem;
  border-radius: .5rem;
  z-index: var(--z-back);
}
.skills__html{
  width: 95%;
}
.skills__css{
  width: 85%;
}
.skills__js{
  width: 65%;
}
.skills__ux{
  width: 85%;
}
.skills__img{
  border-radius: .5rem;
}

/*========== SERVICES ==========*/
#services{
	width:100%;
	height:100vh;
	box-sizing: border-box;
	font-family: calibri;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding-top: 40px ;	
}
.s-heading h1{
	color:#FFFFFF;
	font-size: 3rem;
	margin: 0px;
	padding: 0px;
	
}
.s-heading p{
	color:rgba(255,255,255,0.30);
	font-size: 1rem;
	margin: 0px;
	padding: 0px;
}
.s-heading{
	text-align: center;
	margin: 20px 0px;
}
.s-box{
	background-color: #2B2B2B;
	width:350px;
	height: 500px;
	margin: 20px;
	border-radius: 10px;
	overflow: hidden;
	box-shadow: 2px 2px 12px rgba(0,0,0,0.1);
	position: relative;
}
.b-container{
	display: flex;
	justify-content: center;
	align-content: center;
}
.s-b-img{
	width: 100%;
	height: 70%;
	
}
.s-b-img img{
	width:100%;
	height: 100%;
	
}
.s-b-text{
	width: 100%;
	height: 30%;
	background-color:#1E1E1E;
	display:flex;
	justify-content: center;
	align-items: center;
	text-align: center;
}
.s-b-text a{
	margin: 0px;
	color:#FFFFFF;
	font-size: 1.1rem;
	font-family: calibri;
	display: block;
    display: -webkit-box;
	max-width: 80%;
    -webkit-line-clamp: 4;
    -webkit-box-orient: vertical;
    overflow: hidden;
    text-overflow: ellipsis;
}
.s-b-text a:hover{
	color:rgba(255,255,255,0.50)
}
.s-type{
	font-family: calibri;
	color:#FFFFFF;
	background-color: #151515;
	padding: 10px 15px;
	position: absolute;
	top: 0px;
	left: 50%;
	transform: translateX(-50%);
	font-size: 18px;
	border-radius: 0px 0px 10px 10px;
	box-shadow: 2px 2px 12px rgba(0,0,0,0.2);
}
.s-box:hover{
	transform:translateY(-10px);
	transition: all ease 0.3s;
}

/* ===== WORK =====*/
#portfolio{
	width:100%;
	box-sizing: border-box;
	font-family: calibri;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 60px 2% 20px 2%;
}
.p-headind{
	font-family: calibri;
	font-size: 1.7rem;
	text-align: center;
	color:#FFFFFF;
	font-weight: 400;
	padding: 10px 20px;
	background-color: #292929;
	letter-spacing: 2px;
	border-radius: 3px;
	box-shadow: 2px 2px 20px rgba(0,0,0,0.1);	
}
.p-box{
	background-color: #1F1F1F;
	overflow: hidden;
	border-radius: 10px;
	box-shadow: 2px 2px 13px rgba(0,0,0,0.3);
	position: relative;

}
.p-box img{
    width: 100%;
	height: 100%;
	object-fit: cover;
}
.p-container{
	width: 90%;
	height:70vh;
	display:grid;
	grid-template-columns:1fr 1fr 1fr;
	grid-template-rows: auto auto;
	grid-gap: 10px;
}
.overlay-text{
	font-family: calibri;
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 100%;
	display: flex;
	justify-content: center;
	align-items: center;
	flex-direction: column;
	background-color: rgba(23,209,172,0.80);
	display:none;
	
}
.overlay-text h1,p{
	color: #FFFFFF;
}
.overlay-text h1{
	font-size: 2.2rem;
	margin: 0px;
	padding: 0px;
	letter-spacing: 2px;
	
}
.overlay-text p{
	font-size: 1.2rem;
	margin: 0px;
}
.p-box:hover .overlay-text{
	display: flex;	
}

/*========== CONTACT ==========*/
#contact-form{
  width: 100%;
  height:auto;
  background-color: #1A1A1A;
	display: flex;
	justify-content: center;
	align-items: center;
} 

 #contact-form form{
	display: flex;
	width: 100%;
   height: auto;
  background-color: #292929;
	box-shadow: 2px 12px 20px rgba(0,0,0,0.2);
	border: 1px solid rgba(255,255,255,0.01)
}

.contact-left{
	width: 45%;
  height: 100%;
	display: flex;
	flex-direction: column;
	align-items: center;
}

.contact-right{
	width: 55%;
  height: 100%;
	box-sizing: border-box;
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	border-left: 1px solid rgba(255,255,255,0.08);
}

 .contact-right button{
	width: 100%;
  height: 50px;
	background-color: #1ED98B;
	font-weight: bold;
	outline: none;
	border: none;
	margin: 0px;
	color:#1B1B1B;
	font-size: 14px;
	text-transform: uppercase;
  letter-spacing: 2px;
  border-radius: .5rem;
}

.c-l-heading{
	font-family: calibri;
	color:#FFFFFF;
	font-size: 3rem;
	letter-spacing: 2px;
	font-weight: 400;
} 

.f-name,.f-email{
  display: flex;
  padding-top: 20px;
	flex-direction: column;
	font-family: calibri;
}
.f-name font,.f-email font{
	color:#BFBFBF;
	font-size: 22px;
}

.f-name input,.f-email input{
	height: 30px;
	width:250px;
	border: none;
	outline: none;
	background-color:transparent;
	border-bottom: 1px solid #929292;
	color:#FFFFFF;
	margin: 10px 0px;
}

.f-email input::placeholder,
.f-name input::placeholder{
	opacity: 0.5;
	letter-spacing: 1px;
}
.f-email input:focus,
.f-name input:focus{
	border-bottom: 1px solid #17d1ac;
	transition: all ease 0.5s;
}
.message font{
	font-size: 22px;
	color:#BFBFBF;
	font-family: calibri;
} 
 .message{
  margin: 20px;
  display: flex;
  padding-top: 30px;
	flex-direction: column;
  font-family: calibri;
  color:#BFBFBF;
  padding-bottom:30px;
}

.contact-right textarea{
	width: 100% !important;
	height: 30vh !important;
	border: none;
	outline: none;
	background-color:transparent;
	box-sizing: border-box;
	color:#EBEBEB;
	font-size: 22px;
}
.contact-right textarea::placeholder{
	font-size: 16px;
	letter-spacing: 1px;
	font-family: calibri;
}
.contact-right button:active{
	transform: scale(1.04);
	transition: all ease 0.1s;
}

/*========== FOOTER ==========*/
.footer{
  background-color: var(--second-color);
  color: #fff;
  text-align: center;
  font-weight: var(--font-semi);
  padding: 2rem 0;
}
.footer__title{
  font-size: 2rem;
  margin-bottom: var(--mb-4);
}
.footer__social{
  margin-bottom: var(--mb-4);
}
.footer__icon{
  font-size: 1.5rem;
  color: #fff;
  margin: 0 var(--mb-2)
}
.footer__icon:hover{
  color: var(--first-color);
}

/*========== MEDIA QUERIES ==========*/


@media(max-width:1190px){
#services{
  height:auto;
}
.b-container{
  flex-wrap: wrap;
}
.s-box{
  flex-grow: 1;
}
.s-b-img img{
  object-fit:cover;
}
#contact-form form{
  width:95% !important;
}
}

@media(max-width:970px){
  .p-container{
		width:100%;
	}
}

@media(max-width:900px){
.p-container{
  grid-template-columns:1fr 1fr;
grid-template-rows:auto;
grid-gap: 10px;
  height: auto;
}
#contact-form{
  height: auto;
  box-sizing: border-box;
}
#contact-form form {
  flex-direction: column;
  height:auto;
  padding: 20px;
  width:90% !important;
}
.contact-left,.contact-right{
  width:100%;
  border: none;
}
.f-name,.f-email{
  width: 100%;
}

.f-name input,.f-email input{
  width:100%;
  border: none;
  background-color: #262626 !important;
  padding: 10px;
  box-sizing: border-box;
  height: 40px;
}

textarea{
  background-color: #262626 !important;
  margin: 10px 0px;
  padding: 10px;
  height: 200px !important;
  width:100% !important;
}
.message{
  margin:0px;
}
#contact-form form h1{
  margin:5px 0px;
}
}

@media(max-width:400px){
	.s-box{
		width: 100%;
		height:400px;
	}
}

@media screen and (min-width: 576px){
  .home__container,
  .about__container{
    grid-template-columns: repeat(2,1fr);
    align-items: center;
    margin-top:5px;
  }
  .about__data, .about__initial{
    text-align: initial;
  }
  .about__img{
    width: 380px;
    order: -1;
  }
}

@media screen and (min-width: 768px){
  body{
    margin: 0;
  }
  .section{
    padding-top: 8rem;
  }
  .nav{
    height: calc(var(--header-height) + 1.5rem);
  }
  .nav__list{
    display: flex;
  }
  .nav__item{
    margin-left: var(--mb-5);
    margin-bottom: 0;
  }
  .nav__toggle{
    display: none;
  }
  .change-theme{
    position: initial;
    margin-left: var(--mb-2);
  }
  .home__container{
    height: 100vh;
    justify-items: center;
  }
  .services__container{
    margin-top: var(--mb-6);
  }
  .lang{
    color:#292929;
  }
  .skills__container{
    grid-template-columns: repeat(2,1fr);
    align-items: center;
    text-align: initial;
  }
}

@media screen and (min-width: 960px){
  .bd-container{
    margin-left: auto;
    margin-right: auto;
  }
  .home__img{
    width: 500px;
  }
  .about__container{
    column-gap: 7rem;
  }
}

@media(max-width:600px){
	.p-container{
		grid-template-columns:1fr ;
    grid-template-rows: auto;
  }
}

@media screen and (min-height: 721px) {
    .home__container {
        height: 640px;
    }
    /* For tall screens on mobiles y desktop*/
}
