@charset "UTF-8";

/*****************************************
共通ヘッダー
******************************************/
.c-header-upper {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 90px;
	padding: 0 50px;
	background-color: #fff;
}

@media all and (max-width: 768px) {
	.c-header {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		z-index: 10;
		-webkit-box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
		box-shadow: 0 0 4px 0 rgba(0, 0, 0, 0.25);
	}
}

@media all and (max-width: 1440px) {
	.c-header-upper {
		padding-left: 20px;
		padding-right: 20px;
	}
}

@media all and (max-width: 1160px) {
	.c-header-upper {
		height: 56px;
		padding: 11px 15px 10px;
	}
}

.c-header-lower {
	position: relative;
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
	-webkit-box-pack: end;
	-webkit-justify-content: flex-end;
	-ms-flex-pack: end;
	justify-content: flex-end;
	padding: 0 50px;
	background-color: #ecf2f5;
}

@media all and (max-width: 1440px) {
	.c-header-lower {
		padding-left: 20px;
		padding-right: 20px;
	}
}

@media all and (max-width: 1160px) {
	.c-header-lower {
		height: 44px;
		padding: 0 15px 18px;
		background-color: #fff;
	}
}

.c-header-logo-wrap {
	display: -webkit-box;
	display: -webkit-flex;
	display: -ms-flexbox;
	display: flex;
	-webkit-box-align: center;
	-webkit-align-items: center;
	-ms-flex-align: center;
	align-items: center;
}

.c-header-logo>img {
	display: block;
	width: 150px;
	height: 31px;
}

@media all and (max-width: 1160px) {
	.c-header-logo>img {
		width: 110px;
		height: 23px;
	}
}

.c-header-site {
	position: relative;
	margin-left: 33px;
	padding-top: 20px;
	padding-left: 32px;
	font-weight: 600 !important;
	font-size: 1.4vw;
	color: #666;
	line-height: 1.4;
}

@media all and (max-width: 1160px) {
	.c-header-site {
		margin-left: 17px;
		padding-left: 15px;
		font-size: 1.8vw;
	}
}

@media all and (max-width: 320px) {
	.c-header-site {
		margin-left: 11px;
		padding-left: 9px;
	}
}

.c-header-site::before {
	position: absolute;
	top: 18px;
	left: 0;
	width: 1px;
	height: 30px;
	background-color: #ccc;
	content: '';
}

@media all and (max-width: 1160px) {
	.c-header-site::before {
		top: 4px;
		height: 23px;
	}
}

.c-header-util {
	padding-top: 5px;
}

.c-header-util a {
	font-weight: bold;
	color: #666;
	text-decoration: none;
}

.c-header-util .link-site {
	position: relative;
	padding-left: 35px;
	font-size: 1.2rem;
}

@media all and (max-width: 1160px) {
	.c-header-util .link-site {
		overflow: hidden;
		display: block;
		width: 24px;
		height: 24px;
		padding: 0;
		background: url(../img/header/ico_global.svg) center no-repeat;
		background-size: 24px;
		font-size: 0;
		text-indent: -999px;
	}
}

.c-header-util .link-site::before {
	position: absolute;
	top: 50%;
	left: 0;
	width: 23px;
	height: 23px;
	background: url(../img/header/ico_global.svg) no-repeat;
	background-size: 23px;
	-webkit-transform: translateY(-50%);
	-ms-transform: translateY(-50%);
	transform: translateY(-50%);
	content: '';
}

@media all and (max-width: 1160px) {
	.c-header-util .link-site::before {
		display: none;
	}
}

.c-header-util .box-header-lang {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	z-index: 11;
	display: none;
	width: 88px;
	background-color: #f8f8f8;
	-webkit-box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.3);
	box-shadow: 1px 1px 4px rgba(0, 0, 0, 0.3);
}

@media all and (max-width: 1160px) {
	.c-header-util .box-header-lang {
		top: 100px;
		left: 0;
		z-index: 10;
		width: 100%;
		background-color: #0099ff;
		-webkit-box-shadow: none;
		box-shadow: none;
	}
}

@media all and (max-width: 1160px) {
	.c-header-util .box-header-lang .list-lang {
		padding: 0 10px;
	}
}

.c-header-util .box-header-lang .list-lang>li {
	border-bottom: 1px solid #ccc;
}

.c-header-util .box-header-lang .list-lang>li:last-child {
	border-bottom: none;
}

@media all and (max-width: 1160px) {
	.c-header-util .box-header-lang .list-lang>li {
		border-color: #fff;
	}
}

.c-header-util .box-header-lang .list-lang a {
	display: block;
	padding: 12px 10px;
	font-size: 1.3rem;
	font-weight: normal;
	text-align: center;
	text-decoration: none;
}

.c-header-search {
	position: absolute;
	right: 20%;
	top: 3rem;
}

@media (max-width: 1200px) {
	.c-header-search {
		right: 30%;
	}
}

@media (max-width: 1160px) {
	.c-header-search {
		top: 2rem;
	}
}

@media (max-width: 768px) {
	.c-header-search {
		top: 90%;
		right: 15%;
		position: fixed;
		z-index: 999999;
	}
}

.addsearch {
	display: none;
}

.c-header-search .icon-search {
	position: absolute;
	top: -0.5rem;
	right: -3rem;
	display: block;
	width: 2.5rem;
	height: 2.5rem;
	background: url(../img/header/ico_search_blue_01.svg) center no-repeat;
	background-color: #fff;
	background-size: 20px;
	border-radius: 10px;
	cursor: pointer;
}

@media (max-width: 768px) {
	.c-header-search .icon-search {
		border: 1px solid #09f;
	}

	.addsearch {
		display: block;
		padding: 0.5rem;
		transform: translateY(-0.3rem);
	}
}

.c-header-upper #language li,
.c-header-upper #language p {
	float: none;
}

.c-header-upper #language {
	top: 2.25rem;
	left: 75%;
	min-width: 35px;
	z-index: 999999;
	margin: 5px 0 0 15px;
	cursor: pointer;
	width: 125px;
}

@media (max-width: 1200px) {
	.c-header-upper #language {
		left: 70%;
	}
}

@media (max-width: 1160px) {
	.c-header-upper #language {
		top: 1.15rem;
	}
}

@media (max-width: 768px) {
	.c-header-upper #language {
		left: 60%;
	}
}

@media (max-width: 576px) {
	.c-header-upper #language {
		left: 55%;
	}
}
@media (max-width: 500px) {
	.c-header-upper #language {
		left: 47%;
	}
}

.c-header-upper #language .lang-list {
	display: none;
	width: 180px;
	background-color: #f8f8f8;
	box-shadow: 1px 1px 4px rgba(0, 0, 0, 30%);
	transform: translate(-10px, 10px);
	transition: 0.2s;
}

.c-header-upper #language .lang-list li {
	border-bottom: 1px solid #ccc;
	margin: 0;
	/*reset*/
	padding: 0;
	/*reset*/
	text-indent: 0;
	/*reset*/
	text-align: center;
	position: relative;
}

.c-header-upper #language .lang-list li a {
	display: block;
	width: 100%;
	height: 100%;
	padding:5px
}

.c-header-upper #language .lang-list a:link {
	display: block;
	padding: 7px 8px;
	color: #666;
	font-size: 0.95rem;
	text-align: center;
}

.c-header-upper #language .lang-list a:visited {
	color: #666;
}

.c-header-upper #language .lang-list a:hover {
	color: #fff;
	background: #09f;
	text-decoration: none !important;
}

.c-header-upper #language .list-open {
	display: block;
	transition: 0.2s;
}

.c-header-upper #language .lang-code {
	position: relative;
	font-weight: bold;
	background: url(../img/header/ico_lang.svg) no-repeat;
	background-size: 25px 23px;
	padding-left: 30px;
	padding-top: 5px;
	margin-bottom: 0;
	text-align: center;
}

.c-header-upper #language .lang-code:after {
	position: absolute;
	content: "";
	top: 10px;
	right: -2px;
	width: 4px;
	height: 4px;
	border-right: 1px solid #666;
	border-bottom: 1px solid #666;
	transform: rotate(45deg);
}

.c-header-upper #language .code-open:after {
	position: absolute;
	content: "";
	top: 13px;
	width: 4px;
	height: 4px;
	border-right: 1px solid #666;
	border-bottom: 1px solid #666;
	transform: rotate(-135deg);
}


/*********************************************
tt-net ヘッダー
**********************************************/
.ttnet_header {
	position: relative;
	background: #EDEDED;
	justify-content: space-between;
}
.ttnet_header_title {
	font-size: 1.3em;
}

.header_nav {
	display: flex;
	list-style: none;
}

.header_nav li a {
	font-size: 1.1em;
	opacity: 2.95;
}

.login_header {
	width: 100%;
	height: 1.5em;
}
/* ポインター */
.header_nav li,
.nav_hamburger ul {
	cursor: pointer;
	
}
/* メガメニューの背景色 */
.header_nav > li:hover {
	background-color: #FAFAFA;
}

/*** 縦線 *****************************************/
li.nav_productInfo::after {
	content: "";
	display: inline-block;
	width: 2px;
	height: 40px;
	background-color: #B3B3B3;
	position: absolute;
	top: 5px;
	right: 457px;
	z-index: 100;
}

li.nav_documentDL::after {
	content: "";
	display: inline-block;
	width: 2px;
	height: 40px;
	background-color: #B3B3B3;
	position: absolute;
	top: 5px;
	right: 307px;
	z-index: 100;
}

li.nav_solutionCase::after {
	content: "";
	display: inline-block;
	width: 2px;
	height: 40px;
	background-color: #B3B3B3;
	position: absolute;
	top: 5px;
	right: 140px;
	z-index: 100;
}
/*** 縦線:END　**************************************/

/****************************************
 メガメニュー本体
******************************************/
/* ホバー時に表示されるメインメニュー群 */
.gmenu_productInfo,
.gmenu_documentDL,
.gmenu_contactUs {
	width: 100%;
	position: absolute;
	top: 100%;
	/*親項目の直下に配置*/
	left: 0;
	padding: 1.5em;
	color: #333;
	background: #FAFAFA;
	z-index: 999;
	opacity: 0;
	visibility: hidden;
	transition:
		opacity 0.5s ease 0.25s,
		top 0.4s ease,
		visibility 0ms linear 0.5s;
}
 
/* ホバー時 */
li.nav_productInfo:hover .gmenu_productInfo,
li.nav_documentDL:hover .gmenu_documentDL,
li.nav_contactUs:hover .gmenu_contactUs {
	top: 100%;
	opacity: 1;
	visibility: visible;
	transition-delay: 0.25s;
	animation: fadeIn 3s forwards;
}

.nav_child {
	display: flex;
	justify-content: center;
}
.nav_child li a {
	color: #333;
}
.nav_child ul li {
	padding: 10px;
}
.nav_child ul li:hover {
	border-left: 3.5px solid #1A3BE3;
	background-color: #EDEDED;
}

/****************************************
 製品情報
******************************************/
.gmenu_productInfo {
	height:  var(--vh, 1vh);
	font-size: 1em;
}
.nav_productInfo ul li {
	padding: 10px;
}

/* 第一階層 */
.node_first {
	width: 280px;
	position: relative;
}
/* 第一階層のul */
.node_first ul {
	height: 95%;
	overflow-y: auto;
}

/* 各階層 */
.node_second,
.node_third,
.node_fourth {
	width: 280px;
	height: 100%;
}
.node_second ul,
.node_third ul,
.node_fourth ul {
	position: absolute;
	width: 280px;
	height: 95%;
	visibility: hidden;
	overflow-y: auto;
	opacity: 0;
	transition: 0.5s left, 0.2s opacity;
}

/* 表示中の要素 */
.node_second ul.active,
.node_third ul.active,
.node_fourth ul.active {
	visibility: visible;
	opacity: 1;
}

/* ホバー時のアニメーション */
.node_first ul li,
.node_second ul.active li,
.node_third ul.active li{
	transition: 0.1s all;
}
/* ホバー中の要素 */
.node_first ul li.hovered,
.node_second ul.active li.hovered,
.node_third ul.active li.hovered {
	border-left: 3px solid #1A3BE3;
	background-color: #EDEDED;
}
/* ホバー中の要素に下線を付与 */
.node_first ul li.hovered > a,
.node_second ul.active li.hovered > a,
.node_third ul.active li.hovered > a{
	background-image:linear-gradient(#1a3be3, #1a3be3);
    background-position: 100% 100%;
    background-repeat: no-repeat;
    background-size: 100% 1px;	
}
/* 製品詳細の背景色 */
.menu_node_fourth li {
	background-color: #EDEDED;
}
/* 製品詳細の画像 */
.gmenu_pdct_info img {
	width: 170px;
	height: 170px;
}
/* 1200px以下のデザイン */
@media screen and (max-width: 1200px) {
	/* ハンバーガーメニュー表示 */
	.hamburger_menu {
		display: block;
	}
	/* メガメニュー非表示 */
	.nav_gmenu {
		display: none;
	}
}

/* 1200px以上のデザイン */
@media screen and (min-width: 1201px) {
	/* ハンバーガーメニュー非表示 */
	.hamburger_menu,
	.nav_hamburger {
		display: none;
	}
}

/****************************************
ハンバーガーメニュー
******************************************/
.nav_hamburger {
	position: absolute;
	background: #FAFAFA;
	width: 100%;
	top: 99%;
	z-index: 10;
}
/* 各階層でスクロールするため */
.hamburger_menu_wrap{
	position: relative;
	background: #FAFAFA;
	z-index: 999;
	/*height: 500px;*/
	height: var(--vh, 1vh);
	overflow-y: auto;
	overflow-x: hidden;
}
/* 項目のフォント */
.nav_hamburger li a {
	font-size: 1.1em;
	color: #444;
}
/* 項目ホバー時 */
.nav_hamburger li:hover {
	border-left: 3px solid #1A3BE3;
	background-color: #EDEDED;
}
/* ハンバーガーメニュー内の戻るリンク */
.hamburger_back_link {
	width: 100%;
	padding-left: 1em;
	color: #444;
	cursor: pointer;
}
/* アニメーション */
.hamburger_documentDL,
.hamburger_contactUs,
.hamburger_productInfo_body .menu_node_first,
.hamburger_productInfo_body .menu_node_second,
.hamburger_productInfo_body .menu_node_third {
	position: absolute;
	top: 0;
	width: 100%;
	transform: translateX(1200px);
	transition: transform 0.4s ease;
}
/* 製品詳細の画像 */
.hamburger_pdct_img {
	height: 90px;
	width: 90px;
}
/* 製品詳細の説明文 */
.pdct_text{
	font-size: 0.95em;
	-webkit-line-clamp: 3; /* 3行以上になる場合、末尾を「...」にする */
    -webkit-box-orient: vertical;
    overflow: hidden;
    display: -webkit-box;
}

/* ハンバーガーメニューのマーク */
.hamburger_menu_btn {
	position: absolute;
	top: 0;
	right: 0;
	display: flex;
	height: 100%;
	width: 55px;
	justify-content: center;
	align-items: center;
	z-index: 90;
	background-color: #1A3BE3;
	color: #FFF;
}
.hamburger_menu span {
	top: 18px;
	color: #fff
}
.hamburger_menu_btn span,
.hamburger_menu_btn span:before,
.hamburger_menu_btn span:after {
	content: '';
	display: block;
	height: 3px;
	width: 25px;
	border-radius: 3px;
	background-color: #ffffff;
	position: absolute;
}
.hamburger_menu_btn span:before {
	bottom: 8px;
}
.hamburger_menu_btn span:after {
	top: 8px;
}
#hamburger_menu_btn_check:checked~.hamburger_menu_btn span {
	background-color: rgba(255, 255, 255, 0);
}
#hamburger_menu_btn_check:checked~.hamburger_menu_btn span::before {
	bottom: 0;
	transform: rotate(45deg);
}
#hamburger_menu_btn_check:checked~.hamburger_menu_btn span::after {
	top: 0;
	transform: rotate(-45deg);
}

#hamburger_menu_btn_check {
	display: none;
}
/* ハンバーガーメニューのマーク END */

/****************************************
右向き矢印アイコン
******************************************/
.arrow_r {
	position: relative;
	display: inline-block;
	padding-right: 1.5em;
}

.arrow_r::after {
	content: '';
	width: 6px;
	height: 6px;
	border: 0;
	border-top: solid 2px #c2c2c2;
	border-right: solid 2px #c2c2c2;
	transform: rotate(45deg);
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	margin: auto;
}


/****************************************
左向き矢印アイコン
******************************************/
.arrow_l {
	position: relative;
	display: inline-block;
	padding-left: 1em;
}

.arrow_l::after {
	content: '';
	width: 6px;
	height: 6px;
	border: 0;
	border-top: solid 2px #c2c2c2;
	border-right: solid 2px #c2c2c2;
	transform: rotate(225deg);
	position: absolute;
	top: 0;
	left: 0;
	bottom: 0;
	margin: auto;
}

/****************************************
スクロールバー
******************************************/
.menu_node_first::-webkit-scrollbar-track,
.menu_node_second::-webkit-scrollbar-track,
.menu_node_third::-webkit-scrollbar-track {
	background: rgba(217, 217, 217, 0);
	border-radius: 100px;
}

.menu_node_first::-webkit-scrollbar,
.menu_node_second::-webkit-scrollbar,
.menu_node_third::-webkit-scrollbar {
	width: 5px;
	height: 10px;
}

.menu_node_first::-webkit-scrollbar-thumb,
.menu_node_second::-webkit-scrollbar-thumb,
.menu_node_third::-webkit-scrollbar-thumb {
	background: #D9D9D9;
	border-radius: 100px;
}

.menu_node_first::-webkit-scrollbar-thumb:hover,
.menu_node_second::-webkit-scrollbar-thumb:hover,
.menu_node_third::-webkit-scrollbar-thumb:hover {
	background: #D9D9D9;
}


/* 背景オーバーレイ */
.overlay {
	position: fixed;
	top: 162px;
	left: 0;
	width: 100%;
	height: 100%;
	background: rgba(0, 0, 0, 0.5);
	z-index: 10;
	display: none;
 }

/****************************************
ヘッダーサブメニュー
******************************************/
@media screen and (max-width: 1200px) {
	.header_sub_menu {
		display: none;
	}
}
.header_sub_menu{
	background-color: #FAF6F6;
	height: 100px;
	align-items: center;
}
.sub_menu_product{
	padding-left: 80px;
}
.sub_menu_title {
	align-self: center;
}
.sub_menu_title::after {
	content: "";
	display: inline-block;
	width: 2px;
	height: 85px;
	background-color: #B3B3B3;
	position: absolute;
	top: -33px;
	right: -2px;
	z-index: 100;
}
.sub_menu_content{
	width: 550px;	
}
