/* ========================================
   スパルタAIDX LP - Style
   カラー参考: https://log-port.com/aidx-training/
   メイン: #5F9476（緑） サブ: #fdc44f（黄） アクセント: #fd9392（ピンク） #6fc7e1（青）
   ======================================== */

/* ---------- Reset & Base ---------- */
#lp-sparta-aidx *,
#lp-sparta-aidx *::before,
#lp-sparta-aidx *::after { box-sizing: border-box; margin: 0; padding: 0; }
#lp-sparta-aidx { scroll-behavior: smooth; }
#lp-sparta-aidx {
  font-family: 'Noto Sans JP', sans-serif;
  color: #333;
  line-height: 1.8;
  font-size: 16px;
  background: #fff;
}
#lp-sparta-aidx img { max-width: 100%; height: auto; display: block; }
#lp-sparta-aidx a { color: inherit; text-decoration: none; }
#lp-sparta-aidx ul,
#lp-sparta-aidx ol { list-style: none; }
#lp-sparta-aidx address { font-style: normal; }

#lp-sparta-aidx .seo-hidden { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
#lp-sparta-aidx .pc { display: block; }
#lp-sparta-aidx .sp { display: none; }
@media (max-width: 999px) {
  #lp-sparta-aidx .pc { display: none !important; }
  #lp-sparta-aidx .sp { display: block !important; }
}

/* ---------- Layout ---------- */
#lp-sparta-aidx .lp-inner-wrap { max-width: 1100px; margin: 0 auto; padding: 0 20px; }

/* ---------- Header ---------- */
#lp-sparta-aidx .lp-header {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
  background: rgba(255,255,255,.97); backdrop-filter: blur(8px);
  display: flex; align-items: center; justify-content: space-between;
  padding: 12px 30px; box-shadow: 0 2px 8px rgba(0,0,0,.06);
}
#lp-sparta-aidx .site_branding img { height: 30px; }
#lp-sparta-aidx .lp-navi-first { display: flex; gap: 24px; align-items: center; }
#lp-sparta-aidx .lp-navi-first li a { font-size: 14px; font-weight: 500; transition: color .2s; }
#lp-sparta-aidx .lp-navi-first li a:hover { color: #5F9476; }
#lp-sparta-aidx .nav-cta-btn {
  background: #5F9476; color: #fff !important; padding: 8px 22px; border-radius: 50px;
  font-weight: 700; font-size: 14px; display: inline-flex; align-items: center; gap: 4px;
  transition: background .2s, transform .2s, box-shadow .2s;
  box-shadow: 0 2px 8px rgba(95,148,118,.3);
}
#lp-sparta-aidx .nav-cta-btn:hover {
  background: #4d7a60; transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(95,148,118,.4);
}

/* Hamburger */
#lp-sparta-aidx .menu-trigger { display: none; background: none; border: none; width: 30px; height: 24px; position: relative; cursor: pointer; }
#lp-sparta-aidx .menu-trigger span { display: block; width: 100%; height: 2px; background: #333; position: absolute; left: 0; transition: .3s; }
#lp-sparta-aidx .menu-trigger span:nth-child(1) { top: 0; }
#lp-sparta-aidx .menu-trigger span:nth-child(2) { top: 11px; }
#lp-sparta-aidx .menu-trigger span:nth-child(3) { top: 22px; }

@media (max-width: 999px) {
  #lp-sparta-aidx .lp-header { padding: 10px 16px; }
  #lp-sparta-aidx .menu-trigger { display: block; }
  #lp-sparta-aidx .lp-navi {
    position: fixed; top: 60px; right: -100%; width: 80%; height: calc(100vh - 60px);
    background: #fff; transition: right .3s; padding: 30px 24px; box-shadow: -4px 0 12px rgba(0,0,0,.1);
  }
  #lp-sparta-aidx .lp-navi.is-open { right: 0; }
  #lp-sparta-aidx .lp-navi-first { flex-direction: column; gap: 0; }
  #lp-sparta-aidx .lp-navi-first li a { display: block; padding: 16px 0; border-bottom: 1px solid #eee; font-size: 15px; }
  #lp-sparta-aidx .lp-navi-first li:last-child a { text-align: center; margin-top: 16px; border-bottom: none; padding: 14px 32px; display: inline-flex; justify-content: center; width: auto; }
}

/* ---------- FV: Two-Zone Layout ---------- */
#lp-sparta-aidx #fv { position: relative; padding-top: 70px; background: #f5f5f5; }
#lp-sparta-aidx .fv-container { position: relative; }

/* Zone 1: ライト背景 */
#lp-sparta-aidx .fv-zone-light {
  background: #f5f5f5; padding: 50px 0 40px; position: relative; overflow: hidden;
}
/* FV背景画像 — 右下配置 */
#lp-sparta-aidx .fv-zone-light::before {
  content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: url('../img/fv/fv-bg.png') no-repeat center bottom;
  background-size: auto 90%;
  pointer-events: none;
}

/* Zone 2: ダークグリーン背景 */
#lp-sparta-aidx .fv-zone-dark {
  background: #5F9476; padding: 36px 0 44px;
}

/* ゾーン共通Inner */
#lp-sparta-aidx .fv-zone-inner {
  max-width: 1200px; margin: 0 auto; padding: 0 30px; position: relative;
}

/* 左側コンテンツ（PCではフォーム分の幅を空ける） */
#lp-sparta-aidx .fv-content { max-width: calc(100% - 420px); position: relative; z-index: 1; }

#lp-sparta-aidx .fv-main-ttl { line-height: 1.4; }
#lp-sparta-aidx .fv-sub { display: block; font-size: clamp(20px, 3vw, 32px); font-weight: 900; letter-spacing: .02em; color: #333; }
#lp-sparta-aidx .yellow-highlight {
  background: none; color: inherit; font-weight: inherit;
  background-image: linear-gradient(transparent 60%, #fdc44f 60%);
  padding: 0 2px;
}
#lp-sparta-aidx .fv-logo-img {
  display: block; max-width: min(460px, 100%); height: auto; margin: 12px 0;
}
#lp-sparta-aidx .fv-tags { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 20px; }
#lp-sparta-aidx .fv-tags span {
  display: inline-block; background: #5F9476; color: #fff;
  padding: 3px 10px; border-radius: 16px; font-size: 11px; font-weight: 500;
}
#lp-sparta-aidx .fv-badges {
  display: flex; gap: 8px; flex-wrap: nowrap; align-items: center;
}
#lp-sparta-aidx .fv-badge-item { flex: 1; min-width: 0; }
#lp-sparta-aidx .fv-badge-item img { width: 100%; height: auto; max-height: 70px; object-fit: contain; }

/* FV Stats（ダークゾーン内） */
#lp-sparta-aidx .fv-stats { max-width: calc(100% - 420px); }
#lp-sparta-aidx .fv-stats-catch {
  color: #fff; font-size: clamp(18px, 2.2vw, 24px); font-weight: 900;
  letter-spacing: .06em; margin-bottom: 18px; text-align: center;
}
#lp-sparta-aidx .fv-stats-grid { display: flex; gap: 14px; }
#lp-sparta-aidx .fv-stat-card {
  flex: 1; background: rgba(255,255,255,.15); border: 1px solid rgba(255,255,255,.2);
  border-radius: 12px; padding: 18px 10px 14px; text-align: center;
  backdrop-filter: blur(6px); transition: all .25s;
}
#lp-sparta-aidx .fv-stat-card:hover { background: rgba(255,255,255,.25); transform: translateY(-2px); }
#lp-sparta-aidx .fv-stat-name {
  font-size: 13px; color: #fff; font-weight: 600; margin-bottom: 8px;
  white-space: nowrap; letter-spacing: .04em;
}
#lp-sparta-aidx .fv-stat-number {
  font-size: clamp(36px, 4vw, 52px); font-weight: 900; color: #fff; line-height: 1;
  text-shadow: 0 2px 8px rgba(0,0,0,.12);
}
#lp-sparta-aidx .fv-stat-number span { font-size: clamp(14px, 1.5vw, 20px); font-weight: 700; margin-left: 2px; }

/* フローティングフォーム（PC: 右側・両ゾーンにまたがる） */
#lp-sparta-aidx .fv-form-float {
  position: absolute; top: 50px; right: 0; width: 390px; z-index: 10;
  padding-right: 30px;
}
@media (min-width: 1260px) {
  #lp-sparta-aidx .fv-form-float { right: calc((100vw - 1200px) / 2); padding-right: 0; }
}
#lp-sparta-aidx .fv-form-float .form-wrapper {
  box-shadow: 0 12px 40px rgba(0,0,0,.15);
}

/* SP */
@media (max-width: 999px) {
  #lp-sparta-aidx #fv { padding-top: 60px; }
  #lp-sparta-aidx .fv-zone-light { padding: 30px 0 30px; }
  #lp-sparta-aidx .fv-zone-dark { padding: 28px 0 36px; }
  #lp-sparta-aidx .fv-zone-inner { padding: 0 16px; }
  #lp-sparta-aidx .fv-content { max-width: 100%; }
  #lp-sparta-aidx .fv-stats { max-width: 100%; }
  #lp-sparta-aidx .fv-stats-grid { flex-wrap: wrap; gap: 8px; }
  #lp-sparta-aidx .fv-stat-card { flex: 0 0 calc(50% - 4px); }
  #lp-sparta-aidx .fv-stat-card:last-child { flex: 0 0 100%; }
  #lp-sparta-aidx .fv-stat-number { font-size: 32px; }
  #lp-sparta-aidx .fv-badges { gap: 4px; }
  #lp-sparta-aidx .fv-badge-item img { max-height: 56px; }
  #lp-sparta-aidx .fv-form-float { display: none !important; }
}

/* ---------- Form ---------- */
#lp-sparta-aidx .form-wrapper {
  background: #fff; border-radius: 12px; padding: 0;
  color: #333; box-shadow: 0 8px 30px rgba(0,0,0,.1);
  overflow: hidden;
}
#lp-sparta-aidx .form-wrapper .lp-form,
#lp-sparta-aidx .form-wrapper .wpcf7-form { padding: 20px 20px 24px; }
/* FVフォームヘッダー */
#lp-sparta-aidx .fv-form-header {
  display: flex; align-items: center; gap: 12px;
  background: #5F9476; color: #fff; border-radius: 0;
  padding: 14px 20px; margin: 0;
}
#lp-sparta-aidx .fv-form-header-txt { flex: 1; }
#lp-sparta-aidx .fv-form-badge {
  display: inline-block; background: #fdc44f; color: #333;
  font-size: 11px; font-weight: 700; padding: 2px 10px; border-radius: 4px;
  margin-bottom: 2px; letter-spacing: .05em;
}
#lp-sparta-aidx .fv-form-header-main {
  font-size: 14px; font-weight: 700; line-height: 1.3; margin: 0;
  white-space: nowrap;
}
#lp-sparta-aidx .fv-form-header-main strong { font-size: 20px; }
#lp-sparta-aidx .fv-form-header-img {
  flex: 0 0 120px;
}
#lp-sparta-aidx .fv-form-header-img img {
  width: 100%; border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.2);
}
/* --- インラインフォーム（参考デザイン準拠） --- */
#lp-sparta-aidx .lp-form--inline .form-row,
#lp-sparta-aidx .wpcf7-form .form-row {
  display: flex; align-items: center; gap: 10px;
  margin-bottom: 14px;
}
#lp-sparta-aidx .lp-form--inline .form-label,
#lp-sparta-aidx .wpcf7-form .form-label {
  flex: 0 0 64px; font-size: 13px; font-weight: 700; color: #333;
  white-space: nowrap;
}
#lp-sparta-aidx .lp-form--inline .form-field,
#lp-sparta-aidx .wpcf7-form .form-field {
  flex: 1; position: relative;
}
#lp-sparta-aidx .lp-form--inline .form-field input,
#lp-sparta-aidx .wpcf7-form .form-field input {
  width: 100%; padding: 9px 10px; border: 1px solid #ccc; border-radius: 4px;
  font-size: 13px; font-family: inherit;
}
#lp-sparta-aidx .lp-form--inline .form-field input:focus,
#lp-sparta-aidx .wpcf7-form .form-field input:focus {
  border-color: #5F9476; outline: none; box-shadow: 0 0 0 2px rgba(95,148,118,.15);
}
/* CF7 wrapperのspan を透過 */
#lp-sparta-aidx .wpcf7-form .form-field .wpcf7-form-control-wrap {
  display: block; width: 100%;
}
/* CF7 送信ボタンのスタイル */
#lp-sparta-aidx .wpcf7-form .form-submit-btn-green {
  display: flex; align-items: center; justify-content: center; gap: 8px;
  width: 100%; padding: 14px 20px;
  background: linear-gradient(135deg, #5F9476 0%, #4d7a60 100%);
  color: #fff; font-size: 16px; font-weight: 700; letter-spacing: .08em;
  border: none; border-radius: 50px; cursor: pointer;
  box-shadow: 0 4px 12px rgba(0,0,0,.15);
  transition: background .2s, transform .2s, box-shadow .2s;
}
#lp-sparta-aidx .wpcf7-form .form-submit-btn-green:hover {
  background: linear-gradient(135deg, #4d7a60 0%, #3a6b50 100%);
  transform: translateY(-1px);
}
/* CF7 スピナー非表示 */
#lp-sparta-aidx .wpcf7-spinner { display: none; }
/* CF7 レスポンス出力 */
#lp-sparta-aidx .wpcf7-response-output {
  font-size: 12px; margin: 8px 0 0; padding: 8px; border-radius: 4px;
}
#lp-sparta-aidx .badge-required {
  position: absolute; top: 50%; right: 6px; transform: translateY(-50%);
  background: #e04e4e; color: #fff; font-size: 10px; font-weight: 700;
  padding: 2px 6px; border-radius: 3px; line-height: 1;
}
#lp-sparta-aidx .badge-optional {
  position: absolute; top: 50%; right: 6px; transform: translateY(-50%);
  background: #999; color: #fff; font-size: 10px; font-weight: 700;
  padding: 2px 6px; border-radius: 3px; line-height: 1;
}
#lp-sparta-aidx .form-policy-inline {
  font-size: 10px; color: #666; margin: 12px 0 8px; line-height: 1.5;
}
#lp-sparta-aidx .form-policy-inline a { color: #5F9476; text-decoration: underline; }
#lp-sparta-aidx .form-policy-inline label {
  display: flex; align-items: center; gap: 5px; font-size: 12px; margin-top: 4px; cursor: pointer;
}
#lp-sparta-aidx .form-policy-inline input[type="checkbox"] { width: 14px; height: 14px; accent-color: #5F9476; }
#lp-sparta-aidx .form-submit-area {
  text-align: center; margin-top: 10px; position: relative; padding-top: 18px;
  transition: transform .2s ease;
}
#lp-sparta-aidx .form-submit-area:hover { transform: translateY(-2px); }
#lp-sparta-aidx .form-submit-micro {
  display: inline-block; font-size: 11px; font-weight: 700; letter-spacing: .06em;
  background: #fdc44f; color: #333;
  padding: 3px 14px; border-radius: 20px;
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  white-space: nowrap; z-index: 2;
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
}
#lp-sparta-aidx .form-submit-micro::after {
  content: ''; position: absolute; bottom: -5px; left: 50%; transform: translateX(-50%);
  border-left: 5px solid transparent; border-right: 5px solid transparent;
  border-top: 5px solid #fdc44f;
}
#lp-sparta-aidx .form-submit-btn-green {
  display: flex; align-items: center; justify-content: center; gap: 10px;
  width: 100%; padding: 16px 20px; border: none; border-radius: 40px;
  background: linear-gradient(180deg, #8bc78b 0%, #5aad5a 50%, #4a9a4a 100%);
  color: #fff; font-size: 16px; font-weight: 900; cursor: pointer;
  box-shadow: 0 4px 14px rgba(90,173,90,.4), inset 0 1px 0 rgba(255,255,255,.35);
  transition: all .2s; letter-spacing: .06em;
  text-shadow: 0 1px 2px rgba(0,0,0,.12);
}
#lp-sparta-aidx .form-submit-btn-green::after {
  content: 'chevron_right';
  font-family: 'Material Icons Outlined'; font-size: 20px; font-weight: 400;
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  background: rgba(255,255,255,.25);
  line-height: 1; flex-shrink: 0;
}
#lp-sparta-aidx .form-submit-area:hover .form-submit-btn-green {
  background: linear-gradient(180deg, #9ad49a 0%, #6abf6a 50%, #58ac58 100%);
  box-shadow: 0 6px 20px rgba(90,173,90,.5), inset 0 1px 0 rgba(255,255,255,.35);
}

#lp-sparta-aidx #form-sp-wrap { background: #f5f5f5; padding: 60px 0; }
#lp-sparta-aidx #form-sp-wrap .form-wrapper { max-width: 560px; margin: 0 auto; }

/* ---------- CTA ---------- */
#lp-sparta-aidx .lp-cta {
  background: #5F9476; padding: 50px 0; text-align: center;
  position: relative; overflow: hidden;
}
/* 左側装飾画像 */
#lp-sparta-aidx .lp-cta::before {
  content: ''; position: absolute; left: -30px; top: 0;
  width: 400px; height: 100%;
  background: url('../img/fv/fv-bg.png') no-repeat left bottom / contain;
  opacity: .7; pointer-events: none; transform: scaleX(-1);
  filter: brightness(1.8);
}
/* 右側装飾画像 */
#lp-sparta-aidx .lp-cta::after {
  content: ''; position: absolute; right: -30px; top: 0;
  width: 400px; height: 100%;
  background: url('../img/fv/fv-bg.png') no-repeat right bottom / contain;
  opacity: .7; pointer-events: none;
  filter: brightness(1.8);
}
#lp-sparta-aidx .lp-cta-txt { color: #fff; font-size: clamp(18px, 2.5vw, 24px); font-weight: 900; margin-bottom: 28px; line-height: 1.6; }
#lp-sparta-aidx .cta-btn-wrap { display: flex; gap: 16px; justify-content: center; flex-wrap: wrap; position: relative; z-index: 1; }
#lp-sparta-aidx .cta-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  position: relative;
  padding: 18px 36px; border-radius: 40px;
  font-weight: 900; font-size: 16px; transition: all .25s;
  width: 320px; text-align: center;
  text-shadow: 0 1px 2px rgba(0,0,0,.1);
  box-shadow: 0 4px 14px rgba(0,0,0,.15);
}
#lp-sparta-aidx .cta-btn::after {
  content: 'chevron_right';
  font-family: 'Material Icons Outlined'; font-size: 20px; font-weight: 400;
  display: flex; align-items: center; justify-content: center;
  width: 28px; height: 28px; border-radius: 50%;
  background: rgba(255,255,255,.25);
  line-height: 1;
  flex-shrink: 0;
}
#lp-sparta-aidx .cta-btn--primary {
  background: linear-gradient(180deg, #8bc34a 0%, #6fad2e 100%); color: #fff;
}
#lp-sparta-aidx .cta-btn--primary:hover {
  background: linear-gradient(180deg, #9ccc65 0%, #7cb342 100%);
  transform: translateY(-2px); box-shadow: 0 6px 20px rgba(107,170,46,.4);
}
#lp-sparta-aidx .cta-btn--secondary {
  background: #fff; color: #5F9476; text-shadow: none;
}
#lp-sparta-aidx .cta-btn--secondary::after { background: rgba(95,148,118,.15); }
#lp-sparta-aidx .cta-btn--secondary:hover {
  background: #f0f0f0; transform: translateY(-2px); box-shadow: 0 6px 20px rgba(0,0,0,.15);
}

#lp-sparta-aidx .cta-btn .material-icons-outlined { font-size: 20px; }

/* マイクロコピー（ボタン上の吹き出し） */
#lp-sparta-aidx .cta-btn-micro {
  display: block; font-size: 11px; font-weight: 700; letter-spacing: .06em;
  background: #fdc44f; color: #333; text-shadow: none;
  padding: 3px 14px; border-radius: 20px;
  position: absolute; top: -14px; left: 50%; transform: translateX(-50%);
  white-space: nowrap;
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
}
#lp-sparta-aidx .cta-btn-micro::after {
  content: ''; position: absolute; bottom: -5px; left: 50%; transform: translateX(-50%);
  border-left: 5px solid transparent; border-right: 5px solid transparent;
  border-top: 5px solid #fdc44f;
}
#lp-sparta-aidx .cta-btn--secondary .cta-btn-micro { background: #fff; color: #5F9476; }
#lp-sparta-aidx .cta-btn--secondary .cta-btn-micro::after { border-top-color: #fff; }

#lp-sparta-aidx .cta-fv-under .lp-cta { padding: 30px 0; }

/* ---------- Section titles（統一ルール） ---------- */
/* 統一セクションタイトル */
#lp-sparta-aidx .section-ttl-wrap {
  text-align: center; margin-bottom: 48px;
}
#lp-sparta-aidx .section-ttl-label {
  color: #5F9476; font-weight: 700; font-size: 14px;
  letter-spacing: .12em; margin-bottom: 8px;
  text-transform: uppercase;
}
#lp-sparta-aidx .section-ttl {
  font-size: clamp(24px, 3.5vw, 36px); font-weight: 900; line-height: 1.4;
}
#lp-sparta-aidx .section-ttl span { color: #5F9476; }
#lp-sparta-aidx .section-ttl-sub {
  font-size: 17px; font-weight: 500; color: #555;
  margin-top: 12px; line-height: 1.6;
}
#lp-sparta-aidx .section-ttl-note {
  font-size: 12px; color: #999; margin-top: 8px;
}

/* ---------- Client Logos（全画面自動スクロール） ---------- */
#lp-sparta-aidx #client-logos { padding: 40px 0; background: #fff; border-bottom: 1px solid #eee; overflow: hidden; }
#lp-sparta-aidx .client-logos-label {
  text-align: center; font-size: 16px; font-weight: 700; margin-bottom: 20px; color: #555;
}
#lp-sparta-aidx .client-logos-label span { font-size: 28px; font-weight: 900; color: #5F9476; }
#lp-sparta-aidx .logo-scroll-wrapper {
  width: 100%; overflow: hidden; position: relative;
  -webkit-mask-image: linear-gradient(90deg, transparent 0%, #000 5%, #000 95%, transparent 100%);
  mask-image: linear-gradient(90deg, transparent 0%, #000 5%, #000 95%, transparent 100%);
}
#lp-sparta-aidx .logo-scroll-track {
  display: flex; gap: 6px; align-items: center;
  width: max-content;
  animation: logoScroll 35s linear infinite;
}
#lp-sparta-aidx .logo-scroll-track .logo-item {
  flex: 0 0 auto; width: 160px; height: 60px;
  display: flex; align-items: center; justify-content: center;
}
#lp-sparta-aidx .logo-scroll-track .logo-item img {
  max-width: 100%; max-height: 100%; object-fit: contain;
}
@keyframes logoScroll {
  0%   { transform: translateX(0); }
  100% { transform: translateX(-50%); }
}
#lp-sparta-aidx .logo-scroll-track:hover { animation-play-state: paused; }
@media (max-width: 999px) {
  #lp-sparta-aidx .logo-scroll-track .logo-item { width: 120px; height: 45px; }
  #lp-sparta-aidx .logo-scroll-track { gap: 20px; }
}

/* ---------- Worries ---------- */
#lp-sparta-aidx #worries { padding: 80px 0; background: #f5f5f5; }
#lp-sparta-aidx .worries-inner { display: flex; gap: 32px; justify-content: center; margin-bottom: 40px; }
#lp-sparta-aidx .worries-card {
  flex: 1 1 0; min-width: 0;
  display: flex; flex-direction: column; align-items: center;
}
#lp-sparta-aidx .worries-bubble {
  background: #fff; border-radius: 20px;
  padding: 28px 24px; position: relative;
  border: 2.5px solid #4a4a4a;
  box-shadow: 4px 4px 0 rgba(0,0,0,.08);
  width: 100%;
}
#lp-sparta-aidx .worries-bubble::after {
  content: "";
  position: absolute; bottom: -13px; left: 50%;
  transform: translateX(-50%) rotate(45deg);
  width: 22px; height: 22px;
  background: #fff;
  border-right: 2.5px solid #4a4a4a;
  border-bottom: 2.5px solid #4a4a4a;
  z-index: 1;
}
#lp-sparta-aidx .worries-card-icon {
  margin-top: 28px; text-align: center;
}
#lp-sparta-aidx .worries-card-icon img {
  width: 140px; height: 140px; object-fit: contain;
}
#lp-sparta-aidx .worries-card-ttl {
  font-size: 20px; font-weight: 700; line-height: 1.5;
  margin-bottom: 16px; color: #333; text-align: center;
}
#lp-sparta-aidx .worries-card-list { list-style: none; padding: 0; }
#lp-sparta-aidx .worries-card-list li {
  font-size: 14px; color: #555; line-height: 1.6;
  padding: 10px 0; border-top: 1px solid #eee;
  padding-left: 24px; position: relative;
}
#lp-sparta-aidx .worries-card-list li::before {
  content: "sentiment_dissatisfied";
  font-family: 'Material Icons Outlined';
  position: absolute; left: 0; top: 50%;
  transform: translateY(-50%);
  font-size: 18px; color: #e0a05a; opacity: .7;
}
#lp-sparta-aidx .worries-resolve-wrap { text-align: center; padding-top: 48px; }
#lp-sparta-aidx .worries-resolve-lead {
  font-size: 32px; font-weight: 700; color: #5F9476; line-height: 1.4;
}
#lp-sparta-aidx .worries-resolve-main {
  font-size: 32px; font-weight: 700; color: #333; margin-top: 8px;
}
/* Chevron bounce animation */
#lp-sparta-aidx .worries-chevron-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin: 32px auto 0;
  gap: 4px;
}
#lp-sparta-aidx .worries-chevron {
  display: block;
  width: 40px;
  height: 40px;
  border-right: 4px solid #5F9476;
  border-bottom: 4px solid #5F9476;
  transform: rotate(45deg);
  opacity: 0;
  animation: chevronBounce 2s infinite;
}
#lp-sparta-aidx .worries-chevron:nth-child(2) {
  animation-delay: 0.3s;
}
@keyframes chevronBounce {
  0%   { opacity: 0; transform: rotate(45deg) translate(-8px, -8px); }
  50%  { opacity: 1; }
  100% { opacity: 0; transform: rotate(45deg) translate(8px, 8px); }
}

@media (max-width: 999px) {
  #lp-sparta-aidx .worries-inner { flex-wrap: wrap; }
  #lp-sparta-aidx .worries-card { flex: 1 1 100%; max-width: 400px; margin: 0 auto; }
  #lp-sparta-aidx .worries-resolve-lead { font-size: 24px; }
  #lp-sparta-aidx .worries-resolve-main { font-size: 24px; }
}

/* ---------- できること（Service） ---------- */
#lp-sparta-aidx #service { padding: 80px 0; background: #fff; }
/* ---------- 選ばれる理由（Feature） ---------- */
#lp-sparta-aidx #feature { padding: 80px 0; background: #f5f5f5; }
#lp-sparta-aidx .can-do-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: auto; gap: 24px;
}
#lp-sparta-aidx .can-do-card {
  background: #fff; border: none; border-radius: 16px;
  text-align: center; position: relative; overflow: hidden;
  display: grid; grid-template-rows: subgrid; grid-row: span 3;
  box-shadow: 0 4px 20px rgba(0,0,0,.08);
}
#lp-sparta-aidx .can-do-card-header {
  background: #5F9476; padding: 20px 20px 16px;
  display: flex; align-items: center; gap: 12px;
}
#lp-sparta-aidx .can-do-num {
  font-size: 28px; font-weight: 900; font-style: italic; color: rgba(255,255,255,.4);
  line-height: 1; flex-shrink: 0;
}
#lp-sparta-aidx .can-do-card-ttl {
  font-size: 18px; font-weight: 900; color: #fff; margin: 0; line-height: 1.3;
  text-align: left; white-space: nowrap;
}
#lp-sparta-aidx .can-do-card-img {
  margin: 0; display: flex; align-items: center; justify-content: center;
  padding: 8px 16px;
}
#lp-sparta-aidx .can-do-card-img img {
  width: 100%; height: auto; object-fit: contain; border-radius: 8px;
}
#lp-sparta-aidx .can-do-card-txt {
  font-size: 13px; line-height: 1.8; color: #555; text-align: left;
  padding: 0 20px 24px; align-self: start;
}
@media (max-width: 999px) {
  #lp-sparta-aidx .can-do-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 599px) {
  #lp-sparta-aidx .can-do-grid { grid-template-columns: 1fr; }
}

#lp-sparta-aidx .about-con { display: flex; flex-direction: column; gap: 32px; }
#lp-sparta-aidx .about-con-item {
  display: flex; gap: 40px; align-items: center;
  background: #fff; border-radius: 16px; padding: 48px 40px;
  box-shadow: 0 4px 24px rgba(0,0,0,.06);
  position: relative;
}
#lp-sparta-aidx .about-con-item:nth-child(even) { flex-direction: row-reverse; }
#lp-sparta-aidx .about-con-item-txt-wrap { flex: 1; }
#lp-sparta-aidx .about-con-item-txt-number {
  font-size: 64px; font-weight: 900; font-style: italic;
  color: rgba(95,148,118,.1); line-height: 1; margin-bottom: 4px;
  letter-spacing: -0.02em;
}
#lp-sparta-aidx .about-con-item-txt-ttl { font-size: clamp(20px, 2.5vw, 26px); font-weight: 900; line-height: 1.5; margin-bottom: 16px; }
#lp-sparta-aidx .about-con-item-txt-ttl span { color: #5F9476; }
#lp-sparta-aidx .about-con-item-txt-normal { font-size: 15px; line-height: 1.9; color: #555; }
#lp-sparta-aidx .about-con-item-img { flex: 0 0 340px; }
@media (max-width: 999px) {
  #lp-sparta-aidx .about-con-item,
#lp-sparta-aidx .about-con-item:nth-child(even) { flex-direction: column; padding: 24px; }
  #lp-sparta-aidx .about-con-item-img { flex: none; width: 100%; }
}

/* ---------- Case Study ---------- */
#lp-sparta-aidx #case-study { padding: 80px 0; background: #f5f5f5; }
#lp-sparta-aidx .case-list { display: flex; flex-direction: column; gap: 40px; max-width: 1080px; margin: 0 auto; }
#lp-sparta-aidx .case-item {
  display: flex; gap: 0; background: #fff; border-radius: 16px;
  box-shadow: 0 4px 20px rgba(0,0,0,.06); border: 1px solid #eee; overflow: hidden;
}

/* 左カラム: サムネイル（16:9） */
#lp-sparta-aidx .case-left {
  width: 460px; min-width: 460px;
  display: flex; flex-direction: column; align-items: flex-start;
  padding: 16px; position: relative;
}
#lp-sparta-aidx .case-thumb {
  width: 100%; aspect-ratio: 16 / 9; background: #fff; overflow: hidden; position: relative;
  border-radius: 8px; border: 1px solid #eee;
}
#lp-sparta-aidx .case-thumb img { width: 100%; height: 100%; object-fit: contain; }
/* 右カラム: 課題 + 成果 */
#lp-sparta-aidx .case-right { flex: 1; display: flex; flex-direction: column; }
#lp-sparta-aidx .case-industry-tag {
  display: inline-block; background: #5F9476; color: #fff;
  font-size: 11px; font-weight: 700; padding: 3px 12px; border-radius: 4px;
  letter-spacing: 0.05em; margin-bottom: 8px;
}

#lp-sparta-aidx .case-challenge {
  padding: 12px 24px; flex: 1;
}
#lp-sparta-aidx .case-section-label {
  font-size: 11px; font-weight: 700; color: #888;
  border-bottom: 2px solid #ddd; padding-bottom: 3px; margin-bottom: 6px;
  display: inline-block;
}
#lp-sparta-aidx .case-challenge h3 {
  font-size: 16px; font-weight: 900; margin-bottom: 2px; color: #333;
}
#lp-sparta-aidx .case-challenge p {
  font-size: 12px; line-height: 1.5; color: #666;
}

#lp-sparta-aidx .case-result {
  background: #5F9476; padding: 12px 24px; color: #fff;
}
#lp-sparta-aidx .case-result .case-section-label {
  color: #fff; border-bottom-color: rgba(255,255,255,.4); margin-bottom: 6px;
}
#lp-sparta-aidx .case-result-desc {
  font-size: 11px; line-height: 1.5; color: rgba(255,255,255,.6);
  margin: 0 0 10px; padding-bottom: 10px;
  border-bottom: 1px solid rgba(255,255,255,.2);
}
#lp-sparta-aidx .case-result-metrics {
  display: flex; gap: 24px; align-items: center; flex-wrap: wrap;
}
#lp-sparta-aidx .case-metric {
  display: flex; flex-direction: column; gap: 1px;
}
#lp-sparta-aidx .case-metric-label {
  font-size: 11px; font-weight: 700; opacity: 1; color: #fff;
}
#lp-sparta-aidx .case-metric-value {
  font-size: 18px; font-weight: 700; letter-spacing: .02em;
}
#lp-sparta-aidx .case-metric-value strong {
  font-size: 28px; color: #fdc44f; font-weight: 900;
}
#lp-sparta-aidx .case-metric-value .arrow {
  color: #fdc44f; font-weight: 900; font-size: 20px;
}

@media (max-width: 999px) {
  #lp-sparta-aidx .case-item { flex-direction: column; }
  #lp-sparta-aidx .case-left { width: 100%; min-width: 100%; border-right: none; border-bottom: 1px solid #eee; }
  #lp-sparta-aidx .case-thumb { aspect-ratio: 16 / 9; }
  #lp-sparta-aidx .case-challenge { padding: 20px; }
  #lp-sparta-aidx .case-result { padding: 16px 20px; }
  #lp-sparta-aidx .case-result-metrics { gap: 16px; }
  #lp-sparta-aidx .case-metric-value strong { font-size: 24px; }
}

/* 事例一覧への導線ボタン */
#lp-sparta-aidx .case-more-wrap {
  text-align: right; margin-top: 40px;
}
#lp-sparta-aidx .case-more-btn {
  display: inline-flex; align-items: center; gap: 6px;
  background: linear-gradient(135deg, #6a9e82, #5F9476);
  color: #fff; font-size: 14px; font-weight: 600;
  padding: 10px 28px; border-radius: 50px;
  box-shadow: 0 2px 8px rgba(95,148,118,.2);
  transition: all .3s ease;
  letter-spacing: .04em;
}
#lp-sparta-aidx .case-more-btn:hover {
  background: linear-gradient(135deg, #5F9476, #4d7e63);
  box-shadow: 0 6px 20px rgba(95,148,118,.4);
  transform: translateY(-2px);
}
#lp-sparta-aidx .case-more-btn .material-icons-outlined {
  font-size: 16px; transition: transform .3s ease;
}
#lp-sparta-aidx .case-more-btn:hover .material-icons-outlined {
  transform: translateX(4px);
}

/* ---------- Comparison ---------- */
#lp-sparta-aidx #comparison { padding: 80px 0; background: #fff; }
#lp-sparta-aidx .comparison-txt { text-align: center; font-size: 18px; font-weight: 700; margin-bottom: 30px; }
#lp-sparta-aidx .comparison-table-wrap { overflow-x: auto; }
#lp-sparta-aidx .comparison-table {
  width: 100%; border-collapse: separate; border-spacing: 0; font-size: 14px; min-width: 700px;
}
#lp-sparta-aidx .comparison-table th,
#lp-sparta-aidx .comparison-table td {
  padding: 18px 16px; border: 1px solid #e0e0e0; text-align: center; vertical-align: middle;
}
#lp-sparta-aidx .comparison-table thead th {
  background: #71828a; color: #fff; font-weight: 700; font-size: 15px;
}
#lp-sparta-aidx .comparison-table thead th.highlight {
  background: #5F9476; font-size: 17px;
}
#lp-sparta-aidx .comparison-table td.highlight {
  background: #edf5f0; font-weight: 600;
  border-left: 2px solid #5F9476; border-right: 2px solid #5F9476;
}
#lp-sparta-aidx .comparison-table tbody tr:last-child td.highlight {
  border-bottom: 2px solid #5F9476;
}
#lp-sparta-aidx .comparison-table tbody tr:nth-child(even) { background: #fafafa; }
#lp-sparta-aidx .comparison-table tbody tr:nth-child(even) td.highlight { background: #e0ede5; }
/* 評価マーク */
#lp-sparta-aidx .mark-best { color: #5F9476; font-weight: 900; font-size: 20px; }
#lp-sparta-aidx .mark-good { color: #5F9476; font-weight: 700; }
#lp-sparta-aidx .mark-mid { color: #aaa; }
#lp-sparta-aidx .mark-bad { color: #ccc; font-weight: 400; }

/* ---------- Consultant ---------- */
#lp-sparta-aidx #consultant { padding: 80px 0; background: #f5f5f5; }
#lp-sparta-aidx .consultant-list { display: flex; gap: 32px; justify-content: center; flex-wrap: wrap; max-width: 900px; margin: 0 auto; }
#lp-sparta-aidx .consultant-item {
  flex: 1; min-width: 280px; max-width: 420px;
  background: #fff; border-radius: 16px; padding: 32px;
  box-shadow: 0 4px 20px rgba(0,0,0,.06); text-align: center;
}
#lp-sparta-aidx .consultant-img { margin-bottom: 20px; }
#lp-sparta-aidx .consultant-img img {
  width: 140px; height: 140px; border-radius: 50%; margin: 0 auto;
  display: block; object-fit: cover; object-position: center 15%;
  border: 3px solid #5F9476;
}
#lp-sparta-aidx .consultant-info h3 { font-size: 20px; font-weight: 700; margin-bottom: 4px; }
#lp-sparta-aidx .consultant-title { font-size: 13px; color: #5F9476; font-weight: 700; margin-bottom: 12px; }
#lp-sparta-aidx .consultant-desc { font-size: 14px; color: #555; line-height: 1.7; text-align: left; margin-bottom: 16px; }
#lp-sparta-aidx .consultant-stats { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
#lp-sparta-aidx .consultant-stats span {
  display: inline-block; background: #edf5f0; color: #5F9476;
  padding: 4px 12px; border-radius: 20px; font-size: 12px; font-weight: 700;
}

@media (max-width: 999px) {
  #lp-sparta-aidx .consultant-list { flex-direction: column; align-items: center; }
  #lp-sparta-aidx .consultant-item { max-width: 100%; }
}

/* ---------- Flow ---------- */
#lp-sparta-aidx #flow { padding: 80px 0; background: #fff; }
#lp-sparta-aidx .flow-con-list {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px;
  counter-reset: flow;
}
#lp-sparta-aidx .flow-con-list-item {
  background: #f5f5f5; border-radius: 12px; padding: 30px 20px;
  text-align: center;
  position: relative;
}
#lp-sparta-aidx .flow-con-list-item::after {
  content: '→'; position: absolute; right: -16px; top: 50%;
  transform: translateY(-50%); color: #5F9476; font-size: 24px; font-weight: 700;
}
#lp-sparta-aidx .flow-con-list-item:last-child::after { display: none; }
#lp-sparta-aidx .flow-step {
  display: inline-block; background: #5F9476; color: #fff;
  padding: 4px 16px; border-radius: 20px; font-size: 13px; font-weight: 700;
  margin-bottom: 12px;
}
#lp-sparta-aidx .flow-step--free span {
  color: #fdc44f; font-weight: 700;
}
#lp-sparta-aidx .flow-icon {
  font-size: 36px; color: #5F9476; display: block; margin: 0 auto 8px;
}
#lp-sparta-aidx .flow-con-list-item--free {
  background: #f0f7f3; border: 2px solid #5F9476;
}
#lp-sparta-aidx .flow-con-list-item h3 { font-size: 16px; font-weight: 700; margin-bottom: 8px; }
#lp-sparta-aidx .flow-con-list-item p { font-size: 13px; color: #666; line-height: 1.6; text-align: left; }

@media (max-width: 999px) {
  #lp-sparta-aidx .flow-con-list { grid-template-columns: 1fr; }
  #lp-sparta-aidx .flow-con-list-item::after {
    right: 50%; top: auto; bottom: -16px; transform: translateX(50%) rotate(90deg);
  }
  #lp-sparta-aidx .flow-con-list-item:last-child::after { display: none; }
}

/* ---------- 無料診断ブロック ---------- */
#lp-sparta-aidx .free-diagnosis-block {
  margin-top: 64px; padding: 56px 48px; text-align: center;
  background: #fff; border-radius: 16px; box-shadow: 0 4px 24px rgba(0,0,0,.06);
}
#lp-sparta-aidx .free-diagnosis-ttl {
  font-size: clamp(22px, 2.5vw, 28px); font-weight: 900; margin-bottom: 16px;
}
#lp-sparta-aidx .free-diagnosis-ttl span { color: #5F9476; }
#lp-sparta-aidx .free-diagnosis-lead {
  font-size: 15px; color: #555; line-height: 1.8; margin-bottom: 40px;
}
#lp-sparta-aidx .free-diagnosis-highlight {
  display: inline-block; border: 2px solid #5F9476; color: #5F9476;
  font-weight: 700; padding: 2px 12px; border-radius: 4px; margin: 4px 2px;
}
#lp-sparta-aidx .free-diagnosis-imgs {
  display: grid; grid-template-columns: 1fr 1fr; gap: 32px;
  margin-bottom: 40px;
}
#lp-sparta-aidx .free-diagnosis-img-item img {
  width: 100%; border-radius: 8px;
  box-shadow: 0 2px 16px rgba(0,0,0,.1);
}
#lp-sparta-aidx .free-diagnosis-img-item figcaption {
  margin-top: 12px; font-size: 15px; font-weight: 700; color: #333;
}
@media (max-width: 599px) {
  #lp-sparta-aidx .free-diagnosis-block { padding: 32px 20px; }
  #lp-sparta-aidx .free-diagnosis-imgs { grid-template-columns: 1fr; }
}

/* ---------- FAQ ---------- */
#lp-sparta-aidx #faq { padding: 80px 0; background: #eef3f0; }
#lp-sparta-aidx .faq-wrap { max-width: 800px; margin: 0 auto; display: flex; flex-direction: column; gap: 12px; }
#lp-sparta-aidx .faq dl {
  background: #fff; border-radius: 12px; padding: 0;
  box-shadow: 0 2px 12px rgba(0,0,0,.05); overflow: hidden;
  border: 1px solid #eee; transition: box-shadow .2s;
}
#lp-sparta-aidx .faq dl:hover { box-shadow: 0 4px 20px rgba(0,0,0,.08); }
#lp-sparta-aidx .faq dl.open { border-color: #5F9476; }
#lp-sparta-aidx .faq-q {
  padding: 20px 56px 20px 24px; font-weight: 700; font-size: 16px; cursor: pointer;
  position: relative; display: flex; align-items: center;
}
#lp-sparta-aidx .faq-q::before {
  content: 'Q'; display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; background: #5F9476; color: #fff;
  border-radius: 50%; font-size: 14px; font-weight: 700; margin-right: 14px;
  flex-shrink: 0;
}
#lp-sparta-aidx .faq-q::after {
  content: '+'; position: absolute; right: 20px; top: 50%; transform: translateY(-50%);
  font-size: 22px; color: #5F9476; font-weight: 300;
  width: 32px; height: 32px; display: flex; align-items: center; justify-content: center;
  border-radius: 50%; background: #f0f7f3; transition: transform .3s, background .3s;
}
#lp-sparta-aidx .faq dl.open .faq-q::after {
  content: '−'; background: #5F9476; color: #fff; transform: translateY(-50%) rotate(180deg);
}
#lp-sparta-aidx .faq-a {
  padding: 0 24px 0 70px; font-size: 15px; color: #555; line-height: 1.8;
  position: relative;
  max-height: 0; opacity: 0; overflow: hidden;
  transition: max-height .4s ease, opacity .3s ease, padding .3s ease;
}
#lp-sparta-aidx .faq dl.open .faq-a {
  padding-bottom: 24px; opacity: 1;
}
#lp-sparta-aidx .faq-a::before {
  content: 'A'; display: inline-flex; align-items: center; justify-content: center;
  width: 32px; height: 32px; background: #e74c3c; color: #fff;
  border-radius: 50%; font-size: 14px; font-weight: 700;
  position: absolute; left: 24px; top: 0;
}

/* ---------- Footer ---------- */
#lp-sparta-aidx footer { background: #333; color: #fff; padding: 50px 0 30px; }
#lp-sparta-aidx .footer-inner { max-width: 1100px; margin: 0 auto; padding: 0 20px; display: flex; justify-content: space-between; align-items: flex-start; gap: 40px; flex-wrap: wrap; }
#lp-sparta-aidx .footer-logo img { height: 28px; margin-bottom: 16px; }
#lp-sparta-aidx .footer-address { font-size: 13px; opacity: .7; line-height: 1.6; }
#lp-sparta-aidx .footer-list-nav { display: flex; gap: 20px; flex-wrap: wrap; }
#lp-sparta-aidx .footer-list-nav a { font-size: 13px; opacity: .7; transition: opacity .2s; }
#lp-sparta-aidx .footer-list-nav a:hover { opacity: 1; }
#lp-sparta-aidx .footer-links { text-align: center; padding: 20px 0; border-top: 1px solid rgba(255,255,255,.1); margin-top: 30px; }
#lp-sparta-aidx .footer-links a { font-size: 12px; opacity: .6; }
#lp-sparta-aidx .copyright { text-align: center; font-size: 11px; opacity: .5; }

@media (max-width: 999px) {
  #lp-sparta-aidx .footer-inner { flex-direction: column; align-items: center; text-align: center; }
  #lp-sparta-aidx .footer-list-nav { justify-content: center; }
}

/* ---------- Support Overview ---------- */
#lp-sparta-aidx #support-overview { padding: 80px 0; background: #f8f9fa; }

#lp-sparta-aidx .overview-banner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  background: linear-gradient(90deg, #5F9476, #4d7a60);
  color: #fff;
  padding: 14px 24px;
  border-radius: 10px;
  margin-top: 32px;
  font-size: 15px;
  line-height: 1.6;
}
#lp-sparta-aidx .overview-banner .material-icons-outlined { font-size: 28px; flex-shrink: 0; }
#lp-sparta-aidx .overview-banner strong { font-weight: 700; }

@media (max-width: 999px) {
  #lp-sparta-aidx .overview-banner { font-size: 13px; padding: 12px 16px; }
}

/* ---------- STEP Detail Cards (under roadmap) ---------- */
#lp-sparta-aidx .overview-details {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  margin-top: 32px;
}
#lp-sparta-aidx .overview-detail-card {
  background: #fff;
  border-radius: 10px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,.05);
}
#lp-sparta-aidx .overview-detail-header {
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  padding: 10px 14px;
  line-height: 1.4;
}
#lp-sparta-aidx .overview-detail-header span {
  font-size: 10px;
  opacity: .85;
  margin-right: 6px;
  letter-spacing: .05em;
}
#lp-sparta-aidx .overview-detail-card--s1 .overview-detail-header { background: #5F9476; }
#lp-sparta-aidx .overview-detail-card--s2 .overview-detail-header { background: #4d7a60; }
#lp-sparta-aidx .overview-detail-card--s3 .overview-detail-header { background: #3a6b50; }
#lp-sparta-aidx .overview-detail-card--s4 .overview-detail-header { background: #2d5a42; }

#lp-sparta-aidx .overview-detail-card ul {
  padding: 12px 14px;
}
#lp-sparta-aidx .overview-detail-card li {
  font-size: 12px;
  line-height: 1.7;
  padding-left: 12px;
  position: relative;
  margin-bottom: 3px;
}
#lp-sparta-aidx .overview-detail-card li::before {
  content: "・";
  position: absolute;
  left: 0;
}
#lp-sparta-aidx .overview-detail-card li strong { color: #5F9476; font-weight: 700; }

@media (max-width: 999px) {
  #lp-sparta-aidx .overview-details { grid-template-columns: repeat(2, 1fr); gap: 8px; }
}
@media (max-width: 600px) {
  #lp-sparta-aidx .overview-details { grid-template-columns: 1fr; }
}

/* ---------- 6-Month Roadmap ---------- */
#lp-sparta-aidx .roadmap-wrap {
  margin-top: 32px;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  position: relative;
}

#lp-sparta-aidx .roadmap-header,
#lp-sparta-aidx .roadmap-row,
#lp-sparta-aidx .roadmap-milestones {
  display: flex;
  align-items: stretch;
  min-width: 800px;
}

#lp-sparta-aidx .roadmap-label-col {
  width: 140px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: 4px;
  padding: 8px 4px;
}
#lp-sparta-aidx .roadmap-goal-col {
  width: 120px;
  flex-shrink: 0;
}

#lp-sparta-aidx .roadmap-months {
  flex: 1;
  display: grid;
  grid-template-columns: repeat(6, 1fr);
  gap: 0;
}

#lp-sparta-aidx .roadmap-month {
  text-align: center;
  font-weight: 700;
  font-size: 14px;
  padding: 12px 0;
  background: #f5f5f5;
  border: 1px solid #e8e8e8;
  color: #555;
}

#lp-sparta-aidx .roadmap-step-badge {
  background: #5F9476;
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 10px;
  letter-spacing: .05em;
}
#lp-sparta-aidx .roadmap-step-name {
  font-size: 12px;
  font-weight: 700;
  color: #333;
  text-align: center;
  line-height: 1.4;
  white-space: nowrap;
}

/* Gantt bars - simplified (no detail text) */
#lp-sparta-aidx .roadmap-row { margin-top: 4px; }
#lp-sparta-aidx .roadmap-row .roadmap-months { align-items: stretch; }

#lp-sparta-aidx .roadmap-bar {
  border-radius: 8px;
  padding: 10px 14px;
  display: flex;
  align-items: center;
  min-height: 48px;
}
#lp-sparta-aidx .roadmap-bar-title {
  font-size: 15px;
  font-weight: 700;
  color: #fff;
  white-space: nowrap;
}

#lp-sparta-aidx .roadmap-bar--s1 { background: #5F9476; }
#lp-sparta-aidx .roadmap-bar--s2 { background: #4d7a60; }
#lp-sparta-aidx .roadmap-bar--s3 { background: #3a6b50; }
#lp-sparta-aidx .roadmap-bar--s4 { background: #2d5a42; }
#lp-sparta-aidx .roadmap-bar--s4-early {
  background: linear-gradient(135deg, #4a8a68 0%, #3a6b50 50%, #2d5a42 100%);
  border-radius: 8px 0 0 8px;
}
#lp-sparta-aidx .roadmap-bar--s4-early + .roadmap-bar--s4 {
  border-radius: 0 8px 8px 0;
}

/* Goal box overlay */
#lp-sparta-aidx .roadmap-goal-overlay {
  position: absolute;
  right: 0;
  top: 0;
  bottom: 0;
  width: 120px;
  display: flex;
  align-items: center;
  justify-content: center;
  pointer-events: none;
}
@media (max-width: 999px) {
  #lp-sparta-aidx .roadmap-goal-overlay {
    right: auto;
    left: calc(800px - 90px);
    width: 90px;
  }
}
#lp-sparta-aidx .roadmap-goal-box {
  background: linear-gradient(135deg, #5F9476, #3a6b50);
  color: #fff;
  border-radius: 12px;
  padding: 16px 12px;
  text-align: center;
  font-size: 13px;
  line-height: 1.6;
  box-shadow: 0 4px 16px rgba(95,148,118,.3);
}
#lp-sparta-aidx .roadmap-goal-box .material-icons-outlined {
  font-size: 24px;
  margin-bottom: 4px;
  display: block;
  opacity: .85;
}
#lp-sparta-aidx .roadmap-goal-box strong { font-size: 15px; }

/* Milestones - enhanced */
#lp-sparta-aidx .roadmap-milestones { margin-top: 8px; }
#lp-sparta-aidx .roadmap-milestone-marker {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  text-align: center;
}
#lp-sparta-aidx .milestone-badge {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: #5F9476;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
}
#lp-sparta-aidx .milestone-badge .material-icons-outlined { font-size: 16px; }
#lp-sparta-aidx .milestone-line {
  display: block;
  width: 2px;
  height: 8px;
  background: #5F9476;
}
#lp-sparta-aidx .milestone-text {
  font-size: 10px;
  font-weight: 700;
  color: #5F9476;
  line-height: 1.3;
  margin-top: 2px;
}
#lp-sparta-aidx .roadmap-milestone-marker--accent .milestone-badge {
  background: #c9882a;
}
#lp-sparta-aidx .roadmap-milestone-marker--accent .milestone-line { background: #c9882a; }
#lp-sparta-aidx .roadmap-milestone-marker--accent .milestone-text { color: #c9882a; }

/* Accordion */
#lp-sparta-aidx .overview-accordion { margin-top: 24px; }
#lp-sparta-aidx .overview-accordion-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  width: 100%;
  padding: 12px;
  background: #fff;
  border: 1px solid #ddd;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  color: #5F9476;
  cursor: pointer;
  transition: background .2s;
}
#lp-sparta-aidx .overview-accordion-toggle:hover { background: #f5faf7; }
#lp-sparta-aidx .overview-accordion-icon {
  transition: transform .3s;
}
#lp-sparta-aidx .overview-accordion-toggle.is-open .overview-accordion-icon {
  transform: rotate(180deg);
}
#lp-sparta-aidx .overview-accordion-body {
  padding-top: 16px;
}

/* STEP04 sub-headers in detail card */
#lp-sparta-aidx .overview-detail-sub {
  font-size: 11px;
  font-weight: 700;
  color: #fff;
  background: #5F9476;
  padding: 4px 10px;
  border-radius: 4px;
  margin: 10px 14px 0;
  display: inline-block;
}
#lp-sparta-aidx .overview-detail-sub:first-of-type {
  margin-top: 0;
}

@media (max-width: 999px) {
  #lp-sparta-aidx .roadmap-wrap { margin: 32px -20px 0; padding: 0 20px; }
  #lp-sparta-aidx .roadmap-label-col { width: 100px; }
  #lp-sparta-aidx .roadmap-goal-col { width: 90px; }
  #lp-sparta-aidx .roadmap-goal-box { padding: 12px 8px; font-size: 11px; }
  #lp-sparta-aidx .roadmap-goal-box strong { font-size: 13px; }
  #lp-sparta-aidx .roadmap-step-name { font-size: 11px; }
  #lp-sparta-aidx .roadmap-bar-title { font-size: 13px; }
  #lp-sparta-aidx .roadmap-bar { min-height: 40px; padding: 8px 10px; }
}

/* ---------- Industry Map ---------- */
#lp-sparta-aidx #industry-map { padding: 80px 0; background: #fff; }

#lp-sparta-aidx .imap-tabs {
  display: flex;
  gap: 8px;
  margin-top: 32px;
  flex-wrap: wrap;
  justify-content: center;
}
#lp-sparta-aidx .imap-tab {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 12px 20px;
  border: 2px solid #ddd;
  border-radius: 8px;
  background: #fff;
  font-size: 14px;
  font-weight: 700;
  color: #666;
  cursor: pointer;
  transition: all .2s;
}
#lp-sparta-aidx .imap-tab .material-icons-outlined { font-size: 20px; }
#lp-sparta-aidx .imap-tab:hover { border-color: #5F9476; color: #5F9476; }
#lp-sparta-aidx .imap-tab.is-active { background: #5F9476; border-color: #5F9476; color: #fff; }

#lp-sparta-aidx .imap-panel { display: none; margin-top: 28px; }
#lp-sparta-aidx .imap-panel.is-active { display: block; }
#lp-sparta-aidx .imap-panel-lead { font-size: 18px; text-align: center; margin-bottom: 24px; line-height: 1.7; }
#lp-sparta-aidx .imap-panel-lead strong { color: #5F9476; }

/* Visual flow layout */
#lp-sparta-aidx .imap-visual-wrap {
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}
#lp-sparta-aidx .imap-visual {
  display: flex;
  gap: 0;
  min-width: 900px;
}

/* Sidebar */
#lp-sparta-aidx .imap-sidebar {
  width: 140px;
  flex-shrink: 0;
  border: 2px solid #ddd;
  border-radius: 10px;
  margin-right: 12px;
  background: #fff;
}
#lp-sparta-aidx .imap-sidebar-header {
  background: #333;
  color: #fff;
  font-weight: 700;
  font-size: 13px;
  text-align: center;
  padding: 10px 8px;
  border-radius: 8px 8px 0 0;
}
#lp-sparta-aidx .imap-sidebar-list {
  padding: 14px 12px;
}
#lp-sparta-aidx .imap-sidebar-list li {
  font-size: 12px;
  line-height: 1.6;
  padding-left: 12px;
  position: relative;
  margin-bottom: 4px;
}
#lp-sparta-aidx .imap-sidebar-list li::before {
  content: "・";
  position: absolute;
  left: 0;
}

/* Phase groups container */
#lp-sparta-aidx .imap-phases {
  display: flex;
  flex: 1;
  gap: 8px;
}

/* Each phase */
#lp-sparta-aidx .imap-phase-group {
  flex: 1;
  display: flex;
  flex-direction: column;
}
#lp-sparta-aidx .imap-phase-bar {
  color: #fff;
  font-weight: 700;
  font-size: 14px;
  text-align: center;
  padding: 10px 8px;
  border-radius: 6px 6px 0 0;
  line-height: 1.4;
}
#lp-sparta-aidx .imap-sub-labels {
  display: flex;
  gap: 4px;
  padding: 6px 4px;
  background: #f5f5f5;
  border-left: 1px solid #e0e0e0;
  border-right: 1px solid #e0e0e0;
}
#lp-sparta-aidx .imap-sub-labels span {
  flex: 1;
  text-align: center;
  font-size: 11px;
  font-weight: 600;
  color: #666;
  padding: 4px 2px;
  background: #fff;
  border: 1px solid #e8e8e8;
  border-radius: 4px;
}

/* Task cards */
#lp-sparta-aidx .imap-cards {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 8px 6px;
  background: #fafafa;
  border-left: 1px solid #e0e0e0;
  border-right: 1px solid #e0e0e0;
  border-bottom: 1px solid #e0e0e0;
  border-radius: 0 0 6px 6px;
}
#lp-sparta-aidx .imap-card {
  background: #5F9476;
  color: #fff;
  font-size: 12px;
  font-weight: 500;
  text-align: center;
  padding: 10px 8px;
  border-radius: 6px;
  line-height: 1.5;
}
#lp-sparta-aidx .imap-card--muted {
  background: #e0e0e0;
  color: #666;
}

/* Custom bar */
#lp-sparta-aidx .imap-custom-bar {
  background: #f0f7f3;
  color: #5F9476;
  font-weight: 700;
  font-size: 13px;
  text-align: center;
  padding: 10px;
  border-radius: 6px;
  margin-top: 8px;
  border: 1px dashed #b5d4c2;
}

/* Other industry tab */
#lp-sparta-aidx .imap-other {
  text-align: center;
  padding: 48px 24px;
  background: #f8f9fa;
  border-radius: 12px;
  border: 2px dashed #c5ddd0;
}
#lp-sparta-aidx .imap-other-icon .material-icons-outlined {
  font-size: 48px;
  color: #5F9476;
  margin-bottom: 12px;
}
#lp-sparta-aidx .imap-other-ttl {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 12px;
}
#lp-sparta-aidx .imap-other-txt {
  font-size: 15px;
  line-height: 1.8;
  margin-bottom: 8px;
}
#lp-sparta-aidx .imap-other-txt strong { color: #5F9476; }
#lp-sparta-aidx .imap-other-sub {
  font-size: 13px;
  color: #888;
  margin-bottom: 24px;
}
#lp-sparta-aidx .imap-other-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #5F9476;
  color: #fff;
  padding: 14px 28px;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 700;
  transition: background .2s;
}
#lp-sparta-aidx .imap-other-btn:hover { background: #4d7a60; }
#lp-sparta-aidx .imap-other-btn .material-icons-outlined { font-size: 20px; }

@media (max-width: 999px) {
  #lp-sparta-aidx .imap-tabs { gap: 6px; }
  #lp-sparta-aidx .imap-tab { padding: 10px 14px; font-size: 12px; }
  #lp-sparta-aidx .imap-panel-lead { font-size: 15px; }
  #lp-sparta-aidx .imap-visual-wrap { margin: 0 -20px; padding: 0 20px; }
  #lp-sparta-aidx .imap-other { padding: 32px 16px; }
  #lp-sparta-aidx .imap-other-ttl { font-size: 17px; }
}

/* ---------- Scroll hint (SP horizontal scroll) ---------- */
/* 削除済み：白グラデーションのオーバーレイはスクロール時にずれるため廃止 */

/* ---------- Small phone (375px) ---------- */
@media (max-width: 400px) {
  #lp-sparta-aidx .fv-form-header-img { flex: 0 0 90px; }
  #lp-sparta-aidx .fv-form-header-main { font-size: 13px; }
  #lp-sparta-aidx .fv-form-header-main strong { font-size: 17px; }
}
