/*------------------------------------------------------
	common
------------------------------------------------------*/
body,html{
	font-size					: 12px;
	text-align					: center;
	line-height					: 1.8;
}

@media(min-width: 768px) {
	body,html{
		font-size					: 16px;
	}
}


body{
	min-height					: 100vh;
	font-family					: 'M PLUS Rounded 1c', sans-serif;;
}

:root {
	--font-bold					: 800;
	--font-mid					: 400;
	--black						: #000;
	--white						: #fff;
	--yellow					: #FFE600;
	--pink						: #ffb1b9;
	--lightblack				: #585451;
	--navy						: #4c5888;
	--lavender					: #e6e9f4;
	--lightyellow				: #f0eedc;
	--sns_width					: 2.75rem;
}

img{
	max-width					: 100%;
	width						: 100%;
}

:root {
	--border_color_01			: var(--white);
	--border_color_02			: var(--lightblack);
	--key_color_01				: var(--navy);
	--key_color_02				: var(--lightyellow);
	--gc-width					: 960px;
}


:root{
	--bg-color_01				:#fffaf6;
}

a{
	text-decoration				: none;
	display						: block;
	color						:inherit;
}

.p-1{
	padding						: 1.6rem;
}

.pb-0{
	padding-bottom				: 0 !important;
}
h2{
	font-size					: 2.5rem;
	line-height					: 1.5;
	font-weight					: var(--font-bold);
}

h3{
	font-size					: 2rem;
	line-height					: 1.5;
	font-weight					: var(--font-bold);
}

h4{
	font-size					: 1.5rem;
	line-height					: 1.5;
	font-weight					: var(--font-bold);
}

h5{
	font-size					: 1.25rem;
}

p{
	line-height					: 1.8em;
	margin-bottom				: 0;
}

dd ul,
dd li{
	list-style					: disc;
}
dd ul{
padding-left: 2rem;
}
.container,
.container-ful{
	padding						: 0 0.5rem;
	margin						: 0 auto;
	width						: 100%;
}

.container{
	max-width					: var(--gc-width);
}

.contents-block{
	padding						: 5rem 1rem;
}

.contents-title{
	padding-bottom				: 1.5rem;
	letter-spacing				: 0.1rem;
	color						: var(--key_color_01);
}

.contents-title.underline{
	color						: var(--key_color_01);
}

.contents-title.underline span{
	padding-left				: 0.5rem;
	padding-right				: 0.5rem;
	border-bottom				: 0.25rem solid var(--key_color_02);
}

.contents-title .lg,
.contents-title .sm{
	display						: block;
}


.contents-title .sm{
	font-size					: 60%;
}
/*------------------------------------------------------
	btn-top
------------------------------------------------------*/
.btn-top{
	position					: fixed;
	bottom						: 8px;
	right						: 8px;
	z-index						: 1001;
	cursor						: pointer;
	transition					: all 1s;
	opacity						: 0;
}

.btn-top:before{
	content						: "";
	padding-top					: 54px;
	position					: relative;
	display						: block;
	overflow					: hidden;
	width						: 54px;
	height						: 0;
	background					: var(--key_color_02);
	border-radius				: 50%;
}

.btn-top:after {
	content						: "";
	margin-top					: -4px;
	position					: absolute;
	top							: 50%;
	left						: 17px;
	display						: block;
	width						: 19px;
	height						: 19px;
	border-Top					: solid 1px var(--key_color_01);
	border-right				: solid 1px var(--key_color_01);
	transform					: rotate(-45deg);
}

.btn-top:hover:before {
	opacity						: 0.8;
}


/*------------------------------------------------------
	nav
------------------------------------------------------*/
#nav{
	position					: relative;
	display						: flex;
	justify-content				: center;
	background-color			: var(--key_color_02);
	transition					: ease .5s;
}

#nav a{
	padding						: 1rem;
	position					: relative;
	letter-spacing				: 0.1rem;
	line-height					: 1.75;
	color						: var(--key_color_01);
	font-weight					: var(--font-bold);
}

#nav a span.sm{
	display						: block;
	font-size					: 70%;
}

#nav a:not(:first-child)::before {
	content						: "";
	margin-top					: -0.5vw;
	padding-top					: 1.2vw;
	position					: absolute;
	top							: 50%;
	left						: 0;
	width						: 2px;
	height						: 0;
	background					: rgba(255, 255, 255, .8);
}

/*------------------------------------------------------
news
------------------------------------------------------*/
 ul.news{
	list-style					: none;
	text-align					: left;
	margin-bottom				: 2rem;
}

 ul.news .date{
	width						: 10em;
	padding-right				: 1rem;
}


 ul.news li{
	position					: relative;
}

 ul.news li:before {
	content						: "";
	position					: absolute;
	bottom						: 0;
	left						: 0;
	width						: 100%;
	height						: 1px;
	background					: var(--key_color_02);
}


 ul.news li:first-child:after {
	content						: "";
	position					: absolute;
	top							: 0;
	left						: 0;
	width						: 100%;
	height						: 1px;
	background					: var(--key_color_02);
}

ul.news li.no_link,
ul.news li a{
	padding						: 1.5rem 0.5rem;
	padding-right				: 1.5rem;
}

ul.news li a::after {
	content						: "";
	margin-top					: -0.25rem;
	padding-top					: 0.5rem;
	position					: absolute;
	top							: 50%;
	right						: 1rem;
	display						: block;
	width						: 0.5rem;
	height						: 0;
	transform					: rotate(-45deg);
	border						: solid 1px var(--key_color_01);
	border-top					: none;
	border-left					: none;
	-webkit-transition			: 0.4s ease-in-out;
	-moz-transition				: 0.4s ease-in-out;
	-ms-transition				: 0.4s ease-in-out;
	-o-transition				: 0.4s ease-in-out;
	transition					: 0.4s ease-in-out;
}

ul.news li a:hover::after {
	right						: 0.5rem;
}




/*------------------------------------------------------
	btn
------------------------------------------------------*/
.btn{
	background					: var(--key_color_01);
	margin						: 0 auto;
	max-width					: 280px;
	width						: 100%;
	line-height					: 2.75;
	color						: var(--white);
	font-weight					: var(--font-bold);
	border-radius: 12px;
}

.btn:hover{
	opacity						: 0.8;
}


/*------------------------------------------------------
	sns
------------------------------------------------------*/
.sns-block{
	position					: relative;
	display						: flex;
	justify-content				: center;
	flex-wrap					: wrap;
}

.sns-block a{
	width						: 100%;
	max-width					: var(--sns_width);
	margin						: 1rem;
}

.sns-block a .fa-brands{
	font-size					: var(--sns_width);
	line-height					: 1;
}


/*------------------------------------------------------
flex-list
------------------------------------------------------*/
.flex-list{
	position					: relative;
	display						: flex;
	justify-content				: center;
	flex-wrap					: wrap;
	align-items					: flex-start;
}


/*------------------------------------------------------
cast
------------------------------------------------------*/
.cast{
	margin-left				: -1rem;
	margin-right			: -1rem;
}
.cast li{
	width					: 50%;
	padding					: 1rem;
}

.cast li .thumb-round{
	border-radius			: 50%;
	overflow				: hidden;
}

.cast li .thumb,
.cast li .thumb-round{
	width					: 80%;
	margin					: 0 auto;
}

.cast li .thumb-round2{
	border-radius			: 50%;
	overflow				: hidden;
}
.cast li .thumb,
.cast li .thumb-round2{
	width					: 60%;
	margin					: 0 auto;
}

.cast li .sns-block a{
	max-width					: 2rem;
	margin						: 0.5rem;
}

.cast li .sns-block a .fa-brands{
	font-size					: 2rem;
}


@media screen and (min-width: 768px) {
	.cast li {
		width					: 40%;
	}

	.cast li .sns-block a{
		margin						: 1rem;
	}
}

/*------------------------------------------------------
	decoration
------------------------------------------------------*/
.stripe {
	position					: relative;
	width						: 100%;
	background					: -webkit-repeating-linear-gradient(135deg, var(--border_color_01) 0px, var(--border_color_01) 2rem, var(--border_color_02) 2rem, var(--border_color_02) 4rem, var(--border_color_01) 4rem, var(--border_color_01) 6rem, var(--border_color_02) 6rem, var(--border_color_02) 8rem);
	background					: repeating-linear-gradient(135deg, var(--border_color_01) 0px, var(--border_color_01) 2rem, var(--border_color_02) 2rem, var(--border_color_02) 4rem, var(--border_color_01) 4rem, var(--border_color_01) 6rem, var(--border_color_02) 6rem, var(--border_color_02) 8rem);
}


/*------------------------------------------------------
	is-scroll
------------------------------------------------------*/
.is-scroll .scroll-fix {
	--tw-shadow					: 0 0.25rem 0.625rem rgba(0,0,0,.04);
	--tw-shadow-colored			: 0 0.25rem 0.625rem var(--tw-shadow-color);
	box-shadow					: var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow);
	position					: fixed;
	top							: 0;
	left						: 0;
	z-index						: 3;
	width						: 100%;
}

/*------------------------------------------------------
	map
------------------------------------------------------*/
.map-wrapper iframe {
	width						: 100%;
	height						: auto;
	aspect-ratio				: 16/9;
	transition					: 0.3s;
}



dl {
	display						: -webkit-box;
	display						: -ms-flexbox;
	display						: flex;
	-ms-flex-wrap				: wrap;
	flex-wrap					: wrap;
}

dl dt,
dl dd{
	-webkit-box-flex			: 100%;
	-ms-flex					: 100% 0 0px;
	flex						: 100% 0 0;
	padding						: 1rem;
	border-bottom				: 1px solid var(--key_color_02);
}

dl dt:first-child{
	border-top				: 1px solid var(--key_color_02);
}

dl dt{
	color						: var(--key_color_01);
	font-weight					: var(--font-bold);
}




@media(min-width: 768px) {
	dl dt {
		-webkit-box-flex			: 25%;
		-ms-flex					: 25% 0 0px;
		flex						: 25% 0 0;
	}
	
	dl dd {
		-webkit-box-flex			: 75%;
		-ms-flex					: 75% 0 0px;
		flex						: 75% 0 0;
		text-align					: left;
	}

	dl dt:first-child + dd{
		border-top				: 1px solid var(--key_color_02);
	}
}



/*------------------------------------------------------
	custom
------------------------------------------------------*/
/* #main_visual{
	//background					: rgb(100,91,187);
	//background					: linear-gradient(360deg, rgb(99, 91, 186) 12%, rgb(39, 83, 120) 100%);
	position					: relative;
	overflow					: hidden;
}

#main_visual:before{
	content						: "";
	position					: absolute;
	top							: -0.5rem;
	right						: -0.5rem;
	width						: calc(100% + 1rem);
	height						: calc(100% + 1rem);
	background-image			: url('../images/main_vis.png');
	background-size				: 105%;
	background-position			: center top;
	filter						: blur(0.5rem);
	z-index						: -1;
	display						: block;
} */

@media(min-width: 768px) {
	#main_visual img{
		margin						: 0 auto;
		max-width					: var(--gc-width);
	}
}

#content-03{
	background					: var(--bg-color_01);
}

#footer{
	background					: var(--key_color_01);
	color						: var(--key_color_02);
}

#footer .contents-block{
	padding-top					: 2.5rem;
	padding-bottom				: 2.5rem;
}

#main_visual a{
	padding						: 1.5rem;
}

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

.cast-name{
	padding						: 1rem 0;
}
.main_vi {
	margin-top: 60px;
}
/* #content-08 {
	margin-bottom: 60px;
} */