:root {
        --reserve-navy: #082a5e;
        --reserve-blue: #1da1f2;
        --reserve-soft: #f5fbff;
        --reserve-white: #ffffff;
        --reserve-text: #0f172a;
        --reserve-sub: #5b6475;
        --reserve-line: rgba(8, 42, 94, 0.10);
        --reserve-shadow: 0 20px 60px rgba(8, 42, 94, 0.10);
        --reserve-radius: 24px;
    }

    .reservePage {
        background: linear-gradient(180deg, #ffffff 0%, #f6fcff 40%, #eef8fd 100%);
        color: var(--reserve-text);
    }

    .reserveContainer {
        width: min(1200px, calc(100% - 40px));
        margin: 0 auto;
    }

    .reserveHero {
        padding: 110px 0 90px;
    }

    .reserveHero__inner {
        display: grid;
        grid-template-columns: 1.05fr 0.95fr;
        gap: 34px;
        align-items: center;
    }

    .reserveEyebrow {
        margin: 0 0 12px;
        color: var(--reserve-blue);
        font-weight: 800;
        letter-spacing: .08em;
        font-size: 13px;
    }

    .reserveEyebrow--center {
        text-align: center;
    }

    .reserveEyebrow--light {
        color: rgba(255, 255, 255, .8);
    }

    .reserveHero__title {
        margin: 0;
        font-size: clamp(34px, 5vw, 62px);
        line-height: 1.15;
        font-weight: 800;
        color: var(--reserve-navy);
        letter-spacing: -.02em;
    }

    .reserveHero__lead {
        margin: 22px 0 0;
        font-size: 17px;
        line-height: 1.9;
        color: var(--reserve-sub);
    }

    .reserveHero__actions,
    .reserveCta__actions {
        display: flex;
        gap: 14px;
        flex-wrap: wrap;
        margin-top: 30px;
        justify-content: center;
    }

    .reserveBtn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        min-width: 190px;
        min-height: 56px;
        padding: 14px 26px;
        border-radius: 999px;
        text-decoration: none;
        font-weight: 700;
        font-size: 15px;
        transition: .25s ease;
    }

    .reserveBtn--primary {
        background: var(--reserve-navy);
        color: #fff;
        box-shadow: 0 12px 30px rgba(8, 42, 94, .18);
    }

    .reserveBtn--ghost {
        background: #fff;
        color: var(--reserve-navy);
        border: 1px solid var(--reserve-line);
        box-shadow: var(--reserve-shadow);
    }

    .reserveBtn--white {
        background: #fff;
        color: var(--reserve-navy);
        box-shadow: 0 12px 30px rgba(255, 255, 255, .18);
    }

    .reserveBtn:hover {
        transform: translateY(-2px);
    }

    .reserveHero__visual img {
        width: 100%;
        border-radius: 28px;
        box-shadow: 0 24px 70px rgba(8, 42, 94, .14);
    }

    .reserveIntro,
    .reserveManage,
    .reserveBenefits,
    .reserveFlow,
    .reservePrice,
    .reserveCta {
        padding: 30px 0 90px;
    }

    .reserveSectionHead {
        margin-bottom: 28px;
    }

    .reserveSectionTitle {
        margin: 0;
        font-size: clamp(28px, 4vw, 42px);
        line-height: 1.25;
        color: var(--reserve-navy);
    }

    .reserveSectionTitle--center {
        text-align: center;
    }

    .reserveSectionText {
        margin: 14px 0 0;
        max-width: 780px;
        color: var(--reserve-sub);
        font-size: 16px;
        line-height: 1.9;
    }

    .reserveCardGrid {
        display: grid;
        gap: 20px;
    }

    .reserveCardGrid--3 {
        grid-template-columns: repeat(3, 1fr);
    }

    .reserveCardGrid--4 {
        grid-template-columns: repeat(4, 1fr);
    }

    .reserveFeatureCard {
        background: rgba(255, 255, 255, .86);
        border: 1px solid var(--reserve-line);
        border-radius: 24px;
        padding: 28px;
        box-shadow: var(--reserve-shadow);
        backdrop-filter: blur(10px);
    }

    .reserveFeatureCard--small {
        padding: 22px;
    }

    .reserveFeatureCard__icon {
        font-size: 28px;
        margin-bottom: 14px;
    }

    .reserveFeatureCard h3 {
        margin: 0 0 12px;
        color: var(--reserve-navy);
        font-size: 22px;
    }

    .reserveFeatureCard p {
        margin: 0;
        color: var(--reserve-sub);
        line-height: 1.8;
    }

    .reserveSplit {
        display: grid;
        grid-template-columns: 1.2fr .8fr;
        gap: 24px;
        align-items: start;
    }

    .reserveSplit__main,
    .reserveInfoCard,
    .reserveFlowList li,
    .reservePriceCard {
        background: rgba(255, 255, 255, .88);
        border: 1px solid var(--reserve-line);
        border-radius: 24px;
        box-shadow: var(--reserve-shadow);
        backdrop-filter: blur(10px);
    }

    .reserveSplit__main {
        padding: 30px;
    }

    .reserveInfoCard {
        padding: 24px;
    }

    .reserveInfoCard__label {
        display: inline-block;
        margin-bottom: 14px;
        padding: 8px 14px;
        border-radius: 999px;
        background: rgba(29, 161, 242, .10);
        color: var(--reserve-blue);
        font-weight: 700;
        font-size: 13px;
    }

    .reserveCheckList,
    .reserveMiniList,
    .reservePriceList {
        margin: 0;
        padding: 0;
        list-style: none;
    }

    .reserveCheckList {
        display: grid;
        gap: 12px;
    }

    .reserveCheckList li,
    .reserveMiniList li,
    .reservePriceList li {
        position: relative;
        padding-left: 28px;
        color: var(--reserve-sub);
        line-height: 1.8;
    }

    .reserveCheckList li::before,
    .reserveMiniList li::before,
    .reservePriceList li::before {
        content: "✓";
        position: absolute;
        left: 0;
        top: 0;
        color: var(--reserve-blue);
        font-weight: 800;
    }

    .reserveMiniList {
        display: grid;
        gap: 10px;
    }

    .reserveFlowList {
        margin: 0;
        padding: 0;
        list-style: none;
        display: grid;
        gap: 18px;
    }

    .reserveFlowList li {
        display: grid;
        grid-template-columns: 88px 1fr;
        gap: 20px;
        padding: 24px;
    }

    .reserveFlowList__num {
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 64px;
        border-radius: 18px;
        background: linear-gradient(135deg, #082a5e, #1da1f2);
        color: #fff;
        font-weight: 800;
        font-size: 20px;
    }

    .reserveFlowList h3 {
        margin: 0 0 8px;
        color: var(--reserve-navy);
        font-size: 22px;
    }

    .reserveFlowList p {
        margin: 0;
        color: var(--reserve-sub);
        line-height: 1.8;
    }

    .reservePriceCard {
        width: min(620px, 100%);
        margin: 0 auto;
        padding: 36px 28px;
        text-align: center;
    }

    .reservePriceMain {
        margin: 18px 0 20px;
        display: flex;
        align-items: baseline;
        justify-content: center;
        flex-wrap: wrap;
        gap: 8px;
    }

    .reservePriceMain__yen {
        font-size: clamp(18px, 3vw, 28px);
        font-weight: 700;
    }

    .reservePriceMain__amount {
        font-size: clamp(42px, 9vw, 72px);
        line-height: 1;
        font-weight: 800;
        background: linear-gradient(90deg, #4158D0, #32cfe8 40%, #FFCC70);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
    }

    .reservePriceMain__tax {
        font-size: 16px;
        color: var(--reserve-sub);
    }

    .reservePriceList {
        display: grid;
        gap: 12px;
        text-align: left;
        width: min(360px, 100%);
        margin: 0 auto;
    }

    .reservePriceNote {
        margin: 20px 0 0;
        color: var(--reserve-sub);
        line-height: 1.8;
    }

    .reserveCtaBox {
        background: linear-gradient(135deg, #082a5e 0%, #11408d 100%);
        border-radius: 32px;
        padding: 52px 32px;
        text-align: center;
        color: #fff;
        box-shadow: 0 24px 70px rgba(8, 42, 94, .25);
    }

    .reserveCtaBox h2 {
        margin: 0;
        font-size: clamp(28px, 4vw, 42px);
        line-height: 1.3;
    }

    .reserveCtaBox p {
        width: min(760px, 100%);
        margin: 16px auto 0;
        line-height: 1.9;
        color: rgba(255, 255, 255, .88);
    }

    @media (max-width: 1024px) {

        .reserveHero__inner,
        .reserveSplit,
        .reserveCardGrid--3,
        .reserveCardGrid--4 {
            grid-template-columns: 1fr;
        }
    }

    @media (max-width: 767px) {
        .reserveHero {
            padding: 80px 0 56px;
        }

        .reserveContainer {
            width: min(100% - 24px, 1200px);
        }

        .reserveHero__lead,
        .reserveSectionText,
        .reserveCtaBox p,
        .reserveFlowList p,
        .reserveFeatureCard p {
            font-size: 15px;
            line-height: 1.8;
        }

        .reserveBtn {
            width: 100%;
        }

        .reserveSplit__main,
        .reserveInfoCard,
        .reservePriceCard {
            padding: 22px 18px;
        }

        .reserveFlowList li {
            grid-template-columns: 1fr;
            padding: 18px;
        }

        .reserveFlowList__num {
            min-height: 54px;
        }

        .reserveCtaBox {
            border-radius: 24px;
            padding: 36px 18px;
        }
    }