/*!
Theme Name: tct2026
Theme URI: https://github.com/labor-atories/theatercommons/wp-theme/tct2026
Author: laboratories
Author URI: http://labor-atories.com/
Version: 1.0.0
Text Domain: tct2026
*/

@charset "UTF-8";
abbr,address,article,aside,audio,b,blockquote,body,canvas,caption,cite,code,dd,del,details,dfn,div,dl,dt,em,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,html,i,iframe,img,ins,kbd,label,legend,li,mark,menu,nav,object,ol,p,pre,q,samp,section,small,span,strong,sub,summary,sup,table,tbody,td,tfoot,th,thead,time,tr,ul,var,video{margin:0;padding:0;border:0;outline:0;font-size:100%;vertical-align:baseline;background:transparent}body{line-height:1}article,aside,details,figcaption,figure,footer,header,hgroup,menu,nav,section{display:block}nav ul{list-style:none}blockquote,q{quotes:none}blockquote:after,blockquote:before,q:after,q:before{content:'';content:none}a{margin:0;padding:0;font-size:100%;vertical-align:baseline;background:transparent}ins{text-decoration:none}ins,mark{background-color:#ff9;color:#000}mark{font-style:italic;font-weight:700}del{text-decoration:line-through}abbr[title],dfn[title]{border-bottom:1px dotted;cursor:help}table{border-collapse:collapse;border-spacing:0}hr{display:block;height:1px;border:0;border-top:1px solid #ccc;margin:1em 0;padding:0}input,select{vertical-align:middle}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;-o-box-sizing:border-box;-ms-box-sizing:order-box;box-sizing:border-box}ul{list-style: none;}h1,h2,h3,h4,h5,h6{font-weight: 400;}
/* ------------------------------ */

:root {
  --main-color: #00ff00;
  --font-light: 'NHaasGroteskDSPro-45Lt', 'FP-こぶりなゴシック StdN W3', 'Yu Gothic Pr6N B', 'YuGothic', '游ゴシック', "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", 'Meiryo', sans-serif;
  --font-bold: 'NHaasGroteskTXPro-65Md', 'FP-こぶりなゴシック StdN W6', 'Yu Gothic Pr6N B', 'YuGothic', '游ゴシック', "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", 'Meiryo', sans-serif;
}
html{
  width: 100%;
  height: 100%;
  font-size: 62.5%;
}
body{
  width: 100%;
  font-size: 1.8rem;
  line-height: 2;
  font-family : var(--font-light);
  font-weight: 400;
  letter-spacing: 0.05em;
  padding-bottom: 60px;
  min-height: 100%;
  height: auto !important;
  height: 100%;
  padding-top: 42px; /* 固定ヘッダーの高さ */
  position: relative;
  -webkit-font-feature-settings: 'palt' 1;
  font-feature-settings: 'palt' 1;
  font-display: swap;
}
body.teaser{
  padding-top: 0;
}
body.en-US{
  line-height: 1.6;
  letter-spacing: .05em;
  -webkit-font-feature-settings: normal;
  font-feature-settings: normal;
}
::selection {
  color: #0099ff;
  background: none;
}
::-moz-selection {
  color: #0099ff;
  background: none;
}
a{
  color: #000000;
  text-decoration: none;
}
a:hover{
  color: var(--main-color);
  text-decoration: none;
}
.content-wrapper a{
  text-decoration: underline;
}
.content-wrapper a:hover{
  color: var(--main-color);
}
.din {
  font-size: 1.09em;
}
header{
  width: 100%;
  position: fixed;
  z-index: 999999999999999;
  top: 0;
  left: 0;
}
.teaser header{
  top: -100%;
  transition: all 0.3s;
}
.teaser header.active{
  top: 0;
}
header h1{
  float: left;
  margin-right: 14px;
}
header h1 a{
  border-bottom: none;
}
nav{
  width: 100%;
  font-family: var(--font-bold);
  padding-top: 10px;
  font-size: 2.2rem;
  font-weight: 700;
  line-height: 1;
  background-color: #ffffff;
}
.top-logo{
  width: 70px;
  margin-top: 1px;
  margin-left: 3px;
}
.top-logo a{
  width: 70px;
  vertical-align: bottom;
}

#g-nav{
  float: left;
}
.pc-nav{
  display: block;
}
.pc-nav ul{
  display: inline-block;
}
.pc-nav-inner{
  width: calc(100% - 24px);
  border-bottom: solid 2px var(--main-color);
  margin: auto;
  padding-bottom: 6px;
  color:#cccccc;
  display: flex;
  justify-content: start;
  align-items: center;
}
.pc-nav-inner .right{
  margin-left: auto;
  padding-right: 2px;
}
.home .pc-nav-inner{
  /*border-bottom: none;*/
}
.pc-nav-inner a{
  color:#000000;
}
.pc-nav-inner a:hover{
  color: var(--main-color);
}
.pc-nav-inner::after{
  content: '';
  display: block;
  clear: both;
}
.sp-navigation{
  position: fixed;
  display: none;
}
.menu-item{
  position: relative;
}
.menu-item:hover::after{
  height: 4px;
}
.lang{
  /* float: right; */
  margin-left: auto;
}
.lang li{
  float: right;
  margin-right: 12px;
  line-height: 1;
}
.lang a{
  color: #cccccc;
}
.lang .ja{
  color: #000000;
}
.lang .current a{
  color: #000000;
}
nav ul li{
  display: inline-block;
  margin-right:12px;
}
nav ul li a{
  border-bottom: none;
}
nav ul li a:hover{
  color: #000000;
}
nav ul li.none a{
  color: #b2b2b2;
  pointer-events: none;
}
nav ul li.none a:hover{
  color: #b2b2b2;
}
nav ul li:last-child{
  margin-right: 0;
}
nav ul.lang li:last-child{
  margin-right: 12px;
}
.lang li{
  vertical-align: middle;
  color: #cccccc;
  margin-right: 12px;
}
.sns{
  /* float: right;
  margin-top: -6px; */
  margin-left: auto;
}
.sns li{
  width: 26px;
  height: 26px;
  background-color: #000000;
  border-radius: 50%;
}
nav ul.sns li{
  margin-right: 0;
  margin-left: 4px;
}
.sns li img{
  width: 100%;
}

.content-wrapper h1,
.content-wrapper h2{
  display: inline-block;
  width: 100%;
  font-size: 3.4rem;
  line-height: 1;
  border-bottom: solid 1px #000000;
  padding: 16px 0 13px 0;
  margin-bottom: 24px;
}
.content-wrapper h2.twi{
  margin-bottom: 0;
}
.content-wrapper.schedule h1{
  margin-bottom: 0;
}
.content-wrapper h2{
  border-top: solid 1px #000000;
}

.content-list{
  width: calc((100%/3)*2);
}
.content-list li{
  border-bottom: solid 1px #000000;
  margin-bottom: 16px;
  padding: 24px 0;
}
.content-list li::after{
  content: '';
  display: block;
  clear: both;
}
.content-list-inner{
  width: calc(100% - 180px);
  float: left;
}
.content-list-title{
  font-size: 2.0rem;
  line-height: 2.4rem;
  margin-bottom: 12px;
  font-family : 'DIN Next W01', '游ゴシック体 Pr6N B', 'Yu Gothic Pr6N B', 'YuGothic', '游ゴシック', "ヒラギノ角ゴ ProN", "Hiragino Kaku Gothic ProN", "メイリオ", 'Meiryo', sans-serif;
}
.content-list-summary{
  margin-bottom: 24px;
}
.content-list-thumb{
  width: 180px;
  height: 180px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  float: left;
}
.error-404,
.contact-wrapper{
  padding: 0 12px;
}

body.home {
  padding-top: 37px;
  /*background-color: var(--main-color);*/
}
.pc{
  display: block;
}
.sp{
  display: none;
}
#loading{
  position: fixed;
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 100vh;
  top: 0;
  left: 0;
  z-index: 999999999999999999999999;
  background-color: #ffffff;
  background-image: url(images/loading.gif);
  background-repeat: no-repeat;
  background-position: center;
  background-size: 8%;
}
/* .home-wrapper::after{
  content: '';
  display: block;
  clear: both;
} */
.grid-item{
  width: 50%;
  padding: 12px;
}
.main-image-wrapper{
  position: relative;
  width: 100%;
}
.main-image{
  position: relative;
  width: 100%;
  margin: auto;
  background-image: url(./images/logo_tct2019.svg);
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  margin-bottom: 80px;
}
.main-image::after{
  content: '';
  display: block;
  width: 100%;
  padding-top: 76.6%;
}
.locate{
  width: calc(100%/3);
  text-align: left;
  float: right;
}
.locate p span{
  padding: 0 2px;
  display: inline-block;
  background-color: #ffffff;
}
.locate-ja .locate-kana{
  font-size: 4.8rem;
  line-height: 1;
  letter-spacing: -0.06em;
  margin-left: -3px;
}
.locate-ja .locate-date{
  font-size: 5.0rem;
  line-height: 1;
  letter-spacing: -0.06em;
  margin-bottom: 4px;
}
.locate-ja .locate-place{
  font-size: 3.2rem;
  line-height: 1;
  letter-spacing: -0.05em;
}
.locate-ja .locate-note{
  margin-top: 12px;
  font-size: 3.2rem;
  line-height: 1;
  letter-spacing: -0.05em;
}
.locate-en .locate-kana{
  font-size: 5.2rem;
  line-height: 4.4rem;
  letter-spacing: -0.02em;
  margin-bottom: 8px;
}
.locate-en .locate-date{
  font-size: 5.8rem;
  line-height: 5.0rem;
  letter-spacing: -0.06em;
  font-weight: 500;
  margin-bottom: 4px;
}
.locate-en .locate-place{
  margin-left: 4px;
  font-size: 2.8rem;
  line-height: 2.8rem;
  letter-spacing: -0.04em;
}
.logo-en{
  width: calc(100%/3);
  float: left;
  position: relative;
  z-index: 12;
}
.logo-en img{
  width: 95%;
}

.small{
  font-size: 0.8em;
  line-height: 0.8;
  vertical-align: .05em;
}
.cap{
  font-size: 0.8em;
  line-height: 0.8;
}
.top-artist-wrapper ul li .small{
  font-size: 0.5em;
  line-height: 1.2em;
  vertical-align: middle;
}
.en-US .top-artist-wrapper ul li{
  margin-bottom: 8px;
}

.home-26-mv{
  position: relative;
  width: 100%;
  height: calc(100vh - 42px);
  height: calc(100svh - 42px);
  /* background-color: #000; */
}
.mv-bg{
  position: absolute;
  width: 100%;
  height: 100%;
  object-fit: cover;
  top: 0;
  left: 0;
	z-index: 1;
}
.mv-logo-wrapper{
  position: absolute;
  width: 100%;
  height: 100%;
  top: 0;
  left: 0;
  display: grid;
	grid-template-columns: 1fr;
	grid-template-rows: 85% 15%;
	gap: 18px;
	z-index: 10;
}
.mv-logo-wrapper.other{
	height: 60%;
	top: auto;
	bottom: 0;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr;
	gap: 18px;
	z-index: 10;
}
.mv-logo-top{
	width: 100%;
	height: 100%;
	padding: 42px 28px 48px 28px;
}
.other .mv-logo-top{
	padding-top: 0;
}
.mv-logo-main{
	width: 100%;
	height: 100%;
	object-fit: contain;
	object-position: left top;
}
.mv-logo-bottom{
	position: relative;
	width: 100%;
}
.mv-logo-bottom-inner{
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	max-height: 100%;
	padding: 0 32px 42px 32px;
	display: flex;
	gap: 4%;
	aspect-ratio: 16/3;
}
.other .mv-logo-bottom-inner{
	top: 0;
	left: auto;
	right: 0;
	bottom: auto;
	justify-content: flex-end;
	gap: 5%;
}

.mv-logo-bottom-inner img{
	width: auto;
	height: 100%;
}
.mv-copy{
	position: absolute;
	font-size: 1.0rem;
	line-height: 1;
	letter-spacing: .09em;
	bottom: 8px;
	right: 8px;
	color: #fff;
	z-index: 100;
}
@media screen and (max-width: 960px) {
  .home-26-mv{
    height: calc(100vh - 37px);
    height: calc(100svh - 37px);
  }
	.mv-logo-wrapper.other{
		position: absolute;
		width: 100%;
		height: 100%;
		top: 0;
		left: 0;
		display: grid;
		grid-template-columns: 1fr;
		grid-template-rows: 85% 15%;
		gap: 18px;
		z-index: 10;
	}
	.mv-logo-wrapper{
		padding: 24px 15% 32px 12px;
	}
	.mv-logo-top{
		padding: 0;
	}
	.mv-logo-bottom-inner{
		width: 80%;
		padding: 0;
		gap: 6%;
	}
	.other .mv-logo-bottom-inner{
		width: 80%;
		padding: 0;
		gap: 6%;
		top: auto;
		left: 0;
		right: auto;
		bottom: 0;
		justify-content: flex-start;
	}
}

.home-wrapper{
  width: 100%;
  padding: 24px 12px;
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: minmax(100px, auto);
  gap: 24px;
}
.home-heading{
  display: inline-block;
  font-family: var(--font-bold);
  text-transform: uppercase;
  width: 100%;
  font-size: 3.0rem;
  line-height: 1;
  letter-spacing: .05em;
  border-top: solid 1px #000000;
  border-bottom: solid 1px #000000;
  padding: 12px 0 10px 0;
}
.home-inner{
  width: 100%;
}
.home-catch{
  grid-column: 1 / 3;
  grid-row: 1 / 2;
	 /* grid-row: 1/8; */
  font-size: 2.7vw;
  line-height: 1.5;
}
.en-US .home-catch{
  line-height: 1.3;
}
.home-catch .ib{
  display: inline-block;
}
.home-inner.artist{
  grid-column: 3 / 5;
  grid-row: 1 / 7;
}
.home-inner.news{
  grid-column: 3 / 5;
  grid-row: 7/8;
}
.home-inner.ticket{
  grid-column: 1 / 3;
  /* grid-row: 2/3; */
	grid-row: 2/3;
  padding-bottom: 18px;
}
.home-inner.credit{
  grid-column: 1 / 3;
  /* grid-row: 3/4; */
	 grid-row: 3/6;
}
.home-inner.sns{
  grid-column: 1 / 3;
  grid-row: 6/7;
}

@media screen and (max-width: 960px) {
  .home-wrapper{
    grid-template-columns: 1fr;
    grid-auto-rows: auto;
    gap: 16px;
  }
  .home-catch{
    font-size: 6.2vw;
    letter-spacing: -.01em;
    grid-column: unset;
    grid-row: unset;
  }
  .home-inner.artist{
    grid-column: unset;
    grid-row: unset;
  }
  .home-inner.news{
    grid-column: unset;
    grid-row: unset;
  }
  .home-inner.ticket{
    grid-column: unset;
    grid-row: unset;
    padding-bottom: 18px;
  }
  .home-inner.credit{
    grid-column: unset;
    grid-row: unset;
  }
  .home-inner.sns{
    grid-column: unset;
    grid-row: unset;
  }
}

.home-news-list{
  width: 100%;
}
.home-news-item{
  width: 100%;
  border-bottom: solid 1px #000000;
}
.home-news-link{
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  align-items: center;
  font-size: 1.8rem;
  line-height: 1.5;
  padding: 14px 0 12px 0;
}
.home-news-link .date{
  width: 120px;
  text-align: justify;
  font-size: 1.6rem;
  line-height: 1;
  font-family: var(--font-bold);
}
.home-news-link .title{
  width: calc(100% - 120px);
}

@media screen and (max-width: 960px) {
  .home-news-link{
    font-size: 1.6rem;
    padding: 12px 0 8px 0;
  }
  .home-news-link .date{
    width: 100%;
    font-size: 1.4rem;
    margin-bottom: 6px;
  }
  .home-news-link .title{
    width: 100%;
  }
}

.home-artist-container{
  padding: 12px 0;
}
.home-artist{
  margin-bottom: 18px;
}
.home-artist.main{
  margin-bottom: 18px;
  padding-bottom: 18px;
  border-bottom: solid 1px #cccccc
}
.home-artist .date{
  font-size: 2.0vw;
  line-height: 1;
  font-family: var(--font-bold);
  margin-bottom: 1vw;;
}
.home-artist-inner{
  margin-top: 16px;
}
.home-artist-inner+.home-artist-inner{
  margin-top: 24px;
}
/* .home-artist.main .title .ja{
  font-size: 2.6vw;
  line-height: 1.2;
  letter-spacing: -0.01em;
}
.home-artist.main .title .en{
  font-size: 2.0vw;
  line-height: 1.3;
} */

.home-artist .artist-name .ja{
  font-size: 2.0vw;
  line-height: 1.3;
}
.home-artist .title .ja{
  /* font-size: 2.0vw; */
  font-size: 2.7vw;
  line-height: 1.3;
}
.home-artist .title .ja .ib{
  display: inline-block;
}
.home-artist .artist-name .en{
  font-size: 1.6vw;
  line-height: 1.3;
}
.home-artist .title .en{
  /* font-size: 1.6vw; */
  font-size: 2.0vw;
  line-height: 1.3;
}

.en-US .home-artist .title .en{
  font-size: 2.8vw;
  line-height: 1.3;
}

.home-artist .cate{
  display: flex;
  flex-wrap: wrap;
  font-size: 1.4rem;
  line-height: 1;
  gap: 8px;
  margin-top: 8px;
}
.home-artist .cate div{
  display: inline-block;
  border: solid 1px #555;
  padding: 5px 6px 4px 6px;
}

@media screen and (max-width: 960px) {
  .home-artist .date{
    font-size: 6.0vw;
    margin-bottom: 2vw;
  }
  .home-artist.main .title .ja{
    font-size: 5.8vw;
  }
  .home-artist.main .title .en{
    font-size: 4.8vw;
  }
  .home-artist .artist-name .ja{
    font-size: 4.8vw;
  }
  .home-artist .title .ja{
    font-size: 5.8vw;
  }
  .home-artist .title .en{
    font-size: 4.8vw;
  }
  .en-US .home-artist .title .en{
    font-size: 6.0vw;
  }
}

.home-banner{
  display: inline-block;
  width: auto;
  /* padding: 12px 18px; */
  padding: 18px 28px;
  border: solid 1px #000000;
  background-color: #fff;
  filter: drop-shadow(16px 16px 0px #000000);
  transition: all 0.1s 0s cubic-bezier(0.16, 1, 0.3, 1);
}

/* @media (hover: hover) and (pointer: fine){
  .home-banner:hover{
    color: #ffffff;
    background-color: var(--main-color);
    filter: drop-shadow(0 0 0px #000000);
  }
} */

.home-banner .ja{
  /* font-size: 3.6vw; */
  font-size: 6.0vw;
  line-height: 1.2;
  margin-left: -.1em;
}
.home-banner.ud .ja{
  letter-spacing: -.005em;
}
.home-banner .en{
  /* font-size: 2.2vw; */
  font-size: 3.2vw;
  line-height: 1.2;
}
.en-US .home-banner .en{
  font-size: 4.2vw;
}
.home-credit{
  padding: 12px 0;
  font-size: 1.6rem;
  line-height: 1.3;
}
.home-credit p+p{
  margin-top: 6px;
}
.home-credit .ja{
  margin-bottom: 12px;
}
@media screen and (max-width: 960px) {
  .home-banner{
    max-width: calc(100% - 12px);
    /* padding: 8px 12px; */
    padding: 10px 24px 12px 24px;
    filter: drop-shadow(8px 8px 0px #000000);
  }
  .home-banner .ja{
    font-size: 10.8vw;
  }
  .home-banner.ud .ja{
    /* font-size: 10.0vw; */
    font-size: 11.4vw;
  }
  .home-banner .en{
    /* font-size: 4.2vw; */
    font-size: 7.2vw;
  }
  .en-US .home-banner .en{
    font-size: 8.4vw;
  }
}
.home-sns{
  display: flex;
  justify-content: flex-start;
  align-items: center;
  gap: 12px;
  padding: 18px 0;
}
.home-sns-link{
  display: flex;
  justify-content: center;
  align-items: center;
  background-color: #000;
  width: 42px;
  aspect-ratio: 1/1;
  border-radius: 50%;
}
.home-sns-img{
  width: 80%;
  vertical-align: bottom;
}

.home-x{
  width: 100%;
  padding: 0 24px;
  background-color: #f0f0f0;
}
.home-x-inner{
  width: 65%;
  padding: 18px 0;
  margin: auto;
}

.report-wrapper{
  padding: 0 12px;
}
.report-inner{
  max-width: 960px;
}
.report-inner::after{
  content: '';
  display: block;
  clear: both;
}
.report-inner li{
  width: 100%;
  border-top: solid 1px #000000;
  padding: 24px 0;
  margin-bottom: 42px;
}
.report-inner li:first-child{
  padding-top: 0;
  border-top: none;
}
.news-head::after{
  content: '';
  display: block;
  clear: both;
}
a.news-title{
  font-size: 2.8rem;
  line-height: 1.5;
  border: none;
  text-decoration: none;
}
.news-date{
  font-size: 2.4rem;
  line-height: 1.3;
  margin-bottom: 42px;
}
.news-summary{
  margin-bottom: 24px;
}
.news-has-thumb{
  width: calc(100% - 220px);
  float: left;
  padding-right: 48px;
}
.news-thumb{
  width: 220px;
  height: 160px;
  background-size: contain;
  float: left;
  background-repeat: no-repeat;
  background-position: center;
}
.news-more,
.news-back{
  float: left;
}
.news-back{
  margin-bottom: 48px;
}
.news-main-image-wrapper{
  width: 100%;
  margin-bottom: 24px;
}
.news-main-image-wrapper img{
  max-width: 100%;
  vertical-align: bottom;
}
.news-main-image-caption{
  font-size: 1.4rem;
  line-height: 2.4rem;
}
.news-single-header{
  width: 100%;
  margin-top: 48px;
}
.news-single-header .news-title,
.news-single-header a.news-title{
  font-size: 3.6rem;
  line-height: 1.2;
  text-decoration: none;
  margin-bottom: 8px;
}
.news-main-inner{
  text-align: justify;
  margin-bottom: 36px;
}
.news-main-inner p+p{
  margin-top: 18px;
}
.news-main-inner p+h3{
  margin-top: 28px;
}
.news-main-inner strong{
  font-family: var(--font-bold);
}
.news-main-inner h3{
  font-size: 2.2rem;
  font-family: var(--font-bold);
  font-weight: 700;
  line-height: 1.5;
  margin-bottom: 12px;
}

/* ----------- program --------- */

.program-achive-header{
  padding: 0 12px;
}
.program{
  width: 100%;
  margin-bottom: 32px;
}
.program::after{
  content:'';
  display: block;
  clear: both;
}
.program > ul{
  width: 100%;
  letter-spacing: -.40em;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flex;
  display: -o-flex;
  display: flex;
  flex-wrap: wrap;
  flex-direction: row;
}
.program > ul::after{
  content:'';
  display: block;
  clear: both;
}
.program > ul > li{
  width: calc(100%/3);
  display: inline-block;
  vertical-align: bottom;
  letter-spacing: normal;
  /*float: left;*/
}
.program-image{
  width: 100%;
  position: relative;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  border: solid 1px #cccccc;
  border-left: none;
}
.program-image::before{
  content: '';
  display: block;
  padding-top: 58%;
}
.program.content-wrapper a{
  text-decoration: none;
}
.program-data{
  width: 100%;
  padding: 4px;
  padding-bottom: 24px;
  font-size: 2.6rem;
  line-height: 1.2;
  letter-spacing: -0.03em;
}
.en-US .program-data{
  font-size: 2.8rem;
  line-height: 1.2;
  letter-spacing: .03em;
}
.program-data .program-category{
  float: none;
}
.program-day{
  font-size: 1.1em;
  line-height: 1em;
  letter-spacing: .02em;
  margin-top: 4px;
  margin-bottom: -4px;
}
.en-US .program-day{
}
.program-cate{
  display: inline-block;
  font-size: 1.4rem;
  line-height: 1.4rem;
  border: solid 1px #000000;
  padding: 6px 4px;
  padding-bottom: 0;
}
a:hover .program-cate{
  border: solid 1px #ff1100;
}
.en-US .program-cate{
  font-size: 1.5rem;
  line-height: 1.5rem;
  padding: 3px 4px;
  padding-top: 5px;
}
.program-single-wrapper{
  margin-bottom: 24px;
}
.program-header,
.program-content-wrapper{
  width: 100%;
  padding: 0 12px;
}
.booking .program-content-wrapper{
  max-width: 960px;
  font-size: 1.6rem;
  line-height: 1.9;
  padding: 0;
}
.program-header::after,
.program-content-wrapper::after,
.program-image-wrapper::after{
  content: '';
  display: block;
  clear: both;
}
.program-header-main,
.program-header-sub{
  width: 50%;
  float: left;
}
.en-US .program-header-main{
  width: 100%;
}
.en-US .program-header-sub{
  display: none;
}
.program-header{
  margin-top: 18px;
  padding-bottom: 16px;
}
.program-artist-name{
  font-size: 2.8rem;
  line-height: 1;
  margin-bottom: 6px;
}
.program-title{
  font-size: 3.6rem;
  line-height: 1;
  margin-left: -4px;
  margin-bottom: 12px;
}
.program-category{
  width: 100%;
  float: left;
}
.program-category li{
  display: inline-block;
  font-size: 1.2rem;
  line-height: 1;
  padding: 5px 5px 3px 5px;
  border: solid 1px #000000;
  margin-bottom: 6px;
}
.en-US .program-category li{
  font-size: 1.4rem;
  letter-spacing: 0.01em;
}
.booking-main .program-category{
  margin-bottom: 6px;
}
.booking-main .program-category li{
  font-size: 1.4rem;
}
.program-header-sub p{
  font-size: 2.0rem;
  line-height: 1;
  margin-bottom: 4px;
}
.program-header-ex{
  width: 100%;
  float: left;
  padding-top: 8px;
}
.program-image-wrapper{
  width: 100%;
  margin-bottom: 24px;
  border-top: solid 1px #dddddd;
  border-bottom: solid 1px #dddddd;
}
.program-image-wrapper figure{
  position: relative;
  width: 50%;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
  float: left;
}
.program-image-wrapper figure.no-crop{
  background-size: contain;
  background-repeat: no-repeat;
  background-position: left center;
}
.program-image-wrapper.image-num-1 figure{
  width: 100%;
}
.program-image-wrapper figure::after{
  content: '';
  display: block;
  width: 100%;
  padding-top: 60%;
}
.program-image-wrapper.image-num-1 figure::after{
  padding-top: 35%;
}
.program-image-wrapper figcaption{
  font-size: 1.2rem;
  line-height: 1;
  position: absolute;
  right: 12px;
  bottom: -1.2em;
}
.program-content-wrapper{
  font-size: 1.5rem;
  text-align: justify;
}
.en-US .program-content-wrapper{
  font-size: 1.6rem;
  line-height: 2.2rem;
  text-align: left;
}
.program-content-wrapper p{
  margin-bottom: 0.8em;
}
.program-content-wrapper p .large{
  font-size: 1.4em;
  line-height: 1.4em;
}
.program-header .small,
.program-content-wrapper .small{
  font-size: 0.85em;
  line-height: 0.85em;
}
.program-content-wrapper h3{
  display: inline-block;
  color: #ffffff;
  background-color: #000000;
  padding: 3px 4px;
  padding-top: 6px;
  margin-bottom: 6px;
  font-size: 1.2rem;
  line-height: 1;
  vertical-align: middle;
}
.booking .program-content-wrapper h3{
  font-size: 1.6rem;
  padding: 7px 6px 5px 6px;
}
.en-US .program-content-wrapper h3{
  font-size: 1.4rem;
  letter-spacing: 0.01em;
}
.program-content-inner{
  margin-bottom: 24px;
}
.program-content-inner img{
  width: 30%;
}
.program-content-inner img+img{
  margin-left: 12px;
}
.program-content-inner img.large{
  height: 42px;
}
.program-content-left{
  width: calc((100%/3)*2);
  float: left;
  padding-right: 48px;
}
.program-content-right{
  width: calc(100%/3);
  float: left;
}
.program-catch{
  font-size: 2.4rem;
  line-height: 3.2rem;
  margin-bottom: 24px;
}
.en-US .program-catch{
  font-size: 3.0rem;
  line-height:3.2rem;
}
.program-summary{
  font-size: 1.6rem;
  margin-bottom: 24px;
}
.en-US .program-summary{
  font-size: 1.8rem;
  line-height: 2.4rem;
}
.program-artist-inner{
  margin-bottom: 24px;
}
.program-artist-inner figure .artist-image{
  /*position: relative;*/
  width: 180px;
  height: 180px;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center;
}
.program-artist-inner figcaption{
  width: 100%;
  font-size: 1.2rem;
  line-height: 1;
  /*position: absolute;*/
  left: 0;
  bottom: -1.2em;
}
a.program-reserve{
  display: inline-block;
  width: 100%;
  border: solid 1px #000000;
  text-align: center;
  padding: 18px 0;
  padding-top: 22px;
  margin-bottom: 14px;
  text-decoration: none;
  font-size: 1.6rem;
  line-height: 1;
}

/* ----------- opening --------- */
.opening-header{
  padding: 0 12px;
}
.opening-header h1{
  margin-bottom: 0;
}
.opening-inner{
  padding-bottom: 24px;
}
.opening-inner .program-image-wrapper{
  margin-bottom: 0;
}
a.opening-link{
  width: 100%;
  display: inline-block;
  border-bottom: solid 1px #000000;
  text-decoration: none;
  text-align: center;
  font-size: 2.2rem;
  line-height: 1;
  transition: all 100ms cubic-bezier(.02,.63,.56,.99);
  padding: 36px 0 28px 0;
}
a.opening-link:hover{
  background-color: var(--main-color);
  color: #000000;
}

.ticket-slide{
  position: fixed;
  left: 0;
  bottom: 0;
  background-color: var(--main-color);
  color: #000000;
  border-top: solid 3px var(--main-color);
  border-right: solid 3px var(--main-color);
  font-size: 3.2rem;
  line-height: 1.2;
  padding: 26px 26px 18px 18px;
  z-index: 999;
}
.content-wrapper .ticket-slide a{
  text-decoration: none;
}
.en-US .ticket-slide{
  font-size: 3.2rem;
  line-height: 3.2rem;
  padding: 18px 48px;
}
.ticket-slide a{
  border: none;
}
.ticket-slide a:hover{
  color: #ffffff;
}
.ticket-link-remain{
  color: #ff0000;
}
.ticket-link-remain a{
  color: #ff0000;
}

/* ----------- about --------- */
.about-wrapper{
  padding: 0 12px;
}
.about-folder{
  /* width: calc((100%/3)*2); */
  margin-bottom: 32px;
}
.en-US .about-folder.message{
  border-top: none;
}
.en-US .about-folder-inner {
  display: none;
  font-size: 1.8rem;
  text-align: left;
}
a.message-read-more{
  display: inline-block;
  position: relative;
  text-align: center;
  margin: auto;
  margin-top: 12px;
  padding: 12px 8px 8px 12px;
  font-size: 2.0rem;
  line-height: 1;
  border: solid 1px #000000;
  cursor: pointer;
  text-decoration: none;
}
a.message-read-more:hover{
  background-color: #000000;
  color: #ffffff;
  border: solid 1px #000000;
}
.about-folder h2.clickable::after{
  content: '';
  display: inline-block;
  position: absolute;
  width: 10px;
  height: 10px;
  border-right: solid 1px #000000;
  border-bottom: solid 1px #000000;
  top: 16px;
  right: 6px;
  transform: rotate(45deg);
  transition: all 100ms cubic-bezier(.02,.63,.56,.99);
}
.message-open{
  display: block;
}
.message-close{
  display: none;
}
.open .message-open{
  display: none;
}
.open .message-close{
  display: block;
}
.about-catch {
  font-size: 3.4rem;
  line-height: 1.5;
  margin-bottom: 42px;
}
.en-US .about-catch{
  font-size: 3.8rem;
  line-height: 1.3;
}
.about-statement {
  font-size: 1.8rem;
  line-height: 3.0rem;
  text-align: justify;
}
.en-US .about-statement {
  font-size: 2.2rem;
  line-height: 1.4;
  text-align: left;
}
.about-statement p {
  margin-bottom: 18px;
}
.about-statement p.about-statement-head {
  font-size: 2.0rem;
  line-height: 3.0rem;
  margin-bottom: 4px;
}
.en-US .about-statement p.about-statement-head {
  font-size: 2.2rem;
  line-height: 2.8rem;
  margin-bottom: 4px;
}
.about-statement-credit{
  text-align: right;
  font-size: 1.6rem;
  line-height: 1;
}
.about-wrapper ul{
  margin-top: 16px;
  margin-bottom: 24px;
}
.about-wrapper ul li.about-head{
  font-size: 2.0rem;
  line-height: 1;
  margin-bottom: 12px;
}
.en-US .about-wrapper ul li.about-head{
  font-size: 2.4rem;
}
.about-wrapper ul.about-partner li{
  font-size: 1.4rem;
  line-height: 1.6;
  margin-bottom: 8px;
}
.about-wrapper ul.about-partner li.oneL{
  margin-top: 1.5em;
}
.en-US .about-wrapper ul.about-partner li{
  font-size: 1.6rem;
  line-height: 1.5;
  margin-bottom: 8px;
}
.about-wrapper ul.about-partner li p{
  display: inline-block;
  float: left;
  margin-right: 4px;
}
.about-wrapper ul li.about-large{
  font-size: 1.9rem;
  line-height: 1;
  margin-bottom: 14px;
}
.en-US .about-wrapper ul li.about-large{
  font-size: 2.2rem;
  margin-bottom: 14px;
}
.about-wrapper ul.about-partner li::after{
  content: '';
  display: block;
  clear: both;
}
.about-wrapper ul.about-partner li.about-sponsor-logo {
  max-width: 960px;
  /* width: 100%; */
  margin-top: 36px;
}
.en-US .about-wrapper ul.about-partner li.about-sponsor-logo {
  max-width: 1000px;
}
.about-wrapper ul.about-partner li.about-sponsor-logo img {
  width: 100%;
}
.about-folder-inner p{
  margin-bottom: 10px;
  /*text-indent: 1em;*/
}
.about-folder-inner.test p{
  margin-bottom: 10px;
  text-indent: 0;
}
.about-folder-inner p.about-head{
  font-size: 2.4rem;
  line-height: 1.5;
  margin-top: 16px;
  margin-bottom: 16px;
  text-indent: 0;
}
.en-US .about-folder-inner p.about-head{
  font-size: 3.0rem;
  line-height: 1;
  margin-top: 8px;
  margin-bottom: 16px;
  text-indent: 0;
}
.about-folder-inner p.about-head .about-head-name{
  font-size: 1.4rem;
  line-height: 1.5;
  margin-left: 12px;
  vertical-align: middle;
}
.en-US .about-folder-inner p.about-head .about-head-name{
  display: block;
  font-size: 1.8rem;
  margin-top: 8px;
}
.about-folder-inner.message{
  display: block;
}
.message-folder{
  display: none;
}


/* ----------- archive --------- */
.archive-wrapper{
  padding: 0 12px;
}
.archive-header{
  width: 100%;
  border-bottom: solid 1px #000000;
  padding: 6px 0 24px 0;
  font-size: 2.0rem;
  line-height: 2.8rem;
}

/* ----------- access --------- */
.access{
  width: 100%;
  margin-bottom: 62px;
  padding: 0 12px;
}
.access::after{
  content:'';
  display: block;
  clear: both;
}
.access ul{
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  width: 100%;
  gap: 32px 24px;
}
.access ul li{
  width: 100%;
  display: inline-block;
  vertical-align: bottom;
  letter-spacing: normal;
}
.access-map{
  width: 100%;
  background-color: #000000;
  margin-bottom: 12px;
}
.access-data{
  width: 100%;
}
.en-US .access-data{
}
.access-data a{
  width: 100%;|
  font-size: 1.4rem;
  line-height: 1.6;
}
.access-place{
  font-size: 2.2rem;
  line-height: 1.5;
  margin-bottom: 6px;
}
.access-address{
  font-size: 1.5rem;
  line-height: 1.6;
  margin-bottom: 12px;
}
.access-caption{
  font-size: 1.2rem;
  line-height: 1.4;
  margin-bottom: 4px;
}
.en-US .access-place{
  font-size: 2.2rem;
  line-height: 1;
  margin-bottom: 6px;
}
.en-US .access-address{
  font-size: 1.7rem;
  margin-bottom: 12px;
}
.en-US .access-caption{
  font-size: 1.4rem;
  line-height: 1.8rem;
  margin-bottom: 4px;
}

.map-embed-wrapper{
  position: relative;
  width: 100%;
  margin-bottom: 6px;
}
.map-embed-wrapper::after{
  content: '';
  display: block;
  width: 100%;
  padding-top: 75%;
}
.map-embed{
  position: absolute;
  width: 100%;
  height: 100%;
}

.tickets{
  padding: 0 12px;
}
.tickets-wrapper{
  width: calc((100% / 3) *2);
  font-size: 1.8rem;
  line-height: 2.8rem;
  padding-bottom: 18px;
  padding-top: 24px;
  text-align: justify;
}
.tickets-wrapper.first{
  padding-top: 0;
}
.en-US .tickets-wrapper{
  font-size: 2.1rem;
  line-height: 1.3;
  text-align: left;
}
.tickets-wrapper p{
  margin-bottom: 8px;
}
.tickets-wrapper h2{
  font-size: 2.2rem;
  line-height: 2.4rem;
  padding: 10px 0 4px 8px;
  margin-bottom: 12px;
  background-color: #333333;
  color: #ffffff;
  border: none;
}
.tickets-wrapper.first h2{
  border-top: none;
}
.tickets-wrapper h3{
  font-size: 1.8rem;
  line-height: 1.5;
  border: none;
  text-decoration: underline;
}
.ticket-link{
  display: inline-block;
  margin: 12px 0;
  margin-bottom: 0;
}
.ticket-link > a{
  display: inline-block;
  font-size: 2.2rem;
  line-height: 2.2rem;
  padding: 14px 16px 10px 16px;
  margin-bottom: 6px;
  border: solid 2px #ff1100;
  color: #ff1100;
  text-decoration: none;
}
.ticket-link.active a{
  pointer-events: auto;
}
.ticket-link > a:hover{
  /*border: solid 1px #ff1100;*/
  background-color: #ff1100;
  color: #ffffff;
}
.ticket-link-caption{
  font-size: 1.2rem;
  line-height: 2.2rem;
}
.ticket-price{
  width: 100%;
  /* border-top: solid 1px #000000; */
  border-bottom: solid 1px #000000;
  /* padding: 8px 0; */
  margin-bottom: 12px;
}
.en-US .ticket-price{
  padding: 0;
}
.ticket-price-caption{
  font-size: 2.4rem;
  line-height: 2.8rem;
  margin-top: 24px;
}
.ticket-price li{
  width: 100%;
  display: inline-block;
  font-size: 2.8rem;
  line-height: 1;
  border-top: solid 1px #000000;
  padding: 14px 0 12px 0;
  /*text-align: center;*/
}
.ticket-price li.second{
  width: 30%;
}
.ticket-price li.last{
  width: 40%;
}
.ticket-price li:first-child{
  border-left: none;
  padding-left: 2px;
}
.ticket-caption{
  font-size: 1.4rem;
  line-height: 1.5;
  margin: 16px 0 12px 0;
}
h3 + .ticket-caption{
  margin: 4px 0 12px 0;
}
.en-US .ticket-caption{
  font-size: 1.6rem;
  line-height: 1.3;
}
.ticket-caption li{
  margin-bottom: 4px;
  text-indent: -1em;
  padding-left: 1em;
}
.en-US .ticket-caption li{
  text-indent: -0.55em;
  padding-left: 0.55em;
}
.ticket-caption li.oneL{
  margin-bottom: 16px;
}
.ticket-caption li.heading{
  font-size: 1.8rem;
  line-height: 2.2rem;
}

.schedule{
  padding: 0 12px;
}
.schedule-wrapper{
  width: 100%;
  border-bottom: solid 1px #000000;
}
.schedule-wrapper p .small{
  font-size: 0.8em;
  line-height: 0.8em;
}
.schedule-wrapper p .large{
  font-size: 1.4em;
  line-height: 1.4em;
}
.schedule-wrapper:last-child{
  border-bottom: none;
}
.schedule-jan .schedule-wrapper:last-child{
  border-bottom: solid 1px #000000;
}
.schedule-wrapper::after{
  content: '';
  display: block;
  clear: both;
}
.schedule-date{
  float: left;
  height: 100%;
  width: 80px;
  padding-top: 6px;
  font-size: 2.2rem;
  line-height: 1;
}
.schedule-date-num{
  font-size: 3.6rem;
  line-height: 1;
}
.schedule-list{
  float: left;
  width: calc(100% - 80px);
  border-left: solid 1px #dddddd;
}
.schedule-list li{
  padding: 8px;
  border-top: solid 1px #dddddd;
  font-size: 1.6rem;
  line-height: 2.2rem;
}
.schedule-list li:first-child{
  border-top: none;
}
.schedule-list li p{
  margin-bottom: 8px;
}
.schedule-list li a{
  border-bottom: none;
}
.schedule-renkei{
  font-size: 1.2rem;
  line-height: 1.2rem;
}
.schedule-title{
  font-size: 2.4rem;
  line-height: 3.2rem;
}
.schedule-time{
  font-size: 1.6rem;
  line-height: 1.8rem;
}
.schedule-list li p.schedule-artist{
  font-size: 1.6rem;
  line-height: 2.0rem;
  margin-bottom: 2px;
}
.schedule-month{
  width: 100%;
  border-bottom: solid 1px #000000;
  font-size: 3.6rem;
  line-height: 3.6rem;
  /*padding-left: 6px;*/
  margin-top: 20px;
  padding-bottom: 2px;
}
.schedule-month.first{
  margin-top: 8px;
}

/* ----------- footer --------- */
footer{
  width: 100%;
  height: 60px;
  padding: 0 12px;
  font-size: 2.2rem;
  line-height: 1;
  position: absolute;
  bottom: 0;
}
.footer-inner{
  padding: 20px 0 12px 0;
  border-top: solid 1px #000000;
}
.footer-inner ul{
  float:right;
}
.footer-inner ul li{
  display: inline-block;
  float: left;
  margin-left: 12px;
}
.footer-inner ul li a:hover{
  color: #cccccc;
}
.footer-inner ul li a.none{
  color: #959595;
  pointer-events: none;
}
.footer-logo img{
  width: 140px;
}
.footer-credit{
  text-align: right;
  font-size: 1.4rem;
  line-height: 1em;
}
.copy{
  display: inline-block;
  font-size: 1.2rem;
  line-height: 2.2rem;
  text-align: right;
  vertical-align: bottom;
  margin-left: 12px;
  margin-right: 4px;
}

.fixed-footer{
  position: fixed;
  left: 0;
  bottom: -100%;
  background-color: #fff;
  z-index: 10;
  font-size: 2.8rem;
  line-height: 1.5;
  border-top: solid 3px #000000;
  border-right: solid 3px #000000;
  transition: all 0.5s;
  padding: 28px 18px 18px 18px;
}
.en-US .fixed-footer{
  padding: 18px 24px 18px 24px;
}
.fixed-footer.active{
  bottom: 0;
}
.fixed-footer a{
  text-decoration: underline;
}

@media screen and (max-width: 960px) {
  .fixed-footer{
    border-right: none;
    font-size: 2.0rem;
    padding: 18px 16px 8px 16px;
  }
}

.booking{
  padding: 0 12px;
}
.booking-lead{
  font-size: 2.4rem;
  padding: 8px 0 24px 0;
}
.booking-list{
  width: 100%;
}
.booking-list>li{
  width: 100%;
  padding-top: 12px;
  margin-bottom: 42px;
  border-top: solid 5px #000000;
}
.booking-list>li>p{
  text-align: left!important;
}
.booking-list>li::after{
  content: "";
  display: block;
  clear: both;
}
.booking-main{
  width: 100%;
  float: left;
  margin-bottom: 18px;
  border-bottom: solid 1px #000000;
  padding-bottom: 8px;
}
.booking-main a,
a.booking-link{
  text-decoration: none;
}
.booking-info{
  width: 100%;
  float: left;
}
.booking-info::after{
  content: '';
  display: block;
  clear: both;
}
.booking-info > ul{
  display: block;
  width: calc(100% / 3);
  margin-bottom: 16px;
  float: left;
  padding-right: 24px;
}
.booking-info > ul > li{
  margin-bottom: 8px;
}
.booking-info h3{
  display: inline-block;
  color: #ffffff;
  background-color: #000000;
  padding: 3px 4px;
  padding-top: 6px;
  margin-bottom: 6px;
  font-size: 1.2rem;
  line-height: 1;
  vertical-align: middle;
}
.booking-info p{
  margin-bottom: 0.8em;
}
.booking-info p .large{
  font-size: 1.4em;
  line-height: 1.4em;
}
.booking-info .small,
.booking-info .small{
  font-size: 0.85em;
  line-height: 0.85em;
}
.booking-schedule{
  font-size: 2.0rem;
  line-height: 2.2rem;
}
.booking-schedule-head{
  font-size: 1.6rem;
  line-height: 2.2rem;
}
.booking-place a{
  border-bottom: none;
  text-decoration: underline;
}
.booking-artist,
.booking-title{
  font-size: 2.4rem;
  line-height: 3.0rem;
}
.booking-en{
  font-size: 1.8rem;
  line-height: 2.0rem;
  margin-bottom: 4px;
}
.booking-day{
  margin-bottom:18px;
  font-size: 2.6rem;
  line-height: 3.0rem;
}
.booking-link{
  display: inline-block;
  width: 100%;
  border: solid 2px #ff1100;
  color: #ff1100;
  padding: 24px 0 18px 0;
  margin: 12px 0;
  font-size: 2.0rem;
  line-height: 1;
  text-align: center;
}
.booking-link .small{
  font-size: .8em;
}
a.booking-link:hover{
  background-color: #ff1100;
  color: #ffffff;
}
.notice{
  text-decoration: underline;
  color: #ff0000;
  margin-bottom: 8px;
}


/* ---------- teaser ---------- */
.teaser-pc{
  display: block;
}
.teaser-sp{
  display: none;
}

.top-24-mv{
  position: relative;
  width: 100%;
  height: calc(100vh - 48px);
  height: calc(100svh - 48px);
  overflow-x: hidden;
  background-color: #000;
}

.blink.active{
  opacity: 1!important;
}

.navigation{
  padding-bottom: 36px;
}

.policy{
  max-width: 960px;
}
.policy h2{
  font-size: 2.8rem;
  margin-bottom: 10px;
  padding-bottom: 6px;
  border-top: none;
}
.policy p+h2{
  margin-top: 24px;
}

/* ---------- //teaser ---------- */

/* ---------- concept ---------- */
.concept-wrapper{
  max-width: 860px;
  padding: 0 12px 60px 12px;
  margin: auto;
  font-size: 1.85rem;
  line-height: 2.2;
  letter-spacing: 0.01em;
  text-align: justify;
}
.en-US .concept-wrapper{
  font-size: 2.2rem;
  line-height: 1.6;
  letter-spacing: .03em;
  text-align: left;
}
.concept-wrapper > .concept-inner > h3{
  font-size: 2.2rem;
  line-height: 1.8;
  margin: 42px 0 18px 0;
  text-decoration: underline;
}
.en-US .concept-wrapper > .concept-inner > h3{
  font-size: 2.6rem;
  line-height: 1.4;
}
.concept-wrapper > .concept-inner > p{
  text-indent: 1em;
}
.concept-wrapper > .concept-inner > p.oneL{
  margin-top: 1em;
}
.concept-wrapper > .concept-inner > p.center{
  text-indent: 0;
  text-align: center;
}
.concept-wrapper > .concept-inner > figure{
  width: 100%;
  margin: 42px 0;
}
.concept-wrapper > .concept-inner > figure > img{
  width: 100%;
  vertical-align: bottom;
}
.concept-wrapper > .concept-inner > figure > figcaption{
  font-size: 1.2rem;
}

.concept-wrapper > .concept-profile{
  font-size: 1.5rem;
  line-height: 1.8;
  margin-top: 60px;
}
.en-US .concept-wrapper > .concept-profile{
  font-size: 1.7rem;
  line-height: 1.4;
}
.concept-wrapper > .concept-profile > .name{
  font-size: 1.7rem;
  margin-bottom: 8px;
}
.en-US .concept-wrapper > .concept-profile > .name{
  font-size: 2.1rem;
}

.concept-wrapper > .concept-profile > figure{
  max-width: 270px;
  margin-top: 18px;
}
.concept-wrapper > .concept-profile > figure > img{
  width: 100%;
  vertical-align: bottom;
}
.concept-wrapper > .concept-profile > figure > figcaption{
  font-size: 1.2rem;
}
.concept-header{
  margin: 36px 0 64px 0;
}
.en-US .concept-header{
  margin: 24px 0 48px 0;
}
p.concept-head-name{
  font-size: 1.8rem;
  line-height: 1;
  margin-top: 10px;
  text-indent: 0;
}
.content-wrapper.concept-wrapper h2{
  font-size: 3.2rem;
  line-height: 1.4;
  border: none;
  padding: 0;
  margin-bottom: 0;
}
.en-US .content-wrapper.concept-wrapper h2{
  font-size: 3.2rem;
}

.concept-about-heading{
  display: block;
  font-size: 2.8rem;
  line-height: 1.4;
  margin-bottom: 12px!important;
}
.concept-about-heading-name{
  font-size: 1.4rem;
}

@media screen and (max-width: 960px) {
  .concept-wrapper{
    padding: 0 8px 42px 8px;
    font-size: 1.7rem;
    line-height: 1.8;
  }
  .en-US .concept-wrapper{
    font-size: 2.0rem;
  }
  .concept-wrapper > .concept-inner > h3{
    font-size: 2.0rem;
    margin: 36px 0 16px 0;
  }
  .concept-wrapper > .concept-inner > figure{
    margin: 36px 0;
  }
  .concept-wrapper > .concept-profile{
    font-size: 1.4rem;
    padding: 0 8px;
  }
  .concept-wrapper > .concept-profile > figure{
    max-width: 210px;
    margin-top: 12px;
  }
  .concept-wrapper > .concept-profile > .name{
    font-size: 1.6rem;
  }
  .concept-header{
    margin: 24px 0 32px 0;
  }
  .content-wrapper.concept-wrapper h2{
    font-size: 2.4rem;
    line-height: 1.3;
  }
  .concept-inner{
    padding: 0 8px;
  }
  .concept-about-heading{
    font-size: 2.2rem;
  }
}
/* ---------- //concept ---------- */


@media screen and (max-width: 960px) {
  #loading{
    background-size: 20%;
  }
  body{
    padding-top: 37px;
  }
  body.home{
    /*padding-top: 58px;*/
  }
  body.teaser{
    /* padding-top: 0;
    padding-bottom: 170px; */
  }
  .pc-nav{
    display: none;
  }
  .sp-navigation{
    display: block;
    background-color: #ffffff;
    z-index: 999;
    width: 100%;
    height: 40px;
  }
  #menu-trigger,
  #menu-trigger span {
    display: inline-block;
    -webkit-transition: all 300ms cubic-bezier(0.5,0,0,1);
    -moz-transition: all 300ms cubic-bezier(0.5,0,0,1);
    -o-transition: all 300ms cubic-bezier(0.5,0,0,1);
    transition: all 300ms cubic-bezier(0.5,0,0,1);
    box-sizing: border-box;
  }
  #menu-trigger {
    position: fixed;
    width: 26px;
    height: 20px;
    z-index: 200;
    top: 10px;
    right: 8px;
    border-bottom: none;
    z-index: 99999999999999999999999999999999999999999999999999999999;
  }
  .teaser #menu-trigger {
    /* top: -100%; */
    transition: all 0.3s;
  }
  .teaser.active #menu-trigger {
    top: 10px;
  }

  #menu-trigger span {
    position: absolute;
    left: 0;
    width: 26px;
    height: 2px;
    background-color: #000000;
    border-radius: 4px;
  }
  #menu-trigger span:nth-of-type(1) {
    top: 0;
  }
  #menu-trigger span:nth-of-type(2) {
    top: 9px;
  }
  #menu-trigger span:nth-of-type(3) {
    bottom: 0;
  }
  #menu-trigger.active span:nth-of-type(1) {
    -webkit-transform: translateY(9px) rotate(-45deg);
    transform: translateY(9px) rotate(-45deg);
  }
  #menu-trigger.active span:nth-of-type(2) {
    opacity: 0;
    transform: translateX(4px);
  }
  #menu-trigger.active span:nth-of-type(3) {
    -webkit-transform: translateY(-9px) rotate(45deg);
    transform: translateY(-9px) rotate(45deg);
  }
  header h1{
    /* position: fixed; */
    top: 10px;
    left: 6px;
    z-index: 9999;
  }
  header .teaser h1{
    /* top: -100%; */
    transition: all 0.3s;
  }
  header .teaser.active h1{
    top: 10px;
  }

	.top-logo {
    position: absolute;
		height: 100%;
		display: flex;
		justify-content: center;
		align-items: center;
    top: 0;
	}
	.top-logo a{
		display: flex;
	}

  .sp-navigation{
    padding: 0 6px;
  }
  .sp-navi-line{
    width: 100%;
    height: 40px;
    /* border-bottom: solid 3px var(--main-color); */
  }
  .sp-navigation-inner{
    list-style-type: none;
    width: 100%;
    min-width: 160px;
    width: 100%;
    height: 100%;
    position: fixed;
    top:0;
    left: -100%;
    background-color: #ffffff;
    padding: 12px;
    padding-top: 64px;
    font-size: 2.4rem;
    line-height: 2.4rem;
    letter-spacing: 0.016em;
    z-index: 100;
    -webkit-transition: alls 400ms cubic-bezier(0.5,0,0,1);
    -moz-transition: all 400ms cubic-bezier(0.5,0,0,1);
    -o-transition: all 400ms cubic-bezier(0.5,0,0,1);
    transition: all 400ms cubic-bezier(0.5,0,0,1);
  }
  .sp-navigation-inner.active{
    left: 0;
  }
  .sp-navigation-inner ul li{
    width: 100%;
    margin-bottom: 12px;
  }
  .sp-navigation-inner li p{
    color: #cccccc;
  }
  .sp-navigation-inner .sns li{
    /*display:inline-block;*/
  }
  .sp-navigation-inner .sns{
    width: 100%;
    margin: 24px 0;
  }
  .sp-navigation-inner .sns li{
    width: 32px;
    height: 32px;
    background-color: #000000;
    border-radius: 50%;
    margin-top: 0;
  }
  nav.sp-navigation-inner  ul.sns li{
    margin-right: 10px;
  }
  .sns li img{
    width: 100%;
  }
  .sp-navigation-inner .sns li{
    width: 32px;
    height: 32px;
    background-color: #000000;
    border-radius: 50%;
    margin-top: 0;
  }
  nav.sp-navigation-inner  ul.sns li{
    margin-right: 10px;
  }
  .sns li img{
    width: 100%;
  }
  .lang{
    float: left;
    margin-right: 0;
    font-size: 2.8rem;
  }
  nav ul.lang li:last-child {
    margin-right: 12px;
  }
  .sp-lang-wrapper{
    width: 100%;
    margin-top: 12px;
  }
  .sp-lang-wrapper::after{
    content:'';
    display: block;
    clear: both;
  }
  .sp-navigation-inner .lang li{
    width: 32px;
    float: right;
  }
  .pc{
    display: none;
  }
  .sp{
    display: block;
  }
  .content-list{
    width: 100%;
  }
  .content-list-inner{
    width: calc(100% - 100px);
  }
  .content-list-thumb{
    width: 100px;
    height: 100px;
  }
  .content-wrapper h1,
  .content-wrapper h2{
    font-size: 2.4rem;
    padding: 10px 0 8px 0;
  }
  .error-404,
  .contact-wrapper{
    padding: 0 6px;
  }
  .top-header{
    padding: 0;
  }
  .top-text-wrapper,
  .top-artist-wrapper{
    width: 100%;
  }
  .top-text-wrapper.news,
  .en-US .top-text-wrapper.news{
    margin-bottom: 0;
  }
  .top-opening-link{
    margin-bottom: 42px;
  }
  .top-opening-link a p,
  .top-opening-link div p{
    padding: 12px 12px 6px 10px;
    font-size: 13vw;
    /* font-size: 8.1vw; */
    line-height: 1;
    letter-spacing: -0.05em;
    box-shadow: 8px 10px;
  }
  .en-US .top-opening-link a p,
  .en-US .top-opening-link div p{
    font-size: 9.4vw;
  }
  .top-opening-link a p.cap,
  .top-opening-link div p.cap{
    font-size: .8em;
  }
  .top-opening-link p.small{
    padding: 8px 16px 6px 12px;
    font-size: 8vw;
    /* font-size: 6.8vw; */
    line-height: 1;
  }
  .top-opening-link div.en p{
    font-size: 6.8vw;
  }
  .top-opening-link div.cap p{
    font-size: 4.8vw;
    line-height: 1.3;
  }
  .home-wrapper{
    padding: 12px 6px;
  }
  .main-image-wrapper{
    height: 100vh;
  }
  .main-image{
    margin-bottom: 0;
  }
  .locate{
    padding-left: 6px;
  }

  .logo-en{
    width: 100%;
  }
  .top ul li.top-half{
    display: none;
  }
  .top-data{
    position: static;
  }
  .top-data-inner{
    position: static;
  }
  .top-data::before{
    display: none;
  }
  .top-content-wrapper{
    width: 100%;
    padding: 0;
    text-align: justify;
    margin-bottom: 12px;
  }
  .top-artist-wrapper{
    width: 100%;
    margin-bottom: 0;
  }
  .top-artist-wrapper ul li{
    font-size: 7.0vw;
    line-height: 1.1;
    margin-bottom: 16px;
  }
  .en-US .top-artist-wrapper ul li{
    /* margin-bottom: 8px; */
  }
  ul.top-news-list li{
    font-size: 1.6rem;
    margin-bottom: 4px;
  }
  ul.top-news-list li a{
    flex-wrap: wrap;
  }
  ul.top-news-list li a p{
    width: 100%;
    line-height: 1.5;
  }
  ul.top-news-list li a p.date{
    font-size: 1em;
    width: 100%;
  }
  ul.top-news-list li a p.date::after{
    display: none;
  }
  .top-text-wrapper{
    width: 100%;
    margin-bottom: 24px;
  }
  .top-text-wrapper .insta{
    margin-top: 24px;
    padding-right: 0;
  }
  .top-text-catch{
    width: 100%;
    font-size: 2.4rem;
    line-height: 3.4rem;
    margin-bottom: 0;
  }
  .top-text-catch > .inner{
    margin-bottom: 12px;
  }
  .top-text-main{
    font-size: 1.8rem;
    line-height: 3.2rem;
  }
  .en-US .top-text-wrapper{
    padding-right: 0;
  }
  .en-US .top-text-catch{
    font-size: 3.0rem;
    line-height: 1;
  }
  .en-US .top-text-main{
    font-size: 2.0rem;
    line-height: 2.4rem;
  }
  .top-archive-wrapper{
    width: 100%;
    font-size: 1.8rem;
    line-height: 2.8rem;
  }
  .top-artist-wrapper h2{
    font-size: 3.2rem;
    line-height: 1;
  }
  .top-archive-wrapper ul li{
    margin-bottom: 8px;
    font-size: 1.4rem;
    line-height: 2.2rem;
  }
  /* .en-US .content-wrapper .top-artist-wrapper h2{
    font-size: 2.8rem;
    padding-top: 12px;
  } */
  .top-archive-wrapper h2{
    font-size: 2.4rem;
    line-height: 1;
    padding: 8px 0 4px 0;
  }
  .top-data{
    width: 100%;
    height: auto;
    padding-bottom: 20px;
    font-size: 2.8rem;
    line-height: 3.0rem;
  }
  .logo-wrapper{
    display: none;
  }
  .logo-en{
    width: 100%;
    float: left;
    margin-bottom: 0;
  }
  .logo-en img{
    width: 68%;
  }
  .top-catch{
    padding: 0;
  }
  .top-head-catch{
    width: 100%;
    float: left;
    font-size: 2.4rem;
    line-height: 3.2rem;
    text-align:left;
  }
  .top-head-catch.pc{
    display: none;
  }
  .top-head-catch.sp{
    display: block;
    margin-bottom: 16px;
  }
  .top-head-catch p{
    display: inline-block;
    margin: auto;
  }
  .locate{
    width: 100%;
    text-align: left;
    float: left;
    padding: 0;
  }
  .locate-ja .locate-kana{
    font-size: 2.6rem;
    line-height: 2.8rem;
    margin-bottom: 0;
  }
  .locate-ja .locate-date {
    font-size: 2.8rem;
    line-height: 3.2rem;
    float: left;
    margin-bottom: 0;
  }
  .locate-ja .locate-place {
    font-size: 1.8rem;
    line-height: 3.2rem;
    float: left;
    vertical-align: bottom;
    margin-left: 12px;
    vertical-align: bottom;
  }
  .locate-ja .locate-note{
    font-size: 3.55rem;
    text-align: center;
  }
  .image-wrapper{
    width: 100%;
    position: relative;
  }
  .image-wrapper::after{
    content: '';
    display: block;
    clear: both;
  }
  .year-small{
    height: 68%;
    right: 0;
    top: -7px;
    left: auto;
    overflow: hidden;
  }
  .year-small img{
    left: auto;
    right: 13%;
  }
  .year-small img.ys-3{
    left: auto;
    right: 4%;
  }
  .top-slider{
    width: 100%;
    margin-bottom: 0;
  }
  .top-slider ul{
    width: 100%;
    height: 200px;
  }
  .top-slider ul li{
    width: 100%;
    height: 200px;
  }
  .top-slider ul li p.name{
    font-size: 6vw;
    left: 10px;
    bottom: 10px;
  }
  .top-slider ul li p.credit{
    right: 4px;
  }
  .top-slider ul.slider_c,
  .top-slider ul.slider_r{
    display: none;
  }
  .content-wrapper .top-artist-wrapper h2{
    padding: 8px 0 2px 0;
    margin-bottom: 12px;
  }
  .content-wrapper .top-artist-wrapper h2:first-child{
    border-top: solid 1px #000000;
    padding-top: 6px;
  }
  .top-artist-wrapper ul{
    font-size: 6.8vw;
    line-height: 1;
    padding-bottom: 12px;
  }
  .top-artist-wrapper .ticket-info{
    margin-bottom: 24px;
  }
  .top-artist-wrapper .ticket-info p{
    font-size: 7.2vw;
    line-height: 1.2;
    margin-bottom: 12px;
  }
  .top-artist-wrapper .ticket-info .pc{
    display: none;
  }
  .top-artist-wrapper .ticket-info .sp{
    display: block;
  }
  .top-artist-wrapper .ticket-info p.large{
    font-size: 8.8vw;
    line-height: 1.2;
    letter-spacing: -0.05em;
  }
  .home-bg{
    background-size: 98%;
  }
  .opening-header {
    padding: 0 6px;
  }
  a.opening-link{
    padding: 28px 0;
  }
  .en-US .top-opening-link a p {
    padding: 8px 10px 2px 6px;
    font-size: 15.2vw;
    box-shadow: 6px 8px;
  }
  .en-US .top-opening-link p.small {
    padding: 8px;
    font-size: 6vw;
  }

  .program-achive-header{
    padding: 0 6px;
  }
  .program{
    width: 100%;
    padding-top: 0;
    margin-bottom: 32px;
  }

  .program > ul > li {
    width: 100%;
    margin-bottom: 24px;
  }
  .program-data {
    height: auto;
    padding: 4px;
    padding-top: 6px;
    font-size: 2.4rem;
    letter-spacing: -0.06em;
  }
  .program-day{
    margin: 0;
  }
  .program-header,
  .program-content-wrapper {
    padding: 0 6px;
  }
  .program-single-wrapper{
    margin-bottom: 24px;
  }
  .program-header-main,
  .program-header-sub{
    width: 100%;
    margin-bottom: 8px;
  }
  .program-header{
    padding-bottom: 16px;
  }
  .program-artist-name{
    font-size: 2.0rem;
    line-height: 1;
    margin-bottom: 6px;
  }
  .program-title{
    font-size: 3.2rem;
    line-height: 1;
    margin-left: -4px;
    margin-bottom:0;
  }
  ul.program-category {
    /*padding: 0 4px;*/
  }
  ul.program-category li{
    width: auto;
    padding: 4px 6px;
  }

  .program-header-sub p{
    font-size: 2.0rem;
    line-height: 1;
    margin-bottom: 4px;
  }
  .program-header-ex{
    width: 100%;
    float: left;
    padding-top: 8px;
  }
  .program-image-wrapper{
    width: 100%;
    margin-bottom: 18px;
  }
  .program-image-wrapper figure{
    width: 100%;
  }
  .program-image-wrapper figure.hascaption{
    /*margin-bottom: 1em;*/
  }
  .program-image-wrapper figcaption{
    font-size: 1.0rem;
    right: 0;
    bottom: 0;
    background-color: #ffffff;
    z-index: 999;
  }
  .program-content-wrapper{
    font-size: 1.4rem;
    line-height: 2.4rem;
    text-align: justify;
  }
  .program-content-wrapper p{
    margin-bottom: 0.7em;
    text-align: left;
  }
  .program-content-wrapper h3{
    padding: 6px 6px 4px 6px;
  }
  .program-content-inner{
    margin-bottom: 24px;
  }
  .program-content-left{
    width: 100%;
    padding-right: 0;
  }
  .program-content-right{
    width: 100%;
  }
  .program-catch{
    font-size: 2.4rem;
    line-height: 3.0rem;
    margin-bottom: 16px;
  }
  .program-summary{
    font-size: 1.6rem;
    line-height: 2.6rem;
    margin-bottom: 24px;
  }
  .program-artist-inner figure .artist-inner{
    width: 160px;
    height: 160px;
  }
  /*program-artist-inner figcaption{
    font-size: 1.0rem;
    bottom: -1.0em;
  }*/

  .news-has-thumb{
    width: 100%;
    padding-right: 0;
  }
  .news-thumb{
    margin-bottom: 12px;
  }
  a.news-title{
    font-size: 2.2rem;
    line-height: 2.8rem;
    margin-bottom: 12px;
  }
  .news-single-header{
    margin-top: 24px;
  }
  .news-single-header .news-title{
    font-size: 2.4rem;
    line-height: 2.8rem;
  }
  .news-date{
    font-size: 2.0rem;
    margin-bottom: 8px;
    letter-spacing: 0;
  }
  .news-single-header .news-date{
    font-size: 2.0rem;
  }
  .news-summary p{
    font-size: 1.4rem;
    line-height: 2.6rem;
  }
  .news-main-inner p{
    font-size: 1.6rem;
    line-height: 2.8rem;
  }

  .about-wrapper {
    padding: 0 6px;
  }
  .about ul{
    margin: 20px 0;
  }
  .about-catch{
    width: 100%;
    font-size: 2.6rem;
    line-height: 3.2rem;
    margin-bottom: 24px;
    text-align: justify;
  }
  .en-US .about-catch{
    width: 100%;
    font-size: 2.8rem;
    line-height: 3.2rem;
    text-align: left;
  }
  .about-catch .main-catch{
    text-align: left;
  }
  .en-US .about-catch .main-catch{
    width: 100%;
    font-size: 3.8rem;
    line-height: 4.2rem;
    text-align: left;
  }
  .about-catch br,
  /*.about-statement br,*/
  .about-catch br{
    display: none;
  }
  .about-statement{
    width: 100%;
    font-size: 1.6rem;
    line-height: 2.6rem;
    margin-bottom: 30px;
    text-align: justify;
  }
  .about-statement p{
    margin-bottom: 16px;
  }
  .about-inner-left{
    width: 100%;
    float: left;
  }
  .about-inner-right{
    width: 50%;
    float: left;
  }
  .about-wrapper ul{
    margin-top: 0;
    margin-bottom: 12px;
  }
  .about-wrapper ul.about-partner li{
    font-size: 1.4rem;
    line-height: 1.2;
    margin-bottom: 8px;
  }
  .about-wrapper ul li.about-head{
    font-size: 2.0rem;
    line-height: 1.4;
    margin-bottom: 8px;
  }
  .about-wrapper ul li.about-large {
    font-size: 1.8rem;
    line-height: 1.2;
    margin-bottom: 6px;
  }
  .about-wrapper ul li{
    font-size: 1.6rem;
    line-height: 1.2;
    margin-bottom: 8px;
  }

  .about-small{
    font-size: 0.8em;
    vertical-align: middle;
  }
  .about ul.about-partner.first {
    margin-top: 24px;
  }
  .about-folder{
    width: 100%;
  }
  .about-folder h2{
    font-size: 2.0rem;
    line-height: 1;
    padding: 12px 0 6px 0;
  }
  .about-folder h2::after{
    top: 10px;
  }
  .about-folder h2.open::after{
    top: 16px;
  }
  .about-folder-inner{
    font-size: 1.5rem;
    line-height: 2.4rem;
    padding: 6px 0 24px 0;
  }
  .about-folder-inner p{
    margin-bottom: 4px;
  }
  .about-folder-inner p.about-head{
    font-size: 1.8rem;
    line-height: 3.2rem;
    margin-bottom: 12px;
  }
  .access{
    padding: 0 6px;
  }
  .access ul{
    grid-template-columns: 1fr;
  }
  .access-map{
    margin-bottom: 12px;
  }
  .access-data{
    width: 100%;
    height: auto;
    margin-bottom: 30px;
  }
  .en-US .access-data{
    margin-bottom: 30px;
  }
  .access-data a{
    width: 100%;
    height: 230px;
    font-size: 1.4rem;
    line-height: 2.2rem;
  }
  .access-place{
    font-size: 2.0rem;
    margin-bottom: 6px;
  }
  .access-address{
    font-size: 1.4rem;
    margin-bottom: 12px;
  }
  .access-caption{
    font-size: 1.2rem;
    margin-bottom: 4px;
  }

  .archive-wrapper{
    padding: 0 6px;
  }
  .archive-header {
    font-size: 1.6rem;
    line-height: 2.4rem;
    padding: 0;
    padding-bottom: 20px;
  }
  .map-embed-wrapper::after{
    padding-top: 60%;
  }
  .tickets{
    padding: 0 6px;
  }
  .tickets-wrapper{
    width: 100%;
    font-size: 1.8rem;
    line-height: 2.8rem;
    padding-bottom: 18px;
    text-align: left;
  }
  .tickets-wrapper p{
    margin-bottom: 8px;
  }
  .tickets-wrapper h2{
    font-size: 2.2rem;
    line-height: 2.2rem;
    padding: 8px 8px 6px 8px;
    margin-bottom: 18px;
  }
  .tickets-wrapper.first h2{
    border-top: none;
  }
  .ticket-link{
    display: inline-block;
    width: 100%;
  }
  .ticket-link > a{
    display: inline-block;
    width: 100%;
    font-size: 1.8rem;
    line-height: 1.8rem;
    letter-spacing: -0.04em;
    padding: 12px;
    text-align: center;
  }
  .en-US .ticket-link a{
    font-size: 2.2rem;
    line-height: 2.2rem;
    padding: 18px 12px 12px 12px;
  }
  .ticket-link-cation{
    font-size: 1.2rem;
    line-height: 2.4rem;
  }
  .ticket-price{
    width: 100%;
    border-top: solid 1px #000000;
    border-bottom: solid 1px #000000;
    padding: 0;
    margin-bottom: 12px;
  }
  .ticket-price li{
    width: 100%;
    display: inline-block;
    font-size: 2.6rem;
    line-height: 1;
    border-left: none;
    border-top: solid 1px #000000;
    padding: 12px 0 16px 0;
    /*text-align: center;*/
  }
  .ticket-price li.second,
  .ticket-price li.last{
    width: 100%;
  }
  .en-US .ticket-price li{
    width: 100%;
    display: inline-block;
    font-size: 2.2rem;
    line-height: 2.2rem;
    border-left: none;
    border-top: solid 1px #000000;
    /*text-align: center;*/
  }
  .ticket-price li:first-child{
    /*border-left: none;*/
    border-top: none;
    padding-left: 2px;
  }
  .ticket-caption{
    font-size: 1.4rem;
    line-height: 2.0rem;
    margin: 16px 0 12px 0;
  }
  .ticket-caption li{
    margin-bottom: 4px;
    text-indent: -0.7em;
    padding-left: 0.7em;
  }

  .schedule{
    padding: 0 6px;
  }
  .schedule-date{
    font-size: 1.8rem;
    line-height: 1;
  }
  .schedule-date-num{
    font-size: 2.4rem;
    line-height: 1;
  }
  .schedule-list li{
    padding: 8px;
    border-bottom: solid 1px #dddddd;
    font-size: 1.4rem;
    line-height: 1.6rem;
  }
  .schedule-title{
    font-size: 1.8rem;
    line-height: 2.2rem;
  }
  .schedule-date{
    width: 50px;
  }
  .schedule-list{
    width: calc(100% - 50px);
  }
  .schedule-month {
    font-size: 2.8rem;
    line-height: 1;
  }

  footer{
    padding: 0 6px;
    font-size: 1.8rem;
  }
  .teaser footer{
    /* padding-bottom: 140px; */
  }
  .footer-inner{
    padding: 12px 0;
  }
  .footer-inner ul{
    float: right;
  }
  .footer-inner ul li{
    margin-left: 0;
    margin-right: 12px;
  }
  .footer-inner ul li.copy{
    font-size: 1.0rem;
    margin-right: 0;
  }
  .booking-lead{
    font-size: 2.0rem;
    padding: 8px 0 24px 0;
  }
  .booking-list>li{
    padding-top: 8px;
  }
  .booking{
    padding: 0 6px;
  }
  .booking-main{
    width: 100%;
  }
  .booking-info{
    width: 100%;
  }
  .booking-artist,
  .booking-title{
    font-size: 2.2rem;
    line-height: 2.8rem;
  }
  .booking-en{
    font-size: 1.6rem;
    line-height: 1.8rem;
    margin-bottom: 4px;
  }
  .booking-day{
    margin-bottom:18px;
    font-size: 2.6rem;
    line-height: 3.0rem;
  }
  .booking-link{
    display: block;
    width: 100%;
    padding: 20px 0 12px 0;
    text-align: center;
  }
  .booking-info > ul{
    width: 100%;
    padding-right: 0;
  }
  .booking-link .small{
    font-size: 1.2rem;
    line-height: 2.0rem;
  }
}

/* ----- 2024 ticket ----- */
h2.ticket-table-heading{
  font-size: 2.4rem;
}
.ticket-table-text{
  margin-bottom: 36px;
}
.ticket-table{
  max-width: 1080px;
  margin: 24px 0 12px 0;
}
.ticket-table-head{
  display: flex;
  justify-content: space-between;
  line-height: 1;
}
.ticket-table-body{
  display: flex;
  justify-content: space-between;
  margin-top: 8px;
}
.ticket-table-body.sub{
  margin-top: 0;
}
.ticket-table-item{
  border-bottom: 1px solid #000;
  padding: 8px 4px;
  display: flex;
  justify-content: flex-start;
  align-items: center;
}
.sub .ticket-table-item{
  border-top: 1px solid #ccc;
  border-bottom: 1px solid #ccc;
}
.sub+.sub .ticket-table-item{
  border-top: none;
}
.ticket-table-item.name{
  width: 40%;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
}
.ticket-table-item.name-only{
  width: 100%;
  flex-direction: column;
  justify-content: flex-start;
  align-items: flex-start;
  border-bottom: none;
}
.ticket-table-item.caption{
  width: 100%;
  font-size: 1.6rem;
  line-height: 1.4;
  padding-bottom: 12px;
}
.ticket-table-item.general{
  width: 13%;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}

.ticket-table-item.general.large{
  width: 24%;
}
.ticket-table-item.student{
  width: 11%;
}
.en-US .ticket-table-item.student{
  width: 10%;
}
.ticket-table-item.type{
  width: 20%;
}
.en-US .ticket-table-item.type{
  width: 20%;
}

.ticket-table-item.link{
  width: 12%;
  padding: 8px 0;
}
.en-US .ticket-table-item.link{
  width: 14%;
}
.ticket-table-artist{
  font-size: 1.6rem;
  line-height: 1.4;
}
.en-US .ticket-table-artist{
  font-size: 1.8rem;
}
.ticket-table-artist .en{
  font-size: 1.4rem;
  letter-spacing: 0;
}
.ticket-table-title{
  font-size: 2.4rem;
  line-height: 1.4;
}
.en-US .ticket-table-title{
  font-size: 2.1rem;
  font-family: var(--font-bold);
}
.ticket-table-artist + .ticket-table-title{
  margin-top: 8px;
}
.ticket-table-title .en{
  font-size: 1.8rem;
  letter-spacing: 0;
}
a.ticket-table-link{
  display: inline-block;
  width: 100%;
  text-decoration: none;
  line-height: 1;
  padding: 12px 0;
  text-align: center;
  border: solid 1px #000;
}
.ticket-table-list{
  font-size: 1.5rem;
  line-height: 1.4;
}
.ticket-table-list li{
  text-indent: -.5em;
  margin-left: .5em;
}
.ticket-table-list li+li{
  margin-top: 6px;
}

.tb-small{
  font-size: 1.3rem;
  line-height: 1.5;
}
.en-US .tb-small{
  font-size: 1.5rem;
  line-height: 1.5;
  font-family: var(--font-light);
}

.ticket-attention{
  font-size: 2.4rem;
  line-height: 1.5;
  color: #ff0000;
}

@media screen and (max-width: 960px) {
  h2.ticket-table-heading{
    font-size: 2.0rem;
  }
  .ticket-table{
    border-bottom: 1px solid #000;
    padding-bottom: 8px;
  }
  .ticket-table-head{
    display: none;
  }
  .ticket-table-body{
    flex-wrap: wrap;
  }
  .ticket-table-item,
  .sub .ticket-table-item{
    border: none;
    width: 100%!important;
    padding: 0;
    display: block;
  }
  .ticket-table-item.name,
  .ticket-table-item.name-only{
    border-top: 1px solid #000;
    padding-top: 12px;
    margin-bottom: 8px;
  }
  .sub .ticket-table-item.name{
    border-top: 1px solid #ccc;
  }
  .sub.ticket-table-body+.ticket-table-body .name{
    border-top: 1px solid #ccc;
  }
  .ticket-table-item.general::before{
    content: '一般｜';
    display: inline;
  }
  .en-US .ticket-table-item.general::before{
    content: 'Adults｜';
  }
  .ticket-table-item.general.before-none::before{
    display: none;
  }
  .ticket-table-item.student::before{
    content: '学生｜';
    display: inline;
  }
  .en-US .ticket-table-item.student::before{
    content: 'Students｜';
  }
  .ticket-table-title{
    font-size: 2.0rem;
  }
  .ticket-table-item.type{
    margin-top: 8px;
  }
  .ticket-table-item.sp-none{
    display: none;
  }
  .ticket-attention{
    font-size: 2.0rem;
  }
}

.asterisk{
  vertical-align: super;
  line-height: 1;
  font-size: .7em;
}