/*
      Beyond language-page template
      共通スタイルは .beyond-language 内に限定。

      フランス語・ドイツ語・スペイン語にも再利用可能。
      本文・料金・日程・SEO情報・予約リンクのlanguage値を変更。

      予約ページの言語コード：
      ko = 韓国語 / fr = フランス語
      de = ドイツ語 / es = スペイン語

      既存の透過ヘッダー用クリアランス：
      desktop 156px / mobile 112px
    */

    .beyond-language {
      --bl-navy: #061c33;
      --bl-navy-2: #0c335a;
      --bl-accent: #00307c;
      --bl-accent-hover: #135fc6;
      --bl-sky: #c6daec;
      --bl-ink: #00307c;
      --bl-muted: #1a2e43;
      --bl-paper: #f4f8fc;
      --bl-white: #fffdfa;
      --bl-soft: #e8f1fb;
      --bl-secondary: #f0f7ff;
      --bl-line: rgba(104, 166, 244, .38);
      --bl-radius: 7px;
      --bl-width: 1160px;
      --bl-header-clearance: 156px;
      --bl-shadow: 0 18px 54px rgba(6, 27, 57, .08);
      --bl-font-jp:
        "Yu Mincho", "Hiragino Mincho ProN", YuMincho,
        "Noto Serif JP", serif;
      --bl-font-ui:
        "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo,
        "Segoe UI", Arial, sans-serif;

      margin: 0;
      color: var(--bl-ink);
      background: var(--bl-paper);
      font-family: var(--bl-font-ui);
      font-size: 16px;
      line-height: 1.9;
      letter-spacing: 0;
      overflow-wrap: anywhere;
      isolation: isolate;
    }

    .beyond-language,
    .beyond-language *,
    .beyond-language *::before,
    .beyond-language *::after {
      box-sizing: border-box;
    }

    .beyond-language :where(h1, h2, h3, p, ul, ol, dl, dd) {
      margin: 0;
    }

    .beyond-language :where(h1, h2, h3) {
      color: var(--bl-ink);
      font-weight: 700;
      text-wrap: balance;
    }

    .beyond-language :where(h1, h2) {
      font-family: var(--bl-font-jp);
      letter-spacing: 0;
    }

    .beyond-language h2 {
      font-size: clamp(2rem, 3.8vw, 3.3rem);
      line-height: 1.5;
    }

    .beyond-language h3 {
      font-family: var(--bl-font-ui);
      font-size: 1.12rem;
      line-height: 1.65;
    }

    .beyond-language a {
      color: var(--bl-accent);
      text-underline-offset: .25em;
    }

    .beyond-language a:focus-visible,
    .beyond-language summary:focus-visible {
      outline: 3px solid var(--bl-accent-hover);
      outline-offset: 5px;
    }

    .beyond-language section[id] {
      scroll-margin-top: var(--bl-header-clearance);
    }

    .beyond-language .bl-wrap {
      width: min(var(--bl-width), calc(100% - 42px));
      margin-inline: auto;
    }

    .beyond-language .bl-section {
      padding-block: clamp(70px, 8vw, 112px);
    }

    .beyond-language .bl-eyebrow {
      margin-bottom: 16px;
      color: var(--bl-accent-hover);
      font-family: var(--bl-font-ui);
      font-size: .77rem;
      font-weight: 800;
      letter-spacing: .16em;
      line-height: 1.8;
    }

    .beyond-language .bl-lead {
      max-width: 43rem;
      margin-top: 22px;
      color: var(--bl-muted);
      font-family: var(--bl-font-jp);
      font-size: 1.04rem;
      line-height: 2.05;
    }

    .beyond-language .bl-note {
      color: var(--bl-muted);
      font-size: .86rem;
      line-height: 1.85;
    }

    .beyond-language .bl-actions {
      display: flex;
      flex-wrap: wrap;
      align-items: center;
      gap: 14px;
      margin-top: 28px;
    }

    .beyond-language .bl-button {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 16px;
      min-height: 54px;
      padding: 15px 23px;
      border: 1px solid transparent;
      border-radius: var(--bl-radius);
      background: var(--bl-accent);
      color: #fff;
      box-shadow: 0 14px 34px rgba(8, 80, 170, .16);
      font-family: var(--bl-font-ui);
      font-size: .94rem;
      font-weight: 800;
      line-height: 1.6;
      text-align: center;
      text-decoration: none;
      transition:
        background-color .18s ease,
        border-color .18s ease,
        transform .18s ease;
    }

    .beyond-language .bl-button:hover {
      background: var(--bl-accent-hover);
      color: #fff;
      transform: translateY(-2px);
    }

    .beyond-language .bl-button--outline {
      border-color: var(--bl-accent);
      background: transparent;
      color: var(--bl-accent);
      box-shadow: none;
    }

    .beyond-language .bl-button--outline:hover {
      background: var(--bl-soft);
      color: var(--bl-accent);
    }

    .beyond-language .bl-text-link {
      font-size: .93rem;
      font-weight: 800;
      text-decoration: none;
    }

    .beyond-language .bl-text-link:hover {
      text-decoration: underline;
    }

    /* Hero */

    .beyond-language .bl-hero {
      position: relative;
      padding: 0;
      isolation: isolate;
      background:
        radial-gradient(
          ellipse at 85% 25%,
          rgba(104, 166, 244, .17),
          transparent 48%
        ),
        linear-gradient(125deg, #061c33 12%, #0c335a 100%);
      color: #fff8e8;
    }

    .beyond-language .bl-hero-grid {
      display: grid;
      grid-template-columns: minmax(0, 1.12fr) minmax(0, .88fr);
      align-items: center;
      gap: clamp(34px, 6vw, 82px);
      min-height: 90svh;
      padding-top: var(--bl-header-clearance);
      padding-bottom: 86px;
    }

    .beyond-language .bl-hero-grid > * {
      min-width: 0;
    }

    .beyond-language .bl-hero .bl-eyebrow {
      color: var(--bl-sky);
    }

    .beyond-language .bl-hero h1 {
      color: #fff8e8;
      font-size: clamp(2.8rem, 5vw, 4.6rem);
      line-height: 1.4;
    }

    .beyond-language .bl-hero h1 em {
      color: var(--bl-sky);
      font-style: normal;
    }

    .beyond-language .bl-hero-subtitle {
      margin-top: 26px;
      color: #fff8e8;
      font-family: var(--bl-font-jp);
      font-size: clamp(1.05rem, 1.4vw, 1.18rem);
      font-weight: 700;
      line-height: 1.95;
    }

    .beyond-language .bl-hero-copy {
      max-width: 35rem;
      margin-top: 17px;
      color: rgba(255, 255, 255, .85);
      font-family: var(--bl-font-jp);
      font-size: 1rem;
      line-height: 2.05;
    }

    .beyond-language .bl-tags {
      display: flex;
      flex-wrap: wrap;
      gap: 9px;
      margin-top: 25px;
      padding: 0;
      list-style: none;
    }

    .beyond-language .bl-tags li {
      padding: 5px 12px;
      border: 1px solid rgba(198, 218, 236, .32);
      border-radius: 4px;
      background: rgba(255, 255, 255, .06);
      color: #e8f2fc;
      font-size: .79rem;
      font-weight: 700;
    }

    .beyond-language .bl-hero .bl-button {
      border-color: rgba(198, 218, 236, .35);
      background: #135fc6;
    }

    .beyond-language .bl-hero .bl-button:hover {
      background: #1a6bdd;
    }

    .beyond-language .bl-hero .bl-text-link {
      color: var(--bl-sky);
    }

    .beyond-language .bl-hero-note {
      margin-top: 16px;
    }

    .beyond-language .bl-hero .bl-note {
      color: rgba(255, 255, 255, .76);
    }

    .beyond-language .bl-hero a:focus-visible,
    .beyond-language .bl-private a:focus-visible,
    .beyond-language .bl-final a:focus-visible {
      outline-color: var(--bl-sky);
    }

    /* Phrase panel */

    .beyond-language .bl-phrase-board {
      position: relative;
      padding: 30px;
      border: 1px solid rgba(198, 218, 236, .28);
      border-radius: var(--bl-radius);
      background: rgba(225, 235, 247, .09);
      box-shadow: 0 28px 72px rgba(0, 0, 0, .18);
    }

    .beyond-language .bl-board-label {
      margin: 0 0 24px;
      color: var(--bl-sky);
      font-size: .75rem;
      font-weight: 800;
      letter-spacing: .16em;
      text-align: center;
    }

    .beyond-language .bl-phrase {
      padding: 22px;
      border: 1px solid rgba(255, 255, 255, .7);
      border-radius: var(--bl-radius);
      background: #f4f8fc;
      color: var(--bl-ink);
      box-shadow: 0 12px 30px rgba(0, 0, 0, .08);
    }

    .beyond-language .bl-phrase + .bl-phrase {
      margin-top: 16px;
    }

    .beyond-language .bl-phrase:nth-of-type(2) {
      margin-left: 24px;
      background: #e0edf9;
    }

    .beyond-language .bl-phrase small {
      display: block;
      color: var(--bl-muted);
      font-size: .76rem;
    }

    .beyond-language .bl-language-phrase {
      display: block;
      margin-block: 6px;
      font-family: Georgia, "Times New Roman", serif;
      font-size: clamp(1.7rem, 3vw, 2.35rem);
      font-weight: 700;
      line-height: 1.45;
    }

    .beyond-language .bl-translation {
      color: var(--bl-muted);
      font-size: .87rem;
    }

    .beyond-language .bl-board-caption {
      margin-top: 24px;
      color: rgba(255, 255, 255, .82);
      font-family: var(--bl-font-jp);
      font-size: .9rem;
      text-align: center;
    }

    /* Summary */

    .beyond-language .bl-summary {
      padding-block: 28px;
      border-bottom: 1px solid var(--bl-line);
      background: var(--bl-white);
    }

    .beyond-language .bl-summary-grid {
      display: grid;
      grid-template-columns: repeat(4, minmax(0, 1fr));
      gap: 24px;
    }

    .beyond-language .bl-summary dt {
      color: var(--bl-muted);
      font-size: .76rem;
    }

    .beyond-language .bl-summary dd {
      margin-top: 5px;
      color: var(--bl-ink);
      font-size: 1rem;
      font-weight: 800;
    }

    /* Interest cards */

    .beyond-language .bl-grid-three {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 20px;
      margin-top: 36px;
    }

    .beyond-language .bl-card {
      padding: 30px;
      border: 1px solid var(--bl-line);
      border-radius: var(--bl-radius);
      background: var(--bl-white);
      box-shadow: var(--bl-shadow);
    }

    .beyond-language .bl-card-label {
      margin-bottom: 24px;
      color: var(--bl-accent-hover);
      font-size: .73rem;
      font-weight: 800;
      letter-spacing: .09em;
    }

    .beyond-language .bl-card p:last-child {
      margin-top: 16px;
      color: var(--bl-muted);
      font-size: .94rem;
      line-height: 1.95;
    }

    /* Learning approach */

    .beyond-language .bl-split {
      display: grid;
      grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
      align-items: start;
      gap: clamp(34px, 6vw, 78px);
    }

    .beyond-language .bl-tinted {
      border-block: 1px solid var(--bl-line);
      background: linear-gradient(180deg, #edf5ff, #f4f8fc);
    }

    .beyond-language .bl-steps {
      display: grid;
      gap: 28px;
      padding: 0;
      list-style: none;
      counter-reset: bl-step;
    }

    .beyond-language .bl-steps li {
      position: relative;
      padding: 0 0 26px 56px;
      border-bottom: 1px solid var(--bl-line);
      counter-increment: bl-step;
    }

    .beyond-language .bl-steps li:last-child {
      padding-bottom: 0;
      border-bottom: 0;
    }

    .beyond-language .bl-steps li::before {
      content: "0" counter(bl-step);
      position: absolute;
      top: 0;
      left: 0;
      color: var(--bl-accent-hover);
      font-size: 1.25rem;
      font-weight: 800;
    }

    .beyond-language .bl-steps p {
      margin-top: 10px;
      color: var(--bl-muted);
      font-size: .94rem;
      line-height: 1.95;
    }

    .beyond-language .bl-topics {
      display: flex;
      flex-wrap: wrap;
      gap: 10px;
      margin-top: 26px;
      padding: 0;
      list-style: none;
    }

    .beyond-language .bl-topics li {
      padding: 8px 14px;
      border: 1px solid var(--bl-line);
      border-radius: 4px;
      background: var(--bl-white);
      color: var(--bl-ink);
      font-size: .85rem;
    }

    /* Course details */

    .beyond-language .bl-course-box {
      margin-top: 36px;
      border: 1px solid var(--bl-line);
      border-radius: var(--bl-radius);
      background: var(--bl-white);
      box-shadow: var(--bl-shadow);
      overflow: hidden;
    }

    .beyond-language .bl-course-intro {
      padding: 27px 32px;
      background: var(--bl-accent);
      color: #fff;
    }

    .beyond-language .bl-course-intro h3 {
      color: #fff8e8;
      font-family: var(--bl-font-jp);
      font-size: 1.5rem;
    }

    .beyond-language .bl-course-intro p {
      margin-top: 8px;
      color: #e3eefb;
      font-size: .9rem;
    }

    .beyond-language .bl-course-body {
      display: grid;
      grid-template-columns: minmax(0, 1.1fr) minmax(0, .9fr);
      gap: 40px;
      padding: 34px 32px;
    }

    .beyond-language .bl-facts > div {
      display: grid;
      grid-template-columns: 76px minmax(0, 1fr);
      gap: 18px;
      padding-block: 18px;
      border-bottom: 1px solid var(--bl-line);
    }

    .beyond-language .bl-facts > div:first-child {
      padding-top: 0;
    }

    .beyond-language .bl-facts dt {
      color: var(--bl-ink);
      font-size: .87rem;
      font-weight: 800;
    }

    .beyond-language .bl-facts dd {
      color: var(--bl-muted);
      font-size: .94rem;
    }

    .beyond-language .bl-dates {
      display: flex;
      flex-wrap: wrap;
      gap: 8px;
      margin-block: 10px;
      padding: 0;
      list-style: none;
    }

    .beyond-language .bl-dates li {
      padding: 4px 11px;
      border: 1px solid var(--bl-line);
      border-radius: 4px;
      background: var(--bl-paper);
      color: var(--bl-ink);
      font-weight: 800;
    }

    .beyond-language .bl-price {
      padding: 24px;
      border: 1px solid var(--bl-line);
      border-radius: var(--bl-radius);
      background: var(--bl-white);
    }

    .beyond-language .bl-price + .bl-price {
      margin-top: 16px;
    }

    .beyond-language .bl-price--featured {
      border-color: var(--bl-accent);
      background: var(--bl-secondary);
      box-shadow: inset 0 3px 0 var(--bl-accent);
    }

    .beyond-language .bl-price-label {
      color: var(--bl-ink);
      font-size: .9rem;
      font-weight: 800;
    }

    .beyond-language .bl-amount {
      margin-block: 8px;
      color: var(--bl-ink);
      font-size: 2.2rem;
      font-weight: 800;
      line-height: 1.5;
    }

    .beyond-language .bl-amount span {
      margin-left: 5px;
      font-size: .85rem;
      font-weight: 400;
    }

    .beyond-language .bl-course-bottom {
      padding: 0 32px 34px;
    }

    .beyond-language .bl-course-bottom .bl-actions {
      margin-top: 0;
      margin-bottom: 16px;
    }

    /* Private lessons */

    .beyond-language .bl-private {
      padding: clamp(28px, 5vw, 58px);
      border: 1px solid rgba(104, 166, 244, .3);
      border-radius: var(--bl-radius);
      background:
        radial-gradient(
          circle at 15% 10%,
          rgba(104, 166, 244, .15),
          transparent 45%
        ),
        linear-gradient(135deg, #0c335a, #061c33);
      color: #fff8e8;
      box-shadow: 0 26px 76px rgba(6, 27, 57, .14);
    }

    .beyond-language .bl-private :where(h2, h3, strong) {
      color: #fff8e8;
    }

    .beyond-language .bl-private .bl-eyebrow {
      color: var(--bl-sky);
    }

    .beyond-language .bl-private .bl-lead,
    .beyond-language .bl-private .bl-note {
      color: rgba(255, 255, 255, .83);
    }

    .beyond-language .bl-private-price {
      margin-top: 26px;
      padding: 19px 22px;
      border: 1px solid rgba(198, 218, 236, .3);
      border-radius: var(--bl-radius);
      background: rgba(255, 255, 255, .06);
    }

    .beyond-language .bl-private-price-label {
      color: var(--bl-sky);
      font-size: .83rem;
      font-weight: 700;
    }

    .beyond-language .bl-private-price-amount {
      margin-top: 4px;
      color: #fff8e8;
      font-size: clamp(1.45rem, 2.5vw, 1.9rem);
      font-weight: 800;
      line-height: 1.6;
    }

    .beyond-language .bl-private-price-amount span {
      display: inline-block;
      color: rgba(255, 255, 255, .83);
      font-size: .9rem;
      font-weight: 400;
    }

    .beyond-language .bl-private .bl-button {
      background: var(--bl-white);
      color: var(--bl-accent);
      box-shadow: none;
    }

    .beyond-language .bl-private .bl-button:hover {
      background: #dceafa;
    }

    .beyond-language .bl-checks {
      display: grid;
      gap: 18px;
      margin-top: 28px;
      padding: 0;
      list-style: none;
    }

    .beyond-language .bl-checks li {
      padding-bottom: 18px;
      border-bottom: 1px solid rgba(198, 218, 236, .25);
    }

    .beyond-language .bl-checks strong {
      display: block;
      margin-bottom: 5px;
    }

    .beyond-language .bl-checks span {
      color: rgba(255, 255, 255, .8);
      font-size: .92rem;
    }

    /* FAQ */

    .beyond-language .bl-centered {
      text-align: center;
    }

    .beyond-language .bl-faq {
      max-width: 850px;
      margin: 36px auto 0;
      border-top: 1px solid var(--bl-line);
    }

    .beyond-language .bl-faq details {
      border-bottom: 1px solid var(--bl-line);
    }

    .beyond-language .bl-faq summary {
      padding: 24px 8px;
      color: var(--bl-ink);
      cursor: pointer;
      font-weight: 800;
      line-height: 1.8;
    }

    .beyond-language .bl-faq summary::marker {
      color: var(--bl-accent-hover);
    }

    .beyond-language .bl-faq details p {
      padding: 0 8px 26px;
      color: var(--bl-muted);
      font-size: .94rem;
      line-height: 1.95;
    }

    /* Final invitation */

    .beyond-language .bl-final {
      background:
        radial-gradient(
          ellipse at 50% 0%,
          rgba(104, 166, 244, .15),
          transparent 65%
        ),
        var(--bl-navy);
      color: #fff8e8;
      text-align: center;
    }

    .beyond-language .bl-final h2 {
      color: #fff8e8;
    }

    .beyond-language .bl-final .bl-eyebrow {
      color: var(--bl-sky);
    }

    .beyond-language .bl-final .bl-lead {
      margin-inline: auto;
      color: rgba(255, 255, 255, .85);
    }

    .beyond-language .bl-final .bl-actions {
      justify-content: center;
    }

    .beyond-language .bl-final .bl-button {
      border-color: rgba(198, 218, 236, .3);
      background: #135fc6;
    }

    .beyond-language .bl-final .bl-button:hover {
      background: #1a6bdd;
    }

    .beyond-language .bl-final .bl-button--outline {
      border-color: rgba(198, 218, 236, .6);
      background: transparent;
      color: #fff;
      box-shadow: none;
    }

    .beyond-language .bl-final .bl-button--outline:hover {
      background: rgba(255, 255, 255, .1);
    }

    .beyond-language .bl-final .bl-note {
      color: rgba(255, 255, 255, .76);
    }

    /* Tablet */

    @media (max-width: 900px) {
      .beyond-language .bl-hero-grid,
      .beyond-language .bl-split,
      .beyond-language .bl-course-body {
        grid-template-columns: minmax(0, 1fr);
      }

      .beyond-language .bl-hero-grid {
        min-height: auto;
        gap: 44px;
        padding-bottom: 70px;
      }

      .beyond-language .bl-phrase-board {
        width: min(100%, 520px);
        margin-inline: auto;
      }

      .beyond-language .bl-grid-three {
        grid-template-columns: minmax(0, 1fr);
      }

      .beyond-language .bl-card-label {
        margin-bottom: 14px;
      }

      .beyond-language .bl-summary-grid {
        grid-template-columns: repeat(2, minmax(0, 1fr));
      }
    }

    /* Mobile header clearance */

    @media (max-width: 640px) {
      .beyond-language {
        --bl-header-clearance: 112px;
      }

      .beyond-language .bl-hero-grid {
        padding-top: var(--bl-header-clearance);
      }
    }

    @media (max-width: 560px) {
      .beyond-language .bl-wrap {
        width: calc(100% - 30px);
      }

      .beyond-language .bl-section {
        padding-block: 64px;
      }

      .beyond-language .bl-hero h1 {
        font-size: clamp(2.5rem, 10.8vw, 3.55rem);
        line-height: 1.4;
      }

      .beyond-language h2 {
        font-size: clamp(1.85rem, 7.8vw, 2.6rem);
        line-height: 1.55;
      }

      .beyond-language .bl-hero-grid {
        padding-bottom: 58px;
      }

      .beyond-language .bl-hero-subtitle {
        font-size: 1.05rem;
      }

      .beyond-language .bl-phrase-board {
        padding: 24px 20px;
      }

      .beyond-language .bl-phrase {
        padding: 20px;
      }

      .beyond-language .bl-phrase:nth-of-type(2) {
        margin-left: 14px;
      }

      .beyond-language .bl-actions {
        flex-direction: column;
        align-items: stretch;
      }

      .beyond-language .bl-button {
        width: 100%;
        white-space: normal;
      }

      .beyond-language .bl-text-link {
        padding: 8px 0;
        text-align: center;
      }

      .beyond-language .bl-summary-grid {
        gap: 20px 14px;
      }

      .beyond-language .bl-summary dd {
        font-size: .91rem;
      }

      .beyond-language .bl-card,
      .beyond-language .bl-course-intro,
      .beyond-language .bl-course-body {
        padding: 24px;
      }

      .beyond-language .bl-course-bottom {
        padding: 0 24px 26px;
      }

      .beyond-language .bl-facts > div {
        grid-template-columns: minmax(0, 1fr);
        gap: 6px;
      }

      .beyond-language .bl-private {
        padding: 30px 23px;
      }

      .beyond-language .bl-private-price {
        padding: 17px;
      }

      .beyond-language .bl-steps li {
        padding-left: 45px;
      }
    }

    @media (prefers-reduced-motion: reduce) {
      .beyond-language .bl-button {
        transition: none;
      }

      .beyond-language .bl-button:hover {
        transform: none;
      }
    }
  
.beyond-language .bl-language-links{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 26px;margin-top:24px;list-style:none;padding:0}
.beyond-language .bl-language-links a{font-weight:700}
.beyond-language .bl-private .bl-note a{color:var(--bl-sky)}
