.index-page {
    background: #000;
}

.index-hero {
    position: relative;
    width: 100vw;
    min-height: 100vh;
    min-height: 100svh;
    overflow: hidden;
    transition: transform .8s ease, opacity .8s ease;
}

.index-slideshow {
    position: absolute;
    inset: 0;
}

.index-slide {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 1s ease-in-out;
}

.index-slide.is-active {
    opacity: 1;
}

.index-header {
    position: absolute;
    top: 3vh;
    left: 3vw;
    right: 3vw;
    z-index: 2;
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
}

.index-name h1 {
    margin: 0;
    color: white;
    font-size: clamp(1.2rem, 2vw, 2rem);
    font-weight: 700;
    line-height: 1.1;
}

.index-gallery-link a {
    display: inline-block;
    color: white;
    font-size: clamp(1.2rem, 2.2vw, 2rem);
    font-weight: 700;
    transition: transform 0.8s ease, color 0.8s ease;
    transform-origin: top right;
}

/* Desktop Hover */
.index-gallery-link a:hover {
    transform: scale(2);
    color: darkred;
}

/* Desktop Klick-Transition */
body.zoom-transition .index-gallery-link a {
    transform: scale(10);
    color: darkred;
}

body.zoom-transition .index-hero {
    transform: scale(1.05);
    opacity: .85;
}

.index-footer {
    position: absolute;
    left: 3vw;
    bottom: 3vh;
    z-index: 2;
}

.index-footer-list {
    display: flex;
    flex-wrap: wrap;
    gap: 0.8rem 2rem;
}

.index-footer-list a {
    color: rgba(255, 255, 255, 0.78);
    font-size: clamp(1rem, 1.4vw, 1.2rem);
    transition: color 0.3s ease, transform 0.3s ease;
}

.index-footer-list a:hover,
.index-footer-list a:focus-visible {
    color: darkgoldenrod;
    transform: scale(1.05);
}

@media (max-width: 768px) {
    .index-header {
        top: 2.5vh;
        left: 5vw;
        right: 5vw;
    }

    .index-name h1 {
        font-size: clamp(1.5rem, 6vw, 2.1rem);
    }

    .index-gallery-link a {
        font-size: clamp(1.8rem, 8vw, 2.6rem);
    }

    /* Mobile: kein Zoom mehr */
    .index-gallery-link a:active {
        transform: none;
        color: darkred;
    }

    /* Mobile: auch Klick-Transition neutralisieren */
    body.zoom-transition .index-gallery-link a {
        transform: none;
        color: darkred;
    }

    body.zoom-transition .index-hero {
        transform: none;
        opacity: 1;
    }

    .index-footer {
        left: 5vw;
        bottom: 3vh;
        right: 5vw;
    }

    .index-footer-list {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.6rem;
    }

    .index-footer-list a {
        font-size: clamp(1.5rem, 6vw, 2rem);
    }
}

@media (max-width: 480px) {
    .index-name h1 {
        font-size: clamp(1.4rem, 7vw, 1.9rem);
    }

    .index-gallery-link a {
        font-size: clamp(2rem, 9vw, 2.8rem);
    }

    .index-footer-list a {
        font-size: clamp(1.2rem, 3.5vw, 1.5rem);
    }
}