@charset "UTF-8";
html:not(.responsive) {
    min-width: 1000px;
    /* viewport */
}
/*=============================================
 * body
 *=============================================*/
body {
    color: #2F2E2D;
    font-family: "Zen Kaku Gothic New", "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
    font-size: 15px;
    line-height: 30px;
    font-weight: 700;
    letter-spacing: 0;
    background: #FFF;
    min-width: inherit;
    min-height: inherit;
    max-height: 100%;
}
/*=============================================
 * fonts - DON'T EDIT
 *=============================================*/
.fnt-mincho {
    font-family: "游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "HG明朝E", "メイリオ", Meiryo, "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
}
.fnt-meiryo {
    font-family: "メイリオ", Meiryo, "ヒラギノ角ゴシックPro", "ＭＳ ゴシック", "Hiragino Kaku Gothic Pro", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
}
.fnt-gothic {
    font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
}
/*=============================================
 * .fnt - customs
 *=============================================*/
.fnt-Roboto {
    font-family: 'Roboto', sans-serif;
}
.fnt-Crimson {
    font-family: 'Crimson Text', serif;
}
.ttl1 {
    text-align: center;
    font-size: 16px;
    font-weight: bold;
    letter-spacing: 1px;
    line-height: 1.8;
}
.ttl1 span {
    font-family: 'Crimson Text', serif;
    font-size: 36px;
    display: block;
    letter-spacing: 3.3px;
    font-weight: 600;
}
/*=============================================
 * <main>
 *=============================================*/
main {
    clear: both;
    width: 100%;
    position: relative;
    overflow: hidden;
}
.wrap {
    width: auto;
    padding: 0 3.85%;
}
section {
/*    margin: 0 5.7%;*/
    width: auto;
}
/*=============================================
 * <header>
 *=============================================*/
header {
    background: #FCE9DA;
    position: relative;
}
header #sideBar {
    background: #FCE9DA;
    width: 24.65%;
    box-sizing: border-box;
    padding: 5% 3% 3% 3%;
    position: fixed;
    top: 0;
    left: 0;
    height: 100vh;
}
header .logo {
    margin: 0 0 8% 0;
}
header .navi li {
    font-size: 18px;
    padding: 15px 0;
    position: relative;
    background: url("../img/shared/line.png") repeat-x left bottom;
}
header .navi li a {
    display: block;
    line-height: 1.5;
    color: #2F2E2D;
}
header .navi li a:hover {
    color: #B88D5C;
}
header .navi li i {
    position: absolute;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
}
header .navi li:last-of-type {
    font-size: 15px;
    background: none;
    margin: 20px 0;
}
header .navi li:last-of-type a + a {
    margin-top: 10px;
}

header .navi li:last-of-type .x-twitter{
    display: flex;
    align-items: center;
}
header .navi li:last-of-type .x-twitter i{
    position: static;
    width: 14px;
    display: inline-block;
    transform: none;
    margin-right: 5px;
    line-height: 1;
}

header .btn_link a{
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: auto;
    width: 100%;
    max-width: 360px;
    height: 75px;
    background-color: #B88D5C;
    border-radius: 75px;
    font-size: 16px;
    color: #fff;
}
header .btn_link a:hover{
    text-decoration: none;
    opacity: 0.8;
}

/*=============================================
 * key
 *=============================================*/
#key {
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    position: relative;
}
#key ul {
    min-height: inherit;
}
#key li {
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    min-height: inherit;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
}
main {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    justify-content: space-between;
}
/*=============================================
 * <section>
 *=============================================*/
/*=============================================
 * <footer>
 *=============================================*/
footer {
    text-align: center;
    background: #FFF9EF;
    padding: 50px 6% 40px;
    box-sizing: border-box;
}
footer a[href^="mailto:"]{
    display: inline-block;
}
footer .txt {
    font-size: 14px;
    letter-spacing: 0.04em;
    line-height: 1.7;
    margin: 70px 0 35px;
}
footer .mail {
    margin-top: 40px;
}
footer .btn_link {
    margin-top: 70px;
}
footer .btn_link a{
    position: relative;
    display: flex;
    justify-content: center;
    align-items: center;
    margin: auto;
    width: 100%;
    max-width: 350px;
    height: 67px;
    border: 2px solid #2F2E2D;
    border-radius: 2px;
    font-size: 16px;
}
footer .btn_link a i{
    position: absolute;
    right: 22px;
}
footer .btn_link a:hover{
    text-decoration: none;
    border-color: #B88D5C;
    color: #B88D5C;
}
footer .btn_link dt {
    margin-bottom: 5px;
}
footer .btn_link dt img {
    max-width: 325px;
}

footer address {
    margin-top: 65px;
}
footer .tel, footer .mail {
    line-height: 1.7;
}
footer .tel dd, footer .mail dd {
    font-size: 34px;
/*    letter-spacing: 0.4px;*/
    letter-spacing: 1.3px;
    text-decoration: underline;
    font-weight: 500;
}
footer .tel dd:hover, footer .mail dd:hover {
    color: #B88D5C;
}
footer .btn_link dd {
    font-size: 12px;
    line-height: 1.5;
    letter-spacing: 0.4px;
}
/*=============================================
 * copyright
 *=============================================*/
address {
    font-size: 16px;
    line-height: 1.6;
    letter-spacing: 0.09em;
}
.tc {
    text-align: center;
}
.tl {
    text-align: left;
}
.tr {
    text-align: right;
}
.tj {
    text-align: justify;
}
.fwb {
    font-weight: bold;
}
.cloBrown {
    color: #2F2E2D;
}
.cloRed {
    color: #F00;
}
.disF {
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
}
.hamburger {
    display: none;
}
.dis780 {
    display: none;
}
/*=============================================
 * RESPONSIVE
 *=============================================*/
@media only screen and (min-width: 1280px) {
    #contentRight {
        width: 75.35%;
    }
    #sideBar #menu_toggle{
        display: block !important;
        opacity: 1 !important;
    }
    header #sideBar{
        overflow: auto;
    }
}
@media only screen and (max-width: 1679px) and (min-width: 1280px) {
    header .navi li{
        font-size: 14px;
    }
    header .navi li:last-of-type{
        font-size: 12px;
    }
}
@media only screen and (min-width: 781px) {
    img {
        width: 100%;
    }
    header {
        width: auto;
    }    
    section{
        margin: 0 72px;
    }
    .wrap{
        padding: 0 40px;
    }
}
@media only screen and (max-width: 1279px) and (min-width: 781px) {   
    section{
        margin: 0 32px;
    }
}
@media only screen and (max-width: 1279px) {
    .has_nav #belt{
        position: fixed;
        background: #FCE9DA;
    }
    .nav--opened .hamburger{
        background: none;
    }
    .nav--opened header .logo_sp{
        display: none;
    }
    header .logo_sp{
        display: none;
    }
    .has_nav header .logo_sp{
        display: block;
    }
    header #sideBar{
        max-width: 335px;
        width: auto;
    }
    header .navi li{
        font-size: 14px;
        letter-spacing: 0;
    }
    header .navi li:last-of-type{
        font-size: 12px;
        letter-spacing: 0;
    }
    .hamburger {
        z-index: 99;
        display: block;
    }
    main {
        position: relative;
        flex-direction: column;
    }
    header {
        position: absolute;
        top: 0;
        left: 0;
    }
    .nav--opened #sideBar {
        padding-bottom: 5vw;
    }
    .nav--opened #sideBar.nav-style01 {
        -webkit-transform: translate3d(0, 0, 0);
        -moz-transform: translate3d(0, 0, 0);
        -ms-transform: translate3d(0, 0, 0);
        -o-transform: translate3d(0, 0, 0);
        transform: translate3d(0, 0, 0);
        left: 0;
    }    
    header #belt{
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 100;
        justify-content: space-between;
        padding: 20px 4%;
        align-items: center;
    }    
    header .logo_sp{
        color: #2F2E2D;
        font-size: 17px;
/*        font-size: 31px;*/
        font-weight: 600;
        letter-spacing: 1.5px;
    }
    #sideBar.nav-style01 {
        top: 0px;
        left: -100%;
        display: block;
        transition: all 0.5s ease 0s;
    }
    #sideBar {
        opacity: 0;
        visibility: hidden;
        position: fixed;
        top: 0;
        left: 0;
        bottom: 0;
        -webkit-box-sizing: border-box;
        -moz-box-sizing: border-box;
        box-sizing: border-box;
        transition: all 0.5s ease 0s;
        -moz-transition: all 0.5s ease 0s;
        -webkit-transition: all 0.5s ease 0s;
        z-index: 10;
    }
    header .menu_toggle ul {
        padding: 0;
        list-style-type: none;
        list-style-position: outside;
    }
    header .logo, header .btn_link {
        transform: matrix(1, 0, 0, 1, 0, -20);
        transition: all ease 0.5s 0.3s;
        opacity: 0;
    }
    header .menu_toggle ul li {
        transform: matrix(1, 0, 0, 1, 0, -20);
        transition: all ease 0.5s 0.3s;
        opacity: 0;
        position: relative;
        box-sizing: border-box;
    }
    header .menu_toggle ul li a {
        display: block;
        text-decoration: none;
    }     
    body.nav--opened, body.nav--opened *, body.nav--opened *:hover, body.nav--opened *:focus, body.nav--opened *:active {
        /*    cursor: none !important;*/
        touch-action: none !important;
        pointer-events: none !important;
    }
    body.nav--opened .hamburger, body.nav--opened #sideBar, body.nav--opened #sideBar * {
        touch-action: auto !important;
        pointer-events: visible !important;
    }
    .nav--opened {
        overflow: hidden !important;
        -webkit-overflow-scrolling: touch !important;
        touch-action: none !important;
        pointer-events: none !important;
    }
    .nav--opened #pagetop {
        z-index: -1;
    }
    .nav--opened #sideBar {
        opacity: 1;
        visibility: visible;
        pointer-events: visible;
        overflow: auto;
    }
    .nav--opened header #menu_toggle li, .nav--opened header .logo, .nav--opened header .btn_link {
        opacity: 1;
        transform: matrix(1, 0, 0, 1, 0, 0);
    }
}
@media only screen and (max-width: 1279px) and (min-width: 781px) {
    .nav--opened #belt{
        background: none;
        padding: 20px 2%;
    }    
    header #sideBar{
        padding-top: 8%;
    }
    header #belt{
        padding: 20px 4%;
    }    
    header #menu_toggle{
        padding: 0 10px;
    }
}
@media only screen and (max-width: 780px) {
    body {
        font-size: 14px;
    }
    section {
        margin: 0;
    }
    .wrap{
        padding: 0 20px;
    }
    main {
        flex-direction: column;
    }
    .dis780 {
        display: block;
    }
    .dis781{
        display: none;
    }
    .deco_flower {
        margin: 0 55px;
    }
    header #menu_toggle{
        padding: 80px 30px 70px;
    }
    header #sideBar {
        max-width: none;
        width: 100%;
        padding: 0 4%;
    }   
    .nav--opened header .logo_sp{
        opacity: 0;
    }
    header .navi li {
        padding: 14px 0;
        font-size: 14px;
        letter-spacing: 0;
    }
    header .navi li:last-of-type {
        margin: 25px 0;
        font-size: 12px;
    } 
    header .btn_link a{
        font-size: 14px;
    }
    footer {
        padding: 40px 20px;
    }
    footer .txt {
        font-size: 11px;
        margin: 35px 0 0 0;
    }
    footer .tel {
        margin-top: 35px;
    }
    footer .tel dd {
        font-size: 34px;
        letter-spacing: 0.9px;
    }
    footer .mail {
        margin-top: 35px;
    }
    footer .mail dd {
        font-size: 24px;
        letter-spacing: 0.9px;
    }
    footer .btn_link {
        margin-top: 50px;
    }
    footer .btn_link a{
        font-size: 14px;
    }
    footer .btn_link dt {
        margin-bottom: 10px;
    }
    footer .btn_link dt img {
        max-width: 284px;
    }
    footer address {
        margin-top: 40px;
        letter-spacing: 0.9px;
    }
}

.btn_eff a{
    background: #B88D5C;
    color: #fff;
    font-size: 16px;
    font-weight: bold;
    line-height: 1.2;  
    max-width: 326px;  
    width: 326px;
    box-sizing: border-box;
    display: inline-block;
    padding: 14px 0 12px 0;
    position: relative; 
    letter-spacing: 0.05em;
}
.btn_eff a:hover{
    text-decoration: none;
    opacity: 0.8;    
}
.btn_eff i{
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    right: 1em;
}