/* Reset und Grundstil */

* {

  margin: 0;

  padding: 0;

  box-sizing: border-box;

}



body {

  font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;

  text-align: center;

  background-color: #ffffff;

  color: #333333;

}



/* Header */

.logo_farbig {

  position: absolute;

  top: 2vh;;

  left: 3vw;

  height: 6vh; 

  margin-bottom: 6rem;

  z-index: 10;

}



/* Allgemeine Sections */

section {

  width: 100%;

  margin-bottom: 40px;

}



/* Versteckte Sektionen*/

.hidden {

  display: none !important; 

}



/* Swipe Seite */

#configuration {

  height: 100vh; /* 100% der Viewport-Höhe */

  width: 100vw;  /* 100% der Viewport-Breite */

  display: flex;

  align-items: center;

  justify-content: center;

  margin-top: 2rem;

}



.card {

  position: relative;

  width: 94%;

  height: 80%;

  background: #f9f9f9;

  border-radius: 20px;

  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);

  overflow:hidden;

}



.card-gradient-overlay {

  position: absolute;

  bottom: 0;

  left: 0;

  width: 100%;

  height: 50%; 

  background: linear-gradient(to top, rgba(0, 0, 0, 0.8), transparent);

  border-radius: 0 0 20px 20px;

  z-index: 1; /* unter Text, aber über dem Bild */

}



/* Inhalt Swipe Seite */

.card-content {

  flex-grow: 1;

  display: flex;

  flex-direction: column;

  justify-content: center;

  margin: 0.5rem;

  

}



.card-content img {

  position: absolute;

  pointer-events: none;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  object-fit: cover;

  border-radius: 20px;

  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);

  z-index: 0;

}



.card-content p {

  margin: 5px 0;

  font-size: 2.5rem;

  font-weight: 600;

  text-align: center;

  padding-bottom: 30px;

  z-index: 999;

  color: #ffffff;

  padding-top: 30rem;

}



/* Swipe Funktion */



.card-content.dragging {

  transition: none;

  will-change: transform;

}



.card-content.animate-back {

  transition: transform 0.4s ease;

  transform: translateX(0) rotate(0deg);

}



.card-content.swipe-left {

  animation: swipeLeft 1.2s ease forwards;

}



.card-content.swipe-right {

  animation: swipeRight 1.2s ease forwards;

}



@keyframes swipeLeft {

  100% {

    transform: translateX(-120vw) rotate(-30deg);

    opacity: 0;

  }

}



@keyframes swipeRight {

  100% {

    transform: translateX(120vw) rotate(30deg);

    opacity: 0;

  }

}



/* Buttons */

.buttons {

  display: flex;

  justify-content: center;

  align-items: center;

  gap: 30px;

  overflow: visible;

}



.button_no,

.button_yes {

  width: 60px;

  height: 60px;

  border-radius: 50%;

  font-size: 2rem;

  z-index: 999;

  border: none;

  cursor: pointer;

  box-shadow: 0 2px 10px rgba(0,0,0,0.1);

}



.button_no {

  background: #ff4c81;

  color: white;

}



.button_yes {

  background: #33cc99;

  color: white;

}



.button_nachricht_senden {

  background-color: #ff5864; 

  color: white;

  border: none;

  border-radius: 25px;

  padding: 12px 24px;

  font-size: 16px;

  font-weight: bold;

  cursor: pointer;

  transition: background-color 0.3s ease;

  margin: 3rem;

}



.button_swipe_weiter {

  background-color: #ff5864;

  color: white;

  border: none;

  border-radius: 25px;

  padding: 12px 24px;

  font-size: 16px;

  font-weight: bold;

  cursor: pointer;

  transition: background-color 0.3s ease;

  margin: 3rem;

  text-decoration: none;

}



.button_cross {

  color: #ff5864;

  position: relative;

  font-size: 3rem;

  background-color: transparent;

  cursor: pointer;

  z-index: 100;

  border: none;

  display: inline-block;

  margin: 0;

  top: -1rem;

  right: -30rem;

  text-decoration: none;

}



.button_cross_visitenkarte {

  color: #ff5864;

  position: absolute;

  font-size: 2.5rem;

  background-color: transparent !important;

  cursor: pointer;

  z-index: 100;

  border: none;

  display: inline-flex;

  padding: 0;

  margin: 0;

  top: 1rem;

  right: 1.5rem;

  text-decoration: none;

  outline: none;

  -webkit-tap-highlight-color: transparent;

}



.button_cross_visitenkarte:hover,

.button_cross_visitenkarte:focus,

.button_cross_visitenkarte:active {

  background-color: transparent !important;

  outline: none !important;

  box-shadow: none !important;

  border: none !important;

  -webkit-box-shadow: none !important;

}



/* its a Match */

#match {

  position: fixed;

  top: 0;

  left: 0;

  width: 100vw;

  height: 100vh;

  background: rgba(0, 0, 0, 0.8);

  display: flex;

  align-items: center;

  justify-content: center;

  z-index: 9999;

  backdrop-filter: blur(3px); /* Optional: schöner Blur */

}



.match-info {

  position: relative;

  z-index: 2; /* über dem Hintergrund */

  padding: 2rem;

  max-width: 500px;

  width: 400px;

  text-align: center;

}



.match-info h1 {

  color: white;

  font-size: 2.5rem;

  margin-top: 1rem;

  margin-bottom: 1rem;

}



.match-info p {

  color: white;

  margin: 1rem 0;

  margin-bottom: 2rem;

  font-size: 1.2rem;

}



.match-info img {

  border-radius: 50%;

  width: 160px;

  height: 160px;

  object-fit: cover;

  margin: 1rem 0;

}



/* Visitenkarte */

#visitenkarte {

  position: fixed;

  top: 0;

  left: 0;

  width: 100vw;

  height: 100vh;

  background: rgba(0, 0, 0, 0.8);

  display: flex;

  align-items: center;

  justify-content: center;

  z-index: 9999;

}



.besitzer_card {

  position: relative;

  background: #ffffff;

  border-radius: 24px;

  width: 70%;

  height: 45%;

  max-width: 600px;

  padding: 2.5rem;

  box-shadow: 0 6px320px rgba(0, 0, 0, 0.3);

}



.card_info {

  display: flex;

  flex-direction: row;

  align-items: center;

  gap: 1.5rem;

  margin-bottom: 3rem;

  flex-wrap: wrap;

}





.visitenkarte_image {

  width: 120px;

  height: 120px;

  border-radius: 50%;

  object-fit: cover;

  border: 4px solid #fff;

}



.hundename {

  font-size: 2.2rem;

  font-weight: 700;

  line-height: 1.3;

  margin: 0;

  text-align: left;

  hyphens: auto;

  word-break: break-word; /* falls lange E-Mails o. Ä. */

  overflow-wrap: break-word;

}



.badge {

  width: 28px;

  height: 28px;

}





.informationen_besitzer {

  margin-top: 2.5rem;

  font-size: 1.3rem;

  align-items: left;

}



.informationen_besitzer p {

  display: flex;

  gap: 2rem;

  margin: 1rem 0;

  font-size: 1.3rem;

  text-align: left;

  hyphens: auto;

  word-break: break-word; /* falls lange E-Mails o. Ä. */

  overflow-wrap: break-word;

}



.kategorien {

  font-weight: bold;

  width: 140px;

  text-align: left;

  flex-shrink: 0;

}



/* Noch nicht den passenden Match gefunden*/

.unpassender_match {

  position: relative;

  width: 100%;

  height: 100vh; 

  overflow: hidden;

}



/* Hintergrundbild - ganz hinten */

.background-image {

  position: absolute;

  top: 0;

  left: 0;

  width: 100%;

  height: 100%;

  object-fit: cover; 

  z-index: 0;

  pointer-events: none; 

}



/* Logo oben links */

.logo_weiss {

  position: absolute;

  top: 2em;;

  left: 3rem;

  height: 3rem; 

  z-index: 10;

}



/* Content über dem Hintergrund */

.content_unpassender_match {

  position: relative;

  font-size: 3rem;

  z-index: 999;

  color: white;

  padding: 15rem 4rem 4rem 4rem;

}





/*swipe-events*/

.card-content.swipe-left {

  animation: swipeLeft 0.4s ease forwards;

}



.card-content.swipe-right {

  animation: swipeRight 0.4s ease forwards;

}



@keyframes swipeLeft {

  100% {

    transform: translateX(-100%) rotate(-20deg);

    opacity: 0;

  }

}



@keyframes swipeRight {

  100% {

    transform: translateX(100%) rotate(20deg);

    opacity: 0;

  }

}







/* RESPONSIVE DESIGN  SWIPE SEITE */

@media (max-width: 1024px) {

  .logo_farbig {

    height: 5vh;

    margin-bottom: 4rem;

    left: 2vw;

  }



  .card-content p {

    font-size: 2rem;

    padding-top: 28rem;

  }



  .button_no,

  .button_yes {

    width: 50px;

    height: 50px;

    font-size: 1.8rem;

  }



  .buttons {

    gap: 25px;

  }



}



/* Für kleinere Tablets SWIPE SEITE*/

@media (max-width: 768px) {

  .logo_farbig {

    height: 4.5vh;

    margin-bottom: -1rem;

    left: 2vw;

  }



  .card-content p {

    font-size: 1.6rem;

    padding-top: 25rem;

  }



  .button_no,

  .button_yes {

    width: 50px;

    height: 50px;

    font-size: 1.6rem;

  }



  .buttons {

    gap: 25px;

  }

}



/* Für Smartphones SWIPE SEITE*/

@media (max-width: 480px) {

  .logo_farbig {

    height: 4vh;

    margin-bottom: 2rem;

    left: 1.5vw;

  }

  

  .card-content p {

    font-size: 1.3rem;

    padding-top: 20rem;

  }



  .button_no,

  .button_yes {

    width: 50px;

    height: 50px;

    font-size: 1.4rem;

  }



  .buttons {

    gap: 25px;

  }

}



/* RESPONSIVE DESIGN  ITS A MATCH*/

/* Für Tablets (max-width: 1024px) */

@media (max-width: 1024px) {

  .button_cross {

    font-size: 2.5rem;

    top: -0.8rem;

    right: -20rem;

  }

  .match-info {

    width: 90%;

    max-width: 420px;

    padding: 1.5rem;

  }



  .match-info h1 {

    font-size: 2.2rem;

  }



  .match-info p {

    font-size: 1.1rem;

    margin-bottom: 1.8rem;

  }



  .match-info img {

    width: 140px;

    height: 140px;

  }



  .button_nachricht_senden {

    font-size: 15px;

    padding: 10px 20px;

    margin: 2.5rem;

  }



}



/* Für kleinere Tablets ITS A MATCH*/

@media (max-width: 768px) {

  .button_cross {

    font-size: 2rem;

    top: -0.5rem;

    right: -12rem;

  }



  .match-info {

    width: 90%;

    max-width: 380px;

    padding: 1.2rem;

  }



  .match-info h1 {

    font-size: 1.8rem;

  }



  .match-info p {

    font-size: 1rem;

    margin-bottom: 1.5rem;

  }



  .match-info img {

    width: 120px;

    height: 120px;

  }



  .button_nachricht_senden {

    font-size: 14px;

    padding: 9px 18px;

    margin: 2rem;

  }



}



/* Für Smartphones ITS A MATCH */

@media (max-width: 480px) {

  .button_cross {

    font-size: 1.6rem;

    top: -0.3rem;

    right: -6rem;

  }



  .match-info {

    width: 95%;

    max-width: 340px;

    padding: 1rem;

  }



  .match-info h1 {

    font-size: 1.6rem;

  }



  .match-info p {

    font-size: 0.95rem;

    margin-bottom: 1.2rem;

  }



  .match-info img {

    width: 100px;

    height: 100px;

  }



  .button_nachricht_senden {

    font-size: 13px;

    padding: 8px 16px;

    margin: 1.5rem;

    width: 60%; 

    max-width: 300px;

  }



}



/* RESPONSIVE DESIGN  VISITENKARTE */

/* Für Tablets (max-width: 1024px) */

@media (max-width: 1024px) {

  .button_cross_visitenkarte {

    font-size: 2rem;

    top: 0.8rem;

    right: 1rem;

  }



  .besitzer_card {

    width: 80%;

    height: auto;

    padding: 2rem;

  }



  .visitenkarte_image {

    width: 100px;

    height: 100px;

  }



  .hundename {

    font-size: 1.9rem;

  }



  .informationen_besitzer {

    font-size: 1.1rem;

    margin-top: 2rem;

  }



  .informationen_besitzer p {

    font-size: 1.1rem;

  }



  .kategorien {

    width: 120px;

  }

}



/* Für kleinere Tablets VISITENKARTE*/

@media (max-width: 768px) {

  .button_cross_visitenkarte {

    font-size: 1.8rem;

    top: 0.6rem;

    right: 0.8rem;

  }



  .besitzer_card {

    width: 90%;

    padding: 1.5rem;

  }



  .visitenkarte_image {

    width: 90px;

    height: 90px;

  }



  .hundename {

    font-size: 1.6rem;

  }



  .informationen_besitzer {

    font-size: 1rem;

  }



  .informationen_besitzer p {

    font-size: 1rem;

    gap: 1.5rem;

  }



  .kategorien {

    width: 100px;

  }

}



/* Für Smartphones VISITENKARTE*/

@media (max-width: 480px) {

  .button_cross_visitenkarte {

    font-size: 1.5rem;

    top: 0.4rem;

    right: 0.6rem;

  }



  .besitzer_card {

    width: 94vw;

    max-width: 380px;

    padding: 0.9rem 1rem;

    border-radius: 16px;

  }



  .visitenkarte_image {

    width: 70px;

    height: 70px;

  }



  .hundename {

    font-size: 1.3rem;

  }



  .informationen_besitzer {

    font-size: 0.9rem;

    margin-top: 1rem;

  }



  .informationen_besitzer p {

    font-size: 0.9rem;

    gap: 0.6rem;

    margin: 0.5rem 0;

    line-height: 1.2;

  }



  .kategorien {

    width: 75px;

  }

}







/* RESPONSIVE DESIGN  UNAPASSENDER MATCH*/

/* Für Tablets (max-width: 1024px) */

@media (max-width: 1024px) {

  .content_unpassender_match {

    font-size: 2.5rem;

    padding: 12rem 4rem 4rem 4rem;

  }



  .logo_weiss {

    top: 1.5rem;

    left: 2rem;

    height: 2.5rem;

  }



  .button_swipe_weiter {

    font-size: 1rem;

    padding: 10px 20px;

    margin: 2rem auto;

  }

}



/* Für kleinere Tablets UNPASSENDER MATCH */

@media (max-width: 768px) {

  .content_unpassender_match {

    font-size: 2rem;

    padding: 10rem 2rem 2rem 2rem;

  }



  .logo_weiss {

    top: 1.2rem;

    left: 1.5rem;

    height: 2.2rem;

  }



  .button_swipe_weiter {

    font-size: 0.95rem;

    padding: 10px 20px;

    margin: 1.5rem auto;

  }

}



/* Für Smartphones UNPASSENDER MATCH*/

@media (max-width: 480px) {

  .content_unpassender_match {

    font-size: 1.6rem;

    padding: 14rem 1.5rem 6rem 1.5rem;

  }



  .logo_weiss {

    top: 1rem;

    left: 1rem;

    height: 2rem;

  }



  .button_swipe_weiter {

    font-size: 0.9rem;

    padding: 8px 16px;

    margin: 3rem auto;

  }

}

