@charset "UTF-8";

body {
    margin: 0;
    padding: 0;
    font-family: eb-garamond, serif;
    font-weight: 400;
    font-style: normal;
    line-height: 1.7;
    letter-spacing: 0;
    font-size: 12px;
    background: #EBE9E4;
    color: #000;
}

a {
    color: #000;
    transition: all .25s ease-out;
}

.italic {
    font-weight: 400;
    font-style: italic;
}

.medium {
    font-weight: 500;
    font-style: normal;
}

.jp {
    font-family: serif;
}

.flex-center {
    display: flex;
    align-items: center;
    justify-content: center;
}

.bg-gray {
    background: #F8F8F8;
}

.text-center {
    text-align: center;
}

.text-right {
    text-align: right;
}

.text-gray {
    color: #bbb!important;
}

.text-black {
    color: #000!important;
}

.mx900 {
    max-width: 900px!important;
    margin-left: auto;
    margin-right: auto;
}

.mx600 {
    max-width: 600px!important;
    margin-left: auto;
    margin-right: auto;
}

.pt10 {
    padding-top: 10px!important;
}

.pt20 {
    padding-top: 20px!important;
}

.pt30 {
    padding-top: 30px!important;
}

.pt40 {
    padding-top: 40px!important;
}

.pt50 {
    padding-top: 50px!important;
}

.pt60 {
    padding-top: 60px!important;
}

.pt70 {
    padding-top: 70px!important;
}

.pt80 {
    padding-top: 80px!important;
}

.pt90 {
    padding-top: 90px!important;
}

.pt100 {
    padding-top: 100px!important;
}

.pt120 {
    padding-top: 120px!important;
}

.pb10 {
    padding-bottom: 10px!important;
}

.pb20 {
    padding-bottom: 20px!important;
}

.pb30 {
    padding-bottom: 30px!important;
}

.pb40 {
    padding-bottom: 40px!important;
}

.pb50 {
    padding-bottom: 50px!important;
}

.pb60 {
    padding-bottom: 60px!important;
}

.pb70 {
    padding-bottom: 70px!important;
}

.pb80 {
    padding-bottom: 80px!important;
}

.pb90 {
    padding-bottom: 90px!important;
}

.pb100 {
    padding-bottom: 100px!important;
}

.pb120 {
    padding-bottom: 120px!important;
}

.mt10 {
    margin-top: 10px!important;
}

.mt20 {
    margin-top: 20px!important;
}

.mt30 {
    margin-top: 30px!important;
}

.mt40 {
    margin-top: 40px!important;
}

.mt50 {
    margin-top: 50px!important;
}

.mt60 {
    margin-top: 60px!important;
}

.mt70 {
    margin-top: 70px!important;
}

.mt80 {
    margin-top: 80px!important;
}

.mt90 {
    margin-top: 90px!important;
}

.mt100 {
    margin-top: 100px!important;
}

.mt120 {
    margin-top: 120px!important;
}

.mb10 {
    margin-bottom: 10px!important;
}

.mb20 {
    margin-bottom: 20px!important;
}

.mb30 {
    margin-bottom: 30px!important;
}

.mb40 {
    margin-bottom: 40px!important;
}

.mb50 {
    margin-bottom: 50px!important;
}

.mb60 {
    margin-bottom: 60px!important;
}

.mb70 {
    margin-bottom: 70px!important;
}

.mb80 {
    margin-bottom: 80px!important;
}

.mb90 {
    margin-bottom: 90px!important;
}

.mb100 {
    margin-bottom: 100px!important;
}

.mb120 {
    margin-bottom: 120px!important;
}

.fs12 {
    font-size: 12px!important;
}

.fs13 {
    font-size: 13px!important;
}

.fs14 {
    font-size: 14px!important;
}

.fs15 {
    font-size: 15px!important;
}

.fs16 {
    font-size: 16px!important;
}

.fs18 {
    font-size: 18px!important;
}

.fs20 {
    font-size: 20px!important;
}

.fs22 {
    font-size: 22px!important;
}

.fs26 {
    font-size: 26px!important;
}

.fs28 {
    font-size: 28px!important;
}

.fs30 {
    font-size: 30px!important;
}

@media only screen and (max-width: 767px) {
    
    .is-pc {
        display: none;
    }

    .pt20 {
        padding-top: 15px!important;
    }

    .pt30 {
        padding-top: 20px!important;
    }

    .pt40 {
        padding-top: 25px!important;
    }

    .pt50 {
        padding-top: 30px!important;
    }

    .pt60 {
        padding-top: 35px!important;
    }

    .pt70 {
        padding-top: 40px!important;
    }

    .pt80 {
        padding-top: 50px!important;
    }

    .pt90 {
        padding-top: 60px!important;
    }

    .pt100 {
        padding-top: 70px!important;
    }

    .pt120 {
        padding-top: 80px!important;
    }

    .pb20 {
        padding-bottom: 15px!important;
    }

    .pb30 {
        padding-bottom: 20px!important;
    }

    .pb40 {
        padding-bottom: 25px!important;
    }

    .pb50 {
        padding-bottom: 30px!important;
    }

    .pb60 {
        padding-bottom: 35px!important;
    }

    .pb70 {
        padding-bottom: 40px!important;
    }

    .pb80 {
        padding-bottom: 50px!important;
    }

    .pb90 {
        padding-bottom: 60px!important;
    }

    .pb100 {
        padding-bottom: 70px!important;
    }

    .pb120 {
        padding-bottom: 80px!important;
    }

    .mt20 {
        margin-top: 15px!important;
    }

    .mt30 {
        margin-top: 20px!important;
    }

    .mt40 {
        margin-top: 25px!important;
    }

    .mt50 {
        margin-top: 30px!important;
    }

    .mt60 {
        margin-top: 35px!important;
    }

    .mt70 {
        margin-top: 40px!important;
    }

    .mt80 {
        margin-top: 50px!important;
    }

    .mt90 {
        margin-top: 60px!important;
    }

    .mt100 {
        margin-top: 70px!important;
    }

    .mt120 {
        margin-top: 80px!important;
    }

    .mb20 {
        margin-bottom: 15px!important;
    }

    .mb30 {
        margin-bottom: 20px!important;
    }

    .mb40 {
        margin-bottom: 25px!important;
    }

    .mb50 {
        margin-bottom: 30px!important;
    }

    .mb60 {
        margin-bottom: 35px!important;
    }

    .mb70 {
        margin-bottom: 45px!important;
    }

    .mb80 {
        margin-bottom: 50px!important;
    }

    .mb90 {
        margin-bottom: 60px!important;
    }

    .mb100 {
        margin-bottom: 70px!important;
    }

    .mb120 {
        margin-bottom: 80px!important;
    }

    .fs12 {
        font-size: 11px!important;
    }

    .fs13 {
        font-size: 12px!important;
    }

    .fs14 {
        font-size: 13px!important;
    }

    .fs15 {
        font-size: 14px!important;
    }

    .fs16 {
        font-size: 15px!important;
    }

    .fs18 {
        font-size: 16px!important;
    }

    .fs20 {
        font-size: 17px!important;
    }

    .fs22 {
        font-size: 18px!important;
    }

    .fs26 {
        font-size: 22px!important;
    }

    .fs28 {
        font-size: 24px!important;
    }

    .fs30 {
        font-size: 24px!important;
    }

}

@media screen and (min-width: 768px) {

    body {
        font-size: 15px;
    }

    .is-sp {
        display: none;
    }

}

@media screen and (min-width: 1000px) {
    
    .br1000 {
        display: none;
    }
    
}

/* common */

body, html {
    overflow-y: auto;
}

body.open, html.open {
    overflow: hidden;
}

#wrapper {
    position: relative;
}

.pop-up {
    z-index: 10;
}

.header {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: 146px;
    z-index: 2;
}

.header h1 {
    width: 220px;
    margin-left: 38px;
}



.menu-btn, .btn-close-modal {
    width: 60px;
    height: 60px;
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    cursor: pointer;
    position: fixed;
    top: 20px;
    right: 30px;
}

.menu-inner, .btn-close-inner {
    position: relative;
    width: 100%;
    height: 6px;
}

.menu-btn span, .btn-close-inner span {
    display: block;
    background: #000;
    width: 100%;
    height: 1px;
    position: absolute;
    top: 50%;
    left: 0;
    transition: all .2s ease-out;
}

.menu-btn span:first-child, .modal-wrap .btn-close-inner span:first-child {
    transform: translateY(-2px);
}

.menu-btn span:last-child, .modal-wrap .btn-close-inner span:last-child {
    transform: translateY(2px);
}

.header.open .menu-btn span {
    background: #fff;
}

.header.open .menu-btn span:first-child, .modal-wrap.open .btn-close-inner span:first-child {
    transform: translateY(0) rotate(45deg);
}

.header.open .menu-btn span:last-child, .modal-wrap.open .btn-close-inner span:last-child {
    transform: translateY(0) rotate(-45deg);
}


.nav-wrap {
    width: 100%;
    height: 0;
    position: fixed;
    left: 0;
    top: 0;
    overflow: hidden;
    background: #1F1F1F;
    transition: all .2s ease-out;
}

.header.open .nav-wrap {
    height: calc(var(--vh, 1vh) * 100);
}

.nav-inner {
    width: 100%;
    height: calc(var(--vh, 1vh) * 100);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
}

.nav-inner ul {
    width: 72%;
    max-width: 446px;
}

.nav-inner a:hover {
    opacity: .6;
}

#contents {
    padding-top: 146px;
}

@media only screen and (max-width: 767px) {

    .header {
        height: 80px;
    }

    .header h1 {
        width: 118px;
        margin-left: 20px;
    }

    .menu-btn, .btn-close-modal {
        width: 38px;
        height: 38px;
        top: 10px;
        right: 16px;
    }

    .menu-inner, .btn-close-inner {
        height: 6px;
    }

    #contents {
        padding-top: 0;
    }

}

.counter {
    font-size: 164px;
    letter-spacing: -0.05em;
    color: #1F1F1F;
    font-family: ambroise-std, serif;
    font-weight: 300;
    font-style: normal;
    transform: translateY(-10%);
}

#bg-loading {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: calc(var(--vh, 1vh) * 100);
    background: #EBE9E4;
    z-index: 10;
    display: flex;
    justify-content: center;
    align-items: center;
}

#b-number {
    background: #1F1F1F;
    overflow: hidden;
    position: fixed;
    left: 0;
    bottom: 0;
    z-index: 3;
    width: 100%;
    display: flex;
    text-align: right;
}

#b-number p {
    color: #EBE9E4;
    font-family: ambroise-std, serif;
    font-weight: 300;
    font-style: normal;
    line-height: 2.5;
    white-space: nowrap;
    padding-left: 20px;
    letter-spacing: 0.06em;
    font-size: 12px;
    animation :flowing05 5500s linear infinite;
    transform: translateX(-100%);
}

@keyframes flowing05 {
    100% { 
        transform: translateX(-200%)
    }
}

@media only screen and (max-width: 767px) {
    

    #b-number p {
        animation :flowing05 7000s linear infinite;
    }
    
    .counter {
        font-size: 100px;
    }

}



.swiper-container-free-mode > .swiper-wrapper {
    transition-timing-function: linear!important;
}

.item-wrap {
    display: flex;
    flex-wrap: wrap;
}

.item-inner {
    width: 50%;
    padding: 0 0.65%;
    cursor: pointer;
    transition: all .25s ease-out;
}

.full .item-inner {
    width: 100%;
}

.item-inner:hover {
    opacity: .8;
}

.item-inner p {
    font-size: 12px;
    padding-top: 7px;
    line-height: 1.4;
}

#slide .swiper-slide {
    width: calc(116vh - 210px);
}

#slide .swiper-slide.full {
    width: calc(92vh - 210px);
}

#slide {
    position: relative;
}

.txt-scroll {
    position: absolute;
    width: 88px;
    right: 32px;
    top: -38px;
}

@media only screen and (min-width: 768px) {
    
    #slide .swiper-slide {
        min-width: 486px;
    }

    #slide .swiper-slide.full {
        min-width: 342px;
    }
    
}


@media only screen and (max-width: 767px) {
    
    #slide {
        padding-top: 80px;
        height: calc(var(--vh, 1vh) * 100);
    }
    
    .swiper-container {
        height: 100%;
        padding-top: 80px;
    }
    
    .item-wrap {
        display: flex;
        flex-wrap: wrap;
    }

    .item-inner {
        width: 50%;
        cursor: pointer;
        transition: all .25s ease-out;
    }

    .item-inner:first-child {
        padding: 0 0.7% 0 0;
    }

    .item-inner:last-child {
        padding: 0 0 0 0.7%;
    }
    
    .full .item-inner {
        padding: 0;
    }

    .item-inner.full {
        width: 100%;
    }

    .item-inner:hover {
        opacity: .8;
    }

    .item-inner p {
        font-size: 10px;
        padding-top: 6px;
        padding-left: 8px;
    }
    
    #slide .swiper-slide {
        width: 100%;
        height: calc(123vw - 120px);
    }

    #slide .swiper-slide.full {
        width: 100%;
        height: calc(116vw - 120px);
    }

}

.modal-wrap {
    position: fixed;
    left: 0;
    top: 0;
    width: 100%;
    height: calc(var(--vh, 1vh) * 100);
    background: #EBE9E4;
    z-index: 4;
    overflow-y: auto;
}

.credit {
    display: block;
}

.p-name {
    font-size: 178%;
    line-height: 1;
}

.p-price {
    font-size: 164%;
    line-height: 1.5;
    padding-top: 3px;
    padding-bottom: 8px;
}

.p-detail {
    line-height: 1.25;
}

.btn-buy {
    font-size: 136%;
    line-height: 1;
    border-bottom: 1px solid #000;
    transform: translateX(0);
    padding-top: 16px;
    display: inline-block;
}

.modal-txt a:hover {
    opacity: .6;
}

.modal-img {
    width: 40%;
    padding: 70px 0 70px 5.7%;
}

.modal-img img {
    padding-bottom: 8px;
}

.modal-txt {
    position: fixed;
    right: 30%;
    top: 50%;
    transform: translate(50%, -50%);
}


@media only screen and (max-width: 767px) {
    
    .modal-content {
        padding-left: 6.5%;
        padding-right: 6.5%;
        overflow: hidden;
    }

    
    .btn-close-modal {
        position: absolute;
    }
    
    .p-name {
        font-size: 178%;
        line-height: 1;
    }

    .p-price {
        font-size: 164%;
        line-height: 1.5;
        padding-top: 2px;
        padding-bottom: 7px;
    }

    .p-detail {
        line-height: 1.25;
    }

    .btn-buy {
        font-size: 136%;
        margin-bottom: 50px;
    }

    .btn-buy:hover {
        opacity: .5;
    }

    .modal-img {
        width: 100%;
        padding: 80px 0 6px 0;
    }

    .modal-img img {
        padding-bottom: 5px;
    }

    .modal-txt {
        position: static;
        right: auto;
        top: auto;
        transform: translate(0);
        margin-top: 4px;
        margin-bottom: 80px;
    }

}


/* concept */

.concept-txt span {
    display: block;
    height: 1.2em;
}

.en {
    line-height: 1.6;
}

.jp {
    line-height: 1.9;
}

@media only screen and (min-width: 768px) {
    
    .concept-wrap {
        display: flex;
        flex-wrap: wrap;
        padding-bottom: 180px;
    }
    
    .concept-txt {
        width: 50%;
        padding-left: 10%;
        padding-right: 8%;
        display: flex;
        flex-direction: column;
        justify-content: space-between;
    }
    
    .concept-img {
        width: 50%;
        padding-right: 12.5%;
    }
    
    .concept-tit {
        margin: 160px 0 30px 10%;
    }
   
    .concept-tit {
        width: 230px;
    }
    
    .en {
        font-size: 17px;
        margin-bottom: 40px;
    }
    
    .jp {
        font-size: 14px;
    }
    
}

@media only screen and (max-width: 767px) {
    
    .concept #contents {
        padding-top: 120px;
    }
        
    .concept-wrap {
        padding-bottom: 140px;
    }

    .concept-txt {
        padding-left: 9.2%;
        padding-right: 9.2%;
    }
    
    .concept-txt .is-sp {
        padding-left: 8%;
        padding-right: 8%;
    }


    .concept-tit {
        margin: 120px 0 28px 9.2%;
    }


    .concept-tit {
        width: 146px;
    }

    .en {
        font-size: 13px;
        margin-bottom: 50px;
    }
    
    .jp {
        font-size: 12px;
        margin-top: 50px;
    }
    
}