@charset "UTF-8";

.page-template-page-goal_movie {
  background-color: #005bab;
  position: relative;
}
.page-template-page-goal_movie p {
  margin-top: 0;
  line-height: 1;
}

/* header */
.goal_header {
  width: 100%;
  background-color: #fff;
}
.goal_header h1 {
  max-width: 1280px;
  margin: 0 auto;
  position: relative;
  padding: 16px;
}
.l-main.goal_movie {
  width: 100%;
  padding-top: 0;
}

/* Hero Area */
.hero-area {
  width: 100%;
  height: 720px;
  position: relative; /* テキストと画像の基準点 */
  overflow: hidden;
  background-color: #ffffff; /* 切り替え時の下地 */
}

.hero-image-container {
  width: 100%;
  height: 100%;
  position: relative;
}

/* 画像を重ねるための設定 */
.hero-slide {
  width: 100%;
  height: 100%;
  object-fit: cover; /* 画像の比率を保つ */
  position: absolute;
  top: 0;
  left: 0;
  /*opacity: 0;*/ /* 最初は全員透明 */
  /*animation: hero-fade 12s infinite;*/ /* 12秒のループアニメーション */
}

/* アニメーションのタイミング調整（1枚5秒計算） */
.hero-slide:nth-child(1) {
  animation-delay: 0s;
}
.hero-slide:nth-child(2) {
  animation-delay: 4s;
}
.hero-slide:nth-child(3) {
  animation-delay: 8s;
}

/* フェードイン・アウトのアニメーション */
/* 0%〜10%で現れ、33%まで維持、43%で消える設定 */
@keyframes hero-fade {
  0% {
    opacity: 0;
  }
  10% {
    opacity: 1;
  }
  33% {
    opacity: 1;
  }
  43% {
    opacity: 0;
  }
  100% {
    opacity: 0;
  }
}

p.hero-text {
  position: absolute;
  left: calc(15% + 16px);
  top: 440px;
  z-index: 10; /* 画像より確実に上にくるように */
  font-weight: 500;
  font-size: 48px;
  color: #ffffff;
  /* テキストが白背景などで見づらい場合は shadow を入れると安定します */
}
p.hero-text {
  line-height: 1.4;
  font-weight: 700;
}
/* Main Content */
.content-area {
  width: 100%;
  margin: 64px auto 64px;
  display: flex;
  flex-direction: column;
  gap: 64px;
}

/* Movie Section */
.content-area-movie {
  width: 100%;
  max-width: 896px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 48px;
  align-items: center;
}

.interview-section {
  width: 100%;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.interview-header {
  display: flex;
  align-items: flex-end;
  color: #fff;
}
.interview-title {
  margin: 0;
  line-height: 1;
}
.interview-number {
  font-family: "Jost", sans-serif;
  font-weight: 400;
  font-size: 32px;
}

.interview-colon {
  font-weight: 400;
  font-size: 24px;
}
.video-container {
  /* 1. 横幅を強制的に確保する */
  flex: 1;
  width: 100%;

  /* 2. 比率を維持 */
  aspect-ratio: 16 / 9;

  position: relative;
  cursor: pointer;
  background-color: #000;
  overflow: hidden;
}

/* iframeだけでなく、最初に見えている「画像（img）」も絶対配置にする */
.video-container iframe,
.video-container img {
  width: 100% !important;
  height: 100% !important;
  position: relative;
  object-fit: cover; /* 画像が歪まないように */
}

/* 再生中（iframe展開後）はプレイボタンなどを隠す（innerHTMLで消えますが念のため） */
.video-container.is-playing {
  cursor: default;
}

.video-thumbnail {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.play-button {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}

/* Highlight Section */
/* 全体のコンテナ */
.content-area-highlight {
  width: 100%;
  max-width: 896px;
  margin: 0 auto;
  display: flex;
  overflow: hidden; /* はみ出しを隠す */
  pointer-events: none; /* クリックやドラッグを無効化 */
  user-select: none; /* テキスト選択も無効化 */
}

/* アニメーションの土台 */
.highlight-track {
  display: flex;
  gap: 16px; /* 画像間の隙間 */
  padding-right: 16px; /* 最後の隙間を補正 */
  animation: infinite-scroll 30s linear infinite; /* 30秒かけて一定速度でループ */
}

/* 各画像の設定 */
.highlight-image {
  width: 160px;
  height: 96px;
  flex-shrink: 0;
}

.highlight-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

/* 無限ループアニメーションの定義 */
@keyframes infinite-scroll {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(-100%);
  }
}

/* Results Section */
.results-section {
  width: 100%;
  max-width: 896px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 48px;
  align-items: center;
}

.section-title {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  padding: 16px 32px;
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  text-align: center;
  color: #fff;
  white-space: nowrap;
}

.title-small {
  font-size: 16px;
  font-weight: 600;
}

.title-large {
  font-size: 32px;
  font-weight: 600;
}

.school-title {
  position: relative;
  text-align: center;
  color: #ffeb3b;
}

.school-name {
  font-size: 108px;
  font-weight: 600;
}

.asterisk {
  font-size: 24px;
  vertical-align: top;
}

.results-label {
  font-weight: 700;
  font-size: 48px;
  text-align: center;
  color: #ffeb3b;
}
/* カウンターの外枠 */
.number-display {
  display: flex;
  justify-content: center; /* 中央寄せ（右寄せなら flex-end） */
  align-items: flex-end;
  line-height: 1;
}

/* カウントアップ部分 */
.count-wrapper {
  display: flex;
  font-size: 200px; /* 巨大サイズ */
  font-family: Jost, sans-serif;
  font-weight: bold;
  color: #fff; /* 最初は白 */
  transition: color 0.8s ease; /* 終了時に0.8秒かけて黄色へ */
  line-height: 1;
  margin-left: 32px;
}

/* 1893になった時の色 */
.count-wrapper.is-complete {
  color: #ffeb3b; /* 終了時の黄色 */
  /* 文字を少し光らせるなら以下を有効に */
  text-shadow: 0 0 20px rgba(72, 72, 72, 0.5);
}

/* 各桁の枠（揺れ防止） */
.digit {
  display: inline-block;
  width: 120px; /* 200pxの時は120px〜140px程度が安定します */
  font-variant-numeric: tabular-nums; /* 等幅数字 */
  line-height: 0.75;
}
.digit#d3 {
  margin-left: -16px; /* 1の桁だけ少し左に寄せる（1893の8と9の間を狭くするため） */
}

/* 単位のスタイル */
.unit {
  font-size: 80px; /* 単位は少し小さめに調整 */
  font-weight: 700;
  color: #ffeb3b;
  margin-left: 20px;
  line-height: 1.2;
}
/* School List */
.school-list {
  width: 100%;
  position: relative;
  border-left: 1px solid white;
  border-right: 1px solid white;
}

.school-list-content {
  padding: 4px 32px;
  color: #fff;
  text-align: center;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.school-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.school-row p {
  font-size: 24px;
  font-weight: 700;
}
.results-notice {
  color: #fff;
}

.results-notice p {
  font-size: 0.85rem;
  line-height: 1.8;
  text-align: center;
}

.results-notice p .pc {
  display: none;
}

/* voice-section */
.voice-section {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.interview-list {
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 48px;
  gap: 16px;
}
.interview-list .interview-list-item {
  width: calc(33% - 8px);
  background-color: #fff;
  margin-top: 0;
  text-indent: 0;
  padding: 16px;
  border-radius: 8px;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: space-around;
}
.interview-list .interview-list-item img {
  width: 128px;
  height: 128px;
  object-fit: cover;
  border-radius: 50%;
}
.interview-list .interview-list-item::before {
  display: none;
}
.interview-list-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.interview-list-content p.detail {
  transition: all 0.3s;
}
.interview-list-content p.detail:hover {
  background-color: #3a8bd1;
}

.interview-list-content p {
  margin: 0;
  color: #294c94;
}
.interview-list-content p.school_name {
  display: flex;
  font-weight: bold;
  font-size: 1.2rem;
  align-items: center;
  gap: 2px;
  line-height: 2;
}
.interview-list-content p.school_name::before {
  content: "";
  display: block;
  width: 32px;
  height: 32px;
  background-image: url(/cms/wp-content/themes/shozemi/assets/img/interview/icon_cherry-01.png);
  background-size: contain;
  background-repeat: no-repeat;
  vertical-align: middle;
}
.interview-list-content p.student_name {
  font-size: 0.8rem;
  font-weight: bold;
  text-align: center;
}
.interview-list-content a {
  margin-top: 8px;
}
.interview-list-content p.detail {
  font-size: 1rem;
  font-weight: bold;
  text-align: center;
  color: #fff;
  background-color: #294c94;
  padding: 16px 32px;
  border-radius: 24px;
  box-shadow:
    inset 0px 0px 1px 0px #81abcde6,
    inset -1px -1px 2px 0px #183f5ee6,
    1px 1px 2px 0px #4c575fa8;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 6px;
}
.interview-list-content p.detail::after {
  content: "";
  display: block;
  width: 8px;
  height: 8px;
  background-image: url(/cms/wp-content/themes/shozemi/assets/img/interview/polygon-02.png);
  background-size: contain;
  background-repeat: no-repeat;
}
.l-inner.interviewpage {
  margin-top: 30px;
}
@media screen and (max-width: 767px) {
  .interview-list {
    margin-left: 0;
  }
  .interview-list .interview-list-item {
    flex-direction: column;
    width: 47%;
  }
  .interview-list .interview-list-item p.school_name {
    font-size: 1rem;
    white-space: nowrap;
  }
}

/* Responsive Design */
@media (max-width: 1280px) {
  .background,
  .hero-area,
  .header {
    width: 100%;
    max-width: 1280px;
  }

  .hero-image-container {
    width: 100%;
  }

  .main-content {
    max-width: 896px;
    padding: 0 16px;
  }

  .video-container {
    width: 100%;
    max-width: 896px;
  }
}

@media (max-width: 896px) {
  .hero-text-1,
  .hero-text-2 {
    font-size: 32px;
    left: 50%;
    transform: translateX(-50%);
  }

  .hero-text-1 {
    top: 250px;
  }

  .hero-text-2 {
    top: 300px;
  }

  .school-name {
    font-size: 64px;
    line-height: 1.5;
  }

  .number-container {
    font-size: 120px;
    width: 100%;
  }

  .unit {
    font-size: 48px;
  }

  .school-list-content {
    font-size: 16px;
  }

  .school-row {
    flex-direction: column;
    gap: 16px;
  }
}

/* フェードインの初期状態（透明で20px下に配置） */
.js-fade {
  opacity: 0;
  transform: translateY(48px);
  transition:
    opacity 0.8s ease-out,
    transform 0.8s ease-out;
}

/* 画面内に入った時に付与されるクラス */
.js-fade.is-visible {
  opacity: 1;
  transform: translateY(0);
}

/* もし順番に（時間差で）出したい場合は、
   要素ごとに transition-delay
*/
.interview-section:nth-of-type(2) {
  transition-delay: 0.3s;
}
.interview-section:nth-of-type(3) {
  transition-delay: 0.6s;
}

.page-template-page-goal_movie .p-contact-block--mt {
  background-color: #fff;
}

.wp-block-button {
  display: inline-block;
  min-width: 350px;
  background-color: #0074d9;
  padding: 24px;
  transition: all 0.3s ease;
}
.wp-block-button .detail {
  font-size: 1rem;
  font-weight: bold;
  color: #fff;
  text-align: center;
}
.wp-block-button:hover {
  background-color: #66ace8;
}

.wp-block-button .detail::before {
  content: "";
  display: block;
  position: absolute;
  width: 7px;
  height: 14px;
  -webkit-transform: translateY(-50%);
  transform: translateY(-50%);
  top: 50%;
  right: 20px;
  background-size: contain;
  background-image: url(/cms/wp-content/themes/shozemi/assets/img/common/icon-bullet-white.svg);
  background-position: center;
  background-repeat: no-repeat;
  -webkit-transition: background-image 0.6s;
  transition: background-image 0.6s;
  opacity: 0.6;
}
/* ==========================================================
   Campaign Section
   ========================================================== */

/* 1. セクション全体の定義 */
.campaign-section {
  width: 100%;
  max-width: 1280px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  align-items: center;
  /* 親の align-items: center に負けないように幅を維持 */
  min-width: 0;
}

/* 2. Swiperコンテナ（PC・SP共通） */
.campaign-swiper {
  width: 100%;
  overflow: hidden; /* SP時の横はみ出し防止 */
}

/* 3. リストの基本設定 */
.campaign-content {
  list-style: none;
  padding: 0;
  display: flex;
}

/* 4. PC用のグリッドレイアウト (769px以上) */
@media screen and (min-width: 769px) {
  .campaign-content {
    flex-wrap: wrap; /* PCでは折り返す */
    gap: 16px; /* PCでは隙間を作る */
  }

  .campaign-item {
    /* 3カラム計算：(100% - 隙間16px * 2) / 3 */
    width: calc((100% - 32px) / 3);
    margin: 0;
    padding: 0;
  }

  /* PCではページネーションを隠す */
  .campaign-section .swiper-pagination {
    display: none !important;
  }
}

/* 5. SP用のSwiperレイアウト (768px以下) */
@media screen and (max-width: 768px) {
  .campaign-content.swiper-wrapper {
    flex-wrap: nowrap; /* Swiper動作時は絶対に折り返さない */
    gap: 0; /* 隙間はJSのspaceBetweenで制御 */
  }

  .campaign-item.swiper-slide {
    width: 100%; /* 1枚ずつ表示を強制 */
    margin: 0;
    flex-shrink: 0;
    padding-left: 0;
  }

  .campaign-section .swiper-pagination {
    display: block;
    position: relative;
    margin-top: 20px;
  }
}

/* 6. 画像の共通設定 */
.campaign-item img {
  width: 100%;
  height: auto;
  display: block;
}

/* WordPress特有の擬似要素を消去 */
.campaign-content .campaign-item::before {
  display: none;
}

/* ==========================================================
   SP用調整
   ========================================================== */

@media screen and (max-width: 769px) {
  .goal_header img {
    width: 40%;
  }
  .hero-area {
    height: 512px;
  }
  .hero-slide {
    object-position: 58%;
  }
  p.hero-text {
    top: inherit;
    left: 16px;
    font-size: 32px;
    bottom: 16px;
    text-shadow: 2px 2px 10px #131c258c;
  }
  .content-area {
    padding: 0 16px;
    margin: 48px 0;
  }
  .count-wrapper {
    font-size: 120px;
  }
  .section-title {
    margin-bottom: 24px;
  }
  .title-large {
    font-size: 24px;
  }
  .results-section {
    gap: 24px;
  }
  .school-name {
    font-size: 32px;
  }
  .school-row p {
    font-size: 20px;
  }
  .school-row .pc {
    display: none;
  }
  .school-list-content {
    gap: 16px;
    padding: 8px 0;
  }
  .results-label {
    font-size: 24px;
  }
  .results-notice p {
    font-size: 0.65rem;
    letter-spacing: -0.05rem;
  }

  .results-notice p .pc {
    display: block;
  }
  .count-wrapper {
    margin-left: 0;
  }
  .digit {
    width: 72px;
  }
  .unit {
    margin-left: 8px;
    font-size: 32px;
  }
  .asterisk {
    font-size: 16px;
  }
  .interview-list .interview-list-item {
    padding: 8px;
  }
  .interview-list-content p.detail {
    padding: 12px 12px;
    font-size: 0.875rem;
    letter-spacing: -0.05rem;
  }
  .interview-list-content p.school_name::before {
    width: 24px;
    height: 24px;
  }
  .goal_movie .l-float-banner {
    display: none;
  }
}
