@charset "UTF-8";

h2.top-midashi {
	position:relative;
	text-align:center;
	color: #2d416b;
	letter-spacing:4px;
	font-size:26px!important;
	padding:25px 0 30px!important;
	line-height:3;
}

h2.top-midashi::before {
  position: absolute;
  top:0px;
  left:0;
  width:100%;
  height:5px;
  content: '';
  background:#3683df;
}

h2.top-midashi::after {
  position: absolute;
  top:0px;
  right:0;;
  width:50%;
  height:5px;
  content: '';
  background:#d6d8dc;
}

h3.slogan {
color:#3683df;
text-align:center;
font-size:35px;
letter-spacing:10px;
background-image: linear-gradient(120deg, #3683df 40%, #134178 80%);
-webkit-text-fill-color: transparent;
-webkit-background-clip: text;
}

@media screen and (max-width: 767.9px) {
h3.slogan {
font-size:28px;
letter-spacing:3px;}
}

/* もっと見るボタン */
.moreLinkText {
padding:30px 0;
box-sizing: border-box;
clear:both;
}

.moreLinkText a {
color:#fafafa;
text-decoration:none;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all  0.3s ease;
position:relative;
}

.moreLinkText a::before {
content:"";
position:absolute;
top:50%;
transform: translateY(-50%);
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all  0.3s ease;
}

.moreLinkText a::before {
height:9px;
width:9px;
border-radius:50%;
right:24px;
z-index:1;
}

.moreLinkText a:hover::before {
right:20px;
-webkit-animation: pulse 2s infinite;
animation: ripple 1.5s infinite;
}

/* 水色 */
.moreLinkText.LB {
	float:right;
	clear:both;
}
.moreLinkText.LB a {
  background: linear-gradient(to right, #1B85FB, #2d416b);
  background-position: 0% 50%;
  background-size: 200% auto;
  transition: all 0.3s ease-out;
font-size:16px;
padding:13px 50px 15px 35px;
box-shadow:0 0 15px rgba(255,255,255,1.0),
0 0 20px rgba(255,255,255,1.0);
}
.moreLinkText.LB a::before {
background:#ddd;	
}
.moreLinkText a:hover::before {
background:#fff;
}
.moreLinkText.LB  a:hover {
background-position: 100% 51%;
}

/*　濃紺枠　白バック */
.moreLinkText.WB {
	width:220px;
	margin:auto;
	clear:both;
}

.moreLinkText.WB a {
color:#2d416b;
font-weight:600;
font-size:17px;
padding:13px 40px 15px 40px;
border:2px solid #2d416b;
box-shadow:0 0 10px rgba(54, 131, 223, 0.4),
0 0 20px rgba(255,255,255,1.0);
}
.moreLinkText.WB a::before {
background:rgba(54, 131, 223, 0.3);	
}
.moreLinkText a:hover::before {
background:#fff;
}
.moreLinkText.WB  a:hover {
background:#2d416b;
color:#fff;
}

/*　濃紺バック */
.moreLinkText.DB {
	width:300px;
	margin:auto;
	clear:both;
}
.moreLinkText.DB a {
background: linear-gradient(to right, #2d416b, #1B85FB);
background-position: 0% 50%;
  background-size: 200% auto;
font-size:17px;
padding:13px 50px 15px 35px;
box-shadow:0 0 15px rgba(255,255,255,1.0),
0 0 20px rgba(255,255,255,1.0);
}
.moreLinkText.DB  a:hover {
background-position: 100% 51%;
}
.moreLinkText.DB a::before {
background:#ddd;	
}
.moreLinkText.DB a:hover::before {
background:#fff;
}

@keyframes ripple {
  0% {box-shadow: 0 0 0 0 #ffffff;}
  70% {box-shadow: 0 0 0 10px rgb(27 133 251 / 0%);}
  100% {box-shadow: 0 0 0 0 rgb(27 133 251 / 0%);}
}

@media screen and (max-width: 767.9px) {
.moreLinkText {
	float: none;
	width: 80%;
	padding:30px 0;
	margin:auto;
	box-sizing: border-box;
	clear:both;}
}



/* 企業情報
------------------------------------------------------------*/
#company {
  position: relative;
}

#company .section-body {
  position: relative;
  width: 100%;
  height:450px;
}

#company .bg-image-clip {
  position: absolute;
  top:0px;
  left: 0;
  width: 100%;
  height: 100%;
  min-height:450px;
  clip-path: inset(0); /* 切り抜き */
  z-index: -1;
}

#company .bg-image-fixed {
  position: fixed; /* 背景を固定 */
  top:-10px;
  width: 100%;
  height: 100%;
  background-position: center;
	background-image: url("../images/top/company.jpg");
}

#company ul {
	padding:20px 0 0;
	letter-spacing:2px;
	color: #2d416b;
}
#company ul li.txt{
	text-shadow:0 0 5px rgba(255,255,255,1.0),
	0 0 7px rgba(255,255,255,1.0),
	0 0 3px rgba(255,255,255,1.0);
}

#company h2 {
	font-size:28px;
	letter-spacing:6px;
	line-height:1.6;
}

#company h2 br {
	display:none;
}

#company p {
	font-size:15px;
	margin:20px 0 0;
	line-height:1.8;
}

@media screen and (max-width:1025px) {
#company h2 br {
	display:block;}
}

@media screen and (max-width:480px) {
#company .bg-image-clip {
  min-height:550px;
}
	
#company h2 {
	text-align:center;}
	
#company p {
	text-align:center;
	line-height:2;
}
}

/* 事業案内
------------------------------------------------------------*/
.business-link {
  display: block;
  position: relative;
  height: 100%;
  background-color: #fff;
  box-shadow: 0 0 15px rgba(54, 131, 223, 0.2);
  overflow: hidden;
  margin-bottom: 8px;
  color: #2d416b;
}

.business-link::after {
  content: "";
  display: block;
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background-color: rgba(54, 131, 223, 0.5);
  opacity: 0;
  transition: opacity 0.2s ease-out;
  pointer-events: none;
}
.business-link img {
  display: block;
  width: 100%;
  aspect-ratio: 1.91/1.5;
  -o-object-fit: cover;
  object-fit: cover;
}
.business-link .txt {
  margin-top: 20px;
  padding: 0 6% 7%;
  color: #2d416b;
  text-align: center;
}
.business-link p {
  display: -webkit-box;
  margin-top: 12px;
font-size: clamp(16px, 1.7rem, 1.7rem);
  font-weight: 700;
  line-height: 1.5;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 5;
  overflow: hidden;
}
.business-link:hover, .business-link:active {
  color: #2e2e2e;
}
.business-link:hover::before, .business-link:active::before {
  animation: arrow-right 0.5s ease-in-out;
}
.business-link:hover::after, .business-link:active::after {
  opacity: 0.12;
}

@media screen and (max-width:1023px) {
.business-link p {
font-size:16px;}
}

@media screen and (max-width:950px) {
.business-link p {
font-size:18px;}

#business .col-4 {
	display: flex;
    flex-wrap: wrap;
    gap: 5vw;
    margin-top: 5vw;
  }
#business .col-4 .col-li {
    width: calc((100% - 5vw) / 2);
    margin-top: 0;
  }
#business + .col-4.sp-col-1 {
    display: block;
  }
#business + .col-4.sp-col-1 .col-li {
    width: auto;
    margin-top: 5vw;
  }
#business + .col-4.sp-col-1 .col-li:first-child {
    margin-top: 0;}	
}


@media screen and (max-width: 767.9px) {
.business-link {
    height: auto;
    width: 100%;
    margin:10px auto 10px;
}
#business .col-4 {
	display: flex;
    flex-wrap: wrap;
    gap: 5vw;
    margin-top:40px;
  }
#business .col-4 .col-li {
    width:100%;
    margin-top: 0;
  }
}


.maintenance {
/* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#2d416b+18,3683df+74,ffffff+100 */
	background: linear-gradient(45deg,  rgba(45,65,107,1) 18%,rgba(54,131,223,1) 74%,rgba(255,255,255,1) 100%);
	/* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
	color:#fff;
	padding:30px 50px 30px 0;
	margin:50px auto 0;
}

.maintenance > .col-2 {
  display: flex;
  flex-wrap: wrap;
  gap: min(2.8vw, 40px);
  margin-top:0px;
}

.col-2 .col-li.mainte-title {
	width: max(30% - 1.402vw, 30% - 20px);
	border-right:1px solid #fafafa;
}
.col-2 .col-li.mainte-title h3 {
margin:10px auto 0;
text-align:center;
font-size:20px;
font-weight:500;
letter-spacing:3px;
}

.col-2 .col-li.mainte-text {
  width: max(70% - 1.402vw, 70% - 20px);
}

.col-2 .col-li.mainte-text p {
  line-height:1.7;
}

@media screen and (max-width:950px) {
.maintenance {
/* Permalink - use to edit and share this gradient: https://colorzilla.com/gradient-editor/#2d416b+18,3683df+74,ffffff+100 */
	background: linear-gradient(45deg,  rgba(45,65,107,1) 18%,rgba(54,131,223,1) 74%,rgba(255,255,255,1) 100%);
	/* W3C, IE10+, FF16+, Chrome26+, Opera12+, Safari7+ */
	color:#fff;
	padding:30px 50px 30px;
	margin:50px auto 0;
}
.col-2 .col-li.mainte-title h3 {
	margin: 10px 0 0 10px;
	text-align: left;
	font-size:20px;
	font-weight:500;
	letter-spacing:3px;
}
}

@media screen and (max-width: 767.9px) {
.col-2 .col-li.mainte-title h3 {
	margin:0 auto;
	text-align:center;
	font-size:20px;
	font-weight:500;
	letter-spacing:3px;
}
.col-2 .col-li.mainte-title {
width:100%;
border-right:none;
}
.maintenance {
	padding:25px 50px 20px;
}
.maintenance .col-2 {
    display: block;
    width: 100%;
    margin: 10px auto 0;
  }
.maintenance .col-2 .col-li {
    width: 100%;
    margin: 0 auto 20px;
  }
}

@media screen and (max-width:431px) {
.maintenance {
	padding:25px 35px 20px;
}
}



/* 施工実績
------------------------------------------------------------*/
#works .body-container {
	padding: 120px 5vw 0;
}







/* 採用情報
------------------------------------------------------------*/
#recruit {
	position: relative;
	background: url(../images/top/recruit.jpg) bottom center no-repeat;
	background-size: cover;
}

#recruit .body-container {
	padding: 60px 5vw 60px;
}

#recruit h2,#recruit p {
	color: #2d416b;
	text-align:center;
	text-shadow:0 0 5px rgba(255,255,255,1.0);
}

#recruit h2 {
	font-size:28px;
	letter-spacing:6px;
	line-height:1.6;
}

#recruit h2 br {
	display:none;
}

#recruit p img {
	max-width:1000px;
	filter: drop-shadow(25px 8px 7px #006bdf);
}

#recruit p {
	font-size:16px;
	margin:20px 0 0;
	line-height:1.8;
	font-weight:700;
}

@media screen and (max-width:1025px) {
#recruit h2 br {
	display:block;}
}

@media screen and (max-width:820px) {
#recruit p img {
	width:90%;
	margin:auto;
}
}

@media screen and (max-width:480px) {
#recruit .bg-image-clip {
  min-height:550px;
}
#recruit p img {
	width:95%;
	margin:auto;
}
#recruit h2 {
	text-align:center;}
#recruit p {
	text-align:center;
	line-height:2;}
}

@media screen and (max-width:390px) {
#recruit .bg-image-clip {
  min-height:550px;
}
#recruit p {
	font-size:15px;
}
}



/* 新着情報
------------------------------------------------------------*/
#news .news-frame {
	height:220px;
}

@media only screen and ( max-width:850px ) {
#news .news-frame {
	height:340px;
}
}

#news {
	padding:50px 0;
	max-width:1300px;
	margin:auto;
}

@media only screen and ( max-width:1360px ) {
#news {
	width:90%;
	margin:auto;}	
}

ul#newsList {
	margin:0 auto 15px;
	padding:0;
	border-top:1px solid #ccc;
}
ul#newsList li {
	font-size:14px;
	margin:0;
	border-bottom:1px solid #ccc;
	list-style-type:none;
	width:100%;
	color:#41536a;
	display: flex;
	flex-wrap:wrap;
	position:relative;
}

ul#newsList li:before {
	position:absolute;
	content:"";
	top:50%;
}

ul#newsList li:after {
	position:absolute;
	content:"";
	top: calc(50% + 0.5px);
}

ul#newsList li:before {
  transform: scaleX(0);
  transform-origin: bottom left;
  transition: transform 0.3s ease;
}

ul#newsList li:hover::before {
  transform: scaleX(1);
  transform-origin: bottom right;
}

ul#newsList li:before {
	height:1px;
	width:150px;
	background:#036eb8;
	right:20px;
}
ul#newsList li:after {
	width:8px;
	height:8px;
	border-radius:50%;
	background:#036eb8;
	right:20px;
	transform: translateY(-50%);
	-webkit-transition: all 0.3s ease;
	-moz-transition: all 0.3s ease;
	-o-transition: all 0.3s ease;
	transition: all  0.3s ease;
}

ul#newsList li:hover::after {
  right: 13px;
}

div.up_ymd {
	width: 7em;
	padding:20px;
	margin:0 0 0 1em;
	letter-spacing:0.03em;
	color:#036eb8;
}
div.title {
	letter-spacing:0.03em;
	width:calc( 100% - 7em - 6em - 40px);
}


h2.news-top-title { 
	margin: auto;
	text-align:center;color:#2d416b;
}

div.title a {
	padding:20px;
}

ul#newsList li { 
text-decoration:none;
color:#2e2e2e;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all  0.3s ease;
}

ul#newsList li:hover { 
background:#fafafa;
}

.catName {
	text-align:center;
	color:#fff;
	margin:20px 20px;
	font-size:11px;
	width:6em;
	padding: 2.5px 6px 3px;
	background:#3683df;
}
.cat-0 .catName {
	background:#3683df;
}
.cat-1 .catName {
	background:#1e50a2;
}

.newMark {
	padding:1px 4px 3px 5px;
	font-size:11px;
	display:inline-block;
	margin-left:1em;
	background:#ff0052;
	color:#fff;
	animation: bounce 2s infinite;
}

@keyframes bounce {
  0%, 20%, 50%, 80%, 100% {
    transform: translateY(0); /* 初期位置 */
  }
  40% {
    transform: translateY(-3px);
  }
  60% {
    transform: translateY(-2px);
  }
}

@media only screen and (max-width:850px){
div.title {
	letter-spacing:0.03em;
	width:calc( 100%  - 50px);
}
ul#newsList li:before {
	display:none;}

ul#newsList li:after {
}

ul#newsList li:after {
background:#ddd;	
right:25px;
}

ul#newsList li:hover::after {
right:20px;
background:#036eb8;
}

	
div.up_ymd {
	padding:10px 10px 3px;
	margin:0;
}
div.title {
position:relative;
}

div.title a {
	padding:5px 10px 15px;
}
	
.catName {
	text-align:center;
	color:#fff;
	margin:10px 10px 3px;
	font-size:11px;
	width:6em;
	padding: 2.5px 6px 3px;
	background:#3683df;
}
}

.NEWSmore {
	margin:30px 15px 0 0;
	float:right;
	box-sizing: border-box;
	clear:both;
}

.NEWSmore a {
border:2px solid #eee;
padding:18px 10px 20px;
width:260px;
border-radius:60px;
color:#036eb8;
text-align:center;
text-decoration:none;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all  0.3s ease;
position:relative;
}

.NEWSmore a::before {
background:#ddd;
content:"";
position:absolute;
top:50%;
transform: translateY(-50%);
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all  0.3s ease;
height:9px;
width:9px;
border-radius:50%;
right:24px;
z-index:1;
}

.NEWSmore a:hover {
background:	rgba(54, 131, 223, 0.05);
}

.NEWSmore a:hover::before {
background:#036eb8;
right:20px;
}

h2.single-title {
	position:relative;
	padding:0 0 15px;
	color:#2e2e2e;
}

h2.single-title::before {
  position: absolute;
  bottom:0px;
  left:0;
  width:100%;
  height:3px;
  content: '';
  background:#3683df;
}

h2.single-title::after {
  position: absolute;
  bottom:0px;
  right:0;;
  width:50%;
  height:3px;
  content: '';
  background:#d6d8dc;
}

.detailText span {
	font-size:15px!important;
	font-weight:500;
	letter-spacing:1px;
}

#up_ymd{
	text-align:right;
	font-size:15px;
	letter-spacing:1px;
	margin:5px 10px;
	color:#41536a;
}

.detailUpfile {
	margin:5px 0 35px;
	text-align:center;
}
.backORcloseBtn {
text-align:center;
line-height:100%;
margin-top:15px;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all  0.3s ease;
}
.backORcloseBtn a {
	display:inline-block;
	padding:10px 15px 10px 35px;
	border:1px solid #3683df;
	color:#3683df;
	text-decoration:none;
	font-size:12px;
	background:#fafafa;
	position:relative;
}

.backORcloseBtn a::after {
    content: "";
    border-top: 2px solid #036eb8;
    border-right: 2px solid #036eb8;
    width: .7em;
    height: .7em;
    position: absolute;
    top: calc(50% - .5em / 2 * 1.4 + 1.5px);
    left:1.5em;
    transform: rotate(-135deg);
}

.backORcloseBtn a:hover {
background:#fff;
}

.detailUpfile img {
	max-width:100%;
	height:auto;
}

/* ぱんくず */
.pNav {
	display: flex;
	flex-wrap:wrap;
	position:relative;	
	font-size:12px;	
	background:#fafafa;
	padding:20px 10%;
	letter-spacing:1px;
	line-height:1.7;
}

@media only screen and (max-width:1800px){
.pNav {
	padding:20px 8%;}	
}

@media only screen and (max-width:1600px){
.pNav {
	padding:20px 5%;}	
}

@media only screen and (max-width:1500px){
.pNav {
	padding:20px 3%;}	
}


.pNav a:first-child {
	margin:0 20px 0 0px;
}
.pNav a {
	margin: 0 35px 0 15px;
	position:relative;
-webkit-transition: all 0.3s ease;
-moz-transition: all 0.3s ease;
-o-transition: all 0.3s ease;
transition: all  0.3s ease;
}

.pNav a::after {
    content: "";
    border-top: 1.5px solid #036eb8;
    border-right: 1.5px solid #036eb8;
    width: .5em;
    height: .5em;
    position: absolute;
    top: calc(50% - .5em / 2 * 1.4 + 1.5px);
    right: -1.5em;
    transform: rotate(45deg);
}

.pNav a:hover {
color:#036eb8;
}

/* Pager style（外部化可） */
.pager {
	display: flex;
	flex-wrap:wrap;
	justify-content:flex-end;
	position:relative;
	padding: 20px 10px 20px;
	clear:both;
	letter-spacing:0.2px;
}
/*ページャーボタン*/
.pager a {
    border: 1px solid #41536a;
    color: #41536a;
    font-size:10px;
    padding:3px 7px 2px;
    text-decoration: none;
	margin:0 2px;
}

/*現在のページのボタン*/
.pager a.current {
    background: #666;
    border: 1px solid #41536a;
    color: #fff;
    font-size: 12px;
    padding:2px 7px 2px;
	margin:0 2px;
    text-decoration: none;
}

.pager a:hover {
    background:#41536a;
    color: #fff;
}

.overPagerPattern {
	padding:0 2px ;	
}