/*
Theme Name:KABUKI_2025
Theme URI:https://www.kakakabububukikiki.com/
Author:DH
Description:KABUKI
Version:1.0
*/
/* A Modern CSS Reset */
*,*::before,*::after{box-sizing:border-box}body,h1,h2,h3,h4,p,figure,blockquote,dl,dd{margin:0}ul[role="list"],ol[role="list"]{list-style:none}html:focus-within{scroll-behavior:smooth}body{min-height:100vh;text-rendering:optimizeSpeed;line-height:1.5}a:not([class]){text-decoration-skip-ink:auto}img,picture{max-width:100%;display:block}input,button,textarea,select{font:inherit}@media(prefers-reduced-motion:reduce){html:focus-within{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;scroll-behavior:auto !important}}

/* body {
	font-family: 'Noto Sans Japanese', sans-serif;
} */

/*@font-face {*/
/*  font-family: 'Crimson Text';*/
/*  font-weight: 400;*/
/*  src: url(./Crimson_Text/CrimsonText-Regular.ttf) format('truetype');*/
/*}*/
/*@font-face {*/
/*  font-family: 'Crimson Text';*/
/*  font-weight: 500;*/
/*  src: url(./Crimson_Text/CrimsonText-Regular.ttf) format('truetype');*/
/*}*/
/*@font-face {*/
/*  font-family: 'Crimson Text';*/
/*  font-weight: 600;*/
/*  src: url(./Crimson_Text/CrimsonText-Regular.ttf) format('truetype');*/
/*}*/
/*@font-face {*/
/*  font-family: 'Crimson Text';*/
/*  font-weight: 900;*/
/*  src: url(./Crimson_Text/CrimsonText-Regular.ttf) format('truetype');*/
/*}*/
.modaal-image .modaal-container {
  max-width: 750px !important;
}

.hover {
  display: none;
}

.marquee {
  width: 1400px;
  overflow: hidden;
}

.fadein {
  opacity: 0;
  transform : translate(0, 50px);
  transition : all 1500ms;
}

.fadein.scrollin{
  opacity: 1;
  transform: translate(0, 0);
}

body {
  width: 100%;
  min-height: 100vh;
  font-family: source-han-sans-japanese, sans-serif;
  font-weight: 400;
  word-wrap: break-word;
  overflow-wrap: break-word;
  /* background-color: red; */
  /* background: url("image/Render0807-3.png") no-repeat center center; */
  /* background-size:cover; */
  /* background-attachment: fixed; */
  /* font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif; */
  /* padding-top: 55px; */
}

.sp-only {
  display: none !important;
}

.pc-only {
  display: block !important;
}

h2 {
  font-family: ingra-wide, sans-serif;
  font-weight: 300;
}

header {
  background: rgb(51, 51, 51, 0.9);
  position: fixed;
  width: 100%;
  z-index: 100;
  font-family: ingra-wide, sans-serif;
  font-weight: 300;
  letter-spacing: 0.2em;
  top: 0;
}

header ul {
  margin: 0;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: flex-start;
  padding-left: 24px;
  padding-right: 24px;
}

header a {
  color: #fff;
  text-decoration: none;
  font-size: 11px;
}

header li {
  margin-right: 16px;
  margin-left: 16px;
}

.kabuki-logo {
  width: 97px;
  position: fixed;
  top: 96px;
  right: 17px;
  z-index: 10;
}

.kabuki-logo:hover .normal {
  display: none;
}

.kabuki-logo:hover .hover {
  display: block;
}



.side-menu {
  height: 100%;
  width: 280px;
  background: rgb(25, 25, 25, 0.9);
  position: fixed;
  z-index: 20;
  top: 51px;
  right: 0;
  display: none;
}

.side-menu > a {
  z-index: 10;
  display: block;
  width: 97px;
  position: fixed;
  right: 17px;
  top: 96px;
}

.side-menu > a > svg {
  fill: #fff;
}

.side-menu-1 {
  display: flex;
}

.side-menu-1-left {
  width: 50%;
  padding-top: 150px;
  padding-left: 30px;
}

.side-menu-1-left ul {
  margin: 0;
  padding: 0;
  list-style: none;
  padding-left: 32px;
}

.side-menu-1-left li {
  padding-bottom: 24px;
}

.side-menu-1-left a {
  color: #fff;
  text-decoration: none;
  font-family: ingra-wide, sans-serif;
  font-weight: 300;
  letter-spacing: 0.2em;
  font-size: 14px;
}

.side-menu-1-left ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

.side-menu-1-right {
  width: 50%;
  padding-top: 493px;
  padding-left: 37px;
}

.side-menu-2 {
  padding-top: 44px;
}

.side-menu-2 div {
  font-size: 12px;
  color: #666;
  font-family: ingra-wide, sans-serif;
  font-weight: 300;
  letter-spacing: 0.2em;
  text-align: center;
}

.side-menu-2 ul {
  padding: 0;
  margin: 0;
  list-style: none;
  margin-top: 16px;
}

.side-menu-2 li {
  color: #fff;
  border: solid 1px #666;
  max-width: 320px;
  width: 220px;
  height: 80px;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  margin: 0 auto;
}

.side-menu-2 li > div > div {
  font-size: 16px;
  font-family: ingra-wide, sans-serif;
  font-weight: 400;
  letter-spacing: 0.1em;
}

.side-menu-2 li > div > span {
  font-size: 11px;
  margin-top: 10px;
  letter-spacing: 0.1em;
}


.top-page-main {
  margin-top: 60px;
}
.section1 {
  /* background: url("images/pc/pc_bg2021.jpg") no-repeat center center; */
  /* background-size:cover; */
  /* background-attachment: fixed; */
  padding-top: 125px;
  padding-bottom: 55px;
  position: relative;
  width: 100%;
  overflow: hidden;
}

.section1 > svg {
  width: 550px;
  margin: 0 auto;
  display: block;
  fill: #fff;
}

.section1:before {
  content:"";
  display:block;
  position:fixed;
  top:0;
  left:0;
  z-index:-1;
  width:100%;
  height:100vh;
  background: url("images/pc/pc_bg2021.jpg") no-repeat center center;
  background-size:cover;
}

.section1 h1 {
  font-size: 36px;
  color: #fff;
  text-align: center;
  font-weight: 300;
  letter-spacing: 0.4em;
}

.sensu {
  display: block;
  max-width: 600px;
  width: 47%;
  position: absolute;
  z-index: 3;
}

.sensu-left {
  transform:rotate(34deg);
  left: -212px;
  top: 500px;
}

.sensu-right {
  transform:rotate(324deg);
  right: -216px;
  top: 500px;
}



.section1-image1 {
  margin: 0 auto;
  margin-top: 45px;
  width: 480px;
}

.section1 > h3 {
  font-size: 12px;
  color: #fff;
  text-align: center;
  margin-top: 65px;
  font-family: ingra-wide, sans-serif;
  font-weight: 300;
  letter-spacing: 0.3em;
}

.section1 .section1-button {
  margin: 0 auto;
  width: 80%;
  max-width: 1024px;
  padding: 0;
  list-style: none;
  display: flex;
  justify-content: space-between;
  /* padding-left: 24px;
  padding-right: 24px; */
  margin-top: 180px;
}

.section1 .section1-button > li {
  width: 31%;
  transition: 0.2s;
}

.section1 .section1-button > li:hover .normal{
  display: none;
}

.section1 .section1-button > li:hover .hover{
  display: block;
  background: ;
  color: #fff;
  max-width: 320px;
  width: 100%;
  height: 80px;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
  background: rgba(29,29,29,0.5);
  font-weight: 300 !important;
}

.section1 .section1-button > li > .normal {
  color: #fff;
  border: solid 1px #fff;
  max-width: 320px;
  width: 100%;
  height: 80px;
  text-align: center;
  display: flex;
  justify-content: center;
  align-items: center;
}

.section1 .section1-button > li > div > div > div {
  font-size: 16px;
  font-family: ingra-wide, sans-serif;
  font-weight: 400;
  letter-spacing: 0.1em;
}

.section1 .section1-button > li > div > div > span {
  font-size: 11px;
  margin-top: 10px;
  letter-spacing: 0.1em;
}

.section1-text {
  display: block;
  color: #fff;
  text-align: center;
  width: 320px;
  margin: 0 auto 50px;
  margin-top: 100px;
  border-bottom: solid white 1px;
  font-size: 13px;
  letter-spacing: 0.1em;
  padding-bottom: 10px;
  padding-top: 8px;
  text-decoration: none;
  transition: 0.2s;
}

.section1-text:hover {
  background:rgba(255,255,255,0.2);
}

.section1-news {
  margin-top: 37px;
  height: 56px;
  background:rgba(29,29,29,0.8);
  padding-top: 12px;
}

.section1-news-inner {
  width: 95%;
  margin: 0 auto;
  display: flex;
  justify-content: space-around;
}

.section1-news-inner >  h3 {
  color: #fff;
  font-family: ingra-wide, sans-serif;
  font-weight: 300;
  letter-spacing: 0.1em;
  font-size: 18px;
  margin-right: 14px;
}

.section1-news-inner > .news-line > li > span {
  color: #7C5ECE;
  font-family: ingra-wide, sans-serif;
  font-weight: 300;
  letter-spacing: 0.1em;
  font-size: 12px;
  line-height: 2.3em;
  margin-right: 14px;
}

.section1-news-inner > .news-line {
  margin: 0;
  padding: 0;
  /* width: 75%; */
  overflow: hidden;
}

.section1-news-inner  a {
  color: #fff;
  font-size: 14px;
}

.section1-news-inner  p {
  color: #fff;
  font-size: 14px;
}

.dots {
  margin: 0;
  padding: 0;
  display: flex;
  list-style: none;
  margin-left: 21px;
  padding-top: 9px;
}

.dots li {
  width: 8px;
  height: 8px;
  background: #fff;
  text-decoration: none;
  margin-right: 8px;
}



.news-title {
  display: flex;
}

/* .section1-news-content {
  background: #191919;
  height: 32px;
  color: #fff;
} */

.section2 {
  background: #fff;
  padding-top: 128px;
  padding-bottom: 136px;
}

.section2-inner {
  width: 97.5%;
  margin: 0 auto;
  background: url(images/pc/pc_item01.jpg) no-repeat center center;
  /* background-size:100% auto; */
  background-size: cover;
  padding-top: 51.4%;
  border-top-right-radius: 240px;
  position: relative;
}

.section2-inner-text {
  /* display: block; */
  position: absolute;
  right: 0;
  bottom: 0;
  color: #fff;
  padding-bottom: 80px;
  padding-right: 68px;
}

.section2-inner-text h2 {
  font-size: 18px;
}

.section2-inner-text-1-1 {
  font-size: 18px;
  margin-top: 48px;
  letter-spacing: 0.15em;
}

.section2-inner-text-1-2 {
  margin-top: 10px;
  font-size: 26px;
  letter-spacing: 0.05em;
}

.section2-inner-text-2-1 {
  font-size: 13px;
  margin-top: 32px;
  font-family: aktiv-grotesk, sans-serif;
  letter-spacing: 0.1em;
}

.section2-inner-text-2-2 {
  font-size: 21px;
  margin-top: 7px;
  font-family: aktiv-grotesk, sans-serif;
  font-weight: 500;
}

.section2-text {
  display: flex;
  justify-content: space-between;
  width: 87%;
  margin: 0 auto;
  margin-top: 32px;
}

.section2-text p {
  display: block;
  font-size: 13px;
  width: 50%;
}

.section2-text-ja {
  margin-right: 35px;
  font-size: 13px;
  line-height: 1.85;
}

.section2-text-en {
  margin-left: 35px;
  font-size: 13px;
  line-height: 1.85;
  font-family: aktiv-grotesk, sans-serif;
}

.section3 {
  background: url("images/pc/pc_item02.jpg") no-repeat center center;
  background-size:cover;
  /* background-attachment: fixed; */
  padding-top: 128px;
  padding-bottom: 100px;
}

.section3 h2 {
  font-size: 18px;
  text-align: center;
  color: #fff;
}

.section3-inner {
  max-width: 1088px;
  width: 85%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
  margin-top: 65px;
  color: #fff;
}
.section3-intro-text {
  display: block;

}

.section3-left {
  width: 50%;
  border-right: solid 1px #707070;
  padding-top: 40px;
  padding-bottom: 30px;
  padding-right: 15px;
}

.section3-left h3 {
  font-size: 24px;
  letter-spacing: 0.1em;
  font-weight: 500;
}

.section3-left-text1 {
  font-size: 18px;
  letter-spacing: 0.1em;
  display: block;
}

.section3-left-text2 {
  font-size: 18px;
  margin-top: 30px;
  display: block;
  letter-spacing: 0.1em;
}

.section3-left-text3 {
  font-size: 18px;
  display: block;
  letter-spacing: 0.1em;
}

.section3-left-text4 {
  font-size: 16px;
  /* margin-top: 20px; */
  display: block;
  letter-spacing: 0.1em;
}

.section3-left-text5 {
  font-size: 14px;
  margin-top: 16px;
  display: block;
  color: #ccc;
}

.section3-left-text6 {
  font-size: 18px;
  display: block;
  letter-spacing: 0.1em;
}

.section3-left-text7 {
  font-size: 14px;
  margin-top: 16px;
  display: block;
  color: #ccc;
}
.section3-left-link-btn {
  display: block;
  width: 50%;
  color: #fff;
  text-align: center;
  padding: 10px;
  border: 1px solid #fff;
  margin: 100px auto 0;
}
.section3-left-link-btn:hover {
  opacity: 0.8;
  cursor: pointer;
}

.section3-system1-block {
  max-width: 1088px;
  width: 85%;
  margin: 0 auto;
  display: block;
  margin-top: 65px;
  color: #fff;
}


.section3 svg {
  fill: #fff;
  width: 100%;
  max-width: 102px;
}
.section3-intro-text {
  width: 80%;
  margin: 0 auto;
  font-size: 16px;
}
.section3-price-notice-list {
  margin-top: 10px;
}
.section3-price-notice-list li {
  padding-left: 20px;
  position: relative;
  font-weight: 200;
  font-size: 12px;
}
.section3-price-notice-list li:nth-child(n + 2) {
  margin-top: 5px;
}
.section3-price-notice-list li:before {
  position: absolute;
  left: 0;
  top: 0;

  content: '※';
}
.section3-price-title {
  font-size: 18px;
  text-align: center;
  display: block;
  width: 100%;
}
.section3-price-block {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  align-items: flex-start;
}
.section3-price-box {
  display: block;
  width: 45%;
}
.section3-price-box:nth-child(3),
.section3-price-box:nth-child(2) {
  margin-top: 50px;
}
.section3-price-box:nth-child(4) {
  margin-top: 80px;
}
.section3-price-box-title {
  background-color: rgba(255, 255, 255, 1);
  padding: 10px 20px;
  width: 100%;
  display: block;
  color: #000;
  font-weight: bold;
}
.section3-system1-block ul {
  display: flex;
  justify-content: space-between;
  align-items: center;
  flex-wrap: wrap;
  width: 60%;
  margin: 30px auto 0;
}

.section3-system1-block li {
  width: 100%;
  border: solid 1px #fff;
  margin-left: auto;
  height: 120px;
  margin-bottom: 16px;
  /* display: flex;
  justify-content: center;
  align-items: center; */
}


.section3-system1-block li:hover {
  background: rgb(255, 255, 255, 0.2);
}

.section3-system1-block li > a {
  height: 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #ccc;
  text-decoration: none;
}

.section3-system1-block li > a > div {
  max-width: 353px;
  width: 73%;
  display: flex;
  justify-content: space-between;
}

.section3-system1-block li:first-child > a > div {
  display: block;
}

.section3-system1-block li > a > div > div {
  display: flex;
  align-items: center;
  font-family: ingra-wide, sans-serif;
  font-weight: 400;
  letter-spacing: 0.2em;
  font-size: 25px;
}

.section3-system1-block li > a > div > div > p {
  font-size: 13px;
  font-weight: 300;
  letter-spacing: 0.2em;
  margin-left: 20px;
}

.section3-system1-block li > a > div > p {
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
}

.section3-system1-block li > a > div > div > span {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.section3-system1-block li > a > div > div > div > div {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.section3-system1-block li > a > div > div > div > p {
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
}












































.section3-right {
  width: 50%;
  list-style: none;
  padding: 0;
  margin: 0;
  padding-top: 40px;
  padding-bottom: 40px;
}


.section3 svg {
  fill: #fff;
  width: 100%;
  max-width: 102px;
}

.section3-right li {
  width: 88%;
  border: solid 1px #fff;
  margin-left: auto;
  height: 120px;
  margin-bottom: 16px;
  /* display: flex;
  justify-content: center;
  align-items: center; */
}

.section3-right li:hover {
  background: rgb(255, 255, 255, 0.2);
}

.section3-right li > a {
  height: 100%;
  width: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
  color: #ccc;
  text-decoration: none;
}

.section3-right li > a > div {
  max-width: 353px;
  width: 73%;
  display: flex;
  justify-content: space-between;
}

.section3-right li:first-child > a > div {
  display: block;
}

.section3-right li > a > div > div {
  display: flex;
  align-items: center;
  font-family: ingra-wide, sans-serif;
  font-weight: 400;
  letter-spacing: 0.2em;
  font-size: 25px;
}

.section3-right li > a > div > div > p {
  font-size: 13px;
  font-weight: 300;
  letter-spacing: 0.2em;
  margin-left: 20px;
}

.section3-right li > a > div > p {
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
}

.section3-right li > a > div > div > span {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.section3-right li > a > div > div > div > div {
  font-size: 18px;
  font-weight: 700;
  letter-spacing: 0.1em;
}

.section3-right li > a > div > div > div > p {
  font-size: 16px;
  font-weight: 400;
  letter-spacing: 0.1em;
}

.section4 {
  width: 100%;
  margin: 0 auto;
  padding-top: 160px;
  background: #fff;
}

.section4 h2 {
  font-size: 18px;
  text-align: center;
  color: #000;
}



.section4 li {
  width: 24.75%;
  display: block;
  padding-bottom: 62px;
}

.section4 li .member-link {
  text-decoration: none;
  color: #000;
  display: block;
  width: 100%;
  height: 100%;
}
.section4 li .member-link:hover {
  cursor: pointer;
  opacity: 0.8;
}

.section4 span {
  text-align: center;
  display: block;
  margin-top: 24px;
  font-family: ingra-wide, sans-serif;
  font-weight: 300;
  letter-spacing: 0.1em;
  font-size: 16px;
}

.section5 {
  width: 100%;
  /* max-width: 1280px; */
  margin: 0 auto;
  padding-top: 100px;
  background: #fff;
  padding-bottom: 20px;
}



.section5 > #sb_instagram {
  max-width: 1200px;
}

.section5-inner {
  max-width: 1088px;
  width: 85%;
  margin: 0 auto;
  display: flex;
  justify-content: space-between;
}

.section5 h2 {
  font-size: 18px;
  text-align: center;
  color: #000;
  margin-bottom: 19px;
  display: block;
}

.section5-inner span {
  vertical-align: middle;
  font-family: aktiv-grotesk, sans-serif;
  letter-spacing: 0.2em;
  font-size: 12px;
  font-weight: 400;
}

.section5-inner a {
  color: #000;
  vertical-align: middle;
  font-family: aktiv-grotesk, sans-serif;
  letter-spacing: 0.2em;
  font-size: 12px;
  font-weight: 400;
}

.section5-inner i {
  font-size:1.4em;
  margin-left: 5px;
  vertical-align: middle;
}

.section6 {
  padding-top: 96px;
  background: #fff;
}

.section6 h2 {
  font-size: 18px;
  text-align: center;
  color: #000;
  margin-bottom: 19px;
  display: block;
}

.section6 p {
  font-size: 12px;
  text-align: center;
  color: #000;
  letter-spacing: 0.1em;
}

.section6-inner {
  width: 462px;
  background-image:url(images/pc/pc_recruit_non.jpg); /* 画像のURLを指定       */
  background-size:contain;                 /* 画像のサイズを指定    */
  width: 462px;                              /* 横幅のサイズを指定    */
  height: 139px;
  margin: 0 auto;
  /* height:400px;background-size: */
  display: flex;
  align-items: center;
}

.section6-content {
  margin-left: auto;
  margin-right: auto;
  width: 442px;
  height: 119px;
  background: #fff;
  display: flex;
  justify-content: center;
  align-items: center;
}

.section7 {
  display: flex;
  padding-top: 64px;
  flex-direction: row-reverse;
  background: #fff;
}

.section7 > div {
  width: 50%;
}

.section7-left {
  -webkit-filter: grayscale(100%);
  -moz-filter: grayscale(100%);
  -ms-filter: grayscale(100%);
  -o-filter: grayscale(100%);
  filter: grayscale(100%);
}

.section7-right {
  padding-left: 7.5%;
  padding-top: 160px;
}

.section7 h2 {
  font-size: 18px;
  color: #000;
  margin-bottom: 64px;
}

.section7 p {
  font-size: 13px;
  margin-bottom: 28px;
  letter-spacing: 0.1em;
  line-height: 2;
}

.section8 {
  background: url("images/pc/pc_item03.jpg") no-repeat center center;
  background-size:cover;
  color: #fff;
  padding-top: 306px;
  padding-bottom: 130px;
}
.section8-inner {
  max-width: 1088px;
  width: 85%;
  display: flex;
  justify-content: space-between;
  margin: 0 auto;
}

.section8-1-wrap {
  width: 20.5%;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;

}

.section8 h2 {
  font-size: 18px;
  margin-bottom: 15px;
}

.section8-2-wrap {
  width: 43.5%;
  display: flex;
  justify-content: space-between;
  align-items: flex-end;
}

.section8-2 {
  margin-left: auto;
}

.section8-2 p {
  font-size: 13px;
  line-height: 2;
  margin-bottom: 18px;
}

.section8-2 p a {
  color: #fff;
  text-decoration: none;
}

.section8-2-sns {
  display: flex;
}
.section8-2-contact-btn {
  display: block;
  width: 200px;
  border: 1px solid #fff;
  font-size: 12px;
  color: #fff;
  text-align: center;
  line-height: 4;
  margin-top: 18px;
}
.section8-2-contact-btn:hover {
  cursor: pointer;
  opacity: 0.8;
}

.section8-3 {
  width: 43.5%;
}

.section8-3 svg {
  fill: #fff;
  max-width: 474px;
  width: 100%;
}

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

.section8 li {
  margin-bottom: 14px;
}

.section8 li a {
  color: #fff;
  text-decoration: none;
  font-family: ingra-wide, sans-serif;
  font-weight: 300;
  letter-spacing: 0.2em;
  font-size: 13px;
}


.twitter {
  fill: #fff;
  width: 24px;
  margin-right: 11px;
}

.instagram {
  fill: #fff;
  width: 20px;
}

.section9 {
  padding-top: 20px;
  padding-bottom: 16px;
}

.section9:before{
  content:"";
  display:block;
  position:fixed;
  top:0;
  left:0;
  z-index:-1;
  width:100%;
  height:100vh;
  background: url("images/pc/pc_bg2021.jpg") no-repeat center center;
  background-size:cover;
}

.section9 div {
  color: #fff;
  text-align: center;
  font-size: 13px;
  letter-spacing: 1.5em;
  font-family: ingra-wide-2, sans-serif;
  font-weight: 400;
}
.section10 {
  padding-top: 20px;
  padding-bottom: 16px;
}

/*.section10:before{*/
/*  content:"";*/
/*  display:block;*/
/*  position:fixed;*/
/*  top:0;*/
/*  left:0;*/
/*  z-index:-1;*/
/*  width:100%;*/
/*  height:100vh;*/
/*  background: url("images/pc/pc_bg2021.jpg") no-repeat center center;*/
/*  background-size:cover;*/
/*}*/


.section10 div {
  color: #fff;
  text-align: center;
  font-size: 13px;
  letter-spacing: 1.5em;
  font-family: ingra-wide-2, sans-serif;
  font-weight: 400;
}
.sectionDemo {
  display: block;
  padding-top: 100px;
}

.news-top__section {
  width: 100%;
  margin: 0 auto;
  padding-top: 100px;
  background: #fff;
}
.news-top__section.main {
  padding-bottom: 200px;
}

.news-top__section h2 {
  font-size: 18px;
  text-align: center;
  color: #000;
}
.news-top__list article:first-child .news-top__list-box {
  border-top: 1px solid #D6D6D6;
}
.news-top__list-box {
  display: flex;
  flex-wrap: nowrap;
  justify-content: space-between;
  align-items: flex-start;
  padding: 20px 10px;
  border-bottom: 1px solid #D6D6D6;
}
.news-top__list-box:hover {
  cursor: pointer;
  opacity: 0.8;
}
.news-top__list-box__img {
  display: block;
  width: 200px;
  max-width: 30%;
  height: auto;
}
.news-top__list-box__text {
  display: flex;
  width: 600px;
  max-width: 70%;
  min-height: 200px;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-content: center;
  padding-left: 20px;

}
.news-top__list-box__text__title {
  font-weight: bold;
  font-size: 18px;
  display: block;
  width: 100%;
}
.news-top__list-box__text__title-sub {
  display: block;
  margin-bottom: 5px;
}
.news-top__list-box__text__date {
  display: block;
  width: 100%;
  color: #8B8B8B;
  font-size: 14px;
  margin-top: 20px;
}
.news-top__list-author-box {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-top: 30px;
  width: 100%;

}
.news-top__list-author-box img {
  width: 60px;
  height: auto;
  margin-right: 20px;
  border-radius: 50%;
}
.news-top__list-author-box__title {
  font-size: 14px;
  font-weight: bold;
}



.news__main-author-box {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-top: 30px;
  width: 100%;

}
.news__main-author-box img {
  width: 50px;
  height: auto;
  margin-right: 20px;
  border-radius: 50%;
}
.news__main-author-box__title {
  font-size: 14px;
  font-weight: bold;
}
.wp-block-image {
  margin: 30px 0;
}


.news-top__list {
  max-width: 800px;
  display: block;
  padding: 0 0 200px 0;
  margin: 64px auto 0;
  width: 93.7%;
}

.news-top__more-link {
  font-size: 12px;
  font-weight: bold;
}
.news-top__more-link-box {
  margin-top: 10px;
  text-align: right;
  display: block;
}
.news-top__bottom-button {
  display: block;
  width: 320px;
  font-size: 14px;
  text-align: center;
  line-height: 3.5;
  margin: 70px auto 0;
  border: 1px solid #000;
  position: relative;
}
.news-top__bottom-button:hover {
  opacity: 0.8;
  cursor: pointer;
}
.member__main {
  display: block;
  width: 100%;
  height: auto;
}
.member__main h1 img {
  width: 100%;
  height: auto;
}
.member__sec {
  display: block;
  width: 100%;
  margin-top: 100px;
}

.member__sec-title {
  display: block;
  max-width: 1000px;
  width: 90%;
  background-color: rgba(255, 255, 255, 0.3);
  font-size: 17px;
  font-family: ingra-wide-2, sans-serif;
  text-align: center;
  line-height: 2.5;
  margin: 0 auto;
  color: #fff;
}
.member__profile-block  {
  display: flex;
  max-width: 1000px;
  width: 90%;
  margin: 50px auto 0;
  padding: 0 30px;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
}
.member__profile-block-left {
  display: block;
  width: 50%;
}
.member__profile-block-right {
  display: block;
  width: 50%;
}
.slick {
  max-width: 100%;
  width: 340px;
  margin: 0 auto;
  position: relative;
}
.modal-slick {
  max-width: 100%;
  width: 340px;
  margin: 0 auto;
  position: relative;
}
.slick-slide{
  height:auto!important;
}
.slick-track {
  display: flex;
  align-items: center;
}
.slick-pre:hover,
.slick-pre:focus,
.slick-next:hover,
.slick-next:focus {
  color: transparent;
  outline: none;
  background: transparent;
}

.slick-pre:hover:before,
.slick-pre:focus:before,
.slick-next:hover:before,
.slick-next:focus:before {
  opacity: 1;
}

.slick-pre.slick-disabled:before,
.slick-nex.slick-disabled:before {
  opacity: .25;
}

.slick-pre {
  position: absolute;
  top: 50%;
  left: -70px;
  transform: translate(0,-50%);
  width: 25px;
  z-index: 1;
}
.slick-next {
  position: absolute;
  top: 50%;
  right: -70px;
  transform: translate(0,-50%);
  width: 25px;
  z-index: 1;
}
.slick-pre img,
.slick-next img {
  width: 100%;
}

.slick-slide img {
  max-width: 100%;
  max-height: 500px;
  width: 100%;
  height: auto;
}
.member__profile-list th,
.member__profile-list td {
  text-align: left;
  color: #fff;
  line-height: 1.5;
  font-weight: normal;
  font-size: 14px;
  padding-bottom: 10px;
}
.member__profile-list th {
  padding-right: 20px;
  white-space: nowrap;
}
.member__profile-list td {
  padding-right: 20px;
}
.member__profile-sns-list {
  display: flex;
  width: 100%;
  align-items: center;
  justify-content: flex-start;
  margin-top: 50px;
}
.member__profile-sns-list a {
  display: block;
  width: 25px;
  margin-right: 20px;
}
.member__profile-sns-list a img {
  display: block;
  width: auto;
  height: 20px;
}
.member__profile-text {
  display: block;
  max-width: 1000px;
  width: 90%;
  margin: 30px auto 0;
  color: #fff;
  font-size: 14px;
  line-height: 2.5;
  padding: 0 20px;
}
.member__sec-title.member {
  color: #fff;
  background: none;
}
.member__member-list {
  display: flex;
  max-width: 1200px;
  width: 95%;
  margin: 50px auto 100px;
  flex-wrap: wrap;
  align-items: flex-start;
  justify-content: flex-start;
}
.member__member-list.top {
  margin-bottom: 0;
}

.member__member-list li {
  display: block;
  width: 25%;
  padding-bottom: 60px;
}
.member__member-list li a {
  display: block;
  width: 100%;
  height: 100%;
  padding: 0 1.5px;
}
.member__member-list li a:hover {
  opacity: 0.8;
  cursor: pointer;
}

.member__member-img-box {
  display: block;
  position: relative;
}
.member__member-img {
  width: 100%;
  height: auto;
}
.member__member-img__senbatsu {
  display: block;
  width: 22%;
  height: auto;
  position: absolute;
  -moz-transform: translateX(-50%);
  -webkit-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%);
  left: 50%;
  bottom: -20px;

}
.member__member-list li a span {
  display: block;
  text-align: center;
  color: #fff;
  font-size: 17px;
  margin-top: 20px;
  letter-spacing: 0.2em;

}
.member__member-list.top li a span {
  color: #000;
}
.navigation {
  display: block;
  margin-top: 30px;
}
.navigation ul {
  display: flex;
  width: 100%;
  justify-content: center;
  align-items: center;

}
.navigation ul li {
  display: flex;
  justify-content: center;
  align-items: center;
  color: #919191;
  box-shadow: 0px 2px 3px 1px #dedede;
  border-radius: 5px;
  width: 30px;
  height: 30px;
  margin-right: 10px;
  font-size: 14px;
}
.navigation ul li .current {
  color: #000;
}
.navigation ul li:last-child {
  margin-right: 0;
}

#sb_instagram {
  width: 90%;
  max-width: 1000px;
  margin-top: 50px;
}
#eapps-instagram-feed-1 {
  width: 90%;
  max-width: 1000px;
  margin: 50px auto !important;
  display: block;
}
a#eapps-instagram-feed-1:hover {
  opacity: 0.8;
  cursor: pointer;
}
.eapps-instagram-feed-posts-inner {
  /*margin-top: 30px !important;*/
}
.eapps-instagram-feed-title-container {
  display: none;
}
.eapps-widget-toolbar {
  display: none !important;
}
.news__main {
  display: block;
  width: 100%;
  padding-top: 150px;
  background-color: #fff;
  padding-bottom: 200px;
}

.news__main-eyeCatch {
  width: 100%;
  max-width: 1000px;
  margin: 0 auto;
}
.news__main-title-box {
  display: block;
  margin: 30px auto 0;
  padding-bottom: 20px;
  border-bottom: 2px solid #000;
  width: 95%;
  max-width: 1000px;
}
.news__main-title {
  display: block;
  font-size: 24px;
  font-weight: bold;
}
.news__main-date {
  display: block;
  font-size: 12px;
  color: #8B8B8B;
}
.news__main-content {
  display: block;
  padding-top: 30px;
  font-size: 14px;
  color: #000;
  line-height: 2;
  width: 95%;
  max-width: 1000px;
  margin: 0 auto;
}
.news__main-content img {
  max-width: 100%;
  width: auto;
  height: auto;
}
.news__main-profile__wrapper {
  width: 100%;
  display: block;
  background-color: #474747;
  padding: 50px 0;
  margin-top: 100px;
}
.news__main-profile__block {
  display: flex;
  width: 40%;
  max-width: 1000px;
  margin: 0 auto 0;
  background-color: #fff;
  padding: 20px;
  box-shadow: 4px 4px 12px 0px rgb(0 0 0 / 45%);
  justify-content: flex-start;
  align-items: center;

}
.news__main-profile__left-box {
  display: inline-block;
  border-right: 2px dashed #ededed;
  padding-right: 20px;
}
.news__main-profile__img {
  text-align: center;
}
.news__main-profile__img img {
  width: 100px;
  height: auto;
  border-radius: 50%;
  margin-top: 10px;
  display: inline-block;
}
.news__main-profile__right-box {
  display: block;
  padding-left: 20px;
}
.news__main-profile-text {
  font-size: 12px;
}

.news__main-profile__title {
  position: relative;
  display: inline-block;
  margin: 1.5em 0;
  padding: 7px 10px;
  min-width: 120px;
  max-width: 100%;
  color: #555;
  font-size: 10px;
  background: #e6e6e6;
  border-radius: 15px;
  font-weight: bold;
  text-align: center;
}

.news__main-profile__title:before {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -8px;
  border: 8px solid transparent;
  border-top: 8px solid #e6e6e6;
}

.news__main-profile__title span {
  margin: 0;
  padding: 0;
}
.news__main-profile__name {
  display: flex;
  width: 100%;
  justify-content: flex-start;
  align-items: center;
  font-size: 24px;
}
.news__main-profile__name img {
  border-radius: 50%;
  width: 70px;
  margin-right: 20px;
}
.news__main-profile-link {
  display: inline-block;
  font-size: 12px;
  background-color: #fe8585;
  padding: 5px 8px;
  color: #fff;
  margin-top: 10px;
  box-shadow: 2px 2px 4px 0px rgb(0 0 0 / 45%);
}
.news__main-profile-sns-list {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-top: 20px;
}
.news__main-profile-sns-list a {
  display: block;
  height: 20px;
  margin-right: 20px;
}
.news__main-profile-sns-list a:nth-child(2) {
  margin-right: 25px;
}
.news__main-profile-sns-list a img {
  height: 100%;
}
.news__main-profile-link:hover,
.news__main-profile-sns-list a:hover {
  opacity: 0.8;
}

.member__goods-list {
  display: flex;
  margin: 50px auto 100px;
  width: 90%;
  max-width: 1000px;
  flex-wrap: wrap;
  align-items: flex-start;
}
.member__goods-list li {
  display: block;
  width: 150px;
  margin-right: 20px;
}
.member__goods-list li:nth-child(6n) {
  margin-right: 0;
}
.member__goods-list li a {
  display: block;
  width: 100%;
  height: 100%;
}
.member__goods-list li a:hover {
  opacity: 0.8;
  cursor: pointer;
}
.member__goods-list li a img {
  width: 100%;
  height: auto;
}
.member__goods-title {
  display: block;
  color: #fff;
  font-size: 14px;
  margin-top: 10px;
}
.member__goods-price {
  display: block;
  color: #fff;
  font-size: 14px;

}
/*カレンダー*/
.calendar_wrap{
  font-family: "ヒラギノ角ゴ Pro W3", "Hiragino Kaku Gothic Pro", "メイリオ", "Meiryo", sans-serif !important;
  background-color: #fff;
  -webkit-overflow-scrolling: touch;
  padding: 100px 0;
}
.calendar_wrap h2 {
  font-size: 18px;
  text-align: center;
  color: #000;
}
.calendar_wrap #calendar{
  max-width: 1100px;
  width: 90%;
  margin: 0 auto;
}
.calendar_wrap #calendar .fc-header-toolbar {
  margin-bottom: 0;
}
.calendar_wrap #calendar .fc-header-toolbar .fc-toolbar-chunk{
  width: 30%;
}
.calendar_wrap #calendar .fc-header-toolbar .fc-toolbar-chunk:last-child{
  text-align: right;
}
.calendar_wrap #calendar .fc-header-toolbar .fc-prev-button,
.calendar_wrap #calendar .fc-header-toolbar .fc-next-button{
  border: none;
  background-color: #666666;
}
.calendar_wrap #calendar .fc-header-toolbar .fc-dayGridMonth-button,
.calendar_wrap #calendar .fc-header-toolbar .fc-listMonth-button{
  border: none;
  background-color: #666666;
}
.calendar_wrap #calendar .fc-header-toolbar .fc-dayGridMonth-button.fc-button-active,
.calendar_wrap #calendar .fc-header-toolbar .fc-listMonth-button.fc-button-active{
  background-color: #8e8e8e;
}
.calendar_wrap #calendar h2.fc-toolbar-title{
  font-size: 1.2em;
  font-weight: bold;
}
.fc .fc-toolbar-title {
  color: #252525;
  text-align: center;
  font-family: "Hiragino Kaku Gothic Pro";
  font-size: 22px;
  font-style: normal;
  font-weight: 600;
  line-height: 22px; /* 100% */
  letter-spacing: 1.54px;
}
.calendar_wrap #calendar h2.fc-toolbar-title strong{
  font-size: 50px;
}
.calendar_wrap #calendar th.fc-col-header-cell {
  background-color: #3a3a3a;
}
.calendar_wrap #calendar th.fc-col-header-cell a{
  color: #fff;
}
.calendar_wrap #calendar > div.fc-view-harness{
  background-image: url("images/kumadori.png");
  background-position: center center;
  background-size: 50%;
  background-repeat: no-repeat;
}
.calendar_wrap #calendar .fc-daygrid-event {
  overflow: hidden;
}
.calendar_wrap #calendar a{
  cursor: pointer;
}
#event-calendar-modal .modal-header{
  border: none;
  padding: 0;
  padding-right: 10px;
  display: flex;
  justify-content: flex-end;
}
#event-calendar-modal .modal-header{
  border: none;
  padding-bottom: 0;
}
#event-calendar-modal .modal-body{
  padding: 0 5%;
  color: #333333;
}
#event-calendar-modal .event-modal-header-wrap{
  text-align: center;
  border-bottom: 1px solid #b2b2b2;
  padding-bottom: 25px;
}
#event-calendar-modal .event-modal-title{
  font-size: 20px;
  font-weight: bold;
  color: #FF398C;
}
#event-calendar-modal .event-modal-date{
  font-size: 14px;
  font-weight: bold;
}
#event-calendar-modal .event-modal-detail-wrap{
  height: 600px;
  margin: 0 auto 30px;
  overflow-y: scroll;
}
#event-calendar-modal .event-modal-detail-wrap .theater-info-wrap{
  margin: 0 10px;
  padding: 25px 0;
  position: relative;
}
#event-calendar-modal .event-modal-detail-wrap .theater-info-wrap:nth-child(n + 2) {
  border-top: 1px solid #d7d7d7;
}
#event-calendar-modal .event-modal-detail-wrap .theater-info{
}
#event-calendar-modal .event-modal-detail-wrap .theater-title{
  font-size: 20px;
  font-weight: bold;
  position: relative;
}
#event-calendar-modal .event-modal-detail-wrap .theater-title .limit{
  display: inline-block;
  position: absolute;
  top: 50%;
  -moz-transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  right: 0;
  font-size: 16px;
  font-weight: bold;
}
#event-calendar-modal .event-modal-detail-wrap .theater-title .limit .sale-now {
  font-size: 14px;
  color: #fff;
  background-color: #FF398C;
  padding: 4px 10px;
  border-radius: 4px;
}
#event-calendar-modal .event-modal-detail-wrap .theater-title .limit .strong {
  font-size: 14px;
  display: inline-block;
  color: #FFF;
  padding: 4px 10px;
  background-color: #FF398C;
  border-radius: 4px;

}
#event-calendar-modal .event-modal-detail-wrap .theater-date{
  font-size: 14px;
}
#event-calendar-modal .event-modal-detail{
  margin-top: 25px;
}
#event-calendar-modal .event-modal-member-list{
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-content: flex-start;
  margin-top: 25px;

}
#event-calendar-modal .event-modal-member{
  display: block;
  width: 13.5%;
  color: #000;
  border-radius: 5px;
  margin: 0 2px;
  font-size: 12px;
  text-align: center;
}
#event-calendar-modal .event-modal-member:hover {
  cursor: pointer;
  opacity: 0.8;
}
#event-calendar-modal .event-modal-member:nth-child(8n) {
  margin-right: 0;
}
#event-calendar-modal .event-modal-member:nth-child(n + 8) {
  margin-top: 10px;
}
#event-calendar-modal .event-modal-member img {
  width: 100%;
}
#event-calendar-modal .event-modal-member span {
  font-size: 8px;
  color: #000;
}
#event-calendar-modal .event-modal-member-tag{
  margin-top: 25px;
}
#event-calendar-modal .event-modal-member-tag-list{
  display: flex;
  flex-wrap: wrap;
}
#event-calendar-modal .event-modal-member-tag a{
  background-color: #9a2100;
  color: #fff;
  padding: 5px 20px;
  border-radius: 5px;
  margin: 0 10px 10px 0;
  font-size: 12px;
}
#event-calendar-modal .event-modal__reservation-block {
  display: block;
  margin-top: 10px;
  background-color: #F5F5F5;
  padding: 20px;
  border-radius: 5px;
}
#event-calendar-modal .event-modal__reservation-wrap {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  justify-content: space-between;
  align-content: flex-start;
}
#event-calendar-modal .event-modal__reservation-wrap-col2 {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  width: auto;
}

#event-calendar-modal .event-modal__reservation-wrap-col2.btn {
  width: 49%;
  padding: 0;
}
#event-calendar-modal .event-modal__reservation-wrap-col1 {
  display: block;
  width: 100%;
}
#event-calendar-modal .event-modal__reservation-title {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  font-size: 16px;
  font-weight: bold;
  line-height: 1;
  min-width: 160px;
}
.event-modal__reservation-result-wrap {
  display: flex;
  border-top: 1px dashed #BBB;
  padding: 10px 0 0;
  align-items: flex-end;
  justify-content: flex-end;
}
/*!*開発途中*!*/
/*.event-modal__reservation-result-wrap.mvk {*/
/*  display: none;*/

/*}*/
/*!*開発途中*!*/
/*#event-calendar-modal .event-modal__reservation-wrap.mvk {*/
/*  display: none;*/
/*}*/
.event-modal__reservation-result-text {
  font-size: 12px;
  font-weight: 600;
}
.event-modal__reservation-result-text span {
  font-size: 16px;
  color: #FF398C;
  font-weight: 600;
}
#event-calendar-modal .event-modal__reservation-select-text {
  display: inline-block;
  font-size: 12px;
}
#event-calendar-modal .event-modal__reservation-select-text.price-text {
  width: 220px;
}
#event-calendar-modal .schedule__event-reservation-text {
  display: block;
  font-size: 10px;
  margin: 10px auto;
  background-color: #E4E4E4;
  text-align: center;
  padding: 5px 0;
}
#event-calendar-modal .event-modal__reservation-select-text-red {
  display: inline-block;
  font-size: 16px;
  font-weight: bold;
  color: #FF398C;
}
#event-calendar-modal .event-modal__reservation-select-text-min {
  display: inline-block;
  font-size: 14px;
  font-weight: bold;

}
#event-calendar-modal .event-modal__reservation-select-box {
  display: inline-block;
  font-size: 9px;
  padding: 5px;
  -moz-appearance: menulist;
  -webkit-appearance: menulist;
  border: 1px solid #C9C9C9;
  border-radius: 5px;
  margin-left: 10px;
  font-weight: bold;
  background-color: #fff;
}
.event-modal__reservation-btn {
  display: block;
  width: 100%;
  text-align: center;
  padding: 10px;
  font-size: 14px;
  background-color: #FF398C;
  border-radius: 12px;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
}
.event-modal__reservation-btn:hover {
  opacity: 0.8;
  cursor: pointer;
}
.event-modal__reservation-btn:disabled {
  background-color: #b0b0b0;
}
.event-modal__reservation-btn:disabled:hover {
  cursor: not-allowed;
}
.event-modal__reservation-btn:not(:disabled):hover {
  opacity: 0.8;
  cursor: pointer;
}
#event-calendar-modal .event-modal__reservation-select-box::-ms-expand {
  display: inline-block;
}
#event-calendar-modal .event-modal__reservation-notice {
  font-size: 10px;
  color: #000;
}

#event-calendar-modal .heading{
  padding: 0 0.5em;
  background: transparent;
  border-left: solid 5px #333333;
  font-size: 15px;
  font-weight: bold;
  margin-bottom: 10px;
}
#event-calendar-modal .event-modal-detail a{
  color: #1c87e7;
}
#event-calendar-modal .close-btn{
  display: block;
  width: 20px;/*枠の大きさ*/
  height: 20px;/*枠の大きさ*/
  position: relative;
  cursor: pointer;
  margin-right: 10px;
}

#event-calendar-modal .close-btn::before, #event-calendar-modal .close-btn::after{
  content: "";
  display: block;
  width: 100%;/*バツ線の長さ*/
  height: 1px;/*バツ線の太さ*/
  background: #161616;
  transform: rotate(45deg);
  transform-origin:0% 50%;
  position: absolute;
  top: calc(14% - 5px);
  left: 14%;
}

#event-calendar-modal .close-btn::after{
  transform: rotate(-45deg);
  transform-origin:100% 50%;
  left: auto;
  right: 14%;
}
.schedule__main .schedule__event-reservation-text {
  display: block;
  font-size: 10px;
  margin: 10px auto;
  background-color: #D3D3D3;
  text-align: center;
  padding: 5px 0;
}

.modal {
  position: fixed;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  top: 50%;
  left: 50%;
  z-index: 1060;
  display: none;
  width: 90%;
  max-height: 90%;
  overflow-x: auto;
  overflow-y: auto;
  outline: 0;
}
.modal.fade .modal-dialog {
  transition: transform .3s ease-out;
  transform: translate(0,-50px);
}
.modal.show .modal-dialog {
  transform: none;
}
.modal-content {
  position: relative;
  display: flex;
  flex-direction: column;
  width: 100%;
  pointer-events: auto;
  background-color: #fff;
  background-clip: padding-box;
  border: 2px solid #333333;
  border-radius: 10px;
  outline: 0;
  padding-top: 20px;
}
.modal-dialog {
  display: flex;
  align-items: center;
  min-height: 100%;
  max-width: 100%;
  width: 900px;
  margin: 0 auto;
  position: relative;
  pointer-events: none;
}
.modal-backdrop {
  position: fixed;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100vw;
  height: 100vh;
  background-color: #000;
  display: none;
}
.modal-backdrop.fade {
  opacity: 0;
}
.modal-backdrop.show {
  opacity: .5;
}
.fade {
  transition: opacity .15s linear;
}
.fade:not(.show) {
  opacity: 0;
}
.contact__main {
  width: 100%;
  background-color: #fff;
  margin: 0 auto;
  padding-bottom: 200px;
  padding-top: 150px;
}
.contact__main-inner {
  width: 800px;
  max-width: 90%;
  margin: 0 auto;
}
.contact__main-title {
  display: block;
  font-size: 18px;
  text-align: center;
  font-family: ingra-wide, sans-serif;
  font-weight: 300;
  letter-spacing: 0.2em;
}
.contact__main-intro-text {
  display: block;
  text-align: center;
  font-size: 14px;
  margin-top: 20px;
}
.wpcf7 {
  display: block;
  margin-top: 50px;
}
.contact__main-form {
  display: block;
  margin-top: 50px;
}
.contact__main-form-group {
  display: block;
  margin-bottom: 20px;
}
.contact__main-form-label {
  display: block;
  font-size: 12px;
  text-align: left;
}
.contact__main-form-input {
  display: block;
  width: 100%;
  font-size: 11px;
  padding: 10px;
  background-color: #F8F8F8;
  border: 1px solid #EBEBEB;
  border-radius: 5px;
  margin-top: 5px;
}
.contact__main-form-input::placeholder {
  color: #B5B5B5;
}
/* 旧Edge対応 */
.contact__main-form-input::-ms-input-placeholder {
  color: #B5B5B5;
}
/* IE対応 */
.contact__main-form-input:-ms-input-placeholder {
  color: #B5B5B5;
}
.contact__main-form-textarea {
  display: block;
  width: 100%;
  min-height: 150px;
  font-size: 11px;
  line-height: 1.5;
  padding: 10px;
  background-color: #F8F8F8;
  border: 1px solid #EBEBEB;
  border-radius: 5px;
  margin-top: 5px;
}
.contact__main-form-notice {
  display: block;
  position: relative;
  font-size: 12px;
  padding-left: 15px;
  margin-bottom: 10px;
}
.contact__main-form-notice:before {
  display: block;
  content: "※";
  position: absolute;
  left: 0;
  top: 0;
  font-size: 12px;
}
.contact__main-form-submit {
  display: block;
  width: 320px;
  font-size: 14px;
  text-align: center;
  line-height: 3.5;
  margin: 70px auto 0;
  border: 1px solid #000;
}
.contact__main-form-submit:hover {
  cursor: pointer;
  opacity: 0.8;
}
.wpcf7 form .wpcf7-response-output {
  margin: 2em 0.5em 1em;
  padding: 0.2em 1em;
  border: none;
}

.wpcf7 form.init .wpcf7-response-output,
.wpcf7 form.resetting .wpcf7-response-output,
.wpcf7 form.submitting .wpcf7-response-output {
  display: none;
}

.wpcf7 form.sent .wpcf7-response-output {
  border: none;
}

.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output {
  border: none;
}

.wpcf7 form.spam .wpcf7-response-output {
  border: none;
}

.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output {
  border: none;
}
.wpcf7 form.invalid .wpcf7-response-output {
  text-align: center;
  color: #ff0000;
}

.wpcf7-form-control-wrap {
  position: relative;
}

.wpcf7-not-valid-tip {
  color: #dc3232; /* Red */
}

.use-floating-validation-tip .wpcf7-not-valid-tip {
  border: none;
}
.schedule__main {
  width: 100%;
  background-color: #fff;
  margin: 0 auto;
  padding-bottom: 200px;
}
.schedule__main-inner {
  width: 800px;
  max-width: 90%;
  margin: 0 auto;
}
.schedule__main-title {
  display: block;
  font-size: 18px;
  text-align: center;
  font-family: ingra-wide, sans-serif;
  font-weight: 300;
  letter-spacing: 0.2em;
}
.schedule__main-title-jp {
  display: block;
  font-size: 20px;
  text-align: center;
  font-family: ingra-wide, sans-serif;
  font-weight: 700;
}
.schedule__event-close-box {
  display: none;
  position: relative;
}
.schedule__event-close-box.open {
  display: block;
  transition: all .3s;
}
.schedule__event-close-box.selected {

}
.schedule__event-selected-box {
  display: none;
  width: 100%;
  height: 100%;
  background-color: rgba(0, 0, 0, 0.7);
  position: absolute;
  z-index: 50;
  top: 0;
  left: 0;
}
.schedule__event-selected-box__inner {
  display: flex;
  align-content: center;
  justify-content: center;
  width: 30%;
  margin: 0 auto;
  flex-wrap: wrap;
  height: 100%;
}
.schedule__event-selected-box__title {
  text-align: center;
  font-size: 24px;
  font-weight: bold;
  color: #fff;
}
.schedule__event-selected-box__delete-btn {
  display: block;
  width: 100%;
  text-align: center;
  padding: 10px;
  font-size: 14px;
  background-color: #BD2123;
  box-shadow: 0 3px 0 #890000;
  border-radius: 3px;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
  margin-top: 30px;
}
.schedule__event-selected-box__delete-btn:hover {
  opacity: 0.8;
  cursor: pointer;
}
.schedule__event-member-list{
  display: flex;
  width: 100%;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-content: flex-start;
  margin-top: 25px;

}
.schedule__event-member{
  display: block;
  width: 12%;
  color: #000;
  border-radius: 5px;
  margin: 0 2px;
  font-size: 12px;
  text-align: center;
}
.schedule__event-member:hover {
  cursor: pointer;
  opacity: 0.8;
}
.schedule__event-member:nth-child(8n) {
  margin-right: 0;
}
.schedule__event-member img {
  width: 100%;
}
.schedule__event-member span {
  font-size: 8px;
  color: #000;
}
.schedule__event-reservation-block {
  display: block;
  margin-top: 10px;
  background-color: #F5F5F5;
  padding: 30px;
  border-radius: 12px;
}
.schedule__event-reservation-wrap {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  justify-content: space-between;
  align-items: center;
}
.schedule__event-reservation-wrap-col2 {
  display: flex;
  align-items: center;
  width: 49%;
}
.schedule__event-reservation-wrap-col2.tRightPc {
  justify-content: flex-end;
}
.schedule__event-reservation-wrap-col2.center {
  margin: 0 auto;
  text-align: center;
}
.schedule__event-reservation-wrap-col1 {
  display: block;
  width: 100%;
}
.schedule__event-reservation-title {
  display: inline-block;
  font-size: 16px;
  font-weight: bold;
  margin-right: 10px;
  min-width: 150px;
}
.schedule__event-reservation-select-text {
  display: inline-block;
  font-size: 14px;
  font-weight: bold;
}
.schedule__event-reservation-select-text-red {
  display: inline-block;
  font-size: 18px;
  font-weight: bold;
  color: #FF398C;
}
.schedule__event-reservation-select-text-min {
  display: inline-block;
  font-size: 14px;
  font-weight: bold;

}
.schedule__event-reservation-select-box {
  display: inline-block;
  font-size: 9px;
  padding: 8px 15px 4px 10px;
  -moz-appearance: menulist;
  -webkit-appearance: menulist;
  border: 1px solid #C9C9C9;
  border-radius: 5px;
  margin-left: 20px;
  font-weight: bold;
  background-color: #fff;
}
.schedule__event-reservation-btn {
  display: block;
  width: 100%;
  text-align: center;
  padding: 10px;
  font-size: 14px;
  background-color: #FF398C;
  border-radius: 4px;
  border: 1px solid #aaa;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
}
.schedule__event-reservation-btn:disabled {
  background-color: #BBBBBB;
  /*box-shadow: 0 3px 0 #717171;*/
}
.schedule__event-reservation-btn:disabled:hover {
  cursor: not-allowed;
}
.schedule__event-reservation-btn:not(:disabled):hover {
  opacity: 0.8;
  cursor: pointer;
}
.schedule__event-reservation-select-box::-ms-expand {
  display: inline-block;
}
.schedule__event-reservation-notice {
  font-size: 10px;
  color: #000;
}

.schedule__date-list {
  display: block;
  width: 1090px;
  max-width: 100%;
  margin: 50px auto 0;
}
.schedule__date-title {
  display: block;
  width: 100%;
  background-color: #252525;
  border-radius: 12px;
  color: #fff;
  font-size: 22px;
  padding: 10px 40px;


}
.schedule__event-block {
  display: block;
  margin-top: 30px;
  /*padding-bottom: 30px;*/
  /*border-bottom: 1px solid #DEDEDE;*/
}
.schedule__event-title {
  border: 1px solid #DEDEDE;
  border-radius: 12px;
  background-color: #FFF;
  font-size: 20px;
  color: #000;
  padding: 20px 40px;
  position: relative;
}
.schedule__event-title:hover {
  cursor: pointer;
  opacity: 0.8;
}
.schedule__event-title-time__sp {
  display: none;
}
.schedule__event-title-time__pc {
  display: inline;
}
.schedule__event-status {
  display: inline-block;
  position: absolute;
  -moz-transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  top: 50%;
  right: 80px;
  font-size: 14px;
  color: #fff;
  background-color: #FF398C;
  border-radius: 4px;
  padding: 4px 10px;
}
.schedule__event-status.red {
  color: #BD2123;
}
.schedule__event-arrow {
  display: block;
  width: 20px;
  height: auto;
  position: absolute;
  -moz-transform: translateY(-50%);
  -webkit-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  top: 50%;
  right: 40px;
}
.schedule__event-arrow img {
  width: 100%;
  transition: all .3s;
}
.schedule__event-arrow.open img {
  -moz-transform: rotate(180deg);
  -webkit-transform: rotate(180deg);
  -o-transform: rotate(180deg);
  transform: rotate(180deg);
  transition: all .3s;
}


.schedule-form__main {
  width: 100%;
  background-color: #fff;
  margin: 0 auto;
  padding-bottom: 200px;
  padding-top: 150px;
}
.schedule-form__main-inner {
  width: 850px;
  max-width: 100%;
  margin: 0 auto;
}
.schedule-form__title {
  font-size: 24px;
  font-weight: bold;
}
.schedule-form__notice {
  font-size: 10px;
  margin-top: 10px;
  padding: 20px;
  width: 100%;
  height: 300px;
  overflow: scroll;
  border: 1px solid #000;
}
.schedule-form__notice-title {
  font-size: 16px;
  font-weight: bold;
  margin-top: 30px;
  margin-bottom: 10px;
}
.schedule-form__notice-list_parent {
  list-style: auto;
  margin-left: 30px;
  margin-top: 20px;
}
.schedule-form__notice-li_parent {
  margin-top: 20px;
}
.schedule-form__notice-list_child {
  list-style: auto;
  margin-left: 30px;
  margin-top: 10px;

}
.schedule-form__notice-li_child {

}
.schedule-form__notice_right-bottom-text {
  text-align: right;
  margin-top: 50px;
  font-size: 16px;
}
.schedule-form__reservation-block {
  display: block;
  margin-top: 30px;
  background-color: #F5F5F5;
  padding: 30px 0;
}
.schedule-form__reservation {
  display: flex;
  justify-content: space-between;
  align-items: center;
  white-space: nowrap;
  border-top: 1px solid #DBDBDB;
  padding-bottom: 20px;
  padding-top: 20px;
  width: 90%;
  margin: 0 auto;
}
.schedule-form__reservation:first-child {
  padding-top: 0;
  border-top: none;
}
.schedule-form__reservation-left {
  width: 90%;
  display: block;
}
.schedule-form__reservation-right {
  display: block;
  width: 10%;
}
.error .schedule-form__reservation-title {
  color: #BD2123;
}
.schedule-form__reservation-title {
  font-size: 16px;
  font-weight: bold;
}
.schedule-form__reservation-text {
  display: inline-block;
  font-size: 14px;
  margin-top: 20px;
  vertical-align:middle
}
.error .schedule-form__reservation-text {
  color: #8D8D8D;
}
.schedule-form__reservation-error-text {
  font-size: 12px;
  color: #BD2123;
  margin-top: 10px;
}
.schedule-form__reservation-select {
  display: inline-block;
  font-size: 9px;
  padding: 4px 15px 4px 7px;
  -moz-appearance: menulist;
  -webkit-appearance: menulist;
  border: 1px solid #C9C9C9;
  margin-left: 20px;
  font-weight: bold;
  background-color: #fff;
  margin-top: 20px;
  vertical-align:middle
}
.error .schedule-form__reservation-select {
  color: #BD2123;
}
.schedule-form__reservation-delete {
  display: inline-block;
  font-size: 14px;
  background-color: #fff;
  border: 1px solid #C9C9C9;
  width: 100%;
  min-width: 80px;
  text-align: center;
  padding: 5px;
}
.schedule-form__reservation-delete:hover {
  cursor: pointer;
  opacity: 0.8;
}
.schedule-form__reservation-result {
  display: block;
  width: 100%;
  border-top: 1px solid #C9C9C9;
  padding-top: 20px;

}
.schedule-form__reservation-result-inner {
  display: flex;
  width: 90%;
  margin: 0 auto;
  white-space: nowrap;
  justify-content: space-between;
  align-items: center;
}
.schedule-form__reservation-result-title {
  display: inline-block;
  font-size: 16px;
}
.schedule-form__reservation-result-money {
  display: inline-block;
  font-size: 20px;
}
.schedule-form__reservation-result-money-min {
  font-size: 16px;
}
.schedule-form__customer-form{
  display: block;
  width: 95%;
  margin: 50px auto 0;
}
.schedule-form__customer-form-tr{
  display: flex;
  white-space: nowrap;
  align-items: center;
  justify-content: flex-start;
  padding: 20px;
  border-bottom: 1px solid #E3E3E3;
}

.schedule-form__customer-form-tr:first-child {
  border-top: 1px solid #E3E3E3;
}
.schedule-form__customer-form-th {
  font-size: 13px;
  display: block;
  width: 20%;
}
.schedule-form__customer-form-td {
  font-size: 13px;
  display: block;
  width: 60%;
}
.schedule-form__customer-form-tr.credit-tr {
  padding: 30px 20px 5px 20px;
}
.credit-tr .schedule-form__customer-form-th {
  margin-bottom: 30px;
}
.credit-tr .schedule-form__customer-form-td {
  margin-top: 10px;
}
#card-container {
  width: 100%;
}
.sq-card-wrapper {
  flex-direction: initial;
  align-items: center;
  flex-wrap: wrap;
}
.sq-card-wrapper .sq-card-message::before {
  /*display: none;*/
}
.schedule-form__customer-form-input {
  width: 100%;
  border-radius: 3px;
  border: 1px solid #C9C9C9;
  padding: 5px 10px;
}

input.schedule-form__customer-form-input::placeholder {
  color: #A8A8A8;
}
input.schedule-form__customer-form-input::-ms-input-placeholder {
  color: #A8A8A8;
}
input.schedule-form__customer-form-input:-ms-input-placeholder {
  color: #A8A8A8;
}
.schedule-form__customer-form-td-col2{
  display: flex;
  width: 60%;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
}
.schedule-form__customer-form-th-col2{
  width: 38%;
  font-size: 13px;
  display: block;
  white-space: normal;
}
.schedule-form__customer-form-th-2{
  font-size: 13px;
  display: block;
  width: 30%;
}
.schedule-form__customer-form-th-2:nth-child(n + 2) {
  margin-top: 20px;
}
.schedule-form__customer-form-td-2:nth-child(n + 3) {
  margin-top: 20px;
}
.schedule-form__customer-form-td-2{
  font-size: 13px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  width: 70%;
}
.schedule-form__customer-form-select-box{
  display: block;
  width: 45%;
}
.schedule-form__customer-form-select{
  display: inline-block;
  width: 120px;
  font-size: 9px;
  padding: 8px 15px 4px 10px;
  -moz-appearance: menulist;
  -webkit-appearance: menulist;
  border: 1px solid #C9C9C9;
  border-radius: 5px;
  font-weight: bold;
  background-color: #fff;
  margin-right: 5px;
}
.schedule-form__customer-form-btn {
  display: block;
  width: 50%;
  text-align: center;
  padding: 10px;
  font-size: 14px;
  background-color: #BD2123;
  box-shadow: 0 3px 0 #890000;
  border-radius: 3px;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
  margin: 50px auto 0;
}
.schedule-form__customer-form-btn:hover {
  opacity: 0.8;
  cursor: pointer;
}
.schedule-form__customer-agree {
  text-align: center;
  margin-top: 30px;
}
.schedule-form__customer-agree input[type="checkbox"] {
  cursor: pointer;
  padding-left: 30px;/*label手前にチェックボックス用の余白を開ける*/
  vertical-align: middle;
  position: relative;
}
.schedule-form__customer-agree input[type="checkbox"]::before,
.schedule-form__customer-agree input[type="checkbox"]::after {
  content: "";
  display: block;
  position: absolute;
}
.schedule-form__customer-agree input[type="checkbox"]::before {
  background-color: #fff;
  border-radius: 0%;
  border: 1px solid #666464;
  width: 20px;/*チェックボックスの横幅*/
  height: 20px;/*チェックボックスの縦幅*/
  transform: translateY(-50%);
  top: 50%;
  left: 5px;
}
.schedule-form__customer-agree input[type="checkbox"]::after {
  border-bottom: 3px solid #666464;/*チェックの太さ*/
  border-left: 3px solid #666464;/*チェックの太さ*/
  opacity: 0;/*チェック前は非表示*/
  height: 6px;/*チェックの高さ*/
  width: 11px;/*チェックの横幅*/
  transform: rotate(-45deg);
  top: -7px;/*チェック時の位置調整*/
  left: 10px;/*チェック時の位置調整*/
}
.schedule-form__customer-agree input[type="checkbox"]:checked::after {
  opacity: 1;/*チェック後表示*/
}
.schedule-form__customer-cancel {
  display: block;
  max-width: 90%;
  width: 600px;
  margin: 30px auto 50px;
  text-align: center;
}
.schedule-form__customer-cancel-title {
  font-size: 12px;
  font-weight: bold;
}
.schedule-form__customer-cancel-text {
  font-size: 10px;
  margin-top: 10px;
}

.modal__bg{
  display: none;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(0,0, 0, 0.4);
  z-index: 200;
}
.modal__content{
  display: none;
  max-width: 90%;
  width: 940px;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  position: fixed;
  top: 50%;
  left: 50%;
  border-radius: 5px;
  border: 1px solid #1C7E05;
  background-color: #fff;
  max-height: 80%;
  z-index: 400;
  padding: 70px 50px 50px 50px;
}
.modal__content-title{
  font-size: 24px;
  font-weight: bold;
}
.modal__content-table{
  display: block;
  margin-top: 30px;
}
.modal__content-tr{
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: 30px;
  border-bottom: 1px solid #E3E3E3;
  font-size: 13px;
  text-align: left;
}
.modal__content-tr:first-child {
  border-top: 1px solid #E3E3E3;
}
.modal__content-td-block {
  margin-left: 10px;
}
.modal__content-th{
  width: 200px;
}
.modal__content-td{
  width: 100%;
}
.modal__content-close{
  display: block;
  width: 20px;
  height: 20px;
  position: absolute;
  cursor: pointer;
  top: 20px;
  right: 20px;
}

.modal__content-close::before,
.modal__content-close::after{
  content: "";
  display: block;
  width: 100%;
  height: 1px;
  background: #161616;
  transform: rotate(45deg);
  transform-origin:0% 50%;
  position: absolute;
  top: calc(14% - 5px);
  left: 14%;
}

.modal__content-close::after{
  transform: rotate(-45deg);
  transform-origin:100% 50%;
  left: auto;
  right: 14%;
}
.modal__content-btn-wrapper {
  display: flex;
  width: 95%;
  margin: 50px auto 0;
  align-items: flex-start;
  justify-content: space-between;
}
.schedule-form__modal-btn2 {
  display: block;
  width: 49%;
  text-align: center;
  padding: 10px;
  font-size: 14px;
  border-radius: 3px;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
}
.schedule-form__modal-btn2.gray {
  background-color: #A3A3A3;
  box-shadow: 0 3px 0 #808080;
}
.schedule-form__modal-btn2.red {
  background-color: #BD2123;
  box-shadow: 0 3px 0 #890000;
}
.schedule-form-complete__main {
  width: 100%;
  background-color: #fff;
  margin: 0 auto;
  padding-bottom: 200px;
  padding-top: 150px;
}
.schedule-form-complete__main-inner {
  width: 800px;
  max-width: 90%;
  margin: 0 auto;
}
.schedule-form-complete__title{
  font-size: 30px;
  font-weight: bold;
  color: #BD2123;
  text-align: center;
}
.schedule-form-complete__text{
  font-size: 13px;
  font-weight: normal;
  margin-top: 70px;
  text-align: center;
  line-height: 2.5;
}
.schedule-form-complete__text-min{
  font-size: 10px;
  margin-top: 30px;
  text-align: center;
  line-height: 2.5;
}
.schedule-form-complete__link-btn{
  display: block;
  width: 210px;
  font-size: 10px;
  text-align: center;
  border: 1px solid #C9C9C9;
  margin: 80px auto 0;
  padding: 10px 0;
}
.schedule-form-complete__link-btn:hover {
  cursor: pointer;
  opacity: 0.8;
}

/*===============
----------------------------------
 */
.company__main {
  width: 100%;
  background-color: #fff;
  margin: 0 auto;
  padding-bottom: 200px;
  padding-top: 150px;
}
.company__main-inner {
  width: 800px;
  max-width: 90%;
  margin: 0 auto;
}
.company__main-title {
  display: block;
  font-size: 18px;
  text-align: center;
  font-family: ingra-wide, sans-serif;
  font-weight: 300;
  letter-spacing: 0.2em;
}
.company__main-table {
  display: table;
  width: 100%;
  margin-top: 50px;
}
.company__main-table tr {
  border-bottom: 1px solid #E6E6E6;
}
.company__main-table th,
.company__main-table td {
  font-size: 12px;
  padding: 30px 0;
  line-height: 1.6;
}
.company__main-table th {
  padding-left: 30px;
  min-width: 170px;
}
.company__main-table td {
  padding-right: 20px;
}
.policy__main {
  width: 100%;
  background-color: #fff;
  margin: 0 auto;
  padding-bottom: 200px;
  padding-top: 150px;
}
.policy__main-inner {
  width: 800px;
  max-width: 90%;
  margin: 0 auto;
}
.policy__main-title {
  display: block;
  font-size: 18px;
  text-align: center;
  font-family: ingra-wide, sans-serif;
  font-weight: 300;
  letter-spacing: 0.2em;
}
.policy__text-box {
  margin-top: 50px;
  font-size: 12px;
}
.policy__text-title {
  font-size: 16px;
  font-weight: bold;
  margin-top: 20px;
}
.policy__text-li-parent {
  margin-top: 20px;
}
.policy__text-list-parent {
  list-style: auto;
  margin-left: 30px;
}
.policy__text-list-child {
  list-style: auto;
  margin-left: 30px;
  margin-top: 10px;

}

.policy__text-right-bottom-text {
  text-align: right;
  margin-top: 50px;
  font-size: 16px;
}
.breadcrumbs__inner {
  display: block;
  padding-left: 38px;
  color: #727272;
  font-size: 12px;
  line-height: 2.5;
  background-color: #E6E6E6;
}
.breadcrumbs__inner a {
  margin-right: 5px;
}
.breadcrumb_last {
  margin-left: 5px;
}
.breadcrumbs__inner a:hover {
  opacity: 0.8;
}
.white .member__sec-title {
  background-color: #fff;
  color: #000;
}
.white .section9:before {
  background-image: url("/wp-content/themes/kabuki/images/pc/bg_w_pc.jpg");
}
.white .member__profile-list th,
.white .member__profile-list td {
  color: #000;
}
.white .member__goods-title,
.white .member__goods-price{
  color: #000;
}
.white .member__member-list li a span {
  color: #000;
}
.white .section9 div {
  color: #000;
}
.footer__tiktok img {
  width: 100%;
}
.footer__tiktok {
  display: block;
  width: 18px;
  margin-left: 14px;
}
.header__tiktok img {
  width: 100%;
}
.header__tiktok {
  display: block;
  width: 18px;
  margin-top: 20px;
}
.section1-link-block {
  margin-top: 50px;
}
.main__official-link {
  display: flex;
  width: 400px;
  max-width: 90%;
  justify-content: center;
  align-content: center;
  margin: 30px auto 0;
  background-color: rgba(255,255,255,0.9);
  border: 1px solid #fff;
  padding: 15px 0;
}
.main__official-link:hover {
  opacity: 0.8;
  cursor: pointer;
}
.main__official-link_img {
  display: block;
  width: 48px;
  height: auto;
  margin-right: 20px;
}
.main__official-link_text {
  font-family: ingra-wide, sans-serif;
  font-size: 19px;
  margin-right: 20px;
}
.main__official-link_text span {
  display: block;
  text-align: center;
  font-size: 11px;
  font-family: source-han-sans-japanese, sans-serif;

}

.main__banner-link {
  display: block;
  width: 400px;
  max-width: 90%;
  margin: 30px auto 0;
}
.main__banner-link:hover {
  opacity: 0.8;
  cursor: pointer;
}
.main__banner-link_img {
  display: block;
  width: 100%;
  height: auto;
}

.main__banner-link-2 {
  display: block;
  width: 400px;
  max-width: 90%;
  margin: 30px auto 0;
}
.main__banner-link-2:hover {
  opacity: 0.8;
  cursor: pointer;
}


.main__banner {
  display: block;
  width: 1000px;
  max-width: 90%;
  margin: 0 auto 100px;
}
.main__banner.mb_min {
  margin-bottom: 30px;
}
.main__banner:hover {
  opacity: 0.8;
  cursor: pointer;
}
.main__banner img {
  width: 100%;
}

.reservation-bottom {
  display: none;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.8 );
  position: fixed;
  left: 0;
  bottom: 0;
  z-index: 100;
  color: #fff;
}
.reservation-bottom__wrapper {
  display: flex;
  width: 1090px;
  max-width: 90%;
  margin: 0 auto;
  padding: 20px 0;
  justify-content: space-between;
  flex-wrap: nowrap;
  align-items: center;
  font-size: 16px;
}
.reservation-bottom__left {
  display: block;
  width: 60%;
}
.reservation-bottom__right {
  display: block;
  width: 40%;
}
.reservation-bottom__text {
  margin-top: 5px;
}
.reservation-bottom__btn {
  display: block;
  width: 100%;
  text-align: center;
  padding: 10px;
  font-size: 14px;
  background-color: #BD2123;
  box-shadow: 0 3px 0 #890000;
  border-radius: 3px;
  color: #fff;
  cursor: pointer;
  text-decoration: none;
  margin-top: 3px;
}
.reservation-bottom__btn:hover {
  opacity: 0.8;
  cursor: pointer;
}
.tRightPc { text-align: right;}
.mt10 { margin-top: 10px; }
.mt20 { margin-top: 20px; }


#schedule-form__loader-bg{
  display: none;
  position: fixed;
  width: 100%;
  height: 100%;
  top: 0px;
  left: 0px;
  background: #000;
  z-index: 500;
  opacity:0.7;
}
#schedule-form__loader {
  display: none;
  position: fixed;
  top: 50%;
  left: 50%;
  width: 200px;
  height: 200px;
  margin-top: -100px;
  margin-left: -100px;
  text-align: center;
  color: #fff;
  z-index: 2;
}
.grecaptcha-badge { visibility: hidden; }

/* リニューアルソース */
body {
  font-family: 'Noto Sans JP', 'Roboto', sans-serif;
  margin: 0;
  background-color: #f9fafb; /* Original bg-gray-50 */
  color: #374151; /* Original text-gray-700 */
  line-height: 1.6;
}
* {
  box-sizing: border-box;

}

.container {
  width: 100%;
  margin: 0 auto;
  padding: 0 15px;
}



.mx-auto {
  margin-left: auto;
  margin-right: auto;
}

.p-4 {
  padding: 1rem;
}

.p-6 {
  padding: 1.5rem;
}

.p-8 {
  padding: 2rem;
}

.mb-4 {
  margin-bottom: 1rem;
}

.mb-6 {
  margin-bottom: 1.5rem;
}

.mb-8 {
  margin-bottom: 2rem;
}

.mb-12 {
  margin-bottom: 3rem;
}

.mt-2 {
  margin-top: 0.5rem;
}

.mt-12 {
  margin-top: 3rem;
}

/* New Header Styles */
.site-header {
  background-color: #ffffff;
  border-bottom: 1px solid #e0e0e0;
  height: 95px;
  display: flex;
  align-items: center;
}

.site-title-link {
  text-decoration: none;
  display: block;
  color: inherit; /* Inherits text color from parent (h1) */
}

.header-inner {
  width: 100%; /* Full window width */
  max-width: none; /* Ensure no max-width limits full span */
  margin: 0; /* No auto horizontal margins */
  padding: 0 0 0 20px; /* Spacing from window edges */
  display: flex;
  justify-content: space-between; /* Key for left-center-right layout parts */
  align-items: center;
  height: 100%;
  box-sizing: border-box;
}

.site-branding {
  flex-shrink: 0; /* Prevent site title container from shrinking */
}

.site-title-header {
  /* .en-font class in HTML handles Times New Roman */
  font-size: 26px;
  font-weight: normal;
  color: #333333;
  margin: 0;
  letter-spacing: 1px;
}

.main-navigation {
  display: flex;
  align-items: center;
  height: 100%;
  margin-left: auto;
  margin-right: 40px;
  min-width: 0;
  overflow: hidden;
}

.main-navigation ul {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  height: 100%;
  align-items: center;
}

.main-navigation li {
  margin: 0 3px;
  height: 100%;
}

.main-navigation a {
  text-decoration: none;
  color: #4a4a4a;
  font-size: 12px;
  font-weight: normal;
  text-transform: uppercase;
  letter-spacing: 0.8px;
  display: flex;
  align-items: center;
  height: 100%;
  padding: 0 5px;
  white-space: nowrap;
}

.main-navigation a:hover {
  color: #EF3D88;
}

.external-link-icon {
  width: 10px;
  height: 10px;
  margin-left: 4px;
  vertical-align: middle;
}

.header-actions {
  display: flex;
  align-items: stretch; /* Ensures buttons can take full height */
  flex-shrink: 0; /* Prevent action buttons group from shrinking */
  height: 100%;
  gap: 5px;
}

.header-action-btn {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #ffffff;
  border-radius: 0; /* No rounded corners, as per image and existing style */
  padding: 8px 5px; /* Internal padding for icon/text */
  font-size: 12px;
  font-weight: normal; /* UPDATED: to bold, as per image */
  height: 100%; /* Take full height of header-actions */
  box-sizing: border-box;
  width: 100px; /* USER REQUEST: 100px - maintained */
  text-align: center;
}

.btn-theater-guide {
  background-color: #5f6062; /* Maintained */
  margin-right: 0; /* UPDATED: Buttons flush, as per image */
}

.btn-mypage {
  background-color: #5f6062; /* Maintained */
  margin-right: 0; /* UPDATED: Buttons flush, as per image */
}

.btn-reserve {
  background-color: #e91e63; /* Maintained */
  margin-right: 0; /* Maintained: Already flush */
}

/* The :not(:first-child) rule for header-action-btn was previously commented out,
   which is fine as specific margins (now all 0 for horizontal spacing between these buttons) are handled directly. */

.header-action-btn img {
  width: 20px;
  height: 20px;
  margin-right: 0; /* Icon is centered in column */
  margin-bottom: 3px; /* Space between icon and text */
}

/* Breadcrumbs Styles */
.breadcrumbs {
  background-color: #fff0f6;
  padding: 10px 0;
  width: 100%;
  box-sizing: border-box;
  margin-top: 95px;
}

.breadcrumbs-inner {
  max-width: 1280px;
  margin: 0 auto;
  padding: 0 20px;
  font-size: 0.8rem;
  color: #000000;
  font-family: 'Noto Sans JP', sans-serif;
}

.breadcrumbs a {
  text-decoration: none;
  color: #000000;
}

.breadcrumbs a:hover {
  text-decoration: underline;
}

/* Page Title Banner Styles */
.page-title-banner-container {
  text-align: center;
  /* Removed padding: 20px 0; to let main/sub control their spacing */
}

.page-main-heading {
  /* .en-font class in HTML for KAKAKABUBUBUKIKIKI!!! if it's considered English */
  font-size: 68px; /* User request */
  font-weight: normal; /* Times New Roman */
  margin: 0;
  line-height: 1;
  text-transform: uppercase;
  color: #ffffff;
}

.page-title-banner-sub {
  padding: 12px 20px 0 20px;
  background-color: transparent; /* Explicitly no background for sub-heading container */
}

.page-sub-heading {
  font-size: 16px; /* User request */
  font-weight: 500; /* Noto Sans JP Medium */
  margin: 0;
  color: #EF3D88; /* Text color same as main title background */
  font-family: 'Noto Sans JP', sans-serif;
}

/* Main Content Area */
.main-content-area {
  /* background-image: repeating-linear-gradient(...); -- REMOVED */
  /* padding-top: 50px; -- REMOVED */
  /* padding-bottom: 50px; -- REMOVED */
}

/* Intro Section Styles */
.intro-section {
  padding: 90px 0;
  background-color: #FDF3FA;
  background-image: linear-gradient(135deg, rgba(239, 61, 136, 0.1) 25%, transparent 25%, transparent 50%, rgba(239, 61, 136, 0.1) 50%, rgba(239, 61, 136, 0.1) 75%, transparent 75%, transparent);
  background-size: 30px 30px;
  position: relative;
}

.frame-svg {
  position: absolute;
  z-index: 0; /* Behind content, as before */
  width: 60px; /* Significantly reduced width for sparkle/accent effect */
  height: auto;
}

.frame-top-left {
  top: -25px;  /* Positioned just outside the top-left corner */
  left: -25px;
}

.frame-bottom-right {
  bottom: -25px; /* Positioned just outside the bottom-right corner */
  right: -25px;
}

.intro-frame-left-top,
.intro-frame-right-bottom {
  position: absolute;
  pointer-events: none;
  width: 60px; /* SVGのサイズに合わせて調整 */
  height: auto;
  z-index: 10;
}

.intro-frame-right-bottom {
  width: 264px;
  height: auto;
  right: -40px;
  bottom: -40px;
}
.intro-frame-left-top {
  width: 264px;
  height: auto;
  left: -40px;
  top: -40px;
}

.intro-image-column {
  flex-shrink: 0;
  padding: 0;
  margin: 0; /* No space around the image column itself */
  width: 480px; /* User request */
  height: 370px; /* User request */
}

.intro-text-column {
  flex: 1;
  padding-top: 0;
}

.intro-heading {
  font-size: 22px; /* User request */
  color: #333333;
  margin-top: 0;
  margin-bottom: 20px;
  font-weight: 600; /* Noto Sans JP Bold */
  line-height: 1.4;
  font-family: 'Noto Sans JP', sans-serif; /* Japanese font */
}

.intro-text-column p {
  font-size: 14px; /* User request */
  line-height: 1.75;
  color: #555555;
  margin-bottom: 15px;
  font-family: 'Noto Sans JP', sans-serif; /* Japanese font */
}

.intro-text-column p strong {
  font-weight: 700; /* Noto Sans JP Bold, effectively */
}

.intro-text-column p:last-child {
  margin-bottom: 0;
}

/* FAQ Section Placeholder Styles - Copied from previous general good look */
.faq-section {
  background-color: #fff0f6; /* Light pink background */
  padding: 40px 20px;
  border-radius: 15px;
  margin-top: 50px;
}

.faq-section h2 {
  text-align: center;
  color: #EF3D88; /* Pink to match theme */
  font-size: 28px; /* Teko or similar bold font if available globally */
  font-family: 'Teko', sans-serif;
  margin-bottom: 30px;
}

.faq-item {
  background-color: #ffffff;
  border: 1px solid #f8d7da; /* Light pink border */
  border-radius: 10px;
  padding: 15px 20px;
  margin-bottom: 15px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
}

.faq-question {
  font-weight: 700; /* Bold for questions */
  font-size: 18px;
  color: #333;
  margin-bottom: 8px;
}

.faq-answer {
  font-size: 16px;
  color: #555;
  line-height: 1.7;
}

/* Floor Map Section Styles */
.floor-map-section {
  background-color: #ffffff; /* White background for this section */
  padding-top: 60px;
  padding-bottom: 80px;
}

.floor-map-section .section-title-main {
  font-family: 'Times New Roman', Times, serif;
  font-size: 48px;
  color: #ff398c;
  font-weight: bold;
  text-transform: uppercase;
  display: inline-block;
  position: relative;
  padding: 10px 0;
  margin-bottom: 5px;
}

.floor-map-flex-container {
  display: flex;
  align-items: flex-start;
  position: relative;
  z-index: 2;
  width: 795px;
  margin: 0 auto;
}

.floor-map-image-column {
  flex-shrink: 0;
  padding: 0;
  margin: 0;
  width: 100%;
  text-align: center;
}

.floor-map-main-image {
  width: 100%;
  height: auto;
  border-radius: 20px;
  display: block;
}
.floor-map-content-block {
  background-color: #ffffff;
  border-radius: 16px;
  max-width: 1160px;
  margin: 0 auto;
}
.section-title {
  text-align: center;
  margin-bottom: 50px;
}
.floor-map-section .section-title-main::before,
.floor-map-section .section-title-main::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100%;
  height: 2px;
  background-color: #ff398c;
}

.floor-map-section .section-title-main::before {
  top: 2px;
}

.floor-map-section .section-title-main::after {
  bottom: 2px;
}

.floor-map-section .section-title-sub {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 12px;
  color: #ff398c;
  font-weight: 600;
  letter-spacing: 0.1em;
}

.floor-map-content-container {
  max-width: 795px; /* Width of the map placeholder */
  margin: 40px auto 0;
  text-align: center;
}

.map-image-placeholder {
  width: 100%; /* Or fixed width: 795px; */
  height: 530px; /* Or fixed height: 530px; */
  background-color: #d9d9d9; /* Figma 'glay' */
  border-radius: 20px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 22px;
  color: #252525; /* Figma 'black' */
  font-weight: 600;
  position: relative;
  margin-bottom: 30px;
}

.map-decor-top-left,
.map-decor-bottom-right {
  position: absolute;
  width: 100px; /* Length of the line part */
  height: 100px; /* Length of the line part */
  /* This is a simplified representation of the sparkle effect.
     A real sparkle might require an SVG or more complex pseudo-elements. */
}

.map-decor-top-left::before, .map-decor-top-left::after,
.map-decor-bottom-right::before, .map-decor-bottom-right::after {
  content: "";
  position: absolute;
  background-color: #ff398c; /* Main pink color */
}

/* Top Left Decor - Creating an L shape with a dot */
.map-decor-top-left {
  top: -15px;
  left: -15px;
}
.map-decor-top-left::before { /* Horizontal part of L */
  width: 80px;
  height: 8px;
  top: 30px;
  left: 0;
  border-radius: 4px;
}
.map-decor-top-left::after { /* Vertical part of L */
  width: 8px;
  height: 80px;
  top: 0;
  left: 30px;
  border-radius: 4px;
}
/* Adding a sparkle dot - this is very simplified */
.map-decor-top-left::after {
  /* You might add another pseudo-element or use box-shadow for a sparkle */
  /* For simplicity, we'll keep it as lines. A real sparkle is more complex. */
}

/* Bottom Right Decor - Creating an L shape with a dot */
.map-decor-bottom-right {
  bottom: -15px;
  right: -15px;
}
.map-decor-bottom-right::before { /* Horizontal part of L */
  width: 80px;
  height: 8px;
  bottom: 30px;
  right: 0;
  border-radius: 4px;
}
.map-decor-bottom-right::after { /* Vertical part of L */
  width: 8px;
  height: 80px;
  bottom: 0;
  right: 30px;
  border-radius: 4px;
}

.map-legend {
  display: flex;
  justify-content: center;
  gap: 30px; /* Space between legend items */
  margin-top: 20px;
}

.legend-item {
  display: flex;
  align-items: center;
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 12px;
  color: #252525;
  font-weight: 600;
}

.legend-color-box {
  width: 14px;
  height: 14px;
  background-color: #d9d9d9; /* All legend boxes are gray in the image */
  border-radius: 3px;
  margin-right: 8px;
}

/* Ticket Section Styles */
.ticket-section {
  background-color: #ffe0ee; /* Light pink background from Figma (similar section) */
  padding-top: 60px;
  padding-bottom: 80px;
}

.ticket-steps-container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px; /* Gap between steps and arrows */
  max-width: 1160px;
  margin: 50px auto;
}

.ticket-step {
  background-color: #ffffff;
  border-radius: 20px;
  padding: 30px 20px;
  text-align: center;
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  width: 250px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.05);
  min-height: 280px; /* Ensure consistent height */
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
}

.step-number-container {
  width: 88px;
  height: 88px;
  background-color: #ff398c;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 10px solid #ffdceb; /* Light pink border from image */
  margin-bottom: 20px;
}

.step-number {
  color: #ffffff;
  font-size: 28px; /* Adjusted from Figma's 22px for better visibility */
  font-weight: 600;
}

.step-title {
  font-size: 22px;
  color: #ff398c;
  font-weight: 600;
  margin-bottom: 10px;
}

.step-description {
  font-size: 14px;
  color: #252525;
  line-height: 1.6;
}

.step-arrow {
  width: 28px;
}
.step-arrow img {
  width: 100%;
}

/* Simple CSS triangle as fallback for arrow if SVG is not available */
/* .step-arrow {
  width: 0;
  height: 0;
  border-top: 15px solid transparent;
  border-bottom: 15px solid transparent;
  border-left: 20px solid #cccccc;
  align-self: center;
  margin-top: 80px;
}*/

.ticket-notes {
  max-width: 1160px;
  margin: 40px auto;
  background-color: rgba(255, 255, 255, 0.45); /* Translucent white from image */
  border: 1px solid #ffffff;
  border-radius: 20px;
  padding: 30px;
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  text-align: center;
}

.ticket-notes h4 {
  font-size: 18px;
  color: #ff398c;
  font-weight: 600;
  margin-bottom: 15px;
}

.ticket-notes ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.ticket-notes li {
  font-size: 14px;
  color: #252525;
  line-height: 1.8;
}

.ticket-action-button-container {
  text-align: center;
  margin-top: 30px;
}

.ticket-action-button {
  display: inline-block;
  background: linear-gradient(to right, #ff398c, #ce6dff);
  color: #ffffff;
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 16px;
  font-weight: 600;
  padding: 15px 40px;
  border-radius: 9999px;
  text-decoration: none;
  box-shadow: 0 5px 15px rgba(255, 57, 140, 0.3);
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}

.ticket-action-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 8px 20px rgba(255, 57, 140, 0.4);
}

/* Responsive adjustments for ticket steps */
@media (max-width: 1200px) {
  .ticket-steps-container {
    flex-direction: column;
    align-items: center;
    gap: 30px;
  }
  .ticket-step {
    width: 80%;
    max-width: 400px; /* Max width for a single step on smaller screens */
    min-height: auto;
  }
  .step-arrow {
    transform: rotate(90deg);
    margin-top: 0;
    margin-bottom: 0;
  }
}

@media (max-width: 768px) {
  .floor-map-content-container {
    max-width: 90%;
  }
  .map-image-placeholder {
    height: 350px; /* Adjust height for smaller screens */
  }
  .map-legend {
    flex-direction: column;
    gap: 10px;
    align-items: flex-start; /* Align legend items to the left */
    max-width: 200px;
    margin: 20px auto 0;
  }

  .ticket-step {
    width: 90%;
  }
  .ticket-notes {
    max-width: 90%;
    padding: 20px;
  }
  .ticket-action-button {
    padding: 12px 30px;
    font-size: 15px;
  }
  .floor-map-section .section-title-main,
  .ticket-section .section-title-main {
    font-size: 36px;
  }
  .step-title {
    font-size: 20px;
  }
}

/* Footer Styles */
.site-footer {
  background-color: #333333;
  color: #ffffff;
  padding: 30px 0;
  text-align: center;
  margin-top: 50px;
  font-size: 0.9rem;
}

.footer-inner p {
  margin: 5px 0;
}

.footer-inner a {
  color: #EF3D88; /* Pink links in footer */
  text-decoration: none;
}

.footer-inner a:hover {
  text-decoration: underline;
}

/* General Link Styling (if not overridden by specific classes) */
a {
  text-decoration: none;
  color: inherit;
}

/* Remove or comment out old header styles: */
/*
.header nav {
  background-color: #ffffff;
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
  border-radius: 0.5rem;
  padding: 1rem;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.header .text-2xl {
  font-size: 1.5rem;
  line-height: 2rem;
}

.header .font-bold {
  font-weight: 700;
}

.header .text-pink-600 {
  color: #db2777;
}

.header ul {
  display: flex;
  list-style: none;
  padding: 0;
  margin: 0;
}

.header .space-x-4 > :not([hidden]) ~ :not([hidden]) {
  margin-left: 1rem;
}

.header .text-gray-700 {
  color: #374151;
}

.header .hover\:text-pink-600:hover {
  color: #db2777;
}
*/

/* Ensure the main title on the page itself doesn't conflict with header title */
.page-main-title {
  color: #1f2937; /* Tailwind text-gray-800 */
  font-size: 2.25rem; /* Tailwind text-4xl */
  line-height: 2.5rem;
  font-weight: 700; /* Tailwind font-bold */
  /* Add other specific styles for the page's H1 if needed */
}

/* Global English Font Style */
.en-font {
  font-family: 'Times New Roman', Times, serif !important;
}

/* Page Title Banner Styles */
.page-title-banner-container {
  text-align: center;
  margin: 30px 0 0;
  background-color: #fff;
}

.page-title-banner-main {
  background-color: #EF3D88;
  padding: 0 20px;
  width: 100%;
  box-sizing: border-box;
}

.page-main-heading {
  /* .en-font class in HTML handles font-family: 'Times New Roman' */
  font-size: 68px; /* User request */
  font-weight: normal; /* Times New Roman default can be boldish, normal is fine */
  margin: 0;
  line-height: 1;
  text-transform: uppercase;
  color: #ffffff;
}

.page-title-banner-sub {
  padding: 0 20px 25px 20px;
  background-color: transparent; /* Explicitly no background */
}

.page-sub-heading {
  font-size: 16px; /* User request */
  font-weight: 500; /* Noto Sans JP Medium */
  margin: 0;
  color: #EF3D88; /* Text color same as main title background */
  font-family: 'Noto Sans JP', sans-serif;
}

/* Main Content Area */
.main-content-area {
  /* background-color: #FEF6FA; -- Removed */
  background-image: repeating-linear-gradient(
          45deg,
          #FFF9FB, /* Very light pink stripe */
          #FFF9FB 10px, /* Stripe width */
          #FFFFFF 10px, /* White stripe */
          #FFFFFF 20px /* Total pattern repeat width (10px pink + 10px white) */
  );
  padding-top: 50px;
  padding-bottom: 50px;
}


.intro-content-block {
  background-color: #ffffff;
  border-radius: 16px;
  max-width: 1160px;
  margin: 0 auto;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.07);
}

.frame-svg {
  position: absolute;
  z-index: 0;
  width: 360px; /* User request for frame size (approx 3x of an assumed 120px base) */
  height: auto;
}

.frame-top-left {
  top: -180px;  /* Significantly more negative to pull the frame outwards */
  left: -180px;
}

.frame-bottom-right {
  bottom: -180px; /* Significantly more negative to pull the frame outwards */
  right: -180px;
}

.intro-flex-container {
  display: flex;
  align-items: flex-start;
  position: relative;
  z-index: 2;
}

.intro-image-column {
  flex-shrink: 0;
  padding: 0;
  margin: 0;
  width: 480px; /* User request */
  height: 370px; /* User request */
}

.intro-main-image {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-top-left-radius: 16px;
  border-bottom-left-radius: 16px;
  display: block;
  box-shadow: 0 5px 15px rgba(0,0,0,0.12);
}

.intro-text-column {
  flex: 1;
  padding: 50px;
}

.intro-heading {
  font-size: 22px; /* User request */
  color: #333333;
  margin-top: 0;
  margin-bottom: 20px;
  font-weight: 700;
  line-height: 1.4;
  font-family: 'Noto Sans JP', sans-serif; /* Japanese font */
}

.intro-text-column p {
  font-size: 14px; /* User request */
  line-height: 1.75;
  color: #555555;
  margin-bottom: 15px;
  font-family: 'Noto Sans JP', sans-serif; /* Japanese font */
}

.intro-text-column p strong {
  font-weight: 700; /* Noto Sans JP Bold */
}

.intro-text-column p:last-child {
  margin-bottom: 0;
}

/* Information Section Styles */
.information-section {
  background-color: #FFE0EE;
  padding-top: 90px;
  padding-bottom: 90px;
}

.section-title-container {
  text-align: center;
  margin-bottom: 40px;
}

.section-title-main {
  font-family: 'Times New Roman', Times, serif; /* Consistent with THEATRE GUIDE title */
  font-size: 40px;
  color: #ff398c;
  font-weight: bold;
  text-transform: uppercase;
  display: inline-block;
  position: relative;
  padding: 10px 0;
  margin-bottom: 5px;
}

.section-title-main::before,
.section-title-main::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 100%; /* Adjust width as per image */
  height: 2px;
  background-color: #ff398c;
}

.section-title-main::before {
  top: 3px;
}

.section-title-main::after {
  bottom: 3px;
}

.section-title-sub {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 16px;
  color: #ff398c;
  font-weight: 600;
  margin-top: 10px;
}

.info-content-container {
  display: flex;
  flex-wrap: wrap; /* Allow wrapping on smaller screens */
  background-color: #ffffff;
  border-radius: 16px;
  max-width: 1160px;
  margin: 0 auto;
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.07);
}

.info-map-column {
  flex: 1 1 45%; /* Allow flex grow and shrink, base 45% */
  width: 580px; /* Minimum width before wrapping */
  box-sizing: border-box;
}

.map-image {
  width: 100%;
  height: 100%;
  border-top-left-radius: 16px;
  border-bottom-left-radius: 16px;
}

.info-details-column {
  flex: 1 1 50%; /* Allow flex grow and shrink, base 50% */
  min-width: 300px; /* Minimum width before wrapping */
  padding: 50px 0 50px 50px;
  box-sizing: border-box;
  display: flex;
  flex-direction: column;
}

.info-theatre-name {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 26px; /* Adjusted based on image */
  color: #ff398c;
  font-weight: 600;
  margin-bottom: 30px;
}

.info-item {
  display: flex;
  align-items: flex-start;
  margin-bottom: 10px;
}

.info-icon {
  width: 20px;
  height: 20px;
  margin-right: 15px;
  margin-top: 3px; /* Align with first line of text */
  flex-shrink: 0; /* Prevent icon from shrinking */
}

.info-text {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 12px;
  line-height: 1.5;
  color: #252525;
}

.info-label {
  font-weight: 600;
  font-size: 15px;
  color: #252525; /* Match text color or make slightly darker/pink if needed */
  margin-bottom: 5px;
}

.info-text p {
  margin-bottom: 5px;
}

.info-text p:last-child {
  margin-bottom: 0;
}

.info-ticket-button {
  background: linear-gradient(to right, #ff398c, #ce6dff);
  color: #ffffff;
  padding: 12px 28px;
  border-radius: 9999px; /* Pill shape */
  text-decoration: none;
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 600;
  font-size: 16px;
  display: inline-block;
  text-align: center;
  margin-top: 30px;
  border: none;
  cursor: pointer;
  align-self: flex-start; /* Button alignment */
  transition: transform 0.2s ease-out, box-shadow 0.2s ease-out;
}

.info-ticket-button:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 10px rgba(0,0,0,0.15);
}

.theater-guide-schedule-section {
  display: block;
  width: 100%;
  background: #FAF5FE;
  padding: 90px 0;
}

.theater-guide-schedule-section #calendar {
  width: 900px;
  margin: 0 auto;
}
.theater-guide-schedule-section #calendar　.fc-scrollgrid-section > td {
  border-radius: 0px 0px 16px 16px !important;
}

.theater-guide-schedule-section #calendar　.fc-scrollgrid-section > th {
  border-radius: 0px 16px 0px 0px !important;
}

.theater-guide-schedule-section #calendar　.fc-scrollgrid {
  border-radius: 16px !important;
}
.theater-guide-schedule-section #calendar thead {
  background-color: #252525;
  color: #fff;
  font-size: 16px;
}
.theater-guide-schedule-section #calendar thead th {
  border: 1px solid #252525;
  height: 56px;
  vertical-align: middle;
}
.theater-guide-schedule-section #calendar {

}
.theater-guide-schedule-section #calendar {

}
.theater-guide-schedule-section #calendar {

}
.theater-guide-schedule-section #calendar {

}
.theater-guide-schedule-section #calendar .fc .fc-button-primary:not(:disabled).fc-button-active {
  background-color: #FF398C;
}
.fc .fc-button-primary:not(:disabled).fc-button-active, .fc .fc-button-primary:not(:disabled):active {
  background-color: #FF398C;
  border: none;
  line-height: 1.2;
}
.fc .fc-button-primary {
  background-color: #BBBBBB;
  border: none;
}
.fc .fc-button-primary:hover {
  background-color: #FF398C;

}
/* Responsive adjustments for info section if needed */
@media (max-width: 768px) {
  .info-content-container {
    flex-direction: column;
    padding: 30px;
  }
  .info-map-column,
  .info-details-column {
    padding-left: 0;
    padding-right: 0;
    flex-basis: 100%; /* Stack columns */
  }
  .info-map-column {
    margin-bottom: 30px; /* Space between map and details when stacked */
  }
  .map-image {
    max-height: 300px;
  }
  .info-theatre-name {
    font-size: 22px;
  }
  .info-ticket-button {
    align-self: stretch; /* Make button full width on mobile */
    text-align: center;
  }
}

/* System Section Styles */
.system-section {
  padding-top: 60px;
  padding-bottom: 80px;
  background: #fdf2f9;
}

.system-section .section-title-sub {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 14px;
  color: #ff398c;
  font-weight: 600;
  letter-spacing: 0.1em;
}

/* Price Cards */
.price-cards-container {
  display: flex;
  justify-content: center;
  gap: 20px; /* Space between cards */
  max-width: 1160px;
  margin: 0 auto 60px auto;
  align-items: stretch; /* flexアイテムの高さを揃える */
}

.price-card {
  background-color: #ffffff;
  border-radius: 16px;
  width: 375px; /* 一般エリアカードの幅を固定 */
  min-width: auto; /* min-widthをリセット */
  display: flex;
  flex-direction: column;
  overflow: hidden;
  padding: 30px;
}
.mvk-group-card {
  flex: 1;
  background-color: #ffffff;
  border-radius: 16px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  padding: 30px;
}

.mvk-group-content {
  display: flex;
  flex-grow: 1; /* 親要素の高さに追従して伸びる */
  gap: 30px;
}

.price-card-half {
  flex: 1;
  display: flex; /* 中の.card-contentを伸縮させるため */
  flex-direction: column;
}
.price-card-half:first-child {
  border-left: none;
}

.card-image-wrapper {
  position: relative;
}

.card-image-wrapper img {
  width: 100%;
  height: 230px;
  border-radius: 8px;
}

.card-badge {
  position: absolute;
  top: 10px;
  left: 10px;
  background-color: #FF88BA;
  color: #ffffff;
  font-size: 12px;
  font-weight: bold;
  padding: 4px 8px;
  border-radius: 4px;
}

.card-content {
  display: flex;
  flex-direction: column;
}

.card-title-bar {
  padding: 12px 0;
  text-align: center;
  border-radius: 8px;
  width: 100%;
  margin: 15px auto 0;
}

.card-title-bar h3 {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 18px;
  color: #ffffff;
  margin: 0;
  font-weight: normal;
}

.standing-title {
  background: linear-gradient(to right, #ff398c, #ff80b5);
}

.mvk-seat-title {
  background: linear-gradient(to right, #39baff, #80d5ff);
}

.speech-mvk-seat-title {
  background: linear-gradient(to right, #c3963d, #f5cb74);
}

.card-price-details {
  text-align: center;
  padding: 15px 0 10px; /* 余白を調整 */
  margin-bottom: 20px;
}

.card-price-details .price {
  font-family: "Hiragino Kaku Gothic Pro";
  font-size: 44px;
  font-weight: bold;
  margin-bottom: 5px;
  line-height: 1;
  display: inline-flex; /* (税込)との位置調整のため */
  align-items: baseline; /* (税込)との位置調整のため */
  gap: 8px;
}
.area-general .price { color: #ff398c; }
.area-mvk .price { color: #39baff; }
.area-speech-mvk .price {
  background: linear-gradient(to right, #c3963d,#f5cb74);
  -webkit-background-clip: text;
  background-clip: text;
  color: transparent;
}
.area-mvk {
  width: 335px;
}

.card-price-details .tax {
  font-size: 14px;
  font-family: 'Noto Sans JP', sans-serif;
  color: #252525;
  font-weight: normal;
}

.card-price-details .drink-note {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: #252525;
  font-weight: 700; /* フォントを太く */
}

.card-features {
  padding: 0 20px 20px 20px;
  flex-grow: 1;
}

.card-features ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.card-features li {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 14px;
  color: #252525;
  padding: 8px 0;
  border-bottom: 1px solid #e8e8e8;
  text-align: center;
}

.card-features li:last-child {
  border-bottom: none;
}

.card-description {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: #252525;
  line-height: 1.7;
  flex-grow: 1;
  margin-bottom: 20px;
  text-align: center;
}

.card-footnote {
  font-size: 12px;
  color: #555;
  line-height: 1.6;
  text-align: center;
}
.card-footnote p {
  margin: 0;
}

/* Performance Content Section */
.performance-content-section {
  max-width: 1160px;
  margin: 60px auto;
}

.performance-title-container {
  text-align: center;
  margin-bottom: 30px;
}

.performance-title {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 32px;
  color: #ff398c;
  font-weight: 600;
  display: block;
  position: relative;
  padding-bottom: 10px;
  border-bottom: 2px solid #FF398C;
}
.performance-title::before,
.performance-title::after {
  display: none;
}


.performance-items-container {
  display: flex;
  justify-content: space-between;
  gap: 60px;
}

.common-performance {
  margin-bottom: 40px;
}

.performance-item {
  text-align: left;
  width: 100%;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  margin-left: 70px;
}

.performance-icon {
  background-color: #ffffff;
  border-radius: 50%;
  width: 132px;
  height: 132px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 20px 0 0;
}

.performance-icon img {
  max-width: 50px;
  max-height: 50px;
}

.performance-text {
  /* No specific styles needed unless for vertical alignment inside */
}

.performance-item-title {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 18px;
  color: #ff398c;
  font-weight: 600;
  margin-bottom: 8px;
  margin-top: 0;
}

.performance-hashtags {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 10px;
  color: #ff398c;
  line-height: 1.5;
  margin: 0;
  display: flex;
  gap: 5px;
  justify-content: flex-start;
  align-items: center;
}
.performance-hashtags span {
  display: inline-block;
  border: 1px solid #fff;
  border-radius: 3px;
  padding: 3px;
}

.limited-performance-wrapper .performance-hashtags {
  background-color: rgba(255,255,255,0.4);
}

.limited-performance-wrapper {
  background-color: #fbddea;
  border-radius: 16px;
  padding: 50px 0;
}

.limited-performance-title {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 26px;
  font-weight: bold;
  color: #ff398c;
  text-align: center;
  margin-bottom: 50px;
}


/* System Note */
.system-note {
  background-color: transparent;
  padding: 30px;
  max-width: 1160px;
  margin: 0 auto;
  text-align: center;
  border: 1px solid #fff;
  border-radius: 20px;
}

.system-note p {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 14px;
  color: #252525;
  margin: 0;
  line-height: 1.7;
}

.view-details-button-container {
  text-align: center;
  margin-top: 50px;
}
.view-details-button-container .btn {
  padding: 20px 30px;
  min-width: auto;
}

.btn-view-details {
  background-color: #ffffff;
  color: #252525;
  border: 1px solid #D9D9D9;
  padding: 18px 28px;
  border-radius: 9999px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  display: inline-block;
  min-width: 320px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.05);
  transition: all 0.3s ease;
}

.btn-view-details:hover {
  background-color: #f5f5f5;
  transform: translateY(-2px);
  box-shadow: 0 6px 12px rgba(0,0,0,0.08);
}


/* Responsive adjustments for price cards and performance items */
@media (max-width: 1200px) {
  .price-cards-container {
    max-width: 90%;
    gap: 20px;
    flex-direction: column; /* 1200px以下で縦積みに変更 */
    align-items: center;
  }
  .price-card {
    width: 100%;
    max-width: 500px;
  }
  .mvk-group-card {
    width: 100%;
    max-width: 500px;
  }
}

@media (max-width: 768px) {
  .system-section {
    padding-top: 40px;
    padding-bottom: 60px;
  }
  .system-section .section-title-main {
    font-size: 36px;
  }
  .price-cards-container {
    flex-direction: column;
    align-items: center;
    gap: 30px;
  }
  .price-card {
    width: 100%;
    max-width: 400px;
  }

  .mvk-group-card {
    width: 100%;
    max-width: 400px;
  }

  .mvk-group-content {
    flex-direction: column;
  }

  .price-card-half {
    border-left: none;
    border-top: 1px solid #f0f0f0;
  }

  .performance-content-section {
    padding: 0 20px;
  }

  .performance-items-container {
    flex-direction: column;
    align-items: center;
    gap: 30px;
  }

  .common-performance {
    margin-bottom: 30px;
  }

  .limited-performance-wrapper {
    padding: 20px;
  }

  .performance-item {
    width: 100%;
  }

  .performance-icon {
    width: 80px;
    height: 80px;
  }
  .performance-icon img {
    max-width: 40px;
    max-height: 40px;
  }

  .system-note {
    max-width: 90%;
  }

  .btn-view-details {
    width: 90%;
    min-width: 0;
  }
}

@media (max-width: 768px) {
  .section-title {
    margin-bottom: 30px;
  }
  .section-title-main {
    padding: 15px 30px;
  }
  .system-section .section-title-main {
    font-size: 36px;
  }
  .price-card {
    width: 100%; /* 1 card per row */
    max-width: 400px; /* Limit width on small screens */
    margin-left: auto;
    margin-right: auto;
  }
  .performance-title {
    font-size: 26px;
  }
  .performance-item {
    flex-basis: 100%; /* 1 item per row */
    max-width: 350px;
    margin-left: auto;
    margin-right: auto;
  }
  .performance-content-section {
    margin-top: 40px;
    margin-bottom: 40px;
  }
  .system-note {
    max-width: 90%;
  }
}

.growth-theater-section {
  background-color: #FF88BA;
  padding: 60px 0;
  position: relative;
  overflow: hidden;
}
.growth-theater-section .section-title-main.en-font {
  color: #fff;
  border-top: 1px solid #FFF;
  border-bottom: 1px solid #FFF;
}

.growth-theater-section::before,
.growth-theater-section::after {
  content: '';
  position: absolute;
  background-image: url('images/2025/img_whats_3.png');
  background-repeat: no-repeat;
  width: 300px; /* Adjust size as needed */
  height: 300px; /* Adjust size as needed */
  opacity: 0.8;
}

.growth-theater-section::before {
  top: 0;
  left: 0;
  background-position: top left;
}

.growth-theater-section::after {
  bottom: 0;
  right: 0;
  background-position: bottom right;
}


.growth-theater-inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 20px;
}

.growth-theater-section .section-title-container {
  margin-bottom: 30px;
}

.growth-theater-section .section-title-main,
.growth-theater-section .section-title-sub {
  color: #ffffff;
}
.growth-theater-section .section-title-main::before,
.growth-theater-section .section-title-main::after {
  background-color: rgba(255, 255, 255, 0.5);
}

.growth-theater-header {
  text-align: center;
  color: #ffffff;
  margin-bottom: 50px;
}

.main-catchcopy {
  font-size: 32px;
  font-weight: 400;
  margin-bottom: 25px;
  line-height: 1.6;
}

.sub-catchcopy {
  font-size: 14px;
  line-height: 1.8;
  font-weight: 300;
}

.growth-contents-wrapper {
  display: flex;
  flex-direction: column;
  gap: 40px;
}

.growth-content-card {
  background-color: #ffffff;
  border-radius: 30px;
  padding: 40px;
  display: flex;
  gap: 40px;
  align-items: center;
  position: relative;
  overflow: hidden;
}

.card-bg-deco-tl,
.card-bg-deco-br {
  position: absolute;
  width: 80px; /* Adjust size as needed */
  height: auto;
  z-index: 0;
  opacity: 0.5;
}
.card-bg-deco-tl {
  top: 20px;
  left: 20px;
}
.card-bg-deco-br {
  bottom: 20px;
  right: 20px;
  transform: rotate(180deg);
}

.card-image-column {
  flex: 0 0 280px; /* 画像の幅を固定 */
  align-self: flex-start; /* 画像をカードの上端に合わせる */
  position: relative;
  z-index: 1;
}
.card-image-column img {
  width: 100%;
  height: auto;
  display: block;
}

.card-text-column {
  flex: 1;
  position: relative;
  z-index: 1;
}

.card-title-group {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  margin-bottom: 20px;
}
.card-text-column .btn {
  border-radius: 12px;
}
.main-contents-label {
  font-family: 'Teko', sans-serif;
  font-size: 14px;
  color: #FF88BA;
  line-height: 1.2;
  font-weight: 500;
  letter-spacing: 0.05em;
}
.main-contents-number {
  font-family: 'Teko', sans-serif;
  font-size: 48px;
  color: #FFD4E6;
  line-height: 1;
  margin-right: 12px; /* スラッシュとの間隔 */
}

.title-divider {
  height: 60px; /* Adjust as needed */
  width: auto;
  margin-right: 12px;
}

.card-title-group::after {
  content: none;
}

.card-main-title {
  font-size: 24px;
  font-weight: bold;
  color: #FF88BA;
  line-height: 1.4;
  margin-top: 5px; /* 上の位置調整 */
}

.card-description {
  font-size: 14px;
  line-height: 1.8;
  color: #333333;
  margin-bottom: 30px;
  font-weight: 300;
  text-align: left;
}

.btn-card-detail {
  display: inline-block;
  background-color: #ffffff;
  color: #252525;
  border: 1px solid #D1D5DB;
  padding: 12px 30px;
  border-radius: 30px;
  font-size: 14px;
  font-weight: bold;
  text-decoration: none;
  transition: all 0.3s ease;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
}

.btn-card-detail:hover {
  background-color: #f3f4f6;
  color: #000000;
  border-color: #9CA3AF;
  box-shadow: 0 6px 15px rgba(0, 0, 0, 0.1);
  transform: translateY(-2px);
}


/* Section Divider Triangle */
.section-divider-triangle {
  width: 0;
  height: 0;
  border-left: 60px solid transparent; /* Adjust size as needed */
  border-right: 60px solid transparent;
  border-top: 40px solid #FF88BA; /* Color of the .growth-theater-section */
  margin: 0 auto; /* Center the triangle */
  margin-bottom: -40px; /* Pulls the next section up by the height of the triangle */
  position: relative;
  z-index: 20; /* Ensure it's above the MY PAGE section content */
}


/* MY PAGE Section Styles */
.mypage-section {
  background-color: #063D5B; /* Dark blue from image */
  padding: 90px 0 80px;
  color: #ffffff;
  position: relative;
  overflow: hidden; /* To contain sparkles */
  z-index: 10; /* Lower than the triangle */
}
.mypage-inner {
  max-width: 960px;
  margin: 0 auto;
  padding: 0 20px;
}

.mypage-section .section-title-container {
  margin-bottom: 20px;
}
.mypage-section .section-title-main,
.mypage-section .section-title-sub {
  color: #ffffff;
}
.mypage-section .section-title-main::before,
.mypage-section .section-title-main::after {
  background-color: #ffffff;
}
.mypage-section .section-title-main.en-font {
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
  color: #fff;
}

.mypage-header {
  text-align: center;
  margin-bottom: 40px;
}
.mypage-catchcopy {
  font-size: 24px;
  font-weight: bold;
  line-height: 1.6;
}

.features-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 30px;
  margin-bottom: 60px;
}
.feature-item {
  text-align: center;
}
.feature-icon {
  width: 80px;
  height: 80px;
  background-color: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 15px;
}
.feature-icon img {
  width: 40px;
  height: 40px;
}
.feature-title {
  font-size: 18px;
  font-weight: bold;
  margin-bottom: 10px;
}
.feature-description {
  font-size: 14px;
  line-height: 1.6;
}

.points-guide-wrapper {

}
.points-guide-title {
  font-size: 20px;
  font-weight: bold;
  text-align: center;
  margin-bottom: 30px;
}
.points-steps-container {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin-bottom: 40px;
}
.point-step {
  background-color: #0A537E;
  border-radius: 20px;
  padding: 25px;
  text-align: center;
  flex: 1;
}
.step-number {
  font-family: 'Teko', sans-serif;
  font-size: 24px;
  display: block;
  margin-bottom: 10px;
}
.step-title {
  font-size: 16px;
  font-weight: bold;
  margin-bottom: 10px;
}
.step-description {
  font-size: 12px;
  line-height: 1.5;
}
.points-conversion-info {
  text-align: center;
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  padding: 20px 0;
  margin-bottom: 20px;
  display: flex;
  justify-content: center;
  align-items: baseline;
  gap: 40px;
  font-size: 18px;
  font-weight: 500;
}
.points-conversion-info p {
  display: flex;
  align-items: baseline;
  gap: 15px;
  position: relative;
  padding: 0 20px;
}
.points-conversion-info p:not(:last-child)::after {
  content: '';
  position: absolute;
  right: -20px; /* gapの半分 */
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 80%;
  background-color: rgba(255, 255, 255, 0.2);
}

.point-amount {
  font-family: 'Teko', sans-serif;
  font-size: 36px;
  font-weight: bold;
  margin: 0 5px;
}
.points-footnote {
  text-align: center;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.8);
}
.points-footnote p {
  margin: 0;
  line-height: 1.6;
}

.mypage-action-container {
  text-align: center;
  margin-top: 50px;
}
.mypage-action-container .btn {
  padding: 22px 28px;
  border-radius: 12px;
  display: flex;
  margin: 0 auto;
  width: 280px;
  justify-content: center;
}

.btn-mypage-register {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  background-color: #ffffff;
  color: #063D5B;
  padding: 15px 40px;
  border-radius: 30px;
  font-size: 16px;
  font-weight: bold;
  text-decoration: none;
  box-shadow: 0 5px 10px rgba(0,0,0,0.2);
  transition: all 0.3s ease;
}
.btn-mypage-register:hover {
  background-color: #f0f0f0;
  transform: translateY(-2px);
  box-shadow: 0 8px 15px rgba(0,0,0,0.3);
}
.btn-mypage-register img {
  width: 16px;
  height: 16px;
}

.mypage-button:hover {
  background-color: #f0f0f0;
}
@media (max-width: 768px) {
  .growth-content-card {
    flex-direction: column;
    padding: 20px;
  }
  .card-image-column {
    flex-basis: auto;
    width: 100%;
    max-width: 200px;
  }
  .card-title-group {
    flex-wrap: wrap;
    justify-content: center;
    text-align: center;
  }
  .card-main-title {
    width: 100%;
    margin-top: 10px;
  }
  .card-text-column {
    text-align: center;
  }

  .mypage-content-container {
    flex-direction: column;
    align-items: center;
    max-width: 350px;
    margin-bottom: 30px;
  }
}
/* Sparkle animations for MY PAGE */
.sparkle {
  position: absolute;
  width: 10px;
  height: 10px;
  background-color: rgba(255, 255, 255, 0.7);
  border-radius: 50%;
  animation: sparkle-animation 3s infinite ease-in-out;
  opacity: 0;
}

.sparkle-1 { top: 10%; left: 15%; animation-delay: 0s; width: 8px; height: 8px;}
.sparkle-2 { top: 70%; left: 10%; animation-delay: 0.5s; width: 12px; height: 12px;}
.sparkle-3 { top: 25%; left: 85%; animation-delay: 1s; width: 6px; height: 6px;}
.sparkle-4 { top: 80%; left: 90%; animation-delay: 1.5s; width: 10px; height: 10px; }
/* Add more if needed */

@keyframes sparkle-animation {
  0%, 100% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1.2); }
}


/* Responsive adjustments for growth theater and mypage */
@media (max-width: 992px) {
  .growth-points-container {
    flex-direction: column;
    gap: 30px;
  }
  .growth-point-column {
    flex-basis: 100%;
    align-items: center; /* Center point label with box on smaller screens */
  }
  .growth-content-box::before {
    /* Adjust or hide triangle on smaller screens if layout breaks */
    left: 50%;
    top: -15px;
    transform: translateX(-50%) rotate(-45deg); /* Pointing upwards */
    clip-path: polygon(0% 100%, 100% 100%, 50% 0%);
  }

  .mypage-content-container {
    flex-direction: column;
    align-items: center;
  }
  .mypage-feature-item {
    flex-basis: 80%;
    max-width: 350px;
    margin-bottom: 30px;
  }
}

@media (max-width: 768px) {
  .growth-banner p {
    font-size: 28px;
  }
  .point-label .point-number {
    font-size: 60px;
  }
  .growth-box-title {
    font-size: 20px;
  }
  .mypage-feature-title {
    font-size: 20px;
  }
}

@media (max-width: 480px) {
  .growth-banner p {
    font-size: 24px;
  }
  .point-label {
    flex-direction: row;
    align-items: baseline;
    gap: 10px;
    padding-top: 0;
    margin-bottom: 10px;
  }
  .point-label .point-number {
    font-size: 40px;
  }
  .growth-content-box::before {
    display: none; /* Hide complex triangle on very small screens */
  }
}

/* Important Notesセクションのスタイル */
.important-notes-section {
  background-color: #FFF0F5; /* 薄いピンクの背景 */
  padding: 88px 0;
  position: relative;
  overflow: hidden; /* キラキラがはみ出ないように */
  background-image: repeating-linear-gradient(
          45deg,
          rgba(255, 255, 255, 0.05),
          rgba(255, 255, 255, 0.05) 20px,
          transparent 20px,
          transparent 40px
  );
}

.important-notes-section .section-inner {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 20px;
  position: relative; /* キラキラの位置調整のため */
}

.important-notes-section .section-title-container {
  text-align: center;
  margin-bottom: 40px;
}

.important-notes-title {
  font-family: 'Times New Roman', Times, serif; /* 既存の英語タイトルフォント */
  font-size: 48px; /* Figma画像を参考に調整 */
  color: #FF398C; /* メインのピンク色 */
  font-weight: bold;
  padding-bottom: 10px;
  margin-bottom: 10px;
  position: relative;
  display: inline-block; /* 中央揃えのため */
}

.important-notes-title::before,
.important-notes-title::after {
  content: '';
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 150%; /* 線の長さを調整 */
  max-width: 300px; /* 最大幅 */
  height: 2px;
  background-color: #FF398C;
}

.important-notes-title::before {
  top: -10px; /* 上線の位置調整 */
}

.important-notes-title::after {
  bottom: -5px; /* 下線の位置調整 */
}

/* 上下二重線にするための追加スタイル */
.important-notes-title::before {
  box-shadow: 0 -3px 0 #FF398C;
}
.important-notes-title::after {
  box-shadow: 0 3px 0 #FF398C;
}


.important-notes-subtitle {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif; /* 既存の日本語フォント */
  font-size: 12px; /* Figma画像を参考に調整 */
  color: #FF398C;
  font-weight: 600;
  letter-spacing: 1.2px; /* 既存のサブタイトルに合わせる */
}

.notes-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  position: relative;
  z-index: 1; /* カードが背景より手前に来るように */
}

.note-card {
  background-color: #FFFFFF;
  border-radius: 16px; /* 角丸 */
  padding: 32px;
  box-shadow: 0px 8px 16px rgba(0, 0, 0, 0.1); /* 影 */
}

.note-card h3 {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 18px;
  color: #FF398C;
  font-weight: 600;
  margin-bottom: 20px;
}

.note-card ul {
  list-style: none;
  padding-left: 0;
}

.note-card ul li,
.note-card p {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 14px;
  color: #252525; /* 黒色 */
  line-height: 1.8;
  margin-bottom: 8px;
  padding-left: 1.2em; /* アイコン分のスペース */
  position: relative;
}
.note-card p {
  padding-left: 0;
}

.note-card ul li::before {
  content: '•'; /* ビュレットポイント */
  color: #000; /* ピンク色のビュレット */
  font-weight: bold;
  display: inline-block;
  position: absolute;
  left: 0;
  top: 0;
}

/* キラキラのアクセント (既存のものを参考に調整) */
.important-notes-section::before,
.important-notes-section::after {
  content: '';
  position: absolute;
  width: 100px; /* サイズ調整 */
  height: 100px; /* サイズ調整 */
  background-image: url('img/bg_star_frame_left_top.svg'); /* 仮で左上のものを利用、適切なSVGがあれば変更 */
  background-size: contain;
  background-repeat: no-repeat;
  z-index: 0;
  opacity: 0.7;
}

.important-notes-section::before {
  top: 50%;
  left: 20px; /* 位置調整 */
  transform: translateY(-50%) rotate(-45deg); /* 角度調整 */
}

.important-notes-section::after {
  top: 50%;
  right: 20px; /* 位置調整 */
  transform: translateY(-50%) rotate(135deg); /* 角度調整 */
}

.important-notes-section .frame-svg.right-bottom {
  right: -30px;
  bottom: -30px;
  transform: rotate(90deg); /* 右下は90度回転 */
}

/* Footer Styles */
footer {
  background-color: #070A27; /* Figma画像よりフッターの背景色 */
  color: #ffffff;
  padding: 88px 0;
}

.footer-inner {
  max-width: 1536px; /* Figma画像より、フッター内容の最大幅 */
  margin: 0 auto;
  padding: 0 16px; /* 左右のパディング */
}

.footer-logo {
  font-family: 'A-OTF Gothic MB101 Pr5', sans-serif; /* Figma指定のフォントに近いもの */
  font-size: 28px;
  font-weight: bold; /* Pr5 DBのDBはBoldと解釈 */
  margin-bottom: 28px; /* Figma画像よりロゴとリンク間のマージン */
  letter-spacing: 1.12px; /* Figmaより */
}

.footer-links-container {
  display: flex;
  justify-content: space-between;
  flex-wrap: wrap; /* 画面幅が狭い場合に折り返す */
  margin-bottom: 28px; /* Figma画像よりリンクと下部SNS/コピーライト間のマージン */
}

.footer-links-column {
  margin-bottom: 20px; /* 折り返し時の下のマージン */
}
.footer-links-column.site-map-column {
  width: 50%;
}
.footer-links-column.site-map-column .footer-link-block-inner {
  width: 50%;
}
.footer-links-column.groups-column,
.footer-links-column.follow-us-column {
  width: 25%;
}


.footer-links-column h4 {
  font-family: 'Crimson Text', serif;
  font-weight: bold;
  font-size: 18px; /* Figma画像より */
  color: #ff398c; /* SITE MAP, GROUPs, FOLLOW US のタイトルの色 */
  margin-bottom: 16px;
}

.footer-links-column ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.footer-links-column ul li {
  margin-bottom: 16px; /* Figma画像よりリストアイテム間のマージン */
}

.footer-links-column ul li:last-child {
  margin-bottom: 0;
}

.footer-links-column ul li a {
  font-family: 'Crimson Text', serif; /* 通常のリンクテキストフォント */
  font-size: 16px; /* Figmaの本文フォントサイズに近いもの */
  color: #ffffff;
  text-decoration: none;
  display: flex; /* アイコンとテキストを横並びにするため */
  align-items: center; /* アイコンとテキストを縦中央揃え */
}

.footer-links-column ul li a:hover {
  text-decoration: underline;
}

.external-link-icon {
  width: 12px;
  height: 12px;
  margin-left: 4px;
}

.footer-links-column .visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* FOLLOW USのアイコン付きリンク */
.footer-links-column ul li a img {
  width: 16px; /* Figma画像よりアイコンサイズ */
  height: 16px;
}

.footer-social-and-copyright {
  display: flex;
  flex-direction: column; /* まず縦に並べる */
  align-items: center; /* 中央揃え */
  padding-top: 28px; /* 上の要素との間にパディング */
}

.footer-social-icons {
  display: flex;
  gap: 30px; /* アイコン間の隙間 */
  margin-bottom: 20px; /* コピーライトとのマージン */
}

.footer-social-icons a img {
  width: 20px; /* Figma画像より少し大きめにして視認性確保 */
  height: 20px;
}

.copyright {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 12px;
  color: #ffffff;
  text-align: center;
}

/* レスポンシブ調整例：タブレットサイズなど */
@media (max-width: 1024px) {
  .footer-links-column {
    width: calc(50% - 12px); /* 2列レイアウトに変更 */
  }
}
#wpadminbar {
  display: none;
}
/* レスポンシブ調整例：モバイルサイズなど */
@media (max-width: 768px) {
  .footer-links-container {
    flex-direction: column; /* 1列レイアウトに変更 */
    align-items: center; /* 中央揃え */
    margin-bottom: 0;
  }
  .footer-links-column {
    width: 100%; /* 幅を100%に */
    text-align: center; /* テキストも中央揃え */
    margin-bottom: 30px;
  }
  .footer-links-column ul li a {
    justify-content: center; /* リンク内のアイテムも中央揃え */
  }
  .footer-social-and-copyright {
    align-items: center;
  }
  .footer-social-and-copyright {
    padding-top: 0;
  }
}

/* Top Page Specific Styles */

/* HERO Section for Top Page */
.hero-section {
  position: relative;
  width: 100%;
  background-color: #FFEDFA; /* Figmaの背景色 */
  background-image: url('images/2025/bg_main.png');
  background-size: 100% auto;
  background-position: center top;
  background-repeat: no-repeat;
  padding-bottom: 100px;
}

.hero-background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  z-index: 1;
}
.hero-main-mv {
  width: auto;
  max-width: 100%;
  max-height: 800px;
  margin: 100px auto 0;
  border-top-right-radius: 200px;
  border-top-left-radius: 200px;
  border-bottom-left-radius: 30px;
  border-bottom-right-radius: 30px;
}

.hero-content-wrapper {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center; /* 要素を中央に配置 */
  padding-top: 50px; /* おおよそのヘッダー高さ + 余白 */
  padding-bottom: 80px; /* スクロールインジケーターのスペース + 余白 */
  width: 80%;
  margin: 0 auto;
}

.hero-main-image-container {
  position: relative;
  display: inline-block; /* ロゴを重ねるため */
}

.hero-main-image {
  display: block;
  object-fit: cover;
}

.hero-main-logo {
  position: absolute;
  top: 10%;
  left: 50%;
  transform: translate(-50%, -50%);
  z-index: 3;
}

.official-shop-frame-left-top,
.official-shop-frame-right-bottom {
  position: absolute;
  z-index: 0; /* メイン画像よりは手前、ロゴよりは奥など調整 */
}
.hero-frame-left-bottom,
.hero-frame-right-bottom {
  position: absolute;
  z-index: 2; /* メイン画像よりは手前、ロゴよりは奥など調整 */
}

/* PC Styles for Hero Section */
@media (min-width: 769px) {

  .hero-section {
    padding-bottom: 100px;
  }


  .hero-content-wrapper {
    /* PCではより大きなパディングや、特定の位置調整が必要な場合 */
    padding-top: 120px; /* ヘッダー高さ94px + 上部余白 */
    padding-bottom: 20px; /* 下部余白 */
  }

  .hero-main-image {
    width: 1600px; /* Figmaのサイズ */
    height: 786px; /* Figmaのサイズ */
    border-radius: 120px 120px 20px 20px; /* Figmaの角丸 */
  }

  .hero-main-logo {
    width: 341px; /* Figmaのサイズ */
    height: auto;
  }

  .hero-frame-left-bottom {
    width: 264px; /* Figmaのサイズ */
    height: auto;
    left: -40px;
    bottom: -40px;
  }


  .hero-frame-right-bottom {
    width: 264px; /* Figmaのサイズ */
    height: auto;
    right: -40px;
    bottom: -40px;
  }
  .official-shop-frame-left-top {
    width: 264px; /* Figmaのサイズ */
    height: auto;
    left: -40px;
    top: -40px;
  }
  .official-shop-frame-right-bottom {
    width: 264px; /* Figmaのサイズ */
    height: auto;
    right: -40px;
    bottom: -40px;
  }
  .scroll-indicator {
    text-align: center;
    color: #FF398C; /* Figmaから */
    font-family: 'Crimson Text', serif;
    font-weight: 600;
    font-size: 14px;
    letter-spacing: 2.8px;
    z-index: 3;
    margin-top: 10px;
  }

  .scroll-indicator p {
    margin: 0 0 10px 0;
  }

  .scroll-indicator span {
    display: block;
    width: 6px; /* Figmaから */
    height: 6px; /* Figmaから */
    background-color: #FF398C;
    border-radius: 50%;
    margin: 0 auto;
  }
}
.hero-main-logo {
  display: block;
}
.hero-main-logo-sp {
  display: none;
}
.hero-frame-left-bottom-sp,
.hero-frame-right-bottom-sp {
  display: none;
}
/* SP Styles for Hero Section */
@media (max-width: 768px) {
  .hero-section {
    padding-top: 52px; /* SPヘッダーの高さ */
    height: auto; /* SPではコンテンツに高さを合わせる */
    background-image: url('images/2025/bg_main_sp.png'); /* 背景フレームはCSSで読み込む場合 */
    background-position: center -4px;

  }
  .hero-main-mv {
    position: absolute;
    top: 10%;
    left: 50%;
    transform: translateX(-50%);
    min-width: 80%;
    max-width: none;
    height: 90%;
    z-index: 1;
    margin-top: 0;
  }
  .hero-main-logo {
    display: none;
  }
  .hero-main-logo-sp {
    display: block;
    width: 60%;
    position: absolute;
    left: 50%;
    top: 0;
    transform: translateX(-50%);
    z-index: 10;
  }


  .hero-content-wrapper {
    padding-top: 40px; /* SPデザインに合わせた上部余白 */
    padding-bottom: 3vh; /* SPデザインに合わせた下部余白 */
    position: relative;
  }

  .hero-main-image-container {
    width: 100%; /* 左右に40pxずつの余白を想定 (295px / 375px) */
    margin: 0 auto 0;
    position: relative;
    height: 60vh;
    overflow: hidden;
  }
  .hero-main-image {
    width: 100%;
    height: auto; /* アスペクト比を保つ */
    border-radius: 147.5px 147.5px 8.9px 8.9px; /* SP版Figmaの角丸に近い値 */
  }

  .hero-main-logo {
    width: 50%;
    height: auto;
    top: -15%;
  }
  .hero-frame-left-bottom,
  .hero-frame-right-bottom {
    display: none;
  }

  .hero-frame-left-bottom-sp {
    width: 40%;
    height: auto;
    bottom: 0px;
    left: -30px;
  }
  .hero-frame-left-bottom-sp,
  .hero-frame-right-bottom-sp {
    display: block;
    position: absolute;
    z-index: 2; /* メイン画像よりは手前、ロゴよりは奥など調整 */
  }

  .hero-frame-right-bottom-sp {
    width: 40%;
    height: auto;
    bottom: 0px;
    right: -30px;
  }

  .scroll-indicator {
    position: relative; /* SPでは静的配置またはrelativeで調整 */
    padding-top: 20px; /* 上の要素からの間隔 */
    padding-bottom: 30px; /* 下の要素への間隔 */
    text-align: center;
    color: #FF398C;
    font-family: 'Crimson Text', serif;
    font-weight: 600;
    font-size: 10px; /* SP用フォントサイズ */
    letter-spacing: 2px; /* SP用文字間隔 */
    z-index: 3;
  }
  .scroll-indicator p {
    margin: 0 0 8px 0;
  }

  .scroll-indicator span {
    display: block;
    width: 5px; /* SP用サイズ */
    height: 5px; /* SP用サイズ */
    background-color: #FF398C;
    border-radius: 50%;
    margin: 0 auto;
  }
}

/* Section Title General Style */
.section-title-container {
  text-align: center;
  margin-bottom: 40px;
}

.section-title-main.en-font {
  font-family: 'Crimson Text', serif; /* Crimson Textを指定の箇所に */
  font-size: 48px;
  color: #FF398C;
  font-weight: 600; /* SemiBold */
  margin-bottom: 10px;
  border-top: 1px solid #FF398C;
  border-bottom: 1px solid #FF398C;
  display: inline-block;
  padding: 5px 30px;
}

.section-title-sub {
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 12px;
  color: #FF398C;
  font-weight: 600;
  letter-spacing: 0.1em;
}

/* TOPICS Section */
.topics-section {
  background-color: #ffedfa; /* Figma: bg-[#ffedfa] */
  padding: 88px 0; /* PC: py-[88px], SP: pt-7 pb-12. Let's use PC for general and adjust for SP. */
}


.topics-title .section-title-main {
  font-size: 48px; /* PC: text-[48px] */
  line-height: 1; /* Adjust as needed */
  /* Border styles are already in common .section-title-main */
}

.topics-title .section-title-sub {
  font-size: 12px; /* PC: text-[12px] */
  letter-spacing: 1.2px; /* PC: tracking-[1.2px] */
  margin-top: 20px; /* PC: gap-5 between title and subtitle parts */
}

.topics-slider-wrapper {


}

.topics-slider {


}

.topic-card {
  flex-shrink: 0;
  background-color: #ffffff; /* Card background, though image covers it */
  border-radius: 15px; /* PC: rounded-[15px] */
  box-shadow: 0px 12.5px 18.75px -3.75px rgba(0,0,0,0.1), 0px 5px 7.5px -5px rgba(0,0,0,0.1); /* PC shadow */
  overflow: hidden; /* Ensure image respects border-radius */
  position: relative; /* For positioning content and gradient */
  text-decoration: none;
  color: inherit;
  display: block;
}

.topic-card a {
  display: block;
  text-decoration: none;
  color: #ffffff; /* Text color on gradient */
}

.topic-card-image-wrapper {
  position: relative;
}

img.topic-card-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.topic-card-gradient {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%; /* Adjust as needed to match Figma's gradient extent */
  background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.5) 40%, transparent 100%);
  z-index: 1;
}

.topic-card-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 20px; /* Adjust padding as per Figma */
  z-index: 2;
  color: #ffffff;
}

.topic-card-title {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 600; /* W6 */
  font-size: 20px; /* Example, adjust from Figma SP: 14px leading 22px */
  line-height: 1.4;
  margin: 0 0 8px 0;
}

.topic-card-date {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 300; /* W3 */
  font-size: 12px;
  opacity: 0.8;
}


/* Slider Controls */
.topics-slider-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px; /* PC: gap-5 (20px) between arrows and pagination block */
  margin-top: 32px; /* PC: gap-8 from card container to controls */
}

.slider-arrow {
  background-color: #ffffff;
  border-radius: 50%; /* Figma: rounded-[9999px] */
  width: 40px;  /* PC & SP: size-10 */
  height: 40px; /* PC & SP: size-10 */
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  box-shadow: 0px 4px 6px -1px rgba(0,0,0,0.1), 0px 2px 4px -2px rgba(0,0,0,0.1); /* PC & SP shadow */
  cursor: pointer;
  padding: 0; /* Remove default padding */
}

.slider-arrow img {
  width: 24px;  /* PC & SP: size-6 in Figma for SVG container */
  height: 24px;
}

.slider-pagination {
  display: flex;
  align-items: center;
  gap: 8px; /* PC: gap-2 (8px) between dots */
}

.pagination-dot {
  border: none;
  padding: 0;
  cursor: pointer;
  transition: all 0.3s ease;
}

.pagination-dot.active {
  width: 24px;
  height: 12px;
  border-radius: 6px; /* Pill shape (half of height) */
  background-color: #FF398C;
}

.pagination-dot:not(.active) {
  width: 12px;
  height: 12px;
  border-radius: 50%; /* Circle */
  background-color: #ffffff;
  border: 1px solid #FFC0D9; /* Light pink border for visibility */
}

/* PC Specific Styles for Topic Cards */
@media (min-width: 769px) {
  .topic-card {
    width: 600px; /* PC: w-[600px] */
    height: 400px; /* PC: h-[400px] */
  }
  /* If slider shows 3 items, the wrapper might need adjustment */
  /* .topics-slider-wrapper { max-width: (600*3 + 16*2)px for example } */
}


/* SP Specific Styles */
@media (max-width: 768px) {
  .topics-section {
    padding: 28px 0 48px 0; /* SP: pt-7 (28px) pb-12 (48px) */
  }

  .topics-section .container {
    padding: 0; /* Adjust container padding for SP */
  }

  .topics-title .section-title-sub {
    margin-top: 12px; /* SP: gap-3 */
  }

  .topics-slider-wrapper {
    margin-top: 20px; /* SP: From title to card list, appears smaller than PC's gap-12 */
    /* For SP, we want one card centered, with others peeking. This needs careful overflow and possibly negative margins on children. */
  }

  .topics-slider {
    /* To achieve the "center" effect for SP, the slider might need padding that pushes the first item to center */
    /* Example: if card width is 318px and screen is 375px, padding left = (375-318)/2 = ~28px */
    /* This depends on how many items are loaded and how JS handles scrolling */
    /* For now, maintain flex start and allow JS to position */
    padding: 0; /* Remove PC padding, or adjust for SP centering illusion */
    justify-content: flex-start; /* Or center if only one primary item is shown and slider width is 100vw */
    gap: 16px; /* SP: gap-4 (16px) */
  }

  .topic-card {
    width: 318px;  /* SP: w-[318px] */
    height: 212px; /* SP: h-[212px] */
    border-radius: 12px; /* SP: rounded-xl (typically 12px or 0.75rem) */
    /* Shadow for SP is slightly different in Figma: shadow-[0px_10px_15px_-3px_rgba(0,0,0,0.1),0px_4px_6px_-4px_rgba(0,0,0,0.1)] */
    box-shadow: 0px 10px 15px -3px rgba(0,0,0,0.1), 0px 4px 6px -4px rgba(0,0,0,0.1);
  }

  .topic-card-content {
    padding: 16px; /* SP: p-4 */
  }
  .topic-card-title {
    font-size: 14px; /* SP: text-[14px] */
    line-height: 1.5; /* SP: leading-[22px] implies 22/14 = ~1.57 */
  }
  .topic-card-date {
    font-size: 12px;
  }


  .topics-slider-controls {
    margin-top: 20px; /* SP: gap-5 (20px) from cards to controls */
    gap: 16px; /* SP: gap-4 (16px) between arrows and pagination */
  }

  /* Arrow and pagination dot styles are largely the same as PC from Figma, just ensure they fit */
  .slider-pagination {
    gap: 8px; /* SP: gap-2 (8px) */
  }
}

/* THEATRE GUIDE Section for Top Page */
.theatre-guide-section-top {
  padding: 90px 0;
  background-color: #ffffff; /* 白ベースを維持 */
  background-image: linear-gradient(
          135deg, /* 斜線を「右上がり」(/ の向き) に変更 */
          rgba(239, 61, 136, 0.1) 25%,
          transparent 25%,
          transparent 50%,
          rgba(239, 61, 136, 0.1) 50%,
          rgba(239, 61, 136, 0.1) 75%,
          transparent 75%,
          transparent
  );
  background-size: 30px 30px;
  position: relative;
  /* 既存の ::before, ::after は content: none; で対応済み */
}

/* Remove or adjust existing ::before and ::after for theatre-guide-section-top if they draw borders/decorations not needed with the new background */
.theatre-guide-section-top::before,
.theatre-guide-section-top::after {
  content: none; /* Or adjust as needed */
}

.theatre-guide-content {
  display: flex;
  background-color: #ffffff;
  border-radius: 12px;
  padding: 0; /* UPDATED: Remove padding, will be handled by children */
  max-width: 1000px; /* Adjust as needed */
  margin: 0 auto;
  box-shadow: 0 4px 15px rgba(0,0,0,0.1);
  gap: 0; /* UPDATED: Remove gap, spacing handled by text padding */
  overflow: hidden; /* ADDED: To clip child image to border-radius */
}

.theatre-guide-image {
  width: 360px; /* UPDATED: Fixed width for the image */
  /* max-width: 400px; /* REMOVED */
  height: auto; /* Keep for aspect ratio, align-self will manage height */
  object-fit: cover;
  /* border-radius: 8px; /* REMOVED: Parent overflow:hidden will handle clipping */
  align-self: stretch; /* ADDED: To make image fill height of flex container */
  border-radius: 0; /* Ensure no self-radius */
}

.theatre-guide-text {
  /* width: 60%; /* REMOVED */
  flex: 1; /* ADDED: To take remaining space */
  display: flex;
  flex-direction: column;
  padding: 40px; /* ADDED: Internal padding for text content */
}

.theatre-guide-text h3 {
  font-size: 28px;
  color: #EF3D88; /* Pink color */
  margin-top: 0;
  margin-bottom: 25px;
  font-weight: bold;
}

.theatre-guide-info-item {
  display: flex; /* Align icon and text content horizontally */
  align-items: flex-start; /* Align items to the top */
  margin-bottom: 20px;
}

.info-item-icon { /* New class from HTML edit */
  width: 20px; /* Adjust as needed */
  height: 20px; /* Adjust as needed */
  margin-right: 15px; /* Space between icon and text content */
  flex-shrink: 0; /* Prevent icon from shrinking */
}

.info-item-text-content { /* New class from HTML edit */
  flex-grow: 1; /* Allow text content to take remaining space */
}

.info-item-heading { /* New class from HTML edit for subheadings */
  font-size: 16px; /* Adjust as needed */
  color: #EF3D88; /* Pink color */
  margin-top: 0;
  margin-bottom: 5px; /* Space below subheading */
  font-weight: bold;
}

.theatre-guide-info-item p {
  font-size: 14px;
  line-height: 1.6;
  color: #333;
  margin-top: 0; /* Remove default top margin */
  margin-bottom: 0; /* Remove default bottom margin for paragraphs inside info-item-text-content */
}

.theatre-guide-buttons {
  margin-top: auto; /* Pushes buttons to the bottom of the flex container */
  display: flex;
  gap: 15px; /* Space between buttons */
  padding-top: 20px; /* Space above buttons */
}

.theatre-guide-buttons .btn {
  padding: 12px 25px; /* Adjust padding for better look */
  font-size: 14px;
  text-align: center;
  border-radius: 25px; /* Rounded buttons */
  font-weight: bold;
  text-decoration: none;
  display: inline-block;
  border: 2px solid transparent; /* Prepare for border on secondary */
}

.theatre-guide-buttons .btn-primary {
  background-color: #EF3D88; /* Pink background */
  color: #ffffff; /* White text */
}

.theatre-guide-buttons .btn-primary:hover {
  background-color: #d83075; /* Darker pink on hover */
}

.theatre-guide-buttons .btn-secondary {
  background-color: #ffffff; /* White background */
  color: #EF3D88; /* Pink text */
  border-color: #EF3D88; /* Pink border */
}

.theatre-guide-buttons .btn-secondary:hover {
  background-color: #fff0f6; /* Very light pink on hover */
  color: #d83075; /* Darker pink text on hover */
  border-color: #d83075; /* Darker pink border on hover */
}

/* SCHEDULE Section Top */
.schedule-section-top {
  background-color: #FF88BA; /* Figmaの背景色 */
  padding-bottom: 88px;
  position: relative;
}

.schedule-placeholder, .member-placeholder, .groups-placeholder, .mv-placeholder, .sns-placeholder, .official-shop-placeholder {
  text-align: center;
  padding: 50px;
  color: #fff; /* Placeholder text color on dark bg */
  font-size: 18px;
  border: 2px dashed #fff; /* Placeholder border on dark bg */
  max-width: 1160px;
  margin: 0 auto 40px auto;
}

.member-section-top .member-placeholder,
.groups-section-top .groups-placeholder,
.official-shop-section-top .official-shop-placeholder {
  color: #252525;
  border-color: #FF398C;
}


.view-calendar-button-container,
.view-all-button-container,
.view-youtube-button-container,
.view-shop-button-container {
  text-align: center;
}

.schedule-section-top .btn-secondary,
.news-section-top .btn-secondary,
.member-section-top .btn-secondary,
.mv-section-top .btn-secondary {
  background-color: #fff;
  color: #252525;
  border: 1px solid #D9D9D9; /* Figmaのボタン枠線 */
  padding: 18px 28px;
  border-radius: 9999px;
  font-family: 'Noto Sans JP', sans-serif;
  font-size: 16px;
  font-weight: 700;
  text-decoration: none;
  display: inline-block;
}

.schedule-section-top .section-title-main.en-font,
.schedule-section-top .section-title-sub {
  color: #fff; /* SCHEDULEタイトルは白 */
  border-top-color: #fff;
  border-bottom-color: #fff;
}

/* NEWS Section Top */
.news-section-top {
  background-color: #FFE0EE; /* Figmaの背景色 */
  padding-bottom: 88px;
  position: relative;
  overflow: hidden; /* For decorative elements */
}

.news-list-top {
  list-style: none;
  padding: 0;
  max-width: 800px; /* Figmaのリスト幅 */
  margin: 0 auto 30px auto;
}

.news-list-top li {
  background-color: #fff;
  border-radius: 12px; /* Figmaの角丸 */
  box-shadow: 2px 2px 2px rgba(0,0,0,0.05); /* Figmaの影 */
  margin-bottom: 14px;
}

.news-list-top li a {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 28px 48px; /* Figmaのパディング */
  text-decoration: none;
  color: #252525;
  font-family: 'Noto Sans JP', sans-serif;
}

.news-list-top li a span {
  font-size: 12px;
  color: #888;
  margin-right: 20px; /* 日付とタイトルの間 */
}

.news-list-top li a img {
  width: 20px; /* Figmaのアイコンサイズ */
  height: 20px;
}

/* MEMBER Section Top */
.member-section-top {
  background-image: linear-gradient(to right, #fdf2f8, #faf5ff);
  padding: 88px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.member-grid {
  display: block;
}

/* Hide scrollbar for Chrome, Safari and Opera */
.member-grid::-webkit-scrollbar {
  display: none;
}

.member-card {
  background-color: #ffffff;
  border-radius: 10px;
  box-shadow: 0px 4px 6px -1px rgba(0,0,0,0.1), 0px 2px 4px -2px rgba(0,0,0,0.1);
  width: 348px; /* Updated width */
  height: 527px; /* Updated height */
  box-sizing: border-box;
  text-align: center;
  position: relative; /* アイコンの位置決めの基点 */
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0; /* Prevent cards from shrinking */
  scroll-snap-align: center; /* Snap each card to the center */
  margin-right: 10px;
  padding-bottom: 10px;
}

.member-card-icons {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 1;
  width: 36px; /* アイコンのサイズ */
  height: 36px;
}

.member-card-icons .member-icon {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%; /* 円形にする */
}
.member-thumbnail-box {
  display: block;
  position: relative;
}
.member-thumbnail{
  width: 100%;
  height: 345px; /* Adjusted height for new card size */
  object-fit: cover; /* 画像の比率を保ちつつコンテナにフィット */
  margin-bottom: 10px;
}
img.member-thumbnail-sp {
  display: none;
}
.member-group-list {
  display: flex;
  flex-wrap: nowrap;
  width: 100%;
  position: absolute;
  bottom: 0%;
  left: 0;
  transform: translateY(50%);
  justify-content: center;
  align-content: center;
  column-gap: 2px;
}
.member-group-list img {
  width: 12%;
}

.member-name {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 600;
  color: #252525;
  font-size: 18px; /* Updated font size */
  margin-bottom: 5px;
  margin-top: 30px;
}

.member-profile-link {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 600;
  color: #ff398c;
  font-size: 12px; /* Confirmed font size */
  text-decoration: none;
}

.member-profile-link:hover {
  text-decoration: underline;
}

.member-section-top .view-all-button-container {
  margin-top: 40px;
}

/* GROUPs Section Top */
.groups-section-top {
  background-color: #fff; /* Figmaの背景色 */
  padding-bottom: 88px;
  position: relative;
  overflow: hidden;
}

/* MV Section Top */
.mv-section-top {
  background-color: #FFE0EE; /* Figmaの背景色 */
  padding-bottom: 88px;
  position: relative;
  overflow: hidden;
}
.mv-section-top::before,
.mv-section-top::after {
  content: '';
  position: absolute;
  width: 480px;
  height: 480px;
  background-repeat: no-repeat;
  background-size: contain;
  z-index: 1;
}
.mv-section-top::before {
  background-image: url('images/2025/bg_star_frame_top_w.svg');
  top: 0;
  left: 0;
}

.mv-section-top::after {
  background-image: url('images/2025/bg_star_frame_bottom_w.svg');
  bottom: 0;
  right: 0;
}

/* SNS Section Top */
.sns-section-top {
  background-color: #fff; /* Figmaの背景色 */
  padding: 88px 0; /* Figma参考の上下余白 */
  width: 100%;
}

.sns-section-top .sns-list {
  display: flex;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  column-gap: 20px;
}

.sns-section-top .sns-list .sns {
  width: 60px;
}

.sns-section-top .sns-list .sns img {
  width: 100%;
}

  /* OFFICIAL SHOP Section Top */
.official-shop-section-top {
  background: linear-gradient(to right, #fdf2f8, #faf5ff); /* PC & SP background gradient from Figma */
  padding: 80px 0;
  position: relative;
  overflow: hidden; /* To contain background decorations */
}

.official-shop-content-wrapper {
  position: relative;
  max-width: 1160px; /* PC content box max-width */
  margin: 0 auto;
}

/* Background decorations - adjust paths and positions as per actual assets and Figma details */
.official-shop-section-top::before,
.official-shop-section-top::after {
  content: '';
  position: absolute;
  background-repeat: no-repeat;
  z-index: 0;
}

/* PC Decoration example (Top-leftish based on Figma 108_1005) */
.official-shop-section-top::before {
  background-image: url('../img/bg_shop_deco_left.svg'); /* Update with actual path e.g., imgGroup15 */
  width: 264px;
  height: 264px;
  left: -43px; /* Adjust based on Figma */
  top: 104px; /* Adjust based on Figma */
  transform: rotate(180deg); /* If needed */
}

/* PC Decoration example (Bottom-rightish based on Figma 108_1009) */
.official-shop-section-top::after {
  background-image: url('../img/bg_shop_deco_right.svg'); /* Update with actual path e.g., imgGroup16 */
  width: 264px;
  height: 264px;
  right: -43px; /* Adjust based on Figma */
  top: 545px; /* Adjust based on Figma */
}

.official-shop-content-box {
  background-color: #ffffff;
  border-radius: 16px; /* Figma: rounded-2xl */
  box-shadow: 0px 10px 15px -3px rgba(0,0,0,0.07), 0px 4px 6px -2px rgba(0,0,0,0.05); /* Softer shadow */
  display: flex;
  overflow: hidden; /* Ensure child elements adhere to border-radius */
  position: relative; /* For z-index stacking if needed above decorations */
  z-index: 1;
}

.shop-image-column {
  flex: 0 0 480px; /* PC image column width from Figma */
  position: relative;
}

.shop-image-column::after { /* Gradient overlay for PC image */
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(to right, rgba(236, 72, 153, 0.2), rgba(147, 51, 234, 0.2)); /* Approximation of Figma gradient */
  opacity: 0.8; /* Adjust opacity as needed */
  border-top-left-radius: 16px;
  border-bottom-left-radius: 16px;
}

.shop-main-image {
  display: block;
  width: 100%;
  height: 100%; /* Make image fill the column height */
  object-fit: cover;
  border-top-left-radius: 16px;
  border-bottom-left-radius: 16px;
}

.shop-info-column {
  padding: 50px; /* Figma: pl-[50px] implies consistent padding */
  display: flex;
  justify-content: flex-start; /* Vertically center content if column is taller */
  flex: 1;
  flex-wrap: wrap;
  align-content: center;
}

.shop-main-title-group {
  display: flex;
  width: 100%;
  align-items: center;
  gap: 6px; /* Figma: gap-1.5 */
  margin-bottom: 18px; /* Figma: gap-[18px] below this group */
  justify-content: flex-start;
}

.shop-title-icon {
  width: 24px; /* Figma: size-6 */
  height: 24px;
}

.shop-info-title {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 600; /* W6 */
  font-size: 28px; /* Figma */
  color: #ff398c; /* Figma main color */
  line-height: 1.15; /* Approx 32px from Figma */
  display: flex;
  width: 100%;
  justify-content: flex-start;
}

.shop-description {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 300; /* W3 */
  font-size: 20px;
  line-height: 1.7; /* Approx 24px from Figma */
  color: #252525;
  margin-bottom: 28px; /* Figma: gap-7 (28px) to next section*/
  justify-content: flex-start;
}

.shop-feature-item {
  display: flex;
  align-items: flex-start; /* Align icon with the start of the text block */
  gap: 12px; /* Figma: gap-3 */
  margin-bottom: 18px; /* Approx from Figma layout */
}

.shop-feature-item:last-of-type {
  margin-bottom: 28px; /* Larger gap before button */
}

.shop-feature-icon {
  width: 20px; /* Figma: size-5 */
  height: 20px;
  margin-top: 2px; /* Align icon slightly better with first line of text */
}

.shop-feature-text h4 {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 600; /* W6 */
  font-size: 15.625px; /* Figma */
  color: #252525;
  line-height: 1.5; /* 24px from Figma */
  margin: 0 0 4px 0;
}

.shop-feature-text p {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 300; /* W3 */
  font-size: 14px;
  line-height: 1.5; /* Approx 24px for consistency, though Figma shows 1 line */
  color: #252525;
  margin: 0;
}

.btn-shop-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px; /* Figma: gap-2.5 */
  background: linear-gradient(to right, #ff398c, #ce6dff); /* Figma gradient */
  color: #ffffff;
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 600; /* W6 */
  font-size: 16px;
  line-height: 1.5; /* 24px */
  padding: 12px 24px; /* Figma: py-3 (12px), px-6 (24px) */
  border-radius: 9999px; /* Figma: rounded-full */
  text-decoration: none;
  transition: opacity 0.2s ease-in-out;
}

.btn-shop-primary:hover {
  opacity: 0.85;
}

.external-link-icon-white {
  width: 16px; /* Figma: size-4 */
  height: 16px;
}

/* SP Styles for OFFICIAL SHOP Section */
@media (max-width: 768px) {
  .official-shop-section-top {
    padding: 60px 0;
  }

  .official-shop-content-wrapper {
    padding: 0 16px; /* SP horizontal padding */
  }

  /* SP Decoration example (adjust as needed) */
  .official-shop-section-top::before {
    width: 132px;
    height: 132px;
    left: 9px;
    top: 156px;
  }

  .official-shop-section-top::after {
    width: 132px;
    height: 132px;
    /* Original SP Figma had this at left: 234px, top: 781px - likely needs to be relative to content box bottom/right */
    right: 9px;
    bottom: 30px; /* Example: position near bottom */
    top: auto; /* Override PC top */
  }

  .official-shop-content-box {
    flex-direction: column;
    box-shadow: 0px 10px 15px -3px rgba(0,0,0,0.05), 0px 4px 6px -2px rgba(0,0,0,0.03); /* Lighter shadow for SP */
  }

  .shop-image-column {
    flex: 0 0 auto; /* Allow image to define its height based on aspect ratio */
    width: 100%;
    height: 256px; /* Figma SP: h-64 (256px) for the image container */
  }

  .shop-image-column::after { /* Image overlay for SP */
    border-radius: 16px 16px 0 0; /* Match SP image rounding */
  }

  .shop-main-image {
    height: 100%;
    border-radius: 16px 16px 0 0; /* Top corners rounded */
  }

  .shop-info-column {
    padding: 4vh 5%; /* Figma SP: px-5 (20px), pb-8 (32px), implies overall padding */
  }

  .shop-main-title-group {
    margin-bottom: 12px; /* Figma SP: gap-3 (12px) */
  }

  .shop-title-icon {
    /* width: 24px; height: 24px; - same as PC from Figma SP */
  }

  .shop-info-title {
    font-size: 22px; /* Figma SP */
  }

  .shop-description {
    font-size: 14px; /* Figma SP */
    margin-bottom: 28px; /* Figma SP: gap-7 (28px) */
  }

  .shop-feature-item {
    gap: 12px; /* Figma SP: gap-3 */
    margin-bottom: 18px; /* Consistent with PC, check Figma SP for exact */
  }

  .shop-feature-item:last-of-type {
    margin-bottom: 28px; /* Consistent with PC */
  }

  .shop-feature-icon {
    /* width: 20px; height: 20px; - same as PC */
  }

  .shop-feature-text h4 {
    font-size: 15.625px; /* Same as PC in Figma SP */
  }

  .shop-feature-text p {
    font-size: 14px; /* Same as PC in Figma SP */
  }

  .btn-shop-primary {
    width: 100%; /* Make button full width in SP */
    padding: 12px 20px; /* Adjusted padding if needed for full width */
    font-size: 16px; /* Same as PC */
  }

  /* Adjust section titles for SP based on Figma (node 108_1514) */
  .official-shop-section-top .section-title-container .section-title-main {
    font-size: 32px; /* Example from Figma SP */
  }
  .official-shop-section-top .section-title-container .section-title-sub {
    font-size: 12px; /* Example from Figma SP */
    letter-spacing: 0.84px; /* Tracking from Figma SP */
  }

  .mv-section-top::before,
  .mv-section-top::after {
    width: 180px;
    height: 180px;
  }

}

/* Placeholder styles for sections to be filled later */
/* These are temporary and will be replaced with actual content styles */
.schedule-placeholder,
.member-placeholder,
.groups-placeholder,
.mv-placeholder,
.sns-placeholder,
.official-shop-placeholder {
  /* Common placeholder styles - already defined above, adding specific color for light bg */
}

.groups-section-top .groups-placeholder {
  color: #252525;
  border: 2px dashed #FF398C;
}

/* Adjustments for buttons on different backgrounds */
.schedule-section-top .section-title-main.en-font,
.schedule-section-top .section-title-sub,
.mv-section-top .section-title-main.en-font,
.mv-section-top .section-title-sub {
  color: #FF398C; /* Ensure pink for these sections as well */
  border-top-color: #FF398C;
  border-bottom-color: #FF398C;
}

.schedule-section-top .section-title-main.en-font,
.schedule-section-top .section-title-sub {
  /* For SCHEDULE section, if titles need to be white on pink bg */
  /* color: #fff; */
  /* border-top-color: #fff; */
  /* border-bottom-color: #fff; */
}

/* ヘッダーの調整 */
.site-title-link {
  text-decoration: none;
}

.site-header .en-font {
  font-family: 'Times New Roman', Times, serif;
}

.site-title-header.en-font {
  font-size: 26px;
  font-weight: normal; /* デザインに合わせて調整 */
  color: #252525;
  margin: 0;
}

.main-navigation ul li a.en-font {
  font-size: 12px;
}

.header-action-btn span {
  font-size: 12px;
}

/* フッターの調整 */
.footer-inner {
}

.footer-logo {
  font-family: 'A-OTF Gothic MB101 Pr5', "Helvetica Neue", Arial, "Hiragino Kaku Gothic ProN", "Hiragino Sans", Meiryo, sans-serif;
  font-size: 28px;
  font-weight: bold;
  letter-spacing: 1.12px; /* Figma指定 */
  margin-bottom: 35px;
}
.footer-logo img {
  width: 404px;
}
.footer-link-block {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: nowrap;
}
.footer-link-block-inner {
  display: block;
}

.footer-links-column .footer-link-title {
  font-family: 'Crimson Text', serif;
  font-size: 18px; /* Figmaから調整 */
  font-weight: 700; /* Bold */
  color: #FF398C;
  margin-bottom: 16px;
  width: 50%;
}

.footer-links-column ul li a {
  font-size: 16px; /* Figmaから調整 */
  line-height: 2; /* Figmaから調整 */
  color: #ffffff;
  text-decoration: none;
}

.footer-links-column.site-map-column ul li a {
  font-family: 'Crimson Text', serif;
}

.footer-links-column.groups-column ul li a {
  font-family: 'Noto Sans JP', sans-serif;
}

.footer-links-column.follow-us-column ul li a {
  font-family: 'Crimson Text', serif;
  display: flex;
  align-items: center;
  gap: 8px;
}

.footer-links-column.follow-us-column ul li a img {
  width: 16px;
  height: 16px;
}

.footer-social-and-copyright {
  padding-top: 30px; /* 上のセクションとのマージン */
}

.footer-social-icons a img {
  width: 20px; /* Figmaのアイコンサイズ */
  height: 20px;
}

.copyright {
  font-size: 12px; /* Figmaのフォントサイズ */
  color: #a0a0a0; /* Figmaの色 */
}

/* 汎用ボタンスタイル */
.btn {
  text-decoration: none;
  border-radius: 9999px; /* Pill shape */
  font-family: 'Noto Sans JP', sans-serif;
  font-weight: 700;
  padding: 12px 28px; /* Default padding, can be overridden */
  display: inline-block;
  text-align: center;
  cursor: pointer;
  transition: background-color 0.3s, color 0.3s, border-color 0.3s;
}

.btn-primary {
  background: linear-gradient(to right, #FF398C, #CE6DFF); /* Default gradient */
  color: #fff;
  border: none;
}

.btn-secondary {
  background-color: #fff;
  color: #252525;
  border: 1px solid #D9D9D9;
}

.btn-primary:hover, .btn-secondary:hover {
  opacity: 0.8;
}

/* 見出しのスタイル調整 */
.section-title-container .section-title-main.en-font {
  padding-top: 8px;
  padding-bottom: 8px;
  text-transform: none;
}

/* Visually hidden class */
.visually-hidden {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  border: 0;
}

/* NEWS Section for Top Page */
.news-section-top {
  background-color: #FFF0F5; /* 薄いピンク系の背景 */
  padding: 80px 0;
  text-align: center;
  position: relative;
  overflow: hidden; /* For decorations if they go outside bounds */
}

.news-list-container {
  max-width: 800px;
  margin: 0 auto 30px auto;
  /* 個々のニュースアイテムスタイルは別途定義予定 */
}

/* SCHEDULE Section */
.schedule-section {
  background-color: #FF88BA; /* Figmaに近いピンク */
  padding: 88px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.schedule-title-text {
  color: #FFFFFF;
  font-family: 'Crimson Text', serif;
  font-size: 48px;
  font-weight: 700;
  margin-bottom: 5px; /* 上下の線とのスペース確保 */
  position: relative;
  display: inline-block; /* 中央揃えのため */
  padding: 5px 0; /* 上下の線が文字に近すぎるのを調整 */
  border-top: 1px solid #fff;
  border-bottom: 1px solid #fff;
}

.schedule-title-text::before,
.schedule-title-text::after {
  content: '';
  position: absolute;
  left: 0;
  right: 0;
  background-color: #FFFFFF;
  width: 100%;
}

.schedule-title-text::before {
  top: 3px;
  height: 2px; /* 太い線 */
}

.schedule-title-text::after {
  bottom: 3px;
  height: 2px; /* 細い線 */
}

.schedule-subtitle-text {
  color: #FFFFFF;
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  margin-bottom: 40px;
}

.schedule-slider {
  z-index: 10;
}

/* スクロールバーのスタイル（Chrome, Edge, Safari） */
.schedule-slider::-webkit-scrollbar {
  height: 8px;
}

.schedule-slider::-webkit-scrollbar-track {
  background: #FF88BA;
  border-radius: 4px;
}

.schedule-slider::-webkit-scrollbar-thumb {
  background-color: #FFFFFF;
  border-radius: 4px;
}

.schedule-item {
  height: 220px;
  min-height: 220px;
  background-color: #FFFFFF;
  border-radius: 10px;
  margin-right: 16px; /* アイテム間の隙間 */
  padding: 22px;
  box-sizing: border-box;
  display: flex;
  width: 350px;
  flex-direction: column;
  justify-content: space-between; /* 内容を均等に配置 */
  text-align: left;
  box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
}

.schedule-item:last-child {
  margin-right: 0; /* 最後のアイテムの右マージンを削除 */
}

.schedule-date {
  font-size: 12px;
  color: #252525;
  font-weight: 600;
  margin-bottom: 11px;
}

.schedule-details {
  font-size: 18px;
  color: #252525;
  font-weight: 600;
  line-height: 1.5; /* 28px / 18px */
  flex-grow: 1; /* 詳細テキストが残りのスペースを埋めるように */
  margin-bottom: 16px;
}
.schedule-details span {
  display: block;
  white-space: nowrap; /* 折り返し無しにする */
  overflow: hidden; /* はみ出た部分を非表示 */
  text-overflow: ellipsis; /* 語尾を3点リーダーに */
  max-width: 350px;
}

.schedule-button {
  display: inline-block;
  background-image: linear-gradient(to right, #FF398C, #CE6DFF);
  color: #FFFFFF;
  padding: 9px 18px;
  border-radius: 9999px; /* 丸いボタン */
  text-decoration: none;
  font-size: 14px;
  font-weight: 600;
  align-self: flex-start; /* 左寄せ */
}

.schedule-button-disabled {
  background-image: none;
  background-color: #D9D9D9; /* グレー */
  cursor: not-allowed;
}

.schedule-view-calendar {
  border: 1px solid #FFFFFF;
  color: #FFFFFF;
  padding: 18px 28px;
  border-radius: 9999px;
  text-decoration: none;
  font-size: 16px;
  font-weight: 600;
  display: inline-block;
}

.schedule-decoration {
  position: absolute;
  pointer-events: none; /* クリックイベントを透過 */
}

.schedule-decoration-left {
  left: -20px; /* 位置調整 */
  top: 50%;
  transform: translateY(-50%);
  width: auto;
  height: 80%; /* 高さをセクションに合わせるか、具体的な値を指定 */
  max-height: 500px; /* 例: 最大高さ */
}

.schedule-decoration-right {
  right: -20px; /* 位置調整 */
  top: 50%;
  transform: translateY(-50%);
  width: auto;
  height: 80%;
  max-height: 500px;
}


/* MEMBER Section for Top Page */
.member-section-top {
  background-image: linear-gradient(to right, #fdf2f8, #faf5ff);
  padding: 88px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.member-grid {
  display: flex;
}

/* Hide scrollbar for Chrome, Safari and Opera */
.member-grid::-webkit-scrollbar {
  display: none;
}

.member-card {
  background-color: #ffffff;
  border-radius: 10px;
  box-shadow: 0px 4px 6px -1px rgba(0,0,0,0.1), 0px 2px 4px -2px rgba(0,0,0,0.1);
  width: 348px; /* Updated width */
  height: 527px; /* Updated height */
  box-sizing: border-box;
  text-align: center;
  position: relative; /* アイコンの位置決めの基点 */
  display: flex;
  flex-direction: column;
  align-items: center;
  flex-shrink: 0; /* Prevent cards from shrinking */
  scroll-snap-align: center; /* Snap each card to the center */
  padding-bottom: 10px;
}

.member-card-icons {
  position: absolute;
  top: 10px;
  left: 10px;
  z-index: 1;
  width: 36px; /* アイコンのサイズ */
  height: 36px;
}

.member-card-icons .member-icon {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  border-radius: 50%; /* 円形にする */
}
.member-thumbnail-box {
  display: block;
  position: relative;
}
.member-thumbnail {
  width: 100%;
  height: 345px; /* Adjusted height for new card size */
  object-fit: cover; /* 画像の比率を保ちつつコンテナにフィット */
  margin-bottom: 10px;
}

.member-name {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 600;
  color: #252525;
  font-size: 18px; /* Updated font size */
  margin-bottom: 5px;
  margin-top: 30px;
}

.member-profile-link {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 600;
  color: #ff398c;
  font-size: 12px; /* Confirmed font size */
  text-decoration: none;
}

.member-profile-link:hover {
  text-decoration: underline;
}

.member-section-top .view-all-button-container {
  margin-top: 40px;
}

/* GROUPs Section Top */
.groups-section-top {
  background-color: #ffffff; /* 白背景 */
  padding: 88px 0;
  text-align: center;
  position: relative;
  overflow: hidden;
}

.groups-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* 2列グリッド */
  gap: 20px; /* アイテム間の隙間 */
  max-width: 1160px; /* Figmaのデザインに合わせた最大幅 */
  margin: 40px auto 0 auto;
  position: relative;
}

.group-item {
  position: relative; /* オーバーレイの基点 */
  display: block; /* aタグをブロック要素に */
  border-radius: 15px; /* 角丸 */
  overflow: hidden; /* 角丸を画像に適用 */
  box-shadow: 0px 10px 15px -3px rgba(0,0,0,0.1), 0px 4px 6px -4px rgba(0,0,0,0.1); /* シャドウ */
  text-decoration: none;
  width: 570px;
}

.group-thumbnail {
  width: 100%;
  height: 380px; /* 高さを指定 (画像のアスペクト比に合わせて調整が必要な場合あり) */
  object-fit: cover; /* 画像の比率を保ちつつコンテナにフィット */
  display: block; /* 余白をなくす */
  transition: transform 0.3s ease;
}

.group-item:hover .group-thumbnail {
  transform: scale(1.05); /* ホバー時に画像を少し拡大 */
}
.group-icon {
  display: inline-block;
  width: 50px;
}
.group-center-text {
  display: inline-block;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #FF398C;
  font-size: 20px;
}

.group-name-overlay {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0) 100%); /* 下から上への黒グラデーション */
  padding: 20px 15px; /* パディング調整 */
  text-align: left;
  display: flex;
  justify-content: flex-start;
  align-items: center;
  column-gap: 10px;
}

.group-name {
  color: #ffffff;
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-size: 16px;
  font-weight: 300;
  display: inline-block;
}
.group-section-inner {
  position: relative;
}
.group-frame-left-top,
.group-frame-right-bottom {
  position: absolute;
  pointer-events: none;
  width: 60px; /* SVGのサイズに合わせて調整 */
  height: auto;
  z-index: 10;
}

.group-frame-right-bottom {
  width: 264px;
  height: auto;
  right: -40px;
  bottom: -40px;
}
.group-frame-left-top {
  width: 264px;
  height: auto;
  left: -40px;
  top: -40px;
}
.notes-frame-left-top,
.notes-frame-right-bottom {
  position: absolute;
  pointer-events: none;
  width: 60px; /* SVGのサイズに合わせて調整 */
  height: auto;
  z-index: 10;
}

.notes-frame-right-bottom {
  width: 264px;
  height: auto;
  right: -40px;
  bottom: -40px;
}
.notes-frame-left-top {
  width: 264px;
  height: auto;
  left: -40px;
  top: -40px;
}
.only-sp {
  display: none !important;
}
.only-pc {
  display: block !important;
}
@media (max-width: 768px) {
  .only-sp {
    display: block !important;
  }
  .only-pc {
    display: none !important;
  }
  /* Responsive adjustments for GROUPs section */
  .groups-grid {
    grid-template-columns: 1fr; /* 1列表示に変更 */
    gap: 15px; /* アイテム間の隙間を少し狭く */
    padding-left: 20px; /* 左右の余白 */
    padding-right: 20px;
  }
  .group-item {
    width: 90%;
    margin: 0 auto;
  }
  .group-thumbnail {
    width: 100%;
    height: auto;
  }
  .group-icon {
    width: 8vw;
    height: auto;
  }
  .group-name-overlay {
    padding: 15px; /* SP表示時のパディング調整 */
  }

  .group-name {
    font-size: 14px;
    font-weight: bold;
  }

  .group-decoration {
    display: none; /* SPでは装飾を非表示 */
  }

  .groups-section-top {
    padding: 60px 0; /* SP表示時のセクション上下パディング調整 */
  }

  .group-frame-right-bottom {
    width: 40%;
    height: auto;
    bottom: -30px;
    right: 10px;
  }
  .group-frame-left-top {
    width: 40%;
    height: auto;
    top: -30px;
    left: 10px;
  }
  .official-shop-content-wrapper {
    padding: 0;
    width: 100%;
  }
  .official-shop-content-box {
    width: 80%;
    margin: 0 auto;
  }
  .official-shop-frame-left-top {
    width: 40%;
    height: auto;
    top: -30px;
    left: 10px;
  }
  .official-shop-frame-right-bottom {
    width: 40%;
    height: auto;
    bottom: -30px;
    right: 10px;
  }

  /* Responsive adjustments for MEMBER section */
  .member-section-top {
    padding: 60px 0;
  }

  .member-grid {

  }

  .member-card {
    width: 318px; /* SP card width based on image */
    padding-bottom: 3vh;
  }

  .member-card-icons {
    width: 30px; /* SP icon size */
    height: 30px;
    top: 8px;
    left: 8px;
  }

  .member-thumbnail-box {
    height: auto; /* Adjusted for new card height and padding */
    margin-bottom: 8px;
  }
  .slick-slide img.member-thumbnail {
    display: none;
  }
  .slick-slide img.member-thumbnail-sp {
    display: block;
  }
  .member-group-list img {
    width: 20%;
  }

  .member-name {
    font-size: 16px; /* SP font size */
    margin-bottom: 4px;
    margin-top: 5vh;
  }

  .member-profile-link {
    font-size: 11px; /* SP font size */
  }

  .member-section-top .view-all-button-container {
    margin-top: 30px;
  }
}

/* MV Section for Top Page */
.mv-section-top {
  background-color: #ffe0ee; /* PC background color from Figma */
  padding: 80px 0;
  position: relative;
  overflow: hidden; /* To contain potential absolute positioned decorations */
}

.mv-carousel-container {
  position: relative;
  margin: 0 auto;
}

.mv-carousel-wrapper {
  display: block;
}

/* Scrollbar styling for Webkit browsers (Chrome, Safari) */
.mv-carousel-wrapper::-webkit-scrollbar {
  height: 8px;
}
.mv-carousel-wrapper::-webkit-scrollbar-track {
  background: #ffe0ee;
  border-radius: 4px;
}
.mv-carousel-wrapper::-webkit-scrollbar-thumb {
  background-color: #ff398c;
  border-radius: 4px;
}

.mv-card {
  background-color: #ffffff;
  border-radius: 12px;
  box-shadow: 0px 4px 6px -1px rgba(0,0,0,0.1), 0px 2px 4px -2px rgba(0,0,0,0.1);
  flex-shrink: 0;
  text-decoration: none;
  color: inherit;
  display: block;
  transition: transform 0.2s ease-in-out;
  margin-right: 20px;
  border-radius: 12px;
}
.mv-card iframe {
  width: 100%;
  height: auto;
  min-height: 250px;
  border-top-right-radius: 12px;
  border-top-left-radius: 12px;
}

.mv-card:hover {
  transform: translateY(-5px);
}

.mv-card-thumbnail-wrapper {
  position: relative;
  width: 100%;
}

.mv-card-thumbnail {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}

.mv-card-play-overlay {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  background-color: rgba(255, 255, 255, 0.3); /* Slightly transparent overlay */
  opacity: 0;
  transition: opacity 0.2s ease-in-out;
}

.mv-card:hover .mv-card-play-overlay {
  opacity: 1;
}

.mv-card-play-overlay .play-icon {
  width: 48px; /* Size of the circular background for play icon from Figma */
  height: 48px;
  background-color: rgba(255, 255, 255, 0.8); /* Figma: Overlay+OverlayBlur */
  backdrop-filter: blur(2px); /* Figma: Overlay+OverlayBlur */
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}

.mv-card-play-overlay .play-icon img {
  width: 20px; /* Actual play symbol size from Figma */
  height: 20px;
}

.mv-card-title {
  font-family: 'Hiragino Kaku Gothic Pro', 'ヒラギノ角ゴ Pro W3', 'メイリオ', Meiryo, Osaka, 'ＭＳ Ｐゴシック', 'MS PGothic', sans-serif;
  font-size: 13px;
  line-height: 1.5; /* Approx 20px from Figma */
  color: #252525;
  padding: 12px 16px; /* Matches Figma's spacing around text */
  margin: 0;
}

.mv-carousel-nav-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background-color: rgba(255, 255, 255, 0.8);
  border: 1px solid #ff398c;
  color: #ff398c;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  font-size: 20px;
  cursor: pointer;
  z-index: 10;
  display: none; /* Hidden by default on PC, shown on SP or via JS */
}

.mv-carousel-nav-btn.prev {
  left: 10px;
}

.mv-carousel-nav-btn.next {
  right: 10px;
}

.view-youtube-button-container {
  text-align: center;
  margin-top: 40px;
}

/* SP Styles for MV Section */
@media (max-width: 768px) {
  .mv-section-top {
    background-color: #fbddea; /* SP background color from Figma */
    padding: 60px 0;
  }

  .mv-carousel-container {
    padding: 0; /* Adjust side padding for SP */
  }

  .mv-carousel-wrapper {
    /* To make it feel more like a swipeable carousel on mobile */
    scroll-snap-type: x mandatory;
    -webkit-overflow-scrolling: touch; /* Momentum scrolling */
  }

  .mv-card {
    width: 318px;
  }

  /* If showing only one primary card and peeking, first and last might need special margin */
  .mv-carousel-wrapper .mv-card:first-child {
    /* margin-left: calc((100vw - (100vw - 80px) - 40px) / 2); /* Adjust to center first item if container has padding */
  }
  .mv-carousel-wrapper .mv-card:last-child {
    /* margin-right: calc((100vw - (100vw - 80px) - 40px) / 2); */
  }


  .mv-card-title {
    font-size: 12px; /* Slightly smaller for SP if needed */
    padding: 10px 12px;
  }

  .mv-carousel-nav-btn {
    display: flex; /* Show nav buttons on SP */
    align-items: center;
    justify-content: center;
    top: calc(50% - 30px); /* Adjust vertical position relative to cards, not entire section */
  }

  .mv-carousel-nav-btn.prev {
    left: 5px;
  }

  .mv-carousel-nav-btn.next {
    right: 5px;
  }

  .view-youtube-button-container {
    margin-top: 30px;
  }

  /* Adjust section title for SP if it has specific styles */
  .mv-section-top .section-title-container .section-title-main {
    font-size: 32px; /* Example, adjust based on Figma SP */
  }
  .mv-section-top .section-title-container .section-title-sub {
    font-size: 12px; /* Example, adjust based on Figma SP */
  }
  .schedule-item {
    width: 318px;
  }
  .schedule-view-calendar {
    margin-top: 3vh;
  }
  .news-section-top {
    width: 100%;
    padding: 90px 5%;
  }
  .news-list-top {
    max-width: 100%;
    width: 100%;
  }
  .news-list-top li a {
    flex-flow: column;
    position: relative;
    justify-content: center;
    padding: 1.5vh 10% 1.5vh 5%;
    text-align: left;
    align-items: flex-start;
  }
  .news-list-top li a span {
    display: block;
  }
  .news-list-top li a {
    line-height: 1.5;
    font-size: 14px;
  }
  .news-list-top li a img {
    position: absolute;
    right: 20px;
    top: 50%;
    -moz-transform: translateY(-50%);
    -webkit-transform: translateY(-50%);
    -o-transform: translateY(-50%);
    transform: translateY(-50%);
  }
  footer {
    padding: 5vh 0;
  }
  .footer-logo img {
    width: 80%;
  }
  .footer-links-column.site-map-column {
    width: 100%;
    justify-content: flex-start;
    align-content: flex-start;
    text-align: left;
  }
  .footer-links-column ul li a {
    justify-content: flex-start;
  }
  .footer-links-column.groups-column, .footer-links-column.follow-us-column {
    width: 100%;
    text-align: left;
  }
  .footer-links-column ul li {
    margin-bottom: 0;
  }
}

/* =============== */
/* SP Header Styles */
/* =============== */
.pc-logo-link {
  width: 404px;
}
.pc-logo-link img {
  width: 100%;
}
.sp-logo-link {
  display: none; /* Initially hidden, shown in SP */
  line-height: 0; /* Remove potential extra space below image */
}
.sp-site-logo { /* img/img_sp_logo.png */
  height: 32px; /* Target height for SP logo in header */
  width: auto;
  vertical-align: middle;
}

.hamburger-menu-button {
  display: none; /* Initially hidden, shown in SP */
  background: none;
  border: none;
  padding: 0;
  cursor: pointer;
  z-index: 1101; /* Ensure it's above the menu overlay and its content */
  width: 32px;
  height: 32px;
  align-items: center;
  justify-content: center;
}

.hamburger-icon {
  width: 24px;
  height: 24px;
}
.hamburger-icon.close {
  display: none; /* Initially hidden */
}

.sp-navigation-menu {
  display: none; /* Initially hidden */
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 101vh; /* Full viewport height */
  background-color: rgba(37, 37, 37, 0.9); /* #252525 with 90% opacity */
  z-index: 1000; /* Below hamburger button icon, above page content */
  overflow-y: auto;
  box-sizing: border-box;
  flex-direction: column;
  align-items: center;
  padding: 15px;
}

.sp-navigation-menu.open {
  display: flex; /* Show menu when open */
}

.sp-menu-header {
  width: 100%;
  display: flex;
  justify-content: flex-start; /* Align logo to the left as per Figma 108-1662 */
  align-items: center;
  padding-top: 5px; /* Adjust to align with where SP header would be */
  padding-bottom: 25px;
  height: 52px;
  box-sizing: border-box;
}

.sp-menu-logo { /* img/img_logo_w.png */
  height: 32px;
  width: auto;
}

.sp-navigation-menu .main-nav-wrapper { /* Wrapper for ul */
  width: 100%;
  text-align: left; /* Align text to the left as per Figma 108-1662 */
  margin-bottom: 30px;
  padding-left: 40px; /* Indent nav items from left edge */
  box-sizing: border-box;
}

.sp-navigation-menu ul {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sp-navigation-menu ul li {
  margin-bottom: 22px; /* Figma: roughly 20-25px gap */
}
.sp-navigation-menu ul li:last-child {
  margin-bottom: 0;
}

.sp-navigation-menu ul li a {
  text-decoration: none;
  color: #ffffff;
  font-size: 22px; /* Figma: 22px */
  font-family: 'Crimson Text', serif;
  display: flex;
  align-items: center;
  justify-content: flex-start; /* Align text and icon to the left */
}
.sp-navigation-menu ul li a .external-link-icon {
  width: 16px; /* Figma: icon size looks a bit larger here */
  height: 16px;
  margin-left: 10px;
  /* ico_cmn_blank_w.svg is assumed white */
}


.sp-menu-footer-actions {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px; /* Figma: gap-2.5 */
  width: 100%;
  padding-top: 25px;
  padding-bottom: 10px; /* Space from bottom */
  border-top: 1px solid rgba(255,255,255,0.15);
}

.sp-menu-footer-actions .sp-header-action-btn {
  display: flex;
  align-items: center;
  justify-content: flex-start; /* Align icon and text to the left */
  text-decoration: none;
  color: #ffffff;
  background-color: rgba(94, 94, 94, 0.3); /* Match Figma button bg color for "Theater Guide" and "My Page" */
  padding: 10px 15px;
  border-radius: 4px; /* Figma has slight radius */
  width: 100%;
  max-width: 315px; /* Figma width */
  height: 52px; /* Figma height */
  box-sizing: border-box;
  font-family: 'Noto Sans JP', sans-serif;
}
.sp-menu-footer-actions .sp-header-action-btn.btn-reserve {
  background-color: rgba(239, 61, 136, 0.3); /* Pink bg for "Reserve" */
}

.sp-menu-footer-actions .sp-header-action-btn img {
  width: 22px; /* Figma: icon size ~20-22px */
  height: 22px;
  margin-right: 12px;
}
.sp-menu-footer-actions .sp-header-action-btn span {
  font-size: 12px;
  font-weight: 300; /* W3 */
}
.sp-header-right {
  display: none;
}
/* Media Query for SP */
@media (max-width: 768px) {
  .sp-site-logo {
    width: 100%;
    height: auto;
  }
  .sp-logo-link {
    width: 20%;
  }
  .site-header {
    height: 52px;
    width: 100%;
    position: fixed;
    top: 0;
    left: 0;
    z-index: 1001; /* Ensure header is above menu overlay background, but below actual menu content if menu z-index is higher */
    background-color: #ffffff;
  }
  .header-inner {
    padding: 0 0 0 15px; /* Adjust padding: left 15px, no right padding to allow buttons to be flush */
    height: 100%;
    width: 100%;
    align-items: center;
    justify-content: space-between;
  }

  .site-header .site-branding .pc-logo-link,
  .site-header .main-navigation,
  .site-header .header-actions { /* Hide PC actions */
    display: none;
  }

  .site-header .site-branding .sp-logo-link {
    display: inline-block;
  }

  .sp-header-right {
    display: flex;
    align-items: center;
    height: 100%;
    width: 50%;
    position: absolute;
    right: 0;
    top: 0;
  }

  .sp-header-actions {
    display: flex;
    width: 100%;
    height: 100%;
    justify-content: space-between; /* Make action buttons take full header height */
  }

  .sp-header-action-btn {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-decoration: none;
    color: #ffffff;
    z-index: 1101;
    width: 24%; /* Screenshot implies roughly 50px width */
    height: 100%; /* Full height of the header */
    padding: 4px 0; /* Adjust vertical padding for icon and text */
    box-sizing: border-box;
    text-align: center;
    font-size: 8px; /* Screenshot implies small font size */
    line-height: 1.2; /* Adjust for two-line text */
    border-left: 1px solid #7f7f7f; /* Separator line, color needs checking */
  }
  .sp-header-action-btn:first-child {
    border-left: none; /* No separator for the first button */
  }

  .sp-header-action-btn img {
    width: 15px; /* Adjust icon size based on screenshot */
    height: 15px;
    margin-bottom: 2px; /* Space between icon and text */
  }

  .btn-sp-theater-guide,
  .btn-sp-mypage {
    background-color: #656565; /* Gray background */
  }
  .btn-sp-theater-guide img,
  .btn-sp-mypage img {
    /* Assuming these icons are white, no filter needed */
  }


  .btn-sp-reserve {
    background-color: #FF398C; /* Pink background */
    border-left-color: #ff6bab; /* Lighter pink separator */
  }
  .btn-sp-reserve img {
    /* Assuming this icon is white or designed for pink bg */
  }

  .hamburger-menu-button {
    display: flex;
    width: 24%; /* Match height for a square button */
    height: 100%;
    align-items: center;
    justify-content: center;
    /* border-left: 1px solid #7f7f7f; */ /* Separator for hamburger */
    /* background-color: #fff; */ /* If it needs its own bg */
  }
  .hamburger-menu-button .hamburger-icon.open {
    /* Ensure pink color if the image is a plain shape */
    /* filter: invert(56%) sepia(50%) saturate(6968%) hue-rotate(307deg) brightness(102%) contrast(101%); */ /* Pink color filter */
  }


  body.menu-open .site-header {
    /* When menu is open, the main header background might change or be overlaid */
    /* background-color: transparent; */ /* Example: if overlay covers it */
  }

  body.menu-open .sp-logo-link {
    display: none; /* Hide SP logo in header when menu is open, menu has its own logo */
  }

  body.menu-open .hamburger-menu-button .hamburger-icon.open {
    display: none;
  }
  body.menu-open .hamburger-menu-button .hamburger-icon.close {
    display: block;
    /* filter: brightness(0) invert(1); */ /* Ensure close icon is white if needed */
  }

  /* Ensure SP actions remain visible when menu is open, adjust if they should hide */
  body.menu-open .sp-header-actions {
    /* display: none; */ /* Uncomment if these should also hide */
  }

  .site-branding {
    flex-grow: 0;
  }
}

.sp-navigation-menu ul {
  display: block;
  width: 80%;
  margin: 50px auto 0;
}

/* Topics Section */
.topics-section {
  background-color: #ffedfa;
  padding: 88px 0;
}

.topics-section .container {
  width: 100%;
  margin: 0 auto;
  padding: 0 20px;
}

.topics-title .section-title-main {
  font-size: 48px;
  line-height: 1;
}

.topics-title .section-title-sub {
  font-size: 12px;
  letter-spacing: 1.2px;
  margin-top: 20px;
}

.topics-slider-wrapper {
  /*overflow: hidden;*/
  /*margin-top: 48px;*/
  /*position: relative;*/
}

.topics-slider {
  /*display: flex;*/
  /*gap: 16px;*/
  /*padding: 0 10px; !* Prevent shadow clipping *!*/
}

.topic-card {
  flex-shrink: 0;
  background-color: #ffffff;
  border-radius: 15px;
  box-shadow: 0px 12.5px 18.75px -3.75px rgba(0,0,0,0.1), 0px 5px 7.5px -5px rgba(0,0,0,0.1);
  margin-right: 20px;
  position: relative;
  display: block; /* For <a> tag to behave like a block */
}

.topic-card a {
  display: block;
  text-decoration: none;
  color: #ffffff;
}

.topic-card-image-wrapper {
  position: relative;
  width: 100%; /* Ensure wrapper takes full card width */
  height: 100%; /* Ensure wrapper takes full card height */
}

.topic-card-image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.topic-card-gradient {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(to top, rgba(0,0,0,0.7) 0%, rgba(0,0,0,0.5) 40%, transparent 100%);
  z-index: 1;
}

.topic-card-content {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 20px;
  z-index: 2;
  color: #ffffff;
}

.topic-card-title {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 600;
  font-size: 20px;
  line-height: 1.4;
  margin: 0 0 8px 0;
}

.topic-card-date {
  font-family: 'Hiragino Kaku Gothic Pro', sans-serif;
  font-weight: 300;
  font-size: 12px;
  opacity: 0.8;
}

.topics-slider-controls {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  margin-top: 32px;
}

.slider-arrow {
  background-color: #ffffff;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  box-shadow: 0px 4px 6px -1px rgba(0,0,0,0.1), 0px 2px 4px -2px rgba(0,0,0,0.1);
  cursor: pointer;
  padding: 0;
}

.slider-arrow img {
  width: 24px;
  height: 24px;
}

.slider-pagination {
  display: flex;
  align-items: center;
  gap: 8px;
}

.pagination-dot {
  border: none;
  padding: 0;
  cursor: pointer;
  transition: all 0.3s ease;
}

.pagination-dot.active {
  width: 24px;
  height: 12px;
  border-radius: 6px; /* Pill shape */
  background-color: #FF398C;
}

.pagination-dot:not(.active) {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #ffffff;
  border: 1px solid #FFC0D9; /* Light pink border */
}

@media (min-width: 769px) {
  .topic-card {
    width: 600px;
    height: 400px;
  }
}
.theatre-content-sp {
  display: none; /* Hide SP content on PC by default */
}
@media (max-width: 768px) {

  .top-page-main {
    width: 100%;
    overflow: hidden;
    padding-top: 10px;
    margin-top: 0;
  }
  .hero-section {
    padding-bottom: 3vh;
  }
  .topics-section {
    padding: 28px 0 48px 0;
  }
  .topics-section .container {
    padding: 0;
  }
  .section-title-main.en-font {
    font-size: 32px;
    padding: 15px 30px;
    max-width: 100%;
  }
  .theatre-content-pc {
    display: none;
  }
  .theatre-content-sp {
    display: block;
    width: 90%;
    margin: 0 auto;
    background-color: #fff;
    border-radius: 30px;
  }
  .theatre-image-sp img {
    border-top-left-radius: 30px;
    border-top-right-radius: 30px;
  }
  .theatre-accordion-sp {
    display: block;
    padding: 3vh 10% 0;
  }
  .theatre-accordion-sp .accordion-title-text {
    font-size: 4.5vw;
    color: #FF398C;
    font-weight: bold;
  }
  .theatre-accordion-sp .accordion-trigger {
    display: flex;
    justify-content: space-between;
    align-items: center;
    width: 100%;

  }
  .theatre-accordion-sp .icon-minus {
    display: none;
  }
  .theatre-accordion-sp .accordion-icon-wrapper {
    display: flex;
    align-content: center;
  }
  .theatre-accordion-sp .accordion-icon-wrapper img {
    width: 20px;
    height: auto;

  }
  .theatre-accordion-sp .accordion-content {
    display: none;
    flex-wrap: wrap;
    align-items: flex-start;
    justify-content: flex-start;
    gap: 2vh;
    margin-top: 2vh;
  }
  .theatre-accordion-sp .accordion-content .content-detail-item {
    display: flex;
    justify-content: flex-start;
    align-items: flex-start;
    gap: 3vw;

  }
  .theatre-accordion-sp .accordion-content .content-detail-item:nth-child(n + 2) {
    margin-top: 2vh;
  }
  .theatre-accordion-sp .accordion-content .content-detail-item h4 {
    font-weight: bold;
  }
  .theatre-buttons-sp {
    padding: 3vh 10% 5vh;
  }
  .theatre-buttons-sp .btn-reserve-theatre {
    margin-bottom: 1vh;
  }
  .topics-title .section-title-sub {
    margin-top: 12px;
  }
  .topics-slider-wrapper {
    margin-top: 20px;
  }
  .topics-slider {
    /*padding: 0; !* Adjust for SP centering if needed via JS *!*/
    /*gap: 16px;*/
  }
  .topic-card {
    width: 318px;
    height: 212px;
    border-radius: 12px;
    box-shadow: 0px 10px 15px -3px rgba(0,0,0,0.1), 0px 4px 6px -4px rgba(0,0,0,0.1);
  }
  .topic-card-content {
    padding: 16px;
  }
  .topic-card-title {
    font-size: 14px;
    line-height: 1.5;
  }
  .topics-slider-controls {
    margin-top: 20px;
    gap: 16px;
  }
  .slider-pagination {
    gap: 8px;
  }
}

/* Theatre Guide Section Top - General */
.theatre-guide-section-top {
  /* Existing background with stripes should be here or inherited */
}

/* PC Styles for Theatre Guide Top */


/* PCコンテンツの基本的な構造スタイル (既存スタイルと競合する場合は調整が必要) */
.theatre-main-content-pc {
  display: flex;
  gap: 30px;
  align-items: flex-start;
  justify-content: space-between;
  max-width: 1100px; /* PCレイアウトに合わせて調整 */
  margin: 40px auto 0; /* タイトルからのマージン */
  background-color: #fff;
  border-radius: 16px;
}
.theatre-image-pc {
  flex-shrink: 0;
  width: 450px; /* PCレイアウトに合わせて調整 */
  border-bottom-left-radius: 16px;
  border-top-left-radius: 16px;
}
.theatre-image-pc img { display: block; width: 100%; border-bottom-left-radius: 16px;
  border-top-left-radius: 16px;}
.theatre-details-pc { flex-grow: 1; padding: 30px 0}
.theatre-details-pc .theatre-name { font-size: 24px; font-weight: bold; color: #FF398C; margin-bottom: 20px; }
.theatre-details-pc .theatre-info-item { display: flex; align-items: flex-start; margin-bottom: 15px; font-size: 14px; line-height: 1.6; }
.theatre-details-pc .info-icon { width: 20px; height: 20px; margin-right: 10px; margin-top: 3px; }
.theatre-details-pc .info-text .info-title { font-weight: bold; margin-bottom: 4px; }
.theatre-buttons-pc {
  margin-top: 30px;
  display: flex;
  gap: 15px;
  flex-wrap: nowrap;
  justify-content: flex-start;

}

/* 共通ボタンのスタイル (既存の .btn スタイルと統合または調整) */
.btn-reserve-theatre, .btn-more-info-theatre {
  display: inline-flex; /* Changed to inline-flex for vertical centering */
  align-items: center;
  justify-content: center;
  padding: 0 20px; /* Adjusted padding for consistent height */
  height: 48px; /* Consistent height like SP buttons */
  border-radius: 9999px;
  text-align: center;
  font-weight: normal;
  font-size: 16px;
  text-decoration: none;
  transition: opacity 0.3s ease;
  line-height: 1; /* For flex centering */
  box-sizing: border-box;
}
.btn-reserve-theatre { background: linear-gradient(to right, #ff398c, #ce6dff); color: #ffffff; border: none; }
.btn-more-info-theatre { background-color: #ffffff; color: #252525; border: 1px solid #d9d9d9; }
.btn-reserve-theatre:hover, .btn-more-info-theatre:hover { opacity: 0.8; }

.slick-dots {
  display: flex;
  justify-content: center;
  margin: 30px auto;
  gap: 10px;
}

.slick-dots li {
  width: 12px;
  height: 12px;
  background: #fff;
  cursor: pointer;
  border-radius: 50%;
}

.slick-dots li.slick-active {
  background-color: #FF398C;
  width: 24px;
  border-radius: 10px;
}
.slick-dots li button {
  display: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  outline: none;
  padding: 0;
  border: none;
  background-color: transparent;
}
.topics-slider .
/* SP Styles for Theatre Guide Top */
@media (max-width: 768px) {
  .theatre-guide-section-top {
    padding-top: 52px; /* 固定ヘッダーの高さ分 */
    /* padding-bottom はFigmaのSPデザインに準拠 (68px) */
    /* background-image と background-size は既存のものを維持 */
  }
  .theatre-guide-section-top .theatre-guide-title {
    margin-top: 48px; /* Figma SP: pt-12 (48px) for title block */
    margin-bottom: 28px; /* Figma SP: gap-7 (28px) to content card */
  }

  .theatre-content-pc { display: none; }
  .theatre-content-sp { display: block; padding: 0 16px; /* px-4 */ }

  .theatre-card-sp { /* Figma 121-9631 */
    background-color: #ffffff;
    border-radius: 16px; /* rounded-2xl */
    box-shadow: 0px 20px 25px -5px rgba(0,0,0,0.1), 0px 8px 10px -6px rgba(0,0,0,0.1);
    overflow: hidden;
  }

  .theatre-image-sp { /* Figma 121-9632 */
    width: 100%; height: 180px; overflow: hidden;
  }
  .theatre-image-sp img { width: 100%; height: 100%; object-fit: cover; }

  .theatre-accordion-sp { padding: 0 16px; /* px-4 for trigger/content area within card */ }

  .accordion-trigger { /* Figma 121-9635 area */
    display: flex; justify-content: space-between; align-items: center;
    width: 100%; background: none; border: none;
    padding: 20px 0; /* Vertical spacing for trigger area */
    cursor: pointer; text-align: left;
  }

  .accordion-title-text { /* Figma 121-9636 */
    font-family: 'Hiragino Kaku Gothic Pro', sans-serif; font-weight: 600; font-size: 18px; color: #ff398c; line-height: 1.2;
  }

  .accordion-icon-wrapper { /* Figma 121-9637 */
    display: flex; align-items: center; justify-content: center;
    width: 18px; height: 18px; background-color: #ffeef5; border-radius: 9px;
  }
  .accordion-icon { width: 8px; height: 8px; /* Visual size of the + symbol lines */ }
  .accordion-icon.icon-minus { display: none; }
  .accordion-item.open .accordion-icon.icon-plus { display: none; }
  .accordion-item.open .accordion-icon.icon-minus { display: block; }

  .accordion-content { /* Content from Figma 61-305 */
    max-height: 0; overflow: hidden;
    transition: max-height 0.35s ease-out, padding-top 0.35s ease-out, padding-bottom 0.35s ease-out;
    /* padding-left and padding-right are on .theatre-accordion-sp */
  }
  .accordion-item.open .accordion-content {
    /* max-height will be set by JS. e.g., el.scrollHeight + "px" */
    padding-top: 10px; /* gap-2.5 before first item */
    padding-bottom: 20px; /* gap-5 to buttons area */
  }

  .content-detail-item { /* Figma 61-306, 61-314 etc. */
    display: flex; align-items: flex-start; margin-bottom: 10px; /* gap-2.5 */
  }
  .content-detail-item:last-child { margin-bottom: 0; }

  .detail-icon { /* Figma e.g. 61-308 */
    width: 16px; height: 16px; margin-right: 12px; /* gap-3 */ margin-top: 3px; flex-shrink: 0;
  }

  .detail-text h4 { /* Figma e.g. 61-312 (アクセス) */
    font-family: 'Hiragino Kaku Gothic Pro', sans-serif; font-weight: 600; font-size: 13px; color: #252525;
    margin: 0 0 2px 0; line-height: 1.4;
  }
  .detail-text p {
    font-family: 'Hiragino Kaku Gothic Pro', sans-serif; font-weight: 300; font-size: 11px; color: #252525;
    line-height: 1.45; /* leading-[16px] */
  }

  .theatre-buttons-sp { /* Container: Figma 236-4773 */
    padding: 0 16px 24px 16px; /* Card pb-8 (32px), buttons have gap-2. Overall looks like pb-24px for buttons area */
    display: flex; flex-direction: column; gap: 8px; /* gap-2 */ align-items: center;
  }
  .theatre-buttons-sp .btn-reserve-theatre,
  .theatre-buttons-sp .btn-more-info-theatre { /* Figma 121-9672 / 236-4769 */
    width: 195px; /* w-[194.63px] */
    /* height: 48px; Already set by common styles */
    /* padding: 0 15px; Already set by common styles */
    /* font-size, line-height also from common */
  }
}

.information-section .info-item:last-child {
  border-bottom: none;
  margin-bottom: 0;
}
.information-section .info-date {
  font-weight: bold;
  margin-bottom: 5px;
}
.information-section .info-title {
  color: #333;
}


/* Schedule Section */
.schedule-section {
  background-color: #FF88BA;
  padding: 88px 0;
  position: relative;
  /*overflow: hidden;*/
}

.schedule-section::before,
.schedule-section::after {
  content: '';
  position: absolute;
  width: 480px;
  height: 480px;
  background-repeat: no-repeat;
  background-size: contain;
  z-index: 1;
}

.schedule-section::before {
  background-image: url('images/2025/bg_star_frame_top_w.svg');
  top: 0;
  left: 0;
}

.schedule-section::after {
  background-image: url('images/2025/bg_star_frame_bottom_w.svg');
  bottom: 0;
  right: 0;
}


.schedule-container {
  max-width: 896px;
  margin: 0 auto;
  padding: 0 20px;
  /*position: relative;*/
  z-index: 2;
}

.schedule-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 28px;
}

.schedule-nav {
  display: flex;
  align-items: center;
  gap: 20px;
}

.schedule-nav .nav-arrow {
  background: #fff;
  border: none;
  border-radius: 50%;
  width: 40px;
  height: 40px;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  box-shadow: 0 4px 6px rgba(0,0,0,0.1);
}

.current-month {
  font-size: 22px;
  font-weight: 600;
  color: #252525;
  letter-spacing: 1.54px;
}

.view-switcher {
  display: flex;
  border-radius: 4px;
  overflow: hidden;
}

.view-switcher .view-tab {
  padding: 6px 8px;
  border: none;
  background-color: #bbb;
  color: white;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  transition: background-color 0.3s;
}

.view-switcher .view-tab.active {
  background-color: #FF398C;
}

.schedule-view-container {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
}

.schedule-view {
  display: none;
}

.schedule-view.active {
  display: block;
}

/* Calendar View */
.calendar-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  width: 100%;
}

.calendar-header {
  background-color: #252525;
  color: white;
  padding: 18px 0;
  text-align: center;
  font-size: 16px;
}

.calendar-day {
  border-right: 1px solid #e8e8e8;
  border-top: 1px solid #e8e8e8;
  padding: 13px 9px;
  min-height: 147px;
  position: relative;
  font-size: 15px;
  font-weight: 600;
}

.calendar-day:nth-child(7n) {
  border-right: none;
}

.calendar-day-full-width {
  grid-column: 1 / -1;
  border-top: 1px solid #e8e8e8;
  padding: 4px;
  font-size: 13px;
  color: white;
  border-radius: 0;
}


.event {
  font-size: 13px;
  color: white;
  padding: 5px 4px;
  border-radius: 4px;
  margin-top: 2px;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.event.color-pink { background-color: #FF398C; }
.event.color-purple { background-color: #B639FF; }
.event.color-blue { background-color: #3992FF; }

/* List View */
.schedule-list-view {
  padding-bottom: 20px;
}
.list-item {
  border-bottom: 1px solid #ddd;
}
.list-item:last-child {
  border-bottom: none;
}

.list-date-header {
  background-color: #f3f3f3;
  padding: 12px 14px;
  display: flex;
  justify-content: space-between;
  font-size: 16px;
}

.list-event {
  display: flex;
  align-items: center;
  padding: 8px 28px;
  border-top: 1px solid #ddd;
}
.list-item .list-event:first-of-type {
  border-top: none;
}

.event-color-dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  margin-right: 10px;
  flex-shrink: 0;
}

.event-color-dot.color-pink { background-color: #FF398C; }
.event-color-dot.color-purple { background-color: #B639FF; }
.event-color-dot.color-blue { background-color: #3992FF; }

.list-event p {
  margin: 0;
  font-size: 16px;
}
.loading {
  margin: 0;
  padding: 0;
  background: #FFEDFA;
  height: 100vh; /* フォールバック */
  height: calc(var(--loadingH, 1vh) * 100);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
}
.loading #logo-container {
  width: 450px;
  height: auto;
  position: relative;
  z-index: 10;
}
.loading .sparkle {
  position: absolute;
  width: 40px;
  height: 40px;
  opacity: 0;
  transform: scale(0);
}
.loading #logo-container svg {
  transform: scale(0);
  opacity: 0;
  transform-origin: center;
}
.member-list {
  display: flex;
  max-width: 1160px;
  margin: 30px auto;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 15px;
}
.member-list .member-card {
  width: 24%;
  height: 450px;
  margin-right: 0;
  margin-bottom: 10px;
  border-radius: 12px;
}
.member-list .member-thumbnail {
  margin-bottom: 0;
  border-top-right-radius: 12px;
  border-top-left-radius: 12px;
}
.member-list .member-group-list img {
  width: 15%;
}
.member-list-page {
  padding-top: 50px;
}
.event-modal__reservation-wrap-col2-flex {
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: nowrap;
}
/* SP Styles */
@media (max-width: 768px) {
  .schedule-section {
    padding: 48px 0 68px;
  }
  .schedule-section::before,
  .schedule-section::after {
    width: 180px;
    height: 180px;
  }

  .schedule-container {
    padding: 0 16px;
  }

  .schedule-header {
    flex-direction: column;
    gap: 12px;
    margin-bottom: 12px;
  }

  .current-month {
    font-size: 18px;
  }

  .schedule-nav .nav-arrow {
    width: 28px;
    height: 28px;
  }

  .schedule-nav .nav-arrow img {
    width: 16.8px;
    height: 16.8px;
  }

  .view-switcher .view-tab {
    font-size: 12px;
    padding: 6px;
  }

  .calendar-grid {
    grid-template-columns: repeat(7, 1fr);
  }
  .calendar-header {
    padding: 12px 0;
    font-size: 14px;
  }
  .calendar-day {
    min-height: 115px;
    font-size: 12px;
    padding: 8px 4px;
  }
  .event {
    font-size: 10px;
    padding: 3px;
  }

  .breadcrumbs {
    margin-top: 52px;
    font-size: 2vw;
  }
  .page-title-banner-container {
    margin-top: 2vh;
  }
  .page-main-heading {
    font-size: 8vw;
  }
  .page-sub-heading {
    font-size: 3.5vw;
  }
  .intro-content-block {
    max-width: 80%;
  }
  .intro-flex-container {
    flex-wrap: wrap;
  }
  .intro-image-column,
  .intro-image-column img {
    width: 100%;
    height: auto;
  }
  .intro-main-image {
    border-top-left-radius: 16px;
    border-bottom-left-radius: 0;
    border-top-right-radius: 16px;
    object-fit: none;
    height: auto;
  }
  .intro-frame-right-bottom {
    width:50%;
    right: -30px;
    bottom: -30px;

  }
  .intro-frame-left-top {
    width: 50%;
    left: -30px;
    top: -30px;
  }
  .theater-guide-schedule-section #calendar {
    width: 90%;
  }
  .info-content-container {
    max-width: 90%;
    padding: 0 0 30px 0;
  }
  .map-image {
    width: 100%;
    height: 20vh;
  }
  .info-map-column {
    width: 100%;
    margin-bottom: 0;
  }
  .info-details-column {
    padding: 0 20px 0;
    margin-top: 1vh;
  }
  .info-text {
    font-size: 3vw;
  }
  .info-ticket-button {
    margin-top: 2vh;
    font-size: 4vw;
    font-weight: 400;
    width: 60%;
    padding: 1.5vh 0;
  }
  .price-card-half {
    border-top: none;
  }
  .card-description {
    font-size: 3vw;
  }
  .card-footnote {
    font-size: 2.5vw;
  }
  .mvk-group-card {
    padding-bottom: 0;
  }
  .performance-content-section {
    margin-top: 3vh;
  }
  .system-section .section-title-main {
    font-size: 6vw;
  }
  .performance-icon {
    width: 100px;
    height: 100px;
  }
  .performance-hashtags {
    flex-direction: column;
    align-items: flex-start;
  }
  .performance-hashtags span {
    font-size: 2vw;
  }
  .limited-performance-wrapper .performance-icon {
    width: 150px;
    height: 150px;
  }
  .performance-item {
    width: 100%;
  }
  .performance-icon img {
    max-width: unset;
    max-height: unset;
    width: 60%;
    height: auto;
  }
  .limited-performance-title {
    font-size: 4vw;
    margin-bottom: 3vh;
  }
  .view-details-button-container .btn {
    width: 60%;
  }
  .floor-map-content-block {
    width: 80%;
  }
  .floor-map-flex-container {
    width: 100%;
  }
  .ticket-step {
    flex-direction: row;
    gap: 4vw;
    padding-top: 2vh;
    padding-bottom: 2vh;
  }
  .step-title {
    font-size: 5.5vw;
    font-weight: 600;
    text-align: left;
    margin-bottom: 0;
  }
  .step-number-container {
    border-width: 15px;
    margin-bottom: 0;
  }
  .step-number {
    margin-bottom: 0;
    font-family: "Hiragino Kaku Gothic Pro";
    font-size: 5vw;
    font-weight: 400;

  }
  .step-number-container-second {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    width: 65%;
  }
  .step-description {
    font-size: 3.5vw;
    line-height: 1.5;
    text-align: left;
  }
  .step-arrow {
    transform: none;
    width: 4vw;
  }
  .map-image {
    border-bottom-left-radius: 0;
  }
  .ticket-steps-container {
    gap: 1vh;
    margin: 5vh auto 0;
  }
  .ticket-notes {
    margin: 3vh auto;
  }
  .main-catchcopy {
    font-size: 5vw;
    margin-bottom: 2vh;
  }
  .card-image-column {
    max-width: unset;
    width: auto;
    max-height: 30vh;
    height: 30vh;
    margin: 0 auto;
  }
  .card-image-column img {
    height: 100%;
    width: auto;
  }
  .growth-content-card {
    gap: 2vh;
    padding: 5vh 5vw;
  }
  .mypage-catchcopy {
    font-size: 5vw;
    font-weight: 400;
    line-height: 1.6;
  }
  .features-grid {
    display: flex;
    flex-wrap: wrap;
    justify-content: flex-start;
    width: 90%;
    margin: 2vh auto 0;
  }
  .feature-item {
    display: flex;
    width: 100%;
    justify-content: space-between;
    gap: 5vw;
  }
  .feature-icon {
    width: 120px;
    height: 120px;
  }
  .mypage-section .section-title-main.en-font {
    color: #fff;
    border-top: 1px solid #FFF;
    border-bottom: 1px solid #FFF;
  }
  .section-title-sub {
    margin-top: 0;
  }
  .feature-text {
    display: flex;
    flex-wrap: wrap;
    width: calc(100% - 120px - 5vw);
    align-content: center;
    text-align: left;
  }
  .points-guide-wrapper {
    margin-top: 3vh;
  }
  .notes-grid {
    display: flex;
    flex-wrap: wrap;
    width: 80%;
    margin: 0 auto;
  }
  .note-card {
    width: 100%;
  }
  .notes-frame-right-bottom {
    width:50%;
    right: -30px;
    bottom: -30px;

  }
  .notes-frame-left-top {
    width: 50%;
    left: -30px;
    top: -30px;
  }
  .important-notes-section .section-inner {
    padding: 0;
  }
  .note-card h3 {
    margin-bottom: 1vh;
  }
  .note-card ul li, .note-card p {
    font-size: 3vw;
    margin-bottom: 0;
  }
  .member-list {
    width: 90%;
    gap: 0;
    justify-content: space-between;
  }
  .member-list .member-card {
    width: 49%;
    padding-bottom: 1vh;
    height: auto;
  }
  .member-list .member-name {
    margin-top: 2vh;
  }
  .member-list .member-group-list img {
    width: 18%;
  }
  .fc-prev-button,
  .fc-next-button {
    font-size: 3vw;
  }
  .fc .fc-toolbar-title {
    font-size: 4vw;
  }
  .fc .fc-dayGridMonth-button,
  .fc .fc-listMonth-button {
    font-size: 3.5vw;
  }
  #event-calendar-modal .event-modal__reservation-wrap.mvk {
    margin-top: 2vh;
  }
  #event-calendar-modal .event-modal__reservation-wrap-col2 {
    flex-wrap: wrap;
    align-items: flex-start;
  }
  #event-calendar-modal .event-modal__reservation-wrap-col2-flex {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    width: 80%;
    flex-wrap: wrap;
  }
  #event-calendar-modal .event-modal__reservation-wrap-col2-flex .event-modal__reservation-title,
  #event-calendar-modal .event-modal__reservation-wrap-col2-flex .event-modal__reservation-select-text {
    width: 100%;
  }
  #event-calendar-modal .event-modal__reservation-select-text {
    margin-top: 0;
  }
  #event-calendar-modal .event-modal__reservation-title {
    margin-right: 0;
    font-size: 4vw;
    font-weight: 600;
  }
  #event-calendar-modal .schedule__event-reservation-text {
    margin: 1vh auto 3vh;
  }
  #event-calendar-modal .event-modal__reservation-select-box {
    font-size: 3vw;
    padding: 3px 8px;
  }
  .event-modal__reservation-btn {
    border-radius: 4px;
  }
  .loading #logo-container {
    width: 50%;
  }
  #event-calendar-modal .event-modal__reservation-select-text.price-text {
    width: 100%;
  }
  .schedule__date-title {
    width: 90%;
    margin: 0 auto;
  }
}
.remodal {
  padding: 0;
}
.remodal img {
  max-height: 100%;
  max-width: 100%;
}
@media only screen and (min-width: 641px) {
  .remodal {
    max-width: 90%;
    max-height: 90%;
    height: 100%;
    width: auto;
  }
}
