/* =========================================================
      Reset / Base
    ========================================================= */
    *,
    *::before,
    *::after {
        box-sizing: border-box;
    }

    .mb-9 {
        margin-bottom: 0.5rem !important;
    }

    .page--campaign {
        width: 100vw;
        margin: 0 calc(50% - 50vw) 20px;
        color: #2f2b28;
        font-size: 13px;
        line-height: 1.7;
        text-align: center;
        overflow: hidden;
    }

    .page--campaign * {
        margin: 0;
        padding: 0;
    }

    .page--campaign ul {
        list-style: none;
    }

    .page--campaign a {
        color: inherit;
        text-decoration: none;
    }

    .page--campaign img {
        display: block;
        width: 100%;
        height: auto;
    }

    /* FV */
    .fv_image {
        width: 100%;
        max-width: 1040px;
        margin: 0 auto 22px;
    }

    .fv_image img {
        display: block;
        width: 100%;
        height: auto;
    }

    .fv_image .sp {
        display: block;
    }

    .fv_image .pc {
        display: none;
    }

    .page__inner {
        width: 100%;
        max-width: 1000px;
        margin: 0 auto;
        padding: 0 6px 14px;
    }

    /* Header */
    .page__header {
        margin-bottom: 14px;
    }

    .page__label {
        margin-bottom: 4px;
        color: #e60023;
        font-size: 11px;
        font-weight: 700;
        letter-spacing: .2em;
    }

    .page__title {
        line-height: 1.25;
        letter-spacing: .08em;
    }

    .page__title h1 {
        color: #050a1f;
        font-size: 24px;
        font-weight: 700;
    }

    .page__title h2 {
        margin-top: 5px;
        color: #050a1f;
        font-size: 19px;
        font-weight: 700;
    }

    .page__leadtxt {
        color: #575757;
        font-size: 12px;
        font-weight: 400;
        margin-top: 5px;
    }

    /* Schedule */
    .campaign-schedule {
        max-width: 720px;
        margin: 0 auto 20px;
    }

    .campaign-schedule__label {
        margin-bottom: 6px;
        color: #1b7ed8;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: .18em;
    }

    .campaign-schedule__card {
        display: flex;
        max-width: 450px;
        align-items: center;
        justify-content: center;
        gap: 7px;
        padding: 0px 10px;
        margin: 5px auto 5px;
        /*background: #fafafa;
    border: 1px solid #c7c5c5;
    border-radius: 10px;*/
        color: #050a1f;
        font-weight: 700;
        line-height: 1.2;
        white-space: nowrap;
    }

    .campaign-schedule__date {
        font-size: 12px;
        letter-spacing: .04em;
    }

    .campaign-schedule__time {
        /*color: #e60023;*/
        font-size: 13px;
    }

    .campaign-schedule__wave {
        /*color: #1b7ed8;*/
        font-size: 13px;
    }

    /* Category */
    .menu-heading {
        margin-bottom: 12px;
    }

    .menu-heading__label {
        margin-bottom: 3px;
        color: #e60023;
        font-size: 10px;
        font-weight: 700;
        letter-spacing: .18em;
    }

    .menu-heading__title {
        color: #050a1f;
        font-size: 15px;
        font-weight: 700;
    }

    /* =========================================================
  Category Button
  更新箇所：
  ・通常色：background / color / border-color
  ・選択中：.is-current
========================================================= */
    .page__nav {
        width: calc(100% - 4px);
        max-width: 900px;
        margin: 0 auto 24px;
    }

    .page__navList {
        display: grid;
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 9px;
    }

    .page__navItem a {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        min-height: 46px;
        padding: 0 34px 0 16px;
        border: 1px solid #ebebeb;
        border-radius: 999px;
        background: #ebebeb;
        color: #333;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: .12em;
        transition: opacity .2s ease, transform .2s ease;
    }

    .page__navItem a::after {
        content: "→";
        position: absolute;
        right: 16px;
        top: 50%;
        color: currentColor;
        transform: translateY(-50%);
    }

    .page__navItem a:hover {
        opacity: .9;
        transform: translateY(-1px);
    }

    /* 現在URLと一致したボタン */
    .page__navItem a.is-current {
        background: #333;
        border-color: #333;
        color: #fff;
    }

    /* ALL ITEMSボタンは最終行いっぱいに表示 */
    .page__navItem:last-child {
        grid-column: 1 / -1;
    }

    .page__navItem:last-child a {
        width: 100%;
    }

    /* 注意事項 */
    .notes-box {
        width: calc(100% - 4px);
        max-width: 1000px;
        margin: 5px auto 5px;
        padding: 8px 8px;
        border: 1px solid #d8d8d8;
        background: #fafafa;
        text-align: left;
    }

    .notes-box__title {
        margin-bottom: 5px;
        color: #050a1f;
        font-size: 12px;
        font-weight: 700;
        letter-spacing: .08em;
    }

    .notes-box__list {
        display: inline-block;
        text-align: left;
    }

    .notes-box__list li {
        color: #666;
        font-size: 11px;
        line-height: 1.3;
    }

    .notes-box__list li+li {
        margin-top: 4px;
    }

    /* 遷移後の表示位置調整 */
    .page__scrollTarget {
        display: block;
        height: 0;
        scroll-margin-top: 12px;
    }

    @media screen and (min-width: 768px) {
        .page--campaign {
            font-size: 14px;
        }

        .fv_image {
            margin-bottom: 28px;
        }

        .fv_image .pc {
            display: block;
        }

        .fv_image .sp {
            display: none;
        }

        .page__inner {
            padding: 0 20px 32px;
        }

        .page__header {
            margin-bottom: 18px;
        }

        .page__title {
            font-size: 24px;
        }

        .page__subTitle {
            font-size: 13px;
        }

        .campaign-schedule {
            margin-bottom: 26px;
        }

        .campaign-schedule__card {
            gap: 10px;
            padding: 0px 18px;
        }

        .campaign-schedule__date {
            font-size: 15px;
        }

        .campaign-schedule__time,
        .campaign-schedule__wave {
            font-size: 16px;
        }

        .menu-heading__title {
            font-size: 19px;
        }

        .page__navList {
            grid-template-columns: repeat(3, minmax(0, 1fr));
            gap: 13px;
        }

        .page__navItem a {
            min-height: 50px;
            font-size: 13px;
        }

        /*注意事項*/
        .notes-box {
            padding: 12px 12px;
        }

        .notes-box__title {
            font-size: 14px;
        }

        .notes-box__list li {
            font-size: 11px;
        }
    }
