/* Google Fonts (Noto Sans JP / Noto Serif JP) は functions.php の wp_enqueue_style で <link> 読込。
   CSS @import はレンダリングブロック発生するため廃止。HTTP参照も HTTPS に統一 (B-19 Mixed Content対応)。 */

/* Issue #229 (B-NEW-10): PilGi.ttf (4.63MB) は OTS parsing error / NetworkError 発生のため
   @font-face 宣言を撤去。代替は Noto Serif JP (既存読み込み済み Google Fonts)。 */

/* =====================================================
  共通スタイル
  clever theme
===================================================== */

body {
  font-family: 'Noto Sans JP', sans-serif;

  /* デフォルトの上下グラデーション (装飾なしページ用)。
     !important を外すことで per-page の background-image スタックが装飾を重ねられるようにした。
     装飾ありのページ (.home / .page-id-* / .single-*) では下記の per-page 規則で
     repeating-linear-gradient を最下層レイヤーとして再宣言してこの gradient を引き継ぐ。 */
  background-image: repeating-linear-gradient(to bottom,
      #F1F8FA 0px,
      #FFFFFF 2000px,
      #F1F8FA 4000px);
  background-color: #F1F8FA;

  /* 全ページ共通: 装飾を Figma 設計幅 1512px 基準で縮小 (TOP の .aoi-top-bg と同じ原則)。 */
  --aoi-design-w: min(100vw, 1512px);
}

/* 背景装飾レイヤー (TOP)
   画像自然サイズ: Subtract 1115, Subtract-1 762, Vector 896, Vector-1 640, Subtract-2 1032
   最下層に repeating-linear-gradient を再宣言して body のデフォルト背景を引き継ぐ */
.home {
  background-image:
    url("../assets/images/uploads/Subtract.svg"),
    url("../assets/images/uploads/Subtract-1.svg"),
    url("../assets/images/uploads/Vector.svg"),
    url("../assets/images/uploads/Vector-1.svg"),
    url("../assets/images/uploads/Subtract-2.svg"),
    url("../assets/images/uploads/Vector-1.svg"),
    repeating-linear-gradient(to bottom, #F1F8FA 0px, #FFFFFF 2000px, #F1F8FA 4000px);

  background-repeat:
    no-repeat, no-repeat, no-repeat, no-repeat, no-repeat, no-repeat,
    repeat;

  background-attachment:
    local, local, local, local, local, local,
    fixed;

  background-size:
    calc(1115 * var(--aoi-design-w) / 1512) auto,
    calc(762 * var(--aoi-design-w) / 1512) auto,
    calc(896 * var(--aoi-design-w) / 1512) auto,
    calc(640 * var(--aoi-design-w) / 1512) auto,
    calc(1032 * var(--aoi-design-w) / 1512) auto,
    calc(640 * var(--aoi-design-w) / 1512) auto,
    auto;

  background-position:
    top calc(2000 * var(--aoi-design-w) / 1512) right calc(-500 * var(--aoi-design-w) / 1512),
    top calc(3000 * var(--aoi-design-w) / 1512) left calc(-201 * var(--aoi-design-w) / 1512),
    top calc(4200 * var(--aoi-design-w) / 1512) right calc(-300 * var(--aoi-design-w) / 1512),
    top calc(5600 * var(--aoi-design-w) / 1512) left calc(-101 * var(--aoi-design-w) / 1512),
    top calc(7000 * var(--aoi-design-w) / 1512) right calc(-504 * var(--aoi-design-w) / 1512),
    top calc(8000 * var(--aoi-design-w) / 1512) left calc(-300 * var(--aoi-design-w) / 1512),
    0 0;
}

/* 4 レイヤー: lesson / service-tensaku / service-new / blog / single-post / privacy / terms 等
   (about / teachers は 204deg gradient を使うため別ブロック) */
.page-id-26,
.page-id-168,
.page-id-176,
.page-id-733,
.page-id-721,
.single-post,
.page-id-610,
.page-id-9,
.page-id-12,
.page-id-14 {
  background-image:
    url("../assets/images/uploads/Vector.svg"),
    url("../assets/images/uploads/Subtract.svg"),
    url("../assets/images/uploads/Subtract-3.png"),
    url("../assets/images/uploads/Vector-1.svg"),
    repeating-linear-gradient(to bottom, #F1F8FA 0px, #FFFFFF 2000px, #F1F8FA 4000px);

  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, repeat;
  background-attachment: local, local, local, local, fixed;

  background-size:
    calc(896 * var(--aoi-design-w) / 1512) auto,
    calc(1115 * var(--aoi-design-w) / 1512) auto,
    calc(606 * var(--aoi-design-w) / 1512) auto,
    calc(640 * var(--aoi-design-w) / 1512) auto,
    auto;

  background-position:
    top calc(2000 * var(--aoi-design-w) / 1512) left calc(-500 * var(--aoi-design-w) / 1512),
    top calc(3200 * var(--aoi-design-w) / 1512) right calc(-601 * var(--aoi-design-w) / 1512),
    top calc(3800 * var(--aoi-design-w) / 1512) left calc(-300 * var(--aoi-design-w) / 1512),
    top calc(4500 * var(--aoi-design-w) / 1512) right calc(-101 * var(--aoi-design-w) / 1512),
    0 0;
}

/* about / teachers / single-instructor: 204deg gradient + 同じ装飾 4 枚 */
.page-id-151,
.page-id-28,
.single-instructor {
  background-image:
    url("../assets/images/uploads/Vector.svg"),
    url("../assets/images/uploads/Subtract.svg"),
    url("../assets/images/uploads/Subtract-3.png"),
    url("../assets/images/uploads/Vector-1.svg"),
    linear-gradient(204deg, #f1f8fa 38.41%, #ffffff 91.05%);

  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, no-repeat;
  background-attachment: local, local, local, local, fixed;

  background-size:
    calc(896 * var(--aoi-design-w) / 1512) auto,
    calc(1115 * var(--aoi-design-w) / 1512) auto,
    calc(606 * var(--aoi-design-w) / 1512) auto,
    calc(640 * var(--aoi-design-w) / 1512) auto,
    auto;

  background-position:
    top calc(2000 * var(--aoi-design-w) / 1512) left calc(-500 * var(--aoi-design-w) / 1512),
    top calc(3200 * var(--aoi-design-w) / 1512) right calc(-601 * var(--aoi-design-w) / 1512),
    top calc(3800 * var(--aoi-design-w) / 1512) left calc(-300 * var(--aoi-design-w) / 1512),
    top calc(4500 * var(--aoi-design-w) / 1512) right calc(-101 * var(--aoi-design-w) / 1512),
    0 0;
}

/* voice (page-id-31): 204deg gradient + 装飾 2 枚 */
.page-id-31 {
  background-image:
    url("../assets/images/uploads/Vector.svg"),
    url("../assets/images/uploads/Vector.svg"),
    linear-gradient(204deg, #f1f8fa 38.41%, #ffffff 91.05%);

  background-repeat: no-repeat, no-repeat, no-repeat;
  background-attachment: local, local, fixed;

  background-size:
    calc(896 * var(--aoi-design-w) / 1512) auto,
    calc(896 * var(--aoi-design-w) / 1512) auto,
    auto;

  background-position:
    top calc(2000 * var(--aoi-design-w) / 1512) right calc(-500 * var(--aoi-design-w) / 1512),
    top calc(3200 * var(--aoi-design-w) / 1512) left calc(-601 * var(--aoi-design-w) / 1512),
    0 0;
}

/* 2 レイヤー: contact / 他 (gradient はデフォルトの repeating) */
.page-id-33,
.page-id-785,
.page-id-119 {
  background-image:
    url("../assets/images/uploads/Vector.svg"),
    url("../assets/images/uploads/Vector.svg"),
    repeating-linear-gradient(to bottom, #F1F8FA 0px, #FFFFFF 2000px, #F1F8FA 4000px);

  background-repeat: no-repeat, no-repeat, repeat;
  background-attachment: local, local, fixed;

  background-size:
    calc(896 * var(--aoi-design-w) / 1512) auto,
    calc(896 * var(--aoi-design-w) / 1512) auto,
    auto;

  background-position:
    top calc(2000 * var(--aoi-design-w) / 1512) right calc(-500 * var(--aoi-design-w) / 1512),
    top calc(3200 * var(--aoi-design-w) / 1512) left calc(-601 * var(--aoi-design-w) / 1512),
    0 0;
}

/* 合格者の声 (single-voice): 桜の装飾 4 枚 + デフォルト repeating gradient */
.single-voice {
  background-image:
    url("../assets/images/uploads/sakura1.png"),
    url("../assets/images/uploads/sakura2.png"),
    url("../assets/images/uploads/sakura3.png"),
    url("../assets/images/uploads/sakura2.png"),
    repeating-linear-gradient(to bottom, #F1F8FA 0px, #FFFFFF 2000px, #F1F8FA 4000px);

  background-repeat: no-repeat, no-repeat, no-repeat, no-repeat, repeat;
  background-attachment: local, local, local, local, fixed;

  background-size:
    calc(330 * var(--aoi-design-w) / 1512) auto,
    calc(538 * var(--aoi-design-w) / 1512) auto,
    calc(723 * var(--aoi-design-w) / 1512) auto,
    calc(538 * var(--aoi-design-w) / 1512) auto,
    auto;

  background-position:
    top calc(60 * var(--aoi-design-w) / 1512) right calc(80 * var(--aoi-design-w) / 1512),
    top calc(500 * var(--aoi-design-w) / 1512) right calc(-100 * var(--aoi-design-w) / 1512),
    top calc(900 * var(--aoi-design-w) / 1512) left calc(-300 * var(--aoi-design-w) / 1512),
    top calc(2200 * var(--aoi-design-w) / 1512) right calc(-50 * var(--aoi-design-w) / 1512),
    0 0;
}

.aoi-cta-field {
  position: relative;
  border-radius: 20px;
}

/* ヘッダー */
/* メニュー */
.l-header,
.l-header__inner {
  position: relative;
  margin: 10px;
  width: calc(100% - 20px);
  border-radius: 20px;
  color: #1C4660;
}

.c-iconBtn {
  color: #3BCBCE;
}

/* フッター */
.l-footer__inner {
  color: #1C4660;
  font-weight: 500;
}

.c-widget__title.-footer::before {
  width: 100%;
}

.c-widget__title:after,
.c-widget__title:before {
  height: 0.5px;
}

@media (max-width: 768px) {
  .w-footer__box {
    padding-right: 2em;
  }
}

.l-footer__nav li {
  font-size: 12px;
}

@media (max-width: 768px) {
  .l-footer__nav li:first-child a {
    border-left: none;
  }

  .l-footer__nav li:last-child a {
    border-right: none;
  }

  .l-footer__nav a {
    padding: 0 1.25em;
  }
}

.footer-logo {
  text-align: center;
}

.footer-sns-icon {
  margin-top: 40px;
  text-align: center;
}

.footer-sns-icon-instagram {
  margin-right: 20px;
}

dl.footer-list {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
  font-size: 12px;
}

.footer-list dt {
  width: 30%;
  padding-bottom: 20px;
  margin-bottom: 10px;
}

.footer-list dd {
  width: 70%;
  padding-bottom: 20px;
  margin-bottom: 10px;
}

@media (max-width: 768px) {
  .l-footer {
    padding-bottom: 100px;
  }

  .l-footer__nav {
    justify-content: left;
  }

  .footer-list-sp a {
    font-size: 14px;
  }

  .l-footer__nav li:first-child {
    display: none;
  }

  .l-footer__nav li a {
    font-size: 12px;
    padding: 0px 16px;
    line-height: 3em;
    position: relative;
    display: inline-block;
  }

  .l-footer__nav li a::before {
    content: "";
    width: 1px;
    height: 50%;
    bottom: 8px;
    right: 0px;
    transform: translateX(-50%);
    position: absolute;
    background: #1C4660;
  }
}

.footer-area3 {
  display: flex;
  justify-content: space-between;
  font-size: 13px;
  color: #3c3c3c;
}

.footer-area3 li {
  margin-bottom: 30px;
}

.l-footer .copyright {
  font-size: 12px;
  text-align: center;
  margin-top: 30px;
  color: #878782;
}

.l-footer .copyright::before {
  content: "Copyright";
}

.c-widget__title.-footer {
  padding: .5em .5em .5em 0;
}

/* フローティングメニュー — clever テーマでは base.css が管理 */


/* =====================================================
  トップページ専用スタイル
===================================================== */

/* メインビジュアル */
.post_list_category_aoi_badge {
  background: #1C4660;
  padding: 8px 16px;
  border-radius: 18px;
  color: #ffffff;
}

@media (max-width: 768px) {
  .post_list_category_aoi_badge {
    padding: 2px 12px;
    font-size: 12px;
  }

  .top-news-bottom .p-postList__title {
    display: block;
    width: 100%;
  }
}

.icon-posted:before {
  content: "";
  /* 上書きしてアイコンを消す */
}

/* お知らせ: .aoi-fv-sp (画面いっぱい中央配置) の直下に重ならないよう通常フローで中央配置
   旧: PC で float:right + height:0 + top:-100 で FV 右上に被せる trick → .aoi-fv-sp と重なる原因のため撤去 */
.top-news-list {
  width: 100%;
  max-width: 800px;
  margin: 16px auto;
  height: auto;
  float: none;
  position: static;
}

.top-news-list .p-postList.-type-simple {
  border-top: none;
}

/* 旧テーマ由来の .is-hide-last--sp .p-postList__item:last-child { display: none } は
   SP/タブレット幅で「最後の 1 件を hide」する仕様だが、TOP のお知らせは 1 件のみ
   = last-child = 全件のためお知らせ全体が消えていた。.top-news-list スコープで打ち消す */
.top-news-list .p-postList.is-hide-last--sp .p-postList__item:last-child,
.top-news-list .is-hide-last--sp .p-postList__item:last-child {
  display: list-item !important;
}

/* タブレット/SP (<=959): PC 用の float right + height 0 + top -100 trick を解除し通常フローへ
   (PC では .top-news-list を 0 高にして右上に被せて見せる trick だが、タブレット/SP では後続要素と重なるため通常配置に戻す) */
@media (max-width: 959px) {
  .top-news-list {
    width: 100% !important;
    height: auto !important;
    float: none !important;
    right: auto !important;
    top: auto !important;
    position: static !important;
    margin: 16px 0 !important;
  }
}

/* =====================================================
   汎用 .sp_only / .pc_only 切替 (960px 境界 (旧テーマ標準と互換))
   旧テーマはベース display: none !important で両方を非表示にし、
   サブセレクタや特定 media query で個別に表示しているが、
   子テーマで使う figure.sp_only / figure.pc_only 等が SP/PC 切替されないため、
   ここで全体に汎用切替を当てる。FV の sp_only 画像 (受付中-1.png) などが対象
===================================================== */
@media (max-width: 959px) {
  .sp_only {
    display: revert !important;
  }
  .pc_only {
    display: none !important;
  }
}
@media (min-width: 960px) {
  .pc_only {
    display: revert !important;
  }
  .sp_only {
    display: none !important;
  }
}

/* =====================================================
   SP/タブレット (<=959): メインビジュアル (.p-mainVisual) を SP に最低限フィットさせる
   注意: <picture> の SP 用 <source> に srcset が空のため、SP でも PC 画像 (TOP-PC-1.png に
   頼れる先輩/第一志望/音大受験テキスト焼き込み) がそのまま表示されている。
   SP 用画像を別途アップロードしないと位置関係は完全に解消できない。
   ここでは object-fit / height で画像表示領域だけ SP に近づける応急処置を行う
===================================================== */
/* 旧テーマ由来の .p-mainVisual (TOP-PC-1.png / TOP-SP-1.png) は全 viewport で非表示。
   .aoi-fv-sp (4 パーツ重ね・四角画像 fv-bg-square.png) で全 viewport の FV を統一。
   ユーザー指示「PCでもタブレットでもSPでもFV画像は共通の四角い画像」。
   旧テーマ由来の display を上書きするため !important を使用 (CLAUDE.md L203 例外条件)。 */
.p-mainVisual,
.p-mainVisual__inner,
.p-mainVisual__slide,
.p-mainVisual__imgLayer {
  display: none !important;
}

.top-news-list .-type-simple .p-postList__link {
  border-bottom: none;
}

.top-news-list .p-postList__body {
  display: flex;
  justify-content: space-between;
}

.top-news-list .p-postList__icon i {
  vertical-align: sub;
}

@media (max-width: 768px) {
  .p-postList__meta {
    font-size: inherit;
  }
}

/* メインビジュアル下の画像リスト */
.top-images-list img {
  border-radius: 10px;
}

/* カルーセル */
.fullwidth-carousel {
  margin: 40px 0;
  display: flex;
  overflow-x: auto;
  overflow-y: hidden;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
  cursor: grab;
}
.fullwidth-carousel::-webkit-scrollbar {
  display: none;
}

@keyframes horizontal-animation {
  from {
    transform: translateX(0);
  }

  to {
    transform: translateX(-100%);
  }
}

.fullwidth-carousel__inner {
  display: flex;
  animation: horizontal-animation 100s linear infinite;
}

.slide {
  width: 380px;
  margin-right: 20px;
  padding: 40px;
  text-align: center;
}

.slide .slide-thumb {
  width: 300px;
  height: 300px;
  margin: 0 auto;
}

.slide img,
.slide .aoi-photo-cover {
  width: 300px;
  height: 300px;
  object-fit: cover;
  border-radius: 50%;
}
.slide .aoi-photo-cover {
  --cont-ratio: 1;
  display: block;
  background-color: #f2f2f2;
  background-size:
    calc(max(100%, 100% * var(--img-w) / var(--img-h) / var(--cont-ratio, 1)) * var(--photo-zoom, 1))
    calc(max(100%, 100% * var(--img-h) / var(--img-w) * var(--cont-ratio, 1)) * var(--photo-zoom, 1));
}

.slide .slide-title {
  color: #1C4660;
  font-size: 20px;
  font-weight: 700;
  margin: 0;
}

.slide .slide-university {
  font-size: 14px;
  color: #3BCBCE;
  margin: 5px 0;
}

.slide .slide-description {
  font-size: 14px;
  color: #797979;
  margin: 5px 0;
}

.slide .slide-course-list {
  font-size: 14px;
  color: #3c3c3c;
  margin: 5px 0 15px 0;
}

/* Figma 1432:4657 仕様: h:23 / px:12 py:4 / radius 9999 / 12/1.4/1.2 #1c4660 #e5e5e5 — 全タグ同高さ */
.slide-course-list .slide-course {
  background-color: #E5E5E5;
  padding: 4px 12px;
  border-radius: 9999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 23px;
  margin: 5px;
  color: #1C4660;
  font-size: 12px;
  line-height: 1.4;
  letter-spacing: 1.2px;
  white-space: nowrap;
  box-sizing: border-box;
}

/* ボタン */
.aoi_outline_and_arrow_button {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.aoi_outline_and_arrow_button__link {
  color: #1C4660;
  background-color: transparent;
  border: 1px solid #1C4660;
  border-radius: 10px;
  box-shadow: none;
  text-decoration: none;
  padding-right: 30px;
  /* Figma 1114:2414 全 CTA: 16 Medium tracking 1.6 (旧 1.125em=18 から #347 で 16 に修正) */
  font-size: 16px;
  width: fit-content;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.aoi_outline_and_arrow_button .label {
  padding: 0px 30px;
  margin: 15px 0px;
  border-right: 1px solid #1C4660;
  color: #1C4660;
}

.aoi_outline_and_arrow_button i {
  padding-left: 10px;
  margin-left: 10px;
  color: #1C4660;
}

@media (max-width: 767px) {
  .aoi_outline_and_arrow_button {
    justify-content: center !important;
  }

  .aoi_outline_and_arrow_button__link {
    max-width: 100%;
  }
}

/* トップページ見出し */
.simple-h2 {
  background-color: transparent !important;
  color: #1C4660 !important;
  /* Figma H2 large (各セクション 講師紹介/合格実績/合格者の声/お知らせ): 26 Bold lh 1.4 tracking 2.6 (旧 30 から #347 で 26 に修正) */
  font-size: 26px !important;
  font-weight: 700 !important;
  padding: 0px 16px !important;
  line-height: 140% !important;
}

.simple-h2::before {
  border-top: none !important;
  border-bottom: none !important;
}



p {
  color: #1C4660;
}

.simple-layout-bottom {
  display: flex;
  flex-direction: column;
}

.simple-layout-bottom .simple-layout-bottom__item {
  margin-top: auto !important;
}

/* 背景白のボックスデザイン */
.aoi-white-box {
  background-color: #fff;
  border-radius: 20px;
  padding: 20px;
}

.aoi-pilgi-font {
  font-family: 'Yuji Mai', 'Klee One', serif;
  font-weight: 400;
  color: #17BFBD;
}

.aoi-image-round img {
  border-radius: 20px;
}

.aoi-image-full img {
  width: 100%;
  height: auto;
}

/* トップページタブ */












/* トップページお知らせ */
.search-results .p-postList.-type-simple,
.after_article .p-postList.-type-simple,
.archive .p-postList.-type-simple,
.top-news-bottom .p-postList.-type-simple {
  border-top: none;
}

.search-results .-type-simple .p-postList__link,
.after_article .-type-simple .p-postList__link,
.archive .-type-simple .p-postList__link,
.top-news-bottom .-type-simple .p-postList__link {
  border-bottom: none;
  background: white;
  border-radius: 20px;
  padding: 10px 30px;
  margin-bottom: 20px;
}

.search-results .p-postList__body,
.after_article .p-postList__body,
.archive .p-postList__body,
.top-news-bottom .p-postList__body {
  display: flex;
  justify-content: space-between;
}

.search-results .p-postList__body time,
.after_article .p-postList__body time,
.archive .p-postList__body time,
.top-news-bottom .p-postList__body time {
  font-size: 12px;
}

.search-results .p-postList__icon i,
.after_article .p-postList__icon i,
.archive .p-postList__icon i,
.top-news-bottom .p-postList__icon i {
  vertical-align: sub;
}

.search-results .post_list_category_aoi_badge,
.after_article .post_list_category_aoi_badge,
.archive .post_list_category_aoi_badge,
.top-news-bottom .post_list_category_aoi_badge {
  font-size: 12px;
}

@media (max-width: 768px) {

  .search-results .p-postList__meta,
  .after_article .p-postList__meta,
  .archive .p-postList__meta,
  .top-news-bottom .p-postList__meta {
    font-size: inherit;
  }
}

/* 検索結果ページ (search.php) */
.aoi-page-search .aoi-search-form-wrap {
  margin-bottom: 32px;
}

.aoi-page-search .aoi-search-count {
  font-size: 14px;
  color: var(--color_text);
  margin-bottom: 16px;
}

.aoi-page-search .aoi-search-no-results {
  color: var(--color_text);
  margin-top: 16px;
}

.aoi-page-search .aoi-search-results-body {
  margin-top: 24px;
}

.top-news-bottom-container {
  background-color: #F1F8FA;
  padding: 50px 30px;
  border-radius: 20px;
}

/* 講師一覧の下のスクロールバー (Figma 1152:2675 装飾スクロールバーをそのまま操作可能 UI 化, #344) */
.aoi-spacer-gray-half-border {
  text-align: center;
  width: 555px;
  height: 8px;
  margin: 0px auto 50px;
  border-radius: 20px;
  background-color: #D9D9D9;
  position: relative;
  cursor: pointer;
  user-select: none;
}
/* スクロールバー thumb: track 上に重ねて表示、JS で width/translateX を更新。Figma #1c4660 (brand deep) で track #d9d9d9 と判別可能、デザインは pill 形状を踏襲 */
.aoi-spacer-gray-half-border .aoi-spacer-thumb {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  width: 0;
  background-color: #1c4660;
  border-radius: inherit;
  cursor: grab;
  transition: background-color 0.15s;
  will-change: transform, width;
  touch-action: none;
}
.aoi-spacer-gray-half-border .aoi-spacer-thumb:active {
  cursor: grabbing;
  background-color: #163952;
}

/* トップページ合格者の声カルーセル */
.voice-carousel .fullwidth-carousel__inner {
  min-width: 930px;
}


/* voice-carousel 親要素に overflow / cursor / touch-action を明示 (旧テーマ由来の override 対策で !important) */
.fullwidth-carousel.voice-carousel {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  cursor: grab;
  touch-action: pan-x;
  -webkit-overflow-scrolling: touch;
  display: flex;
  scrollbar-width: none;
}
.fullwidth-carousel.voice-carousel::-webkit-scrollbar {
  display: none;
}

/* inner: 子 slide 合計幅で広がる max-content + nowrap (animation は前段で none 済) */
.voice-carousel .fullwidth-carousel__inner {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  width: max-content !important;
  min-width: 100% !important;
}

/* 各 slide を固定幅にして横並びで overflow を発生させ、ドラッグ手動スクロール可能にする
   (Figma 1727:16948: 932px / padding 32 / gap 32 / min-height 519 / margin-right 40) */
.voice-carousel .fullwidth-carousel__inner .slide {
  flex: 0 0 932px !important;
  width: 932px !important;
  max-width: 932px !important;
  min-width: 0 !important;
  display: flex;
  flex-direction: row;
  justify-content: flex-start;
  gap: 32px;
  background-color: white;
  border-radius: 20px;
  margin-right: 40px;
  padding: 32px;
  box-sizing: border-box;
  min-height: 519px;
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
  flex-shrink: 0 !important;
}

@media (max-width: 768px) {
  /* SP: slide 幅を viewport 基準に縮小、内部は縦積み */
  .voice-carousel .fullwidth-carousel__inner .slide {
    flex: 0 0 calc(100vw - 32px) !important;
    width: calc(100vw - 32px) !important;
    max-width: calc(100vw - 32px) !important;
    display: flex;
    flex-direction: column;
    padding: 20px !important;
    min-height: auto !important;
    margin-right: 16px !important;
  }

  .voice-carousel .slide-thumb img {
    margin-bottom: 10px;
  }

  /* SP では「詳しく見る」ボタンを中央配置 (PC は inline style="justify-content:right" で右寄せ。
     インラインを !important で上書きするのは inline に !important が無いケースだけ有効) */
  .voice-carousel .slide .aoi_outline_and_arrow_button {
    justify-content: center !important;
  }
}

.voice-carousel .slide-right-content {
  text-align: left;
}

.voice-carousel .slide-thumb img {
  width: 210px;
  height: auto;
}

.voice-carousel .slide-graduate-year-and-text {
  /* Figma 1727:16926 pill: bg #f1f8fa / border #e5f5f9 / radius 9999 / padding 5px 13px / 12 Bold #1c4660 */
  display: inline-flex;
  align-items: center;
  align-self: flex-start;
  background: #f1f8fa;
  border: 1px solid #e5f5f9;
  border-radius: 9999px;
  padding: 5px 13px;
  font-size: 12px;
  font-weight: 700;
  color: #1c4660;
  letter-spacing: 0.025em;
  line-height: 16px;
  margin: 0;
}
.voice-carousel .slide-graduate-year-and-text:empty {
  display: none;
}

.voice-carousel .slide-university {
  /* Figma 1727:16930: 24 Bold #1c4660 letter-spacing 2.4px line-height 1.4 */
  font-size: 24px;
  font-weight: 700;
  color: #1C4660;
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 0;
}

.voice-carousel .slide-faculty {
  /* Figma 1727:16932: 14 Medium #797979 letter-spacing 1.4px line-height 1.4 */
  font-size: 14px;
  font-weight: 500;
  color: #797979;
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 0;
}
.voice-carousel .slide-faculty:empty {
  display: none;
}

.voice-carousel .slide-name {
  /* Figma 1727:16935: 18 Bold #1c4660 letter-spacing 1.8px line-height 1.4 */
  font-size: 18px;
  font-weight: 700;
  color: #1C4660;
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 4px 0 0;
}
.voice-carousel .slide-name:empty {
  display: none;
}

.voice-carousel .slide-message {
  /* Figma 1727:16937-16938: 14 Medium #1c4660 / left-border 2px #e5e5e5 / line-height 1.4 */
  font-size: 14px;
  font-weight: 500;
  color: #1C4660;
  border-left: 2px solid #E5E5E5;
  padding-left: 18px;
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 10px 0 0;
}
.voice-carousel .slide-message:empty {
  display: none;
}

.post_content .voice-carousel blockquote {
  background: transparent;
  margin-top: 10px;
}

.post_content .voice-carousel blockquote::before {
  border-left: none;
  border-right: none;
}

/* パンくずリストの修正 */
.c-categoryList__separation:after,
.p-breadcrumb__item:after {
  content: "/";
  display: inline-block;
  margin: 0 0.6em;
  background: none;
  width: auto;
  height: auto;
  opacity: 0.6;

  clip-path: none;
  -webkit-clip-path: none;
}

.p-breadcrumb.-bg-on {
  background: none;
}

/* instructor ページのスタイル */
.instructor-article .simple-h2 {
  text-align: center;
  margin-bottom: 50px;
}

.instructor-article .instructor-thumbnail {
  position: relative;
  width: 100%;
  margin: 0 auto 30px;
}

.instructor-article .instructor-thumbnail img {
  width: 100%;
  height: 356px;
  object-fit: cover;
  /* object-position はインライン focal point (aoi_render_cpt_photo_img) を尊重するため指定しない */
  border-radius: 20px;
}

/* instructor-thumbnail img にかぶせる */
.instructor-article .instructor-thumbnail .thumbnail-info {
  position: absolute;
  bottom: 20px;
  left: 20px;
}

.instructor-article .instructor-thumbnail .thumbnail-info p {
  color: white;
  font-family: 'Noto Serif JP', serif;
}

.instructor-article .instructor-thumbnail .thumbnail-info .instructor-name {
  font-size: 24px;
  font-weight: 700;
}

.instructor-article .instructor-thumbnail .thumbnail-info .instructor-course {
  font-size: 14px;
}

.instructor-article .instructor-profile {
  font-size: 20px;
  border-bottom: 2px solid #3BCBCE;
  padding: 10px 0;
  margin-bottom: 40px;
}

.instructor-article .instructor-profile i {
  color: #3BCBCE;
  font-size: 20px;
}

.instructor-article .instructor-profile-list {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}

.instructor-article .instructor-profile-list dt {
  width: 40%;
  padding-bottom: 20px;
  margin-bottom: 10px;
  font-size: 14px;
}

.instructor-article .instructor-profile-list dd {
  width: 60%;
  padding-bottom: 20px;
  margin-bottom: 10px;
}

.instructor-article .instructor-profile-list .instructor-name {
  font-size: 18px;
  font-weight: 700;
}

.instructor-article .instructor-profile-list .instructor-university {
  font-size: 18px;
  font-weight: 700;
}

.instructor-article .instructor-profile-list .instructor-course {
  font-size: 12px;
  background-color: #F3F4F6;
  padding: 4px 8px;
  margin-right: 5px;
}

.instructor-profile-container {
  padding: 50px 30px;
  margin-bottom: 50px;
}

.instructor-profile-container .wp-block-heading {
  margin-top: 30px;
}

/* voice ページのスタイル */
.voice-article-head .simple-h2 {
  text-align: center;
  margin-bottom: 10px;
}

.voice-article-head h3 {
  text-align: center;
  color: #797979;
  font-size: 20px;
}

.voice-article-head {
  margin-bottom: 50px;
}

.voice-article .voice-thumbnail {
  position: relative;
  width: 100%;
  margin: 0 auto 30px;
}

.voice-article .voice-thumbnail img {
  width: 100%;
  height: 356px;
  object-fit: cover;
  object-position: top;
  border-radius: 20px;
}

/* voice-thumbnail img にかぶせる */
.voice-article .voice-thumbnail .thumbnail-info {
  position: absolute;
  bottom: 20px;
  left: 20px;
}

.voice-article .voice-thumbnail .thumbnail-info p {
  color: white;
  font-family: 'Noto Serif JP', serif;
}

.voice-article .voice-thumbnail .thumbnail-info .voice-name {
  font-size: 24px;
  font-weight: 700;
}

.voice-article .voice-thumbnail .thumbnail-info .voice-course {
  font-size: 14px;
}

.voice-article .voice-profile {
  font-size: 20px;
  border-bottom: 2px solid #3BCBCE;
  padding: 10px 0;
  margin-bottom: 40px;
}

.voice-article .voice-profile i {
  color: #3BCBCE;
  font-size: 20px;
}

.voice-article .voice-profile-list {
  display: flex;
  flex-wrap: wrap;
  width: 100%;
}

.voice-article .voice-profile-list dt {
  width: 40%;
  padding-bottom: 20px;
  margin-bottom: 10px;
  font-size: 14px;
}

.voice-article .voice-profile-list dd {
  width: 60%;
  padding-bottom: 20px;
  margin-bottom: 10px;
}

.voice-article .voice-profile-list .voice-name {
  font-size: 18px;
  font-weight: 700;
}

.voice-article .voice-profile-list .voice-university {
  font-size: 18px;
  font-weight: 700;
}

.voice-article .voice-profile-list .voice-course {
  font-size: 12px;
  background-color: #F3F4F6;
  padding: 4px 8px;
  margin-right: 5px;
}

.voice-profile-container {
  padding: 50px 30px;
  margin-bottom: 50px;
}

.voice-profile-container .wp-block-heading {
  margin-top: 30px;
}

@media (max-width: 768px) {
  .voice-article .voice-profile-list dt {
    width: 100%;
    padding-bottom: 0px;
    margin-bottom: 10px;
    font-size: 14px;
  }
  .voice-article .voice-profile-list dd {
    width: 100%;
  }
}


/* 受講生専用ページ */
.mypage-content-title {
  border-left: 8px solid #3BCBCE;
  padding-left: 20px;
}

.mypage-content-title h2 {
  margin-bottom: 10px;
}

.mypage-content-title p {
  font-size: 12px;
  color: #797979;
}

/* 受講生専用ページの各講座のタブ */
.aoi-gray-box {
  padding: 10px;
  background-color: #F3F4F6;
}

.aoi-gray-box p {
  padding: 10px 0px;
}

.aoi-gray-box .active {
  border-radius: 10px;
  background-color: white;
}

.aoi-gray-box .aoi-columns__inner :not(:last-child) {
  position: relative;
}

.aoi-gray-box .aoi-columns__inner :not(:last-child)::after {
  content: "";
  position: absolute;
  background-color: #1C4660;
  width: 2px;
  height: 32px;
  bottom: 12px;
  right: -15px;
  transform: translateX(-50%);
}

.aoi-gray-box .aoi-columns__inner .aoi-column {
  padding: 6px 0px;
}

.aoi-gray-box a {
  color: #1C4660;
  text-decoration: none;
}

.aoi-mypage-message {
  background-color: #F1F8FA;
  border-radius: 20px;
  padding: 20px 30px;
  color: #1C4660;
}

.custom-content-footer {
  margin-top: 50px;
}

.custom-content-footer h3 {
  font-size: 24px;
  padding-left: 16px;
}

.custom-content-footer .aoi-fullwide {
  padding-top: 10px !important;
}

/* タイトル下の線 */
.post_content h3:where(:not(.faq_q):not(.p-postList__title))::before {
  background: var(--color_htag) !important;
}

.post_content h4:where(:not(.faq_q):not(.p-postList__title)) {
  border-left: solid 6px var(--color_htag) !important;
}

.aoi-title-underline {
  padding-bottom: 10px !important;
  position: relative !important;
}

.aoi-title-underline::after {
  content: "" !important;
  width: 100% !important;
  height: 2px !important;
  background: var(--color_htag) !important;
  bottom: 0;
  display: block;
  left: 0;
  position: absolute;
  z-index: 0;
}

/* お申し込みフォーム */
/* お申し込みフォームのタブ */
.aoi-form-tab .aoi-columns__inner .aoi-column .wp-block-group {
  border-radius: 20px;
  padding: 10px 0px;
}

.aoi-form-tab a {
  color: #1C4660;
  text-decoration: none;
}

.aoi-form-tab .active a {
  color: white;
  text-decoration: none;
}

.aoi-apply-form button {
  width: 243px;
  height: 50px;
  border-radius: 10px !important;
  background-color: #1C4660 !important;
  background-image: none !important;
  border: none !important;
  color: white !important;
}

.aoi-apply-form input:not([type="checkbox"]):not([type="radio"]),
.aoi-apply-form select,
.aoi-apply-form textarea {
  width: 100% !important;
}

.aoi-apply-form .smf-item__col--label {
  text-align: right !important;
}

.aoi-kadai-form button {
  width: 243px;
  height: 50px;
  border-radius: 10px !important;
  background-color: #1C4660 !important;
  background-image: none !important;
  border: none !important;
  color: white !important;
}

.aoi-kadai-form input:not([type="checkbox"]):not([type="radio"]),
.aoi-kadai-form select,
.aoi-kadai-form textarea {
  width: 100% !important;
}

.is-style-emboss_box.aoi-kadai-form1 {
  border-top: 4px solid #60A5FA;
}

.is-style-emboss_box.aoi-kadai-form2 {
  border-top: 4px solid #FFC943;
}


.custom-error-message {
  position: relative;
  top: 12px;
}

@media (max-width: 768px) {
  .aoi-apply-form .smf-item__col--label {
    text-align: left !important;
  }
}

/* 固定ページにだけ適用する画面ヘッダーのスタイル */
.page #breadcrumb {
  display: none;
}

.page .l-content {
  padding-top: 0 !important;
}

.page .l-content h1 {
  display: none;
}

.page .post_content {
  margin-top: 30px !important;
}

/* 講師一覧 */
.instructor-list {
  display: flex;
  flex-direction: row;
  text-align: center;
  gap: 5%;
  flex-wrap: wrap;
}

.instructor-item {
  width: 30%;
  margin-bottom: 40px;
}

.instructor-item .instructor-thumb img {
  width: 300px;
  height: 300px;
  object-fit: cover;
  object-position: top;
  border-radius: 50%;
}

.instructor-item .instructor-name {
  font-size: 20px;
  font-weight: 700;
  color: #1C4660;
}

.instructor-item .instructor-university {
  font-size: 14px;
  color: #3BCBCE;
}

.instructor-item .instructor-description {
  font-size: 14px;
  color: #797979;
}

.instructor-item .course-list {
  font-size: 14px;
  color: #3c3c3c;
  margin: 5px 0 15px 0;
}

.instructor-item .course-list .course {
  background-color: #E5E5E5;
  padding: 4px 8px;
  border-radius: 12px;
  display: inline-block;
  margin: 5px;
  color: #1C4660;
  font-size: 12px;
}

@media (max-width: 768px) {
  .instructor-list {
    flex-direction: column;
    gap: 30px;
  }
  .instructor-item {
    width: 100%;
  }
  .instructor-article .instructor-profile-list dt {
    width: 100%;
    padding-bottom: 0px;
    margin-bottom: 10px;
    font-size: 14px;
  }
  .instructor-article .instructor-profile-list dd {
    width: 100%;
    padding-bottom: 20px;
    margin-bottom: 10px;
  }
}

/* voiceページ: Gutenberg コンテンツ内の旧フォームを非表示 */
.aoi-page-voice .page-introduction .aoi-white-box {
  display: none;
}

/* voiceページ フィルター */
.aoi-voice-filter {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 32px;
}

.aoi-voice-filter__university,
.aoi-voice-filter__course {
  flex: 1;
  min-width: 0;
}

/* Multiple Select プラグインが inline-block で挿入する .ms-parent を
   flex アイテム内で横幅いっぱいに広げる */
.aoi-voice-filter .ms-parent {
  display: block;
  width: 100%;
}

.aoi-voice-filter .ms-choice {
  display: block;
  width: 100%;
  height: 44px;
  box-sizing: border-box;
}

.aoi-voice-filter__submit {
  display: flex;
  align-items: flex-start;
}

.aoi-voice-filter__submit button {
  height: 44px;
  padding: 0 24px;
  border: none;
  border-radius: 4px;
  background-color: #1C4660;
  color: #fff;
  font-size: 14px;
  cursor: pointer;
  white-space: nowrap;
}

@media (max-width: 599px) {
  .aoi-voice-filter {
    flex-direction: column;
    align-items: stretch;
  }
  .aoi-voice-filter__submit {
    display: block;
  }
  .aoi-voice-filter__submit button {
    width: 100%;
  }
}

/* JSフィルター 非表示クラス */
.voice-list .voice-item.voice-item--hidden {
  display: none !important;
}

/* 合格者の声一覧 */
.voice-list {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  gap: 30px;
  align-items: flex-start;
}

.voice-item {
  width: calc((100% - 60px) / 3);
  align-self: flex-start;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
  padding: 32px;
  background-color: white;
  border: 1px solid #17bfbd;
  border-top: 4px solid #17bfbd;
  border-radius: 16px;
  box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1), 0 2px 4px -2px rgba(0,0,0,0.1);
  overflow: hidden;
  box-sizing: border-box;
  position: relative;
  background-image: url(assets/images/sakura.svg);
  background-size: 100px 95px;
  background-repeat: no-repeat;
  background-position: top -10px right -5px;
}

.voice-item__inner {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: flex-start;
  width: 100%;
}

.voice-item__badge-wrap {
  padding-bottom: 24px;
}

.voice-item__meta {
  display: flex;
  flex-direction: column;
  gap: 8px;
  width: 100%;
  min-height: 107px;
  justify-content: center;
}

.voice-item__quote {
  padding-bottom: 10px;
  width: 100%;
}

.voice-item .voice-graduate-year-and-text {
  display: inline-block;
  font-size: 12px;
  font-weight: 700;
  color: #1C4660;
  background-color: #f1f8fa;
  border: 1px solid #e5f5f9;
  border-radius: 9999px;
  padding: 5px 13px;
}

.voice-item .voice-university {
  font-size: 24px;
  font-weight: 700;
  color: #1C4660;
  letter-spacing: 0.1em;
  margin: 0;
  width: 100%;
}

.voice-item .voice-faculty {
  font-size: 14px;
  color: #797979;
  margin: 0;
}

.voice-item .voice-name {
  font-size: 18px;
  font-weight: 700;
  color: #1C4660;
  margin: 0;
  padding-top: 4px;
}

.voice-item .voice-message {
  font-size: 14px;
  color: #1C4660;
  border-left: 2px solid #e5e5e5;
  padding-left: 18px;
  margin: 0;
}

@media (max-width: 900px) {
  .voice-list {
    gap: 20px;
  }
  .voice-item {
    width: calc((100% - 20px) / 2);
  }
}

@media (max-width: 599px) {
  .voice-item {
    width: 100%;
  }
}

/* タイトル背景の英字画像 */

.en-title {
  position: relative;
  z-index: 0;

  --en-img: none;
  --en-width: 300px;
  --en-rotate: -10deg;
  --en-y: 50%;
  --en-x: 80%;
  --en-opacity: 0.7;
}

.single .en-title::before,
.post_content .en-title::before {
  content: "";
  position: absolute;
  top: var(--en-y);
  left: var(--en-x);
  transform: translate(-50%, -50%) rotate(var(--en-rotate));
  width: var(--en-width);
  aspect-ratio: 4 / 1;
  background-image: var(--en-img);
  background-repeat: no-repeat;
  background-size: contain;
  opacity: var(--en-opacity);
  z-index: -1;
  pointer-events: none;
}

/* 個別設定 */
/* .en-title-start-your-story {
  --en-img: url(../assets/images/uploads/Start-Your-Story.svg);
    --en-width: 1020px;
    --en-rotate: -6deg;
    --en-y: 0%;
    padding: 3em 0.5em !important;
}
 *
 * 使い方
 * 各タイトルの見出しに .en-title .en-title-[クラス名] を追加してください。
 */

/* TOP 5 セクション英字背景: H2 element 中央 (50%, 50%) を基準に Figma 値オフセットで配置 + `--top-en-scale` で SP 縮小
   方針:
   - Figma frame 内で「H2 text center」と「英字 wrapper center」のオフセット (offset-x, offset-y) を計算
   - DOM では H2 element 中央 (50%/50%) を anchor、translate で offset 適用
   - DOM 幅が Figma frame と異なっても、H2 text 中央基準なので位置が崩れない */
.en-title-feature,
.en-title-lesson,
.en-title-teachers,
.en-title-voice,
.en-title-news {
  /* PC では Figma 値の 65% に縮小、不透明度 0.4 で控えめな装飾感に調整 */
  --top-en-scale: 0.65;
  --top-en-opacity: 0.4;
}
.post_content .en-title-feature::before,
.post_content .en-title-lesson::before,
.post_content .en-title-teachers::before,
.post_content .en-title-voice::before,
.post_content .en-title-news::before,
.single .en-title-feature::before,
.single .en-title-lesson::before,
.single .en-title-teachers::before,
.single .en-title-voice::before,
.single .en-title-news::before {
  top: 50% !important;
  left: 50% !important;
  width: calc(var(--top-en-w) * var(--top-en-scale)) !important;
  height: calc(var(--top-en-h) * var(--top-en-scale)) !important;
  aspect-ratio: auto !important;
  /* translate(-50%,-50%) で box の中心を H2 中央へ → さらに Figma 計算オフセットを scale 連動で加算 → rotate */
  transform: translate(-50%, -50%) translate(calc(var(--top-en-ox) * var(--top-en-scale)), calc(var(--top-en-oy) * var(--top-en-scale))) rotate(var(--top-en-r)) !important;
  background-size: contain !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  opacity: var(--top-en-opacity, 1) !important;
}

/* NEWS — Figma 1152:2700 frame 216×74 / wrapper -94.5/-84.42/402×182 rotate -7.92
   Eng center (106.61, 6.7) - H2 text center (108, 30) = (-1.39, -23.30) */
.en-title-news {
  --en-img: url(../assets/images/uploads/NEWS.svg);
  --top-en-ox: -1.39px;
  --top-en-oy: -23.30px;
  --top-en-w: 402.22px;
  --top-en-h: 182.25px;
  --top-en-r: -7.92deg;
  /* --top-en-opacity は基底ルール (0.4) を継承 */
  padding: 1em 0.5em !important;
}

.en-title-start-your-story {
  --en-img: url(../assets/images/uploads/Start-Your-Story.svg);
  --en-width: 1020px;
  --en-rotate: -6deg;
  --en-y: 0%;
  padding: 3em 0.5em !important;
}

/* .en-title-start-your-story は H2 anchor (top, left) からそのまま配置するため
   基底ルールの translate(-50%, -50%) は不要。rotate のみ適用する。 */
.post_content .en-title-start-your-story::before,
.single .en-title-start-your-story::before {
  transform: rotate(var(--en-rotate));
}

@media (max-width: 768px) {
  .en-title-start-your-story {
    --en-x: 0%;
    --en-width: min(1020px, calc(100vw - 32px));
    margin: 4em 0 2em;
    padding: 1em 0.5em !important;
  }
}

/* FEATURE — Figma 1152:2614 frame 348×74 / wrapper -204.99/-97.21/539×213 rotate -9.26
   Eng center (64.59, 9.46) - H2 text center (174, 30) = (-109.41, -20.54) */
.en-title-feature {
  --en-img: url(../assets/images/uploads/FEATURE.svg);
  --top-en-ox: -109.41px;
  --top-en-oy: -20.54px;
  --top-en-w: 539.17px;
  --top-en-h: 213.35px;
  --top-en-r: -9.26deg;
  /* --top-en-opacity は基底ルール (0.4) を継承 */
  padding: 1em 0.5em !important;
}

/* LESSON — Figma 1152:2649 frame 279×74 / wrapper 58.5/-54.23/540×223 rotate -10.31
   Eng center (328.5, 57.27) - H2 text center (139.5, 30) = (189, 27.27) */
.en-title-lesson {
  --en-img: url(../assets/images/uploads/LESSON.svg);
  --top-en-ox: 200px;
  --top-en-oy: 0px;
  --top-en-w: 400px;
  --top-en-h: 200px;
  --top-en-r: -10deg;
  /* --top-en-opacity は基底ルール (0.4) を継承 */
  padding: 1.2em 0.5em !important;
}

/* TEACHERS — Figma 1152:2669 frame 279×74 / wrapper -279.5/-98.35/682×228 rotate -8.55
   Eng center (61.5, 15.62) - H2 text center (139.5, 30) = (-78, -14.38) */
.en-title-teachers {
  --en-img: url(../assets/images/uploads/TEACHERS.png);
  --top-en-ox: -78px;
  --top-en-oy: -14.38px;
  --top-en-w: 681.85px;
  --top-en-h: 227.94px;
  --top-en-r: -8.55deg;
  /* --top-en-opacity は基底ルール (0.4) を継承 */
  padding: 1.8em 0.5em !important;
}

/* VOICE / 合格実績 — Figma 1152:2680 frame 216×74 / wrapper 38/-38.96/439×198 rotate -9.47
   Eng center (257.31, 59.95) - H2 text center (108, 30) = (149.31, 29.95) */
.en-title-voice {
  --en-img: url(../assets/images/uploads/VOICE.svg);
  --top-en-ox: 149.31px;
  --top-en-oy: 29.95px;
  --top-en-w: 438.62px;
  --top-en-h: 197.82px;
  --top-en-r: -9.47deg;
  /* --top-en-opacity は基底ルール (0.4) を継承 */
  padding: 1em 0.5em !important;
}

.en-title-line {
  --en-img: url(../assets/images/uploads/Vector.png);
  --en-width: 250px;
  --en-rotate: 0deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

.en-title-concept {
  --en-img: url(../assets/images/concept.png);
  --en-width: 71px;
  --en-rotate: -2deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

.en-title-profile {
  --en-img: url(../assets/images/uploads/Profile.png);
  --en-width: 62px;
  --en-rotate: -2deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

.en-title-service {
  --en-img: url(../assets/images/uploads/Service.png);
  --en-width: 64px;
  --en-rotate: -2deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

.en-title-price {
  --en-img: url(../assets/images/uploads/Price.png);
  --en-width: 49px;
  --en-rotate: -2deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

.en-title-flow {
  --en-img: url(../assets/images/uploads/Flow.png);
  --en-width: 43px;
  --en-rotate: -2deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

.en-title-faq {
  --en-img: url(../assets/images/uploads/FAQ.png);
  --en-width: 46px;
  --en-rotate: -2deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

.en-title-teacherslist-small {
  --en-img: url(../assets/images/uploads/Teachers-List.png);
  --en-width: 119px;
  --en-rotate: -2deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

.en-title-teacher-profile {
  --en-img: url(../assets/images/uploads/Teachers-Plofile.png);
  --en-width: 141px;
  --en-rotate: -2deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

.en-title-lesson-small {
  --en-img: url(../assets/images/uploads/Lesspn.png);
  --en-width: 59px;
  --en-rotate: -2deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

.en-title-voice-small {
  --en-img: url(../assets/images/uploads/Voice.png);
  --en-width: 42px;
  --en-rotate: -2deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

.en-title-video-lesson {
  --en-img: url(../assets/images/uploads/Video-Lesson.png);
  --en-width: 105px;
  --en-rotate: -2deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

.en-title-course {
  --en-img: url(../assets/images/uploads/Course.png);
  --en-width: 63px;
  --en-rotate: -2deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

.en-title-support {
  --en-img: url(../assets/images/uploads/Support.png);
  --en-width: 71px;
  --en-rotate: -2deg;
  --en-y: 130%;
  --en-x: 50%;
  padding: 1em 0.5em !important;
}

/* SP (≤768) — PC からさらに縮小 (Figma 値の 40% / opacity 0.35) */
@media (max-width: 768px) {
  .en-title-feature,
  .en-title-lesson,
  .en-title-teachers,
  .en-title-voice,
  .en-title-news {
    --top-en-scale: 0.4;
    --top-en-opacity: 0.35;
  }
}

/* 検索フィールド */
.search-form {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  flex-wrap: nowrap;
}

.search-form .search-category {
  width: 20%;
}

.search-form .search-category select {
  height: 44px;
  width: 100%;
  padding: 0 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  background-color: #fff;
  cursor: pointer;
}

.search-form .search-keyword {
  position: relative;
  width: 60%;
}

.search-form .search-keyword-80 {
  position: relative;
  width: 80%;
}

.search-form input[type="text"] {
  height: 44px;
  width: 100%;
  padding: 0 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  box-sizing: border-box;
}

.search-form input[type="text"]::placeholder {
  color: #999;
}

.search-form .search-submit {
  width: 20%;
}

.search-form button {
  display: block;
  width: 100%;
  height: 44px;
  padding: 0 18px;
  border: none;
  border-radius: 4px;
  background-color: #1C4660;
  color: #fff;
  font-size: 14px;
  cursor: pointer;
}

.search-university,
.search-course {
  width: 40%;
}

.multiple-select {
  width: 100% !important;
}

.multiple-select button {
  height: 44px;
  width: 100%;
  padding: 0 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  background-color: #fff;
  color: #1C4660;
  cursor: pointer;
}

/* プルダウン風のチェックボックスのリストデザイン */
.checkbox-list {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.checkbox-list .checkbox-item {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  background-color: #fff;
  cursor: pointer;
}

.checkbox-list .checkbox-item input[type="checkbox"] {
  display: none;
}

.checkbox-list .checkbox-item input[type="checkbox"]:checked+label {
  background-color: #1C4660;
  color: #fff;
  border-color: #1C4660;
}

@media (max-width: 768px) {
  .search-university,
  .search-course {
    width: 100%;
  }
  .search-form .search-submit {
    width: 60%;
    text-align: center;
  }

  .search-form {
    flex-direction: column;
    align-items: center;
  }

  .search-form input[type="text"],
  .search-form select,
  .search-form button {
    width: 100%;
  }

  .search-form .search-category,
  .search-form .search-keyword,
  .search-form .search-keyword-80 {
    width: 100%;
  }
}

/* Multiple Select */
/* 選択結果表示エリア */
.ms-choice>span {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  margin: 8px 3px;
}

.ms-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background: #eee;
  border-radius: 999px;
  padding: 4px 8px;
  font-size: 12px;
  line-height: 1;
  white-space: nowrap;
}

.ms-badge-remove {
  color: #888;
  cursor: pointer;
  font-size: 14px;
}

.ms-badge-remove:hover {
  color: #d33;
}

/* ===== 講師一覧フィルター () ===== */
.aoi-instructor-filter {
  display: flex;
  align-items: center;
  gap: 12px;
  width: 100%;
  flex-wrap: nowrap;
  margin-bottom: 40px;
}

.aoi-instructor-filter__course {
  width: 25%;
}

.aoi-instructor-filter__course select {
  height: 44px;
  width: 100%;
  padding: 0 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  background-color: #fff;
  cursor: pointer;
  appearance: auto;
}

.aoi-instructor-filter__keyword {
  flex: 1;
}

.aoi-instructor-filter__keyword input[type="text"] {
  height: 44px;
  width: 100%;
  padding: 0 12px;
  border: 1px solid #ccc;
  border-radius: 4px;
  font-size: 14px;
  box-sizing: border-box;
}

.aoi-instructor-filter__keyword input[type="text"]::placeholder {
  color: #999;
}

.aoi-instructor-filter__submit button {
  height: 44px;
  padding: 0 20px;
  border: 1px solid #1c4660;
  border-radius: 4px;
  background-color: transparent;
  color: #1c4660;
  font-size: 14px;
  cursor: pointer;
  white-space: nowrap;
}

.aoi-instructor-filter__submit button:hover {
  background-color: #1c4660;
  color: #fff;
}

.instructor-list .instructor-item.instructor-item--hidden {
  display: none !important;
}

.instructor-no-results {
  width: 100%;
  text-align: center;
  color: #797979;
  font-size: 14px;
  padding: 40px 0;
}

@media (max-width: 959px) {
  .aoi-instructor-filter {
    flex-wrap: wrap;
  }

  .aoi-instructor-filter__course {
    width: calc(50% - 6px);
  }

  .aoi-instructor-filter__keyword {
    width: calc(50% - 6px);
    flex: none;
  }

  .aoi-instructor-filter__submit {
    width: 100%;
  }

  .aoi-instructor-filter__submit button {
    width: 100%;
  }
}

@media (max-width: 599px) {
  .aoi-instructor-filter {
    flex-direction: column;
    gap: 8px;
  }

  .aoi-instructor-filter__course,
  .aoi-instructor-filter__keyword {
    width: 100%;
  }
}


@media (max-width: 900px) {
  /* 追従ボタン (資料請求 / 問い合わせ): 900 以下で画面下部固定配置に切替
     ユーザー指示で 768→900 に拡張、SP / 小タブレットでも下部 fixed に */
  .simple-h2 {
    /* Figma 仕様 26 (PC/SP 共通) — #347 で 24 → 26 に統一 */
    font-size: 26px !important;
  }


}

/* フローのスタイル */
.post_content .aoi-flow-field h4 {
  margin-top: 0px !important;
}
@media (max-width: 768px) {
  .aoi-flow-title {
    display: flex;
    flex-direction: row;
    align-items: start;
    gap: 10px;
  }
  .post_content .aoi-flow-field h4 {
    margin-top: 0px !important;
    display: contents;
  }
  .aoi-flow-field p {
    display: inline;
  }
  .aoi-flow-field img {
    width: 100%;
    height: auto;
  }
}

/* FAQのスタイル */
.aoi-accordion__icon {
  color: #3BCBCE;
  font-size: xx-large;
}

/* =====================================================
  FEATURE セクション SP レスポンシブ (Issue #228 B-NEW-08)
  Figma 仕様: docs/phase-b-figma-specs/issue-228-feature.md
  PC node: 1152:2610 / SP node: I2016:18535;2027:17853

  前提 (要 WP 管理画面操作):
   - TOP 固定ページ FEATURE セクション最外側ブロックに「aoi-feature」を付与
   - 各カード 3 枚に「aoi-feature-card」を付与
   - 02 カードに「aoi-feature-card--reverse」を付与 (PC reverse / SP は column 統一)
===================================================== */

/* =====================================================
  FEATURE セクション PC ベース (Issue #228 Figma 1152:2610)
  カスタム class 前提:
   - .aoi-feature: セクション最外側
   - .aoi-feature-card: 各カード
   - .aoi-feature-card--reverse: 02 カード (画像右配置)
===================================================== */
.aoi-feature {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 78px;
  padding: 176px 0 0;
  background: linear-gradient(180.66deg, #f1f8fa 30.2%, #ffffff 99.5%);
}

/* PC / タブレット (>=769px) では強制的に横並び。
   02 は WP wp-block-columns 由来構造のため、WP デフォルトの 781px 以下縦並び動作が
   タブレットサイズ (769-781) に侵食して 02 だけ縦並びになる現象が起きていた。
   !important でベース横並びを確定し、SP メディアクエリで縦並びに切替える */
.aoi-feature-card,
.aoi-feature-card--reverse {
  display: flex !important;
  flex-direction: row !important;
  align-items: center;
  gap: 42px;
  width: 1060px;
  max-width: 100%;
  padding: 30px;
  border-radius: 12px;
  background: #ffffff;
  box-sizing: border-box;
}

.aoi-feature-card--reverse {
  flex-direction: row-reverse !important;
}

/* 画像列: 固定 364×352 を保つが flex-shrink で過縮小を制御
   (.wp-block-image は figure ラッパー、内部 img と両方に同じサイズ指定) */
.aoi-feature-card .wp-block-image,
.aoi-feature-card--reverse .wp-block-image {
  flex: 0 0 364px;
  width: 364px;
  max-width: 364px;
  height: 352px;
  margin: 0;
}

.aoi-feature-card img,
.aoi-feature-card .wp-block-image img,
.aoi-feature-card--reverse img,
.aoi-feature-card--reverse .wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 12px;
  display: block;
}

/* テキスト列: width 590 固定 → flex 1 1 0 (画像 364 を引いた残り全体)
   row-reverse 02 でテキストがはみ出していた問題を解消
   flex-direction: column !important で WP wp-block-columns デフォルトの
   781px 以下 row 化を打ち消し、テキスト列内は常に縦並び維持 */
.aoi-feature-card .wp-block-columns,
.aoi-feature-card--reverse .wp-block-columns {
  display: flex !important;
  flex-direction: column !important;
  gap: 32px;
  flex: 1 1 0;
  min-width: 0;
  width: auto;
  max-width: none;
}

/* WP デフォルトの .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column の
   flex-basis: 100% !important を打ち消す (PC で横レイアウトを維持)
   breakpoint は 旧テーマ pc_only/sp_only との互換のため 960 を使用 */
@media (min-width: 960px) {
  .aoi-feature-card .wp-block-columns > .wp-block-column,
  .aoi-feature-card--reverse .wp-block-columns > .wp-block-column {
    flex-basis: auto !important;
  }
}

/* =====================================================
   FEATURE 01/02/03 共通: .aoi-columns.aoi-white-box (素の WP columns 構造)
   3 カードとも同じ markup 構造。column の HTML 順だけが左右レイアウトの差を作る:
     - 01/03: [画像 --clmn-w--pc:36%] → [テキスト 64%]   (画像左)
     - 02:    [テキスト 64%] → [画像 36%]                (画像右)
   CSS 側は HTML 順そのまま flex (order を入れない) でレイアウト差は自動で出る。
   全カード共通: width 1060 / padding 30 / bg #fff / rounded 12 / 画像 364×352 / gap 42。
   breakpoint は 旧テーマ pc_only/sp_only との互換で 960 (タブレット <960 は SP 扱い)。
===================================================== */
@media (min-width: 960px) {
  /* カード全体 */
  .aoi-columns.aoi-white-box {
    width: 1060px;
    max-width: 100%;
    margin: 0 auto !important;
    padding: 30px !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    box-sizing: border-box;
  }
  .aoi-columns.aoi-white-box > .aoi-columns__inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 42px !important;
    width: 100%;
  }
  /* テキスト列 (--clmn-w--pc:64%): 残り幅で flex */
  .aoi-columns.aoi-white-box > .aoi-columns__inner > .aoi-column[style*="64%"] {
    flex: 1 1 0 !important;
    width: auto !important;
    max-width: none !important;
    min-width: 0;
  }
  /* 画像列 (--clmn-w--pc:36%): 364 固定 */
  .aoi-columns.aoi-white-box > .aoi-columns__inner > .aoi-column[style*="36%"] {
    flex: 0 0 364px !important;
    width: 364px !important;
    max-width: 364px !important;
    min-width: 0;
  }
  /* 画像本体: 364×352 / object-cover / rounded 12 */
  .aoi-columns.aoi-white-box .wp-block-image.pc_only {
    display: block !important;
    width: 364px !important;
    max-width: 364px !important;
    height: 352px !important;
    margin: 0 !important;
  }
  .aoi-columns.aoi-white-box .wp-block-image.pc_only img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 12px !important;
    aspect-ratio: auto !important;
  }
  /* PC (>=960) では sp_only 画像を非表示 (互換ルールに整合) */
  .aoi-columns.aoi-white-box .wp-block-image.sp_only {
    display: none !important;
  }
}

/* タブレット & SP (<=959px): 旧テーマ pc_only/sp_only と互換
   - sp_only 画像を表示、pc_only 画像を非表示
   - WP 既定の縦並びに任せる */
@media (max-width: 959px) {
  .aoi-columns.aoi-white-box .wp-block-image.sp_only {
    display: block !important;
  }
  .aoi-columns.aoi-white-box .wp-block-image.pc_only {
    display: none !important;
  }
}

/* ============================================================
   FEATURE 01/02/03 中間幅 (600-959): 横並び維持
   - PC ルール (@media (min-width: 960px)) のみだと 959 以下で 旧テーマ既定の縦積みに戻る
   - 旧来 769 開始だと 600-768 のスマホ大画面〜小タブレットが SP 縦積みのままで空白崩れが発生していたため、
     min-width を 769 → 600 に拡張 (ユーザー指示) して SP との境界を連続化
   - 旧 .aoi-feature-card 系のレスポンシブ修正 (b5ab67c / f81566b / 40d5e22 / 2210633) は HTML が
     .aoi-columns.aoi-white-box にリファクタされた結果 dead code 化していたため、現 HTML 用に再適用
   - 02 カード (HTML 順 [text 64%][image 36%]) も 01/03 (HTML 順 [image 36%][text 64%]) と同じく flex 横並び。
     pc_only 画像は表示、sp_only 画像は非表示で挙動統一
   ============================================================ */
@media (min-width: 600px) and (max-width: 959px) {
  .aoi-columns.aoi-white-box {
    width: 100% !important;
    max-width: 1060px !important;
    margin: 0 auto !important;
    padding: 24px !important;
    border-radius: 12px !important;
    background: #ffffff !important;
    box-sizing: border-box !important;
  }
  .aoi-columns.aoi-white-box > .aoi-columns__inner {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 24px !important;
    width: 100% !important;
  }
  /* テキスト列 64% → flex 1 で残り幅 */
  .aoi-columns.aoi-white-box > .aoi-columns__inner > .aoi-column[style*="64%"] {
    flex: 1 1 0 !important;
    min-width: 0 !important;
    width: auto !important;
    max-width: none !important;
    margin: 0 !important;
  }
  /* 画像列 36% → 280 固定 (PC 364 を縮退) */
  .aoi-columns.aoi-white-box > .aoi-columns__inner > .aoi-column[style*="36%"] {
    flex: 0 0 280px !important;
    width: 280px !important;
    max-width: 280px !important;
    min-width: 0 !important;
    margin: 0 !important;
  }
  /* PC 画像はタブレットでも表示 (アスペクト比 364:352 維持) */
  .aoi-columns.aoi-white-box .wp-block-image.pc_only {
    display: block !important;
    width: 100% !important;
    max-width: 280px !important;
    height: auto !important;
    aspect-ratio: 364 / 352 !important;
    margin: 0 !important;
  }
  .aoi-columns.aoi-white-box .wp-block-image.pc_only img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    border-radius: 12px !important;
  }
  /* SP 画像はタブレットでは非表示 */
  .aoi-columns.aoi-white-box .wp-block-image.sp_only {
    display: none !important;
  }
}

.aoi-feature-card .aoi-feature-num,
.aoi-feature-card [class*="feature-num"] {
  font-family: 'Yuji Mai', serif;
  font-size: 64px;
  line-height: 40px;
  color: #17bfbd;
}

.aoi-feature-card h3,
.aoi-feature-card .wp-block-heading {
  font-size: 20px;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 2px;
  color: #1c4660;
}

.aoi-feature-card hr,
.aoi-feature-card .wp-block-separator,
.aoi-feature-card--reverse hr,
.aoi-feature-card--reverse .wp-block-separator {
  width: 100%;
  max-width: 100%;
  border-top: 2px solid rgba(28, 70, 96, 0.3);
  margin: 0;
}

.aoi-feature-card p {
  font-size: 16px;
  font-weight: 500;
  line-height: 1.76;
  letter-spacing: 1.6px;
  color: #1c4660;
}

@media (max-width: 768px) {
  /* セクション本体 */
  .aoi-feature {
    padding: 70px 16px 0 !important;
    gap: 50px !important;
    min-height: auto !important;
    background: linear-gradient(182.79deg, #f1f8fa 30.2%, #ffffff 99.5%) !important;
  }

  /* 装飾英字 (Figma 1152:2614 "FEATURE" Oooh Baby 130px tracking -6.5; #347 で 70 → 130 に修正) */
  .aoi-feature .en-title-feature,
  .aoi-feature [class*="en-title"] {
    font-size: 130px !important;
    letter-spacing: -6.5px !important;
    transform: rotate(-9.26deg) !important;
    color: #d9ee52 !important;
    font-family: 'Oooh Baby', cursive !important;
    position: absolute !important;
    top: -22px !important;
    left: 23px !important;
  }

  /* 見出し (Figma 1152:2615 H2 large 26 Bold lh 1.4 tracking 2.6; #347 で 24 → 26 に修正) */
  .aoi-feature h2 {
    font-size: 26px !important;
    line-height: 1.4 !important;
    letter-spacing: 2.6px !important;
    color: #1c4660 !important;
    text-align: center !important;
  }

  /* カード (PC reverse 含めて全カード SP は column 統一) */
  .aoi-feature-card,
  .aoi-feature-card--reverse {
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    height: auto !important;
    padding: 16px !important;
    gap: 16px !important;
    border-radius: 12px !important;
    background: #ffffff !important;
  }

  /* カード内 画像 */
  .aoi-feature-card img,
  .aoi-feature-card .wp-block-image,
  .aoi-feature-card .wp-block-image img {
    width: 100% !important;
    height: 200px !important;
    max-width: 100% !important;
    object-fit: cover !important;
    border-radius: 12px !important;
  }

  /* カード内 hgroup (番号 + タイトル の横並び。WP columns ブロック想定) */
  .aoi-feature-card .wp-block-columns {
    flex-direction: row !important;
    align-items: flex-start !important;
    gap: 8px !important;
    width: 100% !important;
    flex-wrap: nowrap !important;
  }

  /* 番号 (PilGi 撤去済、Yuji Mai を一次フォールバックとして使用) */
  .aoi-feature-card .aoi-feature-num,
  .aoi-feature-card [class*="feature-num"] {
    font-family: 'Yuji Mai', serif !important;
    font-size: 48px !important;
    line-height: 40px !important;
    color: #17bfbd !important;
    width: 60px !important;
    flex-shrink: 0 !important;
  }

  /* タイトル */
  .aoi-feature-card h3,
  .aoi-feature-card .wp-block-heading {
    font-size: 20px !important;
    font-weight: 700 !important;
    line-height: 1.8 !important;
    letter-spacing: 2px !important;
    color: #1c4660 !important;
    flex: 1 0 0 !important;
  }

  /* 区切り線 (Figma 2027:17866、line93 SVG 相当) */
  .aoi-feature-card hr,
  .aoi-feature-card .wp-block-separator {
    width: 100% !important;
    border-top: 1px solid rgba(28, 70, 96, 0.3) !important;
    transform: rotate(-0.25deg) !important;
    margin: 0 !important;
  }

  /* 本文 */
  .aoi-feature-card p {
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 1.76 !important;
    letter-spacing: 1.6px !important;
    color: #1c4660 !important;
    width: 100% !important;
  }
}

/* =====================================================
   FV セクション (Issue: TOP FV, Figma 1152:2570)
   カスタム class 前提 (要 WP 管理画面でブロックに付与):
    - .aoi-fv: セクション最外側
    - .aoi-fv__inner: 内側コンテナ
    - .aoi-fv__photo: 写真エリア
    - .aoi-fv__overlay: テキスト・バッジレイヤー
    - .aoi-fv__badge: 合格率バッジ x2
    - .aoi-fv__cta-blue / .aoi-fv__cta-white: CTA 帯
   SVG アセット (キャッチコピー / 月桂樹) は別途 WP メディアにアップロード要
   フェードカルーセル JS は別 PR で対応
===================================================== */

/* ---- PC ベース ---- */

/* セクション最外側 */
.aoi-fv {
  background-color: #f1f8fa;
  padding: 0 20px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  position: relative;
}

/* 内側コンテナ */
.aoi-fv__inner {
  width: 100%;
  max-width: 1432px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 0 20px;
  position: relative;
}

/* 写真エリア */
.aoi-fv__photo {
  width: 100%;
  height: 653px;
  border-radius: 10px;
  overflow: hidden;
  position: relative;
}

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

/* お知らせバー */
.aoi-fv__news-bar {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
  padding: 0 18px;
}

/* 日付 */
.aoi-fv__news-bar-date {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 12px;
  color: #1c4660;
  letter-spacing: 1.2px;
  white-space: nowrap;
}

/* pill ボタン */
.aoi-fv__news-bar-label {
  background-color: #1c4660;
  color: #ffffff;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 1.2px;
  padding: 10px 15px;
  border-radius: 24px;
  white-space: nowrap;
  line-height: 1;
}

/* 本文 */
.aoi-fv__news-bar-text {
  width: 364px;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: #1c4660;
  letter-spacing: 1.6px;
  line-height: 1.76;
}

/* 矢印アイコン */
.aoi-fv__news-bar-arrow {
  width: 20px;
  height: 10px;
  flex-shrink: 0;
  transform: scaleY(-1);
  display: flex;
  align-items: center;
  justify-content: center;
}

/* テキスト・バッジ オーバーレイレイヤー */
.aoi-fv__overlay {
  position: absolute;
  top: 0;
  left: 20px;
  right: 20px;
  height: 653px;
  padding: 100px;
  display: flex;
  flex-direction: column;
  gap: 30px;
  pointer-events: none;
  z-index: 2;
}

.aoi-fv__overlay > * {
  pointer-events: auto;
}

/* キャッチコピー画像 */
.aoi-fv__catch {
  max-width: 694px;
  width: 100%;
}

.aoi-fv__catch img {
  width: 100%;
  height: auto;
  display: block;
}

/* バッジコンテナ */
.aoi-fv__badges {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 12px;
}

/* 単一バッジ */
.aoi-fv__badge {
  width: 140px;
  height: 140px;
  border: 3px solid #b38f3a;
  border-radius: 300px;
  background: linear-gradient(200.21deg, #dcc98e 24.226%, #f2e9c3 46.404%, #dcc98e 72.351%, #c8ab5d 85.215%);
  padding: 10px 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 4px;
  position: relative;
  flex-shrink: 0;
}

/* "第一志望" */
.aoi-fv__badge-title {
  font-family: 'Noto Serif JP', serif;
  font-weight: 900;
  font-size: 18px;
  color: #1c4660;
  text-align: center;
  line-height: 1.2;
}

/* 大学名 (バッジ2のみ) */
.aoi-fv__badge-univ {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 12px;
  color: #1c4660;
  text-align: center;
  line-height: 1.4;
  display: flex;
  flex-direction: row;
  gap: 4px;
  flex-wrap: wrap;
  justify-content: center;
}

/* "合格率" */
.aoi-fv__badge-label {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 14px;
  color: #1c4660;
  text-align: center;
  line-height: 1.2;
}

/* 合格率数値 */
.aoi-fv__badge-num {
  font-family: 'Noto Serif JP', serif;
  font-weight: 900;
  font-size: 44px;
  color: #f1191a;
  line-height: 1.2;
  display: inline;
}

/* % */
.aoi-fv__badge-percent {
  font-family: 'Noto Serif JP', serif;
  font-weight: 900;
  font-size: 20px;
  color: #f1191a;
  line-height: 1.2;
  display: inline;
}

/* 月桂樹 SVG */
.aoi-fv__badge-laurel {
  width: 200px;
  height: 134px;
  position: relative;
  bottom: -120px;
  pointer-events: none;
}

.aoi-fv__badge-laurel img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* CTA 帯コンテナ */
.aoi-fv__cta {
  display: flex;
  flex-direction: column;
}

/* 青帯 */
.aoi-fv__cta-blue {
  background-color: #17bfbd;
  padding: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 26px;
  color: #ffffff;
  text-align: center;
  letter-spacing: 2.6px;
  line-height: 1.4;
}

/* 白帯 */
.aoi-fv__cta-white {
  background-color: #ffffff;
  padding: 12px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 30px;
  color: #17bfbd;
  text-align: center;
  letter-spacing: 4.8px;
  line-height: 1.4;
}

/* ---- タブレット〜SP @media (max-width: 959px): SP breakpoint と整合 ----
   - お知らせバーをタブレットでも縦積み (PC 用 width 364 が overflow して消えていた問題を解消)
   - バッジ・キャッチを中央寄せ (左固定の問題を解消、Figma SP 仕様 items-center) */
@media (max-width: 959px) {
  .aoi-fv__news-bar {
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    padding: 10px !important;
  }
  .aoi-fv__news-bar-text {
    width: 100% !important;
    max-width: 322px !important;
    font-size: 12px !important;
  }
  .aoi-fv__overlay {
    align-items: center !important;
  }
  .aoi-fv__badges {
    justify-content: center !important;
  }
  .aoi-fv__catch {
    margin-left: auto !important;
    margin-right: auto !important;
  }
}

/* ---- SP @media (max-width: 768px): SP 専用の細かい寸法 ---- */
@media (max-width: 768px) {
  /* セクション最外側 */
  .aoi-fv {
    padding: 10px 10px 16px !important;
  }

  /* 内側コンテナ */
  .aoi-fv__inner {
    padding: 0 !important;
    gap: 10px !important;
  }

  /* 写真エリア */
  .aoi-fv__photo {
    height: 480px !important;
    border-radius: 10px !important;
  }

  /* テキスト・バッジ オーバーレイレイヤー */
  .aoi-fv__overlay {
    left: 10px !important;
    right: 10px !important;
    height: 480px !important;
    padding: 16px 10px !important;
    gap: 212px !important;
  }

  /* キャッチコピー画像 */
  .aoi-fv__catch {
    max-width: 100% !important;
  }

  /* バッジコンテナ */
  .aoi-fv__badges {
    gap: 20px !important;
  }

  /* 単一バッジ SP */
  .aoi-fv__badge {
    width: 114px !important;
    height: 114px !important;
    padding: 8px 12px !important;
  }

  /* "第一志望" SP */
  .aoi-fv__badge-title {
    font-size: 14px !important;
  }

  /* "合格率" SP */
  .aoi-fv__badge-label {
    font-size: 12px !important;
  }

  /* 合格率数値 SP */
  .aoi-fv__badge-num {
    font-size: 34px !important;
  }

  /* % SP */
  .aoi-fv__badge-percent {
    font-size: 16px !important;
  }

  /* 月桂樹 SVG SP */
  .aoi-fv__badge-laurel {
    width: 148px !important;
    height: 100px !important;
    bottom: -90px !important;
  }

  /* お知らせバー SP */
  .aoi-fv__news-bar {
    flex-direction: column !important;
    align-items: flex-start !important;
    justify-content: flex-start !important;
    gap: 10px !important;
    padding: 10px !important;
  }

  /* 本文 SP */
  .aoi-fv__news-bar-text {
    width: 100% !important;
    max-width: 322px !important;
    font-size: 12px !important;
  }

  /* 青帯 SP */
  .aoi-fv__cta-blue {
    padding: 4px 10px !important;
    font-size: 18px !important;
    letter-spacing: 1.8px !important;
  }

  /* 白帯 SP */
  .aoi-fv__cta-white {
    padding: 8px 12px !important;
    font-size: 22px !important;
    letter-spacing: 2.2px !important;
  }
}

/* ============================================================
   aoi-banner: TOP バナーセクション (Figma 1152:2592)
   ============================================================ */

/* セクション最外側 / FV 直下、margin-top: -40px の負オーバーラップは画像を不正に削るため撤去
   FV と banner 間の隙間は commit 714ba05 で .aoi-fv-sp の margin: 0 !important + 空 wp-block-group 非表示で解消済み
   背景色は FV 周辺 (body) と同じ #f1f8fa に揃え、シームレスに繋げる */
.aoi-banner {
  background-color: #f1f8fa !important;
  display: flex !important;
  flex-direction: column !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 26px !important;
  padding-top: 50px !important;
  padding-bottom: 50px !important;
  width: 100% !important;
  box-sizing: border-box !important;
  overflow: hidden !important;
  position: relative;
  z-index: 1;
  border-radius: 24px 24px 0 0;
}

/* 見出し行 (装飾SVG + テキスト + 装飾SVG) */
.aoi-banner__heading {
  display: flex !important;
  flex-direction: row !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 54px !important;
  width: 100% !important;
  max-width: 1512px !important;
}

/* 装飾SVGコンテナ 左 */
.aoi-banner__deco-left {
  width: 48px !important;
  height: 74px !important;
  flex-shrink: 0 !important;
  position: relative !important;
  display: block !important;
}

.aoi-banner__deco-left img,
.aoi-banner__deco-left svg {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}

/* 装飾SVGコンテナ 右 */
.aoi-banner__deco-right {
  width: 48px !important;
  height: 74px !important;
  flex-shrink: 0 !important;
  position: relative !important;
  display: block !important;
}

.aoi-banner__deco-right img,
.aoi-banner__deco-right svg {
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}

/* 見出しテキスト */
.aoi-banner__title {
  font-family: 'Noto Sans JP', 'Noto Sans', sans-serif !important;
  font-weight: 700 !important;
  font-size: 30px !important;
  letter-spacing: 4.8px !important;
  line-height: 1.4 !important;
  text-align: center !important;
  color: #1c4660 !important;
  flex-shrink: 1 !important;
  margin: 0 !important;
}

/* 見出し内アクセントspan */
.aoi-banner__title--accent {
  color: #17bfbd !important;
}

/* 写真カルーセル */
.aoi-banner__carousel {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 16px !important;
  padding-left: 4px !important;
  padding-right: 4px !important;
  height: 240px !important;
  width: 1816px !important;
  max-width: 1816px !important;
  overflow: hidden !important;
  flex-shrink: 0 !important;
}

/* カルーセル単一写真アイテム */
.aoi-banner__carousel-item {
  flex: 1 0 0 !important;
  height: 100% !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  position: relative !important;
  min-width: 0 !important;
}

/* カルーセル内画像 */
.aoi-banner__carousel-item img {
  object-fit: cover !important;
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  display: block !important;
}

/* ============================================================
   aoi-banner SP/タブレット (@media max-width: 900px)
   - Figma node 1851:16235 (SP FV) の仕様を 900px 以下で適用
   - PC レイアウト (heading w 1512 / carousel w 1816) では 900 未満で overflow するため、
     900 以下では SP 用の縦積み・横スクロールに切替
   - 768→900 へ拡張 (ユーザー指示) し SP との境界空白を解消
   ============================================================ */
@media (max-width: 900px) {

  /* バナー外側 SP — padding/gap は PC と同一 (Figma SP 確認済) */
  .aoi-banner {
    padding-top: 50px !important;
    padding-bottom: 50px !important;
    gap: 26px !important;
  }

  /* 見出し行 SP — gap を縮小、両脇に padding 追加 */
  .aoi-banner__heading {
    gap: 10px !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    max-width: 100% !important;
  }

  /* 見出しテキスト SP */
  .aoi-banner__title {
    font-size: 24px !important;
    letter-spacing: 2.4px !important;
  }

  /* カルーセル SP — 横スクロール、高さ縮小 */
  .aoi-banner__carousel {
    width: 100% !important;
    max-width: 100% !important;
    height: 170px !important;
    overflow-x: scroll !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scroll-snap-type: x mandatory !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  /* SP カルーセルアイテム — 幅固定でスクロール */
  .aoi-banner__carousel-item {
    flex: 0 0 247px !important;
    width: 247px !important;
    height: 100% !important;
    scroll-snap-align: start !important;
  }
}

/* ============================================================
   #338: TOP FV SP/タブレット (.aoi-fv-sp) 4 パーツ重ね
   shortcode [aoi_fv_sp] (functions.php) で出力される 4 パーツ:
     - .aoi-fv-sp__bg       : 背景画像 fv-bg-subtract.png (1432×653, 右下欠けシェイプ)
     - .aoi-fv-sp__catch    : キャッチ fv-catch.svg (719×223, 「頼れる先輩〜」)
     - .aoi-fv-sp__badge--1 : 管理画面編集テキスト + 月桂冠SVG (Figma 準拠デザイン)
     - .aoi-fv-sp__badge--2 : 管理画面編集テキスト + 月桂冠SVG (Figma 準拠デザイン)
   旧 受付中-1.png 1 枚焼き込みを 4 要素に分解、CSS の position:absolute で個別配置。
   背景は <img> として配置 (background-image でなく) し、container のアスペクト比を背景に追従させレスポンシブで形を維持。
   ============================================================ */
/* .aoi-fv-sp は全 viewport 共通 (PC / タブレット / SP すべて同じ四角画像 fv-bg.jpg を表示)
   元画像 fv-bg-1.webp の透明領域を Pillow で実測した値に基づき CSS で再現:
     - 4 隅角丸: 38px / 1600px = 2.38% → border-radius 24px (viewport 幅依存、目安)
     - 右下欠け: 横 48.19% × 縦 13.99%
     - 内側 (欠けの左上) 角丸: 同 24px 程度
   画像自身は四角のままなので、viewport が変わっても欠けの比率と形が固定で崩れない。
   ユーザー指示「fv-bg-1.webp が元」「角丸にし、右下に要素を重ねて重ねた部分を再現」。 */
/* レスポンシブ用スケール係数: 1512px (PC サイズ) を基準に連続縮小、960 で底打ち
   - viewport ≥ 1512:        --fv-scale = 1 (基準値、固定)
   - 960 ≤ viewport < 1512:  --fv-scale = 100vw / 1512 (連続的に縮小)
   - viewport <  960:        --fv-scale = 960 / 1512 ≒ 0.635 (固定、それ以上は縮小しない) */
.aoi-fv-sp {
  --fv-scale: clamp(calc(960 / 1512), calc(100vw / 1512px), 1);
  display: block;
  position: relative;
  /* 画面いっぱい (viewport 幅 - 左右各 10px マージン) で配置。上のマージン/パディングは無し、左右と下のみ 10px。
     z-index: 0 で次セクション (.aoi-banner) のオーバーラップ基盤として機能 */
  /* viewport から左右 20px の余白を引いた幅で配置。padding は 0 にして absolute 子要素 (overlay/notch)
     の left:0/right:0 が画像幅と完全一致するようにする */
  width: calc(100vw - 40px);
  left: 50%;
  transform: translateX(-50%);
  /* 旧テーマ由来 .post_content > * の margin-bottom: 2em を打ち消し、FV と .aoi-banner の隙間を解消 */
  margin: 0 !important;
  padding: 0;
  box-sizing: border-box;
  line-height: 0;
  z-index: 0;
}
/* .aoi-fv-sp 直後の固定ページ由来の空 wp-block-group も 旧テーマ由来の margin-bottom: 2em で
   隙間を作るため非表示にする */
.post_content > .aoi-fv-sp + .wp-block-group {
  display: none;
}
/* .aoi-fv-sp__media: 画像 + overlay を内包するラッパー。overlay の containing block として
   画像の高さに連動 (= overlay の bottom が画像下端と一致、tagline-sp/notch を含まない)。
   overflow: hidden + border-radius で 4 隅角丸クリップ。
   notch の border-top-left-radius が凹角丸を担うため ::before/::after 不要。 */
.aoi-fv-sp__media {
  position: relative;
  display: block;
  width: 100%;
  line-height: 0;
  overflow: hidden;
  border-radius: calc(24px * var(--fv-scale));
}
/* 画像自身は四角のまま — __media の overflow:hidden が角丸クリップを担う */
.aoi-fv-sp__bg {
  display: block;
  width: 100%;
  height: auto;
}
/* フレーム 2 / 3: frame-1 の上に絶対配置し opacity をキーフレームで巡回切替。
   12 秒サイクル: frame-1 (3s) → frame-2 (1.5s fade + 1.5s 静止) → frame-3 (1.5s fade + 1.5s 静止) → frame-1 (1.5s fade)。
   frame-1 は通常フローでレイアウト確定源、常に opacity 1 (frame-2/3 が透けると下から見える)。
   will-change/translateZ で GPU 合成を強制し .aoi-banner__carousel と独立レイヤー化。 */
.aoi-fv-sp__bg--frame-2,
.aoi-fv-sp__bg--frame-3 {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  opacity: 0;
  pointer-events: none;
  z-index: 1;
  will-change: opacity;
  transform: translateZ(0);
}
.aoi-fv-sp__bg--frame-2 {
  animation: aoi-fv-sp-fade-2 12s ease-in-out infinite;
}
.aoi-fv-sp__bg--frame-3 {
  animation: aoi-fv-sp-fade-3 12s ease-in-out infinite;
}
/* 12s サイクル: 各フレーム 3s 静止 + 1s クロスフェード
   frame-1(0-3s) → fade(3-4s) → frame-2(4-7s) → fade(7-8s) → frame-3(8-11s) → fade(11-12s) → frame-1 */
@keyframes aoi-fv-sp-fade-2 {
  0%, 25%    { opacity: 0; }
  33.33%     { opacity: 1; }
  58.33%     { opacity: 1; }
  66.66%     { opacity: 0; }
  100%       { opacity: 0; }
}
@keyframes aoi-fv-sp-fade-3 {
  0%, 58.33% { opacity: 0; }
  66.66%     { opacity: 1; }
  91.66%     { opacity: 1; }
  100%       { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .aoi-fv-sp__bg--frame-2,
  .aoi-fv-sp__bg--frame-3 {
    animation: none;
  }
}
/* 画像右下の欠け shape (.aoi-fv-sp__notch) にお知らせバーを内包:
   HTML上は __media の外・.aoi-fv-sp (position:relative) の直下に配置。
   PC: position:absolute で .aoi-fv-sp の右下に重ね、__media 右下角と一致させる。
       tagline-sp が display:none のため bottom:0 = __media 下端と等価。
       border-bottom-right-radius は __media の border-radius と同値にすることで
       角が揃って見える（__media の overflow:hidden に依存しないため二重クリップなし）。
   SP: position:static で tagline-sp の直後に通常フローで表示。 */
.aoi-fv-sp__notch {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 48%;
  background-color: #f1f8fa;
  border-top-left-radius: calc(24px * var(--fv-scale));
  border-bottom-right-radius: calc(24px * var(--fv-scale));
  padding: calc(20px * var(--fv-scale)) calc(16px * var(--fv-scale));
  box-sizing: border-box;
  z-index: 2;
  line-height: 1.4;
}
.aoi-fv-sp__notch .p-postList {
  list-style: none;
  margin: 0;
  padding: 0;
}
.aoi-fv-sp__notch .p-postList__item {
  margin: 0;
  padding: 0;
  list-style: none;
}
/* お知らせバー内: 日付 / お知らせタグ / テキスト本文 / 矢印 を横並び配置 */
.aoi-fv-sp__notch .p-postList__link {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: #1c4660;
}
.aoi-fv-sp__notch .p-postList__body {
  display: flex;
  align-items: center;
  gap: 12px;
  flex: 1;
  min-width: 0;
}
.aoi-fv-sp__notch .p-postList__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-shrink: 0;
}
.aoi-fv-sp__notch .p-postList__times {
  font-size: 12px;
  color: #1c4660;
}
.aoi-fv-sp__notch .p-postList__title {
  font-size: 14px;
  font-weight: 500;
  margin: 0;
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.aoi-fv-sp__notch .p-postList__icon {
  flex-shrink: 0;
  color: #1c4660;
}
/* お知らせノッチ内リンク (functions.php が生成する .aoi-fv-sp__notch-link 構造に対応) */
.aoi-fv-sp__notch-link {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: #1c4660;
  line-height: 1.4;
}
.aoi-fv-sp__notch-date {
  font-size: max(12px, calc(12px * var(--fv-scale)));
  color: #1c4660;
  white-space: nowrap;
  flex-shrink: 0;
  letter-spacing: 0.05em;
}
.aoi-fv-sp__notch-label {
  background: #1c4660;
  color: #fff;
  font-size: 12px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  white-space: nowrap;
  flex-shrink: 0;
  letter-spacing: 0.05em;
}
.aoi-fv-sp__notch-title {
  font-size: max(12px, calc(13px * var(--fv-scale)));
  font-weight: 500;
  flex: 1;
  min-width: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  color: #1c4660;
}
.aoi-fv-sp__notch-link .fa-arrow-right {
  flex-shrink: 0;
  font-size: 12px;
  color: #1c4660;
}
/* .aoi-fv-sp__notch 内の .top-news-list は絶対配置の中身として通常フローに戻す */
.aoi-fv-sp__notch .top-news-list {
  width: 100%;
  max-width: 100%;
  margin: 0;
  height: auto;
  float: none;
  position: static;
}
/* 右下欠け再現: ページ背景色 #f1f8fa のブロックを画像の上に重ねる。
   width/height は fv-bg-1.webp 実測比率 (48% × 14%) でレスポンシブ追従。
   内側 (左上) 角だけ丸めて欠けの内角を表現。container の overflow:hidden + border-radius で
   外側 (右下) 角は自動的に丸まる。 */
/* __media に overflow:hidden + border-radius を設定することで 4 隅角丸と __notch 右下クリップを実現。
   mask-image は不使用 — fv-bg-1.webp の cut-out 高さが Figma 実寸と合わなかったため廃止。 */
/* キャッチコピー: 左上寄り、ヒーロー上半分 (画像左 5% / 上 8%) */
/* オーバーレイラッパー: 画像上端から 100px 下、左 5% に絶対配置。
   内部の catch / badges / tagline を flex column + gap 30 で並べることで、
   各要素自身の高さに依存せず「キャッチ→バッジ 30px、バッジ→タグライン 30px」を正確に実現 */
.aoi-fv-sp__overlay {
  position: absolute;
  top: calc(100px * var(--fv-scale));
  left: 5%;
  right: 5%;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: calc(30px * var(--fv-scale));
  z-index: 2;
}
/* キャッチコピー: overlay 内で通常フロー */
.aoi-fv-sp__catch {
  position: relative;
  width: 55%;
  max-width: 600px;
  height: auto;
}
/* バッジ群: overlay 内で通常フロー */
.aoi-fv-sp__badges {
  position: relative;
  display: flex;
  align-items: center;
  gap: calc(16px * var(--fv-scale));
  line-height: 1.2;
}
/* Figma 1152:2584 準拠: 金色ディスク (140×140) + 月桂冠 SVG (200×134, ディスク下に -120px で重なる)
   テキストは管理画面で編集可能。3 行を上→中→下にレイアウト (下段は強調赤) */
.aoi-fv-sp__badge {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  width: calc(200px * var(--fv-scale));
  max-width: calc(200px * var(--fv-scale));
  min-height: 0;
  padding: 0;
  border: none;
  border-radius: 0;
  background: none;
  filter: none;
  font-weight: 900;
  text-align: center;
  overflow-wrap: anywhere;
  font-family: "Noto Serif JP", "Noto Serif KR", serif;
}
.aoi-fv-sp__badge--1,
.aoi-fv-sp__badge--2 {
  width: calc(200px * var(--fv-scale));
  max-width: calc(200px * var(--fv-scale));
}
.aoi-fv-sp__badge-disc {
  position: relative;
  z-index: 2;
  width: calc(140px * var(--fv-scale));
  height: calc(140px * var(--fv-scale));
  margin-bottom: calc(-120px * var(--fv-scale));
  padding: calc(10px * var(--fv-scale)) calc(20px * var(--fv-scale));
  box-sizing: border-box;
  border: calc(3px * var(--fv-scale)) solid #b38f3a;
  border-radius: 50%;
  background: linear-gradient(200.21deg, #dcc98e 24.226%, #f2e9c3 46.404%, #dcc98e 72.351%, #c8ab5d 85.215%);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  gap: calc(4px * var(--fv-scale));
  overflow: hidden;
}
.aoi-fv-sp__badge-laurel {
  position: relative;
  z-index: 1;
  display: block;
  width: calc(200px * var(--fv-scale));
  height: auto;
}
/* 各 line は 1 行で収まるよう nowrap。文字数に応じた --md / --sm / --xs 修飾クラス
   (functions.php aoi_fv_sp_html() で mb_strlen により自動付与) で自動縮小する */
.aoi-fv-sp__badge-line {
  display: block;
  line-height: 1;
  white-space: nowrap;
  letter-spacing: 0;
}
.aoi-fv-sp__badge-line--top {
  font-size: calc(18px * var(--fv-scale));
  color: #1c4660;
}
.aoi-fv-sp__badge-line--middle {
  font-size: calc(14px * var(--fv-scale));
  color: #1c4660;
}
.aoi-fv-sp__badge-line--bottom {
  font-size: calc(28px * var(--fv-scale));
  color: #f1191a;
}
/* 文字数別の自動縮小: ディスク内幅 (140 - padding 40 = 100px) に 6〜8 文字を 1 行で収めるための段階的サイズダウン */
.aoi-fv-sp__badge-line--top.aoi-fv-sp__badge-line--md    { font-size: calc(15px * var(--fv-scale)); }
.aoi-fv-sp__badge-line--top.aoi-fv-sp__badge-line--sm    { font-size: calc(13px * var(--fv-scale)); }
.aoi-fv-sp__badge-line--top.aoi-fv-sp__badge-line--xs    { font-size: calc(11px * var(--fv-scale)); }
.aoi-fv-sp__badge-line--middle.aoi-fv-sp__badge-line--md { font-size: calc(12px * var(--fv-scale)); }
.aoi-fv-sp__badge-line--middle.aoi-fv-sp__badge-line--sm { font-size: calc(11px * var(--fv-scale)); }
.aoi-fv-sp__badge-line--middle.aoi-fv-sp__badge-line--xs { font-size: calc(10px * var(--fv-scale)); }
.aoi-fv-sp__badge-line--bottom.aoi-fv-sp__badge-line--md { font-size: calc(20px * var(--fv-scale)); }
.aoi-fv-sp__badge-line--bottom.aoi-fv-sp__badge-line--sm { font-size: calc(16px * var(--fv-scale)); }
.aoi-fv-sp__badge-line--bottom.aoi-fv-sp__badge-line--xs { font-size: calc(14px * var(--fv-scale)); }

/* タグライン (音大受験〜): バッジ直下、テキスト幅にフィット
   __lead: シアン #17bfbd 塗 / 白文字
   __main: 白塗 / シアン #17bfbd 文字
   親 .aoi-fv-sp-tagline 自身の bg は無し、各 span が独立して背景色を持つ */
/* タグライン: overlay 内で通常フロー (gap 30 で badges から 30px 下に位置) */
.aoi-fv-sp-tagline {
  position: relative;
  display: inline-flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  line-height: 0;
}
.aoi-fv-sp-tagline__lead,
.aoi-fv-sp-tagline__main {
  display: block;
  width: 100%;
  box-sizing: border-box;
  padding: calc(12px * var(--fv-scale));
  border-radius: 0;
  font-weight: 700;
  text-align: center;
}
.aoi-fv-sp-tagline__lead {
  background-color: #17bfbd;
  color: #ffffff;
  font-size: calc(26px * var(--fv-scale));
  line-height: 1.5;
  letter-spacing: 2.6px;
}
.aoi-fv-sp-tagline__main {
  background-color: #ffffff;
  color: #17bfbd;
  font-size: calc(30px * var(--fv-scale));
  line-height: 1.4;
  letter-spacing: 4.8px;
}

/* ============================================================
   FV (.aoi-banner) Figma 1152:2592 厳密準拠
   - 装飾SVG 48×74 / タイトル 30px Bold (#1c4660 / accent #17bfbd) / leading 1.4 / tracking 4.8
   - heading gap 54 / w 1512 / center
   - carousel gap 16 / h 240 / px 4 / w 1816 (4 枚: flex-[1_0_0])
   - PC ピクセル値は全 viewport で維持し、container 側 max-width: 100% でビューポートに自動収縮させる方針
     (タブレット用に独自値で縮退する従来実装は Figma 仕様と乖離するため撤去)
   - SP (<=768) は既存 @media ブロック (title 24px / heading gap 10) のみ残す
   ============================================================ */

/* (旧 @media (max-width: 900px) の --fv-scale 上書きは撤去。
   .aoi-fv-sp 自身の clamp(calc(960/1512), calc(100vw/1512px), 1) で
   1512 以下を連続縮小、960 で底打ちに統合) */

/* SP 用 tagline は default 非表示 (PC は overlay 内の .aoi-fv-sp-tagline を使用) */
.aoi-fv-sp-tagline-sp {
  display: none;
}

/* SP (≤768): FV 背景画像を縦長表示。aspect-ratio は .aoi-fv-sp__media (画像範囲) に当てる
   (旧 .aoi-fv-sp はお知らせ含むため、子要素合計で aspect-ratio が無視されていた) */
@media (max-width: 768px) {
  .aoi-fv-sp__media {
    aspect-ratio: 3 / 4;
  }
  .aoi-fv-sp__bg {
    width: 100%;
    height: 100%;
    object-fit: cover;
    object-position: calc(100% + 15px) center;
  }
  /* SP: バッジ全体を 1.35 倍程度に拡大 (200→270, ディスク 140→189, 月桂冠 200→270) */
  .aoi-fv-sp__badge,
  .aoi-fv-sp__badge--1,
  .aoi-fv-sp__badge--2 {
    width: calc(270px * var(--fv-scale));
    max-width: calc(270px * var(--fv-scale));
  }
  .aoi-fv-sp__badge-disc {
    width: calc(189px * var(--fv-scale));
    height: calc(189px * var(--fv-scale));
    margin-bottom: calc(-162px * var(--fv-scale));
    padding: calc(14px * var(--fv-scale)) calc(27px * var(--fv-scale));
  }
  .aoi-fv-sp__badge-laurel {
    width: calc(270px * var(--fv-scale));
  }
  .aoi-fv-sp__badge-line--top {
    font-size: calc(24px * var(--fv-scale));
  }
  .aoi-fv-sp__badge-line--middle {
    font-size: calc(19px * var(--fv-scale));
  }
  .aoi-fv-sp__badge-line--bottom {
    font-size: calc(38px * var(--fv-scale));
  }
  /* SP も同じ比率 (≒1.35倍) で文字数別にサイズダウン */
  .aoi-fv-sp__badge-line--top.aoi-fv-sp__badge-line--md    { font-size: calc(20px * var(--fv-scale)); }
  .aoi-fv-sp__badge-line--top.aoi-fv-sp__badge-line--sm    { font-size: calc(18px * var(--fv-scale)); }
  .aoi-fv-sp__badge-line--top.aoi-fv-sp__badge-line--xs    { font-size: calc(15px * var(--fv-scale)); }
  .aoi-fv-sp__badge-line--middle.aoi-fv-sp__badge-line--md { font-size: calc(16px * var(--fv-scale)); }
  .aoi-fv-sp__badge-line--middle.aoi-fv-sp__badge-line--sm { font-size: calc(15px * var(--fv-scale)); }
  .aoi-fv-sp__badge-line--middle.aoi-fv-sp__badge-line--xs { font-size: calc(13px * var(--fv-scale)); }
  .aoi-fv-sp__badge-line--bottom.aoi-fv-sp__badge-line--md { font-size: calc(27px * var(--fv-scale)); }
  .aoi-fv-sp__badge-line--bottom.aoi-fv-sp__badge-line--sm { font-size: calc(22px * var(--fv-scale)); }
  .aoi-fv-sp__badge-line--bottom.aoi-fv-sp__badge-line--xs { font-size: calc(19px * var(--fv-scale)); }
}

/* 1100 以下: FV 内の配置を tablet/SP モードに切替
   - catch を背景画像上端から padding 10 / 横幅 100% に
   - overlay 内 tagline (PC 用) は非表示、別の SP 用 tagline-sp を画像と notch の間に表示
   - 右下凹角丸 (.aoi-fv-sp__notch) を画像下の通常フローに移動 (画像同じ横幅、お知らせバー化)
   - 凹角丸擬似要素 (::before/::after) は非表示 */
@media (max-width: 1100px) {
  .aoi-fv-sp__overlay {
    /* overlay を画像全範囲に拡張し、catch は absolute で上端固定、badges を flex で中央配置 */
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    padding: 10px;
    box-sizing: border-box;
  }
  /* catch を画像横幅いっぱい (左右 20px パディング) に拡大配置。
     badges と重なる場合に備え max-height を image 範囲の 50% に制限 (object-fit: contain で縮小) */
  .aoi-fv-sp__catch {
    position: absolute;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    width: calc(100% - 40px);
    max-width: none;
    height: auto;
    max-height: 50%;
    object-fit: contain;
  }
  /* バッジを画像下端から 20px 上に配置 (tagline-sp の 20px 上の位置基準で画像内に収める) */
  .aoi-fv-sp__badges {
    margin-top: auto;
    margin-bottom: 20px;
    align-self: center;
  }
  .aoi-fv-sp-tagline {
    display: none;
  }
  .aoi-fv-sp-tagline-sp {
    display: flex;
    flex-direction: column;
    align-items: stretch;
    width: 100%;
    margin: 10px 0;
    box-sizing: border-box;
    line-height: 0;
  }
  .aoi-fv-sp-tagline-sp__lead,
  .aoi-fv-sp-tagline-sp__main {
    display: block;
    width: 100%;
    box-sizing: border-box;
    padding: calc(12px * var(--fv-scale));
    font-weight: 700;
    letter-spacing: 0.5px;
    text-align: center;
  }
  .aoi-fv-sp-tagline-sp__lead {
    background-color: #17bfbd;
    color: #ffffff;
    font-size: calc(26px * var(--fv-scale));
    line-height: 1.5;
  }
  .aoi-fv-sp-tagline-sp__main {
    background-color: #ffffff;
    color: #17bfbd;
    font-size: calc(30px * var(--fv-scale));
    line-height: 1.4;
  }
  .aoi-fv-sp__notch {
    position: static;
    width: 100%;
    margin-top: 0;
    padding: 10px;
    background-color: rgba(255, 255, 255, 0.9);
    border-radius: 12px;
    border-top-left-radius: 12px;
    border-bottom-right-radius: 12px;
    box-sizing: border-box;
  }
  .aoi-fv-sp__notch::before,
  .aoi-fv-sp__notch::after {
    display: none;
  }
}


/* ============================================================
   ## Phase B 優先10件 (B-NEW-05/08/09/12/16/17/18/20/21/22)
   Figma fileKey: weMbv5Gyjtk9YIJKwOcv1Q
   実装日: 2026-04-27
   ============================================================ */


/* ===== B-NEW-17 (#234): about 選ばれる理由・コンセプト 余白調整・3パーツ揃え ===== */
/*
 * Figma node: 1741:12893 (aboutページ PC)
 * 対象HTML: .aoi-columns[style*="33.33%"] > .aoi-columns__inner
 *           .aoi-white-box 配下の各カード
 * 期待値: カード上下左右 30px padding、タイトル付近上下 16px、3列均等
 */

/* 選ばれる理由セクション: 3列グリッドを均等に揃える */
.en-title-concept ~ .aoi-columns,
h2.en-title-concept ~ .aoi-columns {
  /* 3パーツ均等揃え */
  align-items: stretch;
}

/* 選ばれる理由 各白ボックス — 上下左右 30px padding (全バリアント対応) */
.aoi-columns[style*="33.33%"] .aoi-white-box.has-global-padding,
.aoi-columns[style*="33.33%"] .aoi-white-box.is-layout-constrained,
.aoi-columns[style*="33.33%"] .aoi-white-box.is-layout-flex,
.aoi-columns[style*="33.33%"] .aoi-white-box.is-vertical {
  padding: 30px !important;
}

/* 選ばれる理由 各白ボックス内 h3 (タイトル) 上下 16px */
.aoi-columns[style*="33.33%"] .aoi-white-box h3.wp-block-heading {
  margin-top: 16px !important;
  margin-bottom: 16px !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* 3列カード高さ揃え (flex stretch) */
.aoi-columns[style*="33.33%"] > .aoi-columns__inner {
  align-items: stretch !important;
}

.aoi-columns[style*="33.33%"] > .aoi-columns__inner > .aoi-column {
  display: flex !important;
  flex-direction: column !important;
}

.aoi-columns[style*="33.33%"] > .aoi-columns__inner > .aoi-column .aoi-white-box {
  flex: 1 0 auto !important;
}


/* ===== B-NEW-18 (#235): about 代表挨拶 写真+テキスト同段レイアウト Figma準拠 ===== */
/*
 * Figma node: 1741:12893 (aboutページ PC)
 * 対象HTML: 運営会社代表セクション .aoi-columns
 * Figma 指定値:
 *   - 画像幅 671.5px (Figmaフレーム幅 1512px の約 44%)
 *   - 外側左右余白 156px / 上余白 190px
 *   - 画像と右テキストブロック間 308px → gap相当
 *   - プロフィール本文と経歴ボックス間 48px
 *   - 経歴ボックス下余白 61px
 *   - 写真と右の文字が同段 (flex row)
 * 対象セレクタ: .en-title-profile 直後の .aoi-columns
 */

/* 代表挨拶セクション: 写真と右テキスト同段 (PC) */
.en-title-profile ~ .aoi-columns > .aoi-columns__inner {
  display: flex !important;
  flex-direction: row !important;
  align-items: flex-start !important;
  gap: 60px !important; /* Figma 約308px÷5 ≈ 60px (実幅比例) */
}

/* 画像カラム: 左側 */
.en-title-profile ~ .aoi-columns > .aoi-columns__inner > .aoi-column:first-child {
  flex: 0 0 44% !important;
  max-width: 44% !important;
}

/* 画像自体 */
.en-title-profile ~ .aoi-columns .aoi-image-round img {
  width: 100% !important;
  aspect-ratio: 532 / 637 !important;
  object-fit: cover !important;
  object-position: top center !important;
  border-radius: 12px !important;
}

/* テキストカラム: 右側 */
.en-title-profile ~ .aoi-columns > .aoi-columns__inner > .aoi-column:last-child {
  flex: 1 0 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 0 !important;
}

/* プロフィール本文と経歴ボックス (.aoi-white-box) 間: 48px */
.en-title-profile ~ .aoi-columns .aoi-column p + .aoi-white-box,
.en-title-profile ~ .aoi-columns p.aoi-white-box {
  margin-top: 48px !important;
}

/* 経歴ボックス下余白: 61px */
.en-title-profile ~ .aoi-columns p.aoi-white-box {
  margin-bottom: 61px !important;
  padding: 20px 24px !important;
  border-radius: 8px !important;
}


/* ===== B-NEW-16 (#233): about 装飾英字「Consept」→「Concept」誤字修正 ===== */
/*
 * 旧: --en-img URL が /wp-content/themes/clever/assets/images/uploads/Consept.png (誤字「Consept」) を参照
 * 新: テーマ同梱の正字「Concept」画像 themes/clever/assets/images/concept.png に変更
 * Figma node 1741:12919 (Oooh Baby Regular / 24px / #17BFBD) を 72x23 PNG で書き出して同梱。
 * 反映箇所: L1388 .en-title-concept { --en-img: ... } を本ファイル内で更新済。
 */


/* ===== B-NEW-08 (#260): TOP アカデミーの特徴02 SP レスポンシブ崩れ修正 ===== */
/*
 * Figma node: 1152:2626 (PC 02カード) / 2016:18535 (SP全体)
 * SP Figma値:
 *   - 各カード: bg-white, flex-col, gap-[16px], p-[16px], rounded-[12px], w-full
 *   - 画像: h-[200px], rounded-[12px], w-full, object-cover
 *   - 番号+タイトル行: flex-row, gap-[8px], items-start
 *   - 番号: font-size 48px, line-height 40px, color #17bfbd, w-60px
 *   - タイトル: font-size 20px, font-weight 700, line-height 1.8, color #1c4660, flex-1
 *   - 区切り線: border-top, w-full, rotate(-0.25deg)
 *   - 本文: font-size 16px, font-weight 500, line-height 1.76, tracking 1.6px
 * 問題: PC の aoi-feature-card--reverse (02カード) がSPでも reverse のまま残る
 *       → 既存 @media ブロック (L1873-) で対処済みだが、画像が先に来ない問題を補完
 */

@media (max-width: 768px) {
  /* 02カード (reverse) の SP 画像位置を最上部に */
  .aoi-feature-card--reverse {
    flex-direction: column !important;
  }

  /* reverse カード内の wp-block-image を最初の子に引き上げ */
  .aoi-feature-card--reverse .wp-block-image,
  .aoi-feature-card--reverse > .wp-block-columns > .wp-block-column:last-child .wp-block-image {
    order: -1 !important;
  }

  /* reverse カード内のテキスト列を画像の後に */
  .aoi-feature-card--reverse > .wp-block-columns > .wp-block-column:first-child {
    order: 1 !important;
  }

  /* 全カード: 番号+タイトルが横並びになるよう aoi-feature-num の幅保証 */
  .aoi-feature-card .aoi-feature-num,
  .aoi-feature-card--reverse .aoi-feature-num,
  .aoi-feature-card [class*="feature-num"],
  .aoi-feature-card--reverse [class*="feature-num"] {
    min-width: 60px !important;
    flex-shrink: 0 !important;
  }

  /* SP カード全体のパディング・ギャップ最終補完 */
  .aoi-feature-card,
  .aoi-feature-card--reverse {
    padding: 16px !important;
    gap: 16px !important;
    border-radius: 12px !important;
  }

  /* SP カード内画像: 高さ 200px 固定・角丸 */
  .aoi-feature-card img,
  .aoi-feature-card--reverse img,
  .aoi-feature-card .wp-block-image img,
  .aoi-feature-card--reverse .wp-block-image img {
    height: 200px !important;
    border-radius: 12px !important;
    object-fit: cover !important;
  }
}


/* ===== B-NEW-09 (#261): TOP FVカルーセル下文言 テキスト化 CSS 準備 ===== */
/*
 * TODO (Gutenberg 編集必要):
 *   現状は FV カルーセル下の文言が画像で実装されている可能性あり。
 *   テキスト化する場合は WP 管理画面でブロックを「画像」→「段落」に差し替える。
 *   差し替え後に以下のクラス .aoi-fv-message をそのブロックに付与すること。
 *
 * CSS 準備 (テキスト化後に有効化される):
 */
.aoi-fv-message {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.76;
  letter-spacing: 1.6px;
  color: #1c4660;
  text-align: center;
  padding: 12px 20px;
}

.aoi-fv-message strong,
.aoi-fv-message b {
  font-weight: 700;
}

@media (max-width: 768px) {
  .aoi-fv-message {
    font-size: 14px;
    padding: 10px 16px;
  }
}


/* ===== B-NEW-05 (#225): 講師詳細 ヘッダービジュアル内講師写真サイズ・位置 ===== */
/*
 * Figma node: 1567:11165 (講師詳細ページ PC)
 * Figma 指定値:
 *   - FV カバー: aspect-ratio 832/372.56, rounded-[12px], shadow
 *   - 画像: object-cover, position top center, h-[356.56px], full-width
 *   - オーバーレイテキスト: bottom-[32px] left-[32px]
 *   - 名前: font-size 24px, font-weight 700, color white, Noto Serif JP
 *   - コース: font-size 14px, color white
 * 対象CSS: themes/clever/css/shared.css
 */

/* FV カバーエリア (Figma: aspect 832/372) */
.instructor-article .instructor-thumbnail {
  position: relative !important;
  width: 100% !important;
  aspect-ratio: 832 / 373 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  margin: 0 auto 30px !important;
  box-shadow: 0 20px 25px -5px rgba(0, 0, 0, 0.02) !important;
}

/* FV 画像 (Figma: h-[356.56px], object-cover, top) */
.instructor-article .instructor-thumbnail img {
  width: 100% !important;
  height: 155.61% !important; /* Figma: absolute h-[155.61%] */
  object-fit: cover !important;
  object-position: top center !important;
  border-radius: 12px !important;
  position: absolute !important;
  top: -27.81% !important; /* Figma: top-[-27.81%] */
  left: 0 !important;
}

/* オーバーレイ情報の位置 (Figma: bottom-[32px] left-[32px]) */
.instructor-article .instructor-thumbnail .thumbnail-info {
  position: absolute !important;
  bottom: 32px !important;
  left: 32px !important;
  z-index: 2 !important;
}

/* 名前テキスト (Figma: 24px, 700, white, Noto Serif JP, leading-[32px]) */
.instructor-article .instructor-thumbnail .thumbnail-info .instructor-name {
  font-size: 24px !important;
  font-weight: 700 !important;
  color: white !important;
  font-family: 'Noto Serif JP', serif !important;
  line-height: 32px !important;
}

/* コースラベル (Figma: 14px, white, leading-[20px]) */
.instructor-article .instructor-thumbnail .thumbnail-info .instructor-course {
  font-size: 14px !important;
  color: white !important;
  font-family: 'Noto Sans JP', sans-serif !important;
  line-height: 20px !important;
  opacity: 0.9 !important;
}

@media (max-width: 599px) {
  .instructor-article .instructor-thumbnail {
    aspect-ratio: 390 / 260 !important;
  }

  .instructor-article .instructor-thumbnail img {
    top: 0 !important;
    height: 100% !important;
  }

  .instructor-article .instructor-thumbnail .thumbnail-info {
    bottom: 16px !important;
    left: 16px !important;
  }

  .instructor-article .instructor-thumbnail .thumbnail-info .instructor-name {
    font-size: 20px !important;
  }
}


/* ===== B-NEW-20 (#237): 講師一覧 カードレイアウト・タグ・ボタン Figma整合 ===== */
/*
 * Figma node: 1567:11119 (講師一覧ページ PC)
 * Figma 指定値:
 *   - カード外側: w-[380px], p-[24px], gap-[16px], rounded-[12px]
 *                 shadow-[0px_4px_20px_-2px_rgba(0,0,0,0.02)], bg-white
 *   - カード間 gap: 36px
 *   - 写真: size-[300px], rounded-[9999px] (完全な円形)
 *   - 名前: font-size 20px, font-weight 700, color #1c4660, tracking 2px, leading 1.8
 *   - 大学名: font-size 14px, color #17bfbd, tracking 1.4px, leading 1.4
 *   - 説明文: font-size 14px, color #797979, tracking 1.4px, leading 1.4
 *   - タグ: bg-[#e5e5e5], px-[12px], py-[4px], rounded-[9999px], h-[23px], font-size 12px
 *   - タグ群: flex-wrap, gap-[8px], justify-center, padding-top 16px padding-bottom 24px
 */

/* 講師一覧 コンテナ: 3列均等, gap 36px */
/* 3列グリッド: subgrid で各行を同じ高さに揃える。breakout で 1280px 確保 */
.instructor-list {
  display: grid !important;
  grid-template-columns: repeat(3, 380px) !important;
  column-gap: 36px !important;
  row-gap: 36px !important;
  justify-content: flex-start !important;
  width: min(1280px, calc(100vw - 32px)) !important;
  max-width: 1280px !important;
  position: relative !important;
  left: calc(50% - min(640px, calc(50vw - 16px))) !important;
}

/* 講師カード個別: Figma w-380px
 * grid-row: span 6 → 6セクション(thumb/名前/大学名/説明/タグ/ボタン)を親グリッドに委ねる
 * subgrid により同じ行のカード間でセクション高さが自動で揃う
 * .instructor-list を親に含めて詳細度を上げ 旧テーマ article スタイルに勝つ */
.instructor-list .instructor-item {
  width: 380px !important;
  max-width: 380px !important;
  padding: 24px !important;
  border-radius: 12px !important;
  background: transparent !important;
  display: grid !important;
  grid-template-rows: subgrid !important;
  grid-row: span 6 !important;
  row-gap: 16px !important;
  align-items: center !important;
  margin-bottom: 0 !important;
}

/* 大学名・説明文・タグは上揃え(行が高くなったとき自然に見える) */
.instructor-list .instructor-item .instructor-university,
.instructor-list .instructor-item .instructor-description,
.instructor-list .instructor-item .course-list {
  align-self: start !important;
  width: 100% !important;
}

/* 写真: 300×300 完全円形 */
.instructor-item .instructor-thumb img,
.instructor-item .instructor-thumb .aoi-photo-cover {
  width: 300px !important;
  height: 300px !important;
  border-radius: 9999px !important;
  object-fit: cover !important;
  flex-shrink: 0 !important;
}
.instructor-item .instructor-thumb .aoi-photo-cover {
  --cont-ratio: 1 !important;
}

/* 名前 */
.instructor-item .instructor-name {
  font-size: 20px !important;
  font-weight: 700 !important;
  color: #1c4660 !important;
  letter-spacing: 2px !important;
  line-height: 1.8 !important;
  text-align: center !important;
}

/* 大学名 */
.instructor-item .instructor-university {
  font-size: 14px !important;
  color: #17bfbd !important;
  letter-spacing: 1.4px !important;
  line-height: 1.4 !important;
  text-align: center !important;
}

/* 説明文 */
.instructor-item .instructor-description {
  font-size: 14px !important;
  color: #797979 !important;
  letter-spacing: 1.4px !important;
  line-height: 1.4 !important;
  text-align: center !important;
}

/* タグ群コンテナ */
.instructor-item .course-list {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 8px !important;
  justify-content: center !important;
  padding-top: 16px !important;
  padding-bottom: 24px !important;
  margin: 0 !important;
  font-size: 12px !important;
  width: 100% !important;
}

/* タグ個別 (Figma: bg-[#e5e5e5], px-12 py-4, rounded-full, h-23px) */
.instructor-item .course-list .course {
  background-color: #e5e5e5 !important;
  color: #1c4660 !important;
  font-size: 12px !important;
  padding: 4px 12px !important;
  border-radius: 9999px !important;
  height: 23px !important;
  display: inline-flex !important;
  align-items: center !important;
  letter-spacing: 1.2px !important;
  line-height: 1.4 !important;
  margin: 0 !important;
}

@media (max-width: 959px) {
  .instructor-list {
    grid-template-columns: repeat(2, 1fr) !important;
    width: 100% !important;
    max-width: 100% !important;
    position: static !important;
    left: auto !important;
  }
  .instructor-list .instructor-item {
    width: 100% !important;
    max-width: 100% !important;
  }
}

@media (max-width: 599px) {
  .instructor-list {
    grid-template-columns: 1fr !important;
    row-gap: 24px !important;
    column-gap: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    position: static !important;
    left: auto !important;
  }

  /* SP: subgrid をキャンセルして1カード独立レイアウトに戻す */
  .instructor-list .instructor-item {
    grid-row: span 1 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 16px !important;
    width: 100% !important;
    max-width: 100% !important;
  }
}



/* ===== B-NEW-21 (#238): サービス共通 サービスフローセクション横幅 Figma準拠 ===== */
/*
 * Figma node: 1840:16464 (個人レッスン PC)
 * Figmaスクリーンショット確認: フロー全体を囲む白ボックスの横幅制限
 * 想定セレクタ: .aoi-service-flow (WP 管理画面で付与必要)
 * Figma: max-width は 1512px コンテナ内で左右 156px余白 → 実幅 1200px 相当
 * 対象HTML: /tmp/lesson.html の .aoi-white-box 内フローセクション
 * TODO: WP 管理画面で該当ブロックに .aoi-service-flow クラスを付与すること
 */

.aoi-service-flow {
  max-width: 1200px !important;
  margin-left: auto !important;
  margin-right: auto !important;
  width: 100% !important;
}

/* サービスフロー内のSTEP行: 横並びを保証 */
.aoi-service-flow .aoi-columns__inner {
  align-items: stretch !important;
}

/* サービスフロー内の各STEP: 均等幅 */
.aoi-service-flow .aoi-column {
  display: flex !important;
  flex-direction: column !important;
}

@media (max-width: 599px) {
  .aoi-service-flow {
    max-width: 100% !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
  }
}


/* ===== B-NEW-22 (#239): 料金3列統一 CSS 準備 ===== */
/*
 * TODO (Gutenberg 編集必要):
 *   現状は料金が画像 (Frame-628127.png) で表示されている。
 *   3列グリッドにするには WP 管理画面でブロックを画像→カラムブロックに変更する必要あり。
 *   変更後に .aoi-pricing-grid クラスを付与すること。
 *
 * CSS 準備 (Gutenberg 側で3カラム化 & クラス付与後に有効):
 */
.aoi-pricing-grid {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr) !important;
  gap: 24px !important;
  width: 100% !important;
  max-width: 900px !important;
  margin: 0 auto !important;
}

.aoi-pricing-grid__item {
  background: white;
  border-radius: 12px;
  padding: 24px;
  text-align: center;
  box-shadow: 0 4px 20px -2px rgba(0, 0, 0, 0.05);
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
}

.aoi-pricing-grid__item .price {
  font-size: 28px;
  font-weight: 700;
  color: #1c4660;
  letter-spacing: 1px;
}

.aoi-pricing-grid__item .price-label {
  font-size: 14px;
  color: #797979;
}

@media (max-width: 599px) {
  .aoi-pricing-grid {
    grid-template-columns: 1fr !important;
    gap: 16px !important;
  }
}


/* ===== B-NEW-12 (#231): お問い合わせ ご注意事項 アイコン付きボックス化 ===== */
/*
 * Figma node: 1633:14513 (お問い合わせページ)
 * Figmaスクリーンショット確認: 「[ 重要 ] お申し込み前のご確認」が枠付きボックスで表示
 * 対象HTML: .wp-block-group.is-style-big_kakko_box
 * Figma値 (スクリーンショットより):
 *   - 枠あり (border), 内側余白 padding, 見出しにアイコン
 *   - 背景: 薄いグレー or 白
 *
 * TODO (Gutenberg 編集必要):
 *   アイコン付きにするには見出しブロックを編集するか、
 *   または PHP テンプレートで wrap する必要あり。
 *   現状は .is-style-big_kakko_box の既存スタイルを補強する形で実装。
 */

/* 注意事項ボックス: Figmaスクリーンショットの枠付きボックス準拠 */
.wp-block-group.is-style-big_kakko_box {
  border: 1.5px solid #d1d5db !important;
  border-radius: 12px !important;
  padding: 32px 40px !important;
  background-color: #f8fafc !important;
  margin-top: 24px !important;
  margin-bottom: 24px !important;
  position: relative !important;
}

/* 注意事項ボックス見出し: アイコン風装飾 (CSS のみ) */
.wp-block-group.is-style-big_kakko_box h4.wp-block-heading {
  font-size: 18px !important;
  font-weight: 700 !important;
  color: #1c4660 !important;
  letter-spacing: 1.8px !important;
  line-height: 1.4 !important;
  margin-bottom: 12px !important;
  padding-left: 28px !important; /* アイコンスペース */
  position: relative !important;
}

/* 注意事項ボックス見出し: 疑似アイコン (! マーク丸) */
.wp-block-group.is-style-big_kakko_box h4.wp-block-heading::before {
  content: "!" !important;
  position: absolute !important;
  left: 0 !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 20px !important;
  height: 20px !important;
  background-color: #17bfbd !important;
  color: white !important;
  border-radius: 9999px !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
}

/* 注意事項ボックス本文 */
.wp-block-group.is-style-big_kakko_box > p {
  font-size: 14px !important;
  color: #4b5563 !important;
  line-height: 1.76 !important;
  letter-spacing: 0.5px !important;
  margin-bottom: 16px !important;
}

/* チェックボックス項目の見やすさ */
.wp-block-group.is-style-big_kakko_box .smf-checkbox-control__label {
  font-size: 14px !important;
  color: #1c4660 !important;
  line-height: 1.6 !important;
}

@media (max-width: 599px) {
  .wp-block-group.is-style-big_kakko_box {
    padding: 20px 16px !important;
    border-radius: 8px !important;
  }

  .wp-block-group.is-style-big_kakko_box h4.wp-block-heading {
    font-size: 16px !important;
  }
}



/* ============================================================
   B-NEW-01 / B-NEW-19: カルーセル 手動スクロール化
   - 旧: .fullwidth-carousel__inner に @keyframes horizontal-animation
         で 100s linear infinite の自動アニメーションが全カルーセルに効いていた
   - 新: instructor-carousel のみ自動アニメーション停止、ユーザー手動
         (タッチ/マウスドラッグ) で横スクロール可能。voice-carousel など
         他の自動カルーセルは animation を維持
   ============================================================ */

/* instructor-carousel と voice-carousel: 自動アニメーション停止、手動ドラッグスクロール化 */
.instructor-carousel .fullwidth-carousel__inner,
.voice-carousel .fullwidth-carousel__inner {
  animation: none;
}

/* fullwidth-carousel__inner: 横一列ノーラップ (overflow は親 .fullwidth-carousel 側で制御) */
.fullwidth-carousel__inner {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  width: max-content;
}

/* instructor-carousel の .slide: カラム配置でカード内要素を縦積み、
   タグから下 (タグ + ボタン) を一塊で下端揃え */
.instructor-carousel .slide {
  display: flex;
  flex-direction: column;
  align-items: center;
}
/* タグ (.slide-course-list) に margin-top: auto を当て、タグ以降を flex 末尾へ push
   → 各カードのテキスト量に関わらずタグ位置が揃う */
.instructor-carousel .slide .slide-course-list {
  margin-top: auto;
  margin-bottom: 15px; /* 既存値を維持 (タグ-ボタン間の固定間隔) */
}
/* ボタンは margin-top: auto を解除し、タグからの固定間隔で配置 */
.instructor-carousel .slide .aoi_outline_and_arrow_button {
  margin-top: 0;
}

/* SPでカード縦積みを防ぐ（既存メディアクエリの上書き） */
@media (max-width: 768px) {
  .fullwidth-carousel__inner {
    flex-direction: row !important;
    flex-wrap: nowrap !important;
  }
  .fullwidth-carousel .slide-item,
  .fullwidth-carousel > * {
    flex-shrink: 0;
  }
}


/* ============================================================
   B-NEW-13 後続: aoi-banner__carousel ドラッグスクロール対応
   - 旧: .aoi-banner__carousel { overflow: hidden } で carousel-drag.js が無効
   - 新: overflow-x: auto + flex 0 0 (固定幅) でドラッグ/タッチスクロール対応
   ============================================================ */
.aoi-banner__carousel {
  overflow-x: auto !important;
  overflow-y: hidden !important;
  -webkit-overflow-scrolling: touch !important;
  scrollbar-width: none !important;
  cursor: grab !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 16px !important;
  padding-left: 4px !important;
  padding-right: 4px !important;
  width: 100% !important;
  max-width: 1816px !important;
  height: 240px !important;
}
.aoi-banner__carousel::-webkit-scrollbar {
  display: none !important;
}
.aoi-banner__carousel-item {
  flex: 0 0 440px !important;
  width: 440px !important;
  height: 100% !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  position: relative !important;
}
.aoi-banner__carousel-item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

/* SP は既存メディアクエリ (L2467-2484) の 247px 設定が優先 */
@media (max-width: 768px) {
  .aoi-banner__carousel {
    overflow-x: auto !important;
    overflow-y: hidden !important;
  }
  .aoi-banner__carousel-item {
    flex: 0 0 247px !important;
    width: 247px !important;
  }
}


/* ============================================================
   B-NEW-13 修正2: バナータイトルの折返し防止 + 中央寄せ整形
   - 旧: .aoi-banner__title が PC 1280px 等狭幅で 2 行折返し（Figma node 1152:2592 は 1 行指示）
   - 旧: .aoi-banner heading 部が左右に密着し、section 横幅いっぱいで破綻
   - 新: white-space: nowrap で 1 行固定、狭幅では font-size を可変縮小（clamp）して収める
   ============================================================ */

/* PC: タイトル 1 行固定 + 可変フォントサイズで折返し防止 */
@media (min-width: 769px) {
  .aoi-banner__heading {
    width: 100% !important;
    max-width: 1512px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 24px !important;
    padding-right: 24px !important;
    box-sizing: border-box !important;
  }

  .aoi-banner__title {
    white-space: nowrap !important;
    /* 1280px 〜 1512px で 24px 〜 30px に滑らかに収まる */
    font-size: clamp(20px, 2.1vw, 30px) !important;
    letter-spacing: clamp(2px, 0.3vw, 4.8px) !important;
    flex: 0 1 auto !important;
  }
}

/* SP: 既存の 24px / letter-spacing 2.4px はそのまま、折返しは許容（4 行までならOK） */
@media (max-width: 768px) {
  .aoi-banner__title {
    white-space: normal !important;
  }
}


/* ============================================================
   B-NEW-13 修正3: バナータイトルを % / vw ベースで流動化
   - PR #278 (clamp 30px 上限) では 1512px viewport で見切れ発生。
     2.1vw が clamp 上限 30px に張り付き、letter-spacing 4.54px で
     合計 1136-1200px となり親 1464px に納まる試算だが実機 overflow。
   - 解決: vw ベースで線形縮小、上限を 28px に下げ、heading 横幅も
     % で margin auto + padding を vw ベースに変更し常に余裕を持たせる。
   ============================================================ */

@media (min-width: 769px) {
  .aoi-banner {
    /* バナー全体: 横幅 100% (背景), 中身は別途 % で絞る */
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .aoi-banner__heading {
    /* 中央寄せ＋%で左右余白. 1512px で 5% padding, 1280px で 5% padding */
    width: 90% !important;
    max-width: 1512px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 2vw !important;
    padding-right: 2vw !important;
    box-sizing: border-box !important;
    gap: 3vw !important;
  }

  .aoi-banner__title {
    /* 線形 vw 指定, 1280px=24.32px / 1512px=28.73px / 1816px=34.5px相当, 上限28px */
    font-size: clamp(18px, 1.9vw, 28px) !important;
    letter-spacing: clamp(1px, 0.25vw, 4px) !important;
    white-space: nowrap !important;
    flex: 0 1 auto !important;
    overflow: visible !important;
  }

  .aoi-banner__deco-left,
  .aoi-banner__deco-right {
    /* 装飾SVGも viewport 比例 */
    width: clamp(28px, 3vw, 48px) !important;
    height: clamp(43px, 4.5vw, 74px) !important;
    flex-shrink: 0 !important;
  }

  .aoi-banner__carousel {
    /* カルーセル横幅も % で */
    width: 95% !important;
    max-width: 1816px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }
}

/* SP (≤768px) は既存挙動 (white-space: normal で改行許容) */


/* ============================================================
   B-NEW-13 修正4: section.aoi-banner full-width breakout
   - DevTools実測: section.aoi-banner = 968px (親 .post_content / .l-mainContent__inner の
     コンテンツカラム幅に追従) で Figma 仕様の全幅 (≈ 1512-1816px) が出ていない
   - 解決: 親コンテンツカラムを viewport 幅まで突き抜ける標準テクニック (full-width breakout)
   - 100vw に固定し、左右 -50vw マージンと left:50%/right:50% で中央寄せ
   ============================================================ */
.aoi-banner {
  width: 100vw !important;
  max-width: 100vw !important;
  position: relative !important;
  left: 50% !important;
  right: 50% !important;
  margin-left: -50vw !important;
  margin-right: -50vw !important;
}

/* 親が overflow: hidden を継承していると突き抜けが効かないため明示解除 */
.l-mainContent__inner,
.post_content {
  overflow: visible !important;
}


/* ============================================================
   B-NEW Voice card 桜アイコン (Figma node 1727:16917)
   - 合格者の声カルーセルカードの右上に装飾の桜SVGを配置
   - position: absolute, left:426 / top:-27, 200.336x200.336, inner rotate 15.87deg, img 162.165x162.165
   - 淡色 #F1F8FA で控えめな装飾（Figma 仕様準拠）
   ============================================================ */
.voice-carousel .slide-right-content {
  position: relative !important;
}

.slide-sakura {
  position: absolute !important;
  right: -30px !important; /* card 動的幅対応で left:426 から右基準に変更 */
  top: -27px !important;
  width: 200.336px !important;
  height: 200.336px !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  pointer-events: none !important;
  z-index: 0 !important; /* テキストより背面に配置 (Figma: 装飾レイヤー) */
}

/* 桜より前面にテキスト類を配置 */
.voice-carousel .slide-graduate-year-and-text,
.voice-carousel .slide-university,
.voice-carousel .slide-faculty,
.voice-carousel .slide-name,
.voice-carousel .slide-message,
.voice-carousel .slide-right-content .aoi_outline_and_arrow_button {
  position: relative;
  z-index: 1;
}

.slide-sakura-inner {
  display: block !important;
  width: 162.165px !important;
  height: 162.165px !important;
  overflow: hidden !important;
  transform: rotate(15.87deg) !important;
}

.slide-sakura-inner img {
  display: block !important;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
}

/* SP は桜縮小、はみ出し防止 */
@media (max-width: 768px) {
  .slide-sakura {
    left: auto !important;
    right: -20px !important;
    top: -20px !important;
    width: 120px !important;
    height: 120px !important;
  }
  .slide-sakura-inner {
    width: 100px !important;
    height: 100px !important;
  }
}


/* ============================================================
   フッター 会社情報テーブル grid layout 化
   - 旧: <dl class="footer-list"> の dt/dd が標準の縦積み (左右の余白が広く空く)
   - 新: grid-template-columns: 160px 1fr で揃える
   ============================================================ */
.footer-list {
  display: grid !important;
  grid-template-columns: 120px 1fr !important;
  gap: 8px 16px !important;
  max-width: 100% !important;
}

.footer-list dt {
  font-weight: 400 !important;
  color: #1c4660 !important;
  margin: 0 !important;
}

.footer-list dd {
  margin: 0 !important;
  color: #1c4660 !important;
  word-break: break-word !important;
}

.footer-list dd addr,
.footer-list dd address {
  font-style: normal !important;
  display: block !important;
  line-height: 1.6 !important;
}

@media (max-width: 768px) {
  .footer-list {
    grid-template-columns: 100px 1fr !important;
    gap: 6px 12px !important;
  }
}


/* ============================================================
   LESSON tab コンテンツエリア 1070x440 / テキスト440 / 右余白50
   - Figma 仕様 (アノテーション): 1070x440 container / text 440 / right pad 50
   - 旧: テキストブロックが幅 404, 右余白なしで画像エリアに食い込み
   ============================================================ */













/* ============================================================
   フッター + LESSON tab v2 強化 (PR #283 後の DevTools 実測フォロー)
   - 旧: .footer-list の dt computed width が 36px (grid 反映せず inline shrunk)
   - 旧: .aoi-columns max-width 1070 が 旧テーマ由来の幅に未制約で col1=900 / 合計 1340 > 1070 オーバーフロー
   ============================================================ */

/* footer-list grid を 旧テーマより強い特異性で再宣言 */
dl.footer-list,
.l-footer dl.footer-list,
.w-footer dl.footer-list {
  display: grid !important;
  grid-template-columns: 140px 1fr !important;
  gap: 8px 16px !important;
  width: 100% !important;
  max-width: 100% !important;
}

dl.footer-list > dt,
.l-footer dl.footer-list > dt,
.w-footer dl.footer-list > dt {
  display: block !important;
  width: 100% !important;
  font-weight: 400 !important;
  color: #1c4660 !important;
  margin: 0 !important;
  white-space: nowrap !important;
  justify-self: start !important;
}

dl.footer-list > dd,
.l-footer dl.footer-list > dd,
.w-footer dl.footer-list > dd {
  display: block !important;
  margin: 0 !important;
  color: #1c4660 !important;
  word-break: break-word !important;
}

@media (max-width: 768px) {
  dl.footer-list,
  .l-footer dl.footer-list,
  .w-footer dl.footer-list {
    grid-template-columns: 110px 1fr !important;
    gap: 6px 12px !important;
  }
}

/* LESSON tab .aoi-columns を実体幅 1070 に固定 + columns の合計幅を 1070 に収める */




/* 第1列: 画像。flex 1 1 0 / min-width 0 で残り幅 = 1070 - 440 = 630 を確保 */






/* 第2列: テキスト 440 + 右余白 50 (合計 490 だが視覚上は内側 padding 扱い) */




/* ============================================================
   Set 1: FV + BANNER スライドショー (Gutenberg 側で .aoi-fv__photo / .aoi-banner__carousel に複数 .aoi-slide ラッパーを並べた場合に有効化)
   ============================================================ */
.aoi-fv__photo { position: relative; }
.aoi-fv__photo .aoi-slide {
  position: absolute; inset: 0; opacity: 0; pointer-events: none;
}
.aoi-fv__photo .aoi-slide:first-child { opacity: 1; pointer-events: auto; }
.aoi-fv__photo .aoi-slide img { width: 100%; height: 100%; object-fit: cover; display: block; }

.aoi-banner__carousel { position: relative; }
.aoi-banner__carousel .aoi-slide {
  position: absolute; inset: 0; opacity: 0; pointer-events: none;
  display: flex; gap: 16px;
}
.aoi-banner__carousel .aoi-slide:first-child { opacity: 1; pointer-events: auto; }
.aoi-banner__carousel .aoi-slide img {
  flex: 1; object-fit: cover; border-radius: 12px; height: 240px;
}

/* ============================================================
   Set 2: Intro 装飾の視認性向上 (Gutenberg 側で .aoi-intro__deco クラスを当てた場合に有効化)
   ============================================================ */
.aoi-intro {
  position: relative;
  overflow: hidden;
}
.aoi-intro__deco {
  position: absolute;
  pointer-events: none;
  z-index: 1;
  background-color: #e5f5f9;
}

/* ============================================================
   Set 3: TEACHERS / VOICE セクション scaffold (Gutenberg 側で .p-teachers / .p-voice を付与した場合に有効化)
   ============================================================ */
.p-teachers,
.p-voice {
  position: relative;
  overflow: hidden;
  width: 100%;
}
.p-teachers {
  background-image: linear-gradient(180.52deg, #ffffff 30.2%, #f1f8fa 99.5%);
}
.p-teachers__deco-vector {
  position: absolute; left: -257px; top: 598px; width: 896px; height: 896px;
  pointer-events: none; z-index: 0;
}
.p-voice__deco-vector {
  position: absolute; left: -206px; top: 1703px; width: 630px; height: 630px;
  pointer-events: none; z-index: 0;
}
.p-voice__deco-subtract {
  position: absolute; left: 745.25px; top: 638.7px;
  width: 1031.245px; height: 1030.347px;
  pointer-events: none; z-index: 0;
}
.p-teachers__cards,
.p-voice__inner { position: relative; z-index: 1; }

/* ============================================================
   Set 4: セクションタイトル en-title-* の Figma 実値補正
   既存: L1346-1376 で各 en-title-* に CSS変数 (--en-img / --en-rotate / --en-y / --en-x / --en-width) 設定
   調整: Figma node 取得値で rotate と位置を精緻化
   ============================================================ */
.en-title-feature {
  --en-rotate: -9.26deg !important;
  --en-y: 30% !important;
}
.en-title-lesson {
  --en-rotate: -2deg !important;
  --en-y: 50% !important;
}
.en-title-teachers {
  --en-rotate: -8.55deg !important;
  --en-y: 30% !important;
}
.en-title-voice {
  --en-rotate: -9.47deg !important;
  --en-y: 50% !important;
}

/* 全セクション共通: タイトル親に position:relative / overflow visible で装飾はみ出し許容 */
.en-title {
  overflow: visible !important;
}

/* 注: 既存 HTML は <h2 class="en-title en-title-XXX"> 単一タグ + ::before 装飾。
       Gutenberg 側で <span class="p-section-title__deco">FEATURE</span> + <p class="p-section-title__ja">アカデミーの特徴</p> 構造に変える場合は、別途 .p-section-title__deco / __ja の CSS を用意する必要があるが本 PR の範囲外。 */


/* ============================================================
   B-NEW-13 修正5: aoi-banner__carousel スライドショー有効化
   - 旧: PR #277 で overflow-x:auto / cursor:grab のドラッグ式スクロール
   - 新: shortcode が 4 セットの .aoi-slide を出力するようになったため
         parent は position:relative + 固定高さで重ね合わせ
   ============================================================ */
.aoi-banner__carousel {
  position: relative !important;
  height: 240px !important;
  display: block !important;
  overflow: hidden !important;
  cursor: default !important;
}
.aoi-banner__carousel .aoi-slide {
  position: absolute !important;
  inset: 0 !important;
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 16px !important;
  width: 100% !important;
  height: 240px !important;
}
.aoi-banner__carousel .aoi-slide .aoi-banner__carousel-item {
  flex: 1 1 0 !important;
  width: auto !important;
  height: 100% !important;
  border-radius: 12px !important;
  overflow: hidden !important;
  position: relative !important;
}
.aoi-banner__carousel .aoi-slide .aoi-banner__carousel-item img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
}

@media (max-width: 768px) {
  .aoi-banner__carousel {
    height: 170px !important;
  }
  .aoi-banner__carousel .aoi-slide {
    height: 170px !important;
    gap: 8px !important;
  }
}


/* ============================================================
   B-NEW-13 修正6: aoi-banner__carousel をシングル画像スライドに変更
   - 旧: PR #286 で 4 セット x 4 画像ローテーション (画面が常に 4 画像)
   - 新: 各 .aoi-slide に 1 画像、フル幅で表示しフェードでスライド切替
   ============================================================ */
.aoi-banner__carousel .aoi-slide {
  display: block !important;
  gap: 0 !important;
}

/* シングル画像が .aoi-slide 直下に来るので、img を直接フィット */
.aoi-banner__carousel .aoi-slide > img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  border-radius: 12px !important;
  display: block !important;
}

/* 旧 .aoi-banner__carousel-item は使わない構造に変わったが、念のため hidden */
.aoi-banner__carousel .aoi-slide .aoi-banner__carousel-item {
  display: none !important;
}


/* ============================================================
   B-NEW-13 修正7: aoi-banner を横スライドに変更（画像本来比率 3:2 維持）
   - 旧: PR #287 シングル画像フェード（object-fit: cover で aspect 不整合）
   - 新: track に 4 + 4 (ループ用) の .aoi-slide を並べ、各画像 360x240 (3:2 維持) で
         translateX により 1 枚ずつ左へスライド
   ============================================================ */

/* 旧 PR #285/#286/#287 の .aoi-banner__carousel スタイルを上書き */
.aoi-banner__carousel {
  position: relative !important;
  height: 240px !important;
  overflow: hidden !important;
  display: block !important;
  cursor: default !important;
  width: 100% !important;
  max-width: 1816px !important;
  margin-left: auto !important;
  margin-right: auto !important;
}

.aoi-banner__track {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  gap: 16px !important;
  height: 240px !important;
  /* transform は JS で設定 */
}

.aoi-banner__carousel .aoi-slide {
  position: static !important;
  flex: 0 0 360px !important;       /* 240px * 1.5 (3:2 比率) */
  width: 360px !important;
  height: 240px !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  border-radius: 12px !important;
  overflow: hidden !important;
}

.aoi-banner__carousel .aoi-slide > img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  display: block !important;
  border-radius: 12px !important;
}

.aoi-banner__carousel .aoi-slide .aoi-banner__carousel-item {
  display: none !important;
}

@media (max-width: 768px) {
  .aoi-banner__carousel {
    height: 170px !important;
  }
  .aoi-banner__track {
    height: 170px !important;
    gap: 8px !important;
  }
  .aoi-banner__carousel .aoi-slide {
    flex: 0 0 255px !important;     /* 170 * 1.5 */
    width: 255px !important;
    height: 170px !important;
  }
}


/* ============================================================
   LESSON tab v14: Figma PC 仕様 + SP 仕様 + タブレット崩れ対策 + 旧テーマ由来 border-color 競合の確実な上書き
   v13 → v14 修正:
     - border-color / 区切り線 background-color の競合解消に !important を限定的に追加
       (旧テーマが紺色 border を当てている可能性が高く、specificity 0,3,1 でも勝てなかった事実への対応。
        v9 で「!important 不使用」を宣言していたが、旧テーマ由来 specificity 不明のため例外的に使用)
     - パネル max-width: min(1070px, calc(100% - 440px)) → 1070px (固定) に戻す
       (calc(100% - 440px) はユーザー直感に沿わなかったため。レスポンシブ余白は親要素 / タブレット用 media query で管理)
     - aoi-columns__inner: max-width 100% を維持 (親追従)
   v12 → v13 修正 (一部 v14 で巻き戻し):
     - 区切り線 color #1c4660 → #e5e5e5 (Figma 正解値、v13 の判断は維持)
     - タブレット media query (769-1280): gap 89 → 10、テキスト列 flex 等 (v13 の判断は維持)
   v11 → v12 修正 (Figma 寸法アノテーション実測値で再調整、v11 の一部誤判定を巻き戻し):
     - タブ間 gap: 10px → 89px (Figma 寸法アノテーション)
     - タブボタン padding: 0 → 12px 31.5px (Figma 寸法アノテーション)
     - 区切り線 right: -5px → -44.5px (gap 89 の中央配置)
     - .c-tabBody padding: 50px 0 → 50px 0 40px 0 (上 50: タブ帯-画像、下 40: CTA 下)
     - .aoi-columns に margin-bottom: 50px (画像-CTA 間 50)
     - テキスト列 flex 1 1 0 (v11) → 0 0 404px に戻す (Figma 寸法アノテーション)
     - テキスト列 内部 flex column / gap 32 / justify center (v11) → block レイアウトに戻す
     - h3 margin: 0 (v11 親 gap 32) → margin 0 0 36px 0 (Figma 寸法アノテーション 見出し下 36)
   v10 → v11 修正 (パディング・マージン乖離の解消):
     - 一部 v12 で巻き戻し
   v9 → v10 修正 (Figma 実値乖離の解消 + 旧テーマ既定 specificity 対策):
     - パネル外枠 border-radius: 12px → 0 0 12px 12px (Figma 1152:2651: 下のみ 12)
     - タブ帯 gap: 0 → 10px (Figma 1152:2653)
     - タブボタン rounded: 10px → 12px (Figma 1152:2654)
     - タブボタン height: 未指定 → 76px (Figma 1152:2654)
     - タブボタン font: 18px / Medium 500 / tracking 1.8 / leading 1.4 を明示 (Figma)
     - 区切り線 height: 32px → 65px (Figma 1152:2655)
     - 区切り線 color: rgba(28,70,96,0.3) → #1c4660 (Figma SVG Line94)
     - 旧テーマ既定 .aoi-tab .c-tabList / [aria-selected="true"] に勝つよう
       全セレクタを body スコープ + .aoi-top-tab.aoi-tab 重ねで specificity 強化
   SP は v9 の Figma node I2016:18535;2027:17882 仕様 (横スクロール / コンテンツ枠 border) を維持
   ============================================================ */

/* ===== PC (>=769px) Figma 1152:2651/2653/2654/2659 ===== */

/* パネル外枠 (Figma 1152:2651): border 1px #e5e5e5 / rounded 0 0 12 12 (下のみ)
   max-width 1070px 固定 (レスポンシブ余白は親要素 / タブレット用 media query で管理) */
body .aoi-top-tab.aoi-tab {
  /* タブエリア全体に外枠線はつけない (タブ帯 #e5e5e5 がはみ出すように見える原因のため border 撤去) */
  border: none !important;
  border-radius: 0 0 12px 12px;
  background-color: transparent;
  /* PC ビューで左右余白 220px 相当を確保 (Figma 設計幅 1510 = 1070 + 220×2)。viewport 基準 (100vw) で計算 — 親要素 .post_content 等の 100% に引きずられて狭くなる現象を回避 */
  width: min(1070px, calc(100vw - 440px));
  max-width: 1070px;
  margin: 0 auto;
  padding: 0;
  overflow: hidden;
  box-sizing: border-box;
}

/* タブ帯 (Figma 1152:2653 + 寸法アノテーション 画像2): bg #e5e5e5 / padding 12 (全方向) / gap 89 / rounded 12 12 0 0
   padding-left を含めて全方向に !important: 旧テーマ / UA の ul padding-left override への対策 */
body .aoi-top-tab.aoi-tab .c-tabList {
  background-color: #e5e5e5 !important;
  padding: 12px 10px !important;
  padding-inline-start: 10px !important;
  padding-inline-end: 10px !important;
  gap: 89px;
  border: none !important;
  display: flex;
  margin: 0 !important;
  border-radius: 12px 12px 0 0;
  list-style: none;
}

body .aoi-top-tab.aoi-tab .c-tabList__item {
  flex: 1 1 0;
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

/* タブ間区切り線 (Figma 1152:2655): 1×65 / color #e5e5e5 / gap 89 の中央
   !important: 旧テーマ由来 .aoi-tab 系の border-color / background-color に確実に勝つため */
body .aoi-top-tab.aoi-tab .c-tabList__item:not(:last-child)::after {
  content: "";
  position: absolute;
  right: -44.5px;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 65px;
  background-color: #1c4660 !important;
  border: none !important;
}

/* タブボタン共通 (Figma 1152:2654 + 寸法アノテーション 画像2): padding 12 31.5 / rounded 12 / font 18 Medium / tracking 1.8 / leading 1.4 */
body .aoi-top-tab.aoi-tab .c-tabList__button {
  width: 100%;
  height: 76px;
  padding: 12px 31.5px;
  background-color: transparent;
  background-image: none;
  border-radius: 12px;
  color: #1c4660;
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-size: 18px;
  font-weight: 500;
  line-height: 1.4;
  letter-spacing: 1.8px;
  border: none !important;
  cursor: pointer;
  text-align: center;
}

/* 選択中タブ (Figma 1152:2654): bg #fff / color #1c4660 — 既定スタイルに勝つ specificity */
body .aoi-top-tab.aoi-tab .c-tabList__button[aria-selected="true"] {
  background-color: #ffffff;
  background-image: none;
  color: #1c4660;
  font-weight: 500;
  box-shadow: 0 2px 4px -1px rgba(0, 0, 0, 0.04);
}

/* c-tabBody: 上 50 (タブ帯-画像/text) / 下は CTA の margin-bottom 40 で確保するため 0 */
body .aoi-top-tab.aoi-tab .c-tabBody {
  padding: 50px 0 0 0;
  margin: 0;
  background-color: #ffffff;
  border: none !important;
}

/* CTA ボタン下に 50px 確保: padding-bottom で margin-bottom の collapse 漏れを防ぐ (#340) */
body .aoi-top-tab.aoi-tab .c-tabBody__item {
  padding: 0 0 50px;
}

/* LESSON タブ内 CTA レイアウト (#261/#319/#340 統合): wp-block-spacer 無効化 + CTA 上 40px (collapse) / 下 50px (.c-tabBody__item の padding-bottom) */
body .aoi-top-tab.aoi-tab .c-tabBody__item .wp-block-spacer {
  height: 0;
}
body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi_outline_and_arrow_button {
  margin: 40px auto 0 !important;
}

/* 画像/text → CTA 間 40px (CTA の margin-top 40 と margin collapse して 40 に収束) */
body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns {
  margin-bottom: 40px !important;
}

/* コンテンツ列 (Figma 1152:2659): items-center / gap 40 / padding 0 50 0 40 / 高さは Figma 仕様 440 を最小確保しつつ長文時は伸縮 (固定 height で overflow → CTA と重なる事故防止) */
body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 40px;
  padding: 0 50px 0 40px;
  width: 100%;
  max-width: 100%;
  margin: 0;
  min-height: 440px;
  box-sizing: border-box;
}

body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > figure.wp-block-image,
body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > .aoi-column:first-child {
  flex: 1 1 0;
  min-width: 0;
  margin: 0;
  align-self: stretch;
  height: 100%;
}

body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > figure.wp-block-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  border-radius: 12px;
  display: block;
}

/* テキスト列 (Figma 寸法アノテーション 画像2「テキスト幅 404」): 404 固定 / 上揃え 上端から 10px / 左揃え / block レイアウト
   ユーザー指示: 本文「頼れる先輩〜」を背景画像に対して 10px 開けて上部配置 → align-self: flex-start + padding-top: 10px */
body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > .aoi-column:last-child {
  flex: 0 0 404px;
  width: 404px;
  max-width: 404px;
  align-self: flex-start;
  padding-top: 10px;
  text-align: left;
  display: block;
  height: auto;
  gap: initial;
}

/* 見出し (Figma 1152:2662 + 寸法アノテーション 画像2「見出し下 36」): text 20 Bold / leading 1.8 / tracking 2 / margin-bottom 36 */
body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > .aoi-column:last-child h3 {
  margin: 0 0 36px 0;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.8;
  letter-spacing: 2px;
  color: #1c4660;
}

/* 本文 (Figma 1152:2663): text 16 Medium / leading 1.76 / tracking 1.6 / margin 0 */
body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > .aoi-column:last-child p {
  margin: 0;
  font-size: 16px;
  font-weight: 500;
  line-height: 1.76;
  letter-spacing: 1.6px;
  color: #1c4660;
}

/* ===== 中画面 (901px 〜 1280px): PC 仕様の固定値を縮退。769-900 は SP/タブレットブロック (max-width:900) に委譲して被りを解消 (#340) ===== */
@media (min-width: 901px) and (max-width: 1280px) {
  /* タブ帯の gap 89 が破綻するため 10 に縮小 */
  body .aoi-top-tab.aoi-tab .c-tabList {
    gap: 10px;
  }
  /* 区切り線位置を gap 10 の中央 (-5px) に追従 */
  body .aoi-top-tab.aoi-tab .c-tabList__item:not(:last-child)::after {
    right: -5px;
  }
  /* タブボタンの padding を縮小して 3 タブが収まるように */
  body .aoi-top-tab.aoi-tab .c-tabList__button {
    padding: 12px 8px;
    font-size: 16px;
    letter-spacing: 1.6px;
  }
  /* コンテンツ列の左右 padding を圧縮 */
  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner {
    padding: 0 24px;
    gap: 24px;
    height: auto;
    min-height: 360px;
  }
  /* テキスト列 404 固定を解除し flex で適応 */
  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > .aoi-column:last-child {
    flex: 1 1 0;
    width: auto;
    max-width: none;
  }
  /* 画像列の height 440 を解除し縦横比保持 */
  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > figure.wp-block-image,
  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > .aoi-column:first-child {
    height: auto;
    aspect-ratio: 4 / 3;
  }
}

/* ===== タブレット 960px 以下: 外枠を全幅化 (PC ルールの min(1070, 100vw-440) が viewport 縮小で過剰圧縮するのを回避) ===== */
@media (max-width: 959px) {
  body .aoi-top-tab.aoi-tab {
    width: 100% !important;
    max-width: 100% !important;
  }
}

/* ===== SP/タブレット (<=900px) Figma node I2016:18535;2027:17882 厳密準拠 + ユーザー指示で 768→900 に拡張 =====
   - 「テキスト 10px 上部配置」「画像角丸四角」を 900 以下で適用 */
@media (max-width: 900px) {
  /* パネル外枠: SP では border をコンテンツ枠側に持たせるため、外側は装飾解除。PC で指定した width: min(1070, 100vw-440) を SP では強制 100% に戻す */
  body .aoi-top-tab.aoi-tab {
    border: none;
    border-radius: 0;
    background: transparent;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0;
    padding: 0;
    overflow: visible;
  }

  /* タブ帯: bg #e5e5e5 / padding 10 / gap 8 / rounded 12 / 横スクロール (タブ全縦 10+44+10=64) */
  body .aoi-top-tab.aoi-tab .c-tabList {
    background-color: #e5e5e5;
    padding: 10px;
    gap: 8px;
    border-radius: 12px;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    flex-wrap: nowrap;
    margin-bottom: 50px;
  }
  body .aoi-top-tab.aoi-tab .c-tabList::-webkit-scrollbar {
    display: none;
  }

  /* タブ間区切り線: SP では非表示 */
  body .aoi-top-tab.aoi-tab .c-tabList__item:not(:last-child)::after {
    display: none;
  }

  body .aoi-top-tab.aoi-tab .c-tabList__item {
    flex: 0 0 auto;
  }

  /* 未選択タブ: bg transparent (灰色帯と同色) / height 44 (8+28+8) / 横 padding 16 / rounded 12 / font 16 Medium / テキスト中央 */
  body .aoi-top-tab.aoi-tab .c-tabList__button {
    background-color: transparent;
    background-image: none;
    height: 44px;
    padding: 0 16px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    color: #1c4660;
    font-size: 16px;
    font-weight: 500;
    line-height: 1.76;
    letter-spacing: 1.6px;
    white-space: nowrap;
    width: auto;
    box-sizing: border-box;
  }

  /* 選択中タブ: bg #fff / rounded 8 (Figma I2016:18535;2027:17890) */
  body .aoi-top-tab.aoi-tab .c-tabList__button[aria-selected="true"] {
    background-color: #ffffff;
    background-image: none;
    border-radius: 8px;
    color: #1c4660;
  }

  /* コンテンツ枠: bg #fff / border 1px #e5e5e5 / padding 16 / rounded 12 (Figma I2016:18535;2027:17893) */
  body .aoi-top-tab.aoi-tab .c-tabBody {
    background-color: #ffffff;
    border: 1px solid #e5e5e5;
    border-radius: 12px;
    padding: 16px;
    margin: 0;
  }

  /* SP も CTA 下 50px 確保 (#340): 親 padding-bottom で margin collapse 漏れを止める */
  body .aoi-top-tab.aoi-tab .c-tabBody__item {
    padding: 0 0 50px;
  }

  /* コンテンツ内: flex-col / gap 20 / 全要素中央寄せ */
  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner {
    flex-direction: column;
    gap: 20px;
    padding: 0;
    height: auto;
    align-items: center;
    margin: 0;
    border-radius: 12px;
  }

  /* 旧テーマ由来 blocks.css の `.aoi-columns .aoi-column { margin: 0 0 0 1.5rem; width: calc(var(--clmn-w) - 1.5rem) }` を SP では強制打ち消し
     (margin-left 24px と width マイナス 24px が残って画像列/テキスト列が右にずれていた) */
  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > .aoi-column {
    margin: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
  }

  /* 画像: w 100% / aspect-ratio 358/220 (推測値、要実機確認) / object-cover / rounded 12 */
  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > figure.wp-block-image,
  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > .aoi-column:first-child {
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
    height: auto;
  }

  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > figure.wp-block-image img {
    width: 100%;
    height: auto;
    aspect-ratio: 358 / 220;
    object-fit: cover;
    border-radius: 12px;
  }

  /* テキスト列: 中央寄せ / PC の 404 固定を SP では強制解除 / 内側 padding 10px (テキストが c-tabBody 枠から飛び出さないよう内側に余白を確保) */
  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > .aoi-column:last-child {
    flex: 1 1 100% !important;
    width: 100% !important;
    max-width: 100% !important;
    text-align: center;
    align-self: stretch;
    padding: 10px;
    box-sizing: border-box;
  }

  /* SP 見出し: text 20 / Bold / center / tracking 2 / leading 1.8 (Figma I2016:18535;2027:17897) */
  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > .aoi-column:last-child h3 {
    font-size: 20px;
    font-weight: 700;
    line-height: 1.8;
    letter-spacing: 2px;
    color: #1c4660;
    text-align: center;
    margin: 0 0 20px 0;
  }

  /* SP 本文: text 16 / Medium / center / tracking 1.6 / leading 1.76 (Figma I2016:18535;2027:17898) */
  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi-columns__inner > .aoi-column:last-child p {
    font-size: 16px;
    font-weight: 500;
    line-height: 1.76;
    letter-spacing: 1.6px;
    color: #1c4660;
    text-align: center;
    margin: 0;
  }

  /* SP レッスン詳細 CTA: フォント 16px に明示固定 (PC は共通定義の 1.125em = 18px のまま) */
  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi_outline_and_arrow_button__link,
  body .aoi-top-tab.aoi-tab .c-tabBody__item .aoi_outline_and_arrow_button .label {
    font-size: 16px;
  }
}




/* ============================================================
   FV (.p-mainVisual__slide) 背景画像のみフェード
   - .aoi-fv__photo は背景レイヤーとして imgLayer の直後に挿入される
   - z-index は textLayer (z:3) より下になるよう低めに
   - パーツ (textLayer = 100名合格バッジ / 見出し等) は触らない
   ============================================================ */
/* スペース (container) 自体に mask を適用、画像は触らない。
   画像差替が起きても shape は container 側で固定されるため一貫性保持。 */
.p-mainVisual__slide .aoi-fv__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  pointer-events: none;
  /* overflow: hidden は mask と競合する場合があるため visible に */
  overflow: visible;
  -webkit-mask-image: url("assets/images/fv/fv-bg-mask.png");
  -webkit-mask-size: 100% 100%;
  -webkit-mask-position: 0 0;
  -webkit-mask-repeat: no-repeat;
  mask-image: url("assets/images/fv/fv-bg-mask.png");
  mask-size: 100% 100%;
  mask-position: 0 0;
  mask-repeat: no-repeat;
  /* L mode grayscale 画像は luminance で読まれる必要 */
  -webkit-mask-mode: luminance;
  mask-mode: luminance;
  /* 子要素を mask 範囲内に閉じ込める */
  isolation: isolate;
}
.p-mainVisual__slide .aoi-fv__photo .aoi-slide {
  position: absolute;
  inset: 0;
  opacity: 0;
}
/* 画面幅 900 以下では mask (右下欠けシェイプ) を解除し角丸四角に戻す
   ユーザー指示「画像も右下が欠けているものから角丸の四角 (SP と同じ)」 */
@media (max-width: 900px) {
  .p-mainVisual__slide .aoi-fv__photo {
    -webkit-mask-image: none;
    mask-image: none;
    border-radius: 12px;
    overflow: hidden;
  }
}

.p-mainVisual__slide .aoi-fv__photo .aoi-slide:first-child {
  opacity: 1;
}
.p-mainVisual__slide .aoi-fv__photo .aoi-slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}


/* ============================================================
   FV パーツ overlay (Figma node 1152:2577 透過 PNG)
   - 背景画像 (.aoi-fv__photo) より前面、textLayer (z:3) より後ろの z-index 2
   - 100% width / object-fit contain で全 viewport サイズに対応
   ============================================================ */
.p-mainVisual__slide .aoi-fv__parts {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 2;
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
}
.p-mainVisual__slide .aoi-fv__parts img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  object-position: center center;
  display: block;
}

/* ============================================================
   Issue #317: TOP 講師紹介カード レイアウト整備
   - 要素並び: 画像 → 氏名 → 大学/クラス → description → タグ → ボタン
   - 要素間マージンを 10px に統一 (gap)
   - カルーセル横並びの全カードで各行の高さを揃える
     (min-height で最大想定行数を確保)
   - 「プロフィールを見る」ボタンを下ぞろえ (margin-top: auto)
   - タグ一覧は縦中央揃え + 2段折返し許容
   - 影響範囲: .fullwidth-carousel.instructor-carousel のみ
     (.voice-carousel には波及させない)
   ============================================================ */

/* カードを縦 flex + 子要素間 10px / 高さは横並び全カードに stretch (flex デフォルト) */
.instructor-carousel .fullwidth-carousel__inner .slide {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 10px;
}

/* 既存 margin (5px 0 / 5px 0 15px 0 / 15px 0 等) を打ち消し、gap:10px に統一 */
.instructor-carousel .slide > .slide-thumb,
.instructor-carousel .slide > figure,
.instructor-carousel .slide > .slide-title,
.instructor-carousel .slide > .slide-university,
.instructor-carousel .slide > .slide-description,
.instructor-carousel .slide > .slide-course-list,
.instructor-carousel .slide > .aoi_outline_and_arrow_button {
  margin: 0;
}

/* 各テキスト行の高さ揃え (em 基準で最大想定行数を確保) */
.instructor-carousel .slide .slide-title {
  min-height: 1.8em;       /* 氏名 1行 (font-size:20px / line-height 1.8) */
}
.instructor-carousel .slide .slide-university {
  min-height: 3em;         /* 大学名 + 学科 2行分 */
}
.instructor-carousel .slide .slide-description {
  min-height: 6em;         /* description 約4行分 (font-size:14px / line-height 1.5) */
}

/* タグ一覧 (Figma 1432:4656): description セクションから切り離し、ボタン直上の独立セクションとして下寄せ
   - margin-top: auto で description-block と分離、description の行数差に依存せずカード下端から定位置
   - flex-wrap / gap 8 / items-start で各タグ h:23 を厳守 + 2段折返し許容 + 高さ揃え */
.instructor-carousel .slide .slide-course-list {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: flex-start;
  min-height: 54px;        /* h:23 × 2行 + gap 8 */
  gap: 8px;
  margin-top: auto;        /* description セクションと分離、ボタンの真上に定位置で固定 */
}
.instructor-carousel .slide .slide-course-list .slide-course {
  margin: 0;               /* 既存 margin:5px 打ち消し、gap で間隔制御 */
}

/* 「プロフィールを見る」ボタン: タグセクション直下に配置 (margin-top:auto は tags に移動済) */
.instructor-carousel .slide .aoi_outline_and_arrow_button {
  margin-top: 0;
}

/* ============================================================
   下層ページ tablet/SP タイトル正規化
   - TOP 以外のFV/ページ見出し/主要セクション見出しを tablet/SP 幅で 24px に統一
   - 各ページ固有CSSの responsive override (16/18/20px) より優先する
   ============================================================ */
@media (max-width: 1100px) {
  body:not(.aoi-page-top) .aoi-service-fv__ja,
  body:not(.aoi-page-top) .aoi-lower-fv__ja,
  body:not(.aoi-page-top) .aoi-contact-fv__ja,
  body:not(.aoi-page-top) .blog-fv__ja,
  body:not(.aoi-page-top) .aoi-legal-fv__title,
  body:not(.aoi-page-top) .instructor-page-title__ja,
  body:not(.aoi-page-top) .voice-single-title__catch,
  body:not(.aoi-page-top) .blog-single-title,
  body:not(.aoi-page-top) .aoi-section-title,
  body:not(.aoi-page-top) .aoi-section-header__ja,
  body:not(.aoi-page-top) .aoi-service-new-concept__ja,
  body:not(.aoi-page-top) .aoi-service-new-feature__ja,
  body:not(.aoi-page-top) .aoi-service-new-courses__ja,
  body:not(.aoi-page-top) .aoi-service-new-lesson__ja,
  body:not(.aoi-page-top) .aoi-service-new-voice__ja,
  body:not(.aoi-page-top) .aoi-service-new-flow__ja,
  body:not(.aoi-page-top) .aoi-service-new-faq__heading-ja {
    font-size: 24px !important;
  }
}

/* ============================================================
   #264 / B-NEW-14: TOP 合格実績セクション (Figma 1152:2683 厳密準拠)
   - リボン画像 (PNG) を <img> でレイアウトし、テキストを absolute で重ねる
   - フォント: Zen Antique (Google Fonts、enqueue 済) → 無ければ Noto Serif JP
   - 寸法は Figma 値そのまま (2026 ribbon 950×102 / 2025 ribbon 718×83 / laurel 41×140 等)
   ============================================================ */
.aoi-achievement {
  width: 100%;
  display: flex;
  justify-content: center;
  padding: 0 16px;
  box-sizing: border-box;
  /* リボン (950) が container inner より広い viewport で水平オーバーフローしてもページ全体に horizontal scroll を出さない (フッター含むページ下のレイアウトずれ防止) */
  overflow-x: clip;
}
.aoi-achievement__inner {
  width: 100%;
  max-width: 1100px;
  background-color: #ffffff;
  border-radius: 24px;
  padding: 50px 100px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
  gap: 32px;
  align-items: center;
  font-family: "Zen Antique", "Noto Serif JP", serif;
}

/* 年度ブロック */
.aoi-achievement__year {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 32px;
  width: 100%;
}

/* リボン: <img> 上にテキストを absolute で重ねる */
.aoi-achievement__ribbon {
  position: relative;
  display: block;
  margin: 0;
  padding: 0;
  line-height: 0;
}
.aoi-achievement__year--primary .aoi-achievement__ribbon {
  /* 2026 リボン 950×102: 親 inner content (1100 - padding 100×2 = 900) より広いため
     max-width: 100% を外し padding 領域へのオーバーフローを許容 (Figma 仕様どおり)。
     viewport が小さい場合は @media (max-width: 1099px) で aspect-ratio 縮尺へ切替 */
  width: 950px;
  height: 102px;
}
.aoi-achievement__year--secondary .aoi-achievement__ribbon {
  /* 2025 リボン 718×83: 親 inner content (900) 内に余裕で収まるため max-width:100% 安全網は維持 */
  width: 718px;
  height: 83px;
  max-width: 100%;
}
.aoi-achievement__ribbon-img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
/* 2025 リボン 3 パーツ合成 (Figma I1152:2683;1140:2306 inset 値そのまま) */
.aoi-achievement__ribbon-piece {
  position: absolute;
  display: block;
}
.aoi-achievement__year--secondary .aoi-achievement__ribbon-piece--center {
  /* 中央赤帯: inset[0_12.29%_29.82%_12.29%] */
  top: 0;
  left: 12.29%;
  width: 75.42%;
  height: 70.18%;
}
.aoi-achievement__year--secondary .aoi-achievement__ribbon-piece--tail-l {
  /* 左尾: inset[29.82%_79.14%_0_0] */
  top: 29.82%;
  left: 0;
  width: 20.86%;
  height: 70.18%;
}
.aoi-achievement__year--secondary .aoi-achievement__ribbon-piece--tail-r {
  /* 右尾: inset[29.82%_0_0_79.14%] */
  top: 29.82%;
  right: 0;
  width: 20.86%;
  height: 70.18%;
}
.aoi-achievement__ribbon-text {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  color: #ffffff;
  font-family: "Zen Antique", "Noto Serif JP", serif;
  font-weight: 400;
  white-space: nowrap;
  pointer-events: none;
  line-height: 1;
}
.aoi-achievement__year--primary .aoi-achievement__ribbon-text {
  /* Figma 1142:2533: 文字 vertical center は y=33.37 / ribbon 102 の 32.7% — リボン縮尺時も追従させるため % 指定 + translate(-50%, -50%) で文字自身の中央を基準点に */
  top: 33%;
  transform: translate(-50%, -50%);
  font-size: 40px;
  letter-spacing: 4px;
  z-index: 1;
}
.aoi-achievement__year--secondary .aoi-achievement__ribbon-text {
  /* Figma 1142:2538: 文字 vertical center は y=31.75 / ribbon 83 の 38.3% — 上赤帯 (上 70%) の中央付近 */
  top: 38%;
  transform: translate(-50%, -50%);
  font-size: 30px;
  letter-spacing: 4px;
  z-index: 1;        /* ribbon-piece 3 SVG の上に文字を重ねる */
}

/* 「合計N名合格!」サマリーラベル (2026 highlight の直上、ユーザー指示で追加) */
.aoi-achievement__summary {
  font-family: "Zen Antique", "Noto Serif JP", serif;
  font-size: 36px;
  color: #f24822 !important;
  letter-spacing: 2px;
  text-align: center;
  margin: 0;
  line-height: 1;
}
@media (max-width: 1099px) {
  .aoi-achievement__summary {
    font-size: clamp(20px, 3.5vw, 36px);
  }
}

/* 月桂冠 + 100% ハイライト (2026 のみ) — Figma Component1 451×140 厳密再現
   - 全幅 451 / 月桂冠を左右端に配置 (Figma absolute inset[0_90.86%_0_0] / [0_0_0_90.86%])
   - justify-content: space-between で端寄せ + center で文字を空き領域に */
.aoi-achievement__highlight {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 451px;
  max-width: 100%;
  gap: 0;
}
.aoi-achievement__laurel {
  /* Figma viewBox 41.24×139.97 をそのまま */
  width: 41px;
  height: 140px;
  flex-shrink: 0;
  display: block;
}
.aoi-achievement__highlight-text {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  color: #f24822 !important;
  line-height: 1;
}
/* 第一志望合格率 100% 一帯は Figma 1142:2535 全要素が text-[#f24822]。旧テーマ由来 p 色が cascade で勝つ事故を防ぐため !important で強制 */
.aoi-achievement__highlight-label,
.aoi-achievement__highlight-value,
.aoi-achievement__highlight-num,
.aoi-achievement__highlight-unit {
  color: #f24822 !important;
}
.aoi-achievement__highlight-label {
  font-size: 30px;
  line-height: 1;
  margin: 0;
  letter-spacing: 0;
}
.aoi-achievement__highlight-value {
  display: flex;
  align-items: baseline;
  gap: 0;
  margin: 0;
  line-height: 1;
}
.aoi-achievement__highlight-num {
  font-size: 100px;
  line-height: 1;
}
.aoi-achievement__highlight-unit {
  font-size: 30px;
  line-height: 1;
}

/* 区切り点線 (Figma Line100 737×9.616) */
.aoi-achievement__divider {
  width: 100%;
  max-width: 737px;
  height: 0;
  border-top: 2px dotted #b8b8b8;
  margin: 0 auto;
}

/* 大学リスト 2 列 (Figma 1142:2537/1142:2539) */
.aoi-achievement__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  /* 固定 370px → flexible: 親縮小時にはみ出さない */
  grid-template-columns: repeat(2, minmax(0, 370px));
  column-gap: 64px;
  row-gap: 24px;
  justify-content: center;
  width: 100%;
  max-width: 804px;          /* 370 × 2 + 64 (Figma 寸法上限) */
}
.aoi-achievement__year--secondary .aoi-achievement__list {
  grid-template-columns: repeat(2, minmax(0, 341px));
  row-gap: 12px;
  max-width: 746px;          /* 341 × 2 + 64 */
}
.aoi-achievement__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 35px;
  font-size: 28px;
  color: #1c4660;
  line-height: 1;
  font-family: "Zen Antique", "Noto Serif JP", serif;
}
.aoi-achievement__year--secondary .aoi-achievement__item {
  font-size: 20px;
}
.aoi-achievement__uni {
  flex: 1 1 0;
  min-width: 0;
}
.aoi-achievement__count {
  flex-shrink: 0;
  white-space: nowrap;
}
.aoi-achievement__num {
  /* Figma 1141:2328: text-[red] (= #ff0000) — 大学リスト数字は強い赤、合格率 100 (#f24822) と区別 */
  color: #ff0000;
}
.aoi-achievement__name-suffix {
  color: #1c4660;
}

/* 注釈 (年度ブロック右下) — 管理画面の textarea 1 行 = 1 注釈、自動で「※」付与 */
.aoi-achievement__notes {
  list-style: none;
  margin: 0;
  padding: 0;
  width: 100%;
  max-width: 804px;
  text-align: right;
  font-family: "Noto Sans JP", "Zen Antique", serif;
}
.aoi-achievement__note {
  font-size: 13px;
  line-height: 1.6;
  color: #1c4660;
  letter-spacing: 0;
}

/* 中画面 (≤1099) — 2026 リボン (950) が container 1100 inner 900 を超えるため aspect-ratio 縮尺 + フォント clamp。SP 以外でもオーバーフローを防ぐ */
@media (max-width: 1099px) {
  .aoi-achievement__inner {
    /* 中画面で padding を縮小 (100→40) し inner content area を確保。リボン/リストのオーバーフローを防ぐ */
    padding: 40px 32px;
  }
  .aoi-achievement__year--primary .aoi-achievement__ribbon {
    width: 100%;
    max-width: 950px;
    height: auto;
    aspect-ratio: 950 / 102;
  }
  .aoi-achievement__year--secondary .aoi-achievement__ribbon {
    width: 100%;
    max-width: 718px;
    height: auto;
    aspect-ratio: 718 / 83;
  }
  .aoi-achievement__year--primary .aoi-achievement__ribbon-text {
    /* 文字 13 文字を red rect (リボン幅 70%) に収めるため scaling factor を控えめに */
    font-size: clamp(14px, 3.4vw, 40px);
    letter-spacing: clamp(0.5px, 0.3vw, 4px);
  }
  .aoi-achievement__year--secondary .aoi-achievement__ribbon-text {
    font-size: clamp(12px, 2.8vw, 30px);
    letter-spacing: clamp(0.5px, 0.3vw, 4px);
  }
  /* 大学リスト 2 列の列幅も viewport に追従 */
  .aoi-achievement__list,
  .aoi-achievement__year--secondary .aoi-achievement__list {
    column-gap: clamp(16px, 4vw, 64px);
  }
  /* 中画面で highlight 幅 451 が overflow しないように */
  .aoi-achievement__highlight {
    width: 100%;
    max-width: 451px;
  }
}

/* SP (≤768) — リボン縮尺 / リスト 1 列 / フォント縮小 */
@media (max-width: 768px) {
  .aoi-achievement__inner {
    padding: 32px 16px;
    gap: 32px;
  }
  .aoi-achievement__year {
    gap: 24px;
  }
  .aoi-achievement__year--primary .aoi-achievement__ribbon {
    width: 100%;
    height: auto;
    aspect-ratio: 950 / 102;
  }
  .aoi-achievement__year--secondary .aoi-achievement__ribbon {
    width: 100%;
    height: auto;
    aspect-ratio: 718 / 83;
  }
  .aoi-achievement__year--primary .aoi-achievement__ribbon-text {
    top: 30%;
    font-size: clamp(14px, 4vw, 24px);
    letter-spacing: 2px;
  }
  .aoi-achievement__year--secondary .aoi-achievement__ribbon-text {
    top: 22%;
    font-size: clamp(12px, 3.5vw, 20px);
    letter-spacing: 2px;
  }
  .aoi-achievement__laurel {
    height: 90px;
  }
  .aoi-achievement__highlight-label {
    font-size: 18px;
  }
  .aoi-achievement__highlight-num {
    font-size: 64px;
  }
  .aoi-achievement__highlight-unit {
    font-size: 22px;
  }
  .aoi-achievement__list,
  .aoi-achievement__year--secondary .aoi-achievement__list {
    grid-template-columns: 1fr;
    row-gap: 14px;
    column-gap: 0;
    width: 100%;
    max-width: 360px;
  }
  .aoi-achievement__item {
    font-size: 16px;
    gap: 12px;
  }
  .aoi-achievement__year--secondary .aoi-achievement__item {
    font-size: 14px;
  }
}

/* ============================================================
   Figma 1294:4240 フッター上部 widget area 再構築 (#346 フォローアップ)
   - wp-admin Widget は触らず template_redirect ob_start でレンダ済 HTML を置換
   - 左ブロック (Logo+SNS) / 右ブロック (企業情報 + サイトマップ 2 サブカラム)
   - 中段ナビ + copyright (l-footer__foot) は不変
   ============================================================ */
.aoi-footer-upper {
  padding: 50px 120px;
  background-color: #ffffff;
  display: flex;
  justify-content: center;
  width: 100%;
  box-sizing: border-box;
}
.aoi-footer-upper__inner {
  width: 100%;
  max-width: 1165px;
  display: flex;
  gap: 144px;
  align-items: flex-start;
  justify-content: center;
}
/* 左ブロック: Logo + SNS */
.aoi-footer-upper__brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 40px;
  flex-shrink: 0;
}
.aoi-footer-upper__logo {
  width: 180px;
  height: 143px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.aoi-footer-upper__logo img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}
.aoi-footer-upper__sns {
  display: flex;
  gap: 20px;
  align-items: center;
  justify-content: center;
  height: 52px;
  width: 225px;
}
.aoi-footer-upper__sns-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  text-decoration: none;
}
.aoi-footer-upper__sns-link img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  display: block;
}

/* 右ブロック: 企業情報 + サイトマップ */
.aoi-footer-upper__cols {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  gap: 86px;
  align-items: flex-start;
}
.aoi-footer-upper__col {
  flex: 1 1 0;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}
.aoi-footer-upper__heading {
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 14px;
  letter-spacing: 1.4px;
  line-height: 1.4;
  color: #1c4660;
  margin: 0;
  padding: 20px 0;
  height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  box-sizing: border-box;
  /* ユーザー指示で border-bottom (Figma 仕様の #1c4660 / #3c3c3c 0.5px) を撤去 */
  border: none !important;
}

/* ユーザー指示「線を全部消す」を確実に効かせるため `.aoi-footer-upper` 配下の全要素・擬似要素で border / outline / box-shadow を !important で撲滅 (PC / 中画面 / SP すべて) */
.aoi-footer-upper,
.aoi-footer-upper *,
.aoi-footer-upper *::before,
.aoi-footer-upper *::after {
  border: 0 none !important;
  outline: 0 none !important;
  box-shadow: none !important;
}
/* 企業情報 deflist */
.aoi-footer-upper__deflist {
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.aoi-footer-upper__row {
  display: grid;
  grid-template-columns: 7em 1fr;
  align-items: start;
  padding: 10px 0;
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 1.2px;
  line-height: 1.4;
  color: #1c4660;
  text-align: left;
  justify-content: center;
}
.aoi-footer-upper__row:first-of-type {
  padding-top: 20px;
  padding-bottom: 10px;
}
.aoi-footer-upper__row dt,
.aoi-footer-upper__row dd {
  margin: 0;
  padding: 0;
}

/* サイトマップ */
.aoi-footer-upper__sitemap {
  display: flex;
  gap: 38px;
  padding-top: 10px;
  width: 100%;
  max-width: 367px;
  align-self: center;
}
.aoi-footer-upper__sitemap-list {
  flex: 1 1 0;
  min-width: 0;
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
}
.aoi-footer-upper__sitemap-list li {
  padding: 10px 0;
}
.aoi-footer-upper__sitemap-list a {
  font-family: "Noto Sans", "Noto Sans JP", sans-serif;
  font-weight: 500;
  font-size: 12px;
  letter-spacing: 1.2px;
  line-height: 1.4;
  color: #3c3c3c;
  text-decoration: none;
  display: block;
  /* Figma 1294:4213/4222 各 row は items-start (cross-axis 左寄せ) で text は flex-[1_0_0] 内のデフォルト左揃え */
  text-align: left;
}
.aoi-footer-upper__sitemap-list a:hover {
  text-decoration: underline;
}

/* レスポンシブ */
@media (max-width: 1099px) {
  .aoi-footer-upper {
    padding: 40px 32px;
  }
  .aoi-footer-upper__inner {
    gap: 60px;
  }
  .aoi-footer-upper__cols {
    gap: 40px;
  }
}
@media (max-width: 768px) {
  /* SP: 中央配置 (ブロックは横中央) + 左揃え (テキストは左寄せ) — フッター下部と同じ表示幅 */
  .aoi-footer-upper {
    padding: 32px 0;
    width: 100%;
  }
  .aoi-footer-upper__inner {
    flex-direction: column;
    gap: 32px;
    align-items: center;
    width: 100%;
    max-width: none;
    padding: 0 16px;
    box-sizing: border-box;
  }
  .aoi-footer-upper__brand {
    align-items: center;
  }
  /* cols / col 系は 360 max 中央寄せ。margin auto + display:flex flex-direction:column */
  .aoi-footer-upper__cols {
    display: flex;
    flex-direction: column;
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
    gap: 24px;
    align-self: center;
  }
  .aoi-footer-upper__col {
    width: 100%;
    max-width: 360px;
    margin: 0 auto;
    align-items: stretch;
    align-self: center;
  }
  /* SP では 旧テーマ / 子テーマ問わず .aoi-footer-upper 内の border 系を全撤去
     (heading 下線、dl/dt/dd セパレータ線など想定) */
  .aoi-footer-upper,
  .aoi-footer-upper *,
  .aoi-footer-upper *::before,
  .aoi-footer-upper *::after {
    border-top: none !important;
    border-bottom: none !important;
    border-left: none !important;
    border-right: none !important;
    box-shadow: none !important;
  }
  .aoi-footer-upper__heading,
  .aoi-footer-upper__heading--text {
    height: auto;
    padding: 12px 0;
    justify-content: flex-start;
    text-align: left;
  }
  .aoi-footer-upper__sitemap {
    max-width: none;
    width: 100%;
    align-self: stretch;
  }
  .aoi-footer-upper__deflist {
    width: 100%;
  }
}

/* #346/FOOTER 線除去: 旧テーマ parts/footer.css の `.l-footer__nav a { border-right: 1px solid }` /
   `li:first-child a { border-left: 1px solid }` が currentColor (--color_text:#1c4660) に解決され
   #1c4660 の縦区切り線としてフッター下部メニュー (株式会社A.O.I. | 個人情報の取扱いについて | ...) に出ていた。
   ユーザー指示で全フッター内の #1c4660 線を撲滅するため 旧テーマ由来 rule を上書き */
.l-footer__nav a,
.l-footer__nav li:first-child a {
  border-left: 0 none !important;
  border-right: 0 none !important;
  border-top: 0 none !important;
  border-bottom: 0 none !important;
}


/* ===== B-NEW-06 (#226): 講師詳細 関連記事を「入試情報×3 + 合格者の声×3」2ブロック構成に変更 ===== */
/*
 * Figma node: 1567:11249 (講師詳細 PC 関連記事セクション)
 * Figma 仕様:
 *   - 外コンテナ: w-832px, gap-24px, pt-32px
 *   - 見出し: 18px bold #1c4660 tracking-1.8px text-center
 *   - カード: w-831px, bg-white, rounded-16px, padding 30/20px, gap-20px (内部要素)
 *   - 日付: 12px medium #1c4660 tracking-1.2px
 *   - カテゴリpill: bg-#1c4660, white, 12px medium, rounded-24px, px-15 py-10
 *   - タイトル: 16px medium #1c4660 tracking-1.6px (flex-1)
 *   - 矢印: w-20px h-10px (右端)
 * 矢野様 FB 2026-04-24: 旧実装の「お知らせ投稿(WPダミー)+他講師8名」 2ブロック構成を
 * 「入試情報×3 + 合格者の声×3」 に変更
 */

.instructor-article .related-exam-posts,
.instructor-article .related-voices-from-instructor {
  margin-top: 32px;
  width: 100%;
  max-width: 832px;
  margin-left: auto;
  margin-right: auto;
}

.instructor-article .related-section-heading {
  font-size: 18px;
  font-weight: 700;
  color: #1c4660;
  letter-spacing: 1.8px;
  line-height: 1.4;
  text-align: center;
  margin-bottom: 24px;
  padding-bottom: 0;
  border-bottom: none;
}

.instructor-article .related-posts-list {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.instructor-article .related-post-card {
  display: flex;
  align-items: center;
  gap: 20px;
  background: white;
  border-radius: 16px;
  padding: 20px 30px;
  text-decoration: none;
  color: inherit;
  transition: background-color 0.2s ease;
}

.instructor-article .related-post-card:hover {
  background-color: #f1f8fa;
}

.instructor-article .related-post-card .related-post-date {
  font-size: 12px;
  font-weight: 500;
  color: #1c4660;
  letter-spacing: 1.2px;
  line-height: 1.4;
  white-space: nowrap;
  flex-shrink: 0;
}

.instructor-article .related-post-card .related-post-category {
  background-color: #1c4660;
  color: white;
  font-size: 12px;
  font-weight: 500;
  letter-spacing: 1.2px;
  line-height: 1.4;
  padding: 10px 15px;
  border-radius: 24px;
  white-space: nowrap;
  flex-shrink: 0;
}

.instructor-article .related-post-card .related-post-title {
  flex: 1 1 0;
  min-width: 0;
  font-size: 16px;
  font-weight: 500;
  color: #1c4660;
  letter-spacing: 1.6px;
  line-height: 1.76;
}

.instructor-article .related-post-card .related-post-arrow {
  color: #1c4660;
  font-size: 18px;
  flex-shrink: 0;
}

@media (max-width: 599px) {
  .instructor-article .related-post-card {
    flex-wrap: wrap;
    gap: 12px;
    padding: 16px;
  }

  .instructor-article .related-post-card .related-post-title {
    flex-basis: 100%;
    font-size: 14px;
  }
}

/* ============================================================
 * カルーセル スクロール進行インジケーター
 * Figma: Rectangle 3463878 / #d9d9d9 / 555×8px / border-radius 21px
 * carousel-drag.js が nextElementSibling.[class*="__bar"] を参照して
 * --thumb-left / --thumb-width を注入する
 * ============================================================ */
.aoi-carousel-indicator {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 16px;
  margin-top: 24px;
}
.aoi-carousel-indicator__bar {
  flex: 0 1 555px;
  height: 8px;
  background: #d9d9d9;
  border-radius: 21px;
  position: relative;
  overflow: hidden;
  cursor: pointer;
}
.aoi-carousel-indicator__bar::before {
  content: '';
  position: absolute;
  top: 0;
  left: var(--thumb-left, 0%);
  width: var(--thumb-width, 20%);
  height: 100%;
  background: #1c4660;
  border-radius: 21px;
  transition: left 0.15s ease, width 0.15s ease;
}
.aoi-carousel-nav__btn {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  border: 1.5px solid #1c4660;
  background: #fff;
  color: #1c4660;
  font-size: 14px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}
.aoi-carousel-nav__btn:hover {
  background: #1c4660;
  color: #fff;
}
.aoi-carousel-nav__btn:disabled {
  opacity: 0.3;
  cursor: default;
  pointer-events: none;
}
