/* === Small CSS Reset === */
* {
  margin: 0;
  padding: 0;
}
*,
*::after,
*::before {
  box-sizing: border-box;
  text-decoration: none;
  list-style: none;
  font-family: "Space Grotesk", sans-serif, Arial, Helvetica, sans-serif;
}
/* color */
:root {
  --darkgreen: #0d8980;
  --green: #40b8a2;
  --lightgreen: #75d6ad;
  --white: #f6fdfd;
  --black: #0e1d33;
  --opagreen: rgba(64, 184, 162, 0.16);
  --opablack: #0e1d33f8;
  --green-gradient: linear-gradient(90deg, #45a49d, transparent) #75d6ad;
  transition: background-colo;
  -webkit-transition: background-colo;
  -moz-transition: background-colo;
  -ms-transition: background-colo;
  -o-transition: background-colo;
}
/* Text markierung */
::-moz-selection {
  background: var(--green);
  color: var(--white);
}
::selection {
  background: var(--green);
  color: var(--white);
}
/* scrollbar */
::-webkit-scrollbar {
  width: 0.5rem;
  height: 8px;
}
/* Track */
::-webkit-scrollbar-track {
  box-shadow: inset 0 0 5px var(--green);
  border-radius: 10px;
}
/* Handle */
::-webkit-scrollbar-thumb {
  background: var(--green);
  border-radius: 10px;
}
body {
  background: var(--white);
}
/* section & card styling */
.section-width {
  width: 90%;
  margin: auto;
  padding-bottom: 7rem;
}
.bg-black {
  background: var(--black);
  padding-top: 7rem;
  margin-bottom: 5rem;
}
.card-gradient-black {
  border-radius: 10px;
  background: linear-gradient(
    47deg,
    rgba(246, 253, 253, 0.1) -92.29%,
    rgba(14, 29, 51, 0.34) 76.88%
  );
  color: var(--white);
  padding: 3rem;
}
.card-white {
  border-radius: 10px;
  box-shadow: 0px 0px 57.3px 10px rgba(14, 29, 51, 0.1);
  background: var(--white);
}
.card-gradient-green {
  background: var(--green-gradient);
  color: var(--black);
  border-radius: 10px;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 2rem;
  cursor: pointer;
  transition: transform 0.2s ease;
  -webkit-transition: transform 0.2s ease;
  -moz-transition: transform 0.2s ease;
  -ms-transition: transform 0.2s ease;
  -o-transition: transform 0.2s ease;
}
.card-gradient-green:hover,
.img-card:hover {
  transform: scale(0.97);
}
/* font */
h1 span,
h2,
h3 {
  color: var(--green);
  text-transform: uppercase;
}
h1 {
  display: flex;
  flex-direction: column;
  font-size: 7em;
  line-height: 60px;
  margin-bottom: 0.5rem;
  color: var(--opagreen);
  font-weight: 300;
  text-transform: uppercase;
  margin-bottom: 3rem;
}
h2 {
  font-size: 3em;
  margin-bottom: 3rem;
  font-weight: 500;
}
h3 {
  font-size: 2.5em;
  margin-bottom: 1rem;
  font-weight: 500;
}
h4 {
  font-size: 1.7em;
  text-transform: uppercase;
  font-weight: 500;
  margin-bottom: 1rem;
}
p,
.logo-name {
  color: var(--black);
  font-weight: 400;
  font-size: 1.5em;
  padding-bottom: 1rem;
}
span {
  font-size: 50%;
  font-weight: 500;
}
.link,
.link-file {
  color: var(--darkgreen);
  font-weight: 500;
}
.link-file {
  font-size: 1.5rem;
  cursor: pointer;
  display: inline-block;
}
/* icons */
.icon-size-xs {
  width: 16px;
  height: 16px;
}
.icon-size-s {
  width: 32px;
  height: 32px;
}
.icon-size-m {
  width: 48px;
  height: 48px;
}
/* brand icon */
.container-brand-icon {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: auto;
  gap: 2rem;
}
.container-brand-icon div {
  display: flex;
  width: 70px;
  height: 70px;
  background: var(--white);
  border-radius: 50%;
  justify-content: center;
  align-items: center;
  justify-self: center;
}
.bubble {
  display: flex;
  justify-content: center;
  align-items: center;
  border-radius: 100%;
  background: linear-gradient(
    178.22deg,
    #45a49d 8.65%,
    #40b8a2 40.66%,
    #75d6ad 78.96%
  );
  box-shadow: inset 0px 4px 10px rgba(69, 164, 157, 0.2);
}
.socialMedia,
.socialMedia .icon a {
  display: flex;
  justify-content: center;
  align-items: center;
}
.socialMedia {
  gap: 0.5rem;
}
/* btn */
.btn {
  display: inline-block;
  text-align: center;
  border-radius: 50px;
  cursor: pointer;
  font-weight: 500;
  font-size: 1.3em;
  padding: 16px 20px;
  width: 250px;
}
.full {
  background: linear-gradient(90deg, #45a49d, transparent) #75d6ad;
  transition: background-color 3s;
  color: var(--black);
}
.full:hover {
  background: linear-gradient(90deg, #75d6ad, transparent) #45a49d;
  box-shadow: 0px 1px 1px rgba(0, 0, 0, 0.37);
}
.ghost {
  position: relative;
  border: 10px;
  background: var(--white);
  box-shadow: -1px 0 var(--darkgreen), 0 1px var(--lightgreen),
    1px 0 var(--lightgreen), 0 -1px var(--darkgreen) !important;
  color: var(--green);
  font-size: 1.3em;
}
.ghost::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  border-radius: 50px;
  border: 10px solid transparent;
  box-shadow: 0px 5px 5px rgba(54, 128, 123, 0.37);
}
.ghost:hover::before {
  box-shadow: 0px 3px 2px rgba(54, 128, 123, 0.37);
}
/* projekt vorschau */
.title-more-project {
  display: flex;
  flex-direction: column;
}
.title-more-project h2,
.btn-more {
  align-self: center;
}
.project-card {
  display: flex;
  gap: 2rem;
}
.container-more-project {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  overflow-x: auto;
  padding-bottom: 2rem;
}
.project-card {
  flex-direction: column;
}
.container-more-project a {
  width: 90%;
  justify-self: center;
}
.more-project-title {
  display: flex;
  flex-direction: column;
}
.project-card img {
  width: 240px;
  height: 170px;
}
.btn-more {
  margin-top: 1rem;
}
/* footer */
footer {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  width: 90%;
  margin: auto;
  padding-bottom: 3rem;
}
.footer {
  background: var(--green);
  height: 3px;
  width: 100%;
  margin: 3rem;
  border-radius: 10px;
}
.container-footer {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.8em;
}
.container-footer a {
  color: var(--black);
  font-size: 1.5em;
}
.footer-mail {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 0.3rem;
}
/* media queries */
@media screen and (min-width: 1950px) {
  .section-width {
    width: 80%;
    padding-bottom: 10rem;
  }
  .bg-black {
    padding-top: 10rem;
  }
  .card-gradient-black {
    padding: 5rem;
  }
}
@media screen and (max-width: 950px) {
  h1 {
    justify-content: center;
    align-items: center;
  }
  h2 {
    text-align: center;
  }
  span {
    text-align: center;
  }
}
@media screen and (max-width: 780px) {
  .container-footer {
    flex-direction: column;
    gap: 0.5rem;
  }
}
@media screen and (max-width: 600px) {
  h1 {
    font-size: 4.5em;
    line-height: 30px;
  }
  h2 {
    font-size: 2em;
    margin-bottom: 2rem;
  }
  h3 {
    font-size: 1.5em;
  }
  h4 {
    font-size: 1.5em;
  }
  p {
    font-size: 1.3em;
  }
  .section-width {
    padding-bottom: 5rem;
  }
  .bg-black {
    padding-top: 5rem;
    margin-bottom: 3rem;
  }
  .icon-size-m {
    width: 32px;
    height: 32px;
  }
  .container-brand-icon div {
    width: 60px;
    height: 60px;
  }
  .card-gradient-black {
    flex-direction: column;
    padding: 2rem 0;
  }
  .btn {
    align-self: center;
  }
  footer {
    padding-top: 1rem;
  }
}
@media screen and (max-width: 400px) {
  .container-brand-icon {
    gap: 0.5rem;
    padding: 2rem;
  }
}
@media screen and (max-width: 350px) {
  h1 {
    font-size: 2.3em;
    line-height: 20px;
    justify-content: center;
    align-items: center;
  }
  h2 {
    font-size: 1.7em;
  }
  h3,
  h4 {
    font-size: 1.5em;
  }
  p {
    font-size: 1em;
  }
}
@media screen and (max-width: 300px) {
  .btn {
    width: 200px;
  }
}
