@charset "utf-8";

/* ---
    追加CSS
----------------------------------- */

body{
    position: relative;
}

.mtb30{ margin:30px auto; }
.mt35{ margin-top:35px; }

.red{ color: #cc0000; }

/* クローズボタン上書き */
.close-btn{
    text-align: center;
}

/* トップページお知らせ一覧上書き */
.news_wrap{
    justify-content: flex-start;
    .post_detaile{
        padding: 0 25px;
        a{
            display: block;
            margin: 0 auto;
        }
        &:first-child{
            padding: 0 25px;
        }
    }
}

/* 打ち消し線 */
.strike{
    display: inline-block!important;
    text-decoration: line-through;
    margin-right: 5px;
}

.wrapper{
    overflow-y:hidden;
}

/* 縦書き */
.writing-mode-rl span{
    writing-mode: vertical-rl;
    letter-spacing: 1em;
    white-space: pre;
    display: block;
    width: 24px;
}

/* --- 共通 パンくず --- */
.breadcrumb{
    width:100%;
    margin:60px auto 0 auto;
    .inner{
        max-width:1200px;
        width:83.73333333%;
        margin: 0 auto;
        text-align: right;
        a{
            text-decoration: underline;
            &:hover{
                text-decoration: none;
            }
        }
    }
}

/* --- ローディング画面 --- */
#loading-screen {
  position: fixed;
  z-index: 99999;
  top: 0; left: 0; width: 100vw; height: 100vh;
  background: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: opacity 0.5s;
  flex-direction: column;
}
#loading-screen.hide {
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.5s;
}
#loading-screen .loading-progress-bar {
  width: 200px;
  height: 6px;
  background: #eee;
  border-radius: 3px;
  margin-top: 24px;
  overflow: hidden;
  box-shadow: 0 0 4px #ccc inset;
}
#loading-screen .loading-progress {
  width: 0%;
  height: 100%;
  background: #b4442e;
  transition: width 0.3s;
}

/* Galleryページの閉じるボタン上書き */
/*@media (max-width:820px){*/
    .gallery-close-btn{
        position: absolute;
        width:70px;
        height: 70px;
        top: auto;
        bottom: 0;
        right: 50%;
        background-color: #896845;
        color: #fff;
        font-size: 50px!important;
        transform: translateX(50%);
        display: flex;
        justify-content: center;
        align-items: center;
    }
/*}*/

/* フッター固定予約ボタン上書き */
.btn-reserve{
    width: 400px;
}

/* フッターSNSアイコン（スマホのみ） */
.footer-sns-icon_list{
    display: flex;
    position: fixed;
    bottom: 80px;
    left: 0;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 10px;
    max-width: 35%;
    z-index: 99;
    li{
        width: calc(50% - 20px);
    }
    @media (max-width:767px){
    }
}

#header{
    .wrap_header{
        position: relative;
        #gnavWrap{
            margin-right: 200px;
            @media (max-width:767px){
                margin-right: 0;
            }
        }
        .sns-icon_list{
            position: absolute;
            width:200px;
            right: 0;
            top: 50%;
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            align-items: center;
            transform: translateY(-50%);
            gap: 10px;
            li{
                a{
                    display: block;
                    max-width: 60px;
                    margin: 0 auto;
                }
            }
            @media (max-width:767px){
                display: none;
            }
        }
    }
}

.sec-heading{
    @media (max-width:767px){
        width: 90%;
    }
}

/* Experience 共通リンクボタン3列 */
.ex-link_list{
    width:100%;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: 20px;
    li{
        /*width: calc(100% / 3 - 20px);*/
        .btn-link{
            margin: 0 auto;
        }
        @media (max-width:767px){
            width: 100%;
            margin-bottom: 10px;
        }
        &.two-video{
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            align-items: center;
            flex-direction: column;
            a{
                margin-bottom:10px;
            }
        }
    }
    @media (max-width:767px){
        flex-direction: column;
        gap: 10px;
    }
}

.video-modal-container {
  display: none;
  position: fixed;
  z-index: 9999;
  left: 0; top: 0; width: 100vw; height: 100vh;
  background: rgba(0,0,0,0.7);
  align-items: center;
  justify-content: center;
}
.video-modal-container.active {
  display: flex;
}
.video-modal-body {
  background: #fff;
  border-radius: 10px;
  padding: 20px;
  position: relative;
}
.video-modal-close {
  position: absolute;
  top: 10px; right: 20px;
  font-size: 30px;
  color: #333;
  cursor: pointer;
  z-index: 2;
}

/* トップページ「Gallery」部分の上書き */
#gallery{
    .sec-inner{
        position: relative;
        .gallery-content{
            display: block;
            width: 100%;
            position: relative;
        }
        .text-content{
            position: absolute;
            bottom: -100px;
            right: 30px;
            .btn-link{
                margin: 0;
            }
            @media (max-width:820px){
                bottom: -70px;
            }
        }
    }

    .gallery-category-links{
        width:100%;
        ul{
            display: flex;
            flex-wrap: wrap;
            justify-content: center;
            align-items: stretch;
            gap: 10px;
            margin:60px auto 0 auto;
            li{
                width: calc(100% / 8 - 10px);
                a{
                    font-size: 1.4rem;
                    line-height: 1.4;
                    display: flex;
                    justify-content: center;
                    align-items: center;
                    width: 100%;
                    height: 100%;
                    text-align: center;
                    border: 1px solid #B4442E;
                    color: #121212;
                    padding: 6px 0;
                    background-color: #fff;
                    border-radius: 50vw;
                    &:hover{
                        color: #fff;
                        background-color: #B4442E;
                        transition: 0.5s;
                    }
                    @media (max-width:767px){
                        font-size: 1.2rem;
                        border-radius: 6px;
                    }
                }
                @media (max-width:767px){
                    width:calc(100% / 3 - 5px);
                    margin-bottom: 10px;
                }
                &:nth-child(8){
                    a{
                        text-indent: 0.5em;
                    }
                }
            }
            @media (max-width:767px){
                gap: 5px;
                justify-content: flex-start;
            }
        }
    }
}

/* トップページGalleryコーナーの slick */
.gallery-slider{
    .slick-slide{
        figure{
            padding: 20px;
            img{
                display: block;
                border-radius: 20px;
                min-height: 400px;
                width:auto;
                object-fit: cover;
                @media (max-width:767px){
                    min-height: 200px;
                }
            }
            @media (max-width:767px){
                padding:5px;
            }
        }
        &:nth-child(2n){
            margin-top: 60px;
        }
    }
}

/* トップページPHOTO SPOTコーナーの slick */
.gallery-slider2{
    max-width:90%;
    margin: 0 auto;
    li{
        margin-bottom: 30px;
    }
    /*.slick-slide{
        figure{
            padding: 20px;
            img{
                display: block;
                min-height: 400px;
                object-fit: cover;
            }
        }
    }
    .slick-prev,
    .slic-next{
        z-index: 100;
    }
    .slick-prev{
        left: 50px;
        @media (max-width:767px){
            left: 10px;
        }
    }
    .slick-next{
        right: 50px;
        @media (max-width:767px){
            right: 10px;
        }
    }*/
}

/* PHOTO SPOT */
#photo-spot{
    .sec-heading{
        b{
            color:#52391f;
        }
    }
    .sec-inner{
        margin:100px auto 40px auto;
    }
    .floor-map_around2{
        .around2_inner{
            @media (max-width:767px){
                overflow-x: scroll;
                border:1px solid #dfdfdf;
                margin-bottom:20px;
            }
        }
        .floor-map{
            max-width: 100%;
            width:800px;
            height: 431px;
            margin:30px auto;
            position: relative;
            background-size: 100%;
            background-repeat: no-repeat;
            &.f2{
                background-image: url(../images/top_floor_2f.jpg);
            }
            &.f3{
                background-image: url(../images/top_floor_3f.jpg);
            }
        }
        .floor-map{
            .point{
                position: absolute;
                background-size: 100%;
                background-repeat: no-repeat;
                
                &.p01{ width:168px; height:175px; top:25px; left:445px; background-image: url(../images/photo-spot/point_icon01_2.png); }
                &.p02{ width:149px; height:133px; top:93px; left:282px; background-image: url(../images/photo-spot/point_icon02_2.png); }
                &.p03{ width:129px; height:133px; top:72px; left:148px; background-image: url(../images/photo-spot/point_icon03_2.png); }
                &.p04{ width:130px; height:124px; bottom:67px; right:55px; background-image: url(../images/photo-spot/point_icon04_2.png); }
                &.p05{ width:151px; height:85px; bottom:59px; left:313px; background-image: url(../images/photo-spot/point_icon05_2.png); }
                &.p06{ width:144px; height:141px; top:232px; left:156px; background-image: url(../images/photo-spot/point_icon06_2.png); }

                @media (max-width:767px){
                    &.p01{ width:105px; height:109px; top:15px; left:278px; }
                    &.p02{ width:93px; height:83px; top:58px; left:176px; }
                    &.p03{ width:80px; height:83px; top:45px; left:92.5px; }
                    &.p04{ width:81.2px; height:77.5px; bottom:70px; right:34.3px; }
                    &.p05{ width:94.3px; height:53.1px; bottom:66.5px; left:195.6px; }
                    &.p06{ width:90px; height:88.1px; top:145px; left:97px; }
                }
            }
            @media (max-width:767px){
                max-width:500px;
                height: 300px;
                overflow-x:scroll;
                background-color: #fff;
                margin: 20px;
            }
        }

        .modal-container{
            display: flex;
            align-items: center;
            justify-content: center;
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            text-align: center;
            background: rgba(0,0,0,50%);
            padding: 40px 20px;
            overflow: auto;
            opacity: 0;
            visibility: hidden;
            transition: .3s;
            box-sizing: border-box;
            z-index: 99;
            &.active{
                opacity: 1;
                visibility: visible;
            }
            .modal-body{
                position: relative;
                display: inline-block;
                vertical-align: middle;
                max-width: 960px;
                width: 100%;
                .modal-close{
                    position: absolute;
                    display: flex;
                    align-items: center;
                    justify-content: center;
                    top: -40px;
                    right: -40px;
                    width: 40px;
                    height: 40px;
                    font-size: 40px;
                    color: #fff;
                    cursor: pointer;
                    @media (max-width:767px){
                        width: 30px;
                        height: 30px;
                        right:-20px;
                        font-size: 30px;
                    }
                }
                .modal-content{
                    background: #fff;
                    text-align: left;
                    padding: 30px;
                    .point-images{
                        display: flex;
                        flex-wrap: wrap;
                        justify-content:flex-start;
                        align-items: center;
                        gap: 20px;
                        li{
                            width: calc(50% - 10px);
                            .more-button{
                                display: flex;
                                flex-wrap: wrap;
                                justify-content:space-between;
                                align-items: center;
                                margin-top:10px;
                                p{
                                    text-align: center;
                                }
                                button{
                                    background-color: #eb504b;
                                    color: #fff;
                                    border:1px solid #fff;
                                    border-radius: 50vw;
                                    padding: 5px 10px;
                                    &:hover{
                                        background-color: #fff;
                                        color: #eb504b;
                                        border: 1px solid #eb504b;
                                        transition: 0.5s;
                                    }
                                }
                            }
                            @media (max-width:767px){
                                width: 100%;
                            }
                        }
                    }
                    @media (max-width:767px){
                        padding: 10px;
                    }
                }
            }
            @media (max-width:767px){
                align-items: start;
                overflow-x: hidden;
            }
        }
    }
}

/* サブモーダル用 */
.submodal {
  display: none;
  position: fixed;
  z-index: 200;
  left: 0; top: 0; width: 100vw; height: 100vh;
  background: rgba(0,0,0,0.7);
  align-items: center;
  justify-content: center;
}
.submodal.active {
  display: flex;
}
.submodal-content {
  background: #fff;
  padding: 30px;
  border-radius: 0;
  max-width: 960px;
  width: 100%;
  max-height: 80vh;
  overflow: auto;
  position: relative;
  @media (max-width:767px){
    max-width:90%;
    margin: 0 auto;
    padding: 10px;
  }
}
.submodal-close {
  position: absolute;
  top: 10px;
  right: 20px;
  font-size: 30px;
  color: #333;
  cursor: pointer;
  @media (max-width:767px){
    font-size: 20px;
    top: 0;
    right: 3px;
  }
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* トップページ 体験のアンカーリンク */
.ex-anchor-links{
    width: 100%;
    margin: 0 auto 90px auto;
    ul{
        display: flex;
        flex-wrap: wrap;
        justify-content: space-between;
        align-items: center;
        row-gap: 20px;
        li{
            width: calc(100% / 4 - 20px);
            a{
                display: block;
                width: 100%;
                text-align: center;
                padding: 20px 0;
                font-size: 2.0rem;
                background-color: #b4442e;
                color: #fff;
                border: 2px solid #fff;
                &:hover{
                    border: 2px solid #b4442e;
                    background-color: #fff;
                    color: #B4442E;
                }
                @media (max-width:820px){
                    padding: 10px;
                    font-size: 1.6rem;
                }
            }
            @media (max-width:820px){
                width:calc(100% / 2 - 5px);
            }
        }
        @media (max-width:820px){
            row-gap: 10px;
        }
    }
}

/* トップページ「Experience」部分の上書き */
#experi{
    .experience-content-wrap{
        .experience-title{
            margin-bottom: 60px;
            .experience-left{
                .sec-title{
                    @media (max-width:767px){
                        font-size: 9vw;
                        margin-bottom: 0;
                    }
                }
                &.fullwidth{
                    width: 100%;
                    .sec-title{
                        text-align: left;
                        @media (max-width:767px){
                            text-align: center;
                        }
                    }
                }
                @media (max-width:767px){
                    width: 100%;
                }
            }
            @media (max-width:820px){
                flex-direction: column;
            }
        }
        figure{
            width: auto;
        }
        .galley-list-ex{
            figure{
                @media (max-width:820px){
                    width: 100%;
                }
            }
            @media (max-width:820px){
                flex-direction: column;
            }
            &.tate-list{
                flex-wrap: wrap;
                figure{
                    width:calc(100% / 2 - 20px);
                    @media (max-width:820px){
                        width: 100%;
                    }
                }
            }
        }
        @media (max-width:767px){
            padding-top: 45px;
        }
        &.pt90{
            @media (max-width:767px){
                padding-top: 45px;
            }
        }

    }
}

#experi .experience-left{
    width:35%;
    .sec-title{
        font-size: 58px;
        font-weight: 500;
        color: #b4442e;
        line-height: 1.3;
        text-align: center;
    }
}

/* トップページ 甲冑体験 上書き */
.kaccyu-detaile{
    .text{
        min-height:340px;
        @media (max-width:767px){
            min-height: auto;
        }
    }
}

/* トップページ Planのプラン部分上書き */
.plan-list > li{
    .btn-reserve-other{
        margin-top:20px;
    }
}

.plan-list-detaile{
    margin-bottom: 0;
    min-height: auto;
    li{
        border: none;
        margin: 0 auto;
        padding: 3px 10px;
    }
}

.plan-table b{
    font-weight:700;
    color: #ff0000;
    font-size: 1.6rem;
}

/* 料金表の上書き */
.com-plan-table td b{
    color: #ff0000;
    font-weight: 700;
}

/* Galleryページ */
#gallery{
    .gallery-list{
        figure{
            img{
                aspect-ratio: 4 / 3;
            }
        }
    }
}
.gallery-section{
    margin-bottom: 60px;
    h3.gallery-section-title{
        font-size: 25px;
        margin-bottom: 20px;
        font-weight: 500;
        color: #52391f;
        padding-bottom: 15px;
        border-bottom: 1px solid;
    }
}

/* Lightboxの画像サイズ */
.lb-image{
    width:1000px!important;
    height:650px!important;
    object-fit:contain;
    @media (max-width:820px){
        width:300px!important;
        height:auto!important;
    }
}

/* ---
    投稿系 上書き・追加
----------------------------------- */
#archive{
    .blog_title{
        font-weight: 600;
        margin: 0 0 40px 0;
        line-height: 1.4;
        font-size: 18px;
        padding-bottom: 20px;
        border-bottom: solid 2px #e0e2e3;
        position: relative;
        &::after{
            position: absolute;
            content: " ";
            display: block;
            border-bottom: solid 2px #b4442e;
            bottom: -3px;
            width: 20%;
        }
    }
}