/* ヘッダー
=========================================================================
=========================================================================*/
body.is-mobile header .pc {
	display: none;
}

body.is-mobile header .sp {
	display: block;
}

header {
	position: sticky;
	top: 0;
	left: 0;
	width: 100%;
	height: 100px;
	margin: 0;
	padding: 0;
	background: rgba(255,255,255,0.8);
	z-index: 99;
}

body.is-mobile header {
	height: 50px;
}

#header {
	height: 100%;
	padding: 0 calc(20vw / 14) 0 0;
}

header + article {
	position: relative;
	z-index: 1;
}




/* ロゴ
-----------------------------------------------------------*/
#header h1 {
	position: relative;
	display: flex;
	justify-content: center;
	align-items: center;
	width: min(360px, calc(321vw / 14));
	height: 100%;
	margin: 0;
	padding: 0 calc(20vw / 14) 0;
	z-index: 100;
}

#header h1 a {
	display: block;
	width: 100%;
	width: min(321px, calc(321vw / 14));
	height: min(61px, calc(61vw / 14));
	margin: 0;
	padding: 0;
	overflow: hidden;
	text-indent: 100%;
	white-space: nowrap;
	background: url("/img/logo.png") no-repeat center center / contain;
}




/* グローバルナビ
-----------------------------------------------------------*/
nav#global {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	margin: 0;
	padding: 0 calc(35vw / 14) 0 calc(350vw / 14);
	z-index: 99;
}

@media screen and (min-width: 981px) {
	body.is-pc nav#global {
		display: block!important;
	}
}

.g_navi {
	display: -webkit-flex;
	display: -ms-flex;
	display: flex;
	gap: calc(5vw / 14);
	margin: 0 auto;
	padding: 0;
	height: 100%;
	justify-content: space-between;
	align-items: center;
}

.g_navi a {
	text-decoration: none;
}

.g_navi .g_navi__head {
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
	width: 100%;
	font-weight: 600;
}

.g_navi .g_navi__text {
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5rem;
	width: 100%;
	height: 100%;
	transition: .8s;
	position: relative;
	top: -1rem;
	white-space: nowrap;
}

.g_navi .g_navi__head.is-current {
	background: rgba(14,70,158,0.1);
}

.g_navi .g_navi__head.service_link .g_navi__text,
.g_navi .g_navi__head.case_link .g_navi__text {
	font-size: 2.4rem;
	top: -.2rem;
}

.g_navi .g_navi__head.service_link .g_navi__text::before,
.g_navi .g_navi__text::after {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	bottom: 1.5rem;
	margin: auto;
	display: inline-block;
	transition: .3s;
}

.g_navi .g_navi__head.service_link .g_navi__text::before,
.g_navi .g_navi__head.service_link .g_navi__text::after {
	bottom: 1.5rem;
	width: 2.6rem;
	height: 1rem;
	background: url("../img/common/ico_arrow.svg") no-repeat center center / contain;
}

.g_navi .g_navi__head.service_link .g_navi__text::before {
	opacity: 0;
}

.g_navi .g_navi__head.service_link.is-current .g_navi__text::before {
	display: inherit;
	bottom: .8rem;
	opacity: 1;
}

.g_navi .g_navi__head.tips_link .g_navi__text::after {
	background: url("../img/common/ico_tips.svg") no-repeat center center / contain;
	bottom: .3rem;
	width: 2.3rem;
	height: 3.1rem;
}

.g_navi .g_navi__head.column_link .g_navi__text::after {
	background: url("../img/common/ico_trend.svg") no-repeat center center / contain;
	bottom: .8rem;
	width: 2.2rem;
	height: 2.3rem;
}

.g_navi .g_navi__head.download_link .g_navi__text::after {
	background: url("../img/common/ico_dl.svg") no-repeat center center / contain;
	bottom: .8rem;
	width: 2.9rem;
	height: 2.2rem;
}

.g_navi .g_navi__head.company_link .g_navi__text::after {
	background: url("../img/common/ico_company.svg") no-repeat center center / contain;
	bottom: .8rem;
	width: 2rem;
	height: 2.2rem;
}

.g_navi .g_navi__head.contact_link .g_navi__text::after {
	background: url("../img/common/ico_contact.svg") no-repeat center center / contain;
	bottom: .8rem;
	width: 2.7rem;
	height: 2.1rem;
}




/* サブメニュー
-----------------------------------------------------------*/
.g_navi .sub_menu_conainer {
	display: none;
	position: fixed;
	top: 100px;
	left: 0;
	width: 100%;
	padding: calc(50vw / 14) 0;
	border-top: 1px solid #2259b6;
	z-index: 99;
	background: rgba(1,56,149,0.9);
}

.g_navi .p-sub_menuListWrap {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: calc(25vw / 14);
	margin: auto;
}

.g_navi .p-sub_menuListWrap.company {
	justify-content: flex-end;
	width: 90%;
}

.g_navi .p-sub_menuListWrap.service {
	width: calc(1000vw / 14);
}

@media screen and (max-width: 1400px) {
	.g_navi .p-sub_menuListWrap.service {
		width: 89%;
	}
}

.g_navi .c-sub_menuList {
	display: flex;
}

.g_navi .c-sub_menuList__head {
	color: #fff;
	font-size: 1.8rem;
	border-right: 1px solid #C4D1E6;
	padding: 0 calc(30vw / 14) 0 0;
	line-height: 1.5;
	white-space: nowrap;
	text-align: left;
}

.g_navi .c-sub_menuList__head::after {
	display: block;
	content: "";
	margin: auto;
}

.g_navi .c-sub_menuList.pci .c-sub_menuList__head::after {
	background: url("/img/common/ico_pci.svg") no-repeat center center / contain;
	width: 5.4rem;
	height: 4.2rem;
	margin-top: 2rem;
}

.g_navi .c-sub_menuList.isms .c-sub_menuList__head::after {
	background: url("/img/common/ico_isms.svg") no-repeat center center / contain;
	width: 3.9rem;
	height: 3.9rem;
	margin-top: 2.3rem;
}

.g_navi .c-sub_menuList.company .c-sub_menuList__head::after {
	background: url("/img/common/ico_company_white.svg") no-repeat center center / contain;
	width: 3.1rem;
	height: 3.4rem;
	margin-top: 1.6rem;
}

.g_navi .c-sub_menuList__main {
	padding: 0 0 0 calc(25vw / 14);
	text-align: left;
	color: #fff;
}

.g_navi .c-sub_menuItemList__item {
	line-height: 1.5;
}

.g_navi .c-sub_menuItemList__item a {
	color: #fff;
	display: block;
	font-size: 1.5rem;
}

.g_navi .c-sub_menuItemList__item:first-of-type a {
	padding-bottom: .6em;
	font-weight: 500;
}

.g_navi .c-sub_menuItemList__item:not(:first-of-type) a {
	padding: .6em 0;
}

/* 電話と言語 */
.p-phoneLanguageArea {
	position: absolute;
	right: 0;
	z-index: 100;
	background: url("/img/common/bg_phone_lang.svg") no-repeat left bottom / cover;
	display: flex;
	gap: 2rem;
	padding: .2rem 2rem .2rem 2rem;
}

.p-phoneLanguageArea::before {
	content: "";
	display: inline-block;
	width: 2rem;
	height: auto;
	background: #013895;
	transform: rotate(45deg);
	margin-left: -10px;
	position: absolute;
	left: 0;
	top: 0;
}

.p-phoneLanguage__item {
	line-height: 1;
	color: #fff;
}

.p-phoneLanguage__item.form {
	display: none;
}

.p-phoneLanguage__item.phone::before {
	content: "";
	display: inline-block;
	background: url("/img/common/ico_phone.svg") no-repeat center center / contain;
	width: 1.95rem;
	height: 1.95rem;
	vertical-align: -30%;
	margin-right: .5rem;
}

.p-phoneLanguage__item.form::before {
	content: "";
	display: inline-block;
	background: url("/img/common/ico_contact_white.svg") no-repeat center center / contain;
	width: 1.95rem;
	height: 1.95rem;
	vertical-align: -30%;
	margin-right: .5rem;
}

.p-phoneLanguage__item a,
.p-phoneLanguage__item a:link,
.p-phoneLanguage__item a:focus,
.p-phoneLanguage__item a:visited,
.p-phoneLanguage__item a:hover {
	color: #fff;
	text-decoration: none;
}

.p-phoneLanguage__item a {
	font-size: 1.2rem;
}

.c-languageLinkList {
	display: flex;
	list-style: none;
	justify-content: space-between;
	align-items: center;
	gap: .5rem;
	margin-top: -.25rem;
}

.c-languageLinkList__item a:link,
.c-languageLinkList__item a:focus,
.c-languageLinkList__item a:visited,
.c-languageLinkList__item a:hover {
	color: #A0A0A0;
}
.c-languageLinkList__item a:hover {
	color: #fff;
}

.c-languageLinkList__item.is-active a:link,
.c-languageLinkList__item.is-active a:focus,
.c-languageLinkList__item.is-active a:visited,
.c-languageLinkList__item.is-active a:hover {
	color: #fff;
}

.p-gNaviLanguages {
	display: none;
}




/* ハンバーガーメニュー　※モバイル時表示
-----------------------------------------------------------*/
/* メニューボタン */
.header_menu {
	display: none;
	position: absolute;
	right: 0;
	top: 0;	
	cursor: pointer;
	z-index: 99;
}

.icon-animation {
	width: 30px;
	height: 30px;
	display: block;
	position: absolute;
	right: 20px;
	top: 10px;
	z-index: 98;
}

.icon-animation span {
	width: 30px !important;
	height: 4px;
	display: block;
	background: #2259b6;
	position: absolute;
	top: 50%;
}
.icon-animation span {
	-webkit-transition: all 0.5s;
	transition: all 0.5s;
	-webkit-transform: translateY(0px) !important;
	-ms-transform: translateY(0px) !important;
	transform: translateY(0px) !important;
}
.icon-animation .top {
	margin-top: -8px;
	-webkit-transform: rotate(0deg) !important;
	-ms-transform: rotate(0deg) !important;
	transform: rotate(0deg) !important;
}
.icon-animation .bottom {
	margin-top: 8px;
	-webkit-transform: rotate(0deg) !important;
	-ms-transform: rotate(0deg) !important;
	transform: rotate(0deg) !important;
}
.icon-animation.is-open .middle {
	background: rgba(255, 255, 255, 0);
}
.icon-animation.is-open .top {
	-webkit-transform: rotate(-405deg) !important;
	-ms-transform: rotate(-405deg) !important;
	transform: rotate(-405deg) !important;
	margin-top: 0px;
	background: #2259b6;
}
.icon-animation.is-open .bottom {
	-webkit-transform: rotate(405deg) !important;
	-ms-transform: rotate(405deg) !important;
	transform: rotate(405deg) !important;
	margin-top: 0px;
	background: #2259b6;
}




/*  モバイル ※SP、タブレット実機表示時
=========================================================================
=========================================================================*/
html.is-fixed {
	height: 100%;
	overflow-y: hidden;
}

body.is-mobile header {
	background: #FFF;
}

body.is-mobile #header{
	width: 100%;
	padding: 0;
}

/* ロゴ
-----------------------------------------------------------*/
	body.is-mobile #header h1 {
		width: auto;
		height: 50px;
		padding-left: 1.8rem;
		justify-content: flex-start;
		z-index: 98;
	}

	body.is-mobile #header h1 a {
		width: 266px;
		height: 45px;
		background: url(../img/logo.png) right center no-repeat / contain;
	}




/* グローバルナビ
-----------------------------------------------------------*/
body.is-mobile .header_menu {
	display: inherit;
}

body.is-mobile nav#global {
	display: none;
	position: fixed;
	top: 50px;
	width: 100%;
	height: 100%;
	padding: 2.8rem 0 100px 0;
	background-color: #0E5BDD;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
	border-top: 1px solid #CCC;
}

body.is-mobile ul.g_navi {
	flex-direction: column;
	gap: 0;
	width: 100%;
	height: auto;
	text-align: left;
	overflow: auto;
	-webkit-overflow-scrolling: touch;
}

body.is-mobile .g_navi .g_navi__head {
	border-bottom: 1px solid #fff;
	flex-direction: column;
}

body.is-mobile .g_navi .g_navi__head:first-of-type {
	border-top: 1px solid #fff;
}

body.is-mobile .g_navi .g_navi__text {
	color: #fff;
	font-size: 1.6rem;
	top: 0;
	font-weight: 500;
	justify-content: space-between;
	padding: .8em  2.5em 1em 30px;
}

body.is-mobile .g_navi .g_navi__head .g_navi__text::after {
	display: none;
}

body.is-mobile .g_navi .g_navi__head.service_link .g_navi__text,
body.is-mobile .g_navi .g_navi__head.case_link .g_navi__text {
	font-size: 1.6rem;
	top: 0;
}

body.is-mobile .g_navi .g_navi__head.service_link .g_navi__text::before {
	display: none;
}

body.is-mobile .g_navi .g_navi__head.service_link .g_navi__text::after,
body.is-mobile .g_navi .g_navi__head.company_link .g_navi__text::after {
	display: inherit;
	background: url("../img/common/ico_arrow_white.svg") no-repeat center center / contain;
	width: 2.6rem;
	height: 1rem;
	margin: 0;
	right: 0;
	left: 0;
	bottom:0;
	top: 0;
	position: relative;
	margin-bottom: -.5rem;
}

body.is-mobile .g_navi .g_navi__head.service_link .g_navi__text.active::after,
body.is-mobile .g_navi .g_navi__head.company_link .g_navi__text.active::after {
	transform: rotate(180deg);
}

body.is-mobile .c-languageLinkList {
	display: none;
}




/* サブメニュー
-----------------------------------------------------------*/
body.is-mobile .g_navi .p-sub_menuListWrap {
	margin: 0;
}

body.is-mobile .sub_menu_conainer {
	display: none;
	position: relative;
	top: 0;
	left: 0;
	width: 100%;
	margin: 0;
	padding: 0 30px 10px 45px;
	border-top: none;
	z-index: 1;
	background: #0E5BDD;
}

body.is-mobile .g_navi .p-sub_menuListWrap {
	flex-direction: column;
	gap: 2rem;
}

body.is-mobile .g_navi .c-sub_menuList {
	flex-direction: column;
}

body.is-mobile .g_navi .c-sub_menuList__head {
	border: none;
	white-space: normal;
	font-size: 1.4rem;
	font-weight: 500;
}

body.is-mobile .g_navi .c-sub_menuList.company .c-sub_menuList__head {
	display: none;
}

body.is-mobile .g_navi .c-sub_menuList__head::after {
	display: none;
}

body.is-mobile .g_navi .c-sub_menuList__main {
	padding-left: 0;
	margin-top: 1em;
}

body.is-mobile .g_navi .c-sub_menuList__main.noSubtitle {
	margin-top: 0;
}

body.is-mobile .g_navi .c-sub_menuItemList__item a::before {
	content: "＞";
	display:inline-block;
	vertical-align: 2%;
	margin-right: .3em;
	font-size: 80%;
}

/* 言語 */
body.is-mobile .p-gNaviLanguages {
	display: block;
	text-align: center;
	margin-top: 4rem;
}

body.is-mobile .p-gNaviLanguages__item {
	display: inline-block;
	color: #fff;
}
body.is-mobile .p-gNaviLanguages__item__link {
	font-size: 1.6rem;
	font-weight: 500;
}

body.is-mobile .p-gNaviLanguages__item__link:link,
body.is-mobile .p-gNaviLanguages__item__link:focus,
body.is-mobile .p-gNaviLanguages__item__link:active,
body.is-mobile .p-gNaviLanguages__item__link:visited,
body.is-mobile .p-gNaviLanguages__item__link:hover {
	color: #A0A0A0;
	text-decoration: none;
}

body.is-mobile .p-gNaviLanguages__item__link.is-active:link,
body.is-mobile .p-gNaviLanguages__item__link.is-active:focus,
body.is-mobile .p-gNaviLanguages__item__link.is-active:active,
body.is-mobile .p-gNaviLanguages__item__link.is-active:visited,
body.is-mobile .p-gNaviLanguages__item__link.is-active:hover {
	color: #fff;
}

body.is-mobile .p-phoneLanguage__item.form {
	display: block;
}




	/*  デスクトップ&タブレット（～980px）
=========================================================================
=========================================================================*/
@media (max-width:980px) {
	/* ヘッダー
	=========================================================================
	=========================================================================*/
	header {
		height: 50px;
		background: #FFF;
	}

	#header{
		width: 100%;
		padding: 0;
	}




	/* ロゴ
	-----------------------------------------------------------*/
	#header h1 {
		width: auto;
		height: 50px;
		padding-left: 1.8rem;
		justify-content: flex-start;
		z-index: 98;
	}

	#header h1 a {
		width: 266px;
		height: 45px;
		background: url(../img/logo.png) right center no-repeat / contain;
	}




	/* グローバルナビ
	-----------------------------------------------------------*/
	.header_menu {
		display: inherit;
	}

	nav#global {
		display: none;
		position: fixed;
		top: 50px;
		width: 100%;
		height: 100%;
		padding: 2.8rem 0 100px 0;
		background-color: #0E5BDD;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
		border-top: 1px solid #CCC;
	}

	ul.g_navi {
		flex-direction: column;
		gap: 0;
		width: 100%;
		height: auto;
		text-align: left;
		overflow: auto;
		-webkit-overflow-scrolling: touch;
	}

	.g_navi .g_navi__head {
		border-bottom: 1px solid #fff;
		flex-direction: column;
	}

	.g_navi .g_navi__head:first-of-type {
		border-top: 1px solid #fff;
	}

	.g_navi .g_navi__text {
		color: #fff;
		font-size: 1.6rem;
		top: 0;
		font-weight: 500;
		justify-content: space-between;
		padding: .8em  2.5em 1em 30px;
	}

	.g_navi .g_navi__head .g_navi__text::after {
		display: none;
	}

	.g_navi .g_navi__head.service_link .g_navi__text,
	.g_navi .g_navi__head.case_link .g_navi__text {
		font-size: 1.6rem;
		top: 0;
	}

	.g_navi .g_navi__head.service_link .g_navi__text::before {
		display: none;
	}

	.g_navi .g_navi__head.service_link .g_navi__text::after,
	.g_navi .g_navi__head.company_link .g_navi__text::after {
		display: inherit;
		background: url("../img/common/ico_arrow_white.svg") no-repeat center center / contain;
		width: 2.6rem;
		height: 1rem;
		margin: 0;
		right: 0;
		left: 0;
		bottom:0;
		top: 0;
		position: relative;
		margin-bottom: -.5rem;
	}

	.g_navi .g_navi__head.service_link .g_navi__text.active::after,
	.g_navi .g_navi__head.company_link .g_navi__text.active::after {
		transform: rotate(180deg);
	}

	.c-languageLinkList {
		display: none;
	}




	/* サブメニュー
	-----------------------------------------------------------*/
	.g_navi .p-sub_menuListWrap {
		margin: 0;
	}

	.g_navi .sub_menu_conainer {
		display: none;
		position: relative;
		top: 0;
		left: 0;
		width: 100%;
		margin: 0;
		padding: 0 30px 10px 45px;
		border-top: none;
		z-index: 1;
		background: #0E5BDD;
	}

	.g_navi .p-sub_menuListWrap {
		flex-direction: column;
		gap: 2rem;
	}

	.g_navi .c-sub_menuList {
		flex-direction: column;
	}

	.g_navi .c-sub_menuList__head {
		border: none;
		white-space: normal;
		font-size: 1.4rem;
		font-weight: 500;
	}

	.g_navi .c-sub_menuList.company .c-sub_menuList__head {
		display: none;
	}

	.g_navi .c-sub_menuList__head::after {
		display: none;
	}

	.g_navi .c-sub_menuList__main {
		padding-left: 0;
		margin-top: 1em;
	}

	.g_navi .c-sub_menuList__main.noSubtitle {
		margin-top: 0;
	}

	.g_navi .c-sub_menuItemList__item a::before {
		content: "＞";
		display:inline-block;
		vertical-align: 2%;
		margin-right: .3em;
		font-size: 80%;
	}

	/* 言語 */
	.p-gNaviLanguages {
		display: block;
		text-align: center;
		margin-top: 4rem;
	}

	.p-gNaviLanguages__item {
		display: inline-block;
		color: #fff;
	}
	.p-gNaviLanguages__item__link {
		font-size: 1.6rem;
		font-weight: 500;
	}

	.p-gNaviLanguages__item__link:link,
	.p-gNaviLanguages__item__link:focus,
	.p-gNaviLanguages__item__link:active,
	.p-gNaviLanguages__item__link:visited,
	.p-gNaviLanguages__item__link:hover {
		color: #A0A0A0;
		text-decoration: none;
	}

	.p-gNaviLanguages__item__link.is-active:link,
	.p-gNaviLanguages__item__link.is-active:focus,
	.p-gNaviLanguages__item__link.is-active:active,
	.p-gNaviLanguages__item__link.is-active:visited,
	.p-gNaviLanguages__item__link.is-active:hover {
		color: #fff;
	}

	.p-phoneLanguage__item.form {
		display: block;
	}
}




 /*  スマホ（740px以下）
=========================================================================
=========================================================================*/
@media (max-width:740px) {

	/* ロゴ
	-----------------------------------------------------------*/
	#header h1 {
		width: auto;
		height: 50px;
		padding-left: 1.8rem;
	}

	#header h1 a {
		width: 266px;
		height: 45px;
		background: url(../img/logo.png) right center no-repeat / contain;
	}

	.p-phoneLanguage__item.phone a {
		font-size: 1.4rem;
	}

}




  /*  スマホ（480px以下）
=========================================================================
=========================================================================*/
 @media (max-width:480px) {
 	/* ロゴ
	-----------------------------------------------------------*/
	#header .header_logo h1 {
		width: 200px;
		height: 23px;
	}
	#header .header_logo h1 a {
		width: 200px;
		height: 23px;
		margin: 25px 0 0 15px;
	}
}




  /*  スマホ（340px以下）
=========================================================================
=========================================================================*/
 @media (max-width:340px) {
 	/* ロゴ
	-----------------------------------------------------------*/
	body.is-mobile #header h1 {
		padding-left: .5rem;
	}

	body.is-mobile #header h1 a {
		width: 250px;
	}
}









