@charset "UTF-8";
/* =====================================================
   会社概要ページ 追加スタイル（2026-09）
   ・事業内容のサービス導線
   ・CTAセクション
   ・UI/UXアニメーション（他ページとトーン統一）
   既存 style.css は無変更。本ファイルは後読み込みで上書き。
===================================================== */

/* ---------- 事業内容: サービスページへの導線 ---------- */
.business__item { position: relative; }
.business__item-link {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 10px;
  font: 700 13px/1 "Noto Sans JP", "sans-serif";
  letter-spacing: 0.04em;
  border-bottom: 1.5px solid currentColor;
  padding-bottom: 4px;
  transition: gap 0.35s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.3s;
}
@media (hover: hover) { .business__item-link:hover { gap: 15px; opacity: 0.6; } }

/* ---------- CTAセクション ---------- */
.company-cta { padding: 90px 0 110px; }
@media screen and (max-width: 767px) { .company-cta { padding: 60px 0 70px; } }
.company-cta__inner {
  max-width: 1100px;
  margin: 0 auto;
  width: 91.4%;
  display: grid;
  grid-template-columns: 1.25fr 1fr;
  gap: 20px;
}
@media screen and (max-width: 767px) { .company-cta__inner { grid-template-columns: 1fr; } }
.company-cta__card {
  background: #111;
  color: #fff;
  padding: 44px 46px;
  position: relative;
  overflow: hidden;
  opacity: 0;
  transform: translateY(28px);
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.company-cta__card.is-in { opacity: 1; transform: none; }
.company-cta__card.--sub { background: #fff; color: #111; border: 1px solid #ddd; transition-delay: 0.12s; }
@media screen and (max-width: 767px) { .company-cta__card { padding: 30px 24px; } }
.company-cta__card::after {
  content: "";
  position: absolute;
  right: -40px; bottom: -40px;
  width: 180px; height: 180px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,0.09), transparent 70%);
  pointer-events: none;
}
.company-cta__card.--sub::after { background: radial-gradient(circle, rgba(0,0,0,0.05), transparent 70%); }
.company-cta__label {
  font: 900 11px/1 "Caudex", "Noto Sans JP", "sans-serif";
  letter-spacing: 0.28em;
  opacity: 0.65;
  margin-bottom: 14px;
}
.company-cta__title { font: 700 22px/1.6 "Noto Sans JP", "sans-serif"; margin-bottom: 14px; }
@media screen and (max-width: 767px) { .company-cta__title { font-size: 19px; } }
.company-cta__text { font: 500 14px/2 "Noto Sans JP", "sans-serif"; margin-bottom: 26px; opacity: 0.9; }
@media screen and (max-width: 767px) { .company-cta__text { font-size: 13px; } }
.company-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  background: #fff;
  color: #111;
  font: 700 14px/1 "Noto Sans JP", "sans-serif";
  letter-spacing: 0.06em;
  padding: 17px 34px;
  border: 1.5px solid #fff;
  position: relative;
  overflow: hidden;
  transition: gap 0.35s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.3s, color 0.3s, transform 0.3s;
}
.company-cta__btn.--ghost { background: #111; color: #fff; border-color: #111; }
@media (hover: hover) {
  .company-cta__btn:hover { gap: 20px; transform: translateY(-3px); background: transparent; color: #fff; }
  .company-cta__btn.--ghost:hover { background: transparent; color: #111; }
}
.company-cta__btn::after {
  content: "";
  position: absolute;
  top: 0; left: -130%;
  width: 55%; height: 100%;
  background: linear-gradient(120deg, transparent, rgba(255,255,255,0.4), transparent);
  transform: skewX(-22deg);
  pointer-events: none;
}
@media (hover: hover) { .company-cta__btn:hover::after { animation: cp-sweep 0.75s ease; } }
@keyframes cp-sweep { from { left: -130%; } to { left: 140%; } }

/* ---------- UI/UXアニメーション ---------- */
/* 1) 会社概要・事業内容の行が順次スライドイン */
.about__item, .business__item {
  opacity: 0;
  transform: translateY(18px);
  transition: opacity 0.6s cubic-bezier(0.22, 1, 0.36, 1), transform 0.6s cubic-bezier(0.22, 1, 0.36, 1), background-color 0.3s;
}
.about__contents.is-in .about__item,
.business__contents.is-in .business__item { opacity: 1; transform: none; }
.about__contents.is-in .about__item:nth-child(2),
.business__contents.is-in .business__item:nth-child(2) { transition-delay: 0.07s; }
.about__contents.is-in .about__item:nth-child(3),
.business__contents.is-in .business__item:nth-child(3) { transition-delay: 0.14s; }
.about__contents.is-in .about__item:nth-child(4),
.business__contents.is-in .business__item:nth-child(4) { transition-delay: 0.21s; }
.about__contents.is-in .about__item:nth-child(5),
.business__contents.is-in .business__item:nth-child(5) { transition-delay: 0.28s; }
.about__contents.is-in .about__item:nth-child(6) { transition-delay: 0.35s; }
.about__contents.is-in .about__item:nth-child(7) { transition-delay: 0.42s; }
.about__contents.is-in .about__item:nth-child(8) { transition-delay: 0.49s; }
@media (hover: hover) {
  .about__item:hover, .business__item:hover { background-color: rgba(0, 0, 0, 0.022); }
}

/* 2) 事業内容の見出しに色バー（5サービスで色分け） */
.business__item-head { position: relative; }
.business__contents .business__item:nth-child(1) .business__item-head { color: #1f1f1f; }
.business__item {
  border-left: 3px solid transparent;
  padding-left: 14px;
  transition: border-color 0.4s, background-color 0.3s, opacity 0.6s cubic-bezier(0.22,1,0.36,1), transform 0.6s cubic-bezier(0.22,1,0.36,1);
}
.business__contents .business__item:nth-child(1) { border-left-color: #1a1a1a; }
.business__contents .business__item:nth-child(2) { border-left-color: #3d3d3d; }
.business__contents .business__item:nth-child(3) { border-left-color: #606060; }
.business__contents .business__item:nth-child(4) { border-left-color: #828282; }
.business__contents .business__item:nth-child(5) { border-left-color: #a5a5a5; }

/* 3) パートナーロゴ: 順次フェード＋hoverで浮上 */
.partner__link {
  opacity: 0;
  transform: translateY(14px) scale(0.96);
  transition: opacity 0.55s cubic-bezier(0.22, 1, 0.36, 1), transform 0.55s cubic-bezier(0.22, 1, 0.36, 1), filter 0.35s;
}
.partner__contents.is-in .partner__link { opacity: 1; transform: none; }
.partner__contents.is-in .partner__link:nth-child(2) { transition-delay: 0.05s; }
.partner__contents.is-in .partner__link:nth-child(3) { transition-delay: 0.10s; }
.partner__contents.is-in .partner__link:nth-child(4) { transition-delay: 0.15s; }
.partner__contents.is-in .partner__link:nth-child(5) { transition-delay: 0.20s; }
.partner__contents.is-in .partner__link:nth-child(6) { transition-delay: 0.25s; }
.partner__contents.is-in .partner__link:nth-child(7) { transition-delay: 0.30s; }
.partner__contents.is-in .partner__link:nth-child(8) { transition-delay: 0.35s; }
.partner__contents.is-in .partner__link:nth-child(9) { transition-delay: 0.40s; }
@media (hover: hover) {
  .partner__link:hover { transform: translateY(-5px) scale(1.04); filter: saturate(1.15); }
}

/* 4) 拠点カード: 順次出現＋hover浮上 */
.office__item {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.4s;
}
.office__contents.is-in .office__item { opacity: 1; transform: none; }
.office__contents.is-in .office__item:nth-child(2) { transition-delay: 0.12s; }
.office__contents.is-in .office__item:nth-child(3) { transition-delay: 0.24s; }

/* 5) ミッション項目: 順次スライド */
.mission__item {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 0.75s cubic-bezier(0.22, 1, 0.36, 1), transform 0.75s cubic-bezier(0.22, 1, 0.36, 1);
}
.mission__contents.is-in .mission__item { opacity: 1; transform: none; }
.mission__contents.is-in .mission__item:nth-child(2) { transition-delay: 0.15s; }
.mission__item-text { transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1); }
@media (hover: hover) { .mission__item li.mission__item-text:hover { transform: translateX(6px); } }

/* 6) セクション見出しの左バーが伸びる */
.about .parts-title-sec::before,
.business .parts-title-sec::before,
.office .parts-title-sec::before {
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.55s cubic-bezier(0.22, 1, 0.36, 1) 0.1s;
}
.about .parts-title-sec.is-in::before,
.business .parts-title-sec.is-in::before,
.office .parts-title-sec.is-in::before { transform: scaleY(1); }

/* 7) 企業理念セクション: タイトルのフェードアップ */
.corporate__title, .corporate__text {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.8s cubic-bezier(0.22, 1, 0.36, 1), transform 0.8s cubic-bezier(0.22, 1, 0.36, 1);
}
.corporate__contents.is-in .corporate__title { opacity: 1; transform: none; }
.corporate__contents.is-in .corporate__text { opacity: 1; transform: none; transition-delay: 0.14s; }

/* 8) OUR MISSION 見出しの文字間が開く */
.mission__title { transition: letter-spacing 0.9s cubic-bezier(0.22, 1, 0.36, 1); }
.mission__title.is-in { letter-spacing: 0.12em; }

/* ---------- 低モーション設定 ---------- */
@media (prefers-reduced-motion: reduce) {
  .about__item, .business__item, .partner__link, .office__item,
  .mission__item, .corporate__title, .corporate__text, .company-cta__card {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  .business__item-link, .company-cta__btn, .mission__item-text { transition: none !important; }
  .company-cta__btn::after { display: none; }
  .about .parts-title-sec::before,
  .business .parts-title-sec::before,
  .office .parts-title-sec::before { transform: scaleY(1); transition: none; }
  .mission__title { transition: none; }
}

/* =====================================================
   [UPDATE 2026-09 v1.1] レイアウト調整＋勢いのあるアニメーション
===================================================== */

/* ---------- Mission Statement 1枚構成に合わせて中央寄せ ---------- */
.mission__contents { justify-content: center; }
.mission__item { text-align: center; max-width: 900px; }
@media screen and (max-width: 767px) { .mission__item { text-align: left; } }

/* =====================================================
   勢いのあるアニメーション
===================================================== */

/* ---------- A. セクション見出し: 大きく叩き込む ---------- */
.about .parts-title-sec,
.business .parts-title-sec,
.office .parts-title-sec {
  opacity: 0;
  transform: translateX(-40px) skewX(-6deg);
  transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1);
}
.about .parts-title-sec.is-in,
.business .parts-title-sec.is-in,
.office .parts-title-sec.is-in { opacity: 1; transform: none; }

/* ---------- B. 会社概要の行: 左から勢いよく流れ込む ---------- */
.about__item {
  transform: translateX(-34px) !important;
  opacity: 0;
  transition: opacity 0.55s cubic-bezier(0.34, 1.4, 0.64, 1), transform 0.55s cubic-bezier(0.34, 1.4, 0.64, 1), background-color 0.3s;
}
.about__contents.is-in .about__item { opacity: 1; transform: none !important; }
/* 行の左端に走るライン */
.about__item { position: relative; overflow: hidden; }
.about__item::before {
  content: "";
  position: absolute;
  left: 0; top: 0;
  width: 3px; height: 100%;
  background: linear-gradient(180deg, #111, #9a9a9a);
  transform: scaleY(0);
  transform-origin: top;
  transition: transform 0.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.about__contents.is-in .about__item::before { transform: scaleY(1); }
.about__contents.is-in .about__item:nth-child(2)::before { transition-delay: 0.06s; }
.about__contents.is-in .about__item:nth-child(3)::before { transition-delay: 0.12s; }
.about__contents.is-in .about__item:nth-child(4)::before { transition-delay: 0.18s; }
.about__contents.is-in .about__item:nth-child(5)::before { transition-delay: 0.24s; }
.about__contents.is-in .about__item:nth-child(6)::before { transition-delay: 0.30s; }
.about__contents.is-in .about__item:nth-child(7)::before { transition-delay: 0.36s; }
@media (hover: hover) {
  .about__item:hover { transform: translateX(7px) !important; background-color: rgba(0,0,0,0.03); }
}

/* ---------- C. 事業内容カード: 大きく跳ね上がって出現 ---------- */
.business__item {
  opacity: 0;
  transform: translateY(40px) scale(0.94);
  transition: opacity 0.7s cubic-bezier(0.34, 1.5, 0.64, 1), transform 0.7s cubic-bezier(0.34, 1.5, 0.64, 1), border-color 0.4s, box-shadow 0.4s, background-color 0.3s;
}
.business__contents.is-in .business__item { opacity: 1; transform: none; }
@media (hover: hover) {
  .business__contents .business__item:nth-child(1):hover { box-shadow: 0 14px 34px rgba(0, 0, 0, 0.16); transform: translateY(-6px); }
  .business__contents .business__item:nth-child(2):hover { box-shadow: 0 14px 34px rgba(0, 0, 0, 0.14); transform: translateY(-6px); }
  .business__contents .business__item:nth-child(3):hover { box-shadow: 0 14px 34px rgba(0, 0, 0, 0.12); transform: translateY(-6px); }
  .business__contents .business__item:nth-child(4):hover { box-shadow: 0 14px 34px rgba(0, 0, 0, 0.10); transform: translateY(-6px); }
  .business__contents .business__item:nth-child(5):hover { box-shadow: 0 14px 34px rgba(0, 0, 0, 0.09); transform: translateY(-6px); }
}
/* 色バーが伸びる */
.business__item { border-left-width: 4px; }
.business__item-head { position: relative; display: inline-block; }
.business__item-head::after {
  content: "";
  position: absolute;
  left: 0; bottom: -3px;
  width: 100%; height: 7px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.25s;
  z-index: -1;
  opacity: 0.32;
}
.business__contents .business__item:nth-child(1) .business__item-head::after { background: #1a1a1a; }
.business__contents .business__item:nth-child(2) .business__item-head::after { background: #3d3d3d; }
.business__contents .business__item:nth-child(3) .business__item-head::after { background: #606060; }
.business__contents .business__item:nth-child(4) .business__item-head::after { background: #828282; }
.business__contents .business__item:nth-child(5) .business__item-head::after { background: #a5a5a5; }
.business__contents.is-in .business__item-head::after { transform: scaleX(1); }

/* ---------- D. 事業リンク: 矢印が常時ゆらぐ ---------- */
.business__item-link span { display: inline-block; animation: cp-arrow-nudge 2.2s ease-in-out infinite; }
@keyframes cp-arrow-nudge {
  0%, 100% { transform: translateX(0); }
  50%      { transform: translateX(6px); }
}

/* ---------- E. パートナーロゴ: 回転しながら跳ねて出現 ---------- */
.partner__link {
  transform: translateY(26px) scale(0.8) rotate(-6deg);
  transition: opacity 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), transform 0.6s cubic-bezier(0.34, 1.56, 0.64, 1), filter 0.35s;
}
.partner__contents.is-in .partner__link { transform: none; }
@media (hover: hover) {
  .partner__link:hover { transform: translateY(-8px) scale(1.09) rotate(1.5deg); filter: saturate(1.25); }
}

/* ---------- F. 拠点カード: 横からスライド＋hoverで浮上 ---------- */
.office__item {
  transform: translateY(34px) scale(0.97);
  transition: opacity 0.75s cubic-bezier(0.34, 1.4, 0.64, 1), transform 0.75s cubic-bezier(0.34, 1.4, 0.64, 1), box-shadow 0.4s;
}
.office__contents.is-in .office__item { transform: none; }
@media (hover: hover) {
  .office__item:hover { transform: translateY(-6px); box-shadow: 0 16px 38px rgba(0,0,0,0.12); }
}

/* ---------- G. 企業理念: 文字が大きく迫ってくる ---------- */
.corporate__title {
  transform: translateY(30px) scale(0.9);
  transition: opacity 0.9s cubic-bezier(0.22, 1, 0.36, 1), transform 0.9s cubic-bezier(0.22, 1, 0.36, 1);
  letter-spacing: 0.06em;
}
.corporate__contents.is-in .corporate__title { transform: none; }
/* 常時ゆっくり脈打つ */
.corporate__contents.is-in .corporate__title { animation: cp-breathe 4.5s ease-in-out 1s infinite; }
@keyframes cp-breathe {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.025); }
}

/* ---------- H. OUR MISSION: 文字が一気に展開 ---------- */
.mission__title {
  letter-spacing: 0.02em;
  transition: letter-spacing 1.1s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.8s;
}
.mission__title.is-in { letter-spacing: 0.24em; }
.mission__item-text {
  transition: transform 0.35s cubic-bezier(0.22, 1, 0.36, 1), opacity 0.6s;
}

/* ---------- I. CTAカード: 大きく迫り上がる＋常時グロー ---------- */
.company-cta__card {
  transform: translateY(44px) scale(0.95);
  transition: opacity 0.85s cubic-bezier(0.34, 1.4, 0.64, 1), transform 0.85s cubic-bezier(0.34, 1.4, 0.64, 1), box-shadow 0.45s;
}
.company-cta__card.is-in { transform: none; }
@media (hover: hover) {
  .company-cta__card:hover { box-shadow: 0 22px 52px rgba(0,0,0,0.22); }
  .company-cta__card.--sub:hover { box-shadow: 0 22px 52px rgba(0,0,0,0.12); }
}
.company-cta__btn { animation: cp-cta-pulse 2.6s ease-in-out infinite; }
@keyframes cp-cta-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.35); }
  50%      { box-shadow: 0 0 0 12px rgba(255, 255, 255, 0); }
}
.company-cta__card.--sub .company-cta__btn { animation-name: cp-cta-pulse-dark; }
@keyframes cp-cta-pulse-dark {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.3); }
  50%      { box-shadow: 0 0 0 12px rgba(0, 0, 0, 0); }
}
/* CTAラベルが横に流れる */
.company-cta__label { overflow: hidden; }
.company-cta__card.is-in .company-cta__label { animation: cp-label-in 0.7s cubic-bezier(0.22, 1, 0.36, 1) 0.2s both; }
@keyframes cp-label-in {
  from { opacity: 0; transform: translateX(-18px); letter-spacing: 0.1em; }
  to   { opacity: 0.65; transform: none; letter-spacing: 0.28em; }
}

/* ---------- J. 所在地の動画: ゆっくりズーム（常時） ----------
   ※ 元CSSが transform: translateX(-50%) で中央寄せしているため、
     アニメーション側でも translateX(-50%) を必ず含める（中央寄れの打ち消し防止） */
.office__video {
  animation: cp-video-zoom 24s ease-in-out infinite alternate;
  transform-origin: center center;
}
@keyframes cp-video-zoom {
  from { transform: translateX(-50%) scale(1); }
  to   { transform: translateX(-50%) scale(1.06); }
}

/* ---------- K. スクロールプログレスバー ---------- */
.company-progress {
  position: fixed;
  top: 0; left: 0;
  height: 4px; width: 100%;
  transform-origin: left;
  transform: scaleX(var(--cp-progress, 0));
  background: linear-gradient(90deg, #111, #4a4a4a, #8a8a8a, #c8c8c8);
  box-shadow: 0 0 12px 2px rgba(0, 0, 0, 0.26);
  z-index: 9999;
  pointer-events: none;
  transition: transform 0.12s linear;
}

/* ---------- 低モーション: v1.1追加分すべて無効化 ---------- */
@media (prefers-reduced-motion: reduce) {
  .about .parts-title-sec,
  .business .parts-title-sec,
  .office .parts-title-sec,
  .about__item, .business__item, .partner__link, .office__item,
  .corporate__title, .company-cta__card {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
    animation: none !important;
  }
  .about__item::before,
  .business__item-head::after { transform: scaleX(1) scaleY(1); transition: none; }
  .business__item-link span,
  .company-cta__btn,
  .company-cta__card.is-in .company-cta__label { animation: none !important; }
  .mission__title.is-in { letter-spacing: 0.12em; transition: none; }
  .office__video { animation: none !important; transform: translateX(-50%) !important; }
  .company-progress { display: none; }
}

/* =====================================================
   [UPDATE v1.2] アニメーションを大きなアクションへ強化
   移動量・回転・スケールを拡大し、視線を大きく動かす。
===================================================== */

/* ---------- A+. 見出し: さらに大きく叩き込む＋下線が走る ---------- */
.about .parts-title-sec,
.business .parts-title-sec,
.office .parts-title-sec {
  transform: translateX(-90px) skewX(-12deg) scale(0.88);
  transition: opacity 0.85s cubic-bezier(0.34, 1.4, 0.64, 1), transform 0.85s cubic-bezier(0.34, 1.4, 0.64, 1);
  position: relative;
}
.about .parts-title-sec.is-in,
.business .parts-title-sec.is-in,
.office .parts-title-sec.is-in { transform: none; }
.about .parts-title-sec::after,
.business .parts-title-sec::after,
.office .parts-title-sec::after {
  content: "";
  position: absolute;
  left: 0; bottom: -10px;
  width: 100%; height: 3px;
  background: linear-gradient(90deg, #111, #6a6a6a 45%, #c4c4c4 75%, transparent);
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 1s cubic-bezier(0.22, 1, 0.36, 1) 0.25s;
}
.about .parts-title-sec.is-in::after,
.business .parts-title-sec.is-in::after,
.office .parts-title-sec.is-in::after { transform: scaleX(1); }

/* ---------- B+. 会社概要の行: 移動量を大きく＋わずかに回転 ---------- */
.about__item {
  transform: translateX(-80px) rotate(-1.5deg) !important;
  transition: opacity 0.7s cubic-bezier(0.34, 1.5, 0.64, 1), transform 0.7s cubic-bezier(0.34, 1.5, 0.64, 1), background-color 0.3s;
}
.about__contents.is-in .about__item { transform: none !important; }
.about__contents.is-in .about__item:nth-child(2) { transition-delay: 0.07s; }
.about__contents.is-in .about__item:nth-child(3) { transition-delay: 0.14s; }
.about__contents.is-in .about__item:nth-child(4) { transition-delay: 0.21s; }
.about__contents.is-in .about__item:nth-child(5) { transition-delay: 0.28s; }
.about__contents.is-in .about__item:nth-child(6) { transition-delay: 0.35s; }
.about__contents.is-in .about__item:nth-child(7) { transition-delay: 0.42s; }
.about__item::before { width: 5px; }
@media (hover: hover) {
  .about__item:hover { transform: translateX(14px) !important; }
}

/* ---------- C+. 事業カード: 大きく跳ね上がる（回転＋スケール強化） ---------- */
.business__item {
  transform: translateY(80px) scale(0.82) rotate(-2.5deg);
  transition: opacity 0.85s cubic-bezier(0.34, 1.6, 0.64, 1), transform 0.85s cubic-bezier(0.34, 1.6, 0.64, 1), border-color 0.4s, box-shadow 0.4s, background-color 0.3s;
}
.business__contents.is-in .business__item { transform: none; }
.business__contents.is-in .business__item:nth-child(2) { transition-delay: 0.10s; }
.business__contents.is-in .business__item:nth-child(3) { transition-delay: 0.20s; }
.business__contents.is-in .business__item:nth-child(4) { transition-delay: 0.30s; }
.business__contents.is-in .business__item:nth-child(5) { transition-delay: 0.40s; }
.business__item { border-left-width: 6px; }
@media (hover: hover) {
  .business__contents .business__item:hover { transform: translateY(-12px) scale(1.02); }
}
/* マーカーをより太く・勢いよく */
.business__item-head::after { height: 12px; bottom: -4px; }

/* ---------- D+. 事業リンクの矢印: 大きく往復 ---------- */
@keyframes cp-arrow-nudge {
  0%, 100% { transform: translateX(0); }
  50%      { transform: translateX(12px); }
}

/* ---------- E+. パートナーロゴ: 大きく回転しながら飛び込む ---------- */
.partner__link {
  transform: translateY(60px) scale(0.55) rotate(-16deg);
  transition: opacity 0.75s cubic-bezier(0.34, 1.7, 0.64, 1), transform 0.75s cubic-bezier(0.34, 1.7, 0.64, 1), filter 0.35s;
}
.partner__contents.is-in .partner__link { transform: none; }
.partner__contents.is-in .partner__link:nth-child(2) { transition-delay: 0.07s; }
.partner__contents.is-in .partner__link:nth-child(3) { transition-delay: 0.14s; }
.partner__contents.is-in .partner__link:nth-child(4) { transition-delay: 0.21s; }
.partner__contents.is-in .partner__link:nth-child(5) { transition-delay: 0.28s; }
.partner__contents.is-in .partner__link:nth-child(6) { transition-delay: 0.35s; }
.partner__contents.is-in .partner__link:nth-child(7) { transition-delay: 0.42s; }
.partner__contents.is-in .partner__link:nth-child(8) { transition-delay: 0.49s; }
.partner__contents.is-in .partner__link:nth-child(9) { transition-delay: 0.56s; }
@media (hover: hover) {
  .partner__link:hover { transform: translateY(-14px) scale(1.18) rotate(4deg); filter: saturate(1.35); }
}

/* ---------- F+. 拠点カード: 大きくせり上がる ---------- */
.office__item {
  transform: translateY(80px) scale(0.9) rotate(1.5deg);
  transition: opacity 0.9s cubic-bezier(0.34, 1.5, 0.64, 1), transform 0.9s cubic-bezier(0.34, 1.5, 0.64, 1), box-shadow 0.4s;
}
.office__contents.is-in .office__item { transform: none; }
.office__contents.is-in .office__item:nth-child(2) { transition-delay: 0.18s; }
@media (hover: hover) {
  .office__item:hover { transform: translateY(-14px) scale(1.03); box-shadow: 0 24px 50px rgba(0,0,0,0.16); }
}

/* ---------- G+. 企業理念タイトル: 大きく迫り出す＋強い脈動 ---------- */
.corporate__title {
  transform: translateY(70px) scale(0.72);
  transition: opacity 1s cubic-bezier(0.34, 1.4, 0.64, 1), transform 1s cubic-bezier(0.34, 1.4, 0.64, 1);
}
.corporate__contents.is-in .corporate__title { animation: cp-breathe-strong 4s ease-in-out 1.1s infinite; }
@keyframes cp-breathe-strong {
  0%, 100% { transform: scale(1); }
  50%      { transform: scale(1.07); }
}

/* ---------- H+. OUR MISSION: 文字間がさらに大きく展開＋せり上がり ---------- */
.mission__title {
  letter-spacing: -0.02em;
  transform: translateY(40px);
  opacity: 0;
  transition: letter-spacing 1.3s cubic-bezier(0.22, 1, 0.36, 1), transform 1s cubic-bezier(0.34, 1.4, 0.64, 1), opacity 0.9s;
}
.mission__title.is-in { letter-spacing: 0.34em; transform: none; opacity: 1; }
/* ミッション本文も大きくせり上がる */
.mission__item {
  transform: translateY(60px) scale(0.94);
  transition: opacity 0.9s cubic-bezier(0.34, 1.4, 0.64, 1), transform 0.9s cubic-bezier(0.34, 1.4, 0.64, 1);
}
.mission__contents.is-in .mission__item { transform: none; }

/* ---------- I+. CTAカード: さらに大きく迫り上がる＋強い波紋 ---------- */
.company-cta__card {
  transform: translateY(90px) scale(0.86) rotate(-1.5deg);
  transition: opacity 1s cubic-bezier(0.34, 1.5, 0.64, 1), transform 1s cubic-bezier(0.34, 1.5, 0.64, 1), box-shadow 0.45s;
}
.company-cta__card.is-in { transform: none; }
.company-cta__card.--sub { transition-delay: 0.16s; }
@keyframes cp-cta-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.5); }
  50%      { box-shadow: 0 0 0 20px rgba(255, 255, 255, 0); }
}
@keyframes cp-cta-pulse-dark {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.42); }
  50%      { box-shadow: 0 0 0 20px rgba(0, 0, 0, 0); }
}
@media (hover: hover) {
  .company-cta__btn:hover { transform: translateY(-6px) scale(1.06); }
}

/* ---------- L. セクション全体がわずかにせり上がる（スクロール連動の大きな流れ） ---------- */
.about__inner, .business__inner, .partner__inner, .office__inner, .mission__inner {
  transition: transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}

/* ---------- 低モーション（v1.2分） ---------- */
@media (prefers-reduced-motion: reduce) {
  .about .parts-title-sec,
  .business .parts-title-sec,
  .office .parts-title-sec,
  .about__item, .business__item, .partner__link, .office__item,
  .corporate__title, .company-cta__card, .mission__item, .mission__title {
    transform: none !important;
    animation: none !important;
    transition: none !important;
    opacity: 1 !important;
  }
  .about .parts-title-sec::after,
  .business .parts-title-sec::after,
  .office .parts-title-sec::after { transform: scaleX(1); transition: none; }
  .office__video { transform: translateX(-50%) !important; }
}

/* =====================================================
   [UPDATE v1.3] モノトーン統一・トーン設計の最適化
   有彩色を廃し、黒〜グレーの濃淡で階層と動きを表現する。
   ※本ブロックが最終定義（後勝ち）
===================================================== */

/* ---------- 5サービスの識別: 濃度の段階で表す ---------- */
.business__contents .business__item:nth-child(1) { border-left-color: #111111; }
.business__contents .business__item:nth-child(2) { border-left-color: #3a3a3a; }
.business__contents .business__item:nth-child(3) { border-left-color: #636363; }
.business__contents .business__item:nth-child(4) { border-left-color: #8c8c8c; }
.business__contents .business__item:nth-child(5) { border-left-color: #b5b5b5; }

/* 事業名の下のマーカーも同じ濃度段階で */
.business__contents .business__item:nth-child(1) .business__item-head::after { background: #111111; opacity: 0.14; }
.business__contents .business__item:nth-child(2) .business__item-head::after { background: #3a3a3a; opacity: 0.15; }
.business__contents .business__item:nth-child(3) .business__item-head::after { background: #636363; opacity: 0.18; }
.business__contents .business__item:nth-child(4) .business__item-head::after { background: #8c8c8c; opacity: 0.22; }
.business__contents .business__item:nth-child(5) .business__item-head::after { background: #b5b5b5; opacity: 0.28; }

/* hover影も無彩色の濃淡で統一（色味なし） */
@media (hover: hover) {
  .business__contents .business__item:nth-child(1):hover,
  .business__contents .business__item:nth-child(2):hover,
  .business__contents .business__item:nth-child(3):hover,
  .business__contents .business__item:nth-child(4):hover,
  .business__contents .business__item:nth-child(5):hover {
    box-shadow: 0 16px 38px rgba(0, 0, 0, 0.16);
    transform: translateY(-12px) scale(1.02);
    border-left-color: #111111;
  }
}

/* ---------- 会社概要の行ライン: 黒→薄グレーのグラデ ---------- */
.about__item::before {
  background: linear-gradient(180deg, #111111, #bdbdbd);
}

/* ---------- セクション見出しの下線: 黒から消えていくグラデ ---------- */
.about .parts-title-sec::after,
.business .parts-title-sec::after,
.office .parts-title-sec::after {
  background: linear-gradient(90deg, #111111, #767676 40%, #d5d5d5 70%, transparent);
  height: 2px;
}

/* ---------- スクロールプログレスバー: 黒のグラデ＋控えめな影 ---------- */
.company-progress {
  height: 3px;
  background: linear-gradient(90deg, #000000, #4a4a4a 55%, #9e9e9e);
  box-shadow: 0 0 10px 1px rgba(0, 0, 0, 0.3);
}

/* ---------- CTAカード: モノトーンの対比を強める ---------- */
.company-cta__card { background: #0d0d0d; }
.company-cta__card.--sub { background: #ffffff; border-color: #d6d6d6; }
.company-cta__card::after { background: radial-gradient(circle, rgba(255,255,255,0.07), transparent 70%); }
.company-cta__card.--sub::after { background: radial-gradient(circle, rgba(0,0,0,0.045), transparent 70%); }
/* 波紋も無彩色 */
@keyframes cp-cta-pulse {
  0%, 100% { box-shadow: 0 0 0 0 rgba(255, 255, 255, 0.45); }
  50%      { box-shadow: 0 0 0 20px rgba(255, 255, 255, 0); }
}
@keyframes cp-cta-pulse-dark {
  0%, 100% { box-shadow: 0 0 0 0 rgba(0, 0, 0, 0.38); }
  50%      { box-shadow: 0 0 0 20px rgba(0, 0, 0, 0); }
}

/* ---------- パートナーロゴ: hoverはグレースケール解除で見せる ---------- */
.partner__link { filter: grayscale(1) contrast(1.02); }
@media (hover: hover) {
  .partner__link:hover { filter: grayscale(0); transform: translateY(-14px) scale(1.18) rotate(4deg); }
}

/* ---------- 拠点カード・その他の影も無彩色に統一 ---------- */
@media (hover: hover) {
  .office__item:hover { box-shadow: 0 24px 50px rgba(0, 0, 0, 0.18); }
  .company-cta__card:hover { box-shadow: 0 24px 54px rgba(0, 0, 0, 0.26); }
  .company-cta__card.--sub:hover { box-shadow: 0 24px 54px rgba(0, 0, 0, 0.14); }
  .about__item:hover { background-color: rgba(0, 0, 0, 0.035); }
}
