/* =============================================================================
   SCROLL BUTTONS (TOP / BOTTOM)
 ============================================================================= */
/* Basis-Stile für die Icons (mobile-first) */
.hero-down-icon,
.scroll-to-top {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  background: color-mix(in srgb, var(--text-main) 25%, var(--white) 10%, transparent 65%);
  border: 0.0625rem solid color-mix(in srgb, var(--text-accent) 70%, transparent 30%);
  border-radius: 50%;
  backdrop-filter: blur(15px) saturate(180%);
  box-shadow: 
    inset 0 0 0.3rem rgba(255, 255, 255, 0.1),
    0 0.25rem 0.75rem rgba(0, 0, 0, 0.2);
  color: var(--text-accent);
  transition: transform var(--transition-speed) ease, box-shadow var(--transition-speed) ease;
}

.hero-down-icon:hover,
.scroll-to-top:hover {
  transform: scale(1.1);
  box-shadow: 0 0 0.8rem color-mix(in srgb, var(--text-accent) 50%, transparent 50%);
}

.hero-down-icon svg,
.scroll-to-top svg {
  width: 1.5rem;
  height: 1.5rem;
  color: var(--text-accent);
  transition: transform var(--transition-speed) ease;
}

.hero-down-icon:hover svg {
  transform: translateY(0.125rem); /* ca. 2px */
}

.scroll-to-top:hover svg {
  transform: translateY(-0.125rem);
}

/* .scroll-to-top: standardmäßig ausgeblendet, per .show-Klasse sichtbar */
.scroll-to-top {
  position: fixed;
  right: var(--spacing-md);
  bottom: var(--spacing-md);
  z-index: 9999;
  cursor: pointer;
  display: none;
}

.scroll-to-top.show {
  display: flex;
}

/* Animation für das Herunter-Pfeil-Icon */
.hero-down-icon {
  margin: var(--spacing-sm) auto 0;
  animation: move-updown 5s ease-in-out infinite;
}

@keyframes move-updown {
  0%, 100% { transform: translateY(3.125rem); } /* ca. 50px in rem */
  50% { transform: translateY(1.25rem); }       /* ca. 20px in rem */
}

/* =============================================================================
   MEET AND JOIN HERO SECTION
============================================================================= */
.meet-join-hero-section {
  position: relative;
  width: 100%;
  max-width: var(--layout);
  margin: 0 auto;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: 0.5rem;
}

.meet-join-hero-image {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  z-index: 0;
}

.meet-join-hero-overlay-caption {
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.5);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: var(--spacing-lg);
  z-index: 1;
}

.meet-join-hero-text {
  margin: 0 auto;
  color: var(--white);
  text-align: center;
}

.meet-join-hero-text h1 {
  font-size: clamp(3rem, 8vw, 5.5rem);
  font-weight: bold;
  text-transform: uppercase;
  -webkit-text-stroke: 0.0625rem var(--white);
  color: transparent;
  margin: var(--spacing-md) 0;
}

.meet-join-hero-text-p {
  max-width: var(--layout-text);
  width: 100%;
  margin: 0 auto;
  text-align: center;
  color: var(--white);
  text-shadow: 0 0.125rem 0.25rem rgba(0, 0, 0, 0.5);
}

.meet-join-hero-text .highlight {
  color: var(--text-accent);
  font-weight: bold;
  font-style: italic;
}

.meet-join-overlay-buttons {
  display: flex;
  justify-content: center;
  gap: var(--spacing-md);
  width: 100%;
  text-align: center;
  margin-top: var(--spacing-xxl);
  flex-wrap: wrap;
}

/* ============================
   RESPONSIVE BREAKPOINTS
============================= */

/* Tablet Querformat & kleinere Desktops */
@media (max-width: 1199px) {
  .meet-join-hero-text h1 {
    font-size: clamp(2.8rem, 10vw, 5rem);
    -webkit-text-stroke: 1px var(--white);
  }
  .meet-join-overlay-buttons {
    gap: var(--spacing-sm);
  }
}

/* Tablet Hochformat */
@media (max-width: 991px) {
  .meet-join-hero-text h1 {
    font-size: clamp(2.4rem, 9vw, 4.5rem);
    -webkit-text-stroke: 0;
    color: var(--white);
  }
  .meet-join-overlay-buttons {
    display: none;
  }
}

/* Smartphones */
@media (max-width: 767px) {
  .meet-join-hero-section {
    aspect-ratio: 1 / 1;
    border-radius: 0;
  }
  .meet-join-hero-overlay-caption {
    position: static;
    padding: var(--spacing-md) var(--spacing-sm);
    max-height: none;
  }
  .meet-join-hero-text h1 {
    font-size: clamp(2rem, 8vw, 3.5rem);
  }
}
