@charset "UTF-8";
/* CSS Document */
html {
	scroll-behavior: smooth;
	color: #000;
}

body {
	width: 900px;
	margin: 0 auto;
	font-family: "Zen Kaku Gothic Antique", sans-serif;
	background: url('./images/gb_img.jpg');
}

.font_10pt {
	font-size: 10pt;
}

#wrapper {
	display: grid;
}

header {
	position: sticky;
}

.site_name{
	width: 900px;
	color: #fff;
	height: 132px;
	background: #000;
	opacity: 0.85;
	display: table-cell;
	vertical-align: middle;
}

.site_name a {
	text-decoration: none;
}

.site_name h1 {
	font-family: "Klee One", cursive;
	font-weight: 400;
	font-style: normal;
	font-size: 2.5em;
	text-align: center;
}

.site_name_En {
	font-family: "EB Garamond", serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-size: 1.2em;
	text-align: center;
}

#navArea {
	display: none;
}

.top_image {
	padding-top: 44%;
	width: 900px;
	background: url("images/top_img_bg.jpg");
	top: -132px;
	left: 0;
	z-index: -1;
}

.sp_top_img {
	display: none;
}

.top_img_gold {
	height: 528px;
	width: 900px;
	background: url("images/top_img_gold.png");
	background-size: 100% auto;
	position: absolute;
	top: 1px;
	left: 0;
	animation: fade 5s ease-in-out forwards;
}

.top_img_naomi {
	height: 528px;
	width: 900px;
	background: url("images/top_img_naomi.png");
	background-size: 100% auto;
	position: absolute;
	top: 1px;
	left: 0;
	animation: slideinLeft 5s forwards;
}

.top_img_title {
	height: 528px;
	width: 900px;
	background: url("images/top_img_title.png");
	background-size: 100% auto;
	position: absolute;
	top: 0;
	left: 0;
	animation: slideinRight 5s forwards;
}

/*.top_img_goldのアニメーション*/
@keyframes fade {
  0% {
    opacity: 0;
  }

  100% {
    opacity: 1;
  }
}

/*.top_img_naomiのアニメーション*/
@keyframes slideinLeft {
	0% {
		transform: translateX(-120px);
		opacity: 0;
	}
	100% {
		transform: translateX(0);
		opacity: 100;
	}
}

/*.top_img_titleのアニメーション(右からスライドイン)*/
@keyframes slideinRight {
	0% {
		transform: translateX(120px);
		opacity: 0;
	}
	100% {
		transform: translateX(0);
		opacity: 100;
	}
}

/*PC用ナビゲーションバー　ここから----------------------------*/
.pc_nav {
	background: #000;
	top: 0;
	width: 900px;
	height: 50px;
	color: #fff;
	position: absolute;
	margin-top: 528px;
	box-sizing: border-box;
	line-height: 30px;
	padding: 10px;
}

.pc_nav ul{
	display: table;
	margin: 0 auto;
	width: 70%;
	text-align: center;
}
.pc_nav ul li{
	display: table-cell;
	min-width: 50px;
	border-right: 1px dotted #666;
}
.pc_nav ul li:first-child{
	border-left: 1px dotted #666;
}
.pc_nav ul li a{
	text-decoration: none;
}
.pc_nav ul li a:hover{
	opacity: 0.7;
}

/*PC用ナビゲーションバー　ここまで----------------------------*/

main {
	
}

main section {
	margin-bottom: 100px;
}

/*----------------------------
scroll_right ｜右から出現
----------------------------*/
.scroll_right {
    -webkit-transition: 0.8s ease-in-out;
    -moz-transition: 0.8s ease-in-out;
    -o-transition: 0.8s ease-in-out;
    transition: 0.8s ease-in-out;
    transform: translateX(30px);
    opacity: 0;
    filter: alpha(opacity=0);
    -moz-opacity: 0;
}
.scroll_right.on {
    opacity: 1.0;
    filter: alpha(opacity=100);
    -moz-opacity: 1.0;
    transform: translateX(0);
}

main h2 {
	font-family: "Klee One", cursive;
	font-weight: 400;
	font-style: normal;
	font-size: 1.8em;
	text-align: center;
	line-height: 0.8em;
	margin-bottom: 25px;
}

.h2_En{
	font-family: "EB Garamond", serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-size: 0.7em;
	text-align: center;
}

#concert {
	width: 100%;
	margin-top: 50px; /*ナビゲーションの高さ分の位置調整*/
	padding-top: 100px;
	text-align: center;
}

#concert a {
	color: #c21d06;
}

#concert a :hover {
	color: #c21d06;
}

.concert_info {
	display: grid;
	width: 900px;
	margin-bottom: 80px;
	grid-template-columns: 490px 20px 240px;
	place-content: center;
}

.concert_info:last-child {
	margin-bottom: 150px;
}

.concert_text {
	background-color: rgba(255,255,255,0.4);
}

.concert_text .font_10pt {
	margin-top: 30px;
}

.concert_text p {
	margin-top: 20px;
}

.concert_detail {
	width: 400px;
	text-align: left;
	margin: 0 auto;
}

.flyer {
	
}

.flyer_text {
	font-size: 10pt;
	margin-top: 5px;
}

.profile_main {
	width: 750px;
	height: 610px;
	margin: 0 auto;
	background-color: rgba(0,0,0,0.5);
	position: sticky;
	color: #fff;
}

.profile_image {
	width: 750px;
	height: 500px;
	bottom: 0;
	right: 0;
	background: url("images/profile_naomi.png");
	position: absolute;
	background-attachment: inherit;
	background-size: cover;
	opacity: 0;
	overflow: hidden;
}

/*----------------------------
scroll_up ｜下から上へ出現
----------------------------*/
.scroll_up {
  transition: 1.5s ease-in-out;
  transform: translateY(30px);
  opacity: 0;
}
.scroll_up.on {
  transform: translateY(0);
  opacity: 1.0;
}


.profile_main dd {
	padding: 40px 0 20px 40px;
}

.profile_name {
	font-family: "Klee One", cursive;
	font-weight: 400;
	font-style: normal;
	font-size: 1.8em;
}

.profile_name_En {
	font-family: "EB Garamond", serif;
	font-optical-sizing: auto;
	font-weight: 400;
	font-style: normal;
	font-size: 0.8em;
}

.profile_text {
	padding-left: 40px;
}

#media {
	width: 750px;
	margin: 0 auto;
	margin-top: 150px;
	margin-bottom: 100px;
}

#media a {
	color: #c21d06;
}

#media a :hover {
	color: #c21d06;
}

.media_info li {
	list-style: disc;
}

#niko_school {
	width: 100%;
	margin-top: 50px; /*ナビゲーションの高さ分の位置調整*/
	padding-top: 100px;
	text-align: center;
}

#niko_school a {
	color: #c21d06;
}

#niko_school a :hover {
	color: #c21d06;
}

.niko_school_location_naomi img {
		display: none;
	}

.niko_school_info {
	display: grid;
	width: 900px;
	margin-bottom: 80px;
	grid-template-columns: 350px 500px;
	place-content: center;
}

.niko_school_text {
	background-color: rgba(255,255,255,0.4);
}

.niko_school_text .font_10pt {
	margin-top: 30px;
}

.niko_school_text p {
	margin-top: 20px;
}

.niko_school_detail {
	width: 400px;
	text-align: left;
	margin: 0 auto;
	z-index: -1;
}

.naomi_play {
	background: url("images/naomi_play.png");
	background-attachment: inherit;
	background-size: cover;
	z-index: 3;
}

.niko_school_text {
	padding-bottom: 60px;
}

.niko_school_location {
	width: 80%;
	display: block;
	margin: 0 auto;
	margin-top: 60px;
	border: #000 dotted 2px;
	padding-top: 30px;
}

.niko_school_location li {
	margin-bottom: 30px;
}

#contact {
	width: 750px;
	margin: 0 auto;
	margin-top: 150px;
	margin-bottom: 200px;
}

.contact_text {
	text-align: center;
	margin-top: 40px;
	margin-bottom: 60px;
}

.contact_icon ul {
	width: 750px;
	display: grid;
	ggrid-template-columns: 1fr 1fr 1fr;
	place-content: center;
	margin: 0 auto;
}

.contact_icon li {
	display: block;
	margin-bottom: 60px;
}

.contact_icon img {
	width: 120px;
}

.contact_icon_text {
	margin-top: -15px;
	font-size: 0.8em;
	text-align: center;
}

footer {
	height: 40px;
	margin-bottom: 0;
	background: #000;
	color: #fff;
	text-align: center;
	line-height: 40px;
}

#page-top {
  position: fixed;
  bottom: 20px;
  right: 20px;
  font-size: 14px;
  line-height: 1;
  z-index: 99;
}
#page-top a {
  background: #c21d06;
  text-decoration: none;
  color: #fff;
  width: 60px;
  padding: 23px 5px;
  text-align: center;
  display: block;
  border-radius: 90px;
  opacity: 0.9;
  transition: all .3s ease;
}
#page-top a:hover {
  text-decoration: none;
  opacity: .5;
}

/*///////////////////////////////////////////////////////*/
/*レスポンシブ対応　ここから---------------------------------*/
/*///////////////////////////////////////////////////////*/
@media (min-width: 768px) {
	
	/*ハンバーガーメニューを非表示*/
	.sp_nav {
		display: none;
	}
}

@media (max-width: 768px) {
	
	/*PC用ナビゲーションを非表示*/
	.pc_nav {
		display: none;
	}
	
	/*.site_nameを画面上辺に固定する*/
	.site_name {
		width: 100%;
		height: 100px;
		position: fixed;
		z-index: 5;
		padding-right: 30px;
		padding-top: 20px;
		opacity: 1.0;
	}
	
	.site_name h1 {
		font-size: 1.8em;
		text-align: right;
	}

	.site_name_En {
		font-size: 0.9em;
		text-align: right;
	}
	
	.top_image {
		width: 100vw;
		min-height: 280px;
		top: 0px;
		padding-top: 55%;
	}
	
	.top_img_gold,.top_img_naomi,.top_img_title {
		width: 100vw;
		height: 100%;
		background-position: bottom;
	}
	
	#concert {
		width: 100vw;
		text-align: center;
		margin-top: -50px;
	}

	.concert_info {
		display: block;
		width: 100vw;
		margin-bottom: 80px;
	}

	.concert_info:last-child {
		margin-bottom: 150px;
	}

	.concert_text {
		padding: 10px 0 60px 0;
	}

	.concert_text .font_10pt {
		margin-top: 30px;
	}

	.concert_detail {
		width: 80%;
		text-align: left;
		margin: 0 auto;
	}

	.flyer {
		width: 30vw;
		margin: 0 auto;
		margin-top: 40px;
	}

	.flyer_text {
		font-size: 10pt;
		margin-top: 5px;
	}
	
	#profile {
		width: 100vw;
		padding: 0;
	}
	
	.profile_main {
		max-width: 100vw;
		margin: 0 auto;
		background-color: rgba(0,0,0,0.5);
		position: sticky;
		color: #fff;
	}

	.profile_image {
		max-width: 100vw;
		max-height: 100%;
		bottom: 0;
		background: url("images/profile_naomi.png") no-repeat;
		background-position: bottom;
		background-attachment: inherit;
		background-size: 100%;
		opacity: 0;
		overflow: hidden;
	}
	
	.profile_main dd {
		padding: 15px 0 20px 15px;
	}
	
	.profile_text {
		position: absolute;
		z-index: 20;
		padding-left: 15px;
		padding-right: 15px;
	}
	
	#media {
		width: 100vw;
		margin: 0 auto;
	}
	
	#media ul li {
		padding-left: 20px;
		padding-right: 20px;
		margin: 0 auto;
		
	}

	#niko_school {
		width: 100vw;
		margin-top: 50px; /*ナビゲーションの高さ分の位置調整*/
		padding-top: 100px;
		text-align: center;
	}

	.niko_school_info {
		display: block;
		width: 100vw;
		margin-bottom: 80px;
		place-content: center;
	}

	.niko_school_text {
		background-color: rgba(255,255,255,0.4);
	}

	#niko_school .font_10pt {
		padding-top: 30px;
	}

	.niko_school_text p {
		margin-top: 20px;
	}

	.niko_school_detail {
		width: 85vw;
		text-align: left;
	}

	.naomi_play {
		display: none;
	}

	.niko_school_text {
		padding-bottom: 60px;
		background-color:rgba(255,255,255,0.4);
		background-blend-mode:lighten;
	}
	
	.niko_school_location_naomi {
		display: block;
	}
	
	.niko_school_location_naomi img {
		display: block;
		width: 25%;
		z-index: 11;
		margin-top: 40px;
		margin-bottom: -250px;
	}

	.niko_school_location {
		width: 80%;
		margin: 0 auto;
		padding-bottom: 0;
		border: #000 dotted 2px;
		padding-top: 30px;
		z-index: 10;
	}

	.niko_school_location li {
		margin-bottom: 30px;
	}

	#contact {
		width: 100vw;
		margin: 0 auto;
		margin-top: 150px;
		margin-bottom: 200px;
	}

	.contact_text {
		text-align: center;
		margin: 40px;
	}

	.contact_icon ul {
		width: 100vw;
		display: grid;
		ggrid-template-columns: 33% 33% 33%;
		place-content: center;
		margin: 0 auto;
	}

	.contact_icon img {
		width: 100px;
	}

	.contact_icon_text {
		margin-top: -15px;
		font-size: 0.8em;
		text-align: center;
	}

	footer {
		height: 40px;
		margin-bottom: 0;
		background: #000;
		color: #fff;
		text-align: center;
		line-height: 40px;
	}
	
	/*ハンバーガーメニュー　ここから----------------------------------*/
	/*============
	nav
	=============*/
	
	#navArea {
		display: block;
	}
	
	.sp_nav {
		display: block;
		position: fixed;
		top: 0;
		right: -300px;
		bottom: 0;
		width: 300px;
		background: #c21d06;
		overflow-x: hidden;
		overflow-y: auto;
		-webkit-overflow-scrolling: touch;
		transition: all .5s;
		z-index: 14;
		opacity: 0;
	}
	
	.open .sp_nav {
		left: 0;
		opacity: 1;
	}
	
	.sp_nav .inner {
		padding: 25px;
	}
	
	.sp_nav .inner ol {
		list-style: none;
		margin: 0;
		padding: 0;
		padding-top: 80px;
	}
	
	.sp_nav .inner ol li {
		position: relative;
		margin: 0;
		border-bottom: 1px dotted #fff;
	}
	
	.sp_nav .inner ol li a {
		display: block;
		color: #fff;
		font-size: 14px;
		padding: 1em;
		text-decoration: none;
		transition-duration: 0.2s;
	}
	
	.sp_nav .inner ol li a:hover {
		background: #a51905;
		color: #fff;
	}
	
	@media screen and (max-width: 768px) {
		
		.sp_nav {
			left: -220px;
			width: 220px;
		}
	}
	
	/*============
	.toggle_btn
	=============*/
	.toggle_btn {
		display: block;
		position: fixed;
		top: 10px;
		left: 10px;
		width: 40px;
		height: 40px;
		transition: all .5s;
		cursor: pointer;
		z-index: 15;
		background: #c21d06;
	}
	
	.toggle_btn span {
		display: block;
		position: absolute;
		left: 0;
		width: 30px;
		height: 2px;
		background-color: #fff;
		border-radius: 4px;
		transition: all .5s;
	}
	
	.toggle_btn span:nth-child(1) {
		top: 9px;
		left: 5px;
	}
	
	.toggle_btn span:nth-child(2) {
		top: 19px;
		left: 5px;
	}
	
	.toggle_btn span:nth-child(3) {
		bottom: 9px;
		left: 5px;
	}
	
	.open .toggle_btn span {
		background-color: #fff;
	}
	
	.open .toggle_btn span:nth-child(1) {
		-webkit-transform: translateY(10px) rotate(-315deg);
		transform: translateY(10px) rotate(-315deg);
	}
	
	.open .toggle_btn span:nth-child(2) {
		opacity: 0;
	}
	
	.open .toggle_btn span:nth-child(3) {
		-webkit-transform: translateY(-10px) rotate(315deg);
		transform: translateY(-10px) rotate(315deg);
	}
	
	/*============
	#mask
	=============*/
	#mask {
	display: none;
		transition: all .5s;
	}
	
	.open #mask {
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		width: 100%;
		height: 100%;
		background: #000;
		opacity: .8;
		z-index: 13;
		cursor: pointer;
	}
	/*ハンバーガーメニュー　ここまで----------------------------------*/	

	body {
		max-width: 768px;
		width: 100%;
		margin: 0 auto;
	}
	
	#wrapper {
		max-width: 768px;
		width: 100%;
		min-height: 100vh;
	}
	
	header {
		width: 100%;
		position: relative;
	}
}

@media (max-width: 540px) {
	
	.flyer {
		width: 50%;
	}
	
	.niko_school_text {
		background: url("");
		background-color:rgba(255,255,255,0.4);
		background-blend-mode:lighten;
	}
	
}

@media (max-width: 460px) {
	
	.concert_detail {
		width: 93%;
	}
	
	.flyer {
		width: 60%;
	}

	.niko_school_location_naomi {
		margin-top: 150px;
	}
	
	.niko_school_location_naomi img {
		display: block;
		width: 18%;
		z-index: 11;
		margin-top: 40px;
		margin-bottom: -250px;
	}

	
}