@charset "utf-8";

@font-face {
	font-family: 'Rockville';
	src: url('../img/fonts/Rockville Solid.otf');
}
* {
	margin: 0px;
	padding: 0px;
	opacity: 1;
}
*:focus {
  outline: none;
}
.disable {
	-webkit-touch-callout: none !important;
	-webkit-user-select: none !important;
	-khtml-user-select: none !important;
	-moz-user-select: none !important;
	-ms-user-select: none !important;
	-o-user-select: none !important;
	user-select: none !important;
	pointer-events: none !important;
}
body {
	margin: auto;
	font-family: 
		'Yu Gothic Medium',
		'游ゴシック Medium',
		'YuGothic',
		'游ゴシック体',
		'メイリオ',
		'ヒラギノ角ゴ Pro W3',
		sans-serif;
	font-size: .9em;
}
main {
	display: block;
}
a {
	color: inherit;
	text-decoration: none;
	-webkit-tap-highlight-color:rgba(0,0,0,0);
	cursor: pointer;
}
img {
	width: 100%;
}
button {
	background-color: #cf2600;
	color: white;
	padding: 0.7rem 2rem;
	font-size: 1.7em;
	border: none;
	cursor: pointer;
}
br.res {
	display: none;
}

/* cols
*pink1: #ea444e;
*blu: rgb(21, 75, 149);
*yellow1: #ffd12a;
*ong: #dec233;

* daichi: #dddd00;
* eqs: #ddaa00;
* dm: ;
* iqs: #ffcfbf;
*/

.img {
	line-height: 0px;
	position: relative;
	z-index: 1;
}

.img img {
	width: 100%;
	height: 100%;
	-o-object-fit: contain;
	object-fit: contain;
}
.set_width {
	max-width: 1200px;
	margin: 0px auto;
	vertical-align: middle;
}
.split {
	text-align: justify;
	text-align-last: justify;
}
.split * {
	text-align: initial;
	text-align-last: initial;
}
.selected {
	opacity: .4;
	pointer-events: none;
	cursor: pointer;
}
#items .contact.selected,
.top_cont.selected {
	background: rgba(40,40,230,.8);
	pointer-events: none;
	cursor: pointer;
	opacity: 1;
}
.btn {
	display: block;
	position: absolute;
	top: 33%;
	right: 0px; bottom: 0px; left: 0px;
	margin: auto;
	padding: 0px;
	border: none;
	background: rgba(2, 32, 140, 1);
	opacity: .8;
	border-radius: 100%;
	width: 70px;
	height: 70px;
	cursor: pointer;
}
.btn::before {
	content: "";
	display: block;
	position: absolute;
	top: 0px; right: 0px; bottom: 0px; left: 0px;
	margin: auto;
	height: 0px;
	width: 0px;
	z-index: 500;
	border: solid;
	border-width: 8px 0 8px 16px;
	border-color: rgba(0,0,0,0);
	border-left-color: white;
}
.btn:hover {
	background: rgba(200,20,20,.8);
}
a:hover .btn {
	background: rgba(200,20,20,.8);
}

.h_fil {
	min-height: 100%;
}
.flex {
	display: -webkit-flex;
	display: -moz-flex;
	display: -ms-flex;
	display: -o-flex;
	display: flex;
}
.dirrow {
	flex-direction: row;
}
.dircol {
	flex-direction: column;
}
.dirrowr {
	flex-direction: row-reverse;
}
.dircolr {
	flex-direction: column-reverse;
}
.flexwrp {
	-webkit-flex-wrap: wrap;          /* Safari etc. */
	-ms-flex-wrap    : wrap;          /* IE10        */
	flex-wrap        : wrap;
}

.pos_mid {
	content: "";
	display: inline-block;
	height: 100%;
	width: 0px;
	vertical-align: middle;
}

@media screen and (max-width: 800px) {
	.btn {
		width: 10vw;
		height: 10vw;
	}
	.btn::before {
		border-width: 1vw 0 1vw 2vw;
	}
}
@media screen and (min-height: 800px) {
	.set_width {
		max-width: 1400px;
	}
}
/* menu */
#menu {
	position: fixed;
	top: 0px; right: 0px;
	z-index: 500;
	padding: 0rem 0rem;
	/*height: 5rem;*/
	width: 100%;
	font-size: .9em;
	font-weight: bold;
	font-family: 'helvetica';
	text-align: right;
	background: rgba(255,255,255,.65);
}
.list-smooth *, .smooth {
	transition: 
		background .15s 
			cubic-bezier(0.21, 0.76, 0.64, 0.99) 0s,
		transform .15s 
			cubic-bezier(0.21, 0.76, 0.64, 0.99) 0s;
}
#logo {
	display: block;
	position: fixed;
	z-index: 1001;
	top: 0px;
	left: 0;
	text-align: left;
	line-height: 0rem;
    height: 4rem;
	animation: appear_d .8s ease 1.5s both;
}
#logo::before {
	content: "";
	display: inline-block;
    height: 4rem;
	vertical-align: middle;
}
#logo a {
	display: inline-block;
	height: 2.5rem;
	min-height: 40px;
	margin: 0 1rem;
	vertical-align: middle;
}
#logo img {
	width: auto;
	height: 100%;
	-webkit-filter: drop-shadow(0 0 .2rem rgba(255,255,255,.8));
	-khtml-filter: drop-shadow(0 0 .2rem rgba(255,255,255,.8));
	-moz-filter: drop-shadow(0 0 .2rem rgba(255,255,255,.8));
	-ms-filter: drop-shadow(0 0 .2rem rgba(255,255,255,.8));
	-o-filter: drop-shadow(0 0 .2rem rgba(255,255,255,.8));
	filter: drop-shadow(0 0 .2rem rgba(255,255,255,.8));
}
#menu * {
	vertical-align: middle;
}
button#cls img {
    height: 1.5em;
    width: auto;
}
button.top_cont,
#humb, #cls {
	padding: 0px;
	width: 65px;
	height: 65px;
	text-align: center;
	font-size: 8px;
}
button.top_cont {
	display: none;
	position: absolute;
	top: 0px; right: 0rem;
	background: rgba(230, 131, 30, 0.9);
}
button.top_cont img,
#humb img {
	height: 30%;
	width: auto;
	padding: 2px;
}
button.top_cont img {
	margin-right: -10%;
}
#humb {
	display: none;
	position: absolute;
	top: 0px; right: 65px;
	background: rgba(255, 255, 255, .7);
	color: #044b94;
}
#cls {
	display: none;
	position: absolute;
	top: 0px; left: 0px; right: 0px;
	width: 100%;
	text-align: left;
	background: unset;
}
#cls img {
	margin: 25px;
}
#items {
	display: inline-block;
	vertical-align: middle;
	line-height: 1rem;
}
#items li {
	display: inline-block;
	margin: 0 -.25rem;
	text-align: center;
	vertical-align: middle;
	animation: appear_d .7s ease 1.5s both;
}
#items a {
	padding: 1.5rem .75rem;
}

#items .contact {
	margin-left: 1rem;
	padding: 1.5rem;
	font-size: 1.2em;
	vertical-align: middle;
	box-shadow: 0 0 .3rem rgba(0,0,0,.2);
	color: #fff;
	background: #e6831e;
}
#items .contact:hover {
	background: rgba(200,20,20,.1);
}
.curtain {
	position: fixed;
	z-index: 1023;
	top: 0px; right:0px; bottom: 0px; left: 0px;
	left: auto;
	width: 100vw;
	background-color: #fff;
	overflow: hidden;
	transform-origin: right;
	animation: 
		pushInTf reverse 0.7s cubic-bezier(0.76, 0.01, 0.71, 0.96) forwards 1.6s;
}
.curtain::after {
	content: "";
	position: fixed;
	top: 0%;
	bottom: 0%;
	right: 0px;
	left: 0px;
	z-index: 1024;
	background: #ea444e;
	transform: scale(0,1);
	transform-origin: left;
	animation: 
		pushInTf 0.7s cubic-bezier(0.41, 0.54, 0.68, 0.84) forwards 1.5s;
}
.ie .curtain,
.ie .curtain::after {
	transform: translate(1,1) !important;
	animation: clear 0.7 ease forwards 1.5s;
}
.ie .curtain::after {
	display: none;
}

@keyframes slideOutC {
	  0% { width: 100%; }
	100% { width: 0%; }
}
@keyframes pushInTf {
	  0% { transform: scale(0,1); }
	100% { transform: scale(1,1); }
}
@keyframes clear {
	  0% { opacity: 1; }
	99.9% { opacity: 0; }
	100% { opacity: 0; display: none; z-index: -9999; }
}
.curtain img {
	position: fixed;
	top: 0; right: 0; bottom: 0; left: 0;
	margin: auto; 
	width: 400px;
	max-width: 95vw;
	animation: 
		fadeIn2 0.5s ease forwards reverse 1.2s;
}

@keyframes arrow {
	  0% {
		-webkit-transform: translate3d(-50%, 0, 0);
		transform: translate3d(-50%, 0, 0);
	}
	 60% {
		-webkit-transform: translate3d(-50%, 100px, 0);
		transform: translate3d(-50%, 100px, 0);
	}
	100% {
		-webkit-transform: translate3d(-50%, 100px, 0);
		transform: translate3d(-50%, 100px, 0);
	}
}

@media screen and (min-width: 800px) and (max-height: 700px) {
	#menu {
		height: 3.2rem;
		line-height: 3.2rem;
		font-size: .8em;
	}
	#logo, #logo::before {
		height: 3.2rem;
	}
	#items {
		line-height: .8rem;
	}
	#items li {
		margin: 0 -.20rem;
	}
	#items a {
		padding: 1.2rem .60rem;
	}
	#items .contact {
		margin-left: .8rem;
		padding: 1.2rem;
	}
}
@media screen and (max-height: 700px; max-width: 800px), (max-width: 1050px) {
	#menu #logo {
		margin: 10px 0;
	}
	#logo {
		position: absolute;
		z-index: 95;
	}
	#logo, #logo::before {
		height: 65px;
	}
	#logo a {
		vertical-align: middle;
	}
	#menu {
		background: none;
	}
	button.top_cont, #humb {
		display: block;
	}
	#items {
		position: fixed;
		top: 0px;  
		right: 0px;
		bottom: 0px;
		padding: 0rem 0px;
		width: 0%;
		max-width: 300px;
		margin: 0 0 0 auto;
		overflow: hidden;
		border: none;
		font-size: 1.3em;
		background: rgba(255, 255, 255, .9);
		box-shadow: 0 0 .5rem rgba(0,0,0,.25);
		transition: width .15s 
			cubic-bezier(0.21, 0.76, 0.64, 0.99) 0s;
	}
	#items nav,
	#items ul {
		width: 100%;
		height: 100%;
		max-height: 600px;
		display: flex;
	}
	#items ul {
		padding-top: 65px;
		height: calc(100% - 65px);
		flex-direction: column;
		justify-content: space-around;
	}
	#items li {
		margin: auto;
		width: 150px;
	}
	#items a,
	#items .contact {
		text-align: center;
		font-size: 16px;
		margin: 0px;
		padding: 1em 0;
		line-height: 1em;
	}
	#items.menu_open {
		width: 100%;
	}
	.menu_open #cls {
		display: block;
	}
}
@media screen and (max-width: 500px) {
	#items {
		max-width: 500px;
	}
	#items ul {
		max-height: 100vh;
	}
	.res {
		display: inline;
	}
}
@media screen and (max-width: 1000px) {
	.btn {
		width: 7vw;
		height: 7vw;
	}
	.btn::before {
		border-width: .7vw 0 .7vw 1.4vw;
	}
}

footer {
	padding: 1rem;
	text-align: center;
	background: #fff /*rgba(20,20,200,1)*/;
	color: #000;
	font-size: .75em;
}

@media screen and (max-width: 800px) {
	html {
		font-size: 2vw;
	}
	.txt {
		line-height: 1.5em;
	}
} 
@media screen and (min-width: 800px) and (max-width: 1000px) {
	html {
		font-size: 2vw;
	}	
} 
@media screen and (min-width: 1000px) {
	html {
		font-size: 20px;
	}	
}

/* NAVIGATION */
nav ul {
	list-style: none;
	text-align: center;
}
nav ul li {
	display: inline-block;
}
nav ul li a {
	display: block;
	text-decoration: none;
	padding: .5rem .75rem;
	text-transform: uppercase;
}
nav ul li a,
nav ul li a::after,
nav ul li a::before {
	transition: background .5s;
}
nav ul li a:hover {
	color: #555;
}

#items .contact a:hover,
#items .contact a:hover::after {
	pointer-events: none;
}

@media screen and (min-width: 800px) and (max-height: 700px) {
	nav ul li a {
		display: block;
		text-decoration: none;
		padding: .4rem .6rem;
		text-transform: uppercase;
	}
}

/* stroke */
nav.fill ul li a {
	position: relative;
}
nav.fill ul li a::after {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	margin: auto;
	width: 0%;
	content: '.';
	color: transparent;
	background: #aaa;
	height: 1px;
	text-align: left;
	margin: 0;
	opacity: 0;
}
nav.fill ul li a:hover {
	color: #fff;
	z-index: 1;
}
nav.fill ul li a:hover::after {
	z-index: -10;
	-webkit-animation: fill .5s forwards;
	-khtml-animation: fill .5s forwards;
	-moz-animation: fill .5s forwards;
	-ms-animation: fill .5s forwards;
	-o-animation: fill .5s forwards;
	animation: fill .5s forwards;
	opacity: 1;
}

/* Keyframes */
@-webkit-keyframes fill {
	  0% {
		width: 0%;
		height: 1px;
	}
	 50% {
		width: 100%;
		height: 1px;
	}
	100% {
		width: 100%;
		height: 100%;
		background: rgba(230,40,40,.7);
	}
}

/* shine */
.shiny {
	position: relative;
	overflow:hidden;
}
.shiny:before {
    content: " ";
    position: absolute;
    display: block;
    top: 0px;
    left: 0px;
    width: 40%;
    height: 100%;
    margin-left: -40%;
    background: rgba(255, 255, 255, 0.3);
    z-index: 10;
    transform-origin: top right;
    transform: skewX(-45deg);
    transition:
    	 margin .35s ease-in-out ,
    	 width .3s ease-in-out !important;
}
.shiny:hover:before {
	width: 100%;
	margin-left: 140%;
}

@media screen and (max-width: 595px) {
	footer {
		font-size: 1.6rem;
	}
}