/* campagin style */
.campagin {
    background: url(../img/pc/campagin_bg.webp) no-repeat center top;
    background-size: cover;
    padding: min(calc((58 / 1080) * 100vw), 58px) 0 min(calc((60 / 1080) * 100vw), 60px);
}

.campagin.-v2 {
    background: url(../img/pc/campagin_bg02.webp) no-repeat center top;
    background-size: cover;
}

.campagin__inner {
    width: min(calc((920 / 1080) * 100vw), 920px);
    margin: 0 auto;
    position: relative;
}

/* ========================================
    キャンペーンタイトル
======================================== */
.campagin__title {
    text-align: center;
    margin-bottom: min(calc((20 / 1080) * 100vw), 20px);
}

.campagin__title-sub {
    background: #2fb359;
    width: min(calc((202 / 1080) * 100vw), 202px);
    padding: min(calc((3 / 1080) * 100vw), 3px) 0;
    margin: 0 auto min(calc((30 / 1080) * 100vw), 30px);
    position: relative;
}

.campagin__title-sub span {
    font-size: min(calc((24 / 1080) * 100vw), 24px);
    font-weight: bold;
    color: #fff;
    text-align: center;
    font-feature-settings: 'palt' on;
    font-family: 'M PLUS Rounded 1c', 'sans-serif';
    font-size: 30px;
    font-style: normal;
    font-weight: 800;
    line-height: 140%; /* 42px */
    position: relative;
    z-index: 2;
}

.campagin__title-sub::before {
    content: '';
    display: block;
    width: min(calc((57 / 1080) * 100vw), 57px);
    aspect-ratio: 57/30;
    background: #2fb359;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    position: absolute;
    bottom: min(calc((-10 / 1080) * 100vw), -10px);
    left: 50%;
    transform: translateX(-50%);
    z-index: 1;
}

.campagin__title-date span {
    font-size: min(calc((16 / 1080) * 100vw), 16px);
}

.campagin__title h2 {
    font-size: min(calc((40 / 1080) * 100vw), 40px);
    font-weight: bold;
    margin-top: min(calc((10 / 1080) * 100vw), 10px);
    font-family: 'M PLUS Rounded 1c', 'sans-serif';
    line-height: 1.4;
    margin-bottom: min(calc((40 / 1080) * 100vw), 40px);
}

.campagin__title h2 span {
    color: #f14c67;
}

.campagin__title02 h2 {
    color: var(--4D3D36, #4d3d36);
    text-align: center;
    font-family: 'M PLUS Rounded 1c', 'sans-serif';
    font-size: min(calc((40 / 1080) * 100vw), 40px);
    font-weight: 500;
    line-height: 140%;
    margin-bottom: min(calc((45 / 1080) * 100vw), 45px);
}

/* ========================================
    特典内容
======================================== */
.benefits {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: min(calc((36 / 1080) * 100vw), 36px);
    width: min(calc((920 / 1080) * 100vw), 920px);
    margin: 0 auto min(calc((30 / 1080) * 100vw), 30px);
}

.benefit-item {
    width: 100%;
    border: min(calc((20 / 1080) * 100vw), 20px) solid #c0e57f;
    position: relative;
}

.benefit-item__title {
    display: flex;
    flex-direction: column-reverse;
    align-items: center;
    justify-content: center;
    width: min(calc((84 / 1080) * 100vw), 84px);
    height: min(calc((84 / 1080) * 100vw), 84px);
    border-radius: 50%;
    background-color: #f14c67;
    color: #fff;
    position: absolute;
    left: min(calc(36 / 1080 * 100vw), 36px);
    top: min(calc(-33 / 1080 * 100vw), -33px);
    z-index: 3;
}

.benefit-item__title::before {
    content: '';
    display: block;
    width: min(calc(20 / 1080 * 100vw), 20px);
    aspect-ratio: 13 / 10;
    background: #f14c67;
    clip-path: polygon(0 0, 100% 0, 50% 100%);
    position: absolute;
    bottom: 0;
    left: 50%;
    transform: translateX(-50%) rotate(-60deg);
    margin-left: min(calc(34 / 1080 * 100vw), 34px);
    margin-bottom: min(calc(8 / 1080 * 100vw), 8px);
}

.benefit-item__title-number {
    font-size: min(calc((42 / 1080) * 100vw), 42px);
    font-weight: bold;
    font-family: 'M PLUS Rounded 1c', 'sans-serif';
    color: var(--coop-white, #fff);
    text-align: center;
    font-feature-settings: 'palt' on;
    font-style: normal;
    font-weight: 500;
    line-height: 1; /* 58.8px */
    letter-spacing: 3.36px;
}

.benefit-item__title-text {
    font-size: min(calc((20 / 1080) * 100vw), 20px);
    font-family: 'M PLUS Rounded 1c', 'sans-serif';
    line-height: 1.2;
}

.benefit-item__lead {
    background: #c0e57f;
    padding-top: min(calc((10 / 1080) * 100vw), 10px);
    padding-bottom: min(calc((18 / 1080) * 100vw), 18px);
}

.benefit-item__lead-text {
    padding: 0 min(calc((30 / 1080) * 100vw), 30px) min(calc((5 / 1080) * 100vw), 5px);
    font-size: min(calc((24 / 1080) * 100vw), 24px);
    font-weight: 500;
    position: relative;
    width: fit-content;
    line-height: 1;
    margin: 0 auto;
}

.benefit-item__lead-text::before,
.benefit-item__lead-text::after {
    content: '';
    display: block;
    width: min(calc((21 / 1080) * 100vw), 21px);
    aspect-ratio: 21 / 36;
    background: url(../img/common/campagin_btn_dot.svg) no-repeat center center;
    background-size: contain;
    scale: 0.8;
    position: absolute;
    bottom: -10%;
}

.benefit-item__lead-text::before {
    left: 0;
}

.benefit-item__lead-text::after {
    right: 0;
    scale: -0.8 0.8;
}

.benefit-item__content {
    background: #fff;
    padding: min(calc((20 / 1080) * 100vw), 20px);
    position: relative;
}

.benefit-item__content-main {
    font-size: min(calc((48 / 1080) * 100vw), 48px);
    font-weight: 800;
    font-family: 'M PLUS Rounded 1c', 'sans-serif';
    color: #f14c67;
    width: fit-content;
    margin: 0 auto;
}

.benefit-item__content-main span {
    font-size: min(calc((34 / 1080) * 100vw), 34px);
    font-weight: 500;
    color: #4d3d36;
}

.benefit-item__content-note {
    font-size: min(calc((12 / 1080) * 100vw), 12px);
    text-align: center;
    line-height: 1;
}

/* 特典1のスタイル */
.benefit-item.--01 {
    position: relative;
}

.benefit-item.--01::after {
    content: '';
    display: block;
    position: absolute;
    width: min(101px, calc((101 / 1080) * 100vw));
    height: min(101px, calc((101 / 1080) * 100vw));
    right: max(calc((20 / 750) * -100vw), -20px);
    bottom: max(calc((20 / 750) * -100vw), -20px);
    background: url(../img/common/img-coupon.svg) center / contain no-repeat;
}

.benefit-item.--01 .benefit-item__content {
    padding: 0;
}
.benefit-item.--01 .benefit-item__content-main span.text-coupon,
.benefit-item.--01 .benefit-item__content-main {
    font-size: min(calc((47 / 1080) * 100vw), 47px);
    color: #e31639;
    font-weight: 800;
    line-height: 1;
}

.benefit-item.--01 .benefit-item__content-main span {
    font-size: min(calc((84 / 1080) * 100vw), 84px);
    color: #e31639;
    font-weight: 800;
    line-height: 1;
}

.benefit-item.--01 .benefit-item__content-main span span {
    font-size: min(calc((57 / 1080) * 100vw), 75px);
    line-height: 1;
}

.benefit-item.--01 .benefit-item__content-text {
    color: #fff;
    text-align: center;
    font-feature-settings: 'palt' on;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((30 / 1080) * 100vw), 30px);
    font-style: normal;
    font-weight: 800;
    line-height: 1; /* 42px */
    letter-spacing: 0.08em;
    padding: min(calc((21 / 1080) * 100vw), 21px) 0 min(calc((40 / 1080) * 100vw), 40px);
    width: min(calc((358 / 1080) * 100vw), 358px);
    background: url(../img/common/img-ribbon.svg) center top / contain no-repeat;
    margin: 0 auto;
    position: relative;
    top: max(calc((-10 / 1080) * 100vw), -10px);
}

.benefit-item.--01 .benefit-item__content-text::before {
    content: '';
    display: block;
    width: min(calc((90 / 1080) * 100vw), 90px);
    aspect-ratio: 1/1;
    background: url(../img/common/badge-benefit-date.svg) no-repeat center center;
    background-size: contain;
    position: absolute;
    right: max(calc((112 / 1080) * -100vw), -112px);
    bottom: 0;
}

.benefit-item.--01 .benefit-item__content-note {
    padding: min(calc((4 / 1080) * 100vw), 4px) 0 min(calc((10 / 1080) * 100vw), 10px);
}

/* 特典2のスタイル */
.benefit-item.--02 .benefit-item__lead-text {
    margin-left: min(calc((472 / 1080) * 100vw), 472px);
}

.benefit-item.--02 .benefit-item__content-main {
    text-align: center;
    line-height: 1.3;
    margin-left: min(calc((420 / 1080) * 100vw), 420px);
}

.benefit-item.--02 .benefit-item__content-main span {
    font-size: min(calc((27 / 1080) * 100vw), 27px);
}

.benefit-item.--02 .benefit-item__content::before {
    content: '';
    display: block;
    width: min(calc((422 / 1080) * 100vw), 422px);
    aspect-ratio: 422 /254.39;
    background: url(../img/pc/img-catalog.webp) no-repeat center center;
    background-size: contain;
    position: absolute;
    left: min(calc((10 / 1080) * 100vw), 10px);
    top: max(calc((25 / 1080) * -100vw), -25px);
}

/* 特典3のスタイル */
.benefit-item.--03 .benefit-item__content {
}
.benefit-item.--03 .benefit-item__content-main {
    width: fit-content;
    position: relative;
}
.benefit-item.--03 .benefit-item__content-main::before {
    content: '';
    display: block;
    width: min(calc((107 / 1080) * 100vw), 107px);
    aspect-ratio: 107 /82;
    background: url(../img/common/img-flag.svg) no-repeat center center;
    background-size: contain;
    position: absolute;
    right: max(calc((138 / 1080) * -100vw), -138px);
    top: max(calc((40 / 1080) * -100vw), -40px);
}

/* ========================================
    キャンペーンボタン
======================================== */
.adlp-btn.--btn01::after {
    content: '';
    display: block;
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    transition: all 0.3s;
    background-image: url("data:image/svg+xml,%3Csvg width='13' height='18' viewBox='0 0 13 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M11.5 12.5L6.5 16.5L1.5 12.5' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3Cpath d='M6.5 9.5L6.5 1.5' stroke='white' stroke-width='2' stroke-linecap='round'/%3E%3C/svg%3E%0A");
    background-size: 100% 100%;
    width: min(1.2037037037vw, 13px);
    height: min(1.6666666667vw, 18px);
    right: min(3.0555555556vw, 33px);
}

.campagin .adlp-btn.--btn01 {
    border-radius: min(calc((90 / 1080) * 100vw), 90px);
    height: min(calc((90 / 1080) * 100vw), 90px);
    background: #f14c67;
    box-shadow: 0px min(calc((4 / 1080) * 100vw), 4px) min(calc((6 / 1080) * 100vw), 6px) 0px
        rgba(0, 0, 0, 0.2);
    color: #fff;
    margin: 0 auto;
    width: min(calc((490 / 1080) * 100vw), 490px);
    position: relative;
}

.campagin .adlp-btn.--btn01:hover {
    background: #f14c67;
    filter: brightness(1.2);
}

.campagin .adlp-btn.--btn01 a {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: min(calc((26 / 1080) * 100vw), 26px);
    font-weight: 600;
    color: #fff;
    text-decoration: none;
}

.campagin .adlp-btn.--btn01::after {
    content: '';
    display: block;
    background-image: url(../img/common/icon-arrow-btn.svg);
    background-repeat: no-repeat;
    width: min(calc(15.072 / 1080 * 100vw), 15.072px);
    height: min(calc(18.087 / 1080 * 100vw), 18.087px);
}

.campagin__note {
    font-size: min(calc((12 / 1080) * 100vw), 12px);
    margin-top: min(calc((20 / 1080) * 100vw), 20px);
    line-height: 1.5;
    padding: 0 min(calc((35 / 1080) * 100vw), 35px);
}

.campagin__footer {
    margin-top: min(calc((70 / 1080) * 100vw), 70px);
}

.campagin__footer.--mt0 {
    margin-top: 0;
}

.campagin__footer__inner {
    display: flex;
    justify-content: center;
    gap: min(calc((30 / 1080) * 100vw), 42px);
}

.campagin_cta .campagin__cta-title {
    display: flex;
    flex-direction: column;
    gap: 0;
    position: relative;
    text-align: center;
    font-size: min(calc((24 / 1080) * 100vw), 24px);
    font-weight: 500;
    margin-bottom: min(calc((15 / 1080) * 100vw), 15px);
    color: var(--coop-main01, #4d3d36);
    letter-spacing: 0.01em;
}

.campagin_cta .campagin__cta-title::before,
.campagin_cta .campagin__cta-title::after {
    content: '';
    display: block;
    width: min(calc((21 / 1080) * 100vw), 21px);
    aspect-ratio: 21 / 36;
    background: url(../img/common/campagin_btn_dot.svg) no-repeat center center;
    background-size: contain;
    scale: 0.8;
    position: absolute;
    bottom: 10%;
}

.campagin_cta .campagin__cta-title::before {
    left: 1%;
}

.campagin_cta .campagin__cta-title::after {
    right: 1%;
    scale: -0.8 0.8;
}

.campagin_cta .campagin__cta-title.--yellow::before,
.campagin_cta .campagin__cta-title.--yellow::after {
    background: url(../img/common/campagin_btn_dot_y.svg) no-repeat center center;
    background-size: contain;
}

.campagin_cta .campagin__cta-title span {
    line-height: 1.1;
    font-size: min(calc(24 / 1080 * 100vw), 24px);
    font-weight: 500;
}

.campagin_cta .campagin__cta-title span:first-child {
    font-size: min(calc(20 / 1080 * 100vw), 20px);
}

.campagin_cta .campagin__cta-title span sup {
    position: absolute;
    bottom: 0;
    right: min(calc(20 / 1080 * 100vw), 20px);
    margin-bottom: min(calc(40 / 1080 * 100vw), 40px);
    line-height: 1.1;
    font-size: min(calc(12 / 1080 * 100vw), 12px);
}

.campagin .cv02-button {
    margin: 0 auto;
    width: min(calc(450 / 1080 * 100vw), 450px);
    transition: all 0.3s;
}

.campagin .cv02-button:hover {
    filter: brightness(1.2);
}

.campagin .cv02-button a {
    border-radius: min(calc(70 / 1080 * 100vw), 70px);
    background: #2fb359;
    box-shadow: min(calc(4 / 1080 * 100vw), 4px) min(calc(4 / 1080 * 100vw), 4px)
        min(calc(8 / 1080 * 100vw), 8px) 0px rgba(0, 0, 0, 0.2);
    color: #ffffff;
    display: flex;
    align-items: center;
    height: min(calc(90 / 1080 * 100vw), 90px);
    padding: 0 min(calc(5 / 1080 * 100vw), 5px);
    position: relative;
    width: 100%;
    flex-shrink: 0;
}

.campagin .cv02-button a::after {
    content: '';
    display: block;
    background-image: url(../img/common/icon-arrow-btn.svg);
    background-repeat: no-repeat;
    width: min(calc(15.072 / 1080 * 100vw), 15.072px);
    height: min(calc(18.087 / 1080 * 100vw), 18.087px);
}

.campagin .cv02-button a span:first-child {
    background: #ffffff;
    color: #2fb359;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc(30 / 1080 * 100vw), 30px);
    font-weight: 500;
    line-height: 1;
    padding: min(calc(5 / 1080 * 100vw), 5px) min(calc(10 / 1080 * 100vw), 10px);
    border-radius: min(calc(10 / 1080 * 100vw), 10px);
    margin-right: min(calc(10 / 1080 * 100vw), 10px);
    width: min(calc(84 / 1080 * 100vw), 84px);
    aspect-ratio: 1/1;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 100%;
}

.campagin .cv02-button a p {
    color: #ffffff;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc(26 / 1080 * 100vw), 26px);
    font-weight: 500;
    line-height: 1.4;
    margin-left: min(calc(0 / 1080 * 100vw), 0px);
}

.campagin .cv02-button a .arrow {
    position: absolute;
    right: min(calc(30 / 1080 * 100vw), 30px);
    color: #ffffff;
    font-size: min(calc(15 / 1080 * 100vw), 15px);
}

.campagin .cv02-button.--yellow a {
    justify-content: center;
    background: #f5a62f;
}
/* ==========================================================================
    スマートフォンスタイル
========================================================================== */
@media all and (max-width: 767.9px) {
    .campagin {
        background: url(../img/sp/campagin_bg.webp) no-repeat center top;
        background-size: cover;
        padding: calc((60 / 750) * 100vw) 0 calc((62 / 750) * 100vw);
    }

    .campagin.-v2 {
        background: url(../img/sp/campagin_bg02.webp) no-repeat center top;
        background-size: cover;
    }

    .campagin__inner {
        position: relative;
        width: 100%;
        padding: 0 calc((30 / 750) * 100vw);
    }

    /* ========================================
        キャンペーンタイトル（スマホ）
    ======================================== */
    .campagin__title {
        text-align: center;
        margin-bottom: calc((64 / 750) * 100vw);
    }

    .campagin__title-sub {
        width: calc((220 / 750) * 100vw);
        padding: calc((6 / 750) * 100vw) 0 calc((4 / 750) * 100vw);
        margin: 0 auto calc((20 / 750) * 100vw);
    }

    .campagin__title-sub span {
        font-size: calc((34 / 750) * 100vw);
        font-weight: 800;
        line-height: 1.4;
    }

    .campagin__title-sub::before {
        width: calc((76 / 750) * 100vw);
        bottom: calc((-10 / 750) * 100vw);
    }

    .campagin__title h2 {
        font-size: calc((46 / 750) * 100vw);
        font-weight: 800;
        line-height: 1.4;
        margin-bottom: calc((30 / 750) * 100vw);
    }

    .campagin__title02 h2 {
        font-size: calc((46 / 750) * 100vw);
        font-weight: 500;
        line-height: 1.4;
        margin-bottom: calc((69 / 750) * 100vw);
    }

    /* ========================================
        特典内容（スマホ）
    ======================================== */
    .benefits {
        gap: calc((56 / 750) * 100vw);
        width: 100%;
        margin: 0 auto calc((50 / 750) * 100vw);
    }

    .benefit-item {
        width: 100%;
        border: calc((20 / 750) * 100vw) solid #c0e57f;
        position: relative;
    }

    .benefit-item__title {
        width: calc((112 / 750) * 100vw);
        height: calc((112 / 750) * 100vw);
        left: calc((30 / 750) * -100vw);
        top: calc((-44 / 750) * 100vw);
    }

    .benefit-item__title::before {
        width: calc((26 / 750) * 100vw);
        margin-left: calc((45 / 750) * 100vw);
        margin-bottom: calc((10 / 750) * 100vw);
    }

    .benefit-item__title-number {
        font-size: calc((56 / 750) * 100vw);
        font-weight: 500;
        line-height: 1;
        letter-spacing: calc((4 / 750) * 100vw);
    }

    .benefit-item__title-text {
        font-size: calc((26 / 750) * 100vw);
        line-height: 1.2;
    }

    .benefit-item__lead {
        padding-top: calc((15 / 750) * 100vw);
        padding-bottom: calc((4 / 750) * 100vw);
    }

    .benefit-item__lead-text {
        padding: 0 calc((40 / 750) * 100vw) calc((8 / 750) * 100vw);
        font-size: calc((32 / 750) * 100vw);
        font-weight: 500;
        line-height: 1.1;
    }

    .benefit-item__lead-text::before,
    .benefit-item__lead-text::after {
        width: calc((28 / 750) * 100vw);
        scale: 0.7;
        bottom: -5%;
    }

    .benefit-item__lead-text::after {
        scale: -0.7 0.7;
    }

    .benefit-item__content {
        padding: calc((20 / 750) * 100vw) 0;
    }

    .benefit-item__content-main {
        font-size: calc((53 / 750) * 100vw);
        font-weight: 800;
        line-height: 1.1;
        text-align: center;
    }

    .benefit-item__content-main span {
        font-size: calc((40 / 750) * 100vw);
        font-weight: 500;
    }

    .benefit-item__content-note {
        font-size: calc((20 / 750) * 100vw);
        line-height: 1;
        margin-top: calc((8 / 750) * 100vw);
    }

    /* 特典1のスタイル（スマホ） */
    .benefit-item.--01 {
        position: relative;
    }

    .benefit-item.--01::after {
        content: '';
        display: block;
        position: absolute;
        width: calc((135 / 750) * 100vw);
        height: calc((135 / 750) * 100vw);
        right: calc(20 / 750 * -100vw);
        bottom: calc(20 / 750 * -100vw);
        background: url(../img/common/img-coupon.svg) center / contain no-repeat;
    }

    .benefit-item.--01 .benefit-item__content {
        padding: 0;
        position: relative;
    }

    .benefit-item.--01 .benefit-item__content-main {
        font-size: calc((62 / 750) * 100vw);
        color: #e31639;
        font-weight: 800;
        line-height: 1;
        text-align: center;
        margin-bottom: calc((10 / 750) * 100vw);
    }

    .benefit-item.--01 .benefit-item__content-main span {
        font-size: calc((100 / 750) * 100vw);
        color: #e31639;
        font-weight: 800;
        line-height: 1;
    }

    .benefit-item.--01 .benefit-item__content-main span.text-coupon {
        font-size: calc((53 / 750) * 100vw);
        line-height: 1;
    }

    .benefit-item.--01 .benefit-item__content-text {
        color: #fff;
        text-align: center;
        font-family: 'M PLUS Rounded 1c';
        font-size: calc((34 / 750) * 100vw);
        font-weight: 800;
        line-height: 1;
        letter-spacing: 0.04em;
        padding: calc((20 / 750) * 100vw) 0 calc((40 / 750) * 100vw);
        width: calc((411 / 750) * 100vw);
        background: url(../img/common/img-ribbon.svg) center top / contain no-repeat;
        margin: 0 auto;
        position: relative;
        top: calc((-5 / 750) * 100vw);
    }

    .benefit-item.--01 .benefit-item__content-text::before {
        width: calc((120 / 750) * 100vw);
        right: calc((-120 / 750) * 100vw);
        bottom: calc((22 / 750) * -100vw);
    }

    .benefit-item.--01 .benefit-item__content-note {
        padding: 0 calc((20 / 750) * 100vw) calc((5 / 750) * 100vw);
        font-size: calc((20 / 750) * 100vw);
    }

    /* 特典2のスタイル（スマホ） */
    .benefit-item.--02 .benefit-item__lead-text {
        margin: 0 auto;
        padding-top: calc(324 / 750 * 100vw);
        text-align: center;
    }

    .benefit-item.--02 .benefit-item__content {
        position: relative;
    }

    .benefit-item.--02 .benefit-item__content-main {
        text-align: center;
        line-height: 1.1;
        margin: 0 auto;
        font-size: calc((53 / 750) * 100vw);
        color: #f14c67;
    }

    .benefit-item.--02 .benefit-item__content-main span {
        font-size: calc((36 / 750) * 100vw);
        color: #4d3d36;
    }

    .benefit-item.--02 .benefit-item__content::before {
        width: calc((514 / 750) * 100vw);
        left: 50%;
        top: calc((-369 / 750) * 100vw);
        transform: translateX(-50%);
    }

    /* 特典3のスタイル（スマホ） */
    .benefit-item.--03 .benefit-item__content-main {
        width: fit-content;
        margin: 0 auto;
        position: relative;
        font-size: calc((53 / 750) * 100vw);
    }

    .benefit-item.--03 .benefit-item__content-main::before {
        width: calc((143 / 750) * 100vw);
        right: calc((-164 / 750) * 100vw);
        top: calc((-100 / 750) * 100vw);
    }

    /* ========================================
        キャンペーンボタン（スマホ）
    ======================================== */
    .campagin .adlp-btn.--btn01 {
        border-radius: calc((80 / 750) * 100vw);
        height: calc((120 / 750) * 100vw);
        width: calc((630 / 750) * 100vw);
        margin: 0 auto;
    }

    .campagin .adlp-btn.--btn01 a {
        font-size: calc((36 / 750) * 100vw);
        font-weight: 700;
    }

    .campagin .adlp-btn.--btn01::after {
        width: calc((20 / 750) * 100vw);
        height: calc((24 / 750) * 100vw);
    }

    .campagin__note {
        font-size: calc((20 / 750) * 100vw);
        margin-top: calc((30 / 750) * 100vw);
        padding: 0 calc((20 / 750) * 100vw);
        line-height: 1.5;
    }

    /* ========================================
        フッター（スマホ）
    ======================================== */
    .campagin__footer {
        margin-top: calc((80 / 750) * 100vw);
    }

    .campagin__footer__inner {
        flex-direction: column;
        gap: calc((50 / 750) * 100vw);
    }

    .campagin_cta .campagin__cta-title {
        font-size: calc((32 / 750) * 100vw);
        margin-bottom: calc((15 / 750) * 100vw);
        gap: calc((8 / 750) * 100vw);
        width: fit-content;
        margin: 0 auto calc((15 / 750) * 100vw);
        padding: 0 calc((50 / 750) * 100vw);
        position: relative;
    }

    .campagin_cta .campagin__cta-title::before,
    .campagin_cta .campagin__cta-title::after {
        width: calc((28 / 750) * 100vw);
        scale: 1;
        bottom: -8%;
    }

    .campagin_cta .campagin__cta-title::before {
        left: 0;
    }

    .campagin_cta .campagin__cta-title::after {
        right: 0;
        scale: -1 1;
    }

    .campagin_cta .campagin__cta-title.--yellow::before,
    .campagin_cta .campagin__cta-title.--yellow::after {
        background: url(../img/common/campagin_btn_dot_y.svg) no-repeat center center;
        background-size: contain;
    }

    .campagin_cta .campagin__cta-title span {
        line-height: 1.1;
        font-size: calc((32 / 750) * 100vw);
    }

    .campagin_cta .campagin__cta-title span:first-child {
        font-size: calc((26 / 750) * 100vw);
    }

    .campagin_cta .campagin__cta-title span sup {
        line-height: 1.4;
        font-size: calc((20 / 750) * 100vw);
        right: calc((15 / 750) * 100vw);
        margin-bottom: calc(50 / 750 * 100vw);
    }

    .campagin .cv02-button {
        width: calc((630 / 750) * 100vw);
    }

    .campagin .cv02-button a {
        border-radius: calc((80 / 750) * 100vw);
        box-shadow: calc((5 / 750) * 100vw) calc((5 / 750) * 100vw) calc((10 / 750) * 100vw) 0px
            rgba(0, 0, 0, 0.2);
        height: calc((120 / 750) * 100vw);
        padding: 0 calc((8 / 750) * 100vw);
    }

    .campagin .cv02-button a::after {
        width: calc((20 / 750) * 100vw);
        height: calc((24 / 750) * 100vw);
    }

    .campagin .cv02-button a span:first-child {
        font-size: calc((38 / 750) * 100vw);
        padding: calc((8 / 750) * 100vw) 0;
        width: calc((106 / 750) * 100vw);
        margin-right: calc((15 / 750) * 100vw);
    }

    .campagin .cv02-button a p {
        font-size: calc((36 / 750) * 100vw);
        line-height: 1.4;
        margin-left: calc((15 / 750) * 100vw);
    }

    .campagin .cv02-button.--yellow a {
        justify-content: center;
        background: #f5a62f;
    }
}

/* modal */
.adlp-modal.modal03 {
    z-index: 1000;
}
.adlp-modal.modal03 .adlp-modal__content {
    position: relative;
    border-radius: min(1.8518518519vw, 20px);
    border: min(0.462962963vw, 5px) solid var(--E31639, #f5a62f);
    background: var(--base-white, #fff);
    max-width: min(85.1851851852vw, 920px);
}
.adlp-modal.modal03 .adlp-modal__content__close {
    position: absolute;
    top: 0;
    right: 0;
    width: min(4.4444444444vw, 48px);
    height: min(4.4444444444vw, 48px);
    flex-shrink: 0;
    translate: -50% -50%;
}
.adlp-modal.modal03 .adlp-modal__content__inner {
    min-height: min(18.5185185185vw, min(18.5185185185vw, 200px));
    max-height: 93vh;
    padding: min(4.2592592593vw, 46px) 0;
    overflow-y: scroll;
    overscroll-behavior-y: contain;
    scrollbar-width: none;
    -ms-overflow-style: none;
    width: min(91.6666666667vw, 990px);
    margin: 0 auto;
    position: relative;
    left: max(-3.7037037037vw, -40px);
}
.adlp-modal.modal03 .adlp-modal__content__inner > div {
    width: min(84.2592592593vw, 910px);
    margin: 0 auto;
}
.adlp-modal.modal03 .adlp-modal__content__inner::-webkit-scrollbar {
    display: none;
}
.adlp-modal.modal03 .adlp-modal__content__title {
    text-align: center;
    margin-bottom: min(0.9259259259vw, 10px);
}
.adlp-modal.modal03 .adlp-modal__content__title h2 {
    color: #4d3d36;
    text-align: center;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(3.5185185185vw, 38px);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.08rem;
}
.adlp-modal.modal03 .adlp-modal__content__body {
    margin-top: min(calc(60 / 1080 * 100vw), 60px);
}
.adlp-modal.modal03 .adlp-modal__content__body dl.product-list {
    padding: min(6.6666666667vw, 72px) min(6.6666666667vw, 72px) min(6.6666666667vw, 72px)
        min(32.5vw, 351px);
    background: url(../img/common/modal-body-bg.webp) left top repeat;
    position: relative;
    display: flex;
    flex-wrap: wrap;
}
.adlp-modal.modal03 .adlp-modal__content__body dl.product-list::after {
    content: '';
    display: block;
    width: min(36.4814814815vw, 394px);
    aspect-ratio: 394/431;
    background: url(../img/pc/modal-photo.webp) center/contain no-repeat;
    position: absolute;
    top: max(-4.6296296296vw, -50px);
    left: max(-4.4444444444vw, -48px);
    z-index: 10;
}
.adlp-modal.modal03 .adlp-modal__content__body dl.product-list dt {
    color: #fff;
    font-family: 'Noto Sans JP';
    font-size: min(2.2222222222vw, 24px);
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.08rem;
    position: absolute;
    right: min(6.9444444444vw, 75px);
    top: max(-4.9074074074vw, -53px);
    width: min(12.962962963vw, 140px);
    aspect-ratio: 1/1;
    display: flex;
    justify-content: center;
    align-items: center;
    background: url(../img/common/modal-illust.svg) center/contain no-repeat;
}
.adlp-modal.modal03 .adlp-modal__content__body dl.product-list dd {
    display: flex;
    width: 50%;
}
.adlp-modal.modal03 .adlp-modal__content__body dl.product-list dd::before {
    content: '・';
    display: inline-block;
    font-size: 1em;
    margin-right: 0.5em;
}
.adlp-modal.modal03 .adlp-modal__content__body dl.product-list dd .inner {
    color: #4d3d36;
    font-family: 'Noto Sans JP';
    font-size: min(2.037037037vw, 22px);
    font-weight: 500;
    line-height: 1.5;
}
.adlp-modal.modal03 .adlp-modal__content__body p.period {
    background: #2fb359;
    width: fit-content;
    margin: 0 auto;
    padding: min(1.2037037037vw, 13px) min(3.3333333333vw, 36px);
    translate: 0 -50%;
}
.adlp-modal.modal03 .adlp-modal__content__body p.period span {
    color: #fff;
    font-family: 'Noto Sans JP';
    font-size: min(2.2222222222vw, 24px);
    font-weight: 500;
    line-height: 1.4;
    letter-spacing: 0.08rem;
}
.adlp-modal.modal03 .adlp-modal__content__body .price-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: min(calc(50 / 1080 * 100vw), 50px);
}
.adlp-modal.modal03 .adlp-modal__content__body .price-area .price-lead {
    color: #4d3d36;
    text-align: center;
    font-family: 'Noto Sans JP';
    font-size: min(2.037037037vw, 22px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.06rem;
}
.adlp-modal.modal03 .adlp-modal__content__body .price-area .price-unit {
    display: flex;
    align-items: center;
    justify-content: center;
    margin-top: min(0.9259259259vw, 10px);
}
.adlp-modal.modal03 .adlp-modal__content__body .price-area .price-unit > span {
    color: #2fb359;
    font-family: 'Noto Sans JP';
    font-size: min(2.3148148148vw, 25px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.08rem;
    border: min(0.1851851852vw, 2px) solid #2fb359;
    padding: min(1.9444444444vw, 21px) min(1.1111111111vw, 12px);
    border-radius: min(1.8518518519vw, 20px);
    margin-right: min(0.7407407407vw, 8px);
}
.adlp-modal.modal03 .adlp-modal__content__body .price-area .price-unit p {
    color: #e31639;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(9.2592592593vw, 100px);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: -0.02em;
    position: relative;
}
.adlp-modal.modal03 .adlp-modal__content__body .price-area .price-unit p small {
    color: #e31639;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(5.5555555556vw, 60px);
    font-weight: 500;
    line-height: 1.2;
    letter-spacing: 0.08rem;
}
.adlp-modal.modal03 .adlp-modal__content__body .price-area .price-unit p span {
    color: #4d3d36;
    font-family: 'Tsukushi A Round Gothic';
    font-size: min(1.8518518519vw, 20px);
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.08rem;
    position: absolute;
    right: max(-0.2777777778vw, -3px);
    top: min(1.9444444444vw, 21px);
}
.adlp-modal.modal03 .adlp-btn__wrapper {
    margin: 0;
}
.adlp-modal.modal03 .adlp-btn__wrapper .adlp-btn.--btn01 {
    width: min(calc(480 / 1080 * 100vw), 480px);
    box-shadow: 5px 5px 10px 0px rgba(0, 0, 0, 0.2);
}
.adlp-modal.modal03 p.note {
    color: #4d3d36;
    font-family: 'Noto Sans JP';
    font-size: min(1.1111111111vw, 12px);
    font-weight: 400;
    line-height: 1.5;
    letter-spacing: 0.04rem;
    width: min(80.5555555556vw, 870px);
    margin: min(3.2407407407vw, 35px) auto 0;
}
.adlp-modal.modal03.campagin .cv02-button {
    width: min(calc(480 / 1080 * 100vw), 480px);
}
@media screen and (max-width: 767px) {
    .adlp-modal.modal03 .adlp-modal__content {
        border-radius: 2.6666666667vw;
        border-width: 0.6666666667vw;
        max-width: 92vw;
        width: 100%;
        padding: 9vw 0 7.3333333333vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__close {
        width: 9.4666666667vw;
        height: 9.4666666667vw;
        translate: 25% -25%;
    }
    .adlp-modal.modal03 .adlp-modal__content__inner {
        width: 100%;
        left: 0;
        padding: 0;
    }
    .adlp-modal.modal03 .adlp-modal__content__inner > div {
        width: 100%;
    }
    .adlp-modal.modal03 .adlp-modal__content__title h2 {
        font-size: 6.9333333333vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__body {
        margin-top: 8.4vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__body dl.product-list {
        padding: 9.3333333333vw 0 6.4vw 57vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__body dl.product-list::after {
        width: 58vw;
        top: -1.7vw;
        left: 0;
        transform: translateX(0);
        background: url(../img/sp/modal-photo.webp) center/contain no-repeat;
    }
    .adlp-modal.modal03 .adlp-modal__content__body dl.product-list dt {
        font-size: 4.8vw;
        right: 1.3333333333vw;
        top: -7.9vw;
        width: 18.6666666667vw;
        background-size: contain;
    }
    .adlp-modal.modal03 .adlp-modal__content__body dl.product-list dd {
        display: flex;
        width: 100%;
        letter-spacing: 0.04em;
    }
    .adlp-modal.modal03 .adlp-modal__content__body dl.product-list dd::before {
        content: '・';
        display: inline-block;
        font-size: 1em;
        margin-right: 0.5em;
    }
    .adlp-modal.modal03 .adlp-modal__content__body dl.product-list dd {
        font-size: 2.9vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__body dl.product-list dd .inner {
        font-size: 2.9333333333vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__body .price-area .price-lead {
        font-size: 4vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__body .price-area .price-unit p {
        font-size: 8.5333333333vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__body p.period {
        padding: 1.0666666667vw 2.6666666667vw;
        margin-bottom: -3.8666666667vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__body p.period span {
        font-size: 4.8vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__body .price-area {
        margin-top: 6vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__body .price-area .price-lead {
        font-size: min(3.3333333333vw, 36px);
    }
    .adlp-modal.modal03 .adlp-modal__content__body .price-area .price-unit {
        margin-top: 1.3333333333vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__body .price-area .price-unit > span {
        font-size: 3.4666666667vw;
        border: 0.4vw solid #2fb359;
        padding: 4.8vw 1.6vw;
        border-radius: 2.6666666667vw;
        margin-right: 0.5333333333vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__body .price-area .price-unit p {
        font-size: 16.5333333333vw;
        font-weight: 500;
        line-height: 1.2;
        letter-spacing: -0.02em;
    }
    .adlp-modal.modal03 .adlp-modal__content__body .price-area .price-unit p small {
        font-size: 8.5333333333vw;
    }
    .adlp-modal.modal03 .adlp-modal__content__body .price-area .price-unit p span {
        font-size: 2.6666666667vw;
        position: static;
    }
    .adlp-modal.modal03 .adlp-modal__content__body .adlp-btn__wrapper .adlp-btn.--btn01 {
        width: 84vw;
    }
    .adlp-modal.modal03 p.note {
        font-size: 2.6666666667vw;
        margin-top: 4vw;
    }
    .adlp-modal.modal03.campagin .cv02-button {
        width: calc(630 / 750 * 100vw);
    }
    .adlp-modal.modal03.campagin .cv02-button a:after {
        right: calc(30 / 750 * 100vw);
    }
}

.campagin.--v3 {
    background: url(../img/pc/campagin_bg_v3.webp) no-repeat center top / cover;
}
.campagin__header {
    position: relative;
}
.campagin__subtitle {
    display: flex;
    flex-direction: column;
    width: fit-content;
    margin: 0 auto;
    position: relative;
}
.campagin__subtitle::before,
.campagin__subtitle::after {
    position: absolute;
    content: '';
    display: block;
    width: min(calc((52 / 1080) * 100vw), 52px);
    aspect-ratio: 52/72;
    background: url(../img/pc/campagin_header_line.webp) no-repeat center center / contain;
    top: 50%;
}
.campagin__subtitle::before {
    left: 0;
    transform: translate(-120%, -50%);
}
.campagin__subtitle::after {
    right: 0;
    transform: translate(120%, -50%) scale(-1, 1);
}
.campagin__subtitle-text01 {
    color: #4d3d36;
    text-align: center;
    font-feature-settings: 'palt' on;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((20 / 1080) * 100vw), 20px);
    font-style: normal;
    font-weight: 800;
    line-height: 140%; /* 28px */
    letter-spacing: min(calc((0.8 / 1080) * 100vw), 0.8px);
}
.campagin__subtitle-text02 {
    color: #f14c67;
    font-feature-settings: 'palt' on;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((38 / 1080) * 100vw), 38px);
    font-style: normal;
    font-weight: 800;
    line-height: 120%;
    letter-spacing: min(calc((1.52 / 1080) * 100vw), 1.52px);
}
.campagin__title {
    display: flex;
    flex-direction: column;
    background: url(../img/pc/campagin_header_ribbon.webp) no-repeat center top / contain;
    width: min(calc((996 / 1080) * 100vw), 996px);
    padding: min(calc((40 / 1080) * 100vw), 40px) 0 min(calc((40 / 1080) * 100vw), 40px);
    margin: 0 auto max(calc((-50 / 1080) * 100vw), -50px);
}
.campagin__title-text01 {
    color: #fff;
    text-align: center;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((26 / 1080) * 100vw), 26px);
    font-style: normal;
    font-weight: 500;
    line-height: 120%; /* 31.2px */
}
.campagin__title-text02 {
    color: #fff;
    text-align: center;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((38 / 1080) * 100vw), 38px);
    font-style: normal;
    font-weight: 800;
    line-height: 120%; /* 45.6px */
}
.campagin__title-text02 strong {
    color: #ffd700;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((64 / 1080) * 100vw), 64px);
    font-style: normal;
    font-weight: 800;
    line-height: 120%;
}
.campagin__detail {
    border-radius: min(calc((20 / 1080) * 100vw), 20px);
    border: min(calc((4 / 1080) * 100vw), 4px) solid #f14c67;
    background: #fff;
    width: min(calc((920 / 1080) * 100vw), 920px);
    margin: 0 auto;
    padding: min(calc((64 / 1080) * 100vw), 64px) 0 min(calc((35 / 1080) * 100vw), 35px);
}
.campagin__feature {
    position: relative;
    width: fit-content;
    display: flex;
    align-items: center;
    justify-content: center;
    padding-right: min(calc((343 / 1080) * 100vw), 343px);
    margin: 0 auto;
}
.campagin__feature:after {
    content: '';
    display: block;
    position: absolute;
    width: min(calc((363 / 1080) * 100vw), 363px);
    aspect-ratio: 363/251;
    background: url(../img/pc/campagin_feature_item.webp) no-repeat center center / contain;
    top: 50%;
    right: 0;
    transform: translate(0, -50%);
}
.campagin__feature > span {
    color: #4d3d36;
    text-align: center;
    font-feature-settings: 'palt' on;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((20 / 1080) * 100vw), 20px);
    font-style: normal;
    font-weight: 500;
    line-height: 140%; /* 28px */
    letter-spacing: min(calc((0.8 / 1080) * 100vw), 0.8px);
    position: absolute;
    left: 0;
    bottom: 0;
    margin-bottom: min(calc((100 / 1080) * 100vw), 100px);
    margin-left: min(calc((97 / 1080) * 100vw), 97px);
}
.campagin__feature strong {
    color: #e31639;
    font-feature-settings: 'palt' on;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((110 / 1080) * 100vw), 110px);
    font-style: normal;
    font-weight: 800;
    line-height: 140%;
    display: inline-block;
    background: linear-gradient(transparent 70%, #fff979 70%, #fff979 90%, transparent 90%);
}
.campagin__feature strong span {
    color: #e31639;
    font-feature-settings: 'palt' on;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((64 / 1080) * 100vw), 64px);
    font-style: normal;
    font-weight: 800;
    line-height: 140%;
}
.campagin__period {
    background: #f14c67;
    display: flex;
    justify-content: center;
    align-items: center;
    gap: min(calc((20 / 1080) * 100vw), 20px);
    padding: min(calc((12 / 1080) * 100vw), 12px) 0 min(calc((13 / 1080) * 100vw), 13px);
}
.campagin__period-label {
    color: #f14c67;
    text-align: center;
    font-feature-settings: 'palt' on;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((14 / 1080) * 100vw), 14px);
    font-style: normal;
    font-weight: 800;
    line-height: 140%; /* 19.6px */
    letter-spacing: min(calc((1.12 / 1080) * 100vw), 1.12px);
    background: #fff;
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: min(calc((12 / 1080) * 100vw), 12px) min(calc((10 / 1080) * 100vw), 10px);
    border-radius: min(calc((10 / 1080) * 100vw), 10px);
}
.campagin__period-date {
    color: #fff;
    text-align: center;
    font-feature-settings: 'palt' on;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((18 / 1080) * 100vw), 18px);
    font-style: normal;
    font-weight: 800;
    line-height: 140%; /* 25.2px */
    letter-spacing: min(calc((0.72 / 1080) * 100vw), 0.72px);
}
.campagin__period-date span {
    color: #fff;
    font-feature-settings: 'palt' on;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((28 / 1080) * 100vw), 28px);
    font-style: normal;
    font-weight: 800;
    line-height: 140%;
    letter-spacing: min(calc((1.12 / 1080) * 100vw), 1.12px);
}
.campagin-set {
    margin-top: min(calc((20 / 1080) * 100vw), 20px);
    position: relative;
    z-index: 1;
    background: url(../img/pc/campagin_img01.webp) no-repeat right
        min(calc((53 / 1080) * 100vw), 53px) / min(calc((643 / 1080) * 100vw), 643px);
}
.campagin-set__title {
    color: #f68013;
    text-align: center;
    font-family: 'Rounded Mplus 1c';
    font-size: min(calc((27 / 1080) * 100vw), 27px);
    font-style: normal;
    font-weight: 800;
    line-height: 1.6; /* 43.2px */
    background: linear-gradient(transparent 80%, #f8f150 80%, #f8f150 100%, transparent 100%);
    width: fit-content;
    margin: 0 auto;
}
.campagin-set__text {
    font-size: min(calc((18 / 1080) * 100vw), 18px);
    text-align: center;
    margin-top: min(calc((10 / 1080) * 100vw), 10px);
}
.campagin-set__baloon {
    color: #f14c67;
    text-align: center;
    font-family: 'Rounded Mplus 1c';
    font-size: min(calc((27 / 1080) * 100vw), 27px);
    font-style: normal;
    font-weight: 500;
    line-height: 1.4; /* 37.8px */
    padding: min(calc((9 / 1080) * 100vw), 9px) min(calc((30 / 1080) * 100vw), 30px)
        min(calc((32 / 1080) * 100vw), 32px);
    background: url(../img/pc/campagin_baloon.webp) no-repeat center bottom / contain;
    margin: min(calc((280 / 1080) * 100vw), 280px) auto max(calc((-50 / 1080) * 100vw), -50px);
}
.campagin__attention {
    background: #4d3d36;
    font-size: min(calc((16 / 1080) * 100vw), 16px);
    color: #fff;
    width: fit-content;
    padding: min(calc((4 / 1080) * 100vw), 4px) min(calc((40 / 1080) * 100vw), 40px);
    margin: 0 auto 0 min(calc((120 / 1080) * 100vw), 120px);
}
.campagin__items {
    position: relative;
}
.campagin__price-group {
    position: absolute;
    top: 0;
    right: min(calc((30 / 1080) * 100vw), 30px);
    margin-top: min(calc((236 / 1080) * 100vw), 236px);
}
.campagin__price01 {
    color: var(--coop-main01, #4d3d36);
    font-feature-settings: 'palt' on;
    font-family: 'Noto Sans JP';
    font-size: min(calc((22 / 1080) * 100vw), 22px);
    font-style: normal;
    font-weight: 500;
    line-height: 180%; /* 39.6px */
    letter-spacing: min(calc((1.76 / 1080) * 100vw), 1.76px);
    margin-bottom: max(calc((-30 / 1080) * 100vw), -30px);
    margin-left: min(calc((140 / 1080) * 100vw), 140px);
    margin-top: min(calc((10 / 1080) * 100vw), 10px);
}
.campagin__price-unit {
    display: flex;
    justify-items: center;
    align-items: center;
    gap: min(calc((10 / 1080) * 100vw), 10px);
}
.campagin__price-label {
    border-radius: min(calc((20 / 1080) * 100vw), 20px);
    border: min(calc((3 / 1080) * 100vw), 3px) solid #e31639;
    background: var(--coop-white, #fff);
    display: inline-flex;
    justify-content: center;
    align-items: center;
    padding: min(calc((28 / 1080) * 100vw), 28px) min(calc((20 / 1080) * 100vw), 20px);
}
.campagin__price-label span {
    color: #e31639;
    text-align: center;
    font-feature-settings: 'palt' on;
    font-family: 'Noto Sans JP';
    font-size: min(calc((16 / 1080) * 100vw), 16px);
    font-style: normal;
    font-weight: 700;
    line-height: 1; /* 28.8px */
    letter-spacing: min(calc((1.28 / 1080) * 100vw), 1.28px);
}
.campagin__price-value {
    color: #e31639;
    font-feature-settings: 'palt' on;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((116 / 1080) * 100vw), 116px);
    font-style: normal;
    font-weight: 800;
    line-height: 140%; /* 162.4px */
}
.campagin__price-value span {
    color: #e31639;
    font-feature-settings: 'palt' on;
    font-family: 'M PLUS Rounded 1c';
    font-size: min(calc((56 / 1080) * 100vw), 56px);
    font-style: normal;
    font-weight: 800;
    line-height: 140%;
    position: relative;
}
.campagin__price-value-comma {
    color: #e31639;
    font-feature-settings: 'palt' on;
    font-family: 'Rounded Mplus 1c';
    font-size: min(calc((52 / 1080) * 100vw), 52px);
    font-style: normal;
    font-weight: 800;
    line-height: 140%;
}
.campagin__price-value-unit sup {
    color: var(--coop-main01, #4d3d36);
    font-feature-settings: 'palt' on;
    font-family: 'Noto Sans JP';
    font-size: min(calc((12 / 1080) * 100vw), 12px);
    font-style: normal;
    font-weight: 400;
    line-height: 150%; /* 18px */
    letter-spacing: min(calc((0.48 / 1080) * 100vw), 0.48px);
    position: absolute;
    right: 0;
    bottom: 0;
    margin-bottom: min(calc((70 / 1080) * 100vw), 70px);
    margin-right: min(calc((10 / 1080) * 100vw), 10px);
}
.--v3 .campagin__cta-title {
    width: fit-content;
    margin: min(calc((32 / 1080) * 100vw), 32px) auto min(calc((8 / 1080) * 100vw), 8px);
    padding: 0 min(calc((30 / 1080) * 100vw), 30px) min(calc((10 / 1080) * 100vw), 10px);
    font-size: min(calc((20 / 1080) * 100vw), 22px);
}
.--v3 .campagin_cta .campagin__cta-title span:last-child {
    font-size: min(calc((20 / 1080) * 100vw), 22px);
}
.--v3 .adlp-btn.--btn01 {
    width: min(calc((440 / 1080) * 100vw), 440px);
}
.--v3 .adlp-btn.--btn01::after {
    height: min(calc((15 / 1080) * 100vw), 15px);
    width: min(calc((18 / 1080) * 100vw), 18px);
    right: min(calc((20 / 1080) * 100vw), 20px);
}
.campagin__footer_note {
    color: var(--coop-main01, #4d3d36);
    text-align: justify;
    font-feature-settings: 'palt' on;
    font-family: 'Noto Sans JP';
    font-size: min(calc((12 / 1080) * 100vw), 12px);
    font-style: normal;
    font-weight: 400;
    line-height: 150%; /* 18px */
    letter-spacing: min(calc((0.48 / 1080) * 100vw), 0.48px);
    margin-top: min(calc((20 / 1080) * 100vw), 20px);
    text-align: center;
}

@media screen and (max-width: 767px) {
    .campagin.--v3 {
        background: url(../img/sp/campagin_bg_v3.webp) no-repeat center top / cover;
    }
    .campagin__header {
        position: relative;
    }
    .campagin__subtitle::before,
    .campagin__subtitle::after {
        width: calc(65 / 750 * 100vw);
        aspect-ratio: 65/97;
    }
    .campagin__subtitle::before {
        left: 0;
        transform: translate(-120%, -50%);
    }
    .campagin__subtitle::after {
        right: 0;
        transform: translate(120%, -50%) scale(-1, 1);
    }
    .campagin__subtitle-text01 {
        color: #4d3d36;
        font-size: calc(30 / 750 * 100vw);
    }
    .campagin__subtitle-text02 {
        font-size: calc(48 / 750 * 100vw);
    }
    .campagin__title {
        background: url(../img/sp/campagin_header_ribbon.webp) no-repeat center top / 103% auto;
        width: 100%;
        padding: calc(60 / 750 * 100vw) 0 calc(53 / 750 * 100vw);
        margin-bottom: calc((-64 / 750) * 100vw);
    }
    .campagin__title-text01 {
        font-size: calc(36 / 750 * 100vw);
    }
    .campagin__title-text02 {
        font-size: calc(48 / 750 * 100vw);
    }
    .campagin__title-text02 strong {
        font-size: calc(75 / 750 * 100vw);
    }
    .campagin__detail {
        border-radius: calc(20 / 750 * 100vw);
        border: calc(8 / 750 * 100vw) solid #f14c67;
        width: calc(670 / 750 * 100vw);
        margin: 0 auto calc(30 / 750 * 100vw);
        padding: calc(50 / 750 * 100vw) 0 calc(55 / 750 * 100vw);
    }
    .campagin__feature {
        padding-right: calc(355 / 750 * 100vw);
        margin-top: calc(20 / 750 * -100vw);
        margin-bottom: calc(20 / 750 * 100vw);
    }
    .campagin__feature:after {
        width: calc(355 / 750 * 100vw);
        aspect-ratio: 355/255;
        background: url(../img/sp/campagin_feature_item.webp) no-repeat center center / contain;
        top: 50%;
        right: 0;
        transform: translate(0, -50%);
    }
    .campagin__feature > span {
        font-size: calc(28 / 750 * 100vw);
        margin-bottom: calc(113 / 750 * 100vw);
        margin-left: calc(100 / 750 * 100vw);
    }
    .campagin__feature strong {
        font-size: calc(124 / 750 * 100vw);
    }
    .campagin__feature strong span {
        font-size: calc(74 / 750 * 100vw);
        letter-spacing: -0.1em;
    }
    .campagin__period {
        gap: calc(20 / 750 * 100vw);
        padding: calc(8 / 750 * 100vw) 0 calc(8 / 750 * 100vw);
    }
    .campagin__period-label {
        font-size: calc(24 / 750 * 100vw);
        padding: calc(14 / 750 * 100vw) calc(24 / 750 * 100vw) calc(10 / 750 * 100vw);
        border-radius: calc(8 / 750 * 100vw);
        line-height: 1;
    }
    .campagin__period-date {
        font-size: calc(28 / 750 * 100vw);
    }
    .campagin__period-date span {
        font-size: calc(38 / 750 * 100vw);
    }
    .campagin-set {
        margin-top: calc(20 / 750 * 100vw);
        position: relative;
        z-index: 1;
        background: none;
    }
    .campagin-set::after {
        content: '';
        display: block;
        width: calc(777 / 750 * 100vw);
        aspect-ratio: 777/565;
        margin-top: calc(20 / 750 * 100vw);
        position: absolute;
        bottom: calc(142 / 750 * 100vw);
        z-index: 1;
        background: none;
        background: url(../img/sp/campagin_img01.webp) no-repeat calc(20 / 750 * 100vw) /
            calc(777 / 750 * 100vw);
    }
    .campagin-set__title {
        font-size: calc(35 / 750 * 100vw);
        background: linear-gradient(transparent 90%, #f8f150 90%, #f8f150 100%, transparent 100%);
        width: fit-content;
        margin: 0 auto;
    }
    .campagin-set__text {
        font-size: calc(26 / 750 * 100vw);
        text-align: center;
        margin-top: calc(24 / 750 * 100vw);
    }
    .campagin-set__baloon {
        font-size: calc(36 / 750 * 100vw);
        font-style: normal;
        font-weight: 500;
        line-height: 1.4; /* 37.8px */
        padding: calc(25 / 750 * 100vw) calc(40 / 750 * 100vw) calc(48 / 750 * 100vw);
        background: url(../img/sp/campagin_baloon.webp) no-repeat center bottom / contain;
        margin: calc(606 / 750 * 100vw) auto calc((-60 / 750) * 100vw);
    }

    .campagin__attention {
        background: #4d3d36;
        font-size: calc(22 / 750 * 100vw);
        color: #fff;
        width: fit-content;
        padding: calc(4 / 750 * 100vw) calc(123 / 750 * 100vw);
        margin: 0 auto calc(30 / 750 * 100vw);
    }

    .campagin__items {
        position: relative;
    }
    .campagin__item-photo {
        width: calc(773 / 750 * 100vw);
        display: block;
        position: relative;
        left: calc(104 / 750 * -100vw);
    }
    .campagin__price-group {
        position: static;
        width: 100%;
        margin-top: calc(10 / 750 * 100vw);
        display: flex;
        justify-content: center;
        align-items: center;
        flex-direction: column;
        position: relative;
        z-index: 2;
        margin: 0 auto;
        right: initial;
        margin: calc(-60 / 750 * 100vw) auto 0;
    }
    .campagin__price01 {
        font-size: calc(30 / 750 * 100vw);
        letter-spacing: min(calc((1.76 / 1080) * 100vw), 1.76px);
        margin: 0 auto calc(20 / 750 * -100vw);
        text-align: center;
    }
    .campagin__price-unit {
        display: flex;
        justify-items: center;
        align-items: center;
        gap: min(calc((10 / 1080) * 100vw), 10px);
    }
    .campagin__price-label {
        border-radius: calc(20 / 750 * 100vw);
        border: calc(4 / 750 * 100vw) solid #e31639;
        background: var(--coop-white, #fff);
        padding: calc(35 / 750 * 100vw) calc(16 / 750 * 100vw);
    }
    .campagin__price-label span {
        font-size: calc(26 / 750 * 100vw);
    }
    .campagin__price-value {
        font-size: calc(124 / 750 * 100vw);
    }
    .campagin__price-value span {
        font-size: calc(64 / 750 * 100vw);
    }
    .campagin__price-value-comma {
        font-size: calc(60 / 750 * 100vw);
    }
    .campagin__price-value-unit sup {
        font-size: calc(18 / 750 * 100vw);
        margin-bottom: calc(76 / 750 * 100vw);
    }
    .--v3 .campagin__cta-title {
        width: fit-content;
        margin: 0 auto calc(10 / 750 * 100vw);
        padding: 0 calc(30 / 750 * 100vw) calc(10 / 750 * 100vw);
        font-size: calc(400 / 750 * 100vw);
    }
    .--v3 .campagin__cta-title::after,
    .--v3 .campagin__cta-title::before {
        bottom: 9%;
    }
    .--v3 .campagin__cta-title span:first-child {
        font-size: calc(32 / 750 * 100vw);
    }
    .--v3 .campagin_cta .campagin__cta-title span:last-child {
        font-size: calc(36 / 750 * 100vw);
    }
    .--v3 .adlp-btn.--btn01 {
        width: calc(630 / 750 * 100vw);
    }
    .--v3 .adlp-btn.--btn01::after {
        height: calc(20 / 750 * 100vw);
        width: calc(24 / 750 * 100vw);
        right: calc(30 / 750 * 100vw);
    }
    .--v3 .campagin__note {
        padding: 0 calc(14 / 750 * 100vw);
    }
    .campagin__footer_note {
        font-size: calc(20 / 750 * 100vw);
        padding: 0 calc(60 / 750 * 100vw);
        text-align: left;
        margin-top: calc(30 / 750 * 100vw);
    }
}
