/* ========================================
   追加セクションのスタイル
   元のbase.cssの構造に完全準拠
======================================== */

/* ========================================
   全体設定：横スクロール防止
======================================== */
html, body {
  overflow-x: hidden !important;
  max-width: 100vw !important;
}

/* ========================================
   main.home section.cont4 の調整
======================================== */
main.home section.cont4 {
  margin-bottom: 0 !important;
}

main.home section.cont4 {
  background-color: rgba(0, 0, 0, 0.8) !important;
  background-image: url("../img/home/mv1.webp") !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-blend-mode: darken !important;
}

main.home section.cont4:after {
  display: none !important;
}

main.home section.cont5 {
  border-top: 100px solid #FFDB04 !important;
  margin-top: 0 !important;
}

main.home section.cont5 div.wrap {
  margin-left: 0 !important;
  margin-right: auto !important;
  padding-left: 120px !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.home section.cont5 div.wrap {
    padding-left: 60px !important;
  }
}

@media (max-width: 640px) {
  main.home section.cont5 div.wrap {
    padding-left: 40px !important;
  }
}

main.home section.cont6 {
  background-color: rgba(0, 0, 0, 0.8) !important;
  background-image: url("../img/home/mv3.webp") !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-blend-mode: darken !important;
}

/* ========================================
   ホームセクション cont0 背景調整
======================================== */
main.home section.cont0 {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
  z-index: 1 !important;
}

main.home section.cont1 {
  position: relative !important;
  z-index: 2 !important;
  background-color: transparent !important;
  background: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

main.home section.cont1 h1 {
  margin: 0 !important;
  padding-right: 64px !important;
  padding-left: 64px !important;
}

main.home section.cont1 article {
  margin: 0 !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.home section.cont1 h1 {
    padding-right: 16px !important;
    padding-left: 16px !important;
  }
}

@media (max-width: 640px) {
  main.home section.cont1 h1 {
    padding-right: 16px !important;
    padding-left: 16px !important;
  }
}

main.home section.cont2 {
  margin-top: -100px !important;
  padding-top: 180px !important;
  position: relative !important;
  background-color: rgba(0, 0, 0, 0.8) !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.home section.cont2 {
    margin-top: -80px !important;
    padding-top: 120px !important;
  }
}

@media (max-width: 640px) {
  main.home section.cont2 {
    margin-top: -80px !important;
    padding-top: 120px !important;
  }
}

main.home section.cont0 article.slider {
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  width: 100% !important;
  height: 100% !important;
}

main.home section.cont0 article.slider div {
  height: 100% !important;
}

/* 料金セクションの固定背景を完全に無効化（ホームページ内） */
main.home ~ main.price section.cont0 {
  display: none !important;
}

/* 料金タイトルセクションに背景画像を設定（ホームページ内） */
main.home ~ main.price section.cont1 {
  background-image: url("../img/price/sv.webp") !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-color: #000 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.home ~ main.price section.cont1 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

@media (max-width: 640px) {
  main.home ~ main.price section.cont1 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

/* 料金セクションのcont2は完全な黒背景 */
main.home ~ main.price section.cont2 {
  background-color: #000 !important;
}

/* PRICEセクションの右下の黄色の線を下に移動 */
main.price section.cont0.sv:after {
  bottom: -10px !important;
}

main.home ~ main.price section.cont0.sv:after {
  bottom: -10px !important;
}

@media (max-width: 640px) {
  main.home ~ main.price section.cont1 {
    background-image: url("../img/price/sv_sp.webp") !important;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.home section.cont0 {
    min-height: calc(100vh - 48px) !important;
  }
}

@media (max-width: 640px) {
  main.home section.cont0 {
    min-height: calc(100vh - 48px) !important;
  }
}

main.home section.cont0 article.slider {
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

main.home section.cont0 article.slider div {
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
  line-height: 0 !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.home section.cont0 {
    top: 0 !important;
    height: 100vh !important;
  }
}

@media (max-width: 640px) {
  main.home section.cont0 {
    top: 0 !important;
    height: 100vh !important;
  }
}

/* ========================================
   今日からあなたも始めよう バナーセクション (lets-banner)
======================================== */
section.lets-banner {
  width: 100%;
  display: block;
  padding: 0;
  margin: 0;
}

section.lets-banner a {
  display: block;
  width: 100%;
  font-size: 0;
  transition: none;
}

section.lets-banner a:hover {
  opacity: 1;
}

section.lets-banner a img {
  width: 100%;
  height: auto;
  display: block;
}

/* ========================================
   VOICEセクション (お客様の声)
======================================== */
section.voice.cont7 {
  background-color: #FFF !important;
  padding-top: 80px;
  padding-bottom: 80px;
}

/* VISIONセクション (企業ビジョン) - voiceクラスがないcont7 */
main.home section.cont7:not(.voice) {
  background-color: #000 !important;
}

@media (max-width: 640px) {
  section.voice.cont7 {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}

section.voice.cont7 div.wrap {
  width: 1232px;
  padding: 0 16px;
  margin: 0 auto;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.voice.cont7 div.wrap {
    width: 832px;
  }
}

@media (max-width: 640px) {
  section.voice.cont7 div.wrap {
    width: 100%;
    max-width: 432px;
  }
}

section.voice.cont7 h2 {
  text-align: center !important;
  margin-bottom: 64px;
  width: 100%;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

@media (max-width: 640px) {
  section.voice.cont7 h2 {
    margin-bottom: 40px;
  }
}

section.voice.cont7 h2 span {
  font-size: 75px;
  letter-spacing: 0.025em;
  font-family: "Oswald", sans-serif;
  display: block;
  color: #000 !important;
  text-align: center;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.voice.cont7 h2 span {
    font-size: 40px;
  }
}

@media (max-width: 640px) {
  section.voice.cont7 h2 span {
    font-size: 40px;
  }
}

section.voice.cont7 h2 em {
  font-size: 40px;
  color: #000 !important;
  font-style: normal;
  display: block;
  text-align: center;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.voice.cont7 h2 em {
    font-size: 24px;
  }
}

@media (max-width: 640px) {
  section.voice.cont7 h2 em {
    font-size: 24px;
  }
}

section.voice.cont7 .voice-container {
  display: flex;
  flex-direction: column;
  gap: 80px;
}

@media (max-width: 640px) {
  section.voice.cont7 .voice-container {
    gap: 40px;
  }
}

section.voice.cont7 .voice-item {
  display: flex !important;
  align-items: center;
  gap: 40px;
  flex-direction: row;
}

@media (max-width: 640px) {
  section.voice.cont7 .voice-item {
    flex-direction: column !important;
    gap: 24px;
  }
}

section.voice.cont7 .voice-item.voice-item-reverse {
  flex-direction: row-reverse !important;
}

@media (max-width: 640px) {
  section.voice.cont7 .voice-item.voice-item-reverse {
    flex-direction: column !important;
  }
}

section.voice.cont7 .voice-content {
  flex: 1;
  background-color: #FFDB04;
  border-radius: 16px;
  padding: 32px 40px;
}

@media (max-width: 640px) {
  section.voice.cont7 .voice-content {
    padding: 24px;
    border-radius: 12px;
  }
}

section.voice.cont7 .voice-content h3 {
  font-size: 25px !important;
  font-weight: 700;
  margin-bottom: 16px;
  color: #000 !important;
  text-align: left !important;
  margin-left: 0 !important;
  padding-left: 0 !important;
}

@media (max-width: 640px) {
  section.voice.cont7 .voice-content h3 {
    font-size: 20px !important;
    margin-bottom: 12px;
    color: #000 !important;
    text-align: left !important;
  }
}

section.voice.cont7 .voice-content p {
  font-size: 16px;
  line-height: 1.8;
  color: #000;
}

@media (max-width: 640px) {
  section.voice.cont7 .voice-content p {
    font-size: 14px;
  }
}

section.voice.cont7 .voice-image {
  flex-shrink: 0;
  width: 200px;
}

@media (max-width: 640px) {
  section.voice.cont7 .voice-image {
    width: 150px;
  }
}

section.voice.cont7 .voice-image img {
  width: 100%;
  height: auto;
  display: block;
}

/* ========================================
   PRICEタイトルセクション (main.price section.cont1)
======================================== */
main.price section.cont1 {
  width: 100%;
  height: 500px !important;
  padding-top: 160px !important;
  position: relative;
  background: no-repeat center/cover;
  background-image: url("../img/price/sv.webp");
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont1 {
    height: 350px !important;
    padding-top: 80px !important;
  }
}

@media (max-width: 640px) {
  main.price section.cont1 {
    height: 300px !important;
    padding-top: 60px !important;
    background-image: url("../img/price/sv_sp.webp");
  }
}

/* 左右の線を消す */
main.price section.cont1:before,
main.price section.cont1:after {
  display: none !important;
}

main.price section.cont0:before {
  display: none !important;
}

main.price section.cont0:after {
  display: block !important;
  bottom: -10px !important;
}

main.price section.cont1 div.wrap {
  text-align: left !important;
  margin-left: 0 !important;
  padding-left: 40px !important;
}

@media (max-width: 640px) {
  main.price section.cont1 div.wrap {
    padding-left: 20px !important;
  }
}

main.price section.cont1 h1 {
  text-align: left !important;
  margin-left: 0 !important;
}

main.price section.cont1 h1 em,
main.price section.cont1 h1 strong {
  text-align: left !important;
  display: block;
}

/* ========================================
   cont8セクション (店舗検索エリア)
======================================== */
main.home section.cont8 {
  background-color: #000 !important;
  width: 100%;
  margin: 0;
  padding: 0 !important;
}

main.home section.cont8 div.wrap {
  margin: 0 !important;
  padding: 0 !important;
  width: 100% !important;
  max-width: none !important;
}

main.home section.cont8 div.wrap div.wrap2 {
  width: 100% !important;
  max-width: none !important;
  padding-top: 80px !important;
  padding-bottom: 80px !important;
  padding-left: 100px !important;
  padding-right: 100px !important;
  margin: 0 !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.home section.cont8 div.wrap div.wrap2 {
    padding-left: 60px !important;
    padding-right: 60px !important;
  }
}

@media (max-width: 640px) {
  main.home section.cont8 div.wrap div.wrap2 {
    padding-top: 40px !important;
    padding-bottom: 40px !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
  }
}

/* ========================================
   MEMBERSHIPページ全体 (main.membership)
======================================== */
main.membership {
  margin: 0 !important;
  padding: 0 !important;
}

/* ========================================
   MEMBERSHIPタイトルセクション (main.membership section.cont1)
======================================== */
main.membership section.cont1 {
  background-color: #FFDB04 !important;
  background-image: url("../img/membership/sv.webp") !important;
  background-position: right center !important;
  background-repeat: no-repeat !important;
  background-size: cover !important;
  width: 100%;
  padding: 60px 0 !important;
  margin: 0 !important;
  position: relative;
  min-height: 240px;
  display: block !important;
  box-sizing: border-box !important;
}

main.membership section.cont1:before {
  display: none !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont1 {
    padding: 50px 0 !important;
    min-height: 200px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont1 {
    background-image: url("../img/membership/sv_sp.webp") !important;
    padding: 40px 0 !important;
    min-height: 180px;
  }
}

main.membership section.cont1 div.wrap {
  text-align: left !important;
  margin-left: 0 !important;
  padding-left: 80px !important;
  padding-top: 100px !important;
  position: relative;
  z-index: 2;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont1 div.wrap {
    padding-left: 50px !important;
    padding-top: 70px !important;
  }
}

@media (max-width: 640px) {
  main.membership section.cont1 div.wrap {
    padding-left: 32px !important;
    padding-top: 50px !important;
  }
}

main.membership section.cont1 h1 {
  text-align: left !important;
}

main.membership section.cont1 h1 span {
  color: #000 !important;
  text-align: left !important;
  display: block;
  background: none !important;
  background-color: transparent !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
  font-size: 80px !important;
  font-weight: 700 !important;
  letter-spacing: 0.05em !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont1 h1 span {
    font-size: 64px !important;
  }
}

@media (max-width: 640px) {
  main.membership section.cont1 h1 span {
    font-size: 56px !important;
  }
}

main.membership section.cont1 h1 em {
  color: #000 !important;
  text-align: left !important;
  display: block;
  -webkit-text-stroke: 0 !important;
  text-stroke: 0 !important;
  background: none !important;
  background-color: transparent !important;
  font-size: 24px !important;
  font-weight: 400 !important;
  letter-spacing: 0.1em !important;
  margin-top: 8px !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont1 h1 em {
    font-size: 20px !important;
  }
}

@media (max-width: 640px) {
  main.membership section.cont1 h1 em {
    font-size: 18px !important;
  }
}

main.membership section.cont1 h1 em:last-of-type {
  color: #000 !important;
  -webkit-text-stroke: 0 !important;
  text-stroke: 0 !important;
}

/* ========================================
   施設紹介セクション (cont13)
======================================== */
main.home section.cont13 div.wrap {
  width: 1400px !important;
  max-width: 90% !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.home section.cont13 div.wrap {
    width: 90% !important;
  }
}

@media (max-width: 640px) {
  main.home section.cont13 div.wrap {
    width: 100% !important;
    max-width: 100% !important;
  }
}

main.home section.cont13 iframe {
  width: 100% !important;
  max-width: 100% !important;
}

/* ========================================
   wrap2バナーセクション (priceの前)
======================================== */
section.banner-section {
  background-color: #FFDB04;
  padding-top: 80px;
  padding-bottom: 80px;
  margin-top: 0;
  clear: both;
}

@media (max-width: 640px) {
  section.banner-section {
    padding-top: 40px;
    padding-bottom: 40px;
  }
}

section.banner-section div.wrap2 {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 40px 40px;
  width: 100%;
  max-width: 1400px;
  padding-right: 40px;
  padding-left: 40px;
  margin-right: auto;
  margin-left: auto;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.banner-section div.wrap2 {
    max-width: 100%;
    padding-right: 32px;
    padding-left: 32px;
    gap: 24px 24px;
  }
}

@media (max-width: 640px) {
  section.banner-section div.wrap2 {
    max-width: 100%;
    padding-right: 16px;
    padding-left: 16px;
    gap: 24px 24px;
  }
}

section.banner-section div.wrap2 a {
  width: calc((100% - 40px) / 2);
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.banner-section div.wrap2 a {
    width: calc((100% - 24px) / 2);
  }
}

@media (max-width: 640px) {
  section.banner-section div.wrap2 a {
    width: 100%;
  }
}

section.banner-section div.wrap2 a img {
  width: 100%;
  height: auto;
  display: block;
}

/* ========================================
   アクセスセクション (HOME)
======================================== */
section.access {
  padding-top: 80px;
  padding-bottom: 80px;
  background-color: rgba(0, 0, 0, 0.8) !important;
  background-image: url("../img/home/mv5.webp") !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
  background-blend-mode: darken !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.access {
    padding-top: 40px;
  }
}

@media (max-width: 640px) {
  section.access {
    padding-top: 40px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.access {
    padding-bottom: 40px;
  }
}

@media (max-width: 640px) {
  section.access {
    padding-bottom: 40px;
  }
}

section.access div.wrap {
  max-width: 1400px !important;
  width: 90% !important;
}

section.access div.wrap h2 {
  margin-bottom: 64px;
  text-align: center;
}

section.access div.wrap h2 span {
  display: block;
  margin-bottom: 16px;
  color: #FFF;
  font-size: 48px;
  font-family: "Oswald", sans-serif;
  font-weight: 700;
  letter-spacing: 0.1em;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.access div.wrap h2 span {
    font-size: 40px;
  }
}

@media (max-width: 640px) {
  section.access div.wrap h2 span {
    font-size: 32px;
  }
}

section.access div.wrap h2 em {
  display: block;
  color: #FFF;
  font-size: 16px;
  font-style: normal;
  letter-spacing: 0.2em;
}

@media (max-width: 640px) {
  section.access div.wrap h2 em {
    font-size: 13px;
  }
}

section.access div.wrap div.access-content {
  display: flex;
  align-items: stretch;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 40px 40px;
}

@media (max-width: 640px) {
  section.access div.wrap div.access-content {
    gap: 32px 32px;
  }
}

section.access div.wrap div.access-map {
  width: calc(45% - 20px);
  min-height: 500px;
  background-color: #1a1a1a;
}

@media (max-width: 640px) {
  section.access div.wrap div.access-map {
    width: 100%;
    min-height: 300px;
  }
}

section.access div.wrap div.access-map iframe {
  width: 100%;
  height: 100%;
  min-height: 500px;
  display: block;
}

@media (max-width: 640px) {
  section.access div.wrap div.access-map iframe {
    min-height: 300px;
  }
}

section.access div.wrap div.access-info {
  width: calc(55% - 20px);
  min-height: 500px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

@media (max-width: 640px) {
  section.access div.wrap div.access-info {
    width: 100%;
    height: auto;
  }
}

section.access div.wrap div.access-info h3 {
  margin-bottom: 40px;
  padding-bottom: 20px;
  border-bottom: 1px solid #FFDB04;
  color: #FFDB04;
  font-size: 28px;
  font-weight: 700;
}

@media (max-width: 640px) {
  section.access div.wrap div.access-info h3 {
    font-size: 22px;
    margin-bottom: 32px;
  }
}

section.access div.wrap div.access-info dl.info-item {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 20px 20px;
  margin-bottom: 30px;
}

@media (max-width: 640px) {
  section.access div.wrap div.access-info dl.info-item {
    flex-direction: column;
    gap: 10px 10px;
  }
}

section.access div.wrap div.access-info dl.info-item dt {
  width: 110px;
  color: #FFF;
  font-size: 17px;
  font-weight: 700;
}

@media (max-width: 640px) {
  section.access div.wrap div.access-info dl.info-item dt {
    width: 100%;
    font-size: 15px;
  }
}

section.access div.wrap div.access-info dl.info-item dd {
  width: calc(100% - 130px);
  color: #FFF;
  font-size: 17px;
  line-height: 1.8;
}

@media (max-width: 640px) {
  section.access div.wrap div.access-info dl.info-item dd {
    width: 100%;
    font-size: 15px;
  }
}

section.access div.wrap div.access-info a.access-btn {
  display: inline-block;
  padding: 18px 50px;
  background-color: #FFF;
  color: #000;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  transition: opacity 0.3s;
  max-width: 450px;
  text-align: center;
}

@media (max-width: 640px) {
  section.access div.wrap div.access-info a.access-btn {
    width: 100%;
    text-align: center;
    font-size: 14px;
  }
}

@media (min-width: 1201px) {
  section.access div.wrap div.access-info a.access-btn:hover {
    opacity: 0.8;
  }
}


main.membership section.cont2 {
  padding-top: 80px;
  padding-bottom: 60px;
  margin: 0 !important;
  background-color: #000 !important;
  position: relative;
  overflow: hidden;
  display: block !important;
  box-sizing: border-box !important;
}

main.membership section.cont2:before {
  display: none !important;
}

@media (max-width: 640px) {
  main.membership section.cont2 {
    padding-top: 60px;
    padding-bottom: 40px;
  }
}

main.membership section.cont2 div.wrap {
  position: relative;
  z-index: 2;
}

main.membership section.cont2 div.wrap h2 {
  margin-bottom: 30px;
  color: #FFD700;
  font-size: 64px;
  font-family: "Oswald", sans-serif;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-align: center;
}

@media (max-width: 640px) {
  main.membership section.cont2 div.wrap h2 {
    font-size: 42px;
  }
}

main.membership section.cont2 div.wrap p.txt {
  margin-bottom: 50px;
  color: #FFF;
  font-size: 16px;
  line-height: 1.9;
  text-align: center;
}

@media (max-width: 640px) {
  main.membership section.cont2 div.wrap p.txt {
    font-size: 14px;
    line-height: 1.6;
  }
}

main.membership section.cont2 div.wrap h3 {
  margin-bottom: 40px;
  color: #FFD700;
  font-size: 24px;
  font-weight: 700;
  text-align: center;
}

@media (max-width: 640px) {
  main.membership section.cont2 div.wrap h3 {
    font-size: 20px;
  }
}

main.membership section.cont2 div.wrap figure {
  margin: 0 auto 50px;
}

main.membership section.cont2 div.wrap figure img {
  width: 100%;
  height: auto;
  display: block;
}

main.membership section.cont2 div.wrap h4 {
  margin: 0;
  padding: 60px 0 0;
  border-top: 1px solid rgba(255, 215, 0, 0.3);
  color: #FFF;
  font-size: 28px;
  font-weight: 700;
  text-align: center;
}

@media (max-width: 640px) {
  main.membership section.cont2 div.wrap h4 {
    font-size: 22px;
    padding: 40px 0 0;
  }
}

/* 動画セクション (cont3) - base.cssの構造を完全再現 */
main.membership section.cont3 {
  background-color: #000;
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont3 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

@media (max-width: 640px) {
  main.membership section.cont3 {
    padding-top: 0 !important;
    padding-bottom: 0 !important;
  }
}

main.membership section.cont3 div.wrap {
  width: 1400px;
  max-width: 90%;
  padding-right: 16px;
  padding-left: 16px;
  margin-right: auto;
  margin-left: auto;
  margin-top: 0 !important;
  margin-bottom: 0 !important;
  position: relative;
  z-index: 1;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont3 div.wrap {
    width: 90%;
  }
}

@media (max-width: 640px) {
  main.membership section.cont3 div.wrap {
    width: 100%;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont3 div.wrap {
    padding-right: 16px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont3 div.wrap {
    padding-right: 16px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont3 div.wrap {
    padding-left: 16px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont3 div.wrap {
    padding-left: 16px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont3 div.wrap {
    margin-right: auto;
  }
}

@media (max-width: 640px) {
  main.membership section.cont3 div.wrap {
    margin-right: auto;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont3 div.wrap {
    margin-left: auto;
  }
}

@media (max-width: 640px) {
  main.membership section.cont3 div.wrap {
    margin-left: auto;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont3 div.wrap {
    padding-right: 32px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont3 div.wrap {
    padding-right: 32px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont3 div.wrap {
    padding-left: 32px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont3 div.wrap {
    padding-left: 32px;
  }
}

main.membership section.cont3 div.wrap iframe {
  width: 100%;
  height: 540px;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont3 div.wrap iframe {
    width: 100%;
    height: 200px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont3 div.wrap iframe {
    width: 100%;
    height: 200px;
  }
}

/* FLOWセクション (cont4) - base.cssの構造を完全再現 */
main.membership section.cont4 {
  padding-right: 0 !important;
  padding-left: 0 !important;
  padding-top: 0 !important;
  padding-bottom: 30px !important;
  margin-top: 0 !important;
  background-color: #000;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 {
    padding-right: 0 !important;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 {
    padding-right: 0 !important;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 {
    padding-left: 0 !important;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 {
    padding-left: 0 !important;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 {
    padding-top: 0 !important;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 {
    padding-top: 0 !important;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 {
    padding-bottom: 20px !important;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 {
    padding-bottom: 20px !important;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 {
    margin-top: 0 !important;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 {
    margin-top: 0 !important;
  }
}

main.membership section.cont4 article {
  padding-top: 40px !important;
  padding-bottom: 40px !important;
  position: relative;
  background-color: #FFDB04;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article {
    padding-top: 30px !important;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article {
    padding-top: 30px !important;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article {
    padding-bottom: 30px !important;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article {
    padding-bottom: 30px !important;
  }
}

main.membership section.cont4 article:before {
  position: absolute;
  top: 0;
  position: absolute;
  left: 0;
  width: 548px;
  height: 316px;
  background: no-repeat center/cover;
  background-image: url("../img/common/diagonal.svg");
  content: '';
  transform: rotate(180deg);
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article:before {
    top: 0;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article:before {
    top: 0;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article:before {
    left: 0;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article:before {
    left: 0;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article:before {
    width: 117px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article:before {
    width: 117px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article:before {
    height: 67px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article:before {
    height: 67px;
  }
}

main.membership section.cont4 article:after {
  position: absolute;
  right: 0;
  position: absolute;
  bottom: 0;
  width: 548px;
  height: 316px;
  background: no-repeat center/cover;
  background-image: url("../img/common/diagonal.svg");
  content: '';
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article:after {
    right: 0;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article:after {
    right: 0;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article:after {
    bottom: 0;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article:after {
    bottom: 0;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article:after {
    width: 117px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article:after {
    width: 117px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article:after {
    height: 67px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article:after {
    height: 67px;
  }
}

main.membership section.cont4 article div.wrap {
  width: 1400px;
  max-width: 90%;
  padding-right: 16px;
  padding-left: 16px;
  margin-right: auto;
  margin-left: auto;
  position: relative;
  z-index: 1;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap {
    width: 90%;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap {
    width: 100%;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap {
    padding-right: 16px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap {
    padding-right: 16px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap {
    padding-left: 16px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap {
    padding-left: 16px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap {
    margin-right: auto;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap {
    margin-right: auto;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap {
    margin-left: auto;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap {
    margin-left: auto;
  }
}

main.membership section.cont4 article div.wrap h2 {
  font-size: 75px;
  letter-spacing: 0.025em;
  font-family: "Oswald", sans-serif;
  text-align: center;
  color: #000;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap h2 {
    font-size: 40px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap h2 {
    font-size: 40px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap h2 {
    letter-spacing: 0.025em;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap h2 {
    letter-spacing: 0.025em;
  }
}

main.membership section.cont4 article div.wrap div {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 70px;
  padding-right: 40px;
  padding-left: 40px;
  padding-top: 24px;
  padding-bottom: 24px;
  margin-top: 16px;
  border-radius: 16px;
  background-color: #FFDB04;
  box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2);
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap div {
    padding-right: 12px;
    gap: 40px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap div {
    padding-right: 12px;
    gap: 24px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap div {
    padding-left: 12px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap div {
    padding-left: 12px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap div {
    padding-top: 20px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap div {
    padding-top: 20px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap div {
    padding-bottom: 20px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap div {
    padding-bottom: 20px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap div {
    margin-top: 12px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap div {
    margin-top: 12px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap div {
    border-radius: 8px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap div {
    border-radius: 8px;
  }
}

main.membership section.cont4 article div.wrap div h3 {
  font-size: 60px;
  letter-spacing: 0.025em;
  font-family: "Oswald", sans-serif;
  color: transparent;
  font-weight: 700;
  -webkit-text-stroke: #000 2px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap div h3 {
    font-size: 30px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap div h3 {
    font-size: 30px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap div h3 {
    letter-spacing: 0.025em;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap div h3 {
    letter-spacing: 0.025em;
  }
}

main.membership section.cont4 article div.wrap div img {
  width: 160px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap div img {
    width: 80px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap div img {
    width: 80px;
  }
}

main.membership section.cont4 article div.wrap div p {
  width: 560px;
  color: #000;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap div p {
    width: 100%;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap div p {
    width: 100%;
  }
}

main.membership section.cont4 article div.wrap div p em {
  font-size: 30px;
  margin-bottom: 16px;
  display: block;
  color: #000;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap div p em {
    font-size: 18px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap div p em {
    font-size: 18px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont4 article div.wrap div p em {
    margin-bottom: 8px;
  }
}

@media (max-width: 640px) {
  main.membership section.cont4 article div.wrap div p em {
    margin-bottom: 8px;
  }
}

main.membership section.cont5 a {
  font-size: 0;
  display: block;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.membership section.cont5 a {
    font-size: 0;
  }
}

@media (max-width: 640px) {
  main.membership section.cont5 a {
    font-size: 0;
  }
}

/* ========================================
   料金セクション (PRICE)
======================================== */
main.price section.cont0 {
  height: 200px;
  background-size: cover;
  background-position: center;
}

@media (max-width: 640px) {
  main.price section.cont0 {
    height: 150px;
  }
}

main.price section.cont1 {
  padding-top: 60px;
  padding-bottom: 40px;
  background-color: #000;
  position: relative;
  overflow: hidden;
}

@media (max-width: 640px) {
  main.price section.cont1 {
    padding-top: 40px;
    padding-bottom: 30px;
  }
}

main.price section.cont1:before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 300px;
  height: 100px;
  background: repeating-linear-gradient(
    -45deg,
    #FFD700,
    #FFD700 12px,
    transparent 12px,
    transparent 24px
  );
  z-index: 1;
}

@media (max-width: 640px) {
  main.price section.cont1:before {
    width: 150px;
    height: 60px;
  }
}

main.price section.cont1 div.wrap {
  position: relative;
  z-index: 2;
}

main.price section.cont1 div.wrap h1 {
  margin: 0;
}

main.price section.cont1 div.wrap h1 em {
  display: block;
  margin-bottom: 5px;
  color: #FFD700;
  font-size: 72px;
  font-family: "Oswald", sans-serif;
  font-weight: 700;
  font-style: normal;
  letter-spacing: 0.05em;
}

@media (max-width: 640px) {
  main.price section.cont1 div.wrap h1 em {
    font-size: 48px;
  }
}

main.price section.cont1 div.wrap h1 strong {
  display: block;
  color: #FFD700;
  font-size: 20px;
  font-weight: 400;
  letter-spacing: 0.1em;
}

@media (max-width: 640px) {
  main.price section.cont1 div.wrap h1 strong {
    font-size: 16px;
  }
}

/* 料金テーブルセクション (cont2) - base.cssの構造を完全再現 */
main.price section.cont2 {
  padding-top: 64px;
  padding-bottom: 120px;
  position: relative;
  background-color: #000;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 {
    padding-top: 40px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 {
    padding-top: 40px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 {
    padding-bottom: 64px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 {
    padding-bottom: 64px;
  }
}

main.price section.cont2:before {
  display: none !important;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2:before {
    top: 0;
  }
}

@media (max-width: 640px) {
  main.price section.cont2:before {
    top: 0;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2:before {
    left: 0;
  }
}

@media (max-width: 640px) {
  main.price section.cont2:before {
    left: 0;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2:before {
    width: 117px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2:before {
    width: 117px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2:before {
    height: 67px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2:before {
    height: 67px;
  }
}

main.price section.cont2 div.wrap {
  width: 992px;
  padding-right: 16px;
  padding-left: 16px;
  margin-right: auto;
  margin-left: auto;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap {
    width: 832px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap {
    width: 432px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap {
    padding-right: 16px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap {
    padding-right: 16px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap {
    padding-left: 16px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap {
    padding-left: 16px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap {
    margin-right: auto;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap {
    margin-right: auto;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap {
    margin-left: auto;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap {
    margin-left: auto;
  }
}

main.price section.cont2 div.wrap a.banner {
  margin-bottom: 60px;
  position: relative;
  z-index: 1;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap a.banner {
    margin-bottom: 40px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap a.banner {
    margin-bottom: 40px;
  }
}

main.price section.cont2 div.wrap article {
  margin-bottom: 120px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article {
    margin-bottom: 64px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article {
    margin-bottom: 64px;
  }
}

main.price section.cont2 div.wrap article h3 {
  font-size: 24px;
  border-bottom: #FFDB04 solid 1px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article h3 {
    font-size: 16px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article h3 {
    font-size: 16px;
  }
}

main.price section.cont2 div.wrap article h3 span {
  line-height: 44px;
  width: 356px;
  height: 44px;
  padding-right: 16px;
  padding-left: 16px;
  color: #000;
  background-color: #FFDB04;
  border-radius: 8px 8px 0 0;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article h3 span {
    line-height: 32px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article h3 span {
    line-height: 32px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article h3 span {
    width: 240px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article h3 span {
    width: 240px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article h3 span {
    height: 32px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article h3 span {
    height: 32px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article h3 span {
    padding-right: 8px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article h3 span {
    padding-right: 8px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article h3 span {
    padding-left: 8px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article h3 span {
    padding-left: 8px;
  }
}

main.price section.cont2 div.wrap article dl {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
  padding-top: 16px;
  padding-bottom: 16px;
  border-bottom: #FFDB04 solid 1px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl {
    padding-top: 12px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl {
    padding-top: 12px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl {
    padding-bottom: 12px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl {
    padding-bottom: 12px;
  }
}

main.price section.cont2 div.wrap article dl dt {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 16px 16px;
  font-size: 24px;
}

@media (max-width: 1200px) {
  main.price section.cont2 div.wrap article dl dt {
    gap: 8px 8px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl dt {
    font-size: 14px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl dt {
    font-size: 14px;
  }
}

main.price section.cont2 div.wrap article dl dt span {
  color: #FFDB04;
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl dt span {
    display: none;
  }
}

main.price section.cont2 div.wrap article dl dt a {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  width: 176px;
  height: 44px;
  font-size: 18px;
  border-radius: 22px;
  border: #FFF solid 1px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl dt a {
    width: 96px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl dt a {
    width: 96px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl dt a {
    height: 24px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl dt a {
    height: 24px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl dt a {
    font-size: 10px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl dt a {
    font-size: 10px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl dt a {
    border-radius: 12px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl dt a {
    border-radius: 12px;
  }
}

main.price section.cont2 div.wrap article dl dd {
  font-size: 24px;
  color: #FFDB04;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl dd {
    font-size: 14px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl dd {
    font-size: 14px;
  }
}

main.price section.cont2 div.wrap article dl dd strong {
  font-size: 44px;
  margin-right: 8px;
  margin-left: 8px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl dd strong {
    font-size: 18px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl dd strong {
    font-size: 18px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl dd strong {
    margin-right: 4px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl dd strong {
    margin-right: 4px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl dd strong {
    margin-left: 4px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl dd strong {
    margin-left: 4px;
  }
}

main.price section.cont2 div.wrap article dl small {
  font-size: 12px;
  width: 100%;
  padding-left: 40px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl small {
    font-size: 10px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl small {
    font-size: 10px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl small {
    width: 100%;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl small {
    width: 100%;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont2 div.wrap article dl small {
    padding-left: 16px;
  }
}

@media (max-width: 640px) {
  main.price section.cont2 div.wrap article dl small {
    padding-left: 16px;
  }
}

/* 入会に際してセクション (cont3) - base.cssの構造を完全再現 */
main.price section.cont3 {
  padding-top: 120px;
  padding-bottom: 120px;
  background-color: #FFDB04;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 {
    padding-top: 56px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 {
    padding-top: 56px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 {
    padding-bottom: 56px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 {
    padding-bottom: 56px;
  }
}

main.price section.cont3 h2 {
  font-size: 40px;
  padding-right: 20px;
  padding-left: 20px;
  padding-top: 4px;
  padding-bottom: 4px;
  margin-bottom: 72px;
  color: #FFDB04;
  background-color: #000;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 h2 {
    font-size: 32px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 h2 {
    font-size: 24px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 h2 {
    padding-right: 16px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 h2 {
    padding-right: 16px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 h2 {
    padding-left: 16px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 h2 {
    padding-left: 16px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 h2 {
    padding-top: 2px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 h2 {
    padding-top: 2px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 h2 {
    padding-bottom: 2px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 h2 {
    padding-bottom: 2px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 h2 {
    margin-bottom: 40px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 h2 {
    margin-bottom: 40px;
  }
}

main.price section.cont3 h2:last-of-type {
  margin-top: 120px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 h2:last-of-type {
    margin-top: 64px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 h2:last-of-type {
    margin-top: 64px;
  }
}

main.price section.cont3 dl {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
  margin-top: 48px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 dl {
    margin-top: 24px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 dl {
    margin-top: 24px;
  }
}

main.price section.cont3 dl dt {
  width: 48px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 dl dt {
    width: 32px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 dl dt {
    width: 32px;
  }
}

main.price section.cont3 dl dd {
  width: calc(100% - 72px);
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 dl dd {
    width: calc(100% - 48px);
  }
}

@media (max-width: 640px) {
  main.price section.cont3 dl dd {
    width: calc(100% - 48px);
  }
}

main.price section.cont3 dl dd h3 {
  font-size: 24px;
  margin-bottom: 8px;
  font-weight: 700;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 dl dd h3 {
    font-size: 18px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 dl dd h3 {
    font-size: 18px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 dl dd h3 {
    margin-bottom: 4px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 dl dd h3 {
    margin-bottom: 4px;
  }
}

main.price section.cont3 dl dd h3 small {
  font-size: 16px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 dl dd h3 small {
    font-size: 14px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 dl dd h3 small {
    font-size: 14px;
  }
}

main.price section.cont3 figure {
  margin-bottom: 40px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont3 figure {
    margin-bottom: 24px;
  }
}

@media (max-width: 640px) {
  main.price section.cont3 figure {
    margin-bottom: 24px;
  }
}

@media (max-width: 1200px) {
  main.price section.cont3 figure {
    overflow-x: scroll;
  }
}

main.price section.cont3 figure img {
  min-width: 720px;
}

/* ========================================
   器具紹介セクション (PRICE cont4)
======================================== */
/* 器具紹介セクション (MACHINE LINE UP) - base.cssの構造を完全再現 */
main.price section.cont4 {
  padding-bottom: 200px;
  background-color: rgba(0, 0, 0, 0.8);
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 {
    padding-bottom: 104px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 {
    padding-bottom: 104px;
  }
}

main.price section.cont4.z20 {
  position: relative;
  z-index: 20;
}

main.price section.cont4 > img {
  width: 100%;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 > img {
    width: 100%;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 > img {
    width: 100%;
  }
}

main.price section.cont4 h2 {
  margin-top: -120px;
  margin-bottom: 120px;
  color: #FFDB04;
  text-align: center;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 h2 {
    margin-top: -24px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 h2 {
    margin-top: -24px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 h2 {
    margin-bottom: 56px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 h2 {
    margin-bottom: 56px;
  }
}

main.price section.cont4 h2 span {
  font-size: 75px;
  letter-spacing: 0.025em;
  font-family: "Oswald", sans-serif;
  display: block;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 h2 span {
    font-size: 40px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 h2 span {
    font-size: 40px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 h2 span {
    letter-spacing: 0.025em;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 h2 span {
    letter-spacing: 0.025em;
  }
}

main.price section.cont4 h2 em {
  font-size: 40px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 h2 em {
    font-size: 24px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 h2 em {
    font-size: 24px;
  }
}

main.price section.cont4 article {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 56px 32px;
}

@media (max-width: 1200px) {
  main.price section.cont4 article {
    gap: 40px 16px;
  }
}

main.price section.cont4 article div {
  width: calc((100% - 96px) / 4);
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div {
    width: calc((100% - 32px) / 3);
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div {
    width: calc((100% - 16px) / 2);
  }
}

main.price section.cont4 article div figure {
  padding-right: 8px;
  padding-left: 8px;
  padding-top: 8px;
  padding-bottom: 8px;
  cursor: pointer;
  position: relative;
  border: #FFDB04 solid 1px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure {
    padding-right: 4px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure {
    padding-right: 4px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure {
    padding-left: 4px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure {
    padding-left: 4px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure {
    padding-top: 4px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure {
    padding-top: 4px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure {
    padding-bottom: 4px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure {
    padding-bottom: 4px;
  }
}

main.price section.cont4 article div figure:before {
  position: absolute;
  top: 0;
  position: absolute;
  left: 0;
  width: 85px;
  height: 49px;
  background: no-repeat center/cover;
  background-image: url("../img/common/diagonal2.svg");
  content: '';
  transform: rotate(180deg);
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure:before {
    top: 0;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure:before {
    top: 0;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure:before {
    left: 0;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure:before {
    left: 0;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure:before {
    width: 72px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure:before {
    width: 72px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure:before {
    height: 40px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure:before {
    height: 40px;
  }
}

main.price section.cont4 article div figure:after {
  position: absolute;
  right: -8px;
  position: absolute;
  bottom: -8px;
  width: 32px;
  height: 32px;
  background: no-repeat center/cover;
  background-image: url("../img/price/plus.svg");
  content: '';
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure:after {
    right: -8px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure:after {
    right: -8px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure:after {
    bottom: -8px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure:after {
    bottom: -8px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure:after {
    width: 24px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure:after {
    width: 24px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure:after {
    height: 24px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure:after {
    height: 24px;
  }
}

main.price section.cont4 article div figure.on {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: center;
  position: absolute;
  top: 0;
  position: absolute;
  left: 0;
  width: 100vw;
  height: 100vh;
  position: fixed;
  z-index: 1;
  background-color: rgba(0, 0, 0, 0.8);
  border: none;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure.on {
    top: 0;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure.on {
    top: 0;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure.on {
    left: 0;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure.on {
    left: 0;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure.on {
    width: 100vw;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure.on {
    width: 100vw;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure.on {
    height: 100vh;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure.on {
    height: 100vh;
  }
}

main.price section.cont4 article div figure.on:before, main.price section.cont4 article div figure.on:after {
  content: none;
}

main.price section.cont4 article div figure.on img {
  width: 720px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div figure.on img {
    width: 720px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div figure.on img {
    width: 90%;
  }
}

main.price section.cont4 article div h3 {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-start;
  font-size: 20px;
  height: 72px;
  margin-top: 8px;
  margin-bottom: 0;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div h3 {
    font-size: 16px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div h3 {
    font-size: 16px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div h3 {
    height: 56px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div h3 {
    height: 56px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div h3 {
    margin-top: 8px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div h3 {
    margin-top: 8px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 article div h3 {
    margin-bottom: 0;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 article div h3 {
    margin-bottom: 0;
  }
}

main.price section.cont4 a {
  padding-top: 16px;
  padding-bottom: 16px;
  padding-right: 56px;
  padding-left: 56px;
  display: block;
  width: fit-content;
  margin-right: auto;
  margin-left: auto;
  background-color: #FFDB04;
  color: #000;
  font-size: 20px;
  font-family: "Oswald", sans-serif;
  text-decoration: none;
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 a {
    padding-top: 12px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 a {
    padding-top: 12px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 a {
    padding-bottom: 12px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 a {
    padding-bottom: 12px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 a {
    padding-right: 40px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 a {
    padding-right: 40px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 a {
    padding-left: 40px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 a {
    padding-left: 40px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  main.price section.cont4 a {
    font-size: 16px;
  }
}

@media (max-width: 640px) {
  main.price section.cont4 a {
    font-size: 16px;
  }
}

/* ========================================
   器具紹介セクション (HOME equipment-lineup)
   施設紹介の後に配置される器具紹介セクション
======================================== */
section.equipment-lineup {
  padding-bottom: 200px;
  background-color: rgba(0, 0, 0, 0.8) !important;
  background-image: url("../img/price/sv.webp") !important;
  background-size: cover !important;
  background-position: center top !important;
  background-repeat: repeat-y !important;
  background-blend-mode: darken !important;
  background-attachment: scroll !important;
}

section.equipment-lineup a.btn {
  display: none !important;
}

@media (max-width: 640px) {
  section.equipment-lineup {
    background-image: url("../img/price/sv_sp.webp") !important;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup {
    padding-bottom: 104px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup {
    padding-bottom: 104px;
  }
}

section.equipment-lineup.z20 {
  position: relative;
  z-index: 20;
}

section.equipment-lineup > img {
  width: 100%;
  display: block;
  margin: 0;
  padding: 0;
}

section.equipment-lineup h2 {
  margin-top: -120px;
  margin-bottom: 120px;
  color: #FFDB04;
  text-align: center;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup h2 {
    margin-top: -24px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup h2 {
    margin-top: -24px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup h2 {
    margin-bottom: 56px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup h2 {
    margin-bottom: 56px;
  }
}

section.equipment-lineup h2 span {
  font-size: 75px;
  letter-spacing: 0.025em;
  font-family: "Oswald", sans-serif;
  display: block;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup h2 span {
    font-size: 40px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup h2 span {
    font-size: 40px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup h2 span {
    letter-spacing: 0.025em;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup h2 span {
    letter-spacing: 0.025em;
  }
}

section.equipment-lineup h2 em {
  font-size: 40px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup h2 em {
    font-size: 24px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup h2 em {
    font-size: 24px;
  }
}

section.equipment-lineup article {
  display: flex;
  align-items: flex-start;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 56px 32px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article {
    gap: 40px 24px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article {
    gap: 40px 24px;
  }
}

section.equipment-lineup article div {
  width: calc((100% - 96px) / 4);
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article div {
    width: calc((100% - 48px) / 3);
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article div {
    width: 100%;
  }
}

section.equipment-lineup article div figure {
  position: relative;
  margin-bottom: 24px;
  padding: 8px;
  cursor: pointer;
  border: #FFDB04 solid 1px;
}

section.equipment-lineup article div figure:hover {
  opacity: 0.8;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article div figure {
    margin-bottom: 16px;
    padding: 4px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article div figure {
    margin-bottom: 16px;
    padding: 4px;
  }
}

section.equipment-lineup article div figure:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 85px;
  height: 49px;
  background: no-repeat center/cover;
  background-image: url("../img/common/diagonal2.svg");
  transform: rotate(180deg);
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article div figure:before {
    width: 72px;
    height: 40px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article div figure:before {
    width: 72px;
    height: 40px;
  }
}

section.equipment-lineup article div figure:after {
  content: "";
  position: absolute;
  right: -8px;
  bottom: -8px;
  width: 32px;
  height: 32px;
  background: no-repeat center/cover;
  background-image: url("../img/price/plus.svg");
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article div figure:after {
    width: 24px;
    height: 24px;
    right: -8px;
    bottom: -8px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article div figure:after {
    width: 24px;
    height: 24px;
    right: -8px;
    bottom: -8px;
  }
}

section.equipment-lineup article div figure img {
  width: 100%;
}

section.equipment-lineup article div h3 {
  font-size: 18px !important;
  margin-bottom: 24px;
  color: #FFF;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article div h3 {
    font-size: 16px !important;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article div h3 {
    font-size: 16px !important;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article div h3 {
    margin-bottom: 16px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article div h3 {
    margin-bottom: 16px;
  }
}

section.equipment-lineup article div dl {
  display: flex;
  justify-content: space-between;
  margin-bottom: 8px;
  color: #FFF;
}

section.equipment-lineup article div dl dt {
  font-size: 14px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article div dl dt {
    font-size: 12px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article div dl dt {
    font-size: 12px;
  }
}

section.equipment-lineup article div dl dd {
  font-size: 14px;
  color: #FFDB04;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article div dl dd {
    font-size: 12px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article div dl dd {
    font-size: 12px;
  }
}

section.equipment-lineup article div h4 {
  margin-top: 16px;
  margin-bottom: 16px;
  border: #FFDB04 solid 1px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article div h4 {
    margin-top: 12px;
    margin-bottom: 12px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article div h4 {
    margin-top: 12px;
    margin-bottom: 12px;
  }
}

section.equipment-lineup article div h4 em {
  padding: 6px 12px;
  display: block;
  position: relative;
  color: #000;
  background-color: #FFDB04;
  font-size: 14px;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article div h4 em {
    padding: 4px 8px;
    font-size: 12px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article div h4 em {
    padding: 4px 8px;
    font-size: 12px;
  }
}

section.equipment-lineup article div h4 em:before {
  position: absolute;
  right: 0;
  bottom: 0;
  width: 55px;
  height: 32px;
  background: no-repeat center/cover;
  background-image: url("../img/common/diagonal.svg");
  content: '';
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article div h4 em:before {
    width: 45px;
    height: 24px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article div h4 em:before {
    width: 45px;
    height: 24px;
  }
}

section.equipment-lineup article div h4 span {
  font-size: 14px;
  padding: 6px 12px;
  min-height: 56px;
  display: block;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article div h4 span {
    font-size: 12px;
    padding: 4px 8px;
    min-height: 48px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article div h4 span {
    font-size: 12px;
    padding: 4px 8px;
    min-height: 48px;
  }
}

section.equipment-lineup article div p {
  font-size: 14px;
  line-height: 1.8;
  color: #FFF;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup article div p {
    font-size: 12px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup article div p {
    font-size: 12px;
  }
}

section.equipment-lineup a {
  display: block;
  margin-top: 80px;
  margin-right: auto;
  margin-left: auto;
  width: 320px;
  padding: 24px;
  text-align: center;
  color: #000;
  background-color: #FFDB04;
  border-radius: 8px;
  font-size: 20px;
  font-weight: bold;
  text-decoration: none;
  transition: opacity 0.3s;
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup a {
    margin-top: 56px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup a {
    margin-top: 56px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup a {
    width: 240px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup a {
    width: 240px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup a {
    padding: 16px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup a {
    padding: 16px;
  }
}

@media (max-width: 1200px) and (min-width: 641px) {
  section.equipment-lineup a {
    font-size: 16px;
  }
}

@media (max-width: 640px) {
  section.equipment-lineup a {
    font-size: 16px;
  }
}

section.equipment-lineup a:hover {
  opacity: 0.8;
}

/* 器具紹介モーダル */
.equipment-modal-overlay {
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.9);
  z-index: 9999;
  justify-content: center;
  align-items: center;
  cursor: pointer;
}

.equipment-modal-overlay.active {
  display: flex;
}

.equipment-modal-overlay img {
  max-width: 90%;
  max-height: 90vh;
  object-fit: contain;
}

.equipment-modal-close {
  position: absolute;
  top: 20px;
  right: 30px;
  color: #FFDB04;
  font-size: 40px;
  font-weight: bold;
  cursor: pointer;
  z-index: 10000;
}

.equipment-modal-close:hover {
  color: #FFF;
}

/* ========================================
   レスポンシブ対応：モバイル背景画像
======================================== */
@media (max-width: 640px) {
  main.home section.cont4 {
    background-image: url("../img/home/mv1_sp.webp") !important;
  }

  main.home section.cont6 {
    background-image: url("../img/home/mv3_sp.webp") !important;
  }

  section.access {
    background-image: url("../img/home/mv5_sp.webp") !important;
  }
}

/* ========================================
   MEMBERSHIP タイトルセクション SP対応
   ======================================== */
main.membership section.cont1-sp { display:none; }

@media (max-width:640px) {
  /* SP: PC用を確実に隠し、SP用を表示してさらに上に詰める */
  main.membership section.cont1.pc { display:none !important; }
  main.membership section.cont1 { display:none !important; }
  main.membership section.cont1-sp { 
    display:block; 
    background: no-repeat center/cover; 
    background-image: url("/wp-content/themes/theme_sg/assets/img/membership/sv.webp");
    padding:12px 0 180px; /* 下余白増やしてセクション高さ確保 */
    position:relative;
    z-index:2;
  }
  main.membership section.cont1-sp .wrap { width:100%; margin:0 auto; }
  main.membership section.cont1-sp h1 { 
    margin:0; 
    text-align:left; 
    padding:0 16px; /* 左余白 */
    line-height:1.05; /* 行間さらに詰める */
  }
  main.membership section.cont1-sp h1 span { 
    font-size:40px; 
    letter-spacing:.025em; 
    font-family:"Oswald",sans-serif; 
    display:block; 
    position:relative; 
    z-index:3; 
  }
  main.membership section.cont1-sp h1 em { 
    font-size:24px; 
    font-weight:700; 
    margin-top:2px; 
    display:block; 
    position:relative; 
    z-index:3; 
  }
}

/* PC/SP 共通で MEMBERSHIP タイトルカラーを黒へ強制 */
main.membership section.cont1 h1 span,
main.membership section.cont1 h1 em,
main.membership section.cont1-sp h1 span,
main.membership section.cont1-sp h1 em { color:#000 !important; text-shadow:none !important; }

/* PC表示時の MEMBERSHIP 見出し左寄せ */
main.membership section.cont1.pc h1 { 
  text-align:left; 
  padding-left:64px; 
  margin:0; 
}
@media (max-width:1200px) and (min-width:641px) {
  main.membership section.cont1.pc h1 { padding-left:24px; }
}
