body{
  overflow-x: hidden;
}

/* hero section */
#hero-section {
  display: flex;
  height: 100vh;
}
#particle-bg {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: -2; /* Damit es hinter den Inhalten liegt */
}

/* left side */
#hero-text {
  display: flex;
  flex-direction: column;
  justify-content: center;
  flex: 2;
}

#hero-text-content {
  margin-left: 6vw;
}


/* text */
#hero-text-content p:nth-of-type(1) {
  font-size: clamp(var(--font-size-m), 1.8vw, var(--font-size-l));
  font-weight: 500;
  color: var(--primary-font-color);
}

#hero-text h1 {
  font-size: clamp(var(--font-size-xl), 3vw, var(--font-size-xxxxl));

  font-weight: 700;
  color: var(--accent-color);
  margin: var(--margin-xl) 0;
  line-height: 1;
}

/* text animation */
#hero-text-content p:nth-of-type(2) {
  font-size: clamp(var(--font-size-l), 2vw, var(--font-size-xl));
  /* font-size: 2vw; */
  font-weight: 500;
  color: var(--primary-font-color);

  line-height: 0.8em !important;
  text-transform: none;
  font-weight: 600;
}

#hero-text-content p:nth-of-type(2) span {
  color: white;
  animation-delay: 2s;
  font-weight: 600;
  line-height: 120%;
}

.txt-rotate > .wrap {
  border-right: 0.08em solid #666;
}


/* Buttons */
#hero-btns {
  display: flex;
  flex-wrap: wrap;
  column-gap: var(--margin-xxl);
  row-gap: var(--margin-xs);
  margin-top: 10vh;
  max-width: 90%;
  z-index: 100;
  position: relative; /* Damit z-index funktioniert */
}

.btn-basic {
  text-decoration: none;
  border-radius: 8px;
  padding: var(--padding-l);
  font-size: var(--font-size-m);
  font-weight: 500;
  letter-spacing: 1px;
  text-align: center;
  transition: all 0.3s ease;
  width: clamp(150px, 10vw, 200px);
}

/* Button Hover- und Active-Effekte */
#hero-btns a:active {
  transform: translateY(2px);
  scale: 0.98;
}

#hero-btns a:nth-of-type(1) {
  border: 1.5px solid var(--accent-color);
}

#hero-btns a:nth-of-type(2) {
  border: 1.5px solid var(--white-color);
}

#hero-btns a:nth-of-type(1):hover {
  transform: translateY(-5px);
  background-color: var(--accent-color);
}

#hero-btns a:nth-of-type(2):hover {
  transform: translateY(-5px);
  background-color: var(--white-color);
  color: var(--black-color);
}


/* right side */
#hero-img {
  flex: 1;
  /* background-color: aqua; */
}

#hero-img img {
}

/* Section 2 */
#section-aboutMe {
  padding: 5vw 0;
  background-color: var(--primary-bg-color);
}

#aboutMe-wrapper {
  margin: 0 auto;
  /* Zentriert den Container */
  display: grid;
  grid-template-columns: 50% 50%;
  align-items: center;
  justify-content: center;
  gap: 5vw;
}

/* Img */
#aboutMe-img {
  display: flex;
  justify-content: right;
  /* margin-right: 10vw; */
}

#section-aboutMe img {
  width: 50%;
  min-width: 300px;
  padding: 0.2vw;

  border-left: 8px solid var(--primary-color);
  border-bottom: 8px solid var(--primary-color);

  /* box-shadow: -20px 20px 0px -6px var(--accent-color); */

  /* border-radius: 1vw; */
  border-radius: 20px 0 20px 20px;
}

/* infos */
#aboutMe-infos {
  /* width: clamp(300px, 30vw, 500px); */
  width: 85%;
  padding: 0 var(--padding-m);
}

#aboutMe-infos h1 {
  margin-bottom: var(--margin-m);
}

#infos-text {
  font-size: var(--font-size-sm);
  margin: var(--margin-l) 0;
  line-height: 1.5;
  /* Erhöhter Zeilenabstand */
  text-align: justify;
  /* Blocksatz für gleichmäßige Textkanten */
  text-justify: inter-word;
  /* Optimiert die Wortabstände im Blocksatz */
}

#infos-column {
  display: grid;
  grid-template-columns: auto 1fr;
  /* Erste Spalte passt sich dem Inhalt an, zweite nimmt den Rest ein */
  gap: var(--margin-m);
  /* Abstand zwischen den Zeilen */
}

#infos-column p {
  display: contents;
  /* Entfernt die Umrandung des <p> Elements, sodass der Text einfach im Grid fließt */
  font-size: var(--font-size-sm);
  line-height: 1.5;
}

.infos-firstRow {
  font-weight: bold;
  text-align: left;
  /* Text linksbündig in der ersten Spalte */
}

#infos-column span + text {
  text-align: left;
  /* Text rechtsbündig für gute Reihenfolge */
}

/* Button */
#aboutMe-btn {
  color: var(--primary-font-color);
  border: white 1.5px solid;

  margin-top: var(--margin-xxl);
  width: clamp(150px, 15vw, 300px);
}

#aboutMe-btn:hover {
  cursor: pointer;
  background-color: var(--black-color);
  color: var(--black-color);
}

#aboutMe-btn:hover {
  transform: translateY(-5px);
  background-color: var(--white-color);
  color: var(--black-color);
}

#aboutMe-btn:hover p {
  color: var(--black-color);
}

.textBold {
  font-weight: bold;
}

/* section 3 - what i do */
#whatIDo {
  padding: 5vw 0;
  background-color: var(--secondary-bg-color);
}

#whatIDo-container {
  margin: 0 auto;
  /* Zentriert den Container */
}

#whatIDo-wrapper {
  display: flex;
  gap: 4vw;
  justify-content: center;
  /* Boxen werden in der Mitte ausgerichtet */
  flex-wrap: wrap;
}

.whatIDo-box {
  width: 10vw;
  min-width: 250px;
  align-items: center;
  display: flex;
  flex-direction: column;
  padding: var(--padding-xl);
  border-radius: 20px;
  box-shadow: 0 0 20px rgba(0, 0, 0, 0.1);
  background-color: var(--secondary-color);

  text-align: center;
  transition: all 0.3s ease;
}

.whatIDo-box h2 {
  font-size: var(--font-size-m);
  margin: var(--margin-l) 0;
  transition: all 0.3s ease;
}

.whatIDo-box p {
  font-size: var(--font-size-s);
  color: var(--primary-font-color);
}

.whatIDo-box img {
  width: 5vw !important;
  min-width: 50px;
  min-height: 50px;
  margin: var(--margin-l) 0;
}

/* hover */
.whatIDo-box:hover {
  transform: translateY(-5px);
  /* background-color: var(--accent-color); */
}

.whatIDo-box:hover h2 {
  color: var(--accent-color);
}

/* section 4 - skills */
#skills {
  padding: 5vw 0;
  background-color: var(--primary-bg-color);
}

#skills-container {
  margin: 0 auto;
  /* Zentriert den Container */
}

/* key skills */
#keySkills-wrapper {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(25vw, 1fr));
  gap: var(--margin-xl);
  justify-content: center;
  margin-top: var(--margin-xl);
}

.keySkill {
  padding: var(--padding-l);
  border-radius: 20px;
  box-shadow: 4px 4px 100px rgba(0, 0, 0, 0.1);
  background-color: var(--secondary-color);
  text-align: center;
  transition: all 0.3s ease;
}

.keySkill:hover {
  transform: translateY(-5px);
  background-color: var(--primary-color);
  /* color: var(--primary-color); */
}

.keySkill:hover p {
  /* color: var(--primary-color); */
}

.keySkill img {
  width: 3vw;
  min-width: 50px;
  min-height: 50px;
  margin: var(--margin-l) 0;
}

.keySkill p {
  font-size: var(--font-size-m);
  font-weight: 600;
}

/* Additional Skills */
#skills-headline {
  margin-top: var(--margin-xxxl);
}

#skills-wrapper {
  display: flex;
  flex-wrap: wrap;

  margin-top: var(--margin-xl);
  gap: var(--margin-xl);
  /* justify-content: center; */
}

.skill {
  position: relative; /* Wichtig für die Positionierung der Tooltip-Box */

  display: grid;
  place-items: center;
  width: 3vw;
  height: 3vw;

  min-width: 35px;
  min-height: 35px;

  padding: var(--padding-m);

  background-color: var(--secondary-color);
  border-radius: 50%;
  box-shadow: 4px 4px 100px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
}

.skill img {
  width: 90%;
  object-fit: contain;
}

.skill:hover {
  transform: translateY(-5px);
}

.tooltip {

  position: absolute;
  bottom: 120%; /* Position oberhalb des Skills */
  left: 50%;
  transform: translateX(-50%);
  padding: 0.5em 1em;
  background-color: rgba(0, 0, 0, 0.8);
  color: #fff;
  font-size: 0.8em;
  border-radius: 5px;
  white-space: nowrap;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s ease, visibility 0.3s ease;
}

.skill:hover .tooltip {
  opacity: 1;
  visibility: visible;
}

/* learning */
.lowerSkillGap {
  margin-top: var(--margin-s);
}

/* footer */
footer {
  background-color: var(--secondary-bg-color);
  color: var(--primary-font-color);
  padding: 2rem 0;
}

#footer-container {
  display: flex;
  justify-content: space-around;
  align-items: center;
}

footer ul {
  display: flex;
  flex-direction: row;
  list-style: none;
  gap: 2rem;
  margin: 0;
  padding: 0;
}

footer a {
  color: var(--primary-font-color);
  text-decoration: none;
  font-size: 1rem;
  transition: color 0.3s ease;
}

footer a:hover {
  color: var(--accent-color);
}

#footer-right a{
  text-decoration: underline;
}

/* foooter responsive */
@media (max-width: 1200px) {
  #footer-container {
    flex-direction: column;
    text-align: center;
    gap: 4vw;
  }
}
@media (max-width: 600px) {
  #footer-container {
    gap: 6vw;
  }
}

/* --------------- Responsive Design -------------- */
@media (max-width: 1130px) {
  #skills-wrapper {
    gap: var(--margin-m);
  }
}

@media (max-width: 1000px) {
  /* Was ich mache - untereinander 
  Key Skills
  Gap Addi skills*/
  .whatIDo-box {
    width: 90%;
  }

  #skills-wrapper {
    gap: var(--margin-s);
  }
}

@media (max-width: 900px) {
  /* Über mich - Bild und Text untereinander */
  #aboutMe-wrapper {
    grid-template-columns: 1fr;
    grid-template-rows: 1fr 1fr;
  }

  #aboutMe-img {
    justify-content: center;
    /* grid-row: 2; */
    grid-row: 2;
  }

  #aboutMe-infos {
    grid-row: 1;
  }

  /* skills */
  #keySkills-wrapper {
    grid-template-columns: 1fr 1fr;
  }

  #skills-wrapper {
    justify-content: center;
  }
}

@media (max-width: 768px) {
  /* skills */
  #keySkills-wrapper {
    grid-template-columns: 1fr;
  }
}
