@charset "utf-8";

/**
 * 横浜翠嵐・大宮 受験指導 専用CSS
 * 各種余白・サイズを8px単位に最適化
 */

:root {
  --color-main: #005bac;
  --color-accent: #e60012;
  --color-accent-light: #f89191;
  --color-bg-light: #eaf4ff;
  --color-sakura: #ffb7c5;
  --color-text-base: #333;
  --color-white: #fff;
}

/* 数字の部分などに Jost を適用 */
.p-result-count__prev-num,
.p-result-count__current-num,
.p-feature-item__number {
  font-family: "Jost", "Noto Sans JP", sans-serif;
  font-weight: 700;
}

/* 共通ユーティリティ */
.u-text-red {
  color: var(--color-accent) !important;
}
.u-text-blue {
  color: var(--color-main) !important;
}
.u-text-bold {
  font-weight: bold !important;
}
.u-bg--blue-light {
  background-color: var(--color-bg-light);
  padding: 32px 0; /* 60 -> 64 */
}

/* -----------------------------------------------------------
  基本コンポーネント
----------------------------------------------------------- */

/* テーブル装飾 */
.p-school-info-table {
  width: auto;
  border-collapse: collapse;
  margin-top: 0;
}
.p-school-info-table table {
  line-height: 1;
  border: none;
}
.p-school-info-table tr {
  display: flex;
}
.p-school-info-table th {
  border: none;
  background: var(--color-main);
  color: var(--color-white);
  font-weight: bold;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 8px;
  white-space: nowrap;
  width: 20%;
  border-top: 1px solid #ddd;
}
.p-school-info-table td {
  padding: 8px; /* 8-15 -> 8-16 */
  background: var(--color-white);
  color: #333;
  flex: 1;
  -ms-overflow-style: none;
  scrollbar-width: none;
  border: none;
}
.p-school-info-table tr td {
  font-size: 1rem;
  white-space: nowrap;
  overflow-x: scroll;
}
.u-scroll-x {
  margin-top: 16px;
}

/* --- テーブル全体の制御 --- */
body .p-school-info-table {
  border-collapse: collapse;
  /* PC: コンテンツ幅に合わせる / SP: 下記メディアクエリで100%に上書き */
  width: fit-content;
  max-width: 100%;
  table-layout: auto;
  border: 1px solid #ddd;
}

/* --- ヘッダー(th)と通常のセル(td)の改行禁止 --- */
body .p-school-info-table th,
body .p-school-info-table td.u-nowrap {
  white-space: nowrap !important; /* 絶対に改行させない */
  padding: 8px;
  vertical-align: middle;
  text-align: left;
}

body .p-school-info-table td.u-nowrap {
  background-color: #fff;
}

/* --- 横スクロールするセル(td)の制御 --- */
body .p-school-info-table td.u-scroll-td {
  padding: 0 !important;
  width: 100%;
  /* テーブル内で不自然に広がらないための制約 */
  min-width: 200px;
  border-top: 1px solid #ddd;
  -webkit-overflow-scrolling: touch;

  /* --- スクロールバー非表示の設定 --- */
  -ms-overflow-style: none; /* IE, Edge用 */
  scrollbar-width: none; /* Firefox用 */
}

/* Chrome, Safari, Edge(Chromium版)用 */
.u-scroll-td__inner::-webkit-scrollbar {
  display: none;
}

.u-scroll-td__inner {
  display: block;
  overflow-x: auto;
  white-space: nowrap; /* 中身のテキストを1行に強制 */
  width: 480px;
  padding: 8px;
  -webkit-overflow-scrolling: touch; /* iOSでのスクロールを滑らかに */
}

/* --- スマホ(SP)用スタイル --- */
@media screen and (max-width: 767px) {
  body .p-school-info-table {
    width: 100% !important; /* 親要素いっぱいに広げる */
    table-layout: fixed; /* セル幅を固定してスクロールを安定させる */
  }

  body .p-school-info-table th {
    width: auto; /* 項目名の幅を固定し、td側の表示面積を確保 */
  }
  .u-scroll-td__inner {
    width: 330px;
    font-size: 0.75rem;
  }
}

/* スクロールバーの見た目（細くしてスッキリさせる） */
.u-scroll-td__inner::-webkit-scrollbar {
  height: 4px;
}
.u-scroll-td__inner::-webkit-scrollbar-thumb {
  background: #ccc;
  border-radius: 4px;
}

/* 共通見出し（レポート/体験記） */
.c-heading__report {
  text-align: center;
  margin-bottom: 32px; /* 30 -> 32 */
  color: var(--color-main);
  line-height: 1.5;
  margin: 0 0 24px;
}
.c-heading__report-sub {
  display: block;
  font-size: 1.125rem; /* 18px */
  font-weight: bold;
}
.c-heading__report-main {
  display: block;
  font-size: clamp(1.5rem, 5vw, 2rem);
  font-weight: bold;
  margin-top: 8px; /* 5 -> 8 */
}

/* -----------------------------------------------------------
  合格実績セクション
----------------------------------------------------------- */
.p-school-kv {
  margin-top: 16px;
  display: flex;
  flex-direction: row-reverse;
}
.p-school-kv img {
  width: 40%;
  height: auto;
  display: block;
}
.p-result-headline {
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px 0;
  background: linear-gradient(90deg, rgba(234, 244, 253, 1) 0%, rgba(255, 255, 255, 1) 100%);
}
.p-result-headline__main {
  color: var(--color-main);
  font-size: clamp(1.5rem, 4vw, 2rem);
  font-weight: bold;
  line-height: 1.5;
  text-align: center;
  margin: 0;
}
.p-result-count {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 32px;
  margin-top: 32px; /* 30 -> 32 */
}
.p-result-count__title {
  font-size: 3.25rem; /* 24px */
  font-weight: bold;
  color: var(--color-text-base);
  padding: 0;
  margin: 0;
  text-align: center;
  line-height: 1.2;
}
.p-result-count__title::before {
  display: none;
}
.p-result-count__title::after {
  display: none;
}
.p-result-count__number-wrapper {
  display: flex;
  justify-content: center;
  align-items: flex-end;
  gap: clamp(8px, 3vw, 24px); /* 10-25 -> 8-24 */
  margin-top: 16px; /* 15 -> 16 */
}
.p-result-count__prev {
  z-index: 0;
}
.p-result-count__prev_unit {
  font-weight: bold;
  margin: 0;
  line-height: 1;
  position: relative;
}
.p-result-count__prev_unit::after {
  content: "";
  display: block;
  position: absolute;
  width: 64px;
  height: 112px;
  background: url(../../img/junior/suiran/up_arrow.svg) no-repeat center;
  background-size: contain;
  bottom: 4px;
  left: 48px;
  z-index: -1;
}
.p-result-count__prev-num {
  color: var(--color-accent-light);
  font-size: 3rem; /* 40px */
  letter-spacing: -0.1rem;
}

.p-result-count__current_unit {
  color: var(--color-text-base);
  font-weight: bold;
  margin-top: 8px;
  line-height: 1;
  font-size: 2rem;
  z-index: 1;
}
.p-result-count__current-num {
  color: var(--color-accent);
  font-size: clamp(11rem, 15vw, 8rem);
  line-height: 0.6;
  letter-spacing: -0.3rem;
}
.p-result-count__unit {
  font-size: 1.25rem; /* 20px */
  margin-left: 0;
  color: var(--color-text-base);
}
.p-result-count__year {
  font-size: 1rem; /* 16px */
  font-weight: bold;
  color: var(--color-text-base);
  margin-bottom: 8px;
  margin: 0;
}

/* -----------------------------------------------------------
  特長セクション
----------------------------------------------------------- */

.p-suiran-features {
  margin-top: 64px; /* 60 -> 64 */
}
.p-feature-item {
  margin-bottom: clamp(40px, 8vw, 80px);
}

.p-feature-item__img {
  position: relative;
  margin-bottom: 24px; /* 20 -> 24 */
  overflow: hidden;
}
.p-feature-item__number {
  position: absolute;
  top: 0;
  left: 0;
  background: var(--color-main);
  color: var(--color-white);
  font-size: 24px;
  font-weight: bold;
  padding: 24px; /* 10-25 -> 8-24 */
  z-index: 2;
}
.p-feature-item__img img {
  width: 100%;
  height: auto;
  display: block;
  transition: transform 0.5s ease;
}

.c-heading__lv3-blue {
  position: relative;
  padding-left: 24px; /* 20 -> 24 */
  color: var(--color-main);
  font-size: 1.5rem; /* 24px */
  font-weight: bold;
  margin-bottom: 16px; /* 15 -> 16 */
}
h3.c-heading__lv3-blue::before {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 4px !important;
  height: calc(100% + 2px) !important;
  background: var(--color-main);
}

/* -----------------------------------------------------------
  動画・体験記カード
----------------------------------------------------------- */

/* 動画コンテナのレスポンシブ対応 */
.video-container {
  position: relative;
  max-width: 800px;
  margin: 0 auto;
  cursor: pointer;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.16);

  /* ★重要：16:9のアスペクト比を固定 */
  width: 100%;
  aspect-ratio: 16 / 9;
  background-color: #000; /* 読み込み前の黒背景 */
}

/* 埋め込まれるiframeや画像もコンテナいっぱいに広げる */
.video-container iframe,
.video-container img {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  object-fit: cover; /* 画像が歪まないように */
}
.video-thumbnail {
  width: 100%;
  height: auto;
  display: block;
}

.play-button {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  transition: all 0.3s ease;
  filter: drop-shadow(0 0 8px rgba(0, 0, 0, 0.32));
}

.interview-list {
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
  gap: 32px; /* 30 -> 32 */
  list-style: none;
  padding: 0;
}
.interview-list-item {
  background: var(--color-white);
  border-radius: 16px; /* 12 -> 16 */
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08); /* 5-20 -> 8-24 */
  width: 100%;
  max-width: 320px;
  text-align: center;
  padding: 16px; /* 30-20 -> 32-24 */
  margin: 0;
  text-indent: 0;
  display: flex;
  flex-direction: column;
  gap: 8px; /* 20 -> 8 */
  transition: transform 0.3s ease;
}
.interview-list-item::before {
  display: none;
}

.interview-list-img-wrapper {
  position: relative;
  margin: 0; /* 20 -> 24 */
}

.interview-list-img-wrapper img {
  width: 60%;
  height: auto;
  border-radius: 50%;
  object-fit: cover; /* 画像が歪まないように */
}

.school_name {
  color: var(--color-main);
  font-weight: bold;
  font-size: 2rem; /* 16px */
  display: flex;
  gap: 8px;
  align-items: center;
  justify-content: center;
  margin: 0;
}
.school_name::before {
  content: "";
  display: block;
  width: 48px;
  height: 48px;
  background-image: url(/cms/wp-content/themes/shozemi/assets/img/interview/icon_cherry-01.png);
  background-size: contain;
  background-repeat: no-repeat;
}
.student_name {
  font-size: 1.25rem; /* 20px */
  font-weight: bold;
  text-align: center;
  margin: 0 auto 8px; /* 20 -> 24 */
}

.c-btn-voice {
  display: inline-block;
  width: 100%;
  background: #2a4b8d;
  color: var(--color-white);
  padding: 16px 24px; /* 12-20 -> 16-24 */
  border-radius: 40px; /* 50 -> 40 */
  text-decoration: none;
  font-weight: bold;
  font-size: 1.25rem;
  transition: all 0.3s ease;
}
.review-swiper .swiper-slide {
  height: auto;
  justify-content: space-around;
}
h3 {
  margin: 0;
  padding: 0;
}
h3::before {
  display: none;
  margin: 0;
  padding: 0;
  top: inherit;
}
.p-dropdown__head::before {
  content: "";
  display: block;
  position: absolute;
  width: 12px !important;
  height: 2px !important;
  background-color: rgba(0, 116, 217, 0.6);
  transform: translateY(-50%);
  top: 50%;
  right: 30px;
  left: inherit;
  transition: opacity 0.3s;
}
.c-btn-voice {
  position: relative;
}
.c-btn-voice::after {
  content: "";
  display: block;
  position: absolute;
  top: 50%;
  right: 24px;
  transform: translateY(-50%);
  width: 12px;
  height: 12px;
  background-image: url(/cms/wp-content/themes/shozemi/assets/img/interview/polygon-02.png);
  background-size: contain;
  background-repeat: no-repeat;
}
.c-column--4 {
  gap: 16px;
}
.c-column--4 .c-column__item {
  width: calc((100% - 32px) / 3);
}
.c-column--4 .c-column__item a {
  padding: 32px 0;
}
/* -----------------------------------------------------------
  レスポンシブ設定
----------------------------------------------------------- */

@media (min-width: 769px) {
  .p-feature-item {
    display: flex;
    align-items: flex-start;
    gap: 48px; /* 50 -> 48 */
  }
  .p-feature-item__img {
    flex: 0 0 45%;
    margin-bottom: 0;
  }
}

@media (max-width: 768px) {
  .p-school-kv {
    flex-direction: column;
  }
  .p-school-kv img {
    width: 100%;
    margin: 0 auto;
  }

  .p-result-count {
    flex-direction: column;
    gap: 8px; /* 32 -> 8 */
    margin-top: 16px;
  }
  .p-result-count__title {
    font-size: 2rem; /* 24px */
  }
  .p-result-count__title .pc {
    display: none;
  }
  .interview-list {
    gap: 24px; /* 20 -> 24 */
  }
  .p-result-count__prev-num {
    font-size: 3rem; /* 32px */
  }
  .p-dropdown__head::before {
    right: 15px;
  }
  .p-school-info-table tr td {
    font-size: 0.75rem;
  }
  .c-column--4 .c-column__item {
    width: 100%;
  }
  .c-column--4 .c-column__item a {
    padding: 24px 0;
  }
}
