@charset "utf-8";

/* CSS Document */
.navbar-brand img {
  width: 30%;
}

h1 {
  position: relative;
  font-family: Arial, Helvetica, "sans-serif";
}

h1::before {
  position: absolute;
  bottom: 20%;
  left: calc(50% - 32px);
  content: '';
  width: 64px;
  height: 4px;
  background: #052b51;
}

a.nav-link {
  font-family: Arial, Helvetica, "sans-serif";
}

.col-12 p {
  line-height: 2.5;
}

.companyInfo,
.specInfo {
  border-collapse: collapse;
}

.companyInfo th,
.companyInfo td,
.specInfo th,
.specInfo td {
  text-align: left;
  padding: 16px;
}

.companyInfo th {
  min-width: 5em;
}

.companyInfo tr,
.specInfo tr {
  border-bottom: thin solid #CDCDCD;
}

.specInfo th {
  min-width: 6em;
}

.carSponly {
  display: none;
}

img.insta_link {
  width: 1rem;
  vertical-align: text-top;
  opacity: 0.6;
}

/*------------------------props-------------------------*/
.props_items_wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
  padding: 0 !important;
  margin: 80px auto;
}

.props_items_wrap::after {
  display: block;
  content: "";
  width: 250px;
}

.props_items_wrap:before {
  content: "";
  display: block;
  width: 250px;
  height: 0;
  order: 1;
  /* 疑似要素beforeの順番を必ず指定する*/
}

.wrapper_items {
  margin: 100px auto 0 auto;
  width: 100%;
}

.props_items {
  width: 250px;
  height: 250px;
  overflow: hidden;
  margin-bottom: 30px;
  position: relative;
  cursor: pointer;
}

.props_items .caption {
  font-size: 80%;
  text-align: center;
  color: #fff;
  letter-spacing: 0.1em;
}

.props_items .mask {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  /* マスクを表示しない */
  background-color: rgba(43, 33, 19, 0.70);
  -webkit-transition: all 0.6s ease;
  transition: all 0.6s ease;
}

.props_items:hover .mask {
  opacity: 1;
  /* マスクを表示する */
  padding-top: 60px;
  /* ホバーで下にずらす */
}

.props_items img {
  width: 100%;
}

.cap_small {
  font-size: 0.8em;
  line-height: 2em;
  display: block;
}

@media(max-width:768px) {
  .props_items_wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 40px auto;
  }

  .props_items {
    width: 48%;
    height: 48%;
    overflow: hidden;
    margin-bottom: 10px;
    position: relative;
  }

  .props_items .caption {
    font-size: 70%;
    text-align: center;
    color: #fff;
  }

  .props_items .mask {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    /* マスクを表示しない */
    -webkit-transition: all 0.6s ease;
    transition: all 0.6s ease;
  }

  .props_items:hover .mask {
    opacity: 1;
    /* マスクを表示する */
    padding-top: 40px;
    /* ホバーで下にずらす */
  }

  .props_items img {
    width: 100%;
  }
}


/*------------------------case-------------------------*/
.case_items_wrap {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  width: 100%;
  padding: 0 !important;
  margin: 80px auto;
}

.case_items_wrap::after {
  display: block;
  content: "";
  width: 250px;
}

.case_items_wrap:before {
  content: "";
  display: block;
  width: 250px;
  height: 0;
  order: 1;
  /* 疑似要素beforeの順番を必ず指定する*/
}

.wrapper_items {
  margin: 100px auto 0 auto;
  width: 100%;
}

.case_items {
  width: 300px;
  height: 300px;
  overflow: hidden;
  margin-bottom: 30px;
  position: relative;
  cursor: pointer;
}

.case_items .caption {
  font-size: 80%;
  text-align: center;
  color: #fff;
  letter-spacing: 0.1em;
}

.case_items .mask {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  opacity: 0;
  /* マスクを表示しない */
  background-color: rgba(43, 33, 19, 0.70);
  -webkit-transition: all 0.6s ease;
  transition: all 0.6s ease;
}

.case_items:hover .mask {
  opacity: 1;
  /* マスクを表示する */
  padding-top: 100px;
  /* ホバーで下にずらす */
}

.case_items img {
  width: 100%;
}

.cap_small {
  font-size: 0.8em;
  line-height: 2em;
  display: block;
}

@media(max-width:768px) {
  .case_items_wrap {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    margin: 40px auto;
  }


  .case_items {
    width: 48%;
    height: 48%;
    overflow: hidden;
    margin-bottom: 10px;
    position: relative;
  }

  .case_items .caption {
    font-size: 70%;
    text-align: center;
    color: #fff;
  }

  .case_items .mask {
    width: 100%;
    height: 100%;
    position: absolute;
    top: 0;
    left: 0;
    opacity: 0;
    /* マスクを表示しない */
    -webkit-transition: all 0.6s ease;
    transition: all 0.6s ease;
  }

  .case_items:hover .mask {
    opacity: 1;
    /* マスクを表示する */
    padding-top: 40px;
    /* ホバーで下にずらす */
  }

  .case_items img {
    width: 100%;
  }
}

/*-----------------------contact送信フォーム-----------------------*/
.form_area {
  padding: 20px;
  width: 70%;
  margin: auto;
}

.form_area dl {
  margin-bottom: 30px;
}

.form_area dt {
  font-weight: bold;
  margin-bottom: 20px;
}

/* form */
.form_area input[type="text"],
.form_area input[type="tel"],
.form_area input[type="mail"],
.form_area textarea,
.form_area select {
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  -webkit-appearance: button;
  appearance: none;
  border-radius: 0;
  margin: auto;
  width: 100%;
  font-size: 16px;
  border: 1px solid #aaa;
  padding: 15px;
}

/* submit */
.form_area .submit {
  display: flex;
  justify-content: center;
}

.form_area .submit input {
  cursor: pointer;
  border: none;
  display: inline-block;
  width: 300px;
  background: #000;
  color: #fff;
  font-weight: bold;
  margin: 5px;
  padding: 20px 15px;
}

.form_area input[type="radio"]:nth-last-child(-n + 2) {
  margin: 0 0 0 5%;
}

/* check,radio */
.checkbox-field label,
.radio-field label {
  display: inline-block;
  margin-right: 20px;
}

/* checkbox */
.contact_cb {
  margin-right: 20px;
}

/*必須*/
.formRepuired {
  font-size: 0.7em;
  font-weight: 300;
  color: firebrick;
  margin-left: 10px;
}

/*図面画像*/
div.image-overlay {
  position: fixed;
  z-index: 999;
  border: 10px solid #eee;
  max-width: 50%;
}

div.invisible {
  display: none;
}

div.visible {
  display: block !important;
}

div.image-overlay img {
  width: 100%;
}

.confirm_txt {
  text-align: center;
  margin: 5% auto;
}

@media(max-width:768px) {
  body {
    font-size: 0.9rem;
  }

  .p-5 {
    font-size: 2rem;
  }

  .carSponly {
    display: block;
  }

  .carPconly {
    display: none;
  }

  /*form幅*/
  .form_area {
    width: 100%;
  }

  /*図面画像*/
  div.image-overlay {
    top: 70%;
    max-width: 70%;
  }

  /* checkbox */
  .contact_cb {
    margin-right: 1%;
  }

  .confirm_txt {
    margin: 10% auto;
  }
}

/*------------------------ボタン-------------------------*/
.btn {
  position: relative;
  display: inline-block;
  padding: .5em 4em;
  border: 2px solid #333;
  color: #333;
  text-align: center;
  text-decoration: none;
  transition: .3s;
  font-size: 1.25rem;
}

.btn:hover {
  color: #fff;
}

.btnbg_bk:hover {
  background-color: #333;
}

.btn::before {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: -1;
  content: '';
  background: #333;
  transform-origin: left top;
  transform: scale(0, 1);
  transition: transform .3s;
}

.btn:hover::before {
  transform-origin: left top;
  transform: scale(1, 1);
}

@media(max-width:768px) {
  .btn {
    font-size: 1rem;
  }
}

.telno {
  font-size: 1.4em;
  font-weight: bold;
}

.telno a {
  color: white;
}

.hours {
  font-size: 0.6em;
  font-weight: normal;
}

@media (min-width: 751px) {
  a[href*="tel:"] {
    pointer-events: none;
    cursor: default;
    text-decoration: none;
  }
}

/*------------------------202304スライダー修正-------------------------*/
.carousel-indicators_PC {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-pack: center;
  justify-content: center;
  padding-left: 0;
  margin-right: 15%;
  margin-left: 15%;
  list-style: none;

}

.carousel-indicators_PC li {
  box-sizing: content-box;
  -ms-flex: 0 1 auto;
  flex: 0 1 auto;
  width: auto;
  height: auto;
  margin-right: 3px;
  margin-left: 3px;
  text-indent: -999px;
  cursor: pointer;
  background-color: #fff;
  background-clip: padding-box;
  border-top: 10px solid transparent;
  border-bottom: 10px solid transparent;
  opacity: .5;
  transition: opacity 0.6s ease;
}

@media (prefers-reduced-motion: reduce) {
  .carousel-indicators_PC li {
    transition: none;
  }
}

.carousel-indicators_PC .active {
  opacity: 1;
}

.carousel-indicators_PC img {
  width: 100%;
  display: block;
}

.carSponly img {
  width: 100%;
}

.thumbnail {
  margin: 1% 0 0 0;
}

.slider {
  opacity: 0;
  transition: opacity .3s linear;
}

.slider.slick-initialized {
  opacity: 1;
}

.thumbnail {
  opacity: 0;
  transition: opacity .3s linear;
}

.thumbnail.slick-initialized {
  opacity: 1;
}

.thumbnail-img {
  margin: 0 4px 0 0;
}