body {
    position: relative;
	background-color: #000000;
	color: #FFFFFF;
}
.reserve-cta {
  position: fixed;
  top: 50%;
  right: 50%;
  transform: translate(50%, -50%);
  writing-mode: vertical-rl;
  text-orientation: mixed;
  border: 1px solid rgba(255,255,255,1);
  font-family: 'Shippori Mincho', serif;
  font-size: 120%;
  letter-spacing: 0.3em;
  padding: 18px 10px;
  background: rgba(0,0,0,0.6);
  color: #fff;
  text-decoration: none;
  transition: 0.5s;
  z-index: 85;
  pointer-events: auto;
  /* ★ここがポイント */
  margin-right: -400px; /* 900px ÷ 2 */
}

/*.reserve-cta:hover {
  background: rgba(255,255,255,0.8);
  color: #000;
  transition: 0.5s;
}*/
.reserve-cta a:link,a:visited,a:active,a:hover {
}
#wrapper {
    font-family: 'Shippori Mincho', serif;
    width: 100%;
    margin: 0 auto;
    max-width: 900px;
    padding-bottom: 0%;
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    min-height: 100vh;
    padding-left: 0%;
    padding-right: 0%;
	pointer-events: auto;
}
#header {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
#header_wrap {
	max-width: 900px;
	position: fixed;
	left: 0%;
	right: 0%;
	margin-left: auto;
	margin-right: auto;
	z-index: 100;
	padding-top: 30px;
	padding-left: 5%;
	padding-right: 5%;
}
.contents_wrap {
    display: flex;
    flex-direction: column;
    margin-top: 100px;
    transition: 0.5s;
    flex: 1;
    /* [disabled]width: 90%; */
    /* [disabled]padding-left: 5%; */
    /* [disabled]padding-right: 5%; */
}
.contact_wrap {
	display: flex;
	flex-direction: column;
	width: 80%;
	height: 80vh;
	margin-top: 120px;
	transition: 0.5s;
	flex: 1;
}
#footer {
    /* [disabled]background-color: #F0EFEE; */
    width: 100%;
    /* [disabled]padding-left: 5%; */
    /* [disabled]padding-right: 5%; */
    margin-top: 5%;
    padding-bottom: 2%;
    transition: 0.5s;
    bottom: 0%;
    height: auto;
}
.artist-section {
  max-width: 900px;
  margin: 20px auto;
  padding: 0 0%;
  display: flex;
  flex-direction: column;
  gap: 60px;
}

.artist {
  display: flex;
  align-items: flex-start;
  gap: 40px;
}

.artist-photo img {
  width: 160px;
  height: auto;
  display: block;
}

.artist-text h3 {
    font-size: 115%;
    letter-spacing: 2px;
    margin-bottom: 15px;
    margin-top: 0px;
}

.artist-text p {
  font-size: 85%;
  line-height: 1.4;
  letter-spacing: 1px;
}

/* ===== スマホ対応 ===== */
@media screen and (max-width: 768px) {
  .artist {
    flex-direction: column;
    gap: 20px;
  }
.artist-text p {
  font-size: 95%;
  line-height: 1.6;
  letter-spacing: 1.5px;
}
  .artist-photo img {
    width: 100%;
    max-width: 200px;
  }
}
.sponsor-logos {
    display: flex;
    align-items: left;
    gap: 24px;              /* ロゴ同士の間隔 */
    flex-wrap: wrap;        /* 画面が狭いと折り返す */
    margin-top: 20px;
    margin-right: 0;
    margin-left: 0;
    margin-bottom: 20px;
}

.sponsor-logos img {
  height: 80px;           /* ← 基準は「高さ」 */
  width: auto;
  margin: 8px;
  transition: opacity 0.3s;
}
@media screen and (max-width: 767px) {
  .sponsor-logos img {
    height: 13vw;
  }
}
.undercon {
    vertical-align: middle;
    align-items: center;
    height: 100%;
    /* [disabled]width: auto; */
    margin: auto;
    letter-spacing: 0px;
    color: #999;
    padding-top: 0px;
    /* [disabled]max-width: none; */
}
.slideshow {
    position: relative;
    width: 100%;
    height: 76vh;   /* ← これが重要！ */
    overflow: hidden;
}

.slideshow img {
  z-index: 100;    /* ← これが重要！ */
  position: absolute;
  top: 0; left: 0;
  width: 100%;
  height: 100%;
  object-fit: contain;
  opacity: 0;               /* ← 最初は透明 */
  transition: opacity 2s;
}

.slideshow img.active {
  opacity: 1;               /* ← active のときだけ見える */
}
.slideshow-caption {
  position: absolute;
  bottom:0px;
  right: 0px;
  background: rgba(0,0,0,0.5);
  color: #fff;
  padding: 6px 10px;
  font-size: 85%;
  border-radius: 0px;
  opacity: 0;
  transition: opacity 0.6s ease;
  pointer-events: none;
  max-width: 70%;
  line-height: 1.3;
  z-index: 50; /* ← これを追加！前面に出す */
  white-space: normal; /* ←自動改行 */

}

.slideshow-caption.show {
  opacity: 1;
}
.index {
    font-size: 130%;
    letter-spacing: 3px;
    margin-bottom: 10px;
}
.title {
    font-size: 12vh;       /* ← 画面幅の1/3 */
    line-height: 1%;
    font-family: 'Bodoni Moda', serif;
    font-weight: 500;  /* 適当。太さは自由に調整 */
    z-index: 80;
    transform: rotate(90deg);
    transform-origin: left top;
    transition: 0.5s;
    color: #FFFFFF;
    white-space: nowrap;     /* ← 改行させない */
}
.store_blue {
    transition: 0.5s;
    /* [disabled]margin-left: 10px; */
    color: #0EC1E8;
}
.store_red {
    transition: 0.5s;
    /* [disabled]margin-left: 10px; */
    color: #e96153;
}
.store_beta {
	margin-left: 10px;
	font-weight: normal;
	color: #999999;
}
.map {
    margin-bottom: 2%;
    z-index: 2;
    display: flex;
    transition: 0.5s;
    margin-top: 10%;
    margin-left: auto;
    margin-right: auto;
    padding-left: auto;
    padding-right: auto;
}
.contents {
	width: 90%;
	height: auto;
	margin-bottom: 2%;
	z-index: 2;
	display: flex;
	transition: 0.5s;
	padding: 0px;
	border-width: 0px;\
	position: relative;
}
.contents img {
    height: auto;
    width: auto;
    transition: 0.5s;
}
.contents2 {
    /* [disabled]width: 90%; */
    height: auto;
   /* background-color: #F0EEEE;*/
    margin-bottom: 10px;
    z-index: 2;
    display: flex;
    flex-direction: column;
    transition: 0.5s;
    padding: 0px;
    border-width: 0px;
}
/*.contents2 img {
	width: auto;
	/* [disabled]max-height: 550px; 
	width: 100%;
	transition: 0.5s;
	height: 100%;
}*/
.contents3 {
    display: block;
    flex-direction: column;
    transition: 0.5s;
    height: auto;
    /*background-color: #F0EEEE;*/
    margin-bottom: 1%;
}
.contents3 img {
    max-height: 100%;
    max-width: 100%;
    transition: 0.5s;
    z-index: auto;
}
.contents_text {
    display: flex;
    flex-direction: column;
    /* [disabled]width: 100%; */
    height: 100%;
}
.contents_text_wrap{
    margin: 2% 5%;
    transition: 0.5s;
    /* [disabled]display: flex; */
    /* [disabled]position: relative; */
    /* [disabled]width: 90%; */
}
.littlefont{
    font-size: 85%;
    margin-top: 1%;	
	letter-spacing: 0px;
}
.imgbox {
	padding: 0px;
	margin: 0px;
	display: block;
}
.topic_text {
	transition: 0.5s;
	letter-spacing: 0.5px;
}
.topic_text2 {
	transition: 0.5s;
	letter-spacing: 0.5px;
    margin-bottom: 2%;
}
.title_text {
    font-size: 150%;
    font-weight: normal;
    margin-bottom: 2%;
    transition: 0.5s;
    letter-spacing: 1px;
}
.title_text2 {
    font-size: 80%;
    font-weight: bold;
    margin-bottom: 1%;
    transition: 0.5s;
    letter-spacing: 1px;
}
.title_text2 p {
    color: #fff;
    background-color: #ABABAB;
    padding: 5px 7px;
    display: inline-block;
}
.price_wrap {
	display: flex;
	justify-content: space-between;
	transition: 0.5s;
	/* [disabled]margin-left: 50vw; */
	margin-top: auto;
	align-items: center;
	}
.price_wrap ul li {
	display: inline-block;
	margin-right: 0px;
	margin-left: 30px;
}
.price_text {
	font-size: 120%;
	letter-spacing: 2px;
	transition: 0.5s;
}
.price_text2 {
	font-size: 140%;
	letter-spacing: 2px;
	transition: 0.5s;
	margin-left: 45vw;
}
.button_text a {
    border: thin solid #FFF;
    padding-top: 5px;
    padding-right: 5px;
    padding-bottom: 5px;
    padding-left: 5px;
    transition: 0.3s;
}
.button_text  a:active,a:visited,a:visited,a:link {
    color: #FEFFCB;
}
.button_text  a:hover {
    color: #FFFFFF;
    background-color: #0EC1E8;
    border: thin solid #0EC1E8;
    transition: 0.3s;
}
.contact img {
    height: 13px;
    margin-right: 5px;
    font-size: 0%;
    padding-top: 0px;
}
.contact {
	padding-left: 0px;
	padding-top: 20px;
	text-align: center;
	font-size: 90%;
}
.contact ul li {
    display: inline-block;
    margin-right: 40px;
}
.footer_cr {
    font-size: 70%;
    padding-top: 10px;
}
.footer_cr ul  {
    display: flex;
    justify-content: center;
}
.footer_cr img {
    height: 28px;
    opacity: .4;
    margin-left: 30px;
}
#mail_icon {
    height: 11px;
    fill: #767676;
    margin-right: 2px;
}
.contact-btn a:link {
	transition: 0.3s;
}
.contact-btn a:hover {
	color:#0EC1E8;
	fill: #0EC1E8;
	transition: 0.3s;
}

.index p {
    font-weight: bold;
    padding-top: 20px;
    right: 0%;
}
.new {
    background-color: #A8A8A8;
}
.type_text p {
    font-size: 90%;
    background-color: #ABABAB;
    color: #FFFFFF;
    padding: 5px 7px;
    display: inline;
    /* [disabled]width: 0%; */
    font-weight: 800;
    margin-left: 0px;
    max-width: none;
}
.type_text  {
	margin-bottom: 10px;
}
iframe {
    border: none;
    width: 100%;
    height: 50vh;
    padding-top: 4%;
}
.scroll-indicator {
  position: absolute;
  bottom: 10px;
  left: 50%;
  transform: translateX(-50%);
  font-size: 24px;
  color: rgba(255,255,255,0.3);
  animation: blink 1.5s infinite;
}
.slideshow-indicators {
  text-align: center;
  padding: 15px 0;
 /* background: #fff;  /* 白背景 */*/
}

.slideshow-indicators .dot {
  display: inline-block;
  width: 10px;
  height: 10px;
  margin: 0 5px;
  background-color: #585858;
  border-radius: 50%;
  cursor: pointer;
  transition: background-color 0.3s;
}

.slideshow-indicators .dot.active {
  background-color: #FFF;
}
@keyframes blink {
  0%, 100% { opacity: 0.2; }
  50% { opacity: 1; }
}
@media only screen and (max-width: 900px) {
.contents_wrap {
    padding-left: 5%;
    padding-right: 5%;
}
  /* 内側のテキストの余白調整 */
  .contents_text_wrap {
    margin-top: 3%;
    margin-right: 4%;
    margin-left: 4%;
    margin-bottom: 3%;     /* ← 左右の余白を均一に */
  }
	.contents_wrap {
    /* [disabled]width: 100%; */
    /* [disabled]padding-left: 5%; */
    /* [disabled]padding-right: 5%; */
	}
.title {
    transition: 0.5s;
    line-height: 1px;
    transform: rotate(0deg);
    font-size: 350%;        /* ← 画面幅の1/3 */
}
.contents {
	display: block;
	flex-direction: column;
	transition: 0.5s;
	height: auto;
}
/*.contents img {
	max-height: 100%;
	max-width: 100%;
	transition: 0.5s;
}*/
.topic_text {
	font-size: 100%;
	transition: 0.5s;
	margin-right: 0px;
	margin-bottom: 5%;
	margin-top: 2%;
	letter-spacing: 2px;
}
.topic_text2 {
	font-size: 100%;
	transition: 0.5s;
	margin-right: 0px;
	letter-spacing: 2px;
}
.title_text {
    /* [disabled]font-size: 120%; */
    transition: 0.5s;
    letter-spacing: 4px;
    margin-bottom: 0%;
}
.button_text {
	font-size: 120%;
	transition: 0.5s;
}

.price_wrap {
	display: flex;
	flex-direction: column;
	transition: 0.5s;
	/* [disabled]margin-left: 50vw; */
	margin-top: auto;
	align-items: flex-start;
	}

.price_text2 {
	margin-top: 0px;
	margin-right: 0px;
	margin-left: 0px;
	margin-bottom: 10px;
	}
.contents3 img {
    width: 100%;
    height: 76vh;      /* 縦いっぱい（今のまま調整OK） */
    object-fit: contain;   /* ← 横をトリミングしない！ */
   /* background-color: #fff; /* 上下の余白も自然に白 */
  }
 .slideshow-caption {
    font-size: 80%;
    max-width: 80%;
  }
}
@media (max-width: 900px) {
  .reserve-cta {
    right: 5%;
    transform: translateY(-50%);
    margin-right: 0;
	font-size: 100%;
  }
}
