/* ===== 基本設定 ===== */
:root {
  --primary-color: #059191;
  --secondary-color: #15393e;
  --bg-color: #f0f5f5;
  --light-bg: #f7fafa;
  --border-color: #bcd5d5;
  --text-color: #15393e;
  --white: #fff;
  --transition: all 0.3s ease;
  --border-radius: 10px;
}

/* リセット */
* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  font-size: 62.5%;
  scroll-behavior: smooth;
}

body {
  font-family: "Zen Old Mincho", serif;
  font-weight: 400;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  background-color: var(--bg-color);
  color: var(--text-color);
}

/* タイポグラフィ */
.tenor-sans-regular {
  font-family: "Tenor Sans", sans-serif;
  font-weight: 400;
}

.noto-sans-jp {
  font-family: "Noto Sans JP", sans-serif;
  font-optical-sizing: auto;
}

/* 共通要素 */
img {
  max-width: 100%;
  height: auto;
  display: block;
  border: none;
  image-rendering: -webkit-optimize-contrast;
}

a {
  text-decoration: none;
  transition: var(--transition);
}

a:hover {
  cursor: pointer;
}

ul,
ol {
  list-style: none;
}

section {
  position: relative;
  top: -1px;
}

/* リンクボタン共通スタイル */
.link-button a {
  width: 80px;
  max-width: 80px;
}

/* ホバーアイコン切り替え */
.message .link-button a:hover img {
  content: url("../assets/images/circle-arrow-hv-right.svg");
}

.trainer .link-button a:hover img {
  content: url("../assets/images/circle-arrow-hv-down.svg");
}

.trainer .accordion-content .link-button a:hover img {
  content: url("../assets/images/circle-arrow-hv-up.svg");
}

/* タイトルブロック共通スタイル */
.title-block .big-text2 {
  color: rgba(5, 145, 145, 0.1);
  font-size: clamp(60px, calc(100vw * 150 / 1440), 180px);
  margin: 0;
  padding: 8% 0 0 1.3%;
}

.title-block p {
  color: var(--text-color);
  font-size: clamp(22px, calc(100vw * 24 / 1140), 26px);
  line-height: 1.6;
  letter-spacing: 2.4px;
  padding-left: 4.8%;
}

/* アニメーション */
.fade-in-section {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease-out, transform 0.8s ease-out;
  will-change: opacity, transform;
}

.fade-in-section.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.fade-in-onload {
  opacity: 0;
  transform: translateY(30px);
  animation: fadeInUp 0.8s ease-out forwards;
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* アニメーション遅延クラス */
.delay-100 {
  animation-delay: 0.1s;
}
.delay-200 {
  animation-delay: 0.2s;
}
.delay-300 {
  animation-delay: 0.3s;
}
.delay-400 {
  animation-delay: 0.4s;
}
.delay-500 {
  animation-delay: 0.5s;
}
.delay-600 {
  animation-delay: 0.6s;
}
.delay-700 {
  animation-delay: 0.7s;
}
.delay-800 {
  animation-delay: 0.8s;
}

/* メディアクエリ - SP表示 */
@media screen and (max-width: 959px) {
  .link-button a {
    width: 54px;
  }

  .title-block .big-text2 {
    font-size: clamp(48px, calc(100vw * 60 / 390), 67px);
  }

  .title-block p {
    font-size: clamp(12px, calc(100vw * 14 / 390), 17px);
  }
}
/* SPではホバー効果を無効化 */
@media screen and (max-width: 959px) {
  /* メッセージセクションのリンクボタン */
  .message .link-button a:hover img {
    content: none; /* ホバー時の画像変更を無効化 */
  }

  /* トレーナーセクションのリンクボタン */
  .trainer .link-button a:hover img {
    content: none; /* ホバー時の画像変更を無効化 */
  }

  /* アコーディオン内のリンクボタン */
  .trainer .accordion-content .link-button a:hover img {
    content: none; /* ホバー時の画像変更を無効化 */
  }

  /* すべてのリンクボタンのホバー効果を明示的に無効化 */
  .link-button a:hover {
    opacity: 1;
  }
}
/* ===== ヘッダー ===== */
.header {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  background: var(--bg-color);
  z-index: 10000;
  height: 100px;
  display: flex;
  align-items: center;
}

.header-inner {
  max-width: 100%;
  width: 100%;
  margin: 0 auto;
  padding: 0 1.3889vw;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

/* ロゴ */
.header-logo {
  display: flex;
  align-items: center;
}

.header-logo img {
  width: 10.4167vw;
  padding-right: 7%;
  border-right: 1px solid var(--border-color);
}

.header-logo .catch {
  font-size: clamp(14px, calc(100vw * 14 / 1440), 17px);
  margin-left: 1.3889vw;
  line-height: 1.2;
  font-weight: 600;
  color: var(--primary-color);
  line-height: 1.5;
}

/* ヘッダーアイコン */
.header-icons {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 4.8611vw;
  height: 100%;
  transition-property: opacity;
  transition-duration: 0.5s;
}

/* インスタグラムドロップダウン */
.header-instagram {
  position: relative;
  display: flex;
  align-items: center;
}

.insta-btn {
  display: flex;
  align-items: center;
  cursor: pointer;
}

.insta-btn img {
  width: 1.7361vw;
  height: auto;
}
.insta-btn img:hover {
  opacity: 0.8;
}
.insta-arrow {
  display: inline-block;
  width: 0.6944vw;
  height: 0.6944vw;
  margin-left: 1.3889vw;
  border-right: 0.0694vw solid var(--primary-color);
  border-bottom: 0.0694vw solid var(--primary-color);
  transform: rotate(45deg);
  transition: var(--transition);
}

.insta-btn.active .insta-arrow {
  transform: rotate(-135deg);
}

.insta-menu {
  position: fixed;
  top: 100px;
  left: auto;
  width: 200px;
  background: var(--bg-color);
  overflow: hidden;
  max-height: 0;
  opacity: 0;
  transition: max-height 0.4s ease, opacity 0.3s ease;
  z-index: 999;
}

.insta-menu.active {
  max-height: 200px;
  opacity: 1;
}

.insta-menu a {
  display: block;
  padding: 10px;
  font-size: 1.6rem;
  color: var(--primary-color);
  font-weight: 500;
  line-height: 1.5;
  background-color: var(--bg-color);
}

.insta-menu .rel-insta {
  background: var(--primary-color);
  color: var(--bg-color);
}

/* ホバーの設定 */
.insta-menu a:hover {
  background-color: var(--primary-color);
  color: var(--bg-color);
  transition: all 0.3s ease;
  opacity: 1;
}

.insta-menu .rel-insta:hover {
  background-color: var(--bg-color);
  color: var(--primary-color);
  opacity: 1;
}

/* LINEボタン */
.header-line {
  display: flex;
  align-items: center;
}

.header-line img {
  width: 2.3vw;
  height: auto;
}
.header-line img:hover {
  opacity: 0.8;
}
.header-trial-btn {
  display: none;
}

/* ハンバーガーメニュー */
.menu-btn {
  width: 30px;
  height: 22px;
  position: relative;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  align-items: center;
  z-index: 10001;
}

.menu-btn span {
  display: block;
  height: 1px;
  background: var(--primary-color);
  width: 100%;
  transition: var(--transition);
}

/* メニューオープン時のスタイル */
.header.menu-open .menu-btn span:nth-child(1) {
  transform: rotate(45deg);
  position: absolute;
  top: 10px;
}

.header.menu-open .menu-btn span:nth-child(2) {
  opacity: 0;
}

.header.menu-open .menu-btn span:nth-child(3) {
  transform: rotate(-45deg);
  position: absolute;
  bottom: 10px;
}

/* ナビゲーション */
.header-nav {
  position: fixed;
  top: 0;
  right: -100%;
  width: 53vw;
  height: 100%;
  background: var(--bg-color);
  z-index: 9999;
  padding: 60px 20px;
  transition: 0.5s;
}

.nav-wrapper {
  padding-top: 20%;
}

.header-nav .nav-wrapper {
  width: 75%;
  margin: 0 auto;
}

.header-nav .nav-wrapper ul {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
}

.header-nav .nav-wrapper ul li {
  display: inline-block;
  width: 50%;
  margin-bottom: 3%;
}

.header-nav ul li a {
  font-size: clamp(13px, calc(100vw * 20 / 1440), 20px);
  color: var(--primary-color);
  font-weight: 500;
  line-height: 1.9;
}

/* インスタラッパー */
.insta-wrapper .nav-icons {
  display: flex;
  justify-content: flex-start;
}

.insta-wrapper p {
  font-size: clamp(12px, calc(100vw * 16 / 1440), 16px);
  font-weight: 500;
  line-height: 1.9;
}

.nav-icons {
  margin-top: 4%;
  width: 100%;
}

.nav-icons a {
  width: 35%;
  display: flex;
  justify-content: flex-start;
}

.nav-icons a img,
.nav-line a img {
  padding-right: 2%;
  font-size: clamp(1.8rem, 1.5972vw, 2.8rem);
}

.nav-line p {
  font-size: clamp(12px, calc(100vw * 16 / 1440), 16px);
  font-weight: 500;
  margin: 0;
}

.nav-line {
  width: auto;
  margin-top: 4%;
  display: inline-block;
  padding: 0;
  border: none;
  border-radius: 0;
  min-width: auto;
}

.header-nav-btn {
  display: inline-block;
  width: 230px;
  height: 80px;
  background-image: url("../assets/images/header-nav-btn.svg");
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  text-indent: -9999px;
  overflow: hidden;
}

/* hoverで画像切り替え */
.header-nav-btn:hover {
  background-image: url("../assets/images/header-nav-btn-hv.svg");
  opacity: 1;
}

.header.menu-open .header-nav {
  right: 0;
}

/* オーバーレイ */
.header .overlay {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: rgba(0, 0, 0, 0.5);
  opacity: 0;
  visibility: hidden;
  transition: 0.3s;
  z-index: 9990;
}

.header.menu-open .overlay {
  opacity: 1;
  visibility: visible;
}

/* PC/SP表示切り替え */
@media screen and (min-width: 960px) {
  .sp {
    display: none !important;
  }
}

/* ヘッダーのSP対応 */
@media screen and (max-width: 959px) {
  .pc {
    display: none !important;
  }

  .header {
    height: 60px;
  }

  .header-inner {
    padding: 0 15px;
    align-items: center;
  }

  .header-logo {
    flex-direction: column;
    align-items: flex-start;
  }

  .header-logo img {
    width: 120px;
    z-index: 10000;
    border: none;
  }

  .header-logo .catch {
    display: none;
  }

  .header-nav .nav-wrapper {
    width: 90%;
  }

  .header-icons .header-instagram,
  .header-icons .header-line {
    display: none;
  }

  .header-icons .header-trial-btn {
    display: flex;
    background: var(--primary-color);
    color: var(--bg-color);
    height: 60px;
    align-items: center;
    justify-content: center;
    z-index: 10000;
  }

  .header-icons .header-trial-btn a {
    color: var(--bg-color);
    font-size: clamp(12px, calc(100vw * 14 / 1440), 14px);
    padding: 0 20px;
    font-weight: 500;
    line-height: 1.2;
    text-align: center;
  }
  .nav-icons a {
    width: 50%;
  }
  .header-icons .menu-btn {
    width: 25px;
    height: 25px;
    display: flex;
    align-items: center;
  }

  .header-icons .menu-btn span {
    margin: 1px 0;
  }

  .header.menu-open .menu-btn span:nth-child(1) {
    transform: translateY(0) rotate(45deg);
    top: 11px;
  }

  .header.menu-open .menu-btn span:nth-child(3) {
    transform: translateY(0) rotate(-45deg);
    bottom: 11px;
  }

  .header-nav {
    width: 100%;
    height: 80%;
    max-width: 100%;
    padding: 60px 20px;
  }

  .header-nav ul li {
    width: 100%;
  }
}

/* 小さいスマホ用 */
@media screen and (max-width: 380px) {
  .nav-wrapper {
    width: 100%;
  }

  .header-icons .header-trial-btn {
    width: 90%;
  }

  .header-icons .header-trial-btn a {
    font-size: 1.3rem !important;
    padding: 0 10px !important;
  }
}
/* FV -------------------------------------------------------------- */
.fv {
  width: 100%;
  background: url(../assets/images/KV_bg.jpg) center / cover no-repeat;
  padding-top: 100px;
  position: relative;
}

.fv-inner {
  margin: 0 auto;
  width: 83%;
  max-width: 1200px;
}
.fv-block {
  padding-top: 13%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
}

.fv-text {
  flex: 0 0 65%;
  color: #fff;
  padding-left: 2vw;
}

.fv-text h1 {
  font-size: clamp(30px, calc(100vw * 60 / 1440), 63px);
  line-height: 1.6;
  font-weight: 500;
  letter-spacing: 9px;
  padding: 10% 0 3%;
}

.fv-button a {
  display: inline-block;
}

.fv-description {
  font-size: clamp(12px, calc(100vw * 14 / 1440), 17px);
  line-height: 1.9;
  color: #fff;
  font-weight: 600;
  padding: 15% 0 6%;
}
.fv-image-slider {
  flex: 0 0 32%;
  position: relative;
}
.fv-image-slider img {
  width: 27vw;
  aspect-ratio: 389 / 593;
  overflow: hidden;
  border-radius: 10px;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  transition: opacity 1s ease;
}

.fv-image-slider img.active {
  opacity: 1;
}
@media screen and (max-width: 959px) {
  /* 既存のスタイルはそのままで、以下のみ変更/追加 */

  .fv-image-slider {
    width: 100%;
    margin: 0 auto;
    position: relative;
    height: 65vw; /* スライダーに明示的な高さを設定 */
    margin-bottom: 10%; /* 下部にマージンを追加 */
  }

  .fv-image-slider img {
    width: 60vw;
    max-width: 300px;
    aspect-ratio: 210 / 320;
    overflow: hidden;
    border-radius: 10px;
    position: absolute;
    top: 0;
    left: 50%;
    transform: translateX(-50%);
  }
  .fv-button a {
    width: 54px;
  }
}

/* ボタンの設定 */

.fv-button {
  display: flex;
  align-items: center;
  gap: 20px;
  margin-top: 30px;
}

.fv-button p {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 19px);
  line-height: 1.9;
  color: #fff;
  font-weight: 600;
}

.circle-arrow-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 80px;
  height: 80px;
  border: 1px solid #fff;
  border-radius: 50%;
  text-align: center;
  position: relative;
  overflow: hidden;
}

/* .circle-arrow-btn:hover {
  opacity: 0.7;
} */

/* sp */
@media screen and (max-width: 959px) {
  .fv {
    padding-top: 50px;
  }
  .fv-block {
    padding-bottom: 22%;
  }
  .fv-inner {
    width: 90%;
  }
  .fv-block {
    display: block;
  }
  .circle-arrow-btn {
    width: 54px;
    height: 54px;
  }
  .circle-arrow-btn::after {
    font-size: 21px;
  }
  .fv-description {
    font-size: clamp(12px, 0.972vw, 18px);
    line-height: 1.8;
    color: #fff;
    padding: 7% 0 8%;
  }
  .fv-text {
    padding: 0;
  }
  .fv-text h1 {
    padding: 11% 0 7%;
    letter-spacing: 5px;
  }
  .fv-button {
    margin: 0;
    padding-bottom: 9%;
  }
  .fv-image-slider {
    width: 60vw;
    margin: 0 auto;
  }
  .fv-image-slider img {
    width: 40vw;
    aspect-ratio: 210 / 320;
    overflow: hidden;
    border-radius: 10px;
    min-width: 210px;
    left: 50%;
    transform: translatex(-50%);
  }
}

/* sp-small */
@media screen and (max-width: 400px) {
  .fv-text h1 {
    font-size: clamp(28px, calc(100vw * 30 / 390), 31px);
  }
  .fv-button p {
    font-size: clamp(12px, 3.5897vw, 14px);
  }

  .fv-image-slider img {
    width: 85%;
    min-width: auto;
  }
}

/* MESSAGE
-------------------------------------------------------------- */
/* messageセクション共通スタイル */
.message {
  position: relative;
  padding-top: 12%;
}

.message-inner {
  width: 75%;
  max-width: 1200px;
  margin: 0 auto;
}

.message-block {
  display: flex;
  justify-content: space-between;
}

.big-text {
  display: inline-block;
  position: absolute;
  top: 8%;
  left: 1.3%;
  color: rgba(5, 145, 145, 0.1);
  font-size: clamp(60px, calc(100vw * 150 / 1440), 180px);
  margin: 0;
}

.message h3 {
  font-size: clamp(22px, calc(100vw * 30 / 1440), 33px);
  line-height: 1.6;
  letter-spacing: 3px;
  margin-bottom: 7%;
}

.message-image {
  width: 35%;
  aspect-ratio: 368 / 500;
  padding-top: 10vh;
}

.message-image img {
  width: 100%;
}

.message-description {
  width: 50%;
}

.message-description p {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 17px);
  font-weight: 500;
  line-height: 1.9;
}

.message-description p:last-of-type {
  padding-top: 8%;
}

/* ボタンブロック */
.message .link-button,
.trainer .link-button {
  margin: 0 auto 0 3%;
  display: flex;
  justify-content: flex-end;
  align-items: center;
  padding-bottom: 20%;
}

.message .link-button p,
.trainer .link-button p {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  font-weight: 600;
  line-height: 1.9;
  text-align: right;
  margin-right: 3%;
}

/* スマホ版スタイル */
@media screen and (max-width: 1000px) {
  .message {
    padding-top: 38%;
  }

  .message-inner {
    width: 84%;
  }

  .message-block {
    display: block;
  }

  .big-text {
    position: relative;
    font-size: clamp(48px, calc(100vw * 60 / 390), 67px);
  }

  .message h3 {
    font-size: clamp(20px, calc(100vw * 22 / 390), 22px);
    letter-spacing: 2.2px;
    margin-bottom: 11%;
  }

  .message-image {
    width: 75%;
    max-width: 366px;
    padding: 0 0 9%;
    margin: 0 auto;
  }

  .message-description {
    width: 100%;
    padding-bottom: 15%;
  }

  .message-description p {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
  }

  .message-description p:last-of-type {
    padding-top: 12%;
  }

  .message .link-button,
  .trainer .link-button {
    margin-left: auto;
    margin-right: 0;
    padding-bottom: 36%;
  }

  .message .link-button p,
  .trainer .link-button p {
    font-size: clamp(14px, calc(100vw * 14 / 390), 14px);
  }
}

/* ReL GYM
-------------------------------------------------------------- */
.ReLGYM-section {
  position: relative;
  min-height: 170vh;
  z-index: auto;
  margin-top: 80vh;
}

/* 固定背景を持つ要素 */
.ReLGYM-background {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100vh;
  background: url(../assets/images/rel-gym_bg.jpg) center / cover no-repeat;
  z-index: -1;
}

/* コンテンツを持つ要素（背景の上を通過する） */
.ReLGYM-inner {
  padding-top: 70%;
  position: relative;
  width: 100%;
  /* background: rgba(21, 57, 62, 0.5); */
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
  z-index: 1;
  background: linear-gradient(
    to bottom,
    rgba(21, 57, 62, 0) 0%,
    rgba(21, 57, 62, 0.5) 10%
  );
  height: 100%; /* 必要に応じて調整してください */
}

/* コンテンツ内のテキストスタイル */
.ReLGYM-content {
  color: #f0f5f5;
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  letter-spacing: -7.5px;
  padding: 9% 0 9% 1.3%;
}
@media screen and (max-width: 959px) {
  .ReLGYM-content {
    width: 89%;
    padding: 20% 0 28% 2%;
  }
  .ReLGYM-inner {
    padding-top: 100vh;
  }
}
.ReLGYM-content h2 {
  font-size: clamp(60px, calc(100vw * 150 / 1440), 160px);
}
@media screen and (max-width: 959px) {
  .ReLGYM-content h2 {
    font-size: clamp(48px, calc(100vw * 60 / 390), 67px);
    letter-spacing: -3px;
  }
}
.ReLGYM-content p {
  font-size: clamp(22px, calc(100vw * 24 / 1440), 27px);
  font-style: normal;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 2.4px;
  margin-left: 3%;
}
@media screen and (max-width: 959px) {
  .ReLGYM-content p {
    font-size: clamp(16px, calc(100vw * 18 / 390), 20px);
    margin-left: 10%;
  }
}
/* リストここから */
.rel-gym_list {
  width: 69%;
  margin: 0 auto;
  max-width: 1200px;
}
@media screen and (max-width: 959px) {
  .rel-gym_list {
    width: 100%;
  }
}
.rel-gym_list li {
  display: flex;
  justify-content: space-between;
  align-items: center;
  width: 96%;
  color: #f0f5f5;
  margin-bottom: 20%;
}
@media screen and (max-width: 959px) {
  .rel-gym_list li {
    width: 100%;
    display: block;
    margin-bottom: 18%;
  }
}
.rel-gym_list .discription {
  width: 57%;
}
@media screen and (max-width: 959px) {
  .rel-gym_list .discription {
    width: 100%;
  }
}
.discription_No {
  display: inline-block;
  font-size: clamp(20px, calc(100vw * 20 / 1440), 23px);
  font-style: normal;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 2px;
  padding-bottom: 3%;
  border-bottom: 1px solid #f0f5f5;
  margin-bottom: 1.9%;
}
@media screen and (max-width: 959px) {
  .discription_No {
    padding-bottom: 5%;
  }
}
.discription h3 {
  font-size: clamp(28px, calc(100vw * 30 / 1440), 33px);
  font-style: normal;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 3px;
  padding-bottom: 4%;
}
@media screen and (max-width: 959px) {
  .discription h3 {
    font-size: clamp(18px, calc(100vw * 20 / 390), 20px);
    padding-bottom: 6%;
    padding-top: 5%;
  }
}
.discription_text {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  font-style: normal;
  font-weight: 500;
  line-height: 1.9;
}
.feature-list {
  margin: 0;
  padding: 0;
}

.feature-item {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  font-style: normal;
  font-weight: 500;
  line-height: 1.9;
  color: #f0f5f5;
  text-indent: -1em;
  padding-left: 1em;
}

@media screen and (max-width: 959px) {
  .feature-item {
    font-size: clamp(12px, calc(100vw * 14 / 390), 17px);
  }

  .feature-list {
    margin-bottom: 8%;
  }
}
@media screen and (max-width: 959px) {
  .discription_text {
    font-size: clamp(12px, calc(100vw * 14 / 390), 17px);
    margin-bottom: 8%;
  }
}

.rel-gym_list .image {
  width: 40%;
}
@media screen and (max-width: 959px) {
  .rel-gym_list .image {
    width: 100%;
  }
}
.rel-gym_list .image img {
  width: 100%;
  border-radius: 10px;
}
@media screen and (max-width: 959px) {
  .rel-gym_list .image img {
    width: 85%;
    max-width: 300px;
  }
}
.rel-gym_list li:nth-child(2) {
  margin-left: 10%;
}

@media screen and (max-width: 959px) {
  .rel-gym_list li:nth-child(2) {
    margin-left: 0;
  }
  .rel-gym_list li:nth-child(2) .image {
    display: flex;
    justify-content: flex-end;
  }
  .rel-gym_list li:last-child {
    margin-bottom: 9%;
  }
}
/* backdrop-filter非対応ブラウザ向けフォールバック */
@supports not (backdrop-filter: blur(5px)) {
  .ReLGYM-inner {
    background: rgba(21, 57, 62, 0.8);
  }
}

/* 次のセクションの設定 */
.ReLGYM-section + section {
  position: relative;
  z-index: auto; /* 自動的なスタッキングコンテキスト */
  background: #fff; /* 次のセクションの背景色 */
}

/* その他のコンテンツセクション */
main > section:not(.ReLGYM-section) {
  position: relative;
  z-index: auto;
  background-color: #f0f5f5;
}

/* モバイル対応 */
@media screen and (max-width: 959px) {
  .ReLGYM-inner {
    margin-top: 50vh; /* モバイルでは小さく */
  }
  /* モバイルを消す場合 */
  /* .ReLGYM-background {
    position: absolute; 
    background-attachment: scroll;
  } */

  .rel-gym_list {
    width: 90%;
    max-width: 500px;
  }

  .rel-gym_list li {
    flex-direction: column;
    width: 100%;
  }

  .rel-gym_list .discription,
  .rel-gym_list .image {
    width: 100%;
  }

  .rel-gym_list.discription {
    margin-bottom: 20px;
  }
}
/* サービスここから */

.rel-gym_service {
  color: #f0f5f5;
  width: 69%;
  margin: 0 auto;
  max-width: 1200px;
}
@media screen and (max-width: 959px) {
  .rel-gym_service {
    width: 100%;
  }
}
.rel-gym_service h3 {
  text-align: center;
  font-size: clamp(22px, calc(100vw * 24 / 1440), 27px);
  font-style: normal;
  font-weight: 400;
  line-height: 1.6;
  letter-spacing: 1.2px;
  padding-bottom: 3%;
}
@media screen and (max-width: 959px) {
  .rel-gym_service h3 {
    font-size: clamp(16px, calc(100vw * 18 / 390), 21px);
    font-style: normal;
    letter-spacing: 0.9px;
    padding-bottom: 5%;
  }
}
.rel-gym_service ul {
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: nowrap;
  padding-bottom: 13%;
}
@media screen and (max-width: 959px) {
  .rel-gym_service ul {
    flex-wrap: wrap;
    width: 89%;
    margin: 0 auto;
    padding-bottom: 7%;
    max-width: 500px;
  }
}
.rel-gym_service ul li {
  width: 25%;
}
@media screen and (max-width: 959px) {
  .rel-gym_service ul li {
    width: 50%;
    padding-bottom: 5%;
  }
}
.rel-gym_service ul li img {
  width: 92%;
  margin: 0 auto;
}
@media screen and (max-width: 959px) {
  .rel-gym_service ul li img {
    width: 92%;
    margin: 0 auto;
    max-width: 200px;
  }
}
/* recommendation
-------------------------------------------------------------- */
.recommendation {
  padding-top: 7%;
}
.recommendation h2 {
  text-align: center;
  font-size: clamp(22px, calc(100vw * 24 / 1440), 27px);
  line-height: 1.6;
  letter-spacing: 1.2px;
  padding-bottom: 3%;
}
@media screen and (max-width: 959px) {
  .recommendation h2 {
    width: 89%;
    margin: 0 auto;
    padding-top: 18%;
    font-size: clamp(14px, calc(100vw * 16 / 390), 18px);
    letter-spacing: 0.8px;
    padding-bottom: 7%;
  }
}
.recommendation h2 span {
  color: #059191;
  font-size: clamp(28px, calc(100vw * 30 / 1440), 33px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 1.5px;
}
@media screen and (max-width: 959px) {
  .recommendation h2 span {
    font-size: clamp(24px, calc(100vw * 26 / 390), 29px);
    letter-spacing: 1.3px;
  }
}
/* リスト */
.recommendation ul {
  width: 41%;
  margin: 0 auto 7%;
  max-width: 1200px;
}
@media screen and (max-width: 959px) {
  .recommendation ul {
    width: 84%;
  }
  .recommendation ul {
    margin: 0 auto 11%;
  }
}
.recommendation ul li:last-child {
  border-bottom: 1px solid #bcd5d5;
}
.recommendation ul li {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding: 2.5% 0;
  border-top: 1px solid #bcd5d5;
}
@media screen and (max-width: 959px) {
  .recommendation ul li {
    padding: 3.6% 0;
  }
}
.recommendation ul li p {
  color: #15393e;
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  line-height: 1.6;
  margin-left: 3%;
}

.recommendation ul li img {
  margin-left: 5%;
}
.recommendation-message {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  line-height: 1.6;
  text-align: center;
  padding-bottom: 9%;
}
@media screen and (max-width: 959px) {
  .recommendation ul li p {
    font-size: clamp(14px, calc(100vw * 16 / 390), 18px);
    line-height: 1.6;
  }
  .recommendation-message {
    width: 94%;
    margin: 0 auto;
    font-size: clamp(16px, calc(100vw * 18 / 390), 20px);
    padding-bottom: 19%;
  }
}
/* lesson-flo
-------------------------------------------------------------- */
.lesson-flow {
  background-color: #e8f0f0 !important;
}

.lesson-flow .title-block {
  padding-bottom: 10%;
}

.flow-wrapper {
  width: 83%;
  margin: 0 auto;
  display: flex;
  justify-content: flex-end;
  flex-wrap: nowrap;
  max-width: 1200px;
  padding-bottom: 8%;
}

/* 左側 */
.lesson-flow_photo {
  width: 50%;
  display: flex;
  justify-content: flex-start;
  flex-wrap: wrap;
}
.lesson-flow_block {
  width: 50%;
  margin-top: 3%;
}
.photo_block {
  width: 40%;
  padding-bottom: 10%;
}
.image-wrappers {
  border-radius: 10px;
  width: 100%;
  height: 320px;
  overflow: hidden;
  margin-bottom: 4%;
}
.photo_block img {
  object-fit: cover;
  object-position: center;
}
.photo_block p {
  font-size: clamp(10px, calc(100vw * 10 / 1440), 12px);
  font-style: normal;
  font-weight: 400;
  line-height: 1.6;
  margin-bottom: 14%;
}
.indented-block {
  margin-left: 6%;
  margin-top: 30%;
}

/* 右側 */
.lesson-list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.lesson-item {
  position: relative;
  padding-left: 6%;
}
.lesson-item::before {
  content: "";
  position: absolute;
  left: 0;
  top: 15px;
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background-color: #059191;
  z-index: 2;
}
.lesson-item:not(:last-child)::after {
  content: "";
  position: absolute;
  left: 3px;
  top: 15px;
  width: 1px;
  height: calc(100%);
  background-color: #bcd5d5;
  z-index: 1;
}

.lesson-title {
  color: #059191;
  font-size: clamp(18px, calc(100vw * 20 / 1440), 22px);
  line-height: 1.6;
  margin: 0 0 1% 0;
  font-weight: 400;
}
.lesson-description {
  width: 82%;
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  line-height: 1.9;
  font-weight: 500;
  padding-bottom: 9%;
}
.lesson-note {
  font-size: clamp(10px, calc(100vw * 12 / 1440), 14px);
}
.text-open {
  color: #059191;
  text-align: center;
  font-size: clamp(18px, calc(100vw * 20 / 1440), 22px);
  line-height: 1.6;
  padding-bottom: 10%;
}

@media screen and (max-width: 959px) {
  .lesson-flow .title-block {
    padding-bottom: 15%;
  }

  .flow-wrapper {
    width: 84%;
    flex-direction: column-reverse;
    max-width: 500px;
  }
  .image-wrappers {
    height: auto;
  }
  .lesson-flow_photo,
  .lesson-flow_block {
    width: 100%;
  }
  .lesson-flow_photo {
    justify-content: space-between;
  }

  .lesson-flow_block {
    margin: 0 auto 16%;
  }

  .photo_block {
    width: 46%;
    padding-bottom: 10%;
  }
  .indented-block {
    margin-top: 40%;
  }

  .lesson-description {
    width: 100%;
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
    padding-bottom: 11%;
  }

  .lesson-title {
    font-size: clamp(16px, calc(100vw * 18 / 390), 20px);
  }

  .text-open {
    font-size: clamp(16px, calc(100vw * 18 / 390), 20px);
    padding-top: 5%;
  }
}

/* trainer
-------------------------------------------------------------- */
/* ======================================
   トレーナーセクション
   ====================================== */

/* メイントレーナーコンテナ */
.trainer {
  padding-bottom: 8%;
}

.trainer .title-block {
  text-align: center;
  padding-bottom: 4.4%;
}

.trainer .big-text2 {
  padding: 11% 0 0 0;
}

.trainer .title-block p {
  padding-left: 0;
  margin-top: -2%;
}

/* トレーナープロフィールコンテナ */
.trainer-profile {
  width: 72%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  padding-bottom: 7.5%;
  max-width: 1200px;
}

/* 左側コンテンツ */
.trainer-left {
  width: 53%;
}

/* 名前ブロックのスタイリング */
.name-block {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  padding-bottom: 8%;
}

.name-block h3 {
  color: #059191;
  font-size: clamp(25px, calc(100vw * 40 / 1440), 45px);
  padding-right: 6%;
}

.jp-name {
  font-size: clamp(18px, calc(100vw * 20 / 1440), 22px);
  padding-right: 13%;
  line-height: 1.6;
  color: #059191;
}

.insta-id {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  color: #059191 !important;
  font-weight: 500;
  line-height: 1.9;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  transition-property: opacity;
  transition-duration: 0.5s;
}
.insta-id:hover {
  opacity: 0.7;
}
.insta-id img {
  margin-right: 10px;
}

.insta-id a {
  color: #059191 !important;
}

/* トレーナー説明 */
.trainer-discription {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  font-weight: 500;
  line-height: 1.9;
  padding-bottom: 7%;
  border-bottom: 1px solid #bcd5d5;
}

/* 詳細リスト */
.trainer dl {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  font-weight: 500;
  line-height: 1.9;
  padding-top: 4%;
}

.up-block,
.down-block {
  width: 100%;
  display: flex;
  justify-content: flex-start;
}

.block1 {
  width: 35%;
  display: flex;
  justify-content: flex-start;
}

.block2 {
  width: 65%;
  display: flex;
  justify-content: flex-start;
}

.trainer dt {
  color: #059191;
  padding-right: 11%;
}

/* 右側（画像） */
.trainer-right {
  width: 35%;
}

.trainer-right img {
  width: 100%;
  height: auto;
  display: block;
  border-radius: 10px;
}

/* リンクボタン */
.trainer .link-button {
  justify-content: center;
  padding-bottom: 2%;
}

/* アコーディオンスタイル */
.accordion-content {
  overflow: hidden;
  max-height: 0;
  transition: max-height 0.5s ease;
  background-color: #f0f5f5;
  position: relative;
  z-index: 2;
}

.accordion-content.active {
  max-height: 2000px;
  overflow: visible;
  background-color: #f0f5f5;
}

.accordion-content.link-button.active .circle-arrow-btn {
  transform: rotate(180deg);
}

/* 内部コンテナ */
.inner-container {
  background-color: #f0f5f5;
  position: relative;
  z-index: 2;
  padding-bottom: 10%;
}

/* トレーナープロフィール2 */
.trainer-profiles {
  padding-top: 12%;
  width: 69%;
  margin: 0 auto;
  max-width: 1200px;
}

.trainer-profile2 {
  display: flex;
  justify-content: space-between;
  position: relative;
  background-color: #f0f5f5;
}

/* 画像部分 */
.trainer-image {
  width: 37%;
  border-radius: 10px;
  overflow: hidden;
  padding-top: 4%;
  position: sticky;
  top: 120px;
  align-self: flex-start;
  height: fit-content;
}

/* コンテンツ部分 */
.trainer-content {
  width: 51%;
  overflow-y: auto;
}

.trainer-content .section-title {
  color: #059191;
  font-size: clamp(18px, calc(100vw * 20 / 1440), 22px);
  line-height: 1.6;
  padding-bottom: 3%;
}

.trainer-text {
  font-size: clamp(14px, calc(100vw * 16 / 390), 18px);
  line-height: 1.9;
  font-weight: 500;
  padding-bottom: 6%;
}

.trainer-content-block,
.no-switching {
  margin-bottom: 15%;
}

.trainer-content-block:last-child {
  margin-bottom: 10%;
}

/* 閉じるボタン */
.accordion-content .link-button {
  background-color: #f0f5f5;
  position: relative;
  z-index: 2;
  padding-bottom: 20%;
  margin: 0;
}

/* ホバーアイコン切り替え */
.message .link-button a:hover img {
  content: url("../assets/images/circle-arrow-hv-right.svg");
}

.trainer .link-button a:hover img {
  content: url("../assets/images/circle-arrow-hv-down.svg");
}
.trainer .link-button.active a:hover img {
  content: url("../assets/images/circle-arrow-hv-up.svg");
}
.trainer .accordion-content .link-button a:hover img {
  content: url("../assets/images/circle-arrow-hv-up.svg");
}

/* レスポンシブデザイン */
@media screen and (max-width: 959px) {
  /* トレーナーセクション */
  .trainer {
    padding-bottom: 24%;
  }

  .trainer .title-block {
    padding-bottom: 10%;
  }

  .trainer .title-block p {
    padding-left: 0;
    margin-top: 1%;
  }

  /* トレーナープロフィール */
  .trainer-profile {
    width: 84%;
    display: flex;
    flex-direction: column-reverse;
    padding-bottom: 7.5%;
    max-width: 500px;
  }

  /* 左側コンテンツ */
  .trainer-left {
    width: 100%;
  }

  /* 名前ブロック */
  .name-block {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding-bottom: 15%;
  }

  .name-block h3 {
    color: #059191;
    font-size: clamp(30px, calc(100vw * 32 / 390), 34px);
    padding: 0 0 1% 0;
  }

  .jp-name {
    font-size: clamp(14px, calc(100vw * 16 / 390), 18px);
    padding: 0 0 2% 0;
    line-height: 1.6;
    color: #059191;
  }
  .insta-id {
    display: block;
  }
  .insta-id img {
    margin-right: 30px;
  }
  .insta-id {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
    color: #059191;
    font-weight: 500;
    line-height: 1.9;
  }

  .insta-cotainer {
    display: flex;
    justify-content: flex-start;
    align-items: center;
  }

  .insta-cotainer img {
    padding-right: 3%;
  }

  /* トレーナー説明 */
  .trainer-discription {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
    padding-bottom: 12%;
    border-bottom: 1px solid #bcd5d5;
  }

  /* 詳細リスト */
  .trainer dl {
    flex-direction: column;
    flex-wrap: nowrap;
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
    padding-top: 12%;
  }

  .up-block,
  .down-block {
    flex-direction: column;
  }

  .block1 {
    width: 100%;
  }

  .block2 {
    width: 100%;
  }

  .trainer dt {
    padding: 0 5% 3% 0;
  }

  .trainer .link-button a {
    width: 13%;
    max-width: 60px;
    min-width: 48px;
  }

  /* 右側（画像）のスタイル */
  .trainer-right {
    width: 64%;
    max-width: 300px;
    margin: 0 auto;
    padding-bottom: 6%;
  }

  /* トレーナープロフィール2 */
  .trainer-profiles {
    padding-top: 23%;
    width: 89%;
    max-width: 500px;
  }

  .trainer-profile2 {
    flex-direction: column;
  }

  /* 画像部分 */
  .trainer-image {
    width: 52%;
    padding-bottom: 11%;
    position: relative;
    top: 0;
  }

  /* コンテンツ部分 */
  .trainer-content {
    width: 100%;
  }

  .trainer-content .section-title {
    padding-bottom: 8%;
  }

  .trainer-text {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
    padding-bottom: 9%;
  }

  .trainer-content-block,
  .no-switching {
    margin-bottom: 28%;
  }

  .content002 {
    margin-left: auto;
    padding: 0 0 22% 0;
  }

  .content003 {
    padding: 0 0 22% 0;
    margin-top: -17%;
  }

  /* SPではホバー効果を無効化 */
  .message .link-button a:hover img,
  .trainer .link-button a:hover img,
  .trainer .accordion-content .link-button a:hover img {
    content: none; /* ホバー時の画像変更を無効化 */
  }

  .link-button a:hover {
    opacity: 1;
  }
}
/* experience
-------------------------------------------------------------- */
.experience {
  background: url(../assets/images/experience_bg.webp) no-repeat center / cover;
  display: flex;
  justify-content: center;
  align-items: center;
  margin-bottom: -1px;
}

.experience_inner {
  color: #f0f5f5;
  width: 69%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 10% 0 9% 0;
  max-width: 1200px;
}

.experience h2 {
  font-size: clamp(38px, calc(100vw * 40 / 1440), 42px);
  font-weight: 500;
  line-height: 1.6;
  letter-spacing: 4px;
}

.experience p {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  letter-spacing: 1px;
}

.yen {
  font-size: clamp(14px, calc(100vw * 18 / 1440), 20px);
  letter-spacing: 0.9px;
}

.price {
  font-size: clamp(22px, calc(100vw * 24 / 1440), 26px);
}
.diagonal-line {
  position: relative;
}

.diagonal-line::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  right: 0;
  border-top: 1px solid #50c0c0; /* 線の太さと色 */
  transform: rotate(-10deg); /* 斜めの角度を調整 */
}
.fv-button a:hover img {
  content: url("../assets/images/circle-arrow-hv.svg");
}
@media screen and (max-width: 1100px) {
  .experience {
    flex-direction: column;
  }

  .experience_inner {
    width: 89%;
    display: block;
    padding: 18% 0 17%;
  }

  .experience h2 {
    font-size: clamp(28px, calc(100vw * 30 / 390), 32px);
    letter-spacing: 4px;
    padding-bottom: 2.2%;
  }

  .experience p {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
    font-weight: 500;
  }
  .experience .fv-button {
    padding-top: 10%;
  }
  .yen {
    font-size: clamp(14px, calc(100vw * 16 / 390), 18px);
  }

  .fv-button {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
    padding-bottom: 0;
    font-weight: 600;
    line-height: 190%;
    padding-top: 0;
  }
}
/* voice
-------------------------------------------------------------- */
/* .voice {
  background: #888 !important;
} */
.voice .title-block {
  margin-bottom: 6%;
}
/* スライダー本体 */
.slider-container {
  position: relative;
  width: 100%;
  overflow: hidden;
  padding-top: 4.8%;
}
.slider-track {
  display: flex;
  transition: transform 0.4s ease;
  will-change: transform;
}
/* カードスタイル */
.testimonial-card {
  background-color: #f7fafa;
  transition: all 0.3s ease;
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: 30px 0;
  height: auto;
}
.card-inner {
  width: 86%;
  display: flex;
  flex-direction: column;
  height: 100%;
}
.testimonial-card h3 {
  color: #059191;
  font-size: clamp(18px, calc(100vw * 20 / 1440), 22px);
  line-height: 1.6;
  height: 2em; /* タイトルの行数に基づいた高さ設定 */
  display: flex;
  align-items: center; /* 垂直中央揃え */
  margin-bottom: 1%;
}
.testimonial-card .client-info {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  color: #059191;
  padding-bottom: 3%;
  border-bottom: 1px solid #bcd5d5;
  height: 1.5em; /* 一行分の高さ */
  display: flex;
  align-items: center; /* 垂直中央揃え */
}
.testimonial-card p {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  font-weight: 500;
  line-height: 190%;
  padding: 3% 0 0 0;
}

/* ナビゲーションコントロール */
.card-nav-wrapper {
  margin: 4% auto 0;
  padding-bottom: 17%;
}
.slider-nav {
  display: flex;
  justify-content: flex-start;
  padding-left: 2%;
  align-items: center;
  padding-top: 3%;
  width: 33%;
}

.slider-nav-btn {
  width: 80px;
  height: 80px;
  background: transparent;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  transition: all 0.3s ease;
  border: none;
}
@media screen and (max-width: 950px) {
  .slider-nav-btn {
    width: 54px;
  }
}

.slider-counter {
  margin: 0 20px;
  font-size: clamp(15px, calc(100vw * 17 / 1440), 19px);
  color: #15393e;
}

/* スライダーの無限ループ対応 */
.slider-track.no-transition {
  transition: none !important;
}

@media screen and (max-width: 959px) {
  .slider-container {
    padding-top: 15%;
  }
  .testimonial-card h3 {
    color: #059191;
    font-size: clamp(18px, calc(100vw * 20 / 390), 22px);
    line-height: 1.9;
    font-weight: 500;
    height: auto; /* モバイルでは高さを自動に */
    min-height: 2em; /* 最小高さの設定 */
  }
  .testimonial-card .client-info {
    padding-bottom: 5%;
    height: auto; /* モバイルでは高さを自動に */
    min-height: 1.5em; /* 最小高さの設定 */
  }
  .testimonial-card p {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
    padding: 6% 0 0 0;
    line-height: 1.9;
    height: 100%;
  }
  .client-text {
    height: 510px; /* モバイル用に高さを調整 */
    -webkit-line-clamp: 7; /* モバイルでは表示行数を調整 */
  }

  /* 画面サイズと向きに応じた追加の調整 */
  @media screen and (max-height: 700px) {
    .testimonial-card {
      padding: 15px 0;
    }

    .client-text {
      height: 150px;
      -webkit-line-clamp: 6;
    }
  }

  @media screen and (max-height: 600px) {
    .client-text {
      height: 120px;
      -webkit-line-clamp: 5;
    }
  }

  /* ナビゲーションコントロール */

  .slider-nav {
    justify-content: flex-start;
    width: 100%;
  }

  .slider-counter {
    margin: 0 20px;
    font-size: clamp(15px, calc(100vw * 17 / 390), 19px);
  }
}

/* レスポンシブの追加調整 - 横向きモバイル対応 */
@media screen and (max-width: 959px) and (orientation: landscape) {
  .testimonial-card {
    padding: 15px 0;
  }

  .client-text {
    height: 120px;
    -webkit-line-clamp: 4;
  }

  .card-nav-wrapper {
    padding-bottom: 15%;
  }
}

/* 修正用 */

.swiper-slide.testimonial-card {
  height: auto;
}

.voice-swiper .swiper-scrollbar {
  bottom: 0;
  height: 8px;
  width: 50%;
  left: 25%;
  border-radius: 4px;
}

.voice-swiper .swiper-pagination {
  position: static;
  width: auto;
  font-size: clamp(15px, calc(100vw * 17 / 1440), 19px);
  color: #15393e;
}

/* スマホ用スタイル */
@media screen and (max-width: 959px) {
  .voice-swiper .swiper-scrollbar {
    height: 5px;
  }
}

.swiper-slide.testimonial-card {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  padding: 30px 0;
}

@media screen and (max-width: 959px) {
  .voice-swiper .swiper-scrollbar {
    bottom: 0;
    height: 8px;
    left: 25%;
    background-color: #f0f5f5;
    border-radius: 4px;
    margin-bottom: 20px; /* スクロールバー下の余白 */
  }
}
.voice-swiper .swiper-scrollbar-drag {
  background-color: rgba(6, 142, 142, 0.3) !important;
  border-radius: 0 !important;
  height: 2px;
  width: 40% !important;
}

.voice-swiper .swiper-scrollbar-drag:hover {
  background-color: #059191;
}

.voice-swiper .swiper-pagination {
  position: static;
  width: auto;
  font-size: clamp(15px, calc(100vw * 17 / 1440), 19px);
  color: #15393e;
}
/* スクロールバー位置 */
.swiper-horizontal > .swiper-scrollbar,
.swiper-scrollbar.swiper-scrollbar-horizontal {
  position: relative !important;
  margin-top: 7%;
  background: #f0f5f5;
  padding-left: 1%;
}

/* ナビゲーションボタンのスタイル修正 */
.voice-swiper .swiper-button-next,
.voice-swiper .swiper-button-prev {
  background: none;
  border: none;
  width: 54px;
  height: 54px;
  position: static;
  margin: 0;
  padding: 0;
}

.voice-swiper .swiper-button-next::after,
.voice-swiper .swiper-button-prev::after {
  display: none; /* デフォルトの矢印を非表示 */
}

/* スマホ用スタイル */
@media screen and (max-width: 959px) {
  .swiper {
    width: 84%;
  }
  /* スクロールバー位置 */
  .swiper-horizontal > .swiper-scrollbar,
  .swiper-scrollbar.swiper-scrollbar-horizontal {
    position: relative !important;
    margin-top: 8%;
  }
  .swiper-slide.testimonial-card h3 {
    font-size: clamp(18px, calc(100vw * 20 / 390), 22px);
  }

  .swiper-slide.testimonial-card p {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
  }
}
/* 追加修正 */

/* plan
-------------------------------------------------------------- */
.plan {
  text-align: center;
  padding-bottom: 9%;
}
.plan .title-block .big-text2,
.joining-flow .title-block .big-text2 {
  padding: 8% 0 0 0;
}
.plan .title-block p,
.joining-flow .title-block p {
  padding-left: 0;
  margin-top: -2%;
  padding-bottom: 4.8%;
}
.plan-list-wrapper {
  width: 83%;
  background-color: #f7fafa;
  padding: 4% 0 3%;
  margin: 0 auto;
  max-width: 1200px;
}
.plan-list h2 {
  display: flex;
  justify-content: center;
  align-items: center;
  font-size: clamp(22px, calc(100vw * 24 / 1440), 26px);
  font-weight: 600;
  line-height: 1.4;
  letter-spacing: 1.2px;
  padding-bottom: 4%;
}
.plan-list p {
  padding: 0 1.8%;
}
.plan .price {
  font-size: clamp(28px, calc(100vw * 30 / 1440), 32px);
  letter-spacing: 1.5px;
  color: #059191;
}
.plan .yen {
  font-size: clamp(22px, calc(100vw * 24 / 1440), 26px);
  letter-spacing: 1.2px;
  color: #059191;
  font-weight: 600;
  line-height: 140%;
}

.fee {
  font-size: clamp(28px, calc(100vw * 30 / 1440), 32px);
  font-weight: 600;
  line-height: 140%;
  letter-spacing: 1.5px;
  color: #059191;
  background: linear-gradient(transparent 70%, #e8f0f0 70%);
}
.plan-block {
  width: 83%;
  margin: 0 auto;
}
.plan-block .Membership img {
  width: 100%;
  margin: 0 auto;
  padding-bottom: 0.8%;
}
.plan-block ul {
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.8%;
}
.plan-block ul li {
  width: 33%;
}
.plan-block ul li img {
  width: 100%;
}
.caution {
  width: 83%;
  font-size: clamp(12px, calc(100vw * 14 / 1440), 16px);
  margin: 0 auto;
  text-align: left;
  padding-top: 0.8%;
}
@media screen and (max-width: 959px) {
  .plan {
    padding-bottom: 13%;
  }
  .plan .title-block p,
  .joining-flow .title-block p {
    padding-left: 0;
    margin-top: -2%;
    padding-bottom: 10%;
  }
  .plan-list-wrapper {
    width: 89%;
    padding: 12% 0 11%;
  }
  .plan-list h2 {
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: clamp(18px, calc(100vw * 20 / 390), 22px);
    font-weight: 600;
    line-height: 1.2;
    letter-spacing: 1px;
    padding-bottom: 12%;
  }
  .plan-list p {
    padding: 0 1%;
  }
  .plan .price {
    font-size: clamp(24px, calc(100vw * 26 / 390), 28px);
    letter-spacing: 1.3px;
    color: #059191;
    line-height: 1.2;
    font-weight: 600;
  }
  .plan .yen {
    font-size: clamp(18px, calc(100vw * 20 / 390), 22px);
    letter-spacing: 1.2px;
    color: #059191;
    font-weight: 600;
    line-height: 120%;
    letter-spacing: 1px;
  }
  .fee {
    font-size: clamp(24px, calc(100vw * 26 / 390), 28px);
    letter-spacing: 1px;
  }
  .plan-block {
    width: 85%;
  }
  .plan-block .Membership img {
    padding-bottom: 2%;
    max-width: 400px;
  }
  .plan-block ul {
    display: flex;
    flex-direction: column;
    justify-content: center;
    margin-bottom: 0.8%;
  }
  .plan-block ul li {
    width: 100%;
    margin: 0 auto 8%;
    max-width: 400px;
  }
  .caution {
    width: 85%;
    font-size: clamp(10px, calc(100vw * 12 / 390), 14px);
    padding-top: 2%;
  }
}
/* joining-flow
-------------------------------------------------------------- */
.joining-flow {
  text-align: center;
  background-color: #e8f0f0 !important;
  padding-bottom: 9%;
}

.joining-flow .title-block .big-text2,
.faq .title-block .big-text2 {
  padding: 8% 0 0 0;
}

.joining-flow .title-block p,
.faq .title-block p {
  padding-left: 0;
  margin-top: -2%;
  padding-bottom: 2.7%;
}

.flow-description {
  margin: 0 auto;
  padding-bottom: 3%;
}

.flow-description p {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  line-height: 1.9;
  font-weight: 500;
}

.steps-container {
  width: 75%;
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}

/* PC表示用のスタイル */
.steps-list {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  position: relative;
  padding: 0 0 7%;
}

.step-item {
  width: 30%;
  text-align: center;
  position: relative;
}

.step-circle {
  width: 110px;
  height: 110px;
  border: 1px solid #059191;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 7%;
  background-color: #e8f0f0;
  position: relative;
  z-index: 2;
  transition: all 0.3s ease;
}

.step-number {
  font-size: clamp(18px, calc(100vw * 20 / 1440), 22px);
  color: #059191;
}
.step-number span {
  font-size: clamp(24px, calc(100vw * 26 / 1440), 28px);
  color: #059191;
}
.step-title {
  font-size: clamp(22px, calc(100vw * 24 / 1440), 26px);
  color: #059191;
  margin-bottom: 8%;
  font-weight: 500;
  line-height: 190%;
}

.step-image {
  width: 100%;
  border-radius: 10px;
  overflow: hidden;
  margin-bottom: 6%;
}

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

.step-description {
  text-align: left;
}

.step-description p {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  line-height: 1.9;
}

.link-text {
  color: #059191;
  text-decoration: underline;
  font-size: clamp(12px, calc(100vw * 14 / 1440), 16px);
  font-weight: 400;
  line-height: 190%;
}

.items-title {
  font-weight: 600;
  margin-top: 15px;
}

/* ステップ間の接続線 */
.step-connector {
  position: absolute;
  top: 55px; /* 円形の中心に合わせる（110pxの半分） */
  height: 1px;
  background-color: #059191;
}

/* 1番目と2番目のステップを繋ぐ線 */
.steps-list .step-connector:nth-of-type(1) {
  left: calc(15% + 55px); /* 1番目のステップの円の中心から */
  width: calc(35% - 55px); /* 2番目のステップの円の中心まで */
}

/* 2番目と3番目のステップを繋ぐ線 */
.steps-list .step-connector:nth-of-type(2) {
  left: calc(50% + 55px); /* 2番目のステップの円の中心から */
  width: calc(35% - 55px); /* 3番目のステップの円の中心まで */
}

.tarainer-message-block {
  width: 68%;
  background-color: #f7fafa;
  margin: 0 auto;
  display: flex;
  justify-content: center;
  align-items: center;
  padding: 2% 0 2% 3%;
  text-align: left;
  max-width: 1200px;
}
.message-block-wrapper {
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.tarainer-message-block .image-wrapper {
  width: 22%;
  padding-right: 5%;
}
.tarainer-message-block img {
  width: 100%;
}
.tarainer-message-block p {
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  font-weight: 500;
}

/* SPカルーセル用のスタイル */
.steps-carousel-container {
  position: relative;
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.carousel-btn {
  background: none;
  border: none;
  cursor: pointer;
  position: absolute;
  top: 10%;
  transform: translateY(-50%);
  padding: 0;
  z-index: 2;
}

.prev-btn {
  left: 48px;
}

.next-btn {
  right: 35px;
}

.steps-carousel {
  width: 78%;
  overflow: hidden;
  position: relative;
}

.carousel-wrapper {
  display: flex;
  transition: transform 0.4s ease;
  width: 100%;
}

.carousel-wrapper .step-item {
  flex: 0 0 100%;
  width: 100%;
}

.carousel-indicator {
  margin-top: 20px;
  text-align: center;
}

.indicator-dots {
  display: flex;
  justify-content: center;
  gap: 10px;
  display: none;
}

.dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background-color: #bcd5d5;
  display: inline-block;
  cursor: pointer;
}

.dot.active {
  background-color: #059191;
}

/* レスポンシブ対応 */
@media screen and (max-width: 959px) {
  .joining-flow {
    padding-bottom: 15%;
  }

  .joining-flow .title-block p {
    padding-bottom: 10%;
  }

  .flow-description {
    width: 89%;
    padding-bottom: 10%;
  }

  .flow-description p {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
  }

  .steps-container {
    width: 100%;
  }

  .steps-carousel .step-item {
    width: 100%;
    flex-shrink: 0;
    padding: 0 5px;
  }

  .step-circle {
    width: 70px;
    height: 70px;
    margin-bottom: 15px;
  }

  .step-number {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
  }

  .step-title {
    font-size: clamp(18px, calc(100vw * 20 / 390), 22px);
    margin-bottom: 15px;
  }

  .step-description p {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
  }

  /* SP用の矢印スタイル調整 */
  .carousel-btn {
    width: 40px;
    height: 40px;
  }

  .carousel-btn img {
    width: 20px;
    height: 20px;
  }
  .carousel-wrapper {
    display: flex;
    transition: transform 0.4s ease;
    width: 100%;
  }
  .steps-carousel-container {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .steps-carousel {
    width: 100%;
    overflow: hidden;
    position: relative;
  }

  .carousel-wrapper {
    display: flex;
    transition: transform 0.5s ease;
    padding: 0 10vw; /* ★左右にpaddingで余白作る（ここ重要！） */
  }

  .carousel-wrapper .step-item {
    flex: 0 0 100%; /* ★1個の幅をちょっと小さく */
    margin: 0 10px; /* ★スライド間の間隔 */
  }
  .steps-carousel-container {
    position: relative;
    width: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
  }

  .steps-carousel {
    width: 100%;
    overflow: hidden;
    position: relative;
  }

  .carousel-wrapper {
    display: flex;
    transition: transform 0.5s ease;
  }

  .carousel-wrapper .step-item {
    flex: 0 0 90%; /* ← 画像を大きくするため幅60%に */
    margin: 0 20px; /* ← スライドの間に余白 */
  }

  /* SPのトレーナーメッセージブロック */
  .tarainer-message-block.sp {
    width: 90%;
    padding: 6% 4%;
    margin: 10% auto;
  }

  .tarainer-message-block.sp .image-wrapper {
    width: 80%;
  }

  .tarainer-message-block.sp p {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
    line-height: 1.6;
  }
}
/* 修正用スタイル */
@media screen and (max-width: 959px) {
  /* Swiperのナビゲーションボタンのカスタマイズ */
  /* .steps-carousel .swiper-button-next:after,
  .steps-carousel .swiper-button-prev:after {
    display: none !important;
  } */
  .steps-carousel-container .swiper-button-next:after {
    display: none !important;
  }
  .steps-carousel-container .swiper-button-prev:after {
    display: none !important;
  }
  .steps-carousel {
    overflow: visible;
  }

  .steps-carousel .swiper-slide {
    opacity: 0.4;
    transition: opacity 0.3s;
  }

  .steps-carousel .swiper-slide-active {
    opacity: 1;
  }

  .steps-carousel-container .carousel-btn {
    position: absolute;
    top: 10%;
    z-index: 10;
    background: none;
    border: none;
    cursor: pointer;
  }

  .swiper-pagination-steps {
    position: relative;
    margin-top: 20px;
    display: flex;
    justify-content: center;
  }

  .steps-carousel-container .prev-btn {
    left: 15%;
  }

  .steps-carousel-container .next-btn {
    right: 15%;
  }

  /* スライドの中央寄せ */
  .steps-carousel.swiper .swiper-wrapper {
    box-sizing: border-box;
  }

  /* 不要な要素を非表示 */
  .indicator-dots {
    display: none;
  }
}
/* 追加 */
/* Swiperのページネーション（ドット）を非表示 */
.swiper-pagination-steps,
.swiper-pagination-bullets,
.swiper-pagination-bullet {
  display: none !important;
}
/* access
-------------------------------------------------------------- */
.access .access-wrapper {
  width: 76%;
  margin: 0 auto;
  max-width: 1200px;
}
/* 横幅を指定するための要素 */
.map-wrap {
  width: 55%;
  overflow: hidden;
}
/* Google Mapを囲う要素 */
.map {
  position: relative;
  width: 100%;
  height: 0;
  padding-top: 75%;
}

/* Google Mapのiframe */
.map iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
.access-wrapper {
  padding-top: 6%;
  display: flex;
  justify-content: space-between;
}
.access-address {
  width: 40%;
}
.map-link {
  width: 76%;
  margin: 0 auto;
  padding-bottom: 16%;
  max-width: 1200px;
}
.map-link p {
  color: var(--1, #059191);
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  font-style: normal;
  font-weight: 500;
  line-height: 190%; /* 30.4px */
}
.access-address h3 {
  font-size: clamp(22px, calc(100vw * 24 / 1440), 26px);
  color: var(--1, #059191);
  font-style: normal;
  font-weight: 500;
  line-height: 190%;
}
.access-address p {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  text-align: justify;
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  font-weight: 500;
  line-height: 220%; /* 35.2px */
}
.access-address img {
  padding-right: 1.6%;
}
.address-area {
  padding-bottom: 10%;
}
.sns-area {
  padding-top: 10%;
  border-top: 1px solid #bcd5d5;
  transition-property: opacity;
  transition-duration: 0.5s;
}
.sns-area :hover {
  opacity: 0.7;
}
.sns-area p {
  padding-bottom: 2%;
  color: var(--1, #059191);
}
.sns-area img {
  padding-right: 4%;
}
.insta-space {
  margin-left: 0.5%;
}
.insta-space img {
  padding-right: 4.5%;
}
@media screen and (max-width: 959px) {
  .access .access-wrapper {
    width: 84%;
    padding-bottom: 18%;
  }
  /* 横幅を指定するための要素 */
  .map-wrap {
    width: 100%;
    height: 25vh;
  }
  .access-wrapper {
    padding-top: 12%;
    flex-direction: column;
  }
  .access-address {
    margin-left: 0;
    width: 100%;
  }
  .map-link {
    width: 100%;
    padding: 1% 0 13%;
  }
  .map-link p {
    color: var(--1, #059191);
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
  }
  .access-address p {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
  }
  .access-address img {
    padding-right: 2%;
  }
  .address-area {
    padding-bottom: 7%;
  }
  .sns-area {
    padding-top: 8%;
  }
  .sns-area p {
    padding-bottom: 4%;
  }
  .sns-area img {
    padding-right: 4%;
  }
  .insta-space img {
    padding-right: 5.5%;
  }
}
/* FAQ
-------------------------------------------------------------- */
.faq {
  text-align: center;
  padding-bottom: 11%;
}
.faq .title-block p {
  padding: 0;
  margin-bottom: 3.6%;
}
.faq .title-block .big-text2 {
  padding: 0;
}
.faq-list {
  width: 69%;
  margin: 0 auto;
  background-color: #f7fafa;
  display: flex;
  justify-content: center;
  align-items: center;
  max-width: 1200px;
}
.faq-list ul {
  width: 75%;
  padding: 6.6% 0 11%;
  text-align: left;
}

.faq-list ul li {
  display: flex;
  justify-content: flex-start;
  align-items: start;
  padding: 3.4% 0;
  border-bottom: 1px solid #bcd5d5;
}
.faq-list ul li:last-child {
  border: none;
}
.faq-list dl dt {
  color: var(--1, #059191);
  font-size: clamp(16px, calc(100vw * 18 / 390), 20px);
  font-weight: 500;
  line-height: 160%; /* 28.8px */
  padding-bottom: 2%;
}
.faq-list dl dd {
  font-size: clamp(14px, calc(100vw * 16 / 390), 18px);
  font-style: normal;
  font-weight: 500;
  line-height: 190%; /* 30.4px */
}
.faq-list ul li img {
  width: 30px;
  margin-right: 3%;
}
.dd-small {
  font-size: clamp(12px, calc(100vw * 14 / 390), 14px);
}
@media screen and (max-width: 959px) {
  .faq {
    padding-bottom: 24%;
  }
  .faq-list {
    width: 84%;
    display: flex;
    justify-content: center;
    align-items: center;
    margin-top: 11%;
  }
  .faq-list ul {
    width: 84%;
    padding: 2% 0 11%;
  }
  .faq-list ul li {
    padding: 11% 0 10% 0;
    border-bottom: 1px solid #bcd5d5;
  }
  .faq-list dl dt {
    padding-bottom: 3%;
    display: flex;
    justify-content: flex-start;
    align-items: start;
  }
  .faq-list dl dd {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
  }
  .faq-list ul li img {
    width: 30px;
  }
  .dd-small {
    font-size: clamp(10px, calc(100vw * 12 / 390), 14px);
  }
}
/* info
-------------------------------------------------------------- */
.info {
  text-align: center;
  padding-bottom: 12%;
}
.info .title-block p {
  padding: 0;
}
.info .title-block .big-text2 {
  padding: 0;
}
.info .title-block {
  padding-bottom: 4.8%;
}
.info dl {
  width: 31%;
  margin: 0 auto;
  text-align: left;
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  font-style: normal;
  font-weight: 500;
  line-height: 190%; /* 30.4px */
  max-width: 1200px;
}
.info dl div dt {
  margin: 0 0 0 2%;
  width: 30%;
}
@media screen and (max-width: 959px) {
  .info {
    padding-bottom: 26%;
  }
  .info .title-block {
    padding-bottom: 15%;
  }
  .info dl {
    width: 84%;
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
    max-width: 500px;
  }
  .info dl div dt {
    margin: 0 0 0 3%;
  }
}

.info dl div {
  display: flex;
  justify-content: flex-start;
  padding: 4% 0;
  border-bottom: 1px solid #bcd5d5;
}

.info dl div dd {
  width: 70%;
}

/* フッター
-------------------------------------------------------------- */
.footer {
  background-color: #059191;
  color: #f0f5f5;
  padding: 60px 0 40px;
  position: relative;
  overflow: hidden;
}

.footer-bg {
  position: absolute;
  bottom: 0;
  left: 0;
}
.footer-inner {
  width: 83%;
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  position: relative;
  z-index: 2;
  margin-bottom: 26vh;
}

/* 左側 */
.footer-left {
  width: 40%;
  position: relative;
}

.footer-logo {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-bottom: 4%;
}

.footer-logo img {
  width: 212px;
  padding-right: 4%;
}

.footer-logo .catch {
  font-size: 14px;
  line-height: 1.5;
  font-weight: 400;
  padding-left: 4%;
  border-left: 1px solid #bcd5d5;
}

.footer-sns {
  display: flex;
  margin-bottom: 40px;
}
.footer-sns :hover {
  opacity: 0.7;
  transition: opacity 0.3s ease;
}
.footer-sns-link {
  display: flex;
  align-items: center;
  color: #f0f5f5;
  margin-right: 5%;
  margin-left: 2%;
}

.footer-sns-link img {
  width: 20px;
  margin-right: 12px;
}

.footer-sns-link span {
  font-size: clamp(14px, calc(100vw * 14 / 1440), 16px);
}

.copyright {
  font-size: clamp(12px, calc(100vw * 12 / 1440), 14px);
  position: absolute;
  bottom: 0;
  left: 0;
}

/* 右側 */
.footer-right {
  width: 60%;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.footer-nav {
  display: flex;
  justify-content: flex-end;
}

.footer-nav-column {
  display: flex;
  flex-direction: column;
  margin-left: 7%;
}

.footer-nav-column a {
  color: #f0f5f5;
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  font-weight: 500;
  font-weight: 500;
  line-height: 190%; /* 30.4px */
  margin-bottom: 7%;
}

.footer-cta {
  display: flex;
  justify-content: flex-end;
  margin-top: 4%;
  margin-right: 7%;
}

.footer-line-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: #f0f5f5;
  border-radius: 50px;
  padding: 10px 30px;
  font-size: clamp(14px, calc(100vw * 16 / 1440), 18px);
  font-weight: 600;
  border: 1px solid;
}
.footer-line-btn:hover {
  background-color: #f0f5f5;
  color: #059191;
  border-color: #059191;
  transition: all 0.3s ease;
}

.footer-line-btn:hover img {
  content: url("../assets/images/footer-line-hv.svg");
}

.footer-line-btn img {
  width: 25px;
}

/* リンクホバー効果 */
.footer a:hover {
  opacity: 1;
  transition: opacity 0.3s ease;
}
/* フッター スマートフォン対応
-------------------------------------------------------------- */
@media screen and (max-width: 959px) {
  .footer {
    padding: 27% 0 5%;
  }

  .footer-inner {
    width: 89%;
    flex-direction: column;
    margin-bottom: 0;
  }

  /* 左側 */
  .footer-left {
    width: 100%;
  }

  .footer-logo {
    flex-direction: column;
    align-items: flex-start;
    margin-bottom: 0;
  }

  .footer-logo img {
    width: 180px;
    margin-bottom: 4.5%;
  }

  .footer-logo .catch {
    font-weight: 600;
    line-height: 150%; /* 18px */
    padding-left: 0;
    border: none;
    margin-bottom: 15%;
    font-size: 12px;
  }

  /* ナビゲーション */
  .footer-right {
    width: 100%;
  }

  .footer-nav {
    margin-bottom: 8%;
    justify-content: flex-start;
  }

  .footer-nav-column {
    flex-direction: column;
    margin: 0 11% 0 0;
  }

  .footer-nav-column a {
    font-size: clamp(12px, calc(100vw * 14 / 390), 16px);
    padding: 0;
    margin-bottom: 15%;
  }

  /* SNSリンク */
  .footer-sns {
    flex-direction: row;
    gap: 20px;
    margin-bottom: 40px;
  }

  .footer-sns-link {
    width: auto;
    display: flex;
    align-items: center;
  }

  /* CTAボタン */
  .footer-cta {
    justify-content: flex-start;
    margin-bottom: 30px;
    width: 70%;
  }

  .footer-line-btn {
    width: 100%;
    padding: 9px 9px;
    max-width: 300px;
    margin-bottom: 24%;
  }

  .copyright {
    text-align: center;
    margin-top: 30px;
  }
}

/* 右から出てくるボタン */
.side-button {
  position: fixed;
  top: 30%;
  right: -320px; /* 最初は画面外に */
  transform: translateY(-50%);
  width: 60px;
  height: 320px;
  transition: right 0.5s ease;
  z-index: 9999;
  transition-property: opacity;
  transition-duration: 0.5s;
}
.side-button :hover {
  opacity: 0.7;
}
.side-button.show {
  right: 0; /* 出現すると右端にピタッ */
}

.side-button img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* スマホでは非表示 */
@media screen and (max-width: 959px) {
  .side-button {
    display: none;
  }
}
.link-button .active a img {
  display: none;
}
/* SPではホバー効果を無効化 */
@media screen and (max-width: 959px) {
  /* メッセージセクションのリンクボタン */
  .message .link-button a:hover img {
    content: none !important; /* ホバー時の画像変更を無効化 */
  }

  /* トレーナーセクションのリンクボタン */
  .trainer .link-button a:hover img {
    content: none !important; /* ホバー時の画像変更を無効化 */
  }

  /* アコーディオン内のリンクボタン */
  .trainer .accordion-content .link-button a:hover img {
    content: none !important; /* ホバー時の画像変更を無効化 */
  }

  /* すべてのリンクボタンのホバー効果を明示的に無効化 */
  .link-button a:hover {
    opacity: 1 !important;
  }

  /* Swiperスライドのホバーエフェクトも無効化 */
  .voice-swiper .swiper-slide:hover {
    transform: none !important;
  }
}
/* 電話番号の自動リンク・色付けを防止 */
a[href^="tel:"],
a[href^="tel:"]:link,
a[href^="tel:"]:visited,
a[href^="tel:"]:hover,
a[href^="tel:"]:active {
  color: inherit !important;
  text-decoration: none !important;
  pointer-events: none !important;
}

/* スマホ表示時のaタグスタイル上書き（設定済みのフォントカラーは維持） */
@media screen and (max-width: 959px) {
  /* リンク要素のブラウザ自動スタイルを防止 */
  a {
    -webkit-tap-highlight-color: rgba(0, 0, 0, 0) !important;
    text-decoration: none !important; /* 下線を消す */
  }

  /* 電話番号リンクの自動スタイル防止 */
  a[href^="tel:"] {
    color: inherit !important;
    -webkit-text-fill-color: inherit !important;
    pointer-events: auto; /* タップ可能にしておく */
  }

  /* アドレス部分の電話番号 */
  .access-address p:nth-child(2) {
    color: var(--text-color) !important; /* 既存の変数を使用 */
    -webkit-text-fill-color: var(--text-color) !important;
  }
}
