@charset "utf-8";

/** ***************************************************************************
 * ビジュアル
 * ************************************************************************* */

#visual div.body {
  max-width: none;
  padding-left: 0;
  padding-right: 0;
}

#visual div.list {
  max-height: 40.625vw;
  overflow: hidden;
  position: relative;
  z-index: 1;
}

body.loaded
#visual div.list {
  max-height: none;
}

/** ***************************************************************************
 * 画像
 */

#visual div.item img {
  width: 100%;
  opacity: 1;
}

/** ***************************************************************************
 * 前へ / 次へ
 */

#visual div.button {
  width: 3.75vw;
  height: 3.75vw;
  max-width: 80px;
  max-height: 80px;
  min-width: 40px;
  min-height: 40px;
  cursor: pointer;
  background: url("../../_image/_common/icon-arrow-2.png") no-repeat;
  background-size: 100% 100%;
  position: absolute;
  z-index: 2;
  top: 50%;
  transition:
    left 0.3s ease-in-out 0.0s,
    right 0.3s ease-in-out 0.0s;
  display: none !important;
}

#visual div.button.prev {
  transform-origin: center top;
  -webkit-transform: rotate(180deg) translate(50%, -50%);
          transform: rotate(180deg) translate(50%, -50%);
  left: 12.5%;
}

#visual div.button.next {
  -webkit-transform: translate(50%, -50%);
          transform: translate(50%, -50%);
  right: 12.5%;
}

/* :::::::: ブレイクポイント :::::::: */

@media print, screen and (min-width:737px) {

  #visual div.button {
    display: block !important;
  }

}

/** ***************************************************************************
 * ページャー
 */

#visual div.pager {
  padding: 10px 0;
  background-color: #fff;
}

#visual div.pager ul,
#visual div.pager ul li {
  margin: 0;
  padding: 0;
  list-style: none;
}

#visual div.pager ul {
  margin-left: auto;
  margin-right: auto;
  display: table;
}

#visual div.pager ul li {
  padding: 3px 6px;
  cursor: pointer;
  vertical-align: middle;
  display: table-cell;
}

#visual div.pager ul li::before {
  content: '';
  width: 14px;
  height: 14px;
  display: block;
  border-radius: 100px;
  background-color: rgba(255, 132, 0, 0.4);
}

#visual div.pager ul li.slick-active::before {
  background-color: rgba(255, 132, 0, 1.0);
}

/* :::::::: ブレイクポイント :::::::: */

@media print, screen and (min-width:737px) {

  #visual div.pager {
    display: none;
  }

}

/** ***************************************************************************
 * リスペックのお約束
 * ************************************************************************* */

#promise {
  padding: 40px 0;
}

#promise div.body {
  background: url("../../_image/_common/bg-2.png") center top no-repeat;
  background-size: contain;
}

/* :::::::: ブレイクポイント :::::::: */

@media print, screen and (min-width:737px) {

  #promise {
    padding: 70px 0;
  }

  #promise div.body {
    background-size: auto;
  }

}

/** ***************************************************************************
 * 一覧
 */

#promise div.list div.item {
  max-width: 300px;
  margin-left: auto;
  margin-right: auto;
}

#promise div.list div.item ~ div.item {
  margin-top: 30px;
}

/* :::::::: ブレイクポイント :::::::: */

@media print, screen and (min-width:737px) {

  #promise div.list {
    max-width: 1110px;
    margin-left: auto;
    margin-right: auto;
    margin-bottom: -3.94%;
    letter-spacing: -0.4em;
    overflow: hidden;
  }

  #promise div.list > * {
    letter-spacing: normal;
  }

  #promise div.list div.item {
    width: 33.33%;
    max-width: 370px;
    margin-bottom: 3.94%;
    padding-left: 2.76%;
    padding-right: 2.76%;
    vertical-align: top;
    display: inline-block;
  }

  #promise div.list div.item ~ div.item {
    margin-top: 0;
  }

}

/** ===========================================================================
 * 画像
 */

#promise div.list div.image {
  text-align: center;
}

#promise div.list div.image img {
  max-width: 160px;
}

/* :::::::: ブレイクポイント :::::::: */

@media print, screen and (min-width:737px) {

  #promise div.list div.image img {
    max-width: 100%;
  }

}

/** ===========================================================================
 * 内容
 */

#promise div.list div.content .title {
  font-size: 18px;
  text-align: center;
}

/* :::::::: ブレイクポイント :::::::: */

@media print, screen and (min-width:737px) {

  #promise div.list div.content .title {
    font-size: 24px;
  }

}

/** ***************************************************************************
 * 詳しく見る
 */

#promise div.button {
  text-align: center;
}

/** ***************************************************************************
 * サービスのご案内
 * ************************************************************************* */

#service {
  padding: 40px 0;
  background-color: #f3f3f3;
}

#service div.body {
  background: url("../../_image/_common/bg-3.png") center top no-repeat;
  background-size: contain;
}

/* :::::::: ブレイクポイント :::::::: */

@media print, screen and (min-width:737px) {

  #service {
    padding: 70px 0;
  }

  #service div.body {
    background-size: auto;
  }

}

/** ***************************************************************************
 * 一覧
 */

#service div.list ul.item,
#service div.list ul.item li {
  margin: 0;
  padding: 0;
  list-style: none;
}

#service div.list ul.item {
  max-width: 1010px;
  margin-left: auto;
  margin-right: auto;
}

#service div.list ul.item li {
  text-align: center;
}

#service div.list ul.item li ~ li {
  margin-top: 10px;
}

#service div.list ul.item li a {
  display: block;
  position: relative;
  z-index: 1;
}

#service div.list ul.item li a::before {
  content: '';
  width: 8.38%;
  padding-bottom: 8.38%;
  background: url("../../_image/_common/icon-arrow-1.png") no-repeat;
  background-size: 100% 100%;
  display: block;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
  position: absolute;
  z-index: 2;
  top: 50%;
  transition:
    opacity 0.3s ease-in-out 0.0s,
    right 0.0s ease-in-out 0.3s;
  opacity: 0;
  right: 10%;
}

#service div.list ul.item li a:hover::before {
  transition:
    opacity 0.3s ease-in-out 0.0s,
    right 0.3s ease-in-out 0.0s;
  opacity: 1;
  right: 4.95%;
}

/* :::::::: ブレイクポイント :::::::: */

@media print, screen and (min-width:737px) {

  #service div.list ul.item li ~ li {
    margin-top: 20px;
  }

  #service div.list ul.item li a::before {
    width: 5.94%;
    padding-bottom: 5.94%;
  }

}


/** ***************************************************************************
 * 新サービス
 * ************************************************************************* */

#new-service {
  padding: 40px 0;
  background-color: #f0f7e2;
}

/* :::::::: ブレイクポイント :::::::: */

@media print, screen and (min-width:737px) {

  #new-service {
    padding: 70px 0;
  }

}

/** ***************************************************************************
 * 一覧
 */

#new-service div.list ul.item,
#new-service div.list ul.item li {
  margin: 0;
  padding: 0;
  list-style: none;
}

#new-service div.list ul.item {
  max-width: 1010px;
  margin-left: auto;
  margin-right: auto;
}

#new-service div.list ul.item li {
  text-align: center;
}

#new-service div.list ul.item li ~ li {
  margin-top: 10px;
}

#new-service div.list ul.item li a {
  display: block;
  position: relative;
  z-index: 1;
}

#new-service div.list ul.item li a::before {
  content: '';
  width: 8.38%;
  padding-bottom: 8.38%;
  background: url("../../_image/_common/icon-arrow-1.png") no-repeat;
  background-size: 100% 100%;
  display: block;
  -webkit-transform: translate(0, -50%);
          transform: translate(0, -50%);
  position: absolute;
  z-index: 2;
  top: 50%;
  transition:
    opacity 0.3s ease-in-out 0.0s,
    right 0.0s ease-in-out 0.3s;
  opacity: 0;
  right: 10%;
}

#new-service div.list ul.item li a:hover::before {
  transition:
    opacity 0.3s ease-in-out 0.0s,
    right 0.3s ease-in-out 0.0s;
  opacity: 1;
  right: 4.95%;
}

/* :::::::: ブレイクポイント :::::::: */

@media print, screen and (min-width:737px) {

  #new-service div.list ul.item li ~ li {
    margin-top: 20px;
  }

  #new-service div.list ul.item li a::before {
    width: 5.94%;
    padding-bottom: 5.94%;
  }

}


/** ***************************************************************************
 * サービス対応エリア
 * ************************************************************************* */

#area {
  padding: 40px 0;
  background-color: #f3f3f3;
}

#area div.body {
  background: url("../../_image/_common/bg-4.png") center 20px no-repeat;
  background-size: contain;
}

/* :::::::: ブレイクポイント :::::::: */

@media print, screen and (min-width:737px) {

  #area {
    padding: 70px 0;
  }

  #area div.body {
    background-position: center 40px;
    background-size: auto;
  }

}

/** ***************************************************************************
 * マップ
 */

#area div.map {
  max-width: 1000px;
  margin-left: auto;
  margin-right: auto;
}

#area div.map div.image {
  margin-bottom: 20px;
  text-align: center;
}

/** ***************************************************************************
 * 会社概要
 * ************************************************************************* */

#company {
  padding: 40px 0;
}

#company div.body {
  background: url("../../_image/_common/bg-5.png") center top no-repeat;
  background-size: contain;
}

/* :::::::: ブレイクポイント :::::::: */

@media print, screen and (min-width:737px) {

  #company {
    padding: 70px 0;
  }

  #company div.body {
    background-size: auto;
  }

}

/** ***************************************************************************
 * 会社概要
 */

#company div.outline {
  max-width: 940px;
  margin-left: auto;
  margin-right: auto;
}

/* :::::::: ブレイクポイント :::::::: */

@media print, screen and (min-width:737px) {

  #company div.outline {
    font-size: 15px;
  }

  #company div.outline .tel-link {
    color: inherit;
  }

}
