@charset "UTF-8";
@media screen {
   html {
      scroll-behavior: smooth;
   }

   body {
      font-family: "Jost", "Noto Sans JP", sans-serif;
      color: #383838;
      letter-spacing: .05em;
      background-image: url(../img/bg_main.jpg);
      background-size: cover;
      letter-spacing: .1em;
      font-size: 16px;
      position: relative;
   }

   a {
      transition: opacity .3s;
   }

   a:hover {
      opacity: 0.7;
   }

   img {
      width: 100%;
   }

   :root {
      --gradient: linear-gradient(to right, #528DD2 0%, #123880 46%, #514A9D 100%);
      --box-shadow: 0px 0px 10px 0px rgba(103, 161, 220, 1);
      /* ドロップシャドウ */
   }

   .gr_text {
      background: var(--gradient);
      /* グラデーションを適用 */
      -webkit-background-clip: text;
      /* 背景をテキストにクリップ */
      -webkit-text-fill-color: transparent;
      /* テキストを透明にする */
      background-clip: text;
      /* 標準的な背景クリップ（Safari以外用） */
   }

   em {
      font-style: normal;
   }

   .sp {
      display: none;
   }

   .cta_sp {
      display: none;
   }


   /************************************* ヘッダー *************************************/
   header {
      position: relative;
      z-index: 1000;
   }

   header .sideColumn {
      width: 240px;
      height: 100dvh;
      position: fixed;
   }

   header .sideColumn h1 {
      text-align: center;
      margin-top: 20px;
      z-index: 100;
      position: relative;
   }

   header .sideColumn h1 img {
      width: 138px;
   }

   header .sideColumn .sideColumn_links {
      width: 50%;
      height: 100dvh;
      background-color: #fff;
      position: absolute;
      left: 0;
      top: 0;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: flex-end;
      gap: 14px;
   }

   header .sideColumn .sideColumn_links::after {
      content: "";
      height: 160px;
      /* 期待する padding-bottom の値 */
      display: block;
   }

   header .sideColumn .sideColumn_links a.btn_instagram {
      width: 28px;
   }

   header .sideColumn .sideColumn_links a.btn_contact {
      width: 120px;
   }

   /* ナビゲーションボタン（左下固定） */
   header .sideColumn .nav-buttons {
      position: fixed;
      bottom: 0;
      left: 0;
      display: flex;
      width: 240px;
      height: 136px;
   }

   header .sideColumn .nav-buttons button {
      width: 120px;
      cursor: pointer;
      transition: opacity .3s;
   }

   .nav-buttons button:hover {
      opacity: 0.7;
   }



   /************************************* ハンバーガーメニュー *************************************/
   body.menu-open::before {
      content: "";
      position: fixed;
      top: 0;
      left: 0;
      width: 100%;
      height: 100%;
      background: rgba(0, 0, 0, 0.5);
      z-index: 1010;
   }

   /* メニューを開くボタン */
   .menuOpen {
      position: fixed;
      top: 50px;
      right: 68px;
      background: none;
      border: none;
      cursor: pointer;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
      z-index: 1000;
   }

   body.menu-open .menuOpen {
      display: none;
   }

   .menuOpen img {
      width: 41px;
      height: 22px;
      pointer-events: none;
   }

   /* メニューを閉じるボタン */
   .menuClose {
      position: absolute;
      top: 50px;
      right: 68px;
      background: none;
      border: none;
      cursor: pointer;
      padding: 0;
      display: flex;
      align-items: center;
      justify-content: center;
   }

   .menuClose img {
      width: 24px;
      height: 20px;
      pointer-events: none;
   }

   /* メニュー本体 */
   .menuContents {
      position: fixed;
      top: 0;
      left: 90px;
      width: calc(100vw - 180px);
      background: var(--gradient);
      /* グラデーションを適用 */
      color: white;
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      opacity: 0;
      visibility: hidden;
      transition: opacity 0.3s ease-in-out, visibility 0.3s;
      border-radius: 84px;
      z-index: 3000;
      padding: 70px 260px;
   }

   .menuContents>p {
      position: absolute;
      left: 54px;
      top: 36px;
   }

   .menuContents ul {
      list-style: none;
      padding: 0;
      display: grid;
      grid-template-rows: repeat(4, auto);
      grid-auto-flow: column;
      gap: 15px 40px;
   }

   .menuContents ul.sp {
      display: none;
   }

   .menuContents li {
      margin: 10px 0;
      height: 43px;
   }

   .menuContents li img {
      height: 100%;
      width: auto;
   }



   /************************************* main全体設定 *************************************/
   main {
      scroll-snap-type: y mandatory;
      /* 縦スクロールスナップ */
      overflow-y: scroll;
      /* スクロール可能 */
      height: 100vh;
      /* 画面いっぱい */
      width: calc(100vw - 120px);
      margin-left: 120px;
      padding: 0;
   }

   /* 各セクション */
   main section.scroll-page {
      height: 100vh;
      /* 各セクションを画面全体の高さに */
      scroll-snap-align: start;
      /* スクロールスナップポイント */
   }

   main>*:not(section.FV),
   main>div.curriculum {
      background-position: left top;
      background-size: contain;
      background-repeat: no-repeat;
   }

   main section.scroll-page h2:not(section.FV h2, section.about h2) {
      text-align: right;
      background: var(--gradient);
      /* グラデーションを適用 */
      -webkit-background-clip: text;
      /* 背景をテキストにクリップ */
      -webkit-text-fill-color: transparent;
      /* テキストを透明にする */
      background-clip: text;
      /* 標準的な背景クリップ（Safari以外用） */
      font-size: 48px;
      letter-spacing: .32em;
      padding-top: 21.48vh;
      font-weight: bold;
   }


   /************************************* section.FV *************************************/
   main section.FV {
      background-image: url(../img/bg_FV02.png), url(../img/bg_FV01.jpg);
      background-size: contain, cover;
      background-position: center, center;
      background-repeat: no-repeat, no-repeat;
   }

   main section.FV>div {
      display: flex;
      flex-direction: column;
      align-items: center;
      justify-content: center;
      gap: 22px;
      font-weight: bold;
      color: white;
      font-size: 56px;
      letter-spacing: .06em;
      padding-bottom: 90px;
      height: 100vh;
   }

   main section.FV>div p {
      display: inline-block;
      background: var(--gradient);
      padding-left: 15px;
      padding-right: 15px;
   }

   main section.FV>div p:first-child {
      font-size: 40px;
      padding: 9px 36px;
      border-radius: 30px 0 30px 0;
      display: flex;
      align-items: center;
      gap: 6px;
   }

   main section.FV>div p:first-child img {
      width: 15px;
   }

   main section.FV>div p:nth-child(2) span {
      font-size: 64px;
   }

   /************************************* section.news *************************************/
   main section.news {
      background-image: url(../img/bg_news.png);
      padding-left: 20px;
   }

   main section.news h2 {
      padding-right: 7.98vw;
      margin-bottom: 100px;
   }

   .home ul.newsContainer {
      padding-right: 7.98vw;
   }

   ul.newsContainer {
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 16px;
   }

   ul.newsContainer li {
      margin-bottom: 24px;
   }

   ul.newsContainer li a {
      position: relative;
      display: block;
      max-width: 894px;
      width: 100%;
      background-color: #fff;
      border-radius: 30px;
      padding: 30px 48px 30px 22px;
   }

   ul.newsContainer li a::after {
      position: absolute;
      right: 12px;
      top: 50%;
      transform: translateY(-50%);
      content: "❯";
      color: #123880;
      border: none;
      padding: 5px 10px;
      font-size: 18px;
      height: 30px;
      display: flex;
      align-items: center;
      justify-content: center;
   }

   ul.newsContainer li h3 {
      margin-bottom: 18px;
      display: flex;
      line-height: 1.6;
   }

   ul.newsContainer li h3 .news_title {
      font-weight: bold;
      letter-spacing: .2em;
      font-size: 16px;
   }

   ul.newsContainer li h3 .news_date {
      width: 7em;
      font-size: 16px;
   }

   ul.newsContainer li a p {
      font-size: 14px;
      line-height: 1.6;
   }

   main .news>p {
      display: flex;
      justify-content: flex-end;
      padding-right: 7.98vw;
   }

   main .news>p a {
      width: 894px;
      display: block;
      text-align: right;
      font-weight: bold;
      padding-right: 30px;
   }

   /************************************* section.about *************************************/
   main section.about {
      background-image: url(../img/bg_about.png);
      padding-top: 13.67vw;
   }

   main section.about h2,
   main section.about>div {
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      padding-right: 7.98vw;
   }

   main section.about>div.sp {
      display: none;
   }

   main section.about h2 {
      gap: 32px;
      letter-spacing: .32em;
      font-size: 48px;
      padding-top: 80px;
      padding-bottom: 100px;
      background-image: url(../img/bg_about02.png);
      background-repeat: no-repeat;
      background-size: contain;
      background-position: right 7.98vw bottom;
   }

   main section.about>div {
      gap: 16px;
   }

   main section.about h2 span,
   main section.about>div p {
      display: inline-block;
      background-color: #fff;
   }

   main section.about h2 span {
      padding: 6px 32px 2px;
      box-shadow: var(--box-shadow);
      /* 変数を適用 */
   }

   main section.about>div p {
      padding: 16px 16px 12px;
   }


   /************************************* section.feature *************************************/
   main section.feature {
      background-image: url(../img/bg_feature.png);
      display: flex;
      flex-direction: column;
      align-items: flex-end;
   }

   main section.feature h2 {
      padding-right: 7.98vw;
      margin-bottom: 100px;
   }

   main section.feature>section {
      width: 919px;
      height: 289px;
      background-size: contain;
      background-position: right top;
      background-repeat: no-repeat;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 30px;
      padding-top: 60px;
      padding-right: 7.98vw;
   }

   main section.feature>section:nth-of-type(1) {
      background-image: url(../img/bg_feature01.png);
   }

   main section.feature>section:nth-of-type(2) {
      background-image: url(../img/bg_feature02.png);
   }

   main section.feature>section>* {
      width: 560px;
   }

   main section.feature>section>h3 {
      font-size: 32px;
   }

   main section.feature>section>p {
      line-height: 2;
   }


   /************************************* section.curriculum *************************************/
   main>div.curriculum {
      background-image: url(../img/bg_cur.png);
   }

   /********** section.curriculum01 **********/
   main section.curriculum01 {
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      padding-right: 7.98vw;

   }

   main section.curriculum01 h2 {
      margin-bottom: 25px;
   }

   main section.curriculum01>section:nth-of-type(1) {
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      gap: 16px;
      margin-bottom: 64px;
   }

   main section.curriculum01>section:nth-of-type(1) p {
      background-color: #fff;
      padding: 16px;
   }

   main section.curriculum01>section:nth-of-type(3) {
      display: flex;
      gap: 16px;
      background-image: url(../img/bg_cur01.svg);
      background-size: 627px 48px;
      background-position: right top;
      background-repeat: no-repeat;
      padding-top: 26px;
      margin-bottom: 64px;
   }

   main section.curriculum01>section:nth-of-type(3) p {
      width: 185px;
   }

   main section.curriculum01>section:nth-of-type(4) p {
      width: 320px;
   }

   /********** section.curriculum02,03 **********/
   main section.curriculum02,
   main section.curriculum03 {
      position: relative;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
   }

   main section.curriculum02:after,
   main section.curriculum03:after {
      content: "";
      width: 100%;
      height: 100%;
      position: absolute;
      left: 0;
      top: 0;
      background-image: url(../img/bg_cur02.png);
      background-repeat: no-repeat;
      background-position: right top 29.29vh;
      background-size: 478px 572px;
   }

   main section.curriculum02 h3,
   main section.curriculum03 h3 {
      font-size: 24px;
      font-weight: bold;
      text-align: right;
      padding-top: 22.16vh;
      padding-right: 7.98vw;
      padding-bottom: 16px;
      letter-spacing: .32em;
   }

   main section.curriculum02 ul,
   main section.curriculum03 ul {
      display: flex;
      flex-direction: column;
      padding-right: 498px;
   }

   main section.curriculum02 ul li,
   main section.curriculum03 ul li {
      width: 647px;
      height: 232px;
      background-size: contain;
      background-repeat: no-repeat;
      padding: 40px 22px 20px 44px;
      margin-bottom: -15px;
   }

   main section.curriculum02 ul li:nth-child(1) {
      background-image: url(../img/bg_cur02-1.png);
   }

   main section.curriculum02 ul li:nth-child(2) {
      background-image: url(../img/bg_cur02-2.png);
   }

   main section.curriculum02 ul li:nth-child(3) {
      background-image: url(../img/bg_cur02-3.png);
   }

   main section.curriculum03 ul li:nth-child(1) {
      background-image: url(../img/bg_cur03-1.png);
   }

   main section.curriculum03 ul li:nth-child(2) {
      background-image: url(../img/bg_cur03-2.png);
   }

   main section.curriculum02 h4,
   main section.curriculum03 h4 {
      font-size: 24px;
      letter-spacing: .32em;
      margin-bottom: 14px;
   }

   main section.curriculum02,
   main section.curriculum03 {
      line-height: 1.5;
   }

   /********** section.curriculum04 **********/
   main section.curriculum04 {
      position: relative;
      padding-right: 7.98vw;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
   }

   main section.curriculum04:after {
      content: "";
      width: 100%;
      height: 100%;
      position: absolute;
      left: 0;
      top: 0;
      background-image: url(../img/bg_cur04.png);
      background-repeat: no-repeat;
      background-position: right top 35.64vh;
      background-size: 516px 521px;
   }

   main section.curriculum04>section:nth-of-type(1) {
      display: flex;
      justify-content: flex-end;
      padding-top: 21.48vh;
   }

   main section.curriculum04>section:nth-of-type(1) p {
      width: 479px;
   }

   main section.curriculum04>h3 {
      font-size: 24px;
      font-weight: bold;
      text-align: right;
      padding-top: 36px;
      padding-bottom: 36px;
      letter-spacing: .32em;
   }

   main section.curriculum04>section:nth-of-type(2) {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 12px;
      margin-right: 440px;
   }

   main section.curriculum04>section:nth-of-type(2) p {
      background-color: #fff;
      padding: 16px;
   }

   /********** section.curriculum05 **********/
   main section.curriculum05 {
      position: relative;
      padding-right: 7.98vw;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
   }

   main section.curriculum05:after {
      content: "";
      width: 100%;
      height: 100%;
      position: absolute;
      left: 0;
      top: 0;
      background-image: url(../img/bg_cur05-02.png);
      background-repeat: no-repeat;
      background-position: right top 35.15vh;
      background-size: 518px 386px;
   }

   main section.curriculum05>section:nth-of-type(1) {
      display: flex;
      justify-content: flex-end;
      padding-top: 21.48vh;
   }

   main section.curriculum05>section:nth-of-type(1) p {
      width: 519px;
   }

   main section.curriculum05>h3 {
      font-size: 24px;
      font-weight: bold;
      text-align: right;
      padding-top: 36px;
      padding-bottom: 36px;
      letter-spacing: .32em;
   }

   main section.curriculum05>section:nth-of-type(2) {
      width: 480px;
      margin-right: 430px;
      line-height: 1.5;
   }

   main section.curriculum05>section:nth-of-type(2)>p {
      margin-bottom: 30px;
   }

   main section.curriculum05>section:nth-of-type(2)>div {
      background-image: url(../img/bg_cur05-01.png);
      background-size: contain;
      background-repeat: no-repeat;
      width: 530px;
      height: 270px;
      padding-top: 40px;
      padding-left: 135px;
      margin-left: -20px;
      margin-bottom: 56px;
   }

   main section.curriculum05>section:nth-of-type(2)>div h4 {
      font-size: 16px;
      margin-bottom: 18px;
      font-weight: bold;
   }

   main section.curriculum05>section:nth-of-type(2)>div p {
      width: 300px;
   }

   main section.curriculum05>section:nth-of-type(3) {
      display: flex;
      justify-content: flex-end;
   }

   main section.curriculum05>section:nth-of-type(3) p {
      width: 243px;
   }

   /********** section.curriculum06 **********/
   main section.curriculum06 {
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      padding-right: 7.98vw;
   }

   main section.curriculum06>h3 {
      font-size: 24px;
      font-weight: bold;
      text-align: right;
      padding-top: 21.48vh;
      padding-bottom: 24px;
      letter-spacing: .32em;
      line-height: 1.8;
   }

   main section.curriculum06>p {
      font-weight: bold;
      text-align: right;
      padding-bottom: 24px;
      letter-spacing: .32em;
   }

   main section.curriculum06>section {
      display: flex;
      justify-content: flex-end;
      margin-bottom: 64px;
   }

   main section.curriculum06>section p {
      width: 270px;
   }


   /************************************* section.support *************************************/
   main section.support {
      background-image: url(../img/bg_support.png);
      padding-right: 7.98vw;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
   }

   main section.support h2 {
      padding-bottom: 100px;
   }

   main section.support>div div.scroll-item {
      background-size: contain;
      background-repeat: no-repeat;
      padding-left: 67px;
      line-height: 1.5;
   }

   main section.support>div div.scroll-item:nth-child(1) {
      background-image: url(../img/bg_support01-1.png);
      background-position: left top;
      padding-top: 280px;
   }

   main section.support>div div.scroll-item:nth-child(2) {
      background-image: url(../img/bg_support01-2.png);
      background-position: left bottom;
      padding-top: 324px;
   }

   main section.support>div div.scroll-item:nth-child(3) {
      background-image: url(../img/bg_support01-3.png);
      background-position: left top;
      padding-top: 280px;
   }

   main section.support>div div.scroll-item:nth-child(4) {
      background-image: url(../img/bg_support01-4.png);
      background-position: left bottom;
      padding-top: 324px;
   }

   main section.support>div div.scroll-item h3 {
      margin-bottom: 20px;
   }

   main section.support>div div.scroll-item:nth-child(1) h3 {
      width: 200px;
   }

   main section.support>div div.scroll-item:nth-child(2) h3 {
      width: 176px;
   }

   main section.support>div div.scroll-item:nth-child(3) h3 {
      width: 152px;
   }

   main section.support>div div.scroll-item:nth-child(4) h3 {
      width: 200px;
   }

   main section.support>div div.scroll-item p:nth-of-type(2) {
      letter-spacing: .32em;
      margin-top: 8px;
   }

   /************************************* section.price *************************************/
   main section.price {
      background-image: url(../img/bg_price.png);
      display: flex;
      flex-direction: column;
      align-items: flex-end;
   }

   main section.price>h2 {
      padding-right: 7.98vw;
      margin-bottom: 24px;
   }

   main section.price>p {
      padding-right: 7.98vw;
      display: flex;
      gap: 24px;
      align-items: center;
      margin-bottom: 100px;
   }

   main section.price>p span {
      font-size: 32px;
   }

   main section.price>section {
      width: 1084px;
      height: 512px;
      background-image: url(../img/bg_price01.png);
      background-size: contain;
      background-position: right top;
      background-repeat: no-repeat;
      padding: 48px 7.98vw 0 145px;
   }

   main section.price>section>h3 {
      font-size: 24px;
      margin-bottom: 8px;
   }

   main section.price>section>p {
      line-height: 1.5;
      margin-bottom: 40px;
   }

   main section.price>section>section {
      display: flex;
      justify-content: space-between;
   }

   main section.price>section>section>div {
      color: #fff;
   }

   main section.price>section>section>div:nth-child(1),
   main section.price>section>section>div:nth-child(2) {
      width: 250px;
      height: 250px;
      background-image: url(../img/bg_price02.png);
      background-size: contain;
      background-repeat: no-repeat;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
   }

   main section.price>section>section>div:nth-child(2)>div {
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
   }

   main section.price>section>section>div:nth-child(1) h4,
   main section.price>section>section>div:nth-child(2) h4 {
      margin-bottom: 12px;
   }

   main section.price>section>section>div:nth-child(1) p span:nth-child(1) {
      font-size: 32px;
   }

   main section.price>section>section>div:nth-child(1) p span:nth-child(2) {
      font-size: 20px;
   }

   main section.price>section>section>div:nth-child(2) p.priceDetail {
      font-size: 32px;
   }

   main section.price>section>section>div:nth-child(2) p.priceDetail span {
      font-size: 20px;
   }

   /* 初期状態で非表示（アニメーション用） */
   main section.price>section>section>div:nth-of-type(2)>div {
      display: flex;
      /* アニメーション適用のため block に設定 */
      opacity: 0;
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.5s ease-out, opacity 0.5s ease-out;
      /* 0.3秒遅延 */
   }

   /* ボタンがクリックされた後に表示（スライドダウン + フェードイン） */
   main section.price>section>section>div:nth-of-type(2).active>div {
      max-height: 200px;
      /* 十分な高さを指定（適宜調整） */
      opacity: 1;
   }

   /* ボタンの基本スタイル */
   main section.price>section>section>div:nth-of-type(2) button {
      width: 25px;
      height: 25px;
      margin-top: 10px;
      cursor: pointer;
      transition: opacity 0.1s ease-out, height 0.1s ease-out;
      /* ボタンのフェードアウト */
   }

   /* ボタン非表示（フェードアウト） */
   main section.price>section>section>div:nth-of-type(2) button.hidden {
      opacity: 0;
      height: 5px;
      pointer-events: none;
      /* クリックを無効化 */
   }

   main section.price>section>section>div:nth-child(3) {
      width: 240px;
      display: flex;
      flex-direction: column;
      gap: 12px;
      margin-top: 16px;
   }

   main section.price>section>section>div:nth-child(3) p {
      height: 44px;
      text-align: center;
      line-height: 44px;
      background-image: url(../img/bg_price04.png);
      background-size: contain;
      background-repeat: no-repeat;
   }

   /************************************* section.flow *************************************/
   main section.flow {
      padding-right: 7.98vw;
      background-image: url(../img/bg_flow.png);
      display: flex;
      flex-direction: column;
      align-items: flex-end;
   }

   main section.flow h2 {
      margin-bottom: 100px;
   }

   main section.flow div.scroll-container>div {
      background-size: contain;
      background-position: left top;
      background-repeat: no-repeat;
      padding: 136px 24px 0 32px;
   }

   main section.flow div.scroll-container>div:nth-child(1) {
      background-image: url(../img/bg_flow01-1.png);
   }

   main section.flow div.scroll-container>div:nth-child(2) {
      background-image: url(../img/bg_flow01-2.png);
   }

   main section.flow div.scroll-container>div:nth-child(3) {
      background-image: url(../img/bg_flow01-3.png);
   }

   main section.flow div.scroll-container>div:nth-child(4) {
      background-image: url(../img/bg_flow01-4.png);
   }

   main section.flow div.scroll-container>div h3 {
      text-align: center;
      font-size: 24px;
      margin-bottom: 190px;
   }

   main section.flow div.scroll-container>div:nth-child(1) h3 {
      margin-bottom: 210px;
   }

   main section.flow div.scroll-container>div p {
      line-height: 1.5;
   }

   /************************************* section.faq *************************************/
   main .faq {
      background-image: url(../img/bg_faq.png);
   }

   main .faq>section {
      padding-right: 7.98vw;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      position: relative;
      padding-left: 20px;
   }

   main .faq>section h2 {
      margin-bottom: 100px;
   }

   main .faq>section section {
      margin-bottom: 24px;
      position: relative;
      width: 100%;
      max-width: 894px;
      background-color: #fff;
      border-radius: 30px;
   }

   main .faq>section section p {
      margin: 0;
      padding: 0 54px;
      line-height: 1.5;
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s ease-in-out, padding 0.3s ease-in-out;
   }

   main .faq>section section h3 {
      cursor: pointer;
      padding: 16px 22px;
      margin: 0;
      display: flex;
      justify-content: space-between;
      align-items: center;
      font-size: 20px;
   }

   main .faq>section section h3::after {
      content: "";
      width: 25px;
      height: 25px;
      background-image: url(../img/icon_plus.png);
      background-repeat: no-repeat;
      background-size: contain;
      background-position: center;
      margin-left: 10px;
      transition: transform 0.3s ease-in-out;
      flex-shrink: 0;
   }

   main .faq>section section span {
      display: flex;
      align-items: center;
      gap: 4px;
   }

   main .faq>section section h3 span::before {
      content: "";
      width: 44px;
      height: 58px;
      background-image: url(../img/icon_Q.png);
      background-size: contain;
      background-repeat: no-repeat;
   }

   main .faq>section section.open h3::after {
      background-image: url(../img/icon_minus.png);
   }

   main .faq>section>ul {
      display: flex;
      justify-content: flex-end;
      position: absolute;
      right: 7.98vw;
      bottom: 50px;
      gap: 44px;
   }





   /************************************* 横スクロール設定 *************************************/
   /* コンテナ全体 */
   .scroll-wrapper {
      position: relative;
      overflow: hidden;
      padding-bottom: 48px;
      /* コントローラーのための余白 */
      display: flex;
      justify-content: flex-end;
      /* 右端で揃える */
   }

   #scrollWrapper1 {
      width: 788px;
      margin-bottom: 64px;
   }

   #scrollWrapper2 {
      width: 894px;
   }

   #scrollWrapper3 {
      width: 960px;
   }

   #scrollWrapper4 {
      width: 960px;
   }

   /* 横スクロールコンテナ (1つ目: 2行6列) */
   .scroll-container.grid {
      display: grid;
      grid-template-columns: repeat(6, 1fr);
      /* 6列 */
      grid-template-rows: repeat(2, auto);
      /* 2行 */
      gap: 16px;
      /* 縦横の間隔 */
      justify-content: start;
      /* 左揃え */
      width: max-content;
      padding-left: 16px;
      /* 左側の余白 */
      overflow-x: scroll;
      scroll-behavior: smooth;
      scrollbar-width: none;
      /* Firefoxでスクロールバーを非表示 */
   }

   /* 横スクロールコンテナ (2つ目: 横長画像) */
   .scroll-container.image {
      display: block;
      width: max-content;
      /* 横長画像のサイズに合わせる */
      overflow-x: scroll;
      /* 横スクロールを有効化 */
      scroll-behavior: smooth;
      scrollbar-width: none;
      /* Firefoxでスクロールバーを非表示 */
   }

   /* 横スクロールコンテナ (3つ目: 横並び) */
   .scroll-container.horizontal {
      display: flex;
      /* 横並び */
      gap: 40px;
      /* 要素間の間隔 */
      overflow-x: scroll;
      /* 横スクロールを有効化 */
      scroll-behavior: smooth;
      /* スムーズなスクロール */
      width: max-content;
      /* コンテナサイズをアイテムに合わせる */
   }

   /* 横スクロールコンテナ (4つ目: 横並び) */
   .scroll-container.horizontal2 {
      display: flex;
      /* 横並び */
      gap: 28px;
      /* 要素間の間隔 */
      overflow-x: scroll;
      /* 横スクロールを有効化 */
      scroll-behavior: smooth;
      /* スムーズなスクロール */
      width: max-content;
      /* コンテナサイズをアイテムに合わせる */
   }

   /* Webkit系ブラウザでスクロールバーを非表示 */
   .scroll-container::-webkit-scrollbar {
      display: none;
   }

   /* スクロールアイテム (1つ目のセット用) */
   .scroll-container.grid .scroll-item {
      width: 252px;
      height: 48px;
      background: #fff;
      text-align: center;
      line-height: 48px;
      font-size: 20px;
      font-weight: bold;
      border-radius: 24px;
   }

   /* 横長画像 (2つ目のセット用) */
   .scroll-container.image .scroll-image {
      display: block;
      height: 100%;
      /* 表示領域に合わせた高さ */
      width: auto;
      /* 横幅を自動調整 */
   }

   /* 横並び (3つ目のセット用) */
   .scroll-container.horizontal .scroll-item {
      flex-shrink: 0;
      /* 縮小を防止して、アイテムが一定サイズを保つ */
      width: 291px;
      /* アイテムの幅 */
      height: 528px;
      /* アイテムの高さ */
   }

   /* 横並び (4つ目のセット用) */
   .scroll-container.horizontal2 .scroll-item {
      flex-shrink: 0;
      /* 縮小を防止して、アイテムが一定サイズを保つ */
      width: 275px;
      /* アイテムの幅 */
      height: 492px;
      /* アイテムの高さ */
   }


   /* コントローラー（スクロールバー＋ボタン） */
   .controller {
      display: flex;
      align-items: center;
      position: absolute;
      bottom: 0;
      right: 0;
      /* 右端で揃える */
   }

   /* スクロールボタン（矢印） */
   .scroll-button {
      color: #123880;
      border: none;
      padding: 5px 10px;
      cursor: pointer;
      font-size: 18px;
      z-index: 1000;
      height: 30px;
      display: flex;
      align-items: center;
      justify-content: center;
   }

   /* スクロールバーの移動領域 */
   .scroll-bar-wrapper {
      width: 220px;
      /* 固定幅 */
      height: 2px;
      background: #f0f0f0;
      border-radius: 4px;
      position: relative;
      overflow: hidden;
      margin: 0 5px;
   }

   /* スクロールバー本体 */
   .scroll-bar {
      width: 50px;
      height: 2px;
      background: var(--gradient);
      /* グラデーション適用 */
      border-radius: 4px;
      position: absolute;
      left: 0;
      transition: left 0.1s ease, width 0.1s ease;
   }
}





@media screen and (max-width : 1280px) {
   body {
      font-size: 1.11vw;
   }

   :root {
      --box-shadow: 0.00vw 0.00vw 0.69vw 0.00vw rgba(103, 161, 220, 1);
      /* ドロップシャドウ */
   }

   /************************************* ヘッダー *************************************/
   header .sideColumn {
      width: 16.67vw;
   }

   header .sideColumn h1 {
      margin-top: 1.39vw;
   }

   header .sideColumn h1 img {
      width: 9.58vw;
   }

   header .sideColumn .sideColumn_links {
      gap: 0.97vw;
   }

   header .sideColumn .sideColumn_links::after {
      height: 11.11vw;
   }

   header .sideColumn .sideColumn_links a.btn_instagram {
      width: 1.94vw;
   }

   header .sideColumn .sideColumn_links a.btn_contact {
      width: 8.33vw;
   }

   /* ナビゲーションボタン（左下固定） */
   header .sideColumn .nav-buttons {
      width: 16.67vw;
      height: 9.44vw;
   }

   header .sideColumn .nav-buttons button {
      width: 8.33vw;
   }

   /************************************* ハンバーガーメニュー *************************************/
   /* メニューを開くボタン */
   .menuOpen {
      right: 4.72vw;
   }

   /* メニューを閉じるボタン */
   .menuClose {
      position: absolute;
      top: 50px;
      right: 4.72vw;
   }

   /* メニュー本体 */
   .menuContents {
      left: 6.25vw;
      width: calc(100vw - 12.5vw);
      border-radius: 5.83vw;
      padding: 4.86vw 18.05vw;
   }

   .menuContents>p {
      left: 3.75vw;
   }

   .menuContents ul {
      gap: 1.04vw 2.77vw;
   }

   .menuContents li {
      margin: 0.69vw 0;
      height: 2.98vw;
   }

   /************************************* main全体設定 *************************************/
   main {
      width: calc(100vw - 8.33vw);
      margin-left: 8.33vw;
   }

   main section.scroll-page h2:not(section.FV h2, section.about h2) {
      font-size: 3.33vw;
      padding-top: 15.28vw;
   }

   /************************************* section.FV *************************************/
   main section.FV>div {
      gap: 1.53vw;
      font-size: 3.89vw;
      padding-bottom: 6.25vw;
   }

   main section.FV>div p {
      padding-left: 1.04vw;
      padding-right: 1.04vw;
   }

   main section.FV>div p:first-child {
      font-size: 2.78vw;
      padding: 0.63vw 2.50vw;
      border-radius: 2.08vw 0 2.08vw 0;
      gap: 0.42vw;
   }

   main section.FV>div p:first-child img {
      width: 1.04vw;
   }

   main section.FV>div p:nth-child(2) span {
      font-size: 4.44vw;
   }

   /************************************* section.news *************************************/
   .home ul.newsContainer li:last-child {
      display: none;
   }

   /************************************* section.about *************************************/
   main section.about {
      padding-top: 9.72vw;
   }

   main section.about h2,
   main section.about>div {
      padding-right: 7.99vw;
   }

   main section.about h2 {
      gap: 2.22vw;
      font-size: 3.33vw;
      padding-top: 5.56vw;
      padding-bottom: 6.94vw;
      background-position: right 7.99vw bottom;
   }

   main section.about>div {
      gap: 1.11vw;
   }

   main section.about h2 span {
      padding: 0.42vw 2.22vw 0.14vw;
   }

   main section.about>div p {
      padding: 1.11vw 1.11vw 0.83vw;
   }

   /************************************* section.feature *************************************/
   main section.feature h2 {
      padding-right: 7.99vw;
      margin-bottom: 6.94vw;
   }

   main section.feature>section {
      width: 63.82vw;
      height: 20.07vw;
      gap: 2.08vw;
      padding-top: 4.17vw;
      padding-right: 7.99vw;
   }

   main section.feature>section>* {
      width: 38.89vw;
   }

   main section.feature>section>h3 {
      font-size: 2.22vw;
   }

   /************************************* section.curriculum *************************************/
   /********** section.curriculum01 **********/
   main section.curriculum01 {
      padding-right: 7.99vw;
   }

   main section.curriculum01 h2 {
      margin-bottom: 1.74vw;
   }

   main section.curriculum01>section:nth-of-type(1) {
      gap: 1.11vw;
      margin-bottom: 4.44vw;
   }

   main section.curriculum01>section:nth-of-type(1) p {
      padding: 1.11vw;
   }

   main section.curriculum01>section:nth-of-type(3) {
      display: flex;
      background-size: 43.54vw 3.33vw;
      padding-top: 1.81vw;
      margin-bottom: 4.44vw;
   }

   main section.curriculum01>section:nth-of-type(3) p {
      width: 12.85vw;
   }

   main section.curriculum01>section:nth-of-type(4) p {
      width: 22.22vw;
   }

   /********** section.curriculum02,03 **********/
   main section.curriculum02:after,
   main section.curriculum03:after {
      background-position: right top 20.83vw;
      background-size: 33.19vw 39.72vw;
   }

   main section.curriculum02 h3,
   main section.curriculum03 h3 {
      font-size: 1.67vw;
      padding-top: 15.76vw;
      padding-right: 7.99vw;
      padding-bottom: 1.11vw;
   }

   main section.curriculum02 ul,
   main section.curriculum03 ul {
      padding-right: 34.58vw;
   }

   main section.curriculum02 ul li,
   main section.curriculum03 ul li {
      width: 44.93vw;
      height: 16.11vw;
      padding: 2.78vw 1.53vw 1.39vw 3.06vw;
      margin-bottom: -1.04vw;
   }

   main section.curriculum02 h4,
   main section.curriculum03 h4 {
      font-size: 1.67vw;
      margin-bottom: 0.97vw;
   }

   /********** section.curriculum04 **********/
   main section.curriculum04 {
      padding-right: 7.99vw;
   }

   main section.curriculum04:after {
      background-position: right top 25.35vw;
      background-size: 35.83vw 36.18vw;
   }

   main section.curriculum04>section:nth-of-type(1) {
      padding-top: 15.28vw;
   }

   main section.curriculum04>section:nth-of-type(1) p {
      width: 33.26vw;
   }

   main section.curriculum04>h3 {
      font-size: 1.67vw;
      padding-top: 2.50vw;
      padding-bottom: 2.50vw;
   }

   main section.curriculum04>section:nth-of-type(2) {
      gap: 0.83vw;
      margin-right: 30.56vw;
   }

   main section.curriculum04>section:nth-of-type(2) p {
      padding: 1.11vw;
   }

   /********** section.curriculum05 **********/
   main section.curriculum05 {
      padding-right: 7.99vw;
   }

   main section.curriculum05:after {
      background-position: right top 25.00vw;
      background-size: 35.97vw 26.81vw;
   }

   main section.curriculum05>section:nth-of-type(1) {
      padding-top: 15.28vw;
   }

   main section.curriculum05>section:nth-of-type(1) p {
      width: 36.04vw;
   }

   main section.curriculum05>h3 {
      font-size: 1.67vw;
      padding-top: 2.50vw;
      padding-bottom: 2.50vw;
   }

   main section.curriculum05>section:nth-of-type(2) {
      width: 33.33vw;
      margin-right: 29.86vw;
   }

   main section.curriculum05>section:nth-of-type(2)>p {
      margin-bottom: 2.08vw;
   }

   main section.curriculum05>section:nth-of-type(2)>div {
      width: 36.81vw;
      height: 18.75vw;
      padding-top: 2.78vw;
      padding-left: 9.38vw;
      margin-left: -1.39vw;
      margin-bottom: 3.89vw;
   }

   main section.curriculum05>section:nth-of-type(2)>div h4 {
      font-size: 1.11vw;
      margin-bottom: 1.25vw;
   }

   main section.curriculum05>section:nth-of-type(2)>div p {
      width: 20.83vw;
   }

   main section.curriculum05>section:nth-of-type(3) p {
      width: 16.88vw;
   }

   /********** section.curriculum06 **********/
   main section.curriculum06 {
      padding-right: 7.99vw;
   }

   main section.curriculum06>h3 {
      font-size: 1.67vw;
      padding-top: 15.28vw;
      padding-bottom: 1.67vw;
   }

   main section.curriculum06>p {
      padding-bottom: 1.67vw;
   }

   main section.curriculum06>section {
      margin-bottom: 4.44vw;
   }

   main section.curriculum06>section p {
      width: 18.75vw;
   }

   /************************************* section.support *************************************/
   main section.support {
      padding-right: 7.99vw;
   }

   main section.support h2 {
      padding-bottom: 6.94vw;
   }

   main section.support>div div.scroll-item {
      padding-left: 4.65vw;
   }

   main section.support>div div.scroll-item:nth-child(1) {
      padding-top: 19.44vw;
   }

   main section.support>div div.scroll-item:nth-child(2) {
      padding-top: 22.50vw;
   }

   main section.support>div div.scroll-item:nth-child(3) {
      padding-top: 19.44vw;
   }

   main section.support>div div.scroll-item:nth-child(4) {
      padding-top: 22.50vw;
   }

   main section.support>div div.scroll-item h3 {
      margin-bottom: 1.39vw;
   }

   main section.support>div div.scroll-item:nth-child(1) h3 {
      width: 13.89vw;
   }

   main section.support>div div.scroll-item:nth-child(2) h3 {
      width: 12.22vw;
   }

   main section.support>div div.scroll-item:nth-child(3) h3 {
      width: 10.56vw;
   }

   main section.support>div div.scroll-item:nth-child(4) h3 {
      width: 13.89vw;
   }

   main section.support>div div.scroll-item p:nth-of-type(2) {
      margin-top: 0.56vw;
   }

   /************************************* section.price *************************************/
   main section.price>h2 {
      padding-right: 7.99vw;
      margin-bottom: 1.67vw;
   }

   main section.price>p {
      padding-right: 7.99vw;
      gap: 1.67vw;
      margin-bottom: 6.94vw;
   }

   main section.price>p span {
      font-size: 2.22vw;
   }

   main section.price>section {
      width: 75.28vw;
      height: 35.56vw;
      padding: 3.33vw 7.99vw 0 10.07vw;
   }

   main section.price>section>h3 {
      font-size: 1.67vw;
      margin-bottom: 0.56vw;
   }

   main section.price>section>p {
      margin-bottom: 2.78vw;
   }

   main section.price>section>section>div:nth-child(1),
   main section.price>section>section>div:nth-child(2) {
      width: 17.36vw;
      height: 17.36vw;
   }

   main section.price>section>section>div:nth-child(1) h4,
   main section.price>section>section>div:nth-child(2) h4 {
      margin-bottom: 0.83vw;
   }

   main section.price>section>section>div:nth-child(1) p span:nth-child(1) {
      font-size: 2.22vw;
   }

   main section.price>section>section>div:nth-child(1) p span:nth-child(2) {
      font-size: 1.39vw;
   }

   main section.price>section>section>div:nth-child(2) p.priceDetail {
      font-size: 2.22vw;
   }

   main section.price>section>section>div:nth-child(2) p.priceDetail span {
      font-size: 1.39vw;
   }

   /* 初期状態で非表示（アニメーション用） */
   /* ボタンがクリックされた後に表示（スライドダウン + フェードイン） */
   main section.price>section>section>div:nth-of-type(2).active>div {
      max-height: 13.89vw;
      /* 十分な高さを指定（適宜調整） */
   }

   /* ボタンの基本スタイル */
   main section.price>section>section>div:nth-of-type(2) button {
      width: 1.74vw;
      height: 1.74vw;
      margin-top: 0.69vw;
   }

   /* ボタン非表示（フェードアウト） */
   main section.price>section>section>div:nth-of-type(2) button.hidden {
      height: 0.35vw;
   }

   main section.price>section>section>div:nth-child(3) {
      width: 16.67vw;
      gap: 0.83vw;
      margin-top: 1.11vw;
   }

   main section.price>section>section>div:nth-child(3) p {
      height: 3.06vw;
      line-height: 3.06vw;
   }

   /************************************* section.flow *************************************/
   main section.flow {
      padding-right: 7.99vw;
   }

   main section.flow h2 {
      margin-bottom: 6.94vw;
   }

   main section.flow div.scroll-container>div {
      padding: 9.44vw 1.67vw 0 2.22vw;
   }

   main section.flow div.scroll-container>div h3 {
      font-size: 1.67vw;
      margin-bottom: 13.19vw;
   }

   main section.flow div.scroll-container>div:nth-child(1) h3 {
      margin-bottom: 14.58vw;
   }

   /************************************* section.faq *************************************/
   main section.faq {
      padding-right: 7.99vw;
   }

   main section.faq h2 {
      margin-bottom: 6.94vw;
   }

   main section.faq section {
      margin-bottom: 1.67vw;
      width: 62.08vw;
      border-radius: 2.08vw;
   }

   main section.faq section p {
      padding: 0 4.72vw;
   }

   main section.faq section h3 {
      padding: 1.11vw 1.53vw;
      font-size: 1.39vw;
   }

   main section.faq section h3::after {
      width: 1.74vw;
      height: 1.74vw;
      margin-left: 0.69vw;
   }

   main section.faq section span {
      gap: 0.28vw;
   }

   main section.faq section h3 span::before {
      width: 3.06vw;
      height: 4.03vw;
   }

   main section.faq>ul {
      right: 7.99vw;
      bottom: 3.47vw;
      gap: 3.06vw;
   }

   /************************************* 横スクロール設定 *************************************/
   /* コンテナ全体 */
   .scroll-wrapper {
      padding-bottom: 3.33vw;
      /* コントローラーのための余白 */
   }

   #scrollWrapper1 {
      width: 54.72vw;
      margin-bottom: 4.44vw;
   }

   #scrollWrapper2 {
      width: 62.08vw;
   }

   #scrollWrapper3 {
      width: 66.67vw;
   }

   #scrollWrapper4 {
      width: 66.67vw;
   }

   /* 横スクロールコンテナ (1つ目: 2行6列) */
   .scroll-container.grid {
      gap: 1.11vw;
      /* 縦横の間隔 */
      padding-left: 1.11vw;
      /* 左側の余白 */
   }

   /* 横スクロールコンテナ (2つ目: 横長画像) */

   /* 横スクロールコンテナ (3つ目: 横並び) */
   .scroll-container.horizontal {
      gap: 2.78vw;
      /* 要素間の間隔 */
   }

   /* 横スクロールコンテナ (4つ目: 横並び) */
   .scroll-container.horizontal2 {
      gap: 1.94vw;
      /* 要素間の間隔 */
   }

   /* スクロールアイテム (1つ目のセット用) */
   .scroll-container.grid .scroll-item {
      width: 17.50vw;
      height: 3.33vw;
      line-height: 3.33vw;
      font-size: 1.39vw;
      border-radius: 1.67vw;
   }

   /* 横長画像 (2つ目のセット用) */

   /* 横並び (3つ目のセット用) */
   .scroll-container.horizontal .scroll-item {
      width: 20.21vw;
      /* アイテムの幅 */
      height: 36.67vw;
      /* アイテムの高さ */
   }

   /* 横並び (4つ目のセット用) */
   .scroll-container.horizontal2 .scroll-item {
      width: 19.10vw;
      /* アイテムの幅 */
      height: 34.17vw;
      /* アイテムの高さ */
   }
}







@media (min-width: 821px) and (max-height: 930px) {
   main section.scroll-page h2:not(section.FV h2, section.about h2) {
      padding-top: 10vh;
   }

   main section.about {
      background-image: url(../img/bg_about.png);
      padding-top: 2vh;
   }

   main section.about h2 {
      gap: 3.12vh;
      padding-top: 13.75vh;
      padding-bottom: 9.76vh;
   }

   main section.feature h2 {
      margin-bottom: 4vh;
   }

   main section.feature>section {
      gap: 2.92vh;
      padding-top: 5.85vh;
   }

   main section.curriculum01>section:nth-of-type(1) {
      gap: 1.56vh;
      margin-bottom: 6.25vh;
   }

   main section.curriculum01>section:nth-of-type(3) {
      padding-top: 2.53vh;
      margin-bottom: 6.25vh;
   }

   main section.curriculum02 h3,
   main section.curriculum03 h3 {
      padding-top: 10vh;
      padding-bottom: 1.56vh;
   }

   main section.curriculum02:after,
   main section.curriculum03:after {
      background-position: right top 17vh;
   }

   main section.curriculum02 ul,
   main section.curriculum03 ul {
      transform: scale(0.85);
      transform-origin: top;
   }

   main section.curriculum04>section:nth-of-type(1) {
      padding-top: 10vh;
   }

   main section.curriculum04:after {
      background-position: right top 28vh;
   }

   main section.curriculum04>section:nth-of-type(2) {
      gap: 1.17vh;
   }

   main section.curriculum05>section:nth-of-type(1) {
      padding-top: 10vh;
   }

   main section.curriculum05:after {
      background-position: right top 21.5vh;
   }

   main section.curriculum05>h3 {
      padding-top: 3.51vh;
      padding-bottom: 3.51vh;
   }

   main section.curriculum05>section:nth-of-type(2)>p {
      margin-bottom: 2.92vh;
   }

   main section.curriculum05>section:nth-of-type(2)>div {
      margin-bottom: 5.46vh;
   }

   main section.curriculum06>h3 {
      padding-top: 10vh;
      padding-bottom: 2.34vh;
   }

   main section.curriculum06>p {
      padding-bottom: 2.34vh;
   }

   .scroll-wrapper {
      padding-bottom: 4vh;
   }

   main section.curriculum06>section {
      margin-bottom: 6vh;
   }

   main section.support h2 {
      padding-bottom: 4vh;
   }

   main section.price>h2 {
      margin-bottom: 2.34vh;
   }

   main section.price>p {
      margin-bottom: 4vh;
   }

   main section.flow h2 {
      margin-bottom: 2vh;
   }

   main section.faq h2 {
      margin-bottom: 4vh;
   }

   main section.faq section p {
      padding: 0 5.27vh;
   }

   .home ul.newsContainer li:last-child {
      display: none;
   }
}



@media (orientation: portrait) and (max-width: 820px) {
   body {
      background-image: url(../img/bg_main.jpg);
      background-position: top center;
      font-size: 4.26vw;
   }

   .pc {
      display: none;
   }

   .sp {
      display: block;
   }

   /************************************* ヘッダー *************************************/
   header .sideColumn {
      z-index: 10000;
      position: fixed;
      left: 0;
      top: 0;
      width: 100vw;
      height: auto;
   }

   header .sideColumn .nav-buttons {
      display: none;
   }

   header .sideColumn h1 {
      margin-top: 0;
      margin-left: 2.93vw;
      margin-top: 3.46vw;
      width: 27.2vw;
   }

   header .sideColumn h1 img {
      width: 100%;
   }

   header .sideColumn .sideColumn_links {
      display: none;
   }

   /************************************* ハンバーガーメニュー *************************************/
   /* メニューを開くボタン */
   .menuOpen {
      top: 10.93vw;
      right: 6.66vw;
   }

   .menuOpen img {
      width: 10.93vw;
      height: 5.86vw;
   }

   /* メニューを閉じるボタン */
   .menuClose {
      width: 6.4vw;
      height: 5.33vw;
      top: 12vw;
      right: 10.13vw;
   }

   .menuClose img {
      width: 6.4vw;
      height: 5.33vw;
   }

   /* メニュー本体 */
   .menuContents {
      left: 0;
      width: 100vw;
      height: 100dvh;
      border-radius: 0;
      padding: 0;
   }

   .menuContents>p {
      left: 2.93vw;
      top: 3.46vw;
      width: 27.2vw;
      height: 22.66vw;
   }

   .menuContents ul.pc {
      display: none;
   }

   .menuContents ul {
      display: flex;
      flex-direction: column;
      gap: 2.95dvh;
   }

   .menuContents li {
      margin: 0;
      height: 6.74dvh;
   }

   .menuContents>span {
      position: absolute;
      width: 100%;
      bottom: 3.5dvh;
      left: 0;
      text-align: center;
      font-size: 3.73vw;
   }

   /************************************* CTA設定 *************************************/
   section.cta_sp {
      display: block;
      position: fixed;
      left: 0;
      bottom: 0;
      width: 100vw;
      z-index: 1000;
      background: linear-gradient(to bottom, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.5) 30%, rgba(255, 255, 255, 1) 100%);
      opacity: 1;
      transition: opacity 0.5s ease-in, opacity 0.3s ease-out;
      pointer-events: auto;
   }

   section.cta_sp a {
      width: 100vw;
   }

   section.fade-out {
      opacity: 0;
      pointer-events: none;
   }


   /************************************* main全体設定 *************************************/
   main {
      width: 100vw;
      margin-left: 0;
   }

   /* 各セクション */
   main section.scroll-page {
      height: 100vh;
      /* 各セクションを画面全体の高さに */
      scroll-snap-align: start;
      /* スクロールスナップポイント */
   }

   main section.scroll-page.about,
   main section.scroll-page.feature {
      height: auto;
      min-height: 100vh;
   }

   main>div.curriculum section.scroll-page,
   main>div.faq section.scroll-page {
      height: auto;
   }

   main>div.curriculum section.scroll-page,
   main>div.faq section.scroll-page {
      scroll-snap-align: unset;
      /* スクロールスナップポイント */
   }

   main>div.curriculum,
   main>div.faq {
      scroll-snap-align: start;
      /* スクロールスナップポイント */
   }

   main>*:not(section.FV) {
      background-size: cover;
   }

   main section.scroll-page h2:not(section.FV h2, section.about h2) {
      font-size: 6.4vw;
      padding-top: 32vw;
   }

   /************************************* section.FV *************************************/
   main section.FV {
      background-image: url(../img/bg_FV02_sp.png), url(../img/bg_FV01_sp.png);
      background-size: auto 86.2vh, cover;
      background-position: center top, center;
      position: relative;
      height: 100dvh;
   }

   main section.FV>div {
      gap: 3.53vw;
      font-size: 8.53vw;
      padding-bottom: 13.8vh;
   }

   main section.FV>div p {
      padding-left: 4.26vw;
      padding-right: 4.26vw;
   }

   main section.FV>div p:first-child {
      font-size: 6.4vw;
      padding: 1.2vw 5.6vw;
      border-radius: 4.8vw 0 4.8vw 0;
      gap: 1vw;
   }

   main section.FV>div p:first-child img {
      width: 2.45vw;
   }

   main section.FV>div p:nth-child(2) span {
      font-size: 10.66vw;
   }


   /************************************* section.news *************************************/
   main>section.news {
      background-size: auto 100vh;
      height: 100vh !important;
      overflow-y: auto;
      padding-right: 6.4vw;
      padding-left: 6.4vw;
      padding-bottom: 35vw;
   }

   .home ul.newsContainer li:last-child {
      display: initial;
   }

   .home ul.newsContainer {
      padding-right: 0;
   }

   ul.newsContainer li h3 {
      flex-direction: column;
   }

   main .news>p {
      padding-right: 0;
      font-size: 16px;
   }

   /************************************* section.about *************************************/
   main section.about {
      padding-top: 24vw;
      background-size: cover;
      padding-bottom: 35vw;
      height: 100vh !important;
      overflow-y: auto;
   }

   main section.about h2,
   main section.about>div {
      padding-right: 0;
   }

   main section.about>div.pc {
      display: none;
   }

   main section.about>div.sp {
      display: flex;
   }

   main section.about>div {
      align-items: center;
   }

   main section.about h2 {
      gap: 4.26vw;
      font-size: 6.4vw;
      padding-top: 8vw;
      padding-bottom: 8vw;
      background-image: url(../img/bg_about02_sp.png);
      background-position: center;
      font-weight: bold;
   }

   main section.about>div {
      gap: 2.13vw;
   }

   main section.about h2 span {
      padding: 2vw 6.4vw 1vw;
   }

   main section.about>div p {
      padding: 16px 16px 12px;
   }

   /************************************* section.feature *************************************/
   main section.feature {
      background-image: url(../img/bg_feature_sp.png);
      background-position: left top;
      background-size: auto 100vh;
      background-repeat: no-repeat;
      padding-left: 6.4vw;
      padding-right: 6.4vw;
      padding-bottom: 10vw;
      display: flex;
      flex-direction: column;
      align-items: flex-end;
      height: 100vh !important;
      overflow-y: auto;
   }

   main section.feature h2 {
      padding-right: 0;
      padding-bottom: 0;
      margin-bottom: 0;
      width: 100%;
   }

   main section.feature h2::after {
      content: "";
      display: block;
      width: 100%;
      height: 66.93vw;
      margin-top: 3vw;
      background-image: url(../img/bg_feature03_sp.png);
      background-position: left 5vw top;
      background-size: 84.8vw 66.93vw;
      background-repeat: no-repeat;
   }

   main section.feature>section {
      width: 100%;
      aspect-ratio: 1 / 1.5945;
      height: auto;
      background-position: left top;
      align-items: flex-start;
      gap: 4.26vw;
      padding: 48vw 8vw 0;
   }

   main section.feature>section:nth-of-type(1) {
      background-image: url(../img/bg_feature01_sp.png);
      margin-bottom: 8.53vw;
   }

   main section.feature>section:nth-of-type(2) {
      background-image: url(../img/bg_feature02_sp.png);
   }

   main section.feature>section>* {
      width: 100%;
   }

   main section.feature>section>h3 {
      font-size: 6.4vw;
      line-height: 1.6;
   }

   /************************************* section.curriculum *************************************/
   main>div.curriculum {
      background-size: auto 100vh;
      padding-bottom: 35vw;
      height: 100vh !important;
      overflow-y: auto;
   }

   main>div.curriculum>section {
      padding-left: 6.4vw;
      padding-right: 6.4vw;
   }

   main section.curriculum01 {
      padding-right: 0;
      align-items: flex-start;
   }

   main section.curriculum01 h2 {
      margin-bottom: 10.66vw;
      width: 100%;
      text-align: right;
   }

   main section.curriculum01 section.pc {
      display: none;
   }

   main section.curriculum01>section.sp {
      display: flex;
      flex-direction: column;
      align-items: flex-start;
      gap: 2.13vw;
      margin-bottom: 8.53vw;
   }

   main section.curriculum01>section.sp p {
      background-color: #fff;
      padding: 2.4vw;
      width: auto;
   }

   main section.curriculum01>section:nth-of-type(3) {
      flex-wrap: wrap;
      gap: 4.53vw;
      justify-content: space-evenly;
      background-image: url(../img/bg_cur01_sp.svg);
      background-size: 100% auto;
      background-position: center top;
      padding-top: 21.86vw;
      margin-bottom: 8.53vw;
   }

   main section.curriculum01>section:nth-of-type(3) p {
      width: 39.2vw;
   }

   main section.curriculum01>section:nth-of-type(4) {
      width: 100%;
   }

   main section.curriculum01>section:nth-of-type(4) p {
      width: 64.26vw;
      margin: 0 auto;
   }

   /********** section.curriculum02,03 **********/
   main section.curriculum02,
   main section.curriculum03 {
      align-items: flex-start;
   }

   main section.curriculum02:after {
      height: 100vh;
      background-image: url(../img/bg_cur02_sp.png);
      background-position: left top 37.29vw;
      background-size: 100vw auto;
   }

   main section.curriculum03:after {
      background-image: none;
   }

   main section.curriculum02 h3 {
      font-size: 6.4vw;
      text-align: left;
      padding-top: 4.26vw;
      padding-right: 0;
      padding-bottom: 90vw;
   }

   main section.curriculum02 ul,
   main section.curriculum03 ul {
      padding-right: 0;
      width: 100%;
   }

   main section.curriculum02 ul li,
   main section.curriculum03 ul li {
      width: 100%;
      height: 85.33vw;
      padding: 28.8vw 7.46vw 0;
      margin-bottom: 4.26vw;
   }

   main section.curriculum02 ul li:nth-child(1) {
      background-image: url(../img/bg_cur02-1_sp.png);
   }

   main section.curriculum02 ul li:nth-child(2) {
      background-image: url(../img/bg_cur02-2_sp.png);
   }

   main section.curriculum02 ul li:nth-child(3) {
      background-image: url(../img/bg_cur02-3_sp.png);
   }

   main section.curriculum03 ul li:nth-child(1) {
      background-image: url(../img/bg_cur03-1_sp.png);
   }

   main section.curriculum03 ul li:nth-child(2) {
      background-image: url(../img/bg_cur03-2_sp.png);
   }

   main section.curriculum02 h4,
   main section.curriculum03 h4 {
      font-size: 6.4vw;
      margin-bottom: 3vw;
   }

   /********** section.curriculum04 **********/
   main section.curriculum04 {
      padding-right: 0;
      align-items: flex-start;
   }

   main section.curriculum04:after {
      height: 100vh;
      background-image: url(../img/bg_cur04_sp.png);
      background-position: left top 70.64vw;
      background-size: 100vw auto;
   }

   main section.curriculum04>section:nth-of-type(1) {
      padding-top: 13.6vh;
      width: 100%;
   }

   main section.curriculum04>section:nth-of-type(1) p {
      width: 100%;
   }

   main section.curriculum04>h3 {
      font-size: 6.4vw;
      text-align: left;
      padding-top: 4.26vw;
      padding-right: 0;
      padding-bottom: 80vw;
      line-height: 1.6;
   }

   main section.curriculum04>section:nth-of-type(2) {
      display: none;
   }

   main section.curriculum04>section.sp {
      display: flex;
      flex-direction: column;
      width: 100%;
      align-items: flex-start;
      gap: 2.13vw;
      margin-right: 440px;
   }

   main section.curriculum04>section.sp p {
      background-color: #fff;
      padding: 2.4vw;
      display: inline-block;
   }

   /********** section.curriculum05 **********/
   main section.curriculum05 {
      padding-right: 0;
      align-items: flex-start;
   }

   main section.curriculum05:after {
      height: 100vh;
      background-image: url(../img/bg_cur05-02.png);
      background-position: right top 60.15vw;
      background-size: 93.6vw auto;
   }

   main section.curriculum05>section:nth-of-type(1) {
      display: block;
      width: 100%;
      padding-top: 0;
   }

   main section.curriculum05>section:nth-of-type(1) p.sp {
      padding-top: 8.53vw;
      width: 100%;
   }

   main section.curriculum05>h3 {
      font-size: 6.4vw;
      text-align: left;
      padding-top: 4.26vw;
      padding-right: 0;
      padding-bottom: 85vw;
      line-height: 1.6;
   }

   main section.curriculum05>section:nth-of-type(2) {
      width: 100%;
      margin-right: 0;
   }

   main section.curriculum05>section:nth-of-type(2)>p {
      margin-bottom: 4vw;
   }

   main section.curriculum05>section:nth-of-type(2)>div {
      background-image: url(../img/bg_cur05-01_sp.png);
      width: 100%;
      height: 86.94vw;
      padding-top: 8vw;
      padding-left: 29.86vw;
      margin-left: 0;
      margin-bottom: 8.53vw;
   }

   main section.curriculum05>section:nth-of-type(2)>div h4 {
      font-size: 4.26vw;
      margin-bottom: 2.13vw;
      width: 52.26vw;
   }

   main section.curriculum05>section:nth-of-type(2)>div p {
      width: 52.26vw;
   }

   main section.curriculum05>section:nth-of-type(3) {
      display: block;
      width: 100%;
   }

   main section.curriculum05>section:nth-of-type(3) p {
      width: 48.53vw;
      margin: 0 auto;
   }

   main>div.curriculum section.curriculum06 {
      padding-right: 0;
   }

   main section.curriculum06>h3 {
      font-size: 6.4vw;
      text-align: left;
      padding-top: 4.26vw;
      padding-right: 0;
      padding-bottom: 2vw;
      line-height: 1.6;
      padding-right: 6.4vw;
   }

   main>div.curriculum section.curriculum06>p {
      text-align: left;
      line-height: 1.6;
      margin-bottom: 6.4vw;
      padding-right: 6.4vw;
   }

   main section.curriculum06>section {
      display: block;
      padding-right: 6.4vw;
      width: 100%;
      margin-bottom: 6.4vw;
   }

   main section.curriculum06>section p {
      width: 54.4vw;
      margin: 0 auto;
   }

   /************************************* section.support *************************************/
   main section.support {
      padding-right: 0;
   }

   main section.support h2 {
      padding-right: 6.4vw;
   }

   /************************************* section.price *************************************/
   main section.price {
      padding-right: 6.4vw;
      padding-left: 6.4vw;
      padding-bottom: 20vw;
   }

   main section.price>h2 {
      margin-bottom: 4.26vw;
      padding-right: 0;
   }

   main section.price>p {
      flex-direction: column;
      align-items: flex-end;
      font-size: 6.4vw;
      padding-right: 0;
   }

   main section.price>p span {
      font-size: 4.26vw;
   }

   /* スクロールコンテナ */
   main section.price>section {
      background-image: none;
      background-color: #fff;
      width: 83.2vw;
      border-radius: 180px;
      overflow-y: auto;
      box-shadow: 4.26vw 4.26vw 0px 0px #A3C6FD;
      position: relative;
      padding: 17.6vw 8vw;
   }

   main section.price>section h3 {
      font-size: 6.4vw;
      font-weight: bold;
      line-height: 1.6;
      letter-spacing: .05em;
      margin-bottom: 4.26vw;
   }

   main section.price>section>p {
      margin-bottom: 8.53vw;
   }

   main section.price>section>section {
      flex-direction: column;
      align-items: center;
   }

   main section.price>section>section>div:nth-child(1),
   main section.price>section>section>div:nth-child(2) {
      width: 47.4vw;
      height: 47.4vw;
   }

   main section.price>section>section>div:nth-child(3) {
      width: 64vw;
      gap: 3.2vw;
      margin-top: 5vw;
   }

   main section.price>section>section>div:nth-child(3) p {
      height: 11.73vw;
      line-height: 11.73vw;
      width: 100%;
   }

   main section.price>section>section>div:nth-child(1) p span:nth-child(1) {
      font-size: 6.4vw;
   }

   main section.price>section>section>div:nth-child(1) p span:nth-child(2) {
      font-size: 4.26vw;
   }

   main section.price>section>section>div:nth-child(1) p:nth-child(3) {
      font-size: 3.2vw;
   }

   main section.price>section>section>div:nth-child(2) p.priceDetail {
      font-size: 6.4vw;
   }

   main section.price>section>section>div:nth-child(2) p.priceDetail span {
      font-size: 4.26vw;
   }

   main section.price>section>section>div:nth-of-type(2) button {
      width: 5vw;
      height: 5vw;
   }

   .price-content {
      overflow-y: auto;
      max-height: calc(100vh - 100px);
      position: relative;
   }


   /************************************* section.flow *************************************/
   main section.flow {
      padding-right: 0;
   }

   main section.scroll-page h2:not(section.FV h2, section.about h2) {
      padding-right: 6.4vw;
   }

   main section.flow div.scroll-container>div {
      padding: 24.44vw 3.67vw 0 4.22vw;
      font-size: 3.2vw;
   }

   main section.flow div.scroll-container>div h3 {
      font-size: 4.26vw;
      margin-bottom: 30.19vw;
   }

   main section.flow div.scroll-container>div:nth-child(1) h3 {
      margin-bottom: 37.58vw;
   }

   /************************************* section.faq *************************************/
   main>div.faq {
      background-size: auto 100vh;
      background-image: url(../img/bg_faq.png);
      height: 100vh !important;
      overflow-y: auto;
   }

   main .faq>section {
      padding-right: 6.4vw;
      padding-left: 6.4vw;
      background-image: none;
   }

   main .faq>section h2 {
      margin-bottom: 12.8vw;
   }

   main section.scroll-page h2:not(section.FV h2, section.about h2) {
      padding-right: 0;
   }

   main .faq>section section {
      margin-bottom: 4.26vw;
      width: 100%;
      border-radius: 8vw;
   }

   main .faq>section section h3 {
      padding: 4.26vw 2.66vw;
      font-size: 4.26vw;
      line-height: 1.5;
   }

   main .faq>section section h3 span::before {
      width: 13.11vw;
      height: 11.2vw;
   }

   main .faq>section section h3::after {
      width: 6.66vw;
      height: 6.66vw;
      margin-left: 10px;
   }

   main>div.faq section.scroll-page.faq02 {
      padding-bottom: 36.8vw;
   }

   main .faq>section>ul {
      justify-content: flex-start;
      flex-direction: column;
      align-items: center;
      width: 100%;
      right: 0;
      bottom: 35vw;
      gap: 3.2vw;
      font-size: 3.73vw;
   }

   main .faq>section.faq02>section:nth-of-type(3) {
      margin-bottom: 22vw;
   }





   .controller {
      right: auto;
   }

   .scroll-button {
      display: none;
   }

   .scroll-wrapper {
      justify-content: center;
      padding-bottom: 6.33vw;
   }

   .scroll-bar-wrapper {
      width: 59.33vw;
   }

   #scrollWrapper1 {
      width: 93.6vw;
      margin-bottom: 10.66vw;
   }

   #scrollWrapper2 {
      width: 93.6vw;
   }

   #scrollWrapper3 {
      width: 93.6vw;
   }

   #scrollWrapper4 {
      width: 93.6vw;
   }

   .scroll-container.grid .scroll-item {
      width: 54.93vw;
      height: 12.8vw;
      line-height: 12.8vw;
      font-size: 4.26vw;
      border-radius: 6.4vw;
   }

   .scroll-container.image {
      height: 40vw;
   }

   .scroll-container.horizontal .scroll-item {
      width: 52vw;
      height: 82vw;
   }

   main section.support>div div.scroll-item {
      padding-left: 10vw;
      padding-top: 75.2vw;
      font-size: 3.26vw;
   }

   .scroll-container.horizontal2 .scroll-item {
      width: 49.1vw;
      height: 85.17vw;
   }

   main section.support>div div.scroll-item:nth-child(1),
   main section.support>div div.scroll-item:nth-child(2),
   main section.support>div div.scroll-item:nth-child(3),
   main section.support>div div.scroll-item:nth-child(4) {
      padding-top: 45vw;
   }

   main section.support>div div.scroll-item:nth-child(1) h3,
   main section.support>div div.scroll-item:nth-child(2) h3,
   main section.support>div div.scroll-item:nth-child(3) h3,
   main section.support>div div.scroll-item:nth-child(4) h3 {
      width: auto;
      height: 5.5vw;
   }

   main section.support>div div.scroll-item:nth-child(1) h3 img,
   main section.support>div div.scroll-item:nth-child(2) h3 img,
   main section.support>div div.scroll-item:nth-child(3) h3 img,
   main section.support>div div.scroll-item:nth-child(4) h3 img {
      width: auto;
      height: 100%;
   }
}



@media (orientation: portrait) and (max-width: 500px) {
   .scroll-container.horizontal .scroll-item {
      width: 67vw;
      height: 110vw;
   }

   main section.support>div div.scroll-item {
      padding-left: 14vw;
      padding-top: 75.2vw;
      font-size: 4.26vw;
   }

   .scroll-container.horizontal2 {
      padding-left: 15vw;
   }

   .scroll-container.horizontal2 .scroll-item {
      width: 69.1vw;
      height: 120.17vw;
   }

   main section.support>div div.scroll-item:nth-child(1),
   main section.support>div div.scroll-item:nth-child(2),
   main section.support>div div.scroll-item:nth-child(3),
   main section.support>div div.scroll-item:nth-child(4) {
      padding-top: 60vw;
   }

   main section.support>div div.scroll-item:nth-child(1) h3,
   main section.support>div div.scroll-item:nth-child(2) h3,
   main section.support>div div.scroll-item:nth-child(3) h3,
   main section.support>div div.scroll-item:nth-child(4) h3 {
      width: auto;
      height: 7.5vw;
   }

   main section.flow div.scroll-container>div h3 {
      font-size: 6.4vw;
      margin-bottom: 44.19vw;
   }

   main section.flow div.scroll-container>div {
      padding: 35.44vw 3.8vw 0 4.8vw;
      font-size: 4.26vw;
   }

   main section.flow div.scroll-container>div:nth-child(1) h3 {
      margin-bottom: 50.58vw;
   }
}





/************************************* page設定 *************************************/
@media screen {

   .page header .sideColumn .nav-buttons,
   .single header .sideColumn .nav-buttons {
      display: none;
   }

   .page,
   .single {
      font-size: 16px;
      position: relative;
   }

   .page main>section,
   .single main>section {
      display: flex;
      flex-direction: column;
      align-items: center;
   }

   .page main>section h2 {
      text-align: center;
      background: var(--gradient);
      -webkit-background-clip: text;
      -webkit-text-fill-color: transparent;
      background-clip: text;
      font-size: 48px;
      letter-spacing: .32em;
      padding-top: 21.48dvh;
      font-weight: bold;
      margin-bottom: 50px;
      line-height: 1.6;
   }

   .single main>section h2 {
      width: 70vw;
      letter-spacing: .2em;
      padding-top: 21.48dvh;
      margin-bottom: 24px;
      line-height: 1.6;
      padding-left: 2vw;
      display: flex;
      flex-direction: column;
      font-size: 16px;
   }

   .single main>section h2 .news_title {
      font-size: 24px;
      font-weight: bold;
   }

   .page main>section>section,
   .single main>section>section {
      width: 70vw;
      height: 50dvh;
      overflow-y: auto;
      padding: 2vw;
      line-height: 2;
   }

   .page main>section>section>div,
   .single main>section>section>div {
      margin-bottom: 48px;
   }

   .page main>section>section>div h3,
   .single main>section>section>div h3 {
      font-weight: bold;
   }

   .page footer,
   .single footer {
      position: absolute;
      width: 100%;
      bottom: 4dvh;
      right: 115px;
   }

   .page footer ul,
   .single footer ul {
      display: flex;
      justify-content: flex-end;
      gap: 43px;
   }


   @media screen and (max-width: 1280px) {

      .page,
      .single {
         font-size: 16px;
      }

      .page main>section h2,
      .single main>section h2 {
         font-size: 3.33vw;
         margin-bottom: 3.47vw;
      }

      .single main>section h2 {
         font-size: 16px;
      }

      .page main>section>section>div,
      .single main>section>section>div {
         margin-bottom: 3.33vw;
      }

      .page footer,
      .single footer {
         right: 7.99vw;
      }

      .page footer ul,
      .single footer ul {
         gap: 2.99vw;
      }
   }
}

@media (orientation: portrait) and (max-width: 820px) {
   .menuContents ul.sp {
      display: flex;
   }

   .page,
   .single {
      font-size: 16px;
   }

   .page main,
   .single main {
      height: 100dvh;
   }

   .page main>section h2,
   .single main>section h2 {
      font-size: 6.4vw;
      margin-bottom: 8vw;
      padding-top: 14dvh;
   }

   .single main>section h2 {
      font-size: 16px;
      width: 87.2vw;
   }

   .page main>section>section,
   .single main>section>section {
      width: 87.2vw;
      height: 51vh;
      padding: 1.5vw;
   }
   .page main>section>section {
      height: 60vh;
   }

   .page main>section>section>div,
   .single main>section>section>div {
      margin-bottom: 12.8vw;
   }

   .page footer,
   .single footer {
      right: 0;
   }

   .page footer ul,
   .single footer ul {
      flex-direction: column;
      align-items: center;
      gap: 2dvh;
   }

}

@media screen and (max-height: 930px) {

   .single main>section h2 {
      margin-bottom: 4vw;
   }

   .single main>section>section {
      height: 45vh;
   }
}


/************************************* ページネーション *************************************/
.pagination {
    display: flex;
    justify-content: flex-end;
    padding-right: 7.98vw;
    margin-top: 40px;
    margin-bottom: 50px;
    gap: 16px; /* リンク間の隙間を少し広げます */
}

.pagination .page-numbers {
    padding: 8px 4px;
    font-size: 14px;
    color: #383838;
    text-decoration: none;
    transition: opacity 0.3s;
}

.pagination .page-numbers.current {
    font-weight: bold;
    color: #123880; /* 現在のページの色 */
}

.pagination .page-numbers:not(.current):hover {
    opacity: 0.7;
}

.pagination .prev,
.pagination .next {
    color: #123880; /* 「前へ」「次へ」の色 */
    font-weight: bold;
}

@media (orientation: portrait) and (max-width: 820px) {
    .pagination {
        justify-content: center;
        padding-right: 0;
        margin-top: 8.53vw;
        gap: 3vw; /* SPでの隙間 */
    }

    .pagination .page-numbers {
        font-size: 12px;
    }
}





/* --------------------------------
 * WordPress 本文スタイル
 * (投稿詳細ページ .single-news のみに適用)
 * -------------------------------- */

/* * 投稿・固定ページ (single.php) の
 * 本文コンテナ (<main><section><section>...</section></section></main>)
 */
.single-news main > section > section {
    line-height: 1.7; /* 行間を読みやすく設定 */
}

/* 最後の要素のマージンを削除（全体のバランス取り）*/
.single-news main > section > section > *:last-child {
    margin-bottom: 0;
}

/* * 段落 (p)
 */
.single-news main > section > section p {
    margin-bottom: 1.5em; 
}

/* * 見出し (H3, H4, H5, H6)
 * H2はページタイトルで使用中のため H3から
 */
.single-news main > section > section h3 {
    font-size: 1.5em;
    font-weight: 600;
    margin-top: 2em;
    margin-bottom: 1em;
    padding-bottom: 0.5em;
    border-bottom: 1px solid #eee; /* 見出しの区切り線 */
}

.single-news main > section > section h4 {
    font-size: 1.25em;
    font-weight: 600;
    margin-top: 1.8em;
    margin-bottom: 0.8em;
}

.single-news main > section > section h5,
.single-news main > section > section h6 {
    font-size: 1.1em;
    font-weight: 600;
    margin-top: 1.5em;
    margin-bottom: 0.5em;
}

/* * リスト (ul, ol)
 * destyle でリセットされたスタイルを復活
 */
.single-news main > section > section ul,
.single-news main > section > section ol {
    margin-bottom: 1.5em;
    padding-left: 1.5em; /* ブラウザ標準のインデントを復活 */
}

.single-news main > section > section ul {
    list-style-type: disc; /* 黒丸 */
}

.single-news main > section > section ol {
    list-style-type: decimal; /* 数字 */
}

/* リストの項目 */
.single-news main > section > section li {
    margin-bottom: 0.5em;
}

/* リストのネスト（入れ子） */
.single-news main > section > section ul ul,
.single-news main > section > section ol ol {
    margin-top: 0.5em;
}

.single-news main > section > section ul ul {
    list-style-type: circle; /* 白丸 */
}

/* * 引用 (blockquote)
 */
.single-news main > section > section blockquote {
    margin: 1.5em 0;
    padding: 1em 1.5em;
    border-left: 4px solid #eee; /* 左側のボーダー */
    background-color: #f9f9f9; /* 背景色 */
    color: #555; /* 文字色 */
    font-style: italic; /* 斜体 */
}

/* 引用内の段落マージンを調整 */
.single-news main > section > section blockquote p {
    margin-bottom: 0.5em;
}

.single-news main > section > section blockquote p:last-child {
    margin-bottom: 0;
}

/* * リンク (a)
 * サイトのキーカラー（gr_text）に合わせる場合は色を変更してください
 */
.single-news main > section > section a {
    color: #007bff; /* リンク色（例） */
    text-decoration: underline;
}

.single-news main > section > section a:hover {
    text-decoration: none;
}