@charset "utf-8";


/* layout =============================================================

======================================================================== */


/* =====================================================================

	container
	
======================================================================== */


	.l-wrap,
	.l-container {
		margin-right: auto;
		margin-left: auto;
		}
	.l-wrap:before, .l-wrap:after,
	.l-container:before, .l-container:after {
		display: table;
		content: " ";
		}
	.l-wrap:after,
	.l-container:after {
		clear: both;
		}


	@media print, screen and (min-width: 768px) {
		.l-wrap,
		.l-container {
			width: 980px;
			padding-left: 10px;
			padding-right: 10px;
			box-sizing: border-box;
			}
		.l-main {
			float: right;
			width: 710px;
			margin-top: 30px;
			margin-bottom: 100px;
			}
		.l-sub {
			float: left;
			width: 230px;
			margin-top: 30px;
			}
		.l-textbox {
			padding-left: 20px;
			}
	}
	@media (max-width: 767px) {
		.l-wrap {
			width: 100%;
			}
		.l-container {
			width: 94%;
			}
		.l-main {
			margin-top: 70px;
			margin-bottom: 50px;
			padding-left: 3%;
			padding-right: 3%;
			}
		.l-textbox {
			padding-left: 2%;
			padding-right: 2%;
			}
		.l-textbox-sp {
			padding-left: 2%;
			padding-right: 2%;
			}
	}







/* =====================================================================

	header
	
======================================================================== */

.l-header {
	width: 100%;
	}

	@media print, screen and (min-width: 768px) {
		.l-header {
			}

		/* hlogo */
		.l-header h1 {
			margin-bottom: 20px;
			}
  	}


	@media (max-width: 767px) {
		.l-header {
			height: 50px;
			position: fixed;
			background-color: #fff;
			z-index: 9000;
			  box-shadow: 0px 2px 3px -3px rgba(0,0,0,0.6);
			  -webkit-box-shadow: 0px 2px 3px -3px rgba(0,0,0,0.6);
			  -moz-box-shadow: 0px 2px 3px -3px rgba(0,0,0,0.6);
			}
		.l-header h1 {
			width: 175px;
			margin-left: 10px;
			}
		.l-header h1 img {
			width: 100%;
			height: auto;
			}
	}



	/* slide-menu */
	@media print, screen and (min-width: 768px) {
		#button-open {
			display: none;
			}
		#slide-menu {
			display: none;
			}
  	}
	@media (max-width: 767px) {
		body {
			position: relative;
			left: 0;
			overflow-x: hidden;
			}
	
		#button-open {
			position: absolute;
			top: 0;
			right: 0;
			height: 50px;
			width: 50px;
			text-align: center;
			background-color: #ff0d00;
			}
			#button-open i {
				color: #fff;
				font-size: 2.25em;
				margin-top: 10px;
				}


		#slide-menu{
			position: fixed;
			top: 0;
			right: -290px;
			width: 290px;
			margin: 0;
			}



	#button-close {
		background-color: #000;
		float: right;
		height: 50px;
		width: 50px;
		text-align: center;
		}
		#button-close i {
			color: #fff;
			font-size: 2.25em;
			margin-top: 10px;
			}
	.l-spNav {
		float: right;
		width: 210px;
		max-height: 95vh;
		overflow-y: auto;
		background-color: rgba(0,0,0,0.9);
		}
		.l-spNav a {
			text-decoration: none;
			}
		.l-spNav01 h2 {
			line-height: 50px;
			height: 50px;
			color: #fff;
			padding-left: 10px; 
			}
			.l-spNav01 h2::after {
				content: '\f0fe';
				font-family: 'Font Awesome 5 Free';
				font-weight: bold;
				float: right;
				right: 0;
				padding-right: 10px;
				position: relative;
				}
			.l-spNav01 h2.active::after {
				content: '\f146';
				font-family: 'Font Awesome 5 Free';
				font-weight: bold;
				}
		.l-spNav01 dd,
		.l-spNav01 dt {
			line-height: 35px;
			height: 35px;
			}
			.l-spNav01 dt.p-2lines {
				height: 45px;
				line-height: 1.2;
				}
			.l-spNav01 dt.p-2lines a{
				padding-top: 5px;
				padding-bottom: 5px;
				}
		.l-spNav01 dd a,
		.l-spNav01 dt a {
			display: inline-block;
			box-sizing: border-box;
			width: 100%;
			border-bottom: #fff solid 1px;
			}
		.l-spNav01 dt a {
			padding-left: 10px; 
			background-color: rgba(255,255,255,0.8);
			font-weight: bold;
			}
			.l-spNav01 dt a:hover {
				background-color: rgba(255,255,255,0.9);
				}
		.l-spNav01 dd a {
			padding-left: 15px;
			color: #fff;
			}
			.l-spNav01 dd a:hover {
				background-color: rgba(255,255,255,0.2);
				}



	/* only Fuji */
	.l-spNav01.p-spNavFuji {
		}
		.l-spNav01.p-spNavFuji h2 {
			background-color: #ff0d00;
			}
		.l-spNav01.p-spNavFuji dt a {
			color: #ff0c00;
			}


	/* only Miya */
	.l-spNav01.p-spNavMiya {
			}
		.l-spNav01.p-spNavMiya h2 {
			background-color: #4a9626;
			}
		.l-spNav01.p-spNavMiya dt a {
			color: #4a9626;
			}



	.l-spNav02 {
		}
		.l-spNav02 li {
			line-height: 35px;
			height: 35px;
			border-bottom: #ccc solid 1px;
			}
		.l-spNav02 li a {
			display: inline-block;
			box-sizing: border-box;
			width: 100%;
			text-decoration: none;
			background-color: #999;
			padding-left: 15px;
			color: #fff;
			}
			.l-spNav02 li a:hover {
				background-color: #b7b7b7;
				}



	.l-spNav03 {
		text-align: center;
		width: 90%;
		max-width: 180px;
		margin: 5% auto 8% auto;
		}
		.l-spNav03 .p-bnFB a {
			display: inline-block;
			text-align: center;
			width: 100%;
			color: #fff;
			font-size: 1.6rem;
			font-weight: bold;
			background-color: #3B579D;
			padding: 5px 0 3px;
			}
			.l-spNav03 .p-bnFB a:hover {
				background-color: #7589ba;
				}
			.l-spNav03 .p-bnFB span {
				font-size: 1.3rem;
				display: block;
				}



	}


	





/* =====================================================================

	side navigation ( only PC ) 
	
======================================================================== */

/* -- sideNav -- */
	.l-sideNav {
		}
		.l-sideNav h2 {
			line-height: 43px;
			font-size: 1.6rem;
			color: #fff;
			padding-left: 15px;
			box-sizing: border-box;
			box-shadow: 2px 2px 4px rgba(204,204,204,0.6);
			}
			.l-sideNav h2::after {
				content: '\f138';
				font-family: 'Font Awesome 5 Free';
				font-weight: bold;
				float: right;
				right: 0;
				padding-right: 10px;
				position: relative;
				}
			.l-sideNav h2.active::after {
				content: '\f13a';
				font-family: 'Font Awesome 5 Free';
				font-weight: bold;
				}
		.l-sideNav dt {
			font-size: 1.6rem;
			font-weight: bold;
			}
			.l-sideNav dt a {
				display: inline-block;
				box-sizing: border-box;
				padding-left: 15px; 
				width: 100%;
				height: 40px;
				line-height: 40px;
				background-color: #fff;
				border-bottom: #ccc solid 1px;
				}
				.l-sideNav dt.p-2lines a {
					height: 60px;
					line-height: 1.4;
					padding-top: 8px;
					}
			.l-sideNav dt a:hover {
				background-color: rgba(216,232,239,0.5);
				}
		.l-sideNav dd {
			}
			.l-sideNav dd a {
				display: inline-block;
				box-sizing: border-box;
				border-bottom: #ccc solid 1px;
				padding-left: 15px; 
				width: 100%;
				height: 40px;
				line-height: 40px;
				color: #333;
				background-color: #fff;
				}
				.l-sideNav dd a::before {
					content: '●';
					padding-right: 5px;
					position: relative;
					font-size: 1.2rem;
					}
			.l-sideNav dd a:hover {
				color: #333;
				background-color: rgba(216,232,239,0.5);
				}



	/* only Fuji */
	.l-sideNav.p-sideNavFuji {
		}
		.l-sideNav.p-sideNavFuji h2 {
			padding-top: 3px;
			background-color: #ff0d00;
			border-radius: 8px 8px 0 0 / 8px 8px 0 0;
			-webkit-border-radius: 8px 8px 0 0 / 8px 8px 0 0;
			-moz-border-radius: 8px 8px 0 0 / 8px 8px 0 0;
			}
		.l-sideNav.p-sideNavFuji dl {
			border: #ccc solid 1px;
			box-shadow: 2px 2px 4px rgba(204,204,204,0.6);
			}
		.l-sideNav.p-sideNavFuji dd a::before,
		.l-sideNav.p-sideNavFuji dt a {
			color: #ff0c00;
			}
		.l-sideNav.p-sideNavFuji .p-waku{
				margin-bottom: 20px;
				padding-bottom: 15px;
				border-left: #ccc solid 1px;
				border-bottom: #ccc solid 1px;
				border-right: #ccc solid 1px;
				border-radius: 0 0 10px 8px / 0 0 8px 8px;
				-webkit-border-radius: 0 0 8px 8px / 0 0 8px 8px;
				-moz-border-radius: 0 0 8px 8px / 0 0 8px 8px;
				box-shadow: 2px 2px 4px rgba(204,204,204,0.6);
				}



	/* only Miya */
	.l-sideNav.p-sideNavMiya {
			}
		.l-sideNav.p-sideNavMiya h2 {
			background-color: #4a9626;
			}
		.l-sideNav.p-sideNavMiya dl {
			border-left: #ccc solid 1px;
			border-top: #ccc solid 1px;
			border-right: #ccc solid 1px;
			box-shadow: 2px 0px 4px rgba(204,204,204,0.6);
			}
		.l-sideNav.p-sideNavMiya dd a::before,
		.l-sideNav.p-sideNavMiya dt a {
			color: #4a9626;
			}
		.l-sideNav.p-sideNavMiya .p-waku{
				margin-bottom: 20px;
				padding-bottom: 15px;
				border-left: #ccc solid 1px;
				border-bottom: #ccc solid 1px;
				border-right: #ccc solid 1px;
				border-radius: 0 0 10px 8px / 0 0 8px 8px;
				-webkit-border-radius: 0 0 8px 8px / 0 0 8px 8px;
				-moz-border-radius: 0 0 8px 8px / 0 0 8px 8px;
				box-shadow: 2px 2px 4px rgba(204,204,204,0.6);
				}




/* -- sideNavBn -- */
	.l-sideNavBn .p-bnContact,
	.l-sideNavBn .p-bnConcept {
		position: relative;
		}
		.l-sideNavBn .p-bnContact::after,
		.l-sideNavBn .p-bnConcept::after {
			content: url(../img/common/icon_rb.png);
			position: absolute;
			right: 5px;
			bottom: 3px;
			}
	.l-sideNavBn .p-bnConcept {
		border-bottom: #ccc solid 1px;
		}

	.l-sideNavBn .p-bnContact a,
	.l-sideNavBn .p-bnConcept a {
		display: inline-block;
		box-sizing: border-box;
		padding-left: 15px; 
		width: 100%;
		height: 43px;
		line-height: 43px;
		color: #fff;
		font-size: 1.6rem;
		font-weight: bold;
		background-color: #999;
		box-shadow: 2px 2px 4px rgba(204,204,204,0.6);
		}
		.l-sideNavBn .p-bnContact a:hover,
		.l-sideNavBn .p-bnConcept a:hover {
			background-color: #b7b7b7;
			}

	.l-sideNavBn .p-bnConcept a {
		padding-top: 3px;
		border-radius: 8px 8px 0 0 / 8px 8px 0 0;
		-webkit-border-radius: 8px 8px 0 0 / 8px 8px 0 0;
		-moz-border-radius: 8px 8px 0 0 / 8px 8px 0 0;
		}
	.l-sideNavBn .p-bnContact a {
		padding-bottom: 3px;
		border-radius: 0 0 8px 8px / 0 0 8px 8px;
		-webkit-border-radius: 0 0 8px 8px / 0 0 8px 8px;
		-moz-border-radius: 0 0 8px 8px / 0 0 8px 8px;
		}





	.l-sideNavBn .p-bnFB a {
		display: inline-block;
		text-align: center;
		width: 100%;
		color: #fff;
		font-size: 1.8rem;
		font-weight: bold;
		background-color: #3B579D;
		padding: 8px 0 5px;
		}
		.l-sideNavBn .p-bnFB a:hover {
			background-color: #7589ba;
			}
		.l-sideNavBn .p-bnFB span {
			font-size: 13px;
			display: block;
			}








/* =====================================================================

	Section
	
======================================================================== */


	.l-section {
		padding-top: 20px;
		padding-bottom: 30px;
		}
	.l-section-t {
		padding-top: 20px;
		}
	.l-section-b {
		padding-bottom: 30px;
		}
	@media print, screen and (min-width: 768px) {
		.l-section-bL {
			padding-bottom: 50px;
			}
	}

	@media (max-width: 767px) {
		.l-section-bL {
			padding-bottom: 30px;
			}
	}







/* =====================================================================

	footer
	
======================================================================== */

footer {
	position: relative;
	}

	/* Sponsor List */
	.l-sponsor {
		clear: both;
		background-color: #585858;
		color: #fff;
		text-align: left;
		}
		.l-sponsor h2 {
			font-size: 1.6rem;
			font-weight: bold;
			border-bottom: #ccc dotted 2px;
			}

	.l-sponsorList li {
		float: left;
		}

		@media print, screen and (min-width: 768px) {
			.l-sponsor {
				padding-top: 40px;
				padding-bottom: 40px;
				min-width: 980px;
				}
			.l-sponsor h2 {
				margin-bottom: 30px;
				}
			.l-sponsorList li {
				width: 180px;
				margin-bottom: 15px;
				}
			.l-sponsorList li:not(:nth-child(5n)) {
				margin-right: 15px;
				}
		}
		@media (max-width: 767px) {
			.l-sponsor {
				padding-top: 20px;
				padding-bottom: 20px;
				}
			.l-sponsor h2 {
				margin-bottom: 20px;
				}
			.l-sponsorList li {
				width: 32%;
				margin-bottom: 2%;
				}
			.l-sponsorList li:not(:nth-child(3n)) {
				margin-right: 2%;
				}
		}




	/* Logo & address & Copyright */
	.l-footer {
		background-color: #ff0d00;
		color: #fff;
		text-align: center;
		}
	@media print, screen and (min-width: 768px) {
		.l-footer {
			min-width: 980px;
			padding-top: 20px;
			padding-bottom: 30px;
			}
		.l-footer address {
			display: none;
			}
	}
	@media (max-width: 767px) {
		.l-footer {
			background-color: #ff0d00;
			padding-top: 10px;
			}
		.l-footer address  {
			font-style: normal;
			margin-bottom: 15px;
			}
		.l-copyright {
			background-color: #000;
			margin-top: 20px;
			padding-top: 20px;
			padding-bottom: 90px;
			}
		.l-copyright span {
			display: none;
			}
	}




	/* Pagetop for pc / Footer button for sp */

	.l-pagetop {
		position: fixed;
		z-index: 100;
		opacity: 0;
		transition: all .7s;
		pointer-events: none;
		}
	.l-pagetop-on {
		opacity: 1;
		pointer-events: auto;
		}
	@media print, screen and (min-width: 768px) {
		.l-pagetop {
			right: 10px;
			}
	}
	@media (max-width: 767px) {
		.l-pagetop {
			left: 0px;
			}
		.l-pagetop ul {
			display: -webkit-flex;
			display: flex;
			-webkit-justify-content: space-around;
			justify-content: space-around;
			}
		.l-pagetop li {
			text-align: center;
			width: 33%;
			}
		.l-pagetop li img{
			width: 60px;
			height: 60px;
			text-align: center;
			}
	}
	@media (max-width: 400px) {
		.l-pagetop li img{
			width: 50px;
			height: 50px;
			}
	}



