html:not(.responsive) {
    width: 100%
}

body {
    font-family: "游ゴシック", YuGothic, "ヒラギノ角ゴ Pro", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", Osaka, "ＭＳ Ｐゴシック", "MS PGothic", sans-serif;
    font-size: 14px;
    background: #fff;
    color: #000;
    min-width: inherit;
    min-height: inherit;
    max-height: 100%;
    letter-spacing: .05em;
    line-height: 28px
}

.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-noto {
    font-family: "Noto Sans JP", sans-serif
}

main {
    clear: both;
    width: 100%;
    position: relative;
    overflow: hidden
}

.wrap {
    width: 1000px
}

#key {
    background-color: #000;
    background-repeat: no-repeat;
    background-position: center top;
    background-size: cover;
    min-height: 500px;
    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
}

footer .wrap nav {
    width: 620px;
    margin: auto;
    border-bottom: 1px solid #b9b9b9;
    padding: 40px 0 29px;
    letter-spacing: -0.1em
}

footer .wrap nav a {
    font-size: 16px
}

footer .wrap nav>a+a {
    margin-left: 65px;
    position: relative;
    padding: 0
}

footer .wrap nav>a+a::before {
    left: -33px;
    padding: 0;
    top: 0;
    position: absolute;
    content: "";
    width: 1px;
    bottom: 0;
    background: #000
}

#socialbuttons .fb-like>span {
    width: 100px !important
}

#socialbuttons .fb-like>span iframe {
    left: -15px
}

.copied,
.hs-copie {
    pointer-events: none
}

a:hover {
    text-decoration: none
}

.txt-vertical {
    cursor: vertical-text;
    writing-mode: vertical-rl;
    -o-writing-mode: vertical-rl;
    -ms-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    -moz-writing-mode: vertical-rl;
    -webkit-writing-mode: vertical-rl;
    text-orientation: upright;
    word-wrap: break-word
}

.d-flex {
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex
}

.btn-op a:hover {
    opacity: .8;
    text-decoration: none
}

.btn-info a {
    text-decoration: underline;
    transition: all .3s
}

.btn-info a:hover {
    opacity: .8
}

.wrap {
    box-sizing: border-box;
    padding: 0 5%;
    width: 100%;
    max-width: 1000px
}

* {
    box-sizing: border-box
}

.tac {
    text-align: center
}

.taj {
    text-align: justify
}

.tar {
    text-align: right
}

.ta {
    text-align: left
}

.db {
    display: block
}

.dib {
    display: inline-block
}

.txt-br {
    word-break: break-all
}

.txt-nowrap {
    white-space: nowrap
}

a.btn-info:hover {
    text-decoration: underline
}

.flexBox {
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    flex-wrap: wrap
}

@media all and (-ms-high-contrast: none),
(-ms-high-contrast: active) {

    .btn-over img,
    .over-img img,
    img.over,
    img:not(.btn):not(.non-over),
    button img {
        opacity: 1;
        transform: translateX(0) translateZ(0);
        -moz-transform: translateX(0) translateZ(0);
        -webkit-transform: translateX(0) translateZ(0);
        transition: none;
        -moz-transition: none;
        -webkit-transition: none
    }
}

@supports(-ms-accelerator: true) {

    .btn-over img,
    .over-img img,
    img.over,
    img:not(.btn):not(.non-over),
    button img {
        opacity: 1;
        transform: translateX(0) translateZ(0);
        -moz-transform: translateX(0) translateZ(0);
        -webkit-transform: translateX(0) translateZ(0);
        transition: none;
        -moz-transition: none;
        -webkit-transition: none
    }
}

.swiper-pagination {
    padding: 12px 0;
    position: static
}

.swiper-pagination .swiper-pagination-bullet {
    width: 18px;
    height: 18px;
    box-sizing: border-box;
    border: 2px solid #000;
    background-color: transparent;
    opacity: 1
}

.swiper-pagination .swiper-pagination-bullet-active {
    background: #000
}

.slick-dots li {
    line-height: 1
}

.slick-dots button {
    border: none;
    border-radius: 50%;
    background: transparent;
    background-position: center top;
    background-repeat: repeat;
    width: 13px;
    height: 13px;
    text-indent: -9999px;
    cursor: pointer;
    border: 1px solid #fff;
    box-sizing: border-box;
    margin: 4px 0
}

.slick-dots .slick-active button {
    background: #fff
}

.slick-dots {
    display: flex;
    flex-direction: column;
    position: absolute;
    bottom: 15px;
    right: 10px
}

@media screen and (-ms-high-contrast: active),
(-ms-high-contrast: none) {

    .btn-over img,
    .over-img img,
    img.over,
    img:not(.btn):not(.non-over),
    button img,
    .btn {
        opacity: 1;
        transform: none !important;
        -moz-transform: none !important;
        -webkit-transform: none !important;
        transition: opacity .3s ease;
        -moz-transition: opacity .3s ease;
        -webkit-transition: opacity .3s ease
    }

    .btn {
        transition: none !important;
        -moz-transition: none !important;
        -webkit-transition: none !important
    }

    .over-img img:hover,
    img.over:hover,
    a:hover img:not(.btn):not(.non-over),
    button:hover img {
        cursor: pointer;
        opacity: .8;
        transform: none !important;
        -moz-transform: none !important;
        -webkit-transform: none !important
    }

    .img-parallax img {
        height: auto !important
    }
}

body.navOpen,
body.navOpen *,
body.navOpen *:hover,
body.navOpen *:focus,
body.navOpen *:active {
    touch-action: none !important;
    pointer-events: none !important
}

body.navOpen .hamburger,
body.navOpen #navigation,
body.navOpen #navigation *,
body.navOpen #brandlist_menu * {
    touch-action: auto !important;
    pointer-events: visible !important
}

.navOpen {
    overflow: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: none !important;
    pointer-events: none !important
}

.navOpen #pagetop {
    opacity: 0
}

.img-parallax {
    clip: rect(0, auto, auto, 0);
    margin-bottom: 0;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0
}

.img-parallax img {
    width: 100%;
    height: 100vh;
    position: fixed;
    top: 0;
    left: 0;
    padding: 0;
    margin: 0;
    -o-object-fit: cover;
    object-fit: cover;
    z-index: 0;
    transform: translateZ(0)
}

.img-parallax.slide_par img {
    opacity: 0;
    transition: all 2s ease
}

.img-parallax.slide_par img.active {
    opacity: 1
}

.navOpen #navigation {
    opacity: 1;
    pointer-events: auto;
}

.pc {
    display: none;
}

.txt {
    font-weight: 500;
}

@media screen and (max-width: 767px) {
    img {
        width: 100%;
        height: auto
    }

    .txt {
        text-align: justify
    }

    .has_nav #pagetop {
        opacity: 1;
        visibility: visible
    }

    .navOpen #pagetop {
        opacity: 0;
        visibility: hidden
    }
}

#navigation {
    background: rgba(255, 255, 255, .92);
    padding: 80px 5% 100px;
    box-sizing: border-box;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 888;
    overflow: auto;
    opacity: 0;
    pointer-events: none;
    transition: opacity .5s ease 0s;
    text-align: center
}

#navigation .group img {
    height: auto;
    width: auto
}

#navigation .group .nav {
    text-align: left;
    margin-left: 30px
}

#navigation .group .nav li {
    margin-bottom: 10px
}

#navigation .group .nav li a {
    font-size: 20px;
    font-weight: 600;
    position: relative;
    letter-spacing: .1em
}

#navigation .group .nav li a::before {
    content: "";
    position: absolute;
    left: -25px;
    top: 50%;
    width: 20px;
    height: 2px;
    background-color: #000;
    opacity: 0
}

#navigation .group .nav li a:hover {
    text-decoration: none
}

#navigation .group .nav li a:hover::before {
    opacity: 1
}

#navigation .group .nav li .active::before {
    opacity: 1
}

#navigation .group .hd-tel li img {
    width: auto
}

#navigation .group .hd-tel .tel {
    line-height: 1.5;
    font-weight: 600;
    font-size: 5vw;
    letter-spacing: .1em
}

#navigation .group .hd-tel .tel span {
    font-weight: 500;
    font-size: 8vw;
    letter-spacing: .05em
}

#navigation .group .hd-tel .tel img {
    height: 25px
}

#navigation .group .hd-tel .btn_inquiry {
    padding: 6vw 3% 8vw
}

#navigation .group .hd-tel .btn_inquiry img {
    height: 20px
}

#navigation .group .hd-tel .btn_inquiry a {
    font-size: 5.2vw;
    border: 1px solid #000;
    display: block;
    padding: 10px;
    font-weight: 600;
    box-sizing: border-box;
    letter-spacing: .1em
}

#navigation .group .hd-tel .btn_shopping {
    margin-bottom: 5vw
}

#navigation .group .hd-tel .btn_shopping img {
    max-width: 100%
}

#navigation .group .hd-tel .btn-modal1 img {
    max-width: 100%
}

#navigation .group .hd-tel .ins {
    position: fixed;
    top: 12px;
    right: 70px
}

#popup {
    max-width: 908px;
    margin: 0 auto
}

#popup h2 {
    font-size: 6.5vw;
    line-height: 1.5
}

#popup .txt {
    text-align: center;
    font-size: 13px;
    font-weight: 500
}

#popup .txt .txt1 {
    padding: 5vw 0 5vw
}

#popup .list {
    text-align: left;
    font-weight: 500;
    font-size: 13px;
    margin-top: 6vw;
    padding-left: 5%
}

header {
    position: relative
}

header h1 {
    position: absolute;
    text-shadow: 1px 1px 2px #f4f4f4;
    bottom: 3vw;
    z-index: 1;
    color: #fff;
    left: 5%;
    right: 5%;
    text-align: center;
    line-height: 1.7;
    font-size: 10px
}

header .logo-sp {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    text-align: center;
    z-index: 1;
    background: url(../img/shared/head_bg_sp.png) no-repeat center 0/100%;
    height: 369px
}

header .logo-sp img {
    width: 50%;
    padding-top: 20vw
}

header #bg-parallax {
    height: 100vh;
    position: relative
}

header #bg-parallax .catch {
    position: absolute;
    top: 40%;
    left: 50%;
    transform: translateX(-50%);
    width: 20%;
    z-index: 2
}

footer {
    background: url(../img/shared/ft_bg.jpg) repeat;
    padding-top: 15vw
}

footer .content .colL .logo {
    width: 65%;
    display: block;
    margin: 0 auto 7vw
}

footer .content .colL .tel {
    text-align: center;
    font-size: 2.8vw;
    line-height: 1.5
}

footer .content .colL .tel .fnt-mincho {
    display: block;
    font-size: 6vw;
    line-height: 1;
    font-weight: 600;
    letter-spacing: .1em
}

footer .content .colL .tel img {
    height: 22px;
    position: relative;
    margin: -15px 5px 0 0;
    width: auto
}

footer .content .colL .tel span {
    font-weight: 500;
    letter-spacing: .02em;
    font-size: 8vw
}

footer .content .colL .btn_inquiry {
    margin-top: 5vw
}

footer .content .colL .btn_inquiry a {
    border: 1px solid #000;
    font-size: 5vw;
    color: #000;
    text-align: center;
    padding: 10px 0;
    display: block;
    letter-spacing: .1em;
    font-weight: 600
}

footer .content .colL .btn_inquiry img {
    height: 20px;
    position: relative;
    margin-top: -5px;
    width: auto
}

footer .content .colL ul {
    align-items: center;
    margin: 5vw 0 10vw
}

footer .content .colL ul .btn_shopping {
    width: 75%
}

footer .content .colL ul .ins {
    width: 25%;
    text-align: center
}

footer .content .colL ul .ins img {
    width: auto
}

footer .content .colR {
    padding-bottom: 13vw;
    letter-spacing: .1em
}

footer .content .colR dl {
    padding: 4.5px 0;
    display: flex;
    font-weight: 500;
    font-size: 12px;
    line-height: 1.5;
    border-bottom: 1px solid #ddd;
    align-items: center
}

footer .content .colR dl dt {
    width: 30%
}

footer .content .colR dl dd {
    width: 70%
}

footer .ft-sub {
    background: #1b213a;
    padding: 10vw 0 26vw
}

footer .ft-sub .address-gr .address {
    color: #fff;
    text-align: center;
    font-size: 13px;
    line-height: 2;
    font-weight: 500
}

footer .ft-sub .address-gr .address .cookies_link a {
    text-decoration: underline
}

footer .ft-sub .address-gr .address .cookies_link a:hover {
    text-decoration: none
}

footer .ft-sub .address-gr #socialbuttons {
    padding-top: 10px
}

.ft-fixed {
    width: calc(100% - 60px);
    background: rgba(255, 255, 255, .92);
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 99;
    opacity: 0;
    visibility: hidden;
    display: -moz-flex;
    display: -ms-flex;
    display: -o-flex;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: all .3s ease;
    -moz-transition: all .3s ease;
    -webkit-transition: all .3s ease
}

.ft-fixed li {
    width: 62px;
    text-align: center
}

.ft-fixed li a {
    display: block
}

.ft-fixed li img {
    width: auto;
    height: 32px
}

.ft-fixed .tel {
    position: relative
}

.ft-fixed .tel::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    right: 0;
    width: 1px;
    background: #000
}

.ft-fixed .btn_shopping {
    width: calc(100% - 124px);
    background: url(../img/shared/fixed_shopping_bg.jpg) repeat
}

.ft-fixed .btn_shopping img {
    width: auto;
    height: 50px
}

.has_nav .ft-fixed {
    opacity: 1;
    visibility: visible
}

@media screen and (min-width: 768px) {
    body {
        font-size: 16px;
        line-height: 32px
    }

    .wrap {
        padding: 0
    }

    .pc {
        display: block !important
    }

    .sp {
        display: none !important
    }

    #pagetop {
        width: auto;
        height: auto;
        bottom: 10px;
        right: 10px
    }

    .has_nav header .btn-fix {
        opacity: 1;
        visibility: visible
    }

    .txt-vertical-pc {
        cursor: vertical-text;
        writing-mode: vertical-rl;
        -o-writing-mode: vertical-rl;
        -ms-writing-mode: vertical-rl;
        -ms-writing-mode: tb-rl;
        -moz-writing-mode: vertical-rl;
        -webkit-writing-mode: vertical-rl;
        text-orientation: upright;
        word-wrap: break-word
    }

    .remodal {
        padding: 107px 20px 50px
    }

    .remodal-close {
        background: url(../img/shared/close_pc.png) no-repeat;
        top: 39px;
        right: 50px
    }

    .remodal1 {
        max-width: 1100px
    }

    #popup h2 {
        font-size: 36px;
        line-height: 57px
    }

    #popup .txt {
        font-size: 16px
    }

    #popup .txt .txt1 {
        padding: 47px 0 47px
    }

    #popup .list {
        font-size: 16px;
        margin-top: 40px;
        display: flex;
        justify-content: space-between;
        padding-left: 0
    }

    #belt.fixed {
        opacity: 1;
        visibility: visible
    }

    #belt {
        background-color: rgba(255, 255, 255, .92);
        padding: 16px 0;
        position: fixed;
        top: 0;
        left: 0;
        right: 0;
        z-index: 99;
        opacity: 0;
        visibility: hidden;
        border-bottom: 1px solid #e4e4e4
    }

    #belt #navigation {
        position: static;
        background: none;
        padding: 0px 0px;
        bottom: auto;
        overflow: hidden;
        opacity: 1;
        pointer-events: auto;
        z-index: 9
    }

    #belt #navigation .group {
        display: flex;
        align-items: center;
        justify-content: center
    }

    #belt #navigation .group .nav {
        text-align: left;
        margin-left: 30px;
        display: flex;
        align-items: center;
        order: 2
    }

    #belt #navigation .group .nav li {
        margin-bottom: 0;
        padding: 0 18px
    }

    #belt #navigation .group .nav li a {
        font-size: 16px;
        font-weight: 600;
        position: relative
    }

    #belt #navigation .group .nav li a::before {
        content: "";
        position: absolute;
        left: 50%;
        top: -10px;
        transform: translateX(-50%);
        width: 14px;
        height: 2px;
        background-color: #000;
        opacity: 0
    }

    #belt #navigation .group .nav li a:hover {
        text-decoration: none
    }

    #belt #navigation .group .nav li a:hover::before {
        opacity: 1
    }

    #belt #navigation .group .nav li .active::before {
        opacity: 1
    }

    #belt #navigation .group .hd-tel {
        order: 1;
        display: flex;
        align-items: center;
        justify-content: space-between
    }

    #belt #navigation .group .hd-tel li img {
        width: auto
    }

    #belt #navigation .group .hd-tel .tel {
        width: 190px;
        line-height: 19px;
        font-size: 14px;
        white-space: nowrap
    }

    #belt #navigation .group .hd-tel .tel span {
        font-size: 23px
    }

    #belt #navigation .group .hd-tel .tel img {
        left: 13px;
        padding-right: 8px;
        position: relative;
        height: 19px
    }

    #belt #navigation .group .hd-tel .btn_inquiry {
        padding: 0 0 0 22px
    }

    #belt #navigation .group .hd-tel .btn_inquiry img {
        height: 17px;
        position: relative;
        top: 7px;
        left: -7px
    }

    #belt #navigation .group .hd-tel .btn_inquiry a {
        font-size: 16px;
        padding: 6px 10px;
        width: 180px;
        letter-spacing: .1em;
        line-height: 17px;
        display: flex;
        justify-content: center
    }

    header {
        position: relative
    }

    header .btn-fix {
        position: fixed;
        z-index: 90;
        right: 0;
        top: 124px;
        opacity: 0;
        visibility: hidden
    }

    header #bg-parallax {
        height: 1100px
    }

    header #bg-parallax .catch {
        width: auto;
        top: 48%
    }

    header h1 {
        bottom: 20px;
        right: 51px;
        letter-spacing: 0;
        color: #fff;
        font-size: 13px;
        left: auto
    }

    header #hd-pc {
        position: absolute;
        left: 0;
        top: 0;
        right: 0;
        padding: 0 50px;
        background: url(../img/shared/head_bg.png) no-repeat center top/100%;
        height: 380px;
        z-index: 10;
        border-top: 11px solid #1b213a
    }

    header #hd-pc .hd-top {
        justify-content: space-between
    }

    header #hd-pc .hd-top .hd-left {
        text-align: center;
        position: absolute;
        top: 111px;
        left: 50px
    }

    header #hd-pc .hd-top .hd-left .tel {
        padding-bottom: 11px
    }

    header #hd-pc .hd-top .logo {
        padding-top: 144px;
        text-align: center
    }

    header #hd-pc .hd-top .nav {
        top: 74px;
        position: absolute;
        right: 80px
    }

    header #hd-pc .hd-top .nav .ins {
        position: absolute;
        top: 129px;
        left: -3px
    }

    header .hd-bt {
        width: 300px;
        position: absolute;
        left: 50px;
        bottom: 29px;
        z-index: 2
    }

    header .hd-bt .btn_shopping {
        margin-bottom: 10px
    }

    header .hd-bt li img {
        width: 100%;
        height: auto
    }

    footer {
        padding-top: 58px
    }

    footer .content {
        display: flex;
        justify-content: space-between;
        padding-bottom: 60px
    }

    footer .content .colL {
        width: 362px;
        margin-left: 36px
    }

    footer .content .colL .logo {
        width: auto;
        margin: 0 auto 42px;
        text-align: center
    }

    footer .content .colL .tel {
        line-height: 24px;
        font-size: 13px
    }

    footer .content .colL .tel .fnt-mincho {
        font-size: 20px;
        padding-top: 0
    }

    footer .content .colL .tel span {
        font-size: 31px;
        display: inline-block;
        padding-top: 9px
    }

    footer .content .colL .btn_inquiry {
        margin: 16px 0 20px
    }

    footer .content .colL .btn_inquiry a {
        font-size: 19px;
        padding: 7px 10px
    }

    footer .content .colL .btn_inquiry img {
        height: 16px;
        position: relative;
        margin-top: -1px;
        width: auto;
        margin-left: 5px
    }

    footer .content .colL ul {
        align-items: center;
        margin: 0
    }

    footer .content .colL ul .btn_shopping {
        width: 276px
    }

    footer .content .colR {
        padding-bottom: 0;
        width: 475px;
        margin: 8px 37px 0 0
    }

    footer .content .colR dl {
        font-size: 16px;
        line-height: 22px
    }

    footer .content .colR dl dt {
        width: 162px
    }

    footer .content .colR dl dd {
        width: calc(100% - 162px)
    }

    footer .ft-sub {
        padding: 37px 0
    }

    footer .ft-sub .nav {
        display: flex !important;
        justify-content: center;
        padding-bottom: 23px;
        background: url(../img/shared/border_ft.png) no-repeat center bottom
    }

    footer .ft-sub .nav li a {
        padding: 0 27px;
        color: #fff;
        line-height: 32px;
        letter-spacing: .1em;
        position: relative
    }

    footer .ft-sub .nav li a:after {
        content: "";
        transform: rotate(45deg);
        position: absolute;
        left: 0px;
        top: 0px;
        background-color: #fff;
        display: inline-block;
        height: 20px;
        width: 1px
    }

    footer .ft-sub .nav li a:hover {
        text-decoration: underline
    }

    footer .ft-sub .nav li:first-child a::after {
        content: none
    }

    footer .ft-sub .address-gr {
        display: flex;
        justify-content: space-between;
        padding-top: 10px
    }

    footer .ft-sub .address-gr .address {
        text-align: left;
        font-size: 14px;
        line-height: 32px
    }

    footer .ft-sub .address-gr #socialbuttons {
        padding-top: 29px;
        margin: inherit
    }
}

@media screen and (min-width: 768px)and (max-width: 1500px) {
    header #hd-pc {
        padding: 0 20px
    }

    header #hd-pc .hd-top .logo img {
        width: 250px;
        height: auto
    }

    header #hd-pc .hd-top .hd-left img {
        width: 335px;
        height: auto
    }

    header #hd-pc .hd-top .nav {
        top: 50px;
        right: 20px
    }

    header #hd-pc .hd-top .hd-left {
        top: 50px;
        left: 20px
    }
}

@media screen and (-ms-high-contrast: active),
(-ms-high-contrast: none) {
    #belt #navigation .group .hd-tel .btn_inquiry a {
        padding: 6px 10px 3px
    }

    footer .content .colL .btn_inquiry a {
        padding: 8px 10px 3px
    }

    .remodal {
        padding: 107px 20px 100px
    }
}