﻿@charset "utf-8";
*{
 margin: 0px;
 padding: 0px;
 font-family: "游ゴシック","arial unicode ms",sans-serif;
}
img{
 pointer-events:none;
 -webkit-touch-callout:none;
  -webkit-user-select:none;
  -moz-touch-callout:none;
  -moz-user-select:none;
  touch-callout:none;
  user-select:none;
}
/*===背景============================*/
body{
 background-color:rgb(255,255,255);
 background-image:url(img/bg.s.jpg);
 background-repeat:repeat;
}
/*===ヘッダー========================*/
.page-header {
 background-color: rgb(127,127,127);
 position: fixed;
 width: 100%;
 height:50px;
 z-index:10;
 top:0;
}
#logo{
 height:34px;
 padding:8px 8px 8px;
}
/*===ハンバーガーメニュー============*/
#ham-menu {
 background-color: rgb(255,255,255); /*メニュー背景色*/
 box-sizing: border-box;
 height: 100%;
 width: 150px; /*メニュー横幅*/
 padding: 8px 30px; /*メニュー内左右上下余白*/
 position: fixed;
 right: -150px; /*メニュー横幅 width と合わせる*/
 top: 0;
 transition: transform 0.3s linear 0s; /*0.3s はアニメーションにかかる時間*/
 z-index: 20;
}

#menu-background {
 background-color: rgb(0,0,0); /*黒背景*/
 display: block;
 height: 100%;
 margin-top:50px;
 width: 0%;
 opacity: 0;
 position: fixed;
 right: 0;
 top: 0;
 transition: all 5ms linear 0s; /*ms はアニメーションにかかる時間*/
 z-index: -1;
}

#menu-icon {
 background-color: rgb(127,127,127); /*アイコン背景色*/
 color: rgb(255,255,255); /*アイコン色*/
 cursor: pointer;
 display: block;
 font-size: 50px; /*アイコン（フォント）サイズ*/
 height: 50px; /*アイコン縦高さ*/
 line-height: 50px; /*縦位置中央化*/
 position: fixed;
 right: 12px;
 text-align: center;
 top: -1px;
 width: 50px; /*アイコン横幅*/
 transition: all  0.3s linear 0s; /*0.3s はアニメーションにかかる時間*/
 z-index: 20;
}

#menu-cb {
 display: none; /*チェックボックス本体は消しておく*/
}

#menu-cb:checked ~ #ham-menu {
 transform: translate(-150px); /*メニュー本体横幅 width と合わせる*/
}
#menu-cb:checked ~ #menu-icon {
 transform: translate(-149px); /*メニュー本体横幅 width と合わせる*/
}
#menu-cb:checked ~ #menu-background {
 width:100%;
 opacity: 0.5;
 z-index: 15;
}
nav ul{
 list-style:none;
}
nav ul li{
 margin-top:10px;
}
nav ul li .eng{
 padding:8px;
 text-decoration:none;
 font-size:16px;
 color:rgb(0,0,0);
}
nav ul li .jpn{
 display:none;
}
/*---帯------------------------------*/
.news h2{
 text-align:center;
 padding:4px 0;
 margin-bottom:16px;
 background-color:rgb(127,127,127);
 font-size:12px;
 color:rgb(255,255,255);
}
#information h2{
 width:60%;
 min-width:300px;
 padding:4px 0;
 margin:16px auto;
 background-color:rgb(127,127,127);
 font-size:12px;
 color:rgb(255,255,255);
}
#access h2{
 width:100%;
 min-width:300px;
 padding:4px 0;
 margin:16px auto;
 background-color:rgb(127,127,127);
 font-size:12px;
 color:rgb(255,255,255);
}
#recruitment h2{
 width:60%;
 min-width:300px;
 padding:4px 0;
 margin:16px auto;
 background-color:rgb(127,127,127);
 font-size:12px;
 color:rgb(255,255,255);
}
/*===最近の仕事======================*/
.news{
 width:60%;
 min-width:300px;
 margin:48px auto 0;
 font-size:10px;
 }
.news .scroll{
 height:65vw;
 max-height:350px;
 overflow-x:hidden;
 overflow-y:scroll;
}
.news a{
 color:rgb(0,0,0);
 text-decoration:none;
}
.news a .name{
 text-align:center;
}
.name:hover{
 opacity: 0.5;
}
.news ul{
 display:grid;
 gap:.5vw;
 -ms-grid-columns:1fr .5vw 1fr .5vw 1fr;
 grid-template-columns:repeat(3,1fr);
 }
.news ul li{
 list-style:none;
 height:14vw;
 min-height:70px;
}
.news ul li img{
 width:100%;
 height:14vw;
 min-height:70px;
 object-fit:cover;
}
.news .more{
 font-size:12px;
 grid-column:1 / 4;
 text-align:right;
}
.news .more a{
 color:rgb(0,0,0);
 text-decoration:none;
}
/*===インフォメーション==============*/
#information{
 padding-top:48px;
}
#information .position{
 text-align:center;
}
#information table{
 font-size:10px;
 width:60%;
 min-width:300px;
 margin: 0 auto;
 border-collapse: collapse;
}
#information tbody{
}
#information tbody tr th{
 width:20%;
 min-width:60px;
 vertical-align:top;
 text-align:left;
 padding: 4px 0;
 border-top-width:1px;
 border-top-style:solid;
 border-top-color:rgb(127,127,127);
}
#information tbody tr td{
 width:80%;
 min-width:240px;
 text-align:left;
 padding: 4px 0;
 border-top-width:1px;
 border-top-style:solid;
 border-top-color:rgb(127,127,127);
}
/*===アクセス========================*/
#access{
 width:60%;
 min-width:320px;
 margin: 0 auto;
 padding-top:48px;
 text-align:center;
}
#access iframe{
 width:60%;
 min-width:200px;
 height:23vw;
 min-height:100px;
} 
#parking{
 height:23vw;
 min-height:100px;
 object-fit:cover;
 border: solid 1px rgb(200,200,200);
}
/*===フッター========================*/
footer{
 width:100%;
 background:rgb(127,127,127);
 font-size:12px;
 color:rgb(255,255,255);
 position:sticky;
 bottom:0px;
 text-align:center;
}
footer .inc{
}
#contact {
 list-style:none;
}
#contact li{
}
.jpn{
 font-size:11px;
}
/*===コピーライト====================*/
#copyright{
 background:rgb(127,127,127);
 color:rgb(255,255,255);
 padding-top:0;
 padding-bottom:4px;
 text-align: center;
 width: 100%;
 bottom:0;
}
/*===タイトル=======================*/
.contents h1{
 width:85.5vw;
 padding:4px 0;
 margin:64px auto 16px;
 color:rgb(255,255,255);
 font-size:12px;
 text-align:center;
 background-color:rgb(127,127,127);
}
.contents h2{
 width:85.5vw;
 padding:4px 0;
 margin:16px 0;
 color:rgb(255,255,255);
 font-size:12px;
 text-align:center;
 background-color:rgb(127,127,127);
}
/*===コンテンツ=====================*/
.contents{
 font-size:0;
 margin: 16px auto;
 width:85vw;
 text-align:center;
}
.list{
 display:grid;
 display:-ms-grid;
 gap:3vw;
 -ms-grid-columns:1fr 1vw 1fr;
 grid-template-columns:repeat(2,1fr);
}
.list a{
 color:rgb(0,0,0);
 text-decoration:none;
}
.list li{
 list-style:none;
}
.list li .thumb{
 width: 100%;
 height: 30vw;
 -o-object-fit: cover;
    object-fit: cover;
 border: solid 1px rgb(200,200,200);
}
.list .thumb:hover{
 opacity: 0.7;
}
.list li .next{
 width: 15%;
 margin: 30% 0;
}
.list li .photo{
 width: 100%;
 height:30vw;
 -o-object-fit: cover;
    object-fit: cover;
 border: solid 1px rgb(127,127,127);
}
li:nth-child(2n) .next{
 display:none;
}
.list li .caption{
 font-size:10px;
}
hr{
 opacity:0;
}
/*===データ=============================*/
.data{
 margin: 80px auto 10px;
 width:85vw;
}
.data p{
 margin-top:80px;
 text-align:right;
}
.list .big{
 grid-column:1 / 3;
 grid-row:1 / 3;
}
.list li .main-photo{
 width: 100%;
 -o-object-fit: cover;
    object-fit: cover;
 border: solid 1px rgb(127,127,127);
}
.list .middle{
 grid-column:1 / 3;
}
.list .middle img{
 height:20vw;
}
.summary table{
 width:100%;
 border-collapse:collapse;
 font-size:12px;
}
.summary table caption{
 text-align:left;
}
.summary table caption b{
}
.summary table tbody tr th{
 width:50%;
 vertical-align:top;
 text-align:left;
 border-top-width:1px;
 border-top-style:solid;
 border-top-color:rgb(127,127,127);
}
.summary table tbody tr td{
 width:50%;
 text-align:left;
 border-top-width:1px;
 border-top-style:solid;
 border-top-color:rgb(127,127,127);
}
/*---report(定期調査報告)------------*/
.back2{
 width:100%;
 background-color:rgb(255,255,255);
}
.report .block{
 width:60%;
 margin:0 auto;
 padding:64px 0;
}
.report h1{
 margin-top:50px;
 padding:32px 0 24px;
 text-align:center;
 font-size:20px;
}
.report .block h2{
 text-align:center;
 padding-bottom:24px;
}
.report .block .quote{
 text-align:right;
}
.report .block table{
 width:100%;
 border-collapse: collapse;
}
.report .block .flow tbody{
 border-bottom-width:1px;
 border-bottom-style:solid;
 border-bottom-color:rgb(127,127,127);
}
.report .block .flow tbody tr th{
 text-align:left;
 width:50%;
 padding:4px 0 4px 20%;
 border-top-width:1px;
 border-top-style:solid;
 border-top-color:rgb(127,127,127);
}
.report .block .flow tbody tr td{
 width:50%;
 padding:8px 0;
 border-top-width:1px;
 border-top-style:solid;
 border-top-color:rgb(127,127,127);
}
.report .block .reward tbody{
 border-width:2px;
 border-style:solid;
 border-color:rgb(127,127,127);
}
.report .block .reward tbody tr td{
 width:50%;
 padding:16px 0;
 text-align:center;
 border-width:1px;
 border-style:solid;
 border-color:rgb(127,127,127);
}
/*===採用情報===========*/
#recruitment{
 padding-top:48px;
}
#recruitment .position{
 text-align:center;
}
#recruitment table{
 font-size:10px;
 width:60%;
 min-width:300px;
 margin: 0 auto;
 border-collapse: collapse;
}
#recruitment .tbody{
}
#recruitment .position table tbody tr th{
 width:20%;
 min-width:60px;
 vertical-align:top;
 text-align:left;
 padding: 4px 0;
 border-top-width:1px;
 border-top-style:solid;
 border-top-color:rgb(127,127,127);
}
#recruitment .position table tbody tr td{
 width:80%;
 min-width:240px;
 text-align:left;
 padding: 4px 0;
 border-top-width:1px;
 border-top-style:solid;
 border-top-color:rgb(127,127,127);
}
#recruitment .position .form tbody tr td{
 width:80%;
 min-width:240px;
 text-align:center;
 padding: 4px 0;
 border-top-width:1px;
 border-top-style:solid;
 border-top-color:rgb(127,127,127);
}
 