@charset "UTF-8";
/* CSS Document */
/* stageArea */

#dearStage,
#otherStage,
#pastStage {
    padding-top: 150px;
    margin-top: -150px;
}

.stageArea .inner {
    padding: 80px 50px 0;
    margin: 0 auto;
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
}

.stageArea01 {
    /* position: relative; */
}

.stageArea01 .inner {
    max-width: 1100px;
    padding: 30px 50px 0;
}

.stageArea02 .inner {
    max-width: 1100px;
    padding: 80px 50px 50px;
}

.stageArea03 .inner {
    max-width: 1400px;
}

.stageArea04 .inner {
    max-width: 1400px;
    padding-bottom: 150px;
}

.stageArea .inner .text01 {
    padding-bottom: 20px;
    font-family: "Lusitana", serif;
    font-size: min(3.5vw, 16px);
    line-height: 1.8;
    text-align: center;
}

.stageArea .inner #ticketArea {
    padding-top: 140px;
    margin-top: -140px;
}

/* 詳細はこちら・予約ボタン */
.stageArea .listArea .txtBox .btnArea {
    display: flex;
    justify-content:
        space-between;
}

/* swiper-slide */
.swiper-container {
    width: 100%;
    max-width: 770px;
    margin: 0 auto;
    text-align: center;
    overflow: hidden;
}

.swiper-container .swiper-slide {
    aspect-ratio: 770 / 546;
}

.swiper-container .swiper-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.swiper-container02 {
    width: 100%;
    margin: 0 auto;
    padding-bottom: 80px;
    text-align: center;
    overflow: hidden;
}

.swiper-container02 .swiper-slide {
    aspect-ratio: 310 / 438;
}

.swiper-container02 .swiper-slide img {
    width: 100%;
    height: 100%;
    /* object-fit: cover; */
}

.swiper-horizontal>.swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
    bottom: inherit;
    left: 0;
    width: 100%;
}

.swiper-container .swiper-pagination-bullet {
    background-color: #fff;
}

.btnArea .stagebtn {
    margin: 50px auto 20px;
    padding: 0 10px;
    text-align: center;
}

.btnArea .stagebtn a {
    display: block;
    width: 100%;
    margin: 0 auto;
    max-width: 550px;
    padding: 10px 2em;
    border: 1px solid #fff;
    border-radius: 25px;
    font-size: min(3.8vw, 18px);
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 600;
    color: #000;
    background-color: #fff;
    position: relative;
}

.btnArea .stagebtn a:hover {
    color: #ccc;
    background-color: #111;
}

.naviArea ul {
    width: 100%;
    display: flex;
    flex-wrap: wrap;
}

.naviArea ul li {
    margin: 10px auto;
    text-align: center;
}

.naviArea ul li a {
    display: inline-block;
    width: 300px;
    font-size: min(3.5vw, 15px);
    font-family: "Shippori Mincho B1", serif;
    font-weight: 400;
    padding: 15px 2em;
    border-radius: 40px;
    border: 1px solid #fff;
}

.naviArea ul li a:hover {
    background-color: #000;
}

/*listArea*/
.listArea {
    margin: 50px auto;
}

.listArea ul li {
    display: flex;
    flex-wrap: wrap;
    width: calc(100% - 80px);
    border-right: 1px solid #fff;
    margin-bottom: 80px;
    position: relative;
}

.listArea ul li:before {
    position: absolute;
    top: 0;
    right: -80px;
    font-size: min(9vw, 54px);
    color: #fff;
    font-family: "Shippori Mincho B1", serif;
}

.listArea ul.closeList li {
    border-right: 1px solid #111;
}

.listArea ul.closeList li:before {
    color: #111;
    font-family: "Shippori Mincho B1", serif;
}

.listArea ul li:nth-child(1):before {
    content: "01";
}

.listArea ul li:nth-child(2):before {
    content: "02";
}

.listArea ul li:nth-child(3):before {
    content: "03";
}

.listArea ul li:nth-child(4):before {
    content: "04";
}

.listArea ul li:nth-child(5):before {
    content: "05";
}

.listArea ul li:nth-child(6):before {
    content: "06";
}

.listArea ul li:nth-child(7):before {
    content: "07";
}

.listArea ul li:nth-child(8):before {
    content: "08";
}

.listArea ul li:nth-child(9):before {
    content: "09";
}

.listArea ul li:nth-child(10):before {
    content: "10";
}

.listArea ul li:nth-child(11):before {
    content: "11";
}

.listArea ul li:nth-child(12):before {
    content: "12";
}

.listArea ul li:nth-child(13):before {
    content: "13";
}

.listArea ul li:nth-child(14):before {
    content: "14";
}

.listArea ul li:nth-child(15):before {
    content: "15";
}

.listArea ul li:nth-child(16):before {
    content: "16";
}

.listArea ul li:nth-child(17):before {
    content: "17";
}

.listArea ul li:nth-child(18):before {
    content: "18";
}

.listArea ul li:nth-child(19):before {
    content: "19";
}

.listArea ul li:nth-child(20):before {
    content: "20";
}

.listArea ul li:nth-child(21):before {
    content: "21";
}

.listArea ul li:nth-child(22):before {
    content: "22";
}

.listArea ul li:nth-child(23):before {
    content: "23";
}

.listArea ul li:after {
    content: "STAGE";
    position: absolute;
    top: 4.5em;
    right: -70px;
    font-size: min(5vw, 23px);
    font-family: "Shippori Mincho B1", serif;
    color: #fff;
    transform: rotate(90deg);
}

.listArea ul.closeList li:after {
    color: #111;
}

.listArea ul li .imgBox {
    width: 30%;
    max-width: 225px;
}

.listArea ul li .imgBox img {
    aspect-ratio: 340 / 480;
    object-fit: cover;
    width: 100%;
}

.listArea ul li .txtBox {
    width: 70%;
    padding: 5px 20px 0 40px;
}

.listArea ul li .txtBox .titleTxt {
    font-size: min(5vw, 27px);
    font-family: "Shippori Mincho B1", serif;
}

.listArea ul li .txtBox .dateTxt {
    font-size: min(6vw, 30px);
    font-family: "Shippori Mincho B1", serif;
    color: #767676;
    margin-bottom: 25px;
}

.listArea ul li .txtBox .detailTxt {
    font-size: min(3vw, 13px);
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    margin-bottom: 25px;
}

.listArea ul li .txtBox .btn {
    margin-top: 30px;
    margin-bottom: 25px;
}

.listArea ul li .txtBox .btn a {
    padding: 10px 2em;
    display: inline-block;
    border: 1px solid #fff;
    border-radius: 25px;
    font-size: min(4vw, 14px);
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    margin-bottom: 25px;
    text-align: center;
    min-width: 250px;
}

.listArea ul li .txtBox .btn a:hover {
    border: 1px solid #000;
    background-color: #000;
}

.listArea .title {
    font-family: "Lusitana", serif;
    font-weight: 400;
    color: #fff;
    font-size: min(5vw, 26px);
    padding-bottom: 80px;
}

.listArea02 {
    margin: 50px auto;
}

.listArea02 .title {
    font-family: "Lusitana", serif;
    font-weight: 400;
    color: #fff;
    font-size: min(5vw, 26px);
    /* padding-bottom: 80px; */
}

.listArea02 p {
    padding-bottom: 80px;
    font-family: "Lusitana", serif;
    font-size: min(3.5vw, 16px);
    line-height: 1.8;
}

.listArea02 .swiper-container02 .swiper-wrapper .swiper-slide a:hover .imgBox img {
    opacity: 0.7;
}

.listArea02 .swiper-container02 .swiper-wrapper .swiper-slide .imgBox {
    margin-bottom: 15px;
}

.listArea02 .swiper-container02 .swiper-wrapper .swiper-slide .imgBox img {
    /* object-fit: cover; */
    aspect-ratio: 256 / 350;
}

.listArea02 .swiper-container02 .swiper-wrapper .swiper-slide .titleTxt {
    text-align: left;
    font-size: min(3vw, 14px);
}

.stageArea04 .inner .h2Area {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-content: center;
    margin-bottom: 30px;
}

.stageArea04 .inner .h2Area h2 {
    position: relative;
    display: inline-block;
    font-family: "Lusitana", serif;
    font-weight: 400;
    color: #fff;
    font-size: min(5vw, 26px);
    padding: 6px 1.5em;
}

.stageArea04 .inner .h2Area h2:before {
    position: absolute;
    content: "";
    background-color: #700000;
    width: 300%;
    height: 100%;
    z-index: -1;
    right: 0;
    top: 0;
}

.stageArea04 .inner .h2Area .btn a {
    padding: 10px 2em;
    display: inline-block;
    border: 1px solid #fff;
    border-radius: 25px;
    font-size: min(4vw, 14px);
    font-family: "Noto Sans JP", sans-serif;
    font-weight: 400;
    text-align: center;
    min-width: 250px;
}

.stageArea04 .inner .h2Area .btn a:hover {
    border: 1px solid #000;
    background-color: #000;
}

.stageArea04 .inner .text01 {
    padding: 15px 5vw;
    text-align: left;
}

.archiveSection {
    position: relative;
    width: 100%;
    margin-top: 40px;
}

.archiveViewport {
    width: 100%;
    overflow: hidden;
}

.archiveSwiper {
    width: 100%;
}

.archive-arrow {
    position: absolute;
    top: 38%;
    transform: translateY(-50%);
    z-index: 50;
    width: 52px;
    height: 52px;
    border: 1px solid rgba(255, 255, 255, 0.7);
    border-radius: 50%;
    background: rgba(20, 20, 20, 0.45);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    transition: background 0.2s ease, opacity 0.2s ease, transform 0.2s ease;
    box-shadow: 0 4px 14px rgba(0, 0, 0, 0.25);
}

.archive-arrow span {
    display: block;
    font-size: 28px;
    line-height: 1;
    margin-top: -2px;
}

.archive-arrow:hover {
    background: rgba(20, 20, 20, 0.7);
    transform: translateY(-50%) scale(1.05);
}

.archive-arrow:active {
    transform: translateY(-50%) scale(0.98);
}

.archive-arrow-prev {
    left: -26px;
}

.archive-arrow-next {
    right: -26px;
}

@media screen and (max-width: 1200px) {
    .archiveSection {
        padding: 0 32px;
    }

    .archive-arrow-prev {
        left: 0;
    }

    .archive-arrow-next {
        right: 0;
    }
}

@media screen and (max-width: 1000px) {

    /* stageArea */
    .stageArea .inner {
        padding: 30px 6vw 0;
    }

    .stageArea03 .inner {
        padding: 30px 1vw 0 4vw;
    }

    .stageArea04 .inner .h2Area {
        display: block;
    }

    .stageArea04 .inner .btn {
        margin: 30px auto 0;
        text-align: center;
    }

    .btnArea .stagebtn {
        margin: 40px auto 0;
        padding: 0 6vw;
    }

    .stageArea .inner #ticketArea {
        padding-top: 85px;
        margin-top: -85px;
    }

    .stageArea .listArea .txtBox .btnArea {
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 20px;
    }

    .stageArea .listArea .txtBox .btnArea .btn {
        width: 100%;
        text-align: center;
        margin: 0 !important;
    }

    .stageArea .listArea .txtBox .btnArea .btn a {
        width: 100%;
        max-width: 380px;
        margin: 0 auto;
    }
}

@media screen and (max-width: 768px) {
    .stageArea .inner .text01 {
        text-align: left;
    }

    .archiveSection {
        padding: 0 24px;
    }

    .archive-arrow {
        width: 40px;
        height: 40px;
    }

    .archive-arrow span {
        font-size: 22px;
    }
}

@media screen and (max-width: 600px) {
    .stageArea .inner {
        margin-bottom: 100px;
    }

    .stageArea01 .inner {
        margin-bottom: 20px;
    }

    .swiper-container .swiper-container {
        margin: 30px auto 0;
    }

    .swiper-container02 .swiper-container {
        margin: 30px auto 0;
    }

    /*listArea*/
    .listArea .title {
        padding: 0 5vw 50px 5vw;
    }

    .listArea02 .title {
        /* padding: 0 5vw 50px 5vw; */
    }

    .listArea02 p {
        padding-bottom: 50px;
    }

    .listArea ul li {
        width: calc(100% - 50px);
    }

    .listArea ul li .imgBox {
        width: 100%;
        padding: 0 3vw;
        margin: 0 auto 25px;
    }

    .listArea ul li .txtBox {
        width: 100%;
        margin: 0 auto;
        padding: 0 3vw;
    }

    .listArea ul li:before {
        right: -12vw;
    }

    .naviArea ul li {
        width: 100%;
        margin: 10px auto;
    }

    .naviArea ul li a {
        display: block;
        width: 100%;
    }

    .stageArea03 .inner {
        margin-bottom: 50px;
        padding: 0 2vw;
    }

    .photo.listArea ul li:before {
        right: -12vw;
        color: #ffc107;
    }

    .listArea {
        margin: 0 auto;
    }

    .listArea ul li:after {
        top: 18vw;
        right: -14vw;
    }

    .listArea02 {
        margin: 0 auto;
        padding: 0 3vw;
    }
}

@media screen and (max-width: 400px) {}
