@charset "utf-8";


/*---------------------------
応対指導力強化研修
---------------------------*/

.rcs-wrap {
  width: 100%;
  margin: 0 auto;
  padding-top: 30px;
  box-sizing: border-box;
  color: #333333;
}
.rcs-wrap *,
.rcs-wrap *::before,
.rcs-wrap *::after {
  box-sizing: border-box;
}

/* セクション共通 */
.rcs-section {
  margin-bottom: 50px;
  background-color: #f2f7fa; /* ベースの薄いブルー */
  border-radius: 12px;
  padding: 40px 30px;
}
.rcs-section:last-child {
  margin-bottom: 0;
}

/* セクションタイトル */
.rcs-sec-title {
  background-color: #0070c0; /* メインブルー */
  color: #ffffff;
  text-align: center;
  margin: -40px -30px 40px -30px;
  padding: 18px 20px;
  border-radius: 12px 12px 0 0;
  font-weight: bold;
}

/* メディアオブジェクト（画像＋テキストカード用共通） */
.rcs-media-card {
  background-color: #ffffff;
  border-radius: 8px;
  padding: 24px;
  display: flex;
  align-items: flex-start;
  gap: 20px;
  box-shadow: 0 4px 12px rgba(0, 112, 192, 0.05);
}
.rcs-media-img {
  flex-shrink: 0;
  /* 既存CSSによる強制的な引き伸ばしを防止 */
  width: 80px !important;
  height: 80px !important;
  max-width: 80px !important;
  max-height: 80px !important;
  object-fit: contain !important;
  align-self: flex-start; /* 縦方向への引き伸ばしを防止 */
  background: transparent !important; /* 透過画像に対応するため背景色をクリア */
}
.rcs-media-body {
  flex-grow: 1;
}
.rcs-card-title {
  color: #0070c0;
  margin: 0 0 8px 0;
  font-weight: bold;
}
.rcs-card-text {
  margin: 0;
  line-height: 1.6;
}

/* ----------------------------------
   1. 応対に求められること（グリッド）
------------------------------------- */
.rcs-req-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

/* ----------------------------------
   2. 応対をよくする目的（インフォグラフィック）
------------------------------------- */
/* PC向け：中央コアから3方向に広がるレイアウト */
.rcs-obj-layout {
  display: grid;
  grid-template-columns: 1fr 220px 1fr;
  grid-template-rows: auto auto auto;
  align-items: center;
  gap: 20px;
  max-width: 960px;
  margin: 0 auto;
}

/* コア（応対品質の向上） */
.rcs-obj-core {
  grid-column: 2;
  grid-row: 2;
  background-color: #0070c0;
  color: #ffffff;
  border-radius: 50%;
  width: 220px;
  height: 220px;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 20px;
  box-shadow: 0 8px 24px rgba(0, 112, 192, 0.25);
  z-index: 2;
  position: relative; /* 接続線の基準とするためにrelativeを追加 */
}
.rcs-obj-core .rcs-media-img {
  width: 60px !important;
  height: 60px !important;
  max-width: 60px !important;
  max-height: 60px !important;
  margin-bottom: 10px;
  border: none !important;
  background: transparent !important;
  object-fit: contain !important;
  align-self: center;
}
.rcs-obj-core-text {
  font-weight: bold;
  margin: 0;
}

/* 目的カード（周辺の3つ） */
.rcs-obj-node {
  background-color: #ffffff;
  border: 2px solid #0070c0;
  border-radius: 8px;
  padding: 20px;
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  z-index: 2;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.05);
}
.rcs-obj-node .rcs-media-img {
  width: 64px !important;
  height: 64px !important;
  max-width: 64px !important;
  max-height: 64px !important;
  object-fit: contain !important;
  background: transparent !important;
  align-self: center;
}
.rcs-obj-node-text {
  font-weight: bold;
  margin: 0;
  line-height: 1.4;
}

/* 配置場所 */
.rcs-node-top {
  grid-column: 2;
  grid-row: 1;
}
.rcs-node-bottom-left {
  grid-column: 1;
  grid-row: 3;
}
.rcs-node-bottom-right {
  grid-column: 3;
  grid-row: 3;
}

/* 矢印（CSSコネクター：中央コアから外側へ綺麗に伸ばす設計に最適化） */
.rcs-arrow-container {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: -1; /* 円内のテキストや画像の下に回り込ませる */
}
.rcs-arrow {
  position: absolute;
  /* 背景色はSVG内部で指定しているためクリア */
}
/* 上方向の矢印 */
.rcs-arrow-up {
  width: 60px;  /* 原稿に合わせた太い幅 */
  height: 70px;
  left: 50%;
  bottom: 205px; /* コアの円の裏側に少し深く埋め込んで隙間を防止 */
  transform: translateX(-50%);
}
/* 左下方向の矢印 */
.rcs-arrow-down-left {
  width: 60px;
  height: 90px;
  left: 40px; /* コアの左下裏側に埋め込んで角度変化時の隙間を防止 */
  top: 165px;
  transform: rotate(45deg);
  transform-origin: top center;
}
/* 右下方向の矢印 */
.rcs-arrow-down-right {
  width: 60px;
  height: 90px;
  right: 40px; /* コアの右下裏側に埋め込んで角度変化時の隙間を防止 */
  top: 165px;
  transform: rotate(-45deg);
  transform-origin: top center;
}

/* ----------------------------------
   3. 指導力強化のポイント（縦レイアウト）
------------------------------------- */
.rcs-guide-layout {
  width: 100%;
}

/* ポイントリスト */
.rcs-guide-list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 800px; /* カードが横長に広がりすぎないように最大幅を制限 */
  margin: 0 auto;   /* 中央に配置 */
  padding-left: 0;
}
.rcs-guide-item {
  position: relative;
  z-index: 2;
}

/* ----------------------------------
   レスポンシブ（タブレット・スマホ対応）
------------------------------------- */
@media (max-width: 992px) {
  .rcs-req-grid {
    grid-template-columns: 1fr; /* 求められること：1カラム化 */
  }
}

@media (max-width: 768px) {
  .rcs-section {
    padding: 30px 15px;
    margin-bottom: 50px;
  }
  .rcs-sec-title {
    margin: -30px -15px 30px -15px;
    padding: 15px;
  }
  .rcs-media-card {
    padding: 16px;
    gap: 15px;
  }
  .rcs-media-img {
    width: 60px !important;
    height: 60px !important;
    max-width: 60px !important;
    max-height: 60px !important;
  }

  /* 目的セクションのスマホ最適化（1カラムのフロー形式に変更） */
  .rcs-obj-layout {
    display: flex;
    flex-direction: column;
    gap: 24px;
  }
  .rcs-arrow-container {
    display: none; /* スマホ表示時は複雑な矢印を非表示に */
  }
  .rcs-obj-core {
    order: 2; /* 応対品質向上を中心に */
    width: 100%;
    height: auto;
    border-radius: 8px;
    aspect-ratio: auto;
    padding: 24px;
  }
  .rcs-obj-node {
    width: 100%;
    flex-direction: row;
    text-align: left;
    padding: 16px;
  }
  .rcs-obj-node .rcs-media-img {
    width: 50px !important;
    height: 50px !important;
    max-width: 50px !important;
    max-height: 50px !important;
    align-self: center;
  }
  .rcs-node-top { order: 1; }          /* お客さま満足（きっかけ・目的） */
  .rcs-node-bottom-left { order: 3; }  /* 信頼・企業価値（成果1） */
  .rcs-node-bottom-right { order: 4; } /* クレーム・手戻り削減（成果2） */
  
  /* スマホ用のシンプルな下向き区切り線（擬似要素） */
  .rcs-node-top::after,
  .rcs-obj-core::after {
    content: '▼';
    color: #0070c0;
    position: absolute;
    bottom: -22px;
    left: 50%;
    transform: translateX(-50%);
    font-size: 14px;
  }
  .rcs-node-top, .rcs-obj-core {
    position: relative;
    margin-bottom: 10px;
  }
}





/* ==========================================================================
   全体コンテナ・基本設定
   ========================================================================== */
.sp-purpose-container {
  margin: 0 auto;
  background-color: #f4f7f9;
  border-radius: 8px;
  overflow: hidden;
  box-sizing: border-box;
  margin-bottom: 50px;
}

.sp-purpose-container * {
  box-sizing: border-box;
}

/* ヘッダータイトル（h3） */
.sp-purpose-header {
  margin: 0;
  background-color: #0073cc;
  color: #ffffff;
  text-align: center;
  padding: 20px 10px;
  font-weight: bold;
}

/* コンテンツエリア（PC時は位置決めの基準） */
.sp-purpose-body {
  position: relative;
  width: 100%;
  height: 720px;
  margin: 0 auto;
}

/* ==========================================================================
   カードの共通スタイル（高さを150pxで統一・上下中央揃え）
   ========================================================================== */
.sp-purpose-card {
  position: absolute;
  background-color: #ffffff;
  border: 1px solid #0073cc;
  border-radius: 8px;
  padding: 20px;
  text-align: center;
  width: 280px;
  height: 150px; /* ★左右カードを含め、PCでの高さを150pxで統一 */
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
  z-index: 2;

  /* 内のアイコンと文字を上下中央揃えにする設定 */
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
}

.sp-purpose-icon {
  margin-bottom: 8px; /* 上下中央時のバランスを見て少し縮小 */
}

.sp-purpose-icon img {
  max-width: 60px;
  height: auto;
  vertical-align: middle;
}

.sp-purpose-text {
  margin: 0;
  font-weight: bold;
  line-height: 1.5;
  color: #333333;
}

/* ==========================================================================
   中央サークル
   ========================================================================== */
.sp-purpose-center-circle {
  position: absolute;
  top: 55%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 220px;
  height: 220px;
  background-color: #0073cc;
  border-radius: 50%;
  color: #ffffff;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  font-weight: bold;
  padding: 20px;
  box-shadow: 0 6px 15px rgba(0, 115, 204, 0.3);
  line-height: 1.4;
  z-index: 4;
}

/* 中央サークル内のアイコン用 */
.sp-purpose-circle-icon {
  margin-bottom: 8px;
}

.sp-purpose-circle-icon img {
  max-width: 60px;
  height: auto;
  vertical-align: middle;
}

/* ==========================================================================
   PC用：各カードの配置位置
   ========================================================================== */
.sp-purpose-card-top {
  top: 40px;
  left: 50%;
  transform: translateX(-50%);
}

.sp-purpose-card-left {
  bottom: 40px;
  left: 40px;
}

.sp-purpose-card-right {
  bottom: 40px;
  right: 40px;
}

/* ==========================================================================
   PC用：矢印のスタイルと配置（ご調整いただいたコード）
   ========================================================================== */
.sp-purpose-arrow {
  position: absolute;
  background-color: #c5c5c5;
  z-index: 3;
}

/* 上向き矢印（中央サークルから上のカードへ） */
.sp-purpose-arrow-to-top {
  top: 215px;
  left: 50%;
  transform: translateX(-50%);
  width: 45px;
  height: 60px;
  clip-path: polygon(50% 0%, 0% 45%, 32% 45%, 32% 100%, 68% 100%, 68% 45%, 100% 45%);
}

/* 左下向き矢印（中央サークルから左下のカードへ） */
.sp-purpose-arrow-to-left {
  top: 475px;
  left: 330px;
  width: 50px;
  height: 50px;
  transform: rotate(-5deg);
  clip-path: polygon(0% 100%, 0% 30%, 30% 60%, 80% 10%, 100% 30%, 50% 80%, 70% 100%);
}

/* 右下向き矢印（中央サークルから右下のカードへ） */
.sp-purpose-arrow-to-right {
  top: 475px;
  right: 330px;
  width: 50px;
  height: 50px;
  transform: rotate(5deg);
  clip-path: polygon(100% 100%, 30% 100%, 50% 80%, 0% 30%, 20% 10%, 70% 60%, 100% 30%);
}

/* ==========================================================================
   レスポンシブ（タブレット・スマートフォン）
   ========================================================================== */
@media screen and (max-width: 820px) {
  .sp-purpose-body {
    height: auto;
    padding: 40px 20px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 20px;
  }

  /* 位置補正を解除して縦並びにする */
  .sp-purpose-card,
  .sp-purpose-center-circle {
    position: static;
    transform: none;
    width: 100%;
    max-width: 340px;
  }

  /* スマホ時は固定値を解除し、テキストの量に合わせる */
  .sp-purpose-card {
    height: auto;
  }

  .sp-purpose-center-circle {
    height: auto;
    aspect-ratio: 1 / 1;
    order: 1; /* 中央サークルを一番上に */
  }

  .sp-purpose-card-top { order: 2; }
  .sp-purpose-card-left { order: 3; }
  .sp-purpose-card-right { order: 4; }

  /* スマホ時は直線の矢印が不要になるため非表示 */
  .sp-purpose-arrow {
    display: none;
  }
}



/*----------------------
ご支援イメージ
----------------------*/


/* 全体のコンテナ（3カラムレイアウト） */
.sol-page-feature-section-container {
  display: flex;
  justify-content: space-between;
  gap: 40px;
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 20px;
  box-sizing: border-box;
}

/* 各カードのスタイル */
.sol-page-feature-section-card {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  box-sizing: border-box;
}

/* 円形部分 */
.sol-page-feature-section-circle {
  width: 260px;
  height: 260px;
  background-color: #0073c2;
  border-radius: 50%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  color: #ffffff;
  margin-bottom: 30px;
  box-sizing: border-box;
}

.sol-page-feature-section-circle-sub {
  display: block;
  font-weight: bold;
  margin-bottom: 10px;
}

/* h3: 円形内のメインテキスト */
.sol-page-feature-section-circle-main {
  margin: 0;
  padding: 0;
  font-weight: bold;
  color: #ffffff;
  font-size: 1.5em;
}

/* h4: 見出しのスタイル */
.sol-page-feature-section-title {
  color: #003366;
  font-weight: bold;
  line-height: 1.4;
  margin: 0 0 15px 0;
  padding: 0;
  letter-spacing: -0.5px;
}

/* 本文テキスト */
.sol-page-feature-section-text {
  color: #333333;
  line-height: 1.6;
  text-align: left;
  margin: 0;
  padding: 0;
}

/* レスポンシブ対応（タブレット・スマホサイズ） */
@media screen and (max-width: 900px) {
  .sol-page-feature-section-container {
    flex-direction: column;
    align-items: center;
    gap: 60px;
  }
  
  .sol-page-feature-section-card {
    max-width: 400px;
  }

  .sol-page-feature-section-circle {
    width: 220px;
    height: 220px;
  }

  .sol-page-feature-section-circle-main{
    font-size: 1.17em;
  }

  .sol-page-feature-section-title {
    letter-spacing: normal;
  }

}


/*-------------------------
カリキュラム
---------------------------*/

/* --- タイムスケジュール全体コンテナ --- */
.sc-timetable-container {
  width: 100%;
  margin: 2rem auto;
  box-sizing: border-box;
}

.sc-timetable-container *,
.sc-timetable-container *::before,
.sc-timetable-container *::after {
  box-sizing: border-box;
}

/* 左側縦線の見出し (1day版) */
.sc-timetable-heading {
  position: relative;
  padding-left: 12px;
  margin-bottom: 1.5rem;
  line-height: 1.4;
  color: #0070c0;
}

.sc-timetable-heading::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 3px;
  height: 100%;
  background-color: #0070c0;
}

/* --- テーブルレイアウト (PCスタイル) --- */
.sc-timetable-table {
  display: flex;
  flex-direction: column;
  width: 100%;
  border: 1px solid #dcdcdc;
  border-bottom: none;
}

.sc-timetable-row {
  display: flex;
  width: 100%;
  border-bottom: 1px solid #dcdcdc;
  background-color: #ffffff;
}

/* ヘッダー背景青色 */
.sc-timetable-header {
  background-color: #0070c0;
  color: #ffffff;
}

/* 昼休憩用の背景グレー（PC表示時のみ適用） */
@media screen and (min-width: 769px) {
  .sc-timetable-break {
    background-color: #e6e6e6;
  }
}

/* セルの基本スタイル */
.sc-timetable-cell {
  padding: 12px 15px;
  display: flex;
  align-items: center;
  border-right: 1px solid #dcdcdc;
}

.sc-timetable-cell:last-child {
  border-right: none;
}

/* ヘッダーセルの文字中央揃え */
.sc-timetable-header .sc-timetable-cell {
  justify-content: center;
  text-align: center;
}

/* 各列の幅割り当て (合計100%) */
.sc-timetable-col-time {
  width: 18%;
  justify-content: center;
  text-align: center;
}
.sc-timetable-col-dur {
  width: 8%;
  justify-content: center;
  text-align: center;
}
.sc-timetable-col-prog {
  width: 37%;
}
.sc-timetable-col-desc {
  width: 37%;
}

/* 時間列の分割スタイル（PC用中間線を一直線にする設定） */
.sc-timetable-cell-time-split {
  padding: 0 !important;
  align-items: stretch !important;
}

.sc-timetable-time-start,
.sc-timetable-time-end {
  flex: 1;
  padding: 12px 5px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sc-timetable-time-start {
  border-right: 1px solid #dcdcdc;
}

/* 太字用クラス */
.sc-timetable-weight-bold {
  font-weight: bold;
}

/* --- レスポンシブ対応 (タブレット・スマホ) --- */
@media screen and (max-width: 768px) {
  .sc-timetable-table {
    border: none;
  }

  /* ヘッダーを非表示に */
  .sc-timetable-header {
    display: none !important;
  }

  /* 各コンテンツ行をカード風に変更 */
  .sc-timetable-row {
    display: block;
    margin-bottom: 15px;
    border: 1px solid #dcdcdc;
    border-radius: 4px;
    box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    background-color: #ffffff;
  }

  /* セルを縦並びに変更 */
  .sc-timetable-cell {
    display: block; /* 横並びから縦のブロック配置に変更 */
    width: 100% !important;
    border-right: none;
    border-bottom: 1px solid #eeeeee;
    padding: 10px 12px;
    text-align: left !important;
  }

  .sc-timetable-cell:last-child {
    border-bottom: none;
  }

  /* スマホ用の項目名ラベル自動挿入 (上配置にして改行させる調整) */
  .sc-timetable-row:not(.sc-timetable-header) .sc-timetable-cell::before {
    content: attr(data-label);
    display: block; /* ラベルを単独の行にして本文を下に落とす */
    font-weight: bold;
    color: #0070c0; /* スマホで見やすいようアクセントカラーに変更 */
    margin-bottom: 4px;
  }

  /* スマホ時は時間セルの背景を薄い青に（昼休憩含む） */
  .sc-timetable-row:not(.sc-timetable-header) .sc-timetable-col-time {
    background-color: #f2f7fa;
    border-bottom: 1px solid #dcdcdc;
  }

  /* スマホ時の時間中間線解除と「〜」による時間つなぎ */
  .sc-timetable-row:not(.sc-timetable-header) .sc-timetable-cell-time-split {
    padding: 10px 12px !important;
  }
  
  .sc-timetable-row:not(.sc-timetable-header) .sc-timetable-time-start,
  .sc-timetable-row:not(.sc-timetable-header) .sc-timetable-time-end {
    display: inline;
    padding: 0;
    border-right: none;
  }
  
  .sc-timetable-row:not(.sc-timetable-header) .sc-timetable-time-start::after {
    content: " 〜 ";
    margin: 0 4px;
  }

  /* 実施概要の空セルはスマホカード内で非表示化 */
  .sc-timetable-row .sc-timetable-col-desc:empty {
    display: none;
  }
}


/* --- 2day版用の追加サブ見出しスタイル --- */
.sc-timetable-subheading {
  margin: 1.5rem 0 0.8rem 0;
  font-weight: bold;
  color: #333333;
}

/* 2日目のテーブルの上の余白を少し広げて見やすく調整 */
.sc-timetable-subheading-second {
  margin-top: 2.5rem;
}

@media screen and (max-width: 768px) {
  .sc-timetable-subheading-second {
    margin-top: 1.5rem;
  }
}

/*------------------------
報告書イメージ
-------------------------*/

/* ==========================================================================
   Solution Slides Section
   ========================================================================== */
.p-solution-slides {
  width: 100%;
  box-sizing: border-box;
}

.p-solution-slides__container {
  max-width: 1200px; /* 必要に応じて調整してください */
  margin-right: auto;
  margin-left: auto;
  padding-right: 20px;
  padding-left: 20px;
}

.p-solution-slides__list {
  display: flex;
  flex-wrap: wrap;
  gap: 20px; /* PC時の画像間の余白 */
  margin: 0;
  padding: 0;
  list-style: none;
}

.p-solution-slides__item {
  width: calc((100% - 20px) / 2); /* スマホ・タブレット時は2列、gap分を引く */
  box-sizing: border-box;
}

.p-solution-slides__item img {
  display: block;
  width: 100%;
  height: auto;
  max-width: 100%;
  object-fit: contain;
}

/* 768px以上のブレイクポイント（PC） */
@media screen and (min-width: 768px) {
  .p-solution-slides__list {
    gap: 30px; /* PC時の画像間の余白を広く */
  }

  .p-solution-slides__item {
    width: calc((100% - (30px * 2)) / 3); /* PC時は3列、gap分を引く */
  }
}