.firstview {
    position: relative;
}

.firstview .firstview__video video {
    width: 100%;
    height: auto;
    display: block;
}

.firstview .firstview__layer {
    margin: auto;
    position: absolute;
    left: 0;
    right: 0;
    top: 4rem;
}

.firstview .firstview__layer .firstview__layer-logo {
    width: 31rem;
    margin: 0 auto 10rem;
}

.firstview .firstview__layer .firstview__layer-text {
    line-height: 1.65;
    font-size: 2.6rem;
    font-weight: bold;
    text-align: center;
    text-shadow:
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white),
        0 0 0.3rem var(--white);
}

.firstview .firstview__btns {
    margin: auto;
    position: absolute;
    bottom: 2.5rem;
    left: 0;
    right: 0;
}

.slider {
    margin-bottom: 3rem;
    padding: 3rem 2rem;
    background: var(--gradation-03);
}

.slider .slick-arrow--prev,
.slider .slick-arrow--next {
    position: absolute;
    top: calc(50% - 1.5rem);
    z-index: 9;
    font-size: 3rem;
    color: #abe8ff;
}

.slider .slick-arrow--prev {
    left: 0;
}

.slider .slick-arrow--next {
    right: 0;
}

.slider .slick-dotted.slick-slider {
    margin-bottom: initial;
}

.slider .slick-dots {
    margin-top: 1rem;
    position: relative;
    bottom: 0;
}

.slider .slick-dots li,
.slider .slick-dots li button {
    width: 1.5rem;
    height: 1.5rem;
}

.slider .slick-dots li button:before {
    width: 1.5rem;
    height: 1.5rem;
    line-height: 1.5rem;
    font-size: 1.5rem;
    color: var(--blue-03);
}

.slider .slick-dots li.slick-active button:before {
    color: var(--blue-03);
}

.index-flex {
    margin: 3rem auto;
}

.index-flex .index-flex-text {
    margin-bottom: 3rem;
}

.index-flex .index-flex-text .index-heading {
    margin: 3rem auto;
    font-size: 2.4rem;
    font-weight: bold;
    color: var(--blue-01);
}

.index-flex .index-flex-text p .large {
    font-size: 3.2rem;
    font-weight: bold;
}

.index-link-list li {
    margin-bottom: 2rem;
}

.index-link-list li:last-of-type {
    margin-bottom: initial;
}

.index-link-list li a {
    width: fit-content;
    margin-left: auto;
    display: flex;
    align-items: center;
    font-size: 2rem;
    font-weight: bold;
    color: var(--text-blue);
    text-align: center;
}

.index-link-list li a i {
    margin-left: 0.5rem;
}

/* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    781px OVER
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
@media screen and (min-width: 781px) {
    .firstview .firstview__layer .firstview__layer-logo {
        margin: 0 auto 7rem;
    }

    .firstview .firstview__btns {
        display: none;
    }

    .slider .slider-list li {
        width: calc((100% - 2rem) / 2) !important;
        margin-right: 2rem;
    }

    .slider .slider-list li:last-of-type {
        margin-right: initial;
    }
}
/* =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
    960px OVER
=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-= */
@media screen and (min-width: 960px) {
    .firstview .firstview__video {
        max-height: 72rem;
        overflow: hidden;
    }

    .firstview .firstview__layer .firstview__layer-text {
        font-size: 5.6rem;
    }

    .slider .slider-list {
        max-width: var(--contents-width);
        margin: 0 auto;
    }

    .contents {
        display: block;
    }

    .index-flex {
        display: grid;
        grid: auto-flow / 50rem 35rem;
        gap: 5rem;
    }

    .index-flex .index-flex-text {
        margin-bottom: initial;
    }

    .index-flex .index-flex-text > *:first-child {
        margin-top: initial;
    }

    .index-flex .index-flex-text .index-heading {
        font-size: 3.2rem;
    }

    .index-flex .index-flex-text p {
        font-size: 2rem;
    }

    .index-flex .index-flex-text p .large {
        font-size: 4rem;
    }
}
