/* Typograpie

--- 1 Font sizes

12 12 14 16 18 20 24 30 36 44 52 62 74 86 98

--- 2 Font-weights
Default: 400


--- 2.5 Colors
#335465
Blau: #007bf0
hellblau: #80bdf8
dunkelblau: 
weiÃŸ: #e6f2fe
Dunkler text: #000c18

--- 3 Spacing

2 4 8 12 16 24 32 48 64 80 96 128


--- 4 Line Hiehgts
Default: 1

--- 5 Shadows

--- 6 order Radius

--- 7 Whitespace


*/

* {
  padding: 0;
  margin: 0;
  box-sizing: border-box;
  list-style: none;
}

html {
  font-size: 62.5%;
  overflow-x: hidden;
}

body {
  font-family: "Vend Sans", sans-serif;
  line-height: 1;
  font-weight: 400;
  color: #e6f2fe;
  position: relative;
  background-color: #00050b;
  overflow-x: hidden;
}

main {
  min-height: 100vh;
}

.center-text {
  text-align: center;
}

.gradient {
  background-image: linear-gradient(
    90deg,
    hsl(210deg 100% 47%) 0%,
    hsl(213deg 91% 59%) 19%,
    hsl(213deg 93% 66%) 39%,
    hsl(212deg 93% 72%) 59%,
    hsl(211deg 92% 78%) 79%,
    hsl(210deg 90% 84%) 100%
  );
  background-clip: text;
  color: transparent;
}

.btn {
  transition: all 0.4s ease-out;
  letter-spacing: 1px;
  padding: 2rem 4rem;
  font-size: 2rem;
  color: #e6f2fe;
  text-decoration: none;
  font-weight: 700;
  border-radius: 5px;
}

.btn--blue {
  color: #001121;
  background-image: linear-gradient(
    90deg,
    hsl(194, 100%, 47%) 0%,
    hsl(202, 91%, 59%) 19%,
    hsl(213deg 93% 66%) 39%,
    hsl(212deg 93% 72%) 59%,
    hsl(211deg 92% 78%) 79%,
    hsl(210deg 90% 84%) 100%
  );
}

.btn--yellow {
  color: #001121;
  background: linear-gradient(
    90deg,
    hsl(45, 100%, 40%) 0%,
    hsl(48, 100%, 47%) 20%,
    hsl(50, 100%, 52%) 40%,
    hsl(52, 100%, 55%) 60%,
    hsl(54, 100%, 58%) 80%,
    hsl(56, 100%, 60%) 100%
  );
}

.btn--red {
  color: #001121;
  background: linear-gradient(
    90deg,
    hsl(210, 100%, 75%) 0%,
    hsl(205, 95%, 70%) 10%,
    hsl(200, 90%, 65%) 30%,
    hsl(48, 85%, 60%) 50%,
    hsl(48, 95%, 55%) 90%,
    hsl(50, 100%, 50%) 100%
  );
}

.btn:hover,
.btn:active {
  transform: scale(1.03);
}

.heading-primary {
  font-size: 8rem;
  color: #e6f2fe;
  letter-spacing: -1.8px;
}

.heading-secondary {
  font-size: 6rem;
  color: #e6f2fe;
  letter-spacing: -1px;
  margin-bottom: 3rem;
}

.heading-tertiary {
  font-size: 4rem;
  color: #e6f2fe;
  letter-spacing: -1px;
  margin-bottom: 2rem;
}

.section {
  padding: 12rem 6rem;
  display: flex;
  justify-content: center;
}
.section-gradient {
  background: linear-gradient(to bottom, #004a9000 0%, #001325 100%);
}
.container {
  max-width: 1600px;
}

.margin-bottom-small {
  margin-bottom: 2rem;
}
.margin-bottom-medium {
  margin-bottom: 4rem;
}
.margin-bottom-big {
  margin-bottom: 8rem;
}

/* nav */

.header {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 2rem 6rem;
  background: rgba(0, 0, 0, 0);
  position: fixed;
  transition: background-color 0.2s ease;
  z-index: 999;
}

.header.header-white {
  background-color: #000c18b6;
}

.header-logo-box {
  width: 15rem;
  display: flex;
  justify-content: center;
}
.header-logo {
  width: 8rem;
  height: 8rem;
  background-image: url("/bilder/logo-hd-neu-ohne-schrift-200x200.png");
  display: inline-block;
  background-size: cover;
}

.main-nav {
}

.main-nav-list {
  display: flex;
  gap: 4rem;
  font-weight: 700;
}

.main-nav-list-element {
}

.main-nav-list-link {
  transition: color 0.4s ease;
  font-size: 3rem;
  color: #e6f2fe;
}
.main-nav-list-link:link,
.main-nav-list-link:visited {
  text-decoration: none;
}
.main-nav-list-link:hover,
.main-nav-list-link:active {
  color: #b3d7fb;
}

.header-button-container {
  display: flex;
  align-items: center;
  justify-content: center;
}

/* HERO 
*/

.hero {
  background-size: cover;
  height: 100vh;
  width: 100%;
  background-image:
    linear-gradient(
      to bottom,
      rgba(0, 54, 111, 0.164) 0%,
      rgba(0, 0, 0, 0.438) 75%,
      #00050b 100%
    ),
    url("/bilder/hero.webp");
  display: flex;
  justify-content: center;
  align-items: center;
}

.hero-text-box {
}

/* USP */

.usp-section {
  width: 100%;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  justify-content: space-between;
  gap: 9rem;
  align-items: center;
  background-image: none;
}

.usp {
  display: flex;
  flex-direction: column;
  gap: 6rem;
  align-items: center;
  justify-items: center;
  opacity: 0;
  transition: opacity 2s ease;
}

.usp.visible {
  opacity: 1;
}

.usp-img {
  width: 10rem;
  height: 10rem;
}

.usp-text {
  font-size: 3rem;
  text-align: center;
  color: #e6f2fe;
}

/*product-cards*/

.boote {
}

.boote .heading-primary {
  margin-bottom: 10rem;
}

.product-card-section {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 4rem;
}

.product-card {
  border-radius: 10px;
  opacity: 0;
  transition: opacity 2s ease;
}
.product-card .heading-secondary {
  margin-bottom: 4rem;
  text-align: center;
}

.product-card.visible {
  opacity: 1;
}

.product-card--blue {
  /*box-shadow: 0 0 50px 1px #80bdf8;*/
  border: solid 3px #80bdf8;
}
.product-card--blue ion-icon {
  color: #80bdf8;
}

.product-card--yellow {
  /* box-shadow: 0 0 50px 1px #f8f080;*/
  border: solid 3px #f8f080;
}

.product-card--yellow ion-icon {
  color: #f8f080;
}
.product-card--red {
  /*box-shadow: 0 0 50px 1px #f88080;*/
  border-top: solid 3px #80bdf8;
  border-left: solid 3px #80bdf8;
  border-bottom: solid 3px #f8f080;
  border-right: solid 3px #f8f080;
  box-shadow:
    0 0 40px 5px rgba(128, 189, 248, 0.4),
    0 0 40px 5px rgba(248, 240, 128, 0.4);
}

.product-card--red ion-icon {
  color: #80bdf8;
}

.product-card--red .ion-icon--yellow {
  color: #f8f080;
}

.product-card-img-box {
  overflow: hidden;
  width: 100%;
}
.product-card-img-box--blue {
  border-bottom: solid 2px #80bdf8;
}

.product-card-img-box--yellow {
  border-bottom: solid 2px #f8f080;
}
.product-card-img-box--red {
  border-bottom: solid 2px #f8f080;
}

.product-card-img {
  width: 100%;
  transition: all 0.4s ease;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;
}

.product-card-img:hover {
  transform: scale(1.05);
}

.product-card-text-box {
  display: flex;
  flex-direction: column;
  padding: 2rem;
  justify-content: space-between;
}
.product-card-text-group {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.product-card-text-box .btn.btn--big {
  width: 100%;
  text-align: center;
  align-self: center;
  font-size: 2.2rem;
}

.product-card-text {
  font-size: 1.8rem;
  margin-bottom: 5rem;
}
.product-card-list {
  margin-bottom: 4rem;
  display: grid;
  justify-content: center;
}
.product-card-list-element {
  font-size: 2.4rem;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 2rem;
}

.buy-box {
  display: flex;
  flex-direction: column;
  gap: 4rem;
  justify-content: space-between;
  align-items: center;
}

.buy-box-preis {
  font-weight: 700;
  font-size: 4rem;
}

.product-card.product-card--yellow .product-card-text {
}

/**********************/
/* Review section*/
/**********************/

@-webkit-keyframes spin {
  from {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
  }
}

@keyframes spin {
  from {
    -webkit-transform: translateX(0);
    transform: translateX(0);
  }
  to {
    -webkit-transform: translateX(-100%);
    transform: translateX(-100%);
  }
}

.review-section {
  background-color: #001224;
  padding-bottom: 10rem;
  overflow-x: hidden;
}
.review-section::-webkit-scrollbar {
  display: none;
}

.review-section-heading {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 1rem;
  padding-top: 8rem;
}

.review-section-subheading {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.4rem;
  gap: 0.5rem;
}

.review-link:link,
.review-link:visited {
  text-decoration: none;
  display: flex;
  align-items: center;
  gap: 0.5rem;
  color: #80bdf8;
}

.review-google-icon {
  height: 2rem;
}

.review-section-heading .heading-primary {
  margin-bottom: 0px;
}

.review-section-heading .review-star {
  font-size: 4rem;
  color: #fbbe0c;
}

.review-star {
  font-size: 1.4rem;
  color: #fbbe0c;
}

.review-section-inhalt {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin: auto;
  padding: 8rem;
  row-gap: 0.5rem;
}

.review-group {
  display: flex;
  -webkit-animation: spin 40s infinite linear;
  animation: spin 40s infinite linear;
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
  will-change: transform;
}

.review-section-inhalt:hover .review-group {
  -webkit-animation-play-state: paused;
  animation-play-state: paused;
}

.review-card {
  flex: 0 0 40rem;
  color: #00050b;
  background-color: #e6f2fe;
  height: 100%;
  display: flex;
  flex-direction: column;
  padding: 1.2em 1.2rem;
  box-shadow: 0rem 0.8rem 1.6rem rgba(195, 216, 223, 0.548);
  border-radius: 5px;
  transition: 0.3s ease;
  line-height: 1.4;
  min-height: 25rem;
  margin-right: 1rem;
}

.review-card:hover {
  box-shadow: 0rem 0.8rem 2rem rgba(195, 216, 223, 0.623);
  transform: translateY(-10px);
}

.rating-container {
  display: flex;
  justify-content: space-between;
}

.review-rating {
  display: flex;
  align-items: center;
  margin-bottom: 1.2rem;
}

.review-rating .review-google-icon {
  justify-self: end;
}

.review-author {
  font-weight: 500;
  margin-bottom: 1.2rem;
  justify-self: start;
  display: flex;
  align-items: center;
  gap: 1rem;
}

.review-text {
  margin-bottom: 1.6rem;
  font-size: 1.3rem;
}

.btn-read-more.rezension-ansehen {
  margin-top: auto;
}

.profile-pic {
  font-size: 2.4rem;
}

/* FOOTER*/

.footer {
  background-color: #00050b;
  display: grid;
  grid-template-columns: 1fr;
  justify-items: center;
  align-items: center;
  padding: 3.2rem;
  gap: 1.6rem;
  color: #e9f2fd;
}

.footer-grid {
  display: grid;
  grid-template-columns: 1fr 1fr 1fr 1fr;
  column-gap: 4rem;
}

.heading-footer {
  font-size: 2.4em;
  margin-bottom: 2.4rem;
}

.logo-col {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.footer-menu,
.footer-menu-element p {
  list-style: none;
  font-size: 1.8rem;
}

.footer-menu-element {
  margin-bottom: 1rem;
}

.footer-socials {
  display: flex;
  gap: 2rem;
}

.social-icon {
  height: 3rem;
  width: 3rem;
  color: #e9f2fd;
}

.footer-logo {
  border-radius: 12px;
  height: 10rem;
  margin-bottom: 2rem;
}

.footer-socials {
  margin-bottom: 2.4rem;
}

.kontaktinfos {
  font-size: 1.8rem;
}
.footer-menu-link {
  color: #e9f2fd;
}
.footer-menu-link:link,
.footer-menu-link:visited {
  text-decoration: none;
}
.footer-menu-link:hover,
.footer-menu-link :active {
}

.copyright {
  color: #e9f2fd;
}

/* MOBILE */

.btn-mobile-nav {
  border: none;
  background: none;
  cursor: pointer;
  display: none;
}

.icon-mobile-nav {
  height: 6.4rem;
  width: 6.4rem;
  color: #e6f2fe;
}

.icon-mobile-nav[name="close-outline"],
.header-logo-box-mobile {
  display: none;
}

.header-logo--mobile {
  background-image: url("/bilder/logo-hd-neu-ohne-schrift-200x200.png");
  background-size: cover;
  width: 15rem;
  height: 15rem;
}

/*Page Header*/

.page-header {
  padding-top: 17rem;
  display: flex;
  flex-direction: column;
  text-align: center;
  gap: 2rem;
}

/* Pakete */

.pakete {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 2rem;
  max-width: 143rem;
}

.pakete .product-card {
  opacity: 1;
  border: solid 3px #80bdf8;
}

.pakete .product-card-img-box {
  border-bottom: solid 2px #80bdf8;
}

/* FORM */
.form {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3rem;
  max-width: 120rem;
  width: 100%;
  margin: 0 auto;
}

.form.container {
  padding-top: 6rem;
  padding-bottom: 4rem;
}

.form-field {
  border: none;
  height: 6rem;
  padding: 0 3.2rem;
  border-radius: 12px;
  background: rgba(230, 242, 254, 0.05);
  border: 2px solid rgba(128, 189, 248, 0.2);
  box-shadow: 0rem 0.8rem 2.4rem rgba(0, 123, 240, 0.15);
  color: #e6f2fe;
  font-size: 1.8rem;
  font-family: inherit;
  transition: all 0.3s ease;
  backdrop-filter: blur(10px);
}

.form-field::placeholder {
  color: rgba(230, 242, 254, 0.5);
  font-size: 1.6rem;
}

.form-field:hover {
  border-color: rgba(128, 189, 248, 0.4);
  box-shadow: 0rem 0.8rem 2.4rem rgba(0, 123, 240, 0.25);
  transform: translateY(-2px);
}

.form-field:focus {
  outline: none;
  border-color: #80bdf8;
  box-shadow:
    0rem 0.8rem 3.2rem rgba(0, 123, 240, 0.35),
    0 0 0 4px rgba(128, 189, 248, 0.1);
  transform: translateY(-2px);
  background: rgba(230, 242, 254, 0.08);
}

.form-nachricht {
  height: 20rem;
  grid-column: 1/-1;
  padding-top: 2rem;
  padding-bottom: 2rem;
  resize: vertical;
  min-height: 15rem;
  max-height: 40rem;
}

.section.section--kontakt {
  display: grid;
  min-height: 80vh;
}

.section--kontakt .page-header {
  padding-top: 5rem;
}

.btn--kontakt {
  grid-column: 1/-1;
  background: linear-gradient(135deg, #007bf0 0%, #0096ff 50%, #80bdf8 100%);
  color: #000c18;
  font-weight: 700;
  font-size: 2.2rem;
  height: 6.4rem;
  border: none;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  box-shadow: 0 0.8rem 2.4rem rgba(0, 123, 240, 0.3);
}

.btn--kontakt::before {
  content: "";
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    90deg,
    transparent,
    rgba(255, 255, 255, 0.3),
    transparent
  );
  transition: left 0.5s ease;
}

.btn--kontakt:hover::before {
  left: 100%;
}

.btn--kontakt:hover {
  transform: scale(1.02) translateY(-2px);
  box-shadow: 0 1.2rem 3.2rem rgba(0, 123, 240, 0.45);
}

.btn--kontakt:active {
  transform: scale(0.98);
}

/** Booking Kit */
#bookingKitContainer {
  padding-left: 4rem !important;
  padding-right: 4rem !important;
}

/*AGBS ETC*/
.container--agbs {
  max-width: 120rem;
  width: 100%;
  padding: 8rem 4rem;
}

.standard-a {
  color: #80bdf8;
  text-decoration: none;
}

.standard-h2 {
  font-size: 2.4rem;
  margin-bottom: 3.6rem;
  margin-top: 4rem;
}

.standard-h3 {
  font-size: 1.8rem;
  margin-bottom: 2rem;
  margin-top: 2.4rem;
}

.standard-p {
  font-size: 2rem;
  margin-bottom: 2rem;
  line-height: 1.6;
}

.standard-li:not(:last-child) {
  margin-bottom: 1rem;
}

/* Zusätzliche Form-Verbesserungen */
.page-header .heading-tertiary {
  font-weight: 400;
  line-height: 1.5;
}

.form-field:invalid:not(:placeholder-shown):not(:focus) {
  border-color: rgba(248, 128, 128, 0.4);
}

/* Label-Animationen */
.form {
  position: relative;
}

.form-field {
  position: relative;
}

/* Verbessertes Button-Design mit Icon */
.btn--kontakt {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1rem;
  letter-spacing: 0.5px;
}
