/* v2.0 | 20110126
  http://meyerweb.com/eric/tools/css/reset/
  License: none (public domain)
*/
html, body, div, span, applet, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
a, abbr, acronym, address, big, cite, code,
del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var,
b, u, i, center,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, embed,
figure, figcaption, footer, header, hgroup,
menu, nav, output, ruby, section, summary,
time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}
/* HTML5 display-role reset for older browsers */
article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}
body {
	line-height: 1;
}
ol, ul {
	list-style: none;
}
blockquote, q {
	quotes: none;
}
blockquote:before, blockquote:after,
q:before, q:after {
	content: '';
	content: none;
}
table {
	border-collapse: collapse;
	border-spacing: 0;
}


/*-------------- init --------------*/

:root {
--white: #FFF;
--black: #000;
--gray: #818181;
--darkgray: #121212;
--lightgray: #E6E6E6;
--green: #00A197;
--lightgreen: #28DDD5;
--indigo: #486599;
}


html {
  font-size: 62.5%;
}

body {
	background: var(--white);
	color: var(--darkgray);
	font-size: 1.6rem;
	line-height: 1.8em;
	font-weight: 300;
	font-family: '-apple-system', 'BlinkMacSystemFont','Hiragino Sans','Hiragino Kaku Gothic ProN',"segoe ui",'游ゴシック  Medium','メイリオ', Meiryo,'ＭＳ Ｐゴシック','MS PGothic',sans-serif;
	font-feature-settings: "palt";
	letter-spacing: 0.075em;
}

.img_responsive{
	max-width:100%;
}

.cf:before,
.cf:after {
    content: " ";
    display: table;
}

.cf:after {
    clear: both;
}

.cf {
    *zoom: 1;
}

.saira{
	font-family: 'Saira', sans-serif;
}

a{
	color: var(--green);
}

/*-------------- common --------------*/

.row{
	position: relative;
	max-width:1240px;
	margin:0 auto;
}

.center_contents{
	max-width: 960px;
	margin: 16px auto;
	padding: 16px;
}

.section_ttl{
	color:#0187D1;
	font-size:30px;
	line-height: 38px;
	font-weight: 500;
}

.section_subttl{
	color:#454545;
	font-size:16px;
	line-height: 26px;
	font-weight: 600;
}

.delighter {
  transition: all .5s ease-out;
  transform: translateY(25px);
  opacity: 0;
}

.delighter.started {
  transform: none;
  opacity: 1;
}

.delighter.ended {
  transform: none;
  opacity: 1;
}

.btn_block{
	margin:20px auto;
}

.btn{
	position: relative;
	display:inline-block;
	padding:7px 20px 5px;
	min-width:228px;
	background:var(--green);
	border:2px solid var(--green);
	color:#FFFFFF;
	font-size: 1.8rem;
	font-weight: 600;
	text-decoration: none;
	border-radius: 50px;
	transition: all .2s ease-out;
	box-shadow: 0 3px 2px rgba(0,0,0,0.1);
	text-align: center;
}

.btn:after{
	position: absolute;
	top:7px;
	right:12px;
	content: "\f105";
	font-family: 'Font Awesome 5 Free';
	font-size: 2rem;
	font-weight: 900;
	transition: all .2s ease-out;
}

.btn_l{
	padding:12px 40px;
	min-width:320px;
	font-size: 2.0rem;
	font-weight: 600;
	border-radius: 50px;
}

.btn_l:after{
	position: absolute;
	top:12px;
	right:15px;
	content: "\f105";
	font-family: 'Font Awesome 5 Free';
	font-size: 2.4rem;
	font-weight: 900;
	transition: all .2s ease-out;
}

.btn:hover{
	background:var(--lightgreen);
	border:2px solid var(--lightgreen);
	color:#FFFFFF;
}

.btn.btn_ghost{
	background:rgba(255,255,255,0);
	border:2px solid #FFFFFF;
	color:#FFFFFF;
}

.btn.btn_ghost:hover{
	background:#FFFFFF;
	border:2px solid var(--lightgreen);
	color:var(--lightgreen);
}

.btn.btn_ol{
	background:var(--green);
	border:2px solid #FFFFFF;
	color:#FFFFFF;
}

.btn.btn_ol:hover{
	background:var(--lightgreen);
	border:2px solid #FFFFFF;
	color:#FFFFFF;
}

.btn.delighter {
  transition: all .3s ease-out;
  transform: translateX(-15px);
  opacity: 0;
}

.btn.delighter.started {
  transform: none;
  opacity: 1;
}

.btn.delighter.ended {
  transform: none;
  opacity: 1;
}

.recnavi {
  text-align: center;
}

.pc_only{
	display:block;
}

.sp_only{
	display:none;
}

.appear {
	transform-origin:center top;
	animation:show .7s ease-out .2s forwards;
	opacity:0;
}
.d1 {animation-delay:.1s;}
.d2 {animation-delay:.2s;}
.d3 {animation-delay:.3s;}
.d4 {animation-delay:.4s;}
.d6 {animation-delay:.6s;}
.d8 {animation-delay:.8s;}
.d10 {animation-delay:.10s;}
.d12 {animation-delay:.12s;}

@-webkit-keyframes show {
	0% {
		transform:translate(0,2em);
		opacity:0;
	}
		100% {
		transform:translate(0,0);
		opacity:1;
	}
}
@keyframes show {
	0% {
		transform:translate(0,2em);
		opacity:0;
	}
		100% {
		transform:translate(0,0);
		opacity:1;
	}
}

.topic_path{
	position: absolute;
	width: calc(100% - 20px);
	top: 98px;
	left: 16px;
	text-align: left;
	font-size: 1.4rem;
	line-height: 1.5;
	color: var(--darkgray);
	z-index: 50;
}

.topic_path a{
	color: var(--darkgray);
	text-decoration: none;
}

.topic_path a:after{
	content: ' > ';
}

.topic_path a:hover{
	color: var(--green);
}

.topic_path.topic_path_white{
	color: var(--white);
}

.topic_path.topic_path_white a:hover:after{
	color: var(--white);
}

.topic_path.topic_path_white a{
	color: var(--white);
	text-decoration: none;
}

.topic_path.topic_path_white a:hover{
	color: var(--white);
}

.topic_path.topic_path_white a:hover:after{
	color: var(--lightgreen);
}

.mid_en{
	font-size: 2.5rem;
	line-height: 1.4;
	font-weight: 500;
}

.mid_ja{
	font-size: 1.9rem;
	line-height: 1.4;
	font-weight: 600;
	color: var(--green);
}

.mid_bar{
	padding: 0.8rem 1.6rem;
	font-size: 2.2rem;
	line-height: 1.4;
	font-weight: 600;
	background: var(--green);
	color: var(--white);
}

.table_std{
	border-left: 1px solid var(--lightgray);
	border-top: 1px solid var(--lightgray);
}

.table_std th,
.table_std td{
	font-size: 1.5rem;
	line-height: 1.4;
	padding: 1.2rem;
	border-right: 1px solid var(--lightgray);
	border-bottom: 1px solid var(--lightgray);
	vertical-align: middle;
}

.table_std th{
	background: #EDF2F5;
	text-align: left;
}

.table_lined{

}

.table_lined th,
.table_lined td{
	font-size: 1.6rem;
	line-height: 1.8;
	padding: 1.6rem 2rem;
	border-bottom: 1px solid var(--lightgray);
	vertical-align: top;
	font-weight: 300;
}

.table_lined th{
	width: 25%;
	font-weight: 600;
	text-align: left;
}

.table_lined strong{
	font-weight: 600;
}

.section_title{
	display: inline-block;
	margin:  0 auto;
	font-size: 2.2rem;
	line-height: 1.6;
	font-weight: 600;
	color: #333;
	text-align: center;
	border-bottom: 3px solid #1B968C;
}

.section_subtitle{
	display: block;
	margin:  20px auto 0;
	font-size: 2.2rem;
	line-height: 1.6;
	font-weight: 600;
	color: var(--green);
}

.section_tag{
	display: block;
	font-size: 1.4rem;
	line-height: 2.2;
}

/*-------------- header --------------*/

header{
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:90px;
	background:rgba(255,255,255,0.9);
	z-index: 1000;
	box-shadow: 0 1px 2px rgba(0,0,0,0.16);
}

/*
.header_body{
	position:relative;
}
*/

.header_body{
        display: flex;
        align-items: center;
        height: 100%;
}

.header_body .logo{
	display: flex;
	justify-content: flex-start;
	align-items: center;
	top:0;
	left:16px;
	height: 90px;
}

/*
.header_body h1{
	position:absolute;
	top:2.2rem;
	left:104px;
	font-size:1.5rem;
	line-height: 1.5;
	font-weight: 400;
	color:var(--darkgray);
}
*/

.header_body h1{
        font-size:1.5rem;
        line-height: 1.5;
        font-weight: 400;
        color:var(--darkgray);
}

.global_navi{
	position: absolute;
	top:0px;
	right:150px;
}

.global_navi ul{
	display: flex;
	width: 100%;
	max-width: 1100px;
}

.global_navi li{
	position: relative;
	display: inline-block;
}

.global_navi li > a{
	display: block;
	min-width: 90px;
	height:90px;
	padding: 0 6px;
	line-height: 90px;
	font-size: 1.4rem;
	font-weight: 500;
	color: #454545;
	text-align: center;
	text-decoration: none;
	transition: all .2s ease-out;
}

.global_navi li > a:hover{
	color:var(--green);
}

.global_navi li.active > a:after {
    position: absolute;
    display: block;
    content: "";
    left: 0;
    bottom: 0;
    width: 100%;
    height: 5px;
    background: var(--green);
}

.global_navi li.active > a{
    color: var(--green);
}

.header_entry{
	display: flex;
	justify-content: center;
	align-items: center;
	position: absolute;
	top:0px;
	right:0px;
	width:130px;
	height: 90px;
	background:var(--green);
	color:#FFFFFF;
	text-align: center;
	transition: all .3s ease-out;
}

.header_entry a{
	display:block;
	color:#FFFFFF;
	width: 100%;
	height: 90px;
	line-height: 90px;
	font-weight: 600;
	text-decoration: none;
	letter-spacing: 0.1em;
}

.header_entry:hover{
	background: var(--lightgreen);
}
	
	
/*-------------- footer --------------*/

.bottom_entry{
	width:100%;
	margin:0;
	padding:32px 0 20px;
	background:-moz-linear-gradient(270deg, #EAFCFA 0%, #FFFFFF 100%);
	background:-webkit-linear-gradient(270deg, #EAFCFA 0%, #FFFFFF 100%);
	text-align: center;
}

.bottom_entry p{
	font-size:1.2em;
	line-height: 1.2em;
	font-weight:600;
	color:var(--green);
}

footer{
	background: var(--green);
	color:#FFFFFF;
}

.footer_body{
	padding:20px;
	color:#FFFFFF;
	text-align: center;
}

.footer_info{
}

.footer_sitename{
	padding:20px 10px;
}

.footer_navi{
}

.footer_navi ul{
	display: flex;
	justify-content: center;
	align-items: center;
}

.footer_navi li{
	display: block;
	padding:8px 20px;
	font-size: 1.6rem;
	font-weight: 300;
}

.footer_navi li a{
	color:#FFFFFF;
	text-decoration: none;
}

.footer_copyright{
	display:block;
	padding-top:60px;
	font-size: 1.3rem;
	text-align: center;
	font-weight:300;
}

/*-------------- layout --------------*/

.page_kv{
	background-repeat: no-repeat;
	background-position: center center;
	background-size: cover;
	text-align: center;
	background:#FFFFFF;
}

.page_kv_body{
	position:absolute !important;
	width:100%;
	top:0;
	left:0;
	text-align: center;
}

.page_nokv{
	position:relative;
	margin-top: 120px;
}

.page_title_box{
	max-width: 1200px;
	margin: 0 auto;
}

.page_title{
	padding: 20px 20px 0px;
	text-align: center;
}

.page_title h2{
	font-size: 3.4rem;
	line-height: 1.5;
	margin: 0;
	padding:0;
	font-weight:600;
	color:var(--green);
}

.page_title h3{
	font-size: 2.2rem;
	line-height: 1.5;
	margin: 0;
	padding: 0;
	font-weight: 300;
}

.inpage_links{
	display: flex;
	justify-content: center;
	align-items: center;
	margin-bottom: 20px;
}

.inpage_link{
	display: inline-block;
	position: relative;
	padding: 10px 16px 8px 8px;
	min-width: 184px;
	border: 1px solid var(--green);
	text-align: center;
	text-decoration: none;
	font-size: 1.8rem;
	font-weight: 500;
	margin: 8px;
}

.inpage_link:after{
	position: absolute;
	top:10px;
	right:18px;
	content: "\f078";
	font-family: 'Font Awesome 5 Free';
	font-size: 1.6rem;
	font-weight: 900;
	transition: all .2s ease-out;
}


/*-------------- top --------------*/

.top_hero{
	height:55vw;
	max-height: 900px;
	text-align: center;
}

.top_hero .bg_img {
  position   : absolute;
  height: 55vw;
  max-height: 900px;
  top        : 0;
  left       : 0;
  bottom     : 0;
  right      : 0;
  opacity    : 0;
  animation  : bgAnime 20s infinite;
  background-repeat: no-repeat;
	background-position: center top;
	background-size: 100%;

}

.top_hero .src1 {
  background-image : url("../images/kv_01-c4ce5a31.jpg");
  opacity: 1; 
}
.top_hero .src2 {
  background-image : url("../images/kv_02-575388d9.jpg");
  animation-delay  : 5s;
}
.top_hero .src3 {
  background-image : url("../images/kv_03-7f6fab90.jpg");
  animation-delay  : 10s;
}
/*.top_hero .src4 {
  background-image : url("../images/kv_04-47890639.jpg");
  animation-delay  : 15s;
}*/
.top_hero .src5 {
  background-image : url("../images/kv_05-b53c4d95.jpg");
  animation-delay  : 15s;
}

@keyframes bgAnime {
  0% { opacity: 0; background-size: 130%}
  5% { opacity: 1; }
  24% { opacity: 1;}
  30% { opacity: 0;  background-size: 100%}
 100% { opacity: 0; }
}

.top_hero_body{
	display: flex;
	justify-content: center;
	align-items: center;
	position:absolute !important;
	width:100%;
	height:55vw;
	max-height: 900px;
	top:0;
	left:0;
	text-align: center;
}

.top_hero_body h1{
	display: inline-block;
	margin-top: 27%;
	padding: 8px 14px 6px;
	background: var(--white);
	color:var(--green);
	font-size:2rem;
	font-weight: 500;
	line-height: 1;	
}

.top_hero_body h2{
	margin-top: 20px;
	padding: 14px;
	color: #FFF;
	background: rgba(28,161,151,0.84);
	font-size: 6.4rem;
	line-height: 1;
	letter-spacing: 0.1em;
	font-weight: 600;
}

.top_hero_body p{
	margin:36px;
	font-size: 1.9rem;
	line-height: 1.9;
	color:#FFFFFF;
	font-weight: 600;
	text-shadow:1px 1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,-1px -1px 0 #000, 0 2px 0px #000;
}


.top_news{
	display: flex;
	justify-content: center;
	align-items: flex-start;
	width:100%;
	margin:0;
	padding:32px 0 20px;
	background:-moz-linear-gradient(90deg, #EAFCFA 0%, #FFFFFF 100%);
	background:-webkit-linear-gradient(90deg, #EAFCFA 0%, #FFFFFF 100%);
	border-bottom: 1px solid var(--lightgray);
}

.top_news_head{
	display: flex;
	justify-content: center;
	align-items: stretch;
	width: 140px;
	height: 114px;
	padding: 5px;
	background: var(--green);
}

.top_news_head span{
	display: block;
	width: 100%;
	border: 1px solid var(--white);
	text-align: center;
	line-height: 110px;
	color: var(--white);
	font-weight: 600;
	font-size: 2rem;
}

.top_news_body{
	width: calc(100% - 140px);
	max-width: 1020px;
	padding: 4px 30px;
}

.top_news_date{
	color: var(--green);
	font-size: 1.8rem;
	line-height: 1.6;
	font-weight: 600;
	margin-bottom: 4px;
}

.top_news_title{
	font-weight: 600;
	line-height: 1.6;
	margin-bottom: 4px;
}

.top_news_text{
	font-weight: 300;
	line-height: 1.6;
	padding-bottom: 20px;
	margin-bottom: 20px;
	border-bottom:  1px solid var(--lightgray);
}

.top_news_body_item:last-child .top_news_text{
	border: none;
	margin-bottom: 0;
}

.top_company{
	width: 100%;
	background: #3B67A5 url("../images/company_bg-cb2a6052.jpg") no-repeat center center;
	background-size: cover;
}

.top_company_body{
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: center;
	max-width: 1200px;
	height: 300px;
	margin: 0 auto;
	padding: 50px 40px;
	text-align: center;
}

.top_company_body h3{
	color: var(--white);
	font-size: 2.4rem;
	line-height: 3.5rem;
	font-weight: 600;
	text-shadow: 0 2px 5px rgba(0,0,0,.2);
}

.top_business{
	margin: 40px 0 0;
	text-align: center;
}

.top_business_boxes{
	margin-top: 20px;
	background: #070708;
	display: flex;
	color: #FFF;
}

.top_business_box{
	display: flex;
	flex-direction: column;
	align-items: flex-center;
	justify-content: flex-end;
	height: 22.11vw;
	width: 100%;
}

.top_business_box_1{
	background: #070708 url("../images/top_biz_fig_1-3fc73e23.jpg") no-repeat center bottom;
	background-size: cover;
}

.top_business_box_2{
	background: #070708 url("../images/top_biz_fig_2-2b2cc7a3.jpg") no-repeat center bottom;
	background-size: cover;
}

.top_business_box_3{
	background: #070708 url("../images/top_biz_fig_3-52997bfb.jpg") no-repeat center bottom;
	background-size: cover;
}

.top_business_box h5{
	height: 2em;
	padding: 10px 1em;
	font-size: 2rem;
	line-height: 1.3;
	font-weight: 600;
	text-shadow: 0 2px 5px rgba(0,0,0,0.7);
}

.top_business_box p{
	height: 2em;
	padding: 10px 1em 1.2em;
	font-size: 1.2rem;
	line-height: 1.3;
	font-weight: 300;
}

.top_business_btn_box{
	margin-top: 0px;
	padding: 20px 0 50px;
	background: #070708;
}

.top_environment{
	margin: 0;
	padding: 40px 0 50px;
	text-align: center;
	background: #EDFCFB;
	border-bottom:  1px solid var(--lightgreen);
}

.top_environment_boxes{
	display: flex;
	width: calc(100% - 4px);
	max-width: 1200px;
	margin:20px auto 20px;
}

.top_environment_box{
	width: calc(25% - 4px);
	padding: 2px;
}

.top_itv{
	margin: 40px 0;
	text-align: center;
}

/*-------------- message --------------*/

.message_kv{
	height: 50vw;
	background: #EDF2F5 url("../images/message_kv-4dfaaf7e.jpg") no-repeat center 40%;
	background-size: cover;
}

.message_body{
	margin: 60px auto 60px;
	font-size: 1.7rem;
	line-height: 2;
	font-weight: 300;
}

.message_sign{
	text-align: right;
	margin: 20px 0 60px;
}

.message_title_box{
	display: flex;
	align-items: center;
	max-width: 1200px;
	height: calc(100% - 240px);
	margin: 0 auto;
}

.message_title{
	width: 55%;
	margin-top: calc(12vw + 60px);
	text-align: center;
}

.message_title h3{
	margin-top: 2rem;
	font-size: 5.4rem;
	line-height: 1.25;
	font-weight: 600;
	color: var(--green);
}

.message_mission{
	background:-moz-linear-gradient(90deg, #EAFCFA 0%, #FFFFFF 100%);
	background:-webkit-linear-gradient(90deg, #EAFCFA 0%, #FFFFFF 100%);
	border: 2px solid var(--green);
	padding:5px
}

.message_mission_inner{
	border: 1px solid var(--green);
	padding:32px 32px 12px;
	text-align: center;
}

.message_mission_mission{
	padding: 32px;
	font-size: 2.2rem;
	line-height: 1.5;
	font-weight: 500;
}

.message_mission_philosophy{

}

.philosophy_mid{
	position: relative;
  display: flex;
  align-items: center;
  padding: 0;
	font-size: 1.8rem;
	line-height: 1.5;
	color: var(--green);
	font-weight: 600;
}

.philosophy_mid:before,
.philosophy_mid:after {
    content: "";
    height: 1px;
    flex-grow: 1;
    background-color: var(--green);
}
 
.philosophy_mid:before {
    margin-right: 1.5rem;
}
 
.philosophy_mid:after {
    margin-left: 1.5rem;
}

.philosophy_list{
	padding: 20px;
	text-align: left;
}

.philosophy_list li{
	padding: 8px;
	font-size: 1.7rem;
	line-height: 1.4;
	font-weight: 400;
}

.message_fig{
	margin-top: 60px;
}

/*-------------- company --------------*/

.company_kv{
	height: 30vw;
	background: #486599 url("../images/company_kv-1b011241.jpg") no-repeat left -8vw;
	background-size: 55vw auto;
}

.company_body{
	margin: 60px auto 60px;
	font-weight: 300;
}

.company_title_box{
	display: flex;
	justify-content: flex-end;
	align-items: center;
	height: calc( 30vw - 90px);
	margin: 90px auto 0;
	color: var(--white);
}

.company_title{
	width: 45vw;
	height: 100%;
	margin-top: calc(22vw + 0px);
	text-align: center;
}

.company_title h2{
	margin-top: 0.5rem;
	font-size: 5.4rem;
	line-height: 1.25;
	font-weight: 600;
	color: var(--white);
}

.company_desc{
	font-size: 1.7rem;
	line-height: 2;
	margin-bottom: 4rem;
}

.company_table{
	width: 100%;
	margin: 3.2rem 0 4rem 0;
}

.company_table table{
	width: 100%;
}

.company_fig{
	margin: 3.2rem 0 4rem 0;
}

.company_history{
	margin: 3.2rem 0 0 0;
	padding: 1rem 2rem;
}

.company_history .listyear{
	display: flex;
	justify-content: center;
	align-items: flex-start;
	padding: 1rem;
}

.company_history .listyear > dt{
	width: 20%;
	padding-top: 1rem;
	text-align: center;
	font-size: 3rem;
	font-weight: 400;
}

.company_history .listyear > dd{
	width: 80%;
}

.company_history .listyear > dd .listmonth{
	display: flex;
	justify-content: flex-start;
	align-items: flex-start;
	flex-wrap: wrap;
	padding-top: 1rem;
	padding-bottom: 1.2rem;
	font-size: 1.6rem;
	line-height: 1.5;
	border-bottom:  1px solid var(--lightgray);
}

.company_history .listyear > dd .listmonth dt{
	width: 16%;
	white-space: nowrap;
}

.company_history .listyear > dd .listmonth dd{
	width: 84%;
	margin-bottom: 1.4rem;
}

/*-------------- recruitment --------------*/

.recruitment_table{
	margin: 1rem 0 4rem;
}


/*-------------- business --------------*/

.business_kv{
	height: 30vw;
	background: #454545 url("../images/business_kv-20c9ed23.jpg") no-repeat left -8vw;
	background-size: 55vw auto;
}

.business_body{
	margin: 60px auto 60px;
	font-weight: 300;
}

.business_title_box{
	display: flex;
	justify-content: flex-end;
	align-items: center;
	height: calc( 30vw - 90px);
	margin: 90px auto 0;
	color: var(--white);
}

.business_title{
	width: 45vw;
	height: 100%;
	margin-top: calc(22vw + 0px);
	text-align: center;
}

.business_title h2{
	margin-top: 0.5rem;
	font-size: 5.4rem;
	line-height: 1.25;
	font-weight: 600;
	color: var(--white);
}

.business_catch{
	font-size: 3rem;
	line-height: 1.4;
	margin-bottom: 4rem;
	color: var(--green);
	font-weight: 600;
	text-align: center;
}

.business_desc{
	font-size: 1.5rem;
	line-height: 2;
	margin-bottom: 4rem;
}

.business_figs{
	width: 70%;
	margin: 10px auto 50px;
}

.business_figs img{
	width: 100%;
	max-width: 100%;
	margin: 20px;
}

.business_industries_mid{
	background: #E5F5F4;
	color: var(--green);
	text-align: center;
	font-weight: 600;
	padding: 2px 10px;
}

.business_industries_box{
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin: 10px 0 70px;
}

.business_industries_box li{
	display: flex;
	width: 100%;
	align-items: center;
	justify-content: center;
	height: 80px;
	margin: 5px;
	border: 2px solid var(--green);
	border-radius: 5px;
	text-align: center;
	color: var(--green);
	font-weight: 600;
}

.product_head_box{
	margin-top: 30px;
	width: 100%;
	display: flex;
	align-items: center;
	background: #333333;
}

.product_head_fig{
	width: 60%;
	flex-shrink: 0;
}

.product_head_txt{
	width: 40%;
	flex-shrink: 0;
}

.product_head_txt span{
	display: block;
	padding: 30px;
	color: #FFF;
	font-size: 2.8rem;
	font-weight: 500;
	line-height: 1.3;
}

.product_h4{
	color: var(--green);
	font-weight: 600;
	font-size: 2.2rem;
	line-height: 1.4;
	margin: 40px 0 20px;
	text-align: center;
}

.product_body{
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin: 30px auto 50px;
}

.product_body p{
	width: 60%;
	font-size: 1.5rem;
	line-height: 2;
}

.product_fig{
	width: 40%;
	margin-left: 40px;
	margin-bottom: 30px;
}

.product_body_w{
	display: block;
	margin: 30px auto 60px;
}

.product_body_w .product_body p{
	width: 100%;
	font-size: 1.5rem;
	line-height: 2;
}

.product_body_w .product_fig{
	width: 60%;
	margin: 0 auto 30px;	
}

.case_boxes{
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	margin: 40px 0 20px;
	padding-bottom: 30px;
	border-bottom: 1px solid #cccccc;
}

.case_boxes p{
	font-size: 1.4rem;
	line-height: 1.6;
	padding: 12px 12px;
}

.case_box_1{
	margin-right: 15px;
}

.case_box_2{
	margin-left: 15px;
}

.case_box_3{
	display: flex;
	margin-top: 20px;
}

.case_box_3 img{
	width: 240px;
}

.case_box_4{
	display: block;
	width: 80%;
	margin:  20px auto 0px;
}


/*-------------- interview --------------*/

.itv_kv {
	position: relative;
    height: 65vw;
    min-height: 680px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    text-align: center;
    background: #FFFFFF;
}

.itv_kv.interview_01 {
    background-image: url("../images/itv_01_kv-01e7cb31.jpg");
    background-position: center top 10%;
    background-size: cover;
}

.itv_kv.interview_02 {
    background-image: url("../images/itv_02_kv-09e3fabf.jpg");
    background-position: center top 10%;
    background-size: cover;
}

.itv_kv.interview_03 {
    background-image: url("../images/itv_03_kv-c14b3d40.jpg");
    background-position: center top 10%;
    background-size: cover;
}

.itv_kv.interview_04 {
    background-image: url("../images/itv_04_kv-6ec33548.jpg");
    background-position: center top 10%;
    background-size: cover;
}

.itv_kv.interview_05 {
    background-image: url("../images/itv_05_kv-fc1baeec.jpg");
    background-position: center top 10%;
    background-size: cover;
}

.itv_kv_title{
	position: absolute;
	text-align: left;
	bottom: 170px;
	left: 0;
	width: 100%;
}
.itv_kv_title h1{
	display: inline-block;
	background: #FFF;
	font-size:16px;
	line-height: 1.6em;
	font-weight: 600;
	padding:5px 10px;
	color: #00A197;
	margin-bottom: -10px;
	margin-left: 16px;
}

.itv_kv_title h2{
	display: block;
	padding:8px 24px;
	font-size:32px;
	line-height: 1.6em;
	text-align: center;
	font-weight: 600;
	color: #FFFFFF;
	background: rgba(0,161,151,0.9);
}

.itv_profile{
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 160px;
	padding: 5px 0;
	background-color: rgba(255,255,255,0.7);
	backdrop-filter: blur(4px);
}

.itv_profile_body{
	display: flex;
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
	text-align: left;
}

.itv_face{
	padding: 0 10px;
}

.itv_face_img{
	width: 150px;
	height: 150px;
	border-radius: 150px;
	border: 3px solid #00A197;
}
.itv_desc{
	padding: 0 10px;
}

.itv_name{
	font-weight: bold;
	font-size: 110%;
}

.itv_body{
	position: relative;
	margin-top: 80px;
}

.itv_paragraph{
	width:1200px;
	margin:0 auto;
}

.itv_body .img_posr:after,
.itv_body .img_posl:after{
	display: table;
	content:"";
	clear:both;
	height:30px;
	margin:0px auto;
}

.itv_paragraph.r_img {
	display: block;
	width:53%;
	float:left;
}

.itv_paragraph.r_img .itv_paragraph_block{
	display: block;
	margin-left:-webkit-calc(50vw - 600px);
	margin-left:calc(50vw - 600px);
}


.itv_body .img_posr{
	position: relative;
	float:right;
	width:45%;
}

.itv_body.interview_ceo  .img_posr{
	position: relative;
	float:right;
	width:45%;
	margin-left:-100px;
	z-index: 1;
}

.itv_body .img_posr img{
	width:100%;
}

.itv_paragraph.l_img {
	display: block;
	width:53%;
	float:right;
	margin-right:0;
}

.itv_paragraph.l_img .itv_paragraph_block{
	display: block;
	max-width:660px;
}

.itv_body .img_posl{
	position: relative;
	float:left;
	width:45%;
}

.itv_body .img_posl img{
	width:100%;
	max-height: 500px;
}


.itv_paragraph_block h3{
	padding:10px 20px 10px;
	font-size:1.1em;
	line-height: 1.6em;
	font-weight:600;
	color: #00A197;
}

.itv_paragraph_block p{
	display: block;
	padding:10px 20px;
	font-size:1em;
	line-height: 2em;
	font-weight: 300;
}

.itv_body .section_spacer{
	width:100vw;
	height:40px;
	clear:both;
}

.itv_body .p_spacer{
	width:100%;
	height:1em;
	clear:both;
}

.section_spacer{
	width:100vw;
	height:20px;
	clear:both;
}

.itv_body .img_posr img.delighter.started{
	transform: none;
	opacity: 1;
}

.itv_body .img_posr img.delighter.ended{
	transform: none;
	opacity: 1;
}


.itv_body .img_posl img.delighter.started{
	transform: none;
	opacity: 1;
}

.itv_body .img_posl img.delighter.ended{
	transform: none;
	opacity: 1;
}

.itv_body .itv_last{
	position: relative;
	width:100%;
	height:480px;
}

.itv_members{
	padding-top:18px;
	padding-bottom:30px;
	text-align: center;
}

.itv_memberslist_b{
	width:100%;
	padding-top:15px;
}

.itv_memberslist_b .itv_member{
	position:relative;
	width:33.33%;
	float:left;
	margin-bottom: 20px;
}

.itv_memberslist_b .itv_member a{
	position:relative;
	top:0;
	left:0;
	width:100%;
	padding-top:0px;
	text-decoration: none;
}

.itv_memberslist_b .itv_member a .itv_member_fig{
	width:100%;
	height:270px;
	overflow:hidden;
	background-size:auto 130%;
	background-position: center center;
	background-repeat:no-repeat;
	transition: all .2s ease-out;
}
.onemore{
	margin: 12px auto;
	max-width: 1150px;
	color: #FFFFFF;
	padding: 1.2em 1.5em 1.2em;
	background: #00A197;
}

.onemore_mid{
	font-size: 1.4em;
	line-height: 2em;
	font-weight: bold;
	text-align: center;
}

.onemore_body{
	display: flex;
}

.onemore_fig{
	width: 200px;
	height: 150px;
}

.onemore_body p{
	padding: 0.5em 1em;
	text-align: left;
}

.onemore_crosstalk_body{
	max-width: 680px;
	display: flex;
}

.onemore_ct{
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	max-width: 1200px;
	margin: 0 auto;
}

.onemore.crosstalk_s{
	max-width: 2000px;
	margin-top: 40px;
	padding-top: 20px;
	text-align: center;
}

.onemore_ct_body{
	width: 26%;
	margin: 10px 10px;
	padding: 1.5em;
	border: 2px solid #FFF;
	text-align: left;
}

.onemore_ct_body .t_name{
	font-weight: bold;
	font-size: 1.2em;
}

.time_schedule{
	display: flex;
	flex-wrap: wrap;
	max-width: 720px;
	margin:  10px auto;
	border-top: 1px solid #FFF;
	border-bottom: 1px solid #FFF;
}

.time_schedule dt{
	width: 24%;
	padding: 4px;
	border-bottom: 1px dotted #FFF;
}

.time_schedule dd{
	width: 72%;
	padding: 4px;
	border-bottom: 1px dotted #FFF;
}

.time_schedule dt:last-of-type,
.time_schedule dd:last-of-type{
	border-bottom: none;
}

.itv_links{
	margin: 20px 0 20px;
	text-align: center;
}

.itv_links_boxes{
	margin: 40px 0;
	display: flex;
	justify-content: stretch;
	align-items: stretch;
	align-content: stretch;
}

.itv_links_box_a{
	display: flex;
	justify-content: stretch;
	align-items: stretch;
	align-content: stretch;
	width: 100%;
	text-decoration: none;
	transition: 0.3s;
}

.itv_links_box{
	display: flex;
	flex-direction: column;
	align-items: stretch;
	align-content: stretch;
	justify-content: stretch;
	width: 100%;
	margin: 1px;
	padding-top: 12em;
	transition: 0.3s;
    background-position: center center;
    background-size: cover;
}

.itv_links_box.interview01{
	background-image: url("../images/itv_01_kv-01e7cb31.jpg");
}
.itv_links_box.interview02{
	background-image: url("../images/itv_02_kv-09e3fabf.jpg");
}
.itv_links_box.interview03{
	background-image: url("../images/itv_03_kv-c14b3d40.jpg");
}
.itv_links_box.interview04{
	background-image: url("../images/itv_04_kv-6ec33548.jpg");
}
.itv_links_box.interview05{
	background-image: url("../images/itv_05_kv-fc1baeec.jpg");
}

.itv_link_title{
	padding: 12px 0px 0;
	background: rgba(255,255,255,0.9);
	color: #333333;
	font-weight: 500;
	font-size: 15px;
	line-height: 22px;
	transition: 0.3s;
	letter-spacing: 0;
}
.itv_link_desc{
	padding: 8px 8px 20px;
	background: rgba(255,255,255,0.9);
	color: #333333;
	font-weight: normal;
	font-size: 13px;
	line-height: 18px;
	transition: 0.3s;
}

.itv_links_box_a:hover .itv_links_box{
	filter: brightness(1.1);
}

.itv_links_box_a:hover .itv_links_box{
	padding-top: calc(12em - 10px);
}

.itv_links_box_a:hover .itv_link_title{
	padding: 12px 0px 0;
	background: rgba(27,150,140,0.8);
	color: #FFF;
}
.itv_links_box_a:hover .itv_link_desc{
	padding: 8px 8px 30px;
	background: rgba(27,150,140,0.8);
	color: #FFF;
}


/*-------------- environment --------------*/

.environment_kv{
	height: 30vw;
	background: #486599 url("../images/environment_kv-b333743f.jpg") no-repeat left -8vw;
	background-size: 55vw auto;
}

.environment_body{
	margin: 60px auto 60px;
	font-weight: 300;
}

.environment_title_box{
	display: flex;
	justify-content: flex-end;
	align-items: center;
	height: calc( 30vw - 90px);
	margin: 90px auto 0;
	color: var(--white);
}

.environment_title{
	width: 45vw;
	height: 100%;
	margin-top: calc(22vw + 0px);
	text-align: center;
}

.environment_title h2{
	margin-top: 0.5rem;
	font-size: 5.4rem;
	line-height: 1.25;
	font-weight: 600;
	color: var(--white);
}

.environment_desc{
	font-size: 1.7rem;
	line-height: 2;
	margin-bottom: 4rem;
}

.env_boxes{
	display: flex;
	margin: 20px auto;
	font-size: 1.4rem;
	line-height: 2;
}

.env_box{
	width: 100%;
	margin: 16px;
}

.env_box .img2{
	margin-top: 20px;
}

.env_desc{
	display: block;
	padding: 16px;
	margin-bottom: 30px;
	font-size: 1.4rem;
	line-height: 2;
}

.env_figs{
	display: flex;
}

.env_figs img{
	width: calc(33.333% - 32px);
	margin: 0 16px 40px;
}

.mid_tc{
    background: #E5F5F4;
    color: var(--green);
    text-align: center;
    font-weight: 600;
    padding: 2px 10px;
}

.env_f_boxes{
	margin: 20px auto;
	display: flex;
	flex-wrap: wrap;
}

.env_f_box{
	display: flex;
	flex-direction: column;
	width: calc(25% - 32px);
	margin: 16px;
}

.env_f_box p{
	padding: 4px;
	font-size: 1.4rem;
	line-height: 1.6;
}

@media (min-width:1024px) and (max-width: 1160px) {
	.header_body h1 {
    position: absolute;
    top: 2.8rem;
    left: 94px;
    font-size: 1.3rem;
    line-height: 1.3;
    font-weight: 400;
    color: var(--darkgray);
}

	.global_navi li > a {
    display: block;
    min-width: 76px;
    height: 90px;
    padding: 0 4px;
    line-height: 90px;
    font-size: 1.25rem;
    font-weight: 500;
    color: #454545;
    text-align: center;
    text-decoration: none;
    transition: all .2s ease-out;
}


}

/* --------------Medium devices-------------- */

@media (max-width: 1023px) {

/*-------------- common --------------*/

body{
	min-width:768px;	
}

.sp_only{
	display:block !important;
}

.pc_only{
	display:none !important;
}

.sp_only.tb_none{
	display:none !important;
}


/*-------------- layout --------------*/

.row{
	position: relative;
	max-width:100%;
	margin:0 auto;
	padding:0 10px;
}

.btn_block{
	position: relative;
	max-width: calc(100% - 32px);
	margin:10px auto 40px;
}

.btn{
	min-width: 200px;
	
}

.btn_l {
    padding: 12px 30px;
    min-width: 220px;
    max-width: calc(100% - 32px);
    font-size: 1.8rem;
    font-weight: 600;
    border-radius: 50px;
}

.btn_l:after {
    top: 12px;
    right: 8px;
}


/*-------------- header --------------*/

header{
	position:fixed;
	top:0;
	left:0;
	width:100%;
	height:72px;
	z-index: 1000;
}

.header_body{
	background:rgba(255,255,255,0.9);
	z-index: 200;
}

.header_body .logo{
	position:absolute;
	top:6px;
	left:12px;
	height: 60px;
}

.header_body .logo img{
	width: 54px;
}

.header_body h1{
	position:absolute;
	top:16px;
	left:84px;
	font-size:13px;
	line-height: 1.45;
	font-weight: 600;
	color:var(--green);
}

.hamburger {
  display : block;
  position: fixed;
  z-index : 3;
  right : 18px;
  top   : 16px;
  width : 42px;
  height: 42px;
  cursor: pointer;
  text-align: center;
}
.hamburger span {
  display : block;
  position: absolute;
  width   : 30px;
  height  : 2px ;
  left    : 6px;
  background : var(--darkgray);
  -webkit-transition: 0.5s ease-in-out;
  -moz-transition   : 0.5s ease-in-out;
  transition        : 0.5s ease-in-out;
}

.home .hamburger span {
  background : #333;
}

.hamburger.bb span {
  background : #333;
}

.hamburger span:nth-child(1) {
  top: 10px;
}
.hamburger span:nth-child(2) {
  top: 20px;
}
.hamburger span:nth-child(3) {
  top: 30px;
}

/* ナビ開いてる時のボタン */
.hamburger.active span:nth-child(1) {
  top : 16px;
  left: 6px;
  -webkit-transform: rotate(315deg);
  -moz-transform   : rotate(315deg);
  transform        : rotate(315deg);
  background : #fff;
}

.hamburger.active span:nth-child(2),
.hamburger.active span:nth-child(3) {
  top: 16px;
  -webkit-transform: rotate(-315deg);
  -moz-transform   : rotate(-315deg);
  transform        : rotate(-315deg);
  background : #fff;
}

nav.globalMenuSp {
  position: fixed;
  z-index : 2;
  top  : 0;
  left : 0;
  color: #000;
  background: rgba(0,0,0,0.8);
  text-align: center;
  transform: translateY(-100%);
  transition: all 0.4s;
  width: 100%;
}

nav.globalMenuSp ul {
  margin: 10px auto 0;
  padding: 70px 0 10px 0;
  width: 100%;
}

nav.globalMenuSp ul li {
  list-style-type: none;
  padding: 0;
  width: 100%;
  border-bottom: 1px solid rgba(0,0,0,0.2);
}
nav.globalMenuSp ul li:last-child {
  padding-bottom: 0;
  border-bottom: none;
}
nav.globalMenuSp ul li:hover{
  background : var(--green);
}

nav.globalMenuSp ul li a {
  display: block;
  color: #fff;
  font-size: 1.9rem;
  line-height: 1.6rem;
  padding: 2rem 0;
  text-decoration :none;
}

nav.globalMenuSp.active {
  transform: translateY(0%);
}

.topic_path {
	display: none;
}

.mid_en {
    font-size: 2.0rem;
    line-height: 1.4;
    font-weight: 500;
}

.mid_bar {
    margin: 0 -16px;
}

.table_lined th, .table_lined td {
    font-size: 1.6rem;
    line-height: 1.8;
    padding: 1.6rem 1rem;
    border-bottom: 1px solid var(--lightgray);
    vertical-align: top;
    font-weight: 300;
}

.table_lined td{
	padding: 1.6rem 0.4rem 1.6rem 0.4rem;
}

.table_lined th{
	padding: 1.6rem 1rem 1.6rem 0.4rem;
	white-space: nowrap;
	font-weight: 600;
	font-size: 1.5rem;
	color: var(--green);
}

.footer_navi ul {
    display: flex;
    flex-wrap: wrap;
    width: 100%;
    justify-content: center;
}

.footer_navi ul li{
	width: 45%;
	margin: 1%;
	text-align: left;
	border-bottom: 1px solid rgba(255,255,255,0.2);
}
/*-------------- top --------------*/

.top_hero{
	height:60vh;
	text-align: center;
	position: relative;
}

.top_hero .bg_img {
	width: 100%;
  position   : absolute;
  height: 60vh;
  top        : 0;
  left       : 0;
  bottom     : 0;
  right      : 0;
  opacity    : 0;
  animation  : bgAnime_sp 25s infinite;
  background-repeat: no-repeat;
	background-size: cover;

}

.top_hero .src1 {
  background-image : url("../images/kv_01-c4ce5a31.jpg");
  opacity: 1; 
}
.top_hero .src2 {
  background-image : url("../images/kv_02-575388d9.jpg");
  animation-delay  : 5s;
}
.top_hero .src3 {
  background-image : url("../images/kv_03-7f6fab90.jpg");
  animation-delay  : 10s;
}
/*.top_hero .src4 {
  background-image : url("../images/kv_04-47890639.jpg");
  animation-delay  : 15s;
}*/
.top_hero .src5 {
  background-image : url("../images/kv_05-b53c4d95.jpg");
  animation-delay  : 20s;
}

@keyframes bgAnime_sp {
  0% { opacity: 0; }
  5% { opacity: 1; }
  24% { opacity: 1;}
  30% { opacity: 0;}
 100% { opacity: 0; }
}

.top_hero_body{
	position: relative !important;
	display: block;
	justify-content: center;
	align-items: center;
	margin-top: 0;
	padding-bottom: 5px;
	width:100%;
	height:auto;
	overflow: visible;
	text-align: center;
	background: var(--green);
}

.top_hero_body h1{
	display: inline-block;
	margin-top: -12px;
	padding: 8px 14px 6px;
	background: var(--white);
	color:var(--green);
	font-size:1.6rem;
	font-weight: 500;
	line-height: 1;	
}

.top_hero_body h2{
	margin-top: 20px;
	padding: 0;
	color: #FFF;
	background: rgba(28,161,151,0.84);
	font-size: 4.9rem;
	line-height: 1.1;
	letter-spacing: 0.05em;
	font-weight: 600;
}

.top_hero_body p{
	margin:16px 4px;
	font-size: 1.8rem;
	line-height: 1.8;
	color:#FFFFFF;
	font-weight: 600;
	text-shadow:1px 1px 0 #000,-1px 1px 0 #000,1px -1px 0 #000,-1px -1px 0 #000, 0 2px 0px #000;
}


.page_nokv {
    margin-top: 100px;
}

.top_news {
    display: flex;
    flex-direction: column;
    justify-content: center;
    align-items: flex-start;
    padding: 1px 0;
}

.top_news_head {
    width: calc(100% - 10px);
    height: 32px;
}

.top_news_head span{
	line-height: 32px;
}

.top_news_body {
   width: auto;
   padding: 16px 20px 0px;
}

.top_company {
    width: 100%;
    background-position: top 0 right -600px;
    background-size: cover;
}

.top_company_body{
	padding: 20px 20px 40px;
}

.top_company_body h3 {
    font-size: 2rem;
    line-height: 3rem;
}

.top_business_boxes{
	margin-top: 20px;
	background: #070708;
	display: flex;
	flex-direction: column;
	color: #FFF;
}

.top_business_box{
	display: flex;
	flex-direction: column;
	align-items: flex-center;
	justify-content: flex-end;
	height: 280px;
	width: 100%;
}
.top_business_box_1{
	background: #070708 url("../images/top_biz_fig_1-3fc73e23.jpg") no-repeat center center;
	background-size: cover;
}

.top_business_box_2{
	background: #070708 url("../images/top_biz_fig_2-2b2cc7a3.jpg") no-repeat center center;
	background-size: cover;
}

.top_business_box_3{
	background: #070708 url("../images/top_biz_fig_3-52997bfb.jpg") no-repeat center center;
	background-size: cover;
}

.top_business_box h5{
	height: auto;
	padding: 10px 1em 2px;
	font-size: 1.8rem;
	line-height: 1.3;
	font-weight: 600;
	text-shadow: 0 2px 5px rgba(0,0,0,0.7);
}

.top_business_box p{
	height: auto;
	padding: 8px 1em 1.5em;
	font-size: 1.2rem;
	line-height: 1.3;
	font-weight: 300;
}

.top_business_btn_box{
	margin-top: 0px;
	padding: 20px 0 30px;
	background: #070708;
}

.top_environment{
	margin: 0;
	padding: 40px 0 30px;
	text-align: center;
	background: #EDFCFB;
	border-bottom:  1px solid var(--lightgreen);
}

.top_environment_boxes{
	display: flex;
	flex-wrap: wrap;
	width: calc(100% - 0px);
	max-width: 1200px;
	margin:20px auto 20px;
}

.top_environment_box{
	width: calc(50% - 0px);
	padding: 0px;
}


.message_kv{
	margin-top: 0px;
	height: auto;
	background-color: var(--white);
	background-position: top right -100px;
	background-size:  auto 55vh;
}

.message_title_box{
	display: block;
	padding-top: calc(44vh + 4px);
	height: auto;
}

.message_title {
    width: 100%;
    text-align: center;
}

.message_title h3 {
    margin-top: 2.6rem;
    padding: 0 16px;
    font-size:4.9rem;
    line-height: 1.2;
    font-weight: 600;
    color: var(--green);
    text-align: left;
}

.message_body{
	margin: 24px auto 24px;
}

.message_sign {
    text-align: center;
    margin: 40px auto 60px;
}

.message_mission_inner {
    padding: 32px 16px 12px;
}

.message_mission_mission {
    padding: 32px 16px;
}

.philosophy_list {
    padding: 5px 2px;
}

.philosophy_list li {
    padding: 14px 8px;
}

.message_fig {
    margin-top: 32px;
}


.company_kv{
	height: 90vw;
	background-color: #2B4473;
	background-position: bottom;
	background-size: 120vw auto;
	padding-top: 10vw;
}

.company_title_box {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    height: auto;
    margin: 0px auto 0;
    color: var(--white);
}

.company_title {
    width: 100%;
    height: auto;
    margin-top: 60px;
    text-align: center;
}

.company_title h2 {
    margin-top: 0.2rem;
    font-size: 4.8rem;
    line-height: 1.25;
    font-weight: 600;
    color: var(--white);
}

.company_body {
    margin: 24px auto 24px;
    font-weight: 300;
}

.company_body .table_std th {
    white-space: nowrap;
    vertical-align: top;
}

.company_history {
    margin: 1rem 0 0 0;
    padding: 1rem 0rem;
}

.company_history .listyear {
    display: block;
    justify-content: center;
    align-items: flex-start;
    padding: 1rem;
}

.company_history .listyear > dt {
    width: 100%;
    text-align: left;
}

.company_history .listyear > dd {
    width: 100%;
}
.company_history .listyear > dd .listmonth dt {
    width: 30%;
}

.company_history .listyear > dd .listmonth dd {
    width: 70%;
    margin-bottom: 1.4rem;
}

.inpage_link {
    padding: 10px 12px 8px 4px;
    width: 48%;
    min-width: 120px;
}

.inpage_link:after {
    top: 10px;
    right: 12px;
}

.business_kv{
	position: relative;
	height: 90vw;
	background-color: #2B4473;
	background-position: left top;
	background-size: cover;
	padding-top: 10vw;
}

.business_kv:before{
	content: '';
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: rgba(0,0,0,0.25);
}

.business_title_box {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    height: auto;
    margin: 0px auto 0;
    color: var(--white);
}

.business_title {
    width: 100%;
    height: auto;
    margin-top: 60px;
    text-align: center;
    z-index: 1;
    text-shadow: 0 1px 8px rgba(0,0,0,0.6);
}

.business_title h2 {
    margin-top: 0.2rem;
    font-size: 4.8rem;
    line-height: 1.25;
    font-weight: 600;
    color: var(--white);
}

.business_body {
    margin: 24px auto 24px;
    font-weight: 300;
}

.business_catch{
	font-size: 2.4rem;
	line-height: 1.4;
	margin-bottom: 2rem;
	color: var(--green);
	font-weight: 600;
	text-align: center;
}

.business_desc{
	font-size: 1.6rem;
	line-height: 2;
	margin-bottom: 4rem;
}

.business_figs{
	width: 100%;
	margin: 10px auto 50px;
}

.business_figs img{
	width: auto;
	max-width: 100%;
	margin: 20px auto;
}

.business_figs img:last-child{
	width: 85%;
	max-width: 100%;
	margin: 20px auto;
}

.business_industries_mid{
	background: #E5F5F4;
	color: var(--green);
	text-align: center;
	font-weight: 600;
	padding: 2px 10px;
}

.business_industries_box{
	display: flex;
	justify-content: center;
	align-items: center;
	flex-wrap: wrap;
	margin: 10px 0 40px;
}

.business_industries_box li{
	display: flex;
	width: calc(25% - 10px);
	align-items: center;
	justify-content: center;
	height: 60px;
	margin: 3px 2px;
	border: 2px solid var(--green);
	border-radius: 5px;
	text-align: center;
	color: var(--green);
	font-weight: 600;
}

.product_head_box{
	margin: 30px -16px 0px;
	width: calc(100% + 32px);
	display: flex;
	flex-direction: column;
	align-items: center;
	background: #333333;
}

.product_head_fig{
	width: 100%;
	flex-shrink: 0;
}

.product_head_txt{
	width: 100%;
	flex-shrink: 0;
}

.product_head_txt span{
	display: block;
	padding: 20px;
	color: #FFF;
	font-size: 2.4rem;
	font-weight: 500;
	line-height: 1.4;
}

.product_h4{
	color: var(--green);
	font-weight: 600;
	font-size: 2rem;
	line-height: 1.4;
	margin: 20px 0 0;
	text-align: left;
}

.product_body{
	display: flex;
	flex-direction: column;
	justify-content: space-between;
	align-items: flex-start;
	margin: 30px auto 50px;
}

.product_body p{
	width: 100%;
	font-size: 1.5rem;
	line-height: 2;
}

.product_fig{
	width: 100%;
	margin-left: 0px;
	margin-bottom: 20px;
	margin-top: 20px;
}

.product_body_w{
	display: block;
	margin: 20px auto 60px;
}

.product_body_w .product_body p{
	width: 100%;
	font-size: 1.5rem;
	line-height: 2;
}

.product_body_w .product_fig{
	width: 100%;
	margin: 0 auto 30px;	
}

.case_boxes{
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: space-between;
	margin: 40px 0 20px;
	padding-bottom: 30px;
	border-bottom: 1px solid #cccccc;
}

.case_boxes p{
	font-size: 1.4rem;
	line-height: 1.6;
	padding: 12px 12px;
}

.case_box_1{
	margin-right: 0px;
}

.case_box_2{
	margin-left: 0px;
}

.case_box_3{
	display: flex;
	margin-top: 20px;
}

.case_box_3 img{
	width: 250px;
}

.case_box_4{
	display: block;
	width: 100%;
	margin:  20px auto 0px;
}

.itv_kv {
	position: relative;
    height: 84vh;
    min-height: 480px;
    background-repeat: no-repeat;
    background-position: center center;
    background-size: cover;
    text-align: center;
    background: #FFFFFF;
}

.itv_kv.interview_01 {
    background-image: url("../images/itv_01_kv-01e7cb31.jpg");
    background-position: right 35% top 10% ;
    background-size: cover;
}

.itv_kv.interview_02 {
    background-image: url("../images/itv_02_kv-09e3fabf.jpg");
    background-position: right 35% top 10% ;
    background-size: cover;
}

.itv_kv.interview_03 {
    background-image: url("../images/itv_03_kv-c14b3d40.jpg");
    background-position: right 45% top 10% ;
    background-size: cover;
}

.itv_kv.interview_04 {
    background-image: url("../images/itv_04_kv-6ec33548.jpg");
    background-position: center top 10%;
    background-size: cover;
}

.itv_kv.interview_05 {
    background-image: url("../images/itv_05_kv-fc1baeec.jpg");
    background-position: right 80% top 10%;
    background-size: cover;
}

.itv_body{
	margin-top: 30px;
}
.itv_kv_title{
	position: absolute;
	text-align: left;
	bottom: 115px;
	left: 0;
	width: 100%;
}
.itv_kv_title h1{
	display: inline-block;
	background: #FFF;
	font-size:13px;
	line-height: 1.6em;
	font-weight: 600;
	padding:5px 10px;
	color: #00A197;
	margin-bottom: 0px;
}

.itv_kv_title h2{
	display: block;
	padding:10px 8px;
	font-size:21px;
	line-height: 1.3em;
	text-align: center;
	font-weight: 600;
	color: #FFFFFF;
	background: rgba(0,161,151,0.9);
}

.itv_profile{
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 95px;
	padding: 10px 0;
	background-color: rgba(255,255,255,0.7);
	backdrop-filter: blur(4px);
}

.itv_profile_body{
	display: flex;
	align-items: center;
	max-width: 1200px;
	margin: 0 auto;
	text-align: left;
}

.itv_face{
	padding: 0 5px 0 12px;
}

.itv_face_img{
	width: 90px;
	height: 90px;
	border-radius: 100px;
	border: 2px solid #00A197;
}
.itv_desc{
	padding: 0 10px;
	font-size: 13px;
	line-height: 18px;
}

.itv_name{
	font-weight: bold;
	font-size: 110%;
}

.itv_paragraph.r_img,
.itv_paragraph.l_img{
	float:none;
	width:100%;
}

.itv_body .img_posr,
.itv_body .img_posl{
	float:none;
	width:100%;
}

.itv_paragraph.l_img .itv_paragraph_block,
.itv_paragraph.r_img .itv_paragraph_block{
	max-width: 100%;
	margin: 0;
}


.onemore{
	border: none;
}

.onemore_mid{
	text-align: center;
	font-size: 1.2em;
}

.onemore_fig{
	margin: 0 auto;
}

.onemore_body{
	display: flex;
	flex-direction: column;
	text-align: center;
}

.onemore_body p{
	padding: 0.5em;
	text-align: left;
}

.onemore_ct_body{
	width: 100%;
	margin: 10px 0;
}

.time_schedule{

}

.time_schedule dt{
	width: 100%;
	padding: 12px 4px 0;
	font-size: 80%;
	line-height: 1em;
	border-bottom: none;
	text-align: left;
}

.time_schedule dd{
	width: 100%;
	padding: 0px 4px 4px;
	text-align: left;
}

.time_schedule dt:last-of-type,
.time_schedule dd:last-of-type{
	border-bottom: none;
}


.itv_links{
	margin: 20px 0 20px;
	text-align: center;
}

.itv_links_boxes{
	margin: 40px 0;
	display: flex;
	flex-direction: column;
	justify-content: stretch;
	align-items: stretch;
	align-content: stretch;
}

.itv_links_box_a{
	display: flex;
	justify-content: stretch;
	align-items: stretch;
	align-content: stretch;
	width: 100%;
	text-decoration: none;
	transition: 0.3s;
}


.environment_kv{
	position: relative;
	height: 90vw;
	background-color: #2B4473;
	background-position: center center;
	background-size: cover;
	padding-top: 10vw;
}

.environment_kv:before{
	content: '';
	display: block;
	position: absolute;
	width: 100%;
	height: 100%;
	top: 0;
	left: 0;
	background: rgba(0,0,0,0.4);
}

.environment_title_box {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    height: auto;
    margin: 0px auto 0;
    color: var(--white);
}

.environment_title {
    width: 100%;
    height: auto;
    margin-top: 60px;
    text-align: center;
    z-index: 1;
    text-shadow: 0 1px 8px rgba(0,0,0,0.6);
}

.environment_title h2 {
    margin-top: 0.2rem;
    font-size: 4.8rem;
    line-height: 1.25;
    font-weight: 600;
    color: var(--white);
}

.environment_body {
    margin: 24px auto 24px;
    font-weight: 300;
}

.env_boxes{
	display: flex;
	flex-direction: column;
	margin: 10px auto;
	font-size: 1.4rem;
	line-height: 2;
}

.env_box{
	width: auto;
	margin: 10px 0;
}

.env_desc{
	display: block;
	padding: 0px;
	margin-bottom: 40px;
	font-size: 1.4rem;
	line-height: 2;
}

.env_figs{
	display: flex;
}

.env_figs img{
	width: calc(33.333% - 3px);
	margin: 0 2px 20px;
}

.mid_tc{
    background: #E5F5F4;
    color: var(--green);
    text-align: center;
    font-weight: 600;
    padding: 2px 10px;
}

.env_f_boxes{
	margin: 10px auto 10px;
	display: flex;
	flex-wrap: wrap;
}

.env_f_box{
	display: flex;
	flex-direction: column;
	width: calc(50% - 16px);
	margin: 8px;
}

.env_f_box p{
	padding: 4px 4px 10px;
	font-size: 1.3rem;
	line-height: 1.3;
}

}



/*--------------Small devices--------------*/
@media (max-width: 548px) {

/*-------------- common --------------*/

body {
	width:100vw;
	min-width: initial;
	overflow-x:hidden;
	font-size: 1.6rem;
}	

.sp_only.tb_none{
	display:block !important;
}

.section_title{
	display: inline-block;
	margin:  0 auto;
	font-size: 1.8rem;
	line-height: 1.5;
	font-weight: 600;
	color: #333;
	text-align: center;
	border-bottom: 3px solid #1B968C;
}

.section_subtitle{
	display: block;
	margin:  20px auto 0;
	font-size: 1.6rem;
	line-height: 1.4;
	font-weight: 600;
	color: var(--green);
}

.section_tag{
	display: block;
	font-size: 1.3rem;
	line-height: 1.8;
}

/*-------------- footer --------------*/

footer{
	background: var(--green);
	color:#FFFFFF;
}

.footer_body{
	padding:20px 15px 20px;
	background: var(--green);
	color:#FFFFFF;
}

.footer_info{
	position: relative;
	width:100%;
	float:none;
	min-height:70px;
}

.footer_logo{
	padding:0px 5px;
}

.footer_sitename{
	padding:0px 5px;
}

.footer_navi{
	width:100%;
	float:none;
	padding-bottom:20px;
}

.footer_navi .col{
	width:50%;
	float:left;
}

.footer_navi li{
	padding:4px 0 0 8px;
	font-size: 0.8em;
	font-weight: 400;
}

.footer_navi li a{
	color:#FFFFFF;
	text-decoration: none;
}

.footer_copyright{
	display:block;
	padding:0px;
	clear: both;
	text-align: center;
	font-size:0.9em;
	font-weight:100;
}


/*-------------- page --------------*/



}





/* Keep the first photo visible on initial paint and throughout slide transitions. */
.top_hero {background-image:url("../images/kv_01-c4ce5a31.jpg");background-repeat:no-repeat;background-position:center top;background-size:100% auto;}
.top_hero .src1 {animation-name:recruitHeroFirst;}
@keyframes recruitHeroFirst {0%{opacity:1;background-size:130%}24%{opacity:1}30%{opacity:0;background-size:100%}100%{opacity:0}}
@media(max-width:1023px){
 .top_hero{background-size:cover;}
 .top_hero .bg_img{animation-duration:20s;}
 .top_hero .src1{animation-name:recruitHeroFirstMobile;}
 .top_hero .src5{animation-delay:15s;}
 @keyframes recruitHeroFirstMobile{0%,24%{opacity:1}30%,100%{opacity:0}}
}
@media(prefers-reduced-motion:reduce){
 .top_hero .bg_img{animation:none;opacity:0;}
 .top_hero .src1{opacity:1;}
}
