﻿@charset "utf-8";
/* CSS Document */

/*=======================================================================================
	CSS変数
=======================================================================================*/

:root {
	--color_main: #006db7;
	--color_sub: #b6d231;
	--color_bggray: #ececec;

	--fs14: 1.4rem;
	--fs15: 1.5rem;
	--fs20: 2.0rem;
	--fs21: 2.1rem;
	--fs23: 2.3rem;
	--fs26: 2.6rem;
	--fs29: 2.9rem;
	--fs40: 4.0rem;
	--fs44: 4.4rem;
	--fs50: 5.0rem;
	--fs55: 5.5rem;
	--fs60: 6.0rem;
	--fs78: 7.8rem;
	--fs115: 11.5rem;
	
	--gutter: 100px 0;
	--gutter_bottom: 0 0 100px;
	--border01: 1px solid #dbdbdb;
	--line_long: 2.6;
}
@media (max-width: 1024px) {
	:root {
		--fs14: 1.4rem;
		--fs15: 1.5rem;
		--fs20: 1.8rem;
		--fs21: 1.9rem;
		--fs23: 2.0rem;
		--fs26: 2.2rem;
		--fs29: 2.4rem;
		--fs40: 3.6rem;
		--fs44: 3.8rem;
		--fs50: 4.6rem;
		--fs55: 5.0rem;
		--fs60: 5.6rem;
		--fs78: 6.4rem;
		--fs115: 9.0rem;
	}
}
@media (max-width: 780px) {
	:root {
		--fs44: 3.0rem;
		--fs50: 3.8rem;
		--fs55: 4.0rem;
		--fs60: 4.6rem;
		--fs78: 5.2rem;
		--fs115: 8.0rem;
		--gutter: 80px 0;
		--line_long: 2.0;
	}
}
@media (max-width: 480px) {
	:root {
		--fs14: 1.4rem;
		--fs15: 1.5rem;
		--fs20: 1.6rem;
		--fs21: 1.7rem;
		--fs23: 1.8rem;
		--fs26: 2.0rem;
		--fs29: 2.2rem;
		--fs40: 2.6rem;
		--fs44: 2.8rem;
		--fs50: 3.0rem;
		--fs55: 3.2rem;
		--fs60: 3.6rem;
		--fs78: 4.0rem;
		--fs115: 5.0rem;
		--gutter: 40px 0;
		--gutter_bottom: 0 0 40px;
	}
}


/*=======================================================================================*/

html {
	font-family: neue-haas-grotesk-text, 'ゴシックMB101 R', 'Gothic MB101 Regular', '游ゴシック',YuGothic,'Yu Gothic','Yu Gothic UI','Meiryo UI','ヒラギノ角ゴシック','Hiragino Sans','Arial','Helvetica',sans-serif;
	font-size: 62.5%;
	font-weight: 400;
	color: #000000;
}

body {
	margin: 0;
	padding: 0;
	font-size: 1.7rem;
	line-height: 1.6;
	letter-spacing: 1px;
}
@media (max-width: 1200px) {
	body {
		font-size: 1.6rem;
		line-height: 1.6;
	}
}
@media (max-width: 900px) {
	body {
		font-size: 1.5rem;
		line-height: 1.6;
	}
}
@media (max-width: 480px) {
	body.smp {
		overflow: hidden;
		height: 100%;
	}
}

h1, h2, h3, h4, h5, h6 {
	font-family: neue-haas-grotesk-text, 'ゴシックMB101 B', 'Gothic MB101 Bold', '游ゴシック',YuGothic,'Yu Gothic','Yu Gothic UI','Meiryo UI','ヒラギノ角ゴシック','Hiragino Sans','Arial','Helvetica',sans-serif;
	font-weight: 600;
}

.mincho {
	font-family: 'Times New Roman','Yu Mincho Light','YuMincho','Yu Mincho','游明朝体','ヒラギノ明朝 ProN','Hiragino Mincho ProN','ＭＳ Ｐ明朝','MS PMincho',sans-serif;
}

a, a:link, a:visited {
	color: #000000;
	text-decoration: none;
	transition: 0.5s;
}
/* a:hover figure { opacity: 0.6; } */

img {
	max-width: 100%;
	width: auto;
	height: auto;
	vertical-align: bottom;
	transition: 0.5s;
}
/* a:hover img { opacity: 0.6; } */



.container {
	margin: 0 auto;
	width: 95%;
	max-width: 1500px;
	height: auto;
}
.innerBox {
	margin: 0 auto;
	width: 95%;
	max-width: 1000px;
	height: auto;
}


main {
	display: block;
}



@font-face {
  font-family: 'icomoon';
  src:  url('../fonts/icomoon.eot?bnnnw1');
  src:  url('../fonts/icomoon.eot?bnnnw1#iefix') format('embedded-opentype'),
    url('../fonts/icomoon.ttf?bnnnw1') format('truetype'),
    url('../fonts/icomoon.woff?bnnnw1') format('woff'),
    url('../fonts/icomoon.svg?bnnnw1#icomoon') format('svg');
  font-weight: normal;
  font-style: normal;
  font-display: swap;
}

[class^="icon-"], [class*=" icon-"] {
  /* use !important to prevent issues with browser extensions that change fonts */
  font-family: 'icomoon' !important;
  speak: none;
  font-style: normal;
  font-weight: normal;
  font-variant: normal;
  text-transform: none;
  line-height: 1;

  /* Better Font Rendering =========== */
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}


@media all and (-ms-high-contrast: none) {
  *::-ms-backdrop, .typesquare_option {
    opacity: 1;
  }
}



/*================================
	header
================================*/
body > header, body > #fvWrap > header {
	margin: 0;
	padding: 60px 5%;
	width: 100%;
	height: auto;
	box-sizing: border-box;
}
@media (max-width: 1200px) {
	body > header, body > #fvWrap > header {
		padding: 60px 2%;
	}
}
@media (max-width: 900px) {
	body > header, body > #fvWrap > header {
		padding: 10px 0;
		background: rgba(255,255,255,0.7);
		position: fixed;
		z-index: 900;
	}
}


body > header h1#hlogo, body > #fvWrap > header h1#hlogo {
	margin: 0 auto 0 0;
	width: 165px;
	height: 40px;
	text-align: center;
}
body > header h1#hlogo svg {
	width: 100%;
	height: 100%;
	-webkit-transition: all .5s ease;
	transition: all .5s ease;
	fill: #000000;
}

body > header nav#gnavi, body > #fvWrap > header nav#gnavi {
	align-items: center;
	-webkit-box-align: center;
	-ms-flex-align: center;
}
body > header nav#gnavi ul li + li, body > #fvWrap > header nav#gnavi ul li + li { margin-left: 40px; }
@media (max-width: 900px) {
	body > header nav#gnavi, body > #fvWrap > header nav#gnavi {
		width: 100%;
		height: 100vh;
		background: rgba(0,109,183,0.9);
		color: #fff;
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 990;
		text-align: center;
		display: flex;
		visibility: hidden;
		flex-direction: column;
		justify-content: center;
		align-items: center;
		opacity: 0;
		transition: opacity .6s ease, visibility .6s ease;
	}
	body > header nav#gnavi.open, body > #fvWrap > header nav#gnavi.open {
		opacity: 1;
		visibility: visible;
	}
	body > header nav#gnavi ul, body > #fvWrap > header nav#gnavi ul {
		margin: 20px auto;
		width: 80%;
	}
	body > header nav#gnavi ul li + li, body > #fvWrap > header nav#gnavi ul li + li { margin: 20px 0 0 0; }

	body > header nav#gnavi ul li, body > #fvWrap > header nav#gnavi ul li {
		transform: translateX(-100%);
		transition:  transform 1s cubic-bezier(0.215, 0.61, 0.355, 1);
	}
	body > header nav#gnavi.open ul li, body > #fvWrap > header nav#gnavi.open ul li {
		transform: translateX(0);
	}
	body > header nav#gnavi ul li:nth-of-type(2), body > #fvWrap > header nav#gnavi ul li:nth-of-type(2) { transition-delay: .15s; }
	body > header nav#gnavi ul li:nth-of-type(3), body > #fvWrap > header nav#gnavi ul li:nth-of-type(3) { transition-delay: .3s; }
	body > header nav#gnavi ul li:nth-of-type(4), body > #fvWrap > header nav#gnavi ul li:nth-of-type(4) { transition-delay: .45s; }
	body > header nav#gnavi ul li:nth-of-type(5), body > #fvWrap > header nav#gnavi ul li:nth-of-type(5) { transition-delay: .6s; }
	body > header nav#gnavi ul li:nth-of-type(6), body > #fvWrap > header nav#gnavi ul li:nth-of-type(6) { transition-delay: .75s; }

	body > header h1#hlogo, body > #fvWrap > header h1#hlogo {
		margin: 0 auto 0 10px;
		width: 124px;
		height: 30px;
		text-align: center;
	}
}



body > header nav#gnavi ul li a, body > #fvWrap > header nav#gnavi ul li a {
	padding: 0 0 2px;
	font-size: var(--fs15);
	width: 100%;
	height: 100%;
	display: block;
	position: relative;
}
body > header nav#gnavi ul li a:before, body > #fvWrap > header nav#gnavi ul li a:before,
body > header nav#gnavi ul li a:after, body > #fvWrap > header nav#gnavi ul li a:after {
	content: '';
	width: 100%;
	height: 3px;
	display: block;
	position: absolute;
	left: 0;
	bottom: 0;
	transform: scale(0, 1);
	transform-origin: right top;
	transition: transform .3s;
}
body > header nav#gnavi ul li a:before, body > #fvWrap > header nav#gnavi ul li a:before {
	background: var(--color_main);
}
body > header nav#gnavi ul li a:after, body > #fvWrap > header nav#gnavi ul li a:after {
	background: var(--color_sub);
}
body > header nav#gnavi ul li a:hover:before, body > #fvWrap > header nav#gnavi ul li a:hover:before,
body > header nav#gnavi ul li a:hover:after, body > #fvWrap > header nav#gnavi ul li a:hover:after {
	transform-origin: left top;
	transform: scale(1, 1);
}
body > header nav#gnavi ul li a:hover:after, body > #fvWrap > header nav#gnavi ul li a:hover:after {
	transition-delay: .3s;
}



/* active */
body#service > header nav#gnavi ul li.service a,
body#project > header nav#gnavi ul li.project a,
body#interview > header nav#gnavi ul li.interview a,
body#company > header nav#gnavi ul li.company a,
body#partner > header nav#gnavi ul li.partner a,
body#event > header nav#gnavi ul li.event a,
body#recruit > header nav#gnavi ul li.recruit a,
body#contact > header nav#gnavi ul li.contact a {
	color: var(--color_sub);
	font-weight: 600;
}

body#service > header nav#gnavi ul li.service a:after,
body#project > header nav#gnavi ul li.project a:after,
body#interview > header nav#gnavi ul li.interview a:after,
body#company > header nav#gnavi ul li.company a:after,
body#partner > header nav#gnavi ul li.partner a:after,
body#event > header nav#gnavi ul li.event a:after,
body#recruit > header nav#gnavi ul li.recruit a:after,
body#contact > header nav#gnavi ul li.contact a:after{
	transform: scale(1, 1);
}
@media (max-width: 900px) {
	body > header nav#gnavi ul li a, body > #fvWrap > header nav#gnavi ul li a {
		padding: 0 5px 3px;
		color: #FFFFFF;
		width: inherit;
		display: inline-block;
	}
}



/*================================
	smp menu
================================*/
/* menu bttun */
.menuBtn {
    margin: 0;
	padding: 10px;
	font-size: 1.1rem;
	color: #FFFFFF;
	width: 5.5rem;
	height: 50px;
	background-color: var(--color_main);
	outline: 0;
	border: 0;
	display: block;
	box-sizing: border-box;
	position: fixed;
	top: 0;
	right: 0;
	z-index: 1200;
	-webkit-transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
	transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
	-webkit-transform: translate3d(0, 0, 0);
	transform: translate3d(0, 0, 0);
}
.menuBtn:hover {
  cursor: pointer;
}

.menuBtn span.menu {
	margin-top: 7px;
	display: inline-block;
}
.menuBtn span.menu:after {
	content: "MENU"
}
.menuBtn.close-btn span.menu:after {
	content: "CLOSE";
}

.drawer-hamburger-icon {
	margin-top: 5px;
	position: relative;
	display: inline-block;
}
.drawer-hamburger-icon,
.drawer-hamburger-icon:before,
.drawer-hamburger-icon:after {
  width: 2.5rem;
  height: 2px;
  -webkit-transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
  transition: all .6s cubic-bezier(0.190, 1.000, 0.220, 1.000);
  background-color: #FFFFFF;
}

.drawer-hamburger-icon:before,
.drawer-hamburger-icon:after {
  position: absolute;
  top: -6px;
  left: 0;
  content: ' ';
}

.drawer-hamburger-icon:after {
  top: 6px;
}

@media (min-width: 901px) {
	.menuBtn, .drawer-hamburger-icon { display: none; }
}

/* closeBtn */
.close-btn {
    top: 0;
	background-color: var(--color_sub);
}
.close-btn .drawer-hamburger-icon {
	background: transparent;
}

.close-btn .drawer-hamburger-icon:before,
.close-btn .drawer-hamburger-icon:after {
  top: 0;
}

.close-btn .drawer-hamburger-icon:before {
  -webkit-transform: rotate(45deg);
      -ms-transform: rotate(45deg);
          transform: rotate(45deg);
}

.close-btn .drawer-hamburger-icon:after {
  -webkit-transform: rotate(-45deg);
      -ms-transform: rotate(-45deg);
          transform: rotate(-45deg);
}

.close-btn .drawer-hamburger-icon:before,
.close-btn .drawer-hamburger-icon:after {
  background-color: #FFFFFF;
}



/*================================
	footer
================================*/
body.page footer {
	padding: 100px 0 0;
}

/* flink */
footer #flink {
	margin: 0 auto 135px;
}

footer #flink ul + ul { margin-left: 110px; }
footer #flink ul li + li { margin-top: 20px; }

footer #flink ul li a {
	font-size: var(--fs21);
	font-weight: 500;
	font-style: normal;
}
footer #flink ul.sub li:not(.parent) a {
	font-size: 1.7rem;
}

footer #flink ul.sub li.parent a:after {
	content: '';
	margin: 0 0 5px 10px;
	width: 10px;
	height: 10px;
	border-right: 1px solid #000000;
	border-bottom: 1px solid #000000;
	transform: rotate(45deg);
	display: inline-block;
}
@media (max-width: 1200px) {
	footer #flink {
		margin: 0 auto 60px;
	}

	footer #flink ul {
		margin: 0 4% 0 0;
		width: 22%;
	}
	footer #flink ul:last-of-type { margin: 0; }
	footer #flink ul + ul { margin-left: 0; }
}
@media (max-width: 960px) {
	footer #flink ul {
		margin: 0 5% 20px 0;
		width: 30%;
	}
	footer #flink ul:nth-of-type(3) { margin-right: 0; }
}
@media (max-width: 900px) {
	footer #flink ul {
		margin: 0 4% 20px 0;
		width: 48%;
	}
	footer #flink ul:nth-of-type(3) { margin-right: 4%; }
	footer #flink ul:nth-of-type(2) { margin-right: 0; }
}



/* address */
footer #fAddress {
	padding: 135px 0 40px;
	border-top: 1px solid #DCDCDC;
}

footer #fAddress section {
	width: 20%;
}
footer #fAddress section + section { margin-left: 130px; }
@media (max-width: 1200px) {
	footer #fAddress {
		padding: 60px 0 40px;
		border-top: 1px solid #DCDCDC;
	}

	footer #fAddress section {
		width: 30%;
	}
	footer #fAddress section + section { margin-left: 5%; }
}
@media (max-width: 900px) {
	footer #fAddress section {
		width: 100%;
	}
	footer #fAddress section + section {
		margin: 40px 0 0 0;
	}
}



footer #fAddress section h4 {
	margin: 0 auto 14px;
	font-size: var(--fs50);
	line-height: 1.2;
}
footer #fAddress section h4 span {
	font-family: neue-haas-grotesk-text, 'ゴシックMB101 R', 'Gothic MB101 Regular', '游ゴシック',YuGothic,'Yu Gothic','Yu Gothic UI','Meiryo UI','ヒラギノ角ゴシック','Hiragino Sans','Arial','Helvetica',sans-serif;
	font-size: var(--fs20);
	font-weight: 400;
	line-height: 1.2;
	display: block;
}
footer #fAddress section address {
	font-size: var(--fs15);
}
@media (max-width: 900px) {
	footer #fAddress section {
		display:-webkit-box;
		display:-moz-box;
		display:-webkit-flexbox;
		display:-moz-flexbox;
		display:-ms-flexbox;
		display:-webkit-flex;
		display:-moz-flex;
		display:flex;
	}
	footer #fAddress section h4 {
		margin: 0;
		width: 30%;
		min-width: 260px;
	}
	footer #fAddress section address {
		margin: 0 0 0 5%;
		width: 65%;
	}
}
@media (max-width: 480px) {
	footer #fAddress section {
		-webkit-flex-direction:column;
		-moz-flex-direction:column;
		flex-direction:column;
	}
	footer #fAddress section h4 {
		margin: 0 auto 10px;
		width: 100%;
		min-width: inherit;
	}
	footer #fAddress section address {
		margin: 0;
		width: 100%;
	}
}



/* map */
footer #fmap {
	position: relative;
	padding-bottom: 37.5%;
	width: 100%;
	height: 0;
	overflow: hidden;
}
footer #fmap iframe,
footer #fmap object,
footer #fmap embed {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	-webkit-filter: grayscale(100%);
	-moz-filter: grayscale(100%);
	-ms-filter: grayscale(100%);
	-o-filter: grayscale(100%);
	filter: grayscale(100%);
}
@media (max-width: 480px) {
	footer #fmap {
		position: relative;
		padding-bottom: 60.5%;
		width: 100%;
		height: 0;
		overflow: hidden;
	}
}



/* footbar */
footer #foot {
	padding: 40px 0;
	background: var(--color_main);
}
footer #foot div.fl {
	align-items: flex-end;
	-webkit-box-align: end;
	-ms-flex-align: end;
}


footer #foot #catch {
	margin: 0 auto;
	width: 258px;
	height: 81px;
}
footer #foot #catch svg {
	width: 100%;
	height: 100%;
	fill: #ffffff;
}

footer #foot #flogo {
	margin: 100px auto 10px -10px;
	width: 246px;
	height: 57px;
}
footer #foot #flogo svg {
	width: 100%;
	height: 100%;
	-webkit-transition: all .5s ease;
	transition: all .5s ease;
	fill: #ffffff;
}
@media (max-width: 900px) {
	footer #foot {
		padding: 20px 0;
	}
}
@media (max-width: 480px) {
	footer #foot #catch {
		margin: 20px auto 40px;
		width: 200px;
		height: 63px;
	}
	footer #foot #flogo {
		margin: 0 auto 10px;
		width: 200px;
		height: 46px;
	}
}

footer #foot #copyright {
	margin-top: 15px;
	font-size: 0.9rem;
	color: #ffffff;
}
@media (max-width: 480px) {
	footer #foot #copyright { text-align: center; }
}


/* sns */
footer #foot #fSNS {
	color: #FFFFFF;
	font-size: 2.8rem;
	line-height: 1;
	align-items: flex-end;
	-webkit-box-align: end;
	-ms-flex-align: end;
}
@media (max-width: 480px) {
	footer #foot #fSNS {
		-webkit-justify-content:center;
		-moz-justify-content:center;
		justify-content:center;
	}
}


footer #foot #fSNS li + li { margin-left: 20px; }
footer #foot #fSNS li a { color: #FFFFFF; }

.icon-line .path1:before {
  content: "\e900";
  color: #FFFFFF;
}
.icon-line .path2:before {
  content: "\e901";
  margin-left: -1.0498046875em;
  color: var(--color_main);
}
.icon-facebook:before {
  content: "\ea90";
}
.icon-instagram:before {
  content: "\ea92";
}
.icon-twitter:before {
  content: "\ea96";
}
@media (max-width: 480px) {
	footer #foot #fSNS {
		-webkit-box-ordinal-group:-1;
		-moz-box-ordinal-group:-1;
		-webkit-flex-order:-1;
		-moz-flex-order:-1;
		-webkit-order:-1;
		-moz-order:-1;
		-ms-order:-1;
		order:-1;
	}
}




/* back */
#back_to_top {
	position: fixed;
	right: 10px;
	bottom: 20px;
	width: 30px;
	height: 30px;
	z-index: 1000;
	opacity: 0;
	transition: 0.4s;
}
#back_to_top.sc { opacity: 1; }

#back_to_top button {
	height: 100%;
	width: 100%;
	line-height: 100%;
	text-align: center;
	background: transparent;
	border: none;
	padding: 0;
	outline: 0;
	opacity: 1;
	transition: 0.4s;
	position: relative;
}

#back_to_top button:before {
	content: '';
	margin: auto;
	width: 10px;
	height: 10px;
	border-top: 1px solid #000000;
	border-right: 1px solid #000000;
	display: block;
	-webkit-transform: rotate(-45deg);
	transform: rotate(-45deg);
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
}
#back_to_top button:hover {
	opacity: 0.5;
}



/*----------------------------------
	main
----------------------------------*/
.moreBar {
	margin: 100px auto 0;
	padding: 45px 0 0;
	border-top: 1px solid #DCDCDC;
}

a.moreBtn {
	margin: 0 6% 0 auto;
	font-size: 1.4rem;
	font-family: neue-haas-grotesk-text, 'ゴシックMB101 B', 'Gothic MB101 Bold', '游ゴシック',YuGothic,'Yu Gothic','Yu Gothic UI','Meiryo UI','ヒラギノ角ゴシック','Hiragino Sans','Arial','Helvetica',sans-serif;
	font-weight: 700;
	width: 95px;
	height: 30px;
	letter-spacing: 2px;
	text-align: center;
	display: block;
	position: relative;
}
a.moreBtn::before,
a.moreBtn::after {
	content: '';
	width: 100%;
	height: 2px;
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: -1;
	transform-origin: right top;
	transform: scale(0, 1);
	transition: transform .3s;
}
a.moreBtn::before {
	background: #000000;
	transform: scale(1, 1);
}
a.moreBtn::after {
	background: var(--color_sub);
}
a.moreBtn:hover::before {
	background: var(--color_main);
	transform-origin: left top;
	transform: scale(1, 1);
}
a.moreBtn:hover::after {
	transform-origin: left top;
	transform: scale(1, 1);
	transition-delay: .3s;
}



/* scale */
.scale, .scale figure {
	overflow: hidden;
}
.scale img {
	-moz-transition: -moz-transform 0.15s linear;
	-webkit-transition: -webkit-transform 0.15s linear;
	-o-transition: -o-transform 0.15s linear;
	-ms-transition: -ms-transform 0.15s linear;
	transition: transform 0.15s linear;
}
.scale:hover img {
	-webkit-transform: scale(1.1);
	-moz-transform: scale(1.1);
	-o-transform: scale(1.1);
	-ms-transform: scale(1.1);
	transform: scale(1.1);
}



/* ホバーアクション */
.action01 a {
	padding: 2px 5px;
	display: inline-block;
	box-sizing: border-box;
	position: relative;
	z-index: 2;
}
.action01 a:hover {
	color: #FFFFFF;
}
.action01 a::before,
.action01 a::after {
	content: '';
	width: 120%;
	height: 100%;
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	left: 0;
	z-index: -1;
	transform-origin: right top;
	transform: skewX(-30deg) scale(0, 1);
	transition: transform .3s;
}
.action01 a::before {
	background: var(--color_main);
}
.action01 a::after {
	background: var(--color_sub);
}
.action01 a:hover::before, .action01 a:hover::after {
	transform-origin: left top;
	transform: skewX(-30deg) scale(1, 1);
}
.action01 a:hover::after {
	transition-delay: .3s;
}


.action02 a {
	padding: 0 0 5px;
	display: inline-block;
	box-sizing: border-box;
	position: relative;
}
.action02 a::before,
.action02 a::after {
	content: '';
	width: 100%;
	height: 2px;
	position: absolute;
	bottom: 0;
	left: 0;
	z-index: -1;
	transform-origin: right top;
	transform: scale(0, 1);
	transition: transform .3s;
}
.action02 a::before {
	background: var(--color_main);
}
.action02 a::after {
	background: var(--color_sub);
}
.action02 a:hover::before, .action02 a:hover::after {
	transform-origin: left top;
	transform: scale(1, 1);
}
.action02 a:hover::after {
	transition-delay: .3s;
}



/* フェードアニメ */
.fadein, .fadein02, .fadein03 { display: none; }

.scfade {
	opacity : 0;
	transition : all 0.8s;
}
.scfade.scrollin {
	opacity : 1;
	transform : translate(0, 0);
}

.upfade {
	opacity : 0;
	transform : translate(0, 50px);
	transition : all 500ms;
}
.upfade.scrollin {
	opacity : 1;
	transform : translate(0, 0);
}


/*
.boxfade figure, .boxfade h4, .boxfade p, .boxfade a { display: none; }
*/

.boxfade[data-emergence=hidden] {
	opacity: 0;
	transition : all 0.8s;
}
.boxfade[data-emergence=visible] {
	opacity: 1;
	transition : all 0.8s;
}

.boxfade[data-emergence=hidden] figure {
	opacity: 0;
	transition : all 0.8s;
}
.boxfade[data-emergence=visible] figure {
	opacity: 1;
	transition : all 0.8s;
}

.boxfade[data-emergence=hidden] h4, .boxfade[data-emergence=hidden] h3 {
	opacity: 0;
	transition : all 0.8s;
	-moz-transition-delay: 400ms;
	-webkit-transition-delay: 400ms;
	-o-transition-delay: 400ms;
	-ms-transition-delay: 400ms;
}
.boxfade[data-emergence=visible] h4, .boxfade[data-emergence=visible] h3 {
	opacity: 1;
	transition : all 0.8s;
	-moz-transition-delay: 400ms;
	-webkit-transition-delay: 400ms;
	-o-transition-delay: 400ms;
	-ms-transition-delay: 400ms;
}

.boxfade[data-emergence=hidden] p, .boxfade[data-emergence=hidden] a {
	opacity: 0;
	transition : all 0.8s;
	-moz-transition-delay: 800ms;
	-webkit-transition-delay: 800ms;
	-o-transition-delay: 800ms;
	-ms-transition-delay: 800ms;
}
.boxfade[data-emergence=visible] p,  .boxfade[data-emergence=visible] a {
	opacity: 1;
	transition : all 0.8s;
	-moz-transition-delay: 800ms;
	-webkit-transition-delay: 800ms;
	-o-transition-delay: 800ms;
	-ms-transition-delay: 800ms;
}



/* スライドマスク */
.colorSlide {
	margin: auto;
	background-color: transparent;
	opacity: 0;
	overflow: hidden;
}
/* スライドインを動作するclass */
.isPlay {
  animation-name: play;
  animation-duration: .5s;
  animation-fill-mode: forwards;
  animation-timing-function: cubic-bezier(.8,0,.5,1);
  position: relative;
  opacity: 1!important;
}

/* isPlayの疑似要素にマスクとマスクを外すアニメーションを設定 */
.isPlay:before {
  animation-name: maskOut;
  animation-duration: .5s;
  animation-delay: .5s;
  animation-fill-mode: forwards;
  animation-timing-function: cubic-bezier(.8,0,.5,1);
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  z-index: 1;
  width: 100%;
  height: 100%;
  background: #ffffff;
}
@keyframes play {
  from {
    transform: translateX(-100%);
  }
  to {
    transform: translateX(0);
  }
}
@keyframes maskOut {
  from {
    transform: translateX(0);
  }
  to {
    transform: translateX(100%);
  }
}




/*---------------------------------
	調整用
---------------------------------*/
.fl, .fl-tab, .fl-smp {
	display:-webkit-box;
	display:-moz-box;
	display:-webkit-flexbox;
	display:-moz-flexbox;
	display:-ms-flexbox;
	display:-webkit-flex;
	display:-moz-flex;
	display:flex;
}

.fl-jst {
	-webkit-justify-content:space-between;
	-moz-justify-content:space-between;
	justify-content:space-between;
}

.fl-cen {
	-webkit-justify-content:center;
	-moz-justify-content:center;
	justify-content:center;
}

.fl-end {
	-webkit-justify-content:flex-end;
	-moz-justify-content:flex-end;
	justify-content:flex-end;
}

.fl-wrap {
	-webkit-flex-wrap:wrap;
	-moz-flex-wrap:wrap;
	-ms-flex-wrap:wrap;
	flex-wrap:wrap;
}

.fl-col {
	-webkit-flex-direction:column;
	-moz-flex-direction:column;
	flex-direction:column;
}


@media (max-width: 900px) {
	.fl-tab {
		-webkit-flex-direction:column;
		-moz-flex-direction:column;
		flex-direction:column;
	}
}
@media (max-width: 480px) {
	.fl-smp {
		-webkit-flex-direction:column;
		-moz-flex-direction:column;
		flex-direction:column;
	}
}

.mt0 { margin-top: 0!important; }
.mt5 { margin-top: 5px!important; }
.mt10 { margin-top: 10px!important; }
.mt15 { margin-top: 15px!important; }
.mt20 { margin-top: 20px!important; }
.mt30 { margin-top: 30px!important; }
.mt35 { margin-top: 35px!important; }
.mt40 { margin-top: 40px!important; }
.mt50 { margin-top: 50px!important; }
.mt100 { margin-top: 100px!important; }
.mr0 { margin-right: 0!important; }
.mr5 { margin-right: 5px!important; }
.mr10 { margin-right: 10px!important; }
.mr15 { margin-right: 15px!important; }
.mr20 { margin-right: 20px!important; }
.mr25 { margin-right: 25px!important; }
.mb0 { margin-bottom: 0!important; }
.mb5 { margin-bottom: 5px!important; }
.mb10 { margin-bottom: 10px!important; }
.mb12 { margin-bottom: 12px!important; }
.mb15 { margin-bottom: 15px!important; }
.mb20 { margin-bottom: 20px!important; }
.mb25 { margin-bottom: 25px!important; }
.mb30 { margin-bottom: 30px!important; }
.mb35 { margin-bottom: 35px!important; }
.mb40 { margin-bottom: 40px!important; }
.mb50 { margin-bottom: 50px!important; }
.mb60 { margin-bottom: 60px!important; }
.mb80 { margin-bottom: 80px!important; }
.ml0 { margin-left: 0!important; }
.ml5 { margin-left: 5px!important; }
.ml10 { margin-left: 10px!important; }
.ml15 { margin-left: 15px!important; }
.ml20 { margin-left: 20px!important; }
.ml25 { margin-left: 25px!important; }
.ml30 { margin-left: 30px!important; }


.ls5 { letter-spacing: 5px; text-indent: 5px; }
.ls10 { letter-spacing: 10px; text-indent: 10px; }
.ls15 { letter-spacing: 15px; text-indent: 15px; }


.show960, .show900, .show780, .show480 { display: none; }
.hdn1500, .hdn1200, .hdn960, .hdn900, .hdn780, .hdn480 { display: inherit;}
@media (max-width: 1500px) {
	.hdn1500 { display: none;}
}
@media (max-width: 1200px) {
	.hdn1200 { display: none;}
}
@media (max-width: 960px) {
	.hdn960 { display: none;}
	.show960 { display: inherit; }
}
@media (max-width: 900px) {
	.hdn900 { display: none;}
	.show900 { display: inherit; }
}
@media (max-width: 780px) {
	.hdn780 { display: none;}
	.show780 { display: inherit; }
}
@media (max-width: 480px) {
	.hdn480 { display: none;}
	.show480 { display: inherit; }
}

.ta_cnt { text-align: center; }
.ta_right { text-align: right; }

.clearfix:after {
	content:"";
	display:block;
	clear:both;
}
