#frontpage h2 {color: var(--gold);}

#frontpage .hero {
    background:
        linear-gradient(to bottom, rgba(16,16,24,0.5), rgba(16,16,24,0.5)),
        url("/resources/media/Photographer_on_Stage.jpg") no-repeat fixed center top / cover;
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(3, minmax(0, 1fr));
    position: relative;
    height: 100dvh;
    width: 100%;
    z-index: 1;
}

    #frontpage .hero .text {
        align-self: center;
        grid-column: 1 / span 4;
        grid-row: 2 / span 1;
        justify-self: start;
        padding: 0 4rem;
    }

        #frontpage .hero h1 {color: var(--offwhite);}

        #frontpage .hero .text p {
            color: rgba(240,243,245,0.5);
            font-style: italic;
        }

            #frontpage .hero .text p .highlight {
                color: var(--gold);
                font-weight: 700;
            }

    #frontpage .hero #next {
        align-self: flex-end;
        display: grid;
        grid-column: 3 / span 2;
        grid-row: 3 / span 1;
        grid-template-columns: repeat(4, 1fr);
        gap: 0;
        height: max-content;
        max-height: 100%;
        overflow: hidden;
        text-decoration: none;
    }

        #frontpage .hero #next .label {
            background-color: var(--gold);
            color: var(--offwhite);
            font-size: 1rem;
            font-weight: 700;
            line-height: 1;
            text-transform: uppercase;
            padding: 1rem 2rem;
            position: absolute;
            transform: translateY(-100%);
            width: max-content;
            max-width: 100%;
        }

        #frontpage .hero #next div {
            background: rgb(2,54,91);
            color: var(--offwhite);
            display: flex;
            flex-direction: column;
            grid-column: span 3;
            justify-content: center;
            padding: 4rem;
        }

            #frontpage .hero #next div .title {
                font-family: 'Playfair Display', serif;
                font-size: clamp(1.25rem, 1.5vw, 2rem);
                line-height: 1;                
            }

            #frontpage .hero #next div button {
                align-self: flex-end;
                background: linear-gradient(to bottom, transparent 50%, var(--offwhite) 50%) no-repeat center top / 100% 200%;
                border: 1px solid var(--offwhite);
                color: var(--offwhite);
                cursor: pointer;
                font-size: 1rem;
                line-height: 1;
                margin-top: 1rem;
                padding: 1rem 2rem;
                text-transform: uppercase;
                transition: all 0.5s cubic-bezier(0.5, 0, 0.5, 1);
            }

            #frontpage .hero #next:hover div button {
                background-position: center bottom;
                color: rgb(2,54,91);
            }

        #frontpage .hero #next img {
            background-color: white;
            grid-column: span 1;
            height: 100%;
            object-fit: contain;
            padding: 2rem;
            width: 100%;
        }

#frontpage #galleries {
    background-color: var(--offwhite);
    position: relative;
    z-index: 2;
}

    #frontpage #galleries h2 {
        padding: 4rem;
        text-align: center;
    }

    #frontpage #galleries .gallery-list {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
        gap: 0;
    }

        #frontpage #galleries a {
            background: var(--black);
            display: flex;
            filter: saturate(0.25);
            flex-direction: column;
            justify-content: space-between;
            height: 100dvh;
            overflow: hidden;
            padding: 4rem;
            position: relative;
            text-decoration: none;
            transition: all 0.25s cubic-bezier(0.5, 0, 0.5, 1);
            min-width: 360px;
        }

        #frontpage #galleries a:hover {filter: saturate(1);}
        #frontpage #galleries a:hover::before {transform: translateY(0);}

        #frontpage #galleries a.CoSIDI {background: linear-gradient(to bottom, transparent 50%, white 100%), url("/FigureSkating/logos/CoSIDI_logo.png") no-repeat center center / contain, linear-gradient(0deg, white, white);}

        #frontpage #galleries a.DM {background: linear-gradient(to bottom, var(--DSU-red) 0%, transparent 16%, transparent 50%, var(--DSU-red) 100%), url("/FigureSkating/logos/DSU_logo.png") no-repeat center center / 50% auto, url("/FigureSkating/Comps/DMDC25/resources/DM_BG.png") no-repeat center center / cover;}

        #frontpage #galleries a.NRW {background: linear-gradient(to bottom, white 0%, transparent 16%, transparent 50%, white 100%), url("/FigureSkating/logos/NRW-Trophy_Dortmund_logo_fritlagt.png") no-repeat center center / 50% auto, url("/FigureSkating/Comps/NRW-Trophy-2025/resources/IMG_1167.jpg") no-repeat center center / cover;}

        #frontpage #galleries a.SMSC {background: linear-gradient(to bottom, white 0%, transparent 16%, transparent 50%, white 100%), url("/FigureSkating/logos/DSU_logo.png") no-repeat center center / 50% auto, url("/FigureSkating/Comps/SMSC25/resources/thumbnail.png") no-repeat center center / cover;}

            #frontpage #galleries a p, 
            #frontpage #galleries a h3 {color: var(--offwhite);}

            #frontpage #galleries a.light p,
            #frontpage #galleries a.light h3 {color: var(--black);}

#frontpage #news {
    padding: 4rem;
    position: relative;
    z-index: 3;
}

    #frontpage #news h2 {
        text-align: center;
    }

    #frontpage #news #news-grid {
        display: grid;
        grid-template-columns: repeat(auto-fit, minmax(360px, 1fr));
        gap: 4rem;
        margin-top: 4rem;
    }

        #frontpage #news #news-grid a {
            align-items: flex-end;
            display: flex;
            flex-direction: column;
            overflow: hidden;
            position: relative;
            text-decoration: none;
            transition: all 0.25s cubic-bezier(0.5, 0, 0.5, 1);
        }

            #frontpage #news #news-grid a img {
                aspect-ratio: 3440 / 1440;
                margin: 0.5rem 0;
                object-fit: contain;
                width: 100%;
            }

            #frontpage #news #news-grid a .date {
                color: rgba(240,243,245,0.5);
                font-size: 0.9rem;
                width: 100%;
            }

            #frontpage #news #news-grid a .title {
                transition: all 0.25s cubic-bezier(0.5, 0, 0.5, 1);
                width: 100%;
            }

            #frontpage #news #news-grid a:hover .title {color: var(--gold);}

            #frontpage #news #news-grid a button {
                background: linear-gradient(to bottom, transparent 50%, var(--gold) 50%) no-repeat center top / 100% 200%;
                border: 1px solid var(--offwhite);
                color: var(--offwhite);
                cursor: pointer;
                font-size: 1rem;
                line-height: 1;
                margin-top: 1rem;
                transition: all 0.5s cubic-bezier(0.5, 0, 0.5, 1);
                text-transform: uppercase;
                padding: 1rem 2rem;
            }

            #frontpage #news #news-grid a:hover button {
                background-position: center bottom;
                border-color: var(--gold);
                color: var(--black);
            }