@charset "utf-8";


@import url('https://fonts.googleapis.com/css?family=Noto+Sans+JP:300,400,500,700&display=swap');
@import url('https://fonts.googleapis.com/css?family=Kosugi+Maru&display=swap');

/* ============================================================================================
	CSS リセット
============================================================================================= */
* ,*:before ,*:after {
	box-sizing:border-box;
	text-size-adjust:100%;
	-webkit-text-size-adjust:100%;
	margin:0;
	padding:0;
	border:0 none;
	color:inherit;
	text-decoration:inherit;
	font-size:inherit;
	font-style:inherit;
	font-weight:inherit;
	vertical-align:baseline;
}

a ,a:link ,a:visited {
	text-decoration:none;
	transition:all 0.3s ease;
	-webkit-transition:all 0.3s ease;
}
a:hover {
	text-decoration:none;
}

img {
	max-width:100%;
}

ol ,ul ,li {
	list-style:none;
}
table {
	border-collapse:collapse;
	border-spacing:0;
}
blockquote ,q {
	quotes:none;
}
blockquote:before ,blockquote:after
,q:before ,q:after {
	content:'';
	content:none;
}

input ,select ,textarea {
	border:1px solid #ccc;
	border-radius:5px;
	background:#fff;
}



/* ============================================================================================
	共通設定
============================================================================================= */
html ,body {
	min-height:100%;
	height:100%;
}
body {
	font-size:16px;
	font-family:'Noto Sans JP',sans-serif;
	line-height:1.6;
}

button ,input ,textarea ,select {
	font-size:14px;
	padding:5px;
	letter-spacing:1px;
	font-family:'Noto Sans JP',sans-serif;
}
input[type="submit"] ,input[type="button"] ,button {
	font-size:16px;
	padding:0.3em 1.5em;
}





/* ============================================================================================
	ブロック設定
============================================================================================= */
#html-container {
	position:relative;
	width:100%;
	max-width:1920px;
	margin:0 auto;
	color:#333;
	text-shadow:1px 1px 0 #fff;
	background:url(images/body-bg.jpg) 50% 0 no-repeat #d6dfe4;
	background-size:3000px;
}

.contents-width {
	width:1200px;
	margin:0 auto;
}


.iframeOuter {
	overflow:auto;
	-webkit-overflow-scrolling:touch;
}
.iframeOuter iframe {
	display:block;
	width:100%;
	height:100%;
	height:-webkit-fill-available;
}


.nodisp {
	display:none !important;
}

.nopage {
	padding:60px 60px 200px;
}


/* ============================================================================================
	ヘッダー
============================================================================================= */
header {
	position:relative;
	z-index:200;
}



/* ==============================================
	h1
=============================================== */
#header-h1 {
	padding:5px 10px;
	font-weight:bold;
	background-color:#dde;
}



/* ==============================================
	ロゴ／お問合わせボタン
=============================================== */
#header-title {
	background:rgba(255,255,255,0.6);
	border-bottom:3px solid #004fa5;
	font-size:0;
}
#header-title .contents-width {
	padding-right:10px;
	display:flex;
	justify-content:space-between;
	align-items:center;
}

#header-title-contact a:hover {
	opacity:0.8;
}




/* ============================================================================================
	フッター
============================================================================================= */
footer {
	background:#49556c;
	padding:10px 0;
}



/* ==============================================
	フッターメニュー
=============================================== */
#footer-navi {
	display:flex;
	justify-content:flex-start;
	align-items:flex-start;
	padding-left:30px;
	padding-right:100px;
	color:#fff;
	text-shadow:1px 1px 0 #000;
}

.footer-navi-category {
	flex-grow:1;
	line-height:1.8;
}
.footer-navi-category h2 {
}
.footer-navi-category-sublist {
	padding-left:1em;
}
.footer-navi-category-sublist > li {
	font-size:14px;
}
.footer-navi-category-sublist > li > a:before {
	content:"\025B6";
}
.footer-navi-category-sublist > li > a:hover {
	text-decoration:underline;
}

.footer-navi-category-sublist a[target="_blank"]:after {
	content:'\f35d';
	margin-left:3px;
	font-size:0.9em;
	font-weight:900;
	font-family:'Font Awesome 5 Free';
	vertical-align:text-top;
}



/* ==============================================
	SNSボタン
=============================================== */
#footer-sns {
	padding:10px 20px;
	text-align:right;
}
#footer-sns a {
	display:inline-block;
	font-size:0;
}
#footer-sns a:hover {
	box-shadow:0 0 0 1px #ccc;
}



/* ==============================================
	フッターロゴ
=============================================== */
#footer-logo {
	text-align:center;
	padding-bottom:20px;
}
#footer-logo img {
	width:300px;
}



/* ==============================================
	コピーライト
=============================================== */
#footer-copyright {
	color:#333;
	background:#fff;
	text-align:center;
	font-size:14px;
	line-height:2;
}



/* ==============================================
	ページ上部へボタン
=============================================== */
#scrollTop {
	position:fixed;
	right:10px;
	bottom:10px;
	width:60px !important;
	height:60px !important;
	font-size:32px;
	color:#004fa5;
	background:#fff;
	border:2px solid #004fa5;
	border-radius:50%;
	z-index:110;
	overflow:hidden;
	display:flex;
	justify-content:center;
	align-items:center;
	text-align:center;
	cursor:pointer;
	transition:all 0.3s ease;
	-webkit-transition:all 0.3s ease;
}
#scrollTop:not(.on) {
	display:none;
}
#scrollTop:hover {
	color:#fff;
	background:#004fa5;
	border:2px solid #fff;
}
#scrollTop > span {
	width:100%;
	height:100%;
}




/* ============================================================================================
	メインコンテンツ
============================================================================================= */
main {
	padding:30px 0;
}



/* ==============================================
	タイトルイメージ
=============================================== */
.title-image {
	text-align:center;
	padding-bottom:30px;
}



/* ==============================================
	メインブロック
=============================================== */
section.main-block {
	padding:60px;
	background:rgba(255,255,255,0.9);
}



/* ==============================================
	メインブロック h2
=============================================== */
.content-h2 {
	text-align:center;
	padding-bottom:40px;
}
.content-h2 > div {
	line-height:1.2;
	letter-spacing:0.05em;
	text-indent:0.05em;
}
.content-h2-icon-circle {
	display:inline-block;
	width:110px;
	height:110px;
	padding:5px;
	border:3px solid #004fa5;
	border-radius:50%;
}
.content-h2-icon-circle img {
	width:100%;
	height:100%;
}
.content-h2-ja {
	display:inline-block;
	padding-top:5px;
	font-size:30px;
	font-weight:bold;
}
.content-h2-en {
	color:#00c;
	font-weight:500;
}



/* ==============================================
	メインテキスト
=============================================== */
.main-text {
	padding-bottom:80px;
	font-size:20px;
	line-height:1.8;
	color:#004fa5;
	text-align:center;
	font-weight:500;
	letter-spacing:0.05em;
	text-indent:0.05em;
}



/* ============================================================================================
	共通 section
============================================================================================= */
.content-section {
	padding-bottom:80px;
}
.content-section:last-child {
	padding-bottom:0;
}



/* ==============================================
	共通 h3
=============================================== */
.content-h3 {
	text-align:center;
	padding-bottom:30px;
	letter-spacing:0.05em;
	text-indent:0.05em;
}
.content-h3-top {
	border-bottom:2px solid #004fa5;
	display:flex;
	justify-content:center;
	align-items:center;
}
.content-h3-top-icon {
	height:40px;
}
.content-h3-top-icon img {
	max-height:100%;
}
.content-h3-top-ja {
	font-size:32px;
	line-height:48px;
	font-weight:bold;
}
.content-h3-bottom {
	font-weight:500;
}




/* ==============================================
	共通イメージ
=============================================== */
.content-image {
	text-align:center;
	padding-bottom:40px;
}



/* ==============================================
	共通テキスト
=============================================== */
.content-text {
	text-align:center;
	padding-bottom:40px;
	font-size:18px;
	font-weight:500;
	letter-spacing:0.05em;
	text-indent:0.05em;
}
.content-text a {
	color:#004fa5;
}
.content-text a:hover ,
.content-text a:active {
	text-decoration:underline;
}

.emphasis {
	text-align:center;
	padding-bottom:60px;
}
.emphasis em {
	padding:0 60px;
	font-size:28px;
	font-weight:bold;
	color:#004fa5;
	letter-spacing:0.05em;
	text-indent:0.05em;
	border-bottom:2px solid #004fa5;
}



/* ==============================================
	content-table
=============================================== */
.content-table {
	width:800px;
	margin:0 auto;
}
.content-table th ,
.content-table td {
	max-width:100%;
	font-weight:500;
	padding:15px;
	border:1px solid #eee;
	vertical-align:top;
}
.content-table th {
	width:200px;
	background:#cadbf2;
	text-align:right;
}



/* ============================================================================================
	個別CSS
============================================================================================= */


/* ==============================================
	home表示調整
=============================================== */
#page-home #header-title-logo img {
	height:80px;
}
#page-home #header-navi {
	display:none;
}
#page-home main {
	padding:0 0 60px;
}



/* ==============================================
	home-main
=============================================== */
#home-main {
}
#home-main-block {
	position:relative;
	width:1100px;
	height:850px;
	margin:0 auto;
	background:url(images/home-main-base.png) 0 0 no-repeat;
	background-size:100%;
	overflow:hidden;
}


/* ----------------------------------------------
	home-main 丸部分
---------------------------------------------- */
#home-main-block-links > * {
	position:absolute;
	display:block;
	border-radius:50%;
	overflow:hidden;
	background:url(images/home-main2026.webp) no-repeat;
	transition:none;
	-webkit-transition:none;
}
#home-main-block-links > *:before ,
#home-main-block-links > *:after {
	content:"";
	position:absolute;
	top:0;
	bottom:0;
	left:0;
	right:0;
	display:block;
	width:100%;
	height:100%;
	border-radius:50%;
	overflow:hidden;
}
#home-main-block-links > *:before {
	background:url(images/home-main2026.webp) no-repeat;
	z-index:20;
	transition:all 0.6s ease;
	-webkit-transition:all 0.6s ease;
}
#home-main-block-links > *:after {
	background:url(images/home-main2026text.webp) no-repeat;
	z-index:30;
}
#home-main-block-links > div:before {
	content:none;
}


#home-main-block-links div.catch {
	top:36px;
	left:18px;
	width:584px;
	height:584px;
}
#home-main-block-links div.catch ,
#home-main-block-links div.catch:after {
	background-position:-18px -36px;
}

#home-main-block-links > .service {
	top:57px;
	left:610px;
	width:226px;
	height:226px;
}
#home-main-block-links > .service ,
#home-main-block-links > .service:after {
	background-position:-610px -57px;
}
#home-main-block-links > .service:before {
	background-position:-610px calc(-850px - 57px);
}

#home-main-block-links > .contact {
	top:28px;
	left:862px;
	width:163px;
	height:164px;
}
#home-main-block-links > .contact ,
#home-main-block-links > .contact:after {
	background-position:-862px -28px;
}
#home-main-block-links > .contact:before {
	background-position:-862px calc(-850px - 28px);
}

#home-main-block-links > .works {
	top:226px;
	left:884px;
	width:194px;
	height:189px;
}
#home-main-block-links > .works ,
#home-main-block-links > .works:after {
	background-position:-884px -226px;
}
#home-main-block-links > .works:before {
	background-position:-884px calc(-850px - 226px);
}

#home-main-block-links > .transceiver {
	top:318px;
	left:658px;
	width:227px;
	height:227px;
}
#home-main-block-links > .transceiver ,
#home-main-block-links > .transceiver:after {
	background-position:-658px -318px;
}
#home-main-block-links > .transceiver:before {
	background-position:-658px calc(-850px - 318px);
}

#home-main-block-links > .aboutus {
	top:564px;
	left:477px;
	width:208px;
	height:208px;
}
#home-main-block-links > .aboutus ,
#home-main-block-links > .aboutus:after {
	background-position:-477px -564px;
}
#home-main-block-links > .aboutus:before {
	background-position:-477px calc(-850px - 564px);
}

#home-main-block-links > .access {
	top:578px;
	left:746px;
	width:164px;
	height:164px;
}
#home-main-block-links > .access ,
#home-main-block-links > .access:after {
	background-position:-746px -578px;
}
#home-main-block-links > .access:before {
	background-position:-746px calc(-850px - 578px);
}

#home-main-block-links > .recruit {
	top:654px;
	left:206px;
	width:164px;
	height:164px;
}
#home-main-block-links > .recruit ,
#home-main-block-links > .recruit:after {
	background-position:-206px -654px;
}
#home-main-block-links > .recruit:before {
	background-position:-206px calc(-850px - 654px);
}


/* ----------------------------------------------
	home-main ボタンアクションAタイプ
---------------------------------------------- */
#home-main-block-links a.type1:before ,
#home-main-block-links a.type1:after {
	background-image:url(images/home-main.png);
}
#home-main-block-links a.type1:after {
	z-index:20;
}
#home-main-block-links a.type1:before {
	opacity:0;
	transform:rotate(15deg);
	z-index:30;
	transition:all 0.5s ease;
	-webkit-transition:all 0.5s ease;
}
@media screen and (min-width:800px) { 
	#home-main-block-links a.type1:hover:before {
		opacity:1;
		transform:rotate(0deg);
	}
}
@media screen and (max-width:799px) { 
	#home-main-block-links a.type1:acrive:before {
		opacity:1;
		transform:rotate(0deg);
	}
}


/* ----------------------------------------------
	home-main ボタンアクションBタイプ
---------------------------------------------- */
#home-main-block-links a.type2:before {
	opacity:0;
	transform:rotate(30deg);
}
@media screen and (min-width:800px) { 
	#home-main-block-links a.type2:hover:before {
		opacity:1;
		transform:rotate(0deg);
	}
}
@media screen and (max-width:799px) { 
	#home-main-block-links a.type2:active:before {
		opacity:1;
		transform:rotate(0deg);
	}
}

/* ----------------------------------------------
	home-main ボタンアクションCタイプ
---------------------------------------------- */
#home-main-block-links a.type3:before {
	opacity:0;
}
@media screen and (min-width:800px) { 
	#home-main-block-links a.type3:hover:before {
		opacity:1;
	}
}
@media screen and (max-width:799px) { 
	#home-main-block-links a.type3:active:before {
		opacity:1;
	}
}





/* ==============================================
	news-block
=============================================== */
.content-h2-icon-circle.news {
	width:90px;
	height:90px;
	padding:15px;
	border-color:#00a0e9;
}
.news-block {
	padding:20px 40px;
	border:1px solid #004fa5;
	margin-bottom:40px;
}
.main-block > .news-block:last-child {
	margin-bottom:0;
}

.news-block-head {
	padding:0 10px 5px;
	height:45px;
	border-bottom:2px solid #004fa5;
	display:flex;
	justify-content:flex-start;
	align-items:center;
	font-weight:500;
}
.news-block-head-icon {
	height:30px;
}
.news-block-head-icon img {
	height:100%;
}
.news-block-head-ja {
	padding-left:10px;
	font-size:24px;
}
.news-block-head-en {
	align-self:flex-end;
	padding-left:10px;
	font-size:18px;
}

.news-block-list {
	padding:10px;
	display:flex;
	justify-content:center;
	align-items:stretch;
	flex-wrap:wrap;
	line-height:1.8;
	font-weight:500;
	letter-spacing:0.05em;
	text-indent:0.05em;
}
.news-block-list .dt {
	width:160px;
	padding:5px 0;
	text-align:center;
	color:#f30;
}
.news-block-list .dd {
	width:calc(100% - 160px);
	padding:5px 15px;
	border-bottom:2px dashed #ccc;
	overflow:hidden;
}

.news-block-list .dd > .title {
	font-weight:500;
	cursor:pointer;
}

.news-block-list .dd > .title:after {
	content:"▼内容を表示";
	display:inline-block;
	height:24px;
	line-height:22px;
	vertical-align:top;
	vertical-align:text-top;
	margin-left:2em;
	padding:0 1em;
	font-size:12px;
	color:#004fa5;
	text-shadow:1px 1px 0 #fff;
	background-color:transparent;
	border:1px solid #004fa5;
	border-radius:15px;
	transition:all 0.3s ease;
	-webkit-transition:all 0.3s ease;
}
.news-block-list .dd.open > .title:after {
	content:"▲閉じる";
	color:#fff;
	text-shadow:1px 1px 0 #000;
	background-color:#004fa5;
}

.news-block-list .dd > .data {
	display:block;
	height:0;
	padding-left:1em;
	transition:all 0.3s ease;
	-webkit-transition:all 0.3s ease;
	opacity:0;
}
.news-block-list .dd.open > .title + .data {
	padding-top:1em;
	padding-bottom:1em;
	height:auto;
	opacity:1;
}


.moreLink {
	padding-top:0.5em;
	text-align:right;
}
.moreLink a {
	font-size:90%;
	color:#666;
}
.moreLink a:hover {
	color:#f00;
	text-decoration:underline;
}


/* ==============================================
	info pager
=============================================== */
.news-block.all {
	margin-bottom:10px;
}
.pager {
	text-align:right;
}
.pager ul:before {
	content:"page:";
}
.pager ul li {
	display:inline-block;
}
.pager ul li a {
	display:inline-block;
	padding:0 0.5em;
	color:#999;
}
.pager ul li.active a {
	font-size:120%;
	font-weight:bold;
	color:#00f;
}

.pager ul li:not(.active) a:hover {
	color:#f00;
	text-decoration:underline;
}


/* ==============================================
	service-list
=============================================== */
.service-list {
	display:flex;
	justify-content:center;
	align-items:stretch;
	flex-wrap:wrap;
}
.service-list-block {
	width:400px;
	margin:0 20px;
	padding:10px;
	border:1px solid #004fa5;
	border-radius:10px;
	text-align:center;
}
.service-list-block h4 {
	font-size:20px;
	line-height:1.8;
	color:#fff;
	text-shadow:1px 1px 0 #000;
	background:#004fa5;
	border-radius:5px;
	letter-spacing:0.05em;
	text-indent:0.05em;
}
.service-list-block ul {
	display:inline-block;
	min-width:60%;
	padding-top:10px;
	font-size:18px;
}
.service-list-block ul li {
	text-align:left;
}
.service-list-block ul li:before {
	content:"■";
	color:#00a1e8;
}



/* ==============================================
	works-example
=============================================== */
.works-example {
	display:flex;
	justify-content:center;
	align-items:flex-start;
	padding:0 40px 80px;
}
.works-example > li {
	width:calc(100% / 4);
	text-align:center;
}
.works-example > li img {
	width:90%;
}
.works-example > li span {
	display:block;
	font-size:14px;
	font-weight:500;
}



/* ==============================================
	works-list
=============================================== */
.works-list {
	display:flex;
	justify-content:center;
	align-items:stretch;
	flex-wrap:wrap;
}
.works-list > ul {
	min-width:400px;
	padding:0 20px;
	font-size:18px;
	line-height:1.8;
}
.works-list > ul li:before {
	content:"■";
	color:#00a1e8;
}



/* ==============================================
	aboutus-submenu
=============================================== */
.aboutus-submenu {
	display:flex;
	justify-content:center;
	align-items:flex-start;
	flex-wrap:wrap;
	padding-bottom:60px;
}
.aboutus-submenu > div {
	width:220px;
}
.aboutus-submenu > div > a {
	display:block;
	width:150px;
	padding-bottom:15px;
	margin:0 auto;
	border-bottom:5px solid transparent;
}
.aboutus-submenu a > span {
	display:block;
}
.aboutus-submenu > div.active > a ,
.aboutus-submenu > div > a:hover {
	border-bottom-color:#004fa5;
}

.aboutus-submenu .content-h2-icon-circle {
	width:80px;
	height:80px;
}
.aboutus-submenu .content-h2-ja {
	font-size:24px;
}
.aboutus-submenu .content-h2-en {
	font-size:14px;
}



/* ==============================================
	access-table
=============================================== */
.access-table {
	display:flex;
	justify-content:space-around;
	align-items:flex-start;
	flex-wrap:wrap;
	padding:30px 0;
	border-bottom:2px solid #ccc;
}
.access-table:last-of-type {
	border-bottom:0 none;
}

.access-table > h3 {
	width:240px;
	font-size:28px;
	font-weight:bold;
	color:#004fa5;
	letter-spacing:0.05em;
	text-indent:0.05em;
	border-bottom:2px solid #004fa5;
	text-align:center;
}
.access-table > .content-table {
	width:700px;
	margin:0;
}
.access-table .content-table th ,
.access-table .content-table td {
	border-color:transparent;
}

.access-table th {
	width:100px;
	background:transparent;
	text-align:center;
}
.access-table td {
	width:600px;
}
.access-table iframe {
	width:100% !important;
	height:300px !important;
}

.access-table a[href*="tel:"] {
}



/* ==============================================
	recruit-list
=============================================== */
.recruit-main {
	padding-bottom:30px;
}

.recruit-main-section {
	display:flex;
	justify-content:space-between;
	align-items:flex-start;
	padding:0 60px 60px;
	flex-wrap:wrap;
}
.recruit-main-section:nth-of-type(2n) {
	flex-direction:row-reverse;
}
.recruit-main-section > .content-h3 {
	width:100%;
}
.recruit-main-section-text {
	width:calc(100% - 390px - 40px);
	letter-spacing:0.05em;
	text-indent:0.05em;
}
.recruit-main-section-text h3 {
	font-size:22px;
	line-height:1;
	font-weight:bold;
	color:#004fa5;
	padding-bottom:15px;
}
.recruit-main-section-text p {
	line-height:1.8;
	font-weight:500;
}
.recruit-main-section-image {
	width:390px;
}



/* ==============================================
	recruit-requirements-buttons
=============================================== */
.recruit-requirements-buttons {
	display:flex;
	justify-content:center;
	align-items:flex-start;
	flex-wrap:wrap;
}
.recruit-requirements-buttons > li {
	width:220px;
	height:220px;
	padding:30px;
}
.recruit-requirements-buttons > li > a {
	width:100%;
	height:100%;
	overflow:hidden;
	border:3px solid #004fa5;
	border-radius:50%;
	display:flex;
	justify-content:center;
	align-items:center;
	text-align:center;
	font-size:18px;
	font-weight:bold;
}
.recruit-requirements-buttons > li.active > a ,
.recruit-requirements-buttons > li > a:hover {
	color:#fff;
	text-shadow:1px 1px 0 #000;
	background:#004fa5;
	border-color:#fff;
	box-shadow:0 0 0 1px #004fa5;
}



/* ==============================================
	contact-logo
=============================================== */
.contact-logo {
	text-align:center;
	padding-bottom:40px;
}



/* ==============================================
	contact-table
=============================================== */
.contact-table {
	width:900px;
	margin:0 auto;
}
.contact-table .access-table {
	align-items:center;
}
.contact-table .access-table > .content-table {
	width:500px;
}
.contact-table .access-table .content-table th ,
.contact-table .access-table .content-table td {
	font-size:20px;
	font-weight:bold;
	color:#004fa5;
	padding:10px;
	vertical-align:middle;
}
.contact-table .access-table .content-table th {
	width:200px;
}
.contact-table .access-table .content-table td {
	font-size:24px;
}
.contact-table .access-table .content-table td span {
	font-size:16px;
}
.contact-table .access-table:nth-of-type(1) {
	border-top:2px solid #ccc;
}
.contact-table .access-table:last-of-type {
	border-bottom:2px solid #ccc;
}



/* ==============================================
	contact-email
=============================================== */
.contact-email {
	padding:30px 0;
}
.contact-email dl {
	width:800px;
	margin:0 auto;
	display:flex;
	justify-content:center;
	align-items:flex-start;
	color:#004fa5;
	font-weight:bold;
	font-size:24px;
	border:2px solid #004fa5;
}
.contact-email dl > dt ,
.contact-email dl > dd {
	width:50%;
	padding:20px;
}
.contact-email dl > dt {
	text-align:center;
}
.contact-email dl > dd {
	font-size:0;
}
.contact-email dl a:hover {
	text-decoration:underline;
}



/* ==============================================
	form-top
=============================================== */
#form-top {
	margin-top:-80px;
	padding-top:80px;
}



/* ==============================================
	form-table
=============================================== */
.form-table {
	padding:50px 100px;
	display:flex;
	justify-content:center;
	align-items:stretch;
	flex-wrap:wrap;
}
.form-table > dt {
	width:30%;
	padding:20px 10px;
	text-align:right;
	color:#000;
	font-weight:500;
	background:#cadbf2;
	border-bottom:1px solid #eee;
	border-left:1px solid #eee;
}
.form-table > dd {
	width:calc(100% - 30%);
	padding:20px;
	border-bottom:1px solid #eee;
	border-right:1px solid #eee;
}
.form-table > dt:nth-of-type(1) ,
.form-table > dd:nth-of-type(1) {
	border-top:1px solid #eee;
}

.form-table > dt.required:after {
	content:attr(data-text);
	display:inline-block;
	margin-left:5px;
	padding:3px 5px;
	font-size:12px;
	line-height:1;
	color:#fff;
	text-shadow:1px 1px 0 #000;
	background:#f00;
	border-radius:3px;
	text-align:center;

}


/* ==============================================
	form parts
=============================================== */
input[type='text'] {
	width:80%;
	padding:0.3em;
	border:1px solid #999;
	border-radius:5px;
}
textarea {
	width:80%;
	height:10em;
	padding:0.3em;
	border:1px solid #999;
	border-radius:5px;
}

.form-button {
	text-align:center;
}
input[type='submit'] {
	padding:0.5em 3em;
	border:1px solid #999;
	border-radius:3px;
	background: linear-gradient(#fff, #ccc) #ccc;
	background: -webkit-gradient(linear, center top, center bottom, from(#fff), to(#ccc));
	cursor:pointer;
}


span.radio {
	position:relative;
	display:block;
}
span.radio label {
	display:block;
	width:100%;
	padding-left:2em;
	border-radius:5px;
}
input[type='radio'] {
	position:absolute;
	top:calc(50% - 0.5em);
	left:0.5em;
	display:block;
	width:1.5em;
	height:1em;
	line-height:1em;
}


.error {
	display:block;
	color:#f00;
}





/* ============================================================================================
	SP用 media query
============================================================================================= */
@media screen and (min-width:800px) { 
	.only-sp {
		display:none !important;
	}

	.access-table a[href*="tel:"]:hover {
		text-decoration:underline;
	}

}
@media screen and (max-width:799px) { 
	.only-pc {
		display:none !important;
	}

	/* ==============================================
		header
	=============================================== */
	#header-h1 {
		padding:3px 10px;
		font-size:12px;
		line-height:18px;
		display:none;
	}
	#header-title {
		height:63px;
		background:rgba(255,255,255,0.9);
	}
	#header-title-logo img {
		height:60px;
	}
	#page-home #header-title-logo img {
		height:60px;
	}
	#header-title-contact img {
		height:40px;
	}

	/* ==============================================
		上部固定
	=============================================== */
	header {
		position:fixed;
		top:-24px;
		top:0;
		left:0;
		right:0;
		height:calc(24px + 63px);
		height:63px;
	}
	#header-title {
		width:480px;
		margin:0 auto;
		background:rgba(255,255,255,0.9);
	}
	main {
		padding-top:calc(30px + 24px + 63px);
		padding-top:calc(30px + 63px);
	}


	/* ==============================================
		footer
	=============================================== */
	#footer-navi {
		padding:0 15px;
		flex-wrap:wrap;
	}
	.footer-navi-category {
		padding-top:15px;
	}
	.footer-navi-category h2 {
		font-size:17px;
	}
	.footer-navi-category:nth-child(2n+1) {
		width:45%;
	}
	.footer-navi-category:nth-child(2n) {
		width:55%;
	}
	.footer-navi-category-sublist > li {
		font-size:15px;
		line-height:2;
	}

	#footer-copyright {
		line-height:1.6;
	}

	/* ==============================================
		共通ブロック＆パーツ
	=============================================== */
	#html-container {
		width:480px;
		background-size:1500px;
		overflow:hidden;
	}
	.contents-width {
		width:100%;
	}

	.title-image {
		overflow:hidden;
	}
	.title-image img {
		width:620px;
		max-width:none;
	}

	section.main-block {
		margin:0 10px;
		padding:15px;
	}

	.content-h2-icon-circle {
		width:80px;
		height:80px;
	}
	.content-h2-ja {
		font-size:26px;
	}
	.content-h3-top-ja {
		font-size:26px;
	}

	.main-text {
		font-size:16px;
	}
	.content-text {
		font-size:16px;
	}

	.emphasis {
		padding-bottom:40px;
	}
	.emphasis em {
		padding:0;
		font-size:24px;
	}

	.content-section {
		padding-bottom:40px;
	}

	/* ==============================================
		content-table
	=============================================== */
	.content-table {
		width:100%;
		font-size:14px;
	}
	.content-table th ,
	.content-table td {
		padding:15px 10px;
	}
	.content-table th {
		width:100px;
	}

	/* ==============================================
		インフォメーション
	=============================================== */
	.news-block {
		margin-bottom:15px;
		padding:10px;
	}
	.news-block-list .dt {
		width:100%;
		padding:0;
		text-align:left;
		font-size:14px;
	}
	.news-block-list .dd {
		position:relative;
		width:100%;
		padding:0;
	}
	.news-block-list .dd .title {
		display:flex;
		flex-wrap:wrap;
		justify-content:flex-end;
		padding-left:10px;
	}
	.news-block-list .dd .title > span {
		width:100%;
	}
	.news-block-list .dd .data {
		font-size:15px;
		line-height:1.4;
	}

	.news-block-list .dd.open .title {
		background:rgba(204,204,255,0.6);
	}
	.news-block-list .dd.open .title:after {
		position:absolute;
		bottom:3px;
		right:0;
	}
	.news-block-list .dd.open .title:after {
	}
	.news-block-list .dd.open {
		padding-bottom:30px;
	}

	.content-h2-icon-circle.news {
		width:70px;
		height:70px;
		padding:10px;
	}

	/* ==============================================
		会社概要
	=============================================== */
	.aboutus-submenu {
		padding-bottom:30px;
	}
	.aboutus-submenu > div {
		width:25%;
	}
	.aboutus-submenu > div > a {
		width:90%;
		padding-bottom:5px;
	}
	.aboutus-submenu .content-h2-icon-circle {
		width:60px;
		height:60px;
	}
	.aboutus-submenu .content-h2-ja {
		padding-top:0;
		font-size:18px;
	}
	.aboutus-submenu .content-h2-en {
		font-size:13px;
	}

	/* ==============================================
		所在地
	=============================================== */
	.access-table a[href*="tel:"]:active {
		text-decoration:underline;
	}

	/* ==============================================
		サービス
	=============================================== */
	.service-list-block {
		margin-bottom:30px;
	}
	.service-list-block h4 {
		font-size:18px;
	}
	.service-list-block ul {
		min-width:50%;
		font-size:16px;
	}

	/* ==============================================
		業務実績
	=============================================== */
	.works-example {
		padding:0 0 60px;
	}
	.works-example > li {
		width:calc(100% / 2);
	}
	.works-list > ul {
		width:100%;
		font-size:15px;
	}

	/* ==============================================
		採用情報
	=============================================== */
	.recruit-main-section {
		padding:0 0 30px;
		flex-wrap:wrap;
	}
	.recruit-main-section-text {
		width:100%;
		padding-bottom:20px;
	}
	.recruit-main-section-text h3 {
		font-size:20px;
	}
	.recruit-main-section-text h3 .sp-margin {
		display:block;
		padding-left:1em;
	}
	.recruit-main-section-text p {
		padding-left:1em;
		font-size:15px;
		line-height:1.6;
	}
	.recruit-main-section-image {
		width:100%;
		text-align:center;
		padding-bottom:20px;
	}
	.recruit-main-section-image img {
		width:60%;
	}

	.recruit-requirements-buttons {
		justify-content:space-around;
	}
	.recruit-requirements-buttons > li {
		width:90px;
		height:90px;
		padding:0;
	}
	.recruit-requirements-buttons > li > a {
		font-size:13px;
	}
	.recruit-requirements-buttons > li.row2 > a {
		padding-top:0.5em;
	}

	#page-recruit .content-table th {
		padding:10px 5px;
	}
	#page-recruit .content-table td {
		padding:10px;
	}

	/* ==============================================
		お問合わせ
	=============================================== */
	.contact-table {
		width:100%;
	}
	.access-table > h3 {
		width:100%;
		font-size:24px;
	}
	.contact-table .access-table > .content-table {
		width:auto;
	}
	.contact-table .access-table .content-table th ,
	.contact-table .access-table .content-table td {
		width:auto;
		font-size:18px;
	}

	.contact-email dl {
		width:90%;
		font-size:20px;
	}
	.contact-email dl > dt ,
	.contact-email dl > dd {
		width:auto;
		padding:15px 20px;
	}
	.contact-email dl > dd img {
		width:200px;
	}

	.form-table {
		padding:30px 0;
	}
	.form-table > dt {
		width:100%;
		padding:5px 10px;
		text-align:left;
	}
	.form-table > dd {
		width:100%;
		text-align:center;
	}
	.status2 .form-table > dd {
		text-align:left;
	}
	input[type='text'] ,
	textarea {
		width:90%;
		font-size:18px;
	}
	input[type='submit'] {
	}
}



/* =============================================================================================
	home調整
============================================================================================== */
@media screen and (max-width:799px) { 
	#page-home #header-title-spmenu {
		display:none;
	}
	#page-home main {
		padding:80px 0 60px;
	}
	#home-main .contents-width {
		height:720px;
		padding:0;
	}
	#home-main-block {
		width:100%;
		height:100%;
		background-image:url(images/home-main-base-sp.png);
		background-size:100%;
	}
	#home-main-block-links {
	}
	#home-main-block-links > * {
		transform-origin:0 0;
		-webkit-transform-origin:0 0;
		transform:scale(0.61);
		-webkit-transform:scale(0.61);
	}
	#home-main-block-links div.catch {
		top:15px;
		left:15px;
	}
	#home-main-block-links > div.catch:after {
		background-image:url(images/home-main2text2-catch-sp.png);
		background-position:-25px -50px;
	}
	#home-main-block-links > .service {
		top:379px;
		left:27px;
	}
	#home-main-block-links > .contact {
		top:535px;
		left:10px;
	}
	#home-main-block-links > .works {
		top:550px;
		left:131px;
		width:190px;
		height:192px;
	}
	#home-main-block-links > .transceiver {
		top:409px;
		left:189px;
	}
	#home-main-block-links > .aboutus {
		top:297px;
		left:341px;
	}
	#home-main-block-links > .access {
		top:464px;
		left:350px;
	}
	#home-main-block-links > .recruit {
		top:585px;
		left:367px;
	}
}


/* =============================================================================================
	メニューボタン
	※IE対策で position:sticky; を避ける
============================================================================================== */
	#header-navi-list {
		display:flex;
		justify-content:space-around;
		align-items:center;
		text-align:center;
		padding:0 10px;
	}
	#header-navi-list > li {
		width:calc(100% / 6);
	}
	#header-navi-list > li > a {
		display:block;
		padding:10px 20px;
		line-height:1.2;
	}
	#header-navi-list > li > a > span:nth-child(1) {
		display:block;
		font-weight:bold;
	}
	#header-navi-list > li > a > span:nth-child(2) {
		display:block;
		font-size:14px;
		color:#00c;
		padding-bottom:5px;
		border-bottom:2px solid transparent;
	}
	#header-navi-list > li.active > a > span:nth-child(2) {
		border-bottom-color:#00f;
	}

	/* ==============================================
		メニューボタン level2
	=============================================== */
	.header-navi-list-lv1 {
		position:relative;
	}
	.header-navi-list-lv2 a {
		display:block;
		padding:10px 10px;
		font-weight:500;
		font-size:14px;
		border-top:1px solid #004fa5;
	}

	.header-navi-list-lv2 a[target="_blank"]:after {
		content:'\f35d';
		margin-left:3px;
		color:#00c;
		font-size:0.9em;
		font-weight:900;
		font-family:'Font Awesome 5 Free';
		vertical-align:bottom;
	}

/* ==============================================
	PCメニュー（上部固定）
=============================================== */
@media screen and (min-width:800px) { 

	#header-navi {
		background:rgba(255,255,255,0.95);
		border-bottom:1px solid #004fa5;
		height:63px;
	}

	.header-navi-list-lv2 {
		position:absolute;
		top:100%;
		left:0;
		right:0;
		display:block;
		height:0;
		opacity:0;
		background:rgba(255,255,255,0.95);
		transition:all 0.3s ease;
		-webkit-transition:all 0.3s ease;
		overflow:hidden;
		border-bottom:1px solid #004fa5;
	}
	.header-navi-list-lv2 a {
		display:block;
		background:rgba(255,255,255,0.6);
		border-left:1px solid #004fa5;
		border-right:1px solid #004fa5;
	}
	.header-navi-list-lv1.on .header-navi-list-lv2 {
		height:auto;
		opacity:1;
	}

	#header-navi-list > li > a:hover {
		background-color:rgba(204,204,255,0.4);
	}
	.header-navi-list-lv2 a:hover {
		background-color:rgba(204,204,255,0.6);
	}

	/* ==============================================
		上部固定
	=============================================== */
	.pc-nav-on #header-navi {
		position:fixed;
		top:0;
		left:0;
		right:0;
		height:63px;
		z-index:100;
	}
	.pc-nav-on main {
		padding-top:calc(30px + 63px);
	}
}
/* ==============================================
	SPメニュー＋ハンバーガーボタン
=============================================== */
@media screen and (max-width:799px) {
	#header-title-spmenu {
		width:50px;
		height:50px;
		display:flex;
		justify-content:center;
		align-items:center;
		cursor:pointer;
	}
	#header-title-spmenu-button {
		position:relative;
		margin-bottom:15px;
	}
	#header-title-spmenu-button:before ,
	#header-title-spmenu-button:after {
		content:"";
		position:absolute;
		left:0;
		right:0;
	}
	#header-title-spmenu-button ,
	#header-title-spmenu-button:before ,
	#header-title-spmenu-button:after {
		display:block;
		width:40px;
		height:3px;
		background:#000;
		border-radius:3px;
		transition:all 0.2s ease;
		-webkit-transition:all 0.2s ease;
	}
	#header-title-spmenu-button:before {
		top:-10px;
	}
	#header-title-spmenu-button:after {
		bottom:-10px;
	}
	#header-title-spmenu-button span {
		position:absolute;
		bottom:-32px;
		left:0;
		right:0;
		display:block;
		width:100%;
		font-size:13px;
		text-align:center;
	}

	/* ==============================================
		メニュー開閉処理
	=============================================== */
	body:not(.sp-menu-open) #header-title-spmenu-button span:nth-child(2) {
		display:none;
	}
	body.sp-menu-open #header-title-spmenu-button span:nth-child(1) {
		display:none;
	}
	body.sp-menu-open #header-navi {
		margin-top:0;
	}

	body.sp-menu-open #header-title-spmenu-button {
		background:transparent;
	}
	body.sp-menu-open #header-title-spmenu-button:before ,
	body.sp-menu-open #header-title-spmenu-button:after {
		top:0;
		left:5px;
		width:30px;
	}
	body.sp-menu-open #header-title-spmenu-button:before {
		transform:rotate(45deg);
	}
	body.sp-menu-open #header-title-spmenu-button:after {
		transform:rotate(-45deg);
	}

	/* ==============================================
		メニューリスト位置
	=============================================== */
	#header-navi {
		position:fixed;
		top:0;
		bottom:0;
		left:0;
		right:0;
		display:block;
		width:100%;
		height:100vh;
		margin-top:-100vh;
		background:rgba(255,255,255,0.95);
		z-index:180;
		transition:all 0.3s ease;
		-webkit-transition:all 0.3s ease;
	}

	/* ==============================================
		SP用に調整
	=============================================== */
	#header-navi-list {
		flex-wrap:wrap;
	}
	#header-navi-sp-container {
		width:480px;
		height:100%;
		margin:0 auto;
		padding-top:calc(70px + 24px);
		padding-top:70px;
		border-left:1px solid #004fa5;
		border-right:1px solid #004fa5;
	}
	.sp-nav-on #header-navi-sp-container {
		padding-top:70px;
	}

	#header-navi-list > li {
		width:100%;
		text-align:left;
	}
	#header-navi-list > li > a > span:nth-child(2) {
		display:none;
	}

	#header-navi-list > li a {
		padding-left:35px;
		line-height:20px;
		border-top:0 none;
		border-bottom:1px solid #004fa5;
	}

	.header-navi-list-lv2 a {
		padding-left:40px;
	}

	#header-navi-list > li > a:active {
		background-color:rgba(204,204,255,0.6);
	}
	.header-navi-list-lv2 a:active {
		background-color:rgba(204,204,255,0.6);
	}

	/* ==============================================
		SP用メニューLV1にアイコンを表示
	=============================================== */
	#header-navi-list > li > a {
		background-position:10px 50%;
		background-repeat:no-repeat;
		background-size:25px;
	}
	#header-navi-list > li.home > a {
		background-image:url(images/icons/icon-home.png);
	}
	#header-navi-list > li.service > a {
		background-image:url(images/icons/icon-service.png);
	}
	#header-navi-list > li.works > a {
		background-image:url(images/icons/icon-works.png);
	}
	#header-navi-list > li.aboutus > a {
		background-image:url(images/icons/icon-aboutus.png);
	}
	#header-navi-list > li.recruit > a {
		background-image:url(images/icons/icon-recruit.png);
	}
	#header-navi-list > li.contact > a {
		background-image:url(images/icons/icon-contact.png);
	}


	/* ==============================================
		テスト用
	=============================================== */

	/* 右からスライドイン */
	#header-navi {
		margin-top:0;
		margin-left:105%;
	}
	.sp-menu-open #header-navi {
		margin-top:0;
		margin-left:0;
	}

	/* フェードイン（jQueryで処理） */
	#page-aboutus3 #header-navi {
		margin-top:0;
		width:100% !important;
		height:auto !important;
		display:none;
		transition:none;
		-webkit-transition:none;
	}

	/* アニメーションOFF */
	#page-aboutus4 #header-navi {
		transition:none;
		-webkit-transition:none;
	}
	#page-aboutus4 #header-title-spmenu-button ,
	#page-aboutus4 #header-title-spmenu-button:before ,
	#page-aboutus4 #header-title-spmenu-button:after {
		transition:none;
		-webkit-transition:none;
	}


	/* 背景ベタ白 */
	#page-aboutusA #header-navi {
		background:#fff;
	}

	/* スリムタイプ（確定） */
	#header-navi {
		left:calc(50% - 40px);
		bottom:auto;
		width:280px;
		height:auto;
		border-bottom:1px solid #004fa5;
	}
	#header-navi-sp-container {
		width:100%;
		height:auto;
		margin-bottom:-1px;
	}

	/* 背景スクロールロック（一部環境で未対応） */
	body#page-aboutusC.sp-menu-open {
		overflow:hidden;
	}

}




/* ==============================================
	reCAPTCHA用
=============================================== */
.g-recaptcha-block {
	padding-bottom:30px;
	text-align:center;
}
.g-recaptcha {
	display:inline-block;
}



/* =============================================================================================
	2021.12.6 追加
============================================================================================== */
/* ==============================================
	home-main
=============================================== */
#home-main.typeB #home-main-block {
	background-image:url(images/home-main-baseB.png);
}

/* ----------------------------------------------
	home-main 丸部分
---------------------------------------------- */
#home-main.typeB #home-main-block-links > * {
	background-image:url(images/home-main2B.png);
}
#home-main.typeB #home-main-block-links > *:before {
	background-image:url(images/home-main2B.png);
}
#home-main.typeB #home-main-block-links > *:after {
	background-image:url(images/home-main2text2B.png);
}


@media screen and (max-width:799px) { 
	/* ==============================================
		home調整
	=============================================== */
	#home-main.typeB #home-main-block {
		background-image:url(images/home-main-base-spB.png);
	}
}

