/* ******************************************************************
 *	File name		: base.css
 *	Summary			: css base
 * ******************************************************************
 */
 
/* -----------------------------------------------------------------
   base
----------------------------------------------------------------- */

html{
	position:relative;
	background:linear-gradient(90deg, rgba(56,125,206,1), rgba(0,136,70,1));
}
html::before{
	content:" ";
	position:fixed;
	top:0px;
	left:0px;
	width:100%;
	height:100%;
	background:linear-gradient(90deg, rgba(56,125,206,1), rgba(0,136,70,1));
	animation:bg_grad 8s ease infinite forwards;
	background-size:200% 200%;
}
@keyframes bg_grad{
    0%  {opacity:0.5;background-position:50% 50%}
    25% {opacity:1;background-position:0% 50%}
    50% {opacity:1;background-position:50% 50%}
    75% {opacity:1;background-position:100% 50%}
    100%{opacity:0.5;background-position:50% 50%}
}
@keyframes opacity{
    0%  {opacity:0;}
    100%{opacity:1;}
}
@keyframes sand{
    0%  {opacity:0;}
    100%{opacity:0.4;}
}


body{
	position:relative;
	width:100%;
	height:100%;
	line-height:145%;
	color:#222;
	}
	body::before{
		content:" ";
		position:fixed;
		top:125px;
		left:calc(50% - 571px);
		width:1143px;
		height:607px;
		margin:0 auto;
		background:url(../../image/base/bg_copy.png) no-repeat center center;
		background-size:contain;
		mix-blend-mode:multiply;
		transition-duration:1.5s;
		animation:opacity 1s ease 0s forwards;
	}
	body::after{
		content:" ";
		position:fixed;
		top:0px;
		left:0px;
		width:100%;
		height:100%;
		background:url(../../image/base/sand.jpg) repeat center center;
		mix-blend-mode:difference;
		opacity:0.4;
		animation:sand 1s ease 0s forwards;
	}
	#wrapper{
		position:relative;
		width:100%;
		text-align:center;
}

/* --- responsive --- */
@media screen and (max-width:1143px){
	body::before{
		left:20px;
		width:calc(100% - 40px);
		height:53.1vw;
	}
}
@media screen and (max-width:767px){
	body::before{
		top:auto;
		bottom:0px;
	}
	body.bg_copy::before{
		top:auto;
		bottom:calc(50% - 80px);
	}
}

@media print {
	body{
		margin:0;
		width:1100px;
	}
}

/* -----------------------------------------------------------------
   header
----------------------------------------------------------------- */

header{
	position:fixed;
	top:0px;
	left:0px;
	width:100%;
	height:90px;
	margin:0px;
	z-index:100;
	transition-duration:0.5s;
	}
	#head_contents{
		position:relative;
		width:1200px;
		max-width:100%;
		height:100%;
		margin:0 auto;
		padding:0 20px;
		text-align:center;
		z-index:1;
	}
	header h1{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:absolute;
		top:20px;
		left:25px;
		width:300;
		height:75px;
		text-align:left;
		color:#FFF;
		z-index:2;
		}
		header h1 a{
			display:inline-block;
			font-weight:500;
			font-size:0.8rem;
			text-decoration:none;
			color:#FFF;
			}
			header h1 a:hover{
				text-decoration:none;
		}
		header h1 a img{
			display:inline-block;
			position:relative;
			top:-5px;
			margin:0 21px 0 0;
			width:50px;
			height:auto;
}

/* nav */
header nav{
	position:absolute;
	top:30px;
	right:20px;
	}
	header nav > ul{
		display:-webkit-flex;
		display:flex;
		-webkit-box-pack:justify;
		-ms-flex-pack:justify;
		justify-content:flex-end;
		flex-wrap:wrap;
		width:auto;
		max-width:100%;
		list-style:none;
	}
	header nav > ul > li{
		display:inline-block;
		margin:0 0 7px 20px;
	}
	header nav > ul > li > a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		width:100%;
		height:30px;
		padding:2px 26px 0;
		margin:0 auto;
		font-weight:400;
		font-size:0.9rem;
		text-decoration:none;
		text-align:left;
		border:1px solid #FFF;
		-moz-border-radius:15px;
		-webkit-border-radius:15px;
		border-radius:15px;
		color:#FFF;
		z-index:10;
		transition-duration:0.5s;
	}
	header nav > ul > li.active a,
	header nav > ul > li > a:hover{
		text-decoration:none;
		font-weight:500;
		background:#FFF;
		color:#008846;
	}

/* other li */
header nav ul li#nav_top{
	display:none;
}

/* --- responsive --- */
@media screen and (max-width:1100px){
	header nav > ul > li{
		margin:0 0 7px 10px !important;
	}
	header nav > ul > li > a{
		padding:0 16px;
	}
}

/* -----------------------------------------------------------------
   h_slide
----------------------------------------------------------------- */

header.h_slide{
		position:fixed !important;
		top:0px;
		left:0px;
		width:100%;
		height:90px;
		-moz-box-shadow:0px 0px 3px 3px rgba(0,0,0,0.2);
		-webkit-box-shadow:0px 0px 3px 3px rgba(0,0,0,0.2);
		box-shadow:0px 0px 3px 3px rgba(0,0,0,0.2);
		background:#000;
}
header.h_slide nav{
}

/* --- responsive --- */
@media only screen and (max-width:1200px){
	header.h_slide nav li a{
	}
}

/* -----------------------------------------------------------------
   nav icon
----------------------------------------------------------------- */

#nav_icon{
	display:none;
	position:fixed;
	top:12px;
	right:20px;
	width:36px;
	height:36px;
	background:none;
	-moz-border-radius:6px;
	-webkit-border-radius:6px;
	border-radius:6px;
	cursor:pointer;
	z-index:1000;
	}
	#nav_icon::before,
	#nav_icon::after{
		content:" ";
		position:absolute;
		left:4px;
		width:29px;
		height:1px;
		background:#FFF;
		transition-duration:0.5s;
	}
	#nav_icon::before{
		top:7px;
	}
	#nav_icon::after{
		top:25px;
	}
	#nav_icon span{
		position:absolute;
		top:16px;
		left:4px;
		width:29px;
		height:1px;
		background:#FFF;
		transition-duration:0.5s;
}

/* sp open menu */
.open_menu #nav_icon::before,
.open_menu #nav_icon::after{
		left:4px;
	}
	.open_menu #nav_icon::before{
		top:16px;
		transform:rotate(-135deg) !important;
	}
	.open_menu #nav_icon::after{
		top:16px;
		transform:rotate(135deg) !important;
	}
	.open_menu #nav_icon span{
		left:50%;
		width:0px;
}

/* -----------------------------------------------------------------
   SP MENU
----------------------------------------------------------------- */
/* --- responsive --- */
@media only screen and (max-width:960px){
	header{
		position:fixed;
		height:60px;
/*		background:#FFF;*/
		z-index:999;
	}
	header::before{
		content:" ";
		position:fixed;
		top:0px;
		left:0px;
		width:100%;
		height:60px;
		background:linear-gradient(180deg, rgba(0,0,0,0.7), rgba(0,0,0,0.5));
		transition-duration:0.5s;
		opacity:0;
	}
	header.open_menu::before,
	.bg_copy header::before{
		opacity:1;
	}
	header #head_contents{
		height:60px;
	}
	header h1{
		display:-webkit-flex;
		display:flex;
		justify-content:flex-start;
		align-items:center;
		position:absolute;
		top:0px;
		left:0px;
		width:calc(100% - 60px);
		height:100%;
		padding:10px 0 0 10px;
		text-align:center;
		z-index:1000;
		}
		header h1 a img{
			margin:0 11px 0 0;
	}
	header #main_nav{
		position:fixed;
		top:60px;
		bottom:auto;
		left:auto;
		right:-100%;
		width:100%;
		height:100%;
		padding-top:10px;
		background:linear-gradient(90deg, rgba(56,125,206,1), rgba(0,136,70,1));
		transition-duration:0.5s;
		overflow-y:scroll;
		z-index:999;
		opacity:0.95;
		}
		header.open_menu #main_nav{
			right:0px;
	}
	header #main_nav::before{
		content:"MENU";
		display:-webkit-flex;
		display:flex;
		justify-content:flex-start;
		align-items:center;
		position:fixed;
		left:-30px;
		top:90px;/* 30 + 50 */
		width:300px;
		height:30px;
		padding-bottom:2px;
		text-indent:-50px;
		color:rgba(255,255,255,1);
		transform:rotate(90deg) !important;
		transform-origin:0 100%;
		transition-duration:0.5s;
		line-height:1;
		z-index:1000;
		}
		header.open_menu #main_nav::before{
			left:0px;
	}
	header nav{
		display:block;
		position:relative;
		height:auto;
		padding:0px;
	}
	header nav > ul{
		display:block;
		width:290px;
		height:auto !important;
		margin:0 auto;
		padding:20px 20px 20px;
	}
	header nav > ul > li{
		position:relative !important;
		top:0px !important;
		left:auto !important;
		right:auto !important;
		width:250px !important;
		max-width:100% !important;
		height:60px !important;
		min-height:40px !important;
		margin:0 0 5px !important;
		text-align:center;
		color:#000;
		transition-duration:0.5s;
		background:none !important;
		border:1px solid rgba(0,0,0,0.3);
		-moz-border-radius:30px !important;
		-webkit-border-radius:30px !important;
		border-radius:30px !important;
		overflow:hidden;
	}
	header nav > ul > li::before,
	header nav > ul > li::after{
		display:none;
	}
	header nav ul li a{
		display:-webkit-flex !important;
		display:flex !important;
		justify-content:center !important;
		align-items:center !important;
		position:relative !important;
		width:100% !important;
		height:100% !important;
		padding:0px !important;
		font-weight:bold !important;
		font-size:0.95rem !important;
		text-decoration:none;
		text-align:left;
		font-size:1.3rem !important;
		color:#FFF !important;
		border:3px solid #FFF !important;
		-moz-border-radius:30px !important;
		-webkit-border-radius:30px !important;
		border-radius:30px !important;
		z-index:10;
	}
	header nav > ul > li.active a,
	header nav > ul > li > a:hover{
		background:none !important;
	}
	header nav > ul > li > a:hover{
		background:#FFF !important;
		color:#008846 !important;
	}

#nav_icon{
	display:block;
}
#sns_icon{
	display:none;
}
}
/* -----------------------------------------------------------------
   main
----------------------------------------------------------------- */

main{
	display:block;
	position:relative;
	margin-top:0px;
	padding:0px;
	width:100%;
	z-index:1;
}
#main_contents{
	position:relative;
	width:1280px;
	max-width:100%;
	margin:0 auto;
	padding:40px;
}

section{
	position:relative;
	width:1000px;
	max-width:100%;
	margin:0 auto 150px;
}
.contents{
	position:relative;
	width:1000px;
	max-width:100%;
	margin:0 auto 40px;
}

/* --- responsive --- */
@media screen and (max-width:767px){
	#main_contents{
		padding:20px;
	}
}


/* -----------------------------------------------------------------
   footer
----------------------------------------------------------------- */

footer{
	position:relative;
	width:100%;
	margin:0px;
	text-align:left;
	z-index:500;
}

#contact{
	position:relative;
	width:450px;
	max-width:100%;
	margin:0 auto 50px;
	padding:0 20px;
	text-align:center;
	}
	#contact *{
		color:#FFF;
	}
	#contact h3{
		position:relative;
		margin:0 0 15px;
		padding:0 0 7px;
		font-weight:bold;
		font-size:1.3rem;
		border-bottom:1px solid #FFF;
		color:#FFF;
	}
	#contact #tel{
		font-weight:bold;
		font-size:1.7rem;
		}
		#contact #tel a{
			color:#FFF;
			text-decoration:none;
}

.organizer_logo{
	display:-webkit-flex;
	display:flex;
	-webkit-box-pack:justify;
	-ms-flex-pack:justify;
	justify-content:space-between;
	width:405px;
	max-width:100%;
	height:40px;
	margin:0 auto;
	}
	.organizer_logo div img{
		height:100%;
		width:auto;
		object-fit:cover;
}

footer p#copy{
	position:relative;
	margin:0px;
	padding:30px 0;
	font-weight:400;
	font-size:0.8rem;
	text-align:center;
}

/* --- responsive --- */
@media screen and (max-width:767px){
	#outline_box #tel{
		display:block;
		margin:5px 0 0;
		font-size:2.0rem;
	}
.organizer_logo{
	display:-webkit-flex;
	display:flex;
	-webkit-box-pack:justify;
	-ms-flex-pack:justify;
	justify-content:center;
	text-align:center;
	width:100%;
	height:auto;
	}
	.organizer_logo div img{
		display:inline-block;
		height:25px;
		margin:0 10px;
	}
}
/* --- responsive --- */
@media screen and (max-width:360px){
	#contact span.f080{
		display:block;
	}
}

/* -----------------------------------------------------------------
   pagetop
----------------------------------------------------------------- */

#pagetop{
	position:fixed;
	bottom:50px;
	right:-10px;
	z-index:999;
	}
	#pagetop a{
		display:block;
		padding:2px 0 0 40px;
		font-family:"DM Sans", sans-serif;
		font-size:0.9rem;
		text-decoration:none;
		letter-spacing:1px;
		color:#FFF;
		line-height:1;
		transform:rotate(90deg);
	}
	#pagetop a:hover{
		text-decoration:none;
	}
	#pagetop a::before,
	#pagetop a::after{
		content:" ";
		position:absolute;
		height:1px;
		background:#FFF;
	}
	#pagetop a::before{
		top:2px;
		left:0px;
		width:30px;
	}
	#pagetop a::after{
		top:6px;
		left:-2px;
		width:12px;
		transform:rotate(45deg);
}

@media print{
	#pagetop{
		display:none;
	}
}

/* -----------------------------------------------------------------
   btn
----------------------------------------------------------------- */

.btn{
	position:relative;
	width:100%;
	text-align:center;
	}
	.btn a{
		display:-webkit-flex;
		display:flex;
		justify-content:center;
		align-items:center;
		position:relative;
		width:230px;
		height:50px;
		margin:0 auto;
		font-weight:bold;
		border:2px solid #FFF;
		-moz-border-radius:25px;
		-webkit-border-radius:25px;
		border-radius:25px;
		background:#387DCE;
		color:#FFF;
		transition-duration:0.5s;
	}
	.btn a:hover{
		border:2px solid #387DCE;
		text-decoration:none;
		background:#FFF;
		color:#387DCE;
	}
	.btn a::after{
		content:" ";
}

.blank::after{
	content:" ";
	position:relative;
	top:0px;
	width:16px;
	height:16px;
	margin:0 0 0 5px;
	background:url(../../image/base/blank.png);
	transition-duration:0.5s;
	}
	.blank:hover::after{
		background:url(../../image/base/blank_b.png);
}


