@charset "utf-8";

img, object, embed, video {
	max-width: 100%;
}

.ie6 img {
	width:100%;
}


@media (min-width: 751px) {
    a[href*="tel:"] {
        pointer-events: none;
        cursor: default;
        text-decoration: none;
    }
}

html,body{
    padding:0;
    margin:0;
    font-size: 62.5%;
}

a {
	text-decoration: none;
}


div {
	margin: 0;
	padding: 0;
}

figure {
	margin: 0;
	padding: 0;
}

.font_poppins {
	font-family: 'Poppins', sans-serif;
}

/* モバイルレイアウト : 480 px およびそれ以下. */

.gridContainer {
	width:100%;
	padding: 0;
	margin: 0;
		font-family: 'Noto Sans JP', sans-serif;
}

header {
	display: block;
	width: 100%;
	padding: 0;
	margin: 0;
}

.top_box {
	background-color: rgba(255,255,255,0.7);
	display: block;
	padding-left:8px;
	z-index: 88;
	position:relative;
	top:0;
	left: 0;
	height: 62px;
}

.h1_box {
	display: table;
	height: 62px;
}

h1 {
	display: table-cell;
 vertical-align: middle;
	padding: 0;
	margin: 0;
	line-height: 30px;
}

h1 a{
	color: #333333;
}

h1 a:visited{
	color: #333333;
}


.main_logo {
	vertical-align: middle;
	max-width: 50px;
	margin-left: 2vw;
		margin-top: 15px;
}

nav {
margin: 0;
padding: 0;
position: absolute;
right: 0;
top:0;
display: table;
font-family: 'Noto Sans JP', serif;
}

#nav_drawer {
  position:relative;
}

#nav_drawer:after {
	display: block;

}

.nav_unshown {
  display:none;
}

.nav_bar {
	position: relative;
	height: 62px;
}

#nav_open {
  display: inline-block;
  width: 62px;
  height: 62px;
}



#nav_open span, #nav_open span:before, #nav_open span:after {
  position: absolute;
  height: 2px;
  width: 25px;
  border-radius: 3px;
  background: #161b61;
  display: block;
  content: '';
  cursor: pointer;
	top: -5px;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
}
#nav_open span:before {
  bottom: 7px;
	  width: 25px;
		right: 0;

}
#nav_open span:after {
  bottom: -15px;
	width: 25px;
}

#nav_close {
  display: none;
  position: fixed;
  z-index: 99;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background: black;
  opacity: 0;
  transition: .3s ease-in-out;
}

#nav_content {
  overflow: auto;
  position: fixed;
  top: 0;
  left: 0;
  z-index: 9999;
  width: 70%;
  max-width: 330px;
  height: 100vh;
  background: #fff;
  transition: .3s ease-in-out;
  -webkit-transform: translateX(-105%);
  transform: translateX(-105%);
}


#nav_input:checked ~ #nav_close {
  display: block;
  opacity: .5;
}

#nav_input:checked ~ #nav_content {
  -webkit-transform: translateX(0%);
  transform: translateX(0%);
  box-shadow: 6px 0 25px rgba(0,0,0,.15);
	background-color: #161b61;
}

.nav_ul {
	list-style: none;
	margin: 0;
	padding: 0;
	margin-top: 50px;
}

.nav_ul li{
	padding:0;
	margin: 0;
	border-bottom: rgba(255,255,255,0.3) solid 1px;
}

.nav_ul li a{
	padding: 15px;
	padding-left: 30px;
	margin: 0;
	font-size: 15px;
		color: #fff;
		display: block;
		position: relative;
		letter-spacing: 1px;
}

.nav_ul li a:after{
	font-family: "Font Awesome 5 Free";
   content: '\f105';
   font-weight: 900;
	 color: #fff;
	 position: absolute;
	 top:18px;
	 right: 10px;
}

.nav_ul li a:visited {
	color: #fff;
}

.header_img_div {
	margin-top: 20px;
	position: relative;
	text-align: right;
}



.header_img_div:after {
	position: absolute;
	top:10vh;
	left:0;
	content:"";
	width: 80%;
	height: 90%;
	background-color:#161b61;
	z-index: -1;
}

.header_img_figure {
	width: 90%;
	height: 400px;
	background-image: url(../img/header_img_no_font.png);
	background-size: cover;
	display: inline-block;
	position: relative;

}


.header_img_figure:after {
	content: "";
background-color: rgba(0,0,0,0.6);
	position: absolute;
	top:0;
	left: 0;
	width: 100%;
	height: 100%;

}

/*animation*/

.img-animation_2 {
  animation: img-opacity_2 2s cubic-bezier(.4, 0, .2, 1);
  overflow: hidden;
  position: relative;
}

.img-animation_2:before {
  animation: img-animation_2 2s cubic-bezier(.4, 0, .2, 1) forwards;
  background: #fff;
  bottom: 0;
  content: '';
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1;
}

@keyframes img-opacity_2 {
  0% {
    opacity: 0;
  }
}

@keyframes img-animation_2 {
  100% {
    transform: translateX(-100%);
  }
}


.img-animation {
  animation: img-opacity 2s cubic-bezier(.4, 0, .2, 1);
  overflow: hidden;
  position: relative;
}

.img-animation:before {
  animation: img-animation 2s cubic-bezier(.4, 0, .2, 1) forwards;
  background:#fff;
  bottom: 0;
  content: '';
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 1;
}

@keyframes img-opacity {
  0% {
    opacity: 0;
  }
}

@keyframes img-animation {
  100% {
    transform: translateX(100%);
  }
}

/*animation*/

.header_img {
width: 100%;
height: auto;
}



.header_img_div_p {
	position: absolute;
	bottom: 0;
	left: 0;
	font-size: 40px;
	font-weight: 900;
	color: #fff;
	margin-left: 15%;
	width: auto;
	letter-spacing: 5px;
	text-align: left;
}

.content {
	display: block;
	width: 100%;
	margin-top: 10vh;
}

.about_flex_box {
height:auto;
}

h2 {
	text-align: center;
	font-size: 16px;
	font-weight: 900;
	margin-top: 20vh;
	margin-bottom: 5vh;
}

h2:before {
	display: block;
	content: "ABOUT US";
	text-align: center;
	font-size: 16px;
	font-weight: 900;
	margin-top: 10vh;
	margin-bottom: 10vh;
}

.h2_big {
	display: block;
	font-size: 22px;
	letter-spacing: 3px;
	margin:2.5vh 0 0 0;
}

.h2_p {
	padding: 20px;
	font-size: 14px;
	letter-spacing: 2px;
	line-height: 30px;
}

.business_link_div_back {
	position: relative;
}

.business_img_figure {
	width: 100%;
	height: auto;
}

.business_img {
	width: 100%;
}

.business_link_div {
	position: absolute;
	    position: absolute;
	    top: 10%;
	    left: 5%;
	    width: 90%;
	    height: 80%;
	    display: block;
	    z-index: 1;
			background-color: rgba(255, 255, 255, 0.5);
}

h3 {
	margin: 0;
	font-size: 21px;
	letter-spacing: 3px;
	font-weight: 900;
	padding: 20px;
	width: auto;
}

h3:after {
	display: block;
	content: "事業内容";
	letter-spacing: 2px;
	font-size: 14px;
}

.boder_a {
	display: block;
	padding:15px 10px;
	border: 1px solid #000;
	font-size: 12px;
	letter-spacing: 2px;
	color: #000;
	width: auto;
	margin: 10px 20px;
}

.boder_span {
	display:flex;
	align-items:center;
}

.boder_span:after {
	margin-left: 5px;
	border-top:1px solid #000;
	content: "";
	flex-grow: 1;
}

.link_flex_div {
	margin-top: 10vh;
	margin-bottom: 10vh;
	height: auto;
}

.link_a , .link_a:visited{
	display: block;
	margin-top: 20px;
	color: #000;
}

.link_div {
	display: flex;
}

.link_flex {
	flex-basis: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.link_flex_p {
	font-size: 18px;
	letter-spacing: 2px;
	font-weight: 900;
}

.company_p:after {
	content: "会社概要";
	display: block;
	font-size: 12px;
	font-weight: normal;
	text-align: center;
	font-weight: 600;
}

.works_p:after {
	content: "施工実績";
	display: block;
	font-size: 12px;
	font-weight: normal;
	text-align: center;
	font-weight: 600;
}

.message_p:after {
	content: "代表者挨拶";
	display: block;
	font-size: 12px;
	font-weight: normal;
	text-align: center;
	font-weight: 600;
}

.recruit_div_box {
margin-top: 10vh;
margin-bottom: 10vh;

}

.recruit_div {
	background-image: url(../img/recruit_img.png);
	background-position: center;
	background-size: cover;
	background-repeat: no-repeat;
}

.recruit_h3_back {
	background-color: rgba(0, 0, 0, 0.5);
	height: 35vh;
	width: 45%;
	padding:20px  0  0 5%;
}

.recruit_h3 {
	color: #fff;
	font-size: 21px;
	font-weight: 900;
	margin: 0;
	padding: 0;
}

.recruit_h3:after {
	font-size: 12px;
	font-weight: normal;
	display: block;
	content: "求人情報";
	margin-bottom: 40px;
}

.recruit_p {
	padding: 0;
	margin: 0;
	color: #fff;
	font-size: 14px;
	text-align: center;
	letter-spacing: 2px;
	line-height: 30px;
}

.h3_big {
	font-size: 18px;
	font-weight: 900;
}

.recruit_p_2 {
	padding: 20px;
	text-align: center;
	font-size: 18px;
	letter-spacing: 2px;
	font-weight: 900;
	line-height: 40px;
}

.recruit_p_3 {
	padding: 20px;
	font-size: 14px;
	letter-spacing: 1px;
	line-height: 30px;
}

.pc_boder_a_recruit {
	display: block;
	margin: 10px 5vw;
	padding:15px 10px;
	border: 1px solid #000;
	font-size: 12px;
	letter-spacing: 2px;
	color: #000;
	width: auto;
}

.pc_boder_a_recruit:visited{
	color: #000;
}

.boder_span_pc_recruit {
	display:flex;
	align-items:center;
	color: #000;
}

.boder_span_pc_recruit:after {
	margin-left:5px;
	border-top:1px solid #000;
	content:"";
	flex-grow:1;
}


footer {
	display: block;
	width: 100%;
	padding: 0;
	margin: 0;
	margin-top: 10vh;

}

.footer_1 {
	position: relative;
	text-align: right;
}

.footer_1:before {
	position: absolute;
	top:0;
	left:0;
	content:"";
	width: 267px;
	height: 250px;
	background-color:#000;
	z-index: -1;
}

.top_link_div {
	display:block;
}

.footer_link:before {
	content: "TOP";
	padding-right: 5px;
	font-size: 12px;
}

.footer_link {
	display: inline-block;
	font-size: 20px;
	padding:10px 5vw;
	background-color: #fff;
}

.footer_content {
	background-color:#161b61;
	width: 90%;
	display: inline-block;
	text-align: center;
	color: #fff;
}

.footer_p_contact {
	font-size: 21px;
	font-weight: 900;
	letter-spacing: 2px;
	margin: 20px;
}

.footer_p {
		font-size:12px;
		letter-spacing: 1px;
		margin: 20px;
}

.footer_img {
	width: 25%;
}

.tel_p {
	font-size: 26px;
	margin: 20px;
	margin-bottom: 0;
}

.tel_p a, .tel_p a:visited {
		width: auto;
  color: #fff;
}


.footer_ul {
	list-style: none;
	width: 80%;
	margin: auto;
	padding: 0;
	padding-bottom: 20px;
	border-bottom:  solid 1px #fff;
	margin-bottom: 30px;
}

.footer_ul li{
	margin: 0;
	padding: 20px 0 0 0;
}

address{
	font-style:normal;
}

.address_ul {
	padding: 0;
	margin: 0;
	list-style: none;
}

.address_ul li{
	padding: 10px;
	margin: 0;
	display: block;
	font-size: 12px;
	letter-spacing: 1.5px;
}

.footer_link_ul {
	list-style: none;
	padding: 0;
	margin: 0;
	margin-top: 20px;
	margin-bottom: 40px;
	text-align: center;
}

.footer_link_ul li{
	padding: 10px;
	margin: 0;
	width: auto;
	margin-left: 50%;
	display: block;
}

.footer_link_ul li a, .footer_link_ul li a:visited{
		width: auto;
  color: #fff;
}

.footer_link_ul li a .font_poppins, .footer_link_ul li a .font_poppins:visited{
		width: auto;
  color: #fff;
}



.footer_boder:after {
	border-color: #fff;
}

small {
	position: absolute;
	bottom:0;
	left: 0;
	color: #000;
	line-height: 30px;
	font-size: 12px;
	padding-bottom: 10px;
	-ms-writing-mode: tb-rl;
 writing-mode: vertical-rl;
}

small a, small a:visited {
  color: #000;
}


/* タブレットレイアウト : 481 px ～ 768 px。モバイルレイアウトからスタイルを継承。 */

@media only screen and (min-width: 481px) {
.gridContainer {
	width: 100%;
		padding: 0;
	margin: 0;
}

.header_img_div:after {
	width: 80%;
	max-height: 600px;
}

.header_img_figure {
	width:80%;
	height: 400px;
	background-position: center center;
}
.about_flex_box {
	margin-top: 15vh;
	display: flex;
	align-items: center;
	justify-content: center;
}

.about_flex_div {
	flex-basis: 50%;
}

h2 {
	text-align: center;
	font-size: 16px;
	font-weight: 900;
	margin-top: 0;
	margin-bottom: 5vh;
}

.link_flex_div {
	display: flex;
}

.link_a {
	margin: 20px;
}

.link_div {
	display: flex;
	flex-direction: column;
}

.business_link_div_back  {
flex-basis: 60%;
}

.business_link_div {
	position: absolute;
	  top: 50%;
	  left: 50%;
	  transform: translateY(-50%) translateX(-50%);
	  -webkit- transform: translateY(-50%) translateX(-50%);
    background-color: rgba(0,0,0,0.6);
		color: #fff;
		padding: 5%;
		width: auto;
		height: auto;
}

.boder_a , .boder_a:visited{
	color: #fff;
	  border: 1px solid #fff;
}



.recruit_div_box {
	display: flex;
}

.recruit_div_flex {
	flex-basis: 50%;
}

.recruit_h3_back {
min-height: 446px;
position: relative;
}

.recruit_h3 {
	font-size: 30px;
}

.recruit_p {
	position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  -webkit- transform: translateY(-50%) translateX(-50%);
	font-size: 20px;
	line-height: 48px;
}

.h3_big {
	font-size: 28px;
}

.footer_content_flex_box {
	display: flex;
	align-items: center;
}

.footer_flex_contact:nth-child(1) {
	margin: 15px;
	border-right: 1px solid #fff;
}

.footer_img {
	width: 10%;
}

.footer_img_logo {
	width: 50%;
}

.footer_ul {
	border-bottom: none;
	font-size: 14px;
}

.footer_flex_contact_2_box {
	display: flex;
	flex-direction: column;
}

.footer_flex_contact_2_div {
	display: flex;
	align-items: center;
	justify-content: center;
}

.footer_flex_contact_2 {
	flex-basis: 50%;

}

.address_ul {
	text-align: left;
	padding-right: 20px;

}

.address_ul li {
	font-size: 14px;
}

.footer_link_ul {
		margin-top: 40px;
}

.footer_link_ul li{
		margin-left: 0;
		display: inline-block;
		font-size: 14px;
}



}

/* デスクトップレイアウト : 769 px ～最大 1232 px。モバイルレイアウトとタブレットレイアウトからスタイルを継承。 */

@media only screen and (min-width: 769px) {
.gridContainer {
	width: 100%;
	max-width: 1920px;
	padding: 0;
	margin: 0;
}

.main_logo {
padding-top: 1.5vh;
padding-left: 1.5vw;
max-width: 80px;
}


nav {
	top: 0;
	padding: 0;
}

.nav_bar {
	height: auto;
}

#nav_drawer {
	width: 100%;

}

#nav_drawer:after {
	content: '';
}

#nav_open {
    display:none;
  }

	#nav_content {
	transform: none;
	max-width:initial;
	width: 100%;
	height: auto;
	position: static;
	background-color: transparent;
	}


	#nav_content .nav_ul{
		margin: 0;
		padding: 0;
		display: flex;
		justify-content: center;
align-items: center;
		height: 62px;
		margin-right: 5vw;
		padding-top: 2.5vh;
	}

	#nav_content ul li{
		border-bottom: none;
		font-weight: 500;
			text-align: center;

	}

	.nav_ul li a:after{

	   content: '';

	}

	#nav_content ul li a{
		color:#20348b;
	padding:0 20px 10px 20px;
	letter-spacing: 1px;
	}

	#nav_content ul li a:hover {
		border-bottom:  solid 5px #20348b;
	}


.header_img_div:after {
	width: 80%;
	height: 70vh;
}

.header_img_figure {
	width: 80%;
	height: 70vh;
	max-height: 600px;
	background-image: url(../img/header_img_no_font_pc.png);
	background-size: cover;
}

.header_img_div_p {
font-size: 10rem;
letter-spacing: 10px;
margin-bottom: 0;
}
.about_flex_box {
	padding: 5vh 0vw 5vh 5vw;
}

.h2_div {
	flex-basis: 40%;
}

h2:before {
    margin-top: 0vh;

}



.business_img_figure {
	width: 100%;
	height: auto;
}



.h2_p {
	text-align: center;
}

.pc_display_span {
	display: block;
}



.link_flex_div {
	padding: 0 20vw;
}

.recruit_div {
	flex-basis: 70%;

}

.recruit_div_2 {
	padding: 0 5vw;
}


}
