 :root {
     --default: #fff;
     --primary: #014D7F;
     --secondary: #CE2933;
     --muted: #D9DDDE;
     --black: #000;
 }

 .wave-mask {
     position: relative;
     overflow: hidden;
 }

 .wave-mask img {
     display: block;
     width: 100%;
     height: auto;
 }

 .wave-mask svg {
     position: absolute;
     bottom: -1px;
     left: 0;
     width: 100%;
     height: 30px;
     display: block;
     pointer-events: none;
 }

 .wave-mask-top svg {
     display: block;
     position: absolute;
     top: 0;
     left: 0;
     width: 100%;
     height: 30px;
     z-index: 2;
 }

 .wave-mask path {
     shape-rendering: geometricPrecision;
 }

 .uk-section-primary .uk-subnav>*>a {
     color: #fff;
     background-color: transparent;
 }

 .uk-section-primary .uk-subnav-pill>.uk-active>a {
     background-color: #ffffff;
     color: #000000;
 }

 .uk-list-disc {
     padding-left: 20px;
 }

 .uk-navbar-nav>li>a {
     display: flex;
     align-items: flex-end;
     padding-bottom: 0;
 }

 .overlay-box {
     position: relative;
     bottom: 50%;
     transform: translateY(-60%);
     width: fit-content;
     height: fit-content;
     background: rgba(255, 255, 255, 0.5);

     padding: 30px;
     z-index: 10;

 }

 .scroll-to-top-button {
     position: fixed;
     bottom: 30px;
     right: 30px;
     background-color: var(--secondary);
     color: white;
     border-radius: 50%;
     z-index: 1000;
     transition: opacity 0.3s ease;
     opacity: 0;
     pointer-events: none;
 }

 .scroll-to-top-button.visible {
     opacity: 1;
     pointer-events: auto;
 }

 .calendar-header {
     display: grid;
     grid-template-columns: repeat(7, 1fr);
     margin-bottom: 4px;
     font-weight: bold;
     text-align: center;
 }

 .calendar-grid {
     display: grid;
     grid-template-columns: repeat(7, 1fr);
     gap: 4px;
 }

 .calendar-cell {
     position: relative;
     border: 1px solid #ddd;
     background-color: white;
     height: 60px;
     overflow: hidden;
 }

 .day-label {
     position: absolute;
     top: 4px;
     left: 4px;
     font-size: 0.85rem;
     z-index: 3;
 }

 .cell-full {
     background-color: #CE2933;
     color: white;
 }

 .wave-mask {
    position: relative;
    overflow: hidden; /* verhindert „Herausrutschen“ */
}


 .wave {
     position: absolute;
     left: 0;
     width: 100%;
     height: 60px;
     z-index:3;
     pointer-events: none;
 }

 .wave-top {
     top: 0px
 }

 .wave-bottom {
     bottom: 0px;
 }

 .legend {
     display: flex;
     gap: 1rem;
     margin-top: 1rem;
     font-size: 0.9rem;
 }

 .legend-item {
     display: flex;
     align-items: center;
     gap: 0.5rem;
 }

 .legend-color {
     width: 20px;
     height: 20px;
     border: 1px solid #ccc;
 }

 .uk-card {
     width: 100%;
 }

 .card-wrapper {
     display: grid;
     grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
     gap: 16px;
 }

 /* Maske */
.map-mask {
    position: relative;
    z-index: 1;
    overflow: hidden; /* CLIP */
}

/* Parallax-Ebene */
.map-parallax {
    position: relative;
    will-change: transform;
}

.hero-title {
    font-size: 2.5rem;
    font-weight: bold;
    margin: 0;
}

@media (max-width: 640px) {
    .hero-title {
        font-size: 1.4rem;
    }
}

/* Erzwingt das 4:3 Verhältnis für den Slideshow-Container */
.my-custom-slideshow {
    aspect-ratio: 4 / 3 !important;
    height: auto !important;
}

/* Verhindert, dass Bilder verzerrt werden */
.my-custom-slideshow img {
    object-fit: contain !important; /* 'contain' zeigt das ganze Bild, 'cover' füllt aus */
    width: 100%;
    height: 100%;
}


