/* ===================================================================
   冬期講習LP（page-winter.php）
   夏期講習（page-summer.css）と同じ書き方。
   ほかのページへ影響しないよう、本文の指定は .tpl-winter の下に書く。
   =================================================================== */

/* ===================================================================
   CSS Custom Properties（カラー・フォント・余白）
   =================================================================== */
.tpl-winter {
  /* --- カラーパレット --- */
  --color-primary: #004C26;        /* メイン：ダークグリーン（見出し・テキスト） */
  --color-red: #E6204D;            /* 赤（無料体験ボタン） */
  --color-orange: #ED6C00;         /* オレンジ（資料請求ボタン・MV下の帯） */

  --color-text: #3E3A39;           /* 本文テキスト */
  --color-white: #FFFFFF;

  /* --- フォントサイズ（SPベース） --- */
  --fs-body: 16px;
  --fs-small: 14px;

  /* --- 余白 --- */
  --space-section: 40px;           /* セクション内パディング（SP） */
  --space-gutter: 16px;            /* 左右ガター（SP） */

  /* --- フォント --- */
  --font-base: 'Noto Sans JP', sans-serif;
}

/* PC版で上書きするサイズ */
@media (min-width: 768px) {
  .tpl-winter {
    --fs-body: 22px;
    --fs-small: 16px;
    --space-section: 80px;
    --space-gutter: 48px;
  }
}

/* pa無効化 */
.pa-area-kansai #body_wrap,
.pa-area-kanto #body_wrap,
div#body_wrap{
  background-color:transparent!important;
}
.l-container{
  max-width: none!important;
  padding-left: 0!important;
  padding-right: 0!important;
}
/* ヘッダー内の l-container を元の状態に戻す */
#header .l-container {
  max-width: revert !important;
  padding-left: revert !important;
  padding-right: revert !important;
}
/* box-sizing もヘッダーだけ除外（念のため） */
#header *,
#header *::before,
#header *::after {
  box-sizing: revert;
}
.l-sidebar{
  display: none!important;
}

/* ===================================================================
   リセット & ベース
   =================================================================== */
.tpl-winter *,
.tpl-winter *::before,
.tpl-winter *::after { box-sizing: border-box; }

/* ページ全体のラッパー（中央寄せ） */
.tpl-winter {
  width: 100%;
  margin: 0 auto;
  font-family: var(--font-base);
  font-weight: 400;
  color: var(--color-text);
  line-height: 1.7;
}
.tpl-winter h2,
.tpl-winter h3,
.tpl-winter h4,
.tpl-winter p { margin: 0; }

/* 中身を最大幅に制限 */
.tpl-winter .inner {
  max-width: 1170px;
  margin: 0 auto;
  padding: 0 20px; /* 端のスペースも確保 */
}

/* h1対応 */
.tpl-winter .visually-hidden {
  position: absolute;
  width: 1px; height: 1px;
  margin: -1px; padding: 0;
  overflow: hidden;
  clip: rect(0,0,0,0);
  white-space: nowrap;
  border: 0;
}

/* PC・SPの出し分け */
@media (min-width: 768px) {
  .tpl-winter .pc-only { display: block; }
  .tpl-winter .sp-only { display: none; }
}
@media (max-width: 767px) {
  .tpl-winter .pc-only { display: none; }
  .tpl-winter .sp-only { display: block; }
}

/* ===================================================================
   mv：メインビジュアル
   SP：1320×1050 の画像を幅いっぱいに表示
   PC：1866×420 の画像を高さ固定で中央配置し、左右をはみ出させる
       （1536px画面で左右165pxずつ切れる。文字・人物は中央1366px内）
   =================================================================== */
.tpl-winter .mv {
  width: 100%;
}
.tpl-winter .mv-img {
  display: block;
  width: 100%;
  height: auto;
  margin: 0 auto;
}
.tpl-winter .mv-underbar {
  background-color: var(--color-orange);
  padding: 6.5px 0; /* Figma：帯の高さ55px＝画像42px＋上下 */
}
.tpl-winter .mv-underbar img {
  display: block;
  width: 100%;
  max-width: 784px;
  height: auto;
  margin: 0 auto;
}
@media (min-width: 768px) {
  .tpl-winter .mv-img-wrap {
    width: 100%;
    height: clamp(300px, 27.35vw, 420px);
    overflow: hidden;
    position: relative;
  }
  .tpl-winter .mv-img {
    position: absolute;
    left: 50%;
    transform: translateX(-50%);
    height: 100%;
    width: auto;
    max-width: none;
  }
}

/* ===================================================================
   campagne-banner：キャンペーンバナー（冬期専用の画像を直接表示）
   =================================================================== */
.tpl-winter .campagne-banner {
  width: 100%;
  line-height: 0;
  padding-top: 18px;
}
.tpl-winter .campagne-banner img {
  width: 100%;
  height: auto;
  display: block;
}
@media (min-width: 768px) {
  .tpl-winter .campagne-banner {
    padding-top: 40px; /* Figma：CTAの下40px */
  }
}

/* ===================================================================
   ページ内ジャンプメニュー（夏期と同じ）
   =================================================================== */
.tpl-winter .winter-anchor-nav {
  margin-top: 40px;
  margin-bottom: 32px;
}
.tpl-winter .bp-school-anchor-nav__grid {
  display: grid;
  row-gap: 12px;
  column-gap: 8px;
  text-align: center;
}
.tpl-winter .bp-school-anchor-nav__grid.has-6-items {
  grid-template-columns: repeat(3, 1fr);
}
.tpl-winter .bp-school-anchor-nav__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  height: 100%;
  padding: 10px 2px 8px;
  background-color: #F0F8F5;
  border: 2px solid #004D26;
  border-radius: 6px;
  text-decoration: none !important;
  transition: all 0.3s ease;
  box-sizing: border-box;
  min-width: 0;
}
.tpl-winter .bp-school-anchor-nav__item:hover {
  opacity: 0.7;
  background-color: #E8F3EF;
}
.tpl-winter .bp-school-anchor-nav__icon {
  width: 100%;
  height: clamp(30px, 8vw, 44px);
  margin-bottom: 14px;
  object-fit: contain;
  flex-shrink: 0;
}
.tpl-winter .bp-school-anchor-nav__text {
  font-weight: 600;
  color: #004D26;
  line-height: 1.3;
  word-break: auto-phrase;
  font-size: clamp(11px, 3.1vw, 16px);
}
.tpl-winter .bp-school-anchor-nav__item::after {
  content: "";
  width: 10px;
  height: 10px;
  border-right: 2px solid #004D26;
  border-bottom: 2px solid #004D26;
  transform: rotate(45deg) skew(10deg, 10deg);
  margin-top: 4px;
  align-self: center;
}
@media (min-width: 768px) {
  .tpl-winter .winter-anchor-nav {
    margin-bottom: 40px;
  }
  .tpl-winter .bp-school-anchor-nav__grid {
    column-gap: 18px;
    row-gap: 18px;
  }
  .tpl-winter .bp-school-anchor-nav__item {
    flex-direction: row;
    justify-content: flex-start;
    padding: 16px 10px 16px 22px;
    text-align: left;
  }
  .tpl-winter .bp-school-anchor-nav__icon {
    width: 40px;
    height: 40px;
    margin-bottom: 0;
    margin-right: 16px;
  }
  .tpl-winter .bp-school-anchor-nav__text {
    font-size: clamp(16px, 2vw, 21px);
    white-space: nowrap;
  }
  .tpl-winter .bp-school-anchor-nav__item::after {
    margin-top: 0;
    margin-bottom: 0;
    margin-left: auto;
    width: 11px;
    height: 11px;
  }
}
/* 詳細の見出し「★冬だけの3大特典★」：「だけの」「大特典」を小さくして「冬」「3」を立たせる */
.tpl-winter .campaign-detail-accordion__lead-small {
  font-size: 0.85em;
}

/* ===================================================================
   section-recommended-banner：こんな人にピッタリ
   夏期と同じ組み方。色・文字の大きさ・下の一言（recommended__note）はFigmaの冬期版に合わせる
   =================================================================== */
.tpl-winter .recommended {
  padding: 40px 0;
}
.tpl-winter .recommended__box {
  position: relative;
  background: #FF8A28;             /* Figma SP：明るいオレンジ */
  border-radius: 16px;
  width: 100%;
  padding: 30px 16px 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.tpl-winter .recommended__tag-title {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%) translateY(-50%);
  white-space: nowrap;
  background: #FFD700;
  color: var(--color-primary);
  font-size: 16px;
  font-weight: 700;
  line-height: normal;
  border-radius: 50px;
  padding: 5px 28px;
}
.tpl-winter .recommended__illust {
  width: 100px;
  height: auto;
}
.tpl-winter .recommended__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
}
.tpl-winter .recommended__list li {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  width: fit-content;
  background: var(--color-white);
  color: var(--color-primary);
  font-size: 13px;
  font-weight: 500;
  line-height: normal;
  border-radius: 3px;
  padding: 3px 8px;
  white-space: nowrap;
}
/* SPだけ先頭にチェックアイコン */
.tpl-winter .recommended__list li::before {
  content: "";
  flex-shrink: 0;
  width: 15px;
  height: 15px;
  background: url("../images/winter/check_circle.svg") no-repeat center / contain;
}
.tpl-winter .recommended__list strong {
  font-weight: 700;
}
.tpl-winter .recommended__note {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;
  margin-top: 20px;
  color: #3F3735;
  font-size: 14px;
  line-height: 1.4;
}
.tpl-winter .recommended__note-icon {
  flex-shrink: 0;
  width: 34px;
  height: 34px;
}

@media (min-width: 768px) {
  .tpl-winter .recommended {
    padding: 80px 0;
  }
  .tpl-winter .recommended__box {
    background: var(--color-orange);  /* Figma PC：#ED6C00 */
    border-radius: 14px;
    flex-direction: row;
    padding: 50px 40px 28px 163px; /* 左：イラスト12＋124＋すき間27 */
  }
  .tpl-winter .recommended__tag-title {
    font-size: 30px;
    padding: 10px 40px;
  }
  /* Figma：イラストは箱の高さに関係させず、左上に固定 */
  .tpl-winter .recommended__illust {
    position: absolute;
    left: 12px;
    top: 17px;
    width: 124px;
  }
  .tpl-winter .recommended__list {
    flex-direction: row;
    flex-wrap: wrap;
    gap: 12px;
    flex: 1;
    min-width: 0;
  }
  .tpl-winter .recommended__list li {
    font-size: 18px;
    border-radius: 8px;
    padding: 10px 12px;
  }
  .tpl-winter .recommended__list li::before {
    content: none;
  }
  .tpl-winter .recommended__note {
    font-size: 22px;
  }
}

/* ===================================================================
   section-results：成績アップ事例
   夏期と同じ組み方。色はFigmaの冬期版（帯オレンジ・背景クリーム・受講回数の帯は茶色）
   =================================================================== */
.tpl-winter .results__band {
  position: relative;
  background: var(--color-orange);
  text-align: center;
  padding: 18px 0;
}
/* 帯の下の三角 */
.tpl-winter .results__band::after {
  content: '';
  position: absolute;
  bottom: 1px;
  left: 50%;
  transform: translate(-50%, 100%);
  width: 0;
  height: 0;
  border-left: clamp(20px, 5vw, 40px) solid transparent;
  border-right: clamp(20px, 5vw, 40px) solid transparent;
  border-top: clamp(15px, 3vw, 43px) solid var(--color-orange);
  z-index: 1;
}
.tpl-winter .results__band h2 {
  display: flex;
  flex-direction: column;
  color: var(--color-white);
  font-weight: 700;
  line-height: 1.3;
}
.tpl-winter .results__band-sub  { font-size: 24px; white-space: nowrap; }
.tpl-winter .results__band-main { font-size: clamp(18px, 7.4vw, 28px); color: #FFF53C; white-space: nowrap; }

.tpl-winter .results__body {
  background: #FFF3DA;
  padding: 40px 0 32px;
}
.tpl-winter .results__body .inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}
.tpl-winter .results__catch {
  font-size: clamp(16px, 5.3vw, 20px);
  font-weight: 700;
  color: var(--color-primary);
  white-space: nowrap;
}
.tpl-winter .results__note {
  font-size: 10px;
  font-weight: 500;
  color: var(--color-primary);
  text-align: center;
}
.tpl-winter .results__cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  width: 100%;
}

/* --- 成績UPカード --- */
.tpl-winter .result-card {
  background: var(--color-white);
  filter: drop-shadow(0 2px 1px rgba(0,0,0,0.08));
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 16px;
  padding: 12px 4px;
  width: 100%;
  line-height: normal;
}
.tpl-winter .result-card__head {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.tpl-winter .result-card .name {
  font-size: 12px;
  color: var(--color-primary);
  text-align: center;
}
.tpl-winter .result-card .badge {
  background: #AC6411;
  color: var(--color-white);
  font-size: clamp(12px, 4vw, 15px);
  font-weight: 600;
  width: 9.8em;            /* 文字数に関係なく帯の長さを揃える（「冬期講習28回受講」が収まる幅） */
  padding: 6px 0;
  text-align: center;
  white-space: nowrap;
}
.tpl-winter .result-card__score {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 5px;
}
.tpl-winter .result-card__score > *:not(.result-card__arrow) {
  position: relative;
  z-index: 1;
}
/* 黄色の矢印：数字の右上に重ねる */
.tpl-winter .result-card__arrow {
  position: absolute;
  right: 4px;
  top: -2px;
  width: 58px;
  height: auto;
  z-index: 0;
}
.tpl-winter .result-card .lead {
  font-size: clamp(11px, 3.5vw, 13px);
  font-weight: 600;
  color: var(--color-red);
  text-align: center;
  white-space: nowrap;
}
.tpl-winter .result-card .score {
  font-weight: 700;
  color: var(--color-red);
  line-height: 1;
  white-space: nowrap;
}
.tpl-winter .result-card .score .num  { font-size: clamp(32px, 10.7vw, 40px); }
.tpl-winter .result-card .score .unit { font-size: clamp(22px, 7.5vw, 28px); }
.tpl-winter .result-card .detail {
  font-size: 12px;
  color: var(--color-primary);
  text-align: center;
  white-space: nowrap;
}
.tpl-winter .result-card .detail .subject {
  font-weight: 700;
  color: var(--color-red);
}

/* --- もっと見る／閉じる（SPのみ）。教室ページの成績アップ事例と同じ見た目と動き --- */
.tpl-winter .results__more-area {
  text-align: center;
}
.tpl-winter .results__more {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  padding: 6px 16px;
  background: transparent;
  border: 0;
  color: var(--color-primary);
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  cursor: pointer;
}
.tpl-winter .results__more-icon {
  flex-shrink: 0;
  color: var(--color-primary);
  transition: transform 0.3s ease;
}
/* 開いている間はアイコンを上向きに */
.tpl-winter .results__cards.is-open ~ .results__more-area .results__more-icon {
  transform: rotate(180deg);
}
@media (hover: hover) {
  .tpl-winter .results__more:hover { opacity: 0.7; }
}
@media (max-width: 767px) {
  /* 高さの伸び縮みで開閉する（max-height はJSが付ける） */
  .tpl-winter .results__cards {
    overflow: hidden;
    padding-bottom: 3px; /* カードの影が切れないように */
    transition: max-height 0.6s cubic-bezier(0.4, 0, 0.2, 1);
  }
  .tpl-winter .result-card--more { display: none; }
}

@media (min-width: 768px) {
  .tpl-winter .results__band-sub  { font-size: 45px; }
  .tpl-winter .results__band-main { font-size: 50px; }
  .tpl-winter .results__body {
    padding: 80px 0;
  }
  .tpl-winter .results__body .inner {
    gap: 32px;
  }
  .tpl-winter .results__catch { font-size: 40px; }
  .tpl-winter .results__note  { font-size: 22px; }
  /* 3枚×2段。カード幅はFigmaの308px */
  .tpl-winter .results__cards {
    grid-template-columns: repeat(3, 308px);
    justify-content: center;
    gap: 24px;
  }
  .tpl-winter .result-card {
    padding: 20px 24px;
  }
  .tpl-winter .result-card .name  { font-size: 16px; }
  .tpl-winter .result-card .badge { font-size: 22px; width: 10.2em; padding: 10px 0; }
  .tpl-winter .result-card__score { gap: 8px; }
  .tpl-winter .result-card__arrow { right: 2px; top: -6px; width: 86px; }
  .tpl-winter .result-card .lead  { font-size: 18px; }
  .tpl-winter .result-card .score .num  { font-size: 60px; }
  .tpl-winter .result-card .score .unit { font-size: 40px; }
  .tpl-winter .result-card .detail { font-size: 16px; }
  .tpl-winter .results__more-area { display: none; }
}

/* ===================================================================
   section-heading：セクション見出し（共通）
   SP：3段（個別指導キャンパス／オレンジ帯の「冬期講習」／4つのポイント）
   PC：2行（個別指導キャンパスの冬期講習／4つのポイント）
   =================================================================== */
.tpl-winter .section-heading {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  padding: 16px 0;
  text-align: center;
}
.tpl-winter .section-heading h2 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
  color: var(--color-primary);
  font-weight: 800;
  line-height: normal;
}
.tpl-winter .section-heading__sub  { font-size: 20px; }
.tpl-winter .section-heading__no   { display: none; }
.tpl-winter .section-heading__em   { font-size: 36px; color: var(--color-white); background: var(--color-orange); padding: 0 4px; }
.tpl-winter .section-heading__main { font-size: 36px; }
/* 下線 */
.tpl-winter .section-heading::after {
  content: "";
  display: block;
  width: 64px;
  height: 4px;
  background: #FFD700;
}
@media (min-width: 768px) {
  .tpl-winter .section-heading {
    gap: 26px;
    padding: 60px 0 32px;
  }
  .tpl-winter .section-heading h2 {
    display: block;
    font-size: 50px;
  }
  .tpl-winter .section-heading__sub,
  .tpl-winter .section-heading__no,
  .tpl-winter .section-heading__em { display: inline; font-size: inherit; }
  .tpl-winter .section-heading__em { color: inherit; background: none; padding: 0; }
  .tpl-winter .section-heading__main { display: block; font-size: inherit; }
  .tpl-winter .section-heading::after {
    width: 116px;
    height: 8px;
  }
}

/* ===================================================================
   section-points：4つのポイント
   4つとも同じ型。SPは縦積み、PCは左右2列（グリッドで並べ替え）
   =================================================================== */
.tpl-winter .points {
  padding: 24px 20px 40px;
}
.tpl-winter .points__lead {
  margin-top: 4px;
  font-size: 14px;
  line-height: 1.4;
  color: #251E1C;
  text-align: center;
}
.tpl-winter .points__list {
  display: flex;
  flex-direction: column;
  gap: 20px;
  max-width: 1170px;
  margin: 20px auto 0;
}

/* --- ポイントのカード（共通の型） --- */
.tpl-winter .point-card {
  border-radius: 20px;
  filter: drop-shadow(2px 4px 7.5px rgba(255, 242, 242, 0.25));
}
/* 見出し帯 */
.tpl-winter .point-card__title {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 70px;
  padding: 4px 14px;
  border-radius: 20px 20px 0 0;
  background: linear-gradient(to right, #ED6C00, #FFA425);
  overflow: hidden;
}
.tpl-winter .point-card__badge { display: none; }   /* PCだけ */
/* SP：透かしの大きな番号 */
.tpl-winter .point-card__num {
  position: absolute;
  left: 56px;
  top: 7px;
  transform: translateX(-50%);
  font-family: Inter, var(--font-base);
  font-size: 73px;
  font-weight: 900;
  line-height: 1;
  color: transparent;
  -webkit-text-stroke: 1px rgba(255, 255, 255, 0.3);
}
.tpl-winter .point-card__name {
  position: relative;
  font-size: 22px;
  font-weight: 900;
  line-height: 1.2;
  color: var(--color-white);
  text-align: center;
}
/* 本文：SPは 写真→キャッチ→本文→図 の縦積み */
.tpl-winter .point-card__body {
  display: grid;
  grid-template-areas:
    "photo"
    "head"
    "desc"
    "visual";
  row-gap: 20px;
  padding-bottom: 40px;
  border-radius: 0 0 20px 20px;
  background: #FEF6F2;
}
.tpl-winter .point-card__head   { grid-area: head; display: flex; gap: 20px; padding: 0 20px; }
.tpl-winter .point-card__desc   { grid-area: desc; padding: 0 20px; }
.tpl-winter .point-card__photo  { grid-area: photo; margin-bottom: -4px; }
.tpl-winter .point-card__visual { grid-area: visual; padding: 10px 20px 0; }

.tpl-winter .point-card__index { display: none; }   /* PCだけ */
.tpl-winter .point-card__catch-2 { display: block; } /* 2行目は必ず改行（Figmaどおり） */
.tpl-winter .point-card__catch {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.4;
  color: #004D26;
}
.tpl-winter .point-card__desc {
  font-size: 14px;
  line-height: 1.6;
  color: #4A3530;
}
.tpl-winter .point-card__desc strong {
  font-weight: 900;
  color: var(--color-orange);
}
.tpl-winter .point-card__photo {
  height: 180px;
  overflow: hidden;
  background: #737373;
}
.tpl-winter .point-card__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.tpl-winter .point-card__photo--01 img { object-position: 60% 5%; }

/* --- 図：さかのぼり学習の例 --- */
.tpl-winter .sakanobori {
  width: 271px;
  max-width: 100%;
  color: var(--color-primary);
}
.tpl-winter .sakanobori__title {
  padding: 0 8px;
  border-bottom: 1px solid var(--color-primary);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}
.tpl-winter .sakanobori__flow {
  list-style: none;
  margin: 12px 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.tpl-winter .sakanobori__row {
  display: grid;
  grid-template-columns: 23px 1fr;
  column-gap: 8px;
  align-items: center;
}
/* 行と行のあいだの下向き三角（箱の真ん中の下） */
.tpl-winter .sakanobori__row:not(:last-child)::after {
  content: "";
  grid-column: 2;
  justify-self: center;
  margin-top: 8px;
  width: 0;
  height: 0;
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 10px solid var(--color-primary);
}
.tpl-winter .sakanobori__grade {
  font-size: 10px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}
.tpl-winter .sakanobori__sparkle {
  width: 14px;
  height: auto;
  justify-self: center;
}
.tpl-winter .sakanobori__label {
  padding: 4px 20px;
  border-radius: 8px 8px 0 0;
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.4;
  text-align: center;
}
.tpl-winter .sakanobori__unit {
  padding: 4px 20px;
  border: 1px solid var(--color-primary);
  border-radius: 0 0 8px 8px;
  background: var(--color-white);
  font-size: 10px;
  font-weight: 500;
  line-height: 1.4;
  text-align: center;
}
.tpl-winter .sakanobori__goal {
  padding: 4px 20px;
  border-radius: 8px;
  background: var(--color-primary);
  color: var(--color-white);
  font-size: 13px;
  font-weight: 900;
  line-height: 1.4;
  text-align: center;
}

@media (min-width: 768px) {
  .tpl-winter .points {
    padding: 20px 0 80px;
  }
  .tpl-winter .points__lead { display: none; }   /* PCのFigmaには無い */
  .tpl-winter .points__list {
    gap: 50px;
    margin-top: 50px;
    padding: 0 20px;
  }
  /* 見出し帯：左にPOINTバッジ */
  .tpl-winter .point-card__title {
    justify-content: flex-start;
    height: 110px;
    padding: 4px 70px 4px 210px;
    overflow: visible;
  }
  .tpl-winter .point-card__badge {
    display: block;
    position: absolute;
    left: 58px;
    top: -36px;
    width: 134px;
    height: auto;
  }
  .tpl-winter .point-card__num { display: none; }
  .tpl-winter .point-card__name {
    font-size: clamp(28px, 4vw, 60px);
    text-align: left;
    white-space: nowrap;
  }
  /* 本文：左の列（キャッチ・本文・写真）と右の列（図） */
  .tpl-winter .point-card__body {
    grid-template-columns: minmax(0, 550px) minmax(0, 445px);
    grid-template-rows: auto auto 1fr;
    grid-template-areas:
      "head  visual"
      "desc  visual"
      "photo visual";
    justify-content: space-between;
    column-gap: 45px;
    row-gap: 40px;
    padding: 60px 40px 80px 50px; /* Figmaは左70・右60。中身の枠が1130pxなので詰めて左の列を550pxにする */
  }
  .tpl-winter .point-card__head,
  .tpl-winter .point-card__desc,
  .tpl-winter .point-card__visual { padding: 0; }
  .tpl-winter .point-card__head { padding-top: 4px; }
  .tpl-winter .point-card__index {
    display: block;
    flex-shrink: 0;
    padding-right: 8px;
    border-right: 1px solid var(--color-orange);
    color: var(--color-orange);
    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;
  }
  .tpl-winter .point-card__catch { font-weight: 900; }
  .tpl-winter .point-card__catch-1 { display: block; font-size: 32px; }
  .tpl-winter .point-card__catch-big { font-size: 40px; }
  .tpl-winter .point-card__catch-comma { display: none; }
  .tpl-winter .point-card__catch-2 {
    display: inline-block;
    font-size: 40px;
    background: #FFF600;
  }
  .tpl-winter .point-card__desc { font-size: 24px; }
  .tpl-winter .point-card__photo {
    align-self: end;
    height: auto;
    aspect-ratio: 429 / 132;
    margin: 0;
    border-radius: 20px;
    background: none;
  }
  .tpl-winter .point-card__photo--01 img { object-position: 50% 34%; }
  /* 図は白いカードに入れる */
  .tpl-winter .point-card__visual {
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 32px 32px 40px;
    border-radius: 9px;
    background: var(--color-white);
    box-shadow: 0 4px 4px rgba(246, 195, 195, 0.25);
  }
  .tpl-winter .sakanobori { width: 100%; max-width: 360px; }
  .tpl-winter .sakanobori__title { font-size: 18px; }
  .tpl-winter .sakanobori__flow { gap: 12px; margin-top: 20px; }
  .tpl-winter .sakanobori__row { grid-template-columns: 34px 1fr; column-gap: 12px; }
  .tpl-winter .sakanobori__row:not(:last-child)::after {
    margin-top: 12px;
    border-left-width: 9px;
    border-right-width: 9px;
    border-top-width: 14px;
  }
  .tpl-winter .sakanobori__grade { font-size: 14px; }
  .tpl-winter .sakanobori__sparkle { width: 20px; }
  .tpl-winter .sakanobori__label,
  .tpl-winter .sakanobori__goal { font-size: 18px; padding: 6px 16px; }
  .tpl-winter .sakanobori__unit { font-size: 15px; padding: 6px 16px; }
}

/* --- ポイント2：写真はSPだけ・キャッチの中くらいの文字 --- */
.tpl-winter .point-card__photo--02 img { object-position: 57% 18%; }
@media (min-width: 768px) {
  .tpl-winter .point-card__photo--sp-only { display: none; }
  .tpl-winter .point-card__catch-mid { font-size: 36px; }
}

/* --- 図：目標別の学習プラン例（イラスト＋単元タグ） --- */
.tpl-winter .plan-example {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 7px;
  width: 100%;
}
.tpl-winter .plan-example__people {
  display: flex;
  gap: 30px;
  width: 100%;
  padding: 0 10px;
}
.tpl-winter .plan-example__person {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 5px;
}
.tpl-winter .plan-example__person img {
  display: block;
  width: 100%;
  height: auto;
}
.tpl-winter .plan-example__main,
.tpl-winter .plan-example__sub {
  padding: 3px 0;
  border-radius: 6px;
  background: var(--color-orange);
  color: var(--color-white);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
  white-space: nowrap;
}
.tpl-winter .plan-example__subs {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  gap: 8px;
}
.tpl-winter .plan-example__sub {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 12px;
}
.tpl-winter .plan-example__sub--light {
  background: #FF9C31;
  font-size: 14px;
}
.tpl-winter .plan-example__caption {
  color: var(--color-orange);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.6;
  white-space: nowrap;
}
@media (min-width: 768px) {
  .tpl-winter .plan-example {
    gap: 10px;
    max-width: 385px;
  }
  .tpl-winter .plan-example__caption { font-size: clamp(18px, 1.8vw, 24px); }
}

/* --- ポイント3：写真の位置・キャッチ・図を白いカードに入れない --- */
.tpl-winter .point-card__photo--03 img { object-position: 68% 26%; }
@media (min-width: 768px) {
  .tpl-winter .point-card__catch-1--big { font-size: 40px; }
  .tpl-winter .point-card__visual--plain {
    align-items: flex-start;
    padding: 0;
    background: none;
    box-shadow: none;
    filter: drop-shadow(0 4px 2px rgba(246, 195, 195, 0.25));
  }
}

/* --- 図：オーダーメイドカリキュラムの例（数学・英語の表） --- */
.tpl-winter .curriculum-example {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  width: 100%;
}
.tpl-winter .curriculum-example__title {
  color: var(--color-orange);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.6;
  text-align: center;
}
.tpl-winter .curriculum-example__sub {
  display: block;
}
.tpl-winter .curriculum-example__imgs {
  display: flex;
  gap: 8px;
  width: 285px;
  max-width: 100%;
}
.tpl-winter .curriculum-example__imgs img {
  flex: 1 1 0;
  min-width: 0;
  width: 100%;
  height: auto;
}
@media (min-width: 768px) {
  .tpl-winter .curriculum-example__title { font-size: 18px; }
  .tpl-winter .curriculum-example__sub { font-size: 13px; }
  .tpl-winter .curriculum-example__imgs { width: 100%; }
}

/* --- ポイント4：写真がPCでは右の列に入る・キャッチの黄色帯が1行目 --- */
.tpl-winter .point-card__photo--04 img { object-position: 55% 73%; }
@media (min-width: 768px) {
  .tpl-winter .point-card__catch-1--hl {
    display: block;
    font-size: 40px;
    background: #FFF600;
  }
  .tpl-winter .point-card__catch-2--plain { background: none; }
  .tpl-winter .point-card__photo--as-visual {
    grid-area: visual;
    align-self: start;
    aspect-ratio: auto;
    height: 384px;
    border-radius: 18px;
  }
  .tpl-winter .point-card__photo--04 img { object-position: 69% 83%; }
}

/* ===================================================================
   cta-banner--message：2つのボタンの上にメッセージを1つだけ置くCTA
   ボタンの見た目は共通の cta-banner.css のまま
   =================================================================== */
.tpl-winter .cta-message {
  margin: 0 auto 10px;
  padding: 0 20px;
  color: var(--color-text);
  font-size: clamp(14px, 4.2vw, 16px);
  font-weight: 700;
  line-height: 1.5;
  text-align: center;
}
@media (min-width: 768px) {
  .tpl-winter .cta-message {
    margin-bottom: 16px;
    font-size: 24px;
  }
}

/* ===================================================================
   section-heading--simple：1つの文だけの見出し（日程など）
   =================================================================== */
.tpl-winter .section-heading--simple { gap: 16px; padding: 40px 0 18px; }
.tpl-winter .section-heading--simple h2 {
  display: block;
  font-size: clamp(26px, 8.5vw, 32px);
  line-height: normal;
}
@media (min-width: 768px) {
  .tpl-winter .section-heading--simple { gap: 26px; padding: 12px 0 32px; }
  .tpl-winter .section-heading--simple h2 { font-size: 50px; }
}

/* ===================================================================
   schedule：冬期講習の日程・スケジュール
   =================================================================== */
.tpl-winter .schedule {
  background: #FFEBDA;
  padding: 0 0 20px;
}
.tpl-winter .schedule .inner { padding: 0 32px; }
.tpl-winter .schedule__main {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
/* SPの小見出し（オレンジの短い下線つき） */
.tpl-winter .schedule__h {
  color: var(--color-text);
  font-size: 18px;
  font-weight: 700;
  line-height: 40px;
}
.tpl-winter .schedule__h::after {
  content: "";
  display: block;
  width: 32px;
  height: 2px;
  margin-top: 4px;
  background: var(--color-orange);
}
.tpl-winter .schedule__logo { display: none; }   /* PCだけ */
.tpl-winter .schedule__date-block {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.tpl-winter .schedule__date {
  padding-bottom: 12px;
  color: var(--color-orange);
  font-family: Inter, var(--font-base);
  font-weight: 700;
  line-height: 40px;
  text-align: center;
  white-space: nowrap;
}
.tpl-winter .schedule__date .lg { font-size: clamp(28px, 10vw, 40px); }
.tpl-winter .schedule__date .sm { font-size: clamp(16px, 6vw, 24px); }
/* 特長2つ（オレンジのグラデーションの角丸） */
.tpl-winter .schedule__badges {
  list-style: none;
  margin: 0 -5px;
  padding: 0;
  display: flex;
  gap: 6px;
}
.tpl-winter .schedule__badges li {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding: 12px 8px;
  border-radius: 20px;
  background: linear-gradient(to right, #ED6C00, #FFA425);
  color: var(--color-white);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
  text-align: center;
}
.tpl-winter .schedule__badges img { width: 24px; height: 24px; }

/* 時間割 */
.tpl-winter .schedule__timetable {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.tpl-winter .schedule__table-area {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0;
}
.tpl-winter .schedule__table {
  flex-shrink: 0;
  border-collapse: collapse;
  margin: 0;
  font-family: Inter, var(--font-base);
  font-weight: 500;
  line-height: 19.7px;
}
.tpl-winter .schedule__table th,
.tpl-winter .schedule__table td {
  padding: 5px;
  border: 1px solid var(--color-orange);
  text-align: center;
  white-space: nowrap;
}
.tpl-winter .schedule__table th {
  width: 46px;
  background: #FF8A28;
  color: var(--color-white);
  font-size: 11px;
  font-weight: 500;
}
.tpl-winter .schedule__table td {
  width: 120px;
  background: var(--color-white);
  color: var(--color-orange);
  font-size: 11.8px;
}
.tpl-winter .schedule__note {
  width: 147px;
  padding: 0 8px;
}
.tpl-winter .schedule__note-label {
  border-bottom: 1px solid var(--color-orange);
  color: var(--color-orange);
  font-size: 11px;
  font-weight: 900;
  line-height: 1.75;
}
.tpl-winter .schedule__note-text {
  margin-top: 8px;
  color: var(--color-text);
  font-size: 12px;
  line-height: 1.75;
}

@media (min-width: 768px) {
  .tpl-winter .schedule {
    padding: 48px 0;
  }
  .tpl-winter .schedule .inner { padding: 0 20px; }
  .tpl-winter .schedule__main {
    flex-direction: row;
    justify-content: space-between;
    gap: clamp(24px, 4vw, 75px);
  }
  /* 左：ロゴ・日程・特長 */
  .tpl-winter .schedule__date-block {
    flex: 0 1 568px;
    min-width: 0;
    gap: 30px;
    padding-top: 30px;
  }
  .tpl-winter .schedule__date-block .schedule__h { /* PCはロゴがあるので画面には出さない */
    position: absolute;
    width: 1px; height: 1px;
    margin: -1px; padding: 0;
    overflow: hidden;
    clip: rect(0,0,0,0);
    white-space: nowrap;
  }
  .tpl-winter .schedule__logo {
    display: block;
    width: 100%;
    height: auto;
    margin-bottom: -10px;
  }
  .tpl-winter .schedule__date { padding-bottom: 0; line-height: 1; }
  .tpl-winter .schedule__date .lg { font-size: clamp(44px, 4.4vw, 67px); }
  .tpl-winter .schedule__date .sm { font-size: clamp(26px, 2.6vw, 40px); }
  .tpl-winter .schedule__badges { margin: 0; }
  .tpl-winter .schedule__badges li { font-size: clamp(15px, 1.3vw, 20px); }
  /* 右：時間割 */
  .tpl-winter .schedule__timetable {
    flex: 0 1 527px;
    min-width: 0;
    gap: 12px;
  }
  .tpl-winter .schedule__h--timetable {
    font-size: 18px;
    line-height: 1.7;
    text-align: center;
  }
  .tpl-winter .schedule__h--timetable::after { display: none; }
  .tpl-winter .schedule__table-area {
    flex-direction: column;
    align-items: stretch;
  }
  .tpl-winter .schedule__table { width: 100%; }
  .tpl-winter .schedule__table th,
  .tpl-winter .schedule__table td {
    height: 60px;
    padding: 12px 10px;
    font-size: 24px;
    line-height: normal;
  }
  .tpl-winter .schedule__table th { width: 160px; }
  .tpl-winter .schedule__table td { width: auto; }
  /* 申込締切：横並び（ラベル｜本文） */
  .tpl-winter .schedule__note {
    display: flex;
    gap: 8px;
    width: auto;
    padding: 15px 0 0 16px;
  }
  .tpl-winter .schedule__note-label {
    flex-shrink: 0;
    padding-right: 16px;
    border-bottom: 0;
    border-right: 1px solid var(--color-orange);
  }
  .tpl-winter .schedule__note-text { margin-top: 0; }
}

/* ===================================================================
   course-example：冬期講習の受講例（日程セクションの中の白いカード）
   =================================================================== */
.tpl-winter .course-example {
  margin: 24px -20px 0;            /* SP：カードは画面幅−24px（Figma 351px） */
  padding: 12px 32px 48px;
  border-radius: 20px;
  background: var(--color-white);
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.tpl-winter .course-example__top {
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.tpl-winter .course-example__person {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.tpl-winter .course-example__who {
  display: flex;
  align-items: center;
  gap: 4px;
  color: var(--color-primary);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.4;
}
.tpl-winter .course-example__catch-row {
  display: flex;
  align-items: center;
  gap: 12px;
}
.tpl-winter .course-example__face {
  flex-shrink: 0;
  width: 72px;
  height: 62px;
  overflow: hidden;
  border-radius: 8px;
  background: var(--color-white);
}
.tpl-winter .course-example__face img {
  display: block;
  width: 100%;
  height: auto;
}
.tpl-winter .course-example__catch {
  color: #004D26;
  font-size: 18px;
  font-weight: 800;
  line-height: 1.5;
}
.tpl-winter .course-example__text {
  color: var(--color-text);
  font-size: 15px;
  line-height: 1.6;
}
.tpl-winter .course-example__text .em { color: var(--color-orange); }

/* 冬期講習プラン */
.tpl-winter .course-example__plan-box {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.tpl-winter .course-example__plan-row {
  display: flex;
  align-items: center;
}
.tpl-winter .course-example__plan {
  flex: 1 1 0;
  min-width: 0;
  border: 2px solid #AEDDC5;
  border-radius: 8px;
  background: var(--color-white);
}
.tpl-winter .course-example__plan-title {
  padding: 4px 10px;
  background: #AEDDC5;
  color: var(--color-primary);
  font-size: 14px;
  font-weight: 900;
  line-height: 1.4;
  text-align: center;
}
.tpl-winter .course-example__plan-subjects { display: flex; }
.tpl-winter .course-example__subject {
  flex: 1 1 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
  padding: 8px 6px;
}
.tpl-winter .course-example__subject + .course-example__subject { border-left: 2px solid #AEDDC5; }
.tpl-winter .course-example__tag {
  padding: 3px 16px;
  border-radius: 4px;
  color: var(--color-white);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.4;
}
.tpl-winter .course-example__tag--math { background: #ABCC04; }
.tpl-winter .course-example__tag--eng  { background: var(--color-orange); }
.tpl-winter .course-example__koma {
  color: #4D4D4D;
  font-size: 13px;
  line-height: 1.4;
  text-align: center;
}
.tpl-winter .course-example__plan-tri { flex-shrink: 0; width: 21px; height: 18px; margin-left: -6px; }
.tpl-winter .course-example__manager  { flex-shrink: 0; width: 70px; height: 70px; margin-left: 2px; }
.tpl-winter .course-example__checks {
  list-style: none;
  margin: 0;
  padding: 0 12px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.tpl-winter .course-example__checks li {
  display: flex;
  align-items: center;
  gap: 8px;
  color: var(--color-text);
  font-size: 14px;
  font-weight: 500;
  line-height: 1.3;
}
.tpl-winter .course-example__checks li::before {
  content: "";
  flex-shrink: 0;
  width: 17px;
  height: 17px;
  background: url("../images/winter/icon_check_o.svg") no-repeat center / contain;
}

/* 12月の受講例（SPは画像だけ。見出しと枠はPCだけ） */
.tpl-winter .course-example__month { margin-top: 8px; }
.tpl-winter .course-example__month-heading { display: none; }
.tpl-winter .course-example__month-img {
  display: block;
  width: 100%;
  height: auto;
}

@media (min-width: 768px) {
  .tpl-winter .course-example {
    margin: 40px 0 0;
    padding: 70px;
    gap: 24px;
  }
  .tpl-winter .course-example__h { font-size: 36px; font-weight: 800; line-height: 1.5; }
  .tpl-winter .course-example__h::after { height: 5px; margin-top: 32px; } /* Figma：PCは太さ5px・文字との間32px */
  .tpl-winter .course-example__top {
    flex-direction: row;
    align-items: center;
    gap: clamp(24px, 5vw, 72px);
  }
  .tpl-winter .course-example__person { flex: 0 1 520px; min-width: 0; gap: 20px; }
  .tpl-winter .course-example__who { font-size: 24px; }
  .tpl-winter .course-example__face { width: 96px; height: 82px; border-radius: 9px; }
  .tpl-winter .course-example__catch { font-size: clamp(22px, 2.1vw, 32px); }
  .tpl-winter .course-example__text { font-size: 20px; line-height: 1.5; }
  .tpl-winter .course-example__plan-box {
    flex: 1 1 0;
    min-width: 0;
    padding: 25px 28px;
    border-radius: 20px;
    background: #E6F3EC;
  }
  .tpl-winter .course-example__tag { font-size: 16px; padding: 3px 20px; }
  .tpl-winter .course-example__koma { font-size: 16px; }
  .tpl-winter .course-example__manager { width: 78px; height: 78px; margin-left: 5px; }
  .tpl-winter .course-example__checks li { font-size: 16px; }
  /* 夏期の「7月の受講例」と同じ見出しと枠 */
  .tpl-winter .course-example__month {
    display: flex;
    flex-direction: column;
    align-items: center;
    margin-top: 32px;
  }
  .tpl-winter .course-example__month-heading {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 24px;
    margin-bottom: -26px;
    padding: 0 24px;
    background: var(--color-white);
    color: var(--color-primary);
    white-space: nowrap;
  }
  .tpl-winter .course-example__month-title { font-weight: 700; }
  .tpl-winter .course-example__month-title .lg { font-size: clamp(20px, 2.4vw, 30px); }
  .tpl-winter .course-example__month-title .sm { font-size: clamp(16px, 1.8vw, 24px); }
  .tpl-winter .course-example__month-course { font-weight: 500; }
  .tpl-winter .course-example__month-course .lg { font-size: clamp(18px, 2vw, 26px); }
  .tpl-winter .course-example__month-course .sm { font-size: clamp(14px, 1.6vw, 20px); }
  .tpl-winter .course-example__month-detail {
    padding: 6px 14px;
    border: 2px solid var(--color-primary);
    background: #FFF471;
    font-size: clamp(14px, 1.6vw, 20px);
    font-weight: 500;
  }
  .tpl-winter .course-example__month-suffix { font-size: clamp(14px, 1.6vw, 20px); font-weight: 500; }
  .tpl-winter .course-example__month-frame {
    width: 100%;
    max-width: 900px;
    padding: 48px 32px 32px;
    border: 2px solid var(--color-primary);
    border-radius: 24px;
    background: var(--color-white);
  }
}
/* SPはメッセージが2行に折れるので「＼ ／」の飾りを消す（1行のPCだけ表示） */
@media (max-width: 767px) {
  .tpl-winter .cta-message__deco { display: none; }
}

/* ===================================================================
   section-pricing：授業料金
   =================================================================== */
.tpl-winter .section-heading--sm h2 { font-size: 22px; }   /* SP：Figma 22px */
@media (min-width: 768px) {
  .tpl-winter .section-heading--sm { padding: 60px 0 32px; }
  .tpl-winter .section-heading--sm h2 { font-size: 50px; }
}
.tpl-winter .pricing {
  padding: 0 0 60px;
  background: var(--color-white);
}
.tpl-winter .pricing__hero-wrap {
  overflow: hidden;
  margin: 24px -8px 0;             /* SP：Figmaは幅351px */
  border-radius: 8px;
  background: #FBFBFB;
}
.tpl-winter .pricing__hero {
  display: block;
  width: 100%;
  height: auto;
}
.tpl-winter .pricing__bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 48px;
  margin-top: 40px;
}
.tpl-winter .pricing__desc {
  padding: 0 8px;
  color: var(--color-text);
  font-size: 16px;
  line-height: 28px;
}
.tpl-winter .pricing__desc .em {
  color: var(--color-orange);
  font-weight: 800;
}
.tpl-winter .pricing__table-wrap {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
  width: 100%;
}
.tpl-winter .pricing__table-title {
  color: var(--color-primary);
  font-size: 16px;
  font-weight: 500;
  line-height: 24px;
  text-align: center;
}
/* 外枠2px・内側1pxの線 */
.tpl-winter .pricing__table {
  width: 100%;
  max-width: 324px;
  margin: 0;
  border-collapse: collapse;
  border: 2px solid var(--color-primary);
}
.tpl-winter .pricing__table th,
.tpl-winter .pricing__table td {
  height: 60px;
  padding: 10px;
  border: 1px solid var(--color-primary);
  color: var(--color-primary);
  font-size: 16px;
  font-weight: 500;
  text-align: center;
  white-space: nowrap;
}
.tpl-winter .pricing__table th {
  width: 90px;
  background: #E0EED7;
}
.tpl-winter .pricing__table td:last-child { width: 120px; }

@media (min-width: 768px) {
  .tpl-winter .pricing { padding-bottom: 128px; }
  .tpl-winter .pricing__hero-wrap { margin: 14px 0 0; border-radius: 0; }
  .tpl-winter .pricing__bottom {
    flex-direction: row;
    gap: 40px;
    margin-top: 39px;
    padding: 0 14px;
  }
  .tpl-winter .pricing__desc {
    flex: 0 1 577px;
    min-width: 0;
    padding: 0;
    font-size: clamp(16px, 1.6vw, 24px);
    line-height: 1.67;
  }
  .tpl-winter .pricing__desc .em { font-weight: 700; }
  .tpl-winter .pricing__table-wrap { flex: 0 1 588px; min-width: 0; gap: 16px; }
  .tpl-winter .pricing__table-title { font-size: clamp(18px, 1.6vw, 24px); line-height: 40px; }
  .tpl-winter .pricing__table { max-width: none; }
  .tpl-winter .pricing__table th,
  .tpl-winter .pricing__table td { font-size: clamp(16px, 1.45vw, 22px); }
  .tpl-winter .pricing__table th { width: 24%; }
  .tpl-winter .pricing__table td:last-child { width: 38%; }
}

/* ===================================================================
   grade：【学年別】冬期講習の学習内容（タブ）
   学年ごとの色は変数で切り替える
   =================================================================== */
.tpl-winter .grade { padding: 0 0 40px; background: var(--color-white); }
.tpl-winter .grade .inner { padding: 0 12px; }

.tpl-winter .grade__tab--e,
.tpl-winter .grade__panel--e { --g-main: #ED6C00; --g-light: #FFF3E9; --g-sub: #FFFAF5; --g-tab-bg: #FFF3E9; --g-tab-text: #ED6C00; }
.tpl-winter .grade__tab--j,
.tpl-winter .grade__panel--j { --g-main: #67B100; --g-light: #F4F8E1; --g-sub: #FBFDF4; --g-tab-bg: rgba(160, 193, 28, 0.2); --g-tab-text: #3F7D00; }
.tpl-winter .grade__tab--h,
.tpl-winter .grade__panel--h { --g-main: #004D26; --g-light: #E7EEE7; --g-sub: #F5F9F5; --g-tab-bg: #E7EEE7; --g-tab-text: #004D2C; }

/* タブ */
.tpl-winter .grade__tabs {
  display: flex;
  gap: 6px;
  margin-top: 20px;
}
.tpl-winter .grade__tab {
  flex: 1 1 0;
  height: 38px;
  padding: 0 8px;
  border: 0;
  border-radius: 8px 8px 0 0;
  background: var(--g-tab-bg);
  color: var(--g-tab-text);
  font-family: inherit;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.4;
  cursor: pointer;
  transition: opacity 0.2s ease;
}
.tpl-winter .grade__tab.is-active {
  background: var(--g-main);
  color: var(--color-white);
}
@media (hover: hover) {
  .tpl-winter .grade__tab:not(.is-active):hover { opacity: 0.75; }
}

/* パネル（選ばれた学年だけ表示） */
.tpl-winter .grade__panel {
  display: none;
  border-top: 3px solid var(--g-main);
  border-bottom: 3px solid var(--g-main);
}
.tpl-winter .grade__panel.is-active { display: block; }
.tpl-winter .grade__title {
  padding: 16px 8px;
  background: var(--g-light);
  color: var(--g-main);
  font-size: 20px;
  font-weight: 900;
  line-height: 1.4;
}
.tpl-winter .grade__photo {
  height: 120px;
  margin: 10px 20px 0;
  overflow: hidden;
  border-radius: 4px;
  background: #737373;
}
.tpl-winter .grade__photo img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 50% 30%;
}
.tpl-winter .grade__block {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 20px;
  background: var(--color-white);
}
.tpl-winter .grade__block--sub { background: var(--g-light); }
.tpl-winter .grade__label {
  padding: 0 0 4px 8px;
  border-bottom: 1px solid var(--g-main);
  color: var(--g-main);
  font-size: 18px;
  font-weight: 900;
  line-height: 1.4;
}
.tpl-winter .grade__text {
  padding: 0 8px;
  color: var(--color-text);
  font-size: 14px;
  line-height: 1.6;
}
.tpl-winter .grade__text strong {
  color: var(--g-main);
  font-weight: 700;
}
.tpl-winter .grade__tags {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}
.tpl-winter .grade__tags li {
  padding: 4px 20px;
  border-radius: 8px;
  background: var(--g-main);
  color: var(--color-white);
  font-size: 14px;
  font-weight: 700;
  line-height: 1.4;
  white-space: nowrap;
}
/* SP：色付きの背景の上のタグは白地に色文字 */
.tpl-winter .grade__block--sub .grade__tags li {
  border: 2px solid var(--color-white);
  background: var(--color-white);
  color: var(--g-main);
}

@media (min-width: 768px) {
  .tpl-winter .grade { padding-bottom: 80px; }
  .tpl-winter .grade .inner { padding: 0 20px; }
  .tpl-winter .grade__tabs { margin-top: 40px; }
  .tpl-winter .grade__tab { height: 58px; font-size: 22px; }
  .tpl-winter .grade__title {
    padding: 24px 8px;
    font-size: 32px;
    text-align: center;
  }
  /* 写真｜1つ目のブロック｜2つ目のブロック の3列 */
  .tpl-winter .grade__body {
    display: grid;
    grid-template-columns: minmax(0, 390px) minmax(0, 1fr) minmax(0, 1fr);
  }
  .tpl-winter .grade__photo {
    height: auto;
    margin: 20px;
    border-radius: 18px;
  }
  .tpl-winter .grade__block {
    gap: 16px;
    padding: 32px 24px;
  }
  .tpl-winter .grade__block--sub { background: var(--g-sub); }
  .tpl-winter .grade__label { padding: 0 0 8px 8px; font-size: 24px; }
  .tpl-winter .grade__text { padding: 0 16px; font-size: clamp(15px, 1.4vw, 20px); }
  .tpl-winter .grade__block--sub .grade__tags li {
    background: var(--g-main);
    color: var(--color-white);
  }
}
/* 学年別：左右のブロックでタグの段をそろえる（タグを下端に寄せる） */
.tpl-winter .grade__tags { margin-top: auto; }
/* タブ：マウスで押したときの黒い枠は出さず、キーボード操作のときだけ出す */
.tpl-winter .grade__tab:focus:not(:focus-visible) { outline: none; }
.tpl-winter .grade__tab:focus-visible { outline: 2px solid var(--color-text); outline-offset: 2px; }

/* ===================================================================
   testimonials：冬期講習の受講者の声
   =================================================================== */
.tpl-winter .testimonials {
  background: #FFF0E3;
  padding-top: 24px;
}
.tpl-winter .testimonials__heading { padding: 0 0 8px; gap: 16px; }
.tpl-winter .testimonials__heading h2 { font-size: 24px; }
.tpl-winter .testimonials__logo { display: block; width: 75px; height: auto; margin: 0 auto -8px; }
.tpl-winter .testimonials__lead-text,
.tpl-winter .testimonials__lead-img { display: none; }   /* PCだけ */
.tpl-winter .testimonials__cards {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 18px;
  margin-top: 24px;
}
/* --- 声カード（イラストの円が上に重なり、下にオレンジの名前の帯） --- */
.tpl-winter .voice-card {
  position: relative;
  width: 100%;
  max-width: 300px;
  padding-top: 24px;               /* イラストの下半分ぶん */
  filter: drop-shadow(0 4px 8.5px rgba(239, 171, 102, 0.25));
}
.tpl-winter .voice-card__illust {
  position: absolute;
  top: 0;
  left: 50%;
  z-index: 2;
  transform: translateX(-50%);
  width: 65px;
  height: auto;
}
.tpl-winter .voice-card__text {
  position: relative;
  z-index: 1;
  padding: 48px 24px 37px;
  border: 3px solid var(--color-orange);
  border-radius: 16px;
  background: var(--color-white);
  color: #251E1C;
  font-size: 16px;
  line-height: 28px;
}
.tpl-winter .voice-card__text .em { color: var(--color-orange); }
.tpl-winter .voice-card__name {
  position: relative;
  margin-top: -13px;
  padding: 0 32px;
  border-radius: 0 0 20px 20px;
  background: var(--color-orange);
  color: var(--color-white);
  font-size: 11px;
  font-weight: 700;
  line-height: 28px;
  text-align: right;
}

/* --- 保護者様からの声（オレンジの背景） --- */
.tpl-winter .parents-voice {
  margin-top: 0;
  padding: 64px 0 40px;
  background: linear-gradient(to bottom, #FFF0E3 2.9%, #FE943B 9.6%);
}
.tpl-winter .parents-voice__heading { padding: 0 8px; text-align: center; }
.tpl-winter .parents-voice__heading h3 {
  display: flex;
  flex-direction: column;
  align-items: center;
  color: var(--color-white);
  line-height: 1.4;
}
/* 黄色い吹き出し */
.tpl-winter .parents-voice__balloon {
  position: relative;
  margin-bottom: 7px;
  padding: 5px 24px;
  border-radius: 8px;
  background: #FFD700;
  color: var(--color-primary);
  font-size: 20px;
  font-weight: 700;
  filter: drop-shadow(2px 2px 0.5px rgba(102, 59, 0, 0.25));
}
.tpl-winter .parents-voice__balloon::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -9px;
  transform: translateX(-50%);
  border-left: 6px solid transparent;
  border-right: 6px solid transparent;
  border-top: 10px solid #FFD700;
}
.tpl-winter .parents-voice__main { font-size: 24px; font-weight: 900; }
.tpl-winter .parents-voice__sub  { font-size: 15px; font-weight: 700; }
.tpl-winter .parents-voice__cards {
  display: flex;
  flex-direction: column;
  margin-top: 20px;
}
.tpl-winter .parent-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px 32px;
  background: var(--color-white);
}
.tpl-winter .parent-card:nth-child(even) { background: #FFFBE9; padding-right: 20px; }
.tpl-winter .parent-card__text {
  color: var(--color-text);
  font-size: 12px;
  line-height: 1.5;
}
.tpl-winter .parent-card__who {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  color: #666;
  font-size: 9.5px;
  line-height: 1.4;
  text-align: right;
}
/* SPは2枚目・4枚目だけ顔を左に */
.tpl-winter .parent-card:nth-child(even) .parent-card__who { flex-direction: row-reverse; justify-content: flex-end; text-align: left; }
.tpl-winter .parent-card__who img { flex-shrink: 0; width: 40px; height: 40px; }
.tpl-winter .parents-voice__note {
  margin-top: 20px;
  padding: 0 8px;
  color: var(--color-white);
  font-size: 10px;
  line-height: 1.4;
  text-align: center;
}

@media (min-width: 768px) {
  .tpl-winter .testimonials { background: #FFF3E9; padding-top: 0; }
  .tpl-winter .testimonials__heading { padding: 60px 0 32px; gap: 26px; }
  .tpl-winter .testimonials__heading h2 { font-size: 50px; }
  .tpl-winter .testimonials__logo { display: none; }
  .tpl-winter .testimonials .inner {
    display: flex;
    flex-direction: column;
    align-items: center;
  }
  .tpl-winter .testimonials__lead-text {
    display: block;
    margin-top: 8px;
    color: var(--color-orange);
    font-size: 32px;
    font-weight: 700;
    line-height: 1.5;
    text-align: center;
  }
  .tpl-winter .testimonials__lead-img { display: block; width: 188px; height: auto; margin-top: 18px; }
  .tpl-winter .testimonials__cards {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 540px));
    justify-content: space-between;
    gap: 32px clamp(16px, 2.5vw, 30px);
    width: 100%;
    max-width: 1110px;
    margin-top: 0;
    padding-bottom: 56px;
  }
  .tpl-winter .voice-card { display: flex; flex-direction: column; max-width: none; padding-top: 93px; }   /* 133px−40px */
  .tpl-winter .voice-card__illust { width: 135px; }
  .tpl-winter .voice-card__text {
    flex: 1;   /* 2列で高さをそろえる */
    padding: 60px 24px 53px 64px;
    border-width: 5px;
    font-size: clamp(16px, 1.45vw, 22px);
    line-height: 2;
  }
  .tpl-winter .voice-card__name {
    padding: 11px 32px;
    font-size: 20px;
    text-align: center;
  }

  .tpl-winter .parents-voice { padding: 120px 20px 100px; }
  .tpl-winter .parents-voice__balloon { margin-bottom: 13px; font-size: clamp(32px, 3.3vw, 50px); }
  .tpl-winter .parents-voice__main { font-size: clamp(32px, 3.3vw, 50px); color: #FFFBE9; }
  .tpl-winter .parents-voice__sub  { font-size: clamp(22px, 2.1vw, 32px); color: #FFFBE9; }
  .tpl-winter .parents-voice__cards {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 12px;
    max-width: 1146px;
    margin: 40px auto 0;
  }
  .tpl-winter .parent-card {
    justify-content: space-between;
    gap: 18px;
    padding: 36px 32px;
    border-radius: 20px;
  }
  .tpl-winter .parent-card:nth-child(even) { padding-right: 20px; }
  .tpl-winter .parent-card__text { font-size: clamp(15px, 1.3vw, 20px); line-height: 1.8; }
  .tpl-winter .parent-card__who,
  .tpl-winter .parent-card:nth-child(even) .parent-card__who {
    flex-direction: row;
    align-items: flex-end;
    justify-content: flex-end;
    font-size: 13.5px;
    text-align: right;
  }
  .tpl-winter .parents-voice__note { margin-top: 20px; font-size: 16px; }
}

/* ===================================================================
   achievement：合格実績・合格体験談
   =================================================================== */
.tpl-winter .achievement { background: var(--color-white); }
.tpl-winter .achievement .section-heading--simple h2 { font-size: 24px; }
.tpl-winter .achievement__lead {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-top: 4px;
  color: #251E1C;
  font-size: 15px;
  font-weight: 500;
  line-height: 1.6;
}
.tpl-winter .achievement__lead img { flex-shrink: 0; width: 28px; height: 28px; }

/* 合格率 */
.tpl-winter .achievement__rates {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 17px;
  margin-top: 32px;
  padding-bottom: 24px;
}
.tpl-winter .achievement__rate-row {
  display: flex;
  align-items: center;
  gap: 17px;
}
/* ペナント形（四角＋右向きの三角） */
.tpl-winter .achievement__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 107px;
  height: 81px;
  padding-right: 18px;
  clip-path: polygon(0 0, 83% 0, 100% 50%, 83% 100%, 0 100%);
  color: var(--color-white);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
  text-align: center;
}
.tpl-winter .achievement__rate--hs   .achievement__badge { background: #EA7336; }
.tpl-winter .achievement__rate--univ .achievement__badge { background: #E42F4E; }
.tpl-winter .achievement__num {
  display: flex;
  align-items: baseline;
  gap: 5px;
  font-weight: 700;
  line-height: 1;
  white-space: nowrap;
}
.tpl-winter .achievement__rate--hs   .achievement__num { color: #EA7336; }
.tpl-winter .achievement__rate--univ .achievement__num { color: #E42F4E; }
.tpl-winter .achievement__num .n { font-size: 67px; }
.tpl-winter .achievement__num .p { font-size: 28px; }
.tpl-winter .achievement__note {
  margin-top: 6px;
  color: #666;
  font-size: 10px;               /* Figma SPは7.6px。読めないので10pxに */
  line-height: 1.6;
  white-space: nowrap;
}

/* 合格体験記（ピンクの帯） */
.tpl-winter .achievement__voices {
  padding: 20px 0 40px;
  background: #F4E6EE;
}
.tpl-winter .achievement__cards:not(:has(*)) { display: none; }   /* カードが入るまでは場所を取らない */
.tpl-winter .achievement__cards { margin-bottom: 24px; }
.tpl-winter .achievement__link {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  max-width: 351px;
  margin: 0 auto;
  padding: 14px 48px;
  border: 2px solid #004D28;
  border-radius: 6px;
  background: var(--color-white);
  color: #004D28;
  font-size: 16.8px;
  font-weight: 700;
  line-height: 30px;
  text-decoration: none;
  transition: opacity 0.2s ease;
}
.tpl-winter .achievement__link img {
  position: absolute;
  right: 20px;
  top: 50%;
  transform: translateY(-50%);
  transition: transform 0.2s ease;
}
@media (hover: hover) {
  .tpl-winter .achievement__link:hover { opacity: 0.8; text-decoration: none; }
  .tpl-winter .achievement__link:hover img { transform: translate(4px, -50%); }
}

@media (min-width: 768px) {
  .tpl-winter .achievement .section-heading--simple { padding: 60px 0 32px; }
  .tpl-winter .achievement .section-heading--simple h2 { font-size: 50px; }
  .tpl-winter .achievement__lead { gap: 26px; margin-top: 12px; font-size: clamp(16px, 1.4vw, 20px); text-align: center; }
  .tpl-winter .achievement__lead img { width: 57px; height: 57px; }
  .tpl-winter .achievement__rates {
    flex-direction: row;
    justify-content: center;
    gap: 43px;
    margin-top: 44px;
    padding-bottom: 44px;
  }
  .tpl-winter .achievement__rate-row { gap: 31px; }
  .tpl-winter .achievement__badge { width: 193px; height: 147px; padding-right: 32px; font-size: 33px; }
  .tpl-winter .achievement__num { gap: 9px; }
  .tpl-winter .achievement__num .n { font-size: 122px; }
  .tpl-winter .achievement__num .p { font-size: 52px; }
  .tpl-winter .achievement__note { margin-top: 11px; font-size: 13.9px; }
  .tpl-winter .achievement__voices { padding: 50px 0 70px; }
  .tpl-winter .achievement__link { max-width: 560px; padding: 17px 48px; font-size: 20px; }
}

/* ===================================================================
   overview：受講概要（夏期と同じ。見出しセルの背景は薄い黄色）
   =================================================================== */
.tpl-winter .overview { padding: 0 0 40px; background: var(--color-white); }
.tpl-winter .overview .inner { margin-top: 16px; }
.tpl-winter .overview__table {
  width: 100%;
  margin: 0;
  border-collapse: collapse;
  border: 1px solid #DDD;
}
.tpl-winter .overview__table td ul {
  margin: 0;
  padding-left: 0;
  list-style: none;
}
.tpl-winter .overview__table td ul li::before {
  content: "◎";
  margin-right: 4px;
  color: var(--color-primary);
}
.tpl-winter .overview__table th,
.tpl-winter .overview__table td {
  padding: 14px 16px;
  border: 1px solid #DDD;
  color: var(--color-text);
  font-size: 13px;
  line-height: 1.6;
  text-align: left;
  vertical-align: top;
}
.tpl-winter .overview__table th {
  width: 7em;
  background: #FFFBE9;
  color: var(--color-primary);
  font-weight: 700;
  white-space: nowrap;
  vertical-align: middle;
}
.tpl-winter .overview__subjects {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
.tpl-winter .overview__subjects > div {
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tpl-winter .overview__subjects dt,
.tpl-winter .overview__courses dt {
  color: var(--color-primary);
  font-weight: 700;
  white-space: nowrap;
}
.tpl-winter .overview__subjects dd,
.tpl-winter .overview__courses dd { margin: 0; }
.tpl-winter .overview__courses {
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.tpl-winter .overview__courses > div {
  display: flex;
  flex-direction: column;
  gap: 4px;
}
@media (min-width: 768px) {
  .tpl-winter .overview { padding-bottom: 80px; }
  .tpl-winter .overview .inner { margin-top: 0; }
  .tpl-winter .overview__table th,
  .tpl-winter .overview__table td { font-size: 16px; }
  .tpl-winter .overview__table th { width: 230px; }
  .tpl-winter .overview__subjects > div {
    flex-direction: row;
    align-items: baseline;
    gap: 12px;
  }
  .tpl-winter .overview__subjects dt { min-width: 64px; }
}

/* ===================================================================
   video-intro：動画紹介（夏期と同じ）
   =================================================================== */
.tpl-winter .video-intro {
  padding: 0 0 32px;
  background-color: #F0F8F5;
}
.tpl-winter .video-intro .section-heading--simple h2 { line-height: 1.4; }
.tpl-winter .video-intro__wrap {
  position: relative;
  width: 100%;
  max-width: 800px;
  margin: 0 auto;
  aspect-ratio: 16 / 9;
}
.tpl-winter .video-intro__wrap iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
@media (min-width: 768px) {
  .tpl-winter .video-intro { padding: 20px 0 80px; }
}

/* ===================================================================
   faq：よくある質問（夏期と同じ。色は冬期：質問の背景は薄いオレンジ・「A」はオレンジ）
   開閉は共通の faq-accordion.js が .faq_a の max-height を書き換える
   =================================================================== */
.tpl-winter .faq {
  padding: 0 16px 40px;
  background: var(--color-white);
}
.tpl-winter .faq__list {
  display: flex;
  flex-direction: column;
  gap: 16px;
  width: 100%;
  max-width: 1100px;
  margin: 16px auto 0;
}
.tpl-winter .faq-item {
  overflow: hidden;
  border-radius: 6px;
  background: #FFF3E9;
}
/* 質問行 */
.tpl-winter .faq_q {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 16px 18px;
  cursor: pointer;
  user-select: none;
}
.tpl-winter .faq-item .q {
  flex-shrink: 0;
  color: var(--color-text);
  font-size: 20px;
  font-weight: 700;
}
.tpl-winter .faq-item .text {
  flex: 1;
  color: var(--color-text);
  font-size: 16px;
  font-weight: 700;
  line-height: 1.6;
}
/* 開閉アイコン（シェブロン） */
.tpl-winter .faq-icon {
  flex-shrink: 0;
  margin-left: auto;
  width: 12px;
  height: 12px;
  border-right: 2px solid var(--color-text);
  border-bottom: 2px solid var(--color-text);
  transform: rotate(45deg);
  transition: transform 0.3s ease;
}
.tpl-winter .swell-block-faq__item.open .faq-icon { transform: rotate(-135deg); }
/* 回答パネル */
.tpl-winter .faq_a {
  max-height: 0;
  overflow: hidden;
  background-color: var(--color-white);
  transition: max-height 0.4s ease;
}
.tpl-winter .faq-answer-row {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  padding: 12px 18px 16px;
}
.tpl-winter .faq-item .a {
  flex-shrink: 0;
  color: var(--color-orange);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
}
.tpl-winter .faq-answer-row .text {
  flex: 1;
  color: var(--color-text);
  font-size: 14px;
  font-weight: 400;
  line-height: 1.75;
}
.tpl-winter .faq-answer-cta {
  display: flex;
  justify-content: center;
  padding: 0 18px 20px;
}
@media (min-width: 768px) {
  .tpl-winter .faq { padding: 0 48px 80px; }
  .tpl-winter .faq__list { gap: 32px; margin-top: 0; }
  .tpl-winter .faq_q { gap: 32px; padding: 18px 24px; }
  .tpl-winter .faq-item .q,
  .tpl-winter .faq-item .a { font-size: 22.4px; }
  .tpl-winter .faq-item .text { font-size: 20px; }
  .tpl-winter .faq-answer-row { gap: 32px; padding: 12px 24px 24px; }
  .tpl-winter .faq-answer-row .text { font-size: 20px; line-height: 35px; }
  .tpl-winter .faq-icon { width: 14px; height: 14px; }
}

/* ===================================================================
   find-school：お近くの教室を探す（夏期と同じ）
   =================================================================== */
.tpl-winter .find-school {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 0 16px 40px;
  background: #F0F8F5;
}
.tpl-winter .find-school__inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 24px;
  width: 100%;
  max-width: 952px;
  margin-top: 8px;
}
.tpl-winter .find-school__lead {
  color: var(--color-text);
  font-size: 16px;
  font-weight: 500;
  line-height: 1.7;
  text-align: center;
}
.tpl-winter .find-school__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 12px;
  width: 100%;
}
.tpl-winter .pref-button {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  height: 60px;
  border-radius: 4px;
  background: var(--color-white);
  box-shadow: 0 0 4px rgba(0, 0, 0, 0.05);
  text-decoration: none;
}
.tpl-winter .pref-button .name {
  color: #004D2C;
  font-size: 16px;
  font-weight: 600;
}
/* 右端の山括弧（>） */
.tpl-winter .pref-button::after {
  content: "";
  position: absolute;
  right: 10%;
  top: 50%;
  width: 8px;
  height: 8px;
  border-top: 2px solid #004D2C;
  border-right: 2px solid #004D2C;
  transform: translateY(-50%) rotate(45deg);
}
@media (min-width: 768px) {
  .tpl-winter .find-school { padding: 20px 48px 80px; }
  .tpl-winter .find-school__inner { gap: 32px; margin-top: 0; }
  .tpl-winter .find-school__lead { font-size: 24px; }
  .tpl-winter .find-school__grid { gap: 32px 24px; }
  .tpl-winter .pref-button { height: 77.5px; }
  .tpl-winter .pref-button .name { font-size: 22px; }
}

/* ===================================================================
   PCのセクション見出し（h2）を夏期の本番と同じ32pxにそろえる
   （Figmaは50pxだが、夏期の実装は32px。成績アップ事例の帯の見出しは夏期と同じなので対象外）
   =================================================================== */
@media (min-width: 768px) {
  .tpl-winter .section-heading h2,
  .tpl-winter .section-heading--simple h2,
  .tpl-winter .section-heading--sm h2,
  .tpl-winter .testimonials__heading h2,
  .tpl-winter .achievement .section-heading--simple h2 { font-size: 32px; }
}

/* ===================================================================
   PCの中身の幅を1000pxにそろえる（サイト全体のルール：PCは最大1000px・背景は全幅）
   夏期・Figmaは1170px（中身1130px）だったが、サイトのほかのページに合わせる
   =================================================================== */
@media (min-width: 768px) {
  .tpl-winter .inner { max-width: 1040px; }                 /* 左右20pxの余白込みで中身1000px */
  .tpl-winter .points__list { max-width: 1040px; }
  .tpl-winter .faq__list { max-width: 1000px; }
  .tpl-winter .parents-voice__cards { max-width: 1000px; }
  .tpl-winter .testimonials__cards { max-width: 1000px; }
}
@media (min-width: 768px) {
  /* 4つのポイント：左右の列の比率をFigma（550：445）のまま保つ */
  .tpl-winter .point-card__body { grid-template-columns: minmax(0, 55fr) minmax(0, 45fr); }
}

/* ===================================================================
   PCの大きさの物差し（2026-10-13）
   中身の幅1000pxに合わせて、文字・余白・部品の大きさを夏期の本番基準で決め直す。
   ここより上の指定（Figmaの数字のまま）を、PCだけ上書きする。SPは変えない。

   文字の段階：見出しh2 32 ／ 大見出し 36 ／ キャッチ 26 ／ 小見出し 20 ／ 本文 18 ／ 補足 14
   余白・部品：Figmaの約0.7倍。セクションの上下は80px
   =================================================================== */
@media (min-width: 768px) {

  /* --- 共通：セクション見出し・CTAのメッセージ --- */
  .tpl-winter .section-heading { gap: 20px; }
  .tpl-winter .cta-message { font-size: 20px; }

  /* --- こんな人にピッタリ --- */
  .tpl-winter .recommended__tag-title { font-size: 22px; padding: 8px 32px; }
  .tpl-winter .recommended__box { padding: 40px 28px 22px 128px; }
  .tpl-winter .recommended__illust { left: 10px; top: 12px; width: 96px; }
  .tpl-winter .recommended__list { gap: 10px; }
  .tpl-winter .recommended__list li { font-size: 16px; padding: 8px 12px; }
  .tpl-winter .recommended__note { font-size: 18px; }
  .tpl-winter .recommended__note-icon { width: 28px; height: 28px; }

  /* --- 成績アップ事例（帯の見出し・カードは夏期と同じ大きさなので注記だけ） --- */
  .tpl-winter .results__note { font-size: 18px; }

  /* --- 4つのポイント --- */
  .tpl-winter .points__list { gap: 40px; margin-top: 40px; }
  .tpl-winter .point-card__title { height: 76px; padding: 4px 40px 4px 148px; }
  .tpl-winter .point-card__badge { left: 40px; top: -24px; width: 92px; }
  .tpl-winter .point-card__name { font-size: 36px; }
  .tpl-winter .point-card__body {
    column-gap: 32px;
    row-gap: 24px;
    padding: 40px 36px 48px 40px;
  }
  .tpl-winter .point-card__head { gap: 14px; padding-top: 2px; }
  .tpl-winter .point-card__catch-1,
  .tpl-winter .point-card__catch-1--big { font-size: 20px; }
  .tpl-winter .point-card__catch-big,
  .tpl-winter .point-card__catch-mid,
  .tpl-winter .point-card__catch-2,
  .tpl-winter .point-card__catch-1--hl { font-size: 26px; }
  .tpl-winter .point-card__catch-1--big { font-size: 26px; }
  .tpl-winter .point-card__desc { font-size: 18px; line-height: 1.8; }
  .tpl-winter .point-card__photo { border-radius: 14px; }
  /* 図のカードは左の列に合わせて伸ばさず、中身の高さで止める */
  .tpl-winter .point-card__visual {
    align-self: start;
    padding: 24px;
  }
  .tpl-winter .point-card__visual--plain { padding: 0; }
  .tpl-winter .point-card__photo--as-visual { height: 280px; border-radius: 14px; }
  .tpl-winter .sakanobori { max-width: 320px; }
  .tpl-winter .sakanobori__title { font-size: 16px; }
  .tpl-winter .sakanobori__flow { gap: 10px; margin-top: 14px; }
  .tpl-winter .sakanobori__row { grid-template-columns: 30px 1fr; column-gap: 10px; }
  .tpl-winter .sakanobori__row:not(:last-child)::after { margin-top: 10px; border-left-width: 7px; border-right-width: 7px; border-top-width: 11px; }
  .tpl-winter .sakanobori__grade { font-size: 12px; }
  .tpl-winter .sakanobori__label,
  .tpl-winter .sakanobori__goal { font-size: 15px; padding: 4px 12px; }
  .tpl-winter .sakanobori__unit { font-size: 13px; padding: 4px 12px; }
  .tpl-winter .plan-example { max-width: 320px; }
  .tpl-winter .plan-example__people { gap: 16px; padding: 0; }
  .tpl-winter .plan-example__main,
  .tpl-winter .plan-example__sub--light { font-size: 13px; }
  .tpl-winter .plan-example__sub { font-size: 11px; }
  .tpl-winter .plan-example__caption { font-size: 16px; }
  .tpl-winter .curriculum-example__title { font-size: 16px; }

  /* --- 日程・スケジュール --- */
  .tpl-winter .schedule { padding: 32px 0 80px; }
  .tpl-winter .schedule__main { gap: 40px; }
  .tpl-winter .schedule__date-block { gap: 20px; padding-top: 20px; }
  .tpl-winter .schedule__logo { margin-bottom: -6px; }
  .tpl-winter .schedule__date .lg { font-size: 46px; }
  .tpl-winter .schedule__date .sm { font-size: 26px; }
  .tpl-winter .schedule__badges li { padding: 10px 8px; border-radius: 16px; font-size: 15px; }
  .tpl-winter .schedule__badges img { width: 20px; height: 20px; }
  .tpl-winter .schedule__h--timetable { font-size: 16px; }
  .tpl-winter .schedule__table th,
  .tpl-winter .schedule__table td { height: 46px; padding: 8px 10px; font-size: 18px; }
  .tpl-winter .schedule__table th { width: 120px; }
  .tpl-winter .schedule__note { padding-top: 12px; }

  /* --- 受講例 --- */
  .tpl-winter .course-example { margin-top: 48px; padding: 48px; gap: 20px; }
  .tpl-winter .course-example__h { font-size: 26px; }
  .tpl-winter .course-example__h::after { height: 4px; margin-top: 16px; }
  .tpl-winter .course-example__top { gap: 40px; }
  .tpl-winter .course-example__person { flex-basis: 460px; gap: 14px; }
  .tpl-winter .course-example__who { font-size: 18px; }
  .tpl-winter .course-example__face { width: 72px; height: 62px; }
  .tpl-winter .course-example__catch { font-size: 24px; }
  .tpl-winter .course-example__text { font-size: 17px; line-height: 1.7; }
  .tpl-winter .course-example__plan-box { padding: 20px; }
  .tpl-winter .course-example__plan-title { font-size: 13px; }
  .tpl-winter .course-example__tag { padding: 2px 12px; font-size: 13px; }
  .tpl-winter .course-example__koma { font-size: 13px; }
  .tpl-winter .course-example__manager { width: 64px; height: 64px; }
  .tpl-winter .course-example__checks { padding: 0 4px; }
  .tpl-winter .course-example__checks li { font-size: 14px; }
  .tpl-winter .course-example__month { margin-top: 24px; }
  .tpl-winter .course-example__month-heading { gap: 16px; margin-bottom: -20px; padding: 0 16px; }
  .tpl-winter .course-example__month-title .lg { font-size: 24px; }
  .tpl-winter .course-example__month-title .sm { font-size: 18px; }
  .tpl-winter .course-example__month-course .lg { font-size: 20px; }
  .tpl-winter .course-example__month-course .sm { font-size: 15px; }
  .tpl-winter .course-example__month-detail { padding: 4px 10px; font-size: 15px; }
  .tpl-winter .course-example__month-suffix { font-size: 15px; }
  .tpl-winter .course-example__month-frame { max-width: 820px; padding: 40px 24px 24px; border-radius: 20px; }

  /* --- 授業料金 --- */
  .tpl-winter .pricing { padding-bottom: 80px; }
  .tpl-winter .pricing__bottom { gap: 40px; margin-top: 32px; padding: 0; }
  .tpl-winter .pricing__desc { font-size: 18px; line-height: 1.8; }
  .tpl-winter .pricing__table-title { font-size: 18px; line-height: 1.6; }
  .tpl-winter .pricing__table th,
  .tpl-winter .pricing__table td { height: 52px; font-size: 17px; }

  /* --- 学年別 --- */
  .tpl-winter .grade__tabs { margin-top: 32px; }
  .tpl-winter .grade__tab { height: 48px; font-size: 18px; }
  .tpl-winter .grade__title { padding: 16px 8px; font-size: 24px; }
  .tpl-winter .grade__body { grid-template-columns: minmax(0, 300px) minmax(0, 1fr) minmax(0, 1fr); }
  .tpl-winter .grade__photo { margin: 16px; border-radius: 14px; }
  .tpl-winter .grade__block { gap: 12px; padding: 24px 20px; }
  .tpl-winter .grade__label { font-size: 18px; padding-bottom: 6px; }
  .tpl-winter .grade__text { padding: 0 6px; font-size: 16px; line-height: 1.75; }
  .tpl-winter .grade__tags li { padding: 3px 14px; font-size: 13px; }

  /* --- 受講者の声 --- */
  .tpl-winter .testimonials__lead-text { font-size: 24px; }
  .tpl-winter .testimonials__lead-img { width: 140px; margin-top: 12px; }
  .tpl-winter .testimonials__cards { gap: 28px 32px; padding-bottom: 56px; }
  .tpl-winter .voice-card { padding-top: 70px; }
  .tpl-winter .voice-card__illust { width: 100px; }
  .tpl-winter .voice-card__text { padding: 44px 24px 40px 32px; border-width: 4px; font-size: 17px; line-height: 1.9; }
  .tpl-winter .voice-card__name { padding: 8px 24px; font-size: 16px; }

  /* --- 保護者の声 --- */
  .tpl-winter .parents-voice { padding: 80px 20px; }
  .tpl-winter .parents-voice__balloon { margin-bottom: 11px; padding: 4px 20px; font-size: 30px; }
  .tpl-winter .parents-voice__main { font-size: 32px; }
  .tpl-winter .parents-voice__sub  { font-size: 20px; }
  .tpl-winter .parents-voice__cards { margin-top: 32px; }
  .tpl-winter .parent-card { gap: 14px; padding: 28px 22px; border-radius: 16px; }
  .tpl-winter .parent-card:nth-child(even) { padding-right: 16px; }
  .tpl-winter .parent-card__text { font-size: 16px; line-height: 1.8; }
  .tpl-winter .parent-card__who,
  .tpl-winter .parent-card:nth-child(even) .parent-card__who { font-size: 12px; }
  .tpl-winter .parent-card__who img { width: 36px; height: 36px; }
  .tpl-winter .parents-voice__note { font-size: 14px; }

  /* --- 合格実績 --- */
  .tpl-winter .achievement__lead { gap: 20px; font-size: 17px; }
  .tpl-winter .achievement__lead img { width: 40px; height: 40px; }
  .tpl-winter .achievement__rates { gap: 40px; margin-top: 32px; padding-bottom: 40px; }
  .tpl-winter .achievement__rate-row { gap: 22px; }
  .tpl-winter .achievement__badge { width: 140px; height: 106px; padding-right: 24px; font-size: 24px; }
  .tpl-winter .achievement__num .n { font-size: 88px; }
  .tpl-winter .achievement__num .p { font-size: 36px; }
  .tpl-winter .achievement__note { margin-top: 8px; font-size: 13px; }
  .tpl-winter .achievement__voices { padding: 40px 0 56px; }
  .tpl-winter .achievement__link { max-width: 480px; padding: 14px 48px; font-size: 17px; }

  /* --- よくある質問 --- */
  .tpl-winter .faq__list { gap: 20px; }
  .tpl-winter .faq_q { gap: 24px; padding: 16px 24px; }
  .tpl-winter .faq-item .q,
  .tpl-winter .faq-item .a { font-size: 20px; }
  .tpl-winter .faq-item .text { font-size: 17px; }
  .tpl-winter .faq-answer-row { gap: 24px; padding: 12px 24px 20px; }
  .tpl-winter .faq-answer-row .text { font-size: 16px; line-height: 1.8; }

  /* --- お近くの教室を探す --- */
  .tpl-winter .find-school__lead { font-size: 18px; }
  .tpl-winter .find-school__grid { gap: 20px 20px; }
  .tpl-winter .pref-button { height: 64px; }
  .tpl-winter .pref-button .name { font-size: 18px; }
}
@media (min-width: 768px) { .tpl-winter .course-example__catch { font-size: 22px; } }
@media (min-width: 768px) { .tpl-winter .course-example__catch { font-size: 24px; } }
/* 4つのポイントのキャッチ：本文（18px）の約1.7倍に戻す（Figmaの比率） */
@media (min-width: 768px) {
  .tpl-winter .point-card__catch-1 { font-size: 22px; }
  .tpl-winter .point-card__catch-mid { font-size: 27px; }
  .tpl-winter .point-card__catch-big,
  .tpl-winter .point-card__catch-2,
  .tpl-winter .point-card__catch-1--big,
  .tpl-winter .point-card__catch-1--hl { font-size: 30px; }
}
/* 4つのポイント：右の白いカードを左の列の高さにそろえ、中身は上下の真ん中に（Figmaと同じ） */
@media (min-width: 768px) {
  .tpl-winter .point-card__visual { align-self: stretch; }
  .tpl-winter .point-card__visual--plain { align-self: start; }
}
/* 4つのポイント：キャッチと本文の間を少し広げる（Figmaの比率：本文の約1.7倍） */
@media (min-width: 768px) {
  .tpl-winter .point-card__head { margin-bottom: 8px; }   /* 行の間24px＋8px＝32px */
}
/* 4つのポイント：帯の高さ（76px）はそのまま、帯の文字だけFigmaの比率（帯の約0.55倍）に */
@media (min-width: 768px) {
  .tpl-winter .point-card__name { font-size: 42px; }
}
/* セクション見出しの下の黄色い線：h2を32pxにしたのに合わせて縮める（夏期のSPと同じ80×4px） */
@media (min-width: 768px) {
  .tpl-winter .section-heading::after { width: 80px; height: 4px; }
}
/* 受講者の声：PCの4枚のカードを同じ高さにそろえる（行ごとの高さもそろえる） */
@media (min-width: 768px) {
  .tpl-winter .testimonials__cards {
    align-items: stretch;
    grid-auto-rows: 1fr;
  }
}

/* SPのh2を夏期の本番と同じ大きさにそろえる（画面幅の6%・行の高さ1.3）。PCは変えない。
   ポイントの見出しは段組みとオレンジ帯（冬期講習）を残し、文字の大きさだけほかと同じにする */
@media (max-width: 767px) {
  .tpl-winter .section-heading--simple h2,
  .tpl-winter .section-heading--sm h2,
  .tpl-winter .testimonials__heading h2,
  .tpl-winter .achievement .section-heading--simple h2 {
    font-size: clamp(16px, 6vw, 32px);
    line-height: 1.3;
  }
  .tpl-winter .section-heading h2 {
    font-size: clamp(16px, 6vw, 32px);
    line-height: 1.3;
  }
  .tpl-winter .section-heading__sub,
  .tpl-winter .section-heading__em,
  .tpl-winter .section-heading__main { font-size: inherit; }
}

/* 受講者の声（SP）：名前の帯の上13pxが本文の箱の下に隠れて、学年と名前が切れていたので、隠れる分だけ上に余白をとる */
@media (max-width: 767px) {
  .tpl-winter .voice-card__name { padding: 13px 32px 4px; line-height: 18px; }
}
/* 合格実績のリード（SP）：Figmaどおり短い1文。PCは長い2文 */
.tpl-winter .achievement__lead .sp-only { font-size: 16px; font-weight: 700; text-align: center; }

/* オーダーメイドカリキュラムの例：SPは数学・英語のタブで1枚ずつ幅いっぱいに出す（2枚並びだと文字が読めない）。
   PCはタブを隠して、これまでどおり2枚を横に並べる */
.tpl-winter .curriculum-example__tab--math { --c-main: #2B8FCE; --c-light: #E3F1FA; }
.tpl-winter .curriculum-example__tab--eng  { --c-main: #ED6C00; --c-light: #FFF3E9; }
@media (max-width: 767px) {
  .tpl-winter .curriculum-example__tabs {
    display: flex;
    gap: 6px;
    width: 100%;
  }
  .tpl-winter .curriculum-example__tab {
    flex: 1 1 0;
    height: 38px;
    border: 0;
    border-radius: 8px 8px 0 0;
    background: var(--c-light);
    color: var(--c-main);
    font-family: inherit;
    font-size: 15px;
    font-weight: 700;
    cursor: pointer;
  }
  .tpl-winter .curriculum-example__tab.is-active { background: var(--c-main); color: var(--color-white); }
  .tpl-winter .curriculum-example__tab:focus:not(:focus-visible) { outline: none; }
  .tpl-winter .curriculum-example__tab:focus-visible { outline: 2px solid var(--color-text); outline-offset: 2px; }
  .tpl-winter .curriculum-example { gap: 12px; }
  .tpl-winter .curriculum-example__tabs + .curriculum-example__imgs { width: 100%; margin-top: -12px; }
  .tpl-winter .curriculum-example__img { display: none; }
  .tpl-winter .curriculum-example__img.is-active { display: block; }
}
@media (min-width: 768px) {
  .tpl-winter .curriculum-example__tabs { display: none; }
}
/* カリキュラムのタブ（SP）：押していないタブがカードの薄いオレンジに溶けるので、白地＋科目の色の枠線にする */
@media (max-width: 767px) {
  .tpl-winter .curriculum-example__tab {
    border: 2px solid var(--c-main);
    border-bottom: 0;
    background: var(--color-white);
  }
  .tpl-winter .curriculum-example__tab.is-active { background: var(--c-main); }
}
/* 押していないタブの枠線が強すぎるので、1pxにして色も半分の濃さにする（文字は科目の色のまま） */
@media (max-width: 767px) {
  .tpl-winter .curriculum-example__tab:not(.is-active) {
    border-width: 1px;
    border-color: color-mix(in srgb, var(--c-main) 50%, transparent);
  }
}
/* 受講者の声の「声 voice」ロゴ（SP）：Figmaどおり見出しとの間を24px、中央より8px右に置く */
@media (max-width: 767px) {
  .tpl-winter .testimonials__logo { margin-bottom: 4px; transform: translateX(8px); }
}
/* 料金表：外枠だけ2pxで太く見えたので、外枠も中の線と同じ1pxにそろえる */
.tpl-winter .pricing__table { border: 1px solid var(--color-primary); }
/* 料金表：線を重ねて描く方式（collapse）だと、表の位置が端数のときに上の線だけ2本分ににじんで太く見える。
   線を重ねない方式にして、表の上・左とセルの右・下だけに1pxの線を引く */
.tpl-winter .pricing__table {
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid var(--color-primary);
  border-left: 1px solid var(--color-primary);
}
.tpl-winter .pricing__table th,
.tpl-winter .pricing__table td {
  border: 0;
  border-right: 1px solid var(--color-primary);
  border-bottom: 1px solid var(--color-primary);
}
/* 時間割表：料金表と同じく線を重ねない方式にする（表の位置が端数のとき上の線だけ太く見えるのを防ぐ） */
.tpl-winter .schedule__table {
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid var(--color-orange);
  border-left: 1px solid var(--color-orange);
}
.tpl-winter .schedule__table th,
.tpl-winter .schedule__table td {
  border: 0;
  border-right: 1px solid var(--color-orange);
  border-bottom: 1px solid var(--color-orange);
}
/* 合格実績のリード：PCもSPと同じ短い1文にそろえた（Figmaでは PC＝長い2文・SP＝短い1文） */
.tpl-winter .achievement__lead-text { font-size: 16px; font-weight: 500; text-align: center; } /* 太さはFigmaどおりMedium(500) */
@media (min-width: 768px) {
  .tpl-winter .achievement__lead-text { font-size: 22px; }
}
/* 合格体験記のカード：/result/ と同じ共通のカード（.ss-card）とスライダーを使う。
   共通CSSはスライダーの幅が600pxまでなので、中身の幅いっぱいに広げ、PCは2枚ずつ並べる（/result/ と同じ） */
.tpl-winter .achievement__cards .ss-slider-wrapper { max-width: 100%; margin: 0 auto; }
@media (min-width: 960px) {
  .tpl-winter .achievement__cards .ss-slider-item { flex: 0 0 calc((100% - 12px) / 2); max-width: none; }
}
/* 合格体験記のカード：共通カードの薄いピンクの枠がこのセクションの背景と同じ色で溶けるので、冬期だけ外側に白い枠を足す */
.tpl-winter .achievement__cards .ss-card {
  border: 4px solid var(--color-white);
}
.tpl-winter .achievement__cards .ss-card__top { border-radius: 0; margin-bottom: 0; } /* 冬期だけ角丸なし・下の余白12pxをなくしてピンクの縁を上下左右14pxにそろえる */

/* 合格体験記カード（SP）：/result/ と同じく本文を6行で止めて「続きを読む」で開く。
   JSは /result/ と共通の assets/js/page-result-voice.js。下のCSSは page-result.css の同じ指定を冬期の欄の中だけに写したもの */
@media screen and (max-width: 767px) {
  .tpl-winter .achievement__cards .ss-card .ss-card__comment.rs-clamp {
    max-height: 116px;
    overflow: hidden;
    position: relative;
    transition: max-height .55s cubic-bezier(.16, 1, .3, 1);
  }
  .tpl-winter .achievement__cards .ss-card .ss-card__comment.rs-clamp::after {
    content: "";
    position: absolute; left: 0; right: 0; bottom: 0;
    height: 3.2em;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), #fff 85%);
    pointer-events: none;
    transition: opacity .3s ease;
  }
  .tpl-winter .achievement__cards .ss-slider-list.rs-all-open .ss-card__comment.rs-clamp::after { opacity: 0; }
  .tpl-winter .achievement__cards .rs-voice-more {
    display: block;
    margin: 10px auto 2px;
    padding: 7px 22px;
    background: #fff;
    border: 1px solid var(--theme-color, #ed6c00);
    border-radius: 999px;
    color: var(--theme-color, #ed6c00);
    font-size: 13px; font-weight: 700; line-height: 1.4;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .tpl-winter .achievement__cards .rs-voice-more::after {
    content: ""; display: inline-block;
    width: 6px; height: 6px; margin-left: 8px;
    border-right: 2px solid currentColor; border-bottom: 2px solid currentColor;
    transform: translateY(-2px) rotate(45deg);
    transition: transform .3s ease;
  }
  .tpl-winter .achievement__cards .rs-voice-more[aria-expanded="true"]::after { transform: translateY(1px) rotate(-135deg); }
}
/* 合格体験記のスライダー：ピンクの背景ではグレーの矢印ボタンが沈むので白にする（押したとき・マウスを乗せたときの色は共通のまま） */
.tpl-winter .achievement__cards .ss-nav-btn:not(:hover) { background: var(--color-white); }

/* お近くの教室を探す：GPSボタン（共通の .sl-openBtn）。大きさは /result/ と同じ（PC 60px・19px／SPはエリアページと同じ幅いっぱい・15px） */
.tpl-winter .find-school__gps { display: flex; min-height: 60px; margin: 0 auto 36px; font-size: 19px; gap: 10px; }
.tpl-winter .find-school__gps svg { width: 24px; height: 24px; }
@media (max-width: 767px) {
  .tpl-winter .find-school__gps { width: 100%; max-width: none; min-height: 0; margin-bottom: 24px; padding: 15px 16px; font-size: 15px; gap: 8px; }
  .tpl-winter .find-school__gps svg { width: 18px; height: 18px; }
  .tpl-winter .find-school__gps-pc { display: none; } /* SPは「現在地から教室を探す」（エリアページと同じ） */
}
/* お近くの教室を探す：上の一文を /result/ と同じ形に（「全国約370校！」・数字を緑の太字で大きく） */
.tpl-winter .find-school__lead { margin-bottom: 18px; color: #333; font-size: 16px; font-weight: 700; line-height: 1.8; }
.tpl-winter .find-school__lead b { margin: 0 2px; color: #004D26; font-size: 22px; font-weight: 700; }
@media (max-width: 767px) {
  .tpl-winter .find-school__lead { margin-bottom: 14px; font-size: 14px; }
  .tpl-winter .find-school__lead b { font-size: 18px; }
}
/* 上の一文・GPSボタン・都道府県の間の余白を /result/ と同じにする（中身の間隔32pxが足されて広がっていた） */
.tpl-winter .find-school__inner { gap: 0; }
/* 保護者の声（SP）：本文がFigmaどおり12pxで読みにくいので16px・行間1.7にする（本文は最低16px） */
@media (max-width: 767px) {
  .tpl-winter .parent-card__text { font-size: 16px; line-height: 1.7; }
}

/* ===================================================================
   成績アップ事例のカード：デザイン変更版（2026-10-13・Figma Frame 5091）
   学年・教科のタグ → ◯点UP → 2学期期末 ▸▸ 学年末 → 教室名・受講回数（高校生は回数なし）。
   SPはFigmaの寸法（カード160px幅）どおり。PCは今のカード幅308pxに合わせて比率を保って大きくする。
   以前のカードの中身（.name／.badge／.lead／.score／.detail）はHTMLから外したので、その指定は効かない
   =================================================================== */
.tpl-winter .result-card {
  gap: 7px;
  padding: 0;
  filter: none;
  box-shadow: 0 2px 2px rgba(0, 0, 0, 0.08);
  color: #004C26;
}
.tpl-winter .result-card__tags { display: flex; align-self: flex-start; }
.tpl-winter .result-card__grade,
.tpl-winter .result-card__subject {
  padding: 1px 4px;
  color: var(--color-white);
  font-size: 11px;
  font-weight: 700;
  line-height: 13px;
}
.tpl-winter .result-card__grade   { background: #25744D; }
.tpl-winter .result-card__subject { background: #004C26; }
.tpl-winter .result-card__main {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  padding: 0 16px;
}
.tpl-winter .result-card__arrow {
  position: absolute;
  top: -9px;
  right: 10px;
  z-index: 0;
  width: 50px;
  height: auto;
}
.tpl-winter .result-card__up {
  position: relative;
  z-index: 1;
  width: 100%;
  padding: 4px 0;
  border-bottom: 1px solid #E6204D;
  color: #E6204D;
  font-weight: 700;
  line-height: 40px;
  text-align: center;
  white-space: nowrap;
}
.tpl-winter .result-card__up .num  { font-size: 48px; font-weight: 900; letter-spacing: -0.01em; }
.tpl-winter .result-card__up .unit { font-size: 20px; }
.tpl-winter .result-card__compare {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 5px;
  width: 100%;
  padding: 0 4px;
}
.tpl-winter .result-card__test {
  display: flex;
  flex-direction: column;
  align-items: center;
  min-width: 0;
}
.tpl-winter .result-card__test .label { font-size: 10px; line-height: 12px; white-space: nowrap; }
.tpl-winter .result-card__test .pt    { font-size: 10px; font-weight: 700; line-height: 24px; white-space: nowrap; }
.tpl-winter .result-card__test .pt .n { font-size: 20px; }
.tpl-winter .result-card__sep { font-size: 12px; line-height: 1; margin-top: 8px; }
.tpl-winter .result-card__who {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 28px;
  margin-top: auto;
  padding: 2px 4px;
  background: #E7EFEB;
  font-size: 10px;
  font-weight: 500;
  line-height: 1.2;
  text-align: center;
}
@media (min-width: 768px) {
  .tpl-winter .result-card { gap: 12px; padding: 0; }
  .tpl-winter .result-card__grade,
  .tpl-winter .result-card__subject { padding: 3px 8px; font-size: 16px; line-height: 20px; }
  .tpl-winter .result-card__main { gap: 10px; padding: 0 28px; }
  .tpl-winter .result-card__arrow { top: -14px; right: 18px; width: 84px; }
  .tpl-winter .result-card__up { padding: 6px 0; line-height: 66px; }
  .tpl-winter .result-card__up .num  { font-size: 80px; }
  .tpl-winter .result-card__up .unit { font-size: 32px; }
  .tpl-winter .result-card__compare { padding: 0 12px; }
  .tpl-winter .result-card__test .label { font-size: 15px; line-height: 18px; }
  .tpl-winter .result-card__test .pt    { font-size: 15px; line-height: 38px; }
  .tpl-winter .result-card__test .pt .n { font-size: 32px; }
  .tpl-winter .result-card__sep { font-size: 18px; margin-top: 14px; }
  .tpl-winter .result-card__who { min-height: 52px; padding: 6px 8px; font-size: 15px; }
}
/* 以前のカードの「中身を中央に寄せる」指定が残って教室名の帯が縮むので、帯と本体はカードの幅いっぱいに */
.tpl-winter .result-card__main,
.tpl-winter .result-card__who { align-self: stretch; }
/* 成績カード：赤い下線を数字に近づける（見本どおり詰める）。日本語フォントは数字の下に余白が出るので、行の高さを数字の大きさより小さくし、下の余白をなくす */
.tpl-winter .result-card__up { padding: 2px 0 0; line-height: 36px; }
.tpl-winter .result-card__main { gap: 5px; }
@media (min-width: 768px) {
  .tpl-winter .result-card__up { padding: 4px 0 0; line-height: 60px; }
  .tpl-winter .result-card__main { gap: 8px; }
}
/* 成績カード：大きさの違う「149」と「点UP」を同じ行に並べると行の高さが膨らみ、数字と赤線の間が空く（PCで23px）。
   横並び（下端そろえ）にして行の高さを詰め、赤線までは数字の下に少しだけ（SP 5px・PC 8px）空ける */
.tpl-winter .result-card__up {
  display: flex;
  justify-content: center;
  align-items: baseline;
  padding: 0 0 5px;
  line-height: 1;
}
.tpl-winter .result-card__up .num  { line-height: 0.78; }
.tpl-winter .result-card__up .unit { line-height: 1; }
@media (min-width: 768px) {
  .tpl-winter .result-card__up { padding: 0 0 8px; line-height: 1; }
}
/* 成績カード：数字と赤線の間をほんの少し広げる（SP 5→8px・PC 8→12px） */
.tpl-winter .result-card__up { padding-bottom: 8px; }
@media (min-width: 768px) {
  .tpl-winter .result-card__up { padding-bottom: 12px; }
}
/* 成績カード：「▸▸」の2つの三角の間を詰める（見本どおりくっつける） */
.tpl-winter .result-card__sep { letter-spacing: -0.2em; padding-right: 0.2em; }
/* キャンペーン：サイト共通の部品（canpass_common_campaign_banner）に切り替え（2026-10-13）。
   夏期と同じく、.campagne-banner の line-height:0 と p の余白リセットを注釈テキストだけ打ち消す */
.tpl-winter .campagne-banner .common-campaign-banner__note {
  margin-top: 8px !important;
  line-height: 1.6;
  font-size: 13px;
}
/* ポイントの小見出し（SP）：Figmaの注記「PCと同様にハイライトをいれたいです」に合わせ、PCと同じ黄色帯を付ける。
   ポイント1〜3は2行目、ポイント4は1行目（2行目は帯なし）。折り返しても行ごとに帯が付くよう inline＋clone */
@media (max-width: 767px) {
  .tpl-winter .point-card__catch-2 > *,
  .tpl-winter .point-card__catch-2 { -webkit-box-decoration-break: clone; box-decoration-break: clone; }
  .tpl-winter .point-card__catch-2 { display: inline; background: #FFF600; }
  .tpl-winter .point-card__catch-1--hl { display: inline; background: #FFF600; -webkit-box-decoration-break: clone; box-decoration-break: clone; }
  .tpl-winter .point-card__catch-1--hl::after { content: "\A"; white-space: pre; }
  .tpl-winter .point-card__catch-2--plain { background: none; }
  .tpl-winter .point-card__catch-1:not(.point-card__catch-1--hl)::after { content: "\A"; white-space: pre; }
}
/* 合格体験記へのボタン（SP）：文言を「お住まいの地域の合格体験記を見る」（16字）にしたので、
   左右の余白を詰めて矢印を少し右に寄せ、1行に収める（16px） */
@media (max-width: 767px) {
  .tpl-winter .achievement__link { padding: 14px 32px 14px 16px; font-size: 16px; }
  .tpl-winter .achievement__link img { right: 12px; }
}
/* 成績カード：左上の学年・教科のタグの文字を細くする（社内の指摘：主張が強い）。700 → 500 */
.tpl-winter .result-card__grade,
.tpl-winter .result-card__subject { font-weight: 500; }
/* 成績カード：下の教室名と受講回数を、PCだけ1行にする（社内の指摘）。SPは2行のまま */
@media (min-width: 768px) {
  .tpl-winter .result-card__count { margin-left: 0.5em; }
  .tpl-winter .result-card__who { min-height: 0; padding: 8px; }
}
/* 上の改行（br）が効くように、教室名の帯は横並び（flex）をやめて普通の段落にする。上下の中央はpaddingでそろえる */
.tpl-winter .result-card__who { display: block; padding: 3px 4px; }
@media (min-width: 768px) {
  .tpl-winter .result-card__who { padding: 8px; }
}
/* 成績カードの数字：Figmaどおり Inter（大きい数字は900、点UP・下の点数は700）。「点」など日本語は Noto Sans JP のまま */
.tpl-winter .result-card__up .num,
.tpl-winter .result-card__up .unit,
.tpl-winter .result-card__test .pt { font-family: "Inter", "Noto Sans JP", sans-serif; }
/* 成績カード：下の点数（255・404など）を少しだけ太く（Inter 800）、PCは少しだけ大きく（32→34px） */
.tpl-winter .result-card__test .pt .n { font-weight: 800; }
@media (min-width: 768px) {
  .tpl-winter .result-card__test .pt .n { font-size: 37px; }
}
/* 4つのポイントの小見出し：文字を詰める設定（palt）で窮屈に見えるので、字間を少しだけ広げる（社内の指摘） */
.tpl-winter .point-card__catch,
.tpl-winter .point-card__catch * { letter-spacing: 0.05em; } /* 子の文字にも、それぞれの大きさで効かせる */

/* カリキュラムのタブ（SP）案B：タブを図から離し、角の丸い切り替えボタン2つにする（社内の指摘：図の丸い角とタブの四角いつなぎ目がかみ合わない）。
   選んでいるボタンは科目の色で塗り、選んでいない方は白地に科目の色の細い枠。図との間は12pxあける */
@media (max-width: 767px) {
  .tpl-winter .curriculum-example__tabs { gap: 8px; }
  .tpl-winter .curriculum-example__tab,
  .tpl-winter .curriculum-example__tab:not(.is-active) {
    height: 36px;
    border-radius: 999px;
    border: 1px solid color-mix(in srgb, var(--c-main) 50%, transparent);
  }
  .tpl-winter .curriculum-example__tab.is-active { border-color: var(--c-main); }
  .tpl-winter .curriculum-example__tabs + .curriculum-example__imgs { margin-top: 0; }
}
/* 保護者の声（SP）：窮屈さを取るため、文字は16pxのまま余白を広げる（社内の指摘）。上下16→24px・本文と名前の間8→12px・行間1.7→1.8 */
@media (max-width: 767px) {
  .tpl-winter .parent-card { gap: 18px; padding-top: 24px; padding-bottom: 24px; }
  .tpl-winter .parent-card__text { line-height: 1.8; }
}
/* 合格体験記カード（社内の提案2）：白い枠は残し、主張が強いので細くする（4→2px）。角は四角のまま */
.tpl-winter .achievement__cards .ss-card { border-width: 2px; }
/* 合格体験記カード（社内の指摘・参考画像）：白い枠とその内側のピンクの縁を同じ太さ4pxにそろえる。白2→4px・ピンク14→4px（共通 .ss-card の padding） */
.tpl-winter .achievement__cards .ss-card { border-width: 4px; padding: 4px; }
/* 幅359px以下の端末（320pxなど）：はみ出し・詰まりの手当て（2026-10-14）。360px以上の見た目は変えない
   ①成績カード：中身の最小幅が167pxあり2列目が46pxはみ出していた。夏期と同じく1枚134pxの2列に収める（数字を約2割小さく・左右の余白を詰める）
   ②4つのポイント：キャッチの見出しが11pxはみ出し、写真・本文まで同じ幅に広がっていた。列の最小幅を0にして左右の余白を詰める
   ③日程の時間割：申込締切の注記が幅89pxの細い列になっていた。時間割の下に回す
   ④受講概要：見出し列が広く中身が「O／K」のように語の途中で切れていた。左右の余白を詰めて中身の列を広げる */
@media (max-width: 359px) {
  .tpl-winter .results__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tpl-winter .result-card__main { padding: 0 6px; }
  .tpl-winter .result-card__compare { padding: 0; gap: 3px; }
  .tpl-winter .result-card__up .num  { font-size: 40px; }
  .tpl-winter .result-card__up .unit { font-size: 17px; }
  .tpl-winter .result-card__test .pt .n { font-size: 18px; }

  .tpl-winter .point-card__body { grid-template-columns: minmax(0, 1fr); }
  .tpl-winter .point-card__head { padding: 0 16px; gap: 0; }

  .tpl-winter .schedule__table-area { flex-direction: column; row-gap: 16px; }
  .tpl-winter .schedule__table { width: 100%; }
  .tpl-winter .schedule__note { align-self: stretch; width: auto; max-width: none; margin: 0; padding: 0; }

  .tpl-winter .overview__table th { padding-left: 8px; padding-right: 8px; }
  .tpl-winter .overview__table td { padding-left: 12px; padding-right: 10px; }
}
/* 幅359px以下：4つのポイントの見出し帯（さかのぼり学習 など）が2行に落ち「上げ」だけ残っていた → 22→19px。
   キャッチが3行になり「は、」だけ次の行に落ちていた → 20→18pxで4枚とも2行 */
@media (max-width: 359px) {
  .tpl-winter .point-card__name { font-size: 19px; }
  .tpl-winter .point-card__catch,
  .tpl-winter .point-card__catch * { font-size: 18px; }
}
/* 合格体験記へのボタン（SP）：狭い画面（352px未満）で2行に折れていた → 1行に収まる大きさまで文字を下げる（320pxで14px）。
   文字の入る幅＝画面幅−左右の余白40px−ボタンの内側の余白48px−枠4px を16字で割る。375pxでは16pxのまま */
@media (max-width: 767px) {
  .tpl-winter .achievement__link { font-size: min(16px, calc((100vw - 96px) / 16)); white-space: nowrap; }
}
/* 学年別の見出し（◯学生の冬期講習）：SPは左8pxで写真・本文（左28px）より左に寄り過ぎていた → PCと同じ中央寄せ（2026-10-14） */
.tpl-winter .grade__title { text-align: center; }
/* 成績カード（SP）：受講回数のない高校生は教室名が1行で、薄緑の帯（高さ28px）の上に寄っていた → 帯の中で上下中央に置く。
   縦並びのflexにすると「教室名」と「回数」が別の行になるので、2行のカードの見た目は変わらない */
@media (max-width: 767px) {
  .tpl-winter .result-card__who { display: flex; flex-direction: column; align-items: center; justify-content: center; }
}
/* 「冬期講習はこんな人にピッタリ！」の黄色の帯：幅が文字の長さで決まるので、320pxでは箱（280px）とほぼ同じ幅（276px）になり、
   丸い両端が箱の角からはみ出してふたのように見えていた → 359px以下は左右の余白28→14px、文字は画面幅に合わせて16pxから少し縮める */
@media (max-width: 767px) {
  .tpl-winter .recommended__tag-title { font-size: min(16px, calc((100vw - 104px) / 14)); }
}
@media (max-width: 359px) {
  .tpl-winter .recommended__tag-title { padding-left: 14px; padding-right: 14px; }
}
/* 「こんな人にピッタリ」のオレンジ（SP）：サイトのルール（中身は左右16px・背景は全幅）に合わせて全幅の帯にする（2026-10-14・社内判断）。
   角丸の箱だと320pxで白いリストが箱の余白を越えて端に貼りついていた。全幅にすると中身の幅が288pxになり収まる。PCは箱のまま */
@media (max-width: 767px) {
  .tpl-winter .recommended__box { width: auto; margin: 0 -20px; border-radius: 0; padding: 30px 16px 24px; }
}
/* 「こんな人にピッタリ」のリスト（SP）：13pxで読みにくい → 画面幅に余裕があるほど大きくする（13〜16px・375pxで16px）。
   いちばん長い「1・2学期の苦手な単元をそのままにしている」が1行に収まる大きさ＝（画面幅−左右の余白32px−札の左右の余白16px−アイコンとの間6px）÷（文字18.7字分＋アイコン1.15字分）。
   上限16pxは本文の最低16pxに合わせた。アイコンと上下の余白も文字に合わせて大きくする */
@media (max-width: 767px) {
  .tpl-winter .recommended__list li { font-size: clamp(13px, calc((100vw - 54px) / 19.85), 16px); padding: 0.3em 8px; }
  .tpl-winter .recommended__list li::before { width: 1.15em; height: 1.15em; }
}
/* 「こんな人にピッタリ」のリスト（SP）：16pxだと大きすぎる（社内の判断）→ 上限を15pxに（13〜15px・350px前後から15px） */
@media (max-width: 767px) {
  .tpl-winter .recommended__list li { font-size: clamp(13px, calc((100vw - 54px) / 19.85), 15px); }
}
/* 黄色の帯（SP）：リスト（13〜15px）より約2px大きく、上限17px。帯の端から画面の端まで最低36px空ける大きさに抑える。
   文字の幅は13.75字分。360px以上は左右の余白28px、359px以下は14px */
@media (max-width: 767px) {
  .tpl-winter .recommended__tag-title { font-size: min(17px, calc((100vw - 128px) / 13.75)); }
}
@media (max-width: 359px) {
  .tpl-winter .recommended__tag-title { font-size: min(17px, calc((100vw - 100px) / 13.75)); }
}
/* さかのぼり学習の例（SP）：幅271px固定で、375pxで右に24px・414pxで64px空いていた → 本文と同じ幅いっぱいに広げる（上限400px・超えたら中央） */
@media (max-width: 767px) {
  .tpl-winter .sakanobori { width: 100%; max-width: 400px; margin-left: auto; margin-right: auto; }
}
/* 料金の比較グラフの根拠（「約6割」）：画像の右下に小さく。文言は料金ページ /tuition/ の比較表の注記と同じ */
.tpl-winter .pricing__notes {
  list-style: none;
  margin: 6px 0 0;
  padding: 0;
  color: #666;
  font-size: 12px;
  line-height: 1.6;
  text-align: right;
}
@media (min-width: 768px) {
  .tpl-winter .pricing__notes { margin-top: 8px; font-size: 14px; }
}
/* SPは料金画像が左右に8pxはみ出す（margin: 0 -8px）ので、注記も同じだけ広げて画像の右端にそろえる */
@media (max-width: 767px) {
  .tpl-winter .pricing__notes { margin-left: -8px; margin-right: -8px; }
}
/* 料金グラフの根拠の注記（SP）：12→10px（社内の判断） */
@media (max-width: 767px) {
  .tpl-winter .pricing__notes { font-size: 10px; }
}
/* 受講概要の表：料金表・時間割と同じく線を重ねない方式にする。collapse のままだと表の位置が端数のとき上の線だけ太く見えていた（社内の指摘） */
.tpl-winter .overview__table {
  border: 0;
  border-collapse: separate;
  border-spacing: 0;
  border-top: 1px solid #DDD;
  border-left: 1px solid #DDD;
}
.tpl-winter .overview__table th,
.tpl-winter .overview__table td {
  border: 0;
  border-right: 1px solid #DDD;
  border-bottom: 1px solid #DDD;
}
/* ポイント4の黄色帯（PC）：1行目が display:block で行の幅いっぱいに広がっていた → ポイント1〜3と同じく文字の幅に合わせる（改行はそのまま） */
@media (min-width: 768px) {
  .tpl-winter .point-card__catch-1--hl { width: fit-content; }
}
/* MV下の帯（PC）：画像を下の余白なしの版（2298×85・3倍・表示の高さ約29px）に差し替えたので、帯を元と同じ太さ（55px）に戻すため上下の余白を6.5→13px（2026-10-15・社内の指示） */
.tpl-winter .mv-underbar { padding: 13px 0; }
/* MV下の帯（SP）：文字画像が左右20pxまで詰まって窮屈だった → 幅を中身の86%に（375pxで約288px）、上下の余白を13→16px */
@media (max-width: 767px) {
  .tpl-winter .mv-underbar { padding: 16px 0; }
  .tpl-winter .mv-underbar img { width: 86%; }
}
/* 見出し（h2）の上の余白（PC）：セクションごとに80／60／44pxとばらついていた → 共通の値で全セクション80px（4つのポイントと同じ）にそろえる（社内の指摘）。
   見出しの枠の上の余白を60→80pxにし、セクション側で上乗せしていた4つ（ポイント・日程・動画・教室を探す）は上の余白を0にする。SPは約40pxのまま */
@media (min-width: 768px) {
  .tpl-winter .points,
  .tpl-winter .schedule,
  .tpl-winter .video-intro,
  .tpl-winter .find-school { padding-top: 0; }
  .tpl-winter .section-heading,
  .tpl-winter .schedule .section-heading,
  .tpl-winter .achievement .section-heading--simple { padding-top: 80px; }
}
/* 受講者の声（PC）：本文の下の白い余白が広い（見えている部分35px）→ 半分程度に。箱の下の余白40→22px（名前の帯が13px重なるので見えるのは約17px） */
@media (min-width: 768px) {
  .tpl-winter .voice-card__text { padding-bottom: 22px; }
}
/* 受講者の声の名前の帯：上の13pxは本文の箱の下に隠れるため、文字が見えている部分の上に寄っていた（PC：上−2px・下11px）。
   隠れる13pxを上の余白に足し、見えている部分で上下を同じにする（PC 6px・SP 3px） */
@media (min-width: 768px) {
  .tpl-winter .voice-card__name { padding: 18px 24px 7px; line-height: 22px; }
}
@media (max-width: 767px) {
  .tpl-winter .voice-card__name { padding: 15.5px 32px 3.5px; }
}
/* ↑名前の帯：本文の箱の下の枠線（PC 4px・SP 3px）もオレンジで帯と一体に見えるので、枠線の内側から帯の下までで上下を同じにした（PC 18/7px・SP 15.5/3.5px） */
/* こんな人にピッタリ（PC）：イラストが箱の左上に固定（上12px）で上に寄っていた → 箱の高さの上下中央・左の余白128pxの左右中央に置く */
@media (min-width: 768px) {
  .tpl-winter .recommended__illust { top: 50%; left: 16px; transform: translateY(-50%); }
}
/* MV下の帯（SP）：上下の余白 16→12→14px（社内の指示で詰めたあと少しだけ戻す） */
@media (max-width: 767px) {
  .tpl-winter .mv-underbar { padding: 14px 0; }
}
/* MV下の帯（SP）：文字画像をもう一段小さく（社内が示した見本の大きさ）86→72%（375pxで約241px） */
@media (max-width: 767px) {
  .tpl-winter .mv-underbar img { width: 72%; }
}
/* MV下の帯（SP）：文字画像を72%にしたので、上下の余白も詰める 14→12→11px（社内の指示） */
@media (max-width: 767px) {
  .tpl-winter .mv-underbar { padding: 11px 0; }
}
/* 成績カード（SP）：359px以下だけの対策だったため、360〜385px（375pxのiPhone等）で右のカードが11〜26pxはみ出し、左右の幅も違っていた。
   2列は常に等分（中身で広がらない）にし、399px以下はカード内の左右の余白を詰める。数字の大きさは360px以上では変えない */
@media (max-width: 767px) {
  .tpl-winter .results__cards { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 399px) {
  .tpl-winter .result-card__main { padding: 0 6px; }
  .tpl-winter .result-card__compare { padding: 0; gap: 3px; }
}
/* 成績カード（SP）：下の点数（2学期期末・学年末の見出しごと）がカードの端に寄っていた → 左右に6pxずつ足して少しだけ中央へ（375pxで端から6→12px） */
@media (max-width: 767px) {
  .tpl-winter .result-card__compare { padding: 0 6px; }
}
/* CTAのメッセージの「＼ ／」（SP）：これまでSPでは全部隠していた → 360px以上は1行のメッセージだけ表示する（最初と最後のCTAの小見出しと見た目をそろえる）。
   2行になる「教室ごとに定員があるので⏎お早めに…」（改行 br を含む）は隠したまま。359px以下（320pxなど・スマホの約3%）は
   「満足の理由を無料体験で実感してください」が2行に折れるので、全部隠したまま。:has に対応しないブラウザでは今までどおり隠れる */
@media (min-width: 360px) and (max-width: 767px) {
  .tpl-winter .cta-message:not(:has(br)) .cta-message__deco { display: inline; }
}
/* CTAのメッセージ型（SP）：帯の上端から文字まで14pxで、上のセクションと詰まって見えた → 下（電話番号の下から帯の下端まで28px）と同じに。文字の上に1px分の行の余白があるので29px（社内の指摘） */
@media (max-width: 767px) {
  .tpl-winter .cta-banner--message { padding-top: 29px; }
}
/* CTAの文字色：メッセージ（2〜5つ目）とボタン上の短い文（1つ目・6つ目の「入塾金0円・1科目からOK」「簡単手続き40秒」）を、
   本文のグレー #3E3A39 から公式の深緑 #004D26 に（社内の判断）。短い文の赤い数字（.num／.num-unit）は共通CSSの赤のまま */
.tpl-winter .cta-message,
.tpl-winter .cta-label { color: #004D26; }
/* 下部の固定ボタン（冬期講習LPだけ「無料体験する」「資料請求する」に書き換え・page-winter.js）：
   339px以下では6文字が2行に折れてボタンが66→97pxに伸びるので、文字を20→18pxに（320pxで1行・高さ58px）。
   このCSSは冬期講習LPでしか読み込まないので、ほかのページの固定ボタンには効かない */
@media (max-width: 339px) {
  .kc-floating-bar__item .kc-floating-bar__label { font-size: 18px; }
}
