        :root {
            --clr-bg: #F8F6F0;
            --clr-navy: #1B2A47;
            --clr-orange: #D96F32;
            --clr-gray: #EAEAEA;
            --clr-text: #1B2A47;
        }

        body {
            background-color: var(--clr-bg);
            color: var(--clr-text);
            font-family: "Noto Sans JP", sans-serif;
            font-size: 14px;
            line-height: 2.2;
            letter-spacing: 0.08em;
            -webkit-font-smoothing: antialiased;
            -webkit-user-select: none;
            -moz-user-select: none;
            -ms-user-select: none;
            user-select: none;
        }

        img {
            -webkit-user-drag: none;
            -khtml-user-drag: none;
            -moz-user-drag: none;
            -o-user-drag: none;
            user-drag: none;
            -webkit-touch-callout: none;
        }

        @media (min-width: 768px) {
            body {
                font-size: 16px;
            }
        }

        /* 共通アニメーション */
        .js-fade {
            opacity: 0;
            transform: translateY(30px);
            transition: opacity 1.2s cubic-bezier(0.25, 1, 0.5, 1), transform 1.2s cubic-bezier(0.25, 1, 0.5, 1);
        }

        .js-fade.is-active {
            opacity: 1;
            transform: none;
        }

        /* セクションタイトル */
        .section-title {
            text-align: center;
            margin-bottom: 4rem;
        }

        .section-title-en {
            font-family: "Cormorant Garamond", serif;
            font-size: 30px;
            color: var(--clr-orange);
            letter-spacing: 0.15em;
            text-transform: uppercase;
            font-weight: 300;
        }

        @media (min-width: 768px) {
            .section-title-en {
                font-size: 2.5rem;
            }
        }

        .section-title-ja {
            font-size: 0.9rem;
            letter-spacing: 0.2em;
            color: var(--clr-text);
            opacity: 0.8;
            display: block;
            margin-top: 0.5rem;
        }

        /* ボタン */
        .btn-elegant {
            display: inline-flex;
            align-items: center;
            justify-content: center;
            padding: 1rem 3rem;
            background-color: transparent;
            color: var(--clr-text);
            border: 1px solid var(--clr-navy);
            font-size: 0.95rem;
            letter-spacing: 0.15em;
            position: relative;
            overflow: hidden;
            transition: color 0.4s, border-color 0.4s;
            text-decoration: none;
        }

        .btn-elegant::before {
            content: '';
            position: absolute;
            top: 0;
            left: 0;
            width: 100%;
            height: 100%;
            background-color: var(--clr-orange);
            transform: scaleY(0);
            transform-origin: bottom;
            transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1);
            z-index: -1;
        }

        .btn-elegant:hover {
            color: #fff;
            border-color: var(--clr-orange);
        }

        .btn-elegant:hover::before {
            transform: scaleY(1);
            transform-origin: top;
        }

        /* ヘッダー */
        .header {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 80px;
            background-color: rgba(248, 246, 240, 0.95);
            backdrop-filter: blur(8px);
            z-index: 50;
            border-bottom: 1px solid rgba(27, 42, 71, 0.1);
            transition: transform 0.5s ease;
        }

        /* ハンバーガーメニュー */
        .hamburger {
            width: 30px;
            height: 20px;
            position: relative;
            cursor: pointer;
            z-index: 60;
            background: transparent;
            border: none;
        }

        .hamburger span {
            position: absolute;
            width: 100%;
            height: 1px;
            background-color: var(--clr-navy);
            left: 0;
            transition: all 0.3s ease;
        }

        .hamburger span:nth-child(1) {
            top: 0;
        }

        .hamburger span:nth-child(2) {
            top: 9px;
        }

        .hamburger span:nth-child(3) {
            bottom: 0;
        }

        .hamburger.is-open span:nth-child(1) {
            transform: translateY(9px) rotate(45deg);
        }

        .hamburger.is-open span:nth-child(2) {
            opacity: 0;
        }

        .hamburger.is-open span:nth-child(3) {
            transform: translateY(-9px) rotate(-45deg);
        }

        .mobile-menu {
            position: fixed;
            top: 0;
            left: 0;
            width: 100%;
            height: 100vh;
            background-color: var(--clr-bg);
            z-index: 55;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            opacity: 0;
            visibility: hidden;
            transition: all 0.4s ease;
        }

        .mobile-menu.is-open {
            opacity: 1;
            visibility: visible;
        }

        /* FV スライダー & レイアウト */
        #fv {
            position: relative;
            width: 100%;
            height: 100svh;
            min-height: 600px;
            display: flex;
            background-color: var(--clr-bg);
            overflow: hidden;
        }

        .fv-text-part {
            flex: 2;
            display: flex;
            flex-direction: column;
            justify-content: center;
            align-items: center;
            text-align: center;
            padding: 0 4%;
            position: relative;
            z-index: 10;
        }

        .fv-image-part {
            flex: 5;
            position: relative;
            height: 100%;
            overflow: hidden;
        }

        @media (max-width: 1279px) {
            #fv {
                flex-direction: column-reverse;
            }

            .fv-text-part {
                flex: 1.5;
                padding-top: 20px;
                padding-bottom: 20px;
            }

            .fv-image-part {
                flex: 5;
            }
        }

        .fv-bg-slider {
            position: absolute;
            inset: 0;
            z-index: 1;
        }

        .fv-bg-slide {
            position: absolute;
            inset: 0;
            background-position: center;
            background-size: cover;
            opacity: 0;
            animation: bgFade 18s infinite ease-in-out;
        }

        .fv-bg-slide:nth-child(1) {
            animation-delay: 0s;
        }

        .fv-bg-slide:nth-child(2) {
            animation-delay: 6s;
        }

        .fv-bg-slide:nth-child(3) {
            animation-delay: 12s;
        }

        @keyframes bgFade {
            0% {
                opacity: 0;
                transform: scale(1.05);
            }

            10% {
                opacity: 1;
                transform: scale(1.05);
            }

            33% {
                opacity: 1;
                transform: scale(1.02);
            }

            43% {
                opacity: 0;
                transform: scale(1.0);
            }

            100% {
                opacity: 0;
            }
        }

        .fv-divider {
            width: 1px;
            height: 60px;
            background-color: var(--clr-orange);
            margin: 0 auto 32px;
        }

        @media (max-width: 767px) {
            .fv-divider {
                height: 35px;
                margin: 0 auto 20px;
            }
        }

        /* ABOUT ループスライダー */
        @media (max-width: 767px) {
            .loop-slider {
                display: flex;
                width: max-content;
                gap: 0.5rem;
            }

            .loop-slider__track {
                display: flex;
                gap: 0.5rem;
                animation: loop-marquee 15s linear infinite;
            }

            @keyframes loop-marquee {
                0% {
                    transform: translateX(0);
                }

                100% {
                    transform: translateX(calc(-100% - 0.5rem));
                }
            }
        }

        /* 共通(PC/SP) ループスライダー */
        .loop-slider-all {
            display: flex;
            width: max-content;
            gap: 0.5rem;
        }

        .loop-slider-all__track {
            display: flex;
            gap: 0.5rem;
            animation: loop-marquee-all 25s linear infinite;
        }

        @keyframes loop-marquee-all {
            0% {
                transform: translateX(0);
            }
            100% {
                transform: translateX(calc(-100% - 0.5rem));
            }
        }
    