@charset "UTF-8";
body {
    font-size: 16px;
    line-height: 20px;
    color: #121211;
    font-family: 'Bona Nova';
    background-image: url(/images/common/bg.jpg);
}

ul {
    list-style: none;
}

.header {
    position: relative;
    z-index: 100;
    height: 63px;
    box-sizing: border-box;
    padding: 8px 0;
}

@media print,
screen and (max-width: 1023px) {
    .header_wrap {
        width: calc(100% - 45px);
        padding: 8px 0;
    }
    .header_wrap .logo {
        width: 120px;
        margin-left: 10px;
    }
    .header_wrap .logo img {
        width: 100%;
    }
    .header_wrap .toggle {
        position: absolute;
        top: 20px;
        right: 10px;
        overflow: hidden;
        text-indent: 100%;
        white-space: nowrap;
        width: 29px;
        height: 22px;
    }
    .header_wrap .toggle a {
        display: block;
        width: 29px;
        height: 22px;
        background: url(/images/icon_toggle.png) 50% 50% no-repeat;
        background-size: 27px auto;
    }
    .header_wrap .toggle.open a {
        background: url(/images/icon_toggle_close.png) 50% 50% no-repeat;
        background-size: 29px auto;
    }
    .header_wrap nav {
        display: none;
        position: absolute;
        top: 63px;
        right: 0;
        z-index: 2;
        width: 100%;
        max-width: 325px;
        background: #fff;
        height: calc(100vh - 63px);
        overflow-y: scroll;
        -webkit-overflow-scrolling: touch;
    }
    .header_wrap nav.open {
        display: block;
    }
    .header_wrap nav .nav_wrap {
        padding: 50px 25px 50px 50px;
    }
    .header_wrap nav ul {
        list-style: none;
    }
    .header_wrap nav ul.nav_main li.fb {
        display: none;
    }
    .header_wrap nav ul.nav_main li {
        position: relative;
    }
    .header_wrap nav ul.nav_main li span.open {
        display: block;
        width: 20px;
        height: 16px;
        position: absolute;
        top: 8px;
        right: 0;
        background: url(/images/icon_open.png) 50% 50% no-repeat;
        background-size: auto;
    }
    .header_wrap nav ul.nav_main li.opened span.open {
        background: url(/images/icon_close.png) 50% 50% no-repeat;
        background-size: auto;
    }
    .header_wrap nav ul.nav_main li.opened ul {
        display: block;
    }
    .header_wrap nav ul.nav_main li ul {
        display: none;
    }
    .header_wrap nav ul li {
        line-height: 2.2em;
    }
    .header_wrap nav ul li a {
        display: block;
    }
    .header_wrap nav ul li ul {
        padding: 20px;
    }
}

@media print,
screen and (min-width: 1024px) {
    .header .toggle {
        display: none;
    }
    .header_wrap {
        display: flex;
        flex-wrap: wrap;
        align-items: end;
        position: relative;
    }
    .header_wrap nav {
        position: absolute;
        bottom: -15px;
        right: calc((100% - 1155px) / 2);
        z-index: 1;
    }
    .header_wrap nav ul {
        list-style: none;
        display: flex;
        flex-wrap: wrap;
    }
    .header_wrap nav ul.nav_sp {
        display: none;
    }
    .header_wrap nav ul li {
        position: relative;
        padding: 0 15px 18px;
    }
    .header_wrap nav ul li a {
        display: block;
    }
    .header_wrap nav ul li span.open {
        display: none;
    }
    .header_wrap nav ul li ul {
        display: none;
        /* background: #fff url(/images/icon_opennav.png) calc((100% - 1155px) / 2 + 50px) calc(100% - 15px) no-repeat; */
        background: #fff;
        background-size: auto;
        position: fixed;
        top: 63px;
        left: 0;
        width: 100vw;
        max-width: 100vw;
        z-index: 1000;
        margin: 0;
        padding: 0;
        overflow: hidden;
    }
    .header_wrap nav ul li ul .mainwrap {
        padding: 30px 30px 80px;
        min-height: 60px;
        width: 100%;
        display: grid;
        gap: 10px;
        grid-template-rows: 30px 30px;
        grid-template-columns: auto auto auto auto;
    }
    .header_wrap nav ul li ul li {
        width: auto;
        margin: 0;
        padding: 0;
    }
    .header_wrap nav ul li ul li a {
        padding: 0;
        font-size: 19px;
        letter-spacing: 1.9px;
    }
    .header_wrap nav ul li ul li:hover {
        background: none;
    }
    .header_wrap nav ul li ul li:hover a {
        color: #D7D7D7;
    }
    .header_wrap nav ul li ul li:nth-child(1) {
        grid-row: 1/2;
        grid-column: 1/2;
    }
    .header_wrap nav ul li ul li:nth-child(2) {
        grid-row: 2/3;
        grid-column: 1/3;
    }
    .header_wrap nav ul li ul li:nth-child(3) {
        grid-row: 1/2;
        grid-column: 2/3;
    }
    .header_wrap nav ul li ul li:nth-child(4) {
        grid-row: 2/3;
        grid-column: 2/3;
    }
    .header_wrap nav ul li ul li:nth-child(5) {
        grid-row: 1/2;
        grid-column: 3/4;
    }
    .header_wrap nav ul li ul li:nth-child(6) {
        grid-row: 2/3;
        grid-column: 3/4;
    }
    .header_wrap nav ul li.nav2 ul .mainwrap {
        grid-template-columns: 1fr 1fr 1fr 1fr;
    }
    .header_wrap nav ul li:hover ul {
        display: block;
    }
}

footer {
    background: #F2F2F2;
}

select {
    -webkit-appearance: none;
    /* ベンダープレフィックス(Google Chrome、Safari用) */
    -moz-appearance: none;
    /* ベンダープレフィックス(Firefox用) */
    appearance: none;
    /* 標準のスタイルを無効にする */
}

.is-block {
    display: block;
}

.cost-wind {
    -webkit-appearance: none;
    position: relative;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/g.png");
    background-size: contain;
    margin-right: 8px;
}

.cost-wind:checked:before {
    content: "";
    position: absolute;
    left: 0px;
    top: 0px;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/cost_g.png");
    background-size: 40px 40px;
}

.cost-fire {
    -webkit-appearance: none;
    position: relative;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/r.png");
    background-size: contain;
    margin-right: 8px;
}

.cost-fire:checked:before {
    content: "";
    position: absolute;
    left: 0px;
    top: 0px;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/cost_r.png");
    background-size: 40px 40px;
}

.cost-light {
    -webkit-appearance: none;
    position: relative;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/w.png");
    background-size: contain;
    margin-right: 8px;
}

.cost-light:checked:before {
    content: "";
    position: absolute;
    left: 0px;
    top: 0px;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/cost_w.png");
    background-size: 40px 40px;
}

.cost-water {
    -webkit-appearance: none;
    position: relative;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/b.png");
    background-size: contain;
    margin-right: 8px;
}

.cost-water:checked:before {
    content: "";
    position: absolute;
    left: 0px;
    top: 0px;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/cost_b.png");
    background-size: 40px 40px;
}

.cost-darkness {
    -webkit-appearance: none;
    position: relative;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/d.png");
    background-size: contain;
    margin-right: 8px;
}

.cost-darkness:checked:before {
    content: "";
    position: absolute;
    left: 0px;
    top: 0px;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/cost_d.png");
    background-size: 40px 40px;
}

.cost-void {
    -webkit-appearance: none;
    position: relative;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/v.png");
    background-size: contain;
    margin-right: 8px;
}

.cost-void:checked:before {
    content: "";
    position: absolute;
    left: 0px;
    top: 0px;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/cost_v.png");
    background-size: 40px 40px;
}

.cost-moon {
    -webkit-appearance: none;
    position: relative;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/m.png");
    background-size: contain;
    margin-right: 8px;
}

.cost-moon:checked:before {
    content: "";
    position: absolute;
    left: 0px;
    top: 0px;
    display: inline-block;
    width: 40px;
    height: 40px;
    background: url("/images/product_cardlist/cost_m.png");
    background-size: 40px 40px;
}

.cost-all {
    -webkit-appearance: none;
    background: #fff;
    width: 16px;
    height: 16px;
    margin-right: 8px;
}

.bg-red-main03 {
    background: #D7003A;
}

.is-hide {
    display: none;
}

.is-block {
    display: block;
}

.absolute-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}

.hamburger-img {
    display: none;
}

.swiper-button-prev,
.swiper-button-next {
    position: absolute;
    top: 50%;
    width: calc(var(--swiper-navigation-size) / 44 * 27);
    height: var(--swiper-navigation-size);
    margin-top: calc(-1 * var(--swiper-navigation-size) / 2);
    z-index: 10;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--swiper-navigation-color, var(--swiper-theme-color));
    width: 36px;
    /* ボタンの幅 */
    height: 72px;
    /* ボタンの高さ */
    background-size: 36px 72px;
    /* 背景画像としてのサイズ（＝表示したい画像サイズ） */
    margin-top: -24px;
    /* 縦中央配置用：ボタンの高さの半分のネガティブマージン（top:50%がすでに設定されている） */
}


/* 次ページボタンのスタイル */

.swiper-button-next {
    background-image: url(/images/common/arrow_r.png);
}


/* 前ページボタンのスタイル */

.swiper-button-prev {
    background-image: url(/images/common/arrow_l.png);
}

.swiper-button-prev:after,
.swiper-button-next:after {
    font-family: swiper-icons;
    font-size: var(--swiper-navigation-size);
    text-transform: none !important;
    letter-spacing: 0;
    text-transform: none;
    font-variant: initial;
}

.swiper-button-prev:after,
.swiper-container-rtl .swiper-button-next:after {
    content: none;
}

.swiper-button-next:after,
.swiper-container-rtl .swiper-button-prev:after {
    content: none;
}

.swiper-container {
    padding-bottom: 38px;
}

.swiper-pagination-bullet {
    background: #C4C4C4;
}

.swiper-pagination-bullet-active {
    background: #D7003A;
}

.tab-frame {
    background-image: url("/images/common/frame_top.svg"), url("/images/common/frame_bottom.svg");
    background-repeat: no-repeat, no-repeat;
    background-position: top, bottom;
    width: 100%;
}

.tab-nav {
    width: 80%;
    position: absolute;
    top: -18px;
    left: 50%;
    transform: translate(-50%, 0%);
    -webkit-transform: translate(-50%, 0%);
    -ms-transform: translate(-50%, 0%);
}

.tab-nav img {
    width: 100%;
    height: 56px;
}

.tab-arrow {
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translate(-50%, 0%);
    -webkit-transform: translate(-50%, 0%);
    -ms-transform: translate(-50%, 0%);
    font-size: 24px;
    line-height: 14px;
}

.top-btn {
    position: absolute;
    top: -48px;
    left: 50%;
    transform: translate(-50%, 0%);
    -webkit-transform: translate(-50%, 0%);
    -ms-transform: translate(-50%, 0%);
}

.title-frame {
    background-image: url(/images/common/title_frame_top.png), url(/images/common/title_frame_bottom.png);
    background-repeat: no-repeat;
    background-size: 100%;
    background-position: top, bottom;
    padding: 20px 0;
    color: #D7003A;
    text-align: center;
    /* margin-bottom: 60px; */
}

.balloon1-right {
    position: relative;
    display: inline-block;
    padding: 7px 10px;
    /* min-width: 120px; */
    max-width: 100%;
    height: 38px;
    color: #fff;
    font-size: 16px;
    background: #D7003A;
}

.balloon1-right:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 100%;
    margin-top: -19px;
    border: 19px solid transparent;
    border-left: 15px solid #D7003A;
}

.balloon1-right-gray {
    background: #4E4E4E;
}

.balloon1-right-gray:before {
    border-left: 15px solid #4E4E4E;
}

.cardlist-frame {
    background-image: url(/images/product_cardlist/frame.png);
    background-size: 100% 100%;
    background-repeat: no-repeat;
}

@media only screen and (max-width: 768px) {
    .hamburger-img {
        display: block;
    }
}

@media only screen and (max-width: 640px) {
    .tab-nav {
        width: 90%;
        top: -60px;
    }
    .tab-nav img {
        width: 100%;
        height: 120px;
    }
    .tab-nav .active {
        width: 100%;
        text-align: center;
        margin-bottom: 12px;
    }
}