/*****************************

construction CSS

*****************************/
/* common
-------------------------------------- */

/* archive
-------------------------------------- */

.archive-wr {
}
.archive-wr .inner {
  max-width: 1000px;
}

.archive-wr #const_sticky {
  width: 100%;
  position: -webkit-sticky;
  position: -moz-sticky;
  position: sticky;
  top: 68px;
  z-index: 10;
  margin-bottom: 40px;
}

.archive-wr .pagination {
  width: 90%;
  max-width: 1300px;
  margin: 0 auto;
}

@media all and (max-width: 600px) {
  .archive-wr #const_sticky {
    top: 57px;
  }
}
/*--------------------------*/

#const_sticky .const_sticky_inner {
  width: 100%;
  display: flex;
  justify-content: space-between;
  align-items: center;
  position: relative;
}
#const_sticky .const_sticky_inner::before {
  content: "";
  display: block;
  width: calc(100vw - 60px);
  height: 100%;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto calc(50% - 50vw + 30px);
  z-index: -1;
  background-color: #fff;
  transition: 0.3s ease-in;
}
#const_sticky.now .const_sticky_inner::before {
  transition: 0.3s ease-in-out;
  box-shadow: 0 10px 10px rgba(0, 0, 0, 0.1);
}
#const_sticky li {
  width: calc(100% / 3);
}
@media all and (min-width: 901px) {
  /* 中央 */
  #const_sticky li:nth-of-type(3n-1) {
    width: calc((100% - 80px) / 3 + 40px);
  }
  /* 左 */
  #const_sticky li:nth-of-type(3n-2) {
    width: calc((100% - 80px) / 3 + 20px);
    /* padding-right: 20px; */
  }
  /* 右 */
  #const_sticky li:nth-of-type(3n) {
    width: calc((100% - 80px) / 3 + 20px);
    /* padding-left: 20px; */
  }
}

#const_sticky .cate_link {
  display: flex;
  justify-content: center;
  align-items: center;
  width: 100%;
  height: 80px;
  position: relative;
}
#const_sticky .cate_link::before {
  content: "";
  display: block;
  width: 1px;
  height: 60%;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  margin: auto;
  background-color: #666;
}
#const_sticky li:last-of-type .cate_link::before {
  display: none;
}
#const_sticky .cate_link.exc_btn::after {
  content: "";
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(140deg, #d8ce6d 0%, #b1804a 100%);
  z-index: -1;
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  opacity: 0;
  transition: 0.3s ease-in;
}

#const_sticky .cate_link.active {
  background-color: #e49a1b;
  color: #fff;
}
@media all and (min-width: 901px) {
  #const_sticky .cate_link.exc_btn.active {
    background: transparent;
  }
}

#const_sticky .cate_link.exc_btn.active::after {
  opacity: 1;
}
@media all and (min-width: 901px) {
  #const_sticky li:hover .cate_link {
    background-color: #e49a1b;
    color: #fff;
  }
  #const_sticky li:hover .cate_link.exc_btn {
    background: transparent;
  }
  #const_sticky li:hover .cate_link.exc_btn::after {
    opacity: 1;
  }
}

#const_sticky .child_cate {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 8;
  width: calc(100vw - 60px);
  background-color: #ededf2;
  margin: auto calc(50% - 50vw + 30px);
  opacity: 0;
  pointer-events: none;
  transition: 0.3s ease-in;
}
#const_sticky .child_cate::before {
  content: "";
  display: block;
  width: 100%;
  height: 2px;
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  background-color: #ededf2;
  z-index: 2;
}
@media all and (min-width: 901px) {
  #const_sticky li:hover .child_cate {
    opacity: 1;
    pointer-events: all;
    transition: 0.3s ease-in-out;
  }
}

#const_sticky .child_cate .inner {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
  position: relative;
}
#const_sticky .child_cate .inner::before {
  content: "";
  display: block;
  width: 0;
  height: 0;
  border-style: solid;
  border-width: 0 20px 30px 20px;
  border-color: transparent transparent #ededf2 transparent;
  position: absolute;
  top: -15px;
  margin: auto;
  z-index: -1;
  transition: 0.3s ease-in;
}
#const_sticky .civil .child_cate .inner::before {
  left: 14.3%;
}

#const_sticky .const .child_cate .inner::before {
  right: 0;
  left: 0;
}

#const_sticky .child_cate_item {
  width: calc((100% - 80px) / 3);
  display: block;
  text-align: center;
  padding: 15px 0 10px;
  z-index: 1;
  position: relative;
  border: 1px solid #fff;
  border-top: none;
  border-left: none;
}

#const_sticky .child_cate_item:nth-of-type(3n) {
  border-right: none;
}
#const_sticky .child_cate_item.active {
  color: #e49a1b;
  pointer-events: none;
}
@media all and (-ms-high-contrast: none) {
  #const_sticky .child_cate_item {
    width: calc((99% - 80px) / 3);
  }
}

@media all and (min-width: 901px) {
  #const_sticky .child_cate_item:nth-of-type(3n) {
    margin-right: 0;
  }
  /* 中央 */
  #const_sticky .child_cate_item:nth-of-type(3n-1) {
    width: calc((100% - 80px) / 3 + 40px);
  }
  /* 左 */
  #const_sticky .child_cate_item:nth-of-type(3n-2) {
    width: calc((100% - 80px) / 3 + 20px);
    padding-right: 20px;
  }
  /* 右 */
  #const_sticky .child_cate_item:nth-of-type(3n) {
    width: calc((100% - 80px) / 3 + 20px);
    padding-left: 20px;
  }
  #const_sticky .child_cate_item:nth-last-of-type(1),
  #const_sticky .child_cate_item:nth-last-of-type(2),
  #const_sticky .child_cate_item:nth-last-of-type(3) {
    padding-top: 10px;
    padding-bottom: 15px;
  }

  #const_sticky .child_cate_item:hover {
    /* opacity: 0.5; */
    color: #777;
  }
}
@media all and (-ms-high-contrast: none) {
  /* 中央 */
  #const_sticky .child_cate_item:nth-of-type(3n-1) {
    width: calc((99% - 80px) / 3 + 40px);
  }
  /* 左 */
  #const_sticky .child_cate_item:nth-of-type(3n-2) {
    width: calc((99% - 80px) / 3 + 20px);
    padding-right: 20px;
  }
  /* 右 */
  #const_sticky .child_cate_item:nth-of-type(3n) {
    width: calc((99% - 80px) / 3 + 20px);
    padding-left: 20px;
  }
}
@media all and (max-width: 900px) {
  #const_sticky .const_sticky_inner {
    width: 100vw;
    margin: 0 calc(50% - 50vw);
  }
  #const_sticky .js-sp_click .cate_link {
    pointer-events: none;
  }
  #const_sticky .cate_link {
    background-color: #002c76;
    color: #fff;
    height: auto;
    padding: 1em 0;
    border-right: 1px solid #fff;
  }
  #const_sticky li:last-of-type .cate_link {
    border-right: none;
  }
  #const_sticky .cate_link::before {
    display: none;
  }
  #const_sticky .cate_link.exc_btn {
    background: linear-gradient(140deg, #d8ce6d 0%, #b1804a 100%);
  }
  #const_sticky .cate_link.exc_btn.active {
    background: #e49a1b;
  }
  #const_sticky .is_select .cate_link {
    opacity: 0.7;
  }

  #const_sticky .child_cate_item {
    width: calc(100% / 3);
  }

  #const_sticky .const_sticky_inner::before {
    width: 100vw;
    margin: auto calc(50% - 50vw);
  }
  #const_sticky .child_cate .inner {
    width: 100%;
  }
  #const_sticky .child_cate {
    width: 100vw;
    margin: auto calc(50% - 50vw);
  }
  #const_sticky .child_cate.is_active {
    opacity: 1;
    pointer-events: all;
    transition: 0.3s ease-in-out;
  }

  #const_sticky .child_cate_item::after {
    right: 0;
  }
  #const_sticky .child_cate .inner::before {
    border-width: 0 10px 15px 10px;
    top: -10px;
  }
}
@media all and (max-width: 600px) {
  #const_sticky .const_sticky_inner {
    width: 100vw;
    margin: 0 calc(50% - 50vw);
  }
  #const_sticky li {
    width: calc(100% / 3);
    padding: 0;
  }

  #const_sticky .cate_link {
    max-width: 100%;
    border-radius: 0;
    font-size: 1.3rem;
    padding: 1em 0;
    border-right: 1px solid #fff;
  }

  #const_sticky .child_cate .inner {
    width: 100%;
  }
  #const_sticky .child_cate .inner::before {
    display: none;
  }
  #const_sticky .child_cate_item {
    width: calc(100% / 2);
  }
  #const_sticky .child_cate_item:nth-of-type(3n) {
    border-right: 1px solid #fff;
  }
  #const_sticky .child_cate_item:nth-of-type(2n) {
    border-right: none;
  }
}

/*--------------------------*/
.archive-wr .cat_ttl {
  width: 100%;
  text-align: center;
  font-weight: 600;
  font-size: 2.4rem;
  padding-bottom: 30px;
  line-height: 1;
  border-bottom: 1px solid #ccc;
  margin-bottom: 50px;
}
/*--------------------------*/
.archive-wr .archive_list {
  /* width: calc(100% - 300px); */
  width: 100%;
  margin: 0 auto;
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  flex-wrap: wrap;
}
.archive-wr .archive_list li {
  width: calc((100% - 80px) / 3);
  margin-bottom: 60px;
  margin-right: 40px;
}

@media all and (-ms-high-contrast: none) {
  .archive-wr .archive_list li {
    width: calc((99% - 80px) / 3);
  }
}
.archive-wr .archive_list li:nth-of-type(3n) {
  margin-right: 0;
}
.archive-wr .archive_list_item {
  display: block;
  width: 100%;
  position: relative;
  z-index: 0;
}
.archive-wr .archive_list_item::before {
  content: "";
  width: 100%;
  height: 100%;
  display: block;
  position: absolute;
  top: -2px;
  right: -2px;
  bottom: -2px;
  left: -4px;
  margin: auto;
  border: 4px solid #e49a1b;
  z-index: 2;
  pointer-events: none;
  opacity: 0;
  transition: 0.3s ease-in;
}
@media all and (min-width: 901px) {
  .archive-wr .archive_list_item:hover:before {
    transition: 0.3s ease-in-out;
    opacity: 1;
  }
}
.archive-wr .bg-image {
  padding-top: 100%;
}
.archive-wr .item_name {
  font-weight: 600;
  color: #002c76;
  font-size: 1.8rem;
  padding: 10px 0 5px;
  line-height: 1.4;
}

.archive-wr label {
  margin-bottom: 0;
  margin-top: 5px;
}

@media all and (max-width: 900px) {
  #const_sticky .child_cate_item.active {
    color: #999;
    pointer-events: none;
  }
}

@media all and (max-width: 600px) {
  .archive-wr .archive_list li {
    width: calc((100% - 20px) / 2);
    margin-right: 20px;
    margin-bottom: 40px;
  }

  .archive-wr .archive_list li:nth-of-type(3n) {
    margin-right: 20px;
  }
  .archive-wr .archive_list li:nth-of-type(2n) {
    margin-right: 0;
  }
  /* #const_sticky .child_cate_item.active {
    background-color: #fff;
    color: #e49a1b;
  } */
  .archive-wr .item_name {
    font-size: 1.6rem;
  }
}

/* archive pagination
-------------------------------------- */
.pagination {
  padding-top: 20px;
}
.pagination_inner {
  /* width: calc(100% - 300px); */
  width: 100%;
  margin: 0 auto;
  text-align: center;
}

/* single
-------------------------------------- */
main#main.single {
  padding-bottom: 90px;
}
.post_area {
  margin-bottom: 90px;
}
.post_area .post_ttl {
  font-size: 3.6rem;
  font-weight: 600;
  text-align: center;
  margin-bottom: 30px;
  letter-spacing: 0.1em;
}
.post_area .label-wr {
  display: flex;
  justify-content: center;
  margin-bottom: 30px;
}

@media all and (max-width: 600px) {
  main#main.single {
    padding-bottom: 90px;
  }
  .post_area {
    display: flex;
    justify-content: flex-start;
    align-items: center;
    flex-direction: column;
    margin-bottom: 50px;
  }
  .post_area .post_ttl {
    font-size: 2.8rem;
    margin-bottom: 30px;
    order: 1;
  }
  .post_area .label-wr {
    display: flex;
    justify-content: center;
    margin-bottom: 0;
    order: 2;
  }
}

/* 優良工事 */

.post_area .excellent {
  width: 65%;
  margin: 0 auto 30px;
  background: linear-gradient(140deg, #d8ce6d 0%, #b1804a 100%);
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding: 5px;
}
.post_area .excellent .ttl {
  color: #fff;
  font-size: 2rem;
  font-weight: 600;
  white-space: nowrap;
  text-align: center;
  margin: 0 auto;
  padding: 0 15px;
}
.post_area .excellent .txt {
  background-color: #fff;
  padding: 10px;
  width: 70%;
}

.post_area .exc_block {
  display: flex;
  justify-content: flex-start;
  align-items: flex-start;
  width: 100%;
}
.post_area .exc_name {
  white-space: nowrap;
  font-size: 1.4rem;
}
.post_area .exc_item {
  font-size: 1.4rem;
}
.post_area .exc_item .ib:first-of-type {
  margin-right: 0.5em;
}

@media all and (max-width: 600px) {
  .post_area .excellent {
    width: 100%;
    display: block;
    order: 3;
    margin-top: 30px;
    margin-bottom: 0;
  }
  .post_area .excellent .ttl {
    font-size: 1.6rem;
    padding: 0 0 5px;
  }
  .post_area .excellent .txt {
    width: 100%;
  }

  .post_area .exc_block {
  }
  .post_area .exc_name {
  }
  .post_area .exc_item {
  }
  .post_area .exc_item .ib:first-of-type {
  }
}

/* 詳細 */
.post_area .info {
  width: 100%;
}
.post_area .info_block {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  margin-bottom: 0.3em;
}
.post_area .info_block:last-of-type {
  margin-bottom: 0;
}

.post_area .info_name {
  white-space: nowrap;
  font-size: 1.5rem;
}
.post_area .info_detail {
  font-size: 1.5rem;
}
.post_area .comm {
  padding-top: 30px;
  font-size: 1.5rem;
  line-height: 2;
  text-align: left;
  width: 100%;
}

.post_area #main_sli {
  padding-top: 40px;
}

.post_area #main_sli .sli_img {
  width: 100%;
  position: relative;
}

.post_area #main_sli .caption {
  position: absolute;
  right: 0;
  bottom: 0;
  left: 0;
  margin: auto;
  z-index: 2;
  width: 100%;
  background-color: rgba(0, 0, 0, 0.5);
  color: #fff;
  padding: 0.8em 1em;
}

.post_area #sub_sli {
  padding-top: 40px;
}
.post_area #sub_sli .slick-slide > div {
  width: 95%;
  margin: 0 auto;
}

.post_area #sub_sli .bg-image {
  padding-top: 90%;
}
.post_area #sub_sli .slick-next,
.post_area #sub_sli .slick-prev {
  top: 60%;
}

@media all and (max-width: 600px) {
  .post_area .info {
    order: 4;
    margin-top: 30px;
  }
  .post_area .info_block {
  }

  .post_area .info_name {
    white-space: nowrap;
    font-size: 1.5rem;
  }
  .post_area .info_detail {
    font-size: 1.5rem;
  }
  .post_area .comm {
    order: 6;
  }
  .post_area #main_sli {
    order: 5;
    width: 100%;
  }
  .post_area #main_sli .slick-next,
  .post_area #main_sli .slick-prev {
    top: 55%;
    z-index: 5;
  }
  .post_area #main_sli .slick-next {
    left: inherit;
    right: 0;
  }
  .post_area #main_sli .slick-prev {
    right: inherit;
    left: 0;
  }
  .post_area #sub_sli {
    display: none;
  }
}
/* single pagination
-------------------------------------- */
