/* ================================================================
   page-episode.css — Episode 詳細ページ専用スタイル
   ================================================================ */

/* ----------------------------------------------------------------
   CSS 変数（page-toptest と統一）
   ---------------------------------------------------------------- */
:root {
  --ep-primary:        #2C5F7A;
  --ep-primary-dark:   #1E4356;
  --ep-bg-white:       #ffffff;
  --ep-bg-grey:        #F4F5F7;
  --ep-bg-dark:        #1A2330;
  --ep-border:         #D8DEE4;
  --ep-text:           #1C1C1C;
  --ep-text-sub:       #5A6270;
  --ep-text-light:     #E8EDF2;
  --ep-accent-gold:    #B8A070;
  --ep-font-serif:     'Yu Mincho', '游明朝', 'Hiragino Mincho ProN', 'HiraMinProN-W3', Georgia, serif;
  --ep-font-sans:      -apple-system, BlinkMacSystemFont, 'Hiragino Kaku Gothic ProN', Meiryo, sans-serif;
}

/* ----------------------------------------------------------------
   ベース
   ---------------------------------------------------------------- */
.ep-page {
  font-family: var(--ep-font-sans);
  color: var(--ep-text);
  background: var(--ep-bg-white);
}

/* ----------------------------------------------------------------
   コンテナ
   ---------------------------------------------------------------- */
.ep-page .ep-container {
  max-width: 1100px;
  margin: 0 auto;
  padding: 0 32px;
}

/* ----------------------------------------------------------------
   セクション共通
   ---------------------------------------------------------------- */
.ep-page .ep-section {
  padding: 88px 0;
}

.ep-page .ep-bg-white { background: var(--ep-bg-white); }
.ep-page .ep-bg-grey  { background: var(--ep-bg-grey); }
.ep-page .ep-bg-dark  { background: var(--ep-bg-dark); }

/* ================================================================
   固定ナビゲーション
   ================================================================ */
.page-template-page-episode-php .site-header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 1000;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 1px 12px rgba(0, 0, 0, 0.08);
}

.admin-bar.page-template-page-episode-php .site-header {
  top: 32px;
}

.page-template-page-episode-php #wrapper {
  padding-top: 80px;
}

.admin-bar.page-template-page-episode-php #wrapper {
  padding-top: 80px;
}

/* ================================================================
   スクロールアニメーション
   ================================================================ */
.ep-page .ep-animate {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.65s ease, transform 0.65s ease;
}

.ep-page .ep-animate.ep-animate--in {
  opacity: 1;
  transform: translateY(0);
}

/* ================================================================
   ヒーローセクション
   ================================================================ */
.ep-page .ep-section--hero {
  padding: 96px 0 88px;
}

.ep-page .ep-hero-inner {
  text-align: center;
}

.ep-page .ep-hero-en {
  display: block;
  font-size: 0.85rem;
  letter-spacing: 0.44em;
  color: var(--ep-primary);
  text-transform: uppercase;
  margin-bottom: 24px;
  font-family: var(--ep-font-sans);
}

.ep-page .ep-hero-title {
  font-family: var(--ep-font-serif);
  font-size: clamp(1.5rem, 3.5vw, 2.6rem);
  font-weight: normal;
  line-height: 1.8;
  letter-spacing: 0.14em;
  color: var(--ep-primary);
  margin: 0 0 36px;
}

.ep-page .ep-hero-lead {
  font-family: var(--ep-font-serif);
  font-size: clamp(0.88rem, 1.4vw, 1.05rem);
  line-height: 2.0;
  letter-spacing: 0.08em;
  color: var(--ep-text);
  margin: 0;
}

/* ================================================================
   エピソード記事
   ================================================================ */
.ep-page .ep-article__inner {
  display: flex;
  align-items: center;
  gap: 64px;
}

/* 奇数番：写真右・テキスト左（flex-direction: row-reverse） */
.ep-page .ep-article--reverse .ep-article__inner {
  flex-direction: row-reverse;
}

/* 写真エリア */
.ep-page .ep-article__photo {
  width: 48%;
  flex-shrink: 0;
  aspect-ratio: 3 / 4;
  overflow: hidden;
  border-radius: 2px;
}

.ep-page .ep-article__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.5s ease;
}


/* テキストエリア */
.ep-page .ep-article__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.ep-page .ep-article__num {
  display: block;
  font-family: var(--ep-font-sans);
  font-size: 0.75rem;
  letter-spacing: 0.36em;
  color: var(--ep-primary);
  text-transform: uppercase;
  margin-bottom: 20px;
}

.ep-page .ep-article__title {
  font-family: var(--ep-font-serif);
  font-size: clamp(1.0rem, 1.7vw, 1.42rem);
  font-weight: 700;
  line-height: 1.75;
  letter-spacing: 0.06em;
  color: var(--ep-primary);
  margin: 0 0 32px;
  padding-bottom: 28px;
  border-bottom: 1px solid var(--ep-border);
}

.ep-page .ep-article__text {
  font-family: var(--ep-font-sans);
  font-size: clamp(0.88rem, 1.3vw, 1.02rem);
  line-height: 2.2;
  color: var(--ep-text-sub);
  margin: 0;
}

/* ================================================================
   写真 PC/SP 切り替え
   ================================================================ */
.ep-page .ep-photo-sp {
  display: none;
}

@media (max-width: 767px) {
  .ep-page .ep-photo-pc {
    display: none;
  }
  .ep-page .ep-photo-sp {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
  }
  .ep-page .ep-article__photo {
    aspect-ratio: 4 / 3;
  }
  .ep-page .ep-article__photo img {
    transition: none;
  }
  .ep-page .ep-article__photo:hover img,
  .ep-page .ep-article__photo:active img {
    transform: none;
  }
}

/* ================================================================
   ボタン共通
   ================================================================ */
.ep-page .ep-btn {
  display: inline-block;
  position: relative;
  overflow: hidden;
  padding: 18px 40px;
  border: 1px solid var(--ep-primary-dark);
  border-radius: 24px;
  color: var(--ep-primary-dark);
  text-decoration: none;
  font-size: 0.78rem;
  letter-spacing: 0.2em;
  font-family: var(--ep-font-sans);
  background: transparent;
  transition: transform 0.25s ease;
}

.ep-page .ep-btn::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 0;
  height: 100%;
  background: var(--ep-primary-dark);
  transition: width 0.325s ease;
  z-index: 0;
  border-radius: 24px;
}

.ep-page .ep-btn > span {
  position: relative;
  z-index: 1;
}

.ep-page .ep-btn:hover {
  color: #fff;
  background: transparent;
  transform: scale(1.04);
}

.ep-page .ep-btn:hover::before {
  width: 100%;
}

/* ================================================================
   戻るリンクセクション
   ================================================================ */
.ep-page .ep-section--back {
  padding: 64px 0;
  border-top: 1px solid var(--ep-border);
}

.ep-page .ep-back-inner {
  text-align: center;
}

/* ================================================================
   レスポンシブ
   ================================================================ */
@media (max-width: 900px) {
  .ep-page .ep-article__inner {
    gap: 40px;
  }
}

@media (max-width: 767px) {
  .ep-page .ep-container {
    padding: 0 20px;
  }

  .ep-page .ep-section {
    padding: 60px 0;
  }

  .ep-page .ep-section--hero {
    padding: 64px 0 56px;
  }

  .ep-page .ep-hero-title {
    font-size: clamp(1.3rem, 6vw, 1.9rem);
    line-height: 1.7;
  }

  .ep-page .ep-hero-lead {
    font-size: clamp(0.85rem, 3.5vw, 1.0rem);
  }

  /* SP: 縦積み（写真 → テキスト） */
  .ep-page .ep-article__inner,
  .ep-page .ep-article--reverse .ep-article__inner {
    flex-direction: column;
    gap: 28px;
  }

  .ep-page .ep-article__photo {
    width: 100%;
  }

  .ep-page .ep-article__title {
    font-size: clamp(1.0rem, 4.5vw, 1.3rem);
  }

  .ep-page .ep-article__text {
    font-size: clamp(0.88rem, 3.5vw, 1.0rem);
    line-height: 2.0;
  }

  .ep-page .ep-section--back {
    padding: 48px 0;
  }

  /* SP: ボタンホバーアニメーション無効 */
  .ep-page .ep-btn::before {
    transition: none;
  }
  .ep-page .ep-btn:hover::before,
  .ep-page .ep-btn:active::before {
    width: 0;
  }
  .ep-page .ep-btn:hover,
  .ep-page .ep-btn:active {
    color: var(--ep-primary-dark);
    transform: none;
  }
}
