@charset "utf-8";

/*----↓↓全体共通スタイル 消さないでください↓↓---
----------------------------------------*/
@media screen and (max-width: 767px) {
  .is-pc {
    display: none;
  }
}

@media screen and (min-width: 768px) {
  .is-sp {
    display: none;
  }
}
body {
  position: relative;
  font-size: 14px;
  color: #333;
  font-family: 'M PLUS Rounded 1c', sans-serif;

  line-height: 1.875;
  letter-spacing: .2em;
  background: #FFD5D0;
}
@media screen and (max-width: 767px) {
    body {
        font-size: 10px;
    }
}
.section {
    margin: 80px 0;
}
@media screen and (max-width: 767px) {
    .section {
        margin: 80px 0;
    }
}
a {
  color:#333;
  cursor: pointer;
  text-decoration: none;
}
a:hover {
    background:  #5F7A9D;
    color:#fff;
    transition: 1.5s all;
}
.header a:hover {
    background: none;
    color: #34B2E0;
}

.header .head_tel a:hover {
    color: #34B2E0;
}

img {
  width: 100%;
}
@media screen and (min-width: 768px) {
.container {
  width:100%;
  max-width: 1200px;
  margin:0 auto;
  padding:0 40px;
  box-sizing: content-box;
 }
 .inner {
    padding: 100px 0;
}
}
@media screen and (max-width: 767px){
    .container {
        padding: 0 20px;

    }
    .inner {
        padding: 40px 0;
    }
}
.utile_ttl {
    font-size: 30px;
    color: #5F7A9D;
    font-weight: 800;
    letter-spacing: .6em;
    text-align: center;
    margin-bottom: 10px;
    position: relative;
    font-family: 'Mitr', sans-serif;

}
@media screen and (max-width: 767px) {
    .utile_ttl {
        font-size: 16px;
        letter-spacing: .4em;
        margin-bottom: 0;
    }
}
.utile_ttl:before {
    content:'';
    position: absolute;
    bottom: -10px;
    display: inline-block;
    width: 100px;
    height: 5px;
    left: 47%;
    border-radius: 3px;
    background: #E7FE00;
}
@media screen and (max-width: 767px) {
    .utile_ttl:before {
        left: 43%;
        width: 55px;
    }
}
.h2_text {
    text-align: center;
    font-size: 18px;
    margin-bottom: 20px;
    margin-top: 15px;
}
@media screen and (max-width: 767px) {
    .h2_text {
        font-size: 10px;
        margin-top: 20px;
    }
}
.utile_btn {
    display: block;
    background: #9B1B1B;
    color: #fff;
    width: 400px;
    height: 100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 30px;
    font-size: 20px;
}
@media screen and (max-width: 767px) {
    .utile_btn {
        width: 240px;
        height: 50px;
        font-size: 10px;
    }
}

/*----↑↑全体共通スタイル 消さないでください↑↑---
----------------------------------------*/


/*-----header
ナビゲーション部分-----*/
.header {
    height: 70px;
    width: 100%;
    background: #fff;
    position: fixed;
    z-index: 1;
    top: 0;
}
.header_inner {
    display: flex;
}
.header_logo {
    width: 120px;
    height: 70px;
    line-height: 70;
    display: flex;
    align-items: center;
}
.header_nav {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-left: auto;
    line-height: 70px;
}
.header_nav > a {
    display: inline-block;
}
.header_nav_item {
    display: flex;
    margin-right: 25px;

}


.head_tel {
    display: block;
    background: #9B1B1B;
    color: #fff;
    width: 170px;
    height: 50px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 30px;
}
.head_mail {
    display: block;
    background: #FFD5D0;
    width: 180px;
    height: 50px;
    text-align: center;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 30px;
    margin: 0;
}
.head_tel > a {
    color: #fff;
}
@media screen and (max-width: 767px) {
    .header {
        display: none;
    }
}



/*-------mv
トップ部分-------*/
@media screen and (min-width: 768px) {
  body {
    padding-top: 70px;
  }
}
.mv {
    height: 900px;
    background:url(../img/bg_kitakanto.jpg) center center / cover; /* 2024.09 */
    position: relative;
}
@media screen and (max-width: 767px) {
    .mv {
        height: 500px;
    }
}
.mv_wrapper {
    position: absolute;
    top: 30%;
    left: 50%;
    transform: translateY(-28%) translateX(-50%);
    width: 60%; /* 2024.09 */
}

@media screen and (min-width: 768px) {
  .mv_ttl {
      display: flex;
      align-items: center;
      justify-content: center;
  }
}
@media screen and (max-width: 767px) {
    .mv_ttl {
        margin: 0 auto;
        text-align: center;
    }
}

.mv_logo {
    width: 300px;
    margin-right: 3%;
}
@media screen and (max-width: 767px) {
    .mv_logo {
        width: 120px;
        margin: 20px 10px; /* 2024.09 */
    }
}

.mv_kaisha {
    width: 800px;
    margin-top: 120px; /* 2024.09 */
}
@media screen and (max-width: 767px) {
    .mv_kaisha {
        width: 200px;
        vertical-align: top; /* 2024.09 */
        margin-top: 0;  /* 2024.09 */
    }
}
.mv_text {
    text-align: center;
    line-height: 2;
    font-size: 24px;
}
@media screen and (min-width: 768px) {
    .mv_text {
        margin-bottom: -30px;
    }

}
@media screen and (max-width: 767px) {
    .mv_text {
        font-size: 10px;
    }
}
.mv_btn {
    position: absolute;
    left: 18%;
    top: 85%;
}

/* 2023.12.07 --- start --- */
/*-----Machine
機材-----*/
.machine {
    background: #fff;
}
.machine_container h2 {
    margin-bottom: 3rem;
    text-align: center;
}
.machine_container h2 img {
    width: 70%;
}
.machine_list > .machine_item {
    margin-bottom: 3rem;
    text-align: center;
}
.machine_list > .machine_item img {
    width: 80%;
}
.machine_list > .machine_item a:hover {
    background: none;
}
.machine_list > .machine_item small {
    display: inline-block;
    margin-top: 1rem;
    padding: 0.25rem 2rem;
    color: #FFF;
    font-size: 0.75rem;
    background-color: #9B1B1B;
    border-radius: 1rem;
}
.machine_list > .machine_item small:hover {
    opacity: 0.8;
    transition: 0.4s all;;
}

@media screen and (min-width: 768px) {
    .machine_container {
        width: 80%;
        margin: 0 auto;
    }
    .machine_list {
        display: flex;
        justify-content: center;
    }
    .machine_list > .machine_item {
        width: 46%;
        margin-right: 8%;
        margin-bottom: 4rem;
    }
    .machine_list > .machine_item:last-child {
        margin-right: 0;
    }
    .machine_list > .machine_item small {
        margin-top: 2rem;
        font-size: 1.125rem;
        border-radius: 1.225rem;
    }
    .machine_list > .machine_item img {
        width: 100%;
    }
}

/* 会社概要 */
.machine_detail h3 {
    font-weight: bold;
}
.machine_detail p {
    margin-bottom: 1rem;
    padding-left: 1rem;
}
.machine_detail p:last-child {
    margin-bottom: 0;
}


/* 2023.12.07 --- end --- */

/*-----concept
トップ下訴求部分-----*/

.concept_img {
    width: 700px;
    height: 200px;
    background:url(../img/bathroomimg.jpg) center center / cover;
    margin: 0 auto;
}
@media screen and (max-width: 767px) {
    .concept_img {
        width: 300px;
        height: 100px;
    }
}
.conceptList {
    width: 450px;
    margin: 0 auto;
    margin-top: 40px;
}
@media screen and (max-width: 767px) {
    .conceptList {
        width: 80%;
    }
}
.conceptList_item_img {
    width: 40px;
}
@media screen and (max-width: 767px) {
    .conceptList_item_img {
        min-width: 30px;
        max-width: 30px;

    }
}
.conceptList_item {
    display: flex;
    align-items: center;
    margin-bottom: 4%;
}

.concrpt_text {
    margin-left: 1.5%;

}
.concrpt_text::after {
    display: block;
    content: '';
    width: 370px;
    height: 2px;
    color: #9B1B1B;
    border-bottom: dashed 2px #87CEFA;
}
@media screen and (max-width: 767px) {
    .concrpt_text::after {
        width: 230px;
    }
    .concrpt_text {
        font-size: 10px;
    }

}
/*-----スマホのみ表示
トップ下訴求部分-----*/
.concept_foot {
    background: url(../img/mv_foot.png) center center / cover;
    height: 150px;
    width: 100%;
}

.concept_foot {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}
.confept_foot_text {
    font-size: 14px;
    font-weight: 600;
    display: flex;
    align-items: center;
    justify-content: center;
}
.concept_body {
    line-height: 2em;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 80%;
    margin: 0 auto;
    margin-top: 5px;
}
@media screen and (min-width: 768px) {
    .concept_foot {
        display: none;
    }
}

/*-----business
事業一覧部分-----*/
.business {
    background: #fff;
}
@media screen and (min-width: 768px) {
.business_container {
    width: 80%;
    margin: 0 auto;
  }
  .businessList {
    width: 100%;
    margin-top: 100px;
 }
 .businessList_item:first-child {
    margin-right: auto;
}
.businessList_item:nth-of-type(2){
    margin-left: auto;
 }
}

.business_img {
    width: 50%;
}
.bisiness_body {
    width: 40%;
    max-width: 500px;
    margin: 0 auto;
}
@media screen and (min-width: 768px) {

.businessList_item {
    display: flex;
    align-items: center;
    margin-bottom: 5%;
  }
}

.business_ttl {
    position: relative;
    padding: 1.3rem 2rem 1.5rem 160px;
     border-bottom: 3px solid #9B1B1B;
     font-size: 22px;
   }

.ttl_namber {
     font-family: 'Roboto', sans-serif;
     font-size: 70px;
     font-size: 5rem;
     color: #9B1B1B;
     line-height: 1;
     position: absolute;
     bottom: 0;
     left: 0;
   }
.business_icon {
    display: block;
    width: 80px;
    margin: 0 auto;
    margin-top: 40px;
    margin-bottom: 40px;
}
.business_btn {
    display: block;
    background: #9B1B1B;
    color: #fff;
    width: 400px;
    height: 100px;
    margin: 0 auto;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 30px;
    font-size: 20px;
    margin-top: 100px;
}
.business_btn:hover {
    background: #fff;
    border: 4px solid  #9B1B1B;
    color: #333;

}
@media screen and (max-width: 767px) {
    .businessList {
        margin-top: 40px;
    }
    .businessList_item {
        margin-bottom: 40px;
    }

    .business_img {
        width: 80%;
        margin: 0 auto;
    }
    .bisiness_body{
        width: 270px;
        margin: 0 auto;
    }
    .business_icon {
        width: 30px;
    }
    .ttl_namber {
        font-size: 20px;
        font-size: 2.5em;
    }
    .business_ttl {
        margin-top: 25px;
        display: flex;
        align-items: center;
        padding: 0rem 0rem 0rem 100px;
         border-bottom: 3px solid #9B1B1B;
         font-size: 14px;
       }
       .business_text {
           margin-top: 10px;
       }
       .business_btn {
           width: 80%;
           height: 50px;
           font-size: 12px;
           margin-top: 0;
       }

}


/*-----Service
対応エリア/料金/施工事例-----*/
.service {
    background: #FFD5D0;

}

  .service > .container {
    display: flex;
    align-items: center;
    justify-content: space-between;
  }

.service_wrapper {
    background: #E4E4E4;
    width: 300px;
    height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
}
@media screen and (max-width: 767px) {
    .service_wrapper {
        width: 100px;
        height: 100px;
        margin: 0 auto;
    }
}
.service_wrapper:hover {
    background: #9B1B1B;
    color: #fff;
}
.service_ttl {
    text-align: center;
    margin-bottom: 5%;
}
@media screen and (max-width: 767px) {
    .service_ttl {
        font-size: 10px;
    }
}
.service_icon {
    width: 150px;
}
@media screen and (max-width: 767px) {
    .service_icon {
        width: 40px;
        margin: 0 auto;
    }
}


/*-----about
会社概要-----*/
.about {
    background: #fff;

}
.concept2 {
    margin-top: 80px;
    height: 400px;
    background: url(../img/concept2_bg.png) center center / cover;
    position: relative;
}
@media screen and (max-width: 767px)  {
    .concept2 {
        margin-top: 20px;
        height: 200px;
    }
}
@media screen and (min-width: 767px) {
    .concept2_body {
        position: absolute;
        top: 20%;
        left: 20%;
    }
    .concept2_message {
        font-size: 30px;
    }
}
@media screen and (max-width: 767px)  {
    .concept2_body {
        position: absolute;
        top: 18%;
        left: 10%;
    }

}
.concept_logo {
    position: absolute;
    top: 60%;
    right: 15%;
    display: flex;
    align-items: center;
}
@media screen and (max-width: 767px)   {
    .concept_logo {
        top:70%;
        left: 48%;
    }
}
.logo1{
  width: 100px;
}
@media screen and (max-width: 767px)  {
    .logo1 {
        width: 30px;
    }
}
.logo2 {
    width: 300px;
    margin-left: 4%;
  }
  @media screen and (max-width: 767px)  {
      .logo2 {
          width: 120px;
      }
  }
  @media screen and (max-width: 767px)   {
      .about_messageInner {
          font-size: 24px;
          margin-right: 5px;
      }
  }
/*-----about
会社概要　テーブル-----*/


  .kaisha {
    width: 40%;
    margin: 0 auto;
    margin-top: 60px;
    margin-bottom: 60px;
    }

    @media screen and (max-width: 767px) {
        .kaisha {
            width: 80%;
            margin-bottom: 40px;

        }
    }

    .kaisha th,
    .kaisha td {
    padding: 20px 10px;
    }
    @media screen and (max-width: 767px) {
        .kaisha th,
        .kaisha td {
            padding: 10px 15px;
        }

    }
    @media screen and (min-width: 768px) {
    /* 2023.12.07 --- start --- */
    .kaisha th {
        white-space: nowrap;
    }
    /* 2023.12.07 --- end --- */
    .kaisha td {
        border-bottom: 1px solid #ccc;
    }
    .kaisha tr:first-child td{
        border-top: 1px solid #ccc;
    }
}

    .kaisha th {
    font-weight: bold;
    background-color: #FFD5D0;
    }

    @media screen and (max-width: 767px) {
    .kaisha,
    .kaisha tr,
    .kaisha td,
    .kaisha th {display:block;}
    .kaisha th {width:auto;}
    }

/* 2023.12.07 --- start --- */
.permit_certificate_list {
    text-align: center;
}
.permit_certificate_list > .permit_certificate_item img {
    width: 60%;
}
@media screen and (min-width: 768px) {

.permit_certificate_list {
    display: flex;
}
.permit_certificate_list > .permit_certificate_item {
    display: block;
    width: 32%;
    margin-right: 2%;
    font-size: 0.75rem;
    text-decoration: none;
}
.permit_certificate_list > .permit_certificate_item:last-child {
    margin-right: 0;
}
.permit_certificate_list > .permit_certificate_item img {
    width: 100%;
}
}

/* モーダル(page.cssより流用・改変) */
.modal {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    height: 100vh;
    max-width: 100%;
    background-color: rgba(0, 0, 0, 0.8);
    display: none;
    z-index: 10000;
    overflow-y: scroll;
}
.bigimg {
    max-width: 800px;
/*
    position: absolute;
    top: 80px;
    left: 0;
    right: 0;
*/
    margin-top: 80px;
    margin-right: auto;
    margin-left: auto;
}
.bigimg img {
    width: 100%;
    object-fit: contain;
}
.close-btn {
    position: absolute;
    top: 20px;
    right: 20px;
    color: #fff;
    font-size: 40px;
}
.close-btn a {
    color: #fff;
    text-decoration: none;
}
/* 2023.12.07 --- end --- */

/*-----about
会社概要　マップ-----*/
.map {
    margin: 0 auto;
    padding: 0 40px;
}
@media screen and (min-width: 768px) {
  .map {
      width: 900px;
  }
}

  @media screen and (max-width: 767px) {
      .map_size {
          display: block;
          width: 350px;
          height: 200px;
          margin: 0 auto;
      }
      .map {
          padding: 0;
      }
  }

/*-----business list
-----*/

.business_list {
    background: #FFD5D0;
}
.business_list_head {
    text-align: center;
    margin-bottom: 40px;
    font-weight: 600;
    font-size: 22px;
    letter-spacing: 0.5em;
}

.business_list_l{
    display: flex;
    align-items: center;
    justify-content: space-between;

}
.business_list > .container > .business_list_l > a:hover {
   background: transparent;
   color: #9B1B1B;
}
.business_list_item {
    background: #fff;
    width: 230px;
    height: 230px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    border-radius: 20%;
}

.business_list_ttl {
    text-align: center;

    margin-bottom: 10px;
}
.business_listIcon{
    width: 90px;
}


@media screen and (max-width: 767px)  {

    .business_list_l {
        justify-content: space-around;
     }
    .business_list_head {
        margin-bottom: 20px;
        font-size: 14px;
        letter-spacing: 0.3em;
    }
    .business_list_item {
        width: 90px;
        height: 90px;
        margin-bottom: 10px;
        font-size: 10px;
    }
    .business_listIcon {
        min-width: 40px;
        max-width: 40px;
        margin: 0 auto;
    }
}
/*-----contact
お問い合わせ-----*/

.contact {
    position: relative;
    width: 100%;
    height: 850px;
    background: url("../img/bathroomimg.jpg") center center / cover;
  }
  @media screen and (max-width: 767px) {
      .contact {
          height: 430px;
      }
  }
  .contact > .box1 > .utile_ttl:before {
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
}
@media screen and (max-width: 767px) {
    .contact > .box1 > .utile_ttl:before  {
        left: 40%;
    }
}
  .box1 {
    width: 70%;
    height:640px;
    margin: 0 auto;
    background-color: rgba(255, 255, 255, 0.6);
    text-align: center;
  }

  .contact_body {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translateY(-50%) translateX(-50%);
    text-align: center;

  }

  @media screen and (max-width: 767px)  {
      .box1 {
          height: 100%;
      }
  }
    .contact_text {
        margin-top: 30px;
    }
    @media screen and (max-width: 767px) {
        .contact_text {
            font-size: 8px;
            margin: 0 auto;
            margin-top: 10px;
        }
    }
    .contact_body > .utile_ttl:before {
        left: 0;
        left: 38%;

    }

  .contact_btn {
      margin-top: 40px;
      display: inline-block;
      width: 220px;
      height: 60px;
      background: #444;
      line-height: 60px;
      font-weight: 800;

  }
  .mail {
      background: #9B1B1B;
      color: #fff;
  }
  .tel {
      background: #FFD5D0;
      color: #5F7A9D;
  }
  @media screen and (max-width: 767px) {
      .contact_btn {
          margin-top: 0px;
          width: 200px;
          height: 50px;
      }
      .mail {
          margin-top: 16px;
      }
  }

/*-----contact_form 2022.12.16
-----*/
.contact_form {
    background: #fff;
}
@media screen and (min-width: 768px) {
  .contact_form > .container {
      width: 70%;
      margin: 0 auto;
  }
}






/*-----sdgs
-----*/
.sdgs {
    background: #fff;
}
@media screen and (min-width: 768px) {
  .sdgs > .container {
      width: 70%;
      margin: 0 auto;
  }
}
  .box2 {
    width: 100%;
    background-color: #E4E4E4;
    text-align: center;
    padding: 40px 0;
  }
  @media screen and (max-width: 767px) {
      .box2 {
          height: 300px;
          padding: 20px 0;
      }
  }
  .sdgs_img {
      width: 70%;
      margin: 0 auto;
      margin-top: 20px;
  }
  @media screen and (max-width: 767px) {
      .sdgs_img {
          width: 90%;
      }
  }
span {
    font-size: 36px;
    font-weight: 700;
    margin-right: 20px;
    font-family: 'Gloria Hallelujah', cursive;
}
@media screen and (max-width: 767px) {
    span {
        font-size: 18px;
        margin-right: 10px;
    }
}
@media screen and (min-width: 768px) {
    .sdgs_text {
        font-size: 22px;
        font-weight: 600;
    }
}

.sdgs_text_foot {
    margin-top: 15px;
}

@media screen and (max-width: 767px) {
    .sdgs_text_foot {
        margin-top: 10px;
    }
}

/*-----footer
-----*/
.footer {
    background: #9B1B1B;
    color: #fff;
    padding: 40px 0;
    text-align: center;
    font-size: 12px;
}
@media screen and (max-width: 767px) {
    .footer {
        padding: 20px 10px;
        font-size: 6px;
    }
}
.info {
    background: #FFD5D0;
}

@media screen and (min-width: 992px) {
.info > .container {
    display: flex;
    justify-content: center;
    align-items: center;
  }
}

.info_left {
    display: flex;
    align-items: center;
}
@media screen and (min-width: 992px)  {
    .info_left {
        width: 350px;
    }

}
.info_logo {
    width: 80px;
    margin-right: 5%;
}
.info_kaisya {
    width: 200px;
}
@media screen and (max-width: 991px) {
    .info_left {
        justify-content: center;
    }
    .info_left_after {
        width: 100%;
        height: 3px;
        background: #fff;
        margin: 0 auto;
        margin-top: 20px;
        margin-bottom: 20px;
    }
}
.info_center {
    text-align: left;
}
.info_center th {
    padding-right: 1rem;
}
@media screen and (max-width: 991px) {
    .info_center {
        margin: 0 auto;
        margin-top: 10px;
    }
}
@media screen and (max-width: 767px) {
    .info_center {
        font-size: 10px;
    }
}

.site_map {
    width: 100%;
    text-align: center;
    padding: 10px 0;
}
@media screen and (max-width: 767px){
    .site_map {
        width: 250px;
        margin: 0 auto;
        font-size: 8px;
    }
}


.scroll >
a {
    padding-top: 80px;
  }
  a span {
    position: absolute;
    top: 0;
    left: 50%;
    width: 24px;
    height: 24px;
    margin-left: -12px;
    border-left: 1px solid #fff;
    border-bottom: 1px solid #fff;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    -webkit-animation: sdb 2s infinite;
    animation: sdb 2s infinite;
    opacity: 0;
    box-sizing: border-box;
  }
  a span:nth-of-type(1) {
    -webkit-animation-delay: 0s;
    animation-delay: 0s;
  }
  a span:nth-of-type(2) {
    top: 16px;
    -webkit-animation-delay: .15s;
    animation-delay: .15s;
  }
  a span:nth-of-type(3) {
    top: 32px;
    -webkit-animation-delay: .3s;
    animation-delay: .3s;
  }
  @-webkit-keyframes sdb {
    0% {
      opacity: 0;
    }
    50% {
      opacity: 1;
    }
    100% {
      opacity: 0;
    }
  }
  @keyframes sdb {
    0% {
      opacity: 0;
    }
    50% {
      opacity: 1;
    }
    100% {
      opacity: 0;
    }
  }
  .scroll {
      position: absolute;
      top:92%;
      left: 50%;
      transform: translateY(-90%) translateX(-50%);
  }


/*-----banner
-----*/
.banner_recruit.sp {
  position: fixed;
  bottom: 0;
  left: 0;
  width: 100vw;/* 2024.09 */
}


.banner_recruit.pc {
  display: none;
  position: fixed;
  top: 50%;
  left: -12px;
  width: 9rem;
}
.banner_recruit a:hover {
  background: none;
}
.banner_recruit img {
  width: 100%;
}
@media screen and (min-width: 768px) {
  .banner_recruit.sp {
    display: none;
  }
  .banner_recruit.pc {
    display: block;
  }
}
@media screen and (min-width: 992px) {
  .banner_recruit.pc {
    left: -15px;
    width:12rem;
  }
}

