@charset "UTF-8";
/* NSG教育研究会 2026年リニューアル追記スタイル */


/* 1. デザイントークン（CSS変数） */
:root {
  /* カラー */
  --c2026-main:        #043F98;  /* NSG青：メインカラー */
  --c2026-text:        #333333;  /* 本文テキスト */
  --c2026-text-light:  #676767;  /* サブテキスト・点線 */
  --c2026-white:       #FFFFFF;

  --c2026-circle:      #FF934B;  /* 小学部CIRCLEのキーカラー（オレンジ） */
  --c2026-scala:       #0890E3;  /* 中学部SCALAのキーカラー（水色） */
  --c2026-crais:       #B6076B;  /* 高校部CRAISのキーカラー（ピンク） */
  --c2026-testsystem:  #57B53C;  /* テストシステムのテーマカラー（緑） */
  --c2026-index:       #F18D0F;  /* オリジナル学力指標のテーマカラー（濃いオレンジ・SCALA） */
  --c2026-rank-b:      #1982C2;  /* 高校難易度テーブル B1〜B3 のランク色（明るい青） */

  --c2026-bg-orange:   #FFEFCE;  /* CIRCLE系カードの薄背景 */
  --c2026-bg-blue:     #D1F2FF;  /* SCALA系カードの薄背景 */
  --c2026-bg-pink:     #FFE5F4;  /* CRAIS系カードの薄背景 */
  --c2026-bg-paleblue: #ECF4FF;  /* Q&A行・DREAM PASS位置パネル等の薄水色背景 */
  --c2026-bg-paleorange: #FFF8EB;  /* オリジナル学力指標コンテンツ一塊の薄オレンジ背景 */

  /* ボーダー */
  --c2026-divider:     1px dotted #AAAAAA;  /* 区切り線（現行サイト準拠 dotted #AAAAAA で統一） */

  /* タイポグラフィ */
  --c2026-font-gothic: "Noto Sans JP", "游ゴシック体", "YuGothic", "ヒラギノ角ゴPro W3", "Hiragino Kaku Gothic Pro", "メイリオ", Meiryo, "ＭＳ　Ｐゴシック", "MS PGothic", sans-serif;
  --c2026-font-mincho:"Noto Serif JP","游明朝", YuMincho, "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "リュウミン R-KL", "HG明朝E", "ＭＳ Ｐ明朝", "ＭＳ 明朝", serif;
  --c2026-font-amiri:  "Amiri Quran Colored", "Amiri", serif;

  /* レイアウト */
  --c2026-content-w:   1000px;
}


/* 2. 共通ベース */
.l-contents [class*="2026"] {
  box-sizing: border-box;
}
.l-contents [class*="2026"] *,
.l-contents [class*="2026"] *::before,
.l-contents [class*="2026"] *::after {
  box-sizing: border-box;
}

.l-contents :is(div, ul, ol, dl)[class*="2026"]::before,
.l-contents :is(div, ul, ol, dl)[class*="2026"]::after,
.l-contents [class*="2026"] :is(div, ul, ol, dl)::before,
.l-contents [class*="2026"] :is(div, ul, ol, dl)::after {
  content: none;
  display: none;
}

.c-section2026::before, .c-section2026::after,
.c-section2026__block::before, .c-section2026__block::after,
.c-section2026__content::before, .c-section2026__content::after,
.c-imggroup2026::before, .c-imggroup2026::after,
.c-card-link2026::before, .c-card-link2026::after,
.c-card-link2026-list::before, .c-card-link2026-list::after,
.c-method2026::before, .c-method2026::after,
.c-method2026__badge::before, .c-method2026__badge::after,
.c-btn2026-wrap::before, .c-btn2026-wrap::after,
.c-qa2026::before, .c-qa2026::after,
.c-qa2026__item::before, .c-qa2026__item::after,
.c-readmore2026__panel::before, .c-readmore2026__panel::after,
.c-readmore2026__list::before, .c-readmore2026__list::after,
.c-trial-banner2026::before, .c-trial-banner2026::after,
.p-about2026__methods::before, .p-about2026__methods::after,
.p-about2026__dreampass-logo::before, .p-about2026__dreampass-logo::after {
  content: none !important;
  display: none !important;
}


/* 3. ページラッパー */
.p-about2026,
.p-circle2026,
.p-scala2026 {
  font-family: var(--c2026-font-gothic);
  font-feature-settings: "palt";
  letter-spacing: 0.05em;
  line-height: 1.8;
}


/* 4. .c-hero2026 — キービジュアル（人物画像 + キャッチコピー） */
.c-hero2026 {
  position: relative;
  width: 100%;
  min-height: clamp(580px, calc(100vw * 600 / 1440), 600px);
  overflow: hidden;
}
.c-hero2026::before {
  content: "";
  position: absolute;
  top: 86px;
  left: 0;
  width: calc(180 / 1440 * 100% - 20px);
  height: 1px;
  background: var(--c2026-main);
  z-index: 2;
}
.c-hero2026__image {
  position: absolute;
  top: 0;
  right: 0;
  width: 70%;
  height: 100%;
  z-index: 0;
  max-height: 620px;
}
.c-hero2026__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: right 0  top 14%;
  display: block;
}
.c-hero2026__inner {
  position: relative;
  z-index: 1;
  padding: 56px 16px 0 calc(180 / 1440 * 100%);
  box-sizing: border-box;
}
.c-hero2026__title {
  font-family: var(--c2026-font-mincho);
  font-weight: 600;
  color: var(--c2026-main);
  font-size: clamp(40px, 4vw, 48px);
  letter-spacing: 0.05em;
  line-height: 1.3;
  margin: 0;
}
.c-hero2026__body {
  margin: 32px 0 0;
  font-size: 16px;
  line-height: 2;
}


/* 4b. .c-pagekv2026 — 部別ページのコンパクトKV (CIRCLE/SCALA等) */
.c-pagekv2026 {
  position: relative;
  width: 100%;
  min-height: 310px;
  overflow: hidden;
}
.c-pagekv2026::before {
  content: "";
  position: absolute;
  top: 117px;
  left: 0;
  width: clamp(79px, calc((100vw - 1000px) / 2 - 9px), 211px);
  height: 1px;
  background: var(--c2026-main);
  z-index: 2;
}
.c-pagekv2026__image {
  position: absolute;
  top: 0;
  right: 0;
  width: calc(830 / 1440 * 100%);
  height: 100%;
  z-index: 0;
}
.c-pagekv2026__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}
.c-pagekv2026__title {
  position: absolute;
  top: 58px;
  left: clamp(88px, calc((100vw - 1000px) / 2), 220px);
  z-index: 1;
  background: rgba(255, 255, 255, 0.8);
  padding: 16px;
  margin: 0;
  font-family: var(--c2026-font-mincho);
  font-weight: 600;
  color: var(--c2026-main);
  font-size: clamp(40px, 4vw, 48px);
  letter-spacing: 0.05em;
  line-height: 1.4;
}


/* 4c. .c-intro2026 — 部別ページの導入セクション（見出し + リード文 + 概念図） */
.c-intro2026 {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.c-intro2026__head {
  margin: 0;
  font-weight: 600;
  color: var(--c2026-main);
  font-size: clamp(20px, 2.2vw, 26px);
  line-height: 1.8;
}
.c-intro2026__body {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  width: 100%;
  margin-top: 16px;
}
.c-intro2026__text {
  flex: 1 1 auto;
  font-size: 15px;
  line-height: 1.8;
}
.c-intro2026__text > p {
  margin: 0;
}
.c-intro2026__text > p + p {
  margin-top: 12px;
}
.c-intro2026__image {
  flex-shrink: 0;
  max-width: 440px;
}
.c-intro2026__image img {
  width: 100%;
  height: auto;
  display: block;
}


/* 4d-0. 共通: 円形矢印（白丸 + テーマ色のSVGマスク） */
.c-iconcards2026__arrow,
.c-btn2026__arrow,
.c-card-link2026__arrow,
.c-readmore2026__arrow {
  position: relative;
  display: inline-block;
  flex-shrink: 0;
  width: 16px;
  height: 16px;
  background: var(--c2026-white);
  border-radius: 50%;
}
.c-iconcards2026__arrow::before,
.c-btn2026__arrow::before,
.c-card-link2026__arrow::before,
.c-readmore2026__arrow::before {
  content: "";
  position: absolute;
  inset: 0;
  background-color: var(--c2026-accent, var(--c2026-circle));
  -webkit-mask: url("img/common-renewal/arrow.svg") no-repeat calc(50% + 1px) center / 9px 9px;
          mask: url("img/common-renewal/arrow.svg") no-repeat calc(50% + 1px) center / 9px 9px;
}


/* 4d. .c-iconcards2026 — アイコン付きリンクカード横並びリスト */
.c-iconcards2026 {
  --c2026-accent: var(--c2026-circle);
  --c2026-tint:   var(--c2026-bg-orange);
  display: flex;
  gap: 24px;
  align-items: stretch;
  justify-content: center;
  flex-wrap: wrap;
  list-style: none;
  padding: 0;
  margin: 0;
  width: 100%;
}
.c-iconcards2026__item {
  flex: 1 1 0;
  max-width: 232px;
  min-width: 0;
  position: relative;
  padding-top: 50px;
}
.c-iconcards2026__link,
.c-iconcards2026__link:link,
.c-iconcards2026__link:visited,
.c-iconcards2026__link:hover,
.c-iconcards2026__link:active {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  background: var(--c2026-tint);
  border-radius: 8px;
  padding: 15px 30px;
  min-height: 90px;
  text-decoration: none;
  color: inherit;
  transition: opacity .2s ease;
}
.c-iconcards2026__link:hover {
  opacity: 0.85;
}
.c-iconcards2026__icon {
  position: absolute;
  top: var(--c2026-icon-top, 8px);
  left: 50%;
  transform: translateX(-50%);
  width: 48px;
  height: auto;
  z-index: 2;
}
.c-iconcards2026__label {
  display: flex;
  flex-direction: column;
  align-items: center;
  font-weight: 600;
  text-align: center;
  line-height: 1.3;
}
.c-iconcards2026__label-sub {
  color: var(--c2026-text-light);
}
.c-iconcards2026__label-main {
  font-size: 18px;
  color: var(--c2026-accent);
}
.c-iconcards2026__arrow {
  position: absolute;
  right: 9px;
  bottom: 7px;
}

.c-iconcards2026--scala { --c2026-accent: var(--c2026-scala); --c2026-tint: var(--c2026-bg-blue); }


/* 5. .c-section2026 — 点線区切りセクション枠 */
.c-section2026 {
  max-width: var(--c2026-content-w);
  margin: 0 auto;
  padding: 0 calc(16 / 1000 * 100%);
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.c-section2026__block {
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.c-section2026 > .c-section2026__block + .c-section2026__block {
  margin-top: 40px;
  padding-top: 40px;
  border-top: var(--c2026-divider);
}
.c-section2026__block > * + * {
  margin-top: 40px;
}
.c-section2026__content {
  display: flex;
  flex-direction: column;
  width: 100%;
  align-items: stretch;
}
.c-section2026__content > * + * {
  margin-top: 24px;
}


/* 5b. .c-heading2026 — セクション見出しH2（青明朝32px） */
.c-heading2026 {
  font-family: var(--c2026-font-mincho);
  font-weight: 600;
  color: var(--c2026-main);
  font-size: clamp(20px, 2.7vw, 32px);
  line-height: 1.4;
  margin: 0 0 40px;
}


/* 6. .c-title2026 — セクションタイトル（明朝大型） */
.c-title2026 {
  position: relative;
  font-family: var(--c2026-font-mincho);
  font-weight: 600;
  font-size: clamp(36px, 3.7vw, 40px);
  letter-spacing: 0.05em;
  line-height: 1;
  text-align: center;
  padding: 16px 0;
  border-top: 1px solid var(--c2026-main);
  border-bottom: 1px solid var(--c2026-main);
}
.c-title2026::before {
  content: "";
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 70px;
  height: 26px;
  background-color: #fff;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 50 10'><circle cx='5' cy='5' r='5' fill='%23043F98'/><circle cx='25' cy='5' r='5' fill='%23FF934B'/><circle cx='45' cy='5' r='5' fill='%23043F98'/></svg>");
  background-repeat: no-repeat;
  background-position: center;
  background-size: 50px 10px;
}
.c-title2026__num,
.c-title2026__sub,
.c-title2026__accent {
  color: var(--c2026-main);
}
.c-title2026__num {
  font-size: clamp(44px, 6vw, 72px);
  letter-spacing: 0.05em;
}
.c-title2026__sub {
  font-size: clamp(27px, 3.7vw, 44px);
}
.c-title2026__accent {
  font-size: clamp(40px, 5.4vw, 64px);
}


/* 7. .c-method2026 — Method/Pass見出し */
.c-method2026 {
  display: flex;
  gap: 8px;
  align-items: center;
  width: 100%;
}
.c-method2026__badge {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  min-width: clamp(80px, 7.4vw, 107px);
}
.c-method2026__label {
  font-family: var(--c2026-font-mincho);
  color: var(--c2026-circle);
  margin-right: 2px;
}
.c-method2026__num {
  font-family: var(--c2026-font-amiri);
  color: var(--c2026-main);
  font-size: clamp(46px, 5vw, 72px);
  line-height: 1;
}
.c-method2026__name {
  font-family: var(--c2026-font-mincho);
  font-weight: 600;
  font-size: clamp(30px, 3.2vw, 40px);
  line-height: 1;
  letter-spacing: 0.02em;
  margin: 0;
}
.c-method2026__name-sub {
  display: block;
  font-family: var(--c2026-font-mincho);
  font-weight: normal;
  font-size: 14px;
  line-height: 1;
  letter-spacing: 0;
  margin-bottom: 4px;
}


/* 8. .c-lead2026 — リード文（青強調見出し + 本文） */
.c-lead2026 {
  width: 100%;
  line-height: 1.8;
}
.c-lead2026__head {
  font-weight: 600;
  color: var(--c2026-main);
  font-size: clamp(16px, 2vw, 24px);
  line-height: 1.8;
}
.c-lead2026__body {
  margin: 0;
}
.c-lead2026__body p {
  margin: 0;
}


/* 9. .c-imggroup2026 — 画像横並びグループ */
.c-imggroup2026 {
  display: flex;
  gap: 24px;
  justify-content: center;
  align-items: flex-start;
  width: 100%;
  padding: 0 calc(32 / 1000 * 100%);
}
.c-imggroup2026__item {
  flex: 1;
  max-width: 440px;
}
.c-imggroup2026__item img {
  width: 100%;
  height: auto;
  display: block;
  object-fit: cover;
}
.c-imggroup2026--3col .c-imggroup2026__item {
  max-width: 216px;
}


/* 10. .c-btn2026 — 青背景丸角CTAボタン */
.c-btn2026,
.c-btn2026:link,
.c-btn2026:visited,
.c-btn2026:hover,
.c-btn2026:active {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 266px;
  height: 45px;
  padding: 8px 36px 8px 24px;
  --c2026-accent: var(--c2026-main);
  background: var(--c2026-accent);
  color: var(--c2026-white);
  font-weight: 600;
  font-size: 16px;
  line-height: 1.8;
  text-decoration: none;
  border-radius: 50px;
  white-space: nowrap;
  transition: opacity .2s ease;
}
.c-btn2026:hover {
  opacity: 0.85;
}
.c-btn2026__arrow {
  position: absolute;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);
}
.c-btn2026--testsystem,
.c-btn2026--testsystem:link,
.c-btn2026--testsystem:visited,
.c-btn2026--testsystem:hover,
.c-btn2026--testsystem:active {
  --c2026-accent: var(--c2026-testsystem);
}
.c-btn2026--index,
.c-btn2026--index:link,
.c-btn2026--index:visited,
.c-btn2026--index:hover,
.c-btn2026--index:active {
  --c2026-accent: var(--c2026-index);
}
.c-btn2026--down .c-btn2026__arrow {
  transform: translateY(-50%) rotate(90deg);
}
.c-btn2026-wrap {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 12px 16px;
  width: 100%;
}


/* 11. .c-card-link2026 — 関連リンクカード */
.c-card-link2026,
.c-card-link2026:link,
.c-card-link2026:visited,
.c-card-link2026:hover,
.c-card-link2026:active {
  --c2026-accent: var(--c2026-circle);
  --c2026-tint:   var(--c2026-bg-orange);
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 350px;
  height: 64px;
  padding-right: 16px;
  border-left: 5px solid var(--c2026-accent);
  background: var(--c2026-tint);
  text-decoration: none;
  color: inherit;
  overflow: hidden;
  transition: opacity .2s ease;
}
.c-card-link2026:hover {
  opacity: 0.85;
}
.c-card-link2026__icon {
  width: 80px;
  height: 64px;
  flex-shrink: 0;
}
.c-card-link2026__icon img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.c-card-link2026__label {
  flex: 1;
  font-weight: 600;
  font-size: clamp(14px, 1.7vw, 20px);
  line-height: 1.8;
  color: var(--c2026-accent);
  white-space: nowrap;
  text-align: center;
}
.c-card-link2026--scala,
.c-card-link2026--scala:link,
.c-card-link2026--scala:visited,
.c-card-link2026--scala:hover,
.c-card-link2026--scala:active {
  --c2026-accent: var(--c2026-scala);
  --c2026-tint:   var(--c2026-bg-blue);
}
.c-card-link2026--crais,
.c-card-link2026--crais:link,
.c-card-link2026--crais:visited,
.c-card-link2026--crais:hover,
.c-card-link2026--crais:active {
  --c2026-accent: var(--c2026-crais);
  --c2026-tint:   var(--c2026-bg-pink);
}

.c-card-link2026-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  width: 100%;
}
.c-card-link2026-list > .c-card-link2026 + .c-card-link2026 {
  margin-left: 16px;
}
.c-card-link2026-list__caption {
  width: 100%;
  font-weight: 600;
  color: var(--c2026-main);
  text-align: center;
  margin: 0 0 16px;
}


/* 12. .c-qa-section2026 — Q&Aセクションのページラッパー（dotted区切り） */
.c-qa-section2026 {
  max-width: var(--c2026-content-w);
  margin: 80px auto 0;
  padding: 24px 0 0;
  border-top: 1px solid var(--c2026-main);
}


/* 12b. .c-qa2026 — Q&Aセクション */
.c-qa2026 {
  display: flex;
  flex-direction: column;
  gap: 24px;
  width: 100%;
}
.c-qa2026__item {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  background: var(--c2026-white);
}
.l-contents .c-qa2026__q {
  display: block;
  width: 100%;
  background: var(--c2026-bg-paleblue);
  padding: 8px 24px 8px calc(24px + 1.5em);
  text-indent: -1.3em;
  margin: 0;
  font-weight: 600;
}
.c-qa2026__q-mark {
  color: var(--c2026-main);
  margin-right: 0.25em;
}
.c-qa2026__a {
  margin: 0;
  padding: 0 46px;
}


/* 13. .c-readmore2026 — 「さらに詳しく」セクション */
.c-readmore2026 {
  --c2026-accent: var(--c2026-circle);
  --c2026-tint:   var(--c2026-bg-orange);
  position: relative;
  width: 100%;
  max-width: 796px;
  min-height: 338px;
  margin: 110px auto 0;
}
.c-readmore2026__panel {
  position: absolute;
  left: 0;
  top: 0;
  width: 600px;
  padding: 28px 28px 36px;
  background: var(--c2026-tint);
  display: flex;
  flex-direction: column;
  gap: 20px;
  overflow: hidden;
  box-sizing: border-box;
}
.c-readmore2026__head {
  margin: 0;
  font-weight: 600;
  color: var(--c2026-accent);
  font-size: clamp(14px, 1.7vw, 20px);
  line-height: 1.8;
}
.c-readmore2026__list {
  list-style: none;
  margin: 0;
  padding: 0 16px;
  width: 263px;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.c-readmore2026__list li {
  display: flex;
  align-items: center;
  gap: 10px;
}
.c-readmore2026__list li::before {
  content: "";
  flex-shrink: 0;
  width: 12px;
  height: 2px;
  background: var(--c2026-accent);
}
.c-readmore2026__list a,
.c-readmore2026__list a:link,
.c-readmore2026__list a:visited,
.c-readmore2026__list a:hover,
.c-readmore2026__list a:active {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  color: var(--c2026-text-light);
  text-decoration: none;
  white-space: nowrap;
  transition: opacity .2s ease;
}
.c-readmore2026__list a:hover {
  opacity: 0.7;
}
.c-readmore2026__image {
  position: absolute;
  left: 365px;
  top: 64px;
  width: 410px;
  height: 273px;
  overflow: hidden;
}
.c-readmore2026__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.c-readmore2026--scala { --c2026-accent: var(--c2026-scala); --c2026-tint: var(--c2026-bg-blue); }


/* 14. .c-section-label2026 — セクション内ラベル（左バー＋テキスト） */
.l-contents .c-section-label2026 {
  --c2026-label-color: var(--c2026-main);
  display: flex;
  align-items: center;
  gap: 10px;
  font-weight: 600;
  font-size: clamp(14px, 1.5vw, 18px);
  line-height: 1.4;
  color: var(--c2026-label-color);
  margin: 0 0 8px;
  padding: 0;
}
.l-contents .c-section-label2026::before {
  content: "";
  display: inline-block;
  width: 4px;
  height: 25px;
  background: var(--c2026-label-color);
  border-radius: 2px;
  flex-shrink: 0;
}
/* テストシステムセクション内のラベルはテーマカラー（緑）で切り分け（circle/scala共通） */
.l-contents .c-testsystem-section2026 .c-section-label2026 {
  --c2026-label-color: var(--c2026-testsystem);
}


/* 14b. .c-flowbadge2026 — pillラベル（図の上に置く小バッジ・背景はページのキーカラーで切り分け） */
.c-flowbadge2026 {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px 12px;
  background: var(--c2026-scala);  /* default */
  color: var(--c2026-white);
  font-weight: 600;
  font-size: 12px;
  line-height: 1.8;
  border-radius: 8px;
  white-space: nowrap;
}
/* ページごとにキーカラーで切り分け（circle=オレンジ / scala=水色） */
.p-circle2026 .c-flowbadge2026 { background: var(--c2026-circle); }
.p-scala2026 .c-flowbadge2026 { background: var(--c2026-scala); }


/* 14c. .c-emph2026 — 本文中のインライン強調（青ボールド） */
.c-emph2026 {
  color: var(--c2026-main);
  font-weight: 600;
}


/* 14c-2. .c-note2026 — ※注釈テキスト（12px） */
.c-note2026 {
  font-size: 12px;
  line-height: 1.8;
  margin: 0;
}


/* 14d. .c-sectionhead2026 — 大セクション開始ヘッダー（青pill + 右矢印尾） */
.l-contents .c-sectionhead2026 {
  --c2026-sectionhead-bg: var(--c2026-main);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  position: relative;
  background: var(--c2026-sectionhead-bg);
  color: var(--c2026-white);
  font-family: var(--c2026-font-mincho);
  font-weight: 600;
  font-size: clamp(18px, 1.8vw, 22px);
  line-height: 1.4;
  padding: 12px 35px 12px 24px;
  min-width: 240px;
  margin: 0;
  clip-path: polygon(0 0, calc(100% - 11px) 0, 100% 50%, calc(100% - 11px) 100%, 0 100%);
}
.l-contents .c-sectionhead2026--testsystem { --c2026-sectionhead-bg: var(--c2026-testsystem); }
.l-contents .c-sectionhead2026--index      { --c2026-sectionhead-bg: var(--c2026-index); }


/* 14e. .c-point2026 — POINT バッジ画像 + 説明文 */
.l-contents .c-point2026 {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  width: 100%;
}
.l-contents .c-point2026__badge {
  flex-shrink: 0;
  display: block;
  width: 56px;
  height: 56px;
  margin: 0;
  padding: 0;
}
.l-contents .c-point2026__badge img {
  display: block;
  width: 100%;
  height: 100%;
}
.c-point2026__text {
  flex: 1;
  margin: 0;
  padding-top: 4px;
}


/* 14f. .c-subhead2026 — em-dash 付き小見出し（青） */
.l-contents .c-subhead2026 {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  font-size: clamp(14px, 1.5vw, 18px);
  line-height: 1.4;
  color: var(--c2026-main);
  margin: 0 0 8px;
  padding: 0;
}
.l-contents .c-subhead2026::before {
  content: "";
  display: inline-block;
  width: 12px;
  height: 1px;
  background: var(--c2026-main);
  flex-shrink: 0;
}


/* 15. .c-trial-banner2026 — 無料体験バナー枠 */
.c-trial-banner2026 {
  display: flex;
  justify-content: center;
  width: 100%;
  max-width: 600px;
  margin: 0 auto;
}
.c-trial-banner2026 a {
  display: block;
  width: 100%;
  transition: opacity .2s ease;
}
.c-trial-banner2026 a:hover {
  opacity: 0.85;
}
.c-trial-banner2026 img {
  width: 100%;
  height: auto;
  display: block;
}


/* 15b. 見出し群の字間 */
.c-hero2026__title,
.c-pagekv2026__title,
.c-title2026,
.c-heading2026,
.l-contents .c-sectionhead2026,
.c-method2026__name,
.c-intro2026__head {
  letter-spacing: 0.05em;
}


/* 16. タブレット〜デスクトップ手前（641px〜1024px）調整 */
@media (min-width: 641px) and (max-width: 1024px) {
  .c-hero2026__inner {
    padding: 71px 16px 0 calc(180 / 1440 * 100%);
  }
  .c-hero2026::before {
    width: calc(12% - 20px);
    top: 97px;
  }
  .c-hero2026__image img {
    object-position: right 40% top 0;
  }
}

@media (max-width: 1024px) {
  .c-pagekv2026__title {
    left: calc(56 / 1440 * 100%);
  }
  .c-pagekv2026::before {
    width: calc(56 / 1440 * 100% - 9px);
  }
}


/* 17. SP（<=640px）本文テキスト切替 */
@media (max-width: 640px) {
  .c-btn2026 {
    font-size: 14px;
  }
}


/* ▼ ここから先：各ページ固有スタイル */


/* p-about2026 — aboutページ固有スタイル */

.p-about2026__methods {
  max-width: var(--c2026-content-w);
  margin: 80px auto 0;
}
.p-about2026__methods > .c-section2026 {
  margin-top: 48px;
}

.p-about2026__dreampass > * + * {
  margin-top: 32px;
}
.p-about2026__dreampass > .c-card-link2026-list + .c-card-link2026-list {
  margin-top: 80px;
}

.p-about2026__dreampass-logo {
  display: flex;
  justify-content: center;
  width: 100%;
}
.p-about2026__dreampass-logo img {
  width: 180px;
  height: auto;
  display: block;
}

/* Section 6: 無料体験授業バナー */
.p-about2026__trial {
  max-width: var(--c2026-content-w);
  margin: 64px auto 0;
  padding-top: 64px;
  border-top: var(--c2026-divider);
}


/* p-circle2026 — circleページ固有スタイル */

/* Section 2: 導入 */
.p-circle2026__intro,
.p-scala2026__intro {
  max-width: var(--c2026-content-w);
  margin: 80px auto;
  padding: 0 calc(16 / 1000 * 100%);
}

/* Section 3: アイコンリンクメニュー */
.p-circle2026__menu,
.p-scala2026__menu {
  max-width: var(--c2026-content-w);
  margin: 40px auto 0;
  padding: 0 calc(16 / 1000 * 100%);
}


.p-circle2026__menu .c-iconcards2026__item:nth-child(3) { --c2026-icon-top: 13px; }
.p-circle2026__menu .c-iconcards2026__item:nth-child(4) { --c2026-icon-top: 5px; }
.p-scala2026__menu .c-iconcards2026__item:nth-child(2) { --c2026-icon-top: 13px; }
.p-scala2026__menu .c-iconcards2026__item:nth-child(4) { --c2026-icon-top: 5px; }

/* Section 4: 段階別育成 DREAM PASS のご紹介（共通パーツ） */
.c-dreampass-section2026 {
  max-width: var(--c2026-content-w);
  margin: 80px auto 0;
  padding: 24px calc(16 / 1000 * 100%) 0;
  border-top: 1px solid var(--c2026-main);
  text-align: center;
}
.c-dreampass-section2026 .c-heading2026 {
  text-align: left;
  margin: 0;
}
.c-dreampass-section2026__lead {
  margin: 32px 0 0;
  text-align: left;
}
.c-dreampass-section2026__figure {
  margin: 48px auto 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: 100%;
}
.c-dreampass-section2026__figure .c-flowbadge2026 {
  margin-bottom: 36px;
}
.c-dreampass-section2026__figure img {
  width: 100%;
  max-width: 860px;
  height: auto;
  display: block;
}
.c-dreampass-section2026 .c-btn2026-wrap {
  margin-top: 40px;
}


/* .c-dpposition2026 — DREAM PASS全体での位置 パネル（共通） */
.c-dpposition2026 {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  background: var(--c2026-bg-paleblue);
  padding: 16px 4% 24px;
}
.c-dpposition2026__label {
  font-weight: 600;
  font-size: 12px;
  line-height: 1.8;
  color: #878787;
  margin: 0;
  text-align: center;
}
.c-dpposition2026 img {
  width: 100%;
  max-width: 500px;
  height: auto;
  display: block;
}


/* Section 5: パワーアップ指導（共通パーツ） */
.c-powerup-section2026 {
  max-width: var(--c2026-content-w);
  margin: 80px auto 0;
}
.c-powerup-section2026__position,
.c-testsystem-section2026__position,
.c-index-section2026__position {
  margin-top: 16px;
}
/* 5-2: 目的別らせん型カリキュラム */
.c-powerup-section2026__spiral {
  margin-top: 32px;
  padding-bottom: 40px;
}
.c-powerup-section2026__spiral-body {
  display: flex;
  align-items: flex-start;
  gap: 82px;
  padding-left: 24px;
}
.c-powerup-section2026__spiral-left {
  flex: 0 0 472px;
  max-width: 472px;
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.c-powerup-section2026__spiral-left-img {
  display: flex;
  justify-content: center;
  margin-top: 32px;
}
.c-powerup-section2026__spiral-left-img img {
  width: 180px;
  height: auto;
  display: block;
}
.c-powerup-section2026__spiral-right {
  flex: 0 0 422px;
  max-width: 422px;
}
.c-powerup-section2026__spiral-right img {
  width: 100%;
  height: auto;
  display: block;
}
/* 5-3: 学力3要素の育成 */
.c-powerup-section2026__three {
  padding-top: 40px;
  border-top: var(--c2026-divider);
}
.c-powerup-section2026__three-lead {
  padding-left: 24px;
  margin: 0;
}
/* 共通: テキスト + 画像 横並びブロック（.c-figblock2026） */
.c-figblock2026 {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--c2026-fig-gap, 30px);
}
.c-figblock2026__text {
  flex: 0 0 var(--c2026-fig-text-w, 592px);
  max-width: var(--c2026-fig-text-w, 592px);
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.c-figblock2026__text > p {
  margin: 0;
}
.c-figblock2026__img {
  flex: 0 0 var(--c2026-fig-img-w, 300px);
  max-width: var(--c2026-fig-img-w, 300px);
}
.c-figblock2026__img img {
  width: 100%;
  height: auto;
  display: block;
}

.c-powerup-section2026__three-block {
  --c2026-fig-text-w: 593px;
  --c2026-fig-img-w: 350px;
  --c2026-fig-gap: 33px;
  padding-left: 24px;
  margin-top: 32px;
}
.c-powerup-section2026__three-block + .c-powerup-section2026__three-block {
  margin-top: 32px;
  margin-left: 24px;
  padding-top: 32px;
  padding-left: 0;
  border-top: var(--c2026-divider);
}


/* Section 6: テストシステム（共通パーツ） */
.c-testsystem-section2026 {
  max-width: var(--c2026-content-w);
  margin: 80px auto 0;
}

.c-testsystem-section2026__lead {
  margin: 28px 0 0;
}
.c-testsystem-section2026__block {
  --c2026-fig-text-w: 592px;
  --c2026-fig-img-w: 300px;
  padding: 32px 0;
}
.c-testsystem-section2026__block:not(:last-child) {
  border-bottom: var(--c2026-divider);
}
.c-testsystem-section2026__block:last-child {
  padding-bottom: 0;
}
.c-testsystem-section2026__block .c-figblock2026__text > p {
  padding-left: 24px;
}


/* p-scala2026 — scalaページ固有スタイル */

/* Section 2 導入（Figma node 98:1537） */
.p-scala2026__intro .c-intro2026__text {
  flex: 0 1 639px;
  max-width: 639px;
}
.p-scala2026__intro .c-intro2026__image {
  max-width: 250px;
}

/* Section 4 DREAM PASSボタン（Figma node 173:2419） */
.p-scala2026 .c-dreampass-section2026 .c-btn2026-wrap {
  max-width: 560px;
  margin-left: auto;
  margin-right: auto;
}

/* Section 5-1 NSG教育研究会オリジナルテキスト紹介（SCALA固有・Figma node 173:4575） */
.c-powerup-section2026__textbook {
  margin-top: 48px;
  padding-bottom: 32px;
}
.c-powerup-section2026__textbook-body {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  padding-left: 24px;
}
.c-powerup-section2026__textbook-body p {
  width: 100%;
  margin: 0;
}
.c-powerup-section2026__textbook-img {
  width: 350px;
  max-width: 100%;
}
.c-powerup-section2026__textbook-img img {
  width: 100%;
  height: auto;
  display: block;
}

/* Section 5-3 学力指標マークでスモールステップ学習（SCALA固有・Figma node 98:1817） */
.c-powerup-section2026__mark {
  margin-top: 40px;
  padding-top: 40px;
  border-top: var(--c2026-divider);
  padding-bottom: 40px;
}
.c-powerup-section2026__mark-body {
  --c2026-fig-text-w: 472px;
  --c2026-fig-img-w: 350px;
  padding-left: 24px;
}
.c-powerup-section2026__mark-box {
  background: var(--c2026-bg-paleblue);
  padding: 20px;
}
.c-powerup-section2026__mark-box p {
  margin: 0;
}


/* Section 7: オリジナル学力指標（SCALA固有・新規） */
.c-index-section2026 {
  max-width: var(--c2026-content-w);
  margin: 80px auto 0;
}
/* リード + 2つの表ブロックを薄オレンジ背景で一塊に（Figma node 143:928） */
.c-index-section2026__panel {
  margin-top: 40px;
  padding: 40px 0 64px;
  background: var(--c2026-bg-paleorange);
}
.c-index-section2026__lead {
  max-width: 936px;
  margin: 0 auto;
}
.c-index-section2026__block {
  margin-top: 40px;
}
.c-index-section2026__subhead {
  margin: 0;
  font-weight: 600;
  color: var(--c2026-main);
  font-size: clamp(15px, 1.8vw, 18px);
  line-height: 1.8;
  text-align: center;
}
.c-index-section2026__table-img {
  width: 100%;
  max-width: 860px;
  margin: 24px auto 0;
}
.c-index-section2026__table-img img {
  width: 100%;
  height: auto;
  display: block;
}
.c-index-section2026__block .c-note2026 {
  margin-top: 16px;
  text-align: center;
}
.c-index-section2026__block .c-note2026 + .c-note2026 {
  margin-top: 4px;
}

/* 高校難易度との関係テーブル（Figma node 138:875） */
.c-ranktable2026 {
  width: 100%;
  max-width: 670px;
  margin: 24px auto 0;
  border-collapse: separate;
  border-spacing: 0;
}
.c-ranktable2026 th,
.c-ranktable2026 td {
  height: 45px;
  vertical-align: middle;
}
.c-ranktable2026 tr {
  --c2026-rank-color: var(--c2026-main);
}
.c-ranktable2026 tr.c-ranktable2026__row--b {
  --c2026-rank-color: var(--c2026-rank-b);
}
.c-ranktable2026 th {
  width: 58px;
  background: var(--c2026-rank-color);
  color: var(--c2026-white);
  font-weight: 600;
  text-align: center;
  border-bottom: 1px solid var(--c2026-white);
}
.c-ranktable2026 td {
  background: var(--c2026-white);
  padding: 0 20px;
  line-height: 1.8;
  border-top: 1px solid var(--c2026-rank-color);
  border-right: 1px solid var(--c2026-rank-color);
}
.c-ranktable2026 tr:last-child td {
  border-bottom: 1px solid var(--c2026-rank-color);
}
.c-ranktable2026 tr:last-child th {
  border-bottom-color: var(--c2026-rank-color);
}


/* 17b. ページ内アンカーのスクロール位置調整 */
.c-powerup-section2026,
.c-testsystem-section2026,
.c-index-section2026,
.c-qa-section2026 {
  scroll-margin-top: 150px;
}


/* 18. SP (≤640px) レスポンシブ対応 — 標準（縦積み＋左右4%余白） */
@media (max-width: 640px) {
  .p-circle2026 > *:not(.c-pagekv2026),
  .p-scala2026 > *:not(.c-pagekv2026),
  .p-about2026 > *:not(.c-hero2026) {
    padding-left: 4%;
    padding-right: 4%;
  }

  .c-qa-section2026,
  .c-dreampass-section2026,
  .c-powerup-section2026,
  .c-testsystem-section2026,
  .c-index-section2026,
  .p-about2026__methods {
    margin-top: 64px;
  }
  .c-powerup-section2026,
  .c-testsystem-section2026,
  .c-index-section2026,
  .c-qa-section2026 {
    scroll-margin-top: 80px;
  }
  .p-circle2026__intro,
  .p-scala2026__intro {
    margin: 32px auto 0;
  }

  .p-about2026__methods > .c-section2026 {
    margin-top: 32px;
  }
  .c-section2026 > .c-section2026__block + .c-section2026__block {
    margin-top: 32px;
    padding-top: 32px;
  }
  .c-section2026__block > * + * {
    margin-top: 32px;
  }
  .c-imggroup2026 {
    gap: 8px;
  }
  .p-about2026__dreampass > * + * {
    margin-top: 24px;
  }
  .p-about2026__dreampass > .c-card-link2026-list + .c-card-link2026-list {
    margin-top: 56px;
  }
  .p-about2026__trial {
    margin-top: 44px;
    padding-top: 44px;
  }

  .c-intro2026__body {
    flex-direction: column;
    align-items: stretch;
    gap: 24px;
  }
  .c-intro2026__text,
  .p-scala2026__intro .c-intro2026__text {
    flex-basis: auto;
    max-width: 100%;
  }
  .c-intro2026__image,
  .p-scala2026__intro .c-intro2026__image {
    max-width: 100%;
  }

  .c-figblock2026 {
    --c2026-fig-text-w: 100%;
    flex-direction: column;
    gap: 24px;
  }
  .c-figblock2026__img {
    flex: 0 0 auto;
    width: 90%;
    max-width: 420px;
    align-self: center;
  }
  .c-powerup-section2026__three {
    padding-top: 32px;
  }
  .c-powerup-section2026__three-lead {
    padding-left: 0;
  }
  .c-powerup-section2026__three-block,
  .c-powerup-section2026__three-block + .c-powerup-section2026__three-block {
    padding-left: 0;
    margin-left: 0;
  }
  .c-powerup-section2026__three-block {
    margin-top: 24px;
  }
  .c-powerup-section2026__position,
  .c-testsystem-section2026__position,
  .c-index-section2026__position {
    margin-top: 12px;
  }
  .c-powerup-section2026__textbook {
    margin-top: 32px;
    padding-bottom: 24px;
  }
  .c-powerup-section2026__textbook-img {
    width: 80%;
    max-width: 300px;
  }
  .c-dreampass-section2026__lead {
    margin: 16px 0 0;
  }
  .c-dreampass-section2026 .c-btn2026-wrap {
    margin-top: 24px;
  }
  .c-dreampass-section2026__figure {
    margin: 32px auto 0;
  }
  .c-dreampass-section2026__figure .c-flowbadge2026 {
    margin-bottom: 20px;
  }
  .c-testsystem-section2026__lead {
    margin: 24px 0 0;
  }
  .c-testsystem-section2026__block {
    padding: 24px 0;
  }
  .c-testsystem-section2026__block:last-child {
    padding-bottom: 0;
  }
  .c-powerup-section2026__three-block + .c-powerup-section2026__three-block {
    margin-top: 24px;
    margin-left: 0;
    padding-top: 24px;
  }
  .c-powerup-section2026__mark {
    margin-top: 24px;
    padding-top: 24px;
    padding-bottom: 0;
  }
  .c-powerup-section2026__mark-body {
    padding-left: 0;
  }
  .c-testsystem-section2026__block .c-figblock2026__text > p {
    padding-left: 0;
  }

  .c-powerup-section2026__spiral {
    padding-bottom: 32px;
  }
  .c-powerup-section2026__spiral-body {
    flex-direction: column;
    gap: 24px;
    padding-left: 0;
  }
  .c-powerup-section2026__spiral-left,
  .c-powerup-section2026__spiral-right {
    flex: 0 0 auto;
    max-width: 100%;
  }
  .c-powerup-section2026__spiral-left-img {
    margin-top: 0;
    padding-left: 9%;
  }

  .p-circle2026__menu,
  .p-scala2026__menu {
    margin: 24px auto 0;
  }

  .c-iconcards2026 {
    --c2026-icon-top-sp: 3.3vw;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0 4vw;
    align-items: stretch;
  }
  .c-iconcards2026__item {
    display: flex;
    width: auto;
    max-width: none;
    min-width: 0;
    padding-top: 12vw;
    --c2026-icon-top: var(--c2026-icon-top-sp);
  }
  .c-iconcards2026__link {
    width: 100%;
  }
  .p-scala2026__menu .c-iconcards2026__item:nth-child(2) {
    --c2026-icon-top: 4.5vw;
  }
  .p-scala2026__menu .c-iconcards2026__item:nth-child(4) {
    --c2026-icon-top: 2.5vw;
  }
  .p-circle2026__menu .c-iconcards2026__item:nth-child(3) {
    --c2026-icon-top: 4.5vw;
  }
  .p-circle2026__menu .c-iconcards2026__item:nth-child(4) {
    --c2026-icon-top: 3.5vw;
  }
  .c-iconcards2026__icon {
    width: 10vw;
  }
  .c-iconcards2026__link,
  .c-iconcards2026__link:link,
  .c-iconcards2026__link:visited,
  .c-iconcards2026__link:hover,
  .c-iconcards2026__link:active {
    min-height: 20vw;
    padding: 15px 10px;
  }
  .c-iconcards2026__label-sub {
    font-size: 3.2vw;
  }
  .c-iconcards2026__label-main {
    font-size: 4vw;
  }

  .c-index-section2026__panel {
    margin-top: 24px;
    padding: 24px 4%;
  }
  .c-index-section2026__block {
    margin-top: 24px;
  }
  .c-index-section2026__table-img,
  .c-ranktable2026 {
    max-width: 100%;
    margin: 12px auto 0;
  }

  .c-qa2026 {
    gap: 24px;
  }

  .c-title2026 {
    font-size: clamp(32px, 3.7vw, 40px);
  }
  .c-heading2026 {
    font-size: min(6.4vw, 28px);
    margin: 0 0 24px;
  }
  .l-contents .c-sectionhead2026 { 
    font-size: 20px;
  }
  .c-readmore2026__head { font-size: 18px; }

  .c-card-link2026,
  .c-card-link2026:link,
  .c-card-link2026:visited,
  .c-card-link2026:hover,
  .c-card-link2026:active {
    width: 100%;
  }
  .c-card-link2026-list > .c-card-link2026 + .c-card-link2026 {
    margin-left: 0;
    margin-top: 16px;
  }

  .c-intro2026__head {
    font-size: clamp(20px, 4.8vw, 30px);
    text-align: center;
  }
  .c-intro2026__body { gap: 20px; }
  .c-intro2026__image {
    align-self: center;
  }
  .p-scala2026__intro .c-intro2026__image {
    width: 60%;
    max-width: 300px;
  }
  .p-circle2026__intro .c-intro2026__image {
    width: 80%;
    max-width: 380px;
  }

  .c-hero2026 { min-height: 0; }
  .c-hero2026::before { display: none; }
  .c-hero2026__image {
    position: static;
    width: 100%;
    height: auto;
    aspect-ratio: 402 / 220;
    max-height: none;
  }
  .c-hero2026__inner {
    position: static;
    padding: 0 16px 32px;
  }
  .c-hero2026__title {
    position: relative;
    z-index: 1;
    display: inline-block;
    margin-top: -72px;
    padding: 12px 16px;
    background: rgba(255, 255, 255, 0.8);
    font-size: clamp(36px, 7.5vw, 46px);
    line-height: 1.6;
    margin-left: -16px;
  }
  .c-hero2026__body {
    margin-top: 24px;
    font-size: 16px;
    line-height: 1.7;
  }

  .c-pagekv2026 {
    min-height: 0;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
  }
  .c-pagekv2026::before { display: none; }
  .c-pagekv2026__image {
    position: static;
    width: 86%;
    height: auto;
    aspect-ratio: 519 / 330;
  }
  .c-pagekv2026__title {
    position: static;
    align-self: flex-start;
    margin-top: -34px;
    font-size: min(6.5vw, 32px);
    padding-left: 4%;
  }

  .c-readmore2026 {
    min-height: 0;
    margin: 60px auto 20px;
  }
  .c-readmore2026__panel {
    position: static;
    width: 100%;
    gap: 12px;
  }
  .c-readmore2026__image {
    position: static;
    width: 75%;
    max-width: 346px;
    height: auto;
    margin: -24px auto 0;
  }
  .c-readmore2026__image img {
    height: auto;
  }
}

