/* -----------------------------------
min-width:480px:（別邸メンバー2列へ）
min-width:768px:タブレット以上（別邸メンバー3列へ）
min-width:1024px：PC（ノート）以上（別邸メンバー4列へ）
min-width:1280px：デスクトップ（大画面）
----------------------------------- */

:root {
  font-size: 62.5%;
	--bg-color: #050505;
	--accent-color: #c10000;
	--text-main: #f0f0f0;
	--text-sub: #a0a0a0;
	--font-noto_serif:'Noto Serif JP', "Hiragino Sans",  Meiryo, serif;
	--font-noto_sans:'Noto Sans JP', "Hiragino Kaku Gothic ProN", sans-serif;
	--font-zen_sans:'Zen Kaku Gothic New',"Yu Gothic","Hiragino Kaku Gothic ProN", sans-serif;
	}
body {
    margin: 0;
    padding: 0;
    color: var(--text-main);
    font-size: 1.65rem;
    line-height: 1.55;
/*     font-family: var(--font-noto_serif); */
    background-color: var(--bg-color);
    overflow-x: hidden;
}
p { 
	font-size: 1.65rem;
	line-height: 1.55;
	font-feature-settings: "pkna", "palt","pwid";
	text-align: justify;
	letter-spacing: .06em;
}
ul li,ol li,dl dt,dl dd { font-size: 1.65rem; line-height: 1.4;}
small,.small { font-size: 0.85em;}
span,em,strong,small {
	display: inline-block;
	text-indent: 0;
	font-style: normal;
}


/* リンク
------------------------------- */
a {
  display: inline-flex;
  color: inherit;
  text-decoration: none;
  gap: 0.3rem;
}

a:link,
a:visited { color: #ccc; }
a:hover { color: #fff;}
a:active {}
a:active { filter: brightness( 104% ) contrast( 106% ) grayscale(0%) saturate( 100% ) ;	}


/* 汎用クラス 
------------------------------- */
.right { text-align: right !important;}
.center,
.has-text-align-center  { text-align: center !important;}
.nobr { display: none;}
@media (min-width: 600px) {
	.nobr { display: block;}
}
.hdn {
	display: none !important;
	visibility: hidden !important;
}


/* header（100vh・上下左右中央）
	---------------------- */
header#logo {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 100vh;
	background-color: var(--bg-color);
}
header#logo .container {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	margin: 0;
	max-width: none;
}
header#logo .logo {
	display: flex;
	justify-content: center;
	width: 100%;
}
header#logo .logo svg {
	display: block;
	width: 60vw;
	max-width: 300px;
	height: auto;
	margin: 0 auto;
}

/* ヘッダーロゴアニメーション：線→目白→全体白（README順序：1.レイアウト 2.ボックス 3.タイポ 4.背景 5.アニメ 6.その他） */
header#logo .logo path.titlesvg {
	stroke: #ffffff;
	stroke-width: 0.8;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	fill: transparent;
	animation: logoHeaderStroke var(--stroke-duration, 0.18s) ease-out var(--stroke-delay, 0s) forwards;
}
/* 画の左目：重なりによる二重線を防ぐため細めに */
header#logo .logo path.titlesvg.logo-eye-ga {
	stroke-width: 0.5;
}
header#logo .logo path.titlesvg.logo-eye.st2,
header#logo .logo path.titlesvg.logo-eye.st1 {
	animation: logoHeaderStroke var(--stroke-duration, 0.18s) ease-out var(--stroke-delay, 0s) forwards,
	           logoHeaderFillEye 0.5s ease-out var(--fill-delay-eye, 2.3s) forwards;
}
header#logo .logo path.titlesvg.st1,
header#logo .logo path.titlesvg.st2:not(.logo-eye) {
	animation: logoHeaderStroke var(--stroke-duration, 0.18s) ease-out var(--stroke-delay, 0s) forwards,
	           logoHeaderFillRest 2.1s ease-out var(--fill-delay-rest, 2.9s) forwards;
}
header#logo .logo path.titlesvg.st0 {
	animation: logoHeaderStroke var(--stroke-duration, 0.18s) ease-out var(--stroke-delay, 0s) forwards;
}
@keyframes logoHeaderStroke {
	0% { stroke-dashoffset: 1; }
	100% { stroke-dashoffset: 0; }
}
@keyframes logoHeaderFillEye {
	0% { fill: transparent; }
	100% { fill: #ffffff; }
}
@keyframes logoHeaderFillRest {
	0% { fill: transparent; }
	100% { fill: #ffffff; }
}

/* 構造
	---------------------- */
section {
	padding: 20vh 0 !important;
	width: 100%;
	text-align: center;
}
section .container {
	margin: auto;
	width: 92%;
	max-width: 900px;
	min-height: 100vh;
}
.section-title {
	color: var(--text-sub);
	font-size: 1.2rem;
	font-family: var(--font-noto_sans);
	font-weight: 400;
	letter-spacing: 0.8em;
	text-transform: uppercase;

}


/* ポエム：タイトル fixed→anchored、寸分違わぬ位置で切り替え
	--poem-anchor-offset: 底辺からの距離
	---------------------- */
.poem header { position: relative; }
.header-container {
	position: relative;
	min-height: 180vh;
	--poem-anchor-offset: 80px;
	padding-bottom: 2.4em;
}
.header-container.header-container--collapsed {
	min-height: var(--header-min-height, 200px);
}
.poem-title {
	position: absolute;
	top: 0; left: 0; right: 0;
	margin: 0;
	box-sizing: border-box;
}
.poem-title.pinned,
.poem-title.anchored { margin: 0; }
.poem-title.pinned {
	position: fixed;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
	width: 80%;
	max-width: 800px;
}
.poem-title.anchored {
	position: absolute;
	top: auto;
	bottom: var(--poem-anchor-offset, 80px);
	left: 0; right: 0;
	transform: none;
	width: 100%;
}
.poem-line {
	display: inline-block;
	opacity: 0;
	/* 左→右のソフトなグラデーション（左下の影を避けるため水平方向のみ） */
	mask-image: linear-gradient(to right, black 0%, black 70%, transparent 100%);
	-webkit-mask-image: linear-gradient(to right, black 0%, black 70%, transparent 100%);
	mask-size: 0% 100%;
	mask-repeat: no-repeat;
	mask-position: left center;
	-webkit-mask-size: 0% 100%;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-position: left center;
	transition: opacity 1.2s ease-out, mask-size 1.2s ease-out, -webkit-mask-size 1.2s ease-out;
}
.poem-title .line01.visible,
.poem-title .line02.visible {
	opacity: 1;
	mask-size: 130% 100%;
	-webkit-mask-size: 130% 100%;
}

/* Bパターン：ポエムタイトルギミック無し（.poem-no-gimmick） */
.poem-no-gimmick .header-container {
	min-height: auto;
	padding-bottom: 2.4em;
}
.poem-no-gimmick .poem-title {
	position: static;
	transform: none;
	width: 100%;
}
.poem-no-gimmick .poem-title .line01,
.poem-no-gimmick .poem-title .line02 {
	mask-image: none;
	-webkit-mask-image: none;
}

/* Bパターン：ポエムタイトル2行を20vh届いたらフェードイン */
.poem-title .poem-title-line {
	display: block;
	width: 100%;
}
.poem-title-line {
	opacity: 0;
	transition: opacity 1.2s ease-out;
}
.poem-title-line.reveal {
	opacity: 1;
}

/* Bパターン：リッチ・スマートなポエム（.poem-rich）
	---------------------- */
.poem-rich {
	position: relative;
	padding: 5rem 0 6rem;
}
/*
.poem-rich::before {
	content: '';
	position: absolute;
	top: 0; left: 50%;
	transform: translateX(-50%);
	width: 60%;
	max-width: 400px;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent);
}
*/
.poem-rich::after {
	content: '';
	position: absolute;
	bottom: 0; left: 50%;
	transform: translateX(-50%);
	width: 40%;
	max-width: 280px;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(255,255,255,0.1), transparent);
}
.poem-title--under {
	position: relative;
	padding-bottom: 1.2rem;
}

.poem-rich .poem-text {
	position: relative;
	padding-left: 2.5vw;
/* 	padding-left: 15px; */
}
.poem-rich .poem-text::before {
	content: '';
	position: absolute;
	top: 0; left: 0;
	width: 2px;
	height: 100%;
	background: linear-gradient(180deg, rgba(255,255,255,0.2), transparent 35%, transparent 100%, rgba(255,255,255,0.1));
}
.poem-rich .poem-text::after {
	content: '';
	position: absolute;
	top: 0; right: 0;
	width: 2px;
	height: 100%;
	background: linear-gradient(180deg, rgba(255,255,255,0.2), transparent 0%, transparent 65%, rgba(255,255,255,0.2));
}

.poem-rich .poem-text .sign {
	position: relative;
}

.poem-pict-frame {
	position: relative;
	display: inline-block;
}

.poem-pict-frame img {
	position: relative;
	z-index: 1;
}

/* 松尾写真 2枚フェード切り替え（5秒ずつ表示、2.5秒でフェード、15秒ループ）※revealで表示されたタイミングでスタート */
.poem-pict-frame.matsuo-crossfade {
	overflow: hidden;
}
/* スマホ：椅子に座った写真の縦長比率に合わせ、上下トリミングを防ぐ */
@media (max-width: 767px) {
	.poem-pict .matsuo.poem-pict-frame.matsuo-crossfade {
		width: 70%;
		max-width: 280px;
		margin-top: 3rem;
		aspect-ratio: 2/3;
		margin-left: auto;
		margin-right: auto;
	}
	.poem-pict .matsuo.poem-pict-frame.matsuo-crossfade img:first-child {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: center center;
	}
	.poem-pict .matsuo.poem-pict-frame.matsuo-crossfade img:last-child {
		object-fit: cover;
		object-position: center center;
	}
}
.poem-pict-frame.matsuo-crossfade img:first-child {
	position: relative;
	z-index: 1;
}
.poem-pict-frame.matsuo-crossfade img:last-child {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 2;
}
.poem-pict.reveal .matsuo-crossfade img:first-child {
	animation: matsuo-fade-img1 15s ease-in-out infinite;
}
.poem-pict.reveal .matsuo-crossfade img:last-child {
	animation: matsuo-fade-img2 15s ease-in-out infinite;
}
@keyframes matsuo-fade-img1 {
	0%, 33% { opacity: 1; }
	50%, 83% { opacity: 0; }
	100% { opacity: 1; }
}
@keyframes matsuo-fade-img2 {
	0%, 33% { opacity: 0; }
	50%, 83% { opacity: 1; }
	100% { opacity: 0; }
}

/* ポエムエリア（.poem）ベース
	---------------------- */
.poem {
	padding: 4rem 0;
	text-align: left;
}
.poem .container {
	width: 82%;
	max-width: 800px;
}
.poem-title {
	margin-bottom: 2.4em;
	font-size: 3rem;
	font-weight: 500;
	font-family: var(--font-noto_serif);
	font-feature-settings: "palt" 1;
	letter-spacing: 0.12em;
	line-height: 1.1;
	opacity: 0.9;
}
.poem-title strong {
	display: inline-block;
	line-height: 1.75;
	font-weight: normal;
}
.poem .body.col-2 {
	display: flex;
	flex-direction: column;
	gap: 2rem;
}
.poem-text p {
	margin-bottom: 1.85em;
	font-size: 2.2rem;
	font-family: var(--font-noto_serif);
	font-weight: 500;
	text-align: left;
	line-height: 1.85;
	letter-spacing: 0.225em;
	color: rgba(255, 255, 255, 0.98);
	opacity: 0;
	transition: none;
	hanging-punctuation: first;
}
.poem-text p.reveal {
	opacity: 0.9;
}
.poem-text p span {
	display: inline-block;
	opacity: 0;
	transition: opacity 1.2s ease-out;
	transition-delay: var(--poem-span-delay, 0s);
}
.poem-text p.reveal span {
	opacity: 1;
}
/* せり上がり：指定3行のみ */
.poem-text p.poem-rise span {
	transform: translateY(0.4em);
	transition: opacity 1.2s ease-out, transform 1.2s ease-out;
	transition-delay: var(--poem-span-delay, 0s);
}
.poem-text p.poem-rise.reveal span {
	transform: translateY(0);
}
.poem-text .sign {
	margin: 3rem 0 0;
	padding-right: 2.5vw;
	font-size: 1.9rem;
	text-align: right;
	line-height: 1.65;
}
.poem-profile-link-wrap {
	margin: 30vh auto 0;
	text-align: center;
}
.profile-link { text-align: right;}
.poem-profile-link {
	display: inline-block;
	padding: 0.45em 1em ;
	color: var(--text-sub);
	font-size: 1.35rem;
/* 	font-family: var(--font-noto_sans); */
	font-family: var(--font-noto_serif);
	text-decoration: none;
	letter-spacing: 0.08em;
/* 	border-bottom: 1px solid rgba(255,255,255,0.35); */
	transition: color 0.25s ease, opacity 0.25s ease;
	opacity: .75;
}
.poem-profile-link small { font-size: .85em;}


.poem-pict { text-align: center; }
.poem-pict .matsuo {
	margin: 3em auto 0;
	text-align: center;
	opacity: 0;
	transition: opacity 1.2s ease-out;
}
.poem-pict.reveal .matsuo { opacity: 1;}
.poem-pict .matsuo img {
	display: block;
	margin: auto;
	width: 80%;
	max-width: 320px;
	height: auto;
}
.poem-pict .matsuo.poem-pict-frame.matsuo-crossfade img:last-child {
	margin: 0;
	width: 100%;
	height: 100%;
}
.poem-pict .matsuo.mono img { filter: grayscale(100%) contrast(120%) brightness(100%);}
.poem-pict .matsuo figcaption {
	font-size: 1.2rem;
	font-family:var(--font-noto_sans);
	text-align: right;
	letter-spacing: 0.1em;
	opacity: .45;
}
/* 顔アップ1枚＋キャプション（index260224-A パターン）。別邸で2枚フェードを使う場合は .matsuo-crossfade を付与 */
.poem-pict .matsuo figcaption.matsuo-caption-reveal {
	display: block;
	margin: auto;
	width: 80%;
	max-width: 320px;
	opacity: 0;
	transition: opacity 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}

.poem-pict a .matsuo img {transition: all 0.25s ease;}
.poem-pict a:hover .matsuo img { filter: brightness( 114% ) contrast( 116% ) ;	}
.poem-pict a:hover .matsuo-caption-reveal {
	color: var(--text-main);
	opacity: 1;
}


.poem-pict .matsuo figcaption.matsuo-caption-reveal.active { opacity: 0.75;}
.poem-pict .matsuo figcaption.matsuo-caption-reveal span {opacity: .65;}
.poem-pict .matsuo figcaption.matsuo-caption-reveal small {
	display: inline-block;
	margin-left: .2em;
	padding: .45em .3em .2em;
	font-size: 1.2em;
	font-family: var(--font-noto_serif);
	font-style: italic;
	border-bottom: 1px dotted rgba(255,255,255,.6);
	opacity: .75;
	transition: all .25s ease;
}
.poem-pict a:hover .matsuo figcaption.matsuo-caption-reveal small {
	color: #fff;
	opacity: 1;
}

.poem-pict .matsuo figcaption.matsuo-caption-reveal small::after {
	display: inline-block;
	margin-left: .2em;
  font-size: .75em;
  letter-spacing: 0;
  content: '↗';
}


@media (min-width: 768px) {
	.poem-title { font-size: 3rem; }
	.poem-text p {
		font-size: 2.4rem;
		font-weight: 400;
	}
	.poem-text .sign { font-size: 2.1rem; }
	.poem .body.col-2 {
		flex-direction: row;
		align-items: flex-start;
		justify-content: space-between;
		gap: 4rem;
	}
	.poem-text { flex: 1; }
	.poem-pict .matsuo img {
		width: 280px;
		height: 400px;
	object-fit: cover;
	object-position: calc(25% - 10px) center;
	}
	.poem-pict .matsuo.poem-pict-frame.matsuo-crossfade img:last-child {
		width: 100%;
		height: 100%;
	}
	.poem-pict .matsuo.mono img {
		width: 280px;
		height: auto;
	object-fit: cover;
	object-position:center;
	}
	.poem-pict .matsuo figcaption.matsuo-caption-reveal { width: 100%; }

}
@media (min-width: 1024px) {
	.poem-title { font-size: 3.6rem; }
	.poem-text p { font-size: 2.6rem; }
	.poem-text .sign { font-size: 2.3rem; }
}


/* 劇団員イメージ（.company）スクロールで徐々に表示
	---------------------- */
.company {
	background-color: #000;
	padding: 4rem 0;
}
.company .container {
	min-height: auto;
	max-width: 850px;
}
.company header {
	margin-bottom: 4.4em;
}
.company header h2 {
	margin-bottom: 0.5rem;
	font-size: 1.85rem;
	font-family: var(--font-noto_serif);
	font-weight: 400;
	letter-spacing: 0.44em;
	opacity: 0.85;
}
.company .attention {
	font-size: 1.45rem;
	text-align: center;
	letter-spacing: 0.44em;
	opacity: 0.7;
}
.company .body { margin-top: 0; }
.company .body .honkan {
	margin: 3rem auto 0;
	width: 90%;
	max-width: 600px;
	text-align: center;
}
.company .body .honkan li {
	display: inline-block;
	margin: 1rem auto ;
	padding: 0 0.4em;
	color: rgba(255, 255, 255, 0.7);
	font-size: 1.5rem;
	font-weight: 300;
	font-family: var(--font-zen_sans);
	letter-spacing: 0.2em;
	opacity: 0;
	transition: opacity 1.4s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--honkan-delay, 0s);
}
/* スクロールで順番にふわっと表示（JS から .honkan-member-active を付与） */
.company .body .honkan li.honkan-member-active {
	opacity: 1;
}
/*
.company .body .honkan li::after {
	display: inline-block;
	content: "　・";
} 
*/

body .order {
	margin:1.2rem auto 6.5rem;
	color: rgba(255,255,255,.6);
	font-size: 1.2rem;
	font-style: italic;
	text-align: center;
}

.company .pict-otona {
	margin: 0 auto;
	max-width: 100%;
}
.company .pict-otona a { transition: all .45s ease;}
.company .pict-otona a:hover {
	filter: brightness( 114% ) contrast( 116% ) ;	
}
.company .pict-otona img {
	display: block;
	width: 100%;
	height: auto;
}
.company .pict-otona figcaption {
	margin-top: 0.75rem;
	color: rgba(255, 255, 255, 0.45);
	font-size: 1.2rem;
	font-weight: 400;
	font-family: var(--font-zen_sans);
	letter-spacing: 0.42em;
	text-align: right;
}
.company .pict-otona figcaption.caption {
	margin: 0 0 .75rem;
	text-align: left;
	font-family: var(--font-zen_serif);
}

/* 集合写真：各要素20%見えたタイミングで開始 */
.company-reveal {
	opacity: 0;
	transform: translateY(40px);
	transition: opacity 1.8s cubic-bezier(0.22, 1, 0.36, 1), transform 1.8s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--reveal-delay, 0s);
}
.company-reveal.active {
	opacity: 1;
	transform: translateY(0);
}
/* 画像のみ：競り上がりなし、フェードインのみ */
.company-reveal-pict {
	transform: none;
	transition: opacity 4.5s cubic-bezier(0.22, 1, 0.36, 1);
}
.company-reveal-pict.active {
	transform: none;
}
/* キャプション：20%見えたら右側からフェードイン（競り上がりなし） */
.company-reveal-caption {
	transform: none;
	transition: opacity 1.2s cubic-bezier(0.22, 1, 0.36, 1);
}
/* 境界線をぼやかした感じ（内側シャドー） */
.company .pict-otona {
	position: relative;
	box-shadow: inset 0 0 60px rgba(0, 0, 0, 0.35), inset 0 0 120px rgba(0, 0, 0, 0.15);
}

/* 大人計画・別邸（.bettei）index260213-01に寄せる
	---------------------- */
section.bettei .container {
	width: 88%;
	max-width: 1000px;
}
section.bettei .section-title { margin-bottom: 5em;}
section.bettei .section-title.kana { font-size: 1.45rem;}


section.bettei header { margin-bottom: 4em;}

/* 別邸：タイトルは集合写真に倣い、役者は順番にフェードイン */
.bettei-header-title {
	margin-bottom: 0.5rem;
	font-size: 1.85rem;
	font-family: var(--font-noto_serif);
	font-weight: 400;
	letter-spacing: 0.44em;
	opacity: 0.85;
}
.bettei-header-management {
	letter-spacing: 0.8em;
	text-transform: uppercase;
	font-family: var(--font-noto_serif);/* noto_serif,noto_sans */
	font-size: 1.45rem;
	margin-bottom: 5em;
}

/* 別邸：説明文＋若者画像（タイトル表示後にほわっと表示） */
.bettei-description {
	position: relative;
	display: inline-block;
	margin: 0 auto 7rem;
	padding:3em 2rem ;
	max-width: 27em;
	z-index: 0;
}
.bettei-description::before {
	content: "";
  position: absolute;
  inset: 0;/* top:0; right:0; bottom:0; left:0; と同じ */
	background: url(/assets/images/deco01.svg),url(/assets/images/deco02.svg) ;
	background-repeat: no-repeat;
	background-position: center top,center bottom;
	background-size: 25% auto;
	opacity: 0.5;
  pointer-events: none;
  z-index: -1;  
}
.bettei-description-reveal {
	opacity: 0;
	transition: opacity 1.4s ease;
}
.bettei-description-reveal.active { opacity: 1;}
.bettei-description-text {
	margin: 0 0 1.2rem;
	color:rgba(255, 255, 255, 0.7);
	font-size: 0.9em;
	font-family: var(--font-noto_serif);
	line-height: 1.85;
	text-align: left;
	letter-spacing: 0.06em;
}
.bettei-description-text:last-of-type {
	margin-bottom: 0;
}
.bettei-description-pict {
	margin: 2.5rem 0 0;
	border-radius: 4px;
	overflow: hidden;
}
.bettei-description-pict img {
	display: block;
	width: 100%;
	height: auto;
	object-fit: cover;
}

.bettei-reveal {
	opacity: 0;
	transition: opacity 2.4s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--bettei-delay, 0s);
}
.bettei-reveal-title {
	color: var(--text-sub);
	transform: translateY(40px);
	transition: opacity 3.6s cubic-bezier(0.22, 1, 0.36, 1), transform 3.6s cubic-bezier(0.22, 1, 0.36, 1);
	transition-delay: var(--bettei-delay, 0s);
}
.bettei-reveal-title.active { transform: translateY(0);}
.bettei-reveal.active { opacity: 1;}
.bettei .members {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 2rem;
	text-align: center;
}
.bettei .member {
	flex: 0 0 100%;
	text-align: center;
	font-family: var(--font-zen_sans);
	font-weight: 300;
}
.bettei .member .btn-pdf {
	display: block;
	padding: 3vw;
	text-align: left;
	background-color: var(--bg-color);
	border: 1px solid #333;
}
.bettei .member .btn-pdf:hover {
	background-color: #151515 ;
	transition: background .35s ease;
}
.bettei .thumb-wrapper {
	overflow: hidden;
	margin: 0 0 .85rem;
}
.bettei .thumb-wrapper img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 3 / 4;
	object-fit: cover;
	filter: grayscale(100%) contrast(100%) brightness(75%);
	transition: transform .35s ease, filter .35s ease;
}
.bettei .member:hover .thumb-wrapper img {
	transform: scale(1.05);
	filter: grayscale(0%) contrast(100%) brightness(100%);
}
.bettei .text-area {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 1rem;
	padding: 0;
}
.bettei .name {
	font-size: 1.25rem;
	font-weight: 300;
	letter-spacing: 0.24em;
	transition: color .35s ease;
}
.bettei a:link .name,
.bettei a:visited .name { color: #999;}
.bettei a:hover .name { color: #fff;}

.bettei .format {
	padding-bottom: .2em;
	color: var(--text-sub);
	font-size: 0.9rem;
	letter-spacing: 0.2em;
	border-bottom: 1px solid #333;
}
.bettei .format::after {
  font-size: 1em;
  letter-spacing: 0;
  content: '↗';
}

.bettei .management {
	margin: 5em auto;
	padding: 3rem 0;
}


/* 別邸・MANAGEMENT：Flexで中央寄せ（8人最後の2人・MANAGEMENT 2人とも中央揃え） */
@media (min-width: 200px) {
	.bettei .member {
		flex: 0 0 calc((100% - 3rem) / 2);
	}
}
@media (min-width: 768px) {
	.bettei .member {
		flex: 0 0 calc((100% - 6rem) / 3);
	}
}
@media (min-width: 1024px) {
	.bettei .member {
		flex: 0 0 calc((100% - 9rem) / 4);
	}
}

/* NEWS（.news）index260213-01に寄せる
	---------------------- */
section#news {
	padding-bottom: 0 !important;
}
.news .container {
	min-height: auto;
	max-width: 720px;
}
.news .section-title {
	margin-bottom: 2.5em;
}
.news .news-area {
	padding: 2rem;
	margin: 0;
	background: #080808;
	border-top: 1px solid #1a1a1a;
	border-bottom: 1px solid #1a1a1a;
	text-align: left;
}
.news .news-area a {
	display: block;
	background-color: var(--bg-color);
	transition: background-color 0.25s ease;
}
.news .news-area a:hover {
	background-color: #333;
}
.news .news-item {
	padding: 1.5rem 1rem;
	border-bottom: 1px solid #1a1a1a;
	transition: border-color 0.3s ease;
}
.news .news-item:last-child {
	border-bottom: none;
}
.news .news-item:hover {
	border-bottom-color: #333;
}
.news .news-date {
	display: block;
	margin-bottom: 0.5rem;
	color: var(--text-sub);
	font-size: 0.8em;
	font-family: var(--font-noto_sans);
	letter-spacing: 0.2em;
	opacity: 0.7;
}
.news .news-title {
	margin: 0 0 ;
	font-size: 1.75rem;
	font-family: var(--font-noto_sans);
	letter-spacing: 0.1em;
	line-height: 1.4;
	font-weight: 400;
}
.news a .news-title img {
	width: auto;
	height: 1.1em;
	filter: invert(92%) sepia(92%) saturate(34%) hue-rotate(127deg) brightness(108%) contrast(111%);
	vertical-align: -2px;
	transition: opacity 0.25s ease;
}
.news a:link .news-title img,
.news a:visited .news-title img { opacity: .7;}
.news a:hover .news-title img {opacity: 1;}

.news .news-text {
	margin:0.5rem 0 0;
	color: #aaa;
	font-family: var(--font-noto_sans);
}
.news .news-text p {
	margin: 0;
	font-size: 1.5rem;
	line-height: 1.7;
	letter-spacing: 0.08em;
	opacity: 0.9;
}
.news .sns-area {
	margin-top: 5rem;
	text-align: center;
}
.news .news-footer-text {
	margin-bottom: 1.5rem;
	color: var(--text-sub);
	font-size: 1.45rem;
	font-family: var(--font-noto_sans);
	text-align: center;
	letter-spacing: 0.3em;
}
.news .sns-icons {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 2rem;
	list-style: none;
	margin: 0;
	padding: 0;
}
.news .sns-icons li {
	margin: 0;
	padding: 0;
}
.news .sns-icons a {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 40px;
	height: 40px;

}
.news .sns-icons img {
	width: 34px;
	height: 34px;
	display: block;
	filter: invert(92%) sepia(92%) saturate(34%) hue-rotate(127deg) brightness(108%) contrast(111%);
	opacity: .57;
	transition: all 0.25s ease;
}
.news .sns-icons .a img { opacity: .2;}
.news .sns-icons a:hover img {
	width: 40px;
	height: 40px;
	opacity: 1;
}
.news .mailmaga { margin-top: 3rem;}
.news .mailmaga a {
  display: inline-block;
  padding: .3rem 1.4rem;
  color:var(--text-sub);
  font-size: 1.25rem;
  border: 1px solid var(--text-sub);
  border-radius: 1em;
  transition: all 0.25s ease;
}
.news .mailmaga a:hover {
  color: #111;

  background-color: var(--text-sub);
}
.news .mailmaga a::after {
  display: inline-block;
  margin-left: .2em;
  font-size: .85em;
  letter-spacing: 0;
  content: '↗';
  vertical-align: baseline;
}

.audition_text {
	margin: 10rem auto 3.5rem;
	padding: 1.2em 1.2em .4em;
	width: 90%;
	max-width: 450px;
	border-top: 1px solid #343434;
	border-bottom: 1px solid #343434;
}
.audition_text p {
  margin: 0 0 1.2rem;
  color: rgba(255, 255, 255, 0.55);
  font-size: 0.75em;
  font-family:var(--font-zen_sans);
  line-height: 1.65;
  font-weight: 400;
  text-align: left;
  letter-spacing: 0.04em;
}




/* CONTACT（お問い合わせ）index260213-01に寄せる
	---------------------- */
section.contact {
	padding-top: 10vh !important;
}
.contact .container {
	min-height: auto;
	max-width: 480px;
}


.contact .section-title {
	margin-bottom: 2.5em;
}
.contact .form {
	display: flex;
	flex-direction: column;
	gap: 3rem;
	text-align: left;
}
.contact .form-item {
	display: flex;
	flex-direction: column;
	gap: 0.8rem;
}
.contact .form-item label {
	display: block;
	font-size: 1rem;
	font-family: var(--font-noto_sans);
	font-weight: 400;
	letter-spacing: 0.5em;
	text-transform: uppercase;
	color: var(--text-sub);
}
.contact .form-item input,
.contact .form-item textarea {
	width: 100%;
	padding: 1.5rem;
	font-size: 1.4rem;
	font-family: inherit;
	letter-spacing: 0.15em;
	color: var(--text-main);
	background-color: #080808;
	border: 1px solid #222;
	outline: none;
	transition: border-color 0.3s ease;
}
.contact .form-item input::placeholder,
.contact .form-item textarea::placeholder {
	color: rgba(255, 255, 255, 0.4);
}
.contact .form-item input:focus,
.contact .form-item textarea:focus {
	border-color: #fff;
}
.contact .form-item textarea {
	min-height: 12rem;
	resize: vertical;
}
.contact .form-btn {
	margin-top: 0.5rem;
	text-align: center;
}
.contact .form-btn button {
	padding: 1.5rem 4rem;
	font-size: 1rem;
	font-family: var(--font-noto_sans);
	font-weight: 700;
	letter-spacing: 0.5em;
	text-transform: uppercase;
	color: var(--text-main);
	background: transparent;
	border: 1px solid #fff;
	cursor: pointer;
	transition: background 0.3s ease, color 0.3s ease;
}
.contact .form-btn button:hover {
	background: #fff;
	color: var(--bg-color);
}
/* Snow Monkey Forms：通常時はエラー文言を非表示（送信エラー時のみプラグインのJSで表示） */
.contact .smf-system-error-content-ready,
.smf-contact-overlay .smf-system-error-content-ready {
	display: none;
}

/* Snow Monkey Forms：プラグインCSSを使わずCONTACT内のみ自前スタイル（他セクション干渉ゼロ） */
.contact .snow-monkey-form[data-screen="loading"] {
	visibility: hidden;
}
.contact .smf-focus-point {
	position: absolute;
	top: -100px;
	visibility: hidden;
}
.contact .smf-form--letter + .smf-action {
	margin-top: 3rem;
	text-align: center;
}
.contact .smf-form--letter .smf-item {
	margin-bottom: 0;
	margin-top: 0;
	padding: 1.5rem 0;
}
.contact .smf-item__label__text {
	display: block;
	margin-bottom: .62em;
	font-size: 1rem;
	font-family: var(--font-noto_sans);
	font-weight: 400;
	letter-spacing: 0.5em;
	text-align: left;
	text-transform: uppercase;
	color: var(--text-sub);
}
.contact .smf-text-control__control,
.contact .smf-textarea-control__control {
	width: 100%;
	padding: 1.5rem !important;
	font-size: 1.4rem;
	font-family: inherit;
	letter-spacing: 0.15em;
	color: var(--text-main);
	background-color: #0a0a0a !important;
	border: 1px solid #222 !important;
	outline: none;
	transition: border-color 0.3s ease !important;
}
.contact .smf-text-control__control::placeholder,
.contact .smf-textarea-control__control::placeholder {
	color: rgba(255, 255, 255, 0.4);
}
.contact .smf-text-control__control:focus,
.contact .smf-textarea-control__control:focus {
	border-color: #fff !important;
}
.contact .smf-textarea-control__control {
	min-height: 12rem;
	resize: vertical;
}
.contact .smf-action .smf-button-control__control {
	display: inline-block;
	padding: 1.5rem 4rem;
	font-size: 1rem;
	font-family: var(--font-noto_sans);
	font-weight: 700;
	letter-spacing: 0.5em;
	text-transform: uppercase;
	color: var(--text-main);
	background: transparent;
	border: 1px solid #fff;
	cursor: pointer;
	transition: background 0.3s ease, color 0.3s ease;
	position: relative;
}
.contact .smf-action .smf-button-control__control:hover {
	background: #fff;
	color: var(--bg-color);
}
.contact .smf-action .smf-button-control__control[disabled] {
	opacity: 0.7;
	cursor: wait;
}
.contact .smf-action .smf-button-control__control[disabled]::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 1.2rem;
	width: 1.05em;
	height: 1.05em;
	transform: translateY(-50%);
	border: 2px solid rgba(255,255,255,0.35);
	border-top-color: rgba(255,255,255,0.95);
	border-radius: 999px;
	animation: smfSpinner 0.8s linear infinite;
}

/* Snow Monkey Forms：確認・完了画面のライトボックス風オーバーレイ */
.smf-contact-overlay {
	position: fixed;
	inset: 0;
	z-index: 10000;
	background: rgba(0, 0, 0, 0.85);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	box-sizing: border-box;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease, visibility 0.25s ease;
}
.smf-contact-overlay--open {
	opacity: 1;
	visibility: visible;
}
.smf-contact-overlay__scroll {
	max-height: 90vh;
	width: 100%;
	max-width: 480px;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	display: flex;
	align-items: flex-start;
	justify-content: center;
}
.smf-contact-overlay__inner {
	width: 100%;
	min-height: min-content;
}
.smf-contact-overlay__inner .snow-monkey-form {
	margin: 0;
}
/* 確認画面 */
.smf-contact-overlay .smf-item { margin-bottom: 1em;}
.smf-contact-overlay .smf-item__label__text {
	display: block;
  font-size: 1rem;
  font-family: var(--font-noto_sans);
  font-weight: 400;
  letter-spacing: 0.5em;
  text-transform: uppercase;
  color: var(--text-sub);
}

/* 確認画面の「戻る」「確認」ボタン（オーバーレイ内では .contact 外のためここで指定） */
.smf-contact-overlay .smf-action {
	margin-top: 4.2rem;
	text-align: center;
}
.smf-contact-overlay .smf-action .smf-button-control__control {
	display: inline-block;
	margin: 0 0.5rem 0.5rem ;
	padding: 1.5rem 4rem;
	width: 155px;
	color: var(--text-main);
	font-size: 1rem;
	font-family: var(--font-noto_sans);
	font-weight: 700;
	letter-spacing: 0.5em;
	text-align: center;
	text-transform: uppercase;
	background: transparent;
	border: 1px solid #fff;
	cursor: pointer;
	transition: background 0.3s ease, color 0.3s ease;
	position: relative;

}
.smf-contact-overlay .smf-action .smf-button-control__control:hover {
	background: #fff;
	color: var(--bg-color);
}
.smf-contact-overlay .smf-action .smf-button-control__control[disabled] {
	opacity: 0.7;
	cursor: wait;
}
.smf-contact-overlay .smf-action .smf-button-control__control[disabled]::after {
	content: '';
	position: absolute;
	top: 50%;
	right: 1.1rem;
	width: 1.05em;
	height: 1.05em;
	transform: translateY(-50%);
	border: 2px solid rgba(255,255,255,0.35);
	border-top-color: rgba(255,255,255,0.95);
	border-radius: 999px;
	animation: smfSpinner 0.8s linear infinite;
}

@keyframes smfSpinner {
	to { transform: translateY(-50%) rotate(360deg); }
}
/* オーバーレイ表示中は背面のページスクロールを止める（任意） */
html.smf-overlay-open {
	overflow: hidden;
}




/* FOOTER index260213-01 / index260218 に寄せる
	---------------------- */
.footer {
	padding: 4rem 0 .4em;
	text-align: center;
	background-color: var(--bg-color);
}
.footer .container {
	min-height: auto;
	max-width: none;
	padding: 0;
}
.footer .container .logo { text-align: center;}
.footer .container .logo img {
	margin: 1em auto;
	width: 120px;
	height: auto;
	filter: invert(92%) sepia(92%) saturate(34%) hue-rotate(127deg) brightness(108%) contrast(111%);
	transition: opacity 0.25s ease;
}
.footer .container .logo a:link img,
.footer .container .logo a:visited img {	opacity: .2;}
.footer .container .logo a:hover img {	opacity: .7;}
.footer .container .privacy {
	margin: .2em auto 1.2em;
	text-align: center;
	font-size: 1.1rem;
	font-family: var(--font-noto_sans);
}
.footer .container .privacy a {
	border-bottom: 1px dotted #fff;
}
.footer .container .privacy a:link,
.footer .container .privacy a:visited {
	opacity: .4;
}

.footer .copy {
	margin: 0;
	font-size: 0.9rem;
	font-family: var(--font-noto_sans);
	letter-spacing: 0.6em;
	text-align: center;
	text-transform: uppercase;
	color: var(--text-sub);
	opacity: 0.5;
}
.footer .copy .icon-copy {
	font-size: 1.82em;
	line-height: 1.8;
	vertical-align: -3px;
}

/* 松尾スズキ プロフィール dialog（ポップアップ風・上下左右中央） */
.profile-dialog {
	position: fixed;
	inset: 0;
	margin: auto;
	padding: 0;
	width: min(90vw, 640px);
	max-height: 90vh;
/*
	border-left: 1px solid rgba(255,255,255,0.2);
	border-right: 1px solid rgba(255,255,255,0.2);
*/
	border-radius: 8px;
	background: #0a0a0a;
	box-shadow: 0 0 0 100vmax rgba(0,0,0,0.9), 0 24px 48px rgba(0,0,0,0.7);
}
.profile-dialog::backdrop {
	background: rgba(0,0,0,0.9);
}
.profile-dialog-inner {
	position: relative;
	padding: 2.25rem 2rem 2.5rem;
	max-height: 90vh;
	overflow-y: auto;
	border-radius: inherit;
	opacity: 0;
	transform: scale(0.98);
	transition: opacity 0.28s ease, transform 0.28s ease;
}
.profile-dialog.profile-dialog--visible .profile-dialog-inner {
	opacity: 1;
	transform: scale(1);
}
.profile-dialog.profile-dialog--closing .profile-dialog-inner {
	opacity: 0;
	transform: scale(0.98);
}
.profile-dialog-close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	width: 2.5rem;
	height: 2.5rem;
	padding: 0;
	font-size: 1.8rem;
	line-height: 1;
	color: var(--text-main);
	background: none;
	border: none;
	cursor: pointer;
	opacity: 0.65;
	transition: opacity 0.2s ease;
}
.profile-dialog-close:hover {
	opacity: 1;
}
.profile-dialog-close-bottom {
	position: static;
	margin: 1.75rem auto 0;
	padding: 1em;
	width: 50px;
	height: 50px;
	color: var(--text-main);
	font-size: 1.3rem;
	font-family: var(--font-noto_sans);
	border: 1px solid rgba(255,255,255,0.4);
	border-radius: 50%;
	background: transparent;
	cursor: pointer;
	transition: opacity 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.profile-dialog-close-bottom:hover {
	opacity: 1;
	border-color: rgba(255,255,255,0.7);
	background: rgba(255,255,255,0.06);
}
.profile-dialog-title {
	margin: 0.5rem 0 2.5rem;
	color: var(--text-main);
	font-size: 2.85rem;
	font-family: var(--font-noto_serif);
	font-weight: 500;
	letter-spacing: 0.12em;
	line-height: 0.865;
/* 	border-bottom: 1px solid rgba(255,255,255,0.2); */
}
.profile-dialog-title small {
	font-size: .5em;
	font-style: italic;
	opacity: .6;
}

.profile-dialog-body {
	display: flex;
	flex-direction: column;
	gap: 1.75rem;
}
.profile-dialog-pict {
	margin: 0;
	text-align: center;
}
.profile-dialog-pict img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0 auto;
	object-fit: cover;
	border-radius: 6px;
}
.profile-dialog-content {
	display: flex;
	flex-direction: column;
	gap: 0.5rem;
}
.profile-dialog-name-ja {
	margin: 0;
	font-size: 1.5rem;
	font-family: var(--font-noto_serif);
	font-weight: 500;
	letter-spacing: 0.12em;
	color: var(--text-main);
}
.profile-dialog-name-en {
	margin: 0 0 0.5rem;
	font-size: 0.95rem;
	font-family: var(--font-noto_sans);
	letter-spacing: 0.2em;
	color: var(--text-sub);
	text-transform: uppercase;
}
.profile-dialog-text {
	font-size: 1.43rem;
	line-height: 1.85;
	letter-spacing: 0.04em;
	color: var(--text-main);
}
.profile-dialog-text p {
	margin: 0 0 0.9rem;
	font-size: inherit;
}
.profile-dialog-text p:last-child {
	margin-bottom: 0;
}
.profile-dialog-text p.mailmaga {
	margin: 1.72em auto;
}
.profile-dialog-text p.mailmaga a {
	display: inline-block;
	padding: .3rem 1.4rem;
	font-size: 1.25rem;
	border: 1px solid #aaa;
	border-radius: 1em;
	transition: all 0.25s ease;
}
.profile-dialog-text p.mailmaga a:hover {
	color: #111;
	background-color: #aaa;
}
.profile-dialog-text p.mailmaga a::after {
	display: inline-block;
	margin-left: .2em;
  font-size: .85em;
  letter-spacing: 0;
  content: '↗';
  vertical-align: baseline;
}


/* タブレット以上：2カラム。写真の上端はプロフィール本文の上端と揃える（display:contents で行を共有） */
@media (min-width: 768px) {
	.profile-dialog {
		width: min(92vw, 820px);
	}
	.profile-dialog-body {
		display: grid;
		grid-template-columns: 45fr 55fr;
		grid-template-rows: auto 1fr auto;
		gap: 0.5rem 2.5rem;
		align-items: start;
	}
	.profile-dialog-pict {
		grid-column: 1;
		grid-row: 2;
		margin-top: .3rem;
		text-align: left;
	}
	.profile-dialog-pict img {
		max-width: 100%;
		margin: 0;
	}
	.profile-dialog-content {
		display: contents;
	}
	.profile-dialog-names {
		grid-column: 2;
		grid-row: 1;
		display: flex;
		flex-direction: column;
		gap: 0.25rem;
	}
	.profile-dialog-text {
		grid-column: 2;
		grid-row: 2;
	}
	.profile-dialog-close-bottom {
		grid-column: 2;
		grid-row: 3;
		margin-top: 1rem;
	}
}

/* ----------------------------- */
@media (min-width: 480px) {
/* ----------------------------- */

/* ----------------------------- */
}@media (min-width: 768px) {
/* ----------------------------- */
.bettei .name { font-size: 1.35rem;}
/* ----------------------------- */
}@media (min-width: 1024px) {
/* ----------------------------- */
.bettei .member .btn-pdf { padding: 2rem;}
/* ----------------------------- */
}@media (min-width: 1280px) {
/* ----------------------------- */

/* ----------------------------- */
}





