﻿@charset "UTF-8";

/* 基本色 */
:root {
  --main-color: #5D9AB2;
  --accent-color: #0274d5;
  --dark-main-color: #2B5566;
  --text-bright-color: #fff;
  --icon-color: #fff;
  --icon-bk-color: #ddd;
  --gray-color: #ddd;
  --large-width: 1000px;
  --middle-width: 800px;
}

/* 基本設定: フォントサイズ */
@media (max-width: 599px) {
  :root{
    font-size: 14px;
    }
  }
  
@media (min-width: 600px) and (max-width: 799px) {
  :root {
    font-size: 16px;
    }
  }
  
@media (min-width: 800px) {
  :root {
    font-size: 18px;
    }
  }
  
body {font-size: 16px}
 
/* 基本設定: ページ全体 */
body{
  margin: 0;
  font-family: 'メイリオ',
    'Hiragino kaku Gothic Prp',
    sans-serif;
}

/* コンテンツA : ヒーローイメージ */
.conA {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 100vh;
  min-height: 450px;
  background-image:  linear-gradient(
  rgba(0,0,0,0.1), rgba(0,0,0,0.1)
  ), url("../image/top.jpg");
  background-position: center;
  background-size: cover;
  color: #fff;
  color: var(--text-bright-color);
  text-align: center;
  }

.conA.compact {
  height: 450px;
  min-height: 0;
  background-image: linear-gradient(
  rgba(0,0,0,0.1), rgba(0,0,0,0.1)
  ), url("../image/top.jpg");
}

.conA h1 {
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 24px;
  letter-spacing: 0.1em;
  margin-left: 0.1em;
}

.conA p {
  margin-top: 0;
  margin-bottom: 0;
  font-size: 12px;
}   

  .conA .container img{
    width: 20%;
}

.conA a{
  display: inline-block;
  margin-top: 20px;
  padding: 10px 30px;
  border: solid 3px currentColor;
  border-radius: 6px;
  background-color: #0274d5;
  background-color: var(--accent-color);
  color:#fff;
  color: var(--text-bright-color);
  font-size: 14px;
  text-decoration: none;
  }
  
.conA a:hover {
  background-image: linear-gradient(
    rgba(255,255,255,0.2),
    rgba(255,255,255,0.2));
    }
    
.conA .container{
      position: relative;
}
.conA .container img{
      width: 20%;
}

.conA .maku img{
      position: absolute;  
      right: 50px;
      top: 14%;
      width: 17%;
}

.conA .maku2 img{
      position: absolute;
      right: 50px;
      top: 27%;
      width: 17%;
}

.conA .maku3 img{
      position: absolute;
      right: 10px;
      top: 87%;
      width: 37%;
}

.conA .maku4 img{
      position: absolute;
      right: 50px;
      top: 73%;
      width: 17%;
}

.news time {
	display: inline-block;
	width: 150px;
	text-indent: 0;

       }

   .box27 {
 max-width: 900px;
  
  margin: 2em 0;
  margin-left:auto;
  margin-right:auto;
  padding: 10px 10px;
  position: relative;
  border: solid 3px  #5D9AB2;
  }

.box27 .box-title {
    position: absolute;
    display: inline-block;
    top: -27px;
    left: -3px;
    padding: 0 9px;
    height: 25px;
    line-height: 30px;
    font-size: 18px;
    background:  #5D9AB2;
    color: #ffffff;
    font-weight: bold;
    border-radius: 5px 5px 0 0;
}

.box27 p {
    font-size: 16px;
    margin:  2px; 
    padding: 2px;
}

@media (min-width: 768px){
  .conA h1 {
    font-size: 48px;
}

  .conA p {
   font-size: 24px;
}   

.conA a{
  display: inline-block;
  margin-top: 20px;
  padding: 10px 30px;
  border: solid 3px currentColor;
  border-radius: 6px;
  background-color: #0274d5;
  background-color: var(--accent-color);
  color:#fff;
  color: var(--text-bright-color);
  font-size: 14px;
  text-decoration: none;
  }
  
.conA a:hover {
  background-image: linear-gradient(
    rgba(255,255,255,0.2),
    rgba(255,255,255,0.2));
    }
    
.conA .maku img{
      position: absolute;  
      right: 50px;
      top: 8%;
      width: 9%;
}

.conA .maku2 img{
      position: absolute;
      right: 50px;
      top: 27%;
      width: 9%;
}

.conA .maku3 img{
      position: absolute;
      right: 10px;
      top: 70%;
      width: 16%;
}
 
.conA .maku4 img{
      position: absolute;
      right: 50px;
      top: 48%;
      width: 9%;
}
  
.conA .container{
      position: relative;
}
.conA .container img{
      width: 20%;
}

.news time {
	display: inline-block;
	width: 150px;
	text-indent: 0;

       }

   .box27 {
 max-width: 900px;
  
  margin: 2em 0;
  margin-left:auto;
  margin-right:auto;
  padding: 10px 10px;
  position: relative;
  border: solid 3px  #5D9AB2;
  }

.box27 .box-title {
    position: absolute;
    display: inline-block;
    top: -27px;
    left: -3px;
    padding: 0 9px;
    height: 25px;
    line-height: 30px;
    font-size: 18px;
    background:  #5D9AB2;
    color: #ffffff;
    font-weight: bold;
    border-radius: 5px 5px 0 0;
}

.box27 p {
    font-size: 16px;
    margin:  2px; 
    padding: 2px;
}
}

/* コンテンツC : 概要（画像+テキスト）*/
.conC{
  background-color: #5D9AB2;
  background-color: var(--main-color);
  color: #fff;
  color: var(--text-bright-color);
  }

.conC .text{
  padding: 20px;
  }
  
.conC h2{
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 20px;
  }
  
.conC p{
  margin-top: 0;
  margin-bottom: 20px;
  font-size: 14px;
  line-height: 1.8;
  opacity: 0.8;
  }
.conC a{
  display: inline-block;
  margin-top: 20px;
  padding: 10px 30px;
  border: solid 3px currentColor;
  border-radius: 6px;
  background-color: #0274d5;
  background-color: var(--accent-color);
  color:#fff;
  color: var(--text-bright-color);
  font-size: 14px;
  text-decoration: none;
  }
  
.conC a:hover {
  background-image: linear-gradient(
    rgba(255,255,255,0.2),
    rgba(255,255,255,0.2)
    );
}

.conC .photo{
  min-height: 200px;
  background-image: url("../image/kan.jpg");
  background-position: center;
  background-size: cover;
}

@media(min-width: 768px){
  .conC .container{
    display: flex;
    max-width: 1000px;
    max-width: var(--large-width);
    margin-left: auto;
    margin-right: auto;
    }
    
    .conC .photo{
      flex: 3;
      }
      
    .conC .text{
      flex: 2;
      padding: 50px;
      }
} 

/* コンテンツD : 概要（画像+テキスト:逆配置）*/
.conD .container{
  padding-top: 2px;
  }
  
.conD .text{
  padding: 20px;
  }
  
.conD h2{
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 20px;
  }
  
.conD p{
  margin-top: 0;
  margin-bottom: 20px;
  font-size: 14px;
  line-height: 1.8;
  opacity: 0.8;
  }
.conD a{
  display: inline-block;
  margin-top: 20px;
  padding: 10px 30px;
  box-shadow： 0 0 0 1px ＃888；
  border: solid 3px currentColor;
  border-radius: 6px;
  background-color: #0274d5;
  background-color: var(--accent-color);
  color:#fff;
  color: var(--text-bright-color);
  font-size: 14px;
  text-decoration: none;
  }
  
.conD a:hover {
  background-image: linear-gradient(
    rgba(255,255,255,0.2),
    rgba(255,255,255,0.2)
    );
}

.conD .photo{
  min-height: 200px;
  background-image: url("../image/minkan.jpg");
  background-position: center;
  background-size: cover;
}

@media(min-width: 768px){
  .conD .container{
    display: flex;
    flex-direction: row-reverse;
    max-width: 1000px;
    max-width: var(--large-width);
    margin-left: auto;
    margin-right: auto;
    padding-top: 40px;
    padding-bottom: 40px;
    }
    
    .conD .photo{
      flex: 0 0 400px;
      }
      
    .conD .text{
      flex: 1;
      padding: 50px;
      }
}

/* ヘッダー */
header{
  position: absolute;
  top: 0;
  left: 0;
  z-index: 100;
  width: 100%;
  background-color: rgba(255,255,255,0.5);
  }
  
.nohero header{
  position: static;
  border-bottom: solid 1px #ddd;
  border-bottom: solid 1px var(--gray-color);
  }
    
/* ヘッダーA: サイト名 */
.headA{
  display: inline-block;
  line-height: 70px;
  padding-left: 20px;
  padding-right: 20px;
  background-color: #5D9AB2;
  background-color: var(--main-color);
  color: #fff;
  color: var(--text-bright-color);
  font-family: 'Monteserrat', sans-serif;
  font-size: 24px;
  text-decoration: none;
  }

/* ヘッダーB: ナビゲーションメニュー */
.headB ul{
  margin: 0;
  padding: 0;
  list-style: none;
  }

.headB a{
  display: block;
  padding: 15px;
  color: inherit;
  font-size: 12px;
  text-decoration: none;
  }
  
.headB a:hover{
  background-color: rgba(0,0,0,0.3);
}

@media (min-width: 768px){
  header .container{
    display: flex;
    align-items: center;
    justify-content: space-between;
    max-width: 1000px;
    max-width: var(--laege-width);
    margin-left: auto;
    margin-right: auto;
    }
    
  .headB ul{
    display: flex;
    }
}

/* ヘッダーC: トグルボタン */

@media(max-width: 767px){
  /* 小さい画面用の設定 */
  header .container-small{
  display: flex;
    align-items: center;
    justify-content: space-between;
    }

  .headC{
    margin-right: 10px;
    padding: 0;
    border: none;
    outline: none;
    background: none;
    font-size: 28px;
    opacity: 0.5;
    cursor: pointer;
    }

  .headC:hover{
    opacity: 0.3;
    }

  .headB{
    display: none;
    }
}

@media(min-width: 768px){
  /* 大きい画面用の設定 */
  .headC {
    display: none;
    }
  
  .headB{
    display: block !important;
    }
  }

/* コンテンツページ: 記事 */
.post .container{
  max-width: 800px;
  max-width: var(--middle-width);
  margin-left:auto;
  margin-right:auto;
  padding: 30px 10px;
}

.post h1{
  padding-left: 0.5rem;
  border-left: solid 0.75rem #2B5566;
  border-left:
  solid 0.75rem var(--accent-color);
  font-size: 2rem;
}

.post p{
  font-size: 1rem;
  line-height: 2;
}

.post img {
  max-width: 100%;
}



/* 過去の工事: 記事 */
.kako .contai{
  
  max-width: 800px;
  max-width: var(--middle-width);
  margin-left:auto;
  margin-right:auto;
  padding: 30px 10px 30px;
  
}

.kako h1{
  padding-left: 0.5rem;
  border-left: solid 0.75rem #2B5566;
  border-left:
  solid 0.75rem var(--accent-color);
  font-size: 2rem;
  margin-bottom: 0px;
}

.kako h2{
  font-size: 1.5rem;
  line-height: 2;
  border-top: solid 1px #2B5566;
  margin-bottom: 0px;

    
}

.kako p{
  font-size: 1rem;  
  margin-top: -20px;
}

.kako  img {
   
  max-width: 100%;
  margin-bottom: 30px;
}
.kako .box{
  position:relative;
  max-width: 100%;
  margin-bottom: 30px;
}



/*バッジ*/
.badge{
    position:absolute;
    left: 10px;
    top: 30px;
    
    padding-top: 20px;
    width: 60px;
    height: 40px;
    border-radius: 50%;
    
    background: #ff4f00;
    text-align: center;
    font-size: 14px;
    font-weight: bold;
    color: #ffffff;
    box-shadow: 0px 6px 6px 0px raba(0,0,0,0.5)
}

.badge2{
    position:absolute;
    left: 10px;
    bottom: 50px;
    
    padding-top: 20px;
    width: 60px;
    height: 40px;
    border-radius: 50%;
    
    background: #00FF99;
    text-align: center;
    font-size: 14px;
    font-weight: bold;
    color: #ffffff;
    box-shadow: 0px 6px 6px 0px raba(0,0,0,0.5)
}

.badge3{
    position:absolute;
    left: 10px;
    top: 30px;
    
    padding-top: 20px;
    width: 60px;
    height: 40px;
    border-radius: 50%;
    
    background: #ff4f00;
    text-align: center;
    font-size: 10px;
    font-weight: bold;
    color: #ffffff;
    box-shadow: 0px 6px 6px 0px raba(0,0,0,0.5)
}



/* 建設業許可: 文字 */
.perm .container{
  max-width: 800px;
  max-width: var(--middle-width);
  margin-left:auto;
  margin-right:auto;
  padding: 30px 10px;
}

.perm h1{
  padding-left: 0.5rem;
  border-left: solid 0.75rem #2B5566;
  border-left:
  solid 0.75rem var(--accent-color);
  font-size: 2rem;
}

.perm h2{
  font-size: 1.5rem;
  line-height: 2;
}

.perm p{
  font-size: 1rem;
  line-height: 2;
}

/* 格付: 文字 */
.rati .container{
  max-width: 800px;
  max-width: var(--middle-width);
  margin-left:auto;
  margin-right:auto;
  padding: 30px 10px;
}

.rati h1{
  padding-left: 0.5rem;
  border-left: solid 0.75rem #2B5566;
  border-left:
  solid 0.75rem var(--accent-color);
  font-size: 2rem;
}

.rati h2{
  font-size: 1.5rem;
  line-height: 2;
}

.rati p{
  font-size: 1rem;
  line-height: 2;
  padding: 1px 15px;
}

/* 施工実績 : 概要（画像+テキスト:逆配置）*/
.past .container{
  padding-top: 1px;
  }

  
.past .text{
  padding: 0px;
  }
  
  
.past h2{
  margin-top: 0;
  margin-bottom: 0px;
  font-size: 20px;
  }
  
.past p{
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 14px;
  line-height: 1.8;
  opacity: 0.8;
  }

.past .photo{
  min-height: 200px;
  background-position: center;
  background-size: cover;
}



@media(min-width: 768px){
  .past .container{
    display: flex;
    flex-direction: row-reverse;
    max-width: 1000px;
    max-width: var(--large-width);
    margin-left: auto;
    margin-right: auto;
    padding-top: 40px;
    padding-bottom: 40px;
    }
    
    .past .photo{
      flex: 0 0 400px;
      }
      
    .past .photo1{
      flex: 0 0 400px;
      }
      
    .past .text{
      flex: 1;
      padding: 25px;
      }
}

/* コンテンツページ: パンくずリスト */
.bread ol{
  display: flex;
  margin: 0;
  padding: 0;
  list-style: none;
  }

.bread a{
  display: block;
  padding: 5px;
  color: inherit;
  font-size: 12px;
  text-decoration: none;
  }
  
.bread a::after {
  margin-left: 10px;
  content: '\f054';
  font-family: 'FontAwesome';
  opacity: 0.3;
}
  
.bread a:hover{
  background-color: rgba(0,0,0,0.3);
}

/* アバウトページ : 画像と沿革 */
.history{
  background-color: #5D9AB2;
  background-color: var(--main-color);
  color: #fff;
  color: var(--text-bright-color);
  }

.history .text{
  padding: 20px;
  }
  
.history h2{
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 1.5rem;
  }

.history .photo{
  min-height: 300px;
  background-image: url("../image/plant.jpg");
  background-position: center;
  background-size: cover;
}

.history table {
  border-collapse: collapse;
  border-top: solid 1px #ddd;
  border-top: solid 1px var(--gray-color);
  font-size: 0.875rem;
}

.history th,
.history td {
  padding-top: 1.0rem;
  padding-bottom: 1.0rem;
  border-bottom: solid 1px #ddd;
  border-bottom: solid 1px var(--gray-color);
}

.history th {
  padding-right: 1rem;
  text-align: left;
  word-break: keep-all;
}

@media(min-width: 768px){
  .history .container{
    display: flex;
    max-width: 1000px;
    max-width: var(--large-width);
    margin-left: auto;
    margin-right: auto;
    }
    
    .history .photo{
      flex: 3;
      }
      
    .history .text{
      flex: 2;
      padding: 50px;
      }
} 

/* お問い合わせページ: お問い合わせ先 */
.contact{
  margin-top: 20px;
  margin-bottom: 20px;
  padding: 20px;
  border: solid 1px #ddd;
  border: solid 1px var(--gray-color);
  text-align: center;
  }

.contact .contact1 span {
  display: inline-block;
  margin-bottom: 20px;
  font-size: 2.2rem;
  width: 2em;
  line-height: 2em;
  border-radius: 50%;
  text-align: center;
  background-color: #5D9AB2;
  background-color: var(--main-color);
  color: #fff;
  color: var(--text-bright-color);
}

.contact h2{
  margin-top: 0;
  font-size: 1.2rem;
}

.contact a {
  font-size: 1.4rem;
  color: inherit;
  text-decoration: none;
}

@media (min-width: 768px) {
  .contact-wrap {
    display: flex;
  }
  .contact {
    flex: 1;
  }
  
  .contact: first-child {
    margin-right: 20px;
  }
}

.contact .contact2 .domain::before {
   content: '@';
}

/* お問い合わせページ: 地図 */
.location iframe {
  width:100%;
  height: 400px;
  vertical-align: bottom;
}

.location h2 {
  margin: 0;
  padding-top: 20px;
  padding-bottom: 20px;
  background-color:#0274d5;
  background-color: var(--main-color);
  color:#fff;
  color: var(--text-bright-color);
  font-size: 1.5rem;
  text-align: center;
}

/* 記事一覧A */
.listA h1 {
  text-align: center;
}

.listA .container {
  display: flex;
  flex-wrap:wrap;
  max-width: 1000px;
  max-width: var(--large-width);
  margin: 30px auto;
}

.listA article {
  flex: 1 1 300px;
  display: flex;
}

.listA a {
  flex: 1;
  margin: 10px;
  display: block;
  border: solid 1px #ddd;
  border: solid 1px var(--gray-color);
  color: inherit;
  text-decoration: none;
}

.listA a:hover {
  opacity: 0.8;
}
  
.listA .photo {
  min-height: 150px;
  background-position: center;
  background-size: cover;
  
}

.listA .photo1 {
  
  min-height: 150px;
  background-position: center;
  
  background-size: contain;
  background-repeat: no-repeat;   
}


.listA .text {
  margin: 10px;
}

.listA h2 {
  font-size: 18px;
}

.listA p {
  font-size: 14px;
  opacity: 0.8;
}

/* 記事一覧B */

.midasi .container{
  max-width: 800px;
  max-width: var(--middle-width);
  margin-left:auto;
  margin-right:auto;
  padding: 30px 10px;
}

.midasi h1{
  margin-top: 100px;
  padding-left: 0.5rem;
  border-left: solid 0.75rem #2B5566;
  border-left:
  solid 0.75rem var(--accent-color);
  font-size: 2rem;
}
  
.listA h1 {
  text-align: center;
}

.listA .container {
  display: flex;
  flex-wrap:wrap;
  max-width: 1000px;
  max-width: var(--large-width);
  margin: 30px auto;
}

.listA article {
  flex: 1 1 300px;
  display: flex;
}

.listA a {
  flex: 1;
  margin: 10px;
  display: block;
  border: solid 1px #ddd;
  border: solid 1px var(--gray-color);
  color: inherit;
  text-decoration: none;
}

.listA a:hover {
  opacity: 0.8;
}
  
.listA .photo {
  min-height: 150px;
  background-position: center;
  background-size: cover;
}

.listA .text {
  margin: 10px;
}

.listA h2 {
  font-size: 18px;
}

.listA p {
  font-size: 14px;
  opacity: 0.8;
}

/* フッタ－ */
footer{
  color: #fff;
  color: var(--text-bright-color);
  background-color: #2B5566;
  background-color: var(--dark-main-color);
  }
  
footer .container{
  padding: 40px 20px;
  }
  
@media(min-width: 768px) {
  footer .container{
    display: flex;
    flex-wrap: wrap;
    max-width: 1000px;
    max-width: var(--large-width);
    margin-left: auto;
    margin-right: auto;
    }
    
  .footA{
    flex: 0 0 40%;
  }
  
  .footB{
    flex: 0 0 60%;
  }
  
  .footC{
    flex: 0 0 100%;
  }
}
    
/* フッターA: サイト情報*/
.footA {
  margin-bottom: 30px;
  }
  
.footA h2{
  margin-top: 0;
  margin-bottom: 10px;
  font-size: 30px;
  letter-spacing: 0.1em;
  }
  
.footA p{
  margin-top: 0;
  margin-bottom: 0;
  font-size: 14px;
}

.footA a{
  color: inherit;
  text-decoration: none;
}

/* フッターC: コピーライト */
.footC{
  font-size: 12px;
  text-align: center;
  font-family: 'Monteserrat', sans-serif;
  }
   
/* フッターB: フッターメニュー*/
.footB div{
  margin-bottom: 20px;
  }
  
.footB h3{
  margin-top: 0;
  margin-bottom: 10px;
  border-bottom: solid 1px currentColor;
  font-size: 14px;
  }
  
.footB ul{
  margin: 0;
  padding: 0;
  list-style: none;
  }

.footB a{
  display: block;
  padding: 5px;
  color: inherit;
  font-size: 12px;
  text-decoration: none;
  }
  
.footB a:hover{
  background-color: rgba(0,0,0,0.3);
}

@media(min-width: 768px){
  .footB{
    display: flex;
    }
    
  .footB div{
    flex: 1;
    }
  .footB div:not(:first-child){
    margin-left: 40px;
  } 
}