@charset "UTF-8";

/* ============================================================
   05: 会員向けプログラム（#program）
   Figma node 4412:2150 / 440 x 2664
   ============================================================ */

.rs {
  display: flex;
  flex-direction: column;
  gap: 3.4rem;
  width: 100%;
  background-color: #fff;
}

/* ---------- セクション見出し ---------- */
.rs-head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.1rem;
  text-align: center;
}

.rs-head-en {
  font-family: "Oswald", sans-serif;
  font-weight: 400;
  font-size: 4.5rem;
  line-height: 1.2;
  text-transform: uppercase;
  color: rgba(24, 55, 104, 0.12);
}

.rs-head-ja {
  font-family: "Shippori Mincho", serif;
  font-weight: 700;
  font-size: 4.3rem;
  line-height: 1.2;
  letter-spacing: -0.17rem;
  color: #183768;
}

.rs-head-ja-tight {
  letter-spacing: -0.43rem;
}

/* ---------- 本体 ---------- */
.rs-body {
  display: flex;
  flex-direction: column;
  width: 100%;
}

/* 紺帯 */
.rs-lead {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1.1rem 2.3rem;
  background-color: #183768;
}

.rs-lead-sub {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 1.8rem;
  line-height: 1.2;
  text-align: center;
  color: #fff;
}

.rs-lead-row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 1.1rem;
}

.rs-lead-line {
  width: 1.7rem;
  height: 0.34rem;
}

.rs-lead-name {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  font-size: 3.2rem;
  line-height: 1.4;
  letter-spacing: 0.06rem;
  color: #fff;
}

/* 薄青パネル */
.rs-panel {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2.8rem;
  padding: 2.8rem 2.3rem 5.6rem;
  background-color: #e3e7ed;
}

.rs-intro {
  width: 100%;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 1.8rem;
  line-height: 1.8;
  letter-spacing: 0.05rem;
  color: #183768;
}

.rs-blocks {
  display: flex;
  flex-direction: column;
  gap: 3.4rem;
  width: 100%;
}

/* ---------- ブロック共通 ---------- */
.rs-block {
  display: flex;
  flex-direction: column;
  width: 100%;
}

.rs-block-head {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 5.2rem;
  padding: 0 2.3rem;
  background-image: linear-gradient(98deg, #19458b 0%, #3297bb 100%);
}

.rs-block-head-text {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  font-size: 2.5rem;
  line-height: 1.2;
  text-align: center;
  color: #fff;
  white-space: nowrap;
}

.rs-block-body {
  background-color: #fff;
  width: 100%;
  padding: 2.3rem 2.7rem 2.7rem;
}

.rs-block-body-ws {
  display: flex;
  flex-direction: column;
  gap: 3.4rem;
}

/* ---------- 項目（01 / 02） ---------- */
.rs-item {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  width: 100%;
}

.rs-item-head {
  display: flex;
  align-items: flex-start;
  gap: 1.4rem;
}

.rs-item-num {
  display: flex;
  align-items: center;
  width: 4.9rem;
  height: 6rem;
  font-family: "Oswald", sans-serif;
  font-weight: 400;
  font-size: 5.6rem;
  line-height: 1.2;
  letter-spacing: -0.23rem;
  text-transform: uppercase;
  background-image: linear-gradient(91deg, #19458b 0%, #3297bb 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.rs-item-num-02 {
  width: 5.4rem;
}

.rs-item-headtext {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0.9rem;
}

.rs-item-title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 2.3rem;
  line-height: 1.4;
  color: #183768;
}

.rs-item-badges {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.6rem;
}

.rs-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 0.2rem 1.1rem 0.3rem;
  border: 0.1rem solid #183768;
  border-radius: 3.4rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 600;
  font-size: 1.4rem;
  line-height: 1.3;
  letter-spacing: 0.04rem;
  color: #183768;
  white-space: nowrap;
}

.rs-item-content {
  display: flex;
  flex-direction: column;
  gap: 1.7rem;
  width: 100%;
}

/* ---------- 本文テキスト（黄マーカー＋破線） ---------- */
.rs-text {
  position: relative;
  width: 100%;
}

.rs-text-p {
  position: relative;
  z-index: 2;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 1.58rem;
  line-height: 1.8;
  letter-spacing: 0.047rem;
  color: #183768;
}

.rs-text-md {
  font-weight: 500;
  /* 黄色マーカーは文字spanに直接付与し、横幅を文字にピッタリ一致させる。
     折り返し行にも clone で帯が付く。帯は2.4rem・上下中央。 */
  background-image: linear-gradient(#fff88f, #fff88f);
  background-repeat: no-repeat;
  /* 帯はフォント箱(約23px)より小さくし position:50% で中央化（Safari/Chrome両対応） */
  background-size: 100% 2rem;
  background-position: 0 50%;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

/* 旧・絶対配置の黄色ボックスは廃止（横位置が文字とズレるため） */
.rs-hl { display: none; }

.rs-lines {
  /* 破線罫。文字ブロックにオーバーレイし、間隔・位置はJSが実描画行に合わせて設定 */
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  background-image: linear-gradient(
    to bottom,
    rgba(24, 55, 104, 0.2) 0, rgba(24, 55, 104, 0.2) 0.113rem, transparent 0.113rem);
  background-repeat: repeat;
  background-size: 100% 2.844rem;
  background-position: 0 0;
  -webkit-mask-image: repeating-linear-gradient(
    to right, #000 0, #000 0.226rem, transparent 0.226rem, transparent 0.452rem);
  mask-image: repeating-linear-gradient(
    to right, #000 0, #000 0.226rem, transparent 0.226rem, transparent 0.452rem);
}

/* 01: 3行目「業務効率と経営判断の質を高めます。」 */
.rs-hl-01a { left: 4.4rem; top: 5.8rem; width: 27.2rem; }

/* 02: 「リアルな課題解決のヒントを得られます」 */
.rs-hl-02a { left: 14.2rem; top: 5.8rem; width: 19.9rem; }
.rs-hl-02b { left: 0; top: 8.6rem; width: 10.8rem; }

/* 会員サイト: 「過去の講義をいつでも復習でき」ほか */
.rs-hl-sitea { left: 0; top: 5.8rem; width: 19.4rem; }
.rs-hl-siteb { left: 28.8rem; top: 2.9rem; width: 4.2rem; }

/* ---------- 01 写真 ---------- */
.rs-item-photo {
  width: 100%;
  height: 19.2rem;
  object-fit: cover;
}

/* ---------- 02 ギャラリー ---------- */
.rs-gallery {
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  width: 100%;
}

.rs-gallery-row {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  width: 100%;
}

.rs-gallery-row img {
  flex: 1 0 0;
  min-width: 0.1rem;
  height: 7.7rem;
  object-fit: cover;
}

.rs-gallery-row-1 img {
  height: 7.2rem;
}

/* ---------- フォローアップ枠 ---------- */
.rs-followup {
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 0.3rem;
  width: 100%;
  padding: 2rem 2.3rem;
  border: 0.3rem solid #19458b;
  background-color: #fff;
}

.rs-followup-illust {
  position: absolute;
  top: 1.3rem;
  right: 1.9rem;
  width: 4.6rem;
  height: 7.4rem;
  transform: rotate(18.71deg);
}

.rs-followup-title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 2.6rem;
  line-height: 1.3;
  letter-spacing: -0.06rem;
  background-image: linear-gradient(95deg, #19458b 0%, #3297bb 100%);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}

.rs-followup-big {
  font-size: 2.7rem;
  letter-spacing: -0.22rem;
}

.rs-followup-big2 {
  font-size: 2.7rem;
  letter-spacing: -0.08rem;
}

.rs-followup-text {
  width: 29.6rem;
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 400;
  font-size: 1.58rem;
  line-height: 1.8;
  letter-spacing: -0.03rem;
  color: #183768;
}

/* ---------- 会員サイトブロック ---------- */
.rs-block-body-site {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 1.7rem;
}

.rs-collage {
  position: relative;
  width: 37.2rem;
  height: 35rem;
}

.rs-collage-item {
  position: absolute;
}

.rs-collage-a { left: 0; top: 0; z-index: 1; }
.rs-collage-b { left: 13rem; top: 6.3rem; z-index: 2; }
.rs-collage-c { left: 0; top: 14.4rem; z-index: 3; }
.rs-collage-d { left: 13rem; top: 20.6rem; z-index: 4; }

.rs-collage-laptop {
  display: block;
}

.rs-collage-laptop-a {
  width: 24.3rem;
  height: 14.4rem;
}

.rs-collage-laptop-b {
  width: 24.3rem;
  height: 14.3rem;
}

.rs-collage-screen {
  position: absolute;
  left: 3rem;
  top: 1.2rem;
  display: block;
  width: 18.2rem;
  height: 10.8rem;
  border: 0.1rem solid #000;
  overflow: hidden;
}

.rs-collage-screen-b {
  top: 1.4rem;
}

.rs-collage-screen img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ---------- さらに学びを深めるコンテンツ ---------- */
.rs-block-body-extra {
  display: flex;
  flex-direction: column;
  gap: 2.3rem;
}

.rs-extra {
  display: flex;
  flex-direction: column;
  gap: 1.1rem;
  width: 100%;
}

.rs-extra-title {
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
  font-size: 2.3rem;
  line-height: 1.4;
  color: #183768;
}
