/* ============================================================
 * サービスページ共通 CSS (clever テーマ用)
 * 対象: /lesson / /service-tensaku / /service-new
 * ============================================================ */

/* ============================================================
 * サービスページ FV (.aoi-service-fv)
 * Figma: 1840:16471 (private-lesson) / 1840:21099 (essay-correction)
 * ============================================================ */

.aoi-service-fv {
  position: relative;
  width: 100%;
  aspect-ratio: 1472 / 420;
  overflow: hidden;
  display: block;
}

@media (max-width: 599px) {
  .aoi-service-fv {
    aspect-ratio: 350 / 263;
  }
}

.aoi-service-fv__bg {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.aoi-service-fv__deco {
  position: absolute;
  transform: translate(-50%, -50%);
  pointer-events: none;
  display: block;
}

.aoi-service-fv__deco--h1 { width: 8.1%;  left: 17.7%; top: 20.9%; }
.aoi-service-fv__deco--h2 { width: 4.4%;  left: 70.3%; top: 19.8%; }
.aoi-service-fv__deco--h3 { width: 4.4%;  left: 23.5%; top: 61.4%; }
.aoi-service-fv__deco--h4 { width: 8.1%;  left: 76.6%; top: 37.7%; }

.aoi-service-fv__deco--r1 { width: 7.1%;  left: 86.6%; top: 12.3%; }
.aoi-service-fv__deco--r2 { width: 9.9%;  left:  6.3%; top: 51.4%; }
.aoi-service-fv__deco--r3 { width: 4.1%;  left: 84.5%; top: 68.4%; }
.aoi-service-fv__deco--r4 { width: 4.1%;  left: 11.2%; top: 14.3%; }

.aoi-service-fv__en,
.aoi-service-fv__ja,
.aoi-service-fv__sub {
  position: absolute;
  margin: 0;
  line-height: 1;
}

.aoi-service-fv__en {
  left: 34.5%;
  top: 19.3%;
  font-family: 'Oooh Baby', cursive;
  font-size: clamp(36px, 6.35vw, 96px);
  color: #e7f4b3;
  letter-spacing: -0.05em;
  white-space: nowrap;
  transform: rotate(-9.26deg);
}

.aoi-service-fv__ja {
  left: 50%;
  top: 42.4%;
  transform: translateX(-50%);
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: clamp(16px, 1.72vw, 26px);
  color: #ffffff;
  letter-spacing: 0.1em;
  line-height: 1.4;
  white-space: nowrap;
  text-align: center;
}

.aoi-service-fv__sub {
  left: 50%;
  top: 57.1%;
  transform: translateX(-50%);
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: clamp(12px, 0.93vw, 14px);
  color: #ffffff;
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-align: center;
  white-space: nowrap;
}

@media (max-width: 599px) {
  .aoi-service-fv__en {
    font-size: 36px;
    left: 15%;
    top: 22%;
    transform: rotate(-9.26deg);
  }
  .aoi-service-fv__ja {
    font-size: 16px;
    letter-spacing: 1.6px;
    top: 42%;
    white-space: normal;
    width: 80%;
  }
  .aoi-service-fv__sub {
    display: none;
  }
}

/* ============================================================
 * サービスページ本文エリア (旧ガード用)
 * ============================================================ */
.aoi-service-content {
  padding-top: 48px;
  padding-bottom: 64px;
}

/* ============================================================
 * セクション共通ヘッダー (.aoi-section-header)
 * Figma: H2 26px #1C4660 / Oooh Baby 24px #17BFBD
 * ============================================================ */
.aoi-section-header {
  text-align: center;
  margin-bottom: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}
.aoi-section-header__en {
  font-family: 'Oooh Baby', cursive;
  font-size: 24px;
  color: #17bfbd;
  margin: 0;
  line-height: 1;
  order: 2;
}
.aoi-section-header__ja {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 26px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 0;
  order: 1;
}

/* ============================================================
 * Section 1: コンセプト (.aoi-lesson-concept)
 * Figma: 1840:16484
 * ============================================================ */
.aoi-lesson-concept {
  padding: 70px 0;
  background: linear-gradient(180deg, #f1f8fa 30%, #ffffff 100%);
}
.aoi-lesson-concept__cards {
  display: flex;
  flex-direction: column;
  gap: 36px;
}
.aoi-lesson-concept__card {
  background: #ffffff;
  border-radius: 12px;
  padding: 30px;
  display: flex;
  flex-direction: row;
  gap: 36px;
  align-items: flex-start;
  box-shadow: 0 4px 20px -2px rgba(0,0,0,0.06);
}
.aoi-lesson-concept__card-img {
  flex: 0 0 260px;
  aspect-ratio: 4/3;
  border-radius: 8px;
  overflow: hidden;
}
.aoi-lesson-concept__card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aoi-lesson-concept__card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.aoi-lesson-concept__num {
  font-family: 'Allan', cursive;
  font-size: 48px;
  font-weight: 400;
  color: #17bfbd;
  letter-spacing: 0.1em;
  line-height: 1;
  flex-shrink: 0;
}
.aoi-lesson-concept__heading-row {
  display: flex;
  align-items: baseline;
  gap: 12px;
}
.aoi-lesson-concept__sep {
  border: none;
  border-top: 2px solid #17bfbd;
  margin: 0;
}
.aoi-lesson-concept__title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 0;
}
.aoi-lesson-concept__text {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 15px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0;
}

@media (max-width: 767px) {
  .aoi-lesson-concept__card {
    flex-direction: column;
  }
  .aoi-lesson-concept__card-img {
    flex: none;
    width: 100%;
  }
}

/* ============================================================
 * Section 2: レッスン科目一覧 (.aoi-lesson-subjects)
 * Figma: 1840:16520
 * ============================================================ */
.aoi-lesson-subjects {
  padding: 70px 0;
  background: linear-gradient(1deg, #f1f8fa 32%, #ffffff 106%);
}
.aoi-lesson-subjects__intro {
  max-width: 750px;
  margin: 0 auto 48px;
  background: #ffffff;
  border: 1px solid #f1f5f9;
  border-radius: 12px;
  padding: 32px 40px;
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.02);
  text-align: center;
}
.aoi-lesson-subjects__intro p {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0;
}
.aoi-lesson-subjects__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
}
.aoi-lesson-subjects__card {
  background: #ffffff;
  border-radius: 12px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  gap: 16px;
  box-shadow: 0 4px 16px -2px rgba(0,0,0,0.06);
}
.aoi-lesson-subjects__card-img {
  width: 100%;
  aspect-ratio: 4/3;
  border-radius: 10px;
  overflow: hidden;
}
.aoi-lesson-subjects__card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aoi-lesson-subjects__card-body {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.aoi-lesson-subjects__title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.8;
  margin: 0;
}
.aoi-lesson-subjects__sep {
  border: none;
  border-top: 1px solid #e5e5e5;
  margin: 0;
}
.aoi-lesson-subjects__text {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 14px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0;
}

@media (max-width: 899px) {
  .aoi-lesson-subjects__grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
  }
}
@media (max-width: 599px) {
  .aoi-lesson-subjects__grid {
    grid-template-columns: 1fr;
  }
  .aoi-lesson-subjects__intro {
    padding: 24px 20px;
  }
}

/* ============================================================
 * Section 3: 対応講師 (.aoi-lesson-instructors)
 * Figma: 1840:16610
 * ============================================================ */
.aoi-lesson-instructors {
  padding: 70px 0;
  background: #f1f8fa;
}
.aoi-lesson-instructors__track-wrap {
  overflow-x: auto;
  overflow-y: hidden;
  padding-bottom: 24px;
  cursor: grab;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.aoi-lesson-instructors__track-wrap::-webkit-scrollbar {
  display: none;
}
.aoi-lesson-instructors__track-wrap.is-dragging {
  cursor: grabbing;
}
.aoi-lesson-instructors__track {
  display: flex;
  gap: 36px;
  padding: 8px 40px 8px;
}
.aoi-lesson-instructors__card {
  flex: 0 0 380px;
  background: #ffffff;
  border-radius: 12px;
  padding: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  box-shadow: 0 4px 20px -2px rgba(0,0,0,0.08);
}
.aoi-lesson-instructors__photo {
  width: 180px;
  height: 180px;
  border-radius: 50%;
  overflow: hidden;
  border: 4px solid #ffffff;
  box-shadow: 0 0 0 2px #e5f5f9;
  flex-shrink: 0;
}
.aoi-lesson-instructors__img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aoi-lesson-instructors__name {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.8;
  text-align: center;
  margin: 0;
}
.aoi-lesson-instructors__affiliation {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 13px;
  color: #17bfbd;
  letter-spacing: 0.08em;
  line-height: 1.5;
  text-align: center;
  margin: 0;
}
.aoi-lesson-instructors__desc {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 13px;
  color: #797979;
  letter-spacing: 0.08em;
  line-height: 1.6;
  text-align: center;
  margin: 0;
}
.aoi-lesson-instructors__tags {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
  padding: 8px 0;
}
.aoi-lesson-instructors__tag {
  background: #e5e5e5;
  color: #1c4660;
  font-size: 12px;
  font-weight: 500;
  padding: 4px 12px;
  border-radius: 9999px;
  white-space: nowrap;
}
.aoi-lesson-instructors__indicator {
  display: flex;
  justify-content: center;
  padding-top: 16px;
}
.aoi-lesson-instructors__bar {
  width: 200px;
  height: 8px;
  background: #d9d9d9;
  border-radius: 21px;
  position: relative;
  overflow: hidden;
}
.aoi-lesson-instructors__bar::after {
  content: '';
  position: absolute;
  top: 0;
  left: var(--thumb-left, 0%);
  width: var(--thumb-width, 40%);
  height: 100%;
  background: #1c4660;
  border-radius: 21px;
  transition: left 0.1s ease, width 0.1s ease;
}

@media (max-width: 767px) {
  .aoi-lesson-instructors__track {
    padding-left: 20px;
    padding-right: 20px;
  }
  .aoi-lesson-instructors__card {
    flex: 0 0 280px;
  }
}

/* ============================================================
 * Section 4: 合格実績・受講生の声 (.aoi-lesson-results)
 * Figma: 1840:16622
 * ============================================================ */
.aoi-lesson-results {
  padding: 70px 0;
  background: linear-gradient(181deg, #f1f8fa 30%, #ffffff 99.5%);
}
.aoi-lesson-results__achievement {
  max-width: 760px;
  margin: 0 auto 64px;
  background: #ffffff;
  border-radius: 24px;
  padding: 40px 60px;
  box-shadow: 0 4px 24px -4px rgba(0,0,0,0.08);
}
.aoi-lesson-results__ribbon {
  text-align: center;
  margin-bottom: 32px;
  position: relative;
}
.aoi-lesson-results__ribbon img {
  max-width: 360px;
  width: 100%;
  display: block;
  margin: 0 auto;
}
.aoi-lesson-results__ribbon-text {
  display: none;
}
.aoi-lesson-results__table {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 40px;
}
.aoi-lesson-results__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  border-bottom: 1px solid #f1f5f9;
  padding-bottom: 12px;
}
.aoi-lesson-results__school {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: #1c4660;
  letter-spacing: 0.05em;
}
.aoi-lesson-results__count {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #e84040;
  letter-spacing: 0.05em;
  white-space: nowrap;
}
.aoi-lesson-results__voices {
  margin-bottom: 40px;
}
.aoi-lesson-results__voices-title {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 22px;
  color: #1c4660;
  letter-spacing: 0.1em;
  text-align: center;
  margin: 0 0 32px;
}
.aoi-lesson-results__voices-track-wrap {
  overflow-x: auto;
  overflow-y: hidden;
  cursor: grab;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.aoi-lesson-results__voices-track-wrap::-webkit-scrollbar {
  display: none;
}
.aoi-lesson-results__voices-track-wrap.is-dragging {
  cursor: grabbing;
}
.aoi-lesson-results__voices-track {
  display: flex;
  gap: 24px;
  padding-bottom: 8px;
}
.aoi-lesson-results__voice-card {
  flex: 0 0 min(700px, 90vw);
  background: #ffffff;
  border-radius: 16px;
  padding: 32px;
  display: flex;
  flex-direction: column;
  gap: 20px;
  box-shadow: 0 4px 24px -4px rgba(0,0,0,0.08);
}
.aoi-lesson-results__voice-meta {
  display: flex;
  gap: 24px;
  align-items: flex-start;
}
.aoi-lesson-results__voice-photo {
  width: 120px;
  height: 120px;
  border-radius: 50%;
  overflow: hidden;
  flex-shrink: 0;
}
.aoi-lesson-results__voice-photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aoi-lesson-results__voice-info {
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding-top: 8px;
}
.aoi-lesson-results__voice-badge {
  font-size: 12px;
  font-weight: 700;
  color: #1c4660;
  background: #f1f8fa;
  border: 1px solid #e5f5f9;
  border-radius: 9999px;
  padding: 4px 14px;
  width: fit-content;
}
.aoi-lesson-results__voice-univ {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #1c4660;
  letter-spacing: 0.1em;
  margin: 0;
}
.aoi-lesson-results__voice-dept {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 13px;
  color: #797979;
  letter-spacing: 0.08em;
  margin: 0;
}
.aoi-lesson-results__voice-name {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  font-size: 16px;
  color: #1c4660;
  letter-spacing: 0.1em;
  margin: 0;
}
.aoi-lesson-results__voice-quote {
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 500;
  font-size: 14px;
  color: #1c4660;
  line-height: 1.76;
  letter-spacing: 0.08em;
  border-left: 2px solid #e5e5e5;
  padding-left: 18px;
  margin: 0;
}
.aoi-lesson-results__voices-indicator {
  display: flex;
  justify-content: center;
  padding-top: 16px;
}
.aoi-lesson-results__voices-bar {
  width: 200px;
  height: 8px;
  background: #d9d9d9;
  border-radius: 21px;
  position: relative;
  overflow: hidden;
}
.aoi-lesson-results__voices-bar::after {
  content: '';
  position: absolute;
  top: 0;
  left: var(--thumb-left, 0%);
  width: var(--thumb-width, 40%);
  height: 100%;
  background: #1c4660;
  border-radius: 21px;
  transition: left 0.1s ease, width 0.1s ease;
}
.aoi-lesson-results__cta-btn {
  margin-top: 40px;
}

@media (max-width: 767px) {
  .aoi-lesson-results__achievement {
    padding: 28px 20px;
  }
  .aoi-lesson-results__table {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  .aoi-lesson-results__voice-meta {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .aoi-lesson-results__voice-badge {
    margin: 0 auto;
  }
}

/* ============================================================
 * 小論文・添削コース (.aoi-essay-*)
 * Figma: 1840:20305 全面書き直し
 * ============================================================ */

/* --- コンセプトセクション --- */
.aoi-essay-concept {
  padding: 70px 0;
  background: linear-gradient(180deg, var(--clever-color-bg-light, #f1f8fa) 30%, #ffffff 100%);
}
.aoi-essay-concept__card {
  max-width: 800px;
  margin: 0 auto 48px;
  background: #ffffff;
  border: 1px solid #f1f5f9;
  border-radius: 12px;
  padding: 41px;
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.02);
}
.aoi-essay-concept__card p {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0 0 16px;
}
.aoi-essay-concept__card p:last-child {
  margin-bottom: 0;
}

/* --- コース特徴カード（2枚：動画+添削 / 自分のペース） --- */
.aoi-essay-feature-card {
  display: flex;
  gap: 30px;
  align-items: center;
  background: #ffffff;
  border-radius: 12px;
  padding: 30px;
  margin-bottom: 36px;
  box-shadow: 0 4px 20px -2px rgba(0,0,0,0.04);
}
.aoi-essay-feature-card:last-of-type {
  margin-bottom: 0;
}
.aoi-essay-feature-card__media {
  flex: 0 0 316px;
  height: 231px;
  border-radius: 12px;
  overflow: hidden;
}
.aoi-essay-feature-card__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aoi-essay-feature-card__body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.aoi-essay-feature-card__num-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  line-height: 0;
}
.aoi-essay-feature-card__num {
  font-family: 'Allan', cursive;
  font-size: 48px;
  font-weight: 400;
  color: #17bfbd;
  line-height: 40px;
  flex-shrink: 0;
  width: 60px;
}
.aoi-essay-feature-card__title {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.8;
  margin: 0;
  align-self: center;
}
.aoi-essay-feature-card__sep {
  border: none;
  border-top: 1px solid #e5e5e5;
  margin: 0;
}
.aoi-essay-feature-card__text {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0;
}

/* --- コース詳細（基礎講座・過去問添削） --- */
.aoi-essay-courses {
  padding: 70px 0;
  background: linear-gradient(0.73deg, var(--clever-color-bg-light, #f1f8fa) 32%, #ffffff 106%);
}
.aoi-essay-courses__list {
  display: flex;
  flex-direction: column;
  gap: 36px;
  max-width: 950px;
  margin: 0 auto;
}
.aoi-essay-courses__card {
  background: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 30px;
  box-shadow: 0 4px 20px -2px rgba(0,0,0,0.04);
}
.aoi-essay-courses__card-hero {
  width: 100%;
  height: 231px;
  border-radius: 12px;
  overflow: hidden;
  flex-shrink: 0;
}
.aoi-essay-courses__card-hero img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aoi-essay-courses__card-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.aoi-essay-courses__num-row {
  display: flex;
  align-items: baseline;
  gap: 16px;
  line-height: 0;
}
.aoi-essay-courses__num {
  font-family: 'Allan', cursive;
  font-size: 48px;
  font-weight: 400;
  color: #17bfbd;
  line-height: 40px;
  flex-shrink: 0;
  width: 60px;
}
.aoi-essay-courses__title {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.8;
  margin: 0;
  white-space: nowrap;
}
.aoi-essay-courses__sep {
  border: none;
  border-top: 1px solid #e5e5e5;
  margin: 0;
}
.aoi-essay-courses__text {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0;
}
.aoi-essay-courses__detail {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.76;
}
.aoi-essay-courses__detail p {
  margin: 0 0 4px;
}
.aoi-essay-courses__detail ul {
  margin: 0 0 0 1.5em;
  padding: 0;
  list-style: disc;
}
.aoi-essay-courses__detail ul li {
  margin-bottom: 2px;
}
.aoi-essay-courses__imgs {
  display: flex;
  gap: 16px;
}
.aoi-essay-courses__imgs img {
  flex: 1;
  width: 0;
  height: 279px;
  object-fit: cover;
  display: block;
  border: 1px solid #e5e5e5;
  border-radius: 4px;
}

/* --- 合格実績・受講生の声 --- */
.aoi-essay-voice {
  padding: 70px 0;
  background: linear-gradient(180.62deg, var(--clever-color-bg-light, #f1f8fa) 30%, #ffffff 100%);
}
.aoi-essay-achievement {
  margin-bottom: 115px;
}
.aoi-essay-voice__voices {
  text-align: center;
}
.aoi-essay-voice__voices-heading {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 26px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 0 0 40px;
  text-align: center;
}
.aoi-essay-voice__more {
  display: flex;
  justify-content: center;
  margin-top: 32px;
}
.aoi-essay-voice__more-btn {
  display: inline-flex;
  align-items: center;
  gap: 26px;
  padding: 20px 30px;
  border: 1px solid var(--clever-color-primary, #1c4660);
  border-radius: 10px;
  background: transparent;
  color: var(--clever-color-primary, #1c4660);
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  letter-spacing: 0.1em;
  text-decoration: none;
  line-height: 1.76;
  white-space: nowrap;
  transition: background 0.2s, color 0.2s;
}
.aoi-essay-voice__more-btn:hover {
  background: var(--clever-color-primary, #1c4660);
  color: #ffffff;
}
.aoi-essay-voice__more-arrow {
  font-size: 14px;
}

/* --- 料金案内 --- */
.aoi-essay-price {
  padding: 70px 0;
  background: linear-gradient(0.5deg, var(--clever-color-bg-light, #f1f8fa) 22%, #ffffff 103%);
}
.aoi-essay-price__section-label {
  display: flex;
  align-items: center;
  gap: 16px;
  max-width: 1214px;
  margin: 0 auto 40px;
}
.aoi-essay-price__section-bar {
  width: 8px;
  align-self: stretch;
  background: #17bfbd;
  border-radius: 2px;
  flex-shrink: 0;
}
.aoi-essay-price__section-title {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 22px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 0;
}
.aoi-essay-price__row {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 41px;
  margin-bottom: 32px;
  max-width: 1210px;
  margin-left: auto;
  margin-right: auto;
}
.aoi-essay-price__row--narrow {
  grid-template-columns: repeat(3, 1fr);
  max-width: 1210px;
}
.aoi-essay-price__row--narrow .aoi-essay-price__card {
  grid-column: 1;
}
.aoi-essay-price__card {
  background: #ffffff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 16px -2px rgba(0,0,0,0.04);
}
.aoi-essay-price__card-header {
  background: var(--clever-color-primary, #1c4660);
  color: #ffffff;
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.1em;
  line-height: 1.4;
  padding: 20px 30px;
  min-height: 90px;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.aoi-essay-price__card-header small {
  font-size: 14px;
  font-weight: 500;
}
.aoi-essay-price__card-body {
  padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 10px;
  align-items: center;
  justify-content: center;
  min-height: 200px;
  text-align: center;
}
.aoi-essay-price__amount {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 20px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 0;
}
.aoi-essay-price__amount-note {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 20px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 0;
}
.aoi-essay-price__amount-sub {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 0;
}
.aoi-essay-price__includes {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 20px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.4;
  text-align: left;
}
.aoi-essay-price__includes p {
  margin: 0;
  white-space: pre;
}
.aoi-essay-price__includes-note {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 0;
}
.aoi-essay-price__note-box {
  background: #ffffff;
  border: 1px solid #f1f5f9;
  border-radius: 12px;
  padding: 57px 41px 41px;
  margin-top: 8px;
  max-width: 1210px;
  margin-left: auto;
  margin-right: auto;
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.02);
}
.aoi-essay-price__note-box p {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0 0 16px;
}
.aoi-essay-price__note-box p:last-child {
  margin-bottom: 0;
}
.aoi-essay-price__note-box a {
  color: #17bfbd;
  text-decoration: underline;
  text-underline-offset: 2px;
}

/* --- サービスフロー --- */
.aoi-essay-flow {
  padding: 70px 0;
  background: var(--clever-color-bg-light, #f1f8fa);
}
.aoi-essay-flow__steps {
  display: flex;
  gap: 30px;
  justify-content: center;
}
.aoi-essay-flow__step {
  background: #ffffff;
  border-radius: 12px;
  padding: 20px;
  width: 280px;
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.aoi-essay-flow__step-img {
  width: 100%;
  height: 231px;
  border-radius: 12px;
  overflow: hidden;
  flex-shrink: 0;
}
.aoi-essay-flow__step-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aoi-essay-flow__step-num {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 4px;
  color: #17bfbd;
  line-height: 0;
}
.aoi-essay-flow__step-label {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.1em;
  line-height: 1.4;
}
.aoi-essay-flow__step-no {
  font-family: 'Allan', cursive;
  font-size: 48px;
  font-weight: 400;
  line-height: 40px;
  width: 60px;
}
.aoi-essay-flow__step-title {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.8;
  text-align: center;
  margin: 0;
}
.aoi-essay-flow__step-sep {
  border: none;
  border-top: 1px solid #e5e5e5;
  margin: 0;
}
.aoi-essay-flow__step-text {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: var(--clever-color-primary, #1c4660);
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0;
}

/* --- FAQ --- */
.aoi-essay-faq {
  padding: 70px 0;
  background: var(--clever-color-bg-light, #f1f8fa);
}
.aoi-essay-faq .aoi-service-new-faq__list {
  max-width: 1060px;
  margin: 0 auto;
}

/* --- レスポンシブ --- */
@media (max-width: 1100px) {
  .aoi-essay-flow__steps {
    flex-wrap: wrap;
  }
  .aoi-essay-price__row {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}
@media (max-width: 767px) {
  .aoi-essay-feature-card {
    flex-direction: column;
  }
  .aoi-essay-feature-card__media {
    flex: none;
    width: 100%;
    height: 200px;
  }
  .aoi-essay-courses__title {
    white-space: normal;
  }
  .aoi-essay-courses__imgs {
    flex-direction: column;
  }
  .aoi-essay-courses__imgs img {
    width: 100%;
    height: 200px;
  }
  .aoi-essay-price__row {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .aoi-essay-price__row--narrow {
    grid-template-columns: 1fr;
  }
  .aoi-essay-flow__steps {
    flex-direction: column;
    align-items: center;
  }
  .aoi-essay-flow__step {
    width: 100%;
    max-width: 400px;
  }
}

/* ============================================================
 * 新専攻・最新入試対策 (.aoi-service-new-*)
 * Figma: 1900:17397
 * ============================================================ */

/* ---- 共通: コンテナ幅 ---- */
.aoi-service-new-concept__inner,
.aoi-service-new-feature__inner,
.aoi-service-new-courses__inner,
.aoi-service-new-lesson__inner,
.aoi-service-new-voice__inner,
.aoi-service-new-flow__inner,
.aoi-service-new-faq__inner {
  max-width: var(--clever-container-width, 1160px);
  margin-right: auto;
  margin-left: auto;
  padding-right: 20px;
  padding-left: 20px;
}

/* ---- 共通: セクションヘッダー ---- */
.aoi-service-new-concept__header,
.aoi-service-new-feature__header,
.aoi-service-new-courses__header,
.aoi-service-new-lesson__header,
.aoi-service-new-voice__header,
.aoi-service-new-flow__header,
.aoi-service-new-faq__header {
  text-align: center;
  margin-bottom: 48px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 8px;
}

.aoi-service-new-concept__ja,
.aoi-service-new-feature__ja,
.aoi-service-new-courses__ja,
.aoi-service-new-lesson__ja,
.aoi-service-new-voice__ja,
.aoi-service-new-flow__ja,
.aoi-service-new-faq__heading-ja {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 26px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 0;
  order: 1;
}

.aoi-service-new-concept__en,
.aoi-service-new-feature__en,
.aoi-service-new-courses__en,
.aoi-service-new-lesson__en,
.aoi-service-new-voice__en,
.aoi-service-new-flow__en,
.aoi-service-new-faq__heading-en {
  font-family: var(--clever-font-en, 'Oooh Baby'), cursive;
  font-size: 24px;
  color: #17bfbd;
  margin: 0;
  line-height: 1;
  order: 2;
}

/* ============================================================
 * コンセプトセクション (1900:17417)
 * ============================================================ */
.aoi-service-new-concept {
  padding: 70px 0;
  background: var(--clever-color-bg-light, #f1f8fa);
}
.aoi-service-new-concept__card {
  max-width: 832px;
  margin: 0 auto;
  background: #ffffff;
  border: 1px solid #f1f5f9;
  border-radius: 12px;
  padding: 41px;
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.02);
}
.aoi-service-new-concept__card p {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0;
}

/* ============================================================
 * 入試の特徴 (1900:17431)
 * ============================================================ */
.aoi-service-new-feature {
  padding: 70px 0;
  background: var(--clever-color-bg-light, #f1f8fa);
}
.aoi-service-new-feature__card {
  max-width: 832px;
  margin: 0 auto;
  background: #ffffff;
  border: 1px solid #f1f5f9;
  border-radius: 12px;
  padding: 41px;
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.02);
}
.aoi-service-new-feature__card p {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0 0 0.5em;
}
.aoi-service-new-feature__card p:last-child {
  margin-bottom: 0;
}

/* ============================================================
 * 主な大学・コース (1900:17443)
 * ============================================================ */
.aoi-service-new-courses {
  padding: 70px 0;
  background: var(--clever-color-bg-light, #f1f8fa);
}
.aoi-service-new-courses__list {
  max-width: 950px;
  margin: 0 auto;
  display: flex;
  flex-direction: column;
  gap: 40px;
}
.aoi-service-new-courses__card {
  background: #ffffff;
  border-radius: 12px;
  overflow: hidden;
}
.aoi-service-new-courses__card--featured {
  display: flex;
  flex-direction: row;
  gap: 30px;
  padding: 30px;
  align-items: stretch;
}
.aoi-service-new-courses__card-img {
  flex: 0 0 320px;
  border-radius: 12px;
  overflow: hidden;
}
.aoi-service-new-courses__card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aoi-service-new-courses__card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 16px;
  justify-content: center;
}
.aoi-service-new-courses__card-title {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.8;
  margin: 0;
}
.aoi-service-new-courses__card-sep {
  border: none;
  border-top: 1px solid #e5e5e5;
  margin: 0;
  width: 100%;
}
.aoi-service-new-courses__card-text {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0;
}
.aoi-service-new-courses__card-btn {
  margin-top: 4px;
}
.aoi-service-new-courses__card--others {
  padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.aoi-service-new-courses__others-title {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.8;
  margin: 0;
}
.aoi-service-new-courses__others-list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 24px;
}
.aoi-service-new-courses__others-list li {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 18px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.4;
}

@media (max-width: 767px) {
  .aoi-service-new-courses__card--featured {
    flex-direction: column;
  }
  .aoi-service-new-courses__card-img {
    flex: none;
    width: 100%;
    height: 200px;
  }
}

/* ============================================================
 * レッスンのご案内 (1900:17475)
 * ============================================================ */
.aoi-service-new-lesson {
  padding: 70px 0;
  background: var(--clever-color-bg-light, #f1f8fa);
}

/* レッスンカード2列 */
.aoi-service-new-lesson__cards {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 36px;
  margin-bottom: 70px;
}
.aoi-service-new-lesson__card {
  background: #ffffff;
  border-radius: 12px;
  padding: 30px;
  display: flex;
  flex-direction: column;
  gap: 30px;
}
.aoi-service-new-lesson__card-img {
  width: 100%;
  height: 231px;
  border-radius: 12px;
  overflow: hidden;
  flex-shrink: 0;
}
.aoi-service-new-lesson__card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aoi-service-new-lesson__card-body {
  display: flex;
  flex-direction: column;
  gap: 16px;
  flex: 1;
}
.aoi-service-new-lesson__card-num-row {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  line-height: 0;
}
.aoi-service-new-lesson__card-num {
  font-family: 'Allan', cursive;
  font-size: 48px;
  color: #17bfbd;
  line-height: 40px;
  flex-shrink: 0;
  width: 60px;
}
.aoi-service-new-lesson__card-title {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.8;
  margin: 0;
}
.aoi-service-new-lesson__card-sep {
  border: none;
  border-top: 1px solid #e5e5e5;
  margin: 0;
}
.aoi-service-new-lesson__card-text {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0;
  flex: 1;
}
.aoi-service-new-lesson__card-cta {
  margin-top: auto;
}

/* 料金システム */
.aoi-service-new-lesson__price-wrap {
  max-width: 1210px;
  margin: 0 auto 36px;
  display: flex;
  flex-direction: column;
  gap: 36px;
}
.aoi-service-new-lesson__price-heading-row {
  display: flex;
  align-items: center;
  gap: 16px;
}
.aoi-service-new-lesson__price-accent {
  display: block;
  width: 8px;
  align-self: stretch;
  background: #17bfbd;
  border-radius: 2px;
  flex-shrink: 0;
}
.aoi-service-new-lesson__price-heading {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 22px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 0;
}
.aoi-service-new-lesson__price-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 41px;
}
.aoi-service-new-lesson__price-plan {
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.aoi-service-new-lesson__price-plan-head {
  background: #1c4660;
  color: #ffffff;
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.1em;
  line-height: 1.4;
  padding: 20px 30px;
  text-align: center;
  white-space: nowrap;
}
.aoi-service-new-lesson__price-plan-body {
  background: #ffffff;
  padding: 30px;
  flex: 1;
}
.aoi-service-new-lesson__price-plan-body p {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 20px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.4;
  margin: 0;
  text-align: center;
}
.aoi-service-new-lesson__price-plus {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 36px;
  line-height: 1;
  color: var(--clever-color-primary, #1c4660);
  text-align: center;
  margin: 4px 0;
}
.aoi-service-new-lesson__price-admission {
  width: 465px;
  max-width: 100%;
  border-radius: 24px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  margin-left: auto;
  margin-right: auto;
}
.aoi-service-new-lesson__price-admission-head {
  background: #17bfbd;
  color: #ffffff;
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 22px;
  letter-spacing: 0.1em;
  line-height: 1.4;
  padding: 18px 30px;
  text-align: center;
}
.aoi-service-new-lesson__price-admission-body {
  background: #ffffff;
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 30px;
  color: #17bfbd;
  letter-spacing: 0.16em;
  line-height: 1.4;
  padding: 24px 30px;
  text-align: center;
}

/* 備考テキスト */
.aoi-service-new-lesson__note-card {
  max-width: 832px;
  margin: 0 auto;
  background: #ffffff;
  border: 1px solid #f1f5f9;
  border-radius: 12px;
  padding: 41px 41px 57px;
  box-shadow: 0 10px 15px -3px rgba(0,0,0,0.02);
}
.aoi-service-new-lesson__note-card p {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0;
}
.aoi-service-new-lesson__note-card a {
  color: #1c4660;
  text-decoration: underline;
}
.aoi-service-new-lesson__note-card a:hover {
  text-decoration: none;
}

@media (max-width: 899px) {
  .aoi-service-new-lesson__cards {
    grid-template-columns: 1fr;
  }
  .aoi-service-new-lesson__price-grid {
    grid-template-columns: 1fr;
    gap: 24px;
  }
  .aoi-service-new-lesson__price-admission {
    max-width: 100%;
    align-self: stretch;
  }
}

/* ============================================================
 * 合格実績・受講生の声 (1900:17547)
 * ============================================================ */
.aoi-service-new-voice {
  padding: 70px 0;
  background: var(--clever-color-bg-light, #f1f8fa);
  overflow: hidden;
}

/* ============================================================
 * サービスフロー (1900:17560)
 * ============================================================ */
.aoi-service-new-flow {
  padding: 70px 0;
  background: var(--clever-color-bg-light, #f1f8fa);
}
.aoi-service-new-flow__steps {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 24px;
}
.aoi-service-new-flow__step {
  background: #ffffff;
  border-radius: 12px;
  padding: 20px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  text-align: center;
  box-shadow: 0 4px 16px -2px rgba(0,0,0,0.06);
}
.aoi-service-new-flow__step-img {
  width: 100%;
  height: 231px;
  border-radius: 12px;
  overflow: hidden;
  flex-shrink: 0;
}
.aoi-service-new-flow__step-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.aoi-service-new-flow__step-num {
  display: flex;
  align-items: center;
  gap: 4px;
  color: #17bfbd;
  justify-content: center;
}
.aoi-service-new-flow__step-label {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.08em;
  line-height: 1.4;
}
.aoi-service-new-flow__step-no {
  font-family: 'Allan', cursive;
  font-size: 48px;
  font-weight: 400;
  line-height: 40px;
  width: 60px;
}
.aoi-service-new-flow__step-title {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.8;
  margin: 0;
}
.aoi-service-new-flow__step-sep {
  width: 100%;
  border: none;
  border-top: 1px solid #e5e5e5;
  margin: 0;
}
.aoi-service-new-flow__step-text {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0;
}
@media (max-width: 899px) {
  .aoi-service-new-flow__steps {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (max-width: 599px) {
  .aoi-service-new-flow__steps {
    grid-template-columns: 1fr;
  }
}

/* ============================================================
 * よくある質問 (1900:17621)
 * ============================================================ */
.aoi-service-new-faq {
  padding: 70px 0;
  background: var(--clever-color-bg-light, #f1f8fa);
}
.aoi-service-new-faq__list {
  max-width: 1060px;
  margin: 0 auto 64px;
  display: flex;
  flex-direction: column;
  gap: 36px;
}
.aoi-service-new-faq__item {
  background: #ffffff;
  overflow: hidden;
}
.aoi-service-new-faq__item summary {
  list-style: none;
}
.aoi-service-new-faq__item summary::-webkit-details-marker {
  display: none;
}
.aoi-service-new-faq__q {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 16px;
  padding: 28px;
  cursor: pointer;
}
.aoi-service-new-faq__q-prefix {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 30px;
  color: #17bfbd;
  letter-spacing: 0.16em;
  flex-shrink: 0;
  width: 45px;
}
.aoi-service-new-faq__q-text {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 20px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.8;
  flex: 1;
}
.aoi-service-new-faq__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  position: relative;
  overflow: hidden;
}
.aoi-service-new-faq__icon::before,
.aoi-service-new-faq__icon::after {
  content: '';
  position: absolute;
  background: #1c4660;
  border-radius: 2px;
}
.aoi-service-new-faq__icon::before {
  width: 24px;
  height: 2.5px;
  top: calc(50% - 1.25px);
  left: calc(50% - 12px);
}
.aoi-service-new-faq__icon::after {
  width: 2.5px;
  height: 24px;
  top: calc(50% - 12px);
  left: calc(50% - 1.25px);
  transition: transform 0.2s ease;
}
.aoi-service-new-faq__item[open] .aoi-service-new-faq__icon::after {
  transform: scaleY(0);
}
@keyframes aoi-faq-open {
  from { opacity: 0; transform: translateY(-6px); }
  to   { opacity: 1; transform: translateY(0); }
}
@keyframes aoi-faq-close {
  from { opacity: 1; transform: translateY(0); }
  to   { opacity: 0; transform: translateY(-6px); }
}
.aoi-service-new-faq__item[open] .aoi-service-new-faq__a {
  animation: aoi-faq-open 0.25s ease forwards;
}
.aoi-service-new-faq__a.is-closing {
  animation: aoi-faq-close 0.22s ease forwards;
  pointer-events: none;
}
.aoi-service-new-faq__a {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 28px;
  border-top: 2px solid #e5e5e5;
}
.aoi-service-new-faq__a-prefix {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 700;
  font-size: 26px;
  color: #1c4660;
  letter-spacing: 0.1em;
  flex-shrink: 0;
  width: 45px;
  line-height: 1.4;
}
.aoi-service-new-faq__a-text {
  font-family: var(--clever-font-sans, 'Noto Sans JP'), sans-serif;
  font-weight: 500;
  font-size: 16px;
  color: #1c4660;
  letter-spacing: 0.1em;
  line-height: 1.76;
  margin: 0;
}

/* ============================================================
 * Lesson ページ: 対応講師ラッパー (TOPコンポーネント流用時の背景補完)
 * 旧 .aoi-lesson-instructors の solid #f1f8fa を引き継ぎ、
 * 隣接セクションとの白/青段差を解消する
 * ============================================================ */
.aoi-page-private-lesson .aoi-top-teachers-wrap {
  background: #f1f8fa;
  padding-top: 70px;
  padding-bottom: 70px;
  /* 装飾 (top-teachers-left.svg) が次セクション (合格実績) に侵入しないようクリップ */
  overflow: hidden;
}

/* ============================================================
 * Section 5: 料金案内 (.aoi-lesson-price)
 * Figma: 1840:16641
 * 直前の results が white で終わるため、price は white→blue→white の
 * 単純グラデから white 始まりに変更し、results との境目を揃える
 * ============================================================ */
.aoi-lesson-price {
  padding: 100px 0 120px;
  position: relative;
  isolation: isolate;
  overflow: hidden;
  background: linear-gradient(180deg, #ffffff 0%, #f1f8fa 60%, #f1f8fa 100%);
  --aoi-design-w: min(100vw, 1512px);
}
/* Figma 1840:16642 (Subtract 1154x1154 #e4f4f9, rel(-484,409) in 1512x1698 frame) */
.aoi-lesson-price__bg {
  position: absolute;
  pointer-events: none;
  z-index: -1;
  width: calc(1154 * var(--aoi-design-w) / 1512);
  height: auto;
  left: calc(-484 * var(--aoi-design-w) / 1512);
  top: calc(409 * var(--aoi-design-w) / 1512);
}
.aoi-lesson-price > .clever-container {
  position: relative;
  z-index: 1;
}
@media (max-width: 767px) {
  .aoi-lesson-price__bg {
    display: none;
  }
}
.aoi-lesson-price__header {
  text-align: center;
  margin-bottom: 56px;
}
.aoi-lesson-price__title {
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-weight: 700;
  font-size: 26px;
  line-height: 1.4;
  letter-spacing: 0.1em;
  color: #1c4660;
  margin: 0 0 13px;
}
.aoi-lesson-price__en {
  font-family: "Oooh Baby", "Zen Antique", cursive;
  font-weight: 400;
  font-size: 24px;
  line-height: 1;
  color: #17bfbd;
  margin: 0;
}
.aoi-lesson-price__intro {
  max-width: 946px;
  margin: 0 auto 70px;
  background: #ffffff;
  border-radius: 12px;
  padding: 56px 40px 40px;
  box-shadow: 0 4px 24px -4px rgba(0,0,0,0.06);
}
.aoi-lesson-price__intro p {
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.76;
  letter-spacing: 0.08em;
  color: #1c4660;
  margin: 0;
  text-align: left;
}
.aoi-lesson-price__system {
  max-width: 1214px;
  margin: 0 auto 70px;
}
.aoi-lesson-price__subheading {
  display: flex;
  align-items: center;
  gap: 16px;
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-weight: 700;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 0.1em;
  color: #1c4660;
  margin: 0 0 36px;
}
.aoi-lesson-price__subheading-bar {
  display: inline-block;
  width: 8px;
  height: 31px;
  background: #17bfbd;
  flex-shrink: 0;
}
.aoi-lesson-price__plans {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 41px;
  margin-bottom: 20px;
}
.aoi-lesson-price-plan {
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 4px 16px -4px rgba(0,0,0,0.08);
}
.aoi-lesson-price-plan__header {
  background: #1c4660;
  color: #ffffff;
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-weight: 700;
  font-size: 18px;
  line-height: 1.4;
  letter-spacing: 0.1em;
  text-align: center;
  padding: 20px 16px;
}
.aoi-lesson-price-plan__body {
  background: #ffffff;
  color: #1c4660;
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-weight: 500;
  font-size: 20px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  text-align: center;
  padding: 30px 16px;
}
.aoi-lesson-price__note {
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-weight: 500;
  font-size: 14px;
  line-height: 1.4;
  color: #1c4660;
  margin: 0 0 36px;
  text-align: left;
}
.aoi-lesson-price__plus {
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-weight: 700;
  font-size: 80px;
  line-height: 1;
  color: #17bfbd;
  text-align: center;
  margin: 16px 0;
  user-select: none;
}
.aoi-lesson-price-entry {
  width: 465px;
  max-width: 100%;
  margin: 0 auto;
  border-radius: 24px;
  overflow: hidden;
  box-shadow: 0 4px 16px -4px rgba(0,0,0,0.08);
}
.aoi-lesson-price-entry__header {
  background: #17bfbd;
  color: #ffffff;
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-weight: 700;
  font-size: 22px;
  line-height: 1.4;
  letter-spacing: 0.1em;
  text-align: center;
  padding: 16px 16px;
}
.aoi-lesson-price-entry__body {
  background: #ffffff;
  color: #17bfbd;
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-weight: 700;
  font-size: 30px;
  line-height: 1.4;
  letter-spacing: 0.1em;
  text-align: center;
  padding: 26px 16px;
}
.aoi-lesson-price__features {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 36px;
  max-width: 1212px;
  margin: 0 auto;
}
.aoi-lesson-price-feature {
  background: #ffffff;
  border-radius: 12px;
  padding: 30px;
  box-shadow: 0 4px 16px -4px rgba(0,0,0,0.06);
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.aoi-lesson-price-feature__title {
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-weight: 700;
  font-size: 20px;
  line-height: 1.4;
  letter-spacing: 0.05em;
  color: #1c4660;
  margin: 0;
}
.aoi-lesson-price-feature__sep {
  border: 0;
  border-top: 1px solid #e5e5e5;
  margin: 0;
}
.aoi-lesson-price-feature__text {
  font-family: "Noto Sans JP", "Noto Sans", sans-serif;
  font-weight: 500;
  font-size: 16px;
  line-height: 1.76;
  letter-spacing: 0.05em;
  color: #1c4660;
  margin: 0;
}

@media (max-width: 768px) {
  .aoi-lesson-price {
    padding: 60px 0 80px;
  }
  .aoi-lesson-price__intro {
    padding: 32px 24px 24px;
    margin-bottom: 48px;
  }
  .aoi-lesson-price__plans {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .aoi-lesson-price__features {
    grid-template-columns: 1fr;
    gap: 16px;
  }
  .aoi-lesson-price-entry {
    width: 100%;
  }
  .aoi-lesson-price__plus {
    font-size: 56px;
    margin: 8px 0;
  }
}
