@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@500;600&family=Titillium+Web:wght@300;400;600&display=swap");
@import url("https://fonts.cdnfonts.com/css/gotham");

html {
  scroll-behavior: smooth;
}

:root {
  --font-1: "Gotham", sans-serif;
  --font-2: "Titillium Web", -apple-system, BlinkMacSystemFont, "Segoe UI",
    Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji",
    "Segoe UI Symbol";
  --font-3: "Montserrat", sans-serif;
  --background-color-4: #2287fa;
  --background-color-5: #04f404; /* terminal green screen */
}

#wrapper {
  display: flex;
  flex-direction: column;
}

.background-image {
  background-image: url(../img/bg.jpg);
  background-attachment: fixed;
  z-index: -1;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  /* filter: invert(80%);
  -webkit-filter: invert(80%); */
  /* filter: blur(4px);
  -webkit-filter: blur(4px); */
  background-position: center;
  background-repeat: no-repeat;
  background-size: cover;
  position: fixed;
}

body {
  margin: 0;
  padding: 0;
}

header {
  display: flex;
  background-color: black;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  align-items: center;
  height: 100px;
  justify-content: center;
  z-index: 1;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
}

header .left {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: flex-start;
}

header .left > a > img {
  width: 180px;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
}

header .right {
  display: flex;
  flex: 1;
  align-items: flex-end;
  margin: 0;
  padding: 0;
  justify-content: flex-end;
}

header .right ul {
  flex: 1;
  list-style-type: none;
  display: flex;
  align-items: flex-start;
  justify-content: flex-end;
}

header .right ul li {
  margin-right: 2em;
}

header .right ul li a {
  font-family: var(--font-2);
  text-decoration: none;
  font-size: 21px;
  font-weight: 500;
  color: white;
  text-decoration: none;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
}

header .right ul li a:hover {
  cursor: pointer;
  color: #37b9e9 !important;
  border-bottom: 3px solid #37b9e9;
  -webkit-transition: all 0.3s ease;
  -moz-transition: all 0.3s ease;
  -o-transition: all 0.3s ease;
  -ms-transition: all 0.3s ease;
}

header .right ul li a:visited {
  color: #37b9e9 !important;
  border-bottom: 3px solid #37b9e9 !important;
}

#intro {
  padding-top: 100px;
}

#intro div {
  display: flex;
  min-height: 480px;
  flex: 1;
  justify-content: center;
  align-items: center;
}

#intro h1 {
  font-family: var(--font-1);
  text-align: center;
  text-transform: uppercase;
  font-size: 3.2em;
  width: 95%;
  line-height: 1.4em;
}

#projects {
  /* background-color: lightblue; */
}

.projects-title {
  text-transform: uppercase;
  font-family: var(--font-1);
}

#contact {
  background-color: #ededed;
  margin-top: 100px;
  padding-bottom: 100px;
}

#contact:after {
  position: absolute;
  top: -30px;
  content: "";
  height: 0;
  width: 0px;
  border-right: 500px solid red;
  border-top: 30px solid transparent;
}

#contact h1 {
  font-family: var(--font-1);
  font-size: 2.3em;
  text-transform: uppercase;
}

#contact h2,
#contact p {
  font-family: var(--font-2);
}

.contact-offices-top {
  display: flex;
  justify-content: center;
  align-items: center;
}

.contact-offices-top img {
  max-width: 500px;
  padding: 2em;
}

.contact-offices-bottom {
  display: flex;
}

.contact-office {
  margin-left: 1em;
  flex: 1;
}

.contact-office-title {
  font-weight: 600;
  font-size: 1.25em;
}

.contact-edge {
  position: relative;
  height: 50px;
  width: 100%;
  background-color: #ededed;
}

.contact-edge:after {
  position: absolute;
  top: -49px;
  content: "";
  height: 0;
  width: 0px;
  border-right: 100vw solid #ededed;
  border-top: 50px solid transparent;
}

.container {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.container-row {
  display: flex;
  justify-content: center;
  flex-direction: row;
  max-width: 1440px;
  width: 100%;
}

.container-col {
  display: flex;
  align-items: center;
  flex-direction: column;
  max-width: 1440px;
  width: 100%;
}

.project {
  border-radius: 1em;
  margin: 2em;
  flex-direction: row;
  display: flex;
  flex: 1;
  box-shadow: 0 0 11px rgb(33 33 33 / 20%);
}

.project > a {
  text-decoration: none;
  display: flex;
  flex-direction: column;
}

.project-thumbnail {
  flex: 1;
}

.project-thumbnail > img {
  border-radius: 1em 1em 0 0;
  min-height: 280px;
  height: 100%;
  width: 100%;
  object-fit: cover;
}

.project-info {
  background-color: #ffffff;
  border-radius: 0 0 10px 10px;
  border-left: 1px solid rgba(0, 0, 0, 0.3);
  border-right: 1px solid rgba(0, 0, 0, 0.3);
  border-bottom: 3px solid rgba(0, 0, 0, 0.3);
  padding: 21px 23px 17px 23px;
  flex: 1;
}

.project:active {
  transition: all 0.15s ease-out;
  transform: translateY(3px);
}

.project-info:active {
  border-bottom: none;
}

.project-info:hover,
.project-thumbnail > img {
  transition: all 0.3s ease-out;
}

.project-info > h2 {
  font-family: var(--font-1);
  font-weight: bold;
  color: #000000;
  font-size: 1.5em;
  margin-bottom: 10px;
}

.project-info > p {
  color: #707070;
  font-size: 1em;
  font-family: var(--font-2);
  font-weight: 400;
}

.project-info ul {
  border-top: 1px solid #ebebeb;
}

ul {
  margin-top: 10px;
  margin-left: 0;
  padding-top: 10px;
  padding-inline-start: 0;
}

.project ul li,
.projects-filters ul li {
  display: inline-block;
  border: 1px solid #2acbdd;
  border-radius: 99999px;
  font-family: var(--font-2);
  text-transform: uppercase;
  font-size: 0.8em;
  padding: 8px 18px;
  color: #2acbdd;
  margin-right: 6px;
  margin-bottom: 6px;
}

.projects-filters ul li {
  background-color: #15627e;
  border: 1px #55a6c4 solid !important;
  cursor: pointer;
}

.selected {
  background-color: #082a31 !important;
}

.project ul li:hover {
  background-color: #028395;
  transition: all 0.5s ease-out;
  color: white !important;
  cursor: pointer;
}

.projects-filters ul li:hover {
  background-color: #082a31 !important;
  transition: all 0.5s ease-out;
  border: 1px #55a6c4 solid !important;
  cursor: pointer;
}

.project-detail {
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  background-color: #ededed;
  display: flex;
  flex-direction: column;
  border-radius: 15px;
}

.project-detail button {
  position: absolute;
  top: 3em;
  right: 2em;
  z-index: 1;
}

.project-detail-gallery {
  flex: 1.5;
}

.project-detail-gallery > img {
  height: 100%;
  border-top-right-radius: 15px;
  border-top-left-radius: 15px;
  width: 100%;
}

.project-detail-title {
  /* background-color: #ededed; */
  /* margin-top: 100px; */
  /* padding-bottom: 100px; */
  height: 0px;
  background-color: transparent;
}

.project-detail-title:after {
  /* position: relative; */
  /* top: -30px; */
  /* content: ""; */
  /* z-index: 9; */
  /* height: 10px; */
  /* border-right: 300px solid #ededed; */
  /* border-top: 10px solid transparent; */
  /* width: 100%; */
  /* height: 100%; */
  /* border-right: 90px; */
  /* border-style: solid; */
  /* text-align: center; */
  /* color: #d46a58; */
}

.svg-stroke {
  position: absolute;
  width: 100%;
  height: 100%;
}

.project-detail-description {
  flex: 2;
  padding: 1em;
  overflow-x: auto;
  scrollbar-color: #707070 #ededed;
  margin-block: 1em;
}

.project-detail-title > img {
  border-radius: 0.5em;
  margin: -2em 0 0 1em;
  width: 50px;
  height: 50px;
  box-shadow: 0 0 11px rgb(33 33 33 / 20%);
  position: relative;
  z-index: 5;
}

.android {
  background: url(../icons/android.svg) no-repeat center left;
  border: 1px solid #aac148 !important;
  color: #aac148 !important;
  background-size: 20px;
  background-position: 7px;
  padding-left: 40px !important;
}

.android:hover {
  background-color: #aac148 !important;
  color: white !important;
}

.ios,
.mobile {
  background: url(../icons/apple.svg) no-repeat center left;
  border: 1px solid #000000 !important;
  color: #000 !important;
  background-size: 20px;
  background-position: 7px;
  padding-left: 40px !important;
}

.ios:hover,
.mobile:hover {
  background-color: #000 !important;
  color: white !important;
}

.vue {
  background: url(../icons/vue.svg) no-repeat center left;
  border: 1px solid #41b883 !important;
  color: #41b883 !important;
  background-size: 20px;
  background-position: 7px;
  padding-left: 40px !important;
}

.vue:hover {
  background-color: #41b883 !important;
  color: white !important;
}

.react {
  background: url(../icons/react-2.svg) no-repeat center left;
  border: 1px solid #61dafb !important;
  color: #61dafb !important;
  background-size: 20px;
  background-position: 7px;
  padding-left: 40px !important;
}

.react:hover {
  background-color: #61dafb !important;
  color: white !important;
}

.wordpress {
  background: url(../icons/wordpress.svg) no-repeat center left;
  border: 1px solid #000000 !important;
  color: #000 !important;
  background-size: 20px;
  background-position: 7px;
  padding-left: 40px !important;
}

.mobile {
  background: url(../icons/mobile.svg) no-repeat center left;
  border: 1px solid #000000 !important;
  color: #000 !important;
  background-size: 20px;
  background-position: 7px;
  padding-left: 40px !important;
}

.desktop {
  background: url(../icons/desktop.svg) no-repeat center left;
  border: 1px solid #000000 !important;
  color: #000 !important;
  background-size: 20px;
  background-position: 7px;
  padding-left: 40px !important;
}

.contact-row {
  padding: 1em;
  width: 100%;
}

form {
  display: flex;
  flex-direction: column;
}

form > .container-row {
  justify-content: flex-end;
}

select,
input,
textarea {
  display: flex;
  flex: 1;
  border: 1px solid #c6c6c6;
  outline: 1px solid #f9f9f9;
  background-color: #e8e8e8;
  border-radius: 10px;
  font-family: var(--font-2);
  text-transform: uppercase;
  font-size: 0.9em;
  padding: 8px 18px;
  margin-right: 1em;
  color: #575757;
  box-shadow: inset 1px 1px 8px #c6c6c6;
  margin: 1em 1em 1em 0;
}

#search {
  display: inline-block;
  border: 2px solid #323232;
  border-radius: 0;
  padding: 3px 10px;
  -moz-transform: skewX(-40deg);
  -webkit-transform: skewX(-40deg);
  -o-transform: skewX(-40deg);
  -ms-transform: skewX(-40deg);
  transform: skewX(-40deg);
}

#search input {
  border: 0;
  box-shadow: none;
  -moz-transform: skewX(40deg);
  -webkit-transform: skewX(40deg);
  -o-transform: skewX(40deg);
  -ms-transform: skewX(40deg);
  transform: skewX(40deg);
}

select,
input::placeholder,
textarea::placeholder {
  color: #ababab;
  opacity: 1; /* Firefox */
}

input:before {
  content: "";
  position: absolute;
  left: 10px;
  top: 0;
  bottom: 0;
  width: 20px;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='25' height='25' viewBox='0 0 25 25' fill-rule='evenodd'%3E%3Cpath d='M16.036 18.455l2.404-2.405 5.586 5.587-2.404 2.404zM8.5 2C12.1 2 15 4.9 15 8.5S12.1 15 8.5 15 2 12.1 2 8.5 4.9 2 8.5 2zm0-2C3.8 0 0 3.8 0 8.5S3.8 17 8.5 17 17 13.2 17 8.5 13.2 0 8.5 0zM15 16a1 1 0 1 1 2 0 1 1 0 1 1-2 0'%3E%3C/path%3E%3C/svg%3E")
    center / contain no-repeat;
}

input:focus {
  transition: all 0.5s ease-out;
  background-color: #d7d7d7;
}

input[type="button"] {
  padding: 15px 25px;
  display: block;
  font-size: 1em;
  cursor: pointer;
  outline: none;
  width: 33%;
  color: #fff;
  background-color: #000000;
  border: none;
  border-radius: 15px;
  box-shadow: 0 5px rgb(0 0 0 / 30%);
}

input[type="button"]:hover {
  background-color: #000011;
}

input[type="button"]:active {
  box-shadow: 0 5px #e8e8e8;
  transition: all 0.1s ease-out;
  transform: translateY(4px);
}

.slider-wrapper {
  position: relative;
  overflow: hidden;
  border-radius: 1em;
}

.slides-container {
  height: 300px;
  width: 100%;
  display: flex;
  overflow-x: hidden;
  overflow-y: hidden;
  scroll-behavior: smooth;
  scroll-color: transparent #ddd;
  list-style: none;
  margin: 0;
  padding: 0;
  position: static;
  border-top-right-radius: 1em;
  border-top-left-radius: 1en;
  z-index: 0;
}

.slide-arrow {
  position: absolute;
  display: flex;
  top: 0;
  bottom: 0;
  height: 4rem;
  background-color: white;
  border: none;
  width: 2rem;
  font-size: 3rem;
  padding: 0;
  cursor: pointer;
  opacity: 0.5;
  transition: opacity 100ms;
}

.slide-arrow:hover,
.slide-arrow:focus {
  opacity: 1;
}

#slide-arrow-prev {
  left: 0;
  padding-left: 0.25rem;
  border-radius: 0 2rem 2rem 0;
}

#slide-arrow-next {
  right: 0;
  padding-left: 0.75rem;
  border-radius: 2rem 0 0 2rem;
}

.slide {
  width: 100%;
  height: 100%;
  flex: 1 0 100%;
  object-fit: cover;
}

.slide img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  border-top-left-radius: 1em;
  border-top-right-radius: 1em;
}

.overlay {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.1);
  backdrop-filter: blur(3px);
  z-index: 2;
}

.modal {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.4rem;
  padding: 1.3rem;
  min-height: 450px;
  border-radius: 15px;
  z-index: 3;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 50%;
  height: 75%;
  background-color: white;
  border-bottom: 3px solid #e8e8e8;
}

.hidden {
  display: none;
}

.modal .flex {
  /* display: flex; */
  /* align-items: center; */
  /* justify-content: space-between; */
}

.modal input {
  padding: 0.7rem 1rem;
  border: 1px solid #ddd;
  border-radius: 5px;
  font-size: 0.9em;
}

.modal h2 {
  font-family: var(--font-1);
  font-weight: bold;
  font-size: 1.5em;
}

.modal p {
  font-size: 1rem;
  font-family: var(--font-2);
}

.project-detail-description ul {
  margin: 1em;
  font-weight: 600;
  font-size: 1.25em;
  list-style-type: square;
}

.project-detail-description ul li {
  font-size: 1rem;
  font-family: var(--font-2);
}

button {
  cursor: pointer;
  border: none;
  font-weight: 600;
}

.btn {
  display: inline-block;
  padding: 0.8rem 1.4rem;
  font-weight: 700;
  background-color: black;
  color: white;
  border-radius: 5px;
  text-align: center;
  font-size: 1em;
}

.btn-open {
  position: absolute;
  bottom: 150px;
}

.btn-close {
  transform: translate(10px, -20px);
  padding: 0.5rem 0.7rem;
  background: #eee;
  border-radius: 50%;
}

@media only screen and (max-device-width: 1024px) and (orientation: portrait) {
  #intro {
    margin-top: 50px;
  }
  #intro div {
    display: flex;
    justify-content: center;
    flex-direction: column;
    max-width: 1024px;
    width: 90%;
  }

  #intro h1 {
    text-align: left;
    font-size: 3em;
    max-width: 1024px;
    width: 90%;
    line-height: 1.5em;
    margin-top: 2em;
  }

  .projects-filters {
    display: flex;
    width: 90%;
    justify-content: center;
    flex-direction: column;
    max-width: 1024px;
  }
  .container-row {
    display: flex;
    justify-content: center;
    flex-direction: column;
    max-width: 1024px;
    width: 90%;
  }
}
