@charset "utf-8";

/* CLEAR
----------------------------------------------------- */
.clear {clear:both;}


/* CLEAR FIX
----------------------------------------------------- */
.clearfix::after {
	display: block;
	clear: both;
	content: "";
}


/* ----------------------------------------
- FORMAT
---------------------------------------- */
.spNone {display:none!important;}
.pcNone {display:block!important;}
/*** 960px以上 PCサイズcss適用 ***/
@media screen and (min-width: 960px) {
  .spNone {display:block!important;}
  .pcNone {display:none!important;}
}

#pageTop {position:fixed; bottom:10px; right:10px; z-index:9;}
#pageTop a {background:url(../img/page_top_icon.png) center no-repeat; width:50px; height:0; padding:50px 0 0; display:block; overflow:hidden;}

@media screen and (min-width: 960px) {
#pageTop {bottom:20px; right:20px;}
#pageTop a {transition-property: opacity; transition-duration: 0.5s;}
#pageTop a:hover {opacity: 0.7;}
}





/* ==========================================
共通・ベーススタイル
========================================== */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
/*background-color: #0a0a0a;*/
color: #000;
font-family: "Times New Roman", "Yu Mincho", "游明朝", serif; /* 舞台の厳かな雰囲気を出すため明朝系をベースに */
line-height: 1.8;
letter-spacing: 0.08em;
}
a {
color: inherit;
text-decoration: none;
transition: all 0.3s ease;
}
a:hover {
opacity: 0.7;
}

/* 共通コンテナ */
.container {
max-width: 1200px;
margin: 0 auto;
padding: 0 40px;
}

/* セクション共通 */
section {
padding: 100px 0;
}
.section-title {
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 2.5rem;
font-weight: 700;
text-align: center;
margin-bottom: 50px;
letter-spacing: 0.2em;
color: #ffffff;
position: relative;
}
.static .section-title {
	color: #000;
}

/* View All ボタン */
.view-all-container {
text-align: center;
margin-top: 40px;
}
.view-all-btn, .view-all-btn2 {
display: inline-block;
border: 1px solid #ffffff;
padding: 12px 60px;
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 0.85rem;
letter-spacing: 0.2em;
text-transform: uppercase;
background: transparent;
color: #ffffff;
cursor: pointer;
transition: all 0.3s ease;
}
.view-all-btn2 {
border: 1px solid #0a0a0a;
color: #0a0a0a;
}
.view-all-btn:hover {
background-color: #ffffff;
color: #0a0a0a;
}
.view-all-btn2:hover {
background-color: #0a0a0a;
color: #ffffff;
}

/* ==========================================
ヘッダーナビゲーション (PC画面レイアウト)
========================================== */
header {
position: absolute;
top: 0;
left: 0;
width: 100%;
/*z-index: 100;*/
/*border-bottom: 1px solid rgba(255, 255, 255, 0.1);*/
}
header.top, header.sp_static {
z-index: 100;
}
.header-inner {
max-width: 1400px;
margin: 0 auto;
display: flex;
justify-content: flex-end; /* 右寄せ配置 */
padding: 25px 40px;
}
.nav-list {
display: flex;
gap: 35px;
list-style: none;
}
.nav-list a {
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 0.85rem;
font-weight: 500;
letter-spacing: 0.15em;
color: #fff;
}
.static .nav-list a {
color: #0a0a0a;
}

/* ==========================================
メインビジュアル (Hero Area)
========================================== */
.hero {
height: 100vh;
min-height: 700px;
position: relative;
display: flex;
align-items: center;
justify-content: center;
overflow: hidden;
/* 絢爛でダークな世界観をグラデーションで表現（本来はキャストのコラージュ画像） */
/*background: radial-gradient(circle at center, rgba(45, 25, 15, 0.6) 0%, rgba(10, 10, 10, 1) 80%), 
linear-gradient(135deg, #1f110b 0%, #050b14 100%);
background-size: cover;
background-position: center;
background-image: url(../img/main.jpg);*/
}
.hero-title {
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 5.5rem;
font-weight: 700;
letter-spacing: 0.2em;
margin-left: 0.2em; /* センター合わせの微調整 */
text-align: center;
color: #ffffff;
text-shadow: 0 0 30px rgba(0, 0, 0, 0.8);
z-index: 10;
}
.slide_show {
position: absolute;
width: 100%;
height: 100%;
top: 0;
left: 0;
opacity: 0;
background-position: center center;
background-repeat: no-repeat;
background-size: cover;
animation: hero 36s infinite;
z-index: 9;
}
.slide_show:nth-of-type(2){animation-delay: 6s;}
.slide_show:nth-of-type(3){animation-delay: 12s;}
.slide_show:nth-of-type(4){animation-delay: 18s;}
.slide_show:nth-of-type(5){animation-delay: 24s;}
.slide_show:nth-of-type(6){animation-delay: 30s;}
@keyframes hero{
0%{opacity: 0; transform: scale(1.2);}
12.5%{opacity: 1;}
25%{opacity: 1;}
37.5%{opacity: 0; z-index: 1; transform: scale(1);}
100%{opacity: 0;}
}

/* ==========================================
ABOUT セクション
========================================== */
.about-section {
background-color: #565656;
text-align: center;
padding: 120px 0;
}
.about-heading {
font-size: 2.5rem;
font-weight: 500;
line-height: 1.8;
margin-bottom: 40px;
letter-spacing: 0.2em;
color: #cccccc;
}
.about-heading span {
display: block;
}
.about-text {
font-size: 1.1rem;
color: #cccccc;
max-width: 800px;
margin: 0 auto;
line-height: 2.2;
}

/* ==========================================
NEWS セクション
========================================== */
.news-section {
background-color: #0a0a0a;
}
.news-section.static {
background-color: #fff;
}
.news-list {
max-width: 850px;
margin: 0 auto;
list-style: none;
}
.news-item {
display: flex;
border-bottom: 1px solid #222222;
padding: 25px 10px;
align-items: baseline;
}
.static .news-item {
border-bottom: 1px solid #000;
}
.news-item:first-child {
border-top: 1px solid #222222;
}
.static .news-item:first-child {
border-top: 1px solid #000;
}
.news-date {
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 0.95rem;
color: #888888;
width: 150px;
flex-shrink: 0;
}
.news-text {
font-size: 1rem;
color: #ffffff;
flex-grow: 1;
}
.static .news-text {
color: #000;
}

/* ==========================================
WORKS セクション (グリッドレイアウト)
========================================== */
.works-section {
background-color: #fff;
}
.works-section .section-title {
color: #000;
}
.works-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(340px, 1fr));
gap: 40px 30px;
}
.works-card {
background-color: #161616;
border: 1px solid #222222;
display: flex;
flex-direction: column;
height: 100%;
}
.works-card.works-list {
background-color: #fff;
border: none;
}
.works-thumbnail {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
font-family: sans-serif;
font-size: 0.8rem;
position: relative;
}
.works-thumbnail.works-list-thumbnail {
border: 1px solid #222222;
}
.works-thumbnail img {
width: 100%;
height: 100%;
}
/* ビジュアルの雰囲気を出すダミーのグラデーションスラッシュ */
/*.works-thumbnail::after {
content: '';
position: absolute;
top: 0; left: 0; width: 100%; height: 100%;
background: linear-gradient(45deg, rgba(20,20,20,0.4) 0%, rgba(50,30,20,0.2) 100%);
}*/
.works-body {
padding: 25px;
display: flex;
flex-direction: column;
flex-grow: 1;
}
.works-body.works-list-body {
padding: 0;
}
.works-card-title {
font-size: 1.25rem;
font-weight: 600;
margin-bottom: 15px;
line-height: 1.5;
color: #ffffff;
}
.works-card-title.works-list-title {
margin-top: 20px;
color: #000;
}
.works-card-desc {
font-size: 0.9rem;
color: #aaaaaa;
margin-bottom: 20px;
flex-grow: 1;
line-height: 1.6;
}
.works-card-date {
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 0.85rem;
color: #d4af37; /* アクセント用のゴールド調カラー */
border-top: 1px solid #2a2a2a;
padding-top: 15px;
}
.works-card-date.works-list-url {
color: #000;
}

/* ==========================================
SCHEDULE セクション (テーブルレイアウト)
========================================== */
.schedule-section {
background-color: #0a0a0a;
}
.schedule-section.static {
background-color: #fff;
}
.schedule-section.static h2 {
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 2.5rem;
font-weight: 700;
text-align: center;
margin-bottom: 50px;
letter-spacing: 0.2em;
}
.schedule-table {
width: 100%;
max-width: 900px;
margin: 0 auto;
border-collapse: collapse;
text-align: left;
}
.schedule-table tr {
border-bottom: 1px solid #222222;
}
.schedule-table tr:first-child {
border-top: 1px solid #222222;
}
.schedule-cell-date {
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 0.95rem;
color: #ffffff;
padding: 30px 20px 30px 10px;
width: 240px;
vertical-align: top;
white-space: nowrap;
}
.schedule-cell-title {
font-size: 1.05rem;
padding: 30px 10px 30px 20px;
vertical-align: top;
color: #fff;
}
.schedule-cell-sub {
padding: 30px 0 0 20px;	
}

/* ==========================================
MEMBER セクション
========================================== */
.member-section {
background-color: #fff;
}
.member-section .section-title {
color: #000;
}
.member-grid {
display: flex;
justify-content: center;
gap: 40px;
flex-wrap: wrap;
margin-top: 20px;
}
.member-card {
background-color: #707070;
width: 320px;
padding: 40px 30px;
text-align: center;
display: flex;
flex-direction: column;
align-items: center;
}
.member-photo {
width: 250px;
height: 250px;
border-radius: 50%; /* 円形ポートレート */
margin-bottom: 25px;
display: flex;
align-items: center;
justify-content: center;
color: #555555;
font-size: 0.8rem;
}
.member-photo.photo01 {
background-image: url(member01.jpg);
}
.member-photo.photo02 {
background-image: url(member02.jpg);
}
.member-photo.photo03 {
background-image: url(member03.jpg);
}
.member-name-ja {
font-size: 1.3rem;
font-weight: 500;
margin-bottom: 5px;
color: #ffffff;
}
.member-name-en {
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 0.8rem;
color: #a0a0a0;
text-transform: uppercase;
letter-spacing: 0.15em;
margin-bottom: 12px;
}
.member-role {
font-size: 0.9rem;
color: #d4af37;
margin-bottom: 25px;
min-height: 24px;
}
.detail-btn {
display: inline-block;
border: 1px solid #444444;
padding: 8px 30px;
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 0.75rem;
letter-spacing: 0.15em;
text-transform: uppercase;
transition: all 0.3s ease;
margin-top: auto; /* ボタンの位置を下部に統一 */
}
.detail-btn:hover {
border-color: #ffffff;
background-color: #ffffff;
color: #161616;
}

/* ==========================================
フッター
========================================== */
footer {
background-color: #0a0a0a;
padding: 60px 0;
border-top: 1px solid #ffffff;
text-align: center;
}
.footer-logo {
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 1.4rem;
font-weight: 700;
letter-spacing: 0.2em;
margin-bottom: 25px;
}
.footer-logo img {
display: block;
width: 30%;
margin: 0 auto 40px;
}
.footer-sns {
margin-bottom: 30px;
}
.sns-icon-x {
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 1.1rem;
font-weight: bold;
display: inline-block;
border: 1px solid #fff;
width: 40px;
height: 40px;
line-height: 38px;
border-radius: 50%;
background-color: #fff;
color: #000;
}
.sns-icon-x:hover {
border-color: #ffffff;
background-color: #000;
color: #fff;
}
.footer-link {
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 0.9rem;
color: #fff;
letter-spacing: 0.3em;
}
.copyright {
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 0.75rem;
color: #555555;
letter-spacing: 0.1em;
}

/* ==========================================
レスポンス対応 (モバイル表示)
========================================== */
@media (max-width: 959px) {
section.static,
section.works-section {
padding: 20px 0 70px;
}
.container {
padding: 0 20px;
}
header {
/*position: relative;
background-color: #0a0a0a;*/
height: 80px;
position: fixed;
right: 0;
/*z-index: 999;*/
}
header.top {
z-index: 999;
}
header.sp_static {
/*background-color: #fff;*/
z-index: 9999;
}
.header-inner {
/*justify-content: center;
padding: 15px 20px;*/
width: 100%;
padding: 0 20px;
align-items: center;
height: inherit;
position: relative;
}
/*.nav-list {
gap: 15px;
flex-wrap: wrap;
justify-content: center;
}*/
.header_nav {
position: absolute;
right: 0;
left: 0;
top: 0;
width: 100%;
height: 100vh;
transform: translateX(100%);
transition: ease .4s;
}
.nav-items {
position: absolute;
top: 80px;
left: 50%;
transform: translateX(-50%);
padding: 0;
list-style: none;
}
.nav-items_item a {
color: #fff;
width: 100%;
display: block;
text-align: center;
font-size: 20px;
margin-bottom: 24px;
font-family: "Helvetica Neue", Arial, sans-serif;
font-size: 0.85rem;
font-weight: 500;
letter-spacing: 0.15em;
}
.nav-items_item:last-child a {
 margin-bottom: 0;
}
.sp_static .nav-items_item a {
color: #000;
}
/* ハンバーガーメニュー */
.header_hamburger {
width: 35px;
height: 100%;
margin-top: 5px;
}
.hamburger {
background-color: transparent;
border-color: transparent;
z-index: 9999;
font-family: "Helvetica Neue", Arial, sans-serif;
font-weight: 500;
}
.hamburger::after {
content: "MENU";
font-size: 10px;
color: #fff;
}
.sp_static .hamburger::after {
color: #000;
}
.hamburger span {
width: 100%;
height: 3px;
background-color: #fff;
position: relative;
transition: ease .4s;
display: block;
border-radius: 10px;
}
.sp_static .hamburger span {
background-color: #000;
}
.hamburger span:nth-child(1) {
top: 0;
}
.hamburger span:nth-child(2) {
margin: 6px 0;
}
.hamburger span:nth-child(3) {
top: 0;
margin-bottom: 2px;	
}
/* ハンバーガーメニュークリック後のスタイル */
.header_nav.active {
transform: translateX(0);
background: #000;
}
.sp_static .header_nav.active {
background: #fff;
}
.hamburger.active::after {
content: "CLOSE";
color: #fff;
}
.hamburger.active span {
background-color: #fff;
}
.sp_static .hamburger.active::after {
color: #000;
}
.sp_static .hamburger.active span {
background-color: #000;
}
.hamburger.active span:nth-child(1) {
top: 9px;
transform: rotate(45deg);
}
.hamburger.active span:nth-child(2) {
opacity: 0;
}
.hamburger.active span:nth-child(3) {
top: -9px;
transform: rotate(-45deg);
}

.hero {
height: 90vh;
min-height: 400px;
background-size: 100% auto;
/*background-position: center;*/
}
.hero-title {
font-size: 3rem;
}
.hero-title img {
width: 85%;
}
.about-heading {
font-size: 1.8rem;
}
.section-title, .schedule-section.static h2 {
margin-top: 40px;	
}
.news-item {
flex-direction: column;
gap: 8px;
}
.news-date {
width: auto;
}
.schedule-table, .schedule-table tbody, .schedule-table tr, .schedule-table td {
display: block;
width: 100%;
}
.schedule-table tr {
padding: 20px 0;
}
.schedule-cell-date {
padding: 0 0 5px 0;
width: auto;
}
.schedule-cell-title {
padding: 0;
}
.schedule-cell-sub {
padding: 10px 0 0 0;
}
.schedule-cell-sub .scf_1 {
margin-bottom: 0;
}
.footer-logo img {
width: 60%;
margin: 0 auto 30px;
}
}

/*===================================================
anim
====================================================*/
.anim.fadeX,
.anim.fadeY {
opacity: 0;
transition: all .5s ease-out;
}
.anim.fadeX {
transform: translateX(20px);
}
.anim.fadeY {
transform: translateY(20px);
}
.anim.fadeX.on,
.anim.fadeY.on {
opacity: 1;
}
.anim.fadeX.on {
transform: translateX(0px);
}
.anim.fadeY.on {
transform: translateY(0px);
}


/*===================================================
カレンダー
====================================================*/
.tribe-events-header__events-bar,
.tribe-events-c-subscribe-dropdown__container,
.tribe-events .tribe-events-header__messages {
	display: none !important;
}
.tribe-events-calendar-month__header {
	position: relative;
}
header.tribe-events-header {
	background: #fff;
	margin: -50px 0 0 !important;
}
header.tribe-events-calendar-month__header {
	background: #fff;
}
.tribe-common-l-container.tribe-events-l-container {
	margin-bottom: -50px;
}
.tribe-events-venue-map {
	width: 100% !important;
	margin: 0 !important;
}
.tribe-events-venue-map>div, .tribe-events-venue-map>iframe {
	max-height: 300px !important;
}
#tribe-events-pg-template {
	padding: 0 !important;
	padding-top: -100px !important;
}
.tribe-events-event-image img {
	max-width: 100% !important;
	height: auto !important;
}
.tribe-events-schedule {
	margin: 0 !important;
	font-size: 15px !important;
}
.tribe-events-content p {
	font-size: 14px !important;
	line-height: 1.8 !important;
	font-family: "Times New Roman", "Yu Mincho", "游明朝", serif !important;
	color: #000 !important;
}
.tribe-events .tribe-events-c-top-bar__datepicker-container .dropdown-menu {
	min-width: auto !important;
	width: auto !important;
}

@media screen and (min-width: 960px) {
	.tribe-events-venue-map {
		margin: 50px auto 0 !important;
	}
	.tribe-events-venue-map>div, .tribe-events-venue-map>iframe {
		max-height: 350px !important;
	}
	.tribe-events-event-image img {
		max-width: 960px !important;
	}
}


/*=============
個別ページ
=============*/
#content {
	width: 100%;
	padding: 20px 20px 50px;
	margin-top: 50px;
}
#content.fixed, #content.schedule {
	margin-top: 0;
}
#content a.back {
	width: fit-content;
	color: #000;
	font-size: 15px;
	font-weight: 700;
	display: block;
	margin: 0 auto;
	text-align: center;
}
.static h3 {
	font-size: 16px;
	text-align: center;
	margin: 30px 0 20px;
}
.static h3.entry-title {
	text-align: left;
	padding: 10px 0;
	margin: 0;
}
.static h4 {
	font-size: 24px;
	text-align: center;
	margin: 70px 0 20px;
	font-weight: 700;
}
.fixed h4 {
	font-size: 16px;
	text-align: left;
	margin: 30px 0 15px;
	font-family:"メイリオ",Meiryo,sans-serif;
}
.static h5 {
	font-size: 16px;
	margin: 50px 0 5px;
}
.static p {
	font-size: 14px;
	line-height: 1.8;
}
.static p.date {
	font-size: 15px !important;
	color: #000 !important;
}
.static .page-content {
	padding: 10px 0 40px;
}

@media screen and (min-width: 960px) {
	#content {
    width: 960px;
    padding: 0;
    margin: 60px auto;
  }
	#content.schedule {
	margin-top: 60px;
}
	#content.page {
    margin: 100px auto 60px;
  }
	#content a.back {
	font-size: 20px;
	padding: 80px 0 40px;
  }
  #content a.back:hover {
	color: #636464;
    transition : all 1s ease 0s;
  }
	.static h3 {
		font-size: 20px;
		margin: 40px 0;
	}
	.static h3.entry-title {
		padding: 100px 0 10px;
		margin: 0;
	}
	.static h4 {
		font-size: 48px;
		margin: 40px 0 20px;
	}
	.fixed h4 {
		font-size: 20px;
		font-family:"メイリオ",Meiryo,sans-serif;
	}
	.static h5 {
		font-size: 20px;
		margin: 70px 0 15px;
	}
	.static .page-content {
		padding: 20px 0 0;
	}
	.schedule-section.static {
	padding: 45px 0 0;
}

}


/*=============
FORM
=============*/
.contact {
	margin-bottom: 60px !important;
}

.c-form__required {
	color: #ef8383;
}

input, textarea, select {
  padding: 10px 10px;
  border: 1px solid #cecece;
  background: #fff;
  border-radius: 5px;
  background-clip: padding-box;
  box-sizing: border-box;
  width: 100%;
}

textarea {
  height:100px;
}

.mw_wp_form .error {
	color: #ff0000 !important;
}

.btn {
  background-color: #000;
  padding: 12px 45px;
  margin-bottom: 30px;
  border: 1px solid #000;
  display: block;
  cursor: pointer;
  color: #fff;
}

.conf {
	margin-top: 15px;
}

.backBtn {
	background-color: #636464;
	border: 1px solid #636464;
}

@media screen and (min-width: 960px) {
	.contact {
		margin-bottom: 200px !important;
	}
	textarea {
		height:200px;
	}
	.btn {
		width: 50%;
		margin: 0 auto 40px;
		transition: .5s;
	}
	.btn:hover {
		opacity: 0.7;
	}
	.conf {
		margin-top: 20px;
	}
	.backBtn {
		margin-bottom: 60px;
	}
}


/*===================================================
SCF
====================================================*/
.scf_1 {
	font-family:"メイリオ",Meiryo,sans-serif;
	color: #fff;
	font-weight: bold;
	margin: 0 0 15px;
}
.status, .format, .involvement {
	float: left;
	padding: 2px 6px;
	margin: 0 5px 5px 0;
	font-size: 10px !important;
}
.status {
	background: #00a2ff;
	clear: both;
}
.format {
	background: #9ada0f;
}
.involvement {
	background: #e95dca;
}
.scf_2 .item {
	margin: 30px 0 10px;
}
.scf_2 .item span:nth-child(1) {
	font-family:"メイリオ",Meiryo,sans-serif;
	font-weight: bold;
}
.scf_2 .item a {
	border: none !important;
}
.scf_1.workslist {
	position: relative;
	top: 40px;
	left: 10px;
	z-index: 50;
	margin: -25px 0 0;
}
.scf_1.workslist .status, .scf_1.workslist .format, .scf_1.workslist .involvement {
	font-size: 9px !important;
}
@media screen and (min-width: 960px) {
	.scf_1 {
		margin: 0 0 20px;
	}
	.status, .format, .involvement {
		margin: 0 10px 10px 0;
		font-size: 14px !important;
	}
	.scf_1.workslist {
		top: 37px;
		margin: -27px 0 0;
	}
	.scf_1.workslist .status, .scf_1.workslist .format, .scf_1.workslist .involvement {
		font-size: 10px !important;
		margin: 0 5px 5px 0;
	}
}