/* mypage-renewal-lp only. */
.mypage-renewal-lp {
    --orange: #f28a00;
    --orange-d: #ed6c18;
    --bar: #ed681a;
    --ink: #222;
    --muted: #747474;
    --line: #ddd;
    --cream: #f5f5f5;
    --pale: #fff4e5;
    width: 100%;
    color: var(--ink);
    background: #fff;
    font-family: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
    font-size: 15px;
    line-height: 1.75;
    overflow: hidden;
}

.mypage-renewal-lp * {
    box-sizing: border-box
}

.mypage-renewal-lp a {
    color: inherit;
    text-decoration: none
}

.mypage-renewal-lp .sp {
    display: none
}

.mypage-renewal-lp img {
    max-width: 100%;
    height: auto;
    display: block
}

/* タイトル */
.mypage-renewal-lp .page-title {
    color: #262626;
    font-size: 24px;
    font-weight: 700;
    line-height: 1.4;
    margin: 12px 15px 0;
    padding: 0 0 9px;
    border-bottom: 1px solid #b9b9b9
}

/* ヒーロー */
.mypage-renewal-lp .hero {
    padding: 24px 20px 38px;
    text-align: center
}

.mypage-renewal-lp .kv {
    background: var(--pale);
    border: 1px solid #f0dbc7;
    padding: 34px 20px 30px;
    margin-bottom: 22px
}

.mypage-renewal-lp .kv-tag {
    display: inline-block;
    color: var(--orange);
    font: 800 12px/1.4 Arial, sans-serif;
    letter-spacing: .18em;
    border-bottom: 2px solid #f2c489;
    padding-bottom: 6px
}

.mypage-renewal-lp .kv h2 {
    margin: 18px 0 10px;
    font-size: 32px;
    line-height: 1.4;
    letter-spacing: -.02em;
    font-weight: 700
}

.mypage-renewal-lp .kv h2 em {
    color: var(--orange);
    font-style: normal;
    position: relative;
    z-index: 1
}

.mypage-renewal-lp .kv h2 em::after {
    content: "";
    position: absolute;
    left: -3px;
    right: -3px;
    bottom: 4px;
    height: 11px;
    background: #ffe1b8;
    z-index: -1
}

.mypage-renewal-lp .kv-pills {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 8px;
    margin-top: 14px
}

.mypage-renewal-lp .kv-pills span {
    background: #fff;
    border: 1px solid #f0dbc7;
    border-radius: 100px;
    padding: 3px 13px;
    font-size: 11px;
    font-weight: 700;
    color: #b96500
}

.mypage-renewal-lp .hero>p {
    color: var(--muted);
    font-size: 14px;
    margin: 22px 0 22px
}

.mypage-renewal-lp .button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 16px;
    min-width: 220px;
    padding: 13px 20px;
    border-radius: 2px;
    font-size: 14px;
    font-weight: 600;
    transition: .2s
}

.mypage-renewal-lp .button.primary {
    background: var(--orange);
    color: #fff
}

.mypage-renewal-lp .button:hover {
    transform: translateY(-2px)
}

.mypage-renewal-lp .down-arrow {
    display: grid;
    place-items: center;
    width: 22px;
    height: 22px;
    border-radius: 50%;
    background: rgba(255, 255, 255, .18)
}

.mypage-renewal-lp .down-arrow::before {
    content: "";
    width: 7px;
    height: 7px;
    border: solid currentColor;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg) translate(-1px, -1px)
}

/* セクション共通 */
.mypage-renewal-lp .section {
    padding: 68px 20px
}

.mypage-renewal-lp .section.gray {
    background: var(--cream)
}

.mypage-renewal-lp .section-heading {
    margin: 0 0 38px
}

.mypage-renewal-lp .section-heading h2 {
    position: relative;
    margin: 0 0 20px;
    padding: 10px 10px 10px 18px;
    background: #fff;
    border: 1px solid #ddd;
    border-bottom-color: #bfbfbf;
    box-shadow: 0 0 5px #ccc;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.45;
    color: #333
}

.mypage-renewal-lp .section-heading h2::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 7px;
    background: var(--bar)
}

.mypage-renewal-lp .section-heading p {
    color: var(--muted);
    font-size: 14px;
    margin: 0
}

/* ポイント3つ */
.mypage-renewal-lp .benefit-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px
}

.mypage-renewal-lp .benefit-grid article {
    background: #fff;
    border: 1px solid #e5e5e5;
    padding: 28px 20px
}

.mypage-renewal-lp .benefit-index {
    display: block;
    color: #b8b8b8;
    font: 800 30px Arial, sans-serif;
    margin: 0 0 16px
}

.mypage-renewal-lp .benefit-grid h3 {
    position: relative;
    margin: 18px 0 10px;
    padding: 10px 5px 7px;
    border-bottom: 2px solid #333;
    font-size: 16px;
    font-weight: 600;
    line-height: 1.75
}

.mypage-renewal-lp .benefit-grid h3::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 42px;
    height: 2px;
    background: var(--orange)
}

.mypage-renewal-lp .benefit-grid p {
    color: var(--muted);
    font-size: 12px;
    margin: 0
}

.mypage-renewal-lp .privacy-note {
    display: flex;
    align-items: center;
    gap: 20px;
    margin: 18px 0 0;
    padding: 14px 20px;
    background: #fff;
    border: 1px solid #e2d1b9
}

.mypage-renewal-lp .privacy-note>span {
    color: var(--orange);
    font-size: 26px;
    line-height: 1
}

.mypage-renewal-lp .privacy-note b {
    font-size: 12px
}

.mypage-renewal-lp .privacy-note p {
    margin: 0;
    font-size: 12px
}

/* 比較表 */
.mypage-renewal-lp .table-wrap {
    overflow-x: auto
}

.mypage-renewal-lp table {
    width: 100%;
    border-collapse: collapse
}

.mypage-renewal-lp thead th {
    background: #f2f2f2;
    border-bottom: 4px solid #a8a8a8;
    padding: 14px 7px;
    font-size: 13px;
    font-weight: 700;
    text-align: center
}

.mypage-renewal-lp thead th.now {
    background: #fff1dd;
    border-bottom-color: var(--orange)
}

.mypage-renewal-lp tbody th {
    background: #fff1dd;
    border-left: 5px solid var(--orange);
    border-bottom: 1px solid var(--line);
    padding: 12px 7px;
    font-size: 12px;
    font-weight: 700;
    text-align: left;
    white-space: nowrap
}

.mypage-renewal-lp tbody td {
    border-bottom: 1px solid var(--line);
    padding: 12px 7px;
    font-size: 12px;
    text-align: center
}

.mypage-renewal-lp tbody td.now {
    background: #fff8ef;
    font-weight: 700
}

.mypage-renewal-lp .old-shot {
    margin-top: 22px
}

.mypage-renewal-lp .shot-label {
    display: inline-block;
    background: #4a4a4a;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 3px 10px;
    margin-bottom: 8px
}

.mypage-renewal-lp .shot-label.now {
    background: var(--orange-d)
}

.mypage-renewal-lp .shot.now {
    border: 2px solid var(--orange)
}

.mypage-renewal-lp .shot-arrow {
    margin: 10px 0 2px;
    text-align: center;
    color: var(--orange);
    font-size: 22px;
    line-height: 1
}

.mypage-renewal-lp .shot {
    border: 1px solid var(--line);
    background: #fff
}

.mypage-renewal-lp .cap {
    color: var(--muted);
    font-size: 11px;
    margin: 6px 0 0
}

/* 目次カード（route-card） */
.mypage-renewal-lp .route-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px
}

.mypage-renewal-lp .route-card {
    position: relative;
    display: block;
    padding: 24px 20px;
    border: 1px solid var(--line);
    background: #f7f7f7;
    transition: .25s
}

.mypage-renewal-lp .route-card:nth-child(2) {
    background: #fff7ee;
    border-color: #f0dbc7
}

.mypage-renewal-lp .route-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 28px rgba(0, 0, 0, .08)
}

.mypage-renewal-lp .route-label {
    color: var(--muted);
    font-size: 11px;
    font-weight: 700
}

.mypage-renewal-lp .route-card h3 {
    margin: 12px 0 10px;
    padding: 6px 2px 8px;
    border-bottom: 1px solid #cfcfcf;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.5
}

.mypage-renewal-lp .route-card>b {
    color: var(--orange);
    font-size: 13px;
    display: inline-flex;
    align-items: center;
    gap: 10px
}

.mypage-renewal-lp .route-card>b i {
    display: inline-block;
    width: 8px;
    height: 8px;
    border: solid currentColor;
    border-width: 0 2px 2px 0;
    transform: rotate(45deg) translateY(-3px)
}

/* ガイド（STEP） */
.mypage-renewal-lp .guide-section {
    padding: 70px 20px
}

.mypage-renewal-lp .guide-section.gray {
    background: var(--cream)
}

.mypage-renewal-lp .guide-title {
    margin: 0 0 42px
}

.mypage-renewal-lp .guide-title h2 {
    margin: 0 0 12px;
    padding: 11px 14px;
    background: #4a4a4a;
    color: #fff;
    font-size: 22px;
    font-weight: 600;
    line-height: 1.45
}

.mypage-renewal-lp .guide-title p {
    color: var(--muted);
    font-size: 14px;
    margin: 0
}

.mypage-renewal-lp .step {
    display: grid;
    grid-template-columns: 1fr 280px;
    gap: 36px;
    align-items: start;
    padding: 30px 14px;
    border-bottom: 1px solid var(--line)
}

.mypage-renewal-lp .step:last-of-type {
    border-bottom: 0
}

.mypage-renewal-lp .step.wide {
    grid-template-columns: 1fr
}

.mypage-renewal-lp .step-no {
    display: inline-flex;
    background: var(--orange-d);
    color: #fff;
    font: 700 11px Arial, sans-serif;
    padding: 4px 10px;
    margin: 0 0 12px;
    letter-spacing: .05em
}

.mypage-renewal-lp .step-copy h3 {
    margin: 0;
    padding: 10px 12px;
    background: #fff;
    font-size: 17px;
    font-weight: 700;
    color: #333;
    line-height: 1.5
}

.mypage-renewal-lp .guide-section:not(.gray) .step-copy h3 {
    background: #f5f5f5
}

.mypage-renewal-lp .step-copy p {
    margin: 12px 0 0;
    color: #666;
    font-size: 13px
}

.mypage-renewal-lp .step-copy ul {
    margin: 10px 0 0;
    padding: 0;
    list-style: none;
    font-size: 13px;
    color: #444
}

.mypage-renewal-lp .step-copy li {
    position: relative;
    padding-left: 16px;
    margin: 5px 0
}

.mypage-renewal-lp .step-copy li::before {
    content: "›";
    position: absolute;
    left: 2px;
    top: 0;
    color: var(--orange);
    font-weight: 900
}

.mypage-renewal-lp .step-img img {
    border: 1px solid var(--line);
    background: #fff
}

.mypage-renewal-lp .step-img .cap {
    text-align: center
}

/* ステータス凡例 */
.mypage-renewal-lp .legend {
    display: grid;
    grid-template-columns: 1fr;
    gap: 6px;
    margin: 12px 0 0
}

.mypage-renewal-lp .lg {
    display: flex;
    align-items: center;
    gap: 10px;
    background: #fff;
    border: 1px solid var(--line);
    padding: 7px 10px;
    font-size: 12px;
    line-height: 1.5
}

.mypage-renewal-lp .bd {
    flex-shrink: 0;
    min-width: 74px;
    text-align: center;
    color: #fff;
    font-size: 11px;
    font-weight: 700;
    padding: 2px 6px;
    border-radius: 3px
}

.mypage-renewal-lp .bd.w {
    background: #c4520a
}

.mypage-renewal-lp .bd.p {
    background: #c98a12
}

.mypage-renewal-lp .bd.s {
    background: #1a7f3c
}

.mypage-renewal-lp .bd.d {
    background: #7a7f87
}

/* 在庫表 */
.mypage-renewal-lp .stock {
    margin-top: 12px
}

.mypage-renewal-lp .stock tbody th {
    width: 96px
}

.mypage-renewal-lp .stock tbody td {
    text-align: left;
    background: #fff
}

.mypage-renewal-lp .in {
    color: #007600
}

.mypage-renewal-lp .out {
    color: #b12704
}

.mypage-renewal-lp .end {
    color: #767676
}

/* 注意 */
.mypage-renewal-lp .important {
    display: flex;
    align-items: flex-start;
    gap: 15px;
    margin: 20px 14px 0;
    padding: 16px 20px;
    background: #fff2f2;
    border: 1px solid #e2a5a5;
    border-left: 5px solid #c62828
}

.mypage-renewal-lp .important>span {
    flex: 0 0 auto;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: #c62828;
    color: #fff;
    font-weight: 900
}

.mypage-renewal-lp .important b {
    color: #9d1f1f;
    font-size: 14px
}

.mypage-renewal-lp .important p {
    color: #664646;
    font-size: 12px;
    margin: 3px 0 0
}

.mypage-renewal-lp .compact-manage {
    margin: 16px 14px 0;
    padding: 16px 20px;
    background: #f3f3f3;
    border-radius: 8px
}

.mypage-renewal-lp .compact-manage b {
    font-size: 15px
}

.mypage-renewal-lp .compact-manage p {
    margin: 3px 0 0;
    font-size: 14px;
    color: #555
}

/* FAQ */
.mypage-renewal-lp .faq details {
    border-bottom: 1px solid var(--line)
}

.mypage-renewal-lp .faq summary {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 8px 0 0;
    padding: 19px 8px 19px 14px;
    background: #f5f5f5;
    border-left: 4px solid var(--orange);
    cursor: pointer;
    list-style: none;
    font-size: 15px;
    font-weight: 600;
    line-height: 1.55
}

.mypage-renewal-lp .faq summary::-webkit-details-marker {
    display: none
}

.mypage-renewal-lp .faq summary i {
    color: var(--orange);
    font: 900 18px Arial, sans-serif;
    font-style: normal
}

.mypage-renewal-lp .faq summary b {
    color: var(--orange);
    margin-left: auto;
    font-size: 19px;
    transition: .2s
}

.mypage-renewal-lp .faq details[open] summary b {
    transform: rotate(45deg)
}

.mypage-renewal-lp .faq details p {
    position: relative;
    margin: 20px 4px;
    padding-left: 30px;
    font-size: 14px;
    font-weight: 500;
    line-height: 1.9;
    color: #3f4642
}

.mypage-renewal-lp .faq details p::before {
    content: "A";
    position: absolute;
    left: 0;
    top: -2px;
    color: var(--orange);
    font: 900 18px Arial, sans-serif
}

.mypage-renewal-lp .faq-more {
    display: block;
    margin: 24px 0 0;
    padding: 11px 16px;
    border: 1px solid #555;
    background: #fff;
    text-align: center;
    font-size: 12px;
    font-weight: 600
}

/* 下部CTA */
.mypage-renewal-lp .prototype-cta {
    margin: 0 20px 40px;
    padding: 26px 16px;
    background: #f1f6f8;
    border: 1px solid #d5e1e7;
    text-align: center
}

.mypage-renewal-lp .prototype-cta-title {
    margin: 0 0 12px;
    font-size: 21px;
    font-weight: 700;
    color: #333
}

.mypage-renewal-lp .prototype-cta-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 14px;
    max-width: 560px;
    margin: 0 auto
}

.mypage-renewal-lp .prototype-cta-item {
    display: flex;
    flex-direction: column;
    align-items: center
}

.mypage-renewal-lp .prototype-cta-badge {
    position: relative;
    z-index: 1;
    margin: 0 0 -11px;
    padding: 3px 14px;
    background: #fff;
    border: 1px solid #4a4a4a;
    border-radius: 999px;
    color: #4a4a4a;
    font-size: 12px;
    font-weight: 700
}

.mypage-renewal-lp .primary .prototype-cta-badge {
    border-color: var(--orange-d);
    color: #d85e0d
}

.mypage-renewal-lp .prototype-cta-button {
    display: block;
    width: 100%;
    padding: 18px 14px 10px;
    background: #4a4a4a;
    border: 1px solid #4a4a4a;
    border-radius: 3px;
    color: #fff;
    font-size: 16px;
    font-weight: 700
}

.mypage-renewal-lp .primary .prototype-cta-button {
    background: var(--orange-d);
    border-color: var(--orange-d)
}

.mypage-renewal-lp .prototype-cta-note {
    margin: 10px 0 0;
    font-size: 12px;
    color: #666
}

@media (max-width:640px) {
    .mypage-renewal-lp .pc {
        display: none
    }

    .mypage-renewal-lp .sp {
        display: inline
    }

    .mypage-renewal-lp .page-title {
        font-size: 21px
    }

    .mypage-renewal-lp .kv h2 {
        font-size: 24px
    }

    .mypage-renewal-lp .section,
    .mypage-renewal-lp .guide-section {
        padding: 52px 16px
    }

    .mypage-renewal-lp .section-heading h2,
    .mypage-renewal-lp .guide-title h2 {
        font-size: 19px
    }

    .mypage-renewal-lp .benefit-grid,
    .mypage-renewal-lp .route-grid,
    .mypage-renewal-lp .prototype-cta-grid {
        grid-template-columns: 1fr
    }

    .mypage-renewal-lp .benefit-grid article {
        padding: 20px 18px
    }

    .mypage-renewal-lp .benefit-index {
        font-size: 24px;
        margin: 0
    }

    .mypage-renewal-lp .step {
        grid-template-columns: 1fr;
        gap: 20px;
        padding: 30px 0
    }

    .mypage-renewal-lp .step-img {
        max-width: 320px;
        margin: 0 auto;
        width: 100%
    }

    .mypage-renewal-lp .privacy-note {
        align-items: flex-start;
        padding: 14px 16px
    }

    .mypage-renewal-lp .important,
    .mypage-renewal-lp .compact-manage {
        margin-left: 0;
        margin-right: 0
    }

    .mypage-renewal-lp .prototype-cta {
        margin: 0 16px 32px
    }

    .mypage-renewal-lp .prototype-cta-grid {
        gap: 20px
    }
}