@charset "UTF-8";

@import url('https://fonts.googleapis.com/css?family=Orbitron:400,500,600,700,800,900&display=swap');

:root {
	--main-text-color: #525252;
	--main-background-color: #fff;
	--main-background-image: url(../img/common/bg.jpg);
	--main-textLink-color: #525252;

	--main-btn-text-color: #fff;
	--main-btn-background-color: linear-gradient(135deg,#ffcf00, #ff507c);

	--footer-textLink-color: #fff;
	--footer-background-color: #100f27;

	--border-color:#e5e5e5;
}

body{
	font-family: "Helvetica Neue","Helvetica", "Arial", "Yu Gothic","Hiragino Kaku Gothic ProN","Hiragino Sans","Meiryo", sans-serif;
	font-weight: 500;
	color: var(--main-text-color);
	background: var(--main-background-color);
	background: var(--main-background-image);
}

a{
	color: var(--main-textLink-color);
}

/*表*/
table{
	width: 100%;
	font-size: 1.3rem;
	table-layout: fixed;
}

@media print, ( min-width : 1025px ){
	table{
		font-size: 1.6rem;
	}
}

table tr{
	border-bottom: 1px dashed #e5e5e5;
}

table th,table td{
	padding: 1em;
	font-weight: normal;
}

table th{
	width: 20%;
	text-align: center;
}

/* ヘッダー */
header,footer{
	width: 100%;
}

header{
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 0 8px;
}

@media print, ( min-width : 1025px ){
	header{
		position: fixed;
		top: 0;
		left: 0;
		height: 80px;
		z-index: 999;
		background: #fff;
		border-bottom: 4px solid #e5e5e5;
	}
}

/* フッター */
footer{
	padding-top: 56px;
	min-height: 160px;
	color: #fff;
	background: var(--footer-background-color);
}


@media print, ( min-width : 1025px ){
	#webSystem,#webSite,#mobileApp{
		padding-top: 80px;
	}
}

/* 各コンテンツエリア */
.area{
	width: 100%;
	padding: 48px 0;
}

@media print, ( min-width : 1025px ){
	.area{
		padding: 96px 0;
	}
}

.noScroll{
	width: 100%;
	height: 100%;
	position: fixed;
}

.thumb{
	margin: 0 auto;
}

.svg_icon{
	display: block;
	width: 40%;
	margin: 24px auto;
}
/*------------------------------------
ナビゲーション
------------------------------------*/
#navi.typeOverlay{
	background: #00b98e;
	background: linear-gradient(135deg,rgb(235 221 35), rgb(235 102 25));
	position: fixed;
	top:0;
	left: 0;
	width: 100%;
	height: 100vh;
	z-index: 998;
	display: none;
	overflow-y: scroll;
	-ms-overflow-style: none;    /* IE, Edge 対応 */
	scrollbar-width: none;       /* Firefox 対応 */
}

#navi.typeOverlay::-webkit-scrollbar{  /* Chrome, Safari 対応 */
	display:none;
}

@media print, ( min-width : 1025px ){
	#navi.pcHorizontalNavi{
		margin: 0 auto;
		background: none;
		position: relative;
		height: auto;
		z-index: auto;
		overflow-y: hidden;
	}
}

.naviList_item{
	padding: 8px 40px;
}

.naviList_item_link{
	color: #fff;
	font-weight: bold;
}

.naviList_item_link span{
	display: block;
	font-size: 1rem;
}

@media print, ( min-width : 1025px ){
	.naviList_item{
		padding: 0;
		border-right: 1px solid #dcdcdc;
	}

	.naviList_item:last-child{
		border: none;
	}

	.naviList_item_link{
		color:var(--main-textLink-color);
	}

	.naviList_item_link span{
		color: #9e9e9e;
	}
}

/*ハンバーガーメニュー*/
#hamburger-menu{
	position: fixed;
	top: 4px;
}

.hamburger-line{
	background: #000;
}
.hamburger-text{
	color: #000;
}

#hamburger-menu.is-opened .hamburger-line{
	background: #fff;
}

#hamburger-menu.is-opened .hamburger-text{
	color: #fff;
}

/*------------------------------------
フッターリンク
------------------------------------*/
.naviList-footer{
	padding: 0 0 56px;
	margin: 0 auto;
	display: flex;
    justify-content: center;
	flex-direction: column;
}

@media print, ( min-width : 1025px ){
	.naviList-footer{
		flex-direction: row;
	}
	
}

.naviList-footer .naviList_item .naviList_item_link{
	color: var(--footer-textLink-color);
}

.naviList-footer .naviList_item{
	padding: 0;
	border-bottom: 1px solid #2c2b3f;
}

@media print, ( min-width : 1025px ){
	.naviList-footer .naviList_item{
		width: 20%;
		text-align: center;
		border-bottom:none;
	}
}

.companyInfo-footer{
	margin: 0 auto;
}

.logo-footer{
	margin: 0 auto;
}

.companyAddress-footer{
	margin: 0 auto;
	text-align: center;
}

@media print, ( min-width : 1025px ){
	.companyAddress-footer{
		text-align: left;
	}
}

.copyright{
	padding: 24px 0;
	font-size: 1.1rem;
	text-align: center;
}

/*------------------------------------
見出し
------------------------------------*/
.contentTitle{
	font-size: 3.2rem;
	font-weight: bold;
	text-align: center;
	position: relative;
}

@media print, ( min-width : 1025px ){
	.contentTitle{
		padding-top: 96px;
		margin-bottom: 24px;
	}

	#topPage .contentTitle{
		padding-top: 0;
	}
}

.contentTitle:before{
	display: block;
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 28px;
	margin: auto;
	width: 50%;
	height: 3px;
	background: linear-gradient(90deg, #fce303, #fd3714, #ff106b);
	background-size: 400% 400%;
	animation: anime-gradient 5s ease infinite;
	border-radius: 3px;
}

.contentTitle span{
	display: block;
	margin: 0 auto 24px;
	padding-top: 12px;
	width: 160px;
	font-size: 1.4rem;
}

@media print, ( min-width : 1025px ){
	.contentTitle{
		margin-bottom: 96px;
		font-size: 4rem;
	}
	.contentTitle:before{
		width: 25%;
	}
}

.contentTitle-wh{
	color: #fff;
}

.contentTitle-wh:before{
	background: #fff;
}

.contentTitle-sub{
	margin-bottom: 24px;
    font-size: 3.2rem;
    font-weight: bold;
	text-align: center;
    color: #fd930b;
}

.contentTitle-sub span{
	display: block;
	font-size: 1.4rem;
}

@media print, ( min-width : 1025px ){
	.contentTitle-sub{
		text-align: left;
	}
	
	.contentTitle-sub span{
		display: inline-block;
		margin-left: 16px;
	}
}

.contentTitle-sub:not(:first-child){
	margin: 96px auto 24px;
}

.ttl{
	margin-bottom: 16px;
	text-align: center;
	font-size: 2.0rem;
}

.en{
	font-weight: 900;
	font-family: 'Orbitron', sans-serif;
}

.circle{
	display: block;
    width: 80px;
    height: 80px;
    line-height: 80px;
    text-align: center;
    color: #fff;
	background: #ff9100;
    border-radius: 50%;
}

/*------------------------------------
ボタン/リンク
------------------------------------*/
.btn{
	padding: 1em .5em;
	width: 33%;
	color:var(--main-btn-text-color);
	background: var(--main-btn-background-color);
	width: 100%;
	border-radius: 32px;
}

.btn-border{
	color:var(--main-btn-text-color);
	background: none;
	border:2px solid #fff;
	border-radius: 64px;
}

.btn.toHome{
	margin: 48px auto 0;
	color: #3cab91;
	background: #fff;
	border:2px solid #3cab91;
}

#scrollToTop{
	right: 8px;
	bottom: 192px;
	color: #d4d4d4;
}

.textLink{
	text-decoration: none;
	color: #003d88;
    border-bottom: 1px dashed #1867c7;
}

/*------------------------------------
汎用BOX
------------------------------------*/
.borderedBox{
	padding: 56px 16px;
	height: 100%;
	background: #fff;
	border: 1px solid var(--border-color);
	border-radius: 8px;
	box-shadow: 0 0 5px #e7e7e7;
}

/*------------------------------------
ホーム
------------------------------------*/
/*紹介*/
#introduction{
	background: linear-gradient(135deg,rgb(235 221 35 / .5), rgb(235 102 25 / .7));
}

/*背景画像部分*/
#introduction:before{
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: inherit;
	height: inherit;
	background: url(../img/common/bg-introduction.jpg) center center;
	background-size: cover;
	background-repeat: no-repeat;
	z-index: -2;
	-ms-filter: blur(2px);
	filter: blur(2px);
}

#introduction.area{
	padding: 0;
	height: 100vh;
	position: relative;
}

/*ロゴ*/
.introduction_logoBox{
	padding: 0;
	height: 50%;
	display: flex;
	justify-content: center;
	align-items: center;
}

.logo{
	display: block;
	font-size: 48px;
	font-weight: bold;
	text-align: center;
	color: #fff;
	-webkit-tap-highlight-color: rgba(0,0,0,0);
}

.introduction_textBox{
	padding: 0 16px;
	background: none;
	height: 50%;
}

@media print, ( min-width : 1025px ){
	#introduction{
		min-height: auto;
		height: calc(100vh - 80px);
		background: none;
		display: flex;
		justify-content: center;
		align-items: center;
	}

	.introduction_logoBox,.introduction_textBox{
		width: 50%;
		height: inherit;
		display: flex;
		flex-wrap: wrap;
		justify-content: center;
		align-items: center;
	}

	.logo{
		font-size: 96px;
	}

	.introduction_textBox{
		margin-top: 0;
		padding: 56px;
		background: linear-gradient(135deg,rgb(235 221 35 / .5), rgb(235 102 25 / .7));
	}
}

.introduction_textBox .text{
	font-weight: bold;
	text-align: center;
	color:#fff;
}

@media print, ( min-width : 1025px ){
	.introduction_textBox .text{
		font-size: 1.8rem;
	}
}

.leadText{
	line-height: 2;
}

/*事業内容*/
.serviceList_item{
	margin:0 auto;
}

@media print, ( min-width : 1025px ){
	.serviceList_item{
		margin:0;
	}
}

.serviceList_item .ttl{
	margin-bottom: 16px;
	padding: .5em 0;
	text-align: center;
}

.serviceList_item .thumb{
	height: 208px;
	object-fit: contain;
}

.serviceList_item .text{
	margin: 24px auto 0;
}

/*実績紹介*/
#works{
	background:#eb6619;
	background: linear-gradient(-135deg,#ebdd19, #eb6619);
}

#works .slideBox{
	overflow: hidden;
}

#works .slideBox .slide_item{
	padding: 32px;
	outline: none
}

.worksList_item .ttl{
	margin-bottom: 16px;
	padding: .5em;
	text-align: center;
	color: #fff;
}

#works .slideBox .slide_item img{
	object-fit: cover;
    width: 480px;
    margin: auto;
}

/*開発・制作の流れ*/
#flow .contentTitle{
	margin-bottom: 128px;
}

.flowList_item{
	margin:0 auto 56px;
	position: relative;
}

.flowList_item .ttl{
	margin-bottom: 16px;
	padding: .5em;
	text-align: center;
}

.flowList_item .circle{
	position:absolute;
	margin: 0 auto;
    top: -40px;
    left: 0;
    right: 0;
}

/*ニュース*/
.newsList{
	height: 480px;
	overflow-y:scroll;
}

.newsList_item{
	padding: 8px 8px 16px;
	border-bottom: 1px solid #eee;
}

.newsList_item .date{
	margin-bottom: 16px;
	font-size: 1.3rem;
	color: #9e9e9e;
}

.sodanchanChat{
	margin: 0 auto;
}

.sodanchanApp{
	margin: 0 auto;
	position: relative;
}

.storeLinks{
	position: absolute;
    left: 12px;
	bottom: 28%;
	width: 40%;
    display: flex;
	flex-direction: column;
    justify-content: center;
    align-items: center;	
}

.toGoogleStore,.toAppStore{
	display: block;
	width: 100%;
}

.toGoogleStore img{
	object-fit: cover;
}

.toAppStore img{
	object-fit: cover;
	display: block;
	width: 87%;
	margin: 0 auto;
}


@media print, ( min-width : 1025px ){
	.storeLinks{
		left: 20px;
		bottom: 130px;
	}

	.toGoogleStore,.toAppStore{
		width: 200px;
	}
	
	.toAppStore img{
		width: 175px;
	}
	
}

/*------------------------------------
事業内容
------------------------------------*/
/*スマートフォンアプリ開発*/
.functionList_item{
	margin: 0 auto;
}

.functionList_item .ttl {
    margin-bottom: 16px;
    padding: .5em;
    text-align: center;
}

.functionList_item .thumb{
    height: 208px;
    object-fit: contain;
}

.functionList_item .text {
    margin: 40px auto;
}

/*------------------------------------
採用情報
------------------------------------*/
.recruitBox{
	padding: 32px 8px;
}

#recruit{
	background: url(../img/common/bg-recruit.jpg) center center;
	background-size: cover;
	background-repeat: no-repeat;
	position: relative;
}

#recruit::before{
	content: "";
	width: 100%;
	height: 100%;
	background: rgba(255, 255, 255, .9);
	position: absolute;
	top: 0;
	left: 0;
}

.recruitDetailsTable th{
	width: 20%;
	font-weight: bold;
}

.recruitDetailsTable td{
	width: 80%;
}

@media print, ( min-width : 1025px ){
	.recruitBox{
		padding: 56px 16px;
	}
	.recruitDetailsTable td{
		height: 120px;
	}
}

/*------------------------------------
問合せ
------------------------------------*/
.formBox{
	border: 1px solid #e5e5e5;
	background: #fff;
}

@media print, ( min-width : 1025px ){
	.formBox{
		padding: 16px 80px;
	}
}

.formBox_row .ttl{
	font-size: 1.5rem;
}

.errorMsgBox{
	padding: 16px;
	text-align: center;
	font-weight: normal;
	color: #f52828;
	border: 1px solid #f52828;
	border-radius: 2px;
	display: none;
}

.errorText:not(:last-child){
	margin-bottom: 4px;
}

.contactList_item{
	margin: 0 auto;
}

.phoneNumber{
	width: 100%;
	margin: 32px auto 16px;
	padding: .125em 0.5em;
	font-size: 3.2rem;
	text-align: center;
	font-weight: bold;
	color: #fff;
	background: #00b98e;
	background: linear-gradient(90deg, #00b90f, #2bb900, #33c53f);
    border-radius: 32px;
}

/*------------------------------------
会社概要
------------------------------------*/
#company.area{
	padding-bottom:0 ;
}

/*地図*/
#map{
	height: 480px;
	margin: 24px auto 0;
	border: 4px solid #fafafa;
	overflow: hidden;
}

#map iframe{
	display: block;
	width: 100%;
	height: inherit;
	border: none;
}

@media print, ( min-width : 1025px ){
	#map{
		height: 960px;
	}
}

/*------------------------------------
プライバシーポリシー
------------------------------------*/