/* ---------------------------------------
    共通パーツ
 --------------------------------------- */
/* .header {
    position: fixed;
} */
.main{
    padding: 86px 0 0;
    padding: 66px 0 0;
    padding: 100px 0 0;
}
.fv{
    width: 100%;
    height: auto;
}
.mainvisual img{
    max-width: 1252px;
    width: 100%;
    margin: 0 auto;
}
h1,
h2,
h3{
    font-family: var(--oleo);
}
.mainvisual{
    padding: 0 32px;

    position: relative;
    z-index: 5;
}
.mainvisual .birick_pattern{
    position: absolute;
    max-width: calc(100vw - 40px);
    bottom: 0;
    left: 20px;
    z-index: -1;
}
.main_image{
    position: relative;
    z-index: 1;
}
.main_image .brick1{
    position: absolute;
    top: 100px;
    left: 0;
    max-width: 226px;
    width: 100%;
    z-index: -1;
}
.main_image .brick2{
    position: absolute;
    top: 100px;
    right: -130px;
    max-width: 226px;
    width: 100%;
    z-index: -1;
}
.mainvisual h1{
    font-size: 6rem;
    line-height: 0.9;
    color: var(--red);
    text-align: center;

    position: relative;
    z-index: 2;
}
.mainvisual h1::before{
    position: absolute;
    display: block;
    content: "";
    top: -45%;
    left: 50%;
    transform: translateX(-50%);
    background-image: url(../img/ellipse_pc.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
    max-width: 642px;
    width: 100%;
    height: 170px;
    z-index: -1;
}
h1 span{
    display: block;
    font-size: 1.6rem;
    font-weight: bold;
    line-height: 2.7;
    color: var(--red);
}
.page_description{
    max-width: 640px;
    margin: 0 auto;

    position: relative;
    z-index: 30;
}
.page_description p{
    line-height: 1.8;
    letter-spacing: 0.05em;
}
.red{
    color: var(--red);
}
.white{
    color: var(--white);
}
.blue_violet{
    color: var(--blue_violet);
}
.bg_red{
    width: 100%;
    background-color: var(--bg_red);
    border-radius: 6px;
}
.price{
    font-family: var(--oleo);
    color: var(--red);
}
.page_contents{
    width: 100%;
}


/* ---------------------------------------
    lunch & dinner
 --------------------------------------- */
.menu .birick_pattern{
    bottom: -16%;
}
.page_contents.menu{
    padding: 0 32px;
}
.menu_contents{
    max-width: 960px;
    width: 100%;
    margin: 0 auto;
}
.menu_contents h2{
    font-size: 6rem;
    text-align: center;
    margin: 90px auto 0;
    line-height: 1.4;
}
.menu_contents h2 span{
    display: block;
    font-size: 1.6rem;
}
.openingtime{
    border: 3px solid var(--red);
    border-radius: 6px;
    padding: 20px 0;
    margin: 20px auto 0;
}
.openingtime.blue_violet{
    border: 3px solid var(--blue_violet);
}
.openingtime p{
    text-align: center;
    font-weight: bold;
}
.notice{
    text-align: center;
    font-size: 1.5rem;
    font-weight: 300;
    padding: 16px 0 0;
}
.menu_wrapper{
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: stretch;
    /* ビジュアル編集用 */
    max-width: 960px;
    width: 100%;
    margin: 0 auto;
}
.menu_wrapper .item{
    width: 48%;
    align-items: flex-start;
    padding: 24px 0;
}
.menu_wrapper .item img{
    max-width: 456px;
    width: 100%;
    margin: 0 0 20px;
}
.menu_wrapper .item_ttl{
    font-family: var(--main-font);
}
.menu_wrapper .item_ttl .price{
    padding: 0 0 0 16px;
}
.menu_wrapper .item_intro{
    line-height: 1.9;
}
.menu_wrapper .item .small{
    font-size: 1.2rem;
    display: block;
    line-height: 1.5;
}
.menu_contents .price{
    padding: 10px 0;
}
.menu_list{
    justify-content: space-between;
    padding: 32px 40px;
    margin: 20px auto 50px;
}
.menu_list ul{
    width: 48%;
}
.menu_list li{
    width: 100%;
    justify-content: space-between;
    line-height: 1.9;
    position: relative;
}
.menu_list li::before{
    display: block;
    content: "";
    position: absolute;
    background-image: url(../img/diamond.png);
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    width: 9px;
    height: 9px;
}
.menu_list .name{
    padding: 0 0 0 1em;
}
.menu_pdf{
    width: 100%;
}
.link_btn{
    display: block;
    width: 364px;
    max-width: 364px;
    width: 100%;
    margin: 32px auto 0;
    padding: 20px 60px 22px 60px;
    border: 2px solid var(--red);
    border-radius: 40px;
    background-color: var(--red);
    color: var(--white);
    position: relative;
    overflow: hidden;
    z-index: 2;
    font-size: 1.6rem;
    text-align: center;
}
.link_btn br{
    display: none;
}
.link_btn:hover {
    color: var(--red);
    transition: 2s;
}
.link_btn::before{
    position: absolute;
    display: block;
    content: "";
    width: 364px;
    height: 72px;
    padding: 20px 122px 22px 126px;
    border-radius: 40px;
    background-color: var(--white);
    top: 25%;
    transform: translateY(-25%);
    left: -110%;
    transition: .8s ease-in-out;
    z-index: -1;
}
.link_btn:hover::before{
    left: 0%;
}
.link_btn::after{
    position: absolute;
    display: block;
    content: "";
    top: 50%;
    transform: translateY(-50%);
    right: 30px;
    background-image: url(../img/arrow_right_white.png);
    background-repeat: no-repeat;
    background-size: contain;
    background-position: center;
    width: 6px;
    height: 12px;
    transition: 1s;
}
.link_btn:hover::after{
    background-image: url(../img/arrow_right_red.png);
}


/* ---------------------------------------
    party menu
 --------------------------------------- */
.party .birick_pattern{
    bottom: -14%;
}
.party_plan{
    width: 100%;
    align-items: flex-start;
    justify-content: space-between;
    margin: 96px auto 0;
}
.slide_kari,
.swiper{
    width: 60%;
    /* overflow-y: visible;
    margin: -24px 0 0; */
    overflow: visible;
}
.swiper::-webkit-scrollbar {
    display: none;
}
.slide_kari img,
.swiper img{
    max-width: 840px;
    width: 100%;
    padding: 16px 0 0;
}
.swiper-horizontal>.swiper-pagination-bullets, .swiper-pagination-bullets.swiper-pagination-horizontal, .swiper-pagination-custom, .swiper-pagination-fraction{
    top: auto;
    bottom: -30px;
}
#party_upper_swiper .swiper-pagination-bullet,
#party_lower_swiper .swiper-pagination-bullet{
    background: var(--light_brown);
}
#party_upper_swiper .swiper-pagination-bullet-active,
#party_lower_swiper .swiper-pagination-bullet{
    background: var(--red);
}
.plan_contents{
    width: 40%;
    padding: 0 60px;
    align-items: flex-start;
}
.plan_contents .bg_red{
    align-items: flex-start;
    padding: 30px;
    border-radius: 0;
}
.party_plan .sp_only{
    display: none;
}
.plan_contents h2,
.plan_contents h3{
    font-size: 5rem;
    font-weight: normal;
    letter-spacing: -0.03em;
}
.plan_contents h2 span,
.plan_contents h3 span{
    font-size: 1.6rem;
    font-weight: bold;
    padding: 0 0 0 1em;
    letter-spacing: 0em;
}
.plan_contents h3{
    font-size: 3.8rem;
}
.plan_contents h3 span{
    padding: 0 0 0 1em;
}
.plan_contents .explain{
    padding: 0 0 28px;
}
.plan_contents .menu_list{
    width: 100%;
    padding: 0 0 10px;
    margin: 0 auto;
}
.plan_contents .menu_list ul {
    width: 100%;
}
.plan_contents .menu_list li{
    font-weight: bold;
}
.basic_menu{
    background-color: var(--white);
    max-width: 420px;
    width: 100%;
    margin: 0 auto 10px;
    padding: 14px 20px;
}
.basic_menu p{
    font-size: 1.3rem;
}
.basic_menu .ttl{
    font-size: 1.5rem;
    font-weight: bold;
}
.plan_contents .notice{
    text-align: left;
    font-size: 1.3rem;
    padding: 0;
}
.plus_image{
    max-width: 40px;
    width: 100%;
    margin: 10px auto;
}
/* .drink_menu .menu_list li{
    flex-wrap: wrap;
    margin: 10px 0;
} */
/* .drink_menu .menu_list .name{
    width: 30%;
}
.drink_menu .menu_list .price{
    width: 60%;
} */
.drink_menu .name{
    margin: 10px 0 0;
}
.drink_menu .price{
    padding: 0 0 0 1em;
}
.drink_menu .detail{
    font-size: 1.5rem;
    font-weight: 400 !important;
    line-height: 1.4;
}
.drink_menu li.detail::before{
    display: none;
}
/* .drink_menu .menu_list li::before{
    top: 25%;
} */
.girls_party_detail{
    font-size: 1.5rem;
    letter-spacing: 0.05em;
}
.girls_party_detail span{
    font-size: 1.2rem;
    font-weight: 300;
    display: block;
}
.girls_party .notice{
    font-size: 1.5rem;
    font-weight: normal;
    /* padding: 0 0 0 1em; */
}
.girls_party .menu_list .detail span{
    display: block;
}
.plan_menu.flyer_image{
    margin: 54px auto;
}
.room{
    width: 100%;
    padding: 90px 0 136px;
    margin: 146px auto 0;
    background-image: url(../img/room_background.png);
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center;
}
.room h2{
    font-size: 6rem;
    text-align: center;
    line-height: 1;
}
.room h2 span{
    display: block;
    color: var(--white);
    font-size: 1.6rem;
    padding: 10px 0 0;
}
.room_image{
    max-width: 960px;
    width: 100%;
    margin: 28px auto 0;
    justify-content: space-between;
}
.room_item{
    position: relative;
}
.room_item .text{
    position: absolute;
    max-width: 140px;
    width: 100%;
    padding: 20px 20px;
    top: 0;
    left: 0;
    z-index: 10;
    background-color: var(--red);
}
.room_item .text p{
    text-align: center;
    color: var(--white);
    font-weight: bold;
}
.room_item .text span{
    font-weight: normal;
    display: block;
    font-size: 1.3rem;
}
.left_side,
.right_side{
    max-width: 474px;
    width: 100%;
}
.left_side .room_item:first-child{
    margin: 0 0 10px;
}


/* ---------------------------------------
    takeout
 --------------------------------------- */
.takeout .birick_pattern{
    bottom: -12%;
}
.page_contents_description{
    max-width: 640px;
    width: 100%;
    border-top: 1px solid #E0DDDC;
    border-bottom: 1px solid #E0DDDC;
    padding: 18px 0 18px 20px;
    margin: 20px auto 0;
}
.page_contents_description li{
    list-style-type: disc;
    line-height: 2;
}
.flyer_image{
    margin: 54px auto 102px;
    max-width: 800px;
    width: 100%;
}
.flyer{
    max-width: 800px;
    width: 100%;
    padding: 0 16px;

}
.takeout_reserve{
    width: 100%;
    padding: 86px 32px;
}
.takeout_reserve.bg_red{
    border-radius: 0;
}
.takeout_reserve .contents{
    max-width: 860px;
    width: 100%;
    margin: 0 auto;
    justify-content: space-between;
}
.takeout_reserve h2{
    font-size: 6rem;
    line-height: 1.2;
}
.takeout_reserve .tel{
    padding: 22px 28px 24px;
}
.takeout_reserve .number{
    font-size: 3.4rem;
    font-weight: bold;
    font-family: var(--roboto);
    letter-spacing: 0.02em;
}
.takeout_reserve .time{
    font-size: 1.4rem;
    font-weight: 300;
    letter-spacing: 0.04em;
}
.takeout_reserve ul{
    margin: 20px 0 0;
    list-style-image: url(../img/diamond_pink.png);
}
.takeout_reserve li{
    padding: 0 0 0 1.2em;
    list-style-image: url(../img/diamond_pink_10px.png);
    list-style-position: inside;
    font-size: 1.5rem;
    line-height: 1.8;
    letter-spacing: 0.05em;
}


/* ---------------------------------------
    お問い合わせ
--------------------------------------- */
.contact_txt{
    max-width: 800px;
    width: 100%;
    padding: 0 34px;
    text-align: center;
}
.contact_txt.upper_contents{
    margin: 100px auto 30px;
}
.contact_txt.lower_contents{
    margin: 30px auto;
}
.wp-block-contact-form-7-contact-form-selector{
    max-width: 800px;
    width: 100%;
    margin: 0 auto;
    padding: 0 34px;
}
.wpcf7-form p {
    display: block;
    margin: 18px 0;
}
input{
    padding: 10px 0;
}
input,
textarea{
    width: 100%;
}
.wpcf7-form.init p:last-of-type{
    text-align: center;
}
.wpcf7-submit{
    background: var(--red);
    color: var(--white);
    border-radius: 40px;
    padding: 1em;
    border: none;
    margin: 10px auto;
    max-width: 120px;
    width: 100%;
}
.wpcf7-submit:hover{
    cursor: pointer;
    opacity: .7;
}
.wpcf7-spinner {
    display: none;
}
.contact_message{
    margin: 30px auto;
    padding: 0 34px;
}


/* ---------------------------------------
    プライバシーポリシー
--------------------------------------- */
.polisy_wrapper{
    max-width: 1000px;
    width: 100%;
    margin: 120px auto 30px;
    padding: 0 2em;

    position: relative;
    z-index: 2;
}
.polisy_wrapper .contents{
    width: 100%;
}
.polisy_wrapper h3{
    padding: 0.6em 0 0;
    line-height: 2;
    font-family: var(--main-font);
}
.polisy_wrapper p{
    padding: 0.5em 0;
    line-height: 1.8;
}
.polisy_wrapper .second_line{
    padding-left: 1em;
}
.polisy_wrapper .third_line{
    padding-left: 2em;
}


/* 404ページ */
.error{
    margin: 100px auto 60px;
    max-width: 768px;
    padding: 6em 2em 2em;
}
.error a{
    margin: 0.5em 0 0;
    display: inline-block;
}


@media screen and (max-width: 1200px) {
    .main_image .brick1{
        left: -50px;
    }
    .plan_contents h2 span{
        display: block;
        font-size: 1.4rem;
        padding: 0 0 .4em;
    }
}


@media screen and (max-width: 1024px) {
    /* .party_plan{
        flex-direction: column;
        align-items: center;
    }
    .slide_kari{
        width: 100%;
    } */
    .plan_contents{
        width: 70%;
        padding: 0 24px;
    }
    .plan_contents h2{
        font-size: 3.8rem;
    }
}


@media screen and (max-width: 768px) {
    .mainvisual .pc_only{
        display: none;
    }
    .mainvisual .sp_only{
        display: block;
    }
    .mainvisual img{
        max-width: 652px;
    }
    .main_image .brick1,
    .main_image .brick2{
        display: none;
    }
    .mainvisual .birick_pattern {
        max-width: 100%;
        left: 0px;
    }
    /* .mainvisual h1::before{
        max-width: 514px;
        height: 136px;
    } */
    .birick_pattern{
        bottom: auto;
        top: 20px;
        left: 0;
        z-index: -1;
    }
    .mainvisual h1{
        font-size: 4.2rem;
    }
    .page_description p{
        font-size: 1.4rem;
    }

    /* lunch & dinner */
    .menu_contents h2 {
        font-size: 3.8rem;
    }
    .menu_wrapper{
        justify-content: center;
    }
    .menu_wrapper .item{
        max-width: 456px;
        width: 100%;
        justify-content: center;
    }
    .menu_list {
        flex-direction: column;
        padding: 32px 24px;
    }
    .menu_list ul {
        width: 100%;
    }
    .menu_list li{
        font-size: 1.4rem;
    }
    .menu_list .name {
        padding: 0 1em;
    }
    .link_btn {
        max-width: 326px;
        padding: 20px 40px 22px 40px;
        font-size: 1.4rem;
    }
    .link_btn::before {
        left: -150%;
    }

    /* party plan */
    .party_plan{
        flex-direction: column;
        align-items: center;
    }
    .plan_contents{
        width: 100%;
        align-items: center;
    }
    .party_plan .sp_only{
        display: block;
        font-size: 3.8rem;
        font-weight: normal;
        letter-spacing: -0.03em;
        text-align: center;
    }
    .party_plan .sp_only span{
        font-size: 1.6rem;
        font-weight: bold;
        display: block;
    }
    .party_plan .pc_only{
        display: none;
    }
    /* .plan_contents .bg_red{
        margin: 38px 0 0;
    } */
    /* .plan_contents h2{
        text-align: center;
    } */
    .plan_contents .menu_list li{
        font-size: 1.5rem;
    }    
    .girls_party_detail{
        padding: 10px 0 0;
    }
    .slide_kari,
    .swiper{
        width: 100%;
        margin: 0 auto 38px;
    }
    .room {
        width: 100%;
        padding: 90px 32px 136px;
    }
    .room h2{
        font-size: 3.8rem;
    }
    .room h2 span{
        font-size: 1.4rem;
    }
    .room_image{
        flex-direction: column;
    }
    .right_side{
        margin: 10px 0 0;
    }
    .room_item .text {
        max-width: 114px;
        padding: 20px 12px;
    }
    .room_item .text p{
        font-size: 1.4rem;
    }
    .room_item .text span{
        font-size: 1.1rem;
    }
    /* takeout */
    .takeout_reserve .contents{
        flex-direction: column;
    }
    .takeout_reserve .detail{
        margin: 20px auto 0;
    }
    .takeout_reserve .number{
        font-size: 2.8rem;
    }
    .takeout_reserve .time {
        font-size: 1.3rem;
    }
    .takeout_reserve span{
        display: block;
    }
    .takeout_reserve li{
        font-size: 1.4rem;
    }
    /* contact */
    .wp-block-contact-form-7-contact-form-selector{
        max-width: 440px;
    }
}

@media screen and (max-width: 440px) {
    /* lunch & dinner */
    .openingtime p{
        font-size: 1.3rem;
    }
}

@media screen and (max-width: 390px) {
    .link_btn {
        padding: 20px 30px 22px 16px;
        font-size: 1.2rem;
    }
    .takeout_reserve .number {
        font-size: 2.4rem;
    }
}