@charset "UTF-8";
/* ==========================================
	 リンク
	 ========================================== */
a { transition: 0.15s ease;}
a:link,a:visited { color: var(--color-link);}
a:hover	{ color: var(--color-primary); text-decoration: none;}
a:active	{ color: var(--color-primary-deep); filter: brightness( 104% ) contrast( 106% ) ;}
a:focus { outline: none;}
a:hover img { filter: brightness( 105% ) contrast( 106% ) ;	}


/* 汎用クラス 
 --------------------------------------*/
.mt05 { margin-top: 5px !important;}
.mt10 { margin-top: 10px !important;}
.mt20 { margin-top: 20px !important;}
.mt30 { margin-top: 30px !important;}
.mt40 { margin-top: 40px !important;}
.mt50 { margin-top: 50px !important;}
.mt60 { margin-top: 60px !important;}
.mt70 { margin-top: 70px !important;}
.mt80 { margin-top: 80px !important;}
.mt90 { margin-top: 90px !important;}

.mb10 { margin-bottom: 10px !important;}
.mb20 { margin-bottom: 20px !important;}
.mb30 { margin-bottom: 30px !important;}
.mb40 { margin-bottom: 40px !important;}
.mb50 { margin-bottom: 50px !important;}
.mb60 { margin-bottom: 60px !important;}
.mb70 { margin-bottom: 70px !important;}
.mb80 { margin-bottom: 80px !important;}
.mb90 { margin-bottom: 90px !important;}


.hidden {
	display: none;
	visibility: hidden;
}

/* スクロールフェイド 
 --------------------------------------*/
.fadein,
.fadein1,
.fadein2,
.fadein3 {
	opacity : 0;
	transition : all 2.2s;
}
.fadein4 {
	opacity : 0;
	transition : all 2s;
}


.fadein.active,
.fadein1.active,
.fadein2.active,
.fadein3.active,
.fadein4.active { opacity : 1;}

.fade {
	opacity: 0;
	transition : all 2s;
}
.fade.fade_on { opacity: 1;}

/* LOADING（.loading）
----------------------------------------- */
body { opacity: 0; transition: opacity 2500ms; }
body.hide { opacity: 1; }
/*
	html の青空BGは body の opacity と無関係に見えてしまうため、
	白いヴェールを被せ、.hide 後に 2.5s でふわっと抜く（白→BG）
*/
html::before {
	content: "";
	position: fixed;
	inset: 0;
	background: #fff;
	pointer-events: none;
	opacity: 1;
	transition: opacity 2500ms ease;
	/* .loading より下、ページ内容より上（フェード中は白が勝つ） */
	z-index: 999999999;
}
html:has(body.hide)::before {
	opacity: 0;
}
.loading {
	background-color: #fff;
	opacity: 1;
	position: fixed;
	width: 100%;
	height: 100vh;
	height: 100dvh;
	top: 0;
	left: 0;
	z-index: 1000000000000;
	transition: .5s ease;
}
.hide .loading {
	opacity: 0;
	pointer-events: none;
	transition: opacity 2500ms;
}



/* ==========================================
	構造
============================================= */
html { -webkit-overflow-scrolling: touch;}
html, body { overflow-x: hidden;}
#container {
	/* 空テクスチャは html。透明にしてファーストビュー周りに空を通す */
	background-color: transparent;
	background-image: none;
	overflow-x: hidden;
	overflow-y: visible;
}

/* ------------------------------------------
	slidebarメニュー内
	 ------------------------------------------ */
body [off-canvas] {
	background: linear-gradient(to top right, var(--color-primary-deep), var(--color-primary-soft));/* var(--color-primary-deep), var(--color-primary-soft) */
	box-shadow: -5px 0px 3px -1px rgba(30, 63, 72, 0.35) inset;
}

body .menuslidebars {
	margin: 0 !important;
	margin-left: 0 !important;
	transform: none !important;
}

.header-main .menu-logo {
	margin: 0;
	background: linear-gradient(165deg, var(--color-primary-deep), var(--color-primary));
}
.header-main .menu-logo a {
  display: flex;
  justify-content: center;
  align-items: center;
	width: 255px;
	height: 160px;
}
.header-main .menu-logo a img {
	width: 86%;
}

.header-main #globalnavi ul { padding: 0;}
.header-main #globalnavi ul li {
	padding: 0;
	list-style: none;
	text-indent: 0;
}
.header-main #globalnavi ul li a {
	display: block;
	height: 55px;
	line-height: 55px;
	color: #fff;
	font-size: 1rem;
	letter-spacing: 0.05em;
	text-indent: 1.5em;
	border-bottom: 1px solid rgba(0, 0, 0, 0.1);
	border-top: 1px solid rgba(255, 255, 255, 0.3);
}
.header-main #globalnavi ul .tour li a::before {
  content: "";
  display: inline-block;
  background-image: url(../images/icon.svg);
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
	margin-right: .2em;
	width: .85rem;
	height: .85rem;
	/* メニュー帯上は白 */
	filter: brightness(0) invert(1);
}
.header-main #globalnavi ul .tour li a { font-size: .95rem;}
.header-main #globalnavi ul .tour li a::after { content: "公演";}
.header-main .logomoplays {
	margin-top: 30px;
	padding-bottom: 20px;
	text-align: center;
}
.header-main .logomoplays img {
	width: 40px;
	height: auto;
	filter: invert(92%) sepia(92%) saturate(34%) hue-rotate(127deg) brightness(108%) contrast(111%);
}

/* メニューボタン */
.menubar {
	position: fixed;
	bottom: 20px;
	right: 20px;
	width: 60px;
	height: 60px;
	z-index: 10000;
}
.sb-toggle-left {
	width: 60px;
	height: 60px;
	color: #fff;
	font-size: .8rem;
	text-align: center;
	line-height: 58px;
	background: linear-gradient(to right top, var(--color-primary-deep), var(--color-primary-soft));
	box-shadow : 0px 0px 8px 0px rgba(30, 63, 72, 0.35);
	border-radius: 50%;
	transition: 0.1s ease-in-out;
}
.menu_open .sb-toggle-left {
	font-size: 0.00001em;
	background: linear-gradient(to right top, var(--color-primary-soft), var(--color-primary-deep));
}
.sb-toggle-left::before {
	content: "";
	position: absolute;
	top: 0; left: 0;
	width: 100%;
	height: 100%;
	background: url(/assets/images/icon-close.svg) no-repeat center center;
	background-size: 70% ;
	filter: invert(92%) sepia(92%) saturate(34%) hue-rotate(127deg) brightness(108%) contrast(111%);
	opacity: 0;
	transition: opacity 0.15s ease-in-out;
}
.menu_open .sb-toggle-left::before {
	opacity: 1;
}

/* ------------------------------------------
	header（タイトル・メイン画像エリア）
	 ------------------------------------------ */
header.maintitle {
	margin: 0 auto;
	width: 100vw;
	max-width: 1200px;
	text-align: center;
	/* 青空は html 側（上部メニュー余白〜クレジットまで一体） */
	background: transparent;
}
header.maintitle h1.title {
	margin: 2em auto ;
	width: 86%;
	max-width: 300px;
	line-height: 0.6;
}
header.maintitle figure {
	margin: auto ;
	width: 92%;
}
header.maintitle figure img {
	width: 100%;
	height: auto;
	border-radius: 0;
	box-shadow: none;
}
@media (min-aspect-ratio: 4/5) {}

@media (max-aspect-ratio: 3/2) {}

header.maintitle h3 img {
	margin: 5vh auto 20px;
	width: 20px;
	height: auto;
}
header.maintitle ul.castnames {
	display: flex;
	flex-direction: row-reverse; /* 右から左へ */
	justify-content: center; /* 必要に応じて調整 */
	gap: .4rem;
	list-style: none;
	padding: 0;
	margin: 0;
}
header.maintitle ul.castnames li img {
	width: 37px;
	height: auto;
}

header.maintitle p.castname {
	margin: 2em auto ;
	width: 86%;
	max-width: 300px;
}


/* ------------------------------------------
	0.section コンテンツエリアの基本構造
	 ------------------------------------------ */
.content { padding: 0;}
.section {
	margin: 0;
	padding:0;
}
.section div.frame {
	margin: 0 auto;
	padding: 0;
	width: 90%;
	max-width: 820px;
}
.section h2.title,
.section h3.title {
	margin: 1em auto;
	width: auto;
	height: auto;
	min-height: 30px;
	color: var(--color-primary-deep);
	font-size: 2.3rem;
	line-height: 1.2;
	letter-spacing: 0.07em;
	text-align: center;
}
.section h2.title img,
.section h3.title img {
	width: auto;
	height: 100%;
}

/* セクション見出し下の余白（コメント／キャスト／ニュース／スタッフ）
   だいたい7vh、ただし最低60px */
.section.comment .title,
.section.cast .title,
.section.news > .title,
.section.staff .title {
	margin-bottom: max(60px, 7vh);
}


/* ------------------------------------------
	1.section copy
	 ------------------------------------------ */
.section.copy {
  display: flex;
  justify-content: center;
  align-items: center;
	position: relative;
	margin: 0;
	padding:0 10%;
	width: 100%;
	min-height: 100vh;
	text-align: center;
	background: linear-gradient(180deg, rgba(10,149,166,0.18), rgba(247,245,242,0.9));
	color: var(--color-primary-dark);
}
.section.copy p {
	margin: 0 auto .5em;
	color: var(--color-primary-dark);
	font-size: 1.85rem;
	line-height: 1.45;
	font-weight: 700;
	font-family: var(--font-serif);
}


/* ------------------------------------------
	2.section movie
	 ------------------------------------------ */

.section.movie {
  display: flex;
  justify-content: center;
  align-items: center;
	position: relative;
	margin: 0;
	padding:0 10%;
	width: 100%;
	min-height: 100vh;
	text-align: center;
	background: linear-gradient(180deg, var(--color-paper), var(--color-primary-mist));
}

.section.movie .inner {
	margin: auto;
	width: 100%;
	max-width: 900px;
	
}
.section.movie .videoarea .youtube {
	position: relative;
	margin: 80px auto;
	width: 100%;
	padding-top: 56.25%;
}
.section.movie .videoarea .youtube iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100%;
	height: 100%;
}

/* ------------------------------------------
	3.section story
	 ------------------------------------------ */
.section.story {
	display: flex;
	justify-content: center;
	align-items: center;
	position: relative;
	margin: 0;
	padding: 0;
	width: 100%;
	/* 1画面に没頭（内容は常に中央） */
	min-height: 100vh;
	min-height: 100dvh;
	box-sizing: border-box;
	color: var(--color-primary-deep);
	text-align: left;
	background: #fff;
}
.section.story div.frame {
	padding: clamp(4.5rem, 15vh, 10rem) 0;
	width: 85%;
	max-width: 700px;
	text-align: left;
}
.section.story h2.title {
	margin-left: auto;
	margin-right: auto;
	color: var(--color-primary-deep);
	text-align: center;
}
.section.story p {
	font-size: 1.05rem;
	line-height: 1.6;
	font-family: var(--font-serif);
	color: var(--color-primary-deep);
	text-align: left;
}
.section.story p.story-body__fade  {
	letter-spacing: 0.02em;
}

.section.story p em {
	font-size: .8em;
	font-style: normal;
}



/* ------------------------------------------
	4.section コメント（メインスタッフ写真／コメント／プロフィール）
	 ------------------------------------------ */
.section.comment {
	margin: 0;
	padding: clamp(5rem, 10vh, 9rem) 0;
	overflow-x: clip;
	background: #fff;
}
.section.comment .inner {
	margin: 0 auto;
	width: min(960px, 90%);
	text-align: left;
}
.section.comment .title {
	margin: 0 0 max(60px, 7vh);
	color: var(--color-primary-deep);
	font-family: var(--font-serif);
	font-size: clamp(1.8rem, 1.4rem + 1.2vw, 2.4rem);
	font-weight: 700;
	letter-spacing: 0.08em;
	text-align: center;
}
.section.comment .comment-list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.section.comment .comment-card {
	display: block;
	margin: 0 0 1.75rem;
	padding: clamp(1.25rem, 3vw, 2rem);
	background: rgba(255, 255, 255, 0.92);
	border: 1px solid rgba(44, 93, 105, 0.12);
	border-radius: 4px;
	box-shadow: 0 10px 28px rgba(30, 63, 72, 0.08);
	color: var(--color-primary-deep);
	opacity: 0;
	transition:
		opacity 1.4s ease,
		transform 1.4s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}
.section.comment .comment-card::after {
	content: "";
	display: table;
	clear: both;
}
.section.comment .comment-card--from-left {
	transform: translate3d(-3.5rem, 0, 0);
}
.section.comment .comment-card--from-right {
	transform: translate3d(3.5rem, 0, 0);
}
.section.comment .comment-card.is-in {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}
@media (prefers-reduced-motion: reduce) {
	.section.comment .comment-card,
	.section.comment .comment-card--from-left,
	.section.comment .comment-card--from-right {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
.section.comment .comment-card:last-child {
	margin-bottom: 0;
}
.section.comment .comment-card__photo {
	float: left;
	width: 242px;
	max-width: 38%;
	margin: 0 clamp(1.25rem, 3vw, 2rem) 0.85em 0;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	background: var(--color-primary-mist);
}
.section.comment .comment-card__photo picture {
	display: block;
	width: 100%;
	height: 100%;
}
.section.comment .comment-card__photo img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.section.comment .comment-card__body {
	display: contents;
}
.section.comment .comment-card h3 {
	margin: 0 0 0.85em;
	color: var(--color-primary-dark);
	font-family: var(--font-serif);
	font-size: clamp(1.35rem, 1.15rem + 0.7vw, 1.85rem);
	font-weight: 700;
	line-height: 1.25;
	letter-spacing: 0.06em;
}
.section.comment .comment-card h3 small {
	display: inline;
	margin-left: 0.35em;
	font-size: 0.58em;
	font-weight: 500;
	letter-spacing: 0.04em;
	color: var(--color-primary);
}
.section.comment .comment-card__quote {
	margin: 0 0 1.1em;
	padding: 0;
	border: 0;
}
.section.comment .comment-card__profile {
	clear: both;
	margin-top: 0.35em;
	padding: 0.85em 1em 0.9em;
	border: 1px dashed var(--color-primary-deep);
	border-radius: var(--radius-sm);
}
.section.comment .comment-card__quote p {
	margin: 0;
	color: var(--color-primary-deep);
	font-family: var(--font-serif);
	font-size: clamp(1.04rem, 0.95rem + 0.35vw, 1.22rem);
	font-weight: 600;
	line-height: 1.725;
	letter-spacing: 0;
	text-align: justify;
	text-justify: inter-ideograph;
	text-align-last: left;
	font-feature-settings: "pkna";
}
.section.comment .comment-card__quote p + p {
	margin-top: 0.85em;
}
.section.comment .comment-card__profile p {
	margin: 0;
	color: var(--color-ink-soft);
	font-family: var(--font-sans);
	font-size: 0.92rem;
	font-weight: 400;
	line-height: 1.55;
	text-align: justify;
	text-justify: inter-ideograph;
	text-align-last: left;
	font-feature-settings: "pkna";
}
.section.comment .comment-card__profile p + p {
	margin-top: 0.7em;
}

@media screen and (max-width: 720px) {
	.section.comment .comment-card__photo {
		float: none;
		width: min(242px, 60vw);
		max-width: none;
		margin: 0 auto 1.1rem;
	}
	.section.comment .comment-card h3 {
		text-align: left;
	}
}


/* ------------------------------------------
	5. チラシ flyer（キャストエリア内）
	 ------------------------------------------ */
.section.cast .flyer {
	padding: 0 0 var(--space-section);
	text-align: center;
}
.section.cast .flyer > div {
	/* ミュージシャン〜チラシのあいだ */
	margin: 15vh auto 0;
	width: 100%;
	max-width: 720px;
	text-align: center;
}
.section.cast .flyer a {
	display: block;
	color: #fff;
	text-decoration: none;
	transition: 0.5s ease;
}
.section.cast .flyer a:link,
.section.cast .flyer a:visited {
	color: #fff;
	opacity: 1;
}
.section.cast .flyer img {
	display: inline-block;
	margin: 0.4rem;
	width: 38%;
	max-width: 200px;
	height: auto;
	vertical-align: top;
	box-shadow: 0 8px 24px rgba(0, 0, 0, 0.35);
}
.section.cast .flyer .caption {
	display: block;
	margin-top: 0.85rem;
	color: #fff;
	font-family: var(--font-sans);
	font-size: 0.9rem;
	letter-spacing: 0.04em;
}
.section.cast .flyer a:hover {
	color: #fff;
	filter: brightness(104%) contrast(106%);
}
.section.cast .flyer a:hover img {
	box-shadow: 0 12px 32px rgba(0, 0, 0, 0.45);
}

/* ------------------------------------------
	6.section 最新情報
	 ------------------------------------------ */
.section.news {
	/* 周り（空テクスチャ）を見せず、セクション全体を白で覆う */
	position: relative;
	margin: 0;
	padding: var(--space-section) 0 3.5rem;
	width: 100%;
	max-width: none;
	background-color: #fff;
	background-image: none;
}
.section.news > .title {
	margin-top: 0;
	color: var(--color-primary-deep);
}
.section.news .box01 {
	position: relative;
	margin: 0 auto 2em;
	padding: 6vh 0;
	width: 90%;
	max-width: 860px;
	background: linear-gradient(165deg, var(--color-primary) 0%, var(--color-primary-deep) 100%);
	border-radius: 0;
	box-shadow: var(--shadow-soft);
	color: var(--color-text-on-primary);
}
.section.news .box01 div.frame { width: 100%;}
.section.news .box01 ul {
	margin:.2em 0 0;
	padding: 0 5%;
	max-height: 800px;
	overflow-y: auto;
}
.section.news .box01 ul li {
	padding: 0;
	border-top: 1px dashed #f6fafd;
}
.section.news .box01 ul li:first-child {
	border-top: none;
}
.section.news .box01 ul li:last-child {
	margin-bottom: 0;
	border-bottom: none;
}
.section.news .box01 ul li .news-item {
	display: grid;
	grid-template-columns: minmax(0, 1fr);
	grid-template-areas:
		"date"
		"title"
		"text";
	row-gap: 0.25em;
	box-sizing: border-box;
	margin: 0 -0.55em;
	padding: 0.9em 0.55em 0.8em;
	border-radius: 0;
	color: inherit;
	font-weight: inherit;
	line-height: inherit;
	text-align: left;
	text-decoration: none;
	text-indent: 0;
	text-shadow: none;
	background-color: transparent;
	filter: none;
	cursor: default;
	transition: background-color 0.2s ease;
}
.section.news .box01 ul li a.news-item {
	display: grid;
	color: inherit;
	font-weight: inherit;
	text-shadow: none;
	cursor: pointer;
}
.section.news .box01 ul li a.news-item:link,
.section.news .box01 ul li a.news-item:visited {
	color: inherit;
	filter: none;
}
.section.news .box01 ul li a.news-item:hover,
.section.news .box01 ul li a.news-item:focus-visible {
	color: inherit;
	filter: none;
	background-color: rgba(255, 255, 255, 0.14);
}
.section.news .box01 ul li a.news-item:active {
	filter: none;
	background-color: rgba(255, 255, 255, 0.2);
}
.section.news .box01 ul li p.date {
	grid-area: date;
	margin: 0;
	color: #eee;
	font-size: .9rem;
	letter-spacing: 0.05em;
	white-space: nowrap;
}
.section.news .box01 ul li h4 {
	grid-area: title;
	margin: 0;
	min-width: 0;
	color: #fff;
	font-size: 1.2rem;
	line-height: 1.35;
}
.section.news .box01 ul li h4:first-letter,
.section.news .box01 ul li h4 span:first-letter {
		font-feature-settings: "palt";
		letter-spacing: .06em;
}
.section.news .box01 ul li h4 .news-icon {
	display: inline-block;
	margin-left: 0.4em;
	height: 0.78em;
	width: auto;
	vertical-align: 0;
}
.section.news .box01 ul li h4 .news-icon--ext {
	filter: none;
}
.section.news .box01 ul li h4 .news-icon--pdf {
	filter: invert(1);
}
.section.news ul li .text {
	grid-area: text;
	margin-top: 0.15em;
	color: #fefefe;
	font-size: 1rem;
	line-height: 1.35;
}
.section.news ul li .text p {
	margin: 0 0 0.4em;
}
.section.news ul li .text p:last-child {
	margin-bottom: 0;
}
.section.news ul li .text p.news-more {
	margin-top: 0.35em;
	letter-spacing: 0.04em;
	text-align: right;
}

.section.news .box01 p {
	margin: 0 0 .3em;
	padding:0;
	color: #fff;
	line-height: 1.4;
}

.section.news .box01 p.btn {
	text-align: center;
}
.section.news .box01 p.btn a {
	display: inline-block;
	margin: .9em auto;
	padding: .2em .6em;
	color: var(--color-primary-deep);
	text-shadow :none;
	background-color: #fff;
	border-radius: 4px;
}
.section.news .box01 p.btn a:link,
.section.news .box01 p.btn a:visited {
	color: var(--color-primary-deep); 
}

.section.news div.sns {
	margin-top: 3.25rem;
	padding-bottom: 0.5rem;
	text-align: center;
	font-family: var(--font-sans);
}
.section.news div.sns p {
	display: inline-block;
	margin: 0 auto;
	padding: 0;
	max-width: min(90%, 24em);
	color: var(--color-ink);
	font-weight: 600;
	font-size: 0.95rem;
	line-height: 1.65;
	letter-spacing: 0.04em;
	text-align: center;
	background: none;
	border: 0;
	border-bottom: 1px dotted rgba(0,0,0,1);

}
.section.news div.sns p .nobr {
	white-space: nowrap;
}
.section.news div.sns ul {
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	gap: 1.35rem;
	margin-top: 1rem;
	padding: 0;
	list-style: none;
}
.section.news div.sns ul li {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 4.6rem;
}
.section.news .sns a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 4.6rem;
	height: 4.6rem;
	border: none;
}
.section.news .sns a img {
	width: 2.85rem;
	height: auto;
	transform: scale(1);
	transform-origin: center center;
	transition: transform 0.3s ease;
	filter: none;
}
.section.news .sns a:hover img,
.section.news .sns a:focus-visible img {
	transform: scale(1.4);
	filter: none;
}

/* ニュース本文のポップアップ（Lity） */
.lity {
	background-color: #059ab0;
	background-image: var(--img-bg);
	background-repeat: repeat;
	background-position: center top;
	background-size: auto 100vh;
	background-attachment: scroll;
}
.lity-content::after,
.lity-content:after {
	content: none;
	display: none;
	box-shadow: none;
}
.news-detail {
	box-sizing: border-box;
	margin: 48px auto 24px;
	padding: 1.75rem 1.5rem 2rem;
	width: min(92vw, 860px);
	max-height: calc(100vh - 72px);
	overflow-y: auto;
	background: #fff;
	color: var(--color-ink);
	border-radius: 0;
	box-shadow: none;
	text-align: left;
	font-family: var(--font-sans);
	line-height: 1.75;
}
.news-detail__date {
	margin: 0 0 0.4em;
	color: var(--color-primary-deep);
	font-size: 0.9rem;
	letter-spacing: 0.06em;
}
.news-detail__title {
	margin: 0 0 1em;
	color: var(--color-ink);
	font-family: var(--font-serif);
	font-size: clamp(1.2rem, 1.05rem + 0.6vw, 1.5rem);
	font-weight: 600;
	line-height: 1.45;
}
.news-detail__body p {
	margin: 0 0 1em;
}
.news-detail__body p:last-child {
	margin-bottom: 0;
}
.news-detail__close {
	margin: 1.75em 0 0;
	padding: 0;
	text-align: center;
}
.news-detail__close-btn {
	display: inline-block;
	margin: 0;
	padding: 0.5em 1.8em;
	color: var(--color-primary-deep);
	font-family: var(--font-sans);
	font-size: 0.9rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	line-height: 1.3;
	background: #fff;
	border: 1px solid var(--color-primary-deep);
	border-radius: 0;
	cursor: pointer;
}
.news-detail__close-btn:hover,
.news-detail__close-btn:focus-visible {
	color: #fff;
	background: var(--color-primary-deep);
}
.lity-close {
	z-index: 9995;
	color: #fff;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}
.lity-close:hover,
.lity-close:focus,
.lity-close:active,
.lity-close:visited {
	color: #fff;
	text-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
}

/* ------------------------------------------
	7.section メディア
	 ------------------------------------------ */
.section.media { padding: 1px 0 20vh;}
.section.media ul {
	position: relative;
	margin: 0 auto;
	padding: 10px;
	width: 100%;
	max-width: 650px;
	max-height: 720px;
	min-height: 160px;
	overflow-y: scroll;
	background: #fff;
	border: 16px solid var(--color-primary-soft);
  border-image: linear-gradient(to top right, var(--color-primary-deep), var(--color-primary-soft)) 1; 
}
.section.media ul li {
	padding: 0;
	line-height: 1.2;
	background-color: #fff;
	border-bottom: 1px dotted var(--color-primary-soft);
}
.section.media ul li:last-child { border: none;}
.section.media ul li a,
.section.media ul li .a {
	display: block;
	padding: .3em .5em ;
}
.section.media ul li a:link,
.section.media ul li a:visited {color: var(--color-primary-soft);}
.section.media ul li a:hover { }
.section.media ul li a:hover,
.section.media ul li a:hover h4 { color: var(--color-primary-soft);}
.section.media ul li a:hover p {color: #333;}
.section.media ul li .a h4 { color: #555;}

.section.media ul li p {
	margin: .2em 0;
	color: #555;
	font-size: 1rem;
	letter-spacing: 0.02em;
}
.section.media ul li p.date {
	font-size: .85rem;
}
.section.media ul li p.date .tag {
	display: inline-block;
	margin-right: .7em;
	padding: .1em .3em;
	width: 50px;
	color: #fff;
	font-size: .8rem;
	font-family: sans-serif;
	font-weight: 300;
	text-align: center;
	background-color: var(--color-primary-soft);
}

.section.media ul li h4 {
	display: inline-block;
	white-space: nowrap;
	margin: .2em 0;
	width: auto;
	max-width: 100%;
	letter-spacing: 0.02em;
	font-size: 1.35rem;
	
}
.section.media ul li h4:first-letter {
		font-feature-settings: "palt";
		text-align: justify;
		letter-spacing: .06em;
}

/* ------------------------------------------
	11.section 公演情報
   ------------------------------------------ */
.section.info {
	padding: 1px 0 20vh;
	text-align: center;
	background: #fff;
}
.section.info > .title {
	color: var(--color-primary-deep);
}
.section.info article {
	padding-top: 0.9rem;
	scroll-margin-top: 56px;
}
.section.info .attention {
	margin-bottom: 0px;
	font-size: 1.2rem;
	font-weight: 500;
	line-height: 1.1;
	letter-spacing: .1em;
	text-align: center;
}
.section.info .attention .mt10 { margin-top: 10px;}
.section.info .attention2 {
	display: inline-block;
  margin: 30px 17px;
  padding: 25px 25px;
  width: auto;
  color: #fff;
  font-size: .9rem;
  font-weight: 600;
  text-align: left;
  background-color: var(--color-primary);
  border-radius: 15px;
}
.section.info section .attention { margin: 20px auto 30px ;}
.section.info .attention2 li {
	margin: 0;
	padding-left: 1em;
	padding-bottom: 0;
	font-size: 1.15rem;
	text-indent: -1em;
}
.section.info .attention2 li span {
	padding-left: 1em;
}
.section.info .attention2 li:before {
	content: "＊";
}

.section.info .link {
  display: block;
  padding: 20px;
}

.section.info .btn a {
	display: inline-block;
	margin: 2em auto 1em;
	padding: .3em 1em;
	font-size: 1.35rem;
	color: #fff;
	font-weight: 600;
	background-color: var(--color-primary);
	border-radius: 5px;
}
.section.info .btn a img {
	width: auto;
	height: 1em;
	filter: invert(100%) sepia(100%) saturate(2%) hue-rotate(292deg) brightness(108%) contrast(101%);
	transition: 0s;
	vertical-align: -2px;
	
}
.section.info .btn a:hover {
	color: #fff;
	box-shadow : 0px 0px 10px 0px rgba(0,0,0,0.4);/* 	横位置　縦位置　ぼかし　広がり　色 */
	filter: brightness( 114% ) contrast( 116% ) grayscale(0%) saturate( 100% ) ;
}





/* 各会場
------------------------------------------ */

.section.info article + article { margin-top: 4.5rem; }
.section.info .place {
	display: flex;
	align-items: baseline;
	justify-content: flex-start;
	position: relative;
	margin: 0 0 1.4em;
	/* 気持ち細め＋左右1em */
	padding: 0.75em 1em 0.8em;
	color: #fff;
	text-align: left;
	/* チラシ裏の公演タイトル帯（SVGの凹凸を活かすため下地色は置かない） */
	background-color: transparent;
	background-image: url("/dear-nightingale/images/bg-title.svg");
	background-repeat: no-repeat;
	background-position: center center;
	/* SVG側 preserveAspectRatio="none" で縦にも伸びる */
	background-size: 100% 100%;
}
.section.info .place__name {
	flex: 0 0 auto;
	font-family: var(--font-serif);
	font-size: clamp(1.3rem, 1.1rem + 0.7vw, 1.7rem);
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.2;
	white-space: nowrap;
}
/* 水戸のみ: 主催を同帯・1行で右寄せ（底辺揃え） */
.section.info .place--with-org {
	justify-content: space-between;
	gap: 0.4rem 0.7rem;
	container-type: inline-size;
	container-name: place;
}
.section.info .place--with-org .place__org {
	flex: 1 1 auto;
	min-width: 0;
	margin: 0;
	color: #fff;
	font-family: var(--font-sans);
	/*
		1行固定。帯幅に追従（cqw）。
		目安: 帯幅 ~280px → 約10px / ~0.63rem
		      帯幅 ~500px → 約0.82rem（上限）
	*/
	font-size: clamp(0.5rem, 3.55cqw, 0.82rem);
	font-weight: 700;
	letter-spacing: 0.02em;
	line-height: 1.2;
	text-align: right;
	white-space: nowrap;
}
.section.info .place img {
	width: auto;
	height: 27px;
}
.section.info .tour {
	position: relative;
	margin: 0 auto;
	padding: 0;
	width: min(900px, 92%);
	color: var(--color-ink);
	text-align: left;
	border-radius: 0;
}
.section.info .tour .inner {
	/* 左右は旧 clamp(1.25rem, 5vw, 3rem) の半分 */
	padding: clamp(1.5rem, 4vw, 2.5rem) clamp(0.625rem, 2.5vw, 1.5rem) clamp(2rem, 5vw, 3rem);
	background: #fff;
	border: 0;
	box-shadow: none;
	color: var(--color-ink);
	text-align: left;
}
.section.info section.theater {
	color: var(--color-ink);
	margin-bottom: 2.5rem;
	text-align: left;
}
.section.info section.theater h3 {
	display: block;
	margin: 0.15em 0 0.15em;
	padding: 0;
	color: var(--color-ink);
	font-family: var(--font-serif);
	font-size: clamp(1.35rem, 1.15rem + 0.8vw, 1.85rem);
	font-weight: 700;
	line-height: 1.35;
	text-align: left;
	border: none;
}
.section.info section.theater h3 a { color: var(--color-ink);}
.section.info section.theater h3 small.small {
	margin: .4em auto .7em;
	font-size: 0.5em;
	letter-spacing: 0.01em;
	vertical-align:  text-top;
}

.section.info section.theater h3 a img {
	margin-bottom: 20px;
	width: auto;
	height: 60px;
	filter: none;
}
.section.info section.theater address {
	text-align: left;
	font-size: 0.95rem;
	font-weight: 500;
	font-style: normal;
	color: var(--color-ink-soft);
}
.section.info section.theater address a { letter-spacing: 0.05em;}
.section.info section.theater address a:link,
.section.info section.theater address a:visited { color: var(--color-ink-soft);}
.section.info section.theater address a:hover { color: var(--color-primary-deep);}
.section.info section.theater address a img {
	width: auto;
	height: 1.1em;
	/* 住所の薄い黒に合わせてアイコンも少し弱める */
	opacity: 0.72;
	filter: none;
	vertical-align: -1px;
}

.section.info section.theater .tel {font-size: 1.25rem;}
.section.info section.theater .tel img {
	width: .8em;
	height: auto;
	filter: invert(88%) sepia(58%) saturate(12%) hue-rotate(197deg) brightness(110%) contrast(100%);
	vertical-align: 0px;
}
.section.info .notes {
	position: relative;
	margin: 3em auto;
	padding: 25px 20px 20px;
	border: 1px dashed #fff;
}
.section.info .notes h4 {
	position: absolute;
	top: -.85em;
	left: 5px;
	margin: 0 auto .7em;
	padding: .3em .4em;
	color: #fff;
	line-height: 1;
	background-color: var(--color-primary-deep);
	border-radius: 3px;
}
/* .section.info section .notes .attention { margin-top: 5px !important;} */
.section.info section .notes .attention li {
	padding: 0;
	text-indent: 0;
}
.section.info section .notes .btn.small { margin: 0;}
.section.info section .notes .btn.small a {
	margin: 1em auto 0;
	font-size: 1rem;
}
.section.info section .notes .btn.small a:link,
.section.info section .notes .btn.small a:visited {
	background-color: var(--color-primary-deep);
}
.section.info section .notes .btn.small a:hover { background-color: var(--color-primary-dark);}


/* 日程・発売日共通（チラシ風 schedule） */
.section.info .schedule {
	margin: 0.15em 0 0;
	font-family: var(--font-serif);
	text-align: left;
}
.section.info .schedule__line {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.12em 0.28em;
	margin: 0 0 0.4em;
	color: var(--color-ink);
	font-family: var(--font-serif);
	font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.2rem);
	line-height: 1.4;
}
.section.info .schedule__year {
	color: var(--color-primary);
	font-family: var(--font-serif);
	font-size: 0.82em;
	font-weight: 700;
	letter-spacing: 0.02em;
}
.section.info .schedule__year--spacer {
	visibility: hidden;
}
.section.info .schedule__md {
	color: var(--color-primary);
	font-family: var(--font-serif);
	font-size: 1.55em;
	font-weight: 700;
	letter-spacing: 0.01em;
	line-height: 1;
}
.section.info .schedule__md strong {
	color: inherit;
	font-family: var(--font-serif);
	font-size: 1em;
	font-weight: 700;
}
.section.info .schedule__dow {
	color: var(--color-primary);
	font-family: var(--font-serif);
	font-size: 0.92em;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1;
}
.section.info .schedule__dow::before,
.section.info .schedule__dow::after {
	content: "|";
	font-weight: 700;
}
.section.info .schedule__time {
	color: var(--color-ink);
	font-family: var(--font-serif);
	font-size: 1em;
	font-weight: 500;
	letter-spacing: 0.02em;
}
.section.info .schedule__note {
	margin-left: 0.35em;
	color: var(--color-ink);
	font-size: 0.72em;
	font-weight: 500;
	letter-spacing: 0.02em;
}

/* 日程 */
.section.info section.date {
	margin-bottom: 2.5rem;
	color: var(--color-ink);
	text-align: left;
}
.section.info section.date .note {
	margin: 0.35em 0 0;
	color: var(--color-ink);
	font-size: 0.9rem;
	line-height: 1.5;
}
section.date .time table thead tr th.sat {position: relative;}
section.date .time table thead tr th.sat small.month {
	position: absolute;
	top:0;
	left: 0;
}

/* タイムテーブル
--------------------------------------------- */
.time table {
	display: block;
	margin: 0 auto ;
	padding: 0;
	width: 100%;
	max-width: 330px;
	-webkit-overflow-scrolling: touch;
	color: #fff;
	text-shadow: none;
	text-align: center;
}
.time table thead {
	display: flex;
	align-items: center;
	float: left;
	overflow: hidden;
	width: 25%;
}
.time table thead th {
	display: block;
	width: 80px;
	height: 40px;
	line-height: 40px;
	font-size: 1.3rem;
	text-align: center;
	border-collapse: collapse;
}
.time table.last thead th:last-child { border-bottom: none;}
.time table.last thead th small.month {
	visibility: visible;
  display: inline-block;
  height: 10px;
  font-size: 1rem;
  vertical-align: super;
}
.time table.table1 thead th small.month {
	display: inline-block !important;
	margin-right: 4px;
  vertical-align: 7px;
}
.time table.table1 thead th small.month:before,
.time table.table1 thead th small.month:after { content: "";}

.time table tbody {
	position: relative;
	display: block;
	width: 75%;
	overflow: hidden;
	white-space: nowrap;
}
.time table tbody tr {
	display: inline-block;
	margin: 0;
	width: 50%;
}
.time table tbody tr td {
	position: relative;
	display: block;
	margin: 0 ;
	width: 100%;
	height: 40px;
	line-height: 42px;
	font-size: 1rem;
	letter-spacing: 0.05em;
	text-align: center;
	z-index: 100;
}
.time table tbody tr td:after {
	content: "";
	position: absolute;
	top: 0; left: 0;
	width: 100%;
	height: 100%;
	background: url(../images/dot_W.png) repeat-y center top;
	background-size:1px auto ;
	z-index: 10;
}
.time table tbody tr td.line {
	background: url(../images/dotline_W.png) repeat-x left center;
	background-size: 1px auto;}
.time table tbody tr td.bgh { position: relative;}
.time table tbody tr td.bgh:before {
	content: "";
	position: absolute;
	top: 0; left: 0;
	width: 50%;       /* 要素の半分 */
	height: 100%;
	background: url(../images/dotline_W.png) repeat-x left center;
	background-size: 1px auto;	
}

.time table tbody tr td.camera img {
	margin-top: 9px;
	width: 18px;
}
.time table tbody tr:last-child td.off { border-left: none;}
.time table.last tbody tr td:last-child { border-bottom: none;}

.time table tbody tr td.op1500 { position: relative;}
.time table tbody tr td.op1500 .time {
	position: absolute;
	top: 8px;
	left: 80px;
	height: 24px;
	width: 60px;
	color: #5eb7e8;
	font-size: 1rem;
	line-height: 1;
	border-radius: 3px;
	border: 2px solid #5eb6e7;
	background-color: var(--color-primary-dark);
}
.time table tbody tr td.noline { border-left: none;}


.time table tbody tr td img {
	position: relative;
	margin-top: 7px;
	width: 14px;
	height: auto;
	vertical-align:baseline;
	line-height: 1;
	filter: invert(92%) sepia(92%) saturate(34%) hue-rotate(127deg) brightness(108%) contrast(111%) drop-shadow(0px 0px 3px black);
	z-index: 200;

}
.time table thead tr th.sat { color:#5eb7e8 }
.time table thead tr th.holy { color:#ed6c00; }
.time table tbody tr td.sat img {filter: invert(63%) sepia(99%) saturate(423%) hue-rotate(172deg) brightness(95%) contrast(90%) drop-shadow(0px 0px 3px black);}
.time table tbody tr td.holy img {filter: invert(45%) sepia(65%) saturate(3763%) hue-rotate(10deg) brightness(102%) contrast(101%) drop-shadow(0px 0px 3px black);}
.time table tbody tr td.opening { background: none; font-size: 1.1rem;}
.time table tbody tr td.opening:after { background: none;}
.time table thead tr th.off,
.time table tbody tr td.off {
	color: #898989;
	text-shadow : 1px 1px 0px rgba(0,0,0,0.5);
	background: none;
}
.time table tbody tr td.off:after { background: none;}
.time table tbody tr td.camera {
	color: #fff;
	text-shadow : 0px -1px 0px rgba(0,0,0,0.5);
}
.time table tbody tr td.add {
	font-size: 1.65rem;
	vertical-align: -2px;
}


.time .table2 { clear: both;}
.time .table2 .month,
.time .table2 .opening {
	visibility: hidden;
	display: none;
	height: 0;
}
.time table.last { margin-bottom: 10px;}

/* 注意事項(カメラ・車椅子) */
.time .attention {
	margin-bottom: 0;
	text-align: left;
}
.section.info section .attention li {
  padding-left: 1.3em;
  text-indent: -1.4em;
  font-size: 0.87rem;
  font-weight: 500;
  line-height: 1.4;
	font-feature-settings: "pkna";
	text-align: justify;
  letter-spacing: 0.02em;
}
.section.info section .attention li img.icon {
	width: 1em;
	height: auto;
	filter: invert(63%) sepia(99%) saturate(423%) hue-rotate(172deg) brightness(95%) contrast(90%);
	vertical-align: -2px;
}
/* 追加公演 */
.section.info section .attention li.add {	text-shadow : none;}
.section.info section .attention li.add .add {
	display: inline-block;
	color: #fff !important;
	background-color: var(--color-primary-deep);
}
section section .attention li span { text-indent: 0;}


/* 項目タイトル（チラシ風 [] ） */
.section.info .tour section > h4 {
	display: block;
	margin: 0 0 0.75em;
	padding: 0;
	color: var(--color-ink);
	font-family: var(--font-serif);
	font-size: 1rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.4;
	text-align: left;
	border: none;
}
.section.info .tour section > h4::before {
	content: "[";
	margin-right: 0.1em;
}
.section.info .tour section > h4::after {
	content: "]";
	margin-left: 0.1em;
}
.section.info .tour section.price > h4 .price-note {
	display: inline;
	margin-left: 0.05em;
	font-size: 0.72em;
	font-weight: 500;
	letter-spacing: 0.04em;
	vertical-align: baseline;
}
.section.info .tour section.price > h4 .price-note::before {
	content: "|";
	margin: 0 0.2em;
	font-weight: 500;
}
.section.info .tour section.price > h4 .price-note::after {
	content: none;
}

/* タブレット〜: 項目タイトル | 本文 の2列 */
@media screen and (min-width: 768px) {
	.section.info .tour .inner > section:not(.outer) {
		display: grid;
		grid-template-columns: 9.5em minmax(0, 1fr);
		column-gap: 1.5rem;
		row-gap: 0.35rem;
		align-items: baseline;
	}
	.section.info .tour .inner > section:not(.outer) > h4 {
		grid-column: 1;
		grid-row: 1;
		margin: 0;
		padding-top: 0;
		line-height: 1.35;
	}
	.section.info .tour .inner > section:not(.outer) > *:not(h4) {
		grid-column: 2;
		min-width: 0;
	}
	.section.info .shop dl dt:first-of-type {
		margin-top: 0;
	}
}

/* PC: タイトルと本文の間を広めに */
@media screen and (min-width: 992px) {
	.section.info .tour .inner > section:not(.outer) {
		column-gap: calc(1.5rem + 2em);
	}
}

.section.info .price {
	margin-bottom: 2.5rem;
	color: var(--color-ink);
	font-family: var(--font-serif);
	text-align: left;
}
.section.info section.price dl {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 0.85em;
	row-gap: 0.45em;
	align-items: baseline;
	margin: 0;
	color: var(--color-ink);
	font-size: 1rem;
}
.section.info .price dl dt {
	margin-top: 0;
	color: var(--color-ink);
	line-height: 1.2;
}
.section.info section.price dl dd {
	margin: 0;
	color: var(--color-ink);
	line-height: 1;
}
.section.info section dl {
	margin: 0;
	color: var(--color-ink);
	font-size: 1rem;
}
.section.info section dl dt { margin-top: .7em;}
.section.info section dl dd { margin-bottom: .2em;}
.section.info section.price dl dd:before { content: "";}
.section.info section.price dl dd strong {
  display: inline-block;
  padding: 0 3px;
  color: var(--color-primary);
  font-family: var(--font-serif);
  /* 日時・発売日の月日（schedule__md）と同じサイズ感 */
  font-size: 1.7rem;
  font-weight: 700;
  line-height: 1;
  vertical-align: baseline;
}
.section.info section dl dd small {
  display: inline-block;
  margin: .1em 0;
  padding: 0 .2em;
  font-size: .85em;
  line-height: 1.35;
}

/* チケット発売(onsell) — 岡山は料金と同じ dl 装飾 */
.section.info .onsell {
	margin-bottom: 2.5rem;
	text-align: left;
	color: var(--color-ink);
	font-family: var(--font-serif);
}
.section.info section.onsell dl {
	display: grid;
	grid-template-columns: auto 1fr;
	column-gap: 0.85em;
	row-gap: 0.55em;
	align-items: baseline;
	margin: 0;
	color: var(--color-ink);
	font-size: 1rem;
}
.section.info .onsell dl dt {
	margin-top: 0;
	color: var(--color-ink);
	line-height: 1.25;
	max-width: 14em;
}
.section.info .onsell dl dt .onsell-note {
	display: inline;
	margin-left: 0.1em;
	font-size: 0.78em;
	font-weight: 500;
	letter-spacing: 0.02em;
}
.section.info section.onsell dl dd {
	margin: 0;
	color: var(--color-ink);
	line-height: 1.2;
}
.section.info section.onsell dl dd:before { content: ""; }
.section.info .onsell .schedule__line {
	margin: 0;
}
/* スマホ〜タブレット: 発売ラベルと日時を縦並び（PCは横並び） */
@media screen and (max-width: 991px) {
	.section.info section.onsell dl {
		grid-template-columns: 1fr;
		row-gap: 0.15em;
	}
	.section.info .onsell dl dt {
		max-width: none;
	}
	.section.info section.onsell dl dd {
		margin: 0 0 0.65em;
		padding-left: 1.15em; /* ◉分だけ下げて揃える */
	}
	.section.info .onsell dl dt:last-of-type,
	.section.info section.onsell dl dd:last-child {
		margin-bottom: 0;
	}
}

/*  チケット取扱(shop)
--------------------------------------------- */
.section.info .shop {
	--shop-gutter: 1.35rem;
	--shop-mark: 1.1rem;
	margin-bottom: 2.5rem;
	text-align: left;
	color: var(--color-ink);
}
.section.info .shop dl { margin-bottom: .2em;}
.section.info .shop dl dt {
	position: relative;
	margin: 1em 0 0.6em;
	/* ◉分だけ左に空け、本文は揃える */
	padding-left: var(--shop-gutter);
	color: var(--color-ink);
	font-size: 1.05rem;
	line-height: 1.25;
	overflow-wrap: break-word;
	word-break: keep-all;
	line-break: strict;
}
.section.info .shop dl dt .shop-name__keep {
	white-space: nowrap;
}
.section.info .shop dl dt small,
.section.info .shop dl dt .shop-name__note {
	display: inline;
	margin-left: 0.25em;
	font-size: 0.78em;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.25;
	white-space: nowrap;
}

.section.info .shop dl dt.first { margin-top: 1em;}
.section.info section dl dt::before {
	margin-right: .1em;
	content: url(../images/icon.svg);
	display: inline-block;
	margin-right: .2em;
	width: .85rem;
	height: .85rem;
}
/* 取扱い見出し: ◉だけ左にぶら下げ（content:url だと折り返し行が崩れるため background に） */
.section.info .shop dl dt::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0.28em;
	display: block;
	margin: 0;
	width: 0.9rem;
	height: 0.9rem;
	background: url("../images/icon.svg") center / contain no-repeat;
	line-height: 1;
}
.section.info .shop dl dd {
	position: relative;
	margin-bottom: .25em;
	/* 店名本文と同じ左端（・なし） */
	padding-left: var(--shop-gutter);
	text-indent: 0;
	color: var(--color-ink);
	font-size: 1rem;
	line-height: 1.1;
}
.section.info .shop dl dd::before {
	content: none;
}
.section.info .shop a.tel {
	display: inline;
	padding-right: 0.2em;
	color: var(--color-primary);
	font-family: var(--font-sans);
	font-size: clamp(1.35rem, 1.2rem + 0.55vw, 1.7rem);
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.2;
	text-decoration: none;
	vertical-align: baseline;
}
.section.info .shop a.tel:hover,
.section.info .shop a.tel:focus-visible {
	color: var(--color-primary-deep);
	text-decoration: underline;
}
.section.info .shop .shop-hours {
	display: inline-block;
	margin-left: 0;
	color: var(--color-ink);
	font-family: var(--font-sans);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.35;
	vertical-align: baseline;
	white-space: nowrap;
	/* 約物のプロポーショナル詰め（対応フォントのみ） */
	font-feature-settings: "palt" 1;
}
.section.info .shop .shop-hours::first-letter {
	/* 全角「（」の左サイドベアリングを視覚的に打ち消す */
	font-feature-settings: "palt" 1, "halt" 1;
	margin-left: -0.28em;
}
.section.info .shop .shop-code {
	display: inline-block;
	margin-left: 0.25em;
	color: var(--color-ink);
	font-size: 0.9rem;
	line-height: 1.35;
	vertical-align: middle;
	white-space: nowrap;
}
.section.info section dl dd:before { content: "・";}
.section.info section.contact2 dl dd:before { content: "";}
.section.info .shop dl dd span,
.section.info .shop dl dd small {
	padding-left: 0em;
	text-indent: 0em;
}
.section.info .shop dl dd span.code {
	font-size: .95em;
	line-height: 1.5;
}
.section.info .shop dl dd small {
	display: inline-block;
	font-size: .75em;
	line-height: 1.2;
	letter-spacing: 0.07em;
}
.section.info .shop dl dd.web a {
  display: inline-block;
  margin-bottom: .3em;
  padding: .6em .2em;
  width: 100%;
  max-width: 200px;
  color: #fff;
  font-size: .9rem;
  text-align: center;
  text-decoration: none;
  background: var(--color-primary);
  border: none;
  border-radius: 0;
}
.section.info .shop dl dd.web a:hover {
  background: var(--color-primary-deep);
}
.section.info .shop dl dd.web a img {
  margin-left: .3em;
  height: .8rem;
  width: .8rem;
  vertical-align: -1px;
}

/* shop内リンクボタン（オンラインチケット／WEBサイトで幅を揃える） */
.section.info .shop a.btn {
	display: inline-flex;
	justify-content: center;
	align-items: center;
	gap: 0.35em;
	box-sizing: border-box;
	margin: 0.35em 0 0.45em;
	padding: 0.55em 1.35em;
	width: 13.5em;
	min-width: 13.5em;
	color: #fff;
	font-family: var(--font-sans);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.2;
	text-align: center;
	text-decoration: none;
	text-indent: 0;
	background: var(--color-primary);
	border: none;
	border-radius: 0;
	box-shadow: none;
	transition: background-color 0.25s ease, box-shadow 0.25s ease;
}
.section.info .shop a.btn:link,
.section.info .shop a.btn:visited {
	color: #fff;
}
.section.info .shop a.btn:hover {
	background: var(--color-primary-deep);
	filter: none;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.18);
}
.section.info .shop a.btn:active {
	box-shadow: inset 0 0 3px 1px rgba(0, 0, 0, 0.2);
}
.section.info .shop a.btn img {
	display: inline-block;
	margin: 0;
	width: 0.85em;
	height: 0.85em;
	max-width: 0.85em;
	max-height: 0.85em;
	vertical-align: middle;
	object-fit: contain;
	/* 黒アイコン想定 → 白ボタン上で白く */
	filter: brightness(0) invert(1);
}
/* ボタン行も「・」なし */
.section.info .shop dl dd:has(> a.btn) {
	padding-left: var(--shop-gutter);
	text-indent: 0;
}
.section.info .shop dl dd:has(> a.btn)::before,
.section.info .shop dl dd:has(> a.btn):before {
	content: none;
}
.section.info .shop dl dd.shop-note::before {
	/* ※注記のみマーカー */
	content: "※";
	position: absolute;
	left: var(--shop-gutter);
	top: 0;
	box-sizing: border-box;
	display: flex;
	align-items: flex-start;
	justify-content: flex-start;
	width: var(--shop-mark);
	height: 1.1em;
	margin: 0;
	padding: 0;
	font-family: var(--font-sans);
	font-size: 1rem;
	font-weight: 500;
	line-height: 1;
	letter-spacing: 0;
	text-align: left;
	text-indent: 0;
}
.section.info .shop dl dd.shop-note {
	padding-left: calc(var(--shop-gutter) + var(--shop-mark));
	font-family: var(--font-sans);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.4;
}

/* チケットに関するお願い */
.section.info .shop .shop-request {
	margin: 1.5rem 0 0;
	padding: 1em 1.1em 1.1em;
	border: 1px dotted var(--color-ink);
	color: var(--color-ink);
	font-family: var(--font-sans);
	text-align: left;
}
.section.info .shop .shop-request__title {
	display: block;
	margin: 0 0 0.75em;
	padding: 0 0 0.4em;
	color: var(--color-ink);
	font-size: 0.95rem;
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.35;
	border-bottom: 1px dotted var(--color-ink);
}
.section.info .shop .shop-request__list {
	margin: 0;
	padding: 0;
	list-style: none;
}
.section.info .shop .shop-request__list li {
	position: relative;
	margin: 0 0 0.2em;
	padding-left: 1.15em;
	font-size: 0.82rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.2;
}
.section.info .shop .shop-request__list li:last-child {
	margin-bottom: 0;
}
.section.info .shop .shop-request__list li::before {
	content: "●";
	position: absolute;
	left: 0;
	top: 0;
	font-size: 0.75em;
	line-height: 1.9;
}




.section.info .shop dl dd a:hover {
	filter: brightness( 114% ) contrast( 116% ) ;
	box-shadow : 0px 0px 2px 0px rgba(0,0,0,0.2);
}
.section.info .shop dl.link dd {
  padding-left: 0em;
  text-indent: 0em;
}
.section.info .shop dl.link dd:before { content: none;}

.section.info .shop .btn a,
.section.info .shop .btn .a {
	display: flex;
	justify-content: center;
	align-items: center;
	margin: 1em auto .2em;
	padding: 1em 1.5em 1em; 
	max-width: 300px;
	color: #fff;
	font-family: var(--font-sans);
	font-size: 1.2rem;
	font-weight: 700;
	line-height: 1.2;
	letter-spacing: 0;
	text-align: center;
	background: var(--color-primary);
	border-radius: 0;
}
.section.info .shop .btn .a { background: #888;}
.section.info .shop .btn a {
	background: var(--color-primary);
	transition: background-color 0.35s ease-in-out;
}


.section.info .shop .btn a:link,
.section.info .shop .btn a:visited {}
.section.info .shop .btn a:hover {
	background: var(--color-primary-deep);
	filter: none;
	box-shadow: none;
}
.section.info .shop .btn a:active {
	-webkit-box-shadow: 0 0px 3px 1px rgba(0,0,0,0.2) inset;
	-moz-box-shadow   : 0 0px 3px 1px rgba(0,0,0,0.2) inset;
	box-shadow        : 0 0px 3px 1px rgba(0,0,0,0.2) inset;
}
.section.info .shop .btn a span {
	display: block;
	height: 56%;
}

/* 水戸など：詳細はこちら（中央寄せ） */
.section.info .shop.outer {
	margin: 1.5rem auto 1.75rem;
	padding: 0;
	text-align: center;
}
.section.info .shop.outer .btn a,
.section.info .shop.outer .btn .a {
	margin-left: auto;
	margin-right: auto;
}


/*  お問い合わせ(contact)
--------------------------------------------- */
.section.info .contact { padding-bottom: 0;}
.section.info .contact .contact__body {
	margin: 0;
	color: var(--color-ink);
	font-size: 1rem;
	line-height: 1.55;
	text-align: left;
}
.section.info .contact a.tel {
	display: inline;
	padding-right: 0.2em;
	color: var(--color-primary);
	font-family: var(--font-sans);
	font-size: clamp(1.35rem, 1.2rem + 0.55vw, 1.7rem);
	font-weight: 700;
	letter-spacing: 0.04em;
	line-height: 1.2;
	text-decoration: none;
}
.section.info .contact a.tel:hover,
.section.info .contact a.tel:focus-visible {
	color: var(--color-primary-deep);
	text-decoration: underline;
}
.section.info .contact .shop-hours {
	display: inline-block;
	margin-left: 0;
	color: var(--color-ink);
	font-family: var(--font-sans);
	font-size: 0.78rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.35;
	vertical-align: baseline;
}
.section.info .contact dl dd {
	display: block;
	line-height: 1.1;
}
.section.info span.logo {
	display: inline-block;
	width: 36px;
	height: auto;
	padding: 0 2px;
	line-height: 1;
}
.section.info span.logo img { vertical-align: bottom;}

/* 東京以外のお問い合わせ */
.section.info section.contact.contact2 { text-align: center;}
.section.info section.contact.contact2 h3 {
	display: inline-block;
	margin: 0 0 .85em;
	padding: .2em 1em;
	color: #121212;
	font-size: .8rem;
	text-align: center;
	background: #fff;
}
.section.info .contact.contact2 dl {
	margin-top: .5em;
	text-align: center;
}
.section.info .contact.contact2 dl dt {
	display: block;
	margin-bottom: .5em;
	line-height: 1.1;
}
.section.info section.contact.contact2 dl dt::before {
	margin: 0;
	content: none;
}



/*  主催(promoter)
--------------------------------------------- */
.section.info .promoter {
  clear: both;
  padding-top: 20px;
  color: #fff;
  text-shadow : 0px -1px 0px rgba(0,0,0,0.3);
  font-size: .9rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  line-height: 1.3;
  text-align: center;
  border-top: 1px dashed #fff;
}
.section.info .promoter img.asterisk {
	margin: 0 .3em;
	height: .8rem;
	width: .8rem;
	vertical-align: -1px;
	filter: invert(77%) sepia(33%) saturate(454%) hue-rotate(13deg) brightness(82%) contrast(85%);
}


.section.info .tourinfo {
	margin: 15vh auto 0;
	width: 88%;
	font-size: 2.1rem;
	font-style: italic;
	transform   : skewY(-3deg); 
	text-shadow : 1px 1px 0px rgba(0,0,0,0.5);
}






/* ------------------------------------------
	10.section スタッフ
	 ------------------------------------------ */
.section.staff {
	display: flex;
	flex-direction: column;
	justify-content: center;
	justify-content: safe center;
	align-items: center;
	box-sizing: border-box;
	min-height: 100vh;
	min-height: 100dvh;
	margin: 0;
	padding: 4em 1.25rem 0;
	width: 100%;
	overflow: visible;
	background: #fff;
	color: var(--color-ink);
	text-align: center;
}
.section.staff .title {
	color: var(--color-ink) !important;
}
.section.staff ul {
	margin: 0 auto ;
	max-width: 800px;
	width: 100%;
	text-align: center;
}
.section.staff ul.staff-list {
	padding: 0;
	list-style: none;
}
.section.staff ul.staff-list .staff-line {
	display: block;
	margin: 0 0 0.5em;
	padding: 0;
	color: var(--color-ink);
	font-size: 0.75rem;
	line-height: 1.85;
	letter-spacing: 0;
}
.section.staff ul.staff-list .staff-item {
	display: inline-block;
	margin: 0 0.75em;
	white-space: nowrap;
}
.section.staff ul.staff-list .staff-item--multi {
	white-space: normal;
}
.section.staff ul.staff-list .staff-item--multi > strong,
.section.staff ul.staff-list .staff-item--multi > small {
	display: inline-block;
	white-space: nowrap;
}
.section.staff ul.staff-list .staff-item--multi > strong {
	margin-right: .55em;
}

.section.staff .staff-credit::after {
	content: "|";
	display: inline-block;
	margin: 0 0.35em 0 0.4em;
	font-weight: 400;
	color: var(--color-ink);
}
.section.staff .staff-affil {
	font-size: 1em;
	font-weight: 400;
	margin-left: 0.12em;
}
.section.staff .staff-affil-note .staff-affil {
	font-size: 1em;
	margin-left: 0;
	margin-right: 0.1em;
}
.section.staff .staff-affil-note {
	margin: 0 auto ;
	color: var(--color-ink);
	font-size: 0.75rem;
	line-height: 1.4;
	letter-spacing: 0.05em;
	text-align: center;
}
/* スマホ: 1名ずつ・途中改行なし */
@media screen and (max-width: 767px) {
	.section.staff ul.staff-list .staff-item {
		display: block;
		margin: 0.15em auto 0.5em;
		white-space: nowrap;
	}
	.section.staff ul.staff-list .staff-item--multi {
		display: grid;
		grid-template-columns: auto auto;
		justify-content: center;
		justify-items: start;
		align-items: end;
		column-gap: 0;
		text-align: left;
		white-space: normal;
	}
	.section.staff ul.staff-list .staff-item--multi > .staff-credit {
		grid-column: 1;
		grid-row: 1;
		align-self: end;
		line-height: 2;
	}
	.section.staff ul.staff-list .staff-item--multi > strong {
		grid-column: 2;
		display: block;
		margin:  0;
		padding-left: 0.15em;
		white-space: nowrap;
		text-align: left;
	}
	.section.staff ul.staff-list .staff-item--multi > strong:first-of-type {
		margin-top: 0;
	}
}
.section.staff ul li {
	display: block;
	margin-bottom: .35em;
	color: var(--color-ink);
	font-size: 0.75rem;
	line-height: 1.58;
	letter-spacing: 0;
}

.section.staff ul li strong,
.section.staff .staff-item strong {
	font-size: 1rem;
	padding-left: .15em;
}
.section.staff ul li small,
.section.staff .staff-item small {
	/* rem固定: strong外の「以上、…」も名前内の（）と同じ大きさに */
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0.02em;
}
.section.staff ul li.support strong { font-size: .9rem;}
.section.staff ul.cooperation {
	margin: 4em auto 0;
}
.section.staff ul.cooperation li {
	margin-bottom: 0.8em;
}
/* 各団体名を nowrap 単位にして途中改行を防ぐ */
.section.staff ul.cooperation strong {
	display: inline-block;
	margin: 0 0.35em .4em;
	padding-left: 0.15em;
	font-size: 1.2em; /* 試し: 親 li 0.75rem の 1.2倍 ≈ 0.9rem */
}
.section.staff ul.cooperation strong .coop-note {
	display: inline-block;
}
@media screen and (max-width: 480px) {
	.section.staff .staff-affil-note {
		margin: 0.85em auto 0 ;
	}
	.section.staff ul.cooperation strong.coop-break .coop-wrap {
		display: block;
		line-height: 1;
		font-size: 0.9em;
	}
	.section.staff ul.cooperation strong .coop-note {
		display: inline-block;
		margin: 0;
		font-size: .9em;
		line-height: 0.8;
	}
}
.section.staff ul li.support strong {
	display: block;
}
.section.staff .staff-logos {
	display: flex;
	flex-direction: column;
	align-items: center;
	flex-shrink: 0;
	width: 100%;
	margin: 2em auto 0;
	padding: 0 0 15vh;
}
.section.staff .staff-org-logo {
	margin: 0;
	padding: 0;
	line-height: 0;
	text-align: center;
}
.section.staff .staff-org-logo img {
	display: block;
	width: min(12.375rem, 42vw); /* 1.5倍相当を幅で固定 */
	height: auto;
	max-width: 85vw;
	object-fit: contain;
}
.section.staff .staff-site-logo {
	/* logo-geibun から離す（以前の約半分） */
	margin: clamp(2.5rem, 7vh, 4.5rem) 0 0;
	padding: 0;
	line-height: 0;
	text-align: center;
}
.section.staff .staff-site-logo a {
	display: inline-block;
	line-height: 0;
	text-decoration: none;
	transition: opacity 0.25s ease;
}
.section.staff .staff-site-logo a:hover {
	opacity: 0.75;
}
.section.staff .staff-site-logo img {
	display: block;
	/* auto/auto だと一部環境で 0 になるため幅を明示（1.5倍） */
	width: min(540px, 90vw);
	height: auto;
	max-width: 100%;
	object-fit: contain;
}




/* ------------------------------------------
	フッター
	 ------------------------------------------ */
.footer {
	margin-top: 0;
	padding: 28px 0 20px;
	color: #fff;
	font-size: .8rem;
	font-weight: normal;
	text-align: center;
	letter-spacing: 0.1em;
	font-family: var(--font-sans);
	background: linear-gradient(180deg, var(--color-primary-deep) 0%, var(--color-primary-dark) 100%);
}
.footer .inner {
	margin: 0 auto;
	padding: 0 1rem;
}
.footer .footer-inquiry {
	margin: 1.5em auto 2.5em;
	padding: 0.85em 0 1em;
}
.footer .footer-logo {
	margin: 1.5em 0 1.75em;
	padding: 0.75em 0 0.5em;
	line-height: 0;
	text-align: center;
}
.footer .footer-logo a {
	display: inline-block;
	line-height: 0;
	text-decoration: none;
	transition: opacity 0.25s ease;
}
.footer .footer-logo a:hover {
	opacity: 0.8;
}
.footer .footer-logo img {
	display: block;
	width: min(280px, 72vw);
	height: auto;
	/* SVGを白表示 */
	filter: brightness(0) invert(1);
}
.footer .footer-heading {
	display: block;
	margin: 0 0 1em;
	padding: 0;
	color: #fff;
	font-family: var(--font-sans);
	font-size: 0.75rem;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.4;
	text-align: center;
	border: none;
	opacity: 0.85;
}
.footer .footer-heading span {
	display: inline-block;
	padding: 0 0 0.2em;
	letter-spacing: 0.14em;
	/* letter-spacing の末尾ぶんを打ち消し、下線を文字幅に合わせる */
	margin-right: -0.14em;
	border-bottom: 1px solid rgba(255, 255, 255, 0.45);
}
.footer .footer-org {
	margin: 0;
	color: #fff;
	font-size: 1rem;
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.5;
	opacity: 0.8;
}
.footer .footer-tel {
	margin: 0 0 0.1em;
	line-height: 1.2;
	opacity: 0.8;
}
.footer .footer-tel__link {
	display: inline-flex;
	align-items: baseline;
	gap: 0.35em;
	padding: 0.35em 0.5em;
	color: #fff;
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
	-webkit-tap-highlight-color: rgba(255, 255, 255, 0.25);
	touch-action: manipulation;
}
.footer .footer-tel__label {
	font-size: 1em;
	letter-spacing: 0.08em;
}
.footer .footer-tel__num {
	font-size: clamp(1.15rem, 1rem + 1.2vw, 1.45rem);
}
.footer .footer-tel__link:hover,
.footer .footer-tel__link:focus-visible {
	color: #fff;
	text-decoration: underline;
}
@media screen and (max-width: 991px) {
	.footer .footer-tel__link {
		text-decoration: underline;
		text-underline-offset: 0.15em;
	}
}
.footer .footer-hours {
	margin: 0;
	color: #fff;
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.03em;
	line-height: 1.45;
	opacity: 0.92;
}
.footer .copyright {
	margin: 0 auto;
	color: #fff;
	line-height: 1.15;
}
.footer .logomo {
	margin: 20px auto 0;
	width: 60px;
	height: auto;
}

@media screen and (min-width: 480px) { /* スマホ横（480px以上）*/

@media screen and (orientation: landscape) {/* 横向きの場合のスタイル */
#body .maintitle h2.mainpict { top: 13vw;}
#body .maintitle h2.mainpict span {
	margin: 0 auto;
	width: 90vw;
	height: 90vw;
	background-size: 90vw 90vw;
}
}
@media screen and (orientation: portrait) {/* 縦向きの場合のスタイル */
}


	/* ------------------------------------------
		header - 役者紹介
		 ------------------------------------------ */

#body .maintitle .persons {
	background-size:	auto 100%, auto 100%;
	background-position: 7% center ,93% center ;
}

	/* ------------------------------------------
		10.section スタッフ
		 ------------------------------------------ */
	.section.staff {
		margin: 0;
		padding: 4em 10%;
		width: 100%;
	}
	.section.staff ul {
		margin-bottom: .3em;
		text-align: center;
	}
	.section.staff ul.staff-list .staff-line {
		display: block;
	}
	.section.staff ul.staff-list .staff-item {
		padding-right: 0;
	}
	.section.staff ul.cooperation li {
		display: block;
		padding-right: 0;
	}

	.section.staff ul li.list.support { margin: 0 auto ;}
	.section.staff ul li.list { margin: 5px auto 20px;}
	.section.staff ul li span.list_title {
		display: block;
		margin-top: 10px;
	}
	.section.staff ul.cooperation { margin: 4em auto 0;}
	.section.staff ul li.support strong {
		display: inline-block;
	}
	.section.staff ul.cooperation strong {
		display: inline-block;
		margin: 0 0.35em .4em;
		font-size: 1.2em;
	}



}
@media screen and (min-width: 768px) {
	/* タブレット（768px以上）*/

/* ------------------------------------------
	4.section 最新情報
	 ------------------------------------------ */
.section.news .box01 ul li .news-item {
	grid-template-columns: auto minmax(0, 1fr);
	grid-template-areas:
		"date title"
		".    text";
	column-gap: 0.85em;
	row-gap: 0.3em;
	align-items: start;
}
.section.news .box01 ul li p.date {
	margin-top: 0.28em;
}


/* ------------------------------------------
	8.section ストーリー
	 ------------------------------------------ */
.section.story p {
	font-size: 1.35rem;
	
}

	/* ------------------------------------------
		5.section メディア
		 ------------------------------------------ */
.section.media ul li {clear: both;}
.section.media ul li p.text {
	display: inline-block;
	margin-left: .3em;
}



/* ------------------------------------------
	6.section twitter
	 ------------------------------------------ */
.section.twitter {
	display: block;
}
.section.twitter .frame .twitterbody {
	margin: 0 auto;
	padding: 0px;
	width: 95%;
	max-width: 600px;
	max-height: 600px;
	min-height: 220px;
	overflow-x: hidden;
	border: 8px solid #e00011;
	background-color: #fff;
}




#document.timeline-Widget {
		max-width: 100% !important;
		width: 100% !important;
		}

div.timeline-Widget {
		max-width: 100% !important;
		width: 100% !important;
		}

.timeline {
		max-width: 100% !important;
		width: 100% !important;
		}

/* ここから下を追記 */
.SandboxRoot.env-bp-970 .timeline-Tweet-text {
		font-size: 10.5pt !important;
		line-height: 14pt!important;
		}

.SandboxRoot.env-bp-820 .timeline-Tweet-text {
		font-size: 10.5pt !important;
		line-height: 14pt!important;
		}
/*-------------------------------------------------サイドウィジットへのtwetter埋め込み修正*/

@media screen and (max-width: 768px) and (min-width: 480px) {
iframe .twitter-timeline-rendered{
width: 490px !important;
}
}

@media screen and (max-width: 480px) {
iframe.twitter-timeline-rendered {
width: 450px !important;
margin:0 auto;/*これを入れないとめっちゃ細く200pxくらいで表示されます。以下イメージあり！*/
}
}

.timeline-Widget {
max-width: 300px!important;
width:200px !important; }
/*サイドウィジットへのtwetter埋め込み修正終わり*/
.twitter .btn-twitter {
	display: table;
	width: 100%;
	height: 100px;
	font-size: 2.6rem;
	text-align: center;
}
.twitter .btn-twitter a {
		display: table-cell;
		vertical-align: middle;
		color: #e00011;
}
.twitter .btn-twitter a:hover {
	color: var(--color-primary);
	font-size: 1.6em;
}




/* ------------------------------------------
	11.section 公演情報
	 ------------------------------------------ */
.section.info .link { padding: 30px;}
.section.info .date { text-align: left;}

/* タイムテーブル */
.time table {
	display: table;
	width: 90%;
	margin: 2em;
	max-width: 100%;
}
.time table.table2 { margin-bottom: 0;}
.time table thead {
	float: none;
	display: table-header-group;
}
.time table thead th {
	display: table-cell;
	padding-bottom: 5px;
	width: auto;
	line-height: 1.2;
}
.time table thead th.month { vertical-align: middle;}
.time table thead th small {
	display: block !important;
	padding: 0;
}
.time table.last thead th small.month {
	font-size: .85rem;
	text-align: left;
}
.time table tbody { display: table-row-group;}
.time table tbody tr {
	display: table-row;
	background: url(../images/dotline_H.png) repeat-x center center;
	background-size: 4px auto;
}

.time table tbody tr td {
	display: table-cell;
	width: auto;
	min-width: 30px;
	height: 35px;
	line-height: 35px;
}
.time table tbody tr td::after { background: none;}
.time table tbody tr td.bgh::after {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 50%;
	background: url(../images/dot_W.png) repeat-y center  top;
	background-size: 1px auto;
}
.time table tbody tr td.line {
	background: url(../images/dot_W.png) repeat-y center top;
	background-size: 1px auto;
}

.time table tbody tr td.opening,
.time table tbody tr td.off { border: none; background: var(--color-primary-dark);}
.time table.table1 tbody td {
	height: 35px;
	line-height: 35px;
}
.time .table2 .month,
.time .table2 .time,
.time .table2 .opening {
	visibility: visible;
	display: table-cell;
	height: 35px;
	line-height: 1.2;
	width: auto;
}
.time table tbody tr td.op1500 .time {
	top: 23px;
	left: 1px;
	width: 40px;
	min-width: 30px;
	font-size: .85rem;
}

.time span a.add { text-decoration: none;}

.section.info section .attention { display: inline-block;}
.section.info .tour ul li .attention {
	display: inline-block;
	margin: 0 auto;
	width: 75%;
	text-align: left;
}
.section.info .tour ul li .attention li {
	clear: both;
  padding: 0 0 .1em;
}







	/* 各会場
		------------------------------------------ */


	/* 料金(price) 
		------------------------------------------ */
section.price dl {
}
section.price dl dt {
	display: block;
	margin-top: 0 !important;
	width: auto;
	height: auto;
	line-height: 1.2;
}
section.price dl dd {
	display: block;
	margin: 0 !important;
	width: auto;
	font-weight: 500;
	vertical-align: baseline;
}
.section.info li.price .attention {
	margin: 0 auto;
	padding: 1em 2em ;
	width: 90%;
	max-width: 800px;
	border-top: 1px dashed #e00011;
}
.section.info li.price .attention li {
	width: 80%;
	max-width: 700px;
} 


	/* チケット発売日 */
	.section.info .onsell h5 {
		float: none;
	}

	.section.info .onsell p {
		padding-left: 0;
		line-height: inherit;
	}

	/* MAP */
	.section.info .map h5 {
		float: left;
	}

	.section.info .map P {
		padding-left: 170px;
		padding-top: 20px;
	}


		/* チケット取扱 
		------------------------------------------ */
	.section.info .shop dl { 
		margin-bottom: 2em !important;
	}
	.section.info .shop dl dt {
		float: none;
		margin: 1em 0 0.6em;
		padding-left: var(--shop-gutter);
		font-size: 1.05rem;
		line-height: 1.25;
		text-shadow: none;
	}

	.section.info .shop dl dd {
		padding-left: var(--shop-gutter);
		text-indent: 0;
		line-height: 1.1;
	}

	.section.info .shop dl dd.detail {
		padding-left: var(--shop-gutter);
	}

	.section.info .shop dl dd:has(> a.btn) {
		padding-left: var(--shop-gutter);
		text-indent: 0;
	}

	.section.info .shop dl dd.shop-note {
		padding-left: calc(var(--shop-gutter) + var(--shop-mark));
	}

	/* フッター（スタッフ白背景と隙間を作らない） */
	.footer { margin-top: 0;}
}
@media screen and (min-width: 992px) { /* ノートPC（992px以上） */


@media screen and (orientation: portrait) {/* 縦向きの場合のスタイル */
}



/* ---------------------------------------------
	スライドバーメニュー上部固定
	 --------------------------------------------- */
body [off-canvas] {
	overflow: visible;
	background: none;
	-webkit-box-shadow: none;
	-moz-box-shadow: none;
	box-shadow: none;
}
body .menuslidebars {
	position: relative;
	display: block;
	width: 100%;
	z-index: 1000;
}
body .menuslidebars .fixedmenu {
	position: fixed;
	top: 0;
	left:0;
	width: 100%;
	height: 65px;
	background: var(--color-primary) no-repeat center top;
	background-size: 100% auto;
	background-repeat: repeat-y;
	background-attachment: fixed;
	transform: translateY(-200%);
	transition: transform 0.45s ease;
	z-index: 1000;
}
body .menuslidebars .fixedmenu.menu_visible { transform: translateY(0);}
body .menuslidebars .fixedmenu .header-main {
	margin: 0 auto;
	width: 96%;
	height: 65px;
	max-width: 1340px;
}
body .menuslidebars .fixedmenu .header-main .menu-logo {
	float: left;
	background: none;
}
body .menuslidebars .fixedmenu .header-main .menu-logo a {
	display: flex;
	justify-content: flex-start;
	align-items: center;
	position: relative;
	width: auto;
	height: 65px;
	padding: 0 0.25rem 0 0.5rem;
	border-radius: 0;
}
body .menuslidebars .fixedmenu .header-main .menu-logo a img {
	display: block;
	position: static;
	top: auto;
	width: auto;
	/* スマホ上部バーと同じ高さ */
	height: 40px;
	max-width: min(280px, 32vw);
	z-index: 10000;
	visibility: visible;
	object-fit: contain;
	border-radius: 0;
	/* SVGは黒塗り想定 → メニュー帯上では白に */
	filter: brightness(0) invert(1);
}
body .menuslidebars .fixedmenu #globalnavi {
	padding-left: 240px;
	padding-right: 50px;
}



/* メニュー */
.menuslidebars #globalnavi { height: 65px;}
.menuslidebars #globalnavi ul.menu {
	display: block;
	margin: 0 auto;
	width: 100%;
	min-width: 630px;
	height: 65px;
	text-align: center;
}
.menuslidebars #globalnavi ul.menu li {
	display: inline-block;
	margin: 0;
	text-align: center;
	vertical-align: middle;
}
.menuslidebars #globalnavi ul.menu li a {
	display: block;
	margin: 0;
	padding: 0 1.3vw;	/*MEDIAありの場合　 padding: 0 1.2vw; */
	height: 65px;
	line-height: 65px;
	font-size: .95rem;
	letter-spacing: 0.07em;
	text-indent: 0;
	text-shadow: none;
	background: none;
	border: none;
	box-shadow: none;
	transition: 0.25s ease;
}
.menuslidebars #globalnavi ul.menu li.sns {
	display: inline-flex;
	align-items: center;
	vertical-align: middle;
	margin-left: 0.45em;
}
.menuslidebars #globalnavi ul.menu li.sns a {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 0.85vw;
	line-height: 0;
}
.menuslidebars #globalnavi ul.menu li.sns img {
	display: block;
	width: 1.32rem;
	height: auto;
	filter: brightness(0) contrast( 100% ) invert(1);
	opacity: 1;
}
.menuslidebars #globalnavi ul.menu li.sns a img {
	transition: filter .3s ease-in;
}
.menuslidebars #globalnavi ul.menu li.sns a:hover img {
	filter: brightness(200%) contrast( 106% ) drop-shadow(0 0 2px rgba(0,0,0,.5)) /* 影 */ invert(1);
	opacity: 1;
}
.menuslidebars .menu_visible #globalnavi ul.menu li a:link,
.menuslidebars .menu_visible #globalnavi ul.menu li a:visited { color: #eee;}
.menuslidebars .menu_visible #globalnavi ul.menu li a:hover { color: #fff;}
.menuslidebars .menu_visible #globalnavi ul.menu li a:active {
	color: var(--color-primary);
	opacity: 0.85;
}
.menuslidebars #globalnavi ul.menu li.tours {
	position: static;
}
.menuslidebars #globalnavi ul.menu li.tours ul.tour {
	display: none;
	position: absolute;
	top: 65px; /* メインメニュー直下に密着 */
	right: 0;
	left: 0;
	padding: 0 20vw 0 0;
	width: 100%;
	height: 44px;
	text-align: right;
	background: var(--color-primary-deep);
	opacity: 0;
	transition: opacity 0.25s ease;
	z-index: 1001;
}
.opens .menuslidebars #globalnavi ul.menu li.tours ul.tour {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	opacity: 1;
}
.menuslidebars #globalnavi ul.menu li.tours ul.tour li {
	display: inline-flex;
	align-items: center;
	margin: 0;
	padding: 0 .4em;
	height: 100%;
	line-height: 1;
	border: none;
	vertical-align: middle;
}
.menuslidebars #globalnavi ul.menu li.tours ul.tour li a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.15em;
	margin: 0;
	padding: 0 0.15em;
	height: 44px;
	font-size: .95rem;
	line-height: 1.2;
	text-indent: 0;
	border: none;
	box-shadow: none;
	transform: translateY(-1px);
}
.menuslidebars #globalnavi ul.menu li.tours ul.tour li a::before {
	position: relative;
	top: 0;
	flex-shrink: 0;
}
.header-main #globalnavi ul .tour li a::before {
	/* メニュー帯上は白 */
	filter: brightness(0) invert(1);
}
.menuslidebars #globalnavi ul.menu li .tour li a:link,
.menuslidebars #globalnavi ul.menu li .tour li a:visited { opacity: 0.9;}
.menuslidebars #globalnavi ul.menu li .tour li a:hover { opacity: 1;}
.menuslidebars #globalnavi ul.menu li .tour li a:active { opacity: 1;}
body .header-main .logomoplays {
	position: absolute;
	top: 19px;
	right: 1%;
	margin: 0;
	padding: 0;
}

body .menubar {
	display: none;
	visibility: hidden;
	height: 1px;
}

	/* ---------------------------------------------
		メイン画像
		 --------------------------------------------- */
	#body .maintitle {
		margin: 0 auto;
		padding: 0;
	}
	#body .maintitle h1.maintitlepict {
		background: var(--img-main) no-repeat center center;
		background-size: contain;
	}
	#body .maintitle h1.maintitlepict img {
		visibility: visible;
		display: block;
		margin: 0 auto;
		width: auto;
		height: calc(95% - 50px);
	}

	 /* ---------------------------------------------
		メインタイトル
		 --------------------------------------------- */
	#body .maintitle h2.secondtitle {
		margin-bottom: 3em;
		padding-top: 140vmin;
}

	/* ------------------------------------------
		0.section 基本構造
		 ------------------------------------------ */
	#container { transform: none !important;}
	.content { padding: 0;}
	.section h2.title,
	.section h3.title {
		margin: 3.5em 0 1.5em;
		font-family: var(--font-serif);
	}
	/* 上記の 1.5em 下余白を上書き（コメント／キャスト／ニュース／スタッフ） */
	.section.comment .title,
	.section.cast .title,
	.section.news > .title,
	.section.staff .title {
		margin-bottom: max(60px, 7vh);
	}



	/* ------------------------------------------
		4.section 最新情報
		 ------------------------------------------ */
	.section.news {
		position: relative;
		margin: 0;
		width: 100%;
		max-width: none;
		height: auto;
		overflow: hidden;
		background-color: #fff;
		background-image: none;
	}
	.section.news .box01 {
		margin: 0 auto;
		width: 90%;
		max-width: 860px;
	}

	/* ------------------------------------------
		5.section メディア
		 ------------------------------------------ */



	/* ------------------------------------------
		11.section 公演情報
		 ------------------------------------------ */
/* .section.info article { padding-top: 120px;} */
	.section.info .link {
		display: block;
		margin: 0 auto 7px;
		padding: 80px 0 0;
		width: 96%;
		max-width: 900px;
		height: 110px;
	}
.section.info .shop dl.link dt { padding-left: 2em;}
.section.info .shop dl.link dd.detail { padding-left: 216px;}



@media screen and (orientation: landscape) {/* 横向きの場合のスタイル */
#body .maintitle h2.mainpict { top: 15vw;}
#body .maintitle h2.mainpict span {
	margin: 0 auto;
	width: 90vw;
	height: 90vw;
	background-size: 90vw 90vw;
}

/* ---------------------------------------------
	スライドバーメニュー上部固定
 --------------------------------------------- */
/*
body .menuslidebars .fixedmenu {
	top: 1100px;
}
*/
/* ---------------------------------------------
	メインタイトル
 --------------------------------------------- */
#body .maintitle h2.secondtitle {
	margin-bottom: 3em;
	padding-top: 1100px;
}

}


/* ------------------------------------------
	2.section ツアー
	 ------------------------------------------ */
.section.tours .tour.list {
	text-align: center;
}
.section.tours .tour.list li {
	display: inline-block;
	width: calc(50% - 4px);
}
.section.tours .tour.list li:nth-child(2n -1) {
	padding-right: 7px;
}
.section.tours .tour.list li:nth-child(2n ) {
	padding-left: 8px;
}




}@media screen and (min-width: 1200px) { /* デスクトップ（1200px以上） */

#body .maintitle h2.mainpict { top: 170px;}
#body .maintitle h2.mainpict span {
	margin: 0 auto;
	width: 80vw;
	max-width: 1000px;
	height: 80vw;
	max-height: 1000px;
	background-size: 1000px 1000px;
}
#body .maintitle h2.secondtitle {
		margin-bottom: 3em;
		padding-top: 1100px;
}
}@media screen and (min-width: 1400px) { /* デスクトップ（1200px以上） */
/*
body .menuslidebars .fixedmenu .header-main .menu-logo a {
  position: absolute;
  top: -1px;
  left: 3%;
  margin: 0;
  padding: 0;
}
*/



@media screen and (orientation: landscape) {/* 横向きの場合のスタイル */

}
@media screen and (orientation: portrait) {/* 縦向きの場合のスタイル */
}

}

/*# sourceMappingURL=style.css.map */

/* ==========================================
	拝啓ナイチンゲール様 — 構成案向け追加
============================================= */
.u-visually-hidden {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

/* ヒーロー: メイン画像 + チラシ配置SVGオーバーレイ */
.hero-stage {
	margin: 0 auto 1.5rem;
	width: 92%;
	max-width: 720px;
}
.hero-stage__frame {
	position: relative;
	margin: 0;
	line-height: 0;
	overflow: visible;
	border-radius: 0;
	/* 影・下地はメイン画像表示後にふわっと（コピー表示中は出さない） */
	background: transparent;
	box-shadow:
		0 36px 100px rgba(30, 63, 72, 0),
		0 18px 40px rgba(30, 63, 72, 0),
		0 6px 16px rgba(30, 63, 72, 0);
	transition:
		box-shadow 1.5s ease 0.45s,
		background-color 1.2s ease 0.2s;
}
.hero-stage.is-visual .hero-stage__frame {
	background: var(--color-primary-deep);
	box-shadow:
		0 36px 100px rgba(30, 63, 72, 0.55),
		0 18px 40px rgba(30, 63, 72, 0.4),
		0 6px 16px rgba(30, 63, 72, 0.28);
}
/* 再訪時（イントロ省略）は影を即座に最終状態へ */
.hero-stage.is-done .hero-stage__frame {
	transition: none;
}
.hero-stage__base {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 0;
	box-shadow: none;
	opacity: 0;
	/* 白青コピー切り替えと同じ尺で同時にふわっと（約2倍のゆっくり） */
	transition: opacity 2.4s ease;
}
.hero-stage__overlays {
	position: absolute;
	inset: 0;
	pointer-events: none;
}
.hero-layer {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
	object-fit: fill;
	opacity: 0;
	transition: opacity 1.2s ease;
}
/* picture 版タイトル層: 透過は親、フィットは内側 img */
picture.hero-layer {
	object-fit: unset;
}
picture.hero-layer > img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: fill;
}
.hero-layer--copy-w,
.hero-layer--copy {
	overflow: hidden;
}
/* 白コピー層はフェードインしない（親の透過と文字アニメが重なるのを防ぐ） */
.hero-layer.hero-layer--copy-w {
	transition: none !important;
}
/* 白青版への切り替え時だけ、白層をふわっと消す／青層をふわっと出す（メイン画像と同尺） */
.hero-layer--copy {
	transition: opacity 2.4s ease;
}
.hero-layer--copy-w > svg,
.hero-layer--copy > svg {
	position: absolute;
	inset: 0;
	display: block;
	width: 100%;
	height: 100%;
}
/* 白コピー: 文字 path だけを1つずつ出す */
.hero-layer--copy-w .copyw-char {
	opacity: 0;
	transition: opacity 0.38s ease;
}
.hero-layer--copy-w .copyw-char.is-in {
	opacity: 1;
}
/* 白青版はレイヤー全体のフェードで切り替え（文字は常時表示） */
.hero-layer--copy .copyd-char {
	opacity: 1;
}
.hero-layer--title {
	transition: opacity 2s ease;
}
.hero-layer--produce {
	transition: opacity 1.8s ease;
}
.hero-stage.is-copy .hero-layer--copy-w { opacity: 1; }
.hero-stage.is-visual .hero-stage__base { opacity: 1; }
/* 白青版を重ねたあと、白一色はフェードアウト（雲上の青が浮かぶ） */
.hero-stage.is-copy-duo .hero-layer--copy { opacity: 1; }
.hero-stage.is-copy-duo .hero-layer.hero-layer--copy-w {
	opacity: 0;
	transition: opacity 2.4s ease !important;
}
.hero-stage.is-title .hero-layer--title { opacity: 1; }
.hero-stage.is-produce .hero-layer--produce { opacity: 1; }
/* イントロ省略時も白コピーの path を表示済みに */
.hero-stage.is-done .hero-layer--copy-w .copyw-char {
	opacity: 1;
	transition: none;
}

/* 旧テキスト見出しはSVGへ移行済み（後方互換で非表示） */
header.maintitle .produce,
header.maintitle .genre,
header.maintitle h1.title,
header.maintitle .catch {
	display: none;
}
header.maintitle .hero-stage__frame {
	width: 100%;
	margin: 0;
}
header.maintitle .hero-stage__frame .hero-stage__base {
	border-radius: 0;
	box-shadow: none;
}

/*
	スマホ試作: チラシをブラウザ全幅＆
	上下メニューを除いたファーストビュー高さに cover 合わせ（左右は切れても可）
*/
@media screen and (max-width: 991px) {
	header.maintitle {
		max-width: none;
	}
	header.maintitle .inner {
		max-width: none;
	}
	.hero-stage {
		width: 100%;
		max-width: none;
		margin: 0 0 1.5rem;
	}
	.hero-stage__frame {
		width: 100%;
		/* フォールバック → 対応ブラウザは dvh */
		height: calc(
			100vh
			- var(--hero-chrome-top, 64px)
			- var(--hero-chrome-bottom, 58px)
			- env(safe-area-inset-bottom, 0px)
		);
		height: calc(
			100dvh
			- var(--hero-chrome-top, 64px)
			- var(--hero-chrome-bottom, 58px)
			- env(safe-area-inset-bottom, 0px)
		);
		/* スマホは全幅なので影はほぼ不要（気づかない程度） */
		background: transparent;
		box-shadow: 0 2px 6px rgba(30, 63, 72, 0);
	}
	.hero-stage.is-visual .hero-stage__frame {
		background: transparent;
		box-shadow: 0 3px 8px rgba(30, 63, 72, 0.08);
	}
	/* picture が親高さを継承しないと cover が効かない */
	.hero-stage__frame > picture {
		position: absolute;
		inset: 0;
		display: block;
		width: 100%;
		height: 100%;
	}
	header.maintitle .hero-stage__frame .hero-stage__base,
	.hero-stage__frame .hero-layer--copy-w,
	.hero-stage__frame .hero-layer--copy,
	.hero-stage__frame .hero-layer--copy-w > svg,
	.hero-stage__frame .hero-layer--copy > svg {
		display: block;
		width: 100%;
		height: 100%;
		max-height: none;
		object-fit: cover;
		object-position: center center;
	}
	/*
		タイトル／プロデュースは cover で見切れるため独立配置。
		左右余白は 5vw。
		タイトル画像の上端は「ミュ」で、「拝」は少し下（約70/960）にあるため、
		プロデュースは「拝」上端に合わせて下げる。
	*/
	.hero-stage__frame .hero-layer--title {
		inset: auto;
		top: 0;
		right: 5vw;
		left: auto;
		bottom: auto;
		width: 40vw;
		height: auto;
		aspect-ratio: 470 / 960;
	}
	.hero-stage__frame .hero-layer--title > img {
		display: block;
		width: 100%;
		height: 100%;
		object-fit: contain;
		object-position: right top;
	}
	.hero-stage__frame .hero-layer--produce {
		inset: auto;
		/* top = タイトル「拝」合わせの半分 */
		top: calc(40vw * 70 / 470 / 2);
		left: 2.5vw;
		right: auto;
		bottom: auto;
		width: 55vw;
		max-width: 55vw;
		height: auto;
		aspect-ratio: 246 / 40;
	}
	.hero-stage__frame .hero-layer--produce > img {
		display: block;
		width: 100%;
		height: auto;
		object-fit: contain;
		object-position: left top;
	}
}

/*
	縦長スマホ（上部バーにハレノワ表示あり）: ヒーロー内プロデュースは非表示
	SE級（max-height:700px）と PC では表示のまま
*/
@media screen and (max-width: 991px) and (min-height: 701px) {
	.hero-stage__frame .hero-layer--produce,
	.hero-stage.is-produce .hero-layer--produce {
		opacity: 0 !important;
		visibility: hidden;
		pointer-events: none;
	}
}

/* PC: 幅 = min(1200, 画面幅, 画面高さ×100%)＝正方形以上で幅固定
   画像全体はスクロールで見える／影用余白あり */
@media screen and (min-width: 992px) {
	header.maintitle {
		max-width: none;
		width: 100%;
		margin: 0;
	}
	header.maintitle .inner {
		max-width: none;
		width: 100%;
		margin: 0;
		padding: 0;
	}
	.hero-stage {
		display: flex;
		align-items: center;
		justify-content: center;
		width: 100%;
		max-width: none;
		min-height: 100vh;
		min-height: 100dvh;
		height: auto;
		/* 下余白は credit-main の padding と対称に揃える */
		margin: 0;
		padding: 3rem 2rem 0;
		box-sizing: border-box;
		overflow: visible;
		background: transparent;
	}
	header.maintitle .hero-stage__frame {
		position: relative;
		flex: 0 0 auto;
		/* 試し: 5/6 → 100%（正方形） */
		width: min(1200px, 100%, 100vh);
		width: min(1200px, 100%, 100dvh);
		max-width: 1200px;
		height: auto;
		aspect-ratio: 1200 / 1684;
	}
	.hero-stage__frame > picture {
		position: absolute;
		inset: 0;
		display: block;
		width: 100%;
		height: 100%;
	}
	header.maintitle .hero-stage__frame .hero-stage__base,
	.hero-stage__frame .hero-layer,
	.hero-stage__frame picture.hero-layer > img {
		display: block;
		width: 100%;
		height: 100%;
		max-height: none;
		object-fit: contain;
		object-position: center center;
	}
}

/* メインスタッフクレジット（チラシ型・青空背景に白明朝） */
header.maintitle .credit-main {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	margin: 0 auto;
	padding: clamp(2rem, 6vh, 4rem) clamp(1.25rem, 4vw, 2.5rem);
	/* 下端の雲テクスチャと名前が重ならないよう確保 */
	padding-bottom: 15vh;
	width: 100%;
	max-width: none;
	/* 1画面に没頭（内容は常に中央） */
	min-height: 100vh;
	min-height: 100dvh;
	box-sizing: border-box;
	color: #fff;
	font-family: var(--font-serif);
	font-weight: 500;
	letter-spacing: 0.04em;
	text-align: center;
	/* 白雲と重なっても読めるよう、primary-deep で縁取り気味の影 */
	text-shadow:
		0 0 0.4em var(--color-primary-deep),
		0 0 0.85em var(--color-primary-deep),
		0 1px 3px var(--color-primary-deep);
	/* 青空の上に雲テクスチャ（下端・contain） */
	background-image: url("/dear-nightingale/images/bg-cloud02.webp");
	background-position: bottom center;
	background-size: contain;
	background-repeat: no-repeat;
}
/* 下からふわっと出現
 * 原案: 1/4 見えたら開始 → 1.2s
 * 脚本〜演出: 先頭 1px 見えたら開始 → 1s
 */
header.maintitle .credit-main__reveal {
	opacity: 0;
	transform: translate3d(0, 14vh, 0);
	transition:
		opacity 1.2s ease,
		transform 1.2s cubic-bezier(0.22, 1, 0.36, 1);
	will-change: opacity, transform;
}
header.maintitle .credit-main__reveal--crew {
	transition:
		opacity 1s ease,
		transform 1s cubic-bezier(0.22, 1, 0.36, 1);
}
header.maintitle .credit-main__reveal.is-in {
	opacity: 1;
	transform: translate3d(0, 0, 0);
}
@media (prefers-reduced-motion: reduce) {
	header.maintitle .credit-main__reveal {
		opacity: 1;
		transform: none;
		transition: none;
	}
}
header.maintitle .credit-main__source {
	margin: 0 0 2.6em;
	width: min(920px, 94%);
}
header.maintitle .credit-main__role {
	display: block;
	margin: 0 0 0.35em;
	font-size: clamp(0.78rem, 0.7rem + 0.35vw, 0.95rem);
	font-weight: 500;
	letter-spacing: 0.08em;
	line-height: 1.4;
}
header.maintitle .credit-main__author,
header.maintitle .credit-main__name {
	margin: 0;
	/* 原案・脚本家などの人名は同サイズ */
	font-size: clamp(1.12rem, 1rem + 0.7vw, 1.45rem);
	font-weight: 600;
	letter-spacing: 0.12em;
	line-height: 1.5;
}
header.maintitle .credit-main__work {
	margin: 0.25em 0 0;
	font-size: clamp(0.95rem, 0.85rem + 0.55vw, 1.3rem);
	font-weight: 600;
	line-height: 1.55;
	/* タイトルは途中改行しない */
	white-space: nowrap;
}
header.maintitle .credit-main__pub {
	margin: 0.35em 0 0;
	font-size: clamp(0.9rem, 0.82rem + 0.35vw, 1.1rem);
	font-weight: 500;
	line-height: 1.5;
}
header.maintitle .credit-main__crew {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 0;
	margin: 0;
	padding: 0;
	width: min(920px, 94%);
	list-style: none;
}
header.maintitle .credit-main__crew > li {
	padding: 0 clamp(0.75rem, 2vw, 1.5rem);
	text-align: center;
}
header.maintitle .credit-main__crew > li + li {
	border-left: 1px solid rgba(255, 255, 255, 0.55);
}
header.maintitle .credit-main__crew .credit-main__role {
	margin-bottom: 0.45em;
}
header.maintitle .credit-main__name {
	display: block;
}

/* PC: 原案と脚本群のあいだを広めに */
@media screen and (min-width: 992px) {
	header.maintitle .credit-main {
		padding-left: 2rem;
		padding-right: 2rem;
	}
	header.maintitle .credit-main__source {
		margin-bottom: 4.75em;
	}
	header.maintitle .credit-main__crew {
		width: min(720px, 94%);
	}
}

/* スマホ: 脚本家以下は1列（読みやすさ優先）／上下メニュー分を除いた高さ */
@media screen and (max-width: 991px) {
	header.maintitle .credit-main {
		min-height: calc(
			100vh
			- var(--hero-chrome-top, 64px)
			- var(--hero-chrome-bottom, 58px)
			- env(safe-area-inset-bottom, 0px)
		);
		min-height: calc(
			100dvh
			- var(--hero-chrome-top, 64px)
			- var(--hero-chrome-bottom, 58px)
			- env(safe-area-inset-bottom, 0px)
		);
		padding: 2rem 1rem;
		padding-bottom: 15vh;
		font-size: clamp(0.88rem, 0.8rem + 0.4vw, 1.05rem);
	}
	header.maintitle .credit-main__author,
	header.maintitle .credit-main__name {
		font-size: clamp(1.22rem, 4.8vw, 1.45rem);
	}
	header.maintitle .credit-main__work {
		/* 改行しない範囲でできるだけ大きく */
		font-size: clamp(0.88rem, 3.9vw, 1.1rem);
		letter-spacing: 0.02em;
	}
	header.maintitle .credit-main__pub {
		font-size: clamp(0.95rem, 3.4vw, 1.1rem);
	}
	header.maintitle .credit-main__source {
		/* 原案ブロックと脚本以下のあいだ */
		margin-bottom: 3.4em;
	}
	header.maintitle .credit-main__crew {
		grid-template-columns: 1fr;
		gap: 1.6em;
		width: min(18rem, 94%);
	}
	header.maintitle .credit-main__crew > li {
		padding: 0;
	}
	header.maintitle .credit-main__crew > li + li {
		border-left: 0;
		padding-top: 1.6em;
		border-top: 1px solid rgba(255, 255, 255, 0.35);
	}
	.section.story {
		min-height: calc(
			100vh
			- var(--hero-chrome-top, 64px)
			- var(--hero-chrome-bottom, 58px)
			- env(safe-area-inset-bottom, 0px)
		);
		min-height: calc(
			100dvh
			- var(--hero-chrome-top, 64px)
			- var(--hero-chrome-bottom, 58px)
			- env(safe-area-inset-bottom, 0px)
		);
	}
}

@media screen and (max-width: 520px) {
	header.maintitle .credit-main {
		padding-left: 0.75rem;
		padding-right: 0.75rem;
	}
	header.maintitle .credit-main__author,
	header.maintitle .credit-main__name {
		letter-spacing: 0.08em;
	}
}

.section.story .intro {
	margin: 0 0 1.75em;
	font-weight: 700;
	line-height: 1.7;
	color: var(--color-primary-deep);
	text-align: left;
}
.section.story .intro .story-intro__line {
	/* .section.story p (1.1rem) より明確に大きく */
	margin: 0 0 .43em;
	font-size: clamp(1.4rem, 1.25rem + 0.7vw, 1.75rem);
	font-weight: 700;
	line-height: 1.55;
	letter-spacing: 0.06em;
	font-feature-settings: "palt";
	text-align: left;
	opacity: 0;
	transition: opacity 1.35s ease;
}
.section.story .intro .story-intro__line.is-in {
	opacity: 1;
}
.section.story .intro .story-nobr {
	display: inline-block;
}
.section.story .intro .story-intro__fit {
	white-space: nowrap;
}
@media screen and (max-width: 720px) {
	.section.story .intro .story-intro__line {
		font-size: clamp(1.12rem, 5.1vw, 1.4rem);
		letter-spacing: 0.04em;
	}
}
/* palt は字幅の調整で、行頭「のぶら下げ」ではない。左ベアリング分を戻す */
.section.story .intro .story-punct-open {
	margin-left: -0.5em;
}
.section.story .story-body__fade {
	opacity: 0;
	transition: opacity 2.4s ease;
}
.section.story .story-body__fade.is-in {
	opacity: 0.8;
}
@media (prefers-reduced-motion: reduce) {
	.section.story .intro .story-intro__line {
		opacity: 1;
		transition: none;
	}
	.section.story .story-body__fade {
		opacity: 0.8;
		transition: none;
	}
}
.section.sponsor .note {
	margin: 0 auto 1.5em;
	color: var(--color-text-muted);
	font-family: var(--font-sans);
	font-size: 0.9rem;
}

.section.cast {
	position: relative;
	padding: var(--space-section) 0 0;
	/* 空テクスチャを敷く（チラシまで一体） */
	background-color: #059ab0;
	background-image: var(--img-bg);
	background-repeat: repeat;
	background-position: center top;
	background-size: auto 100vh;
	background-size: auto 100dvh;
	color: #fff;
	overflow: clip;
}
/* 上端: 雲テクスチャ */
.section.cast::before {
	content: "";
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	aspect-ratio: 1500 / 212;
	background-image: url("/dear-nightingale/images/bg-cloud04.webp");
	background-position: 45% top;
	background-size: auto 100%;
	background-repeat: repeat-x;
	pointer-events: none;
	z-index: 1;
}
/* 下端: 雲テクスチャ（contain） */
.section.cast::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	aspect-ratio: 1500 / 212;
	background-image: url("/dear-nightingale/images/bg-cloud05.webp");
	background-position: bottom center;
	background-size: contain;
	background-repeat: no-repeat;
	pointer-events: none;
	z-index: 1;
}
.section.cast .inner {
	position: relative;
	z-index: 2;
	margin: 0 auto;
	width: min(1200px, 90%);
	text-align: center;
}
.section.cast .title {
	margin: 0 0 max(60px, 7vh);
	color: #fff;
	text-align: center;
}
.section.cast .cast-list {
	display: grid;
	/* スマホ: 2列×8段 */
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem 1rem;
	margin: 0 auto 2.5em;
	padding: 0;
	list-style: none;
}
.section.cast .cast-list > li {
	margin: 0;
	min-width: 0;
	opacity: 0;
	transition: opacity 0.9s ease;
}
.section.cast .cast-list > li.is-in {
	opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
	.section.cast .cast-list > li {
		opacity: 1;
		transition: none;
	}
}
.section.cast .cast-card {
	margin: 0;
}
.section.cast .cast-card picture,
.section.cast .cast-card img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	background: rgba(255, 255, 255, 0.08);
}
.section.cast .cast-card figcaption {
	margin-top: 0.45em;
	color: #fff;
	font-family: var(--font-serif);
	font-size: clamp(0.78rem, 0.7rem + 0.4vw, 0.95rem);
	font-weight: 500;
	letter-spacing: 0.04em;
	line-height: 1.35;
	font-feature-settings: "jp04" 1;
	font-variant-east-asian: jis04;
}
.section.cast .subhead {
	margin: 4rem auto 1.75rem;
	color: #fff;
	font-family: var(--font-serif);
	font-size: clamp(1.25rem, 1.1rem + 0.6vw, 1.55rem);
	font-weight: 700;
	letter-spacing: 0.08em;
}
.section.cast .musician-list {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 0;
	margin: 0 auto;
	padding: 0;
	width: min(22rem, 100%);
	list-style: none;
	font-family: var(--font-sans);
	color: #fff;
	text-align: center;
}
.section.cast .musician-list > li {
	padding: 1rem 0.5rem;
	opacity: 0;
	transition: opacity 0.9s ease;
}
.section.cast .musician-list > li.is-in {
	opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
	.section.cast .musician-list > li {
		opacity: 1;
		transition: none;
	}
}
.section.cast .musician-list > li + li {
	border-top: 1px solid rgba(255, 255, 255, 0.55);
}
.section.cast .musician-list__name,
.section.cast .musician-list__role {
	display: block;
}
.section.cast .musician-list__name {
	font-family: var(--font-serif);
	font-size: clamp(1.05rem, 0.95rem + 0.4vw, 1.2rem);
	font-weight: 700;
	letter-spacing: 0.06em;
	line-height: 1.4;
	font-feature-settings: "jp04" 1;
	font-variant-east-asian: jis04;
}
.section.cast .musician-list__role {
	margin-top: 0.25em;
	font-size: clamp(0.85rem, 0.78rem + 0.25vw, 0.95rem);
	font-weight: 400;
	letter-spacing: 0.04em;
	line-height: 1.4;
	color: rgba(255, 255, 255, 0.92);
}

/* タブレット: キャスト4列×4段 */
@media screen and (min-width: 600px) {
	.section.cast .cast-list {
		grid-template-columns: repeat(4, minmax(0, 1fr));
		gap: 1rem 1rem;
	}
}

/* PC: キャスト8列×2段／ミュージシャン横一列 */
@media screen and (min-width: 992px) {
	.section.cast .cast-list {
		grid-template-columns: repeat(8, minmax(0, 1fr));
		gap: 1rem 1rem;
	}
	.section.cast .subhead {
		margin-top: 5rem;
		margin-bottom: 2.25rem;
	}
	.section.cast .musician-list {
		flex-direction: row;
		align-items: stretch;
		justify-content: center;
		width: 100%;
		max-width: 1100px;
	}
	.section.cast .musician-list > li {
		flex: 1 1 0;
		min-width: 0;
		padding: 0.85rem 0.65rem;
		border: 0;
	}
	.section.cast .musician-list > li + li {
		border-top: 0;
		border-left: 1px solid rgba(255, 255, 255, 0.45);
	}
}

.section.sponsor {
	margin: 0;
	padding: 3.5em 0;
	background: #fff;
	text-align: center;
}
.section.sponsor .inner {
	margin: 0 auto;
	width: 92%;
	max-width: 960px;
}
/* チケット取扱い店名（shop dt）と同じ書体・サイズ */
.section.sponsor .title {
	margin: 0 auto 1em;
	color: var(--color-primary-deep);
	font-family: var(--font-sans);
	font-size: 1.05rem;
	font-weight: 700;
	letter-spacing: 0;
	line-height: 1.25;
	text-align: center;
}
.section.sponsor .lead {
	margin: 1em auto 1.75em;
	font-size: 1.05rem;
	line-height: 1.7;
}
.section.sponsor .lead .nobr {
	white-space: nowrap;
}
.section.sponsor .sponsor-logos {
	display: flex;
	flex-wrap: nowrap;
	justify-content: center;
	align-items: center;
	gap: 0;
	margin: 0 auto;
	padding: 0;
	width: 100%;
	list-style: none;
}
.section.sponsor .sponsor-logos li {
	flex: 0 1 auto;
	margin: 0;
	padding: 0;
	min-width: 0;
	line-height: 0;
}
/* タブレット〜: 横並び・隙間なし・大きく */
.section.sponsor .sponsor-logos img {
	display: block;
	width: auto;
	height: clamp(4.5rem, 7vw, 6.5rem);
	max-width: min(420px, 46vw);
	margin: 0;
	object-fit: contain;
}
@media screen and (min-width: 992px) {
	.section.sponsor .sponsor-logos img {
		height: clamp(5.5rem, 6.5vw, 7.5rem);
		max-width: min(460px, 42vw);
	}
}
/* スマホ: 縦一列・大きく */
@media screen and (max-width: 767px) {
	.section.sponsor .sponsor-logos {
		flex-direction: column;
		flex-wrap: wrap;
		gap: 1.5rem;
	}
	.section.sponsor .sponsor-logos li {
		flex: 0 1 auto;
		width: 100%;
	}
	.section.sponsor .sponsor-logos img {
		width: auto;
		height: clamp(4.8rem, 12vw, 6.4rem);
		max-height: none;
		max-width: min(420px, 88vw);
		margin: 0 auto;
	}
}
.section.sponsor .names {
	font-family: var(--font-sans);
	font-weight: 700;
	color: var(--color-primary-deep);
}

.menu-logo img {
	object-fit: contain;
	border-radius: 0;
}

/* ==========================================
	A案: 下部固定ナビ + 右上≡補完
============================================= */
.desktop-only-menubar { display: none !important; }

.mobile-topbar {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 12000;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 0.75rem;
	height: 64px;
	padding: 0 0.75rem 0 1rem;
	/* 表示時は帯で空テクスチャを覆う（イントロ中は非表示のため下の空が見える） */
	background: var(--color-primary);
	color: var(--color-white);
	backdrop-filter: blur(8px);
	box-shadow: 0 1px 0 rgba(255,255,255,0.08);
}
.mobile-topbar__brand {
	display: flex;
	align-items: center;
	overflow: hidden;
	max-width: calc(100% - 3.5rem);
	line-height: 0;
	text-decoration: none;
}
.mobile-topbar__brand img {
	display: block;
	width: auto;
	height: 40px;
	max-width: 100%;
	/* SVGは黒塗り想定 → ティール帯上では白に */
	filter: brightness(0) invert(1);
}

.nav-burger {
	position: relative;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	z-index: 1;
}
.nav-burger__lines,
.nav-burger__lines::before,
.nav-burger__lines::after {
	display: block;
	width: 22px;
	height: 2px;
	background: var(--color-white);
	border-radius: 2px;
	transition:
		transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
		opacity 0.35s ease,
		top 0.45s cubic-bezier(0.22, 1, 0.36, 1);
}
.nav-burger__lines {
	position: relative;
	margin: 0 auto;
}
.nav-burger__lines::before,
.nav-burger__lines::after {
	content: "";
	position: absolute;
	left: 0;
}
.nav-burger__lines::before { top: -7px; }
.nav-burger__lines::after { top: 7px; }
.nav-burger[aria-expanded="true"] .nav-burger__lines {
	background: transparent;
}
.nav-burger[aria-expanded="true"] .nav-burger__lines::before {
	top: 0;
	transform: rotate(45deg);
}
.nav-burger[aria-expanded="true"] .nav-burger__lines::after {
	top: 0;
	transform: rotate(-45deg);
}

.nav-drawer {
	position: fixed;
	inset: 0;
	z-index: 13000;
	display: flex;
	align-items: stretch;
	justify-content: center;
	background: rgba(44, 93, 105, 0.22);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity 0.6s ease,
		visibility 0.6s ease;
}
.nav-drawer.is-open {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.nav-drawer__panel {
	position: relative;
	width: 100%;
	height: 100%;
	max-width: none;
	padding: 0 1.5rem calc(2rem + env(safe-area-inset-bottom, 0px));
	background: #f7f5f2;
	box-shadow: none;
	overflow-y: auto;
	font-family: var(--font-sans);
	opacity: 0;
	transform: translateY(16px) scale(0.98);
	transition:
		opacity 0.6s ease,
		transform 0.65s cubic-bezier(0.22, 1, 0.36, 1);
}
.nav-drawer.is-open .nav-drawer__panel {
	opacity: 1;
	transform: translateY(0) scale(1);
}
.nav-drawer__brand {
	margin: 0 -1.5rem 1.5rem;
	padding: max(0.75rem, env(safe-area-inset-top, 0px)) 3.5rem 1.5rem 1.5rem;
	max-width: none;
	text-align: center;
	background-color: #059ab0;
	background-image: var(--img-bg);
	background-repeat: repeat;
	background-position: center top;
	background-size: auto 100vh;
	background-size: auto 100dvh;
}
.nav-drawer__brand a {
	display: inline-block;
	line-height: 0;
	text-decoration: none;
}
.nav-drawer__titlelogo {
	display: block;
	width: auto;
	height: clamp(140px, 36vh, 220px);
	max-width: 100%;
	margin: 0 auto;
}
.nav-drawer__title {
	margin: 1.5rem auto 0.5rem;
	max-width: 22rem;
	color: var(--color-primary-deep);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.08em;
}
.nav-drawer__list {
	margin: 0 auto;
	padding: 0;
	max-width: 22rem;
	list-style: none;
}
.nav-drawer__list a {
	display: block;
	padding: 0.85rem 0.2rem;
	border-bottom: 1px solid var(--color-line);
	color: var(--color-ink);
	font-size: 1.05rem;
	text-decoration: none;
}
.nav-drawer__list a:hover { color: var(--color-primary); }
.nav-drawer__list .nav-drawer__sns {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 1.35rem;
	margin-top: 0.35rem;
	padding: 0.85rem 0.2rem 0.4rem;
}
.nav-drawer__list .nav-drawer__sns a {
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0.35rem;
	border-bottom: 0;
}
.nav-drawer__list .nav-drawer__sns img {
	display: block;
	width: 1.35rem;
	height: auto;
}
.nav-drawer__close {
	display: block;
	width: 100%;
	max-width: 22rem;
	margin: 1.75rem auto 0;
	padding: 0.85rem 1rem;
	border: 0;
	border-radius: var(--radius-md);
	background: var(--color-primary-deep);
	color: var(--color-white);
	font-family: var(--font-sans);
	font-size: 0.95rem;
	cursor: pointer;
}

/* ≡をメニューより前面へ（開いている間は帯のぼかしも消す） */
body.nav-drawer-open .mobile-topbar {
	z-index: 13002;
	background: transparent;
	box-shadow: none;
	pointer-events: none;
	backdrop-filter: none;
	-webkit-backdrop-filter: none;
}
body.nav-drawer-open .mobile-topbar__brand {
	opacity: 0;
}
body.nav-drawer-open .nav-burger {
	pointer-events: auto;
	background: rgba(44, 93, 105, 0.92);
	border-radius: 50%;
	box-shadow: 0 4px 14px rgba(30, 63, 72, 0.28);
}

.bottom-nav {
	--bottom-nav-bar: 58px;
	position: fixed;
	left: 0;
	right: 0;
	bottom: 0;
	z-index: 12000;
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	grid-template-rows: var(--bottom-nav-bar);
	align-content: start;
	align-items: stretch;
	height: calc(var(--bottom-nav-bar) + env(safe-area-inset-bottom, 0px));
	padding-bottom: env(safe-area-inset-bottom, 0px);
	background-color: #f7f5f2;
	border-top: 1px solid var(--color-line);
	box-shadow: 0 -6px 24px rgba(30, 63, 72, 0.08);
	pointer-events: none;
}
.bottom-nav__item {
	position: relative;
	pointer-events: auto;
	display: flex;
	align-items: center;
	justify-content: center;
	min-width: 0;
	padding: 0.35rem 0.15rem;
	color: var(--color-ink-soft);
	font-family: var(--font-sans);
	font-size: 0.68rem;
	font-weight: 500;
	letter-spacing: 0.02em;
	text-align: center;
	text-decoration: none;
	line-height: 1.25;
}
.bottom-nav__item span {
	display: block;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.bottom-nav__item:link,
.bottom-nav__item:visited { color: var(--color-ink-soft); }
.bottom-nav__item.is-active,
.bottom-nav__item:hover {
	color: var(--color-primary-deep);
	font-weight: 700;
}
.bottom-nav__item.is-active::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	background-color: var(--color-primary);
}

/* スマホでは旧スライドバー系を隠し、余白を確保 */
@media screen and (max-width: 991px) {
	.desktop-nav { display: none !important; }
	body {
		--hero-chrome-top: 64px;
		--hero-chrome-bottom: 58px;
		padding-top: 64px;
		padding-bottom: calc(58px + env(safe-area-inset-bottom, 0px));
	}
	/* iOS Safari: 下部ナビ非表示（フローティングバー透過の回避）。≡メニューで遷移 */
	html.is-ios-safari .bottom-nav {
		display: none !important;
	}
	html.is-ios-safari body {
		--hero-chrome-bottom: 0px;
		padding-bottom: env(safe-area-inset-bottom, 0px);
	}
	html.is-ios-safari {
		scroll-padding-bottom: 12px;
	}
	body.nav-drawer-open { overflow: hidden; }
	/* ヘッダー64px + タイトル上余白56px */
	html { scroll-padding-top: 120px; scroll-padding-bottom: 70px; }

	#comment,
	#cast,
	#info,
	#news {
		scroll-margin-top: 120px;
	}
	#comment .title,
	#cast .title,
	#info > .title,
	#news > .title {
		scroll-margin-top: 120px;
	}

	/*
		イントロ中は上下メニューを隠し、
		メイン画像表示 or スクロール検知（.hero-chrome-on）で表示開始
	*/
	.mobile-topbar {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition:
			opacity 0.85s ease,
			visibility 0.85s ease;
	}
	/* 下部ナビ: opacity 禁止。スライドで出し入れ（html 直下も対象） */
	.bottom-nav {
		visibility: hidden;
		transform: translate3d(0, 100%, 0);
		transition:
			transform 0.55s cubic-bezier(0.22, 1, 0.36, 1),
			visibility 0.55s;
	}
	body.hero-chrome-on .mobile-topbar {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
	body.hero-chrome-on .bottom-nav,
	html.hero-chrome-on > .bottom-nav {
		visibility: visible;
		transform: translate3d(0, 0, 0);
	}
	/* 再訪時は即座に表示 */
	body.hero-chrome-instant .mobile-topbar,
	body.hero-chrome-instant .bottom-nav,
	html.hero-chrome-instant > .bottom-nav {
		transition: none;
	}
}

/* iPhone SE級（短い画面）: 上部バーは非表示、≡だけフローティング */
@media screen and (max-width: 991px) and (max-height: 700px) {
	.mobile-topbar {
		height: 0;
		padding: 0;
		background: transparent;
		box-shadow: none;
		pointer-events: none;
	}
	.mobile-topbar__brand {
		display: none;
	}
	.nav-burger {
		position: fixed;
		top: max(8px, env(safe-area-inset-top, 0px));
		right: 8px;
		z-index: 12001;
		background: rgba(44, 93, 105, 0.92);
		border-radius: 50%;
		box-shadow: 0 4px 14px rgba(30, 63, 72, 0.28);
		/* ファーストビューではタイトルと重なるので、スクロール後に表示 */
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transition:
			opacity 0.45s ease,
			visibility 0.45s ease;
	}
	body.hero-chrome-on .mobile-topbar {
		/* 帯は出さず、≡の入れ物だけ確保 */
		opacity: 1;
		visibility: visible;
		pointer-events: none;
	}
	body.hero-chrome-on .nav-burger {
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
	}
	body.hero-chrome-on.se-burger-on .nav-burger,
	body.nav-drawer-open .nav-burger {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
	}
	body {
		--hero-chrome-top: 0px;
		padding-top: 0;
	}
	html {
		scroll-padding-top: 12px;
	}
}

/* PCでは下部ナビ／≡を隠し、従来の上部ナビを継続 */
@media screen and (min-width: 992px) {
	.mobile-topbar,
	.nav-drawer,
	.bottom-nav { display: none !important; }
	.desktop-nav { display: block; }
	body {
		padding-top: 0;
		padding-bottom: 0;
	}
	/* メイン65px + サブ44px + 余白（公演情報はサブ表示時想定） */
	html { scroll-padding-top: 133px; }
	/* ストーリー／コメント／キャスト／ニュース：サブ非表示時もサブ帯相当の余白 */
	#story,
	#comment,
	#cast,
	#news,
	#story .title,
	#comment .title,
	#cast .title,
	#news > .title {
		scroll-margin-top: 133px;
	}
	.section.info article {
		padding-top: 2rem;
		scroll-margin-top: 90px;
	}
}
