/*----------------------------------
Fonts Import
-----------------------------------*/
@import url('https://fonts.googleapis.com/css2?family=Abel&family=Quicksand:wght@300&display=swap');

@font-face {
  font-family: Autography;
  src: url('../../font/autography.otf');
}

/*----------------------------------
Reset
-----------------------------------*/
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

/*----------------------------------
Root
-----------------------------------*/
:root {
  --primaryColor: #fffffb;
  --secondaryColor: #333232;
  --supportColor: #D90243;

  --primaryFace: 'Abel', sans-serif;
  --secondaryFace: 'Quicksand', sans-serif;
  --supportFace: 'Autography', sans-serif;
}

/*----------------------------------
Tipography
-----------------------------------*/
a {
  text-decoration: none;
  color: var(--supportColor);
}

.titlewriter h1 {
  font-size: 3rem;
  color: var(--secondaryColor);
  text-align: left;
  text-transform: uppercase;
  letter-spacing: 80px;
  overflow: hidden;
  border-right: .15em solid var(--secondaryColor);
  white-space: nowrap;
  margin: 0 auto;
  animation:
    typing 3.5s steps(30, end),
    blink-caret .5s step-end infinite;
  margin: 5px 0px 35px 0px;
}

h2 {
  font-size: 2rem;
  color: var(--secondaryColor);
  padding: 0px 0px 15px 0px;
}

h3 {
  font-size: 1.2rem;
  color: var(--secondaryColor);
  text-align: center;
  text-transform: uppercase;
  padding: 15px 0px;
}

h4 {
  font-size: 1.2rem;
  color: var(--secondaryColor);
  padding: 15px 0px;
}

p {
  font-family: var(--secondaryFace);
  font-size: 1.2rem;
  margin-bottom: 10px;
}

hr {
  margin: 30px 0px;
  height: 4px;
  background-color: var(--primaryColor);
  border: none;
}

/*----------------------------------
Button System
-----------------------------------*/
.btn {
  color: var(--secondaryColor);
  font-size: 1.1rem;
  text-transform: uppercase;
  border: double 6px var(--secondaryColor);
  padding: 9px;
  transition: 0.4s;
}

.btn:hover {
  background-color: var(--supportColor);
  color: var(--primaryColor);
  border: double 6px var(--primaryColor);
}

.btn-2 {
  background-color: var(--secondaryColor);
  color: var(--primaryColor);
  font-size: 1.1rem;
  text-transform: uppercase;
  border: double 6px var(--primaryColor);
  padding: 9px;
  transition: 0.4s;
}

.btn-2:hover {
  background-color: var(--supportColor);
  color: var(--primaryColor);
  border: double 6px var(--primaryColor);
}

.btn-3 {
  background-color: var(--supportColor);
  color: var(--primaryColor);
  font-size: 1.1rem;
  text-transform: uppercase;
  border: double 6px var(--primaryColor);
  padding: 9px;
  transition: 0.4s;
}

.btn-3:hover {
  background-color: var(--secondaryColor);
  color: var(--primaryColor);
  border: double 6px var(--primaryColor);
}

.active {
  background-color: var(--supportColor);
  color: var(--primaryColor);
  border: double 6px var(--primaryColor);
}

/*----------------------------------
General Setup
-----------------------------------*/
html {
  scroll-behavior: smooth;
  animation-name: transition;
  animation-fill-mode: forwards;
  animation-duration: 0.7s;
}

@keyframes transition {
  0% { opacity: 0%; }
  50% { opacity: 50%; }
  100% { opacity: 100%; }
}

body {
  background-color: var(--primaryColor);
  font-family: var(--primaryFace);
  color: var(--secondaryColor);
}

section {
  padding: 35px;
}

main {
  padding-top: 120px;
}

/* home section */
.home {
  width: 100%;
  height: 100vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.home__content {
  text-align: center;
}

.logo-index {
  width: 200px;
  height: auto;
}

/* -- menu home page */
.home__content ul {
  margin: 30px;
}

.home__content li {
  list-style: none;
  padding: 25px;
}

.home__content li:nth-child(2) {
  rotate: -3deg;
  animation-name: movie;
  animation-duration: 1.5s;
  animation-fill-mode: forwards;
  animation-iteration-count: 6;
}

@keyframes movie {
  0% { rotate: -3deg; }
  50% { rotate: 0deg; }
  100% { rotate: -3deg; }
}

.typewriter h1 {
  font-family: var(--secondaryFace);
  font-size: 1.5em;
  text-transform: lowercase;
  color: var(--supportColor);
  overflow: hidden;
  border-right: .15em solid var(--secondaryColor);
  white-space: nowrap;
  margin: 0 auto;
  letter-spacing: .15em;
  animation:
    typing 3.5s steps(30, end),
    blink-caret .5s step-end infinite;
  padding-bottom: 15px;
  margin-top: 5px;
}

@keyframes typing {
  from {
    width: 0
  }

  to {
    width: 100%
  }
}

@keyframes blink-caret {

  from,
  to {
    border-color: transparent
  }

  50% {
    border-color: var(--secondaryColor)
  }
}

.signature {
  font-family: var(--supportFace);
  font-size: 2rem;
}

/*----------------------------------
Header & Navbar
-----------------------------------*/
.header {
  position: fixed;
  left: 0;
  top: 0;
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px 35px;
  border-bottom: 6px double var(--secondaryColor);
  background-color: var(--primaryColor);
  z-index: 100;

}

.header .logo__header {
  width: 100px;
  height: auto;
  padding: 15px;
  animation-name: hello;
  animation-duration: 2s;
}

@keyframes hello {
  0% { rotate: 0deg; }
  50% { rotate: 10deg; }
  100% { rotate: 0deg;}
}

.header .logo__header:hover {
  rotate: -10deg;
  transition: 1s;
}

.header li {
  display: inline-block;
  list-style: none;
  margin: 35px;
}

.hamburger {
  display: none;
}

/*----------------------------------
SKILLS PAGE: 

Grid Skills
-----------------------------------*/
.gridSkills {
  display: grid;
  grid-template-columns: 30% 1fr;
  grid-template-rows: 1fr;
  grid-column-gap: 30px;
  grid-row-gap: 0px;
}
.gridSkills__article p {
  font-weight: 500;
}

.gridSkills__sidebar {
  grid-area: 1 / 1 / 2 / 2;
  border: 6px double var(--secondaryColor);
  text-align: center;
  padding: 15px;
  min-width: 300px;
}

.my_photo {
  width: 300px;
  height: auto;
}

.info-bar {
  display: flex;
  text-align: left;
  margin: 20px 0px;
}

.info-bar h5 {
  position: relative;
  font-size: 1rem;
}

.info-bar h5::after {
  content: "";
  position: absolute;
  margin-left: 7px;
  top: 6px;
  background-color: #29dc97;
  width: 12px;
  height: 12px;
  border-radius: 50%;
}

.social-skills {
  margin-left: auto;
}

.social-ico {
  color: var(--secondaryColor);
  margin-left: 10px;
  width: 25px;
  font-size: 1.2rem;
  transition: 0.5s;
}

.social-ico:hover {
  color: var(--supportColor);
}

/*-----------------------------------------------
__Skills
------------------------------------------------*/
.skill-bars {
  padding: 20px 0px;
  width: 100%;
  background: #ffffff;
}

.skill-bars .bar {
  margin: 40px 0;
}

.skill-bars .bar:first-child {
  margin-top: 0px;
}

.skill-bars .bar .info {
  margin-bottom: 5px;
  color: #333232;
}

.skill-bars .bar .info span {
  font-weight: 500;
  font-size: 17px;
  opacity: 0;
  animation: showText 0.5s 1s linear forwards;
}

@keyframes showText {
  100% {
    opacity: 1;
  }
}

.skill-bars .bar .progress-line {
  height: 20px;
  width: 100%;
  background: var(--supportColor);
  position: relative;
  transform: scaleX(0);
  transform-origin: left;
  border-radius: 0px;
  box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05),
    0 1px rgba(255, 255, 255, 0.8);
  animation: animate 1s cubic-bezier(1, 0, 0.5, 1) forwards;
}

@keyframes animate {
  100% {
    transform: scaleX(1);
  }
}

.bar .progress-line span {
  height: 100%;
  position: absolute;
  left: 0;
  border-radius: 0px;
  transform: scaleX(0);
  transform-origin: left;
  background: #333232;
  animation: animate 1s 1s cubic-bezier(1, 0, 0.5, 1) forwards;
}

.bar .progress-line.serviceone span {
  width: 95%;
}

.bar .progress-line.servicetwo span {
  width: 100%;
}

.bar .progress-line.servicethree span {
  width: 100%;
}

.bar .progress-line.servicefour span {
  width: 100%;
}

.bar .progress-line.servicefive span {
  width: 95%;
}

.bar .progress-line.servicesix span {
  width: 95%;
}

.progress-line span::before {
  position: absolute;
  content: "";
  top: -10px;
  right: 0;
  height: 0;
  width: 0;
  border: 7px solid transparent;
  border-bottom-width: 0px;
  border-right-width: 0px;
  border-top-color: #333232;
  opacity: 0;
  animation: showText2 0.5s 1.5s linear forwards;
}

.progress-line span::after {
  position: absolute;
  top: -28px;
  right: 0;
  font-weight: 500;
  background: #333232;
  color: #ffffff;
  padding: 1px 8px;
  font-size: 15px;
  border-radius: 0px;
  opacity: 0;
  animation: showText2 0.5s 1.5s linear forwards;
}

@keyframes showText2 {
  100% {
    opacity: 1;
  }
}

.progress-line.serviceone span::after {
  content: "95%";
}

.progress-line.servicetwo span::after {
  content: "100%";
}

.progress-line.servicethree span::after {
  content: "100%";
}

.progress-line.servicefour span::after {
  content: "100%";
}

.progress-line.servicefive span::after {
  content: "95%";
}

.progress-line.servicesix span::after {
  content: "95%";
}

.solid-skill {
  margin-bottom: 30px;
  border: solid 1px #333232;
}

/*-------------------------------------------
__About and Certificate
--------------------------------------------*/
.gridSkills__article {
  grid-area: 1 / 2 / 2 / 3;
  border: 6px double var(--secondaryColor);
  padding: 15px;
}

.certificate {
  padding: 10px 20px;
  font-family: var(--secondaryFace);
}

.certificate li {
  font-size: 1.1rem;
}

/*----------------------------------
PROJECTS PAGE: 

__Grid Projects
-----------------------------------*/
.gridBorder {
  border: 6px double var(--secondaryColor);
  padding: 20px;
}

.gridProjects {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  /*grid-template-rows: repeat(4, 1fr);*/
  grid-column-gap: 20px;
  grid-row-gap: 20px;
  border: 6px double var(--secondaryColor);
  padding: 20px;
  }

  /*__________________________page 1_*/
  .item-1 { grid-area: 1 / 1 / 2 / 2; }
  .item-2 { grid-area: 1 / 2 / 2 / 3; }
  .item-3 { grid-area: 1 / 3 / 2 / 4; }
  .item-4 { grid-area: 2 / 1 / 3 / 2; }
  .item-5 { grid-area: 2 / 2 / 3 / 3; }
  .item-6 { grid-area: 2 / 3 / 3 / 4; }
  .item-7 { grid-area: 3 / 1 / 4 / 2; }
  .item-8 { grid-area: 3 / 2 / 4 / 3; }
  .item-9 { grid-area: 3 / 3 / 4 / 4; }
  .item-10 { grid-area: 4 / 1 / 5 / 2; }
  .item-11 { grid-area: 4 / 2 / 5 / 3; }
  .item-12 { grid-area: 4 / 3 / 5 / 4; }

  .card-container {
    padding: 20px;
    background-color: #f8f8f8;
    transition: 0.5s;
    /*border: 2px dotted var(--secondaryColor);*/
  }

  .card-container:hover {
    transform: scale(1.01);
  }

  .slideshow {
    position: relative;
  }

  .mySlide {
    display: none;
  }

  /* Next & previous buttons */
.prev, .next {
  cursor: pointer;
  position: absolute;
  top: 50%;
  width: auto;
  margin-top: -22px;
  padding: 10px;
  color: var(--supportColor);
  font-weight: bold;
  font-size: 20px;
  transition: 0.6s ease;
  user-select: none;
}

/* Position the "next button" to the right */
.next {
  right: 0;
}

/* On hover, add a black background color with a little bit see-through */
.prev:hover, .next:hover {
  background-color: var(--secondaryColor);
  color: var(--primaryColor);
}

/* The dots/bullets/indicators */
.dot {
  cursor: pointer;
  height: 15px;
  width: 15px;
  margin: 0 2px;
  background-color: #bbb;
  border-radius: 50%;
  display: inline-block;
  transition: background-color 0.6s ease;
}

.actives, .dot:hover {
  background-color: var(--supportColor);
}

/* Fading animation */
.fade {
  animation-name: fade;
  animation-duration: 1.5s;
}

@keyframes fade {
  from {opacity: .4}
  to {opacity: 1}
}

.mySlide img {
  width: 100%;
  height: auto;
}

  article img {
    width: 100%;
    height: auto;
  }

  article h3 {
    text-align: left;
  }

  .block-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
  }

  .icon-projects i {
    font-size: 2.7rem;
  }

  .btn-projects {
    color: var(--primaryColor);
    background-color: var(--secondaryColor);
    padding: 5px 15px;
    border: 6px double var(--primaryColor);
    text-transform: uppercase;
    transition: 0.5s;
  }

  .btn-projects:hover {
    color: var(--primaryColor);
    background-color: var(--supportColor);
    padding: 5px 15px;
    border: 6px double var(--primaryColor);
  }

/*----------------------------------
CONTACT PAGE: 

__Grid Contact
-----------------------------------*/
.gridContact {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-template-rows: 1fr;
  grid-column-gap: 30px;
  grid-row-gap: 0px;
}

.gridContact__info {
  grid-area: 1 / 1 / 2 /2;
  border: 6px double var(--secondaryColor);
  padding: 60px;
  text-align: center;
}

.gridContact__info h2 {
  font-size: 1.6rem;
  font-family: var(--secondaryFace);
  padding-bottom: 40px;
}

.social-ico-contact {
  color: var(--secondaryColor);
  width: 25px;
  font-size: 1.2rem;
  transition: 0.5s;
}

.social-ico-contact:hover {
  color: var(--supportColor);
}

.social-ico-.gridContact {
  color: var(--supportColor);
}

.gridContact__info .signature {
  padding-top: 150px;
}

.gridContact__form {
  grid-area: 1 / 2 / 2 / 3;
  border: 6px double var(--secondaryColor);
  padding: 60px;
}

/*----------------------------------
__Form
-----------------------------------*/
input[type=text],
select,
textarea {
  font-size: 1.2rem;
  text-align: center;
  width: 100%;
  padding: 18px;
  background-color: transparent;
  border: 2px solid #333232;
  box-sizing: border-box;
  margin-top: 2px;
  margin-bottom: 28px;
  resize: vertical
}

input[type=submit] {
  background-color: var(--secondaryColor);
  color: var(--primaryColor);
  font-size: 1rem;
  padding: 15px;
  border: double 6px var(--primaryColor);
  text-transform: uppercase;
  cursor: pointer;
  width: 100%;
}

input[type=submit]:hover {
  background-color: var(--supportColor);
  color: var(--primaryColor);
  border: double 6px var(--primaryColor);
}

input:focus,
textarea:focus {
  outline: none;
}

.alert-ok {
  padding: 20px;
  background-color: var(--supportColor); /* Red */
  font-size: 1.3rem;
  color: var(--primaryColor);
  margin-bottom: 15px;
  text-align: center;
}

.alert-no {
  padding: 20px;
  background-color: #f85560; /* Red */
  font-size: 1.3rem;
  color: var(--primaryColor);
  margin-bottom: 15px;
  text-align: center;
}

/*----------------------------------
Footer
-----------------------------------*/
.footer {
  background-color: var(--primaryColor);
  text-align: center;
  border-top: 6px double var(--secondaryColor);
  padding: 35px;
}

.footer p {
  margin: 0;
  font-size: 1rem;
}

/*-------------------------------------------
ELEMENTS:

__Scroll to top button
--------------------------------------------*/
#myBtn {
  display: none;
  position: fixed;
  bottom: 20px;
  right: 15px;
  z-index: 99;
  border: none;
  background-color: var(--supportColor);
  outline: none;
  cursor: pointer;
  padding: 10px;
  border-radius: 10px;
  font-size: 18px;
  transition: all 1s;
}

#myBtn:hover {
  background-color: var(--primarytColor);
  border: 3px solid var(--secondaryColor);
}

/*-------------------------------------------
ELEMENTS:

__Scroll indicator
--------------------------------------------*/
.indicator {
  position: fixed;
  top: 0;
  z-index: 101;
  width: 100%;
  background-color: #f1f1f1;
}

.progress-container {
  width: 100%;
  height: 8px;
  background: #ffffff;
}

.progress-bar {
  height: 8px;
  background: var(--supportColor);
  width: 0%;
}

/*-------------------------------------------
RESPONSIVE:

__XL (Smartphone & Tablet, 1680px Min)
--------------------------------------------*/
@media screen and (min-width: 1480px) {

  body {
    max-width: 1400px !important;
    margin: 0 auto;
  }

  .border-none {
    border: none;
  }

  .indicator {
    position: fixed;
    margin: 0 auto;
    top: 0;
    z-index: 101;
    max-width: 1388px;
    background-color: #f1f1f1;
  }

  .header {
    max-width: 1400px;
    left: auto;
  }

}

/*-------------------------------------------
RESPONSIVE:

__Medium and Big Device (Smartphone & Tablet, 1080px Min)
--------------------------------------------*/
@media screen and (min-width: 1080px) {

  .header ul li:nth-child(5) {
    display: none;
  }
}
/*-------------------------------------------
RESPONSIVE:

__Small Device (Smartphone & Tablet, 1080px Max)
--------------------------------------------*/
@media screen and (max-width: 1080px) {

  section {
    padding: 35px 10px;
  }

  /* ___Mobile Tipography */
  .titlewriter h1 {
    font-size: 1.8rem;
    letter-spacing: 25px;
  }


  /* ___Mobile header & humburger menu */
  .header .logo__header {
    width: 100px;
    height: auto;
    padding: 15px 30px 15px 0px;
  }

  .header li {
    display: block;
    margin-bottom: 80px;
  }

  .menu {
    position: absolute;
    top: 0;
    right: -100%;
    text-align: center;
    padding: 75px 0px;
    background-color: var(--primaryColor);
    opacity: 98%;
    width: 100%;
    height: 100vh;
    transition: all 0.8s;
  }

  .hamburger {
    display: block;
    width: 40px;
    height: 40px;
    padding: 3px;
    margin-right: 7px;
  }

  .hamburger span {
    background: #333232;
    width: 100%;
    height: 4px;
    display: block;
    margin-bottom: 7px;
    transition: all 0.8s;
  }

  .menu--open {
    right: 0;
  }

  .hamburger span:nth-child(2) {
    width: 70%;
  }

  .menu--open .hamburger span:nth-child(1) {
    transform: rotate(45deg) translateY(7px);
  }

  .menu--open .hamburger span:nth-child(2) {
    transform: rotate(-45deg) translateY(-8px);
    width: 100%;
  }

  .menu--open .hamburger span:nth-child(3) {
    display: none;
  }

  .hide {
    display: none;
  }

  /* ___Mobile grid Skills */
  .gridSkills {
    display: block;
    grid-template-columns: 100%;

  }

  .gridSkills__sidebar {
    margin-bottom: 30px;
  }

  .gridSkills__article {
    margin-bottom: 20px;
  }

  .gridProjects {
    grid-template-columns: repeat(2, 1fr);
    /*grid-template-rows: repeat(6, 1fr);*/
    }

    .icon-projects i {
      font-size: 2rem;
    }
  
    .btn-projects {
      font-size: 0.7rem;
    }
  
  .gridContact {
    display: block;
    grid-template-columns: 100%;
  }

  .gridContact__info {
    margin-bottom: 30px;
  }

  .gridContact__info h2 {
    font-size: 1.3rem;
    padding-bottom: 30px;
  }

  .gridContact__form, .gridContact__info {
    padding:15px;
  }

  .footer p {
    font-size:0.8rem;
  }
}

@media screen and (max-width: 768px) {
  .gridProjects {
    grid-template-columns: repeat(1, 1fr);
    /*grid-template-rows: repeat(12, 1fr);*/
    }

    .prev, .next {
      display: none;
    }
}