@charset "UTF-8";

/*--------------------------------------------------
  body
--------------------------------------------------*/
html {
  font-size: 62.5%;
	-webkit-text-size-adjust: 100%;
}
body {
	background: #201e1f;
  color: #fff;
  font-size: 14px;
  font-family: 'Noto Sans JP', sans-serif;
	font-weight: 500;
	-webkit-text-size-adjust: none;
	word-break: break-word;
	word-wrap: break-word;
	overflow-wrap: break-word;
	overflow-x: hidden;
}
a {
	display: block;
  text-decoration: none;
	color: #fff;
	transition: all 0.3s;
}
a:hover {
  opacity: 0.6;
  filter: alpha(opacity=60);
  -ms-filter: "alpha(opacity=60)";
}
img {
	width: 100%;
}
body, html {
	/* important */
	height: 100%;
}

.cf:after {
  content: "";
  clear: both;
  display: block;
}

.pc_only {
	display: block;
}
.sp_only {
  display: none;
}

.pc_br {
	display: block;
}
.sp_br {
  display: none;
}

.ff01 {
	font-family: 'Noto Serif JP', serif;
}
.ff02 {
	font-family: 'Marcellus SC', serif;
}

@media screen and (max-width: 768px){
	body {
		font-size: 14px;
	}
	.pc_only {
		display: none;
	}
	.sp_only {
		display: block;
	}
	
	.pc_br {
		display: none;
	}
	.sp_br {
		display: block;
	}
}





/*--------------------------------------
　Header
---------------------------------------*/
header {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	min-width: 1128px;
	padding: 30px 0 0;
	box-sizing: border-box;
	z-index: 2;
}

header .header_inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

header .logo {
	width: 280px;
	box-sizing: border-box;
}

header .header_nav {
	width: calc(100% - 290px);
	padding: 0 20px 0 0;
	box-sizing: border-box;
}

header .g-nav ul {
	display: flex;
	justify-content: flex-end;
}
header .g-nav li {
	margin: 0 22px 0 0;
	box-sizing: border-box;
}
header .g-nav li:last-child {
	margin: 0 0 0 0;
	box-sizing: border-box;
}
header .g-nav li a {
	padding: 0 15px 0 0;
	box-sizing: border-box;
	color: #fff;
	font-size: 14px;
  line-height: 1.4;
	position: relative;
}
header .g-nav li a:after{
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	width: 6px;
	height: 6px;
	margin-top: -3px;
	border-top: solid 2px #fff;
	border-right: solid 2px #fff;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
}

@media screen and (max-width: 768px) {
	header {
		position: relative;
		background: #fff;
		width: 100%;
		height: 50px;
		min-width: 100%;
		padding: 0 0 0;
	}

	header .header_inner {
		display: block;
	}

	header .logo {
		display: flex;
		align-items: center;
		width: 50%;
		height: 50px;
	}

	header .header_nav {
		width: 100%;
		padding: 0 0 0 0;
	}

	header .g-nav ul {
		display: block;
	}
	header .g-nav li {
		padding: 20px 0;
		margin: 0 0 0 0;
		border-bottom: 1px solid #eee;
	}
	header .g-nav li a {
		padding: 0 30px 0 0;
		color: #201e1f;
		position: relative;
	}
	header .g-nav li a:after{
		content: "";
		position: absolute;
		top: 50%;
		right: 0;
		transform: translate(0,-50%);
		background: url("../img/arrow_01.png") left top no-repeat;
		background-size: 100% auto;
		width: 18px;
		height: 18px;
	}
}



/*--------------------------------------
　SP Navi
---------------------------------------*/
@media screen and (max-width: 768px) {
	/*----- hb-menu -----*/
	#hb-menu {
		display: table;
		position: fixed;
		top: 0;
		right: 0;
		background: #231434;
		width: 50px;
		height: 50px;
		cursor: pointer;
		z-index: 1000;
	}
	#hb-menu .hb-inner {
		display: table-cell;
		vertical-align: middle;
	}
	#hb-menu span {
		display: block;
		background: #fff;
		width: 24px;
		height: 2px;
		margin: auto;
		border-radius: 0;
		-webkit-transition: all .5s ease-in-out;
		-moz-transition: all .5s ease-in-out;
		transition: all .5s ease-in-out;
	}
	#hb-menu span:nth-of-type(2),
	#hb-menu span:nth-of-type(3) {
		margin-top: 6px;
	}
	/* ナビゲーションアイコン：アクティブ */
	.hb-open #hb-menu span {
		background: #fff;
	}
	.hb-open span:nth-of-type(1) {
		-webkit-transform: translateY(8px) translateX(0) rotate(45deg);
		-ms-transform: translateY(8px) translateX(0) rotate(45deg);
		transform: translateY(8px) translateX(0) rotate(45deg);
	}
	.hb-open span:nth-of-type(2) {
		margin-top: 5px;
		opacity: 0;
		-webkit-transform: translateY(9px);
		-ms-transform: translateY(9px);
		transform: translateY(9px);
	}
	.hb-open span:nth-of-type(3) {
		-webkit-transform: translateY(-8px) translateX(0) rotate(-45deg);
		-ms-transform: translateY(-8px) translateX(0) rotate(-45deg);
		transform: translateY(-8px) translateX(0) rotate(-45deg);
	}
	/* overlay */
	.overlay {
		position: fixed;
		top: 0;
		right: 0;
		left: 0;
		bottom: 0;
		background: transparent;
		pointer-events: none;
		z-index: 10;
		transition: 0.2s;
	}
	.hb-open .overlay {
		background: none;
		pointer-events: auto;
	}

	/*----- g-nav -----*/
	.g-nav {
		position: fixed;
		top: 0;
		right: 0;
		z-index: 999;
	}
	.hb-open .g-nav .g-nav-inner {
		transform: translateX(0);
		-ms-transform: translateX(0);
		-webkit-transform: translateX(0);
		transform: translateZ(0);
		-ms-transform: translateZ(0);
		-webkit-transform: translateZ(0);
	}
	.g-nav .g-nav-inner {
		position: fixed;
		top: 0;
		right: 0;
		background: #fff;
		width: 100%;
		height: 100%;
		padding: 70px 20px;
		box-sizing: border-box;
		-ms-box-sizing: border-box;
		-webkit-box-sizing: border-box;
		overflow-x: hidden;
		overflow-y: auto;
		transition: .5s;
		transform: translateX(100%);
		-ms-transform: translateX(100%);
		-webkit-transform: translateX(100%);
		z-index: 10;
	}
}





/*--------------------------------------
　footer
---------------------------------------*/
footer {
	background: url("../img/footer_bg.jpg") center center no-repeat;
	background-size: cover;
	width: 100%;
	min-width: 1128px;
	padding: 140px 0 120px;
	box-sizing: border-box;
}

footer .footer_inner {
	max-width: 1128px;
	margin: auto;
	box-sizing: border-box;
}

footer .logo {
	width: 334px;
	margin: auto;
}

footer .footer_nav {
	margin: 40px 0 0;
}
footer .footer_nav ul {
	display: flex;
	justify-content: center;
	flex-wrap: wrap;
	text-align: center;
}
footer .footer_nav li {
	width: 25%;
  margin: 0 0 15px;
	padding: 0 10px;
	box-sizing: border-box;
}
footer .footer_nav li a {
	box-sizing: border-box;
	color: #fff;
	line-height: 1.5;
}

footer .copy {
	margin: 60px 0 0;
	color: #fff;
	font-size: 12px;
	text-align: center;
	line-height: 1.4;
}

@media screen and (max-width: 768px) {
	footer {
		min-width: 100%;
		padding: 50px 15px 30px;
	}

	footer .footer_inner {
		max-width: 100%;
	}

	footer .logo {
		width: 60%;
	}

	footer .footer_nav {
		margin: 20px 0 0;
	}
	footer .footer_nav ul {
		display: block;
	}
	footer .footer_nav li {
		width: 100%;
		margin: 0 0 15px;
		padding: 0 0;
	}
	footer .footer_nav li:last-child {
		margin: 0 0 0;
	}

	footer .copy {
		margin: 40px 0 0;
		font-size: 10px;
	}
}





/*--------------------------------------
　Link
---------------------------------------*/
.link01 a {
	display: inline-block;
	padding: 0 60px 0 0;
	box-sizing: border-box;
	color: #fff;
	font-size: 18px;
	line-height: 1.4;
	position: relative;
}
.link01 a:after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	transform: translate(0,-50%);
	background: url("../img/arrow_01.png") left top no-repeat;
	background-size: 100% auto;
	width: 44px;
	height: 44px;
}

.link_box {
  display: flex;
  flex-wrap: wrap;
  margin: 0 0 100px;
}
.link_box .link {
  margin: 0 40px 0 0;
  box-sizing: border-box;
}

@media screen and (max-width: 768px) {
	.link01 a {
		padding: 0 30px 0 0;
		font-size: 15px;
	}
	.link01 a:after {
		background: url("../img/arrow_01.png") left top no-repeat;
		background-size: 100% auto;
		width: 22px;
		height: 22px;
	}
  
  .link_box {
    margin: 0 0 60px;
  }
  .link_box .link {
    margin: 0 20px 0 0;
  }
}





.ofi-cover {
  object-fit: cover;
  font-family: 'object-fit: cover';
}