img {
    width: 100%;
}

main {
    overflow: hidden;
}

main::after {
    content: "";
    position: fixed;
    z-index: -8;
    top: 0;
    right: 0;
    bottom: 0;
    left: 0;
    background-image: url(../img/service/jewelry/flow/flow-bg.jpg);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

html {
    -webkit-font-smoothing: antialiased;
    scroll-behavior: smooth;
    scroll-padding-top: 150px;
}

.sptb_only {
    display: none;
}

.sp_only {
    display: none;
}

@media(max-width: 1024px) {
    .pc_only {
        display: none;
    }

    .sptb_only {
        display: block;
    }
}

@media(max-width: 743px) {
    .sp_only {
        display: block;
    }
}



/* マウスストーカー */
/* ======================================== */
.ms-wrap {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1;
    pointer-events: none;
}

.stalker {
    width: 22px;
    height: 22px;
    margin: auto;
    position: absolute;
    top: 0;
    left: 0;
    background-color: rgba(177,31,31,1);
    border-radius: 50%;
    z-index: 9999;
    pointer-events: none;
  }

/* .link要素にホバーした時のストーカーのアニメーション */
.link {
    position: relative;
}

.link-wrap {
    display: block;
}
  
.stalker {
    position: absolute;
    border-radius: 50%;
    pointer-events: none; /* ストーカーがクリックされないように */
    transition: width 0.3s ease, height 0.3s ease; /* サイズ変更のアニメーション */
}


/* フォント */
/* ======================================== */
body {
    font-family: "游ゴシック体", YuGothic, "游ゴシック Medium", "Yu Gothic Medium", "游ゴシック", "Yu Gothic", "Noto Sans JP", sans-serif;
}
  
.Bellefair {
    font-family: "Bellefair", serif;
}

.zen-old-mincho {
    font-family: "Zen Old Mincho", serif;
}

/* タイトル */
/* ======================================== */
.lv2-heading {
    font-size: clamp(175px, 13.6vw, 350px);
    letter-spacing: 0;
    line-height: 1;
    font-weight: 400;
    color: rgb(178 178 178 / 60%);
}

.lv2-heading-lead {
    font-size: clamp(21px, 1.64vw, 42px);
    font-weight: 500;
    letter-spacing: 0;
    line-height: 1;
    color: #6E6E6E;
}

@media(max-width: 1280px) {
    .lv2-heading {
        font-size: clamp(101.5px, 13.64vw, 175px);
    }

    .lv2-heading-lead {
        font-size: clamp(12.18px, 1.63vw, 21px);
    }
}

@media(max-width: 743px) {
    .lv2-heading {
        font-size: clamp(83px, 22.1vw, 166px);
    }

    .lv2-heading-lead {
        font-size: clamp(18px, 4.8vw, 32px);
    }
}

/* レイヤー */
/* ======================================== */
.ly-inner {
    max-width: 1220px; 
    padding: 0 50px;
    margin: 0 auto;
}

@media(max-width: 743px) {
    .ly-inner {
        padding: 0 20px;
    }
}

/* MV */
/* ======================================== */
.mv {
    position: relative;
    background-color: #fff;
    padding-bottom: 25.4vw;
}

.mv__inner {
    top: 118px;
    position: relative;
}

.mv__img {
    width: 74.4%;
    position: relative;
}

.mv__img img {
    width: 100%
}

.mv__ttl-en {
    font-size: clamp(186px, 14.5vw, 372px);
    letter-spacing: 0;
    color: #B2B2B2;
    position: absolute;
    top: -2.5vw;
    right: -36px;
    display: inline-block;
    z-index: 1;
}

.mv__ttl-wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    align-items: flex-end;
    margin-top: 2.1vw;
    margin-left: 3.2vw;
}

.mv__ttl-r-logo {
    width: 295.65px;
    margin-left: 36.2px;
}

.mv__ttl-r-logo img {
    width: 100%;
}

.mv__ttl-l {
    font-size: 21px;
    letter-spacing: 0;
    line-height: 1.42;
    color: #707070;
}

.mv__col-outer {
    /* width: 1104px; */
    width: 86.25vw;
    margin: 0 auto;
}

.mv__col-wrap {
    display: flex;
    flex-wrap: wrap;
    margin: 104.4px 0 0 -9.2vw;
}

.mv__col {
    width: calc(100% / 2 - 9.2vw);
    margin: 0 0 0 9.2vw;
    display: flex;
    justify-content: center;
    align-items: center;
}

.mv__col-ttl-en {
    color: #6E6E6E;
    letter-spacing: 0;
    font-size: clamp(75px, 5.86vw, 150px);
    display: inline-block;
}

.mv__col-num {
    font-size: clamp(137px, 10.7vw, 274px);
}

.mv__col-sm {
    font-size: clamp(44px, 3.43vw, 88px); 
}

.mv__col-ttl-ja {
    font-weight: 500;
    letter-spacing: 0;
    text-align: center;
    line-height: 1.71;
    font-size: clamp(28px, 2.18vw, 56px);
    color: #6E6E6E;
}

.mv__col-ttl-ja--lg {
    font-size: clamp(34px, 2.65vw, 68px);
}

.mv__col-circle {
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 31.65vw;
    aspect-ratio: 1 / 1;
    border-radius: 50%;
    /* border: 1px solid; */
    position: relative;
}

.mv__col-circle-img {
    position: absolute;
    width: 31.65vw;
    animation: 20s linear infinite rotation;
}

.mv__col-circle-img img {
    width: 100%;
}

@keyframes rotation{
    0%{ transform:rotate(0);}
    100%{ transform:rotate(360deg); }
  }


@media(max-width: 1279px) {
    .mv__col-wrap {
        margin-top: 50px;
    }

    .mv__ttl-l {
        font-size: clamp(18px, 4.8vw, 21px);
    }

    .mv__col-num {
        font-size: clamp(79.46px, 10.6vw, 137px);
    }

    .mv__col-ttl-ja--lg {
        font-size: clamp(19.72px, 2.65vw, 34px);
    }

    .mv__col-sm {
        font-size: clamp(25.52px, 3.43vw, 44px);
    }

    .mv__col-ttl-en {
        font-size: clamp(43px, 5.77vw, 75px);
    }

    .mv__col-ttl-ja {
        font-size: clamp(16.24px, 2.18vw, 28px);
    }
}

@media(max-width: 743px) {
    .mv__ttl-en {
        font-size: clamp(63px, 16.8vw, 126px);
        position: relative;
        top: -8px;
        right: 1.5vw;
        left: auto;
        text-align: right;
        display: block;
    }

    .mv__img {
        min-width: 345px;
        min-height: 381px;
        aspect-ratio: 345 / 381;
        width: 92vw;
    }

    .mv__img img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        object-position: 42% 0%;
    }

    .mv__inner {
        top: 0;
    }

    .mv__ttl-l {
        text-align: center;
    }

    .mv__ttl-wrap {
        display: flex;
        flex-wrap: wrap;
        justify-content: space-evenly;
        margin-left: 0;
        margin-top: 22.5px;
        padding: 0 10px;
    }

    .mv__ttl-r-logo {
        margin-left: 0;
        width: 296px;
        margin-top: 22.5px;
    }

    .mv__col-wrap {
        margin: 6.3vw 0 0 -5.15vw;
    }

    .mv__col {
        width: calc(100% / 2 - 5.15vw);
        margin: 0 0 0 5.15vw;
    }

    .mv__col-circle {
        width: 100%;
    }

    .mv__col-circle-img {
        width: 100%;
    }

    .mv__col-num {
        font-size: clamp(63px, 16.8vw, 126px);
    }

    .mv__col-sm {
        font-size: clamp(19px, 5.06vw, 38px);
    }

    .mv__col-ttl-ja {
        font-size: clamp(12px, 3.2vw, 24px);
    }

    .mv__col-ttl-en {
        font-size: clamp(28px, 7.46vw, 56px);
    }

    .mv__col-ttl-ja {
        font-size: clamp(12px, 3.2vw, 24px);
    }
}

/* reason */
/* ======================================== */
.reason {
    background-color: #F0F0F0;
    position: relative;
}

.reason__left-slide {
    /* width: 581px;
    padding: 40px 0; */

    width: 45.4vw;
    padding: 3.2vw 0;
}

.reason__left-slide:nth-child(1) {
    padding-top: 0;
}

.reason__left-slide:nth-child(3) {
    padding-bottom: 0;
}

.reason__left-slide img {
    width: 100%;
}

.reason__col-wrap {
    display: flex;
    flex-wrap: wrap;
}

.reason__left {
    width: 45.4%;
    margin-top: calc(50vh - 203px);
    margin-bottom: calc(50vh - 203px);
}

.reason__right {
    width: 54.6%;
    height: 100vh;
    top: 0;
}

.reason__right-inner {
    height: 100vh;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    position: relative;
    left: auto!important;
}

.reason__right-slide {
    position: absolute;
    opacity: 0; /* 最初は非表示 */
    transition: opacity 0.3s ease;
    width: 28vw;
}

.reason__right-slide:nth-child(1) {
    opacity: 1;
}

.reason__right-slide .reason__right-text {
    opacity: 0;
    transition: opacity 0.5s ease;
}

.reason__right-slide.show .reason__right-text {
    opacity: 1; /* .show クラスが付いたらテキストを表示 */
}

.reason__right-slide.show {
    opacity: 1;
}

.reason__right-ttl-en {
    color: #2F2F2F;
    text-align: center;
    position: relative;
    line-height: 1;
}

.reason__right-ttl-en::after {
    position: absolute;
    content: "";
    background-image: url(../img/service/jewelry/reason/solid.png);
    background-size: contain;
    background-position: center;
    background-repeat: no-repeat;
    top: 50%;
    left: 0;
    width: 36.41px;
    height: 37.03px;
}

.reason__right-ttl-num {
    font-size: clamp(33px, 2.57vw, 66px);
    color: #B2B2B2;
    position: absolute;
    left: 0;
    top: 0;
    line-height: 1;
    transform: translateY(-50%);
}

.reason__right-ttl-ja {
    font-size: clamp(21px, 1.64vw, 42px);
    color: #454545;
    margin-top: 59.5px;
    line-height: 1.3;
    min-height: 4.2vw;
    display: flex;
    align-items: center;
}

.reason__right-txt {
    font-size: clamp(14px, 1.09vw 28px);
    color: #707070;
    margin-top: 30.5px;
    line-height: 1.71;
    letter-spacing: 0;
    /* max-width: 334px; */
    width: 26.1vw;
    margin-top: 4vw;
    min-height: 9vw;
}

.reason__right-bar {
    width: 154px;
    height: 2px;
    margin: 4.1vw auto 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.reason__right-bar-cont {
    width: 46px;
    height: 2px;
    background-color: rgba(255,255,255,0.6);
}

.reason__right-bar-cont.active {
    width: 46px;
    height: 2px;
    background-color: #BABABA;
}

.white-filter {
    position: relative;
}

.white-filter::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(255, 255, 255, 0.67); /* 透過した白色 */
    pointer-events: none; /* クリックを透過させる */
    opacity: 0; /* 初期状態は透明 */
    transition: opacity 0.5s ease; /* フェードイン/アウト */
}


.reason .lv2-heading {
    transform: translateY(-50%);
    left: 6.85vw;
    position: absolute;
}

.reason .lv2-heading-lead {
    left: 7.85vw;
    position: absolute;
    top: 5.5vw;
    margin-top: 0;
}

@media(max-width: 1280px) {
    .reason__right-ttl-num {
        font-size: clamp(19.14px, 2.57vw, 33px);
    }

    .reason__right-ttl-en::after {
        width: 3vw;
        height: 3vw;
    }

    .reason__right-ttl-ja {
        margin-top: 4.6vw;
        font-size: clamp(12.18px, 1.63vw, 21px);
    }

    .reason__right-txt {
        font-size: clamp(10px, 1.34vw, 14px);
    }
}

@media(max-width: 1200px) {
    .reason__right-txt {
        min-height: 23vw;
    }
}

@media(max-width: 1024px) {
    .reason__cont {
        padding: 0 20px;
        margin: 18vw auto 0;
    }

    .reason__list-wrap  {
        max-width: 600px;
        margin: 0 auto;
    }

    .reason__right-text {
        margin-top: 47px;
        padding: 0 15px 126.8px;
        min-height: 494px;
    }

    .reason__right-ttl-num {
        font-size: 33px;
    }

    .reason__right-ttl-en::after {
        width: 36.41px;
        height: 37.03px;
    }

    .reason__right-ttl-en {
        font-size: 12px;
    }

    .reason__right-ttl-ja {
        margin-top: 57.5px;
        text-align: center;
        font-size: 20px;
        /* min-height: 40px; */
        min-height: initial;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .reason__right-txt {
        font-size: 14px;
        width: 100%;
        margin-top: 30.5px;
        position: relative;
        z-index: -1;
        min-height: initial
    }

    .reason .lv2-heading-lead {
        position: relative;
    } 
}

@media(max-width: 743px) {
    .lv2-heading-lead {
        font-size: clamp(18px, 4.8vw, 32px);
    }

    .reason .lv2-heading-lead {
        font-size: clamp(16px, 4.26vw, 20px);
        top: 10.5vw;
    }

    .reason__right-ttl-ja {
        font-size: clamp(18px, 4.8vw, 32px);
        margin-bottom: clamp(15px, 4vw, 25px);
    }

    .reason__pagination {
        position: relative;
        bottom: auto;
        margin-top: clamp(15px, 4vw, 25px);
        display: flex;
        justify-content: center;
        width: 100%;
    }

    .reason__pagination__page {
        width: 46px !important;
        height: 2.44px !important;
        background: rgba(255,255,255,0.6) !important;
        border-radius: 0 !important;
        margin: 0 !important;
        padding: 0 !important;
        border: none !important;
        transition: background-color 0.3s ease !important;
        transform: none !important;
    }

    .reason__pagination__page.is-active {
        background: #BABABA !important;
    }

    .voice__list-wrap .splide__pagination,
    .concern__list-wrap .splide__pagination,
    .reason__list-wrap .splide__pagination {
        bottom: -40px;
    }
}

/* Concern */
/* ======================================== */
.concern {
    background-color: #fff;
}

.concern .lv2-heading {
    color: #DDDCC5;
    text-align: right;
    padding-top: 6.25vw;
    margin-right: 2.35vw;
}

.concern .lv2-heading-lead {
    text-align: right;
    margin-right: 2.8vw;
    margin-top: -1.1vw;
}

.concern__item {
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0;
    color: #6E6E6E;
    padding-bottom: 40px;
    margin-top: 40px;
    position: relative;
    display: flex;
}

.concern__item:nth-child(1) {
    margin-top: 0;
}

.concern__item::after {
    position: absolute;
    content: "";
    width: 100%;
    height: 1px;
    background-color: #ADADAD;
    transform: scaleY(50%);
    bottom: 0;
}

.concern__wrap {
    max-width: 990px;
    padding: 0 50px;
    padding: 0 50px 258px;
    margin: 78px auto 0;
}

.concern__list {
    max-width: 58.7vw;
}

@media(max-width: 1280px) {
    .concern__item {
        font-size: 12px;
        padding-bottom: 23px;
    }

    .concern__wrap {
        margin: 45px auto 0;
        padding: 0 29px 149px;
    }
}

@media(max-width: 743px) {
    .concern .ly-inner {
        padding: 0;
    }

    .concern__wrap {
        padding: 0 0 138.8px 0;
        margin: 60px 0 0 auto;
        width: 94.67%;
    }

    .concern .lv2-heading {
        margin-right: 5.35vw;
    }

    .concern .lv2-heading-lead {
        margin-right: 5vw;
    }

    .concern__item {
        font-size: 14px;
        padding-bottom: 30px;
    }

    .concern__list {
        max-width: initial;
        width: 100%;
    }
}


/* solution */
/* ======================================== */
.solution {
    background-color: #DDDCC5;
}

.solution .ly-inner {
    padding: 0 100px;
}

.solution .lv2-heading-lead {
    margin-left: 1.02vw;
    /* margin-top: -17px; */
}

.solution .lv2-heading-wrap {
    transform: translateY(-53%);
    margin-left: -2.5vw;
}

.solution__item-img {
    width: 100%;

    overflow: hidden;
    position: relative;
}

.solution__item-img::before {
    background-color: #DDDCC5;
    content: "";
    inset: 0;
    pointer-events: none;
    position: absolute;
    z-index: 1;
}

.solution__item-img.animate::before {
    animation: img-wrap 1s cubic-bezier(0.4, 0, 0.2, 1) forwards;
}

@keyframes img-wrap {
    100% {
      transform: translateY(-100%);
      
    }
  }

.solution__item-img img {
    width: 100%;
}

.solution__item-img.animate  img {
    animation: blur 2s;
}

@keyframes blur {
    0% {
        filter: blur(50px);
    }
    100% {
        filter: blur(0);
    }
  }

.solution__list {
    display: flex;
    flex-wrap: wrap;
    margin: 0 0 0 -45px;
}

.solution__item {
    width: calc(100% / 3 - 45px);
    margin: 0 0 0 45px;
}

.solution__list-tag {
    font-size: 18px;
    color: #B2B2B2;
    font-weight: 400;
    position: relative;
    display: inline-block;
    padding: 0 11px;
    line-height: 1;
    letter-spacing: 0;
}

.solution__list-tag::before {
    position: absolute;
    content: "[";
    font-size: 16px;
    font-weight: 400;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    font-family: "Bellefair", serif;
}

.solution__list-tag::after {
    position: absolute;
    content: "]";
    font-size: 16px;
    font-weight: 400;
    width: 6px;
    height: 18px;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    font-family: "Bellefair", serif;
}

.solution-lv3-heading {
    font-size: 16px;
    font-weight: 700;
    letter-spacing: 0;
    color: #707070;
    margin-top: 40px;
    line-height: 1.55;
}

.solution__item-txt-wrap {
    margin-top: 34px;
}

.solution__item-txt {
    font-size: 14px;
    font-weight: 500;
    color: #707070;
    letter-spacing: 0;
    margin-top: 30px;
    line-height: 1.71;
}

@media(max-width: 1279px) {
    .solution .ly-inner {
        padding: 0 58px;
    }

    .solution__list {
        margin: 0 0 0 -26px;
    }

    .solution__item {
        width: calc(100% / 3 - 26px);
        margin: 0 0 0 26px;
    }

    .solution__list-tag {
        font-size: clamp(14.4px, 1.93vw, 18px);
    }

    .solution__item-txt-wrap {
        margin-top: 19.72px;
    }

    .solution-lv3-heading {
        margin-top: 23.2px;
    }
}

@media(max-width: 743px) {

    .solution__item + .solution__item {
        margin-top: 60px;
    }
    
    .solution .ly-inner {
        padding: 0 28px;
    }

    .solution .lv2-heading-lead {
        margin-top: 0;
    }

    .solution__list {
        display: block;
        margin: 0;
    }

    .solution__item {
        width: 100%;
        margin: 0;
    }

    .solution__item-txt-wrap {
        text-align: center;
    }

    .solution__item-txt {
        text-align: left;
    }

    .solution__item-img {
        width: 57.53%;
        margin: 0 auto;
    }

    .solution-lv3-heading {
        line-height: 1.4;
        font-size: 20px;
        font-weight: 500;
    }

    .solution__cta-wrap {
        padding-top: 95.2px;
        padding-bottom: 81.2px;
    }
}



/* cta */
/* ======================================== */
.solution__cta-wrap {
    padding-top: 136.5px;
    padding-bottom: 126px;
    display: block;
}

.cta {
    max-width: 406px;
    margin: 0 auto;
    text-align: center;
    cursor: pointer;
}

.cta__list {
    display: flex;
    justify-content: space-between;
    margin: 0 2.6px;
}

.cta__item {
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0;
    color: #6E6E6E;
    line-height: 1;
}

.cta-ttl {
    font-size: 85px;
    line-height: 1;
    letter-spacing: 0;
    color: #000000;
    margin-top: 0.94vw;
}

.cta-txt {
    color: #800A0A;
    font-size: 27px;
    letter-spacing: 0;
    margin-top: 9.9px;
}

.cta-ttl-underscore {
    width: 41px;
    height: 1px;
    background-color: #72694C;
    margin: 0.21vw auto 0;
    display: block;
}

@media(max-width: 743px) {
    .cta-ttl {
        font-size: 61px;
    }

    .cta__item {
        font-size: 8px;
    }

    .cta__list {
        justify-content: center;
    }

    .cta__item + .cta__item {
        margin-left: 27.5px;
    }

    .cta-ttl {
        margin-top: 9.3px;
        line-height: 1.14;
    }

    .solution__cta-wrap {
        padding-top: 95.2px;
        padding-bottom: 81.2px;
    }

    .cta-txt {
        font-size: 18px;
    }

    .cta-txt span {
        padding: 0 4.9px 0 6.2px;
    }
}



/* flow */
/* ======================================== */
.flow {
    position: relative;
}

.flow .ly-inner {
    padding-top: 102px;
    padding-bottom: 195.5px;
}

.flow .lv2-heading {
    text-align: right;
}

.flow .lv2-heading-lead {
    text-align: right;
    margin-top: -16px;
}

.flow__list-wrap {
    max-width: 754px;
    margin: 0;
    position: relative;
    top: 0;
    transform: translate(-50%, 0);
    width: 100%;
    left: 50%;
}

.flow__list {
    position: relative;
    padding-left: 71.5px;
    margin-left: 71.5px;
    /* listの左の余白分 */
    margin-top: -93px;
    /* flow__itemのmargin-top打ち消し用 */
    padding-top: 83px;
    padding-bottom: 83px;
    /* listの上下の余白 */
}

.flow__list::after {
    position: absolute;
    content: "";
    width: 1px;
    height: 100%;
    background-color: #ADADAD;
    top: 0;
    left: 0;
    transform: scaleX(50%);
}

.flow__item {
    margin-top: 105px;
    position: relative;
    min-height: 100px;

}

.flow__item::after {
    content: "";
    position: absolute;
    width: 16px;
    height: 16px;
    background-color: #E5E5E5;
    border-radius: 50%;
    top: 50%;
    left: -79px;
    transform: translateY(-50%);
    z-index: 1;
}

.flow__cont {
    margin-top: 80px;
    overflow-y: hidden;
}

.flow__item-ttl {
    font-size: 16px;
    font-weight: 500;
    letter-spacing: 0;
    color: #707070;
}

.flow__item-txt {
    font-size: 14px;
    font-weight: 500;
    line-height: 1.71;
    letter-spacing: 0;
    color: #707070;
    margin-top: 20px;
}

.flow__en-wrap {
    position: absolute;
    writing-mode: vertical-rl;
    color: #B2B2B2;
    font-size: 52px;
    letter-spacing: 0;
    left: 50%;
    transform: translateX(-50%);
    top: 30vw;
    display: block;
    max-width: 754px;
    width: 100%;
    text-align: center;
    display: flex;
    flex-direction: column-reverse;
}

.flow__en {
    opacity: 1;
    visibility: visible;
    position: absolute;
    left: -136px;
    writing-mode: vertical-lr;
    font-size: 22px;
    color: #B2B2B2;
    top: 50%;
    transform: translateY(-50%);
    height: 100%;
}

@media(max-width: 743px) {
    .flow__en-wrap {
        margin-bottom: 30px;
    }

    .flow__en {
        left: -65px;
        font-size: 22px;
        height: auto;
        top: 0;
        transform: translateY(19px);
    }

    .flow__item {
        padding: 20px;
        margin-top: 40px;
    }

    .flow__item-ttl {
        font-size: clamp(18px, 4.8vw, 32px);
    }

    .flow__item-txt {
        font-size: clamp(14px, 3.73vw, 24px);
    }

    .flow .lv2-heading-lead {
        margin-top: 0;
    }

    .flow__list {
        position: relative;
        padding-left: 30px;
        margin-left: 30px;
        margin-top: 0;
        padding-top: 16px;
        padding-bottom: 50px;
    }

    .flow__item::after {
        left: -38px;
        top: 49px;
    }

    .flow__cont {
        margin-top: 56px;
    }
}



/* support */
/* ======================================== */
.support {
    background-color: #F0F0F0;
}

.support .ly-inner {
    padding: 0 100px;
}

.support .lv2-heading-wrap {
    transform: translateY(-46%);
    margin-left: -2.5vw;
}

.support .lv2-heading-lead {
    margin-left: 1.02vw;
    margin-top: 25px;
}

.support-img {
    max-width: 1060px;
    margin: 63px auto 80px;
}

.support-img img {
    width: 100%;
}

.support__cta-wrap {
    padding-bottom: 126.6px;
}

@media(max-width: 743px) {
    .support .ly-inner {
        padding: 0 20px;
    }

    .support {
        background-color: #fff;
    }

    .support-img {
        margin: 15px auto 80px;
    }

    .support__cta-wrap {
        padding-bottom: 107px;
    }
}


/* voice */
/* ======================================== */
.voice {
    background-color: #fff;
}

.voice .ly-inner {
    padding: 67px 40px 138px;
}

.voice .lv2-heading-wrap {
    padding: 0 40px;
    text-align: right;
}

.voice .lv2-heading-lead {
    color: rgb(110 110 110 / 60%);
}


.voice__item {
    width: calc(100% / 3);
    border-top: 1px solid #e0e0e0;
    border-right: 1px solid #e0e0e0;
    position: relative;
}

.voice__item::after {
    position: absolute;
    content: "";
    top: -40px;
    right: -40px;
    width: 76px;
    height: 82px;
    background-color: #fff;
    z-index: 1;
}

.voice__item:nth-child(1)::before {
    position: absolute;
    content: "";
    top: -40px;
    left: -40px;
    width: 76px;
    height: 82px;
    background-color: #fff;
    z-index: 1;
}

.voice__item:nth-child(1) {
    border-left: 1px solid #e0e0e0;
}

.voice__list {
    display: flex;
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: 40px;
}

.voice__item-inner {
    padding: 40px 40px 0 40px;
    height: 100%;
}

.voice__item-head-img {
    width: 134px;
    height: 144px;
}

.voice__item-head-img img {
    width: 100%;
    border-radius: 0 20px 0 0;
}

.voice__item-head {
    display: flex;
    justify-content: space-between;
}

.voice__item-head-num {
    font-size: 45px;
    color: #B2B2B2;
    line-height: 1;
    position: relative;
    min-width: 44.64px;
}

.voice__item-head-num::after {
    content: "";
    position: absolute;
    background-color: #D3D3D3;
    width: 100%;
    height: 9px;
    top: 48px;
    left: 0;
}

.voice__item-main-tag {
    color: #B2B2B2;
    font-size: 18px;
    position: relative;
    display: inline-block;
    padding: 0 10px;
}

.voice__item-main-tag::before {
    position: absolute;
    content: "[";
    font-size: 16px;
    font-weight: 400;
    top: 50%;
    left: 0;
    transform: translateY(-50%);
    font-family: "Bellefair", serif;
}

.voice__item-main-tag::after {
    position: absolute;
    content: "]";
    font-size: 16px;
    font-weight: 400;
    top: 50%;
    right: 0;
    transform: translateY(-50%);
    font-family: "Bellefair", serif;
}

.voice__item-main {
    margin-top: 20px;
    height: 84%;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
}

.voice__item-ttl {
    font-size: 18px;
    font-weight: 500;
    letter-spacing: 0;
    color: #707070;
    line-height: 1.7;
    margin-top: 40px;
}

.voice__item-txt {
    font-size: 14px;
    font-weight: 500;
    color: #707070;
    line-height: 1.7;
    margin-top: 28px;
}

.voice__item-main-box {
    text-align: center;
}

.voice__item-main-box-ttl {
    font-size: 13px;
    font-weight: 500;
    letter-spacing: 0;
    color: #6E6E6E;
    text-align: center;
    display: flex;
    width: 93px;
    height: 93px;
    align-items: center;
    justify-content: center;
    margin: 0 auto;
    background-color: #F4F4F4;
    border-radius: 50%;
    transform: translateY(50%);
    z-index: 0;
    position: relative;
}

.voice__item-main-box-ttl::after {
    position: absolute;
    content: "";
    border: 1px solid #F4F4F4;
    width: 105px;
    height: 105px;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    border-radius: 50%;
}

.voice__item-main-box-txt {
    font-size: 14px;
    font-weight: 500;
    letter-spacing: 0;
    color: #707070;
    background-color: #F4F4F4;
    padding: 22px 29px;
    margin-top: 3px;
    display: flex;
    flex-wrap: wrap;
    line-height: 1.6;
    position: relative;
    z-index: 1;
}

.voice__item-main-box-txt span {
    display: inline-block;
    text-align: left;
}

.voice__cont {
    max-width: 1200px;
    margin: 48.8px auto 0;
}

.voice__item-main-box-ttl-inner {
    transform: translateY(-50%);
}

@media(max-width: 1024px) {
    /* .voice__item-main-box {
        position: relative;
        padding-bottom: 40px;
        border-bottom: 1px solid #e0e0e0;
    } */

    .voice__item {
        border-right: initial;
    }

    .voice .splide__pagination__page {
        width: 12px;
        height: 12px;
        margin: 0;
        background-color: #D3D3D3;
        opacity: 1;
    }
    
    .voice .splide__pagination li {
        margin: 0 8px;
    }

    .voice .splide__pagination {
        bottom: -42px;
    }

    .voice .splide__pagination__page.is-active {
        background-color: #B11F1F;
        opacity: 1;
        transform: initial;
    }

    .voice__item-main {
        text-align: center;
        height: 81%;

    }

    .voice__item-txt {
        text-align: left;
    }

    .voice__item-main-box-txt {
        min-height: 12vw;
    }
}

@media(max-width: 743px) {
    .voice .ly-inner {
        padding: 20px 0 144px;
    }

    .voice__item-head {
        width: 90.2%;
        margin: 0 auto;
    }

    .voice__item-inner {
        padding: 33.6px 30px 0;
        height: auto;
    }

    .voice__item-head-num {
        font-size: 37px;
        min-width: 36.1px;
    }

    .voice__item-head-num::after {
        top: 39px;
        height: 7.56px
    }

    .voice__item-main {
        margin-top: 24px;
        height: auto;
        display: block;
    }

    .voice__item-ttl {
        font-size: 16px;
        margin-top: 26px;
    }

    .voice__item-txt {
        margin-top: 16px;
    }

    .voice__item-main-box-ttl {
        width: 78px;
        height: 78px;
        font-size: 10px;
    }

    .voice__item-main-box-ttl::after {
        width: 88px;
        height: 88px;
    }

    .voice__item-main-box-txt {
        padding: 16px 29px;
    }
    .voice__item-main-box {
        margin-top: -20px;
    }

    .voice .splide__pagination {
        position: absolute;
        bottom: -30px;
        left: 50%;
        transform: translateX(-50%);
        display: flex;
        justify-content: center;
        align-items: center;
        gap: 8px;
        width: 100%;
        padding: 0;
        margin: 0;
    }

    .voice__list-wrap .splide__pagination,
    .concern__list-wrap .splide__pagination,
    .reason__list-wrap .splide__pagination {
        bottom: -40px;
    }

    .reason__list-wrap .splide__pagination {
        position: relative;
        bottom: auto;
        margin-top: clamp(15px, 4vw, 25px);
        display: flex;
        justify-content: center;
        width: 100%;
    }

    .reason__right-ttl-ja {
        font-size: clamp(18px, 4.8vw, 32px);
        margin-bottom: clamp(15px, 4vw, 25px);
    }
}



/* faq */
/* ======================================== */
.faq {
    background-color: #fff;
}

.faq .ly-inner {
    padding-bottom: 18.55vw;
}

.accordion__item-body-head {
    display: flex;
}

.accordion__item-head {
    font-weight: 500;
    font-size: 16px;
    letter-spacing: .1em;
    color: #000000;
    padding: 0 11px 14.5px;
    border-bottom: 1px solid #ececec;
    position: relative;
}

.accordion__item-body {
    background-color: #F4F4F4;
    overflow: hidden;
    height: 0;
}

.accordion__item-icon {
    color: #B11F1F;
    font-size: 24px;
    letter-spacing: 0;
    line-height: 1;
    margin-right: 29px;
}

.accordion__item-body-wrap {
    padding: 15px 14px;
}

.accordion__item {
    margin-top: 20px;
}

.accordion__item:nth-child(1) {
    margin-top: 0;
}

.accordion__wrap {
    margin-top: 70px;
}

.faq .lv2-heading-lead {
    color: rgb(110 110 110 / 60%);
    padding-left: 14px;
}


.accordion__item-body-main {
    padding-left: 44px;
    font-size: 14px;
    font-weight: 500;
    letter-spacing: .1em;
    line-height: 1.7;
}

.accordion__item-txt {
    padding-top: 10px;
}

.accordion__item-head::after {
    content: "";
    position: absolute;
    font-weight: 900;
    right: 34px;
    top: 50%;
    transform: translateY(-50%);
    transition: .1s;
    width: 14px;
    height: 2px;
    background-color: #6E6E6E;
}

.accordion__item-head::before {
    content: "";
    position: absolute;
    font-weight: 900;
    right: 34px;
    top: 50%;
    transform: translateY(-50%) rotate(90deg);
    transition: .1s;
    width: 14px;
    height: 2px;
    background-color: #6E6E6E;
}

.accordion__item-head.is-active::after {
    content: "";
    position: absolute;
    font-weight: 900;
    right: 34px;
    top: 50%;
    transform: translateY(-50%);
    width: 14px;
    height: 2px;
    background-color: #6E6E6E;
}

.accordion__item-head.is-active::before {
    transform: translateY(-50%) rotate(0);
}

@media(max-width: 743px) {
    .accordion__wrap {
        margin-top: 53.2px;
    }

    .accordion__item-head {
        font-size: 14px;
        display: block;
        padding: 0 42px 14.5px 11px;
    }

    .accordion__item-body-head-ttl {
        font-size: 14px;
    }

    .accordion__item-body-main {
        font-size: 13px;
    }

    .accordion__item-txt {
        padding-top: 20px;
    }

    .accordion__item-body-wrap {
        padding: 20px 30px 20px 15px;
    }

    .accordion__item-head::after,
    .accordion__item-head::before,
    .accordion__item-head.is-active::after {
        right: 20px;
    }

    .faq .ly-inner {
        padding-bottom: 40.55vw;
    }
}






/* フォーム */
/* ======================================== */
#jewelry-contact.contact {
    background-color: #D0D0D0;
    position: relative;
}

#jewelry-contact .lv2-heading-lead {
    color: #fff;
}

#jewelry-contact.contact .lv2-heading-wrap {
    transform: translateY(-71%);
    text-align: right;
}

.contact__form-intro {
    font-size: 16px;
    font-weight: 500;
    color: #fff;
    letter-spacing: .1em;

}

/* 全体のコンテナ */
#jewelry-contact.contact .ly-inner {
    max-width: 1220px;
    margin: 0 auto;
    padding: 0 50px 113px;
}

/* 見出し */
#jewelry-contact .contact-lv2-heading {
    font-size: 35px;
    font-weight: 700;
    color: #fff;
    border-left: 10px solid #fff;
    padding-left: 30px;
}

#jewelry-contact .contact-intro {
    font-size: 16px;
    color: #fff;
    letter-spacing: .1em;
    line-height: 1;
    font-weight: 500;
    margin-top: 30px;
}

#jewelry-contact form {
    margin-top: 60px;
}

/* フォーム項目 */
#jewelry-contact .form__item {
    display: flex;
    flex-wrap: wrap;
    margin-top: 30px;
}

#jewelry-contact .form__item:nth-child(1) {
    margin-top: 0;
}

/* フォーム項目のヘッダー（ラベル部分） */
#jewelry-contact .form__item-head {
    font-weight: 400;
    display: flex;
    width: 20%;
    box-sizing: border-box;
    height: 56px;
}

#jewelry-contact .form__item-head p {
    width: 100%;
}


#jewelry-contact .form__item-head--check {
    display: block;
}

/* フォーム項目の内容部分（インプットやチェックボックス） */
#jewelry-contact .form__item-body {
    width: 80%;
    box-sizing: border-box;
}

/* テキストインプット、セレクト、テキストエリア */
#jewelry-contact .form__item-body input,
#jewelry-contact .form__select-wrap select,
#jewelry-contact .form__item-body textarea {
    display: block;
    width: 100%;
    height: 56px;
    padding: 0.375rem 0.75rem;
    font-size: 1rem;
    font-weight: 400;
    line-height: 1.5;
    color: #495057;
    background-color: #fff;
    background-clip: padding-box;
    border-radius: 0.5em;
    transition: border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
}

#jewelry-contact .form__item-head label {
    font-size: 21px;
    font-weight: 500;
    color: #fff;
    letter-spacing: 0;
}

#jewelry-contact .form__item-body textarea {
    height: auto;
    min-height: 100px;
}

/* チェックボックスのスタイル */
#jewelry-contact .form__checkbox-wrap {
    display: flex;
    align-items: center;
    cursor: pointer;
    position: relative;
}

/* チェックボックス（非表示） */
#jewelry-contact .form__checkbox-wrap input[type="checkbox"] {
    display: none;
}

/* チェックボックスのカスタムスタイル */
#jewelry-contact .form__checkbox-wrap .custom-checkbox {
    width: 14px;
    height: 14px;
    background-color: #fff;
    border-radius: 2px;
    position: relative;
    transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
}

/* チェックマークのスタイル */
#jewelry-contact .form__checkbox-wrap .custom-checkbox::after {
    content: "";
    position: absolute;
    width: 4px;
    height: 7px;
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
    opacity: 0;
    transition: opacity 0.2s ease-in-out;
}

/* チェック時のスタイル */
#jewelry-contact .form__checkbox-wrap input[type="checkbox"]:checked + .custom-checkbox {
    background-color: #B11F1F;
    border-color: #B11F1F;
}

#jewelry-contact .form__checkbox-wrap input[type="checkbox"]:checked + .custom-checkbox::after {
    opacity: 1;
}

/* プライバシーポリシーの説明テキスト */
#jewelry-contact .privacy-text {
    margin-top: 10px;
    display: block;
    font-size: 14px;
    line-height: 1.6;
    color: #fff;
}

#jewelry-contact .privacy-text a {
    text-decoration: underline;
    transition: color 0.15s ease-in-out;
}

#jewelry-contact .privacy-text a:hover {
    color: #c3c3c3;
}

#jewelry-contact .submit-btn__wrap {
    text-align: center;
    margin-top: 50px;
    z-index: 0;
    position: relative;
}

#jewelry-contact .submit-btn__wrap input {
    display: inline-block;
    padding: 21px;
    font-size: 21px;
    line-height: 1;
    border-radius: 90px;
    background-color: #833734;
    border-color: transparent;
    width: 228px;
    height: 72px;
    color: #fff;
    font-weight: 500;
}

#jewelry-contact .submit-btn {
    position: relative;
    width: 235.48px;
    height: 75.09px;
    margin: 0 auto;
}

#jewelry-contact .parsley-required,
#jewelry-contact .parsley-pattern {
    color: #B11F1F;
}

#jewelry-contact .required-txt {
    color: #B11F1F;
    font-size: 12px;
    font-weight: 700;
    margin-right: 34px;
}

#jewelry-contact .form__item-head-wrap {
    display: flex;
    justify-content: space-between;
    align-items: center;
    height: 100%;
}

#jewelry-contact .google-reCAPTCHA-desc {
    font-size: 14px;
    color: #fff;
    line-height: 2;
    margin-top: 20px;
}


@media(max-width: 1024px) {
    #jewelry-contact .form__item-head {
        width: 25%;
    }

    #jewelry-contact .form__item-body {
        width: 75%;
    }
}

@media(max-width: 959px) {
    #jewelry-contact .form__item {
        display: block;
    }

    #jewelry-contact .form__item-head {
        width: 100%;
    }

    #jewelry-contact .form__item-body {
        width: 100%;
    }

    #jewelry-contact .form__item {
        margin-top: 15px;
    }

    #jewelry-contact .form__item-head-wrap {
        justify-content: flex-start;
    }

    #jewelry-contact .required-txt {
        margin-left: 26px;
        margin-right: 0;
    }
}

@media(max-width: 743px) {
    #jewelry-contact.contact .ly-inner {
        padding: 0 20px 100px;
    }

    #jewelry-contact .contact-lv2-heading {
        font-size: 24px;
    }

    #jewelry-contact .contact-lv2-heading {
        border-left: 6.32px solid #fff;
        padding-left: 10px;
    }

    #jewelry-contact .contact-intro {
        font-size: 14px;
        line-height: 1.42;
        margin-top: 20px;
    }

    #jewelry-contact form {
        margin-top: 30px;
    }

    #jewelry-contact .form__item-head label {
        font-size: 18px;
    }

    #jewelry-contact .required-txt {
        font-size: 14px;
        margin-left: 15px;
    }

    #jewelry-contact .contact .lv2-heading-wrap {
        transform: translateY(-70%);
        text-align: right;
        position: absolute;
        top: 0;
        right: 20px;
    }

    #jewelry-contact.contact .lv2-heading {
        line-height: 0.7;
    }

    #jewelry-contact .form__item-head--check {
        display: flex;
    }
}

.reason__right-text {
    opacity: 0;
    transition: opacity 0.8s ease;
}

@media screen and (max-width: 1024px) {
    .reason__right-text {
        opacity: 0;
    }
}

.reason .splide__pagination {
    display: flex;
    gap: 10px;
    margin-top: 20px;
}

.reason .splide__pagination .reason__right-bar-cont {
    width: 30px;
    height: 2px;
    background-color: #D9D9D9;
    border: none;
    padding: 0;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

.reason .splide__pagination .reason__right-bar-cont.active {
    background-color: #000;
}

@media screen and (max-width: 1024px) {
    .reason .splide__pagination {
        justify-content: center;
    }
}

.reason__list-wrap .splide__pagination__page,
.reason__list-wrap .splide__pagination__page.is-active {
    width: 46px !important;
    height: 2.44px !important;
    background: rgba(255,255,255,0.6) !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    transition: background-color 0.3s ease !important;
    transform: none !important;
}

.reason__list-wrap .splide__pagination__page.is-active {
    background: #BABABA !important;
}

.reason__pagination {
    position: relative;
    bottom: auto;
    margin-top: clamp(15px, 4vw, 25px);
    display: flex;
    justify-content: center;
    width: 100%;
}

.reason__pagination__page {
    width: 46px !important;
    height: 2.44px !important;
    background: rgba(255,255,255,0.6) !important;
    border-radius: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    transition: background-color 0.3s ease !important;
    transform: none !important;
}

.reason__pagination__page.is-active {
    background: #BABABA !important;
}







/* チェックボックスのスタイル */
#jewelry-contact .form__checkbox-wrap {
    display: flex;
    align-items: center;
    cursor: pointer;
    position: relative;
}

/* チェックボックス（非表示） */
#jewelry-contact .form__checkbox-wrap input[type="checkbox"] {
    display: none;
}

/* チェックボックスのカスタムスタイル */
#jewelry-contact .form__checkbox-wrap .custom-checkbox {
    width: 14px;
    height: 14px;
    background-color: #fff;
    border-radius: 2px;
    position: relative;
    transition: background-color 0.2s ease-in-out, border-color 0.2s ease-in-out;
}

/* チェックマークのスタイル */
#jewelry-contact .form__checkbox-wrap .custom-checkbox::after {
    content: "";
    position: absolute;
    width: 4px;
    height: 7px;
    border-right: 1px solid #fff;
    border-bottom: 1px solid #fff;
    top: 45%;
    left: 50%;
    transform: translate(-50%, -50%) rotate(45deg);
    opacity: 0;
    transition: opacity 0.2s ease-in-out;
}

/* チェック時のスタイル */
#jewelry-contact .form__checkbox-wrap input[type="checkbox"]:checked + .custom-checkbox {
    background-color: #B11F1F;
    border-color: #B11F1F;
}

#jewelry-contact .form__checkbox-wrap input[type="checkbox"]:checked + .custom-checkbox::after {
    opacity: 1;
}

#jewelry-contact .form__item:has(.form__checkbox-wrap) br {
    display: none;
}
#jewelry-contact .form__checkbox-wrap span.wpcf7-list-item {
    margin: 0;
}
#jewelry-contact .form__checkbox-wrap:has(input[type="checkbox"]:checked) .custom-checkbox {
    background-color: #B11F1F;
    border-color: #B11F1F;
}
#jewelry-contact .form__checkbox-wrap:has(input[type="checkbox"]:checked) .custom-checkbox::after {
    opacity: 1;
}



#jewelry-contact .screen-reader-response {
    color: #b11f1f;
    margin-top: 20px;
    line-height: 1.6;
    font-size: 16px;
}

#jewelry-contact .error-message {
    color: #b11f1f;
    display: none;
  }

#jewelry-contact .screen-reader-response {
    display: none;
}

#jewelry-contact .wpcf7-not-valid-tip,
#jewelry-contact .wpcf7-validation-errors,
#jewelry-contact .wpcf7-response-output,
#jewelry-contact .wpcf7-acceptance-missing {
    color: #b11f1f;
    margin-top: 30px;
    text-align: center;
    font-weight: 500;
}

#jewelry-contact .wpcf7-acceptance-missing,
#jewelry-contact .wpcf7-validation-errors,
#jewelry-contact .wpcf7-mail-sent-ok {
    padding: 10px;
    border: 2px solid #b11f1f;
    color: #fff;
}

#jewelry-contact .wpcf7-not-valid-tip {
    color: #b11f1f;
    margin-top: 5px;
    display: block;
    text-align: left;
}



#jewelry-contact .wpcf7 form.invalid .wpcf7-response-output, .wpcf7 form.unaccepted .wpcf7-response-output, .wpcf7 form.payment-required .wpcf7-response-output {
    border-color: #b11f1f;
}

#jewelry-contact .wpcf7 form.sent .wpcf7-response-output {
    border-color: #b11f1f;
}

#jewelry-contact .wpcf7 form .wpcf7-response-output {
    border: 2px solid #b11f1f;
}