/*
 * ======================================
 * チャンプ進学塾 site.css
 * ======================================
 * 追加クラス一覧（共通SCSS取り込み検討用）
 * ======================================
 *
 * .champ-mv              - メインビジュアル（スライドショー外枠）
 * .champ-mv-copy         - MV キャッチコピーブロック（左カラム）
 * .champ-course-grid     - コース紹介 3列グリッド
 * .champ-course-card     - コース紹介カード（画像+テキスト+矢印）
 * .champ-news-grid       - TOPお知らせ 4列グリッド
 * .champ-news-card       - お知らせカード（サムネ+メタ+タイトル）
 * .champ-routes-grid     - About 3導線 3列グリッド
 * .champ-route-card      - 導線カード（アイコン+タイトル+説明）
 * .champ-group-banner    - パブロフグループ紹介バナー
 * .champ-footer-cta      - フッター上部CTA（電話+LINE）
 * .champ-footer-cols     - フッター 3列レイアウト
 * .champ-hero            - 下層ページヒーロー（グリーングラデ）
 * .champ-check-list      - このコースが向いているご家庭（チェックリスト）
 * .champ-point-grid      - 選ばれる3つの理由カード
 * .champ-system-tbl      - 授業の仕組みテーブル
 * .champ-growth-steps    - 成長の流れ 横3ステップ
 * .champ-voice-grid      - 保護者の声 カードグリッド
 * .champ-school-list     - 合格実績バッジリスト
 * .champ-cta-block       - 下層ページ末尾CTAブロック
 * .champ-news-listing    - お知らせ一覧（entry_list）
 * .champ-entry-article   - 記事詳細本文
 * .champ-sec-head        - セクション見出し（EN+JA+アンダーライン）
 *
 * ======================================
 * 共通SCSSに不足していたもの
 * ======================================
 *
 * - 構造不足: MV左右分割 + スライドショー重ね
 * - 構造不足: コース紹介カード（画像上にバッジ、本文下に矢印）
 * - 構造不足: セクション見出し（EN小→JA大→金アンダーライン）
 * - 値の粒度不足: 24pxの角丸 (.rounded は20px)
 * - 装飾パターン不足: FAQ Q/Aアイコン丸囲み
 * - 装飾パターン不足: ステップタイムライン横3列
 * - 装飾パターン不足: グループバナー（グリーン背景+円形装飾）
 *
 */

/* ============================================================
   ロゴサイズ
   ============================================================ */
.header__logo img {
  height: 70px;
  width: auto;
}
.champ-footer__logo img {
  height: 70px;
  width: auto;
}

/* ============================================================
   FAQ アコーディオン 回答上パディング
   ============================================================ */
.accordion--qa .accordion__body {
  padding-top: 15px;
}
.accordion--qa .accordion__body::before {
  top: 15px;
}

/* ============================================================
   グローバル：フォント / ベース
   ============================================================ */
body {
  font-family: 'Noto Sans JP', sans-serif;
}
.font-en,
.heading__en,
.header__nav-en,
.sp-nav__en,
.champ-sec-head__en,
.champ-hero__en {
  font-family: 'Montserrat', sans-serif;
}

/* ============================================================
   セクション共通見出し (.champ-sec-head)
   EN(小・グリーン) → JA(大) → 金アンダーライン
   ============================================================ */
.champ-sec-head {
  text-align: center;
  margin-bottom: 60px;
}
.champ-sec-head__en {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.3em;
  color: #194D1F;
  font-weight: 600;
  margin-bottom: 10px;
}
.champ-sec-head__ja {
  display: block;
  font-size: 3.2rem;
  font-weight: 700;
  color: #1a2620;
  letter-spacing: 0.04em;
  line-height: 1.4;
}
.champ-sec-head__ja::after {
  content: '';
  display: block;
  width: 48px;
  height: 3px;
  background: #E8A23D;
  margin: 16px auto 0;
}
.champ-sec-head--left {
  text-align: left;
}
.champ-sec-head--left .champ-sec-head__ja::after {
  margin-left: 0;
}
.champ-sec-head--white .champ-sec-head__en {
  color: rgba(255, 255, 255, 0.8);
}
.champ-sec-head--white .champ-sec-head__ja {
  color: #fff;
}
@media (max-width: 639px) {
  .champ-sec-head__ja { font-size: 2.4rem; }
}

/* ============================================================
   メインビジュアル フルスクリーンスライダー (.champ-mv-full)
   ============================================================ */
.champ-mv-full {
  position: relative;
  width: 100%;
  height: 80vh;
  min-height: 500px;
  max-height: 720px;
  overflow: hidden;
}

.champ-mv-full__slides {
  position: relative;
  width: 100%;
  height: 100%;
}

.champ-mv-full__slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1s ease;
  z-index: 0;
}
.champ-mv-full__slide.is-active {
  opacity: 1;
  z-index: 1;
}

/* 背景画像 */
.champ-mv-full__bg {
  position: absolute;
  inset: 0;
}
.champ-mv-full__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transform-origin: center center;
}
.champ-mv-full__slide.is-active .champ-mv-full__img {
  animation: mvKenburnsZoomIn 8s ease-out forwards;
}

/* オーバーレイ */
.champ-mv-full__overlay {
  position: absolute;
  inset: 0;
  pointer-events: none;
}
.champ-mv-full__overlay--none   { background: transparent; }
.champ-mv-full__overlay--light  { background: rgba(255,255,255,0.06); }
.champ-mv-full__overlay--medium { background: rgba(0,0,0,0.30); }
.champ-mv-full__overlay--dark   { background: rgba(0,0,0,0.46); }

/* テキスト本体 */
.champ-mv-full__body {
  position: absolute;
  z-index: 2;
  top: 50%;
  transform: translateY(-50%);
  max-width: 620px;
  padding: 0 32px;
  display: flex;
  flex-direction: column;
  gap: 18px;
}
.champ-mv-full__body--left  { left: 8%; }
.champ-mv-full__body--right { right: 8%; left: auto; }
.champ-mv-full__body--box {
  background: rgba(255,255,255,0.88);
  padding: 36px 44px;
  border-radius: 4px;
}
.champ-mv-full__body--center {
  left: 50%;
  transform: translate(-50%, -50%);
  text-align: center;
  align-items: center;
}

/* バッジ */
.champ-mv-full__badge {
  display: inline-block;
  padding: 7px 20px;
  border-radius: 9999px;
  font-family: 'Montserrat', sans-serif;
  font-size: 1.2rem;
  font-weight: 600;
  letter-spacing: 0.14em;
  align-self: flex-start;
}
.champ-mv-full__body--center .champ-mv-full__badge {
  align-self: center;
}
.champ-mv-full__badge--white {
  background: rgba(255,255,255,0.92);
  color: #1a2620;
}
.champ-mv-full__badge--dark {
  background: rgba(40,40,40,0.82);
  color: #fff;
}

/* タイトル */
.champ-mv-full__title {
  font-size: 5rem;
  font-weight: 800;
  line-height: 1.3;
  letter-spacing: 0.03em;
  margin: 0;
  white-space: nowrap;
}
.champ-mv-full__title--green { color: #194D1F; }
.champ-mv-full__title--white { color: #fff; text-shadow: 0 2px 14px rgba(0,0,0,0.28); }
.champ-mv-full__title--dark  { color: #1a2620; }

/* サブテキスト */
.champ-mv-full__sub {
  font-size: 1.5rem;
  line-height: 1.8;
  color: rgba(255,255,255,0.9);
  margin: 0;
}
.champ-mv-full__sub--dark { color: #444; }

/* CTAボタン */
.champ-mv-full__cta {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #194D1F;
  color: #fff;
  padding: 16px 32px;
  border-radius: 9999px;
  font-weight: 700;
  font-size: 1.5rem;
  text-decoration: none;
  transition: all 0.3s ease;
  align-self: flex-start;
  margin-top: 4px;
}
.champ-mv-full__cta:hover {
  background: #0f3214;
  color: #fff;
  transform: translateY(-2px);
}

/* 矢印ナビ */
.champ-mv-full__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(255,255,255,0.88);
  border: 1px solid rgba(200,200,200,0.6);
  color: #333;
  font-size: 2.6rem;
  line-height: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: all 0.25s ease;
  padding: 0;
}
.champ-mv-full__arrow:hover {
  background: #fff;
  box-shadow: 0 4px 16px rgba(0,0,0,0.14);
}
.champ-mv-full__arrow--prev { left: 20px; }
.champ-mv-full__arrow--next { right: 20px; }

/* ドット */
.champ-mv-full__dots {
  position: absolute;
  bottom: 24px;
  left: 50%;
  transform: translateX(-50%);
  z-index: 10;
  display: flex;
  gap: 8px;
  align-items: center;
}
.champ-mv-full__dot {
  display: block;
  width: 32px;
  height: 4px;
  border-radius: 2px;
  background: rgba(255,255,255,0.5);
  cursor: pointer;
  transition: all 0.3s ease;
}
.champ-mv-full__dot.is-active {
  background: #194D1F;
  width: 44px;
}

/* レスポンシブ */
@media (max-width: 1024px) {
  .champ-mv-full {
    height: 60vh;
    max-height: none;
  }
  .champ-mv-full__title { font-size: 3.8rem; }
  .champ-mv-full__body  { max-width: 55%; }
}
@media (max-width: 768px) {
  .champ-mv-full {
    height: 58vw;
    min-height: 380px;
  }
  .champ-mv-full__title { font-size: 2.8rem; }
  .champ-mv-full__sub   { font-size: 1.3rem; }
  .champ-mv-full__body  { max-width: 60%; padding: 0 24px; gap: 12px; }
}
@media (max-width: 480px) {
  .champ-mv-full {
    height: 95vw;
    min-height: 300px;
  }
  .champ-mv-full__title { font-size: min(2.2rem, 7vw); white-space: normal; }
  .champ-mv-full__title span { white-space: nowrap; }
  .champ-mv-full__badge { font-size: 1.0rem; padding: 5px 14px; }
  .champ-mv-full__sub   { font-size: 1.2rem; }
  .champ-mv-full__body  { max-width: 78%; padding: 0 16px; gap: 10px; }
  .champ-mv-full__body--right { right: 4%; }
  .champ-mv-full__body--left  { left: 4%; }
  .champ-mv-full__body--box {
    padding: 20px 20px;
    left: 50%;
    right: auto;
    transform: translate(-50%, -50%);
    width: 90%;
    max-width: 90%;
    margin-top: 20px;
  }
  .champ-mv-full__arrow { display: none; }
  .champ-mv-full__cta   { font-size: 1.3rem; padding: 13px 24px; }
}

/* ============================================================
   コース紹介 (.champ-course-grid / .champ-course-card)
   3列グリッド、画像+白いテキストボックス
   ============================================================ */
.champ-course-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}
@media (max-width: 896px) {
  .champ-course-grid { grid-template-columns: 1fr; }
}

.champ-course-card {
  background: #fff;
  border-radius: 20px;
  overflow: hidden;
  border: 1px solid #e0e8e1;
  text-decoration: none;
  color: #1a2620;
  display: flex;
  flex-direction: column;
  transition: all 0.35s ease;
}
.champ-course-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 24px 48px -16px rgba(25, 77, 31, 0.22);
  color: #1a2620;
}
.champ-course-card__img {
  position: relative;
  aspect-ratio: 16 / 10;
  overflow: hidden;
}
.champ-course-card__img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
  display: block;
}
.champ-course-card:hover .champ-course-card__img img {
  transform: scale(1.05);
}
.champ-course-card__badge {
  position: absolute;
  top: 14px;
  left: 14px;
  background: rgba(255, 255, 255, 0.94);
  color: #194D1F;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 1.1rem;
  letter-spacing: 0.12em;
  padding: 5px 14px;
  border-radius: 9999px;
}
.champ-course-card__body {
  padding: 28px 28px 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.champ-course-card__grade {
  font-size: 1.2rem;
  color: #194D1F;
  font-weight: 600;
  letter-spacing: 0.08em;
  margin-bottom: 8px;
}
.champ-course-card__title {
  font-size: 2.2rem;
  font-weight: 800;
  margin-bottom: 14px;
  line-height: 1.3;
  letter-spacing: 0.02em;
}
.champ-course-card__text {
  font-size: 1.35rem;
  line-height: 1.85;
  color: #555;
  flex: 1;
}
.champ-course-card__more {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-top: 20px;
  color: #194D1F;
  font-weight: 700;
  font-size: 1.35rem;
  letter-spacing: 0.06em;
}
.champ-course-card__more::after {
  content: '→';
  transition: transform 0.3s ease;
}
.champ-course-card:hover .champ-course-card__more::after {
  transform: translateX(5px);
}

/* ============================================================
   お知らせ TOPページ (.champ-news-grid / .champ-news-card)
   ============================================================ */
.champ-news-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.champ-news-grid--3col {
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
}
@media (max-width: 1100px) {
  .champ-news-grid { grid-template-columns: repeat(2, 1fr); }
  .champ-news-grid--3col { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 639px) {
  .champ-news-grid,
  .champ-news-grid--3col { grid-template-columns: 1fr; }
}

.champ-news-card {
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid #e0e8e1;
  text-decoration: none;
  color: #1a2620;
  display: flex;
  flex-direction: column;
  transition: all 0.3s ease;
  box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
.champ-news-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 16px 36px -12px rgba(0, 0, 0, 0.14);
  color: #1a2620;
}
.champ-news-card__thumb {
  aspect-ratio: 3 / 2;
  overflow: hidden;
}
.champ-news-card__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
  display: block;
}
.champ-news-card:hover .champ-news-card__thumb img {
  transform: scale(1.06);
}
.champ-news-card__body {
  padding: 20px 24px 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
}
.champ-news-card__meta {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 12px;
}
.champ-news-card__date {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.25rem;
  color: #888;
  letter-spacing: 0.06em;
}
.champ-news-card__cat {
  font-size: 1.15rem;
  padding: 3px 12px;
  background: #E8F0E9;
  color: #194D1F;
  border-radius: 9999px;
  font-weight: 700;
}
.champ-news-card__title {
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.7;
  color: #1a2620;
  flex: 1;
}

/* お知らせ一覧ボタン */
.champ-news-more-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 15px 44px;
  border-radius: 9999px;
  border: 2px solid #194D1F;
  color: #194D1F;
  font-weight: 700;
  font-size: 1.5rem;
  text-decoration: none;
  letter-spacing: 0.04em;
  transition: all 0.3s ease;
}
.champ-news-more-btn:hover {
  background: #194D1F;
  color: #fff;
}

/* ============================================================
   About 3導線 (.champ-routes-grid / .champ-route-card)
   ============================================================ */
.champ-routes-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
}
@media (max-width: 896px) {
  .champ-routes-grid { grid-template-columns: 1fr; }
}

.champ-route-card {
  background: #fff;
  border-radius: 20px;
  padding: 40px 28px 32px;
  text-align: center;
  text-decoration: none;
  color: #1a2620;
  border: 1px solid #e0e8e1;
  transition: all 0.3s ease;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.champ-route-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 20px 40px -16px rgba(25, 77, 31, 0.2);
  border-color: #194D1F;
  color: #1a2620;
}
.champ-route-card__icon {
  width: 80px;
  height: 80px;
  border-radius: 50%;
  background: #E8F0E9;
  color: #194D1F;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 3.0rem;
  margin-bottom: 22px;
}
.champ-route-card__title {
  font-size: 1.9rem;
  font-weight: 800;
  margin-bottom: 12px;
  letter-spacing: 0.02em;
  line-height: 1.3;
}
.champ-route-card__text {
  font-size: 1.3rem;
  color: #6b7570;
  line-height: 1.8;
  flex: 1;
}
.champ-route-card__more {
  margin-top: 18px;
  color: #194D1F;
  font-weight: 700;
  font-size: 1.3rem;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.champ-route-card__more::after {
  content: '→';
}

/* ============================================================
   パブロフグループバナー (.champ-group-banner)
   ============================================================ */
.champ-group-banner {
  background: #194D1F;
  color: #fff;
  border-radius: 24px;
  padding: 56px 48px;
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: 1.3fr 1fr;
  gap: 32px;
  align-items: center;
}
.champ-group-banner::before {
  content: '';
  position: absolute;
  top: -40%;
  right: -8%;
  width: 380px;
  height: 380px;
  border-radius: 50%;
  background: rgba(232, 162, 61, 0.15);
  pointer-events: none;
}
.champ-group-banner__copy {
  position: relative;
  z-index: 2;
}
.champ-group-banner__en {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 1.1rem;
  letter-spacing: 0.3em;
  color: #E8A23D;
  font-weight: 600;
  margin-bottom: 12px;
}
.champ-group-banner__title {
  font-size: 2.8rem;
  font-weight: 800;
  margin-bottom: 16px;
  letter-spacing: 0.04em;
  line-height: 1.4;
}
.champ-group-banner__text {
  font-size: 1.4rem;
  line-height: 1.9;
  opacity: 0.92;
  margin-bottom: 24px;
}
.champ-group-banner__cta {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  color: #194D1F;
  padding: 14px 28px;
  border-radius: 9999px;
  font-weight: 700;
  text-decoration: none;
  transition: all 0.3s ease;
  font-size: 1.4rem;
}
.champ-group-banner__cta:hover {
  background: #E8A23D;
  color: #fff;
}
.champ-group-banner__visual {
  position: relative;
  z-index: 2;
}
.champ-group-banner__img {
  width: 100%;
  border-radius: 16px;
  overflow: hidden;
}
.champ-group-banner__img img {
  width: 100%;
  aspect-ratio: 16/9;
  object-fit: cover;
  display: block;
  border-radius: 16px;
}
@media (max-width: 896px) {
  .champ-group-banner {
    grid-template-columns: 1fr;
    padding: 40px 28px;
  }
  .champ-group-banner__title { font-size: 2.2rem; }
}

/* ============================================================
   フッター上部CTA (.champ-footer-cta)
   ============================================================ */
.champ-footer-cta {
  background: #194D1F;
  padding: 60px 0;
}
.champ-footer-cta__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 40px;
  align-items: center;
}
.champ-footer-cta__ttl {
  display: flex;
  flex-direction: column;
  margin-bottom: 12px;
}
.champ-footer-cta__ttl-en {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.3em;
  color: rgba(255, 255, 255, 0.7);
  font-weight: 600;
  margin-bottom: 8px;
}
.champ-footer-cta__ttl-ja {
  font-size: 3.0rem;
  font-weight: 800;
  color: #fff;
  letter-spacing: 0.06em;
}
.champ-footer-cta__desc {
  font-size: 1.4rem;
  line-height: 1.9;
  color: rgba(255, 255, 255, 0.85) !important;
  margin-top: 0;
}
.champ-footer-cta__right {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.champ-footer-cta__btn {
  /* wrapper */
}
.champ-footer-cta__btn-link {
  display: flex;
  align-items: center;
  gap: 20px;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 16px;
  padding: 20px 28px;
  text-decoration: none;
  color: #fff;
  transition: all 0.3s ease;
}
.champ-footer-cta__btn-link:hover {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
  transform: translateY(-2px);
}
.champ-footer-cta__btn-link--line:hover {
  background: #06C755;
  border-color: #06C755;
}
.champ-footer-cta__btn-icon {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.2rem;
  flex-shrink: 0;
}
.champ-footer-cta__btn-icon--line {
  background: #06C755;
}
.champ-footer-cta__btn-body {
  display: flex;
  flex-direction: column;
}
.champ-footer-cta__btn-sub {
  font-size: 1.2rem;
  opacity: 0.8;
  letter-spacing: 0.06em;
  margin-bottom: 4px;
}
.champ-footer-cta__btn-num {
  font-family: 'Montserrat', sans-serif;
  font-size: 2.0rem;
  font-weight: 800;
  letter-spacing: 0.04em;
  line-height: 1.1;
}
@media (max-width: 896px) {
  .champ-footer-cta__inner {
    grid-template-columns: 1fr;
    gap: 28px;
    text-align: center;
  }
  .champ-footer-cta__btn-link {
    justify-content: center;
  }
}

/* ============================================================
   フッター 3列 (.champ-footer-cols)
   ============================================================ */
.champ-footer-cols {
  display: grid;
  grid-template-columns: 1.4fr 1fr 1fr;
  gap: 48px;
  padding: 64px 0 40px;
}
.champ-footer-info__logo {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  text-decoration: none;
}
.champ-footer-info__logo img {
  height: 40px;
  width: auto;
  filter: brightness(0) invert(1);
}
.champ-footer-info__addr,
.champ-footer-info__tel {
  font-size: 1.3rem;
  color: rgba(255, 255, 255, 0.8);
  line-height: 1.9;
  margin-bottom: 10px;
}
.champ-footer-info__tel a {
  color: #fff;
  font-family: 'Montserrat', sans-serif;
  font-size: 2.0rem;
  font-weight: 700;
  text-decoration: none;
}
.champ-footer-sns {
  display: flex;
  gap: 12px;
  margin-top: 16px;
}
.champ-footer-sns a {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.12);
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  font-size: 1.8rem;
  transition: all 0.3s ease;
  text-decoration: none;
}
.champ-footer-sns a:hover {
  background: #E8A23D;
  color: #fff;
}
.champ-footer-nav__ttl {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.2em;
  color: #E8A23D;
  margin-bottom: 16px;
  font-weight: 600;
}
.champ-footer-nav ul {
  list-style: none;
  padding: 0;
  margin: 0;
}
.champ-footer-nav li {
  margin-bottom: 10px;
}
.champ-footer-nav a {
  color: rgba(255, 255, 255, 0.8);
  text-decoration: none;
  font-size: 1.35rem;
  transition: all 0.2s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.champ-footer-nav a::before {
  content: '─';
  color: #E8A23D;
  font-size: 1.0rem;
}
.champ-footer-nav a:hover {
  color: #E8A23D;
}
.champ-footer-map {
  border-radius: 12px;
  overflow: hidden;
  height: 200px;
}
.champ-footer-map iframe {
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}
@media (max-width: 896px) {
  .champ-footer-cols {
    grid-template-columns: 1fr;
    gap: 36px;
    padding: 48px 0 32px;
  }
}

/* ============================================================
   新フッター (.champ-footer)
   ============================================================ */
.champ-footer__accent {
  height: 6px;
  background: #194D1F;
}
.champ-footer__body {
  background: #fff;
  padding: 64px 0 48px;
}
.champ-footer__cols {
  display: grid;
  grid-template-columns: 2fr 1fr 1.6fr;
  gap: 56px;
  align-items: start;
}

/* ロゴ */
.champ-footer__logo {
  display: inline-flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  margin-bottom: 18px;
}
.champ-footer__logo img {
  height: 44px;
  width: auto;
}

/* 説明文 */
.champ-footer__desc {
  font-size: 1.35rem;
  line-height: 1.9;
  color: #555;
  margin-bottom: 22px;
}

/* 住所・TEL */
.champ-footer__info {
  margin-bottom: 22px;
}
.champ-footer__info-row {
  display: flex;
  gap: 20px;
  margin-bottom: 10px;
  font-size: 1.35rem;
  line-height: 1.8;
  align-items: flex-start;
}
.champ-footer__info-row dt {
  color: #194D1F;
  font-weight: 700;
  flex-shrink: 0;
  width: 2.8em;
}
.champ-footer__info-row dd {
  color: #333;
}
.champ-footer__info-row dd a {
  color: #194D1F;
  text-decoration: none;
  font-family: 'Montserrat', sans-serif;
  font-size: 1.7rem;
  font-weight: 700;
  letter-spacing: 0.04em;
}

/* SNSボタン */
.champ-footer__sns {
  display: flex;
  gap: 10px;
}
.champ-footer__sns-btn {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  background: #194D1F;
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.0rem;
  text-decoration: none;
  transition: all 0.25s ease;
}
.champ-footer__sns-btn:hover {
  background: #0f3214;
  color: #fff;
  transform: translateY(-2px);
}

/* サイトマップ */
.champ-footer__col-ttl {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.15rem;
  font-weight: 700;
  letter-spacing: 0.22em;
  color: #1a2620;
  margin-bottom: 20px;
}
.champ-footer__nav {
  display: flex;
  flex-direction: column;
  gap: 14px;
}
.champ-footer__nav-link {
  font-size: 1.4rem;
  color: #444;
  text-decoration: none;
  transition: color 0.2s ease;
}
.champ-footer__nav-link:hover {
  color: #194D1F;
}

/* マップ */
.champ-footer__map {
  border-radius: 10px;
  overflow: hidden;
  border: 1px solid #e0e0e0;
}
.champ-footer__map iframe {
  display: block;
  width: 100%;
}

/* ボトムバー */
.champ-footer__bottom {
  background: #fff;
  border-top: 1px solid #e0e8e1;
  padding: 20px 0;
  text-align: center;
}
.champ-footer__copyright {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.25rem;
  color: #888;
  letter-spacing: 0.06em;
}

/* レスポンシブ */
@media (max-width: 1024px) {
  .champ-footer__cols {
    grid-template-columns: 1fr 1fr;
    gap: 40px;
  }
  .champ-footer__col--map {
    grid-column: 1 / -1;
  }
}
@media (max-width: 639px) {
  .champ-footer__body { padding: 48px 0 36px; }
  .champ-footer__cols {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .champ-footer__col--map { grid-column: auto; }
}

/* ============================================================
   下層ページヒーロー (.champ-hero)
   グリーングラデーション背景
   ============================================================ */
.champ-hero {
  position: relative;
  min-height: 300px;
  background: linear-gradient(135deg, #194D1F 0%, #2d6b35 100%);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  overflow: hidden;
}
.champ-hero::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(255,255,255,0.06) 0, transparent 50%),
    radial-gradient(circle at 80% 70%, rgba(232, 162, 61, 0.15) 0, transparent 50%);
  pointer-events: none;
}
.champ-hero__inner {
  position: relative;
  z-index: 2;
  padding: 110px 24px 60px;
}
.champ-hero__en {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.32em;
  opacity: 0.8;
  margin-bottom: 14px;
  font-weight: 500;
}
.champ-hero__ja {
  font-size: 4.4rem;
  font-weight: 800;
  letter-spacing: 0.06em;
  line-height: 1.3;
}
@media (max-width: 639px) {
  .champ-hero { min-height: 220px; }
  .champ-hero__ja { font-size: 3.0rem; }
}

/* ============================================================
   このコースが向いているご家庭 (.champ-check-list)
   ============================================================ */
.champ-check-list {
  background: #fff;
  border-radius: 20px;
  padding: 48px 52px;
  box-shadow: 0 8px 32px -16px rgba(0, 0, 0, 0.08);
  border: 1px solid #e0e8e1;
}
.champ-check-list ul {
  list-style: none;
  padding: 0;
  margin: 0;
  display: grid;
  gap: 16px;
}
.champ-check-list li {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  font-size: 1.55rem;
  line-height: 1.7;
  color: #1a2620;
  font-weight: 500;
  padding-bottom: 16px;
  border-bottom: 1px dashed #d8ddd9;
}
.champ-check-list li:last-child {
  border-bottom: none;
  padding-bottom: 0;
}
.champ-check-list li::before {
  content: '✓';
  flex-shrink: 0;
  width: 30px;
  height: 30px;
  background: #194D1F;
  color: #fff;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: 700;
  font-size: 1.2rem;
}
@media (max-width: 639px) {
  .champ-check-list { padding: 28px 24px; }
  .champ-check-list li { font-size: 1.4rem; }
}
.champ-for-you-wrap {
  position: relative;
  padding-top: 80px;
}
.champ-for-you-illust {
  position: absolute;
  top: -30px;
  left: 50%;
  transform: translateX(-50%);
  width: 180px;
  z-index: 2;
  pointer-events: none;
}
.champ-for-you-illust img {
  width: 100%;
  display: block;
}
@media (max-width: 639px) {
  .champ-for-you-wrap { padding-top: 60px; }
  .champ-for-you-illust { width: 130px; }
}

/* ============================================================
   選ばれる3つの理由 (.champ-point-grid / .champ-point-card)
   ============================================================ */
.champ-point-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 32px;
  margin-top: 36px;
}
@media (max-width: 896px) {
  .champ-point-grid { grid-template-columns: 1fr; gap: 48px; }
}

.champ-point-card {
  background: #fff;
  border-radius: 20px;
  padding: 40px 28px 32px;
  border: 1px solid #e0e8e1;
  position: relative;
  display: flex;
  flex-direction: column;
}
.champ-point-card__badge {
  position: absolute;
  top: -18px;
  left: 28px;
  background: #194D1F;
  color: #fff;
  padding: 6px 18px;
  border-radius: 9999px;
  font-family: 'Montserrat', sans-serif;
  font-weight: 700;
  font-size: 1.2rem;
  letter-spacing: 0.16em;
}
.champ-point-card__icon {
  width: 60px;
  height: 60px;
  border-radius: 14px;
  background: #E8F0E9;
  color: #194D1F;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.6rem;
  margin: 10px 0 18px;
}
.champ-point-card__title {
  font-size: 1.8rem;
  font-weight: 800;
  line-height: 1.5;
  margin-bottom: 14px;
  color: #1a2620;
  letter-spacing: 0.02em;
}
.champ-point-card__text {
  font-size: 1.4rem;
  line-height: 1.9;
  color: #6b7570;
  flex: 1;
}

/* ============================================================
   授業の仕組み (.champ-system-tbl)
   ============================================================ */
.champ-system-tbl {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 24px -16px rgba(0, 0, 0, 0.1);
}
.champ-system-tbl th,
.champ-system-tbl td {
  padding: 22px 28px;
  text-align: left;
  vertical-align: top;
  border-bottom: 1px solid #e0e8e1;
  font-size: 1.5rem;
  line-height: 1.8;
}
.champ-system-tbl th {
  background: #E8F0E9;
  color: #194D1F;
  font-weight: 700;
  width: 30%;
  letter-spacing: 0.04em;
}
.champ-system-tbl tr:last-child th,
.champ-system-tbl tr:last-child td {
  border-bottom: none;
}
@media (max-width: 639px) {
  .champ-system-tbl th,
  .champ-system-tbl td {
    display: block;
    width: 100%;
    padding: 14px 18px;
  }
  .champ-system-tbl th { border-bottom: none; padding-bottom: 6px; }
}

/* ============================================================
   授業の仕組み カード型 (.champ-system-card)
   ============================================================ */
.champ-system-cards {
  display: flex;
  flex-direction: column;
  gap: 0;
}
.champ-system-card {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 72px;
  align-items: center;
  padding: 56px 0;
  border-bottom: 1px solid #e0e8e1;
}
.champ-system-card:last-child {
  border-bottom: none;
}
.champ-system-card__badge {
  display: inline-block;
  background: #194D1F;
  color: #fff;
  padding: 5px 18px;
  border-radius: 6px;
  font-size: 1.3rem;
  font-weight: 700;
  margin-bottom: 20px;
  letter-spacing: 0.04em;
}
.champ-system-card__title {
  font-size: 2.4rem;
  font-weight: 800;
  line-height: 1.55;
  color: #1a2620;
  margin-bottom: 16px;
}
.champ-system-card__accent {
  width: 36px;
  height: 3px;
  background: #E8A23D;
  margin-bottom: 20px;
}
.champ-system-card__text {
  font-size: 1.5rem;
  line-height: 1.85;
  color: #4a5550;
}
.champ-system-card__img {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 12px 40px -12px rgba(0,0,0,0.15);
}
.champ-system-card__img img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
@media (max-width: 767px) {
  .champ-system-card {
    grid-template-columns: 1fr;
    gap: 24px;
    padding: 40px 0;
  }
  .champ-system-card__title { font-size: 2.0rem; }
}

/* ============================================================
   成長の流れ (.champ-growth-steps)
   横3列＋矢印
   ============================================================ */
.champ-growth-steps {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  position: relative;
}
.champ-growth-steps::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  height: 2px;
  background: #d4e8d6;
  z-index: 0;
}
@media (max-width: 896px) {
  .champ-growth-steps {
    grid-template-columns: 1fr;
    gap: 20px;
  }
  .champ-growth-steps::before { display: none; }
}

.champ-growth-step {
  background: #fff;
  border-radius: 20px;
  padding: 32px 24px 28px;
  border: 1px solid #e0e8e1;
  text-align: center;
  margin: 0 10px;
  position: relative;
  z-index: 1;
}
.champ-growth-step__num {
  font-family: 'Montserrat', sans-serif;
  font-size: 1.0rem;
  letter-spacing: 0.24em;
  color: #E8A23D;
  font-weight: 600;
  margin-bottom: 10px;
}
.champ-growth-step__icon {
  width: 52px;
  height: 52px;
  border-radius: 50%;
  background: #E8F0E9;
  color: #194D1F;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 2.2rem;
  margin: 0 auto 14px;
}
.champ-growth-step__label {
  font-size: 1.9rem;
  font-weight: 800;
  color: #194D1F;
  margin-bottom: 12px;
  letter-spacing: 0.04em;
}
.champ-growth-step__text {
  font-size: 1.35rem;
  line-height: 1.85;
  color: #555;
}

/* ============================================================
   保護者の声 (.champ-voice-grid / .champ-voice-card)
   ============================================================ */
.champ-voice-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 896px) {
  .champ-voice-grid { grid-template-columns: 1fr; }
}

.champ-voice-card {
  background: #ffffff;
  border-radius: 16px;
  padding: 28px 24px 24px;
  position: relative;
  font-size: 1.4rem;
  line-height: 1.9;
}
.champ-voice-card::before {
  content: '\201C';
  position: absolute;
  top: 4px;
  left: 16px;
  font-family: Georgia, serif;
  font-size: 5.6rem;
  color: #194D1F;
  opacity: 0.2;
  line-height: 1;
  pointer-events: none;
}
.champ-voice-card__text {
  position: relative;
  z-index: 2;
  padding-top: 8px;
  color: #1a2620;
}

/* ============================================================
   合格実績バッジ (.champ-school-list)
   ============================================================ */
.champ-school-list {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
}
.champ-school-list span {
  background: #fff;
  border: 1px solid #e0e8e1;
  padding: 9px 18px;
  border-radius: 9999px;
  font-size: 1.3rem;
  font-weight: 600;
  color: #1a2620;
}
.champ-school-list span.is-top {
  background: #194D1F;
  color: #fff;
  border-color: #194D1F;
}
.champ-school-list span:nth-child(even) {
  background: #194D1F;
  color: #fff;
  border-color: #194D1F;
}
.champ-result-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 56px;
  align-items: start;
  margin-bottom: 48px;
}
.champ-result-layout__left .champ-sec-head--left {
  margin-bottom: 20px;
}
.champ-result-layout__left .champ-school-list {
  justify-content: flex-start;
}
.champ-result-layout__img {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 12px 40px -12px rgba(0,0,0,0.15);
}
.champ-result-layout__img img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
@media (max-width: 767px) {
  .champ-result-layout {
    grid-template-columns: 1fr;
    gap: 32px;
  }
}

/* ============================================================
   合格実績リスト (.champ-result-list)
   ============================================================ */
.champ-result-layout2 {
  margin-top: 40px;
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 32px;
  align-items: center;
}
.champ-result-layout2__img {
  border-radius: 12px;
  overflow: hidden;
}
.champ-result-layout2__img img {
  width: 100%;
  display: block;
  object-fit: cover;
}
.champ-result-list {
  background: #ffffff;
  border-radius: 16px;
  padding: 32px 32px;
}
.champ-result-list__title {
  font-size: 1.6rem;
  font-weight: 700;
  color: #194D1F;
  margin-bottom: 20px;
  padding-bottom: 12px;
  border-bottom: 2px solid #194D1F;
}
.champ-result-list__items {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
}
.champ-result-list__items li {
  font-size: 1.4rem;
  color: #1a2620;
  padding: 8px 12px;
  background: #f5f8f5;
  border-radius: 8px;
}
@media (max-width: 896px) {
  .champ-result-layout2 {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .champ-result-list {
    padding: 24px 20px;
  }
}

/* ============================================================
   コース概要 2カラムレイアウト (.champ-overview-layout)
   ============================================================ */
.champ-overview-layout {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 64px;
  align-items: center;
}
.champ-overview-layout__body .champ-sec-head {
  margin-bottom: 28px;
}
.champ-overview-layout__img {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 12px 40px -12px rgba(0,0,0,0.15);
}
.champ-overview-layout__img img {
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  display: block;
}
@media (max-width: 896px) {
  .champ-overview-layout {
    grid-template-columns: 1fr;
    gap: 36px;
  }
  .champ-overview-layout__img {
    order: -1;
  }
}

/* ============================================================
   サポート体制グリッド (.champ-support-grid / .champ-support-item)
   ============================================================ */
.champ-support-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
}
@media (max-width: 639px) {
  .champ-support-grid { grid-template-columns: 1fr; }
}

.champ-support-item {
  background: #fff;
  border: 1px solid #e0e8e1;
  border-radius: 12px;
  padding: 22px 24px;
}
.champ-support-item__title {
  font-size: 1.55rem;
  font-weight: 700;
  color: #194D1F;
  margin-bottom: 10px;
  display: flex;
  align-items: center;
  gap: 8px;
}
.champ-support-item__title::before {
  content: '●';
  color: #E8A23D;
  font-size: 1.0rem;
  flex-shrink: 0;
}
.champ-support-item__text {
  font-size: 1.4rem;
  line-height: 1.8;
  color: #555;
  margin: 0;
}

/* ============================================================
   サポート体制テーブル (.champ-support-tbl)
   ============================================================ */
.champ-support-tbl {
  width: 100%;
  border-collapse: separate;
  border-spacing: 0;
  background: #fff;
  border-radius: 16px;
  overflow: hidden;
  box-shadow: 0 8px 24px -16px rgba(0, 0, 0, 0.08);
}
.champ-support-tbl th,
.champ-support-tbl td {
  padding: 20px 28px;
  text-align: left;
  vertical-align: middle;
  border-bottom: 1px solid #e0e8e1;
  font-size: 1.45rem;
  line-height: 1.8;
}
.champ-support-tbl th {
  background: #E8F0E9;
  color: #194D1F;
  font-weight: 700;
  width: 28%;
}
.champ-support-tbl tr:last-child th,
.champ-support-tbl tr:last-child td {
  border-bottom: none;
}
@media (max-width: 639px) {
  .champ-support-tbl th,
  .champ-support-tbl td {
    display: block;
    width: 100%;
    padding: 12px 18px;
  }
  .champ-support-tbl th { border-bottom: none; padding-bottom: 4px; }
}

/* ============================================================
   下層ページ末尾CTAブロック (.champ-cta-block)
   ============================================================ */
.champ-cta-block {
  background: linear-gradient(135deg, #194D1F 0%, #2d6b35 100%);
  color: #fff;
  border-radius: 24px;
  padding: 60px 48px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.champ-cta-block::before,
.champ-cta-block::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  background: rgba(232, 162, 61, 0.14);
  pointer-events: none;
}
.champ-cta-block::before {
  width: 260px;
  height: 260px;
  top: -90px;
  right: -50px;
}
.champ-cta-block::after {
  width: 200px;
  height: 200px;
  bottom: -80px;
  left: -40px;
}
.champ-cta-block__inner {
  position: relative;
  z-index: 2;
}
.champ-cta-block__en {
  display: block;
  font-family: 'Montserrat', sans-serif;
  font-size: 1.2rem;
  letter-spacing: 0.3em;
  color: rgba(255, 255, 255, 0.7);
  margin-bottom: 12px;
  font-weight: 500;
}
.champ-cta-block__title {
  font-size: 2.8rem;
  font-weight: 800;
  margin-bottom: 16px;
  letter-spacing: 0.04em;
}
.champ-cta-block__lead {
  font-size: 1.5rem;
  line-height: 2;
  opacity: 0.9;
  margin-bottom: 24px;
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
}
.champ-cta-block__voices {
  display: flex;
  gap: 12px;
  justify-content: center;
  flex-wrap: wrap;
  margin-bottom: 32px;
}
.champ-cta-block__voice-chip {
  background: rgba(255, 255, 255, 0.14);
  border: 1px solid rgba(255, 255, 255, 0.28);
  padding: 9px 18px;
  border-radius: 9999px;
  font-size: 1.3rem;
  font-weight: 600;
  letter-spacing: 0.02em;
}
.champ-cta-block__btn {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  background: #fff;
  color: #194D1F;
  padding: 18px 36px;
  border-radius: 9999px;
  font-weight: 700;
  font-size: 1.6rem;
  text-decoration: none;
  transition: all 0.3s ease;
}
.champ-cta-block__btn:hover {
  background: #E8A23D;
  color: #fff;
  transform: translateY(-2px);
}
@media (max-width: 639px) {
  .champ-cta-block { padding: 40px 24px; }
  .champ-cta-block__title { font-size: 2.2rem; }
}

/* ============================================================
   お知らせ一覧 (.champ-news-listing)  entry_list.php
   ============================================================ */
.champ-news-filter {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
  margin-bottom: 48px;
}
.champ-news-filter__btn {
  border: 1px solid #e0e8e1;
  background: #fff;
  padding: 9px 20px;
  border-radius: 9999px;
  cursor: pointer;
  font-size: 1.4rem;
  font-weight: 600;
  color: #1a2620;
  transition: all 0.2s ease;
  font-family: inherit;
}
.champ-news-filter__btn:hover {
  border-color: #194D1F;
  color: #194D1F;
}
.champ-news-filter__btn.is-active {
  background: #194D1F;
  color: #fff;
  border-color: #194D1F;
}

.champ-news-listing {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.champ-news-listing__item {
  display: grid;
  grid-template-columns: 200px 1fr;
  gap: 24px;
  align-items: center;
  background: #fff;
  border-radius: 16px;
  padding: 20px;
  border: 1px solid #e0e8e1;
  transition: all 0.3s ease;
  text-decoration: none;
  color: #1a2620;
}
@media (max-width: 639px) {
  .champ-news-listing__item { grid-template-columns: 1fr; }
}
.champ-news-listing__item:hover {
  transform: translateY(-2px);
  box-shadow: 0 12px 28px -12px rgba(0, 0, 0, 0.1);
  color: #1a2620;
}
.champ-news-listing__thumb {
  aspect-ratio: 16 / 10;
  border-radius: 10px;
  overflow: hidden;
}
.champ-news-listing__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.champ-news-listing__meta {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 8px;
}
.champ-news-listing__date {
  font-family: 'Montserrat', sans-serif;
  color: #6b7570;
  font-size: 1.3rem;
  letter-spacing: 0.06em;
}
.champ-news-listing__cat {
  background: #E8F0E9;
  color: #194D1F;
  padding: 3px 12px;
  border-radius: 9999px;
  font-size: 1.1rem;
  font-weight: 700;
}
.champ-news-listing__title {
  font-size: 1.6rem;
  font-weight: 700;
  line-height: 1.6;
  color: #1a2620;
}

/* ページネーション */
.champ-pagination {
  display: flex;
  gap: 8px;
  justify-content: center;
  margin-top: 48px;
}
.champ-pagination a,
.champ-pagination span {
  width: 44px;
  height: 44px;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-family: 'Montserrat', sans-serif;
  font-weight: 600;
  font-size: 1.4rem;
  border: 1px solid #e0e8e1;
  color: #1a2620;
  text-decoration: none;
  transition: all 0.2s ease;
}
.champ-pagination a:hover {
  background: #E8F0E9;
  border-color: #194D1F;
}
.champ-pagination .is-current {
  background: #194D1F;
  color: #fff;
  border-color: #194D1F;
}
.champ-pagination .pgn--prev,
.champ-pagination .pgn--next {
  width: auto;
  padding: 0 16px;
  border-radius: 22px;
}

/* ============================================================
   ブログ一覧レイアウト (.champ-blog-layout)  entry_list.php
   ============================================================ */
.champ-blog-layout {
  display: grid;
  grid-template-columns: 1fr 260px;
  gap: 56px;
  align-items: start;
}
.champ-blog-sidebar__widget {
  background: #fff;
  border-radius: 16px;
  border: 1px solid #e0e8e1;
  padding: 24px 20px;
}
.champ-blog-sidebar__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 1.5rem;
  font-weight: 700;
  color: #1a2620;
  padding-bottom: 14px;
  border-bottom: 1px solid #e0e8e1;
  margin-bottom: 16px;
}
.champ-blog-sidebar__title i {
  color: #194d1f;
  font-size: 1.6rem;
}
@media (max-width: 767px) {
  .champ-blog-layout {
    grid-template-columns: 1fr;
  }
  .champ-blog-sidebar {
    order: -1;
  }
}

/* ============================================================
   記事詳細 (.champ-entry-article)
   ============================================================ */
.champ-entry-article {
  max-width: 800px;
  margin: 0 auto;
  background: #fff;
  padding: 56px;
  border-radius: 20px;
  border: 1px solid #e0e8e1;
}
@media (max-width: 639px) {
  .champ-entry-article { padding: 28px 20px; }
}
.champ-entry-article__meta {
  display: flex;
  gap: 12px;
  align-items: center;
  margin-bottom: 20px;
}
.champ-entry-article__date {
  font-family: 'Montserrat', sans-serif;
  color: #6b7570;
  font-size: 1.4rem;
  letter-spacing: 0.06em;
}
.champ-entry-article__cat {
  background: #E8F0E9;
  color: #194D1F;
  padding: 4px 14px;
  border-radius: 9999px;
  font-size: 1.2rem;
  font-weight: 700;
}
.champ-entry-article__title {
  font-size: 2.8rem;
  font-weight: 800;
  line-height: 1.5;
  margin-bottom: 28px;
  color: #1a2620;
}
@media (max-width: 639px) {
  .champ-entry-article__title { font-size: 2.2rem; }
}
.champ-entry-article__hero {
  aspect-ratio: 16 / 9;
  border-radius: 12px;
  overflow: hidden;
  margin-bottom: 36px;
}
.champ-entry-article__hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.champ-entry-article__body h2 {
  font-size: 2.0rem;
  font-weight: 800;
  margin-top: 48px;
  margin-bottom: 16px;
  padding-left: 16px;
  border-left: 4px solid #194D1F;
  line-height: 1.5;
}
.champ-entry-article__body h3 {
  font-size: 1.7rem;
  font-weight: 700;
  margin-top: 32px;
  margin-bottom: 12px;
  color: #194D1F;
}
.champ-entry-article__body p {
  font-size: 1.5rem;
  line-height: 1.95;
  margin-bottom: 18px;
  color: #1a2620;
}
.champ-entry-article__body ul {
  margin: 16px 0 22px;
  padding-left: 0;
  list-style: none;
}
.champ-entry-article__body ul li {
  position: relative;
  padding-left: 24px;
  font-size: 1.5rem;
  line-height: 1.85;
  margin-bottom: 8px;
}
.champ-entry-article__body ul li::before {
  content: '';
  position: absolute;
  left: 0;
  top: 0.7em;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #E8A23D;
}
.champ-entry-nav {
  margin: 48px auto 0;
  display: flex;
  justify-content: center;
}
.champ-entry-nav__back {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background: #194d1f;
  color: #fff;
  padding: 14px 40px;
  border-radius: 9999px;
  font-weight: 700;
  font-size: 1.5rem;
  text-decoration: none;
  transition: all 0.3s ease;
}
.champ-entry-nav__back:hover {
  background: #0f3214;
  color: #fff;
  transform: translateY(-2px);
}

/* 記事詳細カード */
.champ-entry-card {
  background: #fff;
  border-radius: 16px;
  border: 1px solid #e0e8e1;
  border-top: 4px solid #194D1F;
  padding: 40px 48px;
}
@media (max-width: 639px) {
  .champ-entry-card { padding: 24px 20px; }
}
.champ-entry-card__title {
  font-size: 2.0rem;
  font-weight: 800;
  line-height: 1.55;
  color: #1a2620;
  margin-bottom: 20px;
}
.champ-entry-card__sep {
  border: none;
  border-top: 1px solid #e0e8e1;
  margin: 0 0 20px;
}
.champ-entry-card__date {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 1.35rem;
  color: #194d1f;
  margin-bottom: 24px;
  font-family: 'Montserrat', sans-serif;
  letter-spacing: 0.04em;
}
.champ-entry-card__date i {
  font-size: 1.3rem;
}
.champ-entry-card__body {
  font-size: 1.5rem;
  line-height: 1.95;
  color: #1a2620;
}
.champ-entry-card__pager {
  margin-top: 32px;
}

/* ============================================================
   お問い合わせフォームセクション（TOPページ）
   ============================================================ */
.champ-form-wrap {
  max-width: 760px;
  margin: 0 auto;
  background: #fff;
  border-radius: 24px;
  padding: 52px;
  box-shadow: 0 12px 40px -16px rgba(0, 0, 0, 0.1);
}
@media (max-width: 639px) {
  .champ-form-wrap { padding: 28px 20px; }
}
.champ-form-row {
  margin-bottom: 24px;
}
.champ-form-label {
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 1.4rem;
  margin-bottom: 8px;
  color: #1a2620;
}
.champ-form-label .req {
  background: #194D1F;
  color: #fff;
  font-size: 1.0rem;
  padding: 2px 8px;
  border-radius: 4px;
  letter-spacing: 0.06em;
}
.champ-form-wrap input[type="text"],
.champ-form-wrap input[type="email"],
.champ-form-wrap input[type="tel"],
.champ-form-wrap select,
.champ-form-wrap textarea {
  width: 100%;
  padding: 13px 16px;
  border-radius: 8px;
  border: 1.5px solid #d8ddd9;
  background: #fafbfa;
  font-size: 1.5rem;
  font-family: inherit;
  transition: all 0.2s ease;
}
.champ-form-wrap input:focus,
.champ-form-wrap select:focus,
.champ-form-wrap textarea:focus {
  outline: none;
  border-color: #194D1F;
  background: #fff;
  box-shadow: 0 0 0 3px rgba(25, 77, 31, 0.1);
}
.champ-form-wrap textarea {
  min-height: 150px;
  resize: vertical;
}
.champ-form-submit {
  display: block;
  width: 100%;
  max-width: 300px;
  margin: 32px auto 0;
  padding: 17px;
  background: #194D1F;
  color: #fff;
  border: none;
  border-radius: 9999px;
  font-size: 1.6rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  cursor: pointer;
  transition: all 0.3s ease;
}
.champ-form-submit:hover {
  background: #0f3214;
  transform: translateY(-2px);
  box-shadow: 0 16px 32px -12px rgba(25, 77, 31, 0.4);
}

/* ============================================================
   ページ内補助：section背景交互
   ============================================================ */
.section--pale {
  background: #E8F0E9;
}
.section--warm {
  background: #FAF7F0;
}

/* ============================================================
   ページトップボタン追加スタイル
   ============================================================ */
.page-top {
  position: fixed;
  bottom: 40px;
  right: 32px;
  z-index: 50;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.page-top.is-visible {
  opacity: 1;
  pointer-events: auto;
}
.page-top__link {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 52px;
  height: 52px;
  background: #194D1F;
  color: #fff;
  border-radius: 50%;
  text-decoration: none;
  font-size: 2.0rem;
  transition: all 0.3s ease;
  box-shadow: 0 6px 20px rgba(25, 77, 31, 0.35);
}
.page-top__link:hover {
  background: #0f3214;
  transform: translateY(-3px);
  color: #fff;
}
@media (max-width: 639px) {
  .page-top { bottom: 24px; right: 20px; }
}
