        /* Refactored CSS */

        /* Base */
        body {
            margin: 0;
            padding: 0;
            font-family: "Helvetica Neue", Helvetica, Arial, "メイリオ", "Meiryo", sans-serif;
            background: #000;
            color: #fff;
        }

        /* Layout */
        .wrapper__lower {
            min-height: 100vh;
            display: flex;
            flex-direction: column;
            background: #f2f2f2;
        }

        header {
            background-color: #001428;
            padding: 20px 0;
            text-align: center;
            height: 40px;
        }

        header .inner {
            max-width: 100%;
            margin: 0 auto;
            display: flex;
            align-items: center;
            justify-content: center;
            height: 100%;
        }

        header .pc a {
            display: inline-block;
        }

        header .pc img {
            max-width: 100%;
            height: auto;
            width: 196px;
        }

        /* Content App */
        .content-app {
            flex: 1 0 auto;
            width: 100%;
            max-width: 760px;
            margin: 10px auto;
            background: #fff;
            box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.18),
                0 1.5px 4px 0 rgba(0, 0, 0, 0.12);
            border-radius: 36px;
            overflow: hidden;
        }

        .content-app__section {
            padding-bottom: 32px;
            border-radius: 20px;
        }

        /* Redym App Top */
        .block_redym .block_redym_apptop {
            background: #000;
            padding-top: 48px;
            display: flex;
            flex-direction: column;
            align-items: center;
        }

        .block_redym .block_redym_apptop_inner {
            display: flex;
            flex-direction: column;
            align-items: center;
            width: 100%;
        }

        .block_redym_apptop h1 {
            margin: 0 0 12px;
            font-size: 1.8rem;
            color: #fff;
        }

        .block_redym_apptop h1 img,
        .block_redym_apptop_inner img {
            display: block;
            max-width: 210px;
            width: 100%;
            height: auto;
            margin: 0 auto;
        }

        /* Content App Wrapper */
        .content-app__wrapper {
            background: #000;
            padding: 20px 16px 80px;
            text-align: center;
        }

        .content-app__inner h2 {
            font-size: 1.3rem;
            font-weight: 700;
            color: #fff;
            margin: 50px 0;
        }

        .content-app__inner p {
            font-size: 1.1rem;
            color: #f2f2f2;
            margin: 50px 0 0 0;
        }

        .content-app__logos {
            max-width: 150px;
            margin: 0 auto 12px;
        }

        .content-app__logos img {
            width: 100%;
            display: block;
        }

        /* Loading Indicator */
        #loading_indicator {
            text-align: center;
            margin: 32px 0;
        }

        .spinner {
            display: flex;
            justify-content: center;
            align-items: center;
            width: 100%;
            height: 40px;
        }

        .spinner .bounce1,
        .spinner .bounce2,
        .spinner .bounce3 {
            width: 12px;
            height: 12px;
            background-color: #fff;
            border-radius: 50%;
            display: inline-block;
            animation: bounce 1.4s infinite ease-in-out both;
        }

        .spinner .bounce2 {
            animation-delay: -0.32s;
        }

        .spinner .bounce3 {
            animation-delay: -0.16s;
        }


        @keyframes bounce {

            0%,
            80%,
            100% {
                transform: scale(0);
            }

            40% {
                transform: scale(1);
            }
        }

        /* Reserve space for loading indicator and deep-link button */
        #document_link {
            width: 80%;
            max-width: 500px;
            height: 70px;
            margin: 1.2em auto;
            display: block;
            justify-content: center;
            display: flex;
            align-items: center;
            margin: 60px auto;
        }

        #loading_indicator {
            height: 70px;
            /* reserve height while loading */
            display: flex;
            align-items: center;
            justify-content: center;
        }

        /* Link Button */
        .redym__link_btn {
            margin-top: 24px;
            text-align: center;
        }

        .redym__link_btn a {
            display: inline-block;
            background-color: #062352;
            width: 80%;
            max-width: 500px;
            height: 70px;
            border: none;
            color: #fff;
            font-size: 15px;
            font-weight: bold;
            border-radius: 22px;
            text-decoration: none;
            box-shadow: 0 2px 8px rgba(255, 74, 38, 0.10);
            transition: background-color 0.3s ease;
            line-height: 70px;
            text-align: center;
            vertical-align: middle;
            margin: 32px 0;
            padding: 0 42px;
        }

        .redym__link_btn a:hover {
            background-color: #ddd;
            /* ボタンの背景色をホバー時に変更 */
        }

        /* Images */
        .block_redym__img {
            display: flex;
            gap: 8px;
            justify-content: center;
            align-items: center;
            width: 100%;
            max-width: 600px;
            /* adjust if needed */
            margin: 24px auto;
            overflow: hidden;
        }

        .block_redym__img img {
            flex: 1 1 auto;
            max-width: 50%;
            height: auto;
            display: block;
        }

        /* Headings in block_redym */
        .block_redym h3 {
            text-align: center;
            font-size: 1rem;
            font-weight: 500;
            color: #333;
            margin: 36px 0 16px;
            letter-spacing: 0.01em;
        }

        .block_redym h3 span {
            display: block;
            font-size: 1.6rem;
            font-weight: bold;
            color: #222;
            margin-bottom: 4px;
        }

        .block_redym .inner {
            max-width: 430px;
            margin: 0 auto;
        }

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

        .block_redym .inner ul li {
            position: relative;
            background: #f7f7f7;
            box-shadow: 0 2px 8px rgba(0, 0, 0, 0.03);
            border-radius: 10px;
            margin-bottom: 16px;
            padding: 18px 16px;
            text-align: left;
        }

        .block_redym .inner ul li:last-child {
            margin-bottom: 0;
        }

        .block_redym .inner ul li .txt h4 {
            font-size: 1.1rem;
            font-weight: 600;
            margin: 0 0 8px;
            color: #1a1a1a;
            text-align: center;
        }

        .block_redym .inner ul li .txt p {
            text-align: center;
            font-size: 0.97rem;
            color: #444;
            margin: 0;
        }

        /* Accordion */
        .accordion {
            background-color: #273A49;
            max-width: 420px;
            margin: 36px auto 0;
            padding: 18px 16px;
            border-radius: 10px;
        }

        .accordion-button {
            position: relative;
            display: block;
            width: 100%;
            padding: 18px 12px;
            font-size: 1.1rem;
            font-weight: bold;
            text-align: center;
            background-color: #273A49;
            color: #f2f2f2;
            cursor: pointer;
            border: none;
            border-radius: 8px;
            outline: none;
            letter-spacing: 0.05em;
            transition: background-color 0.4s;
        }

        .accordion-button::before,
        .accordion-button::after {
            content: '';
            position: absolute;
            top: 50%;
            right: 16px;
            width: 16px;
            height: 2px;
            border-radius: 5px;
            background: #f2f2f2;
            transition: transform 0.5s, opacity 0.5s;
        }

        .accordion-button::before {
            transform: translateY(-50%) rotate(-90deg);
        }

        .accordion-button.active::before {
            transform: translateY(-50%) rotate(0deg);
        }

        .accordion-button.active::after {
            transform: translateY(-50%) rotate(90deg);
            opacity: 0;
        }

        .accordion-content {
            max-height: 0;
            overflow: hidden;
            padding: 0 8px;
            transition: max-height 0.4s ease-out, padding 0.4s ease-out;
            color: #f2f2f2;
        }

        .accordion-content.active {
            padding: 18px 8px;
            max-height: 1000px;
        }

        .accordion-content p {
            font-size: 1rem;
            text-align: center;
            margin: 0 0 12px;
        }

        .accordion-content img {
            display: block;
            margin: 12px auto;
            max-width: 220px;
            width: 100%;
            height: auto;
        }


        .block_redym_arrow {
            width: 50px;
            margin: 30px auto 20px;
        }

        .accordion-wapper {
            margin: 0 10px;
        }

        /* QRコード画像 */
        img.sp_qr_img {
            border-radius: 20px;
        }

        /* 非対応端末メッセージ */
        .os-download-area__ua.ua-text {
            font-size: 0.9rem;
        }

        /* アプリダウンロードセクション */
        .store-buttons-section {
            padding: 2rem 1rem;
            text-align: center;
        }

        /* セクション見出し */
        .store-buttons-section__title {
            display: block;
            font-size: 1.5rem;
            font-weight: bold;
            color: #222;
            margin-bottom: 0.25rem;
            /* 4px */
        }

        /* ボタンリスト */
        .store-buttons {
            display: flex;
            flex-wrap: wrap;
            /* 小さい画面で折り返し */
            gap: 1rem;
            justify-content: center;
            align-items: center;
            list-style: none;
            margin: 2.5rem 0;
            /* 40px */
            padding: 0;
        }

        /* 各ボタンアイテム */
        .store-buttons__item {
            flex: 1 1 120px;
            max-width: 200px;
        }

        /* リンク（ボタン）の共通スタイル */
        .store-buttons__item a {
            display: inline-block;
            transition: transform 0.3s ease, box-shadow 0.3s ease;
        }

        /* ホバー時の演出 */
        .store-buttons__item a:hover {
            transform: translateY(-4px);
            box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
            cursor: pointer;
        }

        /* 画像調整 */
        .store-buttons__item a img {
            display: block;
            width: 100%;
            max-width: 500px;
            height: auto;
        }
        /* Media Queries */
        @media screen and (max-width: 767px) {
            .content-app {
                margin: 0;
                width: 100%;
                border-radius: inherit;
                ;
            }

            .redym_app__wrapper {
                background: #000;
                padding: 13.3vw 0;
            }

            .redym__link_btn a {
                font-size: 3.73vw;
            }

            .content-app__inner h2 {
                margin: 13.3vw 0;
            }

            .block_redym_apptop {
                padding-top: 13.3vw;
            }

            .content-app__inner p {
                font-size: 3.73vw;
                margin: 3.5vw 0;
                margin: 50px 0 0 0;
            }

            .store-buttons-section {
                padding: 1.5rem 0.5rem;
            }

            .store-buttons-section__title {
                font-size: 1.3rem;
            }

            .store-buttons {
                flex-direction: column;
                gap: 1.75rem;
                margin: 2rem 0;
            }

            .store-buttons__item {
                flex: none;
                width: 100%;
                max-width: 200px;
                margin: 0 auto;
            }

            .store-buttons__item a img {
                max-width: 100%;
            }
        }

        /*------------ FOOTER ------------*/

        /* すべての ul と ol のマーカーを消す */
        ul,
        ol {
            list-style: none;
            /* マーカー（ドットや数字）を表示しない */
            margin: 0;
            /* ブラウザデフォルトの余白をリセット */
            padding: 0;
            /* 同上 */
        }

        /* 個別に指定したい場合 */
        .block_redym .inner ul {
            list-style: none;
            margin: 0;
            padding: 0;
        }

        .block_redym .inner ul li {
            /* 必要なら上下の余白だけ調整 */
            margin-bottom: 12px;
        }

        footer {
            width: 100%;
            margin-top: 10px;
            background: #000;
            padding: 70px 0 40px;
        }

        footer.mt0 {
            margin-top: 0;
        }

        footer .inner {
            max-width: 1020px;
            padding: 0 10px;
            box-sizing: border-box;
            margin: 0 auto;
        }

        footer .inner .footer_top {
            position: relative;
            width: 475px;
            margin: 0 auto;
            padding-left: 0;
        }

        footer .inner .footer_top .logo {
            text-align: center;
        }

        footer .inner .footer_top .logo span {
            display: block;
            margin: 28px auto 65px;
        }

        footer .inner .footer_top .btn p {
            text-align: center;
            font-size: 17px;
            font-weight: bold;
            color: #F2F2F2;
            line-height: 1.1;
            margin-bottom: 23px;
        }

        footer .inner .footer_top .btn ul {
            display: flex;
            justify-content: space-between;
            margin-bottom: 23px;
        }

        footer .inner .footer_top .btn ul li {
            width: 226px;
        }

        footer .inner .footer_mid {
            margin-top: 75px;
            position: relative;
        }

        footer .inner .footer_mid .list01 li {
            font-size: 16px;
            margin-bottom: 40px;
            font-weight: 500;
        }

        footer .inner .footer_mid .list01 li:last-child {
            margin-bottom: 0;
        }

        footer .inner a {
            color: #F2F2F2;
            text-decoration: none;
        }

        footer .inner a:hover {
            text-decoration: underline;
        }

        footer .inner .footer_mid .list02 {
            margin-top: 50px;
        }

        footer .inner .footer_mid .list02 li {
            margin-bottom: 15px;
            font-size: 12px;
            font-weight: 500;
        }

        footer .inner .footer_mid .list02 li:last-child {
            margin-bottom: 0;
        }

        footer .inner .footer_mid .list03 {
            margin-top: 50px;
            display: flex;
        }

        footer .inner .footer_mid .list03 li {
            margin-right: 20px;
            font-size: 11px;
            font-weight: 500;
            position: relative;
        }

        footer .inner .footer_mid .list03 li:after {
            content: "";
            width: 1px;
            height: 14px;
            position: absolute;
            right: -10px;
            top: 2px;
            background: #F2F2F2;
        }

        footer .inner .footer_mid .list03 li:last-child {
            margin-right: 0;
        }

        footer .inner .footer_mid .list03 li:last-child:after {
            display: none;
        }

        footer .inner .footer_mid .footer_bnr,
        nav .footer_bnr {
            display: block;
            width: 314px;
            border: solid 1px #6f6f6f;
            height: 168px;
            text-decoration: none;
            position: absolute;
            right: 0;
            bottom: 35px;
            box-sizing: border-box;
        }



        nav .mCSB_inside>.mCSB_container {
            padding-right: 60px;
            margin-right: 0;
        }

        nav .footer_bnr {
            right: 50px;
            bottom: 80px;
        }


        footer ul.list_logos {
            margin-top: 50px;
            display: flex;
        }

        .list_logos li {
            margin-right: 20px;
            position: relative;
            width: 80px;
            height: 100%;
        }

        .list_logos li:last-child {
            margin-right: 0px;
        }

        .list_logos img {
            width: 100%;
        }


        .social_logos {
            /* margin-top: 15px; */
            margin-top: 50px;
        }

        .social_logos.navi_menu {
            left: 80px;
            bottom: 80px;
        }

        .social_logos p {
            color: #f2f2f2;
            font-size: 15px;
        }

        .social_logos a {
            display: flex;
            align-items: center;
        }

        .social_logos ul {}

        .social_logos li {
            margin-left: 0px
        }

        .social_logos img {
            width: 50px;
            border-radius: 10%;
            margin-right: 0.5em;
        }


        @media screen and (max-width: 1000px) {
            nav .footer_bnr {
                position: relative;
                right: auto;
                bottom: auto;
                margin-top: 40px;
            }

            nav .nav_btm .btn {
                padding-bottom: 0;
            }
        }

        footer .inner .footer_mid .footer_bnr .txt01,
        nav .footer_bnr .txt01 {
            text-decoration: underline;
            display: block;
            text-align: center;
            height: 83px;
            font-size: 13px;
            color: #F2F2F2;
            font-weight: 500;
            padding-top: 18px;
            line-height: 1.692;
            box-sizing: border-box;
        }

        footer .inner .footer_mid .footer_bnr:hover .txt01,
        nav .footer_bnr:hover .txt01 {
            text-decoration: none;
        }

        footer .inner .footer_mid .footer_bnr .txt02,
        nav .footer_bnr .txt02 {
            display: block;
            text-align: center;
            background: url(../images/common/footer_image.jpg) no-repeat left top;
            background-size: cover;
            height: 83px;
            font-size: 16px;
            color: #F2F2F2;
            font-weight: 500;
            padding-top: 20px;
            line-height: 1.5;
            box-sizing: border-box;
        }

        footer .inner .footer_mid small {
            position: absolute;
            right: 0;
            bottom: 0;
            font-size: 11px;
            font-weight: 500;
            color: #F2F2F2;
        }

        @media screen and (max-width: 767px) {
            footer {
                margin-top: 0;
                background: #000;
                padding: 6vw 0;
            }

            footer .inner {
                max-width: 100%;
                margin: 0 auto;
                padding: 0;
            }

            footer .inner .footer_top {
                position: relative;
                width: 82.6vw;
                margin: 0 auto;
                padding-left: vw;
                box-sizing: border-box;
                display: block;
            }

            footer .inner .footer_top .logo {
                position: relative;
                width: 45.3vw;
                margin: 0 auto;
            }

            footer .inner .footer_top .btn p {
                text-align: center;
                font-size: 3.2vw;
                margin-top: 4vw;
            }

            footer .inner .footer_top .btn ul {
                display: flex;
                justify-content: space-between;
                width: 84vw;
                margin: 10.6vw auto 0;
            }

            footer .inner .footer_top .btn ul li {
                width: 40vw;
            }

            footer .inner .footer_top .btn ul li:nth-child(2) {
                margin-left: 0;
            }

            footer .inner .footer_mid {
                margin-top: 17.3vw;
            }

            footer .inner .footer_mid .list01,
            footer .inner .footer_mid .list02 {
                width: 82.6vw;
                margin-left: auto;
                margin-right: auto;
            }

            footer .inner .footer_mid .list01 li {
                font-size: 3.2vw;
                margin-bottom: 4vw;
            }

            footer .inner .footer_mid .list01 li:last-child {
                margin-bottom: 0;
            }


            footer .inner .footer_mid .list02 {
                margin-top: 7.3vw;
            }

            footer .inner .footer_mid .list02 li {
                margin-bottom: 2vw;
                font-size: 3.2vw;
            }

            footer .inner .footer_mid .list02 li:last-child {
                margin-bottom: 0;
            }

            footer .inner .footer_mid .list03 {
                margin-top: 9.3vw;
                display: flex;
                justify-content: center;
            }

            footer .inner .footer_mid .list03 li {
                margin-right: 5.3vw;
                font-size: 2.93vw;
                font-weight: 500;
                position: relative;
            }

            footer .inner .footer_mid .list03 li:after {
                content: "";
                width: 0.26vw;
                height: 3.46vw;
                position: absolute;
                right: -2.6vw;
                top: 0.2vw;
            }

            footer .inner .footer_mid .list03 li:last-child {
                margin-right: 0;
            }

            footer .inner .footer_mid .list03 li:last-child:after {
                display: none;
            }

            footer .inner .footer_mid .footer_bnr,
            nav .footer_bnr {
                display: block;
                width: 82.6vw;
                border: solid 0.26vw #6f6f6f;
                height: auto;
                text-decoration: none;
                position: relative;
                right: auto;
                bottom: auto;
                margin: 10vw auto 0;
                box-sizing: border-box;
            }

            nav .footer_bnr {
                width: 82.6vw;
                margin: 8vw 0 0;
            }

            footer .inner .footer_mid .footer_bnr .txt01,
            nav .footer_bnr .txt01 {
                height: 20.6vw;
                font-size: 3.46vw;
                font-weight: 500;
                padding-top: 4.6vw;
                line-height: 1.692;
            }

            footer .inner .footer_mid .footer_bnr:hover .txt01 {
                text-decoration: none;
            }

            footer .inner .footer_mid .footer_bnr .txt02,
            nav .footer_bnr .txt02 {
                height: 21.3vw;
                font-size: 4.26vw;
                padding-top: 4.6vw;
            }

            footer .inner .footer_mid small {
                position: relative;
                right: 0;
                bottom: 0;
                font-size: 2.93vw;
                font-weight: 500;
                text-align: center;
                color: #F2F2F2;
                display: block;
                margin-top: 6.6vw;
            }

            footer ul.list_logos {
                margin-top: 50px;
                justify-content: center;
            }

            .list_logos li {
                width: 5.5vh;
                margin-right: 20px;
            }

            .list_logos li {
                width: 5.5vh;
                margin-right: 20px;
            }

            .social_logos {
                margin-top: 7.3vw;
                width: 82.6vw;
                margin-left: auto;
                margin-right: auto;
            }

            .social_logos p {
                font-size: 3.82vw;
            }

            .social_logos.navi_menu {
                margin-top: 9.33vw;
            }


            .social_logos img {
                width: 14.5vw;
                margin-right: 1.4vw;
            }
        }

        .sp {
            display: none;
        }

        .pc {
            display: block;
        }

        @media screen and (max-width: 767px) {
            .sp {
                display: block;
            }

            .pc {
                display: none;
            }
        }

        /* Deep Link ボタン（JS生成時） */
        .redym__deeplink_btn {
            display: inline-block;
            background-color: #062352;
            width: 80%;
            max-width: 500px;
            height: 70px;
            border: none;
            font-size: 15px;
            color: #fff;
            font-weight: bold;
            border-radius: 22px;
            text-decoration: none;
            box-shadow: 0 2px 8px rgba(255, 74, 38, 0.10);
            margin-top: 1.2em;
            line-height: 70px;
            text-align: center;
            vertical-align: middle;
            transition: background-color 0.3s ease;
            margin: 32px 0;
        }

        .redym__deeplink_btn:hover {
            background-color: #0a3a80;
        }