/* ==========================================
   font-face
   ========================================== */
@font-face {
    font-family: 'Noto Sans JP';
    src: url('/fonts/Noto_Sans_JP/NotoSansJP-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Noto Sans JP';
    src: url('/fonts/Noto_Sans_JP/NotoSansJP-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Noto Sans JP';
    src: url('/fonts/Noto_Sans_JP/NotoSansJP-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto Condensed';
    src: url('/fonts/Roboto/Roboto_Condensed-Regular.ttf') format('truetype');
    font-weight: 400;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto Condensed';
    src: url('/fonts/Roboto/Roboto_Condensed-Medium.ttf') format('truetype');
    font-weight: 500;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'Roboto Condensed';
    src: url('/fonts/Roboto/Roboto_Condensed-Bold.ttf') format('truetype');
    font-weight: 700;
    font-style: normal;
    font-display: swap;
}


/* ==========================================
   リセット & ベーススタイル
   ========================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

html {
    scroll-behavior: smooth;
}
        @media (max-width: 767px){
            html {
                overflow-x: hidden;
            }
        }

body {
    font-family: 'Noto Sans JP', 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
    line-height: 1.6;
    color: #333;
    overflow-x: hidden;
}

/* ==========================================
   可変フォントサイズ設定
   ========================================== */
/* 基本の見出しサイズ（可変） */
h1 {
    font-size: clamp(2rem, 5vw, 4rem);
    line-height: 1.4;
    font-weight: 700;
}

h2 {
    font-size: clamp(1.5rem, 3vw, 2.5rem);
    line-height: 1.5;
    font-weight: 700;
}

h3 {
    font-size: clamp(1.25rem, 2.5vw, 2rem);
    line-height: 1.5;
    font-weight: 700;
}

h4 {
    font-size: clamp(1.125rem, 2vw, 1.5rem);
    line-height: 1.6;
    font-weight: 700;
}

h5 {
    font-size: clamp(1rem, 1.5vw, 1.25rem);
    line-height: 1.6;
    font-weight: 600;
}

h6 {
    font-size: clamp(0.9375rem, 1.2vw, 1.125rem);
    line-height: 1.6;
    font-weight: 600;
}

/* 本文は軽く可変 */
p {
    font-size: clamp(0.9375rem, 1vw, 1rem);
    line-height: 1.8;
}

/* 小さいテキストは固定 */
small {
    font-size: 0.875rem;
}

/* ==========================================
   Roboto使用クラス
   ========================================== */
.some-class {
    font-family: 'Roboto', 'Noto Sans JP', sans-serif;
}

img {
    max-width: 100%;
    height: auto;
    display: block;
}

a {
    text-decoration: none;
    color: inherit;
    transition: color 0.3s ease;
}

a:hover {
    /*opacity: 0.7;*/
}

/* ==========================================
   下層ページ共通のヘッダースタイル
   ========================================== */
/* TOPページ以外のヘッダーは最初からスクロール後の状態にする */
body:not(.page-top) .header {
    background: #fff;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
}

body:not(.page-top) .logo-shamei-white {
    display: none;
}

body:not(.page-top) .logo-shamei-black {
    display: block;
}

body:not(.page-top) .nav-list a {
    color: #333;
    display: flex;
    align-items: center;
}

body:not(.page-top) .header .nav-list .btn-contact-nav {
    background: #005095;
    color: #fff;
    border-color: #005095;
}

body:not(.page-top) .btn-recruit-nav {
    background: #F5F5F5;
    color: #005095;
    border-color: #F5F5F5;
}

body:not(.page-top) .nav-list a:hover {
    color: #0066CC;
}

body:not(.page-top) .btn-contact-nav:hover {
    /* ホバーアニメーション無効化 */
}

body:not(.page-top) .btn-recruit-nav:hover {
    /* ホバーアニメーション無効化 */
}

/* ==========================================
   共通クラス
   ========================================== */
.container {
    max-width: 1440px;
    margin: 0 auto;
    padding: 0 20px;
}

/* PC/スマホ表示切り替え用 改行 */
.pc-only-br {
    display: inline;
}

.sp-only-br {
    display: none;
}

/* セクションタイトル */
.section-title {
    font-size: clamp(2.5rem, 5vw, 5rem);
    font-weight: 700;
    background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.section-title-white {
    font-size: clamp(2.5rem, 5vw, 3.5rem);
    font-weight: 700;
    color: #fff;
    margin-bottom: 1rem;
    line-height: 1.1;
}

.section-title-center {
    text-align: center;
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 700;
    color: #333;
    margin-bottom: 3rem;
}

.section-subtitle-white {
    color: #fff;
    font-size: clamp(0.9375rem, 1.2vw, 1.313rem);
    margin-bottom: 2rem;
}

/* ボタンスタイル */
.btn-primary {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 7rem;
    padding: .7rem 2.5rem;
    background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
    color: #fff;
    border-radius: 50px;
    font-weight: 500;
    transition: all 0.3s ease;
    min-width: 200px;
}

.btn-primary:hover {
    background: linear-gradient(90deg, #0178BD 0%, #023D8F 100%);
    transform: translateX(5px);
}

.btn-text {
    font-size: clamp(0.9rem, 1.5vw, 1rem);
    text-align: left;
}

.btn-arrow-circle {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    background: #fff;
    border-radius: 50%;
    flex-shrink: 0;
}

.btn-arrow {
    font-size: clamp(0.9rem, 1.5vw, 1rem);
    color: #019DE8;
    font-weight: bold;
    line-height: 1;
    margin-top: -3.5px;
}
.btn-arrow-circle-business .btn-arrow{
    color: #FF6444;
}

/* ==========================================
   ヘッダー & ナビゲーション
   ========================================== */
.header {
    position: fixed;
    top: 15px;
    left: 50%;
    transform: translateX(-50%);
    width: 95%;
    max-width: 1500px;
    border-radius: 10px;
    z-index: 1000;
    transition: background-color 0.3s ease;
}

.header.scrolled {
    background-color: #fff;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}

.header-container {
    max-width: 1400px;
    margin: 0 auto;
    padding: .75rem 2rem;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* ロゴ画像の切り替え */
.logo {
    position: relative;
}

.logo a {
    display: block;
}

/* ロゴラッパー：アイコン + 社名ロゴ */
.header-logo-wrapper {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    width: auto; /* 自動幅 */
}

/* アイコンロゴ（常にカラー表示） */
.logo-icon {
    height: 24px;
    width: auto;
    flex-shrink: 0; /* 縮小しない */
}

/* 社名ロゴ（白/黒切り替え） */
.logo-shamei {
    height: 16px; /* スライドメニューと統一 */
    width: auto;
    flex-shrink: 0; /* 縮小しない */
}

/* 1024px以上でロゴを少し大きく（タブレット対応） */
@media (min-width: 1024px) {
    .header-logo-wrapper {
        gap: 0.5rem;
    }
    
    .logo-icon {
        height: 26px;
    }
    
    .logo-shamei {
        height: 17px;
    }
}

/* 1200px以上でロゴを少し大きく */
@media (min-width: 1200px) {
    .header-logo-wrapper {
        gap: 0.6rem;
    }
    
    .logo-icon {
        height: 28px;
    }
    
    .logo-shamei {
        height: 18px;
    }
}

/* 1400px以上でさらに大きく */
@media (min-width: 1400px) {
    .header-logo-wrapper {
        gap: 0.7rem;
    }
    
    .logo-icon {
        height: 32px;
    }
    
    .logo-shamei {
        height: 21px;
    }
}

/* タブレット用メディアクエリを削除（clamp()で滑らかに対応） */

/* 初期表示：白い社名ロゴ */
.header .logo-shamei-white {
    display: block;
}

.header .logo-shamei-black {
    display: none;
}

/* スクロール時：黒い社名ロゴ */
.header.scrolled .logo-shamei-white {
    display: none;
}

.header.scrolled .logo-shamei-black {
    display: block;
}

/* PC ナビゲーション */
.nav-pc {
    display: none;
}

.nav-list {
    display: flex;
    list-style: none;
    gap: clamp(1rem, 1.5vw, 1.5rem); /* 1024pxで1rem, 1400px以上で1.5rem */
    align-items: center;
}

/* ナビゲーションのテキスト色 */
.nav-list a {
    color: #fff;
    font-weight: 500;
    font-size: clamp(0.7rem, 0.9vw, 0.8rem); /* 1024pxで0.7rem, 1400px以上で0.8rem */
    transition: color 0.3s ease;
    display: flex;
    align-items: center;
}

.header.scrolled .nav-list a {
    color: #333;
    display: flex;
    align-items: center;
}

.nav-list a:hover {
    /* opacity削除 - 色変化のみ */
}

.header.scrolled .nav-list a:hover {
    color: #0066CC;
}

body .btn-contact-nav {
    padding: clamp(0.4rem, 0.6vw, 0.5rem) clamp(1rem, 1.5vw, 1.5rem); /* 滑らかに変化 */
    background: transparent;
    color: #fff;
    border: 1px solid #fff;
    border-radius: 50px;
    font-size: clamp(0.7rem, 0.9vw, 0.8rem); /* フォントサイズも滑らかに */
}

body .header.scrolled .header-container .nav-pc .nav-list .btn-contact-nav {
    background: #005095;
    color: #fff;
    border-color: #005095;
}

.btn-contact-nav:hover {
    /* ホバーアニメーション無効化 */
}

body .btn-recruit-nav {
    padding: clamp(0.4rem, 0.6vw, 0.5rem) clamp(1rem, 1.5vw, 1.5rem); /* 滑らかに変化 */
    background: transparent;
    border: 1px solid #fff;
    border-radius: 50px;
    color: #fff;
    font-size: clamp(0.7rem, 0.9vw, 0.8rem); /* フォントサイズも滑らかに */
}

body .header.scrolled .header-container .nav-pc .nav-list .btn-recruit-nav {
    background: #F5F5F5;
    color: #005095;
    border-color: #F5F5F5;
}

.btn-recruit-nav:hover {
    background: rgba(255, 255, 255, 0.1);
}

body .header.scrolled .btn-recruit-nav:hover {
    /* ホバーアニメーション無効化 */
}

/* ナビゲーションのサブメニュー */
.nav-item-with-submenu {
    position: relative;
    display: flex;
    align-items: center;
}

.nav-item-with-submenu > a {
    display: flex;
    align-items: center;
    padding: 1rem 0;
    margin: -1rem 0;
}

.submenu {
    position: fixed;
    top: 62px;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: 1500px;
    background: #fff;
    box-shadow: 0 10px 40px rgba(0, 0, 0, 0.15);
    border-radius: 10px;
    padding: 2rem 0;
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.3s ease, visibility 0.3s ease;
    z-index: 999;
}

.header.scrolled .submenu {
    top: 62px;
}

.nav-item-with-submenu:hover .submenu {
    opacity: 1;
    visibility: visible;
}

.submenu-content {
    max-width: 1350px;
    margin: 0 auto;
    padding: 0 20px;
    display: grid;
    grid-template-columns: 240px repeat(3, 1fr);
    gap: 2rem;
}

.submenu-column {
    display: flex;
    flex-direction: column;
    padding-right: 2rem;
}

.submenu-column:last-child {
    border-right: none;
    padding-right: 0;
}

/* タイトル列（画像付き） */
.submenu-column-main {
    padding-right: 2.5rem;
}

/* タイトルリンク */
.submenu-title-link {
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    padding-bottom: 0;
    transition: opacity 0.3s ease;
}

.submenu-title-link:hover {
    opacity: 0.8;
}

.submenu-title {
    font-size: clamp(0.990rem, 1.3vw, 1.1rem);
    font-weight: 700;
    color: #0066CC;
    margin: 0;
}

/* タイトルリンクの右側アイコン - 旧::after版（arrow-iconに移行）
.submenu-title-link::after {
    content: '›';
    display: flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    background: #0066CC;
    color: white;
    border-radius: 50%;
    font-size: 0.8rem;
    font-weight: 700;
    flex-shrink: 0;
}
*/

.submenu-image {
    width: 100%;
    aspect-ratio: 5 / 3;
    border-radius: 8px;
    overflow: hidden;
    margin-top: 1rem;
}

.submenu-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.submenu-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.submenu-list li {
    margin-bottom: 0;
    padding: 0.8rem 0;
    border-bottom: 1px solid #E0E0E0;
}

.submenu-list li:first-child {
    border-top: 1px solid #E0E0E0;
}

.submenu-list li:last-child {
    border-bottom: 1px solid #E0E0E0;
}

.submenu-list a {
    color: #333;
    font-size: clamp(0.875rem, 1.1vw, 0.9rem);
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: color 0.3s ease;
}

/* リストアイテムの右側アイコン - 旧::after版（arrow-iconに移行）
.submenu-list a::after {
    content: '›';
    display: flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    background: #0066CC;
    color: white;
    border-radius: 50%;
    font-size: 0.8rem;
    font-weight: 700;
    flex-shrink: 0;
}
*/

/* 新しい矢印アイコン（青丸と›を分離） */
.arrow-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    background: #0066CC;
    border-radius: 50%;
    flex-shrink: 0;
    position: relative;
}

.arrow-symbol {
    color: white;
    font-size: 0.8rem;
    font-weight: 700;
    line-height: 1;
    /* ここで›の位置を微調整可能 */
    transform: translateY(-2px);
}

.submenu-list a:hover {
    color: #0066CC;
}

/* 外部サイト注記 */
.external-note {
    font-size: 0.7rem;
    color: #999;
    font-weight: 400;
    margin-left: 0.5rem;
}

/* 事業領域の特別なレイアウト */
.submenu-content-business {
    grid-template-columns: 240px 1fr;
    gap: 3rem;
}

.submenu-column-wide {
    display: flex;
    flex-direction: column;
    gap: 2.5rem;
    padding-right: 0;
}

/* カテゴリラッパー（ソリューション、プロダクト全体） */
.submenu-category-wrapper {
    display: flex;
    flex-direction: column;
}

/* カテゴリタイトル（静的・リンクなし） */
.submenu-category-title-static {
    font-size: 1rem;
    font-weight: 700;
    color: #0066CC;
    margin: 0 0 1.5rem 0;
}

/* カテゴリタイトルリンク（ソリューションTOP、プロダクトTOP等） */
.submenu-category-title-link {
    text-decoration: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: calc(33.33% - 1.34rem);
    margin-bottom: 1.5rem;
    transition: opacity 0.3s ease;
}

.submenu-category-title-link:hover {
    opacity: 0.8;
}

.submenu-category-title {
    font-size: 1rem;
    font-weight: 700;
    color: #0066CC;
    margin: 0;
}

/* 項目のグリッドレイアウト */
.submenu-items-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1.5rem 2rem;
}

/* セクション（事業カテゴリ） */
.submenu-section {
    display: flex;
    flex-direction: column;
}

.submenu-section-title {
    font-size: clamp(0.875rem, 1.1vw, 0.9rem);
    font-weight: 600;
    color: #333;
    margin: 0 0 0.5rem 0;
}

/* ネストされたリスト */
.submenu-list-nested {
    margin-left: 0;
}

.submenu-list-nested li {
    padding: 0.6rem 0;
}

.submenu-list-nested a {
    font-size: 0.85rem;
}

.submenu-list-nested a::after {
    width: 13px;
    height: 13px;
    font-size: 0.7rem;
}

/* プロダクトリスト（3カラムgrid） */
.submenu-list-products {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0 2rem;
    list-style: none;
    padding: 0;
    margin: 0;
}

.submenu-list-products li {
    margin-bottom: 0;
    padding: 0.8rem 0;
    border-bottom: 1px solid #E0E0E0;
}

.submenu-list-products li:nth-child(1),
.submenu-list-products li:nth-child(2),
.submenu-list-products li:nth-child(3) {
    border-top: 1px solid #E0E0E0;
}

.submenu-list-products a {
    color: #333;
    font-size: clamp(0.875rem, 1.1vw, 0.9rem);
    font-weight: 500;
    display: flex;
    align-items: center;
    justify-content: space-between;
    transition: color 0.3s ease;
}

/* 旧::after版（arrow-iconに移行）
.submenu-list-products a::after {
    content: '›';
    display: flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    background: #0066CC;
    color: white;
    border-radius: 50%;
    font-size: 0.8rem;
    font-weight: 700;
    flex-shrink: 0;
}
*/

.submenu-list-products a:hover {
    color: #0066CC;
}




/* ハンバーガーメニュー */
.hamburger {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 5px;
    background: transparent;
    border: none;
    cursor: pointer;
    padding: 10px;
    z-index: 1001;
    position: relative;
}

/* PC表示時は通常のハンバーガーアイコン */
.hamburger-icon {
    display: flex;
    flex-direction: column;
    gap: 5px;
}

.hamburger-icon span {
    width: 25px;
    height: 2px;
    background: #fff;
    transition: all 0.3s ease;
}

.header.scrolled .hamburger-icon span {
    background: #0066CC;
}

/* MEMUテキストはPC表示時は非表示 */
.hamburger-text {
    display: none;
}

/* アクティブ時（メニューが開いている時）のハンバーガー */
.hamburger.active .hamburger-icon span:nth-child(1) {
    transform: rotate(45deg) translate(7px, 7px);
}

.hamburger.active .hamburger-icon span:nth-child(2) {
    opacity: 0;
}

.hamburger.active .hamburger-icon span:nth-child(3) {
    transform: rotate(-45deg) translate(7px, -7px);
}

/* スマホメニューオーバーレイ */
.menu-overlay {
    position: fixed;
    top: 0;
    right: -100%;
    width: 100%;
    height: 100vh;
    background: #fff;
    z-index: 1100;
    transition: right 0.4s ease;
    overflow-y: auto;
}

.menu-overlay.active {
    right: 0;
}

.menu-content {
    padding: 2rem;
}

.menu-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 2rem;
}

/* PC表示時はメニュー内の閉じるボタンを非表示 */
.menu-close {
    display: none;
}

/* メニューが開いている時のみCLOSEボタンを表示 */
.menu-overlay.active .menu-close {
    display: flex;
}

.menu-close-icon {
    display: flex;
    flex-direction: column;
    gap: 4px;
    align-items: center;
}

.menu-close-icon span {
    position: absolute;
    width: 25px;
    height: 2px;
    background: #0066CC;
    top: 50%;
    left: 50%;
}

.menu-close-icon span:nth-child(1) {
    transform: translate(-50%, -50%) rotate(45deg);
}

.menu-close-icon span:nth-child(2) {
    transform: translate(-50%, -50%) rotate(-45deg);
}

.menu-close-text {
    display: none;
}

.menu-buttons {
    display: flex;
    gap: 1rem;
    margin: 4rem 0 2rem;
}

.btn-menu {
    flex: 1;
    padding: 1rem;
    text-align: center;
    border-radius: 50px;
    background: #F0F0F0;
    color: #333;
    font-weight: 600;
}

.btn-contact {
    background: #0066CC;
    color: #fff;
}

/* メニューナビゲーション */
.menu-nav {
    max-height: calc(100vh - 400px);
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
}

.menu-list {
    list-style: none;
}

/* 第1階層メニュー */
.menu-item {
    border-bottom: 1px solid #E0E0E0;
}

.menu-item > a {
    display: block;
    padding: 1.25rem 0;
    color: #333;
    font-weight: 600;
    font-size: 1rem;
}

/* アコーディオントグルボタン */
.menu-toggle {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1.25rem 0;
    background: none;
    border: none;
    color: #333;
    font-weight: 600;
    font-size: 1rem;
    text-align: left;
    cursor: pointer;
    font-family: inherit;
}

.menu-icon {
    font-size: clamp(1.20rem, 2.2vw, 1.5rem);
    font-weight: 400;
    color: #333;
    transition: transform 0.3s ease;
    min-width: 20px;
    text-align: center;
}

.menu-toggle.active .menu-icon {
    transform: rotate(45deg);
}

/* 第2階層（サブメニュー） */
.menu-submenu {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background: #F9F9F9;
}

.menu-submenu.active {
    max-height: 2000px;
    padding: 0.5rem 0;
}

.menu-submenu > li {
    border-bottom: 1px solid #E5E5E5;
}

.menu-submenu > li:last-child {
    border-bottom: none;
}

.menu-submenu > li > a {
    display: block;
    padding: 1rem 1rem;
    color: #333;
    font-weight: 500;
    font-size: clamp(0.875rem, 1.1vw, 0.95rem);
}

/* 外部リンク表示 */
.external-link {
    display: flex;
    align-items: center;
    gap: 0.5rem;
}


/* 第2階層のアコーディオントグル */
.menu-submenu-toggle {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 1rem;
    background: none;
    border: none;
    color: #333;
    font-weight: 500;
    font-size: clamp(0.875rem, 1.1vw, 0.95rem);
    text-align: left;
    cursor: pointer;
    font-family: inherit;
}

.menu-submenu-icon {
    font-size: clamp(0.96rem, 1.8vw, 1.2rem);
    font-weight: 400;
    color: #333;
    transition: transform 0.3s ease;
    min-width: 18px;
    text-align: center;
}

.menu-submenu-toggle.active .menu-submenu-icon {
    transform: rotate(45deg);
}

/* 第3階層（サブメニューレベル2） */
.menu-submenu-lv2 {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background: #F0F0F0;
}

.menu-submenu-lv2.active {
    max-height: 1500px;
    padding: 0.5rem 0;
    margin-top: 0.5rem;
}

.menu-submenu-lv2-item {
    border-bottom: 1px solid #E0E0E0;
}

.menu-submenu-lv2-item:last-child {
    border-bottom: none;
}

/* 第3階層の直下li要素（プロダクトなど）にもボーダー */
.menu-submenu-lv2 > li {
    border-bottom: 1px solid #E0E0E0;
}

.menu-submenu-lv2 > li:last-child {
    border-bottom: none;
}

/* 第3階層の直下リンク（プロダクトなど） */
.menu-submenu-lv2 > li > a {
    display: block;
    padding: 0.9rem 1rem;
    color: #333;
    font-weight: 400;
    font-size: clamp(0.875rem, 1.1vw, 0.9rem);
}

/* 第3階層のアコーディオントグル */
.menu-submenu-lv2-toggle {
    width: 100%;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 0.9rem 1rem;
    background: none;
    border: none;
    color: #333;
    font-weight: 500;
    font-size: clamp(0.875rem, 1.1vw, 0.9rem);
    text-align: left;
    cursor: pointer;
    font-family: inherit;
}

.menu-submenu-lv2-icon {
    font-size: clamp(0.990rem, 1.3vw, 1.1rem);
    font-weight: 400;
    color: #333;
    transition: transform 0.3s ease;
    min-width: 16px;
    text-align: center;
}

.menu-submenu-lv2-toggle.active .menu-submenu-lv2-icon {
    transform: rotate(45deg);
}

/* 第4階層（サブメニューレベル3） */
.menu-submenu-lv3 {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease;
    background: #E8E8E8;
}

.menu-submenu-lv3.active {
    max-height: 800px;
    padding: 0.5rem 0;
    margin-top: 0.5rem;
}

.menu-submenu-lv3 > li {
    border-bottom: 1px solid #D8D8D8;
}

.menu-submenu-lv3 > li:last-child {
    border-bottom: none;
}

.menu-submenu-lv3 > li > a {
    display: block;
    padding: 0.8rem 1.5rem;
    color: #555;
    font-weight: 400;
    font-size: 0.85rem;
}

/* メニューフッター */
.menu-footer {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 2rem;
    margin-top: 2rem;
    padding: 0;
}

.menu-footer a {
    font-size: clamp(0.875rem, 1.1vw, 0.9rem);
    color: #333;
    font-weight: 500;
    white-space: nowrap;
}

/* ==========================================
   メインビジュアル（ヒーロー）- 斜め区切り
   ========================================== */
.hero {
    position: relative;
    height: 100vh;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    overflow: hidden;
}

/* グラデーション背景（斜めクリップ） */
.hero-gradient {
    position: absolute;
    top: 0;
    left: 0;
    width: 65%;
    height: 100%;
    background-image: url('../img/top/KV_bg.jpg');
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    z-index: 1;
    clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%);
}

/* 動画背景 */
.hero-video {
    position: absolute;
    top: 0;
    right: 0;
    width: 100%;
    height: 100%;
    overflow: hidden;
    z-index: 0;
}

/* 動画パンニングアニメーションを削除しました */

.hero-video-element {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    opacity: 0;
    transition: opacity 2s ease-in-out;
    /* transform: translateX(0); 削除 */
    /* will-change: transform, opacity; 削除 */
    will-change: opacity;
}

.hero-video-element.active {
    opacity: 1;
    z-index: 1;
}

/* 動画パンニングクラスを削除しました */

/* ヒーローコンテンツ */
.hero-content {
    position: relative;
    z-index: 2;
    color: #fff;
    padding-left: 6%;
    margin-top: -50px;
}

.hero-title {
    font-size: clamp(2rem, 7vw, 6.25rem);
    font-weight: 700;
    margin-bottom: 1rem;
    /*text-shadow: 2px 2px 10px rgba(0, 0, 0, 0.3);*/
    line-height: 1.2;
}

.hero-subtitle {
    font-size: clamp(1.25rem, 2.34vw, 1.56rem);
    font-weight: 400;
    /*text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.3);*/
}

/* リクルートバナー（PC版・タブレット対応） */
.recruit-banner {
    position: absolute;
    bottom: 0;
    left: 0;
    z-index: 3;
    display: flex;
    align-items: stretch;
    background: linear-gradient(90deg, #0066CC, #00A3E0);
    color: #fff;
    border-radius: 0;
    transition: transform 0.3s ease;
    box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2);
    /*clip-path: polygon(0 0, 100% 0, 90% 100%, 0 100%);*/
    width: 33%;
    /*max-width: 400px;*/
    min-width: 280px;
    /* 最小幅を設定 */
    height: 100px;
    overflow: hidden;
}

.recruit-banner:hover {
    transform: translateX(5px);
}

.recruit-banner-content {
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding: 1.5rem 2rem;
    flex: 1;
    /* 残りのスペースを使う */
    min-width: 0;
    /* flexboxの縮小を許可 */
}

.recruit-banner-text {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    flex: 1;
}

.recruit-label {
    font-weight: 700;
    font-size: clamp(1.04rem, 2.0vw, 1.3rem);
    line-height: 1;
}

.recruit-text {
    font-size: clamp(0.6875rem, 0.9vw, 0.75rem);
    font-weight: 500;
}

.recruit-banner-arrow {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 17.5px;
    height: 17.5px;
    background: #fff;
    border-radius: 50%;
    flex-shrink: 0;
}

.recruit-arrow {
    font-size: 1rem;
    color: #0066CC;
    font-weight: bold;
    line-height: 1;
    margin-top: -3.5px;
}

/* 画像エリア - 比率で幅を指定 */
.recruit-banner-image {
    /*width: 45%;*/
    /* バナー全体の45%を画像エリアに */
    height: 100%;
    flex-shrink: 0;
    position: relative;
    overflow: visible;
}

.recruit-banner-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: center;
}

/* タブレット対応 */


/* スマホ対応 */


/* ==========================================
   レスポンシブ（タブレット）
   ========================================== */


/* ==========================================
   レスポンシブ（スマホ）
   ========================================== */

/* スマホ版ヘッダーの調整 */


/* ==========================================
   COMPANY セクション
   ========================================== */
.company {
    padding: 6rem 0 8rem;
    background: #fff;
    position: relative;
    overflow: hidden;
}

.company-bg-gradient {
    position: absolute;
    top: -100px;
    right: -100px;
    width: 800px;
    height: 800px;
    background-image: url('../img/top/top_circle_company.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 0;
    pointer-events: none;
}

/* PC用：見出しを非表示 */
.company-header {
    display: none;
}

.company-content {
    position: relative;
    z-index: 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}

.company-image {
    display: flex;
    justify-content: center;
    align-items: center;
}

.company-image img {
    border-radius: 5px;
    box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
}

.company-text {
    text-align: right;
}

/* PC用の見出しを表示 */
.company-title-pc,
.company-subtitle-pc {
    display: block;
}

.company-subtitle {
    font-size: clamp(1rem, 1.5vw, 1.313rem);
    margin-bottom: 1.5rem;
    color: #666;
    font-weight: 500;
}

.company-description {
    font-size: clamp(1rem, 1.3vw, 1.313rem);
    font-weight: 600;
    line-height: 1.8;
    margin-bottom: 1.5rem;
    color: #333;
    text-align: left;
}

.company-detail {
    font-size: clamp(0.875rem, 1vw, 1.125rem);
    line-height: 1.8;
    color: #666;
    margin-bottom: 2rem;
    text-align: left;
}

.company-text .btn-primary {
    margin-left: auto;
}

/* タブレット対応 */


/* スマホ対応 */


/* ==========================================
   BUSINESS FIELDS セクション - 基本設定
   ========================================== */
.business {
    position: relative;
}

/* ==========================================
   PC版 - 横スクロール (既存のスタイル維持)
   ========================================== */
.business-pc {
    display: block;
}

.business-mobile {
    display: none;
}

.business-scroll-wrapper {
    position: sticky;
    top: 0;
    height: 100vh;
    overflow: hidden;
    z-index: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.business-bg-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
}

.business-scroll-container {
    position: relative;
    z-index: 1;
    height: auto;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
    gap: 1.5rem;
    padding-bottom: 10rem;
    padding-top: 12rem;
}

.business-header {
    position: relative;
    top: auto;
    left: auto;
    max-width: 100%;
    color: #fff;
    z-index: 3;
    padding-left: 5%;
    padding-right: 5%;
    margin-bottom: 0;
}


.section-title-white-sub {
    display: inline-block;
    margin-left: 28px;
    font-size: 0.3em;
}


.business-intro {
    font-size: clamp(1rem, 1.3vw, 1.313rem);
    color: #fff;
    line-height: 1.6;
}

.business-intro-sub {
    font-size: clamp(0.8125rem, 1.56vw, 1.875rem);
    color: #fff;
    line-height: 1.6;
    margin-top: 4rem;
}

.business-content {
    display: flex;
    gap: 2rem;
    padding-left: 5%;
    padding-right: 5%;
    will-change: transform;
    overflow: visible;
    margin: 1.25rem 0;
}

.business-card {
    min-width: 85vw;
    max-width: 85vw;
    overflow: hidden;
    flex-shrink: 0;
    display: flex;
    flex-direction: row;
    align-items: stretch;
}

.business-card-image {
    width: 40%;
    min-height: 350px;
    overflow: hidden;
    flex-shrink: 0;
}

.business-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.business-card:hover .business-card-image img {
    transform: scale(1.05);
}

.business-card-content {
    padding: 2.5rem;
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.business-number {
    display: inline-block;
    background: #FF6444;
    color: #fff;
    padding: 0.3rem 0.8rem;
    border-radius: 20px;
    font-weight: 700;
    margin-bottom: 1.5rem;
    font-size: clamp(0.8125rem, 1vw, 0.9rem);
    width: 65px;
    text-align: center;
}

.business-card-title {
    font-size: clamp(1.25rem, 2vw, 2rem);
    font-weight: 700;
    margin-bottom: 2.5rem;
    color: #FFF;
    line-height: 1.4;
}

.business-card-text {
    font-size: clamp(0.9375rem, 1.1vw, 1.125rem);
    color: #FFF;
    line-height: 1.8;
    margin-bottom: 3rem;
}

.btn-business {
    display: inline-flex;
    align-items: center;
    gap: 7rem;
    padding: .7rem 2.5rem;
    background: #FF6444;
    color: #fff;
    border-radius: 50px;
    font-weight: 600;
    transition: all 0.3s ease;
    width: fit-content;
}

.btn-business:hover {
    background: #FF5252;
    transform: translateX(5px);
}

/* ==========================================
   スマホ版 - カルーセル
   ========================================== */

.business-mobile-video {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: calc(100% + 80px);
    object-fit: cover;
    z-index: 0;
    pointer-events: none;
}

.business-mobile-container {
    position: relative;
    z-index: 1;
    padding: 0 10px;
    overflow: visible;
    max-width: 100%;
    box-sizing: border-box;
}

.business-mobile-header {
    color: #fff;
    margin-bottom: 2.5rem;
    text-align: left;
}

.business-mobile-header .section-title-white {
    font-size: clamp(1.5rem, 2.5vw, 2rem);
    margin-bottom: 1.5rem;
    color: #fff;
    background: none;
    -webkit-text-fill-color: #fff;
}

.business-mobile-header .section-title-white-sub {
    display: block;
    margin-left: 0;
    margin-top: 0.5rem;
    font-size: clamp(0.8125rem, 1vw, 0.9rem);
    font-weight: 400;
}

.business-mobile-header .business-intro {
    font-size: clamp(0.9375rem, 1.1vw, 1.125rem);
    margin-bottom: 0.5rem;
}

.business-mobile-header .business-intro-sub {
    font-size: clamp(1rem, 1.3vw, 1.125rem);
    margin-top: 1.5rem;
}

/* カルーセルカード */
.business-mobile-card {
    background: transparent;
    backdrop-filter: none;
    border-radius: 20px;
    overflow: visible;
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
}

.business-mobile-card-image {
    position: relative;
    width: 100%;
    height: 240px;
    overflow: hidden;
    border-radius: 20px 20px 0 0;
    flex-shrink: 0;
}

.business-mobile-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

.business-mobile-number {
    display: inline-block;
    position: relative;  /* absoluteを上書き */
    bottom: auto;
    left: auto;
    background: #FF6444;
    color: #fff;
    padding: 0.3rem 0.8rem;
    border-radius: 20px;
    font-weight: 700;
    font-size: 0.85rem;
    margin-bottom: 1rem;
    z-index: auto;
    width: 60px;
    text-align: center;
}

.business-mobile-card-content {
    padding: 1.5rem;
    border-radius: 0 0 20px 20px;
    flex: 1;
    display: flex;
    flex-direction: column;
}

.business-mobile-card-title {
    font-size: 1.2rem;
    font-weight: 700;
    color: #fff;
    line-height: 1.4;
    margin-bottom: 1.5rem;
}

.btn-business-mobile {
    display: inline-flex;
    align-items: center;
    gap: 7rem;
    padding: 0.6rem 1.8rem;
    background: #FF6444;
    color: #fff;
    border-radius: 50px;
    font-weight: 600;
    transition: all 0.3s ease;
    width: 90%;
    max-width: 275px;
    margin: 0 auto;
}

.btn-business-mobile:hover {
    /*background: #FF5252;*/
}

.btn-arrow-circle-mobile {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    background: rgba(255, 255, 255, 1.0);
    border-radius: 50%;
    transition: background 0.3s ease;
}

.btn-arrow-circle-mobile .btn-arrow {
    color: #FF5252;
    margin-top: -3.5px;
}

.btn-business-mobile:hover .btn-arrow-circle-mobile {
    background: rgba(255, 255, 255, 0.3);
}

/* Swiper カスタマイズ */
.business-swiper {
    padding-bottom: 80px;
    overflow: visible;
}

/* Swiperデフォルトのoverflowを確実に上書き - 詳細度を上げる */
.business-mobile .business-swiper.swiper,
.business-swiper > .swiper {
    overflow: visible;
}

.business-swiper .swiper-slide {
    height: auto;
    display: flex;
    align-items: stretch;
}

/* ナビゲーションボタン - カード下の右端に配置 */
.business-swiper .business-prev,
.business-swiper .business-next {
    width: 44px;
    height: 44px;
    background: #FF6444;
    border-radius: 50%;
    color: #fff;
    transition: all 0.3s ease;
    position: absolute;
    top: auto;
    bottom: -60px;
    z-index: 10;
    margin-top: 0;
}

.business-swiper .business-prev:after,
.business-swiper .business-next:after {
    font-size: 20px;
    font-weight: 700;
}

.business-swiper .business-prev:hover,
.business-swiper .business-next:hover {
    background: #FF5252;
}

.business-swiper .business-prev {
    left: auto;
    right: 60px;
}


/* ページネーション - プログレスバー風でカード下の左端に配置 */
.business-swiper .business-pagination {
    position: absolute;
    bottom: -50px;
    top: auto;
    left: 6px;
    right: auto;
    width: 140px;
    height: 3px;
    background: rgba(255, 255, 255, 0.3);
    border-radius: 2px;
    text-align: left;
}

.business-swiper .business-pagination .swiper-pagination-progressbar-fill {
    background: #FF6444;
    border-radius: 2px;
}

.business-swiper .business-pagination .swiper-pagination-bullet {
    display: none;
}

/* ==========================================
   タブレット対応 (1024px以下)
   ========================================== */


/* ==========================================
   スマホ対応 (767px以下)
   ========================================== */


/* ==========================================
   iPhone SE対応 (375px以下の小さい画面)
   ========================================== */


/* ==========================================
   PRODUCTS セクション(カルーセル)
   ========================================== */
.products {
    padding: 6rem 0 8rem;
    position: relative;
    overflow: visible;
    overflow-x: hidden; /* ← 追加 */
    z-index: 10;
}

.products-bg-gradient {
    position: absolute;
    top: -100px;
    left: -100px;
    width: 1200px;
    height: 1200px;
    background-image: url('../img/top/top_circle_product.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    pointer-events: none;
    z-index: 0;
}

.products .container {
    position: relative;
    z-index: 1;
}

.products-header {
    margin-bottom: 2rem;
}

.section-title-left {
    font-size: clamp(1rem, 1.56vw, 1.875rem);
    font-weight: 400;
    color: #666;
    position: relative;
    padding-left: 3rem;
    display: inline-block;
}

.section-title-left::before {
    content: '';
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    width: 30px;
    height: 1.5px;
    background: #666;
}

/* Swiperのデフォルトスタイルを上書きするため、詳細度を上げる */
body .products-swiper.swiper {
    padding: 2rem 0 2rem;
    position: relative;
    overflow: visible; /* Swiperのデフォルトの overflow: hidden を上書き */
}

/* Swiper スライド幅はJavaScriptで制御 */
.products-swiper .swiper-slide {
    box-shadow: none;
}

body .product-card {
    display: block;
    /*background: #fff;*/
    overflow: hidden;
    text-align: center;
    box-shadow: none;
    text-decoration: none;
    color: inherit;
    transition: transform 0.3s ease;
}

body .product-card:hover {
    transform: translateY(-5px);
}

.product-image {
    height: 320px;
    overflow: hidden;
}

/* 画像ラッパー */
.product-image-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    overflow: hidden;
}

.product-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: filter 0.4s ease;
    border-radius: 7px;
}

/* オーバーレイ（左から右に流れる） */
.product-image-wrapper::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 0;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.65);
    z-index: 1;
    transition: width 0.4s ease;
    border-radius: 7px;
}

/* ホバー時のテキスト表示 */
.product-overlay-content {
    width: 100%;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-150%, -50%);
    z-index: 2;
    text-align: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.4s ease 0.1s, transform 0.4s ease 0.1s;
}

.product-overlay-text {
    font-size: clamp(0.9375rem, 1.2vw, 1.125rem);
    font-weight: 600;
    color: white;
    margin: 0;
    letter-spacing: 0.05em;
    border: 2px solid white;
    border-radius: 50px;
    padding: 12px 40px 12px 30px;
    display: inline-flex;
    align-items: center;
    gap: 15px;
    position: relative;
}

/* 右側の「>」アイコン */
.product-overlay-text::after {
    content: '›';
    font-size: 1.5em;
    font-weight: 700;
    line-height: 1;
}

/* ホバー時のアニメーション */
.product-card:hover .product-image-wrapper::before {
    width: 100%;
}

.product-card:hover .product-overlay-content {
    opacity: 1;
    transform: translate(-50%, -50%);
}

.product-card:hover .product-image img {
    filter: brightness(0.8);
}

.product-title {
    padding: 1.5rem 1.5rem 0rem;
    font-size: clamp(1rem, 1.4vw, 1.4rem);
    font-weight: 500;
    color: #333;
}

.product-text {
    padding: 0 1.5rem 1.5rem;
    font-size: clamp(0.8125rem, 1vw, 0.9rem);
    color: #666;
    line-height: 1.6;
}

/* Swiper ナビゲーションボタン */
/* Swiperのデフォルトスタイルを上書きするため、bodyセレクタで詳細度を上げる */
body .products-swiper .swiper-button-prev,
body .products-swiper .swiper-button-next {
    width: 35px;
    height: 35px;
    background: #FF6444;
    border-radius: 50%;
    color: #fff;
    top: auto;
    bottom: -10px; /* マイナス値でswiperの外側に配置 */
    margin: 0;
}

body .products-swiper .swiper-button-prev::after,
body .products-swiper .swiper-button-next::after {
    font-size: 15px;
    font-weight: bold;
}

/* 矢印を右側に寄せる */
body .products-swiper .swiper-button-prev {
    left: auto;
    right: 60px;
}


body .products-swiper .swiper-button-prev:hover,
body .products-swiper .swiper-button-next:hover {
    background: #FF5252;
}

/* プログレスバーを左側に配置 */
/* Swiperのデフォルトスタイルを上書きするため、複数のクラスを組み合わせて詳細度を上げる */
body .products-swiper .swiper-pagination.swiper-pagination-progressbar.swiper-pagination-horizontal {
    position: absolute;
    left: 15px;
    right: auto;
    width: 60%;
    max-width: 600px;
    height: 4px;
    background: #D0D0D0;
    border-radius: 2px;
    bottom: 20px; /* CSSで仮の位置を設定（JavaScriptで動的に調整） */
    top: auto;
}

.products-swiper .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    background: #FF6444;
    border-radius: 2px;
    transform-origin: left top;
}

.products-swiper .swiper-pagination-bullet {
    display: none;
}

/* タブレット対応 */


/* スマホ対応 */


/* ==========================================
   SUSTAINABILITY セクション
   ========================================== */
.sustainability {
    position: relative;
    width: 100%;
    min-height: 600px; /* 正方形に合わせて高さ調整 */
    overflow: hidden;
    margin: 0;
}

.sustainability-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
}

.sustainability-image {
    width: 100%;
    height: 100%;
}

.sustainability-image img {
    width: 100%;
    height: 600px; /* 正方形に近い高さに */
    object-fit: cover;
    object-position: 80% center; /* 右端から少し左にズラす（100%が右端） */
}

.sustainability-content {
    position: absolute;
    top: 55%;
    left: 30%;
    transform: translate(-50%, -50%);
    z-index: 2;
    max-width: 600px;
    text-align: center;
}

.sustainability-title {
    font-size: clamp(2rem, 4.5vw, 4.5rem);
    font-weight: 700;
    margin-bottom: -0.5rem;
    background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.sustainability-subtitle {
    font-size: clamp(1rem, 1.4vw, 1.313rem);
    margin-bottom: 5rem; /* 余白を縮小 */
    color: #333;
}

.btn-sustainability {
    display: inline-flex;
    align-items: center;
    gap: 7rem; /* ボタン幅を広げる */
    padding: 1.25rem 2.5rem;
    background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
    color: #fff;
    border-radius: 50px;
    font-weight: 600;
    transition: all 0.3s ease;
    min-width: 250px; /* 最小幅を設定 */
}

.btn-sustainability:hover {
    /*background: linear-gradient(90deg, #0178BD 0%, #023D8F 100%);*/
    /*transform: translateX(5px);*/
}

/* スマホ対応 */


/* ==========================================
   50周年 セクション
   ========================================== */
.anniversary {
    position: relative;
    width: 100%;
    min-height: 600px;
    overflow: hidden;
}

.anniversary-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
}

.anniversary-image {
    width: 100%;
    height: 100%;
}

.anniversary-image img {
    width: 100%;
    height: 600px;
    object-fit: cover;
    object-position: center;
}

.anniversary-content {
    position: absolute;
    top: 55%;
    right: 13.5%;
    transform: translateY(-50%);
    z-index: 2;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1rem;
}

.anniversary-icon {
    width: auto;
    height: clamp(120px, 20vw, 280px);
    object-fit: contain;
}

.btn-anniversary {
    gap: 3rem;
}


/* ==========================================
   セクション区切り（グラデーション背景）
   ========================================== */
.section-divider {
    position: relative;
    height: 400px;
    background: #fff;
    overflow: hidden;
    margin-bottom: -200px;
    margin-top: -200px;
    z-index: 1;
}

.divider-bg-gradient {
    position: absolute;
    top: 0;
    right: -150px;
    width: 800px;
    height: 800px;
    background-image: url('../img/top/gradient-circle_03.png');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    pointer-events: none;
    z-index: 1;
    filter: contrast(1.3) saturate(1.2);
}

/* タブレット対応 */


/* スマホ対応 */



/* ==========================================
   RECRUIT セクション
   ========================================== */
.recruit {
    padding: 0;
    background: transparent;
    /*overflow: hidden;*/
    position: relative;
    z-index: 0;
}

.recruit::before {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 65%;
    background: linear-gradient(135deg, #E6F3FF 0%, #D4EDFF 100%);
    z-index: 0;
}

/* RECRUITセクション右端のサークル */
.recruit::after {
    content: '';
    position: absolute;
    top: 45%;
    right: -300px;
    transform: translateY(-50%);
    width: 1200px;
    height: 1200px;
    background-image: url('../img/top/top_circle_recruit.svg');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    pointer-events: none;
    z-index: 1;
}

.recruit-wrapper {
    position: relative;
    z-index: 2;
    padding: 6rem 0 8rem;
}

/* 画像スクロールエリア */
.recruit-images-scroll {
    overflow: hidden;
    margin-bottom: -8rem;
    padding:150px 0 60px;
    mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);
    -webkit-mask-image: linear-gradient(to right, transparent, black 5%, black 95%, transparent);
    position: relative;
    z-index: 2;
}

.recruit-image-track {
    display: flex;
    gap: .75rem;
    animation: scrollRecruitImages 40s linear infinite;
    width: fit-content;
}

.recruit-image-track:hover {
    animation-play-state: paused;
}

/* 無限スクロールアニメーション */
@keyframes scrollRecruitImages {
    0% {
        transform: translateX(0);
    }

    100% {
        transform: translateX(-50%);
    }
}

.recruit-image-item {
    flex: 0 0 auto;
    width: 350px;
    aspect-ratio: 4 / 5;
    /* 縦横比を4:5に設定 */
    transition: transform 0.3s ease;
}

/* 段違い配置 */
.recruit-image-up {
    transform: translateY(-40px);
}

.recruit-image-down {
    transform: translateY(40px);
}

.recruit-image-item img {
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: 15px;
}

/* コンテンツエリア */
.recruit-content-wrapper {
    position: relative;
    z-index: 2;
    padding-top: .3rem;
}

.recruit-content-grid {
    display: grid;
    grid-template-columns: 1.5fr 1fr;
    gap: 4rem;
    align-items: center;
    padding: 4rem 0;
    border-radius: 20px;
}

/* 左側：テキストエリア */
.recruit-text-area {
    text-align: left;
}

.recruit-main-title {
    font-size: clamp(2.5rem, 5vw, 5rem);
    font-weight: 700;
    margin-bottom: 1.5rem;
    line-height: 1;
    background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.recruit-subtitle {
    font-size: clamp(1rem, 1.5vw, 1.5rem);
    font-weight: 700;
    margin-bottom: 1rem;
    color: #333;
    line-height: 1.4;
}

.recruit-description {
    font-size: clamp(0.9375rem, 1.1vw, 1.125rem);
    color: #666;
    line-height: 1.8;
}

/* 右側：ボタンエリア */
.recruit-button-area {
    display: flex;
    justify-content: flex-end;
    align-items: center;
}

.btn-recruit {
    display: inline-flex;
    align-items: center;
    gap: 7rem;
    padding: .7rem 2.5rem;
    background: linear-gradient(90deg, #019DE8 0%, #0358BB 100%);
    color: #fff;
    border-radius: 50px;
    font-weight: 600;
    font-size: clamp(1rem, 1.3vw, 1.1rem);
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(1, 157, 232, 0.3);
    white-space: nowrap;
    margin-top: 45px;
}

.btn-recruit:hover {
    background: linear-gradient(90deg, #0178BD 0%, #023D8F 100%);
    /*transform: translateY(-3px);*/
    box-shadow: 0 6px 20px rgba(1, 157, 232, 0.4);
}

.btn-recruit .btn-arrow {
    font-size: clamp(1.125rem, 1.4vw, 1.3rem);
    transition: transform 0.3s ease;
    margin-top: -4px;
}

.btn-recruit:hover .btn-arrow {
    /*transform: translateX(5px);*/
}

/* タブレット対応 */


/* スマホ対応 */


/* ==========================================
   NEWS セクション
   ========================================== */
.news {
    padding: 10rem 0 6rem;
    background: #fff;
}

/* PC版を表示 */
body .news-pc {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 4rem;
}

/* スマホ版を非表示（デフォルト） */
body .news-sp {
    display: none;
}

/* PC版（1025px以上）で確実にスマホ版を非表示 */


.news-layout {
    display: grid;
    grid-template-columns: 280px 1fr;
    gap: 4rem;
}

/* 左側：サイドバー */
.news-sidebar {
    /*position: sticky;*/
    /*top: 120px;*/
    height: fit-content;
}

.news-main-title {
    font-size: clamp(2.5rem, 5vw, 5rem);
    font-weight: 700;
    margin-bottom: 0.5rem;
    line-height: 1;
    background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.news-subtitle {
    font-size: clamp(1rem, 1.3vw, 1.313rem);
    color: #333;
    margin-bottom: 3rem;
}

.news-categories {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.news-category-btn {
    padding: 1rem 1.5rem;
    background: #F5F5F5;
    border: none;
    border-radius: 50px;
    font-size: clamp(0.9375rem, 1.1vw, 1rem);
    font-weight: 600;
    color: #666;
    cursor: pointer;
    transition: all 0.3s ease;
    text-align: left;
}

.news-category-btn.active {
    background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
    color: #fff;
}

.news-category-btn:hover:not(.active) {
    background: #E0E0E0;
}

/* 右側：ニュースコンテンツ */
.news-content {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.news-article {
    display: grid;
    grid-template-columns: 100px auto 1fr;
    gap: 1.5rem;
    padding: 1.5rem 0;
    background: transparent;
    border-bottom: 1px solid #E0E0E0;
    border-radius: 0;
    transition: all 0.3s ease;
    cursor: pointer;
    align-items: center;
}

.news-article:first-child {
    border-top: 1px solid #E0E0E0;
}

.news-article:hover {
    transform: translateY(0);
    box-shadow: none;
}

/* 日付 */
.news-article-date {
    display: flex;
    align-items: center;
    justify-content: flex-start;
}

.news-article-date-text {
    font-size: clamp(0.875rem, 1vw, 1rem);
    color: #333;
    font-weight: 500;
    letter-spacing: 0.02em;
}

/* 旧スタイル（互換性のため残す） */
.news-article-year {
    font-size: clamp(0.8125rem, 1vw, 0.9rem);
    color: #333;
    margin-bottom: 1.5rem;
    font-weight: 700;
    letter-spacing: -0.5px;
    transform: scaleY(1.5);
}

.news-article-day {
    font-size: clamp(2rem, 3vw, 2.5rem);
    font-weight: 700;
    color: #333;
    line-height: 1;
    letter-spacing: -1px;
    transform: scaleY(1.5);
}

/* サムネイル */
.news-article-thumbnail {
    display: none;
}

.news-article-thumbnail img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.news-article:hover .news-article-thumbnail img {
    transform: scale(1.1);
}

/* 本文 */
.news-article-body {
    display: flex;
    flex-direction: column;
    /*gap: 0.8rem;*/
}

.news-article-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.2rem 1rem;
    border-radius: 3px;
    border: 1px solid #FF6B6B;
    font-size: clamp(0.7rem, 0.85vw, 0.8rem);
    font-weight: 400;
    width: fit-content;
    margin: 0;
    background: transparent;
    color: #FF6B6B;
}

.label-notice {
    background: transparent;
    color: #FF6B6B;
    border-color: #FF6B6B;
}

.label-event {
    background: transparent;
    color: #00BCD4;
    border-color: #00BCD4;
}

.label-seminar {
    background: transparent;
    color: #4CAF50;
    border-color: #4CAF50;
}

.news-article-title {
    font-size: clamp(0.9375rem, 1.1vw, 1.0625rem);
    font-weight: 400;
    line-height: 1.7;
    color: #333;
    margin: 0;
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem;
}

/* NEWラベル */
.news-article-new {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.1rem 0.6rem;
    background: #FF6B6B;
    color: #fff;
    font-size: 0.625rem;
    font-weight: 700;
    border-radius: 3px;
    letter-spacing: 0.05em;
    flex-shrink: 0;
}

.btn-news{
    width: 250px;
    gap: 3rem;
}

/* ニュース記事リンク調整 */
.news-article-thumbnail a {
    display: block;
    width: 100%;
    height: 100%;
    text-decoration: none;
}

.news-article-title a {
    color: inherit;
    text-decoration: underline;
    text-decoration-color: transparent;
    text-underline-offset: 3px;
    transition: color 0.3s ease, text-decoration-color 0.3s ease;
}

.news-article-title a:hover {
    color: #0066CC;
    text-decoration-color: #0066CC;
}

/* タブレット対応 */


/* スマホ対応 */


/* ==========================================
   CONTACT セクション
   ========================================== */
.contact {
    padding: 6rem 0;
    background: linear-gradient(90deg, #103166 0%, #103166 50%, #7096BF 100%);
    color: #fff;
}

.contact-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 4rem;
    align-items: center;
}

.contact-left {
    text-align: left;
}

.contact-title {
    font-size: clamp(2rem, 3.5vw, 4rem);
    font-weight: 700;
    margin-bottom: 1rem;
    color: #fff;
}

.contact-text {
    font-size: clamp(1rem, 1.3vw, 1.1rem);
    line-height: 1.6;
    color: #fff;
}

.contact-right {
    display: flex;
    justify-content: flex-end;
}

.btn-contact-large {
    display: inline-flex;
    align-items: center;
    gap: 0.8rem;
    padding: 1.2rem 3rem;
    background: #fff;
    color: #0066CC;
    border-radius: 50px;
    font-weight: 700;
    font-size: clamp(1rem, 1.3vw, 1.1rem);
    transition: all 0.3s ease;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.btn-contact-large:hover {
    background: #F0F0F0;
    transform: translateY(-3px);
    box-shadow: 0 6px 20px rgba(0, 0, 0, 0.3);
}

.btn-contact-large svg {
    width: 24px;
    height: 24px;
}

/* タブレット対応 */


/* スマホ対応 */



/* ==========================================
   下層ページ共通 - ヒーローセクション
   ========================================== */

.page-hero {
    position: relative;
    height: 350px;
    padding-top: 30px;
    display: flex;
    align-items: center;
    justify-content: flex-start;
    overflow: hidden;
}

.page-hero-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, #a8b5c0 0%, #c8d0d8 100%);
    z-index: 1;
}

.page-hero-bg img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.page-hero-content {
    position: relative;
    z-index: 2;
    text-align: left;
    color: white;
    display: flex;
    align-items: center;
    gap: 1.5rem;
    padding-left: 8%;
}

.page-hero-label {
    font-size: clamp(0.75rem, 1vw, 0.875rem);
    font-weight: 500;
    letter-spacing: 0.2em;
    opacity: 0.95;
}

.page-hero-title {
    font-size: clamp(1.75rem, 3.5vw, 2.5rem);
    font-weight: 700;
    letter-spacing: 0.05em;
    margin: 0;
}

/* レスポンシブ対応 */


/* ==========================================
   パンくずリスト
   ========================================== */
.breadcrumbs {
    background: white;
    padding: 1.5rem 0;
    border-top: 1px solid #e2e8f0;
}

.breadcrumbs-list {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    list-style: none;
    padding: 0;
    margin: 0;
    font-size: 0.875rem;
}

.breadcrumbs-item {
    display: flex;
    align-items: center;
    color: #4a5568;
    margin-bottom: 7px;
}

.breadcrumbs-item a {
    color: #4a5568;
    transition: color 0.3s ease;
    border-bottom: 1px solid rgba(74, 85, 104, 1.0);
}

.breadcrumbs-item a:hover {
    color: #1E90FF;
    border-bottom: 1px solid rgba(74, 85, 104, 0);
}

.breadcrumbs-item:not(:last-child)::after {
    content: '›';
    margin: 0 0.75rem;
    color: #cbd5e0;
    font-size: 1.125rem;
}

.breadcrumbs-item:last-child {
    color: #2d3748;
    font-weight: 500;
}

/* ==========================================
   フッター
   ========================================== */
.footer {
    background: #fff;
    color: #333;
    border-top: 1px solid #E0E0E0;
    position: relative;
}

/* PC版フッターを表示 */
body .footer-pc {
    display: block;
}

/* スマホ版フッターを非表示 */
body .footer-sp {
    display: none;
}

/* TOPボタン */
.btn-totop {
    position: absolute;
    bottom: 0;
    right: 0;
    width: 73px;
    height: 73px;
    background: #103166;
    color: #fff;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    text-decoration: none;
    font-size: 0.75rem;
    font-weight: 600;
    border-radius: 0;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    transition: all 0.3s ease;
    z-index: 10;
}

.btn-totop::before {
    content: '';
    width: 0;
    height: 0;
    border-left: 8px solid transparent;
    border-right: 8px solid transparent;
    border-bottom: 10px solid #fff;
}

.btn-totop:hover {
    background: #0d2851;
    box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
}

.footer-top {
    padding: 4rem 0 3rem;
}

.footer-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 3rem;
}

.footer-logo img {
    height: 30px;
    width: auto;
}

.footer-buttons {
    display: flex;
    gap: 1rem;
}

.btn-footer {
    padding: 0.5rem 2rem;
    text-align: center;
    border-radius: 50px;
    background: #F5F5F5;
    border: none;
    transition: all 0.3s ease;
    font-size: 0.9rem;
    white-space: nowrap;
    color: #005095;
    font-weight: 500;
}

.btn-footer:hover {
    background: #005095;
    color: #fff;
}

.btn-footer-contact {
    background: #005095;
    color: #fff;
    border: 1px solid #005095;
}

.btn-footer-contact:hover {
    background: #fff;
    color: #005095;
    border: 1px solid #005095;
}

.footer-content {
    margin-top: 2rem;
}

.footer-nav {
    display: grid;
    grid-template-columns: 180px 2.5fr 180px 180px;
    gap: 2.5rem;
}

.footer-column h4 {
    font-size: 1rem;
    margin-bottom: 1.2rem;
    font-weight: 600;
    color: #005095;
}
.footer-column h4.footer-column-title-other{
    color: #333;
}

.footer-column h5 {
    font-size: 0.9rem;
    margin-bottom: 0.8rem;
    font-weight: 600;
    color: #333;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid #E0E0E0;
}

.footer-subcategories {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 2.5rem;
}

.footer-column ul {
    list-style: none;
}

.footer-column li {
    margin-bottom: 0.6rem;
}

.footer-column a {
    font-size: 0.85rem;
    color: #666;
    transition: color 0.3s ease, text-decoration-color 0.3s ease;
    display: inline-block;
    text-decoration: underline;
    text-decoration-color: transparent;
}

.footer-column a::before {
    content: '＞';
    margin-right: 0.4em;
    font-size: 0.75em;
    text-decoration: none;
    display: inline-block;
}

.footer-column a:hover::before {
    color: #0066CC;
}

.footer-column a:hover {
    color: #0066CC;
    opacity: 1;
    text-decoration-color: #0066CC;
}

.footer-bottom {
    border-top: 1px solid #E0E0E0;
    padding: 1.5rem 0;
    background: #F8F8F8;
}

.footer-bottom-content {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding-right: 100px;
}

.footer-bottom-nav {
    display: flex;
    gap: 2rem;
}

.footer-bottom-nav a {
    font-size: 0.85rem;
    color: #666;
}

.footer-bottom-nav a:hover {
    color: #0066CC;
    opacity: 1;
}

.copyright {
    font-size: 0.85rem;
    color: #666;
}

/* タブレット対応 */


/* スマホ対応 */


/* ==========================================
   レスポンシブ（タブレット）
   ========================================== */


/* ==========================================
   レスポンシブ（スマホ）
   ========================================== */

/* PC表示（1025px以上） */


/* ==========================================
   レスポンシブ（スマホ）- 完全修正版
   ========================================== */
/* ========================================
   カテゴリ内リンクセクション共通スタイル
   
   以下のCSSをstyle.cssに追加してください
   ======================================== */

/* 企業情報リンク・採用情報リンク・サスティナビリティリンク 共通 */
.company-links,
.recruit-links,
.sustainability-links {
    padding: 80px 0;
    background-color: #f8f9fa;
}

.company-links .container,
.recruit-links .container,
.sustainability-links .container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 40px;
}

.company-links-title,
.recruit-links-title,
.sustainability-links-title {
    font-size: 32px;
    font-weight: 700;
    color: #003366;
    margin-bottom: 40px;
    text-align: center;
}

.company-links-grid,
.recruit-links-grid,
.sustainability-links-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 40px;
}

.company-links-column,
.recruit-links-column,
.sustainability-links-column {
    background-color: #fff;
    padding: 32px;
    border-radius: 8px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.company-links-list,
.recruit-links-list,
.sustainability-links-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.company-links-list li,
.recruit-links-list li,
.sustainability-links-list li {
    margin-bottom: 16px;
}

.company-links-list li:last-child,
.recruit-links-list li:last-child,
.sustainability-links-list li:last-child {
    margin-bottom: 0;
}

.company-links-list a,
.recruit-links-list a,
.sustainability-links-list a {
    display: block;
    padding: 12px 16px;
    color: #333;
    text-decoration: none;
    font-size: 16px;
    font-weight: 500;
    border-left: 3px solid transparent;
    transition: all 0.3s ease;
}

.company-links-list a:hover,
.recruit-links-list a:hover,
.sustainability-links-list a:hover {
    background-color: #f8f9fa;
    border-left-color: #0056b3;
    color: #0056b3;
    transform: translateX(4px);
}

/* ========================================
   レスポンシブ対応
======================================== */

/* タブレット */


/* モバイル */


/* 小さいモバイル */


/* ==========================================
   カテゴリ内リンクセクション（共通パーツ）
   ========================================== */

.category-links {
    padding: 4rem 0;
    background: #F1F3F8;
    border-top: 1px solid #E5E5E5;
}

.category-links-title {
    font-size: clamp(1.375rem, 2.5vw, 1.75rem);
    font-weight: 700;
    margin-bottom: 1.5rem;
    color: #005095;
}

.category-links-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    column-gap: 5rem;
    row-gap: 0;
}

.category-links-column {
    /* 列ごとのスタイル（必要に応じて） */
}

.category-links-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.category-links-list li {
    margin-bottom: 0;
    position: relative;
    padding: 1.5rem 0;
    border-bottom: 1px solid #D1D5DB;
}

/* 1〜3番目のアイテム（1行目）: 上線と下線 */
.category-links-column:nth-child(1) .category-links-list li,
.category-links-column:nth-child(2) .category-links-list li,
.category-links-column:nth-child(3) .category-links-list li {
    border-top: 1px solid #D1D5DB;
}

/* 4番目以降のアイテム（2行目以降）: 下線のみ（上線なし） */
.category-links-column:nth-child(n+4) .category-links-list li {
    border-top: none;
}

.category-links-list li:last-child {
    margin-bottom: 0;
}

.category-links-list a {
    color: #333333;
    text-decoration: none;
    font-size: clamp(1rem, 1.2vw, 1.0625rem);
    font-weight: 500;
    transition: color 0.3s ease;
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.category-links-list a::after {
    content: '›';
    display: flex;
    align-items: center;
    justify-content: center;
    width: 15px;
    height: 15px;
    background: #186EA9;
    color: white;
    border-radius: 50%;
    font-size: .75rem;
    font-weight: 700;
    flex-shrink: 0;
}

.category-links-list a:hover {
    color: #186EA9;
}

/* レスポンシブ対応 */

/* ==========================================
   レスポンシブ対応（統合されたメディアクエリ）
   ========================================== */

@media (max-width: 1024px) and (min-width: 767px) {
.recruit-banner {
        width: 40%;
        /* タブレットでは少し広めに */
        max-width: 450px;
        height: 90px;
    }

    .recruit-banner-content {
        gap: 1rem;
        padding: 1.2rem 1.5rem;
    }

    .recruit-label {
        font-size: 1.1rem;
    }

    .recruit-text {
        font-size: 0.7rem;
    }

    /* 画像の比率は同じ45%を維持 */
    .recruit-banner-image {
        width: 45%;
    }
}

@media (min-width: 767px) and (max-width: 1024px) {
/* PC版を表示 */
    body .news-pc {
        display: grid;
    }

    /* スマホ版を非表示 */
    body .news-sp {
        display: none;
    }

    /* フッターもPC版を表示 */
    body .footer-pc {
        display: block;
    }

    body .footer-sp {
        display: none;
    }

    .news-layout {
        grid-template-columns: 1fr;
        gap: 3rem;
    }

    .news-sidebar {
        position: relative;
        top: auto;
    }

    .news-categories {
        flex-direction: row;
        overflow-x: auto;
    }

    .news-category-btn {
        white-space: nowrap;
    }

    .news-article {
        grid-template-columns: 100px auto 1fr;
        gap: 1rem;
        padding: 1.25rem 0;
    }

    .news-article-thumbnail {
        display: none;
    }
}

@media (max-width: 1024px) {
.hero-gradient {
        width: 50%;
        clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
    }

    .hero-title {
        font-size: 3rem;
    }

    .hero-subtitle {
        font-size: 1rem;
    }

.company-content {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .company-text {
        text-align: left;
    }

    .company-text .btn-primary {
        margin-left: 0;
    }

    .company-bg-gradient {
        width: 400px;
        height: 400px;
    }

/* PC版を非表示 */
    .business-pc {
        display: none;
    }

    /* スマホ版を表示 */
    .business-mobile {
        display: block;
    }

    .business {
        padding: 50px 0 60px;
        height: auto;
    }

.products-bg-gradient {
        width: 400px;
        height: 400px;
    }

    .section-title-left {
        font-size: 2rem;
        padding-left: 3rem;
    }

    .section-title-left::before {
        width: 40px;
    }
    .products .container{
        padding: 0 1.5rem 3rem;
    }

.section-divider {
        height: 300px;
        margin-bottom: -150px;
    }

    .divider-bg-gradient {
        width: 700px;
        height: 700px;
        top: -100px;
        right: -100px;
    }

.recruit-image-item {
        width: 220px;
    }

    .recruit-image-item img {
        height: 280px;
    }

    .recruit-content-grid {
        grid-template-columns: 1fr;
        gap: 3rem;
        padding: 3rem;
    }

    .recruit-text-area {
        text-align: center;
    }

    .recruit-main-title {
        font-size: 3rem;
    }

    .recruit-subtitle {
        font-size: 1.5rem;
    }

.contact-content {
        grid-template-columns: 1fr;
        gap: 3rem;
        text-align: center;
    }

    .contact-left {
        text-align: center;
    }

    .contact-right {
        justify-content: center;
    }

.footer-header {
        flex-direction: column;
        gap: 2rem;
        text-align: center;
    }

    .footer-nav {
        grid-template-columns: repeat(2, 1fr);
        gap: 2rem;
    }

    .footer-subcategories {
        grid-template-columns: 1fr;
    }

.section-title {
        font-size: 2.5rem;
    }
    
    .hero-title {
        font-size: 3rem;
    }
    
    .company-content,
    .sustainability-content {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .footer-content {
        grid-template-columns: 1fr;
    }
    
    .footer-nav {
        grid-template-columns: repeat(2, 1fr);
    }

.category-links-grid {
        column-gap: 4rem;
        row-gap: 0;
    }

    .company-links .container,
    .recruit-links .container,
    .sustainability-links .container {
        padding: 0 30px;
    }

    .company-links-grid,
    .recruit-links-grid,
    .sustainability-links-grid {
        gap: 30px;
    }

    .company-links-column,
    .recruit-links-column,
    .sustainability-links-column {
        padding: 24px;
    }
}



@media (max-width: 767px) {
.recruit-banner {
        bottom: 5%;
        left: 50%;
        transform: translateX(-50%);
        width: 90%;
        justify-content: center;
        padding: 1.2rem 2rem;
        clip-path: none;
        border-radius: 10px;
        height: auto;
    }

    .recruit-banner:hover {
        transform: translateX(-50%) translateY(-5px);
    }

    .recruit-banner-content {
        padding: 0;
        gap: 1rem;
    }

    .recruit-banner-image {
        display: none;
    }

    .recruit-label {
        font-size: 1.3rem;
    }

    .recruit-text {
        font-size: 0.85rem;
    }

    .recruit-banner-arrow {
        width: 30px;
        height: 30px;
    }

    .recruit-arrow {
        font-size: 1.4rem;
    }

    .recruit::after {
        width: 750px;
        height: 750px;
    }

    body .header {
        left: 0;
        transform: none;
        width: 100%;
        max-width: none;
        top: 0;
        border-radius: 0;
    }

.company {
        padding: 60px 0;
    }

    .company-bg-gradient {
        display: none;
    }

    /* スマホ用：見出しを上部に表示 */
    .company-header {
        display: block;
        text-align: center;
        margin-bottom: 30px;
    }

    .company-header .section-title {
        font-size: 2.25rem;
        text-align: left
    }

    .company-header .company-subtitle {
        font-size: 0.95rem;
        color: #666;
        margin-bottom: 0;
        text-align: left;
    }

    .company-content {
        display: flex;
        flex-direction: column;
        gap: 30px;
    }

    /* PC用の見出しを非表示 */
    .company-title-pc,
    .company-subtitle-pc {
        display: none;
    }

    .company-image {
        width: 100%;
        margin: 0 -20px;
        width: calc(100% + 40px);
    }

    .company-image img {
        width: 100%;
        height: auto;
        border-radius: 0;
        box-shadow: none;
    }

    .company-text {
        width: 100%;
        text-align: left;
    }

    .company-description {
        font-size: 1rem;
        font-weight: 700;
        line-height: 1.7;
        margin-bottom: 20px;
    }

    .company-detail {
        font-size: 0.9rem;
        line-height: 1.8;
        color: #666;
        margin-bottom: 30px;
    }

    .btn-primary {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 12px 24px;
        background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
        color: #fff;
        border-radius: 50px;
        font-weight: 600;
        font-size: 0.9rem;
        text-decoration: none;
        transition: all 0.3s ease;
    }
    .company-text .btn-primary{
        width: 70%;
        max-width: 300px;
        margin: 0 auto;
        display: flex;
    }

    .btn-primary .btn-arrow-circle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 24px;
        height: 24px;
        background: rgba(255, 255, 255, 0.2);
        border-radius: 50%;
    }

    .btn-primary .btn-arrow {
        font-size: 1.2rem;
        line-height: 1;
    }

/* PC/スマホ表示切り替え用 改行 */
    .pc-only-br {
        display: none;
    }

    .sp-only-br {
        display: inline;
    }

    .business-mobile-header .section-title-white {
        font-size: 2rem;
    }

    .business-mobile-video {
        height: calc(100% + 70px);
    }

    .business-mobile-card {
        max-width: 100%;
    }

    .business-mobile-card-image {
        height: 200px;
    }

    .business-swiper {
        padding-bottom: 70px;
        overflow: visible;
    }

    /* 事業領域セクション - カルーセルナビゲーション(Swiperデフォルトより詳細度を上げる) */
    .business-swiper .swiper-button-prev.business-prev,
    .business-swiper .swiper-button-next.business-next {
        width: 35px;
        height: 35px;
        bottom: -65px;
        top: auto;
        margin-top: 0;
    }

    .business-swiper .swiper-button-prev.business-prev {
        right: 65px;
        left: auto;
    }

    .business-swiper .swiper-button-next.business-next {
        right: 10px;
        left: auto;
    }

    .business-swiper .swiper-button-prev.business-prev:after,
    .business-swiper .swiper-button-next.business-next:after {
        font-size: 10px;
    }

    .business-swiper .swiper-pagination-horizontal.business-pagination {
        position: absolute;
        bottom: -50px;
        top: auto;
        left: 20px;
        right: auto;
        width: 180px;
        height: 4px;
    }

    /* Swiperデフォルトのoverflowを確実に上書き - 詳細度を上げる */
    .business-mobile .business-swiper.swiper,
    .business-swiper > .swiper {
        overflow: visible;
    }

.products {
        padding: 3rem 0;
        overflow-x: hidden; /* ← 追加 */
    }

    .products-bg-gradient {
        width: 300px;
        height: 300px;
        top: -50px;
        left: -50px;
    }

    .section-title-left {
        font-size: 1.15rem;
        padding-left: 3rem;
        color: #333;
    }

    .section-title-left::before {
        width: 30px;
        height: 2px;
    }

    /* PRODUCTセクション専用のタイトルスタイル */
    .products-title {
        font-size: 1.25rem;
    }

    .products-title::before {
        height: 1px;
    }

    /* スマホ版：1枚 + 次のカードが20%見える */
    .products-swiper .swiper-slide {
        width: 80%;
        box-shadow: none;
    }

    .products-swiper {
        padding: 2rem 0 6rem 0;
        overflow: visible;
    }

    /* 画像は横長に（PC版と同じ） */
    .product-image {
        height: 250px;
        border-radius: 0;
        overflow: hidden;
    }

    body .product-card {
        background: #fff;
        overflow: hidden;
        box-shadow: none;
    }

    .product-title {
        padding: 1.5rem 1rem 0.5rem;
        font-size: 1.1rem;
        font-weight: 500;
        text-align: center;
        line-height: 1.5;
    }

    .product-text {
        padding: 0 1rem 1.5rem;
        font-size: 0.9rem;
        text-align: center;
        line-height: 1.5;
    }

    /* products-swiper調整 */
    body .products-swiper.swiper {
        overflow: visible;
    }

    /* productsセクションのpadding調整 */
    .products-swiper {
        padding-bottom: 90px;
    }

    /* ナビゲーションボタン - BUSINESS FIELDSと統一(詳細度を上げる) */
    body .products-swiper .swiper-button-prev,
    body .products-swiper .swiper-button-next {
        width: 35px;
        height: 35px;
        bottom: -35px;
        top: auto;
        margin-top: 0;
    }

    body .products-swiper .swiper-button-prev::after,
    body .products-swiper .swiper-button-next::after {
        font-size: 10px;
    }

    body .products-swiper .swiper-button-prev {
        right: 65px;
        left: auto;
    }

    body .products-swiper .swiper-button-next {
        right: 10px;
        left: auto;
    }

    /* ページネーション - BUSINESS FIELDSと統一 */
    body .products-swiper .swiper-pagination.swiper-pagination-progressbar.swiper-pagination-horizontal {
        position: absolute;
        bottom: -20px;
        top: auto;
        left: 20px;
        right: auto;
        width: 180px;
        height: 4px;
    }

.sustainability {
        min-height: 500px;
    }

    .sustainability {
        min-height: auto;
    }

    .sustainability-image {
        width: 100%;
        height: auto;
        overflow: hidden;
        position: relative;
    }

    .sustainability-image img {
        width: 100%;
        height: auto;
        object-fit: cover;
        display: block;
    }

    .sustainability-content {
        top: 20px; /* 上部に配置 */
        left: 5%;
        right: 5%;
        max-width: 90%;
        transform: none;
        text-align: left;
    }

    .sustainability-title {
        font-size: 2.5rem;
        margin-bottom: 0.5rem;
    }

    .sustainability-subtitle {
        font-size: 1rem;
        margin-bottom: 1.5rem;
    }

    .btn-sustainability {
        width: 75%;
        max-width: 300px;
        justify-content: space-between;
    }

.section-divider {
        height: 200px;
        margin-bottom: -100px;
    }

    .divider-bg-gradient {
        width: 500px;
        height: 500px;
        top: -50px;
        right: -50px;
    }

.recruit-wrapper {
        padding: 4rem 0 6rem;
    }

    .recruit-images-scroll {
        margin-bottom: -4rem;
    }

    .recruit-image-item {
        width: 200px;
    }

    .recruit-image-item img {
        height: 250px;
    }

    /* 段違いをスマホでは小さくする */
    .recruit-image-up {
        transform: translateY(-20px);
    }

    .recruit-image-down {
        transform: translateY(20px);
    }

    .recruit-content-wrapper {
        padding-top: 2rem;
    }

    .recruit-content-grid {
        padding: 2rem 1.5rem;
    }

    .recruit-main-title {
        font-size: 2.5rem;
    }

    .recruit-subtitle {
        font-size: 1.3rem;
        margin-bottom: 1.5rem;
    }

    .recruit-description {
        font-size: 0.9rem;
    }

    .btn-recruit {
        padding: 1rem 2rem;
        font-size: 1rem;
    }

.news {
        padding: 4rem 0;
    }

    .news-main-title {
        font-size: 3rem;
    }

    .news-article {
        grid-template-columns: 90px auto 1fr;
        gap: 0.75rem;
    }

    .news-article-date {
        flex-direction: row;
        justify-content: flex-start;
        align-items: center;
    }

    .news-article-date-text {
        font-size: 0.875rem;
    }

    .news-article-day {
        font-size: 2rem;
    }

    .news-article-thumbnail {
        display: none;
    }

.contact {
        padding: 4rem 0;
    }

    .contact-title {
        font-size: 2.5rem;
    }

    .contact-text {
        font-size: 1rem;
    }

    .btn-contact-large {
        padding: 1rem 2rem;
        font-size: 1rem;
    }

.page-hero {
        height: 250px;
        padding-top: 60px;
    }
    
    .page-hero-content {
        padding-left: 5%;
        gap: 1rem;
        flex-direction: column;
        align-items: flex-start;
        justify-content: flex-start;
    }

.footer-top {
        padding: 3rem 0 2rem;
    }

    .footer-buttons {
        flex-direction: column;
        width: 100%;
    }

    .btn-footer {
        width: 100%;
    }

    .footer-nav {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .footer-bottom-content {
        flex-direction: column;
        gap: 1rem;
        text-align: center;
        padding-right: 0;
        padding-bottom: 70px;
    }

    .footer-bottom-nav {
        flex-direction: row;
        justify-content: center;
        gap: 1.5rem;
    }

/* ========== 共通設定 ========== */
    .container {
        padding: 0 20px;
    }

    body {
        font-size: 14px;
    }

    /* ========== ヘッダー ========== */
    .header {
        padding: 17.5px 0;
        top: 0;
        left: 0;
        width: 100%;
        border-radius: 0;
    }

    .header-container {
        padding: 0 20px;
    }

    /* スマホ用ロゴサイズ（スライドメニューと統一） */
    .header .logo-icon {
        height: 24px;
    }
    
    .header .logo-shamei {
        height: 16px;
    }
    
    .header-logo-wrapper {
        gap: 0.5rem;
    }

    .nav-pc {
        display: none;
    }

    /* ハンバーガーメニューボタン - スマホ専用スタイル */
    .hamburger {
        position: absolute;
        top: 0;
        right: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 6px;
        background: #0066CC;
        border: none;
        cursor: pointer;
        padding: 13px 16px;
        z-index: 1002;
        border-radius: 0 0 0 8px;
        min-width: 70px;
        transition: border-radius 0.3s ease;
    }

    /* スクロール後は角丸なし */
    .header.scrolled .hamburger {
        border-radius: 0;
    }

    /* メニューが開いている時はハンバーガーボタンを非表示 */
    .hamburger.active {
        display: none;
    }

    .hamburger-icon {
        display: flex;
        flex-direction: column;
        gap: 4px;
        align-items: center;
    }

    .hamburger-icon span {
        display: block;
        width: 20px;
        height: 2px;
        background: #fff;
        transition: all 0.3s ease;
    }

    /* MEMUテキスト */
    .hamburger-text {
        display: block;
        color: #fff;
        font-size: 0.625rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        margin-top: 2px;
    }

    /* メニューが開いている時のスタイル */
    .hamburger.active {
        background: #0066CC;
    }

    .hamburger.active .hamburger-icon span {
        background: #fff;
    }

    .hamburger.active .hamburger-icon span:nth-child(1) {
        transform: rotate(45deg) translate(5px, 5px);
    }

    .hamburger.active .hamburger-icon span:nth-child(2) {
        opacity: 0;
    }

    .hamburger.active .hamburger-icon span:nth-child(3) {
        transform: rotate(-45deg) translate(5px, -5px);
    }

    /* スクロール時も青背景を維持 */
    .header.scrolled .hamburger {
        background: #0066CC;
    }

    .header.scrolled .hamburger-icon span {
        background: #fff;
    }

    /* ========== スマホメニューオーバーレイ ========== */
    .menu-overlay {
        z-index: 1050;
    }

    /* メニューコンテンツ - 初期表示ヘッダーと同じpaddingに */
    .menu-content {
        position: relative;
        padding: 0;
    }

    /* メニュー内のヘッダー - 初期表示ヘッダーと同じ構造に */
    .menu-header {
        position: relative;
        display: flex;
        justify-content: flex-start;
        align-items: center;
        margin-bottom: 0;
        padding: 16px 20px;
    }

    /* メニュー内の閉じるボタン - 初期表示のハンバーガーボタンと同じ位置に */
    .menu-close {
        display: none;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 6px;
        position: absolute;
        top: 0;
        right: 0;
        background: #0066CC;
        border: none;
        cursor: pointer;
        padding: 12px 16px;
        z-index: 10;
        border-radius: 0 0 0 8px;
        min-width: 70px;
    }

    /* メニューが開いている時のみ表示 */
    .menu-overlay.active .menu-close {
        display: flex;
    }

    /* メニューボタン */
    .menu-buttons {
        padding: 0 20px;
        margin: 4rem 0 2rem;
    }

    /* メニューナビゲーション */
    .menu-nav {
        padding: 0 20px;
    }

    /* メニューフッター */
    .menu-footer {
        padding: 0 20px;
    }

    /* CLOSEボタンのアイコン */
    .menu-close-icon {
        position: relative;
        width: 20px;
        height: 20px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .menu-close-icon span {
        position: absolute;
        width: 20px;
        height: 2px;
        background: #fff;
        top: 50%;
        left: 50%;
    }

    .menu-close-icon span:nth-child(1) {
        transform: translate(-50%, -50%) rotate(45deg);
    }

    .menu-close-icon span:nth-child(2) {
        transform: translate(-50%, -50%) rotate(-45deg);
    }

    /* MEMUテキスト */
    .menu-close-text {
        display: block;
        color: #fff;
        font-size: 0.625rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        margin-top: 2px;
    }

/* ========== ヒーローセクション(スマホ) ========== */
    .hero {
        position: relative;
        height: 100vh;
        min-height: 600px;
        display: flex;
        flex-direction: column;
        justify-content: center;
        align-items: flex-start;
        overflow: hidden;
    }

    /* グラデーション背景（左右に斜め区切り） */
    .hero-gradient {
        position: absolute;
        top: 0;
        left: 0;
        width: 80%;
        height: 100%;
        background-image: url('../img/top/KV_bg.jpg');
        background-size: cover;
        background-position: center;
        background-repeat: no-repeat;
        z-index: 1;
        /* 左側エリア：左から右へ斜めに区切る */
        clip-path: polygon(0 0, 100% 0, 25% 100%, 0 100%);
    }

    /* 動画背景 */
    .hero-video {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        overflow: hidden;
        z-index: 0;
    }

    .hero-video-element {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        object-fit: cover;
        opacity: 0;
        transition: opacity 2s ease-in-out;
    }

    .hero-video-element.active {
        opacity: 1;
        z-index: 0;
    }

    /* ヒーローコンテンツ */
    .hero-content {
        position: relative;
        z-index: 2;
        color: #fff;
        padding: 0 24px;
        text-align: left;
        max-width: 100%;
        margin-top: -60px;
    }

    .hero-title {
        font-size: 2.8rem;
        font-weight: 700;
        line-height: 1.2;
        margin-bottom: 1.5rem;
        text-shadow: 2px 2px 10px rgba(0, 0, 0, 0.2);
    }

    .hero-subtitle {
        font-size: 1rem;
        font-weight: 400;
        max-width: 85%;
        text-shadow: 1px 1px 5px rgba(0, 0, 0, 0.2);
    }

        /* リクルートバナー（スマホ版：ファーストビュー下部に横幅いっぱい） */
        .recruit-banner {
            position: absolute;
            bottom: 0;
            left: 0;
            right: 0;
            z-index: 3;
            display: flex;
            align-items: stretch;
            justify-content: space-between;
            background: linear-gradient(90deg, #019DE8, #0356BB);
            color: #fff;
            border-radius: 0;
            transition: all 0.3s ease;
            box-shadow: 0 -4px 20px rgba(1, 157, 232, 0.3);
            clip-path: none;
            width: 100%;
            max-width: none;
            height: 75px;
            padding: 0;
        }
    
        .recruit-banner:hover {
            transform: translateY(-3px);
            box-shadow: 0 -6px 25px rgba(1, 157, 232, 0.4);
        }
    
        .recruit-banner-content {
            display: flex;
            align-items: center;
            justify-content: space-between;
            width: 60%;
            padding: 24px 40px;
            gap: 1rem;
        }
    
        .recruit-banner-text {
            display: flex;
            flex-direction: column;
            gap: 3px;
            text-align: left;
        }
    
        .recruit-label {
            font-size: 1.5rem;
            font-weight: 500;
            letter-spacing: 0;
            opacity: 0.9;
        }
    
        .recruit-text {
            font-size: .75rem;
            font-weight: 400;
        }
    
        .recruit-banner-arrow {
            display: flex;
            align-items: center;
            justify-content: center;
            width: 15px;
            height: 15px;
            background: rgba(255, 255, 255, 1);
            border-radius: 50%;
            flex-shrink: 0;
        }
    
        .recruit-arrow {
            font-size: 1rem;
            line-height: 1;
            font-weight: 300;
            height: 20px;
        }
    
        /* 画像部分を表示 */
        .recruit-banner-image {
            display: block;
            width: 40%;
            height: 100%;
            overflow: hidden;
            position: relative;
        }
    
        .recruit-banner-image img {
            width: 100%;
            height: 100%;
            object-fit: cover;
            object-position: center;
        }

    /* ========== COMPANYセクション ========== */
    .company {
        padding: 25px 0 60px;
        background: #fff;
    }

    .company-bg-gradient {
        display: none;
    }

    .company-content {
        display: flex;
        flex-direction: column;
        gap: 30px;
    }

    .company-image {
        width: 100%;
        max-width: 100%;
        margin: 0 -20px;
        width: calc(100% + 40px);
    }

    .company-image img {
        width: 100%;
        height: auto;
        border-radius: 0;
    }

    .company-text {
        width: 100%;
        max-width: 100%;
    }

    .company-title {
        font-size: 0.8rem;
        color: #019DE8;
        font-weight: 600;
        margin-bottom: 16px;
        letter-spacing: 0.1em;
    }

    .company-headline {
        font-size: 1.5rem;
        font-weight: 700;
        line-height: 1.4;
        margin-bottom: 20px;
        color: #333;
    }

    .company-description {
        font-size: 1.25rem;
        line-height: 1.8;
        color: #000;
        margin-bottom: 30px;
        font-weight: 600;
    }

    .btn-primary {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 12px 24px;
        background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
        color: #fff;
        border-radius: 50px;
        font-weight: 600;
        font-size: 0.9rem;
        text-decoration: none;
        transition: all 0.3s ease;
    }

    .btn-primary .btn-arrow-circle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 15px;
        height: 15px;
        background: rgba(255, 255, 255, 1);
        border-radius: 50%;
    }

    .btn-primary .btn-arrow {
        font-size: 1.2rem;
        line-height: 1;
        margin-top: -5px;
    }

    /* ========== Business Fieldセクション ========== */
    .business {
        padding: 50px 0 60px;
        background: #f8f8f8;
    }

    .business-header {
        padding: 0 20px 30px;
    }

    .section-title-white {
        font-size: 2rem;
        color: #333;
        text-align: left;
        margin-bottom: 12px;
        background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
    }

    .section-subtitle-white {
        font-size: 0.9rem;
        color: #666;
    }

    .business-scroll-wrapper {
        position: relative;
        height: auto;
        overflow: visible;
    }

    .business-background-video {
        display: none;
    }

    .business-cards {
        position: relative;
        display: flex;
        overflow-x: auto;
        scroll-snap-type: x mandatory;
        -webkit-overflow-scrolling: touch;
        padding: 0 20px 20px;
        gap: 16px;
        scrollbar-width: none;
    }

    .business-cards::-webkit-scrollbar {
        display: none;
    }

    .business-card {
        flex: 0 0 280px;
        scroll-snap-align: start;
        width: 280px;
        height: 400px;
        padding: 30px 24px;
        background: linear-gradient(135deg, rgba(1, 157, 232, 0.9) 0%, rgba(3, 86, 187, 0.9) 100%);
        border-radius: 20px;
        position: relative;
        overflow: hidden;
    }

    .business-card-number {
        font-size: 2.5rem;
        font-weight: 700;
        color: rgba(255, 255, 255, 0.3);
        margin-bottom: 20px;
    }

    .business-card-title {
        font-size: 1.1rem;
        font-weight: 700;
        color: #fff;
        margin-bottom: 16px;
        line-height: 1.4;
    }

    .business-card-description {
        font-size: 0.85rem;
        color: rgba(255, 255, 255, 0.9);
        line-height: 1.7;
    }

    /* ========== プロダクトセクション ========== */
    .product {
        padding: 60px 0;
        background: #fff;
    }

    .product-header {
        padding: 0 20px;
        margin-bottom: 30px;
    }

    .product-carousel {
        padding: 0 20px;
    }

    .product-swiper {
        overflow: visible;
    }

    .product-swiper .swiper-slide {
        width: 100%;
    }

    body .product-card {
        height: auto;
        overflow: hidden;
        background: #fff;
        box-shadow: none;
    }

    body .product-card-image {
        height: 200px;
        overflow: hidden;
    }

    body .product-card-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    body .product-card-content {
        padding: 24px 20px;
    }

    .product-card-title {
        font-size: 1.1rem;
        font-weight: 700;
        color: #333;
        margin-bottom: 12px;
        line-height: 1.4;
    }

    .product-card-description {
        font-size: 0.85rem;
        color: #666;
        line-height: 1.7;
        margin-bottom: 0;
    }

    /* スワイパーのドットナビゲーション */
    .product-pagination {
        margin-top: 30px;
        position: relative;
        text-align: center;
    }

    .product-pagination .swiper-pagination-bullet {
        width: 10px;
        height: 10px;
        background: #ddd;
        opacity: 1;
        margin: 0 6px;
    }

    .product-pagination .swiper-pagination-bullet-active {
        background: #FF6B35;
    }

    /* ========== サステナビリティセクション ========== */
    .sustainability {
        padding: 0;
        background: #fff;
        margin: 0;
    }

    .sustainability-content {
        position: relative;
        width: 100%;
        height: 380px; /* 高さを固定 */
        overflow: hidden;
    }

    .sustainability-image {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 100%;
        z-index: 1;
    }

    .sustainability-image img {
        width: 100%;
        height: 100%;
        object-fit: cover;
        display: block;
    }

    .sustainability-text {
        position: absolute;
        top: 60px;
        left: 20px;
        right: 20px;
        z-index: 2;
    }

    .sustainability-title {
        font-size: 2.5rem;
        font-weight: 700;
        color: #019DE8;
        margin-bottom: 5px;
        line-height: 1.2;
    }

    .sustainability-subtitle {
        font-size: 1rem;
        font-weight: 400;
        color: #000;
        line-height: 1.4;
    }

    .btn-sustainability {
        position: absolute;
        bottom: 18%;
        left: 50%;
        transform: translateX(-50%);
        z-index: 2;
        font-size: 1.125rem;
        text-decoration: none;
        white-space: nowrap;
    }
        

    .btn-sustainability .btn-arrow-circle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 15px;
        height: 15px;
        background: rgba(255, 255, 255, 1);
        border-radius: 50%;
    }

    .btn-sustainability .btn-arrow {
        font-size: 1.2rem;
        line-height: 1;
        color: #019DE8;
    }

    /* ========== 50周年セクション ========== */
    .anniversary {
        min-height: auto;
        margin: 0 0 3rem;
    }

    .anniversary-image {
        width: 100%;
        height: auto;
        overflow: hidden;
        position: relative;
    }

    .anniversary-image img {
        width: 100%;
        height: auto;
        object-fit: cover;
        display: block;
    }

    .anniversary-content {
        position: absolute;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        width: 90%;
        max-width: none;
        gap: 2rem;
    }

    .anniversary-icon {
        height: clamp(100px, 25vw, 150px);
    }

    .btn-anniversary {
        width: 100%;
        max-width: 280px;
        gap: 2rem;
        justify-content: space-between;
    }

    /* ========== RECRUITセクション ========== */
    .recruit {
        padding: 0;
        background: transparent;
        overflow: visible;
        position: relative;
    }

    .recruit::before {
        content: '';
        position: absolute;
        bottom: 0;
        left: 0;
        width: 100%;
        height: 65%;
        background: linear-gradient(135deg, #E6F3FF 0%, #D4EDFF 100%);
        z-index: 0;
    }

    .recruit-wrapper {
        position: relative;
        z-index: 2;
        padding: 0;
    }

    .recruit-images-scroll {
        overflow: hidden;
        margin-bottom: -70px;
        padding: 120px 0 40px;
        mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
        -webkit-mask-image: linear-gradient(to right, transparent, black 10%, black 90%, transparent);
        position: relative;
        z-index: 2;
    }

    .recruit-image-track {
        display: flex;
        gap: 12px;
        animation: scrollRecruitImages 30s linear infinite;
    }

    .recruit-image-item {
        flex: 0 0 auto;
        width: 175px; /* 2枚+端が見えるように */
    }

    .recruit-image-item img {
        width: 100%;
        height: 200px; /* 250px → 200px に縮小 */
        object-fit: cover;
        border-radius: 12px;
    }

    .recruit-image-up {
        transform: translateY(-30px);
    }

    .recruit-image-down {
        transform: translateY(30px);
    }

    .recruit-content-wrapper {
        position: relative;
        z-index: 2;
        padding: 20px 0 60px;
    }

    .recruit-content-grid {
        display: flex;
        flex-direction: column;
        gap: 30px;
        padding: 0;
    }

    .recruit-text-area {
        text-align: left;
    }

    .recruit-main-title {
        font-size: 3rem;
        font-weight: 700;
        margin-bottom: 5px;
        background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
    }

    .recruit-subtitle {
        font-size: 1.25rem;
        font-weight: 700;
        color: #333;
        margin-bottom: 12px;
        line-height: 1.5;
    }

    .recruit-description {
        font-size: 1rem;
        color: #000;
        line-height: 1.8;
    }

    .recruit-button-area {
        display: flex;
        justify-content: flex-start;
    }

    .btn-recruit {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 12px 32px;
        background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
        color: #fff;
        border-radius: 50px;
        font-weight: 600;
        font-size: 0.9rem;
        width: 250px;
        margin-top: 10px;
    }

    .btn-recruit .btn-arrow-circle {
        display: flex;
        align-items: center;
        justify-content: center;
        width: 15px;
        height: 15px;
        background: rgba(255, 255, 255, 1.0);
        border-radius: 50%;
    }

    /* ========== NEWSセクション ========== */
    .news {
        padding: 50px 0;
        background: #fff;
    }

    /* PC版を非表示 */
    body .news-pc {
        display: none;
    }

    /* スマホ版を表示 */
    body .news-sp {
        display: flex;
        flex-direction: column;
        gap: 30px;
    }

    .news-sidebar {
        width: 100%;
    }

    .news-main-title {
        font-size: 2rem;
        font-weight: 700;
        margin-bottom: 8px;
        background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
        -webkit-background-clip: text;
        -webkit-text-fill-color: transparent;
        background-clip: text;
    }

    .news-subtitle {
        font-size: 0.9rem;
        color: #666;
        margin-bottom: 0;
    }

    .news-content {
        width: 100%;
        display: flex;
        flex-direction: column;
        gap: 0;
    }

    .news-sp .news-article {
        display: grid;
        grid-template-columns: auto auto 1fr;
        grid-template-rows: auto auto;
        gap: 8px 12px;
        padding: 16px 0;
        border-bottom: 1px solid #E0E0E0;
        align-items: center;
    }

    .news-sp .news-article-date-text {
        grid-column: 1;
        grid-row: 1;
        font-size: 0.875rem;
        color: #333;
        font-weight: 500;
    }

    .news-sp .news-article-label {
        grid-column: 2;
        grid-row: 1;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        padding: 2px 10px;
        border-radius: 3px;
        border: 1px solid #FF6B6B;
        font-size: 0.7rem;
        font-weight: 400;
        margin: 0;
        background: transparent;
        color: #FF6B6B;
    }

    .news-sp .label-notice {
        background: transparent;
        color: #FF6B6B;
        border-color: #FF6B6B;
    }

    .news-sp .label-event {
        background: transparent;
        color: #00BCD4;
        border-color: #00BCD4;
    }

    .news-sp .label-seminar {
        background: transparent;
        color: #4CAF50;
        border-color: #4CAF50;
    }

    .news-sp .news-article-title {
        grid-column: 1 / -1;
        grid-row: 2;
        font-size: 0.875rem;
        font-weight: 400;
        color: #333;
        line-height: 1.6;
        margin: 0;
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .news-sp .news-article-new {
        padding: 0.1rem 0.5rem;
        font-size: 0.6rem;
    }

    .news-sp .news-article-date {
        display: none;
    }

    .news-sp .news-article-thumbnail {
        display: none;
    }

    .news-sp .news-article-thumbnail img {
        width: 100%;
        height: 100%;
        object-fit: cover;
    }

    .news-article-body {
        display: flex;
        flex-direction: column;
        /*gap: 8px;*/
    }

    .news-article-meta {
        display: flex;
        align-items: center;
        gap: 12px;
        flex-wrap: wrap;
    }

    .news-sp .news-categories {
        display: flex;
        justify-content: center;
        margin: 10px auto 0;
    }

    .btn-news {
        display: inline-flex;
        align-items: center;
        gap: 8px;
        padding: 12px 32px;
        background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
        color: #fff;
        border-radius: 50px;
        font-weight: 600;
        font-size: 0.95rem;
    }

    .news-more {
        margin-top: 30px;
        text-align: center;
    }

    /* ========== CONTACTセクション ========== */
    .contact {
        padding: 60px 0;
        background: linear-gradient(90deg, #103166 0%, #103166 50%, #7096BF 100%);
        color: #fff;
    }

    .contact-content {
        display: flex;
        flex-direction: column;
        gap: 50px;
        text-align: center;
    }

    .contact-left {
        width: 100%;
        text-align: left;
    }

    .contact-title {
        font-size: 2rem;
        font-weight: 700;
        margin-bottom: 0;
        color: #fff;
    }

    .contact-text {
        font-size: 0.8rem;
        color: #fff;
        line-height: 1.7;
    }

    .contact-right {
        width: 100%;
    }

    .btn-contact-large {
        display: flex;
        align-items: center;
        justify-content: center;
        gap: 12px;
        width: 100%;
        padding: 16px 24px;
        background: #fff;
        color: #0066CC;
        border-radius: 50px;
        font-weight: 600;
        font-size: 0.95rem;
        text-decoration: none;
        width: 85%;
    }

    .btn-contact-large svg {
        width: 20px;
        height: 20px;
    }

    /* ========== フッター ========== */
    /* PC版を非表示 */
    body .footer-pc {
        display: none;
    }

    /* スマホ版を表示 */
    body .footer-sp {
        display: block;
        padding: 40px 0 15px;
        text-align: center;
    }

    .footer-sp .footer-logo {
        margin-bottom: 40px;
    }

    .footer-sp .footer-logo img {
        height: 40px;
        display: block;
        margin: 0 auto;
    }

    .footer-sp .copyright {
        font-size: 0.85rem;
        color: #999;
    }

    /* TOPボタン（スマホ用） */
    .btn-totop {
        bottom: 0;
        right: 0;
        width: 60px;
        height: 60px;
        font-size: 0.7rem;
    }

.category-links {
        padding: 3rem 0;
    }
    
    .category-links-title {
        margin-bottom: 2rem;
    }
    
    .category-links-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }
    
    .category-links-list li {
        padding: 1rem 0;
    }
    
    /* スマホでは全てのアイテムに上線を表示 */
    .category-links-list li {
        border-top: 1px solid #D1D5DB;
    }
    
    .category-links-list a {
        font-size: 1rem;
    }
    
    /* スマホ画面では全ボタンのホバーアニメーションを無効化 */
    /* セレクタの詳細度を上げるためにbody html を追加 */
    body html .btn-primary:hover,
    body html .btn-contact-nav:hover,
    body html .btn-recruit-nav:hover,
    body html .btn-business:hover,
    body html .btn-business-mobile:hover,
    body html .btn-sustainability:hover,
    body html .btn-recruit:hover,
    body html .btn-contact-large:hover,
    body html .btn-totop:hover,
    body html .btn-footer:hover,
    body html .btn-footer-contact:hover,
    body html .btn-anniversary:hover,
    body html .btn-news:hover,
    body html .news-category-btn:hover {
        transform: none;
        opacity: 1;
        background: inherit;
        color: inherit;
    }
    
    body html .btn-business-mobile:hover .btn-arrow-circle-mobile,
    body html .btn-recruit:hover .btn-arrow,
    body html .btn-primary:hover .btn-arrow-circle {
        transform: none;
    }
    
    /* body:not(.page-top)のボタンホバーも無効化 */
    body html:not(.page-top) .btn-contact-nav:hover,
    body html:not(.page-top) .btn-recruit-nav:hover {
        transform: none;
        opacity: 1;
        background: inherit;
        color: inherit;
    }
    
    /* header.scrolledのボタンホバーも無効化 */
    body html .header.scrolled .btn-recruit-nav:hover {
        transform: none;
        opacity: 1;
        background: inherit;
        color: inherit;
    }
}



@media (max-width: 375px) {
.business-mobile-header .section-title-white {
        font-size: 1.6rem;
    }

    .business-mobile-video {
        height: calc(100% + 65px);
    }

    .business-mobile-card {
        max-width: 100%;
    }

    .business-mobile-card-image {
        height: 180px;
    }

    .business-swiper {
        padding-bottom: 70px;
        overflow: visible;
    }

    .business-swiper .swiper-button-prev.business-prev,
    .business-swiper .swiper-button-next.business-next {
        width: 25px;
        height: 25px;
        bottom: -60px;
        top: auto;
        margin-top: 0;
    }

    .business-swiper .swiper-button-prev.business-prev {
        right: 58px;
        left: auto;
    }

    .business-swiper .swiper-button-next.business-next {
        right: 8px;
        left: auto;
    }

    .business-swiper .swiper-button-prev.business-prev:after,
    .business-swiper .swiper-button-next.business-next:after {
        font-size: 10px;
    }

    .business-swiper .swiper-pagination-horizontal.business-pagination {
        position: absolute;
        bottom: -50px;
        top: auto;
        left: 16px;
        right: auto;
        width: 200px;
    }

    /* Swiperデフォルトのoverflowを確実に上書き - 詳細度を上げる */
    .business-mobile .business-swiper.swiper,
    .business-swiper > .swiper {
        overflow: visible;
    }

    .business-mobile-card-content {
        padding: 1.2rem;
    }

    .business-mobile-card-title {
        font-size: 1.1rem;
    }

    .btn-business-mobile {
        padding: 0.5rem 1.5rem;
        font-size: 0.9rem;
    }

    /* PRODUCTセクション - BUSINESS FIELDSと統一(375px以下) */
    .products-swiper {
        padding-bottom: 90px;
        overflow: visible;
    }

    body .products-swiper .swiper-button-prev,
    body .products-swiper .swiper-button-next {
        width: 25px;
        height: 25px;
        bottom: -5px;
        top: auto;
        margin-top: 0;
    }

    body .products-swiper .swiper-button-prev {
        right: 58px;
        left: auto;
    }

    body .products-swiper .swiper-button-next {
        right: 8px;
        left: auto;
    }

    body .products-swiper .swiper-button-prev::after,
    body .products-swiper .swiper-button-next::after {
        font-size: 10px;
    }

    body .products-swiper .swiper-pagination.swiper-pagination-progressbar.swiper-pagination-horizontal {
        position: absolute;
        bottom: -20px;
        top: auto;
        left: 16px;
        right: auto;
        width: 200px;
        height: 4px;
    }
}

@media screen and (max-width: 480px) {
.company-links,
    .recruit-links,
    .sustainability-links {
        padding: 40px 0;
    }

    .company-links .container,
    .recruit-links .container,
    .sustainability-links .container {
        padding: 0 16px;
    }

    .company-links-title,
    .recruit-links-title,
    .sustainability-links-title {
        font-size: 20px;
        margin-bottom: 24px;
    }

    .company-links-column,
    .recruit-links-column,
    .sustainability-links-column {
        padding: 16px;
    }

    .company-links-list li,
    .recruit-links-list li,
    .sustainability-links-list li {
        margin-bottom: 12px;
    }

    .company-links-list a,
    .recruit-links-list a,
    .sustainability-links-list a {
        font-size: 13px;
        padding: 8px 10px;
    }
}

@media (min-width: 1025px) {
body .news-pc {
        display: grid;
    }
    
    body .news-sp {
        display: none;
    }

    body .footer-pc {
        display: block;
    }

    body .footer-sp {
        display: none;
    }

.nav-pc {
        display: block;
    }
    
    .hamburger {
        display: none;
    }
}

/* ==========================================
   カテゴリTOPページ - カードレイアウト（全カテゴリ共通）
   ========================================== */

.category-top-cards {
    padding: 6rem 0;
    background-color: #f1f3f8;
}

.category-top-cards-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 2rem;
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 20px;
}

.category-top-card {
    display: block;
    border-radius: 0;
    overflow: visible;
}

.category-top-card-image {
    display: block;
    width: 100%;
    aspect-ratio: 4 / 3;
    overflow: hidden;
    background-color: #e9ecef;
    border-radius: 5px;
    text-decoration: none;
}

.category-top-card-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.4s ease;
}

.category-top-card-image:hover img {
    transform: scale(1.1);
}

.category-top-card-content {
    padding: 2rem 0;
}

.category-top-card-title {
    font-size: clamp(1.25rem, 1.8vw, 1.5rem);
    font-weight: 700;
    color: #1a5490;
    margin-bottom: 1rem;
    line-height: 1.4;
}

.category-top-card-text {
    font-size: clamp(0.875rem, 1vw, 0.9375rem);
    color: #495057;
    line-height: 1.8;
    margin-bottom: 1.5rem;
}

.category-top-card-link {
    display: inline-flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0.75rem 2.5rem;
    background-color: #fff;
    border-radius: 30px;
    font-size: clamp(0.875rem, 1vw, 0.9375rem);
    color: #1a5490;
    font-weight: 600;
    text-decoration: none;
    transition: gap 0.3s ease;
}

.category-top-card-link::after {
    content: '›';
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    background: #1a5490;
    color: white;
    border-radius: 50%;
    font-size: 1.125rem;
    font-weight: 700;
    flex-shrink: 0;
    transition: transform 0.3s ease;
}

.category-top-card-link:hover {
    gap: 1rem;
}

.category-top-card-link:hover::after {
    transform: translateX(4px);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .category-top-cards {
        padding: 3rem 0;
    }
    
    .category-top-cards-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
    
    .category-top-card-content {
        padding: 1.5rem 0;
    }
    
    /* 50周年セクション - スマホ用 */
    .anniversary {
        min-height: 380px;
        margin: 0;
    }
    
    .anniversary-wrapper {
        height: 380px;
    }
    
    .anniversary-image img {
        height: 380px;
    }
    
    .anniversary-content {
        top: 50%;
        right: auto;
        left: 63%;
        transform: translate(-50%, -50%);
        width: 90%;
        gap: 1.5rem;
    }
    
    .anniversary-icon {
        height: clamp(123px, 24vw, 185px);
    }
    
    .btn-anniversary {
        max-width: 250px;
        font-size: 1rem;
    }
}



/* ==========================================
   スマホメニュー内のロゴスタイル
   ========================================== */

@media (max-width: 1023px) {
    /* メニュー内のロゴラッパー */
    .menu-header .header-logo-wrapper {
        display: flex;
        align-items: center;
        gap: 0.5rem;
        /* ヘッダーと同じ幅とサイズに設定 */
        width: auto;
    }

    /* メニュー内のアイコンロゴ */
    .menu-header .logo-icon {
        height: 24px;
        width: auto;
        flex-shrink: 0;
    }

    /* メニュー内の社名ロゴ */
    .menu-header .logo-shamei {
        height: 16px; /* アイコンロゴの65%程度 */
        width: auto;
        flex-shrink: 0;
        display: block !important; /* 常に黒ロゴを表示 */
    }

    /* メニュー内では常に黒ロゴのみ表示 */
    .menu-header .logo-shamei-white {
        display: none !important;
    }

    .menu-header .logo-shamei-black {
        display: block !important;
    }
}


/* ==========================================
   Business Fields レスポンシブ制御
   ========================================== */

/* PC用セクション: 1024px以上で表示 */
.business-pc-only {
    display: none;
}

@media (min-width: 1024px) {
    .business-pc-only {
        display: block;
    }
}

/* スマホ用セクション: 1023px以下で表示 */
.business-mobile-only {
    display: block;
}

@media (min-width: 1024px) {
    .business-mobile-only {
        display: none;
    }
}

/* ==========================================
   Business Fields モバイル用スタイル
   ========================================== */

.business-mobile-section {
    position: relative;
    background: #ffffff;
    padding: 3rem 0;
}

.business-mobile-container {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding: 0 1.5rem;
}

/* ヘッダー */
.business-mobile-header {
    text-align: center;
    margin-bottom: 3rem;
}

.business-mobile-main-title {
    /*
    font-size: clamp(1.75rem, 5vw, 2.5rem);
    font-weight: 700;
    color: #005095;
    margin-bottom: 0.5rem;
    letter-spacing: 0.05em;
    */

    font-size: 2.25rem;
    text-align: left;
    font-weight: 700;
    background: linear-gradient(90deg, #019DE8 0%, #0356BB 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.business-mobile-subtitle {
    font-size: 0.95rem;
    color: #666;
    margin-bottom: 2rem;
    text-align: left;
    font-weight: 500;
}

.business-mobile-intro {
    font-size: clamp(1.3rem, 2.6vw, 1.7rem);
    color: #333;
    margin-bottom: 0.5rem;
    font-weight: 500;
    text-align: left;
}

.business-mobile-description {
    font-size: clamp(0.9375rem, 1.2vw, 1.125rem);
    color: #666;
    line-height: 1.8;
    text-align: left;
}

/* アイテム */
.business-mobile-item {
    margin-bottom: 3rem;
    padding-bottom: 2rem;
    border-bottom: 1px solid #e0e0e0;
}

.business-mobile-item:last-child {
    margin-bottom: 0;
}

.business-mobile-number {
    display: block;
    font-size: clamp(0.75rem, 2vw, 0.85rem);
    color: #005095;
    font-weight: 700;
    margin-bottom: 0.5rem;
    letter-spacing: 0.1em;
}

.business-mobile-title {
    font-size: clamp(1.3rem, 4vw, 1.6rem);
    font-weight: 700;
    color: #333;
    margin-bottom: 1rem;
    line-height: 1.4;
}

.business-mobile-text {
    font-size: clamp(0.85rem, 2.2vw, 0.95rem);
    color: #666;
    line-height: 1.8;
    margin-bottom: 1.5rem;
}

.btn-business-mobile {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}

/* 画像 */
.business-mobile-image {
    width: 100%;
    border-radius: 8px;
    overflow: hidden;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    margin-bottom: 1.5rem;
}

.business-mobile-image img {
    width: 100%;
    height: auto;
    display: block;
    object-fit: cover;
}

/* ==========================================
   タブレット用ヘッダースタイル（スマホと同じ表示）
   768px〜1024px
   ========================================== */
@media (min-width: 768px) and (max-width: 1024px) {
    /* ヘッダー基本スタイル */
    .header {
        padding: 17.5px 0;
        top: 0;
        left: 0;
        width: 100%;
        border-radius: 0;
        transform: none;
    }

    .header-container {
        padding: 0 20px;
    }

    /* タブレット用ロゴサイズ（スマホと統一） */
    .header .logo-icon {
        height: 24px;
    }
    
    .header .logo-shamei {
        height: 16px;
    }
    
    .header-logo-wrapper {
        gap: 0.5rem;
    }

    .nav-pc {
        display: none;
    }

    /* ハンバーガーメニューボタン - タブレット用スタイル */
    .hamburger {
        position: absolute;
        top: 0;
        right: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 6px;
        background: #0066CC;
        border: none;
        cursor: pointer;
        padding: 13px 16px;
        z-index: 1002;
        border-radius: 0 0 0 8px;
        min-width: 70px;
        transition: border-radius 0.3s ease;
    }

    /* スクロール後は角丸なし */
    .header.scrolled .hamburger {
        border-radius: 0;
    }

    /* メニューが開いている時はハンバーガーボタンを非表示 */
    .hamburger.active {
        display: none;
    }

    .hamburger-icon {
        display: flex;
        flex-direction: column;
        gap: 4px;
        align-items: center;
    }

    .hamburger-icon span {
        display: block;
        width: 20px;
        height: 2px;
        background: #fff;
        transition: all 0.3s ease;
    }

    /* MEMUテキスト */
    .hamburger-text {
        display: block;
        color: #fff;
        font-size: 0.625rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        margin-top: 2px;
    }

    /* メニューが開いている時のスタイル */
    .hamburger.active {
        background: #0066CC;
    }

    .hamburger.active .hamburger-icon span {
        background: #fff;
    }

    .hamburger.active .hamburger-icon span:nth-child(1) {
        transform: rotate(45deg) translate(5px, 5px);
    }

    .hamburger.active .hamburger-icon span:nth-child(2) {
        opacity: 0;
    }

    .hamburger.active .hamburger-icon span:nth-child(3) {
        transform: rotate(-45deg) translate(5px, -5px);
    }

    /* スクロール時も青背景を維持 */
    .header.scrolled .hamburger {
        background: #0066CC;
    }

    .header.scrolled .hamburger-icon span {
        background: #fff;
    }

    /* ========== タブレット用メニューオーバーレイ ========== */
    .menu-overlay {
        z-index: 1050;
    }

    /* メニューコンテンツ */
    .menu-content {
        position: relative;
        padding: 0;
    }

    /* メニュー内のヘッダー */
    .menu-header {
        position: relative;
        display: flex;
        justify-content: flex-start;
        align-items: center;
        margin-bottom: 0;
        padding: 16px 20px;
    }

    /* メニュー内の閉じるボタン */
    .menu-close {
        display: none;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        gap: 6px;
        position: absolute;
        top: 0;
        right: 0;
        background: #0066CC;
        border: none;
        cursor: pointer;
        padding: 12px 16px;
        z-index: 10;
        border-radius: 0 0 0 8px;
        min-width: 70px;
    }

    /* メニューが開いている時のみ表示 */
    .menu-overlay.active .menu-close {
        display: flex;
    }

    /* メニューボタン */
    .menu-buttons {
        padding: 0 20px;
        margin: 4rem 0 2rem;
    }

    /* メニューナビゲーション */
    .menu-nav {
        padding: 0 20px;
    }

    /* メニューフッター */
    .menu-footer {
        padding: 0 20px;
    }

    /* CLOSEボタンのアイコン */
    .menu-close-icon {
        position: relative;
        width: 20px;
        height: 20px;
        display: flex;
        align-items: center;
        justify-content: center;
    }

    .menu-close-icon span {
        position: absolute;
        width: 20px;
        height: 2px;
        background: #fff;
        top: 50%;
        left: 50%;
    }

    .menu-close-icon span:nth-child(1) {
        transform: translate(-50%, -50%) rotate(45deg);
    }

    .menu-close-icon span:nth-child(2) {
        transform: translate(-50%, -50%) rotate(-45deg);
    }

    /* CLOSEテキスト */
    .menu-close-text {
        display: block;
        color: #fff;
        font-size: 0.625rem;
        font-weight: 700;
        letter-spacing: 0.05em;
        margin-top: 2px;
    }

    /* ========== フッター（スマホと同じ表示） ========== */
    /* PC版を非表示 */
    body .footer-pc {
        display: none;
    }

    /* スマホ版を表示 */
    body .footer-sp {
        display: block;
        padding: 40px 0 15px;
        text-align: center;
    }

    .footer-sp .footer-logo {
        margin-bottom: 40px;
    }

    .footer-sp .footer-logo img {
        height: 40px;
        display: block;
        margin: 0 auto;
    }

    .footer-sp .copyright {
        font-size: 0.85rem;
        color: #999;
    }

    /* TOPボタン（タブレット用） */
    .btn-totop {
        bottom: 0;
        right: 0;
        width: 60px;
        height: 60px;
        font-size: 0.7rem;
    }
}




/**
/*swiper-bundle.min.css*/
/**
 * Swiper 11.2.10
 * Most modern mobile touch slider and framework with hardware accelerated transitions
 * https://swiperjs.com
 *
 * Copyright 2014-2025 Vladimir Kharlampidi
 *
 * Released under the MIT License
 *
 * Released on: June 28, 2025
 */

@font-face {
    font-family: swiper-icons;
    src: url('data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA');
    font-weight: 400;
    font-style: normal
}

:root {
    --swiper-theme-color: #007aff
}

:host {
    position: relative;
    display: block;
    margin-left: auto;
    margin-right: auto;
    z-index: 1
}

.swiper {
    margin-left: auto;
    margin-right: auto;
    position: relative;
    overflow: hidden;
    list-style: none;
    padding: 0;
    z-index: 1;
    display: block
}

.swiper-vertical>.swiper-wrapper {
    flex-direction: column
}

.swiper-wrapper {
    position: relative;
    width: 100%;
    height: 100%;
    z-index: 1;
    display: flex;
    transition-property: transform;
    transition-timing-function: var(--swiper-wrapper-transition-timing-function, initial);
    box-sizing: content-box
}

.swiper-android .swiper-slide,
.swiper-ios .swiper-slide,
.swiper-wrapper {
    transform: translate3d(0px, 0, 0)
}

.swiper-horizontal {
    touch-action: pan-y
}

.swiper-vertical {
    touch-action: pan-x
}

.swiper-slide {
    flex-shrink: 0;
    width: 100%;
    height: 100%;
    position: relative;
    transition-property: transform;
    display: block
}

.swiper-slide-invisible-blank {
    visibility: hidden
}

.swiper-autoheight,
.swiper-autoheight .swiper-slide {
    height: auto
}

.swiper-autoheight .swiper-wrapper {
    align-items: flex-start;
    transition-property: transform, height
}

.swiper-backface-hidden .swiper-slide {
    transform: translateZ(0);
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden
}

.swiper-3d.swiper-css-mode .swiper-wrapper {
    perspective: 1200px
}

.swiper-3d .swiper-wrapper {
    transform-style: preserve-3d
}

.swiper-3d {
    perspective: 1200px
}

.swiper-3d .swiper-cube-shadow,
.swiper-3d .swiper-slide {
    transform-style: preserve-3d
}

.swiper-css-mode>.swiper-wrapper {
    overflow: auto;
    scrollbar-width: none;
    -ms-overflow-style: none
}

.swiper-css-mode>.swiper-wrapper::-webkit-scrollbar {
    display: none
}

.swiper-css-mode>.swiper-wrapper>.swiper-slide {
    scroll-snap-align: start start
}

.swiper-css-mode.swiper-horizontal>.swiper-wrapper {
    scroll-snap-type: x mandatory
}

.swiper-css-mode.swiper-vertical>.swiper-wrapper {
    scroll-snap-type: y mandatory
}

.swiper-css-mode.swiper-free-mode>.swiper-wrapper {
    scroll-snap-type: none
}

.swiper-css-mode.swiper-free-mode>.swiper-wrapper>.swiper-slide {
    scroll-snap-align: none
}

.swiper-css-mode.swiper-centered>.swiper-wrapper::before {
    content: '';
    flex-shrink: 0;
    order: 9999
}

.swiper-css-mode.swiper-centered>.swiper-wrapper>.swiper-slide {
    scroll-snap-align: center center;
    scroll-snap-stop: always
}

.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper>.swiper-slide:first-child {
    margin-inline-start: var(--swiper-centered-offset-before)
}

.swiper-css-mode.swiper-centered.swiper-horizontal>.swiper-wrapper::before {
    height: 100%;
    min-height: 1px;
    width: var(--swiper-centered-offset-after)
}

.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper>.swiper-slide:first-child {
    margin-block-start: var(--swiper-centered-offset-before)
}

.swiper-css-mode.swiper-centered.swiper-vertical>.swiper-wrapper::before {
    width: 100%;
    min-width: 1px;
    height: var(--swiper-centered-offset-after)
}

.swiper-3d .swiper-slide-shadow,
.swiper-3d .swiper-slide-shadow-bottom,
.swiper-3d .swiper-slide-shadow-left,
.swiper-3d .swiper-slide-shadow-right,
.swiper-3d .swiper-slide-shadow-top {
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 10
}

.swiper-3d .swiper-slide-shadow {
    background: rgba(0, 0, 0, .15)
}

.swiper-3d .swiper-slide-shadow-left {
    background-image: linear-gradient(to left, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0))
}

.swiper-3d .swiper-slide-shadow-right {
    background-image: linear-gradient(to right, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0))
}

.swiper-3d .swiper-slide-shadow-top {
    background-image: linear-gradient(to top, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0))
}

.swiper-3d .swiper-slide-shadow-bottom {
    background-image: linear-gradient(to bottom, rgba(0, 0, 0, .5), rgba(0, 0, 0, 0))
}

.swiper-lazy-preloader {
    width: 42px;
    height: 42px;
    position: absolute;
    left: 50%;
    top: 50%;
    margin-left: -21px;
    margin-top: -21px;
    z-index: 10;
    transform-origin: 50%;
    box-sizing: border-box;
    border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color));
    border-radius: 50%;
    border-top-color: transparent
}

.swiper-watch-progress .swiper-slide-visible .swiper-lazy-preloader,
.swiper:not(.swiper-watch-progress) .swiper-lazy-preloader {
    animation: swiper-preloader-spin 1s infinite linear
}

.swiper-lazy-preloader-white {
    --swiper-preloader-color: #fff
}

.swiper-lazy-preloader-black {
    --swiper-preloader-color: #000
}

@keyframes swiper-preloader-spin {
    0% {
        transform: rotate(0deg)
    }

    100% {
        transform: rotate(360deg)
    }
}

.swiper-virtual .swiper-slide {
    -webkit-backface-visibility: hidden;
    transform: translateZ(0)
}

.swiper-virtual.swiper-css-mode .swiper-wrapper::after {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    pointer-events: none
}

.swiper-virtual.swiper-css-mode.swiper-horizontal .swiper-wrapper::after {
    height: 1px;
    width: var(--swiper-virtual-size)
}

.swiper-virtual.swiper-css-mode.swiper-vertical .swiper-wrapper::after {
    width: 1px;
    height: var(--swiper-virtual-size)
}

:root {
    --swiper-navigation-size: 44px
}

.swiper-button-next,
.swiper-button-prev {
    position: absolute;
    top: var(--swiper-navigation-top-offset, 50%);
    width: calc(var(--swiper-navigation-size)/ 44 * 27);
    height: var(--swiper-navigation-size);
    margin-top: calc(0px - (var(--swiper-navigation-size)/ 2));
    z-index: 10;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--swiper-navigation-color, var(--swiper-theme-color))
}

.swiper-button-next.swiper-button-disabled,
.swiper-button-prev.swiper-button-disabled {
    opacity: .35;
    cursor: auto;
    pointer-events: none
}

.swiper-button-next.swiper-button-hidden,
.swiper-button-prev.swiper-button-hidden {
    opacity: 0;
    cursor: auto;
    pointer-events: none
}

.swiper-navigation-disabled .swiper-button-next,
.swiper-navigation-disabled .swiper-button-prev {
    display: none !important
}

.swiper-button-next svg,
.swiper-button-prev svg {
    width: 100%;
    height: 100%;
    object-fit: contain;
    transform-origin: center
}

.swiper-rtl .swiper-button-next svg,
.swiper-rtl .swiper-button-prev svg {
    transform: rotate(180deg)
}

.swiper-button-prev,
.swiper-rtl .swiper-button-next {
    left: var(--swiper-navigation-sides-offset, 10px);
    right: auto
}

.swiper-button-next,
.swiper-rtl .swiper-button-prev {
    right: var(--swiper-navigation-sides-offset, 10px);
    left: auto
}

.swiper-button-lock {
    display: none
}

.swiper-button-next:after,
.swiper-button-prev:after {
    font-family: swiper-icons;
    font-size: var(--swiper-navigation-size);
    text-transform: none !important;
    letter-spacing: 0;
    font-variant: initial;
    line-height: 1
}

.swiper-button-prev:after,
.swiper-rtl .swiper-button-next:after {
    content: 'prev'
}

.swiper-button-next,
.swiper-rtl .swiper-button-prev {
    right: var(--swiper-navigation-sides-offset, 10px);
    left: auto
}

.swiper-button-next:after,
.swiper-rtl .swiper-button-prev:after {
    content: 'next'
}

.swiper-pagination {
    position: absolute;
    text-align: center;
    transition: .3s opacity;
    transform: translate3d(0, 0, 0);
    z-index: 10
}

.swiper-pagination.swiper-pagination-hidden {
    opacity: 0
}

.swiper-pagination-disabled>.swiper-pagination,
.swiper-pagination.swiper-pagination-disabled {
    display: none !important
}

.swiper-horizontal>.swiper-pagination-bullets,
.swiper-pagination-bullets.swiper-pagination-horizontal,
.swiper-pagination-custom,
.swiper-pagination-fraction {
    bottom: var(--swiper-pagination-bottom, 8px);
    top: var(--swiper-pagination-top, auto);
    left: 0;
    width: 100%
}

.swiper-pagination-bullets-dynamic {
    overflow: hidden;
    font-size: 0
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    transform: scale(.33);
    position: relative
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active {
    transform: scale(1)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main {
    transform: scale(1)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev {
    transform: scale(.66)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev {
    transform: scale(.33)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next {
    transform: scale(.66)
}

.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next {
    transform: scale(.33)
}

.swiper-pagination-bullet {
    width: var(--swiper-pagination-bullet-width, var(--swiper-pagination-bullet-size, 8px));
    height: var(--swiper-pagination-bullet-height, var(--swiper-pagination-bullet-size, 8px));
    display: inline-block;
    border-radius: var(--swiper-pagination-bullet-border-radius, 50%);
    background: var(--swiper-pagination-bullet-inactive-color, #000);
    opacity: var(--swiper-pagination-bullet-inactive-opacity, .2)
}

button.swiper-pagination-bullet {
    border: none;
    margin: 0;
    padding: 0;
    box-shadow: none;
    -webkit-appearance: none;
    appearance: none
}

.swiper-pagination-clickable .swiper-pagination-bullet {
    cursor: pointer
}

.swiper-pagination-bullet:only-child {
    display: none !important
}

.swiper-pagination-bullet-active {
    opacity: var(--swiper-pagination-bullet-opacity, 1);
    background: var(--swiper-pagination-color, var(--swiper-theme-color))
}

.swiper-pagination-vertical.swiper-pagination-bullets,
.swiper-vertical>.swiper-pagination-bullets {
    right: var(--swiper-pagination-right, 8px);
    left: var(--swiper-pagination-left, auto);
    top: 50%;
    transform: translate3d(0px, -50%, 0)
}

.swiper-pagination-vertical.swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-vertical>.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: var(--swiper-pagination-bullet-vertical-gap, 6px) 0;
    display: block
}

.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
    top: 50%;
    transform: translateY(-50%);
    width: 8px
}

.swiper-pagination-vertical.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,
.swiper-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    display: inline-block;
    transition: .2s transform, .2s top
}

.swiper-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets .swiper-pagination-bullet {
    margin: 0 var(--swiper-pagination-bullet-horizontal-gap, 4px)
}

.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic,
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic {
    left: 50%;
    transform: translateX(-50%);
    white-space: nowrap
}

.swiper-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet,
.swiper-pagination-horizontal.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    transition: .2s transform, .2s left
}

.swiper-horizontal.swiper-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet {
    transition: .2s transform, .2s right
}

.swiper-pagination-fraction {
    color: var(--swiper-pagination-fraction-color, inherit)
}

.swiper-pagination-progressbar {
    background: var(--swiper-pagination-progressbar-bg-color, rgba(0, 0, 0, .25));
    position: absolute
}

.swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    background: var(--swiper-pagination-color, var(--swiper-theme-color));
    position: absolute;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    transform: scale(0);
    transform-origin: left top
}

.swiper-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill {
    transform-origin: right top
}

.swiper-horizontal>.swiper-pagination-progressbar,
.swiper-pagination-progressbar.swiper-pagination-horizontal,
.swiper-pagination-progressbar.swiper-pagination-vertical.swiper-pagination-progressbar-opposite,
.swiper-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite {
    width: 100%;
    height: var(--swiper-pagination-progressbar-size, 4px);
    left: 0;
    top: 0
}

.swiper-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,
.swiper-pagination-progressbar.swiper-pagination-horizontal.swiper-pagination-progressbar-opposite,
.swiper-pagination-progressbar.swiper-pagination-vertical,
.swiper-vertical>.swiper-pagination-progressbar {
    width: var(--swiper-pagination-progressbar-size, 4px);
    height: 100%;
    left: 0;
    top: 0
}

.swiper-pagination-lock {
    display: none
}

.swiper-scrollbar {
    border-radius: var(--swiper-scrollbar-border-radius, 10px);
    position: relative;
    touch-action: none;
    background: var(--swiper-scrollbar-bg-color, rgba(0, 0, 0, .1))
}

.swiper-scrollbar-disabled>.swiper-scrollbar,
.swiper-scrollbar.swiper-scrollbar-disabled {
    display: none !important
}

.swiper-horizontal>.swiper-scrollbar,
.swiper-scrollbar.swiper-scrollbar-horizontal {
    position: absolute;
    left: var(--swiper-scrollbar-sides-offset, 1%);
    bottom: var(--swiper-scrollbar-bottom, 4px);
    top: var(--swiper-scrollbar-top, auto);
    z-index: 50;
    height: var(--swiper-scrollbar-size, 4px);
    width: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))
}

.swiper-scrollbar.swiper-scrollbar-vertical,
.swiper-vertical>.swiper-scrollbar {
    position: absolute;
    left: var(--swiper-scrollbar-left, auto);
    right: var(--swiper-scrollbar-right, 4px);
    top: var(--swiper-scrollbar-sides-offset, 1%);
    z-index: 50;
    width: var(--swiper-scrollbar-size, 4px);
    height: calc(100% - 2 * var(--swiper-scrollbar-sides-offset, 1%))
}

.swiper-scrollbar-drag {
    height: 100%;
    width: 100%;
    position: relative;
    background: var(--swiper-scrollbar-drag-bg-color, rgba(0, 0, 0, .5));
    border-radius: var(--swiper-scrollbar-border-radius, 10px);
    left: 0;
    top: 0
}

.swiper-scrollbar-cursor-drag {
    cursor: move
}

.swiper-scrollbar-lock {
    display: none
}

.swiper-zoom-container {
    width: 100%;
    height: 100%;
    display: flex;
    justify-content: center;
    align-items: center;
    text-align: center
}

.swiper-zoom-container>canvas,
.swiper-zoom-container>img,
.swiper-zoom-container>svg {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain
}

.swiper-slide-zoomed {
    cursor: move;
    touch-action: none
}

.swiper .swiper-notification {
    position: absolute;
    left: 0;
    top: 0;
    pointer-events: none;
    opacity: 0;
    z-index: -1000
}

.swiper-free-mode>.swiper-wrapper {
    transition-timing-function: ease-out;
    margin: 0 auto
}

.swiper-grid>.swiper-wrapper {
    flex-wrap: wrap
}

.swiper-grid-column>.swiper-wrapper {
    flex-wrap: wrap;
    flex-direction: column
}

.swiper-fade.swiper-free-mode .swiper-slide {
    transition-timing-function: ease-out
}

.swiper-fade .swiper-slide {
    pointer-events: none;
    transition-property: opacity
}

.swiper-fade .swiper-slide .swiper-slide {
    pointer-events: none
}

.swiper-fade .swiper-slide-active {
    pointer-events: auto
}

.swiper-fade .swiper-slide-active .swiper-slide-active {
    pointer-events: auto
}

.swiper.swiper-cube {
    overflow: visible
}

.swiper-cube .swiper-slide {
    pointer-events: none;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    z-index: 1;
    visibility: hidden;
    transform-origin: 0 0;
    width: 100%;
    height: 100%
}

.swiper-cube .swiper-slide .swiper-slide {
    pointer-events: none
}

.swiper-cube.swiper-rtl .swiper-slide {
    transform-origin: 100% 0
}

.swiper-cube .swiper-slide-active,
.swiper-cube .swiper-slide-active .swiper-slide-active {
    pointer-events: auto
}

.swiper-cube .swiper-slide-active,
.swiper-cube .swiper-slide-next,
.swiper-cube .swiper-slide-prev {
    pointer-events: auto;
    visibility: visible
}

.swiper-cube .swiper-cube-shadow {
    position: absolute;
    left: 0;
    bottom: 0px;
    width: 100%;
    height: 100%;
    opacity: .6;
    z-index: 0
}

.swiper-cube .swiper-cube-shadow:before {
    content: '';
    background: #000;
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    right: 0;
    filter: blur(50px)
}

.swiper-cube .swiper-slide-next+.swiper-slide {
    pointer-events: auto;
    visibility: visible
}

.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-bottom,
.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-left,
.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-right,
.swiper-cube .swiper-slide-shadow-cube.swiper-slide-shadow-top {
    z-index: 0;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden
}

.swiper.swiper-flip {
    overflow: visible
}

.swiper-flip .swiper-slide {
    pointer-events: none;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    z-index: 1
}

.swiper-flip .swiper-slide .swiper-slide {
    pointer-events: none
}

.swiper-flip .swiper-slide-active,
.swiper-flip .swiper-slide-active .swiper-slide-active {
    pointer-events: auto
}

.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-bottom,
.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-left,
.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-right,
.swiper-flip .swiper-slide-shadow-flip.swiper-slide-shadow-top {
    z-index: 0;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden
}

.swiper-creative .swiper-slide {
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    overflow: hidden;
    transition-property: transform, opacity, height
}

.swiper.swiper-cards {
    overflow: visible
}

.swiper-cards .swiper-slide {
    transform-origin: center bottom;
    -webkit-backface-visibility: hidden;
    backface-visibility: hidden;
    overflow: hidden
}