@charset "utf-8";


/* -------------------
variable
------------------- */
:root {
    --sp-outer-margin    : 5.3333vw;   /* 20/375 */
    --pc-outer-margin    : 9.6774% ;    /* 120/1240 */
    --pc-inner-margin    : 12.0% ;    /* 120/1000 */
    --pc-header-inner-margin   : 1.7857% ;    /* 20/1120 */

}

/* -------------------
init
------------------- */
* {
    box-sizing: border-box;
    }
img {
    max-width: 100%;
    height: auto;
    display: block;
}

/* -------------------
elements
------------------- */
h1 {
    font-size: 200%;
    margin-bottom: 1em;
    letter-spacing: 0.2em;
}
h2 {
    font-size: 200%;
    margin-bottom: 3rem;
    text-align: center;
    position: relative;
}
h2::after {
    content: "";
    display: block;
    margin-top: 12px;
    width: 50px;
    height: 1px;
    background-color: #725322;
    text-align: center;
    position: absolute;
    left: 50%;
    transform: translate(-50%);
}
h3 {
    font-size: 200%;
    margin-bottom: 1em;
    letter-spacing: 0.2em;
    padding-left: var(--sp-outer-margin);
    padding-right: var(--sp-outer-margin);
}
h4 {
    font-size: 150%;
    margin-bottom: 1em;
    letter-spacing: 0.2em;
    padding-left: var(--sp-outer-margin);
    padding-right: var(--sp-outer-margin);
}
h5{
    font-size: 150%;
    margin-top: 2em;
    margin-bottom: 1em;
    letter-spacing: 0em;
    padding-right: var(--sp-outer-margin);
}
h6{
    font-size: 10%;
    margin-bottom: 3rem;
    text-align: center;
    position: relative;
}
#about .heading-decoration::after {
    left: 0;
    transform: translate(0);

}

.section-title {
    padding-top: 6rem;
    padding-bottom: 6rem;
    text-align: center;
}
p{
    letter-spacing: 0.1em;
    color: #725322;
    text-align: justify;
}
img {
    vertical-align: bottom;
}
a {
    text-decoration: none;
}
a:hover {
    opacity: 0.6;
}

.btn {
    display: block;
    width: 140px;
    padding: 6px;
    /* border-radius: 100vh; */
    /* background-color: #745E56;
    color: #FBF2E8; */
    border: 1px solid #58330d;
    text-align: center;
    margin: 3rem 0 0 auto;
    
}
.btn::before {
    content: '';
    position: absolute;
    background: #58330d;
    /* background-color: #FBF2E8; */
    top: 18px;
    right: 7px;
    height: 1px;
    width: 13px;
}
.btn::after {
    content: '';
    position: absolute;
    background: #58330d;

    /* background-color: #FBF2E8; */
    top: 16px;
    right: 6px;
    height: 1px;
    width: 7px;
    transform: rotate(45deg);

}
.btn:hover {
    opacity: 1;
        background-color: #58330d;
    color: #FBF2E8;

}

#main_footer a ,h2{
    font-family: 'Noto Sans JP';
    font-weight: 100;
}
    /* ~~~パソコン~~~ */
     @media screen and (min-width: 751px) {
        .btn{
        width: 170px;
        }
        .pc_flex {
            display: flex;
            justify-content: space-between;
            gap: 4%;

        }
     }
/* -------------------
余白
------------------- */
/* ~~~スマホ~~~ */
@media screen and (max-width: 750px) {
    .wrapper {
        padding-top: 5rem;
        padding-bottom: 3rem;
        }
    }
/* ~~~パソコン~~~ */
@media screen and (min-width: 751px) {
    .wrapper {
        padding-top: 8rem;
        padding-bottom: 4rem;
    }
} 
.w_inner2 {
    padding-top: 3rem;
}
/* ~~~ヘッダー ~~~~ */
#main_header .header_wrapper {
    padding-top: 0;
    padding-bottom: 0;
}
/* ~~~mv ~~~~ */
#mv {
    padding-top: 0;
    padding-bottom: 0;
}
/* -------------------
fiuid glid
------------------- */
    /* ~~~スマホ~~~ */
        @media screen and (max-width: 750px) {
            body {
                padding-left: var(--sp-outer-margin);
                padding-right: var(--sp-outer-margin);
            }
            .full {
                margin-left:  calc(var(--sp-outer-margin) * -1);
                margin-right:  calc(var(--sp-outer-margin) * -1);
            }
            .sp_n1 {
                display: none;
            }
        }

    /* ~~~パソコン~~~ */
        @media screen and (min-width: 751px) {
            .pc_n {
                display: none;
            }
            body {
                padding-left: var(--pc-outer-margin);
                padding-right: var(--pc-outer-margin);
            }
            .full {
                margin-left:  calc(var(--pc-inner-margin) * -1);
                margin-right:  calc(var(--pc-inner-margin) * -1);
                padding-left: var(--pc-inner-margin);
                padding-right: var(--pc-inner-margin);
            }
            #main_header .header_wrapper {
                padding-left: var(--pc-header-inner-margin);
                padding-right: var(--pc-header-inner-margin);
            }
        }

    /* ~~~固定~~ */
        @media screen and (min-width: 1241px) {
            body {
                padding-left: 0;
                padding-right: 0;
            }
            .wrapper {
                width: 1240px;
                padding-left: 60px;
                padding-right: 60px;
                margin-left: auto;
                margin-right: auto;
            }
            .full {
                margin-left: 0;
                margin-right: 0;
                padding-left: 0;
                padding-right: 0;
            }
        }
/* -------------------
body
#main_header
------------------- */
body {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 1;
    font-weight: normal;
    font-family: 'メイリオ','Meiryo','Noto Sans JP',"游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", sans-serif;
    color: #5B3003;
    background: #F5F5F5;
}
#main_header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 100;
    height: 60px;
}
.header_wrapper {
    height: 100%;
}
#gn a {
    font-family: 'Noto Sans JP';
    display: block;
}
/* ~~~クエリで背景色追加~~~ */
.bg {
    background-color: #fff;
    box-shadow: 0px 1px 6px #eee;
    z-index: 110;
}
    /* ~~~スマホ~~~ */
        @media screen and (max-width: 750px) {
            .wrapper {
                height: 100%;
            }
            #logo {
                display: flex;
                align-items: center;
                height: 100%;
                margin-left: 10px;
            }
            #logo img {
                width: 160px;
            }
            #gn li:hover,
            #gn a:hover {
                background-color: rgb(144, 129, 111);
                color: #fcfaf9;
                opacity: 1;
            }
             /* ~~~~~~~~ボタンをクリックしたらメニューを表示~~~~~~ */
            #gn{
                padding-left: var(--sp-outer-margin);
                padding-right: var(--sp-outer-margin);
                background-color: rgba(166, 151, 133, 0.9);
                color: #FEEFED;
                height: 100vh;
                width: 100vw;  
                padding-top: 4rem;
                z-index: 190;
                position: absolute;
                top: 0;
                right: -1000px;
                transition: right 1.2s;
            }
            #gn.open{
                right: -30%;
            }
            #gn li { 
                /* margin: 40px; */
                padding: 20px;
            } 
        }
    
    /* ~~~パソコン~~~ */
    @media screen and (min-width: 751px) {
        #main_header .header_wrapper {
            display: flex;
            align-items: center;
            justify-content: space-between;
        }
        #gn ul {
            display: flex;
            align-items: center;
            justify-content: flex-end;
            height: 90px;
            grid-template: 3em;
        }
        #logo img {
            width: 175px;
        }
    }



/* ハンバーガー */
@media screen and (max-width: 750px)  {
    #hbm {
        position: absolute;
        top: 0;
        right: 0;
        height: 60px;
        width: 60px;
        z-index: 200;
    }
    #hbm a{
        display: block;
        height: 100%;
    }
    #hbm a::before,
    #hbm a::after {
        content: '';
        display: block;
        height: 2px;
        width: 31px;
        background-color: #5B3003;
        position: absolute;
        top: 50%;
        left: 15px;
        transition: all 0.3s;
    }
    #hbm a::before {
        transform: translateY(-9px);
    }
    #hbm a::after {
        transform: translateY(5px);
    }
    #hbm.open a::before {
        transform: rotate(45deg);
    }
    #hbm.open a::after  {
        transform: rotate(-45deg);
 
    }

}
/* -----パソコン------ */
@media screen and (min-width: 751px) {
    #main_header .main_header_wrapper {
        height: 100%;
        padding-bottom: 0;
        display: flex;
        justify-content: space-between;
        align-items: center;
    }
    #main_header p{
        font-size: 160%;
        letter-spacing: 0.2em;
    }
    #main_header ul {
        display: flex;
        gap: 1.5em;
    }
    #main_header a {
        color: #5B3003;
    }
    #main_header .menu-btn {
        display: none;
    }
}

 /* ～～～～
メインビジュアル
～～～～～  */
#mv {
    height: 540px;
    background-image: url(../img/mv_sp11.jpg);
    top: 0;
    left: 0;
    background-size: cover;
    background-position: bottom;
    position: relative;
}
.mv-catch {
    height: 100%;
    position: absolute;
    top: 20%;
    right: 0;
    font-family: 'Noto Sans JP';
    font-weight: 400;
}
#mv .mv_subTtl {
    color: #9F9258;
    font-size: 87.5%;
    padding-left: 3%;
}
#mv h1 {
    font-size: 162.5%;
    margin-bottom: 0.5em;
}
#mv .mv_text{
    border: 0.5px solid #9F9258;
    display: inline-block;
    font-size: 62.5%;
    padding: 0.2rem;
    color: #5B3003;

}
#mv_text{
    /* text-align: right; */
    padding-left: 3%;
}



    /* ------パソコン------- */
    @media screen and (min-width: 751px) {
        #mv .mv_subTtl {
            color: #9F9258;
            font-size: 150%;
        }
        #mv h1 {
            font-size: 300%;
            margin-bottom: 0.5em;
        }
        #mv .mv-catch{
            font-size: 140%;
            display: inline-block;
            font-weight: 100;
            top: 15%;
            right: 0;
        }

        #mv .mv_text{
            font-size: 125%;
            border: 1px solid #9F9258;

        }
        
        #mv{
            background-image: url(../img/mv_pc1.jpg);
            height: 800px;
            /* object-position: center 100%;  */
        } 
    }
    /* ~~~固定~~ */
    @media screen and (min-width: 1000px) {  
        #mv {
            background-image: url(../img/mv_pc1.jpg);

            height: 1100px;
        }
        #mv .mv_catch{
            font-weight: 100;
        }

}
 /* ～～～～
当院について
～～～～～  */

#about {
    height: 100%;
    }
#about .heading-decoration {
    text-align: left;
 } 
#about .about_text {
    color: #725322;
 }
 /* now
#about .about_inner {
    display: flex;
} */
#about img {
    object-fit: cover;
    aspect-ratio: 1 / 1 ;
    border-radius: 50%;
 }

#about figure {
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
    border-radius: 50%;
    overflow: hidden;
}

     /* ~~~スマホ~~~ */
     @media screen and (max-width: 750px) {
        #about img {
            width: 50%;
        }
        #about .btn {
            margin-top: 1rem;
        }

    }
     /* ------パソコン------- */
     @media screen and (min-width: 751px) {
        #about .about_inner{
            display: flex;
            align-items: center;
            gap: clamp(50px , 6vw,80%); 
        }
        .about_text {
            flex: 3;
            min-width: 17em;
        }
        #about figure {
            flex: 1;
            display: flex;
            float: right;
        }
    }
    /* -----別ページ用----- */
        #about_page .about_text  p{
            margin-bottom: 1rem;
        }
 /* ～～～～
施術について
～～～～～  */
#concept {
    background:#ebe6e1;
}
#concept .concept_item {
    display: flex;
    gap: 1px;
    margin-bottom: 2rem;
    margin-top: 1rem;

}

    /* ------スマホ------- */
    @media screen and (max-width: 750px)  {
        #concept p{
            padding-right: var(--sp-outer-margin);
            padding-left: var(--sp-outer-margin);
        }
    }

/* ~~別ページ~~ */
#concept_page #concept {
    /* background: #F5F5F5; */
    background-color: #fff;
}
#concept_page #main_header,
#about_page #main_header,
#plan_page #main_header{
    background: #fff;
}
#concept_page .concept_h3 {
    color: rgb(66, 87, 105);
    font-size: 120%;
    font-weight: 100;
    margin-bottom: 1rem;
}
#concept_page .concept_q {
    width: auto;
    background: #fff;
    margin: 0 auto;
}
#concept_page ul.concept_list{
    padding: 0;
    width:350px;
    list-style: none;
    margin-left: 3rem;
  }
#concept_page  ul.concept_list li{
    position: relative;
    padding: 0.5em 1em 0.5em 2.3em;
    margin-bottom:5px;
    color: rgb(128, 166, 199);
    font-size: 80%;
    /* border-bottom: 1px solid rgba(129,194,250, 0.5); */
  }
#concept_page  ul.concept_list li:nth-last-child(){
    border-bottom: none;
}

#concept_page p {
    padding-top: 2rem;
}
/* ------スマホ------- */
@media screen and (max-width: 750px)  {
#concept_page .concept_q{
    margin-left: var(--sp-outer-margin);
    margin-right: var(--sp-outer-margin);
}
/* #concept_page .concept_q1 {
    z-index: 1;
} */
#concept_page .concept_q img {
    /* margin: 0 auto; */
    position: relative;
    top: 10px;
    right: 0;
    /* margin-left: auto;
    margin-right: 0; */
    width: 55%;
}   
}
/* ------パソコン------- */
@media screen and (min-width: 751px) {
    #concept_page .concept_q {
        display: flex;
    }
    #concept_page .concept_q img {
        flex-basis: 40%;
        object-fit: cover;
        max-width: 50%;
        margin-left:auto;
        margin-right: 0;
    }
}


#concept_page .concept_list li:after,
#concept_page .concept_list li:before {
    content: "";
    position: absolute;
    -webkit-transform: rotate(45deg);
    -moz-transform: rotate(45deg);
    -o-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}
#concept_page .concept_list li:before {
    top: 0.7em;
    left: 0.2em;
    width: 12px;
    height: 12px;
    border:2px solid rgba(100, 150, 194, 0.5);
  }
  #concept_page .concept_list li:after{
    top: 0.9em;
    left: 0.7em;
    width: 14px;
    height: 14px;
    background: rgba(120, 166, 206, 0.3);
    -webkit-transform: rotate(60deg);
    -moz-transform: rotate(60deg);
    -o-transform: rotate(60deg);
    -ms-transform: rotate(60deg);
    transform: rotate(60deg);
  }




 /* ～～～～
院内の様子
～～～～～  */
#room .room_item {
    width: 100%;
    /* margin: 0 auto; */
}
.room_photo {
    margin-bottom: 1em;
}

    /* ------スマホ------- */
    @media screen and (max-width: 750px)  {
        #room .room_photo {
            display: grid;
            gap: 1px;
            grid-template: 
           "box1 box1" 
           "box1 box1"
           "box2 box3";
        }
        #room .box1 {
            grid-area: box1;
        }   
        #room .box2 {
            grid-area: box2;
        }   
        #room .box3 {
            grid-area: box3;
        }   
    }


/* ------パソコン------- */
@media screen and (min-width: 751px) {
    #room .room_photo {
    
        display: grid;
        grid-template-columns: repeat(3,1fr);
        margin-bottom: 1em;
        gap: 1px;
    }
}

 /* ～～～～
お知らせ
～～～～～  */
#news {
    height: 100%;
    background-color: #ebe6e1;
}
#news .news_item {
    text-align: center;
}
#news p {
    text-indent: -0.5em;
}
    /* ------スマホ------- */
    @media screen and (max-width: 750px)  {
        #news .news_wrapper {
            padding-right: var(--sp-outer-margin);
            padding-left: var(--sp-outer-margin);
        }
    }




 /* ～～～～
アクセス
～～～～～  */
#access {
    height: 100%;
    background:#ebe6e1;
}
.address{
    width: 100%;
    margin-top: 3em;
    margin-bottom: 3em;
  }
  
table th{
    position: relative;
    width: 25%;
}
th,td {
    padding-top: .5em;
    padding-bottom: .5em;
    vertical-align: middle;
}
tr {
    border-bottom: 1px solid #725322;
}
#access table:nth-child(2) td {
    line-height: 1.4;
}
.access_bnr_text,
.bnr_tel,
.reception {
    text-align: center;
}
.bnr_tel {
    font-size: 150%;
}

div.parent_box {
    width: 300px;
    display: flex;
    align-items: center;
    
  }


    /* ------スマホ------- *
@media screen and (max-width: 750px)  {
    iframe {
        width: 100%;
        height: 240px;
        margin-bottom: 2rem;
    }
    .bnr_tel {
        font-size: 150%;
    }
} */

/* ------スマホ------- */
@media screen and (max-width: 750px)  {
    iframe {
        width: 100%;
        height: 240px;
        margin-bottom: 2rem;
    }
    .bnr_tel {
        font-size: 150%;
    }
    #access .access_wrapper {
        padding-right: var(--sp-outer-margin);
        padding-left: var(--sp-outer-margin);
    }
}

/* ------パソコン------- */
@media screen and (min-width: 751px) {
    iframe {
        width: 48%;
        height: 400px;
        margin-bottom: 0;
    }

    .pc_flex>div {
       width: 48%; 
    }
    /* .access_list_a {
        font-size: 150%;
    } */
    
}


    
 /* ～～～～
フッター
～～～～～  */
#main_footer {
    background: #58330d;
    color: #FBF2E8;
}
#main_footer .wrapper {
    padding-bottom: 0.3rem;
}

#main_footer img {
    margin-right: auto;
    margin-left: auto;

}
#main_footer .wrapper {
    padding-top: 0.5rem;
    padding-bottom: 1rem;

}        

.footer_nav ul {
    margin-top: 1rem;
    margin-bottom: 1rem;
}
#main_footer li {
    padding-bottom: 0.2em;
    padding-top: 0.2em;
}

#main_footer .footer_copy {
    text-align: center;
    height: 100%;
}
#main_footer small {
    color: #FBF2E8;
    font-size: 40%;
}


    /* ------スマホ------- */
    @media screen and (max-width: 750px)  {
        #main_footer .footer_nav ul{
            border-top: 1px solid #FBF2E8;
            border-bottom: 1px solid #FBF2E8;
            padding-left: 50px;
        }
        #main_footer li a {
            font-weight: 100;
            font-size: 85%;
        }
        /* #main_footer .site a {
            margin-right: auto;
            margin-left: auto;
            width: 140px;
            text-align: center;
        } */
        #main_footer img {
            width: 150px;
        }
    }
    /* ------パソコン------- */
    @media screen and (min-width: 751px) {
        
        .footer_nav ul {
            display: flex;
            gap: 30px;
            justify-content: center;
        }
        #main_footer img {
            width: 200px;
        }
        #main_footer a {
            margin-top: 1rem;
            margin-bottom: 1rem;
            text-align: center;
        }
        .contact_bnr>li .contact_bnr_txt {
            font-size: 1.4rem;
        }
        .contact_bnr>li .bnr_tel {
            font-size: 2.4rem;
            text-align: center;
        }
    }

 /* ～～～～
料金
～～～～～  */
#plan  table{
    text-align: center;
    /* background:#fff; */
}
#plan table {
    background: #fff;
    width: 100%;
} 
#plan th {
    text-align: center;
    /* background: #E3D1BE; */
    background: #ad9983;
    color: #fff;
    font-size: 120%;
    font-weight: 100;
}
#plan table,#plan td,#plan th {
    /* border: 1px solid #745E56; */
    border: 1px solid #ddd;
}
.width70 {
    width: 70%;
}
.width30 {
    width: 30%;
}
#plan th , #plan td {
    padding-top: 2em;
    padding-bottom: 2em;
}
    /* ------パソコン------- */
    @media screen and (min-width: 751px) {
        #plan  table{
            table-layout: fixed;
            width: 80%;
            margin-right: auto;
            margin-left: auto;
        }
        #plan table td{
            text-align: center;
            padding-left: 0.5rem;
        }
        .width60 {
            width: 60%;
        }
        .width20 {
            width: 20%;
        }
    }

  /* ～～～～
ページトップボタン
～～～～～  */
  /***追従するトップへ戻るボタン***/
#js-pagetop {
    position: fixed;
    height: 20px;
    text-decoration: none;
    font-weight: 100;
    transform: rotate(90deg);
    font-size: 90%;
    line-height: 1.5rem;
    color: #5B3003;
    padding: 0 0 0 35px;
    border-top: solid 1px;
}
#js-pagetop::before {
    content: "";
    display: block;
    position: absolute;
    top: -1px;
    left: 0px;
    width: 15px;
    border-bottom: solid 1px;
    transform: rotate(325deg);
    transform-origin: left top;
}
     /* ~~~スマホ~~~ */
     @media screen and (max-width: 750px) {
        #js-pagetop {
            right: -8px;
            bottom: 90px;
        }
    }
    /* ------パソコン------- */
    @media screen and (min-width: 751px) {
        #js-pagetop {
            right: 2px;
            bottom: 160px;
        }
    } 

/***トップへ戻るボタンここまで***/


  /* ～～～～
下からふわっと
～～～～～  */

.element {
    /* 最初は非表示 */
    opacity: 0;
    visibility: hidden;
    transform: translateY(50px);
    transition: opacity 1s, visibility 1s, transform 2s;
  }
  /* フェードイン時に入るクラス */
.is-fadein {
    opacity: 1;
    visibility: visible;
    transform: translateX(0);
}
  /* ～～～～
ロードしたらふわっと
～～～～～  */

.load-up {
    opacity: 0; transform: translateY(100px)/*スクロールアップする距離*/; transition: all 2s/*処理にかかる時間*/;
}
.load-up.done, .load-fade.done{opacity : 1; transform : translate(0, 0);}
