/* ===========================
   ELEGANCE
=========================== */
*{
	margin:0;
	padding:0;
	box-sizing:border-box;
}
html{
	scroll-behavior:smooth;
}
body{
	font-family: "Shippori Mincho", serif;
	background:#111;
	color:#fff;
	line-height:1.8;
	overflow-x:hidden;
}
img{
	max-width:100%;
	display:block;
}
a{
	text-decoration:none;
	color:inherit;
}
.container{
	width:min(1180px,94%);
	margin:auto;
}

/*==========================
 Header
==========================*/
.header-info{
	display:flex;
	justify-content:flex-end;
	gap:25px;
	padding:8px 0 12px;
	font-size:14px;
	color:#ccc;
}

.header-info i{
	color:#d4af37;
	margin-right:5px;
}
.header{
	position:sticky;
	top:0;
	z-index:999;
	background:rgba(0,0,0,.9);
	backdrop-filter:blur(10px);
	border-bottom:1px solid rgba(212,175,55,.35);
}

.header-inner{
	height:70px;
	display:flex;
	justify-content:space-between;
	align-items:center;
}

.logo{
	font-family:"Cormorant Garamond",serif;
	font-size:46px;
	color:#d4af37;
	letter-spacing:6px;
}

@media(max-width:768px){
	.menu-button{
		display:block;
	}
	.header-info{
		display:none; /* ★追加：スマホでは営業時間などを非表示に */
	}
	.gnav{
		position:fixed;
		top:0;
		right:-100%;
		width:min(320px,85%);
		height:100dvh;
		padding:100px 30px 40px;
		background:#fff;
		flex-direction:column;
		gap:0;
		overflow-y:auto;
		z-index:1050;
		box-shadow:-15px 0 40px rgba(0,0,0,.15);
		transition:right .4s ease;
	}
	.gnav.is-open{
		right:0;
	}
	.gnav a{
		width:100%;
		padding:18px 0;
		border-bottom:1px solid #eee;
		flex-direction:row;
		justify-content:flex-start;
		gap:14px;
		color:#333 !important;
	}
	.gnav a span,
	.gnav a small{
		color:#333 !important;
	}
}

/*==========================
 gnav
==========================*/
.gnav{
	display:flex;
	justify-content:center;
	gap:40px;
}
.gnav a{
	position:relative;
	display:flex;
	flex-direction:column;
	align-items:center;
	justify-content:center;
	min-width:90px;
	padding:14px 0;
	color:#fff;
	text-decoration:none;
	transition:.3s;
}
.gnav a span{
	font-size:14px;
	font-weight:600;
	letter-spacing:3px;
	line-height:1;
}
.gnav a small{
	margin-top:5px;
	font-size:10px;
	letter-spacing:1px;
	color:#ffffff;
	line-height:1;
	transition:.3s;
}
.gnav a::after{
	content:"";
	position:absolute;
	left:50%;
	bottom:0;
	width:0;
	height:2px;
	background:#fae192;
	transform:translateX(-50%);
	transition:.3s;
}
.gnav a:hover{
	color:#fae192;
}
.gnav a:hover small{
	color:#efc640;
}
.gnav a:hover::after{
	width:100%;
}

/*==========================
 Hero
==========================*/
.hero{
	position:relative;
	height:700px;
	overflow:hidden;
}
.hero img{
	width:100%;
	height:100%;
	object-fit:cover;
	filter:brightness(.55);
}
.hero-text{
	position:absolute;
	left:8%;
	top:50%;
	transform:translateY(-50%);
}
.hero-text span{
	color:#ffffff;
	letter-spacing:5px;
	font-size:13px;
}
.hero-text h1{
	font-family:"Cormorant Garamond",serif;
	font-size:72px;
	font-weight:700;
	letter-spacing:6px;
	margin:15px 0;
	color:#ffffff;
	text-shadow:
		0 0 8px rgba(255,255,255,.2),
		0 2px 8px rgba(0,0,0,.6);
}
.hero-text p{
	color:#fff;
	font-size:22px;
}

/*==========================
 Section
==========================*/
section{
	padding:50px 0 20px;
}
section h2{
	font-family:"Cormorant Garamond",serif;
	font-size:46px;
	text-align:center;
	font-weight:700;
	background:linear-gradient(
		180deg,
		#fff8d6 0%,
		#f4d67a 25%,
		#d4af37 50%,
		#a67c00 75%,
		#f7e7a6 100%
	);
	-webkit-background-clip:text;
	-webkit-text-fill-color:transparent;
	background-clip:text;
	color:transparent;
}
p.sub {
	font-size: 12px;
	color: #999;
	text-align: center;
	margin-top:-10px;
	margin-bottom:60px;
}
p.sub::before {
	content: "-";
	margin-right: 5px;
}
p.sub::after {
	content: "-";
	margin-left: 5px;
}

/*==========================
 News
==========================*/
.news ul{
	max-width:900px;
	margin:auto;
	list-style:none;
}
.news li{
	padding:20px 0;
	border-bottom:1px solid #333;
}

/*==========================
 Responsive
==========================*/
@media(max-width:1100px){
	.cast-grid{
		grid-template-columns:repeat(2,1fr);
	}
}

@media(max-width:768px){
	.header-inner{
		flex-direction:column;
		height:auto;
		padding:20px 0;
	}
	.gnav{
		flex-wrap:wrap;
		justify-content:center;
		margin-top:20px;
	}
	.hero{
		height:500px;
	}
	.hero-text{
		left:30px;
	}
	.hero-text h1{
		font-size:54px;
	}
	.cast-grid{
		grid-template-columns:repeat(2,1fr);
		gap:15px;
	}
}

/*==========================
 Cast
==========================*/
.cast-grid{
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:25px;
}
.cast-card{
	background:#fff;
	border-radius:25px;
	overflow:hidden;
	box-shadow:0 10px 25px rgba(255,79,160,.15);
	text-align:center;
	transition:.3s;
}
.cast-card:hover{
	transform:translateY(-8px);
}
.cast-card img{
	width:100%;
	aspect-ratio:2/3;
	object-fit:cover;
}
.cast-card h3{
	margin-top:18px;
	color:#ff4fa0;
	font-size:26px;
}
.cast-card p{
	color:#888;
	font-size:14px;
}
.cast-btn{
	display:block;
	width:80%;
	margin:18px auto 20px;
	padding:12px;
	border-radius:40px;
	background:#d4af37;
	color:#5a3e1b;
	font-weight:bold;
	text-align:center;
	letter-spacing:.05em;
	box-shadow:0 4px 10px rgba(0,0,0,.3);
	transition:.3s;
}
.cast-btn:hover{
	background:#e8c874;
	transform:scale(1.05);
	box-shadow:0 6px 14px rgba(0,0,0,.4);
}
@media(max-width:768px){
	.cast-grid{
		grid-template-columns:repeat(2,1fr);
	}
}

/* ===========================
   Schedule
=========================== */
.schedule-wrap{
	overflow-x:auto;
}
.schedule-table{
	width:100%;
	border-collapse:collapse;
	min-width:420px;
}

.schedule-table th,
.schedule-table td{
	padding:14px;
	border:1px solid #ddd;
	text-align:center;
	white-space:nowrap;
}
.cast-col{
	width:220px;
}
.cast-info{
	text-align:left !important;
}
.cast-info a{
	display:flex;
	flex-direction:column;
	align-items:center;
	gap:8px;
	text-decoration:none;
	color:#fff;
}
.schedule-thumb{
	width:90px;
	height:120px;
	object-fit:cover;
	border-radius:6px;
}
.schedule-name{
	font-size:14px;
	font-weight:700;
	text-align:center;
}
.time{
	color:#fff;
	font-weight:bold;
	line-height:1.7;
}
.memo{
	color:#ffcc66;
	font-weight:bold;
}
.none{
	color:#666;
}

@media(max-width:900px){

	.profile-schedule{
		margin-top:40px;
	}

	.schedule-table{
		min-width:380px;
	}

	.schedule-table th,
	.schedule-table td{
		padding:10px 8px;
		font-size:14px;
	}
}

/* ===========================
   Profile
=========================== */
.profile-kana{
	text-align:center;
	margin-bottom:40px;
	color:#999;
}
.profile-main{
	display:grid;
	grid-template-columns:500px 1fr;
	gap:50px;
	align-items:flex-start;
}
.profile-gallery img{
	width:100%;
	display:block;
}
.profile-swiper{
	margin-bottom:15px;
}
.profile-thumb .swiper-slide{
	opacity:.5;
	cursor:pointer;
}
.profile-thumb .swiper-slide-thumb-active{
	opacity:1;
}
.profile-table{
	width:100%;
	border-collapse:collapse;
	margin-bottom:30px;
}
.profile-table th{
	width:90px;
	background:#222;
	color:#d4af37;
}
.profile-table th,
.profile-table td{
	border:1px solid #333;
	padding:12px;
}
.profile-tags{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
}
.profile-tags span{
	background:#d4af37;
	color:#111;
	padding:6px 14px;
	border-radius:30px;
	font-size:13px;
	font-weight:bold;
}
.profile-comment{
	margin-top:60px;
}
.profile-comment h3,
.profile-schedule h3{
	font-size:28px;
	color:#d4af37;
	text-align:center;
	margin-bottom:30px;
	font-family:'Cormorant Garamond',serif;
}
.profile-text{
	max-width:900px;
	margin:0 auto;
	line-height:2;
	font-size:15px;
}
.profile-schedule{
	margin-top:60px;
	overflow-x:auto;
	-webkit-overflow-scrolling:touch;
}
.profile-nav{
	margin-top:70px;
	display:flex;
	justify-content:space-between;
	align-items:center;
}
.profile-nav a{
	text-decoration:none;
	color:#fff;
	background:#222;
	padding:14px 24px;
	transition:.3s;
}
.profile-nav a:hover{
	background:#d4af37;
	color:#111;
}

/*=========================
  Profile Gallery
=========================*/
.profile-gallery{
	position:sticky;
	top:20px;
}
.profile-swiper{
	border-radius:10px;
	overflow:hidden;
	margin-bottom:12px;
}
.profile-swiper img{
	display:block;
	width:100%;
	aspect-ratio:3 / 4;
	object-fit:cover;
}
.profile-thumb img{
	width:100%;
	aspect-ratio:3 / 4;
	object-fit:cover;
	cursor:pointer;
}
.profile-thumb .swiper-slide{
	opacity:.45;
	transition:.3s;
}
.profile-thumb .swiper-slide-thumb-active{
	opacity:1;
}
.profile-thumb .swiper-slide:hover{
	opacity:1;
}

/*=========================
  Schedule
=========================*/
.schedule-table td{
	font-weight:600;
}
.schedule-memo{
	color:#d4af37;
}

/*=========================
  Responsive
=========================*/
@media(max-width:900px){

    .profile-main,
    .profile-comment,
    .profile-schedule,
    .profile-nav{
        display:block !important;
        visibility:visible !important;
        opacity:1 !important;
    }

}

.today-status{
	text-align:center;
	margin-bottom:35px;
}

.status-on{
	display:inline-block;
	padding:8px 18px;
	background:#d4af37;
	color:#111;
	font-weight:bold;
	border-radius:30px;
}

.status-off{
	display:inline-block;
	padding:8px 18px;
	background:#444;
	color:#fff;
	border-radius:30px;
}

.status-memo{
	display:inline-block;
	padding:8px 18px;
	background:#2563eb;
	color:#fff;
	border-radius:30px;
}

/*=========================
 Image Modal
=========================*/
.image-modal{
	position:fixed;
	inset:0;
	background:rgba(0,0,0,.9);
	display:none;
	justify-content:center;
	align-items:center;
	z-index:9999;
}
.image-modal.show{
	display:flex;
}
.image-modal img{
	max-width:90%;
	max-height:90%;
	border-radius:8px;
}
.image-close{
	position:absolute;
	top:20px;
	right:30px;
	font-size:48px;
	color:#fff;
	cursor:pointer;
	line-height:1;
}

/*=========================
Ranking
=========================*/
.ranking-tabs{
	display:flex;
	flex-wrap:wrap;
	gap:10px;
	justify-content:center;
	margin-bottom:40px;
}
.ranking-tab{
	padding:10px 22px;
	border:1px solid rgba(212,175,55,.4);
	color:#fff;
	text-decoration:none;
	font-size:14px;
	letter-spacing:1px;
	transition:.3s;
}
.ranking-tab:hover{
	background:rgba(212,175,55,.15);
}
.ranking-tab.active{
	background:#d4af37;
	color:#111;
	border-color:#d4af37;
}
.ranking-grid .cast-card{
	position:relative;
}
.rank-badge{
	position:absolute;
	top:12px;
	left:12px;
	background:#d4af37;
	color:#111;
	font-family:'Cormorant Garamond',serif;
	font-size:20px;
	font-weight:700;
	padding:4px 14px;
	border-radius:4px;
	z-index:2;
	letter-spacing:1px;
}
.ranking-empty-msg{
	text-align:center;
	color:#999;
}

/*=========================================
 CROWN
=========================================*/
.rank-card-1::before{
	content:"\f521";
	font-family:"Font Awesome 6 Free";
	font-weight:900;
	position:absolute;
	top:-5px;
	right:15px;
	font-size:32px;
	color:#FFD700; /* Gold */
	z-index:20;
}

.rank-card-2::before{
	content:"\f5a2";
	font-family:"Font Awesome 6 Free";
	font-weight:900;
	position:absolute;
	top:-5px;
	right:15px;
	font-size:30px;
	color:#C0C0C0; /* Silver */
	z-index:20;
}

.rank-card-3::before{
	content:"\f5a2";
	font-family:"Font Awesome 6 Free";
	font-weight:900;
	position:absolute;
	top:-5px;
	right:15px;
	font-size:30px;
	color:#CD7F32; /* Bronze */
	z-index:20;
}

/*=========================================
 NEWS
=========================================*/
.news-list{
	border-top:1px solid rgba(255,255,255,.12);
}
.news-item{
	border-bottom:1px solid rgba(255,255,255,.12);
}
.news-header{
	cursor:pointer;
	padding:18px 20px;
	transition:.25s;
}
.news-header:hover{
	background:rgba(255,255,255,.04);
}
.news-left{
	display:flex;
	align-items:center;
	gap:15px;
}
.news-header i{
	width:18px;
	color:#d4af37;
	transition:.3s;
}
.news-item.active .news-header i{
	transform:rotate(90deg);
}
.news-date{
	color:#d4af37;
	font-size:14px;
	min-width:95px;
}
.news-title{
	font-size:16px;
	font-weight:500;
	color:#ccc;
}
.news-body{
	max-height:0;
	overflow:hidden;
	opacity:0;
	transition:
	max-height .35s ease,
	opacity .25s ease,
	padding .35s ease;
	padding:0 53px;
	line-height:1.9;
	color:#ccc;
}
.news-item.active .news-body{
	max-height:500px;
	opacity:1;
	padding:0 53px 22px;
}
@media(max-width:768px){
	.news-header{
		padding:16px;
	}
	.news-left{
		align-items:flex-start;
		gap:10px;
	}
	.news-date{
		min-width:70px;
		font-size:13px;
	}
	.news-title{
		font-size:15px;
	}
	.news-body{
		padding:0 26px;
	}
	.news-item.active .news-body{
		padding:0 26px 18px;
	}
}

/*=========================================
 SYSTEM
=========================================*/
.system-content{
	margin-bottom:60px;
}
.system-content h3,
.system-notice h3{
	margin:0;
	font-size:24px;
	color:#d4af37;
}
.system-content table{
	width:100%;
	border-collapse:collapse;
	margin:20px 0;
}
.system-content th,
.system-content td{
	padding:15px;
	border:1px solid rgba(255,255,255,.12);
}
.system-content th{
	width:220px;
	background:#151515;
	color:#d4af37;
}
.system-content td{
	background:#111;
}
.system-content ul,
.system-notice ul{
	margin:20px 0;
	padding-left:20px;
}
.system-content li,
.system-notice li{
	margin-bottom:10px;
}
.system-content hr{
	margin:40px 0;
	border:none;
	border-top:1px solid rgba(255,255,255,.12);
}
.system-notice{
	margin-top:70px;
	padding:30px;
	border:1px solid rgba(255,255,255,.12);
	background:#111;
	border-radius:10px;
}

/*=========================================
 ACCESS
=========================================*/
.access-map{
	margin:50px 0;
	border-radius:10px;
	overflow:hidden;
}
.access-map iframe{
	width:100%;
	height:450px;
	border:0;
}
.access-info{
	margin-bottom:50px;
}
.access-info table{
	width:100%;
	border-collapse:collapse;
}
.access-info th,
.access-info td{
	padding:18px 20px;
	border:1px solid rgba(255,255,255,.12);
}
.access-info th{
	width:220px;
	background:#1b1b1b;
	color:#d4af37;
	text-align:center;
}
.access-info td{
	background:#111;
}
.access-content{
	margin-top:50px;
}
.access-content h3{
	margin-bottom:20px;
	color:#d4af37;
}
.access-content p{
	line-height:2;
}
.access-content ul{
	padding-left:20px;
}
.access-content li{
	margin-bottom:10px;
}

/*=========================================
 FOOTER
=========================================*/
footer{
	background:#000;
	padding:40px 0;
	border-top:1px solid rgba(212,175,55,.2);
}
.footer-nav{
	display:flex;
	justify-content:center;
	flex-wrap:wrap;
	gap:30px;
	margin-bottom:20px;
}
.footer-nav a{
	color:#eee;
	text-decoration:none;
	font-size:15px;
	letter-spacing:2px;
	transition:.3s;
}
.footer-nav a:hover{
	color:#d4af37;
}
footer h2{
	font-family:"Cormorant Garamond",serif;
	font-size:42px;
	text-align:center;
	margin-bottom:0px;
	color:#fff;
}
footer span{ font-size:0.8em; }
.footer-catch{
	text-align:center;
	color:#999;
	margin-bottom:15px;
}
footer .container img{
    display:block;
    margin:auto;
    max-width:200px;
    height:auto;
}
.footer-sns{
	margin:20px 0;
	text-align:center;
}
.footer-sns a{
	display:inline-flex;
	align-items:center;
	justify-content:center;
	width:44px;
	height:44px;
	margin:0 8px;
	font-size:24px;
	color:#eee;
	text-decoration:none;
	transition:.3s;
}
.footer-sns a:hover{
	color:#fff;
	transform:translateY(-2px);
}
.footer-address{
	margin:15px 0;
	color:#bbb;
	font-size:14px;
	line-height:1.8;
	text-align:center;
}

.footer-address i{
	color:#d4af37;
	margin-right:6px;
}
.copyright{
	text-align:center;
	color:#666;
	font-size:0.9em;;
	letter-spacing:1px;
}

/* ==========================
   Reservation Form
========================== */
.reservation-form{
	max-width:800px;
	margin:50px auto;
	padding:40px;
	background:#111;
	border:1px solid rgba(212,175,55,.3);
	border-radius:12px;
	box-shadow:0 15px 40px rgba(0,0,0,.35);
}
.form-group{
	margin-bottom:28px;
}
.form-row{
	display:flex;
	gap:20px;
}
.form-row .form-group{
	flex:1;
	margin-bottom:28px;
}
.form-group label{
	display:flex;
	align-items:center;
	gap:10px;
	font-weight:600;
	margin-bottom:10px;
	color:#fff;
	font-size:15px;
}
.required{
	display:inline-block;
	padding:2px 8px;
	background:#c62828;
	color:#fff;
	font-size:11px;
	border-radius:20px;
	font-weight:700;
}
.reservation-form input,
.reservation-form select,
.reservation-form textarea{
	width:100%;
	padding:14px 16px;
	font-size:15px;
	color:#fff;
	background:#1b1b1b;
	border:1px solid #444;
	border-radius:8px;
	box-sizing:border-box;
	transition:.25s;
}
.reservation-form textarea{
	resize:vertical;
	min-height:160px;
}
.reservation-form input:focus,
.reservation-form select:focus,
.reservation-form textarea:focus{
	outline:none;
	border-color:#d4af37;
	box-shadow:0 0 0 3px rgba(212,175,55,.15);
}
.complete-box{
	width:100%;
	max-width:500px;
	margin:auto;
	padding:30px;
	box-sizing:border-box;
}
.captcha-image{
	display:block;
	margin-bottom:12px;
	border-radius:6px;
	border:1px solid #444;
}
.submit-btn{
	display:block;
	width:100%;
	padding:18px;
	font-size:18px;
	font-weight:bold;
	color:#111;
	background:linear-gradient(135deg,#fffbe6,#d4af37,#fffbe6);
	border:none;
	border-radius:8px;
	cursor:pointer;
	transition:.3s;
}
.submit-btn:hover{
	transform:translateY(-2px);
	box-shadow:0 12px 25px rgba(212,175,55,.35);
}
.error-message{
	margin-bottom:25px;
	padding:16px;
	background:#5b1111;
	border-left:4px solid #ff5252;
	color:#fff;
	border-radius:6px;
}
.captcha-box{
	display:flex;
	align-items:center;
	gap:15px;
	flex-wrap:wrap;
}
.captcha-box input{
	flex:1;
	min-width:180px;
}

/*==========================
 Contact
==========================*/
.page-title{
	text-align:center;
	margin-bottom:20px;
}
.page-title span{
	display:block;
	font-family:"Cormorant Garamond",serif;
	font-size:16px;
	letter-spacing:5px;
	color:#d4af37;
	margin-bottom:10px;
}
.contact-page h1{
	margin:0;
	text-align:center;
}
.contact-lead{
	max-width:700px;
	margin:0 auto 50px;
	text-align:center;
	color:#bbb;
	line-height:2;
	font-size:15px;
}
.contact-page textarea{
	min-height:220px;
}

/*==========================
page
==========================*/
.page {
	padding: 20px 0;
	background: #111;
}
.page h2 {
	text-align:center;
	color:#d4af37;
	font-size:40px;
	margin:0;
	font-family:'Cormorant Garamond',serif;
}
.page-sub {
	font-size: 12px;
	color: #999;
	text-align: center;
	margin: -10px 0 30px;
}
.page-sub::before {
	content: "-";
	margin-right: 5px;
}
.page-sub::after {
	content: "-";
	margin-left: 5px;
}

/*==================================================
Age Check
==================================================*/
.age-box {
	position: relative;
	z-index: 1;
	/* 既存のage-boxのスタイルはそのまま */
}
.age-overlay::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.7); /* 数値を上げるほど暗く＝画像が薄く見える */
}
.age-box{
	width:100%;
	max-width:600px;
	background:#111;
	border:1px solid rgba(212,175,55,.4);
	border-radius:16px;
	padding:50px;
	text-align:center;
	box-shadow:0 25px 60px rgba(0,0,0,.5);
}
.age-box h2{
	font-family:"Cormorant Garamond",serif;
	font-size:54px;
	color:#d4af37;
	margin-bottom:25px;
	letter-spacing:2px;
}
.age-title{
	font-size:24px;
	font-weight:bold;
	color:#fff;
	line-height:1.8;
	margin-bottom:20px;
}
.age-text{
	color:#bbb;
	line-height:2;
	margin-bottom:40px;
}
.age-form{
	display:flex;
	justify-content:center;
	gap:20px;
	flex-wrap:wrap;
}
.age-btn{
	width:220px;
	padding:16px;
	border:none;
	border-radius:8px;
	font-size:17px;
	font-weight:bold;
	cursor:pointer;
	transition:.25s;
}
.age-yes{
	background:#d4af37;
	color:#111;
}
.age-yes:hover{
	transform:translateY(-2px);
	box-shadow:0 10px 25px rgba(212,175,55,.35);
}
.age-no{
	background:#444;
	color:#fff;
}
.age-no:hover{
	background:#555;
}
@media(max-width:768px){
	.age-box{
		padding:35px 25px;
	}
	.age-box h2{
		font-size:42px;
	}
	.age-title{
		font-size:20px;
	}
	.age-btn{
		width:100%;
	}
}
.age-link-area{
	padding:40px 0;
	background:#000;
	text-align:center;
}

/*==================================================
PageTop
==================================================*/
#pageTop{
	position:fixed;
	right:20px;
	bottom:20px;
	width:50px;
	height:50px;
	display:flex;
	align-items:center;
	justify-content:center;
	background:#eee;
	color:#111;
	border-radius:50%;
	font-size:20px;
	text-decoration:none;
	box-shadow:0 4px 12px rgba(0,0,0,.3);

	opacity:0;
	visibility:hidden;
	transform:translateY(20px);
	transition:.3s;
	z-index:999;
}

#pageTop.show{
	opacity:1;
	visibility:visible;
	transform:translateY(0);
}

#pageTop:hover{
	background:#fff;
	color:#111;
}

/*==================================================
ハンバーガーボタン
==================================================*/
.menu-button{
	display:none;
	width:48px;
	height:48px;
	padding:0;
	border:0;
	border-radius:8px;
	background:#333;
	cursor:pointer;
	position:fixed;   /* ★固定位置に変更 */
	top:16px;
	right:16px;
	z-index:1100;
}
.menu-button span{
	position:absolute;
	left:13px;
	width:22px;
	height:2px;
	background:#fff;
	transition:.3s;
}
.menu-button span:nth-child(1){ top:16px; }
.menu-button span:nth-child(2){ top:23px; }
.menu-button span:nth-child(3){ top:30px; }

.menu-button.is-active span:nth-child(1){
	top:23px;
	transform:rotate(45deg);
}
.menu-button.is-active span:nth-child(2){
	opacity:0;
}
.menu-button.is-active span:nth-child(3){
	top:23px;
	transform:rotate(-45deg);
}

/*==================================================
オーバーレイ
==================================================*/
.menu-overlay{
	visibility:hidden;
	opacity:0;
	position:fixed;
	inset:0;
	background:rgba(8,25,47,.55);
	z-index:900;
	transition:.3s;
}
.menu-overlay.is-visible{
	visibility:visible;
	opacity:1;
}
body.menu-open{
	overflow:hidden;
}

/*==================================================
スマホ表示（ブレークポイントは適宜調整）
==================================================*/
@media(max-width:768px){
	.menu-button{
		display:block;
	}
	.header-info{
		display:none;
	}
	.gnav{
		position:fixed;
		top:0;
		right:-100%;
		width:min(320px,85%);
		height:100dvh;
		padding:100px 30px 40px;
		background:#000;              /* ★黒背景に変更 */
		flex-direction:column;
		gap:0;
		overflow-y:auto;
		z-index:1050;
		box-shadow:-15px 0 40px rgba(0,0,0,.4);
		transition:right .4s ease;
	}
	.gnav.is-open{
		right:0;
	}
	.gnav a{
		width:100%;
		padding:18px 0;
		border-bottom:1px solid rgba(255,255,255,.15);  /* ★区切り線も白系に */
		flex-direction:row;
		justify-content:flex-start;
		gap:14px;
		color:#fff !important;    /* ★文字色を白に変更 */
	}
	.gnav a span,
	.gnav a small{
		color:#fff !important;    /* ★文字色を白に変更 */
	}
}


/*==========================
 Cast
==========================*/
.cast-grid{
	display:grid;
	grid-template-columns:repeat(4,1fr);
	gap:25px;
}
.cast-card{
	background:#222;
	border-radius:25px;
	overflow:hidden;
	box-shadow:0 10px 25px rgba(255,79,160,.15);
	text-align:center;
	transition:.3s;
}
.cast-card:hover{
	transform:translateY(-8px);
}
.cast-card img{
	width:100%;
	aspect-ratio:2/3;
	object-fit:cover;
}
.cast-card h3{
	margin-top:18px;
	color:#fff;
	font-size:26px;
}
.cast-card p{
	color:#888;
	font-size:14px;
}
.cast-btn{
	display:block;
	width:80%;
	margin:18px auto 20px;
	padding:12px;
	border-radius:40px;
	background:#d4af37;
	color:#5a3e1b;
	font-weight:bold;
	text-align:center;
	letter-spacing:.05em;
	box-shadow:0 4px 10px rgba(0,0,0,.3);
	transition:.3s;
}
.cast-btn:hover{
	background:#e8c874;
	transform:scale(1.05);
	box-shadow:0 6px 14px rgba(0,0,0,.4);
}
@media(max-width:768px){
	.cast-grid{
		grid-template-columns:repeat(2,1fr);
	}
}

/*==================================================
 NEW FACE
==================================================*/
.newface{
	background:#181818;
}

.newface-wrap{
	display:grid;
	grid-template-columns:235px 1fr;
	gap:70px;
	align-items:start;
	max-width:900px;
	margin:0 auto;
}

.newface-photo{
	width:235px;
}

.newface-photo img{
	display:block;
	width:235px;
	aspect-ratio:2/3;
	object-fit:cover;
	transition:.5s;
}

.newface-photo a:hover img{
	opacity:.8;
}

.newface-info{
	text-align:left;
}

.newface-label{
	display:block;
	margin-bottom:8px;
	color:#d4af37;
	font-size:18px;
	font-weight:bold;
	letter-spacing:2px;
}

.newface-info h3{
	margin:0 0 15px;
	color:#fff;
	font-size:22px;
	text-align:left;
}

.newface-info p{
	margin:0 0 25px;
	color:#bbb;
	font-size:14px;
	line-height:2;
	text-align:left;
}

.newface-btn{
	display:inline-block;
	padding:10px 20px;
	border:1px solid #d4af37;
	color:#d4af37;
	font-size:13px;
	transition:.3s;
}

.newface-btn i{
	margin-left:10px;
}

.newface-btn:hover{
	background:#d4af37;
	color:#111;
}


/* スマホ */
@media(max-width:768px){

	.newface-wrap{
		display:grid;
		grid-template-columns:40% 1fr;
		gap:20px;
		align-items:start;
	}

	.newface-photo{
		width:100%;
	}

	.newface-photo img{
		width:100%;
	}

	.newface-info{
		align-self:start;
		text-align:left;
	}

	.newface-info h3{
		font-size:18px;
	}

	.newface-info p{
		font-size:12px;
		line-height:1.7;
		margin-bottom:15px;
	}

	.newface-btn{
		padding:8px 10px;
		font-size:11px;
	}
}
