 @charset "UTF-8";
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;700&family=Noto+Serif+JP:wght@200;400;600&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Urbanist:wght@600&display=swap');
 body {
 	font-family: 'Noto Sans JP', 'Noto Serif JP', Hiragino Kaku Gothic ProN, "Hiragino Sans", "Yu Gothic", YuGothic, "Yu Gothic Medium", Verdana, Meiryo, sans-serif;
 	color: #000;
 	font-size: 14px;
 	line-height: normal;
 	letter-spacing: 0.08em;
 	margin: 0px !important;
 }

 b,
 strong,
 .bold {
 	font-family: 'Noto Sans JP', 'Noto Serif JP', Hiragino Kaku Gothic ProN, "Hiragino Sans", "Yu Gothic", YuGothic, "Yu Gothic Medium", Verdana, Meiryo, sans-serif;
 	font-weight: bold;
 }

 main {
 	overflow: hidden;
 }

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

汎用style

===================== */
 /* スマホ改行解除用*/

@media screen and (min-width: 470px) {
	.spbr {
		display: none !important;
	}
}



 @media screen and (max-width: 539px) {
 	.spbr_none {
 		display: none;
 	}
 }

 .txt_cn {
 	text-align: center;
 }


 a:hover {
 	opacity: 0.7;
 }

 a {
 	text-decoration: none;
 	color: #000;
 }

.ratio_one:before {
    content: "";
    display: block;
    padding-top: 110%; /* 1:1 */
}

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

ローディング

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


 /* ローディング画面 */
 #loader {
 	width: 100vw;
 	height: 100vh;
 	display: flex;
 	justify-content: center;
 	align-items: center;
 	transition: all 1s;
 	background: linear-gradient(to right, #d3edfb, #fdeff5, #fffcdb);
 	position: fixed;
 	top: 0;
 	left: 0;
 	z-index: 9999;
 }

 .loaded {
 	opacity: 0;
 	visibility: hidden;
 }

 #load_id img {
 	max-width: 340px;
 }

 /* ローディングアニメーション */
 @keyframes sk-scaleout {
 	0% {
 		transform: scale(0);
 	}

 	100% {
 		transform: scale(1.0);
 		opacity: 0;
 	}
 }


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

ヘッダー

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

 #header {
 	background: #fff;
 	opacity: 1;
 	width: 100%;
 	color: #004ea2;
 	font-weight: bold;
 	z-index: 900;
 	display: flex;
 	align-items: center;
 	position: fixed;
 	top: 0px;
 	/* 95-115 = -20 */
 	height: auto;
 }

 #header a {
 	color: #004ea2;
 }

 #header a:hover {
 	opacity: 0.7;
 }

 #site_id {
 	width: auto;
 }


 #site_id img {
 	max-width: 170px;
 	width: 100%;
 	margin: 20px 0 10px 20px;
 }

 menu {
 	width: 100%;

 }

 ul.menulist {
 	display: flex;
 	flex-direction: column;
 	padding-top: 0px;
 	max-width: 360px;
 	min-width: 220px;
 	margin: 0 auto;
 }

 ul.menulist li {
 	padding: 4px 12px !important;
 	vertical-align: middle;
 }

 #header .header_inner {
 	width: 100%;
 	height: 75px;
 	position: sticky;
 	top: 0;
 }

 #header .head_box {
 	max-width: 1190px;
 	margin: 0px auto 0;
 	display: flex;
 	justify-content: space-between;

 }

 #header .menu {
 	width: 100%;
 	background-color: #e6f4fd;
 }

 #header .menu .menu-menu-container {
 	max-width: 1200px;
 	margin: 35px 30px 0;
 	display: flex;
 	flex-direction: column;
 }

 #header .menu li {
 	display: inline;
 	padding: 2px 12px;
 	width: auto;
 	background-color: #e6f4fd;
 	border-bottom: none;
 }

 #header .menu li a {
 	font-size: 1.1rem;
 	font-weight: normal;
 	text-decoration: none;
 }

 #header .menu_btn {
 	display: flex;
 	flex-direction: column;
 	text-align: center;
 	padding: 0;
 	margin: 15px 0;

 }

 #header .menu_btn .contact_btn a {
 	background-color: #004ea2 !important;
 	color: #fff;
 	border-radius: 26px;
 	min-width: 180px;
 	display: inline-block;
 	padding: 12px 18px;
 	margin-bottom: 8px;
 }

 #header .menu_btn .pt_btn a {
 	background-color: #0ab9df !important;
 	color: #fff;
 	border-radius: 56px;
 	min-width: 180px;
 	display: inline-block;
 	padding: 12px 18px;
 }

 /* グローバルメニュー */
 .global-nav {
 	background-color: #fff;
 	margin: 0;
 	display: none;
 	position: fixed;
 	width: 100%;
 	height: 100vh;
 	background-color: #fff;
 	transition: all .6s;
 	z-index: 200;

 }

 .hamburger {
 	position: absolute;
 	right: 20px;
 	top: 12px;
 	width: 50px;
 	/* クリックしやすいようにちゃんと幅を指定する */
 	height: 50px;
 	/* クリックしやすいようにちゃんと高さを指定する */
 	cursor: pointer;
 	z-index: 300;
 }

 .hamburger__line {
 	position: absolute;
 	left: 11px;
 	width: 30px;
 	height: 2px;
 	background-color: #004ea2;
 	transition: all .6s;
 }

 .hamburger__line--1 {
 	top: 14px;
 }

 .hamburger__line--2 {
 	top: 25px;
 	width: 20px;
 	left: 21px;
 }

 .hamburger__line--3 {
 	top: 36px;
 }



 .nav-open .global-nav {
 	display: block;
 }

 .nav-open .black-bg {
 	opacity: .8;
 	visibility: visible;
 }

 .nav-open .hamburger__line--1 {
 	transform: rotate(45deg);
 	top: 20px;
 }

 .nav-open .hamburger__line--2 {
 	width: 0;
 	left: 50%;
 }

 .nav-open .hamburger__line--3 {
 	transform: rotate(-45deg);
 	top: 20px;
 }


 /*  body固定  */

 body.fixed {
 	width: 100%;
 	height: 100%;
 	position: fixed;
 }



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

  セクション　共通

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

 .gr_bg {
 	width: 100%;
 	background: linear-gradient(to right, #d3edfb, #fdeff5, #fffcdb);
 }



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

  コンテンツ

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

 /* パーティクル　*/

 canvas {
 	display: block;
 }

 /* ---- particles.js container ---- */
 #particles-js {
 	position: absolute;
 	width: 100%;
 	height: 100%;
 	background-color: #ffffff;
 	background-image: url("");
 	background-repeat: no-repeat;
 	background-size: cover;
 	background-position: 50% 50%;
 }

 .count-particles {
 	background: #000022;
 	position: absolute;
 	top: 48px;
 	left: 0;
 	width: 80px;
 	color: #13E8E9;
 	font-size: .8em;
 	text-align: left;
 	text-indent: 4px;
 	line-height: 14px;
 	padding-bottom: 2px;
 	font-family: Helvetica, Arial, sans-serif;
 	font-weight: bold;
 	display: none;
 }

 .js-count-particles {
 	font-size: 1.1em;
 }

 #stats, .count-particles {
 	margin-top: 5px;
 	margin-left: 5px;
 }

 #stats {
 	border-radius: 3px 3px 0 0;
 	overflow: hidden;
 }

 .count-particles {
 	border-radius: 0 0 3px 3px;
 }

 /* TOP */
 body#toppage {
 	position: relative;
 }

 .top_read {
 	position: relative;
	margin: 20px auto 0;
 	height: 106vw;
 	text-align: center;
	min-height: 700px;
	max-width: 1200px;
 }

 .top_read .topblock {
 	position: absolute;
 	top: 80px;
 	/*left: 300px;*/
 	width: 100%;
 	text-align: center;
 }

.top_readc { margin-top: 20px;}

 .top_read .topblock img {
 	width: 100%;
 	min-width: 340px;
	max-width: 80%;
 }

 .top_read .top_bodyc {
 	padding-top: 25px;
 	font-size: 0.95rem;
 	line-height: 1.8;
 }

 /* top news  */

 .news {
 	padding: 10px;
 }

 .news_box {
 	width: 100%;
 	max-width: 1160px;
 	margin: 12px auto 30px;
 	display: flex;
 	flex-direction: column;
 	/*justify-content: center;*/
 	align-items: start;
 }

 .news_box h2 {
 	font-size: 1.0rem;
 	padding-left: 18px;
 }

 .news_inner {
 /*	display: flex;
 	flex-direction: row;
 	align-items: center;*/
 	padding:0 14px;
 }

 .bx-wrapper {
 	order: 1;
 	min-width: 200px;
 	padding-left: 0px !important;

 }
 #topnews_list {
	margin: 20px 0 30px;
 }
.bx-wrapper #topnews_list li {
	margin-top: 10px;
display: flex;
flex-direction: row;
justify-content: start;
}
.bx-wrapper #topnews_list li .date {
font-weight: normal;
}
.bx-wrapper #topnews_list li .news_ttl {
 	font-weight: bold;
 	padding-left: 15px;

 }
 .bx-wrapper .news_ttl a:link{
color: #004ea2;
text-decoration: underline;
 }
 .bx-wrapper .news_ttl a:hover{
color: #004ea2;
text-decoration: none;
 }
 .bx-wrapper .news_ttl a:visited{
color: #004ea2;
text-decoration: underline;
 }

 .bx-wrapper  a.newsLink {
position: relative;
padding-left: 45px;
padding-top: 8px;
color: #004ea2;
 }
 .bx-wrapper  a.newsLink::before {
	content: url(/img/top/arr_t01.svg);
position: absolute;
left: 0;
top: 0px;
width: 38px;
 }

/*  news link controls  */

.bx-controls {display: none;}

 .custom-control {
 	order: 2;
 	display: flex;
 	flex-direction: column;
 	justify-content: baseline;
 	padding: 0 15px;
 }

 .custom-prev, .custom-next {
 	font-size: 1.6rem;
 	transform: rotate(90deg);
 }

 /*  top contents  */

 #solution, #business, #quality {
 	width: 100%;
 }

 .topcontents_imgs {
 	background: url(/img/topcontents_bg.png) no-repeat center top;
 	background-size: cover;
		padding: 0 0px 0;
 }

 .topcontents_imgs img {
 	border-radius: 20px;
 }

 .topcontents_imgs .topcontents_inner {
 	position: relative;
 	height: 50vw;
 	max-height: 340px;
 	margin: 13vw 15px 0;
 }

 .topcontents_imgs .topcontents_inner .img_a {
 	position: absolute;
 	left: 0;
 	top: unset;
	bottom: 2%;
 	width: 70%;
 }

 .topcontents_imgs .topcontents_inner .img_b {
 	position: absolute;
 	right: 0;
 	bottom: -7%;
 	width: 40%;
 }
.topcontents_imgs .topcontents_inner .img_c {
	position: absolute;
 	left: 0;
 	top: unset;
	bottom: 2%;
 	width: 100%;
}


.topcontents_imgs_c {
	background: url(/img/topcontents_bg.png) no-repeat center bottom;
	background-size: auto;
	padding: 0 0px 0;
}

.topcontents_imgs_c img {
	/*border-radius: 20px;*/
	width: 100%;
position: absolute;
	top: -10%;
}
 .topcontents_imgs_c .topcontents_inner {
 	position: relative;
 	height: 240px;
 	max-height: 340px;
 	margin: 250px 15px 0;
 }
.topcontents_imgs_c .topcontents_inner .img_c_box {
 	position: absolute;
 	left: 0;
	bottom: -10%;
	display: flex;
	flex-wrap: wrap;
	flex-direction: row;
	justify-content: space-between;
 }
.topcontents_imgs_c .topcontents_inner .img_c_box img {
	width: 45%;
	margin: 0px 0;
}
.topcontents_imgs_c .topcontents_inner .img_c_box img:first-child {
margin-left: 15px; margin-bottom: 15px; 
}
.topcontents_imgs_c .topcontents_inner .img_c_box img:nth-child(2) {
margin-top: 15px; 
}
.topcontents_imgs_c .topcontents_inner .img_c_box img:nth-child(3) {
margin-bottom: 15px; 
}
.topcontents_imgs_c .topcontents_inner .img_c_box img:last-child {
margin-right: 15px; margin-top: 15px;
}


 .topcontents_inner {
 	max-width: 960px;
 	margin: 0 15px;

 }

 .topcontents_inner h2 {
 	font-size: 2.4rem;
	line-height: 1.3;
 	margin: 40px 0px 20px 30px;
 }

 .topcontents_inner .contents_body {
 	font-size: 1.0rem;
 	line-height: 1.6;
 	padding-left: 30px;
 }

 .top_contents_btn {
 	padding-left: 30px;
 }

 .top_contents_btn a {
 	display: inline-block;
 	position: relative;
 	background: #004ea2;
 	color: #fff;
 	padding: 20px 55px;
 	font-size: 1.1rem;
 	border-radius: 30px;
 	margin-top: 20px;
 	margin-right: 30px;
 }

 .top_contents_btn a:nth-child(2) {
 	margin-right: 0px !important;
 }

 .top_contents_btn a::before {
 	content: "";
 	background-image: url(/img/btn_arrow_a.svg);
 	background-repeat: no-repeat;
 	width: 15px;
 	height: 8px;
 	position: absolute;
 	color: #fff;
 	left: 21px;
 	top: 44%;
 }

 /*  contact */

 .contact {
 	background-color: #004ea2;
 	width: 100%;
 	font-size: 1.4rem;
 	line-height: 1.8;
 	color: #fff;
 	margin-top: 60px;
 }

 .contact_inner {
 	max-width: 960px;
 	margin: 0 auto;
 	text-align: center;
 	padding: 30px 0;
 	font-size: 0.8rem;
 }

 .contact .contact_btn a {
 	margin: 30px 0 0;
 	display: inline-block;
 	border-radius: 50px;
 	border: 3px #fff solid;
 	padding: 10px 60px;
 	color: #fff;
 }


 /*-------------

下階層

----------------*/

 body#field, body#maingoods, body#goods, body#results, body#quality, body#recruit, body#contact {
 	background: #e6f4fd;
 }

 .snd_page {
 	text-align: center;
 }

 .snd_contents {
 	margin: 0px 10px;
 	max-width: 1340px;
 	width: auto !important;
 	background-color: #fff;
 	padding: 30px 14px;
 }

 #field_head {
 	text-align: center;
 	font-size: 1.8rem;
 	border-bottom: 1px solid #004ea2;
 	color: #004ea2;
 }

 #maing_head {
 	text-align: center;
 	font-size: 1.2rem;
 	line-height: 1.9;
 	color: #004ea2;
 	width: 100%;
 	margin-top: 100px;
 }

 .snd_page h1 {
 	margin: 100px auto 35px;
 	display: inline-block;
 	padding-bottom: 15px;
 }

 .snd_page h2 {
 	margin: 0px auto 15px;
 	display: block;
 	font-size: 1.4rem;
 	line-height: 1.8;
 	padding-bottom: 15px;
 	color: #004ea2;
 }

 .snd_contents img {
 	max-width: 100%;
 }

 .snd_page .contents_body {
 	color: #004ea2;
 	font-size: 0.8rem;
 }

#field .contents_body {color: #000;}


 h1#company_head {
 	margin: 40px 0 40px;
 }

 #company .snd_contents {
 	max-width: 1280px;
 }

 #company .snd_contents h2 {
 	margin-top: 10px;
 	color: #000;
 	text-align: left;
 	font-size: 1.3rem;
 }

 #company .snd_contents .contents_body {
 	text-align: left;
 	color: #000;
 	font-size: 0.9rem;
line-height: 1.8;
 }

 .snd_contents h2.linehead {
 	color: #004ea2 !important;
 	padding-bottom: 20px;

 	border-bottom: 2px solid #004ea2;
 	text-align: left;
 	margin-top: 120px !important;
 }

 .snd_contents h3.linehead {
 	color: #004ea2 !important;
 	font-size: 1.1rem;
 	padding-bottom: 20px;
 	border-bottom: 2px solid #004ea2;
 	text-align: left;
 	margin-top: 40px !important;
 }

 #company img.topimg {
 	width: 100%;
 }

 #quality .snd_contents h2, #quality .snd_contents .contents_body {
 	text-align: left;
 }

 #quality .snd_contents h2 {
 	font-size: 1.4rem;
 }

 #quality .snd_contents .contents_body {
 	font-size: 0.9rem;
 	line-height: 1.6;
	color: #000;
 }

 #quality .pic_box {
 	display: flex;
 	flex-direction: row;
 	justify-content: space-between;
 	flex-wrap: wrap;
 	margin: 40px 0;
 }

 #quality .pic_box .img_box {
 	max-width: 100%;
 	margin-bottom: 40px;
 	flex-basis: 47%;
 	text-align: left;
 }

 #quality .pic_box .img_box img {
 	width: 100%;
 	margin-right: 0px;
 }

 /*#quality .pic_box .img_box:nth-of-type(3n) img{margin-right: 0px !important;}*/

 #goods .snd_contents h2 {
 	font-size: 1.1rem;
 	text-align: left;
 	margin-bottom: 20px !important;
 }

 #goods .snd_contents h3 {
 	margin: 20px 0 8px !important;
 }

 .goods_list {
 	margin-bottom: 140px;
 }

 .goods_list li {
 	padding: 5px 0 30px;
 	border-bottom: 1px solid #004ea2;
 	display: grid;
 	gap: 5px;
 	grid-template-columns: 1fr 4fr;
 	grid-template-rows: 1fr 2fr;
 }

 .goods_ttl {
 	display: flex;
 	justify-content: space-between;
 	align-items: center;
 	max-height: 80px;
 	order: 1;
 	grid-column: 1/3;
 	grid-row: 1;
 }

 .goods_img {
 	order: 2;
 	grid-column: 1;
 	grid-row: 2;
 	text-align: left;
 }

 .goods_dis {
 	order: 3;
 	grid-column: 2;
 	grid-row: 2;
 }

 #goods .goods_ttl h4 {
 	font-size: 1.0rem;
 	line-height: 1.1;
 }

 #goods .goods_ttl span img {
 	padding-left: 10px;
 	max-width: 40px;
 }

 #goods .goods_img img {
 	max-width: 120px;
 }

 #goods .goods_dis {
 	text-align: left;
 	font-size: 0.7rem !important;
 	color: #000;
 	line-height: 1.6;
 }
#goods .goods_btn {
order: 4;
grid-row: 3/3;
grid-column: 1/3;
display: flex;
flex-flow: row;
justify-content: space-between;
	align-items: center;
}
#goods .goods_btn a{
padding: 15px 6px 0 0;
}
#goods .goods_btn a img{
max-width: 155px;
}
 #results img.topimg {
 	width: 100%;
 }

 #results .sub_hImg {
width: auto;
margin:40px 0px 10px;
}

 body#maingoods_snd {
 	background: #e6f4fd;
 }

 #maingoods img.topimg {
 	max-width: 100%;
 }

 #maingoods a.maplink:hover {
 	opacity: 1;
 }


#mgoods_map {
position: relative;
}
#mgoods_map #btn_a{ 
  position: absolute;
  top: 0%;
  left: 20%;
}
#mgoods_map #btn_b{ 
  position: absolute;
  top: 15%;
  left: 68%;
}
#mgoods_map #btn_c{ 
  position: absolute;
  top: 37%;
  left: 20%;
}
#mgoods_map #btn_d{ 
  position: absolute;
  top: 48%;
  left: 50%;
}
#maingoods .btn_bound {
  opacity: 1;
  -webkit-transition: all .5s ease-in 3s;
  transition: all .5s ease-in 3s;
}
#maingoods .btn_bound img {
max-width:60px;
width: 10vw;

}
.btn_bound {
  display: block;
  z-index: 2;
  -webkit-animation: bounce 2s infinite 2s;
  animation: bounce 2s infinite 2s;
  -webkit-transition: all .2s ease-in;
  transition: all .2s ease-in;
  transform: scale(1)
}

@keyframes bounce {
  0%,
  100%,
  20%,
  50%,
  80% {
    -webkit-transform: translateY(0);
    -ms-transform: translateY(0);
    transform: translateY(0);
  }
  40% {
    -webkit-transform: translateY(-10px);
    -ms-transform: translateY(-10px);
    transform: translateY(-10px);
  }
  60% {
    -webkit-transform: translateY(-5px);
    -ms-transform: translateY(-5px);
    transform: translateY(-5px);
  }
}

#maingoods #mgood_box {
display: flex;
flex-direction: column;
flex-wrap: wrap;
justify-content: space-between;
margin: 0 15px;
max-width: 100%;
}
#maingoods #mgood_box a{
display: block;
width: 100%;
}
#maingoods #mgood_box .mgoods_block {
width: 100%;
min-height: 300px;
background: #fff;
border-radius: 8px;
padding: 40px;
margin-bottom: 60px;
text-align: left;
}
#maingoods #mgood_box .mgoods_block .imgbox {
width: 100%;
text-align: center;
}
#maingoods #mgood_box .mgoods_block img{ 
	width: 100%;
	max-width: 300px;
	margin-bottom: 15px;
}


#maingoods #mgood_box .mgoods_block .sub_read { font-size: 1.1rem; padding: 15px 0 20px; }
#maingoods #mgood_box .mgoods_block .text { font-size: 0.9rem; padding: 13px 0; border-top: #000 1px dotted;}

#maingoods #mgood_box #road_block {box-shadow:0 12px #edbe2a ;}
#maingoods #mgood_box #road_block h2 { color: #edbe2a; font-size: 2.6rem; padding: 0; margin: 0; line-height: 1.4;}

#maingoods #mgood_box #bridge_block {box-shadow:0 12px #9dab1f ;}
#maingoods #mgood_box #bridge_block h2 { color: #9dab1f; font-size: 2.6rem; padding: 0; margin: 0; line-height: 1.4;}

#maingoods #mgood_box #railway_block {box-shadow:0 12px #ab7632 ;}
#maingoods #mgood_box #railway_block h2 { color: #ab7632; font-size: 2.6rem; padding: 0; margin: 0; line-height: 1.4;}

#maingoods #mgood_box #other_block {box-shadow:0 12px #f09192 ;}
#maingoods #mgood_box #other_block h2 { color: #f09192; font-size: 2.6rem; padding: 0; margin: 0; line-height: 1.4;}


 .snd_content_mgoods {
 	max-width: 1190px;
 	margin: 0 auto;
 	display: flex;
 	flex-direction: column;
 	min-height: 100%;
 }

 .snd_content_mgoods .lnav {
 	flex-basis: 25%;
 	background-color: #fff;
 	min-height: 100%;
 	text-align: left;
 }

.snd_content_mgoods .lnav .mg_accordion {
	position: absolute;
	width: 100%;
	max-width: 100%;
	background-color: rgba(255, 255, 255, 0.8) ;
	z-index: 0;
	transition: 0.9s;
	top: 75px;
}


 .snd_content_mgoods .r_box {
 	flex-basis: 75%;
 	height: 100%;
 	text-align: left;
 	padding: 40px 20px 120px;
	margin-top: 140px;
 }

 .snd_content_mgoods .lnav p.head {
 	font-size: 2.2rem;
 	width: 100%;
 	color: #004ea2;
 	padding: 30px 0 5px;
 	margin: 0;
 }

 .snd_content_mgoods .lnav span.ex_txt {
 	font-size: 0.7rem;
 	color: #004ea2 !important;
 	font-weight: normal !important;
 	line-height: 1.4;
 	position: absolute;
 	margin-top: 15px;
 }

 .snd_content_mgoods .lnav ul {
 	display: flex;
 	flex-direction: row;
 	flex-wrap: wrap;
 	justify-content: space-between;
 	padding: 15px 25px 0;
 }

 .snd_content_mgoods .lnav ul li {
 	flex-basis: 45%;
 }

 .snd_content_mgoods .lnav ul li a {
 	display: inline-block;

 	padding: 4px 4px;
 	border-radius: 50px;
 	border: #004ea2 2px solid;
 	background-color: #fff;
 	color: #004ea2;
 	text-align: center;
 	max-width: 140px;
 	width: 100%;
 	margin-bottom: 12px;
 	font-size: 0.9rem;
 }

 .snd_content_mgoods .lnav ul li a:hover {

 	border: #004ea2 2px solid;
 	background-color: #004ea2;
 	color: #fff;
 }

 .snd_content_mgoods .lnav p a {
 	font-size: 0.7rem;
 	color: #004ea2;
 }

 .snd_content_mgoods .lnav p.back_mgtop {
 	display: none;
 }

 .snd_content_mgoods .r_box h3 {
 	padding: 15px 0;
 	font-size: 1.6rem;
 	color: #000;
 	border-bottom: 1px #000 solid;
 	margin-bottom: 20px;
 }

 .snd_content_mgoods .r_box ul {
 	margin-bottom: 40px;
	display: flex;
	flex-direction: column;
	max-width: 100%;
	width: 100%;
 }

 .snd_content_mgoods .r_box ul li{
 	margin-bottom: 20px;
 }

 .snd_content_mgoods .r_box h4 {
 	padding: 8px 0;
 }
 .snd_content_mgoods .r_box h4 a{
color: #004ea2;
text-decoration: underline;
 }

 .snd_content_mgoods .r_box img {
 	/*flex-basis: 48%;
 	width: 48%;*/
	margin:0 0px 16px;
 	max-width: 100%;
 }



 #maingoods_snd .contact {
 	margin-top: 0 !important;
 }


 .mg_accordion p.acc_btn {
 	position: relative;
 	padding: 0px 25px 40px;
 	width: 100%;
 	background-color: #fff;
 	color: #004ea2;
 	font-size: 2.2rem;
 	font-weight: bold;
 	text-align: left;
 	cursor: pointer;
 	/*margin-bottom: 15px;*/
 }

 .mg_accordion p.acc_btn::after {
 	position: absolute;
 	content: "";
 	background: url(/img/ar_b_down_ico.svg) no-repeat;
 	width: 32px;
 	height: 18px;
 	right: 30px;
 	top: 64%;
 }

 .mg_accordion p.acc_btn.open::after {
 	position: absolute;
 	content: "";
 	background: url(/img/ar_b_up_ico.svg) no-repeat;
 	width: 32px;
 	height: 18px;
 	right: 30px;
 	top: 64%;
 }

 .mg_answer {
 	padding: 0px 0;
 /*	background-color: rgba(255, 255, 255, 0.8) ;*/
 	max-width: 100%;
 	text-align: left;
 	color: #004ea2;
 	display: none;
 }

 .mg_answer p {
 	background: none;
 }


 #contact h1 {
 	display: inline-block;
 	margin: 100px 0 80px;
 }

 #contact .read_txt {
 	text-align: center;
 	padding: 10px;
 	font-size: 1rem;
 	color: #004ea2;
 	margin-bottom: 60px;
 }

 #contact h2 {
 	color: #000;
 	padding: 0px 0 20px;
 	border-bottom: #000 1px solid;
 	text-align: left;
 }

 #tel .telnum_box {
 	display: flex;
 	flex-direction: column;
 	justify-content: flex-start;
 	align-items: left;
 	padding: 10px 20px;
 	background-color: #e6f4fd;
 	text-align: left;
 	color: #000;
 }

 #tel .telnum_box .tel_num {
 	font-size: 1.7rem;
 }

 #tel .telnum_box .tel_time {
 	font-size: 0.8rem;
 	padding-left: 0px;
 }

 #form .form_read {
 	text-align: left;
 	margin-bottom: 50px;
 }

 #form dl {
 	display: flex;
 	flex-direction: column;
 	flex-wrap: wrap;
 	text-align: left;
 }

 #form dt, #form dd {
 	padding: 12px 0px;
 }

 #form dt {
 	flex-basis: 30%;
 	color: #000;
 	font-size: 0.9rem;
 	display: flex;
 	align-items: center;
 	justify-content: flex-start;
 	margin-top: 18px;
 }

 #form dt.al_top {
 	flex-basis: 30%;
 	color: #000;
 	font-size: 0.9rem;
 	display: flex;
 	align-items: flex-start;
 }

 #form dd {
 	flex-basis: 70%;
 }

 #form dt span.must {
 	border: 1px #e60012 solid;
 	padding: 2px 5px;
 	color: #e60012;
 	font-size: 1.0rem;
 	margin-left: 20px;

 }

 #form input, #form textarea {
 	background-color: #f7f8f8;
 	padding: 30px;
 	border-radius: 10px;
 	width: 100%;
 	max-width: 100%;
 	font-size: 0.9rem;
 }

 input[type=radio] {
 	display: none;
 }

 .radio01 {
 	box-sizing: border-box;
 	cursor: pointer;
 	display: inline-block;
 	padding: 10px 0px 10px 50px;
 	position: relative;
 	width: auto;
 	font-size: 0.7rem;
 	color: #000;
    white-space: normal !important;
 }

 .radio01::before {
 	background: #efefef;
 	border: none;
 	border-radius: 50%;
 	content: '';
 	display: block;
 	height: 30px;
 	left: 5px;
 	margin-top: -9px;
 	position: absolute;
 	top: 44%;
 	width: 30px;
 }

 .radio01::after {
 	background: #004ea2;
 	border-radius: 50%;
 	content: '';
 	display: block;
 	height: 16px;
 	left: 12px;
 	margin-top: -4px;
 	opacity: 0;
 	position: absolute;
 	top: 48%;
 	width: 16px;
 }

 input[type=radio]:checked+.radio01::after {
 	opacity: 1;
 }

 input[type=checkbox] {
 	display: none;
 }

 .checkbox01 {
 	box-sizing: border-box;
 	cursor: pointer;
 	display: inline-block;
 	padding: 5px 30px;
 	position: relative;
 	width: auto;
 	font-size: 1.2rem;
 	color: #000;
 }

 .checkbox01::before {
 	background: #fff;
 	border: 1px solid #231815;
 	content: '';
 	display: block;
 	height: 16px;
 	left: 5px;
 	margin-top: -8px;
 	position: absolute;
 	top: 50%;
 	width: 16px;
 }

 .checkbox01::after {
 	border-right: 3px solid #ed7a9c;
 	border-bottom: 3px solid #ed7a9c;
 	content: '';
 	display: block;
 	height: 9px;
 	left: 10px;
 	margin-top: -7px;
 	opacity: 0;
 	position: absolute;
 	top: 50%;
 	transform: rotate(45deg);
 	width: 5px;
 }

 input[type=checkbox]:checked+.checkbox01::after {
 	opacity: 1;
 }

 .form_btn {
 	display: inline-block;
 	border-radius: 6px;
 	font-size: 1.4rem;
 	text-align: center;
 	cursor: pointer;
 	padding: 25px 40px;
 	background: #004ea2;
 	color: #ffffff;
 	transition: .3s;
 	border: 2px solid #004ea2;
 	margin-top: 60px;
 }

 .form_btn:hover {
 	color: #004ea2;
 	background: #ffffff;
 }


 .pt_top_box {
 	width: 100%;
 	text-align: center;
 	background: url(/img/contact/pt_top_img_sp.jpg) top no-repeat;
 	background-size: cover;
 	display: flex;
 	flex-direction: column;
 	justify-content: center;
 	align-items: center;
 	min-height: 870px;
 	color: #fff;
 }

 .pt_top_box h1 {
 	font-size: 1.8rem;
 	margin: 0px 0 !important;
 }

 .pt_top_box .pt_read {
 	font-size: 1rem;
 }


 #contact .contact_contents {
 	max-width: 900px;
 	text-align: left;
 	width: 100%;
 	margin: 0 auto;
 	padding: 100px 10px;
 }

 #contact .contact_contents_blue {
 	max-width: 1080px;
 	text-align: left;
 	width: 100%;
 	margin: 0 auto;
 	padding: 10px;
 	background-color: #03b8df;
 	color: #fff;
 	margin-bottom: 60px;
 }

 #contact .contact_contents_last {
 	max-width: 900px;
 	text-align: left;
 	width: 100%;
 	margin: 0 auto;
 	padding: 5px 0 90px;
 }

 #contact .main_read {
 	font-size: 1.6rem;
 	color: #000;
 	border-bottom: #004ea2 3px solid;
 	display: inline;
 	padding-bottom: 10px;
 	line-height: 2;
 	text-align: left;
 }

 #contact .sub_read {
 	font-size: 0.9rem;
 	margin: 30px 0 40px;
 }

 #contact .pt_app {
 	display: flex;
 	flex-direction: column;
 	align-items: center;
 }

 #contact .pt_app .w_box {
 	background: #fff;
 	border-radius: 6px;
 	padding: 20px;
 	width: 100%;
 	text-align: center;
 	font-size: 0.9rem;
 	margin: 15px 0 15px;
 }

 #contact .pt_app p {
 	font-size: 0.9rem;
 }

 .b_box_mainread {
 	font-size: 1.3rem;
 	padding-bottom: 30px;
 }

 .b_box_subread {
 	font-size: 0.8rem;
 	padding-bottom: 30px;
 }

 .b_box_ex_list {
 	font-size: 0.9rem;
 	padding-bottom: 30px;
 	line-height: 1.8;
 }

 .last_read {
	text-align: center;
 	font-size: 1.5rem;
 	color: #004ea2;
 	padding:0 15px 50px;

 }

 .last_read_sub {
 	font-size: 1.0rem;
 	padding:0 15px 15px;
 }

 .last_read_p {
 	font-size: 0.8rem;
	padding:0 15px 15px;
 }


 /* table */
 .snd_contents table.tbl_a {
 	margin: 30px 0;
 }

 .snd_contents table.tbl_a th, .snd_contents table.tbl_a td {
 	border: none;
 	padding: 0px;
 	text-align: left;
 	font-size: 1.05rem;
 	display: block;
 }

 .snd_contents table.tbl_a th {
 	font-weight: bold;
 	white-space: nowrap;
 }

 .snd_contents table.justify_head th {
 	text-align: left;
 	text-align-last: start;
 	text-justify: auto;
 }

 .snd_contents table.tbl_a td {
 	font-weight: normal;
 	padding-left: 0px;
 	margin-bottom: 15px;
 }

 .snd_contents table.tbl_b {
 	margin: 30px 0;
 	width: 100%;
 }

 .snd_contents table.tbl_b tr {
 	width: 100%;
 	border-bottom: #004ea2 2px solid;
 }

 .snd_contents table.tbl_b th, .snd_contents table.tbl_b td {
 	border: none;
 	padding: 5px 0px 0px;
 	text-align: left;
 	font-size: 1.1rem;
 	display: block;
 }

 .snd_contents table.tbl_b th {
 	font-weight: bold;
 	white-space: nowrap;
 	text-align: left;
 	text-align-last: left;
 	text-justify: auto;
 	margin-top: 25px;
 }


 .snd_contents table.tbl_b td {
 	padding-left: 0px;
 	font-weight: normal;
 	display: flex;
 	flex-direction: column;
 	justify-content: space-between;
 	align-items: left;
 	font-size: 1.05rem;
 	padding-bottom: 15px;
 }

 .snd_contents table.tbl_b td span a {
 	display: inline-block;
 	margin-top: 8px;
 	background: #eaeff9;
 	border-radius: 20px;
 	padding: 20px 20px 20px 60px;
 	position: relative;
 	color: #004ea2;
 }

 .snd_contents table.tbl_b td span a::before {
 	content: "";
 	background-image: url(/img/map_ico.svg);
 	background-repeat: no-repeat;
 	width: 24px;
 	height: 30px;
 	position: absolute;
 	color: #fff;
 	left: 21px;
 	top: 32%;
 }


/*

news css

*/

#news_head {
	text-align: center;
	font-size: 2.1rem;
	border-bottom: 1px solid #004ea2;
	color: #004ea2;
	padding: 0 5px 15px;
}

#news h2 {
	font-size: clamp(15px, 3.5vw, 47px);
}

#news .contents_body {
	color: #000;
}

#news ul.news_list li {
	border-bottom: #ccc solid 1px;
	text-align: left;
	display: flex;
	flex-direction: column;
	padding: 40px 0;
}

#news ul.news_list li .date {
	padding-right: 20px;
	font-weight: normal;
}

#news ul.news_list li a {
	color: #004ea2;
	text-decoration: underline;
}



 /*  DL  */

 .dl_a {
 	display: flex;
 	flex-direction: column;
 	flex-wrap: wrap;
 	text-align: left;
 	margin-top: 40px;
 }

 .dl_a dt, .dl_a dd {
 	padding: 0px;
 	border-bottom: none;
 }

 .dl_a dt {
 	flex-basis: 100%;
	white-space: nowrap;
 }

 .dl_a dd {
 	flex-basis: 100%;
 	padding-bottom: 20px;
 }
 .snd_contents table.tbl_a .dl_a {margin: 0; flex-direction: row;}
 .snd_contents table.tbl_a .dl_a dt {
	flex-basis: 40%;
}
 .snd_contents table.tbl_a .dl_a dd {
	flex-basis: 60%;
	padding-bottom: 8px;
}
 .snd_contents table.tbl_a  .dl_a dt,  .snd_contents table.tbl_a .dl_a dd { padding: 0 0 6px;}


 /* accoudion */
 .accordion p.acc_btn {
 	position: relative;
 	padding: 15px 40px 15px 15px;
 	width: 100%;
 	background-color: #004ea2;
 	color: #fff;
 	font-size: 1.1rem;
 	text-align: left;
 	cursor: pointer;
 	margin-bottom: 15px;
 }

 .accordion p.acc_btn::after {
 	position: absolute;
 	content: "";
 	background: url(/img/ar_down_ico.svg) no-repeat;
 	width: 22px;
 	height: 13px;
 	right: 20px;
 	top: 38%;
 }

 .accordion p.acc_btn.open::after {
 	position: absolute;
 	content: "";
 	background: url(/img/ar_up_ico.svg) no-repeat;
 	width: 22px;
 	height: 13px;
 	right: 20px;
 	top: 38%;
 }

 .answer {
 	padding: 10px 6px;
 	background-color: #fff;
 	max-width: 100%;
 	margin: auto;
 	text-align: left;
 	color: #000;
 	display: none;
 }

 .answer p {
 	background: none;
	color: #000;
 }

 .answer ul {
 	display: flex;
 	justify-content: space-between;
 	flex-wrap: wrap;
 	margin: 30px 0;
 }

 .answer ul li {
 	font-size: 1.0rem;
 	flex-basis: 100%;
 }

#goods .accordion dl dt {
font-size: 1.1rem;
padding: 6px 0 0;
font-weight: bold;
color: #231815;
}
#goods .accordion dl dd {
font-size: 1.1rem;
line-height: 2;
padding: 0px;
}
#goods .accordion dl dd a{
color: #00a0e9;
text-decoration: underline;
}


 /* フッタ */
 footer {
 	width: 100%;
 	background-color: #fff;
 	padding-top: 30px;
 }

 footer>.foot_inner {
 	max-width: 1100px;
 	padding: 0 auto 20px;
 	display: flex;
 	flex-direction: column;
 	justify-content: space-between;
 	text-align: left;
 }

 .foot_lbox {
 	order: 2;
 }

 .foot_rbox {
 	text-align: center;
 	order: 1;
 }

 .foot_rbox img {
 	max-width: 100%;
	width: 250px;
 }

 .foot_lbox ul {
 	display: none;
 	max-width: 600px;
 	flex-direction: row;
 	flex-wrap: wrap;
 }

 .foot_lbox ul li {
 	border-bottom: 1px #ccc solid;
 	padding: 15px;
 	margin-right: 20px;
 	min-width: 146px;
 }

 .foot_id {
 	text-align: center;
 	font-size: 0.68rem;
 	color: #727171;
 	padding: 10px 0 30px;
 }

 /* フッタ ここまで */



/* -----------------------------------------------------------
	pager
----------------------------------------------------------- */
.pager {
    margin:60px auto 30px;
}
.pager ul.pagination {
	text-align: center;
	margin: 0;
	padding: 0;
}
.pager .pagination li {
	margin: 0 2px;
	padding: 0;
	display: inline-block;
	width: 35px;
	height: 35px;
	text-align: center;
	position: relative;
	
}
.pager .pagination li a{
	vertical-align: middle;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	text-align: center;
	display:table;
	color: #004ea2;
	text-decoration: none;
	border: 1px solid #004ea2;
	line-height: 35px;
}
.pager .pagination li a span {
	display:table-cell;
	vertical-align:middle;
}
.pager .pagination li .page-numbers.current {
	vertical-align: middle;
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	text-align: center;
	display:table;
	color: #fff;
	text-decoration: none;
	border: 1px solid #004ea2;
	background: #004ea2;
	line-height: 35px;
	transition: all .2s linear;
}
.pager .pagination li a:hover,
.pager .pagination li a.active {
 	color: #fff;
	background: #004ea2;
	transition: all .2s linear;
}

.pager .pagination li.pre {
	position: relative;
	margin-right: 20px;
}
.pager .pagination li.next {
	position: relative;
	margin-left: 20px;
}
.pager .pagination li.next a span {
	position: relative;
}
.pager .pagination li.pre a span::after,
.pager .pagination li.next a span::after {
	display: block;
    content: '';
    position: absolute;
    top: 50%;
    right: 14px;
    left: auto;
    width: 12px;
    height: 12px;
    margin-top: -6px;
    border-top: 1px solid #004ea2;
    border-right: 1px solid #004ea2;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}
.pager .pagination li.pre a span::after {
	right: auto;
    left: 14px;
	-webkit-transform: rotate(-135deg);
    transform: rotate(-135deg);
}
.pager .pagination li .next.page-numbers,
.pager .pagination li .prev.page-numbers {
	position: relative;
	margin-right: 20px;
}
.pager .pagination li .next.page-numbers::after,
.pager .pagination li .prev.page-numbers::after {
	display: block;
    content: '';
    position: absolute;
    top: 50%;
    right: 14px;
    left: auto;
    width: 12px;
    height: 12px;
    margin-top: -6px;
    border-top: 1px solid #004ea2;
    border-right: 1px solid #004ea2;
    -webkit-transform: rotate(45deg);
    transform: rotate(45deg);
}
.pager .pagination li .prev.page-numbers::after {
	right: auto;
    left: 14px;
	-webkit-transform: rotate(-135deg);
    transform: rotate(-135deg);
}
.pager .pagination li .next.page-numbers:hover::after,
.pager .pagination li .prev.page-numbers:hover::after {
	border-top: 1px solid #fff;
    border-right: 1px solid #fff;
}

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

マージンパディングセット 

==================  */
 /* margin

----------------------- */
 .mt_05 {
 	margin-top: 5px !important;
 }

 .mt_10 {
 	margin-top: 10px !important;
 }

 .mt_15 {
 	margin-top: 15px !important;
 }

 .mt_20 {
 	margin-top: 20px !important;
 }

 .mt_30 {
 	margin-top: 30px !important;
 }

 .mt_40 {
 	margin-top: 40px !important;
 }

 .mt_50 {
 	margin-top: 50px !important;
 }

 .mt_75 {
 	margin-top: 75px !important;
 }


 .mt_100 {
 	margin-top: 100px !important;
 }

 .mt_150 {
 	margin-top: 150px !important;
 }

 .mt_200 {
 	margin-top: 200px !important;
 }

 .mb_02 {
 	margin-bottom: 2px !important;
 }

 .mb_05 {
 	margin-bottom: 5px !important;
 }

 .mb_10 {
 	margin-bottom: 10px !important;
 }

 .mb_15 {
 	margin-bottom: 15px !important;
 }

 .mb_20 {
 	margin-bottom: 20px !important;
 }

 .mb_30 {
 	margin-bottom: 30px !important;
 }

 .mb_40 {
 	margin-bottom: 40px !important;
 }

 .mb_50 {
 	margin-bottom: 50px !important;
 }

 .mb_80 {
 	margin-bottom: 80px !important;
 }

 .mb_100 {
 	margin-bottom: 100px !important;
 }

 .mb_150 {
 	margin-bottom: 150px !important;
 }

 .mb_200 {
 	margin-bottom: 200px !important;
 }

 .ml_10 {
 	margin-left: 10px !important;
 }

 .ml_15 {
 	margin-left: 15px !important;
 }

 .ml_20 {
 	margin-left: 20px !important;
 }

 .ml_25 {
 	margin-left: 25px !important;
 }

 .ml_30 {
 	margin-left: 30px !important;
 }

 .ml_40 {
 	margin-left: 40px !important;
 }

 .ml_50 {
 	margin-left: 50px !important;
 }

 .mr_10 {
 	margin-right: 10px !important;
 }

 .mr_13 {
 	margin-right: 13px !important;
 }

 .mr_15 {
 	margin-right: 15px !important;
 }

 .mr_20 {
 	margin-right: 20px !important;
 }

 .mr_30 {
 	margin-right: 30px !important;
 }

 .mr_40 {
 	margin-right: 40px !important;
 }

 .mr_50 {
 	margin-right: 50px !important;
 }

 /* padding

----------------------- */
 .pt_10 {
 	padding-top: 10px !important;
 }

 .pt_15 {
 	padding-top: 15px !important;
 }

 .pt_20 {
 	padding-top: 20px !important;
 }

 .pt_30 {
 	padding-top: 30px !important;
 }

 .pt_40 {
 	padding-top: 40px !important;
 }

 .pt_50 {
 	padding-top: 50px !important;
 }

 .pt_90 {
 	padding-top: 90px !important;
 }

 .pb_03 {
 	padding-bottom: 3px !important;
 }

 .pb_10 {
 	padding-bottom: 10px !important;
 }

 .pb_15 {
 	padding-bottom: 15px !important;
 }

 .pb_20 {
 	padding-bottom: 20px !important;
 }

 .pb_30 {
 	padding-bottom: 30px !important;
 }

 .pb_40 {
 	padding-bottom: 40px !important;
 }

 .pb_50 {
 	padding-bottom: 50px !important;
 }

 .pb_120 {
 	padding-bottom: 120px !important;
 }

 .pl_10 {
 	padding-left: 10px !important;
 }

 .pl_15 {
 	padding-left: 15px !important;
 }

 .pl_20 {
 	padding-left: 20px !important;
 }

 .pl_30 {
 	padding-left: 30px !important;
 }

 .pl_40 {
 	padding-left: 40px !important;
 }

 .pl_50 {
 	padding-left: 50px !important;
 }

 .pr_10 {
 	padding-right: 10px !important;
 }

 .pr_15 {
 	padding-right: 15px !important;
 }

 .pr_20 {
 	padding-right: 20px !important;
 }

 .pr_30 {
 	padding-right: 30px !important;
 }

 .pr_40 {
 	padding-right: 40px !important;
 }

 .pr_50 {
 	padding-right: 50px !important;
 }