@charset "utf-8";
@import url('https://fonts.googleapis.com/css?family=Open+Sans');

/* リスト要素をリセットする ---------------- */
dl,dt,dd,ol,ul,li	{
	list-style-position: outside;
	list-style-type: none;
}
/*box-sizingを全ブラウザに対応*/
*, *:before, *:after {
    -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
    -o-box-sizing: border-box;
    -ms-box-sizing: border-box;
    box-sizing: border-box;
}

/* floatの解除 ------------- */
.fbox{
	clear:both;
	_display: inline-block;
	min-height: 1%;
}
.fbox:after {
	display: block;
	clear: both;
	height: 0;
	visibility: hidden;
	content: ".";
	line-height: 0;
}



/* ===================================================================

	スタイルの設定

=================================================================== */
html {
	scroll-behavior: smooth;
	font-size:14px;
}
body {
	color:#000;
	line-height:1.5;
	margin:0;
	background:#fff;
	font-family: '游ゴシック体', 'Yu Gothic', YuGothic,'Noto Sans JP', sans-serif;
	font-weight: 500;
	font-feature-settings: "palt";
	letter-spacing: .1em;
}
#contents {
	box-sizing: border-box;
}
#contents * {
	box-sizing: border-box;
}
img {
	max-width: 100%;
	height: auto;
}



/* ---------------- 上書き ------------- */
strong {font-weight:bold;}
p,li,dl,dt,dd {line-height:1.5;}
.red{	color:#F40027;}
.red2{	color:#DC0000;}
.blue{	color:blue;}
.blue{	color:blue;}
.txt-left {	text-align:left;}
.txt-right {	text-align:right;}

.bg {
	width: 100%;
	height: 100%;
	position: fixed;
	top: 0;
	left: 0;
	z-index: 800;
	background-color: rgba(51,51,51,0.7);
	display: none;
}

/* ===================================================================
	通常のリンク
=================================================================== */
a {
	transition: all .3s;
}
a:link {
	color: #558BC6;
	text-decoration: none;
}
a:visited {
	color: #558BC6;
	text-decoration:none;
}
a:hover {
	color: #7BA8DB;
	text-decoration:none;
/*	opacity: 0.7;*/
}
a:active {
	color: #7BA8DB;
	text-decoration:none;
}
/* メインエリアはリンクにアンダーライン */
/*#main a{
	text-decoration:underline;
}*/

/* ===================================================================
	#header
	ヘッダー
=================================================================== */

header {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	padding: 20px 0 11vw;
	background: url(../img/header_bk.svg) repeat-x center bottom;
	z-index: 100;
	transition: all .3s;
}
.header_inner {
	display: flex;
	justify-content: space-between;
	align-items: center;
	width: 90%;
	margin: 0 auto;
	z-index: 100;
}
.h_logo img {
	transition: all .3s;
}

/* ---------------- ヘッダーメニュー ------------- */
.nav_menu ul {
	display: flex;
	justify-content: flex-end;
	align-items: center;
}

.nav_menu ul li {
	margin-left: 30px;
}
.nav_menu ul li a {
	color: #000;
	font-size: 17px;
	font-family: "Roboto Condensed", sans-serif;
	font-weight: 900;
}
.nav_menu ul li a:hover {
	color: #38bbed;
}
.nav_menu ul li a path {
	transition: all .3s;
}
.nav_menu ul li a:hover path{
	fill: #38bbed;
}

/* スクロールしたら小さく */
header.header_scroll {
	padding: 10px 0 5.5vw;
	background: url(../img/header_bk.svg) repeat-x center bottom;
/*	background-size: 50% auto;*/
	background-size: auto 250px;
}
header.header_scroll .h_logo img {
	width: 200px;
	height: auto;
}


.header_sp_btn {
	display: none;
}
#gmenu_nav_sp {
	display: none;
}


/* ===================================================================
	#footer
	フッター
=================================================================== */

footer {
	padding: 320px 0 40px;
	background: url(../img/footer_bk_img.svg) no-repeat top center,
	url(../img/footer_bk.png) repeat-x center 164px;
}

.f_logo {
	margin-bottom: 50px;
	text-align: center;
}
.f_logo img {
	width: 200px;
}
.f_nav {
	width: 94%;
	margin:0 auto 50px;
}
.f_nav ul {
	display: flex;
	justify-content: center;
}
.f_nav ul li {
	padding: 0 25px;
}
.f_nav ul li a {
	color: #000;
	font-size: 16px;
	font-weight: bold;
}
address {
	margin: 0;
	font-style: normal;
	text-align: center;
	font-weight: bold;
	letter-spacing: 0;
}

/* ===================================================================
	共通CSS
=================================================================== */

#main {
	position: relative;
	margin-bottom: 150px;
}


/* ===================================================================
	メインイメージ
=================================================================== */
.main_img {
/*	margin-bottom: 100px;*/
	padding-top: 180px;
	background: #38bbed url(../img/main_img_bk.svg) no-repeat center bottom;
	background-size: 100% auto;
}
.main_img_title {
	display: flex;
	align-items: center;
	justify-content: center;
	max-width: 1554px;
	margin:  0 auto;
	text-align: center;
	background: url(../img/main_img_cloud.svg) no-repeat center top;
	background-size: 100% auto;
	z-index: 200;
}
.main_img_service {
	max-width: 1200px;
	margin:  0 auto;
	text-align: center;
}
#main_service a:hover {
	transform: translateY(-10px);
}

#main_service a:hover {
}




.title {
	text-align: center;
	font-weight: bold;
	font-size: 64px;
}

/* ===================================================================
	about
=================================================================== */

#about {
	padding-top: 100px;
}
.about_top {
	max-width: 1260px;
	width: 90%;
	margin: 0 auto 20px;
}
#about .title {
	display: flex;
	justify-content: center;
	align-items: center;
	min-height: 268px;
	padding-bottom: 4%;
/*	padding:70px 0 0;*/
	background: url(../img/about_title_bk.svg)no-repeat top center;
	background-size: 100%;
}
.about_top_txt {
	margin-top: -2em;
	text-align: center;
	font-size: 30px;
	font-weight: bold;
	line-height: 2.2;
}

/* point
--------------------------------------------------------- */
.point_list {
	margin: 0 auto;
}
.point_list li {
	margin: 0 0 80px;
	display: flex;
	align-items: center;
}
.point1 {
	height: 65vw;
	padding-bottom: 6vw;
	background: url(../img/point1_bg.png) no-repeat left top,url(../img/point1_bg_2.png) no-repeat right bottom;
	background-size: 53% auto,auto;
}
.point2 {
	height: 51vw;
	padding-top: 5vw;
	background: url(../img/point2_bg.png) no-repeat right top,url(../img/point2_bg_2.png) no-repeat left top;
	background-size: 53% auto,auto;
}
.point3 {
	height: 61vw;
	padding-top: 10vw;
	background: url(../img/point3_bg.png) no-repeat left bottom,url(../img/point3_bg_2.png) no-repeat right top;
	background-size: 53% auto,auto;
}
.point_detail {
	max-width: 1080px;
	width: 94%;
	margin: 0 auto;
	display: flex;
	flex-direction: column;
}
.point_title {
	margin-bottom: .5em;
	font-size: 40px;
	font-weight: bold;
}
.point_title span {
	display: block;
}
.point_title_img {}
.point_title_txt {
	margin-top: 1em;
}
.point1 .point_title,
.point3 .point_title  {
	margin-left: auto;
	text-align: right;
}

.point_txt {
	font-size: 20px;
	font-weight: bold;
	line-height: 2;
}
.point1 .point_txt,
.point3 .point_txt  {
	margin-left: auto;
}


/* ===================================================================
	service
=================================================================== */

#service {
	padding-top: 120px;
	margin: 0 auto 200px;
	position: relative;
	background: url(../img/service_bg.svg) no-repeat center top;
}
.service_inner {
	max-width: 1440px;
	width: 90%;
	margin: 0 auto;
}
#service .title {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 170px;
	padding: 20px 0;
	background: url(../img/service_title_bk.svg) no-repeat center center;
}
.service_top_txt,
.company_top_txt {
	text-align: center;
	font-size: 26px;
	font-weight: bold;
	line-height: 1.9;
}

.service_top_txt {
	margin: -1em 0 70px;
}

/* ---------------- サービス内容 ------------- */


.service_list li {
	display: flex;
	margin-top: -7.3%;
}
.service_list li:first-child {
	margin-top: 0;
}
.service_list li:nth-child(odd) {
	justify-content: flex-end;
}
.service_logo,
.service_txt,
.service_img {
	width: 28%;
	flex-shrink: 0;
	flex-grow: 0;
/*	margin: 0 3.5px;*/
	margin: 0 .2%;
}
.service_logo img {
	width: 100%;
	max-width: inherit;
}
.service_txt {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: center;
	color: #fff;
}
.service_txt h4 {
	width: 90%;
	margin: 0 auto 15px;
	text-align: center;
	font-size: 26px;
	font-weight: bold;
}
.service_txt p {
	max-width: 330px;
	width: 90%;
	margin: 0 auto;
	line-height: 1.9;
	font-size: 18px;
}
.service_txt .more_link {
	margin-top: 1em;
	text-align: center;
}
.service_txt .more_link a {
	display: inline-block;
	font-family: 'DotGothic16';
	color: #fd7e00;
	font-size: 14px;
	line-height: 1;
	padding: 10px 0.5em;
	position: relative;
	background:#FFF;
	position: relative;
	transition: .3s all;
}
.service_txt .more_link a:before,
.service_txt .more_link a:after {
	position: absolute;
	top: 0;
	width: 0;
	height: 0;
	content: '';
	border: 17px solid transparent;
	border-right: 14px solid transparent;
	border-left: 14px solid transparent;
	transition: .3s all;
}
.service_txt .more_link a:before {
	right: 100%;
	border-right-color: #fff;
}
.service_txt .more_link a:after {
	left: 100%;
	border-left-color: #fff;
}
.service_txt .more_link a:hover {
	opacity: 0.6;
}
.service_txt .more_link a:hover::after  {
	width: calc(100% + 0.2em);
	width: 100%;
}

.service_aporun .service_txt {
	background: url(../img/service_aporun_bk.svg) no-repeat center center;
}
.service_pawapita .service_txt {
	background: url(../img/service_pawapita_bk.svg) no-repeat center center;
}
.service_amatsubu .service_txt {
	background: url(../img/service_amatsubu_bk.svg) no-repeat center center;
}
.service_system .service_txt {
	background: url(../img/service_system_bk.svg) no-repeat center center;
}
.service_it .service_txt {
	background: url(../img/service_it_bk.svg) no-repeat center center;
}

.service_img {
	position: relative;
	background: url(../img/service_img_bk.svg) no-repeat center center;
	background-size: 100%;
}
.service_list li:nth-child(odd) .service_img {
	margin-right: .5%;
}
.service_list li:nth-child(even) .service_img {
	margin-left: .5%;
}
.service_img::before {
	display: block;
	content: "";
	padding-top: 110%;
}
.service_img img {
	width: 100%;
	max-width: inherit;
	height: auto;
	position: absolute;
	top: 0;
}
.service_aporun .service_img img {
	width: 107%;
	top: -5%;
	right: -1.6%;
}
.service_amatsubu .service_img img {
	width: 101.6%
	right: -1.6%;
}
.service_it .service_img img {
	width: 107.7%;
	right: -1.6%;
}
.service_pawapita .service_img img,
.service_system .service_img img {
}




/* ===================================================================
	company
=================================================================== */
#company {
	padding-top: 120px;
	margin: 0 auto 120px;
	position: relative;
	background: url(../img/company_bg.svg) no-repeat center top;
}
.company_inner {
	max-width: 1440px;
	width: 94%;
	margin: 0 auto;
}
#company .title {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 178px;
	padding: 20px 0;
	background: url(../img/company_title_bk.svg) no-repeat center center;
}
.company_top_txt {
	margin: -1em 0 60px;
}
.company_list {
	max-width: 770px;
	margin: 0 auto;
}
.company_list li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 20px;
	font-size: 18px;
	font-weight: bold;
}
.company_list li h4 {
	display: flex;
	align-items: center;
	margin-right: 20px;
}
.icon_img {
	flex-shrink: 0;
	flex-grow: 0;
	width: 58px;
	margin-right: .6em;
	text-align: center;
}
.company_list_title {
	width: 4.5em;
	flex-shrink: 0;
	flex-grow: 0;
}

.company_list li p {
	display: flex;
	align-items: center;
	width: 588px;
	min-height: 100px;
	padding: 10px 30px 10px 48px;
	background: url(../img/balloon_1.svg)no-repeat center center;
	background-size: 100%;
}

#access {
}

/* 
	ページトップボタン
------------------------------------------------------------------- */
.btn_page_top {
	opacity: 0;
	position: absolute;
	position: fixed;
	bottom: 50px;
	right: 50px;
	z-index: 100;
	transition: all .3s;
}
.btn_page_top.active {
	opacity: 1;
}
.btn_page_top a {
	display: block;
}




/* ===================================================================
	レスポンシブ対応用
=================================================================== */


/* XX-Large devices (larger desktops, 1400px and up) */
@media (max-width: 1440px) {
	header {
		padding: 20px 0 6vw;
		background: url(../img/header_bk.svg) repeat-x center bottom;
		background-size: auto 300px ;
	}
	footer {
		padding-top: 200px;
		background: url(../img/footer_bk_img.svg) no-repeat top center, url(../img/footer_bk.png) repeat-x center 100px;
		background-size: auto 100px, auto;
	}

}
/* X-Large devices (large desktops, 1200px and up) */
@media (max-width: 1200px) {
	#about .title {
		min-height: inherit;
		padding: 6vw 0;
	}
	.about_top_txt {
		margin-top: -3vw;
	}
	.point1 {
		background: url(../img/point1_bg.png) no-repeat left top,url(../img/point1_bg_2.png) no-repeat right bottom;
		background-size: 53% auto,15% auto;
	}
	.point2 {
		background: url(../img/point2_bg.png) no-repeat right top,url(../img/point2_bg_2.png) no-repeat left top;
		background-size: 53% auto,15% auto;
	}
	.point3 {
		background: url(../img/point3_bg.png) no-repeat left bottom,url(../img/point3_bg_2.png) no-repeat right top;
		background-size: 53% auto,15% auto;
	}

	
	#service {
		padding-top: 7vw;
		background: url(../img/service_bg.svg) no-repeat center top;
		background-size: 180% auto;
	}
	#service .title {
		background-size: 100% auto;
	}
	.service_txt p {
		width: fit-content;
		margin: 0 10px;
		font-size: 16px;
		line-height: 1.6;
	}


	#company {
		padding-top: 7vw;
		background: url(../img/company_bg.svg) no-repeat center top;
		background-size: 180% auto;
	}
	#company .title {
		background-size: 100% auto;
	}
}

@media (max-width: 1080px) {
	#service .title,
	#company .title {
		min-height: inherit;
		padding: 5vw 0;
	}
}


/* Large devices (desktops, 992px and up) */
@media (max-width: 992px) {
	.header_inner {
		width: 94%;
	}
	.h_logo img {
		width: 200px;
	}
	.main_img {
		padding-top: 150px;
	}

	#main {
		margin-bottom: 100px;
	}

	.title {
		font-size: 46px;
	}

	
	.about_top_txt {
		font-size: 24px;
		line-height: 1.8;
	}
	.point_title {
		font-size: 30px;
	}
	.point_title_img img {
		width: auto;
		height: 160px;
	}
	.point_txt {
		font-size: 16px;
	}

	#service {
		margin-bottom: 100px;
	}
	.service_top_txt,
	.company_top_txt {
		font-size: 20px;
	}
	.btn_page_top {
		bottom: 3vw;
		right: 3vw;
	}
	.btn_page_top a img {
		width: 50px;
		height: auto;
	}
}

/* Medium devices (tablets, 768px and up) */
@media (max-width: 768px) {
	header {
		padding: 10px 0 12vw;
		background: url(../img/header_bk.svg) repeat-x center bottom;
		background-size: auto 250px;
	}
	header.header_scroll {
		padding: 5px 0 6vw;
		background: url(../img/header_bk.svg) repeat-x center bottom;
		background-size: auto 200px;
	}
	.nav_menu {
		display: none;
	}
	.header_sp_btn {
		display: block;
		cursor: pointer;
		z-index: 1000;
		position: relative;
	}
	.header_sp_btn_open {
		display: inline;
	}
	.header_sp_btn_close {
		display: none;
	}
	.header_sp_btn.open .header_sp_btn_open {
		display: none;
	}
	.header_sp_btn.open .header_sp_btn_close {
		display: inline;
	}


	#gmenu_nav_sp {
		display: block;
		transition: all 0.2s;
		transform: translate(300px);
		width: 300px;
		height: 100%;
		padding-top: 100px;
		background: #f4d923;
		position: fixed;
		top: 0;
		right: 0;
		z-index: 999;
		color: #000000;
	}
	#gmenu_nav_sp.open {
		transform: translate(0);
	}
	.nav_sp ul li {
		margin: 10px 0;
	}
	.nav_sp ul li a {
		display: block;
		padding: 10px 20px;
		color: #000;
		font-size: 30px;
		font-family: "Roboto Condensed", sans-serif;
		font-weight: 900;
	}
	.nav_sp ul li a:hover {
		color: #38bbed;
	}
	.nav_sp ul li a img {
		height: 20px;
		width: auto;
	}

	footer {
		padding: 100px 0 20px;
		background: url(../img/footer_bk_img.svg) no-repeat top center, url(../img/footer_bk.png) repeat-x center 50px;
		background-size: auto 50px, 720px auto;
	}
	.f_logo {
		margin-bottom: 30px;
	}
	.f_nav ul {
		flex-wrap: wrap;
	}
	.f_nav ul li {
		width: 50%;
		padding: 0;
		margin: 5px 0;
	}
	address {
		font-size: 12px;
	}

	#main {
		margin-bottom: 60px;
	}

	.main_img {
		padding-top: 120px;
	}

	#about {
		margin-bottom: 60px;
		padding-top: 60px;
	}
	.point1,
	.point2,
	.point3 {
		height: auto;
	}
	.point1 {
		padding-bottom: 10vw;
	}
	.point_detail {
	}

	#service {
		margin-bottom: 40px;
	}
	.service_logo,
	.service_txt,
	.service_img{
		width: 65%;
		margin: 0 .5%;
		flex-shrink: 0;
		flex-grow: 0;
	}
	.service_list li {
		margin: -17vw 0 0;
		flex-wrap: wrap;
		justify-content: flex-end;
	}
	.service_logo {
		order: 1;
	}
	.service_img {
		width: 32.5%;
		order: 2;
		margin-right: 0!important;
		background: url(../img/service_img_bk.svg) no-repeat top left;
		background-size: auto 100%;
	}
	.service_img::before {
		padding-top: 200%;
	}
	.service_img img {
		width: 120%!important;
		top: 50%!important;
		right: 0!important;
		transform: translateY(-50%);
	}
	.service_txt {
		height: 71.5vw;
		margin-top: -17vw;
		order: 3;
	}
	.service_txt h4 {
		margin-bottom: 10px;
		font-size: 20px;
	}

	#company {
		margin-bottom: 60px;
	}
	.company_list li {
		display: block;
		margin-bottom: 30px;
	}
	.company_list li h4 {
		justify-content: center;
		margin: 0 0 20px;
	}
	.icon_img {
		width: 50px;
		height: 50px;
	}
	.company_list li p {
		display: block;
		width: auto;
		max-width: 572px;
		min-height: inherit;
		margin: 45px auto 0;
		padding: 13px 40px 30px;
		font-size: 16px;
		background: url(../img/balloon_sp_btm.svg) no-repeat center bottom;
		background-size: 100% auto;
		position: relative;
	}
	.company_list li p::before {
		content: '';
		display: block;
		max-width: 572px;
		width: 100%;
		height: 36px;
		position: absolute;
		top: -36px;
		left: 0;
		background: url(../img/balloon_sp_top.svg) no-repeat center top;
		background-size: 100% auto;
	}
	.company_list_title {
		width: auto;
	}

}

/* Small devices (landscape phones, 576px and up) */
@media (max-width: 576px) {
	.title {
		font-size: 32px;
	}

	.about_top_txt {
		margin: 0;
		font-size: 18px;
	}
	.about_top_txt .sp {
		display: none;
	}
	.point_list {
		margin-top: -8vw;
	}
	.point_list li {
		margin-bottom: 0;
	}
	.point1 {
		padding-top: 45vw;
		background-size: 70% auto,15% auto;
	}
	.point2 {
		padding-bottom: 50vw;
		background: url(../img/point2_bg.png) no-repeat right bottom,url(../img/point2_bg_2.png) no-repeat left top;
		background-size: 70% auto,15% auto;
	}
	.point3 {
		padding-top: 50vw;
		background: url(../img/point3_bg.png) no-repeat left top,url(../img/point3_bg_2.png) no-repeat right 5vw;
		background-size: 70% auto,15% auto;
	}
	.point_title_txt {
		font-size: 28px;
	}
	.point_title_img img {
		height: 100px;
	}


	.service_top_txt,
	.company_top_txt {
		font-size: 16px;
	}

	.company_list li p {
		width: 100%;
		margin: 0 auto;
		padding: 4vw 25px 25px;
	}
	.company_list li p::before {
		height: auto;
		padding-top: 4vw;
		top: -4vw;
	}
}

@media (max-width: 479px) {
	.service_txt p {
		font-size: 14px;
	}
}