@charset "utf-8";

/**************************************/
/*    var
/**************************************/
:root {
  --bg-color: #000;
  --sub-bg-color: #FFF;
  --main-color: #FFF;
  --sub-color: #000;
  --main-link-color: #FFF;
  --sub-link-color: #0185e2;
  --font-size-base: 16px;
}
/**************************************/
/*    共通レイアウト
/**************************************/
@import url('https://fonts.googleapis.com/css2?family=Noto+Serif+JP:wght@200..900&display=swap');
html{min-height: 100vh;}
body{
    position: relative;
    color:var(--main-color);
    font-family:  "Noto Serif JP", serif;
    font-optical-sizing: auto;
    font-size: var(--font-size-base);
    font-weight: 400;
    min-height: 100vh;
    background-color: var(--bg-color);
}
@media screen and (width <= 767px){
    body{
        font-size: 14px;
    }
}

a{color:var(--main-link-color)}
a:hover{color:var(--sub-link-color)}

.bg-white{
    color:#000;
    background-color: #FFF;
}

/**************************************/
/*    pager
/**************************************/
#pagenation{}
#pagenation .pagination_box{
    justify-content: center;
    line-height: 42px;
    margin: 20px auto;
    max-width:320px;
}
#pagenation .pagination_box .prev_arrow,
#pagenation .pagination_box .next_arrow{
    display: block;
    color: #FFF;
    font-size: 20px;
    text-align: center;
    line-height: 36px;
    width: 42px;
    height: 42px;
    border: solid 1px #FFF;
    border-radius: 21px;
    transition: all 0.3s;
}
#pagenation .pagination_box .prev_arrow:hover,
#pagenation .pagination_box .next_arrow:hover{
    color: var(--sub-link-color);
    border:solid 1px var(--sub-link-color);
}
#pagenation .pagination_box .prev_arrow.disabled,
#pagenation .pagination_box .next_arrow.disabled{
    color:#666;
    border: solid 1px #666;
}
#pagenation .pagination_box .pagination_num_box{}
#pagenation .pagination_box .pagination_num{
    color: #ABB3AF;
    text-align: center;
    width: 42px;
}
#pagenation .pagination_box .pagination_num.active_page{
    font-weight: bold;
    color: #666;
}

.error_txt{
    padding:8px;
    color: #C00;
    line-height: 150%;
}

/**************************************/
/*    animation
/**************************************/
.fade-in {
  opacity: 0;
  animation: fadeIn 1.0s ease-in forwards;
}

@keyframes fadeIn {
  to {
    opacity: 1;
  }
}


/**************************************/
/*    button
/**************************************/
.btn-common{
    position: relative;
    display: block;
    color:var(--main-link-color);
    font-size:16px;
    font-weight: bold;
    line-height: 40px;
    text-align: center;
    margin:0px auto;
    width:240px;
    background-color: transparent;
    border:solid 2px #FFF;
    cursor: pointer;
    transition: all 0.3s;
}
.btn-common:hover{
    color:var(--sub-color);
    background-color: var(--sub-bg-color);
    border:solid 2px #FFF;
}
.btn-common::before {
    position: absolute;
    top: 0;
    left: 0;
    content: "";
    display: block;
    width: 100%;
    height: 100%;
    background: #FFF;
    transform: scaleX(0);
    transform-origin: right;
    transition: all 0.3s ease;
    transition-property: transform;
    z-index: -1;
}
.btn-common:hover::before {
  transform: scaleX(1);
  transform-origin: left;
}

.btn-common:disabled{
    color:#000;
    background-color:#999!important;
    border:solid 2px #666;
}
.btn-common.btn-black{
    color:#000;
    border:solid 2px #000;
}
.btn-common.btn-black:hover{
    color:var(--main-link-color);
    background-color: #000;
    border:solid 2px #000;
}

/**************************************/
/*    title
/**************************************/
h2{
    font-size:40px;
}
h3{
    font-size:24px;
}

@media screen and (width <= 767px){
    h2{
        font-size:28px;
        line-height: 42px;
    }
}

/**************************************/
/*    header / footer
/**************************************/
/* header */
@media screen and (min-width: 769px) {
    header {
        position: absolute;
        top:0px;
        left: 0px;
        width:100%;
        height: 72px;
        background-color: rgba(0,0,0,0.5);
        z-index: 10;
    }
    header .header_layout{
        display: flex;
        margin:0px auto;
        width: 100%;
        min-width:900px;
    }
    header .logo_img{
        display: block;
        width:360px;
        height: 72px;
        background-image:url('../img/common/logo_w.png');
        background-position:center center;
        background-repeat:no-repeat;
        background-size:auto 24px;
    }
    header .logo_img a{
        display: block;
        width: 100%;
        height: 100%;
    }

    header nav{
        line-height: 72px;
        padding-right:20px;
        width: calc(100% - 240px);
    }
    header nav ul{
        display: flex;
        justify-content: flex-end;
        width: 100%;
    }
    header nav ul li{
        display: block;
        font-weight: bold;
        text-align: center;
        padding:0px 16px;
        transition: all 0.3s;
        cursor: pointer;
        border-bottom:solid 4px var(--sub-color)00;
    }
    header nav ul li:hover{
        border-bottom:solid 4px #0185e2FF;
    }
    header nav ul li a{
        display: block;
        width:100%;
        height:72px;
    }
    header nav ul li:hover a{
        color: #0185e2;
    }
    header .sp-display{
        display: none;
    }
}

@media screen and (max-width: 768px) {
    header{
        position: relative;
        height: 64px;
        overflow: hidden;
    }
    header .header_layout{
        display: flex;
        margin:0px auto;
        width: 100%;
    }
    header .logo_img{
        display: block;
        width:216px;
        height: 64px;
        background-image:url('../img/common/logo_w.png');
        background-position:center center;
        background-repeat:no-repeat;
        background-size:auto 16px;
    }
    header .logo_img a{
        display: block;
        width: 100%;
        height: 100%;
    }

    /* pc用は非表示 */
    header .pc-display{
        display: none;
    }

    .menu-toggle{
        position: absolute;
        opacity: 0;
        pointer-events: none;
    }
    .menu-icon {
        position: absolute;
        top:16px;
        right: 8px;
        display: block;
        cursor: pointer;
        width: 32px;
        height: 32px;
        z-index: 1000;
    }

    .menu-icon span {
        display: block;
        height: 4px;
        background: #FFF;
        margin: 4px 0;
        transition: 0.3s;
        border-radius: 2px;
    }

    /* nenu */
    .menu {
        position: fixed;
        top: 0;
        right: -100%;
        width: 200px;
        height: 100%;
        background: #f4f4f4;
        transition: right 0.3s ease;
        padding-top: 64px;
        z-index: 999;
    }

    .menu ul {
        list-style: none;
        padding: 0;
    }

    .menu ul li {
        padding: 16px;
        text-align: center;
    }

    .menu ul li a {
        text-decoration: none;
        color: #333;
        font-weight: bold;
    }
    .menu-toggle:checked ~ .menu {
        right: 0;
    }

    /* アイコン変形（X型） */
    .menu-toggle:checked + .menu-icon span{
        background-color: #000;
    }
    .menu-toggle:checked + .menu-icon span:nth-child(1) {
        transform: rotate(45deg) translate(6px, 6px);
    }
    .menu-toggle:checked + .menu-icon span:nth-child(2) {
        opacity: 0;
    }
    .menu-toggle:checked + .menu-icon span:nth-child(3) {
        transform: rotate(-45deg) translate(6px, -6px);
    }
}


/* footer */
@media screen and (min-width: 769px) {
    footer{
        position: relative;
        text-align: center;
        padding:80px 16px 40px;
    }
    footer::before{
        position: absolute;
        top:-8px;
        left: 0px;
        width:100vw;
        height: 8px;
        content:"";
        background-image:linear-gradient(to left,#4280c1,#2b5482);
    }

    footer .footer_layout{
        display: flex;
        justify-content: space-between;
        margin:0px auto 80px;
        width:800px;
    }
    footer .footer_layout .footer_company_info{
        display: flex;
        width:400px;
    }
    footer .footer_layout .footer_company_info .footer_company_logo{
        width: 100px;
        height: 100px;
        background-image: url('/img/common/logo_vertical_w.png');
        background-size: 100px 100px;
    }
    footer .footer_layout .footer_company_info .footer_company_address{
        line-height: 1.5;
        text-align: left;
        padding-left: 40px;
        width:calc(100% - 100px);
    }

    footer .footer_layout .footer_links{
        display: flex;
        width:400px;
    }
    footer .footer_layout .footer_links ul{
        width:200px;
    }
    footer .footer_layout .footer_links ul li{
        text-align: left;
        margin:0px 8px;
    }
    footer .footer_layout .footer_links ul li a{
        position: relative;
        display: block;
        line-height: 20px;
        padding-left: 24px;
    }
    footer .footer_layout .footer_links ul li a::before{
        position: absolute;
        top:0px;
        left: 4px;
        font-size:8px;
        content: "▶";
    }
    footer .footer_layout ul li a:hover{
        color:#0185e2;
    }

    footer .footer_copyrights_box{
        text-align: center;
    }
}

@media screen and (max-width: 768px) {
    footer{
        position: relative;
        text-align: center;
        padding:40px 16px 40px;
    }
    footer::before{
        position: absolute;
        top:-8px;
        left: 0px;
        width:100vw;
        height: 8px;
        content:"";
        background-image:linear-gradient(to left,#4280c1,#2b5482);
    }

    footer .footer_layout{
        display: flex;
        flex-direction: column;
        justify-content: space-between;
        margin:0px auto 80px;
        width:100%;
    }
    footer .footer_layout .footer_company_info{
        display: flex;
        justify-content: space-between;
        width:100%;
    }
    footer .footer_layout .footer_company_info .footer_company_logo{
        width: 100px;
        height: 100px;
        background-image: url('/img/common/logo_vertical_w.png');
        background-size: 100px 100px;
    }
    footer .footer_layout .footer_company_info .footer_company_address{
        line-height: 1.5;
        text-align: left;
        padding-left: 40px;
        width:calc(100% - 100px);
    }

    footer .footer_layout .footer_links{
        display: flex;
        margin-top:40px;
        width:100%;
    }
    footer .footer_layout .footer_links ul{
        width:50%;
    }
    footer .footer_layout .footer_links ul li{
        text-align: left;
        margin:0px 8px;
    }
    footer .footer_layout .footer_links ul li a{
        position: relative;
        display: block;
        line-height: 20px;
        padding-left: 24px;
    }
    footer .footer_layout .footer_links ul li a::before{
        position: absolute;
        top:0px;
        left: 4px;
        font-size:8px;
        content: "▶";
    }
    footer .footer_layout ul li a:hover{
        color:#0185e2;
    }

    footer .footer_copyrights_box{
        text-align: center;
    }
}

/**************************************/
/*    サイトレイアウト
/**************************************/
main{
    width:100%;
}

.contents{
    padding:16px;
    margin:0px auto;
    width:100%;
    max-width: 1280px;
}

.btn-top-scroll{
    position: fixed;
    bottom:24px;
    right:24px;
    color:var(--main-link-color);
    font-size:20px;
    line-height:48px;
    text-align: center;
    width:48px;
    height:48px;
    background-color: var(--sub-link-color);
    border-radius: 4px;
    cursor: pointer;
}

/* recaptcha no display */
.grecaptcha-badge{
    display: none!important;
}

@media screen and (width <= 767px){
    .btn-top-scroll{
        bottom:48px;
        right:8px;
    }
}
.main-visual .main-divider {
    position: absolute;
    bottom: 0px;
    left: 0px;
    width: 100%;
    line-height: 0;
    transform: translateY(1px) scaleY(-1);
}
.main-divider svg {
    display: block;
    width: 100%;
    height: 40px;
}


/********************************/
/* TOP                         */
/********************************/
#top .main-visual{
    position: relative;
    width:100%;
    height: 480px;
    overflow: hidden;
}
#top .main-visual img{
    width:100%;
}
#top .main-visual .swiper-slide{
    background-size: cover;
    background-position: center top;
}
#top .main-visual .slide1{
    background-image: url('/img/top/main_image_1.jpg');
}
#top .main-visual .slide2{
    background-image: url('/img/top/main_image_2.jpg');
}
#top .main-visual .slide3{
    background-image: url('/img/top/main_image_3.jpg');
}

@media screen and (min-width: 769px) {
    /* main caption */
    #top .main-caption{
        font-size: 40px;
        text-align: center;
        margin:80px auto;
    }

    /* notice */
    #top .notice{
        margin:0px auto 80px;
        width:100%;
        max-width:960px;
    }
    #top .notice h3{
        margin-bottom:24px;
    }
    #top .notice ul{
        display: block;
        width:100%;
    }
    #top .notice ul li{
        display: block;
        width:100%;
        border-bottom:solid 1px #EEE;
    }
    #top .notice ul li a{
        display: flex;
        width:100%;
        padding:0px 16px 0px 16px;
        line-height: 48px;
    }
    #top .notice ul li a:hover{
        color:var(--sub-link-color);
        text-shadow: 0px 0px 2px rgba(255, 255, 255, 1);
    }
    #top .notice ul li a::after{
        position: absolute;
        top: 24px;
        right: 8px;
        content: ">";
    }
    #top .notice ul li span{
        display: block;
    }
    #top .notice ul li .information-date{
        width:200px;
    }
    #top .notice ul li .information-title{
        width:calc(100% - 200px);
    }

    /* about */
    #top .about{
        position: relative;
        color:var(--sub-color);
        margin:80px auto;
        width:100%;
        max-width:940px;
        height: 360px;
        background-image: url('/img/top/about.jpg');
        background-size:480px 320px;
        background-position: left bottom;
        background-repeat: no-repeat;
    }
    #top .about .about-box{
        position: absolute;
        top: 0px;
        right: 0px;
        padding:16px 36px;
        width: 480px;
        height: 320px;
        background-color: var(--sub-bg-color);
    }
    #top .about .about-box .about-title-img{
        width:240px;
        height: 60px;
        background-image:url('/img/common/logo.png');
        background-size:100% auto;
        background-repeat: no-repeat;
    }
    #top .about .about-box .about-description{
        line-height: 1.5;
    }
    #top .about .about-box .about-description span{
        font-size:22px;
    }
    #top .about .about-box .about-description .about-link-position{
        position: absolute;
        bottom:24px;
        right:36px;
    }
    #top .about .about-box .about-description .about-link-position a{
        color:var(--sub-color);
        font-weight: bold;
    }
    #top .about .about-box .about-description .about-link-position a:hover{
        color:var(--sub-link-color);
    }

    /* gallery */
    #top .gallery{
        color:var(--sub-color);
        padding:40px 0px;
        background-color: var(--sub-bg-color);
    }
    #top .gallery .gallery-title{
        text-align: center;
        margin-bottom: 40px;
    }
    #top .gallery .gallery-slide .swiper-slide{
        text-align: center;
    }
    #top .gallery .gallery-slide img{
        width:100%;
        max-width:640px;
        border-radius:8px;
    }
}

@media screen and (max-width: 768px) {
    #top .main-visual{
        position: relative;
        width:100%;
        height: 320px;
        overflow: hidden;
    }

    /* main caption */
    #top .main-caption{
        font-size: 24px;
        text-align: center;
        margin:8px auto 32px;
    }

    /* notice */
    #top .notice{
        padding:0px 16px;
        margin:0px auto 40px;
        width:100%;
    }
    #top .notice h3{
        margin-bottom:24px;
    }
    #top .notice ul{
        display: block;
        width:100%;
    }
    #top .notice ul li{
        display: block;
        width:100%;
        border-bottom:solid 1px #EEE;
    }
    #top .notice ul li a{
        position: relative;
        display: flex;
        flex-direction: column;
        width:100%;
        padding:8px;
        line-height: 24px;
    }
    #top .notice ul li a:hover{
        color:var(--sub-link-color);
        text-shadow: 0px 0px 2px rgba(255, 255, 255, 1);
    }
    #top .notice ul li a::after{
        position: absolute;
        top: 24px;
        right: 8px;
        content: ">";
    }
    #top .notice ul li span{
        display: block;
    }
    #top .notice ul li .notice-date{
        width:100%;
    }
    #top .notice ul li .notice-title{
        width:100%;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }

    /* about */
    #top .about{
        position: relative;
        color:var(--sub-color);
        margin:80px auto 80px;
        width:100%;
    }
    #top .about .about-box{
        margin:0px auto;
        padding:16px 24px 36px;
        width: calc(100% - 24px);
        background-color: var(--sub-bg-color);
    }
    #top .about .about-box .about-title-img{
        width:240px;
        height: 60px;
        background-image:url('/img/common/logo.png');
        background-size:100% auto;
        background-repeat: no-repeat;
    }
    #top .about .about-box .about-description{
        line-height: 1.5;
    }
    #top .about .about-box .about-description span{
        font-size:18px;
    }
    #top .about .about-box .about-description .about-link-position{
        margin-top:24px;
        text-align: right;
    }
    #top .about .about-box .about-description .about-link-position a{
        color:var(--sub-color);
        font-weight: bold;
    }
    #top .about .about-box .about-description .about-link-position a:hover{
        color:var(--sub-link-color);
    }

    /* gallery */
    #top .gallery{
        color:var(--sub-color);
        padding:20px 0px;
        background-color: var(--sub-bg-color);
    }
    #top .gallery .gallery-title{
        text-align: center;
        margin-bottom: 40px;
    }
    #top .gallery .gallery-slide .swiper-slide{
        text-align: center;
    }
    #top .gallery .gallery-slide img{
        width:100%;
        max-width:640px;
        border-radius:8px;
    }
}


/********************************/
/* 共通レイアウト                   */
/********************************/
.sub-visual{
    position: relative;
    margin-bottom:80px;
    width:100%;
    height: 360px;
    background-size:cover;
    background-position:center 20%;
    background-repeat: no-repeat;
}
.sub-visual::after{
    position: absolute;
    bottom:0px;
    left: 0px;
    width:100vw;
    height: 8px;
    content:"";
    background-image:linear-gradient(to left,#4280c1,#2b5482);
}
.sub-visual.about-img{
    background-image: url('/img/about/about_visual.jpg');
}
.sub-visual.price-img{
    background-image: url('/img/price/price_visual.jpg');
}
.sub-visual.access-img{
    background-image: url('/img/access/access_visual.jpg');
}
.sub-visual.reservation-img{
    margin-bottom:0px;
    background-image: url('/img/reservation/reservation_visual.jpg');
}
.sub-visual.inquiry-img{
    background-image: url('/img/inquiry/inquiry_visual.jpg');
}

.sub-visual .sub-title{
    position: absolute;
    left:48px;
    bottom:124px;
    text-shadow: 0px 0px 4px #000;
}
.sub-visual .sub-title h2{
    line-height: 48px;
}
.sub-visual .sub-title h3{
    font-weight: normal;
    line-height: 32px;
}

@media screen and (min-width: 769px) {
    /* reservation-common */
    .reservation{
        padding:40px 0px;
        width:100%;
        height: 640px;
        background-image: url('/img/top/reservation_bg.png');
        background-position: center center;
        background-size: cover;
    }
    .reservation .reservation-title{
        text-align: center;
        margin-bottom: 40px;
    }
    .reservation .reservation-caption{
        font-size:24px;
        font-weight: bold;
        line-height: 1.5;
        text-align: center;
    }
    .other-information{
        display: flex;
        justify-content: space-between;
        margin:80px auto;
        width:720px;
    }
    .other-information .other-box{
        color:#000;
        width:320px;
        height:160px;
        background-color: var(--sub-bg-color);
    }
    .other-information .other-box a{
        position: relative;
        display: block;
        padding:16px 24px;
        width:320px;
        height:160px;
        color:var(--sub-color);
    }
    .other-information .other-box .other-detail{
        padding:16px 0px;
    }
    .other-information .other-box .other-link-position{
        position: absolute;
        right:24px;
        bottom:16px;
        font-weight: bold;
        transition: all 0.3s;
    }
    .other-information .other-box a:hover .other-link-position{
        color:var(--sub-link-color);
    }
}

@media screen and (max-width: 768px) {
    .sub-visual{
        position: relative;
        margin-bottom:40px;
        height: 240px;
    }
    .sub-visual::after{
        height: 4px;
    }
    .sub-visual .sub-title{
        position: absolute;
        top:40px;
        left:24px;
        text-shadow: 0px 0px 4px #000, 0px 0px 4px #000, 0px 0px 4px #000, 0px 0px 4px #000;
    }

    .reservation{
        padding:40px 0px;
        width:100%;
        background-image: url('/img/top/reservation_bg.png');
        background-position: center center;
        background-size: cover;
    }
    .reservation .reservation-title{
        text-align: center;
        margin-bottom: 40px;
    }
    .reservation .reservation-caption{
        font-size:14px;
        font-weight: bold;
        line-height: 1.5;
        text-align: left;
        padding:0px 8px;
    }
    .other-information{
        display: flex;
        flex-direction:column;
        justify-content: center;
        margin:40px auto 0px;
        width:100%;
    }
    .other-information .other-box{
        color:#000;
        margin:40px auto 16px;
        width:320px;
        height:160px;
        background-color: var(--sub-bg-color);
    }
    .other-information .other-box a{
        position: relative;
        display: block;
        padding:16px 24px;
        width:320px;
        height:160px;
        color:var(--sub-color);
    }
    .other-information .other-box .other-detail{
        padding:16px 0px;
    }
    .other-information .other-box .other-link-position{
        position: absolute;
        right:24px;
        bottom:16px;
        font-weight: bold;
        transition: all 0.3s;
    }
    .other-information .other-box a:hover .other-link-position{
        color:var(--sub-link-color);
    }
}


/********************************/
/* notice                       */
/********************************/
@media screen and (min-width: 769px) {
    /* notice */
    #notice .notice{
        padding:0px 16px;
        margin:0px auto 80px;
        max-width: 960px;
        width:100%;
    }
    #notice .notice h3{
        margin-bottom:24px;
    }
    #notice .notice ul{
        display: block;
        width:100%;
    }
    #notice .notice ul li{
        display: block;
        width:100%;
        border-bottom:solid 1px #EEE;
    }
    #notice .notice ul li a{
        position: relative;
        display: flex;
        width:100%;
        padding:0px 16px 0px 16px;
        line-height: 48px;
    }
    #notice .notice ul li a:hover{
        color:var(--sub-link-color);
        text-shadow: 0px 0px 2px rgba(255, 255, 255, 1);
    }
    #notice .notice ul li a::after{
        position: absolute;
        top: 2px;
        right: 8px;
        content: ">";
    }
    #notice .notice ul li span{
        display: block;
    }
    #notice .notice .notice-date{
        width:200px;
    }
    #notice .notice .notice-content{
       width:calc(100% - 200px);
    }
}

@media screen and (max-width: 768px) {
    /* notice */
    #notice .notice{
        padding: 8px;
        padding:0px 16px;
        margin:0px auto 40px;
        width:100%;
    }
    #notice .notice ul{
        display: block;
        width:100%;
    }
    #notice .notice ul li{
        display: block;
        width:100%;
        border-bottom:solid 1px #EEE;
    }
    #notice .notice ul li a{
        position: relative;
        display: flex;
        flex-direction: column;
        width:100%;
        padding:8px;
        line-height: 24px;
    }
    #notice .notice ul li a:hover{
        color:var(--sub-link-color);
        text-shadow: 0px 0px 2px rgba(255, 255, 255, 1);
    }
    #notice .notice ul li a::after{
        position: absolute;
        top: 24px;
        right: 8px;
        content: ">";
    }
    #notice .notice ul li span{
        display: block;
    }
    #notice .notice ul li .notice-date{
        width:100%;
    }
    #notice .notice ul li .notice-title{
        width:100%;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
    }
}


/********************************/
/* about                        */
/********************************/
@media screen and (min-width: 769px) {
    #about .about-main{
        margin:0px auto;
        width:100%;
        max-width:960px;
        padding-bottom:80px;
    }
    #about .about-main .about-caption{
        font-size: 40px;
        text-align: center;
        margin:80px auto;
    }

    #about .about-box{
        font-size:18px;
        line-height: 1.5;
        margin:40px auto;
    }

    #about .about-equipment{
        margin:0px auto;
        width:100%;
        max-width:960px;
        padding-bottom:80px;
    }
    .about-equipment h3{
        font-size: 20px;
    }
    .about-equipment .equipment-title{
        display: grid;
        grid-template-columns: 1fr 1fr 3fr;
        font-size: 20px;
        width: 100%;
        line-height: 64px;
        border-bottom: solid 2px #FFF;
    }
    .about-equipment .equipment-title > div{
        text-align: center;
    }
    .about-equipment .equipment-detail{
        display: grid;
        grid-template-columns: 1fr 1fr 3fr;
        font-size: 16px;
        width: 100%;
        line-height: 64px;
        border-bottom:dotted 2px #EEEEEE;
    }
    .about-equipment .equipment-detail > div{
        text-align: center;
    }
}

@media screen and (max-width: 768px) {
    #about .about-main{
        margin:0px auto;
        width:100%;
    }
    #about .about-main .about-caption{
        font-size: 24px;
        text-align: center;
        margin:40px auto 24px;
    }

    #about .about-box{
        font-size:12px;
        line-height: 1.5;
        margin:24px auto 40px;
    }

    #about .about-equipment{
        margin:0px auto;
        padding:8px;
        width:100%;
        padding-bottom:80px;
    }
    .about-equipment h3{
        font-size: 16px;
        margin-bottom:16px;
    }
    .about-equipment .equipment-title{
        display: grid;
        grid-template-columns: 1fr 1fr 3fr;
        font-size: 14px;
        width: 100%;
        line-height: 24px;
        border-bottom: solid 2px #FFF;
    }
    .about-equipment .equipment-title > div{
        text-align: center;
    }
    .about-equipment .equipment-detail{
        display: grid;
        grid-template-columns: 1fr 1fr 3fr;
        font-size: 12px;
        width: 100%;
        line-height: 36px;
        border-bottom:dotted 2px #EEEEEE;
    }
    .about-equipment .equipment-detail > div{
        text-align: center;
    }
}


/********************************/
/* price                        */
/********************************/
@media screen and (min-width: 769px) {
    #price .price-box{
        margin:0px auto 64px;
        width:100%;
        max-width:960px;
    }
    .price-box .price-inquiry-box p:nth-child(1){
        font-size:32px;
    }
    .price-box .price-inquiry-box p:nth-child(2){
        margin-top:16px;
    }
    .price-box .price-inquiry-box p:nth-child(3){
        margin-top:24px;
    }

    .price-box h3{
        font-size: 28px;
        line-height: 64px;
        border-bottom: solid 1px #FFF;
    }
    .price-box .price-txt{
        font-size:24px;
        padding:32px 0px;
    }
    .price-box .price-txt span{
        font-size:16px;
    }
    .price-box .caution-txt{
        line-height: 24px;
    }
}

@media screen and (max-width: 768px) {
    #price .price-box{
        padding:8px;
        margin:0px auto 24px;
        width:100%;
        max-width:960px;
    }
    .price-box .price-inquiry-box p:nth-child(1){
        font-size:24px;
    }
    .price-box .price-inquiry-box p:nth-child(2){
        margin-top:16px;
    }
    .price-box .price-inquiry-box p:nth-child(3){
        margin-top:24px;
    }

    .price-box h3{
        font-size: 24px;
        line-height: 64px;
        border-bottom: solid 1px #FFF;
    }
    .price-box .price-txt{
        font-size:18px;
        padding:32px 0px;
    }
    .price-box .price-txt span{
        font-size:14px;
    }
    .price-box .caution-txt{
        font-size:14px;
        line-height: 24px;
    }
}

/********************************/
/* reservation                  */
/********************************/
@media screen and (min-width: 768px) {
    #reservation .reservation-main{
        margin:80px auto;
        width:100%;
        max-width:960px;
    }
    .reservation-main h3{
        font-size: 28px;
        line-height: 64px;
        border-bottom: solid 1px #FFF;
    }
    .reservation-main .reservation-txt,
    .reservation-form-box .reservation-txt{
        font-size: 20px;
        margin:32px 0px;
    }
    .reservation-main .reservation-caution,
    .reservation-form-box .reservation-caution{
        line-height: 24px;
    }

    /* calendar */
    #reservation .reservation-calendar{
        margin:80px auto 0px;
        width:100%;
        height: 544px;
        max-width:960px;
    }
    #reservation .calendar h3{
        position: relative;
        font-size:24px;
        line-height: 48px;
        border-bottom: none;
    }
    .calendar h3 .prev-week{
        position: absolute;
        top: 8px;
        right:80px;
        display: block;
        font-size:14px;
        line-height: 32px;
        padding:0px 24px;
        background-color: transparent;
        border:solid 2px #FFF;
    }
    .calendar h3 .next-week{
        position: absolute;
        top: 8px;
        right:8px;
        display: block;
        font-size:14px;
        line-height: 32px;
        padding:0px 24px;
        background-color: transparent;
        border:solid 2px #FFF;
    }
    .calendar h3 .prev-week.disabled,
    .calendar h3 .next-week.disabled{
        background-color: #AAA;        
    }
    .calendar .calendar-parts{
        display: grid;
        grid-template-columns:80px repeat(7, 1fr);
        color:#000;
        font-family: "meiryo";
        height: 480px;
        border:solid 1px #FFF;
        border-radius: 8px;
        overflow: auto;
    }
    .calendar .calendar-parts .calendar-date{
        font-size:14px;
        font-weight: bold;
        line-height: 20px;
        text-align: center;
        padding:8px 0px;
        background-color: #e5f4ff;
        border-left: 1px solid #ccc;
    }
    .calendar .calendar-parts .calendar-date.row-odd{
        background-color: #FFF;
    }
    .calendar .calendar-parts .calendar-time{
        font-size:14px;
        line-height: 32px;
        text-align: center;
        background-color: #FFF;
    }
    .calendar .calendar-parts .calendar-reservation{
        font-size:14px;
        line-height: 32px;
        text-align: center;
        background-color: #FFF;
        border-left: 1px solid #ccc;
    }
    .calendar .calendar-parts .calendar-time.row-even,
    .calendar .calendar-parts .calendar-reservation.row-even{
        background-color: #e5f4ff;
    }
    .calendar .calendar-parts .calendar-reservation.with{
        color:#FFF;
        background-color: var(--sub-link-color);
    }

    /* form */
    #reservation .reservation-form-box{
        color:#000;
        margin:0px auto;
        padding:40px 0px;
        width:100%;
        min-width:767px;
        background-color: #FFF;
    }
    .reservation-form-box .reservation-form-txt-box{
        margin:0px auto 40px;
        width:100%;
        max-width:960px;
    }
    .reservation-form-box .reservation-form-txt-box h3{
        color:#000;
        font-size: 28px;
        line-height: 64px;
        margin:0px auto 40px;
        border-bottom: solid 1px #000;
    }

    .reservation-form-box .reservation-form{
        display: flex;
        padding-top:24px;
        margin:0px auto;
        width:100%;
        max-width: 960px;
    }

    .reservation-form-box .reservation-form h4{
        position: relative;
        font-size:16px;
        line-height: 56px;
        text-align: left;
        width:216px;
    }
    .reservation-form-box .reservation-form h4::after{
        position: absolute;
        top:20px;
        right:8px;
        color:#FFF;
        font-size:10px;
        line-height: 1;
        padding:4px;
        content:"必須";
        background-color: #C00;
    }
    .reservation-form-box .reservation-form h4.any-form::after{
        color:#000;
        content:"任意";
        background-color: #CCC;
    }


    .reservation-form-box .reservation-form input{
        font-weight: bold;
        line-height: 56px;
        padding:0px 16px;
    }
    .reservation-form-box .reservation-form input::placeholder{
        color:#CCC;
    }
    .reservation-form-box .reservation-form input[type="text"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .reservation-form-box .reservation-form input[type="text"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .reservation-form-box .reservation-form input[type="email"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .reservation-form-box .reservation-form input[type="tel"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .reservation-form-box .reservation-form select{
        padding:0px 16px;
        font-size:14px;
        font-weight: bold;
        width:100%;
        line-height: 56px;
        border:solid 1px #999;
        border-radius:4px;
    }
    .reservation-form-box .reservation-form select.reservation-time{
        padding:0px 16px;
        font-size:14px;
        font-weight: bold;
        width:48%;
        line-height: 56px;
        border:solid 1px #999;
        border-radius:4px;
    }
    .reservation-form-box .reservation-form select.reservation-time + span{
        display: block;
        line-height: 56px;
        text-align: center;
        width:4%;
    }
    .reservation-form-box .reservation-form textarea{
        padding:8px 16px;
        font-size:14px;
        width:100%;
        min-height: 160px;
        line-height: 120%;
        border:solid 1px #999;
        border-radius:4px;
        font-family: 'Noto Sans JP', serif;
        background-color: #fff;
    }
    .reservation-form-box .reservation-form div.reservation-detail{
        line-height: 56px;
    }
    .reservation-form-box a{
        color:#000;
        font-weight: bold;
        text-decoration: underline;
    }
    .reservation-form-box a:hover{
        color:var(--sub-link-color);
    }
    .reservation-form-box label{
        cursor: pointer;
    }
}

@media screen and (max-width: 768px) {
    #reservation .reservation-main{
        padding:8px;
        margin:40px auto 24px;
        width:100%;
    }
    .reservation-main h3{
        font-size: 20px;
        line-height: 48px;
        border-bottom: solid 1px #FFF;
    }
    .reservation-main .reservation-txt,
    .reservation-form-box .reservation-txt{
        line-height: 24px;
        margin:16px 0px;
    }
    .reservation-main .reservation-caution,
    .reservation-form-box .reservation-caution{
        font-size:12px;
        line-height: 20px;
    }

    /* calendar */
    #reservation .reservation-calendar{
        margin:80px auto 0px;
        width:100%;
        height: 544px;
        max-width:960px;
    }
    #reservation .calendar h3{
        position: relative;
        font-size:16px;
        line-height: 48px;
        border-bottom: none;
    }
    .calendar h3 .prev-week{
        position: absolute;
        top: 8px;
        right:80px;
        display: block;
        font-size:14px;
        line-height: 32px;
        padding:0px 24px;
        background-color: transparent;
        border:solid 2px #FFF;
    }
    .calendar h3 .next-week{
        position: absolute;
        top: 8px;
        right:8px;
        display: block;
        font-size:14px;
        line-height: 32px;
        padding:0px 24px;
        background-color: transparent;
        border:solid 2px #FFF;
    }
    .calendar h3 .prev-week.disabled,
    .calendar h3 .next-week.disabled{
        background-color: #AAA;        
    }
    .calendar .calendar-parts{
        display: grid;
        grid-template-columns:80px repeat(7, 80px);
        color:#000;
        font-family: "meiryo";
        height: 480px;
        border:solid 1px #FFF;
        border-radius: 8px;
        overflow: auto;
    }
    .calendar .calendar-parts .calendar-date{
        font-size:12px;
        font-weight: bold;
        line-height: 20px;
        text-align: center;
        padding:8px 0px;
        background-color: #e5f4ff;
        border-left: 1px solid #ccc;
    }
    .calendar .calendar-parts .calendar-date.row-odd{
        background-color: #FFF;
    }
    .calendar .calendar-parts .calendar-time{
        font-size:14px;
        line-height: 32px;
        text-align: center;
        background-color: #FFF;
    }
    .calendar .calendar-parts .calendar-reservation{
        font-size:14px;
        line-height: 32px;
        text-align: center;
        background-color: #FFF;
        border-left: 1px solid #ccc;
    }
    .calendar .calendar-parts .calendar-time.row-even,
    .calendar .calendar-parts .calendar-reservation.row-even{
        background-color: #e5f4ff;
    }
    .calendar .calendar-parts .calendar-reservation.with{
        color:#FFF;
        background-color: var(--sub-link-color);
    }

    /* form */
    #reservation .reservation-form-box{
        color:#000;
        margin:0px auto;
        padding:24px 8px;
        width:100%;
        background-color: #FFF;
    }
    .reservation-form-box .reservation-form-txt-box{
        margin:0px auto 24px;
        width:100%;
    }
    .reservation-form-box .reservation-form-txt-box h3{
        color:#000;
        font-size: 20px;
        line-height: 48px;
        margin:0px auto 24px;
        border-bottom: solid 1px #000;
    }

    .reservation-form-box .reservation-form{
        display: flex;
        flex-direction: column;
        padding-top:8px;
        margin:0px auto;
        width:100%;
    }
    .reservation-form-box .reservation-form h4{
        position: relative;
        font-size:16px;
        line-height: 48px;
        text-align: left;
        padding-left: 48px;
    }
    .reservation-form-box .reservation-form h4::before{
        position: absolute;
        top:16px;
        left:8px;
        color:#FFF;
        font-size:10px;
        line-height: 1;
        padding:4px;
        content:"必須";
        background-color: #C00;
    }
    .reservation-form-box .reservation-form h4.any-form::before{
        color:#000;
        content:"任意";
        background-color: #CCC;
    }


    .reservation-form-box .reservation-form input{
        font-weight: bold;
        line-height: 56px;
        padding:0px 16px;
    }
    .reservation-form-box .reservation-form input::placeholder{
        color:#CCC;
    }
    .reservation-form-box .reservation-form input[type="text"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .reservation-form-box .reservation-form input[type="text"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .reservation-form-box .reservation-form input[type="email"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .reservation-form-box .reservation-form input[type="tel"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .reservation-form-box .reservation-form select{
        padding:0px 16px;
        font-size:14px;
        font-weight: bold;
        width:100%;
        height: 48px;
        border:solid 1px #999;
        border-radius:4px;
    }
    .reservation-form-box .reservation-form select.reservation-time{
        padding:0px 16px;
        font-size:14px;
        font-weight: bold;
        width:48%;
        line-height: 56px;
        border:solid 1px #999;
        border-radius:4px;
    }
    .reservation-form-box .reservation-form select.reservation-time + span{
        display: block;
        line-height: 56px;
        text-align: center;
        width:4%;
    }
    .reservation-form-box .reservation-form textarea{
        padding:8px 16px;
        font-size:14px;
        width:100%;
        min-height: 160px;
        line-height: 120%;
        border:solid 1px #999;
        border-radius:4px;
        font-family: 'Noto Sans JP', serif;
        background-color: #fff;
    }
    .reservation-form-box .reservation-form div.reservation-detail{
        line-height: 56px;
    }
    .reservation-form-box a{
        color:#000;
        font-weight: bold;
        text-decoration: underline;
    }
    .reservation-form-box a:hover{
        color:var(--sub-link-color);
    }
    .reservation-form-box label{
        cursor: pointer;
    }
}


/********************************/
/* access                       */
/********************************/
@media screen and (min-width: 769px) {
    #access .access{
        margin:0px auto;
        width:100%;
        max-width:960px;
        padding-bottom:80px;
    }
    .access-box{
        font-size:18px;
        line-height: 1.5;
        margin:40px auto;
    }
    .access-box h4{
        font-size: 24px;
    }
}

@media screen and (max-width: 768px) {
    #access .access{
        margin:0px auto;
        width:100%;
        padding-bottom:40px;
    }
    .access-box{
        line-height: 1.5;
        padding:8px;
        margin:24px auto;
    }
    .access-box h4{
        font-size: 20px;
    }
}



/********************************/
/* inquiry                      */
/********************************/
@media screen and (min-width: 769px) {
    #inquiry .inquiry-caption{
        text-align: center;
        line-height: 1.5;
        margin-bottom: 80px;
    }

    #inquiry .inquiry-box{
        margin:0px auto 80px;
        width:100%;
        max-width:960px;
    }

    .inquiry-box h3{
        font-size: 28px;
        line-height: 64px;
        border-bottom: solid 1px #FFF;
    }

    .inquiry-box .inquiry-form{
        display: flex;
        padding-top:24px;
        width:100%;
    }
    .inquiry-box .inquiry-form h4{
        font-size:16px;
        line-height: 56px;
        text-align: left;
        width:200px;
    }
    .inquiry-box .inquiry-form input{
        font-weight: bold;
        line-height: 56px;
        padding:0px 16px;
    }
    .inquiry-box .inquiry-form input::placeholder{
        color:#CCC;
    }
    .inquiry-box .inquiry-form input[type="text"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .inquiry-box .inquiry-form input[type="text"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .inquiry-box .inquiry-form input[type="email"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .inquiry-box .inquiry-form input[type="tel"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .inquiry-box .inquiry-form select{
        padding:0px 8px;
        font-size:14px;
        font-weight: bold;
        width:100%;
        height: 40px;
        border:solid 1px #999;
        border-radius:4px;
    }
    .inquiry-box .inquiry-form textarea{
        padding:8px 8px;
        font-size:14px;
        width:100%;
        min-height: 160px;
        line-height: 120%;
        border:solid 1px #999;
        border-radius:4px;
        font-family: 'Noto Sans JP', serif;
        background-color: #fff;
    }
    .inquiry-box .inquiry-form div.inquiry-detail{
        line-height: 56px;
    }
    .inquiry-box label{
        cursor: pointer;
    }
}

@media screen and (max-width: 768px) {
    #inquiry .inquiry-caption{
        line-height: 1.5;
        padding:8px;
        margin-bottom: 40px;
    }

    #inquiry .inquiry-box{
        padding:0px 8px;
        margin:0px auto 40px;
        width:100%;
    }
    .inquiry-box h3{
        font-size: 20px;
        line-height: 48px;
        padding:0px 8px;
        border-bottom: solid 1px #FFF;
    }

    .inquiry-box .inquiry-form{
        display: flex;
        flex-direction: column;
        padding-top:24px;
        width:100%;
    }
    .inquiry-box .inquiry-form h4{
        font-size:16px;
        line-height: 32px;
        text-align: left;
    }
    .inquiry-box .inquiry-form input{
        font-weight: bold;
        line-height: 48px;
        padding:0px 8px;
    }
    .inquiry-box .inquiry-form input::placeholder{
        color:#CCC;
    }
    .inquiry-box .inquiry-form input[type="text"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .inquiry-box .inquiry-form input[type="text"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .inquiry-box .inquiry-form input[type="email"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .inquiry-box .inquiry-form input[type="tel"]{
        font-size:14px;
        width:100%;
        border:solid 1px #999;
        border-radius:4px;
    }
    .inquiry-box .inquiry-form select{
        padding:0px 8px;
        font-size:14px;
        font-weight: bold;
        width:100%;
        height: 48px;
        border:solid 1px #999;
        border-radius:4px;
    }
    .inquiry-box .inquiry-form textarea{
        padding:8px 8px;
        font-size:14px;
        width:100%;
        min-height: 160px;
        line-height: 120%;
        border:solid 1px #999;
        border-radius:4px;
        font-family: 'Noto Sans JP', serif;
        background-color: #fff;
    }
    .inquiry-box .inquiry-form div.inquiry-detail{
        line-height: 56px;
    }
}