@charset "utf-8";

/*------------------------------------------------------

	グローバル

------------------------------------------------------*/

body { min-width: 0px; font-size: 0.9em; line-height: 1.8;}

.ta_right-s_center { text-align: center;}
.ta_left-s_center { text-align: center;}

.hidden_s { display: none !important;}

/* margin */
.mb40-20 { margin-bottom: 20px !important;}
.mb60-30 { margin-bottom: 30px !important;}
.mb80-40 { margin-bottom: 40px !important;}
.mb100-60 { margin-bottom: 60px !important;}
.mb120-60 { margin-bottom: 60px !important;}
.mb160-80 { margin-bottom: 80px !important;}

/* ------------------------
	ヘッダー
------------------------ */

.header { display: block; padding: 0px 15px; line-height: 50px;}
.header h1 { padding: 0px;}
.header h1 img { width: auto; height: 24px; vertical-align: middle;}


/* ------------------------
	グローバルナビ
------------------------ */

/* ハンバーガーメニュー */
.humberger {
	background: #1B243C;
	cursor: pointer;
	display: block;
	position: fixed;
	top: 0px;
	right: 0px;
	width: 50px;
	height: 50px;
	z-index: 10001;
}
.humberger span {
	background: #fff;
	border-radius: 15px;
	position: absolute;
	left: 10px;
	width: 30px;
	height: 3px;
	transition: 0.4s;
}
.humberger span:nth-of-type(1) { top: 9px;}
.humberger span:nth-of-type(2) { top: 17px;}
.humberger span:nth-of-type(3) { top: 25px;}
.humberger:after {
	color: #fff;
	content: 'MENU';
	display: block;
	font-size: 10px;
	text-decoration: none;
	text-align: center;
	transition: 0.4s;
	position: absolute;
	left: 0;
	bottom: 1px;
	width: 100%;
}
.is-open .humberger:after { content: 'CLOSE';}
.is-open .humberger span:nth-of-type(1) {
  -webkit-transform: translateY(6px) rotate(-45deg);
	  -ms-transform: translateY(6px) rotate(-45deg);
		  transform: translateY(6px) rotate(-45deg);
}
.is-open .humberger span:nth-of-type(2) { opacity: 0;}
.is-open .humberger span:nth-of-type(3) {
  -webkit-transform: translateY(-10px) rotate(45deg);
	  -ms-transform: translateY(-10px) rotate(45deg);
		  transform: translateY(-10px) rotate(45deg);
}
/* ナビ本体 */
.sp-navi { -webkit-text-size-adjust: 100%;}
.sp-navi.is-open .sp-navi-inner {
	opacity: 1;
	visibility: visible;
	z-index: 10000;
}
.sp-navi .sp-navi-inner {
	background: #F1F1F0;
	overflow-y: auto;
	opacity: 0;
	visibility: hidden;
	position: fixed;
	top: 0;
	left: 0px;
	height: 100%;
	width: 100%;
	transition: .5s;
	padding-bottom: 30px;
}
.sp-navi .sp-navi-inner .navi-main > li {
	border-bottom: 1px solid #ddd;
	position: relative;
}
.sp-navi .sp-navi-inner .navi-main > li:before {
	background: #1B243C;
	content: "";
	height: 3px;
	width: 8px;
	position: absolute;
	left: 10px;
	top: 18px;
}
.sp-navi .sp-navi-inner .navi-main > li:first-child { border-top: 1px solid #ddd;}
.sp-navi .sp-navi-inner .navi-main > li > a {
	display: block;
	padding: 10px 10px 10px 30px;
	overflow: hidden;
	line-height: 1.3em;
	text-decoration: none;
	cursor: pointer;
	font-weight: normal;
}
.sp-navi .sp-navi-inner .navi-main > li > ul > li { width: 100%;}
.sp-navi .sp-navi-inner .navi-main > li > ul > li > a {
	display: block;
	font-size: 14px;
	line-height: 1.3em;
	padding: 10px 10px 10px 50px;
	position: relative;
	text-decoration: none;
	border-top: dotted 1px #ddd;
}
.sp-navi .sp-navi-inner .navi-main > li > ul > li > a:before {
	background: #1B243C;
	content: "";
	height: 1px;
	width: 10px;
	position: absolute;
	left: 26px;
	top: 19px;
}

.sp-navi .logo { padding: 0px 15px; line-height: 50px;}
.sp-navi .logo img { width: auto; height: 24px; vertical-align: middle;}

.lang_btn dt { position: absolute; top: 7px; right: 60px; border: solid 1px #C7C7C7; border-radius: 5px; line-height: 34px; width: 50px; text-align: center; padding-right: 10px; cursor: pointer;}
.lang_btn dt:after {
	content: "";
	position: absolute;
	width: 0;
	height: 0;
	border-style: solid;
	border-width: 5px 3.5px 0 3.5px;
	border-color: #000000 transparent transparent transparent;
	top: 50%;
	right: 8px;
	transform: translateY(-50%);
}
.lang_btn dd { position: absolute; left: 20px; right: 20px; top: 58px; border-radius: 5px; overflow: hidden; background: #fff; display: none; z-index: 9999;}
.lang_btn dd a, .lang_btn dd span { display: block; padding: 8px 20px; color: #4B5158 !important;}
.lang_btn dd span, .lang_btn dd a:hover { background: #E2E2E2;}

/* ------------------------
	フッター
------------------------ */

.cmn_contact a { padding: 30px 15px;}

.footer .bg01 { padding: 30px 0px 10px; text-shadow: 1px 1px 3px #000;}
.footer .bg01 .box01 { justify-content: center;}
.footer .bg01 .box01 p { margin: 0px 0px 15px 2em;}
.footer .bg01 h2 img { width: 80px;}

.footer .bg02 { padding: 40px 0px 10px;}
.footer .bg02 .container02 { display: block;}
.footer .bg02 .btn_area { width: auto; display: flex; justify-content: center; align-items: center;}
.footer .bg02 .btn_area li { width: 250px; margin: 0px 10px 20px;}
.footer .bg02 .btn_area li:first-child a { background-size: 30px auto, 20px auto, auto; padding: 15px;}

.footer_nav { justify-content: space-between; margin-bottom: 25px; flex-wrap: wrap;}
.footer_nav > ul { margin-right: 0px;}

@media only screen and (max-width: 640px) {
	.cmn_contact .tel { font-size: 1.4em;}
	.cmn_contact li:nth-child(1) .tel { font-size: 1.8em;}
	
	.footer .bg01 { background-position: 80% center;}
	.footer .bg01 .box01 { display: table; padding-bottom: 15px;}
	.footer .bg01 .box01 p { margin: 0px;}

	.footer_nav > ul { width: 50%;}
	.footer .bg02 .btn_area { display: block;}
	.footer .bg02 .btn_area li { margin: auto;}
}

@media only screen and (max-width: 480px) {
	.cmn_contact ul { display: block;}
	.cmn_contact li { width: auto;}
	.cmn_contact li:first-child { border-bottom: solid 2px #F1F1F0; border-right: none;}
	.cmn_contact a { padding: 20px 15px;}
	.cmn_contact .tel { line-height: 30px;}
	
	.footer .bg02 .box01 { display: block; text-align: center;}
	.footer .bg02 .box01 ul { justify-content: center; margin-bottom: 15px;}
}

/*------------------------------------------------------

	トップページ

------------------------------------------------------*/

.slider_wrap .box01 { left: 5%; top: 7%; transform: none;}
.slider_wrap .text01 { width: 85%;}
.slider_wrap .text01 img { width: 100%;}
.slider_wrap .text02 { font-size: 3.5vw; padding-right: 27%; margin-top: 2.5em;}

.top_bg01 { padding: 50px 0px;}
.top_en_ttl { font-size: 3.2em;}

.top_sec01 { display: block;}
.top_sec01 .box01, .top_sec01 .text01 { width: auto;}
.top_sec01 .text01 { font-size: 1.8em;}

.top_sec01 .btn_area { width: auto; margin-top: 30px; display: flex; justify-content: space-between;}
.top_sec01 .btn_area li { width: 48%;}
.top_sec01 .btn_area a { box-shadow: 3px 3px 10px rgba(0,0,0,0.25); height: 150px;}
.top_sec01 .btn_area span { width: 200px;}

.top_sec02 .box01 { display: block;}
.top_sec02 .box01 .box_inner { width: auto;}
.top_sec02 .box01 .box_inner > figure { padding: 0px 20%;}

.top_sec03 { background-image: url("../images/top/top_sec03_bg_sp.jpg"); padding: 50px 30% 50px 0px; text-shadow: 1px 1px 3px #000;}
.top_sec03:after { width: 35%; height: auto; padding-top: 35%; right: 20px; bottom: -25%;}
.top_sec03 .box01 { width: auto;}
.top_sec03 h2 { font-size: 2em;}

.top_sec04 { background-size: 90% auto; padding-bottom: 50px;}

.top_sec05 { padding: 50px 0px;}
.top_sec05 figcaption { font-size: 1.3em;}
.top_sec05 .img01 { width: 130px; right: -30px; top: -70px;}

.top_sec06 .box01 { width: 200px;}
.top_sec06 .box02 { width: calc(100% - 230px);}
.top_sec06 .top_en_ttl { font-size: 2.7em;}

.news_wrap dl { padding: 1em 0px;}

@media only screen and (max-width: 640px) {
	.top_sec01 .btn_area { display: block;}
	.top_sec01 .btn_area li { width: auto;}
	.top_sec01 .text01 .hidden_s { display: inline !important;}
	
	.top_sec04 .archive_list li:nth-child(4) { display: block;}

	.top_sec05 .img01 { top: -90px;}

	.top_sec06 { display: block; margin: -20px auto 50px !important;}
	.top_sec06 .box02 { width: auto; margin-top: 25px;}
	.top_sec06 .hide_sp { display: none;}
	.top_sec06 .show_sp { display: block; margin-top: 40px;}
}

@media only screen and (max-width: 480px) {
	.top_sec03 { padding: 25% 15% 50px 0px;}
}


/* ------------------------
	コンテンツ
------------------------ */

.more_btn a { background-size: 20px auto; padding: 1em 1.5em; max-width: 300px;}

.pagettl { padding: 45px 15px;}
.pagettl h2 { font-size: 1.8em;}
.pagettl h2.fo_roboto { font-size: 2.5em;}

.heading_middle { font-size: 1.5em;}

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

.sdgs_bg.company .fo19 { font-size: 1.7em !important;}

.com_sec01 th, .com_sec05 th { width: 7em; padding-right: 1em;}

.com_sec02 h4 { font-size: 1.5em;}

.com_sec03 h4 { font-size: 1.35em;}

.com_sec04 figure { margin: auto -15px;}
.com_sec04 figure .hidden_l { display: none !important;}
.com_sec04 figure .hidden_s { display: inline !important;}

.com_sec06 .box01 .box_inner { width: calc(100% - 200px);}
.com_sec06 .box01 figure { width: 170px;}

@media only screen and (max-width: 640px) {
	.com_sec03 .box01, .com_sec04 .box01 { display: block;}
	.com_sec03 .box01 .box_inner { width: auto; margin-bottom: 25px;}
	.com_sec03 .box01 .map { width: auto;}
	.com_sec03 .box01 iframe { height: 230px;}

	.com_sec04 .box01 section { width: auto; font-size: 1em;}
	.com_sec04 figure .hidden_l { display: inline !important;}
	.com_sec04 figure .hidden_s { display: none !important;}
}

@media only screen and (max-width: 480px) {
	.com_sec02 h4 { font-size: 4.7vw;}

	.com_sec06 .box01 { flex-wrap: wrap; flex-flow: column-reverse;}
	.com_sec06 .box01 .box_inner { width: 100%;}
	.com_sec06 .box01 figure { width: 100%; padding: 0px 22% 25px;}
}


/* ------------------------
	product
------------------------ */

.pro_btn a { display: block; height: auto; padding: 25px 20px 50px; text-shadow: 2px 2px 3px #000;}
.pro_btn a:after { width: 32px; height: 32px; right: 12px; bottom: 12px;}
.pro_btn h3 { font-size: 1.7em;}

.pro_sec01 li { margin-bottom: 50px;}

@media only screen and (max-width: 640px) {
	.pro_sec01 li { width: 47%; margin: 0px 1.5% 45px;}
}


/* ------------------------
	estimate
------------------------ */

.es_wrap { display: block;}
.es_wrap > section { width: auto;}

.es_sec01 .sec01 { padding: 20px;}
.es_sec01 dt { font-size: 1.1em;}

.es_sec01 .sec02 .box_inner { padding: 15px;}


/* ------------------------
	sdgs
------------------------ */

.pagettl_sdgs { height: auto; font-size: 2em; padding: 50px 0px;}


.sdgs_sec01 .ttl_box { display: block;}
.sdgs_sec01 .ttl_box div:first-child { width: auto; margin-bottom: 30px;}
.sdgs_sec01 .ttl_box div:last-child { width: auto;}
.sdgs_sec01 .img01, .sdgs_sec02 .img01 { padding: 15px;}

.sdgs_sec02 nav li { width: 31%; font-size: 0.9em;}
.sdgs_sec02 nav figcaption { margin-top: 5px;}

.sdgs_sec02 .ttl > * { display: table-cell; vertical-align: middle;}
.sdgs_sec02 .ttl dt { width: 7.5em;}
.sdgs_sec02 .ttl dd { font-size: 1.5em; padding: 0.3em 0.5em;}
.sdgs_sec02 .box_inner { padding-left: 0px;}

.bx-controls-direction a { width: 40px; height: 40px;}
.bx-prev { left: -10px;}
.bx-next { right: -10px;}

.sdgs_sec02 .sec03 .box01 { padding: 15px;}
.sdgs_sec02 .sec03 .box01 li { width: 48%; margin-bottom: 35px;}
.sdgs_sec02 .sec03 h5 { width: 13em;}

@media only screen and (max-width: 640px) {
	.sdgs_sec02 nav ul { flex-wrap: wrap; justify-content: center; margin: auto -2%;}
	.sdgs_sec02 nav li { width: 47%; margin: 0px 1.5% 15px; font-size: 2.5vw;}
	.sdgs_sec02 nav a { padding: 20px 5px;}
	.sdgs_sec02 nav a img { width: 30px; height: auto; margin-top: -10px;}
	
	.sdgs_sec02 .sec03 .box01 {font-size: 2.5vw;}
	.sdgs_sec02 .img01 { padding: 0px 5px;}
	.sdgs_sec02 .img01.en { padding: 15px;}
}


/* ------------------------
	recruit
------------------------ */

.rec_pagettl { height: auto; padding: 18% 0px 13%;}
.rec_pagettl .container {width: 100%;}
.rec_pagettl h2 { font-size: 3em;}

.rec_bg { padding: 50px 0px;}

.rec_ttl h3 { font-size: 3em; line-height: 1.2;}

.rec_sec02 .box01 { display: block; margin-top: 0px;}
.rec_sec02 .box01 .box_inner { width: auto;}
.rec_sec02 .box01 figure { width: auto; margin: 25px 0px 0px;}
.rec_sec02 .box01 figure img { max-width: 100%;}
.rec_sec02 .text01 { font-size: 1.35em;}

.rec_sec04 .box01 { display: block;}
.rec_sec04 .box01 .box_inner { width: auto; padding: 30px; margin: 0px;}
.rec_sec04 .box01 figure { margin: 0;}
.rec_sec04 .box01 h4 { font-size: 2em;}

.rec_sec04 .head:after { height: 50px; margin: 15px auto 30px;}
.rec_sec04 .box02 { align-items: flex-start; justify-content: space-between;}
.rec_sec04 .box02 figure { width: 150px;}
.rec_sec04 .box02 .box_inner { width: calc(100% - 180px); height: auto; display: block; padding: 20px; margin: 0px !important;}

.rec_sec04 .box03 { padding: 4% 4% 1px;}
.rec_sec04 .box03 li { width: 48%; margin-bottom: 4%; padding: 15px 5px 10px;}
.rec_sec04 .box03 .fo13 { font-size: 1.15em !important;}

.int_nav { padding: 50px 0px;}
.int_nav li { width: 31%; margin-bottom: 0px;}
.int_nav ul dl { display: flex; align-items: center;}
.int_nav ul dt { font-size: 4.5em; letter-spacing: -0.02em; margin-right: 0.2em;}
.int_nav ul dd.lh16 { line-height: 1.4;}
.int_nav ul figure:after { width: 3em; height: 3em;}

.entry_btn { padding: 40px 0px;}
.entry_btn .btn_area a { background-size: 35px auto; background-position: 90% center !important; padding: 25px 0px 20px 7%;}
.entry_btn .btn_area .fo_roboto { font-size: 3em;}


.int_head .container02 { display: block; padding: 0px 15px;}
.int_head .box_inner { width: auto; display: block; height: auto; padding: 30px 0px 20px;}
.int_head .box_inner > div { max-width: initial;}
.int_head figure { width: auto; height: auto; margin: 0px -15px;}
.int_head figure img { max-width: 100%; position: static; height: auto; transform: none;}
.int_head h2 { font-size: 1.55em;}

.int_sec { display: block;}
.int_sec .box_inner { width: auto; margin-bottom: 25px;}
.int_sec figure { width: auto;}
.int_sec h3.back_white { border-radius: 30px; padding: 0.6em 1.2em;}

@media only screen and (max-width: 640px) {
	.rec_sec03 .box01 { display: block;}
	.rec_sec03 .box01 section { width: auto;}
	.rec_sec03 .box01 figure img { max-width: 300px;}

	.rec_sec04 .box02 figure { width: 80px;}
	.rec_sec04 .box02 .box_inner { width: calc(100% - 95px);}
	.rec_sec04 .box03 li { width: 100%;}
	
	.int_nav ul { font-size: 2.3vw;}
	.int_nav ul dt { font-size: 3.7em; align-self: flex-start;}
}

@media only screen and (max-width: 480px) {
	.rec_sec01 h3 { font-size: 1.35em;}
	
	.rec_sec02 .text01 .hide_sp { display: none;}
}


/* ------------------------
	solution
------------------------ */

.sol_sec01 { display: block;}
.sol_sec01 .box_inner { width: auto;}
.sol_sec01 .img01 { padding: 0px 20%;}
.sol_sec01 .img01 img { max-width: 270px; width: 100%;}

.sol_sec02 .img01 { padding: 6%;}

.sol_sec03 h3 { font-size: 10vw;}
.sol_sec03.en h3 { font-size: 8.5vw;}

.sol_sec04 section > figure { width: 35%;}
.sol_sec04 section > .box_inner { width: 60%; padding-top: 7%;}
.sol_sec04 section:nth-of-type(odd) .box_inner { padding-right: 5%;}
.sol_sec04 section:nth-of-type(even) .box_inner { padding-left: 5%;}
.sol_sec04 section .num { font-size: 7em;}

@media only screen and (max-width: 640px) {
	.sol_sec04 section { display: block;}
	.sol_sec04 section > figure, .sol_sec04 section > .box_inner { width: auto;}
	.sol_sec04 section > .box_inner { padding: 3em 0px 25px !important;}
}

@media only screen and (max-width: 480px) {
	.sol_sec04 h3 .show_sp { display: inline;}
}


/* ------------------------
	contact
------------------------ */

.con_sec01 h3.fo15 { font-size: 1.3em !important;}
.con_sec01 li figure { line-height: 40px; margin-bottom: 10px !important;}
.con_sec01 li figure img { width: 40px; height: auto; vertical-align: middle;}
.con_sec01 .tel { font-size: 1em;}

.contact_sec dl { padding-bottom: 15px; margin-bottom: 15px;}
.contact_sec dt { width: 14em; padding: 10px 1.5em 0px 0px;}

.contact_sec .btn_area input, .es_sec01 button { max-width: 250px; padding: 13px;}

@media only screen and (max-width: 640px) {
	.contact_sec dl, .contact_sec dl > * { display: block; width: auto !important;}
	.contact_sec dl { padding-bottom: 0px; margin-bottom: 10px;}
	.contact_sec dt { padding-bottom: 3px;}
	.contact_sec dt .hissu { float: none; margin-left: 0.6em;}
}

@media only screen and (max-width: 480px) {
	.con_sec01 h3 .show_sp { display: inline;}
	.con_sec01 ul { font-size: 3vw;}
}


/* ------------------------
	topics
------------------------ */

.blog_wrap { display: block;}
.contents, .sidebar { width: auto;}
.sidebar { max-width: 500px; margin: auto;}

.single_art { padding-bottom: 10px;}
.single_head h1 { font-size: 1.65em;}

.blog_content table { font-size: 0.85em;}

img.aligncenter, img.alignright, img.alignleft { display: block; margin: 20px auto; float: none;}

/* ページャー(シングル) */
.pager { padding: 15px 0px;}

@media only screen and (max-width: 640px) {
	.archive_list li { width: 47%; margin: 0px 1.5% 40px;}
	
	.pager.topics > div { width: 100% !important;}
	.pager.topics > div:last-child { text-align: right;}
	.pager.blog { font-size: 0.9em;}

	.alumi_single .box01 { display: block;}
	.alumi_single .box01 figure, .alumi_single .box01 .box_inner { width: auto;}

	.blog_content .box50 > div { width: 96%;}

	.table_wrap { overflow-x: scroll;}
	.table_wrap p.text01 { display: block; font-size: 0.85em; line-height: 1.6; margin-bottom: 10px;}
	.table_wrap table { min-width: 640px;}
}



/* en */
.en_top { height: calc(100vh - 50px); background-position: 70% center; background-size: cover; padding: 0px 35% 0px 0px;}
.en_top .container { display: flex; height: 100%; align-items: center;}
.en_top img { filter: drop-shadow(2px 2px 2px #000);}

