main {
    font-family: 'Spartan', "Noto Sans JP", "SF Pro Display", "SF Pro Icons", "Helvetica Neue", "Helvetica", "Arial", sans-serif;
}
/*アンカーずれ調整用（アンカー増えたら追加）
-----------------------------------------*/
#OVERVIEW, #DESIGN, #DETAIL, #COLOR, #SPEC, #OPTION, #TYPE, #CAUTION, #OP_LENS, #OP_BDF, #OP_CAP, #OP_GDF, #OP_HOOK, #USBC_CAP, #OP_NAVI, #LIST, #OP_RING, #VR_STAND {
    content: "";
    height: 100px;
    margin-top: -100px;
    display: block;
    visibility: hidden;
}
/*COMMON*/
.text-shadow {
    text-shadow: 1px 2px 3px #191919;
}
.badge{
    font-size: 0.5rem;
}
/*TOP*/
.top_image img {
    width: 100%;
    object-fit: cover;
    position: center;
}
/*h1見出し*/
h1 {
    font-size: 2.5rem;
    letter-spacing: -.05em;
    color: #4a0a40;
    margin: 0.5rem 0;
    /* text-shadow: 0px 0px 10px #cbb4ff;*/
}
h1 span {
    display: inline-block;
}
.h1_subname {
    font-size: 1.25rem;
    padding: 0 0.5rem;
    letter-spacing: 0em;
}
.h1_jp, .h1_nmb {
    font-size: 0.8rem;
    color: #333;
    letter-spacing: -.05em;
    display: inline-block;
}
.h1_nmb {
    margin-left: 1rem;
}
.h1_model {
    color: #230032;
    font-weight: bold;
}
#overview h2 {
    padding: 2rem;
    text-align: center;
}
/*h2大見出し*/
.h2back {
    background: #0d1711;
    border-bottom: solid 7px #8eff41;
}
.h2back h2 {
    font-size: 3rem;
    color: #fff;
    font-weight: bold;
    padding: 2rem 0;
    margin-left: 5rem;
    margin-bottom: 0;
}
.h2back span {
    font-size: 1.2rem;
    display: block;
    letter-spacing: -0.05em;
    font-weight: lighter;
    padding: 0.25rem;
}
.sub_h2 {
    color: #02443A;
    background: #e7eff9;
    padding: 0.35rem 1rem;
    display: inline-block;
    border-bottom: 1px solid #180344;
}
.catch {
	font-size: 2.5rem;
	font-weight: 400;
	padding: 2rem;
	line-height: 1.5;
	margin: 2rem auto;
	background: #171e32;
	color: #fff;
	text-align: center;
	text-shadow: 0 0 5px #0FF7F7, 0 0 10px #16DBDB, 0 0 20px #13DFDF;
}
#detail .catch {
    font-size: 2rem;
    font-weight: 400;
    padding: 1rem;
    line-height: 1.5;
    margin: 2rem auto;
    background: #4f778a;
    color: #fff;
    text-align: center;
    text-shadow: 0 0 5px #001F1F, 0 0 10px #001F1F, 0 0 20px #001F1F;
}
.catch_jp {
    font-size: 1.1rem;
    padding-left: 0.5rem;
    display: inline-block;
}
.catch_copy {
    font-weight: bold;
    margin-bottom: 2rem;
    color: #fff;
    line-height: 1.5;
    text-shadow: 0 0 5px #0f02a5, 0 0 10px #0259a5, 0 0 20px #0232a5;
}
#OPTION h3.catch_copy {
    color: #999;
}
.block img {
    margin: 0 auto;
    display: block;
}
.block_in {
    font-size: 1.1rem;
    line-height: 1.5;
    color: #424242;
    padding: 1rem;
}
#overview .block_in {
    color: #fff;
}
#design .block_in, #detail .block_in {
    color: #ececec;
}
.detail_btn {
    display: block;
    border: 1px solid #FFF;
    color: #FFF;
    margin: 1rem auto 1rem;
    background: #FFFFFF21;
}
#option .detail_btn, #spec .detail_btn {
    border: 1px solid #000000;
    color: #000000;
    background: #FFFFFF21;
}
.detail_btn.btn:hover {
    background-color: #008AA0;
    color: #fff;
}
.detail_btn::after {
    content: "説明を見る +";
}
.detail_btn[aria-expanded="true"]::after {
    content: "説明を閉じる -";
}
.h3_ttl {
    font-size: 1.25rem;
    margin: 1.5rem 0 1rem 0;
    padding: 1rem 1rem;
    background: #6F009475;
    color: #fff;
    border-left: 0.5rem solid #D7D7D7;
    width: fit-content;
}
.color_h3 {
    padding: 1rem;
    background: #E4E2D7;
    width: fit-content;
    margin: 1.5rem auto;
}
.h3_brand, .h3_brand2 {
    background: #DD6A04;
    color: #fff;
    padding: 1rem;
    margin-bottom: 0rem;
}
.h3_brand2 {
    background: #530093;
}
.option_h3 {
    font-size: 1.7rem;
    padding: 1rem 2rem 1rem 1rem;
    background: #6F7E69;
    color: #fff;
    width: fit-content;
    line-height: 1.7;
}
.opt_ttl_h4 {
    font-size: 1.5rem;
    padding: 1rem;
}
.top_spec {
    border: 1px solid #8E8E8E;
}
.each_spec, .top_spec {
    padding: 1rem 1rem 1rem 2.5rem;
    background: #21012B75;
    margin: 1rem 1rem 3rem 1rem;
}
.each_spec li, .top_spec li {
    list-style: disc;
    color: #fff;
    font-size: 0.9rem;
    line-height: 1.35;
    margin-top: 0.75rem;
}
.hero_inner {
    text-align: center;
    width: 70%;
    margin: 0 auto;
    text-shadow: 1px 1px 5px #212121;
    padding: 1rem;
}
.hero_inner h2, #overview h2 {
    font-size: 3rem;
    padding: 1.5rem;
    font-weight: 400;
    line-height: 1.5;
    background: #00000036;
}
.hero_txt {
    background: #00000036;
}
.hero_txt p {
    font-size: 1.1rem;
    text-align: left;
    line-height: 2;
    padding: 1rem;
}
.back_light {
    color: #FFFFFF;
    text-shadow: 0px 2px 10px #fff;
}
@media(max-width: 768px) {
    h1 {
        line-height: 1;
    }
    .h1_prd {
        font-size: 1.5rem;
    }
    .h1_subname {
        font-size: 0.9rem;
    }
    .h1_model {
        font-size: 1.7rem;
    }
    .h1_jp {
        font-size: 0.7rem;
    }
    .h1_nmb {
        font-size: 0.65rem;
        margin-left: 0;
    }
    .top_exp {
        padding: 0.75rem;
    }
    .each_spec li, .top_spec li {
        font-size: 0.8rem;
        line-height: 1.3;
        margin-top: 0.5rem;
    }
    .catch, #detail .catch {
        font-size: 1.5rem;
        line-height: 1.3;
        font-weight: normal;
        padding: 1rem;
        text-align: left;
    }
    .block_in {
        font-size: 0.9rem;
        line-height: 1.3;
        width: 95%;
    }
    .sub_h2 {
        font-size: 1.35rem;
    }
    .h2back h2 {
        margin-left: 1rem;
    }
    .option_h3 {
        font-size: 1.3rem;
        padding: 0.5rem 1.5rem;
        line-height: 1.4;
        width: unset;
    }
    .opt_ttl_h4 {
        font-size: 1.1rem;
        font-weight: bold;
    }
    .hero_inner {
        width: 100%;
        line-height: 1.2;
    }
    .hero_inner h2, #overview h2 {
        font-size: 1.7rem;
        padding: 1rem;
        text-align: left;
    }
    .hero_txt p {
        font-size: 0.9rem;
        padding: 1rem;
        line-height: 1.4;
        margin-bottom: 0;
    }
    .each_spec, .top_spec {
        margin: 0 0 2rem 0;
    }
}
/*サイトメニュークローズ時*/
.menu_ttl {
    background: #1A0000;
    margin: 0;
}
.menu_button {
    font-size: 1.7rem;
}
a.menu_button {
    color: #fff;
    font-weight: normal;
    padding: 1.5rem 0;
}
.menu_button:after {
    font-family: 'Font Awesome 5 Free';
    content: '\f078';
    font-weight: 900;
    margin-left: 1rem;
    color: #E3F0F4;
    ;
}
.menu_button.change::after {
    content: '\f077';
}
/*サイトメニュー中身*/
.top_nav {
    background: #F0F0F0;
    margin: 0;
}
.top_nav_menu {
    padding: 1rem;
    margin-bottom: 0;
}
.top_nav li {
    display: inline-block;
    padding: 0.25rem 1rem;
    margin: 0.5rem 0.5rem;
    text-align: center;
    border-color: #000000;
    background: #FFFFFF;
}
.top_nav li.opt_color {
    background: #232436;
}
.top_nav li:hover {
    background: #B4B9C7;
}
.top_nav li a span {
    display: block;
    color: #000;
}
.menu_lst_tx {
    font-size: 0.8rem;
    font-weight: bold;
}
.menu_lst_jp {
    font-size: 0.5rem;
}
@media (max-width: 576px) {
    #overview p {
        line-height: 1.4;
        font-size: 0.9rem;
    }
}
/*＋＋＋背景共通設定＋＋＋*/
/*SM背景が縦に長い場合はcontainに変更*/
#design {
    background: #434343;
}
#detail {
    background: #000;
}
.sec_backimg {
    color: #fff;
    background-color: #fff;
    background-position: center;
    background-size: cover;
    background-repeat: no-repeat;
}
.overview {
    background-image: url("img/section_overview.jpg");
    background-attachment: fixed;
}
/*iOS限定safari用のみスクロールさせるfixed使えない*/
_::-webkit-full-page-media, _:future, :root .overview {
    background-attachment: scroll;
}
.design {
    background-image: url("img/section_design.jpg");
}
.detail {
    background-image: url("img/section_detail.jpg");
}
.color {
    background-image: url("img/section_color.jpg");
}
.option {
    background-image: url("img/section_option.jpg");
}
.spec {
    background-image: url("img/section_spec.jpg");
}
.fitting {
    background-image: url("img/section_fitting.jpg");
}
@media (max-width: 576px) {
    /*ｗ750画像使用上付で下に背景色　pc用ではcover使用*/
    .overview {
        background-image: url("img/section_overview_sm.jpg");
    }
    .design {
        background-image: url("img/section_design_sm.jpg");
    }
    .detail {
        background-image: url("img/section_detail_sm.jpg");
    }
    .color {
        background-image: url("img/section_color_sm.jpg");
    }
    .option {
        background-image: url("img/section_option_sm.jpg");
    }
    .spec {
        background-image: url("img/section_spec_sm.jpg");
    }
    .fitting {
        background-image: url("img/section_fitting_sm.jpg");
    }
}
/*＋＋＋//背景設定＋＋＋*/
/*外部サイトボタン*/
.jump_btn {
    padding: 1.25rem;
    color: #fff;
    background: #0087B7;
    border-radius: 5px;
    font-size: 1.1rem;
}
.jump_btn:hover {
    color: #fff;
    background: #002D3D;
}
.jump_btn:after {
    font-family: 'Font Awesome 5 Free';
    content: '\f35d';
    font-weight: 900;
    padding-left: 0.5rem;
}
/*CAUTION*/
.prd_point_lst, .prd_caution_lst {
    padding: 1rem;
    max-width: 90%;
    margin: 0.75rem auto;
    width: fit-content;
}
.prd_point_lst {
    background: #021C28;
}
.prd_caution_lst {
    background: #fff8f9;
    border: solid 2px #8a0b0b;
}
.prd_point_lst li, .prd_caution_lst li {
    font-size: 0.8rem;
    color: #DAE7F4;
    margin-left: 1.5rem;
    text-indent: -1.5rem;
    line-height: 1.5;
}
.prd_point_lst li:nth-child(n + 2), .prd_caution_lst li:nth-child(n + 2) {
    margin-top: 0.75rem;
}
.prd_point_lst li::before, .prd_caution_lst li::before {
    font-family: 'Font Awesome 5 Free';
    content: '\f05a';
    font-weight: 900;
    padding: 0 0.5rem 0 0;
    color: #A3C8EC;
}
.prd_caution_lst li {
    color: #5E0909;
}
.prd_caution_lst li::before {
    content: '\f071';
    color: #5E0909;
}
/*===ストアオープンエリア===*/
.store_box, .store_main_box {
    background: #F7F7F7;
    border: 1px solid #cecece;
}
.to_store h4 {
    padding: 1rem 1.5rem;
}
.to_store .spec_table {
    background: #fff;
}
@media (max-width: 576px) {
    .to_store .spec_table {
        margin-top: 2rem;
    }
}
/*STOREボタン*/
.store_button {
    padding: 0.75rem 1.5rem;
    background: #0014B8;
    color: #fff;
    margin: 2rem auto;
    border: none;
    display: block;
}
.store_button:hover {
    background: #00063A;
}
.store_button:after {
    font-family: 'Font Awesome 5 Free';
    content: '\f078';
    font-weight: 900;
    margin-left: 1rem;
    color: #FFA600;
}
.store_button::before {
    font-family: 'Font Awesome 5 Free';
    content: '\f54e';
    font-weight: 900;
    margin-right: 0.5rem;
    color: #fff;
}
.store_button.change::after {
    content: '\f077';
}
.store_cart {
    background: #F0F0F0;
    padding: 1rem;
}
.store_cart h4 {
    font-size: 1rem;
    text-align: center;
    padding: 0.5rem;
}
.store_cart .sublink {
    font-size: 0.9rem;
    padding: 0.5rem;
    color: #003CFF;
}
.store_stock_caution {
    color: #17a2b8;
    padding: 0.5rem;
    margin: 1rem auto;
    border: 1px solid #17a2b8;
    font-size: 80%;
    background: #fff;
    width: fit-content;
}
.store_box h4, .store_main_box h4 {
    text-align: center;
    background: #dfdfdf;
    padding: 1rem 0;
    font-size: 1.3rem;
}
.store_move {
    text-align: center;
    margin: 1.5rem auto 1rem auto;
    width: fit-content;
    background: #384C6B;
    padding: 0.5rem;
}
.store_move a {
    color: #FFFFFF;
    padding: 1rem;
    font-size: 0.95rem;
}
.store_move:hover {
    background: #1D2736;
}
.store_move a::before {
    font-family: 'Font Awesome 5 Free';
    content: '\f54e';
    font-weight: 900;
    padding: 0 0.5rem 0 0;
    color: #07F40C;
}
/*===//ストアオープンエリア===*/
/*===カートボタンエリア===*/
.cartjs_product_table > table {
    margin: 0 auto;
    border-collapse: separate;/*テーブルのため行間で隙間を調整する*/
    border-spacing: 1rem 0.3rem;/*前がｘ方向後ろがｙ方向*/
}
.cartjs_cart_in input {
    border: 2.5px solid #006;
    color: #fff;
    font-weight: normal;
    /* background: #080084; */
    /* background: -moz-linear-gradient(top, #080084 0%, #006df2 50%, #0300d8 51%, #000b56 100%); */
    /* background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,#080084), color-stop(50%,#006df2), color-stop(51%,#0300d8), color-stop(100%,#000b56)); */
    /* background: -webkit-linear-gradient(top, #080084 0%,#006df2 50%,#0300d8 51%,#000b56 100%); */
    /* background: -o-linear-gradient(top, #080084 0%,#006df2 50%,#0300d8 51%,#000b56 100%); */
    /* background: -ms-linear-gradient(top, #080084 0%,#006df2 50%,#0300d8 51%,#000b56 100%); */
    background: linear-gradient(to bottom, #080084 0%, #006df2 50%, #0300d8 51%, #000b56 100%);
    filter: progid: DXImageTransform.Microsoft.gradient( startColorstr='#080084', endColorstr='#000b56', GradientType=0);
    border-radius: 5px;
    font-size: 1.1rem;
    padding: 0.5rem 1.2rem;
    margin: 0.7rem auto;
    display: block;
}
.cartjs_cart_in input:hover {
    background: #111;
}
/*form-control*/
.cartjs_option td select, .cartjs_product_num td input {
    display: block;
    width: 100%;
    height: calc(1.5em+ 0.75rem+ 2px);
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    /* background-color: #999; */
    background-clip: padding-box;
    border: 1px solid #ced4da;
    border-radius: 0.25rem;
}
.cartjs_product_num th, .cartjs_option th {
    font-weight: normal;
    background: #141660;
    color: #fff;
    text-align: center;
    font-size: 0.9rem;
    padding: 0.5rem;
}
@media(max-width: 576px) {
    .cartjs_product_table > table {
        border-spacing: 0.25rem;
    }
    .cartjs_option td select, .cartjs_product_num td input {
        padding: 0.3rem 0.5rem;
        font-size: 0.9rem;
    }
}
/*オプション用ジャンプアイコン*/
.option_top {
    text-align: center;
    margin: 3rem 0;
}
.option_top a {
    padding: 1rem;
    background: #999;
    color: #fff;
    text-align: center;
}
.option_top a::before {
    font-family: 'Font Awesome 5 Free';
    content: '\f062';
    font-weight: 900;
    margin-right: 1rem;
    font-size: 1.3rem;
    color: #E3E3E3;
}
.model_icon {
    padding: 0;
    text-align: center;
    list-style: none;
    margin: 0 auto;
    overflow: hidden;
}
.model_icon li {
    display: inline-block;
    position: relative;
    margin: 0.25rem;
}
.model_icon li img {
    border: 1px solid #c6c6c6;
    border-radius: 7px;
}
.model_icon li img.inlink {
    border: 2px solid #A6AAE0;
}
.model_icon li img.outlink {
    border: 1px solid #BAC4C8;
}
.model_icon a img:hover {
    opacity: 0.7;
}
.model_status-l {
    position: absolute;
    top: 0.25rem;
    right: 0.3rem;
    padding: 0.2rem 0.3rem 0.1rem;
    color: #fff;
    font-size: 0.6rem;
    border-radius: 0.35rem;
}
.model_status-r {
    position: absolute;
    top: 0.25rem;
    left: 0.3rem;
    padding: 0.2rem 0.3rem 0.1rem;
    color: #fff;
    font-size: 0.6rem;
    border-radius: 0.35rem;
}
.status {
    top: 0.25rem;
    right: 1rem;
    padding: 0.2rem 0.3rem 0.1rem;
    color: #fff;
    font-size: 0.6rem;
    border-radius: 0.35rem;
    margin-right: 0.5rem;
    display: block;
    width: fit-content;
}
/* ▼▼ スマホ用：横スクロール対応 ▼▼ */
@media (max-width: 576px) {
    .model_icon {
        display: flex;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scroll-snap-type: x mandatory;
        gap: 0.5rem;
        padding: 0.5rem 0.25rem;
    }
    .model_icon li {
        flex: 0 0 auto;
        scroll-snap-align: start;
        width: 110px; /* 適宜調整可能 */
    }
}
/*注意エリア*/
.h3_caution {
    font-size: 2.5rem;
    color: #373737;
    background: #FFAD10;
    padding: 0.3rem 1rem;
    display: inline-block;
}
.h3_warning {
    font-size: 2.7rem;
    color: #fff;
    background: #8F0000;
    padding: 0.3rem 1rem;
    display: inline-block;
}
.h3_warning span, .h3_caution span {
    font-size: 1rem;
    display: block;
}
.caution_list {
    color: #DD9200;
}
.warning_list {
    color: #B50808;
}
.caution_list li, .warning_list li {
    padding: 0.15rem 0.5rem;
    font-size: 0.85rem;
    margin-left: 1.5rem;
    text-indent: -1.5rem;
    line-height: 1.3;
}
.caution_list li::before, .warning_list li::before {
    font-family: 'Font Awesome 5 Free';
    content: '\f06a';
    font-weight: 900;
    padding: 0 0.5rem 0 0;
}
img + figcaption, picture + figcaption, model-viewer + figcaption {
    text-align: center;
    font-size: 0.75rem;
    margin: 0.5rem auto;
    color: #B8B8B8;
    width: 75%;
}
#option img + figcaption, #option picture + figcaption, #spec img + figcaption, #spec picture + figcaption {
    color: #323232;
}
.jan_table {
    font-size: 0.8rem;
        width: auto;
}
.jan_table th, .jan_table td {
    white-space: nowrap;
    padding: 0.5rem 1rem;
}
.jan_table .thead-dark th {
    border: 1px #DDDDDD solid;
    font-weight: 500;
    text-align: center;
    padding: 0.5rem 0;
}
.jan_table .zei {
    font-size: 0.6rem;
    display: inline-block;
    padding-left: 0.5rem;
}
.jan_table .jan {
    font-size: 0.7rem;
    padding-left: 0.5rem;
}
.spec_h4 {
    color: #272727;
    background: #E8E8E8;
    font-size: 1.5rem;
    margin: 2rem 0 1rem 0;
    padding: 1rem;
}
.spec_table {
    margin: 0 0 2rem 0;
}
.spec_table table {
    font-weight: normal;
    font-size: 0.8rem;
}
.spec_table thead th {
    text-align: center;
}
.spec_table tbody th {
    text-align: right;
}
/*枠付きテーブル*/
.waku_info table, .waku_caution table, .waku_stock table {
    max-width: 85%;
    margin: 1.5rem auto;
    text-shadow: none;
    line-height: 1.5;
    font-size: 0.9rem;
}
.waku_info a {
    color: #131E22;
    font-weight: bold;
    text-decoration-line: underline;
}
@media(max-width: 576px) {
    .waku_info table, .waku_caution table, .waku_stock table {
        max-width: 95%;
    }
}
.waku_info table {
    border: 2px solid #2d6d8c;
}
.waku_info table tr td:nth-child(1), .waku_caution table tr td:nth-child(1), .waku_stock table tr td:nth-child(1) {
    color: #fff;
    font-size: 1.5rem;
    padding: 1rem;
}
.waku_info table tr td:nth-child(2), .waku_caution table tr td:nth-child(2), .waku_stock table tr td:nth-child(2) {
    padding: 1rem;
    background: #fff;
}
.waku_info table tr td:nth-child(1) {
    background: #2d6d8c;
}
.waku_info table tr td:nth-child(2) {
    color: #2d6d8c;
    text-align: left;
}
.waku_caution table {
    border: 2px solid #b90c0c;
}
.waku_caution table tr td:nth-child(1) {
    background: #b90c0c;
}
.waku_caution table tr td:nth-child(2) {
    color: #b90c0c;
    text-align: left;
}
.waku_stock table {
    border: 2px solid #774104;
}
.waku_stock table tr td:nth-child(1) {
    background: #774104;
}
.waku_stock table tr td:nth-child(2) {
    color: #774104;
    text-align: left;
}
.waku_stock .sold-out {
    display: block;
    font-size: 0.65rem;
    padding-top: 0.3rem;
}
/*車種別適合表*/
#fitting table tr {
    text-align: center;
}
#fitting table tr img {
    min-width: 100px;
}
@media(max-width: 768px) {
    #fitting th, #fitting tr {
        font-size: 0.8rem;
    }
}
/*スマホ表示ボトムメニュー装飾*/
/*btm_navあり調整*/
#page_top {
	bottom: 80px;
}
@media(min-width: 420px) {
    #btm_nav {
        display: none;
    }
}
@media(max-width: 420px) {
    #top_nav {
        display: none;
    }
}
#btm_nav {
    background: #041f48;
    z-index: 3;
}
#btm_nav li {
    text-align: center;
}
#btm_nav li a {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: space-between;
    height: 100%;
    padding: 4px 0;
}
#btm_nav li img {
    max-width: 32px; /* 統一感あるアイコンサイズに調整 */
    height: auto;
    display: block;
}
#btm_nav li figcaption {
    font-size: 0.5rem;
    color: #fff;
    line-height: 1;
    /* height: 1.2em; */
    display: flex;
    align-items: flex-end;
    justify-content: center;
    margin-top: 4px;
    margin: 0.5rem 0 0;
}