@font-face {
  font-family: "Lemonada";
  src: url(..//files/lemonada-font.ttf);
  display: swap;
}

/* Start Initial Style */
:root {
  --red-color: #d7070d;
  --blue-color: #0707d0;
  --space: 100px;
  --main-transition: 0.3s linear;
  --transe: 0.3s ease;
  --en-font: "Lemonada", sans-serif;
  --ar-font: "Lemonada", sans-serif;
}
* {
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  padding: 0px;
  margin: 0px;
}
html {
  scroll-behavior: smooth;
}
body {
  font-family: var(--en-font);
  overflow-x: hidden;
}
ul {
  list-style-type: none;
}
.container {
  padding: 0px 20px;
  margin: auto;
  width: 100%;
  max-width: 1200px;
}
/* End Initial Style */

/* Global Style Start */
section {
  padding: var(--space) 0px;
  position: relative;
  background-color: #fff;
}
section h2 {
  font-size: 30px;
  text-align: center;
  position: relative;
  text-transform: uppercase;
  width: fit-content;
  margin: 0px auto 60px;
}

section h2::after {
  content: "";
  position: absolute;
  background-image: linear-gradient(
    to right,
    var(--red-color) 50%,
    var(--blue-color) 50%
  );
  background-size: 200% 100%;
  background-position-x: right;
  width: 100%;
  height: 5px;
  bottom: -20px;
  left: 50%;
  transform: translateX(-50%);
  border-radius: 3px;
  opacity: 0.8;
  transition: linear 0.3s;
}
section[data-view="inView"] h2::after {
  background-position-x: left;
  opacity: 1;
}
a {
  text-decoration: none;
}
img {
  width: 100%;
  height: auto;
}
/* Global Style End */

/* Header Start */
#header {
  width: 100%;
  background-color: #fff;
  position: fixed;
  top: 0;
  left: 0;
  box-shadow: 0px 5px 20px 0px rgb(0 0 0 / 10%);
  z-index: 999;
}
#header,
#header .container {
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0px;
}
#header .container .logo {
  padding: 0 20px 0px;
}
#header .container .logo img {
  height: 60px;
  transition: var(--transe);
}
#header .container .logo img:hover {
  filter: brightness(1.3);
}
#header .container h1 {
  line-height: 0;
}
.nav-toggler {
  display: none;
  flex-direction: column;
  gap: 5px;
  height: 60px;
  padding: 0px 20px;
  cursor: pointer;
}
.nav-toggler .bar1,
.nav-toggler .bar2,
.nav-toggler .bar3 {
  width: 30px;
  height: 4px;
  background-color: #333;
  transition: 0.3s linear;
  border-radius: 50px;
}
.nav-toggler .bar2 {
  -webkit-transition: 0.2s linear;
  transition: 0.2s linear;
}
.nav-toggler.active .bar1 {
  -webkit-transform: translateY(6px) rotate(-45deg);
  transform: translateY(6px) rotate(-45deg);
}
.nav-toggler.active .bar2 {
  opacity: 0;
}
.nav-toggler.active .bar3 {
  -webkit-transform: translateY(-12px) rotate(45deg);
  transform: translateY(-12px) rotate(45deg);
}
.navlist {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
}
#header a:not(.logo) {
  padding: 0px 20px;
  font-size: 16px;
  height: 80px;
  color: #000;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
  transition: var(--main-transition);
}
.lang-btn {
  direction: rtl;
  gap: 5px;
  justify-content: flex-end;
  font-size: 15px !important;
}
.lang-btn svg {
  width: 25px;
  fill: #000;
  transition: var(--main-transition);
}
.lang-btn:hover svg {
  fill: var(--red-color);
}
#header h1 {
  font-weight: bold;
  color: var(--red-color);
  font-size: 24px;
}
#header li a:hover {
  color: var(--red-color);
  background-color: #fafafa;
}
#header li a::after {
  content: "";
  position: absolute;
  background-color: var(--red-color);
  width: 100%;
  height: 3px;
  bottom: -0px;
  left: -100%;
  border-radius: 3px;
  transition: var(--main-transition);
}
#header li a:hover::after {
  left: 0px;
}

/* Header End */
#main {
  width: 100%;
  overflow: hidden;
  margin-top: 80px;
}
/* Landing Start */
#landing {
  min-height: calc(100vh - 80px);
}
#landing,
#landing .container {
  display: flex;
  align-items: center;
  justify-content: space-evenly;
  flex-wrap: wrap;
  gap: 20px;
  position: relative;
  color: #fff;
}
#landing .hero-image {
  position: fixed;
  width: 100%;
  height: calc(100vh - 80px);
  left: 0;
  top: 80px;
  object-fit: cover;
  filter: brightness(0.5);
  background-color: #333;
}
.info {
  font-size: 32px;
}
#landing p {
  line-height: 2;
}
.greeting {
  display: inline-flex;
  align-items: center;
  margin-bottom: 15px;
}
.info .hand {
  display: flex;
  animation: waving-hand linear 0.5s infinite alternate;
  transform-origin: 80% 80%;
  padding-right: 5px;
}
.name {
  font-weight: bold;
  display: inline-flex;
}
.job {
  font-style: italic;
  font-size: 28px;
}
.job::after {
  content: "|";
  font-style: normal;
  display: inline-block;
  transform: translateX(5px);
  animation: fade linear 0.5s infinite alternate;
}
.btns {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  gap: 15px;
  margin-top: 20px;
}
.info .btns a {
  color: #fff;
  display: block;
  font-size: 18px;
  font-weight: bold;
  width: fit-content;
  padding: 10px;
  border-radius: 5px;
  transition: var(--main-transition);
  display: flex;
  align-items: center;
  gap: 10px;
}
.info .btns .resume {
  background-color: var(--red-color);
}
.info .btns .hire {
  background-color: var(--blue-color);
}
.resume-icon,
.hire-icon {
  display: flex;
  align-items: center;
}
.resume-icon svg,
.hire-icon svg {
  width: 25px;
  height: 25px;
  fill: #fff;
}
.info .btns a:hover {
  filter: brightness(1.3);
  transform: translateY(-10px);
  box-shadow: 0px 10px 20px 0px rgb(0 0 0 / 10%);
}
/* Landing End */

/* About Start */
#about {
  color: #fff;
  background-color: var(--blue-color);
}
#about h2::after {
  background-image: linear-gradient(
    to left,
    var(--blue-color) 50%,
    var(--red-color) 50%
  );
}
#about .container {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: flex-start;
  justify-items: flex-start;
  gap: 20px;
  position: relative;
  z-index: 99;
}
#about img {
  width: 100%;
  max-width: 500px;
  margin-bottom: 20px;
  border: 3px solid #fff;
  border-radius: 15px;
  transition: var(--main-transition);
}
#about img:hover {
  filter: grayscale(1);
}
.about p {
  font-size: 16px;
  line-height: 1.8;
  margin-bottom: 20px;
  max-width: 500px;
}
.social {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 10px;
  font-size: 18px;
  margin-top: 30px;
}
.social-list {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  gap: 5px;
}
.social-list li a {
  display: flex;
  padding: 5px;
  transition: var(--main-transition);
}
.social-list li a:hover {
  transform: translateY(-5px);
}
.about svg {
  width: 20px;
  height: 20px;
  fill: #fff;
}
#about .wave {
  position: absolute;
  bottom: 0px;
  transform: translateY(60%);
  z-index: 1;
  fill: var(--blue-color);
}
/* About End */

/* Projects Start */
#projects .container {
  display: flex;
  align-items: stretch;
  justify-content: flex-start;
  gap: 50px 20px;
  flex-wrap: wrap;
}
.project {
  color: #000;
  border: 1px solid #ccc;
  border-radius: 10px;
  overflow: hidden;
  text-align: center;
  width: calc(100% / 3 - 15px);
}
.project .project-img {
  overflow: hidden;
  line-height: 0;
}
.project img {
  transition: var(--main-transition);
  width: 100%;
}
.project:hover img {
  transform: scale(1.05);
  /* opacity: 0.8; */
}
.project-info {
  padding: 15px;
}
.project h3 {
  font-size: 22px;
  padding-bottom: 15px;
  border-bottom: 1px solid #ccc;
  transition: var(--main-transition);
}
.project:hover h3 {
  color: var(--red-color);
}
.project .description {
  font-size: 14px;
  margin: 15px 0;
  line-height: 1.8;
  text-align: center;
  color: #444;
}
.project .tech-stack {
  padding-top: 15px;
  border-top: 1px solid #ccc;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 15px;
}
.project .tech-stack span {
  font-size: 10px;
  font-weight: bold;
  background-color: #e0e0e0;
  padding: 5px;
  border-radius: 10px;
}
.project .details {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding-top: 15px;
  border-top: 1px solid #ccc;
  font-weight: bold;
}
.details svg {
  width: 16px;
  height: 16px;
}
.project:hover .details svg {
  animation: right-left ease 0.3s infinite alternate;
}
.explore {
  display: flex;
  flex-direction: column;
  margin: 50px auto 0;
  gap: 15px;
  max-width: 400px;
  padding: 0 20px;
  text-align: center;
  color: #333;
}
.explore a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  color: var(--red-color);
  font-size: 20px;
  font-weight: bold;
  transition: var(--main-transition);
}
.explore a:hover {
  filter: brightness(1.5);
}
.explore a:hover svg {
  animation: right-left ease 0.3s infinite alternate;
}
.explore svg {
  fill: var(--red-color);
  margin-top: 5px;
  width: 20px;
  height: 20px;
}
/* Projects End */

/* Clients Start */
#clients .container {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  align-items: center;
  justify-items: center;
  gap: 30px;
}
#clients .client {
  height: 0;
  width: 100%;
  padding-bottom: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #ccc;
  border-radius: 15px;
  position: relative;
  border-radius: 15px;
  overflow: hidden;
}
.client img {
  max-height: 70%;
  width: 90%;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}
.view-client {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  padding: 15px;
  text-align: center;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  gap: 5px;
  color: #fff;
  z-index: 9;
  transition: var(--main-transition);
  opacity: 0;
}
.client:hover .view-client {
  opacity: 1;
}
.view-client::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  height: 100%;
  width: 100%;
  background: linear-gradient(
    90deg,
    var(--red-color) 0%,
    var(--blue-color) 100%
  );
  z-index: -1;
  opacity: 0.9;
}
.client-name {
  font-size: 20px;
}
.view-client .view-icon {
  background: #fff;
  padding: 10px;
  border-radius: 50%;
  line-height: 0;
}
.view-client svg {
  width: 30px;
  height: 30px;
  fill: var(--red-color);
}
/* Clients End */

/* Contact Start */
#contact .container {
  display: grid;
  grid-template-columns: 1.5fr 1fr;
  gap: 50px;
  align-items: flex-start;
  justify-items: center;
  margin: auto;
}
#contact .explore {
  margin-top: 0px;
  width: 100%;
  padding: 0;
}
#contact .explore a:first-child {
  display: block;
}
#contact .explore a:first-child:hover {
  filter: none;
}
.contact-vector {
  max-width: 350px;
  width: 100%;
}
.contact-form {
  max-width: 600px;
  width: 100%;
  margin: auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.contact-form input,
.contact-form textarea {
  height: 50px;
  border: 1px solid #ccc;
  border-radius: 5px;
  padding: 10px;
  font-family: var(--en-font);
  font-size: 14px;
  transition: var(--main-transition);
}
.contact-form input:focus,
.contact-form textarea:focus,
.contact-form input:hover,
.contact-form textarea:hover {
  outline: none;
  border: 1px solid var(--red-color);
}
.contact-form textarea {
  height: 200px;
}
.contact-form input[type="submit"] {
  background-color: var(--red-color);
  color: #fff;
  font-size: 18px;
  font-weight: bold;
  line-height: 1;
  cursor: pointer;
}
.contact-form input[type="submit"]:hover {
  filter: brightness(1.5);
}
/* Contact End */

/* Footer Start */
#footer {
  background-color: #fff;
  position: relative;
  padding: 20px;
  box-shadow: 0px -5px 20px 0px rgb(0 0 0 / 10%);
}
#footer .container {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 5px;
  text-align: center;
  font-size: 14px;
}
#footer .heart {
  color: #ff0000;
  line-height: 1.6;
  animation: beat linear 0.5s infinite alternate;
}
#footer .developer {
  color: var(--red-color);
  font-weight: bold;
}
#footer .copy {
  font-weight: bold;
  transform: translateY(3px);
  display: inline-flex;
}
/* Footer End */

/* ------------------------- */

/* RTL Styles Start */

[dir="rtl"] body {
  font-family: var(--ar-font);
}
[dir="rtl"] section h2 {
  font-size: 28px;
}
[dir="rtl"] section h2::after {
  background-image: linear-gradient(
    to left,
    var(--red-color) 50%,
    var(--blue-color) 50%
  );
  background-position-x: left;
}
[dir="rtl"] section[data-view="inView"] h2::after {
  background-position-x: right;
  opacity: 1;
}
/* RTL Header */
[dir="rtl"] #header li a::after {
  right: -100%;
}
[dir="rtl"] #header li a:hover::after {
  right: 0px;
}
[dir="rtl"] .lang-btn {
  direction: ltr;
  justify-content: flex-end;
  font-weight: normal;
  font-size: 17px !important;
}
/* RTL Hero */
[dir="rtl"] .greeting,
[dir="rtl"] .name {
  font-size: 30px;
}
[dir="rtl"] .job {
  font-size: 26px;
}
[dir="rtl"] .info .btns a {
  font-size: 16px;
}
/* RTL About */
[dir="rtl"] #about h2::after {
  background-image: linear-gradient(
    to left,
    var(--red-color) 50%,
    var(--blue-color) 50%
  );
}
/* RTL Projects */
[dir="rtl"] .project h3 {
  font-size: 20px;
}
[dir="rtl"] .explore a {
  font-size: 18px;
}
[dir="rtl"] .project .details {
  font-size: 15px;
}
[dir="rtl"] .project .details svg,
[dir="rtl"] .explore a svg {
  transform: rotateY(180deg);
}
[dir="rtl"] .project:hover .details svg,
[dir="rtl"] .explore a:hover svg {
  animation: left-right ease 0.3s infinite alternate;
}

/* RTL Contact */
[dir="rtl"] .contact-form input,
[dir="rtl"] .contact-form textarea {
  font-family: var(--ar-font);
}

/* RTL Styles End */

/* ------------------------- */

/* Animation Start */
@keyframes waving-hand {
  to {
    transform: rotate(20deg);
  }
}
@keyframes beat {
  to {
    transform: scale(1.25);
  }
}
@keyframes fade {
  0% {
    opacity: 0;
  }
  40% {
    opacity: 0;
  }
  50% {
    opacity: 1;
  }
}
@keyframes right-left {
  to {
    transform: translateX(5px);
  }
}
@keyframes left-right {
  to {
    transform: translateX(-5px) rotateY(180deg);
  }
}
/* Animation End */

/* Media Queries */

@media (max-width: 950px) {
  .project {
    width: calc(50% - 20px);
  }
  #contact .container {
    grid-template-columns: 1fr 1fr;
  }
}
@media (max-width: 860px) {
  body.menu-active {
    overflow-y: hidden;
  }
  .nav-toggler {
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .navlist {
    display: none;
  }
  .navlist.active {
    display: flex;
    flex-direction: column;
    position: fixed;
    top: 79px;
    left: 0px;
    background-color: #fff;
    width: 100%;
    height: calc(100vh - 79px);
    align-items: flex-start;
    justify-content: flex-start;
    border-top: 1px solid #ddd;
  }
  .navlist.active li {
    border-bottom: 1px solid #ddd;
    width: 100%;
  }
  #about .container {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }
  .social {
    justify-content: center;
  }
  .client-name {
    font-size: 18px;
  }
}
@media (max-width: 768px) {
  #projects .container {
    justify-content: center;
  }
  .buttons {
    justify-content: center;
  }
  .project {
    width: 100%;
    max-width: 500px;
  }
  #clients .container {
    grid-template-columns: 1fr 1fr;
    max-width: 500px;
  }
  #contact .container {
    grid-template-columns: 1fr;
  }
  .contact-vector {
    display: none;
  }
  #contact .explore a {
    display: flex;
  }
  .contact-form {
    width: 100%;
    max-width: 500px;
  }
}
@media (max-width: 600px) {
  .info .greeting,
  .info .name {
    font-size: 28px;
  }
  [dir="rtl"] .info .greeting,
  [dir="rtl"] .info .name {
    font-size: 26px;
  }
  .job {
    font-size: 24px;
  }
  [dir="rtl"] .job {
    font-size: 22px;
  }
  #clients .container {
    gap: 20px;
  }
  .client-name {
    font-size: 16px;
  }
}
@media (max-width: 375px) {
  .info .greeting,
  .info .name {
    font-size: 22px;
  }
  [dir="rtl"] .info .greeting,
  [dir="rtl"] .info .name {
    font-size: 20px;
  }
  .resume-icon svg,
  .hire-icon svg {
    width: 22px;
    height: 22px;
  }
  .info .job {
    font-size: 18px;
  }
  #landing .info .btns a {
    font-size: 16px;
    line-height: 1;
  }
  [dir="rtl"] .info .job {
    font-size: 16px;
  }
  [dir="rtl"] #landing .info .btns a {
    font-size: 14px;
  }
}
