@charset "UTF-8";
/*
 * デザインの仕上げ（書体・色・余白の統一）
 *
 * inc/*.php が本文中に出す <style> は style.css より後に読まれるため、
 * ここでは .post_content などを前に付けて詳細度で上書きする。
 * 欧文の見出し・日付は Cormorant Garamond（ロゴと同系の書体）、和文は Noto Serif JP。
 */

:root {
	--ty-ink: #1d2a30;
	--ty-text: #3a464c;
	--ty-sub: #6b767c;
	--ty-line: #e2e5e6;
	--ty-accent: #005f75;
	--ty-night: #0e2a33;
	--ty-new: #a8423d;
	--ty-display: "Cormorant Garamond", "Noto Serif JP", "Hiragino Mincho ProN", serif;
	--ty-ease: cubic-bezier(0.25, 0.6, 0.3, 1);
}

body {
	color: var(--ty-text);
	-webkit-font-smoothing: antialiased;
}

/* 見出し・タイトルだけ約物を詰める（本文は詰めない） */
.c-postTitle__ttl,
.post_content .acf-news-title,
.post_content .acf-text-title,
.post_content .acf-performance-title {
	font-feature-settings: "palt";
}

/* ---- ヘッダー ---- */
.c-gnav > .menu-item > a {
	font-family: var(--ty-display);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.14em;
}

.c-gnav > .menu-item > a .ttl {
	position: relative;
}

.c-gnav > .menu-item > a .ttl::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: -4px;
	height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: right;
	transition: transform 0.4s var(--ty-ease);
}

.c-gnav > .menu-item > a:hover .ttl::after,
.c-gnav > .menu-item.-current > a .ttl::after {
	transform: scaleX(1);
	transform-origin: left;
}

/* ---- 見出し ---- */
/* 下層ページのタイトル（BIOGRAPHY など） */
.c-pageTitle[data-style="b_bottom"] {
	font-family: var(--ty-display);
	font-size: 40px;
	font-weight: 500;
	letter-spacing: 0.12em;
	color: var(--ty-ink);
}

.c-pageTitle[data-style="b_bottom"]::before {
	border-color: var(--ty-line);
}

.c-pageTitle[data-style="b_bottom"] .c-pageTitle__inner {
	padding: 0 0 12px;
	border-bottom: 1px solid var(--ty-accent);
}

/* 投稿のタイトル */
.c-postTitle__ttl {
	font-size: 26px;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: 0.04em;
	color: var(--ty-ink);
}

/* トップの NEWS / SCHEDULE */
.post_content > p.has-text-align-center > .u-fz-xl {
	font-family: var(--ty-display);
	font-size: 44px;
	font-weight: 500;
	letter-spacing: 0.18em;
	color: var(--ty-ink);
}

/* 見出し下の区切り線を短いアクセント線にする */
.post_content > p.has-text-align-center + .wp-block-uagb-separator .wp-block-uagb-separator__inner {
	width: 40px !important;
	margin: 0 auto !important;
	border-top: 1px solid var(--ty-accent) !important;
}

.post_content > p.has-text-align-center + .wp-block-uagb-separator {
	margin-bottom: 40px;
}

/* トップの NEWS と SCHEDULE の間：点線の区切りをやめ、余白だけで区切る */
.home .post_content > hr.wp-block-separator.is-style-dots {
	height: 0;
	margin: 32px 0 72px !important; /* SWELL の余白クラス（u-mb-*）より優先する */
	border: 0;
	background: none !important; /* ブロックの背景色クラスより優先する */
	visibility: hidden;
}

/* ---- 日付（ニュース・公演の共通） ---- */
.post_content .acf-text-detailed .acf-text-date-main {
	font-family: var(--ty-display);
	align-items: baseline;
	line-height: 1;
	color: var(--ty-ink);
	font-variant-numeric: lining-nums;
}

.post_content .acf-text-detailed .date-year,
.post_content .acf-text-detailed .date-month,
.post_content .acf-text-detailed .date-day,
.post_content .acf-text-detailed .date-dot {
	font-size: 26px;
	font-weight: 500;
	letter-spacing: 0.04em;
}

.post_content .acf-text-detailed .date-dot {
	margin: 0 1px;
}

.post_content .acf-text-detailed .date-weekday {
	font-family: "Noto Serif JP", serif;
	font-size: 13px;
	margin-left: 10px;
	color: var(--ty-sub);
}

/* ---- ニュース（トップ） ---- */
.post_content .acf-news-item-link {
	margin-bottom: 0;
}

.post_content .acf-text-detailed .acf-news-item-link .acf-text-item {
	padding: 28px 8px;
	border-bottom: 1px solid var(--ty-line);
	transition: background-color 0.3s var(--ty-ease);
}

.post_content .acf-news-item-link:hover .acf-text-item {
	transform: none;
	box-shadow: none;
	background-color: rgba(0, 95, 117, 0.03);
}

.post_content .acf-text-detailed .acf-news-item-link .acf-text-row {
	padding: 0;
}

.post_content .acf-text-detailed .acf-news-title {
	margin-top: 14px;
	font-size: 17px;
	font-weight: 600;
	line-height: 1.7;
	color: var(--ty-ink);
	transition: color 0.3s var(--ty-ease);
}

.post_content .acf-news-item-link:hover .acf-news-title {
	color: var(--ty-accent);
}

.post_content .acf-text-detailed .acf-news-item-link .acf-text-info {
	margin: 6px 0 0;
	padding: 0;
	border: none;
}

.post_content .acf-text-detailed .acf-text-excerpt {
	font-size: 14px;
	line-height: 1.9;
	color: var(--ty-sub);
}
/* 日付を左、見出しと抜粋を右の2列にして、1件あたりの高さを詰める */
.post_content .acf-text-detailed .acf-news-item-link .acf-text-row {
	display: grid;
	grid-template-columns: 148px minmax(0, 1fr);
	column-gap: 32px;
}

.post_content .acf-text-detailed .acf-news-item-link .acf-text-date-block {
	grid-row: 1 / span 2;
	padding-top: 3px;
}

.post_content .acf-text-detailed .acf-news-item-link .acf-text-date-main {
	flex-wrap: wrap;
	row-gap: 6px;
}

.post_content .acf-text-detailed .acf-news-item-link .date-year,
.post_content .acf-text-detailed .acf-news-item-link .date-month,
.post_content .acf-text-detailed .acf-news-item-link .date-day,
.post_content .acf-text-detailed .acf-news-item-link .date-dot {
	font-size: 20px;
}

.post_content .acf-text-detailed .acf-news-item-link .date-weekday {
	margin-left: 6px;
	font-size: 12px;
}

.post_content .acf-text-detailed .acf-news-item-link .acf-news-title,
.post_content .acf-text-detailed .acf-news-item-link .acf-text-info {
	grid-column: 2;
}

.post_content .acf-text-detailed .acf-news-item-link .acf-news-title {
	margin-top: 0;
}

/* ---- 公演一覧（トップ・SCHEDULE・ARCHIVE 共通） ----
 * 歌劇場の上演カレンダーのように、日付｜公演｜チラシ の3列で日にちを大きく立てる。
 * トップは .acf-text-item-link、SCHEDULE・ARCHIVE は .acf-performance-item。
 * 中間の包み（.acf-text-row / .acf-performance-content）は display: contents にして、
 * 中身を直接グリッドに並べる。
 */
.post_content .acf-text-item-link {
	margin-bottom: 0;
}

.post_content .acf-text-detailed .acf-text-item-link .acf-text-item,
.post_content .acf-performance-style1 .acf-performance-item {
	position: relative;
	display: grid;
	grid-template-columns: 96px minmax(0, 1fr) 232px;
	grid-template-rows: auto auto 1fr;
	gap: 0 40px;
	align-items: start;
	margin: 0;
	padding: 36px 0;
	border-bottom: 1px solid var(--ty-line);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.post_content .acf-text-item-link:hover .acf-text-item {
	transform: none;
	box-shadow: none;
}

.post_content .acf-text-detailed .acf-text-item-link .acf-text-row,
.post_content .acf-performance-style1 .acf-performance-content {
	display: contents;
}

/* チラシは右端に小さく */
.post_content .acf-text-detailed .acf-text-item-link .acf-text-thumbnail,
.post_content .acf-performance-style1 .acf-performance-thumbnail {
	grid-column: 3;
	grid-row: 1 / span 3;
	width: 100%;
	max-width: none;
	margin: 0;
	aspect-ratio: 16 / 9;
	overflow: hidden;
	border-radius: 0;
	background: #e9ecec;
}

.post_content .acf-text-detailed .acf-text-item-link .acf-text-thumbnail img,
.post_content .acf-performance-style1 .acf-performance-thumbnail img {
	width: 100%;
	height: 100% !important; /* lazysizes が style 属性で高さを入れるため */
	min-height: 0;
	object-fit: cover;
	border-radius: 0;
	transition: transform 0.8s var(--ty-ease);
}

.post_content .acf-text-item-link:hover .acf-text-thumbnail img,
.post_content .acf-performance-item:hover .acf-performance-thumbnail img {
	transform: scale(1.04);
}

/* 日付の列：年月 / 日 / 曜日 の3段 */
.post_content .acf-text-detailed .acf-text-item-link .acf-text-date-block,
.post_content .acf-performance-style1 .acf-performance-date {
	grid-column: 1;
	grid-row: 1 / span 3;
	margin: 0;
	padding: 0;
}

.post_content .acf-text-detailed .acf-text-item-link .acf-text-date-main {
	display: grid;
	grid-template-columns: auto auto auto 1fr;
	justify-items: start;
	align-items: baseline;
}

.post_content .acf-text-detailed .acf-text-item-link .date-month + .date-dot {
	display: none;
}

.post_content .acf-performance-style1 .acf-performance-date {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	font-family: var(--ty-display);
	font-weight: 400;
	line-height: 1;
	color: var(--ty-ink);
	font-variant-numeric: lining-nums;
}

.post_content .acf-performance-style1 .acf-performance-date time {
	display: contents;
}

.post_content .acf-text-detailed .acf-text-item-link .date-year,
.post_content .acf-text-detailed .acf-text-item-link .date-month,
.post_content .acf-text-detailed .acf-text-item-link .date-year + .date-dot,
.post_content .acf-performance-style1 .date-ym {
	grid-row: 1;
	margin: 0;
	font-family: var(--ty-display);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--ty-sub);
	font-variant-numeric: lining-nums;
}

.post_content .acf-text-detailed .acf-text-item-link .date-day,
.post_content .acf-performance-style1 .date-d {
	grid-row: 2;
	grid-column: 1 / -1;
	display: block;
	margin: 6px 0 4px -3px;
	font-family: var(--ty-display);
	font-size: 68px;
	font-weight: 400;
	line-height: 0.92;
	letter-spacing: 0;
	color: var(--ty-ink);
	font-variant-numeric: lining-nums;
	transition: color 0.3s var(--ty-ease);
}

.post_content .acf-text-item-link:hover .date-day,
.post_content .acf-performance-item:hover .date-d {
	color: var(--ty-accent);
}

.post_content .acf-text-detailed .acf-text-item-link .date-weekday,
.post_content .acf-performance-style1 .date-wd {
	grid-row: 3;
	grid-column: 1 / -1;
	margin: 0;
	font-family: "Noto Serif JP", serif;
	font-size: 13px;
	letter-spacing: 0.1em;
	color: var(--ty-sub);
}

/* NEW（公開から1か月以内）：NEWS・公演とも日付に添える小さな斜体 */
.post_content .acf-text-detailed .acf-new-label {
	font-family: var(--ty-display);
	font-size: 15px;
	font-style: italic;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: lowercase;
	color: var(--ty-new);
}

.post_content .acf-text-detailed .acf-new-label::first-letter {
	text-transform: uppercase;
}

/* 公演は日付の列の3段目に置く（日付は1〜2段目） */
.post_content .acf-text-detailed .acf-text-item-link .acf-text-date-block {
	grid-row: 1 / span 2;
}

.post_content .acf-text-detailed .acf-text-item-link .acf-new-label {
	position: static;
	grid-column: 1;
	grid-row: 3;
	align-self: start;
	padding: 10px 0 0;
	background: none;
}

/* 公演の列 */
.post_content .acf-text-detailed .acf-text-item-link .acf-text-info {
	grid-column: 2;
	grid-row: 1 / span 3;
	display: flex;
	flex-direction: column;
	margin: 0;
	padding: 0;
	border: none;
}

.post_content .acf-performance-style1 .acf-performance-title-block,
.post_content .acf-performance-style1 .acf-performance-content > .acf-performance-title {
	grid-column: 2;
	grid-row: 1;
	margin: 0;
	padding: 0;
	border: none;
}

.post_content .acf-performance-style1 .acf-performance-meta {
	grid-column: 2;
	grid-row: 2;
	margin: 0;
}

.post_content .acf-performance-style1 .acf-performance-excerpt {
	grid-column: 2;
	grid-row: 3;
	margin-top: 12px;
}

.post_content .acf-text-detailed .acf-text-item-link .acf-text-subtitle,
.post_content .acf-performance-style1 .acf-performance-subtitle {
	order: 1;
	margin: 2px 0 6px;
	font-size: 13px;
	letter-spacing: 0.06em;
	color: var(--ty-sub);
}

.post_content .acf-text-detailed .acf-text-item-link .acf-text-title,
.post_content .acf-performance-style1 .acf-performance-title,
.post_content .acf-performance-style1 .acf-performance-title a {
	order: 2;
	margin: 0;
	font-size: 19px;
	font-weight: 600;
	line-height: 1.6;
	letter-spacing: 0.02em;
	color: var(--ty-ink);
	transition: color 0.3s var(--ty-ease);
}

.post_content .acf-text-item-link:hover .acf-text-title,
.post_content .acf-performance-item-link:hover .acf-performance-title,
.post_content .acf-performance-style1 .acf-performance-title a:hover {
	color: var(--ty-accent);
}

/* 会場・時間：会場名を先に、都道府県はその後ろに添える */
.post_content .acf-text-detailed .acf-text-item-link .acf-venue-time-grid,
.post_content .acf-performance-style1 .acf-performance-location {
	order: 3;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 2px 12px;
	padding: 16px 0 0; /* 親の最初の子になるため、SWELL の first-child { margin-top: 0 !important } を避けて padding で空ける */
	background: none;
	font-size: 14px;
	line-height: 1.8;
	color: var(--ty-text);
}

.post_content .acf-text-detailed .acf-text-item-link .acf-venue-name,
.post_content .acf-performance-style1 .acf-performance-location .venue {
	order: 1;
	margin: 0;
	font-size: 14px;
	color: var(--ty-text);
}

.post_content .acf-text-detailed .acf-text-item-link .acf-venue-tag,
.post_content .acf-performance-style1 .acf-performance-location .prefecture {
	order: 2;
	position: static;
	padding: 0;
	border: none;
	border-radius: 0;
	background: none;
	font-size: 12px;
	letter-spacing: 0.06em;
	color: var(--ty-sub);
}

.post_content .acf-text-detailed .acf-text-item-link .acf-venue-tag-placeholder {
	display: none;
}

.post_content .acf-text-detailed .acf-text-item-link .acf-time-tag,
.post_content .acf-performance-style1 .acf-performance-times {
	order: 3;
	flex-basis: 100%;
	display: flex;
	gap: 16px;
	margin-top: 2px;
	padding: 0;
	background: none;
	font-size: 13px;
	color: var(--ty-sub);
}

.post_content .acf-text-detailed .acf-text-item-link .acf-time-tag > span,
.post_content .acf-performance-style1 .acf-performance-times span {
	padding: 0;
	border-radius: 0;
	background: none;
	font-size: 13px;
	color: var(--ty-sub);
}

/* ---- View All ボタン ---- */
.post_content .acf-text-list-view-all {
	margin-top: 48px;
	padding-top: 0;
	border-top: none;
}

.post_content .acf-view-all-btn {
	padding: 14px 44px;
	border: 1px solid var(--ty-accent);
	border-radius: 0;
	background: transparent;
	box-shadow: none;
	color: var(--ty-accent);
	font-family: var(--ty-display);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	transition: background-color 0.3s var(--ty-ease), color 0.3s var(--ty-ease);
}

.post_content .acf-view-all-btn:hover {
	background: var(--ty-accent);
	color: #fff;
}

/* SCHEDULE は各 article がリンクの唯一の子で常に :last-child になるため、末尾はリンク単位で判定する */
.post_content .acf-performance-style1 .acf-performance-item:last-child,
.post_content .acf-performance-style1 .acf-performance-item-link:last-child .acf-performance-item {
	border-bottom: none;
}

.post_content .acf-performance-style1 .acf-performance-item-link:not(:last-child) .acf-performance-item {
	border-bottom: 1px solid var(--ty-line);
}

/* ---- ARCHIVE の年の切り替え ---- */
.post_content .year-filter-container {
	margin: 8px 0;
	padding: 0 0 24px;
	border-bottom: 1px solid var(--ty-line);
}

.post_content .year-filter-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 12px 16px;
}

.post_content .year-filter-label {
	font-size: 14px;
	color: var(--ty-sub);
}

.post_content select.archive-year-filter {
	min-width: 132px;
	padding: 6px 36px 6px 12px;
	border: none;
	border-bottom: 1px solid var(--ty-ink);
	border-radius: 0;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%231d2a30' stroke-width='1.2'/%3E%3C/svg%3E") no-repeat right 10px center;
	-webkit-appearance: none;
	appearance: none;
	font-family: var(--ty-display);
	font-size: 20px;
	letter-spacing: 0.06em;
	color: var(--ty-ink);
	cursor: pointer;
}

.post_content select.archive-year-filter:focus-visible {
	outline: 1px solid var(--ty-accent);
	outline-offset: 2px;
}

.post_content .filter-loading {
	font-size: 13px;
	color: var(--ty-sub);
}

/* ---- 本文 ---- */
.post_content p {
	line-height: 2;
	letter-spacing: 0.03em;
}

/* ---- 投稿の下部（カテゴリー・タグ） ---- */
.c-categoryList__link {
	border-radius: 0;
	padding: 3px 10px;
	letter-spacing: 0.06em;
}

/* ---- BIOGRAPHY（body の page-biography は functions.php で付ける） ----
 * 全幅の UAGB コンテナの中身が 1,140px まで広がり 1 行が長すぎるため、720px（約45字）に絞る。
 */
.page-biography .post_content > .wp-block-uagb-container.alignfull.uagb-is-root-container > .uagb-container-inner-blocks-wrap {
	max-width: min(100%, 720px) !important; /* UAGB がブロックごとの class で max-width を出すため */
}

.page-biography .post_content > .wp-block-uagb-container.alignfull p {
	font-size: 15px;
	line-height: 2.1;
	text-align: justify;
	text-justify: inter-character;
}

/* レパートリーの開閉欄は枠をやめ、上下の線だけにする */
.page-biography .swell-block-accordion.is-style-border .swell-block-accordion__item {
	border: none;
	border-top: 1px solid var(--ty-ink);
	border-bottom: 1px solid var(--ty-line);
	background: transparent;
}

.page-biography .swell-block-accordion.is-style-border .swell-block-accordion__title {
	padding: 18px 4px;
	background: transparent;
}

.page-biography .swell-block-accordion__label {
	font-family: var(--ty-display);
	font-size: 20px;
	font-weight: 500;
	letter-spacing: 0.14em;
	color: var(--ty-ink);
}

.page-biography .swell-block-accordion__icon {
	color: var(--ty-accent);
}

.page-biography .swell-block-accordion__body {
	padding: 8px 4px 28px;
}

.page-biography .post_content > .wp-block-uagb-container.alignfull .swell-block-accordion__body p {
	margin: 0 0 1.2em;
	font-size: 14px;
	line-height: 2;
	text-align: left;
}

/* ---- フッター（parts/footer/footer_contents.php） ----
 * 名前と声種・出演依頼の窓口・次の出演の上段と、ページへのリンク・SNS・著作権の下段。
 * 背景はロゴの青緑を深くした一色。
 */
#footer.l-footer {
	background: var(--ty-night);
	color: #fff;
}

.ty-foot {
	--ty-foot-text: rgba(255, 255, 255, 0.86);
	--ty-foot-sub: rgba(255, 255, 255, 0.58);
	--ty-foot-line: rgba(255, 255, 255, 0.14);
	--ty-foot-accent: #8cc5d2;
	padding: 88px 0 0;
	color: var(--ty-foot-text);
	font-family: "Noto Serif JP", serif;
}

.ty-foot :where(p) {
	margin: 0;
}

.ty-foot a {
	color: inherit;
	text-decoration: none;
}

.ty-foot a:focus-visible {
	outline: 1px solid var(--ty-foot-accent);
	outline-offset: 4px;
}

.ty-foot__main {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.25fr);
	gap: 48px 80px;
	align-items: start;
	padding-bottom: 72px;
}

.ty-foot__name {
	font-family: var(--ty-display);
	font-size: 52px;
	font-weight: 500;
	line-height: 1.05;
	letter-spacing: 0.02em;
	color: #fff;
}

.ty-foot__voice {
	margin-top: 14px;
	font-size: 14px;
	letter-spacing: 0.16em;
}

.ty-foot__voice span {
	margin-left: 18px;
	padding-left: 18px;
	border-left: 1px solid var(--ty-foot-line);
	color: var(--ty-foot-sub);
}

.ty-foot__contact {
	margin-top: 40px;
	font-size: 13px;
	line-height: 2;
	color: var(--ty-foot-sub);
}

.ty-foot__contact a {
	margin: 0 2px;
	border-bottom: 1px solid var(--ty-foot-accent);
	color: var(--ty-foot-text);
	transition: color 0.3s var(--ty-ease);
}

.ty-foot__contact a:hover {
	color: var(--ty-foot-accent);
}

/* 次の出演：本文の公演一覧と同じ、日付を立てた組み */
.ty-foot__next {
	display: block;
	padding-top: 28px;
	border-top: 1px solid var(--ty-foot-accent);
}

.ty-foot__label {
	font-size: 12px;
	letter-spacing: 0.2em;
	color: var(--ty-foot-accent);
}

.ty-foot__show {
	display: grid;
	grid-template-columns: 84px minmax(0, 1fr);
	gap: 0 28px;
	margin-top: 20px;
}

.ty-foot__date time {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	font-family: var(--ty-display);
	line-height: 1;
	font-variant-numeric: lining-nums;
}

.ty-foot__date .date-ym {
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0.08em;
	color: var(--ty-foot-sub);
}

.ty-foot__date .date-d {
	margin: 6px 0 4px -2px;
	font-size: 60px;
	font-weight: 400;
	line-height: 0.92;
	color: #fff;
	transition: color 0.3s var(--ty-ease);
}

.ty-foot__date .date-wd {
	font-family: "Noto Serif JP", serif;
	font-size: 12px;
	letter-spacing: 0.1em;
	color: var(--ty-foot-sub);
}

.ty-foot__sub {
	font-size: 13px;
	letter-spacing: 0.06em;
	color: var(--ty-foot-sub);
}

.ty-foot__title {
	margin-top: 4px;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.6;
	color: #fff;
	transition: color 0.3s var(--ty-ease);
}

.ty-foot__venue {
	margin-top: 14px;
	font-size: 14px;
}

.ty-foot__venue span {
	margin-left: 12px;
	font-size: 12px;
	color: var(--ty-foot-sub);
}

.ty-foot__time {
	display: flex;
	gap: 14px;
	font-size: 13px;
	color: var(--ty-foot-sub);
}

.ty-foot__next:hover .date-d,
.ty-foot__next:hover .ty-foot__title {
	color: var(--ty-foot-accent);
}

/* 下段：ページへのリンク、SNS・著作権 */
.ty-foot__barwrap {
	border-top: 1px solid var(--ty-foot-line);
}

.ty-foot__bar {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 20px 40px;
	padding-top: 28px;
	padding-bottom: 32px;
}

.ty-foot__nav {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 28px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.ty-foot__nav a {
	font-family: var(--ty-display);
	font-size: 14px;
	font-weight: 500;
	letter-spacing: 0.14em;
	color: var(--ty-foot-text);
	transition: color 0.3s var(--ty-ease);
}

.ty-foot__nav a:hover {
	color: var(--ty-foot-accent);
}

.ty-foot__nav .desc {
	display: none;
}

.ty-foot__end {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 12px 28px;
}

.ty-foot .c-iconList {
	display: flex;
	gap: 16px;
	margin: 0;
	padding: 0;
}

.ty-foot .c-iconList__link {
	color: var(--ty-foot-text);
	transition: color 0.3s var(--ty-ease);
}

.ty-foot .c-iconList__link:hover {
	color: var(--ty-foot-accent);
	opacity: 1;
}

.ty-foot .copyright {
	font-family: var(--ty-display);
	font-size: 13px;
	letter-spacing: 0.12em;
	color: var(--ty-foot-sub);
}

/* ---- スマホ ---- */
@media (max-width: 768px) {
	.c-pageTitle[data-style="b_bottom"] {
		font-size: 30px;
	}

	.c-postTitle__ttl {
		font-size: 21px;
	}

	.post_content > p.has-text-align-center > .u-fz-xl {
		font-size: 34px;
	}

	.post_content .acf-text-detailed .date-year,
	.post_content .acf-text-detailed .date-month,
	.post_content .acf-text-detailed .date-day,
	.post_content .acf-text-detailed .date-dot {
		font-size: 22px;
	}

	/* ニュースはカードをやめ、線で区切った一覧にする */
	.post_content .acf-text-detailed .acf-news-item-link .acf-text-item {
		padding: 24px 4px;
		background: transparent;
		border-radius: 0;
		box-shadow: none;
		border-bottom: 1px solid var(--ty-line);
	}

	.post_content .acf-text-detailed .acf-news-item-link .acf-text-row {
		padding: 0;
		background: transparent;
		box-shadow: none;
	}

	.post_content .acf-text-detailed .acf-news-title {
		font-size: 15px;
	}

	/* 公演一覧：日付を左の細い列に残し、その右に公演・チラシの順で積む */
	.post_content .acf-text-detailed .acf-text-item-link .acf-text-item,
	.post_content .acf-performance-style1 .acf-performance-item {
		grid-template-columns: 60px minmax(0, 1fr);
		grid-template-rows: auto auto auto auto;
		gap: 0 18px;
		padding: 28px 0;
	}

	.post_content .acf-text-detailed .acf-text-item-link .acf-text-item > .acf-text-thumbnail,
	.post_content .acf-performance-style1 .acf-performance-thumbnail {
		grid-column: 2;
		grid-row: 3;
		margin-top: 18px;
	}

	.post_content .acf-performance-style1 .acf-performance-thumbnail {
		grid-row: 4;
	}

	.post_content .acf-text-detailed .acf-text-item-link .acf-new-label {
		padding-top: 22px;
	}

	.post_content .acf-text-detailed .acf-text-item-link .acf-text-info {
		grid-row: 1 / span 2;
	}

	.post_content .acf-text-detailed .acf-text-item-link .acf-text-row {
		padding: 0;
	}

	.post_content .acf-text-detailed .acf-text-item-link .date-year,
	.post_content .acf-text-detailed .acf-text-item-link .date-month,
	.post_content .acf-text-detailed .acf-text-item-link .date-year + .date-dot,
	.post_content .acf-performance-style1 .date-ym {
		font-size: 13px;
		letter-spacing: 0.04em;
	}

	.post_content .acf-text-detailed .acf-text-item-link .date-day,
	.post_content .acf-performance-style1 .date-d {
		margin-left: -2px;
		font-size: 48px;
	}

	.post_content .acf-text-detailed .acf-text-item-link .date-weekday,
	.post_content .acf-performance-style1 .date-wd {
		font-size: 12px;
	}

	.post_content .acf-text-detailed .acf-text-item-link .acf-text-title,
	.post_content .acf-performance-style1 .acf-performance-title,
	.post_content .acf-performance-style1 .acf-performance-title a {
		font-size: 16px;
	}

	.post_content .acf-text-detailed .acf-text-item-link .acf-venue-time-grid,
	.post_content .acf-performance-style1 .acf-performance-location {
		padding-top: 12px;
	}

	/* NEWS はスマホでは日付を上に戻す */
	.post_content .acf-text-detailed .acf-news-item-link .acf-text-row {
		display: block;
	}

	.post_content .acf-text-detailed .acf-news-item-link .acf-news-title {
		margin-top: 10px;
	}

	.post_content .acf-text-detailed .acf-news-item-link .date-year,
	.post_content .acf-text-detailed .acf-news-item-link .date-month,
	.post_content .acf-text-detailed .acf-news-item-link .date-day,
	.post_content .acf-text-detailed .acf-news-item-link .date-dot {
		font-size: 18px;
	}

	.home .post_content > hr.wp-block-separator.is-style-dots {
		margin: 24px 0 56px !important;
	}

	.page-biography .post_content > .wp-block-uagb-container.alignfull p {
		font-size: 14px;
		text-align: left;
	}

	/* フッター：縦に積み、ページへのリンクは2列 */
	.ty-foot {
		padding-top: 56px;
	}

	.ty-foot__main {
		grid-template-columns: minmax(0, 1fr);
		gap: 44px;
		padding-bottom: 48px;
	}

	.ty-foot__name {
		font-size: 38px;
	}

	.ty-foot__contact {
		margin-top: 24px;
	}

	.ty-foot__show {
		grid-template-columns: 60px minmax(0, 1fr);
		gap: 0 18px;
	}

	.ty-foot__date .date-d {
		font-size: 46px;
	}

	.ty-foot__date .date-ym {
		font-size: 13px;
	}

	.ty-foot__title {
		font-size: 16px;
	}

	.ty-foot__bar {
		flex-direction: column;
		align-items: flex-start;
		gap: 24px;
	}

	.ty-foot__navwrap {
		width: 100%;
	}

	.ty-foot__nav {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 14px 24px;
	}

	.ty-foot__end {
		width: 100%;
		justify-content: space-between;
	}

	/* ハンバーガーボタンを写真の上でも見えるようにする */
	.hamburger-btn {
		align-items: center;
		border-radius: 50%;
		background: rgba(255, 255, 255, 0.82);
		-webkit-backdrop-filter: blur(6px);
		backdrop-filter: blur(6px);
		box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08);
		transition: background-color 0.3s var(--ty-ease), transform 0.3s ease;
	}

	.hamburger-btn .hamburger-line {
		width: 18px;
		height: 1px;
		margin: 2.5px 0;
	}

	.hamburger-btn.active {
		background: transparent;
		box-shadow: none;
	}

	.hamburger-btn.active .hamburger-line:nth-child(1) {
		transform: translateY(6px) rotate(45deg);
	}

	.hamburger-btn.active .hamburger-line:nth-child(3) {
		transform: translateY(-6px) rotate(-45deg);
	}

	/* 全画面メニュー */
	.mobile-menu::before {
		top: auto;
		bottom: 48px;
		transform: translateX(-50%);
		font-family: var(--ty-display);
		font-size: 30px;
		font-weight: 500;
		letter-spacing: 0.3em;
		color: rgba(255, 255, 255, 0.08);
	}

	.mobile-menu a {
		font-family: var(--ty-display);
		font-size: 26px;
		font-weight: 500;
		letter-spacing: 0.18em;
		padding: 0.7rem 2rem;
		border: none;
		border-radius: 0;
	}

	.mobile-menu a:hover {
		color: #fff;
		background-color: transparent;
		box-shadow: none;
		transform: none;
		opacity: 0.7;
	}
}
