/* 共通：非表示の初期設定 */
.pc-only,
.sp-only {
  display: none !important;
}


/* PCで表示：幅769px以上 */
@media screen and (min-width: 769px) {
  .pc-only {
    display: block !important;
  }
}

/* スマホで表示：幅768px以下 */
@media screen and (max-width: 768px) {
  .sp-only {
    display: block !important;
  }
}

.main-full-image {
  width: 100%;
  margin: 0;
  padding: 0;
}

.main-full-image img {
  width: 100%;
  height: auto;
  display: block;
}



body {
      margin: 0;
      font-family: sans-serif;
    }

    .header-fixed {
      position: fixed;
      top: 0;
      width: 100%;
      background: white;
      z-index: 9999;
      box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    }

    .header-top {
      display: flex;
      justify-content: space-between;
      align-items: center;
      padding: 10px 20px;
      flex-wrap: wrap;
    }

    .header-logo img {
      height: 60px;
    }

    .nav-buttons {
      display: flex;
      gap: 10px;
      align-items: center;
      flex-wrap: wrap;
    }

    .nav-buttons a {
      text-decoration: none;
      padding: 10px 20px;
      border-radius: 9999px;
      font-size: 14px;
      color: white;
      white-space: nowrap;
    }

    .btn-schedule {
      background-color: #f27e18;
    }

    .btn-contact {
      background-color: #c7b4a1;
    }

    .school-label {
      font-size: 16px;
      font-weight: bold;
      margin-left: 15px;
      margin-right: 10px;
      color: #333;
      white-space: nowrap;
    }

    nav {
      background-color: #fff;
      border-top: 1px solid #eee;
    }

    nav ul {
      display: flex;
      justify-content: center;
      list-style: none;
      margin: 0;
      padding: 10px;
      flex-wrap: wrap;
    }

    nav li {
      margin: 0 10px;
    }

    nav a {
      text-decoration: none;
      color: #333;
      font-size: 16px;
    }

    main {
      padding-top: 124px;
    }

    @media (max-width: 768px) {
      .header-top {
        flex-direction: column;
        align-items: flex-start;
      }

      .nav-buttons {
        flex-direction: column;
        width: 100%;
        margin-top: 10px;
      }

      .nav-buttons a {
        width: 100%;
        text-align: center;
      }

      .school-label {
        margin: 10px 0 0 0;
      }
    }
.school-label {
  font-size: 16px;
  font-weight: bold;
  color: #333;
  line-height: 1.4;
  text-align: right;       /* ← 右寄せ */
  display: block;          /* ← インライン要素では効かないので block に */
}

/* ハンバーガーアイコン（右上） */
.hamburger {
  font-size: 24px;
  cursor: pointer;
  display: none;
  margin-left: auto;
}

/* スマホメニュー初期状態は非表示 */
#mobile-nav ul {
  display: none;
  flex-direction: column;
  padding: 10px;
  list-style: none;
  margin: 0;
  background: #fff;
  border-top: 1px solid #eee;
}

#mobile-nav ul.show {
  display: flex;
}

@media (max-width: 768px) {
  .header-top {
    flex-direction: row;         /* ← 縦並びをやめて横並びに */
    justify-content: space-between;
    align-items: center;
    padding: 10px 15px;
  }

  .header-logo img {
    height: 60px;                /* 少し小さめに調整 */
  }

  .hamburger {
    display: block;
    font-size: 24px;
    cursor: pointer;
    margin-left: auto;
  }

  .nav-buttons {
    display: none;               /* スマホでは非表示のままでOK */
  }

  main {
    padding-top: 80px !important;  /* ヘッダーの高さに合わせて余白調整 */
  }
}

@media (max-width: 768px) {
  .nav-pc {
    display: none;
  }
}

[id^="section-"] {
  scroll-margin-top: 124px;
}

@media (max-width: 768px) {
  [id^="section-"] {
    scroll-margin-top: 80px;
  }
}

.band-title {
  position: relative;
  z-index: 2;
  color: white !important;
  font-weight: bold;          /* ← 太文字を明示 */
  font-size: 28px;            /* お好みで調整可能 */
  margin: 0;
  padding: 0;
}

.custom-band {
  position: relative;
  width: 100%;
  height: 2.5cm;
  background-color: #f27e18;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  font-weight: bold;
  font-size: 24px;
  line-height: 1;               /* ← 高さのズレ防止 */
  padding: 0;                   /* ← 不要な上下余白をなくす */
  margin: 0;
  box-sizing: content-box;      /* ← 高さ指定に忠実になるよう調整 */
}

.band-title {
  position: relative;
  z-index: 2;
}

.triangle-down {
  position: absolute;
  bottom: 0;                    /* ← 隙間が出ないように */
  left: 50%;
  transform: translateX(-50%) translateY(100%);
  width: 0;
  height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-top: 20px solid #f27e18;
  z-index: 1;
}

@media (max-width: 768px) {
  .custom-band {
    height: 1.5cm;
    font-size: 18px;
  }

  .triangle-down {
    border-left: 16px solid transparent;
    border-right: 16px solid transparent;
    border-top: 16px solid #f27e18;
  }
}


.aband-title {
  position: relative;
  z-index: 2;
  color: white !important;
  font-weight: bold;          /* ← 太文字を明示 */
  font-size: 28px;            /* お好みで調整可能 */
  margin: 0;
  padding: 0;
}

.acustom-band {
  position: relative;
  width: 100%;
  height: 2.5cm;
  background-color: #7abb27;
  display: flex;
  justify-content: center;
  align-items: center;
  color: white;
  font-weight: bold;
  font-size: 24px;
  line-height: 1;               /* ← 高さのズレ防止 */
  padding: 0;                   /* ← 不要な上下余白をなくす */
  margin: 0;
  box-sizing: content-box;      /* ← 高さ指定に忠実になるよう調整 */
}

.aband-title {
  position: relative;
  z-index: 2;
}

.atriangle-down {
  position: absolute;
  bottom: 0;                    /* ← 隙間が出ないように */
  left: 50%;
  transform: translateX(-50%) translateY(100%);
  width: 0;
  height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-top: 20px solid #7abb27;
  z-index: 1;
}

@media (max-width: 768px) {
  .acustom-band {
    height: 1.5cm;
    font-size: 18px;
  }

  .atriangle-down {
    border-left: 16px solid transparent;
    border-right: 16px solid transparent;
    border-top: 16px solid #7abb27;
  }
}


html, body {
  overflow-x: hidden;
  max-width: 100%;
}

.bxslider-wrapper {
  max-width: 1000px;
  margin: 0 auto;
  padding: 0 20px;
}

.bxslider {
  margin: 0;
  padding: 0;
  list-style: none;
}

.bxslider img {
  width: 100%;
  height: auto;
  display: block;
}

.bx-wrapper {
  position: relative;
  z-index: 1;
  border: none !important;
  box-shadow: none !important;
  background: transparent !important;
  padding: 0 !important;
}


.c-btn {
  position: relative;
  z-index: 2;
}


.custom-full-button {
  width: 100%;
  text-align: center;
  margin: 30px 0;
}

.custom-full-button a {
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #f27e18;  /* ← 修正済み */
  color: white;
  text-decoration: none;
  border-radius: 9999px;
  font-size: 16px;
  margin: 0 auto;
  transition: background-color 0.3s ease;
}

/* PC：画面幅769px以上 */
@media screen and (min-width: 769px) {
  .custom-full-button a {
    width: 60%;
    height: 1.5cm;
    font-size: 20px;
  }
}

/* スマホ：768px以下 */
@media screen and (max-width: 768px) {
  .custom-full-button a {
    width: 90%;
    height: 1.5cm;
    font-size: 20px;
  }
}

/* 汎用：ホバーで少し大きくなる共通アニメーション */
.hover-grow {
  transition: transform 0.1s ease;
}

.hover-grow:hover {
  transform: scale(1.05);
}


/* 画像セクション全体 */
.custom-image-section {
  background-color: #f9f2ea; /* 背景色なし */
  padding: 10px 20px;               /* 上下の空白を10px、左右は0 */
  text-align: center;
}


/* ❶ 横幅の上限を付ける ❷ 自動で中央寄せ */
.custom-image-wrapper {
  max-width: 960px;   /* ← ここをお好みで（例: 900, 1000 など） */
  margin: 0 auto;
}

.custom-image-wrapper img {
  width: 100%;
  height: auto;
  display: block;
}


.custom-video-section {
  background-color: transparent;
  padding: 40px 20px;
  display: flex;
  justify-content: center !important;
}

.custom-video-wrapper {
  width: 100%;
  max-width: 800px;
  aspect-ratio: 16 / 9;  /* ← 高さ制御がしやすくなる新方式 */
  position: relative;
}

.custom-video-wrapper iframe {
  width: 100%;
  height: 100%;
  border: none;
}

.custom-heading1 {
  text-align: center !important;
  margin-top: 1.5em !important; /* 上余白を強制 */
  margin-right: auto;
  margin-left: auto;
  margin-bottom: 0px;
  max-width: 90%;
}

.custom-heading {
  text-align: center !important;
  margin: 40px auto;
  max-width: 90%;
}

.custom-heading1 h2 {
  margin: 0;
  font-weight: bold;
  color: #f27e18;
  display: inline-block;
  line-height: 1.4;
  text-align: center !important;
}

.heading-small {
  font-size: 20px;
  text-align: center !important;
}

.heading-now {
  font-size: 28px;
  text-align: center !important;
}

@media (max-width: 768px) {
  .heading-small {
    font-size: 16px;
  }

  .heading-now {
    font-size: 20px;
  }
}
