/* =========================================================
   イースト・アイ株式会社 リニューアル
   デザイントークン + ヘッダー
   制作基準: デザイン資料_フォント・カラー_2026-06-18.md
   ※現段階はヘッダーのみ実装（他セクション未着手）
   ========================================================= */

:root {
  /* ブランド */
  --ei-purple: #910782;      /* ロゴ「i」の箱・主アクセント */
  --ei-purple-dark: #75066a; /* ホバー用 */
  --ei-orange: #e95513;      /* 第2アクセント（面・装飾用のブランドオレンジ） */
  --ei-orange-text: #b8430f; /* 明るい背景での文字用（4.5:1以上を確保した濃いオレンジ） */

  /* ベース／テキスト */
  --ei-bg: #ffffff;
  --ei-ink: #111111;         /* 見出し・強調 */
  --ei-body: #222222;        /* 本文 */
  --ei-sub: #535353;         /* サブ */
  --ei-muted: #6f6f6f;       /* 補助・キャプション（白背景で4.5:1以上を確保） */
  --ei-line: #e6e6e6;        /* 罫線 */
  --ei-panel: #fafafa;       /* 薄い背景面 */

  /* フォント */
  --ei-font-body: "Noto Sans JP", system-ui, -apple-system, "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --ei-font-head: "Zen Kaku Gothic New", "Noto Sans JP", system-ui, sans-serif;

  /* ヘッダー寸法 */
  --ei-header-h: 78px;
  --ei-header-h-sp: 62px;
}

html { scroll-behavior: smooth; }

body {
  font-family: var(--ei-font-body);
  color: var(--ei-body);
  background: var(--ei-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

/* ---- スキップリンク（アクセシビリティ） ---- */
.ei-skip {
  position: absolute;
  left: 16px;
  top: -64px;
  z-index: 2000;
  background: var(--ei-ink);
  color: #fff;
  padding: 10px 16px;
  border-radius: 0 0 4px 4px;
  font-size: 14px;
  transition: top .2s ease;
}
.ei-skip:focus { top: 0; color: #fff; }

/* =========================================================
   ヘッダー
   ========================================================= */
.ei-header {
  position: sticky;
  top: 0;
  z-index: 1030;
  background: rgba(255, 255, 255, 0.96);
  -webkit-backdrop-filter: saturate(180%) blur(8px);
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid var(--ei-line);
  transition: box-shadow .25s ease, border-color .25s ease;
}
.ei-header.is-scrolled {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06);
  border-bottom-color: transparent;
}

.ei-header__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 0 24px;
  height: var(--ei-header-h);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}

/* ---- ロゴ ---- */
.ei-logo {
  display: inline-flex;
  align-items: center;
  flex: 0 0 auto;
  line-height: 0;
}
.ei-logo img {
  height: 40px;
  width: auto;
  display: block;
}
.ei-logo:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 4px; }

/* ---- PCナビ ---- */
.ei-nav { display: flex; align-items: center; gap: 4px; }
.ei-nav__list {
  display: flex;
  align-items: stretch;
  gap: 2px;
  list-style: none;
  margin: 0;
  padding: 0;
}
.ei-nav__link {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
  padding: 8px 16px;
  height: 56px;
  text-decoration: none;
  color: var(--ei-ink);
}
.ei-nav__en {
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.10em;
  line-height: 1;
}
.ei-nav__ja {
  font-size: 10px;
  letter-spacing: 0.04em;
  color: var(--ei-muted);
  line-height: 1;
  transition: color .2s ease;
}
/* ホバー下線（紫・左から伸びる） */
.ei-nav__link::after {
  content: "";
  position: absolute;
  left: 16px;
  right: 16px;
  bottom: 8px;
  height: 2px;
  background: var(--ei-purple);
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .28s cubic-bezier(.2, .7, .2, 1);
}
.ei-nav__link:hover .ei-nav__en,
.ei-nav__link:focus-visible .ei-nav__en { color: var(--ei-purple); }
.ei-nav__link:hover .ei-nav__ja { color: var(--ei-sub); }
.ei-nav__link:hover::after,
.ei-nav__link:focus-visible::after { transform: scaleX(1); }
.ei-nav__link[aria-current="page"] .ei-nav__en { color: var(--ei-purple); }
.ei-nav__link[aria-current="page"]::after { transform: scaleX(1); }
.ei-nav__link:focus-visible {
  outline: 2px solid var(--ei-purple);
  outline-offset: -2px;
  border-radius: 2px;
}

/* ---- CONTACTボタン（CTA） ---- */
.ei-cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-left: 12px;
  padding: 0 22px;
  height: 46px;
  background: var(--ei-purple);
  color: #fff;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.08em;
  text-decoration: none;
  border-radius: 3px;
  transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
}
.ei-cta svg { width: 16px; height: 16px; }
.ei-cta:hover {
  background: var(--ei-purple-dark);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 6px 16px rgba(145, 7, 130, 0.28);
}
.ei-cta:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 3px; }

/* ---- ハンバーガー（モバイル用・既定は非表示） ---- */
.ei-burger {
  display: none;
  width: 46px;
  height: 46px;
  border: 1px solid var(--ei-line);
  border-radius: 4px;
  background: #fff;
  padding: 0;
  align-items: center;
  justify-content: center;
}
.ei-burger:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 2px; }
.ei-burger span {
  position: relative;
  display: block;
  width: 22px;
  height: 2px;
  background: var(--ei-ink);
}
.ei-burger span::before,
.ei-burger span::after {
  content: "";
  position: absolute;
  left: 0;
  width: 22px;
  height: 2px;
  background: var(--ei-ink);
}
.ei-burger span::before { top: -7px; }
.ei-burger span::after { top: 7px; }

/* =========================================================
   オフキャンバス（モバイルメニュー）
   ========================================================= */
/* 全画面メニュー（全幅）。背後のヘッダーを完全に覆い、覗き込みを防ぐ
   Bootstrap既定の --bs-offcanvas-width(400px) を変数ごと上書き */
.offcanvas.ei-offcanvas { --bs-offcanvas-width: 100%; width: 100%; max-width: 100%; }
.ei-offcanvas .offcanvas-header {
  border-bottom: 1px solid var(--ei-line);
  padding: 0 16px;
  height: var(--ei-header-h-sp);   /* 固定ヘッダーと同じ高さでつなぎ目を自然に */
}
.ei-offcanvas .offcanvas-body {
  padding: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;   /* 縦中央寄せで全画面を活かす */
}
.ei-offcanvas__logo img { height: 34px; width: auto; }

/* 中身は中央のまとまりに収める（タブレットでも間延びさせない） */
.ei-m-inner {
  width: 100%;
  max-width: 520px;
  margin: 0 auto;
  padding: 24px 24px 40px;
}

.ei-m-nav { list-style: none; margin: 0; padding: 0; }
.ei-m-nav__link {
  display: flex;
  align-items: baseline;
  gap: 16px;
  padding: 22px 8px;
  text-decoration: none;
  border-bottom: 1px solid var(--ei-line);
  color: var(--ei-ink);
}
.ei-m-nav li:first-child .ei-m-nav__link { border-top: 1px solid var(--ei-line); }
.ei-m-nav__en {
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 20px;
  letter-spacing: 0.08em;
  min-width: 132px;
}
.ei-m-nav__ja { font-size: 13px; color: var(--ei-muted); }
.ei-m-nav__link:active { background: var(--ei-panel); }
.ei-m-nav__link:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: -2px; }

.ei-m-cta {
  margin: 32px 8px 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 58px;
  background: var(--ei-purple);
  color: #fff;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.08em;
  text-decoration: none;
  border-radius: 3px;
}
.ei-m-cta svg { width: 18px; height: 18px; }
.ei-m-cta:hover { background: var(--ei-purple-dark); color: #fff; }
.ei-m-cta:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 3px; }

/* =========================================================
   レスポンシブ切替
   ========================================================= */
@media (max-width: 991.98px) {
  .ei-header__inner { height: var(--ei-header-h-sp); padding: 0 16px; }
  .ei-logo img { height: 34px; }
  .ei-nav, .ei-cta { display: none; }
  .ei-burger { display: inline-flex; }
}

/* モーション抑制 */
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  .ei-nav__link::after,
  .ei-cta,
  .ei-skip { transition: none; }
}

/* =========================================================
   ヒーロー
   ========================================================= */
.ei-hero {
  background: #ffffff; /* 差し替えイラスト（透過・白背景）に合わせて白で馴染ませる */
  overflow: hidden;
}
.ei-hero__inner {
  max-width: 1240px;
  margin: 0 auto;
  padding: 56px 24px 60px;
  display: grid;
  grid-template-columns: 1.12fr 0.88fr; /* 客先指示(2026-07-06)：画像を少し小さく、コピー側を広げる */
  gap: 32px;                            /* テキストと画像の間隔 */
  align-items: center;
}
/* 客先指示(2026-07-06)：ヒーロー画像はやや小さめに、右寄せで配置 */
.ei-hero__media { max-width: 440px; margin: 0 0 0 auto; width: 100%; }

.ei-hero__eyebrow {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: clamp(16px, 2.2vw, 22px);
  letter-spacing: 0.05em;
  color: var(--ei-orange-text);
  margin: 0 0 10px;
}
/* 主コピーは短い標語から説明的な一文（正本）へ変更。長文でも読ませるサイズ・行間に調整 */
.ei-hero__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(28px, 3.5vw, 41px); /* 客先指示(2026-07-06)：キャッチをもう少し大きく */
  line-height: 1.5;
  letter-spacing: -0.02em;
  font-feature-settings: "palt" 1; /* 句読点・かなの余分な空きを詰める */
  color: var(--ei-ink);
  margin: 0;
}
/* 全角カッコ（DB）の内側・外側の余白を詰める（palt だけでは残る側方アキを圧縮） */
.ei-hero__paren { margin: 0 -0.24em; letter-spacing: -0.06em; }
.ei-hero__paren-in { margin: 0 -0.06em; letter-spacing: 0; }
/* カタカナは字面のアキが広く間延びして見えるため、追加でトラッキングを詰める */
.ei-kana { letter-spacing: -0.05em; }
/* 英単語・括弧つき語を途中改行させず、かたまりで折り返す（例: （Data Driven）） */
.ei-nb { white-space: nowrap; }
@media (max-width: 480px) {
  /* スマホでは <br> を無効化し自然改行に任せる（語中改行を防ぐ） */
  .ei-hero__title br { display: none; }
}

.ei-hero__sub {
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: clamp(17px, 2.2vw, 23px);
  letter-spacing: -0.01em;
  font-feature-settings: "palt" 1;
  color: #333;
  margin: 18px 0 0;
}
.ei-hero__lead {
  font-size: 17.5px; /* 客先指示(2026-07-06)：リードをもう少し大きく */
  line-height: 1.95;
  color: var(--ei-body);
  max-width: 30em;
  margin: 24px 0 0;
}
.ei-hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 34px;
}

.ei-hero__media img { width: 100%; height: auto; display: block; }

/* ---- 汎用ボタン ---- */
.ei-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  height: 54px;
  padding: 0 28px;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.06em;
  text-decoration: none;
  border-radius: 3px;
  transition: background .2s ease, color .2s ease, transform .2s ease, box-shadow .2s ease;
}
.ei-btn svg { width: 18px; height: 18px; }
.ei-btn--primary { background: var(--ei-purple); color: #fff; border: 2px solid var(--ei-purple); }
.ei-btn--primary:hover {
  background: var(--ei-purple-dark);
  border-color: var(--ei-purple-dark);
  color: #fff;
  transform: translateY(-1px);
  box-shadow: 0 8px 20px rgba(145, 7, 130, 0.26);
}
.ei-btn--outline { background: transparent; color: var(--ei-purple); border: 2px solid var(--ei-purple); }
.ei-btn--outline:hover { background: var(--ei-purple); color: #fff; transform: translateY(-1px); }
.ei-btn:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 3px; }

@media (max-width: 991.98px) {
  .ei-hero__inner {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 44px 16px 56px;
  }
  .ei-hero__media { order: -1; max-width: 560px; margin: 0 auto; }
}
@media (max-width: 575.98px) {
  .ei-hero__cta { flex-direction: column; align-items: stretch; }
  .ei-btn { width: 100%; }
  /* スマホではヒーロー画像を少し小さく（客先指示 2026-07-06）。ABOUT画像は後方の専用ブロックで指定 */
  .ei-hero__media { max-width: 300px; }
}
@media (prefers-reduced-motion: reduce) {
  .ei-btn { transition: none; }
}

/* アンカー遷移時に固定ヘッダー分だけ余白を確保（見出しが隠れない） */
:where(#about, #business, #company, #csr, #news, #contact) {
  scroll-margin-top: calc(var(--ei-header-h) + 8px);
}
@media (max-width: 991.98px) {
  :where(#about, #business, #company, #csr, #news, #contact) {
    scroll-margin-top: calc(var(--ei-header-h-sp) + 8px);
  }
}

/* =========================================================
   ABOUT 要約
   ========================================================= */
.ei-about {
  background: #f6f5f9; /* 白基調のヒーローと差をつける淡いラベンダーグレー（青紫イラストと調和） */
  border-top: 1px solid #ececf2;
  border-bottom: 1px solid #ececf2;
}
.ei-about__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 88px 24px 92px;
  display: grid;
  grid-template-columns: 1fr 1.08fr; /* 画像 / テキスト */
  gap: 56px;
  align-items: center;
}
/* 差し替えた握手イラストは縦長のため、ヒーロー画像の大きさに合わせて高さで抑える（客先指示 2026-07-06） */
.ei-about__media { max-width: 480px; margin: 0 auto; text-align: center; }
.ei-about__media img { width: auto; max-width: 100%; max-height: 430px; height: auto; margin: 0 auto; display: block; }

.ei-about__eyebrow {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.16em;
  color: var(--ei-purple);
  margin: 0 0 16px;
}
.ei-about__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.32;
  letter-spacing: -0.01em;
  color: var(--ei-ink);
  margin: 0 0 24px;
}
.ei-about__title-i { color: var(--ei-purple); }
.ei-about__lead {
  font-size: clamp(15px, 1.5vw, 17px);
  line-height: 2;
  color: var(--ei-body);
  font-weight: 500;
  margin: 0 0 18px;
}
.ei-about__text {
  font-size: 15px;
  line-height: 2;
  color: var(--ei-sub);
  margin: 0 0 32px;
}
.ei-about__more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.04em;
  color: var(--ei-purple);
  text-decoration: none;
  padding-bottom: 4px;
  border-bottom: 2px solid transparent;
  transition: color .2s ease, border-color .2s ease, gap .2s ease;
}
.ei-about__more svg { width: 18px; height: 18px; transition: transform .2s ease; }
.ei-about__more:hover {
  color: var(--ei-purple-dark);
  border-color: var(--ei-purple);
  gap: 14px;
}
.ei-about__more:hover svg { transform: translateX(2px); }
.ei-about__more:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 4px; }

@media (max-width: 991.98px) {
  .ei-about__inner {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 56px 16px 60px;
  }
  .ei-about__media { order: -1; max-width: 420px; }
}
/* スマホではABOUT握手画像も少し小さく・ヒーローと高さを揃えてバランス（客先指示 2026-07-06） */
@media (max-width: 575.98px) {
  .ei-about__media img { max-height: 300px; }
}
@media (prefers-reduced-motion: reduce) {
  .ei-about__more, .ei-about__more svg,
  .ei-company__more, .ei-company__more svg { transition: none; }
}

/* =========================================================
   BUSINESS 要約（3事業カード）
   ========================================================= */
.ei-biz { background: #ffffff; }
.ei-biz__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 92px 24px 96px;
}
.ei-biz__head { text-align: center; max-width: 720px; margin: 0 auto 56px; }
.ei-biz__eyebrow {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.16em;
  color: var(--ei-purple);
  margin: 0 0 14px;
}
.ei-biz__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(28px, 3.6vw, 40px);
  letter-spacing: 0.02em;
  color: var(--ei-ink);
  margin: 0 0 16px;
}
.ei-biz__lead {
  font-size: clamp(14px, 1.4vw, 16px);
  line-height: 1.9;
  color: var(--ei-sub);
  margin: 0;
}

.ei-biz__grid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
.ei-biz-card {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 1px solid #ececf2;
  border-radius: 10px;
  overflow: hidden;
  transition: transform .22s ease, box-shadow .22s ease, border-color .22s ease;
}
.ei-biz-card:hover {
  transform: translateY(-4px);
  box-shadow: 0 16px 36px rgba(40, 20, 60, 0.10);
  border-color: #e0dcea;
}
.ei-biz-card__thumb {
  position: relative;
  background: #f6f5f9; /* 淡ラベンダーでイラストを引き立てる */
  padding: 26px 26px 18px;
  display: flex;
  align-items: center;
  justify-content: center;
}
/* 新規事業バッジ（客先指示 2026-07-06：モーション事業に付与） */
.ei-biz-card__badge {
  position: absolute;
  top: 12px;
  right: 12px;
  display: inline-block;
  padding: 4px 11px;
  background: var(--ei-purple);
  color: #ffffff;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 11.5px;
  letter-spacing: 0.04em;
  line-height: 1;
  border-radius: 999px;
}
.ei-biz-card__thumb img {
  width: auto;
  max-width: 78%;
  height: 168px;
  object-fit: contain;
  display: block;
}
.ei-biz-card__body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 24px 26px 26px;
}
/* トップは3つの柱の入口のみ。番号＋事業名＋短いラベル（説明文・カード別リンクは詳細ページへ） */
.ei-biz-card__no {
  font-family: "Michroma", var(--ei-font-head);
  font-size: 11.5px;
  letter-spacing: 0.04em;
  line-height: 1.5;
  color: var(--ei-purple);
  margin: 0 0 10px;
  white-space: nowrap; /* 英語カテゴリ名を1行で（数字→英語見出しへ変更 2026-07-14） */
}
.ei-biz-card__name {
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 19px;
  line-height: 1.45;
  color: var(--ei-ink);
  margin: 0 0 8px;
}
.ei-biz-card__role {
  font-size: 13.5px;
  letter-spacing: 0.02em;
  color: var(--ei-sub);
  margin: 0;
}

/* セクション末尾：事業内容ページ（中間ハブ）への誘導を1つだけ */
.ei-biz__foot { text-align: center; margin-top: 48px; }
.ei-biz__more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.04em;
  color: var(--ei-purple);
  text-decoration: none;
  padding: 12px 24px;
  border: 1.5px solid var(--ei-purple);
  border-radius: 3px;
  transition: background .2s ease, color .2s ease, gap .2s ease;
}
.ei-biz__more svg { width: 18px; height: 18px; transition: transform .2s ease; }
.ei-biz__more:hover { background: var(--ei-purple); color: #fff; gap: 14px; }
.ei-biz__more:hover svg { transform: translateX(2px); }
.ei-biz__more:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 3px; }

@media (max-width: 991.98px) {
  .ei-biz__inner { padding: 60px 16px 64px; }
  .ei-biz__head { margin-bottom: 40px; }
  .ei-biz__grid { grid-template-columns: 1fr; gap: 20px; max-width: 480px; margin: 0 auto; }
  .ei-biz-card__thumb img { height: 156px; }
  .ei-biz__foot { margin-top: 36px; }
}
@media (prefers-reduced-motion: reduce) {
  .ei-biz-card, .ei-biz__more, .ei-biz__more svg { transition: none; }
}

/* =========================================================
   COMPANY 会社概要（定義リストで端末問わずズレない＝現行P0不具合の解消）
   ========================================================= */
.ei-company {
  background: #f6f5f9; /* 白のBUSINESSと交互。淡ラベンダーグレー */
  border-top: 1px solid #ececf2;
  border-bottom: 1px solid #ececf2;
}
.ei-company__inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 88px 24px 92px;
}
.ei-company__head { text-align: center; max-width: 720px; margin: 0 auto 48px; }
.ei-company__eyebrow {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.16em;
  color: var(--ei-purple);
  margin: 0 0 14px;
}
.ei-company__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(28px, 3.6vw, 40px);
  letter-spacing: 0.02em;
  color: var(--ei-ink);
  margin: 0 0 16px;
}
.ei-company__lead {
  font-size: clamp(14px, 1.4vw, 16px);
  line-height: 1.9;
  color: var(--ei-sub);
  margin: 0;
}

.ei-company__list {
  margin: 0;
  background: #ffffff;
  border: 1px solid #e8e6ef;
  border-radius: 10px;
  overflow: hidden;
}
.ei-company__row {
  display: grid;
  grid-template-columns: 240px 1fr; /* ラベル固定幅 / 内容。手組みの%幅ズレを排除 */
}
.ei-company__row + .ei-company__row { border-top: 1px solid #eceaf2; }
.ei-company__row dt {
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 15px;
  line-height: 1.7;
  color: var(--ei-ink);
  background: #f6f5f9;
  border-right: 1px solid #eceaf2;
  padding: 22px 28px;
}
.ei-company__row dd {
  margin: 0;
  padding: 22px 28px;
  font-size: 15px;
  line-height: 1.95;
  color: var(--ei-body);
  overflow-wrap: anywhere;
}
.ei-company__note {
  display: block;
  font-family: var(--ei-font-body);
  font-weight: 400;
  font-size: 12.5px;
  line-height: 1.6;
  color: var(--ei-muted);
  margin-top: 4px;
}
/* 所在地・加盟団体: PCは1行（建物名の前に半角分の空き／団体は・区切り）。
   かたまりを単位として扱い、語の途中で折り返さない */
.ei-company__addr-a,
.ei-company__addr-b,
.ei-company__affil { display: inline; }
.ei-company__addr-b { margin-left: 0.5em; }

/* 抜粋の下：詳細ページへの誘導 */
.ei-company__foot { text-align: center; margin-top: 36px; }
.ei-company__more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.04em;
  color: var(--ei-purple);
  text-decoration: none;
  padding: 12px 24px;
  border: 1.5px solid var(--ei-purple);
  border-radius: 3px;
  transition: background .2s ease, color .2s ease, gap .2s ease;
}
.ei-company__more svg { width: 18px; height: 18px; transition: transform .2s ease; }
.ei-company__more:hover { background: var(--ei-purple); color: #fff; gap: 14px; }
.ei-company__more:hover svg { transform: translateX(2px); }
.ei-company__more:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 3px; }

@media (max-width: 767.98px) {
  .ei-company__inner { padding: 56px 16px 60px; }
  .ei-company__head { margin-bottom: 36px; }
  .ei-company__row { grid-template-columns: 1fr; } /* スマホは縦積み＝項目と内容が必ず対応 */
  .ei-company__row dt {
    border-right: none;
    border-bottom: 1px solid #eceaf2;
    padding: 14px 18px;
    font-size: 14px;
  }
  .ei-company__row dd { padding: 16px 18px 20px; font-size: 14.5px; }
  /* 住所は建物名の前で改行。団体名は1団体ずつ改行（語の途中での折返しを防ぐ） */
  .ei-company__addr-a,
  .ei-company__addr-b,
  .ei-company__affil { display: block; }
  .ei-company__addr-b { margin-left: 0; }
  .ei-company__affil-sep { display: none; }
}

/* =========================================================
   NEWS お知らせ（最新3件。将来は管理画面から自社追加できる想定）
   ========================================================= */
.ei-news { background: #ffffff; }
.ei-news__inner {
  max-width: 920px;
  margin: 0 auto;
  padding: 92px 24px 96px;
}
.ei-news__head { text-align: center; max-width: 720px; margin: 0 auto 44px; }
.ei-news__eyebrow {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.16em;
  color: var(--ei-purple);
  margin: 0 0 14px;
}
.ei-news__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(28px, 3.6vw, 40px);
  letter-spacing: 0.02em;
  color: var(--ei-ink);
  margin: 0 0 16px;
}
.ei-news__lead {
  font-size: clamp(14px, 1.4vw, 16px);
  line-height: 1.9;
  color: var(--ei-sub);
  margin: 0;
}

.ei-news__list { list-style: none; margin: 0 0 36px; padding: 0; }
.ei-news__item a {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 22px 8px;
  text-decoration: none;
  color: var(--ei-body);
  border-top: 1px solid var(--ei-line);
  transition: background .2s ease;
}
.ei-news__item:last-child a { border-bottom: 1px solid var(--ei-line); }
.ei-news__item a:hover { background: #faf9fc; }
.ei-news__item a:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: -2px; border-radius: 4px; }

.ei-news__meta { display: inline-flex; align-items: center; gap: 14px; min-width: 220px; }
.ei-news__date {
  font-family: "Michroma", var(--ei-font-head);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--ei-muted);
}
.ei-news__cat {
  font-family: var(--ei-font-head);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  color: var(--ei-purple);
  background: #faf4fb;
  border: 1px solid #e7d6ea;
  border-radius: 999px;
  padding: 6px 13px;
}
.ei-news__cat--biz {
  color: var(--ei-orange-text);
  background: #fdf2ec;
  border-color: #f2d8c9;
}
.ei-news__ttl {
  font-size: 15px;
  line-height: 1.75;
  color: var(--ei-ink);
  transition: color .2s ease;
}
.ei-news__item a:hover .ei-news__ttl { color: var(--ei-purple); }
.ei-news__arrow {
  width: 18px;
  height: 18px;
  color: var(--ei-muted);
  flex: 0 0 auto;
  transition: transform .2s ease, color .2s ease;
}
.ei-news__item a:hover .ei-news__arrow { color: var(--ei-purple); transform: translateX(2px); }

.ei-news__foot { text-align: center; }
.ei-news__more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.04em;
  color: var(--ei-purple);
  text-decoration: none;
  padding: 12px 24px;
  border: 1.5px solid var(--ei-purple);
  border-radius: 3px;
  transition: background .2s ease, color .2s ease, gap .2s ease;
}
.ei-news__more svg { width: 18px; height: 18px; transition: transform .2s ease; }
.ei-news__more:hover { background: var(--ei-purple); color: #fff; gap: 14px; }
.ei-news__more:hover svg { transform: translateX(2px); }
.ei-news__more:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 3px; }

@media (max-width: 767.98px) {
  .ei-news__inner { padding: 60px 16px 64px; }
  .ei-news__head { margin-bottom: 32px; }
  .ei-news__item a {
    grid-template-columns: 1fr auto;
    row-gap: 10px;
    column-gap: 16px;
    padding: 18px 6px;
  }
  .ei-news__meta { grid-column: 1; min-width: 0; }
  .ei-news__arrow { grid-column: 2; grid-row: 1; }
  .ei-news__ttl { grid-column: 1 / -1; grid-row: 2; }
}
@media (prefers-reduced-motion: reduce) {
  .ei-news__item a, .ei-news__ttl, .ei-news__arrow,
  .ei-news__more, .ei-news__more svg { transition: none; }
}

/* =========================================================
   CONTACT 誘導（CV転換。ブランド紫の帯で最も強く訴求）
   ========================================================= */
.ei-contact {
  position: relative;
  background: var(--ei-purple);
  overflow: hidden;
}
/* ほんのり奥行きを出す控えめなハイライト（フラットすぎを回避） */
.ei-contact::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(120% 90% at 85% 0%, rgba(255, 255, 255, 0.12), rgba(255, 255, 255, 0) 60%),
    radial-gradient(120% 110% at 0% 100%, rgba(117, 6, 106, 0.55), rgba(117, 6, 106, 0) 55%);
  pointer-events: none;
}
.ei-contact__inner {
  position: relative;
  max-width: 840px;
  margin: 0 auto;
  padding: 84px 24px 88px;
  text-align: center;
  color: #fff;
}
.ei-contact__eyebrow {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: clamp(19px, 2.4vw, 26px);
  letter-spacing: 0.14em;
  color: #ffffff;
  margin: 0 0 20px;
}
.ei-contact__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.4;
  letter-spacing: 0.01em;
  color: #ffffff;
  margin: 0 0 18px;
}
.ei-contact__lead {
  font-size: clamp(14px, 1.4vw, 16px);
  line-height: 2;
  color: #ffffff;
  max-width: 34em;
  margin: 0 auto 14px;
}
/* 2文をそれぞれ1ブロックにし、行内は均等割りで折り返す（スマホの泣き別れ回避・客先指示 2026-07-06） */
.ei-contact__lead-line { display: block; text-wrap: balance; }
/* CONTACT誘導の注記（セールスメール不可 等・客先指示 2026-07-06） */
.ei-contact__note {
  font-size: clamp(12.5px, 1.2vw, 13.5px);
  line-height: 1.85;
  color: rgba(255, 255, 255, 0.82);
  max-width: 34em;
  margin: 0 auto 32px;
  text-wrap: balance;
}
.ei-contact__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 60px;
  padding: 0 36px;
  background: #ffffff;
  color: var(--ei-purple);
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.06em;
  text-decoration: none;
  border-radius: 4px;
  transition: transform .2s ease, box-shadow .2s ease, color .2s ease;
}
.ei-contact__btn svg { width: 19px; height: 19px; }
.ei-contact__btn:hover {
  color: var(--ei-purple-dark);
  transform: translateY(-2px);
  box-shadow: 0 14px 30px rgba(0, 0, 0, 0.22);
}
.ei-contact__btn:focus-visible { outline: 3px solid #fff; outline-offset: 4px; }

@media (max-width: 575.98px) {
  .ei-contact__inner { padding: 64px 16px 68px; }
  .ei-contact__title {
    font-size: 24px;
    letter-spacing: -0.01em;
    font-feature-settings: "palt" 1; /* かなの空きを詰めて1行に収め、孤立文字を防ぐ */
  }
  .ei-contact__btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {
  .ei-contact__btn { transition: none; }
}

/* =========================================================
   フッター（全ページ共通。信頼・法令）
   ========================================================= */
.ei-footer {
  background: #1a1920;
  color: #cdcbd6;
}
.ei-footer__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 64px 24px 48px;
  display: grid;
  grid-template-columns: 1.1fr 1.6fr;
  gap: 56px;
}

/* ---- ブランド ---- */
.ei-footer__logo { display: inline-block; line-height: 0; }
.ei-footer__logo img { height: 46px; width: auto; display: block; }
.ei-footer__logo:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }
.ei-footer__company {
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 16px;
  color: #ffffff;
  margin: 22px 0 10px;
}
.ei-footer__addr {
  font-size: 13px;
  line-height: 1.9;
  color: #a6a4b1;
  margin: 0;
}

/* ---- ナビ ---- */
.ei-footer__nav {
  display: grid;
  grid-template-columns: 0.8fr 1.2fr;
  gap: 40px;
}
.ei-footer__heading {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: 12px;
  letter-spacing: 0.16em;
  color: #ffffff;
  margin: 0 0 14px;
  padding-bottom: 14px;
  border-bottom: 1px solid rgba(255, 255, 255, 0.12);
}
.ei-footer__col ul { list-style: none; margin: 0; padding: 0; }
.ei-footer__col a {
  display: inline-flex;
  align-items: baseline;
  gap: 10px;
  padding: 9px 0;
  color: #cdcbd6;
  text-decoration: none;
  font-size: 14px;
  line-height: 1.6;
  transition: color .2s ease;
}
.ei-footer__col--info a { font-family: var(--ei-font-body); }
.ei-footer__col a > span {
  font-size: 11px;
  letter-spacing: 0.02em;
  color: #908e9b;
  transition: color .2s ease;
}
.ei-footer__col a:hover { color: #ffffff; }
.ei-footer__col a:hover > span { color: #cdcbd6; }
.ei-footer__col a:focus-visible { outline: 2px solid #fff; outline-offset: 2px; border-radius: 2px; }
/* MENU列は英字を見出し書体で */
.ei-footer__col:not(.ei-footer__col--info) a {
  font-family: var(--ei-font-head);
  font-weight: 700;
  letter-spacing: 0.06em;
}

/* ---- 最下部バー ---- */
.ei-footer__bar { border-top: 1px solid rgba(255, 255, 255, 0.1); }
.ei-footer__copy {
  max-width: 1200px;
  margin: 0 auto;
  padding: 22px 24px;
  font-family: "Michroma", var(--ei-font-head);
  font-size: 12px;
  letter-spacing: 0.08em;
  color: #908e9b;
}

@media (max-width: 991.98px) {
  .ei-footer__inner {
    grid-template-columns: 1fr;
    gap: 40px;
    padding: 56px 16px 40px;
  }
}
@media (max-width: 575.98px) {
  .ei-footer__nav { grid-template-columns: 1fr; gap: 32px; }
  .ei-footer__copy { padding: 20px 16px; }
}
@media (prefers-reduced-motion: reduce) {
  .ei-footer__col a, .ei-footer__col a > span { transition: none; }
}

/* =========================================================
   下層ページ共通（ページ見出し帯 / パンくず / 下部CTA）
   ※ index.html と同じ ei-* トークンに準拠。サブページで再利用する。
   ========================================================= */

/* ---- ページ見出し帯（下層ページのヘッダー直下） ---- */
.ei-pagehead {
  position: relative;
  background: #f6f5f9;
  border-bottom: 1px solid #ececf2;
  overflow: hidden;
}
/* 背景に薄い「i」のウォーターマーク（ブランドの i を控えめに反映） */
.ei-pagehead::after {
  content: "i";
  position: absolute;
  right: clamp(8px, 4vw, 64px);
  bottom: -0.28em;
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(140px, 26vw, 300px);
  line-height: 1;
  color: rgba(145, 7, 130, 0.05);
  pointer-events: none;
  user-select: none;
}
.ei-pagehead__inner {
  position: relative;
  z-index: 1;
  max-width: 1200px;
  margin: 0 auto;
  padding: 60px 24px 52px;
}
.ei-pagehead__en {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: clamp(34px, 6vw, 60px);
  line-height: 1.05;
  letter-spacing: 0.005em; /* 英文の字間を詰める（大きい表示なので最小限に） */
  color: var(--ei-ink);
  margin: 0;
}
/* page見出し頭の■マーカーは客先指示（2026-07-06）で削除 */
.ei-pagehead__ja {
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.1em;
  color: var(--ei-purple);
  margin: 16px 0 0;
}

/* ---- パンくず ---- */
.ei-breadcrumb {
  background: #ffffff;
  border-bottom: 1px solid var(--ei-line);
}
.ei-breadcrumb__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 12px 24px;
}
.ei-breadcrumb ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 12.5px;
  color: var(--ei-muted);
}
.ei-breadcrumb li { display: inline-flex; align-items: center; gap: 8px; }
.ei-breadcrumb li:not(:first-child)::before {
  content: "/";
  color: #c9c7d2;
}
.ei-breadcrumb a {
  color: var(--ei-sub);
  text-decoration: none;
  transition: color .2s ease;
}
.ei-breadcrumb a:hover { color: var(--ei-purple); }
.ei-breadcrumb a:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 2px; border-radius: 2px; }
.ei-breadcrumb [aria-current="page"] { color: var(--ei-ink); }

/* =========================================================
   ABOUT 詳細ページ
   ========================================================= */

/* ---- 理念ステートメント（画像 + 文章） ---- */
.ei-intro { background: #ffffff; }
.ei-intro__inner {
  max-width: 1160px;
  margin: 0 auto;
  padding: 88px 24px 84px;
  display: grid;
  grid-template-columns: 1fr 1.06fr; /* 画像 / 文章 */
  gap: 56px;
  align-items: center;
}
.ei-intro__media { max-width: 460px; margin: 0 auto; width: 100%; }
.ei-intro__media img { width: 100%; height: auto; display: block; }
.ei-intro__eyebrow {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.08em; /* 英文ラベルの字間を詰める */
  color: var(--ei-purple);
  margin: 0 0 16px;
}
.ei-intro__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(26px, 3.4vw, 40px);
  line-height: 1.36;
  letter-spacing: -0.01em;
  color: var(--ei-ink);
  margin: 0 0 26px;
}
.ei-intro__title-i { color: var(--ei-purple); }
.ei-intro__text {
  font-size: clamp(15px, 1.5vw, 16.5px);
  line-height: 2.05;
  color: var(--ei-body);
  margin: 0 0 18px;
  text-wrap: pretty; /* 最終行が1文字だけ（例:「す。」）で泣き別れするのを防ぐ */
}
.ei-intro__text:last-child { margin-bottom: 0; }

@media (max-width: 991.98px) {
  .ei-intro__inner {
    grid-template-columns: 1fr;
    gap: 32px;
    padding: 56px 16px 60px;
  }
  .ei-intro__media { order: -1; max-width: 380px; }
}

/* ---- 3つの I（思想を可視化） ---- */
/* ---- 私たちのビジネス（ABOUT／クライアント正本の2事業） ---- */
.ei-abbiz {
  background: #f6f5f9;
  border-top: 1px solid #ececf2;
  border-bottom: 1px solid #ececf2;
}
.ei-abbiz__inner {
  max-width: 1100px;
  margin: 0 auto;
  padding: 88px 24px 92px;
}
.ei-abbiz__head { text-align: center; max-width: 760px; margin: 0 auto 52px; }
.ei-abbiz__eyebrow {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.08em;
  color: var(--ei-purple);
  margin: 0 0 14px;
}
.ei-abbiz__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(24px, 3.2vw, 36px);
  line-height: 1.4;
  color: var(--ei-ink);
  margin: 0;
}
.ei-abbiz__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
  align-items: stretch;
}
.ei-abbiz__item {
  display: flex;
  flex-direction: column;
  background: #ffffff;
  border: 1px solid #e8e6ef;
  border-radius: 14px;
  padding: 40px 36px 36px;
}
.ei-abbiz__en {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: 12.5px;
  letter-spacing: 0.06em;
  color: var(--ei-orange-text);
  margin: 0 0 18px;
}
.ei-abbiz__num {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 34px;
  height: 34px;
  border-radius: 50%;
  background: var(--ei-purple);
  color: #ffffff;
  font-size: 14px;
  letter-spacing: 0;
}
.ei-abbiz__name {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(19px, 2vw, 23px);
  line-height: 1.5;
  color: var(--ei-ink);
  margin: 0 0 18px;
  word-break: keep-all;
  overflow-wrap: anywhere;
}
.ei-abbiz__text {
  font-size: 15px;
  line-height: 2;
  color: var(--ei-body);
  margin: 0 0 22px;
}
.ei-abbiz__closing {
  font-size: 15px;
  line-height: 1.95;
  font-weight: 700;
  color: var(--ei-ink);
  margin: auto 0 0;          /* カード下端に寄せて2枚の締め文を高さ揃え */
  padding: 18px 0 0 18px;
  border-left: 3px solid var(--ei-purple);
}

@media (max-width: 767.98px) {
  .ei-abbiz__inner { padding: 56px 16px 60px; }
  .ei-abbiz__head { margin-bottom: 34px; }
  .ei-abbiz__grid { grid-template-columns: 1fr; gap: 18px; max-width: 520px; margin: 0 auto; }
  .ei-abbiz__item { padding: 32px 24px 30px; }
  .ei-abbiz__name br { display: none; }
}

/* ---- ABOUT 本文 上下2ブロック（① Thinking ② Spirit）0705修正 ---- */
.ei-think { background: #ffffff; }
.ei-think__inner {
  max-width: 1120px;
  margin: 0 auto;
  padding: 84px 24px 92px;
}
.ei-think__block { position: relative; }

/* ① Thinking：文章＋画像（客先指示 2026-07-06：左テキスト・右画像へ入れ替え） */
.ei-think__block--media {
  display: grid;
  grid-template-columns: 1.12fr 1fr; /* 文章 / 画像 */
  gap: 56px;
  align-items: center;
}
.ei-think__copy { text-align: left; } /* 客先指示(2026-07-06)：本文は左揃え */
.ei-think__media { max-width: 440px; margin: 0 auto; width: 100%; }
.ei-think__media img { width: 100%; height: auto; display: block; }

/* ② Spirit：区切り線を挟んで下ブロック */
.ei-think__block--spirit {
  margin-top: 72px;
  padding-top: 72px;
  border-top: 1px solid var(--ei-line);
  max-width: 900px;
}

.ei-think__eyebrow {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: 13.5px;
  letter-spacing: 0.08em;
  color: var(--ei-purple);
  margin: 0 0 14px;
}
.ei-think__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(24px, 3.1vw, 34px);
  line-height: 1.42;
  letter-spacing: -0.01em;
  color: var(--ei-ink);
  margin: 0 0 24px;
}
.ei-think__i { color: var(--ei-purple); }
.ei-think__text {
  font-size: clamp(15px, 1.5vw, 16.5px);
  line-height: 2.05;
  color: var(--ei-body);
  margin: 0 0 18px;
  text-wrap: pretty;
}
.ei-think__text:last-child { margin-bottom: 0; }
.ei-think__text--close { font-weight: 700; color: var(--ei-ink); }

/* 3つの I（Insight / Idea / Innovation）＝原稿どおり文中で軽く強調（箱組みにしない） */
.ei-think__i3-inline {
  font-weight: 700;
  color: var(--ei-purple);
}

@media (max-width: 991.98px) {
  .ei-think__inner { padding: 56px 16px 64px; }
  .ei-think__block--media { grid-template-columns: 1fr; gap: 30px; }
  .ei-think__media { order: -1; max-width: 360px; }
  .ei-think__block--spirit { margin-top: 48px; padding-top: 48px; }
}

/* 下層ページでは共通CONTACT帯の英文eyebrowも他の英文ラベルに合わせて字間を詰める
   （トップ index.html は承認済みのため body.ei-sub にスコープして影響させない） */
.ei-sub .ei-contact__eyebrow { letter-spacing: 0.08em; }

/* =========================================================
   COMPANY 会社概要 詳細ページ（全項目）
   ※ 表組みは .ei-company__list / __row / dt / dd を再利用（端末問わずズレない）
   ========================================================= */
.ei-companypage { background: #ffffff; }
.ei-companypage__inner {
  max-width: 1000px;
  margin: 0 auto;
  padding: 72px 24px 88px;
}
.ei-companypage__lead {
  font-size: clamp(15px, 1.5vw, 16.5px);
  line-height: 2;
  color: var(--ei-body);
  margin: 0 0 36px;
}
/* 1つのddに複数行（関連事業所など）を、語の途中で折り返さず行単位で積む */
.ei-company__multi { display: block; }
.ei-company__multi + .ei-company__multi { margin-top: 12px; }
/* 事業内容を三行で表示（客先指示 2026-07-06） */
.ei-company__biz { display: block; }
.ei-company__biz + .ei-company__biz { margin-top: 4px; }
@media (max-width: 767.98px) {
  .ei-companypage__inner { padding: 48px 16px 60px; }
}

/* =========================================================
   BUSINESS 事業内容 中間ハブ（3事業を左右交互で説明）
   ※ 3階層設計の中核：トップ(3つの柱の入口) → このページ(3事業を説明) → 各事業詳細
   ========================================================= */
.ei-bizintro { background: #ffffff; }
.ei-bizintro__inner {
  max-width: 860px;
  margin: 0 auto;
  padding: 72px 24px 16px;
  text-align: center;
}
.ei-bizintro__headline {
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: clamp(18px, 2.3vw, 25px);
  line-height: 1.8;
  color: var(--ei-ink);
  margin: 0;
  text-wrap: balance; /* 行長を均し、行頭に「ら、」等が1つだけ残る泣き別れを防ぐ（客先指示 0714 p5） */
}
.ei-bizintro__lead {
  font-size: clamp(15px, 1.5vw, 16.5px);
  line-height: 2;
  color: var(--ei-body);
  margin: 0;
}

/* ---- 各事業の行（画像 + 説明） ---- */
.ei-bizrow__inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 72px 24px;
  display: grid;
  grid-template-columns: 1fr 1.12fr; /* 画像 / 説明 */
  gap: 56px;
  align-items: center;
}
.ei-bizrow--shade {
  background: #f6f5f9;
  border-top: 1px solid #ececf2;
  border-bottom: 1px solid #ececf2;
}
/* 偶数行は画像を右に（左右交互でリズムを作る） */
.ei-bizrow--rev .ei-bizrow__media { order: 2; }

.ei-bizrow__media {
  background: #f3f2f8;
  border: 1px solid #e8e6ef;
  border-radius: 14px;
  padding: 34px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.ei-bizrow--shade .ei-bizrow__media { background: #ffffff; }
.ei-bizrow__media img {
  width: auto;
  max-width: 100%;
  max-height: 240px;
  object-fit: contain;
  display: block;
}
}

.ei-bizrow__no {
  font-family: "Michroma", var(--ei-font-head);
  font-size: 13px;
  letter-spacing: 0.12em;
  color: var(--ei-purple);
  margin: 0 0 10px;
}
.ei-bizrow__name {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(22px, 2.8vw, 32px);
  line-height: 1.4;
  color: var(--ei-ink);
  margin: 0 0 18px;
}
.ei-bizrow__text {
  font-size: clamp(14.5px, 1.45vw, 16px);
  line-height: 2;
  color: var(--ei-body);
  margin: 0 0 22px;
}
.ei-bizrow__closing {
  font-size: clamp(14.5px, 1.45vw, 16px);
  line-height: 1.95;
  font-weight: 700;
  color: var(--ei-ink);
  margin: 0 0 26px;
  padding: 4px 0 4px 18px;
  border-left: 3px solid var(--ei-purple);
}

.ei-bizrow__sublabel {
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--ei-sub);
  margin: 0 0 12px;
  padding-bottom: 10px;
  border-bottom: 1px solid var(--ei-line);
}
/* 1列・左揃えで各項目を1行ずつ並べる。行間は詰め気味（客先指示 2026-07-15） */
.ei-bizservices {
  list-style: none;
  margin: 0 0 26px;
  padding: 0;
  display: grid;
  grid-template-columns: 1fr;
  gap: 5px;
}
.ei-bizservices li {
  position: relative;
  padding-left: 18px;
  font-size: 14px;
  line-height: 1.6;
  color: var(--ei-body);
  word-break: keep-all;      /* 語中改行を避け、区切り（・）で折り返す */
  overflow-wrap: anywhere;   /* それでも収まらない場合のみ強制改行（あふれ防止） */
}
.ei-bizservices li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0.6em;
  width: 7px;
  height: 7px;
  background: var(--ei-purple);
  border-radius: 2px;
}

/* モーション事業＝取り組みが確定前のため、リリース表記を掲出（客先指示 0710） */
.ei-bizrow__release {
  display: inline-block;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.03em;
  color: var(--ei-purple);
  margin: 0 0 26px;
  padding: 11px 20px;
  background: #f3f2f8;
  border: 1px solid #e4e1ef;
  border-radius: 8px;
}

.ei-bizrow__more {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 14.5px;
  letter-spacing: 0.04em;
  color: var(--ei-purple);
  text-decoration: none;
  padding-bottom: 4px;
  border-bottom: 2px solid transparent;
  transition: color .2s ease, border-color .2s ease, gap .2s ease;
}
.ei-bizrow__more svg { width: 18px; height: 18px; transition: transform .2s ease; }
.ei-bizrow__more:hover { color: var(--ei-purple-dark); border-color: var(--ei-purple); gap: 14px; }
.ei-bizrow__more:hover svg { transform: translateX(2px); }
.ei-bizrow__more:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 4px; }

@media (max-width: 991.98px) {
  .ei-bizrow__inner {
    grid-template-columns: 1fr;
    gap: 28px;
    padding: 56px 16px;
  }
  .ei-bizrow__media { order: -1; max-width: 460px; margin: 0 auto; width: 100%; } /* 画像を常に上に */
  .ei-bizrow--rev .ei-bizrow__media { order: -1; }
  .ei-bizintro__inner { padding: 56px 16px 8px; }
}
@media (max-width: 575.98px) {
  .ei-bizservices { grid-template-columns: 1fr; gap: 6px; }
}
@media (prefers-reduced-motion: reduce) {
  .ei-bizrow__more, .ei-bizrow__more svg { transition: none; }
}

@media (prefers-reduced-motion: reduce) {
  .ei-breadcrumb a { transition: none; }
}

/* =========================================================
   CSR 取り組み ページ
   ※ 共通枠（pagehead/breadcrumb/CONTACT帯）＋ ei-* トークンに準拠
   ========================================================= */

/* ---- CSR ステートメント ---- */
.ei-csrlead { background: #ffffff; }
.ei-csrlead__inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 88px 24px 80px;
  text-align: center;
}
.ei-csrlead__eyebrow {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.08em; /* 英文ラベルの字間を詰める */
  color: var(--ei-purple);
  margin: 0 0 16px;
}
.ei-csrlead__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(24px, 3.3vw, 38px);
  line-height: 1.44;
  letter-spacing: -0.01em;
  color: var(--ei-ink);
  margin: 0 0 34px;
}
.ei-csrlead__body { max-width: 720px; margin: 0 auto; text-align: left; }
.ei-csrlead__text {
  font-size: clamp(15px, 1.5vw, 16.5px);
  line-height: 2.05;
  color: var(--ei-body);
  margin: 0 0 18px;
}
.ei-csrlead__text:last-child { margin-bottom: 0; }

@media (max-width: 767.98px) {
  .ei-csrlead__inner { padding: 56px 16px 52px; }
}

/* ---- 7つの取り組み ---- */
.ei-csract {
  background: #f6f5f9;
  border-top: 1px solid #ececf2;
  border-bottom: 1px solid #ececf2;
}
.ei-csract__inner {
  max-width: 860px;
  margin: 0 auto;
  padding: 84px 24px 88px;
}
.ei-csract__head { text-align: center; max-width: 720px; margin: 0 auto 44px; }
.ei-csract__eyebrow {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: 14px;
  letter-spacing: 0.08em;
  color: var(--ei-purple);
  margin: 0 0 14px;
}
.ei-csract__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(23px, 3.1vw, 34px);
  line-height: 1.4;
  color: var(--ei-ink);
  margin: 0 0 16px;
}
.ei-csract__lead {
  font-size: clamp(14px, 1.4vw, 16px);
  line-height: 1.95;
  color: var(--ei-sub);
  margin: 0;
}
.ei-csract__list {
  list-style: none;
  margin: 0;
  padding: 0;
  border-top: 1px solid #e2e0ea;
}
.ei-csritem {
  display: flex;
  align-items: center;
  gap: clamp(18px, 3vw, 34px);
  padding: 22px 8px 22px 4px;
  border-bottom: 1px solid #e2e0ea;
  background: transparent;
  transition: background .2s ease, padding-left .2s ease;
}
.ei-csritem:hover {
  background: #ffffff;
  padding-left: 16px;
}
.ei-csritem__no {
  flex: none;
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: clamp(18px, 2.2vw, 22px);
  line-height: 1;
  color: var(--ei-purple);
  min-width: 2.4em;
}
.ei-csritem__label {
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: clamp(15.5px, 1.6vw, 18px);
  line-height: 1.6;
  color: var(--ei-ink);
}

@media (max-width: 767.98px) {
  .ei-csract__inner { padding: 56px 16px 60px; }
  .ei-csract__head { margin-bottom: 32px; }
  .ei-csritem { padding: 18px 4px; gap: 16px; align-items: flex-start; }
  .ei-csritem__no { min-width: 2em; padding-top: 2px; }
}

@media (prefers-reduced-motion: reduce) {
  .ei-csritem { transition: none; }
}

/* =========================================================
   NEWS お知らせ一覧 ページ（information.html）
   ※ トップの ei-news と同じ日付・カテゴリの見せ方を踏襲。
     個別記事ページが無い段階のため、各行はリンクではなく静的行。
   ========================================================= */
.ei-newsindex { background: #ffffff; }
.ei-newsindex__inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 72px 24px 88px;
}
.ei-newsindex__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(21px, 2.6vw, 28px);
  line-height: 1.4;
  color: var(--ei-ink);
  margin: 0 0 28px;
  padding-bottom: 18px;
  border-bottom: 2px solid var(--ei-ink);
}
.ei-newsindex__list {
  list-style: none;
  margin: 0;
  padding: 0;
}
.ei-newsentry {
  display: grid;
  grid-template-columns: auto auto 1fr;
  align-items: center;
  gap: 24px;
  padding: 22px 8px;
  border-bottom: 1px solid var(--ei-line);
}
.ei-newsentry__date {
  font-family: "Michroma", var(--ei-font-head);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--ei-muted);
}
.ei-newsentry__cat {
  justify-self: start;
  font-family: var(--ei-font-head);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  color: var(--ei-purple);
  background: #faf4fb;
  border: 1px solid #e7d6ea;
  border-radius: 999px;
  padding: 6px 13px;
}
.ei-newsentry__ttl {
  font-size: 15px;
  line-height: 1.75;
  color: var(--ei-ink);
}
.ei-newsindex__note {
  margin: 28px 0 0;
  font-size: 13px;
  color: var(--ei-muted);
  text-align: center;
}

/* 詳細ページを持つ行はリンク化（矢印付き）。詳細未作成の行は静的のまま。 */
.ei-newsentry--link { padding: 0; }
.ei-newsentry__link {
  display: grid;
  grid-template-columns: auto auto 1fr auto;
  align-items: center;
  gap: 24px;
  padding: 22px 8px;
  text-decoration: none;
  color: inherit;
  transition: background .2s ease;
}
.ei-newsentry__link:hover { background: #faf9fc; }
.ei-newsentry__link:hover .ei-newsentry__ttl { color: var(--ei-purple); }
.ei-newsentry__link:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: -2px; border-radius: 4px; }
.ei-newsentry__arrow {
  width: 18px;
  height: 18px;
  color: var(--ei-muted);
  flex: 0 0 auto;
  transition: transform .2s ease, color .2s ease;
}
.ei-newsentry__link:hover .ei-newsentry__arrow { color: var(--ei-purple); transform: translateX(2px); }

@media (max-width: 767.98px) {
  .ei-newsindex__inner { padding: 52px 16px 60px; }
  .ei-newsentry {
    grid-template-columns: auto auto;
    row-gap: 10px;
    column-gap: 14px;
    padding: 18px 6px;
  }
  .ei-newsentry__ttl { grid-column: 1 / -1; }
  .ei-newsentry__link {
    grid-template-columns: auto auto 1fr;
    row-gap: 10px;
    column-gap: 14px;
    padding: 18px 6px;
  }
  .ei-newsentry__link .ei-newsentry__ttl { grid-column: 1 / -1; }
  .ei-newsentry__arrow { grid-column: 3; grid-row: 1; justify-self: end; }
}
@media (prefers-reduced-motion: reduce) {
  .ei-newsentry__link, .ei-newsentry__arrow { transition: none; }
}

/* =========================================================
   NEWS お知らせ 記事詳細ページ（news-*.html）
   ※ WordPress化時は投稿の single テンプレートに相当。
     現段階はトップ掲載の3件のみ実ページ化（他は本番移行時に生成）。
   ========================================================= */
.ei-article { background: #ffffff; }
.ei-article__inner {
  max-width: 820px;
  margin: 0 auto;
  padding: 72px 24px 88px;
}
.ei-article__head {
  margin: 0 0 32px;
  padding-bottom: 26px;
  border-bottom: 1px solid var(--ei-line);
}
.ei-article__meta {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 16px;
}
.ei-article__date {
  font-family: "Michroma", var(--ei-font-head);
  font-size: 13px;
  letter-spacing: 0.04em;
  color: var(--ei-muted);
}
.ei-article__cat {
  font-family: var(--ei-font-head);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
  color: var(--ei-purple);
  background: #faf4fb;
  border: 1px solid #e7d6ea;
  border-radius: 999px;
  padding: 6px 13px;
}
.ei-article__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1.5;
  color: var(--ei-ink);
  margin: 0;
}
.ei-article__body {
  font-size: clamp(15px, 1.5vw, 16.5px);
  line-height: 2.05;
  color: var(--ei-body);
}
.ei-article__body p { margin: 0 0 20px; }
.ei-article__body p:last-child { margin-bottom: 0; }
.ei-article__body a {
  color: var(--ei-purple);
  text-decoration: underline;
  text-underline-offset: 3px;
  transition: color .2s ease;
}
.ei-article__body a:hover { color: var(--ei-purple-dark); }
.ei-article__body a:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 2px; border-radius: 2px; }
.ei-article__note {
  font-size: 14px;
  color: var(--ei-sub);
}
.ei-article__foot {
  margin-top: 48px;
  padding-top: 28px;
  border-top: 1px solid var(--ei-line);
}
.ei-article__back {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.02em;
  color: var(--ei-purple);
  text-decoration: none;
  padding: 12px 24px;
  border: 1.5px solid var(--ei-purple);
  border-radius: 3px;
  transition: background .2s ease, color .2s ease, gap .2s ease;
}
.ei-article__back svg { width: 18px; height: 18px; }
.ei-article__back:hover { background: var(--ei-purple); color: #fff; gap: 14px; }
.ei-article__back:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 3px; }

@media (max-width: 767.98px) {
  .ei-article__inner { padding: 52px 16px 60px; }
}
@media (prefers-reduced-motion: reduce) {
  .ei-article__back { transition: none; }
}

/* =========================================================
   COLUMN コラム（archive-column.php / single-column.php）
   サムネイル＋日付＋タイトルのカード一覧。デザインはサイト全体と統一。
   ========================================================= */
.ei-collist { background: #ffffff; }
.ei-collist__inner {
  max-width: 1140px;
  margin: 0 auto;
  padding: 72px 24px 88px;
}
.ei-collist__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(21px, 2.6vw, 28px);
  line-height: 1.4;
  color: var(--ei-ink);
  margin: 0 0 12px;
}
.ei-collist__lead {
  font-size: clamp(14.5px, 1.5vw, 16px);
  line-height: 1.9;
  color: var(--ei-sub);
  margin: 0 0 40px;
  padding-bottom: 28px;
  border-bottom: 2px solid var(--ei-ink);
}
.ei-colgrid {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px 28px;
}
.ei-colcard__link {
  display: flex;
  flex-direction: column;
  height: 100%;
  text-decoration: none;
  color: inherit;
}
.ei-colcard__thumb {
  display: block;
  overflow: hidden;
  border-radius: 10px;
  background: #f3f2f8;
  aspect-ratio: 16 / 10;
}
.ei-colcard__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform .4s ease;
}
.ei-colcard__link:hover .ei-colcard__img { transform: scale(1.05); }
.ei-colcard__body { padding: 18px 4px 0; }
.ei-colcard__date {
  display: block;
  font-family: "Michroma", var(--ei-font-head);
  font-size: 12px;
  letter-spacing: 0.04em;
  color: var(--ei-muted);
  margin: 0 0 8px;
}
.ei-colcard__ttl {
  display: block;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 16px;
  line-height: 1.65;
  color: var(--ei-ink);
  transition: color .2s ease;
}
.ei-colcard__link:hover .ei-colcard__ttl { color: var(--ei-purple); }
.ei-colcard__link:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 4px; border-radius: 10px; }
.ei-collist__note {
  margin: 8px 0 0;
  font-size: 14px;
  color: var(--ei-muted);
}

/* ページ送り（コラム一覧・お知らせ一覧 共通） */
.ei-collist__pager,
.ei-newsindex__pager {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  margin-top: 56px;
}
.ei-collist__pager .page-numbers,
.ei-newsindex__pager .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 42px;
  height: 42px;
  padding: 0 12px;
  font-family: var(--ei-font-head);
  font-size: 14px;
  color: var(--ei-ink);
  text-decoration: none;
  border: 1px solid var(--ei-line);
  border-radius: 4px;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.ei-collist__pager a.page-numbers:hover,
.ei-newsindex__pager a.page-numbers:hover {
  border-color: var(--ei-purple);
  color: var(--ei-purple);
}
.ei-collist__pager .page-numbers.current,
.ei-newsindex__pager .page-numbers.current {
  background: var(--ei-purple);
  border-color: var(--ei-purple);
  color: #fff;
}
.ei-collist__pager a.page-numbers:focus-visible,
.ei-newsindex__pager a.page-numbers:focus-visible {
  outline: 2px solid var(--ei-purple);
  outline-offset: 2px;
}

/* コラム詳細のアイキャッチ */
.ei-article__hero {
  margin: 0 0 36px;
  border-radius: 12px;
  overflow: hidden;
  background: #f3f2f8;
}
.ei-article__hero img { width: 100%; height: auto; display: block; }

@media (max-width: 900px) {
  .ei-colgrid { grid-template-columns: repeat(2, 1fr); gap: 30px 22px; }
}
@media (max-width: 560px) {
  .ei-colgrid { grid-template-columns: 1fr; gap: 28px; }
  .ei-collist__inner { padding: 52px 16px 64px; }
}
@media (prefers-reduced-motion: reduce) {
  .ei-colcard__img, .ei-colcard__ttl { transition: none; }
}

/* =========================================================
   CONTACT お問い合わせフォーム ページ（contact.html）
   ※ WordPress化時は Contact Form 7 のフォームに置換。現段階は
     デザイン確認用（実送信なし・入力チェックのみJSで動作）。
   ========================================================= */
.ei-formsec { background: #ffffff; }
.ei-formsec__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 64px 24px 88px;
}
.ei-formsec__lead {
  font-size: clamp(15px, 1.5vw, 16.5px);
  line-height: 2;
  color: var(--ei-body);
  margin: 0 0 20px;
}
.ei-formsec__req-note {
  font-size: 13.5px;
  color: var(--ei-sub);
  margin: 0 0 36px;
}

/* 必須 / 任意 バッジ */
.ei-req, .ei-opt {
  display: inline-block;
  font-family: var(--ei-font-head);
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: 0.02em;
  padding: 4px 8px;
  border-radius: 3px;
  vertical-align: 2px;
  margin-left: 6px;
}
.ei-req { color: #ffffff; background: #b8430f; }   /* 濃いオレンジ：白抜きでAA確保 */
.ei-opt { color: var(--ei-sub); background: #eeeeee; }

/* フォーム行 */
.ei-form__row { margin: 0 0 26px; }
.ei-form__label {
  display: block;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 15px;
  color: var(--ei-ink);
  margin: 0 0 10px;
}
.ei-form__input {
  width: 100%;
  font-family: var(--ei-font-body);
  font-size: 16px;                 /* iOSズーム回避のため16px以上 */
  line-height: 1.6;
  color: var(--ei-ink);
  background: #ffffff;
  border: 1px solid #8b8996;   /* 白背景に対し約3.4:1（非テキストコントラスト3:1を確保） */
  border-radius: 6px;
  padding: 13px 15px;
  transition: border-color .18s ease, box-shadow .18s ease;
  -webkit-appearance: none;
  appearance: none;
}
.ei-form__input::placeholder { color: #767480; }   /* 白背景に約4.5:1 */
.ei-form__input:hover { border-color: #6f6d78; }
.ei-form__input:focus {
  outline: none;
  border-color: var(--ei-purple);
  box-shadow: 0 0 0 3px rgba(145, 7, 130, 0.14);
}
.ei-form__input:focus-visible {
  outline: 2px solid var(--ei-purple);
  outline-offset: 1px;
}
.ei-form__textarea { resize: vertical; min-height: 150px; }
.ei-form__input--short { max-width: 220px; }

/* 確認チェック */
.ei-form__consent {
  margin: 32px 0 0;
  padding: 20px 22px;
  background: #f6f5f9;
  border: 1px solid #e6e4ee;
  border-radius: 8px;
}
.ei-check {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  cursor: pointer;
  margin: 0;
}
.ei-check input[type="checkbox"] {
  flex: none;
  width: 20px;
  height: 20px;
  margin-top: 2px;
  accent-color: var(--ei-purple);
  cursor: pointer;
}
.ei-check input[type="checkbox"]:focus-visible {
  outline: 2px solid var(--ei-purple);
  outline-offset: 2px;
}
.ei-check__text {
  font-size: 14.5px;
  line-height: 1.75;
  color: var(--ei-body);
}

/* プライバシー案内 */
.ei-form__privacy {
  font-size: 13.5px;
  line-height: 1.9;
  color: var(--ei-sub);
  margin: 18px 0 0;
}
.ei-form__privacy a {
  color: var(--ei-purple);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ei-form__privacy a:hover { color: var(--ei-purple-dark); }
.ei-form__privacy a:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 2px; border-radius: 2px; }

/* 送信ボタン */
.ei-form__actions { margin: 32px 0 0; text-align: center; }
.ei-form__submit {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 280px;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 16px;
  letter-spacing: 0.02em;
  color: #ffffff;
  background: var(--ei-purple);
  border: 2px solid var(--ei-purple);
  border-radius: 4px;
  padding: 16px 32px;
  cursor: pointer;
  transition: background .2s ease, border-color .2s ease, transform .2s ease;
}
.ei-form__submit:hover {
  background: var(--ei-purple-dark);
  border-color: var(--ei-purple-dark);
  transform: translateY(-1px);
}
.ei-form__submit:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 3px; }

/* デザイン確認用の注記 */
.ei-form__preview {
  margin: 22px 0 0;
  font-size: 13px;
  line-height: 1.85;
  color: var(--ei-muted);
  text-align: center;
}
.ei-form__preview.is-active {
  color: var(--ei-orange-text);
  font-weight: 700;
}

@media (max-width: 767.98px) {
  .ei-formsec__inner { padding: 48px 16px 60px; }
  .ei-form__submit { width: 100%; min-width: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .ei-form__input, .ei-form__submit { transition: none; }
}

/* =========================================================
   法令・各種方針ページ（security / privacy / privacylaw / antisocial）
   ※ フッター INFORMATION の4ページ共通レイアウト。番号付きの条項＋表＋窓口。
   ========================================================= */
.ei-legal { background: #ffffff; }
.ei-legal__inner {
  max-width: 880px;
  margin: 0 auto;
  padding: 60px 24px 88px;
}
.ei-legal__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(22px, 2.9vw, 31px);
  line-height: 1.5;
  color: var(--ei-ink);
  margin: 0 0 24px;
  padding-bottom: 22px;
  border-bottom: 2px solid var(--ei-ink);
}
.ei-legal__intro {
  font-size: clamp(15px, 1.5vw, 16.5px);
  line-height: 2.05;
  color: var(--ei-body);
  margin: 0 0 40px;
}
.ei-legal__items {
  list-style: none;
  counter-reset: legal;
  margin: 0;
  padding: 0;
}
.ei-legal__item {
  counter-increment: legal;
  padding: 0 0 32px;
  margin: 0 0 32px;
  border-bottom: 1px solid var(--ei-line);
}
.ei-legal__item:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.ei-legal__subtitle {
  display: flex;
  gap: 14px;
  align-items: baseline;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: clamp(16px, 1.8vw, 19px);
  line-height: 1.55;
  color: var(--ei-ink);
  margin: 0 0 14px;
}
.ei-legal__subtitle::before {
  content: counter(legal);
  font-family: "Michroma", var(--ei-font-head);
  font-size: 0.8em;
  color: var(--ei-purple);
  flex: none;
  min-width: 1.5em;
}
.ei-legal__itembody {
  font-size: clamp(14.5px, 1.4vw, 16px);
  line-height: 2;
  color: var(--ei-body);
  padding-left: calc(1.5em + 14px);   /* 番号ぶん字下げして条文を揃える */
}
.ei-legal__itembody > p { margin: 0 0 14px; }
.ei-legal__itembody > p:last-child { margin-bottom: 0; }
.ei-legal__ul {
  list-style: none;
  margin: 8px 0 14px;
  padding: 0;
}
.ei-legal__ul li {
  position: relative;
  padding-left: 20px;
  margin-bottom: 8px;
  line-height: 1.9;
}
.ei-legal__ul li:last-child { margin-bottom: 0; }
.ei-legal__ul li::before {
  content: "";
  position: absolute;
  left: 3px;
  top: 0.8em;
  width: 6px;
  height: 6px;
  background: var(--ei-purple);
  border-radius: 2px;
}
/* 入れ子の (1)(2)… 小見出し */
.ei-legal__sub { margin: 16px 0; }
.ei-legal__sub-label {
  display: block;
  font-weight: 700;
  color: var(--ei-ink);
  margin: 0 0 6px;
}
/* 表（利用目的一覧） */
.ei-legal__tablewrap { overflow-x: auto; margin: 12px 0 10px; }
.ei-legal__table {
  width: 100%;
  border-collapse: collapse;
  font-size: 14px;
  line-height: 1.8;
}
.ei-legal__table th, .ei-legal__table td {
  border: 1px solid #e0dee8;
  padding: 12px 14px;
  text-align: left;
  vertical-align: top;
}
.ei-legal__table thead th {
  background: #f6f5f9;
  font-family: var(--ei-font-head);
  font-weight: 700;
  color: var(--ei-ink);
  white-space: nowrap;
}
.ei-legal__table th[scope="row"] {
  background: #faf9fc;
  font-weight: 700;
  color: var(--ei-ink);
  width: 40%;
}
.ei-legal__note {
  font-size: 13.5px;
  color: var(--ei-sub);
  line-height: 1.9;
  margin: 8px 0 0;
}
/* 窓口ボックス */
.ei-legal__contact {
  margin: 22px 0 0;
  padding: 22px 24px;
  background: #f6f5f9;
  border: 1px solid #e6e4ee;
  border-radius: 8px;
}
.ei-legal__contact p { margin: 0 0 4px; font-size: 14.5px; line-height: 1.9; color: var(--ei-body); }
.ei-legal__contact p:last-child { margin-bottom: 0; }
.ei-legal__contact strong { font-weight: 700; color: var(--ei-ink); }
.ei-legal__contact a {
  color: var(--ei-purple);
  text-decoration: underline;
  text-underline-offset: 3px;
}
.ei-legal__contact a:hover { color: var(--ei-purple-dark); }
.ei-legal__contact a:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 2px; border-radius: 2px; }
/* 制定日など */
.ei-legal__meta {
  margin: 44px 0 0;
  padding-top: 24px;
  border-top: 1px solid var(--ei-line);
  font-size: 14px;
  line-height: 2;
  color: var(--ei-sub);
}

@media (max-width: 767.98px) {
  .ei-legal__inner { padding: 48px 16px 60px; }
  .ei-legal__itembody { padding-left: 0; }   /* 狭幅では字下げを解除して読みやすく */
}
@media (max-width: 575.98px) {
  .ei-legal__table thead { display: none; }
  .ei-legal__table, .ei-legal__table tbody, .ei-legal__table tr,
  .ei-legal__table th, .ei-legal__table td { display: block; width: 100%; }
  .ei-legal__table tr { margin-bottom: 14px; border: 1px solid #e0dee8; border-radius: 6px; overflow: hidden; }
  .ei-legal__table th[scope="row"] { width: 100%; border: none; border-bottom: 1px solid #e0dee8; }
  .ei-legal__table td { border: none; }
}

/* =========================================================
   事業詳細ページ（business-marketing / business-rdb / business-food）
   ※ デザイン確認用。テキスト・一部画像はダミー（正式内容の到着後に差替）。
   ========================================================= */

/* ダミー注記バー */
.ei-dummynote { background: #fdf6ef; border-bottom: 1px solid #f0dcc7; }
.ei-dummynote__inner {
  max-width: 1160px;
  margin: 0 auto;
  padding: 14px 24px;
  display: flex;
  gap: 10px;
  align-items: flex-start;
  font-size: 13.5px;
  line-height: 1.75;
  color: #8a3f12;   /* クリーム背景に約5.6:1 */
}
.ei-dummynote svg { flex: none; width: 18px; height: 18px; margin-top: 2px; }

/* サンプル・バッジ */
.ei-sample {
  display: inline-block;
  font-family: var(--ei-font-head);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.04em;
  color: #ffffff;
  background: #b8430f;
  border-radius: 3px;
  padding: 4px 9px;
  vertical-align: 3px;
  margin-left: 10px;
}

/* プレースホルダー画像 */
.ei-ph {
  aspect-ratio: 16 / 10;
  background:
    repeating-linear-gradient(45deg, rgba(145,7,130,0.03) 0 12px, rgba(145,7,130,0.06) 12px 24px);
  border: 1px dashed #b9b4c9;
  border-radius: 10px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  color: var(--ei-muted);
  text-align: center;
  padding: 16px;
}
.ei-ph svg { width: 32px; height: 32px; opacity: 0.55; }
.ei-ph__label { font-size: 12.5px; line-height: 1.6; }

/* ヒーロー */
.ei-bd-hero { background: #ffffff; }
.ei-bd-hero__inner {
  max-width: 1160px;
  margin: 0 auto;
  padding: 68px 24px 40px;
  display: grid;
  grid-template-columns: 1.04fr 0.96fr;
  gap: 52px;
  align-items: center;
}
.ei-bd-hero__eyebrow {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0.06em;
  color: var(--ei-purple);
  margin: 0 0 16px;
}
.ei-bd-hero__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(26px, 3.6vw, 40px);
  line-height: 1.4;
  letter-spacing: -0.01em;
  color: var(--ei-ink);
  margin: 0 0 24px;
}
.ei-bd-hero__lead {
  font-size: clamp(15px, 1.5vw, 16.5px);
  line-height: 2.05;
  color: var(--ei-body);
  margin: 0;
}
.ei-bd-hero__media { max-width: 460px; width: 100%; margin: 0 auto; }
.ei-bd-hero__media img { width: 100%; height: auto; display: block; }

@media (max-width: 991.98px) {
  .ei-bd-hero__inner { grid-template-columns: 1fr; gap: 28px; padding: 52px 16px 32px; }
  .ei-bd-hero__media { order: -1; max-width: 380px; }
}

/* セクション共通 */
.ei-bd-sec { background: #ffffff; }
.ei-bd-sec--shade { background: #f6f5f9; border-top: 1px solid #ececf2; border-bottom: 1px solid #ececf2; }
.ei-bd-sec__inner { max-width: 1080px; margin: 0 auto; padding: 72px 24px; }
.ei-bd-sec__head { margin: 0 0 38px; }
.ei-bd-sec__eyebrow {
  font-family: "Michroma", var(--ei-font-head);
  font-weight: 400;
  font-size: 13px;
  letter-spacing: 0.08em;
  color: var(--ei-purple);
  margin: 0 0 12px;
}
.ei-bd-sec__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(22px, 3vw, 32px);
  line-height: 1.4;
  color: var(--ei-ink);
  margin: 0;
}
.ei-bd-sec__note { font-size: 13px; color: var(--ei-sub); margin: 14px 0 0; line-height: 1.8; }

/* コンパクト概要のプロース（準備中の事業向け・本文段落） */
.ei-bd-prose { max-width: 760px; }
.ei-bd-prose p { font-size: clamp(15px, 1.5vw, 16.5px); line-height: 2.05; color: var(--ei-body); margin: 0 0 20px; }
.ei-bd-prose p:last-child { margin-bottom: 0; }
/* 準備中ステータスのピル */
.ei-bd-status {
  display: flex; width: fit-content; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 700; color: var(--ei-purple);
  background: #f1e8f0; border: 1px solid #e6d3e4;
  padding: 7px 16px; border-radius: 999px; margin: 0 0 22px;
}
.ei-bd-status::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--ei-purple); }

/* サービスカード */
.ei-bd-services { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 20px; }
.ei-bd-scard { background: #ffffff; border: 1px solid #e8e6ef; border-radius: 12px; padding: 26px 26px 28px; }
.ei-bd-scard__title {
  display: flex; align-items: baseline; gap: 12px;
  font-family: var(--ei-font-head); font-weight: 700; font-size: 17px;
  color: var(--ei-ink); margin: 0 0 12px;
}
.ei-bd-scard__title::before { content: ""; flex: none; width: 8px; height: 8px; background: var(--ei-purple); border-radius: 2px; transform: translateY(-2px); }
.ei-bd-scard__title { word-break: keep-all; overflow-wrap: anywhere; }
.ei-bd-scard__desc { font-size: 14.5px; line-height: 1.95; color: var(--ei-body); margin: 0; }

/* 強み・特徴 */
.ei-bd-features { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ei-bd-feature { background: #ffffff; border: 1px solid #e8e6ef; border-radius: 12px; padding: 30px 26px; }
.ei-bd-feature__no { font-family: "Michroma", var(--ei-font-head); font-size: 16px; color: var(--ei-purple); margin: 0 0 14px; }
.ei-bd-feature__title { font-family: var(--ei-font-head); font-weight: 700; font-size: 17px; color: var(--ei-ink); margin: 0 0 10px; line-height: 1.5; }
.ei-bd-feature__text { font-size: 14.5px; line-height: 1.95; color: var(--ei-body); margin: 0; }

/* 実績・事例 */
.ei-bd-cases { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 26px; }
.ei-bd-case { background: #ffffff; border: 1px solid #e8e6ef; border-radius: 12px; overflow: hidden; }
.ei-bd-case .ei-ph { border: none; border-bottom: 1px dashed #cfc9dc; border-radius: 0; aspect-ratio: 16 / 9; }
.ei-bd-case__body { padding: 22px 24px 26px; }
.ei-bd-case__title { font-family: var(--ei-font-head); font-weight: 700; font-size: 16.5px; color: var(--ei-ink); margin: 0 0 10px; line-height: 1.55; }
.ei-bd-case__text { font-size: 14px; line-height: 1.9; color: var(--ei-body); margin: 0; }

/* 流れ */
.ei-bd-flow { list-style: none; margin: 0; padding: 0; counter-reset: bdflow; }
.ei-bd-step {
  counter-increment: bdflow;
  display: grid; grid-template-columns: auto 1fr; gap: 22px; align-items: start;
  padding: 24px 0; border-bottom: 1px solid var(--ei-line);
}
.ei-bd-step:last-child { border-bottom: none; }
.ei-bd-step::before {
  content: counter(bdflow); grid-row: 1 / 3;
  display: inline-flex; align-items: center; justify-content: center;
  width: 46px; height: 46px; border-radius: 50%;
  background: var(--ei-purple); color: #fff;
  font-family: "Michroma", var(--ei-font-head); font-size: 16px;
}
.ei-bd-step__title { font-family: var(--ei-font-head); font-weight: 700; font-size: 16.5px; color: var(--ei-ink); margin: 6px 0 8px; align-self: center; }
.ei-bd-step__text { font-size: 14px; line-height: 1.9; color: var(--ei-body); margin: 0; }

@media (max-width: 767.98px) {
  .ei-bd-sec__inner { padding: 52px 16px; }
  .ei-bd-services { grid-template-columns: 1fr; gap: 14px; }
  .ei-bd-features { grid-template-columns: 1fr; gap: 14px; max-width: 460px; margin: 0 auto; }
  .ei-bd-cases { grid-template-columns: 1fr; gap: 18px; }
  .ei-bd-step { gap: 16px; }
  .ei-bd-step::before { width: 40px; height: 40px; font-size: 14px; }
}

/* ============================================================
   ブログ（note連携）ページ ＝ blog.html
   ============================================================ */
.ei-note { background: #ffffff; }
.ei-note__inner {
  max-width: 940px;
  margin: 0 auto;
  padding: 72px 24px 80px;
}
.ei-note__head { max-width: 760px; margin: 0 0 36px; }
.ei-note__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: clamp(21px, 2.6vw, 28px);
  line-height: 1.4;
  color: var(--ei-ink);
  margin: 0 0 16px;
  padding-bottom: 18px;
  border-bottom: 2px solid var(--ei-ink);
}
.ei-note__lead {
  font-size: 15.5px;
  line-height: 1.9;
  color: var(--ei-body);
  margin: 0;
}
.ei-note__demo {
  margin: 0 0 22px;
  font-size: 13px;
  line-height: 1.7;
  color: var(--ei-orange-text);
  background: #fff6f1;
  border: 1px solid #f3d9cb;
  border-radius: 6px;
  padding: 10px 14px;
}
.ei-note__list {
  list-style: none;
  margin: 0 0 40px;
  padding: 0;
  display: grid;
  gap: 18px;
}
.ei-note-card__link {
  display: grid;
  grid-template-columns: 168px 1fr;
  gap: 22px;
  align-items: stretch;
  text-decoration: none;
  color: inherit;
  background: #ffffff;
  border: 1px solid var(--ei-line);
  border-radius: 10px;
  overflow: hidden;
  transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}
.ei-note-card__link:hover {
  border-color: #d9c3dd;
  box-shadow: 0 10px 26px rgba(17, 17, 17, 0.07);
  transform: translateY(-2px);
}
.ei-note-card__link:focus-visible {
  outline: 2px solid var(--ei-purple);
  outline-offset: 2px;
}
.ei-note-card__thumb {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 128px;
  background: linear-gradient(135deg, #f4eef6 0%, #efe9f7 55%, #f6f1ea 100%);
}
.ei-note-card__thumbmark {
  font-family: "Michroma", var(--ei-font-head);
  font-size: 20px;
  letter-spacing: 0.08em;
  color: var(--ei-purple);
  opacity: 0.72;
}
.ei-note-card__body {
  display: flex;
  flex-direction: column;
  padding: 18px 20px 18px 0;
}
.ei-note-card__meta {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 8px;
}
.ei-note-card__date {
  font-family: "Michroma", var(--ei-font-head);
  font-size: 12.5px;
  letter-spacing: 0.04em;
  color: var(--ei-muted);
}
.ei-note-card__src {
  font-family: var(--ei-font-head);
  font-size: 11px;
  font-weight: 700;
  line-height: 1;
  color: var(--ei-purple);
  background: #faf4fb;
  border: 1px solid #e7d6ea;
  border-radius: 999px;
  padding: 5px 11px;
}
.ei-note-card__ttl {
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 17px;
  line-height: 1.55;
  color: var(--ei-ink);
  margin-bottom: 6px;
}
.ei-note-card__link:hover .ei-note-card__ttl { color: var(--ei-purple); }
.ei-note-card__excerpt {
  font-size: 14px;
  line-height: 1.85;
  color: var(--ei-sub);
  margin-bottom: 12px;
}
.ei-note-card__more {
  margin-top: auto;
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--ei-font-head);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 0.02em;
  color: var(--ei-purple);
}
.ei-note-card__more svg { width: 15px; height: 15px; transition: transform .2s ease; }
.ei-note-card__link:hover .ei-note-card__more svg { transform: translate(2px, -2px); }

.ei-note__foot { text-align: center; }
.ei-note__account {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  height: 52px;
  padding: 0 26px;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 14px;
  letter-spacing: 0.04em;
  color: var(--ei-purple);
  text-decoration: none;
  border: 2px solid var(--ei-purple);
  border-radius: 3px;
  transition: background .2s ease, color .2s ease, gap .2s ease;
}
.ei-note__account svg { width: 17px; height: 17px; }
.ei-note__account:hover { background: var(--ei-purple); color: #fff; gap: 14px; }
.ei-note__account:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 3px; }

@media (max-width: 575.98px) {
  .ei-note__inner { padding: 56px 16px 64px; }
  .ei-note-card__link { grid-template-columns: 1fr; gap: 0; }
  .ei-note-card__thumb { min-height: 132px; }
  .ei-note-card__body { padding: 16px 18px 18px; }
  .ei-note__account { width: 100%; justify-content: center; }
}
@media (prefers-reduced-motion: reduce) {
  .ei-note-card__link,
  .ei-note-card__more svg,
  .ei-note__account { transition: none; }
  .ei-note-card__link:hover { transform: none; }
}

/* ---- ジャンプ許諾ダイアログ（外部遷移確認・全ページ共通様式） ---- */
.ei-jump {
  width: min(92vw, 440px);
  padding: 0;
  border: none;
  border-radius: 14px;
  box-shadow: 0 24px 60px rgba(17, 17, 17, 0.28);
  color: var(--ei-body);
}
.ei-jump::backdrop {
  background: rgba(17, 17, 17, 0.46);
  backdrop-filter: blur(2px);
}
.ei-jump__inner { padding: 30px 28px 26px; text-align: center; }
.ei-jump__badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: "Michroma", var(--ei-font-head);
  font-size: 13px;
  letter-spacing: 0.06em;
  color: #fff;
  background: var(--ei-purple);
  border-radius: 999px;
  padding: 6px 16px;
  margin-bottom: 16px;
}
.ei-jump__title {
  font-family: var(--ei-font-head);
  font-weight: 900;
  font-size: 19px;
  line-height: 1.5;
  color: var(--ei-ink);
  margin: 0 0 12px;
}
.ei-jump__text {
  font-size: 14px;
  line-height: 1.85;
  color: var(--ei-body);
  margin: 0 0 14px;
}
.ei-jump__article {
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 14.5px;
  line-height: 1.6;
  color: var(--ei-ink);
  background: var(--ei-panel);
  border: 1px solid var(--ei-line);
  border-radius: 8px;
  padding: 12px 14px;
  margin: 0 0 10px;
}
.ei-jump__url {
  font-size: 12.5px;
  color: var(--ei-muted);
  margin: 0 0 22px;
}
.ei-jump__actions {
  display: grid;
  grid-template-columns: 1fr 1.3fr;
  gap: 12px;
}
.ei-jump__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 50px;
  padding: 0 18px;
  font-family: var(--ei-font-head);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.03em;
  text-decoration: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.ei-jump__btn--ghost {
  color: var(--ei-body);
  background: #fff;
  border: 2px solid var(--ei-line);
}
.ei-jump__btn--ghost:hover { border-color: #c9c9c9; background: #fafafa; }
.ei-jump__btn--go {
  color: #fff;
  background: var(--ei-purple);
  border: 2px solid var(--ei-purple);
}
.ei-jump__btn--go:hover { background: var(--ei-purple-dark); border-color: var(--ei-purple-dark); }
.ei-jump__btn:focus-visible { outline: 2px solid var(--ei-purple); outline-offset: 3px; }

.ei-jump[open] { animation: ei-jump-in .18s ease-out; }
@keyframes ei-jump-in {
  from { opacity: 0; transform: translateY(6px) scale(0.98); }
  to   { opacity: 1; transform: none; }
}
@media (max-width: 575.98px) {
  .ei-jump__actions { grid-template-columns: 1fr; }
  .ei-jump__inner { padding: 26px 20px 22px; }
}
@media (prefers-reduced-motion: reduce) {
  .ei-jump[open] { animation: none; }
  .ei-jump::backdrop { backdrop-filter: none; }
  .ei-jump__btn { transition: none; }
}

/* ============================================================
   Contact Form 7 調整（ei-form デザインに馴染ませる）
   ============================================================ */
/* 入力欄ラッパ（CF7の span）をブロック化して全幅を維持 */
.ei-form .wpcf7-form-control-wrap { display: block; }
/* 送信ボタンのスピナー位置 */
.ei-form .wpcf7-spinner { margin: 0 0 0 12px; vertical-align: middle; }
/* 個別項目のエラー文言 */
.ei-form .wpcf7-not-valid-tip {
  display: block;
  margin-top: 7px;
  font-size: 13px;
  line-height: 1.6;
  color: #c0392b;
}
/* エラー状態の入力欄は赤枠で示す */
.ei-form .wpcf7-not-valid {
  border-color: #c0392b !important;
  box-shadow: 0 0 0 1px rgba(192, 57, 43, 0.25);
}
/* フォーム全体の応答メッセージ */
.ei-form .wpcf7-response-output {
  margin: 22px 0 0 !important;
  padding: 14px 16px !important;
  border-radius: 6px;
  border-width: 1px !important;
  font-size: 14px;
  line-height: 1.7;
}
/* 送信成功 */
.ei-form.sent .wpcf7-response-output {
  border-color: #2e7d32 !important;
  background: #f1f8f2;
  color: #1e5a22;
}
/* 検証エラー・送信失敗 */
.ei-form.invalid .wpcf7-response-output,
.ei-form.failed .wpcf7-response-output,
.ei-form.spam .wpcf7-response-output {
  border-color: #c0392b !important;
  background: #fdf3f2;
  color: #9c2c20;
}
/* 送信中の無効ボタンは見た目でも分かるように */
.ei-form .ei-form__submit:disabled { opacity: 0.55; cursor: not-allowed; }
