@charset "UTF-8";

:root {
    --gbk-accent-color: #f094ae;
    --gbk-assort-color: #f7f7b7;
}

html {
    scroll-behavior: smooth;
}

.contents .route-branch a {
    margin-top: 1em;
}

@media screen and (min-width: 768px) {
    .contents .route-branch {
        display: flex;
        gap: 1em;
        margin-bottom: 2em;

        & a {
            margin: 0;
        }
    }
}

.contents .notice {
    border: 1px solid var(--gbk-accent-color);
    border-radius: 5px;
    padding: 0.5em;
    margin: 2em 0;

    & li {
        &::before {
            color: var(--gbk-accent-color);
            content: '※';
            font-size: 1.2em;
            padding-right: 0.2em;
        }

        line-height: 1.5em;
        padding-left: 0.3em;
    }
}

.contents h4.route {
    color: var(--gbk-accent-color);
    margin: 2em 0 0.5em 0;
}

.contents .route-path {
    padding-left: 1em;
    margin-bottom: 1em;
}

.contents .route-map {
    width: 100%;
}

.contents .swiper {
    padding-bottom: 2.4em;
}

.contents .swiper-slide {
    height: auto;

    &.--last {
        text-align: center;

        & a {
            aspect-ratio: 4/3;
            display: flex;
            justify-content: center;
            align-items: center;
            background-color: var(--gbk-assort-color);
            font-size: 1.5em;
            text-decoration: none;

            & span {
                background-color: var(--gbk-accent-color);
                color: var(--gbk-assort-color);
                padding: 0.8em;
                border-radius: 5px;
            }
        }
    }

    & img {
        width: calc(100vw/1.4);
        aspect-ratio: 4/3;
    }

    & .slide-no {
        font-size: 1.5em;
        font-weight: bold;
        position: absolute;
        top: 0.5em;
        left: 0.5em;
        width: 1.5em;
        height: 1.5em;
        line-height: 1.5em;
        text-align: center;
        background-color: var(--gbk-accent-color);
        border-radius: 50%;
        border: 0.5px solid var(--gbk-assort-color);
    }

    & p {
        padding: 0.5em;
        font-size: 1.1em;
        font-weight: bold;
    }
}

@media screen and (min-width: 768px) {
    .contents .swiper-slide img {
        width: calc(653px/1.33);
    }
}

.contents .swiper-button-prev,
.contents .swiper-button-next {
    background-color: var(--gbk-accent-color);
    color: var(--gbk-assort-color);
    top: unset;
    bottom: 0;
    border-radius: 50%;

    & svg {
        fill: var(--gbk-assort-color);
        height: 50%;
    }
}

.contents .swiper-pagination-bullet.swiper-pagination-bullet-active {
    background-color: var(--gbk-accent-color);
    opacity: 1.0;
}

.contents .swiper-pagination-bullet {
    --bullet-size: calc((100vw - 55px * 2) / 10 - 8px);
    width: var(--bullet-size);
    height: var(--bullet-size);
    line-height: var(--bullet-size);
    max-width: 2rem;
    max-height: 2rem;
    background-color: #CCC;
    color: var(--gbk-assort-color);
    text-align: center;
    font-weight: bold;
    opacity: 0.8;
}

@media screen and (min-width: 480px) {
    .contents .swiper-pagination-bullet {
        line-height: 2rem;
    }
}