/* ===================================
   SERVICE PAGE STYLES
   事業内容 ページ専用スタイル
=================================== */

/* ------------------------------ */
/* KV: service専用の低背高バリアント */
/* ------------------------------ */
.m_kv--service {
  height: 200px;
  overflow: hidden;
}

@media (min-width: 768px) {
  .m_kv--service { height: 230px; }
}

@media (min-width: 1080px) {
  .m_kv--service { height: 260px; }
}

.m_kv--service .m_kv_contents {
  bottom: 28px;
}

@media (min-width: 768px) {
  .m_kv--service .m_kv_contents { bottom: 34px; }
}

@media (min-width: 1080px) {
  .m_kv--service .m_kv_contents { bottom: 40px; }
}

/* 右下の透過ゴースト文字 */
.m_kv_ghost {
  position: absolute;
  right: -0.06em;
  bottom: -0.3em;
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-weight: 300;
  font-size: 90px;
  line-height: 1;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.05);
  pointer-events: none;
  user-select: none;
}

@media (min-width: 768px) {
  .m_kv_ghost { font-size: 130px; }
}

@media (min-width: 1080px) {
  .m_kv_ghost { font-size: 160px; }
}

/* ============================================================
   Service Index Nav (sticky) — Editorial
   Cormorant Italic の番号 + Noto Sans JP のトラッキング
============================================================ */

.service_nav {
  position: sticky;
  top: 0;
  z-index: 20;
  background: rgba(255, 255, 255, .92);
  backdrop-filter: saturate(1.2) blur(8px);
  -webkit-backdrop-filter: saturate(1.2) blur(8px);
  border-bottom: 1px solid var(--line-color, #d5dae5);
}
.service_nav_inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px 24px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
@media screen and (min-width: 768px) {
  .service_nav_inner { padding: 22px 64px; }
}
@media screen and (min-width: 1080px) {
  .service_nav_inner { padding: 22px 100px; }
}

.service_nav_label {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: "Cormorant Garamond", "Zen Old Mincho", serif;
  font-size: 13px;
  letter-spacing: .32em;
  color: var(--primary-color, #03113E);
  text-transform: uppercase;
  flex-shrink: 0;
}
.service_nav_label::before {
  content: "";
  width: 24px; height: 1px;
  background: var(--primary-color, #03113E);
}
@media screen and (max-width: 767px) {
  .service_nav_label { font-size: 11px; letter-spacing: .24em; }
  .service_nav_label::before { width: 16px; }
}

.service_nav_list {
  display: flex;
  align-items: center;
  gap: 28px;
  list-style: none;
  padding: 0;
  margin: 0;
}
@media screen and (max-width: 767px) {
  .service_nav_list { gap: 16px; }
}
.service_nav_list a {
  display: inline-flex;
  align-items: baseline;
  gap: 8px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12.5px;
  letter-spacing: .14em;
  color: #4a4f65;
  padding: 6px 0;
  position: relative;
  transition: color .35s ease;
  text-decoration: none;
}
.service_nav_list a::after {
  content: "";
  position: absolute;
  left: 0; bottom: 0;
  width: 0; height: 1px;
  background: var(--accent-color, #4D76FF);
  transition: width .4s cubic-bezier(.2,.6,.2,1);
}
.service_nav_list a:hover { color: var(--accent-color, #4D76FF); }
.service_nav_list a:hover::after { width: 100%; }
.service_nav_list a span {
  font-family: "Cormorant Garamond", "Zen Old Mincho", serif;
  font-style: italic;
  font-weight: 400;
  font-size: 13px;
  color: #6a7089;
  letter-spacing: .02em;
  transition: color .35s ease;
}
.service_nav_list a:hover span { color: var(--accent-color, #4D76FF); }
@media screen and (max-width: 767px) {
  .service_nav_list a { font-size: 11.5px; letter-spacing: .08em; gap: 6px; }
  .service_nav_list a span { font-size: 12px; }
}

/* ============================================================
   Service Lead — Editorial
   About セクションと同じ言語で
============================================================ */

.service_lead {
  position: relative;
  padding: 80px 24px 100px;
  background: var(--white-color, #fff);
  overflow: hidden;
}
@media screen and (min-width: 768px) {
  .service_lead { padding: 100px 64px 120px; }
}
@media screen and (min-width: 1080px) {
  .service_lead { padding: 120px 100px 140px; }
}

/* 左端アクセントライン */
.service_lead::before {
  content: "";
  position: absolute;
  left: 0; top: 0;
  width: 2px; height: 80px;
  background: var(--accent-color, #4D76FF);
}

/* Grid: 左 head / 右 サブ本文（右カラムは下寄せ） */
.service_lead_grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 40px;
  align-items: end;
  position: relative;
}
@media screen and (min-width: 768px) {
  .service_lead_grid {
    grid-template-columns: 1.15fr 1fr;
    gap: 64px;
    padding-top: 24px;
    border-top: 1px solid var(--line-color, #d5dae5);
  }
}
@media screen and (min-width: 1080px) {
  .service_lead_grid { gap: 80px; padding-top: 32px; }
}

/* ---- 左：head ---- */
.service_lead_head { position: relative; }

.service_lead_eyebrow {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: "Cormorant Garamond", "Zen Old Mincho", serif;
  font-size: 14px;
  letter-spacing: .28em;
  color: var(--primary-color, #03113E);
  text-transform: uppercase;
  margin-bottom: 40px;
}
.service_lead_eyebrow .en { font-weight: 400; }
.service_lead_eyebrow .sep {
  width: 56px; height: 1px;
  background: var(--primary-color, #03113E);
  opacity: .6;
}
.service_lead_eyebrow .jp {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  letter-spacing: .18em;
  color: #6a7089;
  text-transform: none;
}
@media screen and (min-width: 768px) {
  .service_lead_eyebrow { margin-bottom: 56px; }
}

.service_lead_headline {
  font-family: "Zen Old Mincho", "Noto Serif JP", serif;
  font-weight: 500;
  color: var(--primary-color, #03113E);
  font-size: clamp(38px, 5.2vw, 76px);
  line-height: 1.3;
  letter-spacing: .05em;
}
.service_lead_headline .accent { color: var(--accent-color, #4D76FF); }

/* ステートメント（技術を市場へ。AIを現場へ。） */
.svo_lead_state {
  font-family: "Zen Old Mincho", "Noto Serif JP", serif;
  font-size: clamp(18px, 2.0vw, 22px);
  font-weight: 500;
  letter-spacing: .1em;
  line-height: 1.7;
  color: var(--primary-color, #03113E);
  margin-top: 32px;
  padding-bottom: 0;
  border-bottom: none;
  display: flex;
  align-items: center;
  gap: 16px;
}
.svo_lead_state::before {
  content: "";
  width: 32px; height: 1px;
  background: var(--accent-color, #4D76FF);
  flex-shrink: 0;
}
@media screen and (min-width: 768px) {
  .svo_lead_state { margin-top: 40px; }
}

/* ---- 右：本文（ヘッドライン基準に下寄せ） ---- */
.svo_lead_side {
  padding-top: 0;
  padding-bottom: 12px;
  display: flex;
  flex-direction: column;
  gap: 24px;
  position: relative;
  flex: none;   /* 既存の flex ルールが残っていた場合の打ち消し */
  min-width: 0;
}
/* 上端の短罫でヘッドラインの深部と対比 */
.svo_lead_side::before {
  content: "";
  display: block;
  width: 48px; height: 1px;
  background: var(--primary-color, #03113E);
  opacity: .5;
  margin-bottom: 4px;
}
@media screen and (min-width: 768px) {
  .svo_lead_side { padding-bottom: 16px; gap: 28px; }
}

.service_lead_text {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14.5px;
  line-height: 2.15;
  color: #4a4f65;
  letter-spacing: .04em;
  margin-top: 0;
  max-width: 520px;
  text-wrap: pretty;
}
@media screen and (min-width: 768px) {
  .service_lead_text { font-size: 15px; line-height: 2.2; }
}

/* 装飾英字（PC ≥768px のみ） */
.service_lead_decor {
  display: none;
}
@media screen and (min-width: 768px) {
  .service_lead_decor {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-top: 0;
    font-family: "Cormorant Garamond", "Zen Old Mincho", serif;
    font-style: italic;
    font-weight: 300;
    font-size: 15px;
    color: #6a7089;
    letter-spacing: .04em;
  }
  .service_lead_decor::before {
    content: "";
    width: 28px; height: 1px;
    background: #b8bccb;
  }
}
@media screen and (min-width: 1080px) {
  .service_lead_decor { font-size: 16px; }
}

/* ============================================================
   Motion (控えめ fade + rise)
============================================================ */
.service_lead_head,
.svo_lead_side {
  opacity: 0;
  transform: translateY(14px);
  transition: opacity 1.1s cubic-bezier(.2,.6,.2,1),
              transform 1.1s cubic-bezier(.2,.6,.2,1);
}
.service_lead.is-visible .service_lead_head,
.service_lead.reveal.is-visible .service_lead_head {
  opacity: 1; transform: none; transition-delay: .15s;
}
.service_lead.is-visible .svo_lead_side,
.service_lead.reveal.is-visible .svo_lead_side {
  opacity: 1; transform: none; transition-delay: .35s;
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
  .service_lead_head,
  .svo_lead_side {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
}

/* 旧 Lead 関連の重複ルールは削除（Service Lead — Editorial に統一） */

.service_index {
  list-style: none;
  border-top: 1px solid var(--primary-color);
}

.service_index li a {
  display: flex;
  align-items: flex-start;
  gap: 20px;
  padding: 24px 4px;
  border-bottom: 1px solid var(--line-color);
  color: #333;
  transition: background 0.3s;
}

.service_index li a:hover {
  background: #f5f7fd;
}

.service_index_num {
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-size: 32px;
  line-height: 1;
  color: var(--yg-blue);
  flex-shrink: 0;
}

.service_index_body {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.service_index_body .en {
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-size: 13px;
  letter-spacing: 0.22em;
  color: var(--yg-blue);
}

.service_index_body .ja {
  font-family: "Shippori Mincho", serif;
  font-size: 20px;
  font-weight: 500;
  color: var(--primary-color);
  letter-spacing: 0.06em;
}

.service_index_body .desc {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 13px;
  line-height: 1.9;
  color: var(--sub-text-color);
}

.service_index_arrow {
  font-family: "Cormorant Garamond", serif;
  font-size: 20px;
  color: var(--yg-blue);
  align-self: center;
  flex-shrink: 0;
}

/* ------------------------------ */
/* Service Section (共通)         */
/* ------------------------------ */
.service_section {
  padding: 40px 0 80px;
  background-color: var(--white-color);
}

@media (min-width: 768px) {
  .service_section { padding: 60px 0 120px; }
}

.service_section--alt {
  background-color: var(--white-color);
  border-top: 1px solid var(--gray-color04);
}

/* ---- Chapter Panel（紺・写真スロット付き） ---- */
.service_chapter {
  position: relative;
  overflow: hidden;
  background: linear-gradient(160deg, #03113E 0%, #0b2160 62%, #12327f 100%);
  color: #fff;
  padding: 32px 24px;
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
  align-items: center;
}

@media (min-width: 768px) {
  .service_chapter { padding: 48px 56px; gap: 48px; }
}

.service_chapter::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(45deg, transparent 0 24px, rgba(255,255,255,.035) 24px 25px);
  pointer-events: none;
}

.service_chapter::after {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 96px;
  height: 2px;
  background: #6bb3ff;
}

.service_chapter_body {
  position: relative;
  flex: 1 1 460px;
  min-width: 0;
}

.service_chapter .service_section_head {
  border-bottom: 1px solid rgba(255, 255, 255, 0.28);
  padding-bottom: 20px;
  margin-bottom: 0;
}

.service_chapter .service_section_num { color: #6bb3ff; }
.service_chapter .service_section_labels .en { color: rgba(255, 255, 255, 0.75); }
.service_chapter .service_section_labels h2 { color: #fff; }

.service_chapter .service_catch {
  color: #fff;
  margin-top: 32px;
  margin-bottom: 0;
}

@media (min-width: 768px) {
  .service_chapter .service_catch { margin-top: 40px; }
}

.service_chapter .service_desc {
  color: rgba(255, 255, 255, 0.82);
  margin-top: 20px;
}

.service_chapter_photo {
  position: relative;
  flex: 1 1 300px;
  min-width: 260px;
  max-width: 460px;
  margin-inline: auto;
  aspect-ratio: 16 / 11;
  display: flex;
  align-items: center;
  justify-content: center;
  background: repeating-linear-gradient(135deg, rgba(255,255,255,.06) 0 10px, rgba(255,255,255,.02) 10px 20px);
  border: 1px solid rgba(255, 255, 255, 0.25);
}

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

.service_chapter_photo-img--ai {
  object-position: center top;
}

/* 技術ブランディング写真：元画像(16:9)の比率に合わせ、トリミングせず全体を見せる */
.service_chapter_photo--branding {
  aspect-ratio: 16 / 9;
  max-width: 560px;
}

.service_chapter_photo figcaption {
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 11px;
  letter-spacing: 0.12em;
  color: rgba(255, 255, 255, 0.65);
  text-align: center;
  padding: 0 16px;
}

/* ---- Section Head (番号 + EN + JP) ---- */
.service_section_head {
  display: flex;
  align-items: flex-end;
  gap: 20px;
}

@media (min-width: 768px) {
  .service_section_head { gap: 28px; }
}

.service_section_num {
  font-family: "Cormorant Garamond", "Zen Old Mincho", serif;
  font-style: italic;
  font-size: 52px;
  line-height: 0.85;
  color: var(--accent-color);
  font-weight: 400;
  flex-shrink: 0;
}

@media (min-width: 768px) {
  .service_section_num { font-size: 88px; }
}

.service_section_labels {
  flex-grow: 1;
}

.service_section_labels .en {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  letter-spacing: 0.24em;
  color: var(--accent-color);
  margin-bottom: 8px;
}

.service_section_labels h2 {
  font-family: "Shippori Mincho", "Zen Old Mincho", serif;
  font-size: clamp(23px, 2.8vw, 34px);
  font-weight: 500;
  color: var(--primary-color);
  letter-spacing: 0.08em;
  line-height: 1.35;
}

/* ---- Intro (catch + desc) ---- */
.service_catch {
  font-family: "Shippori Mincho", "Zen Old Mincho", serif;
  font-size: clamp(22px, 2.9vw, 34px);
  font-weight: 500;
  color: var(--primary-color);
  letter-spacing: 0.08em;
  line-height: 1.55;
  margin-bottom: 28px;
}

.service_desc {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14.5px;
  line-height: 2.1;
  color: var(--black-color);
}

.service_desc--lead {
  max-width: 52em;
  margin-top: 40px;
  color: var(--sub-text-color);
}

@media (min-width: 768px) {
  .service_desc--lead { margin-top: 48px; }
}

/* ------------------------------ */
/* Sub-Title (フロー / アウトプット見出し) */
/* ------------------------------ */
.service_sub-title {
  margin-bottom: 36px;
  padding-bottom: 18px;
  border-bottom: 1px solid var(--gray-color04);
  display: flex;
  align-items: baseline;
  gap: 20px;
  flex-wrap: wrap;
}

@media (min-width: 768px) {
  .service_sub-title { margin-bottom: 44px; }
}

.service_sub-title .en {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 11px;
  letter-spacing: 0.3em;
  color: var(--yg-blue);
  order: 2;
}

.service_sub-title .ja {
  font-family: "Shippori Mincho", "Zen Old Mincho", serif;
  font-size: clamp(20px, 2.4vw, 26px);
  font-weight: 500;
  color: var(--primary-color);
  letter-spacing: 0.08em;
}

/* ------------------------------ */
/* Flow（罫線グリッド：折返し時も崩れないよう basis+max-width制御） */
/* ------------------------------ */
.service_flow {
  margin-top: 56px;
  margin-bottom: 56px;
}

@media (min-width: 768px) {
  .service_flow { margin-top: 72px; margin-bottom: 72px; }
}

.flow_band {
  border-top: 1px solid var(--primary-color);
  border-left: 1px solid var(--gray-color04);
}

.flow_steps {
  display: flex;
  flex-wrap: wrap;
}

.flow_step {
  position: relative;
  flex: 1 1 165px;
  max-width: 380px;
  min-width: 0;
  padding: 28px 18px;
  text-align: center;
  background: var(--white-color);
  border-right: 1px solid var(--gray-color04);
  border-bottom: 1px solid var(--gray-color04);
  transition: background 0.3s;
}

.flow_step:hover { background: #f5f7fd; }

@media (min-width: 768px) {
  .flow_step { padding: 40px 20px; }
}

.flow_number {
  font-family: "Cormorant Garamond", "Zen Old Mincho", serif;
  font-style: italic;
  font-size: 34px;
  color: var(--yg-blue);
  font-weight: 400;
  line-height: 0.9;
  margin-bottom: 14px;
}

@media (min-width: 768px) {
  .flow_number { font-size: 46px; }
}

.flow_step h4 {
  font-family: "Zen Old Mincho", serif;
  font-size: 16px;
  font-weight: 500;
  color: var(--primary-color);
  letter-spacing: 0.05em;
  margin-bottom: 8px;
}

.flow_step p {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  line-height: 1.9;
  color: var(--text-muted);
}

.flow_footnote {
  margin-top: 18px;
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-size: 12px;
  letter-spacing: 0.22em;
  color: var(--gray-color);
}

/* SP: 縦積み */
@media (max-width: 767px) {
  .flow_step {
    flex: 1 1 100%;
    max-width: none;
    border-right: none;
  }
}

/* ------------------------------ */
/* Output (カテゴリ束ね)         */
/* ------------------------------ */
.service_output_wrap {
  background-color: #F1F3F8;
  padding: 40px 24px;
  border-radius: 4px;
}

@media (min-width: 768px) {
  .service_output_wrap { padding: 56px 40px; }
}

.output_grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  background: var(--line-color);
  border: 1px solid var(--line-color);
  margin-top: 28px;
}

@media (max-width: 900px) {
  .output_grid { grid-template-columns: 1fr; }
}

.output_group {
  background: var(--white-color);
  padding: 32px 24px;
}

@media (min-width: 768px) {
  .output_group { padding: 40px 32px; }
}

.output_group_head {
  padding-bottom: 18px;
  border-bottom: 1px solid var(--line-color);
  margin-bottom: 6px;
}

.output_group_en {
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  color: var(--yg-blue);
  font-size: 22px;
  font-weight: 500;
  line-height: 1;
  margin-bottom: 10px;
}

.output_group_ja {
  font-family: "Zen Old Mincho", serif;
  font-size: 18px;
  color: var(--primary-color);
  font-weight: 500;
  letter-spacing: 0.06em;
}

.output_list { list-style: none; }

.output_list li {
  padding: 13px 0;
  border-bottom: 1px solid var(--gray-color04);
  font-family: "Noto Sans JP", sans-serif;
  font-size: 13.5px;
  color: var(--black-color);
  display: flex;
  align-items: center;
  gap: 12px;
  line-height: 1.7;
}

.output_list li:last-child { border-bottom: none; }

.output_list li::before {
  content: "";
  flex-shrink: 0;
  width: 5px;
  height: 5px;
  background: var(--yg-blue);
  border-radius: 50%;
}

/* ------------------------------ */
/* LinkedIn Feature (現状維持)    */
/* ------------------------------ */
.feature-section {
  padding: 27px 0 80px;
}

@media (min-width: 768px) {
  .feature-section { padding: 33px 0 100px; }
}

.feature {
  position: relative;
  width: 100%;
  aspect-ratio: 4 / 1;
  overflow: hidden;
  background-color: var(--primary-color);
  background-image: url('../img/feature/feature_bg_final_2400w.png');
  background-size: cover;
  background-position: center center;
  background-repeat: no-repeat;
  isolation: isolate;
  border-radius: 4px;
}

.feature::after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(
    ellipse 60% 90% at 45% 50%,
    rgba(3, 40, 80, 0.4) 0%,
    rgba(3, 40, 80, 0.12) 60%,
    rgba(3, 40, 80, 0) 100%
  );
  z-index: 1;
  pointer-events: none;
}

.feature__inner {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 8% 10%;
}

.feature__kicker {
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(15px, 1.8vw, 22px);
  font-weight: 600;
  letter-spacing: 0.08em;
  color: #fff;
  margin: 0 0 18px;
  text-shadow: 0 1px 12px rgba(0, 20, 50, 0.6);
}

.feature__badge {
  position: absolute;
  top: 20px;
  left: 20px;
  z-index: 3;
  display: inline-block;
  background: #e2585d;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  padding: 7px 22px;
  border-radius: 999px;
  letter-spacing: 0.04em;
  font-family: "Noto Sans JP", sans-serif;
}

.feature__title {
  font-family: "Shippori Mincho", "Zen Old Mincho", serif;
  font-size: clamp(28px, 3.2vw, 46px);
  font-weight: 500;
  color: #fff;
  letter-spacing: 0.03em;
  line-height: 1.4;
  margin: 0 0 26px;
  text-shadow: 0 2px 20px rgba(0, 20, 50, 0.5);
}

.feature__body {
  font-family: "Noto Sans JP", sans-serif;
  font-size: clamp(12px, 1vw, 15px);
  line-height: 2;
  color: rgba(255, 255, 255, 0.95);
  max-width: 640px;
  margin: 0;
  text-shadow: 0 1px 12px rgba(0, 20, 50, 0.6);
}

.feature-cta {
  text-align: center;
  margin-top: 40px;
}

.feature-cta--block { margin-top: 24px; }

.feature-cta_btn {
  display: inline-flex;
  align-items: center;
  gap: 16px;
  padding: 18px 40px;
  border: 1px solid #1e5ae0;
  color: #1e5ae0;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 13px;
  font-weight: 500;
  letter-spacing: 0.2em;
  text-decoration: none;
  transition: background 0.3s, color 0.3s;
}

.feature-cta_btn:hover {
  background: #1e5ae0;
  color: #fff;
}

.feature-cta_btn--filled {
  width: 100%;
  justify-content: space-between;
  border: none;
  background: #1e5ae0;
  color: #fff;
}

.feature-cta_btn--filled:hover {
  background: #3b6ef5;
  color: #fff;
}

@media (max-width: 600px) {
  .feature-cta_btn {
    width: 100%;
    max-width: 340px;
    justify-content: center;
  }
  .feature-cta_btn--filled { max-width: none; }
}

/* ------------------------------ */
/* Support（旧 support_table を「課題→アプローチ」ブロックに置換） */
/* ------------------------------ */
.service_support-wrap {
  margin-top: 48px;
}

@media (min-width: 768px) {
  .service_support-wrap { margin-top: 64px; }
}

.service_support {
  border-top: 1px solid var(--primary-color);
}

.service_support_row {
  display: flex;
  flex-wrap: wrap;
  gap: 20px;
  padding: 28px 0;
  border-bottom: 1px solid var(--gray-color04);
}

@media (min-width: 768px) {
  .service_support_row { gap: 40px; padding: 40px 0; }
}

.service_support_head {
  flex: 0 1 220px;
  min-width: 180px;
  display: flex;
  align-items: baseline;
  gap: 14px;
}

.service_support_num {
  font-family: "Cormorant Garamond", "Zen Old Mincho", serif;
  font-style: italic;
  font-size: 26px;
  line-height: 1;
  color: var(--yg-blue);
}

.service_support_head h4 {
  font-family: "Zen Old Mincho", serif;
  font-size: 18px;
  font-weight: 500;
  color: var(--primary-color);
  letter-spacing: 0.05em;
  line-height: 1.6;
}

.service_support_issue {
  flex: 1 1 260px;
  min-width: 0;
  background: var(--gray-color03);
  padding: 20px 22px;
}

.service_support_issue .label,
.service_support_approach .label {
  display: block;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 10.5px;
  font-weight: 600;
  letter-spacing: 0.24em;
  margin-bottom: 10px;
}

.service_support_issue .label { color: #8a93a6; }
.service_support_approach .label { color: var(--yg-blue); }

.service_support_issue p {
  font-size: 13.5px;
  line-height: 1.95;
  color: #555;
}

.service_support_approach {
  flex: 1.3 1 300px;
  min-width: 0;
  border-left: 2px solid var(--yg-blue);
  padding: 2px 0 2px 22px;
}

.service_support_approach p {
  font-size: 13.5px;
  line-height: 1.95;
  color: var(--black-color);
}

@media (max-width: 767px) {
  .service_support_row { flex-direction: column; gap: 16px; }
  .service_support_approach {
    border-left: none;
    border-top: 2px solid var(--yg-blue);
    padding: 16px 0 0;
  }
}

/* ------------------------------ */
/* Onboarding Flow (現状維持)     */
/* ------------------------------ */
.onboarding {
  padding: 80px 0 100px;
  background-color: #F1F3F8;
}

@media (min-width: 768px) {
  .onboarding { padding: 120px 0; }
}

.onboarding_head {
  margin-bottom: 60px;
  padding-bottom: 20px;
  border-bottom: 1px solid var(--gray-color04);
  display: flex;
  align-items: baseline;
  gap: 20px;
  flex-wrap: wrap;
}

.onboarding_head .en {
  order: 2;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 11px;
  letter-spacing: 0.35em;
  color: var(--accent-color);
}

.onboarding_head h2 {
  font-family: "Shippori Mincho", "Zen Old Mincho", serif;
  font-size: clamp(22px, 2.8vw, 30px);
  font-weight: 500;
  color: var(--primary-color);
  letter-spacing: 0.08em;
  line-height: 1.5;
}

.onboarding_steps {
  position: relative;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 0;
  max-width: 1000px;
  margin: 0 auto;
}

.onboarding_steps::before {
  content: "";
  position: absolute;
  top: 32px;
  left: 12%;
  right: 12%;
  height: 1px;
  background: var(--accent-color);
  opacity: 0.4;
  z-index: 0;
}

.onboarding_step {
  padding: 0 16px;
  text-align: center;
  position: relative;
}

.onboarding_step .dot {
  width: 64px;
  height: 64px;
  border-radius: 50%;
  background: var(--white-color);
  border: 1px solid var(--accent-color);
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 22px;
  position: relative;
  z-index: 1;
  font-family: "Cormorant Garamond", "Zen Old Mincho", serif;
  font-style: italic;
  color: var(--accent-color);
  font-size: 22px;
  font-weight: 500;
}

.onboarding_step h4 {
  font-family: "Zen Old Mincho", serif;
  font-size: 17px;
  color: var(--primary-color);
  font-weight: 500;
  margin-bottom: 10px;
  letter-spacing: 0.05em;
}

.onboarding_step p {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  line-height: 1.9;
  color: var(--text-muted);
}

@media (max-width: 767px) {
  .onboarding_steps {
    grid-template-columns: repeat(2, 1fr);
    gap: 32px 0;
  }
  .onboarding_steps::before { display: none; }
}

/* ------------------------------ */
/* Consultation CTA（紺+1pxグリッドに統一） */
/* ------------------------------ */
.consult_cta {
  padding: 80px 0 100px;
  background-color: var(--white-color);
}

@media (min-width: 768px) {
  .consult_cta { padding: 120px 0; }
}

.consult_cta_box {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #03113E 0%, #0b2160 100%);
  color: #fff;
  padding: 48px 24px;
}

@media (min-width: 768px) {
  .consult_cta_box { padding: 64px 40px; }
}

.consult_cta_box::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(45deg, transparent 0 24px, rgba(255,255,255,0.03) 24px 25px);
  pointer-events: none;
}

.consult_cta_box > * { position: relative; z-index: 1; }

.consult_cta_en {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 11px;
  letter-spacing: 0.32em;
  color: #9fc0ff;
  margin-bottom: 16px;
}

.consult_cta_title {
  font-family: "Shippori Mincho", "Zen Old Mincho", serif;
  font-size: clamp(22px, 3vw, 32px);
  font-weight: 500;
  letter-spacing: 0.08em;
  line-height: 1.5;
  margin-bottom: 16px;
}

.consult_cta_desc {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  line-height: 2;
  color: rgba(255, 255, 255, 0.8);
  max-width: 38em;
  margin: 0 0 32px;
}

.consult_cta_buttons {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  background: rgba(255, 255, 255, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.22);
}

.consult_cta_btn {
  flex: 1 1 260px;
  min-width: 0;
  padding: 26px 28px;
  color: #fff;
  background: rgba(4, 18, 66, 0.92);
  transition: background 0.3s;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.consult_cta_btn:hover { background: #12327f; }

.consult_cta_btn-text {
  font-family: "Zen Old Mincho", serif;
  font-weight: 500;
  font-size: 17px;
  letter-spacing: 0.06em;
}

.consult_cta_btn-sub {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12.5px;
  color: rgba(255, 255, 255, 0.65);
}

@media (max-width: 600px) {
  .consult_cta_buttons { flex-direction: column; }
}

/* ------------------------------ */
/* Feature Section SP調整         */
/* ------------------------------ */
@media (max-width: 767px) {
  .feature-section { padding: 48px 0; }
  .feature {
    aspect-ratio: auto;
    min-height: 280px;
  }
  .feature__inner { padding: 40px 20px; }
  .feature__title { font-size: 22px; line-height: 1.5; }
  .feature__body { font-size: 13px; line-height: 1.9; }
}

/* ------------------------------ */
/* AI Partner Block（工場AI参謀・紺パネルに刷新） */
/* ------------------------------ */
.ai-partner-block {
  margin-top: 64px;
  position: relative;
  overflow: hidden;
  background: linear-gradient(160deg, #03113E 0%, #0b2160 100%);
  color: #fff;
  padding: 40px 24px;
}

@media (min-width: 768px) {
  .ai-partner-block { margin-top: 80px; padding: 56px 40px; }
}

.ai-partner-block::before {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(45deg, transparent 0 24px, rgba(255,255,255,.03) 24px 25px);
  pointer-events: none;
}

.ai-partner-block__grid {
  position: relative;
  display: flex;
  flex-wrap: wrap;
  gap: 32px;
  align-items: flex-start;
}

@media (min-width: 768px) {
  .ai-partner-block__grid { gap: 56px; }
}

.ai-partner-block__intro {
  flex: 1 1 420px;
  min-width: 0;
}

.ai-partner-block__eyebrow {
  display: flex;
  align-items: center;
  gap: 14px;
  font-family: "Cormorant Garamond", serif;
  font-style: italic;
  font-size: 13px;
  letter-spacing: 0.24em;
  color: #6bb3ff;
  margin-bottom: 18px;
}

.ai-partner-block__eyebrow span {
  width: 28px;
  height: 1px;
  background: rgba(107, 179, 255, 0.7);
}

.ai-partner-block__title-row {
  display: flex;
  align-items: center;
  gap: 18px;
  margin-bottom: 8px;
}

.ai-partner-block__logo {
  width: 72px;
  height: auto;
  flex-shrink: 0;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,0.3));
}

@media (min-width: 768px) {
  .ai-partner-block__logo { width: 96px; }
}

.ai-partner-block__title {
  font-family: "Shippori Mincho", "Zen Old Mincho", serif;
  font-size: clamp(26px, 3.5vw, 40px);
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.35;
}

.ai-partner-block__title-ai {
  color: #6bb3ff;
}

.ai-partner-block__lead {
  margin-top: 16px;
  font-family: "Shippori Mincho", "Zen Old Mincho", serif;
  font-size: clamp(17px, 1.9vw, 21px);
  font-weight: 500;
  letter-spacing: 0.06em;
  line-height: 1.7;
  color: #dbe6ff;
}

.ai-partner-block__body {
  margin-top: 18px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 14px;
  line-height: 2.05;
  color: rgba(255, 255, 255, 0.8);
  max-width: 34em;
}

.ai-partner-block__tags {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  margin-top: 22px;
  list-style: none;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12.5px;
  letter-spacing: 0.14em;
  color: #6bb3ff;
}

.ai-partner-block__tags li {
  border: 1px solid rgba(107, 179, 255, 0.45);
  padding: 5px 14px;
}

.ai-partner-block__side {
  flex: 1 1 340px;
  min-width: 0;
}

.ai-partner-block__list {
  display: flex;
  flex-wrap: wrap;
  gap: 1px;
  background: rgba(255, 255, 255, 0.22);
  border: 1px solid rgba(255, 255, 255, 0.22);
  list-style: none;
}

.ai-partner-block__list li {
  flex: 1 1 150px;
  min-width: 0;
  background: #03113E;
  padding: 22px 20px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 13px;
  line-height: 1.8;
  color: rgba(255, 255, 255, 0.9);
  text-wrap: pretty;
}

/* ------------------------------ */
/* Page Move (共通・非改変)       */
/* ------------------------------ */
.page_move {
  padding: 80px 0;
  background-color: var(--white-color);
  border-top: 1px solid var(--gray-color04);
}

@media (min-width: 768px) {
  .page_move { padding: 100px 0; }
}

.page_move_grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 32px;
}

@media (max-width: 767px) {
  .page_move_grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }
}

.page_move_item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 60px 24px;
  background-color: var(--primary-color);
  border-radius: 4px;
  overflow: hidden;
  transition: transform 0.3s ease;
}

@media (max-width: 767px) {
  .page_move_item { padding: 40px 24px; }
}

.page_move_item:hover { transform: scale(1.02); }
.page_move_item:hover .page_move_overlay { opacity: 0.3; }

.page_move_overlay {
  position: absolute;
  inset: 0;
  background-color: var(--accent-color);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.page_move_en {
  position: relative;
  z-index: 1;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 12px;
  letter-spacing: 0.2em;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 8px;
}

.page_move_ja {
  position: relative;
  z-index: 1;
  font-family: "Zen Old Mincho", serif;
  font-size: 22px;
  font-weight: 500;
  color: var(--white-color);
  letter-spacing: 0.1em;
}

@media (max-width: 767px) {
  .page_move_ja { font-size: 18px; }
}
