@charset "utf-8";
/* CSS Document */
/*共通要素*/
html{
	/*font-size: 62.5%;*/
	font-family: "Sawarabi Gothic";
}
body{
}
a,a:hover{
	text-decoration: none;
	/*color: #000000;*/
}
.f-sn{
	font-size: 1rem !important;
}
@media screen and (max-width:1350px) {
	.f-sn{
		font-size: 0.88rem !important;
	}
}
@media screen and (max-width:1240px) {
	.f-sn{
		font-size: 0.75rem !important;
	}
}
.f-s1{
	font-size: 1rem !important;
}
.f-s2{
	font-size: 1.25rem !important;
}
.f-s3{
	font-size: 1.88rem !important;
}
.f-eng{
	font-family: 'Orbitron', sans-serif;
	font-weight:100;
}
.f-serif{
	font-family: "ＭＳ Ｐ明朝", "MS PMincho","ヒラギノ明朝 Pro W3", "Hiragino Mincho Pro", "serif";
}
.bg-skyblue{
	background-color: #DCFFFF;
}
.by-blue{
	border-top: #1c69d4 2px solid;
	border-bottom: #1c69d4 2px solid;
}
.bb-blue{
	border-bottom: #1c69d4 2px solid;
}
.bb-blue10{
	border-bottom: #1c69d4 10px solid;
}
.bb-blue10stripe{
	position: relative;
}
.bb-blue10stripe:after{
	content: '';
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 10px;
	background: repeating-linear-gradient(-45deg, #1c69d4, #1c69d4 10px, #B3D2FF 10px, #B3D2FF 20px);
}
.bg-blue{
	background-color: #1c69d4;
}
.bg-sky{
	background-color: #F0FFFF;
}
.bb-white{
	border-bottom: #ffffff 2px solid;
}
.bg-white{
	background-color:#FFFFFF;
}

/* ボタンの色 */
.btn-blue,
.btn-blue.disabled, .btn-blue:disabled {
  color: #fff;
  background-color: #1c69d4;
  border-color: #1c69d4;
}
.btn-blue:focus, .btn-blue.focus,
.btn-blue:not(:disabled):not(.disabled):active:focus, .btn-blue:not(:disabled):not(.disabled).active:focus,
.show > .btn-blue.dropdown-toggle:focus {
  box-shadow: 0 0 0 0.2rem rgba(19, 123, 255, 0.5);
}
.btn-blue:hover {
  color: #fff;
  background-color: #1334EB;
  border-color: #2912E0;
}
.btn-blue:not(:disabled):not(.disabled):active, .btn-blue:not(:disabled):not(.disabled).active,
.show > .btn-blue.dropdown-toggle {
  color: #fff;
  background-color: #2912E0;
  border-color: #240FBF;
}
.wf-sawarabigothic {
	font-family: "Sawarabi Gothic";
}

/*フェードイン*/
	/*1.フェードインアニメーションの指定*/
.scrollanime {opacity: 0;} /*一瞬表示されるのを防ぐ*/
.fadeInDown {
    animation-name: fadeInDown;
    animation-duration: 2s;
    animation-fill-mode: forwards;
}
@keyframes fadeInDown {
    0% {
        opacity: 0;         
    }
    100% {
    opacity: 1;
    transform: translate(0);
    }
}
	/*2.上下の動きを指定*/
.updown {transform: translateY(-50px);}
.downup {transform: translateY(50px);}
	/*3.左右の動きを指定*/
.sect02{overflow: hidden;} /*横スクロールバーを隠す*/
.slide-right {transform: translateX(200px);}
.slide-left {transform: translateX(-200px);}

/*画像のマウスオーバー*/
a.image-over {
  display: block;
  width: 100%;
  margin: 0 auto;
  color: #000;
  text-decoration: none;
}
a.image-over div {
	position:relative;
	height: 100%;
	overflow: hidden;
}
a.image-over div img {
  width: 100%;
  height: auto;
  transition: .3s;
}
a.image-over:hover div img {
  transform: scale(1.2);
}
a.image-over div img.cap {
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
	z-index:1000;
}
a.image-over::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  background: rgba(0, 0, 0, 0.4);
}

/*画像の上に文字*/
.text-on {
	position: relative;
}
.text-on p {
	position: absolute;
	width:100%;
	top: 45%;
	margin:0;
	padding:0 3rem;
	color: white;
	font-weight: bold;
	font-size: 1.0vw;
	/*text-shadow	: 2px  2px 3px #000000,
      -2px  2px 3px #000000,
       2px -2px 3px #000000,
      -2px -2px 3px #000000,
       2px  0px 3px #000000,
       0px  2px 3px #000000,
      -2px  0px 3px #000000,
       0px -2px 3px #000000;*/
	   z-index:1000;
}
.text-on img {
	width: 100%;
}
.text-on::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  background: rgba(0, 0, 0, 0.4);
}
@media screen and (max-width:768px) {
.text-on p {
	top: 20%;
}
}
@media screen and (max-width:576px) {
.text-on p {
	top: 35%;
	font-size:3.0vw;
}
}

/*ページ内リンクの位置調整*/
#message,#const,#energy,#solution,#works,#company,#access{
	margin-top: -80px;
	padding-top:80px;
}

/*navbar*/
nav{
	max-width:1200px;
	margin:0 auto;
}
a.nav-link{
	font-size: 14px;
	color:#ffffff;
}
.bg-nav{
	background-color: rgba( 0, 0, 0, 0.5 );
}
@media screen and (min-width:768px) {
.l-nav{
	display: none;
}
.navbar-nav {
}
.navbar-nav ul {
}
.navbar-nav li {
	/*border-top: 0px solid rgba(0, 0, 0, .1);*/
}
.navbar-nav li a {
	font-weight: bold;
	text-align: center;
	/*border-left: 1px solid rgba(255, 255, 255, .75);
	border-right: 1px solid rgba(0, 0, 0, .1);*/
}
.navbar-nav li:last-child a {
	border-right: 0;
	border-radius: 0 3px 3px 0;
}
}
@media screen and (max-width:768px) {
	.m-nav{
	display: none;
	}
	.slider-container,.header-img{
		margin-top: 80px;
	}
}

/*index動画*/
@media screen and (max-width:768px) {
	#index-m{
		height:90px;
	}
}
.hero {
  position: relative;
  background-color:#000000;
}
	/* video */
.video-box {
  position: relative;
  overflow: hidden;
  width: 100%;
  /*max-width:1920px;*/
  height: calc(100vw * 0.5625);
  /*max-height:100vh;*/
  margin:0 auto;
}

.video {
  position: absolute;
  top: 50%;
  left: 50%;
  /*max-width: 1920px;*/
  height:calc(100vw * 0.5625);
  /*max-height: 100%;*/
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  
}
@media screen and (max-width:768px) {
.video-box {
  height: calc(100vw * 0.5625);
}
.video {
  max-width: 100%;
  height: 100%;
}
}
	/* overlay */
.overlay::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  background: rgba(0, 0, 0, 0.4);
}
	/* text */
.text-box {
  position: absolute;
/*text-align : center;
overflow : hidden;*/
}
.text-box p {
	display:inline-block;
	max-width:90%;
	font-family: 'Sawarabi Gothic', sans-serif;
	font-size: 30px;
	font-weight: bold;
	color: #ffffff;
	white-space : nowrap;
	line-height : 1em;
}
.text-box p.fp {
	font-size:5vw;
	font-family: 'Orbitron', sans-serif/*'Mrs Saint Delafield', cursive*/;
	font-weight:100;
	opacity:0.5;
	}
.text-box p.fadein span{
    opacity:0;
    }
@media screen and (max-width:1500px) {
.text-box {
  top: 50%;
  left: 50%;
  width: 100%;
  text-align:center;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
}
@media screen and (max-width:768px) {
.text-box p {
	font-size: 20px;
}
.text-box p.fp {
	font-size: 30px;
}
}
@media (min-width: 1500px) {
.text-box {
  top: 50%;
  left: 50%;
  width: 100%;
  text-align:center;
  -webkit-transform: translate(-50%, -50%);
  -moz-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
}

/*メッセージ*/
.message{
	position:relative;
	background:#1c69d4 url(../img/bg_message.jpg) no-repeat center right;
	background-size:100% auto;
	color:#ffffff;
}
.motto{
	font-size:27px;
}
@media screen and (max-width:992px) {
.message{
	height: calc(100vw * 0.7);
	background:#1c69d4 url(../img/bg_message.jpg) no-repeat center right;
	background-size:100% auto;
	color:#000000;
	text-shadow	: 4px  4px 6px #ffffff,
      -4px  4px 6px #ffffff,
       4px -4px 6px #ffffff,
      -4px -4px 6px #ffffff,
       4px  0px 6px #ffffff,
       0px  4px 6px #ffffff,
      -4px  0px 6px #ffffff,
       0px -4px 6px #ffffff;
}
}
@media screen and (max-width:576px) {
.message{
	background:#1c69d4 url(../img/bg_message.jpg) no-repeat center center;
	background-size:cover;
}
.motto{
	font-size:19px;
}
}
@media (min-width: 992px) {
.message{
	height: calc(100vw * 0.35);
}
.message::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 50%;
  height: 100%;
  content: "";
  background: rgba(0, 0, 0, 0.5);
}
.message div{
	z-index:1000;
}
}

/*NEWS*/
.news{
	background:#222222;
	color:#ffffff;
}
	/*一覧ボタン*/
.btn,
a.btn,
button.btn {
  font-size: 1.2rem;
  font-weight: 700;
  line-height: 1.5;
  position: relative;
  display: inline-block;
  padding: 0.5rem 2rem;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
  -webkit-transition: all 0.3s;
  transition: all 0.3s;
  text-align: center;
  vertical-align: middle;
  text-decoration: none;
  letter-spacing: 0.1em;
  color: #212529;
  border-radius: 0.5rem;
}
a.btn-flat {
	width:75%;
  overflow: hidden;
  padding: 0.5rem 0;
  color: #fff;
  border-radius: 0;
  background: #1c69d4;
}
a.btn-flat span {
  position: relative;
}
a.btn-flat:before {
  position: absolute;
  top: 0;
  left: 30px;
  width: 100%;
  height: 500%;
  content: '';
  -webkit-transition: all .5s ease-in-out;
  transition: all .5s ease-in-out;
  -webkit-transform: translateX(-98%) translateY(-70%) rotate(135deg);
  transform: translateX(-98%) translateY(-70%) rotate(135deg);
  background: #fff100;
}
a.btn-flat:hover:before {
  -webkit-transform: translateX(-9%) translateY(-25%) rotate(135deg);
  transform: translateX(-9%) translateY(-25%) rotate(135deg);
}
@media screen and (max-width:992px) {
.btn,
a.btn,
button.btn {
  font-size: 0.8rem;
}
}
@media screen and (max-width:768px) {
.btn,
a.btn,
button.btn {
  font-size: 1rem;
}
}

.wrap {
    position: relative;
    width: 100%;
}
.wrap:before {
    content:"";
    display: block;
    padding-top: 56.2%; /* 高さを幅の%に固定 */
}
.wrap p {
	position: absolute;
	width:100%;
	top: 45%;
	margin:0;
	padding:0 3rem;
	color: white;
	font-weight: bold;
	font-size: 1.0vw;
	text-shadow	: 2px  2px 3px #000000,
      -2px  2px 3px #000000,
       2px -2px 3px #000000,
      -2px -2px 3px #000000,
       2px  0px 3px #000000,
       0px  2px 3px #000000,
      -2px  0px 3px #000000,
       0px -2px 3px #000000;
	   z-index:1000;
}
.news img{
	position: absolute;
    top: 0;
    left: 0;
    bottom: 0;
    right: 0;
	width:100%;
	height:100%;
	object-fit: cover;
}
.news a{
	color:#ffffff;
}
.n-date{
	padding:1rem 1rem 0.5rem;
	text-align:left;
	font-size:20px;
}
.n-title{
	padding:0.5rem 1rem 2rem;
	text-align:left;
}
.news a:hover {
  filter: brightness(80%);
}
a.image-over-n {
  display: block;
  width: 100%;
  margin: 0 auto;
  text-decoration: none;
}

/*建設事業*/
.const{
	background:#dddddd url(../img/bg_const.png) no-repeat top left;
	background-size:auto 100%;
}

.const img{
	width:100%;
}

/*5等分レイアウト*/
.col-15,.col-30,
.col-sm-15,
.col-md-15,
.col-lg-15 {
    position: relative;
    min-height: 1px;
    padding-right: 10px;
    padding-left: 10px;
}
.col-15 {
    width: 50%;
    float: left;
}
.col-30 {
    width: 100%;
    float: left;
}
@media (min-width: 768px) {
    .col-sm-15 {
        width: 50%;
        float: left;
    }
}
@media (min-width: 992px) {
    .col-md-15 {
        width: 20%;
        float: left;
    }
}
@media (min-width: 1200px) {
    .col-lg-15 {
        width: 20%;
        float: left;
    }
}
/*エネルギー開発事業*/
.energy{
	color:#FFFFFF;
	background:#1c69d4 url(../img/bg_ene.png) no-repeat top right;
	background-size:100% auto;
}
.energy img{
	width:100%;
}
	/*画像のマウスオーバー*/
.image-ene {
	position:relative;
	height: 100%;
	overflow: hidden;
}
.image-ene img {
  width: 100%;
  height: auto;
  transition: .3s;
}
.image-ene:hover img {
  transform: scale(1.2);
  z-index:10;
}
.image-ene img.cap {
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
	z-index:1000;
}
.image-ene::after {
  position: absolute;
  top: 0;
  left: 0;
  display: block;
  width: 100%;
  height: 100%;
  content: "";
  background: rgba(0, 0, 0, 0.4);
}

.image-ene a{
	display: block;
	position: absolute;
	top: 75%;
	left:50%;
	transform: translateX(-50%);
	padding:0.5rem 2rem;
	color: white;
	font-weight: bold;
	font-size: 0.9vw;
	font-family :Quicksand, sans-serif;
	border-radius: 25px;
	z-index:1000;
}
.btn-ene {
	background: #1c69d4;
}
.btn-ene:hover {
  background: #dddddd;
  color:#333333;
}
@media screen and (max-width:768px) {
.image-ene a{
	padding:0.5rem 2rem;
}
}
@media screen and (max-width:576px) {
.image-ene a{
	padding:0.5rem 1rem;
	font-size:16px;
}
}

/*コンテンツのタイトルを横に*/
.c-title,.c-title2{
	font-size:2rem;
	text-align:center;
	margin-bottom:2rem;
}
@media (min-width: 768px) {
.c-title{
	transform: rotate(90deg);
	margin-top:4rem;
	text-align:left;
	font-size:4rem;
}
.c-title2{
	transform: rotate(90deg);
	margin-top:4rem;
	text-align:right;
	font-size:4rem;
}
}

/*ソリューション*/
.solution{
	background:#c2ceda url(../img/bg_solution.jpg) no-repeat center right;
	background-size:100% auto;
	position: relative;
	text-shadow:
            3px 3px 3px #ffffff, -3px -3px 3px #ffffff,
           -3px 3px 3px #ffffff,  3px -3px 3px #ffffff,
            3px 0px 3px #ffffff, -3px -0px 3px #ffffff,
            0px 3px 3px #ffffff,  0px -3px 3px #ffffff;
}
.solution a{
	display: block;
	margin: 0 auto 2.0rem;
	padding:0.5rem 2rem;
	width: 50%;
	max-width: 16rem;
	color: white;
	font-weight: bold;
	font-size: 0.9vw;
	font-family :Quicksand, sans-serif;
	border-radius: 25px;
	text-shadow:none;
	z-index:1000;
}
@media screen and (max-width:768px) {
.solution a{
	padding:0.5rem 2rem;
}
}
@media screen and (max-width:576px) {
.solution a{
	padding:0.5rem 1rem;
	font-size:16px;
}
}
/*ワークス*/
.works{
	color:#FFFFFF;
	background:#ffffff url(../img/bg_works.jpg) no-repeat top center;
	background-size:100% auto;
}
@media screen and (min-width:768px) {
.works{
	min-height:700px;
}
}
@media screen and (min-width:1200px) {
.works{
	min-height:800px;
}
}
@media screen and (min-width:1500px) {
.works{
	/*min-height:900px;*/
	box-sizing:border-box;
	background-size:cover;
	padding-bottom:40%;
}
}
@media screen and (max-width:1070px) {
.works{
	background-size:auto 100%;
}
}
@media screen and (max-width:768px) {
.works{
	background-size:auto 100%;
}
.card{
	margin-bottom:3rem;
}
}

.card{
	color:#000000;
}
.works_cs{
	min-height:400px;
	position:relative;
}
.works_cs h6{
	position:absolute;
	top:50%;
	left:50%;
	transform:translate(-50%,-50%);
}

/*会社概要&アクセス テーブル*/
.tbl{
	width:95%;
	margin: 0 auto;
	font-size:0.8rem;
}
.tbl th {
	min-width:5rem;
	padding: 10px;
	vertical-align:top;
}
.tbl tr:last-child th {
}
.tbl td {
	padding: 10px;
	text-align: left;
}
 
@media screen and (max-width: 640px) {
  .tbl {
    width: 100%;
  }
  .tbl th {
    border-bottom: solid 1px #1c69d4;
    width: 100%;
  }
  .tbl td {
	  margin-bottom:1.0rem;
  }
  .tbl th,
  .tbl td {
　　border-bottom: none;
    display: block;
    width: 100%;
  }
}

/*アクセス*/
.access{
	background:#F0FFFF url(../img/bg_acc.png) no-repeat top center;
	background-size:auto 100%;
}


/*会社概要*/
.company{
	background:#ffffff url(../img/bg_com.png) no-repeat top left;
	background-size:auto 100%;
	text-shadow:1px 1px 0 #FFF, -1px -1px 0 #FFF,
				-1px 1px 0 #FFF, 1px -1px 0 #FFF,
				0px 1px 0 #FFF,  0 -1px 0 #FFF,
				-1px 0 0 #FFF, 1px 0 0 #FFF;
}
@media screen and (max-width: 640px) {
.company{
background-color:rgba(255,255,255,0.8);
background-blend-mode:lighten;
}
}

/*二率由来*/
.origin{
	background:#F0FFFF url(../img/bg_origin.jpg) no-repeat center center;
	background-size:100% auto;
	padding-bottom:5rem;
	text-shadow:1px 1px 0 #FFF, -1px -1px 0 #FFF,
				-1px 1px 0 #FFF, 1px -1px 0 #FFF,
				0px 1px 0 #FFF,  0 -1px 0 #FFF,
				-1px 0 0 #FFF, 1px 0 0 #FFF;
}
.ori-text{
	/*width: 30rem;*/
	width:90%;
	margin:0 auto;
	padding:1rem 2rem 1rem;
	text-align:center;
	background:rgba(255,255,255,0.5);
	border-top:#ffffff solid 0.5rem;
}
.ori-text div{
	margin:0.5rem 0;
	padding:0.5rem 0;
	background:rgba(255,255,255,0.8);
}
@media screen and (max-width:992px) {
.origin{
	background-size:auto 100%;
}
}
@media screen and (max-width:576px) {
.ori-text{
	width: 95%;
}
}

/*フッター*/
footer{
	background-color: #ffffff;
}
.footer-classic {
    color: #666666;
}
.footer-classic a, .footer-classic a:focus, .footer-classic a:active {
    color: #666666;
}
.nav-list li {
    padding-top: 5px;
    padding-bottom: 5px;
}
.nav-list li a span {
	font-size:0.7rem;
}
.nav-list li a:hover:before {
    margin-left: 0;
    opacity: 1;
    visibility: visible;
}

ul, ol {
    list-style: none;
    padding: 0;
    margin: 0;
}

.social-inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding: 23px;
    font: 900 13px/1 "Lato", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.5);
}
.social-container .col {
    border: 1px solid rgba(0, 0, 0, 0.1);
}
.nav-list li a:before {
    content: "\f061";
    font: 900 21px/1 "Font Awesome 5 Free";
    color: #4d6de6;
    display: inline-block;
    vertical-align: baseline;
    margin-left: -28px;
    margin-right: 7px;
    opacity: 0;
    visibility: hidden;
    transition: .22s ease;
}
@media(min-width: 768px){
  a[href^="tel:"]{
    pointer-events: none;
  }
}
