@charset "utf-8";

html {
    background: #fff;
    font-size: 62.5%;
    width: 100%;
    height: 100%
}

body {
    color: #161616;
    font-family: 'Noto Sans JP', "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    -webkit-text-size-adjust: 100%;
    -webkit-print-color-adjust: exact;
    font-size: 1.4rem;
    font-weight: 400;
    line-height: 1.71;
    letter-spacing: .05em;
    word-wrap: break-word
}

@media print,only screen and (min-width: 961px) {
    body {
        font-size:1.5rem;
        line-height: 1.87;
        letter-spacing: .05em
    }
}

/*
------------------------------------------------------------
components
------------------------------------------------------------
*/

.button {
    -webkit-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    background: #f25142;
    display: block;
    width: 100%;
    text-align: center;
    color: #fff;
    text-decoration: none;
    box-shadow: 0 0 4px 0 rgba(0,0,0,.24);
    margin: 0 auto;
    border-radius: 4.4rem;
    box-sizing: border-box;
    -webkit-transform: translate(0,0);
    -ms-transform: translate(0,0);
    transform: translate(0,0);
    max-width: 28rem;
    padding: 1.5rem .4rem
}

@media print,only screen and (min-width: 961px) {
    .button {
        padding:1.1rem .4rem;
        max-width: 18.4rem
    }
}

@media print,only screen and (min-width: 961px) {
    .button:hover {
        box-shadow:none;
        -webkit-transform: translate(1px,1px);
        -ms-transform: translate(1px,1px);
        transform: translate(1px,1px)
    }
}

.button.button--trans {
    background: #4cc7b5;
    font-weight: 700;
    width: 100%;
    max-width: 32rem
}

.button.button--action {
    background: #f25142;
    font-weight: 700;
    width: 100%;
    max-width: 32rem
}

.button-action {
    font-weight: 700;
    font-size: 1.6rem;
    letter-spacing: .04em;
    max-width: 28rem;
    width: 100%
}

.button--shop {
    font-family: Ubuntu,sans-serif;
    letter-spacing: .04em;
    font-weight: 500;
    font-size: 1.7rem;
    line-height: 1.12
}

@media print,only screen and (min-width: 961px) {
    .button--shop {
        font-size:1.6rem;
        line-height: 1.38
    }
}

.button--shop span {
    display: inline-block;
    background: url(../svg/icon_shop.svg) no-repeat scroll 0 50%;
    background-size: 2rem 1.7rem;
    padding: 0 0 0 2.8rem
}

@media print,only screen and (min-width: 961px) {
    .button--shop span {
        background-size:1.9rem 1.6rem;
        padding: 0 0 0 2.8rem
    }
}

.button--official {
    background: #4cc7b5;
    max-width: 28rem;
    font-weight: 700
}

@media only screen and (max-width: 960px) {
    .button--official {
        font-size:1.2rem;
        letter-spacing: .04em;
        padding: .6rem .4rem
    }
}

@media print,only screen and (min-width: 961px) {
    .button--official {
        padding:1.2rem .4rem
    }
}

.button--online-shop {
    max-width: 28rem;
    font-weight: 700;
    letter-spacing: .01em
}

@media only screen and (max-width: 960px) {
    .button--online-shop {
        font-size:1.2rem;
        letter-spacing: .04em;
        padding: .6rem 0
    }
}

@media print,only screen and (min-width: 961px) {
    .button--online-shop {
        padding:1.2rem 0
    }
}

.button--online-shop span {
    display: inline-block;
    background: url(../svg/icon_shop.svg) no-repeat scroll 0 50%;
    background-size: 1.7rem 1.4rem;
    padding: 0 0 0 2.1rem
}

@media print,only screen and (min-width: 961px) {
    .button--online-shop span {
        background-size:1.9rem 1.6rem;
        padding: 0 0 0 2.8rem
    }
}

@media only screen and (max-width: 320px) {
    .button--online-shop span {
        padding-left:0;
        background: none
    }
}

.button-more {
    font-family: Ubuntu,sans-serif;
    font-weight: 700;
    font-size: 1.2rem;
    line-height: 1.13;
    color: #f8b329;
    letter-spacing: .02em;
    position: absolute;
    right: 1.2rem;
    bottom: .8rem
}

@media print,only screen and (min-width: 961px) {
    .button-more {
        line-height:1.33;
        right: 1.7rem;
        bottom: 1rem
    }
}

.button-more:after {
    -webkit-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: -1.6rem;
    bottom: 0;
    left: auto;
    margin: auto;
    background: #f8b329;
    width: 1.2rem;
    height: .2rem
}

@media print,only screen and (min-width: 961px) {
    .button-more:after {
        width:1.6rem;
        right: -2.1rem
    }
}

@media print,only screen and (min-width: 961px) {
    .button-trans:hover {
        box-shadow:none;
        -webkit-transform: translate(1px,1px);
        -ms-transform: translate(1px,1px);
        transform: translate(1px,1px)
    }
}

@media print,only screen and (min-width: 961px) {
    .button-trans:hover .button-more:after {
        width:.8rem;
        right: -1.3rem
    }
}

.button-read-more {
    display: block;
    box-sizing: border-box;
    padding: 1.2rem .4rem;
    max-width: 16.6rem;
    border-radius: 8.8rem;
    width: 100%;
    margin: 0 auto;
    text-decoration: none;
    text-align: center;
    color: #4cc7b5;
    border: #4cc7b5 solid 1px;
    font-weight: 700;
    font-size: 1.2rem;
    letter-spacing: .07em;
    line-height: 1.5
}

.button-read-more.button-read-more-primary {
    border-color: #ed5dc3;
    color: #ed5dc3
}

/*
------------------------------------------------------------
header
------------------------------------------------------------
*/

@media print, only screen and (min-width: 961px) {
    .header-nav {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }
}

.header-nav__button {
    width: 18.4rem;
    margin: 0 1.6rem 0 0;
}

@media print, only screen and (max-width: 1120px) {
    .header-nav__button {
        display: none;
    }
}

.header-icon {
    margin: 0;
    position: absolute;
    top: 1.1rem;
}

@media print, only screen and (min-width: 961px) {
    .header-icon {
        position: relative;
        top: inherit;
    }
}

.header-lang {
    height: 4rem;
    right: 7.6rem;
}

@media print, only screen and (min-width: 961px) {
    .header-lang {
        height: 4.4rem;
        right: inherit;
    }
}

.header-lang__button {
    width: 4rem;
    background: #fff;
    border-radius: 4rem;
    box-shadow: 0 0 4px 0 rgba(0,0,0,.2);
    display: block;
    height: 100%;
    position: relative;
    z-index: 2;
}


@media print, only screen and (min-width: 961px) {
    .header-lang__button {
        width: 4.4rem;
        border-radius: 4.4rem;
        box-shadow: 0 0 4px 0 rgba(0,0,0,.24);
    }
}

.header-lang__icon {
    -webkit-transition: opacity .2s ease-out;
    transition: opacity .2s ease-out;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    background: url(../svg/icon_lang-2.svg) no-repeat scroll 50% 50%;
    background-size: 2rem 2rem;
    display: block;
    width: 100%;
    height: 100%;
    position: relative;
}

@media print, only screen and (min-width: 961px) {
    .header-lang__icon {
        background-size: 2.2rem 2.2rem;
    }
}

.header-lang__button--close .header-lang__icon {
    background: none;
}

.header-lang__button--close .header-lang__icon:before {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    background: #60b9ac;
    width: 1.8rem;
    height: .2rem;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}

@media print, only screen and (min-width: 961px) {
    .header-lang__button--close .header-lang__icon:before {
        width: 2rem;
    }
}

.header-lang__button--close .header-lang__icon:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    margin: auto;
    background: #60b9ac;
    width: 1.8rem;
    height: .2rem;
    -webkit-transform: rotate(-45deg);
    -ms-transform: rotate(-45deg);
    transform: rotate(-45deg);
}

@media print, only screen and (min-width: 961px) {
    .header-lang__button--close .header-lang__icon:after {
        width: 2rem;
    }
}

.header-lang-menu {
    position: absolute;
    right: 0;
    top: 0;
    z-index: 1;
    height: 100%;
    border-radius: 4rem;
    background: #fafafa;
    box-shadow: 0 0 2px 0 rgba(0,0,0,.2);
    -webkit-transition: all .3s ease-in-out;
    transition: all .3s ease-in-out;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    -webkit-transform-origin: right 50%;
    -ms-transform-origin: right 50%;
    transform-origin: right 50%;
    -webkit-transform: translateX(0) scale(0,1);
    -ms-transform: translateX(0) scale(0,1);
    transform: translateX(0) scale(0,1);
    opacity: 0;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=0)";
    z-index: -1;
    visibility: hidden;
    width: 4rem;
}

@media print, only screen and (min-width: 961px) {
    .header-lang-menu {
        border-radius: 4.4rem;
        width: 4.4rem;
    }
}

.header-lang-menu.header-lang-menu--active {
    -webkit-transform: translateX(0) scale(1,1);
    -ms-transform: translateX(0) scale(1,1);
    transform: translateX(0) scale(1,1);
    opacity: 1;
    -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=100)";
    z-index: 1;
    visibility: visible;
    width: 19.3rem;
}

@media print, only screen and (min-width: 961px) {
    .header-lang-menu.header-lang-menu--active {
        width: 22.7rem;
    }
}

.header-lang-list {
    list-style: none;
    margin: 0;
    padding: 0;
    box-sizing: border-box;
    width: 100%;
    height: 100%;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    padding: 0 0 0 1.5rem;
}

@media print, only screen and (min-width: 961px) {
    .header-lang-list {
        padding-left: 2.4rem;
    }
}

.header-lang-list__item {
    font-size: 1.3rem;
    letter-spacing: .03em;
    line-height: 1.28;
    position: relative;
    padding: 0 3.2rem 0 0;
}

@media print, only screen and (min-width: 961px) {
    .header-lang-list__item {
        padding: 0 3.9rem 0 0;
    }
}

.header-lang-list__item a {
    -webkit-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    color: #4f5253;
    text-decoration: none;
}

.header-lang-list__item .header-lang-ja {
    font-size: 1.3rem;
    letter-spacing: .04em;
    line-height: 1.38;
}

@media print, only screen and (min-width: 961px) {
    .header-lang-list__item .header-lang-ja {
        font-size: 1.4rem;
        letter-spacing: .04em;
        line-height: 1.29;
    }
}

.header-lang-list__item.header-lang-list__item--active a {
    font-weight: 700;
    color: #fc6504;
}

.header-lang-list__item:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 1.6rem;
    bottom: 0;
    left: auto;
    margin: auto;
    background: #ccc;
    width: .1rem;
    height: 1.6rem;
    -webkit-transform: rotate(45deg);
    -ms-transform: rotate(45deg);
    transform: rotate(45deg);
}

@media print, only screen and (min-width: 961px) {
    .header-lang-list__item:after {
        height: 2rem;
        right: 2rem;
    }
}

.header-lang-list__item .header-lang-en {
    font-family: Ubuntu,sans-serif;
    font-size: 1.4rem;
    letter-spacing: .04em;
    line-height: 1.29;
}

@media print, only screen and (min-width: 961px) {
    .header-lang-list__item .header-lang-en {
        font-size: 1.5rem;
        line-height: 1.2;
    }
}

/*
------------------------------------------------------------
footer
------------------------------------------------------------
*/

.footer {
    font-family: 'Noto Sans JP', "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", メイリオ, Meiryo, sans-serif;
}

.main {
    display: block;
    width: 100%;
    min-height: 100%;
    box-sizing: border-box;
    padding: 6.4rem 0 0
}

@media print,only screen and (min-width: 961px) {
    .main {
        padding:8.8rem 0 0
    }
}

.container {
    width: 100%;
    box-sizing: border-box;
    margin: 0 auto;
    padding: 0 5.87%
}

@media print,only screen and (min-width: 961px) {
    .container {
        max-width:116rem;
        padding: 0 2rem
    }
}

@media print,only screen and (min-width: 961px) {
    .container.container--small {
        max-width:78.8rem
    }
}

.footer {
    background: #333;
    padding: 0 0 2.4rem
}

@media print,only screen and (min-width: 961px) {
    .footer {
        padding-bottom:4.8rem
    }
}

.footer.footer--page {
    margin: 5.9rem 0 0
}

@media print,only screen and (min-width: 961px) {
    .footer.footer--page {
        margin:14.4rem 0 0
    }
}

@media only screen and (max-width: 960px) {
    .footer-container {
        padding:0
    }
}

.footer-nav {
    margin: 0 auto 3.2rem
}

@media print,only screen and (min-width: 961px) {
    .footer-nav {
        margin:0 auto 4.3rem;
        padding: 2.2rem 0;
        border-bottom: #575757 solid 1px;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
        flex-direction: row-reverse;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center
    }
}

.footer-nav__button {
    background: #3c3c3c;
    margin: 0;
    padding: 2rem 0
}

@media print,only screen and (min-width: 961px) {
    .footer-nav__button {
        background:none;
        padding: 0;
        width: 18.4rem
    }
}

.footer-menu {
    list-style: none;
    margin: 0;
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    border-top: #575757 solid 1px
}

@media print,only screen and (min-width: 961px) {
    .footer-menu {
        border:none;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap
    }
}

.footer-menu__item {
    width: 50%;
    box-sizing: border-box;
    border-right: #575757 solid 1px;
    border-bottom: #575757 solid 1px
}

@media print,only screen and (min-width: 961px) {
    .footer-menu__item {
        border:none;
        width: auto;
        margin: 0 4rem 0 0
    }
}

@media print,only screen and (min-width: 961px) {
    .footer-menu__item:last-child {
        margin-right:0
    }
}

.footer-menu__item a {
    color: #fff;
    text-decoration: none;
    font-size: 1.2rem;
    letter-spacing: .05em;
    line-height: 1.5;
    box-sizing: border-box;
    display: block;
    padding: 1.4rem .8rem 1.4rem 1.6rem
}

@media print,only screen and (min-width: 961px) {
    .footer-menu__item a {
        padding:0;
        font-weight: 500;
        font-size: 1.4rem;
        line-height: 1.71
    }
}

@media print,only screen and (min-width: 961px) {
    .footer-menu__item a:hover {
        text-decoration:underline
    }
}

@media print,only screen and (min-width: 961px) {
    .footer-contents {
        display:-webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-pack: justify;
        -ms-flex-pack: justify;
        justify-content: space-between;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: reverse;
        -ms-flex-direction: row-reverse;
        flex-direction: row-reverse
    }
}

.footer-sns {
    list-style: none;
    padding: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    margin: 0 0 3.2rem
}

@media print,only screen and (min-width: 961px) {
    .footer-sns {
        margin:0;
        -webkit-box-pack: end;
        -ms-flex-pack: end;
        justify-content: flex-end
    }
}

.footer-sns__item {
    margin: 0 .9rem
}

@media print,only screen and (min-width: 961px) {
    .footer-sns__item {
        margin:0 .8rem
    }
}

@media print,only screen and (min-width: 961px) {
    .footer-sns__item:last-child {
        margin-right:0
    }
}

.footer-sns__item a {
    -webkit-transition: all .2s ease-in-out;
    transition: all .2s ease-in-out;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    display: block;
    background: #fff;
    border-radius: 4.4rem;
    box-shadow: 0 0 4px 0 rgba(0,0,0,.24);
    -webkit-transform: translate(0,0);
    -ms-transform: translate(0,0);
    transform: translate(0,0);
    width: 4.4rem;
    height: 4.4rem
}

@media print,only screen and (min-width: 961px) {
    .footer-sns__item a {
        width:5.2rem;
        height: 5.2rem
    }
}

@media print,only screen and (min-width: 961px) {
    .footer-sns__item a:hover {
        box-shadow:none;
        -webkit-transform: translate(1px,1px);
        -ms-transform: translate(1px,1px);
        transform: translate(1px,1px);
        background-position: 0 50%
    }
}

.footer-sns__item .sns-twitter {
    background: #fff url(../svg/icon_sns_twitter.svg) no-repeat scroll 0 50%;
    background-size: 4.4rem 4.4rem
}

@media print,only screen and (min-width: 961px) {
    .footer-sns__item .sns-twitter {
        background-size:5.2rem 5.2rem
    }
}

.footer-sns__item .sns-facebook {
    background: #fff url(../svg/icon_sns_facebook.svg) no-repeat scroll 0 50%;
    background-size: 4.4rem 4.4rem
}

@media print,only screen and (min-width: 961px) {
    .footer-sns__item .sns-facebook {
        background-size:5.2rem 5.2rem
    }
}

.footer-sns__item .sns-instagram {
    background: #fff url(../svg/icon_sns_instagram.svg) no-repeat scroll 0 50%;
    background-size: 4.4rem 4.4rem
}

@media print,only screen and (min-width: 961px) {
    .footer-sns__item .sns-instagram {
        background-size:5.2rem 5.2rem
    }
}

.footer-sns__item .sns-youtube {
    background: #fff url(../svg/icon_sns_youtube.svg) no-repeat scroll 0 50%;
    background-size: 4.4rem 4.4rem
}

@media print,only screen and (min-width: 961px) {
    .footer-sns__item .sns-youtube {
        background-size:5.2rem 5.2rem
    }
}

.footer-lang {
    margin: 0 0 3.2rem;
    box-sizing: border-box;
    padding: 0 5.87%
}

@media print,only screen and (min-width: 961px) {
    .footer-lang {
        margin:0;
        padding: 0
    }
}

.footer-lang-list {
    background: #494949;
    border-radius: 6.4rem;
    list-style: none;
    margin: 0;
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    padding: .9rem 0
}

@media print,only screen and (min-width: 961px) {
    .footer-lang-list {
        padding:1.1rem 1.3rem
    }
}

.footer-lang-list__item {
    padding: 0 1.5rem;
    position: relative;
    font-size: 1.1rem;
    line-height: 1.36
}

@media print,only screen and (min-width: 961px) {
    .footer-lang-list__item {
        padding:0 2rem;
        font-size: 1.3rem;
        line-height: 1.38
    }
}

.footer-lang-list__item:after {
    content: "";
    display: block;
    position: absolute;
    top: 0;
    right: 0;
    bottom: 0;
    left: auto;
    margin: auto;
    width: .1rem;
    height: 1rem;
    background: #888
}

@media print,only screen and (min-width: 961px) {
    .footer-lang-list__item:after {
        height:1.4rem
    }
}

.footer-lang-list__item:last-child:after {
    display: none
}

.footer-lang-list__item a {
    display: inline-block;
    text-decoration: none;
    color: #fff;
    font-family: Ubuntu,sans-serif;
    color: #eee;
    letter-spacing: .04em;
    font-size: 1.1rem;
    line-height: 1.36
}

@media print,only screen and (min-width: 961px) {
    .footer-lang-list__item a {
        font-size:1.3rem;
        line-height: 1.38
    }
}

@media print,only screen and (min-width: 961px) {
    .footer-lang-list__item a:hover {
        text-decoration:underline
    }
}

.footer-address {
    text-align: center;
    font-size: 0;
    line-height: 0
}

@media print,only screen and (min-width: 961px) {
    .footer-address {
        text-align:left
    }
}

.footer-address__logo {
    margin: 0 auto
}

.footer-address__logo a {
    -webkit-transition: opacity .2s ease-out;
    transition: opacity .2s ease-out;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    display: inline-block
}

@media print,only screen and (min-width: 961px) {
    .footer-address__logo a:hover {
        opacity:.72;
        -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=72)"
    }
}

.footer-address__logo img {
    width: 13.7rem
}

.footer-address__text {
    margin: 1.2rem 0 0;
    font-size: 1rem;
    color: #fff;
    letter-spacing: .05em;
    line-height: 1.8
}

@media print,only screen and (min-width: 961px) {
    .footer-address__text {
        margin:.7rem 0 0;
        font-weight: 500;
        font-size: 1.1rem;
        letter-spacing: .03em;
        line-height: 1.64;
        padding: 0 .8rem 0 0
    }
}

.footer-copyright {
    font-family: Roboto Mono,monospace;
    font-weight: 400;
    font-size: .9rem;
    color: #ddd;
    letter-spacing: .07em;
    text-align: center;
    margin: 4rem auto 0
}

@media print,only screen and (min-width: 961px) {
    .footer-copyright {
        font-size:1.2rem;
        color: #eee;
        letter-spacing: .15em
    }
}

@media print,only screen and (min-width: 961px) and (max-width:1380px) {
    .footer-nav {
        -webkit-box-pack:end;
        -ms-flex-pack: end;
        justify-content: flex-end
    }

    .footer-nav__button {
        display: none
    }
}