/* 既存CSS(index.css/recruit.css)のグローバル footer{} 装飾を打ち消す。
           （footer{margin-top:50px;padding-bottom:150px;background:#000;} / footer p{padding:60px 0} 等） */
        footer.gx-footer-wrap {
            margin: 0;
            padding: 0;
            background: transparent;
            width: auto;
            text-align: left;
            color: #e6e6e6;
        }
        footer.gx-footer-wrap p {
            padding: 0;
        }
        footer .gx-footer {
            position: relative;
            background: #0d0d0d;
            color: #e6e6e6;
            padding: 72px 6% 28px;
            font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Yu Gothic', Meiryo, sans-serif;
        }
        footer .gx-footer__inner {
            max-width: 1200px;
            margin: 0 auto;
            display: flex;
            flex-wrap: wrap;
            gap: 48px;
            justify-content: space-between;
            align-items: flex-start;
        }
        footer .gx-footer__brand {
            max-width: 340px;
        }
        footer .gx-footer__brand img {
            width: 150px;
            height: auto;
            filter: brightness(0) invert(1);
        }
        footer .gx-footer__tagline {
            margin: 18px 0 0;
            font-size: 0.82rem;
            line-height: 1.9;
            color: #9a9a9a;
        }
        footer .gx-footer__cols {
            display: flex;
            flex-wrap: wrap;
            gap: 64px;
        }
        footer .gx-footer__col h4 {
            margin: 0 0 18px;
            font-size: 0.72rem;
            letter-spacing: 0.16em;
            font-weight: 700;
            color: #4f8ff7;
        }
        footer .gx-footer__col ul {
            list-style: none;
            margin: 0;
            padding: 0;
        }
        footer .gx-footer__col li {
            margin-bottom: 14px;
        }
        footer .gx-footer__col a {
            color: #e6e6e6;
            text-decoration: none;
            font-size: 0.9rem;
            transition: color 0.2s ease, opacity 0.2s ease;
        }
        footer .gx-footer__col a:hover {
            color: #ffffff;
            opacity: 0.85;
        }
        footer .gx-footer__bottom {
            max-width: 1200px;
            margin: 32px auto 0;
            padding-top: 20px;
            border-top: 1px solid rgba(255, 255, 255, 0.12);
            display: flex;
            align-items: center;
            justify-content: space-between;
            gap: 16px;
            flex-wrap: wrap;
        }
        footer .gx-footer__copy {
            font-size: 0.72rem;
            color: #8a8a8a;
            letter-spacing: 0.02em;
        }
        footer .gx-footer__contact {
            position: relative;
            display: inline-flex;
            align-items: center;
            background: none;
            color: #ffffff;
            font-size: 0.9rem;
            font-weight: 700;
            letter-spacing: 0.02em;
            text-decoration: none;
            padding-bottom: 5px;
            transition: opacity 0.2s ease;
        }
        footer .gx-footer__contact::after {
            content: "";
            position: absolute;
            left: 0;
            bottom: 0;
            width: 100%;
            height: 2px;
            background: #4f8ff7;
            transform: scaleX(0);
            transform-origin: left center;
            transition: transform 1.1s cubic-bezier(0.22, 1, 0.36, 1);
        }
        /* スクロールで画面に入ったら左→右に線が引かれる */
        footer .gx-footer__contact.is-inview::after {
            transform: scaleX(1);
        }
        footer .gx-footer__contact:hover {
            opacity: 0.85;
        }
        footer .gx-footer__contact:hover::after {
            background: #6fa6ff;
        }
        footer .gx-footer__totop {
            position: absolute;
            right: 6%;
            bottom: 28px;
            width: 48px;
            height: 48px;
            border-radius: 50%;
            border: 1px solid rgba(255, 255, 255, 0.4);
            background: transparent;
            color: #fff;
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            transition: background 0.2s ease, transform 0.2s ease;
        }
        footer .gx-footer__totop:hover {
            background: rgba(255, 255, 255, 0.1);
            transform: translateY(-2px);
        }
        footer .gx-footer__totop svg {
            width: 20px;
            height: 20px;
        }
        @media (max-width: 900px) {
            footer .gx-footer__inner {
                flex-direction: column;
                gap: 40px;
            }
            footer .gx-footer__cols {
                gap: 40px;
            }
        }
        @media (max-width: 560px) {
            footer .gx-footer {
                padding: 40px 7% 80px;
            }
            footer .gx-footer__cols {
                gap: 28px;
            }
            footer .gx-footer__col {
                min-width: 42%;
            }
            footer .gx-footer__bottom {
                flex-direction: column;
                align-items: flex-start;
                gap: 12px;
            }
            footer .gx-footer__totop {
                bottom: 24px;
                right: 7%;
            }
        }
        /* 「トップへ戻る」ボタンは非表示 */
        footer .gx-footer__totop {
            display: none;
        }
