/* カスケードレイヤーの定義：ここが古いコードに勝つための生命線 */
@layer legacy, core;

@layer core {
  :root {
    /* ========================================
       デザイントークン（8ptグリッド + 流体デザイン）
       ======================================== */

    /* ブレイクポイント参照値 */
    --bp-mobile: 767px;
    --bp-tablet: 1023px;
    --bp-desktop: 1024px;

    /* レイアウト */
    --container-width: 1200px;
    --container-padding: var(--space-40);

    /* カラー */
    --color-primary: #0067C0;
    --color-primary-dark: #0056a3;
    --color-primary-light: #f0f7ff;
    --color-text: #333;
    --color-text-light: #666;
    --color-text-muted: #999;
    --color-bg-gray: #f5f9fc;
    --color-border: #e0e0e0;
    --color-white: #fff;

    /* グラデーション（FV用） */
    --gradient-hero: linear-gradient(45deg, rgb(8, 0, 184) 0%, rgb(29, 143, 225) 67%, rgb(83, 217, 255) 100%);
    --gradient-footer: linear-gradient(45deg, #0800b8 0%, #1d8fe1 67%, #53d9ff 100%);

    /* ========================================
       流体タイポグラフィ（clamp関数）
       min: モバイル, preferred: 流体, max: デスクトップ
       ======================================== */
    --font-family: 'Noto Sans JP', sans-serif;

    /* ヒーロー: 32px → 48px */
    --font-size-hero: clamp(32px, 6vw + 8px, 48px);

    /* セクションタイトル: 28px → 32px */
    --font-size-section-title: clamp(28px, 3vw + 16px, 32px);

    /* カードタイトル: 18px → 22px */
    --font-size-card-title: clamp(18px, 2vw + 10px, 22px);

    /* 本文: 14px → 16px */
    --font-size-body: clamp(14px, 1vw + 10px, 16px);

    /* 小: 13px → 14px */
    --font-size-small: clamp(13px, 0.5vw + 11px, 14px);

    /* 極小: 11px → 12px */
    --font-size-xsmall: clamp(11px, 0.5vw + 9px, 12px);

    /* line-height（8ptグリッド準拠） */
    --line-height-body: 1.75;
    --line-height-heading: 1.25;
    --line-height-tight: 1.4;

    /* ========================================
       8pxスペーシング・システム（デスクトップ基準）
       ======================================== */
    --space-4: 4px;
    --space-8: 8px;
    --space-16: 16px;
    --space-24: 24px;
    --space-32: 32px;
    --space-40: 40px;
    --space-48: 48px;
    --space-64: 64px;
    --space-80: 80px;
    --space-96: 96px;
    --space-128: 128px;

    /* カード */
    --card-radius: var(--space-4);
    --card-shadow: 0 1px 4px rgba(0,0,0,0.04);
    --card-shadow-hover: 0 4px 16px rgba(0, 0, 0, 0.12);
    --card-padding: var(--space-32);

    /* ボタン */
    --btn-radius: var(--space-4);
    --btn-height: 48px;

    /* ヘッダー */
    --header-height: var(--space-80);
    --header-logo-height: 28px;

    /* FV */
    --hero-height: 480px;

    /* アイコンサイズ（4/8の倍数） */
    --icon-sm: 16px;
    --icon-md: 24px;
    --icon-lg: 32px;

    /* トランジション */
    --transition-fast: 0.2s ease;
    --transition-normal: 0.3s ease;
  }

  /* 全体のオーバーフロー制御 */
  html, body {
    overflow-x: hidden;
    max-width: 100vw;
  }

  /* ========================================
     タブレット用変数オーバーライド（768px〜1024px）
     ======================================== */
  @media screen and (min-width: 768px) and (max-width: 1024px) {
    :root {
      --space-64: 40px;
      --space-48: 32px;
      --space-40: 24px;
    }
  }

  /* ========================================
     モバイル用変数オーバーライド（767px以下）
     余白を一括でスケールダウン
     ======================================== */
  @media screen and (max-width: 767px) {
    :root {
      --container-padding: 16px;
      --space-96: 48px;   /* セクション余白を半分に */
      --space-80: 40px;
      --space-64: 32px;
      --space-48: 24px;
      --space-40: 20px;
      --space-32: 16px;
      --space-24: 16px;   /* 最小単位をスマホ向けに維持 */
      --space-16: 12px;
      --card-padding: 16px;
      --header-height: 56px;
      --hero-height: auto;
    }
  }

  /* ========================================
     ベーススタイル
     ======================================== */
  * {
    box-sizing: border-box;
  }

  html {
    overflow-x: hidden;
  }

  body {
    font-family: var(--font-family);
    color: var(--color-text);
    line-height: var(--line-height-body);
    margin: 0;
    padding: 0;
    overflow-x: hidden;
    max-width: 100vw;
  }

  /* メインコンテンツエリアのリセット */
  main {
    display: block;
    width: 100%;
    overflow-x: hidden;
  }

  /* レガシーCSSからの分離 - 新コンポーネント用 */
  [class^="c-"],
  [class*=" c-"] {
    box-sizing: border-box;
    margin: 0;
    padding: 0;
    border: 0;
    font-size: inherit;
    font-weight: inherit;
    line-height: inherit;
  }

  /* レガシーの l-section 汚染防止 */
  main .l-section {
    display: block;
    width: 100%;
    min-height: auto;
    position: relative;
  }

  /* ========================================
     画像・SVGの強制制約（安全装置）
     - すべての画像・SVGが枠を突き破らないようにする
     ======================================== */

  /* 画像の基本制約 */
  img {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
    display: block;
  }

  /* SVGのグローバル制約 - 暴走完全防止 */
  svg {
    max-width: 100%;
    height: auto;
    vertical-align: middle;
    display: inline-block;
  }

  /* インラインSVG（viewBox付き）のデフォルトサイズ強制 */
  svg[viewBox] {
    width: var(--icon-md);
    height: var(--icon-md);
    max-width: var(--icon-lg);
    max-height: var(--icon-lg);
  }

  /* サイト全体の骨格 */
  .l-container {
    max-width: var(--container-width);
    margin-left: auto;
    margin-right: auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
    width: 100%;
    box-sizing: border-box;
  }

  /* PC時はパディングなし（コンテンツ幅1200pxフル） */
  @media screen and (min-width: 1025px) {
    .l-container {
      padding-left: 0;
      padding-right: 0;
    }
  }

  /* 共通のセクション（上下の余白を一斉に揃える） */
  .l-section {
    padding-top: var(--space-80);
    padding-bottom: var(--space-80);
    overflow: hidden;
  }

  /* セクション背景バリエーション */
  .c-section--gray {
    background-color: var(--color-bg-gray);
  }

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

  /* コンテンツエリア - タイポグラフィルール適用 */
  .u-content-area {
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    color: var(--color-text);
  }

  .u-content-area p {
    margin: 0 0 var(--space-16) 0;
  }

  .u-content-area p:last-child {
    margin-bottom: 0;
  }

  .u-content-area ul,
  .u-content-area ol {
    margin: 0 0 var(--space-16) 0;
    padding-left: var(--space-24);
  }

  .u-content-area li {
    margin-bottom: var(--space-8);
  }

  /* モバイルで非表示 */
  .u-hide-mobile {
    display: block;
  }

  /* PC用改行（スマホでは無効化） */
  .u-hide-pc-br {
    display: inline;
  }

  /* ========================================
     ファーストビュー（FV）
     ======================================== */
  .c-hero {
    background: var(--gradient-hero);
    min-height: var(--hero-height);
    display: flex;
    align-items: center;
    position: relative;
    overflow: hidden;
  }

  .c-hero .l-container {
    position: relative;
    z-index: 2;
  }

  .c-hero__inner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: var(--space-32);
    padding: var(--space-40) 0;
  }

  /* テキストエリア - 左50%に制限（手のイラストに被らないように） */
  .c-hero__body {
    flex: 0 0 50%;
    max-width: 580px;
  }

  /* キャッチコピー */
  .c-hero__title {
    font-size: var(--font-size-hero);
    font-weight: 700;
    line-height: var(--line-height-heading);
    margin: 0 0 var(--space-24) 0;
    color: var(--color-white);
  }

  /* 説明文 */
  .c-hero__text {
    font-size: 17px;
    font-weight: 500;
    line-height: var(--line-height-body);
    color: var(--color-white);
    margin: 0 0 var(--space-24) 0;
    opacity: 0.95;
  }

  /* 画像・イラストエリア（右下固定配置、1200px幅に収める） */
  .c-hero__media {
    position: absolute;
    right: max(0px, calc(50% - 600px));
    bottom: -44px;
    pointer-events: none;
  }

  .c-hero__media img {
    height: 420px;
    width: auto;
    display: block;
  }

  /* CTAボタングループ */
  .c-hero__cta {
    display: flex;
    flex-direction: column;
    gap: var(--space-24);
    margin-top: var(--space-24);
    max-width: 500px;
  }

  /* メインCTAボタン（1行目・フル幅） */
  .c-hero__cta-main {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    width: 100%;
    padding: var(--space-16) var(--space-40);
    background: var(--color-white);
    color: var(--color-primary);
    border: none;
    border-radius: var(--btn-radius);
    font-size: 20px;
    font-weight: 600;
    text-decoration: none;
    transition: all var(--transition-normal);
  }

  .c-hero__cta-main:hover,
  .c-hero__cta-main:active {
    background: rgba(255, 255, 255, 0.9);
  }

  /* サブCTAボタン行（2行目・横並び） */
  .c-hero__cta-sub {
    display: flex;
    gap: var(--space-24);
  }

  .c-hero__cta-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    flex: 1;
    padding: var(--space-16) var(--space-24);
    background: transparent;
    color: var(--color-white);
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: var(--btn-radius);
    font-size: 20px;
    font-weight: 600;
    text-decoration: none;
    transition: all var(--transition-normal);
  }

  .c-hero__cta-btn:hover,
  .c-hero__cta-btn:active {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.8);
  }

  /* ========================================
     クライアントロゴバナー
     ======================================== */
  .c-client-banner {
    background: #ffffff;
    padding: var(--space-24) 0;
  }

  .c-client-banner__inner {
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: var(--space-24);
    align-items: center;
  }

  .c-client-banner__logo {
    width: 100%;
    max-width: var(--space-128);
    height: var(--space-48);
    object-fit: contain;
    padding: var(--space-4) var(--space-8);
    border: 1px solid #e5e5e5;
    border-radius: var(--space-4);
    background: #fff;
    box-sizing: border-box;
    justify-self: center;
  }

  /* ========================================
     共通ボタンスタイル
     ======================================== */
  .c-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    height: var(--btn-height);
    padding: 0 var(--space-40);
    border-radius: var(--btn-radius);
    font-size: var(--font-size-small);
    font-weight: 500;
    text-decoration: none;
    transition: all var(--transition-normal);
    cursor: pointer;
    border: none;
  }

  /* ボタン内SVGアイコン - svg[viewBox]の上書き防止 */
  .c-btn__icon {
    width: 16px;
    height: 16px;
    flex-shrink: 0;
  }

  .c-btn--primary {
    background: var(--color-primary);
    color: var(--color-white);
  }
  .c-btn--primary:hover,
  .c-btn--primary:active {
    background: var(--color-primary-dark);
  }

  .c-btn--secondary {
    background: transparent;
    color: var(--color-white);
    border: 1px solid rgba(255, 255, 255, 0.5);
  }
  .c-btn--secondary:hover,
  .c-btn--secondary:active {
    background: rgba(255, 255, 255, 0.1);
  }

  .c-btn--outline {
    background: var(--color-white);
    color: var(--color-text);
    border: 1px solid var(--color-text-muted);
  }
  .c-btn--outline:hover,
  .c-btn--outline:active {
    background: var(--color-bg-gray);
    border-color: var(--color-text-light);
  }

  .c-btn--white {
    background: var(--color-white);
    color: var(--color-primary);
  }
  .c-btn--white:hover,
  .c-btn--white:active {
    background: rgba(255, 255, 255, 0.9);
  }

  /* ボタンサイズバリエーション */
  .c-btn--sm {
    height: 40px;
    padding: 0 var(--space-24);
    font-size: var(--font-size-xsmall);
  }

  .c-btn--full {
    width: 100%;
  }

  /* ========================================
     ヘッダー
     ======================================== */
  /* ヘッダー全体の設定 */
  .l-header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: #ffffff;
    border-bottom: 1px solid #eeeeee;
    z-index: 100;
  }

  .l-header .l-container {
    max-width: 1800px;
  }

  .c-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--header-height);
    width: 100%;
    gap: var(--space-32);
    overflow: hidden;
  }

  .c-header__logo {
    display: flex;
    align-items: center;
    flex-shrink: 0;
  }

  .c-header__logo img {
    height: var(--header-logo-height);
    max-height: var(--header-logo-height);
    width: auto;
    max-width: 200px;
  }

  .c-header__nav {
    display: flex;
    align-items: center;
    gap: var(--space-32);
    margin-left: 400px;
  }

  .c-header__nav-link {
    color: var(--color-text);
    text-decoration: none;
    font-size: 16px;
    font-weight: 500;
    white-space: nowrap;
    transition: color var(--transition-fast);
  }

  .c-header__nav-link:hover {
    color: var(--color-primary);
  }

  .c-header__cta {
    display: flex;
    align-items: center;
    gap: var(--space-24);
    margin-left: 32px;
    flex-shrink: 0;
  }

  /* ヘッダーCTA用ボタン調整 */
  .c-header__cta .c-btn--sm {
    padding: var(--space-8) var(--space-24);
    font-size: 13px;
    min-width: auto;
  }

  .c-header__cta .c-btn__icon {
    width: var(--icon-sm);
    height: var(--icon-sm);
    flex-shrink: 0;
  }

  /* 青枠線ボタン（お役立ち資料用） */
  .c-btn--outline-primary {
    background: var(--color-white);
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    transition: background 0.2s, color 0.2s;
  }

  .c-btn--outline-primary:hover {
    background: var(--color-primary);
    color: var(--color-white);
  }

  .c-btn--outline-primary:hover .c-btn__icon {
    stroke: var(--color-white);
  }

  /* フッターCTAはホバー無効・枠線なし */
  .c-footer-cta .c-btn--outline-primary,
  .c-footer-cta .c-btn--outline-primary:hover,
  .c-footer-cta .c-btn--outline-primary:focus,
  .c-footer-cta .c-btn--outline-primary:active {
    background: var(--color-white);
    color: var(--color-primary);
    border: none;
    transition: none;
  }
  .c-footer-cta .c-btn--outline-primary:hover .c-btn__icon,
  .c-footer-cta .c-btn--outline-primary:focus .c-btn__icon,
  .c-footer-cta .c-btn--outline-primary:active .c-btn__icon {
    stroke: var(--color-primary);
  }

  /* ヘッダーが固定(fixed)の場合、コンテンツが隠れないように調整 */
  body {
    padding-top: var(--header-height);
  }

  /* ========================================
     セクション共通
     ======================================== */
  .c-section--gray {
    background: var(--color-bg-gray);
  }

  .c-section--blue-light {
    background: var(--color-primary-light);
  }

  .c-section__title {
    font-size: var(--font-size-section-title);
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 var(--space-24) 0;
  }

  .c-section__lead {
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: var(--line-height-body);
    color: var(--color-text);
    margin: 0 0 var(--space-40) 0;
    max-width: 800px;
  }

  .c-section__cta {
    text-align: center;
    margin-top: var(--space-80);
  }

  .c-section__cta .c-btn {
    width: 280px;
    font-size: 16px;
  }

  /* 会社概要ページのお知らせCTA */
  .c-company-news__cta .c-btn {
    font-size: 16px;
  }

  /* セクションCTA outlineボタンのホバー（色反転） */
  .c-section__cta .c-btn--outline:hover,
  .c-events-news__cta .c-btn--outline:hover,
  .c-company-news__cta .c-btn--outline:hover {
    background: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
  }

  /* ========================================
     サービスセクション（SAIRU風デザイン）
     ======================================== */
  .c-service-main-card {
    background: #fff;
    border-radius: 4px;
    box-shadow: var(--card-shadow);
    padding: 32px;
    margin-bottom: 20px;
  }

  .c-service-main-card__header {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 40px;
    margin-bottom: 30px;
  }

  .c-service-main-card__left {
    flex: 1;
  }

  .c-service-main-card__title {
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: #333;
    margin-bottom: 20px;
    padding-bottom: 16px;
    border-bottom: 1px solid #e5e5e5;
    line-height: 1;
  }

  .c-service-main-card__title-icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .c-service-main-card__title-icon svg {
    width: 28px;
    height: 28px;
    stroke: #0067C0;
    stroke-width: 2;
    fill: none;
    display: block;
  }

  .c-service-main-card__headline {
    font-size: 18px;
    font-weight: 700;
    color: #0067C0;
    margin-bottom: 16px;
  }

  .c-service-main-card__desc {
    font-size: 16px;
    color: #666;
    line-height: 1.8;
  }

  /* 認定パートナー */
  .c-service-partners {
    flex: 0 0 auto;
    max-width: 360px;
    margin-top: 3px;
  }

  .c-service-partners__label {
    font-size: 14px;
    font-weight: 700;
    color: #333;
    text-align: center;
    margin-bottom: 15px;
  }

  .c-service-partners__grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 15px;
  }

  .c-service-partners__grid img {
    width: 100%;
    height: 50px;
    object-fit: contain;
    border: 1px solid #e5e5e5;
    border-radius: 4px;
    padding: 4px;
    background: #fff;
  }

  /* 2カラムレイアウト */
  .c-service-inner-grid {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: 12px;
  }

  /* 各ボックス共通 */
  .c-service-box {
    border: 1px solid #e5e5e5;
    border-radius: 4px;
    display: flex;
    flex-direction: column;
  }

  /* 大項目リンク */
  .c-service-cat-link {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 16px;
    position: relative;
    text-decoration: none;
  }

  .c-service-cat-link__icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .c-service-cat-link__icon svg {
    width: 20px;
    height: 20px;
    stroke: #0067C0;
    stroke-width: 2;
    fill: none;
    display: block;
  }

  .c-service-cat-link__text {
    font-size: 18px;
    font-weight: 700;
    color: #333;
    flex: 1;
    transition: color 0.25s ease;
  }

  .c-service-cat-link__text span {
    position: relative;
  }

  .c-service-cat-link__arrow {
    color: #0067C0;
    font-size: 16px;
    font-weight: 500;
    transition: transform 0.25s ease;
  }

  .c-service-cat-link:hover .c-service-cat-link__arrow {
    transform: scale(1.3);
  }

  .c-service-cat-link:hover .c-service-cat-link__text {
    color: #0067C0;
  }

  /* 詳細リンク（3×2グリッド） */
  .c-service-sub-links {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px 20px;
    padding: 16px;
    padding-left: 46px;
    border-top: 1px solid #e5e5e5;
    flex: 1;
  }

  .c-service-sub-link,
  .c-service-sub-link:visited {
    font-size: 14px;
    color: #0067C0;
    font-weight: 500;
    display: flex;
    align-items: center;
    gap: 6px;
    text-decoration: none;
  }

  .c-service-sub-link__arrow {
    color: #0067C0;
    transition: transform 0.25s ease;
  }

  .c-service-sub-link__text {
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size 0.3s ease;
  }

  .c-service-sub-link:hover .c-service-sub-link__text {
    background-size: 100% 1px;
  }

  .c-service-sub-link:hover .c-service-sub-link__arrow {
    transform: scale(1.1);
  }

  /* 右カラム */
  .c-service-inner-right {
    display: flex;
    flex-direction: column;
    gap: 12px;
  }

  .c-service-inner-right .c-service-box {
    flex: 1;
  }

  .c-service-inner-right .c-service-cat-link {
    height: 100%;
  }

  /* 下部タブ（3カラムカード） */
  .c-service-tabs {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
  }

  .c-service-tab {
    background: #fff;
    border-radius: 4px;
    box-shadow: var(--card-shadow);
    padding: 32px 24px;
    display: block;
    text-decoration: none;
  }

  .c-service-tab__header {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 12px;
    margin-bottom: 10px;
    border-bottom: 1px solid #e5e5e5;
  }

  .c-service-tab__icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .c-service-tab__icon svg {
    width: 28px;
    height: 28px;
    stroke: #0067C0;
    stroke-width: 2;
    fill: none;
    display: block;
  }

  .c-service-tab__title {
    font-size: 20px;
    font-weight: 700;
    color: #333;
    flex: 1;
    transition: color 0.25s ease;
  }

  .c-service-tab__arrow {
    color: #0067C0;
    font-size: 16px;
    transition: transform 0.25s ease;
  }

  .c-service-tab:hover .c-service-tab__arrow {
    transform: scale(1.3);
  }

  .c-service-tab:hover .c-service-tab__title {
    color: #0067C0;
  }

  .c-service-tab__headline {
    font-size: 18px;
    font-weight: 700;
    color: #0067C0;
    margin-bottom: 8px;
  }

  .c-service-tab__desc {
    font-size: 16px;
    color: #666;
    line-height: 1.6;
  }

  /* レスポンシブ対応 */
  @media (max-width: 1024px) {
    .c-service-main-card__header {
      flex-direction: column;
      gap: 24px;
    }
    .c-service-partners {
      max-width: 100%;
      width: 100%;
    }
    .c-service-partners__grid img:nth-child(5),
    .c-service-partners__grid img:nth-child(7) {
      padding: 10px;
    }
    .c-service-inner-grid {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 767px) {
    .c-service-sub-links {
      grid-template-columns: repeat(2, 1fr);
    }
    .c-service-tabs {
      grid-template-columns: 1fr;
    }
  }

  @media (max-width: 767px) {
    .c-service-sub-links {
      grid-template-columns: 1fr;
    }
    .c-service-partners__grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }

  /* ========================================
     サービス一覧ページ専用（#services）
     ======================================== */
  #services .c-card--service {
    padding: var(--space-40) 0;
  }

  #services .c-card__header {
    padding: 0 var(--space-48);
  }

  /* ========================================
     サービスブロック（広告運用代行 - 新構造）
     ======================================== */
  .c-service-block {
    background: var(--color-primary);
    border-radius: var(--card-radius);
    overflow: hidden;
    margin: 0 var(--space-48) var(--space-32);
    transition: background var(--transition-fast);
  }

  .c-service-block:hover {
    background: #005299;
  }

  .c-service-block__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-16) var(--space-24);
    text-decoration: none;
    transition: background var(--transition-fast);
  }


  .c-service-block__title {
    color: var(--color-white);
    font-size: 16px;
    font-weight: 700;
  }

  .c-service-block__arrow {
    color: var(--color-white);
    font-size: 18px;
  }

  .c-service-block__desc {
    color: var(--color-white);
    font-size: var(--font-size-small);
    line-height: var(--line-height-body);
    padding: 0 var(--space-24) var(--space-32);
    margin: 0;
  }

  .c-service-block__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-16);
    padding: 0 var(--space-24) var(--space-24);
  }

  .c-service-block__item {
    background: var(--color-white);
    color: var(--color-primary);
    padding: var(--space-16);
    border-radius: var(--card-radius);
    font-weight: 600;
    font-size: 14px;
    display: flex;
    justify-content: space-between;
    align-items: center;
    text-decoration: none;
    transition: background var(--transition-fast);
  }

  .c-service-block__item-arrow {
    color: var(--color-primary);
    font-size: 14px;
    opacity: 0.5;
    transition: opacity var(--transition-fast);
  }

  .c-service-block__item:hover {
    background: rgba(255, 255, 255, 0.85);
  }

  .c-service-block__item:hover .c-service-block__item-arrow {
    opacity: 1;
  }

  /* サブサービスグリッド（2カラム） */
  .c-service-sub-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-16);
    padding: 0 var(--space-48);
    margin-bottom: 0;
  }

  .c-service-sub-card {
    display: block;
    text-decoration: none;
    padding: var(--space-24);
    background: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: var(--card-radius);
    transition: background var(--transition-fast);
  }

  .c-service-sub-card:hover {
    background: var(--color-primary-light);
  }

  .c-service-sub-card--bordered {
    border: 1px solid var(--color-primary);
    border-radius: var(--card-radius);
    background: var(--color-white);
  }

  .c-service-sub-card--bordered:hover {
    background: var(--color-primary-light);
  }

  .c-service-sub-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-16);
  }

  .c-service-sub-card__title {
    color: var(--color-primary);
    font-size: 16px;
    font-weight: 700;
  }

  .c-service-sub-card__arrow {
    color: var(--color-primary);
    font-size: 18px;
    opacity: 0.5;
    transition: opacity var(--transition-fast);
  }

  .c-service-sub-card:hover .c-service-sub-card__arrow {
    opacity: 1;
  }

  .c-service-sub-card__desc {
    color: var(--color-text-light);
    font-size: var(--font-size-small);
    line-height: var(--line-height-body);
    margin: 0;
  }

  /* リンクカード（コンサルティング・インハウス） */
  .c-card--link {
    display: block;
    background: var(--color-white);
    border-radius: var(--card-radius);
    padding: var(--space-40) var(--space-48);
    text-decoration: none;
    margin-top: var(--space-24);
    box-shadow: var(--card-shadow);
    transition: background var(--transition-fast);
  }

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

  .c-card__link-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: var(--space-8);
  }

  .c-card__link-header .c-card__heading {
    margin: 0;
  }

  .c-card__arrow {
    color: var(--color-primary);
    font-size: 18px;
    opacity: 0.5;
    transition: opacity var(--transition-fast);
  }

  .c-card--link:hover .c-card__arrow {
    opacity: 1;
  }

  /* 業種特化型支援カード（margin調整） */
  .c-card--service + .c-card--link,
  .c-card--link + .c-card--link,
  .c-card--link + .c-card--service {
    margin-top: var(--space-24);
  }

  .c-card--service:last-child {
    margin-top: var(--space-24);
  }

  .c-card--service > .c-card__body {
    padding: 0 var(--space-48) var(--space-24);
  }

  .c-card--service .c-service-sub-grid {
    padding-top: 0;
  }

  /* ========================================
     特長セクション（2カラムレイアウト）
     ======================================== */

  /* リード文（幅広） */
  .c-section__lead--wide {
    max-width: none;
    margin-bottom: var(--space-64);
    font-weight: 500;
  }

  /* リード文内の強調テキスト（青字） */
  .c-section__emphasis {
    color: var(--color-primary);
    text-decoration: none;
    font-weight: 700;
  }

  /* 特長セクション */
  #feature {
    position: relative;
    overflow: visible;
  }

  .c-feature-hand {
    position: absolute;
    right: 0;
    bottom: -80px;
    height: 320px;
    width: auto;
    pointer-events: none;
    z-index: 10;
  }

  #feature .l-container {
    position: relative;
    z-index: 1;
  }

  /* ブログセクション */
  #blog {
    position: relative;
    overflow: visible;
  }

  .c-blog-hand {
    position: absolute;
    right: 0;
    top: -140px;
    height: 200px;
    width: auto;
    pointer-events: none;
    z-index: 0;
  }

  #blog .l-container {
    position: relative;
    z-index: 1;
  }

  /* 2カラムグリッド */
  .c-feature-grid {
    display: flex;
    gap: var(--space-64);
    margin-bottom: var(--space-80);
  }

  /* カラム共通 */
  .c-feature-col {
    flex: 1;
    display: flex;
    flex-direction: column;
    min-width: 0;
  }

  /* カラムヘッダー（青い縦線付き） */
  .c-feature-header {
    border-left: var(--space-4) solid var(--color-primary);
    padding-left: var(--space-16);
    margin-bottom: var(--space-24);
  }

  .c-feature-header__label {
    display: block;
    font-size: var(--font-size-small);
    font-weight: 500;
    color: var(--color-text-light);
    margin-bottom: var(--space-4);
  }

  .c-feature-header__title {
    font-size: 24px;
    font-weight: 700;
    color: var(--color-primary);
    margin: 0;
  }

  /* カラム内リード文 */
  .c-feature-col__lead {
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: var(--line-height-body);
    color: var(--color-text);
    margin: 0 0 48px 0;
  }

  /* 指標カードラッパー */
  .c-metric-cards {
    display: flex;
    flex-direction: column;
    gap: var(--space-24);
  }

  /* 指標カード（NPS、継続期間） */
  .c-metric-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--card-radius);
    padding: var(--card-padding);
    min-width: 0;
    overflow: hidden;
  }

  .c-metric-card__label {
    display: block;
    font-size: 22px;
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: var(--space-8);
  }

  .c-metric-card__value-row {
    display: flex;
    align-items: baseline;
    gap: var(--space-24);
    margin-bottom: var(--space-16);
  }

  .c-metric-card__value {
    font-size: 56px;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1;
  }

  .c-metric-card__value small {
    font-size: 28px;
  }

  .c-metric-card__year {
    font-size: var(--font-size-small);
    color: var(--color-text-muted);
  }

  .c-metric-card__chart {
    margin-bottom: var(--space-16);
    height: 240px;
    position: relative;
    overflow: visible;
  }

  .c-metric-card__chart canvas {
    width: 100%;
    height: 100%;
  }

  .c-metric-card__desc {
    font-size: var(--font-size-small);
    line-height: var(--line-height-body);
    color: var(--color-text);
    margin: 0 0 var(--space-8) 0;
  }

  .c-metric-card__note {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-muted);
    margin: 0;
  }

  .c-metric-card__note a,
  .c-metric-card__note a:visited {
    color: #0067C0;
  }

  /* 6つの仕組みリスト */
  .c-mechanism-list {
    display: flex;
    flex-direction: column;
    justify-content: space-between;
    flex: 1;
  }

  .c-mechanism {
    display: flex;
    align-items: flex-start;
    gap: var(--space-24);
    padding: var(--space-16) 0;
  }

  .c-mechanism:first-child {
    padding-top: 0;
  }

  .c-mechanism:last-child {
    padding-bottom: 0;
  }

  .c-mechanism + .c-mechanism {
    border-top: 1px solid var(--color-border);
  }

  .c-mechanism__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: var(--space-48);
    height: var(--space-48);
    background: linear-gradient(135deg, rgb(0, 103, 192) 0%, rgb(0, 160, 233) 100%);
    color: var(--color-white);
    border-radius: var(--card-radius);
    flex-shrink: 0;
  }

  .c-mechanism__icon svg {
    width: var(--icon-md);
    height: var(--icon-md);
  }

  .c-mechanism__body {
    flex: 1;
  }

  .c-mechanism__title {
    font-size: 22px;
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 12px 0;
  }

  .c-mechanism__desc {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: var(--line-height-body);
    margin: 0;
  }

  /* ========================================
     お客様の声セクション
     ======================================== */
  .c-logos {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: var(--space-24);
    margin-bottom: var(--space-40);
    padding: var(--card-padding);
    background: var(--color-white);
    border-radius: var(--card-radius);
  }

  .c-logos img {
    height: var(--space-40);
    width: auto;
    opacity: 0.6;
    transition: opacity var(--transition-fast);
  }

  .c-logos img:hover {
    opacity: 1;
  }

  .c-voice-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-24);
  }

  .c-voice-card {
    background: var(--color-white);
    border-radius: var(--card-radius);
    overflow: hidden;
    text-decoration: none;
    box-shadow: var(--card-shadow);
    transition: all var(--transition-normal);
  }

  .c-voice-card:hover .c-voice-card__title-text {
    background-size: 100% 1px;
  }

  .c-voice-card__image {
    aspect-ratio: 16 / 9;
    overflow: hidden;
  }

  .c-voice-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform var(--transition-normal);
  }

  .c-voice-card:hover .c-voice-card__image img {
    transform: none;
  }

  .c-voice-card__body {
    padding: var(--space-16);
  }

  .c-voice-card__company {
    display: block;
    font-size: var(--font-size-xsmall);
    color: var(--color-text-muted);
    margin-bottom: var(--space-8);
  }

  .c-voice-card__title {
    font-size: 17px;
    font-weight: 700;
    color: var(--color-text);
    line-height: var(--line-height-tight);
    margin: 0;
    min-height: var(--space-48);
  }

  .c-voice-card__title-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size 0.3s ease;
  }

  /* ========================================
     ブログセクション
     ======================================== */
  .c-blog-header {
    text-align: center;
  }

  .c-blog-header__logo {
    height: var(--space-80);
    margin: 0 auto var(--space-24);
  }

  .c-blog-header__desc {
    font-size: var(--font-size-body);
    color: var(--color-text);
    line-height: var(--line-height-body);
    font-weight: 500;
    margin: 0 auto var(--space-64);
  }

  .c-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-48) var(--space-24);
  }

  .c-blog-card {
    text-decoration: none;
    transition: all var(--transition-normal);
  }

  .c-blog-card:hover .c-blog-card__title-text {
    background-size: 100% 1px;
  }

  .c-blog-card__image {
    aspect-ratio: 16 / 9;
    overflow: hidden;
    border-radius: var(--card-radius);
    margin-bottom: var(--space-8);
  }

  .c-blog-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .c-blog-card__body {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-24);
  }

  .c-blog-card__date {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-muted);
  }

  .c-blog-card__category {
    font-size: var(--font-size-xsmall);
    color: var(--color-primary);
    background: var(--color-primary-light);
    padding: var(--space-4) var(--space-8);
    border-radius: var(--space-4);
  }

  .c-blog-card__title {
    display: block;
    font-size: 17px;
    font-weight: 700;
    color: var(--color-text);
    line-height: var(--line-height-tight);
    margin: var(--space-4) 0 0 0;
    min-height: var(--space-48);
  }

  .c-blog-card__title-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size 0.3s ease;
  }

  /* ========================================
     セミナー・イベント＆お知らせセクション
     ======================================== */
  .c-events-news {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-64);
  }

  .c-events-news__column {
    display: flex;
    flex-direction: column;
  }

  .c-events-news__header {
    margin-bottom: var(--space-24);
    padding-bottom: var(--space-16);
    border-bottom: 2px solid var(--color-primary);
  }

  .c-events-news__title {
    font-size: 24px;
    font-weight: 700;
    color: var(--color-text);
    margin: 0;
  }

  .c-events-news__list {
    display: flex;
    flex-direction: column;
    flex: 1;
  }

  .c-events-news__cta {
    margin-top: auto;
    padding-top: var(--space-24);
    text-align: center;
  }

  .c-events-news__cta .c-btn {
    width: 280px;
    font-size: 16px;
  }

  /* セミナー・イベントアイテム（左カラム） */
  .c-event-item {
    display: flex;
    align-items: center;
    gap: var(--space-24);
    padding: var(--space-24) 0;
    border-bottom: 1px solid var(--color-border);
    text-decoration: none;
    color: inherit;
    transition: background var(--transition-fast);
    flex: 1;
  }

  .c-event-item:last-child {
    border-bottom: none;
  }

  .c-event-item__thumb {
    flex-shrink: 0;
    width: 160px;
    height: 80px;
    background: #ddd;
    border-radius: var(--card-radius);
    overflow: hidden;
  }

  .c-event-item__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .c-event-item__body {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }

  .c-event-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-24);
    font-size: 13px;
    color: var(--color-text-light);
    margin-bottom: var(--space-8);
  }

  .c-event-item__date {
    font-weight: 500;
    color: var(--color-text);
  }

  .c-event-item__title {
    font-size: 15px;
    font-weight: 600;
    color: var(--color-text);
    line-height: var(--line-height-tight);
    margin: 0 0 var(--space-8) 0;
  }

  .c-event-item__title-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size 0.3s ease;
  }

  .c-event-item:hover .c-event-item__title-text {
    background-size: 100% 1px;
  }

  .c-event-item__status {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-muted);
  }

  .c-event-item__status.is-open {
    color: var(--color-primary);
    font-weight: 500;
  }

  /* お知らせアイテム（右カラム） */
  .c-news-item {
    display: block;
    padding: var(--space-24) 0;
    border-bottom: 1px solid var(--color-border);
    text-decoration: none;
    color: inherit;
    transition: background var(--transition-fast);
    flex: 1;
  }

  .c-news-item:last-child {
    border-bottom: none;
  }

  .c-news-item__meta {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-24);
    font-size: 13px;
    margin-bottom: var(--space-8);
  }

  .c-news-item__date {
    font-weight: 500;
    color: var(--color-text);
  }

  .c-news-item__category {
    color: var(--color-text-muted);
  }

  .c-news-item__title {
    font-size: 15px;
    font-weight: 600;
    color: var(--color-text);
    line-height: var(--line-height-tight);
    margin: 0;
  }

  .c-news-item__title-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size 0.3s ease;
  }

  .c-news-item:hover .c-news-item__title-text {
    background-size: 100% 1px;
  }


  /* ========================================
     フッターCTA
     ======================================== */
  .c-footer-cta {
    background: var(--gradient-footer);
    padding: var(--space-80) 0;
  }

  .c-footer-cta__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-24);
  }

  .c-footer-cta__item {
    text-align: center;
    color: var(--color-white);
    background: transparent;
    border: 1px solid var(--color-white);
    border-radius: var(--card-radius);
    padding: var(--space-40);
    display: flex;
    flex-direction: column;
  }

  .c-footer-cta__label {
    display: block;
    font-size: var(--font-size-xsmall);
    font-weight: 500;
    letter-spacing: 0.1em;
    color: var(--color-white);
    margin-bottom: var(--space-8);
  }

  .c-footer-cta__title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-white);
    margin: 0 0 var(--space-16) 0;
  }

  .c-footer-cta__desc {
    font-size: var(--font-size-small);
    font-weight: 500;
    line-height: var(--line-height-body);
    color: var(--color-white);
    margin: 0 0 var(--space-24) 0;
  }

  .c-footer-cta__item .c-btn {
    min-width: 224px;
    height: 48px;
    background: var(--color-white);
    color: var(--color-primary);
    border-color: var(--color-white);
    font-weight: 600;
    margin-top: auto;
    align-self: center;
  }

  /* ========================================
     フッター
     ======================================== */
  .l-footer {
    background: var(--color-white);
    color: var(--color-text);
    padding: var(--space-48) 0 var(--space-24);
  }

  .c-footer__inner {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: var(--space-32);
    margin-bottom: var(--space-32);
  }

  /* 左側: ブランド情報 */
  .c-footer__brand {
    display: flex;
    flex-direction: column;
    gap: var(--space-24);
    flex-shrink: 0;
  }

  .c-footer__logo {
    display: block;
  }

  .c-footer__logo img {
    height: 28px;
    width: auto;
  }

  .c-footer__social {
    display: flex;
    gap: var(--space-24);
  }

  .c-footer__social-link {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    color: var(--color-text);
    transition: color var(--transition-fast);
  }

  .c-footer__social-link:hover {
    color: var(--color-primary);
  }

  .c-footer__social-link:first-child {
    margin-left: -8px;
  }

  /* 右側: ナビゲーション（横並び） */
  .c-footer__nav {
    display: flex;
    gap: var(--space-24);
    align-items: flex-start;
  }

  .c-footer__nav-item {
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
  }

  .c-footer__nav-link {
    text-decoration: none;
    transition: color var(--transition-fast);
    white-space: nowrap;
  }

  .c-footer__nav-link--main {
    font-size: var(--font-size-small);
    font-weight: 700;
    color: var(--color-text);
  }

  .c-footer__nav-link--sub {
    font-size: 13px;
    color: var(--color-text-light);
  }

  .c-footer__nav-link:hover {
    color: var(--color-primary);
  }

  /* 下部: プライバシーポリシー・コピーライト */
  .c-footer__bottom {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    padding-top: var(--space-24);
  }

  .c-footer__privacy {
    font-size: var(--font-size-xsmall);
    font-weight: 700;
    color: var(--color-text);
    text-decoration: none;
    transition: color var(--transition-fast);
    justify-self: start;
  }

  .c-footer__privacy:hover {
    color: var(--color-primary);
  }

  .c-footer__links {
    display: flex;
    align-items: center;
    gap: 0.5em;
  }

  .c-footer__separator {
    color: var(--color-text-light);
    font-size: var(--font-size-xsmall);
  }

  .c-footer__copyright {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-light);
    margin: 0;
    text-align: center;
  }

  /* ========================================
     ハンバーガーメニュー（モバイル用）
     ======================================== */
  .c-header__hamburger {
    display: none;
    flex-direction: column;
    justify-content: center;
    align-items: center;
    width: 48px;
    height: 48px;
    background: none;
    border: none;
    cursor: pointer;
    padding: var(--space-8);
    gap: 6px;
  }

  .c-header__hamburger span {
    display: block;
    width: 24px;
    height: 2px;
    background: var(--color-text);
    transition: all var(--transition-fast);
  }

  .c-header__hamburger.is-active span:nth-child(1) {
    transform: rotate(45deg) translate(6px, 6px);
  }

  .c-header__hamburger.is-active span:nth-child(2) {
    opacity: 0;
  }

  .c-header__hamburger.is-active span:nth-child(3) {
    transform: rotate(-45deg) translate(6px, -6px);
  }

  /* モバイルナビゲーション */
  .c-header__mobile-nav {
    display: none;
    position: fixed;
    top: var(--header-height);
    left: 0;
    right: 0;
    bottom: 0;
    background: var(--color-white);
    padding: var(--space-24);
    overflow-y: auto;
    z-index: 99;
  }

  .c-header__mobile-nav.is-open {
    display: block;
  }

  .c-header__mobile-nav-link {
    display: block;
    padding: var(--space-16) 0;
    color: var(--color-text);
    text-decoration: none;
    font-size: var(--font-size-body);
    font-weight: 500;
    border-bottom: 1px solid var(--color-border);
  }

  .c-header__mobile-nav-link:last-child {
    border-bottom: none;
  }

  .c-header__mobile-cta {
    display: flex;
    flex-direction: row;
    gap: var(--space-12);
    margin-top: var(--space-24);
    padding-top: var(--space-24);
    border-top: 1px solid var(--color-border);
  }

  .c-header__mobile-cta .c-btn {
    flex: 1;
    padding-left: var(--space-8);
    padding-right: var(--space-8);
    font-size: 14px;
    white-space: nowrap;
  }

  /* ========================================
     レスポンシブ（小さめPC: 1025px - 1280px）
     コンテナ幅1200pxが収まらない画面向け
     ======================================== */
  @media screen and (min-width: 1025px) and (max-width: 1280px) {
    /* コンテナにパディング追加（見切れ防止） */
    .l-container {
      padding-left: var(--space-16);
      padding-right: var(--space-16);
    }

    /* ヘッダーCTA：margin縮小（見切れ防止） */
    .c-header__cta {
      margin-left: 0;
    }

    /* フッターCTA：gap縮小 */
    .c-footer-cta__grid {
      gap: var(--space-16);
    }

    /* フッターCTA：カード内パディング縮小 */
    .c-footer-cta__item {
      padding: var(--space-24);
    }

    /* フッターCTA：ボタン最小幅解除 */
    .c-footer-cta__item .c-btn {
      min-width: auto;
      width: 100%;
    }

    /* フッターナビ：gap縮小 */
    .c-footer__nav {
      gap: var(--space-16);
    }
  }

  /* ========================================
     レスポンシブ（タブレット: 768px - 1024px）
     ======================================== */
  @media screen and (min-width: 768px) and (max-width: 1024px) {
    /* ----------------------------------------
       ホバーアニメーション無効化
       ---------------------------------------- */
    .c-btn,
    .c-blog-card,
    .c-voice-card,
    .c-card,
    .c-service-tab {
      transition: none;
    }

    /* ----------------------------------------
       ヘッダー（ハンバーガーメニュー化）
       ---------------------------------------- */
    .l-header .l-container {
      padding-left: var(--space-24);
      padding-right: var(--space-24);
    }

    .c-header__inner {
      justify-content: space-between;
    }

    .c-header__logo {
      width: auto;
    }

    .c-header__nav {
      display: none;
    }

    .c-header__cta {
      display: none;
    }

    .c-header__hamburger {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      width: 44px;
      height: 44px;
      background: none;
      border: none;
      cursor: pointer;
      gap: 6px;
      padding: 0;
    }

    .c-header__hamburger span {
      display: block;
      width: 24px;
      height: 2px;
      background: var(--color-text);
    }

    /* ----------------------------------------
       ヒーローセクション
       ---------------------------------------- */
    .c-hero__inner {
      flex-direction: column;
      gap: var(--space-24);
      text-align: center;
    }

    .c-hero__body {
      flex: none;
      max-width: 100%;
    }

    .c-hero__media {
      display: none;
    }

    .c-hero__cta {
      margin-left: auto;
      margin-right: auto;
    }

    /* ----------------------------------------
       クライアントロゴバナー（タブレット）
       ---------------------------------------- */
    .c-client-banner__inner {
      grid-template-columns: repeat(4, 1fr);
      gap: 16px;
    }

    .c-client-banner__logo {
      max-width: none;
      height: 40px;
      padding: var(--space-4);
      justify-self: stretch;
    }

    /* ----------------------------------------
       サービスセクション
       ---------------------------------------- */
    .c-card__header {
      flex-direction: column;
    }

    .c-partners {
      width: 100%;
      max-width: none;
    }

    .c-service-grid {
      grid-template-columns: 1fr;
    }

    .c-service-tabs {
      grid-template-columns: 1fr;
    }

    /* ----------------------------------------
       特長セクション リード文
       ---------------------------------------- */
    .c-section__lead-sentence1 {
      display: block;
      margin-bottom: 0.5em;
    }
    .c-section__lead--wide br,
    .c-blog-header__desc br {
      display: none;
    }
    /* 特長・ブログセクション説明文の行間を詰める */
    .l-section .c-section__lead.c-section__lead--wide,
    .l-section .c-blog-header__desc {
      line-height: 1.5;
    }

    /* ----------------------------------------
       特長セクション（1カラム縦並び）
       ---------------------------------------- */
    .c-feature-hand,
    .c-blog-hand {
      display: none;
    }

    .c-feature-grid {
      flex-direction: column;
      gap: var(--space-48);
      width: 100%;
      max-width: 100%;
    }

    .c-feature-col {
      width: 100%;
      max-width: 100%;
    }

    .c-metric-card__value {
      font-size: 48px;
    }

    .c-metric-card__value small {
      font-size: 24px;
    }

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

    .c-mechanism-list {
      grid-template-columns: 1fr;
    }

    /* セミナー・ニュース */
    .c-events-news {
      grid-template-columns: 1fr;
      gap: var(--space-32);
    }

    /* ----------------------------------------
       カードグリッド（2カラム）
       ---------------------------------------- */
    .c-voice-grid,
    .c-blog-grid {
      grid-template-columns: repeat(2, 1fr);
    }

    /* ----------------------------------------
       フッターCTA（3カラム横並び）
       ---------------------------------------- */
    .c-footer-cta__grid {
      grid-template-columns: repeat(3, 1fr);
      gap: var(--space-16);
    }

    .c-footer-cta__item {
      padding: var(--space-24);
      display: flex;
      flex-direction: column;
      min-width: 0;
    }

    .c-footer-cta__title {
      font-size: 18px;
    }

    .c-footer-cta__desc {
      font-size: 13px;
    }

    .c-footer-cta__desc br {
      display: none;
    }

    .c-footer-cta__item .c-btn {
      margin-top: auto;
      min-width: auto;
      width: 100%;
      padding: 0 var(--space-16);
      font-size: 13px;
    }

    /* ----------------------------------------
       フッターナビゲーション（PC版と同様、gapを狭く）
       ---------------------------------------- */
    .c-footer__nav {
      display: flex;
      flex-wrap: wrap;
      gap: var(--space-24);
      justify-content: flex-start;
    }

    .c-footer__nav-item {
      position: static;
      flex-direction: column;
      gap: var(--space-16);
    }

    /* サブリンクを非表示 */
    .c-footer__nav-link--sub {
      display: none;
    }

    .c-footer__inner {
      flex-direction: column;
      gap: var(--space-32);
    }
  }

  /* ========================================
     レスポンシブ（タブレット: 768px〜1024px）
     ======================================== */
  @media screen and (min-width: 768px) and (max-width: 1024px) {
    /* ヘッダー：ロゴ中央揃え */
    .c-header__inner {
      justify-content: center;
      position: relative;
    }
    .c-header__nav {
      display: none;
    }
    .c-header__cta {
      display: none;
    }
    .c-header__hamburger {
      display: flex;
      position: absolute;
      right: 0;
    }
  }

  /* ========================================
     レスポンシブ（モバイル: 767px以下）
     余白は:rootで自動調整済み
     ======================================== */
  @media screen and (max-width: 767px) {
    /* ホバーアニメーション無効化 */
    .c-btn,
    .c-blog-card,
    .c-voice-card,
    .c-card,
    .c-service-tab {
      transition: none;
    }

    /* ユーティリティクラス */
    .u-hide-mobile {
      display: none;
    }

    .u-hide-pc-br br {
      display: none;
    }

    /* ヘッダー */
    .l-header .l-container {
      padding-left: var(--space-16);
      padding-right: var(--space-16);
    }

    .c-header__inner {
      justify-content: center;
      position: relative;
    }

    .c-header__logo {
      width: auto;
    }

    .c-header__logo img {
      max-width: 110px;
    }

    .c-header__nav {
      display: none;
    }

    .c-header__cta {
      display: none;
    }

    .c-header__hamburger {
      display: flex;
      position: absolute;
      right: 0;
    }

    /* FV */
    .c-hero {
      min-height: var(--hero-height);
      padding: var(--space-40) 0;
    }

    .c-hero__inner {
      flex-direction: column;
      gap: var(--space-24);
      text-align: center;
    }

    .c-hero__body {
      flex: none;
      max-width: 100%;
    }

    .c-hero__text {
      font-size: clamp(10px, 2.8vw, 17px);
    }

    .c-hero__cta {
      align-items: center;
      margin-left: auto;
      margin-right: auto;
    }

    .c-hero__cta-sub {
      flex-direction: column;
      width: 100%;
    }

    /* ヒーロー画像は非表示 */
    .c-hero__media {
      display: none;
    }

    .c-hero__media img {
      max-height: 200px;
    }

    /* クライアントロゴバナー */
    .c-client-banner__inner {
      grid-template-columns: repeat(4, 1fr);
    }

    .c-client-banner__logo {
      max-width: none;
      height: 40px;
      padding: var(--space-4);
    }

    /* サービスセクション */
    .c-card__header {
      flex-direction: column;
    }

    #services .c-card__header {
      padding: 0 var(--space-32);
    }

    .c-partners {
      width: 100%;
      max-width: none;
    }

    .c-service-grid {
      grid-template-columns: 1fr;
    }

    .c-service-main__items {
      grid-template-columns: 1fr;
    }

    .c-service-sub {
      flex-direction: column;
    }

    .c-service-tabs {
      grid-template-columns: 1fr;
    }

    /* 新サービスブロック（モバイル） */
    .c-service-block {
      margin: 0 var(--space-32) var(--space-24);
    }

    .c-service-block__grid {
      grid-template-columns: repeat(2, 1fr);
      gap: var(--space-8);
    }

    .c-service-block__header {
      padding: var(--space-16);
    }

    .c-service-block__desc {
      padding: 0 var(--space-16) var(--space-24);
      font-size: 13px;
    }

    .c-service-block__grid {
      padding: 0 var(--space-16) var(--space-16);
    }

    .c-service-block__item {
      padding: var(--space-12);
      font-size: 13px;
    }

    .c-service-sub-grid {
      grid-template-columns: 1fr;
      padding: 0 var(--space-32);
      margin-bottom: 0;
    }

    .c-service-sub-card {
      padding: var(--card-padding);
    }

    .c-card--link {
      padding: var(--space-32);
    }

    .c-card--service > .c-card__body {
      padding: 0 var(--space-32) var(--space-16);
    }

    /* ========================================
       (1) 媒体ロゴの拡大
       ======================================== */
    .c-partners__grid {
      grid-template-columns: repeat(2, 1fr);
      gap: 12px;
    }

    .c-partners__grid img {
      width: 100%;
      height: auto;
      object-fit: contain;
      max-height: 60px;
      padding: 12px;
    }

    /* 特長セクション リード文の余白 */
    .c-section__lead-sentence1 {
      display: block;
      margin-bottom: 1em;
    }
    .c-section__lead--wide br,
    .c-blog-header__desc br {
      display: none;
    }
    /* 特長・ブログセクション説明文の行間を詰める */
    .l-section .c-section__lead.c-section__lead--wide,
    .l-section .c-blog-header__desc {
      line-height: 1.5;
    }

    /* ========================================
       (2) 特長セクションの幅修正（見切れ解消）
       ======================================== */
    .c-feature-hand,
    .c-blog-hand {
      display: none;
    }

    .c-feature-grid,
    .c-feature-col,
    .c-metric-cards {
      width: 100%;
      max-width: 100%;
    }

    .c-feature-grid {
      flex-direction: column;
      gap: 48px;
    }

    /* 6つの仕組み - アイコンを上揃え */
    .c-mechanism {
      align-items: flex-start;
    }

    .c-mechanism__title {
      line-height: 1;
    }

    .c-metric-card__chart canvas {
      width: 100%;
      height: auto;
    }

    .c-metric-card__value {
      font-size: clamp(36px, 8vw, 44px);
    }

    .c-metric-card__value small {
      font-size: clamp(18px, 4vw, 22px);
    }

    /* カードグリッド - モバイルは1カラム */
    .c-voice-grid,
    .c-blog-grid {
      grid-template-columns: 1fr;
    }

    /* カードタイトルの min-height 解除（モバイルでは不要） */
    .c-voice-card__title,
    .c-blog-card__title {
      min-height: auto;
    }

    /* セミナー・ニュース */
    .c-events-news {
      grid-template-columns: 1fr;
      gap: var(--space-32);
    }

    .c-event-item {
      flex-direction: column;
      align-items: stretch;
      gap: var(--space-16);
    }

    .c-event-item__thumb {
      width: 100%;
      height: auto;
      aspect-ratio: 16 / 9;
    }

    .c-events-news__cta .c-btn {
      width: 100%;
      max-width: 320px;
    }

    /* フッターCTA */
    .c-footer-cta__grid {
      grid-template-columns: 1fr;
    }

    .c-footer-cta__item .c-btn {
      width: 100%;
      max-width: 320px;
      min-width: auto;
    }

    /* フッター */
    .c-footer__inner {
      flex-direction: column;
      align-items: center;
      text-align: center;
    }

    .c-footer__brand {
      align-items: center;
    }

    /* ========================================
       (3) フッターサイトマップの2カラム配置
       ======================================== */
    .c-footer__nav {
      display: grid;
      grid-template-columns: repeat(4, auto);
      gap: var(--space-8) var(--space-16);
      width: 100%;
      justify-content: center;
    }

    .c-footer__nav-item {
      text-align: center;
    }

    .c-footer__nav-link--main {
      font-size: 12px;
    }

    /* サブリンクは非表示 */
    .c-footer__nav-link--sub {
      display: none;
    }

    .c-footer__bottom {
      grid-template-columns: 1fr;
      gap: var(--space-16);
      text-align: center;
    }

    .c-footer__privacy {
      justify-self: center;
    }

    .c-footer__links {
      justify-self: center;
    }

    /* CTAボタン - モバイルはフル幅 */
    .c-section__cta .c-btn {
      width: 100%;
      max-width: 320px;
    }
  }

  /* ========================================
     下層ページ共通コンポーネント
     ======================================== */

  /* ----------------------------------------
     パンくずリスト
     ---------------------------------------- */
  .c-breadcrumb {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    font-size: var(--font-size-xsmall);
    color: var(--color-text-light);
    margin-bottom: var(--space-24);
  }

  .c-breadcrumb a {
    color: var(--color-text-light);
    text-decoration: none;
    transition: color var(--transition-fast);
  }

  .c-breadcrumb a:hover {
    color: var(--color-primary);
  }

  .c-breadcrumb span {
    color: var(--color-text-muted);
  }

  /* ----------------------------------------
     下層ページFV（サービスページ等）
     ---------------------------------------- */
  .c-page-fv {
    background: var(--color-white);
    padding: var(--space-32) 0 var(--space-48);
    position: relative;
  }

  /* グラデーション背景バリエーション */
  .c-page-fv--gradient {
    background: var(--gradient-hero);
    padding: var(--space-64) 0 var(--space-80);
  }

  /* グレー背景バリエーション（グラデーションと同じ高さ） */
  .c-page-fv--gray {
    background: var(--color-bg-gray);
    padding: var(--space-64) 0 var(--space-80);
  }

  /* FV共通の高さ設定（360px固定 - 会社概要・メンバーページと統一） */
  .c-page-fv--gradient,
  .c-page-fv--gray {
    height: 360px;
    display: flex;
    align-items: center;
    padding: 0;
  }

  .c-page-fv--gradient .l-container,
  .c-page-fv--gray .l-container {
    width: 100%;
  }

  /* FV内サービスマップエリア（サービスマップ幅ぴったり） */
  .c-page-fv .c-page-fv__right {
    flex: none;
    width: 380px;
    max-width: 380px;
    display: flex;
    justify-content: center;
    align-items: center;
  }

  .c-page-fv .c-service-map {
    width: 380px;
    height: 380px;
  }

  .c-page-fv .c-service-map__ring {
    width: 250px;
    height: 250px;
    border-color: rgba(255, 255, 255, 0.3);
  }

  .c-page-fv .c-service-map__center {
    width: 130px;
    height: 130px;
  }

  .c-page-fv .c-service-map__item {
    width: 82px;
    height: 82px;
    padding: 8px;
  }

  .c-page-fv .c-service-map__item svg {
    width: 20px;
    height: 20px;
    margin-bottom: 3px;
    flex-shrink: 0;
  }

  .c-page-fv .c-service-map__item-text {
    font-size: 10px;
    line-height: 1.25;
    word-break: keep-all;
  }

  /* 正六角形配置（リング半径125px、アイテム中心がリング上に乗る） */
  .c-page-fv .c-service-map__item--pos-1 { top: 24px; }
  .c-page-fv .c-service-map__item--pos-2 { top: 87px; right: 41px; }
  .c-page-fv .c-service-map__item--pos-3 { bottom: 87px; right: 41px; }
  .c-page-fv .c-service-map__item--pos-4 { bottom: 24px; }
  .c-page-fv .c-service-map__item--pos-5 { bottom: 87px; left: 41px; }
  .c-page-fv .c-service-map__item--pos-6 { top: 87px; left: 41px; }

  .c-page-fv--gradient .c-page-fv__breadcrumb,
  .c-page-fv--gradient .c-page-fv__breadcrumb a,
  .c-page-fv--gradient .c-page-fv__breadcrumb span {
    color: rgba(255, 255, 255, 0.8);
  }

  .c-page-fv--gradient .c-page-fv__breadcrumb a:hover {
    color: var(--color-white);
  }

  .c-page-fv--gradient .c-page-fv__title {
    color: var(--color-white);
  }

  .c-page-fv--gradient .c-page-fv__desc {
    color: var(--color-white);
    font-size: 17px;
    font-weight: 500;
    opacity: 0.95;
    max-width: 600px;
    margin-left: auto;
    margin-right: auto;
  }

  /* グラデーション背景用ボタン（TOPヒーローと統一） */
  .c-page-fv--gradient .c-page-fv__buttons {
    gap: var(--space-24);
    max-width: 500px;
    margin-left: auto;
    margin-right: auto;
  }

  .c-page-fv--gradient .c-page-fv__buttons .c-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    flex: 1;
    height: auto;
    padding: var(--space-16) var(--space-40);
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: var(--btn-radius);
    font-size: 17px;
    font-weight: 600;
    line-height: 1.75;
    text-decoration: none;
    transition: all var(--transition-normal);
  }

  .c-page-fv--gradient .c-page-fv__buttons .c-btn:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.8);
  }

  .c-page-fv__breadcrumb {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-light);
    margin-bottom: var(--space-48);
  }

  .c-page-fv__breadcrumb a {
    color: var(--color-text-light);
    text-decoration: none;
    transition: color var(--transition-fast);
  }

  .c-page-fv__breadcrumb a:hover {
    color: var(--color-primary);
  }

  .c-page-fv__breadcrumb span {
    margin: 0 var(--space-8);
  }

  .c-page-fv__main {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-64);
  }

  .c-page-fv__content {
    flex: 1;
    max-width: 767px;
    text-align: center;
  }

  .c-page-fv__title {
    font-size: clamp(32px, 5vw, 42px);
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 var(--space-24) 0;
    line-height: var(--line-height-heading);
  }

  .c-page-fv__desc {
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    color: var(--color-text);
    margin: 0 0 var(--space-32) 0;
  }

  .c-page-fv__buttons {
    display: flex;
    gap: var(--space-16);
    flex-wrap: wrap;
    justify-content: center;
  }

  .c-page-fv__right {
    flex: 0 0 auto;
    max-width: 540px;
  }

  /* サービスナビカード */
  .c-service-nav {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-16);
  }

  .c-service-nav__card {
    display: flex;
    align-items: center;
    gap: var(--space-16);
    background: var(--color-bg-gray);
    padding: var(--space-16);
    border-radius: var(--card-radius);
    text-decoration: none;
    color: var(--color-text);
    transition: all var(--transition-fast);
    border: 1px solid transparent;
  }

  .c-service-nav__card:hover {
    background: var(--color-white);
    border-color: var(--color-primary);
    box-shadow: var(--card-shadow-hover);
  }

  .c-service-nav__icon {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, var(--color-primary), #00a0e9);
    border-radius: var(--card-radius);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .c-service-nav__icon svg {
    width: 20px;
    height: 20px;
    fill: var(--color-white);
  }

  .c-service-nav__title {
    flex: 1;
    font-size: var(--font-size-small);
    font-weight: 600;
  }

  .c-service-nav__arrow {
    flex-shrink: 0;
    color: var(--color-primary);
    font-size: var(--font-size-body);
  }

  /* ----------------------------------------
     タブ切替コンポーネント
     ---------------------------------------- */
  .c-tabs__nav {
    display: flex;
    justify-content: center;
    gap: var(--space-8);
    margin-bottom: var(--space-32);
    flex-wrap: wrap;
  }

  .c-tabs__btn {
    background: var(--color-bg-gray);
    border: none;
    padding: var(--space-8) var(--space-24);
    border-radius: var(--space-24);
    font-size: var(--font-size-small);
    font-weight: 500;
    color: var(--color-text-light);
    cursor: pointer;
    transition: all var(--transition-fast);
  }

  .c-tabs__btn:hover {
    background: var(--color-border);
  }

  .c-tabs__btn.is-active {
    background: var(--color-primary);
    color: var(--color-white);
  }

  .c-tabs__content {
    display: none;
  }

  .c-tabs__content.is-active {
    display: block;
  }

  /* ----------------------------------------
     相談カードグリッド
     ---------------------------------------- */
  .c-consultation-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-16);
  }

  .c-consultation-card {
    background: var(--color-bg-gray);
    border-radius: var(--card-radius);
    padding: var(--space-24);
  }

  .c-consultation-card__voice {
    font-size: var(--font-size-body);
    color: var(--color-text);
    line-height: var(--line-height-body);
    position: relative;
    padding-left: var(--space-24);
    margin: 0;
  }

  .c-consultation-card__voice::before {
    content: '"';
    position: absolute;
    left: 0;
    top: -4px;
    font-size: 24px;
    color: var(--color-primary);
    font-family: Georgia, serif;
  }

  /* ----------------------------------------
     特徴リスト
     ---------------------------------------- */
  .c-feature-list {
    display: flex;
    flex-direction: column;
    gap: var(--space-32);
  }

  .c-feature-item {
    padding-left: var(--space-16);
  }

  .c-feature-item__header {
    display: flex;
    align-items: baseline;
    gap: var(--space-16);
    margin-bottom: var(--space-8);
  }

  .c-feature-item__num {
    font-size: var(--font-size-section-title);
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1;
  }

  .c-feature-item__title {
    font-size: var(--font-size-body);
    font-weight: 700;
    color: var(--color-text);
    margin: 0;
  }

  .c-feature-item__desc {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: var(--line-height-body);
    margin: 0;
    padding-left: var(--space-40);
  }

  /* ----------------------------------------
     支援内容グリッド
     ---------------------------------------- */
  .c-support-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-24);
  }

  .c-support-card {
    border: 1px solid var(--color-border);
    border-radius: var(--card-radius);
    padding: var(--space-24);
  }

  .c-support-card__header {
    display: flex;
    align-items: center;
    gap: var(--space-16);
    margin-bottom: var(--space-16);
  }

  .c-support-card__icon {
    width: var(--space-32);
    height: var(--space-32);
    color: var(--color-primary);
  }

  .c-support-card__icon svg {
    width: 100%;
    height: 100%;
    fill: currentColor;
  }

  .c-support-card__title {
    font-size: var(--font-size-body);
    font-weight: 700;
    color: var(--color-text);
    margin: 0;
  }

  .c-support-card__desc {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: var(--line-height-body);
    margin: 0;
  }

  /* ----------------------------------------
     メンバーカードグリッド
     ---------------------------------------- */
  .c-member-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-24);
  }

  .c-member-card {
    display: flex;
    align-items: stretch;
    gap: 0;
    background: var(--color-white);
    border-radius: var(--card-radius);
    text-decoration: none;
    color: inherit;
    transition: all var(--transition-fast);
    overflow: hidden;
    box-shadow: var(--card-shadow);
  }

  .c-member-card:hover {
    box-shadow: var(--card-shadow-hover);
  }

  .c-member-card__photo {
    width: 160px;
    min-height: 160px;
    height: 100%;
    object-fit: cover;
    flex-shrink: 0;
    background: var(--color-border);
  }

  .c-member-card__info {
    flex: 1;
    min-width: 0;
    padding: var(--space-24);
    display: flex;
    flex-direction: column;
    justify-content: center;
  }

  .c-member-card__name {
    font-size: var(--font-size-small);
    font-weight: 700;
    margin: 0 0 var(--space-4) 0;
    color: var(--color-text);
  }

  .c-member-card__role {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-light);
    margin: 0 0 var(--space-16) 0;
  }

  .c-member-card__desc {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-light);
    line-height: var(--line-height-body);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .c-member-card__arrow {
    flex-shrink: 0;
    width: var(--space-24);
    height: var(--space-24);
    color: var(--color-primary);
    align-self: center;
    margin-right: var(--space-24);
    transition: transform var(--transition-fast);
  }

  .c-member-card:hover .c-member-card__arrow {
    transform: translateX(4px);
  }

  /* ----------------------------------------
     フローリスト（タイムライン）
     ---------------------------------------- */
  .c-flow-list {
    position: relative;
    padding-left: var(--space-40);
  }

  .c-flow-list::before {
    content: '';
    position: absolute;
    left: 7px;
    top: 8px;
    bottom: 8px;
    width: 2px;
    background: var(--color-border);
  }

  .c-flow-item {
    position: relative;
    padding-bottom: var(--space-48);
  }

  .c-flow-item:last-child {
    padding-bottom: 0;
  }

  .c-flow-item::before {
    content: '';
    position: absolute;
    left: calc(-1 * var(--space-40));
    top: 4px;
    width: 16px;
    height: 16px;
    background: var(--color-white);
    border: 2px solid var(--color-primary);
    border-radius: 50%;
    z-index: 1;
  }

  .c-flow-item__step {
    font-size: var(--font-size-xsmall);
    font-weight: 600;
    color: var(--color-text-muted);
    letter-spacing: 0.05em;
    margin: 0 0 var(--space-8) 0;
  }

  .c-flow-item__title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 var(--space-16) 0;
  }

  .c-flow-item__desc {
    font-size: var(--font-size-body);
    color: var(--color-text-light);
    line-height: var(--line-height-body);
    margin: 0;
  }

  .c-flow-item__desc .highlight {
    color: var(--color-primary);
    font-weight: 500;
  }

  /* ----------------------------------------
     FAQリスト
     ---------------------------------------- */
  .c-faq-list {
    max-width: 800px;
  }

  .c-faq-item {
    border-bottom: 1px solid var(--color-border);
    padding: var(--space-24) 0;
  }

  .c-faq-item:first-child {
    border-top: 1px solid var(--color-border);
  }

  .c-faq-item__question {
    font-size: var(--font-size-body);
    font-weight: 600;
    margin: 0 0 var(--space-16) 0;
    display: flex;
    align-items: flex-start;
    gap: var(--space-16);
    color: var(--color-text);
  }

  .c-faq-item__q {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    background: var(--color-primary);
    color: var(--color-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-small);
    font-weight: 700;
  }

  .c-faq-item__answer {
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    color: var(--color-text-light);
    padding-left: var(--space-40);
    margin: 0;
  }

  /* ----------------------------------------
     サブヘッディング（青い縦線付き）
     ---------------------------------------- */
  .c-subheading {
    display: flex;
    align-items: center;
    gap: var(--space-16);
    margin-bottom: var(--space-16);
  }

  .c-subheading::before {
    content: '';
    width: var(--space-4);
    height: var(--space-24);
    background: var(--color-primary);
    border-radius: 2px;
  }

  .c-subheading__title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    margin: 0;
  }

  .c-subheading__subtitle {
    font-size: var(--font-size-body);
    color: var(--color-text-light);
    margin: 0 0 var(--space-32) var(--space-16);
  }

  /* ----------------------------------------
     下層ページ用レスポンシブ
     ---------------------------------------- */
  @media screen and (max-width: 1024px) {
    .c-page-fv--gradient,
    .c-page-fv--gray {
      height: 360px;
    }

    .c-page-fv__main {
      flex-direction: column;
      align-items: center;
      gap: var(--space-32);
    }

    .c-page-fv__content {
      max-width: 100%;
      text-align: center;
    }

    .c-page-fv__buttons {
      justify-content: center;
      margin: 0 auto;
    }

    .c-page-fv__right {
      max-width: 100%;
      width: 100%;
    }

    .c-service-nav {
      max-width: 100%;
    }

    .c-consultation-grid {
      grid-template-columns: 1fr;
    }

    .c-support-grid {
      grid-template-columns: 1fr;
    }

    .c-member-grid {
      grid-template-columns: 1fr;
    }

    .c-member-card__photo {
      width: 120px;
      min-height: 120px;
    }
  }

  @media screen and (max-width: 767px) {
    .c-page-fv__buttons {
      flex-direction: column;
    }

    .c-page-fv__buttons .c-btn {
      width: 100%;
    }

    .c-feature-item__header {
      flex-direction: column;
      gap: var(--space-4);
    }

    .c-feature-item__desc {
      padding-left: 0;
    }

    .c-flow-list {
      padding-left: var(--space-32);
    }

    .c-flow-item::before {
      left: calc(-1 * var(--space-32));
      width: 14px;
      height: 14px;
    }

    .c-flow-list::before {
      left: 6px;
    }
  }

  /* ========================================
     サービスマップコンポーネント
     円形配置のサービス一覧図
     ======================================== */
  .c-service-map {
    position: relative;
    width: 400px;
    height: 400px;
    margin: 0 auto;
  }

  .c-service-map__ring {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 260px;
    height: 260px;
    border: 1px dashed var(--color-border);
    border-radius: 50%;
    z-index: 0;
  }

  .c-service-map__center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 140px;
    height: 140px;
    background: var(--color-white);
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: var(--color-primary);
    text-align: center;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.15);
    z-index: 2;
  }

  .c-service-map__center-text {
    font-family: 'Montserrat', sans-serif;
    font-size: var(--font-size-xsmall);
    font-weight: 600;
    letter-spacing: 0.08em;
    color: #00a0e9;
  }

  .c-service-map__center-main {
    font-family: 'Montserrat', sans-serif;
    font-size: 18px;
    font-weight: 600;
    line-height: 1.2;
    margin-top: 2px;
  }

  .c-service-map__item {
    position: absolute;
    width: 90px;
    height: 90px;
    background: var(--color-white);
    border: 1.5px solid var(--color-border);
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    text-decoration: none;
    transition: all var(--transition-normal);
    z-index: 1;
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.04);
  }

  .c-service-map__item:hover {
    border-color: var(--color-primary);
  }

  .c-service-map__item svg {
    width: 28px;
    height: 28px;
    stroke: var(--color-primary);
    fill: none;
    stroke-width: 1.5;
    margin-bottom: var(--space-4);
  }

  .c-service-map__item-text {
    font-size: 10px;
    font-weight: 600;
    color: var(--color-text);
    line-height: 1.3;
  }

  /* 6つのアイテム位置（時計回り：上 → 右上 → 右下 → 下 → 左下 → 左上） */
  .c-service-map__item--pos-1 { top: 15px; left: 50%; transform: translateX(-50%); }
  .c-service-map__item--pos-2 { top: 70px; right: 5px; }
  .c-service-map__item--pos-3 { bottom: 70px; right: 5px; }
  .c-service-map__item--pos-4 { bottom: 15px; left: 50%; transform: translateX(-50%); }
  .c-service-map__item--pos-5 { bottom: 70px; left: 5px; }
  .c-service-map__item--pos-6 { top: 70px; left: 5px; }

  /* ホバー時のスケール（位置により分岐） */
  .c-service-map__item--pos-1:hover,
  .c-service-map__item--pos-4:hover {
    transform: translateX(-50%) scale(1.05);
  }
  .c-service-map__item--pos-2:hover,
  .c-service-map__item--pos-3:hover,
  .c-service-map__item--pos-5:hover,
  .c-service-map__item--pos-6:hover {
    transform: scale(1.05);
  }

  /* タブレット（768px〜1199px） */
  @media screen and (min-width: 768px) and (max-width: 1024px) {
    .c-service-map {
      width: 360px;
      height: 360px;
    }
    .c-service-map__center {
      width: 130px;
      height: 130px;
    }
    .c-service-map__ring {
      width: 240px;
      height: 240px;
    }
    .c-service-map__item {
      width: 82px;
      height: 82px;
    }
    .c-service-map__item--pos-1 { top: 12px; }
    .c-service-map__item--pos-2 { top: 60px; right: 5px; }
    .c-service-map__item--pos-3 { bottom: 60px; right: 5px; }
    .c-service-map__item--pos-4 { bottom: 12px; }
    .c-service-map__item--pos-5 { bottom: 60px; left: 5px; }
    .c-service-map__item--pos-6 { top: 60px; left: 5px; }
  }

  /* モバイル（〜767px） */
  @media screen and (max-width: 767px) {
    .c-service-map {
      width: 300px;
      height: 300px;
    }
    .c-service-map__center {
      width: 110px;
      height: 110px;
    }
    .c-service-map__center-text {
      font-size: 10px;
    }
    .c-service-map__center-main {
      font-size: 15px;
    }
    .c-service-map__ring {
      width: 200px;
      height: 200px;
    }
    .c-service-map__item {
      width: 70px;
      height: 70px;
    }
    .c-service-map__item svg {
      width: 22px;
      height: 22px;
      margin-bottom: 4px;
    }
    .c-service-map__item-text {
      font-size: 9px;
    }
    .c-service-map__item--pos-1 { top: 8px; }
    .c-service-map__item--pos-2 { top: 50px; right: 2px; }
    .c-service-map__item--pos-3 { bottom: 50px; right: 2px; }
    .c-service-map__item--pos-4 { bottom: 8px; }
    .c-service-map__item--pos-5 { bottom: 50px; left: 2px; }
    .c-service-map__item--pos-6 { top: 50px; left: 2px; }

    /* モバイルではホバーアニメーション無効 */
    .c-service-map__item:hover {
      transform: none;
    }
    .c-service-map__item--pos-1:hover,
    .c-service-map__item--pos-4:hover {
      transform: translateX(-50%);
    }
  }

  /* ========================================
     ページヘッダー（サブページ共通FV）
     ======================================== */
  .c-page-header {
    background: var(--gradient-hero);
    height: 360px;
    display: flex;
    align-items: center;
    padding: 0;
    position: relative;
    overflow: hidden;
  }

  .c-page-header__hero-img {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    height: 95%;
    width: auto;
  }

  @media screen and (max-width: 1024px) {
    .c-page-header__hero-img {
      display: none;
    }
  }

  .c-page-header .l-container {
    width: 100%;
  }

  .c-page-header__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-64);
  }

  .c-page-header__body {
    flex: 1;
    min-width: 0;
  }

  .c-page-header__title {
    font-size: var(--font-size-hero);
    font-weight: 700;
    line-height: var(--line-height-heading);
    color: var(--color-white);
    margin: 0 0 var(--space-24) 0;
    letter-spacing: 0.02em;
  }

  .c-page-header .c-section__lead {
    color: var(--color-white);
  }

  @media screen and (max-width: 767px) {
    .c-page-header {
      padding: var(--space-48) 0;
    }
  }

  /* ページヘッダー内CTAボタン（サービス一覧ページと同じスタイル） */
  .c-page-header__buttons {
    display: flex;
    gap: var(--space-16);
    margin-top: var(--space-24);
  }

  .c-page-header__buttons .c-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    height: auto;
    padding: var(--space-16) var(--space-40);
    background: var(--color-white);
    color: var(--color-primary);
    border: none;
    border-radius: var(--btn-radius);
    font-size: 17px;
    font-weight: 600;
    text-decoration: none;
    transition: all var(--transition-normal);
  }

  .c-page-header__buttons .c-btn:hover {
    background: rgba(255, 255, 255, 0.9);
  }

  @media screen and (max-width: 767px) {
    .c-page-header__buttons {
      flex-direction: column;
      gap: var(--space-12);
    }
    .c-page-header__buttons .c-btn {
      width: 100%;
    }
  }


  /* ========================================
     ミッションセクション（ロゴ付き）
     ======================================== */
  .c-mission__grid {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: var(--space-64);
    align-items: center;
  }

  .c-mission__body .c-philosophy__text-area {
    max-width: 580px;
  }

  .c-mission__logo-area {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: var(--space-32);
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--card-radius);
    padding: var(--space-48) var(--space-32);
    box-shadow: var(--card-shadow);
    max-width: 500px;
  }

  .c-mission__logo-img {
    width: 340px;
    max-width: 100%;
    height: auto;
    display: block;
  }

  .c-mission__logo-caption {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: var(--line-height-body);
    text-align: center;
    margin: 0;
  }

  @media screen and (max-width: 1024px) {
    .c-mission__grid {
      grid-template-columns: 1fr;
      gap: var(--space-48);
    }

    .c-mission__body .c-philosophy__text-area {
      max-width: 100%;
    }

    .c-mission__logo-area {
      max-width: 100%;
    }
  }

  @media screen and (max-width: 767px) {
    .c-mission__logo-img {
      width: 200px;
    }
  }

  /* ========================================
     企業理念セクション（ビジョン用・画像付き）
     ======================================== */
  .c-philosophy {
    position: relative;
    overflow: hidden;
  }

  .c-philosophy__body {
    position: relative;
    z-index: 1;
    width: 58%;
  }

  .c-philosophy__label {
    font-size: var(--font-size-section-title);
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 var(--space-16) 0;
    padding-bottom: var(--space-16);
    border-bottom: 3px solid var(--color-primary);
    display: inline-block;
  }

  .c-philosophy__heading {
    font-size: var(--font-size-hero);
    font-weight: 700;
    line-height: var(--line-height-heading);
    color: var(--color-text);
    margin: var(--space-32) 0 var(--space-48) 0;
  }

  .c-philosophy__heading-sub {
    display: block;
    font-size: var(--font-size-section-title);
    font-weight: 700;
    margin-bottom: var(--space-8);
  }

  .c-philosophy__text-area {
    display: flex;
    flex-direction: column;
    gap: var(--space-24);
  }

  .c-philosophy__copy {
    font-size: 16px;
    line-height: 2;
    letter-spacing: 0.05em;
    color: #1a1a1a;
    margin: 0;
  }

  .c-philosophy__copy--strong {
    font-weight: 700;
  }

  .c-philosophy__underline {
    text-decoration: underline;
    text-decoration-color: var(--color-primary);
    text-underline-offset: var(--space-4);
  }

  .c-philosophy__visual {
    position: absolute;
    right: 0;
    bottom: 0;
    width: 45%;
  }

  .c-philosophy__hand-img {
    width: 100%;
    height: auto;
    display: block;
  }

  @media screen and (max-width: 1024px) {
    .c-philosophy__body {
      width: 100%;
    }

    .c-philosophy__visual {
      display: none;
    }
  }

  @media screen and (max-width: 767px) {
    .c-philosophy__body {
      width: 100%;
    }

    .c-philosophy__visual {
      display: none;
    }
  }

  /* ========================================
     会社概要（定義リスト + パートナーロゴ）
     ======================================== */
  .c-profile__title {
    margin-bottom: var(--space-48);
  }

  .c-profile__list {
    background: var(--color-white);
    border-radius: var(--card-radius);
    overflow: hidden;
    border: 1px solid var(--color-border);
  }

  .c-profile__term {
    background: var(--color-bg-gray);
    padding: var(--space-16) var(--space-24);
    font-weight: 600;
    font-size: var(--font-size-small);
    color: var(--color-text);
    border-bottom: 1px solid var(--color-border);
  }

  .c-profile__desc {
    padding: var(--space-16) var(--space-24);
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    color: var(--color-text);
    margin: 0;
    border-bottom: 1px solid var(--color-border);
  }

  .c-profile__desc:last-child,
  .c-profile__term:nth-last-child(2) {
    border-bottom: none;
  }

  .c-profile__link {
    color: var(--color-primary);
    text-decoration: none;
    transition: color var(--transition-fast);
  }

  .c-profile__link:hover {
    color: var(--color-primary-dark);
    text-decoration: underline;
  }


  /* デスクトップ: dt/ddを横並びテーブル風 */
  @media screen and (min-width: 768px) {
    .c-profile__list {
      display: grid;
      grid-template-columns: 240px 1fr;
    }

    .c-profile__term {
      display: flex;
      align-items: center;
      border-right: 1px solid var(--color-border);
    }

    .c-profile__desc {
      display: flex;
      align-items: center;
    }

    .c-profile__desc--links {
      flex-direction: column;
      align-items: flex-start;
      gap: var(--space-8);
    }

    .c-profile__desc--logos {
      align-items: flex-start;
      padding: var(--space-24);
    }
  }

  /* パートナーロゴ 8カラムグリッド */
  .c-profile__logos {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid;
    grid-template-columns: repeat(8, 1fr);
    gap: var(--space-24);
    align-items: center;
    width: 100%;
  }

  .c-profile__logos-item {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .c-profile__logos-item a {
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .c-profile__logos-img {
    width: 100%;
    aspect-ratio: 3 / 2;
    object-fit: contain;
    padding: var(--space-4);
  }

  /* タブレット: ロゴ4カラム */
  @media screen and (max-width: 1024px) {
    .c-profile__logos {
      grid-template-columns: repeat(4, 1fr);
      gap: var(--space-16);
    }

    .c-profile__logos-img {
      max-width: 80px;
    }
  }

  @media screen and (max-width: 767px) {
    .c-profile__desc--links .c-profile__link {
      display: block;
    }

    .c-profile__desc--links .c-profile__link + .c-profile__link {
      margin-top: var(--space-8);
    }
  }

  /* モバイル: ロゴ4カラム */
  @media screen and (max-width: 767px) {
    .c-profile__logos {
      grid-template-columns: repeat(4, 1fr);
      gap: var(--space-8);
    }

    .c-profile__logos-img {
      max-width: 64px;
    }
  }

  /* ========================================
     アクセスセクション
     ======================================== */
  .c-access__title {
    margin-bottom: var(--space-48);
  }

  .c-access__grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-64);
    align-items: start;
  }

  .c-access__info {
    display: flex;
    flex-direction: column;
    gap: var(--space-24);
  }

  .c-access__address {
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    color: var(--color-text);
    margin: 0;
  }

  .c-access__routes {
    list-style: none;
    padding: 0;
    margin: 0;
    display: flex;
    flex-direction: column;
    gap: var(--space-8);
  }

  .c-access__route {
    font-size: var(--font-size-small);
    color: #1a1a1a;
    line-height: var(--line-height-body);
    padding-left: var(--space-16);
    position: relative;
  }

  .c-access__route::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0.6em;
    width: var(--space-8);
    height: var(--space-8);
    background: var(--color-primary);
    border-radius: 50%;
  }

  .c-access__map-link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    color: var(--color-primary);
    font-size: var(--font-size-body);
    font-weight: 600;
    text-decoration: none;
    transition: color var(--transition-fast);
  }

  .c-access__map-link:hover {
    color: var(--color-primary-dark);
  }

  .c-access__map-icon {
    width: var(--icon-sm);
    height: var(--icon-sm);
  }

  .c-access__map-wrap {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-24);
  }

  .c-access__map {
    position: relative;
    border-radius: var(--card-radius);
    overflow: hidden;
    box-shadow: var(--card-shadow);
    width: 100%;
  }

  .c-access__iframe {
    width: 100%;
    aspect-ratio: 16 / 10;
    border: 0;
    display: block;
  }

  @media screen and (max-width: 767px) {
    .c-access__grid {
      grid-template-columns: 1fr;
      gap: var(--space-32);
    }
  }

  /* ========================================
     お客様の声ページ固有スタイル
     ======================================== */

  /* ヒーローセクション */
  .c-voice-hero {
    background: var(--gradient-hero);
    height: var(--hero-height);
    display: flex;
    align-items: center;
    overflow: hidden;
  }

  .c-voice-hero__inner {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-64);
  }

  .c-voice-hero__content {
    flex: 1;
    max-width: calc(var(--container-width) / 2);
  }

  .c-voice-hero__title {
    font-size: clamp(32px, 5vw, 42px);
    font-weight: 700;
    color: var(--color-white);
    line-height: var(--line-height-heading);
    margin: 0 0 var(--space-24) 0;
  }

  .c-voice-hero__desc {
    font-size: 17px;
    font-weight: 500;
    line-height: var(--line-height-body);
    color: var(--color-white);
    opacity: 0.95;
    margin: 0 0 var(--space-32) 0;
    max-width: 500px;
  }

  .c-voice-hero__buttons {
    display: flex;
    gap: var(--space-24);
    max-width: 500px;
  }

  .c-voice-hero__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    flex: 1;
    padding: var(--space-16) var(--space-40);
    background: transparent;
    color: var(--color-white);
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: var(--btn-radius);
    font-size: 17px;
    font-weight: 600;
    text-decoration: none;
    transition: all var(--transition-normal);
  }

  .c-voice-hero__btn::after {
    content: '\2192';
    font-size: 17px;
  }

  .c-voice-hero__btn:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.8);
  }

  /* カードスタック */
  .c-voice-hero__cards {
    flex: 1;
  }

  .c-voice-stack {
    position: relative;
    padding-bottom: 0;
    overflow: hidden;
  }

  .c-voice-stack__card {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    background: var(--color-white);
    border-radius: var(--card-radius);
    padding: var(--space-32) var(--space-32) 72px var(--space-48);
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    cursor: pointer;
    box-shadow: var(--card-shadow);
  }

  .c-voice-stack__card::before {
    content: '\275D';
    position: absolute;
    top: var(--space-8);
    left: var(--space-16);
    font-size: var(--font-size-hero);
    color: var(--color-primary);
    opacity: 0.15;
    line-height: 1;
  }

  .c-voice-stack__card[data-position="0"] {
    position: relative;
    transform: translateX(0);
    z-index: 3;
  }

  .c-voice-stack__card[data-position="1"],
  .c-voice-stack__card[data-position="2"],
  .c-voice-stack__card[data-position="3"],
  .c-voice-stack__card[data-position="4"] {
    z-index: 1;
    transform: translateX(100%);
    pointer-events: none;
  }

  /* 前のカード（その場に残る） */
  .c-voice-stack__card.is-previous {
    z-index: 2;
    transform: translateX(0) scale(1);
    opacity: 1;
    transition: none;
    pointer-events: none;
  }

  /* ドットインジケーター */
  .c-voice-stack__indicators {
    position: absolute;
    bottom: var(--space-24);
    left: 0;
    right: 0;
    display: flex;
    justify-content: center;
    gap: var(--space-8);
    z-index: 10;
  }

  .c-voice-stack__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--color-border);
    cursor: pointer;
    transition: background var(--transition-normal);
  }

  .c-voice-stack__dot.is-active {
    background: var(--color-primary);
  }

  .c-voice-stack__dot:hover {
    background: var(--color-primary);
  }

  .c-voice-stack__text {
    font-size: var(--font-size-card-title);
    font-weight: 600;
    color: var(--color-text);
    line-height: var(--line-height-body);
    margin: 0 0 var(--space-32) 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .c-voice-stack__highlight {
    background: linear-gradient(transparent 80%, rgba(0, 103, 192, 0.12) 80%);
    padding: 0 var(--space-4);
  }

  .c-voice-stack__author {
    display: flex;
    align-items: center;
    gap: var(--space-16);
  }

  .c-voice-stack__avatar {
    width: 80px;
    height: 80px;
    border-radius: 50%;
    object-fit: cover;
  }

  .c-voice-stack__name {
    font-size: var(--font-size-body);
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 var(--space-4) 0;
  }

  .c-voice-stack__role {
    font-size: var(--font-size-small);
    color: var(--color-text-muted);
    line-height: var(--line-height-tight);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .c-voice-stack__link {
    display: flex;
    justify-content: flex-end;
    margin-top: var(--space-24);
    padding-top: var(--space-16);
    border-top: 1px solid var(--color-border);
  }

  .c-voice-stack__link a {
    font-size: var(--font-size-small);
    font-weight: 600;
    color: var(--color-text);
    text-decoration: none;
    display: flex;
    align-items: center;
    gap: var(--space-4);
    transition: color var(--transition-fast);
  }

  .c-voice-stack__link a:hover {
    color: var(--color-primary);
  }

  .c-voice-stack__link a::after {
    content: '\2192';
    font-size: var(--font-size-small);
    transition: transform var(--transition-fast);
  }

  .c-voice-stack__link a:hover::after {
    transform: translateX(var(--space-4));
  }

  /* ========================================
     インタビュー記事一覧セクション
     ======================================== */
  .c-voice-articles {
    padding: var(--space-96) 0;
    background: var(--color-bg-gray);
  }

  .c-voice-articles__header {
    margin-bottom: var(--space-48);
  }

  .c-voice-articles__title {
    font-size: var(--font-size-section-title);
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 var(--space-24) 0;
  }

  .c-voice-articles__desc {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    line-height: var(--line-height-body);
    margin: 0;
  }

  /* 記事カード */
  .c-voice-articles__list {
    display: flex;
    flex-direction: column;
    gap: var(--space-16);
    background: var(--color-white);
    border-radius: var(--card-radius);
    padding: var(--space-40);
    box-shadow: var(--card-shadow);
  }

  .c-interview-card {
    display: grid;
    grid-template-columns: 1fr 360px;
    gap: var(--space-16) var(--space-32);
    padding: var(--space-24) 0;
    text-decoration: none;
    color: inherit;
    border-bottom: 1px solid var(--color-border);
  }

  .c-interview-card:last-child {
    border-bottom: none;
  }

  .c-interview-card__body {
    display: flex;
    flex-direction: column;
  }

  .c-interview-card__title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    line-height: var(--line-height-tight);
    color: var(--color-text);
    margin: 0 0 var(--space-16) 0;
  }

  .c-interview-card__title-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size 0.3s ease;
  }

  .c-interview-card:hover .c-interview-card__title-text {
    background-size: 100% 1px;
  }

  .c-interview-card__tags {
    display: flex;
    gap: var(--space-8);
    margin-bottom: var(--space-16);
    flex-wrap: wrap;
  }

  .c-interview-card__tag {
    display: inline-block;
    font-size: var(--font-size-small);
    color: var(--color-primary);
    font-weight: 500;
    background: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: var(--card-radius);
    padding: 6px 12px;
    line-height: 1;
  }

  .c-interview-card__tag::before {
    content: '#';
    margin-right: 2px;
  }

  .c-interview-card__excerpt {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: var(--line-height-body);
    margin: 0;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .c-interview-card__image {
    border-radius: var(--card-radius);
    overflow: hidden;
    align-self: stretch;
  }

  .c-interview-card__image img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    display: block;
  }


  /* 記事なし・読み込み中・エラー表示 */
  .c-voice-articles__empty {
    text-align: center;
    padding: var(--space-40);
    color: var(--color-text-light);
  }

  /* ページネーション */
  .c-voice-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-8);
    margin-top: var(--space-40);
  }

  .c-voice-pagination__item {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 var(--space-16);
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    border-radius: var(--card-radius);
    transition: all var(--transition-normal);
    color: var(--color-text);
    background: var(--color-white);
    border: 1px solid var(--color-border);
  }

  .c-voice-pagination__item:hover {
    color: var(--color-primary);
    border-color: var(--color-primary);
    background: var(--color-primary-light);
  }

  .c-voice-pagination__item--active {
    color: var(--color-white);
    background: var(--color-primary);
    border: 1px solid var(--color-primary);
  }

  .c-voice-pagination__item--active:hover {
    color: var(--color-white);
    background: var(--color-primary);
  }

  .c-voice-pagination__dots {
    min-width: auto;
    height: auto;
    padding: 0 var(--space-4);
    border: none;
    background: transparent;
    color: var(--color-text-light);
    letter-spacing: 2px;
  }

  /* ========================================
     オーリーズの特長セクション
     ======================================== */
  .c-voice-why {
    padding: var(--space-96) 0;
  }

  .c-voice-why .c-section__title {
    text-align: center;
  }

  .c-voice-why .c-section__lead {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }

  /* 数字指標（共有コンポーネント） */
  .c-feature-metrics {
    display: flex;
    justify-content: center;
    gap: var(--space-64);
    margin-bottom: var(--space-64);
  }

  .c-feature-metric {
    text-align: center;
  }

  .c-feature-metric__value {
    font-family: 'Montserrat', sans-serif;
    font-size: clamp(40px, 5vw, 48px);
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.2;
  }

  .c-feature-metric__value small {
    font-size: clamp(20px, 2.5vw, 24px);
    font-weight: 600;
  }

  .c-feature-metric__label {
    display: block;
    font-size: var(--font-size-body);
    color: var(--color-text);
    margin-top: var(--space-8);
  }

  .c-feature-metric__note {
    display: block;
    font-size: var(--font-size-xsmall);
    color: var(--color-text-muted);
    margin-top: var(--space-4);
  }

  /* 特長グリッド（共有コンポーネント） */
  .c-feature-list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-32) var(--space-48);
    max-width: 800px;
    margin: 0 auto var(--space-48);
  }

  .c-feature-item {
    display: grid;
    grid-template-columns: 40px 1fr;
    grid-template-rows: auto 1fr;
    gap: 12px var(--space-16);
    align-items: start;
  }

  .c-feature-item__num {
    flex-shrink: 0;
    width: 40px;
    height: 40px;
    background: var(--color-primary);
    color: var(--color-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-family: 'Montserrat', sans-serif;
    font-size: var(--font-size-small);
    font-weight: 600;
    grid-row: 1;
    grid-column: 1;
    align-self: center;
  }

  .c-feature-item__body {
    display: contents;
  }

  .c-feature-item__title {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 0;
    grid-row: 1;
    grid-column: 2;
    align-self: center;
  }

  .c-feature-item__desc {
    grid-row: 2;
    grid-column: 1 / -1;
    font-size: var(--font-size-small);
    font-weight: 500;
    color: var(--color-text);
    line-height: var(--line-height-body);
    margin: 0;
    min-height: 3.4em;
  }

  .c-voice-why .c-feature-item__desc {
    padding-left: 0;
  }

  .c-voice-why__cta {
    text-align: center;
    margin-top: var(--space-80);
  }

  .c-voice-why__cta .c-btn {
    width: min(280px, 100%);
    font-size: var(--font-size-body);
  }

  /* ========================================
     お客様の声 レスポンシブ（タブレット: 768px - 1023px）
     ======================================== */
  @media screen and (min-width: 768px) and (max-width: 1024px) {
    .c-voice-hero {
      height: 400px;
      padding: 0;
    }

    .c-voice-hero__inner {
      flex-direction: column;
      gap: var(--space-40);
    }

    .c-voice-hero__content {
      max-width: 100%;
      text-align: center;
    }

    .c-voice-hero__buttons {
      max-width: 500px;
      margin: 0 auto;
    }

    .c-voice-hero__cards {
      display: none;
    }

    .c-interview-card {
      grid-template-columns: 1fr;
    }

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

  /* ========================================
     お客様の声 レスポンシブ（モバイル: 767px以下）
     ======================================== */
  @media screen and (max-width: 767px) {
    .c-voice-hero {
      height: 400px;
      padding: 0;
    }

    .c-voice-hero__inner {
      flex-direction: column;
      gap: var(--space-32);
    }

    .c-voice-hero__content {
      max-width: 100%;
      text-align: center;
    }

    .c-voice-hero__cards {
      display: none;
    }

    .c-voice-hero__buttons {
      flex-direction: column;
      align-items: stretch;
      width: 100%;
      max-width: 100%;
    }

    .c-voice-hero__btn {
      width: 100%;
    }

    .c-voice-stack__card {
      padding: var(--space-24) var(--space-24) var(--space-24) var(--space-40);
    }

    .c-interview-card {
      grid-template-columns: 1fr;
    }

    .c-interview-card__tags {
      display: none;
    }

    .c-feature-metrics {
      flex-direction: row;
      gap: var(--space-16);
    }

    .c-feature-metric__value {
      font-size: clamp(36px, 8vw, 44px);
    }

    .c-feature-metric__value small {
      font-size: clamp(18px, 4vw, 22px);
    }

    .c-feature-list {
      grid-template-columns: 1fr;
      gap: var(--space-24);
    }

    .c-voice-why__cta .c-btn {
      width: 100%;
      max-width: 320px;
    }
  }

  /* ========================================
     メンバーモーダル
     ======================================== */

  /* モーダル本体：デフォルト非表示 */
  .member-modal {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100vh;
    pointer-events: none;
    opacity: 0;
    z-index: 100;
    transition: opacity 0.4s ease;
  }

  .member-modal.is-active {
    opacity: 1;
    pointer-events: auto;
  }

  /* 背景オーバーレイ */
  .member-modal-popup-bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.6);
  }

  /* モーダルラッパー */
  .member-modal-wrapper {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    padding: 80px 20px 40px;
    overflow: auto;
    display: flex;
    align-items: flex-start;
    justify-content: center;
  }

  /* モーダルコンテンツコンテナ */
  .member-modal-content {
    width: 100%;
    max-width: 1024px;
    margin: 0 auto;
    opacity: 0;
    transition: opacity 0.4s ease;
    border: none;
    box-shadow: none;
    border-radius: 0;
  }

  .member-modal.is-active .member-modal-content {
    opacity: 1;
  }

  /* 各メンバーのモーダル内容：デフォルト非表示 */
  .member-modal-inner {
    display: none;
    flex-direction: column;
    max-width: min(800px, calc(100vw - 32px));
    margin: 0 auto;
    background-color: var(--color-white);
    border-radius: 0;
    overflow: hidden;
    position: relative;
    border: none;
    box-shadow: none;
  }

  .member-modal-inner.is-show {
    display: flex;
  }

  /* 閉じるボタン */
  .member-modal-close-button {
    position: absolute;
    top: var(--space-16);
    right: var(--space-16);
    width: 40px;
    height: 40px;
    background: rgba(255, 255, 255, 0.9);
    border-radius: 50%;
    cursor: pointer;
    z-index: 10;
    transition: background var(--transition-normal);
  }

  .member-modal-close-button:hover {
    background: rgba(255, 255, 255, 1);
  }

  .member-modal-close-button::before,
  .member-modal-close-button::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 20px;
    height: 2px;
    background: var(--color-text);
  }

  .member-modal-close-button::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }

  .member-modal-close-button::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  /* モーダル内の画像エリア */
  .member-modal-content-image {
    width: 100%;
    border: none;
    box-shadow: none;
  }

  .member-modal-content-thumbnail {
    display: block;
    width: 100%;
    height: 0;
    padding-bottom: 50%;
    background-size: cover;
    background-position: center top;
    border: none;
    box-shadow: none;
  }

  /* モーダル内の詳細エリア */
  .member-modal-content-details {
    padding: var(--space-40) var(--space-48);
    background: var(--color-white);
    border: none;
    box-shadow: none;
    outline: none;
  }

  /* ワイルドカードリセット（必要な要素だけ） */
  .member-modal-content-details table,
  .member-modal-content-details td,
  .member-modal-content-details th {
    border: none;
    box-shadow: none;
  }

  .member-modal-position {
    font-size: var(--font-size-small);
    color: var(--color-primary);
    font-weight: 600;
    margin-bottom: var(--space-8);
    padding: 0;
  }

  .member-modal-name {
    font-size: 28px;
    font-weight: 700;
    margin-bottom: var(--space-24);
    padding: 0;
    color: var(--color-text);
  }

  .member-modal-name span {
    font-size: var(--font-size-small);
    font-weight: 400;
    color: var(--color-text-muted);
    margin-left: 12px;
  }

  .member-modal-bio {
    font-size: 15px;
    line-height: 1.9;
    color: var(--color-text);
    margin-bottom: var(--space-32);
    padding: 0;
  }

  .member-modal-recent-article-heading {
    font-size: var(--font-size-body);
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: var(--space-16);
    padding-bottom: var(--space-8);
    border-bottom: 2px solid var(--color-primary);
    display: inline-block;
  }

  /* ページャー（前後ナビ） */
  .member-modal-pager {
    display: none;
  }

  .member-modal-pager:hover {
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  }

  .member-modal-pager::before {
    content: '';
    width: 10px;
    height: 10px;
    border-top: 2px solid #333;
    border-right: 2px solid #333;
  }

  .member-modal-pager-prev {
    left: -70px;
  }

  .member-modal-pager-prev::before {
    transform: rotate(-135deg);
    margin-left: 4px;
  }

  .member-modal-pager-next {
    right: -70px;
  }

  .member-modal-pager-next::before {
    transform: rotate(45deg);
    margin-right: 4px;
  }

  /* モーダル：タブレット */
  @media screen and (min-width: 768px) and (max-width: 1024px) {
    .member-modal-inner {
      max-width: 100%;
      margin: 20px;
    }

    .member-modal-content-details {
      padding: var(--space-24);
    }

    .member-modal-name {
      font-size: 22px;
    }

    .member-modal-pager-prev {
      left: 10px;
    }

    .member-modal-pager-next {
      right: 10px;
    }
  }

  /* モーダル：モバイル */
  @media screen and (max-width: 767px) {
    .member-modal-wrapper {
      padding: 56px 12px 80px;
    }

    .member-modal-inner {
      max-width: 100%;
      margin: 0;
    }

    .member-modal-content-details {
      padding: var(--container-padding);
    }

    .member-modal-name {
      font-size: 20px;
    }

    .member-modal-name span {
      display: block;
      margin-left: 0;
      margin-top: var(--space-4);
    }

    .member-modal-pager {
      top: auto;
      bottom: var(--space-16);
      transform: none;
      width: 40px;
      height: 40px;
    }

    .member-modal-pager-prev {
      left: var(--space-16);
    }

    .member-modal-pager-next {
      right: var(--space-16);
    }
  }

  /* ========================================
     プライバシーポリシーページ
     ======================================== */

  /* プライバシーページヘッダー */
  .c-privacy-header {
    background: var(--gradient-hero);
    min-height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
  }

  .c-privacy-header__title {
    font-size: clamp(32px, 5vw + 8px, 48px);
    font-weight: 700;
    color: var(--color-white);
    letter-spacing: 0.1em;
    margin: 0 0 16px;
    white-space: nowrap;
  }

  .c-privacy-header__subtitle {
    font-size: clamp(14px, 1vw + 10px, 16px);
    color: #fff;
    margin: 0;
  }

  /* プライバシーコンテンツ */
  .c-privacy {
    background: var(--color-white);
    padding: 96px 0;
  }

  .c-privacy__content {
    max-width: 800px;
    margin: 0 auto;
  }

  .c-privacy__list {
    list-style: none;
    padding: 0;
    margin: 0;
    counter-reset: privacy-counter;
  }

  .c-privacy__item {
    counter-increment: privacy-counter;
    margin-bottom: 40px;
    padding-left: 0;
  }

  .c-privacy__item-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 16px;
    line-height: 1.6;
  }

  .c-privacy__item-title::before {
    content: counter(privacy-counter) ". ";
    color: var(--color-primary);
  }

  .c-privacy__item-text {
    font-size: 16px;
    color: #333;
    line-height: 2;
    margin: 0;
  }

  /* お問い合わせボックス */
  .c-privacy__contact {
    max-width: 767px;
    margin: 48px auto 0;
    padding: 32px 40px;
    border: 1px solid var(--color-border);
    border-radius: 4px;
    background: var(--color-bg-gray);
    text-align: center;
  }

  .c-privacy__contact-company {
    font-size: 16px;
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 16px;
  }

  .c-privacy__contact-address {
    font-size: 15px;
    color: var(--color-text);
    margin: 0 0 16px;
  }

  .c-privacy__contact-info {
    font-size: 15px;
    color: var(--color-text);
    margin: 0 auto 8px;
    margin-left: calc(50% - 110px);
    text-align: left;
    width: 280px;
  }

  .c-privacy__contact-info:last-child {
    margin-bottom: 0;
  }

  .c-privacy__contact-info span {
    display: inline-block;
    width: 100px;
    font-weight: 700;
  }

  .c-privacy__contact-info a {
    color: var(--color-primary);
    text-decoration: none;
    transition: color 0.3s ease;
  }

  .c-privacy__contact-info a:hover {
    color: var(--color-primary-dark);
  }

  /* レスポンシブ */
  @media screen and (max-width: 767px) {
    .c-privacy-header {
      min-height: 200px;
    }

    .c-privacy {
      padding: 40px 0;
    }

    .c-privacy__item {
      margin-bottom: 32px;
    }

    .c-privacy__item-title {
      font-size: 16px;
    }

    .c-privacy__item-text {
      font-size: 14px;
      line-height: 1.8;
    }

    .c-privacy__contact {
      padding: 24px 20px;
    }

    .c-privacy__contact-info span {
      width: 80px;
    }
  }

  /* ========================================
     メンバーページ：リスト・タブ・カード
     pages/member.php から移行
     ======================================== */

  /* ベーススタイル */
  .member-new {
    background: var(--color-white);
    overflow-x: hidden;
  }

  .member-section {
    padding: var(--space-80) var(--container-padding);
  }

  .member-section-gray {
    background: var(--color-bg-gray);
  }

  .member-section-white {
    background: var(--color-white);
    margin-left: calc(-1 * var(--container-padding));
    margin-right: calc(-1 * var(--container-padding));
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
  }

  .member-new-inner {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
    box-sizing: border-box;
  }

  /* セクションタイトル */
  .member-section-title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    margin: 0;
    position: relative;
    border: none;
  }

  .member-section-title::after {
    display: none;
  }

  /* タブナビゲーション */
  .member-tabs-section {
    background: var(--color-white);
    padding: var(--space-96) 0;
  }

  .member-tabs-nav {
    display: flex;
    gap: var(--space-8);
    margin-bottom: var(--space-40);
    background: #e8e8e8;
    padding: 6px;
    border-radius: var(--card-radius);
    width: fit-content;
  }

  .member-tab-btn {
    min-width: 140px;
    padding: 14px var(--space-16);
    font-size: var(--font-size-small);
    font-weight: 500;
    color: var(--color-text-light);
    cursor: pointer;
    border-radius: var(--card-radius);
    transition: all var(--transition-normal);
    border: none;
    background: transparent;
    font-family: inherit;
    text-align: center;
  }

  .member-tab-btn:hover {
    color: var(--color-text);
    background: rgba(255, 255, 255, 0.5);
  }

  .member-tab-btn.active {
    color: var(--color-white);
    background: var(--color-primary);
  }

  /* タブコンテンツ */
  .member-tab-content {
    display: none;
  }

  .member-tab-content.active {
    display: block;
  }

  /* サービスタグフィルター（タイトル横配置） */
  .member-filter-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-16);
    margin-bottom: var(--space-24);
    padding-bottom: var(--space-16);
    border-bottom: 1px solid #ddd;
  }

  .member-filter-tags {
    display: flex;
    flex-wrap: nowrap;
    gap: var(--space-8);
  }

  .member-filter-tag {
    padding: 6px 12px;
    font-size: var(--font-size-small);
    color: var(--color-primary);
    text-decoration: none;
    background: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: var(--card-radius);
    transition: all var(--transition-fast);
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
  }

  .member-filter-tag:hover,
  .member-filter-tag.active {
    background: var(--color-primary);
    color: var(--color-white);
  }

  .member-filter-tag::before {
    content: "#";
    margin-right: 2px;
  }

  /* フィルター適用時に非表示 */
  .wide-card.filtered-out,
  .staff-card.filtered-out {
    display: none;
  }

  /* フィルター結果なしメッセージ */
  .member-no-results {
    display: none;
    padding: var(--space-40) var(--container-padding);
    text-align: center;
    color: var(--color-text-light);
    font-size: var(--font-size-small);
    background: #f9f9f9;
    border-radius: var(--space-8);
  }

  .member-no-results.show {
    display: block;
  }

  /* 経営ボード・マネジメント: 横長画像カード */
  .wide-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-24);
  }

  .wide-card {
    display: block;
    background: var(--color-white);
    border-radius: 0;
    overflow: hidden;
    border: 1px solid var(--color-border);
    cursor: pointer;
  }

  .wide-image {
    width: 100%;
    aspect-ratio: 11 / 4.8;
    background-size: cover;
    background-position: center top;
    position: relative;
  }

  .wide-image::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 50%;
    background: linear-gradient(to top, rgba(0, 0, 0, 0.4), transparent);
  }

  .wide-info {
    padding: var(--space-24) 28px 28px;
  }

  .wide-position {
    font-size: var(--font-size-xsmall);
    color: var(--color-primary);
    font-weight: 600;
    margin-bottom: 12px;
    letter-spacing: 0.05em;
  }

  .wide-name-row {
    display: flex;
    align-items: baseline;
    gap: 10px;
    margin-bottom: 14px;
    flex-wrap: wrap;
  }

  .wide-name {
    font-size: 20px;
    font-weight: 700;
  }

  .wide-name-en {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-muted);
    font-weight: 400;
  }

  .wide-bio {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: 1.8;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* コンサルタント・サポートメンバー: 横長カード */
  .staff-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-32) var(--space-40);
  }

  .staff-card {
    display: flex;
    align-items: stretch;
    gap: var(--space-24);
    background: var(--color-white);
    border-radius: 0;
    overflow: hidden;
    cursor: pointer;
  }

  .staff-image {
    width: clamp(100px, 20vw, 140px);
    height: 160px;
    flex-shrink: 0;
    background-size: cover;
    background-position: center top;
  }

  .staff-info {
    padding: 0;
    height: 160px;
    display: flex;
    flex-direction: column;
    justify-content: flex-start;
  }

  .staff-position {
    font-size: var(--font-size-xsmall);
    color: var(--color-primary);
    font-weight: 600;
    margin: 0 0 2px 0;
  }

  .staff-name-row {
    display: inline-flex;
    align-items: baseline;
    gap: var(--space-8);
    margin-bottom: 2px;
    flex-wrap: wrap;
    position: relative;
    width: fit-content;
  }

  .staff-name {
    font-size: 17px;
    font-weight: 700;
    color: #1a1a1a;
  }

  .staff-name-row::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 100%;
    height: 1px;
    background-color: #1a1a1a;
    transform: scaleX(0);
    transform-origin: right center;
    transition: transform var(--transition-normal);
  }

  .staff-card:hover .staff-name-row::after {
    transform: scaleX(1);
    transform-origin: left center;
  }

  .staff-name-en {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-muted);
  }

  .staff-bio {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-light);
    line-height: 1.6;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  /* 提供サービスタグ */
  .member-service-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-top: 12px;
  }

  .member-service-tag {
    display: inline-block;
    padding: var(--space-4) 10px;
    font-size: var(--font-size-xsmall);
    color: var(--color-primary);
    background: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: var(--card-radius);
    text-decoration: none;
    font-weight: 500;
    transition: all var(--transition-fast);
    white-space: nowrap;
  }

  .member-service-tag:hover {
    background: var(--color-primary);
    color: var(--color-white);
  }

  .member-services {
    margin-top: 2px;
  }

  .member-services-title {
    font-size: var(--font-size-xsmall);
    color: #1a1a1a;
    font-weight: 700;
    margin-bottom: var(--space-8);
  }

  .member-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
  }

  .member-tag {
    display: inline-block;
    padding: var(--space-4) 10px;
    font-size: var(--font-size-xsmall);
    color: var(--color-primary);
    background: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: var(--card-radius);
    text-decoration: none;
    font-weight: 500;
    transition: background-color var(--transition-fast), border-color var(--transition-fast), color var(--transition-fast);
  }

  .member-tag:hover {
    background: var(--color-primary);
    color: var(--color-white);
  }

  /* メンバーページメイン背景 */
  .member-page-main {
    background: var(--color-bg-gray);
  }

  /* ヒーロー画像位置調整 */
  .page-member-new .c-page-header__hero-img {
    top: 40%;
  }

  @media screen and (min-width: 1025px) and (max-width: 1200px) {
    .page-member-new .c-page-header__hero-img {
      height: 75%;
      right: -40px;
    }
  }

  /* ヒーロー説明文: TOPページと同じ17px */
  .page-member-new .c-page-header .c-section__lead {
    font-size: 17px;
    font-weight: 500;
    opacity: 0.95;
  }

  /* ページヘッダーCTAボタン: 白背景・青文字 */
  .page-member-new .c-page-header__buttons .c-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    height: auto;
    padding: var(--space-16) var(--space-40);
    background: var(--color-white);
    color: var(--color-primary);
    border: none;
    border-radius: var(--card-radius);
    font-size: 17px;
    font-weight: 600;
    text-decoration: none;
  }

  .page-member-new .c-page-header__buttons .c-btn:hover {
    background: rgba(255, 255, 255, 0.9);
  }

  /* モーダル内記事カード */
  .member-modal-article-card {
    display: flex;
    align-items: center;
    gap: var(--space-24);
    padding: 12px 20px;
    margin-bottom: var(--space-4);
    background: var(--color-white);
    border-radius: var(--card-radius);
    text-decoration: none;
    color: inherit;
  }

  .member-modal-article-card:hover .member-modal-article-title-text {
    background-size: 100% 1px;
    background-position: left bottom;
  }

  .member-modal-article-thumb {
    width: 160px;
    aspect-ratio: 16 / 9;
    border-radius: var(--card-radius);
    overflow: hidden;
    flex-shrink: 0;
    background: #ddd;
  }

  .member-modal-article-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  .member-modal-article-main {
    flex: 1;
    min-width: 0;
  }

  .member-modal-article-date {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    margin-bottom: var(--space-8);
  }

  .member-modal-article-title {
    font-size: var(--font-size-body);
    font-weight: 600;
    color: var(--color-text);
    line-height: 1.6;
    margin-bottom: 10px;
  }

  .member-modal-article-title-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-size: 0% 1px;
    background-repeat: no-repeat;
    background-position: right bottom;
    transition: background-size var(--transition-normal);
  }

  .member-modal-article-excerpt {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: 1.7;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }

  .member-modal-article-arrow {
    color: var(--color-primary);
    font-size: 24px;
    flex-shrink: 0;
    transition: transform var(--transition-normal);
  }

  .member-modal-article-card:hover .member-modal-article-arrow {
    transform: translateX(4px);
  }

  /* ========================================
     メンバーページ：タブレット（768px〜1024px）
     ======================================== */
  @media screen and (min-width: 768px) and (max-width: 1024px) {
    .wide-grid {
      grid-template-columns: repeat(2, 1fr);
    }

    .staff-grid {
      gap: var(--space-48) var(--space-32);
    }
  }

  /* メンバーページ：タブレット以下でヘッダー中央配置 */
  @media screen and (max-width: 1024px) {
    .page-member-new .c-page-header__body {
      text-align: center;
    }
    .page-member-new .c-page-header .c-section__lead {
      margin-left: auto;
      margin-right: auto;
    }
  }

  /* ========================================
     メンバーページ：モバイル（767px以下）
     ======================================== */
  @media screen and (max-width: 767px) {
    .page-member-new .c-page-header {
      height: 360px;
      padding: 0;
    }

    .member-tabs-nav {
      flex-wrap: wrap;
      width: 100%;
    }

    .member-tab-btn {
      width: auto;
      padding: 10px var(--space-8);
      font-size: var(--font-size-xsmall);
      flex: 1;
      text-align: center;
      min-width: 0;
      white-space: nowrap;
    }

    /* 2段組で幅に余裕があるため「社内チーム」をフル表示 */
    /* .member-tab-btn .tab-suffix {
      display: none;
    } */

    .member-section-title {
      font-size: 20px;
    }

    .member-filter-header {
      flex-direction: column;
      align-items: flex-start;
      gap: 12px;
    }

    .member-filter-tags {
      flex-wrap: wrap;
      gap: 6px;
    }

    .member-filter-tag {
      padding: 5px var(--space-8);
      font-size: var(--font-size-xsmall);
    }

    .wide-grid {
      grid-template-columns: 1fr;
    }

    .staff-grid {
      grid-template-columns: 1fr;
    }

    .staff-card {
      gap: var(--space-16);
    }

    .staff-image {
      width: 100px;
      height: 120px;
    }

    .staff-info {
      height: auto;
      min-height: 120px;
    }

    .staff-name {
      font-size: 15px;
    }

    .staff-bio {
      -webkit-line-clamp: 2;
    }

    .member-service-tags {
      display: none;
    }

    /* ホバーアニメーション無効化 */
    .staff-name-row::after {
      transition: none;
    }

    /* モーダル内記事カード */
    .member-modal-article-card {
      flex-direction: column;
      align-items: flex-start;
      padding: var(--space-16);
      gap: 12px;
    }

    .member-modal-article-thumb {
      width: 100%;
    }

    .member-modal-article-title {
      font-size: var(--font-size-small);
    }

    .member-modal-article-arrow {
      align-self: flex-end;
    }
  }

  /* ========================================
     サービスページ固有スタイル（/service/）
     page-service.php インラインCSSからの移行
     ======================================== */

  /* サービスマップ - 3×2グリッドカード（流体幅） */
  .p-service__map {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    width: min(540px, 40vw);
    flex-shrink: 1;
  }

  .p-service__map-card {
    display: block;
    background: var(--color-white);
    border-radius: var(--card-radius);
    padding: 20px 16px;
    text-align: center;
  }

  .p-service__map-card svg {
    width: 36px;
    height: 36px;
    stroke: var(--color-primary);
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    margin: 0 auto 10px;
    display: block;
  }

  .p-service__map-card-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text);
    line-height: var(--line-height-tight);
    margin-bottom: 6px;
  }

  .p-service__map-card-desc {
    font-size: 11px;
    color: var(--color-text-light);
    line-height: var(--line-height-tight);
  }

  /* ユーティリティクラス */
  .u-br-mobile {
    display: none;
  }

  /* サービスカード（縦並び） */
  .p-service-cards {
    display: flex;
    flex-direction: column;
    gap: var(--space-16);
    margin-top: var(--space-24);
  }

  .p-service-card {
    background: var(--color-white);
    border-radius: var(--card-radius);
    padding: var(--space-32);
    text-decoration: none;
    color: inherit;
    box-shadow: var(--card-shadow);
  }

  .p-service-card__header {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: var(--space-16);
    padding-bottom: var(--space-16);
    border-bottom: 1px solid var(--color-border);
  }

  .p-service-card__header--link {
    text-decoration: none;
    color: inherit;
  }

  .p-service-card__icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .p-service-card__icon svg {
    width: 28px;
    height: 28px;
    stroke: var(--color-primary);
    fill: none;
    stroke-width: 2;
  }

  .p-service-card__title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    flex: 1;
    transition: color var(--transition-normal);
  }

  .p-service-card__arrow {
    color: var(--color-primary);
    font-size: var(--font-size-body);
    transition: transform var(--transition-normal);
  }

  a.p-service-card:hover .p-service-card__arrow {
    transform: scale(1.3);
  }

  a.p-service-card:hover .p-service-card__title {
    color: var(--color-primary);
  }

  .p-service-card__header--link:hover .p-service-card__arrow {
    transform: scale(1.3);
  }

  .p-service-card__header--link:hover .p-service-card__title {
    color: var(--color-primary);
  }

  .p-service-card__desc {
    font-size: var(--font-size-body);
    color: var(--color-text-light);
    line-height: var(--line-height-body);
  }

  /* 業種特化型: 親カード */
  .p-service-card--parent .p-service-card__header {
    margin-bottom: var(--space-16);
  }

  .p-service-card--parent .p-service-card__desc {
    margin-bottom: var(--space-24);
  }

  .p-service-card__children {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }

  .p-service-card__child {
    background: var(--color-white);
    border-radius: var(--card-radius);
    padding: 14px var(--space-24) 16px;
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--color-border);
  }

  .p-service-card__child-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: var(--space-8);
  }

  .p-service-card__child-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .p-service-card__child-icon svg {
    width: 20px;
    height: 20px;
    stroke: var(--color-primary);
    fill: none;
    stroke-width: 2;
  }

  .p-service-card__child-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text);
    flex: 1;
    transition: color var(--transition-normal);
  }

  .p-service-card__child-arrow {
    color: var(--color-primary);
    font-size: var(--font-size-body);
    transition: transform var(--transition-normal);
  }

  .p-service-card__child:hover .p-service-card__child-arrow {
    transform: scale(1.3);
  }

  .p-service-card__child:hover .p-service-card__child-title {
    color: var(--color-primary);
  }

  .p-service-card__child-desc {
    font-size: 13px;
    color: var(--color-text-light);
    line-height: 1.6;
  }

  /* サービス一覧セクション - フォントサイズ調整 */
  #services .c-card__heading {
    font-size: var(--font-size-card-title);
  }

  #services .c-card__desc {
    font-size: var(--font-size-small);
  }

  #services .c-service-block__title {
    font-size: var(--font-size-body);
  }

  #services .c-service-block__desc {
    font-size: var(--font-size-small);
  }

  #services .c-service-sub-card__title {
    font-size: var(--font-size-body);
  }

  #services .c-service-sub-card__desc {
    font-size: var(--font-size-small);
  }

  /* 特長セクション: サービス一覧ページのみ中央揃え */
  .l-section--centered .c-section__title,
  .l-section--centered .c-section__lead {
    text-align: center;
  }

  .l-section--centered .c-section__lead {
    max-width: min(800px, 100%);
    margin-left: auto;
    margin-right: auto;
  }

  section#feature .c-feature-item__desc {
    padding-left: 0;
  }

  /* ----------------------------------------
     サービスページ レスポンシブ: タブレット以下
     ---------------------------------------- */
  @media screen and (max-width: 1024px) {
    .p-service__map {
      display: none;
    }

    .c-page-fv__right {
      display: none;
    }
  }

  @media screen and (min-width: 768px) and (max-width: 1024px) {
    .u-hide-tablet {
      display: none;
    }
  }

  /* ----------------------------------------
     サービスページ レスポンシブ: モバイル
     ---------------------------------------- */
  @media screen and (max-width: 767px) {
    #services .c-service-block__item {
      padding: var(--space-48) var(--space-16);
    }

    .u-br-mobile {
      display: block;
    }

    .u-block-mobile-mt {
      display: block;
      margin-top: 1em;
    }

    .p-service-card {
      padding: var(--space-24);
    }

    .p-service-card__children {
      grid-template-columns: 1fr;
    }

    .c-service-block__grid {
      grid-template-columns: 1fr;
    }

    .c-service-block__item {
      padding-left: var(--space-24);
    }
  }

  /* ========================================
     会社概要ページ固有スタイル（/company/）
     page-company.php インラインCSSからの移行
     ======================================== */

  /* ページヘッダー（FV）の説明文 */
  .page-company .c-page-header .c-section__lead {
    font-size: 17px;
    font-weight: 500;
    opacity: 0.95;
  }

  /* 会社概要ページ：タブレット以下でヘッダー中央配置 */
  @media screen and (max-width: 1024px) {
    .page-company .c-page-header__body {
      text-align: center;
    }
    .page-company .c-page-header .c-section__lead {
      margin-left: auto;
      margin-right: auto;
    }
  }

  /* 会社概要ページ：ヒーロー画像 1025〜1200px で縮小 */
  @media screen and (min-width: 1025px) and (max-width: 1200px) {
    .page-company .c-page-header__hero-img {
      height: 75%;
      right: -40px;
    }
  }

  /* ミッション・ビジョンセクション共通スタイル */
  #philosophy.c-philosophy,
  #vision.c-philosophy {
    min-height: 500px;
    padding: var(--space-64) 0;
    position: relative;
    overflow: hidden;
  }

  #philosophy .l-container,
  #vision .l-container {
    position: relative;
    z-index: 2;
  }

  #philosophy .c-philosophy__body,
  #vision .c-philosophy__body {
    width: auto;
    max-width: 700px;
  }

  #philosophy .c-philosophy__label,
  #vision .c-philosophy__label {
    margin-bottom: var(--space-24);
  }

  #philosophy .c-philosophy__heading,
  #vision .c-philosophy__heading {
    margin: 0 0 var(--space-32) 0;
  }

  #philosophy .c-philosophy__copy,
  #vision .c-philosophy__copy {
    font-size: var(--font-size-body);
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.8;
    margin-bottom: var(--space-16);
  }

  #philosophy .c-philosophy__copy:last-child,
  #vision .c-philosophy__copy:last-child {
    margin-bottom: 0;
  }

  #philosophy .c-philosophy__text-area,
  #vision .c-philosophy__text-area {
    gap: 0;
  }

  /* 画像配置: ミッションセクション */
  #philosophy .c-philosophy__visual {
    position: absolute;
    right: 0;
    bottom: -15px;
    width: clamp(500px, 65vw, 70%);
    max-width: calc(100% - 20px);
    z-index: 1;
    pointer-events: none;
  }

  #philosophy .c-philosophy__hand-img {
    display: block;
    width: 100%;
    height: auto;
  }

  /* 画像配置: ビジョンセクション */
  #vision .c-philosophy__visual {
    position: absolute;
    right: -5%;
    top: 40%;
    transform: translateY(-50%);
    width: clamp(400px, 45vw, 880px);
    z-index: 1;
    pointer-events: none;
  }

  #vision .c-philosophy__hand-img {
    display: block;
    width: 100%;
    height: auto;
  }

  /* ミッションセクション：1025〜1200px で画像縮小 */
  @media screen and (min-width: 1025px) and (max-width: 1200px) {
    #philosophy .c-philosophy__visual {
      width: clamp(450px, 55vw, 60%);
    }
  }

  /* アクセスセクション: 地図位置調整 */
  #access .c-access__map-wrap {
    margin-top: calc(-48px - 1.2em - 24px);
  }

  /* お知らせセクション */
  .c-company-news {
    max-width: min(800px, 100%);
    margin: 0 auto;
  }

  .c-company-news__title {
    font-size: var(--font-size-section-title);
    font-weight: 700;
    margin-bottom: var(--space-32);
    text-align: center;
  }

  .c-company-news__list {
    display: flex;
    flex-direction: column;
    gap: 0;
  }

  .c-company-news__cta {
    margin-top: var(--space-32);
    text-align: center;
  }

  .c-company-news__cta .c-btn {
    width: 280px;
  }

  /* セクション見出しサイズ統一 */
  .page-company #profile .c-section__title,
  .page-company #access .c-section__title,
  .page-company .c-access__title {
    font-size: var(--font-size-section-title);
  }

  /* タブレット（768-1024px） */
  @media screen and (min-width: 768px) and (max-width: 1024px) {
    #philosophy .c-philosophy__body,
    #vision .c-philosophy__body {
      width: 100%;
      max-width: 100%;
    }

    #philosophy .c-philosophy__visual,
    #vision .c-philosophy__visual {
      display: none;
    }

    #philosophy.c-philosophy,
    #vision.c-philosophy {
      min-height: auto;
      padding-bottom: 60px;
    }
  }

  /* モバイル（767px以下） */
  @media screen and (max-width: 767px) {
    #philosophy .c-philosophy__body,
    #vision .c-philosophy__body {
      width: 100%;
      max-width: 100%;
    }

    #philosophy .c-philosophy__visual,
    #vision .c-philosophy__visual {
      display: none;
    }

    #philosophy.c-philosophy,
    #vision.c-philosophy {
      min-height: auto;
      padding-bottom: 60px;
    }

    #access .c-access__map-wrap {
      margin-top: 0;
    }
  }

  /* ========================================
     共有コンポーネント: チェブロン・プロセスバー
     使用: ad-operation, consulting, listing-ad 等
     ======================================== */
  .p-flow-chevron {
    display: flex;
    gap: 0;
    max-width: 100%;
    margin: 0 auto;
  }
  .p-flow-chevron__item {
    flex: 1;
    position: relative;
    background: var(--color-bg-gray);
    padding: var(--space-32) var(--space-24) var(--space-32) var(--space-40);
    clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%, 20px 50%);
    text-align: center;
  }
  .p-flow-chevron__item:first-child {
    clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%);
    padding-left: var(--space-24);
  }
  .p-flow-chevron__step {
    font-size: var(--font-size-xsmall);
    font-weight: 600;
    color: var(--color-primary);
    letter-spacing: 0.1em;
    margin-bottom: var(--space-8);
  }
  .p-flow-chevron__title {
    font-size: var(--font-size-body);
    font-weight: 700;
    margin-bottom: var(--space-8);
    color: var(--color-text);
  }
  .p-flow-chevron__desc {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: var(--line-height-tight);
  }

  @media (max-width: 1024px) {
    .p-flow-chevron { flex-direction: column; gap: var(--space-4); }
    .p-flow-chevron__item,
    .p-flow-chevron__item:first-child {
      clip-path: none;
      padding: var(--space-24);
      border-radius: var(--card-radius);
    }
  }

  /* ========================================
     共有コンポーネント: 選定基準ブロック
     使用: ad-operation, consulting 等
     ======================================== */
  .p-criteria {
    margin-top: var(--space-80);
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
  }
  .p-criteria__lead {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    line-height: var(--line-height-body);
    text-align: center;
    margin-bottom: var(--space-32);
  }
  .p-criteria__box {
    border: 2px solid var(--color-primary);
    border-radius: var(--card-radius);
    padding: var(--space-40);
  }
  .p-criteria__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-32) var(--space-40);
  }
  .p-criteria__item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-16);
  }
  .p-criteria__num {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-primary);
    flex-shrink: 0;
    line-height: var(--line-height-body);
    min-width: 32px;
    margin-top: var(--space-24);
  }
  .p-criteria__text {
    font-size: var(--font-size-body);
    font-weight: 700;
    color: var(--color-text);
    line-height: var(--line-height-body);
  }

  @media (max-width: 767px) {
    .p-criteria__box { padding: var(--space-24); }
    .p-criteria__grid { grid-template-columns: 1fr; }
    .p-criteria { margin-top: var(--space-48); }
  }

  /* ========================================
     共有コンポーネント: FAQ
     使用: ad-operation, why, consulting 等
     ======================================== */
  .why-faq {
    padding: var(--space-80) 0;
    background-color: var(--color-bg-gray);
  }
  .why-faq .c-section__title {
    text-align: center;
  }
  .why-faq__list {
    max-width: 800px;
    margin: 0 auto;
  }
  .why-faq__item {
    border-bottom: 1px solid var(--color-border);
    padding: var(--space-24) 0;
  }
  .why-faq__item:first-child {
    border-top: 1px solid var(--color-border);
  }
  .why-faq__question {
    font-size: var(--font-size-body);
    font-weight: 600;
    margin-bottom: var(--space-16);
    display: flex;
    align-items: flex-start;
    gap: 12px;
  }
  .why-faq__q {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    background: var(--color-primary);
    color: var(--color-white);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: var(--font-size-small);
    font-weight: 700;
  }
  .why-faq__answer {
    font-size: 15px;
    line-height: 1.8;
    color: var(--color-text);
    padding-left: var(--space-40);
  }

  /* ========================================
     共有: サービス詳細ページ共通オーバーライド
     使用: ad-operation, consulting, listing-ad 等
     ======================================== */

  /* メンバーカード - 名前スライドアンダーライン */
  #member .c-member-card__name {
    position: relative;
    width: fit-content;
  }
  #member .c-member-card__name::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 100%;
    height: 1px;
    background-color: var(--color-text);
    transform: scaleX(0);
    transform-origin: right center;
    transition: transform 0.3s ease;
  }
  #member .c-member-card:hover .c-member-card__name::after {
    transform: scaleX(1);
    transform-origin: left center;
  }
  #member .c-member-card {
    box-shadow: var(--card-shadow);
  }
  #member .c-member-card:hover {
    box-shadow: var(--card-shadow);
  }
  #member .c-member-card__role {
    color: var(--color-primary);
  }
  #member .c-member-card__arrow {
    display: none;
  }

  /* お客様の声セクション - リード文の幅制限解除 */
  #voice .c-section__lead {
    max-width: none;
  }

  /* 6つの仕組み: アイコンとタイトルを上端揃え */
  .c-mechanism-list .c-mechanism {
    align-items: flex-start;
  }
  .c-mechanism-list .c-mechanism__title {
    line-height: 1;
  }

  /* ========================================
     広告運用代行ページ固有スタイル
     page-ad-operation.php
     ======================================== */

  /* ヒーロー説明文: gradient FV共通 */
  .c-page-fv--gradient .c-page-fv__desc {
    font-size: 17px;
    font-weight: 500;
    opacity: 0.95;
  }

  /* サービスマップ - 3×2グリッドカード */
  .p-ad-operation__map {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    width: min(540px, 40vw);
    flex-shrink: 0;
  }

  .p-ad-operation__map-card {
    display: block;
    background: var(--color-white);
    border-radius: var(--card-radius);
    padding: 20px 16px;
    text-align: center;
  }

  .p-ad-operation__map-card svg {
    width: 36px;
    height: 36px;
    stroke: var(--color-primary);
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    margin: 0 auto 10px;
    display: block;
  }

  .p-ad-operation__map-card-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text);
    line-height: var(--line-height-tight);
    margin-bottom: 6px;
  }

  .p-ad-operation__map-card-desc {
    font-size: 11px;
    color: var(--color-text-light);
    line-height: var(--line-height-tight);
  }

  @media (max-width: 1024px) {
    .p-ad-operation__map {
      display: none;
    }
  }

  /* 背景色・レイアウト修飾子 */
  .p-ad-operation--bg-gray {
    background-color: var(--color-bg-gray);
  }

  .p-ad-operation--centered .c-section__title,
  .p-ad-operation--centered .c-section__lead {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }

  /* ===== Pain Section Component (c-pain) ===== */
  .c-pain--bg-gray {
    background-color: var(--color-bg-gray);
  }
  .c-pain__grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: var(--space-48);
    align-items: stretch;
  }
  .c-pain__left {
    min-width: 0;
    display: flex;
    flex-direction: column;
    justify-content: space-between;
  }
  .c-pain__title {
    font-size: var(--font-size-section-title);
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 20px 0;
    line-height: var(--line-height-tight);
  }
  .c-pain__desc {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.9;
    margin-top: auto;
    margin-bottom: auto;
  }
  .c-pain__footer {
    margin-bottom: 0;
  }
  .c-pain__footer span {
    font-size: 24px;
    font-weight: 700;
    color: var(--color-primary);
  }
  .c-pain__right {
    min-width: 0;
  }
  .c-pain__bubbles {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 28px var(--space-16);
  }
  .c-pain__bubble {
    background: var(--color-white);
    padding: 12px 20px var(--space-24);
    border-radius: 12px;
    min-width: 0;
    box-shadow: var(--card-shadow);
    position: relative;
  }
  .c-pain__bubble::before {
    content: '';
    position: absolute;
    bottom: -10px;
    left: 20px;
    width: 0;
    height: 0;
    border-left: 10px solid transparent;
    border-right: 10px solid transparent;
    border-top: 12px solid var(--color-white);
    filter: drop-shadow(0 2px 2px rgba(0, 0, 0, 0.06));
  }
  .c-pain__quote {
    font-size: var(--font-size-body);
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.5;
    margin-top: var(--space-8);
    margin-bottom: var(--space-8);
  }
  .c-pain__detail {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: var(--line-height-body);
    margin: 0;
  }
  .c-pain__detail-list {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .c-pain__detail-list li {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    padding: 2px 0;
    line-height: var(--line-height-body);
  }

  @media screen and (max-width: 1024px) {
    .c-pain__grid {
      grid-template-columns: 1fr;
      gap: var(--space-32);
    }
    .c-pain__title {
      font-size: 26px;
    }
    .c-pain__footer {
      margin-bottom: var(--space-24);
    }
  }
  @media screen and (max-width: 767px) {
    .c-pain__bubbles {
      grid-template-columns: 1fr;
    }
  }

  /* サブセクション見出し */
  .p-ad-operation__subsection {
    margin-top: var(--space-48);
  }
  .p-ad-operation__subsection-title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 var(--space-24) 0;
    padding-left: 20px;
    border-left: 3px solid var(--color-primary);
  }
  .p-ad-operation__subsection-lead {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.8;
    margin: 0 0 var(--space-40) 0;
  }

  /* 特徴 - 画像付き交互レイアウト */
  .p-ad-operation__feature-item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-48);
    align-items: stretch;
    padding: var(--space-48) 0;
    border-bottom: 1px solid var(--color-border);
  }
  .p-ad-operation__feature-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
  .p-ad-operation__feature-item--reverse {
    direction: rtl;
  }
  .p-ad-operation__feature-item--reverse > * {
    direction: ltr;
  }
  .p-ad-operation__feature-content {
    display: flex;
    flex-direction: column;
  }
  .p-ad-operation__feature-heading {
    display: flex;
    align-items: center;
    gap: var(--space-16);
    margin-bottom: var(--space-16);
  }
  .p-ad-operation__feature-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    min-width: 52px;
    background: var(--color-primary);
    color: var(--color-white);
    border-radius: 50%;
    font-weight: 700;
    font-size: 22px;
  }
  .p-ad-operation__feature-title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.6;
    margin: 0;
  }
  .p-ad-operation__feature-desc {
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: 1.9;
    color: var(--color-text);
    margin: 1em 0;
    padding-left: 0;
  }
  .p-ad-operation__feature-image {
    width: 100%;
    height: 100%;
    border-radius: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .p-ad-operation__feature-image img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
  }

  /* 支援内容カードグリッド */
  .p-ad-operation__support-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 1fr;
    gap: var(--space-24);
  }
  .p-ad-operation__support-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--card-radius);
    padding: var(--space-24);
    display: flex;
    flex-direction: column;
  }
  .p-ad-operation__support-card .p-ad-operation__support-desc {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: 1.8;
    margin: 0;
  }

  @media screen and (max-width: 767px) {
    .p-ad-operation__feature-item {
      grid-template-columns: 1fr;
      gap: var(--space-24);
    }
    .p-ad-operation__feature-item--reverse {
      direction: ltr;
    }
    .p-ad-operation__feature-image {
      order: -1;
      max-width: 100%;
    }
    .p-ad-operation__feature-desc {
      padding-left: 0;
    }
    .p-ad-operation__support-grid {
      grid-template-columns: 1fr;
    }
  }

  /* サービス見出し+アイコン */
  .p-ad-operation__service-heading {
    display: flex;
    align-items: center;
    gap: var(--space-16);
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-primary);
    margin: 0 0 var(--space-16) 0;
  }
  .p-ad-operation__service-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, var(--color-primary), #00a0e9);
    border-radius: var(--card-radius);
    flex-shrink: 0;
  }
  .p-ad-operation__service-icon svg {
    width: 20px;
    height: 20px;
    stroke: var(--color-white);
    fill: none;
    stroke-width: 2;
  }

  /* ========================================
     サービス詳細ページ共通スタイル（11ページ分）
     multi-selector による一括定義
     ======================================== */
  .p-listing-ad__map,
  .p-display-ad__map,
  .p-shopping-ad__map,
  .p-sns-ad__map,
  .p-video-ad__map,
  .p-other-ad__map,
  .p-consulting__map,
  .p-inhouse__map,
  .p-industry__map,
  .p-creative-support__map,
  .p-data-management__map {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 14px;
    width: min(540px, 40vw);
    flex-shrink: 0;
  }
  .p-listing-ad__map-card,
  .p-display-ad__map-card,
  .p-shopping-ad__map-card,
  .p-sns-ad__map-card,
  .p-video-ad__map-card,
  .p-other-ad__map-card,
  .p-consulting__map-card,
  .p-inhouse__map-card,
  .p-industry__map-card,
  .p-creative-support__map-card,
  .p-data-management__map-card {
    display: block;
    background: var(--color-white);
    border-radius: var(--card-radius);
    padding: 20px 16px;
    text-align: center;
  }
  .p-listing-ad__map-card svg,
  .p-display-ad__map-card svg,
  .p-shopping-ad__map-card svg,
  .p-sns-ad__map-card svg,
  .p-video-ad__map-card svg,
  .p-other-ad__map-card svg,
  .p-consulting__map-card svg,
  .p-inhouse__map-card svg,
  .p-industry__map-card svg,
  .p-creative-support__map-card svg,
  .p-data-management__map-card svg {
    width: 36px;
    height: 36px;
    stroke: var(--color-primary);
    fill: none;
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    margin: 0 auto 10px;
    display: block;
  }
  .p-listing-ad__map-card-name,
  .p-display-ad__map-card-name,
  .p-shopping-ad__map-card-name,
  .p-sns-ad__map-card-name,
  .p-video-ad__map-card-name,
  .p-other-ad__map-card-name,
  .p-consulting__map-card-name,
  .p-inhouse__map-card-name,
  .p-industry__map-card-name,
  .p-creative-support__map-card-name,
  .p-data-management__map-card-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--color-text);
    line-height: var(--line-height-tight);
    margin-bottom: 6px;
  }
  .p-listing-ad__map-card-desc,
  .p-display-ad__map-card-desc,
  .p-shopping-ad__map-card-desc,
  .p-sns-ad__map-card-desc,
  .p-video-ad__map-card-desc,
  .p-other-ad__map-card-desc,
  .p-consulting__map-card-desc,
  .p-inhouse__map-card-desc,
  .p-industry__map-card-desc,
  .p-creative-support__map-card-desc,
  .p-data-management__map-card-desc {
    font-size: 11px;
    color: var(--color-text-light);
    line-height: var(--line-height-tight);
  }

  @media (max-width: 1024px) {
    .p-listing-ad__map,
    .p-display-ad__map,
    .p-shopping-ad__map,
    .p-sns-ad__map,
    .p-video-ad__map,
    .p-other-ad__map,
    .p-consulting__map,
    .p-inhouse__map,
    .p-industry__map,
    .p-creative-support__map,
    .p-data-management__map {
      display: none;
    }
  }
  .p-listing-ad--bg-gray,
  .p-display-ad--bg-gray,
  .p-shopping-ad--bg-gray,
  .p-consulting--bg-gray,
  .p-inhouse--bg-gray,
  .p-industry--bg-gray,
  .p-creative-support--bg-gray,
  .p-data-management--bg-gray,
  .p-sns-ad__bg-gray,
  .p-video-ad__bg-gray,
  .p-other-ad__bg-gray {
    background-color: var(--color-bg-gray);
  }
  .p-listing-ad--centered .c-section__title,
  .p-listing-ad--centered .c-section__lead,
  .p-display-ad--centered .c-section__title,
  .p-display-ad--centered .c-section__lead,
  .p-shopping-ad--centered .c-section__title,
  .p-shopping-ad--centered .c-section__lead,
  .p-consulting--centered .c-section__title,
  .p-consulting--centered .c-section__lead,
  .p-inhouse--centered .c-section__title,
  .p-inhouse--centered .c-section__lead,
  .p-industry--centered .c-section__title,
  .p-industry--centered .c-section__lead,
  .p-creative-support--centered .c-section__title,
  .p-creative-support--centered .c-section__lead,
  .p-data-management--centered .c-section__title,
  .p-data-management--centered .c-section__lead,
  .p-sns-ad__centered .c-section__title,
  .p-sns-ad__centered .c-section__lead,
  .p-video-ad__centered .c-section__title,
  .p-video-ad__centered .c-section__lead,
  .p-other-ad__centered .c-section__title,
  .p-other-ad__centered .c-section__lead {
    text-align: center;
    margin-left: auto;
    margin-right: auto;
  }
  .p-listing-ad__service-heading,
  .p-display-ad__service-heading,
  .p-shopping-ad__service-heading,
  .p-sns-ad__service-heading,
  .p-video-ad__service-heading,
  .p-other-ad__service-heading,
  .p-consulting__service-heading,
  .p-inhouse__service-heading,
  .p-industry__service-heading,
  .p-creative-support__service-heading,
  .p-data-management__service-heading {
    display: flex;
    align-items: center;
    gap: var(--space-16);
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-primary);
    margin: 0 0 var(--space-16) 0;
  }
  .p-listing-ad__service-icon,
  .p-display-ad__service-icon,
  .p-shopping-ad__service-icon,
  .p-sns-ad__service-icon,
  .p-video-ad__service-icon,
  .p-other-ad__service-icon,
  .p-consulting__service-icon,
  .p-inhouse__service-icon,
  .p-industry__service-icon,
  .p-creative-support__service-icon,
  .p-data-management__service-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: linear-gradient(135deg, var(--color-primary), #00a0e9);
    border-radius: var(--card-radius);
    flex-shrink: 0;
  }
  .p-listing-ad__service-icon svg,
  .p-display-ad__service-icon svg,
  .p-shopping-ad__service-icon svg,
  .p-sns-ad__service-icon svg,
  .p-video-ad__service-icon svg,
  .p-other-ad__service-icon svg,
  .p-consulting__service-icon svg,
  .p-inhouse__service-icon svg,
  .p-industry__service-icon svg,
  .p-creative-support__service-icon svg,
  .p-data-management__service-icon svg {
    width: 20px;
    height: 20px;
    stroke: var(--color-white);
    fill: none;
    stroke-width: 2;
  }
  .p-listing-ad__subsection,
  .p-display-ad__subsection,
  .p-shopping-ad__subsection,
  .p-sns-ad__subsection,
  .p-video-ad__subsection,
  .p-other-ad__subsection,
  .p-consulting__subsection,
  .p-inhouse__subsection,
  .p-industry__subsection,
  .p-creative-support__subsection,
  .p-data-management__subsection {
    margin-top: var(--space-48);
  }
  .p-listing-ad__subsection-title,
  .p-display-ad__subsection-title,
  .p-shopping-ad__subsection-title,
  .p-sns-ad__subsection-title,
  .p-video-ad__subsection-title,
  .p-other-ad__subsection-title,
  .p-consulting__subsection-title,
  .p-inhouse__subsection-title,
  .p-industry__subsection-title,
  .p-creative-support__subsection-title,
  .p-data-management__subsection-title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 var(--space-24) 0;
    padding-left: 20px;
    border-left: 3px solid var(--color-primary);
  }
  .p-listing-ad__subsection-lead,
  .p-display-ad__subsection-lead,
  .p-shopping-ad__subsection-lead,
  .p-sns-ad__subsection-lead,
  .p-video-ad__subsection-lead,
  .p-other-ad__subsection-lead,
  .p-consulting__subsection-lead,
  .p-inhouse__subsection-lead,
  .p-industry__subsection-lead,
  .p-creative-support__subsection-lead,
  .p-data-management__subsection-lead {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.8;
    margin: 0 0 var(--space-40) 0;
  }
  .p-listing-ad__feature-list,
  .p-display-ad__feature-list,
  .p-shopping-ad__feature-list,
  .p-sns-ad__feature-list,
  .p-video-ad__feature-list,
  .p-other-ad__feature-list,
  .p-consulting__feature-list,
  .p-inhouse__feature-list,
  .p-industry__feature-list,
  .p-creative-support__feature-list,
  .p-data-management__feature-list {
    list-style: none;
    padding: 0;
    margin: 0;
  }
  .p-listing-ad__feature-item,
  .p-display-ad__feature-item,
  .p-shopping-ad__feature-item,
  .p-sns-ad__feature-item,
  .p-video-ad__feature-item,
  .p-other-ad__feature-item,
  .p-consulting__feature-item,
  .p-inhouse__feature-item,
  .p-industry__feature-item,
  .p-creative-support__feature-item,
  .p-data-management__feature-item {
    padding: var(--space-32) 0;
    border-bottom: 1px solid var(--color-border);
  }
  .p-listing-ad__feature-item:first-child,
  .p-display-ad__feature-item:first-child,
  .p-shopping-ad__feature-item:first-child,
  .p-sns-ad__feature-item:first-child,
  .p-video-ad__feature-item:first-child,
  .p-other-ad__feature-item:first-child,
  .p-consulting__feature-item:first-child,
  .p-inhouse__feature-item:first-child,
  .p-industry__feature-item:first-child,
  .p-creative-support__feature-item:first-child,
  .p-data-management__feature-item:first-child {
    padding-top: 0;
  }
  .p-listing-ad__feature-item:last-child,
  .p-display-ad__feature-item:last-child,
  .p-shopping-ad__feature-item:last-child,
  .p-sns-ad__feature-item:last-child,
  .p-video-ad__feature-item:last-child,
  .p-other-ad__feature-item:last-child,
  .p-consulting__feature-item:last-child,
  .p-inhouse__feature-item:last-child,
  .p-industry__feature-item:last-child,
  .p-creative-support__feature-item:last-child,
  .p-data-management__feature-item:last-child {
    border-bottom: none;
  }
  .p-listing-ad__feature-heading,
  .p-display-ad__feature-heading,
  .p-shopping-ad__feature-heading,
  .p-sns-ad__feature-heading,
  .p-video-ad__feature-heading,
  .p-other-ad__feature-heading,
  .p-consulting__feature-heading,
  .p-inhouse__feature-heading,
  .p-industry__feature-heading,
  .p-creative-support__feature-heading,
  .p-data-management__feature-heading {
    display: flex;
    align-items: center;
    gap: 12px;
    margin: 0 0 var(--space-16) 0;
  }
  .p-listing-ad__feature-num,
  .p-display-ad__feature-num,
  .p-shopping-ad__feature-num,
  .p-sns-ad__feature-num,
  .p-video-ad__feature-num,
  .p-other-ad__feature-num,
  .p-consulting__feature-num,
  .p-inhouse__feature-num,
  .p-industry__feature-num,
  .p-creative-support__feature-num,
  .p-data-management__feature-num {
    font-size: var(--font-size-section-title);
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1;
  }
  .p-listing-ad__feature-title,
  .p-display-ad__feature-title,
  .p-shopping-ad__feature-title,
  .p-sns-ad__feature-title,
  .p-video-ad__feature-title,
  .p-other-ad__feature-title,
  .p-consulting__feature-title,
  .p-inhouse__feature-title,
  .p-industry__feature-title,
  .p-creative-support__feature-title,
  .p-data-management__feature-title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    line-height: var(--line-height-tight);
  }
  .p-listing-ad__feature-desc,
  .p-display-ad__feature-desc,
  .p-shopping-ad__feature-desc,
  .p-sns-ad__feature-desc,
  .p-video-ad__feature-desc,
  .p-other-ad__feature-desc {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.9;
    margin: 0;
    padding-left: 0;
  }
  .p-consulting__feature-desc,
  .p-inhouse__feature-desc,
  .p-industry__feature-desc,
  .p-creative-support__feature-desc,
  .p-data-management__feature-desc {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.9;
    margin: 0;
    padding-left: 44px;
  }
  .p-listing-ad__support-grid,
  .p-display-ad__support-grid,
  .p-shopping-ad__support-grid,
  .p-sns-ad__support-grid,
  .p-video-ad__support-grid,
  .p-other-ad__support-grid,
  .p-consulting__support-grid,
  .p-inhouse__support-grid,
  .p-industry__support-grid,
  .p-creative-support__support-grid,
  .p-data-management__support-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-24);
  }
  .p-listing-ad__support-card,
  .p-display-ad__support-card,
  .p-shopping-ad__support-card,
  .p-sns-ad__support-card,
  .p-video-ad__support-card,
  .p-other-ad__support-card,
  .p-consulting__support-card,
  .p-inhouse__support-card,
  .p-industry__support-card,
  .p-creative-support__support-card,
  .p-data-management__support-card {
    background: var(--color-white);
    border: 1px solid var(--color-border);
    border-radius: var(--card-radius);
    padding: var(--space-24);
  }
  .p-listing-ad__support-card .p-listing-ad__support-desc,
  .p-display-ad__support-card .p-display-ad__support-desc,
  .p-shopping-ad__support-card .p-shopping-ad__support-desc,
  .p-sns-ad__support-card .p-sns-ad__support-desc,
  .p-video-ad__support-card .p-video-ad__support-desc,
  .p-other-ad__support-card .p-other-ad__support-desc,
  .p-consulting__support-card .p-consulting__support-desc,
  .p-inhouse__support-card .p-inhouse__support-desc,
  .p-industry__support-card .p-industry__support-desc,
  .p-creative-support__support-card .p-creative-support__support-desc,
  .p-data-management__support-card .p-data-management__support-desc {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: 1.8;
    margin: 0;
  }

  /* 価値を約束する仕組み - 画像付き交互レイアウト */
  .p-service-listing .p-listing-ad__feature-item,
  .p-service-display .p-display-ad__feature-item,
  .p-service-shopping .p-shopping-ad__feature-item,
  .p-service-sns .p-sns-ad__feature-item,
  .p-service-video .p-video-ad__feature-item,
  .p-service-other .p-other-ad__feature-item,
  .p-service-consulting .p-consulting__feature-item,
  .p-service-inhouse .p-inhouse__feature-item,
  .p-service-industry .p-industry__feature-item,
  .p-service-creative .p-creative-support__feature-item,
  .p-service-data-management .p-data-management__feature-item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-48);
    align-items: stretch;
    padding: var(--space-48) 0;
    border-bottom: 1px solid var(--color-border);
  }
  .p-service-listing .p-listing-ad__feature-item:last-child,
  .p-service-display .p-display-ad__feature-item:last-child,
  .p-service-shopping .p-shopping-ad__feature-item:last-child,
  .p-service-sns .p-sns-ad__feature-item:last-child,
  .p-service-video .p-video-ad__feature-item:last-child,
  .p-service-other .p-other-ad__feature-item:last-child,
  .p-service-consulting .p-consulting__feature-item:last-child,
  .p-service-inhouse .p-inhouse__feature-item:last-child,
  .p-service-industry .p-industry__feature-item:last-child,
  .p-service-creative .p-creative-support__feature-item:last-child,
  .p-service-data-management .p-data-management__feature-item:last-child {
    border-bottom: none;
    padding-bottom: 0;
  }
  .p-service-listing .p-listing-ad__feature-item--reverse,
  .p-service-display .p-display-ad__feature-item--reverse,
  .p-service-shopping .p-shopping-ad__feature-item--reverse,
  .p-service-sns .p-sns-ad__feature-item--reverse,
  .p-service-video .p-video-ad__feature-item--reverse,
  .p-service-other .p-other-ad__feature-item--reverse,
  .p-service-consulting .p-consulting__feature-item--reverse,
  .p-service-inhouse .p-inhouse__feature-item--reverse,
  .p-service-industry .p-industry__feature-item--reverse,
  .p-service-creative .p-creative-support__feature-item--reverse,
  .p-service-data-management .p-data-management__feature-item--reverse {
    direction: rtl;
  }
  .p-service-listing .p-listing-ad__feature-item--reverse > *,
  .p-service-display .p-display-ad__feature-item--reverse > *,
  .p-service-shopping .p-shopping-ad__feature-item--reverse > *,
  .p-service-sns .p-sns-ad__feature-item--reverse > *,
  .p-service-video .p-video-ad__feature-item--reverse > *,
  .p-service-other .p-other-ad__feature-item--reverse > *,
  .p-service-consulting .p-consulting__feature-item--reverse > *,
  .p-service-inhouse .p-inhouse__feature-item--reverse > *,
  .p-service-industry .p-industry__feature-item--reverse > *,
  .p-service-creative .p-creative-support__feature-item--reverse > *,
  .p-service-data-management .p-data-management__feature-item--reverse > * {
    direction: ltr;
  }
  .p-service-listing .p-listing-ad__feature-content,
  .p-service-display .p-display-ad__feature-content,
  .p-service-shopping .p-shopping-ad__feature-content,
  .p-service-sns .p-sns-ad__feature-content,
  .p-service-video .p-video-ad__feature-content,
  .p-service-other .p-other-ad__feature-content,
  .p-service-consulting .p-consulting__feature-content,
  .p-service-inhouse .p-inhouse__feature-content,
  .p-service-industry .p-industry__feature-content,
  .p-service-creative .p-creative-support__feature-content,
  .p-service-data-management .p-data-management__feature-content {
    display: flex;
    flex-direction: column;
  }
  .p-service-listing .p-listing-ad__feature-heading,
  .p-service-display .p-display-ad__feature-heading,
  .p-service-shopping .p-shopping-ad__feature-heading,
  .p-service-sns .p-sns-ad__feature-heading,
  .p-service-video .p-video-ad__feature-heading,
  .p-service-other .p-other-ad__feature-heading,
  .p-service-consulting .p-consulting__feature-heading,
  .p-service-inhouse .p-inhouse__feature-heading,
  .p-service-industry .p-industry__feature-heading,
  .p-service-creative .p-creative-support__feature-heading,
  .p-service-data-management .p-data-management__feature-heading {
    display: flex;
    align-items: center;
    gap: var(--space-16);
    margin-bottom: var(--space-16);
  }
  .p-service-listing .p-listing-ad__feature-num,
  .p-service-display .p-display-ad__feature-num,
  .p-service-shopping .p-shopping-ad__feature-num,
  .p-service-sns .p-sns-ad__feature-num,
  .p-service-video .p-video-ad__feature-num,
  .p-service-other .p-other-ad__feature-num,
  .p-service-consulting .p-consulting__feature-num,
  .p-service-inhouse .p-inhouse__feature-num,
  .p-service-industry .p-industry__feature-num,
  .p-service-creative .p-creative-support__feature-num,
  .p-service-data-management .p-data-management__feature-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    min-width: 52px;
    background: var(--color-primary);
    color: var(--color-white);
    border-radius: 50%;
    font-weight: 700;
    font-size: 22px;
  }
  .p-service-listing .p-listing-ad__feature-title,
  .p-service-display .p-display-ad__feature-title,
  .p-service-shopping .p-shopping-ad__feature-title,
  .p-service-sns .p-sns-ad__feature-title,
  .p-service-video .p-video-ad__feature-title,
  .p-service-other .p-other-ad__feature-title,
  .p-service-consulting .p-consulting__feature-title,
  .p-service-inhouse .p-inhouse__feature-title,
  .p-service-industry .p-industry__feature-title,
  .p-service-creative .p-creative-support__feature-title,
  .p-service-data-management .p-data-management__feature-title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.6;
    margin: 0;
  }
  .p-service-listing .p-listing-ad__feature-desc,
  .p-service-display .p-display-ad__feature-desc,
  .p-service-shopping .p-shopping-ad__feature-desc,
  .p-service-sns .p-sns-ad__feature-desc,
  .p-service-video .p-video-ad__feature-desc,
  .p-service-other .p-other-ad__feature-desc,
  .p-service-consulting .p-consulting__feature-desc,
  .p-service-inhouse .p-inhouse__feature-desc,
  .p-service-industry .p-industry__feature-desc,
  .p-service-creative .p-creative-support__feature-desc,
  .p-service-data-management .p-data-management__feature-desc {
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: 1.9;
    color: var(--color-text);
    margin: 1em 0;
    padding-left: 0;
  }
  .p-service-listing .p-listing-ad__feature-image,
  .p-service-display .p-display-ad__feature-image,
  .p-service-shopping .p-shopping-ad__feature-image,
  .p-service-sns .p-sns-ad__feature-image,
  .p-service-video .p-video-ad__feature-image,
  .p-service-other .p-other-ad__feature-image,
  .p-service-consulting .p-consulting__feature-image,
  .p-service-inhouse .p-inhouse__feature-image,
  .p-service-industry .p-industry__feature-image,
  .p-service-creative .p-creative-support__feature-image,
  .p-service-data-management .p-data-management__feature-image {
    width: 100%;
    height: 100%;
    border-radius: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .p-service-listing .p-listing-ad__feature-image img,
  .p-service-display .p-display-ad__feature-image img,
  .p-service-shopping .p-shopping-ad__feature-image img,
  .p-service-sns .p-sns-ad__feature-image img,
  .p-service-video .p-video-ad__feature-image img,
  .p-service-other .p-other-ad__feature-image img,
  .p-service-consulting .p-consulting__feature-image img,
  .p-service-inhouse .p-inhouse__feature-image img,
  .p-service-industry .p-industry__feature-image img,
  .p-service-creative .p-creative-support__feature-image img,
  .p-service-data-management .p-data-management__feature-image img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
  }
  @media screen and (max-width: 767px) {
    .p-service-listing .p-listing-ad__feature-item,
    .p-service-display .p-display-ad__feature-item,
    .p-service-shopping .p-shopping-ad__feature-item,
    .p-service-sns .p-sns-ad__feature-item,
    .p-service-video .p-video-ad__feature-item,
    .p-service-other .p-other-ad__feature-item,
    .p-service-consulting .p-consulting__feature-item,
    .p-service-inhouse .p-inhouse__feature-item,
    .p-service-industry .p-industry__feature-item,
    .p-service-creative .p-creative-support__feature-item,
    .p-service-data-management .p-data-management__feature-item {
      grid-template-columns: 1fr;
      gap: var(--space-24);
    }
    .p-service-listing .p-listing-ad__feature-item--reverse,
    .p-service-display .p-display-ad__feature-item--reverse,
    .p-service-shopping .p-shopping-ad__feature-item--reverse,
    .p-service-sns .p-sns-ad__feature-item--reverse,
    .p-service-video .p-video-ad__feature-item--reverse,
    .p-service-other .p-other-ad__feature-item--reverse,
    .p-service-consulting .p-consulting__feature-item--reverse,
    .p-service-inhouse .p-inhouse__feature-item--reverse,
    .p-service-industry .p-industry__feature-item--reverse,
    .p-service-creative .p-creative-support__feature-item--reverse,
    .p-service-data-management .p-data-management__feature-item--reverse {
      direction: ltr;
    }
    .p-service-listing .p-listing-ad__feature-image,
    .p-service-display .p-display-ad__feature-image,
    .p-service-shopping .p-shopping-ad__feature-image,
    .p-service-sns .p-sns-ad__feature-image,
    .p-service-video .p-video-ad__feature-image,
    .p-service-other .p-other-ad__feature-image,
    .p-service-consulting .p-consulting__feature-image,
    .p-service-inhouse .p-inhouse__feature-image,
    .p-service-industry .p-industry__feature-image,
    .p-service-creative .p-creative-support__feature-image,
    .p-service-data-management .p-data-management__feature-image {
      order: -1;
      max-width: 100%;
    }
    .p-consulting__feature-heading,
    .p-inhouse__feature-heading,
    .p-industry__feature-heading,
    .p-creative-support__feature-heading,
    .p-data-management__feature-heading {
      gap: 8px;
    }
    .p-consulting__feature-num,
    .p-inhouse__feature-num,
    .p-industry__feature-num,
    .p-creative-support__feature-num,
    .p-data-management__feature-num {
      font-size: 26px;
    }
    .p-consulting__feature-title,
    .p-inhouse__feature-title,
    .p-industry__feature-title,
    .p-creative-support__feature-title,
    .p-data-management__feature-title {
      font-size: 17px;
    }
    .p-consulting__feature-desc,
    .p-inhouse__feature-desc,
    .p-industry__feature-desc,
    .p-creative-support__feature-desc,
    .p-data-management__feature-desc {
      font-size: var(--font-size-small);
      padding-left: 36px;
    }
    .p-listing-ad__support-grid,
    .p-display-ad__support-grid,
    .p-shopping-ad__support-grid,
    .p-sns-ad__support-grid,
    .p-video-ad__support-grid,
    .p-other-ad__support-grid,
    .p-consulting__support-grid,
    .p-inhouse__support-grid,
    .p-industry__support-grid,
    .p-creative-support__support-grid,
    .p-data-management__support-grid {
      grid-template-columns: 1fr;
    }
  }

  /* サービスマップ - アクティブ状態（現在のページ強調） */
  .p-listing-ad__map-item--active,
  .p-display-ad__map-item--active,
  .p-shopping-ad__map-item--active,
  .p-sns-ad__map-item--active,
  .p-video-ad__map-item--active,
  .p-other-ad__map-item--active {
    border: 3px solid var(--color-primary);
    box-shadow: 0 0 0 4px rgba(255, 255, 255, 0.9), 0 4px 20px rgba(0, 103, 192, 0.3);
    background: var(--color-white);
  }
  .p-listing-ad__map-item--active svg,
  .p-display-ad__map-item--active svg,
  .p-shopping-ad__map-item--active svg,
  .p-sns-ad__map-item--active svg,
  .p-video-ad__map-item--active svg,
  .p-other-ad__map-item--active svg {
    stroke: var(--color-primary);
    stroke-width: 2.5;
  }
  .p-listing-ad__map-item--active .p-listing-ad__map-item-text,
  .p-display-ad__map-item--active .p-display-ad__map-item-text,
  .p-shopping-ad__map-item--active .p-shopping-ad__map-item-text,
  .p-sns-ad__map-item--active .p-sns-ad__map-item-text,
  .p-video-ad__map-item--active .p-video-ad__map-item-text,
  .p-other-ad__map-item--active .p-other-ad__map-item-text {
    color: var(--color-primary);
    font-weight: 700;
  }
  .p-listing-ad__map-item:not(.p-listing-ad__map-item--active),
  .p-display-ad__map-item:not(.p-display-ad__map-item--active),
  .p-shopping-ad__map-item:not(.p-shopping-ad__map-item--active),
  .p-sns-ad__map-item:not(.p-sns-ad__map-item--active),
  .p-video-ad__map-item:not(.p-video-ad__map-item--active),
  .p-other-ad__map-item:not(.p-other-ad__map-item--active) {
    opacity: 0.6;
  }

  /* プレフィックス付きチェブロン（shopping, sns, video, other） */
  .p-shopping-ad__flow-chevron,
  .p-sns-ad__flow-chevron,
  .p-video-ad__flow-chevron,
  .p-other-ad__flow-chevron {
    display: flex;
    gap: 0;
    max-width: 100%;
    margin: 0 auto;
  }
  .p-shopping-ad__flow-chevron-item,
  .p-sns-ad__flow-chevron-item,
  .p-video-ad__flow-chevron-item,
  .p-other-ad__flow-chevron-item {
    flex: 1;
    position: relative;
    background: var(--color-bg-gray);
    padding: var(--space-32) var(--space-24) var(--space-32) var(--space-40);
    clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%, 20px 50%);
    text-align: center;
  }
  .p-shopping-ad__flow-chevron-item:first-child,
  .p-sns-ad__flow-chevron-item:first-child,
  .p-video-ad__flow-chevron-item:first-child,
  .p-other-ad__flow-chevron-item:first-child {
    clip-path: polygon(0 0, calc(100% - 20px) 0, 100% 50%, calc(100% - 20px) 100%, 0 100%);
    padding-left: var(--space-24);
  }
  .p-shopping-ad__flow-chevron-step,
  .p-sns-ad__flow-chevron-step,
  .p-video-ad__flow-chevron-step,
  .p-other-ad__flow-chevron-step {
    font-size: var(--font-size-xsmall);
    font-weight: 600;
    color: var(--color-primary);
    letter-spacing: 0.1em;
    margin-bottom: var(--space-8);
  }
  .p-shopping-ad__flow-chevron-title,
  .p-sns-ad__flow-chevron-title,
  .p-video-ad__flow-chevron-title,
  .p-other-ad__flow-chevron-title {
    font-size: var(--font-size-body);
    font-weight: 700;
    margin-bottom: var(--space-8);
    color: var(--color-text);
  }
  .p-shopping-ad__flow-chevron-desc,
  .p-sns-ad__flow-chevron-desc,
  .p-video-ad__flow-chevron-desc,
  .p-other-ad__flow-chevron-desc {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: var(--line-height-tight);
  }
  @media (max-width: 1024px) {
    .p-shopping-ad__flow-chevron,
    .p-sns-ad__flow-chevron,
    .p-video-ad__flow-chevron,
    .p-other-ad__flow-chevron {
      flex-direction: column;
      gap: var(--space-4);
    }
    .p-shopping-ad__flow-chevron-item,
    .p-shopping-ad__flow-chevron-item:first-child,
    .p-sns-ad__flow-chevron-item,
    .p-sns-ad__flow-chevron-item:first-child,
    .p-video-ad__flow-chevron-item,
    .p-video-ad__flow-chevron-item:first-child,
    .p-other-ad__flow-chevron-item,
    .p-other-ad__flow-chevron-item:first-child {
      clip-path: none;
      padding: var(--space-24);
      border-radius: var(--card-radius);
    }
  }

  /* プレフィックス付き選定基準（shopping, sns, video, other） */
  .p-shopping-ad__criteria,
  .p-sns-ad__criteria,
  .p-video-ad__criteria,
  .p-other-ad__criteria {
    margin-top: var(--space-80);
    max-width: 900px;
    margin-left: auto;
    margin-right: auto;
  }
  .p-shopping-ad__criteria-lead,
  .p-sns-ad__criteria-lead,
  .p-video-ad__criteria-lead,
  .p-other-ad__criteria-lead {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    line-height: var(--line-height-body);
    text-align: center;
    margin-bottom: var(--space-32);
  }
  .p-shopping-ad__criteria-box,
  .p-sns-ad__criteria-box,
  .p-video-ad__criteria-box,
  .p-other-ad__criteria-box {
    border: 2px solid var(--color-primary);
    border-radius: var(--card-radius);
    padding: var(--space-40);
  }
  .p-shopping-ad__criteria-grid,
  .p-sns-ad__criteria-grid,
  .p-video-ad__criteria-grid,
  .p-other-ad__criteria-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-32) var(--space-40);
  }
  .p-shopping-ad__criteria-item,
  .p-sns-ad__criteria-item,
  .p-video-ad__criteria-item,
  .p-other-ad__criteria-item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-16);
  }
  .p-shopping-ad__criteria-num,
  .p-sns-ad__criteria-num,
  .p-video-ad__criteria-num,
  .p-other-ad__criteria-num {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-primary);
    flex-shrink: 0;
    line-height: var(--line-height-body);
    min-width: 32px;
    margin-top: 20px;
  }
  .p-shopping-ad__criteria-text,
  .p-sns-ad__criteria-text,
  .p-video-ad__criteria-text,
  .p-other-ad__criteria-text {
    font-size: var(--font-size-body);
    font-weight: 700;
    color: var(--color-text);
    line-height: var(--line-height-body);
  }
  @media (max-width: 767px) {
    .p-shopping-ad__criteria-box,
    .p-sns-ad__criteria-box,
    .p-video-ad__criteria-box,
    .p-other-ad__criteria-box {
      padding: var(--space-24);
    }
    .p-shopping-ad__criteria-grid,
    .p-sns-ad__criteria-grid,
    .p-video-ad__criteria-grid,
    .p-other-ad__criteria-grid {
      grid-template-columns: 1fr;
    }
    .p-shopping-ad__criteria,
    .p-sns-ad__criteria,
    .p-video-ad__criteria,
    .p-other-ad__criteria {
      margin-top: var(--space-48);
    }
  }

  /* ========================================
     業種特化型 - EC・BtoB 業種別サービスカード
     page-industry.php 固有
     ======================================== */
  .p-industry__specialized-services {
    margin-top: var(--space-80);
  }
  .p-industry__specialized-services .p-service-card__children {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
  .p-industry__specialized-services .p-service-card__child {
    background: var(--color-white);
    border-radius: var(--card-radius);
    padding: 20px 24px;
    text-decoration: none;
    color: inherit;
    border: 1px solid var(--color-border);
  }
  .p-industry__specialized-services .p-service-card__child-header {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: var(--space-8);
  }
  .p-industry__specialized-services .p-service-card__child-icon {
    width: 20px;
    height: 20px;
    flex-shrink: 0;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .p-industry__specialized-services .p-service-card__child-icon svg {
    width: 20px;
    height: 20px;
    stroke: var(--color-primary);
    fill: none;
    stroke-width: 2;
  }
  .p-industry__specialized-services .p-service-card__child-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text);
    flex: 1;
    transition: color 0.25s ease;
  }
  .p-industry__specialized-services .p-service-card__child-arrow {
    color: var(--color-primary);
    font-size: var(--font-size-body);
    transition: transform 0.25s ease;
  }
  .p-industry__specialized-services .p-service-card__child:hover .p-service-card__child-arrow {
    transform: scale(1.3);
  }
  .p-industry__specialized-services .p-service-card__child:hover .p-service-card__child-title {
    color: var(--color-primary);
  }
  .p-industry__specialized-services .p-service-card__child-desc {
    font-size: var(--font-size-body);
    color: var(--color-text-light);
    line-height: 1.7;
  }
  @media screen and (max-width: 767px) {
    .p-industry__specialized-services .p-service-card__children {
      grid-template-columns: 1fr;
    }
  }

  /* ========================================
     クリエイティブ制作 - CASEカード
     page-creative.php 固有
     ======================================== */
  .p-creative-support__case-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-24);
    margin-top: var(--space-40);
  }
  .p-creative-support__case-card {
    background: var(--color-white);
    border-radius: var(--card-radius);
    padding: var(--space-32) var(--space-24);
    box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  }
  .p-creative-support__case-label {
    display: inline-block;
    font-size: var(--font-size-xsmall);
    font-weight: 700;
    color: var(--color-primary);
    letter-spacing: 0.1em;
    margin-bottom: var(--space-16);
  }
  .p-creative-support__case-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.5;
    margin: 0 0 12px 0;
  }
  .p-creative-support__case-desc {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: 1.7;
    margin: 0;
  }
  @media screen and (max-width: 1023px) {
    .p-creative-support__case-grid {
      grid-template-columns: 1fr;
      gap: var(--space-16);
    }
    .p-creative-support__case-card {
      padding: var(--space-24) 20px;
    }
  }

  /* ========================================
     ブログ一覧ページ（/allisblog/）
     ======================================== */

  /* --- ヘッダー分の余白確保 --- */
  body.c-blog-archive {
    padding-top: var(--header-height, 80px);
  }

  /* --- ファーストビュー --- */
  .c-blog-mv {
    min-height: 360px;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    background: var(--color-white);
  }
  .c-blog-mv__inner {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: var(--space-16) var(--container-padding);
  }
  .c-blog-mv__logo {
    max-width: 360px;
    width: 100%;
    margin: 0 auto var(--space-24);
    display: block;
  }
  .c-blog-mv__desc {
    font-size: var(--font-size-body);
    line-height: var(--line-height-body);
    color: var(--color-text);
    font-weight: 500;
    margin: 0;
  }
  .c-blog-mv__highlight {
    font-weight: 700;
    color: var(--color-primary);
  }

  /* --- コンテンツエリア（グレー背景） --- */
  .c-blog-content {
    background: var(--color-bg-gray);
    padding: var(--space-64) 0 var(--space-96);
  }

  /* --- 編集部のおすすめ記事 --- */
  .c-blog-picks {
    max-width: var(--container-width);
    margin: 0 auto var(--space-64);
    padding: 0 var(--container-padding);
  }
  .c-blog-picks__title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: var(--space-24);
  }
  /* 上段2件 */
  .c-blog-picks__top {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--space-24);
    margin-bottom: var(--space-24);
  }
  .c-blog-picks__top-item {
    background: var(--color-white);
    text-decoration: none;
    color: inherit;
    display: block;
    border-radius: var(--card-radius);
    overflow: hidden;
  }
  .c-blog-picks__top-media {
    overflow: hidden;
    aspect-ratio: 16 / 9;
  }
  .c-blog-picks__top-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .c-blog-picks__top-content {
    padding: var(--space-24);
  }
  .c-blog-picks__top-card-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.6;
    margin-bottom: var(--space-16);
    position: relative;
    display: inline-block;
  }
  .c-blog-picks__top-card-title::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: var(--color-text);
    transform: scaleX(0);
    transform-origin: right top;
    transition: transform .25s cubic-bezier(.25,.635,.53,.905);
  }
  .c-blog-picks__top-item:hover .c-blog-picks__top-card-title::after {
    transform: scaleX(1);
    transform-origin: left top;
  }
  .c-blog-picks__top-author {
    display: flex;
    align-items: center;
    gap: var(--space-16);
  }
  .c-blog-picks__top-author-photo {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    overflow: hidden;
    background: #ddd;
  }
  .c-blog-picks__top-author-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .c-blog-picks__top-author-info {
    display: flex;
    flex-direction: column;
  }
  .c-blog-picks__top-author-info .author-division {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-light);
    margin-bottom: 2px;
  }
  .c-blog-picks__top-author-info .author-name {
    font-size: var(--font-size-small);
    color: var(--color-text);
    font-weight: 500;
  }
  .c-blog-picks__top-excerpt {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: 1.8;
    margin-top: var(--space-16);
    padding-top: var(--space-16);
    border-top: 1px solid #eee;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  /* 下段3件 */
  .c-blog-picks__bottom {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-24);
  }
  .c-blog-picks__bottom-item {
    background: var(--color-white);
    text-decoration: none;
    color: inherit;
    display: block;
    border-radius: var(--card-radius);
    overflow: hidden;
  }
  .c-blog-picks__bottom-media {
    overflow: hidden;
    aspect-ratio: 16 / 9;
  }
  .c-blog-picks__bottom-media img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .c-blog-picks__bottom-content {
    padding: var(--space-16);
  }
  .c-blog-picks__bottom-card-title {
    font-size: var(--font-size-small);
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.6;
    margin-bottom: var(--space-16);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
    position: relative;
  }
  .c-blog-picks__bottom-card-title::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 1px;
    background-color: var(--color-text);
    transform: scaleX(0);
    transform-origin: right top;
    transition: transform .25s cubic-bezier(.25,.635,.53,.905);
  }
  .c-blog-picks__bottom-item:hover .c-blog-picks__bottom-card-title::after {
    transform: scaleX(1);
    transform-origin: left top;
  }
  .c-blog-picks__bottom-author {
    display: flex;
    align-items: center;
    gap: var(--space-8);
  }
  .c-blog-picks__bottom-author-photo {
    width: 32px;
    height: 32px;
    border-radius: 50%;
    overflow: hidden;
    background: #ddd;
  }
  .c-blog-picks__bottom-author-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .c-blog-picks__bottom-author-info {
    display: flex;
    flex-direction: column;
  }
  .c-blog-picks__bottom-author-info .author-division {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-light);
    margin-bottom: 2px;
  }
  .c-blog-picks__bottom-author-info .author-name {
    font-size: var(--font-size-small);
    color: var(--color-text);
    font-weight: 500;
  }

  /* --- 記事一覧（タブ切り替え）--- */
  .c-blog-tabs {
    background: var(--color-white);
    padding: var(--space-64) 0;
    margin-bottom: var(--space-64);
  }
  .c-blog-tabs__inner {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
  }
  /* ピル型タブ */
  .c-blog-tabs__nav {
    display: flex;
    gap: var(--space-8);
    margin-bottom: var(--space-32);
    background: #f0f0f0;
    padding: 6px;
    border-radius: var(--card-radius);
    width: fit-content;
  }
  .c-blog-tabs__btn {
    padding: var(--space-16) var(--space-32);
    font-size: 15px;
    font-weight: 500;
    color: var(--color-text-light);
    cursor: pointer;
    border-radius: var(--card-radius);
    transition: all var(--transition-normal);
    border: none;
    background: transparent;
  }
  .c-blog-tabs__btn:hover {
    color: var(--color-text);
    background: rgba(255,255,255,0.5);
  }
  .c-blog-tabs__btn.active {
    color: var(--color-white);
    background: var(--color-primary);
  }
  /* フィルターヘッダー */
  .c-blog-filter-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: var(--space-16);
    margin-bottom: var(--space-24);
    padding-bottom: var(--space-16);
    border-bottom: 1px solid var(--color-border);
  }
  .c-blog-filter-title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    margin: 0;
  }
  .c-blog-filter-tags {
    display: none;
    flex-wrap: wrap;
    gap: var(--space-8);
  }
  .c-blog-filter-tags.active {
    display: flex;
  }
  .c-blog-filter-tag {
    padding: 6px var(--space-16);
    font-size: var(--font-size-small);
    color: var(--color-primary);
    text-decoration: none;
    background: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: var(--card-radius);
    transition: all var(--transition-fast);
    font-weight: 500;
    cursor: pointer;
    white-space: nowrap;
  }
  .c-blog-filter-tag:hover {
    background: var(--color-primary);
    color: var(--color-white);
  }
  .c-blog-filter-tag.active {
    background: var(--color-primary);
    color: var(--color-white);
  }
  .c-blog-filter-tag::before {
    content: "#";
    margin-right: 2px;
  }
  .c-blog-filter-tag--all::before {
    content: none;
  }
  /* タブコンテンツ */
  .c-blog-tab-content {
    display: none;
  }
  .c-blog-tab-content.active {
    display: block;
  }
  /* 記事リスト */
  .c-blog-list {
    display: flex;
    flex-direction: column;
    position: relative;
    min-height: 200px;
  }
  .c-blog-list.is-loading::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 40px;
    height: 40px;
    border: 3px solid #e5e5e5;
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: c-blog-spin 0.8s linear infinite;
  }
  @keyframes c-blog-spin {
    to { transform: translate(-50%, -50%) rotate(360deg); }
  }
  .c-blog-list__item {
    display: flex;
    align-items: center;
    gap: var(--space-32);
    padding: var(--space-24);
    margin-bottom: var(--space-16);
    background: var(--color-white);
    border-radius: var(--card-radius);
    text-decoration: none;
    color: inherit;
  }
  .c-blog-list__item:hover .c-blog-list__title .title-text {
    background-size: 100% 1px;
    background-position: left bottom;
  }
  .c-blog-list__thumb {
    width: min(320px, 35%);
    aspect-ratio: 16 / 9;
    border-radius: var(--card-radius);
    overflow: hidden;
    flex-shrink: 0;
    order: -1;
  }
  .c-blog-list__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .c-blog-list__main {
    flex: 1;
  }
  .c-blog-list__date {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    margin-bottom: var(--space-8);
  }
  .c-blog-list__title {
    font-size: 20px;
    font-weight: 600;
    color: var(--color-text);
    margin-bottom: var(--space-16);
    line-height: 1.6;
  }
  .c-blog-list__title .title-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-size: 0% 1px;
    background-repeat: no-repeat;
    background-position: right bottom;
    transition: background-size var(--transition-normal);
  }
  .c-blog-list__excerpt {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: var(--line-height-body);
    margin-bottom: var(--space-16);
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .c-blog-list__author {
    display: flex;
    align-items: center;
    gap: var(--space-8);
  }
  .c-blog-list__author-photo {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    overflow: hidden;
    background: #ddd;
  }
  .c-blog-list__author-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .c-blog-list__author-info {
    display: flex;
    flex-direction: column;
  }
  .c-blog-list__author-division {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    margin-bottom: 2px;
  }
  .c-blog-list__author-name {
    font-size: var(--font-size-body);
    color: var(--color-text);
    font-weight: 500;
  }
  .c-blog-list__arrow {
    color: var(--color-primary);
    font-size: 24px;
    transition: transform var(--transition-normal);
    flex-shrink: 0;
  }
  .c-blog-list__item:hover .c-blog-list__arrow {
    transform: translateX(4px);
  }
  /* ページネーション */
  .c-blog-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-8);
    margin-top: var(--space-40);
  }
  .c-blog-pagination a,
  .c-blog-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 44px;
    height: 44px;
    padding: 0 var(--space-16);
    font-size: 15px;
    font-weight: 500;
    text-decoration: none;
    border-radius: var(--card-radius);
    transition: all var(--transition-normal);
  }
  .c-blog-pagination a {
    color: var(--color-text);
    background: var(--color-white);
    border: 1px solid var(--color-border);
  }
  .c-blog-pagination a:hover {
    color: var(--color-primary);
    border-color: var(--color-primary);
    background: var(--color-primary-light);
  }
  .c-blog-pagination span.current {
    color: var(--color-white);
    background: var(--color-primary);
    border: 1px solid var(--color-primary);
  }
  .c-blog-pagination .dots {
    min-width: auto;
    height: auto;
    padding: 0 var(--space-4);
    border: none;
    background: transparent;
    color: var(--color-text-light);
    letter-spacing: 2px;
  }

  /* --- タグ一覧 --- */
  .c-blog-tags {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
  }
  .c-blog-tags__title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: var(--space-24);
  }
  .c-blog-tags__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    border: 1px solid var(--color-border);
    background: var(--color-white);
    border-radius: var(--card-radius);
    overflow: hidden;
  }
  .c-blog-tags__link {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-16) var(--space-24);
    color: var(--color-text);
    text-decoration: none;
    font-size: var(--font-size-small);
    font-weight: 600;
    background: var(--color-white);
    border-bottom: 1px solid var(--color-border);
    border-right: 1px solid var(--color-border);
    transition: background var(--transition-fast), color var(--transition-fast);
  }
  .c-blog-tags__link:nth-child(3n) {
    border-right: none;
  }
  .c-blog-tags__link:nth-last-child(-n+3) {
    border-bottom: none;
  }
  .c-blog-tags__name::before {
    content: "#";
    color: var(--color-primary);
    margin-right: 6px;
    font-weight: 700;
  }
  .c-blog-tags__arrow {
    color: var(--color-primary);
    font-size: var(--font-size-small);
    transition: transform var(--transition-normal);
  }
  .c-blog-tags__link:hover {
    background: #f8f9fa;
    color: var(--color-primary);
  }
  .c-blog-tags__link:hover .c-blog-tags__arrow {
    transform: translateX(4px);
  }

  /* --- ブログページ タブレット --- */
  @media screen and (min-width: 768px) and (max-width: 1024px) {
    .c-blog-picks__top {
      grid-template-columns: 1fr;
    }
    .c-blog-picks__bottom {
      grid-template-columns: 1fr;
    }
    .c-blog-tabs__nav {
      width: 100%;
    }
    .c-blog-tabs__btn {
      flex: 1;
      white-space: normal;
      text-align: center;
      padding: var(--space-8) var(--space-8);
      font-size: var(--font-size-small);
      line-height: var(--line-height-tight);
    }
    .c-blog-filter-header {
      flex-direction: column;
      align-items: flex-start;
    }
    .c-blog-list__item {
      flex-direction: column;
      align-items: flex-start;
      gap: var(--space-16);
    }
    .c-blog-list__thumb {
      width: 100%;
      order: -1;
    }
    .c-blog-list__arrow {
      display: none;
    }
    .c-blog-tags__grid {
      grid-template-columns: repeat(2, 1fr);
    }
    .c-blog-tags__link:nth-child(3n) {
      border-right: 1px solid var(--color-border);
    }
    .c-blog-tags__link:nth-child(2n) {
      border-right: none;
    }
    .c-blog-tags__link:nth-last-child(-n+3) {
      border-bottom: 1px solid var(--color-border);
    }
    .c-blog-tags__link:nth-last-child(-n+2) {
      border-bottom: none;
    }
  }

  /* --- ブログページ モバイル --- */
  @media screen and (max-width: 767px) {
    .c-blog-picks__top {
      grid-template-columns: 1fr;
    }
    .c-blog-picks__bottom {
      grid-template-columns: 1fr;
    }
    .c-blog-tabs__nav {
      width: 100%;
    }
    .c-blog-tabs__btn {
      flex: 1;
      white-space: normal;
      text-align: center;
      padding: var(--space-8) var(--space-8);
      font-size: var(--font-size-small);
      line-height: var(--line-height-tight);
    }
    .c-blog-filter-header {
      flex-direction: column;
      align-items: flex-start;
    }
    .c-blog-list__item {
      flex-direction: column;
      align-items: flex-start;
      gap: var(--space-16);
    }
    .c-blog-list__thumb {
      width: 100%;
      order: -1;
    }
    .c-blog-list__arrow {
      display: none;
    }
    .c-blog-list__title {
      font-size: 18px;
    }
    .c-blog-tags__grid {
      grid-template-columns: 1fr;
    }
    .c-blog-tags__link {
      border-right: none;
    }
    .c-blog-tags__link:nth-last-child(-n+2) {
      border-bottom: 1px solid var(--color-border);
    }
    .c-blog-tags__link:last-child {
      border-bottom: none;
    }
    /* モバイルではホバーアニメーション無効化 */
    .c-blog-picks__top-card-title::after,
    .c-blog-picks__bottom-card-title::after {
      transition: none;
    }
    .c-blog-list__title .title-text {
      transition: none;
    }
  }

  /* ========================================
     採用ページ（/recruit/）
     全セレクタを .is-legacy-recruit で開始
     ======================================== */

  /* リセット・基盤 */
  .is-legacy-recruit {
    font-family: var(--font-family);
    line-height: var(--line-height-body);
    color: var(--color-text);
    background: var(--color-white);
  }
  .is-legacy-recruit *, .is-legacy-recruit *::before, .is-legacy-recruit *::after {
    box-sizing: border-box;
  }
  .is-legacy-recruit img {
    max-width: 100%;
    height: auto;
    vertical-align: bottom;
  }
  .is-legacy-recruit a {
    color: inherit;
    text-decoration: none;
  }

  /* コンテナ */
  .is-legacy-recruit .r-container {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
  }

  /* ========================================
     ヒーローセクション
     ======================================== */
  .is-legacy-recruit .r-hero {
    position: relative;
    height: 864px;
    overflow: hidden;
    background: var(--color-bg-gray);
  }
  .is-legacy-recruit .r-hero__bg {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-size: cover;
    background-position: 40% center;
    background-repeat: no-repeat;
    z-index: 0;
  }
  .is-legacy-recruit .r-hero__content {
    position: absolute;
    top: 140px;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: var(--container-width);
    padding: 0 var(--container-padding);
    z-index: 2;
  }
  .is-legacy-recruit .r-hero__title {
    margin: 0;
  }
  .is-legacy-recruit .r-hero__title img {
    width: 380px;
    height: auto;
  }
  .is-legacy-recruit .r-hero__bottom {
    position: absolute;
    bottom: 60px;
    left: 50%;
    transform: translateX(-50%);
    width: 100%;
    max-width: var(--container-width);
    padding: 0 var(--container-padding);
    z-index: 2;
  }
  .is-legacy-recruit .r-hero__desc {
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: var(--line-height-body);
    color: var(--color-text);
    max-width: 1000px;
  }
  .is-legacy-recruit .r-hero__bg-text {
    position: absolute;
    bottom: -20px;
    left: 0;
    right: 0;
    text-align: center;
    font-size: clamp(100px, 15vw, 200px);
    font-weight: 700;
    color: rgba(255, 255, 255, 0.8);
    letter-spacing: 0.05em;
    pointer-events: none;
    z-index: 1;
    line-height: 0.8;
  }

  /* ========================================
     セクション共通
     ======================================== */
  .is-legacy-recruit .r-section {
    padding: var(--space-80) 0;
  }
  .is-legacy-recruit .r-section--white {
    background: var(--color-white);
  }
  .is-legacy-recruit .r-section--white + .r-section--white {
    padding-top: 0;
  }
  .is-legacy-recruit .r-section--gray {
    background: #f5f5f5;
  }
  .is-legacy-recruit .r-section--gradient {
    background: var(--gradient-hero);
  }
  .is-legacy-recruit .r-section--dark {
    background: #1a237e;
    color: var(--color-white);
  }
  .is-legacy-recruit .r-section__title {
    font-size: var(--font-size-section-title);
    font-weight: 700;
    margin-bottom: var(--space-24);
    color: var(--color-text);
  }
  .is-legacy-recruit .r-section--dark .r-section__title {
    color: var(--color-white);
  }

  /* ========================================
     共通ボタン（.c-btn統合）
     ======================================== */
  .is-legacy-recruit .c-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: min(280px, 100%);
    height: var(--btn-height);
    border-radius: var(--card-radius);
    font-size: var(--font-size-small);
    font-weight: 500;
    text-decoration: none;
    transition: all var(--transition-normal);
    cursor: pointer;
  }
  .is-legacy-recruit .c-btn--outline {
    background: var(--color-white);
    color: var(--color-text);
    border: 1px solid var(--color-text-muted);
  }
  .is-legacy-recruit .c-btn--outline:hover {
    background: #f5f5f5;
    border-color: var(--color-text-light);
  }

  /* ========================================
     会社概要セクション（特別レイアウト）
     ======================================== */
  .is-legacy-recruit .r-section--company {
    background: var(--color-bg-gray);
    padding: 0;
    margin-top: var(--space-24);
  }
  .is-legacy-recruit .r-company-layout {
    display: grid;
    grid-template-columns: 1fr 55%;
    align-items: center;
    min-height: 400px;
  }
  .is-legacy-recruit .r-company-layout__content {
    padding: var(--space-64) var(--space-40) var(--space-64) max(var(--space-40), calc((100vw - var(--container-width)) / 2 + var(--container-padding)));
  }
  .is-legacy-recruit .r-company-layout__image {
    height: 100%;
    min-height: 400px;
  }
  .is-legacy-recruit .r-company-layout__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  /* ========================================
     EVP Bookセクション
     ======================================== */
  .is-legacy-recruit .r-section--evp {
    background: var(--color-bg-gray);
    padding: var(--space-80) 0;
    margin-top: var(--space-24);
  }
  .is-legacy-recruit .r-evp-inner {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-64);
    align-items: center;
  }
  .is-legacy-recruit .r-evp-inner__content {
    padding: var(--space-24) 0;
  }
  .is-legacy-recruit .r-evp-inner__image img {
    width: 100%;
    border-radius: var(--card-radius);
  }

  /* ========================================
     採用ピッチ資料セクション
     ======================================== */
  .is-legacy-recruit .r-section--pitch {
    background: var(--color-bg-gray);
    padding: var(--space-80) 0;
    margin-top: var(--space-24);
  }

  /* ========================================
     環境・制度セクション
     ======================================== */
  .is-legacy-recruit .r-section--env {
    background: var(--color-bg-gray);
    padding: 0;
    margin-top: var(--space-24);
  }

  /* ========================================
     2カラムレイアウト（会社概要等）
     ======================================== */
  .is-legacy-recruit .r-two-col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-64);
    align-items: center;
  }
  .is-legacy-recruit .r-two-col--reverse {
    direction: rtl;
  }
  .is-legacy-recruit .r-two-col--reverse > * {
    direction: ltr;
  }
  .is-legacy-recruit .r-two-col__content {
    padding: var(--space-24) 0;
  }
  .is-legacy-recruit .r-two-col__text {
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: var(--line-height-body);
    color: var(--color-text);
    margin-bottom: var(--space-32);
  }
  .is-legacy-recruit .r-two-col__text a {
    color: var(--color-primary);
    text-decoration: underline;
  }
  .is-legacy-recruit .r-two-col__image img {
    width: 100%;
    border-radius: var(--card-radius);
  }
  .is-legacy-recruit .r-two-col__embed {
    position: relative;
    padding-bottom: 56.25%;
    height: 0;
    overflow: hidden;
    border-radius: var(--space-8);
    box-shadow: 0 10px 40px rgba(0,0,0,0.15);
  }
  .is-legacy-recruit .r-two-col__embed iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
  }

  /* ボタン（矢印付き） */
  .is-legacy-recruit .r-btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-16);
    padding: var(--space-16) var(--space-32);
    border: 1px solid var(--color-text);
    background: transparent;
    font-size: var(--font-size-small);
    font-weight: 500;
    letter-spacing: 0.1em;
    transition: all var(--transition-normal);
  }
  .is-legacy-recruit .r-btn:hover {
    background: var(--color-text);
    color: var(--color-white);
  }
  .is-legacy-recruit .r-btn__arrow {
    width: 20px;
    height: 1px;
    background: currentColor;
    position: relative;
  }
  .is-legacy-recruit .r-btn__arrow::after {
    content: '';
    position: absolute;
    right: 0;
    top: -3px;
    width: var(--space-8);
    height: var(--space-8);
    border-top: 1px solid currentColor;
    border-right: 1px solid currentColor;
    transform: rotate(45deg);
  }
  .is-legacy-recruit .r-btn--white {
    border-color: var(--color-white);
    color: var(--color-white);
  }
  .is-legacy-recruit .r-btn--white:hover {
    background: var(--color-white);
    color: #1a237e;
  }

  /* ========================================
     メンバーインタビュー
     ======================================== */
  .is-legacy-recruit .r-interview-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-32);
  }
  .is-legacy-recruit .r-interview-card {
    background: var(--color-white);
    overflow: hidden;
    text-decoration: none;
  }
  .is-legacy-recruit .r-interview-card__image {
    aspect-ratio: 4/3;
    overflow: hidden;
  }
  .is-legacy-recruit .r-interview-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .is-legacy-recruit .r-interview-card__body {
    padding: var(--space-24);
  }
  .is-legacy-recruit .r-interview-card__tag {
    display: inline-block;
    font-size: var(--font-size-xsmall);
    color: var(--color-primary);
    border: 1px solid var(--color-primary);
    padding: var(--space-4) 10px;
    margin-bottom: var(--space-16);
  }
  .is-legacy-recruit .r-interview-card__name {
    font-size: var(--font-size-body);
    font-weight: 700;
    margin-bottom: 10px;
  }
  .is-legacy-recruit .r-interview-card__name-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size var(--transition-normal);
  }
  .is-legacy-recruit .r-interview-card:hover .r-interview-card__name-text {
    background-size: 100% 1px;
  }
  .is-legacy-recruit .r-interview-card__title {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: 1.6;
  }

  /* ========================================
     インタビュー動画
     ======================================== */
  .is-legacy-recruit .r-video-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-32);
  }
  .is-legacy-recruit .r-video-card {
    cursor: pointer;
  }
  .is-legacy-recruit .r-video-card__thumb {
    position: relative;
    aspect-ratio: 16/9;
    overflow: hidden;
    border-radius: var(--card-radius);
    margin-bottom: var(--space-16);
  }
  .is-legacy-recruit .r-video-card__thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .is-legacy-recruit .r-video-card__play {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 60px;
    height: 60px;
    background: rgba(25, 118, 210, 0.9);
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .is-legacy-recruit .r-video-card__play::after {
    content: '';
    width: 0;
    height: 0;
    border-style: solid;
    border-width: 10px 0 10px 16px;
    border-color: transparent transparent transparent var(--color-white);
    margin-left: 4px;
  }
  .is-legacy-recruit .r-video-card__tag {
    font-size: var(--font-size-xsmall);
    color: var(--color-primary);
    margin-bottom: var(--space-8);
  }
  .is-legacy-recruit .r-video-card__name {
    font-size: 15px;
    font-weight: 700;
  }
  .is-legacy-recruit .r-video-card__name-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size var(--transition-normal);
  }
  .is-legacy-recruit .r-video-card:hover .r-video-card__name-text {
    background-size: 100% 1px;
  }

  /* ========================================
     募集要項セクション
     ======================================== */
  .is-legacy-recruit .r-recruit-box {
    background: var(--color-white);
    border-radius: var(--card-radius);
    padding: var(--space-64) var(--space-80);
    box-shadow: 0 10px 40px rgba(0,0,0,0.1);
  }
  .is-legacy-recruit .r-recruit-item {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--space-32) 0;
    border-bottom: 1px solid var(--color-border);
  }
  .is-legacy-recruit .r-recruit-item:last-child {
    border-bottom: none;
  }
  .is-legacy-recruit .r-recruit-item__content {
    flex: 1;
  }
  .is-legacy-recruit .r-recruit-item__title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    margin-bottom: var(--space-16);
    color: var(--color-text);
  }
  .is-legacy-recruit .r-recruit-item__text {
    font-size: var(--font-size-small);
    color: var(--color-text-light);
    line-height: var(--line-height-body);
  }
  .is-legacy-recruit .r-recruit-item__btn {
    margin-left: var(--space-40);
    flex-shrink: 0;
    width: 280px;
  }

  /* ========================================
     社内活動・カルチャー
     ======================================== */
  .is-legacy-recruit .r-section--culture {
    background: var(--color-white);
    position: relative;
    overflow: hidden;
  }
  .is-legacy-recruit .r-section--culture .r-section__title {
    color: var(--color-text);
  }
  .is-legacy-recruit .r-culture {
    text-align: center;
    position: relative;
    z-index: 2;
  }
  .is-legacy-recruit .r-culture__subtitle {
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: var(--line-height-body);
    color: var(--color-text);
    margin-bottom: var(--space-48);
  }
  .is-legacy-recruit .r-culture__hands {
    position: absolute;
    right: 0;
    top: -120px;
    width: 400px;
    height: auto;
    pointer-events: none;
    z-index: 1;
  }
  .is-legacy-recruit .r-blog-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-32);
    margin-bottom: var(--space-48);
  }
  .is-legacy-recruit .r-blog-card {
    background: var(--color-white);
    border-radius: var(--card-radius);
    overflow: hidden;
    text-decoration: none;
  }
  .is-legacy-recruit .r-blog-card__image {
    aspect-ratio: 16/9;
    overflow: hidden;
  }
  .is-legacy-recruit .r-blog-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .is-legacy-recruit .r-blog-card__body {
    padding: var(--space-24);
    text-align: left;
  }
  .is-legacy-recruit .r-blog-card__meta {
    display: flex;
    gap: var(--space-16);
    font-size: var(--font-size-xsmall);
    color: var(--color-text-light);
    margin-bottom: 10px;
  }
  .is-legacy-recruit .r-blog-card__title {
    font-size: var(--font-size-small);
    line-height: 1.6;
    color: var(--color-text);
  }
  .is-legacy-recruit .r-blog-card__title-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size var(--transition-normal);
  }
  .is-legacy-recruit .r-blog-card:hover .r-blog-card__title-text {
    background-size: 100% 1px;
  }

  /* ========================================
     モーダル
     ======================================== */
  .is-legacy-recruit .r-modal {
    display: none;
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0,0,0,0.9);
    z-index: 9999;
    align-items: center;
    justify-content: center;
  }
  .is-legacy-recruit .r-modal.is-active,
  .is-legacy-recruit .r-modal.open {
    display: flex;
  }
  .is-legacy-recruit .r-modal__inner {
    width: 90%;
    max-width: 900px;
    aspect-ratio: 16/9;
  }
  .is-legacy-recruit .r-modal__close {
    position: absolute;
    top: var(--space-24);
    right: var(--space-24);
    width: 40px;
    height: 40px;
    background: transparent;
    border: none;
    cursor: pointer;
  }
  .is-legacy-recruit .r-modal__close::before,
  .is-legacy-recruit .r-modal__close::after {
    content: '';
    position: absolute;
    top: 50%;
    left: 50%;
    width: 30px;
    height: 2px;
    background: var(--color-white);
  }
  .is-legacy-recruit .r-modal__close::before {
    transform: translate(-50%, -50%) rotate(45deg);
  }
  .is-legacy-recruit .r-modal__close::after {
    transform: translate(-50%, -50%) rotate(-45deg);
  }

  /* 採用ページ 手の画像 小型デスクトップ対応 */
  @media screen and (max-width: 1300px) {
    .is-legacy-recruit .r-culture__hands {
      width: 300px;
    }
  }

  /* ========================================
     採用ページ レスポンシブ（タブレット）
     ======================================== */
  @media screen and (min-width: 768px) and (max-width: 1024px) {
    .is-legacy-recruit .r-interview-grid {
      grid-template-columns: repeat(2, 1fr);
    }
    .is-legacy-recruit .r-recruit-box {
      padding: var(--space-40) var(--space-40);
    }
  }

  /* ========================================
     採用ページ レスポンシブ（モバイル）
     ======================================== */
  @media screen and (max-width: 767px) {
    .is-legacy-recruit .r-hero {
      display: flex;
      flex-direction: column;
      height: auto;
      min-height: auto;
      padding-bottom: 0;
      background: var(--color-bg-gray);
      overflow: visible;
    }
    .is-legacy-recruit .r-hero__bg {
      position: relative;
      order: 2;
      height: auto;
      aspect-ratio: 3 / 2;
      background-position: center center;
      background-size: cover;
      margin-top: -40px;
      z-index: 1;
    }
    .is-legacy-recruit .r-hero__content {
      position: relative;
      order: 1;
      top: auto;
      left: auto;
      transform: none;
      padding: var(--container-padding) var(--container-padding) 0;
      max-width: none;
      z-index: 2;
    }
    .is-legacy-recruit .r-hero__title img {
      max-width: 280px;
    }
    .is-legacy-recruit .r-hero__bottom {
      position: relative;
      order: 3;
      bottom: auto;
      left: auto;
      transform: none;
      padding: 0 var(--container-padding);
      max-width: none;
    }
    .is-legacy-recruit .r-hero__desc {
      font-size: var(--font-size-small);
      line-height: 2;
    }
    .is-legacy-recruit .r-hero__bg-text {
      position: relative;
      order: 4;
      bottom: auto;
      font-size: 60px;
      color: rgba(0, 0, 0, 0.08);
      text-align: left;
      padding-left: var(--container-padding);
      margin-top: var(--space-32);
      padding-bottom: var(--space-32);
      line-height: 1;
    }
    .is-legacy-recruit .r-section {
      padding: var(--space-64) 0;
    }
    .is-legacy-recruit .r-two-col {
      grid-template-columns: 1fr;
      gap: var(--space-32);
    }
    .is-legacy-recruit .r-two-col--reverse {
      direction: ltr;
    }
    .is-legacy-recruit .r-two-col__image {
      order: -1;
    }
    .is-legacy-recruit .r-interview-grid,
    .is-legacy-recruit .r-video-grid {
      grid-template-columns: repeat(2, 1fr);
      gap: var(--space-16);
    }
    .is-legacy-recruit .r-blog-grid {
      grid-template-columns: 1fr;
    }
    .is-legacy-recruit .r-recruit-item {
      flex-direction: column;
      gap: var(--space-24);
    }
    .is-legacy-recruit .r-recruit-item__btn {
      margin-left: 0;
      width: 100%;
      text-align: center;
    }
    .is-legacy-recruit .r-recruit-box {
      padding: var(--space-32) var(--container-padding);
    }
    .is-legacy-recruit .r-section--company {
      margin-top: var(--space-16);
    }
    .is-legacy-recruit .r-company-layout {
      grid-template-columns: 1fr;
    }
    .is-legacy-recruit .r-company-layout__content {
      padding: 0 var(--container-padding) var(--container-padding);
      text-align: center;
    }
    .is-legacy-recruit .r-company-layout__image {
      min-height: 250px;
    }
    .is-legacy-recruit .r-evp-inner {
      grid-template-columns: 1fr;
      gap: var(--space-32);
    }
    .is-legacy-recruit .r-evp-inner__content {
      text-align: center;
    }
    .is-legacy-recruit .r-evp-inner__image {
      order: -1;
    }
    .is-legacy-recruit .r-culture__hands {
      display: none;
    }
    /* ホバーアニメーション無効化 */
    .is-legacy-recruit .r-interview-card__name-text,
    .is-legacy-recruit .r-video-card__name-text,
    .is-legacy-recruit .r-blog-card__title-text {
      transition: none;
    }
  }

  /* ========================================
     BtoB / EC ページ共通スタイル
     ======================================== */

  /* --- リセット（共通・body設定で不足する分のみ） --- */
  .is-legacy-btob a,
  .is-legacy-ec a {
    color: inherit;
    text-decoration: none;
  }

  /* --- コンテナ（共通） --- */
  .is-legacy-btob .btob-container,
  .is-legacy-ec .ec-container {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
  }

  /* --- ヒーロー記事スライダー（共通） --- */
  .btob-hero-slider-wrap.c-page-fv__right,
  .ec-hero-slider-wrap.c-page-fv__right {
    width: min(464px, 40vw);
    max-width: 464px;
    flex-shrink: 1;
  }
  .btob-hero-slider,
  .ec-hero-slider {
    position: relative;
    width: 100%;
    height: 370px;
    border-radius: var(--card-radius);
    overflow: hidden;
    box-shadow: var(--card-shadow);
    background: var(--color-white);
  }
  .btob-hero-slider__item,
  .ec-hero-slider__item {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    transform: translateX(100%);
    transition: transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
    pointer-events: none;
    cursor: pointer;
    z-index: 1;
  }
  .btob-hero-slider__item.active,
  .ec-hero-slider__item.active {
    transform: translateX(0);
    pointer-events: auto;
    z-index: 3;
  }
  .btob-hero-slider__item.is-previous,
  .ec-hero-slider__item.is-previous {
    transform: translateX(0);
    z-index: 2;
    transition: none;
    pointer-events: none;
  }
  .btob-hero-slider__image,
  .ec-hero-slider__image {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 214px;
    object-fit: cover;
  }
  .btob-hero-slider__body,
  .ec-hero-slider__body {
    position: absolute;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 156px;
    background: var(--color-white);
    padding: var(--space-16) var(--container-padding);
    box-sizing: border-box;
  }
  .btob-hero-slider__title,
  .ec-hero-slider__title {
    font-size: 15px;
    font-weight: 700;
    color: var(--color-text);
    margin: 0 0 var(--space-8) 0;
    line-height: 1.5;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .btob-hero-slider__company,
  .ec-hero-slider__company {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-light);
    margin: 0;
  }
  .btob-hero-slider__link,
  .ec-hero-slider__link {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    height: 44px;
    position: absolute;
    bottom: 44px;
    left: 0;
    right: 0;
    padding: 0 var(--container-padding);
    z-index: 20;
  }
  .btob-hero-slider__link a,
  .ec-hero-slider__link a {
    font-size: var(--font-size-body);
    font-weight: 600;
    color: var(--color-text);
    text-decoration: none;
    display: inline-flex;
    align-items: center;
    gap: var(--space-4);
    padding: var(--space-4) var(--space-8);
    transition: color var(--transition-fast);
  }
  .btob-hero-slider__link a:hover,
  .ec-hero-slider__link a:hover {
    color: var(--color-primary);
  }
  .btob-hero-slider__link a::after,
  .ec-hero-slider__link a::after {
    content: '\2192';
    transition: transform var(--transition-fast);
  }
  .btob-hero-slider__link a:hover::after,
  .ec-hero-slider__link a:hover::after {
    transform: translateX(4px);
  }
  .btob-hero-slider__dots,
  .ec-hero-slider__dots {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 44px;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    z-index: 10;
    pointer-events: none;
  }
  .btob-hero-slider__dot,
  .ec-hero-slider__dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: var(--color-border);
    cursor: pointer;
    transition: background var(--transition-normal);
    pointer-events: auto;
  }
  .btob-hero-slider__dot.active,
  .ec-hero-slider__dot.active,
  .btob-hero-slider__dot:hover,
  .ec-hero-slider__dot:hover {
    background: var(--color-primary);
  }

  /* スライダー非表示（タブレット以下） */
  @media (max-width: 1024px) {
    .c-page-fv .btob-hero-slider-wrap,
    .c-page-fv .ec-hero-slider-wrap {
      display: none;
    }
  }

  /* --- セクション共通（共通） --- */
  .is-legacy-btob .btob-section,
  .is-legacy-ec .ec-section {
    padding: var(--space-80) var(--container-padding);
  }
  .is-legacy-btob .btob-section--gray,
  .is-legacy-ec .ec-section--gray {
    background: var(--color-bg-gray);
  }
  .is-legacy-btob .btob-section--white {
    background: var(--color-white);
  }
  .is-legacy-btob .btob-section__title,
  .is-legacy-ec .ec-section__title {
    display: inline-block;
    font-size: var(--font-size-section-title);
    font-weight: 700;
    color: var(--color-text);
    position: relative;
  }
  .is-legacy-btob .btob-section__title {
    margin-bottom: var(--space-16);
  }
  .is-legacy-ec .ec-section__title {
    margin-bottom: 0;
  }
  .is-legacy-btob .btob-section__title::after,
  .is-legacy-ec .ec-section__title::after {
    content: '';
    display: block;
    width: 100%;
    height: 3px;
    background: var(--color-primary);
  }
  .is-legacy-btob .btob-section__title::after {
    margin: var(--space-16) auto 0;
  }
  .is-legacy-ec .ec-section__title::after {
    margin: var(--space-16) auto var(--space-32);
  }
  .is-legacy-btob .btob-section > .btob-container,
  .is-legacy-ec .ec-section > .ec-container {
    text-align: center;
  }
  .is-legacy-btob .btob-section > .btob-container > *:not(.btob-section__title):not(.btob-section__subtitle):not(.btob-more) {
    text-align: left;
  }
  .is-legacy-ec .ec-section > .ec-container > *:not(.ec-section__title):not(.ec-section__subtitle):not(.ec-solutions-message):not(.ec-knowledge-more):not(.c-section__cta) {
    text-align: left;
  }
  .is-legacy-btob .btob-section__subtitle,
  .is-legacy-ec .ec-section__subtitle {
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: var(--line-height-body);
    color: var(--color-text);
    text-align: center;
    max-width: 100%;
  }
  .is-legacy-btob .btob-section__subtitle {
    margin: 0 auto var(--space-40);
  }
  .is-legacy-ec .ec-section__subtitle {
    margin: 0 auto var(--space-32);
  }

  /* --- EC固有: ブルーセクション --- */
  .is-legacy-ec .ec-section--blue {
    background: linear-gradient(135deg, #0067C0 0%, #00a0e9 100%);
    color: var(--color-white);
  }
  .is-legacy-ec .ec-section--blue .ec-section__title {
    color: var(--color-white);
  }
  .is-legacy-ec .ec-section--blue .ec-section__title::after {
    background: var(--color-white);
  }
  .is-legacy-ec .ec-section--blue .ec-section__subtitle {
    color: rgba(255,255,255,0.9);
  }

  /* --- ナレッジカード（共通パターン） --- */
  .is-legacy-btob .btob-knowledge,
  .is-legacy-ec .ec-knowledge {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    max-width: var(--container-width);
    margin: 0 auto;
  }
  .is-legacy-ec .ec-knowledge {
    margin-bottom: var(--space-40);
  }
  .is-legacy-btob .btob-knowledge-card,
  .is-legacy-ec .ec-knowledge-card {
    display: block;
    text-decoration: none;
  }
  .is-legacy-btob .btob-knowledge-card {
    background: var(--color-white);
    border-radius: var(--card-radius);
    box-shadow: var(--card-shadow);
    overflow: hidden;
  }
  .is-legacy-btob .btob-knowledge-card__image,
  .is-legacy-ec .ec-knowledge-card__image {
    aspect-ratio: 16/10;
    overflow: hidden;
  }
  .is-legacy-ec .ec-knowledge-card__image {
    border-radius: var(--card-radius);
    margin-bottom: var(--space-8);
  }
  .is-legacy-btob .btob-knowledge-card__image img,
  .is-legacy-ec .ec-knowledge-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .is-legacy-btob .btob-knowledge-card__body {
    background: var(--color-white);
    padding: 12px var(--space-16) var(--space-16);
  }
  .is-legacy-ec .ec-knowledge-card__body {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: var(--space-16);
  }
  .is-legacy-btob .btob-knowledge-card__meta,
  .is-legacy-ec .ec-knowledge-card__meta {
    display: flex;
    align-items: center;
  }
  .is-legacy-btob .btob-knowledge-card__meta {
    gap: 12px;
    margin-bottom: var(--space-8);
  }
  .is-legacy-ec .ec-knowledge-card__meta {
    gap: var(--space-16);
  }
  .is-legacy-btob .btob-knowledge-card__meta time,
  .is-legacy-ec .ec-knowledge-card__meta time {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-muted);
  }
  .is-legacy-btob .btob-knowledge-card__tag,
  .is-legacy-ec .ec-knowledge-card__tag {
    font-size: var(--font-size-xsmall);
    color: var(--color-primary);
    background: var(--color-primary-light);
    padding: var(--space-4) var(--space-8);
    border-radius: var(--card-radius);
  }
  .is-legacy-btob .btob-knowledge-card__title,
  .is-legacy-ec .ec-knowledge-card__title {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-text);
    margin: 0;
  }
  .is-legacy-ec .ec-knowledge-card__title {
    display: block;
    width: 100%;
    margin-top: var(--space-4);
  }
  .is-legacy-btob .btob-knowledge-card__title-text,
  .is-legacy-ec .ec-knowledge-card__title-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size var(--transition-normal);
  }
  .is-legacy-btob .btob-knowledge-card:hover .btob-knowledge-card__title-text,
  .is-legacy-ec .ec-knowledge-card:hover .ec-knowledge-card__title-text {
    background-size: 100% 1px;
  }

  /* --- もっと見るボタン（共通パターン） --- */
  .is-legacy-btob .btob-more,
  .is-legacy-ec .ec-knowledge-more {
    text-align: center;
    margin-top: var(--space-80);
  }
  .is-legacy-btob .btob-more__btn,
  .is-legacy-ec .ec-knowledge-more__btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    width: min(280px, 100%);
    height: var(--btn-height);
    background: var(--color-primary);
    color: var(--color-white);
    padding: 0 var(--space-40);
    border: none;
    border-radius: var(--card-radius);
    font-size: var(--font-size-body);
    font-weight: 500;
    transition: all var(--transition-normal);
  }
  .is-legacy-btob .btob-more__btn:hover,
  .is-legacy-ec .ec-knowledge-more__btn:hover {
    background: var(--color-primary-dark);
  }

  /* BtoB固有: グレー背景セクションの白ボタン */
  .is-legacy-btob .btob-section--gray .btob-more__btn {
    background: var(--color-white);
    color: var(--color-text);
    border: 1px solid var(--color-text-muted);
    font-size: var(--font-size-body);
  }
  .is-legacy-btob .btob-section--gray .btob-more__btn:hover {
    background: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
  }

  /* ========================================
     BtoB ページ固有スタイル
     ======================================== */

  /* --- お客様の声グリッド --- */
  .is-legacy-btob .btob-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    max-width: var(--container-width);
    margin: 0 auto;
  }
  .is-legacy-btob .btob-card {
    display: block;
    background: var(--color-white);
    border-radius: var(--card-radius);
    overflow: hidden;
    box-shadow: var(--card-shadow);
  }
  .is-legacy-btob .btob-card__image {
    aspect-ratio: 16/10;
    overflow: hidden;
  }
  .is-legacy-btob .btob-card__image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .is-legacy-btob .c-voice-card {
    background: transparent;
    border: none;
    box-shadow: none;
  }
  .is-legacy-btob .c-voice-card__image {
    border-radius: var(--card-radius);
  }
  .is-legacy-btob .btob-card__body {
    padding: var(--space-24);
  }
  .is-legacy-btob .btob-card__title {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-text);
    margin: 0 0 12px;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
  .is-legacy-btob .btob-card__title-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size var(--transition-normal);
  }
  .is-legacy-btob .btob-card:hover .btob-card__title-text {
    background-size: 100% 1px;
  }
  .is-legacy-btob .btob-card__date {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-muted);
  }

  /* --- サービス概要セクション --- */
  .is-legacy-btob .btob-service {
    max-width: 900px;
    margin: 0 auto;
  }
  .is-legacy-btob .btob-service__heading {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-primary);
    text-align: center;
    margin-bottom: var(--space-40);
    line-height: 1.5;
  }
  .is-legacy-btob .btob-service__image {
    margin-bottom: var(--space-40);
    text-align: center;
  }
  .is-legacy-btob .btob-service__image img {
    max-width: 100%;
    border-radius: var(--space-8);
  }
  .is-legacy-btob .btob-service__text {
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: var(--line-height-body);
    color: var(--color-text);
    margin-bottom: var(--space-40);
  }
  .is-legacy-btob .btob-service__challenges-title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: var(--space-24);
  }
  .is-legacy-btob .btob-service__challenges {
    background: #f8f9fa;
    border-radius: var(--space-8);
    padding: 30px 30px 30px 54px;
    list-style: none;
    margin: 0;
  }
  .is-legacy-btob .btob-service__challenges li {
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: var(--line-height-body);
    color: var(--color-text);
    margin-bottom: 12px;
    padding-left: 0;
    position: relative;
  }
  .is-legacy-btob .btob-service__challenges li::before {
    content: '';
    position: absolute;
    left: -24px;
    top: 10px;
    width: 8px;
    height: 8px;
    background: var(--color-primary);
    border-radius: 50%;
  }
  .is-legacy-btob .btob-service__challenges li:last-child {
    margin-bottom: 0;
  }

  /* --- CTAセクション --- */
  .is-legacy-btob .btob-cta {
    background: linear-gradient(135deg, #0067C0 0%, #00a0e9 100%);
    padding: var(--space-64) var(--container-padding);
    text-align: center;
    color: var(--color-white);
  }
  .is-legacy-btob .btob-cta__text {
    font-size: var(--font-size-card-title);
    margin-bottom: 30px;
  }
  .is-legacy-btob .btob-cta__btn {
    display: inline-flex;
    align-items: center;
    gap: var(--space-8);
    background: var(--color-white);
    color: var(--color-primary);
    padding: var(--space-16) var(--space-40);
    border-radius: var(--card-radius);
    font-size: var(--font-size-body);
    font-weight: 600;
    transition: all var(--transition-normal);
  }
  .is-legacy-btob .btob-cta__btn:hover {
    background: var(--color-primary-light);
    transform: translateY(-2px);
  }

  /* ========================================
     EC ページ固有スタイル
     ======================================== */

  /* --- 課題セクション --- */
  .is-legacy-ec .ec-problems {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-40);
    max-width: var(--container-width);
    margin: 0 auto;
  }
  .is-legacy-ec .ec-problem {
    display: flex;
    flex-direction: column;
  }
  .is-legacy-ec .ec-problem__image {
    margin-bottom: var(--space-24);
  }
  .is-legacy-ec .ec-problem__image img {
    width: 100%;
    aspect-ratio: 4/3;
    object-fit: cover;
    border-radius: var(--card-radius);
  }
  .is-legacy-ec .ec-problem__title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: var(--space-16);
    line-height: 1.5;
  }
  .is-legacy-ec .ec-problem__text {
    font-size: var(--font-size-small);
    line-height: 1.9;
    color: var(--color-text);
  }
  .is-legacy-ec .ec-problem__source {
    font-size: var(--font-size-xsmall);
    color: var(--color-text-light);
    margin-top: var(--space-16);
  }

  /* --- ソリューションセクション --- */
  .is-legacy-ec .ec-solutions {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-24);
    max-width: var(--container-width);
    margin: 0 auto;
  }
  .is-legacy-ec .ec-solution {
    background: var(--color-white);
    padding: var(--space-24) var(--container-padding) 28px;
    border: 1px solid var(--color-border);
    border-radius: var(--card-radius);
    text-align: left;
  }
  .is-legacy-ec .ec-solution__icon {
    width: 100%;
    aspect-ratio: 1/1;
    margin-bottom: var(--space-24);
    display: flex;
    align-items: center;
    justify-content: center;
  }
  .is-legacy-ec .ec-solution__icon img {
    width: 100%;
    height: 100%;
    object-fit: contain;
  }
  .is-legacy-ec .ec-solution__title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: var(--space-16);
    line-height: 1.5;
  }
  .is-legacy-ec .ec-solution__text {
    font-size: var(--font-size-small);
    line-height: 1.9;
    color: var(--color-text);
  }
  .is-legacy-ec .ec-solutions-message {
    text-align: center;
    margin-top: var(--space-64);
    font-size: var(--font-size-card-title);
    font-weight: 600;
    color: var(--color-primary);
    line-height: 1.6;
  }

  /* --- 特徴セクション --- */
  .is-legacy-ec .ec-features {
    display: flex;
    flex-direction: column;
    gap: var(--space-64);
    max-width: var(--container-width);
    margin: 0 auto;
  }
  .is-legacy-ec .ec-feature {
    display: grid;
    grid-template-columns: min(480px, 100%) 1fr;
    gap: 50px;
    align-items: center;
  }
  .is-legacy-ec .ec-feature:nth-child(even) {
    direction: rtl;
  }
  .is-legacy-ec .ec-feature:nth-child(even) > * {
    direction: ltr;
  }
  .is-legacy-ec .ec-feature__image {
    overflow: hidden;
    border-radius: var(--space-8);
  }
  .is-legacy-ec .ec-feature__image img {
    display: block;
    width: calc(100% + 16px);
    height: auto;
    margin: -4px -8px;
  }
  .is-legacy-ec .ec-feature__content {
    display: flex;
    flex-direction: column;
    justify-content: center;
  }
  .is-legacy-ec .ec-feature__title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: var(--space-16);
    line-height: 1.5;
  }
  .is-legacy-ec .ec-feature__text {
    font-size: 15px;
    line-height: 2;
    color: #555;
  }

  /* --- 資料埋め込みセクション --- */
  .is-legacy-ec .ec-embed {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 var(--space-40);
    text-align: center;
  }
  .is-legacy-ec .ec-embed__desc {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    text-align: center;
    margin-bottom: 30px;
  }
  .is-legacy-ec .ec-embed__frame {
    position: relative;
    padding-bottom: 59.27%;
    height: 0;
    overflow: hidden;
    border-radius: var(--space-8);
  }
  .is-legacy-ec .ec-embed__frame iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
    clip-path: inset(1px 6px);
  }

  /* ========================================
     BtoB / EC レスポンシブ
     ======================================== */

  /* タブレット (max-width: 1024px) */
  @media screen and (max-width: 1024px) {
    .is-legacy-btob .btob-grid,
    .is-legacy-btob .c-voice-grid,
    .is-legacy-ec .c-voice-grid {
      grid-template-columns: 1fr;
    }
    .is-legacy-ec .ec-problems,
    .is-legacy-ec .ec-solutions,
    .is-legacy-ec .ec-knowledge {
      grid-template-columns: 1fr;
    }
    .is-legacy-ec .ec-feature {
      grid-template-columns: 1fr;
      gap: 30px;
    }
    .is-legacy-ec .ec-feature:nth-child(even) {
      direction: ltr;
    }
    .is-legacy-ec .ec-feature__image {
      order: -1;
    }
  }

  /* モバイル (max-width: 767px) */
  @media screen and (max-width: 767px) {
    .is-legacy-btob .btob-section,
    .is-legacy-ec .ec-section {
      padding: var(--space-64) var(--container-padding);
    }
    .is-legacy-btob .btob-service__heading {
      font-size: var(--font-size-card-title);
    }
    .is-legacy-btob .btob-grid,
    .is-legacy-btob .btob-knowledge,
    .is-legacy-ec .ec-problems,
    .is-legacy-ec .ec-solutions,
    .is-legacy-ec .ec-knowledge {
      grid-template-columns: 1fr;
      gap: var(--space-24);
    }
    .is-legacy-ec .ec-solutions-message {
      font-size: var(--font-size-body);
    }
    /* ホバーアニメーション無効化 */
    .is-legacy-btob .btob-knowledge-card__title-text,
    .is-legacy-btob .btob-card__title-text,
    .is-legacy-ec .ec-knowledge-card__title-text {
      transition: none;
    }
  }

}

@media screen and (max-width: 550px) {
  .member-tab-btn {
    flex: 1 1 calc(50% - 4px);
  }
}

/* ========================================
   ブログ記事詳細ページ用スタイル
   ======================================== */

/* レイアウト */
.l-content {
  display: block;
  width: 100%;
  height: auto;
}

.l-content-margin-header {
  margin-top: 80px;
}

@media screen and (max-width: 767px) {
  .l-content-margin-header {
    margin-top: 60px;
  }
}

.l-section {
  display: block;
  width: 100%;
}

.l-section-bg-single-article {
  background: #fff;
  padding-top: 0;
  padding-bottom: 0;
}

.l-section-item {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  overflow: hidden;
}

.l-section-item-auto {
  min-height: auto;
}

.l-page {
  display: block;
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 40px 80px;
}

@media screen and (max-width: 767px) {
  .l-page {
    padding: 0 20px 60px;
  }
}

.l-page-content {
  display: block;
}

.l-page-content-single-journal {
  max-width: 800px;
  margin: 0 auto;
}

.l-page-content.allisblog-width {
  max-width: 720px;
}

/* パンくずリスト */
.breadcrumb {
  padding: 20px 40px;
  font-size: 12px;
  color: #888;
}

.breadcrumb a {
  color: #0067C0;
  text-decoration: none;
}

.breadcrumb a:hover {
  text-decoration: underline;
}

.breadcrumb-margin-post {
  margin-bottom: 20px;
}

/* 記事コンテンツ */
.post-content {
  display: block;
}

/* PICKUP ラベル非表示 */
.post-archive-item-label {
  display: none;
}

.post-content-header {
  margin-bottom: var(--space-32);
}

.post-content-header-margin {
  margin-bottom: var(--space-40);
}

.post-content-status {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: var(--space-16);
}

.post-content-status-time {
  font-size: var(--font-size-small);
  color: var(--color-text-muted);
}

/* 日付 + タグ横並び */
.post-meta-row {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  margin-bottom: var(--space-16);
  flex-wrap: nowrap;
  overflow: hidden;
}

.post-meta-tag {
  display: inline-block;
  padding: 6px 12px;
  font-size: var(--font-size-small);
  color: var(--color-primary);
  background: var(--color-white);
  border: 1px solid var(--color-primary);
  border-radius: var(--card-radius);
  font-weight: 500;
  line-height: 1;
}

.post-meta-tag::before {
  content: "#";
  margin-right: 2px;
}

.post-meta-date {
  font-size: var(--font-size-small);
  color: var(--color-text-muted);
}

.post-content-title {
  font-size: var(--font-size-section-title);
  font-weight: 700;
  color: var(--color-text);
  line-height: 1.5;
  margin: 0;
}

@media screen and (max-width: 767px) {
  .post-content-title {
    font-size: 24px;
  }
}

/* 著者プロフィール + アイキャッチ */
.post-header-with-author {
  display: block;
  margin-top: var(--space-24);
}

/* 案2: メンバーカード風プロフィール */
.post-author-profile {
  position: fixed;
  /* ヘッダーロゴと左端を揃える */
  left: max(20px, calc((100vw - 1800px) / 2));
  top: 168px;
  width: 336px;
  z-index: 100;
  transition: opacity var(--transition-normal);
  background: var(--color-white);
  border-radius: var(--card-radius);
  border: 1px solid var(--color-border);
  padding: var(--space-24);
}

.post-author-header {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-bottom: 14px;
}

.post-author-photo {
  width: 67px;
  height: 67px;
  border-radius: 50%;
  background-size: cover;
  background-position: center top;
  background-color: var(--color-border);
  flex-shrink: 0;
}

.post-author-content {
  flex: 1;
  min-width: 0;
}

.post-author-label {
  font-size: 10px;
  font-weight: 600;
  color: var(--color-primary);
  letter-spacing: 0.05em;
  margin-bottom: 2px;
}

.post-author-name {
  font-size: 17px;
  font-weight: 700;
  color: var(--color-text);
  margin-bottom: 2px;
}

.post-author-role {
  font-size: var(--font-size-xsmall);
  color: var(--color-text-muted);
}

.post-author-bio {
  font-size: var(--font-size-xsmall);
  color: var(--color-text-light);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin-bottom: 14px;
}

.post-author-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding-top: 12px;
  border-top: 1px solid var(--color-border);
}

.post-author-sns {
  display: flex;
  gap: 12px;
}

.post-author-sns a {
  color: var(--color-text-muted);
  transition: color var(--transition-fast);
  text-decoration: none;
}

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

.post-author-sns a svg {
  width: 17px;
  height: 17px;
  fill: currentColor;
}

.post-author-link {
  font-size: var(--font-size-xsmall);
  color: var(--color-primary);
  text-decoration: none;
  font-weight: 500;
}

.post-author-link:hover {
  text-decoration: underline;
}

@media screen and (max-width: 1500px) {
  .post-author-profile {
    display: none;
  }
}

/* アイキャッチ */
.post-eyecatch-wrap {
  flex: 1;
}

.post-eyecatch-wrap .post-content-media,
.post-content-media {
  width: 100%;
  height: auto;
  border-radius: var(--card-radius);
}

/* 記事本文 */
.post-content-body {
  display: block;
}

.post-content-text {
  font-size: var(--font-size-body);
  line-height: 2;
  color: var(--color-text);
}

.post-content-text-journal {
  font-size: var(--font-size-body);
  line-height: 2;
}

.post-content-text p {
  margin: 0 0 1.5em;
}

.post-content-text a {
  color: var(--color-primary);
  text-decoration: underline;
}

.post-content-text a:hover {
  text-decoration: none;
}

.post-content-text img {
  max-width: 100%;
  height: auto;
  border-radius: var(--card-radius);
}

/* 見出し */
.post-content-text h2 {
  color: var(--color-primary);
  font-size: 24px;
  font-weight: bold;
  margin: var(--space-48) 0 var(--space-24);
  padding: 0;
  border: none;
  background: none;
}

.post-content-text h2:after {
  display: none;
}

.post-content-text h3 {
  color: var(--color-text);
  font-size: 20px;
  font-weight: bold;
  margin: var(--space-40) 0 var(--space-24);
  padding-left: var(--space-16);
  border-left: 4px solid var(--color-primary);
  background: none;
}

.post-content-text h4 {
  color: var(--color-text);
  font-size: var(--font-size-body);
  font-weight: bold;
  margin: var(--space-32) 0 var(--space-16);
  padding-left: 20px;
  position: relative;
  border: none;
  background: none;
}

.post-content-text h4:before {
  content: '';
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  background: var(--color-primary);
}

.post-content-text h5 {
  font-size: var(--font-size-body);
  font-weight: bold;
  margin: var(--space-24) 0 var(--space-16);
  color: var(--color-text);
}

/* リスト */
.post-content-text ul,
.post-content-text ol {
  margin: 0 0 1.5em;
  padding-left: var(--space-24);
}

.post-content-text ul li,
.post-content-text ol li {
  margin-bottom: 0.5em;
}

.post-content-text ul li {
  list-style-type: disc;
}

.post-content-text ul li:before {
  content: none;
}

.post-content-text ol li {
  list-style-type: decimal;
}

/* 引用 */
.post-content-text blockquote {
  position: relative;
  padding: var(--space-24);
  margin: var(--space-32) 0;
  background: #f8f9fa;
  border-radius: 0;
  border: none;
  border-left: 4px solid var(--color-primary);
  font-style: normal;
  text-align: left;
}

.post-content-text blockquote:before,
.post-content-text blockquote:after {
  display: none;
  content: none;
}

.post-content-text blockquote p {
  margin: 0;
  color: var(--color-text-light);
  font-size: 15px;
  text-align: left;
}

/* 目次 */
#toc_container {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--card-radius);
  padding: 0;
  margin: var(--space-32) 0;
  width: 100%;
  min-width: 100%;
  display: block;
  box-sizing: border-box;
}

#toc_container p.toc_title {
  font-size: var(--font-size-small);
  font-weight: 700;
  color: var(--color-text);
  margin: 0;
  padding: var(--space-16) var(--space-16) var(--space-16) var(--space-24);
  background: #eee;
  text-align: left;
}

#toc_container span.toc_toggle {
  font-size: var(--font-size-xsmall);
  font-weight: 400;
  color: var(--color-primary);
}

#toc_container ul.toc_list {
  margin: 0;
  padding: 0 var(--space-16) 0 var(--space-24);
  list-style: none;
}

#toc_container .toc_list > li {
  list-style: none;
  margin: 0;
  padding: var(--space-8) 0;
  border-bottom: 1px solid var(--color-border);
}

#toc_container .toc_list > li:last-child {
  border-bottom: none;
}

#toc_container .toc_list li:before {
  display: none;
  content: none;
}

#toc_container .toc_list ul {
  margin: 0;
  padding: 2px 0 0 var(--space-16);
}

#toc_container .toc_list ul li {
  list-style: none;
  margin: 0;
  padding: 2px 0;
  border-bottom: none;
}

#toc_container .toc_list a,
#toc_container .toc_list a:link,
#toc_container .toc_list a:visited,
.post-content-text #toc_container .toc_list a,
.post-content-text #toc_container .toc_list a:link,
.post-content-text #toc_container .toc_list a:visited {
  color: var(--color-text);
  text-decoration: none;
  font-size: var(--font-size-small);
  font-weight: 700;
}

#toc_container .toc_list a:hover,
.post-content-text #toc_container .toc_list a:hover {
  color: var(--color-primary);
}

/* バナー・ボタン */
.post-appbnr-wrap {
  margin: var(--space-32) 0;
  text-align: center;
}

.post-appbnr-link {
  display: inline-block;
}

.post-appbnr-img {
  max-width: 100%;
  height: auto;
  border-radius: 8px;
}

.post-appbtn-wrap {
  margin: var(--space-32) 0;
  text-align: center;
}

.seminar-app-btn {
  display: inline-block;
  padding: var(--space-16) var(--space-48);
  background: var(--color-primary);
  color: var(--color-white);
  font-size: var(--font-size-body);
  font-weight: 600;
  text-decoration: none;
  border-radius: var(--card-radius);
  transition: background var(--transition-fast);
}

.seminar-app-btn:hover {
  background: var(--color-primary-dark);
}

/* タグ一覧 */
.tag-list {
  margin: var(--space-40) 0;
}

.tag-list-nobg {
  background: none;
}

.tag-list-color-blue .tag-list-item-inner {
  color: var(--color-primary);
  border-color: var(--color-primary);
}

.tag-list-margin-single {
  margin: var(--space-48) 0;
}

.tag-list-content {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
  list-style: none;
  padding: 0;
  margin: 0;
}

.tag-list-item {
  margin: 0;
}

.tag-list-item-inner {
  display: inline-block;
  padding: 6px var(--space-16);
  font-size: var(--font-size-small);
  color: var(--color-text-light);
  text-decoration: none;
  border: 1px solid #ddd;
  border-radius: 20px;
  transition: all var(--transition-fast);
}

.tag-list-item-inner:hover {
  background: var(--color-primary);
  color: var(--color-white);
  border-color: var(--color-primary);
}

/* SNSシェア */
.sns_count {
  margin-top: var(--space-48);
  text-align: center;
  display: block;
}

.sns_count-title {
  font-size: var(--font-size-body);
  font-weight: 600;
  color: var(--color-primary);
  font-style: italic;
  margin-bottom: var(--space-24);
}

.sns_count ul {
  display: flex;
  justify-content: center;
  gap: var(--space-16);
  list-style: none;
  padding: 0;
  margin: 0;
}

.sns_count li {
  margin: 0;
  width: auto;
  padding: 0;
}

.sns_count li a {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 140px;
  padding: 14px var(--space-32);
  border-radius: 30px;
  font-size: var(--font-size-body);
  font-weight: 600;
  text-decoration: none;
  transition: opacity var(--transition-fast);
}

.sns_count li a:hover {
  opacity: 0.8;
}

.sns_count li.tw a {
  background: #1a1a1a;
  color: var(--color-white);
}

.sns_count li.fb a {
  background: #3b82f6;
  color: var(--color-white);
}

@media screen and (max-width: 767px) {
  .sns_count ul {
    flex-direction: column;
    align-items: center;
  }

  .sns_count li a {
    min-width: 200px;
  }
}

/* Written by プロフィール */
.written-by {
  margin-top: var(--space-64);
  padding: var(--space-40);
  background: var(--color-bg-gray);
  border-radius: 8px;
}

.written-by-title {
  font-size: 18px;
  font-weight: 600;
  color: var(--color-text);
  margin: 0 0 var(--space-24);
  padding: 0;
  border: none;
  background: none;
}

.written-by-title:after {
  display: none;
}

.written-by-header {
  display: flex;
  align-items: center;
  gap: var(--space-24);
  margin-bottom: var(--space-16);
}

.written-by-photo {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
  background-color: var(--color-border);
  flex-shrink: 0;
}

.written-by-info {
  flex: 1;
}

.written-by-name {
  font-size: 18px;
  font-weight: 600;
  color: var(--color-text);
}

.written-by-role {
  font-size: var(--font-size-small);
  color: var(--color-text-muted);
  margin-top: 6px;
}

.written-by-bio {
  font-size: var(--font-size-small);
  color: var(--color-text-light);
  line-height: var(--line-height-body);
}

/* 同じ著者の最近の記事 */
.written-by-recent {
  margin-top: var(--space-32);
  padding-top: var(--space-32);
  border-top: 1px solid var(--color-border);
}

.written-by-recent-title {
  font-size: var(--font-size-body);
  font-weight: 600;
  color: var(--color-text);
  margin: 0 0 var(--space-24);
}

.written-by-recent-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-16);
}

.written-by-recent-item {
  display: flex;
  gap: var(--space-16);
  text-decoration: none;
  color: inherit;
}

.written-by-recent-item:hover .written-by-recent-item-title-text {
  background-size: 100% 1px;
}

.written-by-recent-thumb {
  flex-shrink: 0;
  width: 140px;
  border-radius: var(--card-radius);
  overflow: hidden;
}

.written-by-recent-thumb img {
  width: 100%;
  height: auto;
  border-radius: var(--card-radius);
}

.written-by-recent-content {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.written-by-recent-date {
  font-size: var(--font-size-xsmall);
  color: var(--color-text-muted);
}

.written-by-recent-item-title {
  font-size: var(--font-size-small);
  font-weight: 500;
  color: var(--color-text);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.written-by-recent-item-title-text {
  background-image: linear-gradient(currentColor, currentColor);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 0% 1px;
  transition: background-size var(--transition-normal);
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .written-by {
    padding: var(--space-32);
  }
}

@media screen and (max-width: 767px) {
  .written-by {
    padding: var(--space-24);
  }

  .written-by-header {
    flex-direction: column;
    text-align: center;
  }

  .written-by-photo {
    width: 100px;
    height: 100px;
  }

  .written-by-recent-thumb {
    width: 100px;
  }

  .written-by-recent-item-title {
    font-size: var(--font-size-small);
  }

  .written-by-recent-item-title-text {
    transition: none;
  }
}

/* PICK UP 関連記事（非表示） */
.pickup-section,
.pickup-title,
.pickup-list,
.pickup-item,
.post-content-status-pick,
.post-content-status-pick-inner {
  display: none !important;
}

.pickup-title {
  font-size: 20px;
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 var(--space-24);
  padding: 0;
  border: none;
  background: none;
}

.pickup-title:after {
  display: none;
}

.pickup-list {
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
}

.pickup-item {
  display: flex;
  align-items: center;
  gap: var(--space-24);
  text-decoration: none;
  transition: opacity var(--transition-fast);
}

.pickup-item:hover {
  opacity: 0.7;
}

.pickup-item-thumb {
  width: 180px;
  flex-shrink: 0;
}

.pickup-item-thumb img {
  width: 100%;
  height: auto;
  border-radius: var(--card-radius);
}

.pickup-item-title {
  font-size: var(--font-size-body);
  font-weight: 600;
  color: var(--color-text);
  line-height: 1.6;
  margin: 0;
}

@media screen and (max-width: 767px) {
  .pickup-section {
    padding-left: 0;
  }

  .pickup-item {
    flex-direction: column;
    align-items: flex-start;
  }

  .pickup-item-thumb {
    width: 100%;
  }
}

/* 登場メンバー */
.cast-list {
  margin-top: var(--space-64);
  padding: var(--space-40);
  background: #f8f9fa;
  border-radius: 8px;
}

.cast-list-margin {
  margin: var(--space-64) 0;
}

.cast-list-title {
  font-size: 18px;
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 var(--space-24);
  text-align: center;
}

.cast-list-content {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-24);
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 0;
}

.cast-list-item {
  width: calc(50% - var(--space-16) / 2);
  max-width: 300px;
}

.cast-list-item-inner {
  display: flex;
  align-items: center;
  gap: var(--space-16);
  padding: var(--space-16);
  background: var(--color-white);
  border-radius: 8px;
  text-decoration: none;
  transition: box-shadow var(--transition-fast);
}

.cast-list-item-inner:hover {
  box-shadow: var(--card-shadow-hover);
}

.cast-list-item-media {
  width: 60px;
  height: 60px;
  border-radius: 50%;
  background-size: cover;
  background-position: center;
  background-color: var(--color-border);
  flex-shrink: 0;
}

.cast-list-item-content {
  flex: 1;
}

.cast-list-item-text {
  font-size: var(--font-size-xsmall);
  color: var(--color-text-muted);
  margin: 0 0 var(--space-4);
}

.cast-list-item-title {
  font-size: var(--font-size-small);
  font-weight: 600;
  color: var(--color-text);
  margin: 0;
}

@media screen and (min-width: 768px) and (max-width: 1024px) {
  .cast-list {
    padding: var(--space-32);
  }
}

@media screen and (max-width: 767px) {
  .cast-list {
    padding: var(--space-24);
  }

  .cast-list-item {
    width: 100%;
    max-width: none;
  }

  .cast-list-item-inner:hover {
    box-shadow: none;
  }
}

/* ===== メガメニュー ===== */
.c-header__nav-item {
  position: relative;
  display: flex;
  align-items: center;
}

.c-header__nav-item--has-mega {
  position: static;
}

.c-mega-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  width: 100vw;
  background: #fff;
  border-top: 1px solid #e5e5e5;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
  padding: 64px 40px;
  min-height: 400px;
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s, visibility 0.2s;
  z-index: 1000;
}

/* ホバーではなくクラスで制御 */
.c-mega-menu.is-open {
  opacity: 1;
  visibility: visible;
}

/* 閉じるボタン */
.c-mega-menu__close {
  position: absolute;
  bottom: 40px;
  right: calc((100vw - 1400px) / 2);
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 32px;
  background: #f5f5f5;
  border: 1px solid #999;
  border-radius: 4px;
  font-size: 14px;
  font-weight: 500;
  color: #666;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
@media (max-width: 1024px) {
  .c-mega-menu__close {
    right: 40px;
  }
}
.c-mega-menu__close:hover {
  background: #e5e5e5;
  color: #333;
}

.c-mega-menu__inner {
  max-width: 1024px;
  margin: 0 auto;
}

.c-mega-menu__header {
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 1px solid #e5e5e5;
}

.c-mega-menu__title {
  font-size: 20px;
  font-weight: 700;
  color: #333;
  text-decoration: none;
}

.c-mega-menu__title::after {
  content: ' →';
  color: #0067C0;
}

.c-mega-menu__title:hover {
  color: #0067C0;
}

.c-mega-menu__grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr;
  gap: 40px;
}

.c-mega-menu__category {
  min-width: 0;
}

.c-mega-menu__cat-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 16px;
  font-weight: 700;
  color: #333;
  text-decoration: none;
  margin-bottom: 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid #dde5ed;
}

.c-mega-menu__cat-title svg {
  width: 20px;
  height: 20px;
  stroke: #0067C0;
  stroke-width: 2;
  fill: none;
  flex-shrink: 0;
}

.c-mega-menu__cat-title::after {
  content: '→';
  color: #0067C0;
  margin-left: auto;
  transition: transform 0.2s;
}

.c-mega-menu__cat-title:hover {
  color: #0067C0;
}

.c-mega-menu__list {
  list-style: none;
  margin: 24px 0 0 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px 16px;
}

.c-mega-menu__category:last-child .c-mega-menu__list {
  grid-template-columns: repeat(2, 1fr);
}

.c-mega-menu__list li {
  margin: 0;
}

.c-mega-menu__list a {
  font-size: 13px;
  color: #0067C0;
  font-weight: 500;
  text-decoration: none;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 0;
  transition: color 0.2s;
}

.c-mega-menu__list a::before {
  content: '→';
  color: #0067C0;
  font-size: 11px;
  font-weight: bold;
  transition: color 0.2s, transform 0.2s;
}

.c-mega-menu__list a:hover {
  color: #0067C0;
}

.c-mega-menu__list a:hover::before {
  color: #0067C0;
  transform: translateX(2px);
}

@media screen and (max-width: 1024px) {
  .c-mega-menu {
    display: none;
  }
}

/* メガメニュー矢印 */
.c-header__nav-link--has-child {
  display: inline-flex;
  align-items: center;
  gap: 8px;
}

.c-header__nav-arrow {
  display: inline-block;
  width: 0;
  height: 0;
  border-left: 4px solid transparent;
  border-right: 4px solid transparent;
  border-top: 5px solid currentColor;
  transition: transform 0.2s;
}

.c-header__nav-item--has-mega:hover .c-header__nav-arrow {
  transform: rotate(180deg);
}

/* ========================================
   お問い合わせページ（左右分割レイアウト）
   page-contact.php から移行
   ======================================== */

/* レイアウト */
.contact-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  grid-template-rows: auto 1fr;
  min-height: calc(100vh - var(--header-height));
}

/* 左上: イントロ */
.contact-intro {
  grid-column: 1;
  grid-row: 1;
  padding: var(--space-64) var(--space-48) 0;
  background: var(--color-white);
}

/* 左下: 信頼コンテンツ */
.contact-trust {
  grid-column: 1;
  grid-row: 2;
  padding: 0 var(--space-48) var(--space-64);
  background: var(--color-white);
}

.contact-title {
  font-size: var(--font-size-section-title);
  font-weight: 700;
  margin-bottom: var(--space-24);
  line-height: var(--line-height-tight);
}

.contact-desc {
  font-size: var(--font-size-body);
  font-weight: 500;
  color: var(--color-text);
  margin-bottom: var(--space-32);
}

/* 顧客ロゴセクション */
.client-section {
  margin-bottom: var(--space-48);
}

.client-section-title {
  font-size: var(--font-size-card-title);
  font-weight: 600;
  margin-bottom: var(--space-24);
  color: var(--color-text);
}

.client-logos {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-16);
}

.client-logo {
  background: var(--color-white);
  border: 1px solid var(--color-border);
  border-radius: var(--card-radius);
  padding: var(--space-16);
  display: flex;
  align-items: center;
  justify-content: center;
  height: var(--space-64);
}

.client-logo img {
  max-width: 100%;
  max-height: var(--space-40);
  object-fit: contain;
}

/* メンバーセクション */
.contact-trust .member-section {
  margin-bottom: var(--space-40);
  padding: 0;
}

.contact-trust .member-section-title {
  font-size: var(--font-size-card-title);
  font-weight: 600;
  margin-bottom: var(--space-16);
  color: var(--color-text);
}

.contact-trust .member-section-title::after {
  display: none;
}

.member-photos {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: var(--space-16);
}

.member-photo {
  aspect-ratio: 1;
  overflow: hidden;
}

.member-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* お客様の声セクション */
.voice-section {
  flex: 1;
  display: flex;
  flex-direction: column;
}

.voice-section-title {
  font-size: var(--font-size-card-title);
  font-weight: 600;
  margin-bottom: var(--space-16);
  color: var(--color-text);
}

.voice-cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--space-16);
  flex: 1;
}

.voice-card {
  background: var(--color-bg-gray);
  border-radius: var(--card-radius);
  padding: var(--space-32) var(--space-16) var(--space-16);
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  border: 1px solid var(--color-border);
}

.voice-card::before {
  content: '\275D';
  position: absolute;
  top: 10px;
  left: 12px;
  font-size: 60px;
  color: var(--color-primary);
  opacity: 0.15;
  line-height: 1;
  pointer-events: none;
}

.voice-card__text {
  font-size: var(--font-size-small);
  line-height: var(--line-height-body);
  color: var(--color-text);
  margin-bottom: var(--space-8);
  position: relative;
  z-index: 1;
}

.voice-card__footer {
  text-align: right;
  position: relative;
  z-index: 1;
}

.voice-card__company {
  font-size: var(--font-size-xsmall);
  font-weight: 700;
  color: var(--color-primary);
  margin: 0;
}

.voice-card__date {
  font-size: var(--font-size-xsmall);
  color: var(--color-text-muted);
  margin: 0;
}

/* 右側フォーム */
.contact-right {
  grid-column: 2;
  grid-row: 1 / -1;
  padding: var(--space-64) var(--space-48);
  background: var(--color-white);
  display: flex;
  flex-direction: column;
}

.form-card {
  background: var(--color-white);
  border-radius: var(--card-radius);
  padding: 0 var(--space-40) var(--space-40);
  border: 1px solid var(--color-border);
  flex: 1;
  display: flex;
  flex-direction: column;
}

.form-card .tally-embed {
  flex: 1;
}

.form-card .tally-embed iframe {
  width: 100%;
  border: 0;
  height: 100%;
  min-height: 800px;
}

/* タブレット・モバイル共通 */
@media screen and (max-width: 1024px) {
  .contact-layout {
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    min-height: auto;
  }

  .contact-intro {
    grid-column: 1;
    grid-row: auto;
    padding: var(--space-40) var(--container-padding) 0;
  }

  .contact-right {
    grid-column: 1;
    grid-row: auto;
    padding: var(--space-40) var(--container-padding);
  }

  .contact-trust {
    grid-column: 1;
    grid-row: auto;
    padding: 0 var(--container-padding) var(--space-40);
  }

  .contact-title,
  .contact-desc {
    text-align: center;
  }

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

  .client-logo {
    height: 80px;
  }

  .client-logo img {
    max-height: 48px;
  }

  .member-photos {
    grid-template-columns: repeat(4, 1fr);
    gap: var(--space-8);
  }

  .form-card {
    padding: var(--space-24) var(--space-16);
  }

  .voice-cards {
    grid-template-columns: 1fr;
    gap: var(--space-8);
  }

  .voice-card {
    padding: 32px var(--space-16) var(--space-8);
  }

  .form-card .tally-embed iframe {
    min-height: 1400px;
  }
}

/* ========================================
   レガシーボタンスタイル（style.css互換）
   style-new.cssのみを読み込むページ用
   ======================================== */
@layer legacy {
  /* 基本ボタンスタイル */
  .button {
    position: relative;
    display: inline-block;
    text-align: center;
    width: 364px;
    max-width: 100%;
    min-height: 82px;
    padding: 33px 31px 31px;
    border: 2px solid #1a1a1a;
    font-weight: 700;
    color: #1a1a1a;
    font-size: 14px;
    text-decoration: none;
    line-height: 1;
    letter-spacing: 0.1em;
    background-color: rgba(26, 26, 26, 0);
    transition: all 0.25s cubic-bezier(0.25, 0.635, 0.53, 0.905);
    cursor: pointer;
  }

  .button:disabled {
    opacity: 0.5;
    pointer-events: none;
  }

  .button:hover {
    color: #fff;
    background-color: #1a1a1a;
  }

  /* ボタン内部要素 */
  .button-inner {
    display: inline-block;
    vertical-align: middle;
  }

  .button-arrow {
    position: absolute;
    top: 50%;
    right: 20px;
    transform: translateY(-50%);
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .button-arrow .svg-sprite,
  .button-arrow svg {
    width: 16px;
    height: 16px;
    fill: #1a1a1a;
    transition: fill 0.25s ease;
  }

  .button:hover .button-arrow .svg-sprite,
  .button:hover .button-arrow svg {
    fill: #fff;
  }

  /* 白ボタンバリエーション（グラデーション背景用） */
  .button-white {
    border: 2px solid #fff;
    color: #fff;
    background-color: rgba(255, 255, 255, 0);
  }

  .button-white:hover {
    color: #1a1a1a;
    background-color: #fff;
  }

  .button-white .button-arrow .svg-sprite,
  .button-white .button-arrow svg {
    fill: #fff;
  }

  .button-white:hover .button-arrow .svg-sprite,
  .button-white:hover .button-arrow svg {
    fill: #1a1a1a;
  }

  /* モバイル対応 */
  @media screen and (max-width: 767px) {
    .button {
      font-size: 11px;
      padding: 20px 22px;
      min-height: 56px;
      width: 100%;
    }

    .button-arrow {
      right: 15px;
    }

    .button-arrow .svg-sprite,
    .button-arrow svg {
      width: 14px;
      height: 14px;
    }
  }

  /* ========================================
     EC/BtoBページ ヒーローCTAボタン
     広告運用代行と同じ高さ(61.75px)に統一
     ======================================== */
  .ec-download-btn-area .blog-header-btn.button-white {
    min-height: auto;
    padding: 16px 40px;
    font-size: 17px;
    width: auto;
  }

  .section-thinking-btn .button {
    min-height: auto;
    padding: 16px 40px;
    font-size: 17px;
    width: auto;
  }

  @media screen and (max-width: 767px) {
    .ec-download-btn-area .blog-header-btn.button-white,
    .section-thinking-btn .button {
      width: 100%;
      max-width: 320px;
      padding: 16px 24px;
    }
  }
}


/* ========================================
   ヒーローCTAボタン: 透明+白文字+白枠（TOPと統一）
   @layer外に配置し、unlayeredなstyle.cssに勝つ
   お客様の声 .c-voice-hero__btn と完全統一
   ======================================== */
.c-page-fv--gradient .c-page-fv__buttons .c-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-4);
  flex: 1;
  height: auto;
  padding: var(--space-16) var(--space-40);
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.6);
  border-radius: var(--btn-radius);
  font-size: 17px;
  font-weight: 600;
  text-decoration: none;
  transition: all var(--transition-normal);
}

.c-page-fv--gradient .c-page-fv__buttons .c-btn::after {
  content: '\2192';
  font-size: 17px;
}

.c-page-fv--gradient .c-page-fv__buttons .c-btn:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.8);
}

/* お客様の声ページ ヒーローCTAボタン */
.c-voice-hero__btn {
  background: transparent;
  color: #fff;
  border: 1px solid rgba(255, 255, 255, 0.6);
}

.c-voice-hero__btn:hover {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.8);
}

/* ========================================
   セミナー・イベントページ（/seminar/）
   移行元: archive-seminar.php インラインCSS
   ======================================== */

.seminar-page {
  font-family: var(--font-family);
  color: var(--color-text);
  line-height: var(--line-height-body);
}

/* ===== ファーストビュー ===== */
.seminar-fv {
  background: var(--gradient-hero);
  height: 360px;
  display: flex;
  align-items: center;
  position: relative;
  overflow: hidden;
}

.seminar-fv__inner {
  width: 100%;
  max-width: var(--container-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.seminar-fv__body {
  max-width: min(600px, 100%);
}

.seminar-fv__title {
  font-size: var(--font-size-hero);
  font-weight: 700;
  line-height: var(--line-height-heading);
  margin-bottom: var(--space-24);
  color: var(--color-white);
}

.seminar-fv__lead {
  font-size: 17px;
  font-weight: 500;
  line-height: var(--line-height-body);
  color: rgba(255, 255, 255, 0.95);
}

/* 右側の手の画像 */
.seminar-fv__hero-img {
  position: absolute;
  right: -60px;
  top: 50%;
  transform: translateY(-50%);
  height: 30%;
  width: auto;
  object-fit: contain;
}

/* FV右側：受付中イベントカード */
.seminar-fv__event-card {
  background: var(--color-white);
  border-radius: var(--card-radius);
  padding: var(--space-24);
  text-decoration: none;
  color: inherit;
  display: block;
  transition: box-shadow var(--transition-normal);
  box-shadow: var(--card-shadow);
}

.seminar-fv__event-card:hover {
  box-shadow: var(--card-shadow-hover);
}

.seminar-fv__event-image {
  width: 100%;
  aspect-ratio: 2 / 1;
  object-fit: cover;
  border-radius: var(--card-radius);
  margin-bottom: var(--space-16);
  background: var(--color-border);
}

.seminar-fv__event-meta {
  display: flex;
  align-items: center;
  gap: var(--space-16);
  margin-bottom: var(--space-16);
}

.seminar-fv__event-status {
  display: inline-block;
  background: #d4edda;
  color: #155724;
  font-size: var(--font-size-xsmall);
  font-weight: 600;
  padding: var(--space-4) var(--space-16);
  border-radius: 20px;
}

.seminar-fv__event-date {
  font-size: var(--font-size-small);
  color: var(--color-primary);
  font-weight: 600;
}

.seminar-fv__event-title {
  font-size: var(--font-size-body);
  font-weight: 600;
  line-height: 1.6;
  color: var(--color-text);
  margin-bottom: var(--space-16);
}

.seminar-fv__event-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-8);
  background: var(--color-primary);
  color: var(--color-white);
  padding: var(--space-16) var(--space-24);
  border-radius: var(--card-radius);
  font-size: var(--font-size-small);
  font-weight: 500;
  transition: background var(--transition-normal);
}

.seminar-fv__event-card:hover .seminar-fv__event-btn {
  background: var(--color-primary-dark);
}

/* FV右側：イベントなし時 */
.seminar-fv__no-event {
  background: var(--color-white);
  border-radius: var(--card-radius);
  padding: var(--space-48) var(--space-24);
  text-align: center;
  box-shadow: var(--card-shadow);
}

.seminar-fv__no-event-icon {
  font-size: var(--space-48);
  margin-bottom: var(--space-16);
  opacity: 0.5;
}

.seminar-fv__no-event-text {
  font-size: var(--font-size-small);
  color: var(--color-text-light);
  margin-bottom: var(--space-8);
}

.seminar-fv__no-event-sub {
  font-size: var(--font-size-xsmall);
  color: var(--color-text-muted);
}

/* ===== セクション共通 ===== */
.seminar-section {
  padding: var(--space-80) 0;
}

.seminar-section--gray {
  background-color: var(--color-bg-gray);
}

.seminar-section--white {
  background-color: var(--color-white);
}

.seminar-container {
  max-width: var(--container-width);
  margin: 0 auto;
  padding: 0 var(--container-padding);
}

.seminar-section__header {
  text-align: center;
  margin-bottom: var(--space-48);
}

.seminar-section__title {
  font-size: var(--font-size-section-title);
  font-weight: 700;
  margin-bottom: var(--space-16);
  color: var(--color-text);
}

.seminar-section__description {
  font-size: var(--font-size-small);
  color: var(--color-text-light);
}

/* ===== カードグリッド ===== */
.seminar-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-40) var(--space-24);
}

.seminar-card {
  background: transparent;
  border-radius: var(--card-radius);
  text-decoration: none;
  color: inherit;
  display: flex;
  flex-direction: column;
  height: 100%;
}

.seminar-card:hover {
  opacity: 1;
}

.seminar-card__image {
  width: 100%;
  aspect-ratio: 2 / 1;
  object-fit: cover;
  background: #f0f0f0;
  border-radius: var(--card-radius) var(--card-radius) 0 0;
}

.seminar-card__body {
  padding: var(--space-16);
  flex: 1;
  display: flex;
  flex-direction: column;
  background: var(--color-white);
  border-radius: 0 0 var(--card-radius) var(--card-radius);
}

.seminar-card__meta {
  display: flex;
  align-items: center;
  gap: var(--space-16);
  margin-bottom: var(--space-16);
}

.seminar-card__date {
  font-size: var(--font-size-xsmall);
  color: var(--color-text-light);
}

.seminar-card__status {
  display: inline-block;
  font-size: var(--font-size-xsmall);
  font-weight: 600;
  padding: var(--space-4) var(--space-16);
  border-radius: var(--card-radius);
  background: #e8f4fc;
  color: var(--color-primary);
}

.seminar-card__status--active {
  background: #d4edda;
  color: #155724;
}

.seminar-card__status--finished {
  background: #f0f0f0;
  color: var(--color-text-light);
}

.seminar-card__title {
  font-size: var(--font-size-body);
  font-weight: 600;
  line-height: 1.6;
  color: var(--color-text);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.seminar-card__title .title-text {
  background-image: linear-gradient(currentColor, currentColor);
  background-position: left calc(100% - 1px);
  background-size: 0% 1px;
  background-repeat: no-repeat;
  transition: background-size var(--transition-normal);
}

.seminar-card:hover .seminar-card__title .title-text {
  background-size: 100% 1px;
}

/* ===== CTAボタン ===== */
.seminar-cta {
  text-align: center;
  margin-top: var(--space-48);
}

.seminar-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-8);
  background: var(--color-primary);
  color: var(--color-white);
  font-size: var(--font-size-small);
  font-weight: 500;
  padding: var(--space-16) var(--space-40);
  border-radius: var(--card-radius);
  text-decoration: none;
  transition: background var(--transition-normal);
  min-width: min(320px, 100%);
}

.seminar-cta__btn:hover {
  background: var(--color-primary-dark);
}

.seminar-cta__btn span {
  display: inline-block;
  transition: transform var(--transition-normal);
}

.seminar-cta__btn:hover span {
  transform: translateX(4px);
}

/* ===== 空状態 ===== */
.seminar-empty {
  text-align: center;
  padding: var(--space-64) var(--container-padding);
  color: var(--color-text-light);
}

/* ===== ページネーション ===== */
.seminar-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: var(--space-8);
  margin-top: var(--space-40);
}

.seminar-pagination a,
.seminar-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 var(--space-16);
  font-size: var(--font-size-small);
  font-weight: 500;
  text-decoration: none;
  border-radius: var(--card-radius);
  transition: all var(--transition-normal);
}

.seminar-pagination a {
  color: var(--color-text);
  background: var(--color-white);
  border: 1px solid var(--color-border);
}

.seminar-pagination a:hover {
  color: var(--color-primary);
  border-color: var(--color-primary);
  background: var(--color-primary-light);
}

.seminar-pagination span.current {
  color: var(--color-white);
  background: var(--color-primary);
  border: 1px solid var(--color-primary);
}

.seminar-pagination span.dots {
  min-width: auto;
  height: auto;
  padding: 0 var(--space-4);
  border: none;
  background: transparent;
  color: var(--color-text-light);
  letter-spacing: 2px;
}

/* ===== セミナーページ タブレット（768px〜1024px） ===== */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .seminar-fv__hero-img {
    display: none;
  }

  .seminar-fv__body {
    max-width: 100%;
    text-align: center;
  }

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

/* ===== セミナーページ モバイル（767px以下） ===== */
@media screen and (max-width: 767px) {
  .seminar-fv__hero-img {
    display: none;
  }

  .seminar-fv__body {
    max-width: 100%;
    text-align: center;
  }

  .seminar-grid {
    grid-template-columns: 1fr;
  }

  .seminar-cta__btn {
    width: 100%;
    min-width: auto;
  }

  .seminar-card:hover .seminar-card__title .title-text {
    background-size: 0% 1px;
  }

  .seminar-cta__btn:hover span {
    transform: none;
  }
}

/* =============================================
   セミナー詳細ページ（single-seminar.php）
   ============================================= */

/* コンテンツ幅 */
.c-seminar-content {
  max-width: 800px;
  margin: 0 auto;
  padding: var(--space-40) var(--container-padding) var(--space-80);
}

/* 記事ヘッダー */
.c-article-header {
  margin-bottom: var(--space-48);
}

.c-article-header__meta {
  display: flex;
  align-items: center;
  gap: var(--space-8);
  margin-bottom: var(--space-16);
  flex-wrap: wrap;
}

.c-article-header__date-item {
  font-size: var(--font-size-small);
  color: var(--color-primary);
  font-weight: 600;
}

.c-article-header__title {
  font-size: clamp(22px, 3vw + 14px, 28px);
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-text);
  margin: 0 0 var(--space-24) 0;
}

.c-article-header__image {
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
  border-radius: var(--card-radius);
}

/* CTAボタン（申し込みボタン） */
.c-seminar-cta {
  text-align: center;
  margin: var(--space-32) 0;
}

.c-seminar-cta__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--space-8);
  background: linear-gradient(135deg, var(--color-primary), #00a0e9);
  color: var(--color-white);
  font-size: var(--font-size-body);
  font-weight: 600;
  padding: var(--space-16) var(--space-48);
  border-radius: var(--card-radius);
  text-decoration: none;
  transition: all var(--transition-normal);
  min-width: 280px;
}

.c-seminar-cta__btn:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0, 103, 192, 0.3);
}

/* イベント情報セクション */
.c-event-info {
  background: var(--color-bg-gray);
  border-radius: var(--space-8);
  padding: var(--space-32);
  margin-bottom: var(--space-48);
}

.c-event-info__title {
  font-size: var(--font-size-card-title);
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 var(--space-24) 0;
  padding-bottom: var(--space-16);
  border-bottom: 3px solid var(--color-primary);
}

.c-event-info__table {
  width: 100%;
}

.c-event-info__table dt {
  width: 30%;
  background: #e8f0f5;
  font-weight: 600;
  padding: var(--space-16);
  border-bottom: 1px solid var(--color-white);
}

.c-event-info__table dd {
  width: 70%;
  background: var(--color-white);
  padding: var(--space-16);
  margin: 0;
  border-bottom: 1px solid var(--color-bg-gray);
}

.c-event-info__table dl {
  display: flex;
  flex-wrap: wrap;
  margin: 0;
}

/* 本文エリア（記事ページ風スタイル） */
.c-article-content {
  margin-bottom: var(--space-48);
}

.c-article-content__title {
  font-size: var(--font-size-card-title);
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 var(--space-24) 0;
  padding-bottom: var(--space-16);
  border-bottom: 3px solid var(--color-primary);
}

.c-article-content__body {
  font-size: var(--font-size-body);
  line-height: 2;
  color: var(--color-text);
  letter-spacing: 0.05em;
}

.c-article-content__body p {
  margin: 0 0 20px 0;
}

.c-article-content__body p:last-child {
  margin-bottom: 0;
}

/* 見出しスタイル（記事ページ風） */
.c-article-content__body h1 {
  display: block;
  margin: var(--space-80) 0 0;
  font-size: clamp(22px, 3vw + 14px, 28px);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--color-text);
}

.c-article-content__body h1::after {
  display: block;
  content: '';
  width: 100%;
  height: 6px;
  margin: var(--space-32) 0 37px;
  background: linear-gradient(90deg, var(--color-primary) 0%, #00a0e9 100%);
}

.c-article-content__body h2 {
  display: block;
  margin: var(--space-64) 0 0;
  font-size: 24px;
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--color-text);
}

.c-article-content__body h2::after {
  display: block;
  content: '';
  width: 100%;
  height: 4px;
  margin: var(--space-24) 0 28px;
  background: linear-gradient(90deg, var(--color-primary) 0%, #00a0e9 100%);
}

.c-article-content__body h3 {
  display: block;
  margin: var(--space-48) 0 20px;
  font-size: var(--font-size-card-title);
  font-weight: 700;
  line-height: 1.6;
  letter-spacing: 0.05em;
  color: var(--color-text);
  padding-left: var(--space-16);
  border-left: 4px solid var(--color-primary);
}

.c-article-content__body h4 {
  display: block;
  margin: var(--space-40) 0 var(--space-16);
  font-size: clamp(16px, 1.5vw + 12px, 18px);
  font-weight: 700;
  line-height: 1.6;
  color: var(--color-text);
}

.c-article-content__body h5 {
  display: block;
  margin: var(--space-32) 0 12px;
  font-size: 17px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-text);
}

/* リストスタイル（記事ページ風） */
.c-article-content__body ul {
  margin: 20px 0;
  padding: 0;
  list-style: none;
}

.c-article-content__body ul li {
  position: relative;
  padding-left: 20px;
  margin-bottom: 12px;
  line-height: 1.8;
}

.c-article-content__body ul li::before {
  position: absolute;
  top: 11px;
  left: 1px;
  display: block;
  content: '';
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--color-text);
}

/* 順序リスト */
.c-article-content__body ol {
  margin: 20px 0;
  padding-left: var(--space-24);
  counter-reset: ol-counter;
}

.c-article-content__body ol li {
  position: relative;
  margin-bottom: 12px;
  line-height: 1.8;
}

/* リンクスタイル */
.c-article-content__body a {
  color: var(--color-primary);
  text-decoration: underline;
  transition: color var(--transition-fast);
}

.c-article-content__body a:hover {
  color: var(--color-primary-dark);
}

/* 画像スタイル */
.c-article-content__body img {
  max-width: 100%;
  height: auto;
  border-radius: var(--card-radius);
  margin: var(--space-24) 0;
}

.c-article-content__body figure {
  margin: var(--space-24) 0;
}

.c-article-content__body figcaption {
  font-size: var(--font-size-xsmall);
  color: var(--color-text-light);
  text-align: center;
  margin-top: var(--space-8);
}

/* 引用スタイル */
.c-article-content__body blockquote {
  margin: var(--space-32) 0;
  padding: var(--space-24) var(--space-32);
  background: var(--color-bg-gray);
  border-left: 4px solid var(--color-primary);
  border-radius: 0 var(--card-radius) var(--card-radius) 0;
}

.c-article-content__body blockquote p {
  margin: 0;
  font-style: italic;
}

/* 強調スタイル */
.c-article-content__body strong {
  font-weight: 700;
  color: var(--color-text);
}

.c-article-content__body em {
  font-style: italic;
}

/* 表スタイル */
.c-article-content__body table {
  width: 100%;
  border-collapse: collapse;
  margin: var(--space-24) 0;
}

.c-article-content__body th,
.c-article-content__body td {
  padding: 12px var(--space-16);
  border: 1px solid var(--color-border);
  text-align: left;
}

.c-article-content__body th {
  background: var(--color-bg-gray);
  font-weight: 600;
}

/* WordPressブロック対応 */
.c-article-content__body .wp-block-image {
  margin: var(--space-24) 0;
}

.c-article-content__body .wp-block-image img {
  margin: 0;
}

/* 申し込みフォーム */
.c-seminar-form {
  margin: var(--space-48) 0;
}

.c-seminar-form__title {
  font-size: var(--font-size-card-title);
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 var(--space-24) 0;
  padding-bottom: var(--space-16);
  border-bottom: 3px solid var(--color-primary);
}

.c-seminar-form__iframe {
  width: 100%;
  height: 860px;
  border: none;
}

.c-seminar-form__closed {
  text-align: center;
  padding: var(--space-32);
  background: var(--color-bg-gray);
  border-radius: var(--space-8);
  color: var(--color-text-light);
}

/* 講師紹介 */
.c-speakers {
  background: var(--color-bg-gray);
  border-radius: var(--space-8);
  padding: var(--space-32);
  margin-bottom: var(--space-48);
}

.c-speakers__title {
  font-size: var(--font-size-card-title);
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 var(--space-24) 0;
  padding-bottom: var(--space-16);
  border-bottom: 3px solid var(--color-primary);
}

.c-speakers__list {
  display: flex;
  flex-direction: column;
  gap: var(--space-24);
}

.c-speaker {
  display: flex;
  gap: var(--space-24);
  background: var(--color-white);
  padding: var(--space-24);
  border-radius: var(--space-8);
}

.c-speaker__image {
  flex-shrink: 0;
  width: clamp(80px, 15vw, 120px);
  height: clamp(80px, 15vw, 120px);
  border-radius: 50%;
  object-fit: cover;
}

.c-speaker__content {
  flex: 1;
}

.c-speaker__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-8);
  margin-bottom: var(--space-8);
}

.c-speaker__label {
  font-size: var(--font-size-xsmall);
  color: var(--color-text-light);
  background: var(--color-bg-gray);
  padding: var(--space-4) var(--space-8);
  border-radius: var(--card-radius);
}

.c-speaker__name {
  font-size: clamp(16px, 1.5vw + 12px, 18px);
  font-weight: 700;
  color: var(--color-text);
  margin: 0 0 12px 0;
}

.c-speaker__bio {
  font-size: var(--font-size-small);
  line-height: 1.8;
  color: var(--color-text-light);
}

.c-speaker__bio p {
  margin: 0 0 var(--space-8) 0;
}

/* 関連記事（TOPページのブログカード風） */
.c-related {
  margin-bottom: var(--space-48);
  padding-top: var(--space-48);
  border-top: 1px solid var(--color-border);
}

.c-related__title {
  font-size: var(--font-size-small);
  font-weight: 700;
  color: var(--color-text-light);
  text-align: center;
  letter-spacing: 0.1em;
  margin: 0 0 var(--space-32) 0;
}

.c-related__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--space-24);
}

.c-related__card {
  text-decoration: none;
  color: inherit;
  display: block;
}

.c-related__card:hover .c-related__card-title-text {
  background-size: 100% 1px;
}

.c-related__card-image-wrap {
  aspect-ratio: 16 / 9;
  overflow: hidden;
  border-radius: var(--card-radius);
  margin-bottom: var(--space-8);
}

.c-related__card-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.c-related__card-body {
  padding: 0;
}

.c-related__card-title {
  font-size: 15px;
  font-weight: 700;
  line-height: 1.5;
  color: var(--color-text);
  margin: var(--space-4) 0 0 0;
}

.c-related__card-title-text {
  background-image: linear-gradient(currentColor, currentColor);
  background-position: 0 100%;
  background-repeat: no-repeat;
  background-size: 0% 1px;
  transition: background-size var(--transition-normal);
}

/* ===== セミナー詳細 タブレット（768px〜1024px） ===== */
@media screen and (min-width: 768px) and (max-width: 1024px) {
  .c-related__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

/* ===== セミナー詳細 モバイル（767px以下） ===== */
@media screen and (max-width: 767px) {
  .c-article-content__body {
    font-size: 15px;
    line-height: 1.9;
  }

  .c-article-content__body h1 {
    margin-top: 53px;
    font-size: 20px;
  }

  .c-article-content__body h1::after {
    height: 5px;
    margin: 22px 0 20px;
  }

  .c-article-content__body h2 {
    margin-top: var(--space-40);
    font-size: clamp(16px, 1.5vw + 12px, 18px);
  }

  .c-article-content__body h2::after {
    height: 3px;
    margin: var(--space-16) 0 20px;
  }

  .c-article-content__body h3 {
    margin-top: var(--space-32);
    font-size: 17px;
    padding-left: 12px;
  }

  .c-article-content__body blockquote {
    padding: var(--space-16) 20px;
  }

  .c-event-info__table dt,
  .c-event-info__table dd {
    width: 100%;
    display: block;
  }

  .c-speaker {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

  .c-speaker__meta {
    justify-content: center;
  }

  .c-related__grid {
    grid-template-columns: 1fr;
  }

  .c-seminar-form__iframe {
    height: 1200px;
  }

  .c-seminar-cta__btn {
    width: 100%;
    min-width: auto;
  }

  .c-seminar-cta__btn:hover {
    transform: none;
    box-shadow: none;
  }

  .c-related__card:hover .c-related__card-title-text {
    background-size: 0% 1px;
  }
}

/* ========================================
   ニュースページ（/news/）
   ======================================== */

/* ヒーロー説明文: 他ページと統一（17px） */
.news-page .c-page-header .c-section__lead {
    font-size: 17px;
    font-weight: 500;
    opacity: 0.95;
}

.news-page {
    color: var(--color-text);
    line-height: var(--line-height-body);
}

/* ヒーロー画像サイズ調整（セミナーページと統一） */
.news-page .c-page-header__hero-img {
    height: 30%;
}

/* セクション共通 */
.news-section {
    padding: var(--space-96) 0;
}

.news-section--gray {
    background-color: var(--color-bg-gray);
}

.news-section--white {
    background-color: var(--color-white);
}

.news-container {
    max-width: var(--container-width);
    margin: 0 auto;
    padding: 0 var(--container-padding);
}

/* ニュースリスト */
.news-list {
    display: flex;
    flex-direction: column;
    gap: 0;
}

.news-item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-24);
    padding: var(--space-24) 0;
    border-bottom: 1px solid var(--color-border);
    text-decoration: none;
    color: inherit;
    transition: background var(--transition-normal);
}

.news-item:first-child {
    padding-top: 0;
}

.news-item:hover {
    opacity: 1;
}

.news-item__date {
    font-size: var(--font-size-small);
    line-height: 1.6;
    color: var(--color-text-light);
    min-width: 100px;
    flex-shrink: 0;
}

.news-item__category {
    display: inline-block;
    font-size: var(--font-size-xsmall);
    font-weight: 600;
    padding: var(--space-4) var(--space-16);
    border-radius: 20px;
    background: var(--color-primary-light);
    color: var(--color-primary);
    min-width: 80px;
    text-align: center;
    flex-shrink: 0;
}

.news-item__title {
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: 1.6;
    color: var(--color-text);
    flex: 1;
    margin: 0;
}

.news-item__title .title-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-position: left calc(100% - 1px);
    background-size: 0% 1px;
    background-repeat: no-repeat;
    transition: background-size var(--transition-normal);
}

.news-item:hover .news-item__title .title-text {
    background-size: 100% 1px;
}

/* ページネーション */
.news-pagination {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: var(--space-8);
    margin-top: var(--space-48);
}

.news-pagination a,
.news-pagination span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 40px;
    height: 40px;
    padding: 0 var(--space-16);
    font-size: var(--font-size-small);
    text-decoration: none;
    border-radius: var(--card-radius);
    transition: all var(--transition-normal);
}

.news-pagination a {
    background: var(--color-white);
    color: var(--color-text);
    border: 1px solid var(--color-border);
}

.news-pagination a:hover {
    background: var(--color-primary);
    color: var(--color-white);
    border-color: var(--color-primary);
}

.news-pagination span.current {
    background: var(--color-primary);
    color: var(--color-white);
    border: 1px solid var(--color-primary);
}

.news-pagination span.dots {
    border: none;
    background: transparent;
}

/* 空状態 */
.news-empty {
    text-align: center;
    padding: var(--space-64) var(--container-padding);
    color: var(--color-text-light);
}

/* ===== ニュースページ タブレット・モバイル ヒーロー中央揃え ===== */
@media screen and (max-width: 1024px) {
    .news-page .c-page-header__body {
        text-align: center;
    }
}

/* ===== ニュースページ モバイル（767px以下） ===== */
@media screen and (max-width: 767px) {
    .news-item {
        flex-direction: column;
        gap: var(--space-8);
    }
    .news-item__date {
        min-width: auto;
    }
    /* ホバーアニメーション無効化 */
    .news-item__title .title-text {
        transition: none;
    }
    .news-item:hover .news-item__title .title-text {
        background-size: 0% 1px;
    }
    .news-pagination a:hover {
        transform: none;
        box-shadow: none;
    }
}

/* ===== ページネーション共通 狭幅対応（480px以下） ===== */
@media screen and (max-width: 480px) {
    /* ニュース */
    .news-pagination,
    /* セミナー・イベント */
    .seminar-pagination,
    /* ブログTOP・カテゴリ */
    .c-blog-pagination,
    /* お客様の声 */
    .c-voice-pagination {
        gap: var(--space-4);
        padding: 0 var(--space-16);
    }

    .news-pagination a,
    .news-pagination span,
    .seminar-pagination a,
    .seminar-pagination span,
    .c-blog-pagination a,
    .c-blog-pagination span {
        min-width: 36px;
        height: 36px;
        padding: 0 8px;
        font-size: var(--font-size-xsmall);
    }

    /* お客様の声（BEM命名） */
    .c-voice-pagination__item,
    .c-voice-pagination__dots {
        min-width: 36px;
        height: 36px;
        padding: 0 8px;
        font-size: var(--font-size-xsmall);
    }
}

/* ========================================
   ニュース記事詳細ページ（/news/記事/）
   ======================================== */

.news-detail-page {
    color: var(--color-text);
    line-height: var(--line-height-body);
}

/* ===== 記事ヘッダー ===== */
.news-article-header {
    padding: var(--space-48) 0 var(--space-32);
    background: var(--color-white);
}

.news-article-meta {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    margin-bottom: var(--space-16);
    flex-wrap: nowrap;
    overflow: hidden;
}

.news-article-date {
    font-size: var(--font-size-small);
    color: var(--color-text-muted);
}

.news-article-category {
    display: inline-block;
    padding: 6px 12px;
    font-size: var(--font-size-small);
    color: var(--color-primary);
    background: var(--color-white);
    border: 1px solid var(--color-primary);
    border-radius: var(--card-radius);
    font-weight: 500;
    line-height: 1;
    text-decoration: none;
}

.news-article-category::before {
    content: "#";
    margin-right: 2px;
}

.news-article-category:hover {
    text-decoration: none;
}

.news-article-title {
    font-size: clamp(22px, 2vw + 14px, 28px);
    font-weight: 700;
    line-height: 1.5;
    color: var(--color-text);
    margin: 0;
}

/* ===== 記事本文 ===== */
.news-article-body {
    padding: var(--space-48) 0 var(--space-64);
    background: var(--color-white);
}

.news-article-content {
    max-width: 800px;
    margin: 0 auto;
}

.news-article-eyecatch {
    margin-bottom: var(--space-32);
}

.news-article-eyecatch img {
    width: 100%;
    height: auto;
    border-radius: 8px;
}

.news-article-text {
    font-size: var(--font-size-body);
    line-height: 2;
}

.news-article-text p {
    margin-bottom: 1.5em;
}

.news-article-text h2 {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    margin: 2em 0 1em;
    padding-bottom: var(--space-8);
    border-bottom: 2px solid var(--color-primary);
}

.news-article-text h3 {
    font-size: 18px;
    font-weight: 700;
    margin: 1.5em 0 0.8em;
}

.news-article-text a {
    color: var(--color-primary);
}

.news-article-text img {
    max-width: 100%;
    height: auto;
}

.news-article-text ul,
.news-article-text ol {
    margin: 1em 0;
    padding-left: 1.5em;
}

.news-article-text li {
    margin-bottom: 0.5em;
}

/* ===== お問い合わせ・会社概要セクション ===== */
.news-footer-info {
    margin-top: var(--space-48);
    padding-top: var(--space-48);
    border-top: 1px solid var(--color-border);
}

.news-footer-item {
    background: var(--color-bg-gray);
    padding: var(--space-24);
    border-radius: 8px;
    margin-bottom: var(--space-24);
}

.news-footer-item:last-child {
    margin-bottom: 0;
}

.news-footer-title {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: var(--space-16);
    padding-bottom: 12px;
    border-bottom: 3px solid var(--color-primary);
}

.news-footer-message {
    margin-bottom: var(--space-16);
    color: var(--color-text);
}

.news-footer-list {
    display: flex;
    flex-wrap: wrap;
    margin: 0;
}

.news-footer-list dt,
.news-footer-list dd {
    padding: 12px var(--space-16);
    margin: 0;
    border-bottom: 1px solid var(--color-border);
}

.news-footer-list dt {
    width: 30%;
    background: var(--color-white);
    font-weight: 600;
    color: var(--color-text);
}

.news-footer-list dd {
    width: 70%;
    background: var(--color-white);
    color: var(--color-text);
}

.news-footer-list dd a {
    color: var(--color-primary);
}

/* ===== 一覧に戻るボタン ===== */
.news-back-btn {
    text-align: center;
    padding: var(--space-48) 0;
    background: var(--color-white);
}

.news-back-btn a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-8);
    background: var(--color-primary);
    color: var(--color-white);
    font-size: var(--font-size-body);
    font-weight: 500;
    padding: 14px var(--space-40);
    border-radius: var(--card-radius);
    text-decoration: none;
    transition: background var(--transition-normal);
    min-width: 280px;
}

.news-back-btn a:hover {
    background: var(--color-primary-dark);
}

.news-back-btn a span {
    transition: transform var(--transition-normal);
}

.news-back-btn a:hover span {
    transform: translateX(4px);
}

/* ===== ニュース記事 レスポンシブ ===== */

/* モバイル */
@media screen and (max-width: 767px) {
    .news-article-header {
        padding: var(--space-32) 0 var(--space-24);
    }

    .news-article-body {
        padding: var(--space-32) 0 var(--space-48);
    }

    .news-footer-list dt,
    .news-footer-list dd {
        width: 100%;
    }

    .news-footer-list dt {
        border-bottom: none;
    }

    .news-back-btn a {
        width: 100%;
        max-width: 320px;
        min-width: auto;
    }

    .news-back-btn a,
    .news-back-btn a span {
        transition: none;
    }

    .news-back-btn a:hover span {
        transform: none;
    }
}

/* ========================================
   選ばれる理由（/why/）ページ
   page-why.php インラインCSS から移行
   ======================================== */

/* --- ページ固有変数 --- */
.why-page {
    --why-primary-light: #e8f4fc;
}

/* --- ベーススタイル --- */
.why-page {
    font-family: var(--font-family);
    color: var(--color-text);
    line-height: 1.8;
}

.why-page * {
    box-sizing: border-box;
}

/* セクション共通 */
.why-section {
    padding: var(--space-80) 0;
}

.why-section--gray {
    background-color: var(--color-bg-gray);
}

.why-section--white {
    background-color: var(--color-white);
}

.why-container {
    max-width: var(--container-width);
    margin: 0 auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
    box-sizing: border-box;
}

@media screen and (min-width: 1025px) {
    .why-container {
        padding-left: 0;
        padding-right: 0;
    }
}

@media screen and (min-width: 1025px) and (max-width: 1280px) {
    .why-container {
        padding-left: var(--space-16);
        padding-right: var(--space-16);
    }
}

.why-section-title {
    font-size: var(--font-size-section-title);
    font-weight: 700;
    text-align: center;
    margin-bottom: var(--space-48);
    letter-spacing: 0.02em;
}

.why-section-title--white {
    color: #ffffff;
}

.why-section-title__sub {
    font-weight: 400;
}

/* ===== 1. ファーストビュー (.why-fv-new) ===== */
.why-fv-new {
    background: var(--gradient-hero);
    position: relative;
    overflow: hidden;
    padding: 0;
}

.why-fv-new__breadcrumb {
    font-size: 12px;
    color: #666;
    margin-bottom: 60px;
    padding: 25px 0 0;
    padding-left: max(calc((100% - var(--container-width)) / 2 + var(--container-padding)), var(--container-padding));
    position: relative;
    z-index: 1;
}

.why-fv-new__breadcrumb a {
    color: #666;
    text-decoration: none;
}

.why-fv-new__breadcrumb a:hover {
    color: var(--color-primary);
}

.why-fv-new__breadcrumb span {
    margin: 0 6px;
}

.why-fv-new__main {
    display: flex;
    align-items: center;
    justify-content: space-between;
    height: var(--hero-height);
    position: relative;
    z-index: 1;
    max-width: var(--container-width);
    margin: 0 auto;
    padding-left: var(--container-padding);
    padding-right: var(--container-padding);
    box-sizing: border-box;
    gap: var(--space-64);
}

@media screen and (min-width: 1025px) {
    .why-fv-new__main {
        padding-left: 0;
        padding-right: 0;
    }
}

@media screen and (min-width: 1025px) and (max-width: 1280px) {
    .why-fv-new__main {
        padding-left: var(--space-16);
        padding-right: var(--space-16);
    }
}

.why-fv-new__left {
    flex: 1;
    max-width: 600px;
    box-sizing: border-box;
}

.why-fv-new__title {
    font-size: clamp(32px, 5vw, 42px);
    font-weight: 700;
    color: #fff;
    margin: 0 0 var(--space-24) 0;
    line-height: var(--line-height-heading);
}

.why-fv-new__desc {
    font-size: 17px;
    font-weight: 500;
    color: #fff;
    opacity: 0.95;
    margin: 0 0 var(--space-32) 0;
    line-height: var(--line-height-body);
    max-width: 500px;
}

.why-fv-new__buttons {
    display: flex;
    gap: var(--space-24);
    max-width: 500px;
}

.why-fv-new__btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-4);
    flex: 1;
    padding: var(--space-16) var(--space-40);
    background: transparent;
    color: #fff;
    border: 1px solid rgba(255, 255, 255, 0.6);
    border-radius: var(--btn-radius);
    font-size: 17px;
    font-weight: 600;
    text-decoration: none;
    transition: background var(--transition-normal), border-color var(--transition-normal);
}

.why-fv-new__btn::after {
    content: '\2192';
    font-size: 17px;
}

.why-fv-new__btn:hover {
    background: rgba(255, 255, 255, 0.15);
    border-color: rgba(255, 255, 255, 0.8);
}

.why-fv-new__right {
    flex: 1;
    box-sizing: border-box;
    position: relative;
}

/* ヒーロー右側カード */
.why-hero-card {
    background: #fff;
    border-radius: var(--card-radius);
    padding: 2px var(--space-24);
    color: var(--color-text);
    box-shadow: 0 4px 20px rgba(0,0,0,0.15);
    width: 100%;
    margin-left: auto;
}

.why-hero-card__title {
    font-size: 20px;
    font-weight: 700;
    margin-bottom: var(--space-8);
    color: #222;
}

.why-hero-card__desc {
    font-size: 12px;
    color: var(--color-text-light);
    line-height: 1.7;
    margin-bottom: 10px;
}

.why-hero-card__chart {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-8);
    margin-bottom: 10px;
}

.why-hero-card__pie {
    width: 140px;
    height: 140px;
    border-radius: 50%;
    background: conic-gradient(
        #0067C0 0deg 292deg,
        #93c5fd 292deg 360deg
    );
    display: flex;
    align-items: center;
    justify-content: center;
    position: relative;
}

.why-hero-card__pie::before {
    content: '';
    position: absolute;
    width: 88px;
    height: 88px;
    background: #fff;
    border-radius: 50%;
}

.why-hero-card__pie-inner {
    position: relative;
    z-index: 1;
    text-align: center;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.why-hero-card__pie-label {
    font-size: 10px;
    font-weight: 700;
    color: var(--color-primary);
}

.why-hero-card__pie-value {
    font-size: 28px;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1.1;
    margin-left: var(--space-4);
}

.why-hero-card__pie-unit {
    font-size: 13px;
}

.why-hero-card__legend {
    display: flex;
    justify-content: center;
    gap: var(--space-16);
    font-size: 11px;
    color: var(--color-text-light);
}

.why-hero-card__legend-item {
    display: flex;
    align-items: center;
    gap: 5px;
}

.why-hero-card__legend-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
}

.why-hero-card__legend-dot--satisfied { background: #0067C0; }
.why-hero-card__legend-dot--normal { background: #93c5fd; }

.why-hero-card__recommend {
    background: var(--color-bg-gray);
    border-radius: 6px;
    padding: 12px;
    display: flex;
    align-items: center;
    gap: 10px;
}

.why-hero-card__recommend-arrow {
    color: var(--color-primary);
    display: flex;
    align-items: center;
}

.why-hero-card__recommend-arrow svg {
    width: 18px;
    height: 14px;
}

.why-hero-card__recommend-text {
    flex: 1;
    font-size: var(--font-size-body);
    font-weight: 600;
    color: var(--color-text);
    line-height: var(--line-height-tight);
}

.why-hero-card__recommend-value {
    font-size: 32px;
    font-weight: 700;
    color: var(--color-primary);
    padding-left: 12px;
}

.why-hero-card__recommend-unit {
    font-size: 12px;
}

.why-hero-card__note {
    font-size: 10px;
    color: #999;
    margin-top: var(--space-8);
    text-align: right;
}

/* FV右側 - 顧客の声ラベル */
.why-fv-new__voice-label {
    font-size: 17px;
    letter-spacing: 0.15em;
    color: rgba(255,255,255,0.8);
    margin-bottom: var(--space-24);
    font-weight: 400;
}

.why-fv-new__voice-item {
    font-size: 22px;
    line-height: 1.8;
    color: #fff;
    margin-bottom: 18px;
    font-weight: 500;
    font-style: italic;
}

.why-fv-new__voice-item::before {
    content: '―';
    color: rgba(255,255,255,0.6);
    margin-right: 10px;
}

.why-fv-new__voice-item .highlight {
    font-weight: 700;
    font-size: 23px;
}

/* ===== フリップカード ===== */
.why-fv-new__flip-container {
    position: relative;
    width: 100%;
    max-width: 400px;
    height: 340px;
    background: #fff;
    border-radius: 16px;
}

.why-fv-new__flip-card {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    opacity: 0;
    transition: opacity 1s ease-in-out;
    pointer-events: none;
}

.why-fv-new__flip-card[data-state="active"] {
    opacity: 1;
    pointer-events: auto;
}

/* 表面：円グラフ */
.why-fv-new__front {
    background: #fff;
    border-radius: 16px;
    padding: 28px;
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    text-align: center;
    cursor: pointer;
    height: 100%;
    box-sizing: border-box;
}

.why-fv-new__front-title {
    font-size: 18px;
    font-weight: 600;
    color: #1a1a1a;
    margin-bottom: 20px;
}

.why-fv-new__pie {
    position: relative;
    width: 160px;
    height: 160px;
    margin: 0 auto var(--space-16);
}

.why-fv-new__pie-chart {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: conic-gradient(
        #0067C0 0% 81%,
        #00a0e9 81% 100%
    );
    display: flex;
    align-items: center;
    justify-content: center;
}

.why-fv-new__pie-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 110px;
    height: 110px;
    background: #fff;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.why-fv-new__pie-label {
    font-size: 14px;
    color: var(--color-primary);
    font-weight: 700;
}

.why-fv-new__pie-value {
    font-size: 40px;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1;
}

.why-fv-new__pie-unit {
    font-size: 20px;
}

.why-fv-new__legend {
    display: flex;
    justify-content: center;
    gap: var(--space-16);
    margin-bottom: 12px;
    flex-wrap: wrap;
}

.why-fv-new__legend-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 12px;
    color: var(--color-text-light);
}

.why-fv-new__legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.why-fv-new__legend-dot--satisfied { background: #0067C0; }
.why-fv-new__legend-dot--normal { background: #00a0e9; }
.why-fv-new__legend-dot--unsatisfied { background: #e74c3c; }

.why-fv-new__front-note {
    font-size: 11px;
    color: #999;
}

/* 裏面：6つの仕組み */
.why-fv-new__back {
    background: #fff;
    border-radius: 16px;
    padding: var(--space-24);
    box-shadow: 0 4px 20px rgba(0,0,0,0.08);
    cursor: pointer;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
}

.why-fv-new__back-title {
    font-size: 18px;
    font-weight: 600;
    color: #1a1a1a;
    margin-bottom: var(--space-16);
    text-align: center;
}

.why-fv-new__features {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
    margin-top: auto;
}

.why-fv-new__feature {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    background: #f8fafc;
    border-radius: 8px;
    transition: background var(--transition-fast);
}

.why-fv-new__feature:hover {
    background: #eef4fa;
}

.why-fv-new__feature-icon {
    width: 28px;
    height: 28px;
    flex-shrink: 0;
    color: var(--color-primary);
}

.why-fv-new__feature-text {
    font-size: 12px;
    color: var(--color-text);
    line-height: var(--line-height-tight);
    font-weight: 500;
}

/* インジケーター */
.why-fv-new__indicators {
    display: flex;
    justify-content: center;
    gap: var(--space-8);
    margin-top: var(--space-16);
}

.why-fv-new__indicator {
    width: 10px;
    height: 10px;
    border-radius: 50%;
    background: #ccc;
    cursor: pointer;
    transition: background var(--transition-normal);
}

.why-fv-new__indicator.active {
    background: var(--color-primary);
}

/* ===== 2. クライアントロゴバー (.why-client-logos) ===== */
.why-client-logos {
    background: #fff;
    padding: var(--space-24) 0;
    border-top: 1px solid var(--color-border);
    border-bottom: 1px solid var(--color-border);
}

.why-client-logos__inner {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 var(--space-40);
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    align-items: center;
    gap: var(--space-40);
}

.why-client-logos__inner img {
    height: 24px;
    width: auto;
}


/* ===== 4. Promise (.why-promise-new) ===== */
.why-promise-new {
    background: #fff;
    padding: var(--space-80) 0;
    overflow: hidden;
    position: relative;
    min-height: 500px;
}

.why-promise-new__content {
    position: relative;
    z-index: 2;
    max-width: 700px;
}

.why-promise-new__title {
    font-size: var(--font-size-section-title);
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: var(--space-24);
}

.why-promise-new__keyword {
    font-size: 24px;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: var(--space-32);
    line-height: 1.5;
}

.why-promise-new__desc {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.9;
    margin-bottom: var(--space-24);
}

.why-promise-new__desc:last-of-type {
    margin-bottom: var(--space-40);
}

.why-promise-new__highlight {
    font-weight: 700;
    color: var(--color-primary);
    margin: 0 2px;
}

.why-promise-new__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-8);
    background: var(--color-primary);
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    height: var(--btn-height);
    width: 280px;
    padding: 0;
    line-height: 1;
    text-decoration: none;
    border-radius: var(--btn-radius);
    border: none;
    box-shadow: none;
    transition: background-color var(--transition-normal);
}

.why-promise-new__cta:hover {
    background: var(--color-primary-dark);
    color: #fff;
}

.why-promise-new__cta span {
    display: inline-block;
}

.why-promise-new__image {
    position: absolute;
    right: 0;
    bottom: -15px;
    z-index: 1;
    width: clamp(500px, 65vw, 70%);
    max-width: calc(100% - 20px);
    pointer-events: none;
}

.why-promise-new__image img {
    display: block;
    width: 100%;
    height: auto;
}

/* ===== 5. Data Section (.why-data-*) ===== */
.why-data-section {
    background: var(--color-bg-gray);
    padding: var(--space-80) 0;
}

.why-data-section__header {
    margin-bottom: var(--space-48);
}

.why-data-section__title {
    font-size: var(--font-size-section-title);
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: var(--space-24);
}

.why-data-section__desc {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.9;
}

.why-data-section__desc-bold {
    font-weight: 700;
    color: var(--color-text);
    display: block;
    margin-bottom: var(--space-4);
}

/* 最新の実績 - 2カラムレイアウト */
.why-data-latest {
    margin-bottom: var(--space-64);
    max-width: 100%;
    overflow: hidden;
}

.why-data-latest__title {
    font-size: 24px;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: var(--space-24);
}

.why-data-latest__grid {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    grid-template-rows: auto auto;
    gap: var(--space-24);
}

.why-data-latest__card--left-top {
    grid-column: 1;
    grid-row: 1;
}

.why-data-latest__card--left-bottom {
    grid-column: 1;
    grid-row: 2;
}

.why-data-latest__card--center {
    grid-column: 2;
    grid-row: 1 / 3;
    display: flex;
    flex-direction: column;
}

.why-data-latest__card--center .why-data-latest__chart-wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
    margin-bottom: 0;
    padding-bottom: 16px;
}
.why-data-latest__card--center .why-data-latest__pie {
    margin-top: auto;
}
.why-data-latest__card--center .why-data-latest__recommend {
    margin-top: auto;
}

.why-data-latest__card--center .why-data-latest__legend {
    margin-bottom: 12px;
}

.why-data-latest__card--center .why-data-latest__note {
    text-align: left;
    width: fit-content;
    margin-left: auto;
    margin-top: 4px;
}

.why-data-latest__card {
    background: #fff;
    border-radius: var(--card-radius);
    padding: 28px;
    box-shadow: var(--card-shadow);
}

.why-data-latest__card-title {
    font-size: var(--font-size-card-title);
    font-weight: 700;
    color: var(--color-text);
    margin-top: 0;
    margin-bottom: var(--space-16);
    line-height: var(--line-height-tight);
    letter-spacing: -0.04em;
}

.why-data-latest__card-desc {
    font-size: var(--font-size-body);
    color: var(--color-text-light);
    line-height: var(--line-height-body);
    margin-top: 0;
    margin-bottom: 8px;
}

/* NPS カード - 横並びstat-box */
.why-data-latest__stat-box {
    background: #f8f9fa;
    border-radius: var(--card-radius);
    padding: 20px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-16);
}

.why-data-latest__stat-left {
    flex: 1;
}

.why-data-latest__stat-label {
    font-size: 20px;
    font-weight: 500;
    color: #222;
    margin-bottom: 2px;
    line-height: 1.2;
}

.why-data-latest__stat-year {
    font-size: 14px;
    color: #888;
    line-height: 1.2;
}

.why-data-latest__stat-right {
    flex-shrink: 0;
    text-align: right;
}

.why-data-latest__stat-value {
    font-size: 40px;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1;
}

.why-data-latest__stat-unit {
    font-size: 20px;
}

/* 円グラフカード - コンパクトサイズ */
.why-data-latest__chart-wrap {
    margin-bottom: var(--space-16);
}

.why-data-latest__pie {
    position: relative;
    width: 240px;
    height: 240px;
    margin: 0 auto 12px;
}

.why-data-latest__pie-chart {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: conic-gradient(
        #0067C0 0% 81%,
        #A0C4E8 81% 100%
    );
}

.why-data-latest__pie-center {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 168px;
    height: 168px;
    background: #fff;
    border-radius: 50%;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
}

.why-data-latest__pie-label {
    font-size: 14px;
    color: var(--color-primary);
    font-weight: 700;
}

.why-data-latest__pie-value {
    font-size: 48px;
    font-weight: 700;
    color: var(--color-primary);
    line-height: 1;
    margin-left: var(--space-4);
}

.why-data-latest__pie-unit {
    font-size: 20px;
}

.why-data-latest__legend {
    display: flex;
    justify-content: center;
    gap: var(--space-16);
    font-size: 12px;
    color: var(--color-text-light);
    margin-bottom: var(--space-16);
}

.why-data-latest__legend-item {
    display: flex;
    align-items: center;
    gap: var(--space-4);
}

.why-data-latest__legend-dot {
    width: 10px;
    height: 10px;
    border-radius: 50%;
}

.why-data-latest__legend-dot--blue { background: #0067C0; }
.why-data-latest__legend-dot--lightblue { background: #A0C4E8; }

.why-data-latest__recommend {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: var(--space-16) 20px;
    background: #f8f9fa;
    border-radius: var(--card-radius);
}

.why-data-latest__recommend-arrow {
    color: var(--color-primary);
    display: flex;
    align-items: center;
}

.why-data-latest__recommend-arrow svg {
    width: 22px;
    height: 18px;
}

.why-data-latest__recommend-text {
    flex: 1;
    font-size: 20px;
    font-weight: 500;
    color: #222;
    line-height: 1;
    display: flex;
    align-items: center;
}

.why-data-latest__recommend-value {
    font-size: 40px;
    font-weight: 700;
    color: var(--color-primary);
}

.why-data-latest__recommend-unit {
    font-size: 20px;
}

.why-data-latest__note {
    font-size: 11px;
    color: #999;
    margin-top: 12px;
    margin-bottom: 0;
}
.why-data-latest__note + .why-data-latest__note {
    margin-top: 0;
}
.why-data-latest__note a,
.why-data-latest__note a:visited {
    color: #0067C0;
}

/* 評価の軌跡 */
.why-data-history {
    max-width: 100%;
    overflow: hidden;
}

.why-data-history__title {
    font-size: 24px;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: var(--space-16);
}

.why-data-history__desc {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.9;
    margin-bottom: var(--space-32);
}

.why-data-history__desc strong {
    font-weight: 700;
    color: var(--color-text);
    display: block;
    margin-bottom: var(--space-4);
}

/* ピル型タブ */
.why-data-tabs__nav {
    display: flex;
    justify-content: center;
    gap: var(--space-8);
    margin-bottom: var(--space-40);
    background: #e8e8e8;
    padding: 6px;
    border-radius: 8px;
    width: fit-content;
    margin-left: auto;
    margin-right: auto;
}

.why-data-tabs__btn {
    padding: 12px 28px;
    font-size: 14px;
    font-weight: 600;
    background: transparent;
    border: none;
    cursor: pointer;
    transition: all var(--transition-normal);
    color: var(--color-text-light);
    border-radius: 6px;
}

.why-data-tabs__btn:hover {
    color: var(--color-text);
    background: rgba(255,255,255,0.5);
}

.why-data-tabs__btn.active {
    background: var(--color-primary);
    color: #fff;
}

.why-data-tabs__content {
    display: none;
    max-width: 100%;
    padding: 6px;
    margin: -6px;
}

.why-data-tabs__content.active {
    display: block;
}

/* カードグリッド */
.why-data-cards {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-24);
    margin-bottom: 20px;
    max-width: 100%;
    box-sizing: border-box;
}

.why-data-card {
    background: #fff;
    border-radius: var(--card-radius);
    padding: 28px;
    box-sizing: border-box;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-width: 0;
    box-shadow: var(--card-shadow);
}

.why-data-card__title {
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: var(--space-16);
}

.why-data-card__title .asterisk {
    color: #e74c3c;
    font-size: 12px;
    vertical-align: super;
}

.why-data-card__metrics {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    margin-bottom: 10px;
}

.why-data-card__label {
    font-size: 12px;
    color: var(--color-text-light);
    margin-bottom: var(--space-4);
}

.why-data-card__value {
    font-size: 48px;
    font-weight: 700;
    line-height: 1;
}

.why-data-card__value.blue { color: var(--color-primary); }
.why-data-card__value.green { color: #10b981; }
.why-data-card__value.gray { color: #6b7280; }

.why-data-card__value .unit {
    font-size: 24px;
}

.why-data-card__cumulative .why-data-card__value {
    font-size: 28px;
    color: var(--color-text-light);
}

.why-data-card__cumulative .why-data-card__value .unit {
    font-size: 16px;
}

.why-data-card__desc {
    font-size: 13px;
    color: var(--color-text-light);
    margin-bottom: var(--space-16);
    min-height: 36px;
}

.why-data-card__chart {
    height: 160px;
    margin-bottom: 10px;
    margin-top: auto;
    max-width: 100%;
    overflow: hidden;
}

.why-data-card__chart canvas {
    max-width: 100%;
}

.why-data-card__footnote {
    font-size: 11px;
    color: #999;
}

.why-data-card__footnote::before {
    content: "* ";
}

/* 顧客構成タブ */
.why-data-structure__card {
    background: #fff;
    border-radius: var(--card-radius);
    padding: var(--space-40) 28px;
    box-sizing: border-box;
    overflow: hidden;
    box-shadow: var(--card-shadow);
}

.why-data-structure__title {
    text-align: center;
    margin-bottom: var(--space-16);
    font-size: 18px;
    font-weight: 700;
    color: var(--color-text);
}

.why-data-structure__desc {
    text-align: center;
    color: var(--color-text-light);
    margin-bottom: 30px;
    font-size: 14px;
}

.why-data-flow {
    display: flex;
    align-items: stretch;
    max-width: 700px;
    margin: 0 auto;
    height: 250px;
}

.why-data-flow__nps {
    width: 60px;
    height: 100%;
    min-height: 0;
    display: flex;
    flex-direction: column;
    overflow: hidden;
}

.why-data-flow__nps-item {
    display: flex;
    align-items: center;
    justify-content: center;
    flex: 1;
    min-height: 0;
    font-size: 12px;
    font-weight: 700;
    color: #fff;
    border-bottom: 1px solid rgba(255, 255, 255, 0.3);
}

.why-data-flow__nps-item:last-child {
    border-bottom: none;
}

.why-data-flow__nps-item.promoter { background: var(--color-primary); }
.why-data-flow__nps-item.passive { background: #93c5fd; }
.why-data-flow__nps-item.detractor { background: #e5e7eb; color: var(--color-text-light); border-bottom-color: rgba(0, 0, 0, 0.08); }

.why-data-flow__diagram {
    flex: 1;
    margin: 0 10px;
}

/* style-new.cssのsvg[viewBox]アイコン制約を解除（グラフ用SVG） */
.why-data-flow__diagram svg {
    width: 100%;
    height: 100%;
    max-width: none;
    max-height: none;
}

.why-data-flow__composition {
    width: 120px;
    height: 100%;
    display: flex;
    flex-direction: column;
    border-radius: 3px;
    overflow: hidden;
}

.why-data-flow__segment {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    color: #fff;
}

.why-data-flow__segment.promoter { background: var(--color-primary); height: 130px; }
.why-data-flow__segment.passive { background: #93c5fd; height: 120px; }

.why-data-flow__segment-value {
    font-size: 24px;
    font-weight: 700;
}

.why-data-flow__segment-label {
    font-size: 12px;
}

.why-data-structure__note {
    text-align: center;
    color: var(--color-text-light);
    margin-top: 30px;
    font-size: 14px;
}

.why-data-structure__note strong {
    color: var(--color-primary);
}

/* ===== 6. Mechanism (.why-mechanism) ===== */
.why-mechanism {
    padding: var(--space-80) 0;
    background-color: #fff;
}

.why-mechanism .why-section-title {
    text-align: left;
    margin-bottom: var(--space-16);
}

.why-mechanism__header {
    margin-bottom: var(--space-48);
}

.why-mechanism__subtitle {
    font-size: 24px;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: var(--space-24);
    line-height: 1.5;
}

.why-mechanism__intro {
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: 1.9;
    color: var(--color-text);
}

/* 6つの仕組みアイテム */
.why-mechanism__item {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 50px;
    align-items: stretch;
    padding: 50px 0;
    border-bottom: 1px solid var(--color-border);
}

.why-mechanism__item:last-child {
    border-bottom: none;
    padding-bottom: 0;
}

.why-mechanism__item--reverse {
    direction: rtl;
}

.why-mechanism__item--reverse > * {
    direction: ltr;
}

.why-mechanism__content {
    display: flex;
    flex-direction: column;
}

.why-mechanism__title-row {
    display: flex;
    align-items: center;
    gap: var(--space-16);
    margin-bottom: var(--space-16);
}

.why-mechanism__number {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    min-width: 52px;
    background: var(--color-primary);
    color: #fff;
    border-radius: 50%;
    font-weight: 700;
    font-size: 22px;
}

.why-mechanism__title {
    font-size: 20px;
    font-weight: 700;
    color: var(--color-text);
    line-height: 1.6;
    margin: 0;
}

.why-mechanism__desc {
    font-size: var(--font-size-body);
    font-weight: 500;
    line-height: 1.9;
    color: var(--color-text);
    padding-left: 0;
}

.why-mechanism__image {
    width: 100%;
    height: 100%;
    border-radius: 0;
    overflow: hidden;
    display: flex;
    align-items: center;
    justify-content: center;
}

.why-mechanism__image img {
    max-width: 100%;
    max-height: 100%;
    width: auto;
    height: auto;
    object-fit: contain;
}

.why-mechanism__image-placeholder {
    color: #999;
    font-size: 14px;
}

/* ===== 7. Testimonials (.why-testimonials) ===== */
.why-testimonials {
    padding: var(--space-80) 0;
    background-color: var(--color-bg-gray);
}

.why-testimonials__header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: var(--space-32);
}

.why-testimonials__header .why-section-title {
    text-align: left;
    margin-bottom: 0;
}

.why-testimonials__nav-group {
    display: flex;
    align-items: center;
    gap: var(--space-16);
}

.why-testimonials__counter {
    font-size: 14px;
    color: var(--color-text-light);
}

.why-testimonials__counter span {
    font-weight: 700;
    color: var(--color-primary);
}

.why-testimonials__navs {
    display: flex;
    gap: var(--space-8);
}

.why-testimonials__nav {
    width: 40px;
    height: 40px;
    background: #fff;
    border: 1px solid var(--color-border);
    border-radius: var(--card-radius);
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: center;
    transition: all var(--transition-normal);
}

.why-testimonials__nav:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

.why-testimonials__nav svg {
    width: 18px;
    height: 18px;
}

.why-testimonials__slider {
    overflow: hidden;
}

.why-testimonials__track {
    display: flex;
    gap: var(--space-24);
    transition: transform 0.4s ease;
    position: relative;
}

.why-testimonial {
    flex: 0 0 calc((100% - var(--space-48)) / 3);
    background: #fff;
    border-radius: var(--card-radius);
    padding: 28px 28px 18px 28px;
    position: relative;
    box-shadow: var(--card-shadow);
    overflow: hidden;
    display: flex;
    flex-direction: column;
    min-height: 280px;
}

.why-testimonial::before {
    content: '\275D';
    position: absolute;
    top: -10px;
    left: 10px;
    font-size: 100px;
    color: var(--color-primary);
    opacity: 0.08;
    line-height: 1;
    pointer-events: none;
}

.why-testimonial__text {
    font-size: 14px;
    line-height: 1.9;
    color: var(--color-text);
    margin-bottom: 10px;
    padding-top: var(--space-40);
    position: relative;
    z-index: 1;
    flex: 1;
}

.why-testimonial__footer {
    position: relative;
    z-index: 1;
    text-align: right;
    margin-top: auto;
}

.why-testimonial__company {
    font-size: 14px;
    font-weight: 700;
    color: var(--color-primary);
    margin-bottom: 2px;
}

.why-testimonial__date {
    font-size: 12px;
    color: var(--color-text-light);
}

/* ===== 8. Cases (.why-cases) ===== */
.why-cases {
    padding: var(--space-80) 0;
    background-color: #ffffff;
}

.why-cases .why-section-title {
    text-align: left;
    margin-bottom: var(--space-24);
}

.why-section-lead {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.9;
    margin-bottom: var(--space-48);
    text-align: left;
}

.why-cases__grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-40) var(--space-24);
    margin-bottom: var(--space-48);
}

.why-case-card {
    display: block;
    background: #fff;
    text-decoration: none;
    border-radius: var(--card-radius);
    overflow: hidden;
}

.why-case-card__image {
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.why-case-card__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.why-case-card__body {
    padding: var(--space-16);
}

.why-case-card__company {
    display: block;
    font-size: 13px;
    color: var(--color-text-light);
    margin-bottom: var(--space-8);
}

.why-case-card__title {
    display: block;
    color: var(--color-text);
    font-size: 17px;
    font-weight: 700;
    line-height: 1.5;
    margin: 0;
}

.why-case-card__title .title-text {
    background-image: linear-gradient(currentColor, currentColor);
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 0% 1px;
    transition: background-size var(--transition-normal);
}

.why-case-card:hover .why-case-card__title .title-text {
    background-size: 100% 1px;
}

/* CTAボタン */
.why-cases__cta {
    text-align: center;
}

.why-cases__cta-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-8);
    background: var(--color-primary);
    color: #fff;
    font-size: 16px;
    font-weight: 500;
    height: var(--btn-height);
    width: 280px;
    padding: 0;
    line-height: 1;
    text-decoration: none;
    border-radius: var(--btn-radius);
    border: none;
    box-shadow: none;
    transition: background-color var(--transition-normal);
}

.why-cases__cta-btn:hover {
    background: var(--color-primary-dark);
    color: #fff;
}

/* 白ボタン（アウトライン） */
.why-cases__cta-btn--outline {
    background: #fff;
    color: var(--color-text);
    border: 1px solid #999;
}

.why-cases__cta-btn--outline:hover {
    background: var(--color-primary);
    color: #fff;
    border-color: var(--color-primary);
}

.why-cases__cta-btn span {
    display: inline-block;
}

/* ===== 9. Members (.why-members) ===== */
.why-members {
    padding: var(--space-80) 0;
    background-color: var(--color-bg-gray);
}

.why-members__title {
    font-size: var(--font-size-section-title);
    font-weight: 700;
    color: var(--color-text);
    margin-bottom: var(--space-24);
    text-align: left;
}

.why-members__lead {
    font-size: var(--font-size-body);
    font-weight: 500;
    color: var(--color-text);
    line-height: 1.9;
    margin-bottom: var(--space-48);
    text-align: left;
}

.why-members .c-member-grid {
    margin-bottom: var(--space-48);
}

/* メンバーカード - 名前スライドアンダーライン */
.why-members .c-member-card__name {
    position: relative;
    width: fit-content;
}

.why-members .c-member-card__name::after {
    content: '';
    position: absolute;
    left: 0;
    bottom: -2px;
    width: 100%;
    height: 1px;
    background-color: var(--color-text);
    transform: scaleX(0);
    transform-origin: right center;
    transition: transform var(--transition-normal);
}

.why-members .c-member-card:hover .c-member-card__name::after {
    transform: scaleX(1);
    transform-origin: left center;
}

.why-members .c-member-card {
    box-shadow: var(--card-shadow);
}

.why-members .c-member-card:hover {
    box-shadow: var(--card-shadow);
}

.why-members .c-member-card__role {
    color: var(--color-primary);
}

.why-members .c-member-card__arrow {
    display: none;
}

/* ===== 10. FAQ override (.page-why-new .why-faq) ===== */
.page-why-new .why-faq {
    background-color: var(--color-white);
}

/* ========================================
   選ばれる理由 タブレット（768px-1024px）
   ======================================== */
@media screen and (min-width: 768px) and (max-width: 1024px) {
    /* FV — お客様の声ページと同じ構造 */
    .why-fv-new {
        height: 400px;
        padding: 0;
        display: flex;
        align-items: center;
    }

    .why-fv-new__main {
        flex-direction: column;
        height: auto;
        gap: var(--space-40);
    }

    .why-fv-new__left {
        flex: none;
        max-width: 100%;
        text-align: center;
    }

    .why-fv-new__right {
        display: none;
    }

    .why-fv-new__buttons {
        max-width: 500px;
        margin: 0 auto;
    }

    /* Promise */
    .why-promise-new {
        min-height: auto;
        padding-bottom: 60px;
    }

    .why-promise-new__content {
        max-width: 100%;
    }

    .why-promise-new__image {
        display: none;
    }

    /* Data */
    .why-data-latest__grid {
        grid-template-columns: 1fr;
    }

    .why-data-latest__card--left-top,
    .why-data-latest__card--left-bottom,
    .why-data-latest__card--center {
        grid-column: 1;
        grid-row: auto;
    }

    .why-data-cards {
        grid-template-columns: 1fr;
    }

    /* Mechanism */
    .why-mechanism__item {
        grid-template-columns: 1fr;
        gap: var(--space-24);
    }

    .why-mechanism__item--reverse {
        direction: ltr;
    }

    .why-mechanism__image {
        max-width: 100%;
    }

    .why-mechanism__desc {
        padding-left: 0;
    }

    /* Testimonials */
    .why-testimonials__header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-16);
    }

    .why-testimonial {
        flex: 0 0 calc((100% - var(--space-24)) / 2);
    }

    /* Cases */
    .why-cases__grid {
        grid-template-columns: repeat(2, 1fr);
        gap: var(--space-16);
    }
}

/* ========================================
   選ばれる理由 モバイル（767px以下）
   ======================================== */
@media screen and (max-width: 767px) {
    /* セクション共通 */
    .why-section {
        padding: 60px 0;
    }

    .why-section-title {
        font-size: 24px;
        margin-bottom: var(--space-32);
    }

    /* FV — お客様の声ページと同じ構造 */
    .why-fv-new {
        height: 400px;
        padding: 0;
        display: flex;
        align-items: center;
    }

    .why-fv-new__main {
        flex-direction: column;
        height: auto;
        gap: var(--space-32);
    }

    .why-fv-new__left {
        flex: none;
        max-width: 100%;
        text-align: center;
    }

    .why-fv-new__right {
        display: none;
    }

    .why-fv-new__buttons {
        flex-direction: column;
        align-items: stretch;
        width: 100%;
        max-width: 100%;
    }

    .why-fv-new__btn {
        width: 100%;
        flex: none;
    }

    /* Client logos */
    .why-client-logos__inner {
        gap: 30px var(--space-40);
        padding: 0 20px;
    }

    .why-client-logos__inner img {
        height: 20px;
    }

    /* Promise */
    .why-promise-new {
        min-height: auto;
        padding-bottom: 60px;
    }

    .why-promise-new__content {
        max-width: 100%;
    }

    .why-promise-new__image {
        display: none;
    }

    /* Data */
    .why-data-latest__grid {
        grid-template-columns: 1fr;
    }

    .why-data-latest__card--left-top,
    .why-data-latest__card--left-bottom,
    .why-data-latest__card--center {
        grid-column: 1;
        grid-row: auto;
    }

    .why-data-cards {
        grid-template-columns: 1fr;
    }

    .why-data-tabs__btn {
        padding: 10px var(--space-16);
        font-size: 13px;
    }

    .why-data-flow {
        height: 200px;
    }

    .why-data-flow__segment.promoter { height: 104px; }
    .why-data-flow__segment.passive { height: 96px; }

    /* Mechanism */
    .why-mechanism__item {
        grid-template-columns: 1fr;
        gap: var(--space-24);
    }

    .why-mechanism__item--reverse {
        direction: ltr;
    }

    .why-mechanism__image {
        max-width: 100%;
    }

    .why-mechanism__desc {
        padding-left: 0;
    }

    /* Testimonials */
    .why-testimonials__header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-16);
    }

    .why-testimonial {
        flex: 0 0 100%;
    }

    /* Cases */
    .why-cases {
        padding: 60px 0;
    }

    .why-cases .why-container {
        padding: 0 20px;
    }

    .why-cases__grid {
        grid-template-columns: 1fr;
        gap: var(--space-32);
    }

    .why-case-card__title .title-text {
        background-image: none;
    }

    .why-cases__cta-btn {
        width: 100%;
        max-width: 320px;
        font-size: 16px;
        height: var(--btn-height);
        padding: 0;
    }

    /* Hover effects disabled on mobile */
    .why-testimonials__nav:hover {
        background: #fff;
        border-color: var(--color-border);
        color: inherit;
    }

    .why-fv-new__btn:hover {
        background: transparent;
        border-color: rgba(255, 255, 255, 0.6);
    }

    .why-fv-new__feature:hover {
        background: #f8fafc;
    }

    .why-cases__cta-btn:hover {
        background: var(--color-primary);
    }

    .why-cases__cta-btn--outline:hover {
        background: #fff;
        color: var(--color-text);
        border-color: #999;
    }

    .why-promise-new__cta {
        display: flex;
        width: 100%;
        max-width: 320px;
        margin: 0 auto;
    }

    .why-promise-new__cta:hover {
        background: var(--color-primary);
    }

    /* Member underline hover disabled */
    .why-members .c-member-card__name::after {
        display: none;
    }
}


/* ========================================
   タグアーカイブページ（allisblog_tag）
   ======================================== */

/* --- ファーストビュー（青グラデーション） --- */
.tag-fv {
  background: linear-gradient(45deg, rgb(8, 0, 184) 0%, rgb(29, 143, 225) 67%, rgb(83, 217, 255) 100%);
  height: 360px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 12px;
  text-align: center;
  position: relative;
  padding: 0 20px;
}
.tag-fv-back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #fff;
  text-decoration: none;
  font-size: 16px;
  font-weight: 500;
  transition: opacity 0.2s;
}
.tag-fv-back:hover {
  opacity: 0.7;
}
.tag-fv-back::before {
  content: '←';
}
.tag-fv-name {
  font-size: 42px;
  font-weight: 700;
  color: #fff;
  letter-spacing: 0.05em;
}
.tag-fv-count {
  display: inline-block;
  background: transparent;
  color: #fff;
  padding: 8px 24px;
  border-radius: 4px;
  border: 1px solid #fff;
  font-size: 14px;
}
@media (max-width: 768px) {
  .tag-fv { height: 280px; }
  .tag-fv-name { font-size: 28px; }
}

/* --- タグページ コンテンツエリア --- */
.tag-content {
  background: #f5f9fc;
  padding: 60px 20px 80px;
}
.tag-content-inner {
  max-width: 1200px;
  margin: 0 auto;
}

/* --- タグページ 記事一覧 --- */
.article-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  margin-bottom: 40px;
}
.article-list-item {
  display: flex;
  align-items: center;
  gap: 30px;
  padding: 24px;
  background: #fff;
  border-radius: 4px;
  text-decoration: none;
  transition: box-shadow 0.3s;
}
.article-list-item:hover .article-list-arrow {
  transform: translateX(4px);
}
.article-list-body {
  flex: 1;
  min-width: 0;
}
.article-list-date {
  font-size: 13px;
  color: #666;
  margin-bottom: 10px;
}
.article-list-title {
  font-size: 20px;
  font-weight: 600;
  color: #333;
  margin-bottom: 12px;
  line-height: 1.6;
}
.article-list-title .title-text {
  background-image: linear-gradient(currentColor, currentColor);
  background-size: 0% 1px;
  background-repeat: no-repeat;
  background-position: right bottom;
  transition: background-size 0.3s ease;
}
.article-list-item:hover .article-list-title .title-text {
  background-size: 100% 1px;
  background-position: left bottom;
}
.article-list-excerpt {
  font-size: 14px;
  color: #666;
  line-height: 1.7;
  margin-bottom: 15px;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.article-list-author {
  display: flex;
  align-items: center;
  gap: 12px;
}
.article-list-author-photo {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
  background: #e0e8f0;
}
.article-list-author-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: smooth;
  -webkit-backface-visibility: hidden;
  backface-visibility: hidden;
  transform: translateZ(0);
}
.article-list-author-info {
  display: flex;
  flex-direction: column;
}
.article-list-author-info .author-division {
  font-size: 13px;
  color: #666;
  margin-bottom: 2px;
}
.article-list-author-info .author-name {
  font-size: 16px;
  color: #333;
  font-weight: 500;
}
.article-list-thumb {
  width: 320px;
  aspect-ratio: 16 / 9;
  border-radius: 4px;
  overflow: hidden;
  flex-shrink: 0;
  order: -1;
  background: #e0e8f0;
}
.article-list-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.article-list-arrow {
  color: #0067C0;
  font-size: 24px;
  transition: transform 0.3s;
  flex-shrink: 0;
}

/* タグページ記事一覧 レスポンシブ */
@media screen and (max-width: 900px) {
  .article-list-item {
    flex-direction: column;
    align-items: flex-start;
    gap: 15px;
  }
  .article-list-thumb {
    width: 100%;
    height: 180px;
    order: -1;
  }
  .article-list-arrow {
    display: none;
  }
}

/* --- タグページ ページネーション --- */
.article-pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 8px;
  margin-top: 40px;
  margin-bottom: 60px;
}
.article-pagination a,
.article-pagination span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 12px;
  font-size: 15px;
  font-weight: 500;
  text-decoration: none;
  border-radius: 4px;
  transition: all 0.3s;
}
.article-pagination a {
  color: #333;
  background: #fff;
  border: 1px solid #ddd;
}
.article-pagination a:hover {
  color: #0067C0;
  border-color: #0067C0;
  background: #f0f7ff;
}
.article-pagination span.current {
  color: #fff;
  background: #0067C0;
  border: 1px solid #0067C0;
}
.article-pagination .prev,
.article-pagination .next {
  font-size: 18px;
}
.article-pagination .dots {
  min-width: auto;
  padding: 0 4px;
  border: none;
  background: transparent;
  color: #666;
}

/* --- タグページ タグ一覧 --- */
.blog-alt-tags-section {
  max-width: 1200px;
  margin: 0 auto 100px;
  padding: 0;
}
.blog-alt-tags-title {
  font-size: 24px;
  font-weight: 700;
  color: #333;
  margin-bottom: 30px;
}
.blog-alt-tags-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  border: 1px solid #ddd;
  background: #fff;
  border-radius: 4px;
  overflow: hidden;
}
.blog-alt-tag-link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  color: #333;
  text-decoration: none;
  font-size: 14px;
  font-weight: 700;
  background: #fff;
  border-bottom: 1px solid #ddd;
  border-right: 1px solid #ddd;
  transition: background 0.2s, color 0.2s;
}
.blog-alt-tag-link:nth-child(3n) {
  border-right: none;
}
.blog-alt-tag-link:nth-last-child(-n+3) {
  border-bottom: none;
}
.blog-alt-tag-link.current {
  background: #0067C0;
  color: #fff;
}
.blog-alt-tag-link.current .blog-alt-tag-name::before {
  color: rgba(255,255,255,0.7);
}
.blog-alt-tag-link.current .blog-alt-tag-arrow {
  color: #fff;
}
.blog-alt-tag-name {
  flex: 1;
}
.blog-alt-tag-name::before {
  content: "#";
  color: #0067C0;
  margin-right: 6px;
  font-weight: 700;
}
.blog-alt-tag-arrow {
  color: #0067C0;
  font-size: 14px;
  margin-left: 10px;
  transition: transform 0.3s;
  flex-shrink: 0;
}
.blog-alt-tag-link:hover {
  background: #f8f9fa;
  color: #0067C0;
}
.blog-alt-tag-link:hover .blog-alt-tag-arrow {
  transform: translateX(4px);
}
.blog-alt-tag-link.current:hover {
  background: #0057a8;
  color: #fff;
}

/* タグ一覧レスポンシブ */
@media screen and (max-width: 900px) {
  .blog-alt-tags-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .blog-alt-tag-link:nth-child(3n) {
    border-right: 1px solid #ddd;
  }
  .blog-alt-tag-link:nth-child(2n) {
    border-right: none;
  }
  .blog-alt-tag-link:nth-last-child(-n+3) {
    border-bottom: 1px solid #ddd;
  }
  .blog-alt-tag-link:nth-last-child(-n+2) {
    border-bottom: none;
  }
}
@media screen and (max-width: 600px) {
  .blog-alt-tags-grid {
    grid-template-columns: 1fr;
  }
  .blog-alt-tag-link:nth-child(3n),
  .blog-alt-tag-link:nth-child(2n) {
    border-right: none;
  }
  .blog-alt-tag-link:nth-last-child(-n+3),
  .blog-alt-tag-link:nth-last-child(-n+2) {
    border-bottom: 1px solid #ddd;
  }
  .blog-alt-tag-link:last-child {
    border-bottom: none;
  }
}

/* タグページ 記事なし */
.no-posts {
  text-align: center;
  padding: 60px 20px;
  background: #fff;
  border-radius: 4px;
  color: #666;
  font-size: 16px;
}

/* ===== 記事タイトル上のタグ非表示 ===== */
/* ブログ記事のタグ */
.post-meta-tag {
  display: none;
}
/* ニュース記事のカテゴリ */
.news-article-category {
  display: none;
}
/* お客様の声のカテゴリ（著者名は残す） */
.post-content-status-label-item:first-child:has(a) {
  display: none;
}
.post-content-status-label-item:first-child:has(a) + .post-content-status-label-item::before {
  display: none;
}
