/* 
 * Components CSS - ノムラ合成株式会社
 * カタログページ仕様に基づく再利用可能なコンポーネントライブラリ
 * 最終更新: 2025-01-22
 */

/* ================================================================
   ベースコンポーネント - ボタン系
   ================================================================ */

/* ボタン基底クラス */
.btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-sm) var(--spacing-lg);
    font-size: var(--size-base);
    font-weight: var(--weight-semibold);
    line-height: 1;
    text-decoration: none;
    border: 2px solid transparent;
    border-radius: var(--border-radius-md);
    cursor: pointer;
    transition: var(--transition-base);
    gap: var(--spacing-xs);
    user-select: none;
    white-space: nowrap;
    font-family: var(--font-family-base);
}

.btn:disabled {
    opacity: 0.6;
    cursor: not-allowed;
}

/* ボタンサイズバリエーション */
.btn-sm {
    padding: var(--spacing-xs) var(--spacing-sm);
    font-size: var(--size-sm);
}

.btn-lg {
    padding: var(--spacing-md) var(--spacing-xl);
    font-size: var(--size-lg);
}

/* プライマリーボタン */
.btn-primary {
    background-color: var(--primary-color);
    color: var(--text-white);
    border-color: var(--primary-color);
    position: relative;
    overflow: hidden;
}

.btn-primary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s ease;
}

.btn-primary:hover::before {
    left: 100%;
}

.btn-primary:hover {
    background-color: transparent;
    border-color: var(--primary-color);
    color: var(--primary-color);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* セカンダリーボタン */
.btn-secondary {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    color: var(--text-white);
    border: none;
    position: relative;
    overflow: hidden;
    box-shadow: 
        0 6px 12px rgba(var(--primary-color-rgb), 0.18),
        0 3px 6px rgba(var(--primary-color-rgb), 0.08);
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.btn-secondary::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.6s ease;
}

.btn-secondary:hover::before {
    left: 100%;
}

.btn-secondary:hover {
    background: linear-gradient(135deg, var(--secondary-color) 0%, var(--primary-color) 100%);
    transform: translateY(-2px);
    box-shadow: 
        0 12px 24px rgba(var(--primary-color-rgb), 0.3),
        0 6px 12px rgba(var(--primary-color-rgb), 0.2);
}

/* アクセントボタン */
.btn-accent {
    background: linear-gradient(135deg, var(--accent-color-light) 0%, var(--accent-color-light) 100%);
    color: var(--text-white);
    border-color: var(--accent-color-light);
    position: relative;
    overflow: hidden;
}

.btn-accent::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s ease;
}

.btn-accent:hover::before {
    left: 100%;
}

.btn-accent:hover {
    background: linear-gradient(135deg, var(--accent-color-light) 0%, var(--accent-color-light) 100%);
    color: var(--text-white); /* ホバー時も白文字維持 */
    transform: translateY(-2px);
    box-shadow: var(--shadow-lg);
}

/* アウトラインボタン */
.btn-outline {
    background-color: transparent;
    color: var(--white);
    border: 2px solid var(--white);
    position: relative;
    overflow: hidden;
}

.btn-outline::before {
    content: '';
    position: absolute;
    top: 2px;
    left: -100%;
    right: 2px;
    bottom: 2px;
    width: calc(100% - 4px);
    height: calc(100% - 4px);
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s ease;
}

.btn-outline:hover::before {
    left: 100%;
}

.btn-outline:hover {
    background-color: var(--white);
    color: var(--primary-color);
    transform: translateY(-2px);
    box-shadow: var(--shadow-md);
}

/* コンタクトボタン */
.btn-contact {
    background-color: var(--contact-red);
    color: var(--text-white);
    border-color: var(--contact-red);
}

.btn-contact:hover {
    background-color: var(--white);
    color: var(--contact-red);
    border-color: var(--contact-red);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(198, 26, 26, 0.3);
}

/* カタログページ専用コンタクトボタンスタイル */

/* コンタクトボタン（ホワイト版） */
.btn-contact-white {
    background-color: var(--white);
    color: var(--contact-red);
    border-color: var(--white);
}

.btn-contact-white:hover {
    background-color: var(--contact-red);
    color: var(--text-white);
    border-color: var(--contact-red);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(198, 26, 26, 0.3);
}


/* ================================================================
   Simplified Button System - 12個の独立クラス + ベーススライド
   ================================================================ */

/* 0. btn-base-slide（基底スライド） */
.btn-base-slide {
    /* 基底クラスと同じスタイル */
}

.btn-base-slide:hover {
    transform: translateX(8px);
}

.btn-base-slide:hover .fas {
    transform: translateX(4px);
}

.btn-base-slide .fas {
    margin-left: var(--spacing-xs);
    transition: var(--transition-base);
}

/* 1. btn-primary-slide */
.btn-primary-slide {
    background-color: var(--primary-color);
    color: var(--text-white);
    border-color: var(--primary-color);
    position: relative;
    overflow: hidden;
}

.btn-primary-slide::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.5s ease;
}

.btn-primary-slide:hover::before {
    left: 100%;
}

.btn-primary-slide:hover {
    background-color: transparent;
    border-color: var(--primary-color);
    color: var(--primary-color);
    transform: translateX(8px);
    box-shadow: var(--shadow-md);
}

.btn-primary-slide:hover .fas {
    transform: translateX(4px);
}

.btn-primary-slide .fas {
    margin-left: var(--spacing-xs);
    transition: var(--transition-base);
}

/* 2. btn-secondary-slide */
.btn-secondary-slide {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    color: var(--text-white);
    border: none;
    position: relative;
    overflow: hidden;
    box-shadow: 
        0 6px 12px rgba(var(--primary-color-rgb), 0.18),
        0 3px 6px rgba(var(--primary-color-rgb), 0.08);
    transition: all 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94);
}

.btn-secondary-slide::before {
    content: '';
    position: absolute;
    top: 0;
    left: -100%;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transition: left 0.6s ease;
}

.btn-secondary-slide:hover::before {
    left: 100%;
}

.btn-secondary-slide:hover {
    background: linear-gradient(135deg, var(--secondary-color) 0%, var(--primary-color) 100%);
    color: var(--text-white);
    transform: translateX(8px);
    box-shadow: 
        0 12px 24px rgba(var(--primary-color-rgb), 0.3),
        0 6px 12px rgba(var(--primary-color-rgb), 0.2);
}

.btn-secondary-slide:hover .fas {
    transform: translateX(4px);
}

.btn-secondary-slide .fas {
    margin-left: var(--spacing-xs);
    transition: var(--transition-base);
}

/**
 * 3. btn-accent-slide
 * 
 * アクセントカラーボタン（スライドエフェクト付き）
 * ホバー時: 背景白、テキスト・枠線アクセントカラー
 * エフェクト: 光るスライドアニメーション、右移動
 */
.btn-accent-slide {
    background: linear-gradient(135deg, var(--accent-color-light) 0%, var(--accent-color-light) 100%);
    color: var(--text-white);
    border-color: var(--accent-color-light);
    position: relative;
    overflow: hidden;
}

.btn-accent-slide::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
    transform: translateX(-100%);
    transition: transform 0.5s ease;
}

.btn-accent-slide:hover::before {
    transform: translateX(100%);
}

.btn-accent-slide:hover {
    background: var(--white);
    color: var(--accent-color);
    border-color: var(--accent-color);
    transform: translateX(8px);
    box-shadow: var(--shadow-lg);
}

.btn-accent-slide:hover .fas {
    transform: translateX(4px);
}

.btn-accent-slide .fas {
    margin-left: var(--spacing-xs);
    transition: var(--transition-base);
}

/* 4. btn-outline-slide */
.btn-outline-slide {
    background-color: transparent;
    color: var(--white);
    border: 2px solid var(--white);
    position: relative;
    overflow: hidden;
}

.btn-outline-slide:hover {
    background-color: var(--white);
    color: var(--primary-color);
    border-color: var(--white);
    transform: translateX(8px);
    box-shadow: var(--shadow-md);
}

.btn-outline-slide:hover .fas {
    transform: translateX(4px);
}

.btn-outline-slide .fas {
    margin-left: var(--spacing-xs);
    transition: var(--transition-base);
}

/* 5. btn-contact-slide */
.btn-contact-slide {
    background-color: var(--contact-red);
    color: var(--text-white);
    border-color: var(--contact-red);
}

.btn-contact-slide:hover {
    background-color: var(--white);
    color: var(--contact-red);
    border-color: var(--contact-red);
    transform: translateX(8px);
    box-shadow: 0 4px 12px rgba(198, 26, 26, 0.3);
}

.btn-contact-slide:hover .fas {
    transform: translateX(4px);
}

.btn-contact-slide .fas {
    margin-left: var(--spacing-xs);
    transition: var(--transition-base);
}

/* 6. btn-contact-white-slide */
.btn-contact-white-slide {
    background-color: var(--white);
    color: var(--contact-red);
    border-color: var(--white);
}

.btn-contact-white-slide:hover {
    background-color: var(--contact-red);
    color: var(--text-white);
    border-color: var(--contact-red);
    transform: translateX(8px);
    box-shadow: 0 4px 12px rgba(198, 26, 26, 0.3);
}

.btn-contact-white-slide:hover .fas {
    transform: translateX(4px);
}

.btn-contact-white-slide .fas {
    margin-left: var(--spacing-xs);
    transition: var(--transition-base);
}

/* ================================================================
   カード系コンポーネント
   ================================================================ */

/* 基底カードクラス */
.card {
    background-color: var(--white);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-sm);
    overflow: hidden;
    transition: var(--transition-base);
    border: 1px solid var(--border-color);
}

.card:hover {
    box-shadow: var(--shadow-lg);
    transform: translateY(-4px);
}

.card-header {
    padding: var(--spacing-lg);
    border-bottom: 1px solid var(--border-light);
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
}

.card-body {
    padding: var(--spacing-lg);
    flex: 1;
}

.card-footer {
    padding: var(--spacing-lg);
    border-top: 1px solid var(--border-light);
    background-color: var(--background-light);
}

.card-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: var(--border-radius-full);
    background: var(--primary-color);
    color: var(--text-white);
    font-size: var(--size-lg);
    flex-shrink: 0;
}

.card-title {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
    margin: 0;
    line-height: var(--line-tight);
}

.card-content {
    color: var(--text-secondary);
    line-height: var(--line-base);
    margin: 0;
}

/* ================================================================
   統計・フィーチャー・ブランドカード統合システム
   ================================================================ */

/* 統一カード共通スタイル */
.stat-card,
.feature-card,
.brand-card {
    background: var(--white);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-md);
    padding: var(--spacing-lg);
    transition: var(--transition-base);
    position: relative;
    overflow: hidden;
    border: 1px solid var(--border-color);
}

.stat-card:hover,
.feature-card:hover,
.brand-card:hover {
    transform: translateY(-4px);
    box-shadow: var(--shadow-lg);
}

/* カード全体リンク化対応 */
a.feature-card {
    text-decoration: none;
    color: inherit;
    display: block;
}

a.feature-card:hover .feature-card__action {
    color: var(--accent-color);
    transform: translateX(4px);
}

/* カード内共通要素 */
.stat-card__header,
.feature-card__header,
.brand-card__header {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.stat-card__body,
.feature-card__body,
.brand-card__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.stat-card__footer,
.feature-card__footer,
.brand-card__footer {
    margin-top: var(--spacing-md);
    padding-top: var(--spacing-md);
    border-top: 1px solid var(--border-light);
}

.stat-card__icon,
.feature-card__icon,
.brand-card__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--primary-color);
    color: var(--text-white);
    font-size: var(--size-lg);
}

.feature-card__icon i {
    font-size: 24px;
    color: var(--text-white);
}

.stat-card__title,
.feature-card__title,
.brand-card__title {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
    margin: 0;
    line-height: var(--line-tight);
}

.stat-card__description,
.feature-card__description,
.brand-card__description {
    font-size: var(--size-base);
    color: var(--text-light);
    line-height: var(--line-base);
    margin: 0;
}

/* 統計カード専用要素 */
.stat-card {
    text-align: center;
}

.stat-card__value {
    font-size: var(--size-4xl);
    font-weight: var(--weight-black);
    color: var(--text-color);
    line-height: 1;
    display: block;
    margin-bottom: var(--spacing-xs);
}

.stat-card__unit {
    font-size: var(--size-lg);
    font-weight: var(--weight-medium);
    color: var(--text-secondary);
    margin-left: var(--spacing-xs);
}

.stat-card__label {
    font-size: var(--size-sm);
    color: var(--text-light);
    margin-top: var(--spacing-sm);
}

.stat-card .stat-card__icon {
    margin: 0 auto var(--spacing-sm);
}

/* リッチ統計カード */
.stat-card--rich {
    position: relative;
    background-size: cover;
    background-position: center;
    color: var(--white);
}

.stat-card--rich::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, 
        rgba(var(--primary-color-rgb), 0.8) 0%, 
        rgba(var(--primary-color-rgb), 0.6) 50%, 
        rgba(var(--primary-color-rgb), 0.4) 100%);
    border-radius: var(--border-radius-lg);
    z-index: 1;
}

.stat-card--rich > * {
    position: relative;
    z-index: 2;
}

.stat-card--rich .stat-card__value {
    color: var(--white);
}

.stat-card--rich .stat-card__unit {
    color: var(--white);
}

.stat-card--rich .stat-card__label {
    color: var(--white);
}

/* 白オーバーレイバージョン */
.stat-card--overlay {
    position: relative;
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}

.stat-card--overlay::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255, 255, 255, 0.7);
    z-index: 1;
    border-radius: inherit;
}

.stat-card--overlay > * {
    position: relative;
    z-index: 2;
}

/* フィーチャーカード専用要素 */
.feature-card {
    display: flex;
    flex-direction: column;
    height: 100%;
}


.feature-card__features {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.feature-card__feature {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    font-size: var(--size-sm);
    color: var(--text-color);
}

.feature-card__feature::before {
    content: '•';
    color: var(--primary-color);
    font-weight: var(--weight-bold);
}

/* サービスカード用の特殊表示 */
.feature-card--service .feature-card__features {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
    justify-content: center;
}

.feature-card--service .feature-card__feature {
    background: var(--background-light);
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--border-radius-sm);
    font-size: var(--size-sm);
    color: var(--text-secondary);
    white-space: nowrap;
}

.feature-card--service .feature-card__feature::before {
    display: none;
}

/* 番号なしバリエーション用クラス */
.feature-card--no-number .feature-card__number {
    display: none;
}

.feature-card__tags {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-xs);
    margin-top: var(--spacing-sm);
}

.feature-card__tag {
    background: var(--background-light);
    color: var(--text-secondary);
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--border-radius-sm);
    font-size: var(--size-xs);
    font-weight: var(--weight-medium);
}

.feature-card__action,
.brand-card__action {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    color: var(--primary-color);
    text-decoration: none;
    font-weight: var(--weight-semibold);
    font-size: var(--size-sm);
    transition: var(--transition-fast);
}

.feature-card__action:hover,
.brand-card__action:hover {
    color: var(--accent-color);
    transform: translateX(4px);
}

/* ================================================================
   カードバリエーション
   ================================================================ */

/* サービス紹介カード */
.feature-card--service {
    border-top: 4px solid var(--primary-color);
    text-align: center;
}

.feature-card--service .feature-card__header {
    justify-content: flex-start;
    flex-direction: row;
    align-items: center;
}

.feature-card--service .feature-card__number {
    flex-shrink: 0;
}

.feature-card--service .feature-card__title {
    flex: 1;
    text-align: left;
    margin-left: var(--spacing-md);
}

.feature-card--service .feature-card__features {
    align-items: center;
}

/* SDGs紹介カード */
.feature-card--SDGs {
    border-top: 4px solid var(--primary-color);
    text-align: left;
}

.feature-card--SDGs .feature-card__header {
    justify-content: flex-start;
    flex-direction: row;
    gap: var(--spacing-md);
    align-items: center;
}

.feature-card--SDGs .feature-card__title {
    margin-bottom: 0;
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
}

/* セクション別SDGsカード配色 */
#community .feature-card--SDGs {
    border-top-color: var(--warning-yellow);
}

#community .feature-card--SDGs .feature-card__number {
    background-color: var(--warning-yellow);
}

#environment .feature-card--SDGs {
    border-top-color: var(--success-green);
}

#environment .feature-card--SDGs .feature-card__number {
    background-color: var(--success-green);
}

#product-contribution .feature-card--SDGs {
    border-top-color: var(--accent-color-light);
}

#product-contribution .feature-card--SDGs .feature-card__number {
    background-color: var(--accent-color-light);
}

/* ================================================================
   企業の取り組みページ - セクション別ヘッダーカラーリング
   ================================================================ */

/* Community セクション - イエロー系 */
#community .section-subtitle {
    color: var(--warning-yellow);
}

#community .section-title::after {
    background: linear-gradient(135deg, var(--warning-yellow) 0%, var(--warning-yellow-light) 100%);
}

/* Environment セクション - グリーン系 */
#environment .section-subtitle {
    color: var(--success-green);
}

#environment .section-title::after {
    background: linear-gradient(135deg, var(--success-green) 0%, var(--success-green-light) 100%);
}

/* Product Contribution セクション - オレンジ系 */
#product-contribution .section-subtitle {
    color: var(--accent-color-light);
}

#product-contribution .section-title::after {
    background: linear-gradient(135deg, var(--accent-color-light) 0%, var(--accent-color-light-secondary) 100%);
}

/* アドバンテージ紹介カード */
.feature-card--advantage {
    border-left: 4px solid var(--primary-color);
    text-align: left;
}

/* 製品紹介カード */
.feature-card--product .feature-card__header {
    aspect-ratio: 16/9;
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    margin: calc(-1 * var(--spacing-lg)) calc(-1 * var(--spacing-lg)) var(--spacing-md);
    padding: var(--spacing-lg);
    align-items: center;
    justify-content: center;
    color: var(--text-white);
    position: relative;
}

/* プロダクトカードのアイコン表示確保 */
.feature-card--product .feature-card__header .feature-card__icon {
    display: flex;
    background: none;
    width: auto;
    height: auto;
    border-radius: 0;
}

.feature-card--product .feature-card__header .feature-card__icon i {
    font-size: 48px;
}

/* 画像がある場合：アイコンを非表示 */
.feature-card--product .feature-card__header[style*="background-image"] i {
    display: none;
}

/* 特徴説明カード */
.feature-card--feature {
    background: linear-gradient(135deg, var(--white) 0%, var(--background-light) 100%);
    border: 1px solid rgba(var(--primary-color-rgb), 0.1);
    border-top: 4px solid var(--primary-color);
    text-align: left;
    position: relative;
    overflow: hidden;
}


.feature-card--feature:hover {
    transform: translateY(-12px);
    box-shadow: 0 20px 60px rgba(var(--primary-color-rgb), 0.15);
    border-top-color: var(--secondary-color);
}

/* ゴールセクション専用スタイル */
#future-goals {
    background-color: var(--primary-color-dark) !important;
    color: var(--text-white);
}

#future-goals .section-subtitle {
    color: var(--primary-color-light);
}

#future-goals .section-title {
    color: var(--text-white);
}

#future-goals .section-title::after {
    background: linear-gradient(135deg, var(--primary-color-light) 0%, var(--secondary-color) 100%);
}

#future-goals .section-description {
    color: var(--text-white);
}

#future-goals .feature-card--feature {
    border-top-color: var(--primary-color-dark);
}

#future-goals .feature-card--feature .feature-card__number {
    background-color: var(--primary-color-dark);
}

.feature-card--feature .feature-card__number {
    transition: all 0.4s ease;
}

.feature-card--feature:hover .feature-card__number {
    transform: scale(1.1);
    background-color: var(--secondary-color);
}

#future-goals .feature-card--feature:hover {
    border-top-color: var(--secondary-color);
}

#future-goals .feature-card--feature:hover .feature-card__number {
    transform: scale(1.1);
    background-color: var(--secondary-color);
}

/* ブランドカード */
.brand-card {
    min-height: 200px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: center;
}

/* ブランドカード専用アイコン中央配置 */
.brand-card .brand-card__icon {
    margin: 0 auto var(--spacing-md);
}

/* リッチブランドカード */
.brand-card--rich {
    position: relative;
    background-size: cover;
    background-position: center;
    color: var(--white);
}

.brand-card--rich::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: linear-gradient(135deg, 
        rgba(var(--primary-color-rgb), 0.8) 0%, 
        rgba(var(--primary-color-rgb), 0.6) 50%, 
        rgba(var(--primary-color-rgb), 0.4) 100%);
    border-radius: var(--border-radius-lg);
    z-index: 1;
}

.brand-card--rich > * {
    position: relative;
    z-index: 2;
}

.brand-card--rich .brand-card__title {
    color: var(--white);
}

.brand-card--rich .brand-card__description {
    color: var(--white);
}

.brand-card--rich .brand-card__icon {
    background: rgba(255, 255, 255, 0.2);
    color: var(--white);
    margin: 0 auto var(--spacing-md);
}

/* ================================================================
   セクションヘッダーコンポーネント
   ================================================================ */

.section-header {
    margin-bottom: var(--spacing-xl);
}

.section-subtitle {
    color: var(--primary-color);
    font-size: var(--size-sm);
    font-weight: var(--weight-semibold);
    text-transform: uppercase;
    letter-spacing: 0.1em;
    margin-bottom: var(--spacing-xs);
    display: inline-block;
}

.section-title {
    color: var(--text-color);
    font-size: var(--size-3xl);
    font-weight: var(--weight-bold);
    margin-bottom: var(--spacing-md);
    position: relative;
}

/* ページタイトル用のh1サイズ調整 */
h1.section-title {
    font-size: var(--size-4xl);
}

.section-description {
    color: var(--primary-color);
    line-height: var(--line-relaxed);
    font-size: var(--size-base);
    margin-bottom: var(--spacing-md);
}


/* センターバージョン（デフォルト） */
.section-header--center {
    text-align: center;
}

/* 3要素カードセクション用の幅調整 */
#our-insulation-work .section-header--center {
    max-width: 1400px;
    width: 100%;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: var(--spacing-xl);
}

/* セクションヘッダー内の要素も確実に幅を確保 */
#our-insulation-work .section-header--center .section-subtitle,
#our-insulation-work .section-header--center .section-title {
    max-width: none;
    width: 100%;
}

/* our-insulation-workのsection-descriptionはlongクラスの設定を優先 */

/* 古い特定セクション向けCSSは削除 - 個別クラス設定に統一 */

/* HPテキスト仕様: 1文の最大幅900px制限（左端から開始） */
.subsection-text-content .body-text,
.subsection-summary .body-text {
    max-width: 900px;
    margin: 0;
    color: var(--text-primary);
}

/* 下位タイトル（H3以下）も黒系に */
.subsection-title {
    color: var(--text-primary);
}

/* センター寄せセクションヘッダーの説明文 - デフォルト（短い文章用） */
.section-header--center .section-description {
    text-align: center;
    white-space: normal;
    word-wrap: break-word;
    overflow-wrap: break-word;
}

/* 長い説明文用 - ブロック中央＋テキスト左詰め */
.section-header--center .section-description--long {
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
    text-align: left !important;
}

/* セクションディスクリプション内のstrong要素にアクセントカラー下線 */
.section-description strong {
    color: var(--text-primary);
    border-bottom: 2px solid var(--accent-color);
    padding-bottom: 1px;
}




.section-header--center .section-title::after {
    content: '';
    position: absolute;
    bottom: -15px;
    left: 50%;
    transform: translateX(-50%);
    width: 60px;
    height: 3px;
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    border-radius: var(--border-radius-full);
    z-index: 1;
}

/* 左寄せバージョン */
.section-header--left {
    text-align: left;
}

/* 左寄せでのマージン調整のみ（text-alignは親から継承） */
.section-header--left .section-subtitle,
.section-header--left .section-title,
.section-header--left .section-description {
    margin-left: 0;
    margin-right: auto;
}

.section-header--left .section-subtitle {
    padding-left: 16px;
}

.section-header--left .section-title {
    padding-left: 16px;
    position: relative;
}

.section-header--left .section-title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: linear-gradient(to bottom, var(--primary-color), var(--secondary-color));
    border-radius: 2px;
}

.section-header--left .section-description {
    color: var(--text-secondary);
    line-height: var(--line-relaxed);
    max-width: 60ch;
    font-size: var(--size-lg);
    margin: 0;
}

/* コンパクトバージョン */
.section-header--compact {
    margin-bottom: var(--spacing-md);
}

.section-header--compact .section-title {
    font-size: var(--size-lg);
    margin-bottom: 0;
}

.section-header--compact .section-subtitle {
    display: none;
}

.section-header--compact .section-description {
    display: none;
}

/* ================================================================
   特徴・統計リストコンポーネント
   ================================================================ */

/* 特徴リスト（アイコン付き） */
.feature-list {
    list-style: none;
    padding: 0;
    margin: var(--spacing-md) 0;
}

.feature-list--compact {
    margin: var(--spacing-sm) 0;
}

.feature-list li {
    color: inherit;
    padding: calc(var(--spacing-xs) / 2) 0;
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    font-size: var(--size-sm);
}

.feature-list--normal li {
    padding: var(--spacing-xs) 0;
    gap: var(--spacing-sm);
    font-size: var(--size-base);
}

.feature-list li i {
    color: var(--accent-color);
    width: 18px;
    flex-shrink: 0;
}

.feature-list--normal li i {
    width: 20px;
}

/* 白テーマ用（暗い背景で使用） */
.feature-list--white li {
    color: rgba(255, 255, 255, 0.9);
}

.feature-list--white li i {
    color: var(--text-white);
}

/* ================================================================
   投稿・記事コンポーネント
   ================================================================ */

/* 投稿リスト */
.post-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
    margin: var(--spacing-xl) 0;
}

/* 投稿アイテム */
.post-item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-md);
    border-radius: var(--border-radius-md);
    background: var(--white);
    border: 1px solid var(--border-light);
    transition: var(--transition-base);
}

.post-item:hover {
    border-color: var(--primary-color);
    box-shadow: var(--shadow-sm);
}

/* 投稿日付 */
.post-date {
    color: var(--text-light);
    font-size: var(--size-sm);
    font-weight: var(--weight-medium);
    white-space: nowrap;
    flex-shrink: 0;
    min-width: 80px;
}

/* 投稿カテゴリ */
.post-category {
    display: inline-block;
    padding: calc(var(--spacing-xs) / 2) var(--spacing-xs);
    background: var(--primary-color);
    color: var(--text-white);
    font-size: var(--size-xs);
    font-weight: var(--weight-medium);
    border-radius: var(--border-radius-sm);
    white-space: nowrap;
    flex-shrink: 0;
}

/* カテゴリ色バリエーション */
.post-category--products {
    background: var(--accent-color);
}

.post-category--recruit {
    background: var(--success-green);
}

.post-category--achievements {
    background: var(--decorative-violet);
}

/* 投稿タイトル */
.post-title {
    font-size: var(--size-base);
    font-weight: var(--weight-medium);
    line-height: var(--line-tight);
    margin: 0;
    flex: 1;
}

.post-title a {
    color: var(--text-color);
    text-decoration: none;
    transition: var(--transition-base);
}

.post-title a:hover {
    color: var(--primary-color);
}

/* ================================================================
   選ばれる理由ページ専用コンポーネント
   ================================================================ */

/* ページヘッダーセクション */
.advantages-header-section {
    padding: var(--spacing-3xl) 0;
    text-align: center;
    background-color: var(--background-light);
}

.advantages-header-content {
    max-width: 800px;
    margin: 0 auto;
}

.page-title-style {
    margin: var(--spacing-md) 0;
    color: var(--text-color);
}

.page-description {
    font-size: var(--size-lg);
    color: var(--text-light);
    margin-bottom: 0;
}

/* 概要セクション */
.advantages-overview-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--spacing-xl);
    margin-top: var(--spacing-xl);
}

.feature-card--advantage {
    border-left: 4px solid var(--primary-color);
    transition: var(--transition-base);
}

.feature-card--advantage:hover {
    border-left-color: var(--accent-color);
    transform: translateY(-4px);
}

.feature-card__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background-color: var(--primary-color);
    color: var(--text-white);
    font-weight: var(--weight-bold);
    border-radius: 50%;
    font-size: var(--size-lg);
}

.feature-card__header {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.feature-card__icon {
    color: var(--primary-color);
    font-size: var(--size-2xl);
}

.feature-card__action {
    color: var(--primary-color);
    text-decoration: none;
    font-weight: var(--weight-semibold);
    transition: var(--transition-base);
}

.feature-card__action:hover {
    color: var(--accent-color);
}

/* 理由詳細セクション */
.reason-detail-section {
    padding: var(--spacing-3xl) 0;
    position: relative;
}

.reason-detail-section {
    margin-top: var(--spacing-xl);
}

.reason-detail-content {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xl);
    margin-bottom: var(--spacing-xl);
}

/* 数字＋タイトルヘッダーブロック（横並び、左揃え） */
.reason-header {
    display: flex;
    align-items: center;
    justify-content: flex-start;
    gap: var(--spacing-lg);
}

.reason-number-large {
    font-size: 6rem;
    font-weight: var(--weight-black);
    color: var(--primary-color-light);
    line-height: 1;
    opacity: 0.3;
    flex-shrink: 0;
}

.reason-title {
    font-size: var(--size-4xl);
    color: var(--primary-color);
    margin: 0;
}

/* テキスト＋画像ボディブロック */
.reason-body {
    flex: 1;
}

.reason-intro {
    margin-top: var(--spacing-md);
    margin-bottom: 0;
}

/* テキスト・画像2カラムレイアウト */
.reason-text-image-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--spacing-xl);
    align-items: start;
}

.reason-text {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

/* シンプルな付箋風ハイライトセクション */
.reason-highlight {
    background: rgba(51, 102, 153, 0.05);
    border-left: 4px solid var(--primary-color-light);
    border-radius: var(--border-radius-md);
    padding: var(--spacing-lg);
    margin: var(--spacing-sm) 0;
}

.reason-highlight h3 {
    margin-top: 0;
    margin-bottom: var(--spacing-sm);
    font-weight: var(--weight-bold);
    font-size: var(--size-xl);
    color: var(--primary-color-dark);
}

.reason-commitment h3 {
    color: var(--accent-color);
    font-size: var(--size-xl);
    margin-bottom: var(--spacing-sm);
}

.reason-motto {
    font-weight: var(--weight-semibold);
    color: var(--accent-color);
}

/* 画像プレースホルダー */
.reason-image {
    background-color: var(--background-light);
    border-radius: var(--border-radius-lg);
    padding: var(--spacing-xl);
    text-align: center;
    min-height: 200px;
    display: flex;
    flex-direction: column;
    justify-content: center;
}

.image-placeholder i {
    font-size: var(--size-4xl);
    color: var(--primary-color-light);
    margin-bottom: var(--spacing-sm);
}

.image-placeholder p {
    color: var(--text-light);
    font-weight: var(--weight-semibold);
}

/* 技術紹介セクション */
.technology-intro-section {
    padding: var(--spacing-2xl) 0;
}

.technology-intro-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--spacing-lg);
    text-align: center;
}

.technology-text {
    max-width: 800px;
}

.technology-cta {
    margin-top: var(--spacing-md);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .reason-header {
        justify-content: flex-start;
        gap: var(--spacing-md);
    }
    
    .reason-number-large {
        font-size: 4rem;
    }
    
    .reason-title {
        font-size: var(--size-3xl);
    }
    
    .reason-text-image-layout {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    
    .reason-image {
        order: -1;
        min-height: 150px;
    }
    
    .advantages-header-content {
        padding: 0 var(--spacing-md);
    }
    
    .page-description {
        font-size: var(--size-base);
    }
}

/* ================================================================
   ナビゲーションコンポーネント
   ================================================================ */

.nav-menu {
    display: flex;
    gap: var(--spacing-md);
    padding: var(--spacing-md);
    background: var(--white);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-sm);
}

.nav-link {
    padding: var(--spacing-sm) var(--spacing-md);
    color: var(--text-color);
    text-decoration: none;
    border-radius: var(--border-radius-md);
    transition: var(--transition-base);
    font-weight: var(--weight-medium);
}

.nav-link:hover {
    background: var(--background-light);
    color: var(--primary-color);
}

.nav-link.active {
    background: var(--primary-color);
    color: var(--text-white);
}

/* 技術ナビゲーション */
.tech-nav {
    display: flex;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-xl);
}

.tech-nav-item {
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--background-light);
    border: 2px solid var(--border-color);
    border-radius: var(--border-radius-md);
    color: var(--text-color);
    text-decoration: none;
    transition: var(--transition-base);
    font-weight: var(--weight-medium);
}

.tech-nav-item:hover {
    background: var(--primary-color);
    color: var(--text-white);
    border-color: var(--primary-color);
    transform: translateY(-2px);
}

.tech-nav-item.active {
    background: var(--primary-color);
    color: var(--text-white);
    border-color: var(--primary-color);
}

/* ================================================================
   ヒーローコンポーネント
   ================================================================ */


.page-title-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('../images/hero-pattern.svg') repeat;
    opacity: 0.08;
    z-index: 1;
}


.page-title-section__content {
    position: relative;
    z-index: 2;
    max-width: 800px;
    margin: 0 auto;
    padding: 0 var(--container-padding);
    text-align: center;
}

.page-title-section__title {
    font-size: clamp(var(--size-3xl), 4vw, var(--size-4xl));
    font-weight: var(--weight-bold);
    font-family: var(--font-family-heading);
    line-height: var(--line-tight);
    margin-bottom: var(--spacing-md);
}

.page-title-section__subtitle {
    font-size: clamp(var(--size-lg), 2vw, var(--size-xl));
    opacity: 0.95;
    font-weight: var(--weight-medium);
    margin-bottom: var(--spacing-md);
}

.page-title-section__description {
    font-size: var(--size-base);
    line-height: var(--line-relaxed);
    opacity: 0.9;
    margin-bottom: var(--spacing-lg);
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
}

.page-title-section__catchphrase {
    font-size: var(--size-lg);
    font-weight: var(--weight-medium);
    color: var(--primary-color);
    opacity: 0.9;
    margin-bottom: var(--spacing-lg);
    font-style: italic;
}

.page-title-section__actions {
    margin-top: var(--spacing-xl);
    display: flex;
    gap: var(--spacing-md);
    justify-content: center;
    flex-wrap: wrap;
}

.page-title-section__anchors {
    margin-top: var(--spacing-lg);
    display: flex;
    gap: var(--spacing-md);
    justify-content: center;
    flex-wrap: wrap;
}

/* プライマリカラー背景版アンカーリンク */
.page-title-section__anchors .anchor-link {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-sm) var(--spacing-md);
    background: var(--primary-color);
    color: var(--text-white);
    border: 2px solid var(--primary-color);
    border-radius: var(--border-radius-sm);
    box-shadow: 0 2px 6px rgba(var(--primary-color-rgb), 0.3);
    text-decoration: none;
    font-size: var(--size-sm);
    font-weight: var(--weight-medium);
    transition: var(--transition-base);
}

.page-title-section__anchors .anchor-link:hover {
    background: var(--white);
    color: var(--primary-color);
}

/* ページタイトルセクション - リッチ版 */
.page-title-section--rich {
    padding: 0; /* 全幅レイアウトのためパディング削除 */
    position: relative; /* 疑似要素の絶対配置に必要 */
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    min-height: 400px; /* 最低高さ確保 */
}

/* リッチ版全体への黒透明オーバーレイ（視認性向上） */
.page-title-section--rich::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.1);
    z-index: 2; /* 画像の上、テキストの下に配置 */
    pointer-events: none;
}

.page-title-section--rich .page-title-section__content {
    width: 100%; /* 全幅 */
    max-width: none;
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    min-height: 400px;
    padding: var(--spacing-2xl) 0;
}


/* テキストエリア - 60%幅でブロック配置 */
.page-title-section--rich .page-title-section__text {
    width: 60%;
    position: relative;
    z-index: 3; /* オーバーレイの上に配置 */
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start; /* ブロックを左配置 */
    padding: var(--spacing-xl);
}

/* テキストコンテンツブロック（存在する場合） */
.page-title-section--rich .text-content-block {
    text-align: left; /* ブロック内で左揃え */
    width: 100%;
    max-width: 500px; /* 読みやすい幅に制限 */
}

/* テキストコンテンツブロックがない場合の直接コンテンツ */
.page-title-section--rich .page-title-section__title,
.page-title-section--rich .page-title-section__subtitle,
.page-title-section--rich .page-title-section__description {
    text-align: left;
}

.page-title-section--rich .page-title-section__title {
    font-size: clamp(var(--size-6xl), 7vw, var(--size-7xl));
    margin-bottom: var(--spacing-md);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    font-family: var(--font-family-heading);
    letter-spacing: -0.02em;
    color: var(--text-white);
}

.page-title-section--rich .page-title-section__subtitle {
    font-size: clamp(var(--size-lg), 2vw, var(--size-xl));
    margin-bottom: var(--spacing-lg);
    font-weight: var(--weight-semibold);
    color: rgba(255, 255, 255, 0.95);
}

.page-title-section--rich .page-title-section__description {
    font-size: var(--size-lg);
    margin-bottom: var(--spacing-2xl);
    line-height: var(--line-relaxed);
    color: rgba(255, 255, 255, 0.9);
}

.page-title-section--rich .page-title-section__actions {
    gap: var(--spacing-lg);
    justify-content: flex-start;
}

/* 画像エリア - 40%幅で背景境界一致 */
.page-title-section--rich .page-title-section__image {
    position: absolute;
    top: 0;    /* 背景上端一致 */
    right: 0;  /* 背景右端一致 */
    bottom: 0; /* 背景下端一致 */
    width: 40%; /* テキスト60%と合わせて */
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    /* 背景への自然な溶け込み効果 */
    mask-image: linear-gradient(to right, 
        transparent 0%, 
        rgba(0, 0, 0, 0.005) 3%, 
        rgba(0, 0, 0, 0.02) 6%, 
        rgba(0, 0, 0, 0.06) 9%, 
        rgba(0, 0, 0, 0.12) 12%, 
        rgba(0, 0, 0, 0.22) 15%, 
        rgba(0, 0, 0, 0.35) 17%, 
        rgba(0, 0, 0, 0.45) 19%, 
        rgba(0, 0, 0, 0.54) 21%, 
        rgba(0, 0, 0, 0.59) 23%, 
        rgba(0, 0, 0, 0.61) 25%, 
        rgba(0, 0, 0, 0.6) 28%, 
        rgba(0, 0, 0, 0.6) 100%);
    -webkit-mask-image: linear-gradient(to right, 
        transparent 0%, 
        rgba(0, 0, 0, 0.005) 3%, 
        rgba(0, 0, 0, 0.02) 6%, 
        rgba(0, 0, 0, 0.06) 9%, 
        rgba(0, 0, 0, 0.12) 12%, 
        rgba(0, 0, 0, 0.22) 15%, 
        rgba(0, 0, 0, 0.35) 17%, 
        rgba(0, 0, 0, 0.45) 19%, 
        rgba(0, 0, 0, 0.54) 21%, 
        rgba(0, 0, 0, 0.59) 23%, 
        rgba(0, 0, 0, 0.61) 25%, 
        rgba(0, 0, 0, 0.6) 28%, 
        rgba(0, 0, 0, 0.6) 100%);
}

/* 実際の画像用スタイル */
.page-title-section--rich .page-title-section__image img {
    width: 100%;
    height: 100%;
    object-fit: cover; /* アスペクト比維持で切り取り */
    position: relative;
    z-index: 1;
}

/* 画像の白オーバーレイ削除 - 黒オーバーレイで主張を抑制 */

/* プレースホルダー（カタログ表示用）*/
.page-title-section--rich .image-placeholder {
    width: 100%;
    height: 100%;
    background: rgba(255, 255, 255, 0.1);
    border: 2px dashed rgba(255, 255, 255, 0.3);
    border-radius: var(--border-radius-lg);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: rgba(255, 255, 255, 0.7);
    transition: var(--transition-base);
    position: relative;
    z-index: 1;
}

.page-title-section--rich .image-placeholder:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.5);
}

.page-title-section--rich .image-placeholder i {
    font-size: var(--size-3xl);
    margin-bottom: var(--spacing-md);
    opacity: 0.6;
}

.page-title-section--rich .image-placeholder p {
    font-size: var(--size-sm);
    text-align: center;
    margin: 0;
    opacity: 0.8;
}


/* ウォータージェット技術概要セクション */
.waterjet-overview-section .grid {
    align-items: flex-start;
    gap: var(--spacing-2xl);
    grid-template-columns: 2fr 1fr; /* 左カラム2倍、右カラム1倍 */
}

.waterjet-overview-section .overview-text {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

.waterjet-overview-section .tech-description p {
    font-size: var(--size-lg);
    line-height: var(--line-relaxed);
    margin-bottom: var(--spacing-xl);
    color: var(--text-color);
}

.waterjet-overview-section .tech-specs {
    margin-top: var(--spacing-lg);
    gap: var(--spacing-sm); /* カード間の余白を狭める */
    grid-template-columns: repeat(3, 1fr); /* 3列等幅グリッド */
}

/* 技術スペック専用カードスタイル */
.waterjet-overview-section .tech-specs .stat-card {
    min-height: 140px;
    width: auto; /* 幅をautoにしてグリッドに委ねる */
    min-width: 0; /* flexアイテムの最小幅をリセット */
    display: flex;
    flex-direction: column;
    justify-content: center; /* 中央配置に変更 */
    gap: 0.375rem; /* 要素間に適度な統一間隔 */
    text-align: center;
    padding: var(--spacing-sm) var(--spacing-xs); /* パディング調整 */
}

.waterjet-overview-section .tech-specs .stat-card__label {
    order: 1;
    font-size: var(--size-base); /* 1段階アップ */
    font-weight: var(--weight-bold); /* 太文字に変更 */
    color: var(--text-light);
    margin: 0; /* gapで制御するためmarginリセット */
}

.waterjet-overview-section .tech-specs .stat-card__value {
    order: 2;
    font-size: var(--size-3xl); /* 1段階アップ */
    font-weight: var(--weight-black);
    color: var(--primary-color);
    line-height: 1.1;
    margin: 0; /* gapで制御するためmarginリセット */
    word-break: break-word; /* 長いテキストを折り返し */
}

.waterjet-overview-section .tech-specs .stat-card__description {
    order: 3;
    font-size: var(--size-sm); /* 1段階アップ */
    color: var(--text-light);
    margin: 0; /* gapで制御するためmarginリセット */
    line-height: var(--line-tight);
    word-break: break-word; /* 長いテキストを折り返し */
}

.waterjet-overview-section .overview-image {
    display: flex;
    align-items: flex-start;
    justify-content: center;
    margin-top: var(--spacing-lg); /* テキストとの位置合わせ */
}

.waterjet-overview-section .overview-image img {
    width: 100%;
    max-width: 400px; /* 画像の最大幅を制限 */
    height: auto;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-lg);
    transition: var(--transition-base);
}

.waterjet-overview-section .overview-image img:hover {
    transform: scale(1.02);
    box-shadow: var(--shadow-xl);
}

/* ================================================================
   データテーブル コンポーネント
   ================================================================ */

/* データテーブル基本スタイル */
.data-table-wrapper {
    overflow-x: auto;
    margin: var(--spacing-lg) 0;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-md);
}

.data-table {
    width: 100%;
    border-collapse: collapse;
    background: var(--white);
    font-size: var(--size-sm);
    line-height: var(--line-base);
}

.data-table th,
.data-table td {
    padding: var(--spacing-md);
    text-align: center;
    border-bottom: 1px solid var(--border-light);
    vertical-align: middle;
}

.data-table th {
    background: var(--background-light);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
    font-size: var(--size-sm);
    text-transform: uppercase;
    letter-spacing: 0.02em;
    position: sticky;
    top: 0;
    z-index: 10;
}

/* ヘッダー特殊スタイル */
.data-table__header--primary {
    background: var(--primary-color);
    color: var(--text-white);
}

.data-table__header--method {
    background: var(--background-light);
    color: var(--text-color);
    text-align: left;
}


/* 基準列（左端列） */
.data-table__criteria {
    text-align: left;
    background: var(--background-light);
    font-weight: var(--weight-medium);
    color: var(--text-color);
}

/* ホバー効果 */
.data-table tbody tr:hover {
    background: rgba(var(--primary-color-rgb), 0.02);
}

.data-table tbody tr:hover td {
    background: var(--background-light);
}

/* ウォータージェット比較表専用 - 加工法別背景色 */
/* データセル（薄い背景） */
.waterjet-page .data-table td:nth-child(2) {
    background: rgba(30, 144, 255, 0.08); /* ウォータージェット - 青系統 */
}

.waterjet-page .data-table td:nth-child(3) {
    background: rgba(198, 26, 26, 0.08); /* レーザー加工 - 赤系統 */
}

.waterjet-page .data-table td:nth-child(4) {
    background: rgba(124, 58, 237, 0.08); /* プラズマ加工 - 紫系統 */
}

.waterjet-page .data-table td:nth-child(5) {
    background: rgba(245, 158, 11, 0.08); /* 機械加工 - 黄色系統 */
}

/* ヘッダーセル（濃い背景） */
.waterjet-page .data-table th:nth-child(2) {
    background: rgba(30, 144, 255, 0.18); /* ウォータージェット - 濃い青 */
}

.waterjet-page .data-table th:nth-child(3) {
    background: rgba(198, 26, 26, 0.18); /* レーザー加工 - 濃い赤 */
}

.waterjet-page .data-table th:nth-child(4) {
    background: rgba(124, 58, 237, 0.18); /* プラズマ加工 - 濃い紫 */
}

.waterjet-page .data-table th:nth-child(5) {
    background: rgba(245, 158, 11, 0.18); /* 機械加工 - 濃い黄 */
}

/* ホバー時は各加工法の色をそのまま濃くしてピックアップ */
.waterjet-page .data-table tbody tr:hover td:nth-child(2) {
    background: rgba(30, 144, 255, 0.15) !important; /* ウォータージェット - ホバー時 */
}

.waterjet-page .data-table tbody tr:hover td:nth-child(3) {
    background: rgba(198, 26, 26, 0.15) !important; /* レーザー加工 - ホバー時 */
}

.waterjet-page .data-table tbody tr:hover td:nth-child(4) {
    background: rgba(124, 58, 237, 0.15) !important; /* プラズマ加工 - ホバー時 */
}

.waterjet-page .data-table tbody tr:hover td:nth-child(5) {
    background: rgba(245, 158, 11, 0.15) !important; /* 機械加工 - ホバー時 */
}

/* 基準列（1列目）も一緒にピックアップ */
.waterjet-page .data-table tbody tr:hover td:nth-child(1) {
    background: rgba(0, 0, 0, 0.08) !important;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .data-table-wrapper {
        margin: var(--spacing-md) -var(--spacing-md);
    }
    
    .data-table th,
    .data-table td {
        padding: var(--spacing-sm);
        font-size: var(--size-xs);
    }
    
    .data-table th {
        font-size: var(--size-xs);
    }
}

/* 比較まとめコンポーネント */
.comparison-summary {
    margin-top: var(--spacing-xl);
}

.summary-item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: var(--white);
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-sm);
}

.summary-icon {
    flex-shrink: 0;
    width: 3rem;
    height: 3rem;
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--success-green);
    font-size: var(--size-xl);
}

.summary-content h4 {
    margin: 0 0 var(--spacing-sm) 0;
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
}

.summary-content p {
    margin: 0;
    font-size: var(--size-base);
    color: var(--accent-color);
    line-height: var(--line-readable);
}

/* 材料カードコンポーネント */
.materials-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-2xl);
    align-items: start;
}

.material-category {
    text-align: center;
}

.material-category h3 {
    font-size: var(--size-2xl);
    font-weight: var(--weight-semibold);
    color: var(--primary-color);
    margin-bottom: var(--spacing-lg);
    position: relative;
}


.material-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(120px, 1fr));
    gap: var(--spacing-md);
    margin: 0 auto;
}

.material-card {
    position: relative;
    height: 100px;
    border-radius: var(--border-radius-lg);
    overflow: hidden;
    background: linear-gradient(135deg, var(--background-light) 0%, var(--white) 100%);
    border: 2px solid rgba(var(--primary-color-rgb), 0.1);
}

.material-card__background {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    opacity: 0.2;
    transition: opacity var(--transition-base);
}

.material-card__content {
    position: relative;
    z-index: 2;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-sm);
    background: rgba(255, 255, 255, 0.8);
    transition: all var(--transition-base);
}

.material-card__name {
    font-size: var(--size-sm);
    font-weight: var(--weight-medium);
    color: var(--text-color);
    text-align: center;
    line-height: var(--line-tight);
}


/* レスポンシブ対応 */
@media (max-width: 768px) {
    .materials-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-xl);
    }

    .material-cards {
        grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
        gap: var(--spacing-sm);
    }
    
    .material-card {
        height: 80px;
    }
    
    .material-card__name {
        font-size: var(--size-xs);
    }
}

/* 実績セクション - コンパクトスタッツ */
.achievements-stats {
    display: flex;
    justify-content: center;
    gap: var(--spacing-lg);
    margin-bottom: var(--spacing-3xl);
    padding: var(--spacing-lg) 0;
    background: rgba(var(--primary-color-rgb), 0.03);
    border-radius: var(--border-radius-lg);
}

.stat-card--compact {
    min-height: 80px;
    padding: var(--spacing-md);
    text-align: center;
    background: transparent;
    border: none;
    box-shadow: none;
}

.stat-card--compact .stat-card__value {
    font-size: var(--size-2xl);
    font-weight: var(--weight-bold);
    color: var(--primary-color);
    margin-bottom: var(--spacing-xs);
}

.stat-card--compact .stat-card__label {
    font-size: var(--size-sm);
    color: var(--text-secondary);
    font-weight: var(--weight-medium);
}

/* 加工事例エリア拡大 */
.case-studies {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--spacing-xl);
    max-width: 1000px;
    margin: 0 auto;
}

.case-study-item {
    display: flex;
    gap: var(--spacing-lg);
    padding: var(--spacing-xl);
    background: linear-gradient(135deg, var(--white) 0%, var(--background-light) 100%);
    border-radius: var(--border-radius-xl);
    border-left: 6px solid var(--primary-color);
    box-shadow: var(--shadow-lg);
    transition: all var(--transition-base);
}

.case-study-item:nth-child(even) {
    border-left-color: var(--accent-color);
}

.case-study-item:nth-child(3n) {
    border-left-color: var(--secondary-color);
}

.case-study-icon {
    flex-shrink: 0;
    width: 80px;
    height: 80px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    border-radius: var(--border-radius-full);
    color: var(--white);
    font-size: var(--size-2xl);
}

.case-study-content {
    flex: 1;
}

.case-study-content h4 {
    font-size: var(--size-xl);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
    margin-bottom: var(--spacing-sm);
}

.case-study-challenge {
    font-size: var(--size-base);
    color: var(--text-light);
    margin-bottom: var(--spacing-md);
    font-style: italic;
}

.case-study-solution {
    font-size: var(--size-base);
    color: var(--text-color);
    margin-bottom: var(--spacing-lg);
    line-height: var(--line-readable);
}

.solution-label {
    font-weight: var(--weight-semibold);
    color: var(--primary-color);
}

.case-study-results {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-md);
}

.result-item {
    padding: var(--spacing-sm) var(--spacing-md);
    background: rgba(var(--success-green), 0.1);
    border-radius: var(--border-radius-full);
    font-size: var(--size-sm);
    color: var(--text-color);
    border: 1px solid rgba(var(--success-green), 0.2);
}

.result-item strong {
    color: var(--success-green);
    font-weight: var(--weight-bold);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .achievements-stats {
        flex-wrap: wrap;
        gap: var(--spacing-md);
    }
    
    .stat-card--compact {
        min-width: 120px;
    }
    
    .case-study-item {
        flex-direction: column;
        text-align: center;
        gap: var(--spacing-md);
        padding: var(--spacing-lg);
    }
    
    .case-study-icon {
        align-self: center;
        width: 60px;
        height: 60px;
        font-size: var(--size-xl);
    }
    
    .case-study-results {
        justify-content: center;
    }
}

/* 技術仕様・料金カード */
.feature-card--spec,
.feature-card--pricing {
    background: var(--white);
    border: 2px solid rgba(var(--primary-color-rgb), 0.1);
    border-radius: var(--border-radius-lg);
    overflow: hidden;
    text-align: left;
}

.feature-card--spec .feature-card__header,
.feature-card--pricing .feature-card__header {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    color: var(--white);
}

.feature-card--spec .feature-card__icon,
.feature-card--pricing .feature-card__icon {
    flex-shrink: 0;
    font-size: var(--size-xl);
}

.feature-card--spec .feature-card__title,
.feature-card--pricing .feature-card__title {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    margin: 0;
}

.feature-card--spec .feature-card__body,
.feature-card--pricing .feature-card__body {
    padding: var(--spacing-xl);
}

/* 技術仕様テーブル */
.specs-table {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.spec-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md);
    background: var(--background-light);
    border-radius: var(--border-radius-md);
    transition: all var(--transition-fast);
}

.spec-row:hover {
    background: rgba(var(--primary-color-rgb), 0.05);
}

.spec-label {
    font-weight: var(--weight-medium);
    color: var(--text-color);
    font-size: var(--size-sm);
}

.spec-value {
    font-weight: var(--weight-semibold);
    color: var(--primary-color);
    font-size: var(--size-sm);
}

/* 料金情報 */
.pricing-formula {
    margin-bottom: var(--spacing-xl);
}

.pricing-formula h4,
.leadtime-info h4 {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
    margin-bottom: var(--spacing-md);
}

.formula-display {
    padding: var(--spacing-lg);
    background: linear-gradient(135deg, var(--accent-color), var(--accent-color-light));
    border-radius: var(--border-radius-md);
    text-align: center;
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--white);
}

.leadtime-info {
    margin-bottom: var(--spacing-xl);
}

.leadtime-list {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.leadtime-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-md);
    background: var(--background-light);
    border-radius: var(--border-radius-md);
}

.leadtime-item.urgent {
    background: rgba(var(--accent-color), 0.1);
    border: 1px solid rgba(var(--accent-color), 0.2);
}

.leadtime-type {
    font-weight: var(--weight-medium);
    color: var(--text-color);
    font-size: var(--size-sm);
}

.leadtime-period {
    font-weight: var(--weight-semibold);
    color: var(--primary-color);
    font-size: var(--size-sm);
}

.leadtime-item.urgent .leadtime-period {
    color: var(--accent-color);
}

.pricing-note {
    padding: var(--spacing-md);
    background: rgba(var(--warning-yellow), 0.1);
    border-radius: var(--border-radius-md);
    border-left: 4px solid var(--warning-yellow);
}

.pricing-note p {
    font-size: var(--size-xs);
    color: var(--text-light);
    margin: var(--spacing-xs) 0;
    line-height: var(--line-base);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .spec-row,
    .leadtime-item {
        flex-direction: column;
        gap: var(--spacing-xs);
        text-align: center;
    }
    
    .feature-card--spec .feature-card__header,
    .feature-card--pricing .feature-card__header {
        text-align: center;
        justify-content: center;
    }
}

/* 加工事例誘導セクション - bg-right-extend使用 */
.examples-cta-section {
    padding: var(--spacing-3xl) 0;
    color: var(--white);
}

.examples-cta-section .container {
    color: var(--white);
}

.examples-cta-content {
    text-align: left;
}

.examples-cta-content h2 {
    font-size: var(--size-4xl);
    font-weight: var(--weight-bold);
    color: var(--white);
    margin-bottom: var(--spacing-lg);
    line-height: var(--line-tight);
}

.examples-cta-content p {
    font-size: var(--size-lg);
    color: rgba(255, 255, 255, 0.9);
    line-height: var(--line-readable);
    margin-bottom: var(--spacing-xl);
}

.examples-cta-button {
    margin-top: var(--spacing-xl);
}

/* 白ボタンスタイル */
.btn-white {
    background: var(--white);
    color: var(--primary-color);
    border: 2px solid var(--white);
    font-weight: var(--weight-semibold);
    transition: all var(--transition-base);
}

.btn-white:hover {
    background: transparent;
    color: var(--white);
    border-color: var(--white);
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(255, 255, 255, 0.2);
}

/* bg-right-extend使用時の背景色上書きを削除 - デフォルトプライマリカラーを使用 */

/* 加工事例誘導セクション - セクションヘッダーの文字色調整 */
.examples-cta-section.bg-right-extend .section-title {
    color: var(--text-white);
}

.examples-cta-section.bg-right-extend .section-subtitle {
    color: var(--secondary-color);
}

.examples-cta-section.bg-right-extend .section-description {
    color: var(--text-white);
}

/* ================================================================
   アクセシビリティ：フォーカス状態
   ================================================================ */

/* ボタンのフォーカス状態 */
.btn-accent-slide:focus,
.btn-contact:focus,
.btn-contact-slide:focus {
    outline: 2px solid var(--accent-color);
    outline-offset: 2px;
    box-shadow: 0 0 0 4px rgba(255, 177, 66, 0.2);
}

.btn-contact:focus,
.btn-contact-slide:focus {
    outline-color: var(--contact-red);
    box-shadow: 0 0 0 4px rgba(198, 26, 26, 0.2);
}

/* 画像のフォーカス状態 */
.sample-image-item:focus-within {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
    transform: translateY(-2px);
}

/* ================================================================
   bg-right-extend 汎用カラムレイアウト（CSS変数制御）
   ================================================================ */

/**
 * Examples CTA Section with bg-right-extend
 * 
 * レイアウト: 2:3カラム比率（40%テキスト, 60%画像）
 * 背景: 80vw右側差し込みプライマリカラー
 * レスポンシブ: タブレット/モバイルで標準レイアウトに切替
 * 
 * 使用例:
 * <section class="examples-cta-section bg-right-extend">
 *   <div class="container">
 *     <div class="examples-layout">
 *       <div class="examples-text-content">...</div>
 *       <div class="examples-images">...</div>
 *     </div>
 *   </div>
 * </section>
 */
.examples-cta-section.bg-right-extend .container {
    max-width: 80vw; /* 差し込み背景の幅をフル活用 */
    width: 80vw;
}

.examples-layout {
    display: flex;
    align-items: center;
    gap: var(--spacing-lg);
}

.examples-text-content {
    flex: 2; /* 40% */
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xl);
    padding-left: var(--spacing-lg);
}

.examples-images {
    flex: 3; /* 60% */
    padding-right: var(--spacing-lg);
}

/* spacer削除済み - bg-right-extend標準方式使用 */

/* 削除済み - 上記で新定義 */

/* 削除済み - 上記で新定義 */

/* サンプル画像グリッド - 3つ横並び */
.sample-images-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-lg);
}

.sample-image-item {
    position: relative;
    border-radius: var(--border-radius-lg);
    overflow: hidden;
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.15);
    transition: var(--transition-base);
    aspect-ratio: 4/3; /* 横長の統一比率 */
}

.sample-image-item img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: var(--transition-base);
}

.sample-image-item:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 35px rgba(0, 0, 0, 0.2);
}

.sample-image-item:hover img {
    transform: scale(1.05);
}

/* レスポンシブ対応 */
@media (max-width: 992px) {
    /* タブレット: 標準レイアウトに戻す */
    .examples-cta-section .container {
        margin-left: auto;
        margin-right: auto;
        max-width: var(--container-base);
        padding: 0 var(--container-padding);
    }
    
    .examples-layout {
        grid-template-columns: 1fr;
        gap: var(--spacing-xl);
        text-align: center;
    }
    
    .examples-spacer {
        display: none; /* 左余白を非表示 */
    }
    
    .examples-text-content .section-header {
        text-align: center;
    }
    
    .sample-images-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: var(--spacing-md);
    }
}

@media (max-width: 768px) {
    .examples-cta-section {
        padding: var(--spacing-xl) 0;
    }
    
    /* モバイル: 標準レイアウト維持 */
    .examples-cta-section .container {
        margin-left: auto;
        margin-right: auto;
        max-width: var(--container-base);
        padding: 0 var(--container-padding);
    }
    
    .examples-layout {
        gap: var(--spacing-lg);
    }
    
    .examples-spacer {
        display: none; /* 左余白を非表示 */
    }
    
    .sample-images-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
        max-width: 300px;
        margin: 0 auto;
    }
}

/* ページタイトルセクション - フロントページ特別版 */
/* スライダー背景 + プライマリーメタリックオーバーレイ */
.page-title-section--front {
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    background: transparent; /* 背景削除、スライダーが背景になる */
    position: relative;
}

/* 親の白メタリックオーバーレイを無効化 */
.page-title-section--front::after {
    display: none;
}

/* プライマリーメタリックオーバーレイに置き換え */
.page-title-section--front::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(51, 102, 153, 0.4) !important;
    z-index: 10 !important;
    pointer-events: none;
    display: block !important;
}

/* HTML要素でのプライマリーオーバーレイ */
.page-title-section--front .front-primary-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(51, 102, 153, 0.4);
    z-index: 10;
    pointer-events: none;
}

/* 追加の暗化オーバーレイ（文字視認性向上） */
.page-title-section--front .front-dark-overlay {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.35);
    z-index: 15;
    pointer-events: none;
}

/* フロントページ用スライダー */
.page-title-section--front .front-page-slideshow {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    z-index: 0;
}

.page-title-section--front .front-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: center;
    opacity: 0;
    transform: scale(1.1);
    transition: opacity 2s ease-in-out, transform 8s ease-in-out;
}

.page-title-section--front .front-slide.active {
    opacity: 1;
    transform: scale(1);
}

/* コンテンツをオーバーレイの上に表示 */
.page-title-section--front .page-title-section__content {
    position: relative;
    z-index: 20;
    max-width: 1200px;
}

.page-title-section--front .page-title-section__title {
    font-size: clamp(var(--size-3xl), 5vw, var(--size-5xl));
    margin-bottom: var(--spacing-lg);
    color: var(--text-white);
    text-align: center;
}

/* フロントページ版タイトル要素の白文字設定 */
.page-title-section--front .title-line-main,
.page-title-section--front .title-line-highlight {
    color: var(--text-white);
}

.page-title-section--front .page-title-section__subtitle {
    font-size: clamp(var(--size-lg), 3vw, var(--size-xl));
    margin-bottom: var(--spacing-2xl);
    color: var(--text-white);
}

.page-title-section--front .page-title-section__description {
    color: var(--text-white);
}

.page-title-section--front .page-title-section__actions {
    color: var(--text-white);
}

/* フロントページ専用タイトル要素 */
.title-line-main {
    display: block;
    font-size: 0.85em;
    margin-bottom: var(--spacing-sm);
    opacity: 0.9;
    font-weight: var(--weight-medium);
}

.title-line-highlight {
    display: inline-block;
    font-weight: var(--weight-bold);
    white-space: nowrap;
}

.emphasis-word-blue {
    color: #3b82f6;
    font-size: 1.2em;
    font-weight: var(--weight-black);
    text-shadow: 0 2px 8px rgba(59, 130, 246, 0.4);
}

.emphasis-word-orange {
    color: var(--accent-color);
    font-size: 1.2em;
    font-weight: var(--weight-black);
    text-shadow: 0 2px 8px rgba(255, 107, 53, 0.4);
}

.emphasis-particle {
    font-size: 1em;
    margin: 0 0.2em;
    font-weight: var(--weight-bold);
}

/* レガシー: 既存のヒーローセクション（後方互換性） */
.hero-section {
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    color: var(--text-white);
    padding: var(--spacing-3xl);
    border-radius: var(--border-radius-lg);
    text-align: center;
    position: relative;
    overflow: hidden;
}

.hero-modern {
    position: relative;
    min-height: 80vh;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: var(--text-white);
    overflow: hidden;
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
}

.hero-content {
    position: relative;
    z-index: 3;
}

.hero-title {
    font-size: var(--size-4xl);
    font-weight: var(--weight-black);
    margin-bottom: var(--spacing-sm);
    font-family: var(--font-family-heading);
}

.hero-subtitle {
    font-size: var(--size-xl);
    opacity: 0.9;
    margin-bottom: var(--spacing-lg);
}

.title-line-main {
    display: block;
    font-size: 0.85em;
    margin-bottom: 0.5rem;
    opacity: 0.9;
}

.title-line-highlight {
    display: block;
    font-weight: var(--weight-black);
}

.emphasis-word-blue {
    color: var(--info-blue);
    font-size: 1.5em;
    font-weight: var(--weight-black);
    text-shadow: 0 2px 8px rgba(77, 166, 255, 0.4);
}

.emphasis-word-orange {
    color: var(--accent-color-light);
    font-size: 1.5em;
    font-weight: var(--weight-black);
    text-shadow: 0 2px 8px rgba(255, 140, 66, 0.4);
}

.emphasis-particle {
    font-size: 1.2em;
    margin: 0 0.2em;
}

/* ================================================================
   フォームコンポーネント
   ================================================================ */

.form-group {
    margin-bottom: var(--spacing-md);
}

.form-label {
    display: block;
    margin-bottom: var(--spacing-xs);
    font-weight: var(--weight-medium);
    color: var(--text-color);
}

.form-input {
    width: 100%;
    padding: var(--spacing-sm);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    font-size: var(--size-base);
    transition: var(--transition-base);
    font-family: var(--font-family-base);
}

.form-input:focus {
    outline: none;
    border-color: var(--primary-color);
    box-shadow: 0 0 0 3px rgba(var(--primary-color-rgb), 0.1);
}

.form-textarea {
    resize: vertical;
    min-height: 120px;
}

/* ================================================================
   グリッドシステム
   ================================================================ */

.grid {
    display: grid;
    gap: var(--spacing-lg);
}

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

.grid-3 {
    grid-template-columns: repeat(3, 1fr);
}

.grid-4 {
    grid-template-columns: repeat(4, 1fr);
}

.grid-auto {
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
}

/* ================================================================
   UI要素
   ================================================================ */

.badge {
    display: inline-flex;
    align-items: center;
    padding: var(--spacing-xs) var(--spacing-sm);
    font-size: var(--size-xs);
    font-weight: var(--weight-semibold);
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    border-radius: var(--border-radius-full);
    white-space: nowrap;
}

.badge-primary {
    background-color: var(--primary-color);
    color: var(--text-white);
}

.badge-secondary {
    background-color: var(--secondary-color);
    color: var(--text-white);
}

.badge-accent {
    background-color: var(--accent-color);
    color: var(--text-white);
}

.badge-contact {
    background-color: var(--contact-red);
    color: var(--text-white);
}

/* ================================================================
   SDGsバッジコンポーネント
   ================================================================ */

.sdgs-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: var(--spacing-sm);
}

.sdgs-badge--enhanced {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-sm);
    margin-top: 0;
    width: 100%;
}

.sdgs-divider {
    height: 1px;
    background: var(--border-color);
    margin: var(--spacing-sm) 0;
    width: 100%;
}

.sdgs-info {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xs);
}

.sdgs-number {
    font-weight: var(--weight-bold);
    color: var(--primary-color);
    font-size: var(--size-sm);
    line-height: 1;
}

.sdgs-caption {
    font-size: var(--size-xs);
    color: var(--text-secondary);
    line-height: 1.2;
}

.sdgs-icon {
    margin-left: auto;
    flex-shrink: 0;
}

.sdgs-icon img {
    width: 36px;
    height: 36px;
    object-fit: contain;
    border-radius: var(--border-radius-sm);
}

/* ================================================================
   アイコンコンポーネント
   ================================================================ */

.icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1em;
    height: 1em;
    font-size: var(--size-base);
}

.icon-sm {
    font-size: var(--size-sm);
}

.icon-lg {
    font-size: var(--size-lg);
}

.icon-xl {
    font-size: var(--size-2xl);
}

.icon-2xl {
    font-size: var(--size-3xl);
}

.icon-3xl {
    font-size: var(--size-4xl);
}

/* ================================================================
   ローディング・インタラクティブ要素
   ================================================================ */

.spinner {
    display: inline-block;
    width: 20px;
    height: 20px;
    border: 2px solid var(--border-color);
    border-radius: var(--border-radius-full);
    border-top-color: var(--primary-color);
    animation: spin 1s ease-in-out infinite;
}

@keyframes spin {
    to {
        transform: rotate(360deg);
    }
}

/* アラートコンポーネント */
.alert {
    padding: var(--spacing-md);
    border-radius: var(--border-radius-md);
    border: 1px solid transparent;
    margin-bottom: var(--spacing-md);
}

.alert-info {
    background-color: rgba(var(--primary-color-rgb), 0.1);
    color: var(--primary-color);
    border-color: rgba(var(--primary-color-rgb), 0.3);
}

.alert-success {
    background-color: rgba(16, 185, 129, 0.1);
    color: #065f46;
    border-color: rgba(16, 185, 129, 0.3);
}

.alert-warning {
    background-color: rgba(245, 158, 11, 0.1);
    color: #92400e;
    border-color: rgba(245, 158, 11, 0.3);
}

.alert-error {
    background-color: rgba(198, 26, 26, 0.1);
    color: var(--contact-red);
    border-color: rgba(198, 26, 26, 0.3);
}

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

@media (max-width: 992px) {
    .grid-4 {
        grid-template-columns: repeat(2, 1fr);
    }
    
    .hero-title {
        font-size: var(--size-3xl);
    }
}

@media (max-width: 768px) {
    .btn {
        padding: var(--spacing-sm) var(--spacing-md);
        font-size: var(--size-sm);
    }
    
    .btn-lg {
        padding: var(--spacing-sm) var(--spacing-lg);
        font-size: var(--size-base);
    }
    
    .grid-2,
    .grid-3,
    .grid-4 {
        grid-template-columns: 1fr;
    }
    
    .nav-menu,
    .tech-nav {
        flex-direction: column;
        gap: var(--spacing-sm);
    }
    
    .hero-title {
        font-size: var(--size-2xl);
    }
    
    .section-title {
        font-size: var(--size-2xl);
    }
    
    /* ページタイトルセクションのレスポンシブ対応 */
    .page-title-section {
        padding: var(--spacing-2xl) 0;
    }
    
    .page-title-section--rich {
        padding: var(--spacing-3xl) 0;
        text-align: center;
    }
    
    .page-title-section--rich .page-title-section__content {
        grid-template-columns: 1fr;
        gap: var(--spacing-2xl);
    }
    
    .page-title-section--rich .page-title-section__image {
        height: 300px;
        order: -1;
    }
    
    .page-title-section--rich .page-title-section__actions {
        justify-content: center;
    }
    
    .page-title-section--front {
        min-height: 70vh;
    }
    
    .page-title-section__actions {
        flex-direction: column;
        align-items: center;
    }
    
    .page-title-section__actions .btn {
        width: 100%;
        max-width: 280px;
    }
    
}

@media (max-width: 480px) {
    .btn {
        width: 100%;
        justify-content: center;
    }
    
    .card-header,
    .card-body,
    .card-footer {
        padding: var(--spacing-md);
    }
    
    .hero-title {
        font-size: var(--size-xl);
    }
    
    .section-title {
        font-size: var(--size-xl);
    }
}

/* ================================================================
   サービス別カラーバリエーション
   ================================================================ */

/* ウォータージェット */
.stat-card--waterjet .stat-card__icon,
.feature-card--waterjet .feature-card__icon {
    background: var(--primary-color);
}

.feature-card--waterjet {
    border-top-color: var(--primary-color);
}

/* 断熱材 */
.stat-card--insulation .stat-card__icon,
.feature-card--insulation .feature-card__icon {
    background: var(--secondary-color);
}

.feature-card--insulation {
    border-top-color: var(--secondary-color);
}

/* 施工 */
.stat-card--construction .stat-card__icon,
.feature-card--construction .feature-card__icon {
    background: var(--accent-color);
}

.feature-card--construction {
    border-top-color: var(--accent-color);
}

/* ================================================================
   背景・レイアウトコンポーネント
   ================================================================ */

/* 削除: 古い右側差し込み背景定義 - 8851行目の新定義に統一 */

/* センター配置バリエーション（削除済み - 標準レイアウトを使用） */

/* 古いレスポンシブ対応コード削除 - 8824行目以降の統一定義に統合済み */

/* ================================================================
   ユーティリティクラス
   ================================================================ */

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

.mb-xs { margin-bottom: var(--spacing-xs); }
.mb-sm { margin-bottom: var(--spacing-sm); }
.mb-md { margin-bottom: var(--spacing-md); }
.mb-lg { margin-bottom: var(--spacing-lg); }
.mb-xl { margin-bottom: var(--spacing-xl); }

.mt-xs { margin-top: var(--spacing-xs); }
.mt-sm { margin-top: var(--spacing-sm); }
.mt-md { margin-top: var(--spacing-md); }
.mt-lg { margin-top: var(--spacing-lg); }
.mt-xl { margin-top: var(--spacing-xl); }

.p-xs { padding: var(--spacing-xs); }
.p-sm { padding: var(--spacing-sm); }
.p-md { padding: var(--spacing-md); }
.p-lg { padding: var(--spacing-lg); }
.p-xl { padding: var(--spacing-xl); }

.w-full { width: 100%; }
.h-full { height: 100%; }

.flex { display: flex; }
.flex-col { flex-direction: column; }
.items-center { align-items: center; }
.justify-center { justify-content: center; }
.justify-between { justify-content: space-between; }

.opacity-90 { opacity: 0.9; }
.opacity-80 { opacity: 0.8; }
.opacity-70 { opacity: 0.7; }
.opacity-60 { opacity: 0.6; }
.opacity-50 { opacity: 0.5; }

/* ========================================
   ページタイトルセクションコンポーネント
======================================== */

/* catalog-headerベースのページタイトルセクション */
.page-title-section {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    color: var(--text-white);
    padding: var(--spacing-3xl) 0;
    position: relative; /* 疑似要素の絶対配置に必要 */
    overflow: hidden;
}

.page-title-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: url('../images/pattern-overlay.svg') repeat;
    opacity: 0.1;
    z-index: 1;
}

.page-title-content {
    position: relative;
    z-index: 2;
    text-align: left;
}

.page-title {
    font-size: clamp(var(--size-6xl), 12vw, 8rem);
    font-weight: var(--weight-bold);
    margin-bottom: var(--spacing-lg);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    text-transform: uppercase;
    letter-spacing: -0.02em;
}

.page-subtitle {
    font-size: var(--size-xl);
    opacity: 0.9;
    font-weight: var(--weight-medium);
    margin-bottom: var(--spacing-md);
}

.page-description {
    font-size: var(--size-lg);
    opacity: 0.8;
    margin-bottom: var(--spacing-xl);
}

/* ナビゲーション共通レイアウト */
.page-navigation-container {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-lg);
    margin: var(--spacing-xl) 0;
    align-items: center;
}

/* ページ内アンカーナビゲーション（5つ） */
.page-anchor-nav {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
}

.anchor-btn {
    padding: var(--spacing-xs) var(--spacing-md);
    background: rgba(255, 255, 255, 0.1);
    color: var(--text-white);
    text-decoration: none;
    border-radius: var(--border-radius-full);
    font-size: var(--size-sm);
    font-weight: var(--weight-medium);
    transition: all 0.3s ease;
    border: 1px solid rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    position: relative;
}

.anchor-btn i {
    margin-right: var(--spacing-xs);
    opacity: 0.7;
    font-size: 0.9em;
}

.anchor-btn:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    color: var(--text-white);
    text-decoration: none;
}

/* ページリンクナビゲーション（2つ） */
.page-nav-links {
    display: flex;
    flex-wrap: wrap;
    gap: var(--spacing-sm);
}

.page-nav-btn {
    padding: var(--spacing-xs) var(--spacing-md);
    background: rgba(255, 255, 255, 0.1);
    color: var(--text-white);
    text-decoration: none;
    border-radius: var(--border-radius-md);
    font-size: var(--size-sm);
    font-weight: var(--weight-medium);
    transition: all 0.3s ease;
    border: 1px solid rgba(255, 255, 255, 0.2);
    backdrop-filter: blur(10px);
    position: relative;
}

.page-nav-btn:hover {
    background: rgba(255, 255, 255, 0.2);
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
    color: var(--text-white);
    text-decoration: none;
}

.page-nav-btn i {
    margin-left: var(--spacing-xs);
    opacity: 0.8;
    font-size: 0.9em;
}

/* ページヘッダー画像 */
.page-header-image {
    margin-top: var(--spacing-2xl);
    text-align: center;
}

.page-header-image img {
    width: 100%;
    max-width: 800px;
    height: auto;
    border-radius: var(--border-radius-lg);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .page-navigation-container {
        flex-direction: column;
        gap: var(--spacing-md);
    }
    
    .page-anchor-nav,
    .page-nav-links {
        justify-content: center;
        width: 100%;
    }
    
    .anchor-btn,
    .page-nav-btn {
        flex: 1;
        min-width: 100px;
        text-align: center;
    }
    
    .page-title {
        font-size: clamp(var(--size-5xl), 10vw, var(--size-6xl));
    }
}

/* ========================================
   ページタイトルセクション - ミニマル版
   カタログページ専用 - タイトル・サブタイトルのみ
======================================== */

.page-title-section--minimal {
    text-align: center;
}

.page-title-section--minimal .page-title-content {
    text-align: center;
}

.page-title-section--minimal .page-title {
    font-size: clamp(var(--size-3xl), 5vw, var(--size-4xl));
    margin-bottom: var(--spacing-md);
}

.page-title-section--minimal .page-subtitle {
    font-size: var(--size-xl);
    opacity: 0.9;
    font-weight: var(--weight-medium);
    margin-bottom: 0;
}

/* ミニマル版ではナビゲーション要素を非表示 */
.page-title-section--minimal .page-navigation-container,
.page-title-section--minimal .page-header-image {
    display: none;
}

/* カタログ用メタ情報 */
.page-title-section--minimal .catalog-meta {
    display: flex;
    justify-content: center;
    gap: var(--spacing-lg);
    font-size: var(--size-sm);
    color: rgba(255, 255, 255, 0.8);
    margin-top: var(--spacing-md);
}

@media (max-width: 768px) {
    .page-title-section--minimal .catalog-meta {
        flex-direction: column;
        gap: var(--spacing-sm);
        text-align: center;
    }
}

/* ========================================
   会社ページ用リッチ版カスタマイズ
======================================== */

/* 会社ページ専用：タイトルサイズを大きく */
.company-page .page-title-section--rich .page-title-section__title {
    font-size: clamp(var(--size-6xl), 12vw, 8rem); /* デフォルト版の大きなサイズ */
}

/* サブタイトルとタイトル間の余白縮小 */
.company-page .page-title-section--rich .page-title-section__subtitle {
    margin-bottom: var(--spacing-xs);
}

.company-page .page-title-section--rich .page-title-section__actions {
    /* リッチ版のデフォルト flex レイアウトをリセット */
    display: block;
    margin-top: var(--spacing-xl);
}



/* 会社ページでのナビゲーションコンテナ */
.company-page .page-title-section--rich .page-anchor-nav,
.company-page .page-title-section--rich .page-nav-links {
    margin-bottom: var(--spacing-lg);
}

/* アンカーナビを1列表示に調整（サイズはそのまま） */
.company-page .page-title-section--rich .page-anchor-nav {
    flex-wrap: nowrap;
}

/* ボタン内テキストの改行を防ぐ */
.company-page .page-title-section--rich .anchor-btn {
    white-space: nowrap;
}

/* サブタイトルとタイトル間の余白を縮小 */
.company-page .page-title-section--rich .page-title-section__subtitle {
    margin-bottom: var(--spacing-xs);
}

/* 最後のナビゲーション要素のマージン調整 */
.company-page .page-title-section--rich .page-nav-links {
    margin-bottom: 0;
}

/* アンカーボタンとページナビボタンのリッチ版でのホバー効果 */
.company-page .page-title-section--rich .anchor-btn:hover {
    background: var(--white);
    color: var(--primary-color);
    transform: translateY(-2px);
}

.company-page .page-title-section--rich .page-nav-btn:hover {
    background: var(--white);
    color: var(--accent-color);
    border-color: var(--accent-color);
    transform: translateY(-2px);
}

/* ================================================================
   ごあいさつセクション - 2カラムレイアウト
   ================================================================ */

/* ごあいさつ2カラムコンテナ */
.greeting-content {
    display: flex;
    gap: var(--spacing-xl);
    align-items: flex-start;
    max-width: var(--container-base); /* 1200px - 基本のコンテナ幅 */
    margin: 0 auto;
}

/* テキストエリア - 65% */
.greeting-text {
    flex: 0 0 65%;
    padding-right: var(--spacing-md);
}

.greeting-text h3 {
    font-size: var(--size-xl);
    font-weight: var(--weight-semibold);
    color: var(--primary-color);
    line-height: var(--line-base);
    margin-bottom: var(--spacing-lg);
    padding: var(--spacing-md) var(--spacing-lg);
    background: rgba(var(--primary-color-rgb), 0.03);
    border-radius: var(--border-radius-md);
    border-left: 4px solid var(--primary-color);
    transition: var(--transition-base);
}

.greeting-text h3:hover {
    background: rgba(var(--primary-color-rgb), 0.05);
    transform: translateY(-1px);
}

.greeting-text p {
    font-size: var(--size-base);
    line-height: var(--line-relaxed);
    color: var(--text-color);
    margin-bottom: var(--spacing-lg);
}

.greeting-signature {
    margin-top: var(--spacing-xl);
    text-align: right;
}

.greeting-signature p {
    font-size: var(--size-lg);
    color: var(--primary-color);
    margin-bottom: 0;
}

/* 画像エリア - 35% */
.greeting-image {
    flex: 0 0 35%;
    padding-left: var(--spacing-md);
}

.greeting-image img {
    width: 100%;
    height: auto;
    border-radius: var(--border-radius-lg);
    box-shadow: var(--shadow-md);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .greeting-content {
        flex-direction: column;
        gap: var(--spacing-lg);
    }
    
    .greeting-text,
    .greeting-image {
        flex: 1 1 100%;
        padding: 0;
    }
    
    .greeting-signature {
        text-align: center;
    }
}

/* ================================================================
   企業基本情報セクション - ナロー幅テーブル表示
   ================================================================ */

/* 企業情報セクション専用のコンテナ幅制限 */
#company-info .container {
    max-width: var(--container-narrow); /* 800px */
}

/* 企業情報テーブルコンテナ */
.company-info-table {
    margin-top: var(--spacing-xl);
}

/* 企業情報テーブル - シンプル */
.info-table {
    width: 100%;
    border-collapse: collapse;
}

.info-table th,
.info-table td {
    padding: var(--spacing-md) var(--spacing-lg);
    text-align: left;
    border-bottom: 1px solid var(--border-light);
}

.info-table th {
    font-weight: var(--weight-semibold);
    width: 180px;
    color: var(--text-color);
}

.info-table td {
    color: var(--text-color);
    line-height: var(--line-relaxed);
}

.info-table tr:last-child th,
.info-table tr:last-child td {
    border-bottom: none;
}

/* 企業情報テーブル内のリンク */
.info-table td a {
    color: var(--primary-color);
    text-decoration: none;
    transition: var(--transition-base);
}

.info-table td a:hover {
    color: var(--accent-color);
    text-decoration: underline;
}

/* 主要取引先・主要仕入先のサブ情報 - 小さいフォントサイズ */
.info-table tr:nth-last-child(2) td,  /* 主要取引先 */
.info-table tr:last-child td {         /* 主要仕入先 */
    font-size: var(--size-sm);
}

.info-table tr:nth-last-child(2) td a, /* 主要取引先リンク */
.info-table tr:last-child td a {       /* 主要仕入先リンク */
    font-size: var(--size-sm);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    #company-info .container {
        max-width: 100%;
    }
    
    .info-table th {
        width: 120px;
        padding: var(--spacing-md);
        font-size: var(--size-sm);
    }
    
    .info-table td {
        padding: var(--spacing-md);
        font-size: var(--size-sm);
    }
}

@media (max-width: 480px) {
    .info-table th,
    .info-table td {
        display: block;
        width: 100%;
        padding: var(--spacing-sm);
    }
    
    .info-table th {
        background: var(--primary-color);
        color: var(--white);
        font-weight: var(--weight-bold);
    }
    
    .info-table tr {
        margin-bottom: var(--spacing-md);
        display: block;
    }
}

/* ================================================================
   企業理念セクション - 3カラムアイコングリッド（保留）
   ================================================================ */

/* 企業理念グリッドコンテナ */
.philosophy-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-xl);
    margin-top: var(--spacing-xl);
}

/* 企業理念アイテム */
.philosophy-item {
    text-align: center;
    padding: var(--spacing-lg);
}

/* 企業理念アイコン */
.philosophy-icon {
    width: 80px;
    height: 80px;
    background: var(--primary-color);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    margin: 0 auto var(--spacing-lg);
    color: var(--white);
    font-size: var(--size-2xl);
}

/* 企業理念タイトル */
.philosophy-item h3 {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--primary-color);
    margin-bottom: var(--spacing-md);
}

/* 企業理念説明文 */
.philosophy-item p {
    font-size: var(--size-base);
    line-height: var(--line-relaxed);
    color: var(--text-color);
    margin: 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .philosophy-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
}

/* ================================================================
   会社概要ページ共通セクションスタイル
   ================================================================ */

/* 基本セクションパディング */
.company-section {
    padding: var(--spacing-3xl) 0;
}

/* 背景色付きセクション */
.company-section--alt-bg {
    background-color: var(--background-light);
}

/* ================================================================
   アクセスセクション - 2行2列カードグリッド + 地図 + ボタン
   ================================================================ */

/* 情報カードグリッド（2行2列） */
.info-cards-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-lg);
    margin-bottom: var(--spacing-2xl);
}

/* 統計カード - 情報表示バリエーション */
.stat-card--info {
    text-align: left; /* デフォルトのcenterをオーバーライド */
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    border: 1px solid var(--border-light);
    border-radius: var(--border-radius-md);
}

.stat-card--info .stat-card__icon {
    margin: 0; /* デフォルトのauto marginをリセット */
    flex: 0 0 48px;
    width: 48px;
    height: 48px;
    font-size: var(--size-lg);
}

.stat-card--info .stat-card__body {
    flex: 1;
    gap: var(--spacing-xs);
}

.stat-card--info .stat-card__title {
    font-size: var(--size-base);
    margin: 0 0 var(--spacing-xs) 0;
}

.stat-card--info .stat-card__description {
    font-size: var(--size-sm);
    color: var(--text-secondary);
    margin: 0;
}

.stat-card--info .stat-card__description a {
    color: var(--primary-color);
    text-decoration: none;
    transition: var(--transition-base);
}

.stat-card--info .stat-card__description a:hover {
    text-decoration: underline;
    color: var(--accent-color);
}

/* 地図セクション */
.access-map-section {
    margin-bottom: var(--spacing-2xl);
}

.access-map-section iframe {
    width: 100%;
    height: 300px;
    border: 0;
    border-radius: var(--border-radius-md);
    box-shadow: var(--shadow-sm);
}

/* コンタクトCTAセクション（キャプション + ボタン中央配置） */
.contact-cta-section {
    text-align: center;
    margin-top: var(--spacing-xl);
}

/* キャプションメッセージ */
.contact-message {
    margin-bottom: var(--spacing-lg);
}

.contact-message p {
    font-size: var(--size-lg);
    color: var(--text-color);
    line-height: var(--line-relaxed);
    margin: 0;
    font-weight: var(--weight-medium);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .info-cards-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }
    
    .stat-card--info {
        padding: var(--spacing-md);
    }
    
    .stat-card--info .stat-card__icon {
        flex: 0 0 40px;
        width: 40px;
        height: 40px;
        font-size: var(--size-base);
    }
    
    .stat-card--info .stat-card__title {
        font-size: var(--size-sm);
    }
    
    .stat-card--info .stat-card__description {
        font-size: var(--size-xs);
    }
}

/* ================================================================
   沿革セクション - 連続タイムライン表示
   ================================================================ */

/* 沿革セクション専用のコンテナ幅制限 */
#history .container {
    max-width: var(--container-narrow); /* 800px */
}

/* タイムラインコンテナ - 精密な3要素配置 + 枠表示 */
.history-timeline {
    position: relative;
    margin-top: var(--spacing-xl);
    background: var(--white);
    border-radius: var(--border-radius-lg);
    padding: var(--spacing-xl);
    box-shadow: var(--shadow-sm);
    border: 1px solid var(--border-light);
}

/* 連続する縦線 - マーカー位置と完全一致 */
.history-timeline::before {
    content: '';
    position: absolute;
    left: calc(146px + var(--spacing-xl)); /* マーカーの中心位置 + padding調整 */
    top: var(--spacing-xl);
    bottom: var(--spacing-xl);
    width: 2px;
    background: var(--primary-color);
    opacity: 0.3;
    z-index: 1;
}

/* タイムライン各アイテム */
.timeline-item {
    position: relative;
    display: flex;
    align-items: flex-start;
    padding: var(--spacing-lg) 0;
    margin-bottom: 0;
}

/* 年表示（左側固定幅） */
.timeline-year {
    flex: 0 0 120px;
    font-size: var(--size-lg);
    font-weight: var(--weight-bold);
    color: var(--primary-color);
    text-align: right;
    padding-right: var(--spacing-md);
    position: relative;
}

/* タイムラインマーカー（縦線と完全一致） */
.timeline-year::after {
    content: '';
    position: absolute;
    right: -33px; /* 元の相対位置に戻す */
    top: 6px;
    width: 12px;
    height: 12px;
    background: var(--primary-color);
    border: 3px solid var(--white);
    border-radius: 50%;
    box-shadow: 0 0 0 2px var(--primary-color);
    z-index: 2;
}

/* コンテンツエリア（縦線から適切な距離） */
.timeline-content {
    flex: 1;
    margin-left: var(--spacing-lg); /* シンプルな間隔 */
}

.timeline-content h4 {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
    margin: 0 0 var(--spacing-sm) 0;
    line-height: var(--line-tight);
}

.timeline-content p {
    font-size: var(--size-sm); /* テキストサイズを一つ下げる */
    line-height: var(--line-relaxed);
    color: var(--text-secondary);
    margin: 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    #history .container {
        max-width: 100%;
    }
    
    /* モバイル版縦線位置 */
    .history-timeline::before {
        left: 20px; /* モバイル用基準位置 */
    }
    
    .timeline-item {
        flex-direction: column;
        gap: var(--spacing-sm);
        padding: var(--spacing-md) 0;
        padding-left: var(--spacing-2xl);
    }
    
    .timeline-year {
        flex: none;
        text-align: left;
        padding: 0;
        font-size: var(--size-base);
        margin-left: calc(-1 * var(--spacing-2xl));
        padding-left: var(--spacing-2xl);
    }
    
    .timeline-year::after {
        left: 20px; /* 縦線と同じ位置 */
        right: auto;
        top: 2px;
        width: 8px;
        height: 8px;
        background: var(--primary-color);
        border: 2px solid var(--white);
        border-radius: 50%;
        box-shadow: 0 0 0 1px var(--primary-color);
        transform: translateX(-50%); /* マーカー中心を縦線に合わせる */
    }
    
    .timeline-content {
        margin-left: 0;
        margin-left: calc(-1 * var(--spacing-2xl));
        padding-left: var(--spacing-2xl);
    }
    
    .timeline-content h4 {
        font-size: var(--size-base);
    }
    
    .timeline-content p {
        font-size: var(--size-sm);
    }
}

/* ================================================================
   ウォータージェットページ専用調整
   ================================================================ */

/* ウォータージェットページのbody背景をグレーに変更 */
body.page-template-page-waterjet {
    background-color: var(--background-light) !important;
}

/* ウォータージェットページのmain要素も念のためグレー背景 */
.waterjet-page {
    background-color: var(--background-light);
}

/* 白背景セクションのみ明示的に白背景を適用 */
.waterjet-page .section.bg-white,
.waterjet-page .section:not(.bg-gray):not(.bg-right-extend) {
    background-color: var(--white);
}

/* ================================================================
   断熱材加工ページ専用 - マテリアルカード2カラムレイアウト
   ================================================================ */

/* フィーチャーカード内2カラムレイアウト */
.feature-card--material {
    display: block; /* 親カードのflex-direction: columnを無効化 */
}

.feature-card__layout {
    display: flex;
    gap: var(--spacing-lg);
    align-items: stretch; /* 画像とテキストの高さを揃える */
}

/* マテリアルカード専用タイトルサイズ調整 */
.feature-card--material .feature-card__title {
    font-size: var(--size-xl);
    margin-bottom: var(--spacing-sm);
}

/* マテリアルカード専用説明文の下マージン */
.feature-card--material .feature-card__description {
    margin-bottom: var(--spacing-md);
}

/* マテリアルカード内の特徴アイテム - シンプルデザイン */
.feature-card--material .feature-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
    padding: calc(var(--spacing-xs) / 2) 0;
    font-size: var(--size-sm);
    color: var(--text-color);
    box-shadow: none;
}

.feature-card--material .feature-item i {
    color: var(--accent-color);
    width: 18px;
    flex-shrink: 0;
}

/* 特徴アイテムのホバー効果無効化 */
.feature-card--material .feature-item:hover {
    background: none;
    transform: none;
}


/* テキストカラム - 60% */
.feature-card__text {
    flex: 0 0 60%;
}

/* 画像カラム - 35% (右余白確保) */
.feature-card__image {
    flex: 0 0 35%;
    display: flex; /* 画像の高さ調整のため */
}

/* マテリアル画像スタイル */
.material-image {
    width: 100%;
    height: 100%; /* テキストカラムの高さに合わせる */
    object-fit: cover;
    border-radius: var(--border-radius-md);
    box-shadow: var(--shadow-sm);
}

/* 2カラムグリッド用のフィーチャーカードグリッド */
.feature-cards-grid--2col {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-xl);
    margin-top: var(--spacing-xl);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .feature-cards-grid--2col {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    
    .feature-card__layout {
        flex-direction: column;
        gap: var(--spacing-md);
    }
    
    .feature-card__text,
    .feature-card__image {
        flex: 1 1 100%;
    }
    
    /* モバイルでのマテリアルカードタイトル調整 */
    .feature-card--material .feature-card__title {
        font-size: var(--size-lg);
    }
    
    .material-image {
        height: 200px; /* モバイルでは固定高さ */
    }
}

/* ================================================================
   交互配置レイアウト（7枚カード配置システム）
   ================================================================ */

.benefits-layout--staggered {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: var(--spacing-lg);
    align-items: start;
    margin-top: var(--spacing-xl);
}

/* 上段3枚のカードを中央寄せで配置 */
.benefit-card--top:nth-child(1) { grid-column: 2 / 4; }
.benefit-card--top:nth-child(2) { grid-column: 4 / 6; }
.benefit-card--top:nth-child(3) { grid-column: 6 / 8; }

/* 下段4枚のカードを均等配置 */
.benefit-card--bottom:nth-child(4) { grid-column: 1 / 3; }
.benefit-card--bottom:nth-child(5) { grid-column: 3 / 5; }
.benefit-card--bottom:nth-child(6) { grid-column: 5 / 7; }
.benefit-card--bottom:nth-child(7) { grid-column: 7 / 9; }

/* タブレット対応（1024px以下） */
@media (max-width: 1024px) {
    .benefits-layout--staggered {
        grid-template-columns: repeat(6, 1fr);
        gap: var(--spacing-md);
    }

    .benefit-card--top:nth-child(1) { grid-column: 1 / 3; }
    .benefit-card--top:nth-child(2) { grid-column: 3 / 5; }
    .benefit-card--top:nth-child(3) { grid-column: 5 / 7; }

    .benefit-card--bottom:nth-child(4) { grid-column: 1 / 2; }
    .benefit-card--bottom:nth-child(5) { grid-column: 2 / 3; }
    .benefit-card--bottom:nth-child(6) { grid-column: 4 / 5; }
    .benefit-card--bottom:nth-child(7) { grid-column: 5 / 6; }
}

/* モバイル対応（768px以下） */
@media (max-width: 768px) {
    .benefits-layout--staggered {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }

    .benefit-card--top,
    .benefit-card--bottom {
        grid-column: 1;
    }
}

/* ================================================================
   関連リンクグリッド（目立たない横並びデザイン）
   ================================================================ */

.related-links-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-md);
    margin-top: var(--spacing-lg);
}

.related-link-item {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    padding: var(--spacing-md);
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--border-radius-md);
    text-decoration: none;
    color: var(--white);
    transition: var(--transition-base);
    border: 1px solid rgba(255, 255, 255, 0.15);
}

.related-link-item:hover {
    background: rgba(255, 255, 255, 0.15);
    transform: translateY(-2px);
}

.related-link-item:hover i {
    color: var(--accent-color);
    opacity: 1;
}

.related-link-title {
    font-weight: var(--weight-semibold);
    font-size: var(--size-sm);
    white-space: nowrap;
    min-width: 0;
    color: var(--white); /* 明示的に白色指定 */
}

.related-link-description {
    font-size: var(--size-xs);
    color: rgba(255, 255, 255, 0.8); /* 既存の色指定を維持 */
    flex: 1;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
}

.related-link-item i {
    font-size: var(--size-sm);
    opacity: 0.8;
    flex-shrink: 0;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .related-links-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-sm);
    }
    
    .related-link-item {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-xs);
        text-align: left;
    }
    
    .related-link-title {
        white-space: normal;
    }
    
    .related-link-description {
        text-overflow: initial;
        overflow: visible;
    }
}

/* ================================================================
   断熱工事・施工ページ専用コンポーネント
   ================================================================ */

/* 施工アプローチコンテンツレイアウト */
.approach-content-layout {
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: var(--spacing-2xl);
    align-items: start;
    margin-top: var(--spacing-xl);
}

.approach-text .lead-text {
    font-size: var(--size-lg);
    line-height: var(--line-relaxed);
    color: var(--text-color);
    margin-bottom: var(--spacing-xl);
}

.highlight-box {
    background: var(--background-light);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    padding: var(--spacing-xl);
    margin-top: var(--spacing-lg);
}

.highlight-title {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--primary-color);
    margin-bottom: var(--spacing-md);
}

.approach-img {
    width: 100%;
    height: 300px;
    object-fit: cover;
    border-radius: var(--border-radius-md);
    box-shadow: var(--shadow-sm);
}

/* 工法名スタイル */
.construction-method {
    font-size: var(--size-base);
    font-weight: var(--weight-medium);
    color: var(--primary-color);
    margin-bottom: var(--spacing-sm);
    border-bottom: 2px solid var(--primary-color);
    padding-bottom: var(--spacing-xs);
    display: inline-block;
}

/* メリットセクションレイアウト */
.benefits-layout {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-xl);
}

.feature-cards-grid--centered {
    max-width: 800px;
    margin: 0 auto;
}

/* フィーチャーカードバリエーション */
.feature-card--technology .feature-card__icon,
.feature-card--benefit .feature-card__icon {
    background: var(--primary-color);
}

/* 工法カード */
.feature-card--construction {
    border-top: 4px solid var(--primary-color);
}

.feature-card--construction .feature-card__icon {
    background: var(--primary-color);
    color: var(--white);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--size-lg);
    margin-bottom: var(--spacing-sm);
}

.feature-card--technology .feature-card__icon {
    background: var(--secondary-color);
}

.feature-card--benefit .feature-card__icon {
    background: var(--accent-color);
    color: var(--white);
    width: 48px;
    height: 48px;
    border-radius: 50%;
    flex-shrink: 0;
}

/* レスポンシブ対応 */
@media (max-width: 992px) {
    .approach-content-layout {
        grid-template-columns: 1fr;
        gap: var(--spacing-xl);
    }
    
    .approach-img {
        height: 250px;
    }
}

@media (max-width: 768px) {
    .approach-content-layout {
        gap: var(--spacing-lg);
    }
    
    .approach-text .lead-text {
        font-size: var(--size-base);
    }
    
    .highlight-box {
        padding: var(--spacing-lg);
    }
    
    .benefits-layout {
        gap: var(--spacing-lg);
    }
    
    .approach-img {
        height: 200px;
    }
}

/* ================================================================
   ビデオギャラリーコンポーネント（断熱工事・施工ページ）
   ================================================================ */

.video-gallery {
    margin-top: var(--spacing-xl);
}

.video-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: var(--spacing-2xl);
    align-items: start;
}

.video-item {
    background: var(--background-white);
    border-radius: var(--border-radius-lg);
    overflow: hidden;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.1);
    transition: var(--transition-base);
}

.video-item:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
}

.video-wrapper {
    position: relative;
    width: 100%;
    padding-bottom: 56.25%; /* 16:9 aspect ratio */
    background: var(--background-light);
}

.video-wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
}

.video-description {
    padding: var(--spacing-lg);
}

.video-title {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-primary);
    margin-bottom: var(--spacing-sm);
    line-height: 1.3;
}

.video-text {
    color: var(--text-secondary);
    line-height: 1.6;
    margin: 0;
}

/* ================================================================
   拡張グリッドレイアウト
   ================================================================ */

/* 1列グリッド（中央配置用） */
.feature-cards-grid--1col {
    grid-template-columns: 1fr;
    max-width: 600px;
    margin: 0 auto;
}

/* グリッド中央配置バリエーション */
.feature-cards-grid--centered {
    justify-items: center;
}

/* 強調表示カード */
.feature-card--highlight {
    border: 2px solid var(--primary-color);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
}

.feature-card--highlight .feature-card__title {
    color: var(--primary-color);
}

/* 素材関連メリットカード */
.feature-card--material-benefit .feature-card__icon {
    background: linear-gradient(135deg, var(--accent-color), var(--secondary-color));
}

/* 施工基準カード */
.feature-card--standard {
    position: relative;
    background: var(--background-white);
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
    transition: var(--transition-base);
}

.feature-card--standard:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
}

.feature-card--standard .feature-card__header {
    display: block;
    text-align: center;
    margin-bottom: var(--spacing-lg);
    position: relative;
}

.feature-card__number {
    background: var(--primary-color);
    color: var(--text-white);
    width: 60px;
    height: 60px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: var(--weight-bold);
    font-size: var(--size-xl);
    margin: 0 auto var(--spacing-md);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

.feature-card--standard .feature-card__title {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-primary);
    line-height: 1.3;
    margin: 0;
}

.feature-card--standard .feature-card__description {
    font-size: var(--size-sm);
    line-height: 1.6;
    color: var(--text-secondary);
    text-align: left;
}

/* サンプルカード */
.feature-card--samples {
    display: flex;
    flex-direction: column;
    padding: 0; /* パディングを削除してスペースを最大化 */
    overflow: hidden;
}

.feature-card--samples .feature-card__sample-name {
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--text-color);
    text-align: center;
    padding: var(--spacing-md) var(--spacing-lg);
    border-bottom: 1px solid var(--border-light);
    background-color: var(--bg-light);
}

.feature-card--samples .feature-card__image-container {
    position: relative;
    width: 100%;
    height: 200px;
    overflow: hidden;
    margin-bottom: var(--spacing-md);
}

.feature-card--samples .feature-card__image {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* カルーセル機能 */
.feature-card--samples .carousel-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.5);
    color: white;
    border: none;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 12px;
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 2;
}

.feature-card--samples:hover .carousel-nav {
    opacity: 1;
}

.feature-card--samples .carousel-nav:hover {
    background: rgba(0, 0, 0, 0.7);
}

.feature-card--samples .carousel-nav--prev {
    left: 10px;
}

.feature-card--samples .carousel-nav--next {
    right: 10px;
}

/* ドットインジケーター */
.feature-card--samples .carousel-dots {
    position: absolute;
    bottom: 12px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: 8px;
    z-index: 2;
}

.feature-card--samples .carousel-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.4);
    border: 2px solid rgba(255, 255, 255, 0.8);
    cursor: pointer;
    transition: all 0.3s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
}

.feature-card--samples .carousel-dot:hover {
    background: rgba(255, 255, 255, 0.7);
    border-color: rgba(255, 255, 255, 1);
}

.feature-card--samples .carousel-dot--active {
    background: rgba(255, 255, 255, 1);
    border-color: rgba(255, 255, 255, 1);
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.4);
}

/* 単一画像の場合はカルーセル機能を非表示 */
.feature-card--samples .feature-card__image-container[data-images="1"] .carousel-nav,
.feature-card--samples .feature-card__image-container[data-images="1"] .carousel-dots {
    display: none;
}

/* プレースホルダー画像スタイル（施工サンプル用） */
.feature-card--samples .image-placeholder {
    width: 100%;
    height: 100%;
    background: linear-gradient(135deg, var(--bg-light) 0%, var(--bg-gray) 100%);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    border: 2px dashed var(--border-light);
    transition: all 0.3s ease;
}

.feature-card--samples .image-placeholder:hover {
    background: linear-gradient(135deg, var(--bg-gray) 0%, var(--bg-light) 100%);
    border-color: var(--primary);
}

.feature-card--samples .image-placeholder i {
    font-size: 2.5rem;
    color: var(--text-color);
    margin-bottom: var(--spacing-sm);
    transition: color 0.3s ease;
}

.feature-card--samples .image-placeholder:hover i {
    color: var(--primary);
}

.feature-card--samples .image-placeholder p {
    font-size: 0.9rem;
    color: var(--text-color);
    text-align: center;
    margin: 0;
    line-height: 1.4;
    font-weight: 500;
}

.feature-card--samples .feature-card__content {
    padding: var(--spacing-lg);
    flex: 1;
}


.feature-card--samples .feature-card__title {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
    margin-bottom: var(--spacing-md);
    text-align: center;
}

.feature-card--samples .feature-card__specs {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-sm);
}

.feature-card--samples .spec-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    padding: var(--spacing-xs) 0;
    border-bottom: 1px solid var(--border-light);
}

.feature-card--samples .spec-row:last-child {
    border-bottom: none;
}

.feature-card--samples .spec-label {
    font-size: var(--size-sm);
    font-weight: var(--weight-medium);
    color: var(--text-secondary);
    flex-shrink: 0;
    min-width: 80px;
}

.feature-card--samples .spec-value {
    font-size: var(--size-sm);
    color: var(--text-color);
    text-align: right;
    flex: 1;
    margin-left: var(--spacing-sm);
}

.feature-card--samples .spec-value.delivery-time {
    color: var(--primary-color);
    font-weight: var(--weight-medium);
}

.feature-card--samples .spec-value.price {
    color: var(--accent-color);
    font-weight: var(--weight-semibold);
}

/* サンプルカードホバー効果 */
.feature-card--samples:hover {
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.12);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .feature-card--samples .feature-card__image {
        height: 160px;
    }

    .feature-card--samples .feature-card__content {
        padding: var(--spacing-md);
    }

    .feature-card--samples .spec-row {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-xs);
    }

    .feature-card--samples .spec-value {
        text-align: left;
        margin-left: 0;
    }
}

/* 遮熱工法カード */
.feature-card--thermal .feature-card__icon {
    background: linear-gradient(135deg, #ff6b35, #f7931e);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .video-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-xl);
    }
    
    .video-grid .video-item {
        max-width: 100%;
    }
    
    .video-description {
        padding: var(--spacing-md);
    }
    
    .video-title {
        font-size: var(--size-base);
    }
}

@media (max-width: 480px) {
    .video-grid {
        gap: var(--spacing-lg);
    }
    
    .feature-card--standard .feature-card__header {
        flex-direction: column;
        text-align: center;
        gap: var(--spacing-sm);
    }
    
    .feature-card__number {
        width: 35px;
        height: 35px;
        font-size: var(--size-base);
    }
}

/* ================================================================
   断熱工事サブセクションコンポーネント
   ================================================================ */

.insulation-intro-content,
.strengths-content {
    margin-top: var(--spacing-xl);
}

.intro-text-block,
.strengths-intro {
    text-align: center;
    max-width: 800px;
    margin: 0 auto var(--spacing-2xl);
}

.subsection-content {
    margin-top: var(--spacing-2xl);
    padding-top: var(--spacing-xl);
    border-top: 2px solid var(--border-light);
}

.subsection-header {
    text-align: left;
    margin-bottom: var(--spacing-xl);
}

.subsection-title {
    font-size: var(--size-xl);
    font-weight: var(--weight-semibold);
    color: var(--text-primary);
    line-height: 1.3;
    margin: 0;
    position: relative;
    padding-left: 12px;
}

.subsection-title::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    width: 4px;
    height: 100%;
    background: var(--accent-color);
    border-radius: 2px;
}

.body-text {
    color: var(--text-secondary);
    line-height: 1.6;
    margin-bottom: var(--spacing-md);
}

.materials-explanation {
    margin-bottom: var(--spacing-xl);
}

.materials-benefits-grid {
    margin-top: var(--spacing-lg);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .subsection-content {
        margin-top: var(--spacing-xl);
        padding-top: var(--spacing-lg);
    }
    
    .subsection-title {
        font-size: var(--size-lg);
    }
    
    .intro-text-block,
    .strengths-intro {
        margin-bottom: var(--spacing-xl);
    }
    
    .materials-explanation {
        margin-bottom: var(--spacing-lg);
    }
}

/* ================================================================
   3つの要素カード（断熱性・気密性・換気能力）
   ================================================================ */

.three-elements-cards {
    margin-top: var(--spacing-xl);
}

.three-elements-cards .feature-cards-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-lg);
    align-items: stretch;
    position: relative;
}

/* 3要素カード - シンプル表示 */
.three-elements-cards .feature-cards-grid {
    position: relative;
}

.three-elements-cards .feature-card {
    position: relative;
}


.feature-card--element {
    min-height: 420px;
}

/* 3要素カード内の調整でバランスを保つ */
.three-elements-cards .feature-card--element {
    min-height: 380px;
}

.feature-card--element .feature-card__icon {
    background: var(--primary-color);
    color: var(--text-white);
}

/* カード内のメリット・限界セクション */
.element-benefits {
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 1px solid var(--border-light);
}

.element-limitations {
    margin-bottom: 0;
}

.benefits-title,
.limitations-title {
    font-size: var(--size-sm);
    font-weight: var(--weight-semibold);
    margin-bottom: var(--spacing-sm);
    color: var(--text-primary);
}

.benefits-title {
    color: var(--primary-color);
}

.limitations-title {
    color: var(--secondary-color);
}

.benefits-list,
.limitations-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.benefits-list li,
.limitations-list li {
    position: relative;
    padding-left: var(--spacing-sm);
    margin-bottom: var(--spacing-xs);
    font-size: var(--size-sm);
    line-height: 1.3;
}

/* 3要素カード内のリスト項目 - 1行表示調整 */
.three-elements-cards .benefits-list li,
.three-elements-cards .limitations-list li {
    font-size: var(--size-sm);
    line-height: 1.2;
    margin-bottom: 4px;
    word-break: keep-all;
    overflow-wrap: break-word;
    padding-left: var(--spacing-md);
}

.benefits-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--primary-color);
    font-weight: var(--weight-bold);
}

.limitations-list li::before {
    content: '！';
    position: absolute;
    left: 0;
    color: var(--secondary-color);
    font-weight: var(--weight-bold);
}

.solution {
    display: block;
    font-size: var(--size-xs);
    color: var(--accent-color);
    font-weight: var(--weight-semibold);
    margin-top: var(--spacing-xs);
}

/* 3要素カード内のソリューション文 */
.three-elements-cards .solution {
    font-size: 10px;
    margin-top: 2px;
    white-space: nowrap;
}

/* サブセクションまとめ */
.subsection-summary {
    margin-top: var(--spacing-xl);
    padding-top: var(--spacing-lg);
    border-top: 1px solid var(--border-light);
    text-align: left;
}

/* 断熱工事セクション内の強調テキスト */
#our-insulation-work .intro-text-block strong {
    color: var(--text-primary);
    border-bottom: 2px solid var(--accent-color);
    padding-bottom: 1px;
}

/* レスポンシブ対応（横並びを維持） */
@media (max-width: 768px) {
    .three-elements-cards .feature-cards-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: var(--spacing-md);
    }
    
    
    .feature-card--element {
        min-height: 350px;
    }
    
    /* 3要素カード - タブレット向け調整 */
    .three-elements-cards .feature-card--element {
        min-height: 340px;
    }
    
    .feature-card--element .feature-card__title {
        font-size: var(--size-sm);
    }
    
    .benefits-title,
    .limitations-title {
        font-size: var(--size-xs);
    }
    
    .benefits-list li,
    .limitations-list li {
        font-size: var(--size-xs);
        margin-bottom: 2px;
    }
    
    .solution {
        font-size: 10px;
    }
}

@media (max-width: 480px) {
    .three-elements-cards .feature-cards-grid {
        gap: var(--spacing-sm);
    }
    
    
    .feature-card--element {
        min-height: 320px;
    }
    
    /* 3要素カード - スマホ向け調整 */
    .three-elements-cards .feature-card--element {
        min-height: 300px;
    }
    
    .element-benefits {
        margin-bottom: var(--spacing-md);
    }
    
    .subsection-summary {
        margin-top: var(--spacing-lg);
        padding-top: var(--spacing-md);
    }
}

/* ================================================================
   当社のこだわりカード（問題解決型）
   ================================================================ */

.commitment-cards {
    margin-top: var(--spacing-xl);
}

.commitment-cards .feature-cards-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-xl);
    align-items: stretch;
}

.feature-card--commitment {
    min-height: 450px;
}

.feature-card--commitment .feature-card__icon {
    background: var(--accent-color);
    color: var(--text-white);
}

/* カード内の問題・解決策セクション */
.industry-problems {
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 2px solid var(--border-light);
}

.our-solution {
    margin-bottom: 0;
}

.problems-title,
.solution-title {
    font-size: var(--size-sm);
    font-weight: var(--weight-semibold);
    margin-bottom: var(--spacing-sm);
}

.problems-title {
    color: var(--secondary-color);
}

.solution-title {
    color: var(--primary-color);
}

.problems-list,
.solution-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.problems-list li,
.solution-list li {
    position: relative;
    padding-left: var(--spacing-md);
    margin-bottom: var(--spacing-xs);
    font-size: var(--size-sm);
    line-height: 1.4;
}

.problems-list li::before {
    content: '⚠';
    position: absolute;
    left: 0;
    color: var(--secondary-color);
    font-weight: var(--weight-bold);
}

.solution-list li::before {
    content: '✓';
    position: absolute;
    left: 0;
    color: var(--primary-color);
    font-weight: var(--weight-bold);
}

/* こだわりまとめ */
.commitment-summary {
    margin-top: var(--spacing-xl);
    padding-top: var(--spacing-lg);
    border-top: 1px solid var(--border-light);
    text-align: left;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .commitment-cards .feature-cards-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }
    
    .feature-card--commitment {
        min-height: 400px;
    }
    
    .problems-title,
    .solution-title {
        font-size: var(--size-xs);
    }
    
    .problems-list li,
    .solution-list li {
        font-size: var(--size-xs);
        margin-bottom: 2px;
    }
}

@media (max-width: 480px) {
    .commitment-cards {
        margin-top: var(--spacing-lg);
    }
    
    .feature-card--commitment {
        min-height: 350px;
    }
    
    .industry-problems {
        margin-bottom: var(--spacing-md);
    }
    
    .commitment-summary {
        margin-top: var(--spacing-lg);
        padding-top: var(--spacing-md);
    }
}

/* ================================================================
   3列・4列グリッドレイアウト
   ================================================================ */

.feature-cards-grid--3col {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-lg);
    align-items: stretch;
    max-width: 1200px;
    margin: 0 auto;
}

/* 中央寄せの3列グリッド - 下段4列と同じカードサイズを実現 */
.feature-cards-grid--3col.feature-cards-grid--centered {
    display: grid;
    grid-template-columns: 1fr repeat(3, minmax(0, 280px)) 1fr;
    gap: var(--spacing-lg);
    align-items: stretch;
    max-width: none;
    margin: 0;
}

.feature-cards-grid--3col.feature-cards-grid--centered .feature-card {
    grid-column: span 1;
}

/* 3要素カード専用の幅調整 */
.three-elements-cards .feature-cards-grid--3col {
    max-width: 1400px;
    gap: var(--spacing-xl);
}

.feature-cards-grid--4col {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--spacing-lg);
    align-items: stretch;
}

/* 4列カードの高さ調整 */
.feature-cards-grid--4col .feature-card {
    min-height: 280px;
}

/* 3列・4列グリッドのレスポンシブ対応 */
@media (max-width: 1200px) {
    .feature-cards-grid--3col {
        grid-template-columns: repeat(3, 1fr);
        gap: var(--spacing-lg);
        max-width: 100%;
    }

    /* 中央寄せ3列グリッドのレスポンシブ */
    .feature-cards-grid--3col.feature-cards-grid--centered {
        grid-template-columns: repeat(3, 1fr);
        max-width: 1000px;
        margin: 0 auto;
    }

    /* 3要素カード - 1200px以下でも幅を確保 */
    .three-elements-cards .feature-cards-grid--3col {
        max-width: 100%;
        gap: var(--spacing-lg);
    }
    
    .feature-cards-grid--4col {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--spacing-lg);
    }
    
    .feature-cards-grid--4col .feature-card {
        min-height: 320px;
    }
}

/* タブレット向け調整 */
@media (max-width: 992px) and (min-width: 769px) {
    .three-elements-cards .feature-cards-grid--3col {
        gap: var(--spacing-md);
    }
}

@media (max-width: 768px) {
    .feature-cards-grid--3col,
    .feature-cards-grid--4col {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }

    /* 中央寄せ3列グリッドもモバイルでは1列 */
    .feature-cards-grid--3col.feature-cards-grid--centered {
        grid-template-columns: 1fr;
        max-width: 100%;
        margin: 0;
    }
    
    /* 3要素カード - スマホでは縦並び */
    .three-elements-cards .feature-cards-grid--3col {
        gap: var(--spacing-md);
    }
    
    .feature-cards-grid--4col .feature-card {
        min-height: 250px;
    }
    
    .feature-card__number {
        width: 50px;
        height: 50px;
        font-size: var(--size-lg);
    }
    
    .feature-card--standard .feature-card__title {
        font-size: var(--size-base);
    }
    
    .feature-card--standard .feature-card__description {
        font-size: var(--size-xs);
    }
}

@media (max-width: 480px) {
    .feature-card__number {
        width: 45px;
        height: 45px;
        font-size: var(--size-base);
        margin-bottom: var(--spacing-sm);
    }
    
    .feature-card--standard .feature-card__header {
        margin-bottom: var(--spacing-md);
    }
}

/* ================================================================
   工法カード（リスト＋画像2枚レイアウト）
   ================================================================ */

.construction-details {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: var(--spacing-md);
    align-items: start;
    margin-top: var(--spacing-md);
}

.construction-details .feature-list {
    grid-column: 1;
}

.construction-images {
    grid-column: 2 / 4;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-sm);
}

.construction-img {
    width: 100%;
    height: 80px;
    object-fit: cover;
    border-radius: var(--border-radius-sm);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
    transition: var(--transition-base);
}

.construction-img:hover {
    transform: scale(1.05);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.2);
}

/* 画像準備中プレースホルダー */
.construction-img--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--gray-200, #e5e7eb);
    color: var(--gray-500, #6b7280);
    font-size: var(--font-size-xs);
    height: 80px;
}

.construction-img--placeholder:hover {
    transform: none;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .construction-details {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }
    
    .construction-details .feature-list {
        grid-column: 1;
    }
    
    .construction-images {
        grid-column: 1;
        margin-top: var(--spacing-sm);
    }
    
    .construction-img {
        height: 60px;
    }
}

@media (max-width: 480px) {
    .construction-images {
        grid-template-columns: 1fr;
        gap: var(--spacing-xs);
    }
    
    .construction-img {
        height: 50px;
    }
}

/* ================================================================
   遮熱シート外張り工法レイアウト
   ================================================================ */

/* 導入ブロック（全幅） */
.thermal-introduction {
    margin-top: var(--spacing-2xl);
    margin-bottom: var(--spacing-2xl);
    text-align: center;
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
}

/* メリット・画像レイアウト（左右2カラム） */
.thermal-content-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-2xl);
    align-items: center;
    margin-top: var(--spacing-2xl);
}

.thermal-features {
    display: flex;
    flex-direction: column;
    gap: var(--spacing-lg);
}

.thermal-feature-item {
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: var(--background-light);
    border-radius: var(--border-radius-lg);
    border-left: 4px solid var(--primary-color);
}

.thermal-feature-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--primary-color);
    color: var(--white);
    font-size: var(--size-lg);
    flex-shrink: 0;
}

.thermal-feature-content {
    flex: 1;
}

.thermal-feature-title {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
    margin: 0 0 var(--spacing-sm) 0;
}

.thermal-feature-description {
    font-size: var(--size-base);
    color: var(--text-light);
    line-height: var(--line-relaxed);
    margin: 0;
}

.thermal-image {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--background-light);
    border-radius: var(--border-radius-lg);
    overflow: hidden;
    min-height: 400px;
}

.thermal-method-img {
    width: 100%;
    height: auto;
    object-fit: cover;
    border-radius: var(--border-radius-lg);
}

/* レスポンシブ対応 */
@media (max-width: 992px) {
    .thermal-content-layout {
        grid-template-columns: 1fr;
        gap: var(--spacing-xl);
    }
    
    .thermal-feature-item {
        padding: var(--spacing-md);
    }
    
    .thermal-image {
        min-height: 300px;
    }
}

@media (max-width: 768px) {
    .thermal-introduction {
        margin-top: var(--spacing-xl);
        margin-bottom: var(--spacing-xl);
    }
    
    .thermal-feature-item {
        flex-direction: column;
        text-align: center;
        gap: var(--spacing-sm);
    }
    
    .thermal-image {
        min-height: 250px;
    }
}

/* ================================================================
   動画プレースホルダー（準備中表示）
   ================================================================ */

.video-wrapper--coming-soon {
    background: var(--background-light);
    border: 2px dashed var(--border-color);
    border-radius: var(--border-radius-lg);
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.video-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    height: 100%;
    padding: var(--spacing-lg);
    color: var(--text-light);
}

.video-placeholder__icon {
    font-size: var(--size-4xl);
    color: var(--primary-color);
    margin-bottom: var(--spacing-md);
    opacity: 0.6;
}

.coming-soon-badge {
    background: var(--accent-color);
    color: var(--white);
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--border-radius-full);
    font-size: var(--size-sm);
    font-weight: var(--weight-semibold);
    letter-spacing: 0.05em;
}

/* ================================================================
   事業内容専用ページタイトルセクション（page-title-section--business）
   ================================================================ */

/**
 * Business Page Title Section - 事業内容ページ専用モジュール
 *
 * 上部：リッチ版と同じページタイトル部分
 * 下部：クオリティセクション追加
 */

.page-title-section--business {
    padding: 0;
    position: relative;
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
    min-height: auto;
    margin-bottom: var(--spacing-4xl);
}

/* リッチ版同様の黒透明オーバーレイ */
.page-title-section--business::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.1);
    z-index: 2;
    pointer-events: none;
}

/* コンテンツ部分（リッチ版準拠） */
.page-title-section--business .page-title-section__content {
    width: 100%;
    max-width: none;
    position: relative;
    z-index: 2;
    padding: var(--spacing-2xl) 0;
}

/* 上部タイトル+画像エリア */
.page-title-section__top {
    position: relative;
    display: flex;
    align-items: center;
    min-height: 400px;
    margin-bottom: var(--spacing-xl);
}

/* テキストエリア - 60%幅で左配置 */
.page-title-section--business .page-title-section__text {
    width: 60%;
    position: relative;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    padding: var(--spacing-xl);
}

/* テキストコンテンツブロック */
.page-title-section--business .text-content-block {
    text-align: left;
    width: 100%;
    max-width: 500px;
}

/* タイトル・サブタイトル */
.page-title-section--business .page-title-section__title {
    font-size: clamp(var(--size-6xl), 7vw, var(--size-7xl));
    margin-bottom: var(--spacing-md);
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
    font-family: var(--font-family-heading);
    letter-spacing: -0.02em;
    color: var(--text-white);
    text-align: left;
}

.page-title-section--business .page-title-section__subtitle {
    font-size: clamp(var(--size-lg), 2vw, var(--size-xl));
    margin-bottom: var(--spacing-lg);
    font-weight: var(--weight-semibold);
    color: rgba(255, 255, 255, 0.95);
    text-align: left;
}

.page-title-section--business .page-title-section__description {
    font-size: var(--size-lg);
    margin-bottom: var(--spacing-2xl);
    line-height: var(--line-relaxed);
    color: rgba(255, 255, 255, 0.9);
    text-align: left;
}

/* 画像エリア - 40%幅で右配置 */
.page-title-section--business .page-title-section__image {
    width: 40%;
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
}

/* スライダー背景を透明に */
.page-title-section--business .hero-image-slider {
    background: transparent;
    width: 100%;
    height: 100%;
    border-radius: 0;
    padding: 0;
    box-shadow: none;
}

/* クオリティパート */
.business-quality-part {
    position: relative;
    z-index: 3;
    text-align: center;
    padding: var(--spacing-2xl) 0;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
}

.page-title-section__quality-title {
    font-size: var(--size-xl);
    font-weight: var(--weight-bold);
    color: var(--text-white);
    margin-bottom: var(--spacing-lg);
    letter-spacing: 0.1em;
    position: relative;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
}

.page-title-section__quality-title::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background: rgba(255, 255, 255, 0.8);
    margin: var(--spacing-sm) auto 0;
    border-radius: var(--border-radius-sm);
}

.page-title-section__quality-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--spacing-lg);
    margin-top: var(--spacing-xl);
}

/* feature-cardスタイル調整 */
.page-title-section--business .feature-card--feature {
    background: rgba(255, 255, 255, 0.15);
    border: 1px solid rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(10px);
    transition: all var(--transition-base);
}

.page-title-section--business .feature-card--feature:hover {
    transform: translateY(-4px);
    background: rgba(255, 255, 255, 0.25);
    border-color: rgba(255, 255, 255, 0.5);
    box-shadow: 0 8px 25px rgba(0, 0, 0, 0.2);
}

.page-title-section--business .feature-card__icon {
    background: linear-gradient(135deg, var(--primary-color) 0%, var(--secondary-color) 100%);
}

/* カード内テキストの色調整 */
.page-title-section--business .feature-card__title {
    color: var(--text-white);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.3);
}

.page-title-section--business .feature-card__description {
    color: rgba(255, 255, 255, 0.9);
    text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .page-title-section--business {
        padding: var(--spacing-2xl) 0;
    }

    .business-quality-part {
        padding: var(--spacing-2xl) 0;
    }

    .page-title-section__quality-cards {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }

    .page-title-section__quality-title {
        font-size: var(--size-lg);
    }
}

/* NOMURA QUALITY L字レイアウト */
.page-title-section__quality {
    max-width: 1200px;
    margin: 0 auto;
    padding: var(--spacing-2xl) var(--spacing-lg);
    position: relative;
    z-index: 2;
}

.quality-layout {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--spacing-xl);
    margin-bottom: var(--spacing-xl);
}

.quality-description {
    color: var(--text-white);
}

.quality-section-title {
    font-size: var(--size-lg);
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: var(--spacing-sm);
    font-weight: var(--weight-medium);
}

.quality-main-title {
    font-size: var(--size-3xl);
    color: var(--text-white);
    font-weight: var(--weight-bold);
    margin-bottom: var(--spacing-md);
    letter-spacing: 0.1em;
}

.quality-text {
    color: rgba(255, 255, 255, 0.9);
    line-height: var(--line-relaxed);
    font-size: var(--size-base);
}

.quality-spacer {
    /* 右側の空きスペース */
}

.quality-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-lg);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .quality-layout {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }

    .quality-cards {
        grid-template-columns: 1fr;
        gap: var(--spacing-md);
    }

    .quality-main-title {
        font-size: var(--size-2xl);
    }
}


/* ================================================================
   主要事業セクション
   ================================================================ */
.main-services-section {
    padding: var(--spacing-3xl) 0;
    background: var(--white);
}

/* ================================================================
   自社商品セクション（新たな価値創造への挑戦）
   ================================================================ */
.original-products-section {
    padding: var(--spacing-3xl) 0;
    margin: var(--spacing-4xl) 0;
    background: var(--white);
}

.original-products-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
    gap: var(--spacing-xl);
    margin-top: var(--spacing-3xl);
    max-width: 1200px;
    margin-left: auto;
    margin-right: auto;
}

/* 商品カードのサイズ調整 */
.original-products-grid .feature-card--product {
    min-height: 320px;
    transition: transform var(--transition-base);
}

.original-products-grid .feature-card--product:hover {
    transform: translateY(-8px);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .original-products-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
        margin-top: var(--spacing-2xl);
    }

    .original-products-grid .feature-card--product {
        min-height: 280px;
    }
}


/* ================================================================
   自社商品ページ専用コンポーネント - 注目製品セクション
   ================================================================ */

/* 注目製品セクション - bg-right-extend既存パターン使用 */
.featured-product-section {
    padding: var(--spacing-3xl) 0;
    color: var(--text-white);
}

/* メディアバッジ（汎用コンポーネント） */
.media-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-sm);
    background: rgba(255, 255, 255, 0.15);
    color: var(--text-white);
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--border-radius-full);
    font-size: var(--size-sm);
    font-weight: var(--weight-medium);
    margin-bottom: var(--spacing-lg);
    backdrop-filter: blur(10px);
}

.media-badge i {
    font-size: var(--size-base);
    color: var(--secondary-color);
}

/* 注目商品セクション専用スタイル調整 */
.featured-product-section .content-title {
    font-size: var(--size-3xl);
    font-weight: var(--weight-bold);
    color: var(--text-white);
    margin-bottom: var(--spacing-sm);
    font-family: var(--font-family-heading);
}

.featured-product-section .content-subtitle {
    font-size: var(--size-lg);
    color: rgba(255, 255, 255, 0.9);
    margin-bottom: var(--spacing-lg);
    font-weight: var(--weight-medium);
}

.featured-product-section .content-text p {
    font-size: var(--size-base);
    line-height: var(--line-relaxed);
    color: rgba(255, 255, 255, 0.85);
    margin-bottom: var(--spacing-md);
}

/* アクションボタン */
.featured-product__actions {
    display: flex;
    gap: var(--spacing-md);
    flex-wrap: wrap;
    margin-top: var(--spacing-lg);
}

/* examples-images内の画像スタイル調整 */
.featured-product-section .examples-images img {
    width: 100%;
    height: auto;
    max-width: 400px;
    border-radius: var(--border-radius-lg);
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .featured-product-section .content-title {
        font-size: var(--size-2xl);
    }

    .featured-product__actions {
        justify-content: center;
        flex-direction: column;
        align-items: center;
    }

    .featured-product__actions .btn {
        width: 100%;
        max-width: 280px;
    }

    .featured-product-section .examples-images img {
        max-width: 300px;
    }
}

/* ================================================================
   再利用可能コンポーネント - メディア掲載バッジ・製品カード
   ================================================================ */

/* メディア掲載バッジ */
.media-badge {
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    background: linear-gradient(135deg, var(--accent-color), #ff6b47);
    color: var(--white);
    padding: var(--spacing-xs) var(--spacing-md);
    border-radius: var(--border-radius-full);
    font-size: var(--size-sm);
    font-weight: var(--weight-semibold);
    margin-bottom: var(--spacing-lg);
    box-shadow: 0 4px 12px rgba(255, 107, 71, 0.3);
}

.media-badge i {
    font-size: var(--size-sm);
}

/* 開発中製品カード */
.feature-card--coming-soon {
    border: 2px dashed var(--border-light);
    background: rgba(var(--primary-color-rgb), 0.02);
    opacity: 0.8;
}

.feature-card--coming-soon .feature-card__header {
    background: var(--bg-light);
    color: var(--text-secondary);
}

.feature-card--coming-soon .feature-card__title {
    color: var(--text-secondary);
}

.feature-card--coming-soon .feature-card__description {
    color: var(--text-muted);
}

.feature-card--coming-soon:hover {
    transform: none;
    border-color: var(--primary-color);
}

/* ================================================================
   避難所ベッドページ専用コンポーネント - 製品詳細ページ
   ================================================================ */

/* 製品詳細セクションのアクション領域 */
.product-details__actions {
    display: flex;
    gap: 1rem;
    margin-top: 2rem;
}

@media (max-width: 768px) {
    .product-details__actions {
        flex-direction: column;
    }

    .product-details__actions .btn {
        width: 100%;
        text-align: center;
    }
}

/* 特徴・仕様グリッド */
.features-specifications-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 2rem;
    margin-top: 3rem;
}

@media (max-width: 768px) {
    .features-specifications-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }
}

/* 強調表示カード（特徴用） */
.feature-card--highlight {
    position: relative;
    background: linear-gradient(135deg, var(--background-color), var(--bg-light));
    border: 2px solid var(--primary-color);
}

.feature-card--highlight .feature-card__header {
    background: var(--primary-color);
    color: white;
}

.feature-card--highlight:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 25px rgba(51, 102, 153, 0.15);
    border-color: var(--accent-color);
}

.feature-card--highlight:hover .feature-card__header {
    background: var(--accent-color);
}

/* 仕様表示カード */
.feature-card--specification {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
}

.feature-card--specification .feature-card__header {
    background: var(--secondary-color);
    color: var(--primary-color);
}

.feature-card--specification .feature-card__body {
    padding: 1.5rem;
}

/* 仕様リスト */
.specification-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.specification-list li {
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--border-light);
    font-size: var(--size-sm);
    line-height: 1.6;
}

.specification-list li:last-child {
    border-bottom: none;
}

.specification-list strong {
    color: var(--primary-color);
    font-weight: var(--weight-semibold);
    display: inline-block;
    min-width: 80px;
}

/* ナビゲーションカード */
.feature-card--navigation {
    background: linear-gradient(135deg, var(--primary-color), var(--primary-color-light));
    color: white;
    border: none;
}

.feature-card--navigation .feature-card__header {
    background: rgba(255, 255, 255, 0.2);
    color: white;
}

.feature-card--navigation .feature-card__title,
.feature-card--navigation .feature-card__description {
    color: white;
}

.feature-card--navigation .feature-card__tag {
    background: rgba(255, 255, 255, 0.3);
    color: white;
    border: 1px solid rgba(255, 255, 255, 0.4);
}

.feature-card--navigation:hover {
    transform: translateY(-3px);
    box-shadow: 0 10px 30px rgba(51, 102, 153, 0.3);
}

.feature-card--navigation .btn {
    background: white;
    color: var(--primary-color);
    border: none;
}

.feature-card--navigation .btn:hover {
    background: var(--bg-light);
    color: var(--primary-color-dark);
}

/* ================================================================
   商品ヒーローコンテンツ - 再利用可能コンポーネント
   ================================================================ */

/**
 * Product Hero Content Component
 *
 * 用途: 個別商品ページのヒーローセクション
 * 特徴: 2カラムレイアウト、再利用可能
 * 対象: ひとごこち、アプリ、将来の商品ページ
 */

/* 商品ヒーローセクション基本設定 */
.product-hero-section {
    padding: var(--spacing-3xl) 0;
    background-color: var(--background-hero);
}

/* メインコンテンツエリア */
.product-hero-content {
    width: 100%;
}

/* 2カラムグリッドレイアウト */
.product-hero-grid {
    display: grid;
    grid-template-columns: 1fr 1fr; /* 50% : 50% - 画像エリアを拡大 */
    gap: var(--spacing-3xl);
    align-items: center;
    min-height: 500px;
}

/* テキストエリア */
.product-hero-text {
    padding: var(--spacing-lg);
}

/* バッジ群 - キャッチコピーの上に配置 */
.product-hero-badges {
    display: flex;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
    flex-wrap: wrap;
}

/* キャッチコピー */
.product-hero-catchcopy {
    font-size: clamp(var(--size-2xl), 4vw, var(--size-4xl));
    font-weight: var(--weight-bold);
    color: var(--primary-color);
    line-height: var(--line-tight);
    margin-bottom: var(--spacing-lg);
    font-family: var(--font-family-heading);
}

/* サブタイトル */
.product-hero-subtitle {
    font-size: var(--size-xl);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
    line-height: var(--line-relaxed);
    margin-bottom: var(--spacing-md);
}

/* 説明文 */
.product-hero-description {
    font-size: var(--size-base);
    color: var(--text-secondary);
    line-height: var(--line-relaxed);
    margin-bottom: var(--spacing-xl);
}

/* アクションボタン群 */
.product-hero-actions {
    display: flex;
    gap: var(--spacing-md);
    flex-wrap: wrap;
}

/* 「特徴を見る」ボタンの下矢印アイコン */
.product-hero-actions .btn-primary i {
    margin-left: var(--spacing-sm);
    animation: bounce-down 2s infinite;
}

@keyframes bounce-down {
    0%, 20%, 50%, 80%, 100% {
        transform: translateY(0);
    }
    40% {
        transform: translateY(4px);
    }
    60% {
        transform: translateY(2px);
    }
}

/* 画像エリア - スライド対応 */
.product-hero-image {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-lg);
    min-height: 400px;
}

/* 画像スライダー */
.product-hero-slider {
    position: relative;
    width: 100%;
    height: 400px;
    border-radius: var(--border-radius-lg);
    overflow: hidden;
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
}

.product-hero-slide {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 0.8s ease-in-out;
}

.product-hero-slide.active {
    opacity: 1;
}

.product-hero-slide img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform 0.3s ease;
}

.product-hero-slide:hover img {
    transform: scale(1.05);
}

/* 単体画像（スライダーでない場合） */
.product-hero-image > img {
    width: 100%;
    height: 400px;
    object-fit: cover;
    border-radius: var(--border-radius-lg);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.15);
    transition: transform 0.3s ease;
}

.product-hero-image > img:hover {
    transform: translateY(-8px);
}

/* スライダーナビゲーション */
.slider-nav {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    background: rgba(0, 0, 0, 0.5);
    color: var(--white);
    border: none;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--size-lg);
    opacity: 0;
    transition: opacity 0.3s ease;
    z-index: 3;
}

.product-hero-slider:hover .slider-nav {
    opacity: 1;
}

.slider-nav:hover {
    background: rgba(0, 0, 0, 0.7);
}

.slider-nav--prev {
    left: 15px;
}

.slider-nav--next {
    right: 15px;
}

/* スライダードット */
.slider-dots {
    position: absolute;
    bottom: 20px;
    left: 50%;
    transform: translateX(-50%);
    display: flex;
    gap: var(--spacing-sm);
    z-index: 3;
}

.slider-dot {
    width: 12px;
    height: 12px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.5);
    cursor: pointer;
    transition: all 0.3s ease;
}

.slider-dot.active {
    background: var(--white);
}

.slider-dot:hover {
    background: rgba(255, 255, 255, 0.8);
}

/* レスポンシブ対応 */
@media (max-width: 1024px) {
    .product-hero-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-xl);
        text-align: center;
        min-height: auto;
    }

    .product-hero-text {
        order: 1;
        padding: var(--spacing-md);
    }

    .product-hero-image {
        order: 2;
        padding: var(--spacing-md);
    }
}

@media (max-width: 768px) {
    .product-hero-section {
        padding: var(--spacing-2xl) 0;
    }

    .product-hero-catchcopy {
        font-size: var(--size-2xl);
    }

    .product-hero-subtitle {
        font-size: var(--size-lg);
    }

    .product-hero-badges {
        justify-content: center;
    }

    .product-hero-actions {
        justify-content: center;
        flex-direction: column;
        align-items: center;
    }

    .product-hero-actions .btn {
        width: 100%;
        max-width: 300px;
    }

    .product-hero-slider {
        height: 300px;
    }

    .product-hero-image {
        min-height: 300px;
    }

    .slider-nav {
        width: 35px;
        height: 35px;
        font-size: var(--size-base);
    }

    .slider-nav--prev {
        left: 10px;
    }

    .slider-nav--next {
        right: 10px;
    }

    .slider-dots {
        bottom: 15px;
    }

    .product-hero-image > img {
        height: 300px;
    }
}

/* ================================================================
   避難所ベッドページ専用コンポーネント - 8セクション構成対応
   ================================================================ */

/* 課題解決セクション */
.problems-solution-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    margin-top: 3rem;
}

.problem-category {
    background: var(--background-color);
    border-radius: var(--radius-lg);
    padding: 2rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}

.problem-category-title {
    font-size: var(--size-xl);
    font-weight: var(--weight-bold);
    color: var(--primary-color);
    margin-bottom: 1.5rem;
    text-align: center;
}

.problem-list {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.problem-item {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    padding: 1rem;
    background: var(--bg-light);
    border-radius: var(--radius-md);
}

.problem-icon {
    font-size: 2rem;
    flex-shrink: 0;
    margin-top: 0.25rem;
}

.problem-name {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--primary-color-dark);
    margin: 0 0 0.5rem 0;
}

.problem-description {
    font-size: var(--size-sm);
    color: var(--text-light);
    line-height: 1.6;
    margin: 0;
}

.conventional-issues {
    padding: 1.5rem;
    background: var(--bg-light);
    border-radius: var(--radius-md);
}

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

.issue-list li {
    position: relative;
    padding: 0.75rem 0 0.75rem 2rem;
    border-bottom: 1px solid var(--border-light);
    font-size: var(--size-sm);
    line-height: 1.6;
}

.issue-list li:last-child {
    border-bottom: none;
}

.issue-list li::before {
    content: '×';
    position: absolute;
    left: 0;
    top: 0.75rem;
    color: var(--contact-red);
    font-weight: var(--weight-bold);
    font-size: var(--size-lg);
}

.solution-highlight {
    grid-column: 1 / -1;
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    color: white;
    padding: 2.5rem;
    border-radius: var(--radius-lg);
    text-align: center;
    margin-top: 1rem;
}

.solution-title {
    font-size: var(--size-2xl);
    font-weight: var(--weight-bold);
    margin: 0 0 1rem 0;
}

.solution-description {
    font-size: var(--size-lg);
    line-height: 1.7;
    margin: 0;
}

/* 3つの特徴セクション */
.three-features-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 3rem;
}

.feature-card--key-feature {
    background: var(--background-color);
    border: 2px solid var(--border-color);
    border-radius: var(--radius-lg);
    overflow: hidden;
    transition: all 0.3s ease;
}

.feature-card--key-feature:hover {
    transform: translateY(-8px);
    box-shadow: 0 15px 35px rgba(51, 102, 153, 0.15);
    border-color: var(--accent-color);
}

.feature-card--key-feature .feature-card__header {
    background: var(--primary-color);
    color: white;
    padding: 1.5rem;
    display: flex;
    align-items: center;
    gap: 1rem;
}

.feature-card--key-feature .feature-card__header i {
    font-size: 2.5rem;
    flex-shrink: 0;
}

.feature-card--key-feature .feature-card__header .feature-card__title {
    color: white;
    font-size: var(--size-lg);
    font-weight: var(--weight-bold);
    margin: 0;
    line-height: 1.3;
}

.feature-card--key-feature:hover .feature-card__header {
    background: var(--accent-color);
}

.feature-card--key-feature .feature-card__body {
    padding: 2rem;
}

.feature-card--key-feature .feature-card__title {
    font-size: var(--size-xl);
    font-weight: var(--weight-bold);
    color: var(--primary-color);
    margin-bottom: 1rem;
}

.feature-card--key-feature .feature-card__description {
    font-size: var(--size-base);
    color: var(--text-color);
    line-height: 1.7;
    margin-bottom: 1.5rem;
}

.feature-benefits {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.benefit-item {
    font-size: var(--size-sm);
    color: var(--primary-color);
    font-weight: var(--weight-medium);
    display: flex;
    align-items: center;
    gap: 0.5rem;
}

/* 製品仕様セクション */
.specifications-container {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    margin-top: 3rem;
}

.specification-table {
    background: var(--background-color);
    border-radius: var(--radius-lg);
    padding: 2rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}

.spec-category-title {
    font-size: var(--size-xl);
    font-weight: var(--weight-bold);
    color: var(--primary-color);
    margin: 0 0 1.5rem 0;
    text-align: center;
    padding-bottom: 1rem;
    border-bottom: 2px solid var(--primary-color);
}

.spec-table {
    width: 100%;
    border-collapse: collapse;
}

.spec-table tr {
    border-bottom: 1px solid var(--border-light);
}

.spec-table tr:last-child {
    border-bottom: none;
}

.spec-label {
    font-size: var(--size-sm);
    font-weight: var(--weight-semibold);
    color: var(--primary-color);
    padding: 1rem 0;
    width: 40%;
    vertical-align: top;
}

.spec-value {
    font-size: var(--size-sm);
    color: var(--text-color);
    padding: 1rem 0;
    line-height: 1.6;
}

/* 使用シーン・導入事例セクション */
.use-cases-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 2rem;
    margin-top: 3rem;
}

.use-case-category {
    background: var(--background-color);
    border-radius: var(--radius-lg);
    padding: 0;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.use-case-image {
    width: 100%;
    height: 200px;
    overflow: hidden;
}

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

.use-case-category:hover .use-case-image img {
    transform: scale(1.05);
}

/* 画像準備中プレースホルダー */
.use-case-image--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--gray-200, #e5e7eb);
    color: var(--gray-500, #6b7280);
    font-size: var(--font-size-sm);
}

.use-case-content {
    padding: 2rem;
    text-align: center;
    flex-grow: 1;
}

.use-case-title {
    font-size: var(--size-lg);
    font-weight: var(--weight-bold);
    color: var(--primary-color);
    margin: 0 0 1.5rem 0;
}

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

.use-case-list li {
    padding: 0.75rem 0;
    border-bottom: 1px solid var(--border-light);
    font-size: var(--size-sm);
    line-height: 1.6;
    color: var(--text-color);
}

.use-case-list li:last-child {
    border-bottom: none;
}

.introduction-record {
    margin-top: 3rem;
    padding: 2rem;
    background: linear-gradient(135deg, var(--bg-light), var(--background-color));
    border-radius: var(--radius-lg);
    text-align: center;
}

.record-title {
    font-size: var(--size-xl);
    font-weight: var(--weight-bold);
    color: var(--primary-color);
    margin: 0 0 1rem 0;
}

.record-description {
    font-size: var(--size-base);
    color: var(--text-color);
    line-height: 1.7;
    margin: 0;
}

/* ===========================================
 * 5. Table & Lists - テーブルコンポーネント
 * =========================================== */

/* 汎用テーブル行ホバー機能 */
.table-row-hover tbody tr:hover {
    background: rgba(var(--primary-color-rgb), 0.02);
}

.table-row-hover tbody tr:hover td {
    background: var(--background-light);
}

/* 製品評価比較テーブル */
.product-comparison-table-container, .comparison-table-container {
    margin-top: 3rem;
    overflow-x: auto;
    background: var(--background-color);
    border-radius: var(--radius-lg);
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}

.product-comparison-table, .comparison-table {
    width: 100%;
    border-collapse: collapse;
    min-width: 600px;
}

.product-comparison-table th, .comparison-table th {
    background: var(--primary-color);
    color: white;
    font-size: var(--size-base);
    font-weight: var(--weight-semibold);
    padding: 1.5rem 1rem;
    text-align: center;
    position: relative;
}

.product-comparison-table th.highlight-column, .comparison-table th.highlight-column {
    background: var(--accent-color);
}

.product-comparison-table td, .comparison-table td {
    padding: 1rem;
    text-align: center;
    font-size: var(--size-sm);
    border-bottom: 1px solid var(--border-light);
}

.product-comparison-table tr:last-child td, .comparison-table tr:last-child td {
    border-bottom: none;
}

.comparison-label {
    font-weight: var(--weight-semibold);
    color: var(--primary-color);
    background: var(--bg-light);
    text-align: left !important;
}

/* 比較表のハイライトカラム */
.highlight-column {
    background: rgba(255, 107, 53, 0.1);
    font-weight: var(--weight-semibold);
}

/* 比較表専用ホバー効果 */
.product-comparison-table.table-row-hover tbody tr:hover td:nth-child(1), .comparison-table.table-row-hover tbody tr:hover td:nth-child(1) {
    background: rgba(0, 0, 0, 0.08) !important;
}

.product-comparison-table.table-row-hover tbody tr:hover td.highlight-column, .comparison-table.table-row-hover tbody tr:hover td.highlight-column {
    background: rgba(255, 107, 53, 0.18) !important;
}

.product-comparison-table.table-row-hover tbody tr:hover td:not(.highlight-column):not(:nth-child(1)), .comparison-table.table-row-hover tbody tr:hover td:not(.highlight-column):not(:nth-child(1)) {
    background: var(--background-light) !important;
}

/* 評価スタイル（汎用） */
.excellent {
    color: var(--accent-color);
    font-weight: var(--weight-semibold);
}

.good {
    color: var(--primary-color);
    font-weight: var(--weight-medium);
}

.poor {
    color: var(--text-light);
    font-weight: var(--weight-normal);
}

.bad {
    color: var(--contact-red);
    font-weight: var(--weight-medium);
}

/* ========================================
 * Table & Lists コンポーネント使用例
 * ========================================
 *
 * 1. 汎用テーブル行ホバー機能（シンプル）:
 *    <table class="table-row-hover">...</table>
 *    → 行全体が薄いグレー背景になる
 *
 * 2. 製品評価比較テーブル（列別ホバー）:
 *    <div class="product-comparison-table-container">
 *      <table class="product-comparison-table table-row-hover">
 *        <thead>
 *          <tr>
 *            <th>比較項目</th>
 *            <th class="highlight-column">自社製品</th>
 *            <th>競合A</th>
 *            <th>競合B</th>
 *          </tr>
 *        </thead>
 *        <tbody>
 *          <tr>
 *            <td class="comparison-label">評価項目</td>
 *            <td class="highlight-column excellent">◎ 優秀</td>
 *            <td class="good">○ 良い</td>
 *            <td class="poor">△ 普通</td>
 *          </tr>
 *        </tbody>
 *      </table>
 *    </div>
 *    → 列ごとに背景色が濃くなり、ハイライトカラムは特別な色になる
 *
 * 3. 評価クラス:
 *    .excellent (◎) - アクセントカラー、太字
 *    .good (○) - プライマリカラー、中太
 *    .poor (△) - 薄いグレー、通常
 *    .bad (✕) - 赤色、中太
 * ========================================== */

/* メディア・開発ストーリーセクション */
.media-story-content {
    display: grid;
    grid-template-columns: 1fr;
    gap: 3rem;
    margin-top: 3rem;
}

.media-section {
    background: var(--background-color);
    border-radius: var(--radius-lg);
    padding: 2.5rem;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
    display: grid;
    grid-template-columns: 2fr 1fr;
    gap: 2rem;
    align-items: start;
}

.media-content {
    display: flex;
    flex-direction: column;
}

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

.media-image img {
    width: 100%;
    max-width: 300px;
    height: auto;
    border-radius: var(--radius-md);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .media-section {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .media-image {
        justify-content: flex-start;
    }

    .media-image img {
        max-width: 250px;
    }
}

.media-title {
    font-size: var(--size-xl);
    font-weight: var(--weight-bold);
    color: var(--primary-color);
    margin: 0 0 1rem 0;
}

.media-date {
    font-size: var(--size-base);
    color: var(--text-color);
    margin-bottom: 1.5rem;
}

.media-quote {
    background: var(--bg-light);
    border-left: 4px solid var(--accent-color);
    padding: 1.5rem;
    border-radius: var(--radius-md);
    font-style: italic;
    line-height: 1.7;
}

.development-story {
    background: linear-gradient(135deg, var(--primary-color), var(--primary-color-light));
    color: white;
    border-radius: var(--radius-lg);
    padding: 2.5rem;
}

.story-title {
    font-size: var(--size-xl);
    font-weight: var(--weight-bold);
    margin: 0 0 1.5rem 0;
}

.story-content p {
    margin-bottom: 1rem;
    line-height: 1.7;
}

.story-lead {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    margin-bottom: 1.5rem !important;
}

.product-name-origin {
    background: var(--bg-light);
    border-radius: var(--radius-lg);
    padding: 2rem;
    text-align: center;
}

.origin-title {
    font-size: var(--size-lg);
    font-weight: var(--weight-bold);
    color: var(--primary-color);
    margin: 0 0 1rem 0;
}

.origin-content {
    font-size: var(--size-base);
    color: var(--text-color);
    line-height: 1.7;
    margin: 0;
}

/* 価格・お問い合わせセクション */
.bg-primary-gradient {
    background: linear-gradient(135deg, var(--primary-color), var(--secondary-color));
    color: white;
}

.section-header--white .section-subtitle,
.section-header--white .section-title {
    color: white;
}

.pricing-contact-content {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 3rem;
    margin-top: 3rem;
}

.pricing-info,
.process-flow {
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-lg);
    padding: 2rem;
}

.pricing-title,
.flow-title {
    font-size: var(--size-xl);
    font-weight: var(--weight-bold);
    margin: 0 0 1rem 0;
}

.pricing-description {
    margin-bottom: 1.5rem;
    line-height: 1.7;
}

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

.pricing-options li {
    padding: 0.5rem 0;
    font-size: var(--size-sm);
    line-height: 1.6;
}

.flow-steps {
    display: flex;
    flex-direction: column;
    gap: 1.5rem;
}

.flow-step {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem;
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-md);
    border: 1px solid rgba(255, 255, 255, 0.2);
    position: relative;
}

.flow-step:not(:last-child)::after {
    content: '';
    position: absolute;
    bottom: -12px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 10px solid rgba(255, 255, 255, 0.1);
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.1));
}

.step-number {
    width: 2rem;
    height: 2rem;
    background: white;
    color: var(--primary-color);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: var(--weight-bold);
    flex-shrink: 0;
}

.step-text {
    font-size: var(--size-sm);
    line-height: 1.6;
}

.contact-cta {
    margin-top: 3rem;
    padding: 2.5rem;
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--radius-lg);
    text-align: center;
}

.cta-title {
    font-size: var(--size-2xl);
    font-weight: var(--weight-bold);
    margin: 0 0 1rem 0;
}

.cta-description {
    font-size: var(--size-base);
    line-height: 1.7;
    margin-bottom: 2rem;
}

.contact-options {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}

.contact-phone {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: var(--size-base);
    font-weight: var(--weight-medium);
}


/* レスポンシブ対応 */
@media (max-width: 768px) {
    .problems-solution-grid {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .three-features-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

    .specifications-container {
        grid-template-columns: 1fr;
        gap: 2rem;
    }

    .use-cases-grid {
        grid-template-columns: 1fr;
        gap: 1.5rem;
    }

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

/* ================================================================
   取り数計算アプリページ専用コンポーネント
   ================================================================ */

/* 調整中バッジ */
.hero-badge--coming-soon {
    background: var(--info-blue);
    animation: pulse 2s infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.7; }
}

/* 開発状況表示 */
.development-status {
    background: rgba(135, 206, 235, 0.1);
    border: 1px solid var(--secondary-color);
    border-radius: var(--radius-md);
    padding: 1.5rem;
    margin: 2rem 0;
}

.status-title {
    font-size: var(--size-lg);
    font-weight: var(--weight-bold);
    color: var(--primary-color);
    margin: 0 0 1rem 0;
}

.status-description {
    font-size: var(--size-base);
    color: var(--text-color);
    line-height: 1.7;
    margin: 0;
}

/* page-title-section補足コンポーネント */
.badge-group {
    display: flex;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
    flex-wrap: wrap;
}

.development-notice {
    background: rgba(255, 255, 255, 0.1);
    padding: var(--spacing-lg);
    border-radius: var(--border-radius-md);
    margin-bottom: var(--spacing-lg);
    backdrop-filter: blur(10px);
}

.development-notice h3 {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-white);
    margin-bottom: var(--spacing-sm);
}

.development-notice p {
    color: rgba(255, 255, 255, 0.9);
    margin: 0;
}

.app-mockup-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-3xl);
    text-align: center;
    min-height: 300px;
    background: rgba(255, 255, 255, 0.1);
    border-radius: var(--border-radius-lg);
    backdrop-filter: blur(10px);
}

.app-mockup-placeholder i {
    font-size: var(--size-4xl);
    color: var(--secondary-color);
    margin-bottom: var(--spacing-md);
    opacity: 0.8;
}

.app-mockup-placeholder p {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-white);
    margin: 0 0 var(--spacing-md) 0;
}

.coming-soon-badge {
    background: var(--accent-color);
    color: var(--white);
    padding: var(--spacing-sm) var(--spacing-md);
    border-radius: var(--border-radius-md);
    font-size: var(--size-sm);
    font-weight: var(--weight-medium);
}

/* ================================================================
   実装ガイド準拠完了
   ================================================================ */

/* 削除済みコンポーネント一覧（約550行削除）:
   - product-hero-* 系コンポーネント（116行）
   - usage-content, step-* 系コンポーネント（約200行）
   - calculation-example, sample-* 系コンポーネント（約150行）
   - release-info-* 系コンポーネント（約80行）

   修正方針:
   - page-title-section--rich使用に統一
   - bg-right-extend既存パターン活用
   - 新規作成を最小限に抑制
   - カタログコンポーネント最大限活用

   結果:
   - ファイルサイズ約7%削減（7649行→7095行）
   - 実装ガイド違反解消
   - 保守性向上
*/

/* ================================================================
   お問い合わせページ専用コンポーネント
   ================================================================ */

/**
 * Contact Page Components
 *
 * 用途: お問い合わせページ（/contact/）専用スタイル
 * 特徴: 5セクション構成、FAQ、フォーム対応
 * 実装日: 2025-10-05
 */


/* お問い合わせページ専用：ページタイトルアクション */
.page-title-actions {
    margin-top: var(--spacing-lg);
    text-align: center;
}

.contact-page .page-title-actions .btn {
    font-size: var(--size-base);
    padding: var(--spacing-sm) var(--spacing-xl);
    /* 確実に表示されるように強制スタイル */
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    pointer-events: auto !important;
    z-index: 9999 !important;
    position: relative !important;
}

/* お問い合わせ種別セクション */
.contact-categories-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(350px, 1fr));
    gap: var(--spacing-xl);
    margin-top: var(--spacing-2xl);
}

.contact-category-card {
    background: var(--background-color);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-lg);
    padding: var(--spacing-xl);
    transition: all var(--transition-base);
}

.contact-category-card:hover {
    border-color: var(--primary-color);
    box-shadow: var(--shadow-md);
}

.contact-category-card__header {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-lg);
    padding-bottom: var(--spacing-md);
    border-bottom: 2px solid var(--border-light);
}

.contact-category-card__header i {
    font-size: var(--size-xl);
    color: var(--primary-color);
    min-width: 24px;
}

.contact-category-card__header h3 {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
    margin: 0;
}

.contact-category-card__content ul {
    list-style: none;
    padding: 0;
    margin: 0 0 var(--spacing-lg) 0;
}

.contact-category-card__content li {
    position: relative;
    padding-left: var(--spacing-lg);
    margin-bottom: var(--spacing-sm);
    color: var(--text-color);
    line-height: var(--line-relaxed);
}

.contact-category-card__content li::before {
    content: '•';
    position: absolute;
    left: 0;
    color: var(--primary-color);
    font-weight: bold;
}

.category-reference {
    font-size: var(--size-sm);
    color: var(--text-light);
    margin: 0;
    font-style: italic;
}

.category-reference a {
    color: var(--primary-color);
    text-decoration: none;
}

.category-reference a:hover {
    text-decoration: underline;
}

/* FAQ セクション */
.faq-categories {
    max-width: 800px;
    margin: 0 auto;
    margin-top: var(--spacing-2xl);
}

.faq-category {
    margin-bottom: var(--spacing-3xl);
}

.faq-category-title {
    font-size: var(--size-xl);
    font-weight: var(--weight-semibold);
    color: var(--primary-color);
    margin-bottom: var(--spacing-xl);
    padding-bottom: var(--spacing-sm);
    border-bottom: 2px solid var(--primary-color);
}

.faq-item {
    background: var(--background-color);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-md);
    margin-bottom: var(--spacing-lg);
    overflow: hidden;
    transition: all var(--transition-base);
}

.faq-item:hover {
    border-color: var(--primary-color);
    box-shadow: var(--shadow-sm);
}

.faq-question {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    padding: var(--spacing-lg);
    background: var(--bg-light);
    cursor: pointer;
    transition: all var(--transition-base);
    border: none;
    width: 100%;
    text-align: left;
    position: relative;
}

.faq-question:hover {
    background: var(--primary-color);
    color: var(--white);
}

.faq-question:focus {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

.faq-question[aria-expanded="true"] {
    background: var(--primary-color);
    color: var(--white);
}

.faq-q-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    background: var(--primary-color);
    color: var(--white);
    border-radius: 50%;
    font-size: var(--size-sm);
    font-weight: var(--weight-bold);
    flex-shrink: 0;
}

.faq-question:hover .faq-q-mark,
.faq-question[aria-expanded="true"] .faq-q-mark {
    background: var(--white);
    color: var(--primary-color);
}

.faq-q-text {
    font-size: var(--size-base);
    font-weight: var(--weight-medium);
    color: var(--text-color);
    line-height: var(--line-tight);
    flex: 1;
}

.faq-question:hover .faq-q-text,
.faq-question[aria-expanded="true"] .faq-q-text {
    color: var(--white);
}

/* FAQ答え部分は初期状態で非表示 - 後のスタイルで制御 */

.faq-a-mark {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 32px;
    height: 32px;
    background: var(--secondary-color);
    color: var(--primary-color-dark);
    border-radius: 50%;
    font-size: var(--size-sm);
    font-weight: var(--weight-bold);
    flex-shrink: 0;
}

.faq-a-text {
    color: var(--text-color);
    line-height: var(--line-relaxed);
}

.faq-a-text a {
    color: var(--primary-color);
    text-decoration: none;
}

.faq-a-text a:hover {
    text-decoration: underline;
}

/* FAQ アコーディオンのトグルアイコン */
.faq-toggle-icon {
    color: var(--primary-color);
    margin-left: auto;
    font-size: var(--size-sm);
    transition: all var(--transition-base);
    flex-shrink: 0;
}

.faq-question:hover .faq-toggle-icon,
.faq-question[aria-expanded="true"] .faq-toggle-icon {
    color: var(--white);
}

.faq-question[aria-expanded="true"] .faq-toggle-icon {
    transform: rotate(45deg);
}

/* FAQ 回答のスムーズな表示切り替え */
.faq-answer {
    max-height: 0;
    overflow: hidden;
    transition: max-height 0.3s ease, opacity 0.3s ease, padding 0.3s ease;
    opacity: 0;
    padding: 0;
    margin: 0;
    background: transparent;
}

.faq-answer.show {
    max-height: 300px;
    opacity: 1;
    padding: var(--spacing-lg);
    background: var(--background-color);
    display: flex;
    align-items: flex-start;
    gap: var(--spacing-md);
}

/* フォームセクション */
.contact-form-section {
    background: linear-gradient(135deg, #f0f4f8 0%, #e8f2f7 100%);
    position: relative;
}

.contact-form-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background:
        radial-gradient(circle at 20% 80%, rgba(135, 206, 235, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(102, 153, 204, 0.08) 0%, transparent 50%);
    pointer-events: none;
}

.contact-form-section .container {
    position: relative;
    z-index: 1;
}

.contact-form-container {
    max-width: 700px;
    margin: 0 auto;
    margin-top: var(--spacing-2xl);
}

.contact-form-wrapper {
    background: var(--bg-light);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-lg);
    padding: var(--spacing-2xl);
    box-shadow: var(--shadow-sm);
}

.contact-form-placeholder {
    padding: var(--spacing-xl);
    background: var(--bg-light);
    border: 2px dashed var(--border-color);
    border-radius: var(--border-radius-md);
    text-align: center;
}

.contact-form-placeholder p {
    margin-bottom: var(--spacing-md);
}

.contact-form-placeholder ul {
    text-align: left;
    max-width: 400px;
    margin: var(--spacing-md) auto;
}

.contact-form-placeholder .note {
    font-size: var(--size-sm);
    color: var(--text-light);
    font-style: italic;
}

/* 連絡先情報セクション（横並びレイアウト） */
.contact-methods-row {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--spacing-xl);
    margin: var(--spacing-2xl) 0;
}

.contact-method {
    padding: var(--spacing-xl);
    background: var(--background-color);
    border: 1px solid var(--border-color);
    border-radius: var(--border-radius-lg);
    transition: all var(--transition-base);
}

.contact-method:hover {
    border-color: var(--primary-color);
    box-shadow: var(--shadow-md);
    transform: translateY(-2px);
}

.contact-method h3 {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
    margin-bottom: var(--spacing-lg);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
}

.contact-method h3 i {
    color: var(--primary-color);
    font-size: var(--size-base);
}

/* マップセクション（独立） */
.map-section {
    margin-top: var(--spacing-2xl);
    padding-top: var(--spacing-xl);
    border-top: 2px solid var(--border-color);
}

.map-section h3 {
    font-size: var(--size-xl);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
    margin-bottom: var(--spacing-lg);
    display: flex;
    align-items: center;
    gap: var(--spacing-sm);
    text-align: center;
    justify-content: center;
}

.map-section h3 i {
    color: var(--primary-color);
    font-size: var(--size-lg);
}

/* 電話連絡セクション */
.contact-method .phone-info {
    display: flex;
    align-items: center;
    gap: var(--spacing-lg);
    margin-bottom: var(--spacing-md);
    flex-wrap: wrap;
}

.phone-number-large {
    font-size: var(--size-2xl);
    font-weight: var(--weight-bold);
    color: var(--primary-color);
    text-decoration: none;
    transition: color var(--transition-base);
}

.phone-number-large:hover {
    color: var(--primary-color-dark);
}

.phone-hours {
    font-size: var(--size-sm);
    color: var(--text-light);
    font-weight: var(--weight-medium);
}

/* SNS連絡セクション */
.sns-info {
    text-align: left;
}

.contact-method .instagram-link {
    color: var(--primary-color);
    text-decoration: none;
    font-weight: var(--weight-bold);
    font-size: var(--size-xl);
    transition: color var(--transition-base);
    display: block;
    margin-bottom: var(--spacing-sm);
}

.contact-method .instagram-link:hover {
    color: #E4405F;
}

.sns-description {
    color: var(--text-light);
    font-size: var(--size-xs);
    font-style: italic;
    display: block;
    line-height: var(--line-relaxed);
}

/* 所在地セクション */
.address-text {
    margin-bottom: var(--spacing-md);
}

.company-name {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-color);
    margin-bottom: var(--spacing-sm);
}

.postal-code {
    font-size: var(--size-base);
    color: var(--text-color);
    margin-bottom: var(--spacing-xs);
}

.address {
    font-size: var(--size-lg);
    font-weight: var(--weight-medium);
    color: var(--text-color);
    margin-bottom: var(--spacing-md);
}

.visit-note {
    font-size: var(--size-sm);
    color: var(--text-light);
    font-style: italic;
}

/* マップセクション */
.google-map {
    border-radius: var(--border-radius-md);
    overflow: hidden;
    box-shadow: var(--shadow-md);
    margin-bottom: var(--spacing-md);
}

.google-map iframe {
    width: 100%;
    height: 300px;
    border: 0;
}

.map-note {
    text-align: center;
    margin: 0;
}

.map-note a {
    color: var(--primary-color);
    text-decoration: none;
    font-size: var(--size-sm);
    transition: color var(--transition-base);
}

.map-note a:hover {
    color: var(--primary-color-dark);
    text-decoration: underline;
}

/* レスポンシブ対応 */
@media (max-width: 768px) {
    .page-title-actions {
        margin-top: var(--spacing-md);
    }

    .contact-page .page-title-actions .btn {
        font-size: var(--size-sm);
        padding: var(--spacing-xs) var(--spacing-lg);
    }

    .contact-categories-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }

    .contact-category-card {
        padding: var(--spacing-lg);
    }

    .contact-methods-row {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }

    .contact-method {
        padding: var(--spacing-lg);
    }

    .contact-method .phone-info {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-sm);
    }

    .map-section {
        margin-top: var(--spacing-xl);
        padding-top: var(--spacing-lg);
    }

    .google-map iframe {
        height: 250px;
    }

    .phone-number,
    .phone-number-large {
        font-size: var(--size-xl);
    }

    .faq-question,
    .faq-answer.show {
        padding: var(--spacing-md);
    }

    .contact-form-wrapper {
        padding: var(--spacing-lg);
    }
}

/* ================================================================
   10. 📰 News Page Components
   ================================================================ */

/* 10.1 パンくずナビゲーション */
.breadcrumb-nav {
    background-color: var(--bg-light);
    padding: var(--spacing-sm) 0;
    border-bottom: 1px solid var(--border-light);
}

.breadcrumb-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    align-items: center;
    gap: var(--spacing-xs);
}

.breadcrumb-item {
    font-size: var(--size-sm);
    color: var(--text-secondary);
}

.breadcrumb-item:not(:last-child)::after {
    content: '>';
    margin-left: var(--spacing-xs);
    color: var(--text-muted);
}

.breadcrumb-item a {
    color: var(--text-secondary);
    text-decoration: none;
    transition: var(--transition-base);
}

.breadcrumb-item a:hover {
    color: var(--primary-color);
}

.breadcrumb-item.active {
    color: var(--text-primary);
    font-weight: var(--weight-medium);
}

/* 10.2 カテゴリータブ */
.news-filter-section {
    padding: var(--spacing-xl) 0;
    background-color: var(--white);
}

.news-category-tabs {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--spacing-sm);
    flex-wrap: wrap;
}

.news-tab {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: var(--spacing-sm) var(--spacing-lg);
    font-size: var(--size-base);
    font-weight: var(--weight-medium);
    line-height: 1;
    color: var(--text-secondary);
    background-color: var(--bg-light);
    border: 2px solid transparent;
    border-radius: var(--border-radius-md);
    cursor: pointer;
    transition: var(--transition-base);
    white-space: nowrap;
    user-select: none;
}

.news-tab:hover {
    background-color: var(--primary-color-light);
    color: var(--primary-color);
    border-color: var(--primary-color-light);
}

.news-tab.active {
    background-color: var(--primary-color);
    color: var(--white);
    border-color: var(--primary-color);
    font-weight: var(--weight-semibold);
}

/* カテゴリ別タブアクティブ色 */
.news-tab[data-category="all"].active {
    background-color: var(--primary-color);
    border-color: var(--primary-color);
}

.news-tab[data-category="news"].active {
    background-color: var(--secondary-color);
    border-color: var(--secondary-color);
}

.news-tab[data-category="products"].active {
    background-color: var(--success-green);
    border-color: var(--success-green);
}

.news-tab[data-category="recruit"].active {
    background-color: var(--accent-color);
    border-color: var(--accent-color);
}

.news-tab[data-category="achievements"].active {
    background-color: var(--decorative-violet);
    border-color: var(--decorative-violet);
}

/* カテゴリ別タブホバー色 */
.news-tab[data-category="news"]:hover {
    background-color: rgba(135, 206, 235, 0.1);
    color: var(--secondary-color);
    border-color: var(--secondary-color);
}

.news-tab[data-category="products"]:hover {
    background-color: rgba(16, 185, 129, 0.1);
    color: var(--success-green);
    border-color: var(--success-green);
}

.news-tab[data-category="recruit"]:hover {
    background-color: rgba(255, 107, 53, 0.1);
    color: var(--accent-color);
    border-color: var(--accent-color);
}

.news-tab[data-category="achievements"]:hover {
    background-color: rgba(124, 58, 237, 0.1);
    color: var(--decorative-violet);
    border-color: var(--decorative-violet);
}

.news-tab:focus {
    outline: 2px solid var(--primary-color);
    outline-offset: 2px;
}

/* 10.3 投稿一覧セクション */
.news-posts-section {
    padding: var(--spacing-2xl) 0;
    background-color: var(--white);
}

.news-posts-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--spacing-xl);
}

/* 10.4 投稿カード */
.news-card {
    background-color: var(--white);
    border: 1px solid var(--border-light);
    border-radius: var(--border-radius-lg);
    padding: var(--spacing-xl);
    transition: var(--transition-base);
    display: flex;
    flex-direction: column;
    height: 100%;
}

.news-card:hover {
    transform: translateY(-4px);
    box-shadow: 0 12px 40px rgba(0, 0, 0, 0.08);
    border-color: var(--border-medium);
}

.news-card__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--spacing-md);
    gap: var(--spacing-sm);
}

.news-card__date {
    font-size: var(--size-sm);
    color: var(--text-muted);
    font-family: 'Courier New', monospace;
    font-weight: var(--weight-medium);
}

.news-card__category-badge {
    font-size: var(--size-xs);
    font-weight: var(--weight-semibold);
    color: var(--white);
    padding: var(--spacing-xs) var(--spacing-sm);
    border-radius: var(--border-radius-sm);
    white-space: nowrap;
}

/* カテゴリーバッジの色分け - ブランドカラー準拠 */
.news-badge--news {
    background-color: var(--secondary-color); /* #87ceeb - セカンダリブルー */
}

.news-badge--products {
    background-color: var(--success-green); /* #10b981 - 新商品グリーン */
}

.news-badge--recruit {
    background-color: var(--accent-color); /* #ff6b35 - 採用オレンジ */
}

.news-badge--achievements {
    background-color: var(--decorative-violet); /* #7c3aed - 事業実績バイオレット */
}

.news-badge--default {
    background-color: var(--text-secondary);
}

.news-card__title {
    margin: 0 0 var(--spacing-md) 0;
    flex: 0 0 auto;
}

.news-card__title-link {
    font-size: var(--size-lg);
    font-weight: var(--weight-semibold);
    color: var(--text-primary);
    text-decoration: none;
    line-height: 1.4;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
    transition: var(--transition-base);
}

.news-card__title-link:hover {
    color: var(--primary-color);
}

.news-card__excerpt {
    font-size: var(--size-base);
    color: var(--text-secondary);
    line-height: 1.6;
    margin-bottom: var(--spacing-lg);
    flex: 1;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.news-card__footer {
    margin-top: auto;
    flex: 0 0 auto;
}

.news-card__read-more {
    font-size: var(--size-sm);
    color: var(--primary-color);
    text-decoration: none;
    font-weight: var(--weight-medium);
    display: inline-flex;
    align-items: center;
    gap: var(--spacing-xs);
    transition: var(--transition-base);
}

.news-card__read-more:hover {
    text-decoration: underline;
    text-underline-offset: 3px;
}

.news-card__read-more-icon {
    font-size: var(--size-xs);
    transition: var(--transition-base);
}

.news-card__read-more:hover .news-card__read-more-icon {
    transform: translateX(4px);
}

/* 10.5 空状態 */
.news-empty-state {
    grid-column: 1 / -1;
    padding: var(--spacing-3xl) var(--spacing-xl);
    text-align: center;
}

.news-empty-message {
    font-size: var(--size-lg);
    color: var(--text-muted);
    margin: 0;
}

/* 10.6 お知らせページ専用 - contact-simpleモジュール背景設定 */
.page-template-page-news .contact-simple-section {
    background: linear-gradient(135deg, #f0f4f8 0%, #e8f2f7 100%);
    position: relative;
    overflow: hidden;
}

.page-template-page-news .contact-simple-section::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background:
        radial-gradient(circle at 20% 80%, rgba(135, 206, 235, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(102, 153, 204, 0.08) 0%, transparent 50%);
    pointer-events: none;
}

.page-template-page-news .contact-simple-section .container {
    position: relative;
    z-index: 1;
}

/* 10.7 レスポンシブ対応 */
@media (max-width: 1024px) {
    .news-posts-grid {
        gap: var(--spacing-lg);
    }

    .news-card {
        padding: var(--spacing-lg);
    }
}

@media (max-width: 768px) {
    .news-category-tabs {
        gap: var(--spacing-xs);
    }

    .news-tab {
        padding: var(--spacing-xs) var(--spacing-md);
        font-size: var(--size-sm);
    }

    .news-posts-grid {
        grid-template-columns: 1fr;
        gap: var(--spacing-lg);
    }

    .news-card {
        padding: var(--spacing-md);
    }

    .news-card__header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--spacing-xs);
    }

    .news-card__category-badge {
        align-self: flex-end;
    }

    .news-card__title-link {
        font-size: var(--size-base);
    }

}

/* カードフィルター表示制御 */
.news-card.hidden {
    display: none !important;
}

/* フィルタリング時のアニメーション */
.news-card {
    opacity: 1;
    transition: opacity 0.3s ease, transform 0.3s ease;
}

.news-card.filtering {
    opacity: 0.5;
}

/* キーボードナビゲーション対応 */
@media (prefers-reduced-motion: reduce) {
    .news-card,
    .news-tab,
    .news-card__read-more-icon {
        transition: none;
    }

    .news-card:hover {
        transform: none;
    }

    .news-card__read-more:hover .news-card__read-more-icon {
        transform: none;
    }
}

/* 高コントラストモード対応 */
@media (prefers-contrast: high) {
    .news-card {
        border-width: 2px;
    }

    .news-tab {
        border-width: 2px;
    }

    .news-tab:focus {
        outline-width: 3px;
    }
}

/* ========================================
   ビジネスページ - リッチ版画像効果適用
======================================== */

/* リッチ版画像実装を--businessに適用 */
.page-title-section--business .page-title-section__image {
    position: absolute;
    top: 0;    /* 背景上端一致 */
    right: 0;  /* 背景右端一致 */
    bottom: 0; /* 背景下端一致 */
    width: 40%; /* テキスト60%と合わせて */
    z-index: 1;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    /* 背景への自然な溶け込み効果 */
    mask-image: linear-gradient(to right,
        transparent 0%,
        rgba(0, 0, 0, 0.005) 3%,
        rgba(0, 0, 0, 0.02) 6%,
        rgba(0, 0, 0, 0.06) 9%,
        rgba(0, 0, 0, 0.12) 12%,
        rgba(0, 0, 0, 0.22) 15%,
        rgba(0, 0, 0, 0.35) 17%,
        rgba(0, 0, 0, 0.45) 19%,
        rgba(0, 0, 0, 0.54) 21%,
        rgba(0, 0, 0, 0.59) 23%,
        rgba(0, 0, 0, 0.61) 25%,
        rgba(0, 0, 0, 0.6) 28%,
        rgba(0, 0, 0, 0.6) 100%);
    -webkit-mask-image: linear-gradient(to right,
        transparent 0%,
        rgba(0, 0, 0, 0.005) 3%,
        rgba(0, 0, 0, 0.02) 6%,
        rgba(0, 0, 0, 0.06) 9%,
        rgba(0, 0, 0, 0.12) 12%,
        rgba(0, 0, 0, 0.22) 15%,
        rgba(0, 0, 0, 0.35) 17%,
        rgba(0, 0, 0, 0.45) 19%,
        rgba(0, 0, 0, 0.54) 21%,
        rgba(0, 0, 0, 0.59) 23%,
        rgba(0, 0, 0, 0.61) 25%,
        rgba(0, 0, 0, 0.6) 28%,
        rgba(0, 0, 0, 0.6) 100%);
}

.page-title-section--business .page-title-section__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    position: relative;
    z-index: 1;
}

/* ビジネスページ専用タイトル・サブタイトルサイズアップ */
.page-title-section--business .page-title-section__title {
    font-size: clamp(var(--size-6xl), 13vw, 9rem); /* 1サイズアップ: 12vw→13vw, 8rem→9rem */
}

.page-title-section--business .page-title-section__subtitle {
    font-size: var(--size-2xl); /* 1サイズアップ: xl→2xl */
}

/* NOMURA QUALITYタイトルに右側区切り線 */
.page-title-section--business .quality-main-title {
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--spacing-lg);
    width: 100%;
}

.page-title-section--business .quality-main-title::after {
    content: '';
    flex: 1;
    height: 2px; /* 太くする */
    background: rgba(255, 255, 255, 0.3);
}

/* クオリティカード - header/bodyレイアウト */
.page-title-section--business .feature-card__header {
    display: flex;
    align-items: center;
    gap: var(--spacing-md);
    margin-bottom: var(--spacing-md);
}

.page-title-section--business .feature-card__icon {
    flex-shrink: 0;
}

.page-title-section--business .feature-card__title {
    margin: 0;
    flex: 1;
}

/* ========================================
   背景差し込みコンポーネント
======================================== */

/* 背景差し込みセクション */
.bg-right-extend {
    position: relative;
    overflow: hidden;
}

.bg-right-extend::before {
    content: '';
    position: absolute;
    top: 0;
    right: 0;
    width: 80%;
    height: 100%;
    background: linear-gradient(60deg, var(--primary-color) 40%, var(--secondary-color) 100%);
    transform: translateX(100%);
    transition: transform 0.8s cubic-bezier(0.4, 0, 0.2, 1);
    z-index: -1;
    border-top-left-radius: 40px;
    border-bottom-left-radius: 40px;
}

/* アニメーション発動時 */
.bg-right-extend.slide-in::before {
    transform: translateX(0);
}

/* 画像の段階的表示（右側から先に表示） */
.examples-images {
    position: relative;
    z-index: 2;
}

.sample-image-item {
    opacity: 0;
    transform: translateY(20px);
    transition: opacity 0.5s ease, transform 0.5s ease;
}

/* 背景差し込み完了後、右側画像から表示開始 */
.bg-right-extend.slide-in .sample-image-item:nth-child(3) {
    transition-delay: 0.3s; /* 3枚目（右端）から最初 */
}

.bg-right-extend.slide-in .sample-image-item:nth-child(2) {
    transition-delay: 0.4s; /* 2枚目（中央） */
}

.bg-right-extend.slide-in .sample-image-item:nth-child(1) {
    transition-delay: 0.5s; /* 1枚目（左端）最後 */
}

.bg-right-extend.slide-in .sample-image-item {
    opacity: 1;
    transform: translateY(0);
}

/* テキストコンテンツのアニメーション（左側なので最後に表示） */
.examples-text-content {
    position: relative;
    z-index: 2;
    opacity: 0;
    transform: translateX(-50px);
    transition: opacity 0.6s ease, transform 0.6s ease;
    transition-delay: 0.7s; /* 左部テキスト最後 */
}

.bg-right-extend.slide-in .examples-text-content {
    opacity: 1;
    transform: translateX(0);
}

/* ========================================
   🔧 差し込み背景セクション レイアウト調整
======================================== */

/* コンテナ内で4:6比率設定 + 差し込み背景と左端揃え */
.examples-cta-section.bg-right-extend .container {
    display: flex !important;
    gap: 2rem !important;
    align-items: center !important;
    margin-left: 20vw !important; /* 差し込み背景と左端を揃える */
}

.examples-cta-section.bg-right-extend .examples-text-content {
    flex: 4 !important; /* 40% */
}

.examples-cta-section.bg-right-extend .examples-images {
    flex: 6 !important; /* 60% */
}

/* bg-grayクラス定義（確実に動作させるため!important使用） */
.bg-gray {
    background-color: var(--background-light) !important;
}




