/* リセットCSS */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

/* 基本設定 */
html {
    scroll-behavior: smooth;
}

body {
    font-family: 'Noto serif JP', "Times New Roman", "YuMincho", "Hiragino Mincho ProN", "Yu Mincho", "MS PMincho", serif;
    line-height: 1.6;
    color: #333;
    overflow-x: clip;
    width: 100%;
}

body.active {
    overflow: hidden;
    position: fixed;
    width: 100%;
    height: 100%;
}

body,
html,
figure {
    margin: 0;
    padding: 0;
    width: 100%;
    height: 100%;
}

ul {
    padding-left: 20px;
}

h2 {
    font-size: 35px;
    font-weight: 500;
    margin-bottom: 25px;
    text-align: center;
}

h3 {
    font-size: 25px;
    font-weight: 500;
    margin: 25px 0;
    text-align: center;
}

h4 {
    font-size: 20px;
    font-weight: 500;
}

.pc-block {
    display: block !important;
}

.sp-block {
    display: none !important;
}

@media (max-width: 768px) {
    .main-fv-image img {
        width: 100%;
        height: 100%;
        position: relative;
        aspect-ratio: unset;
    }

    .pc-block {
        display: none !important;
    }

    .sp-block {
        display: block !important;
    }
}

/* フッター */
.footer {
    width: 100%;
    padding-bottom: 250px;

    .footer-copyright {
        font-size: 12px;
        letter-spacing: 0.2em;
        font-weight: 500;
        line-height: 1.6;
        text-align: center;
    }
}

/* メイン */
.main {
    width: 100%;
    background-color: #fff;
}

.main-container {
    width: 94%;
    max-width: 800px;
    margin: 0 auto;
    padding: 50px 0;
}

.main-container2 {
    width: 94%;
    max-width: 650px;
    margin: 0 auto;
    padding: 50px 0;
}

@media (max-width: 768px) {
    .main-container {
        padding: 25px 0;
    }
}

/* モーダル */
.modal-window {
    display: none; 
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 100;
    background-color: rgba(0, 0, 0, 0.5);
    display: flex;
    justify-content: center;
    align-items: center;
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    -moz-backdrop-filter: blur(10px);
    -ms-backdrop-filter: blur(10px);
    -o-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    -moz-backdrop-filter: blur(10px);
    -ms-backdrop-filter: blur(10px);
    -o-backdrop-filter: blur(10px);
    display: none;
    padding: 10px 20px;

    &.active {
        display: flex;
    }

    .modal-window-content {
        width: 100%;
        max-width: 600px;
        margin: 0 auto;
        height: 90%;
        position: relative;
        top: 0;
        left: 0;
        z-index: 1;
        background-color: #fcebc4;
        padding: 50px 20px 0px;
        color: #042642;
        font-family: 'Noto serif', serif;
    }

    .modal-window-close {
        width: 35px;
        height: 35px;
        position: absolute;
        top: 10px;
        right: 10px;
        z-index: 1;
        cursor: pointer;

        img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }
    }

    .modal-window-img {
        width: 100%;
        max-width: 200px;
        margin: 0 auto;
        position: relative;

        img {
            width: 100%;
            height: 100%;
        }
    }

    h2 {
        margin-top: 30px;
        margin-bottom: 25px;
        font-weight: 600;
        font-size: 24px;
        color: #042642;
    }

    p{
        font-size: 16px;
        margin-bottom: 40px;
    }
    @media(min-width:800px){
        p{
            font-size: 18px;
            text-align: center;
        }
    }

    .modal-window-boxes {
        width: 100%;
        max-width: 600px;
        margin: 25px auto 0;
        position: relative;
        padding: 20px 5%;
        background-color: #d2e3f1;
    }

    .modal-window-text {
        font-size: 20px;
        width: 100%;
        background-color: #042642;
        color: #fff;
        padding: 5px 0;
        border-radius: 50px;
        text-align: center;
        font-weight: 300;
        font-family: 'Noto serif JP', sans-serif;

        @media (min-width: 768px) {
            font-size: 24px;
        }
    }

    .modal-window-operation {
        margin-top: 25px;
        font-size: 22px;
    }

    .modal-window-time {
        font-size: 42px;
        letter-spacing: 0.15em;
    }
}

.modal-window.active { 
    display: block;
}

#modal-window-a{
    background: #0f2b8a;
    color: #fff;
    text-decoration: none;
    font-size: 20px;
    text-align: center;
    display: block;
    margin: auto;
    width: 250px;
    line-height: 50px;
    border-radius: 5px;
    box-shadow: 0 2px 8px #0006;
}

/* メインコンテンツ */

.main-fv {
    width: 100%;
    height: 100vh;
    position: relative;
    z-index: 99;
    min-height: 600px;

    img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .bg-images {
        width: 100%;
        height: 100%;
        position: absolute;
        top: 0;
        left: 0;
        z-index: 0;
    }

    .bg-images img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .main-fv-content {
        width: 100%;
        height: 100%;
        z-index: 1;
        background-image: url('./images/bg.webp');
        background-position: center;
        background-repeat: no-repeat;
        background-size: cover;
    }

    .main-fv-image {
        width: 100%;
        height: 100%;
        position: relative;
        display: flex;
        justify-content: center;
        text-align: center;
    }

    .main-fv-image img {
        width: 96%;
        max-width: 1200px;
        aspect-ratio: 12/7.75;
        height: auto;
        max-height: 97.5%;
        object-fit: contain;
    }

    @media (max-width: 768px) {
        .main-fv-image {
            align-items: unset;
        }

        .main-fv-image img {
            width: 94%;
            height: 100%;
            position: relative;
            aspect-ratio: unset;
            object-position: top;
        }
    }
}

.main-invitation {
    margin-top: 30px;

    .main-invitation-top {
        margin-bottom: 35px;

        .main-invitation-h2 {
            margin-bottom: 30px;
        }

        .main-invitation-text {
            font-size: 18px;
            font-weight: 500;
            line-height: 1.8;
        }
    }
}

#random-list{
    display: flex;
    gap: 20px 0;
    flex-wrap: wrap;
    justify-content: space-between;
}

#random-list a{
    width: 32%;
    display: block;
    box-shadow: 0 2px 8px #0003;
    border-radius: 10px;
    overflow: hidden;
    color: #000;
    text-decoration: none;
    img{
        width: 100%;
        height: 160px;
        object-fit: cover;
    }
    p{
        margin: 0;
        padding: 2px 10px 8px 10px;
    };
}

@media(max-width:600px){
    #random-list a{
        width: 49%;
    }
}


.main-operation {
    background-color: #766008;
    margin-top: 50px;
    padding-bottom: 20px;

    .main-operation-h2 {
        margin-bottom: 30px;
        color: #fff;
    }

    .main-operation-h3 {
        font-size: 24px;
        font-weight: 300;
        margin-bottom: 30px;
        text-align: center;
        color: #fff;
    }

    .tab-switch {
        --tab-color: #ffffff;
        display: flex;
        flex-wrap: wrap;
    }

    /* ラジオ非表示 */
    .tab-switch input {
        display: none;
        text-align: center;
    }

    /* タブボタン */
    .tab-switch label {
        padding: 0.7em 1em;
        width: calc(100% / 2);
        border-radius: 10px 10px 0 0;
        order: -1;
        text-align: center;
        font-size: 1rem;

    }

    .tab-switch input:not(:checked)+label {
        background: #000;
        color: #fff;
        cursor: pointer;
        border-bottom: 2px solid #e0e0e0;
        transition: 0.3s;

        &:hover {
            background-color: #333;
        }
    }

    /* コンテンツ非表示 */
    .tab-content {
        width: 100%;
        padding: 5% 5% 7.5%;
        background-color: #fff;
    }

    /* 選択されたタブ＋コンテンツ表示 */
    .tab-switch input:checked+label {
        border-bottom: 2px solid #fff;
        background: #fff;
        color: #000;
    }

    .tab-switch input:checked+label+.tab-content {
        display: block;
    }

    .main-operation-boxes {
        display: flex;
        flex-wrap: wrap;
        gap: 20px;
        position: relative;

        &::before,
        &::after {
            content: '　';
            position: absolute;
            height: 80%;
            width: 20px;
            top: 0;
            left: 17.5%;
            transform: translateX(-50%);
            background-color: #eeeeee;
            z-index: 0;
        }

        &::after {
            left: unset;
            right: 17.5%;
            transform: translateX(50%);
        }
    }
    .main-operation-line{
        height: 80%;
        width: 20px;
        background-color: #eeeeee;
        position: absolute;
        top: 0;
        left: 50%;
        transform: translateX(-50%);
        z-index: 0;
    }

    .main-operation-box {
        width: 100%;
        padding: 20px;
        border-radius: 10px;
        border: 1px solid #e9e9e9;
        box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.2);
        position: relative;
        z-index: 1;
        background-color: #fff;
    }

    .main-operation-h4 {
        font-size: 20px;
        font-weight: 500;
        margin-bottom: 5px;
    }

    .main-operation-detail {
        display: inline-block;
        background: #333;
        font-size: 14px;
        font-weight: 400;
        margin-bottom: 5px;
        color: #fff;
        text-decoration: none;
        padding: 0.3em 1em;
        border-radius: 20px;
        box-shadow: 0 2px 5px #0005;
        margin-bottom: 1em;
    }

    .main-operation-detail::before {
        content: '';
        display: inline-block;
        width: 1em;
        height: 0.9em;
        background-image: url('./images/map.svg');
        background-repeat: no-repeat;
        background-size: contain;
    }

    .main-operation-times {
        display: flex;
        flex-wrap: wrap;
        gap: 2%;
        justify-content: space-between;
    }

    .main-operation-time-box {
        flex: 1;
        padding: 0px 0 0px;
        background-color: #fff6d7;
    }

    .main-operation-root {
        font-size: 18px;
        font-weight: 300;
        background-color: #766008;
        color: #fff;
        text-align: center;
    }

    .main-operation-time {
        font-size: 18px;
        font-weight: 400;
        text-align: center;
        line-height: 1.25;

        span {
            padding-left: 5px;
            font-size: 23px;
            font-weight: 400;
        }
    }

    .main-operation-departure {
        font-size: 16px;
        padding: 5px 0;
        font-weight: 400;
        text-align: center;
        line-height: 1.25;
    }

    .main-operation-news {
        font-size: 16px;
        font-weight: 300;
        margin-top: 25px;
        color: #fff;
    }
}

.main-application {
    background-color: #fcebc4;
    padding: 25px 0;

    .main-application-text {
        font-size: 16px;
        font-weight: 400;
        line-height: 1.8;
    }

    .main-application-image {
        width: 100%;
        height: 100%;
        margin-bottom: 15px;

        img {
            width: 100%;
            height: 100%;
        }

        p{
            font-size: 15px;
            font-weight: 600;
        }
    }

    .main-application-list {
        list-style: none;
        position: relative;
        padding-left: 12px;
    }

    .main-application-item {
        position: relative;
        padding-left: 10px;
        margin-bottom: 5px;

        &::before {
            content: '';
            position: absolute;
            top: 4px;
            left: -10px;
            width: 16px;
            height: 18px;
            z-index: 1;
        }

        &.end {
            &::before {
                background-color: #666666;
            }
        }

        &.priority {
            &::before {
                background-color: #be2f2f;
            }
        }

        &.common {
            &::before {
                background-color: #1758d2;
            }
        }

        &.waiting {
            &::before {
                background-color: #068c2c;
            }
        }
    }

    .main-application-item-text {
        font-size: 13px;
        font-weight: 400;
        font-family: 'Noto sans JP', sans-serif;
        line-height: 1.8;
    }

    @media (min-width: 768px) {
        .main-application-schedule {
            display: flex;
            gap: 25px;
        }

        .main-application-image {
            width: 55%;
        }

        .main-application-list {
            width: fit-content;
        }

        .main-application-item-text {
            font-size: 14px;
            word-break: break-all;
        }
    }
}

.main-participation {
    padding: 50px 0;

    .main-participation-item {
        position: relative;
        margin-bottom: 5px;
    }

    .main-participation-item-text {
        font-size: 16px;
        font-weight: 400;
        line-height: 1.8;
    }

    .main-participation-h3 {
        font-size: 16px;
        font-weight: 600;
        margin: 20px 0 0;
        color: #000;
        padding-left: 20px;
        position: relative;

        &::before {
            content: '■';
            position: absolute;
            top: 0px;
            left: 0;
        }
    }

    .main-participation-img{
        width: 100%;
        max-width: 400px;
    }

    @media (min-width: 768px) {
        padding: 25px 0;
    }

}

.main-flow {
    background-color: #e6f2f7;
    padding: 25px 0;

    .main-flow-list {
        list-style: none;
        padding: 0;
        display: flex;
        flex-wrap: wrap;
        gap: 60px;
        position: relative;

        &::after {
            content: '　';
            position: absolute;
            height: 90%;
            width: 20px;
            top: 0;
            left: 50%;
            transform: translateX(-50%);
            background-color: #ccc;
            z-index: 0;
        }
    }

    .main-flow-item {
        width: 100%;
        padding: 10px 0;
        background-color: #fff;
        position: relative;
        z-index: 1;

        span {
            position: absolute;
            top: -50px;
            left: 0;
            width: 50px;
            height: 50px;
            background-color: #000;
            color: #fff;
            border-radius: 50px;
            display: flex;
            justify-content: center;
            align-items: center;
            font-weight: 500;
        }

        &.enjoy {
            margin-top: -35px;
            background-color: #fff;
            border: 1px solid #000;

        }

        &.end {
            margin-top: -35px;
        }
    }

    .main-flow-item-text {
        font-size: 15px;
        font-weight: 400;
        line-height: 1.85;
        text-align: center;
    }
}

.main-faq {
    width: 100%;
    height: fit-content;
    padding: 25px 0;

    .main-faq-item {
        width: 100%;
        height: fit-content;
        padding: 15px 0;
        border-bottom: 2px solid #d9d9d9;
    }

    .main-faq-question {
        position: relative;
        font-size: 16px;
        font-weight: 500;
        line-height: 24px;
        letter-spacing: 0%;
        text-align: left;
        margin-bottom: 15px;
        padding-left: 35px;

        &::before {
            content: 'Q';
            display: block;
            background-color: #0050e9;
            color: #fff;
            border-radius: 50px;
            width: 26px;
            height: 26px;
            text-align: center;
            position: absolute;
            left: 0;
            top: 0;
            line-height: 23px;
        }
    }

    .main-faq-answer {
        font-size: 14px;
        font-weight: 500;
        line-height: 24px;
        letter-spacing: 0%;
        text-align: left;
        position: relative;
        padding-left: 35px;

        &::before {
            content: 'A';
            display: block;
            background-color: #ec0074;
            color: #fff;
            border-radius: 50px;
            width: 26px;
            height: 26px;
            font-size: 16px;
            text-align: center;
            position: absolute;
            left: 0;
            top: 0;
            line-height: 24px;
        }
    }
}

@media (min-width: 800px) {
    .main-faq {
        .main-faq-question {
            padding-left: 40px;

            &::before {
                width: 30px;
                height: 30px;
                line-height: 27px;
            }
        }

        .main-faq-answer {
            font-size: 16px;
            line-height: 1.8;
            padding-left: 40px;

            &::before {
                font-size: 18px;
                width: 30px;
                height: 30px;
                line-height: 28px;
            }
        }
    }
}


.main-buzz {
    padding: 5%;
    background-color: #ffe9b6;
    border-radius: 5px;

    h3 {
        font-size: 25px;
        font-weight: 500;
        margin-bottom: 15px;
        text-align: center;
    }

    img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }
}

.main-buzz-buttons {
    width: 80%;
    max-width: 500px;
    margin: 15px auto;

    .main-invitation-button {
        position: relative;
        display: block;
        width: 100%;
        text-align: center;
        border: 1px solid #000;
        padding: 7.5px 0;
        border-radius: 5px;
        font-size: 20px;
        font-weight: 500;
        line-height: 1.6;
        text-decoration: none;
        color: #000;
        background-color: #fff;
        transition: all 0.3s ease;

        &::after {
            content: '';
            position: absolute;
            top: 50%;
            transform: translateY(-50%) rotate(45deg);
            right: 20px;
            width: 10px;
            height: 10px;
            border-top: 2px solid #a8a8a8;
            border-right: 2px solid #a8a8a8;
            transform-origin: center center;
            transition: all 0.3s ease;
        }

        &:hover {
            background-color: #000;
            color: #fff;

            &::after {
                border-top: 2px solid #fff;
                border-right: 2px solid #fff;
            }
        }
    }
}


.main-contact {
    background-color: #F8F8F8;
    padding: 25px 0;
    margin-bottom: 50px;

    .main-contact-box {
        width: 100%;
        margin: 0 auto;
        background-color: #fff;
        padding: 20px;
    }

    .main-contact-text {
        font-size: 14px;
        font-weight: 400;
        line-height: 1.5;
        text-align: center;
        color: #0F2554;
        margin-bottom: 15px;
    }

    .main-contact-tel,
    .main-contact-email {
        font-size: 16px;
        font-weight: 400;
        line-height: 1.5;
        color: #0F2554;
    }
}

.main-fv-bottom {
    width: 100%;
    margin: 0 auto;
    height: fit-content;
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    padding-top: 30px;
    padding-bottom: 15px;
    z-index: 99;
    text-align: center;
    background: #FFF;
    background: linear-gradient(0deg, rgba(255, 255, 255, 1) 0%, rgba(255, 255, 255, 0) 100%);

    a {
        width: clamp(320px, 96%, 500px);
        color: #fff;
        text-decoration: none;
        display: inline-block;
        height: fit-content;
        padding: 10px 0;
        background: #760d08;
        background: linear-gradient(0deg, #620703 0%, #A10C04 100%);
        color: #fff;
        font-size: clamp(20px, 2.5vw, 25px);
        font-weight: 500;
        line-height: 1.5;
        letter-spacing: 0.1em;
        font-family: 'Noto serif', serif;
        text-align: center;
        border-radius: 5px;
        border: 2px solid #fff;
        padding: 10px 0;
        transition: all 0.3s ease;
        box-shadow: 0 4px 4px 0 rgba(0, 0, 0, 0.25);
    }

    a:hover {
        background: #fff !important;
        color: #760d08;
        border: 2px solid #760d08;
    }
}