main {
    display: flex;
    flex-direction: column;
    gap: 4rem;

    & .bg-light-green,
    & .bg-light-yellow {
        padding-block: 4rem;
    }

    & h2 {
        font-size: 1.375rem;
        font-weight: bold;
    }

    & .centering {
        display: flex;
        justify-content: center;
    }
}

#first-view {
    & video {
        pointer-events: none;
        width: 100%;
        aspect-ratio: 128 / 54;
        object-fit: cover;
    }
}

#special-announcement {
    margin-block-start: -1rem;

    & .content {
        display: flex;
        align-items: baseline;
        gap: 2rem;
        padding-block: 2rem 1.75rem;
        padding-inline: 2rem;
        border: 3px solid var(--color-4);
        border-radius: calc(var(--border-radius) * 2);

        & h2 {
            flex-shrink: 0;
            color: var(--color-4);
        }

        & .list {
            position: relative;
            top: -0.0625rem;
            flex-grow: 1;
            display: flex;
            flex-direction: column;
            gap: 1rem;

            & li {
                border-bottom: 1px solid var(--text-color);
                padding-block-end: 0.5rem;
                padding-inline: 0.5rem;

                & .list-content-box {
                    display: flex;
                    justify-content: space-between;
                    gap: 0.25rem 2rem;
                    width: 100%;

                    & .list-content-02 {
                        flex-shrink: 0;
                        display: flex;
                        align-items: center;
                        gap: 2rem;

                        & .icon-chevron-right {
                            background-color: var(--color-4);
                            border-radius: 50%;
                            padding: 0.25rem;
                            aspect-ratio: 1;
                            color: var(--color-1);
                            line-height: 1;
                        }
                    }
                }
            }
        }
    }
}

#banner-content {
    & .content {
        display: flex;
        align-items: flex-start;
        justify-content: space-evenly;
        gap: 2rem;

        & img {
            width: 20rem;
            max-width: 100%;
            transform-origin: bottom center;
            animation: swing-soft 3s ease infinite;
        }
    }
}

@keyframes swing-soft {
    0% {
        transform: rotate(-5deg);
    }
    50% {
        transform: rotate(5deg);
    }
    100% {
        transform: rotate(-5deg);
    }
}

#donation-banner-content {
    margin-block-start: -1rem;

    & .content {
        display: flex;
        justify-content: center;

        & img {
            width: 15rem;
            max-width: 100%;
        }
    }
}

#pickup-news {
    display: flex;
    flex-direction: column;
    gap: 2rem;

    & > .splide {
        display: flex;
        flex-direction: column;
        gap: 2rem;

        & > .splide__track {
            overflow: hidden;

            & > .splide__list {
                display: flex;

                & > .splide__slide {
                    position: relative;
                    flex-shrink: 0;
                    width: calc((100% - 8rem) / 4);
                    margin-right: 2rem;
                    background-color: var(--color-1);
                    border-radius: calc(var(--border-radius) * 4);
                    overflow: hidden;

                    &:not(.is-active)::before {
                        pointer-events: none;
                        position: absolute;
                        content: "";
                        top: 0;
                        left: 0;
                        z-index: 2;
                        height: 100%;
                        width: 100%;
                        background-color: rgb(255 255 255 / 50%);
                    }

                    & > .category {
                        position: absolute;
                        top: 1rem;
                        left: 50%;
                        transform: translateX(-50%);
                        display: flex;
                        justify-content: center;
                        min-width: 70%;
                        padding: 0.5rem 1rem;
                        background-color: var(--color-1);
                        border-radius: 9999px;
                        line-height: 1;
                    }

                    & > .img > img {
                        width: 100%;
                        aspect-ratio: 3 / 2;
                        object-fit: cover;
                    }

                    & > .text {
                        display: flex;
                        flex-direction: column;
                        align-items: flex-start;
                        gap: 0.5rem;
                        padding-inline: 1rem;
                        padding-block: 1rem 1.5rem;

                        & .title {
                            font-size: 1.125rem;
                            font-weight: bold;
                        }
                    }
                }
            }

            & > .splide__sr {
                display: none;
            }
        }

        & > .splide__arrows {
            display: flex;
            justify-content: center;
            gap: 2rem;

            & > .splide__arrow--prev,
            & > .splide__arrow--next {
                display: flex;
                justify-content: center;
                align-items: center;
                font-size: 1.5rem;
                line-height: 1;
                color: var(--color-1);
                border-radius: 50%;
                background-color: var(--text-color-2);
                width: 2rem;
                height: 2rem;
                aspect-ratio: 1;
            }

            & > .splide__arrow--prev {
                transform: rotate(180deg);
            }

            & > .splide__pagination {
                display: flex;
                justify-content: center;
                align-items: center;
                flex-wrap: wrap;
                gap: 0.75rem 1rem;
                line-height: 1;

                & button {
                    display: inline-block;
                    width: 1em;
                    height: 1em;
                    border: 0.0625rem solid var(--text-color);
                    border-radius: 50%;
                    background-color: #fff;

                    &.is-active {
                        background-color: var(--text-color);
                    }
                }
            }
        }
    }

    & > .list-link {
        display: flex;
        justify-content: flex-end;

        & > a {
            padding-block: 0.25rem;
            padding-inline: 0.75rem 1rem;
            background-color: var(--color-1);
            border-radius: 9999px;
        }
    }
}

#main-menu {
    & .content-box {
        display: flex;
        flex-direction: column;
        gap: 2rem;

        & .content {
            display: flex;
            gap: 2rem;

            & .menu-list {
                flex: 1;
                display: flex;
                flex-direction: column;
                gap: 1rem;
                padding: 2rem;
                background-color: var(--color-1);
                border-radius: var(--border-radius);

                & h3 {
                    font-size: 1.375rem;
                    font-weight: bold;
                }

                & ul {
                    display: flex;
                    flex-direction: column;
                    align-items: flex-start;
                    gap: 0.5rem;
                }
            }
        }
    }
}

#selection {
    & .content-box {
        display: flex;
        flex-direction: column;
        gap: 2rem;

        & .content {
            display: flex;
            gap: 2rem;

            & a {
                flex: 1;

                & img {
                    width: 25rem;
                    max-width: 100%;
                }
            }
        }
    }
}

@media only screen and (min-width: 1025px) {
    #pickup-news {
        & > .splide {
            & > .splide__track {
                & > .splide__list {
                    & > .splide__slide {
                        &:is(.is-next, .is-prev)::before {
                            content: unset;
                        }
                    }
                }
            }
        }
    }
}
@media only screen and (max-width: 1024px) {
    main {
        margin-block-start: 1rem;
    }

    #special-announcement {
        & .content {
            flex-wrap: wrap;
            gap: calc(0.5rem + 0.0625rem) 1rem;
            padding-block: 1rem 1.5rem;
            padding-inline: 1rem;

            & .list {
                & li {
                    & a {
                        display: block;
                        width: fit-content;

                        & .list-content-box {
                            flex-direction: column;

                            & .list-content-01 {
                                order: 2;
                            }

                            & .list-content-02 {
                                order: 1;
                            }
                        }
                    }
                }
            }
        }
    }

    #banner-content {
        & .content {
            flex-wrap: wrap;
            gap: 2rem 1rem;
        }
    }

    #pickup-news {
        & > .splide {
            & > .splide__track {
                & > .splide__list {
                    & > .splide__slide {
                        margin-right: 1rem;
                        width: min(25rem, calc(100% - 4rem));
                    }
                }
            }

            & > .splide__arrows {
                gap: 1rem;
            }
        }
    }

    #main-menu {
        & .content-box {
            & .content {
                flex-direction: column;

                & .menu-list {
                    padding: 1.5rem;
                }
            }
        }
    }

    #selection {
        & .content-box {
            & .content {
                flex-direction: column;
                align-items: center;
            }
        }
    }
}
