        :root {
            --bs-olive-green: #6B8E23;
            --bs-dark-olive-green: #556B2F;
            --bs-bg-light: #f8f9fa;
            --bs-tokita-green: #006837;
        }

        body {
            font-family: 'Inter', 'Noto Sans JP', sans-serif;
            color: #333;
            background-color: var(--bs-bg-light);
            padding-top: 0;
        }

        /* 画面幅全体でヘッダーエリアを白にして左右のグレー隙間を解消 */
        .header-wrapper {
            background-color: #fff;
            position: sticky;
            top: 0;
            z-index: 1020;
            box-shadow: 0 2px 4px rgba(0, 0, 0, 0.05);
        }

        /* 内部の headernav5 の sticky-top 重複とマージンをリセット */
        .header-wrapper .sticky-top {
            position: static !important;
            margin-bottom: 0 !important;
        }

        @media (max-width: 991px) {
            body {
                padding-top: 0x;
            }
        }

        .section-header-bg {
            position: relative;
            text-align: center;
            padding-top: 1.5rem;
            margin-bottom: 3.5rem;
            overflow: visible;
        }

        .section-header-bg .bg-en {
            position: absolute;
            top: 40%;
            left: 50%;
            transform: translate(-50%, -50%);
            font-family: 'Inter', sans-serif;
            font-size: 5.5rem;
            font-weight: 900;
            color: rgba(0, 104, 55, 0.04);
            z-index: 0;
            line-height: 1;
            white-space: nowrap;
            letter-spacing: -2px;
            user-select: none;
        }

        .section-header-bg .fg-jp {
            position: relative;
            z-index: 2;
            font-family: 'Noto Sans JP', sans-serif;
            font-size: 2rem;
            font-weight: 700;
            color: #333;
            margin-bottom: 0.5rem;
        }

        .section-header-bg p {
            position: relative;
            z-index: 2;
            color: #777;
            font-size: 0.9rem;
            margin: 0;
        }

        .text-white .section-header-bg .bg-en {
            color: rgba(255, 255, 255, 0.08);
        }

        .text-white .section-header-bg .fg-jp {
            color: #fff;
        }

        .text-white .section-header-bg p {
            color: rgba(255, 255, 255, 0.8);
        }

        .hero-carousel-item {
            height: 60vh;
            min-height: 500px;
            position: relative;
        }

        .hero-carousel-item img {
            object-fit: cover;
            height: 100%;
            width: 100%;
            filter: brightness(0.75);
        }

        .hero-caption {
            position: absolute;
            top: 50%;
            left: 50%;
            transform: translate(-50%, -50%);
            text-align: center;
            color: white;
            width: 90%;
            max-width: 900px;
        }

        .hero-title {
            font-family: 'Noto Serif JP', serif;
            font-size: 3.5rem;
            font-weight: 700;
            text-shadow: 0 4px 15px rgba(0, 0, 0, 0.5);
            margin-bottom: 1rem;
        }

        .hero-lead {
            font-size: 1.1rem;
            background: transparent;
            color: #fff;
            padding: 0;
            border-radius: 0;
            display: block;
            font-weight: 600;
            letter-spacing: 0.2em;
            text-shadow: 0 2px 4px rgba(0, 0, 0, 0.7);
            margin-top: 1rem;
        }

        .news-card {
            transition: transform 0.3s ease, box-shadow 0.3s ease;
            border: none;
            border-radius: 12px;
            overflow: hidden;
            height: 100%;
            background: #fff;
            text-decoration: none;
            color: inherit;
        }

        .news-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1);
            color: var(--bs-tokita-green);
        }

        .news-thumb {
            height: 160px;
            overflow: hidden;
        }

        .news-thumb img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            transition: transform 0.5s;
        }

        .news-card:hover .news-thumb img {
            transform: scale(1.05);
        }

        .banner-card {
            border-radius: 12px;
            overflow: hidden;
            box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
            transition: 0.3s;
            display: block;
        }

        .banner-card:hover {
            transform: translateY(-5px);
            box-shadow: 0 10px 15px rgba(0, 0, 0, 0.1);
        }

        .variety-circle {
            width: 140px;
            height: 140px;
            border-radius: 50%;
            overflow: hidden;
            margin: 0 auto 1rem;
            box-shadow: 0 4px 10px rgba(0, 0, 0, 0.1);
            border: 4px solid #fff;
            transition: transform 0.3s;
        }

        .variety-circle img {
            width: 100%;
            height: 100%;
            object-fit: cover;
        }

        .variety-item:hover .variety-circle {
            transform: scale(1.05);
            border-color: var(--bs-olive-green);
        }

        .nav-pills .nav-link {
            color: #555;
            font-weight: 600;
            padding: 12px 20px;
        }

        .nav-pills .nav-link.active {
            background-color: var(--bs-tokita-green);
            color: white;
        }

        .legacy-footer-fix {
            font-size: 0.9rem;
            line-height: 1.6;
        }

        .legacy-footer-fix ul {
            list-style: none !important;
            padding-left: 0 !important;
            margin-bottom: 0.5rem;
        }

        .legacy-footer-fix li {
            list-style: none !important;
        }

        .legacy-footer-fix a {
            text-decoration: none;
            color: #555;
            transition: color 0.3s;
        }

        .legacy-footer-fix a:hover {
            color: var(--bs-tokita-green);
            text-decoration: underline;
        }

        .legacy-footer-fix h3,
        .legacy-footer-fix h4,
        .legacy-footer-fix h5 {
            font-size: 1.1rem;
            font-weight: 700;
            margin-bottom: 1rem;
            color: #333;
        }

        @media (max-width: 768px) {
            .hero-title {
                font-size: 2rem;
            }

            .hero-lead {
                font-size: 0.9rem;
            }

            .section-header-bg .bg-en {
                font-size: 3.5rem;
            }
        }

        /* ==========================================
   1. メインメニュー（親リンク）の設定
   ========================================== */
        .navbar .nav-item .nav-link {
            position: relative;
            margin-right: 0.5rem;
            padding: 0.5rem 1rem;
            text-decoration: none;
            font-size: 0.875rem;
            /* 親メニューのフォントサイズ（小さめ） */
            color: #333;
        }

        /* 親メニューの下線（初期状態：中央から幅0） */
        .navbar .nav-item .nav-link::before {
            position: absolute;
            right: 0;
            bottom: 0;
            left: 0;
            width: 0;
            margin: 0 auto;
            content: "";
            border-bottom: 2px solid #333;
            transition: width 0.2s ease-in-out;
        }

        /* 親メニューのホバー時・アクティブ時 */
        .navbar .nav-item .nav-link:hover::before,
        .navbar .nav-item .nav-link:focus::before,
        .navbar .nav-item.active .nav-link::before {
            width: 100%;
        }


        /* ==========================================
   2. ドロップダウン（子メニュー項目）の設定
   ========================================== */
        .dropdown-menu .dropdown-item {
            position: relative;
            padding: 0.5rem 1.25rem;
            font-size: 0.8125rem;
            /* 子メニューは親よりさらに一段小さめに設定（約13px） */
            color: #495057;
            text-decoration: none;
        }

        /* 子メニューの下線（初期状態） */
        .dropdown-menu .dropdown-item::before {
            position: absolute;
            right: 0;
            bottom: 0;
            left: 0;
            width: 0;
            margin: 0 auto;
            content: "";
            border-bottom: 2px solid #333;
            /* 線の太さと色 */
            transition: width 0.2s ease-in-out;
        }

        /* 子メニューのホバー時・フォーカス時 */
        .dropdown-menu .dropdown-item:hover::before,
        .dropdown-menu .dropdown-item:focus::before {
            /* 左右の余白（padding）の内側に綺麗に収める場合は calc(100% - 2.5rem) に変更可能 */
            width: 100%;
        }

        /* Bootstrap標準の背景色変化を抑えて線を目立たせたい場合 */
        .dropdown-menu .dropdown-item:hover,
        .dropdown-menu .dropdown-item:focus {
            background-color: transparent;
            /* 背景変化を消す場合（お好みで有効化） */
            color: #000;
        }

        /* ==========================================
   モバイル・縦メニュー展開時（1400px未満）
   ========================================== */
        @media (max-width: 1399.98px) {
            .navbar-collapse {
                padding: 1rem 0;
            }

            .navbar .nav-item .nav-link {
                padding: 0.6rem 0.5rem;
                border-bottom: 1px solid #f0f0f0;
            }
        }