@charset "utf-8";

/* common */
@media (min-width: 769px) {
    .hd_logo {
        background-image: url(../img/common/hd_logo_gray.svg);
    }
    .hd_white .hd_logo {
        background-image: url(../img/common/hd_logo_white.svg);
    }
}

/* kv */
.kv {
    position: relative;
    background-color: var(--color-white);
}
.opening {
    background-color: var(--color-white);
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    text-align: center;
    perspective: 800px;
    z-index: calc(var(--zIndexMenu) + 1);
}

.op_ttl,
.op_logo {
    position: relative;
}
.op_ttl_1,
.op_ttl_2,
.op_ttl_3,
.op_logo {
    opacity: 0;
}
.svg_path {
    position: absolute;
    top: 50%;
    left: 50%;
    translate: -50% -50%;
    height: auto;
    z-index: 1;
    pointer-events: none;
}
.op_gra_wrap {
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    left: 0;
}

@media (min-width: 769px) {
    .svg_path4 {
        top: 25%;
        width: 130%;
        rotate: 4deg;
    }
    .svg_path5 {
        top: 35%;
        width: 100%;
        rotate: -2deg;
    }
    .svg_path6 {
        top: 50%;
        rotate: 12deg;
        width: 110%;
    }
}
@media (max-width: 768px) {
    .op_logo {
        width: 200rem;
    }
    .svg_path4 {
        top: 37%;
        width: 150%;
        rotate: 4deg;
    }
    .svg_path5 {
        top: 46%;
        width: 162%;
        rotate: -2deg;
    }
    .svg_path6 {
        top: 55%;
        rotate: 7deg;
        width: 170%;
    }
}


.op_gra_1,
.op_gra_2,
.op_gra_3,
.op_gra_4,
.op_gra_5,
.op_gra_6,
.op_gra_7,
.op_gra_8 {
    pointer-events: none;
    position: absolute;
    top: 50%;
    left: 50%;
}
.gra_gold {
    background: url(../img/common/gra_gold.svg) no-repeat center center;
    background-size: contain;
}
.gra_blue {
    background: url(../img/common/gra_blue.svg) no-repeat center center;
    background-size: contain;
}
.gra_pink {
    background: url(../img/common/gra_pink.svg) no-repeat center center;
    background-size: contain;
}
.kv_slides {
    height: 100%;
    display: flex;
    flex-direction: column;
}
.kv_img_area {
    flex: 1 auto;
    display: flex;
    justify-content: space-between;
    overflow: hidden;
}
.kv_copy_wrap {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.kv_ttl,
.op_ttl {
    --letterSpacing:0;
    position: relative;
    z-index: 10;
}
.op_ttl_word,
.kv_ttl_word {
    display: inline-block;
}
.kv_img_wrap {
    overflow: hidden;
    width: calc((100% / 3 ) - var(--gap));
}
.kv_img_area {
    position: relative;
}
.kv_img_1_gra1,
.kv_img_1_gra2,
.kv_img_1_gra3 {
    position: absolute;
    z-index: 1;
    aspect-ratio: 1/1;
}
.js_kv_gra_wrap {
    pointer-events: none;
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    z-index: 2;
    opacity: 1;
    perspective: 800px;
}
.js_kv_gra {
    position: absolute;
    top: 50%;
    left: 50%;
    aspect-ratio: 1 / 1;
}
.js_kv_gra_in,
.slide4_gra_in {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 1;
    translate: 0 0;
    transition: translate 2s ease-out, opacity 2s ease-out;
}
.start_rotate .js_kv_gra_in,
.start_rotate .slide4_gra_in {
    opacity: 0;
}
.kv_gra_transition_wrap {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 2;
    perspective: 400px;
}
.gra_transition_list {
    transition: opacity 1s;
    opacity: 0;
}
.kv_gra_transition_wrap[data-kv="rd"] .kv_gra_transition {
    background: url(../img/common/gra_blue.svg) no-repeat center center / contain;
}
.kv_gra_transition_wrap[data-kv="quality"] .kv_gra_transition {
    background: url(../img/common/gra_gold.svg) no-repeat center center / contain;
}
.kv_gra_transition_wrap[data-kv="ba"] .kv_gra_transition {
    background: url(../img/common/gra_pink.svg) no-repeat center center / contain;
}
.kv_gra_transition_wrap[data-kv="shugo"] .kv_gra_transition:nth-child(1),
.kv_gra_transition_wrap[data-kv="shugo"] .kv_gra_transition:nth-child(4),
.kv_gra_transition_wrap[data-kv="shugo"] .kv_gra_transition:nth-child(7) {
    background: url(../img/common/gra_pink.svg) no-repeat center center / contain;
}
.kv_gra_transition_wrap[data-kv="shugo"] .kv_gra_transition:nth-child(2),
.kv_gra_transition_wrap[data-kv="shugo"] .kv_gra_transition:nth-child(5),
.kv_gra_transition_wrap[data-kv="shugo"] .kv_gra_transition:nth-child(8) {
    background: url(../img/common/gra_blue.svg) no-repeat center center / contain;
}
.kv_gra_transition_wrap[data-kv="shugo"] .kv_gra_transition:nth-child(3),
.kv_gra_transition_wrap[data-kv="shugo"] .kv_gra_transition:nth-child(6),
.kv_gra_transition_wrap[data-kv="shugo"] .kv_gra_transition:nth-child(9) {
    background: url(../img/common/gra_gold.svg) no-repeat center center / contain;
}
.kv_gra_transition {
    position: absolute;
    top: 50%;
    left: 50%;
    aspect-ratio: 1 / 1;
    width: 10%;
}

@media (min-width: 769px) {
    .op_gra_1 {
        width: 144px;
        height: 144px;
        left: 7%;
        top: 70%;
    }
    .op_gra_2 {
        width: 190px;
        height: 190px;
        top: 20%;
        left: 5.3%;
        opacity: .8;
    }
    .op_gra_3 {
        width: 130px;
        height: 130px;
        left: 36%;
        top: 40%;
    }
    .op_gra_4 {
        width: 256px;
        height: 256px;
        left: 45%;
        top: 1%;
        opacity: .4;
    }
    .op_gra_5 {
        width: 254px;
        height: 254px;
        left: 45%;
        top: 77%;
        opacity: .6;
    }
    .op_gra_6 {
        width: 220px;
        height: 220px;
        left: 56%;
        top: 45%;
    }
    .op_gra_7 {
        width: 180px;
        height: 180px;
        left: 80.5%;
        top: -6%;
    }
    .op_gra_8 {
        width: 158px;
        height: 158px;
        left: 83%;
        top: 66.4%;
    }

    .kv_img_1_gra2 {
        width: 7.2%;
        bottom:7%;
        left: 4%;
    }
    .kv_img_1_gra1 {
        width: 20.5%;
        top: 50%;
        left: 50%;
    }
    .kv_img_1_gra3 {
        width: 9.7%;
        top: 10%;
        right: -4%;
    }

    .kv_img_rd_gra1 {
        width: 12.1%;
        left: -5%;
        top: 29%;
    }
    .kv_img_rd_gra2 {
        width: 10%;
        top: 88%;
        left: 8%;
    }
    .kv_img_rd_gra3 {
        width: 9.6%;
        left: 30%;
        top: 72%;
    }
    .kv_img_rd_gra4 {
        width: 12.2%;
        left:82%;
        top: 68%;
    }
    .kv_img_rd_gra5 {
        width: 12%;
        top: -10%;
        left: 78%;
    }
    .kv_img_rd_gra6 {
        width: 11.5%;
        left: 93%;
        top: 20%;
        opacity: .6;
    }

    .kv_img_quality_gra1 {
        width: 19.9%;
        top: 17%;
        left: -10%;
    }
    .kv_img_quality_gra2 {
        width: 10.2%;
        top: 68%;
        left: 10%;
    }
    .kv_img_quality_gra3 {
        width: 12.1%;
        top: 12%;
        left: 34%;
    }
    .kv_img_quality_gra4 {
        width: 12.1%;
        top: 60%;
        left: 56%;
        opacity: .6;
    }
    .kv_img_quality_gra5 {
        width: 15%;
        top: 53%;
        left: 75%;
    }
    .kv_img_quality_gra6 {
        width: 11.6%;
        top: 24%;
        left: 86%;
        opacity: .6;
    }
    .kv_img_quality_gra7 {
    }

    .kv_img_ba_gra1 {
        width: 18%;
        top: 29%;
        left: -7%;
        opacity: .8;
    }
    .kv_img_ba_gra2 {
        width: 10.7%;
        top: 14%;
        left: 26%;
    }
    .kv_img_ba_gra3 {
        width: 17%;
        top: 57%;
        left: 51%;
        opacity: .6;
    }
    .kv_img_ba_gra4 {
        width: 16.4%;
        top: 10%;
        left: 69%;
        opacity: .6;
    }
    .kv_img_ba_gra5 {
        width: 10%;
        top: 53%;
        left: 95%;
    }
    .start_rotate .slide4_gra_in {
        translate: -200px -25px;
    }
    .start_rotate .rotate_toLeftTop .js_kv_gra_in {
        translate: -200px -25px;
    }
    .start_rotate .rotate_toLeftBottom .js_kv_gra_in{
        translate: -200px 25px;
    }
    .start_rotate .rotate_toRightTop .js_kv_gra_in {
        translate: 200px -25px;
    }
    .start_rotate .rotate_toRightBottom .js_kv_gra_in {
        translate: 200px 25px;
    }
}
@media (max-width: 768px) {
    .op_gra_1 {
        width: 104rem;
        height: 104rem;
        left: 3%;
        top: 73%;
    }
    .op_gra_2 {
        width: 150rem;
        height: 150rem;
        top: 17%;
        left: -14.7%;
        opacity: .8;
    }
    .op_gra_3 {
        width: 90rem;
        height: 90rem;
        left: 25%;
        top: 35%;
    }
    .op_gra_4 {
        width: 200rem;
        height: 200rem;
        left: 25%;
        top: -2%;
        opacity: .4;
    }
    .op_gra_5 {
        width: 214rem;
        height: 214rem;
        left: 45%;
        top: 77%;
        opacity: .6;
    }
    .op_gra_6 {
        width: 150rem;
        height: 150rem;
        left: 69%;
        top: 45%;
    }
    .op_gra_7 {
        width: 140rem;
        height: 140rem;
        left: 80.5%;
        top: -15%;
    }
    .op_gra_8 {
        width: 118rem;
        height: 118rem;
        left: 95%;
        top: 66.4%;
    }

    .kv_img_1_gra2 {
        width: 32.2%;
        bottom: 6%;
        left: -6%;
    }
    .kv_img_1_gra1 {
        width: 42.5%;
        top: 55%;
        left: 43%;
    }
    .kv_img_1_gra3 {
        width: 32.7%;
        top: -1%;
        right: -19%;
    }

    .kv_img_rd_gra1 {
        width: 33.1%;
        left: -10%;
        top: 67%;
    }
    .kv_img_rd_gra2 {
        width: 30%;
        top: 37%;
        left: 19%;
    }
    .kv_img_rd_gra3 {
        width: 42.6%;
        left: 49%;
        top: 58%;
    }
    .kv_img_rd_gra4 {
        width: 33.2%;
        left:85%;
        top:-13%;
    }
    .kv_img_rd_gra5 {
        opacity: 0;
    }
    .kv_img_rd_gra6 {
        opacity: 0;
    }

    .kv_img_quality_gra1 {
        width: 43.9%;
        top: 57%;
        left: -25%;
    }
    .kv_img_quality_gra2 {
        width: 30.2%;
        top: 2%;
        left: 22%;
    }
    .kv_img_quality_gra3 {
        width: 44.1%;
        top: 56%;
        left: 36%;
    }
    .kv_img_quality_gra4 {
        width: 25.1%;
        top: 50%;
        left: 75%;
        opacity: .6;
    }
    .kv_img_quality_gra5,
    .kv_img_quality_gra6,
    .kv_img_quality_gra7 {
        opacity: 0;
    }

    .kv_img_ba_gra1 {
        width: 39.7%;
        top: 10%;
        left: -23%;
        opacity: .8;
    }
    .kv_img_ba_gra2 {
        width: 24.7%;
        top: 8%;
        left: 23%;
    }
    .kv_img_ba_gra3 {
        width: 40%;
        top: 52%;
        left: 55%;
        opacity: .6;
    }
    .kv_img_ba_gra4 {
        width: 33.4%;
        top: -6%;
        left: 83%;
        opacity: .6;
    }
    .kv_img_ba_gra5 {
        opacity: 0;
    }
    .kv_gra_transition {
        width: 30%;
    }

    .start_rotate .rotate_toLeftTop .js_kv_gra_in {
        translate: -200rem -25rem;
    }
    .start_rotate .rotate_toLeftBottom .js_kv_gra_in{
        translate: -200rem 25rem;
    }
    .start_rotate .rotate_toRightTop .js_kv_gra_in {
        translate: 200rem -25rem;
    }
    .start_rotate .rotate_toRightBottom .js_kv_gra_in {
        translate: 200rem 25rem;
    }
    .start_rotate .rotate_toLeftBottom.kv_img_rd_gra4 .js_kv_gra_in {
        translate: 200rem 25rem;
    }
    .start_rotate .rotate_toRightBottom.kv_img_rd_gra1 .js_kv_gra_in {
        translate: -200rem 25rem;
    }
    .start_rotate .rotate_toRightBottom.kv_img_quality_gra3 .js_kv_gra_in,
    .start_rotate .rotate_toRightTop.kv_img_quality_gra1 .js_kv_gra_in {
        translate: -200rem 25rem;
    }
    .start_rotate .rotate_toLeftTop.kv_img_quality_gra2 .js_kv_gra_in {
        translate: 200rem 25rem;
    }
}


.kv_img {
    width: 100%;
    height: 100%;
}
.swiper.kv_slider {
    perspective: 400px;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    box-sizing: border-box;
    overflow: visible;
}
.swiper.kv_slider.is_hide {
    opacity: 0;
}
.kv_img_area {
    height: 100%;
}
.kv_slides_inner {
    height: 100%;
    position: relative;
}

.kv_img_wrap {
    height: 100%;
}
.kv_img_wrap:nth-child(1),
.kv_img_wrap:nth-child(3) {
    position: absolute;
    height: 100%;
    top: 0;
}
.kv_img_wrap:nth-child(1) {
    left: 0;
}
.kv_img_wrap .bg_white {
    position: absolute;
    top: 0;
    width: var(--gap);
    height: 100%;
    background-color: var(--color-white);
    z-index: 1;
}
.kv_img_wrap:nth-child(1) .bg_white {
    right: calc(var(--gap) * -1);
}
.kv_img_wrap:nth-child(3) .bg_white {
    left: calc(var(--gap) * -1);
}
.kv_img_wrap:nth-child(2) {
    margin: auto;
    position: relative;
    z-index: 1;
    width: calc(100%/3);
}
.kv_img_wrap:nth-child(3) {
    right: 0;
}
.kv_img_area.is_hide {
    opacity: 0;
}
.kv_img_rd_wrap,
.kv_img_quality_wrap,
.kv_img_ba_wrap,
.kv_img_shugo_wrap {
    height: 100%;
    overflow: hidden;
}
.kv_img_rd,
.kv_img_quality,
.kv_img_ba {
    height: 100%;
    width: 100%;
}
.kv_img_shugo_wrap {
    display: flex;
    gap: var(--gap);
}
.kv_img_rd {
    scale: 1.04;
}
@media (min-width: 769px) {
    .kv {
        height: calc(100vh - var(--commonHeaderHeight));
    }
    .opening {
        row-gap: 60px;
        padding-top: 80px;
    }
    .kv_slides {
        --gap:24px;
    }
    .kv_copy_wrap {
        min-height: 143px;
        padding: 30px 0 40px;
    }
    .op_ttl,
    .kv_ttl {
        font-size: 56px;
        line-height: 1.5;
        padding-left: 24px;
    }
    .op_ttl_l,
    .kv_ttl_l {
        font-size: 72px;
        position: relative;
        top: 4px;
    }

    .kv_img_quality,
    .kv_img_1_2 {
        background: url(../img/top/kv_img_2.webp) no-repeat 55% center;
        background-size: cover;
    }
    .kv_img_rd,
    .kv_img_1_1 {
        background: url(../img/top/kv_img_1.webp) no-repeat 50% 30%;
        background-size: cover;
    }
    .kv_img_ba,
    .kv_img_1_3 {
        background: url(../img/top/kv_img_3.webp) no-repeat 45% center;
        background-size: cover;
    }
}

@media (max-width: 768px) {
    .kv,
    .kv_slides {
        max-height: 602rem;
        min-height: 602rem;
    }
    .kv {
        height: 100svh;
        padding-top: var(--menuBtnHeight);
    }
    .opening {
        row-gap: 40rem;
        padding-top: 40rem;
        height: 100svh;
    }
    .kv_slides {
        --gap:9rem;
    }
    .kv_copy_wrap {
        padding: 24rem 0 32rem;
        min-height: 156rem;
    }
    .op_ttl,
    .kv_ttl {
        font-size: 30rem;
        line-height: 1.5;
        padding-left: 15rem;
    }
    .op_ttl_l,
    .kv_ttl_l {
        font-size: 38rem;
        position: relative;
        top: 2rem;
    }
    .kv_img_quality,
    .kv_img_1_2 {
        background: url(../img/top/kv_img_2_sp.webp) no-repeat 59% center;
        background-size: cover;
    }
    .kv_img_rd,
    .kv_img_1_1 {
        background: url(../img/top/kv_img_1_sp.webp) no-repeat 50% center;
        background-size: cover;
    }
    .kv_img_ba,
    .kv_img_1_3 {
        background: url(../img/top/kv_img_3_sp.webp) no-repeat 48% center;
        background-size: cover;
    }
}

/* lead */
.lead_wrap {
    background-color: var(--color-white);
    position: relative;
}
.lead {
    position: relative;
    text-align: center;
    display: flex;
    align-items: center;
}
.lead_circle {
    position: absolute;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    left: 50%;
    translate: -50% 0;
    background: linear-gradient(221.12deg, #FAD9D8 11.91%, #C2EEEE 48.62%, #E9E1C5 85.32%);
    border: 2px solid transparent;
    -webkit-mask-image: linear-gradient(#fff 0 0), linear-gradient(#fff 0 0);
    -webkit-mask-clip: padding-box, border-box;
    -webkit-mask-composite: destination-out;
    mask-image: linear-gradient(#fff 0 0), linear-gradient(#fff 0 0);
    mask-clip: padding-box, border-box;
    -webkit-mask-composite: xor;
    mask-composite: exclude;
}
.lead_circle::after {
    content: "";
    display: block;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0) 0%, rgba(102, 102, 102, 0.75) 50%, rgba(255, 255, 255, 0) 100%);
    height: 51%;
    transform: translate(0);
    position: absolute;
    z-index: 0;
    top: 50%;
    transform-origin: top center;
    opacity: 0;
}
.lead_txt_wrap {
    position: relative;
    z-index: 1;
    margin-inline: auto;
}
.lead_txt_word {
    display: inline-block;
}
.lead_img_1,
.lead_img_2,
.lead_img_3,
.lead_img_4,
.lead_img_5 {
    position: absolute;
}
@media (min-width: 769px) {
    .lead_wrap {
        padding-top: 160px;
        padding-bottom: 160px;
    }
    .lead {
        margin-inline: auto;
        height: 840px;
    }
    .lead_circle {
        width: 840px;
        height: 840px;
        top: 28px;
    }
    .lead_circle::after {
        width: 100px;
    }
    .lead_txt_wrap {
        max-width: 65%;
        width: 530px;
    }
    .lead_txt_1 {
        font-size: 18px;
        line-height: 3;
    }
    .lead_txt_2 {
        font-size: 24px;
        line-height: 2.5;
    }
    .lead_txt_1 + .lead_txt_2 {
        margin-top: 64px;
    }
    .lead_img_1 {
        top: 0;
    }
    .lead_img_2 {
        top: -28px;
    }
    .lead_img_3 {
        top: 201px;
    }
    .lead_img_4 {
        top: 569px;
    }
    .lead_img_5 {
        top: 569px;
    }
}
/* 1. ～960px：ピクセル固定 */
@media (max-width:1140px) {
    .lead_txt_word_2,
    .lead_txt_word_3 {
        width: 100%;
    }
}
@media (min-width: 769px) and (max-width:960px) {
    .lead_img_1 {
        left: 50%;
        margin-left: -600px;
    }
    .lead_img_2 {
        left: 50%;
        margin-left: 136px;
    }
    .lead_img_3 {
        left: 50%;
        margin-left: 340px;
    }
    .lead_img_4 {
        left: 50%;
        margin-left: 250px;
    }
    .lead_img_5 {
        left: 50%;
        margin-left: -506px;
    }
}
/* 2. 961px〜1440px：パーセント */
@media (min-width: 961px) and (max-width: 1440px) {
    .lead {
        width: 100%;
    }
    .lead_img_1 {
        left: -7.8%;
    }
    .lead_img_2 {
        right: 16%;
    }
    .lead_img_3 {
        right: -9%;
    }
    .lead_img_4 {
        right: -6%;
    }
    .lead_img_5 {
        left: -2%;
    }
}
/* 3. 1441px～：デザインの位置に固定 */
@media (min-width:1441px) {
    .lead {
        max-width: 1440px;
    }
    .lead_img_1 {
        left: 50%;
        margin-left: -734px;
    }
    .lead_img_2 {
        left: 50%;
        margin-left: 217px;
    }
    .lead_img_3 {
        left: 50%;
        margin-left: 495px;
    }
    .lead_img_4 {
        left: 50%;
        margin-left: 283px;
    }
    .lead_img_5 {
        left: 50%;
        margin-left: -582px;
    }
}
@media (max-width: 768px) {
    .lead_wrap {
        padding-top: 102rem;
        padding-bottom: 120rem;
    }
    .lead {
        padding-block: 128rem 171rem;
    }
    .lead_circle {
        width: 800rem;
        height: 800rem;
        top: 0;
    }
    .lead_circle::after {
        width: 100rem;
    }
    .lead_txt_1 {
        padding-inline: 30rem;
        font-size: 14rem;
        line-height: 3;
    }
    .lead_txt_2 {
        font-size: 18rem;
        line-height: 2.5;
    }
    .lead_txt_2 .lead_txt_word {
        display: block;
    }
    .lead_txt_1 + .lead_txt_2 {
        margin-top: 32rem;
    }
    .lead_img_1 {
        top: -41rem;
        left: 42rem;
        width: 193rem;
    }
    .lead_img_2 {
        top: 120rem;
        left: -16rem;
        width: 96rem;
    }
    .lead_img_3 {
        top: 27rem;
        right: -36rem;
        width: 156rem;
    }
    .lead_img_4 {
        bottom: 0;
        right: -23rem;
        width: 192rem;
    }
    .lead_img_5 {
        bottom: 45rem;
        left: -10rem;
        width: 138rem;
    }
}
.animation_ready .lead_circle {
    rotate: 0deg;
    transition: rotate 1s ease;
}
.animation_loaded .lead_circle.is_animated {
    rotate: 360deg;
}

/* commitment */
.commitment_section {
    height: 100vh;
    width: 100%;
    position: relative;
}
.commitment_section_link_wrap {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    margin-inline: auto;
    position: absolute;
    top: 0;
    width: 100%;
    height: 100%;
    left: 0;
    max-width: 1200px;
}
.commitment_section_link {
    position: relative;
}
.commitment_section_link::before {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
    margin: auto;
    background-color: var(--color-white);
}
.commitment_section_link::after {
    content: '';
    display: block;
    position: absolute;
    bottom: 0;
    right: 0;
    transform-origin: 20% 20%;
}
.commitment_section_rd .commitment_section_link::after {
    background: url(../img/common/gra_blue.svg) no-repeat center center / contain;
}
.commitment_section_quality .commitment_section_link::after {
    background: url(../img/common/gra_gold.svg) no-repeat center center / contain;
}
.commitment_section_ba .commitment_section_link::after {
    background: url(../img/common/gra_pink.svg) no-repeat center center / contain;
}
.commitment_section_link_inner {
    position: relative;
    z-index: 1;
}
.commitment_section_link_subttl {
    display: flex;
}
.commitment_section_link_subttl_en {
    color: var(--color-gray);
}
.commitment_section_link_subttl_ja {
    position: relative;
}
.commitment_section_link_subttl_ja::before {
    content: '';
    display: block;
    width: 1px;
    background-color: var(--color-gray-main);
    position: absolute;
    left: 0;
}
.commitment_section_link_ttl {
    --letterSpacing:-0.05em;
    display: inline-block;
}
.commitment_section_link .btn {
    margin-left: auto;
}
.anim_border {
    position: relative;
}
@media (min-width: 769px) {
    .commitment {
        height: calc(300vh + 300px);
    }
    .commitment_sticky {
        position: sticky;
        top: 0;
        left: 0;
        height: 100vh;
    }
    .commitment_section {
        position: absolute;
        top: 0;
        left: 0;
        pointer-events: none;
    }
    .commitment_section_bg {
        position: relative;
        top: 0;
    }
    .commitment_section_bg_img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100svh;
        height: 100vh;
        object-fit: cover;
        opacity: 0;
        transition: opacity .8s;
        pointer-events: none;
    }
    .commitment_section_dummy_wrap {
        margin-top: -100vh;
        margin-top: calc(-100vh + 150px);
        pointer-events: none;
    }
    .commitment_section_dummy {
        height: 100vh;
    }
    .commitment_section_link_wrap {
        right: 40px;
    }
    .commitment_section_link {
        max-width: 575px;
        width: 51.66%;
        padding: 64px;
    }
    .commitment_section_rd .commitment_section_bg_img {
        opacity: 1;
        object-position: 50% 50%;
    }
    .commitment_section_quality .commitment_section_bg_img {
        object-position: 35% 50%;
    }
    .commitment_section_ba .commitment_section_bg_img {
        object-position: 35% 50%;
    }
    .commitment_section_link_subttl {
        font-size: 14px;
    }
    .commitment_section_link_subttl_en {
        padding-right: 16px;
    }
    .commitment_section_link_subttl_ja {
        padding-left: 16px;
    }
    .commitment_section_link_subttl_ja::before {
        height: 16px;
        top: 0;
        bottom: 0;
        margin: auto;
    }
    .commitment_section_link_ttl {
        font-size: 40px;
        margin-top: 32px;
        line-height: calc(37 / 40);
        padding: 0 2px 4px;
    }
    .commitment_section_link_txt {
        margin-top: 32px;
        font-size: 16px;
        line-height: 2.5;
        word-break: keep-all;
    }
    .commitment_section_link .btn {
        font-size: 12px;
        border-radius: 25px;
        line-height: 1;
        min-width: 111px;
        padding-block: 6px;
        margin-top: 32px;
    }
    .commitment_section_link::after {
        width: 230px;
        height: 230px;
        bottom: 50px;
        right: 40px;
    }
    @media (hover:hover) {
        .commitment_section_link::after {
            scale: 1;
            transition: scale .8s ease-out,offset-distance .8s ease-out,translate .8s ease-out;
            offset-distance: 0%;
            offset-rotate: 0deg;
            translate: 30px 10px;
            offset-path: path("M1.5 16C1.5 16 38.242 -11.2575 59 9.5003C81.5 32 3 53.5 32 78.5");
        }
        .commitment_section_link:hover::after {
            scale: 1.8;
            offset-distance: 100%;
            translate: 10px -30px;
        }
        .commitment_section_link .btn {
            transition: color .3s, background .3s;
        }
        .commitment_section_link:hover .btn {
            background-color: var(--color-gray-main);
            color: var(--color-white);
        }
    }
    .commitment_section_link {
        opacity: 0;
        translate: 0 20px;
        pointer-events: none;
        visibility: hidden;
        transition: opacity .2s 0s, translate .2s 0s, visibility .2s 0s;
    }
    .is_visible  .commitment_section_link {
        opacity: 1;
        translate: 0 0;
        pointer-events: auto;
        visibility: visible;
        transition: opacity .4s .2s, translate .4s .2s, visibility .4s .2s;
    }
    .is_visible .commitment_section_bg_img {
        opacity: 1;
    }
    .is_visible .anim_border::before,
    .is_visible .anim_border .anim_border_inner::before {
        height: 100%;
    }
    .is_visible .anim_border::after,
    .is_visible .anim_border .anim_border_inner::after {
        width: 100%;
    }
    .is_visible .commitment_section_link_txt {
        opacity: 1;
        transform: translateY(0);
        transition: opacity .6s .2s, transform .6s .2s;
    }
    .is_visible .commitment_section_link_btn {
        opacity: 1;
        transform: translateY(0);
        transition: opacity .6s .3s, transform .6s .3s;
    }
}
@media (min-width: 769px) and (max-width:1120px) {
    .anim_border_tab {
        display: inline-block;
        position: relative;
    }
    .anim_border_tab_inner {
        position: relative;
        display: inline-block;
        word-break: keep-all;
    }
    .anim_border_tab + .anim_border_tab {
        margin-left: 22%;
    }
    .anim_border_tab:nth-child(2) {
        position: relative;
        top: -1px;
    }
    .commitment_section_link_ttl_ba::before,
    .commitment_section_link_ttl_ba::after,
    .commitment_section_link_ttl_ba .anim_border_inner::before,
    .commitment_section_link_ttl_ba .anim_border_inner::after {
        opacity: 0;
    }
    .anim_border_tab::before,
    .anim_border_tab_inner::before,
    .anim_border_tab::after,
    .anim_border_tab_inner::after {
        content: '';
        display: block;
        background-color: var(--color-gray-main);
        position: absolute;
    }
    .anim_border_tab::before,
    .anim_border_tab_inner::before {
        height: 0;
        width: 1px;
        transition: height .4s .2s ease;
    }
    .anim_border_tab::after,
    .anim_border_tab_inner::after {
        height: 1px;
        width: 0;
        transition: width .4s .1s ease;
    }
    .anim_border_tab::before {
        top: 0;
        right: 0;
    }
    .anim_border_tab::after {
        top: 0;
        left: 0;
    }
    .anim_border_tab_inner::before {
        bottom: 0;
        left: 0;
    }
    .anim_border_tab_inner::after {
        bottom: 0;
        right: 0;
    }
    .is_visible .anim_border_tab::before,
    .is_visible .anim_border_tab_inner::before {
        height: 100%;
    }
    .is_visible .anim_border_tab::after,
    .is_visible .anim_border_tab_inner::after {
        width: 100%;
    }
}
@media (max-width: 768px) {
    .commitment_section {
        height: 772rem;
        min-height: 100vh;
    }
    .commitment_section_bg {
        position: relative;
        top: 0;
    }
    .commitment_section_bg_img {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 672rem;
        object-fit: cover;
        transition: height 1.4s;
    }
    .commitment_section_link_wrap {
        padding-inline: 24rem;
        align-items: flex-start;
        padding-top: 248rem;
    }
    .commitment_section.is_visible .commitment_section_bg_img {
        height: 480rem;
    }
    .commitment_section_link {
        width: 100%;
        padding: 40rem 32rem;
        translate: 0 40rem;
        opacity: 0;
        transition: opacity .4s 0s, translate .4s 0s;
    }
    .commitment_section.is_visible .commitment_section_link {
        translate: 0 0;
        opacity: 1;
        transition: opacity .6s .8s, translate .6s .8s;
    }
    .commitment_section_link_subttl {
        font-size: 11rem;
    }
    .commitment_section_link_subttl_en {
        padding-right: 8rem;
    }
    .commitment_section_link_subttl_ja {
        padding-left: 8rem;
    }
    .commitment_section_link_subttl_ja::before {
        height: 8rem;
        bottom: 3rem;
    }
    .commitment_section_link_ttl {
        font-size: 25rem;
        margin-top: 28rem;
        line-height: calc(37 / 40);
        padding: 0 1rem 2rem;
    }
    .commitment_section_link_txt {
        margin-top: 24rem;
        font-size: 13rem;
        line-height: 2.5;
    }
    .commitment_section_link .btn {
        font-size: 10rem;
        border-radius: 40rem;
        line-height: 1;
        min-width: 132rem;
        padding-block: 16rem;
        margin-top: 24rem;
    }
    .commitment_section_link::after {
        width: 190rem;
        height: 190rem;
        bottom: 45rem;
        right: -60rem;
    }
}

/* message */
.message {
    text-align: center;
    position: relative;
}
.message_img_wrap,
.message_img_list {
    display: flex;
}
.message_img_loop {
    animation: message_loop 120s infinite linear;
}
@keyframes message_loop {
    from {
        translate: 0 ;
    }
    to {
        translate: -100% 0;
    }
}
.message_img {
    flex-shrink: 0;
}
.message_img img {
    width: 100%;
}
.message_txt_wrap {
    line-height: 2.5;
}
.message_copy {
    line-height: 2;
}
.message_copy_word {
    display: inline-block;
}
.message_gra_pink,
.message_gra_blue,
.message_gra_gold {
    position: absolute;
}
.message_gra_pink_inner {
    background: url(../img/common/gra_pink.svg) no-repeat center center / contain;
}
.message_gra_blue_inner {
    background: url(../img/common/gra_blue.svg) no-repeat center center / contain;
}
.message_gra_gold_inner {
    background: url(../img/common/gra_gold.svg) no-repeat center center / contain;
}
@media (min-width: 769px) {
    .message {
        margin-top: 160px;
        padding-bottom: 160px;
    }
    .message_ttl {
        font-size: 20px;
    }
    .message_txt {
        font-size: 16px;
        margin-top: 20px;
        margin-inline: auto;
    }
    .message_img_wrap {
        margin-top: 80px;
    }
    .message_img_list {
        padding-right: 40px;
        column-gap: 40px;
    }
    .message_img {
        width: 342px;
    }
    .message_copy {
        font-size: 24px;
        margin-top: 80px;
    }
    .message_gra_pink {
        top: 0;
        left: 12%;
    }
    .message_gra_blue {
        top: -10%;
        right: 5%;
    }
    .message_gra_gold {
        top: 25%;
        right: 20%;
    }
    .message_gra_pink_inner,
    .message_gra_blue_inner,
    .message_gra_gold_inner {
        width: 200px;
        height: 200px;
    }
}
@media (max-width: 768px) {
    .message {
        margin-top: 60rem;
        padding-bottom: 120rem;
    }
    .message_ttl {
        font-size: 16rem;
    }
    .message_txt_wrap {
        padding-inline: 12rem;
    }
    .message_txt {
        font-size: 13rem;
        margin-top: 20rem;
    }
    .message_img_wrap {
        margin-top: 40rem;
    }
    .message_img_list {
        padding-right: 16rem;
        column-gap: 16rem;
    }
    .message_img {
        width: 205rem;
    }
    .message_copy {
        font-size: 18rem;
        margin-top: 40rem;
    }
    .message_copy_word {
        display: block;
    }
    .message_gra_pink {
        top: -5%;
        right: -8%;
    }
    .message_gra_blue {
        top: -13%;
        left: -2%;
    }
    .message_gra_gold {
        top: 33%;
        right: 24%;
    }
    .message_gra_pink_inner,
    .message_gra_blue_inner,
    .message_gra_gold_inner {
        width: 200rem;
        height: 200rem;
    }
}
.animation_ready .message_gra_pink,
.animation_ready .message_gra_blue,
.animation_ready .message_gra_gold {
    opacity: 0;
    translate: 0 40rem;
    transition: opacity 0s, translate 0s;
}
.animation_loaded .message_gra_pink.is_animated,
.animation_loaded .message_gra_blue.is_animated,
.animation_loaded .message_gra_gold.is_animated {
    opacity: 1;
    translate: 0 0rem;
    transition: opacity .8s .4s, translate .8s .4s;
}
.animation_loaded .message_gra_pink.is_animated .message_gra_pink_inner{
    animation: fuwafuwa 4s 1.2s infinite alternate ease-in-out;
}
.animation_loaded .message_gra_blue.is_animated .message_gra_blue_inner{
    animation: fuwafuwa 5s 1.3s infinite alternate ease-in-out;
}
.animation_loaded .message_gra_gold.is_animated .message_gra_gold_inner{
    animation: fuwafuwa 4.5s 1s infinite alternate ease-in-out;
}
@keyframes fuwafuwa {
    0% {
        transform: translateY(0%);
    }
    100% {
        transform: translateY(30%);
    }
}

/* movie */
.movie {
    height: 100vh;
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    position: sticky;
    top: 0;
    left: 0;
}
.movie_bg {
    background-color: #ccc;
    position: relative;
    overflow: hidden;
}
.movie_bg::after {
    content: '';
    display: block;
    position: absolute;
    inset: 0;
    background: rgba(0, 0, 0, 0.4);
}
.movie_video {
    object-fit: cover;
    width: 100%;
    height: 122%;
    position: relative;
    top: -11%;
}
.movie_btn_wrap {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    display: flex;
    cursor: pointer;
    flex-direction: column;
    justify-content: flex-end;
    align-items: center;
}
.movie_btn {
    background-color: var(--color-white);
    display: flex;
    justify-content: space-between;
    align-items: center;
    position: absolute;
    left: 0;
    right: 0;
    margin: auto;
}
.movie_btn_icon {
    border-radius: 50%;
    background-color: var(--color-gray-main);
    position: relative;
}
.movie_btn_icon::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    background-color: var(--color-white);
    clip-path: polygon(24% 0, 24% 100%, 100% 50%);
}
@media (min-width: 769px) {
    .movie_wrap {
        height: 200vh;
    }
    .movie_bg {
        width: calc(100% - 80px);
        height: calc(100% - 80px);
    }
    .movie_btn {
        padding: 8px 16px 8px 40px;
        width: 294px;
        font-size: 16px;
        border-radius: 48px;
        top: 70%;
    }
    .movie_btn_icon {
        width: 32px;
        height: 32px;
    }
    .movie_btn_icon::after {
        width: 12px;
        height:6px;
    }
    @media(hover:hover) {
        .movie_btn {
            transition: color .5s, background .5s;
        }
        .movie_btn_wrap:hover .movie_btn {
            background-color: var(--color-gray-main);
            color: var(--color-white);
        }
        .movie_btn_wrap:hover .movie_btn_icon {
            background-color: var(--color-white);
        }
        .movie_btn_wrap:hover .movie_btn_icon::after {
            background-color: var(--color-gray-main);
        }
    }
}
@media (max-width: 768px) {
    .movie_wrap {
        height: 150vh;
    }
    .movie_bg {
        width: calc(100% - 40rem);
        height: calc(100% - 40rem);
    }
    .movie_btn {
        padding: 16rem 16rem 16rem 40rem;
        width: 272rem;
        font-size: 12rem;
        border-radius: 64rem;
        top: 80%;
    }
    .movie_btn_icon {
        width: 32rem;
        height: 32rem;
    }
    .movie_btn_icon::after {
        width: 12rem;
        height: 6rem;
    }
}

/* cm */
.cm_link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: max-content;
    margin: auto;
    border-top: 1px solid var(--color-gray-main);
    border-bottom: 1px solid var(--color-gray-main);
}
@media (min-width: 769px) {
    .cm {
        margin-top: 80px;
    }
    .cm_link {
        padding: 24px 32px;
        column-gap: 80px;
    }
    .cm_link_txt {
        font-size: 16px;
        position: relative;
        z-index: 1;
    }
    .cm_link .btn {
        padding: 3px 24px;
        border-radius: 24px;
        font-size: 12px;
        background-color: var(--color-white);
        position: relative;
        z-index: 1;
    }
    @media (hover:hover) {
        .cm_link:hover .btn {
            transition: color .3s, background .3s;
        }
        .cm_link {
            position: relative;
        }
        .cm_link::before {
            content: '';
            display: block;
            width: 0%;
            height: 100%;
            position: absolute;
            top: 0;
            left: 0;
            transition: width .3s;
            background-color: var(--color-gray-main);
        }
        .cm_link:hover::before{
            width: 100%;
        }
        .cm_link_txt {
            transition: color .3s;
        }
        .cm_link:hover .cm_link_txt {
            color: var(--color-white);
        }
    }
}
@media (max-width: 768px) {
    .cm {
        margin-top: 64rem;
    }
    .cm_link {
        padding: 16rem;
        column-gap: 40rem;
        line-height: 1;
    }
    .cm_link_txt {
        font-size: 13rem;
    }
    .cm_link .btn {
        padding: 14rem 0;
        min-width: 132rem;
        border-radius: 40rem;
        font-size: 10rem;
    }
}

/* modal */
.modal {
    display: none;
}
.modal.is_modal_open {
    display: block;
}
.modal_overlay {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    display: flex;
    justify-content: center;
    align-items: center;
    z-index: calc(var(--zIndexMenu) + 1);
    will-change: transform;
    backdrop-filter: blur(10px);
}
.modal[aria-hidden="false"] .modal_overlay {
    animation: modalFadeIn .3s cubic-bezier(0.0, 0.0, 0.2, 1);
}
.modal[aria-hidden="false"] .modal_container {
    animation: modalFadeIn .3s cubic-bezier(0, 0, .2, 1);
}
.modal[aria-hidden="true"] .modal_overlay {
    animation: modalFadeOut .3s cubic-bezier(0.0, 0.0, 0.2, 1);
}
.modal[aria-hidden="true"] .modal_container {
    animation: modalFadeOut .3s cubic-bezier(0, 0, .2, 1);
}
.modal_container {
    position: relative;
    z-index: 1;
    width: 100%;
    will-change: transform;
    max-height: 100vh;
    overflow-y: auto;
}
.modal_inner {
    margin: auto;
}
.btn_modal_close {
    text-align: left;
    line-height: 1;
    margin-inline: auto;
    background-color: var(--color-white);
    display: flex;
    align-items: center;
    justify-content: space-between;
}
.btn_modal_close_icon {
    background-color: var(--color-gray-main);
    border-radius: 50%;
    position: relative;
}
.btn_modal_close_icon::before,
.btn_modal_close_icon::after {
    content: '';
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 50%;
    height: 1px;
    background: var(--color-white);
}
.btn_modal_close_icon::before {
    rotate: 165deg;
}
.btn_modal_close_icon::after {
    rotate: 15deg;
}
video-js.video-js.vjs-fluid:not(.vjs-audio-only-mode) {
    padding-top: 56.25%;
    width: 100%;
}
@keyframes modalFadeIn {
    from { opacity: 0; }
      to { opacity: 1; }
}
@keyframes modalFadeOut {
    from { opacity: 1; }
      to { opacity: 0; }
}
@media (min-width: 769px) {
    .modal_inner {
        padding: 24px;
        max-width: 80%;
    }
    .btn_modal_close {
        padding: 8px 16px 8px 40px;
        margin-top: 40px;
        font-size: 16px;
        width: 251px;
        border-radius: 24px;
    }
    .btn_modal_close_icon {
        width: 32px;
        height: 32px;
    }
    @media(hover:hover) {
        .btn_modal_close {
            transition: color .5s,background .5s;
        }
        .btn_modal_close:hover {
            background-color: var(--color-gray-main);
            color: var(--color-white);
        }
        .btn_modal_close:hover .btn_modal_close_icon {
            background-color: var(--color-white);
        }
        .btn_modal_close:hover .btn_modal_close_icon::before,
        .btn_modal_close:hover .btn_modal_close_icon::after {
            background-color: var(--color-gray-main);
        }
    }
}
@media (max-width: 768px) {
    .modal_inner {
        padding-inline: 24rem;
        max-width: 100%;
    }
    .btn_modal_close {
        padding: 8rem 16rem 8rem 40rem;
        margin-top: 40rem;
        font-size: 12rem;
        width: 193rem;
        border-radius: 40rem;
    }
    .btn_modal_close_icon {
        width: 24rem;
        height: 24rem;
    }
}

/* lead animation */
.animation_ready .lead_img_1,
.animation_ready .lead_img_2,
.animation_ready .lead_img_3,
.animation_ready .lead_img_4,
.animation_ready .lead_img_5 {
    opacity: 0;
    filter: blur(10px);
    scale: 0.9;
    will-change: filter;
    transition: opacity 0.4s, scale 0.4s, filter 0.4s;
}
.animation_loaded .lead_img_1.is_animated,
.animation_loaded .lead_img_2.is_animated,
.animation_loaded .lead_img_3.is_animated,
.animation_loaded .lead_img_4.is_animated,
.animation_loaded .lead_img_5.is_animated {
    scale: 1;
    filter: blur(0px);
    opacity: 1;
    transition: opacity 1.2s, scale 1.1s,filter 1.1s;
}
.animation_loaded .lead_img_4.is_animated {
    transition-delay: .3s;
}
@media (min-width: 769px) {
    .animation_loaded .lead_img_2.is_animated {
        transition-delay: .3s;
    }
}
@media (max-width: 768px) {
    .animation_loaded .lead_img_3.is_animated {
        transition-delay: .3s;
    }
}

/* commitment animation */
.anim_border::before,
.anim_border::after,
.anim_border_inner::before,
.anim_border_inner::after {
    content: '';
    display: block;
    background-color: var(--color-gray-main);
    position: absolute;
}
.anim_border::before {
    top: 0;
    right: 0;
}
.anim_border::after {
    top: 0;
    left: 0;
}
.anim_border_inner::before {
    bottom: 0;
    left: 0;
}
.anim_border_inner::after {
    bottom: 0;
    right: 0;
}
.anim_border::after {
    height: 1px;
    width: 0;
    transition: width .4s .1s ease;
}
.anim_border::before {
    height: 0;
    width: 1px;
    transition: height .4s .2s ease;
}
.anim_border_inner::after {
    height: 1px;
    width: 0;
    transition: width .4s .3s ease;
}
.anim_border_inner::before {
    height: 0;
    width: 1px;
    transition: height .4s .4s ease;
}
.anim_border.is_animated::before,
.anim_border.is_animated .anim_border_inner::before {
    height: 100%;
}
.anim_border.is_animated::after,
.anim_border.is_animated .anim_border_inner::after {
    width: 100%;
}
