@charset "utf-8";
/*
Theme Name: STAR BACK OFFICE
Description: Template for STAR BACK OFFICE
Author: design maf
Author URI: https://designmaf.com/
Version: 1.1
*/

body, dd, div, dl, dt, fieldset, form, h1, h2, h3, h4, h5, h6, input, li, ol, p, textarea, ul{
	margin: 0;
	padding: 0;
	list-style: none;
}
img{
	border: 0;
	max-width: 100%;
	height: auto
}
*{
	box-sizing: border-box
}
html{
	font-size: 16px;
}
body{
	font-weight: 400;
	font-family: 'Noto Sans JP', YuGothic, "Yu Gothic Medium", "Yu Gothic", sans-serif;
	line-height: 1.6;
	letter-spacing: .02em;
	color: #333;
	overflow-x: hidden;
}

a{
	color: #c81919;
	text-decoration: none;
	transition: .5s;
}
:focus{
	outline: 0
}


/* common
------------------------------------------------------------*/
.tbl{
	display: flex;
	flex-wrap: wrap;
}

.tbl dt{
	width: 7rem;
	padding: 1rem 0;
	color: #555;
	font-weight: 600;
}

.tbl dd{
	width: calc(100% - 7rem);
	padding: 1rem 0;
}

.tbl dt:first-of-type,
.tbl dd:first-of-type{
	border: 0;
}

dt,
dd{
	position: relative;
	opacity: 0;
	transition: .5s;
}

dd{
	transition-delay: 1s;
	transition: 1s;
}


h5:after,
dt:after,
dd:after{
	content: '';
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 2px;
	background: #c81919;
	transition: 1s;
	transform: scale(0, 1);
	transform-origin: left top;
}

dt:after,
dd:after{
	bottom: auto;
	top: 0;
}

dd:after{
	background: #ccc;
}


h5.is-show:after,
dt.is-show:after,
dd.is-show:after{
	transform: scale(1, 1);
}

.is-show{
	animation-name: fadeIn;
	animation-duration: 1s;
	animation-fill-mode: forwards;
}

@keyframes fadeIn{
	0%{
    opacity: 0;
  }
  100% {
    opacity: 1;
		filter: blur(0);
		transform: translate(0);
  }
}


.bgExtendTrigger{
	padding: .1em 2em .1em 0;
	position: relative;
	overflow: hidden;
	opacity: 0;
}

.bgExtend{
	opacity: 1;
}

.bgExtend:before{
	animation-name: bgExtendAnimeBase;
	animation-duration: 1s;
	animation-fill-mode: forwards;
	content: '';
	position: absolute;
  width: 100%;
  height: 100%;
  background: #c81919;
}

@keyframes bgExtendAnimeBase{
	0% {
		transform-origin:left;
		transform:scaleX(0);
	}
	50% {
		transform-origin:left;
		transform:scaleX(1);
	}
	50.001% {
		transform-origin:right;
	}
	100% {
		transform-origin:right;
		transform:scaleX(0);
	}
}


/* nav
------------------------------------------------------------*/
#nav{
	position: fixed;
	top: 0;
	left: 0;
	display: flex;
	width: 100%;
	height: 100px;
	padding: 0 2%;
	justify-content: space-between;
	align-items: center;
	background: #fff;
	box-shadow: rgba(0,0,0,.1) 0 0 10px;
	z-index: 900;
}

#nav .logo{
	font-size: 1.25rem;
	font-weight: 800;
}

#nav .logo a{
	display: block;
	position: relative;
}

#nav .logo span{
	position: absolute;
	top: 0;
	right: 0;
	color: #006650;
}

#nav .logo img{
	display: block;
}

#nav ul{
	font-weight: 600;
	font-family: 'Montserrat', sans-serif;
}

#nav li{
	padding: 0 1em;
	font-size: 1.125rem;
}

#nav a{
	position: relative;
	color: #333;
}

#nav li:last-child a{
	color: #c81919;
}

#footer{
	padding: 2rem 2%;
	color: #fff;
	background: #333;
	font-size: .85rem;
	font-family: 'Montserrat', sans-serif;
}

@media screen and (min-width:841px){
	#menu{
		display: none;
	}

	#nav ul{
		display: flex;
		justify-content: flex-end;
		align-items: center;
		font-size: 1rem;
	}

	#nav li a:after{
		content: '';
		position: absolute;
		bottom: 0;
		left: 0;
		width: 100%;
		height: 2px;
		background: #c81919;
		transition: .5s;
		transform: scale(0, 1);
		transform-origin: left top;
	}

	#nav li a:hover:after{
		transform: scale(1, 1);
	}

	.flex{
		display: flex;
		width: 100%;
		justify-content: space-between;
		align-items: center;
	}
	.flex > div{
		width: 50%;
		padding: 0 2%;
	}

	#footer > div{
		text-align: right;
	}
}


@media screen and (max-width:1310px) and (min-width:841px){
	#nav .logo{
		width: calc(100% - 600px)
	}
	#nav li{
  	padding: 0 .5em;
  	font-size: 1rem;
	}
}

@media screen and (max-width:840px){
	html{
		font-size: 14px;
	}

	#nav{
		height: 60px;
		padding-right: 0;
	}

	#nav .logo{
		font-size: 1rem;
	}

	#nav .logo img{
		width: auto;
		max-height: 26px;
	}

	#menu{
		width: 60px;
		height: 60px
	}

	#menu{
		position: relative;
		margin: 0 20px 0 0;
		cursor: pointer;
	}

	#menu span,
	#menu:after,
	#menu:before{
		display: block;
		position: absolute;
		top: 18px;
		right: 0;
		width: 30px;
		height: 2px;
		content: '';
		background: #006650;
		transition: .5s
	}

	#menu:after{
		top: 38px
	}
	#menu span{
		top: 28px
	}

	#menu.isOpen span{
		display: none;
	}
	#menu.isOpen:before{
		transform: translateY(10px) rotate(45deg)
	}
	#menu.isOpen:after{
		transform: translateY(-10px) rotate(-45deg)
	}

	#panel{
		position: fixed;
		top: -100%;
		left: 0;
		opacity: 0;
		width: 100%;
		min-height: 80vh;
		background: #fff;
	}

	#panel.isOpen{
		opacity: 1;
		left: 0;
		top: 60px;
		z-index: 100;
	}

	#nav ul{
		padding-top: 2rem;
	}

	#panel a{
		display: block;
		padding-right: 1em;
	}

	#panel li{
		margin-bottom: 2em;
		font-size: 1.25rem;
	}

	.tbl,
	#contact{
		display: block;
	}

	.tbl dt,
	.tbl dd{
		width: 100% !important;
	}

	.tbl dt{
		padding-bottom: 0;
	}

	.tbl dd{
		padding-top: 0;
	}

	.tbl dd:after{
		content: none;
	}

	#footer{
		text-align: center;
	}

}

@media screen and (min-width:481px){
	.spBr{
		display: none;
	}
}


@media screen and (max-width:480px){
	#nav .logo img{
		width: 280px;
	}
}