section {
  position: relative;
}

.section-title {
  margin-bottom: var(--space-3);
}

.section-title--center {
  text-align: center;
}

.section-eyebrow {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: var(--fs-titel-2);
  margin-bottom: var(--space-2);
}

.hero {
  position: relative;
  min-height: 100vh; 
  min-height: 100svh; 
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  color: var(--color-weiss);
  background-color: var(--color-primary);
  overflow: hidden;
}

.hero__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;

  object-position: 54.56% 50%;
  z-index: 0;
}

.hero::after {
  content: "";
  position: absolute;
  inset: 0;

  background-color: rgba(0, 0, 0, 0.25);
  background-image:
    url("data:image/svg+xml;utf8,<svg viewBox='0 0 1920 997' xmlns='http://www.w3.org/2000/svg' preserveAspectRatio='none'><rect x='0' y='0' height='100%25' width='100%25' fill='url(%23grad)' opacity='0.14000000059604645'/><defs><radialGradient id='grad' gradientUnits='userSpaceOnUse' cx='0' cy='0' r='10' gradientTransform='matrix(-55.7 -20.05 28.435 -78.993 410.5 122.5)'><stop stop-color='rgba(0,0,0,1)' offset='0'/><stop stop-color='rgba(0,0,0,0)' offset='1'/></radialGradient></defs></svg>"),
    linear-gradient(
      16.652013458448053deg,
      rgba(0, 0, 0, 0.3) 25.667%,
      rgba(0, 0, 0, 0) 52.673%
    );
  z-index: 1;
}

.hero__logo {
  position: absolute;
  top: 32px;
  left: 16px;
  z-index: 2;
  width: 182px;
}

.hero__content {
  position: relative;
  z-index: 2;
  padding: 0 16px var(--space-175);
  transform: translateY(75px);
}

.hero__eyebrow {
  font-size: 1.25rem;
}

.hero__title {
  color: var(--color-weiss);

  font-size: 2.1875rem;
  margin-bottom: var(--space-4);
}

.hero__actions {
  display: flex;

  flex-wrap: nowrap;
  gap: var(--space-2);
}

.hero__scroll-hint {
  position: absolute;
  bottom: var(--space-2);
  left: 50%;
  transform: translateX(-50%);
  z-index: 2;
  font-size: 1.5rem;
  color: var(--color-weiss);
  animation: hero-scroll-hint 1.8s ease-in-out infinite;
}

@keyframes hero-scroll-hint {
  0%,
  100% {
    transform: translateX(-50%) translateY(0);
    opacity: 0.6;
  }
  50% {
    transform: translateX(-50%) translateY(8px);
    opacity: 1;
  }
}

@media (prefers-reduced-motion: reduce) {
  .hero__scroll-hint {
    animation: none;
  }
}

.about {
  padding: var(--space-8) 0;
}

.about__intro {
  font-size: 1.25rem;
  font-weight: 500;
  text-align: center;
  max-width: 872px;
  margin: 0 auto var(--space-7);
}

.about__title {
  font-size: 2.1875rem;

  margin-bottom: 25px;
}

.about__col {
  margin-bottom: var(--space-5);
}

.about__col-title {
  display: flex;
  align-items: center;
  font-weight: 600;
  font-size: var(--fs-text-titel);
  margin-bottom: var(--space-2);
}

.benefits {
  background-color: var(--color-surface-alt);
  padding: var(--space-8) 0;
}

.benefits__title {
  font-family: var(--font-body);
  font-weight: 500;
  font-size: var(--fs-titel-2);
  text-align: center;
  max-width: 648px;
  margin: 0 auto var(--space-7);
}

.benefits__cards {
  --bs-gutter-y: 80px;

  margin-bottom: var(--space-6);
}

.benefits__promise {
  padding-top: var(--space-5);

  --bs-gutter-y: 70px;
}

.benefits__promise strong {
  font-weight: 600;
}

.image-break {
  background-color: var(--color-surface);

  padding: 0 0 var(--space-6);
  overflow: hidden;
}

.image-break__inner {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  min-height: 400px;
}

.image-break__photo-wrap {
  position: relative;
  z-index: 1;
  width: 90.27vw;
  margin-left: auto;
  margin-right: calc(50% - 50vw);
  margin-bottom: var(--space-4);
}

.image-break__photo {
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  object-fit: cover;
  aspect-ratio: 334 / 238;
}

.image-break__lila {
  position: absolute;
  z-index: 0;

  left: -9.73vw;
  top: 0;
  width: 68.56%;
  height: 115.13%;
  background-color: var(--color-primary);
}

.image-break__text-wrap {
  width: 100%;
  max-width: 536px;
  margin-left: auto;

  padding-left: var(--container-edge);
}

.image-break__text {
  color: var(--color-text);

  font-size: 2.1875rem;
  padding: var(--space-4) 0;
}

.mission-vision {
  background-color: var(--color-surface-alt);
  padding: var(--space-8) 0;
}

.mission-vision__title {
  font-size: 2.1875rem;
}

.mission-vision__subtitle {
  font-size: 1.25rem;
  font-weight: 500;
  margin-bottom: var(--space-4);
}

.mission-vision__col {
  margin-bottom: var(--space-6);
}

.mission-vision__col:last-child {
  margin-bottom: 0;
}

.leistung {
  display: flex;
  flex-wrap: wrap;
}

.leistung__panel,
.leistung__photo {
  width: 100%;
}

#dienstleistung .leistung__panel {
  order: -1;
}

.leistung__panel {
  background-color: var(--color-primary);
  color: var(--color-weiss);

  padding: var(--space-6) 1rem;
  display: flex;
  flex-direction: column;
  justify-content: center;

  line-height: normal;
}

.leistung__panel--gruen {
  background-color: var(--color-gruen);
  color: var(--color-schwarz);
}

.leistung__panel--grau {
  background-color: var(--color-grau);
  color: var(--color-weiss);
}

.leistung__title {
  color: inherit;

  font-size: 2.1875rem;
  margin-bottom: 1.875rem;
}

.leistung__lead {
  color: inherit;
  font-weight: 500;
  font-size: var(--fs-titel-2);
  margin-bottom: var(--space-3);
}

.leistung__panel h4 {
  font-family: var(--font-body);
  font-weight: 600;
  font-size: var(--fs-text-titel);
  margin: var(--space-3) 0 var(--space-1);
}

.leistung__panel p {
  margin-bottom: var(--space-3);
}

.leistung__panel ul {
  margin: 0 0 var(--space-3);
  padding-left: 1.1em;
}

.leistung__panel > :last-child {
  margin-bottom: 0;
}

.leistung__photo {
  position: relative;
  min-height: 320px;
}

@media (max-width: 991.98px) {
  .leistung__photo {
    aspect-ratio: 370 / 548;
    min-height: 0;
  }

  #vertrieb .leistung__photo img {
    object-position: 0% 50%;
  }
}

.leistung__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  position: absolute;
  inset: 0;
}

.leistung__photo::before {
  content: "";
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
}

.leistung__quote {
  position: relative;
  z-index: 1;

  padding: var(--space-6) 1rem;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: left;
  min-height: 100%;
}

.kontakt {
  padding: var(--space-8) 0 0;
}

.kontakt__title {
  font-size: 2.1875rem;
  margin-bottom: var(--space-6);
}

.kontakt__qr {
  display: flex;
  align-items: center;
  gap: var(--space-3);
  flex-wrap: wrap;

  margin-top: 78px;
}

.kontakt__save-btn {
  margin-top: 70px;
}

.kontakt__qr img {
  width: 200px;
  height: 200px;
}

.kontakt__qr-caption {
  color: var(--color-text-muted);
  max-width: 200px;
  font-size: var(--fs-text);
}

.kontakt__wsu {
  margin-top: 100px;
}

.kontakt__wsu-title {
  margin-bottom: 65px;
}

.kontakt__wsu-photo-wrap {
  position: relative;
  width: 90.27vw;
  margin-left: calc(50% - 50vw);
  margin-right: auto;
  margin-bottom: 9.74vw;
}

.kontakt__wsu-photo {
  position: relative;
  z-index: 1;
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center top;
  aspect-ratio: 334 / 238;
}

.kontakt__wsu-lila {
  position: absolute;
  z-index: 0;
  top: 0;
  right: -10.78%;
  width: 68.56%;
  height: 115.13%;
  background-color: var(--color-primary);
}

.site-footer {
  background-color: var(--color-surface-alt);
  padding: var(--space-6) 0;
}

.back-to-top {
  position: fixed;
  bottom: 48px;
  right: var(--container-edge);
  z-index: 1000;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background-color: var(--color-primary);
  color: var(--color-weiss);
  font-size: 1.125rem;
  opacity: 0;
  visibility: hidden;
  transform: translateY(8px);
  transition: background-color var(--transition-base), color var(--transition-base), opacity var(--transition-base), transform var(--transition-base), visibility var(--transition-base);
}

main.legal-page {
  padding:0 12px;
}


.back-to-top.is-visible {
  opacity: 1;
  visibility: visible;
  transform: translateY(0);
}

.back-to-top:hover,
.back-to-top:focus-visible {
  background-color: var(--color-weiss);
  color: var(--color-primary);
}

.site-footer__logo {
  width: 200px;
  margin: 0 auto var(--space-7);
}

.site-footer address,
.site-footer p {
  font-style: normal;
  line-height: 1.2;
}

.site-footer__legal {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--space-3);

  margin-top: var(--space-3);
  padding-top: var(--space-2);
}

@media (min-width: 768px) {
  .site-footer__legal {
    justify-content: flex-start;
   

    margin-top: var(--space-3);
    padding-top: var(--space-2);
  }
}
