@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;500;600;700;800;900&family=Noto+Serif+JP:wght@200;300;400;500;600;700;900&display=swap');

/*------------------------------------
        基本設定
-------------------------------------*/
*,
*:before,
*:after{
    box-sizing: border-box;
    word-wrap: break-word;
    /*outline: 1px solid magenta;*/
}
html{
    font-size:62.5%;
    box-sizing: border-box;
}
body{
    width: 100%;
    min-width: 110rem;
        margin:0;
        padding:0;
    font-family: 'Noto Sans JP', 'ヒラギノ角ゴ ProN', 'Hiragino Kaku Gothic ProN', 'メイリオ', Meiryo, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
        line-height: 1.8;
        letter-spacing: 0.05em; /*基本のカーニング*/
        font-weight: 400;
    color: #333;
}
.full-width{
    width: 100%;
        min-width: 110rem;
    margin: 0;
    padding: 0;
    /*overflow: hidden;*/
}
.base-width{
    width: 105rem;
        padding-left: 2.5rem;
        padding-right: 2.5rem;
    margin-left: auto;
    margin-right: auto;
}
.inner-width{
    width: 93rem;
    margin-left: auto;
    margin-right: auto;
}

/*------------------------------
    共通コンテンツ
-------------------------------*/
.pc{
    display: block;
}
.sp{
    display: none;
}
a:hover{
    opacity: 0.5;
}

p.txt,
.base-txt{
    font-size: 1.6rem;
        letter-spacing: 0.075em;
        line-height: 1.8;
}
.moji_momo{
    color: #FC7777;
}
/*--------------------
        　img
---------------------*/
img{
    width: 100%;
    display: block;
}

/*--ボックス優先fit imgは拡大--*/
.ofi_cover_c { 
    object-fit: cover;
    object-position: center;
    font-family: 'object-fit: cover; object-position: center;';
}
/*--img優先fit ボックス内に余白有り得る--*/
.ofi_contain_c {
    object-fit: contain;
    object-position: center;
    font-family: 'object-fit: contain; object-position: center;';
}
/*--------------------
        flex
---------------------*/
.flex_c{
    display: flex;
        justify-content: center;
        align-items: center;
        flex-wrap: wrap;
}
.flex_sb{
    display: flex;
        justify-content: space-between;
        align-items: center;
        flex-wrap: wrap;
}
.flex_st{
    display: flex;
        justify-content: flex-start;
        align-items: center;
        flex-wrap: wrap;
}
.reverse_row{
    flex-direction: row-reverse;
}
.reverse_col{
    flex-direction: column-reverse;
}


@media screen and (max-width:768px){
    /*------------------------------------
            基本設定
    -------------------------------------*/
    /* support iOS */
    html{
        height: -webkit-fill-available;
        font-size: 2.6666666666vw;
        /*
          画面幅375pxの時に "font-size: 10px" 相当になる
        */
    }
    body{
        min-width: unset;
        min-height: 100vh;
        min-height: -webkit-fill-available;
    }
    .full-width{
        max-width: 100%;
        min-width: unset;
    }
    .base-width{
        width: 93%;
            padding-left: 0;
            padding-right: 0;
            margin-left: auto;
            margin-right: auto;
    }
    .inner-width{
        width: 95%;
            padding-left: 0;
            padding-right: 0;
            margin-left: auto;
            margin-right: auto;
    }
    /*--------------共通コンテンツ--------*/
    .pc,.pc_only{
        display: none;
    }
    .sp{
        display: block;
    }

    p.txt,
    .base-txt{
        font-size: 1.5rem;
    }
        
}

/*-------------電話リンク---*/
@media (min-width: 767px) {
    a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
    }
}
/*--------------------------
            common
---------------------------*/
/*--------------------------
        header
--------------------------*/
.header{

}
/*---------------　header-inner -----*/
.header-inner{
    width: 100%;
    height: 9rem;
        padding: 2rem 0;
    background: #fff;
    position: fixed;
    z-index: 9999;
    overflow: hidden;
}
/*---------------PC時indexページのみヘッダーここから-----*/
@media screen and (min-width:769px){
    #js_header-inner{ 
        transition: all 0.5s;
    }
    #js_header-inner.no-fixed_indexnav{ /*---indexはじめのナビ */
        height: 20rem;
            position: relative;
        padding: 0 0 1.5rem 0;
    }
    #js_header-inner.no-fixed_indexnav .add_indexnav_bg{
        width: 100%;
        height: 13.5rem;
            padding-top: 2.2rem;
            padding-bottom: 5.5rem;
            margin-bottom: 1.5rem;
        background: #FFFDF5;
        position: relative;
    }
        #js_header-inner.no-fixed_indexnav .add_indexnav_bg::after{
            width: 64.5rem;
            height: 4rem;
            background-image: url(../images/bg-line.png);
                background-image: image-set(url(../images/bg-line.png) 1x, url(../images/bg-line@2x.png) 2x);
                background-image: -webkit-image-set(url(../images/bg-line.png) 1x, url(../images/bg-line@2x.png) 2x);
            background-size: contain;
            background-repeat: no-repeat; 
            content: "";
            display: block;
            position: absolute;
                left: 50%;
                bottom: 0;
                transform: translateX(-50%);
                -webkit-transform: translateX(-50%);
        }

        #js_header-inner.no-fixed_indexnav .add_indexnav_bg .h-logo{
        width: 100%;
            text-align: center;
        display: block;
        position: relative;
    }
        #js_header-inner.no-fixed_indexnav .add_indexnav_bg .h-logo::before{
            width: 9.9rem;
            height: 6.4rem;
            background-image: url(../images/logo-02.png);
                background-image: image-set(url(../images/logo-02.png) 1x, url(../images/logo-02@2x.png) 2x);
                background-image: -webkit-image-set(url(../images/logo-02.png) 1x, url(../images/logo-02@2x.png) 2x);
                background-size: contain;
                background-repeat: no-repeat; 
            content: "";
            display: block;
            position: absolute;
                left: 1.5rem;
                top: 0;  
        }
    #js_header-inner.no-fixed_indexnav .add_indexnav_bg .h-logo .h-l-high,
    #js_header-inner.no-fixed_indexnav .add_indexnav_bg .h-logo .h-l-low{
        line-height: 1;
            letter-spacing: 0.15em;
            font-weight: 500;
        display: block;
    }
    #js_header-inner.no-fixed_indexnav .add_indexnav_bg .h-logo .h-l-high span{
        margin-bottom: 0.5em;
        display: block;
        font-size: 1.5rem;
    }        
        #js_header-inner.no-fixed_indexnav .add_indexnav_bg .h-logo .h-l-high img{
            display: none;
        }
    #js_header-inner.no-fixed_indexnav .add_indexnav_bg .h-logo .h-l-low{
        font-size: 3rem;
    }
    #js_header-inner.no-fixed_indexnav .nav li{
        height: 4.2rem;      
        border-right: 2px solid #A2BFEA;      
    }
        #js_header-inner.no-fixed_indexnav .nav li:first-of-type{
                border-left: 2px solid #A2BFEA; 
            }
        #js_header-inner.no-fixed_indexnav .nav li a{    
            padding: 0 3.2rem;
            font-size: 1.4rem;
                line-height: 1.4;
                font-weight: 500;
                letter-spacing: 0.1em;
                text-align: center;
                display: inline-block;
        }
}
/*---------------PC時indexページのみヘッダー設定ここまで-----*/

.header-inner .header_cont{
    display: flex;
        justify-content: space-between;
        align-items: center;
        flex-wrap: wrap;
}
.h-logo{
    width: auto;
    display: block;
}  
    .h-logo .h-l-high{
        flex-wrap: nowrap;
    }  
        .h-logo .h-l-high img{
            width: 8.75rem;
            margin-right: 1rem;
            display: block;
        }
        .h-logo .h-l-high span{
            font-size: 1.2rem;
                font-weight: 500;
                letter-spacing: 0.15em;
        }
    .h-logo .h-l-low{
        font-size: 1.7rem;
            font-weight: 500;
            letter-spacing: 0.0.75em;
            line-height: 1.5;
    }
.open_btn{
    display: none;
}
.nav{
    display: flex;
        justify-content: flex-end;
        align-items: center;
}
    .nav .nav_list{
        display: flex;
            justify-content: flex-end;
            align-items: center;
    }
    .nav .nav_list li.nav_item{
        height: 4.2rem;      
        border-right: 2px solid #A2BFEA;   
        display: flex;
            justify-content: center;
            align-items: center;   
    }
        .nav .nav_list li.nav_item:first-of-type{
            border-left: 2px solid #A2BFEA; 
        }
    .nav .nav_list li.nav_item a{    
        padding: 0 1em;
        font-size: 1.2rem;
            line-height: 1.4;
            font-weight: 500;
            letter-spacing: 0.08em;
            text-align: center;
            display: inline-block;
    }
    .nav .nav_list li.nav_item a.nowpage{
        color: #197DE0;
    }

/*-----------------------------
        footer
-----------------------------*/
.pre-foot{
    padding: 5.5rem 0;
    background-image: url(../images/bg-stripe.png);
        background-image: image-set(url(../images/bg-stripe.png) 1x, url(../images/bg-stripe@2x.png) 2x);
        background-image: -webkit-image-set(url(../images/bg-stripe.png) 1x, url(../images/bg-stripe@2x.png) 2x);
    background-size: cover;
    background-repeat: no-repeat;   
}
.pre-foot .pf-ttl{
    margin-bottom: 3rem;
    font-size: 2.4rem;
        font-weight: 500;
        letter-spacing: 0.1em;
        color: #FC7777;
        text-align: center;
}
.pre-foot .pf-list{
    max-width: 70rem;
        margin-left: auto;
        margin-right: auto;
}
.pre-foot .pf-item{
    width: 19.5rem;
    height: 19.5rem;
        padding: 1rem 0.4rem;
        margin-right: 2.5rem;
        margin-bottom: 2.5rem;
    display: block;
        border-radius: 1rem;
        background: #fff;
        border: 2px solid #FC7777;
    position: relative;
}
@media screen and (min-width:769px){
    .pre-foot .pf-item:nth-of-type(3n),
    .pre-foot .pf-item:nth-last-of-type(-n + 1){
        margin-right: 0;
    }
    .pre-foot .pf-item::nth-last-of-type(-n + 2){
        margin-bottom: 0;
    }
}
    .pre-foot .pf-item img{
        max-width: 100%;
        height: 11rem;
            margin-bottom: 1.5rem;
        display: block;
        position: relative;
            left: 50%;
            transform: translateX(-50%);
            -webkit-transform: translateX(-50%);
    }
    .pre-foot .pf-item:nth-of-type(5) img{
        height: 12.5rem;
            left: 55%;
    }
    .pre-foot .pf-item .pf-txt{
        width: 100%;
        font-size: 1.6rem;
            line-height: 1.25;
            letter-spacing: 0.035em;
            text-align: center;
         display: block;
    }
.footer_inner{
        padding-top: 4rem;
        padding-bottom: 3rem;
        background: #FFFDF5;
}
.foot-nav{
    align-items: flex-end;
    margin-bottom: 3rem;
}
.f-nav_left{
    max-width: 50%;
}
    .f-nav_left .charge{
        margin-bottom: 1rem;
        font-size: 1.8rem;
            font-weight: 700;
            line-height: 1.5;
    }
    .f-nav_left .address{
        font-size: 1.5rem;
            line-height: 1.5;
    }
.f-nav_right{
    width: 14.6rem;

}
.footer_copyright{
    font-size: 1.1rem;
    text-align: center;
    display: block;
}

@media screen and (max-width:768px){
    /*-----------------------------
        header
    -----------------------------*/
    .header{
    }
    /*---------------index-header(トップPCのみ）-----*/
    .index-header{
        display: none;
    }
    /*---------------header-inner-----*/
    .header-inner{
        width: 100%;
        height: 8rem;
            min-width: unset;
        padding: 1.5rem 0;
    }
    .header-inner .header_cont {
    }
    .h-logo{
        width: auto; 
    }
        .h-logo .h-l-high{
            flex-wrap: nowrap;
        }  
            .h-logo .h-l-high img{
                width: 8.5rem;
                margin-right: 0.8rem;
                display: block;
            }
            .h-logo .h-l-high span{
                font-size: 1.1rem;
            }
            .h-logo .h-l-low{
                font-size: 1.6rem;
                line-height: 1.25;
            }
    /*-------------ハンバーガー------*/
    #open_btn{
        width: 4rem;
        height: 4rem;
        position: fixed;
            top: 1rem;
            right: 1rem;
        z-index: 9999;
        cursor: pointer;
        display: block;
    }
        #open_btn span{
            width: 100%;
            border-radius: 0.1rem;
            position: absolute;
                right: 0;
                height: 0.3rem;
            display: inline-block;
            transition: all .4s;
            background: #333;
        }
            #open_btn span:nth-of-type(1){
                top: 1rem;
            }
            #open_btn span:nth-of-type(2){
                top: 2.4rem;
            }
            #open_btn span:nth-of-type(3){
                bottom: 0;
            }
            #open_btn.active span:nth-of-type(1){
                width: 100%;
                top: 1.6rem;
                right: 0;
                transform: translateY(.8rem) rotate(-45deg);
            }
            #open_btn.active span:nth-of-type(2){        
                opacity: 0;
            }
            #open_btn.active span:nth-of-type(3){
                width: 100%;
                top: 3.1rem;
                right: 0;
                transform: translateY(-0.8rem) rotate(45deg);
            }
    /*-------------nav------*/
    /*-------------nav　非表示------*/
    .nav{
        width: 100%;
        height: calc(100% - 8rem);
        padding: 3.5rem 2rem 2rem 2rem;
        background: #fff;
        position: fixed;
            top: 8rem;
            left: -120%;
        flex-direction: column;
        justify-content: flex-start;
        z-index: 9999;
    }
    .nav .nav_list{
        margin-bottom: 2rem;
        flex-direction: column;
            justify-content: flex-start;
    }
    /*-------------nav　開いているとき------*/
    /*-------------nav縦スクロール------*/
    #nav.panel_active{
            overflow: auto;
            -webkit-overflow-scrolling: touch;
        top: 8rem;
            left: 50%;
            transform: translateX(-50%);
    }        
        .nav .nav_list li.nav_item{
            width: 100%;
            height: 6rem;
                line-height:6rem;        
            border-right: unset;
            border-bottom: 2px solid #A2BFEA;
        }
            .nav .nav_list li.nav_item:first-of-type {
                border-left: unset;
                border-top: 2px solid #A2BFEA;
            }
        .nav .nav_list li.nav_item a{   
            padding: 0 1rem;   
            font-size: 1.5rem;
        }

    /*-----------------------------
            footer
    -----------------------------*/
    .pre-foot{
        padding: 4.2rem 0;  
    }
    .pre-foot .pf-ttl{
        margin-bottom: 2.25rem;
        font-size: 2rem;
    }
    .pre-foot .pf-list{
        max-width: unset;
    }
    .pre-foot .pf-item{
        width: 41.5vw;
        height: 41.5vw;
            padding: 1rem 0.3rem;
            margin-right: 3.5vw;
            margin-bottom: 3.5vw;
    }
        .pre-foot .pf-item:nth-of-type(2n),
        .pre-foot .pf-item:nth-last-of-type(-n + 1){
            margin-right: 0;
        }
        .pre-foot .pf-item:nth-last-of-type(-n + 1){
            margin-bottom: 0;
        }
        .pre-foot .pf-item img{
            max-width: 100%;
            height: 8.5rem;
                margin-bottom: 0.75rem;
        }
            .pre-foot .pf-item:nth-of-type(5) img{
                height: 9.5rem;
                margin-bottom: 0.35rem;
            }
        .pre-foot .pf-item .pf-txt{
            width: 100%;
            font-size: 1.5rem;
        }
            .pre-foot .pf-item:nth-of-type(3) .pf-txt,
            .pre-foot .pf-item:nth-of-type(5) .pf-txt{
                line-height: 2.5;
            }
    .footer_inner{
            padding-top: 3.5rem;
            padding-bottom: 2.2rem;
    }
    .foot-nav{
        margin-bottom: 2.2rem;
    }
    .f-nav_left{
        max-width: 100%;
            margin-bottom: 1.5rem;
    }
        .f-nav_left .charge{
            margin-bottom: 0.75rem;
            font-size: 1.6rem;
        }
        .f-nav_left .address{
            font-size: 1.4rem;
        }
    .f-nav_right{
        width: 100%;
    }
        .f-nav_right img{
            width: 35%;
                margin-left: auto;
                margin-right: 0;
        }
    .footer_copyright{
        font-size: 1.1rem;
    }

}