@charset "UTF-8";

html, body {
  scroll-behavior: smooth; /* スクロールを滑らかに */
  }

/* ==========================================================================
   ROKAE LP Styles
   Scoped under .rokae-lp-wrapper
   ========================================================================== */

   /* ROKAE LP専用：ヘッダー、ページタイトル、パンくずを非表示 */
.page--rk-lp-check-20240728-u8i9o0p1a2s3d4f5g6h7 #header,
.page--rk-lp-check-20240728-u8i9o0p1a2s3d4f5g6h7 #page-title-wrapper,
.page--rk-lp-check-20240728-u8i9o0p1a2s3d4f5g6h7 #breadcrumb-wrapper {
    display: none !important;
}

/* コンテンツが上に詰まりすぎる場合は調整 */
.rokae-lp-wrapper {
    margin-top: 0;
    overflow: visible !important;
}

.rokae-lp-wrapper {
  --rk-primary: #0284c7;
  --rk-primary-hover: #0369a1;
  --rk-light-blue: #e0f2fe;
  --rk-yellow: #facc15;
  --rk-yellow-hover: #eab308;
  --rk-gray: #f8fafc;
  --rk-dark-slate: #1e293b;
  --rk-text: #0f172a;
  --rk-white: #ffffff;
  --rk-red: #e11d48;
  --rk-font: 'Noto Sans JP', 'Helvetica Neue', Arial, 'Hiragino Kaku Gothic ProN', 'Hiragino Sans', Meiryo, sans-serif;
  font-family: var(--rk-font);
  color: var(--rk-text);
  line-height: 1.6;
  font-size: 16px;
  background-color: var(--rk-white);
}

.rokae-lp-wrapper *,
.rokae-lp-wrapper *::before,
.rokae-lp-wrapper *::after {
  box-sizing: border-box;
}

.rokae-lp-wrapper img {
  max-width: 100%;
  height: auto;
  vertical-align: middle;
}

.rokae-lp-wrapper a {
  text-decoration: none;
  color: inherit;
}

/* Utilities */
.rk-inner {
  max-width: 1200px;
  margin: 0 auto;
}

.rk-blue-text { color: var(--rk-primary); }
.rk-red-text { color: var(--rk-red); }

.rk-sec-title {
  font-size: 2.2rem;
  font-weight: bold;
  text-align: center;
  margin-bottom: 50px;
  line-height: 1.4;
}

.rk-small-title {
  font-size: 1.4rem;
  color: #64748b;
  font-weight: normal;
}

/* Buttons */
.rk-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-weight: bold;
  border-radius: 50px;
  padding: 12px 40px;
  cursor: pointer;
  transition: all 0.3s ease;
  text-align: center;
}

.rk-btn--yellow {
  background-color: var(--rk-yellow);
  color: var(--rk-text);
}

.rk-btn--yellow:hover {
  background-color: var(--rk-yellow-hover);
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(0,0,0,0.15);
}

.rk-btn--shadow {
  box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

.rk-btn--large {
  font-size: 1.25rem;
  padding: 16px 60px;
}

.rk-btn__arrow {
  display: inline-block;
  width: 8px;
  height: 8px;
  border-top: 2px solid currentColor;
  border-right: 2px solid currentColor;
  transform: rotate(45deg);
  margin-left: 15px;
}

/* Top Bar 追従設定 */
.rokae-lp-wrapper .rk-topbar {
  background-color: #fff;
  border-bottom: 1px solid #e2e8f0;
  position: sticky;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999; /* 数値を大きくして最前面へ */
}

.rokae-lp-wrapper .rk-topbar__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 8px 20px;
  display: flex;
  align-items: center;
}

.rokae-lp-wrapper .rk-topbar__logos {
  display: flex;
  align-items: center;
  gap: 15px;
}

/* 共通：ロゴ画像の設定 */
.rokae-lp-wrapper .rk-topbar__logo-img {
  display: block;
  width: auto;
  object-fit: contain;
}

/* 1番目のロゴ（ロボットロゴ）のサイズ微調整 */
.rokae-lp-wrapper .rk-topbar__logo-img:nth-of-type(1) {
  height: 45px !important;
}

/* 2番目のロゴ（ROKAEロゴ）のサイズ微調整 */
.rokae-lp-wrapper .rk-topbar__logo-img:nth-of-type(2) {
  height: 25px !important; /* ROKAEが大きいとのことなので、数値を小さく設定 */
}

/* ×印のバランス */
.rokae-lp-wrapper .rk-topbar__cross {
  color: #94a3b8;
  font-size: 20px;
  font-weight: 300;
  line-height: 1;
}

/* リンクの親要素（aタグ）の設定 */
.rokae-lp-wrapper .rk-topbar__logo-link {
  display: block;
  line-height: 0; /* aタグの余計な隙間を消す */
  transition: opacity 0.3s ease;
}

/* ホバーした時に少し薄くする（クリックできることを伝える） */
.rokae-lp-wrapper .rk-topbar__logo-link:hover {
  opacity: 0.7;
}

/* 以前の nth-of-type 指定を aタグの中の img に適用されるよう修正 */
.rokae-lp-wrapper .rk-topbar__logo-link:nth-of-type(1) .rk-topbar__logo-img {
  height: 45px !important;
}

.rokae-lp-wrapper .rk-topbar__logo-link:nth-of-type(2) .rk-topbar__logo-img {
  height: 25px !important;
}

/* FV全体 */
.rk-fv {
  background-color: #f8f9fa; /* 画像に合わせた薄いグレー */
  overflow: hidden;
}

.rk-fv__inner {
  display: flex;
  align-items: center;
  padding: 40px 20px;
}

/* 左側コンテンツ */
.rk-fv__left {
  flex: 1;
  z-index: 2;
}

/* グラデーションラベル */
.rk-fv__labels {
  display: flex;
  flex-direction: column;
  gap: 8px;
  margin-bottom: 30px;
}

.rk-fv__label {
  display: inline-table; /* 文字幅に合わせる */
  background: linear-gradient(90deg, #1e4ea1 0%, #4facfe 100%);
  color: #fff;
  padding: 8px 15px;
  font-weight: bold;
  font-size: 2.2rem;
  width: fit-content;
}

/* タイトル周り */
.rk-fv__title {
  margin-bottom: 30px;
  line-height: 1.3;
}

.rk-fv__logo-img {
  height: 45px; /* ロゴのサイズを調整 */
  width: auto;
  margin-bottom: 10px;
}

.rk-fv__title-black {
  display: block;
  font-size: 3.8rem;
  color: #666; /* 画像のような少し柔らかい黒 */
  font-weight: 700;
}

/* アクションエリア（相談テキスト＋ボタン） */
.rk-fv__action {
  display: inline-flex; /* inline-flexにすることで、中身の幅に合わせつつ左に配置できます */
  flex-direction: column;
  align-items: center; /* これでテキストとボタンが垂直方向で中央揃えになります */
  gap: 15px;
  margin-top: 10px;
}

.rk-fv__action-text {
  font-size: 2.2rem;
  color: #666;
  font-weight: bold;
  margin-left: 0; /* 中央揃えにするため、先ほど設定した margin-left は 0 に戻します */
}

/* 黄色いボタン（微調整） */
.rk-btn--fv {
  display: inline-block;
  background-color: #faff4c;
  color: #333;
  padding: 15px 100px;
  border-radius: 15px;
  font-size: 2.4rem;
  font-weight: bold;
  text-decoration: none;
  box-shadow: 0 4px 0 #e6e600;
  transition: all 0.2s;
  white-space: nowrap; /* ボタン内で改行されないように */
}

.rk-btn--fv:hover {
  transform: translateY(2px);
  box-shadow: 0 2px 0 #e6e600;
}

.rk-btn__tri {
  font-size: 1rem;
  margin-right: 5px;
  vertical-align: middle;
}

/* 右側画像 */
.rk-fv__right {
  flex: 1.2;
}

.rk-fv__right img {
  width: 100%;
  height: auto;
  filter: drop-shadow(0 10px 20px rgba(0,0,0,0.1));
}

/* 2. Problem Section */
.rk-problem {
  background-color: rgba(209, 209, 220, 0.29); /* #D1D1DC4A 相当の薄いグレー */
  padding: 60px 0 0;
}

.rk-sec-title {
  text-align: center;
  font-size: 2.2rem;
  color: #3b82f6; /* 青字 */
  margin-bottom: 50px;
}
.rk-sec-title .rk-gray-text { color: #666; }

.rk-problem__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  margin-bottom: 60px;
}

.rk-pcard {
  background: #fff;
  border-radius: 30px; /* 画像のような大きな丸角 */
  padding: 40px 20px 20px;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0,0,0,0.05);
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.rk-pcard__text {
  font-size: 1.6rem;
  color: #666;
  line-height: 1.6;
  font-weight: bold;
  margin-bottom: 10px;
}

.rk-pcard__img img {
  width: 100%;
  height: auto;
  max-width: 240px;
  margin: 0 auto;
}

/* 解決エリア */
.rk-solve-area {
  text-align: center;
  margin-top: 20px; /* カードとの距離を少し詰める */
}

.rk-solve-message {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  /* 文字サイズを画像に寄せて少し小さく調整 */
  font-size: 1.6rem;
  font-weight: bold;
  margin-bottom: 20px;
}

/* JRCロゴをスリムに */
.rk-solve-logo-jrc {
  height: 38px !important;
  width: auto;
}

/* ROKAEロゴをスリムに */
.rk-solve-logo-rokae {
  height: 23px !important;
  width: auto;
}

.rk-solve-cross {
  color: #999;
  font-size: 2.2rem;
  font-weight: normal;
}

.rk-solve-text {
  color: #3b82f6;
  margin-left: 5px;
  letter-spacing: 0.05em;
  font-size: 2.2rem;
}

/* 二重矢印のコンテナ */
.rk-double-arrow {
  display: inline-block;
  width: 40px;
  height: 50px; /* 高さをしっかり確保 */
  position: relative; /* 子要素（before/after）の基準点にするために必須 */
  margin: 0 auto;
}

/* 矢印の共通設定 */
.rk-double-arrow::before,
.rk-double-arrow::after {
  content: "";
  display: block;
  width: 40px; /* 少し太く・大きくして視認性を上げます */
  height: 40px;
  border-right: 10px solid #3b82f6;
  border-bottom: 10px solid #3b82f6;
  transform: rotate(45deg);
  position: absolute;
  left: 50%;
  transform-origin: center;
  margin-left: -10px; /* 幅の半分マイナス */
}

/* 1つ目の矢印（上） */
.rk-double-arrow::before {
  top: 0;
}

/* 2つ目の矢印（下） */
.rk-double-arrow::after {
  top: 30px; /* 重なり具合を調整 */
}

/* 解決エリア全体の背景を確実にセクションと同じにする */
.rk-solve-area {
  text-align: center;
  padding: 0px 0 60px;
  background-color: transparent; /* 親の #D1D1DC4A を透過させる */
}

/* 3. Solution Section */
.rk-solution {
  background-color: rgba(209, 209, 220, 0.29); /* 前のセクションと同じ背景色 */
  padding: 0px 0 70px;
}

.rk-solution__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

/* カード単体のスタイル */
.rk-scard {
  background: #fff;
  border-radius: 40px; /* 画像のような大きな丸角 */
  padding: 40px 30px;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0,0,0,0.03);
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* カード内：タイトル */
.rk-scard__title {
  font-size: 1.6rem;
  font-weight: bold;
  color: #555; /* 画像に合わせた濃いグレー */
  margin-bottom: 25px;
  line-height: 1.4;
  height: 4em; /* タイトルの高さを揃える */
  display: flex;
  align-items: center;
  justify-content: center;
}

/* カード内：画像エリアの高さを統一 */
.rk-scard__img {
  width: 100%;
  height: 250px; /* ここですべての高さを統一 */
  margin-bottom: 25px;
  display: flex;
  align-items: center; /* 垂直方向中央 */
  justify-content: center; /* 水平方向中央 */
}

.rk-scard__img img {
  max-width: 100%;
  max-height: 100%; /* 親の250pxからはみ出さないように制限 */
  width: auto;      /* 比率を維持 */
  height: auto;     /* 比率を維持 */
  object-fit: contain;
}

/* ついでにカード全体の高さも揃えるとより綺麗です */
.rk-solution__cards {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
  align-items: stretch; /* すべてのカードの高さを一番長いものに合わせる */
}

.rk-scard {
  height: 100%; /* 親（grid）の高さに合わせる */
  /* 他の設定はそのまま */
}

/* カード内：説明文 */
.rk-scard__text {
  font-size: 1.3rem;
  color: #777;
  line-height: 1.7;
  text-align: left; /* 説明文は左寄せの方が見やすいですが、画像に合わせて微調整してください */
}

/* CTA Banner 1 */
.rk-cta-banner {
  /* ラベルと同じグラデーションを適用 */
  background: linear-gradient(90deg, #1e4ea1 0%, #4facfe 100%);
  padding: 40px 0;
}

.rk-cta-banner__inner {
  text-align: center;
}

/* CTA専用のボタン微調整 */
.rk-cta-btn {
  /* すでに定義済みの .rk-btn--fv のスタイルが適用されます */
  padding: 15px 80px !important; /* CTA用に少し横幅を調整 */
  display: inline-block;
}

/* 4. Features Section */
.rk-features {
  background-color: #fff;
  padding: 80px 0;
}

.rk-features__header {
  text-align: left;
  margin-bottom: 40px;
  max-width: 1000px;
  margin-left: 0px;
  margin-right: auto;
}

.rk-features__top-label {
  display: inline-block;
  background-color: #ffff00;
  color: #333;
  font-weight: bold;
  padding: 5px 20px;
  font-size: 1.2rem;
  margin-bottom: 20px;
  text-align: left;
}

.rk-features__logo {
  height: 45px;
  width: auto;
  margin-bottom: 10px;
  display: block;
}

.rk-features__maintitle {
  font-size: 2.8rem;
  color: #666;
  font-weight: 700;
  line-height: 1.2;
  text-align: left;
}

/* メイン図解 */
.rk-features__diagram {
  margin-bottom: 50px;
  text-align: center;
}

.rk-diagram-full {
  width: 100%;
  max-width: 1000px; /* 元画像に合わせて調整 */
  height: auto;
}

/* 特徴ボックス（水色背景） */
.rk-features__boxes {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 20px;
  margin-bottom: 60px;
}

.rk-fbox {
  background-color: #f0f7ff; /* 極めて薄い水色 */
  padding: 40px 30px;
  border-radius: 5px;
}

.rk-fbox h3 {
  color: #555;
  font-size: 2.2rem;
  font-weight: bold;
  margin-bottom: 20px;
  line-height: 1.4;
}

.rk-fbox p {
  color: #666;
  font-size: 1.5rem;
  line-height: 1.7;
}

/* スペックテーブル（画像のデザインを再現） */
.rk-table-wrap {
  margin-bottom: 80px;
}

.rk-spec-table {
  width: 100%;
  border-collapse: collapse;
}

.rk-spec-table th {
  padding: 15px;
  font-size: 1.5rem;
  color: #666;
  font-weight: bold;
  border-bottom: 1px solid #ccc;
}

.rk-spec-table td {
  padding: 30px 15px;
  text-align: center;
  color: #666;
  border-bottom: 1px dashed #ccc; /* 点線の区切り */
}

.rk-spec-name {
  text-align: left !important;
  font-weight: bold;
  font-size: 1.5rem;
}

.rk-spec-num {
  font-size: 2.8rem; /* 数字を大きく強調 */
  font-weight: bold;
  margin-right: 2px;
}

/* 動画エリア */
.rk-video-sec {
  text-align: center;
}

.rk-video-title {
  font-size: 1.4rem;
  font-weight: bold;
  color: #666;
  margin-bottom: 20px;
}

.rk-video__placeholder img {
  width: 100%;
  max-width: 800px;
  border-radius: 0; /* 画像に合わせてフラットに */
}

/* 5. JRCの実績セクション */
.rk-steps {
  background-color: rgba(209, 209, 220, 0.29); /* #D1D1DC4A 相当の薄いグレー */
  padding: 50px 0;
}

.rk-steps__main-title {
  text-align: center;
  font-size: 2.6rem;
  color: #666;
  margin-bottom: 50px;
}

.rk-steps__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 30px;
  max-width: 1000px;
  margin: 0 auto;
}

/* カード単体 */
.rk-step {
  background-color: #fff;
  border-radius: 40px; /* 大きな丸角 */
  padding: 40px 35px;
  text-align: center;
  box-shadow: 0 10px 30px rgba(0,0,0,0.03);
  display: flex;
  flex-direction: column;
}

/* 数字 01-04 */
.rk-step__num {
  font-size: 5rem;
  font-weight: 800;
  color: #3b82f6; /* 青 */
  line-height: 1;
  display: block;
  margin-bottom: 20px;
  opacity: 0.7;
}

/* カード内タイトル */
.rk-step__title {
  font-size: 1.6rem;
  color: #3b82f6;
  font-weight: bold;
  margin-bottom: 25px;
  line-height: 1.4;
  height: 3em; /* タイトルの高さを揃える */
  display: flex;
  align-items: center;
  justify-content: center;
}

/* カード内画像エリア */
.rk-step__img {
  width: 100%;
  height: 220px;
  margin-bottom: 25px;
  background-color: #f8f9fa;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.rk-step__img img {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 画像をエリアいっぱいに表示 */
}

/* 説明テキスト */
.rk-step__text {
  text-align: left;
  font-size: 1.5rem;
  color: #666;
  line-height: 1.7;
  margin: 0;
}

/* 下部テキスト */
.rk-steps__footer-text {
  text-align: center;
  font-size: 2.6rem;
  color: #666;
  margin-top: 80px;
}

/* 安心サポート詳細エリア */
.rk-support {
  max-width: 900px;
  margin: 60px auto 0;
}

.rk-support__item {
  display: flex;
  align-items: center;
  gap: 40px;
  margin-bottom: 50px;
}

/* 画像エリア（横幅を固定してバランスを取る） */
.rk-support__img {
  flex: 0 0 45%;
}

.rk-support__img img {
  width: 100%;
  height: auto;
  display: block;
}

/* テキストエリア */
.rk-support__body {
  flex: 1;
}

.rk-support__h3 {
  font-size: 2.2rem;
  color: #666;
  font-weight: bold;
  margin-bottom: 15px;
  line-height: 1.4;
}

.rk-support__p {
  font-size: 1.5rem;
  color: #666;
  line-height: 1.7;
  margin: 0;
}

/* 6. Cases Section */
.rk-cases {
  background-color: #fff;
  padding-top: 80px;
}

/* タイトル下の青い線（画像再現） */
.rk-cases .rk-sec-title {
  text-align: center;
  font-size: 2.2rem;
  color: #666;
  margin-bottom: 60px;
  position: relative;
  padding-bottom: 15px;
}

.rk-cases .rk-sec-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 4px;
  background-color: #3b82f6; /* 青いアクセント線 */
}

.rk-cases__list {
  max-width: 1000px;
  margin: 0 auto;
}

.rk-case {
  display: flex;
  gap: 40px;
  margin-bottom: 60px;
  align-items: flex-start;
}

/* 画像リンク */
.rk-case__img-link {
  flex: 0 0 40%;
  display: block;
  overflow: hidden;
  transition: opacity 0.3s;
}

.rk-case__img-link:hover {
  opacity: 0.8;
}

.rk-case__img img {
  width: 100%;
  height: auto;
  display: block;
}

/* 本文エリア */
.rk-case__body {
  flex: 1;
}

.rk-case__title {
  font-size: 2.2rem;
  font-weight: bold;
  line-height: 1.4;
  margin-bottom: 15px;
}

.rk-case__title a {
  text-decoration: none;
  color: #555;
  transition: color 0.3s;
}

.rk-case__title a:hover {
  color: #3b82f6;
}

/* 日付・カテゴリー */
.rk-case__meta {
  margin-bottom: 15px;
  font-size: 1.5rem;
  color: #888;
  display: flex;
  gap: 20px;
}

/* 説明文 */
.rk-case__text {
  font-size: 1.5rem;
  color: #666;
  line-height: 1.7;
}

/* 7. FAQ Section */
.rk-faq {
  background-color: #fff;
  padding: 0px;
}

/* タイトル下の青線（導入事例と統一） */
.rk-faq .rk-sec-title {
  text-align: center;
  font-size: 2.2rem;
  color: #666;
  margin-bottom: 60px;
  position: relative;
  padding-bottom: 15px;
}

.rk-faq .rk-sec-title::after {
  content: "";
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 40px;
  height: 4px;
  background-color: #3b82f6;
}

.rk-faq__list {
  max-width: 900px;
  margin: 0 auto;
}

.rk-faq__item {
  margin-bottom: 50px; /* 項目ごとの余白 */
}

/* 質問エリア */
.rk-faq__q {
  display: flex;
  align-items: center;
  gap: 15px;
  margin-bottom: 15px;
}

.rk-faq__q-icon {
  font-size: 3rem;
  font-weight: bold;
  color: #1e4ea1; /* 濃い青 */
  line-height: 1;
}

.rk-faq__q-text {
  font-size: 2.2rem;
  color: #666;
  font-weight: bold;
  margin: 0;
}

/* 回答エリア */
.rk-faq__a {
  display: flex;
  align-items: flex-start;
  gap: 15px;
  padding-left: 5px;
}

.rk-faq__a-icon {
  flex: 0 0 44px; /* 円のサイズ */
  height: 44px;
  background-color: #1e4ea1;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2rem;
  font-weight: bold;
  margin-top: 0px; /* 視覚的な位置調整 */
}

.rk-faq__a-text {
  font-size: 1.5rem;
  color: #666;
  line-height: 1.7;
  padding-top: 5px;
}

/* 8. Our Role Section */
.rk-role {
  background-color: rgba(209, 209, 220, 0.29); /* 薄いグレー */
  padding: 80px 0;
}

.rk-role__grid {
  display: flex;
  align-items: center;
  gap: 20px;
  max-width: 1100px;
  margin: 0 auto;
}

.rk-role__col { flex: 1; }

/* 左・右共通のボックススタイル */
.rk-role__box {
  background-color: #fff;
  margin-bottom: 20px;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 4px 10px rgba(0,0,0,0.05);
}

.rk-role__box-title {
  background-color: #000066; /* 濃紺 */
  color: #fff;
  padding: 10px;
  text-align: center;
  font-size: 1.8rem;
  margin: 0;
}

.rk-role__box-text {
  padding: 15px;
  font-size: 1.2rem;
  color: #333;
  line-height: 1.5;
  margin: 0;
}

/* 中央カラム */
.rk-role__col--center {
  flex: 1.2;
  position: relative;
  text-align: center;
  padding: 0 40px;
}

.rk-role__logo {
  width: 240px; /* 120pxから240pxへ変更 */
  height: auto;
  margin-bottom: 15px;
  display: inline-block;
}

.rk-role__sier-sub {
  font-size:1.85rem;
  color: #1e4ea1;
  font-weight: bold;
  margin-bottom: 10px;
}

.rk-role__sier-title {
  font-size: 1.5rem;
  font-weight: bold;
  color: #333;
  line-height: 1.4;
  margin-bottom: 20px;
}

.rk-role__list-box {
  border: 1px solid #333;
  padding: 20px;
  text-align: left;
  display: inline-block;
  background: #fff;
}

.rk-role__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.rk-role__list li {
  position: relative;
  padding-left: 20px;
  font-weight: bold;
  margin-bottom: 5px;
  color: #333;
  font-size: 1.5rem;
}

.rk-role__list li::before {
  content: "●";
  color: #1e4ea1;
  position: absolute;
  left: 0;
}

.rk-role__list-note {
  text-align: right;
  margin: 5px 0 0;
  font-size: 1.2rem;
}

/* 矢印の再現 */
.rk-role__arrow {
  position: absolute;
  top: 30%;
  width: 0;
  height: 0;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  border-left: 15px solid #3b82f6;
}
.rk-role__arrow--1 { left: 0; }
.rk-role__arrow--2 { right: 0; }

/* 右カラム */
.rk-role__user-content {
  text-align: left;
}

.rk-role__user-text {
  font-size: 1.2rem;
  font-weight: bold;
  margin-bottom: 15px;
}

.rk-role__user-imgs img {
  width: 100%;
  margin-bottom: 10px;
  border-radius: 4px;
}

/* 9. Footer CTA */
.rk-footer-cta {
  background-color: #fff;
}

.rk-footer-cta__banner {
  /* これまでのCTAバナーと統一したグラデーション */
  background: linear-gradient(90deg, #1e4ea1 0%, #4facfe 100%);
  padding: 50px 0;
}

.rk-footer-cta__banner-inner {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 40px; /* テキストとボタンの間隔 */
}

.rk-footer-cta__text {
  color: #fff;
  font-size: 1.8rem;
  font-weight: bold;
  margin: 0;
}

/* フッターCTA専用のボタン微調整 */
.rk-footer-cta__btn {
  /* すでに定義済みの .rk-btn--fv が適用されます */
  padding: 15px 60px !important;
  font-size: 2rem !important;
  white-space: nowrap;
}

/* Responsive */
@media (max-width: 1024px) {
  .rk-problem__cards, .rk-solution__cards {
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  }
  .rk-diagram__img {
    max-width: 100%;
  }
  .rk-callout {
    position: relative;
    top: auto !important; left: auto !important; right: auto !important; bottom: auto !important;
    width: 100%;
    margin-bottom: 15px;
  }
  .rk-callout::after { display: none; }
  .rk-fv__inner {
    flex-direction: column;
    text-align: center;
  }
  .rk-fv__left { padding-right: 0; margin-bottom: 40px; }
  .rk-cases__list { grid-template-columns: 1fr; }
  .rk-features__boxes { flex-direction: column; }
  .rk-footer-info__inner { flex-direction: column; gap: 30px; text-align: center; }
  .rk-footer-links { flex-direction: column; }
}

@media (max-width: 768px) {
  .rk-fv__title-red { font-size: 2.2rem; }
  .rk-fv__title-black { font-size: 1.8rem; }
  .rk-sec-title { font-size: 1.8rem; }
  
  .rk-problem__cards, .rk-solution__cards {
    grid-template-columns: 1fr;
  }
  .rk-steps__grid {
    grid-template-columns: 1fr;
  }
  .rk-case { flex-direction: column; }
  .rk-case__img, .rk-case__body { width: 100%; }
  
  .rk-ribbon { font-size: 1.1rem; padding: 15px 20px; }
  .rk-ribbon__logo { font-size: 1.3rem; }
  
  /* Table: Card-based layout for Mobile */
  .rk-table, .rk-table tbody, .rk-table tr, .rk-table td {
    display: block;
    width: 100%;
  }
  .rk-table thead {
    display: none;
  }
  .rk-table tr {
    margin-bottom: 20px;
    border: 1px solid #cbd5e1;
    border-radius: 8px;
    box-shadow: 0 4px 10px rgba(0,0,0,0.05);
    overflow: hidden;
  }
  .rk-table td {
    text-align: right;
    padding: 15px 15px 15px 50%;
    position: relative;
    border-bottom: 1px solid #e2e8f0;
    border-top: none; border-left: none; border-right: none;
  }
  .rk-table td:last-child {
    border-bottom: none;
  }
  .rk-table td::before {
    content: attr(data-label);
    position: absolute;
    left: 15px;
    top: 15px;
    font-weight: bold;
    color: var(--rk-primary);
    text-align: left;
    width: 45%;
  }
  .rk-table td.rk-table__head-col {
    background-color: var(--rk-primary);
    color: var(--rk-white);
    text-align: left;
    padding: 15px;
  }
  .rk-table td.rk-table__head-col::before {
    display: none;
  }
  .rk-table td.rk-table__head-col .rk-table__note {
    color: var(--rk-light-blue);
  }
}
