@charset "utf-8";
/* CSS Document */

@font-face {
  font-family: 'MyWebFont';
  src: url('webfont.eot'); /* IE9 Compat Modes */
  src: url('webfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
       url('webfont.woff') format('woff'), /* Modern Browsers */
       url('webfont.ttf')  format('truetype'), /* Safari, Android, iOS */
       url('webfont.svg#svgFontName') format('svg'); /* Legacy iOS */
}

body {
	font-weight: 400;
	/*font-family: "Noto Sans Japanese";*/
	font-family: YuGothic, "Yu Gothic medium", "Hiragino Sans", Meiryo, Arial, sans-serif;
	height: auto;
	margin: 0;
	overflow-x: hidden;
	position: relative;
}

@keyframes fadein {
	0% { opacity: 0; }
	100% { opacity: 1; }
}

dl,dt,dd { margin: 0; }

#warpper {
	margin: auto;
	padding: 0 auto;
}

ul { list-style: none; margin: 0; }

p { margin: 0; font-size: 1rem; line-height: 2; }

a { color: #222; text-decoration: none; }


/*************************** HEADER ***************************/

header {
	position: relative;
	top: 0;
	left: 0;
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 20px 0;
	z-index: 10;
}

header .logo { width: 280px; margin: 0 0 0 40px; }
header .logo a {
	display: flex;
	align-items: center;
	text-decoration: none;
}
header .logo a .logo-img {
	margin-right: 10px;
	line-height: 0;
}
header .logo a .logo-img img {
	width: 45px;
}
header .logo a .logo-txt {
	font-size: 1.5rem;
    color: #111;
    letter-spacing: .1em;
}


header .logo a .logo-txt span {
	display: block;
	font-size: .7rem;
	font-weight: 500;
	text-indent: 2px;
	letter-spacing: .27em;
}

header #pc_nav { display: block; width: 700px; /*margin-right: 60px;*/ }
header #pc_nav .menu {
	width: 100%;
	display: flex;
	justify-content: space-between;
	align-items: center;
}
header #pc_nav .menu ul {
	width: 100%;
	list-style: none;
	padding: 1rem 2.5rem;
	display: flex;
	justify-content: space-between;
	font-style: normal;
	font-weight: 500;
	background: #fff;
	border-radius: 50px;
	box-sizing: border-box;
}
header #pc_nav .menu ul li a {
	position: relative;
	font-size: 1.1rem;
	/*font-weight: 600;*/
	color: #222;
	text-decoration: none;
	transition: .3s;
}
header #pc_nav .menu ul li a:hover {
	color: #309867;
}
header #pc_nav .menu ul li a::after {
	position: absolute;
	bottom: -7px;
	left: 0;
	content: '';
	width: 100%;
	height: 3px;
	background: #309867;
	transform: scale(0,1);
	transform-origin: left top;
	transition: transform .3s;
}
header #pc_nav .menu ul li a:hover::after {
	transform: scale(1,1);
}

header #pc_nav .menu ul li.blue a:hover {
	color: #004fa7;
}
header #pc_nav .menu ul li.blue a::after {
	background: #004fa7;
}

header .menu-contact { width: 210px; margin-right: 40px; }
header .menu-contact a {
	display: block;
    position: relative;
    padding: 1rem 1rem 1rem 3rem;
	font-size: 1.15rem;
	font-weight: 500;
	color: #fff;
	text-align: center;
	text-decoration: none;
	background-color: #309867;
	border-radius: 100px;
	box-sizing: border-box;
    transition: .3s;
}
header .menu-contact a:hover {
	color: #309867;
    background-color: #fff;
}
header .menu-contact a::after {
	content: "";
	position: absolute;
	top: 50%;
  	left: 30px;
  	transform: translateY(-50%);
  	-webkit- transform: translateY(-50%);
	width: 20px;
	height: 16px;
	background: url("../img/common/mail_icon.png") no-repeat;
	background-size: 20px;
	transition: .3s;
}
header .menu-contact a:hover::after {
	background: url("../img/common/mail_icon_on.png") no-repeat;
	background-size: 20px;
}

header .menu-contact.blue a { background-color: #004fa7; }
header .menu-contact.blue a:hover { color: #004fa7; background: #fff; }

header .menu-contact.blue a:hover::after {
	background: url("../img/common/mail_icon_on_blue.png") no-repeat;
	background-size: 20px;
}

/* space */
.space01 { width: 100%; height: 10px; }
.short_space { width: 100%; height: 40px; }


/* ※SMARTPHONE MENU */
.button_container { display: none; }
.overlay { display: none; }


/*************************** COMMON ***************************/

#content { width: 90%; width: 1200px; margin: 0 auto; padding: 100px 0; }
#content p { font-weight: 500; color: #222; letter-spacing: 0.05rem; line-height: 1.8rem; }

h2.ttl {
	position: relative;
	margin: 0;
	padding: 0 0 10px;
	font-size: 2.5rem;
	font-weight: 800;
	color: #2f3739;
	letter-spacing: 0.05rem;
}


/************************** TOP PAGE **************************/

/* slide */
#vegas {
    width: 100%;
    height: calc(100vh - 100px);
	margin: auto;
	position: relative;
}
#vegas .bg { background-color: rgba(0,0,0,0.2); width: 100%; height: 100%; }
#vegas .caption {
	position: absolute;
  	top: 50%;
  	left: 10%;
  	transform: translateY(-50%);
  	-webkit- transform: translateY(-50%);
  	margin: auto;
}
#vegas .caption h2 {
	margin: 30px 0 0;
	font-size: calc(55 / 1200 * 100vw);
	font-weight: 600;
	color: #fff;
	line-height: 1.3;
	letter-spacing: .2rem;
}
#vegas .caption span {
	display: inline-block;
	padding: 0.5em 0.2em 0.5em 0.5em;
	font-size: 1.7rem;
	font-weight: 600;
	line-height: 1;
	letter-spacing: .05rem;
	background: #fff;
}
#vegas .caption span .color-green {
	padding: 0;
	color: #309867;
}

#vegas .caption .sp-br { display: none; }

#vegas .sns {
	position: fixed;
	right: 5px;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 50;
}
#vegas .sns .sns__item { margin: 10px 0; line-height: 0; background: #fff; border-radius: 50%; }
#vegas .sns .sns__item a { display: block; transition: .3s; }
#vegas .sns .sns__item a:hover { opacity: 0.7; }
#vegas .sns .sns__item a img { width: 65px; }

/* slide recruit */
#vegas_recruit {
    width: 100%;
    height: calc(100vh - 100px);
	margin: auto;
	position: relative;
}
#vegas_recruit .bg { background-color: rgba(0,71,155,0.3); width: 100%; height: 100%; }
#vegas_recruit .caption {
	position: absolute;
  	top: 52%;
  	left: 50%;
	width: 80vw;
  	transform: translate(-50%, -50%);
  	margin: auto;
}

#vegas_recruit .caption h2 {
	margin: 50px 0 0;
}
#vegas_recruit .caption h2 span {
	display: block;
	font-size: calc(60 / 1200 * 100vw);
	color: #fff;
	line-height: 1.2;
	letter-spacing: .2rem;
}
#vegas_recruit .caption .small {
	display: block;
	position: relative;
	padding: 0.2em 0.2em 0.2em 0.5em;
	margin: 0 auto;
	font-size: calc(110 / 1200 * 100vw);
	font-weight: 600;
	color: #fff;
	line-height: 1;
	letter-spacing: .05rem;
	background: #004fa7;
	transform: skewX(-0.04turn);
	opacity: 0.8;
}
#vegas_recruit .caption .small span {
	display: block;
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
	font-style: normal;
	transform: skewX(+0.04turn);
}
#vegas_recruit .caption .small .ttl01 {
	margin-bottom: 20px;
	font-size: calc(70 / 1200 * 100vw);
	font-style: normal;
	transform: skewX(0);
}
#vegas_recruit .caption .small .ttl01-yellow {
	display: inline;
	margin-left: 60px;
	font-style: normal;
	color: #fff800;
	transform: skewX(0);
}

#vegas_recruit .caption p {
	margin: 40px 0 0 10px;
	font-size: 1.8rem;
	font-weight: 500;
	color: #fff;
	line-height: 1.8;
}


#vegas_recruit .sns {
	position: fixed;
	right: 5px;
	top: 50%;
	transform: translate(-50%, -50%);
	z-index: 50;
}
#vegas_recruit .sns .sns__item { margin: 10px 0; line-height: 0; background: #fff; border-radius: 50%; }
#vegas_recruit .sns .sns__item a { display: block; transition: .3s; }
#vegas_recruit .sns .sns__item a:hover { opacity: 0.7; }
#vegas_recruit .sns .sns__item a img { width: 55px; }

#vegas_recruit .caption .cp_item {
	display: flex;
	align-items: center;
	margin-top: 15px;
}
#vegas_recruit .caption .cp_item:nth-child(1) { margin-left: 0px; }
#vegas_recruit .caption .cp_item:nth-child(2) { margin-left: 50px; }
#vegas_recruit .caption .cp_item:nth-child(3) { margin-left: 100px; }

#vegas_recruit .caption .cp_item .point { background: rgba(0,79,167,0.8); transform: skewX(-0.04turn); }
#vegas_recruit .caption .cp_item .point span {
	padding: 0.1em 0.3em;
	font-size: calc(35 / 1200 * 100vw);
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
	font-style: normal;
	color: #fff800;
	transform: skewX(0.04turn);
}

#vegas_recruit .caption .cp_item .point_txt {
	display: inline-block;
	margin-left: 30px;
	font-weight: normal;
	color: #fff;
}
#vegas_recruit .caption .cp_item .point_txt span {
	font-size: calc(20 / 1200 * 100vw);
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.05rem;
}
.cp_item .point_txt span br { display: none; }

#vegas_recruit .caption .sp-br { display: none; }

/* scroll */
.scroll-Block { position: absolute; bottom: 3rem; right: 0px; z-index: 5; }
.scroll-Block .Txt {
    display: block;
	position: relative;
	bottom: 1.7rem;
	right: 0;
	font-size: .8em;
	font-weight: bold;
    line-height: 1;
    -webkit-transform: rotate(90deg);
    transform: rotate(90deg);
}
.scroll-Block .Txt a { color: #fff; text-decoration: none; letter-spacing: .1em; }
.scroll-Block .Line {
    position: relative;
    margin: 50px 0 0 55px;
    width: 2px;
    height: 60px;
    overflow: hidden;
    z-index: 10;
}
.scroll-Block .Line:after, .scroll-Block .Line:before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    display: block;
    width: 2px;
    height: 100%;
}
.scroll-Block .Line:before {
    background: #FFF;
    z-index: 10;
    -webkit-animation: scroll 2s infinite normal;
    animation: scroll 2s infinite normal;
}
.scroll-Block .Line:after {
    background: transparent;
}

@-webkit-keyframes scroll {
	0% {
		-webkit-transform: translate3d(0,-100%,0);
	}
	15% {
		-webkit-transform: translate3d(0,-98%,0);
	}
	85% {
		-webkit-transform: translate3d(0,98%,0);
	}
	100% {
		-webkit-transform: translate3d(0,100%,0);
	}
}

/* トップページ お知らせ */
.top_news_content {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	width: 90%;
	max-width: 1300px;
	margin: 0 auto;
	padding: 120px 0;
}
.top_news_content h2 {
	position: relative;
	width: 250px;
	padding-right: 30px;
	margin: 0;
	font-size: calc(30 / 1200 * 100vw);
}
.top_news_content h2 .en {
	display: block;
	font-family: 'Roboto', sans-serif;
	font-size: 1.3rem;
	font-weight: 500;
	color: #309867;
	letter-spacing: 0.1rem;
	text-indent: 3px;
}

.top_news_content .sns_list {
	display: flex;
	padding: 0;
	margin: 20px 0 0;
}
.top_news_content .sns_list .sns_icon { margin-right: 10px; }
.top_news_content .sns_list .sns_icon img { width: 30px; }
.top_news_content .sns_list .sns_icon a { transition: .3s; }
.top_news_content .sns_list .sns_icon a:hover { opacity: .7; }

.top_news_content .news_list { display: flex; align-items: flex-start; width: 70%; padding: 0; }
.top_news_content .news_list li { width: 31%; margin-right: 3.5%; }
.top_news_content .news_list li:last-of-type { margin-right: 0; }
.top_news_content .news_list li a { font-size: 1.1rem; }
.top_news_content .news_list li a figure { margin: 0; line-height: 0; border: 1px #ddd solid; }
.top_news_content .news_list li a figure img { width: 100%; height: 180px; object-fit: cover; }
.top_news_content .news_list li a time {
	display: table;
	position: relative;
	padding: 0.1em 1em;
	margin-top: 15px;
	font-size: 1rem;
	color: #fff;
	background: #309867;
	border-radius: 50px;
}
.top_news_content .news_list li a span { display: block; margin-top: 10px; font-weight: 500; }

.news_btn {
	display: flex;
	align-items: center;
	width: 250px;
	margin-left: 50px;
	text-decoration: none;
	border-radius: 60px;
	border: 1px solid #309867;
	position: relative;
	transition: 0.3s;
}
.news_btn a { display: block; padding: 1em 5.5em 1em 0; }
.news_btn::after {
	position: absolute;
	content: "";
	background: url("../img/common/common-ar.svg") no-repeat center;
	background-size: cover;
	width: 26px;
	height: 10px;
	top: 50%;
	transform: translate(-50%, -50%);
	right: 12px;
	transition: 0.3s;
}
.news_btn span {
    font-size: 1.1rem;
	font-weight: 500;
    letter-spacing: 0.05em;
    color: #309867;
    padding-left: 30px;
    transition: 0.3s;
}
.news_btn:hover { background: #309867;}
.news_btn:hover span { color: #fff; }
.news_btn:hover::after {
	background: url("../img/common/common-ar-on.svg") no-repeat center;
	background-size: cover;
}

/* トップページ 会社案内 */
.company_bg { position: relative; }
.company_bg::before {
    content: "";
    top: -10%;
    left: 0;
    position: absolute;
    width: 500px;
    height: 400px;
    background-color: #309867;
    z-index: -10;
}

.top_company_content {
	max-width: 1300px;
    width: 90%;
    margin: 80px auto 150px;
}
.top_company_content .inner {
    display: flex;
    justify-content: space-between;
	align-items: center;
}

.top_company_content .inner .img_box { width: 50%; }
.top_company_content .inner .img_box img { width: 100%; height: 400px; object-fit: cover; vertical-align: top; }

.top_company_content .inner .img_box img.t-com-img01 { display: block; }
.top_company_content .inner .img_box img.t-com-img02 { display: none; }

.top_company_content .inner .txt_box { width: 43%; }
.top_company_content .inner .txt_box .top_main_ttl { margin-bottom: 0; }
/*.top_company_content .inner .txt_box .top_main_ttl .ttl_ja::before {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100px;
    height: 1px;
    background-color: #309867;
}*/
.top_company_content .inner .txt_box .top_main_ttl .ttl_en {
	display: block;
    font-family: 'Roboto', sans-serif;
    font-size: 1.3rem;
    font-weight: 500;
    color: #309867;
    letter-spacing: 0.1rem;
    text-indent: 3px;
}
.top_company_content .inner .txt_box .top_main_ttl .ttl_ja {
    position: relative;
	font-size: calc(30 / 1200 * 100vw);
	font-weight: 600;
	color: #222;
    line-height: 1.8em;
    letter-spacing: 0.1rem;
    margin: 0;
}
.top_company_content .inner .txt_box .top_main_ttl p.ttl_ja {
	display: block;
	padding-bottom: 40px;
	margin-top: 40px;
	font-size: 1.1rem;
	font-weight: 500;
}

.top_company_content .inner .txt_box .txt { margin-bottom: 60px; }
.top_company_content .inner .txt_box .txt p { margin: 0 0 1.5em 0; font-weight: 500; }

.btn {
	display: inline-block;
	position: relative;
	padding: 1rem 2rem;
	overflow: hidden;
	text-decoration: none;
	border: 1px solid #222;
	text-align: center;
	outline: none;
	transition: ease .2s;
}
.btn span {
	position: relative;
	z-index: 3;
	font-weight: 600;
	color: #111;
}
.btn:hover span {
	color: #fff;
}

.common_btn {
	display: flex;
	align-items: center;
	width: 250px;
	height: 65px;
	text-decoration: none;
	border-radius: 60px;
	border: 1px solid #309867;
	background-color: #309867;
	position: relative;
	transition: 0.3s;
}
.common_btn::after {
	position: absolute;
	content: "";
	background: url("../img/common/common-ar-on.svg") no-repeat center;
	background-size: cover;
	width: 26px;
	height: 10px;
	top: 50%;
	transform: translate(-50%, -50%);
	right: 12px;
	transition: 0.3s;
}
.common_btn span {
    font-size: 1.1rem;
	font-weight: 500;
    letter-spacing: 0.05em;
    color: #fff;
    padding-left: 30px;
    transition: 0.3s;
}
.common_btn:hover { background: #fff;}
.common_btn:hover span { color: #309867; }
.common_btn:hover::after {
	background: url("../img/common/common-ar.svg") no-repeat center;
	background-size: cover;
}

/* 施工事例 */
.top_works_content {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 90%;
	max-width: 1300px;
	margin: 0 auto 150px;
}

.top_works_content .wk-txt {
	width: 20%;
	padding-right: 5%;
	text-align: center;
}
.top_works_content .wk-txt h3 {
	display: inline-block;
	margin: 0;
	font-size: 1.15rem;
	font-weight: 500;
	writing-mode: vertical-rl;
	text-align: left;
	letter-spacing: 0.2rem;
}

.top_works_content .wk-txt .top_works_head { margin-bottom: 40px; }
.top_works_content .wk-txt .top_works_head span { font-size: calc(30 / 1200 * 100vw); }
.top_works_content .wk-txt .top_works_head span.en {
	display: block;
	font-family: 'Roboto', sans-serif;
	font-size: 1.3rem;
	font-weight: 500;
	color: #309867;
	letter-spacing: 0.1rem;
}

.top_works_content .wk-link {
	width: 70vw;
	margin-right: calc(50% - 50vw);
}
.top_works_content .wk-link__btn {}
.top_works_content .wk-link__btn:nth-child(2),
.top_works_content .wk-link__btn:nth-child(3) { margin-top: 10px; }

.top_works_content .wk-link__btn a {
	display: flex;
	justify-content: space-between;
	position: relative;
	/*padding: 4em 3.5em;*/
	overflow: hidden;
}

.top_works_content .wk-link__btn a .green-back {
	position: relative;
	width: 35%;
	padding: 3em 2em;
	background: #309867;
	z-index: 50;
	transition: all .3s ease-out;
}
.top_works_content .wk-link__btn a:hover .green-back {
	background: #197f4c;
}

.top_works_content .wk-link__btn .green-back span {
	position: relative;
	font-family: 'Roboto', sans-serif;
	font-size: 1.3rem;
	font-weight: 600;
	color: #fff;
	letter-spacing: 0.05rem;
	z-index: 10;
}
.top_works_content .wk-link__btn .green-back h4 {
	position: relative;
	margin: 5px 0 0;
	font-size: 2rem;
	color: #fff;
	z-index: 10;
}
.top_works_content .wk-link__btn .green-back p {
	position: relative;
	margin: 5px 0 0;
	font-size: 1.1rem;
	font-weight: 500;
	line-height: 1.6;
	color: #fff;
	z-index: 10;
}
.top_works_content .wk-link__btn .green-back br { display: block; }

.top_works_content .wk-link__btn a .img-back01 { display: block; position: relative; width: 65%; overflow: hidden; }
.top_works_content .wk-link__btn a .img-back01::after {
	content: "";
	position: absolute;
	display: block;
	width: 100%;
	height: 100%;
	background: url("../img/common/works_back01.jpg") no-repeat;
	background-size: cover;
	background-position: center;
	top: 0;
	left: 0;
	transition: all .3s ease-out;
}
.top_works_content .wk-link__btn a:hover .img-back01::after { opacity: 0.8; transform: scale(1.1); }

.top_works_content .wk-link__btn a .img-back02 { display: block; position: relative; width: 65%; overflow: hidden; }
.top_works_content .wk-link__btn a .img-back02::after {
	content: "";
	position: absolute;
	display: block;
	width: 100%;
	height: 100%;
	background: url("../img/common/works_back02.jpg") no-repeat;
	background-size: cover;
	background-position: center;
	top: 0;
	left: 0;
	transition: all .3s ease-out;
}
.top_works_content .wk-link__btn a:hover .img-back02::after { opacity: 0.8; transform: scale(1.1); }

.top_works_content .wk-link__btn a .img-back03 { display: block; position: relative; width: 65%; overflow: hidden; }
.top_works_content .wk-link__btn a .img-back03::after {
	content: "";
	position: absolute;
	display: block;
	width: 100%;
	height: 100%;
	background: url("../img/common/works_back03.jpg") no-repeat;
	background-size: cover;
	background-position: center;
	top: 0;
	left: 0;
	transition: all .3s ease-out;
}
.top_works_content .wk-link__btn a:hover .img-back03::after { opacity: 0.8; transform: scale(1.1); }

.works_btn {
	display: flex;
	align-items: center;
	width: 200px;
	height: 65px;
	margin: 20px auto 0;
	text-decoration: none;
	border-radius: 60px;
	border: 1px solid #309867;
	position: relative;
	transition: 0.3s;
}
.works_btn::after {
	position: absolute;
	content: "";
	background: url("../img/common/common-ar.svg") no-repeat center;
	background-size: cover;
	width: 26px;
	height: 10px;
	top: 50%;
	transform: translate(-50%, -50%);
	right: 12px;
	transition: 0.3s;
}
.works_btn span {
    font-size: 1.1rem;
	font-weight: 500;
    letter-spacing: 0.05em;
    color: #309867;
    padding-left: 30px;
    transition: 0.3s;
}
.works_btn:hover { background: #309867;}
.works_btn:hover span { color: #fff; }
.works_btn:hover::after {
	background: url("../img/common/common-ar-on.svg") no-repeat center;
	background-size: cover;
}

/* 採用情報 */
.footer_recruit {
	padding: 80px 0;
	background: url("../img/common/recruit_back.jpg") no-repeat;
	background-size: cover;
}
.footer_recruit .inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 90%;
	max-width: 1300px;
	margin: 0 auto;
}
.footer_recruit .inner .rec_item {}
.footer_recruit .inner .rec_item .en {
	font-size: 1.3rem;
	font-family: 'Roboto', sans-serif;
	font-weight: 500;
	color: #fff;
	letter-spacing: 0.1rem;
}
.footer_recruit .inner .rec_item h2 { margin: 0; font-size: calc(30 / 1200 * 100vw); color: #fff; }
.footer_recruit .inner .rec_item h3 { margin: 40px 0 0; font-size: 2.5rem; color: #fff; }
.footer_recruit .inner .rec_item p { margin: 40px 0 0; font-size: 1.2rem; color: #fff; }
.footer_recruit .inner .rec_item a {
	display: inline-grid;
	position: relative;
	overflow: hidden;
	width: 350px;
	height: 350px;
	padding: 2em;
	align-content: center;
	text-align: center;
	border: 1px #fff solid;
	border-radius: 50%;
	box-sizing: border-box;
	transition: .3s;
}
.footer_recruit .inner .rec_item a span {
	font-size: 1.6rem;
	font-weight: 500;
	color: #fff;
	transition: .3s;
}
.footer_recruit .inner .rec_item a span:first-of-type {
	font-size: 2.2rem;
	font-weight: 600;
}
.footer_recruit .inner .rec_item a:hover span {
	color: #309867;
	z-index: 5;
}

.bgcenterout:before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	z-index: 2;
	background: #fff;
	border-radius: 50%;
	width: 100%;
	height: 100%;
	transition: transform .4s cubic-bezier(0.8, 0, 0.2, 1) 0s;
	transform: scale(0, 0);
	transform-origin: center;
}
.bgcenterout:hover:before {
	transform: scale(1, 1);
}

/* お問い合わせ */
.footer_contact {
	position: relative;
	padding: 80px 0;
	background: #309867;
}
.footer_contact.blue_bg {
	background: #004fa7;
}
.footer_contact .inner {
	display: flex;
	width: 90%;
	max-width: 1300px;
	margin: 0 auto;
}
.footer_contact .inner .ct-item { width: 50%; text-align: center; }
.footer_contact .inner .ct-item:first-of-type { border-right: 1px #90c6a6 solid; }
.footer_contact .inner .ct-item h3 { margin: 0; font-size: 1.8rem; color: #fff; }
.footer_contact .inner .ct-item p { margin: 5px 0 0; font-size: 1.1rem; color: #fff; }
.footer_contact .inner .ct-item p.ct-item__tel {
	margin: 15px 0 0;
	font-size: 2.5rem;
	font-weight: 600;
	color: #fff;
	line-height: 1;
}

.ct-btn { width: 250px; margin: 20px auto 0; }
.ct-btn a {
	display: block;
    position: relative;
    padding: 0.7em 1em 0.7em 3em;
	font-size: 1.1rem;
	font-weight: 500;
	color: #fff;
	text-align: center;
	text-decoration: none;
	background-color: #f5a802;
	border-radius: 100px;
	box-sizing: border-box;
    transition: .3s;
}
.ct-btn a:hover {
	color: #309867;
    background-color: #fff;
}
.ct-btn a::after {
	content: "";
	position: absolute;
	top: 50%;
  	left: 50px;
  	transform: translateY(-50%);
  	-webkit- transform: translateY(-50%);
	width: 20px;
	height: 16px;
	background: url("../img/common/mail_icon.png") no-repeat;
	background-size: 20px;
	transition: .3s;
}
.ct-btn a:hover::after {
	background: url("../img/common/mail_icon_on.png") no-repeat;
	background-size: 20px;
}

.ct-btn.blue a:hover {
	color: #004fa7;
}
.ct-btn.blue a:hover::after {
	background: url("../img/common/mail_icon_on_blue.png") no-repeat;
	background-size: 20px;
}


/*************************** FOOTER ***************************/

#footer { padding: 80px 0; }
#footer .footer-inner {
	display: flex;
	justify-content: space-between;
	width: 90%;
	max-width: 1300px;
	margin: 0 auto;
}
.footer-inner .cp-data { width: 50%; }
.footer-inner .cp-data .cp-name {
	display: flex;
	align-items: center;
	margin: 0;
}

.cp-data .cp-name .logo-img {
	margin-right: 10px;
	line-height: 0;
}
.cp-data .cp-name .logo-img img {
	width: 45px;
}

.cp-data .cp-name .logo-txt {
	font-size: 1.5rem;
    letter-spacing: .1em;
}
.cp-data .cp-name .logo-txt span {
	display: block;
	font-size: .7rem;
	font-weight: 500;
	text-indent: 2px;
	letter-spacing: .27em;
}

.cp-data .cp-add { margin-top: 20px; }
.cp-data .cp-add span {
	display: block;
	font-size: 1.1rem;
	font-weight: 500;
}
.cp-data .cp-add span:first-of-type { text-indent: -2px; }
.cp-data .cp-copy { margin-bottom: 0; font-size: 0.9rem; }

.footer-inner .footer_nav { display: flex; justify-content: flex-end; width: 50%; }
.footer-inner .footer_nav .footer-sns { margin: 0 5px; }
.footer-inner .footer_nav .footer-sns:nth-child(2) { margin: 0 5px; margin-right: 25px; }

.footer-inner .footer_nav ul {
	width: 180px;
	padding-left: 20px;
	margin: 0;
	list-style: none;
	border-left: 1px #309867 solid;
}
.footer-inner .footer_nav ul.blue {
	border-left: 1px #004fa7 solid;
}
.footer-inner .footer_nav ul li { margin-bottom: 10px; }
.footer-inner .footer_nav ul li:last-child { margin-bottom: 0; }
.footer-inner .footer_nav ul li a { position: relative; font-size: 1.1rem; font-weight: 500; }
.footer-inner .footer_nav ul li a::after {
	position: absolute;
	bottom: -5px;
	left: 0;
	content: '';
	width: 100%;
	height: 2px;
	background: #309867;
	transform: scale(0,1);
	transform-origin: left top;
	transition: transform .3s;
}
.footer-inner .footer_nav ul li a:hover::after {
	transform: scale(1,1);
}

.footer-inner .footer_nav ul.blue li a::after { background: #004fa7; }

/*************************** COMMON ***************************/

#content { width: 90%; width: 1300px; margin: 0 auto; padding: 100px 0; }
#content p { color: #2f3739; line-height: 2; }

h2.ttl {
	position: relative;
	margin: 0 0 50px;
	padding: 0 0 20px;
	font-size: 2.3rem;
	font-weight: 600;
	color: #2f3739;
	letter-spacing: 0.05rem;
}
h2.ttl::after, h2.ttl::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 0.2rem;
    background-color: #1eaa39;
    transform-origin: left center;
    transform: scaleX(.1);
}
h2.ttl::before {
    content: "";
    position: absolute;
    bottom: 0;
    left: 0;
    display: block;
    width: 100%;
    height: 0.2rem;
    background-color: #309867;
    transform-origin: left center;
    transform: scaleX(.05);
}
h2.ttl::after {
    right: 0;
    left: auto;
    width: 95%;
    background-color: rgba(37,30,28,.1);
    transform: none;
}

h3.sub-ttl {
	position: relative;
	padding: 0.5em 2em;
    margin: 60px 0 40px;
	font-size: 1.5rem;
	background: #f2f2f2;
	border-radius: 7px;
}
h3.sub-ttl::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 30px;
	transform: translateY(-50%);
    width: 0.3rem;
    height: 2rem;
    background-color: #309867;
    border-radius: 0.5rem;
}

/* ※BREADCRUMB LIST */
#bread {
	width: 100%;
	margin: 0 auto;
	padding: 12px 0px;
	font-size: 80%;
	text-align: left;
	background: #f5f5f5;
}
#bread a {
	text-decoration: none;
	position: relative;
	font-weight: 500;
	color: #353535;
}
#bread a:hover {
	color: #868686;
}

#bread-box { width: 90%; max-width: 1300px; margin: 0px auto; }
#bread-box .list-item {
	display: inline;
	position: relative;
	margin-left: 25px;
    line-height: 1.2;
	list-style-type: none;
}
#bread-box .list-item::before {
    content: '';
    display: block;
    width: 1px;
    height: 14px;
    position: absolute;
    left: -12px;
    top: 50%;
    transform: translateY(-50%) skew(-20deg);
    background: #282828;
}

.page-head {
    overflow: hidden;
    padding: 50px 0 50px;
	background: #309867;
	background-position: right;
}
.page-head-ttl {
	width: 90%;
	max-width: 1300px;
	margin: 0 auto;
    position: relative;
}
.page-head-ttl__main {
	position: relative;
    display: block;
    margin: 0;
	font-family: 'Roboto', sans-serif;
	font-weight: 600;
    font-size: 2.5em;
    font-style: normal;
	color: #fff;
	letter-spacing: 0.1rem;
    z-index: 1;
}
.page-head-ttl__sub {
	position: relative;
    display: block;
    font-size: .9em;
    color: #fff;
    letter-spacing: .1em;
    z-index: 1;
}

.br-sp { display: none; }

/*************************** WORKS ****************************/

.works__link-list { display: flex; flex-wrap: wrap; justify-content: space-between; margin-bottom: 80px; padding: 0; }
.works__link-list .button { width: 33%; }
.works__link-list .button a {
	display: block;
	position: relative;
	padding: 1em 2em;
	font-size: 1.2rem;
	font-weight: 500;
	color: #fff;
	text-align: center;
	background: #309867;
	border-radius: 6px;
	box-sizing: border-box;
	border: 3px #309867 solid;
	transition: 0.3s;
}
.works__link-list .button a::after {
	content: "";
	display: inline-block;
	vertical-align: middle;
	position: absolute;
	top: 25px;
	right: 50px;
	color: #fff;
	line-height: 1;
	width: 0.7em;
	height: 0.7em;
	border: 0.15em solid currentColor;
	border-left: 0;
	border-bottom: 0;
	box-sizing: border-box;
	transform: translateY(-25%) rotate(135deg);
	transition: 0.3s;
}
.works__link-list .button a:hover { color: #309867; background: #fff; }
.works__link-list .button a:hover::after { color: #309867; }

.works-list { display: flex; flex-wrap: wrap; }
.works-list .works-item { width: 32%; margin-right: 2%; margin-bottom: 30px; }
.works-list .works-item:nth-child(3n) { margin-right: 0; }
.works-list .works-item .item { position: relative; overflow: hidden; border-radius: 10px; }

.works-list .works-item .item-img { line-height: 0; transition: all .3s ease-out; }
.works-list .works-item .item-img img { width: 100%; }
.works-list .works-item a:hover .item-img {
	opacity: 0.8;
	transform: scale(1.1);
}

.works-list .works-item .item a .item-data {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	padding: 0.8em 1em;
	background: rgba(0,0,0,0.5);
	box-sizing: border-box;
	transition: all .3s ease-out;
}

.works-list .works-item a .time {
	font-size: 1.1rem;
	color: #fff!important;
}
.works-list .works-item a .name {
	font-size: 1.1rem;
	color: #fff!important;
	line-height: 1.6!important;
}

.modal-box {
	display: flex;
	justify-content: space-between;
}
.modal-box .img-box { width: 50%; }
.modal-box .img-box figure { margin: 0; }
.modal-box .img-box figure:last-of-type { margin-top: 10px; }
.modal-box .img-box figure img { width: 100%; }
.modal-box .img-box__thumbnail {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	margin-top: 10px;
}

.img-box__thumbnail .item { width: 49%; margin-bottom: 10px; }
.img-box__thumbnail .item img { width: 100%; }

.modal-box .profile { width: 45%; }
.modal-box .profile .title { font-weight: 500; }
.modal-box .profile dl {
	display: flex;
	flex-wrap: wrap;
	margin: 30px 0;
	font-size: 0.9rem;
}
.modal-box .profile dl dt {
	width: 30%;
	padding: 1em;
	background: #f2f2f2;
	border-bottom: 2px #fff solid;
}
.modal-box .profile dl dd {
	width: 70%;
	padding: 1em;
	border-bottom: 2px #fff solid;
}
.modal-box .profile .txt {
	font-size: 0.9rem;
	line-height: 1.8;
	text-align: justify;
}

.space_m { height: 40px; }
.space_l { height: 80px; }

.works-contact { width: 800px; margin: 40px auto 0; }
.works-contact a {
	display: block;
    position: relative;
    padding: 1rem 1rem 1rem 3rem;
	font-size: 1.3rem;
	font-weight: 600;
	color: #fff;
	text-align: center;
	text-decoration: none;
	background-color: #309867;
	border-radius: 100px;
	border: 1px solid #309867;
	box-sizing: border-box;
    transition: .3s;
}
.works-contact a:hover {
	color: #309867;
    background-color: #fff;
}
.works-contact a::after {
    position: absolute;
    content: "";
    background: url(../img/common/common-ar-on.svg) no-repeat center;
    background-size: cover;
    width: 26px;
    height: 10px;
    top: 50%;
    transform: translate(-50%, -50%);
    right: 12px;
    transition: 0.3s;
}
.works-contact a:hover::after {
	background: url("../img/common/common-ar.svg") no-repeat center;
	background-size: cover;
}
.works-contact br { display: none; }

.works-contact a br { display: none; }


/**************************** NEWS ****************************/

.news-list { margin-top: 80px; margin-bottom: 50px; }
.news-list .news__item-list {
	padding: 0;
	margin: 0;
}
.news-list .news__item-list li {
	border-bottom: 1px rgba(0,0,0,.1) solid;
}
.news-list .news__item-list li a {
	display: flex;
	align-items: center;
	position: relative;
	width: 100%;
	padding: 30px 0;
	transition: .3s;
}
.news-list .news__item-list li a::after {
	content: "";
	position: absolute;
	top: 50%;
	right: 0;
	transform: translateY(-50%);
	background: url(../img/common/common-ar.svg) no-repeat center;
    background-size: cover;
    width: 26px;
    height: 10px;
	transition: .3s;
}
.news-list .news__item-list li a:hover {
	color: #309867;
}
.news-list .news__item-list li a:hover::after {
	right: 20px;
}
.news-list .news__item-list li a figure { width: 15%; margin: 0; line-height: 0; border: 1px #ddd solid; }
.news-list .news__item-list li a figure img { width: 100%; height: 146px; object-fit: cover; }
.news-list .news__item-list li a time {
	margin-right: 20px;
	color: #888;
	letter-spacing: 0.05rem;
}
.news-list .news__item-list li a span {
	font-size: 1.1rem;
	font-weight: 500;
}

.news-list .news__item-list li a .list-data { padding-left: 30px; }

.news-article {}
.news-article .article__main-ttl { font-size: 2.2rem; color: #309867; }
.news-article .article__time {
	display: block;
	padding: 15px 0;
	margin-bottom: 60px;
	color: #888;
	letter-spacing: 0.05rem;
	border-bottom: 1px rgba(0,0,0,0.1) solid;
	border-top: 1px rgba(0,0,0,0.1) solid;
}

.article__text {}
.article__text h2 { position: relative; padding-left: 25px; margin: 50px 0 30px; font-size: 1.8rem; }
.article__text h2::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 3px;
	height: 100%;
	background: #309867;
}
.article__text h3 {
	position: relative;
	padding-bottom: 15px;
	margin: 50px 0 30px;
	font-size: 1.4rem;
	border-bottom: 1px #309867 solid;
}
.article__text p { margin-top: 30px; }

.pagination { display: flex; align-items: center; justify-content: center; padding: 0; }
.pagination a { display: flex; padding: 0 5px; }
.pagination a.isActive { color: #309867; text-decoration: underline; }
.pagination a svg { width: 20px; }

/************************** COMPANY ***************************/

.company__link-list { display: flex; flex-wrap: wrap; justify-content: space-between; margin-bottom: 80px; padding: 0; }
.company__link-list .button { width: 19.5%; }
.company__link-list .button a {
	display: block;
	position: relative;
	padding: 1em 1em;
	font-size: 1.1rem;
	font-weight: 500;
	color: #fff;
	text-align: center;
	background: #309867;
	border-radius: 6px;
	box-sizing: border-box;
	border: 3px #309867 solid;
	transition: 0.3s;
}
.company__link-list .button a::after {
	content: "";
	display: inline-block;
	vertical-align: middle;
	position: absolute;
	top: 25px;
	right: 20px;
	color: #fff;
	line-height: 1;
	width: 0.7em;
	height: 0.7em;
	border: 0.15em solid currentColor;
	border-left: 0;
	border-bottom: 0;
	box-sizing: border-box;
	transform: translateY(-25%) rotate(135deg);
	transition: 0.3s;
}
.company__link-list .button a:hover { color: #309867; background: #fff; }
.company__link-list .button a:hover::after { color: #309867; }

.profile__img {
	left: 0!important;
	/*width: auto!important;*/
    margin-left: calc(50% - 50vw)!important;
    margin-right: calc(50% - 50vw)!important;
    margin-bottom: 100px;
    /*max-width: 100vw!important;*/
	height: 800px!important;
	max-height: 800px!important;
}
.profile__img img {
	width: 100%;
	max-width: 100vw;
    /*height: 500px;*/
    object-fit: cover;
}

.company__area00 {}
.company__area00 .com-logo { text-align: center; }
.company__area00 .com-lead {
	margin-top: 40px;
	font-size: 1.5rem;
	font-weight: 600;
	text-align: center;
	line-height: 2;
}

.company__area-digital {}

.company__area01 {
	width: 100%;
	max-width: 1300px;
	margin: 0 auto 0;
	padding: 0;
}
.company__area01 h3 {
	position: relative;
	padding-left: 60px;
	margin: 0;
	font-size: 2rem;
	color: #111;
	letter-spacing: 0.1rem;
}
/*.company__area01 h3::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
    transform: translateY(-50%);
	width: 50px;
	height: 1px;
	background: #309867;
}*/
.company__area01 h3.sub-ttl {
	position: relative;
    padding: 0.5em 2em;
    margin: 60px 0 40px;
    font-size: 1.5rem;
    background: #f2f2f2;
    border-radius: 7px;
}

.company__area01 .com-greeting {
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.company__area01 .text-box p { font-size: 1.2rem; }
.company__area01 .imgBox { display: flex; justify-content: space-between; margin-top: 50px; }
.company__area01 .imgBox .item { width: 48%; }
.company__area01 .imgBox .item img { width: 100%; border-radius: 15px; }

.greeting__ceo-img { width: 45%; line-height: 0; }
.greeting__ceo-img img { width: 100%; height: 536px; border-radius: 15px; object-fit: cover; }

/*.greeting__ceo-mes01 { margin-left: -2%; }
.greeting__ceo-mes01 span {
	display: block;
	width: 60px;
	height: calc(tan(60deg) * 60px / 2);
	background: #309867;
	clip-path: polygon(0 50%, 100% 0, 100% 100%);
}*/
.greeting__ceo-mes02 {
	width: 53.5%;
	padding: 2em 3em;
	/*background: #309867;*/
	border: 5px #309867 solid;
	border-radius: 15px;
	box-sizing: border-box;
	/*box-shadow: 0px 10px 10px -6px rgba(0,0,0,0.3);*/
}
.greeting__ceo-mes02 h3 { padding: 0; color: #111; text-align: center; }
.greeting__ceo-mes02 p { margin-top: 20px; font-size: 1.1rem; color: #111!important; text-align: justify; line-height: 1.9!important; }
.greeting__ceo-mes02 .ceo-name {}
.greeting__ceo-mes02 .ceo-name small {
	display: block;
	font-size: 1rem;
	font-family: 'M PLUS Rounded 1c', sans-serif;
	font-weight: 500;
	font-style: normal;
	color: #111;
	text-align: right;
}
.greeting__ceo-mes02 .ceo-name div {
	font-size: 1.4rem;
	font-family: 'M PLUS Rounded 1c', sans-serif;
	font-weight: 500;
	font-style: normal;
	color: #111;
	text-align: right;
}
.greeting__ceo-mes02 .ceo-name div span { margin-right: 20px; font-size: 1rem; }

.company__area01 .com-landscape {
	display: flex;
	flex-wrap: wrap;
	padding: 0;
	margin-top: 30px;
}
.com-landscape li { width: 31.5%; margin-right: 2.75%; margin-bottom: 25px; }
.com-landscape li:nth-child(3n) { margin-right: 0; }
.com-landscape li img { width: 100%; border-radius: 15px; }
.com-landscape li p { margin-top: 5px; font-size: 1.1rem; line-height: 1.5!important; }

.company__area02 {
	max-width: 1300px;
	margin: 0 auto;
	padding: 10px 0 100px;
}
.company__area02 .com-list { /*margin-top: 100px;*/ }
.company__area02 .com-list dl { display: flex; line-height: 1.8em; font-size: 1rem; }
.company__area02 .com-list dt {
	width: 200px;
    padding: 1.5em;
	font-size: 1.1rem;
    font-weight: 500;
    text-align: left;
    background: #f0f1f2;
    border-bottom: 3px #fff solid;
}
.company__area02 .com-list dd {
	width: 1000px;
	padding: 1.5em 1.5em;
	font-size: 1.1rem;
	font-weight: 500;
	line-height: 2;
	text-align: left;
	border-bottom: 3px #fff solid;
}
.company__area02 .com-list dd ul { list-style: none; padding: 0; margin: 0; }
.company__area02 .com-list p { box-sizing: border-box; line-height: 2em; }

.company__area02 .com-list ul.facility li { position: relative; padding: 0.3rem 1rem 0.3rem 1.2rem; border-bottom: 1px #ddd solid; }
.company__area02 .com-list ul.facility li::before {
	content: "・";
	position: absolute;
	top: 50%;
    left: 0%;
    transform: translateY(-50%);
}

.bgwrap {
	position: relative;
	max-width: 100vw!important;
	margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    background: #fff;
}


/************************** RECRUIT ***************************/

.bg-line {
	content: "";
	top: 0;
    left: 0;
	display: block;
    position: absolute;
    width: 100%;
    height: 100%;   
	background: url("../img/recruit/line.svg") repeat-y 0 0;
    background-size: contain;
	opacity: .5;
	z-index: -1;
}

.recruit_vision {}
.recruit_vision .heading01 {
	font-size: 6rem;
	font-family: 'Roboto', sans-serif;
	font-weight: 900;
	font-style: italic;
	color: #004fa7;
	text-align: center;
	line-height: 0.7;
}
.recruit_vision .heading02 {
	margin-top: 30px;
	font-size: 2.5rem;
	font-weight: bold;
	text-align: center;
}

.recruit_vision .text-box {
	position: relative;
	margin-top: 80px;
	max-width: 100vw!important;
	margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
	background: #f2f2f2;
}
.recruit_vision .text-box .inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	width: 90%;
	max-width: 1300px;
	margin: 0 auto;
}
.recruit_vision .text-box .inner .txt_box { width: 47%; }
.recruit_vision .text-box .inner .txt_box h2 {
	font-size: 2.1rem;
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
	font-style: normal;
	color: #004fa7;
	line-height: 1.6;
}

.recruit_vision .text-box .inner .img_box {
	width: 50vw;
	height: 600px;
	margin-right: calc(50% - 50vw);
	clip-path: polygon(15% 0%, 100% 0%, 100% 100%, 0% 100%);
}
.recruit_vision .text-box .inner .img_box img {
	width: 100%;
	height: 600px;
	object-fit: cover;
}

.recruit_interview { position: relative; }
.recruit_interview::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
    transform: translateX(-50%);
	width: 100%;
	height: 1px;
	background: #004fa7;
}
.recruit_interview .inner {
	width: 90%;
	max-width: 1300px;
	margin: 0 auto;
	padding: 100px 0 0;
}
.recruit_interview .inner h3:first-of-type {
	margin: 0;
	font-size: 1.5rem;
	font-family: 'Roboto', sans-serif;
	font-weight: 900;
	font-style: italic;
	color: #004fa7;
	text-align: center;
}
.recruit_interview .inner h2 { font-size: 2rem; color: #111; text-align: center; }
.recruit_interview .inner h2 br { display: none; }
.recruit_interview .inner p { font-weight: 500; color: #111; text-align: center; }

.recruit_interview_flexBox {
	display: flex;
	justify-content: space-between;
	margin-top: 50px;
	margin-bottom: 100px;
}

.recruit_interview .inner .interview_box {
	position: relative;
    left: 0!important;
	width: 48%;
	padding: 250px 0 0;
	height: 600px;
	text-align: left!important;
	background-color: #004fa7;
	box-sizing: border-box;
}

.interview_box.staff01 {
	background: url("../img/recruit/interview_img01.jpg") no-repeat;
	background-size: cover;
	background-position: 50px center;
}
.interview_box.staff02 {
	background: url("../img/recruit/interview_img02.jpg") no-repeat;
	background-size: cover;
	background-position: 50px center;
}

.interview_box .inner {
	width: 90%;
	max-width: 1300px;
	margin: 0 auto;
	padding: 0;
}
.interview_box .inner h2 { text-align: left; }
.interview_box .inner h2 span { display: inline-block; }
.interview_box .inner p { text-align: left; }

.interview_box .inner .en {
	font-size: 1.5rem;
	font-family: 'Roboto', sans-serif;
	font-weight: 900;
	font-style: italic;
	color: #fff;
	letter-spacing: 0.1rem;
}
.interview_box .inner .en span { margin-left: 5px; font-size: 2rem; }

.interview_box .inner .text {
	font-size: 1.1rem;
	font-weight: 500;
	color: #fff;
	line-height: 1.7;
}
.interview_box .inner .text.name { font-size: 1.4rem; font-weight: 600; }

.interview_btn {
	position: absolute;
	bottom: -50px;
	right: -20px;
	width: 300px;
	margin-bottom: 15px;
	transform: skewX(-0.04turn)!important;
}
.interview_btn a {
	display: block;
	padding: 1em 1.5em;
	font-size: 1.2rem;
	font-weight: 500;
	color: #fff;
	background: #004fa7;
	box-sizing: border-box;
	transition: .3s;
}
.interview_btn a::after {
    position: absolute;
    content: "";
    background: url("../img/common/common-ar-on.svg") no-repeat center;
    background-size: cover;
    width: 26px;
    height: 10px;
    top: 27px;
	right: 22px;
	transform: skewX(0.04turn)!important;
    transition: 0.3s;
}
.interview_btn a:hover {
	color: #004fa7;
	background: #fff;
}
.interview_btn a:hover::after {
	right: 35px;
	background: url("../img/common/common-ar-on-blue.svg") no-repeat center;
}
.interview_btn span {
	display: block;
	transform: skewX(0.04turn)!important;
}

.interview_comment-box {
	margin: 0 auto;
	padding: 80px 0;
}
.interview_comment-box .comment-box__flex {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
}
.comment-box__flex h3 {
	position: relative;
	width: 35%;
	padding-left: 60px;
	font-family: "Noto Sans Japanese"!important;
	font-style: normal!important;
	text-align: left!important;
}
.comment-box__flex h3::before {
	content: "";
	position: absolute;
	top: 50%;
	left: 0;
	transform: translateY(-50%);
	width: 50px;
	height: 1px;
	background: #004fa7;
}
.comment-box__flex p {
	width: 60%;
	text-align: justify!important;
}

.recruit_atmosphere { position: relative; }
.recruit_atmosphere::before {
	content: "";
	position: absolute;
	top: 0;
	left: 50%;
    transform: translateX(-50%);
	width: 100%;
	height: 1px;
	background: #004fa7;
}
.recruit_atmosphere .inner {
	width: 90%;
	max-width: 1300px;
	margin: 0 auto;
	padding: 100px 0 0;
}
.recruit_atmosphere .inner h3:first-of-type {
	margin: 0;
	font-size: 1.5rem;
	font-family: 'Roboto', sans-serif;
	font-weight: 900;
	font-style: italic;
	color: #004fa7;
	text-align: center;
}
.recruit_atmosphere .inner h2 { font-size: 2rem; color: #111; text-align: center; }
.recruit_atmosphere .inner h2 br { display: none; }
.recruit_atmosphere .inner p {
	margin-bottom: 100px;
	font-size: 1.3rem;
	color: #004fa7;
	text-align: center;
}

.recruit_atmosphere .inner .ap__flex { display: flex; flex-wrap: wrap; justify-content: space-between; margin: 50px 0 50px; }
.recruit_atmosphere .inner .ap__flex .item { width: 23%; }
.recruit_atmosphere .inner .ap__flex .item img { width: 100%; }
.recruit_atmosphere .inner .ap__flex .item span { font-size: 1.1rem; }

.modal-box .iv_mainBox { display: flex; justify-content: space-between; width: 100%; }
.modal-box .iv_mainBox .iv_box01, .modal-box .iv_mainBox .iv_box02 { width: 47.5%; }
.modal-box .iv_mainBox .iv_box01 figure { position: relative; margin: 0; }
.modal-box .iv_mainBox .iv_box01 figure img { width: 100%; }
.modal-box .iv_mainBox .iv_box01 figure .name { position: absolute; bottom: 0; left: 0; padding: 1em 2em 0 0; background: #fff; }
.modal-box .iv_mainBox .iv_box01 figure .name p:nth-child(1) { font-weight: 500; line-height: 1.8; }
.modal-box .iv_mainBox .iv_box01 figure .name p:nth-child(2) { font-size: 1.5rem; font-weight: 600; line-height: 1.8; }
.modal-box .iv_mainBox .iv_box01 figure .name p:nth-child(2) span { margin-left: 20px; font-size: 1rem; font-weight: 500; }
.modal-box .iv_mainBox .iv_box01 dl, .modal-box .iv_mainBox .iv_box02 dl { position: relative; }
.modal-box .iv_mainBox .iv_box01 dl dt { margin: 20px 0 10px; border-bottom: 2px #004fa7 solid; }
.modal-box .iv_mainBox .iv_box01 dl dt span { position: absolute; left: 0; font-size: 1.1rem; font-weight: bold; color: #004fa7; }
.modal-box .iv_mainBox .iv_box01 dl dt h3 { padding-left: 30px; margin: 0 0 5px; }
.modal-box .iv_mainBox .iv_box01 dl dd span { position: absolute; left: 0; font-size: 1.1rem; font-weight: bold; color: #d30000; }
.modal-box .iv_mainBox .iv_box01 dl dd p { padding-left: 30px; font-size: 0.95rem; line-height: 1.8; }

.modal-box .iv_mainBox .iv_box02 dl dt { margin: 20px 0 10px; border-bottom: 2px #004fa7 solid; }
.modal-box .iv_mainBox .iv_box02 dl dt span { position: absolute; left: 0; font-size: 1.1rem; font-weight: bold; color: #004fa7; }
.modal-box .iv_mainBox .iv_box02 dl dt h3 { padding-left: 30px; margin: 0 0 5px; }
.modal-box .iv_mainBox .iv_box02 dl dd span { position: absolute; left: 0; font-size: 1.1rem; font-weight: bold; color: #d30000; }
.modal-box .iv_mainBox .iv_box02 dl dd p { padding-left: 30px; font-size: 0.95rem; line-height: 1.8; }

.modal-box .iv_mainBox .iv_box02 .img_list {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding: 0;
	margin-top: 40px;
}
.modal-box .iv_mainBox .iv_box02 .img_list .item { width: 48%; margin-bottom: 15px; }
.modal-box .iv_mainBox .iv_box02 .img_list .item img { width: 100%; }

.recruit_welfare { position: relative; }
.recruit_welfare .inner {
	width: 90%;
	max-width: 1300px;
	margin: 0 auto;
	padding: 100px 0 20px;
}
.recruit_welfare .inner h3:first-of-type {
	margin: 0;
	font-size: 1.8rem;
	font-family: 'Roboto', sans-serif;
	font-weight: 900;
	font-style: italic;
	color: #004fa7;
	letter-spacing: 0.1rem;
	text-align: center;
}
.recruit_welfare .inner h2 { font-size: 2.5rem; color: #111; text-align: center; }
.recruit_welfare .inner p { font-weight: 500; color: #111; text-align: center; }

.welfare_box {
	display: flex;
	align-items: flex-start;
	width: 90%;
	max-width: 1300px;
	margin: 0 auto 100px;
}
.welfare_box h4 { width: 25%; margin: 0; font-size: 2rem; color: #004fa7; }
.welfare_box h4 small {
	display: block;
	font-family: 'Roboto', sans-serif;
	font-size: 1rem;
	font-weight: 500;
	color: #004fa7;
	letter-spacing: 0.05rem;
}
.welfare_box h4 span { display: block; margin-top: 10px; }
.welfare_box .welfare_box__list {
	width: 100%;
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	padding: 0;
}
.welfare_box .welfare_box__list .item {
	width: 24.8%;
	padding: 2em 0;
	margin-bottom: 5px;
	font-size: 1.5rem;
	font-weight: 500;
	color: #fff;
	text-align: center;
	background: #004fa7;
	box-sizing: border-box;
}
.welfare_box .welfare_box__list .item span { display: block; margin-top: 20px; font-weight: 600; }
.welfare_box .welfare_box__list .item p { margin-top: 15px; font-size: 1.05rem; line-height: 1.6; }
.welfare_box .welfare_box__list .item:nth-child(8) { padding-top: 1em; padding-bottom: 1em; }
.welfare_box .welfare_box__list .item:nth-child(8) span { margin-top: 10px; }
.welfare_box .welfare_box__list .item:nth-child(8) p span { font-size: 1rem; font-weight: 500; margin: 0; }
.welfare_box .welfare_box__list .item:nth-child(8) p a {
	display: block;
	width: 70%;
	position: relative;
	padding: 0.5em 1em;
	margin: 15px auto 0;
	background: #f5a802;
	border-radius: 6px;
	transition: 0.3s;
}
.welfare_box .welfare_box__list .item:nth-child(8) p a::before {
	content: "";
	position: absolute;
	top: 15px;
	right: 20px;
	width: 8px;
	height: 8px;
	border-top: 2px solid #fff;
	border-right: 2px solid #fff;
	-webkit-transform: rotate(45deg);
	transform: rotate(45deg);
	transition: 0.3s;
}
.welfare_box .welfare_box__list .item:nth-child(8) p a:hover { color: #f5a802!important; background: #fff; }
.welfare_box .welfare_box__list .item:nth-child(8) p a:hover::before { border-top: 2px solid #f5a802; border-right: 2px solid #f5a802; }
.welfare_box .welfare_box__list .item:last-of-type { background: #fff; }

.modal-box .wf_mainBox { display: flex; justify-content: space-between; align-items: center; width: 100%; }
.modal-box .wf_mainBox .wf_box01, .modal-box .wf_mainBox .wf_box02 { width: 47.5%; }
.modal-box .wf_mainBox .wf_box01 figure { margin: 0; }
.modal-box .wf_mainBox .wf_box01 figure img { width: 100%; }

.modal-box .wf_mainBox .wf_box02 {}
.modal-box .wf_mainBox .wf_box02 .wf_box02__heading {
	margin-top: 10px;
	font-size: 1.7rem;
	font-weight: bold;
	color: #ff6599;
}
.modal-box .wf_mainBox .wf_box02 .wf_box02__txt {
	margin-top: 20px;
	padding: 1.5em;
	border: 3px #ddd solid;
	background: #fff;
	border-radius: 20px;
}

.child_spp_box {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 90%;
	max-width: 1100px;
	margin: 80px auto 80px;
}
.child_spp_box .flyer { width: 30%; }
.child_spp_box .flyer img { width: 100%; box-shadow: 15px 15px 0px 0px rgba(0,79,167,1); }

/*
.child_spp_box .user { width: 62%; }
.child_spp_box .user__heading {
	margin-top: 10px;
	font-size: 2rem;
	font-weight: bold;
	color: #004fa7;
}
.child_spp_box .user__txt {
	margin-top: 20px;
	padding: 1.5em;
	border: 3px #ddd solid;
	background: #fff;
	border-radius: 20px;
}
*/

.recruit_join {
	background: url("../img/recruit/joinsu_back.png") no-repeat;
	background-size: cover;
}
.recruit_join .inner {
	width: 90%;
	max-width: 1300px;
	margin: 0 auto;
	padding: 100px 0;
}
.recruit_join .inner h2 {
	margin: 0;
	font-size: 5rem;
	font-family: 'Roboto', sans-serif;
	font-weight: 900;
	font-style: italic;
	color: #004fa7;
	letter-spacing: 0.1rem;
	text-align: center;
}
.recruit_join .inner p {
	margin-top: 40px;
	font-size: 1.3rem;
	font-weight: 500;
	letter-spacing: 0.1rem;
	text-align: center;
}

.join_btn {
	display: flex;
	align-items: center;
	width: 450px;
	margin: 50px auto 0 auto;
	position: relative;
}
.join_btn::after {
	position: absolute;
	content: "";
	background: url("../img/common/common-ar-on.svg") no-repeat center;
	background-size: cover;
	width: 26px;
	height: 10px;
	top: 50%;
	transform: translate(-50%, -50%);
	right: 12px;
	transition: 0.3s;
}
.join_btn a {
	display: block;
	width: 100%;
	padding: 2em 1em;
	text-decoration: none;
	border-radius: 60px;
	background: linear-gradient(to right, #3daddd 0%, #2380e8 100%);
	transition: 0.3s;
}
.join_btn span {
	display: block;
    font-size: 1.3rem;
	font-weight: 500;
	color: #fff;
    letter-spacing: 0.05em;
	text-align: center;
    transition: 0.3s;
}
.join_btn a:hover {
	background: linear-gradient(to right, #2380e8 0%, #3daddd 100%);
	opacity: 0.8;
}
.join_btn:hover span { color: #fff; }
.join_btn:hover::after {
	right: 20px;
}


/************************** CONTACT ***************************/

.contact-ttl { margin-bottom: 30px; }

.contact-text { margin-top: 50px; }
.contact-text span { color: #f5a802; }

#mail_form { margin-top: 50px; }

.form-policy {
	padding: 40px 0 20px!important;
	font-weight: 500;
	text-align: center;
	border-top: 1px solid #efefef;
}
.form-policy a { color: #111; text-decoration: underline; }

input::placeholder { color: #bbb; }


/*************************** POLICY ***************************/

.policy .text_box { margin-top: 60px; }
.policy .text_box ul { padding: 0; margin: 20px 0; }
.policy .text_box ul li { margin: 5px 0; margin-left: -10px; }


/************************** LORDING ***************************/

#loading {
	transition: all 0.5s;
	background-color: #309867;
	backdrop-filter: blur(10px);
	position: fixed;
	z-index: 9999;
	inset: 0;
	display: grid;
	place-items: center;
}
#loading.blue_bg {
	background-color: #004fa7;
}
.loaded {
	opacity: 0;
	visibility: hidden;
}
.spinner {
	width: 40px;
	height: 40px;
	margin: 0 auto; /* 上下マージン - 可変 */
	position: relative;
}
.cube1, .cube2 {
	background-color: #fff; /* ベースの色 - 可変 */
	width: 15px;
	height: 15px;
	position: absolute;
	top: 0;
	left: 0;
	-webkit-animation: sk-cubemove 1.8s infinite ease-in-out;
	animation: sk-cubemove 1.8s infinite ease-in-out;
}
.cube2 {
	-webkit-animation-delay: -0.9s;
	animation-delay: -0.9s;
}

@-webkit-keyframes sk-cubemove {
	25% { -webkit-transform: translateX(42px) rotate(-90deg) scale(0.5) }
	50% { -webkit-transform: translateX(42px) translateY(42px) rotate(-180deg) }
	75% { -webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5) }
	100% { -webkit-transform: rotate(-360deg) }
}

@keyframes sk-cubemove {
	25% { 
		transform: translateX(42px) rotate(-90deg) scale(0.5);
		-webkit-transform: translateX(42px) rotate(-90deg) scale(0.5);
	} 50% { 
		transform: translateX(42px) translateY(42px) rotate(-179deg);
		-webkit-transform: translateX(42px) translateY(42px) rotate(-179deg);
	} 50.1% { 
		transform: translateX(42px) translateY(42px) rotate(-180deg);
		-webkit-transform: translateX(42px) translateY(42px) rotate(-180deg);
	} 75% { 
		transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
		-webkit-transform: translateX(0px) translateY(42px) rotate(-270deg) scale(0.5);
	} 100% { 
		transform: rotate(-360deg);
		-webkit-transform: rotate(-360deg);
	}
}

/*********************** SCROLL ANIME *************************/

/* ページトップボタン */
#page-top {
	position: fixed;
	bottom: 20px;
	right: 20px;
	font-size: 1rem;
	font-weight: 500;
	line-height: 15px;
	text-align: center;
	z-index: 80;
}
#page-top a {
	display: block;
	width: 120px;
	padding: 12px 0px;
	color: #fff;
	border-radius: 30px;
	text-decoration: none;
	transition: .3s;
	background-color: #309867;
}
#page-top a:hover { color: #309867; background-color: #fff; }

#page-top.blue a {
	display: block;
	width: 120px;
	padding: 12px 0px;
	color: #fff;
	border-radius: 30px;
	text-decoration: none;
	transition: .3s;
	background-color: #004fa7;
}
#page-top.blue a:hover { color: #004fa7; background-color: #fff; }

.border_h2 { position: relative; }
.border_h2 span {
	position: relative;
	display: inline-block;
	padding: 0.3vw 1vw 0.3vw;
}
.border_h2 span .border_x_left,
.border_h2 span .border_x_right,
.border_h2 span .border_y_top,
.border_h2 span .border_y_bottom {
	transition-delay: 0.3s;
}

.img_anim { overflow: hidden; }
.img_anim img { opacity: 0; transform: translateZ(0) scale(1.1); }
.img_anim.on img {
	opacity: 1;
	transition: transform 1s cubic-bezier(0.22, 0.11, 0.22, 1) 0.5s, opacity 1s cubic-bezier(0.22, 0.11, 0.22, 1) 0.5s;
	transform: translateZ(0) scale(1);
}

.text_b { filter: blur(20px); opacity: 0; }
.text_b.on {
	filter: blur(0);
	opacity: 1;
	transition: filter 0.6s cubic-bezier(0.65, 0.05, 0.36, 1), opacity 0.6s cubic-bezier(0.65, 0.05, 0.36, 1);
}

.fade_y, .text {
	transform: translateY(10%);
	opacity: 0;
}
.fade_y.on, .text.on {
	opacity: 1;
	transform: translateY(0%);
	transition: 0.5s;
}

.fade_x {
	transform: translateX(10%);
	opacity: 0;
}
.fade_x.on {
	opacity: 1;
	transform: translateX(0%);
	transition: 0.4s;
}

.border_y_top {
	height: 100%;
	width: 1px;
	position: absolute;
	left: 0;
	top: 0;
	transform: scaleY(0);
	transform-origin: top;
	background: #2f3739;
	transition: transform 0.9s cubic-bezier(0, 1.08, 1, 1);
	z-index: 1;
}
.border_y_bottom {
	height: 100%;
	width: 1px;
	position: absolute;
	right: 0;
	top: 0;
	transform: scaleY(0);
	transform-origin: bottom;
	background: #2f3739;
	transition: transform 0.9s cubic-bezier(0, 1.08, 1, 1);
	z-index: 1;
}
.border_x_left {
	position: absolute;
	right: 0;
	top: 0;
	height: 1px;
	width: 100%;
	transform: scaleX(0);
	transform-origin: left;
	background: #2f3739;
	transition: transform 1s cubic-bezier(0, 1.08, 1, 1);
	z-index: 1;
}
.border_x_right {
	position: absolute;
	right: 0;
	bottom: 0;
	height: 1px;
	width: 100%;
	transform: scaleX(0);
	transform-origin: right;
	background: #2f3739;
	transition: transform 1s cubic-bezier(0, 1.08, 1, 1);
	z-index: 1;
}

.bgextend {
	animation-name: bgextendAnimeBase;
	animation-duration: 1s;
	animation-fill-mode: forwards;
	position: relative;
	overflow: hidden;/*　はみ出た色要素を隠す　*/
	opacity: 0;
}

@keyframes bgextendAnimeBase {
	from {
		opacity: 0;
	}
	to {
		opacity: 1;  
	}
}

/*中の要素*/
.bgappear {
	animation-name: bgextendAnimeSecond;
	animation-duration: 0.3s;
	animation-delay: 0.3s;
	animation-fill-mode: forwards;
	opacity: 0;
}

@keyframes bgextendAnimeSecond {
	0% {
		opacity: 0;
	}
	100% {
		opacity: 1;
	}
}

/*左から右*/
.bgLRextend::before {
	animation-name: bgLRextendAnime;
	animation-duration: 0.6s;
	animation-fill-mode: forwards;
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    background-color: #fff;
}
@keyframes bgLRextendAnime {
	0% {
		transform-origin: left;
		transform: scaleX(0);
	}
	100% {
		transform-origin: left;
		transform: scaleX(1);
	}
	/*50.001% {
		transform-origin: right;
	}
	100% {
		transform-origin: right;
    	transform: scaleX(0);
	}*/
}

/* スクロールをしたら出現する要素にはじめに透過0を指定　*/
.bgappearTrigger {
	padding: 0 10px;
	font-family: 'Noto Serif JP', serif;
	font-weight: 500;
	color: #004fa7;
}
.bgappearTrigger,
.bgLRextendTrigger {
	opacity: 0;
}

/* 横無限スクロール */
@keyframes infinity-scroll-left {
	from {
		transform: translateX(0);
	}
	to {
		transform: translateX(-100%);
	}
}
.scroll-infinity { margin: 80px 0 0; }
.scroll-infinity__wrap {
	display: flex;
	overflow: hidden;
}
.scroll-infinity__list {
	display: flex;
	list-style: none;
	padding: 0
}
.scroll-infinity__list--left {
	animation: infinity-scroll-left 30s infinite linear 0.1s both;
}
.scroll-infinity__item {
	width: calc(100vw / 4);
	margin: 0 10px;
}
.scroll-infinity__item>img {
	width: 100%;
	border-radius: 15px;
}

#bar {
	background-color: #309867;
	position: fixed;
	top: 0;
	left: 0;
	height: 7px;
	z-index: 9999;
}
#bar.blue {
	background-color: #004fa7;
}