@charset "utf-8";

/* CSS INFORMATION -====================================================
File name : layout.css
Description : レイアウト用CSS
===================================================================== */

@media print {
	.image {
		display: none;
	}

	.gard img {
		display: none;
	}
}

/* ==========================================================
	共通
========================================================== */

/*メインビジュアル背景*/
.mv {
	background-image: url("../images/title_bg.jpg");

	/* 画像を繰り返さない */
	background-repeat: no-repeat;

	/* 画像の位置を中央にする */
	background-position: center;

	/* 要素のサイズに合わせて隙間なく縦横比を維持して広げる */
	background-size: cover;
	;
}

/*アクセントカラー（背景色）*/
.nav,
.ttl_h2:before,
.slick-arrow,
.slick-active button::before,
.popup_close {
	background-color: #dc0000;
}

/*アクセントカラー（文字色）*/
.ttl_h3,
.wrapper .txt_link,
.wrapper b.highlight,
.cast_name1 {
	font-weight: bold;
}

.ttl_h3_red {
	font-weight: 700;
	font-size: larger;
	text-align: center;
	font-family: "ヒラギノ明朝 ProN W3", "Hiragino Mincho ProN", "Yu Mincho", "游明朝", "MS P明朝", serif;
}

.ttl_h3_red2 {
	font-weight: 700;
	text-align: center;
	font-size: 1.5em;
	margin: 30px auto 30px;
	color: #e85e9c;
}

.ttl_h3_p {
	text-align: center;
	margin: 0 auto 10px;
}


.wrapper section:not(:last-child) {
	border-bottom: 1px solid #fff;
}

/* ==========================================================
	header
========================================================== */

/*メニューの幅(SP)
　※calc(### / 750 * 100%)の###部分を変更してください*/
.nav ul {
	width: calc(1200 / 750 * 100%);
	justify-content: space-around;
}

/*メニューの文字色*/
.nav a {
	color: #fff;
}

/*メニューの文字色：ホバー*/
/*テキストリンクの文字色：ホバー*/
.nav a:hover,
.txt_link:hover {
	color: #ffe553;
}

/*メニューの下線：ホバー*/
.nav a:hover:after {
	background-color: #ff9800;
}


/* ==========================================================
	コンテンツ
========================================================== */

/*コンテンツ外側の背景*/
#main {
	background: #000 url('../images/bg.png') repeat-y top center;
}

/*コンテンツ背景*/
.contents {
	color: #fff;
}

/*スライダーの矢印ボタン：ホバー*/
/*ポップアップのクローズボタン：ホバー*/
.slick-arrow:hover,
.popup_close:hover {
	background-color: #fff;
}


/*ポップアップのクローズボタン：ホバー*/
.popup_close:hover {
	border-color: #000;
}

.captxt {
	font-size: 120% !important;
	font-weight: 700;
	color: #ff6fac !important;
}

.scaptxt {
	font-size: 90% !important;
	font-weight: 700;
	color: #ff6fac !important;
}

.catch-txt {
	font-size: 2.4rem;
	text-align: left;
	font-weight: 700;
	line-height: 3.6rem;
	margin: 1rem;
	color: #fd3802;
}



.box {
	margin-bottom: 8rem;
}

.box:first-child {
	margin-top: 6rem;
}

.all {
	width: 691px;
	margin: 0 auto;
}


.bnr {
	width: 40%;
	margin: 0 auto;
}

h3 {
	clear: both;
}

@media screen and (max-width: 767px) {

	.all {
		width: 100%;
	}

	.bnr {
		width: 100%;
	}
}


/* 画像ガード */
.image {
	position: relative;
	display: inline-block;
	pointer-events: none;
}

.red {
	color: #dc0000;
	font-weight: bold;

}

.white {
	color: white;

}

.yellow {
	color: yellow;
}

.point01 {
	font-weight: bold;
	font-size: 1.5em;
	color: #dc0000;

}

.point02 {
	font-weight: 900;
	font-size: 1.4em;
	background-color: #dc0000;
	padding: 2px;
}

.point03 {
	color: #dc0000;
	font-weight: 900;
	font-size: 1.8em;
	border-bottom: 2px solid;
	padding: 2px;
}






@media screen and (min-width: 768px) {

	.back-btn {
		width: 450px;
	}

	.guestBox {
		display: flex;
	}

	.first {
		padding-top: 3rem;
	}

	.bnr_minogashi {
		width: 70%;
		margin: 0 auto;
	}

	.banner_list li {
		width: calc(215 / 964 * 100%);
		margin: 0 calc(5 / 964 * 100%) 0;
	}

	.gard img {
		pointer-events: none;
	}

	.image::after {
		content: "";
		width: 100%;
		height: 100%;
		display: block;
		background-color: transparent;
		position: absolute;

		top: 0;
		left: 0;
	}

	.point02 {
		font-size: 1.8em;
	}

	.is-sp {
		display: none !important;
	}
}


dt {
	font-weight: bold;
}

dd {
	margin-bottom: 0.5em;
}

.s-cmn-protect {
	position: relative;
}


.cast-label {
	color: #fff;
	border: 2px solid;
	font-weight: bold;
	font-size: larger;
	padding: 2px 10px;
	display: inline-block;
	margin-bottom: 1.5em;
}

.cast-label:not(:first-child) {
	margin-top: 1.5em;
}

.staff_box p {
	margin-bottom: 10px;
}

.staff_box ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.staff_box dl {
	display: flex;
	margin-bottom: 10px;
}

.staff_box dt {
	font-weight: bold;
	width: 14em;
	flex-shrink: 0;
	position: relative;
}

.staff_box dd {
	margin: 0;
	line-height: 1.6;
}

.staff_box dl:last-child {
	margin-bottom: 30px;
}


.rule {
	color: #fff;
	border: 2px solid;
	font-weight: bold;
	font-size: larger;
	padding: 2px 10px;
	display: inline-block;
}

/* リスト全体の余白リセット */
.rule_txt {
	list-style: none;
	padding-left: 0;
	margin: 1.5em 0;
}

/* 各項目の設定 */
.rule_txt li {
	position: relative;
	padding-left: 1.2em;
	/* ●の分の左余白 */
	margin-bottom: 0.4em;
	/* 行間の調整 */
	line-height: 1.6;
}

/* 箇条書きの「●」をCSSで表示 */
.rule_txt li::before {
	content: "●";
	position: absolute;
	left: 0;
	top: 3px;
	font-size: 0.8em;
	/* ●の大きさを調整（お好みで） */
}


@media (max-width: 767px) {


	.box {
		margin-bottom: 12rem;
	}

	.staff_box dl {
		display: block;
		margin-bottom: 20px;
	}
}

/*
.marquee-box {
	position: relative;
	width: 100%;
}

.marquee-track {
	position: relative;
	width: 100%;
	opacity: 0;
}

.marquee-track.slick-initialized.slick-slider {
	opacity: 1;
}

.marquee-track * {
	line-height: 1;
}

.marquee-track .slick-list {
	padding: 0!important;
}

.marquee-track .slick-track {
	transition-timing-function: linear!important;
}

.marquee-track .slick-slide {
	position: relative;
	width: 420px!important;
	padding: 0 5px;
}

.marquee-track .slick-slide img {
	display: block;
	width: 100%;
	height: 300px;
	object-fit: cover;
}

@media (max-width: 767px) {
	.marquee-track .slick-slide {
		width: 300px!important;
	}

	.marquee-track .slick-slide img {
		height: 200px;
	}
}*/

.cast-container {
	width: 100%;
}

/* ===================================
   ① テキスト部分の配置（PC時）
   =================================== */
.text-area {
	display: grid;
	grid-template-columns: 2fr 1fr;
	/* 左2人分 : 右1人分 */
	align-items: end;
	/* 文字を下揃えにして画像に近づける */
	padding-bottom: 8px;
	/* 画像との最小限の間隔 */
}



.member-names {
	display: flex;
}

.member-names p {
	width: 50%;
	/* 嶋佐さんと屋敷さんで半分ずつ分割 */
	font-size: 14px;
}

/* 影山さん枠 */
.single-group {
	text-align: center;
	font-size: 14px;
}

/* ===================================
   ② 画像部分の配置（PC時：正方形3つ・隙間なし）
   =================================== */
.image-area {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	/* 3列 */
	gap: 0;
	/* 隙間なし */
}

.image-area img {
	width: 100%;
	aspect-ratio: 1 / 1;
	/* 正方形 */
	object-fit: cover;
	display: block;
}

/* ===================================
   ③ スマホ表示（768px以下）
   =================================== */
@media (max-width: 768px) {

	/* 画像を「上2枚」「下1枚」に変更 */
	.image-area {
		grid-template-columns: repeat(2, 1fr);
	}

	/* 3枚目の画像（下段）を中央寄せ */
	.image-area img:nth-child(3) {
		grid-column: 1 / -1;
		width: 50%;
		margin: 0 auto;
	}
}

/* グリッドコンテナ（初期状態：スマホ表示） */
.member-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	/* 3列配置（自動で 3人・3人・2人 になります） */
	gap: 12px;
	/* スマホ時の隙間 */
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}

/* 各カードのスタイル */
.member-card {
	display: flex;
	flex-direction: column;
}

/* 画像の上の名前テキスト */
.member-name {
	text-align: center;
	font-size: 1em;
	font-weight: bold;
	padding: 6px;
}

/* 画像スタイル（正方形指定） */
.member-card img {
	width: 100%;
	aspect-ratio: 1 / 1;
	/* 正方形を維持 */
	object-fit: cover;
	/* 画像の比率を崩さず枠全体にフィット */
	display: block;
}

/* PC表示（画面幅 768px 以上） */
@media (min-width: 768px) {
	.member-grid {
		grid-template-columns: repeat(4, 1fr);
		/* 4列配置（4名×2行） */
		gap: 0;
		/* 隙間なし */
	}

	.member-name {
		padding: 8px;
	}
}

/* PC表示（デフォルト） */
.gallery {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	/* 3列横並び */
	gap: 0;
	/* 隙間なし */
	width: 100%;
}

.item {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

/* 名前テキスト部分の設定 */
.name-box {
	text-align: center;
	padding-bottom: 8px;
	min-height: 50px;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
}

.name-box p {
	margin: 0;
	font-size: 14px;
}

.name-box .group {
	font-size: 18px;
	letter-spacing: 2px;
}

/* 画像を正方形（1:1）にトリミング */
.img-wrap {
	width: 100%;
	aspect-ratio: 1 / 1;
	/* 正方形に固定 */
}

.img-wrap img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	/* 縦横比を崩さず正方形枠いっぱいに表示 */
	display: block;
}




/* スマホ表示（画面幅768px以下） */
@media (max-width: 767px) {


	.gallery {
		grid-template-columns: repeat(2, 1fr);
		/* 2列配置に変更 */
	}

	/* 3枚目の画像（下段）の設定 */
	.item:nth-child(3) {
		grid-column: 1 / -1;
		width: 50%;
		margin-top: 12px;
	}
}


/* ドットインジケーター（●）の配置とレイアウト */
#marquee01 .slick-dots {
    display: flex !important;
    justify-content: center;
    align-items: center;
    gap: 10px;            /* ●同士の間隔 */
    margin-top: 15px;      /* スライダー画像との間の余白 */
    padding: 0;
    list-style: none;
}

/* ボタンの基本スタイルリセット */
#marquee01 .slick-dots li button {
    font-size: 0;         /* テキスト（数字）を非表示にする */
    line-height: 0;
    display: block;
    width: 12px;          /* ●のサイズ */
    height: 12px;
    padding: 0;
    border-radius: 50%;
    background-color: #ccc; /* 選択されていない●の色 */
    border: none;
    outline: none;
    cursor: pointer;
    transition: background-color 0.3s ease;
}

/* アクティブ（現在表示中）の●のスタイル */
#marquee01 .slick-dots li.slick-active button {
    background-color: #ff0000; /* アクティブ時の色（赤色の例） */
}

.sns_link {
    display: inline-flex !important;
    align-items: center;
    gap: 30px;
    padding: 20px 60px;
    background-color: #ffffff;
    text-decoration: none;
    font-weight: bold;
}

.sns_icon {
  width: 20px!important;               /* アイコンの適切なサイズ */
  height: 20px!important;
  object-fit: contain;       /* 画像の比率を維持 */
}

@media (max-width: 767px) {

.sns_link {


    width: 100%;
    justify-content: center;
    padding: 18px 60px;
    gap: 40px;
}
}