

@media (max-width: 1120px) {
    .top__main {
        margin-right: -1.4rem
    }
}

.top__main__ttl {
    font-size: 24px;
    font-size: 2.4rem;
    font-weight: 500;
    background-color: #FFF247;
    border: 1px solid #000;
    margin: 0 0 5rem -5rem;
    width: 100%;
    max-width: 64rem;
    text-align: center
}

@media (min-width: 769px) {
    .top__main__ttl {
        padding: 0.5rem
    }
}

@media (max-width: 768px) {
    .top__main__ttl {
        margin: 0 0 3.5rem -5rem
    }
}

@media (min-width: 769px) {
    .top__main__text {
        width: 50%
    }
}

@media (min-width: 769px) {
    .top__main__text__wrap {
        margin-right: 5rem;
        padding-left: 5rem
    }
}

@media (min-width: 769px) {
    .top__main__img {
        width: 50%
    }
}

.top__fullpage__ttl {
    position: absolute;
    top: 50%;
    left: 50%;
    bottom: 0;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%)
}

@media (min-width: 769px) {
    .top__fullpage__ttl {
        height: 100vh;
        padding-top: 25vh
    }
}

@media (max-width: 768px) {
    .top__fullpage__ttl {
        top: 54%
    }
}

.top__fullpage__ttl .vertical-jp {
    background-color: #fff;
    display: block;
    font-size: 4.5vw;
    font-weight: bold;
    letter-spacing: 0.8rem;
    line-height: 1;
    padding: 1rem 1rem 0
}

@media (max-width: 768px) {
    .top__fullpage__ttl .vertical-jp {
        font-size: 36px;
        font-size: 3.6rem
    }
}

.top__fullpage__ttl .vertical-jp:nth-child(2) {
    margin: 0 0.8rem;
    padding-bottom: 2.5rem;
    position: relative
}

.top__fullpage__ttl .vertical-jp:nth-child(2):after {
    content: "、";
    position: absolute;
    bottom: -2.5vw;
    right: 0.5vw
}

.top__fullpage__ttl .vertical-jp:nth-child(3) {
    padding-bottom: 2.5rem;
    position: relative
}

.top__fullpage__ttl .vertical-jp:nth-child(3):after {
    content: "。";
    position: absolute;
    bottom: -2.5vw;
    right: 0.5vw
}

.top__fullpage .slide {
    height: 100vh
}

@media (min-width: 769px) {
    .top__fullpage .slide {
        min-height: 50rem
    }
}

.top__fullpage .slide01 {
    position: relative
}

.top__fullpage .slide01 div {
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    height: 100vh
}

@media (min-width: 769px) {
    .top__fullpage .slide01 div {
        width: 50%;
        min-height: 50rem
    }
}

@media (max-width: 768px) {
    .top__fullpage .slide01 div {
        height: 50vh
    }
}

.top__fullpage .slide01__01 {
    background-image: url(../images/top_mv01.jpg)
}

@media (max-width: 768px) {
    .top__fullpage .slide01__01 {
        border-top: 3px solid #000;
        background-image: url(../images/top_mv02_sp.jpg)
    }
}

.top__fullpage .slide01__02 {
    background-image: url(../images/top_mv02.jpg)
}

@media (min-width: 769px) {
    .top__fullpage .slide01__02 {
        border-left: 1px solid #000
    }
}

@media (max-width: 768px) {
    .top__fullpage .slide01__02 {
        background-image: url(../images/top_mv01_sp.jpg)
    }
}

.top__fullpage .slide02 {
    height: 140vh;
    position: relative;
    background-image: url(../images/top_bg.jpg);
    background-attachment: fixed;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover
}

@media (max-width: 768px) {
    .top__fullpage .slide02 {
        background: none
    }
}

@media (max-width: 768px) {
    .top__fullpage .slide02 {
        height: auto
    }
}

.top__fullpage .slide02:before {
    content: " ";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0);
    -webkit-transition: 0.5s ease-in-out;
    -moz-transition: 0.5s ease-in-out;
    -o-transition: 0.5s ease-in-out;
    transition: 0.5s ease-in-out
}

.top__fullpage .slide02.active:before {
    background-color: rgba(0, 0, 0, 0.6)
}

.top__fullpage .slide02__img {
    position: relative
}

.top__fullpage .slide02__img:before {
    content: " ";
    position: fixed;
    top: 0;
    left: 0;
    width: 100vw;
    height: 100vh;
    background-image: url(../images/top_bg_sp.jpg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: -1
}

.top__fullpage .slide02__01 {
    position: relative;
    height: 50vh
}

@media (max-width: 768px) {
    .top__fullpage .slide02__01 h2 {
        min-height: 25rem;
        top: 65%
    }
}

@media (min-width: 769px) {
    .top__fullpage .slide02__01 .top__fullpage__ttl {
        left: auto;
        right: 0%;
        padding-top: 8vh;
        height: 50vh
    }
}

.top__fullpage .slide02__01 .top__fullpage__ttl .vertical-jp:first-child {
    padding-bottom: 2.5rem;
    position: relative
}

.top__fullpage .slide02__01 .top__fullpage__ttl .vertical-jp:first-child:after {
    content: "。";
    position: absolute;
    bottom: -2.5vw;
    right: 0.5vw
}

.top__fullpage .slide02__01 .top__fullpage__ttl .vertical-jp:nth-child(2):after {
    content: "。"
}

.top__fullpage .slide02__02 {
    position: relative;
    padding: 10vh 10vw;
    color: #fff;
    overflow: scroll;
    -ms-overflow-style: none;
    scrollbar-width: none
}

@media (max-width: 768px) {
    .top__fullpage .slide02__02 {
        height: auto;
        padding: 10vh 10vw 10vh 7vw
    }
}

.top__fullpage .slide02__02::-webkit-scrollbar {
    display: none
}

@media (max-width: 768px) {
    .top__about {
        padding: 10rem 3rem 6rem 1.6rem;
        border-bottom: 3px solid #000
    }
}

@media (min-width: 769px) {
    .top__about__illust {
        width: 85%;
        margin: 3.5rem auto 0;
        display: block
    }
}

@media (max-width: 768px) {
    .top__about__illust {
        width: 100%;
        margin-bottom: 1.5rem
    }
}

@media (max-width: 768px) {
    .top__about__text p {
        margin-bottom: 3rem
    }
}

.top__about__img div {
    width: 100%;
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover
}

@media (min-width: 769px) {
    .top__about__img div {
        height: calc(100vh / 3)
    }
}

.top__about__img__01 {
    background-image: url(../images/top_about01.jpg)
}

.top__about__img__02 {
    background-image: url(../images/top_about02.jpg)
}

.top__about__img__03 {
    background-image: url(../images/top_about03.jpg)
}

@media (max-width: 768px) {
    .top__senpai {
        padding: 10rem 3rem 0.1rem 1.6rem;
        border-bottom: 3px solid #000
    }
}

@media screen and (min-width: 1440px) {

    .top__senpai .senpai01 .top__main__text__wrap,
    .top__senpai .senpai03 .top__main__text__wrap {
        margin-right: 20rem
    }
}

@media screen and (min-width: 1440px) {

    .top__senpai .senpai02 .top__main__text__wrap,
    .top__senpai .senpai04 .top__main__text__wrap {
        padding-left: 20rem
    }
}

@media (max-width: 768px) {
    .top__senpai>div {
        margin-bottom: 8rem
    }
}

@media (max-width: 768px) {
    .top__senpai__text p {
        margin-top: 2.5rem
    }
}

.top__senpai__info {
    line-height: 1.4
}

.top__senpai__info__no {
    padding: 0.2rem 0.7rem;
    margin-bottom: 0.5rem;
    display: inline-block
}

@media (max-width: 768px) {
    .top__senpai__info__name {
        line-height: 1.2;
        margin-top: 0.5rem
    }
}

.top__senpai__info__cat {
    margin: 2rem 0 3rem
}

@media (min-width: 769px) {
    .top__senpai__info__cat li:first-child {
        margin-right: 3rem
    }
}

@media (max-width: 768px) {
    .top__senpai__info__cat li:first-child {
        margin-bottom: 1rem
    }
}

.top__senpai__info__cat li span {
    border: 1px solid #000;
    padding: 0 1rem;
    margin-right: 1rem;
    margin-bottom: 1rem;
    display: inline-block
}

.top__flow {
    padding: 13.5rem 0
}

@media (max-width: 768px) {
    .top__flow {
        padding: 10rem 3rem 0.1rem 1.6rem;
        border-bottom: 3px solid #000
    }
}

.top__flow .top__main__ttl {
    margin-bottom: 12rem
}

@media (max-width: 768px) {
    .top__flow .top__main__ttl {
        margin-bottom: 7rem
    }
}

.top__flow__list__item {
    position: relative;
    text-align: center
}

@media (min-width: 769px) {
    .top__flow__list__item {
        width: calc(100% / 4 - 6rem)
    }

    .top__flow__list__item:last-child {
        margin-right: 0
    }
}

@media (max-width: 768px) {
    .top__flow__list__item {
        margin-bottom: 7.5rem
    }
}

.top__flow__list__item::after {
    content: " ";
    position: absolute;
    width: 1rem;
    height: 1.15rem;
    background-size: cover;
    right: -19%
}

@media (min-width: 769px) {
    .top__flow__list__item::after {
        top: 5.5rem;
        background-image: url("../images/icon_arrow_right.svg")
    }
}

@media (max-width: 768px) {
    .top__flow__list__item::after {
        width: 1.8rem;
        height: 1.45rem;
        right: 0;
        left: 0;
        bottom: -4rem;
        margin: auto;
        background-image: url("../images/icon_arrow_down.svg")
    }
}

.top__flow__list__item:last-child::after {
    display: none
}

.top__flow__list__item div {
    font-size: 20px;
    font-size: 2rem;
    font-weight: 500;
    margin: 1.5rem auto 0.6rem
}

.top__flow__list__item p {
    text-align: left
}

.top__contact {
    padding: 8rem 0
}

@media (max-width: 768px) {
    .top__contact {
        padding: 10rem 3rem 6rem 1.6rem;
        border-bottom: 3px solid #000
    }
}

.top__contact .top__main__ttl {
    margin-bottom: 8rem
}

@media (max-width: 768px) {
    .top__contact .top__main__ttl {
        margin-bottom: 0
    }
}

.top__calendar {
    padding: 8rem 0
}

@media (max-width: 768px) {
    .top__calendar {
        padding: 10rem 3rem 3rem 1.6rem
    }
}

.top__calendar__text {
    margin-bottom: 2.5rem
}

.top__stay {
    padding: 8rem 0 11rem
}

@media (max-width: 768px) {
    .top__stay {
        padding: 10rem 3rem 8rem 1.6rem
    }
}

.top__stay__text {
    margin-bottom: 2.5rem
}

.covid-note {
    color: red;
    text-align: center;
    margin-top: 2rem;
    margin-bottom: 3rem
}

@keyframes tonext {
    75% {
        left: 0
    }

    95% {
        left: 100%
    }

    98% {
        left: 100%
    }

    99% {
        left: 0
    }
}

@keyframes tostart {
    75% {
        left: 0
    }

    95% {
        left: -300%
    }

    98% {
        left: -300%
    }

    99% {
        left: 0
    }
}

@keyframes snap {
    96% {
        scroll-snap-align: center
    }

    97% {
        scroll-snap-align: none
    }

    99% {
        scroll-snap-align: none
    }

    100% {
        scroll-snap-align: center
    }
}

ol,
li {
    list-style: none;
    margin: 0;
    padding: 0
}

.carousel {
    position: relative;
    padding-top: 110%;
    filter: drop-shadow(0 0 10px rgba(0, 0, 0, 0.2));
    perspective: 100px
}

.carousel__viewport {
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    display: flex;
    overflow-x: scroll;
    counter-reset: item;
    scroll-behavior: smooth;
    scroll-snap-type: x mandatory
}

.carousel__slide {
    position: relative;
    flex: 0 0 100%;
    width: 100%;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
    counter-increment: item
}

#carousel__slide1__1 {
    background-image: url(../images/top_senpai01.jpg)
}

#carousel__slide1__2 {
    background-image: url(../images/top_senpai02.jpg)
}

#carousel__slide1__3 {
    background-image: url(../images/top_senpai03.jpg)
}

#carousel__slide1__4 {
    background-image: url(../images/top_senpai04.jpg)
}

.carousel__snapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    scroll-snap-align: center
}

@media (hover: hover) {
    .carousel__snapper {
        animation-name: tonext, snap;
        animation-timing-function: ease;
        animation-duration: 4s;
        animation-iteration-count: infinite
    }

    .carousel__slide:last-child .carousel__snapper {
        animation-name: tostart, snap
    }
}

@media (prefers-reduced-motion: reduce) {
    .carousel__snapper {
        animation-name: none
    }
}

.carousel:hover .carousel__snapper,
.carousel:focus-within .carousel__snapper {
    animation-name: none
}

.carousel::before,
.carousel::after,
.carousel__prev,
.carousel__next {
    position: absolute;
    width: 4rem;
    height: 4rem;
    outline: 0;
    bottom: 0;
    z-index: 1
}

.carousel::before,
.carousel__prev {
    right: 4.3rem
}

.carousel::after,
.carousel__next {
    right: 0
}

.tableStyle01 {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0 3rem
}

.tableStyle01 th {
    text-align: left;
    vertical-align: top
}

@media (min-width: 769px) {
    .tableStyle01 th {
        width: 20rem
    }
}

@media (max-width: 768px) {
    .tableStyle01 th {
        display: block;
        width: 100%
    }
}

@media (max-width: 768px) {
    .tableStyle01 td {
        display: block;
        width: 100%
    }
}

.tableStyle01 td .wpcf7-list-item {
    margin: 0 2.5rem 0 0
}

@media (max-width: 768px) {
    .tableStyle01 td .wpcf7-list-item {
        display: block
    }
}

.tableStyle01 input,
.tableStyle01 button,
.tableStyle01 select,
.tableStyle01 textarea {
    font-size: 14px;
    font-size: 1.4rem;
    border: 1px solid #000;
    border-radius: 0.5rem
}

.tableStyle01 input[type=checkbox] {
    position: relative;
    width: 1.5rem;
    height: 2.2rem;
    margin: 0 0.7rem 0 0;
    vertical-align: middle
}

.tableStyle01 input[type=checkbox]:after {
    content: " ";
    position: absolute;
    width: 1.2rem;
    height: 1.2rem;
    top: 0.4rem;
    left: 0.4rem;
    right: 0;
    bottom: 0;
    background-color: #000;
    border-radius: 0.3rem;
    opacity: 0;
    -webkit-transition: 0.3s ease-in-out;
    -moz-transition: 0.3s ease-in-out;
    -o-transition: 0.3s ease-in-out;
    transition: 0.3s ease-in-out
}

.tableStyle01 input[type=checkbox] label span {
    vertical-align: middle
}

.tableStyle01 input[type=checkbox]:checked::after {
    opacity: 1
}

.tableStyle01 textarea {
    height: 15rem
}

.submit-btn {
    text-align: center
}

.submit-btn input[type=submit] {
    width: 45rem;
    display: block;
    margin: 0 auto 1rem;
    font-size: 1.6rem;
    background-color: #000;
    color: #fff;
    letter-spacing: 0.5rem;
    padding: 1rem
}

@media (max-width: 768px) {
    .submit-btn input[type=submit] {
        width: 100%
    }
}

.submit-note {
    font-size: 12px;
    font-size: 1.2rem;
    width: 45rem;
    margin: auto;
    line-height: 1.4
}

@media (max-width: 768px) {
    .submit-note {
        width: 100%
    }
}