@import url('https://fonts.googleapis.com/css2?family=Zen+Maru+Gothic:wght@500;700;900&family=Lexend+Deca:wght@100..900&family=Rokkitt:ital,wght@0,100..900;1,100..900&display=swap');

.rokkitt{
    font-family: "Rokkitt", serif;
    font-weight: 400;
    font-style: italic;
}
.lexend{
    font-family: "Lexend Deca", serif;
    font-style: normal;
}
.zen{
    font-family:  "Zen Maru Gothic", serif;
    font-style: normal;
}
:root {
/*    --main: #FF5E00;
    --main-rgb: 255, 94, 0;
    --black: #141414;
    --ls: 0.05em;*/
    --accent: #4EC1B8;
}
/* 検証用
* {
	outline: 1px solid magenta;
}
*/
/*---------------------------------

  追加リセット

---------------------------------*/

html{
    scroll-behavior: smooth;
    min-width: 375px;
}

body, div, ul, ol, li, dl, dt, dd, h1, h2, h3, h4, p, b, s, small, menu, mark {
    color: #474645;
    font-size: 14px;
    font-family: "Lexend Deca", "Zen Maru Gothic", "Hiragino Kaku Gothic ProN", "ヒラギノ角ゴ ProN W3", "Hiragino Sans", Meiryo, Osaka, "MS PGothic", sans-serif;
}
a{
    text-decoration: none;
}
p, li{
    line-height: 1.5;
}
ul{
    list-style: none;
}
img {
    max-width: 100%;
}

/* モーダル開時に背景のスクロールを防ぐ */
body:has(.overlay.open){
  overflow: hidden;
}
body:has(.overlay.open) main{
  overflow: auto;
  scrollbar-gutter: stable;
}

.pc{
    display: inline-block;
}
.sp{
    display: none;
}

@media screen and (max-width:767px) {
    .pc{
        display: none;
    }
    .sp{
        display: inline-block;
    } 
}

/*---------------------------------

  共通

---------------------------------*/

.flex {
    display: flex;
    flex-wrap: wrap;
}



.title-stitch{
    position: relative;
    margin: 0 0 50px;
    color: #707070;
    font-size: 18px;
    font-weight: 500;
}
.title-stitch::before{
    content: '';
    position: absolute;
    top: 5px;
    left: -55px;
    width: 120px;
    height: 1px;
    background-size: 11px 1px;
    background-image: linear-gradient(to right, #474645 7px, transparent 4px);
    background-repeat: repeat-x;
    background-position: left bottom;
    transform: rotate(-45deg);
}
.title-stitch span{
    display: block;
    color: #474645;
    font-size: 50px;
    line-height: 57px;
}
.title-underline{
    display: inline-block;
    margin: 0 0 40px;
    background-size: 11px 1px;
    background-image: linear-gradient(to right, #474645 7px, transparent 4px);
    background-repeat: repeat-x;
    background-position: left bottom;
    font-size: 32px;
    font-weight: 500;
    line-height: 55px;
}
.btn{
    position: relative;
    display: block;
    width: 100%;
    max-width: 317px;
    height: 56px;
    padding: 18px 0 0;
    background-color: #DB0034;
    border-radius: 32px;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
}
.btn:disabled{
    background-color: #eee;
}
button.btn{
    padding: 2px 0 0;
}

.btn_white{
    background-color: #fff;
    border: 1px solid #DB0034;
    color: #DB0034;
}

.arrow_r{
    position: relative;
}
.arrow_r::after{
    content: '';
    position: absolute;
    top: calc(50% - 3px);
    right: 23px;
    display: block;
    width: 6px;
    height: 6px;
    border-right: 1px solid #A88B7F;
    border-bottom: 1px solid #A88B7F;
    transform: rotate(-45deg);
}
.btn.arrow_r::after{
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
}
.btn_white.arrow_r::after{
    border-right: 1px solid #DB0034;
    border-bottom: 1px solid #DB0034;

}
.arrow_r:disabled::after{
    display: none;
}
.arrow_l::after{
    content: '';
    position: absolute;
    top: calc(50% - 3px);
    left: 23px;
    display: block;
    width: 6px;
    height: 6px;
    border-right: 1px solid #A88B7F;
    border-bottom: 1px solid #A88B7F;
    transform: rotate(135deg);
}
.btn.arrow_l::after{
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
}
.arrow_d{
    position: relative;
}
.arrow_d::after{
    content: '';
    position: absolute;
    top: calc(50% - 3px);
    right: 23px;
    display: block;
    width: 6px;
    height: 6px;
    border-right: 1px solid #A88B7F;
    border-bottom: 1px solid #A88B7F;
    transform: rotate(45deg);
}
.btn.arrow_d::after{
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
}

.btn.back{
    max-width: 317px;
    background: #8D8D8D;
}

@media screen and (max-width:767px) {
    
    .title-stitch{
        margin: 0 0 50px 30px;
        font-size: 14px;
    }
    .title-stitch::before{
        content: '';
        position: absolute;
        top: 20px;
        left: -40px;
        width: 30px;
        height: 1px;
        background-size: 5px 1px;
        background-image: linear-gradient(to right, #474645 3px, transparent 2px);
        background-repeat: repeat-x;
        background-position: left bottom;
        transform: rotate(0deg);
    }
    .title-stitch span{
        font-size: 24px;
        line-height: 40px;
    }
    
    .title-underline{
        display: inline-block;
        margin: 0 0 40px;
        background-size: 11px 1px;
        background-image: linear-gradient(to right, #474645 7px, transparent 4px);
        background-repeat: repeat-x;
        background-position: left bottom;
        font-size: 18px;
        line-height: 55px;
    }
    
    .btn{
        position: relative;
        display: block;
/*        width: 256px;*/
        height: 56px;
        padding: 18px 0 0;
        border-radius: 32px;
        font-size: 16px;
    }
    
}





/*---------------------------------

  ヘッダー（サイドバー）

---------------------------------*/

.header{
    position: sticky;
    top: 0;
    width: 20%;
    max-width: 280px;
    height: 100vh;
    min-height: 800px;
    background: #fff;
    z-index: 5;
}

.header::before{
    content: '';
    position: fixed;
    top: 25px;
    right: 0;
    display: block;
    width: 300px;
    height: 165px;
    background: url(../img/common/navi_bg_wave.svg) no-repeat bottom right;
    background-size: 1000px;
    z-index: -1;
    transform: rotate(45deg);
    transform-origin: bottom right;
}

.header .logo{
    display: block;
    width: 162px;
    margin: 53px 0 30px 14%;
}
.header .header_nav li a{
    display: block;
    width: 100%;
    height: 80px;
    padding: 30px 0 30px 37%;
    border-bottom: 1px dotted #707070;
}
.header .header_nav li a{
    background: url(../img/common/ico_product.svg) no-repeat 11% 15px;
    background-size: 50px;
}
.header .header_nav li:nth-child(2) a{
    background: url(../img/common/ico_workshop.svg) no-repeat 11% 15px;
    background-size: 50px;
}
.header .header_nav li:nth-child(3) a{
    background: url(../img/common/ico_shop.svg) no-repeat 11% 15px;
    background-size: 50px;
}
.header .header_nav li:nth-child(4) a{
    background: url(../img/common/ico_support.svg) no-repeat 11% 15px;
    background-size: 50px;
}
.header .header_nav li:nth-child(5) a{
    background: url(../img/common/ico_column.svg) no-repeat 11% 15px;
    background-size: 50px;
}
.header .header_nav li:last-child a{
    background: rgba(134, 115, 97, 1) url(../img/common/ico_online_shop.svg) no-repeat 11% 15px;
    background-size: 50px;
    color: #fff;
}

.header .header_nav li:not(:last-child) a:hover{
    background-color: #EAE5DF;
    color: #867361;
/*filter: invert(66%) sepia(8%) saturate(882%) hue-rotate(332deg) brightness(86%) contrast(90%);*/
}
.header .header_nav li:last-child a:hover{
    background: rgba(168, 139, 127, .8) url(../img/common/ico_online_shop.svg) no-repeat 11% 15px;
    background-size: 50px;
}

.header .box{
    position: absolute;
    bottom: 30px;
    left: calc(50% - 85px);
    width: 170px;
    text-align: center;
}
.header .box dl{
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 0 0 35px;
}
.header .box dl dt{
    width: 100%;
    margin: 0 0 15px;
    font-size: 20px;
    font-style: normal;
}
.header .box .copy{
    letter-spacing: -0.01em;
}

.header .btn_shopsearch{
    display: none;
}


@media screen and (max-width:1023px){
    .header{
        position: fixed;
        top: 0;
        width: 100%;
        max-width: 100%;
        height: 60px;
        min-height: inherit;
        background: none;
        z-index: 5;
    }
    .header::before{
        height: 125px;
        background-size: 900px;
    }
    .header .logo{
        display: block;
        width: 100px;
        margin: 20px 0 0px 3%;
    }
    .header .header_nav{
        display: none;
    }
    .header .box{
        display: none;
    }
    
    .header .btn_shopsearch{
        position: fixed;
        bottom: 20px;
        right: 15px;
        display: block;
        width: 76px;
        height: 76px;
        padding: 16px 0 0;
        background: url(../img/common/ico_shop_w.svg) no-repeat bottom 10px right 19px;
        background-size: 32px;
        background-color: #DB0034;
        border-radius: 53.5px 53.5px 4px 53.5px;
        color: #fff;
        font-size: 12px;
        text-align: center;
    }

}


/*---------------------------------

  ハンバーガー周り

---------------------------------*/
.header_nav_sp {
    position: fixed;
    top: 0px;
    right: -375px;
    width: 375px;
    height: 100%;
    background: #D1CBC4;
    font-size: 13px;
    z-index: 8;
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    overflow-y: scroll;
}

.header_nav_sp .logo{
    width: 100px;
    margin: 20px 0 0px 20px;
}

.header_nav_sp .list1{
    justify-content: space-evenly;
    margin: 50px 0 20px;
}
.header_nav_sp .list1 li a{
    position: relative;
    display: block;
    width: 81px;
    padding: 80px 0 0;
    color: #474645;
    font-size: 13px;
    font-weight: 700;
    text-align: center;
}
.header_nav_sp .list1 li:nth-child(3) a{
    padding: 75px 0 0;
}
.header_nav_sp .list1 li a::before{
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 72px;
    height: 72px;
    border-radius: 50%;
}
.header .header_nav_sp .list1 li:nth-child(1) a::before{
    background: url(../img/common/ico_shop.svg) no-repeat center;
    background-size: 40px;
    background-color: #fff;
    
}
.header .header_nav_sp .list1 li:nth-child(2) a::before{
    background: url(../img/common/ico_product.svg) no-repeat center;
    background-size: 40px;
    background-color: #fff;
}
.header .header_nav_sp .list1 li:nth-child(3) a::before{
    background: url(../img/common/ico_campaign.svg) no-repeat center;
    background-size: 40px;
    background-color: #fff;
}

.header_nav_sp .list2{
    margin: 0 30px 20px;
}
.header_nav_sp .list2 li{
    margin: 0 0 5px;   
}
.header .header_nav_sp .list2 li a{
    display: block;
    width: 100%;
    height: 50px;
    padding: 13px 0 0 60px;
    border-radius: 4px;
    color: #474645;
    font-size: 16px;
}
.header .header_nav_sp .list2 li:nth-child(1) a{
    background: url(../img/common/ico_workshop.svg) no-repeat 15px 11px;
    background-size: 30px;
    background-color: #fff;
}
.header .header_nav_sp .list2 li:nth-child(2) a{
    background: url(../img/common/ico_support.svg) no-repeat 15px 11px;
    background-size: 30px;
    background-color: #fff;
}
.header .header_nav_sp .list2 li:nth-child(3) a{
    background: url(../img/common/ico_column.svg) no-repeat 15px 11px;
    background-size: 30px;
    background-color: #fff;
}
.header .header_nav_sp .btn{
    width: 300px;
    height: 50px;
    padding: 14px 0 0 20px;
    margin: 0 auto 40px;
}
.header .header_nav_sp .btn::before{
    content: '';
    position: absolute;
    left: 70px;
    top: 10px;
    display: block;
    width: 28px;
    height: 28px;
    background: url(../img/common/ico_online_shop.svg) no-repeat;
    background-size: 28px;
}
.header .header_nav_sp .list3{
    margin: 0 30px 20px;
}
.header .header_nav_sp .list3 li{
    width: 50%;
    margin: 0 0 15px;
}
.header .header_nav_sp .sns_list{
    justify-content: center;
    gap: 20px;
    padding: 12px 0;
    margin: 0 0 15px;
    border-top: 1px solid #fff;
    border-bottom: 1px solid #fff;
}
.header .header_nav_sp .sns_list dt{
    padding: 10px 40px 0 0;
    font-size: 14px;
    font-style: normal;
}
.header .header_nav_sp .copy{
    display: block;
    width: 100%;
    letter-spacing: -0.01em;
    text-align: center;
}

.header .nav_trigger {
    position: fixed;
    right: 0px;
    top: 0px;
    display: block;
    width: 80px;
    height: 80px;
    cursor: pointer;
    z-index: 10;
    transition: all .4s;
}

.header .nav_trigger span{
    position: absolute;
    top: 40px;
    right: 30px;
    display: block;
    width: 36px;
    height: 4px;
    background: #73654F;
    border-radius: 2px;
    color: #73654F;
    font-size: 13px;
    letter-spacing: 0.01em;
    line-height: 28px;
    text-align: center;
    transition: all .4s;
}
.header .nav_trigger span::before,
.header .nav_trigger span::after {
    position: absolute;
    display: block;    
    height: 4px;
    margin: auto;
    background: #73654F;
    border-radius: 2px;
    transition: all .4s;
}
.header .nav_trigger span::before {
    content: '';
    top: -10px;
    width: 36px;
}
.header .nav_trigger span::after {
    content: '';
    top: -20px;
    width: 36px;
}
.nav_trigger.active{
    right: 0px;
    width: 80px;
    height: 80px;
}
.nav_trigger.active span::before {
    width: 36px;
    height: 3px;
    -webkit-transform: translateY(-3px) rotate(-45deg);
    transform: translateY(-3px) rotate(-45deg);
}
.nav_trigger.active span {
    background: rgba( 0, 0, 0, 0);
}
.nav_trigger.active span::after {
    width: 36px;
    height: 3px;
    -webkit-transform: translateY(6px) rotate(45deg);
    transform: translateY(6px) rotate(45deg);
}


@media screen and (max-width:767px) {
    .header .nav_trigger span{
        top: 40px;
        right: 20px;
    }
    .header .header_nav_sp .btn{
        width: 315px;
        height: 50px;
        padding: 14px 0 0 20px;
        font-size: 18px;
    }
}

/*---------------------------------

  中身

---------------------------------*/

.container{
    width: 80%;
    min-width: calc(100% - 280px);
    background: #f8f8f8;
}
.inner{
    position: relative;
    width: 96%;
    max-width: 1100px;
    margin: auto;
}
.inner p,
.inner b{
    font-family: 'Segoe UI', 'Helvetica Neue', 'Noto Sans JP', "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    line-height: 1.75;
}
.breadcrumb{
    width: 100%;
    padding: 10px 20px;
    background: #EAE5DF;
}
.breadcrumb li{
    display: inline-block;
    color: #474645;
}
.breadcrumb li::before{
    content: '／';
}
.breadcrumb li:first-child::before{
    content: '';
}
.breadcrumb li a{
    color: #474645;
}
.breadcrumb li a:hover{
    color: var(--accent);
}
@media screen and (max-width:1023px){
    .container{
        width: 100%;
        padding: 60px 0 0;
        background: #f8f8f8;
    }
    .inner{
        max-width: 750px;
    }
    .breadcrumb{
        display: none;
    }
}

/*---------------------------------

  フォーム

---------------------------------*/
.plus{
    position: relative;
}
.plus::before{
    content: '+';
    position: absolute;
    top: 10px;
    right: 10px;
    display: block;
    width: 20px;
    height: 20px;
    padding: 1px 0 0 1px;
    background: #DB0034;
    border-radius: 50%;
    color: #fff;
    text-align: center;
}
.checkbox2 label input{
    position: absolute;
    width: 0;
    height: 0;
    border: none;
    background: none;
    box-shadow: none;
    padding: 0;
    line-height: 0;
}
.checkbox2 label input + span,
.radio input + span{
    position: relative;
    padding: 0 0 0 45px;
    cursor: pointer;
}
.checkbox2 label input + span::before,
.radio input + span::before{
    content: '';
    position: absolute;
    top: 50%;
    left: 0;
    width: 28px;
    height: 28px;
    margin-top: -13px;
    border: 1px solid #EAE5DF;
    border-radius: 4px;
}
.checkbox2 label input + span::after{
    content: '';
    position: absolute;
    top: 50%;
    margin-top: -4px;
    left: 7px;
    width: 15px;
    height: 8px;
    border-left: solid 3px #DB0034;
    border-bottom: solid 3px #DB0034;
    transform: rotate(-45deg) scale(1);
    opacity: 0;
}

.checkbox2 label input[type="checkbox"]:checked + span::after{
    opacity: 1;
}

.checkbox2 label input:disabled + span::before{
    background: #eee;
}
.checkbox2 label input:disabled + span{
    cursor: inherit;
}

.radio input + span::before {
    border-radius: 50%;
    cursor: pointer;
}
.radio input + span::after {
    content: '';
    position: absolute;
    opacity: 0;
    top: 50%;
    left: 9px;
    width: 10px;
    height: 10px;
    margin-top: -4px;
    border-radius: 50%;
    background: #DB0034;
}
.radio input[type="radio"]:checked + span::after {
    opacity: 1;
}

/*---------------------------------

  ページネイト

---------------------------------*/
.paging{
    display: flex;
    justify-content: center;
    gap: 10px;
    margin: 60px auto 0;
}
.paging > *{
    display: block;
    width: 40px;
    height: 40px;
    padding: 5px 0 0;
    background: #EAE5DF;
    border-radius: 8px;
    font-size: 24px;
    text-align: center;
}
.paging > .current{
    background: #DB0034;
    color: #fff;
}



/*---------------------------------

  下層タイトルエリア

---------------------------------*/

.title_area{
    padding: 90px 0 30px;
}

.title_area .txt{
    line-height: 2;
}


@media screen and (max-width:767px) {
 
    .title_area{
        padding: 60px 0 0px;
    }
    
}

/*---------------------------------

  モーダル

---------------------------------*/
.modal{
    display: none;
}
.modal{
    visibility: hidden;
    transition: all .5s ease;
    z-index: 10;
}
.modal.active{
    visibility: visible;
    position: fixed;
    inset: 0;
    display: block;
    width: 80%;
    max-width: 1100px;
    height: 80%;
    margin: auto;
    padding: 0 0 20px;
    background: #fff;
    border-radius: 16px;
    overflow: hidden;
}
.modal header{
    justify-content: space-between;
    position: relative;
    width: 100%;
    height: 80px;
    padding: 16px 90px 16px 40px;
    background: #F0EFEC;
    border-bottom: 1px solid #867361;

}
.modal header .ttl{
    padding: 13px 0 0 0px;
    color: #867361;
    font-size: 24px;
    font-weight: 700;
}
.modal header .btn{
    max-width: 240px;
    height: 48px;
    margin: 0;
}
.modal header .close{
    position: absolute;
    top: 20px;
    right: 30px;
    display: block;
    width: 40px;
    height: 40px;
    background: #8D8D8D;
    border-radius: 50%;
}
.modal header .close::before,
.modal header .close::after{
    content: '';
    position: absolute;
    top: 18px;
    left: 11px;
    width: 19px;
    height: 3px;
    background: #F0EFEC;
    border-radius: 1px;
    transform-origin: center;
}
.modal header .close::before{
    transform: rotate(-45deg);
}
.modal header .close::after{
    transform: rotate(45deg);
}
.modal footer{
    display: none;
}
.modal .scroll-box{
    height: calc(100% - 80px);
    overflow: auto;
}

.js-modal .scroll-box{
    height: calc(100% - 250px);
}
.js-modal2 .scroll-box{
    height: calc(100% - 300px);
}


.modal header .ttl.map{
    padding: 13px 0 0 30px;
    background: url(../img/shop/icon_map.png) no-repeat left 13px;
    background-size: 25px;
}
.js-modal2 footer{
    display: block;
}



.modal .scroll_nav{
    margin: 30px 0 30px;
}
.modal .tab_list{
    justify-content: center;
}
.modal .tab_list li{
    display: block;
    height: 40px;
    padding: 10px 30px 0px 30px;
    background: #EAE5DF;
    border-radius: 32px;
    color: #000;
    font-size: 16px;
    line-height: 1;
    cursor: pointer;
}
.modal .tab_list li.active{
    background: #867361;
    color: #fff;
}

.modal dl{
    gap: 15px 2%;
    padding: 0 50px;
}
.modal dl dt{
    position: relative;
    width: 100%;
    margin: 30px 0 15px;
    color: #DB0034;
    font-size: 20px;
    font-weight: 700;
}
.modal dl dt::before{
    content: '';
    display: inline-block;
    width: 30px;
    height: 3px;
    margin: 0 10px 5px 0;
    background: #E28E97;
    border-radius: 3px;
}
.modal.js-modal2 dl dt::before{
    display: none;
}

.modal dl dd{
    width: calc(32% - 45px);
    margin: 0 0 0 45px;
    font-size: 16px;
    text-indent: -45px;
}
.modal dl dd .num{
/*    display: none;*/
}
.modal .btn{
    max-width: 320px;
    margin: 0px auto 0;
    padding: 0;
}

.modal .tab_area{
    display: none;
}
.modal .tab_area.active{
    display: block;
}

.modal .add_favorite{
    position: relative;
    margin: 30px 0 0;
    top: -20px;
    text-align: center;
}

@media screen and (max-width:767px) {

    .modal dl{
        padding: 40px 4vw;
    }
    .modal dl dd{
        width: 100%;
        font-size: 16px;
    }

    .modal header{
        height: 60px;
        padding: 6px 90px 16px 4vw;
    }
    .modal header .ttl{
        font-size: 21px;
    }
    .modal header .close{
        position: absolute;
        top: 10px;
        right: 4vw;
    }
    .modal header .btn{
        display: none;
    }
    .modal footer{
        display: block;
        padding: 20px 4vw 0;
    }
    .modal .scroll-box{
        height: calc(100% - 140px);
    }
    .js-modal2 .scroll-box{
        height: calc(100% - 280px);
    }

    
}



/*---------------------------------

  その他共通

---------------------------------*/
.group{
    position: relative;
    padding: 120px 0 120px;   
}
.group:nth-of-type(2n-1){
    background: #F0EFEC;
    z-index: 1;
}
.group:nth-of-type(2n-1)::before{
    content: '';
    position: absolute;
    top: -20px;
    left: 0;
    display: block;
    width: 100%;
    height: 200px;
    background: url(../img/common/wave_top.svg) repeat-x top;
    z-index: -1;
}
.group:nth-of-type(2n-1)::after{
    content: '';
    position: absolute;
    bottom: -20px;
    left: 0;
    display: block;
    width: 100%;
    height: 200px;
    background: url(../img/common/wave_bottom.svg) repeat-x top;
    z-index: -1;
}
.group:last-of-type::after{

}
.white_box{
    padding: 50px;
    background: #fff;
}
.white_box:has(.attention){
    padding: 20px 5%;
}
.white_box .attention{
    font-size: 18px;
    font-weight: 700;
    text-align: center;
}
.white_box .attention.red{
    color: #DB0034;
}
.white_box + .white_box{
    margin: 2px 0 0;
}

.white_box .title-underline{
    margin: 0 0 30px;
    font-size: 28px;
}

.white_box.box_note dt{
    position: relative;
    width: 100%;
    margin: 0 0 15px;
    color: #DB0034;
    font-size: 20px;
    font-weight: 700;
}
.white_box.box_note dt::before{
    content: '';
    display: inline-block;
    width: 30px;
    height: 3px;
    margin: 0 10px 5px 0;
    background: #DB0034;
    border-radius: 3px;
}
.white_box.box_note dd + dt{
    margin-top: 30px;
}
.white_box.box_note dd{
    margin: 0 0 5px 1em;
    font-size: 16px;
    line-height: 1.5;
    text-indent: -1em;
}
.white_box.box_note dd::before{
    content: '・';
}
.overlay {
    content: '';
    visibility: hidden;
    position: fixed;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0);
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    z-index: 7;
}
.side_open .overlay {
    visibility: visible;
    cursor: pointer;
    background: rgba(0,0,0,.7);
}
/* サイドメニューオープン */
.side_open .overlay,
.side_open .header_nav_sp {
    -webkit-transform: translate3d(-375px, 0, 0);
    transform: translate3d(-375px, 0, 0);
}
.overlay.open {
    visibility: visible;
    cursor: pointer;
    background: rgba(0,0,0,.7);
}


.pop{
    visibility: hidden;
    z-index: 10;
}
.pop.active{
    visibility: visible;
    position: fixed;
    inset: 0;
    display: block;
    width: 80%;
    max-width: 1100px;
    height: 80%;
    margin: auto;
    overflow: auto;
}
.pop_in{
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translateX(-50%) translateY(-50%);
    width: fit-content;
    min-width: 300px;
    max-width: 80%;
    padding: 30px;
    background: #fff;
    border-radius: 32px;
    box-shadow: 0px 0px 8px 0px #0000001A;
    z-index: 10;
}

.pop_bg {
    content: '';
    visibility: hidden;
    position: fixed;
    top: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0);
    -webkit-transition: all .5s ease;
    transition: all .5s ease;
    z-index: 7;
}
.pop_bg.open {
    visibility: visible;
    cursor: pointer;
    background: rgba(0,0,0,.3);
}

.tooltip_box{
    position: relative;
    
}
.tooltip_box .js-tooltip{
    opacity: 0;
    position: absolute;
    bottom: 50px;
    padding: 20px;
    background: #fff;
    border-radius: 32px;
    box-shadow: 0px 0px 8px 0px #0000001A;
    z-index: 10;
    transition: .3s;
    pointer-events: none; /*この領域が被っても邪魔しない*/
}
.tooltip_box .js-tooltip.active{
    opacity: 1;
}
.important{
    justify-content: space-between;
    align-items: center;
    width: 100%;
    height: 60px;
    padding: 0 0 0;
    background: #474645;
    
}
.important .ttl{
    display: block;
    padding: 20px 25px 0 67px;
    margin: 0 15px 0 0;
    height: 100%;
    width: 220px;
    background: #DB0034 url(../img/common/icon_info_high.png) no-repeat center left 27px;
    background-size: 30px;
    color: #fff;
    font-size: 18px;
    font-weight: 700;
}
.important .info{
    flex-grow: 1;
    width: calc(100% - 235px);
}
.important a{
    padding: 10px 0;
    color: #fff;
    transition: .3s;
}
.important a:hover{
    color: #BA8B1F;
}

.important .date{
    display: inline-block;
    margin: 0 30px;
}
.important .more{
    display: block;
    width: 180px;
    height: 100%;
    padding: 15px 25px 0;
    background: #A88B7F;

}

.static .white_box{
    padding: 70px;
    margin: 100px auto;
    background: #fff;
}

.scroll_nav ul {
    display: flex;
    flex-wrap: wrap;
    gap: 15px;
    margin: 0;
    padding: 0;
    list-style: none; /* リストのスタイルをリセット */
}
.scroll_nav ul li a {
    display: flex;
    align-items: center;
    justify-content: center;
    white-space: nowrap; /* テキストを折り返さない */
    text-decoration: none;
}

.scroll_nav ul li a:hover {
    background-color: #867361;
    color: #fff; /* ホバー時のテキストカラーを白に */
}

.kome{
    text-indent: -1.5em;
    padding-left: 1.5em;
}
.kome:before{   
    content: "※ ";
}


@media screen and (max-width:767px) {
    
    .group{
        padding: 60px 0 80px;
    }
    .white_box{
        padding: 30px 5%;
    }
    .important{
        height: 70px;
    }
    .important .ttl{
        padding: 25px 10px 0 53px;
        width: 150px;
        background: #DB0034 url(../img/common/icon_info_high.png) no-repeat center left 15px;
        background-size: 30px;
    }
    .important .ttl span{
        display: none;
    }
    .important .info{
        width: calc(100% - 165px);
        padding: 0 40px 0 0;
    }
    .important .date{
        display: block;
        margin: 0;
    }
    .static .white_box{
        padding: 0px;
        margin: 60px auto;
    }
    

    
    .scroll_nav {
        background-color: transparent; /* 背景を透明に */
        overflow-x: auto; /* 横スクロールを有効に */
        overflow-y: hidden; /* 縦スクロールを無効に */
        scrollbar-width: none; /* Firefoxでスクロールバーを非表示に */
    }
    .scroll_nav::-webkit-scrollbar {
        display: none; /* Webkitベースのブラウザでスクロールバーを非表示に */
    }
    .scroll_nav ul {
        width: max-content;
        margin: 0 0 0 20px;
    }
    

    
}

/*---------------------------------

  aside

---------------------------------*/
.aside{
    padding: 110px 0 100px;
}
.aside .inner{
    max-width: 1190px;
}

.aside .handmade_nav .img{
    position: relative;
    width: 67%;
    max-width: 800px;
    height: 450px;
    background: url(../img/common/handmade_info_bg.png) , rgba(168, 139, 127, .38);
    background-size: cover;
    
    text-align: center;
}
.aside .handmade_nav .img::before{
    content: '';
    position: absolute;
    top: 60px;
    left: 46px;
    display: block;
    width: 105px;
    height: 210px;
    background: url(../img/common/handmade_info_img_01.png) no-repeat top left 18px, url(../img/common/handmade_info_img_02.png) no-repeat bottom right;
    background-size: 92px, 105px;
}
.aside .handmade_nav .img::after{
    content: '';
    position: absolute;
    top: 60px;
    right: 48px;
    display: block;
    width: 115px;
    height: 210px;
    background: url(../img/common/handmade_info_img_03.png) no-repeat top right, url(../img/common/handmade_info_img_04.png) no-repeat bottom right 40px;
    background-size: 94px, 74px;
}
.aside .handmade_nav .img .ttl{
    width: 400px;
    margin: 95px auto 40px;
    color: #fff;
    font-size: 52px;
    font-weight: 500;
}
.aside .handmade_nav .img .ttl .en{
    display: block;
    margin:  0 0 20px;
    font-style: normal;
    line-height: 60px;
}
.aside .handmade_nav .img .ttl .jp{
    display: block;
    width: 372px;
    height: 48px;
    margin: auto;
    background: #C1EAEA;
    border-radius: 24px;
    color: #867361;
    font-size: 28px;
    font-weight: 700;
    line-height: 46px;
}
.aside .handmade_nav .img .txt{
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    font-family:  "Zen Maru Gothic", serif;
}

.aside .handmade_nav .list{
    gap: 1px;
    width: 33%;
    max-width: 390px;
}
.aside .handmade_nav .list li{
    position: relative;
    width: 100%;
    height: 33.3%;
    border-left: 1px solid #fff; 
}
.aside .handmade_nav .list li a{
    position: relative;
    display: block;
    width: 100%;
    height: 100%;
    padding: 62px 0 0 90px;
    background: rgba(134, 115, 97, 1);
    color: #fff;
    font-size: 18px;
    font-weight: 700;
    font-family:  "Zen Maru Gothic", serif;
}
.aside .handmade_nav .list li a:hover{
    background: rgba(134, 115, 97, .8);
}
.aside .handmade_nav .list li:first-child a{
    padding: 50px 0 0 90px;
}
.aside .handmade_nav .list li a::before{
    content: '';
    position: absolute;
    top: calc(50% - 30px);
    left: 15px;
    display: block;
    width: 60px;
    height: 60px;
    background: #fff url(../img/handmade_info/recipe.png) no-repeat;
    background-size: 60px;
    border-radius: 50%;
    z-index: 1;
}
.aside .handmade_nav .list li:nth-child(2) a::before{
    background: #fff url(../img/handmade_info/faq.png) no-repeat;
    background-size: 60px;
}
.aside .handmade_nav .list li a.arrow_r::after{
    border-color: #fff;
}
    
.aside .services_nav{
    margin-top: 130px;
}

.aside .services_nav .ttl{
    position: relative;
    width: fit-content;
    margin: auto;
    color: #867361;
    font-size: 36px;
    font-style: normal;
    font-weight: 700;
    text-align: center;
}
.aside .services_nav .ttl::before{
    content: '';
    position: absolute;
    right: 100%;
    top: 20px;
    display: block;
    width: 93px;
    height: 9px;
    margin: 0 50px 0 0;
    background: url(../img/common/title_hr_l.png) no-repeat;
    background-size: 93px;
}
.aside .services_nav .ttl::after{
    content: '';
    position: absolute;
    left: 100%;
    top: 20px;
    display: block;
    width: 93px;
    height: 9px;
    margin: 0 0 0 50px;
    background: url(../img/common/title_hr_r.png) no-repeat;
    background-size: 93px;
}
.aside .service_list{
    gap: 30px 4%;
    margin: 75px 0 0;
}
.aside .service_list li{
    width: 22%;
}
.aside .service_list2{
    gap: 2%;
    padding: 40px;
    margin: 50px 0 0;
    background: #fff;
    border-radius: 10px;
}
.aside .service_list2 li{
    width: 23.5%;
}

@media screen and (max-width:767px) {
    .aside{
        
    }
    .aside .handmade_nav .img{
        width: 100%;
        max-width: 390px;
        padding: 0 0 30px;
        margin: auto;
        height: auto;
    }
    .aside .handmade_nav .img::before{
        content: '';
        position: absolute;
        top: 10px;
        left: 8px;
        display: block;
        width: 54px;
        height: 160px;
        background: url(../img/common/handmade_info_img_01.png) no-repeat top left 8px, url(../img/common/handmade_info_img_02.png) no-repeat bottom right;
        background-size: 46px, 53px;
    }
    .aside .handmade_nav .img::after{
        content: '';
        position: absolute;
        top: 10px;
        right: 8px;
        display: block;
        width: 65px;
        height: 160px;
        background: url(../img/common/handmade_info_img_03.png) no-repeat top right, url(../img/common/handmade_info_img_04.png) no-repeat bottom right 25px;
        background-size: 47px, 36px;
    }
    .aside .handmade_nav .img .ttl{
        width: inherit;
        margin: 47px auto 20px;
        font-size: 32px;
    }
    .aside .handmade_nav .img .ttl .en{
        margin:  0 0 18px;
        line-height: 36px;
    }
    .aside .handmade_nav .img .ttl .jp{
        width: 212px;
        height: 34px;
        
        font-size: 18px;
        line-height: 30px;
    }
    .aside .handmade_nav .img .txt{
        width: 286px;
        margin: auto;
        font-size: 13px;
    }    

    .aside .handmade_nav .list{
        gap: 1px;
        width: 100%;
        max-width: 390px;
        margin: auto;
    }
    .aside .handmade_nav .list li{
        position: relative;
        width: 100%;
        height: 90px;
        border-left: none; 
    }
    .aside .handmade_nav .list li a,
    .aside .handmade_nav .list li:first-child a{
        padding: 32px 0 0 100px;
        font-size: 16px;
    }
    
    .aside .services_nav .ttl{
        position: relative;
        width: fit-content;
        margin: auto;
        color: #A88B7F;
        font-size: 28px;
        font-style: normal;
        font-weight: 700;
        text-align: center;
    }
    .aside .services_nav .ttl::before{
        content: '';
        position: absolute;
        right: 100%;
        top: 20px;
        display: block;
        width: 93px;
        height: 9px;
        margin: 0 30px 0 0;
        background: url(../img/common/title_hr_l.png) no-repeat;
        background-size: 93px;
    }
    .aside .services_nav .ttl::after{
        content: '';
        position: absolute;
        left: 100%;
        top: 20px;
        display: block;
        width: 93px;
        height: 9px;
        margin: 0 0 0 30px;
        background: url(../img/common/title_hr_r.png) no-repeat;
        background-size: 93px;
    }
    .aside .service_list{
        justify-content: center;
        gap: 15px 4%;
        margin: 75px 0 0;
    }
    .aside .service_list li{
        width: 48%;
        max-width: 260px;
    }
    .aside .service_list2{
        justify-content: center;
        gap: 15px 2%;
        padding: 20px;
        margin: 50px 0 0;
    }
    .aside .service_list2 li{
        width: 48%;
        max-width: 260px;
    }

}


/*---------------------------------

  フッダー

---------------------------------*/

.footer{
    position: sticky;
    top: 100vh;
    width: 100%;
    background: #fff;
}
.footer .fnav{
    justify-content: center;
    gap: 0 5vw;
    width: 72%;
    padding: 80px 0;
    background: #EAE5DF;
    font-size: 16px;
    font-weight: 700;
}
.footer .fnav li{
    margin: 0 0 15px;
}
.footer > div{
    padding: 80px 3vw;
}
.footer > div dl{
    line-height: 1.7;
}
.footer > div dt{
    margin: 0 0 15px;
    font-size: 16px;
    font-weight: 700;
}
.footer > div .logo_shop{
    width: 150px;
    margin: 45px 0 0;
}

@media screen and (max-width:1023px){
    .footer .fnav{
        justify-content: center;
        gap: 0 20px;
        width: 72%;
        padding: 80px 0;
        background: #EAE5DF;
    }
}
@media screen and (max-width:767px){
    .footer{
        
    }
    .footer::before{
        content: '';
        position: absolute;
        top: -20px;
        left: 0;
        display: block;
        width: 100%;
        height: 200px;
        background: url(../img/common/footer_wave_top.svg) repeat-x top;
        z-index: -1;
    }
    .footer > div dt{
        padding: 5px 20px;
        background: #EAE5DF;
        border-radius: 20px;
    }
    .footer > div dd::before{
        content: '・';
        display: inline-block;
        margin: 0 0 0 5px;
    }
    .footer .fnav{
        display: none;
    }
    .footer > div .logo_shop{
        width: 150px;
        margin: 45px 0 0 15px;
    }
    
}


/*---------------------------------

  その他

---------------------------------*/

#err404 .btn{
    margin: 50px auto 0;
}

/* utility
--------------------------------------------------------------*/

.bg-black {
    background: #333;
}

.bg-gray {
    background: #8D8D8D;
}
.bg-green {
    background: #0C7947;
}
.ta-center {
    text-align: center;
}
.px12 {
    font-size: 12px;
}
.px18 {
    font-size: 18px;
}
.fw-light {
   font-weight: 300; 
}
.fw-bold {
   font-weight: 700; 
}
.fw-black {
   font-weight: 900; 
}
.mt10 {
    margin-top: 10px;
}
.mt50 {
    margin-top: 50px;
}
.mb10 {
    margin-bottom: 10px;
}
.mb50 {
    margin-bottom: 50px;
}
.mb80 {
    margin-bottom: 80px;
}
.mb100 {
    margin-bottom: 100px;
}
.ml10 {
    margin-left: 10px;
}
.mr10 {
    margin-right: 10px;
}
