@charset "UTF-8";
/* CSS Document */

/* -------------------------------- 

Primary style

-------------------------------- */
*, *:after, *:before {
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box;
}

body {
	font-family: "Noto Sans Japanese", sans-serif;
	color:#111111;
    font-size:62.5%;
	line-height:1.6em;
}

body.overflow-hidden {
  /* when primary navigation is visible, the content in the background won't scroll */
  overflow: hidden;
}

a {
  color: white;
  text-decoration: none;
}
/* 枠の太さ = 10px */
/* 枠の色 = #f08d24*/

html:before,
html:after,
body:before,
body:after {
  content: "";
  background: #fabf13;
  position: fixed;
  display: block;
  z-index: 120;
}

/* 上 */
html:before {
  height: 5px; 
  width: 100vw;
  left: 0;
  top: 0;
}

/* 右 */
html:after {
  width: 5px;
  height: 100vh;
  right: 0;
  top: 0;
}

/* 下 */
body:before {
  height: 5px;
  width: 100vw;
  bottom: 0;
  left: 0;
}

/* 左 */
body:after {
  width: 5px;
  height: 100vh;
  top: 0;
  left: 0;
}

@media only print{/* 上 */
html:before {
  height: 0px; 
}

/* 右 */
html:after {
  width: 0px;
}

/* 下 */
body:before {
  height: 0px;
}

/* 左 */
body:after {
  width: 0px;
}

}

/* -------------------------------- 

Main components 

-------------------------------- */
html, body {
  height: 100%;
}

header {
	background: #fff;
	position: fixed;
	z-index: 30;
	width: 100%;
	height: 90px;
	top: 0;
	left: 0;
}

header .logo {
  display: block;
	text-align: center;
	padding: 10px 10px;
	margin: 0 auto;
	width: 60%;
	max-width: 180px;
	display: flex;
	justify-content: center;
	align-items: center;
	height: 90px;
}
header .logo img{
	width: 100%;
}

nav{
	display: none;
}

/** メニュー開閉ボタン */
.navopen {
	position: fixed;
	top: 5px; left: 5px;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	width: 85px;
	height: 85px;
	margin: auto;
	background: #fabf13;
	transition: background-color 0.2s;
	z-index: 100;
}
.navopen:hover {
	background: hsl(45, 96%, 73%);
}
.navopen .icon {
	display: block;
	position: relative;
	width: 30%;
	height: 2px;
	border-radius: 2px;
	background: black;
}
.navopen .icon::before,
.navopen .icon::after {
	content: "";
	display: block;
	position: absolute;
	width: 100%;
	height: 2px;
	border-radius: 2px;
	background: black;
	transition: top 0.2s, transform 0.2s;
}
.navopen .icon::before { top: -6px; }
.navopen .icon::after { top: 6px; }

.navopen.active .icon { height: 0; }
.navopen.active .icon::before { top: 0; transform: rotate(45deg); }
.navopen.active .icon::after { top: 0; transform: rotate(-45deg); }

/** ナビ */
	nav {
		display: block;
		width: 350px;
		position: fixed;
		top: 90px;
		left: 5px;
		bottom: 5px;
		/*perspective: 1000px;*/
		opacity: 0;
		transition: opacity 0.3s;
		z-index: 1000;
		pointer-events: none;
	}
	nav.active {
		opacity: 1;
		pointer-events: all;
	}
	nav .navinner {
		width: 100%;
		height: 100%;
		padding: 60px 0;
		color: white;
		background: #000 url("../img/common/logonav.svg") center center no-repeat;
		font-size: 16px;
		font-weight: 300;
		transform: rotateY(90deg);
		transform-origin: left center;
		transition: transform 0.3s;
	}
	nav.active .navinner {
		transform: none;
	}
	nav li ul {
		display: none;
	}
	nav li a {
		display: block;
		position: relative;
		padding: 10px 40px;
	}
	nav li a span{
		font-size: 0.8em;
		margin-right: 10px;
	}
	nav li.snsbtn {
		padding: 30px 50px;
		font-size: 1.5rem;
	}
	nav li.snsbtn a {
		display: inline-block;
		position: relative;
		padding: 10px 10px;
	}
nav li.navs{
	margin-top: 30px;
}
/*
	nav li a:not(.expand)::before {
		content: "";
		display: block;
		position: absolute;
		top: 1px; right: 2px; bottom: 0;
		width: 10px;
		height: 10px;
		margin: auto;
		border-top: 2px solid white;
		border-right: 2px solid white;
		transform: rotate(45deg);
	}
	nav li a.expand::before {
		content: "";
		display: block;
		position: absolute;
		top: 1px; right: 0; bottom: 0;
		width: 12px;
		height: 2px;
		margin: auto;
		background: white;
	}
	nav li a.expand::after {
		content: "";
		display: block;
		position: absolute;
		top: 1px; right: 5px; bottom: 0;
		width: 2px;
		height: 12px;
		margin: auto;
		background: white;
	}*/
	nav li a.expand.naventry {
		background: rgba(250, 191, 27, 0.60);
	}
	nav li a.expand::before {
		content: "";
		display: block;
		position: absolute;
		top: 1px; right: 30px; bottom: 0;
		width: 10px;
		height: 10px;
		margin: auto;
		border-top: 2px solid white;
		border-right: 2px solid white;
		transform: rotate(45deg);
	}
	nav li a.expand + ul {
		display: block;
		position: absolute;
		top: 0; left: 350px; bottom: 0;
		padding: 60px 0;
		width: 350px;
		background: rgba(60, 60, 60, 0.95);
		transform: rotateY(90deg);
		transform-origin: left center;
		transition: all 0.3s;
		opacity: 0;
		visibility: hidden;
	}
	nav li a.expand.active + ul {
		opacity: 1;
		transform: none;
		visibility: visible;
	}
	nav li a.expand + ul li {
		opacity: 0;
		transform: translateX(-30px);
		transition: all 0.2s 0.2s;
	}
	nav li a.expand.active + ul > * {
		opacity: 1;
		transform: none;
	}
	nav li a:hover {
		background-color: rgba(255,255,255,0.15);
	}
	nav li a.expand.naventry:hover {
		background: rgba(250, 191, 27, 0.80);
	}
	nav li a.back {
		display: none;
	}
	nav li a:not(.expand).back::before {
		left: 10px;
		right: auto;
		transform: rotate(-135deg);
	}

@media (max-width: 767px) {
header {
	background: #fff;
	position: fixed;
	z-index: 30;
	width: 100%;
	height: 70px;
	top: 0;
	left: 0;
}
header .logo {
	height: 70px;
}
		.navopen {
			width: 60px;
			height: 60px;
		}
		nav {
			width: calc(100% - 10px);
		top: 70px;
		}
		nav .navinner {
			padding: 15px;
		}
		nav li a.expand + ul {
			left: 35px;
			width: calc(100% - 35px);
			background: rgba(60, 60, 60, 1);
			z-index: 150;
		}
		nav li a.back {
			display: block;
			margin-top: 20px;
			background: #333;
			padding: 5px 30px;
		}
	}

/** 検索開閉ボタン */
	.searchopen {
		position: fixed;
		top: 5px; right: 5px;
		display: flex;
		flex-wrap: wrap;
		align-items: center;
		justify-content: center;
		width: 85px;
		height: 85px;
		margin: auto;
		background: #fabf13;
		transition: background-color 0.2s;
		z-index: 100;
	}
	.searchopen:hover {
		background: hsl(45, 96%, 73%);
	}
	.searchopen.active .icon {
		display: block;
		position: relative;
		top: -3px;
		width: 30%;
		height: 2px;
		border-radius: 2px;
		background: black;
	}
	.searchopen.active .icon svg {
		display: none;
	}
	.searchopen.active .icon::before,
	.searchopen.active .icon::after {
		content: "";
		display: block;
		position: absolute;
		width: 100%;
		height: 2px;
		border-radius: 2px;
		background: black;
		transition: top 0.2s, transform 0.2s;
		transform-origin: center;
	}
	.searchopen.active .icon::before { top: -6px; }
	.searchopen.active .icon::after { top: 6px; }

	.searchopen.active .icon { height: 0; }
	.searchopen.active .icon::before { top: 0; transform: rotate(45deg); }
	.searchopen.active .icon::after { top: 0; transform: rotate(-45deg); }
	.search {
		display: none;
		position: absolute;
		top: 90px;
		right: 0; left: 0;
		z-index: 100;
	}

	@media (max-width: 767px) {
		.searchopen {
			width: 60px;
			height: 60px;
		}
	.search {
		top: 70px;
	}
	}

/** カスタム検索 */
	.gsc-control-cse {

	}
	.gsc-control-cse table,
	.gsc-control-cse td {
		border: none;
	}

	.gsc-search-box-tools .gsc-search-box .gsc-input,
	table.gsc-search-box,
	.gsc-above-wrapper-area-container {
		margin: 0;
	}

	.gsc-search-button,
	.gsc-search-button.gsc-search-button-v2 {
		border: none;
		border-radius: 0;
		background: #fabf13;
	}
	.gsc-search-button {
	}
	.gsc-search-button.gsc-search-button-v2 {
		display: flex;
	}
	.gsc-search-button,
	.gsc-search-button.gsc-search-button-v2:hover {
		background: #fabf13;
	}
	.gsc-search-box-tools .gsc-search-box {
		border: 1px solid #fabf13;
	}
	.gsc-search-box-tools .gsc-search-box .gsc-input-box,
	.gsc-search-box-tools .gsc-search-box .gsc-input-box .gsc-input {
		border: none;
	}
	.gsc-search-box-tools .gsc-search-box .gsc-input-box .gsc-search-button {
		padding: 0;
	}
	.gsst_b {
		display: none;
	}

	@media print, screen and (min-width: 768px) {
		.gsc-control-cse table td {
			font-size: inherit;
			line-height: inherit;
		}
	}
	@media (max-width: 767px) {
		.gsc-search-button {
			background: none;
		}
	}

/*----------------------------------------------------
FMenu
----------------------------------------------------*/

.Fmenu{
	max-width: 1080px;
	margin: 20px auto 60px;
	padding: 10px;
}
.Fmenu .lmenu{
	width: 50%;
	text-align: left;
	margin: 0;
}
.Fmenu .rmenu{
	width: 50%;
	text-align: right;
	margin: 0;
}
.Fmenu .lmenu a,
.Fmenu .rmenu a{
	background: #000;
	color: #fabf1b;
	font-size: 1.5em;
	line-height: 1.6em;
	letter-spacing: 0.05em;
	padding: 8px 50px;
}


.Fmenu .lmenu a:hover,
.Fmenu .rmenu a:hover{
	color: #000;
}
.menupn{
	font-size: 1.3em;
	line-height: 1.5em;
}

	@media print, screen and (max-width: 960px) {
.Fmenu .lmenu a,
.Fmenu .rmenu a{
	font-size: 1.4em;
	padding: 8px 30px;
}
}
	@media print, screen and (max-width: 768px) {
.Fmenu{
	max-width: 1080px;
	margin: 30px auto 30px;
	padding: 10px 20px;
	background: #f3f3f3;
}
.Fmenu .lmenu a,
.Fmenu .rmenu a{
	font-size: 1.3em;
	padding: 8px 30px;
	text-align: center;
}
.Fmenu .lmenu a span,
.Fmenu .rmenu a span{
	display: block;
	font-size: 0.9em;
}
.menupn{
	font-size: 1.2em;
	line-height: 1.6em;
}
}
	@media only screen and (max-width: 480px) {
.Fmenu{
	max-width: 1080px;
	margin: 30px auto 30px;
	padding: 10px 15px;
	background: #f3f3f3;
}
		
.Fmenu .lmenu a,
.Fmenu .rmenu a{
	font-size: 1.2em;
	padding: 8px 15px;
	min-width: 80%;
}
}

/*----------------------------------------------------
Footer
----------------------------------------------------*/

footer{
	background: #000000;
	padding: 20px;
/*	margin-top: 30px;*/
}
footer .finner{
	position: relative;
	max-width: 1200px;
	margin: 0 auto;
}
footer .flogo{
	text-align: left;
}
footer p{
	color: #fff;
	font-size: 1.4em;
	line-height: 1.5em;
	text-align: left;
}
footer .snsbtn{
	position: absolute;
	right: 0px;
	top: 10px;
	font-size: 2em;
}
footer .snsbtn a{
	display: inline-block;
	padding: 8px;
}


@media only screen and (max-width: 480px) {
footer .snsbtn{
	position: relative;
	right: 0px;
	top: 10px;
	font-size: 2em;
}
footer .snsbtn a{
	display: inline-block;
	padding: 8px;
}
}

@media print{
	header,.navopen,.searchopen{
		position: absolute;
	}
	
}