@charset "UTF-8";
/* ============================================================
   楽天モバイル LP FV
   デザイン基準: PC=1440px / SP=393px
   スケーリング: 1rem = デザイン上の10px（画面幅に比例）
   ============================================================ */

:root {
    --jp-light: 'RakutenSansJP2_W-Light', 'Hiragino Sans', 'Noto Sans JP', sans-serif;
    --jp-medium: 'RakutenSansJP2_W-Medium', 'Hiragino Sans', 'Noto Sans JP', sans-serif;
    --jp-demibold: 'RakutenSansJP2_W-DemiBold', 'Hiragino Sans', 'Noto Sans JP', sans-serif;
    --jp-bold: 'RakutenSansJP2_W-Bold', 'Hiragino Sans', 'Noto Sans JP', sans-serif;
    --jp-heavy: 'RakutenSansJP2_W-Heavy', 'Hiragino Sans', 'Noto Sans JP', sans-serif;
    --jp-regular: 'RakutenSansJP2_W-Regular', 'Hiragino Sans', 'Noto Sans JP', sans-serif;
    --pink: #ff008c;
    --black: #1a1a1a;
    --yellow: #fff302;
    --gray: #676767;
    --gold: #ffe38c;
}

html {
    /* PC: 1440px基準（1920pxで拡大上限） */
    font-size: min(calc(100vw / 144), 13.334px);
}

body {
    background: #fff;
    -webkit-font-smoothing: antialiased;
}

img {
    display: block;
    max-width: none;
}

.visually-hidden {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0 0 0 0);
    border: 0;
}

.fv {
    position: relative;
    width: 100%;
}

.fv ul {
    margin: 0;
    padding: 0;
    list-style: none;
}

/* ============================================================
   PC (1440 x 930)
   ============================================================ */
.fv__pc {
    position: relative;
    width: 100%;
}

.pc-main {
    position: relative;
    width: 100%;
    height: 81rem;
    background: var(--pink);
    overflow: hidden;
}

.pc-keyline {
    position: absolute;
    left: -0.6rem;
    top: -13.5083rem;
    width: 145.2rem;
    height: 107.317rem;
}

.pc-photo {
    position: absolute;
    left: 0;
    top: 0;
    width: 144rem;
    height: 81rem;
}

.pc-logo {
    position: absolute;
    left: 2.2rem;
    top: 2.0591rem;
    width: 22.7rem;
    height: 4.8817rem;
}

.pc-shade {
    position: absolute;
    left: 0;
    top: 68.8rem;
    width: 144rem;
    height: 12.2rem;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.7), rgba(0, 0, 0, 0));
}

/* ---- 料金カード ---- */
.pc-card {
    position: absolute;
    left: 7.899rem;
    top: 45.8019rem;
    width: 58.8679rem;
    height: 15.6981rem;
    background: #fff;
    border-radius: 1.4463rem;
    box-shadow: 0 0.2893rem 1.7355rem rgba(255, 0, 140, 0.1);
    overflow: hidden;
    font-feature-settings: 'halt' 1;
}

.pc-card__plan {
    position: absolute;
    left: 3.7255rem;
    top: 1.3686rem;
    font-family: var(--jp-bold);
    font-size: 2.314rem;
    line-height: 1.8;
    color: var(--pink);
    white-space: nowrap;
}

.pc-card__tag {
    position: absolute;
    left: 26.4264rem;
    top: 1.7423rem;
    background: var(--pink);
    border-radius: 0.3616rem;
    padding: 0.2893rem 0.8678rem;
    font-family: var(--jp-heavy);
    font-size: 1.5909rem;
    line-height: 1.4;
    color: #fff;
    white-space: nowrap;
}

.pc-card__tag-note {
    position: relative;
    top: -0.4797rem;
    font-size: 1.0261rem;
}

.pc-card__price {
    position: absolute;
    left: 3.3639rem;
    top: 4.5625rem;
    font-family: var(--jp-bold);
    font-size: 7.8529rem;
    letter-spacing: -0.1238rem;
    line-height: 1.26;
    color: var(--pink);
    white-space: nowrap;
}

.pc-card__price .is-comma {
    font-size: 3.9264rem;
}

.pc-card__price .is-yen {
    font-size: 3.9264rem;
    letter-spacing: 0.0133rem;
}

.pc-card__price .is-per {
    font-family: var(--jp-medium);
    font-size: 3.272rem;
    letter-spacing: 0.0133rem;
}

.pc-card__tax-label,
.pc-card__tax-price,
.pc-card__tax-note {
    position: absolute;
    font-family: var(--jp-light);
    color: var(--gray);
    letter-spacing: 0.0133rem;
    font-feature-settings: normal;
}

.pc-card__tax-label {
    left: 34.8199rem;
    top: 8.9007rem;
    width: 2.8202rem;
    font-size: 1.9524rem;
    line-height: 1;
    text-align: center;
}

.pc-card__tax-price {
    left: 37.5rem;
    top: 8.4669rem;
    font-size: 3.9049rem;
    line-height: 1.26;
    white-space: nowrap;
}

.pc-card__tax-price .is-comma {
    font-size: 2.6176rem;
}

.pc-card__tax-price .is-yen {
    font-size: 1.9524rem;
}

.pc-card__tax-note {
    left: 49.5rem;
    top: 11.5569rem;
    font-size: 1.157rem;
    line-height: 1.26;
    white-space: nowrap;
}

/* ---- CTA ---- */
.pc-cta {
    position: absolute;
    left: 46rem;
    top: 66rem;
    width: 52rem;
    height: 7.6rem;
    background: var(--yellow);
    border-radius: 1.3038rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-feature-settings: 'halt' 1;
}

.pc-cta__label {
    font-family: var(--jp-heavy);
    font-size: 2.6rem;
    line-height: 1.4;
    color: var(--black);
}

.pc-cta__arrow {
    position: absolute;
    right: 1.9rem;
    top: 50%;
    width: 2.4rem;
    height: 2.2rem;
    transform: translateY(-50%) rotate(90deg);
}

.pc-cta__arrow img {
    position: absolute;
    left: 6.7%;
    top: 0;
    width: 86.6%;
    height: 75%;
}

.pc-cta__bubble {
    position: absolute;
    left: 50%;
    top: -2.9398rem;
    transform: translateX(-50%);
    width: 24.6rem;
    height: 5rem;
}

.pc-cta__bubble > img {
    width: 100%;
    height: 100%;
}

.pc-cta__bubble-text {
    position: absolute;
    left: 50%;
    top: 2rem;
    transform: translate(-50%, -50%);
    font-family: var(--jp-demibold);
    font-size: 1.8rem;
    line-height: 1.4;
    color: var(--black);
    white-space: nowrap;
}

.pc-cta__bubble-text .is-num {
    font-family: var(--jp-heavy);
    font-size: 2.6rem;
    color: var(--pink);
}

.pc-cta__bubble-text .is-min {
    font-family: var(--jp-heavy);
    font-size: 1.8rem;
    color: var(--pink);
}

.pc-cta__b3 {
    position: absolute;
    left: 32.7125rem;
    top: -0.8876rem;
    transform: translateY(-50%) rotate(-0.75deg) skewX(-0.75deg);
    font-family: var(--jp-medium);
    font-size: 0.9585rem;
    line-height: 1.4;
    color: var(--black);
    white-space: nowrap;
    font-feature-settings: normal;
}

/* ---- 注記 ---- */
.pc-note {
    position: absolute;
    left: 50%;
    top: 77.4rem;
    transform: translate(-50%, -50%);
    width: 104rem;
    font-family: var(--jp-regular);
    font-size: 1.2rem;
    line-height: 1.3;
    color: #fff;
    text-align: center;
    text-shadow: 0 0 1rem #000;
    font-feature-settings: 'halt' 1;
}

.pc-note span {
    white-space: nowrap;
}

/* ---- キャッチコピー ---- */
.pc-ribbon {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pc-ribbon--1 {
    left: 5.25rem;
    top: 9.1rem;
    width: 59.6503rem;
    height: 16.7726rem;
}

.pc-ribbon--2 {
    left: 11.9827rem;
    top: 19.2727rem;
    width: 60.8674rem;
    height: 16.9005rem;
}

.pc-ribbon__bar {
    display: block;
    flex: none;
    background: #fff;
    transform: rotate(-6deg) skewX(-6deg) scaleY(0.99);
}

.pc-ribbon__bar--1 {
    width: 59.9789rem;
    height: 10.5031rem;
}

.pc-ribbon__bar--2 {
    width: 61.2027rem;
    height: 10.5031rem;
}

.pc-copy {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
}

.pc-copy--1 {
    left: 10.1325rem;
    top: 9.4186rem;
    width: 52.9086rem;
    height: 15.9609rem;
}

.pc-copy--2 {
    left: 15.1546rem;
    top: 19.6569rem;
    width: 55.3949rem;
    height: 16.2222rem;
}

.pc-copy__text {
    flex: none;
    transform: rotate(-6deg) skewX(-6deg) scaleY(0.99);
    font-family: var(--jp-heavy);
    font-size: 7.4538rem;
    line-height: 1.4;
    color: var(--black);
    white-space: nowrap;
    font-feature-settings: 'halt' 1;
}

.pc-copy__text .is-pink {
    color: var(--pink);
}

.pc-copy__text .is-small {
    font-size: 5.7598rem;
}

/* ---- サブコピー ---- */
.pc-badge__laurel {
    position: absolute;
    width: 2.0887rem;
    filter: drop-shadow(0 0.4rem 3.5rem #000);
}

.pc-badge__laurel--l {
    left: 7.899rem;
    top: 38.2931rem;
    height: 5.228rem;
}

.pc-badge__laurel--r {
    left: 22.2572rem;
    top: 38.1352rem;
    height: 5.2249rem;
}

.pc-badge {
    position: absolute;
    left: 16.098rem;
    top: 40.782rem;
    transform: translate(-50%, -50%) rotate(-0.75deg) skewX(-0.75deg);
    font-family: var(--jp-bold);
    font-size: 2.2519rem;
    line-height: 1.4;
    color: var(--gold);
    text-shadow: 0 0.4rem 3.5rem #000;
    white-space: nowrap;
    font-feature-settings: 'halt' 1;
}

.pc-feature {
    position: absolute;
    left: 25.025rem;
    top: 40.572rem;
    transform: translateY(-50%) rotate(-0.75deg) skewX(-0.75deg);
    font-family: var(--jp-demibold);
    font-size: 2.1557rem;
    line-height: 1.4;
    color: #fff;
    text-shadow: 0 0.4rem 3.5rem #000;
    white-space: nowrap;
}

.pc-feature-note {
    position: absolute;
    transform: translateY(-50%) rotate(-0.75deg) skewX(-0.75deg);
    font-family: var(--jp-medium);
    font-size: 1.3389rem;
    line-height: 1.4;
    color: #fff;
    text-shadow: 0 0.4rem 3.5rem #000;
    white-space: nowrap;
}

.pc-feature-note--1 {
    left: 44.371rem;
    top: 37.0922rem;
}

.pc-feature-note--2 {
    left: 42.414rem;
    top: 41.5782rem;
}

.pc-points {
    position: absolute;
    left: 49.3985rem;
    top: 34.9863rem;
    width: 17.5648rem;
    display: flex;
    flex-direction: column;
    gap: 0.6387rem;
}

.pc-points__item {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 4.2774rem;
    background: #fff;
    border: 0.1597rem solid var(--pink);
    border-radius: 0.479rem;
    font-family: var(--jp-bold);
    font-size: 2.1557rem;
    line-height: 1.4;
    color: var(--pink);
    white-space: nowrap;
    font-feature-settings: 'halt' 1;
}

/* ---- 実績バー ---- */
.pc-bar {
    position: relative;
    width: 100%;
    height: 11.9772rem;
    box-sizing: border-box;
    background: #fff;
    padding: 2.6rem 1rem 1.8rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.8rem;
    filter: drop-shadow(0 0.4rem 1.2rem rgba(255, 0, 140, 0.1));
    font-feature-settings: 'halt' 1;
}

.pc-bar__row {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 1.0573rem;
    height: 5.3772rem;
}

.pc-bar__eyebrow {
    position: relative;
    display: block;
    flex: none;
    width: 19.3802rem;
    height: 5.3772rem;
    overflow: hidden;
}

.pc-bar__laurel {
    position: absolute;
    top: 0;
    height: 5.3785rem;
}

.pc-bar__laurel--l {
    left: -0.0019rem;
    width: 2.1377rem;
}

.pc-bar__laurel--r {
    left: 17.2445rem;
    width: 2.1376rem;
}

.pc-bar__eyebrow-text {
    position: absolute;
    left: 2.2405rem;
    top: 0.6721rem;
    font-family: var(--jp-bold);
    font-size: 2.4778rem;
    line-height: 3.9645rem;
    color: var(--pink);
    white-space: nowrap;
}

.pc-bar__stat {
    display: flex;
    align-items: baseline;
    gap: 0.1762rem;
    margin-top: -0.352rem;
    white-space: nowrap;
}

.pc-bar__stat > span {
    display: block;
    flex: none;
    line-height: 1;
}

.pc-bar__stat .is-label {
    font-family: var(--jp-regular);
    font-size: 2.6432rem;
    color: var(--black);
    width: 8.4582rem;
}

.pc-bar__stat .is-label--after {
    width: 6.3436rem;
    margin-left: -0.1rem;
    padding-left: 0.6212rem;
}

.pc-bar__stat .is-big {
    font-family: var(--jp-heavy);
    font-size: 5.2864rem;
    color: var(--pink);
}

.pc-bar__stat .is-unit {
    font-family: var(--jp-bold);
    font-size: 2.8194rem;
}

.pc-bar__stat .is-kome {
    position: relative;
    top: -0.85rem;
    font-family: var(--jp-bold);
    font-size: 1.8185rem;
}

.pc-bar__note {
    width: 100%;
    font-family: var(--jp-regular);
    font-size: 1.2rem;
    line-height: 1.32rem;
    color: var(--gray);
    text-align: center;
}

/* ============================================================
   SP (393 x 861)
   ============================================================ */
.fv__sp {
    display: none;
    position: relative;
    width: 100%;
    height: 86.1rem;
    background: var(--pink);
    overflow: hidden;
}

.sp-keyline {
    position: absolute;
    left: 19.697rem;
    top: 20.167rem;
    width: 41.6214rem;
    height: 40.3307rem;
    transform: translate(-50%, -50%) rotate(-6deg) skewX(-6deg) scaleY(0.99);
}

.sp-photo {
    position: absolute;
    left: 0;
    top: 0;
    width: 39.3rem;
    height: 77.2rem;
}

.sp-logo {
    position: absolute;
    left: 1.9rem;
    top: 0.8rem;
    width: 7.2876rem;
    height: 5.2054rem;
}

.sp-shade {
    position: absolute;
    left: 0;
    top: 35.5rem;
    width: 39.3rem;
    height: 43.1rem;
    background: linear-gradient(
        to top,
        rgba(255, 0, 140, 1) 0%,
        rgba(238, 2, 123, 0.94) 8.828%,
        rgba(220, 4, 106, 0.88) 17.655%,
        rgba(203, 5, 89, 0.82) 26.483%,
        rgba(186, 7, 72, 0.76) 35.31%,
        rgba(168, 9, 55, 0.7) 44.138%,
        rgba(151, 10, 38, 0.64) 52.966%,
        rgba(133, 12, 21, 0.58) 61.793%,
        rgba(116, 14, 4, 0.52) 70.621%,
        rgba(102, 12, 4, 0.455) 73.583%,
        rgba(87, 10, 3, 0.39) 76.545%,
        rgba(72, 9, 2, 0.325) 79.507%,
        rgba(58, 7, 2, 0.26) 82.469%,
        rgba(44, 5, 2, 0.195) 85.43%,
        rgba(29, 4, 1, 0.13) 88.392%,
        rgba(14, 2, 0, 0.065) 91.354%,
        rgba(0, 0, 0, 0) 94.316%
    );
}

/* ---- CTA ---- */
.sp-cta {
    position: absolute;
    left: 1rem;
    top: 62.1rem;
    width: 37.3rem;
    height: 6rem;
    background: var(--yellow);
    border-radius: 1rem;
    display: flex;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    font-feature-settings: 'halt' 1;
}

.sp-cta__label {
    font-family: var(--jp-heavy);
    font-size: 2rem;
    line-height: 1.4;
    color: var(--black);
}

.sp-cta__arrow {
    position: absolute;
    left: 31.6rem;
    top: 2.2rem;
    width: 1.8rem;
    height: 1.6rem;
    transform: rotate(90deg);
}

.sp-cta__arrow img {
    position: absolute;
    left: 6.7%;
    top: 0;
    width: 86.6%;
    height: 75%;
}

.sp-cta__bubble {
    position: absolute;
    left: 8.4rem;
    top: -3rem;
    width: 20.6rem;
    height: 4.4rem;
}

.sp-cta__bubble > img {
    width: 100%;
    height: 100%;
}

.sp-cta__bubble-text {
    position: absolute;
    left: calc(50% + 0.05rem);
    top: 1.86rem;
    transform: translate(-50%, -50%);
    font-family: var(--jp-demibold);
    font-size: 1.5rem;
    line-height: 1.4;
    color: var(--black);
    white-space: nowrap;
}

.sp-cta__bubble-text .is-num {
    font-family: var(--jp-heavy);
    font-size: 2.4rem;
    color: var(--pink);
}

.sp-cta__bubble-text .is-min {
    font-family: var(--jp-heavy);
    font-size: 1.5rem;
    color: var(--pink);
}

/* ---- 注記 ---- */
.sp-note {
    position: absolute;
    left: 1rem;
    top: 72.6rem;
    transform: translateY(-50%);
    width: 37.3rem;
    font-family: var(--jp-medium);
    font-size: 0.9rem;
    line-height: 1.3;
    color: #fff;
}

.sp-note span {
    white-space: nowrap;
}

/* ---- 実績バー ---- */
.sp-bar {
    position: absolute;
    left: 0;
    top: 77.2rem;
    width: 39.3rem;
    height: 8.9515rem;
    box-sizing: border-box;
    background: #fff;
    padding: 1.6rem 1rem 0.8rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.8rem;
    filter: drop-shadow(0 0.4rem 1.2rem rgba(255, 0, 140, 0.1));
    font-feature-settings: 'halt' 1;
}

.sp-bar__row {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    gap: 0.6rem;
    height: 3.0515rem;
}

.sp-bar__eyebrow {
    position: relative;
    display: block;
    flex: none;
    width: 10.9982rem;
    height: 3.0515rem;
    overflow: hidden;
}

.sp-bar__laurel {
    position: absolute;
    top: 0;
    height: 3.0523rem;
}

.sp-bar__laurel--l {
    left: -0.0011rem;
    width: 1.2132rem;
}

.sp-bar__laurel--r {
    left: 9.7862rem;
    width: 1.2131rem;
}

.sp-bar__eyebrow-text {
    position: absolute;
    left: 1.2715rem;
    top: 0.3814rem;
    font-family: var(--jp-bold);
    font-size: 1.4062rem;
    line-height: 2.2499rem;
    color: var(--pink);
    white-space: nowrap;
}

.sp-bar__stat {
    display: flex;
    align-items: baseline;
    gap: 0.1rem;
    margin-top: -0.24rem;
    white-space: nowrap;
}

.sp-bar__stat > span {
    display: block;
    flex: none;
    line-height: 1;
}

.sp-bar__stat .is-label {
    font-family: var(--jp-regular);
    font-size: 1.5rem;
    color: var(--black);
    width: 4.8rem;
}

.sp-bar__stat .is-label--after {
    width: 3.6rem;
    padding-left: 0.3525rem;
}

.sp-bar__stat .is-big {
    font-family: var(--jp-heavy);
    font-size: 3rem;
    color: var(--pink);
}

.sp-bar__stat .is-unit {
    font-family: var(--jp-bold);
    font-size: 1.6rem;
}

.sp-bar__stat .is-kome {
    position: relative;
    top: -0.4824rem;
    font-family: var(--jp-bold);
    font-size: 1.032rem;
}

.sp-bar__note {
    width: 100%;
    font-family: var(--jp-regular);
    font-size: 0.9rem;
    line-height: 1.32rem;
    color: var(--gray);
    text-align: center;
}

/* ---- 料金カード ---- */
.sp-card {
    position: absolute;
    left: 2rem;
    top: 46.1rem;
    width: 35.3rem;
    height: 12.2rem;
    background: #fff;
    border-radius: 0.8rem;
    box-shadow: 0 0.2017rem 1.2103rem rgba(255, 0, 140, 0.1);
    overflow: hidden;
    font-feature-settings: 'halt' 1;
}

.sp-card__plan {
    position: absolute;
    left: 2.0431rem;
    top: 1.4rem;
    font-family: var(--jp-bold);
    font-size: 1.6rem;
    line-height: 1.8;
    color: var(--pink);
    white-space: nowrap;
}

.sp-card__tag {
    position: absolute;
    left: 17.9655rem;
    top: 1.5rem;
    background: var(--pink);
    border-radius: 0.3685rem;
    padding: 0.2948rem 0.8844rem;
    font-family: var(--jp-heavy);
    font-size: 1.6rem;
    line-height: 1.4;
    color: #fff;
    white-space: nowrap;
}

.sp-card__tag-note {
    position: relative;
    top: -0.4824rem;
    font-size: 1.032rem;
}

.sp-card__price {
    position: absolute;
    left: 1.791rem;
    top: 4.02rem;
    font-family: var(--jp-bold);
    font-size: 5.4763rem;
    letter-spacing: -0.0863rem;
    line-height: 1.26;
    color: var(--pink);
    white-space: nowrap;
}

.sp-card__price .is-comma {
    font-size: 2.7382rem;
}

.sp-card__price .is-yen {
    font-size: 2.7382rem;
    letter-spacing: 0.0093rem;
}

.sp-card__price .is-per {
    font-family: var(--jp-medium);
    font-size: 2.2818rem;
    letter-spacing: 0.0093rem;
}

.sp-card__tax-label,
.sp-card__tax-price,
.sp-card__tax-note {
    position: absolute;
    font-family: var(--jp-light);
    color: var(--gray);
    letter-spacing: 0.0093rem;
    font-feature-settings: normal;
}

.sp-card__tax-label {
    left: 23.7432rem;
    top: 6.9275rem;
    width: 1.9667rem;
    font-size: 1.3616rem;
    line-height: 1;
    text-align: center;
}

.sp-card__tax-price {
    left: 25.6090rem;
    top: 6.6249rem;
    font-size: 2.7231rem;
    line-height: 1.26;
    white-space: nowrap;
}

.sp-card__tax-price .is-comma {
    font-size: 1.8254rem;
}

.sp-card__tax-price .is-yen {
    font-size: 1.3616rem;
}

.sp-card__tax-note {
    left: 27.7000rem;
    top: 10.1rem;
    font-size: 0.9rem;
    line-height: 1.26;
    white-space: nowrap;
}

/* ---- キャッチコピー ---- */
.sp-ribbon {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sp-ribbon--1 {
    left: -0.7rem;
    top: 24rem;
    width: 35.9137rem;
    height: 10.0983rem;
}

.sp-ribbon--2 {
    left: 3.3535rem;
    top: 30.1247rem;
    width: 36.6465rem;
    height: 10.1753rem;
}

.sp-ribbon__bar {
    display: block;
    flex: none;
    background: #fff;
    transform: rotate(-6deg) skewX(-6deg) scaleY(0.99);
}

.sp-ribbon__bar--1 {
    width: 36.1115rem;
    height: 6.3236rem;
}

.sp-ribbon__bar--2 {
    width: 36.8483rem;
    height: 6.3236rem;
}

.sp-copy {
    position: absolute;
    display: flex;
    align-items: center;
    justify-content: center;
}

.sp-copy--1 {
    left: 2.2697rem;
    top: 24.1946rem;
    width: 31.8247rem;
    height: 9.6449rem;
}

.sp-copy--2 {
    left: 5.263rem;
    top: 30.3489rem;
    width: 33.4159rem;
    height: 9.8122rem;
}

.sp-copy__text {
    flex: none;
    transform: rotate(-6deg) skewX(-6deg) scaleY(0.99);
    font-family: var(--jp-heavy);
    font-size: 4.4877rem;
    line-height: 1.4;
    color: var(--black);
    white-space: nowrap;
    font-feature-settings: 'halt' 1;
}

.sp-copy__text .is-pink {
    color: var(--pink);
}

.sp-copy__text .is-small {
    font-size: 3.4678rem;
}

/* ---- サブコピー ---- */
.sp-badge__laurel {
    position: absolute;
    width: 1.3081rem;
}

.sp-badge__laurel--l {
    left: 1.0232rem;
    top: 41.471rem;
    height: 3.274rem;
}

.sp-badge__laurel--r {
    left: 10.015rem;
    top: 41.372rem;
    height: 3.2721rem;
}

.sp-badge {
    position: absolute;
    left: 6.149rem;
    top: 42.981rem;
    transform: translate(-50%, -50%) rotate(-0.75deg) skewX(-0.75deg);
    font-family: var(--jp-bold);
    font-size: 1.4102rem;
    line-height: 1.4;
    color: var(--gold);
    white-space: nowrap;
    font-feature-settings: 'halt' 1;
}

.sp-feature {
    position: absolute;
    left: 11.743rem;
    top: 42.888rem;
    transform: translateY(-50%) rotate(-0.75deg) skewX(-0.75deg);
    font-family: var(--jp-demibold);
    font-size: 1.35rem;
    line-height: 1.4;
    color: #fff;
    white-space: nowrap;
}

.sp-feature-note {
    position: absolute;
    transform: translateY(-50%) rotate(-0.75deg) skewX(-0.75deg);
    font-family: var(--jp-medium);
    font-size: 0.8385rem;
    line-height: 1.4;
    color: #fff;
    white-space: nowrap;
}

.sp-feature-note--1 {
    left: 23.8636rem;
    top: 40.927rem;
}

.sp-feature-note--2 {
    left: 22.6378rem;
    top: 43.737rem;
}

.sp-points {
    position: absolute;
    left: 27.0122rem;
    top: 39.4rem;
    width: 11rem;
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.sp-points__item {
    display: flex;
    align-items: center;
    justify-content: center;
    height: 2.7rem;
    background: #fff;
    border: 0.1rem solid var(--pink);
    border-radius: 0.3rem;
    font-family: var(--jp-bold);
    font-size: 1.35rem;
    line-height: 1.4;
    color: var(--pink);
    white-space: nowrap;
    font-feature-settings: 'halt' 1;
}

/* ============================================================
   ブレイクポイント
   ============================================================ */
@media (max-width: 768px) {
    html {
        /* SP: 393px基準 */
        font-size: calc(100vw / 39.3);
    }

    .fv__pc {
        display: none;
    }

    .fv__sp {
        display: block;
    }
}
