﻿/* KIRIHARA Online Academy - re LP shared styles (2026 design)
 * Edit this file. Referenced from WTE/template/include/lp-re/lp_re_styles.html
 */
    :root {
      --bg: #ffffff;
      --surface: #ffffff;
      --text: #1f2937;
      --muted: #607086;
      --brand: #00ada9;
      --brand-dark: #06807d;
      --accent: #ffda57;
      --danger: #e34b4b;
      --radius: 16px;
      --shadow: 0 6px 18px rgb(15 23 42 / 4%);
      --max: 1120px;
    }

    body#user {
      margin: 0;
      background: var(--bg);
      color: var(--text);
      font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", "Yu Gothic", sans-serif;
      font-size: 15px;
      line-height: 1.75;
      overflow-x: hidden;
    }

    .re-header {
      position: sticky;
      top: 0;
      z-index: 1000;
      width: 100%;
      left: 0;
      background: #fff;
      border-bottom: 1px solid #e9edf2;
    }

    .re-header__inner {
      height: 72px;
      display: grid;
      grid-template-columns: auto minmax(0, 1fr) auto;
      align-items: center;
      gap: 12px;
    }

    .re-logo {
      display: inline-flex;
      align-items: center;
      text-decoration: none;
      white-space: nowrap;
    }

    .re-logo img {
      width: 154px;
      max-width: 100%;
      height: auto;
      display: block;
    }

    .re-header__actions {
      display: flex;
      gap: 8px;
      align-items: center;
      white-space: nowrap;
    }

    .re-action {
      font-size: 14px;
      font-weight: 700;
      text-decoration: none;
      border-radius: 999px;
      padding: 10px 16px;
      border: 1px solid #d8e1ea;
      line-height: 1;
      transition: transform .15s ease, box-shadow .2s ease, background-color .2s ease, border-color .2s ease;
    }

    .re-action--ghost {
      color: #425466;
      background: #fff;
    }

    .re-action--primary {
      color: #fff;
      background: #e34b4b;
      border-color: #e34b4b;
    }

    .re-action:hover {
      transform: translateY(-1px);
      box-shadow: 0 6px 16px rgb(15 23 42 / 10%);
    }

    .re-action--ghost:hover {
      background: #f4f7fa;
      border-color: #c9d4df;
    }

    .re-action--primary:hover {
      background: #d64040;
      border-color: #d64040;
    }

    .re-menu {
      min-width: 0;
      position: relative;
      justify-self: center;
      width: 100%;
    }

    .re-menu ul {
      list-style: none;
      margin: 0;
      padding: 0;
    }

    .re-menu__lv1 {
      display: flex;
      align-items: center;
      justify-content: center;
      gap: 2px;
    }

    .re-menu__lv1 > li {
      position: relative;
      padding-bottom: 8px;
      margin-bottom: -8px;
    }

    .re-menu__lv1 > li > a {
      text-align: center;
      text-decoration: none;
      color: #232323;
      font-size: 14px;
      font-weight: 500;
      white-space: nowrap;
      padding: 6px 8px;
      border-radius: 6px;
      line-height: 1.2;
      display: inline-block;
      position: relative;
      transition: background-color .2s ease, color .2s ease;
    }

    .re-menu__lv1 > li > a::after {
      content: "";
      position: absolute;
      left: 8px;
      right: 8px;
      bottom: -3px;
      height: 2px;
      background: var(--brand);
      border-radius: 2px;
      transform: scaleX(0);
      transform-origin: center;
      transition: transform .2s ease;
    }

    .re-menu__lv1 > li:has(> ul) > a::before {
      content: "▾";
      margin-right: 4px;
      font-size: 18px;
      color: #00ada9;
    }

    .re-menu__lv1 > li > a:hover,
    .re-menu__lv1 > li:hover > a,
    .re-menu__lv1 > li:focus-within > a {
      background: #f8fbff;
      color: #111;
    }

    .re-menu__lv1 > li > a:hover::after,
    .re-menu__lv1 > li:hover > a::after,
    .re-menu__lv1 > li:focus-within > a::after {
      transform: scaleX(1);
    }

    .re-menu__lv1 > li > ul {
      position: absolute;
      top: 100%;
      left: 0;
      min-width: 280px;
      max-width: 420px;
      background: #fff;
      border: 1px solid #e4eaf0;
      border-radius: 10px;
      box-shadow: 0 14px 28px rgb(15 23 42 / 12%);
      padding: 8px 0;
      z-index: 1200;
      display: none;
      margin-top: 0;
    }

    .re-menu__lv1 > li:hover > ul,
    .re-menu__lv1 > li:focus-within > ul {
      display: block;
    }

    .re-menu__lv1 > li > ul > li {
      position: relative;
    }

    .re-menu__lv1 > li > ul > li > a {
      display: block;
      padding: 9px 14px;
      color: #253648;
      font-size: 13px;
      line-height: 1.45;
      text-decoration: none;
      white-space: normal;
      transition: background-color .15s ease, padding-left .15s ease;
    }

    .re-menu__lv1 > li > ul > li > a:hover,
    .re-menu__lv1 > li > ul > li:hover > a {
      background: #f7fbff;
      padding-left: 16px;
    }

    .re-menu__lv1 > li > ul > li > ul {
      position: absolute;
      top: -9px;
      left: calc(100% - 4px);
      min-width: 200px;
      background: #fff;
      border: 1px solid #e4eaf0;
      border-radius: 10px;
      box-shadow: 0 14px 28px rgb(15 23 42 / 12%);
      padding: 8px 0;
      display: none;
      z-index: 1300;
    }

    .re-menu__lv1 > li > ul > li:hover > ul,
    .re-menu__lv1 > li > ul > li:focus-within > ul {
      display: block;
    }

    .re-menu__lv1 > li > ul > li > ul a {
      display: block;
      padding: 8px 12px;
      color: #334155;
      text-decoration: none;
      font-size: 12px;
      line-height: 1.4;
    }

    .re-menu__lv1 > li > ul > li > ul a:hover {
      background: #f7fbff;
    }

    .lp-main {
      padding-top: 0;
    }

    .lp-wrap {
      width: min(100% - 32px, var(--max));
      margin: 0 auto;
    }

    .lp-section {
      margin: 40px 0;
    }

    .lp-card {
      background: var(--surface);
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      border: 1px solid #ebf0f5;
    }

    .lp-card.grades {
      background: #edf8f6;
      border: 1px solid #9bd4d2;
    }

    .hero {
      overflow: hidden;
      border-radius: 0;
      background: linear-gradient(rgb(0 0 0 / 64%), rgb(0 0 0 / 26%)), var(--eiken1-lp-hero-image) center/cover no-repeat;
      color: #fff;
      padding: 56px 8vw;
      margin-top: 0;
      margin-bottom: 40px;
    }

    .lp-main > section.hero {
      box-sizing: border-box;
      min-height: clamp(260px, 42vw, 360px);
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: flex-start;
    }

    /* 英検・TOEIC 確認用LP（Eiken1re / Eiken2re / Toeicre）と AWD のみヒーローを高く */
    body.lp-re-hero-tall .lp-main > section.hero {
      min-height: 500px;
    }

    .hero h1 {
      margin: 0 0 12px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: clamp(1.9rem, 3vw, 3rem);
      line-height: 1.35;
      font-weight: 700;
    }

    .hero p {
      margin: 0;
      font-size: 16px;
      opacity: 0.95;
    }

    .lp-main > section.hero .fv-kicker {
      display: inline-block;
      margin: 0 0 0.75rem;
      padding: 0.35rem 0.75rem;
      font-size: 0.85rem;
      font-weight: 700;
      letter-spacing: 0.02em;
      color: #fff;
      opacity: 1;
      background: rgb(255 255 255 / 18%);
      border: 1px solid rgb(255 255 255 / 35%);
      border-radius: 999px;
    }

    .lp-main > section.hero .fv-sub {
      margin: 0.75rem 0 0;
      font-size: 1.05rem;
      line-height: 1.45;
      color: rgb(255 255 255 / 95%);
      opacity: 1;
    }

    .lp-main > section.hero .fv-sub + .fv-sub {
      margin-top: 0.35rem;
    }

    .hero-actions {
      margin-top: 22px;
      display: flex;
      gap: 12px;
      flex-wrap: wrap;
    }

    .lp-btn {
      display: inline-block;
      text-decoration: none;
      font-weight: 700;
      border-radius: 999px;
      padding: 12px 20px;
      transition: transform .15s ease, opacity .15s ease;
    }

    .lp-btn:hover {
      transform: translateY(-1px);
      opacity: 0.95;
      text-decoration: none;
    }

    .lp-btn-primary {
      background: var(--danger);
      color: #fff;
    }

    .lp-btn-secondary {
      background: rgb(255 255 255 / 16%);
      color: #fff;
      border: 1px solid rgb(255 255 255 / 35%);
    }

    .intro {
      padding: 8px 0 4px;
    }

    .intro-body {
      display: grid;
      grid-template-columns: 1.25fr 1fr;
      gap: 24px;
      align-items: center;
    }

    .intro h2,
    .grades h2,
    .reasons h2,
    .cta h2 {
      margin: 0 0 14px;
      font-size: clamp(2rem, 3vw, 3rem);
      line-height: 1.4;
      color: #0f172a;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
    }

    .intro h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      margin-bottom: 20px;
    }

    .grades h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 14px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .grades .lede {
      text-align: center;
      font-size: 15px;
      line-height: 1.75;
      margin: 0 0 18px;
      color: var(--text);
    }

    .grades .panel {
      text-align: center;
    }

    .grades .panel h3 {
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.3rem;
      font-weight: 700;
      line-height: 1.35;
      color: #0f172a;
    }

    .grades .panel p {
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
      text-align: left;
    }

    .grades .panel p.grades-course-links {
      font-size: 13px;
      line-height: 1.6;
      margin: 12px 0 0;
      text-align: center;
    }

    .grades .panel p.grades-course-links a {
      color: var(--brand-dark);
      text-decoration: none;
      font-weight: 600;
    }

    .grades .panel p.grades-course-links a:hover {
      text-decoration: underline;
    }

    .grades .grades-course-links__sep {
      margin: 0 8px;
      color: #94a3b8;
      font-weight: 400;
    }

    .grades .panel small {
      font-size: 13px;
      line-height: 1.6;
      color: #748398;
    }

    .grades .badge {
      font-size: 13px;
    }

    .concept-three h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 14px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .concept-three h2 strong {
      color: var(--brand-dark);
    }

    .concept-three .lede {
      text-align: center;
      font-size: 15px;
      line-height: 1.75;
      margin: 0 0 22px;
      color: var(--text);
    }

    .concept-three .panel {
      text-align: center;
    }

    .concept-three .panel h3 {
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.2rem;
      font-weight: 700;
      line-height: 1.35;
      color: #0f172a;
      margin: 0 0 10px;
    }

    .concept-three .panel p {
      font-size: 14px;
      line-height: 1.7;
      color: var(--text);
      text-align: left;
    }

    .concept-three__icon {
      width: 100px;
      height: 100px;
      margin: 0 auto 12px;
      border-radius: 50%;
      display: block;
      object-fit: cover;
    }

    .concept-three__closing {
      text-align: center;
      font-size: 15px;
      line-height: 1.75;
      margin: 22px 0 0;
      color: var(--text);
    }

    .concept-three .intro-cta {
      margin-top: 18px;
    }

    .intro p {
      margin: 0 0 14px;
      color: var(--text);
      font-size: 15px;
    }

    .hl {
      font-weight: 700;
      background: linear-gradient(transparent 55%, var(--accent) 55%);
      padding: 0 2px;
    }

    .intro img {
      width: 100%;
      height: auto;
      border-radius: 14px;
      display: block;
    }

    .intro-cta {
      text-align: center;
      margin-top: 14px;
    }

    .grades,
    .reasons,
    .cta {
      padding: 28px;
    }

    .lede {
      color: var(--muted);
      margin: 0 0 18px;
      font-size: 1.55rem;
    }

    .fit {
      padding: 24px 28px;
    }

    .fit h2 {
      margin: 0 0 14px;
      text-align: center;
      font-size: clamp(1.6rem, 2.2vw, 2.4rem);
      line-height: 1.4;
      color: #0f172a;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
    }

    .fit-list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: grid;
      grid-template-columns: 1fr;
      gap: 8px;
    }

    .fit-list li {
      position: relative;
      font-size: 15px;
      color: #253648;
      background: #fff;
      border: 1px solid #e7edf4;
      border-radius: 10px;
      padding: 10px 12px 10px 40px;
    }

    .fit-list li::before {
      content: "✓";
      position: absolute;
      left: 12px;
      top: 50%;
      transform: translateY(-50%);
      width: 18px;
      height: 18px;
      border-radius: 50%;
      background: #00ada9;
      color: #fff;
      font-size: 12px;
      font-weight: 700;
      line-height: 18px;
      text-align: center;
    }

    .fit-inline {
      margin-top: 22px;
    }

    .fit-box {
      border: 1px solid #e7edf4;
      border-radius: 10px;
      background: #fff;
      padding: 10px 12px;
    }

    .fit-inline h3 {
      margin: 0 0 10px;
      font-size: 1.3rem;
      line-height: 1.4;
      color: #0f172a;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
    }

    .fit-list--compact {
      gap: 0;
      padding: 0;
    }

    .fit-list--compact li {
      font-size: 13px;
      padding: 6px 6px 6px 30px;
      border: 0;
      border-radius: 0;
      background: transparent;
      color: var(--text);
    }

    .fit-list--compact li::before {
      width: 15px;
      height: 15px;
      left: 10px;
      font-size: 10px;
      line-height: 15px;
    }

    .grid3 {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 16px;
    }

    .grid2 {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
    }

    .panel {
      border: 1px solid #e7edf4;
      border-radius: 14px;
      padding: 18px;
      background: #fff;
    }

    .panel h3 {
      margin: 0 0 8px;
      font-size: 1.3rem;
      color: #0f172a;
    }

    .panel p {
      margin: 0;
      font-size: 1.5rem;
      color: #334155;
    }

    .panel small {
      display: block;
      margin-bottom: 8px;
      color: #748398;
      font-size: 1.25rem;
    }

    .badge {
      display: inline-block;
      background: #e6fbfb;
      color: var(--brand-dark);
      border-radius: 999px;
      padding: 3px 10px;
      font-size: 1.2rem;
      font-weight: 700;
      margin-bottom: 8px;
    }

    .list {
      margin: 14px 0 0;
      padding: 0 0 0 18px;
    }

    .list li {
      margin-bottom: 6px;
      font-size: 1.45rem;
      color: #334155;
    }

    .flow-re.lp-section {
      margin-top: 0;
      margin-bottom: 0;
    }

    .flow-re {
      padding: 0;
    }

    .flow-re h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 14px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .flow-re__lede {
      text-align: center;
      margin: 0 0 18px;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
    }

    .flow-re .flow-steps {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 10px;
      margin-top: 0;
    }

    .flow-re .step {
      background: #fff;
      border: 1px solid #e7edf4;
      border-radius: 12px;
      padding: 14px;
      text-align: center;
    }

    .flow-re .step b {
      display: block;
      margin-bottom: 6px;
      color: var(--brand-dark);
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 0.02em;
    }

    .flow-re .step span {
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
    }

    .flow-step-icon {
      display: block;
      width: 64px;
      height: 64px;
      margin: 0 auto 10px;
      object-fit: contain;
    }

    .flow-re.flow-re--school.lp-section {
      margin-top: 48px;
      margin-bottom: 0;
      padding-top: 8px;
    }

    .flow-re--school h2 .hl {
      color: var(--brand);
    }

    .flow-re--school .step {
      display: flex;
      flex-direction: column;
      align-items: stretch;
      text-align: center;
      padding: 18px 14px 16px;
    }

    .flow-re--school .flow-step-icon {
      width: 72px;
      height: 72px;
      margin-bottom: 12px;
    }

    .flow-re--school .flow-re__step-label {
      display: block;
      margin-bottom: 8px;
      color: var(--brand-dark);
      font-size: 13px;
      font-weight: 700;
      letter-spacing: 0.04em;
    }

    .flow-re--school .flow-re__step-label span {
      font-size: 1.15em;
    }

    .flow-re--school .flow-re__step-title {
      margin: 0 0 10px;
      font-size: 1.05rem;
      font-weight: 700;
      line-height: 1.45;
      color: #0f172a;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
    }

    .flow-re--school .flow-re__step-desc {
      margin: 0;
      font-size: 14px;
      line-height: 1.75;
      color: var(--text);
      text-align: left;
    }

    .flow-re--school .flow-re__actions {
      display: flex;
      flex-wrap: wrap;
      justify-content: center;
      align-items: center;
      gap: 16px;
      width: 100%;
      max-width: 640px;
      margin: 28px auto 0;
      text-align: center;
    }

    .flow-re--school .flow-re__actions .lp-btn {
      flex: 0 0 auto;
      min-width: 240px;
      max-width: 100%;
      margin: 0;
      text-align: center;
    }

    .flow-re--school .flow-re__actions .lp-btn-secondary {
      background: #fff;
      color: var(--brand-dark);
      border: 2px solid var(--brand);
      box-shadow: 0 2px 8px rgb(15 23 42 / 6%);
    }

    .flow-re--school .flow-re__actions .lp-btn-secondary:hover {
      background: #f0faf9;
      color: var(--brand-dark);
      opacity: 1;
    }

    @media (max-width: 767px) {
      .flow-re--school .flow-steps {
        grid-template-columns: 1fr;
      }
    }

    .cta {
      text-align: center;
      background: linear-gradient(180deg, #ffffff, #f8fbff);
    }

    .cta p {
      margin: 0 0 16px;
      color: #516173;
      font-size: 1.55rem;
    }

    .reasons-re-sep.reasons-re-sep--full {
      display: block;
      width: 100%;
      max-width: none;
      box-sizing: border-box;
      margin: 40px 0 28px;
      border: 0;
      height: 1px;
      background: #e2e8f0;
    }

    .supervisor-re__spiral {
      margin-top: 28px;
      padding-top: 24px;
      border-top: 1px solid rgb(155 212 210 / 55%);
    }

    .supervisor-re__spiral-title {
      margin: 0 0 12px;
      text-align: center;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: clamp(1.15rem, 1.8vw, 1.45rem);
      font-weight: 700;
      line-height: 1.4;
      color: #0f172a;
    }

    .supervisor-re__spiral-accent {
      color: var(--brand);
    }

    .supervisor-re__spiral-lede {
      margin: 0 0 20px;
      font-size: 15px;
      line-height: 1.75;
      color: #334155;
    }

    .supervisor-re__spiral-body {
      display: grid;
      grid-template-columns: minmax(140px, 32%) minmax(0, 1fr);
      gap: 16px 20px;
      align-items: center;
    }

    .supervisor-re__spiral-figure {
      margin: 0;
      max-width: 220px;
    }

    .supervisor-re__spiral-figure img {
      display: block;
      width: 100%;
      max-width: 220px;
      height: auto;
      border-radius: 10px;
    }

    .supervisor-re__spiral-powers {
      display: flex;
      flex-direction: column;
      gap: 10px;
      min-width: 0;
    }

    .supervisor-re__spiral-power {
      margin: 0;
      padding: 10px 12px;
      background: rgb(255 255 255 / 72%);
      border: 1px solid #d8ebe9;
      border-radius: 10px;
    }

    .supervisor-re__spiral-power-title {
      margin: 0 0 6px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1rem;
      font-weight: 700;
      line-height: 1.35;
      color: var(--brand-dark);
    }

    .supervisor-re__spiral-power-text {
      margin: 0;
      font-size: 13px;
      line-height: 1.65;
      color: #475569;
    }

    @media (max-width: 767px) {
      .supervisor-re__spiral-body {
        grid-template-columns: minmax(108px, 34%) minmax(0, 1fr);
        gap: 12px 14px;
        align-items: start;
      }

      .supervisor-re__spiral-figure,
      .supervisor-re__spiral-figure img {
        max-width: 160px;
      }

      .supervisor-re__spiral-power {
        padding: 8px 10px;
      }

      .supervisor-re__spiral-power-title {
        font-size: 0.92rem;
      }

      .supervisor-re__spiral-power-text {
        font-size: 12px;
        line-height: 1.55;
      }
    }

    .reasons-re {
      width: 100%;
      box-sizing: border-box;
    }

    .reasons-re .reasons-re-intro.lp-section {
      margin-top: 0;
      margin-bottom: 0;
    }

    .reasons-re-intro h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 22px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .reasons-re-items {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 44px 32px;
      margin-bottom: 0;
    }

    .reasons-re-items .reasons-re-item {
      margin: 0;
      padding: 24px 22px 28px;
      background: linear-gradient(180deg, #f4f7fa 0%, #fafbfc 100%);
      border: 1px solid #e2e8f0;
      border-radius: 14px;
    }

    .reasons-re-item__img {
      aspect-ratio: 3 / 2;
      border-radius: 12px;
      overflow: hidden;
      margin-bottom: 14px;
      background: #e8edf2;
    }

    .reasons-re-item__img img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .reasons-re-item h3 {
      margin: 0 0 10px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: var(--eiken1-reasons-re-item-h3-size, 1.3rem);
      font-weight: 700;
      line-height: 1.5;
      color: #0f172a;
    }

    .reasons-re-item p {
      margin: 0 0 10px;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
    }

    .reasons-re-item p:last-child {
      margin-bottom: 0;
    }

    @media (max-width: 920px) {
      .reasons-re-items {
        grid-template-columns: 1fr;
      }
    }

    .merits-jh-re-intro__title {
      margin: 0 0 10px;
      text-align: center;
      font-size: clamp(1.5rem, 2.5vw, 2.25rem);
      line-height: 1.45;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .merits-jh-re-intro__title strong {
      color: var(--brand-dark);
      font-weight: 700;
    }

    .merits-jh-re-intro > .merits-jh-re-lead {
      margin-top: 24px;
    }

    .merits-jh-re-em {
      color: var(--brand-dark);
      font-weight: 700;
    }

    .merits-jh-re__lede {
      margin: 0 0 24px;
      text-align: center;
      font-size: 16px;
      line-height: 1.65;
      color: var(--brand-dark);
      font-weight: 600;
    }

    .merits-jh-re-lead {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 28px;
      align-items: center;
    }

    .merits-jh-re-lead__text p {
      margin: 0 0 14px;
      font-size: 15px;
      line-height: 1.8;
      color: var(--text);
    }

    .merits-jh-re-lead__text p:last-child {
      margin-bottom: 0;
    }

    .merits-jh-re__more {
      margin-top: 12px !important;
      font-size: 14px !important;
    }

    .merits-jh-re__more a {
      color: var(--brand-dark);
      font-weight: 600;
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    .merits-jh-re__more a:hover {
      color: var(--brand);
    }

    .merits-jh-re-lead__img {
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: var(--shadow);
      border: 1px solid #ebf0f5;
    }

    .merits-jh-re-lead__img img {
      display: block;
      width: 100%;
      height: auto;
    }

    .merits-jh-re__subhead {
      margin: 0 0 22px;
      text-align: center;
      font-size: clamp(1.2rem, 2vw, 1.5rem);
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .merits-jh-re__subhead--after-lead {
      margin-top: 36px;
      margin-bottom: 22px;
    }

    .merits-jh-re__grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 20px;
    }

    .merits-jh-card {
      background: var(--surface);
      border-radius: var(--radius);
      border: 1px solid #ebf0f5;
      box-shadow: var(--shadow);
      overflow: hidden;
      display: flex;
      flex-direction: column;
    }

    .merits-jh-card__img {
      margin: 0;
      line-height: 0;
    }

    .merits-jh-card__img img {
      width: 100%;
      height: auto;
      display: block;
      object-fit: cover;
    }

    .merits-jh-card__title {
      margin: 0;
      padding: 14px 16px 6px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.05rem;
      font-weight: 700;
      line-height: 1.45;
      color: #0f172a;
    }

    .merits-jh-card__text {
      margin: 0;
      padding: 0 16px 16px;
      font-size: 14px;
      line-height: 1.7;
      color: var(--muted);
      flex: 1;
    }

    @media (max-width: 1100px) {
      .merits-jh-re__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 920px) {
      .merits-jh-re-lead {
        grid-template-columns: 1fr;
      }

      .merits-jh-re__grid {
        grid-template-columns: 1fr;
      }
    }

    .merits-jh-re-eiken2026 .eiken2026-re,
    .lp-wrap > .eiken2026-re {
      margin: 0;
      padding: 28px 24px 32px;
      background: linear-gradient(180deg, #f0faf9 0%, #fafcfd 100%);
      border: 1px solid #c5e8e4;
      border-radius: var(--radius);
      box-shadow: var(--shadow);
    }

    .eiken2026-re__maintitle {
      margin: 0 0 14px;
      text-align: center;
      font-size: clamp(1.5rem, 2.5vw, 2.25rem);
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      line-height: 1.45;
      color: #0f172a;
    }

    .eiken2026-re__intro {
      margin: 0 0 10px;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
      text-align: center;
    }

    .eiken2026-re__intro strong {
      font-weight: 700;
    }

    .eiken2026-re__cta {
      margin: 0 0 24px;
      text-align: center;
      font-size: 14px;
    }

    .eiken2026-re__cta--inline {
      margin: 0 0 16px;
    }

    .eiken2026-re__link {
      color: var(--brand-dark);
      font-weight: 700;
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    .eiken2026-re__link:hover {
      color: var(--brand);
    }

    .eiken2026-re__subhead {
      margin: 0 0 16px;
      font-size: clamp(1.15rem, 1.9vw, 1.4rem);
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      line-height: 1.4;
      color: #0f172a;
      text-align: center;
    }

    .eiken2026-re__subhead--fees {
      margin-top: 28px;
    }

    .eiken2026-re-tablewrap--fees {
      margin: 0 auto;
    }

    .eiken2026-re .eiken2026-re__subhead.eiken2026-re__subhead--repeat {
      margin: 30px 0 16px;
    }

    .eiken2026-re__rounds {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 16px;
    }

    .eiken2026-re-round {
      margin: 0;
      padding: 16px 16px 18px;
      background: #fff;
      border: 1px solid #e4eef0;
      border-radius: 12px;
      box-shadow: 0 4px 14px rgb(15 23 42 / 4%);
    }

    .eiken2026-re-round__title {
      margin: 0 0 12px;
      padding-bottom: 10px;
      border-bottom: 2px solid var(--brand);
      font-size: 1rem;
      font-weight: 700;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      color: var(--brand-dark);
      text-align: center;
    }

    .eiken2026-re-dl {
      margin: 0;
    }

    .eiken2026-re-dl__row {
      margin: 0 0 10px;
      padding: 0;
    }

    .eiken2026-re-dl__row:last-child {
      margin-bottom: 0;
    }

    .eiken2026-re-dl dt {
      margin: 0 0 2px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.02em;
      color: #607086;
      text-transform: none;
    }

    .eiken2026-re-dl dd {
      margin: 0;
      font-size: 13px;
      line-height: 1.6;
      color: var(--text);
    }

    .eiken2026-re-note {
      display: block;
      margin-top: 4px;
      font-size: 11px;
      font-weight: 500;
      color: #748398;
      line-height: 1.45;
    }

    .eiken2026-re-footnote {
      margin: 16px 0 0;
      font-size: 13px;
      line-height: 1.65;
      color: var(--muted);
      text-align: center;
    }

    .eiken2026-re-footnote--small {
      margin-top: 8px;
      font-size: 12px;
      text-align: left;
    }

    .eiken2026-re-footnote--schedule {
      margin-top: 8px;
      font-size: 12px;
      line-height: 1.65;
      text-align: center;
    }

    .eiken2026-re-footnote--schedule:first-of-type {
      margin-top: 16px;
    }

    .eiken2026-re-tablewrap--repeat + .eiken2026-re-footnote--schedule {
      margin-top: 16px;
    }

    .eiken2026-re__fees-lede {
      margin: 0 0 8px;
      font-size: 14px;
      line-height: 1.65;
      color: var(--text);
      text-align: center;
    }

    .eiken2026-re-tablewrap {
      margin: 0 auto;
      max-width: 520px;
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
    }

    .eiken2026-re-tablewrap--schedule {
      max-width: 100%;
    }

    .eiken2026-re-table--schedule {
      min-width: 640px;
    }

    .eiken2026-re-table--schedule thead th {
      font-size: 12px;
      line-height: 1.45;
      vertical-align: middle;
    }

    .eiken2026-re-table--schedule tbody th {
      white-space: nowrap;
      font-size: 13px;
    }

    .eiken2026-re-table--schedule td {
      font-size: 13px;
      line-height: 1.55;
      text-align: center;
    }

    .eiken2026-re-table {
      width: 100%;
      border-collapse: collapse;
      font-size: 14px;
      background: #fff;
      border-radius: 10px;
      overflow: hidden;
      border: 1px solid #e4eaf0;
    }

    .eiken2026-re-table th,
    .eiken2026-re-table td {
      padding: 10px 12px;
      text-align: center;
      border-bottom: 1px solid #eef2f6;
    }

    .eiken2026-re-table thead th {
      background: #e6f7f6;
      color: #0f172a;
      font-weight: 700;
      font-size: 13px;
    }

    .eiken2026-re-table tbody th {
      background: #f8fafb;
      text-align: left;
      font-weight: 600;
      color: #334155;
    }

    .eiken2026-re-table tbody tr:last-child th,
    .eiken2026-re-table tbody tr:last-child td {
      border-bottom: none;
    }

    .eiken2026-re__subhead--levels {
      margin-top: 36px;
      padding-top: 28px;
      border-top: 1px solid #d4ebe8;
    }

    .eiken-levels-re__kicker {
      margin: 0 0 8px;
      text-align: center;
      font-size: 15px;
      font-weight: 700;
      color: var(--brand-dark);
    }

    .eiken-levels-re__lede {
      margin-bottom: 20px;
    }

    .eiken-levels-re__grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 16px;
      margin-bottom: 8px;
    }

    .eiken-levels-re-card {
      margin: 0;
      padding: 16px 16px 18px;
      background: #fff;
      border: 1px solid #e4eef0;
      border-radius: 12px;
      box-shadow: 0 4px 14px rgb(15 23 42 / 4%);
      display: flex;
      flex-direction: column;
    }

    .eiken-levels-re-card__title {
      margin: 0 0 12px;
      padding-bottom: 10px;
      border-bottom: 2px solid var(--brand);
      font-size: 1rem;
      font-weight: 700;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      color: var(--brand-dark);
      text-align: center;
      line-height: 1.4;
    }

    .eiken-levels-re-card__dl {
      margin: 0;
      flex: 1;
    }

    .eiken-levels-re-card__row {
      margin: 0 0 12px;
    }

    .eiken-levels-re-card__row:last-child {
      margin-bottom: 0;
    }

    .eiken-levels-re-card__row dt {
      margin: 0 0 4px;
      font-size: 11px;
      font-weight: 700;
      letter-spacing: 0.04em;
      color: #607086;
    }

    .eiken-levels-re-card__row dd {
      margin: 0;
      font-size: 13px;
      line-height: 1.65;
      color: var(--text);
    }

    .eiken-levels-re-card__cta {
      margin: 14px 0 0;
      text-align: center;
    }

    .eiken-levels-re-card__link {
      display: inline-block;
      padding: 8px 16px;
      font-size: 13px;
      font-weight: 700;
      color: #fff;
      background: var(--brand);
      border-radius: 999px;
      text-decoration: none;
      transition: background .15s ease;
    }

    .eiken-levels-re-card__link:hover {
      background: var(--brand-dark);
      color: #fff;
    }

    .eiken-levels-re__table-title {
      margin: 0 0 12px;
      font-size: 1rem;
      font-weight: 700;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      color: #334155;
      text-align: center;
    }

    .eiken2026-re-tablewrap--wide {
      max-width: 100%;
      margin-bottom: 24px;
    }

    .eiken2026-re-tablewrap--scores-secondary {
      margin-bottom: 8px;
    }

    .eiken2026-re-table--scores {
      min-width: 560px;
    }

    .eiken2026-re-table--scores-secondary {
      min-width: 420px;
    }

    .eiken2026-re-table--compare {
      min-width: 480px;
    }

    .eiken2026-re-table--compare thead th,
    .eiken2026-re-table--scores thead th {
      background: var(--brand);
      color: #fff;
      font-size: 12px;
    }

    .eiken2026-re-table--compare tbody th,
    .eiken2026-re-table--scores tbody th {
      white-space: nowrap;
    }

    @media (max-width: 1100px) {
      .eiken-levels-re__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 920px) {
      .eiken2026-re__rounds {
        grid-template-columns: 1fr;
      }

      .eiken-levels-re__grid {
        grid-template-columns: 1fr;
      }

      .merits-jh-re-eiken2026 .eiken2026-re,
      .lp-wrap > .eiken2026-re {
        padding: 22px 16px 26px;
      }
    }

    .voice-sec--full {
      width: 100%;
      box-sizing: border-box;
      margin: 0;
      padding: 44px 0 52px;
      border-top: 1px solid #e2e8f0;
      border-bottom: 1px solid #e2e8f0;
      background: linear-gradient(180deg, #f4f7fa 0%, #eef2f6 100%);
    }

    .voice-sec__inner.voice-sec__head {
      width: min(100% - 32px, var(--max));
      margin: 0 auto;
      box-sizing: border-box;
    }

    .voice-swiper-outer {
      width: 100%;
      max-width: 100%;
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    .voice-sec h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 14px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .voice-sec__lede {
      text-align: center;
      font-size: 15px;
      line-height: 1.75;
      margin: 0 0 26px;
      color: var(--text);
    }

    .voice-sec__audiences-band {
      width: 100%;
      padding-top: 32px;
      margin-top: 4px;
      border-top: 1px solid #d8e0e8;
      box-sizing: border-box;
    }

    .voice-sec__audiences-band .lp-wrap {
      margin-top: 0;
    }

    .voice-sec__subhead {
      text-align: center;
      font-size: clamp(1.2rem, 1.6vw, 1.5rem);
      line-height: 1.4;
      margin: 0 0 10px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .voice-sec__lede--audiences {
      margin-bottom: 20px;
    }

    .audiences-re .audiences-re__grid {
      gap: 12px;
    }

    .audiences-re .panel {
      padding: 14px 14px 16px;
      border-radius: 12px;
    }

    .audiences-re__card {
      display: flex;
      flex-direction: column;
      height: 100%;
      text-align: center;
    }

    .audiences-re__figure {
      margin: 0 0 8px;
      text-align: center;
    }

    .audiences-re__figure img {
      width: min(44%, 96px);
      max-width: 96px;
      height: auto;
      margin: 0 auto;
    }

    .audiences-re .panel h3 {
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.05rem;
      font-weight: 700;
      line-height: 1.35;
      text-align: center;
      margin: 0 0 8px;
      color: #0f172a;
    }

    .audiences-re .panel p {
      font-size: 14px;
      line-height: 1.7;
      margin: 0 0 8px;
      color: var(--text);
      text-align: left;
    }

    .audiences-re .panel p.audiences-re__link {
      margin: 10px 0 0;
      font-size: 13px;
      line-height: 1.6;
      text-align: center;
    }

    .audiences-re__link a {
      color: var(--brand-dark);
      text-decoration: none;
      font-weight: 600;
    }

    .audiences-re__link a:hover {
      text-decoration: underline;
    }

    @media (max-width: 920px) {
      .audiences-re .audiences-re__grid {
        grid-template-columns: 1fr;
      }

      .audiences-re__figure img {
        width: min(32%, 88px);
        max-width: 88px;
      }
    }

    .voice-swiper {
      position: relative;
      width: 100%;
      max-width: 100%;
      padding: 0 8px 40px;
      box-sizing: border-box;
      overflow: hidden;
    }

    .voice-swiper .swiper-wrapper {
      display: flex;
      align-items: stretch;
    }

    .voice-swiper .swiper-button-prev {
      left: 4px;
    }

    .voice-swiper .swiper-button-next {
      right: 4px;
    }

    .voice-swiper .swiper-slide {
      height: auto;
      width: 100%;
      max-width: 100%;
      box-sizing: border-box;
    }

    @media (min-width: 640px) {
      .voice-swiper .swiper-slide {
        width: 250px;
        max-width: none;
      }
    }

    .voice-slide__row {
      display: flex;
      gap: 12px;
      align-items: flex-start;
      box-sizing: border-box;
      height: 100%;
      padding: 16px 14px;
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      box-shadow: 0 2px 10px rgb(15 23 42 / 6%);
    }

    .voice-slide__avatar {
      flex-shrink: 0;
      width: 64px;
      height: 64px;
      border-radius: 50%;
      overflow: hidden;
      background: #e8edf2;
    }

    @media (min-width: 640px) {
      .voice-slide__avatar {
        width: 56px;
        height: 56px;
      }
    }

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

    .voice-slide__text {
      margin: 0;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
      word-break: break-word;
    }

    .voice-swiper .swiper-button-prev,
    .voice-swiper .swiper-button-next {
      color: #475569;
    }

    .voice-swiper .swiper-button-prev::after,
    .voice-swiper .swiper-button-next::after {
      font-size: 1.35rem;
    }

    .voice-swiper .swiper-pagination-bullet-active {
      background: #06807d;
    }

    @media (max-width: 520px) {
      .voice-swiper {
        padding: 0 2px 36px;
      }

      .voice-swiper .swiper-button-prev,
      .voice-swiper .swiper-button-next {
        display: none;
      }
    }

    .school-case-sec .school-case-feature {
      width: min(100% - 32px, var(--max));
      margin: 0 auto;
      padding: 24px 22px 26px;
      border-radius: 14px;
      border: 1px solid #d8e4ec;
      background: #fff;
      box-sizing: border-box;
    }

    .school-case-feature__split {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 28px;
      align-items: start;
    }

    .school-case-feature__media {
      min-width: 0;
    }

    .school-case-feature__gallery {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 10px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .school-case-feature__gallery li {
      margin: 0;
      overflow: hidden;
      border-radius: 10px;
      border: 1px solid #e2e8f0;
      background: #f8fafc;
    }

    .school-case-feature__gallery img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
      aspect-ratio: 4 / 3;
    }

    .school-case-feature__voice {
      min-width: 0;
    }

    .school-case-feature__head {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 14px 18px;
      margin-bottom: 16px;
      padding-bottom: 16px;
      border-bottom: 1px solid #e7edf4;
    }

    .school-case-feature__logo {
      flex: 0 0 auto;
      width: min(180px, 38vw);
      padding: 8px 10px;
      border-radius: 10px;
      border: 1px solid #e7edf4;
      background: #fafcfd;
    }

    .school-case-feature__logo img {
      display: block;
      width: 100%;
      height: auto;
    }

    .school-case-feature__school {
      flex: 1 1 180px;
      min-width: 0;
    }

    .school-case-feature__label {
      margin: 0 0 6px;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 0.06em;
      color: var(--brand);
    }

    .school-case-feature__name {
      margin: 0;
      font-size: clamp(1.05rem, 1.6vw, 1.3rem);
      line-height: 1.45;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .school-case-feature__body p {
      margin: 0 0 14px;
      font-size: 14px;
      line-height: 1.85;
      color: var(--text);
      text-align: left;
    }

    .school-case-feature__body p:last-child {
      margin-bottom: 0;
    }

    .school-case-sec__logos {
      width: min(100% - 32px, var(--max));
      margin: 32px auto 0;
      box-sizing: border-box;
    }

    .school-case-sec__logos-title {
      margin: 0 0 16px;
      font-size: clamp(1.1rem, 1.6vw, 1.35rem);
      line-height: 1.45;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      text-align: center;
      color: #0f172a;
    }

    .school-case-sec__logos .school-teaser__logos {
      margin: 0;
    }

    .school-case-sec__note {
      width: min(100% - 32px, var(--max));
      margin: 10px auto 0;
      font-size: 12px;
      line-height: 1.6;
      text-align: center;
      color: var(--muted);
    }

    @media (max-width: 920px) {
      .school-case-feature__split {
        grid-template-columns: 1fr;
        gap: 22px;
      }

      .school-case-feature__gallery {
        max-width: 520px;
        margin: 0 auto;
      }
    }

    @media (max-width: 520px) {
      .school-case-sec .school-case-feature {
        padding: 18px 14px 20px;
      }

      .school-case-feature__head {
        flex-direction: column;
        align-items: flex-start;
      }

      .school-case-feature__logo {
        width: min(200px, 70vw);
      }
    }

    .prof-sec--full {
      width: 100%;
      box-sizing: border-box;
      margin: 0;
      padding: 44px 0 52px;
      border-top: 1px solid #e2e8f0;
      border-bottom: 1px solid #e2e8f0;
      background: linear-gradient(180deg, #f4f7fa 0%, #eef2f6 100%);
    }

    .prof-sec__inner.prof-sec__head {
      width: min(100% - 32px, var(--max));
      margin: 0 auto;
      box-sizing: border-box;
    }

    .prof-swiper-outer {
      width: 100%;
      max-width: 100%;
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    .prof-sec h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 14px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .prof-sec__accent {
      color: var(--brand-dark);
      font-weight: 700;
    }

    .prof-sec__lede {
      text-align: center;
      font-size: 15px;
      line-height: 1.75;
      margin: 0 0 26px;
      color: var(--text);
    }

    .prof-swiper {
      position: relative;
      width: 100%;
      max-width: 100%;
      padding: 0 48px 0;
      box-sizing: border-box;
      overflow-x: hidden;
      overflow-y: visible;
      --swiper-pagination-bottom: 14px;
    }

    .prof-swiper .swiper-wrapper {
      margin-bottom: 36px;
    }

    .prof-swiper .swiper-pagination,
    .prof-swiper .prof-swiper__pagination {
      position: absolute;
      left: 0;
      right: 0;
      width: 100%;
      bottom: 14px !important;
      top: auto !important;
      transform: none !important;
      line-height: 1;
      z-index: 6;
    }

    .prof-swiper .swiper-button-prev,
    .prof-swiper .swiper-button-next {
      top: 42%;
      width: 40px;
      height: 40px;
      margin-top: -20px;
      border-radius: 50%;
      background: rgb(255 255 255 / 96%);
      border: 1px solid #e2e8f0;
      box-shadow: 0 2px 10px rgb(15 23 42 / 12%);
      color: #475569;
      z-index: 5;
    }

    .prof-swiper .swiper-button-prev {
      left: 4px;
    }

    .prof-swiper .swiper-button-next {
      right: 4px;
    }

    .prof-swiper .swiper-button-prev::after,
    .prof-swiper .swiper-button-next::after {
      font-size: 1.1rem;
      font-weight: 700;
    }

    .prof-swiper .swiper-slide {
      height: auto;
      width: 100%;
      max-width: 100%;
      box-sizing: border-box;
    }

    @media (min-width: 640px) {
      .prof-swiper .swiper-slide {
        width: 260px;
        max-width: none;
      }
    }

    .prof-slide {
      margin: 0;
      height: 100%;
    }

    .prof-slide__link {
      display: flex;
      flex-direction: column;
      align-items: center;
      box-sizing: border-box;
      height: 100%;
      min-height: 100%;
      padding: 18px 16px 20px;
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      box-shadow: 0 2px 10px rgb(15 23 42 / 6%);
      text-decoration: none;
      color: inherit;
      transition: box-shadow .2s ease, transform .15s ease;
    }

    .prof-slide__link:hover {
      box-shadow: 0 4px 16px rgb(15 23 42 / 10%);
      transform: translateY(-1px);
    }

    .prof-slide__photo {
      flex-shrink: 0;
      width: 120px;
      height: 120px;
      border-radius: 50%;
      overflow: hidden;
      background: #e8edf2;
      margin-bottom: 14px;
    }

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

    .prof-slide__name {
      margin: 0 0 10px;
      width: 100%;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.05rem;
      font-weight: 700;
      line-height: 1.35;
      text-align: center;
      color: #0f172a;
    }

    .prof-slide__intro {
      margin: 0;
      width: 100%;
      font-size: 14px;
      line-height: 1.65;
      color: var(--text);
      text-align: left;
      word-break: break-word;
      display: -webkit-box;
      -webkit-line-clamp: 10;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .prof-swiper .swiper-pagination-bullet-active {
      background: #06807d;
    }

    @media (max-width: 520px) {
      .prof-swiper {
        padding: 0 2px 0;
      }

      .prof-swiper .swiper-wrapper {
        margin-bottom: 32px;
      }

      .prof-swiper .swiper-button-prev,
      .prof-swiper .swiper-button-next {
        display: none;
      }
    }

    .prof-sec__advice {
      width: min(100% - 32px, var(--max));
      margin: 44px auto 0;
      padding-top: 36px;
      border-top: 1px solid #d8e1ea;
      box-sizing: border-box;
    }

    .prof-advice__title {
      text-align: center;
      font-size: clamp(1.2rem, 1.8vw, 1.65rem);
      line-height: 1.45;
      margin: 0 0 12px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .prof-advice__lede {
      text-align: center;
      font-size: 15px;
      line-height: 1.75;
      margin: 0 0 28px;
      color: var(--text);
    }

    .prof-advice__grid {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 20px;
      align-items: stretch;
    }

    .prof-advice-card {
      display: flex;
      flex-direction: column;
      align-items: center;
      margin: 0;
      padding: 24px 20px 28px;
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      box-shadow: 0 2px 10px rgb(15 23 42 / 6%);
    }

    .prof-advice-card__photo {
      flex-shrink: 0;
      width: 120px;
      height: 120px;
      margin-bottom: 16px;
      border-radius: 50%;
      overflow: hidden;
      background: #e8edf2;
    }

    .prof-advice-card__photo img {
      width: 100%;
      height: 100%;
      object-fit: cover;
      display: block;
    }

    .prof-advice-card__name {
      margin: 0 0 14px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.1rem;
      font-weight: 700;
      line-height: 1.35;
      text-align: center;
      color: #0f172a;
    }

    .prof-advice-card__body {
      width: 100%;
      font-size: 14px;
      line-height: 1.75;
      color: var(--text);
      text-align: left;
    }

    .prof-advice-card__body p {
      margin: 0;
    }

    .prof-advice-card__body p + p {
      margin-top: 10px;
    }

    @media (max-width: 960px) {
      .prof-advice__grid {
        grid-template-columns: 1fr;
        max-width: 480px;
        margin: 0 auto;
      }
    }

    .support-seven h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 36px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .support-seven__items {
      display: flex;
      flex-direction: column;
      gap: 44px;
    }

    .support-seven__grid {
      display: grid;
      grid-template-columns: 1fr 1fr;
      gap: 28px;
      align-items: center;
    }

    .support-seven__item--reverse .support-seven__media {
      order: 2;
    }

    .support-seven__item--reverse .support-seven__body {
      order: 1;
    }

    .support-seven__media {
      aspect-ratio: 3 / 2;
      border-radius: 14px;
      overflow: hidden;
      background: #e8edf2;
    }

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

    .support-seven__body h3 {
      margin: 0 0 12px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.3rem;
      font-weight: 700;
      line-height: 1.5;
      color: #0f172a;
    }

    .support-seven__num {
      color: #06807d;
      font-weight: 700;
    }

    .support-seven__body p {
      margin: 0;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
    }

    .score-voices-re {
      margin-top: 48px;
      padding-top: 0;
      border-top: none;
    }

    .score-voices-re::before {
      content: "";
      display: block;
      width: 100vw;
      margin: 0 calc(50% - 50vw) 44px;
      border-top: 1px solid #e2e8f0;
    }

    .score-voices-re h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 14px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .score-voices-re h2 strong {
      color: var(--brand-dark);
    }

    .score-voices-re__lede {
      display: block;
      max-width: 40em;
      margin: 0 auto 28px;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
      text-align: center;
    }

    .score-voices-re__list {
      display: flex;
      flex-direction: column;
      gap: 20px;
    }

    .score-voice-card {
      border: 1px solid #e2e8f0;
      border-radius: 14px;
      background: #fff;
      padding: 18px 18px 20px;
      box-shadow: 0 4px 16px rgb(15 23 42 / 5%);
    }

    .score-voice-card__head {
      display: flex;
      align-items: flex-start;
      gap: 14px;
      margin-bottom: 14px;
      padding-bottom: 14px;
      border-bottom: 1px solid #eef2f6;
    }

    .score-voice-card__avatar {
      flex-shrink: 0;
      width: 72px;
      height: 72px;
      border-radius: 50%;
      overflow: hidden;
      background: #f1f5f9;
    }

    .score-voice-card__avatar img {
      display: block;
      width: 100%;
      height: 100%;
      object-fit: cover;
    }

    .score-voice-card__intro {
      flex: 1;
      min-width: 0;
      padding-top: 2px;
    }

    .score-voice-card__title {
      margin: 0 0 6px;
      font-size: 1.1rem;
      line-height: 1.45;
      font-weight: 700;
      color: #0f172a;
    }

    .score-voice-card__meta {
      margin: 0;
      font-size: 13px;
      line-height: 1.5;
      color: #64748b;
    }

    .score-voice-card__badge {
      flex-shrink: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      width: 84px;
      min-height: 84px;
      margin: 0;
      padding: 8px 6px;
      border-radius: 50%;
      background: linear-gradient(160deg, #ef5a5a 0%, #d62828 100%);
      color: #fff;
      text-align: center;
      font-size: 11px;
      line-height: 1.2;
      font-weight: 700;
      box-shadow: 0 4px 14px rgb(214 40 40 / 32%);
    }

    .score-voice-card__badge-label {
      display: block;
    }

    .score-voice-card__badge-value {
      display: block;
      font-size: 1.65rem;
      line-height: 1;
      font-weight: 800;
      letter-spacing: -0.02em;
    }

    .score-voice-card__badge-suffix {
      display: block;
      font-size: 11px;
      line-height: 1.25;
    }

    .score-voice-card__badge--eiken .score-voice-card__badge-value {
      font-size: 1.25rem;
    }

    .case-voices-re h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 8px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .case-voices-re h2 strong {
      color: var(--brand-dark);
    }

    .case-voices-re__lede {
      text-align: center;
      margin: 0 auto 24px;
      max-width: 40em;
      font-size: 15px;
      line-height: 1.75;
      color: var(--muted);
    }

    .case-voices-re__renewal {
      margin: 28px 0 14px;
      text-align: center;
      font-size: 15px;
      font-weight: 700;
      color: #0f534f;
    }

    .case-voices-re__cta-wrap {
      margin: 0;
      text-align: center;
    }

    .score-voice-card__body p {
      margin: 0 0 10px;
      font-size: 14px;
      line-height: 1.75;
      color: var(--text);
    }

    .score-voice-card__body p:last-child {
      margin-bottom: 0;
    }

    @media (max-width: 640px) {
      .score-voice-card__head {
        flex-wrap: wrap;
        gap: 12px;
      }

      .score-voice-card__intro {
        flex: 1 1 calc(100% - 86px);
        order: 1;
      }

      .score-voice-card__avatar {
        order: 0;
        width: 64px;
        height: 64px;
      }

      .score-voice-card__badge {
        order: 2;
        width: 76px;
        min-height: 76px;
        margin-left: auto;
      }

      .score-voice-card__title {
        font-size: 1.05rem;
      }
    }

    .lp-cta-block {
      padding: 28px 24px;
      border-radius: 14px;
      border: 1px solid #e7edf4;
      background: linear-gradient(180deg, #fbfdfe, #f4faf9);
    }

    .lp-cta-block--mid1 {
      margin: 32px 0 44px;
    }

    .lp-cta-block--mid2 {
      margin: 36px 0 0;
    }

    .lp-cta-block--final {
      margin: 28px 0 0;
      background: linear-gradient(180deg, #ffffff, #f0faf9);
      border-color: #c5ebe8;
    }

    .lp-cta-block--footer {
      margin: 0;
      background: linear-gradient(180deg, #f0faf9, #e8f6f4);
      border-color: #b8e0dc;
    }

    .lp-cta-block__inner {
      max-width: 640px;
      margin: 0 auto;
      text-align: center;
    }

    .lp-cta-block__title {
      margin: 0 0 16px;
      font-size: clamp(1.2rem, 2vw, 1.55rem);
      line-height: 1.55;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .lp-cta-block__text {
      margin: 0 0 12px;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
      text-align: left;
    }

    .lp-cta-block__action {
      margin-top: 18px;
    }

    .lp-cta-block__note {
      margin: 14px 0 0;
      font-size: 13px;
      color: var(--muted);
      line-height: 1.55;
      text-align: center;
    }

    @media (max-width: 920px) {
      .support-seven__grid {
        grid-template-columns: 1fr;
        gap: 18px;
      }

      .support-seven__item--reverse .support-seven__media,
      .support-seven__item--reverse .support-seven__body {
        order: unset;
      }
    }

    .lp-card.supervisor-re {
      padding: 28px;
      background: #edf8f6;
      border: 1px solid #9bd4d2;
    }

    .supervisor-re h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 24px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .supervisor-re__intro {
      display: grid;
      grid-template-columns: auto minmax(0, 1fr);
      gap: 24px 20px;
      align-items: start;
    }

    .supervisor-re__photo {
      margin: 0;
      width: fit-content;
      max-width: 100%;
      padding: 8px;
      background: #fff;
      border-radius: 14px;
      box-sizing: border-box;
      box-shadow: 0 4px 14px rgb(15 23 42 / 8%);
    }

    .supervisor-re__photo img {
      width: 100%;
      max-width: 160px;
      height: auto;
      border-radius: 10px;
      display: block;
      margin: 0;
    }

    .supervisor-re__profile {
      min-width: 0;
    }

    .supervisor-re__name {
      margin: 0 0 8px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.3rem;
      font-weight: 700;
      line-height: 1.4;
      color: #0f172a;
    }

    .supervisor-re__role {
      margin: 0 0 14px;
      font-size: 14px;
      line-height: 1.6;
      color: var(--muted);
    }

    .supervisor-re__bio {
      margin: 0;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
    }

    .supervisor-re__message {
      margin-top: 28px;
      padding-top: 18px;
      border-top: 1px solid rgb(155 212 210 / 55%);
    }

    .supervisor-re__message-label {
      margin: 0 0 6px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.3rem;
      font-weight: 700;
      line-height: 1.35;
      color: #0f172a;
    }

    .supervisor-re__message-body {
      margin: 0;
      font-size: 15px;
      line-height: 1.55;
      color: var(--text);
    }

    .supervisor-re__points {
      margin: 28px 0 0;
      padding: 0 0 0 1.4em;
      list-style: decimal;
      color: var(--text);
    }

    .supervisor-re__points > li {
      margin: 0 0 22px;
      padding-left: 0.35em;
    }

    .supervisor-re__points > li:last-child {
      margin-bottom: 0;
    }

    .supervisor-re__point-title {
      margin: 0 0 8px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.15rem;
      font-weight: 700;
      line-height: 1.45;
      color: #0f172a;
    }

    .supervisor-re__points p {
      margin: 0;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
    }

    .supervisor-re__closing {
      margin: 28px 0 0;
      text-align: center;
      font-size: 15px;
      line-height: 1.75;
      font-weight: 600;
      color: var(--brand-dark);
    }

    @media (max-width: 920px) {
      .supervisor-re__intro {
        grid-template-columns: 1fr;
      }

      .supervisor-re__photo {
        margin-left: auto;
        margin-right: auto;
      }
    }

    .pricing-re {
      padding: 0;
    }

    .lp-wrap > .pricing-re.lp-section:first-child {
      margin-top: 0;
    }

    .pricing-re-sep.reasons-re-sep--full {
      margin: 40px 0 28px;
    }

    .pricing-re h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 14px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .pricing-re__lede {
      text-align: center;
      font-size: 15px;
      line-height: 1.75;
      margin: 0 0 28px;
      color: var(--text);
    }

    .pricing-re__block + .pricing-re__block {
      margin-top: 32px;
      padding-top: 28px;
      border-top: 1px solid #e9edf2;
    }

    .pricing-re__block h3 {
      margin: 0 0 10px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.3rem;
      font-weight: 700;
      color: #0f172a;
    }

    .pricing-re__desc {
      margin: 0 0 16px;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
    }

    .pricing-re__note {
      margin: 14px 0 0;
      font-size: 13px;
      line-height: 1.65;
      color: #475569;
    }

    .pricing-re__table-wrap {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      margin: 0 -4px;
      padding: 0 4px;
    }

    .pricing-re__table {
      width: 100%;
      min-width: 560px;
      border-collapse: collapse;
      font-size: 14px;
      line-height: 1.55;
    }

    .pricing-re__table th,
    .pricing-re__table td {
      border: 1px solid rgb(0 173 169 / 18%);
      padding: 12px 14px;
      text-align: left;
      vertical-align: top;
    }

    .pricing-re__table thead th {
      background: linear-gradient(180deg, rgb(0 173 169 / 16%) 0%, rgb(0 173 169 / 10%) 100%);
      font-weight: 700;
      color: var(--brand-dark);
      white-space: nowrap;
    }

    .pricing-re__table tbody th[scope="row"] {
      background: rgb(0 173 169 / 8%);
      font-weight: 700;
      color: #0f172a;
      white-space: nowrap;
    }

    .pricing-re__table tbody td {
      color: var(--text);
    }

    .pricing-re__table td:nth-child(2) {
      white-space: nowrap;
    }

    .pricing-re__cta {
      text-align: center;
      margin-top: 28px;
    }

    .lp-card.price-compare-re {
      margin-top: 28px;
      padding: 28px;
      background: linear-gradient(180deg, #f8fcfb 0%, #fff 48%);
      border: 1px solid #c5e8e5;
    }

    @media (max-width: 640px) {
      .lp-card.price-compare-re {
        padding: 20px 16px;
      }
    }

    .price-compare-re h2 {
      text-align: center;
      font-size: clamp(1.25rem, 1.8vw, 1.75rem);
      line-height: 1.45;
      margin: 0 0 14px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .price-compare-re__lede {
      margin: 0 0 20px;
      font-size: 15px;
      line-height: 1.8;
      color: var(--text);
    }

    .price-compare-re__lede strong {
      color: #dc2626;
      font-weight: 700;
    }

    .price-compare-re__table-wrap {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      margin: 0 0 12px;
    }

    .price-compare-re__table {
      width: 100%;
      min-width: 640px;
      border-collapse: collapse;
      font-size: 14px;
      line-height: 1.55;
      text-align: center;
    }

    .price-compare-re__table th,
    .price-compare-re__table td {
      border: 1px solid #d8ebe9;
      padding: 12px 14px;
      vertical-align: middle;
    }

    .price-compare-re__table thead th {
      background: #00ada9;
      color: #fff;
      font-weight: 700;
      white-space: nowrap;
    }

    .price-compare-re__table thead th.price-compare-re__col--us {
      background: #0b8f8c;
    }

    .price-compare-re__table tbody th[scope="row"] {
      background: #edf8f6;
      font-weight: 700;
      color: #0b4f4d;
      white-space: nowrap;
      text-align: left;
    }

    .price-compare-re__table td.price-compare-re__col--us {
      background: #f8fcfb;
      font-weight: 700;
      color: #0f172a;
    }

    .price-compare-re__price {
      display: inline-block;
      font-size: clamp(1.1rem, 2vw, 1.35rem);
      font-weight: 700;
      color: #dc2626;
      line-height: 1.3;
    }

    .price-compare-re__note {
      margin: 0;
      font-size: 13px;
      line-height: 1.65;
      color: #64748b;
    }

    .materials-re h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 8px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .materials-re__lede {
      text-align: center;
      margin: 0 auto 8px;
      max-width: 40em;
      font-size: 15px;
      line-height: 1.75;
      color: var(--muted);
    }

    .materials-re__promo {
      margin: 26px auto 6px;
      max-width: 44em;
    }

    .materials-re__promo-inner {
      position: relative;
      border-radius: calc(var(--radius) + 2px);
      padding: 22px 20px 24px;
      text-align: center;
      background: linear-gradient(160deg, rgb(0 173 169 / 14%) 0%, #fff 38%, #fff 100%);
      border: 1px solid rgb(0 173 169 / 24%);
      box-shadow:
        0 0 0 1px rgb(255 255 255 / 70%) inset,
        0 10px 32px rgb(6 128 125 / 10%);
    }

    .materials-re__promo-kicker {
      margin: 0 0 6px;
      font-size: clamp(1.75rem, 4vw, 2.25rem);
      line-height: 1;
      letter-spacing: 0.02em;
    }

    .materials-re__promo-title {
      margin: 0 0 12px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: clamp(1.12rem, 2.5vw, 1.38rem);
      font-weight: 700;
      line-height: 1.45;
      color: #0b4a47;
    }

    .materials-re__promo-lead {
      margin: 0 auto 16px;
      max-width: 36em;
      text-align: left;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
    }

    .materials-re__promo-books {
      list-style: none;
      margin: 0 auto 18px;
      padding: 14px 16px 14px 18px;
      max-width: 34em;
      text-align: left;
      background: rgb(255 255 255 / 92%);
      border-radius: 12px;
      border: 1px solid rgb(0 173 169 / 16%);
    }

    .materials-re__promo-books li {
      position: relative;
      margin: 0.5em 0;
      padding-left: 1.35em;
      font-size: 14px;
      font-weight: 700;
      line-height: 1.55;
      color: var(--brand-dark);
    }

    .materials-re__promo-books li:first-child {
      margin-top: 0;
    }

    .materials-re__promo-books li:last-child {
      margin-bottom: 0;
    }

    .materials-re__promo-books li::before {
      content: "";
      position: absolute;
      left: 0;
      top: 0.45em;
      width: 0.55em;
      height: 0.55em;
      border-radius: 50%;
      background: var(--brand);
      box-shadow: 0 0 0 2px rgb(0 173 169 / 22%);
    }

    .materials-re__promo-foot {
      margin: 0 auto;
      max-width: 36em;
      font-size: 15px;
      line-height: 1.75;
      font-weight: 700;
      color: #0f534f;
    }

    @media (min-width: 640px) {
      .materials-re__promo-inner {
        padding: 26px 28px 28px;
      }

      .materials-re__promo-books {
        padding: 16px 20px 16px 22px;
      }

      .materials-re__promo-books li {
        font-size: 15px;
      }
    }

    .materials-re__note {
      margin: 16px 0 0;
      font-size: 13px;
      line-height: 1.65;
      color: #475569;
    }

    .materials-re__bullets {
      margin: 12px 0 0;
      padding-left: 1.2em;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
    }

    .materials-re__bullets li {
      margin: 0.4em 0;
    }

    .materials-re__group {
      margin-top: 28px;
    }

    .materials-re__group + .materials-re__group {
      margin-top: 40px;
      padding-top: 36px;
      border-top: 1px solid #e9edf2;
    }

    .materials-re__items {
      display: grid;
      grid-template-columns: 1fr;
      gap: 16px;
    }

    .materials-re__item {
      display: grid;
      grid-template-columns: 92px minmax(0, 1fr);
      gap: 14px;
      align-items: start;
      padding: 12px;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      background: #fff;
    }

    .materials-re__cover {
      aspect-ratio: 2 / 3;
      border-radius: 8px;
      overflow: hidden;
      background: #e8edf2;
    }

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

    .materials-re__content {
      min-width: 0;
    }

    .materials-re__content p {
      margin: 0;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
    }

    @media (min-width: 1024px) {
      .materials-re__items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 920px) {
      .materials-re__item {
        grid-template-columns: 74px minmax(0, 1fr);
        gap: 12px;
      }
    }

    .materials-re__block {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
      gap: 28px;
      align-items: start;
      margin-top: 28px;
    }

    .materials-re__block + .materials-re__block {
      margin-top: 40px;
      padding-top: 36px;
      border-top: 1px solid #e9edf2;
    }

    .materials-re__media {
      aspect-ratio: 2 / 3;
      border-radius: 14px;
      overflow: hidden;
      background: #e8edf2;
    }

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

    .materials-re__body {
      min-width: 0;
    }

    .materials-re__heading {
      margin: 0 0 18px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.15rem;
      font-weight: 700;
      line-height: 1.45;
      color: #0f172a;
    }

    .materials-re__entry + .materials-re__entry {
      margin-top: 20px;
    }

    .materials-re__course-link {
      margin: 20px 0 0;
      text-align: center;
      font-size: 1.5rem;
    }

    .materials-re__course-link a {
      color: var(--lp-primary, #00ada9);
      font-weight: 600;
      text-decoration: none;
    }

    .materials-re__course-link a:hover {
      text-decoration: underline;
    }

    .materials-re__course-link-sep {
      margin: 0 0.5em;
      color: #999;
    }

    .materials-re__more {
      margin: 40px 0 0;
      text-align: center;
      font-size: 1.6rem;
    }

    .materials-re__more a {
      display: inline-block;
      padding: 12px 28px;
      border-radius: 999px;
      background: #f5f5f5;
      color: #333;
      font-weight: 600;
      text-decoration: none;
    }

    .materials-re__more a:hover {
      background: #ebebeb;
    }

    .materials-re__book {
      margin: 0 0 8px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1rem;
      font-weight: 700;
      line-height: 1.5;
      color: #0f172a;
    }

    .materials-re__entry p {
      margin: 0;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
    }

    .materials-re__block--reverse .materials-re__media {
      order: 2;
    }

    .materials-re__block--reverse .materials-re__body {
      order: 1;
    }

    @media (max-width: 920px) {
      .materials-re__block {
        grid-template-columns: 1fr;
        gap: 18px;
      }

      .materials-re__block--reverse .materials-re__media,
      .materials-re__block--reverse .materials-re__body {
        order: unset;
      }

      .materials-re__media {
        max-width: 320px;
        margin: 0 auto;
      }
    }

    .lp-wrap > .corporate-teaser {
      width: 100%;
      max-width: 100%;
      min-width: 0;
      margin-top: 40px;
      margin-bottom: 0;
      padding: 0;
    }

    .corporate-teaser__card {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
      gap: 0;
      width: 100%;
      max-width: 100%;
      box-sizing: border-box;
      overflow: hidden;
      border-color: #d4ebe9;
      color: inherit;
      text-decoration: none;
      transition: transform .15s ease, box-shadow .2s ease, border-color .2s ease;
    }

    .corporate-teaser__card:hover {
      transform: translateY(-2px);
      border-color: #9fd9d6;
      box-shadow: 0 10px 28px rgb(15 23 42 / 8%);
    }

    .corporate-teaser__card:focus-visible {
      outline: 2px solid var(--brand);
      outline-offset: 3px;
    }

    .corporate-teaser__media,
    .corporate-teaser__body {
      min-width: 0;
    }

    .corporate-teaser__media {
      min-height: 200px;
      background:
        linear-gradient(90deg, rgb(0 0 0 / 28%) 0%, rgb(0 0 0 / 12%) 55%, rgb(0 0 0 / 22%) 100%),
        url("/assets/img/kenshu/bg_wt_kenshu_lp.jpg") center/cover no-repeat;
    }

    .corporate-teaser__body {
      padding: 24px 26px 26px;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

    .corporate-teaser__kicker {
      margin: 0 0 8px;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 0.08em;
      color: var(--brand-dark);
    }

    .corporate-teaser__title {
      margin: 0 0 12px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: clamp(1.15rem, 2.8vw, 1.45rem);
      font-weight: 700;
      line-height: 1.5;
      color: #0f172a;
    }

    .corporate-teaser__lead {
      margin: 0 0 10px;
      font-size: 14px;
      line-height: 1.75;
      color: var(--text);
    }

    .corporate-teaser__lead:last-of-type {
      margin-bottom: 16px;
    }

    .corporate-teaser__lead strong {
      font-weight: 700;
      color: #0f172a;
    }

    .corporate-teaser__cta {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 14px;
      font-weight: 700;
      color: var(--brand-dark);
    }

    .corporate-teaser__cta::after {
      content: "→";
      transition: transform .15s ease;
    }

    .corporate-teaser__card:hover .corporate-teaser__cta::after {
      transform: translateX(3px);
    }

    @media (max-width: 767px) {
      .corporate-teaser__card {
        grid-template-columns: 1fr;
      }

      .corporate-teaser__media {
        min-height: 140px;
      }

      .corporate-teaser__body {
        padding: 20px 18px 22px;
      }
    }

    .lp-wrap > .school-teaser {
      width: 100%;
      max-width: 100%;
      min-width: 0;
      margin-top: 40px;
      margin-bottom: 0;
      padding: 0;
    }

    .school-teaser__card {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1.12fr);
      gap: 0;
      width: 100%;
      max-width: 100%;
      box-sizing: border-box;
      overflow: hidden;
      border-color: #d4ebe9;
      color: inherit;
      text-decoration: none;
      transition: transform .15s ease, box-shadow .2s ease, border-color .2s ease;
    }

    .school-teaser__card:hover {
      transform: translateY(-2px);
      border-color: #9fd9d6;
      box-shadow: 0 10px 28px rgb(15 23 42 / 8%);
    }

    .school-teaser__card:focus-visible {
      outline: 2px solid var(--brand);
      outline-offset: 3px;
    }

    .school-teaser__media,
    .school-teaser__body {
      min-width: 0;
    }

    .school-teaser__media {
      min-height: 200px;
      background:
        linear-gradient(90deg, rgb(0 0 0 / 28%) 0%, rgb(0 0 0 / 12%) 55%, rgb(0 0 0 / 22%) 100%),
        url("/assets/img/common/bg_wt_schooleikaiwa_sp.jpg") center/cover no-repeat;
    }

    @media (min-width: 768px) {
      .school-teaser__media {
        background:
          linear-gradient(90deg, rgb(0 0 0 / 28%) 0%, rgb(0 0 0 / 12%) 55%, rgb(0 0 0 / 22%) 100%),
          url("/assets/img/common/bg_wt_schooleikaiwa_lp.jpg") center/cover no-repeat;
      }
    }

    .school-teaser__body {
      padding: 24px 26px 26px;
      display: flex;
      flex-direction: column;
      justify-content: center;
    }

    .school-teaser__kicker {
      margin: 0 0 8px;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 0.08em;
      color: var(--brand-dark);
    }

    .school-teaser__title {
      margin: 0 0 12px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: clamp(1.15rem, 2.8vw, 1.45rem);
      font-weight: 700;
      line-height: 1.5;
      color: #0f172a;
    }

    .school-teaser__lead {
      margin: 0 0 10px;
      font-size: 14px;
      line-height: 1.75;
      color: var(--text);
    }

    .school-teaser__lead:last-of-type {
      margin-bottom: 16px;
    }

    .school-teaser__lead strong {
      font-weight: 700;
      color: #0f172a;
    }

    .school-teaser__logos {
      margin: 0 0 18px;
      padding: 16px 14px 12px;
      border-radius: 10px;
      background: #f4faf9;
      border: 1px solid rgb(0 173 169 / 14%);
    }

    .school-teaser__logos-heading {
      margin: 0 0 12px;
      font-size: 12px;
      font-weight: 700;
      letter-spacing: 0.04em;
      color: #475569;
      text-align: center;
    }

    .school-teaser__logos-grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 14px 16px;
      margin: 0;
      padding: 0;
      list-style: none;
    }

    .school-teaser__logo-item {
      display: flex;
      align-items: center;
      justify-content: center;
      min-height: 72px;
      padding: 10px 12px;
      border-radius: 8px;
      background: #fff;
      border: 1px solid rgb(15 23 42 / 8%);
    }

    .school-teaser__logo-item img {
      display: block;
      width: auto;
      max-width: 100%;
      height: auto;
      max-height: 56px;
      object-fit: contain;
    }

    .school-teaser__cta {
      display: inline-flex;
      align-items: center;
      gap: 6px;
      font-size: 14px;
      font-weight: 700;
      color: var(--brand-dark);
    }

    .school-teaser__cta::after {
      content: "→";
      transition: transform .15s ease;
    }

    .school-teaser__card:hover .school-teaser__cta::after {
      transform: translateX(3px);
    }

    @media (min-width: 768px) {
      .school-teaser__logos-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
      }
    }

    @media (max-width: 767px) {
      .school-teaser__card {
        grid-template-columns: 1fr;
      }

      .school-teaser__media {
        min-height: 140px;
      }

      .school-teaser__body {
        padding: 20px 18px 22px;
      }

      .school-teaser__logos {
        padding: 14px 12px 10px;
      }
    }

    .crumbs {
      width: min(100% - 32px, var(--max));
      margin: 26px auto 0;
      padding: 0;
      list-style: none;
      display: flex;
      gap: 10px;
      flex-wrap: wrap;
      font-size: 14px;
      color: #66768a;
    }

    .crumbs a {
      color: #66768a;
      text-decoration: none;
    }

    .crumbs a:hover {
      text-decoration: underline;
    }

    .re-footer {
      margin-top: 42px;
      border-top: 0;
      background: var(--brand);
    }

    .re-footer__inner {
      padding: 34px 0 42px;
    }

    .re-footer__logo {
      display: block;
      width: fit-content;
      margin: 0 auto 14px;
    }

    .re-footer__logo img {
      display: block;
      width: 220px;
      max-width: 70vw;
      height: auto;
    }

    .re-footer__copy {
      margin: 0 0 22px;
      text-align: center;
      color: #fff;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.35rem;
      line-height: 1.5;
    }

    .re-footer__grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 24px 28px;
    }

    .re-footer__title {
      margin: 0 0 8px;
      color: #fff;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.05rem;
      font-weight: 700;
      line-height: 1.45;
    }

    .re-footer__list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: grid;
      gap: 4px;
    }

    .re-footer__list a {
      color: #fff;
      text-decoration: none;
      font-size: 13px;
      line-height: 1.6;
      opacity: 0.95;
    }

    .re-footer__list a:hover {
      opacity: 1;
      text-decoration: underline;
    }

    .re-footer__item--sub {
      margin: 0;
      padding: 0 0 0 12px;
      border-left: 2px solid rgb(255 255 255 / 38%);
    }

    .re-footer__item--sub a {
      font-size: 12px;
      line-height: 1.55;
      opacity: 0.88;
    }

    .re-footer__item--sub a:hover {
      opacity: 1;
    }

    .re-header__tail {
      display: flex;
      align-items: center;
      gap: 6px;
      flex-shrink: 0;
    }

    .re-header__mobile-shell {
      min-width: 0;
      justify-self: center;
      width: 100%;
    }

    .re-nav-drawer-header {
      display: none;
    }

    .re-nav-drawer-title {
      font-size: 16px;
      font-weight: 700;
      color: #111;
    }

    .re-nav-drawer-close {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 40px;
      height: 40px;
      margin: 0;
      padding: 0;
      border: none;
      background: transparent;
      font-size: 28px;
      line-height: 1;
      color: #425466;
      cursor: pointer;
      border-radius: 8px;
    }

    .re-nav-drawer-close:hover,
    .re-nav-drawer-close:focus-visible {
      background: #f0f4f8;
      outline: none;
    }

    .re-nav-burger {
      display: none;
    }

    .re-nav-burger__bar {
      display: block;
      width: 22px;
      height: 2px;
      background: #232323;
      border-radius: 1px;
      transition: transform 0.2s ease, opacity 0.2s ease;
    }

    .re-nav-scrim {
      position: fixed;
      inset: 0;
      z-index: 1090;
      margin: 0;
      padding: 0;
      border: none;
      background: rgb(15 23 42 / 42%);
      cursor: pointer;
    }

    @media (max-width: 920px) {
      .re-header__inner {
        height: 64px;
      }
      .re-logo img {
        width: 112px;
      }
      .hero {
        padding: 42px 6vw;
      }
      .intro-body {
        grid-template-columns: 1fr;
      }
      .grid3 {
        grid-template-columns: 1fr;
      }
      .grid2 {
        grid-template-columns: 1fr;
      }
      .flow-re .flow-steps {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
      .re-nav-burger {
        display: inline-flex;
        flex-direction: column;
        justify-content: center;
        align-items: center;
        gap: 5px;
        width: 44px;
        height: 44px;
        padding: 0;
        margin: 0;
        border: none;
        background: transparent;
        cursor: pointer;
        border-radius: 8px;
        color: #232323;
        flex-shrink: 0;
      }

      .re-nav-burger:hover,
      .re-nav-burger:focus-visible {
        background: #f4f7fa;
        outline: none;
      }

      .re-header--eiken1-lp.is-nav-open .re-nav-burger__bar:nth-child(1) {
        transform: translateY(7px) rotate(45deg);
      }

      .re-header--eiken1-lp.is-nav-open .re-nav-burger__bar:nth-child(2) {
        opacity: 0;
      }

      .re-header--eiken1-lp.is-nav-open .re-nav-burger__bar:nth-child(3) {
        transform: translateY(-7px) rotate(-45deg);
      }

      .re-header--eiken1-lp .re-header__inner {
        display: flex;
        flex-wrap: nowrap;
        align-items: center;
        justify-content: space-between;
        gap: 12px;
      }

      .re-header--eiken1-lp .re-logo {
        flex-shrink: 0;
      }

      .re-header--eiken1-lp .re-header__tail {
        margin-left: auto;
      }

      .re-nav-drawer-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        flex-shrink: 0;
        padding: 12px 16px;
        border-bottom: 1px solid #e9edf2;
        background: #fff;
      }

      .re-header--eiken1-lp .re-header__mobile-shell {
        position: fixed;
        top: 0;
        right: 0;
        bottom: 0;
        width: min(100vw - 48px, 360px);
        max-width: 100%;
        z-index: 1100;
        display: flex;
        flex-direction: column;
        background: #fff;
        box-shadow: -8px 0 32px rgb(15 23 42 / 18%);
        transform: translateX(100%);
        visibility: hidden;
        transition: transform 0.28s ease, visibility 0.28s ease;
        justify-self: auto;
      }

      .re-header--eiken1-lp.is-nav-open .re-header__mobile-shell {
        transform: translateX(0);
        visibility: visible;
      }

      .re-header--eiken1-lp .re-menu {
        flex: 1;
        min-height: 0;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        padding: 8px 0 24px;
      }

      .re-header--eiken1-lp .re-menu__lv1 {
        flex-direction: column;
        align-items: stretch;
        justify-content: flex-start;
        gap: 0;
      }

      .re-header--eiken1-lp .re-menu__lv1 > li {
        padding-bottom: 0;
        margin-bottom: 0;
        border-bottom: 1px solid #eef2f6;
      }

      .re-header--eiken1-lp .re-menu__lv1 > li > a {
        padding: 14px 16px;
        white-space: normal;
        text-align: left;
        width: 100%;
        box-sizing: border-box;
      }

      .re-header--eiken1-lp .re-menu__lv1 > li > a::after {
        display: none;
      }

      .re-header--eiken1-lp .re-menu__lv1 > li > ul {
        position: static;
        display: block !important;
        box-shadow: none;
        border: none;
        border-radius: 0;
        padding: 0 0 12px 12px;
        margin: 0;
        max-width: none;
        min-width: 0;
      }

      .re-header--eiken1-lp .re-menu__lv1 > li > ul > li {
        border-bottom: none;
      }

      .re-header--eiken1-lp .re-menu__lv1 > li > ul > li > ul {
        position: static;
        display: block !important;
        box-shadow: none;
        border: none;
        border-radius: 0;
        padding: 0 0 8px 12px;
        margin: 0;
      }

      .re-header--eiken1-lp .re-menu__lv1 > li > ul > li > a {
        padding: 10px 14px;
        font-size: 14px;
      }

      .re-header--eiken1-lp .re-menu__lv1 > li > ul > li > ul a {
        padding: 8px 12px;
        font-size: 13px;
      }

      .re-header__actions {
        display: flex;
      }
      .re-footer__grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    @media (max-width: 520px) {
      .re-footer__grid {
        grid-template-columns: 1fr;
      }
    }

    @media (max-width: 1200px) {
      .re-logo img {
        width: 126px;
      }
      .re-menu a {
        font-size: 14px;
      }
    }

    /* 準1級一次 LP：カリキュラム紹介（Eiken1pre1re ほか） */
    .curriculum-pre1 {
      padding: 28px;
      background: linear-gradient(180deg, #f8fcfb 0%, #fff 48%);
      border: 1px solid #c5e8e5;
    }

    .curriculum-pre1 h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 1.85rem);
      line-height: 1.45;
      margin: 0 0 16px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .curriculum-pre1 h2 sup {
      font-size: 0.55em;
      top: -0.35em;
    }

    .curriculum-pre1__badge {
      display: inline-block;
      margin-left: 10px;
      padding: 4px 12px;
      font-size: 0.75em;
      font-family: "Noto Sans JP", sans-serif;
      font-weight: 700;
      vertical-align: middle;
      color: #fff;
      background: var(--brand);
      border-radius: 999px;
      letter-spacing: 0.02em;
    }

    .curriculum-pre1__lede {
      margin: 0 auto 28px;
      max-width: 52em;
      text-align: center;
      font-size: 15px;
      line-height: 1.85;
      color: var(--text);
    }

    .curriculum-pre1__subhead {
      display: flex;
      align-items: center;
      gap: 10px;
      flex-wrap: wrap;
      margin: 0 0 14px;
      font-size: clamp(1.1rem, 1.6vw, 1.35rem);
      font-weight: 700;
      line-height: 1.4;
      color: #0f172a;
      font-family: "Noto Sans JP", sans-serif;
    }

    .curriculum-pre1__subhead--spaced {
      margin-top: 32px;
    }

    .curriculum-pre1__subhead-icon {
      font-size: 1.15em;
      line-height: 1;
    }

    .curriculum-pre1__table-wrap {
      overflow-x: auto;
      -webkit-overflow-scrolling: touch;
      margin: 0 0 8px;
      border-radius: 12px;
      border: 1px solid #d8ebe9;
      background: #fff;
    }

    .curriculum-pre1__table {
      width: 100%;
      min-width: 640px;
      border-collapse: collapse;
      font-size: 14px;
      line-height: 1.65;
    }

    .curriculum-pre1__table th,
    .curriculum-pre1__table td {
      padding: 14px 16px;
      text-align: left;
      vertical-align: top;
      border-bottom: 1px solid #e8f2f0;
    }

    .curriculum-pre1__table thead th {
      background: #00ada9;
      color: #fff;
      font-weight: 700;
      border-bottom: 0;
      white-space: nowrap;
    }

    .curriculum-pre1__table thead th:first-child {
      border-radius: 11px 0 0 0;
    }

    .curriculum-pre1__table thead th:last-child {
      border-radius: 0 11px 0 0;
    }

    .curriculum-pre1__table tbody th[scope="row"] {
      background: #edf8f6;
      font-weight: 700;
      color: #0b4f4d;
      white-space: nowrap;
      width: 1%;
    }

    .curriculum-pre1__table tbody td:nth-child(2) {
      white-space: nowrap;
      font-weight: 600;
      color: #334155;
    }

    .curriculum-pre1__table tbody tr:last-child th,
    .curriculum-pre1__table tbody tr:last-child td {
      border-bottom: none;
    }

    .curriculum-pre1__pillars {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 16px;
      margin: 0 0 8px;
    }

    .curriculum-pre1__pillar {
      margin: 0;
      padding: 18px 18px 20px;
      background: #fff;
      border: 1px solid #d8ebe9;
      border-radius: 12px;
      box-shadow: 0 2px 10px rgb(0 173 169 / 6%);
    }

    .curriculum-pre1__pillar-title {
      margin: 0 0 10px;
      font-size: 1rem;
      font-weight: 700;
      line-height: 1.45;
      color: #0f172a;
    }

    .curriculum-pre1__pillar-text {
      margin: 0;
      font-size: 14px;
      line-height: 1.75;
      color: var(--text);
    }

    .curriculum-pre1__essence {
      display: grid;
      gap: 14px;
    }

    .curriculum-pre1__essence-block {
      margin: 0;
      padding: 16px 18px 18px;
      background: #fff;
      border: 1px solid #e0efed;
      border-radius: 12px;
      border-left: 4px solid var(--brand);
    }

    .curriculum-pre1__essence-title {
      margin: 0 0 10px;
      font-size: 1rem;
      font-weight: 700;
      color: #0b4f4d;
    }

    .curriculum-pre1__essence-list {
      margin: 0;
      padding-left: 1.25em;
      font-size: 14px;
      line-height: 1.75;
      color: var(--text);
    }

    .curriculum-pre1__essence-list li + li {
      margin-top: 6px;
    }

    @media (max-width: 900px) {
      .curriculum-pre1__pillars {
        grid-template-columns: 1fr;
      }
    }

    /* 学校向けカリキュラム */
    .curriculum-school__lesson-table {
      min-width: 0;
    }

    .curriculum-school__lesson-table tbody th[scope="row"] {
      width: 28%;
      min-width: 7.5em;
      vertical-align: top;
    }

    .curriculum-school__lesson-table tbody td {
      white-space: normal;
      font-weight: 400;
      color: var(--text);
    }

    .curriculum-school__cell-list {
      margin: 0;
      padding-left: 1.2em;
    }

    .curriculum-school .curriculum-eiken1re__grade summary .curriculum-eiken1re__grade-badge {
      display: none;
    }

    @media (max-width: 640px) {
      .curriculum-school__lesson-table tbody th[scope="row"],
      .curriculum-school__lesson-table tbody td {
        display: block;
        width: 100%;
      }

      .curriculum-school__lesson-table tbody th[scope="row"] {
        border-bottom: 0;
        padding-bottom: 8px;
      }

      .curriculum-school__lesson-table tbody td {
        padding-top: 0;
      }
    }

    /* Eiken1re：一次試験対策・統合カリキュラム */
    .curriculum-eiken1re__grades-lede {
      margin: 0 0 16px;
      font-size: 14px;
      line-height: 1.8;
      color: var(--text);
    }

    .curriculum-eiken1re__grades {
      display: flex;
      flex-direction: column;
      gap: 12px;
    }

    .curriculum-eiken1re__grade {
      border: 1px solid #d8ebe9;
      border-radius: 12px;
      background: #fff;
      overflow: hidden;
    }

    .curriculum-eiken1re__grade summary {
      display: flex;
      align-items: center;
      flex-wrap: wrap;
      gap: 10px;
      padding: 16px 20px;
      font-size: 15px;
      font-weight: 700;
      line-height: 1.45;
      color: #0f172a;
      cursor: pointer;
      list-style: none;
      font-family: "Noto Sans JP", sans-serif;
    }

    .curriculum-eiken1re__grade summary::-webkit-details-marker {
      display: none;
    }

    .curriculum-eiken1re__grade summary::after {
      content: "";
      margin-left: auto;
      width: 10px;
      height: 10px;
      border-right: 2px solid var(--brand);
      border-bottom: 2px solid var(--brand);
      transform: rotate(45deg);
      transition: transform 0.2s ease;
      flex-shrink: 0;
    }

    .curriculum-eiken1re__grade[open] summary::after {
      transform: rotate(-135deg);
      margin-top: 6px;
    }

    .curriculum-eiken1re__grade-badge {
      display: inline-block;
      padding: 2px 10px;
      font-size: 12px;
      font-weight: 700;
      color: #0b4f4d;
      background: #edf8f6;
      border-radius: 999px;
    }

    .curriculum-eiken1re__grade-body {
      padding: 0 20px 20px;
    }

    .curriculum-eiken1re__grade-lede {
      margin: 0 0 16px;
      font-size: 14px;
      line-height: 1.8;
      color: var(--text);
    }

    .curriculum-eiken1re__grade-link {
      margin: 16px 0 0;
      font-size: 14px;
      font-weight: 700;
    }

    .curriculum-eiken1re__grade-link a {
      color: var(--brand);
      text-decoration: none;
    }

    .curriculum-eiken1re__grade-link a:hover {
      text-decoration: underline;
    }

    .curriculum-eiken1re__note {
      margin: 24px 0 0;
      padding-top: 16px;
      border-top: 1px dashed #d8ebe9;
      font-size: 13px;
      line-height: 1.7;
      color: #64748b;
    }

    .curriculum-eiken2re__day-table {
      min-width: 720px;
    }

    .curriculum-eiken2re__day-table tbody th[scope="row"] {
      width: 56px;
      text-align: center;
    }

    .curriculum-eiken2re__day-table tbody td:nth-child(2) {
      white-space: normal;
      min-width: 200px;
    }

    .curriculum-eiken2re__meta-table {
      min-width: 0;
    }

    .curriculum-eiken2re__meta-table tbody th[scope="row"] {
      width: 28%;
      min-width: 120px;
      background: #edf8f6;
      font-weight: 700;
      color: #0b4f4d;
      vertical-align: top;
    }

    .curriculum-eiken2re__meta-table tbody td {
      white-space: normal;
      font-weight: 400;
      color: #334155;
    }

    .curriculum-eiken2re__meta-table .curriculum-pre1__essence-list {
      margin: 0;
    }

    .curriculum-eiken2re__policy {
      margin: 0 0 8px;
      padding: 0 0 0 1.25em;
      font-size: 15px;
      line-height: 1.75;
      color: #334155;
    }

    .curriculum-eiken2re__policy li + li {
      margin-top: 8px;
    }

    /* TOEIC Part / skill strategy (Toeicre) */
    .toeic-strategy-re {
      padding: 8px 0 16px;
    }

    .toeic-strategy-re__section + .toeic-strategy-re__section {
      margin-top: 40px;
      padding-top: 0;
      border-top: none;
    }

    .toeic-strategy-re__title {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 12px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .toeic-strategy-re__title strong {
      color: var(--brand-dark);
    }

    .toeic-strategy-re__lede {
      text-align: center;
      margin: 0 auto 24px;
      max-width: 42em;
      font-size: 15px;
      line-height: 1.75;
      color: var(--muted);
    }

    .toeic-strategy-re__lede strong {
      color: #0f172a;
      font-weight: 700;
    }

    .toeic-strategy-re__overview {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 16px;
      max-width: 520px;
      margin: 0 auto 28px;
    }

    .toeic-strategy-re__overview-col {
      padding: 14px 16px;
      border-radius: 12px;
      background: linear-gradient(180deg, #f0faf9 0%, #fff 100%);
      border: 1px solid #c5e8e4;
    }

    .toeic-strategy-re__overview-label {
      margin: 0 0 8px;
      font-size: 13px;
      font-weight: 700;
      color: var(--brand-dark);
    }

    .toeic-strategy-re__overview-list {
      margin: 0;
      padding: 0;
      list-style: none;
      display: flex;
      flex-wrap: wrap;
      gap: 8px 12px;
    }

    .toeic-strategy-re__overview-list a {
      font-size: 14px;
      font-weight: 700;
      color: #0f172a;
      text-decoration: none;
      padding: 4px 10px;
      border-radius: 999px;
      background: #fff;
      border: 1px solid #d8e1ea;
      transition: border-color .15s ease, color .15s ease;
    }

    .toeic-strategy-re__overview-list a:hover {
      border-color: var(--brand);
      color: var(--brand-dark);
    }

    .toeic-strategy-re__overview-list--center {
      justify-content: center;
      max-width: 100%;
    }

    .toeic-strategy-re__grid--eiken-grades {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    @media (min-width: 992px) {
      .toeic-strategy-re__grid--eiken-grades {
        grid-template-columns: repeat(4, minmax(0, 1fr));
      }
    }

    .toeic-strategy-re__cta-renewal {
      margin: 0 0 12px;
      font-size: 15px;
      font-weight: 700;
      color: var(--brand-dark);
      letter-spacing: 0.02em;
    }

    .toeic-strategy-re__grid {
      display: grid;
      gap: 20px;
    }

    .toeic-strategy-re__grid--parts {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .toeic-strategy-re__grid--skills {
      grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .toeic-strategy-card {
      display: flex;
      flex-direction: column;
      background: var(--surface);
      border: 1px solid #ebf0f5;
      border-radius: var(--radius);
      box-shadow: var(--shadow);
      overflow: hidden;
      scroll-margin-top: 88px;
    }

    .toeic-strategy-card__head {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 8px 12px;
      padding: 12px 16px 0;
    }

    .toeic-strategy-card__badge {
      display: inline-block;
      padding: 4px 10px;
      border-radius: 999px;
      font-size: 12px;
      font-weight: 700;
      color: #fff;
      background: var(--brand);
      line-height: 1.2;
    }

    .toeic-strategy-card--skill .toeic-strategy-card__badge {
      display: none;
    }

    .toeic-strategy-card__meta {
      font-size: 12px;
      color: var(--muted);
      font-weight: 600;
    }

    .toeic-strategy-card__thumb {
      display: block;
      line-height: 0;
      margin: 10px 16px 0;
      border-radius: 10px;
      overflow: hidden;
    }

    .toeic-strategy-card__thumb img {
      width: 100%;
      height: auto;
      display: block;
      object-fit: cover;
      aspect-ratio: 16 / 9;
    }

    .toeic-strategy-card__body {
      padding: 14px 16px 18px;
      flex: 1;
      display: flex;
      flex-direction: column;
    }

    .toeic-strategy-card__skill-kicker {
      margin: 0 0 4px;
      font-size: 12px;
      font-weight: 700;
      color: var(--brand-dark);
      letter-spacing: 0.02em;
    }

    .toeic-strategy-card__title {
      margin: 0 0 8px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.08rem;
      font-weight: 700;
      line-height: 1.45;
    }

    .toeic-strategy-card__title a {
      color: #0f172a;
      text-decoration: none;
    }

    .toeic-strategy-card__title a:hover {
      color: var(--brand-dark);
    }

    .toeic-strategy-card__lead {
      margin: 0 0 8px;
      font-size: 13px;
      font-weight: 700;
      color: #475569;
    }

    .toeic-strategy-card__points {
      margin: 0 0 12px;
      padding: 0 0 0 1.2em;
      font-size: 14px;
      line-height: 1.65;
      color: #334155;
    }

    .toeic-strategy-card__points li + li {
      margin-top: 6px;
    }

    .toeic-strategy-card__koa {
      margin: auto 0 0;
      padding: 10px 12px;
      font-size: 13px;
      line-height: 1.65;
      color: #334155;
      background: #f8fafc;
      border-radius: 10px;
      border-left: 3px solid var(--brand);
    }

    .toeic-strategy-card__koa-label {
      display: block;
      font-size: 11px;
      font-weight: 700;
      color: var(--brand-dark);
      margin-bottom: 4px;
      letter-spacing: 0.04em;
    }

    .toeic-strategy-card__more {
      margin: 12px 0 0;
      font-size: 14px;
      font-weight: 700;
    }

    .toeic-strategy-card__more a {
      color: var(--brand-dark);
      text-decoration: none;
    }

    .toeic-strategy-card__more a:hover {
      text-decoration: underline;
    }

    .toeic-strategy-re__cta {
      margin-top: 40px;
      padding: 24px 20px 28px;
      text-align: center;
      border-radius: var(--radius);
      background: linear-gradient(160deg, rgb(0 173 169 / 12%) 0%, #fff 45%);
      border: 1px solid rgb(0 173 169 / 22%);
    }

    .toeic-strategy-re__cta--footer {
      margin-top: 0;
    }

    .toeic-strategy-re__cta-title {
      margin: 0 0 10px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: clamp(1.1rem, 2vw, 1.35rem);
      font-weight: 700;
      color: #0f172a;
    }

    .toeic-strategy-re__cta-text {
      margin: 0 auto 16px;
      max-width: 36em;
      font-size: 15px;
      line-height: 1.75;
      color: var(--muted);
    }

    @media (max-width: 900px) {
      .toeic-strategy-re__grid--parts,
      .toeic-strategy-re__grid--skills {
        grid-template-columns: 1fr;
      }

      .toeic-strategy-re__overview {
        grid-template-columns: 1fr;
        max-width: none;
      }
    }

    /* TOEIC blog feed carousel (Toeicre) */
    .blog-sec--full {
      width: 100%;
      box-sizing: border-box;
      margin: 0;
      padding: 44px 0 52px;
      border-top: 1px solid #e2e8f0;
      background: linear-gradient(180deg, #f4f7fa 0%, #eef2f6 100%);
    }

    .blog-sec__inner.blog-sec__head {
      width: min(100% - 32px, var(--max));
      margin: 0 auto 8px;
      box-sizing: border-box;
    }

    .blog-sec h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 14px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .blog-sec h2 strong {
      color: var(--brand-dark);
    }

    .blog-sec__lede {
      text-align: center;
      font-size: 15px;
      line-height: 1.75;
      margin: 0 0 26px;
      color: var(--text);
    }

    .blog-swiper-outer {
      width: 100%;
      max-width: 100%;
      margin: 0;
      padding: 0;
      box-sizing: border-box;
    }

    .blog-swiper {
      position: relative;
      width: 100%;
      max-width: 100%;
      padding: 0 48px 0;
      box-sizing: border-box;
      overflow-x: hidden;
      overflow-y: visible;
      --swiper-pagination-bottom: 14px;
    }

    .blog-swiper .swiper-wrapper {
      display: flex;
      align-items: stretch;
      margin-bottom: 36px;
    }

    .blog-swiper .swiper-pagination,
    .blog-swiper .blog-swiper__pagination {
      position: absolute;
      left: 0;
      right: 0;
      width: 100%;
      bottom: 14px !important;
      top: auto !important;
      transform: none !important;
      line-height: 1;
      z-index: 6;
    }

    .blog-swiper .swiper-button-prev,
    .blog-swiper .swiper-button-next,
    .blog-swiper .blog-swiper__nav {
      top: 42%;
      width: 40px;
      height: 40px;
      margin-top: -20px;
      border-radius: 50%;
      background: rgb(255 255 255 / 96%);
      border: 1px solid #e2e8f0;
      box-shadow: 0 2px 10px rgb(15 23 42 / 12%);
      color: #475569;
      z-index: 5;
    }

    .blog-swiper .swiper-button-prev {
      left: 4px;
    }

    .blog-swiper .swiper-button-next {
      right: 4px;
    }

    .blog-swiper .swiper-button-prev::after,
    .blog-swiper .swiper-button-next::after {
      font-size: 1.1rem;
      font-weight: 700;
    }

    .blog-swiper .swiper-slide {
      height: auto;
      width: min(88vw, 300px);
      max-width: 300px;
      box-sizing: border-box;
    }

    @media (min-width: 640px) {
      .blog-swiper .swiper-slide {
        width: 280px;
        max-width: 280px;
      }
    }

    .blog-slide {
      height: 100%;
    }

    .blog-slide__link {
      display: flex;
      flex-direction: column;
      height: 100%;
      text-decoration: none;
      color: inherit;
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      overflow: hidden;
      box-shadow: 0 2px 10px rgb(15 23 42 / 6%);
      transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
    }

    .blog-slide__link:hover {
      transform: translateY(-3px);
      border-color: #c5e8e4;
      box-shadow: 0 8px 24px rgb(6 128 125 / 12%);
    }

    .blog-slide__link:hover .blog-slide__cta {
      color: var(--brand-dark);
    }

    .blog-slide__thumb {
      margin: 0;
      line-height: 0;
      aspect-ratio: 16 / 9;
      overflow: hidden;
      background: #e8edf2;
    }

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

    .blog-slide__body {
      display: flex;
      flex-direction: column;
      flex: 1;
      padding: 14px 14px 16px;
      gap: 6px;
    }

    .blog-slide__title {
      margin: 0;
      font-size: 15px;
      font-weight: 700;
      line-height: 1.5;
      color: #0f172a;
      display: -webkit-box;
      -webkit-line-clamp: 3;
      -webkit-box-orient: vertical;
      overflow: hidden;
    }

    .blog-slide__date {
      margin: 0;
      font-size: 12px;
      color: var(--muted);
    }

    .blog-slide__cta {
      margin-top: auto;
      padding-top: 6px;
      font-size: 13px;
      font-weight: 700;
      color: var(--brand);
    }

    .blog-swiper .swiper-pagination-bullet-active {
      background: #06807d;
    }

    .blog-sec__more {
      text-align: center;
      margin: 8px auto 0;
      width: min(100% - 32px, var(--max));
    }

    .blog-sec__more a {
      font-size: 15px;
      font-weight: 700;
      color: var(--brand-dark);
      text-decoration: none;
    }

    .blog-sec__more a:hover {
      text-decoration: underline;
    }

    @media (max-width: 520px) {
      .blog-swiper {
        padding: 0 2px 0;
      }

      .blog-swiper .swiper-wrapper {
        margin-bottom: 32px;
      }

      .blog-swiper .swiper-button-prev,
      .blog-swiper .swiper-button-next {
        display: none;
      }
    }

    /* TOEIC YouTuber experience (Toeicre) */
    .youtuber-re--full {
      width: 100%;
      box-sizing: border-box;
      margin: 0;
      padding: 44px 0 52px;
      border-top: 1px solid #e2e8f0;
      background: #fff;
    }

    .youtuber-re__inner.youtuber-re__head {
      width: min(100% - 32px, var(--max));
      margin: 0 auto 28px;
      box-sizing: border-box;
    }

    .youtuber-re__title {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 14px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .youtuber-re__title strong {
      color: var(--brand-dark);
    }

    .youtuber-re__lede {
      text-align: center;
      font-size: 15px;
      line-height: 1.75;
      margin: 0;
      color: var(--text);
    }

    .youtuber-re__grid {
      display: grid;
      grid-template-columns: repeat(2, minmax(0, 1fr));
      gap: 24px;
      width: min(100% - 32px, var(--max));
      margin: 0 auto;
      box-sizing: border-box;
    }

    .youtuber-re-card {
      display: flex;
      flex-direction: column;
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: var(--radius);
      overflow: hidden;
      box-shadow: var(--shadow);
    }

    .youtuber-re-card__media {
      position: relative;
      margin: 0;
      line-height: 0;
      overflow: hidden;
      background: #0f172a;
      aspect-ratio: 16 / 9;
      border-radius: 12px 12px 0 0;
      isolation: isolate;
    }

    .youtuber-re-card__media::after {
      content: "";
      position: absolute;
      inset: 0;
      pointer-events: none;
      border-radius: inherit;
      box-shadow: inset 0 0 0 1px rgb(255 255 255 / 8%);
    }

    .youtuber-re-card__media video,
    .youtuber-re-card__media iframe {
      width: 100%;
      height: 100%;
      display: block;
      border: 0;
      object-fit: cover;
    }

    .youtuber-re-card__body {
      padding: 18px 18px 20px;
      display: flex;
      flex-direction: column;
      gap: 10px;
      flex: 1;
    }

    .youtuber-re-card__name {
      margin: 0;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.15rem;
      font-weight: 700;
      color: #0f172a;
      line-height: 1.4;
    }

    .youtuber-re-card__video-title {
      margin: 0;
      font-size: 14px;
      font-weight: 700;
      line-height: 1.55;
    }

    .youtuber-re-card__video-title a {
      color: var(--brand-dark);
      text-decoration: none;
    }

    .youtuber-re-card__video-title a:hover {
      text-decoration: underline;
    }

    .youtuber-re-card__text {
      margin: 0;
      font-size: 14px;
      line-height: 1.7;
      color: var(--muted);
    }

    @media (max-width: 768px) {
      .youtuber-re__grid {
        grid-template-columns: 1fr;
        gap: 20px;
      }
    }

    /* Announcements / news (Toeicre) */
    .news-re--full {
      width: 100%;
      box-sizing: border-box;
      margin: 0;
      padding: 44px 0 52px;
      border-top: 1px solid #e2e8f0;
      background: linear-gradient(180deg, #f8fafb 0%, #fff 100%);
    }

    .news-re__inner {
      width: min(100% - 32px, var(--max));
      margin: 0 auto;
      box-sizing: border-box;
    }

    .news-re__title {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 28px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .news-re__title strong {
      color: var(--brand-dark);
    }

    .news-re__list {
      display: flex;
      flex-direction: column;
      gap: 0;
      max-height: min(52vh, 440px);
      overflow-x: hidden;
      overflow-y: auto;
      overscroll-behavior: contain;
      -webkit-overflow-scrolling: touch;
      padding: 4px 12px 4px 16px;
      background: #fff;
      border: 1px solid #e2e8f0;
      border-radius: 12px;
      box-shadow: 0 2px 14px rgb(15 23 42 / 6%);
    }

    .news-re__list::-webkit-scrollbar {
      width: 8px;
    }

    .news-re__list::-webkit-scrollbar-track {
      background: transparent;
    }

    .news-re__list::-webkit-scrollbar-thumb {
      background: #cbd5e1;
      border-radius: 999px;
      border: 2px solid #fff;
    }

    .news-re__list::-webkit-scrollbar-thumb:hover {
      background: #94a3b8;
    }

    .news-re-item {
      padding: 18px 4px 18px 0;
      border-bottom: 1px solid #e2e8f0;
    }

    .news-re-item:first-child {
      padding-top: 14px;
    }

    .news-re-item:last-child {
      border-bottom: none;
      padding-bottom: 14px;
    }

    .news-re-item__date {
      margin: 0 0 6px;
      font-size: 13px;
      color: var(--muted);
    }

    .news-re-item__date time {
      font-weight: 600;
    }

    .news-re-item__title {
      margin: 0 0 10px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-size: 1.08rem;
      font-weight: 700;
      line-height: 1.5;
      color: #0f172a;
    }

    .news-re-item__body {
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
    }

    .news-re-item__body p {
      margin: 0 0 0.75em;
    }

    .news-re-item__body p:last-child {
      margin-bottom: 0;
    }

    .news-re-item__body a {
      color: var(--brand-dark);
      font-weight: 600;
    }

    .news-re-item__body a:hover {
      text-decoration: underline;
    }

    .news-re-item__body img {
      max-width: 100%;
      height: auto;
    }

    @media (max-width: 640px) {
      .news-re__list {
        max-height: min(58vh, 380px);
        padding: 4px 8px 4px 12px;
      }
    }

    /* Fixed trial-lesson CTA (RE LPs: body.lp-has-floating-trial) */
    body.lp-has-floating-trial .wt_footer_banner {
      display: none !important;
    }

    @media (max-width: 920px) {
      body.lp-has-floating-trial {
        padding-bottom: calc(60px + env(safe-area-inset-bottom, 0px));
      }
    }

    .lp-floating-trial {
      position: fixed;
      z-index: 1040;
      margin: 0;
      padding: 0;
      pointer-events: none;
    }

    .lp-floating-trial__link {
      pointer-events: auto;
      display: inline-flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 2px;
      text-decoration: none;
      font-weight: 700;
      color: #fff;
      background: var(--danger);
      box-shadow: 0 6px 0 #b91514, 0 10px 28px rgb(15 23 42 / 18%);
      transition: transform 0.15s ease, opacity 0.15s ease, box-shadow 0.15s ease;
    }

    .lp-floating-trial__link:hover,
    .lp-floating-trial__link:focus-visible {
      color: #fff;
      text-decoration: none;
      transform: translateY(-1px);
      opacity: 0.96;
      outline: none;
    }

    .lp-floating-trial__text {
      font-size: 1rem;
      line-height: 1.3;
      letter-spacing: 0.02em;
    }

    .lp-floating-trial__sub {
      font-size: 0.72rem;
      font-weight: 600;
      line-height: 1.2;
      opacity: 0.92;
    }

    @media (min-width: 921px) {
      .lp-floating-trial {
        right: max(20px, env(safe-area-inset-right, 0px));
        bottom: max(24px, env(safe-area-inset-bottom, 0px));
      }

      .lp-floating-trial__link {
        min-width: 11.5rem;
        padding: 14px 22px;
        border-radius: 999px;
      }
    }

    @media (max-width: 920px) {
      .lp-floating-trial {
        left: 0;
        right: 0;
        bottom: 0;
        padding: 0;
      }

      .lp-floating-trial__link {
        width: 100%;
        flex-direction: row;
        gap: 8px;
        padding: 14px 16px calc(14px + env(safe-area-inset-bottom, 0px));
        border-radius: 0;
        box-shadow: 0 -4px 20px rgb(15 23 42 / 12%);
      }

      .lp-floating-trial__text {
        font-size: 1.05rem;
      }

      .lp-floating-trial__sub::before {
        content: "・";
        margin-right: 2px;
        opacity: 0.85;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .lp-floating-trial__link {
        transition: none;
      }
    }

    .re-header--eiken1-lp.is-nav-open ~ .lp-floating-trial {
      visibility: hidden;
      opacity: 0;
      pointer-events: none;
    }

    .faq-re-outer {
      width: 100vw;
      margin: 0 calc(50% - 50vw);
      padding: 48px 0;
      background: linear-gradient(180deg, #edf8f6 0%, #f4faf9 100%);
    }

    /* hr削除後も、区切り線相当の余白を確保（Eiken1re / Eiken2re） */
    .lp-wrap + .faq-re-outer {
      margin-top: 40px;
    }

    .faq-re-outer + .lp-wrap {
      margin-top: 40px;
    }

    .faq-re-outer .lp-section.faq-re {
      margin-top: 0;
      margin-bottom: 0;
    }

    .faq-re h2 {
      text-align: center;
      font-size: clamp(1.35rem, 2vw, 2rem);
      line-height: 1.4;
      margin: 0 0 14px;
      font-family: "Noto Serif JP", "Noto Sans JP", serif;
      font-weight: 700;
      color: #0f172a;
    }

    .faq-re h2 strong {
      color: var(--brand-dark);
    }

    .faq-re__lede {
      text-align: center;
      max-width: 40em;
      margin: 0 auto 28px;
      font-size: 15px;
      line-height: 1.75;
      color: var(--text);
    }

    .faq-re__list {
      display: flex;
      flex-direction: column;
      gap: 12px;
      max-width: 760px;
      margin: 0 auto;
    }

    .faq-re__item {
      border: 1px solid #d5ebe8;
      border-radius: 12px;
      background: #fff;
      box-shadow: 0 2px 10px rgb(15 23 42 / 4%);
    }

    .faq-re__item summary {
      position: relative;
      display: flex;
      align-items: flex-start;
      gap: 12px;
      padding: 14px 44px 14px 14px;
      font-size: 15px;
      font-weight: 700;
      line-height: 1.55;
      color: #0f534f;
      cursor: pointer;
      list-style: none;
    }

    .faq-re__item summary::before {
      content: "Q";
      flex-shrink: 0;
      width: 28px;
      height: 28px;
      border-radius: 50%;
      background: var(--brand-dark);
      color: #fff;
      font-size: 15px;
      font-weight: 700;
      line-height: 28px;
      text-align: center;
    }

    .faq-re__item summary::-webkit-details-marker {
      display: none;
    }

    .faq-re__item summary::marker {
      content: "";
    }

    .faq-re__item summary::after {
      content: "+";
      position: absolute;
      top: 14px;
      right: 14px;
      width: 28px;
      height: 28px;
      border-radius: 50%;
      background: #e6f7f6;
      font-size: 1.1rem;
      font-weight: 700;
      color: var(--brand-dark);
      line-height: 28px;
      text-align: center;
    }

    .faq-re__item[open] summary::after {
      content: "−";
    }

    .faq-re__item[open] summary {
      border-bottom: 1px solid #e8f2f0;
    }

    .faq-re__answer {
      display: flex;
      align-items: flex-start;
      gap: 12px;
      padding: 14px 18px 18px 14px;
    }

    .faq-re__answer::before {
      content: "A";
      flex-shrink: 0;
      width: 28px;
      height: 28px;
      border-radius: 50%;
      border: 2px solid var(--brand-dark);
      background: #fff;
      color: var(--brand-dark);
      font-size: 15px;
      font-weight: 700;
      line-height: 24px;
      text-align: center;
    }

    .faq-re__answer p {
      flex: 1;
      min-width: 0;
      margin: 0;
      padding-top: 3px;
      font-size: 14px;
      line-height: 1.75;
      color: var(--text);
    }

    .faq-re__answer p + p {
      margin-top: 10px;
    }

    .faq-re__footer {
      max-width: 760px;
      margin: 28px auto 0;
      text-align: center;
    }

    .faq-re__more {
      margin: 0 0 18px;
      font-size: 14px;
      line-height: 1.75;
      color: var(--muted);
    }

    .faq-re__more a {
      color: var(--brand-dark);
      font-weight: 700;
      text-decoration: underline;
      text-underline-offset: 2px;
    }

    .faq-re__cta-wrap {
      margin: 0;
    }

    @media (min-width: 768px) {
      .faq-re__item summary::before,
      .faq-re__item summary::after,
      .faq-re__answer::before {
        width: 32px;
        height: 32px;
        font-size: 16px;
        line-height: 32px;
      }

      .faq-re__answer::before {
        line-height: 28px;
      }

      .faq-re__item summary::after {
        top: 12px;
      }
    }