@charset "utf-8";
/* CSS Document */


/*　メニュー　スクロール後 
----------------------------------------------------------*/
/* PCのみ　*/

@media screen and (min-width:950px) {
header.changeNav {
  position:fixed;
  z-index:999;
}
header.changeNav .header_logo {
    top:20px;
    left:25px;
  }
header.changeNav .header .header_logo img {
    width:45px;
  }
header.changeNav .header .g_nav {
    position: absolute;
    top: 28px;
    right: 45px;
    display: block !important;
  }

header.changeNav .header .g_nav .nav li.btn-group {
    margin: -5px 0 0 0;
    padding: 0;
    line-height: 1;
}
header.changeNav .header .g_nav .nav li a {
    -webkit-writing-mode:horizontal-tb;
    -ms-writing-mode:lr-tb;
    writing-mode:horizontal-tb;
    font-size:17px;
}
header.changeNav .header .g_nav .nav li ol {
  gap: 0px 20px;
  flex-flow:wrap;
}
header.changeNav .header .g_nav .nav li ol li a {
    background:#fff;
    border-radius:50%;
  }  
header.changeNav .header .g_nav .nav li ol li a img {
    width:30px;
  }

/* TOPページのみ */
header.changeNavTOP .header .g_nav .nav li a {
    color:#00326d;
}  
header.changeNavTOP .header .header_logo a {
    color:#00326d;
}
header.changeNavTOP .header .header_logo p {
    color:#000;
}
}

@media screen and (min-width: 767px) and (max-width: 949px) {
header.changeNav {
  position:fixed;
  z-index:999;
}
header.changeNav .header_logo {
    top:20px;
    left:20px;
  }
header.changeNav .header .header_logo img {
    width:45px;
  }
header.changeNav .header .g_nav {
    position: absolute;
    top: 28px;
    right:20px;
    display: block !important;
  }
header.changeNav .header .g_nav .nav li.btn-group {
    margin: -5px 0 0 0;
    padding: 0;
    line-height: 1;
}
header.changeNav .header .g_nav .nav li a {
    -webkit-writing-mode:horizontal-tb;
    -ms-writing-mode:lr-tb;
    writing-mode:horizontal-tb;
    font-size:17px;
}
header.changeNav .header .g_nav .nav li ol {
  gap: 0px 20px;
  flex-flow:wrap;
}
header.changeNav .header .g_nav .nav li ol li a {
    background:#fff;
    padding: 10px;
    border-radius:50%;
  }  
header.changeNav .header .g_nav .nav li ol li a img {
    width:30px;
  }

/* TOPページのみ */
header.changeNavTOP .header .g_nav .nav li a {
    color:#00326d;
}  
header.changeNavTOP .header .header_logo a {
    color:#00326d;
}
header.changeNavTOP .header .header_logo p {
    color:#000;
}
}

@media screen and (min-width:768px) and ( max-width:890px) {
header.changeNav {
  position:fixed;
  z-index:999;
}
header.changeNav .header_logo {
    top:20px;
    left:20px;
  }
header.changeNav .header .header_logo img {
    width:40px;
  }
header.changeNav .header .g_nav {
    right:0px;
  }
header.changeNav .header .g_nav .nav li.btn-group {
    margin: -7px 20px 0 0;
    padding: 0;
    line-height: 1;
}
header.changeNav .header .g_nav .nav li a {
    -webkit-writing-mode:horizontal-tb;
    -ms-writing-mode:lr-tb;
    writing-mode:horizontal-tb;
    font-size:16px;
}
header.changeNav .header .g_nav .nav li ol {
  gap: 0px 10px;
  flex-flow:wrap;
}
header.changeNav .header .g_nav .nav li ol li a {
    background:#fff;
    padding:10px;
    border-radius:50%;
  }  
header.changeNav .header .g_nav .nav li ol li a img {
    width:30px;
  }
/* TOPページのみ */
header.changeNavTOP .header .g_nav .nav li a {
    color:#00326d;
}  
header.changeNavTOP .header .header_logo a {
    color:#00326d;
}
header.changeNavTOP .header .header_logo p {
    color:#000;
}
}

/* メニュー幅 */
@media screen and (min-width:901px) {
.header .g_nav ul {column-gap: 30px;}
}
@media screen and (max-width:900px) {
.header .g_nav ul {column-gap:20px;} 
.header .g_nav li.btn-group { margin: 0 0 0 -10px;}
}

/*メニュー幅  クロール後 */
@media screen and (min-width:1201px) {
header.changeNav .header .g_nav ul {column-gap: 30px;}
}
@media screen and (max-width:1200px) {
header.changeNav .header .g_nav ul {column-gap:20px;}  
}
@media screen and (max-width:860px) {
header.changeNav .header .g_nav ul {column-gap:15px;}
header.changeNav .header .g_nav li.btn-group {margin: 0 0 0 -10px;}
}
  


/*　メインイメージ
----------------------------------------------------------*/
.main_v {
  width: 100%;
  height: 120vh;
  /* min-height: 1100px; */
  background-repeat: no-repeat!important;
  /*background: #000;*/
  position: relative;
  /* border: 22px solid #f2f2eb; */
  background:url(../img/main-visual-min.webp);
  background-position: center top;
  background-size:100%;
  z-index:-1;
}

.main_v::after {
  content:"";
  width: 100%;
  height: 100%;
  background:rgba(000,000,000,0.3);
  position:absolute;
  z-index: 1;
}

@media screen and (max-width:1590px) {
 .main_v {height: 100vh;} 
}
@media screen and (max-width:1330px) {
.main_v {height:100vh;background-size:cover;}
.main_v::after{height:100vh;}
}

@media screen and (max-width:1024px) {
.main_v {height:80vh;
  background-size:cover;
}
.main_v::after{height:80vh;}
}


@media screen and (max-width: 767px) {
  .main_v {
    /* height: -webkit-calc(50vh - 64px); */
    height: 80vh;
    margin-top: 64px;
  }
}

@media screen and (max-width:480px) {
  .main_v {
    /* height: -webkit-calc(50vh - 64px); */
    height:60vh;
    margin-top: 64px;
  }
.main_v::after{height:60vh;}
}

.main_v .main_v_logo {
  position: absolute;
  z-index:2;
  top:65vh;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit-transform: translateY(-50%) translateX(-50%);
  text-align: center;
  color:#fff;
  font-size:22px;
  line-height:1.5;
}

.main_v .main_v_logo span.kabu {
font-size:33px;
padding-right:10px;
}
.main_v .main_v_logo span.name {
font-size:38px;
}

.main_v .main_v_logo img {
  width: 82px;
  margin-top: -10px;
}

@media screen and (max-width: 767px) {
.main_v .main_v_logo img {
    width: 52px;}
}

@media screen and (max-width:680px) {
.main_v .main_v_logo {
  top:45vh;
  font-size:15px;
  width:100%;
}
.main_v .main_v_logo span.kabu {
font-size:24px;
padding-right:0px;
}
.main_v .main_v_logo span.name {
font-size:36px;
display:block;
}
}

/*　会社理念
----------------------------------------------------------*/
.company-philosophy {
  margin: 160px auto;
}

@media screen and (max-width: 767px) {
.company-philosophy {
    margin: 56px auto;
  }
}

.company-philosophy .company-logo {
	max-width:15vw;
	margin:auto;
}

.company-philosophy h2{
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    font-size:25px;
    text-align:center;
    margin:20px auto;
    color:#00326d;
    font-weight:500;
}

.company-philosophy h2:after {
    -webkit-writing-mode: vertical-rl;
    -ms-writing-mode: tb-rl;
    writing-mode: vertical-rl;
    font-size:15px;
    content:"●";
    padding:10px 0 0;
    color:#008bd5;
}

.company-philosophy h3 {
    font-size:28px;
    text-align:center;
    line-height:0.7;
    margin:20px auto 50px;
    font-weight:500;
}

.company-philosophy h3 span {
    font-size:20px;
    display:block;
    text-align:center;
    margin:20px auto;
}

.company-philosophy .txt-area p {
	font-size:17px;
    width:640px;
    margin:0 auto;
}

.company-philosophy .txt-area p.notice {
background:#e8edf0;
padding:30px 50px;
font-size:15px;
margin:35px auto;
line-height:2.25;
}

.company-philosophy .txt-area p.notice span {
border-bottom:2px solid #fff;
padding-bottom:3px;
}

@media screen and (max-width:900px) {
.company-philosophy .txt-area p {
    width:90%;}	
}

@media screen and (max-width:767px) {
.company-philosophy .txt-area p {
    width:95%;}	
}



/* トップ　会社概要、事業内容、施工事例
------------------------------------------------------------*/
.service {
	border-top:1px solid #008bd5;
	border-bottom:1px solid #008bd5;
	overflow-x:hidden;
}

.service ul {
	margin:50px auto 50px;
}

.service ul li a {
	max-width:1400px;
	margin:0 auto 0;
	padding:0;
	font-weight:500;
	display: flex;
	display: -ms-flexbox; /* IE10 */
	flex-wrap:wrap;
	-ms-flex-wrap: wrap; /* IE10 */
	gap:0;
}

.service ul li a div {
	overflow: hidden;
	margin:0;
	padding:0;
	position:relative;
}

.service ul li a div.txt-box {
	width:30%;
}

.service ul li a div.img-box {
	width:70%;
}

.service ul li a div h2 {
    font-size:24px;
    letter-spacing:2px;
    padding: 0 10px 0 0;
    position: absolute;
    top:calc(50% - 10px);
    left:50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}

.service ul li a div h2::before {
    content:"●";
	color:#008bd5;
	font-size:16px;
    background-repeat:no-repeat;
    background-size:contain;
    position: absolute;
    top:calc(50% + 35px);
    left:50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    -ms-transform: translate(-50%, -50%);
}

.service ul li a div img {
	display: block;
	width: 100%;
	height: auto;
	z-index:-1;
	transform: scale(1);
	transition: .5s ease-in-out;
}

.service ul li a:hover div img {
  transform: scale(1.05);
  opacity:0.8;
 mix-blend-mode:normal;
}

.service ul li a {
	transform: scale(1);
	transition: .5s ease-in-out;
	opacity:1.0;
}

.service ul li a:hover {
	opacity:0.7;
}

@media screen and (max-width:1500px) {
.service ul li a {
	width:93%;}	
}

@media only screen and (max-width: 1300px) {
.service ul li a div h2 {
    font-size:22px;
}
.service ul li a div h2::before {
    width: 26px;
    height: 26px;}
}

@media only screen and (max-width:820px) {
.service ul li a {margin:0 auto;}
.service ul li a div h2 {
    font-size:20px;
    top:calc(50% - 12px);}
}

@media only screen and (max-width:767px){
.service ul li a div.txt-box {
	width:50%;
}
.service ul li a div.img-box {
	width:50%;
}
.service ul li a div.img-box img {
	object-fit: cover;
	height:200px;
}	
.service ul li a div h2 {
    font-size:20px;
    letter-spacing:0px;
    padding:0 0 0 0;
    position: absolute;
    top:calc(50% - 10px);
}
.service ul li a div h2::before {
    content:"●";
	color:#008bd5;
	font-size:15px;
    top:calc(50% + 35px);
    left:calc( 50% + 5px);
}
}

@media only screen and (max-width:389px){
.service ul li a div.img-box img {
	height:180px;
}	
}



/* トップ　求人情報
------------------------------------------------------------*/
.recruit {
	border-bottom:1px solid #008bd5;
}

.recruit ul {
	margin:30px auto 50px;
}

.recruit ul li a {
	max-width:1400px;
	margin:0 auto 0;
	padding:0;
	font-weight:500;
	display: flex;
	display: -ms-flexbox; /* IE10 */
	flex-wrap:wrap;
	-ms-flex-wrap: wrap; /* IE10 */
	gap:0;
	position:relative;
}

.recruit ul li a div {
	overflow: hidden;
	margin:0;
	padding:0;
	position:relative;
}

.recruit ul li a div.txt-box {
	width: 220px;
	height: 300px;
	right:0;
	top: 0;
	position:absolute;
}

.recruit ul li a div.txt-box h3 {
	color:#008bd5;
	margin: 7vh 0 0;
	padding: 20px 0 30px;
	width:100px;
	border-radius:50%;
	text-align:center;
	line-height: 1.2;
	font-size:15px;
	position:relative;
	z-index:1;
}

.recruit ul li a div.txt-box h3::before {
	background:#fff;
	z-index:-1;
	position:absolute;
	content:"";
	width:100px;
	height:100px;
	border-radius:50%;
	top: 30px;
	left:50%;
	transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
}

.recruit ul li a div.txt-box h3:after{
	font-size:12px;
	position:absolute;
	content:"●";
	color:#008bd5;
	top: 0;
	left:50%;
	transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
}

.recruit ul li a div.txt-box h2 {
	color:#fff;
	font-size:24px;
}

.recruit ul li a div.img-box {
	width:100%;
	position:relative;
	z-index:-1;
}

.recruit ul li a div img {
	display: block;
	width: 100%;
	height: auto;
	z-index:-1;
	transform: scale(1);
	transition: .5s ease-in-out;
}

.recruit ul li a:hover div img {
  transform: scale(1.05);
  opacity:0.8;
 mix-blend-mode:normal;
}

.recruit ul li a {
	transform: scale(1);
	transition: .5s ease-in-out;
	opacity:1.0;
}

.recruit ul li a:hover {
	opacity:0.7;
}

@media only screen and (max-width:1300px) {
.recruit ul li a div.txt-box h2 {
    font-size:22px;}
}

@media only screen and (max-width: 980px){
.recruit ul li a div.txt-box h3 {
	margin:5vh 0 0;
	font-size:14px;
}
.recruit ul {
	margin:30px auto 30px;}
.recruit ul li a div.txt-box h3::before {
	width:90px;
	height:90px;}
}

@media only screen and (max-width:767px){
.recruit ul li a div.txt-box h3 {
	margin:10vh 0 0;
	font-size:14px;
}
.recruit ul li a {
	width:93%;}
.recruit ul li a div.img-box img {
object-fit:cover;
height:300px;
}
.recruit ul li a div.txt-box {
	width: 220px;
	left:10%;
	bottom: 0;
}
}



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

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

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

h2.top-midashi {
	text-align:center;
	color:#008bd5;
	margin:0 auto 50px;
	position:relative;
	font-size:20px;
}

h2.top-midashi:after{
	font-size:12px;
	position:absolute;
	content:"●";
	color:#008bd5;
	top:-10px;
	left:50%;
	transform: translate(-50%, -50%);
	-webkit-transform: translate(-50%, -50%);
	-ms-transform: translate(-50%, -50%);
}


@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:15px;
	margin:0;
	border-bottom:1px solid #ccc;
	list-style-type:none;
	width:100%;
	color:#41536a;
	display: flex;
	flex-wrap:wrap;
	position:relative;
}

div.up_ymd {
	width: 7em;
	padding:20px;
	margin:0 0 0 1em;
	letter-spacing:0.03em;
	color:#008bd5;
}
div.title {
	letter-spacing:0.03em;
	width:calc( 100% - 7em - 6em - 40px);
	/*削除予定*/
	padding:20px;
}


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:0px 4px 1px 5px;
	font-size:11px;
	line-height:16px;
	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 {
padding:18px 10px 20px;
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 {
  transform: scaleX(1);
  transform-origin: bottom left;
  transition: transform 0.3s ease;
  position:absolute;
  content:"";
  top:50%;
  height:1px;
  width:150px;
  background:#036eb8;
  left: -160px;
}

.NEWSmore a:hover::before {
  transform: scaleX(0);
  transform-origin: bottom right;
}

.NEWSmore a:hover {
	color:#3683df;
}


/* Pager style（外部化可） */
.pager{
	text-align:right;
	padding:10px;
	clear:both;
}
/*ページャーボタン*/
.pager a{
    border: 1px solid #00326d;
    border-radius:3px;
    color: #333;
    font-size: 12px;
    padding: 1px 7px 5px 9px;
    text-decoration: none;
    margin:0 1px;
}

/*現在のページのボタン*/
.pager a.current{
    background: #00326d;
    border: 1px solid #999;
    border-radius:3px;
    color: #fff;
    font-size: 12px;
    padding: 1px 7px 5px 9px;
	margin:0 1px;
    text-decoration: none;
}

.pager a:hover{
    background:#fafafa;
    color: #00326d;
}

.overPagerPattern {
	padding:0 2px ;	
}

