@charset "utf-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;500;600;700&display=swap');
html { scroll-behavior: smooth; }
body {
	font-family: 'Noto Sans JP', sans-serif;
	font-size: 14px;
	line-height: 1.75;
	color: #6c5442;
	background: #fff;
	margin: 0;
	padding: 0;
	position: relative;
}

* {
	font-size: 1em;
	box-sizing: border-box;
	background-size: contain;
}

html, body, p, h1, h2, h3, h4, h5, ul, ol, li, dd, dl, dt, div {
	padding: 0;
	margin: 0;
	font-weight: 500;
}

img {
	border: 0;
	-webkit-backface-visibility: hidden;
	backface-visibility: hidden;
	vertical-align:top;
	max-width: 100%;
}

html {
	height: 100%;
	scroll-padding-top: 5em;
}
li { list-style-type: none; }
a {
	color: inherit;
	text-decoration: none;
}
a.underline,
.underline a { text-decoration: underline; }
.none { display: none; }
.sp { display: none; }
.pc { display: block; }

.tcenter { text-align: center; }
.tright { text-align: right; }

/* 選択色 */
::selection {
	background: #eb691d;
	color: #fff;
}

::-moz-selection {
	background: #eb691d;
	color: #fff;
}

/* YouTube 埋め込み */
.YT {
	position: relative;
	width: 100%;
	padding-top: 56.25%;
}
.YT iframe {
	position: absolute;
	top: 0;
	right: 0;
	width: 100% !important;
	height: 100% !important;
}

body.page-chara section.character { padding-top: 7em; }
body.page-news { padding-top: 7em; }

/* header */
ul.menu {
	position: fixed;
	top: 2em;
	left: 50%;
	width: 100%;
	max-width: 1100px;
	margin-left: -550px;
	display: block;
	padding: 1em;
	background: rgba(235,105,29,0.8);
	border-radius: 2em;
	text-align: center;
	z-index: 999;
}
ul.menu li {
	padding: 0 1.5em;
	display: inline-block;
}
ul.menu li a {
	cursor: pointer;
	position: relative;
	display: inline-block;
}
ul.menu li a::before {
	content: "";
	position: absolute;
	top: -2.25em;
	left: 50%;
	transform: translateX(-100%);
	width: 40px;
	height: 40px;
	background: url("../images/common/menu_cat.svg") no-repeat center/contain;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s, transform 0.3s;
}

ul.menu li.on a::before,
ul.menu li a:hover::before {
	opacity: 1;
	transform: translateX(-50%);
}
ul.menu li img { height: 1.5em; }

ul.menu li.menu { display: none; }
ul.menu li.menu-trigger img { cursor: pointer; }

nav {
	width: 100%;
	height: 100%;
	background-color: rgba(0235,105,29, 0.9);
	position: fixed;
	top: 0;
	left: 0;
	text-align: center;
	color: #fff;
	z-index: 99;
	transform: translate(0, -110vh);
	opacity: 1;
	transition: .5s all;
	overflow: auto;
}
nav.open {
	opacity: 0;
	transform: translateZ(0);
	transition: 0s all;
}

/* Main */
main {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
	overflow: hidden;
}

h2.ttl {
	padding: 2em 0 4em;
	text-align: center;
}

/* NEWS */
ul.news {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto;
	padding: 0;
}
ul.news li {
	padding: 1em 1em 1em 0;
	border-bottom: #999 solid 1px;
	color: #000;
	font-size: 1.25em;
}
ul.news li:last-child { border: 0; }
ul.news li p {
	display: inline-block;
	vertical-align: middle;
	width: 5em;
	text-align: center;
}
ul.news li p:last-child {
	width: calc(100% - 5em);
	text-align: left;
}
ul.news li p:first-child {
	text-align: left;
	color: #eb691d;
	padding-left: 1em;
}
ul.news li p:first-child span {
	display: block;
	width: 100%;
	font-size: 0.75em;
	color: #eb691d;
}
ul.news li a {
	color: #000;
	text-decoration: underline;
}
ul.news li a:hover { color: #eb691d; }
ul.news li.viewAll p:last-child {
	text-align: right;
}

/* あらすじ */
section.arasuji {
	width: 100%;
	max-width: 1200px;
	margin: 0 auto 1em;
	background: url("../images/common/bg_arasuji.jpg") no-repeat center bottom/contain;
	text-align: center;
	padding: 0 2em 20em;
}


/* ディスコグラフィ */
section.discography {
	position: relative;
	width: 100%;
	margin: 0 auto;
	background: url("../images/common/bg_disco.jpg") repeat top center;
	text-align: center;
	padding: 2em 2em 5em;
	overflow: hidden; /* 疑似要素がはみ出すのを防止 */
}

section.discography::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 2em;
	background: url("../images/common/bg_disco_tp.jpg") repeat-x top center;
	z-index: 1;
}

section.discography::after {
	content: "";
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 2em;
	background: url("../images/common/bg_disco_ft.jpg") repeat-x bottom center;
	z-index: 1;
}
.discoBox {
	position: relative;
	width: 100%;
	max-width: 1100px;
	margin: 0 auto;
	background: rgba(255,255,255,0.8);
	border-radius: 1em;
	padding: 2em;
}
.discoBox::before {
	content: "";
	position: absolute;
	bottom: -30px;
	left: -80px;
	width: 160px;
	height: 337px;
	background: url("../images/disco/disco_green.png") no-repeat top center;
	z-index: 1;
}
.discoBox::after {
	content: "";
	position: absolute;
	bottom: -5px;
	right: 20px;
	width: 80px;
	height: 68px;
	background: url("../images/disco/disco_cat.png") no-repeat top center;
	z-index: 1;
}

section.discography h3 {
	font-size: 2em;
	font-weight: bold;
}
.discoList { margin-top: 2em; }
.discoList li {
	padding: 1em;
	display: inline-block;
}

/* キャラクター */
section.character {
	position: relative;
	width: 100%;
	margin: 0 auto 1em;
	background: url("../images/common/bg_chara.jpg") no-repeat top center;
	background-size: 100% auto;
	text-align: center;
	padding: 2em 0 4em;
	overflow: hidden;
}
section.character::before {
	content: "";
	position: absolute;
	bottom: 0;
	right: 0;
	width: 407px;
	height: 931px;
	background: url("../images/common/bg_tree.png") repeat-x top center;
	z-index: 0;
}

ul.charaList {
	position: relative;
	width: 100%;
	margin: 0 auto 1em;
	background: url("../images/chara/chara_rope.png") no-repeat top center;
	background-size: 100% auto;
	text-align: center;
	padding: 2em 0;
}
ul.charaList li {
	position: relative;
	margin: 6.5vw 0.5em 0;
	padding: 1em;
	display: inline-block;
	background: #fff;
	padding:  1em;
	box-shadow: 1em 1em 1em rgb(0,0,0,0.1);
}
ul.charaList li::before {
	content: "";
	position: absolute;
	top: -6em;
	left: 45%;
	width: 60px;
	height: 153px;
	background: url("../images/chara/chara_pin.png") repeat-x top center;
	z-index: 1;
}
.Gsp { display: none; }
.Gpc { display: block; }

.characterBox {
	width: 100%;
	max-width: 1000px;
	margin: 1em auto;
	padding: 0 2em 2em;
	border-radius: 1em;
	box-shadow: 0 0 1em rgb(0,0,0,0.1);
	text-align: center;
}
.characterBox h2 {
	background: #ff761f;
	width: 50%;
	color: #fff;
	font-weight: bold;
	font-size: 2em;
	line-height: 1.25;
	margin: 0 auto 1em;
	padding: 0.5em;
	border-radius: 0 0 1em 1em;
}
.characterBox h2 span {
	font-size: 0.5em;
	display: block;
}
.characterBox h3 {
	margin: 0 auto 1em;
	font-weight: bold;
	font-size: 1.5em;
	line-height: 1.25;
}
.characterBox h3 span { font-weight: normal; font-size: 0.75em; }
.characterBox h3 small { font-size: 0.5em; }
.charaIMG { margin: 0 auto 1em; }
.characterBox a.btn {
	color: #fff;
	font-size: 1.25em;
	background: #ff761f;
	padding: 0.35em 2em;
	border-radius: 2em;
}

/* リンク */
section.links {
	position: relative;
	width: 100%;
	margin: 0 auto 1em;
	background: url("../images/common/bg_links.jpg") repeat-x bottom center;
	text-align: center;
	padding: 2em 0;
	overflow: hidden;
}

.linksList {
	width: 100%;
	max-width: 1000px;
	margin: 0 auto 1em;
	display: grid;
	grid-gap: 1em;
	grid-template-columns: 6fr 2fr 1fr 1fr 2fr;
}
.linksList li { text-align: center; }
.linksList li div {
	display: flex;
	justify-content: center;
	align-items: center;
	height: 4em;
}
.linksList small { font-size: 0.75em; }
.linksList li:nth-child(1) { grid-column: 1 / 2; grid-row: 1 / 3; }
.linksList li:nth-child(2), .linksList li:nth-child(3) {
	background: #fff;
	box-shadow: 0 0 1em rgb(0,0,0,0.1);
	border-radius: 1em;
	padding: 1.5em 1em 0.5em 1em;
	line-height: 1.25;
}
.linksList li:nth-child(2) { grid-column: 2 / 4; grid-row: 1 / 2; }
.linksList li:nth-child(3) { grid-column: 4 / 6; grid-row: 1 / 2; }
.linksList li:nth-child(4) { text-align: right; }
.linksList li:nth-child(5) { grid-column: 3 / 5; grid-row: 2 / 3; }
.linksList li:nth-child(6) { text-align: left; }

.bnBox {
	margin: 3em auto;
	text-align: center;
}
.bnBox li {
	margin: 0 0.5em 1em;
	padding: 0;
	display: inline-block;
}

/* Footer */
footer {
	padding: 2em;
	text-align :center;
}
footer h3 { margin-bottom: 2em; }

@media all and (max-width: 1100px) {
	html { scroll-padding-top: 0; }
	ul.menu {
		width: 90vw;
		top: 2.5vw;
		left: 5vw;;
		margin-left: 0;
		padding: 1.5vw 0;
	}
	ul.menu li { padding: 0 0.5em; }
	ul.menu li img { height: 2.125vw; }
	ul.menu li a::before {
		top: -3.75vw;
		width: 5vw;
		height: 5vw;
	}
}

@media all and (max-width: 1000px) {
	.Gsp { display: block; }
	.Gpc { display: none; }
	ul.charaList li {
		width: 45%;
		max-width: 275px;
	}
	ul.charaList li img { width: 100%; }
}

@media all and (max-width: 736px) {
	img { max-width: 100%; }
	.sp { display: block; }
	.pc { display: none; }

	body {
		font-size: 3vw;
	}
	body.page-chara section.character { padding-top: 2em; }
	body.page-news { padding-top: 2.5em; }

	/* Main */
	main img {
		width: 125vw;
		max-width: 125vw;
		margin-left: -12.5vw;
	}

	/* header */
	ul.menu {
		position: fixed;
		top: 0;
		left: 80vw;
		width: 15vw;
		max-width: 15vw;
		margin-left: 0;
		display: block;
		padding: 0;
		background: none;
		border-radius: 0;
		text-align: center;
		z-index: 999;
	}
	ul.menu li {
		display: none;
		padding: 0;
	}
	ul.menu li.menu {
		display: inline-block;
		width: 15vw;
		text-align: right;
	}
	ul.menu li.menu img {
		width: 100%;
		height: 15vw;
	}
	nav.open {
		opacity: 1;
		transform: translateZ(0);
		transition: .5s all;
	}
	nav ul.nMenu { margin-top: 2em; }
	nav ul.nMenu li { padding: 1em; }
	nav ul.nMenu li a { cursor: pointer; }
	nav ul.nMenu li img {
		height: 7.5vw;
	}

	/* あらすじ */
	section.arasuji { padding: 0 2em 12em; }

	/* ディスコグラフィ */
	.discoBox { padding: 2em 0; }
	.discoList li {
		padding: 0.5em;
		width: 49%;
	}
	
	.discoBox::before {
		bottom: -1em;
		left: -1em;
		width: 16vw;
		height: 34vw;
		background-size: cover;
	}

	/* キャラクター */
	ul.charaList li {
		width: 40%;
		margin: 3.5vw 0.5em 0;
		padding: 0.75em;
	}
	ul.charaList li::before { top: -4em; }
	
	ul.charaList li::before {
		top: -6em;
		left: 40%;
		width: 	12vw;
		height: 30.6vw;
		background-size: cover;
	}

	/* リンク */
	.linksList {
		width: 90%;
		grid-template-columns: 2fr 1fr 1fr 2fr;
		font-size: 0.8em;
	}
	.linksList li:nth-child(1) { grid-column: 1 / 5; grid-row: 3 / 4; }
	.linksList li:nth-child(2) { grid-column: 1 / 3; grid-row: 1 / 2; }
	.linksList li:nth-child(3) { grid-column: 3 / 5; grid-row: 1 / 2; }
	.linksList li:nth-child(5) { grid-column: 2 / 4; grid-row: 2 / 3; }
}
::-webkit-full-page-media, :future, :root main { height: auto; }