.specific-customization h2.heading-type-line1, .specific-customization h2.heading-type-line2, .specific-customization h2.heading-type-line3 {
    position: relative;
}
.specific-customization h2.heading-type-line1 ::before, .specific-customization h2.heading-type-line2 ::before, .specific-customization h2.heading-type-line3 ::before {
    content: "";
    display: block;
    width: var(--2gap);
    height: 3px;
    position: absolute;
    top: -10px;
    left: 0;
}
@media screen and (max-width: 576px) {
    .specific-customization h2.heading-type-line1 ::before, .specific-customization h2.heading-type-line2 ::before, .specific-customization h2.heading-type-line3 ::before {
        height: 2px;
    }
}
.specific-customization h2.heading-type-line1 span.heading-sub-title, .specific-customization h2.heading-type-line2 span.heading-sub-title, .specific-customization h2.heading-type-line3 span.heading-sub-title {
    font-weight: normal;
    display: block;
    line-height: 1;
    letter-spacing: 0.005em;
    font-size: 1rem;
    font-family: "TJSans-Bold", "Noto Sans JP", sans-serif !important;
}
@media screen and (max-width: 576px) {
    .specific-customization h2.heading-type-line1 span.heading-sub-title, .specific-customization h2.heading-type-line2 span.heading-sub-title, .specific-customization h2.heading-type-line3 span.heading-sub-title {
        line-height: 1.2;
        font-size: 0.8666666667rem;
    }
}
.specific-customization h2.heading-type-line1 {
    color: initial;
}
.specific-customization h2.heading-type-line1 ::before {
    background-color: #F0252D;
}
.specific-customization h2.heading-type-line2 {
    color: #fff;
}
.specific-customization h2.heading-type-line2 ::before {
    background-color: #fff;
}
.specific-customization h2.heading-type-line3 {
    color: #fff;
}
.specific-customization h2.heading-type-line3 ::before {
    background-color: #F0252D;
}
.specific-customization.main-top .c-section__head-flex {
    padding-block: 10px 15px;
    align-items: end;
}
@media screen and (max-width: 576px) {
    .specific-customization.main-top .c-section__head-flex {
        padding-block: 10px 13px;
    }
}
.specific-customization.main-top .top-block-1 {
    background-color: #F0252D;
}
@media screen and (max-width: 576px) {
    .specific-customization.main-top .top-block-1 {
        padding: 20px 16px 30px;
    }
}
.specific-customization.main-top .top-block-1 .c-block-1 {
    margin-bottom: 40px;
    padding-top: 26px;
}
@media screen and (max-width: 767.98px) {
    .specific-customization.main-top .top-block-1 .c-block-1 {
        display: flex;
        flex-direction: column;
        margin-bottom: initial;
        padding-top: initial;
        padding-left: initial;
    }
}
@media screen and (max-width: 576px) {
    .specific-customization.main-top .top-block-1 .c-block-1 {
        flex-direction: column;
        margin-bottom: initial;
        padding-top: initial;
        padding-left: initial;
    }
}
.specific-customization.main-top .top-block-1 .c-block-1__ttl {
    width: 100%;
    padding-left: 14px;
}
@media screen and (max-width: 767.98px) {
    .specific-customization.main-top .top-block-1 .c-block-1__ttl {
        margin-left: -15px;
        padding-left: initial;
    }
}
.specific-customization.main-top .top-block-1 .c-block-1__txt {
    padding: 19px 20px 17px 28px;
    align-items: flex-end;
    font-size: clamp(0.9333333rem, 1.2vw, 1.125rem);
    line-height: 2.2;
}
@media screen and (max-width: 767.98px) {
    .specific-customization.main-top .top-block-1 .c-block-1__txt {
        padding: 12px 16px 42px;
        font-size: clamp(0.8rem, 3.667vw, 1.133333rem);
        /* min 12px - max 17px */
        line-height: 2;
    }
}
@media screen and (max-width: 576px) {
    .specific-customization.main-top .top-block-1 .c-block-1__txt {
        padding-inline: 0;
        line-height: 2;
    }
}
.specific-customization.main-top .top-block-1 .l-container {
    padding-bottom: 60px;
}
@media screen and (max-width: 576px) {
    .specific-customization.main-top .top-block-1 .l-container {
        padding-bottom: 18px;
    }
}
@media screen and (max-width: 576px) {
    .specific-customization.main-top .top-block-1 .l-container .c-section .l-container-sp {
        padding: initial;
    }
}
@media screen and (min-width: 993px) {
    .specific-customization.main-top .top-block-1 .l-container .c-section ul.c-card-list-1 li.c-card-list-1__item .c-card-list-1__item-link {
        padding-bottom: initial;
    }
}
.specific-customization.main-top .top-block-8 .c-section__head-flex .c-ttl-2.color-white ::before {
    background-color: #F0252D;
}
.specific-customization h1.c-detail-2__ttl {
    font-size: 2.625rem;
}
@media screen and (max-width: 576px) {
    .specific-customization h1.c-detail-2__ttl {
        font-size: 1.7333333333rem;
    }
}
.specific-customization .c-detail-1__head-txt-s {
    margin-top: -10px;
    font-size: 1.5rem;
    font-weight: normal;
}
@media screen and (max-width: 576px) {
    .specific-customization .c-detail-1__head-txt-s {
        margin-top: -6px;
        font-size: 0.9333333333rem;
    }
}
.specific-customization .c-detail-2__ttl-sub {
    font-family: "TJSans-Bold", "Noto Sans JP", sans-serif !important;
    font-size: 1.5rem;
}
@media screen and (max-width: 576px) {
    .specific-customization .c-detail-2__ttl-sub {
        font-size: 1.1333333333rem;
    }
}
.specific-customization .c-detail-1__head-ttl {
    font-size: 2.875rem;
}
@media screen and (min-width: 577px) and (max-width: 992px) {
    .specific-customization .c-detail-1__head-ttl {
        font-size: 2.625rem;
    }
}
@media screen and (max-width: 576px) {
    .specific-customization .c-detail-1__head-ttl {
        font-size: 1.7333333333rem;
    }
}
.specific-customization .c-detail-1__head-txt.color-red-1 {
    font-weight: bold;
}
@media screen and (max-width: 992px) {
    .specific-customization .c-detail-1__head-right {
        border-top: 1px solid #EFEFEF;
        padding-top: var(--0_5gap);
        margin-top: var(--1gap);
    }
}

.sns-list-txt {
    margin-bottom: 10px;
}
.sns-list-txt span {
    display: block;
    font-size: 0.875rem;
    font-weight: bold;
}
@media screen and (max-width: 576px) {
    .sns-list-txt span {
        font-size: 0.8rem;
    }
}
@media screen and (max-width: 576px) {
    .sns-list-txt + .c-sns-list-2 {
        margin-top: initial;
    }
}

.c-ttl-2 {
    letter-spacing: -0.02em;
}

.l-header-nav__item:not(.is-hover) .l-mega-menu {
    pointer-events: none;
}

.l-sub-nav__btn-line {
    display: block;
    width: 100%;
    height: 2.5px;
    background-color: #000;
}

@media screen and (max-width: 992px) {
    .l-sub-nav__btn-line {
        height: 2px;
    }
}
.l-sub-nav {
    position: sticky;
    top: 0;
    z-index: 10;
    display: flex;
    align-items: flex-start;
    height: calc(var(--sub-navi-height) * 1px);
    padding: 15px 5px 0 23.5px;
    background-color: #fff;
    font-size: 0.875rem;
    font-weight: 500;
    border-top: 1px solid #EFEFEF;
    backface-visibility: hidden;
}

.l-sub-nav__btn {
    padding: 15px 20px;
    margin-top: -11px;
    font-weight: inherit;
}

.l-sub-nav__nav {
    margin-top: -6px;
    margin-right: 10px;
}

@media screen and (max-width: 992px) {
    .l-sub-nav {
        padding: 13px 0 0 15px;
    }
    .l-sub-nav__btn {
        padding: 16px;
        margin-top: -14px;
    }
    .l-sub-nav__btn-lines {
        width: 16px;
        height: 8px;
    }
    .l-sub-nav__ttl {
        font-size: 0.733333rem;
        /* eq.11px */
        text-overflow: ellipsis;
        overflow: hidden;
        white-space: nowrap;
    }
}
footer.l-footer {
    padding: 40px 0 0;
    background-color: #000;
    color: #fff;
}
@media screen and (max-width: 576px) {
    footer.l-footer {
        padding-bottom: 15px;
    }
}
footer.l-footer::after {
    content: "";
    display: block;
    width: 100%;
    height: auto;
    aspect-ratio: 1920/235;
    background-image: url(/assets/img/common/footer_bg.svg);
    background-repeat: no-repeat;
    background-position: right bottom;
    background-size: 100% auto;
    margin-top: calc(-1 * var(--1gap));
}
@media screen and (max-width: 1400px) {
    footer.l-footer::after {
        height: 200px;
        aspect-ratio: auto;
        background-size: auto 200px;
    }
}
@media screen and (max-width: 576px) {
    footer.l-footer::after {
        height: auto;
        aspect-ratio: 375/200;
        background-image: url(/assets/img/common/sp/footer_bg_sp.svg);
        background-size: 100% auto;
    }
}
footer.l-footer .l-footer__container {
    width: 100%;
    max-width: 1320px;
    margin-inline: auto;
    padding-inline: 20px;
}
footer.l-footer .l-footer-nav .l-footer-nav__lvl-trigger {
    border-color: #3C3C3C;
}
footer.l-footer .l-footer-nav .l-footer-nav__lvl-trigger-icon::before, footer.l-footer .l-footer-nav .l-footer-nav__lvl-trigger-icon::after {
    background-color: #fff;
}
footer.l-footer .l-footer-sub-nav-1__item:not(:last-of-type)::after {
    background-color: #3C3C3C;
}
footer.l-footer .l-footer-sub-nav-2__item--lang .l-footer-sub-nav-2__link::before {
    -webkit-mask: url(/assets/img/common/icon_language_white.svg) 0 0/100% 100% no-repeat;
            mask: url(/assets/img/common/icon_language_white.svg) 0 0/100% 100% no-repeat;
    background-color: #fff;
}

.l-footer-pagetop {
    position: fixed;
    bottom: 10px;
    right: 10px;
    z-index: 9;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s, visibility 0.3s;
}

.l-footer-pagetop__link {
    display: block;
    width: 50px;
    height: 0;
    padding-top: 50px;
    background: rgba(255, 255, 255, 0.33) url(/assets/img/common/icon_pagetop.svg) 50% 50%/20px auto no-repeat;
    overflow: hidden;
}

@media screen and (max-width: 992px) {
    .l-footer-pagetop {
        bottom: 32px;
        right: 6px;
    }
    .l-footer-pagetop__link {
        width: 36px;
        padding-top: 36px;
        background-size: 16px;
    }
}
@media (hover: hover) and (pointer: fine) {
    .hover-zoom-img img {
        transition: scale 1s cubic-bezier(0.1, 0.88, 0.1, 0.88);
    }
}
@media (prefers-reduced-motion: reduce) {
    a:hover .hover-zoom-img img {
        scale: 1;
        transition: unset;
    }
}
.c-btn-toggle__icon-toggle::before,
.c-btn-toggle__icon-toggle::after {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    content: "";
    display: block;
    background-color: currentColor;
}

@media (hover: hover) and (pointer: fine) {
    .c-btn-sm:hover,
    .c-btn--type2:hover,
    .c-btn-toggle:hover,
    .c-btn-toggle-2:hover,
    .c-btn-toggle-3:hover {
        opacity: unset;
        background-color: #000;
        color: #fff;
    }
    .c-btn-sm,
    .c-btn-sm::after,
    .c-btn--type2,
    .c-btn--type2::after,
    .c-btn-toggle,
    .c-btn-toggle::after,
    .c-btn-toggle-2,
    .c-btn-toggle-2::after,
    .c-btn-toggle-3,
    .c-btn-toggle-3::after {
        transition: opacity 0.15s ease-in-out, background-color 0.15s ease-in-out, color 0.15s ease-in-out;
    }
    .c-btn-sm:hover::after,
    .c-btn--type2:hover::after,
    .c-btn-toggle:hover::after,
    .c-btn-toggle-2:hover::after,
    .c-btn-toggle-3:hover::after {
        background-color: #fafafa;
    }
}
@media (prefers-reduced-motion: reduce) {
    .c-btn-sm,
    .c-btn-sm::after,
    .c-btn--type2,
    .c-btn--type2::after,
    .c-btn-toggle,
    .c-btn-toggle::after,
    .c-btn-toggle-2,
    .c-btn-toggle-2::after,
    .c-btn-toggle-3,
    .c-btn-toggle-3::after {
        transition-duration: 1ms;
    }
}